From 9ddaf82329589ce12ea8fa4b0ea382ddeab240d8 Mon Sep 17 00:00:00 2001 From: Boris Serebrov Date: Sun, 13 Nov 2022 15:06:33 -0500 Subject: [PATCH] Build version 12.0.0 --- docs/bundle.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/bundle.js b/docs/bundle.js index 8b518b4..95b25d5 100644 --- a/docs/bundle.js +++ b/docs/bundle.js @@ -20878,4 +20878,4 @@ new vue__WEBPACK_IMPORTED_MODULE_3__["default"]({ /******/ })() ; }); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Qix5QkFBeUIsYUFBYSxPQUFPLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxXQUFXLEtBQUssS0FBSyxVQUFVLFlBQVksT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFVBQVUsWUFBWSxhQUFhLFdBQVcsT0FBTyxNQUFNLFVBQVUsVUFBVSxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLFdBQVcsS0FBSyxNQUFNLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE9BQU8sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE9BQU8sS0FBSyxZQUFZLGFBQWEsV0FBVyxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsV0FBVyxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxXQUFXLE1BQU0sT0FBTyxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsT0FBTyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLE9BQU8sS0FBSyxVQUFVLFlBQVksT0FBTyxLQUFLLFVBQVUsT0FBTyxLQUFLLFVBQVUsVUFBVSxLQUFLLE9BQU8sWUFBWSxPQUFPLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsT0FBTyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLE9BQU8sS0FBSyxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsT0FBTyxLQUFLLFVBQVUsVUFBVSxPQUFPLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxh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OEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGNBQWMsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxlQUFlLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcscUJBQXFCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsY0FBYyw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiwyQkFBMkIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLGVBQWUsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxxQkFBcUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyxlQUFlLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsY0FBYyw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiwyQkFBMkIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiwyQkFBMkIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxxQkFBcUIsOEJBQThCLEdBQUcscUJBQXFCLDhCQUE4QixHQUFHLHFCQUFxQiw4QkFBOEIsR0FBRyxxQkFBcUIsOEJBQThCLEdBQUcscUJBQXFCLDhCQUE4QixHQUFHLHFCQUFxQiw4QkFBOEIsR0FBRyxxQkFBcUIsOEJBQThCLEdBQUcscUJBQXFCLDhCQUE4QixHQUFHLHFCQUFxQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLFdBQVcsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLFlBQVksbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixnQ0FBZ0MsR0FBRyxtQkFBbUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsa0JBQWtCLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLG1CQUFtQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLFlBQVksbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsZ0NBQWdDLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLG1CQUFtQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxZQUFZLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLGdDQUFnQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLGdDQUFnQyxHQUFH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WUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxXQUFXLFlBQVksV0FBVyxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLFdBQVcsWUFBWSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxNQUFNLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLEtBQUssTUFBTSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxPQUFPLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssTUFBTSxVQUFVLFlBQVksTUFBTSxNQUFNLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFlBQVksWUFBWSxVQUFVLFdBQVcsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLFdBQVcsWUFBWSxhQUFhLFdBQVcsS0FBSyxLQUFLLFlBQVksYUFBYSxXQUFXLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLE1BQU0sTUFBTSxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksWUFBWSxVQUFVLE1BQU0sTUFBTSxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssT0FBTyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksV0FBVyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxXQUFXLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLFlBQVksVUFBVSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxZQUFZLFdBQVcsS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsV0FBVyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxZQUFZLFdBQVcsVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxNQUFNLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxXQUFXLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxXQUFXLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxXQUFXLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxhQUFhLFdBQVcsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksV0FBVyxZQUFZLFdBQVcsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxXQUFXLFlBQVksV0FBVyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLE1BQU0sVUFBVSxLQUFLLE1BQU0sVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxVQUFVLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxXQUFXLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsV0FBVyxLQUFLLEtBQUssWUFBWSxhQUFhLFdBQVcsS0FBSyxNQUFNLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsV0FBVyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxXQUFXLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxXQUFXLE1BQU0sS0FBSyxZQUFZLFdBQVcsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLFFBQVEsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLE9BQU8sVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxPQUFPLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLFlBQVksWUFBWSxhQUFhLE1BQU0sUUFBUSxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsV0FBVyxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxNQUFNLFVBQVUsS0FBSyxNQUFNLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsV0FBVyxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksV0FBVyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sT0FBTyxZQUFZLE1BQU0sT0FBTyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLE9BQU8sVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLFFBQVEsWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sT0FBTyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLE1BQU0sT0FBTyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsWUFBWSxNQUFNLE9BQU8sWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxXQUFXLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxNQUFNLE9BQU8sVUFBVSxZQUFZLE1BQU0sT0FBTyxVQUFVLEtBQUssT0FBTyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxNQUFNLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLFdBQVcsWUFBWSxhQUFhLFdBQVcsWUFBWSxhQUFhLGFBQWEsV0FBVyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxNQUFNLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLFdBQVcsVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLFFBQVEsWUFBWSxNQUFNLE1BQU0sVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sU0FBUyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssTUFBTSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sUUFBUSxZQUFZLGFBQWEsTUFBTSxRQUFRLFlBQVksTUFBTSxRQUFRLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLFlBQVksVUFBVSxXQUFXLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLFVBQVUsWUFBWSxNQUFNLE1BQU0sVUFBVSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksV0FBVyxVQUFVLEtBQUssTUFBTSxVQUFVLE1BQU0sS0FBSyxZQUFZLFlBQVksVUFBVSxXQUFXLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsV0FBVyxZQUFZLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxhQUFhLE1BQU0sT0FBTyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsTUFBTSxNQUFNLFVBQVUsTUFBTSxRQUFRLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxNQUFNLFlBQVksV0FBVyxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLEtBQUssTUFBTSxVQUFVLFlBQVksTUFBTSxRQUFRLFVBQVUsTUFBTSxNQUFNLFVBQVUsS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxRQUFRLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFVBQVUsS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLE9BQU8sVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLFlBQVksV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sVUFBVSxLQUFLLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxVQUFVLEtBQUssTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLFVBQVUsS0FBSyxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sVUFBVSxLQUFLLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFVBQVUsTUFBTSxVQUFVLFVBQVUsWUFBWSxhQUFhLFdBQVcsS0FBSyxnQkFBZ0IsVUFBVSxZQUFZLGFBQWEsV0FBVyxLQUFLLGFBQWEsWUFBWSxXQUFXLFVBQVUsVUFBVSxNQUFNLE1BQU0sVUFBVSxLQUFLLE9BQU8sVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxNQUFNLE1BQU0sWUFBWSxXQUFXLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxhQUFhLFdBQVcsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxNQUFNLE1BQU0sVUFBVSxZQUFZLGFBQWEsV0FBVyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sT0FBTyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsV0FBVyxVQUFVLFlBQVksYUFBYSxjQUFjLGVBQWUsT0FBTyxNQUFNLFlBQVksV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxPQUFPLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxXQUFXLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sTUFBTSxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLE1BQU0sVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsV0FBVyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLFdBQVcsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsV0FBVyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxPQUFPLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLFdBQVcsTUFBTSxNQUFNLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxNQUFNLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxPQUFPLFVBQVUsS0FBSyxNQUFNLFlBQVksV0FBVyxVQUFVLFVBQVUsWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxNQUFNLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxXQUFXLFlBQVksTUFBTSxNQUFNLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLFdBQVcsS0FBSyxLQUFLLE1BQU0sWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLEtBQUssTUFBTSxZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsS0FBSyxNQUFNLFlBQVksYUFBYSxhQUFhLE1BQU0sTUFBTSxVQUFVLEtBQUssTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsWUFBWSxXQUFXLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxZQUFZLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLE1BQU0sVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLFdBQVcsVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxPQUFPLFlBQVksV0FBVyxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxRQUFRLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxNQUFNLFlBQVksYUFBYSxNQUFNLFFBQVEsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxZQUFZLFdBQVcsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLEtBQUssWUFBWSxXQUFXLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxPQUFPLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxXQUFXLE1BQU0sUUFBUSxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLE1BQU0sVUFBVSxLQUFLLE1BQU0sVUFBVSxZQUFZLGFBQWEsTUFBTSxNQUFNLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxZQUFZLGFBQWEsV0FBVyxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsV0FBVyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxZQUFZLFVBQVUsV0FBVyxVQUFVLFVBQVUsWUFBWSxXQUFXLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxNQUFNLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxNQUFNLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sT0FBTyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLE9BQU8sWUFBWSxhQUFhLFdBQVcsWUFBWSxVQUFVLE1BQU0sT0FBTyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLE1BQU0sS0FBSyxZQUFZLGFBQWEsVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxLQUFLLE1BQU0sVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssb0VBQW9FLFdBQVcsVUFBVSxVQUFVLE1BQU0sb0VBQW9FLFdBQVcsVUFBVSxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxNQUFNLGdDQUFnQyxhQUFhLFlBQVksVUFBVSxNQUFNLE1BQU0sWUFBWSxZQUFZLFVBQVUsTUFBTSxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksV0FBVyxLQUFLLE1BQU0sVUFBVSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksV0FBVyxLQUFLLE1BQU0sVUFBVSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksV0FBVyxLQUFLLE1BQU0sVUFBVSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLEtBQUssS0FBSyxLQUFLLG9DQUFvQyxXQUFXLFVBQVUsVUFBVSxNQUFNLG9DQUFvQyxXQUFXLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxrQkFBa0IsWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLFlBQVksWUFBWSxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssS0FBSyxvQ0FBb0MsV0FBVyxVQUFVLFVBQVUsTUFBTSxvQ0FBb0MsV0FBVyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sa0JBQWtCLFlBQVksWUFBWSxVQUFVLE1BQU0sS0FBSyxZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLEtBQUssb0NBQW9DLFdBQVcsVUFBVSxVQUFVLE1BQU0sb0NBQW9DLFdBQVcsVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLGtCQUFrQixZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxLQUFLLG9DQUFvQyxXQUFXLFVBQVUsVUFBVSxNQUFNLG9DQUFvQyxXQUFXLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxrQkFBa0IsWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLFlBQVksWUFBWSxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxRQUFRLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLE9BQU8sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sZUFBZSxVQUFVLE1BQU0sZUFBZSxZQUFZLE1BQU0sTUFBTSxVQUFVLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLFVBQVUsS0FBSyxNQUFNLFVBQVUsVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sTUFBTSxVQUFVLFVBQVUsVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksV0FBVyxZQUFZLGFBQWEsV0FBVyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLFlBQVksV0FBVyxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxNQUFNLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxNQUFNLFVBQVUsTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFVBQVUsS0FBSyxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxZQUFZLGFBQWEsV0FBVyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsWUFBWSxhQUFhLFdBQVcsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxRQUFRLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssYUFBYSxZQUFZLE1BQU0sS0FBSyxLQUFLLGFBQWEsWUFBWSxNQUFNLEtBQUssS0FBSyxhQUFhLFlBQVksTUFBTSxLQUFLLEtBQUssYUFBYSxZQUFZLE1BQU0sS0FBSyxLQUFLLGFBQWEsWUFBWSxNQUFNLEtBQUssS0FBSyxZQUFZLFdBQVcsWUFBWSxXQUFXLFVBQVUsWUFBWSxhQUFhLFdBQVcsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxPQUFPLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxPQUFPLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxXQUFXLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxXQUFXLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FB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QUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiwyQkFBMkIsR0FBRyxxQkFBcUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxjQUFjLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsb0JBQW9CLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsY0FBYyw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGNBQWMsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxlQUFlLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcscUJBQXFCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsY0FBYyw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiwyQkFBMkIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLGVBQWUsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxxQkFB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Q0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixnQ0FBZ0MsR0FBRyxtQkFBbUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsa0JBQWtCLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLG1CQUFtQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLFlBQVksbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsZ0NBQWdDLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLG1CQUFtQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFt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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxLQUFxQztBQUMvQztBQUNBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxLQUFxQztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLEtBQXFDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRCxPQUFPO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxrQkFBa0IsaUJBQWlCO0FBQ25DO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxrQkFBa0Isa0JBQWtCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLEtBQXFDO0FBQ3pDO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQyxrQ0FBa0M7QUFDbEM7QUFDQSxtQkFBbUI7QUFDbkIsTUFBTSxJQUFxQztBQUMzQztBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLGFBQW9CO0FBQ3RDO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEIsUUFBUSxTQUFTLElBQXFDO0FBQ3REO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsSUFBSSxTQUFTLElBQXFDO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0Esb0JBQW9CLG1CQUFtQjtBQUN2QyxnQ0FBZ0M7QUFDaEM7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLFdBQVc7QUFDOUIsWUFBWTtBQUNaO0FBQ0EsSUFBSSxTQUFTLElBQXFDO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxJQUFxQztBQUMzQztBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLE9BQU87QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBLHFDQUFxQztBQUNyQztBQUNBLHNDQUFzQztBQUN0QztBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBRVE7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDJCQUEyQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDREQUE0RCxXQUFXO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxTQUFTO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUNBOztBQUVBLElBQUksSUFBcUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixtQkFBbUI7QUFDekM7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsOENBQThDO0FBQzlDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsSUFBcUM7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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Q0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHNGQUFzRjtBQUM1RjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwwQ0FBMEM7QUFDMUMsa0JBQWtCLHlCQUF5QjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRywr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OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyxTQUFTO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRLElBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLE9BQU87QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGtCQUFrQixrQkFBa0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFVBQVUsS0FBcUM7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7Ozs7QUFJQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLEtBQXFDO0FBQ3pEO0FBQ0EsTUFBTSxDQUFFO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0EsSUFBSTtBQUNKLHlCQUF5QjtBQUN6QjtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLElBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNLEtBQUssRUFFTjtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksS0FBcUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQSwrQkFBK0I7O0FBRS9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUSxLQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxTQUFTLElBQXFDO0FBQ3BEO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLG9CQUFvQjtBQUMxQztBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0EsK0JBQStCO0FBQy9CLE1BQU0sSUFBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVEsS0FBcUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBLE1BQU0sS0FBSyxFQUVOO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0EscUJBQXFCO0FBQ3JCOztBQUVBO0FBQ0EsUUFBUSxLQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0VBQXNFO0FBQ3RFO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVEsS0FBcUM7QUFDN0M7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDOztBQUVqQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLFlBQVksS0FBcUM7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTs7Ozs7O0FBTUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDJDQUEyQyw0QkFBNEI7QUFDdkUsS0FBSztBQUNMO0FBQ0EsMkNBQTJDLDZCQUE2QjtBQUN4RSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDO0FBQ2hDLE1BQU0sSUFBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLE9BQU87QUFDM0M7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLEtBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFF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QztBQUN4Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7QUFDM0M7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUIsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLCtDQUErQztBQUN2RDtBQUNBOztBQUVBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLHdDQUF3QyxTQUFTO0FBQ2pEO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQix3QkFBd0I7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EscURBQXFELDZCQUE2QjtBQUNsRixNQUFNO0FBQ047QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxnQ0FBZ0M7QUFDckYsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQzs7QUFFL0M7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBTSxLQUFxQztBQUMzQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2REFBNkQ7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGtDQUFrQyxvQ0FBb0M7O0FBRXRFO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0Qyx3Q0FBd0M7QUFDcEY7QUFDQTtBQUNBO0FBQ0EsOENBQThDLDRDQUE0QztBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxLQUFxQztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QyxPQUFPO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxzQ0FBc0MsK0JBQStCO0FBQ3JFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsUUFBUTtBQUNSO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsbUNBQW1DOztBQUVuQyxzQ0FBc0M7O0FBRXRDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsUUFBUSxLQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxRQUFRLEtBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNB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N0Q7Ozs7O1dDTkE7O1dBRUE7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBOztXQUVBOztXQUVBOztXQUVBOztXQUVBOztXQUVBOztXQUVBOztXQUVBOzs7Ozs7Ozs7Ozs7Ozs7OztBQ3JCQTtDQUdBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBc1QsK0NBQUEsQ0FBUUUsNEVBQVI7QUFFQSxJQUFJRiwyQ0FBSixDQUFRO0VBQ1BJLEVBQUUsRUFBRSxNQURHO0VBRVBDLE1BQU0sRUFBRSxnQkFBQ0MsQ0FBRDtJQUFBLE9BQU9BLENBQUMsQ0FBQ0wsNENBQUQsQ0FBUjtFQUFBO0FBRkQsQ0FBUixFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvZG9jcy9hcHAudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9FbW9qaS52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3NyYy9jb21wb25lbnRzL1BpY2tlci52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3NyYy9jb21wb25lbnRzL2FuY2hvcnMudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9jYXRlZ29yeS52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3NyYy9jb21wb25lbnRzL3ByZXZpZXcudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9zZWFyY2gudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9za2lucy52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2luZGV4LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9wb2x5ZmlsbHMvc3RyaW5nRnJvbUNvZGVQb2ludC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvc3Zncy9pbmRleC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvZGF0YS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvZW1vamktZGF0YS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvZnJlcXVlbnRseS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL3V0aWxzL3BpY2tlci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvc2hhcmVkLXByb3BzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy91dGlscy9zdG9yZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdmVuZG9yL3JhZi1wb2x5ZmlsbC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYS1jYWxsYWJsZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYS1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYS1wb3NzaWJsZS1wcm90b3R5cGUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FkZC10by11bnNjb3BhYmxlcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYWR2YW5jZS1zdHJpbmctaW5kZXguanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FuLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLW5vbi1leHRlbnNpYmxlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1mb3ItZWFjaC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktZnJvbS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWhhcy1zcGVjaWVzLXN1cHBvcnQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1pcy1zdHJpY3QuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXNsaWNlLXNpbXBsZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktc2xpY2UuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXNvcnQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY3JlYXRlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jYWxsLXdpdGgtc2FmZS1pdGVyYXRpb24tY2xvc2luZy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY2hlY2stY29ycmVjdG5lc3Mtb2YtaXRlcmF0aW9uLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jbGFzc29mLXJhdy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY2xhc3NvZi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY29weS1jb25zdHJ1Y3Rvci1wcm9wZXJ0aWVzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jb3JyZWN0LWlzLXJlZ2V4cC1sb2dpYy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY29ycmVjdC1wcm90b3R5cGUtZ2V0dGVyLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jcmVhdGUtaXRlcmF0b3ItY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluLWFjY2Vzc29yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4uanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RlZmluZS1nbG9iYWwtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RlZmluZS1pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVmaW5lLXdlbGwta25vd24tc3ltYm9sLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kZWxldGUtcHJvcGVydHktb3ItdGhyb3cuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Rlc2NyaXB0b3JzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kb2N1bWVudC1jcmVhdGUtZWxlbWVudC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZG9lcy1ub3QtZXhjZWVkLXNhZmUtaW50ZWdlci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZG9tLWl0ZXJhYmxlcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZG9tLXRva2VuLWxpc3QtcHJvdG90eXBlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbmdpbmUtZmYtdmVyc2lvbi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZW5naW5lLWlzLWllLW9yLWVkZ2UuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2VuZ2luZS11c2VyLWFnZW50LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbmdpbmUtdjgtdmVyc2lvbi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZW5naW5lLXdlYmtpdC12ZXJzaW9uLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9leHBvcnQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2ZhaWxzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9maXgtcmVnZXhwLXdlbGwta25vd24tc3ltYm9sLWxvZ2ljLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9mcmVlemluZy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZnVuY3Rpb24tYXBwbHkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1uYXRpdmUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLW5hbWUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9nZXQtaXRlcmF0b3ItbWV0aG9kLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9nZXQtaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2dldC1tZXRob2QuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2dsb2JhbC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaGlkZGVuLWtleXMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2h0bWwuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2llOC1kb20tZGVmaW5lLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbmRleGVkLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaW5oZXJpdC1pZi1yZXF1aXJlZC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaW5zcGVjdC1zb3VyY2UuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2ludGVybmFsLW1ldGFkYXRhLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtYXJyYXktaXRlcmF0b3ItbWV0aG9kLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1hcnJheS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtY2FsbGFibGUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2lzLWNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1mb3JjZWQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2lzLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtcHVyZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtcmVnZXhwLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1zeW1ib2wuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2l0ZXJhdG9yLWNsb3NlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pdGVyYXRvcnMtY29yZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXRlcmF0b3JzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbWFrZS1idWlsdC1pbi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbWF0aC10cnVuYy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbmF0aXZlLXN5bWJvbC1yZWdpc3RyeS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbmF0aXZlLXN5bWJvbC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbmF0aXZlLXdlYWstbWFwLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9ub3QtYS1yZWdleHAuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1hc3NpZ24uanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMtZXh0ZXJuYWwuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1zeW1ib2xzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWlzLWV4dGVuc2libGUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1rZXlzLWludGVybmFsLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3Qta2V5cy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LXByb3BlcnR5LWlzLWVudW1lcmFibGUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1zZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtdG8tc3RyaW5nLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vcmRpbmFyeS10by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL293bi1rZXlzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9wYXRoLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWdleHAtZXhlYy1hYnN0cmFjdC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZ2V4cC1mbGFncy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVnZXhwLXN0aWNreS1oZWxwZXJzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWdleHAtdW5zdXBwb3J0ZWQtZG90LWFsbC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVnZXhwLXVuc3VwcG9ydGVkLW5jZy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zYW1lLXZhbHVlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zY2hlZHVsZXJzLWZpeC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NoYXJlZC1rZXkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NoYXJlZC1zdG9yZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc2hhcmVkLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zcGVjaWVzLWNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJpbmctbXVsdGlieXRlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJpbmctcmVwZWF0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJpbmctdHJpbS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc3ltYm9sLWRlZmluZS10by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RoaXMtbnVtYmVyLXZhbHVlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWludGVnZXItb3ItaW5maW5pdHkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWxlbmd0aC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tb2JqZWN0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXByb3BlcnR5LWtleS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tc3RyaW5nLXRhZy1zdXBwb3J0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RyeS10by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3VpZC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdXNlLXN5bWJvbC1hcy11aWQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3Y4LXByb3RvdHlwZS1kZWZpbmUtYnVnLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy92YWxpZGF0ZS1hcmd1bWVudHMtbGVuZ3RoLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC13cmFwcGVkLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvd2hpdGVzcGFjZXMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5mcm9tLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmpvaW4uanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5yZXZlcnNlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc2xpY2UuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zb3J0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmpzb24uc3RyaW5naWZ5LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLmNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLnRvLWZpeGVkLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmFzc2lnbi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5mcmVlemUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcnMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1uYW1lcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5mbGFncy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5mcm9tLWNvZGUtcG9pbnQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcubWF0Y2guanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuc2VhcmNoLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnNwbGl0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmRlc2NyaXB0aW9uLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmZvci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbC5pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbC5rZXktZm9yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy93ZWIuc2V0LWludGVydmFsLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvd2ViLnNldC10aW1lb3V0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvd2ViLnRpbWVycy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9jc3MvZW1vamktbWFydC5jc3MiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL3F1YXNhci1mcmFtZXdvcmsvZGlzdC91bWQvcXVhc2FyLm1hdC5jc3MiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vZG9jcy9hcHAudnVlPzA3MDMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvZ2V0VXJsLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9xdWFzYXItZnJhbWV3b3JrL2Rpc3QvcXVhc2FyLm1hdC5lc20uanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vZG9jcy9hcHAudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL0Vtb2ppLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9QaWNrZXIudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL2FuY2hvcnMudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL2NhdGVnb3J5LnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9wcmV2aWV3LnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9zZWFyY2gudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL3NraW5zLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9kb2NzL2FwcC52dWU/NjRhMiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9FbW9qaS52dWU/NDg2OCIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9QaWNrZXIudnVlPzExNTEiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvYW5jaG9ycy52dWU/ODJmMyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9jYXRlZ29yeS52dWU/YjA4ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9wcmV2aWV3LnZ1ZT81YjE5Iiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL3NlYXJjaC52dWU/YTdjOSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9za2lucy52dWU/NGVhOSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9kb2NzL2FwcC52dWU/N2UyYiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9FbW9qaS52dWU/NmExNCIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9QaWNrZXIudnVlPzhmNmMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvYW5jaG9ycy52dWU/ZGNlZiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9jYXRlZ29yeS52dWU/NzRkNSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9wcmV2aWV3LnZ1ZT9iNTRhIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL3NlYXJjaC52dWU/NzdkZCIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9za2lucy52dWU/NTY5YiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL2Nzcy9lbW9qaS1tYXJ0LmNzcz9mN2I5Iiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9xdWFzYXItZnJhbWV3b3JrL2Rpc3QvdW1kL3F1YXNhci5tYXQuY3NzPzY0YmYiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vZG9jcy9hcHAudnVlP2EyNWIiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL3Z1ZS1zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlc0NsaWVudC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvdnVlLXN0eWxlLWxvYWRlci9saWIvbGlzdFRvU3R5bGVzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy92dWUvZGlzdC92dWUucnVudGltZS5lc20uanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5TGlrZVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5V2l0aG91dEhvbGVzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVjay5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3MuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pdGVyYWJsZVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL25vbkl0ZXJhYmxlU3ByZWFkLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b0NvbnN1bWFibGVBcnJheS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL0Vtb2ppTWFydC93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svcnVudGltZS9nbG9iYWwiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svcnVudGltZS9qc29ucCBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL0Vtb2ppTWFydC8uL2RvY3MvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiRW1vamlNYXJ0XCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIkVtb2ppTWFydFwiXSA9IGZhY3RvcnkoKTtcbn0pKHNlbGYsIGZ1bmN0aW9uKCkge1xucmV0dXJuICIsIjx0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImFwcFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxoMT5FbW9qaSBNYXJ0IFZ1ZSDwn4+sPC9oMT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZW1vamkgOmRhdGE9XCJpbmRleFwiIGVtb2ppPVwiOnNhbnRhOjpza2luLXRvbmUtMzpcIiA6c2l6ZT1cIjMyXCIgLz5cbiAgICAgIDxlbW9qaSA6ZGF0YT1cImluZGV4XCIgZW1vamk9XCJzYW50YVwiIHNldD1cInR3aXR0ZXJcIiA6c2l6ZT1cIjMyXCIgLz5cbiAgICAgIDxlbW9qaSA6ZGF0YT1cImluZGV4XCIgOmVtb2ppPVwic2FudGFFbW9qaU9iamVjdFwiIDpzaXplPVwiMzJcIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJ0b2dnbGVWaXNpYmxlXCI+U2hvdyAvIGhpZGUgdGhlIHBpY2tlcjwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJ0b2dnbGVWaXNpYmxlXCIgdi1odG1sPVwic21pbGVcIj48L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDx0ZW1wbGF0ZVxuICAgICAgICB2LWZvcj1cInNldCBpbiBbJ25hdGl2ZScsICdhcHBsZScsICdnb29nbGUnLCAndHdpdHRlcicsICdmYWNlYm9vayddXCJcbiAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIDprZXk9XCJzZXRcIlxuICAgICAgICAgIEBjbGljaz1cImFjdGl2ZVNldCA9IHNldFwiXG4gICAgICAgICAgOmRpc2FibGVkPVwiYWN0aXZlU2V0ID09IHNldFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBzZXQgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L3RlbXBsYXRlPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiB2LWlmPVwiaXNWaXNpYmxlXCIgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxwaWNrZXJcbiAgICAgICAgOmRhdGE9XCJpbmRleFwiXG4gICAgICAgIDpzZXQ9XCJhY3RpdmVTZXRcIlxuICAgICAgICA6bmF0aXZlPVwibmF0aXZlXCJcbiAgICAgICAgOmVtb2ppPVwiZW1vamlcIlxuICAgICAgICA6ZW1vamlUb29sdGlwPVwidHJ1ZVwiXG4gICAgICAgIDp0aXRsZT1cInRpdGxlXCJcbiAgICAgICAgOmVtb2ppU2l6ZT1cIjMwXCJcbiAgICAgICAgQHNlbGVjdD1cInNob3dFbW9qaVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGVtb2ppXG4gICAgICAgIHYtZm9yPVwiZW1vIGluIHNlbGVjdGVkRW1vamlzXCJcbiAgICAgICAgOmtleT1cImVtb1wiXG4gICAgICAgIDpkYXRhPVwiaW5kZXhcIlxuICAgICAgICA6ZW1vamk9XCJlbW9cIlxuICAgICAgICA6c2V0PVwiYWN0aXZlU2V0XCJcbiAgICAgICAgOm5hdGl2ZT1cIm5hdGl2ZVwiXG4gICAgICAgIDpzaXplPVwiMzJcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIHt7IGVtb2ppc091dHB1dCB9fVxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvdy1zbWFsbFwiPlxuICAgICAgPGlmcmFtZVxuICAgICAgICBzcmM9XCJodHRwczovL2doYnRucy5jb20vZ2l0aHViLWJ0bi5odG1sP3VzZXI9c2VyZWJyb3YmcmVwbz1lbW9qaS1tYXJ0LXZ1ZSZ0eXBlPXN0YXImY291bnQ9dHJ1ZVwiXG4gICAgICAgIGZyYW1lQm9yZGVyPVwiMFwiXG4gICAgICAgIHNjcm9sbGluZz1cIjBcIlxuICAgICAgICB3aWR0aD1cIjkwcHhcIlxuICAgICAgICBoZWlnaHQ9XCIyMHB4XCJcbiAgICAgID48L2lmcmFtZT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj48L2Rpdj5cbiAgICA8aDI+UURpYWxvZyBFeGFtcGxlPC9oMj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8cS1idG4gbGFiZWw9XCJPcGVuIFFEaWFsb2dcIiBAY2xpY2s9XCJlbW9qaVBpY2tlckRpYWxvZyA9IHRydWVcIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgPHEtZGlhbG9nIHYtbW9kZWw9XCJlbW9qaVBpY2tlckRpYWxvZ1wiPlxuICAgICAgPHRlbXBsYXRlIHYtc2xvdDpib2R5IHN0eWxlPVwiaGVpZ2h0OiA0NTBweFwiPlxuICAgICAgICA8cGlja2VyIDpkYXRhPVwiaW5kZXhcIiA6ZW1vamlTaXplPVwiMjRcIiA6bmF0aXZlPVwidHJ1ZVwiPjwvcGlja2VyPlxuICAgICAgPC90ZW1wbGF0ZT5cbiAgICA8L3EtZGlhbG9nPlxuXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPjwvZGl2PlxuICAgIDxoMj5DdXN0b20gRGlhbG9nIEV4YW1wbGU8L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxidXR0b24gQGNsaWNrPVwiZW1vamlQaWNrZXJDdXN0b21EaWFsb2cgPSB0cnVlXCI+XG4gICAgICAgIE9wZW4gQ3VzdG9tIERpYWxvZ1xuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicG9wdXBcIiB2LWlmPVwiZW1vamlQaWNrZXJDdXN0b21EaWFsb2dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1ib3hcIiBAY2xpY2s9XCJlbW9qaVBpY2tlckN1c3RvbURpYWxvZyA9IGZhbHNlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCIgQGNsaWNrPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNsb3NlXCI+XG4gICAgICAgICAgICA8YSBAY2xpY2s9XCJlbW9qaVBpY2tlckN1c3RvbURpYWxvZyA9IGZhbHNlXCI+WDwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8aDI+RW1vamkgU2VsZWN0b3I8L2gyPlxuICAgICAgICAgIDxwaWNrZXIgOmRhdGE9XCJpbmRleFwiIDplbW9qaVNpemU9XCIyNFwiIDpuYXRpdmU9XCJ0cnVlXCI+PC9waWNrZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+PC9kaXY+XG4gICAgPGgyPkN1c3RvbSBTZWFyY2ggQW5kIFByZXZpZXcgVGVtcGxhdGVzIEV4YW1wbGU8L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxQaWNrZXIgOmRhdGE9XCJpbmRleFwiIDpuYXRpdmU9XCJ0cnVlXCI+XG4gICAgICAgIDx0ZW1wbGF0ZSBzbG90PVwic2VhcmNoVGVtcGxhdGVcIiBzbG90LXNjb3BlPVwic2xvdFByb3BzXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICA6cGxhY2Vob2xkZXI9XCJzbG90UHJvcHMuaTE4bi5zZWFyY2hcIlxuICAgICAgICAgICAgdi1vbjppbnB1dD1cInNsb3RQcm9wcy5vblNlYXJjaCgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgPHRlbXBsYXRlIHNsb3Q9XCJwcmV2aWV3VGVtcGxhdGVcIiBzbG90LXNjb3BlPVwic2xvdFByb3BzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlld1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1lbW9qaVwiPlxuICAgICAgICAgICAgICA8RW1vamlcbiAgICAgICAgICAgICAgICA6ZGF0YT1cInNsb3RQcm9wcy5kYXRhXCJcbiAgICAgICAgICAgICAgICA6ZW1vamk9XCJzbG90UHJvcHMuZW1vamkgPyBzbG90UHJvcHMuZW1vamkgOiAncG9pbnRfdXAnXCJcbiAgICAgICAgICAgICAgICA6bmF0aXZlPVwic2xvdFByb3BzLmVtb2ppUHJvcHMubmF0aXZlXCJcbiAgICAgICAgICAgICAgICA6c2tpbj1cInNsb3RQcm9wcy5lbW9qaVByb3BzLnNraW5cIlxuICAgICAgICAgICAgICAgIDpzZXQ9XCJzbG90UHJvcHMuZW1vamlQcm9wcy5zZXRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1vamktbWFydC1wcmV2aWV3LWRhdGFcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1uYW1lXCI+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgIHNsb3RQcm9wcy5lbW9qaVxuICAgICAgICAgICAgICAgICAgICA/ICd+JyArIHNsb3RQcm9wcy5lbW9qaS5uYW1lICsgJ34nXG4gICAgICAgICAgICAgICAgICAgIDogJ0Nob29zZS4uLidcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWVzXCI+XG4gICAgICAgICAgICAgICAge3sgc2xvdFByb3BzLmVtb2ppID8gc2xvdFByb3BzLmVtb2ppLmNvbG9ucyA6ICcnIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICA8L1BpY2tlcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj48L2Rpdj5cbiAgICA8aDI+RmlsdGVyZWQgcGlja2VyIGV4YW1wbGU8L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIiB2LXNob3c9XCJmbGFnc1Zpc2libGVcIj5cbiAgICAgIDxQaWNrZXJcbiAgICAgICAgOm5hdGl2ZT1cInRydWVcIlxuICAgICAgICBlbW9qaT1cImZsYWctdGZcIlxuICAgICAgICA6ZW1vamlTaXplPVwiMThcIlxuICAgICAgICA6ZGF0YT1cImluZGV4RmlsdGVyZWRcIlxuICAgICAgICByZWY9XCJmbGFnc1wiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxidXR0b24gQGNsaWNrPVwidG9nZ2xlRmxhZ3NWaXNpYmxlXCI+XG4gICAgICAgIFNob3cgLyBoaWRlIHRoZSBmbGFncyBwaWNrZXIgKHdpdGggdi1zaG93KVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+PC9kaXY+XG4gICAgPGgyPkkxOG4gcGlja2VyIGV4YW1wbGU8L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxQaWNrZXIgZW1vamk9XCJkZXBhcnRtZW50X3N0b3JlXCIgOmRhdGE9XCJpbmRleEkxOG5cIiA6aTE4bj1cImkxOG5cIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPjwvZGl2PlxuICAgIDxoMj5DdXN0b20gb3JkZXIgZXhhbXBsZTwvaDI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPFBpY2tlciA6ZGF0YT1cImluZGV4SW5jbHVkZVwiIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+PC9kaXY+XG4gICAgPGgyPlNtYWxsIHBpY2tlciBleGFtcGxlPC9oMj5cbiAgICA8ZGl2IGNsYXNzPVwicm93IHJvdy1zbWFsbC1waWNrZXJcIj5cbiAgICAgIDxQaWNrZXJcbiAgICAgICAgOmRhdGE9XCJpbmRleFwiXG4gICAgICAgIDpuYXRpdmU9XCJuYXRpdmVcIlxuICAgICAgICA6c2V0PVwiYWN0aXZlU2V0XCJcbiAgICAgICAgOmVtb2ppU2l6ZT1cIjEyXCJcbiAgICAgICAgOnBlckxpbmU9XCI1XCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCBkYXRhIGZyb20gJy4uL2RhdGEvYWxsLmpzb24nXG5pbXBvcnQgeyBQaWNrZXIsIEVtb2ppLCBFbW9qaUluZGV4IH0gZnJvbSAnLi4vc3JjJ1xuaW1wb3J0ICcuLi9jc3MvZW1vamktbWFydC5jc3MnXG5cbmltcG9ydCB7IFFCdG4sIFFEaWFsb2cgfSBmcm9tICdxdWFzYXItZnJhbWV3b3JrL2Rpc3QvcXVhc2FyLm1hdC5lc20nXG5cbmNvbnN0IENVU1RPTV9FTU9KSVMgPSBbXG4gIHtcbiAgICBuYW1lOiAnUGFydHkgUGFycm90JyxcbiAgICBzaG9ydF9uYW1lczogWydwYXJyb3QnXSxcbiAgICBrZXl3b3JkczogWydwYXJ0eSddLFxuICAgIGltYWdlVXJsOiAnLi9pbWFnZXMvcGFycm90LmdpZicsXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnT2N0b2NhdCcsXG4gICAgc2hvcnRfbmFtZXM6IFsnb2N0b2NhdCddLFxuICAgIGtleXdvcmRzOiBbJ2dpdGh1YiddLFxuICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9naXRodWIuZ2l0aHViYXNzZXRzLmNvbS9pbWFnZXMvaWNvbnMvZW1vamkvb2N0b2NhdC5wbmcnLFxuICB9LFxuICB7XG4gICAgbmFtZTogJ1NxdWlycmVsJyxcbiAgICBzaG9ydF9uYW1lczogWydzaGlwaXQnLCAnc3F1aXJyZWwnXSxcbiAgICBrZXl3b3JkczogWydnaXRodWInXSxcbiAgICBpbWFnZVVybDogJ2h0dHBzOi8vZ2l0aHViLmdpdGh1YmFzc2V0cy5jb20vaW1hZ2VzL2ljb25zL2Vtb2ppL3NoaXBpdC5wbmcnLFxuICB9LFxuXVxuXG5sZXQgaW5kZXggPSBuZXcgRW1vamlJbmRleChkYXRhLCB7XG4gIGN1c3RvbTogQ1VTVE9NX0VNT0pJUyxcbn0pXG5cbmxldCBpbmRleEZpbHRlcmVkID0gbmV3IEVtb2ppSW5kZXgoZGF0YSwge1xuICBjdXN0b206IENVU1RPTV9FTU9KSVMsXG4gIGVtb2ppc1RvU2hvd0ZpbHRlcjogKGVtb2ppKSA9PiB7XG4gICAgcmV0dXJuIGVtb2ppLnNob3J0X25hbWVzWzBdLm1hdGNoKC9eZmxhZy4qLykgIT09IG51bGxcbiAgfSxcbn0pXG5cbmNvbnN0IGkxOG4gPSB7XG4gIGNhdGVnb3JpZXM6IHtcbiAgICBzZWFyY2g6ICfmkJzntKLnu5PmnpwnLFxuICAgIHJlY2VudDogJ+e7j+W4uOS9v+eUqCcsXG4gICAgc21pbGV5czogJ+W/g+aDhScsXG4gICAgcGVvcGxlOiAn5Lq654mpJyxcbiAgICBuYXR1cmU6ICfliqjniakgJiDlpKfoh6rnhLYnLFxuICAgIGZvb2RzOiAn6aOf54mpICYg6aWu5paZJyxcbiAgICBhY3Rpdml0eTogJ+a0u+WKqCcsXG4gICAgcGxhY2VzOiAn5peF6KGMICYg5Zyw5qCHJyxcbiAgICBvYmplY3RzOiAn54mp5L2TJyxcbiAgICBzeW1ib2xzOiAn56ym5Y+3JyxcbiAgICBmbGFnczogJ+WbveaXlycsXG4gICAgY3VzdG9tOiAn6Ieq5a6a5LmJJyxcbiAgfSxcbn1cblxuY29uc3QgaW5kZXhJMThuID0gbmV3IEVtb2ppSW5kZXgoZGF0YSwge1xuICBleGNsdWRlOiBbXG4gICAgJ2ZsYWdzJyxcbiAgICAnc3ltYm9scycsXG4gICAgJ29iamVjdHMnLFxuICAgICdhY3Rpdml0eScsXG4gICAgJ2Zvb2RzJyxcbiAgICAncGVvcGxlJyxcbiAgICAncGxhY2VzJyxcbiAgXSxcbn0pXG5cbmNvbnN0IGluZGV4SW5jbHVkZSA9IG5ldyBFbW9qaUluZGV4KGRhdGEsIHtcbiAgaW5jbHVkZTogWyduYXR1cmUnLCAnc21pbGV5cycsICdyZWNlbnQnXSxcbn0pXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgaW5kZXhGaWx0ZXJlZDogaW5kZXhGaWx0ZXJlZCxcbiAgICAgIGluZGV4SW5jbHVkZTogaW5kZXhJbmNsdWRlLFxuICAgICAgaW5kZXhJMThuOiBpbmRleEkxOG4sXG4gICAgICBpMThuOiBpMThuLFxuICAgICAgYWN0aXZlU2V0OiAnbmF0aXZlJyxcbiAgICAgIGVtb2ppOiAncG9pbnRfdXAnLFxuICAgICAgdGl0bGU6ICdQaWNrIHlvdXIgZW1vamnigKYnLFxuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgICAgZW1vamlQaWNrZXJEaWFsb2c6IGZhbHNlLFxuICAgICAgZW1vamlQaWNrZXJDdXN0b21EaWFsb2c6IGZhbHNlLFxuICAgICAgZW1vamlzT3V0cHV0OiAnJyxcbiAgICAgIHNlbGVjdGVkRW1vamlzOiBbXSxcbiAgICAgIGZsYWdzVmlzaWJsZTogdHJ1ZSxcbiAgICB9XG4gIH0sXG4gIGNvbXB1dGVkOiB7XG4gICAgbmF0aXZlKCkge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlU2V0ID09ICduYXRpdmUnXG4gICAgfSxcbiAgICBzbWlsZSgpIHtcbiAgICAgIC8vIFN0YXRpYyBlbW9qaSBleGFtcGxlXG4gICAgICBsZXQgZW1vamkgPSBpbmRleC5maW5kRW1vamkoJzpzbWlsZTonKVxuICAgICAgLy8gTm90ZSwgdGhhdCBwb3NpdGlvbiBpbiB0aGUgZW1vamkgc2hlZXQgaXMgY2FsY3VsYXRlZCBieVxuICAgICAgLy8gYGVtb2ppYCBvYmplY3RcbiAgICAgIGxldCBzdHlsZSA9IGBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAke2Vtb2ppLmdldFBvc2l0aW9uKCl9OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cHM6Ly91bnBrZy5jb20vZW1vamktZGF0YXNvdXJjZS10d2l0dGVyQDE0LjAuMC9pbWcvdHdpdHRlci9zaGVldHMtMjU2LzY0LnBuZyk7IHdpZHRoOiAyNHB4OyBoZWlnaHQ6IDI0cHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYmFja2dyb3VuZC1zaXplOiA1NzAwJWBcbiAgICAgIHJldHVybiBgPGRpdiBjbGFzcz0nZW1vamknIHN0eWxlPVwiJHtzdHlsZX1cIj48L2Rpdj5gXG4gICAgfSxcbiAgICBzYW50YUVtb2ppT2JqZWN0KCkge1xuICAgICAgcmV0dXJuIGluZGV4LmZpbmRFbW9qaSgnOnNhbnRhOicpXG4gICAgfSxcbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIHRvZ2dsZVZpc2libGUoKSB7XG4gICAgICB0aGlzLmlzVmlzaWJsZSA9ICF0aGlzLmlzVmlzaWJsZVxuICAgIH0sXG4gICAgdG9nZ2xlRmxhZ3NWaXNpYmxlKCkge1xuICAgICAgdGhpcy5mbGFnc1Zpc2libGUgPSAhdGhpcy5mbGFnc1Zpc2libGVcbiAgICAgIGlmICghdGhpcy5mbGFnc1Zpc2libGUpIHtcbiAgICAgICAgdGhpcy4kcmVmcy5mbGFncy5vbkFuY2hvckNsaWNrKHRoaXMuJHJlZnMuZmxhZ3MuY2F0ZWdvcmllc1swXSlcbiAgICAgIH1cbiAgICB9LFxuICAgIHNob3dFbW9qaShlbW9qaSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEVtb2ppcy5wdXNoKGVtb2ppKVxuICAgICAgaWYgKGVtb2ppLm5hdGl2ZSkge1xuICAgICAgICB0aGlzLmVtb2ppc091dHB1dCA9IHRoaXMuZW1vamlzT3V0cHV0ICsgZW1vamkubmF0aXZlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVtb2ppc091dHB1dCA9IHRoaXMuZW1vamlzT3V0cHV0ICsgJz8nXG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgY29tcG9uZW50czoge1xuICAgIFBpY2tlcixcbiAgICBFbW9qaSxcbiAgICBRQnRuLFxuICAgIFFEaWFsb2csXG4gIH0sXG59XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbmJ1dHRvbiArIGJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbn1cbmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAuNGVtIDAuNmVtO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgb3V0bGluZTogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5idXR0b25bZGlzYWJsZWRdIHtcbiAgYm9yZGVyLWNvbG9yOiAjYWU2NWM1O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5tb2RhbCB7XG4gIGNvbG9yOiByZWQ7XG59XG5cbi8qKlxuICogU2VlIGh0dHBzOi8vdnVlLWxvYWRlci52dWVqcy5vcmcvZ3VpZGUvc2NvcGVkLWNzcy5odG1sI2RlZXAtc2VsZWN0b3JzXG4gKiB0aGUgYD4+PmAgYWxsb3dzIHRvIGFwcGx5IHNjb3BlZCBjc3MgdG8gY2hpbGQgZWxlbWVudCB0aGF0IGlzIGdlbmVyYXRlZFxuICogZHluYW1pY2FsbHlcbioqL1xuLm1vZGFsID4+PiAubW9kYWwtc2Nyb2xsIHtcbiAgY29sb3I6IHJlZDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbn1cbi5tb2RhbCAubW9kYWwtYm9keSB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG59XG5cbmgxIHtcbiAgZm9udC1mYW1pbHk6IENvdXJpZXI7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbn1cblxuaDIge1xuICBmb250LWZhbWlseTogQ291cmllcjtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBtYXJnaW4tdG9wOiAycmVtO1xufVxuXG4uYXBwIC5yb3cge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnJvdyArIC5yb3cge1xuICBtYXJnaW4tdG9wOiAyZW07XG59XG5cbi5yb3ctc21hbGwge1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG5cbi5lbW9qaS1tYXJ0IHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5lbW9qaS1tYXJ0LXRpdGxlLWxhYmVsIHtcbiAgZm9udC1zaXplOiAyMXB4O1xufVxuXG4ucG9wdXAge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDIwMDtcbiAgYmFja2dyb3VuZDogcmViZWNjYXB1cnBsZTtcbiAgb3BhY2l0eTogOTUlO1xufVxuLnBvcHVwLWJveCB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLXRvcDogMTIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA4MHB4O1xufVxuLnBvcHVwLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm94LXNoYWRvdzogMHB4IDI0cHggNTRweCByZ2JhKDIwLCAyOCwgNDksIDAuMTQpO1xuICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICBwYWRkaW5nOiA2cHggNnB4IDlweCA2cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNDYycHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuLnBvcHVwLWNsb3NlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDIwcHg7XG4gIHJpZ2h0OiAzMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5yb3ctc21hbGwtcGlja2VyID4+PiAuZW1vamktbWFydC1hbmNob3JzIHN2ZyB7XG4gIHdpZHRoOiA5cHg7XG4gIGhlaWdodDogOXB4O1xufVxuLnJvdy1zbWFsbC1waWNrZXIgPj4+IC5lbW9qaS1tYXJ0LXRpdGxlLWxhYmVsIHtcbiAgZm9udC1zaXplOiA5cHg7XG59XG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtcHJldmlldy1kYXRhIHtcbiAgbGVmdDogNDBweDtcbiAgZm9udC1zaXplOiA5cHg7XG59XG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtcHJldmlldy1uYW1lIHtcbiAgZm9udC1zaXplOiA5cHg7XG59XG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtcHJldmlldy1lbW9qaSAuZW1vamktdHlwZS1uYXRpdmUge1xuICBmb250LXNpemU6IDEycHg7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICA8Y29tcG9uZW50XG4gICAgOmlzPVwidGFnXCJcbiAgICB2LWlmPVwidmlldy5jYW5SZW5kZXJcIlxuICAgIDp0aXRsZT1cInZpZXcudGl0bGVcIlxuICAgIDphcmlhLWxhYmVsPVwidmlldy5hcmlhTGFiZWxcIlxuICAgIDpkYXRhLXRpdGxlPVwidGl0bGVcIlxuICAgIGNsYXNzPVwiZW1vamktbWFydC1lbW9qaVwiXG4gICAgQG1vdXNlZW50ZXI9XCJvbk1vdXNlRW50ZXJcIlxuICAgIEBtb3VzZWxlYXZlPVwib25Nb3VzZUxlYXZlXCJcbiAgICBAY2xpY2s9XCJvbkNsaWNrXCJcbiAgPlxuICAgIDxzcGFuIDpjbGFzcz1cInZpZXcuY3NzQ2xhc3NcIiA6c3R5bGU9XCJ2aWV3LmNzc1N0eWxlXCI+e3tcbiAgICAgIHZpZXcuY29udGVudFxuICAgIH19PC9zcGFuPlxuICA8L2NvbXBvbmVudD5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgeyBFbW9qaVByb3BzIH0gZnJvbSAnLi4vdXRpbHMvc2hhcmVkLXByb3BzJ1xuaW1wb3J0IHsgRW1vamlWaWV3IH0gZnJvbSAnLi4vdXRpbHMvZW1vamktZGF0YSdcblxuZXhwb3J0IGRlZmF1bHQge1xuICBwcm9wczoge1xuICAgIC4uLkVtb2ppUHJvcHMsXG4gICAgZGF0YToge1xuICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSxcbiAgfSxcbiAgY29tcHV0ZWQ6IHtcbiAgICB2aWV3KCkge1xuICAgICAgcmV0dXJuIG5ldyBFbW9qaVZpZXcoXG4gICAgICAgIHRoaXMuZW1vamlPYmplY3QsXG4gICAgICAgIHRoaXMuc2tpbixcbiAgICAgICAgdGhpcy5zZXQsXG4gICAgICAgIHRoaXMubmF0aXZlLFxuICAgICAgICB0aGlzLmZhbGxiYWNrLFxuICAgICAgICB0aGlzLnRvb2x0aXAsXG4gICAgICAgIHRoaXMuc2l6ZSxcbiAgICAgIClcbiAgICB9LFxuICAgIHNhbml0aXplZERhdGEoKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbW9qaU9iamVjdC5fc2FuaXRpemVkXG4gICAgfSxcbiAgICB0aXRsZSgpIHtcbiAgICAgIHJldHVybiB0aGlzLnRvb2x0aXAgPyB0aGlzLmVtb2ppT2JqZWN0LnNob3J0X25hbWUgOiBudWxsXG4gICAgfSxcbiAgICBlbW9qaU9iamVjdCgpIHtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5lbW9qaSA9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmZpbmRFbW9qaSh0aGlzLmVtb2ppKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW1vamlcbiAgICAgIH1cbiAgICB9LFxuICB9LFxuICBjcmVhdGVkKCkge30sXG4gIG1ldGhvZHM6IHtcbiAgICBvbkNsaWNrKCkge1xuICAgICAgdGhpcy4kZW1pdCgnY2xpY2snLCB0aGlzLmVtb2ppT2JqZWN0KVxuICAgIH0sXG4gICAgb25Nb3VzZUVudGVyKCkge1xuICAgICAgdGhpcy4kZW1pdCgnbW91c2VlbnRlcicsIHRoaXMuZW1vamlPYmplY3QpXG4gICAgfSxcbiAgICBvbk1vdXNlTGVhdmUoKSB7XG4gICAgICB0aGlzLiRlbWl0KCdtb3VzZWxlYXZlJywgdGhpcy5lbW9qaU9iamVjdClcbiAgICB9LFxuICB9LFxufVxuPC9zY3JpcHQ+XG4iLCI8dGVtcGxhdGU+XG4gIDxzZWN0aW9uIGNsYXNzPVwiZW1vamktbWFydCBlbW9qaS1tYXJ0LXN0YXRpY1wiIDpzdHlsZT1cImN1c3RvbVN0eWxlc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LWJhciBlbW9qaS1tYXJ0LWJhci1hbmNob3JzXCIgdi1pZj1cInNob3dDYXRlZ29yaWVzXCI+XG4gICAgICA8YW5jaG9yc1xuICAgICAgICA6ZGF0YT1cImRhdGFcIlxuICAgICAgICA6aTE4bj1cIm1lcmdlZEkxOG5cIlxuICAgICAgICA6Y29sb3I9XCJjb2xvclwiXG4gICAgICAgIDpjYXRlZ29yaWVzPVwidmlldy5hbGxDYXRlZ29yaWVzXCJcbiAgICAgICAgOmFjdGl2ZS1jYXRlZ29yeT1cInZpZXcuYWN0aXZlQ2F0ZWdvcnlcIlxuICAgICAgICBAY2xpY2s9XCJvbkFuY2hvckNsaWNrXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8c2xvdFxuICAgICAgbmFtZT1cInNlYXJjaFRlbXBsYXRlXCJcbiAgICAgIDpkYXRhPVwiZGF0YVwiXG4gICAgICA6aTE4bj1cImkxOG5cIlxuICAgICAgOmF1dG8tZm9jdXM9XCJhdXRvRm9jdXNcIlxuICAgICAgOm9uLXNlYXJjaD1cIm9uU2VhcmNoXCJcbiAgICA+XG4gICAgICA8c2VhcmNoXG4gICAgICAgIHYtaWY9XCJzaG93U2VhcmNoXCJcbiAgICAgICAgcmVmPVwic2VhcmNoXCJcbiAgICAgICAgOmRhdGE9XCJkYXRhXCJcbiAgICAgICAgOmkxOG49XCJtZXJnZWRJMThuXCJcbiAgICAgICAgOmF1dG8tZm9jdXM9XCJhdXRvRm9jdXNcIlxuICAgICAgICA6b24tc2VhcmNoPVwib25TZWFyY2hcIlxuICAgICAgICBAc2VhcmNoPVwib25TZWFyY2hcIlxuICAgICAgICBAYXJyb3dMZWZ0PVwib25BcnJvd0xlZnRcIlxuICAgICAgICBAYXJyb3dSaWdodD1cIm9uQXJyb3dSaWdodFwiXG4gICAgICAgIEBhcnJvd0Rvd249XCJvbkFycm93RG93blwiXG4gICAgICAgIEBhcnJvd1VwPVwib25BcnJvd1VwXCJcbiAgICAgICAgQGVudGVyPVwib25FbnRlclwiXG4gICAgICAvPlxuICAgIDwvc2xvdD5cblxuICAgIDxkaXZcbiAgICAgIHJvbGU9XCJ0YWJwYW5lbFwiXG4gICAgICBjbGFzcz1cImVtb2ppLW1hcnQtc2Nyb2xsXCJcbiAgICAgIHJlZj1cInNjcm9sbFwiXG4gICAgICBAc2Nyb2xsPVwib25TY3JvbGxcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgaWQ9XCJlbW9qaS1tYXJ0LWxpc3RcIlxuICAgICAgICByZWY9XCJzY3JvbGxDb250ZW50XCJcbiAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgICBhcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxjYXRlZ29yeVxuICAgICAgICAgIHYtZm9yPVwiKGNhdGVnb3J5LCBpZHgpIGluIHZpZXcuZmlsdGVyZWRDYXRlZ29yaWVzXCJcbiAgICAgICAgICB2LXNob3c9XCJpbmZpbml0ZVNjcm9sbCB8fCBjYXRlZ29yeSA9PSB2aWV3LmFjdGl2ZUNhdGVnb3J5XCJcbiAgICAgICAgICA6cmVmPVwiJ2NhdGVnb3JpZXNfJyArIGlkeFwiXG4gICAgICAgICAgOmtleT1cImNhdGVnb3J5LmlkXCJcbiAgICAgICAgICA6ZGF0YT1cImRhdGFcIlxuICAgICAgICAgIDppMThuPVwibWVyZ2VkSTE4blwiXG4gICAgICAgICAgOmlkPVwiY2F0ZWdvcnkuaWRcIlxuICAgICAgICAgIDpuYW1lPVwiY2F0ZWdvcnkubmFtZVwiXG4gICAgICAgICAgOmVtb2ppcz1cImNhdGVnb3J5LmVtb2ppc1wiXG4gICAgICAgICAgOmVtb2ppLXByb3BzPVwiZW1vamlQcm9wc1wiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxzbG90XG4gICAgICBuYW1lPVwicHJldmlld1RlbXBsYXRlXCJcbiAgICAgIDpkYXRhPVwiZGF0YVwiXG4gICAgICA6dGl0bGU9XCJ0aXRsZVwiXG4gICAgICA6ZW1vamk9XCJ2aWV3LnByZXZpZXdFbW9qaVwiXG4gICAgICA6aWRsZS1lbW9qaT1cImlkbGVFbW9qaVwiXG4gICAgICA6c2hvdy1za2luLXRvbmVzPVwic2hvd1NraW5Ub25lc1wiXG4gICAgICA6ZW1vamktcHJvcHM9XCJlbW9qaVByb3BzXCJcbiAgICAgIDpza2luLXByb3BzPVwic2tpblByb3BzXCJcbiAgICAgIDpvbi1za2luLWNoYW5nZT1cIm9uU2tpbkNoYW5nZVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtYmFyIGVtb2ppLW1hcnQtYmFyLXByZXZpZXdcIiB2LWlmPVwic2hvd1ByZXZpZXdcIj5cbiAgICAgICAgPHByZXZpZXdcbiAgICAgICAgICA6ZGF0YT1cImRhdGFcIlxuICAgICAgICAgIDp0aXRsZT1cInRpdGxlXCJcbiAgICAgICAgICA6ZW1vamk9XCJ2aWV3LnByZXZpZXdFbW9qaVwiXG4gICAgICAgICAgOmlkbGUtZW1vamk9XCJpZGxlRW1vamlcIlxuICAgICAgICAgIDpzaG93LXNraW4tdG9uZXM9XCJzaG93U2tpblRvbmVzXCJcbiAgICAgICAgICA6ZW1vamktcHJvcHM9XCJlbW9qaVByb3BzXCJcbiAgICAgICAgICA6c2tpbi1wcm9wcz1cInNraW5Qcm9wc1wiXG4gICAgICAgICAgOm9uLXNraW4tY2hhbmdlPVwib25Ta2luQ2hhbmdlXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvc2xvdD5cbiAgPC9zZWN0aW9uPlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCAnLi4vdmVuZG9yL3JhZi1wb2x5ZmlsbCdcbmltcG9ydCBzdG9yZSBmcm9tICcuLi91dGlscy9zdG9yZSdcbmltcG9ydCBmcmVxdWVudGx5IGZyb20gJy4uL3V0aWxzL2ZyZXF1ZW50bHknXG5pbXBvcnQgeyBkZWVwTWVyZ2UsIG1lYXN1cmVTY3JvbGxiYXIgfSBmcm9tICcuLi91dGlscydcbmltcG9ydCB7IFBpY2tlclByb3BzIH0gZnJvbSAnLi4vdXRpbHMvc2hhcmVkLXByb3BzJ1xuaW1wb3J0IHsgUGlja2VyVmlldyB9IGZyb20gJy4uL3V0aWxzL3BpY2tlcidcbmltcG9ydCBBbmNob3JzIGZyb20gJy4vYW5jaG9ycy52dWUnXG5pbXBvcnQgQ2F0ZWdvcnkgZnJvbSAnLi9jYXRlZ29yeS52dWUnXG5pbXBvcnQgUHJldmlldyBmcm9tICcuL3ByZXZpZXcudnVlJ1xuaW1wb3J0IFNlYXJjaCBmcm9tICcuL3NlYXJjaC52dWUnXG5cbmNvbnN0IEkxOE4gPSB7XG4gIHNlYXJjaDogJ1NlYXJjaCcsXG4gIG5vdGZvdW5kOiAnTm8gRW1vamkgRm91bmQnLFxuICBjYXRlZ29yaWVzOiB7XG4gICAgc2VhcmNoOiAnU2VhcmNoIFJlc3VsdHMnLFxuICAgIHJlY2VudDogJ0ZyZXF1ZW50bHkgVXNlZCcsXG4gICAgc21pbGV5czogJ1NtaWxleXMgJiBFbW90aW9uJyxcbiAgICBwZW9wbGU6ICdQZW9wbGUgJiBCb2R5JyxcbiAgICBuYXR1cmU6ICdBbmltYWxzICYgTmF0dXJlJyxcbiAgICBmb29kczogJ0Zvb2QgJiBEcmluaycsXG4gICAgYWN0aXZpdHk6ICdBY3Rpdml0eScsXG4gICAgcGxhY2VzOiAnVHJhdmVsICYgUGxhY2VzJyxcbiAgICBvYmplY3RzOiAnT2JqZWN0cycsXG4gICAgc3ltYm9sczogJ1N5bWJvbHMnLFxuICAgIGZsYWdzOiAnRmxhZ3MnLFxuICAgIGN1c3RvbTogJ0N1c3RvbScsXG4gIH0sXG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcHJvcHM6IHtcbiAgICAuLi5QaWNrZXJQcm9wcyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiBPYmplY3QsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9LFxuICB9LFxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBhY3RpdmVTa2luOiB0aGlzLnNraW4gfHwgc3RvcmUuZ2V0KCdza2luJykgfHwgdGhpcy5kZWZhdWx0U2tpbixcbiAgICAgIHZpZXc6IG5ldyBQaWNrZXJWaWV3KHRoaXMpLFxuICAgIH1cbiAgfSxcbiAgY29tcHV0ZWQ6IHtcbiAgICBjdXN0b21TdHlsZXMoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB3aWR0aDogdGhpcy5jYWxjdWxhdGVXaWR0aCArICdweCcsXG4gICAgICAgIC4uLnRoaXMucGlja2VyU3R5bGVzLFxuICAgICAgfVxuICAgIH0sXG4gICAgZW1vamlQcm9wcygpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hdGl2ZTogdGhpcy5uYXRpdmUsXG4gICAgICAgIHNraW46IHRoaXMuYWN0aXZlU2tpbixcbiAgICAgICAgc2V0OiB0aGlzLnNldCxcbiAgICAgICAgZW1vamlUb29sdGlwOiB0aGlzLmVtb2ppVG9vbHRpcCxcbiAgICAgICAgZW1vamlTaXplOiB0aGlzLmVtb2ppU2l6ZSxcbiAgICAgICAgc2VsZWN0ZWRFbW9qaTogdGhpcy52aWV3LnByZXZpZXdFbW9qaSxcbiAgICAgICAgc2VsZWN0ZWRFbW9qaUNhdGVnb3J5OiB0aGlzLnZpZXcucHJldmlld0Vtb2ppQ2F0ZWdvcnksXG4gICAgICAgIG9uRW50ZXI6IHRoaXMub25FbW9qaUVudGVyLmJpbmQodGhpcyksXG4gICAgICAgIG9uTGVhdmU6IHRoaXMub25FbW9qaUxlYXZlLmJpbmQodGhpcyksXG4gICAgICAgIG9uQ2xpY2s6IHRoaXMub25FbW9qaUNsaWNrLmJpbmQodGhpcyksXG4gICAgICB9XG4gICAgfSxcbiAgICBza2luUHJvcHMoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBza2luOiB0aGlzLmFjdGl2ZVNraW4sXG4gICAgICB9XG4gICAgfSxcbiAgICBjYWxjdWxhdGVXaWR0aCgpIHtcbiAgICAgIHJldHVybiB0aGlzLnBlckxpbmUgKiAodGhpcy5lbW9qaVNpemUgKyAxMikgKyAxMiArIDIgKyBtZWFzdXJlU2Nyb2xsYmFyKClcbiAgICB9LFxuICAgIC8vIGVtb2ppc1BlclJvdygpIHtcbiAgICAvLyAgIGNvbnN0IGxpc3RFbCA9IHRoaXMuJHJlZnMuc2Nyb2xsQ29udGVudFxuICAgIC8vICAgY29uc3QgZW1vamlFbCA9IGxpc3RFbC5xdWVyeVNlbGVjdG9yKCcuZW1vamktbWFydC1lbW9qaScpXG4gICAgLy8gICByZXR1cm4gTWF0aC5mbG9vcihsaXN0RWwub2Zmc2V0V2lkdGggLyBlbW9qaUVsLm9mZnNldFdpZHRoKVxuICAgIC8vIH0sXG4gICAgZmlsdGVyZWRDYXRlZ29yaWVzKCkge1xuICAgICAgcmV0dXJuIHRoaXMudmlldy5maWx0ZXJlZENhdGVnb3JpZXNcbiAgICB9LFxuICAgIG1lcmdlZEkxOG4oKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmZyZWV6ZShkZWVwTWVyZ2UoSTE4TiwgdGhpcy5pMThuKSlcbiAgICB9LFxuICAgIGlkbGVFbW9qaSgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEuZW1vamkodGhpcy5lbW9qaSlcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnRGVmYXVsdCBwcmV2aWV3IGVtb2ppIGAnICtcbiAgICAgICAgICAgIHRoaXMuZW1vamkgK1xuICAgICAgICAgICAgJ2AgaXMgbm90IGF2YWlsYWJsZSwgY2hlY2sgdGhlIFBpY2tlciBgZW1vamlgIHByb3BlcnR5JyxcbiAgICAgICAgKVxuICAgICAgICBjb25zb2xlLmVycm9yKGUpXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEuZmlyc3RFbW9qaSgpXG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIG9uU2Nyb2xsKCkge1xuICAgICAgaWYgKHRoaXMuaW5maW5pdGVTY3JvbGwgJiYgIXRoaXMud2FpdGluZ0ZvclBhaW50KSB7XG4gICAgICAgIHRoaXMud2FpdGluZ0ZvclBhaW50ID0gdHJ1ZVxuICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMub25TY3JvbGxQYWludC5iaW5kKHRoaXMpKVxuICAgICAgfVxuICAgIH0sXG4gICAgb25TY3JvbGxQYWludCgpIHtcbiAgICAgIHRoaXMud2FpdGluZ0ZvclBhaW50ID0gZmFsc2VcbiAgICAgIHRoaXMudmlldy5vblNjcm9sbCgpXG4gICAgfSxcbiAgICBvbkFuY2hvckNsaWNrKGNhdGVnb3J5KSB7XG4gICAgICB0aGlzLnZpZXcub25BbmNob3JDbGljayhjYXRlZ29yeSlcbiAgICB9LFxuICAgIG9uU2VhcmNoKHZhbHVlKSB7XG4gICAgICB0aGlzLnZpZXcub25TZWFyY2godmFsdWUpXG4gICAgfSxcbiAgICBvbkVtb2ppRW50ZXIoZW1vamkpIHtcbiAgICAgIHRoaXMudmlldy5vbkVtb2ppRW50ZXIoZW1vamkpXG4gICAgfSxcbiAgICBvbkVtb2ppTGVhdmUoZW1vamkpIHtcbiAgICAgIHRoaXMudmlldy5vbkVtb2ppTGVhdmUoZW1vamkpXG4gICAgfSxcbiAgICBvbkFycm93TGVmdCgkZXZlbnQpIHtcbiAgICAgIGNvbnN0IG9sZElkeCA9IHRoaXMudmlldy5wcmV2aWV3RW1vamlJZHhcbiAgICAgIHRoaXMudmlldy5vbkFycm93TGVmdCgpXG4gICAgICBpZiAoJGV2ZW50ICYmIHRoaXMudmlldy5wcmV2aWV3RW1vamlJZHggIT09IG9sZElkeCkge1xuICAgICAgICAvLyBQcmV2ZW50IGN1cnNvciBtb3ZlbWVudCBpbnNpZGUgdGhlIGlucHV0XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG4gICAgfSxcbiAgICBvbkFycm93UmlnaHQoKSB7XG4gICAgICB0aGlzLnZpZXcub25BcnJvd1JpZ2h0KClcbiAgICB9LFxuICAgIG9uQXJyb3dEb3duKCkge1xuICAgICAgdGhpcy52aWV3Lm9uQXJyb3dEb3duKClcbiAgICB9LFxuICAgIG9uQXJyb3dVcCgkZXZlbnQpIHtcbiAgICAgIHRoaXMudmlldy5vbkFycm93VXAoKVxuICAgICAgLy8gUHJldmVudCBjdXJzb3IgbW92ZW1lbnQgaW5zaWRlIHRoZSBpbnB1dFxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9LFxuICAgIG9uRW50ZXIoZW1vamkpIHtcbiAgICAgIHRoaXMuJGVtaXQoJ3NlbGVjdCcsIHRoaXMudmlldy5wcmV2aWV3RW1vamkpXG4gICAgICBmcmVxdWVudGx5LmFkZCh0aGlzLnZpZXcucHJldmlld0Vtb2ppKVxuICAgIH0sXG4gICAgb25FbW9qaUNsaWNrKGVtb2ppKSB7XG4gICAgICB0aGlzLiRlbWl0KCdzZWxlY3QnLCBlbW9qaSlcbiAgICAgIGZyZXF1ZW50bHkuYWRkKGVtb2ppKVxuICAgIH0sXG4gICAgb25Ta2luQ2hhbmdlKHNraW4pIHtcbiAgICAgIHRoaXMuYWN0aXZlU2tpbiA9IHNraW5cbiAgICAgIHN0b3JlLnVwZGF0ZSh7IHNraW4gfSlcblxuICAgICAgdGhpcy4kZW1pdCgnc2tpbi1jaGFuZ2UnLCBza2luKVxuICAgIH0sXG4gICAgZ2V0Q2F0ZWdvcnlDb21wb25lbnQoaW5kZXgpIHtcbiAgICAgIGxldCBjb21wb25lbnQgPSB0aGlzLiRyZWZzWydjYXRlZ29yaWVzXycgKyBpbmRleF1cbiAgICAgIGlmIChjb21wb25lbnQgJiYgJzAnIGluIGNvbXBvbmVudCkge1xuICAgICAgICAvLyBWdWUgMiBoYXMgJHJlZnMgdW5kZXIgdi1mb3IgYXMgYW4gYXJyYXkuXG4gICAgICAgIHJldHVybiBjb21wb25lbnRbJzAnXVxuICAgICAgfVxuICAgICAgLy8gVnVlIDMgZG9lcyBub3Qgc3VwcG9ydCAkcmVmcyBhcyBhcnJheS5cbiAgICAgIHJldHVybiBjb21wb25lbnRcbiAgICB9LFxuICB9LFxuICBjb21wb25lbnRzOiB7XG4gICAgQW5jaG9ycyxcbiAgICBDYXRlZ29yeSxcbiAgICBQcmV2aWV3LFxuICAgIFNlYXJjaCxcbiAgfSxcbn1cbjwvc2NyaXB0PlxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2IHJvbGU9XCJ0YWJsaXN0XCIgY2xhc3M9XCJlbW9qaS1tYXJ0LWFuY2hvcnNcIj5cbiAgICA8YnV0dG9uXG4gICAgICB2LWZvcj1cImNhdGVnb3J5IGluIGNhdGVnb3JpZXNcIlxuICAgICAgcm9sZT1cInRhYlwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIDphcmlhLWxhYmVsPVwiY2F0ZWdvcnkubmFtZVwiXG4gICAgICA6YXJpYS1zZWxlY3RlZD1cImNhdGVnb3J5LmlkID09IGFjdGl2ZUNhdGVnb3J5LmlkXCJcbiAgICAgIDprZXk9XCJjYXRlZ29yeS5pZFwiXG4gICAgICA6Y2xhc3M9XCJ7XG4gICAgICAgICdlbW9qaS1tYXJ0LWFuY2hvcic6IHRydWUsXG4gICAgICAgICdlbW9qaS1tYXJ0LWFuY2hvci1zZWxlY3RlZCc6IGNhdGVnb3J5LmlkID09IGFjdGl2ZUNhdGVnb3J5LmlkLFxuICAgICAgfVwiXG4gICAgICA6c3R5bGU9XCJ7IGNvbG9yOiBjYXRlZ29yeS5pZCA9PSBhY3RpdmVDYXRlZ29yeS5pZCA/IGNvbG9yIDogJycgfVwiXG4gICAgICA6ZGF0YS10aXRsZT1cImkxOG4uY2F0ZWdvcmllc1tjYXRlZ29yeS5pZF1cIlxuICAgICAgQGNsaWNrPVwiJGVtaXQoJ2NsaWNrJywgY2F0ZWdvcnkpXCJcbiAgICA+XG4gICAgICA8ZGl2IGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHYtaHRtbD1cInN2Z3NbY2F0ZWdvcnkuaWRdXCIgLz5cbiAgICAgIDxzcGFuXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIGNsYXNzPVwiZW1vamktbWFydC1hbmNob3ItYmFyXCJcbiAgICAgICAgOnN0eWxlPVwieyBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yIH1cIlxuICAgICAgPjwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IHN2Z3MgZnJvbSAnLi4vc3ZncydcblxuZXhwb3J0IGRlZmF1bHQge1xuICBwcm9wczoge1xuICAgIGkxOG46IHtcbiAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAgY29sb3I6IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgIHR5cGU6IEFycmF5LFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSxcbiAgICBhY3RpdmVDYXRlZ29yeToge1xuICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgZGVmYXVsdCgpIHtcbiAgICAgICAgcmV0dXJuIHt9XG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIGNyZWF0ZWQoKSB7XG4gICAgdGhpcy5zdmdzID0gc3Znc1xuICB9LFxufVxuPC9zY3JpcHQ+XG4iLCI8dGVtcGxhdGU+XG4gIDxzZWN0aW9uXG4gICAgOmNsYXNzPVwie1xuICAgICAgJ2Vtb2ppLW1hcnQtY2F0ZWdvcnknOiB0cnVlLFxuICAgICAgJ2Vtb2ppLW1hcnQtbm8tcmVzdWx0cyc6ICFoYXNSZXN1bHRzLFxuICAgIH1cIlxuICAgIDphcmlhLWxhYmVsPVwiaTE4bi5jYXRlZ29yaWVzW2lkXVwiXG4gICAgdi1pZj1cImlzVmlzaWJsZSAmJiAoaXNTZWFyY2ggfHwgaGFzUmVzdWx0cylcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWxcIj5cbiAgICAgIDxoMyBjbGFzcz1cImVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWxcIj57eyBpMThuLmNhdGVnb3JpZXNbaWRdIH19PC9oMz5cbiAgICA8L2Rpdj5cblxuICAgIDx0ZW1wbGF0ZSB2LWZvcj1cInsgZW1vamlPYmplY3QsIGVtb2ppVmlldyB9IGluIGVtb2ppT2JqZWN0c1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB2LWlmPVwiZW1vamlWaWV3LmNhblJlbmRlclwiXG4gICAgICAgIDphcmlhLWxhYmVsPVwiZW1vamlWaWV3LmFyaWFMYWJlbFwiXG4gICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICBhcmlhLXNlbGVjdGVkPVwiZmFsc2VcIlxuICAgICAgICBhcmlhLXBvc2luc2V0PVwiMVwiXG4gICAgICAgIGFyaWEtc2V0c2l6ZT1cIjE4MTJcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgOmRhdGEtdGl0bGU9XCJlbW9qaU9iamVjdC5zaG9ydF9uYW1lXCJcbiAgICAgICAgOmtleT1cImVtb2ppT2JqZWN0LmlkXCJcbiAgICAgICAgOnRpdGxlPVwiZW1vamlWaWV3LnRpdGxlXCJcbiAgICAgICAgY2xhc3M9XCJlbW9qaS1tYXJ0LWVtb2ppXCJcbiAgICAgICAgOmNsYXNzPVwiYWN0aXZlQ2xhc3MoZW1vamlPYmplY3QpXCJcbiAgICAgICAgQG1vdXNlZW50ZXI9XCJlbW9qaVByb3BzLm9uRW50ZXIoZW1vamlWaWV3LmdldEVtb2ppKCkpXCJcbiAgICAgICAgQG1vdXNlbGVhdmU9XCJlbW9qaVByb3BzLm9uTGVhdmUoZW1vamlWaWV3LmdldEVtb2ppKCkpXCJcbiAgICAgICAgQGNsaWNrPVwiZW1vamlQcm9wcy5vbkNsaWNrKGVtb2ppVmlldy5nZXRFbW9qaSgpKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIDpjbGFzcz1cImVtb2ppVmlldy5jc3NDbGFzc1wiIDpzdHlsZT1cImVtb2ppVmlldy5jc3NTdHlsZVwiPnt7XG4gICAgICAgICAgZW1vamlWaWV3LmNvbnRlbnRcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3RlbXBsYXRlPlxuXG4gICAgPGRpdiB2LWlmPVwiIWhhc1Jlc3VsdHNcIj5cbiAgICAgIDxlbW9qaVxuICAgICAgICA6ZGF0YT1cImRhdGFcIlxuICAgICAgICBlbW9qaT1cInNsZXV0aF9vcl9zcHlcIlxuICAgICAgICA6bmF0aXZlPVwiZW1vamlQcm9wcy5uYXRpdmVcIlxuICAgICAgICA6c2tpbj1cImVtb2ppUHJvcHMuc2tpblwiXG4gICAgICAgIDpzZXQ9XCJlbW9qaVByb3BzLnNldFwiXG4gICAgICAvPlxuICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtbm8tcmVzdWx0cy1sYWJlbFwiPnt7IGkxOG4ubm90Zm91bmQgfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCB7IEVtb2ppVmlldyB9IGZyb20gJy4uL3V0aWxzL2Vtb2ppLWRhdGEnXG5pbXBvcnQgRW1vamkgZnJvbSAnLi9FbW9qaS52dWUnXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcHJvcHM6IHtcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiBPYmplY3QsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9LFxuICAgIGkxOG46IHtcbiAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAgaWQ6IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAgbmFtZToge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSxcbiAgICBlbW9qaXM6IHtcbiAgICAgIHR5cGU6IEFycmF5LFxuICAgIH0sXG4gICAgZW1vamlQcm9wczoge1xuICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSxcbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIGFjdGl2ZUNsYXNzOiBmdW5jdGlvbihlbW9qaU9iamVjdCkge1xuICAgICAgaWYgKCF0aGlzLmVtb2ppUHJvcHMuc2VsZWN0ZWRFbW9qaSkge1xuICAgICAgICByZXR1cm4gJydcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5lbW9qaVByb3BzLnNlbGVjdGVkRW1vamlDYXRlZ29yeSkge1xuICAgICAgICByZXR1cm4gJydcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5lbW9qaVByb3BzLnNlbGVjdGVkRW1vamkuaWQgPT0gZW1vamlPYmplY3QuaWQgJiZcbiAgICAgICAgdGhpcy5lbW9qaVByb3BzLnNlbGVjdGVkRW1vamlDYXRlZ29yeS5pZCA9PSB0aGlzLmlkXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuICdlbW9qaS1tYXJ0LWVtb2ppLXNlbGVjdGVkJ1xuICAgICAgfVxuICAgICAgcmV0dXJuICcnXG4gICAgfSxcbiAgfSxcbiAgY29tcHV0ZWQ6IHtcbiAgICBpc1Zpc2libGUoKSB7XG4gICAgICByZXR1cm4gISF0aGlzLmVtb2ppc1xuICAgIH0sXG4gICAgaXNTZWFyY2goKSB7XG4gICAgICByZXR1cm4gdGhpcy5uYW1lID09ICdTZWFyY2gnXG4gICAgfSxcbiAgICBoYXNSZXN1bHRzKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZW1vamlzLmxlbmd0aCA+IDBcbiAgICB9LFxuICAgIGVtb2ppT2JqZWN0cygpIHtcbiAgICAgIHJldHVybiB0aGlzLmVtb2ppcy5tYXAoKGVtb2ppKSA9PiB7XG4gICAgICAgIGxldCBlbW9qaU9iamVjdCA9IGVtb2ppXG4gICAgICAgIGxldCBlbW9qaVZpZXcgPSBuZXcgRW1vamlWaWV3KFxuICAgICAgICAgIGVtb2ppLFxuICAgICAgICAgIHRoaXMuZW1vamlQcm9wcy5za2luLFxuICAgICAgICAgIHRoaXMuZW1vamlQcm9wcy5zZXQsXG4gICAgICAgICAgdGhpcy5lbW9qaVByb3BzLm5hdGl2ZSxcbiAgICAgICAgICB0aGlzLmVtb2ppUHJvcHMuZmFsbGJhY2ssXG4gICAgICAgICAgdGhpcy5lbW9qaVByb3BzLmVtb2ppVG9vbHRpcCxcbiAgICAgICAgICB0aGlzLmVtb2ppUHJvcHMuZW1vamlTaXplLFxuICAgICAgICApXG4gICAgICAgIHJldHVybiB7IGVtb2ppT2JqZWN0LCBlbW9qaVZpZXcgfVxuICAgICAgfSlcbiAgICB9LFxuICB9LFxuICBjb21wb25lbnRzOiB7XG4gICAgRW1vamksXG4gIH0sXG59XG48L3NjcmlwdD5cbiIsIjx0ZW1wbGF0ZT5cblxuPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlld1wiPlxuICA8dGVtcGxhdGUgdi1pZj1cImVtb2ppXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW1vamktbWFydC1wcmV2aWV3LWVtb2ppXCI+XG4gICAgICAgIDxlbW9qaVxuICAgICAgICAgIDpkYXRhPVwiZGF0YVwiXG4gICAgICAgICAgOmVtb2ppPVwiZW1vamlcIlxuICAgICAgICAgIDpuYXRpdmU9XCJlbW9qaVByb3BzLm5hdGl2ZVwiXG4gICAgICAgICAgOnNraW49XCJlbW9qaVByb3BzLnNraW5cIlxuICAgICAgICAgIDpzZXQ9XCJlbW9qaVByb3BzLnNldFwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1kYXRhXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctbmFtZVwiPnt7IGVtb2ppLm5hbWUgfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWVzXCI+XG4gICAgICAgICAgPHNwYW4gdi1mb3I9XCJzaG9ydE5hbWUgaW4gZW1vamlTaG9ydE5hbWVzXCIgOmtleT1cInNob3J0TmFtZVwiIGNsYXNzPVwiZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZVwiPjp7eyBzaG9ydE5hbWUgfX06PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1lbW90aWNvbnNcIj5cbiAgICAgICAgICA8c3BhbiB2LWZvcj1cImVtb3RpY29uIGluIGVtb2ppRW1vdGljb25zXCIgOmtleT1cImVtb3RpY29uXCIgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb25cIj57eyBlbW90aWNvbiB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgPC90ZW1wbGF0ZT5cblxuICA8dGVtcGxhdGUgdi1lbHNlPlxuICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vamlcIj5cbiAgICAgIDxlbW9qaVxuICAgICAgICA6ZGF0YT1cImRhdGFcIlxuICAgICAgICA6ZW1vamk9XCJpZGxlRW1vamlcIlxuICAgICAgICA6bmF0aXZlPVwiZW1vamlQcm9wcy5uYXRpdmVcIlxuICAgICAgICA6c2tpbj1cImVtb2ppUHJvcHMuc2tpblwiXG4gICAgICAgIDpzZXQ9XCJlbW9qaVByb3BzLnNldFwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1kYXRhXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImVtb2ppLW1hcnQtdGl0bGUtbGFiZWxcIj57eyB0aXRsZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgdi1pZj1cInNob3dTa2luVG9uZXNcIiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1za2luc1wiPlxuICAgICAgPHNraW5zIDpza2luPVwic2tpblByb3BzLnNraW5cIiBAY2hhbmdlPVwib25Ta2luQ2hhbmdlKCRldmVudClcIiAvPlxuICAgIDwvZGl2PlxuICA8L3RlbXBsYXRlPlxuPC9kaXY+XG5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5cbmltcG9ydCBFbW9qaSBmcm9tICcuL0Vtb2ppLnZ1ZSdcbmltcG9ydCBTa2lucyBmcm9tICcuL3NraW5zLnZ1ZSdcblxuZXhwb3J0IGRlZmF1bHQge1xuICBwcm9wczoge1xuICAgIGRhdGE6IHtcbiAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgfSxcbiAgICB0aXRsZToge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9LFxuICAgIGVtb2ppOiB7XG4gICAgICB0eXBlOiBbU3RyaW5nLCBPYmplY3RdXG4gICAgfSxcbiAgICBpZGxlRW1vamk6IHtcbiAgICAgIHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sXG4gICAgICByZXF1aXJlZDogdHJ1ZVxuICAgIH0sXG4gICAgc2hvd1NraW5Ub25lczoge1xuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgIGRlZmF1bHQ6IHRydWVcbiAgICB9LFxuICAgIGVtb2ppUHJvcHM6IHtcbiAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgfSxcbiAgICBza2luUHJvcHM6IHtcbiAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgfSxcbiAgICBvblNraW5DaGFuZ2U6IHtcbiAgICAgIHR5cGU6IEZ1bmN0aW9uLFxuICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9XG4gIH0sXG4gIGNvbXB1dGVkOiB7XG4gICAgZW1vamlEYXRhKCkge1xuICAgICAgaWYgKHRoaXMuZW1vamkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW1vamlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgZW1vamlTaG9ydE5hbWVzKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZW1vamlEYXRhLnNob3J0X25hbWVzXG4gICAgfSxcbiAgICBlbW9qaUVtb3RpY29ucygpIHtcbiAgICAgIHJldHVybiB0aGlzLmVtb2ppRGF0YS5lbW90aWNvbnNcbiAgICB9XG4gIH0sXG4gIGNvbXBvbmVudHM6IHtcbiAgICBFbW9qaSxcbiAgICBTa2luc1xuICB9XG59XG5cbjwvc2NyaXB0PlxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZW1vamktbWFydC1zZWFyY2hcIj5cbiAgICA8aW5wdXRcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIDpwbGFjZWhvbGRlcj1cImkxOG4uc2VhcmNoXCJcbiAgICAgIHJvbGU9XCJ0ZXh0Ym94XCJcbiAgICAgIGFyaWEtYXV0b2NvbXBsZXRlPVwibGlzdFwiXG4gICAgICBhcmlhLW93bnM9XCJlbW9qaS1tYXJ0LWxpc3RcIlxuICAgICAgYXJpYS1sYWJlbD1cIlNlYXJjaCBmb3IgYW4gZW1vamlcIlxuICAgICAgYXJpYS1kZXNjcmliZWRieT1cImVtb2ppLW1hcnQtc2VhcmNoLWRlc2NyaXB0aW9uXCJcbiAgICAgIEBrZXlkb3duLmxlZnQ9XCIoJGV2ZW50KSA9PiAkZW1pdCgnYXJyb3dMZWZ0JywgJGV2ZW50KVwiXG4gICAgICBAa2V5ZG93bi5yaWdodD1cIigpID0+ICRlbWl0KCdhcnJvd1JpZ2h0JylcIlxuICAgICAgQGtleWRvd24uZG93bj1cIigpID0+ICRlbWl0KCdhcnJvd0Rvd24nKVwiXG4gICAgICBAa2V5ZG93bi51cD1cIigkZXZlbnQpID0+ICRlbWl0KCdhcnJvd1VwJywgJGV2ZW50KVwiXG4gICAgICBAa2V5ZG93bi5lbnRlcj1cIigpID0+ICRlbWl0KCdlbnRlcicpXCJcbiAgICAgIHYtbW9kZWw9XCJ2YWx1ZVwiXG4gICAgLz5cbiAgICA8c3BhbiBjbGFzcz1cImhpZGRlblwiIGlkPVwiZW1vamktcGlja2VyLXNlYXJjaC1kZXNjcmlwdGlvblwiXG4gICAgICA+VXNlIHRoZSBsZWZ0LCByaWdodCwgdXAgYW5kIGRvd24gYXJyb3cga2V5cyB0byBuYXZpZ2F0ZSB0aGUgZW1vamkgc2VhcmNoXG4gICAgICByZXN1bHRzLjwvc3BhblxuICAgID5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuZXhwb3J0IGRlZmF1bHQge1xuICBwcm9wczoge1xuICAgIGRhdGE6IHtcbiAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAgaTE4bjoge1xuICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSxcbiAgICBhdXRvRm9jdXM6IHtcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9LFxuICAgIG9uU2VhcmNoOiB7XG4gICAgICB0eXBlOiBGdW5jdGlvbixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAgb25BcnJvd0xlZnQ6IHtcbiAgICAgIHR5cGU6IEZ1bmN0aW9uLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgb25BcnJvd1JpZ2h0OiB7XG4gICAgICB0eXBlOiBGdW5jdGlvbixcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB9LFxuICAgIG9uQXJyb3dEb3duOiB7XG4gICAgICB0eXBlOiBGdW5jdGlvbixcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB9LFxuICAgIG9uQXJyb3dVcDoge1xuICAgICAgdHlwZTogRnVuY3Rpb24sXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgfSxcbiAgICBvbkVudGVyOiB7XG4gICAgICB0eXBlOiBGdW5jdGlvbixcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB9LFxuICB9LFxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZTogJycsXG4gICAgfVxuICB9LFxuICBjb21wdXRlZDoge1xuICAgIGVtb2ppSW5kZXgoKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhXG4gICAgfSxcbiAgfSxcbiAgd2F0Y2g6IHtcbiAgICB2YWx1ZSgpIHtcbiAgICAgIHRoaXMuJGVtaXQoJ3NlYXJjaCcsIHRoaXMudmFsdWUpXG4gICAgfSxcbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIGNsZWFyKCkge1xuICAgICAgdGhpcy52YWx1ZSA9ICcnXG4gICAgfSxcbiAgfSxcbiAgbW91bnRlZCgpIHtcbiAgICBsZXQgJGlucHV0ID0gdGhpcy4kZWwucXVlcnlTZWxlY3RvcignaW5wdXQnKVxuXG4gICAgaWYgKHRoaXMuYXV0b0ZvY3VzKSB7XG4gICAgICAkaW5wdXQuZm9jdXMoKVxuICAgIH1cbiAgfSxcbn1cbjwvc2NyaXB0PlxuIiwiPHRlbXBsYXRlPlxuXG48ZGl2IDpjbGFzcz1cInsgJ2Vtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcyc6IHRydWUsICdlbW9qaS1tYXJ0LXNraW4tc3dhdGNoZXMtb3BlbmVkJzogb3BlbmVkIH1cIj5cbiAgPHNwYW4gdi1mb3I9XCJza2luVG9uZSBpbiA2XCIgOmtleT1cInNraW5Ub25lXCIgOmNsYXNzPVwieyAnZW1vamktbWFydC1za2luLXN3YXRjaCc6IHRydWUsICdlbW9qaS1tYXJ0LXNraW4tc3dhdGNoLXNlbGVjdGVkJzogc2tpbiA9PSBza2luVG9uZSB9XCI+XG4gICAgPHNwYW4gOmNsYXNzPVwiJ2Vtb2ppLW1hcnQtc2tpbiBlbW9qaS1tYXJ0LXNraW4tdG9uZS0nICsgc2tpblRvbmVcIiBAY2xpY2s9XCJvbkNsaWNrKHNraW5Ub25lKVwiPjwvc3Bhbj5cbiAgPC9zcGFuPlxuPC9kaXY+XG5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcHJvcHM6IHtcbiAgICBza2luOiB7XG4gICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICByZXF1aXJlZDogdHJ1ZVxuICAgIH1cbiAgfSxcbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgb3BlbmVkOiBmYWxzZVxuICAgIH1cbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIG9uQ2xpY2soc2tpblRvbmUpIHtcbiAgICAgIGlmICh0aGlzLm9wZW5lZCkge1xuICAgICAgICBpZiAoc2tpblRvbmUgIT0gdGhpcy5za2luKSB7XG4gICAgICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlJywgc2tpblRvbmUpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5vcGVuZWQgPSAhdGhpcy5vcGVuZWRcbiAgICB9XG4gIH1cbn1cblxuPC9zY3JpcHQ+XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIEFuY2hvcnMgfSBmcm9tICcuL2FuY2hvcnMudnVlJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYXRlZ29yeSB9IGZyb20gJy4vY2F0ZWdvcnkudnVlJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQcmV2aWV3IH0gZnJvbSAnLi9wcmV2aWV3LnZ1ZSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2VhcmNoIH0gZnJvbSAnLi9zZWFyY2gudnVlJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTa2lucyB9IGZyb20gJy4vc2tpbnMudnVlJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBFbW9qaSB9IGZyb20gJy4vRW1vamkudnVlJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQaWNrZXIgfSBmcm9tICcuL1BpY2tlci52dWUnXG4iLCJpbXBvcnQgc3RvcmUgZnJvbSAnLi91dGlscy9zdG9yZSdcbmltcG9ydCB7IHVuY29tcHJlc3MgfSBmcm9tICcuL3V0aWxzL2RhdGEnXG5pbXBvcnQgZnJlcXVlbnRseSBmcm9tICcuL3V0aWxzL2ZyZXF1ZW50bHknXG5cbmV4cG9ydCB7XG4gIFBpY2tlcixcbiAgRW1vamksXG4gIEFuY2hvcnMsXG4gIFByZXZpZXcsXG4gIFNlYXJjaCxcbiAgQ2F0ZWdvcnksXG4gIFNraW5zLFxufSBmcm9tICcuL2NvbXBvbmVudHMnXG5cbmV4cG9ydCB7IEVtb2ppSW5kZXgsIEVtb2ppVmlldywgRW1vamlEYXRhLCBzYW5pdGl6ZSB9IGZyb20gJy4vdXRpbHMvZW1vamktZGF0YSdcbmV4cG9ydCB7IHVuY29tcHJlc3MsIHN0b3JlLCBmcmVxdWVudGx5IH1cbiIsImNvbnN0IF9TdHJpbmcgPSBTdHJpbmdcblxuZXhwb3J0IGRlZmF1bHQgX1N0cmluZy5mcm9tQ29kZVBvaW50IHx8XG4gIGZ1bmN0aW9uIHN0cmluZ0Zyb21Db2RlUG9pbnQoKSB7XG4gICAgdmFyIE1BWF9TSVpFID0gMHg0MDAwXG4gICAgdmFyIGNvZGVVbml0cyA9IFtdXG4gICAgdmFyIGhpZ2hTdXJyb2dhdGVcbiAgICB2YXIgbG93U3Vycm9nYXRlXG4gICAgdmFyIGluZGV4ID0gLTFcbiAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aFxuICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG4gICAgdmFyIHJlc3VsdCA9ICcnXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciBjb2RlUG9pbnQgPSBOdW1iZXIoYXJndW1lbnRzW2luZGV4XSlcbiAgICAgIGlmIChcbiAgICAgICAgIWlzRmluaXRlKGNvZGVQb2ludCkgfHwgLy8gYE5hTmAsIGArSW5maW5pdHlgLCBvciBgLUluZmluaXR5YFxuICAgICAgICBjb2RlUG9pbnQgPCAwIHx8IC8vIG5vdCBhIHZhbGlkIFVuaWNvZGUgY29kZSBwb2ludFxuICAgICAgICBjb2RlUG9pbnQgPiAweDEwZmZmZiB8fCAvLyBub3QgYSB2YWxpZCBVbmljb2RlIGNvZGUgcG9pbnRcbiAgICAgICAgTWF0aC5mbG9vcihjb2RlUG9pbnQpICE9IGNvZGVQb2ludCAvLyBub3QgYW4gaW50ZWdlclxuICAgICAgKSB7XG4gICAgICAgIHRocm93IFJhbmdlRXJyb3IoJ0ludmFsaWQgY29kZSBwb2ludDogJyArIGNvZGVQb2ludClcbiAgICAgIH1cbiAgICAgIGlmIChjb2RlUG9pbnQgPD0gMHhmZmZmKSB7XG4gICAgICAgIC8vIEJNUCBjb2RlIHBvaW50XG4gICAgICAgIGNvZGVVbml0cy5wdXNoKGNvZGVQb2ludClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFzdHJhbCBjb2RlIHBvaW50OyBzcGxpdCBpbiBzdXJyb2dhdGUgaGFsdmVzXG4gICAgICAgIC8vIGh0dHA6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2phdmFzY3JpcHQtZW5jb2Rpbmcjc3Vycm9nYXRlLWZvcm11bGFlXG4gICAgICAgIGNvZGVQb2ludCAtPSAweDEwMDAwXG4gICAgICAgIGhpZ2hTdXJyb2dhdGUgPSAoY29kZVBvaW50ID4+IDEwKSArIDB4ZDgwMFxuICAgICAgICBsb3dTdXJyb2dhdGUgPSAoY29kZVBvaW50ICUgMHg0MDApICsgMHhkYzAwXG4gICAgICAgIGNvZGVVbml0cy5wdXNoKGhpZ2hTdXJyb2dhdGUsIGxvd1N1cnJvZ2F0ZSlcbiAgICAgIH1cbiAgICAgIGlmIChpbmRleCArIDEgPT09IGxlbmd0aCB8fCBjb2RlVW5pdHMubGVuZ3RoID4gTUFYX1NJWkUpIHtcbiAgICAgICAgcmVzdWx0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgY29kZVVuaXRzKVxuICAgICAgICBjb2RlVW5pdHMubGVuZ3RoID0gMFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cbiIsImNvbnN0IFNWR3MgPSB7XG4gIGFjdGl2aXR5OiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNMTIgMEM1LjM3MyAwIDAgNS4zNzIgMCAxMmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyIDYuNjI4IDAgMTItNS4zNzMgMTItMTIgMC02LjYyOC01LjM3Mi0xMi0xMi0xMm05Ljk0OSAxMUgxNy4wNWMuMjI0LTIuNTI3IDEuMjMyLTQuNzczIDEuOTY4LTYuMTEzQTkuOTY2IDkuOTY2IDAgMCAxIDIxLjk0OSAxMU0xMyAxMVYyLjA1MWE5Ljk0NSA5Ljk0NSAwIDAgMSA0LjQzMiAxLjU2NGMtLjg1OCAxLjQ5MS0yLjE1NiA0LjIyLTIuMzkyIDcuMzg1SDEzem0tMiAwSDguOTYxYy0uMjM4LTMuMTY1LTEuNTM2LTUuODk0LTIuMzkzLTcuMzg1QTkuOTUgOS45NSAwIDAgMSAxMSAyLjA1MVYxMXptMCAydjguOTQ5YTkuOTM3IDkuOTM3IDAgMCAxLTQuNDMyLTEuNTY0Yy44NTctMS40OTIgMi4xNTUtNC4yMjEgMi4zOTMtNy4zODVIMTF6bTQuMDQgMGMuMjM2IDMuMTY0IDEuNTM0IDUuODkzIDIuMzkyIDcuMzg1QTkuOTIgOS45MiAwIDAgMSAxMyAyMS45NDlWMTNoMi4wNHpNNC45ODIgNC44ODdDNS43MTggNi4yMjcgNi43MjYgOC40NzMgNi45NTEgMTFoLTQuOWE5Ljk3NyA5Ljk3NyAwIDAgMSAyLjkzMS02LjExM00yLjA1MSAxM2g0LjljLS4yMjYgMi41MjctMS4yMzMgNC43NzEtMS45NjkgNi4xMTNBOS45NzIgOS45NzIgMCAwIDEgMi4wNTEgMTNtMTYuOTY3IDYuMTEzYy0uNzM1LTEuMzQyLTEuNzQ0LTMuNTg2LTEuOTY4LTYuMTEzaDQuODk5YTkuOTYxIDkuOTYxIDAgMCAxLTIuOTMxIDYuMTEzXCIvPjwvc3ZnPmAsXG5cbiAgY3VzdG9tOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgyLjAwMDAwMCwgMS4wMDAwMDApXCI+PHJlY3QgaWQ9XCJSZWN0YW5nbGVcIiB4PVwiOFwiIHk9XCIwXCIgd2lkdGg9XCIzXCIgaGVpZ2h0PVwiMjFcIiByeD1cIjEuNVwiPjwvcmVjdD48cmVjdCBpZD1cIlJlY3RhbmdsZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSg5Ljg0MywgMTAuNTQ5KSByb3RhdGUoNjApIHRyYW5zbGF0ZSgtOS44NDMsIC0xMC41NDkpIFwiIHg9XCI4LjM0M1wiIHk9XCIwLjA0OVwiIHdpZHRoPVwiM1wiIGhlaWdodD1cIjIxXCIgcng9XCIxLjVcIj48L3JlY3Q+PHJlY3QgaWQ9XCJSZWN0YW5nbGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoOS44NDMsIDEwLjU0OSkgcm90YXRlKC02MCkgdHJhbnNsYXRlKC05Ljg0MywgLTEwLjU0OSkgXCIgeD1cIjguMzQzXCIgeT1cIjAuMDQ5XCIgd2lkdGg9XCIzXCIgaGVpZ2h0PVwiMjFcIiByeD1cIjEuNVwiPjwvcmVjdD48L2c+PC9zdmc+YCxcblxuICBmbGFnczogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIj48cGF0aCBkPVwiTTAgMGw2LjA4NCAyNEg4TDEuOTE2IDB6TTIxIDVoLTRsLTEtNEg0bDMgMTJoM2wxIDRoMTNMMjEgNXpNNi41NjMgM2g3Ljg3NWwyIDhIOC41NjNsLTItOHptOC44MzIgMTBsLTIuODU2IDEuOTA0TDEyLjA2MyAxM2gzLjMzMnpNMTkgMTNsLTEuNS02aDEuOTM4bDIgOEgxNmwzLTJ6XCIvPjwvc3ZnPmAsXG5cbiAgZm9vZHM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PHBhdGggZD1cIk0xNyA0Ljk3OGMtMS44MzggMC0yLjg3Ni4zOTYtMy42OC45MzQuNTEzLTEuMTcyIDEuNzY4LTIuOTM0IDQuNjgtMi45MzRhMSAxIDAgMCAwIDAtMmMtMi45MjEgMC00LjYyOSAxLjM2NS01LjU0NyAyLjUxMi0uMDY0LjA3OC0uMTE5LjE2Mi0uMTguMjQ0QzExLjczIDEuODM4IDEwLjc5OC4wMjMgOS4yMDcuMDIzIDguNTc5LjAyMiA3Ljg1LjMwNiA3IC45NzggNS4wMjcgMi41NCA1LjMyOSAzLjkwMiA2LjQ5MiA0Ljk5OSAzLjYwOSA1LjIyMiAwIDcuMzUyIDAgMTIuOTY5YzAgNC41ODIgNC45NjEgMTEuMDA5IDkgMTEuMDA5IDEuOTc1IDAgMi4zNzEtLjQ4NiAzLTEgLjYyOS41MTQgMS4wMjUgMSAzIDEgNC4wMzkgMCA5LTYuNDE4IDktMTEgMC01Ljk1My00LjA1NS04LTctOE04LjI0MiAyLjU0NmMuNjQxLS41MDguOTQzLS41MjMuOTY1LS41MjMuNDI2LjE2OS45NzUgMS40MDUgMS4zNTcgMy4wNTUtMS41MjctLjYyOS0yLjc0MS0xLjM1Mi0yLjk4LTEuODQ2LjA1OS0uMTEyLjI0MS0uMzU2LjY1OC0uNjg2TTE1IDIxLjk3OGMtMS4wOCAwLTEuMjEtLjEwOS0xLjU1OS0uNDAybC0uMTc2LS4xNDZjLS4zNjctLjMwMi0uODE2LS40NTItMS4yNjYtLjQ1MnMtLjg5OC4xNS0xLjI2Ni40NTJsLS4xNzYuMTQ2Yy0uMzQ3LjI5Mi0uNDc3LjQwMi0xLjU1Ny40MDItMi44MTMgMC03LTUuMzg5LTctOS4wMDkgMC01LjgyMyA0LjQ4OC01Ljk5MSA1LTUuOTkxIDEuOTM5IDAgMi40ODQuNDcxIDMuMzg3IDEuMjUxbC4zMjMuMjc2YTEuOTk1IDEuOTk1IDAgMCAwIDIuNTggMGwuMzIzLS4yNzZjLjkwMi0uNzggMS40NDctMS4yNTEgMy4zODctMS4yNTEuNTEyIDAgNSAuMTY4IDUgNiAwIDMuNjE3LTQuMTg3IDktNyA5XCIvPjwvc3ZnPmAsXG5cbiAgbmF0dXJlOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNMTUuNSA4YTEuNSAxLjUgMCAxIDAgLjAwMSAzLjAwMUExLjUgMS41IDAgMCAwIDE1LjUgOE04LjUgOGExLjUgMS41IDAgMSAwIC4wMDEgMy4wMDFBMS41IDEuNSAwIDAgMCA4LjUgOFwiLz48cGF0aCBkPVwiTTE4LjkzMyAwaC0uMDI3Yy0uOTcgMC0yLjEzOC43ODctMy4wMTggMS40OTctMS4yNzQtLjM3NC0yLjYxMi0uNTEtMy44ODctLjUxLTEuMjg1IDAtMi42MTYuMTMzLTMuODc0LjUxN0M3LjI0NS43OSA2LjA2OSAwIDUuMDkzIDBoLS4wMjdDMy4zNTIgMCAuMDcgMi42Ny4wMDIgNy4wMjZjLS4wMzkgMi40NzkuMjc2IDQuMjM4IDEuMDQgNS4wMTMuMjU0LjI1OC44ODIuNjc3IDEuMjk1Ljg4Mi4xOTEgMy4xNzcuOTIyIDUuMjM4IDIuNTM2IDYuMzguODk3LjYzNyAyLjE4Ny45NDkgMy4yIDEuMTAyQzguMDQgMjAuNiA4IDIwLjc5NSA4IDIxYzAgMS43NzMgMi4zNSAzIDQgMyAxLjY0OCAwIDQtMS4yMjcgNC0zIDAtLjIwMS0uMDM4LS4zOTMtLjA3Mi0uNTg2IDIuNTczLS4zODUgNS40MzUtMS44NzcgNS45MjUtNy41ODcuMzk2LS4yMi44ODctLjU2OCAxLjEwNC0uNzg4Ljc2My0uNzc0IDEuMDc5LTIuNTM0IDEuMDQtNS4wMTNDMjMuOTI5IDIuNjcgMjAuNjQ2IDAgMTguOTMzIDBNMy4yMjMgOS4xMzVjLS4yMzcuMjgxLS44MzcgMS4xNTUtLjg4NCAxLjIzOC0uMTUtLjQxLS4zNjgtMS4zNDktLjMzNy0zLjI5MS4wNTEtMy4yODEgMi40NzgtNC45NzIgMy4wOTEtNS4wMzEuMjU2LjAxNS43MzEuMjcgMS4yNjUuNjQ2LTEuMTEgMS4xNzEtMi4yNzUgMi45MTUtMi4zNTIgNS4xMjUtLjEzMy41NDYtLjM5OC44NTgtLjc4MyAxLjMxM00xMiAyMmMtLjkwMSAwLTEuOTU0LS42OTMtMi0xIDAtLjY1NC40NzUtMS4yMzYgMS0xLjYwMlYyMGExIDEgMCAxIDAgMiAwdi0uNjAyYy41MjQuMzY1IDEgLjk0NyAxIDEuNjAyLS4wNDYuMzA3LTEuMDk5IDEtMiAxbTMtMy40OHYuMDJhNC43NTIgNC43NTIgMCAwIDAtMS4yNjItMS4wMmMxLjA5Mi0uNTE2IDIuMjM5LTEuMzM0IDIuMjM5LTIuMjE3IDAtMS44NDItMS43ODEtMi4xOTUtMy45NzctMi4xOTUtMi4xOTYgMC0zLjk3OC4zNTQtMy45NzggMi4xOTUgMCAuODgzIDEuMTQ4IDEuNzAxIDIuMjM4IDIuMjE3QTQuOCA0LjggMCAwIDAgOSAxOC41Mzl2LS4wMjVjLTEtLjA3Ni0yLjE4Mi0uMjgxLTIuOTczLS44NDItMS4zMDEtLjkyLTEuODM4LTMuMDQ1LTEuODUzLTYuNDc4bC4wMjMtLjA0MWMuNDk2LS44MjYgMS40OS0xLjQ1IDEuODA0LTMuMTAyIDAtMi4wNDcgMS4zNTctMy42MzEgMi4zNjItNC41MjJDOS4zNyAzLjE3OCAxMC41NTUgMyAxMS45NDggM2MxLjQ0NyAwIDIuNjg1LjE5MiAzLjczMy41NyAxIC45IDIuMzE2IDIuNDY1IDIuMzE2IDQuNDguMzEzIDEuNjUxIDEuMzA3IDIuMjc1IDEuODAzIDMuMTAyLjAzNS4wNTguMDY4LjExNy4xMDIuMTc4LS4wNTkgNS45NjctMS45NDkgNy4wMS00LjkwMiA3LjE5bTYuNjI4LTguMjAyYy0uMDM3LS4wNjUtLjA3NC0uMTMtLjExMy0uMTk1YTcuNTg3IDcuNTg3IDAgMCAwLS43MzktLjk4N2MtLjM4NS0uNDU1LS42NDgtLjc2OC0uNzgyLTEuMzEzLS4wNzYtMi4yMDktMS4yNDEtMy45NTQtMi4zNTMtNS4xMjQuNTMxLS4zNzYgMS4wMDQtLjYzIDEuMjYxLS42NDcuNjM2LjA3MSAzLjA0NCAxLjc2NCAzLjA5NiA1LjAzMS4wMjcgMS44MS0uMzQ3IDMuMjE4LS4zNyAzLjIzNVwiLz48L3N2Zz5gLFxuXG4gIG9iamVjdHM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PHBhdGggZD1cIk0xMiAwYTkgOSAwIDAgMC01IDE2LjQ4MlYyMXMyLjAzNSAzIDUgMyA1LTMgNS0zdi00LjUxOEE5IDkgMCAwIDAgMTIgMHptMCAyYzMuODYgMCA3IDMuMTQxIDcgN3MtMy4xNCA3LTcgNy03LTMuMTQxLTctNyAzLjE0LTcgNy03ek05IDE3LjQ3N2MuOTQuMzMyIDEuOTQ2LjUyMyAzIC41MjNzMi4wNi0uMTkgMy0uNTIzdi44MzRjLS45MS40MzYtMS45MjUuNjg5LTMgLjY4OWE2LjkyNCA2LjkyNCAwIDAgMS0zLS42OXYtLjgzM3ptLjIzNiAzLjA3QTguODU0IDguODU0IDAgMCAwIDEyIDIxYy45NjUgMCAxLjg4OC0uMTY3IDIuNzU4LS40NTFDMTQuMTU1IDIxLjE3MyAxMy4xNTMgMjIgMTIgMjJjLTEuMTAyIDAtMi4xMTctLjc4OS0yLjc2NC0xLjQ1M3pcIi8+PHBhdGggZD1cIk0xNC43NDUgMTIuNDQ5aC0uMDA0Yy0uODUyLS4wMjQtMS4xODgtLjg1OC0xLjU3Ny0xLjgyNC0uNDIxLTEuMDYxLS43MDMtMS41NjEtMS4xODItMS41NjZoLS4wMDljLS40ODEgMC0uNzgzLjQ5Ny0xLjIzNSAxLjUzNy0uNDM2Ljk4Mi0uODAxIDEuODExLTEuNjM2IDEuNzkxbC0uMjc2LS4wNDNjLS41NjUtLjE3MS0uODUzLS42OTEtMS4yODQtMS43OTQtLjEyNS0uMzEzLS4yMDItLjYzMi0uMjctLjkxMy0uMDUxLS4yMTMtLjEyNy0uNTMtLjE5NS0uNjM0QzcuMDY3IDkuMDA0IDcuMDM5IDkgNi45OSA5QTEgMSAwIDAgMSA3IDdoLjAxYzEuNjYyLjAxNyAyLjAxNSAxLjM3MyAyLjE5OCAyLjEzNC40ODYtLjk4MSAxLjMwNC0yLjA1OCAyLjc5Ny0yLjA3NSAxLjUzMS4wMTggMi4yOCAxLjE1MyAyLjczMSAyLjE0MWwuMDAyLS4wMDhDMTQuOTQ0IDguNDI0IDE1LjMyNyA3IDE2Ljk3OSA3aC4wMzJBMSAxIDAgMSAxIDE3IDloLS4wMTFjLS4xNDkuMDc2LS4yNTYuNDc0LS4zMTkuNzA5YTYuNDg0IDYuNDg0IDAgMCAxLS4zMTEuOTUxYy0uNDI5Ljk3My0uNzkgMS43ODktMS42MTQgMS43ODlcIi8+PC9zdmc+YCxcblxuICBzbWlsZXlzOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNMTIgMEM1LjM3MyAwIDAgNS4zNzMgMCAxMnM1LjM3MyAxMiAxMiAxMiAxMi01LjM3MyAxMi0xMlMxOC42MjcgMCAxMiAwbTAgMjJDNi40ODYgMjIgMiAxNy41MTQgMiAxMlM2LjQ4NiAyIDEyIDJzMTAgNC40ODYgMTAgMTAtNC40ODYgMTAtMTAgMTBcIi8+PHBhdGggZD1cIk04IDdhMiAyIDAgMSAwLS4wMDEgMy45OTlBMiAyIDAgMCAwIDggN00xNiA3YTIgMiAwIDEgMC0uMDAxIDMuOTk5QTIgMiAwIDAgMCAxNiA3TTE1LjIzMiAxNWMtLjY5MyAxLjE5NS0xLjg3IDItMy4zNDkgMi0xLjQ3NyAwLTIuNjU1LS44MDUtMy4zNDctMkgxNW0zLTJINmE2IDYgMCAxIDAgMTIgMFwiLz48L3N2Zz5gLFxuXG4gIHBlb3BsZTogYDxzdmcgeG1sbnM6c3ZnPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyNFwiIHdpZHRoPVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+IDxwYXRoIGlkPVwicGF0aDM4MTRcIiBkPVwibSAzLjM1OTEwODksMjEuMTc3MjYgYyAwLjE3MjAzNiwwLjA5Mzg1IDQuMjY1OTk0LDIuMjk4MzcgOC44MTQ0NDUxLDIuMjk4MzcgNC45Mjc3NjcsMCA4LjY3MDg5NCwtMi4yMTE4ODMgOC44Mjc4MiwtMi4zMDYwMTkgMC4xMTMwNzksLTAuMDY3ODUgMC4xODIyNjgsLTAuMTkwMDUxIDAuMTgyMjY3LC0wLjMyMTkyMyAwLC0zLjAzMTE5IC0wLjkyOTQ5NCwtNS44MDQ5MzYgLTIuNjE3MTk2LC03LjgxMDcxMiAtMS4xODA2MDMsLTEuNDAzMTM0IC0yLjY2MTkxOCwtMi4zNTk1MTYgLTQuMjk1Njk5LC0yLjc5OTc5MSA0LjY5OTExOCwtMi4yMzYyNTggMy4xMDIzMDYsLTkuMjg2MTcxNjIgLTIuMDk3MTkxLC05LjI4NjE3MTYyIC01LjE5OTQ5NzgsMCAtNi43OTYzMTAzLDcuMDQ5OTEzNjIgLTIuMDk3MTkyLDkuMjg2MTcxNjIgLTEuNjMzNzgyMSwwLjQ0MDI3NSAtMy4xMTUwOTcxLDEuMzk2Nzk4IC00LjI5NTY5OTEsMi43OTk3OTEgLTEuNjg3NzAzLDIuMDA1Nzc2IC0yLjYxNzE5Niw0Ljc3OTUyMiAtMi42MTcxOTYsNy44MTA3MTIgMS4yZS02LDAuMTM3Mzc4IDAuMDc1MDM5LDAuMjYzNzg1IDAuMTk1NjQxLDAuMzI5NTcyIHogTSA4LjA0MzkzMTksNS44MzA4NzgzIEMgOC4wNDM5MzA5LDIuMTUxNTIxIDEyLjQ5MjEwNywwLjMwOTU1ODExIDE1LjA5MzQ5MSwyLjkxMDk0MTEgMTcuNjk0ODc0LDUuNTEyMzI0MSAxNS44NTI5MTEsOS45NjA1MDA2IDEyLjE3MzU1NCw5Ljk2MDUgOS44OTM4OTkxLDkuOTU3OTEzNSA4LjA0NjUxODYsOC4xMTA1MzMyIDguMDQzOTMxOSw1LjgzMDg3ODMgWiBtIC0xLjY4ODc4Miw3LjY4OTQ5NzcgYyAxLjUyNDUzNSwtMS44MTE0NDkgMy41OTA2NjAxLC0yLjgwOTAzNSA1LjgxODQwNDEsLTIuODA5MDM1IDIuMjI3NzQ0LDAgNC4yOTM4NjksMC45OTc1ODYgNS44MTg0MDQsMi44MDkwMzUgMS41MzM2MzksMS44MjI1NzEgMi4zOTU5MzIsNC4zMzk4NTggMi40MzkxNTIsNy4xMDgzMDEgLTAuODAzMzUyLDAuNDM0ODc3IC00LjE0MTYzNiwyLjA5NjExMiAtOC4yNTc1NTYsMi4wOTYxMTIgLTMuODA2MjkyMSwwIC03LjM5MTA4NjEsLTEuNjcxMDQzIC04LjI1NzM2ODEsLTIuMTA0OTgxIDAuMDQ1MDUsLTIuNzY1MDE3IDAuOTA2OTY4LC01LjI3ODc4NSAyLjQzODk2NCwtNy4wOTk0MzIgelwiIC8+IDxwYXRoIGlkPVwicGF0aDM4MTZcIiBkPVwiTSAxMi4xNzM4MjggMC4zODg2NzE4OCBDIDkuMzE5ODUxMyAwLjM4ODY3MTg3IDcuMzc3MDk4OCAyLjM2NzIyODUgNi44NjUyMzQ0IDQuNjMwODU5NCBDIDYuNDIxODYwOCA2LjU5MTYwMTUgNy4xMTUzNTYyIDguNzY3NjExNyA4Ljk2NDg0MzggMTAuMTI2OTUzIEMgNy42MTQxMjQ5IDEwLjY3NzM3NiA2LjM1NTA1MTEgMTEuNDgwOTQ0IDUuMzQ5NjA5NCAxMi42NzU3ODEgQyAzLjU2MjkzMTcgMTQuNzk5MTg1IDIuNjAxNTYyNSAxNy43MDE0NzUgMi42MDE1NjI1IDIwLjg0NzY1NiBDIDIuNjAxNTY1NCAyMS4xODk4NjEgMi43ODk0Mjc2IDIxLjUwODAwMiAzLjA4OTg0MzggMjEuNjcxODc1IEMgMy4zMDQ0MDY4IDIxLjc4ODkyNSA3LjQ0MzYyMzkgMjQuMDM5MDYyIDEyLjE3MzgyOCAyNC4wMzkwNjIgQyAxNy4yNjk5MTggMjQuMDM5MDYyIDIxLjA4MzU2OCAyMS43NzY3ODYgMjEuMjkxMDE2IDIxLjY1MjM0NCBDIDIxLjU3MjgxIDIxLjQ4MzI2NiAyMS43NDYwOTcgMjEuMTc2MjgyIDIxLjc0NjA5NCAyMC44NDc2NTYgQyAyMS43NDYwOTQgMTcuNzAxNDc1IDIwLjc4Mjc3IDE0Ljc5OTE4NSAxOC45OTYwOTQgMTIuNjc1NzgxIEMgMTcuOTkwNDU1IDExLjQ4MDU5MSAxNi43MzM4MTggMTAuNjc1MzYyIDE1LjM4MjgxMiAxMC4xMjUgQyAxNy4yMzExMzIgOC43NjU1NTUyIDE3LjkyNTY3NSA2LjU5MTA3MDEgMTcuNDgyNDIyIDQuNjMwODU5NCBDIDE2Ljk3MDU1NyAyLjM2NzIyODUgMTUuMDI3ODA1IDAuMzg4NjcxODggMTIuMTczODI4IDAuMzg4NjcxODggeiBNIDEyLjc5Mjk2OSAyLjMwMDc4MTIgQyAxMy40NjYyNTMgMi40MTYxNzkyIDE0LjEyNTExMyAyLjczODM5NDEgMTQuNjk1MzEyIDMuMzA4NTkzOCBDIDE1LjgzNTcxMiA0LjQ0ODk5MzEgMTUuOTg1NjA0IDUuOTQ3MzU0OSAxNS40Njg3NSA3LjE5NTMxMjUgQyAxNC45NTE4OTYgOC40NDMyNzAxIDEzLjc4NjgyOCA5LjM5ODQzNzggMTIuMTczODI4IDkuMzk4NDM3NSBDIDEwLjE5NzcxOSA5LjM5NjE5NTQgOC42MDc3MTEgNy44MDYxODcgOC42MDU0Njg4IDUuODMwMDc4MSBDIDguNjA1NDY4MyA0LjIxNzA3ODUgOS41NjA2MzYyIDMuMDUyMDEwMiAxMC44MDg1OTQgMi41MzUxNTYyIEMgMTEuNDMyNTczIDIuMjc2NzI5MyAxMi4xMTk2ODUgMi4xODUzODMzIDEyLjc5Mjk2OSAyLjMwMDc4MTIgeiBNIDEyLjE3MzgyOCAxMS4yNzM0MzggQyAxNC4yMzM2NDcgMTEuMjczNDM4IDE2LjEzMzY3NCAxMi4xODUwODQgMTcuNTYyNSAxMy44ODI4MTIgQyAxOC45MzA2OSAxNS41MDg3NjUgMTkuNjk4MzQ3IDE3Ljc3Njk2OSAxOS44MDg1OTQgMjAuMjgzMjAzIEMgMTguODA3Mzk1IDIwLjgwMDIzNSAxNS44ODYxNTcgMjIuMTYyMTA5IDEyLjE3MzgyOCAyMi4xNjIxMDkgQyA4Ljc2MTQ2MzIgMjIuMTYyMTA5IDUuNjI0NTc1NCAyMC43ODcwNjkgNC41MzkwNjI1IDIwLjI2NTYyNSBDIDQuNjUyNTg5NiAxNy43NjY3MTcgNS40MjAzMzE1IDE1LjUwNDc5MSA2Ljc4NTE1NjIgMTMuODgyODEyIEMgOC4yMTM5ODI3IDEyLjE4NTA4NCAxMC4xMTQwMSAxMS4yNzM0MzggMTIuMTczODI4IDExLjI3MzQzOCB6IFwiIC8+IDwvc3ZnPmAsXG5cbiAgcGxhY2VzOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNNi41IDEyQzUuMTIyIDEyIDQgMTMuMTIxIDQgMTQuNVM1LjEyMiAxNyA2LjUgMTcgOSAxNS44NzkgOSAxNC41IDcuODc4IDEyIDYuNSAxMm0wIDNjLS4yNzUgMC0uNS0uMjI1LS41LS41cy4yMjUtLjUuNS0uNS41LjIyNS41LjUtLjIyNS41LS41LjVNMTcuNSAxMmMtMS4zNzggMC0yLjUgMS4xMjEtMi41IDIuNXMxLjEyMiAyLjUgMi41IDIuNSAyLjUtMS4xMjEgMi41LTIuNS0xLjEyMi0yLjUtMi41LTIuNW0wIDNjLS4yNzUgMC0uNS0uMjI1LS41LS41cy4yMjUtLjUuNS0uNS41LjIyNS41LjUtLjIyNS41LS41LjVcIi8+PHBhdGggZD1cIk0yMi40ODIgOS40OTRsLTEuMDM5LS4zNDZMMjEuNCA5aC42Yy41NTIgMCAxLS40MzkgMS0uOTkyIDAtLjAwNi0uMDAzLS4wMDgtLjAwMy0uMDA4SDIzYzAtMS0uODg5LTItMS45ODQtMmgtLjY0MmwtLjczMS0xLjcxN0MxOS4yNjIgMy4wMTIgMTguMDkxIDIgMTYuNzY0IDJINy4yMzZDNS45MDkgMiA0LjczOCAzLjAxMiA0LjM1NyA0LjI4M0wzLjYyNiA2aC0uNjQyQzEuODg5IDYgMSA3IDEgOGguMDAzUzEgOC4wMDIgMSA4LjAwOEMxIDguNTYxIDEuNDQ4IDkgMiA5aC42bC0uMDQzLjE0OC0xLjAzOS4zNDZhMi4wMDEgMi4wMDEgMCAwIDAtMS4zNTkgMi4wOTdsLjc1MSA3LjUwOGExIDEgMCAwIDAgLjk5NC45MDFIM3YxYzAgMS4xMDMuODk2IDIgMiAyaDJjMS4xMDQgMCAyLS44OTcgMi0ydi0xaDZ2MWMwIDEuMTAzLjg5NiAyIDIgMmgyYzEuMTA0IDAgMi0uODk3IDItMnYtMWgxLjA5NmEuOTk5Ljk5OSAwIDAgMCAuOTk0LS45MDFsLjc1MS03LjUwOGEyLjAwMSAyLjAwMSAwIDAgMC0xLjM1OS0yLjA5N002LjI3MyA0Ljg1N0M2LjQwMiA0LjQzIDYuNzg4IDQgNy4yMzYgNGg5LjUyN2MuNDQ4IDAgLjgzNC40My45NjMuODU3TDE5LjMxMyA5SDQuNjg4bDEuNTg1LTQuMTQzek03IDIxSDV2LTFoMnYxem0xMiAwaC0ydi0xaDJ2MXptMi4xODktM0gyLjgxMWwtLjY2Mi02LjYwN0wzIDExaDE4bC44NTIuMzkzTDIxLjE4OSAxOHpcIi8+PC9zdmc+YCxcblxuICByZWNlbnQ6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PHBhdGggZD1cIk0xMyA0aC0ybC0uMDAxIDdIOXYyaDJ2Mmgydi0yaDR2LTJoLTR6XCIvPjxwYXRoIGQ9XCJNMTIgMEM1LjM3MyAwIDAgNS4zNzMgMCAxMnM1LjM3MyAxMiAxMiAxMiAxMi01LjM3MyAxMi0xMlMxOC42MjcgMCAxMiAwbTAgMjJDNi40ODYgMjIgMiAxNy41MTQgMiAxMlM2LjQ4NiAyIDEyIDJzMTAgNC40ODYgMTAgMTAtNC40ODYgMTAtMTAgMTBcIi8+PC9zdmc+YCxcblxuICBzeW1ib2xzOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNMCAwaDExdjJIMHpNNCAxMWgzVjZoNFY0SDB2Mmg0ek0xNS41IDE3YzEuMzgxIDAgMi41LTEuMTE2IDIuNS0yLjQ5M3MtMS4xMTktMi40OTMtMi41LTIuNDkzUzEzIDEzLjEzIDEzIDE0LjUwNyAxNC4xMTkgMTcgMTUuNSAxN20wLTIuOTg2Yy4yNzYgMCAuNS4yMjIuNS40OTMgMCAuMjcyLS4yMjQuNDkzLS41LjQ5M3MtLjUtLjIyMS0uNS0uNDkzLjIyNC0uNDkzLjUtLjQ5M00yMS41IDE5LjAxNGMtMS4zODEgMC0yLjUgMS4xMTYtMi41IDIuNDkzUzIwLjExOSAyNCAyMS41IDI0czIuNS0xLjExNiAyLjUtMi40OTMtMS4xMTktMi40OTMtMi41LTIuNDkzbTAgMi45ODZhLjQ5Ny40OTcgMCAwIDEtLjUtLjQ5M2MwLS4yNzEuMjI0LS40OTMuNS0uNDkzcy41LjIyMi41LjQ5M2EuNDk3LjQ5NyAwIDAgMS0uNS40OTNNMjIgMTNsLTkgOSAxLjUxMyAxLjUgOC45OS05LjAwOXpNMTcgMTFjMi4yMDkgMCA0LTEuMTE5IDQtMi41VjJzLjk4NS0uMTYxIDEuNDk4Ljk0OUMyMy4wMSA0LjA1NSAyMyA2IDIzIDZzMS0xLjExOSAxLTMuMTM1QzI0LS4wMiAyMSAwIDIxIDBoLTJ2Ni4zNDdBNS44NTMgNS44NTMgMCAwIDAgMTcgNmMtMi4yMDkgMC00IDEuMTE5LTQgMi41czEuNzkxIDIuNSA0IDIuNU0xMC4yOTcgMjAuNDgybC0xLjQ3NS0xLjU4NWE0Ny41NCA0Ny41NCAwIDAgMS0xLjQ0MiAxLjEyOWMtLjMwNy0uMjg4LS45ODktMS4wMTYtMi4wNDUtMi4xODMuOTAyLS44MzYgMS40NzktMS40NjYgMS43MjktMS44OTJzLjM3Ni0uODcxLjM3Ni0xLjMzNmMwLS41OTItLjI3My0xLjE3OC0uODE4LTEuNzU5LS41NDYtLjU4MS0xLjMyOS0uODcxLTIuMzQ5LS44NzEtMS4wMDggMC0xLjc5LjI5My0yLjM0NC44NzktLjU1Ni41ODctLjgzMiAxLjE4MS0uODMyIDEuNzg0IDAgLjgxMy40MTkgMS43NDggMS4yNTYgMi44MDUtLjg0Ny42MTQtMS40NDQgMS4yMDgtMS43OTQgMS43ODRhMy40NjUgMy40NjUgMCAwIDAtLjUyMyAxLjgzM2MwIC44NTcuMzA4IDEuNTYuOTI0IDIuMTA3LjYxNi41NDkgMS40MjMuODIzIDIuNDIuODIzIDEuMTczIDAgMi40NDQtLjM3OSAzLjgxMy0xLjEzN0w4LjIzNSAyNGgyLjgxOWwtMi4wOS0yLjM4MyAxLjMzMy0xLjEzNXptLTYuNzM2LTYuMzg5YTEuMDIgMS4wMiAwIDAgMSAuNzMtLjI4NmMuMzEgMCAuNTU5LjA4NS43NDcuMjU0YS44NDkuODQ5IDAgMCAxIC4yODMuNjU5YzAgLjUxOC0uNDE5IDEuMTEyLTEuMjU3IDEuNzg0LS41MzYtLjY1MS0uODA1LTEuMjMxLS44MDUtMS43NDJhLjkwMS45MDEgMCAwIDEgLjMwMi0uNjY5TTMuNzQgMjJjLS40MjcgMC0uNzc4LS4xMTYtMS4wNTctLjM0OS0uMjc5LS4yMzItLjQxOC0uNDg3LS40MTgtLjc2NiAwLS41OTQuNTA5LTEuMjg4IDEuNTI3LTIuMDgzLjk2OCAxLjEzNCAxLjcxNyAxLjk0NiAyLjI0OCAyLjQzOC0uOTIxLjUwNy0xLjY4Ni43Ni0yLjMuNzZcIi8+PC9zdmc+YCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgU1ZHc1xuIiwiY29uc3QgbWFwcGluZyA9IHtcbiAgbmFtZTogJ2EnLFxuICB1bmlmaWVkOiAnYicsXG4gIG5vbl9xdWFsaWZpZWQ6ICdjJyxcbiAgaGFzX2ltZ19hcHBsZTogJ2QnLFxuICBoYXNfaW1nX2dvb2dsZTogJ2UnLFxuICBoYXNfaW1nX3R3aXR0ZXI6ICdmJyxcbiAgaGFzX2ltZ19mYWNlYm9vazogJ2gnLFxuICBrZXl3b3JkczogJ2onLFxuICBzaGVldDogJ2snLFxuICBlbW90aWNvbnM6ICdsJyxcbiAgdGV4dDogJ20nLFxuICBzaG9ydF9uYW1lczogJ24nLFxuICBhZGRlZF9pbjogJ28nLFxufVxuXG5jb25zdCBidWlsZFNlYXJjaCA9IChlbW9qaSkgPT4ge1xuICBjb25zdCBzZWFyY2ggPSBbXVxuXG4gIHZhciBhZGRUb1NlYXJjaCA9IChzdHJpbmdzLCBzcGxpdCkgPT4ge1xuICAgIGlmICghc3RyaW5ncykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgOyhBcnJheS5pc0FycmF5KHN0cmluZ3MpID8gc3RyaW5ncyA6IFtzdHJpbmdzXSkuZm9yRWFjaCgoc3RyaW5nKSA9PiB7XG4gICAgICA7KHNwbGl0ID8gc3RyaW5nLnNwbGl0KC9bLXxffFxcc10rLykgOiBbc3RyaW5nXSkuZm9yRWFjaCgocykgPT4ge1xuICAgICAgICBzID0gcy50b0xvd2VyQ2FzZSgpXG5cbiAgICAgICAgaWYgKHNlYXJjaC5pbmRleE9mKHMpID09IC0xKSB7XG4gICAgICAgICAgc2VhcmNoLnB1c2gocylcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgYWRkVG9TZWFyY2goZW1vamkuc2hvcnRfbmFtZXMsIHRydWUpXG4gIGFkZFRvU2VhcmNoKGVtb2ppLm5hbWUsIHRydWUpXG4gIGFkZFRvU2VhcmNoKGVtb2ppLmtleXdvcmRzLCBmYWxzZSlcbiAgYWRkVG9TZWFyY2goZW1vamkuZW1vdGljb25zLCBmYWxzZSlcblxuICByZXR1cm4gc2VhcmNoLmpvaW4oJywnKVxufVxuXG5mdW5jdGlvbiBkZWVwRnJlZXplKG9iamVjdCkge1xuICAvLyBSZXRyaWV2ZSB0aGUgcHJvcGVydHkgbmFtZXMgZGVmaW5lZCBvbiBvYmplY3RcbiAgdmFyIHByb3BOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdClcblxuICAvLyBGcmVlemUgcHJvcGVydGllcyBiZWZvcmUgZnJlZXppbmcgc2VsZlxuICBmb3IgKGxldCBuYW1lIG9mIHByb3BOYW1lcykge1xuICAgIGxldCB2YWx1ZSA9IG9iamVjdFtuYW1lXVxuICAgIG9iamVjdFtuYW1lXSA9XG4gICAgICB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnID8gZGVlcEZyZWV6ZSh2YWx1ZSkgOiB2YWx1ZVxuICB9XG4gIHJldHVybiBPYmplY3QuZnJlZXplKG9iamVjdClcbn1cblxuY29uc3QgdW5jb21wcmVzcyA9IChkYXRhKSA9PiB7XG4gIGlmICghZGF0YS5jb21wcmVzc2VkKSB7XG4gICAgcmV0dXJuIGRhdGFcbiAgfVxuICBkYXRhLmNvbXByZXNzZWQgPSBmYWxzZVxuXG4gIGZvciAobGV0IGlkIGluIGRhdGEuZW1vamlzKSB7XG4gICAgbGV0IGVtb2ppID0gZGF0YS5lbW9qaXNbaWRdXG5cbiAgICBmb3IgKGxldCBrZXkgaW4gbWFwcGluZykge1xuICAgICAgZW1vamlba2V5XSA9IGVtb2ppW21hcHBpbmdba2V5XV1cbiAgICAgIGRlbGV0ZSBlbW9qaVttYXBwaW5nW2tleV1dXG4gICAgfVxuXG4gICAgaWYgKCFlbW9qaS5zaG9ydF9uYW1lcykgZW1vamkuc2hvcnRfbmFtZXMgPSBbXVxuICAgIGVtb2ppLnNob3J0X25hbWVzLnVuc2hpZnQoaWQpXG5cbiAgICBlbW9qaS5zaGVldF94ID0gZW1vamkuc2hlZXRbMF1cbiAgICBlbW9qaS5zaGVldF95ID0gZW1vamkuc2hlZXRbMV1cbiAgICBkZWxldGUgZW1vamkuc2hlZXRcblxuICAgIGlmICghZW1vamkudGV4dCkgZW1vamkudGV4dCA9ICcnXG5cbiAgICBpZiAoIWVtb2ppLmFkZGVkX2luKSBlbW9qaS5hZGRlZF9pbiA9IDZcbiAgICBlbW9qaS5hZGRlZF9pbiA9IGVtb2ppLmFkZGVkX2luLnRvRml4ZWQoMSlcblxuICAgIGVtb2ppLnNlYXJjaCA9IGJ1aWxkU2VhcmNoKGVtb2ppKVxuICB9XG4gIGRhdGEgPSBkZWVwRnJlZXplKGRhdGEpXG4gIHJldHVybiBkYXRhXG59XG5cbmV4cG9ydCB7IGJ1aWxkU2VhcmNoLCB1bmNvbXByZXNzIH1cbiIsImltcG9ydCB7IGludGVyc2VjdCwgdW5pZmllZFRvTmF0aXZlIH0gZnJvbSAnLi9pbmRleCdcbmltcG9ydCB7IHVuY29tcHJlc3MsIGJ1aWxkU2VhcmNoIH0gZnJvbSAnLi9kYXRhJ1xuaW1wb3J0IGZyZXF1ZW50bHkgZnJvbSAnLi9mcmVxdWVudGx5J1xuXG5jb25zdCBTSEVFVF9DT0xVTU5TID0gNjFcbmNvbnN0IENPTE9OU19SRUdFWCA9IC9eKD86XFw6KFteXFw6XSspXFw6KSg/OlxcOnNraW4tdG9uZS0oXFxkKVxcOik/JC9cbi8vIFNraW4gdG9uZXNcbmNvbnN0IFNLSU5TID0gWycxRjNGQScsICcxRjNGQicsICcxRjNGQycsICcxRjNGRCcsICcxRjNGRScsICcxRjNGRiddXG5cbi8qKlxuICogRW1vamkgZGF0YSBzdHJ1Y3R1cmU6XG4gKiB7XG4gKiAgICBcImNvbXByZXNzZWRcIjogZmFsc2UsXG4gKiAgICBcImFsaWFzZXNcIjoge1xuICogICAgICBjb2xsaXNpb246IFwiYm9vbVwiXG4gKiAgICAgIGNvb2tpbmc6IFwiZnJpZWRfZWdnXCJcbiAqICAgICAgZW52ZWxvcGU6IFwiZW1haWxcIlxuICogICAgICBmYWNlX3dpdGhfZmluZ2VyX2NvdmVyaW5nX2Nsb3NlZF9saXBzOiBcInNodXNoaW5nX2ZhY2VcIlxuICogICAgICAuLi5cbiAqICAgIH0sXG4gKiAgICBcImNhdGVnb3JpZXNcIjogWyB7XG4gKiAgICAgIGlkOiBcInBlb3BsZVwiLFxuICogICAgICBuYW1lOiBcIlNtaWxleXMgJiBFbW90aW9uXCIsXG4gKiAgICAgIGVtb2ppczogWyBcImdyaW5uaW5nXCIsIFwiZ3JpblwiLCBcImpveVwiLCAuLi4gXVxuICogICAgfSwge1xuICogICAgICBpZDogXCJuYXR1cmVcIixcbiAqICAgICAgbmFtZTogXCJBbmltYWxzICYgTmF0dXJlXCIsXG4gKiAgICAgIGVtb2ppczogWyBcIm1vbmtleV9mYWNlXCIsIFwibW9uZXlcIiwgXCJnb3JpbGxhXCIsIC4uLiBdXG4gKiAgICB9LFxuICogICAgLi4uXG4gKiAgICBdLFxuICogICAgXCJlbW9qaXNcIjogW1xuICogICAgICBzbWlsZXk6IHtcbiAqICAgICAgICBhZGRlZF9pbjogXCI2LjBcIixcbiAqICAgICAgICBlbW90aWNvbnM6IFtcIj0pXCIsIFwiPS0pXCJdLFxuICogICAgICAgIGhhc19pbWdfYXBwbGU6IHRydWUsXG4gKiAgICAgICAgaGFzX2ltZ19mYWNlYm9vazogdHJ1ZSxcbiAqICAgICAgICBoYXNfaW1nX2dvb2dsZTogdHJ1ZSxcbiAqICAgICAgICBoYXNfaW1nX3R3aXR0ZXI6IHRydWUsXG4gKiAgICAgICAga2V5d29yZHM6IFtcImZhY2VcIiwgXCJoYXBweVwiLCBcImpveVwiLCBcImhhaGFcIiwgXCI6RFwiLCBcIjopXCIsIFwic21pbGVcIiwgXCJmdW5ueVwiXSxcbiAqICAgICAgICBuYW1lOiBcIlNtaWxpbmcgRmFjZSB3aXRoIE9wZW4gTW91dGhcIixcbiAqICAgICAgICBub25fcXVhbGlmaWVkOiB1bmRlZmluZWQsXG4gKiAgICAgICAgc2VhcmNoOiBcInNtaWxleSxzbWlsaW5nLGZhY2Usd2l0aCxvcGVuLG1vdXRoLGhhcHB5LGpveSxoYWhhLDpkLDopLHNtaWxlLGZ1bm55LD0pLD0tKVwiLFxuICogICAgICAgIHNoZWV0X3g6IDMwLFxuICogICAgICAgIHNoZWV0X3k6IDI3LFxuICogICAgICAgIHNob3J0X25hbWVzOiBbXCJzbWlsZXlcIl0sXG4gKiAgICAgICAgdGV4dDogXCI6KVwiLFxuICogICAgICAgIHVuaWZpZWQ6IFwiMUY2MDNcIixcbiAqICAgICAgfSwge1xuICogICAgICArMTogeyAgICAvLyBlbW9qaSB3aXRoIHNraW5fdmFyaWF0aW9uc1xuICogICAgICAgICAgLi4uLCAvLyBhbGwgdGhlIHJlZ3VsYXIgZmllbGRzIGFyZSBwcmVzZW50XG4gKiAgICAgICAgICBuYW1lOiBcIlRodW1icyBVcCBTaWduXCIsXG4gKiAgICAgICAgICBzaG9ydF9uYW1lczogKDIpIFtcIisxXCIsIFwidGh1bWJzdXBcIl0sXG4gKiAgICAgICAgICBza2luX3ZhcmlhdGlvbnM6IHtcbiAqICAgICAgICAgICAgMUYzRkI6ICAgICAgICAgICAgIC8vIGVhY2ggdmFyaWF0aW9uIGhhcyBhZGRpdGlvbmFsIHNldCBvZiBmaWVsZHM6XG4gKiAgICAgICAgICAgICAgYWRkZWRfaW46IFwiOC4wXCIsXG4gKiAgICAgICAgICAgICAgaGFzX2ltZ19hcHBsZTogdHJ1ZSxcbiAqICAgICAgICAgICAgICBoYXNfaW1nX2ZhY2Vib29rOiB0cnVlLFxuICogICAgICAgICAgICAgIGhhc19pbWdfZ29vZ2xlOiB0cnVlLFxuICogICAgICAgICAgICAgIGhhc19pbWdfdHdpdHRlcjogdHJ1ZSxcbiAqICAgICAgICAgICAgICBpbWFnZTogXCIxZjQ0ZC0xZjNmYi5wbmdcIixcbiAqICAgICAgICAgICAgICBub25fcXVhbGlmaWVkOiBudWxsLFxuICogICAgICAgICAgICAgIHNoZWV0X3g6IDE0LFxuICogICAgICAgICAgICAgIHNoZWV0X3k6IDUwLFxuICogICAgICAgICAgICAgIHVuaWZpZWQ6IFwiMUY0NEQtMUYzRkJcIixcbiAqICAgICAgICAgICAgMUYzRkI6IHvigKZ9LFxuICogICAgICAgICAgICAxRjNGQzoge+KApn0sXG4gKiAgICAgICAgICAgIDFGM0ZEOiB74oCmfSxcbiAqICAgICAgICAgICAgMUYzRkU6IHvigKZ9LFxuICogICAgICAgICAgICAxRjNGRjoge+KApn1cbiAqICAgICAgICAgICAgfSxcbiAqICAgICAgICAgIC4uLlxuICogICAgICB9LFxuICogICAgICBhOiB7ICAvLyBlbW9qaSB3aXRoIG5vbl9xdWFsaWZpZWQgZmllbGQgc2V0XG4gKiAgICAgICAgYWRkZWRfaW46IFwiNi4wXCIsXG4gKiAgICAgICAgZW1vdGljb25zOiB1bmRlZmluZWQsXG4gKiAgICAgICAgaGFzX2ltZ19hcHBsZTogdHJ1ZSxcbiAqICAgICAgICAuLi5cbiAqICAgICAgICBub25fcXVhbGlmaWVkOiBcIjFGMTcwXCIsXG4gKiAgICAgICAgdW5pZmllZDogXCIxRjE3MC1GRTBGXCIsXG4gKiAgICAgfSxcbiAqICAgICAuLi5cbiAqICAgXVxuICogfVxuICovXG5cbi8qKlxuICogV3JhcHMgcmF3IGphc29uIGVtb2ppIGRhdGEsIHNlcnZlcyBhcyBkYXRhIHNvdXJjZSBmb3JcbiAqIGVtb2ppIHBpY2tlciBjb21wb25lbnRzLlxuICpcbiAqIFVzYWdlOlxuICpcbiAqICAgaW1wb3J0IGRhdGEgZnJvbSAnLi4vZGF0YS9hbGwuanNvbidcbiAqICAgbGV0IGluZGV4ID0gbmV3IEVtb2ppSW5kZXgoZGF0YSlcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBFbW9qaUluZGV4IHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gZGF0YSAtIFJhdyBqc29uIGRhdGEsIHNlZSB0aGUgc3RydWN0dXJlIGFib3ZlLlxuICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIGFkZGl0aW9uYWwgb3B0aW9ucywgYXMgYW4gb2JqZWN0OlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlbW9qaXNUb1Nob3dGaWx0ZXIgLSBvcHRpb25hbCwgZnVuY3Rpb24gdG8gZmlsdGVyIG91dFxuICAgKiAgIHNvbWUgZW1vamlzLCBmdW5jdGlvbihlbW9qaSkgeyByZXR1cm4gdHJ1ZXxmYWxzZSB9XG4gICAqICAgd2hlcmUgYGVtb2ppYCBpcyBhbiByYXcgZW1vamkgb2JqZWN0LCBzZWUgZGF0YS5lbW9qaXMgYWJvdmUuXG4gICAqIEBwYXJhbSB7QXJyYXl9IGluY2x1ZGUgLSBvcHRpb25hbCwgYSBsaXN0IG9mIGNhdGVnb3J5IGlkcyB0byBpbmNsdWRlLlxuICAgKiBAcGFyYW0ge0FycmF5fSBleGNsdWRlIC0gb3B0aW9uYWwsIGEgbGlzdCBvZiBjYXRlZ29yeSBpZHMgdG8gZXhjbHVkZS5cbiAgICogQHBhcmFtIHtBcnJheX0gY3VzdG9tIC0gb3B0aW9uYWwsIGEgbGlzdCBjdXN0b20gZW1vamlzLCBlYWNoIGVtb2ppIGlzXG4gICAqICAgYW4gb2JqZWN0LCBzZWUgZGF0YS5lbW9qaXMgYWJvdmUgZm9yIGV4YW1wbGVzLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgZGF0YSxcbiAgICB7XG4gICAgICBlbW9qaXNUb1Nob3dGaWx0ZXIsXG4gICAgICBpbmNsdWRlLFxuICAgICAgZXhjbHVkZSxcbiAgICAgIGN1c3RvbSxcbiAgICAgIHJlY2VudCxcbiAgICAgIHJlY2VudExlbmd0aCA9IDIwLFxuICAgIH0gPSB7fSxcbiAgKSB7XG4gICAgdGhpcy5fZGF0YSA9IHVuY29tcHJlc3MoZGF0YSlcbiAgICAvLyBDYWxsYmFjayB0byBleGNsdWRlIHNwZWNpZmljIGVtb2ppc1xuICAgIHRoaXMuX2Vtb2ppc0ZpbHRlciA9IGVtb2ppc1RvU2hvd0ZpbHRlciB8fCBudWxsXG4gICAgLy8gQ2F0ZWdvcmllcyB0byBpbmNsdWRlIC8gZXhjbHVkZVxuICAgIHRoaXMuX2luY2x1ZGUgPSBpbmNsdWRlIHx8IG51bGxcbiAgICB0aGlzLl9leGNsdWRlID0gZXhjbHVkZSB8fCBudWxsXG4gICAgLy8gQ3VzdG9tIGVtb2ppc1xuICAgIHRoaXMuX2N1c3RvbSA9IGN1c3RvbSB8fCBbXVxuICAgIC8vIFJlY2VudCBlbW9qaXNcbiAgICAvLyBUT0RPOiBtYWtlIHBhcmFtZXRlciBjb25maWd1cmFibGVcbiAgICB0aGlzLl9yZWNlbnQgPSByZWNlbnQgfHwgZnJlcXVlbnRseS5nZXQocmVjZW50TGVuZ3RoKVxuXG4gICAgdGhpcy5fZW1vamlzID0ge31cbiAgICB0aGlzLl9uYXRpdmVFbW9qaXMgPSB7fVxuICAgIHRoaXMuX2Vtb3RpY29ucyA9IHt9XG5cbiAgICB0aGlzLl9jYXRlZ29yaWVzID0gW11cbiAgICB0aGlzLl9yZWNlbnRDYXRlZ29yeSA9IHsgaWQ6ICdyZWNlbnQnLCBuYW1lOiAnUmVjZW50JywgZW1vamlzOiBbXSB9XG4gICAgdGhpcy5fY3VzdG9tQ2F0ZWdvcnkgPSB7IGlkOiAnY3VzdG9tJywgbmFtZTogJ0N1c3RvbScsIGVtb2ppczogW10gfVxuICAgIHRoaXMuX3NlYXJjaEluZGV4ID0ge31cbiAgICB0aGlzLmJ1aWxkSW5kZXgoKVxuICAgIE9iamVjdC5mcmVlemUodGhpcylcbiAgfVxuXG4gIGJ1aWxkSW5kZXgoKSB7XG4gICAgbGV0IGFsbENhdGVnb3JpZXMgPSB0aGlzLl9kYXRhLmNhdGVnb3JpZXNcblxuICAgIGlmICh0aGlzLl9pbmNsdWRlKSB7XG4gICAgICAvLyBSZW1vdmUgY2F0ZWdvcmllcyB0aGF0IGFyZSBub3QgaW4gdGhlIGluY2x1ZGUgbGlzdC5cbiAgICAgIGFsbENhdGVnb3JpZXMgPSBhbGxDYXRlZ29yaWVzLmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5jbHVkZS5pbmNsdWRlcyhpdGVtLmlkKVxuICAgICAgfSlcbiAgICAgIC8vIFNvcnQgY2F0ZWdvcmllcyBhY2NvcmRpbmcgdG8gdGhlIGluY2x1ZGUgbGlzdC5cbiAgICAgIGFsbENhdGVnb3JpZXMgPSBhbGxDYXRlZ29yaWVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXhBID0gdGhpcy5faW5jbHVkZS5pbmRleE9mKGEuaWQpXG4gICAgICAgIGNvbnN0IGluZGV4QiA9IHRoaXMuX2luY2x1ZGUuaW5kZXhPZihiLmlkKVxuICAgICAgICBpZiAoaW5kZXhBIDwgaW5kZXhCKSB7XG4gICAgICAgICAgcmV0dXJuIC0xXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGV4QSA+IGluZGV4Qikge1xuICAgICAgICAgIHJldHVybiAxXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDBcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgYWxsQ2F0ZWdvcmllcy5mb3JFYWNoKChjYXRlZ29yeURhdGEpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc0NhdGVnb3J5TmVlZGVkKGNhdGVnb3J5RGF0YS5pZCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBsZXQgY2F0ZWdvcnkgPSB7XG4gICAgICAgIGlkOiBjYXRlZ29yeURhdGEuaWQsXG4gICAgICAgIG5hbWU6IGNhdGVnb3J5RGF0YS5uYW1lLFxuICAgICAgICBlbW9qaXM6IFtdLFxuICAgICAgfVxuICAgICAgY2F0ZWdvcnlEYXRhLmVtb2ppcy5mb3JFYWNoKChlbW9qaUlkKSA9PiB7XG4gICAgICAgIGxldCBlbW9qaSA9IHRoaXMuYWRkRW1vamkoZW1vamlJZClcbiAgICAgICAgaWYgKGVtb2ppKSB7XG4gICAgICAgICAgY2F0ZWdvcnkuZW1vamlzLnB1c2goZW1vamkpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBpZiAoY2F0ZWdvcnkuZW1vamlzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9jYXRlZ29yaWVzLnB1c2goY2F0ZWdvcnkpXG4gICAgICB9XG4gICAgfSlcblxuICAgIGlmICh0aGlzLmlzQ2F0ZWdvcnlOZWVkZWQoJ2N1c3RvbScpKSB7XG4gICAgICBpZiAodGhpcy5fY3VzdG9tLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9yIChsZXQgY3VzdG9tRW1vamkgb2YgdGhpcy5fY3VzdG9tKSB7XG4gICAgICAgICAgdGhpcy5hZGRDdXN0b21FbW9qaShjdXN0b21FbW9qaSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuX2N1c3RvbUNhdGVnb3J5LmVtb2ppcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fY2F0ZWdvcmllcy5wdXNoKHRoaXMuX2N1c3RvbUNhdGVnb3J5KVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmlzQ2F0ZWdvcnlOZWVkZWQoJ3JlY2VudCcpKSB7XG4gICAgICBpZiAodGhpcy5fcmVjZW50Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9yZWNlbnQubWFwKChpZCkgPT4ge1xuICAgICAgICAgIGZvciAobGV0IGN1c3RvbUVtb2ppIG9mIHRoaXMuX2N1c3RvbUNhdGVnb3J5LmVtb2ppcykge1xuICAgICAgICAgICAgaWYgKGN1c3RvbUVtb2ppLmlkID09PSBpZCkge1xuICAgICAgICAgICAgICB0aGlzLl9yZWNlbnRDYXRlZ29yeS5lbW9qaXMucHVzaChjdXN0b21FbW9qaSlcbiAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLmhhc0Vtb2ppKGlkKSkge1xuICAgICAgICAgICAgdGhpcy5fcmVjZW50Q2F0ZWdvcnkuZW1vamlzLnB1c2godGhpcy5lbW9qaShpZCkpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgLy8gQWRkIHJlY2VudCBjYXRlZ29yeSB0byB0aGUgdG9wXG4gICAgICBpZiAodGhpcy5fcmVjZW50Q2F0ZWdvcnkuZW1vamlzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9jYXRlZ29yaWVzLnVuc2hpZnQodGhpcy5fcmVjZW50Q2F0ZWdvcnkpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgdGhlIGVtb2ppIGZyb20gdGhlIHN0cmluZ1xuICAgKi9cbiAgZmluZEVtb2ppKGVtb2ppLCBza2luKSB7XG4gICAgLy8gMS4gUGFyc2UgYXMgOmVtb2ppX25hbWU6c2tpbi10b25lLXh4OlxuICAgIGxldCBtYXRjaGVzID0gZW1vamkubWF0Y2goQ09MT05TX1JFR0VYKVxuXG4gICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgIGVtb2ppID0gbWF0Y2hlc1sxXVxuICAgICAgaWYgKG1hdGNoZXNbMl0pIHtcbiAgICAgICAgc2tpbiA9IHBhcnNlSW50KG1hdGNoZXNbMl0sIDEwKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDIuIENoZWNrIGlmIHRoZSBzcGVjaWZpZWQgZW1vamkgaXMgYW4gYWxpYXNcbiAgICBpZiAodGhpcy5fZGF0YS5hbGlhc2VzLmhhc093blByb3BlcnR5KGVtb2ppKSkge1xuICAgICAgZW1vamkgPSB0aGlzLl9kYXRhLmFsaWFzZXNbZW1vamldXG4gICAgfVxuXG4gICAgLy8gMy4gQ2hlY2sgaWYgd2UgaGF2ZSB0aGUgc3BlY2lmaWVkIGVtb2ppXG4gICAgaWYgKHRoaXMuX2Vtb2ppcy5oYXNPd25Qcm9wZXJ0eShlbW9qaSkpIHtcbiAgICAgIGxldCBlbW9qaU9iamVjdCA9IHRoaXMuX2Vtb2ppc1tlbW9qaV1cbiAgICAgIGlmIChza2luKSB7XG4gICAgICAgIHJldHVybiBlbW9qaU9iamVjdC5nZXRTa2luKHNraW4pXG4gICAgICB9XG4gICAgICByZXR1cm4gZW1vamlPYmplY3RcbiAgICB9XG5cbiAgICAvLyA0LiBDaGVjayBpZiB3ZSBoYXZlIHRoZSBzcGVjaWZpZWQgbmF0aXZlIGVtb2ppXG4gICAgaWYgKHRoaXMuX25hdGl2ZUVtb2ppcy5oYXNPd25Qcm9wZXJ0eShlbW9qaSkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9uYXRpdmVFbW9qaXNbZW1vamldXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjYXRlZ29yaWVzKCkge1xuICAgIHJldHVybiB0aGlzLl9jYXRlZ29yaWVzXG4gIH1cblxuICBlbW9qaShlbW9qaUlkKSB7XG4gICAgaWYgKHRoaXMuX2RhdGEuYWxpYXNlcy5oYXNPd25Qcm9wZXJ0eShlbW9qaUlkKSkge1xuICAgICAgZW1vamlJZCA9IHRoaXMuX2RhdGEuYWxpYXNlc1tlbW9qaUlkXVxuICAgIH1cbiAgICBsZXQgZW1vamkgPSB0aGlzLl9lbW9qaXNbZW1vamlJZF1cbiAgICBpZiAoIWVtb2ppKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhbiBub3QgZmluZCBlbW9qaSBieSBpZDogJyArIGVtb2ppSWQpXG4gICAgfVxuICAgIHJldHVybiBlbW9qaVxuICB9XG5cbiAgZmlyc3RFbW9qaSgpIHtcbiAgICBsZXQgZW1vamkgPSB0aGlzLl9lbW9qaXNbT2JqZWN0LmtleXModGhpcy5fZW1vamlzKVswXV1cbiAgICBpZiAoIWVtb2ppKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhbiBub3QgZ2V0IGZpcnN0IGVtb2ppJylcbiAgICB9XG4gICAgcmV0dXJuIGVtb2ppXG4gIH1cblxuICBoYXNFbW9qaShlbW9qaUlkKSB7XG4gICAgaWYgKHRoaXMuX2RhdGEuYWxpYXNlcy5oYXNPd25Qcm9wZXJ0eShlbW9qaUlkKSkge1xuICAgICAgZW1vamlJZCA9IHRoaXMuX2RhdGEuYWxpYXNlc1tlbW9qaUlkXVxuICAgIH1cbiAgICBpZiAodGhpcy5fZW1vamlzW2Vtb2ppSWRdKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIG5hdGl2ZUVtb2ppKHVuaWNvZGVFbW9qaSkge1xuICAgIGlmICh0aGlzLl9uYXRpdmVFbW9qaXMuaGFzT3duUHJvcGVydHkodW5pY29kZUVtb2ppKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX25hdGl2ZUVtb2ppc1t1bmljb2RlRW1vamldXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBzZWFyY2godmFsdWUsIG1heFJlc3VsdHMpIHtcbiAgICBtYXhSZXN1bHRzIHx8IChtYXhSZXN1bHRzID0gNzUpXG4gICAgaWYgKCF2YWx1ZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PSAnLScgfHwgdmFsdWUgPT0gJy0xJykge1xuICAgICAgcmV0dXJuIFt0aGlzLmVtb2ppKCctMScpXVxuICAgIH1cblxuICAgIGxldCB2YWx1ZXMgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpLnNwbGl0KC9bXFxzfCx8XFwtfF9dKy8pXG4gICAgbGV0IGFsbFJlc3VsdHMgPSBbXVxuXG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAyKSB7XG4gICAgICB2YWx1ZXMgPSBbdmFsdWVzWzBdLCB2YWx1ZXNbMV1dXG4gICAgfVxuXG4gICAgYWxsUmVzdWx0cyA9IHZhbHVlc1xuICAgICAgLm1hcCgodmFsdWUpID0+IHtcbiAgICAgICAgLy8gU3RhcnQgc2VhcmNoaW4gaW4gdGhlIGdsb2JhbCBsaXN0IG9mIGVtb2ppc1xuICAgICAgICBsZXQgZW1vamlzID0gdGhpcy5fZW1vamlzXG4gICAgICAgIGxldCBjdXJyZW50SW5kZXggPSB0aGlzLl9zZWFyY2hJbmRleFxuICAgICAgICBsZXQgbGVuZ3RoID0gMFxuXG4gICAgICAgIGZvciAobGV0IGNoYXJJbmRleCA9IDA7IGNoYXJJbmRleCA8IHZhbHVlLmxlbmd0aDsgY2hhckluZGV4KyspIHtcbiAgICAgICAgICBjb25zdCBjaGFyID0gdmFsdWVbY2hhckluZGV4XVxuICAgICAgICAgIGxlbmd0aCsrXG5cbiAgICAgICAgICBjdXJyZW50SW5kZXhbY2hhcl0gfHwgKGN1cnJlbnRJbmRleFtjaGFyXSA9IHt9KVxuICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGN1cnJlbnRJbmRleFtjaGFyXVxuXG4gICAgICAgICAgaWYgKCFjdXJyZW50SW5kZXgucmVzdWx0cykge1xuICAgICAgICAgICAgbGV0IHNjb3JlcyA9IHt9XG4gICAgICAgICAgICBjdXJyZW50SW5kZXgucmVzdWx0cyA9IFtdXG4gICAgICAgICAgICBjdXJyZW50SW5kZXguZW1vamlzID0ge31cblxuICAgICAgICAgICAgZm9yIChsZXQgZW1vamlJZCBpbiBlbW9qaXMpIHtcbiAgICAgICAgICAgICAgbGV0IGVtb2ppID0gZW1vamlzW2Vtb2ppSWRdXG4gICAgICAgICAgICAgIC8vIHNlYXJjaCBpcyBhIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmcgd2l0aCB3b3JkcywgcmVsYXRlZFxuICAgICAgICAgICAgICAvLyB0byB0aGUgZW1vamksIGZvciBleGFtcGxlOlxuICAgICAgICAgICAgICAvLyBzZWFyY2g6IFwic21pbGV5LHNtaWxpbmcsZmFjZSxqb3ksaGFoYSw6ZCw6KSxzbWlsZSxmdW5ueSw9KSw9LSlcIixcbiAgICAgICAgICAgICAgbGV0IHNlYXJjaCA9IGVtb2ppLl9kYXRhLnNlYXJjaFxuICAgICAgICAgICAgICBsZXQgc3ViID0gdmFsdWUuc3Vic3RyKDAsIGxlbmd0aClcbiAgICAgICAgICAgICAgbGV0IHN1YkluZGV4ID0gc2VhcmNoLmluZGV4T2Yoc3ViKVxuICAgICAgICAgICAgICBpZiAoc3ViSW5kZXggIT0gLTEpIHtcbiAgICAgICAgICAgICAgICBsZXQgc2NvcmUgPSBzdWJJbmRleCArIDFcbiAgICAgICAgICAgICAgICBpZiAoc3ViID09IGVtb2ppSWQpIHNjb3JlID0gMFxuXG4gICAgICAgICAgICAgICAgY3VycmVudEluZGV4LnJlc3VsdHMucHVzaChlbW9qaSlcbiAgICAgICAgICAgICAgICBjdXJyZW50SW5kZXguZW1vamlzW2Vtb2ppSWRdID0gZW1vamlcblxuICAgICAgICAgICAgICAgIHNjb3Jlc1tlbW9qaUlkXSA9IHNjb3JlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGN1cnJlbnRJbmRleC5yZXN1bHRzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgICAgdmFyIGFTY29yZSA9IHNjb3Jlc1thLmlkXSxcbiAgICAgICAgICAgICAgICBiU2NvcmUgPSBzY29yZXNbYi5pZF1cbiAgICAgICAgICAgICAgcmV0dXJuIGFTY29yZSAtIGJTY29yZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBjb250aW51ZSBzZWFyY2ggaW4gdGhlIHJlZHVjZWQgc2V0IG9mIGVtb2ppc1xuICAgICAgICAgIGVtb2ppcyA9IGN1cnJlbnRJbmRleC5lbW9qaXNcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VycmVudEluZGV4LnJlc3VsdHNcbiAgICAgICAgLy8gVGhlIFwiZmlsdGVyXCIgY2FsbCByZW1vdmVzIHVuZGVmaW5lZCB2YWx1ZXMgZnJvbSBhbGxSZXN1bHRzXG4gICAgICAgIC8vIGFycmF5LCBmb3IgZXhhbXBsZSwgaWYgd2UgaGF2ZSBcInRlc3QgXCIgKHdpdGggdHJhaWxpbmcgc3BhY2UpLFxuICAgICAgICAvLyB3ZSB3aWxsIGdldCBcIltBcnJheSwgdW5kZWZpbmVkXVwiIGZvciBhbGxSZXN1bHRzIGFuZCBhZnRlclxuICAgICAgICAvLyB0aGUgXCJmaWx0ZXJcIiBjYWxsIGl0IHdpbGwgdHVybiBpbnRvIFwiW0FycmF5XVwiXG4gICAgICB9KVxuICAgICAgLmZpbHRlcigoYSkgPT4gYSlcblxuICAgIHZhciByZXN1bHRzID0gbnVsbFxuICAgIGlmIChhbGxSZXN1bHRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHJlc3VsdHMgPSBpbnRlcnNlY3QuYXBwbHkobnVsbCwgYWxsUmVzdWx0cylcbiAgICB9IGVsc2UgaWYgKGFsbFJlc3VsdHMubGVuZ3RoKSB7XG4gICAgICByZXN1bHRzID0gYWxsUmVzdWx0c1swXVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRzID0gW11cbiAgICB9XG4gICAgaWYgKHJlc3VsdHMgJiYgcmVzdWx0cy5sZW5ndGggPiBtYXhSZXN1bHRzKSB7XG4gICAgICByZXN1bHRzID0gcmVzdWx0cy5zbGljZSgwLCBtYXhSZXN1bHRzKVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0c1xuICB9XG5cbiAgYWRkQ3VzdG9tRW1vamkoY3VzdG9tRW1vamkpIHtcbiAgICBsZXQgZW1vamlEYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgY3VzdG9tRW1vamksIHtcbiAgICAgIGlkOiBjdXN0b21FbW9qaS5zaG9ydF9uYW1lc1swXSxcbiAgICAgIGN1c3RvbTogdHJ1ZSxcbiAgICB9KVxuICAgIGlmICghZW1vamlEYXRhLnNlYXJjaCkge1xuICAgICAgZW1vamlEYXRhLnNlYXJjaCA9IGJ1aWxkU2VhcmNoKGVtb2ppRGF0YSlcbiAgICB9XG4gICAgbGV0IGVtb2ppID0gbmV3IEVtb2ppRGF0YShlbW9qaURhdGEpXG4gICAgdGhpcy5fZW1vamlzW2Vtb2ppLmlkXSA9IGVtb2ppXG4gICAgdGhpcy5fY3VzdG9tQ2F0ZWdvcnkuZW1vamlzLnB1c2goZW1vamkpXG4gICAgcmV0dXJuIGVtb2ppXG4gIH1cblxuICBhZGRFbW9qaShlbW9qaUlkKSB7XG4gICAgLy8gV2UgZXhwZWN0IHRoZSBjb3JyZWN0IGVtb2ppIGlkIHRoYXQgaXMgcHJlc2VudCBpbiB0aGUgZW1vamlzIGRhdGEuXG4gICAgbGV0IGRhdGEgPSB0aGlzLl9kYXRhLmVtb2ppc1tlbW9qaUlkXVxuXG4gICAgaWYgKCF0aGlzLmlzRW1vamlOZWVkZWQoZGF0YSkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGxldCBlbW9qaSA9IG5ldyBFbW9qaURhdGEoZGF0YSlcbiAgICB0aGlzLl9lbW9qaXNbZW1vamlJZF0gPSBlbW9qaVxuICAgIGlmIChlbW9qaS5uYXRpdmUpIHtcbiAgICAgIHRoaXMuX25hdGl2ZUVtb2ppc1tlbW9qaS5uYXRpdmVdID0gZW1vamlcbiAgICB9XG4gICAgaWYgKGVtb2ppLl9za2lucykge1xuICAgICAgZm9yIChsZXQgaWR4IGluIGVtb2ppLl9za2lucykge1xuICAgICAgICBsZXQgc2tpbiA9IGVtb2ppLl9za2luc1tpZHhdXG4gICAgICAgIGlmIChza2luLm5hdGl2ZSkge1xuICAgICAgICAgIHRoaXMuX25hdGl2ZUVtb2ppc1tza2luLm5hdGl2ZV0gPSBza2luXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZW1vamkuZW1vdGljb25zKSB7XG4gICAgICBlbW9qaS5lbW90aWNvbnMuZm9yRWFjaCgoZW1vdGljb24pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2Vtb3RpY29uc1tlbW90aWNvbl0pIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbW90aWNvbnNbZW1vdGljb25dID0gZW1vamlJZFxuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIGVtb2ppXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgd2UgbmVlZCB0byBpbmNsdWRlIGdpdmVuIGNhdGVnb3J5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2F0ZWdvcnlfaWQgLSBUaGUgY2F0ZWdvcnkgaWQuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC0gV2hldGhlciB0byBpbmNsdWRlIHRoZSBlbW9qaS5cbiAgICovXG4gIGlzQ2F0ZWdvcnlOZWVkZWQoY2F0ZWdvcnlfaWQpIHtcbiAgICBsZXQgaXNJbmNsdWRlZCA9XG4gICAgICB0aGlzLl9pbmNsdWRlICYmIHRoaXMuX2luY2x1ZGUubGVuZ3RoXG4gICAgICAgID8gdGhpcy5faW5jbHVkZS5pbmRleE9mKGNhdGVnb3J5X2lkKSA+IC0xXG4gICAgICAgIDogdHJ1ZVxuICAgIGxldCBpc0V4Y2x1ZGVkID1cbiAgICAgIHRoaXMuX2V4Y2x1ZGUgJiYgdGhpcy5fZXhjbHVkZS5sZW5ndGhcbiAgICAgICAgPyB0aGlzLl9leGNsdWRlLmluZGV4T2YoY2F0ZWdvcnlfaWQpID4gLTFcbiAgICAgICAgOiBmYWxzZVxuICAgIGlmICghaXNJbmNsdWRlZCB8fCBpc0V4Y2x1ZGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB3ZSBuZWVkIHRvIGluY2x1ZGUgZ2l2ZW4gZW1vamkuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBlbW9qaSAtIFRoZSByYXcgZW1vamkgb2JqZWN0LlxuICAgKiBAcmV0dXJuIHtib29sZWFufSAtIFdoZXRoZXIgdG8gaW5jbHVkZSB0aGUgZW1vamkuXG4gICAqL1xuICBpc0Vtb2ppTmVlZGVkKGVtb2ppKSB7XG4gICAgaWYgKHRoaXMuX2Vtb2ppc0ZpbHRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuX2Vtb2ppc0ZpbHRlcihlbW9qaSlcbiAgICB9XG4gICAgcmV0dXJuIHRydWVcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRW1vamlEYXRhIHtcbiAgY29uc3RydWN0b3IoZGF0YSkge1xuICAgIHRoaXMuX2RhdGEgPSBPYmplY3QuYXNzaWduKHt9LCBkYXRhKVxuICAgIHRoaXMuX3NraW5zID0gbnVsbFxuICAgIGlmICh0aGlzLl9kYXRhLnNraW5fdmFyaWF0aW9ucykge1xuICAgICAgdGhpcy5fc2tpbnMgPSBbXVxuICAgICAgZm9yICh2YXIgc2tpbklkeCBpbiBTS0lOUykge1xuICAgICAgICBsZXQgc2tpbktleSA9IFNLSU5TW3NraW5JZHhdXG4gICAgICAgIGxldCB2YXJpYXRpb25EYXRhID0gdGhpcy5fZGF0YS5za2luX3ZhcmlhdGlvbnNbc2tpbktleV1cbiAgICAgICAgbGV0IHNraW5EYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgZGF0YSlcbiAgICAgICAgZm9yIChsZXQgayBpbiB2YXJpYXRpb25EYXRhKSB7XG4gICAgICAgICAgc2tpbkRhdGFba10gPSB2YXJpYXRpb25EYXRhW2tdXG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHNraW5EYXRhLnNraW5fdmFyaWF0aW9uc1xuICAgICAgICBza2luRGF0YVsnc2tpbl90b25lJ10gPSBwYXJzZUludChza2luSWR4KSArIDFcbiAgICAgICAgdGhpcy5fc2tpbnMucHVzaChuZXcgRW1vamlEYXRhKHNraW5EYXRhKSlcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fc2FuaXRpemVkID0gc2FuaXRpemUodGhpcy5fZGF0YSlcbiAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5fc2FuaXRpemVkKSB7XG4gICAgICB0aGlzW2tleV0gPSB0aGlzLl9zYW5pdGl6ZWRba2V5XVxuICAgIH1cbiAgICB0aGlzLnNob3J0X25hbWVzID0gdGhpcy5fZGF0YS5zaG9ydF9uYW1lc1xuICAgIHRoaXMuc2hvcnRfbmFtZSA9IHRoaXMuX2RhdGEuc2hvcnRfbmFtZXNbMF1cbiAgICBPYmplY3QuZnJlZXplKHRoaXMpXG4gIH1cblxuICBnZXRTa2luKHNraW5JZHgpIHtcbiAgICBpZiAoc2tpbklkeCAmJiBza2luSWR4ICE9ICduYXRpdmUnICYmIHRoaXMuX3NraW5zKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2tpbnNbc2tpbklkeCAtIDFdXG4gICAgfVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBnZXRQb3NpdGlvbigpIHtcbiAgICBsZXQgYWRqdXN0ZWRDb2x1bW5zID0gU0hFRVRfQ09MVU1OUyAtIDEsXG4gICAgICB4ID0gKygoMTAwIC8gYWRqdXN0ZWRDb2x1bW5zKSAqIHRoaXMuX2RhdGEuc2hlZXRfeCkudG9GaXhlZCgyKSxcbiAgICAgIHkgPSArKCgxMDAgLyBhZGp1c3RlZENvbHVtbnMpICogdGhpcy5fZGF0YS5zaGVldF95KS50b0ZpeGVkKDIpXG4gICAgcmV0dXJuIGAke3h9JSAke3l9JWBcbiAgfVxuXG4gIGFyaWFMYWJlbCgpIHtcbiAgICByZXR1cm4gW3RoaXMubmF0aXZlXS5jb25jYXQodGhpcy5zaG9ydF9uYW1lcykuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJywgJylcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRW1vamlWaWV3IHtcbiAgLyoqXG4gICAqIGVtb2ppIC0gRW1vamkgdG8gZGlzcGxheVxuICAgKiBzZXQgLSBzdHJpbmcsIGVtb2ppIHNldCBuYW1lXG4gICAqIG5hdGl2ZSAtIGJvb2xlYW4sIHdoZXRoZXIgdG8gcmVuZGVyIG5hdGl2ZSBlbW9qaVxuICAgKiBmYWxsYmFjayAtIGZhbGxiYWNrIGZ1bmN0aW9uIHRvIHJlbmRlciBtaXNzaW5nIGVtb2ppLCBvcHRpb25hbFxuICAgKiBlbW9qaVRvb2x0aXAgLSB3ZXRoZXIgd2UgbmVlZCB0byBzaG93IHRoZSBlbW9qaSB0b29sdGlwLCBvcHRpb25hbFxuICAgKiBlbW9qaVNpemUgLSBlbW9qaSBzaXplIGluIHBpeGVscywgb3B0aW9uYWxcbiAgICovXG4gIGNvbnN0cnVjdG9yKGVtb2ppLCBza2luLCBzZXQsIG5hdGl2ZSwgZmFsbGJhY2ssIGVtb2ppVG9vbHRpcCwgZW1vamlTaXplKSB7XG4gICAgdGhpcy5fZW1vamkgPSBlbW9qaVxuICAgIHRoaXMuX25hdGl2ZSA9IG5hdGl2ZVxuICAgIHRoaXMuX3NraW4gPSBza2luXG4gICAgdGhpcy5fc2V0ID0gc2V0XG4gICAgdGhpcy5fZmFsbGJhY2sgPSBmYWxsYmFja1xuXG4gICAgdGhpcy5jYW5SZW5kZXIgPSB0aGlzLl9jYW5SZW5kZXIoKVxuICAgIHRoaXMuY3NzQ2xhc3MgPSB0aGlzLl9jc3NDbGFzcygpXG4gICAgdGhpcy5jc3NTdHlsZSA9IHRoaXMuX2Nzc1N0eWxlKGVtb2ppU2l6ZSlcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLl9jb250ZW50KClcbiAgICB0aGlzLnRpdGxlID0gZW1vamlUb29sdGlwID09PSB0cnVlID8gZW1vamkuc2hvcnRfbmFtZSA6IG51bGxcbiAgICB0aGlzLmFyaWFMYWJlbCA9IGVtb2ppLmFyaWFMYWJlbCgpXG5cbiAgICBPYmplY3QuZnJlZXplKHRoaXMpXG4gIH1cblxuICBnZXRFbW9qaSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW1vamkuZ2V0U2tpbih0aGlzLl9za2luKVxuICB9XG5cbiAgX2NhblJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5faXNDdXN0b20oKSB8fCB0aGlzLl9pc05hdGl2ZSgpIHx8IHRoaXMuX2hhc0Vtb2ppKCkgfHwgdGhpcy5fZmFsbGJhY2tcbiAgICApXG4gIH1cblxuICBfY3NzQ2xhc3MoKSB7XG4gICAgcmV0dXJuIFsnZW1vamktc2V0LScgKyB0aGlzLl9zZXQsICdlbW9qaS10eXBlLScgKyB0aGlzLl9lbW9qaVR5cGUoKV1cbiAgfVxuXG4gIF9jc3NTdHlsZShlbW9qaVNpemUpIHtcbiAgICBsZXQgY3NzU3R5bGUgPSB7fVxuICAgIGlmICh0aGlzLl9pc0N1c3RvbSgpKSB7XG4gICAgICBjc3NTdHlsZSA9IHtcbiAgICAgICAgYmFja2dyb3VuZEltYWdlOiAndXJsKCcgKyB0aGlzLmdldEVtb2ppKCkuX2RhdGEuaW1hZ2VVcmwgKyAnKScsXG4gICAgICAgIGJhY2tncm91bmRTaXplOiAnMTAwJScsXG4gICAgICAgIHdpZHRoOiBlbW9qaVNpemUgKyAncHgnLFxuICAgICAgICBoZWlnaHQ6IGVtb2ppU2l6ZSArICdweCcsXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLl9oYXNFbW9qaSgpICYmICF0aGlzLl9pc05hdGl2ZSgpKSB7XG4gICAgICBjc3NTdHlsZSA9IHtcbiAgICAgICAgYmFja2dyb3VuZFBvc2l0aW9uOiB0aGlzLmdldEVtb2ppKCkuZ2V0UG9zaXRpb24oKSxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVtb2ppU2l6ZSkge1xuICAgICAgaWYgKHRoaXMuX2lzTmF0aXZlKCkpIHtcbiAgICAgICAgLy8gU2V0IGZvbnQtc2l6ZSBmb3IgbmF0aXZlIGVtb2ppLlxuICAgICAgICBjc3NTdHlsZSA9IE9iamVjdC5hc3NpZ24oY3NzU3R5bGUsIHtcbiAgICAgICAgICAvLyBmb250LXNpemUgaXMgdXNlZCBmb3IgbmF0aXZlIGVtb2ppIHdoaWNoIHdlIG5lZWRcbiAgICAgICAgICAvLyB0byBzY2FsZSB3aXRoIDAuOTUgZmFjdG9yIHRvIGhhdmUgdGhlbSBsb29rIGFwcHJveGltYXRlbHlcbiAgICAgICAgICAvLyB0aGUgc2FtZSBzaXplIGFzIGltYWdlLWJhc2VkIGVtb2ppLlxuICAgICAgICAgIGZvbnRTaXplOiBNYXRoLnJvdW5kKGVtb2ppU2l6ZSAqIDAuOTUgKiAxMCkgLyAxMCArICdweCcsXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTZXQgd2lkdGgvaGVpZ2h0IGZvciBpbWFnZSBlbW9qaS5cbiAgICAgICAgY3NzU3R5bGUgPSBPYmplY3QuYXNzaWduKGNzc1N0eWxlLCB7XG4gICAgICAgICAgd2lkdGg6IGVtb2ppU2l6ZSArICdweCcsXG4gICAgICAgICAgaGVpZ2h0OiBlbW9qaVNpemUgKyAncHgnLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY3NzU3R5bGVcbiAgfVxuXG4gIF9jb250ZW50KCkge1xuICAgIGlmICh0aGlzLl9pc0N1c3RvbSgpKSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG4gICAgaWYgKHRoaXMuX2lzTmF0aXZlKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEVtb2ppKCkubmF0aXZlXG4gICAgfVxuICAgIGlmICh0aGlzLl9oYXNFbW9qaSgpKSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrID8gdGhpcy5fZmFsbGJhY2sodGhpcy5nZXRFbW9qaSgpKSA6IG51bGxcbiAgfVxuXG4gIF9pc05hdGl2ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbmF0aXZlXG4gIH1cblxuICBfaXNDdXN0b20oKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RW1vamkoKS5jdXN0b21cbiAgfVxuXG4gIF9oYXNFbW9qaSgpIHtcbiAgICBpZiAoIXRoaXMuZ2V0RW1vamkoKS5fZGF0YSkge1xuICAgICAgLy8gUmV0dXJuIGZhbHNlIGlmIHdlIGhhdmUgbm8gZGF0YS5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICBjb25zdCBoYXNJbWFnZSA9IHRoaXMuZ2V0RW1vamkoKS5fZGF0YVsnaGFzX2ltZ18nICsgdGhpcy5fc2V0XVxuICAgIGlmIChoYXNJbWFnZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBJZiB0aGVyZSBpcyBubyBoYXNfaW1nX3h4eCBpbiB0aGUgZGF0YSwgd2UgYXJlIHdvcmtpbmcgd2l0aFxuICAgICAgLy8gc3BlY2lmaWMgZGF0YSBmaWxlLCBsaWtlIGZhY2Vib29rLmpzb24sIHNvIHdlIGFzc3VtZSBhbGxcbiAgICAgIC8vIGVtb2ppcyBhcmUgYXZhaWxhYmxlICh0aGUgOnNldCBzZXR0aW5nIGZvciBwaWNrZXIgc2hvdWxkXG4gICAgICAvLyBtYXRjaCB0aGUgZGF0YSBmaWxlKS5cbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIC8vIE90aGVyd2lzZSwgd2UgYXJlIHVzaW5nIGFsbC5qc29uIGFuZCBjYW4gc3dpdGNoIGJldHdlZW4gZGlmZmVyZW50XG4gICAgLy8gc2V0cyAtIGluIHRoaXMgY2FzZSB0aGUgYGhhc19pbWdfe3NldF9uYW1lfWAgaXMgYSBib29sZWFuIHRoYXRcbiAgICAvLyBpbmRpY2F0ZXMgaWYgdGhlcmUgaXMgc3VjaCBpbWFnZSBvciBub3QgZm9yIGEgZ2l2ZW4gc2V0LlxuICAgIHJldHVybiBoYXNJbWFnZVxuICB9XG5cbiAgX2Vtb2ppVHlwZSgpIHtcbiAgICBpZiAodGhpcy5faXNDdXN0b20oKSkge1xuICAgICAgcmV0dXJuICdjdXN0b20nXG4gICAgfVxuICAgIGlmICh0aGlzLl9pc05hdGl2ZSgpKSB7XG4gICAgICByZXR1cm4gJ25hdGl2ZSdcbiAgICB9XG4gICAgaWYgKHRoaXMuX2hhc0Vtb2ppKCkpIHtcbiAgICAgIHJldHVybiAnaW1hZ2UnXG4gICAgfVxuICAgIHJldHVybiAnZmFsbGJhY2snXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhbml0aXplKGVtb2ppKSB7XG4gIHZhciB7XG4gICAgICBuYW1lLFxuICAgICAgc2hvcnRfbmFtZXMsXG4gICAgICBza2luX3RvbmUsXG4gICAgICBza2luX3ZhcmlhdGlvbnMsXG4gICAgICBlbW90aWNvbnMsXG4gICAgICB1bmlmaWVkLFxuICAgICAgY3VzdG9tLFxuICAgICAgaW1hZ2VVcmwsXG4gICAgfSA9IGVtb2ppLFxuICAgIGlkID0gZW1vamkuaWQgfHwgc2hvcnRfbmFtZXNbMF0sXG4gICAgY29sb25zID0gYDoke2lkfTpgXG5cbiAgaWYgKGN1c3RvbSkge1xuICAgIHJldHVybiB7XG4gICAgICBpZCxcbiAgICAgIG5hbWUsXG4gICAgICBjb2xvbnMsXG4gICAgICBlbW90aWNvbnMsXG4gICAgICBjdXN0b20sXG4gICAgICBpbWFnZVVybCxcbiAgICB9XG4gIH1cblxuICBpZiAoc2tpbl90b25lKSB7XG4gICAgY29sb25zICs9IGA6c2tpbi10b25lLSR7c2tpbl90b25lfTpgXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGlkLFxuICAgIG5hbWUsXG4gICAgY29sb25zLFxuICAgIGVtb3RpY29ucyxcbiAgICB1bmlmaWVkOiB1bmlmaWVkLnRvTG93ZXJDYXNlKCksXG4gICAgc2tpbjogc2tpbl90b25lIHx8IChza2luX3ZhcmlhdGlvbnMgPyAxIDogbnVsbCksXG4gICAgbmF0aXZlOiB1bmlmaWVkVG9OYXRpdmUodW5pZmllZCksXG4gIH1cbn1cbiIsImltcG9ydCBzdG9yZSBmcm9tICcuL3N0b3JlJ1xuXG5jb25zdCBERUZBVUxUUyA9IFtcbiAgJysxJyxcbiAgJ2dyaW5uaW5nJyxcbiAgJ2tpc3NpbmdfaGVhcnQnLFxuICAnaGVhcnRfZXllcycsXG4gICdsYXVnaGluZycsXG4gICdzdHVja19vdXRfdG9uZ3VlX3dpbmtpbmdfZXllJyxcbiAgJ3N3ZWF0X3NtaWxlJyxcbiAgJ2pveScsXG4gICdzY3JlYW0nLFxuICAnZGlzYXBwb2ludGVkJyxcbiAgJ3VuYW11c2VkJyxcbiAgJ3dlYXJ5JyxcbiAgJ3NvYicsXG4gICdzdW5nbGFzc2VzJyxcbiAgJ2hlYXJ0JyxcbiAgJ2hhbmtleScsXG5dXG5cbmxldCBmcmVxdWVudGx5LCBpbml0aWFsaXplZFxubGV0IGRlZmF1bHRzID0ge31cblxuZnVuY3Rpb24gaW5pdCgpIHtcbiAgaW5pdGlhbGl6ZWQgPSB0cnVlXG4gIGZyZXF1ZW50bHkgPSBzdG9yZS5nZXQoJ2ZyZXF1ZW50bHknKVxufVxuXG5mdW5jdGlvbiBhZGQoZW1vamkpIHtcbiAgaWYgKCFpbml0aWFsaXplZCkgaW5pdCgpXG4gIHZhciB7IGlkIH0gPSBlbW9qaVxuXG4gIGZyZXF1ZW50bHkgfHwgKGZyZXF1ZW50bHkgPSBkZWZhdWx0cylcbiAgZnJlcXVlbnRseVtpZF0gfHwgKGZyZXF1ZW50bHlbaWRdID0gMClcbiAgZnJlcXVlbnRseVtpZF0gKz0gMVxuXG4gIHN0b3JlLnNldCgnbGFzdCcsIGlkKVxuICBzdG9yZS5zZXQoJ2ZyZXF1ZW50bHknLCBmcmVxdWVudGx5KVxufVxuXG5mdW5jdGlvbiBnZXQobWF4TnVtYmVyKSB7XG4gIGlmICghaW5pdGlhbGl6ZWQpIGluaXQoKVxuICBpZiAoIWZyZXF1ZW50bHkpIHtcbiAgICBkZWZhdWx0cyA9IHt9XG5cbiAgICBjb25zdCByZXN1bHQgPSBbXVxuXG4gICAgbGV0IGRlZmF1bHRMZW5ndGggPSBNYXRoLm1pbihtYXhOdW1iZXIsIERFRkFVTFRTLmxlbmd0aClcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRlZmF1bHRMZW5ndGg7IGkrKykge1xuICAgICAgZGVmYXVsdHNbREVGQVVMVFNbaV1dID0gcGFyc2VJbnQoKGRlZmF1bHRMZW5ndGggLSBpKSAvIDQsIDEwKSArIDFcbiAgICAgIHJlc3VsdC5wdXNoKERFRkFVTFRTW2ldKVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIGNvbnN0IHF1YW50aXR5ID0gbWF4TnVtYmVyXG4gIGNvbnN0IGZyZXF1ZW50bHlLZXlzID0gW11cblxuICBmb3IgKGxldCBrZXkgaW4gZnJlcXVlbnRseSkge1xuICAgIGlmIChmcmVxdWVudGx5Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIGZyZXF1ZW50bHlLZXlzLnB1c2goa2V5KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNvcnRlZCA9IGZyZXF1ZW50bHlLZXlzXG4gICAgLnNvcnQoKGEsIGIpID0+IGZyZXF1ZW50bHlbYV0gLSBmcmVxdWVudGx5W2JdKVxuICAgIC5yZXZlcnNlKClcbiAgY29uc3Qgc2xpY2VkID0gc29ydGVkLnNsaWNlKDAsIHF1YW50aXR5KVxuXG4gIGNvbnN0IGxhc3QgPSBzdG9yZS5nZXQoJ2xhc3QnKVxuXG4gIGlmIChsYXN0ICYmIHNsaWNlZC5pbmRleE9mKGxhc3QpID09IC0xKSB7XG4gICAgc2xpY2VkLnBvcCgpXG4gICAgc2xpY2VkLnB1c2gobGFzdClcbiAgfVxuXG4gIHJldHVybiBzbGljZWRcbn1cblxuZXhwb3J0IGRlZmF1bHQgeyBhZGQsIGdldCB9XG4iLCJpbXBvcnQgc3RyaW5nRnJvbUNvZGVQb2ludCBmcm9tICcuLi9wb2x5ZmlsbHMvc3RyaW5nRnJvbUNvZGVQb2ludCdcblxuZnVuY3Rpb24gdW5pZmllZFRvTmF0aXZlKHVuaWZpZWQpIHtcbiAgdmFyIHVuaWNvZGVzID0gdW5pZmllZC5zcGxpdCgnLScpLFxuICAgIGNvZGVQb2ludHMgPSB1bmljb2Rlcy5tYXAoKHUpID0+IGAweCR7dX1gKVxuXG4gIHJldHVybiBzdHJpbmdGcm9tQ29kZVBvaW50LmFwcGx5KG51bGwsIGNvZGVQb2ludHMpXG59XG5cbmZ1bmN0aW9uIHVuaXEoYXJyKSB7XG4gIHJldHVybiBhcnIucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcbiAgICBpZiAoYWNjLmluZGV4T2YoaXRlbSkgPT09IC0xKSB7XG4gICAgICBhY2MucHVzaChpdGVtKVxuICAgIH1cbiAgICByZXR1cm4gYWNjXG4gIH0sIFtdKVxufVxuXG5mdW5jdGlvbiBpbnRlcnNlY3QoYSwgYikge1xuICBjb25zdCB1bmlxQSA9IHVuaXEoYSlcbiAgY29uc3QgdW5pcUIgPSB1bmlxKGIpXG5cbiAgcmV0dXJuIHVuaXFBLmZpbHRlcigoaXRlbSkgPT4gdW5pcUIuaW5kZXhPZihpdGVtKSA+PSAwKVxufVxuXG5mdW5jdGlvbiBkZWVwTWVyZ2UoYSwgYikge1xuICB2YXIgbyA9IHt9XG5cbiAgZm9yIChsZXQga2V5IGluIGEpIHtcbiAgICBsZXQgb3JpZ2luYWxWYWx1ZSA9IGFba2V5XSxcbiAgICAgIHZhbHVlID0gb3JpZ2luYWxWYWx1ZVxuXG4gICAgaWYgKGIuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgdmFsdWUgPSBiW2tleV1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgdmFsdWUgPSBkZWVwTWVyZ2Uob3JpZ2luYWxWYWx1ZSwgdmFsdWUpXG4gICAgfVxuXG4gICAgb1trZXldID0gdmFsdWVcbiAgfVxuXG4gIHJldHVybiBvXG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zb25pY2RvZS9tZWFzdXJlLXNjcm9sbGJhclxuZnVuY3Rpb24gbWVhc3VyZVNjcm9sbGJhcigpIHtcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PSAndW5kZWZpbmVkJykgcmV0dXJuIDBcbiAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcblxuICBkaXYuc3R5bGUud2lkdGggPSAnMTAwcHgnXG4gIGRpdi5zdHlsZS5oZWlnaHQgPSAnMTAwcHgnXG4gIGRpdi5zdHlsZS5vdmVyZmxvdyA9ICdzY3JvbGwnXG4gIGRpdi5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSdcbiAgZGl2LnN0eWxlLnRvcCA9ICctOTk5OXB4J1xuXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KVxuICBjb25zdCBzY3JvbGxiYXJXaWR0aCA9IGRpdi5vZmZzZXRXaWR0aCAtIGRpdi5jbGllbnRXaWR0aFxuICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdilcblxuICByZXR1cm4gc2Nyb2xsYmFyV2lkdGhcbn1cblxuZXhwb3J0IHsgdW5pcSwgaW50ZXJzZWN0LCBkZWVwTWVyZ2UsIHVuaWZpZWRUb05hdGl2ZSwgbWVhc3VyZVNjcm9sbGJhciB9XG4iLCJleHBvcnQgY2xhc3MgUGlja2VyVmlldyB7XG4gIGNvbnN0cnVjdG9yKHBpY2tlckNvbXBvbmVudCkge1xuICAgIHRoaXMuX3ZtID0gcGlja2VyQ29tcG9uZW50XG4gICAgdGhpcy5fZGF0YSA9IHBpY2tlckNvbXBvbmVudC5kYXRhXG4gICAgdGhpcy5fcGVyTGluZSA9IHBpY2tlckNvbXBvbmVudC5wZXJMaW5lXG5cbiAgICB0aGlzLl9jYXRlZ29yaWVzID0gW11cbiAgICB0aGlzLl9jYXRlZ29yaWVzLnB1c2goLi4udGhpcy5fZGF0YS5jYXRlZ29yaWVzKCkpXG4gICAgdGhpcy5fY2F0ZWdvcmllcyA9IHRoaXMuX2NhdGVnb3JpZXMuZmlsdGVyKChjYXRlZ29yeSkgPT4ge1xuICAgICAgcmV0dXJuIGNhdGVnb3J5LmVtb2ppcy5sZW5ndGggPiAwXG4gICAgfSlcblxuICAgIHRoaXMuX2NhdGVnb3JpZXNbMF0uZmlyc3QgPSB0cnVlXG4gICAgT2JqZWN0LmZyZWV6ZSh0aGlzLl9jYXRlZ29yaWVzKVxuXG4gICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IHRoaXMuX2NhdGVnb3JpZXNbMF1cbiAgICB0aGlzLnNlYXJjaEVtb2ppcyA9IG51bGxcblxuICAgIC8vIFByZXZpZXcgZW1vamksIHNob3duIG9uIG1vdXNlIG92ZXIgb3Igd2hlbiB3ZSBtb3ZlXG4gICAgLy8gd2l0aCBhcnJvdyBrZXlzLlxuICAgIHRoaXMucHJldmlld0Vtb2ppID0gbnVsbFxuICAgIC8vIEluZGV4ZXMgYXJlIHVzZWQgdG8ga2VlcCB0aGUgcG9zaXRpb24gd2hlbiBtb3ZpbmdcbiAgICAvLyB3aXRoIGFycm93czogY3VycmVudCBjYXRlZ29yeSBhbmQgY3VycmVudCBlbW9qaVxuICAgIC8vIGluc2lkZSB0aGUgY2F0ZWdvcnkuXG4gICAgdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCA9IDBcbiAgICB0aGlzLnByZXZpZXdFbW9qaUlkeCA9IC0xXG4gIH1cblxuICBvblNjcm9sbCgpIHtcbiAgICBjb25zdCBzY3JvbGxFbGVtZW50ID0gdGhpcy5fdm0uJHJlZnMuc2Nyb2xsXG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3BcblxuICAgIGxldCBhY3RpdmVDYXRlZ29yeSA9IHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzWzBdXG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGxldCBjYXRlZ29yeSA9IHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzW2ldXG4gICAgICBsZXQgY29tcG9uZW50ID0gdGhpcy5fdm0uZ2V0Q2F0ZWdvcnlDb21wb25lbnQoaSlcbiAgICAgIC8vIFRoZSBgLTUwYCBvZmZzZXQgc3dpdGNoZXMgYWN0aXZlIGNhdGVnb3J5IChzZWxlY3RlZCBpbiB0aGVcbiAgICAgIC8vIGFuY2hvcnMgYmFyKSBhIGJpdCBlYXJpbGVyLCBiZWZvcmUgaXQgYWN0dWFsbHkgcmVhY2hlcyB0aGUgdG9wLlxuICAgICAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQuJGVsLm9mZnNldFRvcCAtIDUwID4gc2Nyb2xsVG9wKSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBhY3RpdmVDYXRlZ29yeSA9IGNhdGVnb3J5XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlQ2F0ZWdvcnkgPSBhY3RpdmVDYXRlZ29yeVxuICB9XG5cbiAgZ2V0IGFsbENhdGVnb3JpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NhdGVnb3JpZXNcbiAgfVxuXG4gIGdldCBmaWx0ZXJlZENhdGVnb3JpZXMoKSB7XG4gICAgaWYgKHRoaXMuc2VhcmNoRW1vamlzKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdzZWFyY2gnLFxuICAgICAgICAgIG5hbWU6ICdTZWFyY2gnLFxuICAgICAgICAgIGVtb2ppczogdGhpcy5zZWFyY2hFbW9qaXMsXG4gICAgICAgIH0sXG4gICAgICBdXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jYXRlZ29yaWVzLmZpbHRlcigoY2F0ZWdvcnkpID0+IHtcbiAgICAgIGxldCBoYXNFbW9qaXMgPSBjYXRlZ29yeS5lbW9qaXMubGVuZ3RoID4gMFxuICAgICAgcmV0dXJuIGhhc0Vtb2ppc1xuICAgIH0pXG4gIH1cblxuICBnZXQgcHJldmlld0Vtb2ppQ2F0ZWdvcnkoKSB7XG4gICAgaWYgKHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggPj0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzW3RoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHhdXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBvbkFuY2hvckNsaWNrKGNhdGVnb3J5KSB7XG4gICAgaWYgKHRoaXMuc2VhcmNoRW1vamlzKSB7XG4gICAgICAvLyBObyBjYXRlZ29yaWVzIGFyZSBzaG93biB3aGVuIHNlYXJjaCBpcyBhY3RpdmUuXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgbGV0IGkgPSB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllcy5pbmRleE9mKGNhdGVnb3J5KVxuICAgIGxldCBjb21wb25lbnQgPSB0aGlzLl92bS5nZXRDYXRlZ29yeUNvbXBvbmVudChpKVxuICAgIGxldCBzY3JvbGxUb0NvbXBvbmVudCA9ICgpID0+IHtcbiAgICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgbGV0IHRvcCA9IGNvbXBvbmVudC4kZWwub2Zmc2V0VG9wXG4gICAgICAgIGlmIChjYXRlZ29yeS5maXJzdCkge1xuICAgICAgICAgIHRvcCA9IDBcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl92bS4kcmVmcy5zY3JvbGwuc2Nyb2xsVG9wID0gdG9wXG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLl92bS5pbmZpbml0ZVNjcm9sbCkge1xuICAgICAgc2Nyb2xsVG9Db21wb25lbnQoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gdGhpcy5maWx0ZXJlZENhdGVnb3JpZXNbaV1cbiAgICB9XG4gIH1cblxuICBvblNlYXJjaCh2YWx1ZSkge1xuICAgIGxldCBlbW9qaXMgPSB0aGlzLl9kYXRhLnNlYXJjaCh2YWx1ZSwgdGhpcy5tYXhTZWFyY2hSZXN1bHRzKVxuICAgIHRoaXMuc2VhcmNoRW1vamlzID0gZW1vamlzXG5cbiAgICB0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4ID0gMFxuICAgIHRoaXMucHJldmlld0Vtb2ppSWR4ID0gMFxuICAgIHRoaXMudXBkYXRlUHJldmlld0Vtb2ppKClcbiAgfVxuXG4gIG9uRW1vamlFbnRlcihlbW9qaSkge1xuICAgIHRoaXMucHJldmlld0Vtb2ppID0gZW1vamlcbiAgICB0aGlzLnByZXZpZXdFbW9qaUlkeCA9IC0xXG4gICAgdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCA9IC0xXG4gIH1cblxuICBvbkVtb2ppTGVhdmUoZW1vamkpIHtcbiAgICB0aGlzLnByZXZpZXdFbW9qaSA9IG51bGxcbiAgfVxuXG4gIG9uQXJyb3dMZWZ0KCkge1xuICAgIC8vIE1vdmluZyBsZWZ0LCBkZWNyZWFzZSBlbW9qaSBpbmRleC5cbiAgICBpZiAodGhpcy5wcmV2aWV3RW1vamlJZHggPiAwKSB7XG4gICAgICB0aGlzLnByZXZpZXdFbW9qaUlkeCAtPSAxXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIGVtb2ppIGluZGV4IGlzIHplcm8sIGdvIHRvIHRoZSBwcmV2aW91cyBjYXRlZ29yeS5cbiAgICAgIHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggLT0gMVxuICAgICAgaWYgKHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggPCAwKSB7XG4gICAgICAgIC8vIElmIHdlIHJlYWNoZWQgZmlyc3QgY2F0ZWdvcnksIGtlZXAgaXQuXG4gICAgICAgIHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggPSAwXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBVcGRhdGUgZW1vamkgaW5kZXggLSB3ZSBtb3ZlZCB0byB0aGUgcHJldmlvdXMgY2F0ZWdvcnksXG4gICAgICAgIC8vIGdldCB0aGUgbGFzdCBlbW9qaSBpbiBpdC5cbiAgICAgICAgdGhpcy5wcmV2aWV3RW1vamlJZHggPVxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzW3RoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHhdLmVtb2ppcy5sZW5ndGggLVxuICAgICAgICAgIDFcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy51cGRhdGVQcmV2aWV3RW1vamkoKVxuICB9XG5cbiAgb25BcnJvd1JpZ2h0KCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMucHJldmlld0Vtb2ppSWR4IDxcbiAgICAgIHRoaXMuZW1vamlzTGVuZ3RoKHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHgpIC0gMVxuICAgICkge1xuICAgICAgLy8gTW92aW5nIHJpZ2h0IHdpdGhpbiBjYXRlZ29yeSwgaW5jcmVhc2UgZW1vamkgaW5kZXguXG4gICAgICB0aGlzLnByZXZpZXdFbW9qaUlkeCArPSAxXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEdvIHRvIHRoZSBuZXh0IGNhdGVnb3J5LlxuICAgICAgdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCArPSAxXG4gICAgICBpZiAodGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCA+PSB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllcy5sZW5ndGgpIHtcbiAgICAgICAgLy8gSWYgd2UgcmVhY2hlZCB0aGUgbGFzdCBjYXRlZ29yeSAtIGtlZXAgaXQuXG4gICAgICAgIHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggPSB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllcy5sZW5ndGggLSAxXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiB3ZSBtb3ZlZCB0byB0aGUgbmV4dCBjYXRlZ29yeSwgdXBkYXRlIGVtb2ppIGluZGV4IHRvIHRoZVxuICAgICAgICAvLyBmaXJzdCBlbW9qaSBpbiB0aGUgbmV3IGNhdGVnb3J5LlxuICAgICAgICB0aGlzLnByZXZpZXdFbW9qaUlkeCA9IDBcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy51cGRhdGVQcmV2aWV3RW1vamkoKVxuICB9XG5cbiAgb25BcnJvd0Rvd24oKSB7XG4gICAgLy8gSWYgd2UgYXJlIG91dCBvZiB0aGUgZW1vamkgY29udHJvbCAoaW5kZXggaXMgLTEpLCBzZWxlY3QgdGhlIGZpcnN0XG4gICAgLy8gZW1vamkgaW4gdGhlIGZpcnN0IGNhdGVnb3J5IGJ5IGNhbGxpbmcgYG9uQXJyb3dSaWdodGAuXG4gICAgaWYgKHRoaXMucHJldmlld0Vtb2ppSWR4ID09IC0xKSB7XG4gICAgICByZXR1cm4gdGhpcy5vbkFycm93UmlnaHQoKVxuICAgIH1cblxuICAgIGNvbnN0IGNhdGVnb3J5TGVuZ3RoID1cbiAgICAgIHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzW3RoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHhdLmVtb2ppcy5sZW5ndGhcblxuICAgIC8vIFdoZW4gbW92aW5nIGRvd24sIHdlIGNhbiBtb3ZlIGBfcGVyTGluZWAgaWNvbnMgcmlnaHQgdG9cbiAgICAvLyBqdW1wIHRvIHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZSBuZXh0IHJvdy5cbiAgICBsZXQgZGlmZiA9IHRoaXMuX3BlckxpbmVcblxuICAgIC8vIFRPRE86IHByZXZpZXdDYXRlZ29yeSBzaG91bGQgbWF0Y2ggYWN0aXZlQ2F0ZWdvcnlcbiAgICAvLyAoc28gaXQgd291bGQgYmUgYm90aCBoaWdobGlnaHRlZCBpbiBVSSBhbmQgdXNlZFxuICAgIC8vIHdoZW4gd2Ugc3RhcnQgbW92aW5nIHdpdGggYXJyb3dzIGFmdGVyIGNsaWNraW5nXG4gICAgLy8gdGhlIGNhdGVnb3J5KS5cblxuICAgIC8vIE5vdGU6IHByb2JhYmx5IHdlIGNhbiBhbHdhc3kgdGFrZSBjdXJyZW50IHJvdyBsZW5ndGhcbiAgICAvLyBhcyBhIGBkaWZmYCAtIGl0IHdpbGwgZml0IGJvdGggY2FzZSBvZiBhbnkgcm93IGFuZFxuICAgIC8vIHNwZWNpYWwgY2FzZSBvZiB0aGUgbGFzdCByb3cuXG4gICAgLy8gTm90ZTogaXQgY2FuIGJlIGFsc28gZWFzaWVyIHRvIHVwZGF0ZSBpbmRleGVzXG4gICAgLy8gZGlyZWN0bHkgaGVyZSBpbnN0ZWFkIG9mIGNhbGxpbmcgb25BcnJvd1JpZ2h0LlxuICAgIC8vIFNhbWUgaXMgdHJ1ZSBmb3IgYG9uQXJyb3dVcGAuXG5cbiAgICAvLyBVbmxlc3MgaWYgd2UgYXJlIG9uIHRoZSBsYXN0IHJvdyBvZiB0aGUgY2F0ZWdvcnkgYW5kXG4gICAgLy8gdGhlcmUgYXJlIGxlc3MgdGhlbiBgX3BlckxpbmVgIGVtb2ppcyBpbiBpdC5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgdXNlIHRoZSBsYXN0IHJvdyBsZW5ndGggYXMgZGlmZlxuICAgIC8vIHNvIHdlIGdvIHN0cmFpZ2h0IGRvd24sIGZvciBleGFtcGxlOlxuICAgIC8vXG4gICAgLy8gICAxIDIgMyA0IDUgNlxuICAgIC8vICAgNyA4IDlcbiAgICAvLyAgIEEgQiBDIEQgRSBGXG4gICAgLy9cbiAgICAvLyBJZiB3ZSBnbyBkb3duIGZyb20gYDhgLCB3ZSBuZWVkIHRvIG1vdmUgMyBlbW9qaXMgcmlnaHRcbiAgICAvLyB0byBsZW5kIGF0IGBCYCAoYW5kIDMgaXMgdGhlIGxlbmd0aCBvZiB0aGUgbGFzdCByb3cgb2ZcbiAgICAvLyB0aGlzIGNhdGVnb3J5KS5cbiAgICAvLyBBbmQgaWYgd2UgdXNlZCA2IGluc3RlYWQgKHJvdyBsZW5ndGgsIGBfcGVyTGluZWApLCB3ZSB3b3VsZFxuICAgIC8vIGxlbmQgdXAgYXQgYEVgLlxuICAgIGlmICh0aGlzLnByZXZpZXdFbW9qaUlkeCArIGRpZmYgPiBjYXRlZ29yeUxlbmd0aCkge1xuICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBsYXN0IHJvdyBsZW5ndGguXG4gICAgICBkaWZmID0gY2F0ZWdvcnlMZW5ndGggJSB0aGlzLl9wZXJMaW5lXG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGlmZjsgaSsrKSB7XG4gICAgICB0aGlzLm9uQXJyb3dSaWdodCgpXG4gICAgfVxuICAgIHRoaXMudXBkYXRlUHJldmlld0Vtb2ppKClcbiAgfVxuXG4gIG9uQXJyb3dVcCgpIHtcbiAgICAvLyBTaW1pbGFyIHRvIGBvbkFycm93RG93bmAsIHRvIG1vdmUgdXAgd2UgY2FuIG1vdmUgbGVmdFxuICAgIC8vIGJ5IGBfcGVyTGluZWAgbnVtYmVyIG9mIGVtb2ppcy5cbiAgICBsZXQgZGlmZiA9IHRoaXMuX3BlckxpbmVcblxuICAgIGlmICh0aGlzLnByZXZpZXdFbW9qaUlkeCAtIGRpZmYgPCAwKSB7XG4gICAgICBpZiAodGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCA+IDApIHtcbiAgICAgICAgLy8gVW5sZXNzIGlmIHdlIGFyZSBvbiB0aGUgZmlyc3QgbGluZSBvZiB0aGUgY2F0ZWdvcnkgYW5kXG4gICAgICAgIC8vIHRoZSBsYXN0IGxpbmUgaW4gdGhlIHByZXZpb3VzIGNhdGVnb3J5IGlzIHNob3J0ZXIgdGhhblxuICAgICAgICAvLyBgX3BlckxpbmVgLlxuICAgICAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgdXNlIHRoZSBsYXN0IHJvdyBsZW5ndGggYXMgZGlmZiwgc29cbiAgICAgICAgLy8gd2UgZ28gc3RyYWlnaHQgdXAsIGZvciBleGFtcGxlOlxuICAgICAgICAvL1xuICAgICAgICAvLyAgIDEgMiAzIDQgNVxuICAgICAgICAvLyAgIDYgNyA4XG4gICAgICAgIC8vICAgOSBBIEIgQyBEXG4gICAgICAgIC8vXG4gICAgICAgIC8vIElmIHdlIGdvIHVwIGZyb20gYEFgLCB3ZSBuZWVkIHRvIG1vdmUgMyBlbW9qaXMgbGVmdCB0byBnZXRcbiAgICAgICAgLy8gdG8gYDdgIChhbmQgMyBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBsYXN0IHJvdyBvZiB0aGUgcHJldmlvdXNcbiAgICAgICAgLy8gY2F0ZWdvcnkpLlxuICAgICAgICBjb25zdCBwcmV2Q2F0ZWdvcnlMYXN0Um93TGVuZ3RoID1cbiAgICAgICAgICB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllc1t0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4IC0gMV0uZW1vamlzXG4gICAgICAgICAgICAubGVuZ3RoICUgdGhpcy5fcGVyTGluZVxuICAgICAgICAvLyBkaWZmID0gdGhpcy5wcmV2aWV3RW1vamlJZHggKyBwcmV2Q2F0ZWdvcnlMYXN0Um93TGVuZ3RoXG4gICAgICAgIGRpZmYgPSBwcmV2Q2F0ZWdvcnlMYXN0Um93TGVuZ3RoXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkaWZmID0gMFxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpZmY7IGkrKykge1xuICAgICAgdGhpcy5vbkFycm93TGVmdCgpXG4gICAgfVxuICAgIHRoaXMudXBkYXRlUHJldmlld0Vtb2ppKClcbiAgfVxuXG4gIHVwZGF0ZVByZXZpZXdFbW9qaSgpIHtcbiAgICB0aGlzLnByZXZpZXdFbW9qaSA9XG4gICAgICB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllc1t0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4XS5lbW9qaXNbXG4gICAgICAgIHRoaXMucHJldmlld0Vtb2ppSWR4XG4gICAgICBdXG5cbiAgICB0aGlzLl92bS4kbmV4dFRpY2soKCkgPT4ge1xuICAgICAgLy8gU2Nyb2xsIHRoZSB2aWV3IGlmIHRoZSBgcHJldmlld0Vtb2ppYCBnb2VzIG91dCBvZiB0aGUgdmlzaWJsZSBhcmVhLlxuICAgICAgY29uc3Qgc2Nyb2xsRWwgPSB0aGlzLl92bS4kcmVmcy5zY3JvbGxcblxuICAgICAgLy8gTm90ZTogaXQgd291bGQgYmUgbW9yZSBWdWUtaXNoIHRvIG1hcmsgYWxsIGVtb2ppcyB3aXRoIGByZWZgc1xuICAgICAgLy8gYW5kIHRoZW4gZG8gc29tZXRoaW5nIHNpbWlsYXIgaGVyZSB0byB3aGF0IHdlIGRvIGluIHRoZVxuICAgICAgLy8gYGdldENhdGVnb3JpZXNgIGluc3RlYWQgb2YgdXNpbmcgYHF1ZXJ5U2VsZWN0b3JgIGRpcmVjdGx5LFxuICAgICAgLy8gYnV0IEkgYW0gbm90IHN1cmUgaWYgaGF2aW5nIG1hbnkgcmVmcyB3b3VsZCBhZmZlY3QgdGhlIHBlcmZvcm1hbmNlXG4gICAgICAvLyAoaXQgbWlnaHQsIHNvIEkgdXNlIGBxdWVyeVNlbGVjdG9yYCBmb3Igbm93KS5cbiAgICAgIGNvbnN0IGVtb2ppRWwgPSBzY3JvbGxFbC5xdWVyeVNlbGVjdG9yKCcuZW1vamktbWFydC1lbW9qaS1zZWxlY3RlZCcpXG5cbiAgICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9IHNjcm9sbEVsLm9mZnNldFRvcCAtIHNjcm9sbEVsLm9mZnNldEhlaWdodFxuICAgICAgaWYgKFxuICAgICAgICBlbW9qaUVsICYmXG4gICAgICAgIGVtb2ppRWwub2Zmc2V0VG9wICsgZW1vamlFbC5vZmZzZXRIZWlnaHQgPlxuICAgICAgICAgIHNjcm9sbEhlaWdodCArIHNjcm9sbEVsLnNjcm9sbFRvcFxuICAgICAgKSB7XG4gICAgICAgIHNjcm9sbEVsLnNjcm9sbFRvcCArPSBlbW9qaUVsLm9mZnNldEhlaWdodFxuICAgICAgfVxuICAgICAgaWYgKGVtb2ppRWwgJiYgZW1vamlFbC5vZmZzZXRUb3AgPCBzY3JvbGxFbC5zY3JvbGxUb3ApIHtcbiAgICAgICAgc2Nyb2xsRWwuc2Nyb2xsVG9wIC09IGVtb2ppRWwub2Zmc2V0SGVpZ2h0XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGVtb2ppc0xlbmd0aChjYXRlZ29yeUlkeCkge1xuICAgIGlmIChjYXRlZ29yeUlkeCA9PSAtMSkge1xuICAgICAgcmV0dXJuIDBcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzW2NhdGVnb3J5SWR4XS5lbW9qaXMubGVuZ3RoXG4gIH1cbn1cbiIsImNvbnN0IEVtb2ppUHJvcHMgPSB7XG4gIG5hdGl2ZToge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHRvb2x0aXA6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBmYWxsYmFjazoge1xuICAgIHR5cGU6IEZ1bmN0aW9uLFxuICB9LFxuICBza2luOiB7XG4gICAgdHlwZTogTnVtYmVyLFxuICAgIGRlZmF1bHQ6IDEsXG4gIH0sXG4gIHNldDoge1xuICAgIHR5cGU6IFN0cmluZyxcbiAgICBkZWZhdWx0OiAnYXBwbGUnLFxuICB9LFxuICBlbW9qaToge1xuICAgIHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIHNpemU6IHtcbiAgICB0eXBlOiBOdW1iZXIsXG4gICAgZGVmYXVsdDogbnVsbCxcbiAgfSxcbiAgdGFnOiB7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIGRlZmF1bHQ6ICdzcGFuJyxcbiAgfSxcbn1cblxuY29uc3QgUGlja2VyUHJvcHMgPSB7XG4gIHBlckxpbmU6IHtcbiAgICB0eXBlOiBOdW1iZXIsXG4gICAgZGVmYXVsdDogOSxcbiAgfSxcbiAgbWF4U2VhcmNoUmVzdWx0czoge1xuICAgIHR5cGU6IE51bWJlcixcbiAgICBkZWZhdWx0OiA3NSxcbiAgfSxcbiAgZW1vamlTaXplOiB7XG4gICAgdHlwZTogTnVtYmVyLFxuICAgIGRlZmF1bHQ6IDI0LFxuICB9LFxuICB0aXRsZToge1xuICAgIHR5cGU6IFN0cmluZyxcbiAgICBkZWZhdWx0OiAnRW1vamkgTWFydOKEoicsXG4gIH0sXG4gIGVtb2ppOiB7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIGRlZmF1bHQ6ICdkZXBhcnRtZW50X3N0b3JlJyxcbiAgfSxcbiAgY29sb3I6IHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgZGVmYXVsdDogJyNhZTY1YzUnLFxuICB9LFxuICBzZXQ6IHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgZGVmYXVsdDogJ2FwcGxlJyxcbiAgfSxcbiAgc2tpbjoge1xuICAgIHR5cGU6IE51bWJlcixcbiAgICBkZWZhdWx0OiBudWxsLFxuICB9LFxuICBkZWZhdWx0U2tpbjoge1xuICAgIHR5cGU6IE51bWJlcixcbiAgICBkZWZhdWx0OiAxLFxuICB9LFxuICBuYXRpdmU6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBlbW9qaVRvb2x0aXA6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBhdXRvRm9jdXM6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBpMThuOiB7XG4gICAgdHlwZTogT2JqZWN0LFxuICAgIGRlZmF1bHQoKSB7XG4gICAgICByZXR1cm4ge31cbiAgICB9LFxuICB9LFxuICBzaG93UHJldmlldzoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgc2hvd1NlYXJjaDoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgc2hvd0NhdGVnb3JpZXM6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIHNob3dTa2luVG9uZXM6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGluZmluaXRlU2Nyb2xsOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBwaWNrZXJTdHlsZXM6IHtcbiAgICB0eXBlOiBPYmplY3QsXG4gICAgZGVmYXVsdCgpIHtcbiAgICAgIHJldHVybiB7fVxuICAgIH0sXG4gIH0sXG59XG5cbmV4cG9ydCB7IEVtb2ppUHJvcHMsIFBpY2tlclByb3BzIH1cbiIsInZhciBOQU1FU1BBQ0UgPSAnZW1vamktbWFydCdcblxuY29uc3QgX0pTT04gPSBKU09OXG5cbnZhciBpc0xvY2FsU3RvcmFnZVN1cHBvcnRlZCA9XG4gIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmICdsb2NhbFN0b3JhZ2UnIGluIHdpbmRvd1xuXG5sZXQgZ2V0dGVyXG5sZXQgc2V0dGVyXG5cbmZ1bmN0aW9uIHNldEhhbmRsZXJzKGhhbmRsZXJzKSB7XG4gIGhhbmRsZXJzIHx8IChoYW5kbGVycyA9IHt9KVxuXG4gIGdldHRlciA9IGhhbmRsZXJzLmdldHRlclxuICBzZXR0ZXIgPSBoYW5kbGVycy5zZXR0ZXJcbn1cblxuZnVuY3Rpb24gc2V0TmFtZXNwYWNlKG5hbWVzcGFjZSkge1xuICBOQU1FU1BBQ0UgPSBuYW1lc3BhY2Vcbn1cblxuZnVuY3Rpb24gdXBkYXRlKHN0YXRlKSB7XG4gIGZvciAobGV0IGtleSBpbiBzdGF0ZSkge1xuICAgIGxldCB2YWx1ZSA9IHN0YXRlW2tleV1cbiAgICBzZXQoa2V5LCB2YWx1ZSlcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXQoa2V5LCB2YWx1ZSkge1xuICBpZiAoc2V0dGVyKSB7XG4gICAgc2V0dGVyKGtleSwgdmFsdWUpXG4gIH0gZWxzZSB7XG4gICAgaWYgKCFpc0xvY2FsU3RvcmFnZVN1cHBvcnRlZCkgcmV0dXJuXG4gICAgdHJ5IHtcbiAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2VbYCR7TkFNRVNQQUNFfS4ke2tleX1gXSA9IF9KU09OLnN0cmluZ2lmeSh2YWx1ZSlcbiAgICB9IGNhdGNoIChlKSB7fVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldChrZXkpIHtcbiAgaWYgKGdldHRlcikge1xuICAgIHJldHVybiBnZXR0ZXIoa2V5KVxuICB9IGVsc2Uge1xuICAgIGlmICghaXNMb2NhbFN0b3JhZ2VTdXBwb3J0ZWQpIHJldHVyblxuICAgIHRyeSB7XG4gICAgICB2YXIgdmFsdWUgPSB3aW5kb3cubG9jYWxTdG9yYWdlW2Ake05BTUVTUEFDRX0uJHtrZXl9YF1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB7IHVwZGF0ZSwgc2V0LCBnZXQsIHNldE5hbWVzcGFjZSwgc2V0SGFuZGxlcnMgfVxuIiwiLy8gaHR0cDovL3BhdWxpcmlzaC5jb20vMjAxMS9yZXF1ZXN0YW5pbWF0aW9uZnJhbWUtZm9yLXNtYXJ0LWFuaW1hdGluZy9cbi8vIGh0dHA6Ly9teS5vcGVyYS5jb20vZW1vbGxlci9ibG9nLzIwMTEvMTIvMjAvcmVxdWVzdGFuaW1hdGlvbmZyYW1lLWZvci1zbWFydC1lci1hbmltYXRpbmdcblxuLy8gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHBvbHlmaWxsIGJ5IEVyaWsgTcO2bGxlci4gZml4ZXMgZnJvbSBQYXVsIElyaXNoIGFuZCBUaW5vIFppamRlbFxuXG4vLyBNSVQgbGljZW5zZVxuXG52YXIgaXNXaW5kb3dBdmFpbGFibGUgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJ1xuXG5pc1dpbmRvd0F2YWlsYWJsZSAmJlxuICAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBsYXN0VGltZSA9IDBcbiAgICB2YXIgdmVuZG9ycyA9IFsnbXMnLCAnbW96JywgJ3dlYmtpdCcsICdvJ11cblxuICAgIGZvciAodmFyIHggPSAwOyB4IDwgdmVuZG9ycy5sZW5ndGggJiYgIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU7ICsreCkge1xuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA9XG4gICAgICAgIHdpbmRvd1t2ZW5kb3JzW3hdICsgJ1JlcXVlc3RBbmltYXRpb25GcmFtZSddXG4gICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUgPVxuICAgICAgICB3aW5kb3dbdmVuZG9yc1t4XSArICdDYW5jZWxBbmltYXRpb25GcmFtZSddIHx8XG4gICAgICAgIHdpbmRvd1t2ZW5kb3JzW3hdICsgJ0NhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZSddXG4gICAgfVxuXG4gICAgaWYgKCF3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKVxuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA9IGZ1bmN0aW9uIChjYWxsYmFjaywgZWxlbWVudCkge1xuICAgICAgICB2YXIgY3VyclRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKVxuICAgICAgICB2YXIgdGltZVRvQ2FsbCA9IE1hdGgubWF4KDAsIDE2IC0gKGN1cnJUaW1lIC0gbGFzdFRpbWUpKVxuICAgICAgICB2YXIgaWQgPSB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY2FsbGJhY2soY3VyclRpbWUgKyB0aW1lVG9DYWxsKVxuICAgICAgICB9LCB0aW1lVG9DYWxsKVxuXG4gICAgICAgIGxhc3RUaW1lID0gY3VyclRpbWUgKyB0aW1lVG9DYWxsXG4gICAgICAgIHJldHVybiBpZFxuICAgICAgfVxuXG4gICAgaWYgKCF3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUpXG4gICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUgPSBmdW5jdGlvbiAoaWQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KGlkKVxuICAgICAgfVxuICB9KSgpXG4iLCJ2YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIHRyeVRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RyeS10by1zdHJpbmcnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBBc3NlcnQ6IElzQ2FsbGFibGUoYXJndW1lbnQpIGlzIHRydWVgXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICBpZiAoaXNDYWxsYWJsZShhcmd1bWVudCkpIHJldHVybiBhcmd1bWVudDtcbiAgdGhyb3cgJFR5cGVFcnJvcih0cnlUb1N0cmluZyhhcmd1bWVudCkgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG59O1xuIiwidmFyIGlzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY29uc3RydWN0b3InKTtcbnZhciB0cnlUb1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90cnktdG8tc3RyaW5nJyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG4vLyBgQXNzZXJ0OiBJc0NvbnN0cnVjdG9yKGFyZ3VtZW50KSBpcyB0cnVlYFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgaWYgKGlzQ29uc3RydWN0b3IoYXJndW1lbnQpKSByZXR1cm4gYXJndW1lbnQ7XG4gIHRocm93ICRUeXBlRXJyb3IodHJ5VG9TdHJpbmcoYXJndW1lbnQpICsgJyBpcyBub3QgYSBjb25zdHJ1Y3RvcicpO1xufTtcbiIsInZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG5cbnZhciAkU3RyaW5nID0gU3RyaW5nO1xudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIGlmICh0eXBlb2YgYXJndW1lbnQgPT0gJ29iamVjdCcgfHwgaXNDYWxsYWJsZShhcmd1bWVudCkpIHJldHVybiBhcmd1bWVudDtcbiAgdGhyb3cgJFR5cGVFcnJvcihcIkNhbid0IHNldCBcIiArICRTdHJpbmcoYXJndW1lbnQpICsgJyBhcyBhIHByb3RvdHlwZScpO1xufTtcbiIsInZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZScpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKS5mO1xuXG52YXIgVU5TQ09QQUJMRVMgPSB3ZWxsS25vd25TeW1ib2woJ3Vuc2NvcGFibGVzJyk7XG52YXIgQXJyYXlQcm90b3R5cGUgPSBBcnJheS5wcm90b3R5cGU7XG5cbi8vIEFycmF5LnByb3RvdHlwZVtAQHVuc2NvcGFibGVzXVxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUtQEB1bnNjb3BhYmxlc1xuaWYgKEFycmF5UHJvdG90eXBlW1VOU0NPUEFCTEVTXSA9PSB1bmRlZmluZWQpIHtcbiAgZGVmaW5lUHJvcGVydHkoQXJyYXlQcm90b3R5cGUsIFVOU0NPUEFCTEVTLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIHZhbHVlOiBjcmVhdGUobnVsbClcbiAgfSk7XG59XG5cbi8vIGFkZCBhIGtleSB0byBBcnJheS5wcm90b3R5cGVbQEB1bnNjb3BhYmxlc11cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICBBcnJheVByb3RvdHlwZVtVTlNDT1BBQkxFU11ba2V5XSA9IHRydWU7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNoYXJBdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctbXVsdGlieXRlJykuY2hhckF0O1xuXG4vLyBgQWR2YW5jZVN0cmluZ0luZGV4YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYWR2YW5jZXN0cmluZ2luZGV4XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChTLCBpbmRleCwgdW5pY29kZSkge1xuICByZXR1cm4gaW5kZXggKyAodW5pY29kZSA/IGNoYXJBdChTLCBpbmRleCkubGVuZ3RoIDogMSk7XG59O1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG52YXIgJFN0cmluZyA9IFN0cmluZztcbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG4vLyBgQXNzZXJ0OiBUeXBlKGFyZ3VtZW50KSBpcyBPYmplY3RgXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICBpZiAoaXNPYmplY3QoYXJndW1lbnQpKSByZXR1cm4gYXJndW1lbnQ7XG4gIHRocm93ICRUeXBlRXJyb3IoJFN0cmluZyhhcmd1bWVudCkgKyAnIGlzIG5vdCBhbiBvYmplY3QnKTtcbn07XG4iLCIvLyBGRjI2LSBidWc6IEFycmF5QnVmZmVycyBhcmUgbm9uLWV4dGVuc2libGUsIGJ1dCBPYmplY3QuaXNFeHRlbnNpYmxlIGRvZXMgbm90IHJlcG9ydCBpdFxudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICBpZiAodHlwZW9mIEFycmF5QnVmZmVyID09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDgpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1pc2V4dGVuc2libGUsIGVzLXgvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHNhZmVcbiAgICBpZiAoT2JqZWN0LmlzRXh0ZW5zaWJsZShidWZmZXIpKSBPYmplY3QuZGVmaW5lUHJvcGVydHkoYnVmZmVyLCAnYScsIHsgdmFsdWU6IDggfSk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRmb3JFYWNoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLmZvckVhY2g7XG52YXIgYXJyYXlNZXRob2RJc1N0cmljdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaXMtc3RyaWN0Jyk7XG5cbnZhciBTVFJJQ1RfTUVUSE9EID0gYXJyYXlNZXRob2RJc1N0cmljdCgnZm9yRWFjaCcpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmZvckVhY2hgIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZm9yZWFjaFxubW9kdWxlLmV4cG9ydHMgPSAhU1RSSUNUX01FVEhPRCA/IGZ1bmN0aW9uIGZvckVhY2goY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgcmV0dXJuICRmb3JFYWNoKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLWFycmF5LXByb3RvdHlwZS1mb3JlYWNoIC0tIHNhZmVcbn0gOiBbXS5mb3JFYWNoO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgY2FsbFdpdGhTYWZlSXRlcmF0aW9uQ2xvc2luZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jYWxsLXdpdGgtc2FmZS1pdGVyYXRpb24tY2xvc2luZycpO1xudmFyIGlzQXJyYXlJdGVyYXRvck1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1hcnJheS1pdGVyYXRvci1tZXRob2QnKTtcbnZhciBpc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNvbnN0cnVjdG9yJyk7XG52YXIgbGVuZ3RoT2ZBcnJheUxpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbGVuZ3RoLW9mLWFycmF5LWxpa2UnKTtcbnZhciBjcmVhdGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHknKTtcbnZhciBnZXRJdGVyYXRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtaXRlcmF0b3InKTtcbnZhciBnZXRJdGVyYXRvck1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtaXRlcmF0b3ItbWV0aG9kJyk7XG5cbnZhciAkQXJyYXkgPSBBcnJheTtcblxuLy8gYEFycmF5LmZyb21gIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5mcm9tXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGZyb20oYXJyYXlMaWtlIC8qICwgbWFwZm4gPSB1bmRlZmluZWQsIHRoaXNBcmcgPSB1bmRlZmluZWQgKi8pIHtcbiAgdmFyIE8gPSB0b09iamVjdChhcnJheUxpa2UpO1xuICB2YXIgSVNfQ09OU1RSVUNUT1IgPSBpc0NvbnN0cnVjdG9yKHRoaXMpO1xuICB2YXIgYXJndW1lbnRzTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgdmFyIG1hcGZuID0gYXJndW1lbnRzTGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDtcbiAgdmFyIG1hcHBpbmcgPSBtYXBmbiAhPT0gdW5kZWZpbmVkO1xuICBpZiAobWFwcGluZykgbWFwZm4gPSBiaW5kKG1hcGZuLCBhcmd1bWVudHNMZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogdW5kZWZpbmVkKTtcbiAgdmFyIGl0ZXJhdG9yTWV0aG9kID0gZ2V0SXRlcmF0b3JNZXRob2QoTyk7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBsZW5ndGgsIHJlc3VsdCwgc3RlcCwgaXRlcmF0b3IsIG5leHQsIHZhbHVlO1xuICAvLyBpZiB0aGUgdGFyZ2V0IGlzIG5vdCBpdGVyYWJsZSBvciBpdCdzIGFuIGFycmF5IHdpdGggdGhlIGRlZmF1bHQgaXRlcmF0b3IgLSB1c2UgYSBzaW1wbGUgY2FzZVxuICBpZiAoaXRlcmF0b3JNZXRob2QgJiYgISh0aGlzID09PSAkQXJyYXkgJiYgaXNBcnJheUl0ZXJhdG9yTWV0aG9kKGl0ZXJhdG9yTWV0aG9kKSkpIHtcbiAgICBpdGVyYXRvciA9IGdldEl0ZXJhdG9yKE8sIGl0ZXJhdG9yTWV0aG9kKTtcbiAgICBuZXh0ID0gaXRlcmF0b3IubmV4dDtcbiAgICByZXN1bHQgPSBJU19DT05TVFJVQ1RPUiA/IG5ldyB0aGlzKCkgOiBbXTtcbiAgICBmb3IgKDshKHN0ZXAgPSBjYWxsKG5leHQsIGl0ZXJhdG9yKSkuZG9uZTsgaW5kZXgrKykge1xuICAgICAgdmFsdWUgPSBtYXBwaW5nID8gY2FsbFdpdGhTYWZlSXRlcmF0aW9uQ2xvc2luZyhpdGVyYXRvciwgbWFwZm4sIFtzdGVwLnZhbHVlLCBpbmRleF0sIHRydWUpIDogc3RlcC52YWx1ZTtcbiAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIHZhbHVlKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbGVuZ3RoID0gbGVuZ3RoT2ZBcnJheUxpa2UoTyk7XG4gICAgcmVzdWx0ID0gSVNfQ09OU1RSVUNUT1IgPyBuZXcgdGhpcyhsZW5ndGgpIDogJEFycmF5KGxlbmd0aCk7XG4gICAgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIHtcbiAgICAgIHZhbHVlID0gbWFwcGluZyA/IG1hcGZuKE9baW5kZXhdLCBpbmRleCkgOiBPW2luZGV4XTtcbiAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmVzdWx0Lmxlbmd0aCA9IGluZGV4O1xuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsInZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tYWJzb2x1dGUtaW5kZXgnKTtcbnZhciBsZW5ndGhPZkFycmF5TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZScpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLnsgaW5kZXhPZiwgaW5jbHVkZXMgfWAgbWV0aG9kcyBpbXBsZW1lbnRhdGlvblxudmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uIChJU19JTkNMVURFUykge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBlbCwgZnJvbUluZGV4KSB7XG4gICAgdmFyIE8gPSB0b0luZGV4ZWRPYmplY3QoJHRoaXMpO1xuICAgIHZhciBsZW5ndGggPSBsZW5ndGhPZkFycmF5TGlrZShPKTtcbiAgICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoZnJvbUluZGV4LCBsZW5ndGgpO1xuICAgIHZhciB2YWx1ZTtcbiAgICAvLyBBcnJheSNpbmNsdWRlcyB1c2VzIFNhbWVWYWx1ZVplcm8gZXF1YWxpdHkgYWxnb3JpdGhtXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICBpZiAoSVNfSU5DTFVERVMgJiYgZWwgIT0gZWwpIHdoaWxlIChsZW5ndGggPiBpbmRleCkge1xuICAgICAgdmFsdWUgPSBPW2luZGV4KytdO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZSkgcmV0dXJuIHRydWU7XG4gICAgLy8gQXJyYXkjaW5kZXhPZiBpZ25vcmVzIGhvbGVzLCBBcnJheSNpbmNsdWRlcyAtIG5vdFxuICAgIH0gZWxzZSBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykge1xuICAgICAgaWYgKChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSAmJiBPW2luZGV4XSA9PT0gZWwpIHJldHVybiBJU19JTkNMVURFUyB8fCBpbmRleCB8fCAwO1xuICAgIH0gcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTtcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5jbHVkZXNcbiAgaW5jbHVkZXM6IGNyZWF0ZU1ldGhvZCh0cnVlKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5pbmRleE9mYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5kZXhvZlxuICBpbmRleE9mOiBjcmVhdGVNZXRob2QoZmFsc2UpXG59O1xuIiwidmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG52YXIgYXJyYXlTcGVjaWVzQ3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY3JlYXRlJyk7XG5cbnZhciBwdXNoID0gdW5jdXJyeVRoaXMoW10ucHVzaCk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUueyBmb3JFYWNoLCBtYXAsIGZpbHRlciwgc29tZSwgZXZlcnksIGZpbmQsIGZpbmRJbmRleCwgZmlsdGVyUmVqZWN0IH1gIG1ldGhvZHMgaW1wbGVtZW50YXRpb25cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoVFlQRSkge1xuICB2YXIgSVNfTUFQID0gVFlQRSA9PSAxO1xuICB2YXIgSVNfRklMVEVSID0gVFlQRSA9PSAyO1xuICB2YXIgSVNfU09NRSA9IFRZUEUgPT0gMztcbiAgdmFyIElTX0VWRVJZID0gVFlQRSA9PSA0O1xuICB2YXIgSVNfRklORF9JTkRFWCA9IFRZUEUgPT0gNjtcbiAgdmFyIElTX0ZJTFRFUl9SRUpFQ1QgPSBUWVBFID09IDc7XG4gIHZhciBOT19IT0xFUyA9IFRZUEUgPT0gNSB8fCBJU19GSU5EX0lOREVYO1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBjYWxsYmFja2ZuLCB0aGF0LCBzcGVjaWZpY0NyZWF0ZSkge1xuICAgIHZhciBPID0gdG9PYmplY3QoJHRoaXMpO1xuICAgIHZhciBzZWxmID0gSW5kZXhlZE9iamVjdChPKTtcbiAgICB2YXIgYm91bmRGdW5jdGlvbiA9IGJpbmQoY2FsbGJhY2tmbiwgdGhhdCk7XG4gICAgdmFyIGxlbmd0aCA9IGxlbmd0aE9mQXJyYXlMaWtlKHNlbGYpO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgdmFyIGNyZWF0ZSA9IHNwZWNpZmljQ3JlYXRlIHx8IGFycmF5U3BlY2llc0NyZWF0ZTtcbiAgICB2YXIgdGFyZ2V0ID0gSVNfTUFQID8gY3JlYXRlKCR0aGlzLCBsZW5ndGgpIDogSVNfRklMVEVSIHx8IElTX0ZJTFRFUl9SRUpFQ1QgPyBjcmVhdGUoJHRoaXMsIDApIDogdW5kZWZpbmVkO1xuICAgIHZhciB2YWx1ZSwgcmVzdWx0O1xuICAgIGZvciAoO2xlbmd0aCA+IGluZGV4OyBpbmRleCsrKSBpZiAoTk9fSE9MRVMgfHwgaW5kZXggaW4gc2VsZikge1xuICAgICAgdmFsdWUgPSBzZWxmW2luZGV4XTtcbiAgICAgIHJlc3VsdCA9IGJvdW5kRnVuY3Rpb24odmFsdWUsIGluZGV4LCBPKTtcbiAgICAgIGlmIChUWVBFKSB7XG4gICAgICAgIGlmIChJU19NQVApIHRhcmdldFtpbmRleF0gPSByZXN1bHQ7IC8vIG1hcFxuICAgICAgICBlbHNlIGlmIChyZXN1bHQpIHN3aXRjaCAoVFlQRSkge1xuICAgICAgICAgIGNhc2UgMzogcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAvLyBzb21lXG4gICAgICAgICAgY2FzZSA1OiByZXR1cm4gdmFsdWU7ICAgICAgICAgICAgIC8vIGZpbmRcbiAgICAgICAgICBjYXNlIDY6IHJldHVybiBpbmRleDsgICAgICAgICAgICAgLy8gZmluZEluZGV4XG4gICAgICAgICAgY2FzZSAyOiBwdXNoKHRhcmdldCwgdmFsdWUpOyAgICAgIC8vIGZpbHRlclxuICAgICAgICB9IGVsc2Ugc3dpdGNoIChUWVBFKSB7XG4gICAgICAgICAgY2FzZSA0OiByZXR1cm4gZmFsc2U7ICAgICAgICAgICAgIC8vIGV2ZXJ5XG4gICAgICAgICAgY2FzZSA3OiBwdXNoKHRhcmdldCwgdmFsdWUpOyAgICAgIC8vIGZpbHRlclJlamVjdFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBJU19GSU5EX0lOREVYID8gLTEgOiBJU19TT01FIHx8IElTX0VWRVJZID8gSVNfRVZFUlkgOiB0YXJnZXQ7XG4gIH07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5mb3JFYWNoYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZm9yZWFjaFxuICBmb3JFYWNoOiBjcmVhdGVNZXRob2QoMCksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUubWFwYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUubWFwXG4gIG1hcDogY3JlYXRlTWV0aG9kKDEpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbHRlcmAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbHRlclxuICBmaWx0ZXI6IGNyZWF0ZU1ldGhvZCgyKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5zb21lYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuc29tZVxuICBzb21lOiBjcmVhdGVNZXRob2QoMyksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZXZlcnlgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5ldmVyeVxuICBldmVyeTogY3JlYXRlTWV0aG9kKDQpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbmRgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maW5kXG4gIGZpbmQ6IGNyZWF0ZU1ldGhvZCg1KSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maW5kSW5kZXhgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maW5kSW5kZXhcbiAgZmluZEluZGV4OiBjcmVhdGVNZXRob2QoNiksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZmlsdGVyUmVqZWN0YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtYXJyYXktZmlsdGVyaW5nXG4gIGZpbHRlclJlamVjdDogY3JlYXRlTWV0aG9kKDcpXG59O1xuIiwidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgVjhfVkVSU0lPTiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtdjgtdmVyc2lvbicpO1xuXG52YXIgU1BFQ0lFUyA9IHdlbGxLbm93blN5bWJvbCgnc3BlY2llcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChNRVRIT0RfTkFNRSkge1xuICAvLyBXZSBjYW4ndCB1c2UgdGhpcyBmZWF0dXJlIGRldGVjdGlvbiBpbiBWOCBzaW5jZSBpdCBjYXVzZXNcbiAgLy8gZGVvcHRpbWl6YXRpb24gYW5kIHNlcmlvdXMgcGVyZm9ybWFuY2UgZGVncmFkYXRpb25cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzY3N1xuICByZXR1cm4gVjhfVkVSU0lPTiA+PSA1MSB8fCAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIHZhciBhcnJheSA9IFtdO1xuICAgIHZhciBjb25zdHJ1Y3RvciA9IGFycmF5LmNvbnN0cnVjdG9yID0ge307XG4gICAgY29uc3RydWN0b3JbU1BFQ0lFU10gPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4geyBmb286IDEgfTtcbiAgICB9O1xuICAgIHJldHVybiBhcnJheVtNRVRIT0RfTkFNRV0oQm9vbGVhbikuZm9vICE9PSAxO1xuICB9KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTUVUSE9EX05BTUUsIGFyZ3VtZW50KSB7XG4gIHZhciBtZXRob2QgPSBbXVtNRVRIT0RfTkFNRV07XG4gIHJldHVybiAhIW1ldGhvZCAmJiBmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY2FsbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICAgIG1ldGhvZC5jYWxsKG51bGwsIGFyZ3VtZW50IHx8IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDE7IH0sIDEpO1xuICB9KTtcbn07XG4iLCJ2YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4Jyk7XG52YXIgbGVuZ3RoT2ZBcnJheUxpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbGVuZ3RoLW9mLWFycmF5LWxpa2UnKTtcbnZhciBjcmVhdGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHknKTtcblxudmFyICRBcnJheSA9IEFycmF5O1xudmFyIG1heCA9IE1hdGgubWF4O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBzdGFydCwgZW5kKSB7XG4gIHZhciBsZW5ndGggPSBsZW5ndGhPZkFycmF5TGlrZShPKTtcbiAgdmFyIGsgPSB0b0Fic29sdXRlSW5kZXgoc3RhcnQsIGxlbmd0aCk7XG4gIHZhciBmaW4gPSB0b0Fic29sdXRlSW5kZXgoZW5kID09PSB1bmRlZmluZWQgPyBsZW5ndGggOiBlbmQsIGxlbmd0aCk7XG4gIHZhciByZXN1bHQgPSAkQXJyYXkobWF4KGZpbiAtIGssIDApKTtcbiAgZm9yICh2YXIgbiA9IDA7IGsgPCBmaW47IGsrKywgbisrKSBjcmVhdGVQcm9wZXJ0eShyZXN1bHQsIG4sIE9ba10pO1xuICByZXN1bHQubGVuZ3RoID0gbjtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCJ2YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gdW5jdXJyeVRoaXMoW10uc2xpY2UpO1xuIiwidmFyIGFycmF5U2xpY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktc2xpY2Utc2ltcGxlJyk7XG5cbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG5cbnZhciBtZXJnZVNvcnQgPSBmdW5jdGlvbiAoYXJyYXksIGNvbXBhcmVmbikge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICB2YXIgbWlkZGxlID0gZmxvb3IobGVuZ3RoIC8gMik7XG4gIHJldHVybiBsZW5ndGggPCA4ID8gaW5zZXJ0aW9uU29ydChhcnJheSwgY29tcGFyZWZuKSA6IG1lcmdlKFxuICAgIGFycmF5LFxuICAgIG1lcmdlU29ydChhcnJheVNsaWNlKGFycmF5LCAwLCBtaWRkbGUpLCBjb21wYXJlZm4pLFxuICAgIG1lcmdlU29ydChhcnJheVNsaWNlKGFycmF5LCBtaWRkbGUpLCBjb21wYXJlZm4pLFxuICAgIGNvbXBhcmVmblxuICApO1xufTtcblxudmFyIGluc2VydGlvblNvcnQgPSBmdW5jdGlvbiAoYXJyYXksIGNvbXBhcmVmbikge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICB2YXIgaSA9IDE7XG4gIHZhciBlbGVtZW50LCBqO1xuXG4gIHdoaWxlIChpIDwgbGVuZ3RoKSB7XG4gICAgaiA9IGk7XG4gICAgZWxlbWVudCA9IGFycmF5W2ldO1xuICAgIHdoaWxlIChqICYmIGNvbXBhcmVmbihhcnJheVtqIC0gMV0sIGVsZW1lbnQpID4gMCkge1xuICAgICAgYXJyYXlbal0gPSBhcnJheVstLWpdO1xuICAgIH1cbiAgICBpZiAoaiAhPT0gaSsrKSBhcnJheVtqXSA9IGVsZW1lbnQ7XG4gIH0gcmV0dXJuIGFycmF5O1xufTtcblxudmFyIG1lcmdlID0gZnVuY3Rpb24gKGFycmF5LCBsZWZ0LCByaWdodCwgY29tcGFyZWZuKSB7XG4gIHZhciBsbGVuZ3RoID0gbGVmdC5sZW5ndGg7XG4gIHZhciBybGVuZ3RoID0gcmlnaHQubGVuZ3RoO1xuICB2YXIgbGluZGV4ID0gMDtcbiAgdmFyIHJpbmRleCA9IDA7XG5cbiAgd2hpbGUgKGxpbmRleCA8IGxsZW5ndGggfHwgcmluZGV4IDwgcmxlbmd0aCkge1xuICAgIGFycmF5W2xpbmRleCArIHJpbmRleF0gPSAobGluZGV4IDwgbGxlbmd0aCAmJiByaW5kZXggPCBybGVuZ3RoKVxuICAgICAgPyBjb21wYXJlZm4obGVmdFtsaW5kZXhdLCByaWdodFtyaW5kZXhdKSA8PSAwID8gbGVmdFtsaW5kZXgrK10gOiByaWdodFtyaW5kZXgrK11cbiAgICAgIDogbGluZGV4IDwgbGxlbmd0aCA/IGxlZnRbbGluZGV4KytdIDogcmlnaHRbcmluZGV4KytdO1xuICB9IHJldHVybiBhcnJheTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gbWVyZ2VTb3J0O1xuIiwidmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtYXJyYXknKTtcbnZhciBpc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNvbnN0cnVjdG9yJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBTUEVDSUVTID0gd2VsbEtub3duU3ltYm9sKCdzcGVjaWVzJyk7XG52YXIgJEFycmF5ID0gQXJyYXk7XG5cbi8vIGEgcGFydCBvZiBgQXJyYXlTcGVjaWVzQ3JlYXRlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXlzcGVjaWVzY3JlYXRlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvcmlnaW5hbEFycmF5KSB7XG4gIHZhciBDO1xuICBpZiAoaXNBcnJheShvcmlnaW5hbEFycmF5KSkge1xuICAgIEMgPSBvcmlnaW5hbEFycmF5LmNvbnN0cnVjdG9yO1xuICAgIC8vIGNyb3NzLXJlYWxtIGZhbGxiYWNrXG4gICAgaWYgKGlzQ29uc3RydWN0b3IoQykgJiYgKEMgPT09ICRBcnJheSB8fCBpc0FycmF5KEMucHJvdG90eXBlKSkpIEMgPSB1bmRlZmluZWQ7XG4gICAgZWxzZSBpZiAoaXNPYmplY3QoQykpIHtcbiAgICAgIEMgPSBDW1NQRUNJRVNdO1xuICAgICAgaWYgKEMgPT09IG51bGwpIEMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9IHJldHVybiBDID09PSB1bmRlZmluZWQgPyAkQXJyYXkgOiBDO1xufTtcbiIsInZhciBhcnJheVNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG5cbi8vIGBBcnJheVNwZWNpZXNDcmVhdGVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheXNwZWNpZXNjcmVhdGVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9yaWdpbmFsQXJyYXksIGxlbmd0aCkge1xuICByZXR1cm4gbmV3IChhcnJheVNwZWNpZXNDb25zdHJ1Y3RvcihvcmlnaW5hbEFycmF5KSkobGVuZ3RoID09PSAwID8gMCA6IGxlbmd0aCk7XG59O1xuIiwidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGl0ZXJhdG9yQ2xvc2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3ItY2xvc2UnKTtcblxuLy8gY2FsbCBzb21ldGhpbmcgb24gaXRlcmF0b3Igc3RlcCB3aXRoIHNhZmUgY2xvc2luZyBvbiBlcnJvclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlcmF0b3IsIGZuLCB2YWx1ZSwgRU5UUklFUykge1xuICB0cnkge1xuICAgIHJldHVybiBFTlRSSUVTID8gZm4oYW5PYmplY3QodmFsdWUpWzBdLCB2YWx1ZVsxXSkgOiBmbih2YWx1ZSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaXRlcmF0b3JDbG9zZShpdGVyYXRvciwgJ3Rocm93JywgZXJyb3IpO1xuICB9XG59O1xuIiwidmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG52YXIgU0FGRV9DTE9TSU5HID0gZmFsc2U7XG5cbnRyeSB7XG4gIHZhciBjYWxsZWQgPSAwO1xuICB2YXIgaXRlcmF0b3JXaXRoUmV0dXJuID0ge1xuICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB7IGRvbmU6ICEhY2FsbGVkKysgfTtcbiAgICB9LFxuICAgICdyZXR1cm4nOiBmdW5jdGlvbiAoKSB7XG4gICAgICBTQUZFX0NMT1NJTkcgPSB0cnVlO1xuICAgIH1cbiAgfTtcbiAgaXRlcmF0b3JXaXRoUmV0dXJuW0lURVJBVE9SXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tYXJyYXktZnJvbSwgbm8tdGhyb3ctbGl0ZXJhbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICBBcnJheS5mcm9tKGl0ZXJhdG9yV2l0aFJldHVybiwgZnVuY3Rpb24gKCkgeyB0aHJvdyAyOyB9KTtcbn0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYywgU0tJUF9DTE9TSU5HKSB7XG4gIGlmICghU0tJUF9DTE9TSU5HICYmICFTQUZFX0NMT1NJTkcpIHJldHVybiBmYWxzZTtcbiAgdmFyIElURVJBVElPTl9TVVBQT1JUID0gZmFsc2U7XG4gIHRyeSB7XG4gICAgdmFyIG9iamVjdCA9IHt9O1xuICAgIG9iamVjdFtJVEVSQVRPUl0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHsgZG9uZTogSVRFUkFUSU9OX1NVUFBPUlQgPSB0cnVlIH07XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfTtcbiAgICBleGVjKG9iamVjdCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgcmV0dXJuIElURVJBVElPTl9TVVBQT1JUO1xufTtcbiIsInZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxudmFyIHRvU3RyaW5nID0gdW5jdXJyeVRoaXMoe30udG9TdHJpbmcpO1xudmFyIHN0cmluZ1NsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gc3RyaW5nU2xpY2UodG9TdHJpbmcoaXQpLCA4LCAtMSk7XG59O1xuIiwidmFyIFRPX1NUUklOR19UQUdfU1VQUE9SVCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmctdGFnLXN1cHBvcnQnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgY2xhc3NvZlJhdyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgVE9fU1RSSU5HX1RBRyA9IHdlbGxLbm93blN5bWJvbCgndG9TdHJpbmdUYWcnKTtcbnZhciAkT2JqZWN0ID0gT2JqZWN0O1xuXG4vLyBFUzMgd3JvbmcgaGVyZVxudmFyIENPUlJFQ1RfQVJHVU1FTlRTID0gY2xhc3NvZlJhdyhmdW5jdGlvbiAoKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSkgPT0gJ0FyZ3VtZW50cyc7XG5cbi8vIGZhbGxiYWNrIGZvciBJRTExIFNjcmlwdCBBY2Nlc3MgRGVuaWVkIGVycm9yXG52YXIgdHJ5R2V0ID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gaXRba2V5XTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxufTtcblxuLy8gZ2V0dGluZyB0YWcgZnJvbSBFUzYrIGBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nYFxubW9kdWxlLmV4cG9ydHMgPSBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPyBjbGFzc29mUmF3IDogZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBPLCB0YWcsIHJlc3VsdDtcbiAgcmV0dXJuIGl0ID09PSB1bmRlZmluZWQgPyAnVW5kZWZpbmVkJyA6IGl0ID09PSBudWxsID8gJ051bGwnXG4gICAgLy8gQEB0b1N0cmluZ1RhZyBjYXNlXG4gICAgOiB0eXBlb2YgKHRhZyA9IHRyeUdldChPID0gJE9iamVjdChpdCksIFRPX1NUUklOR19UQUcpKSA9PSAnc3RyaW5nJyA/IHRhZ1xuICAgIC8vIGJ1aWx0aW5UYWcgY2FzZVxuICAgIDogQ09SUkVDVF9BUkdVTUVOVFMgPyBjbGFzc29mUmF3KE8pXG4gICAgLy8gRVMzIGFyZ3VtZW50cyBmYWxsYmFja1xuICAgIDogKHJlc3VsdCA9IGNsYXNzb2ZSYXcoTykpID09ICdPYmplY3QnICYmIGlzQ2FsbGFibGUoTy5jYWxsZWUpID8gJ0FyZ3VtZW50cycgOiByZXN1bHQ7XG59O1xuIiwidmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgb3duS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vd24ta2V5cycpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSwgZXhjZXB0aW9ucykge1xuICB2YXIga2V5cyA9IG93bktleXMoc291cmNlKTtcbiAgdmFyIGRlZmluZVByb3BlcnR5ID0gZGVmaW5lUHJvcGVydHlNb2R1bGUuZjtcbiAgdmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZS5mO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICBpZiAoIWhhc093bih0YXJnZXQsIGtleSkgJiYgIShleGNlcHRpb25zICYmIGhhc093bihleGNlcHRpb25zLCBrZXkpKSkge1xuICAgICAgZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpO1xuICAgIH1cbiAgfVxufTtcbiIsInZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIE1BVENIID0gd2VsbEtub3duU3ltYm9sKCdtYXRjaCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChNRVRIT0RfTkFNRSkge1xuICB2YXIgcmVnZXhwID0gLy4vO1xuICB0cnkge1xuICAgICcvLi8nW01FVEhPRF9OQU1FXShyZWdleHApO1xuICB9IGNhdGNoIChlcnJvcjEpIHtcbiAgICB0cnkge1xuICAgICAgcmVnZXhwW01BVENIXSA9IGZhbHNlO1xuICAgICAgcmV0dXJuICcvLi8nW01FVEhPRF9OQU1FXShyZWdleHApO1xuICAgIH0gY2F0Y2ggKGVycm9yMikgeyAvKiBlbXB0eSAqLyB9XG4gIH0gcmV0dXJuIGZhbHNlO1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIEYoKSB7IC8qIGVtcHR5ICovIH1cbiAgRi5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBudWxsO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1vYmplY3QtZ2V0cHJvdG90eXBlb2YgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXcgRigpKSAhPT0gRi5wcm90b3R5cGU7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMtY29yZScpLkl0ZXJhdG9yUHJvdG90eXBlO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzJyk7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoSXRlcmF0b3JDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCwgRU5VTUVSQUJMRV9ORVhUKSB7XG4gIHZhciBUT19TVFJJTkdfVEFHID0gTkFNRSArICcgSXRlcmF0b3InO1xuICBJdGVyYXRvckNvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSwgeyBuZXh0OiBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoKyFFTlVNRVJBQkxFX05FWFQsIG5leHQpIH0pO1xuICBzZXRUb1N0cmluZ1RhZyhJdGVyYXRvckNvbnN0cnVjdG9yLCBUT19TVFJJTkdfVEFHLCBmYWxzZSwgdHJ1ZSk7XG4gIEl0ZXJhdG9yc1tUT19TVFJJTkdfVEFHXSA9IHJldHVyblRoaXM7XG4gIHJldHVybiBJdGVyYXRvckNvbnN0cnVjdG9yO1xufTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBERVNDUklQVE9SUyA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5TW9kdWxlLmYob2JqZWN0LCBrZXksIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigxLCB2YWx1ZSkpO1xufSA6IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgcmV0dXJuIG9iamVjdDtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvUHJvcGVydHlLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJvcGVydHkta2V5Jyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgdmFyIHByb3BlcnR5S2V5ID0gdG9Qcm9wZXJ0eUtleShrZXkpO1xuICBpZiAocHJvcGVydHlLZXkgaW4gb2JqZWN0KSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKG9iamVjdCwgcHJvcGVydHlLZXksIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigwLCB2YWx1ZSkpO1xuICBlbHNlIG9iamVjdFtwcm9wZXJ0eUtleV0gPSB2YWx1ZTtcbn07XG4iLCJ2YXIgbWFrZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbWFrZS1idWlsdC1pbicpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCBkZXNjcmlwdG9yKSB7XG4gIGlmIChkZXNjcmlwdG9yLmdldCkgbWFrZUJ1aWx0SW4oZGVzY3JpcHRvci5nZXQsIG5hbWUsIHsgZ2V0dGVyOiB0cnVlIH0pO1xuICBpZiAoZGVzY3JpcHRvci5zZXQpIG1ha2VCdWlsdEluKGRlc2NyaXB0b3Iuc2V0LCBuYW1lLCB7IHNldHRlcjogdHJ1ZSB9KTtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5LmYodGFyZ2V0LCBuYW1lLCBkZXNjcmlwdG9yKTtcbn07XG4iLCJ2YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBtYWtlQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9tYWtlLWJ1aWx0LWluJyk7XG52YXIgZGVmaW5lR2xvYmFsUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWdsb2JhbC1wcm9wZXJ0eScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBrZXksIHZhbHVlLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9O1xuICB2YXIgc2ltcGxlID0gb3B0aW9ucy5lbnVtZXJhYmxlO1xuICB2YXIgbmFtZSA9IG9wdGlvbnMubmFtZSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5uYW1lIDoga2V5O1xuICBpZiAoaXNDYWxsYWJsZSh2YWx1ZSkpIG1ha2VCdWlsdEluKHZhbHVlLCBuYW1lLCBvcHRpb25zKTtcbiAgaWYgKG9wdGlvbnMuZ2xvYmFsKSB7XG4gICAgaWYgKHNpbXBsZSkgT1trZXldID0gdmFsdWU7XG4gICAgZWxzZSBkZWZpbmVHbG9iYWxQcm9wZXJ0eShrZXksIHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFvcHRpb25zLnVuc2FmZSkgZGVsZXRlIE9ba2V5XTtcbiAgICAgIGVsc2UgaWYgKE9ba2V5XSkgc2ltcGxlID0gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gICAgaWYgKHNpbXBsZSkgT1trZXldID0gdmFsdWU7XG4gICAgZWxzZSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKE8sIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6ICFvcHRpb25zLm5vbkNvbmZpZ3VyYWJsZSxcbiAgICAgIHdyaXRhYmxlOiAhb3B0aW9ucy5ub25Xcml0YWJsZVxuICAgIH0pO1xuICB9IHJldHVybiBPO1xufTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSBzYWZlXG52YXIgZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgdHJ5IHtcbiAgICBkZWZpbmVQcm9wZXJ0eShnbG9iYWwsIGtleSwgeyB2YWx1ZTogdmFsdWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgZ2xvYmFsW2tleV0gPSB2YWx1ZTtcbiAgfSByZXR1cm4gdmFsdWU7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgRnVuY3Rpb25OYW1lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLW5hbWUnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgY3JlYXRlSXRlcmF0b3JDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaXRlcmF0b3ItY29uc3RydWN0b3InKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZicpO1xudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1zZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgZGVmaW5lQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4nKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzJyk7XG52YXIgSXRlcmF0b3JzQ29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMtY29yZScpO1xuXG52YXIgUFJPUEVSX0ZVTkNUSU9OX05BTUUgPSBGdW5jdGlvbk5hbWUuUFJPUEVSO1xudmFyIENPTkZJR1VSQUJMRV9GVU5DVElPTl9OQU1FID0gRnVuY3Rpb25OYW1lLkNPTkZJR1VSQUJMRTtcbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IEl0ZXJhdG9yc0NvcmUuSXRlcmF0b3JQcm90b3R5cGU7XG52YXIgQlVHR1lfU0FGQVJJX0lURVJBVE9SUyA9IEl0ZXJhdG9yc0NvcmUuQlVHR1lfU0FGQVJJX0lURVJBVE9SUztcbnZhciBJVEVSQVRPUiA9IHdlbGxLbm93blN5bWJvbCgnaXRlcmF0b3InKTtcbnZhciBLRVlTID0gJ2tleXMnO1xudmFyIFZBTFVFUyA9ICd2YWx1ZXMnO1xudmFyIEVOVFJJRVMgPSAnZW50cmllcyc7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoSXRlcmFibGUsIE5BTUUsIEl0ZXJhdG9yQ29uc3RydWN0b3IsIG5leHQsIERFRkFVTFQsIElTX1NFVCwgRk9SQ0VEKSB7XG4gIGNyZWF0ZUl0ZXJhdG9yQ29uc3RydWN0b3IoSXRlcmF0b3JDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCk7XG5cbiAgdmFyIGdldEl0ZXJhdGlvbk1ldGhvZCA9IGZ1bmN0aW9uIChLSU5EKSB7XG4gICAgaWYgKEtJTkQgPT09IERFRkFVTFQgJiYgZGVmYXVsdEl0ZXJhdG9yKSByZXR1cm4gZGVmYXVsdEl0ZXJhdG9yO1xuICAgIGlmICghQlVHR1lfU0FGQVJJX0lURVJBVE9SUyAmJiBLSU5EIGluIEl0ZXJhYmxlUHJvdG90eXBlKSByZXR1cm4gSXRlcmFibGVQcm90b3R5cGVbS0lORF07XG4gICAgc3dpdGNoIChLSU5EKSB7XG4gICAgICBjYXNlIEtFWVM6IHJldHVybiBmdW5jdGlvbiBrZXlzKCkgeyByZXR1cm4gbmV3IEl0ZXJhdG9yQ29uc3RydWN0b3IodGhpcywgS0lORCk7IH07XG4gICAgICBjYXNlIFZBTFVFUzogcmV0dXJuIGZ1bmN0aW9uIHZhbHVlcygpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMsIEtJTkQpOyB9O1xuICAgICAgY2FzZSBFTlRSSUVTOiByZXR1cm4gZnVuY3Rpb24gZW50cmllcygpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMsIEtJTkQpOyB9O1xuICAgIH0gcmV0dXJuIGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMpOyB9O1xuICB9O1xuXG4gIHZhciBUT19TVFJJTkdfVEFHID0gTkFNRSArICcgSXRlcmF0b3InO1xuICB2YXIgSU5DT1JSRUNUX1ZBTFVFU19OQU1FID0gZmFsc2U7XG4gIHZhciBJdGVyYWJsZVByb3RvdHlwZSA9IEl0ZXJhYmxlLnByb3RvdHlwZTtcbiAgdmFyIG5hdGl2ZUl0ZXJhdG9yID0gSXRlcmFibGVQcm90b3R5cGVbSVRFUkFUT1JdXG4gICAgfHwgSXRlcmFibGVQcm90b3R5cGVbJ0BAaXRlcmF0b3InXVxuICAgIHx8IERFRkFVTFQgJiYgSXRlcmFibGVQcm90b3R5cGVbREVGQVVMVF07XG4gIHZhciBkZWZhdWx0SXRlcmF0b3IgPSAhQlVHR1lfU0FGQVJJX0lURVJBVE9SUyAmJiBuYXRpdmVJdGVyYXRvciB8fCBnZXRJdGVyYXRpb25NZXRob2QoREVGQVVMVCk7XG4gIHZhciBhbnlOYXRpdmVJdGVyYXRvciA9IE5BTUUgPT0gJ0FycmF5JyA/IEl0ZXJhYmxlUHJvdG90eXBlLmVudHJpZXMgfHwgbmF0aXZlSXRlcmF0b3IgOiBuYXRpdmVJdGVyYXRvcjtcbiAgdmFyIEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSwgbWV0aG9kcywgS0VZO1xuXG4gIC8vIGZpeCBuYXRpdmVcbiAgaWYgKGFueU5hdGl2ZUl0ZXJhdG9yKSB7XG4gICAgQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG90eXBlT2YoYW55TmF0aXZlSXRlcmF0b3IuY2FsbChuZXcgSXRlcmFibGUoKSkpO1xuICAgIGlmIChDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUgJiYgQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlLm5leHQpIHtcbiAgICAgIGlmICghSVNfUFVSRSAmJiBnZXRQcm90b3R5cGVPZihDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUpICE9PSBJdGVyYXRvclByb3RvdHlwZSkge1xuICAgICAgICBpZiAoc2V0UHJvdG90eXBlT2YpIHtcbiAgICAgICAgICBzZXRQcm90b3R5cGVPZihDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUsIEl0ZXJhdG9yUHJvdG90eXBlKTtcbiAgICAgICAgfSBlbHNlIGlmICghaXNDYWxsYWJsZShDdXJyZW50SXRlcmF0b3JQcm90b3R5cGVbSVRFUkFUT1JdKSkge1xuICAgICAgICAgIGRlZmluZUJ1aWx0SW4oQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlLCBJVEVSQVRPUiwgcmV0dXJuVGhpcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIFNldCBAQHRvU3RyaW5nVGFnIHRvIG5hdGl2ZSBpdGVyYXRvcnNcbiAgICAgIHNldFRvU3RyaW5nVGFnKEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSwgVE9fU1RSSU5HX1RBRywgdHJ1ZSwgdHJ1ZSk7XG4gICAgICBpZiAoSVNfUFVSRSkgSXRlcmF0b3JzW1RPX1NUUklOR19UQUddID0gcmV0dXJuVGhpcztcbiAgICB9XG4gIH1cblxuICAvLyBmaXggQXJyYXkucHJvdG90eXBlLnsgdmFsdWVzLCBAQGl0ZXJhdG9yIH0ubmFtZSBpbiBWOCAvIEZGXG4gIGlmIChQUk9QRVJfRlVOQ1RJT05fTkFNRSAmJiBERUZBVUxUID09IFZBTFVFUyAmJiBuYXRpdmVJdGVyYXRvciAmJiBuYXRpdmVJdGVyYXRvci5uYW1lICE9PSBWQUxVRVMpIHtcbiAgICBpZiAoIUlTX1BVUkUgJiYgQ09ORklHVVJBQkxFX0ZVTkNUSU9OX05BTUUpIHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShJdGVyYWJsZVByb3RvdHlwZSwgJ25hbWUnLCBWQUxVRVMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBJTkNPUlJFQ1RfVkFMVUVTX05BTUUgPSB0cnVlO1xuICAgICAgZGVmYXVsdEl0ZXJhdG9yID0gZnVuY3Rpb24gdmFsdWVzKCkgeyByZXR1cm4gY2FsbChuYXRpdmVJdGVyYXRvciwgdGhpcyk7IH07XG4gICAgfVxuICB9XG5cbiAgLy8gZXhwb3J0IGFkZGl0aW9uYWwgbWV0aG9kc1xuICBpZiAoREVGQVVMVCkge1xuICAgIG1ldGhvZHMgPSB7XG4gICAgICB2YWx1ZXM6IGdldEl0ZXJhdGlvbk1ldGhvZChWQUxVRVMpLFxuICAgICAga2V5czogSVNfU0VUID8gZGVmYXVsdEl0ZXJhdG9yIDogZ2V0SXRlcmF0aW9uTWV0aG9kKEtFWVMpLFxuICAgICAgZW50cmllczogZ2V0SXRlcmF0aW9uTWV0aG9kKEVOVFJJRVMpXG4gICAgfTtcbiAgICBpZiAoRk9SQ0VEKSBmb3IgKEtFWSBpbiBtZXRob2RzKSB7XG4gICAgICBpZiAoQlVHR1lfU0FGQVJJX0lURVJBVE9SUyB8fCBJTkNPUlJFQ1RfVkFMVUVTX05BTUUgfHwgIShLRVkgaW4gSXRlcmFibGVQcm90b3R5cGUpKSB7XG4gICAgICAgIGRlZmluZUJ1aWx0SW4oSXRlcmFibGVQcm90b3R5cGUsIEtFWSwgbWV0aG9kc1tLRVldKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgJCh7IHRhcmdldDogTkFNRSwgcHJvdG86IHRydWUsIGZvcmNlZDogQlVHR1lfU0FGQVJJX0lURVJBVE9SUyB8fCBJTkNPUlJFQ1RfVkFMVUVTX05BTUUgfSwgbWV0aG9kcyk7XG4gIH1cblxuICAvLyBkZWZpbmUgaXRlcmF0b3JcbiAgaWYgKCghSVNfUFVSRSB8fCBGT1JDRUQpICYmIEl0ZXJhYmxlUHJvdG90eXBlW0lURVJBVE9SXSAhPT0gZGVmYXVsdEl0ZXJhdG9yKSB7XG4gICAgZGVmaW5lQnVpbHRJbihJdGVyYWJsZVByb3RvdHlwZSwgSVRFUkFUT1IsIGRlZmF1bHRJdGVyYXRvciwgeyBuYW1lOiBERUZBVUxUIH0pO1xuICB9XG4gIEl0ZXJhdG9yc1tOQU1FXSA9IGRlZmF1bHRJdGVyYXRvcjtcblxuICByZXR1cm4gbWV0aG9kcztcbn07XG4iLCJ2YXIgcGF0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wYXRoJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciB3cmFwcGVkV2VsbEtub3duU3ltYm9sTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sLXdyYXBwZWQnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5JykuZjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTkFNRSkge1xuICB2YXIgU3ltYm9sID0gcGF0aC5TeW1ib2wgfHwgKHBhdGguU3ltYm9sID0ge30pO1xuICBpZiAoIWhhc093bihTeW1ib2wsIE5BTUUpKSBkZWZpbmVQcm9wZXJ0eShTeW1ib2wsIE5BTUUsIHtcbiAgICB2YWx1ZTogd3JhcHBlZFdlbGxLbm93blN5bWJvbE1vZHVsZS5mKE5BTUUpXG4gIH0pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0cnlUb1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90cnktdG8tc3RyaW5nJyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBQKSB7XG4gIGlmICghZGVsZXRlIE9bUF0pIHRocm93ICRUeXBlRXJyb3IoJ0Nhbm5vdCBkZWxldGUgcHJvcGVydHkgJyArIHRyeVRvU3RyaW5nKFApICsgJyBvZiAnICsgdHJ5VG9TdHJpbmcoTykpO1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBEZXRlY3QgSUU4J3MgaW5jb21wbGV0ZSBkZWZpbmVQcm9wZXJ0eSBpbXBsZW1lbnRhdGlvblxubW9kdWxlLmV4cG9ydHMgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgMSwgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSlbMV0gIT0gNztcbn0pO1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxudmFyIGRvY3VtZW50ID0gZ2xvYmFsLmRvY3VtZW50O1xuLy8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG52YXIgRVhJU1RTID0gaXNPYmplY3QoZG9jdW1lbnQpICYmIGlzT2JqZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gRVhJU1RTID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdCkgOiB7fTtcbn07XG4iLCJ2YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gMHgxRkZGRkZGRkZGRkZGRjsgLy8gMiAqKiA1MyAtIDEgPT0gOTAwNzE5OTI1NDc0MDk5MVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgPiBNQVhfU0FGRV9JTlRFR0VSKSB0aHJvdyAkVHlwZUVycm9yKCdNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWQnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsIi8vIGl0ZXJhYmxlIERPTSBjb2xsZWN0aW9uc1xuLy8gZmxhZyAtIGBpdGVyYWJsZWAgaW50ZXJmYWNlIC0gJ2VudHJpZXMnLCAna2V5cycsICd2YWx1ZXMnLCAnZm9yRWFjaCcgbWV0aG9kc1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIENTU1J1bGVMaXN0OiAwLFxuICBDU1NTdHlsZURlY2xhcmF0aW9uOiAwLFxuICBDU1NWYWx1ZUxpc3Q6IDAsXG4gIENsaWVudFJlY3RMaXN0OiAwLFxuICBET01SZWN0TGlzdDogMCxcbiAgRE9NU3RyaW5nTGlzdDogMCxcbiAgRE9NVG9rZW5MaXN0OiAxLFxuICBEYXRhVHJhbnNmZXJJdGVtTGlzdDogMCxcbiAgRmlsZUxpc3Q6IDAsXG4gIEhUTUxBbGxDb2xsZWN0aW9uOiAwLFxuICBIVE1MQ29sbGVjdGlvbjogMCxcbiAgSFRNTEZvcm1FbGVtZW50OiAwLFxuICBIVE1MU2VsZWN0RWxlbWVudDogMCxcbiAgTWVkaWFMaXN0OiAwLFxuICBNaW1lVHlwZUFycmF5OiAwLFxuICBOYW1lZE5vZGVNYXA6IDAsXG4gIE5vZGVMaXN0OiAxLFxuICBQYWludFJlcXVlc3RMaXN0OiAwLFxuICBQbHVnaW46IDAsXG4gIFBsdWdpbkFycmF5OiAwLFxuICBTVkdMZW5ndGhMaXN0OiAwLFxuICBTVkdOdW1iZXJMaXN0OiAwLFxuICBTVkdQYXRoU2VnTGlzdDogMCxcbiAgU1ZHUG9pbnRMaXN0OiAwLFxuICBTVkdTdHJpbmdMaXN0OiAwLFxuICBTVkdUcmFuc2Zvcm1MaXN0OiAwLFxuICBTb3VyY2VCdWZmZXJMaXN0OiAwLFxuICBTdHlsZVNoZWV0TGlzdDogMCxcbiAgVGV4dFRyYWNrQ3VlTGlzdDogMCxcbiAgVGV4dFRyYWNrTGlzdDogMCxcbiAgVG91Y2hMaXN0OiAwXG59O1xuIiwiLy8gaW4gb2xkIFdlYktpdCB2ZXJzaW9ucywgYGVsZW1lbnQuY2xhc3NMaXN0YCBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgZ2xvYmFsIGBET01Ub2tlbkxpc3RgXG52YXIgZG9jdW1lbnRDcmVhdGVFbGVtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50Jyk7XG5cbnZhciBjbGFzc0xpc3QgPSBkb2N1bWVudENyZWF0ZUVsZW1lbnQoJ3NwYW4nKS5jbGFzc0xpc3Q7XG52YXIgRE9NVG9rZW5MaXN0UHJvdG90eXBlID0gY2xhc3NMaXN0ICYmIGNsYXNzTGlzdC5jb25zdHJ1Y3RvciAmJiBjbGFzc0xpc3QuY29uc3RydWN0b3IucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IERPTVRva2VuTGlzdFByb3RvdHlwZSA9PT0gT2JqZWN0LnByb3RvdHlwZSA/IHVuZGVmaW5lZCA6IERPTVRva2VuTGlzdFByb3RvdHlwZTtcbiIsInZhciB1c2VyQWdlbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLXVzZXItYWdlbnQnKTtcblxudmFyIGZpcmVmb3ggPSB1c2VyQWdlbnQubWF0Y2goL2ZpcmVmb3hcXC8oXFxkKykvaSk7XG5cbm1vZHVsZS5leHBvcnRzID0gISFmaXJlZm94ICYmICtmaXJlZm94WzFdO1xuIiwidmFyIFVBID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VuZ2luZS11c2VyLWFnZW50Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gL01TSUV8VHJpZGVudC8udGVzdChVQSk7XG4iLCJ2YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluKCduYXZpZ2F0b3InLCAndXNlckFnZW50JykgfHwgJyc7XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHVzZXJBZ2VudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtdXNlci1hZ2VudCcpO1xuXG52YXIgcHJvY2VzcyA9IGdsb2JhbC5wcm9jZXNzO1xudmFyIERlbm8gPSBnbG9iYWwuRGVubztcbnZhciB2ZXJzaW9ucyA9IHByb2Nlc3MgJiYgcHJvY2Vzcy52ZXJzaW9ucyB8fCBEZW5vICYmIERlbm8udmVyc2lvbjtcbnZhciB2OCA9IHZlcnNpb25zICYmIHZlcnNpb25zLnY4O1xudmFyIG1hdGNoLCB2ZXJzaW9uO1xuXG5pZiAodjgpIHtcbiAgbWF0Y2ggPSB2OC5zcGxpdCgnLicpO1xuICAvLyBpbiBvbGQgQ2hyb21lLCB2ZXJzaW9ucyBvZiBWOCBpc24ndCBWOCA9IENocm9tZSAvIDEwXG4gIC8vIGJ1dCB0aGVpciBjb3JyZWN0IHZlcnNpb25zIGFyZSBub3QgaW50ZXJlc3RpbmcgZm9yIHVzXG4gIHZlcnNpb24gPSBtYXRjaFswXSA+IDAgJiYgbWF0Y2hbMF0gPCA0ID8gMSA6ICsobWF0Y2hbMF0gKyBtYXRjaFsxXSk7XG59XG5cbi8vIEJyb3dzZXJGUyBOb2RlSlMgYHByb2Nlc3NgIHBvbHlmaWxsIGluY29ycmVjdGx5IHNldCBgLnY4YCB0byBgMC4wYFxuLy8gc28gY2hlY2sgYHVzZXJBZ2VudGAgZXZlbiBpZiBgLnY4YCBleGlzdHMsIGJ1dCAwXG5pZiAoIXZlcnNpb24gJiYgdXNlckFnZW50KSB7XG4gIG1hdGNoID0gdXNlckFnZW50Lm1hdGNoKC9FZGdlXFwvKFxcZCspLyk7XG4gIGlmICghbWF0Y2ggfHwgbWF0Y2hbMV0gPj0gNzQpIHtcbiAgICBtYXRjaCA9IHVzZXJBZ2VudC5tYXRjaCgvQ2hyb21lXFwvKFxcZCspLyk7XG4gICAgaWYgKG1hdGNoKSB2ZXJzaW9uID0gK21hdGNoWzFdO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmVyc2lvbjtcbiIsInZhciB1c2VyQWdlbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLXVzZXItYWdlbnQnKTtcblxudmFyIHdlYmtpdCA9IHVzZXJBZ2VudC5tYXRjaCgvQXBwbGVXZWJLaXRcXC8oXFxkKylcXC4vKTtcblxubW9kdWxlLmV4cG9ydHMgPSAhIXdlYmtpdCAmJiArd2Via2l0WzFdO1xuIiwiLy8gSUU4LSBkb24ndCBlbnVtIGJ1ZyBrZXlzXG5tb2R1bGUuZXhwb3J0cyA9IFtcbiAgJ2NvbnN0cnVjdG9yJyxcbiAgJ2hhc093blByb3BlcnR5JyxcbiAgJ2lzUHJvdG90eXBlT2YnLFxuICAncHJvcGVydHlJc0VudW1lcmFibGUnLFxuICAndG9Mb2NhbGVTdHJpbmcnLFxuICAndG9TdHJpbmcnLFxuICAndmFsdWVPZidcbl07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJykuZjtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgZGVmaW5lQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4nKTtcbnZhciBkZWZpbmVHbG9iYWxQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtZ2xvYmFsLXByb3BlcnR5Jyk7XG52YXIgY29weUNvbnN0cnVjdG9yUHJvcGVydGllcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb3B5LWNvbnN0cnVjdG9yLXByb3BlcnRpZXMnKTtcbnZhciBpc0ZvcmNlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1mb3JjZWQnKTtcblxuLypcbiAgb3B0aW9ucy50YXJnZXQgICAgICAgICAtIG5hbWUgb2YgdGhlIHRhcmdldCBvYmplY3RcbiAgb3B0aW9ucy5nbG9iYWwgICAgICAgICAtIHRhcmdldCBpcyB0aGUgZ2xvYmFsIG9iamVjdFxuICBvcHRpb25zLnN0YXQgICAgICAgICAgIC0gZXhwb3J0IGFzIHN0YXRpYyBtZXRob2RzIG9mIHRhcmdldFxuICBvcHRpb25zLnByb3RvICAgICAgICAgIC0gZXhwb3J0IGFzIHByb3RvdHlwZSBtZXRob2RzIG9mIHRhcmdldFxuICBvcHRpb25zLnJlYWwgICAgICAgICAgIC0gcmVhbCBwcm90b3R5cGUgbWV0aG9kIGZvciB0aGUgYHB1cmVgIHZlcnNpb25cbiAgb3B0aW9ucy5mb3JjZWQgICAgICAgICAtIGV4cG9ydCBldmVuIGlmIHRoZSBuYXRpdmUgZmVhdHVyZSBpcyBhdmFpbGFibGVcbiAgb3B0aW9ucy5iaW5kICAgICAgICAgICAtIGJpbmQgbWV0aG9kcyB0byB0aGUgdGFyZ2V0LCByZXF1aXJlZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMud3JhcCAgICAgICAgICAgLSB3cmFwIGNvbnN0cnVjdG9ycyB0byBwcmV2ZW50aW5nIGdsb2JhbCBwb2xsdXRpb24sIHJlcXVpcmVkIGZvciB0aGUgYHB1cmVgIHZlcnNpb25cbiAgb3B0aW9ucy51bnNhZmUgICAgICAgICAtIHVzZSB0aGUgc2ltcGxlIGFzc2lnbm1lbnQgb2YgcHJvcGVydHkgaW5zdGVhZCBvZiBkZWxldGUgKyBkZWZpbmVQcm9wZXJ0eVxuICBvcHRpb25zLnNoYW0gICAgICAgICAgIC0gYWRkIGEgZmxhZyB0byBub3QgY29tcGxldGVseSBmdWxsIHBvbHlmaWxsc1xuICBvcHRpb25zLmVudW1lcmFibGUgICAgIC0gZXhwb3J0IGFzIGVudW1lcmFibGUgcHJvcGVydHlcbiAgb3B0aW9ucy5kb250Q2FsbEdldFNldCAtIHByZXZlbnQgY2FsbGluZyBhIGdldHRlciBvbiB0YXJnZXRcbiAgb3B0aW9ucy5uYW1lICAgICAgICAgICAtIHRoZSAubmFtZSBvZiB0aGUgZnVuY3Rpb24gaWYgaXQgZG9lcyBub3QgbWF0Y2ggdGhlIGtleVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9wdGlvbnMsIHNvdXJjZSkge1xuICB2YXIgVEFSR0VUID0gb3B0aW9ucy50YXJnZXQ7XG4gIHZhciBHTE9CQUwgPSBvcHRpb25zLmdsb2JhbDtcbiAgdmFyIFNUQVRJQyA9IG9wdGlvbnMuc3RhdDtcbiAgdmFyIEZPUkNFRCwgdGFyZ2V0LCBrZXksIHRhcmdldFByb3BlcnR5LCBzb3VyY2VQcm9wZXJ0eSwgZGVzY3JpcHRvcjtcbiAgaWYgKEdMT0JBTCkge1xuICAgIHRhcmdldCA9IGdsb2JhbDtcbiAgfSBlbHNlIGlmIChTVEFUSUMpIHtcbiAgICB0YXJnZXQgPSBnbG9iYWxbVEFSR0VUXSB8fCBkZWZpbmVHbG9iYWxQcm9wZXJ0eShUQVJHRVQsIHt9KTtcbiAgfSBlbHNlIHtcbiAgICB0YXJnZXQgPSAoZ2xvYmFsW1RBUkdFVF0gfHwge30pLnByb3RvdHlwZTtcbiAgfVxuICBpZiAodGFyZ2V0KSBmb3IgKGtleSBpbiBzb3VyY2UpIHtcbiAgICBzb3VyY2VQcm9wZXJ0eSA9IHNvdXJjZVtrZXldO1xuICAgIGlmIChvcHRpb25zLmRvbnRDYWxsR2V0U2V0KSB7XG4gICAgICBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KTtcbiAgICAgIHRhcmdldFByb3BlcnR5ID0gZGVzY3JpcHRvciAmJiBkZXNjcmlwdG9yLnZhbHVlO1xuICAgIH0gZWxzZSB0YXJnZXRQcm9wZXJ0eSA9IHRhcmdldFtrZXldO1xuICAgIEZPUkNFRCA9IGlzRm9yY2VkKEdMT0JBTCA/IGtleSA6IFRBUkdFVCArIChTVEFUSUMgPyAnLicgOiAnIycpICsga2V5LCBvcHRpb25zLmZvcmNlZCk7XG4gICAgLy8gY29udGFpbmVkIGluIHRhcmdldFxuICAgIGlmICghRk9SQ0VEICYmIHRhcmdldFByb3BlcnR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0eXBlb2Ygc291cmNlUHJvcGVydHkgPT0gdHlwZW9mIHRhcmdldFByb3BlcnR5KSBjb250aW51ZTtcbiAgICAgIGNvcHlDb25zdHJ1Y3RvclByb3BlcnRpZXMoc291cmNlUHJvcGVydHksIHRhcmdldFByb3BlcnR5KTtcbiAgICB9XG4gICAgLy8gYWRkIGEgZmxhZyB0byBub3QgY29tcGxldGVseSBmdWxsIHBvbHlmaWxsc1xuICAgIGlmIChvcHRpb25zLnNoYW0gfHwgKHRhcmdldFByb3BlcnR5ICYmIHRhcmdldFByb3BlcnR5LnNoYW0pKSB7XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoc291cmNlUHJvcGVydHksICdzaGFtJywgdHJ1ZSk7XG4gICAgfVxuICAgIGRlZmluZUJ1aWx0SW4odGFyZ2V0LCBrZXksIHNvdXJjZVByb3BlcnR5LCBvcHRpb25zKTtcbiAgfVxufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gISFleGVjKCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG4vLyBUT0RPOiBSZW1vdmUgZnJvbSBgY29yZS1qc0A0YCBzaW5jZSBpdCdzIG1vdmVkIHRvIGVudHJ5IHBvaW50c1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5yZWdleHAuZXhlYycpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG52YXIgcmVnZXhwRXhlYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZXhlYycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xuXG52YXIgU1BFQ0lFUyA9IHdlbGxLbm93blN5bWJvbCgnc3BlY2llcycpO1xudmFyIFJlZ0V4cFByb3RvdHlwZSA9IFJlZ0V4cC5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEtFWSwgZXhlYywgRk9SQ0VELCBTSEFNKSB7XG4gIHZhciBTWU1CT0wgPSB3ZWxsS25vd25TeW1ib2woS0VZKTtcblxuICB2YXIgREVMRUdBVEVTX1RPX1NZTUJPTCA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgLy8gU3RyaW5nIG1ldGhvZHMgY2FsbCBzeW1ib2wtbmFtZWQgUmVnRXAgbWV0aG9kc1xuICAgIHZhciBPID0ge307XG4gICAgT1tTWU1CT0xdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfTtcbiAgICByZXR1cm4gJydbS0VZXShPKSAhPSA3O1xuICB9KTtcblxuICB2YXIgREVMRUdBVEVTX1RPX0VYRUMgPSBERUxFR0FURVNfVE9fU1lNQk9MICYmICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgLy8gU3ltYm9sLW5hbWVkIFJlZ0V4cCBtZXRob2RzIGNhbGwgLmV4ZWNcbiAgICB2YXIgZXhlY0NhbGxlZCA9IGZhbHNlO1xuICAgIHZhciByZSA9IC9hLztcblxuICAgIGlmIChLRVkgPT09ICdzcGxpdCcpIHtcbiAgICAgIC8vIFdlIGNhbid0IHVzZSByZWFsIHJlZ2V4IGhlcmUgc2luY2UgaXQgY2F1c2VzIGRlb3B0aW1pemF0aW9uXG4gICAgICAvLyBhbmQgc2VyaW91cyBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvbiBpbiBWOFxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzMwNlxuICAgICAgcmUgPSB7fTtcbiAgICAgIC8vIFJlZ0V4cFtAQHNwbGl0XSBkb2Vzbid0IGNhbGwgdGhlIHJlZ2V4J3MgZXhlYyBtZXRob2QsIGJ1dCBmaXJzdCBjcmVhdGVzXG4gICAgICAvLyBhIG5ldyBvbmUuIFdlIG5lZWQgdG8gcmV0dXJuIHRoZSBwYXRjaGVkIHJlZ2V4IHdoZW4gY3JlYXRpbmcgdGhlIG5ldyBvbmUuXG4gICAgICByZS5jb25zdHJ1Y3RvciA9IHt9O1xuICAgICAgcmUuY29uc3RydWN0b3JbU1BFQ0lFU10gPSBmdW5jdGlvbiAoKSB7IHJldHVybiByZTsgfTtcbiAgICAgIHJlLmZsYWdzID0gJyc7XG4gICAgICByZVtTWU1CT0xdID0gLy4vW1NZTUJPTF07XG4gICAgfVxuXG4gICAgcmUuZXhlYyA9IGZ1bmN0aW9uICgpIHsgZXhlY0NhbGxlZCA9IHRydWU7IHJldHVybiBudWxsOyB9O1xuXG4gICAgcmVbU1lNQk9MXSgnJyk7XG4gICAgcmV0dXJuICFleGVjQ2FsbGVkO1xuICB9KTtcblxuICBpZiAoXG4gICAgIURFTEVHQVRFU19UT19TWU1CT0wgfHxcbiAgICAhREVMRUdBVEVTX1RPX0VYRUMgfHxcbiAgICBGT1JDRURcbiAgKSB7XG4gICAgdmFyIHVuY3VycmllZE5hdGl2ZVJlZ0V4cE1ldGhvZCA9IHVuY3VycnlUaGlzKC8uL1tTWU1CT0xdKTtcbiAgICB2YXIgbWV0aG9kcyA9IGV4ZWMoU1lNQk9MLCAnJ1tLRVldLCBmdW5jdGlvbiAobmF0aXZlTWV0aG9kLCByZWdleHAsIHN0ciwgYXJnMiwgZm9yY2VTdHJpbmdNZXRob2QpIHtcbiAgICAgIHZhciB1bmN1cnJpZWROYXRpdmVNZXRob2QgPSB1bmN1cnJ5VGhpcyhuYXRpdmVNZXRob2QpO1xuICAgICAgdmFyICRleGVjID0gcmVnZXhwLmV4ZWM7XG4gICAgICBpZiAoJGV4ZWMgPT09IHJlZ2V4cEV4ZWMgfHwgJGV4ZWMgPT09IFJlZ0V4cFByb3RvdHlwZS5leGVjKSB7XG4gICAgICAgIGlmIChERUxFR0FURVNfVE9fU1lNQk9MICYmICFmb3JjZVN0cmluZ01ldGhvZCkge1xuICAgICAgICAgIC8vIFRoZSBuYXRpdmUgU3RyaW5nIG1ldGhvZCBhbHJlYWR5IGRlbGVnYXRlcyB0byBAQG1ldGhvZCAodGhpc1xuICAgICAgICAgIC8vIHBvbHlmaWxsZWQgZnVuY3Rpb24pLCBsZWFzaW5nIHRvIGluZmluaXRlIHJlY3Vyc2lvbi5cbiAgICAgICAgICAvLyBXZSBhdm9pZCBpdCBieSBkaXJlY3RseSBjYWxsaW5nIHRoZSBuYXRpdmUgQEBtZXRob2QgbWV0aG9kLlxuICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiB1bmN1cnJpZWROYXRpdmVSZWdFeHBNZXRob2QocmVnZXhwLCBzdHIsIGFyZzIpIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IHVuY3VycmllZE5hdGl2ZU1ldGhvZChzdHIsIHJlZ2V4cCwgYXJnMikgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IGRvbmU6IGZhbHNlIH07XG4gICAgfSk7XG5cbiAgICBkZWZpbmVCdWlsdEluKFN0cmluZy5wcm90b3R5cGUsIEtFWSwgbWV0aG9kc1swXSk7XG4gICAgZGVmaW5lQnVpbHRJbihSZWdFeHBQcm90b3R5cGUsIFNZTUJPTCwgbWV0aG9kc1sxXSk7XG4gIH1cblxuICBpZiAoU0hBTSkgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KFJlZ0V4cFByb3RvdHlwZVtTWU1CT0xdLCAnc2hhbScsIHRydWUpO1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1pc2V4dGVuc2libGUsIGVzLXgvbm8tb2JqZWN0LXByZXZlbnRleHRlbnNpb25zIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIHJldHVybiBPYmplY3QuaXNFeHRlbnNpYmxlKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSkpO1xufSk7XG4iLCJ2YXIgTkFUSVZFX0JJTkQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1uYXRpdmUnKTtcblxudmFyIEZ1bmN0aW9uUHJvdG90eXBlID0gRnVuY3Rpb24ucHJvdG90eXBlO1xudmFyIGFwcGx5ID0gRnVuY3Rpb25Qcm90b3R5cGUuYXBwbHk7XG52YXIgY2FsbCA9IEZ1bmN0aW9uUHJvdG90eXBlLmNhbGw7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLXJlZmxlY3QgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSB0eXBlb2YgUmVmbGVjdCA9PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmFwcGx5IHx8IChOQVRJVkVfQklORCA/IGNhbGwuYmluZChhcHBseSkgOiBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBjYWxsLmFwcGx5KGFwcGx5LCBhcmd1bWVudHMpO1xufSk7XG4iLCJ2YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgYUNhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtY2FsbGFibGUnKTtcbnZhciBOQVRJVkVfQklORCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLW5hdGl2ZScpO1xuXG52YXIgYmluZCA9IHVuY3VycnlUaGlzKHVuY3VycnlUaGlzLmJpbmQpO1xuXG4vLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0KSB7XG4gIGFDYWxsYWJsZShmbik7XG4gIHJldHVybiB0aGF0ID09PSB1bmRlZmluZWQgPyBmbiA6IE5BVElWRV9CSU5EID8gYmluZChmbiwgdGhhdCkgOiBmdW5jdGlvbiAoLyogLi4uYXJncyAqLykge1xuICAgIHJldHVybiBmbi5hcHBseSh0aGF0LCBhcmd1bWVudHMpO1xuICB9O1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLWZ1bmN0aW9uLXByb3RvdHlwZS1iaW5kIC0tIHNhZmVcbiAgdmFyIHRlc3QgPSAoZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9KS5iaW5kKCk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgLS0gc2FmZVxuICByZXR1cm4gdHlwZW9mIHRlc3QgIT0gJ2Z1bmN0aW9uJyB8fCB0ZXN0Lmhhc093blByb3BlcnR5KCdwcm90b3R5cGUnKTtcbn0pO1xuIiwidmFyIE5BVElWRV9CSU5EID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtbmF0aXZlJyk7XG5cbnZhciBjYWxsID0gRnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7XG5cbm1vZHVsZS5leHBvcnRzID0gTkFUSVZFX0JJTkQgPyBjYWxsLmJpbmQoY2FsbCkgOiBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBjYWxsLmFwcGx5KGNhbGwsIGFyZ3VtZW50cyk7XG59O1xuIiwidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcblxudmFyIEZ1bmN0aW9uUHJvdG90eXBlID0gRnVuY3Rpb24ucHJvdG90eXBlO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG52YXIgZ2V0RGVzY3JpcHRvciA9IERFU0NSSVBUT1JTICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbnZhciBFWElTVFMgPSBoYXNPd24oRnVuY3Rpb25Qcm90b3R5cGUsICduYW1lJyk7XG4vLyBhZGRpdGlvbmFsIHByb3RlY3Rpb24gZnJvbSBtaW5pZmllZCAvIG1hbmdsZWQgLyBkcm9wcGVkIGZ1bmN0aW9uIG5hbWVzXG52YXIgUFJPUEVSID0gRVhJU1RTICYmIChmdW5jdGlvbiBzb21ldGhpbmcoKSB7IC8qIGVtcHR5ICovIH0pLm5hbWUgPT09ICdzb21ldGhpbmcnO1xudmFyIENPTkZJR1VSQUJMRSA9IEVYSVNUUyAmJiAoIURFU0NSSVBUT1JTIHx8IChERVNDUklQVE9SUyAmJiBnZXREZXNjcmlwdG9yKEZ1bmN0aW9uUHJvdG90eXBlLCAnbmFtZScpLmNvbmZpZ3VyYWJsZSkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgRVhJU1RTOiBFWElTVFMsXG4gIFBST1BFUjogUFJPUEVSLFxuICBDT05GSUdVUkFCTEU6IENPTkZJR1VSQUJMRVxufTtcbiIsInZhciBOQVRJVkVfQklORCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLW5hdGl2ZScpO1xuXG52YXIgRnVuY3Rpb25Qcm90b3R5cGUgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG52YXIgYmluZCA9IEZ1bmN0aW9uUHJvdG90eXBlLmJpbmQ7XG52YXIgY2FsbCA9IEZ1bmN0aW9uUHJvdG90eXBlLmNhbGw7XG52YXIgdW5jdXJyeVRoaXMgPSBOQVRJVkVfQklORCAmJiBiaW5kLmJpbmQoY2FsbCwgY2FsbCk7XG5cbm1vZHVsZS5leHBvcnRzID0gTkFUSVZFX0JJTkQgPyBmdW5jdGlvbiAoZm4pIHtcbiAgcmV0dXJuIGZuICYmIHVuY3VycnlUaGlzKGZuKTtcbn0gOiBmdW5jdGlvbiAoZm4pIHtcbiAgcmV0dXJuIGZuICYmIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gY2FsbC5hcHBseShmbiwgYXJndW1lbnRzKTtcbiAgfTtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcblxudmFyIGFGdW5jdGlvbiA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gaXNDYWxsYWJsZShhcmd1bWVudCkgPyBhcmd1bWVudCA6IHVuZGVmaW5lZDtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWVzcGFjZSwgbWV0aG9kKSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoIDwgMiA/IGFGdW5jdGlvbihnbG9iYWxbbmFtZXNwYWNlXSkgOiBnbG9iYWxbbmFtZXNwYWNlXSAmJiBnbG9iYWxbbmFtZXNwYWNlXVttZXRob2RdO1xufTtcbiIsInZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YnKTtcbnZhciBnZXRNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LW1ldGhvZCcpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgIT0gdW5kZWZpbmVkKSByZXR1cm4gZ2V0TWV0aG9kKGl0LCBJVEVSQVRPUilcbiAgICB8fCBnZXRNZXRob2QoaXQsICdAQGl0ZXJhdG9yJylcbiAgICB8fCBJdGVyYXRvcnNbY2xhc3NvZihpdCldO1xufTtcbiIsInZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBhQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1jYWxsYWJsZScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRyeVRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RyeS10by1zdHJpbmcnKTtcbnZhciBnZXRJdGVyYXRvck1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtaXRlcmF0b3ItbWV0aG9kJyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCwgdXNpbmdJdGVyYXRvcikge1xuICB2YXIgaXRlcmF0b3JNZXRob2QgPSBhcmd1bWVudHMubGVuZ3RoIDwgMiA/IGdldEl0ZXJhdG9yTWV0aG9kKGFyZ3VtZW50KSA6IHVzaW5nSXRlcmF0b3I7XG4gIGlmIChhQ2FsbGFibGUoaXRlcmF0b3JNZXRob2QpKSByZXR1cm4gYW5PYmplY3QoY2FsbChpdGVyYXRvck1ldGhvZCwgYXJndW1lbnQpKTtcbiAgdGhyb3cgJFR5cGVFcnJvcih0cnlUb1N0cmluZyhhcmd1bWVudCkgKyAnIGlzIG5vdCBpdGVyYWJsZScpO1xufTtcbiIsInZhciBhQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1jYWxsYWJsZScpO1xuXG4vLyBgR2V0TWV0aG9kYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtZ2V0bWV0aG9kXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChWLCBQKSB7XG4gIHZhciBmdW5jID0gVltQXTtcbiAgcmV0dXJuIGZ1bmMgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IGFDYWxsYWJsZShmdW5jKTtcbn07XG4iLCJ2YXIgY2hlY2sgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ICYmIGl0Lk1hdGggPT0gTWF0aCAmJiBpdDtcbn07XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy84NiNpc3N1ZWNvbW1lbnQtMTE1NzU5MDI4XG5tb2R1bGUuZXhwb3J0cyA9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLWdsb2JhbC10aGlzIC0tIHNhZmVcbiAgY2hlY2sodHlwZW9mIGdsb2JhbFRoaXMgPT0gJ29iamVjdCcgJiYgZ2xvYmFsVGhpcykgfHxcbiAgY2hlY2sodHlwZW9mIHdpbmRvdyA9PSAnb2JqZWN0JyAmJiB3aW5kb3cpIHx8XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgLS0gc2FmZVxuICBjaGVjayh0eXBlb2Ygc2VsZiA9PSAnb2JqZWN0JyAmJiBzZWxmKSB8fFxuICBjaGVjayh0eXBlb2YgZ2xvYmFsID09ICdvYmplY3QnICYmIGdsb2JhbCkgfHxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldy1mdW5jIC0tIGZhbGxiYWNrXG4gIChmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9KSgpIHx8IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG4iLCJ2YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IHVuY3VycnlUaGlzKHt9Lmhhc093blByb3BlcnR5KTtcblxuLy8gYEhhc093blByb3BlcnR5YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaGFzb3ducHJvcGVydHlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1oYXNvd24gLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuaGFzT3duIHx8IGZ1bmN0aW9uIGhhc093bihpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eSh0b09iamVjdChpdCksIGtleSk7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7fTtcbiIsInZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW4oJ2RvY3VtZW50JywgJ2RvY3VtZW50RWxlbWVudCcpO1xuIiwidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBjcmVhdGVFbGVtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50Jyk7XG5cbi8vIFRoYW5rcyB0byBJRTggZm9yIGl0cyBmdW5ueSBkZWZpbmVQcm9wZXJ0eVxubW9kdWxlLmV4cG9ydHMgPSAhREVTQ1JJUFRPUlMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoY3JlYXRlRWxlbWVudCgnZGl2JyksICdhJywge1xuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfVxuICB9KS5hICE9IDc7XG59KTtcbiIsInZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcblxudmFyICRPYmplY3QgPSBPYmplY3Q7XG52YXIgc3BsaXQgPSB1bmN1cnJ5VGhpcygnJy5zcGxpdCk7XG5cbi8vIGZhbGxiYWNrIGZvciBub24tYXJyYXktbGlrZSBFUzMgYW5kIG5vbi1lbnVtZXJhYmxlIG9sZCBWOCBzdHJpbmdzXG5tb2R1bGUuZXhwb3J0cyA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gdGhyb3dzIGFuIGVycm9yIGluIHJoaW5vLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvcmhpbm8vaXNzdWVzLzM0NlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zIC0tIHNhZmVcbiAgcmV0dXJuICEkT2JqZWN0KCd6JykucHJvcGVydHlJc0VudW1lcmFibGUoMCk7XG59KSA/IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY2xhc3NvZihpdCkgPT0gJ1N0cmluZycgPyBzcGxpdChpdCwgJycpIDogJE9iamVjdChpdCk7XG59IDogJE9iamVjdDtcbiIsInZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXNldC1wcm90b3R5cGUtb2YnKTtcblxuLy8gbWFrZXMgc3ViY2xhc3Npbmcgd29yayBjb3JyZWN0IGZvciB3cmFwcGVkIGJ1aWx0LWluc1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoJHRoaXMsIGR1bW15LCBXcmFwcGVyKSB7XG4gIHZhciBOZXdUYXJnZXQsIE5ld1RhcmdldFByb3RvdHlwZTtcbiAgaWYgKFxuICAgIC8vIGl0IGNhbiB3b3JrIG9ubHkgd2l0aCBuYXRpdmUgYHNldFByb3RvdHlwZU9mYFxuICAgIHNldFByb3RvdHlwZU9mICYmXG4gICAgLy8gd2UgaGF2ZW4ndCBjb21wbGV0ZWx5IGNvcnJlY3QgcHJlLUVTNiB3YXkgZm9yIGdldHRpbmcgYG5ldy50YXJnZXRgLCBzbyB1c2UgdGhpc1xuICAgIGlzQ2FsbGFibGUoTmV3VGFyZ2V0ID0gZHVtbXkuY29uc3RydWN0b3IpICYmXG4gICAgTmV3VGFyZ2V0ICE9PSBXcmFwcGVyICYmXG4gICAgaXNPYmplY3QoTmV3VGFyZ2V0UHJvdG90eXBlID0gTmV3VGFyZ2V0LnByb3RvdHlwZSkgJiZcbiAgICBOZXdUYXJnZXRQcm90b3R5cGUgIT09IFdyYXBwZXIucHJvdG90eXBlXG4gICkgc2V0UHJvdG90eXBlT2YoJHRoaXMsIE5ld1RhcmdldFByb3RvdHlwZSk7XG4gIHJldHVybiAkdGhpcztcbn07XG4iLCJ2YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIHN0b3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1zdG9yZScpO1xuXG52YXIgZnVuY3Rpb25Ub1N0cmluZyA9IHVuY3VycnlUaGlzKEZ1bmN0aW9uLnRvU3RyaW5nKTtcblxuLy8gdGhpcyBoZWxwZXIgYnJva2VuIGluIGBjb3JlLWpzQDMuNC4xLTMuNC40YCwgc28gd2UgY2FuJ3QgdXNlIGBzaGFyZWRgIGhlbHBlclxuaWYgKCFpc0NhbGxhYmxlKHN0b3JlLmluc3BlY3RTb3VyY2UpKSB7XG4gIHN0b3JlLmluc3BlY3RTb3VyY2UgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gZnVuY3Rpb25Ub1N0cmluZyhpdCk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3RvcmUuaW5zcGVjdFNvdXJjZTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKS5mO1xudmFyIGdldE93blByb3BlcnR5TmFtZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzRXh0ZXJuYWxNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMtZXh0ZXJuYWwnKTtcbnZhciBpc0V4dGVuc2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWlzLWV4dGVuc2libGUnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdWlkJyk7XG52YXIgRlJFRVpJTkcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnJlZXppbmcnKTtcblxudmFyIFJFUVVJUkVEID0gZmFsc2U7XG52YXIgTUVUQURBVEEgPSB1aWQoJ21ldGEnKTtcbnZhciBpZCA9IDA7XG5cbnZhciBzZXRNZXRhZGF0YSA9IGZ1bmN0aW9uIChpdCkge1xuICBkZWZpbmVQcm9wZXJ0eShpdCwgTUVUQURBVEEsIHsgdmFsdWU6IHtcbiAgICBvYmplY3RJRDogJ08nICsgaWQrKywgLy8gb2JqZWN0IElEXG4gICAgd2Vha0RhdGE6IHt9ICAgICAgICAgIC8vIHdlYWsgY29sbGVjdGlvbnMgSURzXG4gIH0gfSk7XG59O1xuXG52YXIgZmFzdEtleSA9IGZ1bmN0aW9uIChpdCwgY3JlYXRlKSB7XG4gIC8vIHJldHVybiBhIHByaW1pdGl2ZSB3aXRoIHByZWZpeFxuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIHR5cGVvZiBpdCA9PSAnc3ltYm9sJyA/IGl0IDogKHR5cGVvZiBpdCA9PSAnc3RyaW5nJyA/ICdTJyA6ICdQJykgKyBpdDtcbiAgaWYgKCFoYXNPd24oaXQsIE1FVEFEQVRBKSkge1xuICAgIC8vIGNhbid0IHNldCBtZXRhZGF0YSB0byB1bmNhdWdodCBmcm96ZW4gb2JqZWN0XG4gICAgaWYgKCFpc0V4dGVuc2libGUoaXQpKSByZXR1cm4gJ0YnO1xuICAgIC8vIG5vdCBuZWNlc3NhcnkgdG8gYWRkIG1ldGFkYXRhXG4gICAgaWYgKCFjcmVhdGUpIHJldHVybiAnRSc7XG4gICAgLy8gYWRkIG1pc3NpbmcgbWV0YWRhdGFcbiAgICBzZXRNZXRhZGF0YShpdCk7XG4gIC8vIHJldHVybiBvYmplY3QgSURcbiAgfSByZXR1cm4gaXRbTUVUQURBVEFdLm9iamVjdElEO1xufTtcblxudmFyIGdldFdlYWtEYXRhID0gZnVuY3Rpb24gKGl0LCBjcmVhdGUpIHtcbiAgaWYgKCFoYXNPd24oaXQsIE1FVEFEQVRBKSkge1xuICAgIC8vIGNhbid0IHNldCBtZXRhZGF0YSB0byB1bmNhdWdodCBmcm96ZW4gb2JqZWN0XG4gICAgaWYgKCFpc0V4dGVuc2libGUoaXQpKSByZXR1cm4gdHJ1ZTtcbiAgICAvLyBub3QgbmVjZXNzYXJ5IHRvIGFkZCBtZXRhZGF0YVxuICAgIGlmICghY3JlYXRlKSByZXR1cm4gZmFsc2U7XG4gICAgLy8gYWRkIG1pc3NpbmcgbWV0YWRhdGFcbiAgICBzZXRNZXRhZGF0YShpdCk7XG4gIC8vIHJldHVybiB0aGUgc3RvcmUgb2Ygd2VhayBjb2xsZWN0aW9ucyBJRHNcbiAgfSByZXR1cm4gaXRbTUVUQURBVEFdLndlYWtEYXRhO1xufTtcblxuLy8gYWRkIG1ldGFkYXRhIG9uIGZyZWV6ZS1mYW1pbHkgbWV0aG9kcyBjYWxsaW5nXG52YXIgb25GcmVlemUgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKEZSRUVaSU5HICYmIFJFUVVJUkVEICYmIGlzRXh0ZW5zaWJsZShpdCkgJiYgIWhhc093bihpdCwgTUVUQURBVEEpKSBzZXRNZXRhZGF0YShpdCk7XG4gIHJldHVybiBpdDtcbn07XG5cbnZhciBlbmFibGUgPSBmdW5jdGlvbiAoKSB7XG4gIG1ldGEuZW5hYmxlID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xuICBSRVFVSVJFRCA9IHRydWU7XG4gIHZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzID0gZ2V0T3duUHJvcGVydHlOYW1lc01vZHVsZS5mO1xuICB2YXIgc3BsaWNlID0gdW5jdXJyeVRoaXMoW10uc3BsaWNlKTtcbiAgdmFyIHRlc3QgPSB7fTtcbiAgdGVzdFtNRVRBREFUQV0gPSAxO1xuXG4gIC8vIHByZXZlbnQgZXhwb3Npbmcgb2YgbWV0YWRhdGEga2V5XG4gIGlmIChnZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QpLmxlbmd0aCkge1xuICAgIGdldE93blByb3BlcnR5TmFtZXNNb2R1bGUuZiA9IGZ1bmN0aW9uIChpdCkge1xuICAgICAgdmFyIHJlc3VsdCA9IGdldE93blByb3BlcnR5TmFtZXMoaXQpO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbmd0aCA9IHJlc3VsdC5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAocmVzdWx0W2ldID09PSBNRVRBREFUQSkge1xuICAgICAgICAgIHNwbGljZShyZXN1bHQsIGksIDEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9IHJldHVybiByZXN1bHQ7XG4gICAgfTtcblxuICAgICQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IHRydWUgfSwge1xuICAgICAgZ2V0T3duUHJvcGVydHlOYW1lczogZ2V0T3duUHJvcGVydHlOYW1lc0V4dGVybmFsTW9kdWxlLmZcbiAgICB9KTtcbiAgfVxufTtcblxudmFyIG1ldGEgPSBtb2R1bGUuZXhwb3J0cyA9IHtcbiAgZW5hYmxlOiBlbmFibGUsXG4gIGZhc3RLZXk6IGZhc3RLZXksXG4gIGdldFdlYWtEYXRhOiBnZXRXZWFrRGF0YSxcbiAgb25GcmVlemU6IG9uRnJlZXplXG59O1xuXG5oaWRkZW5LZXlzW01FVEFEQVRBXSA9IHRydWU7XG4iLCJ2YXIgTkFUSVZFX1dFQUtfTUFQID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS13ZWFrLW1hcCcpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG52YXIgc2hhcmVkS2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1rZXknKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG5cbnZhciBPQkpFQ1RfQUxSRUFEWV9JTklUSUFMSVpFRCA9ICdPYmplY3QgYWxyZWFkeSBpbml0aWFsaXplZCc7XG52YXIgVHlwZUVycm9yID0gZ2xvYmFsLlR5cGVFcnJvcjtcbnZhciBXZWFrTWFwID0gZ2xvYmFsLldlYWtNYXA7XG52YXIgc2V0LCBnZXQsIGhhcztcblxudmFyIGVuZm9yY2UgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGhhcyhpdCkgPyBnZXQoaXQpIDogc2V0KGl0LCB7fSk7XG59O1xuXG52YXIgZ2V0dGVyRm9yID0gZnVuY3Rpb24gKFRZUEUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChpdCkge1xuICAgIHZhciBzdGF0ZTtcbiAgICBpZiAoIWlzT2JqZWN0KGl0KSB8fCAoc3RhdGUgPSBnZXQoaXQpKS50eXBlICE9PSBUWVBFKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoJ0luY29tcGF0aWJsZSByZWNlaXZlciwgJyArIFRZUEUgKyAnIHJlcXVpcmVkJyk7XG4gICAgfSByZXR1cm4gc3RhdGU7XG4gIH07XG59O1xuXG5pZiAoTkFUSVZFX1dFQUtfTUFQIHx8IHNoYXJlZC5zdGF0ZSkge1xuICB2YXIgc3RvcmUgPSBzaGFyZWQuc3RhdGUgfHwgKHNoYXJlZC5zdGF0ZSA9IG5ldyBXZWFrTWFwKCkpO1xuICB2YXIgd21nZXQgPSB1bmN1cnJ5VGhpcyhzdG9yZS5nZXQpO1xuICB2YXIgd21oYXMgPSB1bmN1cnJ5VGhpcyhzdG9yZS5oYXMpO1xuICB2YXIgd21zZXQgPSB1bmN1cnJ5VGhpcyhzdG9yZS5zZXQpO1xuICBzZXQgPSBmdW5jdGlvbiAoaXQsIG1ldGFkYXRhKSB7XG4gICAgaWYgKHdtaGFzKHN0b3JlLCBpdCkpIHRocm93IG5ldyBUeXBlRXJyb3IoT0JKRUNUX0FMUkVBRFlfSU5JVElBTElaRUQpO1xuICAgIG1ldGFkYXRhLmZhY2FkZSA9IGl0O1xuICAgIHdtc2V0KHN0b3JlLCBpdCwgbWV0YWRhdGEpO1xuICAgIHJldHVybiBtZXRhZGF0YTtcbiAgfTtcbiAgZ2V0ID0gZnVuY3Rpb24gKGl0KSB7XG4gICAgcmV0dXJuIHdtZ2V0KHN0b3JlLCBpdCkgfHwge307XG4gIH07XG4gIGhhcyA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiB3bWhhcyhzdG9yZSwgaXQpO1xuICB9O1xufSBlbHNlIHtcbiAgdmFyIFNUQVRFID0gc2hhcmVkS2V5KCdzdGF0ZScpO1xuICBoaWRkZW5LZXlzW1NUQVRFXSA9IHRydWU7XG4gIHNldCA9IGZ1bmN0aW9uIChpdCwgbWV0YWRhdGEpIHtcbiAgICBpZiAoaGFzT3duKGl0LCBTVEFURSkpIHRocm93IG5ldyBUeXBlRXJyb3IoT0JKRUNUX0FMUkVBRFlfSU5JVElBTElaRUQpO1xuICAgIG1ldGFkYXRhLmZhY2FkZSA9IGl0O1xuICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShpdCwgU1RBVEUsIG1ldGFkYXRhKTtcbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH07XG4gIGdldCA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBoYXNPd24oaXQsIFNUQVRFKSA/IGl0W1NUQVRFXSA6IHt9O1xuICB9O1xuICBoYXMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gaGFzT3duKGl0LCBTVEFURSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBzZXQ6IHNldCxcbiAgZ2V0OiBnZXQsXG4gIGhhczogaGFzLFxuICBlbmZvcmNlOiBlbmZvcmNlLFxuICBnZXR0ZXJGb3I6IGdldHRlckZvclxufTtcbiIsInZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzJyk7XG5cbnZhciBJVEVSQVRPUiA9IHdlbGxLbm93blN5bWJvbCgnaXRlcmF0b3InKTtcbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxuLy8gY2hlY2sgb24gZGVmYXVsdCBBcnJheSBpdGVyYXRvclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ICE9PSB1bmRlZmluZWQgJiYgKEl0ZXJhdG9ycy5BcnJheSA9PT0gaXQgfHwgQXJyYXlQcm90b3R5cGVbSVRFUkFUT1JdID09PSBpdCk7XG59O1xuIiwidmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcblxuLy8gYElzQXJyYXlgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1pc2FycmF5XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1hcnJheS1pc2FycmF5IC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiBpc0FycmF5KGFyZ3VtZW50KSB7XG4gIHJldHVybiBjbGFzc29mKGFyZ3VtZW50KSA9PSAnQXJyYXknO1xufTtcbiIsIi8vIGBJc0NhbGxhYmxlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaXNjYWxsYWJsZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmd1bWVudCA9PSAnZnVuY3Rpb24nO1xufTtcbiIsInZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YnKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGluc3BlY3RTb3VyY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5zcGVjdC1zb3VyY2UnKTtcblxudmFyIG5vb3AgPSBmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH07XG52YXIgZW1wdHkgPSBbXTtcbnZhciBjb25zdHJ1Y3QgPSBnZXRCdWlsdEluKCdSZWZsZWN0JywgJ2NvbnN0cnVjdCcpO1xudmFyIGNvbnN0cnVjdG9yUmVnRXhwID0gL15cXHMqKD86Y2xhc3N8ZnVuY3Rpb24pXFxiLztcbnZhciBleGVjID0gdW5jdXJyeVRoaXMoY29uc3RydWN0b3JSZWdFeHAuZXhlYyk7XG52YXIgSU5DT1JSRUNUX1RPX1NUUklORyA9ICFjb25zdHJ1Y3RvclJlZ0V4cC5leGVjKG5vb3ApO1xuXG52YXIgaXNDb25zdHJ1Y3Rvck1vZGVybiA9IGZ1bmN0aW9uIGlzQ29uc3RydWN0b3IoYXJndW1lbnQpIHtcbiAgaWYgKCFpc0NhbGxhYmxlKGFyZ3VtZW50KSkgcmV0dXJuIGZhbHNlO1xuICB0cnkge1xuICAgIGNvbnN0cnVjdChub29wLCBlbXB0eSwgYXJndW1lbnQpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxudmFyIGlzQ29uc3RydWN0b3JMZWdhY3kgPSBmdW5jdGlvbiBpc0NvbnN0cnVjdG9yKGFyZ3VtZW50KSB7XG4gIGlmICghaXNDYWxsYWJsZShhcmd1bWVudCkpIHJldHVybiBmYWxzZTtcbiAgc3dpdGNoIChjbGFzc29mKGFyZ3VtZW50KSkge1xuICAgIGNhc2UgJ0FzeW5jRnVuY3Rpb24nOlxuICAgIGNhc2UgJ0dlbmVyYXRvckZ1bmN0aW9uJzpcbiAgICBjYXNlICdBc3luY0dlbmVyYXRvckZ1bmN0aW9uJzogcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgLy8gd2UgY2FuJ3QgY2hlY2sgLnByb3RvdHlwZSBzaW5jZSBjb25zdHJ1Y3RvcnMgcHJvZHVjZWQgYnkgLmJpbmQgaGF2ZW4ndCBpdFxuICAgIC8vIGBGdW5jdGlvbiN0b1N0cmluZ2AgdGhyb3dzIG9uIHNvbWUgYnVpbHQtaXQgZnVuY3Rpb24gaW4gc29tZSBsZWdhY3kgZW5naW5lc1xuICAgIC8vIChmb3IgZXhhbXBsZSwgYERPTVF1YWRgIGFuZCBzaW1pbGFyIGluIEZGNDEtKVxuICAgIHJldHVybiBJTkNPUlJFQ1RfVE9fU1RSSU5HIHx8ICEhZXhlYyhjb25zdHJ1Y3RvclJlZ0V4cCwgaW5zcGVjdFNvdXJjZShhcmd1bWVudCkpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuXG5pc0NvbnN0cnVjdG9yTGVnYWN5LnNoYW0gPSB0cnVlO1xuXG4vLyBgSXNDb25zdHJ1Y3RvcmAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWlzY29uc3RydWN0b3Jcbm1vZHVsZS5leHBvcnRzID0gIWNvbnN0cnVjdCB8fCBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciBjYWxsZWQ7XG4gIHJldHVybiBpc0NvbnN0cnVjdG9yTW9kZXJuKGlzQ29uc3RydWN0b3JNb2Rlcm4uY2FsbClcbiAgICB8fCAhaXNDb25zdHJ1Y3Rvck1vZGVybihPYmplY3QpXG4gICAgfHwgIWlzQ29uc3RydWN0b3JNb2Rlcm4oZnVuY3Rpb24gKCkgeyBjYWxsZWQgPSB0cnVlOyB9KVxuICAgIHx8IGNhbGxlZDtcbn0pID8gaXNDb25zdHJ1Y3RvckxlZ2FjeSA6IGlzQ29uc3RydWN0b3JNb2Rlcm47XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG5cbnZhciByZXBsYWNlbWVudCA9IC8jfFxcLnByb3RvdHlwZVxcLi87XG5cbnZhciBpc0ZvcmNlZCA9IGZ1bmN0aW9uIChmZWF0dXJlLCBkZXRlY3Rpb24pIHtcbiAgdmFyIHZhbHVlID0gZGF0YVtub3JtYWxpemUoZmVhdHVyZSldO1xuICByZXR1cm4gdmFsdWUgPT0gUE9MWUZJTEwgPyB0cnVlXG4gICAgOiB2YWx1ZSA9PSBOQVRJVkUgPyBmYWxzZVxuICAgIDogaXNDYWxsYWJsZShkZXRlY3Rpb24pID8gZmFpbHMoZGV0ZWN0aW9uKVxuICAgIDogISFkZXRlY3Rpb247XG59O1xuXG52YXIgbm9ybWFsaXplID0gaXNGb3JjZWQubm9ybWFsaXplID0gZnVuY3Rpb24gKHN0cmluZykge1xuICByZXR1cm4gU3RyaW5nKHN0cmluZykucmVwbGFjZShyZXBsYWNlbWVudCwgJy4nKS50b0xvd2VyQ2FzZSgpO1xufTtcblxudmFyIGRhdGEgPSBpc0ZvcmNlZC5kYXRhID0ge307XG52YXIgTkFUSVZFID0gaXNGb3JjZWQuTkFUSVZFID0gJ04nO1xudmFyIFBPTFlGSUxMID0gaXNGb3JjZWQuUE9MWUZJTEwgPSAnUCc7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNGb3JjZWQ7XG4iLCJ2YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdvYmplY3QnID8gaXQgIT09IG51bGwgOiBpc0NhbGxhYmxlKGl0KTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZhbHNlO1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIE1BVENIID0gd2VsbEtub3duU3ltYm9sKCdtYXRjaCcpO1xuXG4vLyBgSXNSZWdFeHBgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1pc3JlZ2V4cFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIGlzUmVnRXhwO1xuICByZXR1cm4gaXNPYmplY3QoaXQpICYmICgoaXNSZWdFeHAgPSBpdFtNQVRDSF0pICE9PSB1bmRlZmluZWQgPyAhIWlzUmVnRXhwIDogY2xhc3NvZihpdCkgPT0gJ1JlZ0V4cCcpO1xufTtcbiIsInZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBpc1Byb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YnKTtcbnZhciBVU0VfU1lNQk9MX0FTX1VJRCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91c2Utc3ltYm9sLWFzLXVpZCcpO1xuXG52YXIgJE9iamVjdCA9IE9iamVjdDtcblxubW9kdWxlLmV4cG9ydHMgPSBVU0VfU1lNQk9MX0FTX1VJRCA/IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdzeW1ib2wnO1xufSA6IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgJFN5bWJvbCA9IGdldEJ1aWx0SW4oJ1N5bWJvbCcpO1xuICByZXR1cm4gaXNDYWxsYWJsZSgkU3ltYm9sKSAmJiBpc1Byb3RvdHlwZU9mKCRTeW1ib2wucHJvdG90eXBlLCAkT2JqZWN0KGl0KSk7XG59O1xuIiwidmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGdldE1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtbWV0aG9kJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0ZXJhdG9yLCBraW5kLCB2YWx1ZSkge1xuICB2YXIgaW5uZXJSZXN1bHQsIGlubmVyRXJyb3I7XG4gIGFuT2JqZWN0KGl0ZXJhdG9yKTtcbiAgdHJ5IHtcbiAgICBpbm5lclJlc3VsdCA9IGdldE1ldGhvZChpdGVyYXRvciwgJ3JldHVybicpO1xuICAgIGlmICghaW5uZXJSZXN1bHQpIHtcbiAgICAgIGlmIChraW5kID09PSAndGhyb3cnKSB0aHJvdyB2YWx1ZTtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgaW5uZXJSZXN1bHQgPSBjYWxsKGlubmVyUmVzdWx0LCBpdGVyYXRvcik7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaW5uZXJFcnJvciA9IHRydWU7XG4gICAgaW5uZXJSZXN1bHQgPSBlcnJvcjtcbiAgfVxuICBpZiAoa2luZCA9PT0gJ3Rocm93JykgdGhyb3cgdmFsdWU7XG4gIGlmIChpbm5lckVycm9yKSB0aHJvdyBpbm5lclJlc3VsdDtcbiAgYW5PYmplY3QoaW5uZXJSZXN1bHQpO1xuICByZXR1cm4gdmFsdWU7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YnKTtcbnZhciBkZWZpbmVCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbicpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xuXG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG52YXIgQlVHR1lfU0FGQVJJX0lURVJBVE9SUyA9IGZhbHNlO1xuXG4vLyBgJUl0ZXJhdG9yUHJvdG90eXBlJWAgb2JqZWN0XG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSVpdGVyYXRvcnByb3RvdHlwZSUtb2JqZWN0XG52YXIgSXRlcmF0b3JQcm90b3R5cGUsIFByb3RvdHlwZU9mQXJyYXlJdGVyYXRvclByb3RvdHlwZSwgYXJyYXlJdGVyYXRvcjtcblxuLyogZXNsaW50LWRpc2FibGUgZXMteC9uby1hcnJheS1wcm90b3R5cGUta2V5cyAtLSBzYWZlICovXG5pZiAoW10ua2V5cykge1xuICBhcnJheUl0ZXJhdG9yID0gW10ua2V5cygpO1xuICAvLyBTYWZhcmkgOCBoYXMgYnVnZ3kgaXRlcmF0b3JzIHcvbyBgbmV4dGBcbiAgaWYgKCEoJ25leHQnIGluIGFycmF5SXRlcmF0b3IpKSBCVUdHWV9TQUZBUklfSVRFUkFUT1JTID0gdHJ1ZTtcbiAgZWxzZSB7XG4gICAgUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG90eXBlT2YoZ2V0UHJvdG90eXBlT2YoYXJyYXlJdGVyYXRvcikpO1xuICAgIGlmIChQcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUpIEl0ZXJhdG9yUHJvdG90eXBlID0gUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlO1xuICB9XG59XG5cbnZhciBORVdfSVRFUkFUT1JfUFJPVE9UWVBFID0gSXRlcmF0b3JQcm90b3R5cGUgPT0gdW5kZWZpbmVkIHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHRlc3QgPSB7fTtcbiAgLy8gRkY0NC0gbGVnYWN5IGl0ZXJhdG9ycyBjYXNlXG4gIHJldHVybiBJdGVyYXRvclByb3RvdHlwZVtJVEVSQVRPUl0uY2FsbCh0ZXN0KSAhPT0gdGVzdDtcbn0pO1xuXG5pZiAoTkVXX0lURVJBVE9SX1BST1RPVFlQRSkgSXRlcmF0b3JQcm90b3R5cGUgPSB7fTtcbmVsc2UgaWYgKElTX1BVUkUpIEl0ZXJhdG9yUHJvdG90eXBlID0gY3JlYXRlKEl0ZXJhdG9yUHJvdG90eXBlKTtcblxuLy8gYCVJdGVyYXRvclByb3RvdHlwZSVbQEBpdGVyYXRvcl0oKWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSVpdGVyYXRvcnByb3RvdHlwZSUtQEBpdGVyYXRvclxuaWYgKCFpc0NhbGxhYmxlKEl0ZXJhdG9yUHJvdG90eXBlW0lURVJBVE9SXSkpIHtcbiAgZGVmaW5lQnVpbHRJbihJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IsIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBJdGVyYXRvclByb3RvdHlwZTogSXRlcmF0b3JQcm90b3R5cGUsXG4gIEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6IEJVR0dZX1NBRkFSSV9JVEVSQVRPUlNcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHt9O1xuIiwidmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xuXG4vLyBgTGVuZ3RoT2ZBcnJheUxpa2VgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1sZW5ndGhvZmFycmF5bGlrZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiB0b0xlbmd0aChvYmoubGVuZ3RoKTtcbn07XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIENPTkZJR1VSQUJMRV9GVU5DVElPTl9OQU1FID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLW5hbWUnKS5DT05GSUdVUkFCTEU7XG52YXIgaW5zcGVjdFNvdXJjZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnNwZWN0LXNvdXJjZScpO1xudmFyIEludGVybmFsU3RhdGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKTtcblxudmFyIGVuZm9yY2VJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5lbmZvcmNlO1xudmFyIGdldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldDtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSBzYWZlXG52YXIgZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cbnZhciBDT05GSUdVUkFCTEVfTEVOR1RIID0gREVTQ1JJUFRPUlMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5KGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfSwgJ2xlbmd0aCcsIHsgdmFsdWU6IDggfSkubGVuZ3RoICE9PSA4O1xufSk7XG5cbnZhciBURU1QTEFURSA9IFN0cmluZyhTdHJpbmcpLnNwbGl0KCdTdHJpbmcnKTtcblxudmFyIG1ha2VCdWlsdEluID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodmFsdWUsIG5hbWUsIG9wdGlvbnMpIHtcbiAgaWYgKFN0cmluZyhuYW1lKS5zbGljZSgwLCA3KSA9PT0gJ1N5bWJvbCgnKSB7XG4gICAgbmFtZSA9ICdbJyArIFN0cmluZyhuYW1lKS5yZXBsYWNlKC9eU3ltYm9sXFwoKFteKV0qKVxcKS8sICckMScpICsgJ10nO1xuICB9XG4gIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZ2V0dGVyKSBuYW1lID0gJ2dldCAnICsgbmFtZTtcbiAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5zZXR0ZXIpIG5hbWUgPSAnc2V0ICcgKyBuYW1lO1xuICBpZiAoIWhhc093bih2YWx1ZSwgJ25hbWUnKSB8fCAoQ09ORklHVVJBQkxFX0ZVTkNUSU9OX05BTUUgJiYgdmFsdWUubmFtZSAhPT0gbmFtZSkpIHtcbiAgICBpZiAoREVTQ1JJUFRPUlMpIGRlZmluZVByb3BlcnR5KHZhbHVlLCAnbmFtZScsIHsgdmFsdWU6IG5hbWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICBlbHNlIHZhbHVlLm5hbWUgPSBuYW1lO1xuICB9XG4gIGlmIChDT05GSUdVUkFCTEVfTEVOR1RIICYmIG9wdGlvbnMgJiYgaGFzT3duKG9wdGlvbnMsICdhcml0eScpICYmIHZhbHVlLmxlbmd0aCAhPT0gb3B0aW9ucy5hcml0eSkge1xuICAgIGRlZmluZVByb3BlcnR5KHZhbHVlLCAnbGVuZ3RoJywgeyB2YWx1ZTogb3B0aW9ucy5hcml0eSB9KTtcbiAgfVxuICB0cnkge1xuICAgIGlmIChvcHRpb25zICYmIGhhc093bihvcHRpb25zLCAnY29uc3RydWN0b3InKSAmJiBvcHRpb25zLmNvbnN0cnVjdG9yKSB7XG4gICAgICBpZiAoREVTQ1JJUFRPUlMpIGRlZmluZVByb3BlcnR5KHZhbHVlLCAncHJvdG90eXBlJywgeyB3cml0YWJsZTogZmFsc2UgfSk7XG4gICAgLy8gaW4gVjggfiBDaHJvbWUgNTMsIHByb3RvdHlwZXMgb2Ygc29tZSBtZXRob2RzLCBsaWtlIGBBcnJheS5wcm90b3R5cGUudmFsdWVzYCwgYXJlIG5vbi13cml0YWJsZVxuICAgIH0gZWxzZSBpZiAodmFsdWUucHJvdG90eXBlKSB2YWx1ZS5wcm90b3R5cGUgPSB1bmRlZmluZWQ7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgdmFyIHN0YXRlID0gZW5mb3JjZUludGVybmFsU3RhdGUodmFsdWUpO1xuICBpZiAoIWhhc093bihzdGF0ZSwgJ3NvdXJjZScpKSB7XG4gICAgc3RhdGUuc291cmNlID0gVEVNUExBVEUuam9pbih0eXBlb2YgbmFtZSA9PSAnc3RyaW5nJyA/IG5hbWUgOiAnJyk7XG4gIH0gcmV0dXJuIHZhbHVlO1xufTtcblxuLy8gYWRkIGZha2UgRnVuY3Rpb24jdG9TdHJpbmcgZm9yIGNvcnJlY3Qgd29yayB3cmFwcGVkIG1ldGhvZHMgLyBjb25zdHJ1Y3RvcnMgd2l0aCBtZXRob2RzIGxpa2UgTG9EYXNoIGlzTmF0aXZlXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZXh0ZW5kLW5hdGl2ZSAtLSByZXF1aXJlZFxuRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nID0gbWFrZUJ1aWx0SW4oZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHJldHVybiBpc0NhbGxhYmxlKHRoaXMpICYmIGdldEludGVybmFsU3RhdGUodGhpcykuc291cmNlIHx8IGluc3BlY3RTb3VyY2UodGhpcyk7XG59LCAndG9TdHJpbmcnKTtcbiIsInZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcblxuLy8gYE1hdGgudHJ1bmNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1tYXRoLnRydW5jXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1tYXRoLXRydW5jIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gTWF0aC50cnVuYyB8fCBmdW5jdGlvbiB0cnVuYyh4KSB7XG4gIHZhciBuID0gK3g7XG4gIHJldHVybiAobiA+IDAgPyBmbG9vciA6IGNlaWwpKG4pO1xufTtcbiIsInZhciBOQVRJVkVfU1lNQk9MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS1zeW1ib2wnKTtcblxuLyogZXNsaW50LWRpc2FibGUgZXMteC9uby1zeW1ib2wgLS0gc2FmZSAqL1xubW9kdWxlLmV4cG9ydHMgPSBOQVRJVkVfU1lNQk9MICYmICEhU3ltYm9sWydmb3InXSAmJiAhIVN5bWJvbC5rZXlGb3I7XG4iLCIvKiBlc2xpbnQtZGlzYWJsZSBlcy14L25vLXN5bWJvbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZyAqL1xudmFyIFY4X1ZFUlNJT04gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLXY4LXZlcnNpb24nKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1vYmplY3QtZ2V0b3ducHJvcGVydHlzeW1ib2xzIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG5tb2R1bGUuZXhwb3J0cyA9ICEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyAmJiAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgc3ltYm9sID0gU3ltYm9sKCk7XG4gIC8vIENocm9tZSAzOCBTeW1ib2wgaGFzIGluY29ycmVjdCB0b1N0cmluZyBjb252ZXJzaW9uXG4gIC8vIGBnZXQtb3duLXByb3BlcnR5LXN5bWJvbHNgIHBvbHlmaWxsIHN5bWJvbHMgY29udmVydGVkIHRvIG9iamVjdCBhcmUgbm90IFN5bWJvbCBpbnN0YW5jZXNcbiAgcmV0dXJuICFTdHJpbmcoc3ltYm9sKSB8fCAhKE9iamVjdChzeW1ib2wpIGluc3RhbmNlb2YgU3ltYm9sKSB8fFxuICAgIC8vIENocm9tZSAzOC00MCBzeW1ib2xzIGFyZSBub3QgaW5oZXJpdGVkIGZyb20gRE9NIGNvbGxlY3Rpb25zIHByb3RvdHlwZXMgdG8gaW5zdGFuY2VzXG4gICAgIVN5bWJvbC5zaGFtICYmIFY4X1ZFUlNJT04gJiYgVjhfVkVSU0lPTiA8IDQxO1xufSk7XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBpbnNwZWN0U291cmNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luc3BlY3Qtc291cmNlJyk7XG5cbnZhciBXZWFrTWFwID0gZ2xvYmFsLldlYWtNYXA7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNDYWxsYWJsZShXZWFrTWFwKSAmJiAvbmF0aXZlIGNvZGUvLnRlc3QoaW5zcGVjdFNvdXJjZShXZWFrTWFwKSk7XG4iLCJ2YXIgaXNSZWdFeHAgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcmVnZXhwJyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXNSZWdFeHAoaXQpKSB7XG4gICAgdGhyb3cgJFR5cGVFcnJvcihcIlRoZSBtZXRob2QgZG9lc24ndCBhY2NlcHQgcmVndWxhciBleHByZXNzaW9uc1wiKTtcbiAgfSByZXR1cm4gaXQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBvYmplY3RLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1rZXlzJyk7XG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMnKTtcbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtcHJvcGVydHktaXMtZW51bWVyYWJsZScpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIEluZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5kZXhlZC1vYmplY3QnKTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWFzc2lnbiAtLSBzYWZlXG52YXIgJGFzc2lnbiA9IE9iamVjdC5hc3NpZ247XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBjb25jYXQgPSB1bmN1cnJ5VGhpcyhbXS5jb25jYXQpO1xuXG4vLyBgT2JqZWN0LmFzc2lnbmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5hc3NpZ25cbm1vZHVsZS5leHBvcnRzID0gISRhc3NpZ24gfHwgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBzaG91bGQgaGF2ZSBjb3JyZWN0IG9yZGVyIG9mIG9wZXJhdGlvbnMgKEVkZ2UgYnVnKVxuICBpZiAoREVTQ1JJUFRPUlMgJiYgJGFzc2lnbih7IGI6IDEgfSwgJGFzc2lnbihkZWZpbmVQcm9wZXJ0eSh7fSwgJ2EnLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGRlZmluZVByb3BlcnR5KHRoaXMsICdiJywge1xuICAgICAgICB2YWx1ZTogMyxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2VcbiAgICAgIH0pO1xuICAgIH1cbiAgfSksIHsgYjogMiB9KSkuYiAhPT0gMSkgcmV0dXJuIHRydWU7XG4gIC8vIHNob3VsZCB3b3JrIHdpdGggc3ltYm9scyBhbmQgc2hvdWxkIGhhdmUgZGV0ZXJtaW5pc3RpYyBwcm9wZXJ0eSBvcmRlciAoVjggYnVnKVxuICB2YXIgQSA9IHt9O1xuICB2YXIgQiA9IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1zeW1ib2wgLS0gc2FmZVxuICB2YXIgc3ltYm9sID0gU3ltYm9sKCk7XG4gIHZhciBhbHBoYWJldCA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdCc7XG4gIEFbc3ltYm9sXSA9IDc7XG4gIGFscGhhYmV0LnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChjaHIpIHsgQltjaHJdID0gY2hyOyB9KTtcbiAgcmV0dXJuICRhc3NpZ24oe30sIEEpW3N5bWJvbF0gIT0gNyB8fCBvYmplY3RLZXlzKCRhc3NpZ24oe30sIEIpKS5qb2luKCcnKSAhPSBhbHBoYWJldDtcbn0pID8gZnVuY3Rpb24gYXNzaWduKHRhcmdldCwgc291cmNlKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnMgLS0gcmVxdWlyZWQgZm9yIGAubGVuZ3RoYFxuICB2YXIgVCA9IHRvT2JqZWN0KHRhcmdldCk7XG4gIHZhciBhcmd1bWVudHNMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICB2YXIgaW5kZXggPSAxO1xuICB2YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzTW9kdWxlLmY7XG4gIHZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IHByb3BlcnR5SXNFbnVtZXJhYmxlTW9kdWxlLmY7XG4gIHdoaWxlIChhcmd1bWVudHNMZW5ndGggPiBpbmRleCkge1xuICAgIHZhciBTID0gSW5kZXhlZE9iamVjdChhcmd1bWVudHNbaW5kZXgrK10pO1xuICAgIHZhciBrZXlzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzID8gY29uY2F0KG9iamVjdEtleXMoUyksIGdldE93blByb3BlcnR5U3ltYm9scyhTKSkgOiBvYmplY3RLZXlzKFMpO1xuICAgIHZhciBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgICB2YXIgaiA9IDA7XG4gICAgdmFyIGtleTtcbiAgICB3aGlsZSAobGVuZ3RoID4gaikge1xuICAgICAga2V5ID0ga2V5c1tqKytdO1xuICAgICAgaWYgKCFERVNDUklQVE9SUyB8fCBjYWxsKHByb3BlcnR5SXNFbnVtZXJhYmxlLCBTLCBrZXkpKSBUW2tleV0gPSBTW2tleV07XG4gICAgfVxuICB9IHJldHVybiBUO1xufSA6ICRhc3NpZ247XG4iLCIvKiBnbG9iYWwgQWN0aXZlWE9iamVjdCAtLSBvbGQgSUUsIFdTSCAqL1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGRlZmluZVByb3BlcnRpZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0aWVzJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW51bS1idWcta2V5cycpO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcbnZhciBodG1sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2h0bWwnKTtcbnZhciBkb2N1bWVudENyZWF0ZUVsZW1lbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xuXG52YXIgR1QgPSAnPic7XG52YXIgTFQgPSAnPCc7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG52YXIgU0NSSVBUID0gJ3NjcmlwdCc7XG52YXIgSUVfUFJPVE8gPSBzaGFyZWRLZXkoJ0lFX1BST1RPJyk7XG5cbnZhciBFbXB0eUNvbnN0cnVjdG9yID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xuXG52YXIgc2NyaXB0VGFnID0gZnVuY3Rpb24gKGNvbnRlbnQpIHtcbiAgcmV0dXJuIExUICsgU0NSSVBUICsgR1QgKyBjb250ZW50ICsgTFQgKyAnLycgKyBTQ1JJUFQgKyBHVDtcbn07XG5cbi8vIENyZWF0ZSBvYmplY3Qgd2l0aCBmYWtlIGBudWxsYCBwcm90b3R5cGU6IHVzZSBBY3RpdmVYIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWCA9IGZ1bmN0aW9uIChhY3RpdmVYRG9jdW1lbnQpIHtcbiAgYWN0aXZlWERvY3VtZW50LndyaXRlKHNjcmlwdFRhZygnJykpO1xuICBhY3RpdmVYRG9jdW1lbnQuY2xvc2UoKTtcbiAgdmFyIHRlbXAgPSBhY3RpdmVYRG9jdW1lbnQucGFyZW50V2luZG93Lk9iamVjdDtcbiAgYWN0aXZlWERvY3VtZW50ID0gbnVsbDsgLy8gYXZvaWQgbWVtb3J5IGxlYWtcbiAgcmV0dXJuIHRlbXA7XG59O1xuXG4vLyBDcmVhdGUgb2JqZWN0IHdpdGggZmFrZSBgbnVsbGAgcHJvdG90eXBlOiB1c2UgaWZyYW1lIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgTnVsbFByb3RvT2JqZWN0VmlhSUZyYW1lID0gZnVuY3Rpb24gKCkge1xuICAvLyBUaHJhc2gsIHdhc3RlIGFuZCBzb2RvbXk6IElFIEdDIGJ1Z1xuICB2YXIgaWZyYW1lID0gZG9jdW1lbnRDcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgdmFyIEpTID0gJ2phdmEnICsgU0NSSVBUICsgJzonO1xuICB2YXIgaWZyYW1lRG9jdW1lbnQ7XG4gIGlmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICBodG1sLmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy80NzVcbiAgaWZyYW1lLnNyYyA9IFN0cmluZyhKUyk7XG4gIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgaWZyYW1lRG9jdW1lbnQud3JpdGUoc2NyaXB0VGFnKCdkb2N1bWVudC5GPU9iamVjdCcpKTtcbiAgaWZyYW1lRG9jdW1lbnQuY2xvc2UoKTtcbiAgcmV0dXJuIGlmcmFtZURvY3VtZW50LkY7XG59O1xuXG4vLyBDaGVjayBmb3IgZG9jdW1lbnQuZG9tYWluIGFuZCBhY3RpdmUgeCBzdXBwb3J0XG4vLyBObyBuZWVkIHRvIHVzZSBhY3RpdmUgeCBhcHByb2FjaCB3aGVuIGRvY3VtZW50LmRvbWFpbiBpcyBub3Qgc2V0XG4vLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2VzLXNoaW1zL2VzNS1zaGltL2lzc3Vlcy8xNTBcbi8vIHZhcmlhdGlvbiBvZiBodHRwczovL2dpdGh1Yi5jb20va2l0Y2FtYnJpZGdlL2VzNS1zaGltL2NvbW1pdC80ZjczOGFjMDY2MzQ2XG4vLyBhdm9pZCBJRSBHQyBidWdcbnZhciBhY3RpdmVYRG9jdW1lbnQ7XG52YXIgTnVsbFByb3RvT2JqZWN0ID0gZnVuY3Rpb24gKCkge1xuICB0cnkge1xuICAgIGFjdGl2ZVhEb2N1bWVudCA9IG5ldyBBY3RpdmVYT2JqZWN0KCdodG1sZmlsZScpO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBpZ25vcmUgKi8gfVxuICBOdWxsUHJvdG9PYmplY3QgPSB0eXBlb2YgZG9jdW1lbnQgIT0gJ3VuZGVmaW5lZCdcbiAgICA/IGRvY3VtZW50LmRvbWFpbiAmJiBhY3RpdmVYRG9jdW1lbnRcbiAgICAgID8gTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhY3RpdmVYRG9jdW1lbnQpIC8vIG9sZCBJRVxuICAgICAgOiBOdWxsUHJvdG9PYmplY3RWaWFJRnJhbWUoKVxuICAgIDogTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhY3RpdmVYRG9jdW1lbnQpOyAvLyBXU0hcbiAgdmFyIGxlbmd0aCA9IGVudW1CdWdLZXlzLmxlbmd0aDtcbiAgd2hpbGUgKGxlbmd0aC0tKSBkZWxldGUgTnVsbFByb3RvT2JqZWN0W1BST1RPVFlQRV1bZW51bUJ1Z0tleXNbbGVuZ3RoXV07XG4gIHJldHVybiBOdWxsUHJvdG9PYmplY3QoKTtcbn07XG5cbmhpZGRlbktleXNbSUVfUFJPVE9dID0gdHJ1ZTtcblxuLy8gYE9iamVjdC5jcmVhdGVgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuY3JlYXRlXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1vYmplY3QtY3JlYXRlIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmNyZWF0ZSB8fCBmdW5jdGlvbiBjcmVhdGUoTywgUHJvcGVydGllcykge1xuICB2YXIgcmVzdWx0O1xuICBpZiAoTyAhPT0gbnVsbCkge1xuICAgIEVtcHR5Q29uc3RydWN0b3JbUFJPVE9UWVBFXSA9IGFuT2JqZWN0KE8pO1xuICAgIHJlc3VsdCA9IG5ldyBFbXB0eUNvbnN0cnVjdG9yKCk7XG4gICAgRW1wdHlDb25zdHJ1Y3RvcltQUk9UT1RZUEVdID0gbnVsbDtcbiAgICAvLyBhZGQgXCJfX3Byb3RvX19cIiBmb3IgT2JqZWN0LmdldFByb3RvdHlwZU9mIHBvbHlmaWxsXG4gICAgcmVzdWx0W0lFX1BST1RPXSA9IE87XG4gIH0gZWxzZSByZXN1bHQgPSBOdWxsUHJvdG9PYmplY3QoKTtcbiAgcmV0dXJuIFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCA/IHJlc3VsdCA6IGRlZmluZVByb3BlcnRpZXNNb2R1bGUuZihyZXN1bHQsIFByb3BlcnRpZXMpO1xufTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIFY4X1BST1RPVFlQRV9ERUZJTkVfQlVHID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3Y4LXByb3RvdHlwZS1kZWZpbmUtYnVnJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIG9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMnKTtcblxuLy8gYE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnRpZXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0aWVzIC0tIHNhZmVcbmV4cG9ydHMuZiA9IERFU0NSSVBUT1JTICYmICFWOF9QUk9UT1RZUEVfREVGSU5FX0JVRyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzIDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICB2YXIgcHJvcHMgPSB0b0luZGV4ZWRPYmplY3QoUHJvcGVydGllcyk7XG4gIHZhciBrZXlzID0gb2JqZWN0S2V5cyhQcm9wZXJ0aWVzKTtcbiAgdmFyIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIga2V5O1xuICB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIGRlZmluZVByb3BlcnR5TW9kdWxlLmYoTywga2V5ID0ga2V5c1tpbmRleCsrXSwgcHJvcHNba2V5XSk7XG4gIHJldHVybiBPO1xufTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2llOC1kb20tZGVmaW5lJyk7XG52YXIgVjhfUFJPVE9UWVBFX0RFRklORV9CVUcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdjgtcHJvdG90eXBlLWRlZmluZS1idWcnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciB0b1Byb3BlcnR5S2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByb3BlcnR5LWtleScpO1xuXG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSBzYWZlXG52YXIgJGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG52YXIgJGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG52YXIgRU5VTUVSQUJMRSA9ICdlbnVtZXJhYmxlJztcbnZhciBDT05GSUdVUkFCTEUgPSAnY29uZmlndXJhYmxlJztcbnZhciBXUklUQUJMRSA9ICd3cml0YWJsZSc7XG5cbi8vIGBPYmplY3QuZGVmaW5lUHJvcGVydHlgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZGVmaW5lcHJvcGVydHlcbmV4cG9ydHMuZiA9IERFU0NSSVBUT1JTID8gVjhfUFJPVE9UWVBFX0RFRklORV9CVUcgPyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9Qcm9wZXJ0eUtleShQKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmICh0eXBlb2YgTyA9PT0gJ2Z1bmN0aW9uJyAmJiBQID09PSAncHJvdG90eXBlJyAmJiAndmFsdWUnIGluIEF0dHJpYnV0ZXMgJiYgV1JJVEFCTEUgaW4gQXR0cmlidXRlcyAmJiAhQXR0cmlidXRlc1tXUklUQUJMRV0pIHtcbiAgICB2YXIgY3VycmVudCA9ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCk7XG4gICAgaWYgKGN1cnJlbnQgJiYgY3VycmVudFtXUklUQUJMRV0pIHtcbiAgICAgIE9bUF0gPSBBdHRyaWJ1dGVzLnZhbHVlO1xuICAgICAgQXR0cmlidXRlcyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiBDT05GSUdVUkFCTEUgaW4gQXR0cmlidXRlcyA/IEF0dHJpYnV0ZXNbQ09ORklHVVJBQkxFXSA6IGN1cnJlbnRbQ09ORklHVVJBQkxFXSxcbiAgICAgICAgZW51bWVyYWJsZTogRU5VTUVSQUJMRSBpbiBBdHRyaWJ1dGVzID8gQXR0cmlidXRlc1tFTlVNRVJBQkxFXSA6IGN1cnJlbnRbRU5VTUVSQUJMRV0sXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZVxuICAgICAgfTtcbiAgICB9XG4gIH0gcmV0dXJuICRkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKTtcbn0gOiAkZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9Qcm9wZXJ0eUtleShQKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmIChJRThfRE9NX0RFRklORSkgdHJ5IHtcbiAgICByZXR1cm4gJGRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIGlmICgnZ2V0JyBpbiBBdHRyaWJ1dGVzIHx8ICdzZXQnIGluIEF0dHJpYnV0ZXMpIHRocm93ICRUeXBlRXJyb3IoJ0FjY2Vzc29ycyBub3Qgc3VwcG9ydGVkJyk7XG4gIGlmICgndmFsdWUnIGluIEF0dHJpYnV0ZXMpIE9bUF0gPSBBdHRyaWJ1dGVzLnZhbHVlO1xuICByZXR1cm4gTztcbn07XG4iLCJ2YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtcHJvcGVydHktaXMtZW51bWVyYWJsZScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvUHJvcGVydHlLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJvcGVydHkta2V5Jyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pZTgtZG9tLWRlZmluZScpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1vYmplY3QtZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yIC0tIHNhZmVcbnZhciAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxuLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yXG5leHBvcnRzLmYgPSBERVNDUklQVE9SUyA/ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCkge1xuICBPID0gdG9JbmRleGVkT2JqZWN0KE8pO1xuICBQID0gdG9Qcm9wZXJ0eUtleShQKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIGlmIChoYXNPd24oTywgUCkpIHJldHVybiBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoIWNhbGwocHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUuZiwgTywgUCksIE9bUF0pO1xufTtcbiIsIi8qIGVzbGludC1kaXNhYmxlIGVzLXgvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5bmFtZXMgLS0gc2FmZSAqL1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciAkZ2V0T3duUHJvcGVydHlOYW1lcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1uYW1lcycpLmY7XG52YXIgYXJyYXlTbGljZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zbGljZS1zaW1wbGUnKTtcblxudmFyIHdpbmRvd05hbWVzID0gdHlwZW9mIHdpbmRvdyA9PSAnb2JqZWN0JyAmJiB3aW5kb3cgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXNcbiAgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh3aW5kb3cpIDogW107XG5cbnZhciBnZXRXaW5kb3dOYW1lcyA9IGZ1bmN0aW9uIChpdCkge1xuICB0cnkge1xuICAgIHJldHVybiAkZ2V0T3duUHJvcGVydHlOYW1lcyhpdCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIGFycmF5U2xpY2Uod2luZG93TmFtZXMpO1xuICB9XG59O1xuXG4vLyBmYWxsYmFjayBmb3IgSUUxMSBidWdneSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB3aXRoIGlmcmFtZSBhbmQgd2luZG93XG5tb2R1bGUuZXhwb3J0cy5mID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhpdCkge1xuICByZXR1cm4gd2luZG93TmFtZXMgJiYgY2xhc3NvZihpdCkgPT0gJ1dpbmRvdydcbiAgICA/IGdldFdpbmRvd05hbWVzKGl0KVxuICAgIDogJGdldE93blByb3BlcnR5TmFtZXModG9JbmRleGVkT2JqZWN0KGl0KSk7XG59O1xuIiwidmFyIGludGVybmFsT2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cy1pbnRlcm5hbCcpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VudW0tYnVnLWtleXMnKTtcblxudmFyIGhpZGRlbktleXMgPSBlbnVtQnVnS2V5cy5jb25jYXQoJ2xlbmd0aCcsICdwcm90b3R5cGUnKTtcblxuLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5bmFtZXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eW5hbWVzIC0tIHNhZmVcbmV4cG9ydHMuZiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uIGdldE93blByb3BlcnR5TmFtZXMoTykge1xuICByZXR1cm4gaW50ZXJuYWxPYmplY3RLZXlzKE8sIGhpZGRlbktleXMpO1xufTtcbiIsIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eXN5bWJvbHMgLS0gc2FmZVxuZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbiIsInZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xudmFyIENPUlJFQ1RfUFJPVE9UWVBFX0dFVFRFUiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb3JyZWN0LXByb3RvdHlwZS1nZXR0ZXInKTtcblxudmFyIElFX1BST1RPID0gc2hhcmVkS2V5KCdJRV9QUk9UTycpO1xudmFyICRPYmplY3QgPSBPYmplY3Q7XG52YXIgT2JqZWN0UHJvdG90eXBlID0gJE9iamVjdC5wcm90b3R5cGU7XG5cbi8vIGBPYmplY3QuZ2V0UHJvdG90eXBlT2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0cHJvdG90eXBlb2Zcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1nZXRwcm90b3R5cGVvZiAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IENPUlJFQ1RfUFJPVE9UWVBFX0dFVFRFUiA/ICRPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiAoTykge1xuICB2YXIgb2JqZWN0ID0gdG9PYmplY3QoTyk7XG4gIGlmIChoYXNPd24ob2JqZWN0LCBJRV9QUk9UTykpIHJldHVybiBvYmplY3RbSUVfUFJPVE9dO1xuICB2YXIgY29uc3RydWN0b3IgPSBvYmplY3QuY29uc3RydWN0b3I7XG4gIGlmIChpc0NhbGxhYmxlKGNvbnN0cnVjdG9yKSAmJiBvYmplY3QgaW5zdGFuY2VvZiBjb25zdHJ1Y3Rvcikge1xuICAgIHJldHVybiBjb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIH0gcmV0dXJuIG9iamVjdCBpbnN0YW5jZW9mICRPYmplY3QgPyBPYmplY3RQcm90b3R5cGUgOiBudWxsO1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciBBUlJBWV9CVUZGRVJfTk9OX0VYVEVOU0lCTEUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLW5vbi1leHRlbnNpYmxlJyk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1pc2V4dGVuc2libGUgLS0gc2FmZVxudmFyICRpc0V4dGVuc2libGUgPSBPYmplY3QuaXNFeHRlbnNpYmxlO1xudmFyIEZBSUxTX09OX1BSSU1JVElWRVMgPSBmYWlscyhmdW5jdGlvbiAoKSB7ICRpc0V4dGVuc2libGUoMSk7IH0pO1xuXG4vLyBgT2JqZWN0LmlzRXh0ZW5zaWJsZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5pc2V4dGVuc2libGVcbm1vZHVsZS5leHBvcnRzID0gKEZBSUxTX09OX1BSSU1JVElWRVMgfHwgQVJSQVlfQlVGRkVSX05PTl9FWFRFTlNJQkxFKSA/IGZ1bmN0aW9uIGlzRXh0ZW5zaWJsZShpdCkge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIGZhbHNlO1xuICBpZiAoQVJSQVlfQlVGRkVSX05PTl9FWFRFTlNJQkxFICYmIGNsYXNzb2YoaXQpID09ICdBcnJheUJ1ZmZlcicpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuICRpc0V4dGVuc2libGUgPyAkaXNFeHRlbnNpYmxlKGl0KSA6IHRydWU7XG59IDogJGlzRXh0ZW5zaWJsZTtcbiIsInZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSB1bmN1cnJ5VGhpcyh7fS5pc1Byb3RvdHlwZU9mKTtcbiIsInZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGluZGV4T2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMnKS5pbmRleE9mO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcblxudmFyIHB1c2ggPSB1bmN1cnJ5VGhpcyhbXS5wdXNoKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgIWhhc093bihoaWRkZW5LZXlzLCBrZXkpICYmIGhhc093bihPLCBrZXkpICYmIHB1c2gocmVzdWx0LCBrZXkpO1xuICAvLyBEb24ndCBlbnVtIGJ1ZyAmIGhpZGRlbiBrZXlzXG4gIHdoaWxlIChuYW1lcy5sZW5ndGggPiBpKSBpZiAoaGFzT3duKE8sIGtleSA9IG5hbWVzW2krK10pKSB7XG4gICAgfmluZGV4T2YocmVzdWx0LCBrZXkpIHx8IHB1c2gocmVzdWx0LCBrZXkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuIiwidmFyIGludGVybmFsT2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cy1pbnRlcm5hbCcpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VudW0tYnVnLWtleXMnKTtcblxuLy8gYE9iamVjdC5rZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmtleXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1rZXlzIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmtleXMgfHwgZnVuY3Rpb24ga2V5cyhPKSB7XG4gIHJldHVybiBpbnRlcm5hbE9iamVjdEtleXMoTywgZW51bUJ1Z0tleXMpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkcHJvcGVydHlJc0VudW1lcmFibGUgPSB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3IgLS0gc2FmZVxudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbi8vIE5hc2hvcm4gfiBKREs4IGJ1Z1xudmFyIE5BU0hPUk5fQlVHID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yICYmICEkcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh7IDE6IDIgfSwgMSk7XG5cbi8vIGBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eWlzZW51bWVyYWJsZVxuZXhwb3J0cy5mID0gTkFTSE9STl9CVUcgPyBmdW5jdGlvbiBwcm9wZXJ0eUlzRW51bWVyYWJsZShWKSB7XG4gIHZhciBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsIFYpO1xuICByZXR1cm4gISFkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZTtcbn0gOiAkcHJvcGVydHlJc0VudW1lcmFibGU7XG4iLCIvKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90byAtLSBzYWZlICovXG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgYVBvc3NpYmxlUHJvdG90eXBlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtcG9zc2libGUtcHJvdG90eXBlJyk7XG5cbi8vIGBPYmplY3Quc2V0UHJvdG90eXBlT2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3Quc2V0cHJvdG90eXBlb2Zcbi8vIFdvcmtzIHdpdGggX19wcm90b19fIG9ubHkuIE9sZCB2OCBjYW4ndCB3b3JrIHdpdGggbnVsbCBwcm90byBvYmplY3RzLlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LXNldHByb3RvdHlwZW9mIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8ICgnX19wcm90b19fJyBpbiB7fSA/IGZ1bmN0aW9uICgpIHtcbiAgdmFyIENPUlJFQ1RfU0VUVEVSID0gZmFsc2U7XG4gIHZhciB0ZXN0ID0ge307XG4gIHZhciBzZXR0ZXI7XG4gIHRyeSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG4gICAgc2V0dGVyID0gdW5jdXJyeVRoaXMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCAnX19wcm90b19fJykuc2V0KTtcbiAgICBzZXR0ZXIodGVzdCwgW10pO1xuICAgIENPUlJFQ1RfU0VUVEVSID0gdGVzdCBpbnN0YW5jZW9mIEFycmF5O1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBmdW5jdGlvbiBzZXRQcm90b3R5cGVPZihPLCBwcm90bykge1xuICAgIGFuT2JqZWN0KE8pO1xuICAgIGFQb3NzaWJsZVByb3RvdHlwZShwcm90byk7XG4gICAgaWYgKENPUlJFQ1RfU0VUVEVSKSBzZXR0ZXIoTywgcHJvdG8pO1xuICAgIGVsc2UgTy5fX3Byb3RvX18gPSBwcm90bztcbiAgICByZXR1cm4gTztcbiAgfTtcbn0oKSA6IHVuZGVmaW5lZCk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgVE9fU1RSSU5HX1RBR19TVVBQT1JUID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydCcpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xuXG4vLyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gVE9fU1RSSU5HX1RBR19TVVBQT1JUID8ge30udG9TdHJpbmcgOiBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgcmV0dXJuICdbb2JqZWN0ICcgKyBjbGFzc29mKHRoaXMpICsgJ10nO1xufTtcbiIsInZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG4vLyBgT3JkaW5hcnlUb1ByaW1pdGl2ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9yZGluYXJ5dG9wcmltaXRpdmVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGlucHV0LCBwcmVmKSB7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAocHJlZiA9PT0gJ3N0cmluZycgJiYgaXNDYWxsYWJsZShmbiA9IGlucHV0LnRvU3RyaW5nKSAmJiAhaXNPYmplY3QodmFsID0gY2FsbChmbiwgaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKGlzQ2FsbGFibGUoZm4gPSBpbnB1dC52YWx1ZU9mKSAmJiAhaXNPYmplY3QodmFsID0gY2FsbChmbiwgaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHByZWYgIT09ICdzdHJpbmcnICYmIGlzQ2FsbGFibGUoZm4gPSBpbnB1dC50b1N0cmluZykgJiYgIWlzT2JqZWN0KHZhbCA9IGNhbGwoZm4sIGlucHV0KSkpIHJldHVybiB2YWw7XG4gIHRocm93ICRUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG59O1xuIiwidmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgZ2V0T3duUHJvcGVydHlOYW1lc01vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1uYW1lcycpO1xudmFyIGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1zeW1ib2xzJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG5cbnZhciBjb25jYXQgPSB1bmN1cnJ5VGhpcyhbXS5jb25jYXQpO1xuXG4vLyBhbGwgb2JqZWN0IGtleXMsIGluY2x1ZGVzIG5vbi1lbnVtZXJhYmxlIGFuZCBzeW1ib2xzXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW4oJ1JlZmxlY3QnLCAnb3duS2V5cycpIHx8IGZ1bmN0aW9uIG93bktleXMoaXQpIHtcbiAgdmFyIGtleXMgPSBnZXRPd25Qcm9wZXJ0eU5hbWVzTW9kdWxlLmYoYW5PYmplY3QoaXQpKTtcbiAgdmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZS5mO1xuICByZXR1cm4gZ2V0T3duUHJvcGVydHlTeW1ib2xzID8gY29uY2F0KGtleXMsIGdldE93blByb3BlcnR5U3ltYm9scyhpdCkpIDoga2V5cztcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdsb2JhbDtcbiIsInZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xudmFyIHJlZ2V4cEV4ZWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBSZWdFeHBFeGVjYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwZXhlY1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoUiwgUykge1xuICB2YXIgZXhlYyA9IFIuZXhlYztcbiAgaWYgKGlzQ2FsbGFibGUoZXhlYykpIHtcbiAgICB2YXIgcmVzdWx0ID0gY2FsbChleGVjLCBSLCBTKTtcbiAgICBpZiAocmVzdWx0ICE9PSBudWxsKSBhbk9iamVjdChyZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgaWYgKGNsYXNzb2YoUikgPT09ICdSZWdFeHAnKSByZXR1cm4gY2FsbChyZWdleHBFeGVjLCBSLCBTKTtcbiAgdGhyb3cgJFR5cGVFcnJvcignUmVnRXhwI2V4ZWMgY2FsbGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlcicpO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIHJlZ2V4cC9uby1lbXB0eS1jYXB0dXJpbmctZ3JvdXAsIHJlZ2V4cC9uby1lbXB0eS1ncm91cCwgcmVnZXhwL25vLWxhenktZW5kcyAtLSB0ZXN0aW5nICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWdleHAvbm8tdXNlbGVzcy1xdWFudGlmaWVyIC0tIHRlc3RpbmcgKi9cbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcbnZhciByZWdleHBGbGFncyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZmxhZ3MnKTtcbnZhciBzdGlja3lIZWxwZXJzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1zdGlja3ktaGVscGVycycpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZScpO1xudmFyIGdldEludGVybmFsU3RhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKS5nZXQ7XG52YXIgVU5TVVBQT1JURURfRE9UX0FMTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtdW5zdXBwb3J0ZWQtZG90LWFsbCcpO1xudmFyIFVOU1VQUE9SVEVEX05DRyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtdW5zdXBwb3J0ZWQtbmNnJyk7XG5cbnZhciBuYXRpdmVSZXBsYWNlID0gc2hhcmVkKCduYXRpdmUtc3RyaW5nLXJlcGxhY2UnLCBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UpO1xudmFyIG5hdGl2ZUV4ZWMgPSBSZWdFeHAucHJvdG90eXBlLmV4ZWM7XG52YXIgcGF0Y2hlZEV4ZWMgPSBuYXRpdmVFeGVjO1xudmFyIGNoYXJBdCA9IHVuY3VycnlUaGlzKCcnLmNoYXJBdCk7XG52YXIgaW5kZXhPZiA9IHVuY3VycnlUaGlzKCcnLmluZGV4T2YpO1xudmFyIHJlcGxhY2UgPSB1bmN1cnJ5VGhpcygnJy5yZXBsYWNlKTtcbnZhciBzdHJpbmdTbGljZSA9IHVuY3VycnlUaGlzKCcnLnNsaWNlKTtcblxudmFyIFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORyA9IChmdW5jdGlvbiAoKSB7XG4gIHZhciByZTEgPSAvYS87XG4gIHZhciByZTIgPSAvYiovZztcbiAgY2FsbChuYXRpdmVFeGVjLCByZTEsICdhJyk7XG4gIGNhbGwobmF0aXZlRXhlYywgcmUyLCAnYScpO1xuICByZXR1cm4gcmUxLmxhc3RJbmRleCAhPT0gMCB8fCByZTIubGFzdEluZGV4ICE9PSAwO1xufSkoKTtcblxudmFyIFVOU1VQUE9SVEVEX1kgPSBzdGlja3lIZWxwZXJzLkJST0tFTl9DQVJFVDtcblxuLy8gbm9ucGFydGljaXBhdGluZyBjYXB0dXJpbmcgZ3JvdXAsIGNvcGllZCBmcm9tIGVzNS1zaGltJ3MgU3RyaW5nI3NwbGl0IHBhdGNoLlxudmFyIE5QQ0dfSU5DTFVERUQgPSAvKCk/Py8uZXhlYygnJylbMV0gIT09IHVuZGVmaW5lZDtcblxudmFyIFBBVENIID0gVVBEQVRFU19MQVNUX0lOREVYX1dST05HIHx8IE5QQ0dfSU5DTFVERUQgfHwgVU5TVVBQT1JURURfWSB8fCBVTlNVUFBPUlRFRF9ET1RfQUxMIHx8IFVOU1VQUE9SVEVEX05DRztcblxuaWYgKFBBVENIKSB7XG4gIHBhdGNoZWRFeGVjID0gZnVuY3Rpb24gZXhlYyhzdHJpbmcpIHtcbiAgICB2YXIgcmUgPSB0aGlzO1xuICAgIHZhciBzdGF0ZSA9IGdldEludGVybmFsU3RhdGUocmUpO1xuICAgIHZhciBzdHIgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgIHZhciByYXcgPSBzdGF0ZS5yYXc7XG4gICAgdmFyIHJlc3VsdCwgcmVDb3B5LCBsYXN0SW5kZXgsIG1hdGNoLCBpLCBvYmplY3QsIGdyb3VwO1xuXG4gICAgaWYgKHJhdykge1xuICAgICAgcmF3Lmxhc3RJbmRleCA9IHJlLmxhc3RJbmRleDtcbiAgICAgIHJlc3VsdCA9IGNhbGwocGF0Y2hlZEV4ZWMsIHJhdywgc3RyKTtcbiAgICAgIHJlLmxhc3RJbmRleCA9IHJhdy5sYXN0SW5kZXg7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHZhciBncm91cHMgPSBzdGF0ZS5ncm91cHM7XG4gICAgdmFyIHN0aWNreSA9IFVOU1VQUE9SVEVEX1kgJiYgcmUuc3RpY2t5O1xuICAgIHZhciBmbGFncyA9IGNhbGwocmVnZXhwRmxhZ3MsIHJlKTtcbiAgICB2YXIgc291cmNlID0gcmUuc291cmNlO1xuICAgIHZhciBjaGFyc0FkZGVkID0gMDtcbiAgICB2YXIgc3RyQ29weSA9IHN0cjtcblxuICAgIGlmIChzdGlja3kpIHtcbiAgICAgIGZsYWdzID0gcmVwbGFjZShmbGFncywgJ3knLCAnJyk7XG4gICAgICBpZiAoaW5kZXhPZihmbGFncywgJ2cnKSA9PT0gLTEpIHtcbiAgICAgICAgZmxhZ3MgKz0gJ2cnO1xuICAgICAgfVxuXG4gICAgICBzdHJDb3B5ID0gc3RyaW5nU2xpY2Uoc3RyLCByZS5sYXN0SW5kZXgpO1xuICAgICAgLy8gU3VwcG9ydCBhbmNob3JlZCBzdGlja3kgYmVoYXZpb3IuXG4gICAgICBpZiAocmUubGFzdEluZGV4ID4gMCAmJiAoIXJlLm11bHRpbGluZSB8fCByZS5tdWx0aWxpbmUgJiYgY2hhckF0KHN0ciwgcmUubGFzdEluZGV4IC0gMSkgIT09ICdcXG4nKSkge1xuICAgICAgICBzb3VyY2UgPSAnKD86ICcgKyBzb3VyY2UgKyAnKSc7XG4gICAgICAgIHN0ckNvcHkgPSAnICcgKyBzdHJDb3B5O1xuICAgICAgICBjaGFyc0FkZGVkKys7XG4gICAgICB9XG4gICAgICAvLyBeKD8gKyByeCArICkgaXMgbmVlZGVkLCBpbiBjb21iaW5hdGlvbiB3aXRoIHNvbWUgc3RyIHNsaWNpbmcsIHRvXG4gICAgICAvLyBzaW11bGF0ZSB0aGUgJ3knIGZsYWcuXG4gICAgICByZUNvcHkgPSBuZXcgUmVnRXhwKCdeKD86JyArIHNvdXJjZSArICcpJywgZmxhZ3MpO1xuICAgIH1cblxuICAgIGlmIChOUENHX0lOQ0xVREVEKSB7XG4gICAgICByZUNvcHkgPSBuZXcgUmVnRXhwKCdeJyArIHNvdXJjZSArICckKD8hXFxcXHMpJywgZmxhZ3MpO1xuICAgIH1cbiAgICBpZiAoVVBEQVRFU19MQVNUX0lOREVYX1dST05HKSBsYXN0SW5kZXggPSByZS5sYXN0SW5kZXg7XG5cbiAgICBtYXRjaCA9IGNhbGwobmF0aXZlRXhlYywgc3RpY2t5ID8gcmVDb3B5IDogcmUsIHN0ckNvcHkpO1xuXG4gICAgaWYgKHN0aWNreSkge1xuICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgIG1hdGNoLmlucHV0ID0gc3RyaW5nU2xpY2UobWF0Y2guaW5wdXQsIGNoYXJzQWRkZWQpO1xuICAgICAgICBtYXRjaFswXSA9IHN0cmluZ1NsaWNlKG1hdGNoWzBdLCBjaGFyc0FkZGVkKTtcbiAgICAgICAgbWF0Y2guaW5kZXggPSByZS5sYXN0SW5kZXg7XG4gICAgICAgIHJlLmxhc3RJbmRleCArPSBtYXRjaFswXS5sZW5ndGg7XG4gICAgICB9IGVsc2UgcmUubGFzdEluZGV4ID0gMDtcbiAgICB9IGVsc2UgaWYgKFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORyAmJiBtYXRjaCkge1xuICAgICAgcmUubGFzdEluZGV4ID0gcmUuZ2xvYmFsID8gbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGggOiBsYXN0SW5kZXg7XG4gICAgfVxuICAgIGlmIChOUENHX0lOQ0xVREVEICYmIG1hdGNoICYmIG1hdGNoLmxlbmd0aCA+IDEpIHtcbiAgICAgIC8vIEZpeCBicm93c2VycyB3aG9zZSBgZXhlY2AgbWV0aG9kcyBkb24ndCBjb25zaXN0ZW50bHkgcmV0dXJuIGB1bmRlZmluZWRgXG4gICAgICAvLyBmb3IgTlBDRywgbGlrZSBJRTguIE5PVEU6IFRoaXMgZG9lc24ndCB3b3JrIGZvciAvKC4/KT8vXG4gICAgICBjYWxsKG5hdGl2ZVJlcGxhY2UsIG1hdGNoWzBdLCByZUNvcHksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yIChpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGggLSAyOyBpKyspIHtcbiAgICAgICAgICBpZiAoYXJndW1lbnRzW2ldID09PSB1bmRlZmluZWQpIG1hdGNoW2ldID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAobWF0Y2ggJiYgZ3JvdXBzKSB7XG4gICAgICBtYXRjaC5ncm91cHMgPSBvYmplY3QgPSBjcmVhdGUobnVsbCk7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgZ3JvdXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGdyb3VwID0gZ3JvdXBzW2ldO1xuICAgICAgICBvYmplY3RbZ3JvdXBbMF1dID0gbWF0Y2hbZ3JvdXBbMV1dO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYXRjaDtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwYXRjaGVkRXhlYztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcblxuLy8gYFJlZ0V4cC5wcm90b3R5cGUuZmxhZ3NgIGdldHRlciBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXQtcmVnZXhwLnByb3RvdHlwZS5mbGFnc1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciB0aGF0ID0gYW5PYmplY3QodGhpcyk7XG4gIHZhciByZXN1bHQgPSAnJztcbiAgaWYgKHRoYXQuaGFzSW5kaWNlcykgcmVzdWx0ICs9ICdkJztcbiAgaWYgKHRoYXQuZ2xvYmFsKSByZXN1bHQgKz0gJ2cnO1xuICBpZiAodGhhdC5pZ25vcmVDYXNlKSByZXN1bHQgKz0gJ2knO1xuICBpZiAodGhhdC5tdWx0aWxpbmUpIHJlc3VsdCArPSAnbSc7XG4gIGlmICh0aGF0LmRvdEFsbCkgcmVzdWx0ICs9ICdzJztcbiAgaWYgKHRoYXQudW5pY29kZSkgcmVzdWx0ICs9ICd1JztcbiAgaWYgKHRoYXQudW5pY29kZVNldHMpIHJlc3VsdCArPSAndic7XG4gIGlmICh0aGF0LnN0aWNreSkgcmVzdWx0ICs9ICd5JztcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG5cbi8vIGJhYmVsLW1pbmlmeSBhbmQgQ2xvc3VyZSBDb21waWxlciB0cmFuc3BpbGVzIFJlZ0V4cCgnYScsICd5JykgLT4gL2EveSBhbmQgaXQgY2F1c2VzIFN5bnRheEVycm9yXG52YXIgJFJlZ0V4cCA9IGdsb2JhbC5SZWdFeHA7XG5cbnZhciBVTlNVUFBPUlRFRF9ZID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgcmUgPSAkUmVnRXhwKCdhJywgJ3knKTtcbiAgcmUubGFzdEluZGV4ID0gMjtcbiAgcmV0dXJuIHJlLmV4ZWMoJ2FiY2QnKSAhPSBudWxsO1xufSk7XG5cbi8vIFVDIEJyb3dzZXIgYnVnXG4vLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvMTAwOFxudmFyIE1JU1NFRF9TVElDS1kgPSBVTlNVUFBPUlRFRF9ZIHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICEkUmVnRXhwKCdhJywgJ3knKS5zdGlja3k7XG59KTtcblxudmFyIEJST0tFTl9DQVJFVCA9IFVOU1VQUE9SVEVEX1kgfHwgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM2ODdcbiAgdmFyIHJlID0gJFJlZ0V4cCgnXnInLCAnZ3knKTtcbiAgcmUubGFzdEluZGV4ID0gMjtcbiAgcmV0dXJuIHJlLmV4ZWMoJ3N0cicpICE9IG51bGw7XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIEJST0tFTl9DQVJFVDogQlJPS0VOX0NBUkVULFxuICBNSVNTRURfU1RJQ0tZOiBNSVNTRURfU1RJQ0tZLFxuICBVTlNVUFBPUlRFRF9ZOiBVTlNVUFBPUlRFRF9ZXG59O1xuIiwidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xuXG4vLyBiYWJlbC1taW5pZnkgYW5kIENsb3N1cmUgQ29tcGlsZXIgdHJhbnNwaWxlcyBSZWdFeHAoJy4nLCAncycpIC0+IC8uL3MgYW5kIGl0IGNhdXNlcyBTeW50YXhFcnJvclxudmFyICRSZWdFeHAgPSBnbG9iYWwuUmVnRXhwO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHJlID0gJFJlZ0V4cCgnLicsICdzJyk7XG4gIHJldHVybiAhKHJlLmRvdEFsbCAmJiByZS5leGVjKCdcXG4nKSAmJiByZS5mbGFncyA9PT0gJ3MnKTtcbn0pO1xuIiwidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xuXG4vLyBiYWJlbC1taW5pZnkgYW5kIENsb3N1cmUgQ29tcGlsZXIgdHJhbnNwaWxlcyBSZWdFeHAoJyg/PGE+YiknLCAnZycpIC0+IC8oPzxhPmIpL2cgYW5kIGl0IGNhdXNlcyBTeW50YXhFcnJvclxudmFyICRSZWdFeHAgPSBnbG9iYWwuUmVnRXhwO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHJlID0gJFJlZ0V4cCgnKD88YT5iKScsICdnJyk7XG4gIHJldHVybiByZS5leGVjKCdiJykuZ3JvdXBzLmEgIT09ICdiJyB8fFxuICAgICdiJy5yZXBsYWNlKHJlLCAnJDxhPmMnKSAhPT0gJ2JjJztcbn0pO1xuIiwidmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVxdWlyZW9iamVjdGNvZXJjaWJsZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ID09IHVuZGVmaW5lZCkgdGhyb3cgJFR5cGVFcnJvcihcIkNhbid0IGNhbGwgbWV0aG9kIG9uIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiLy8gYFNhbWVWYWx1ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXNhbWV2YWx1ZVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWlzIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmlzIHx8IGZ1bmN0aW9uIGlzKHgsIHkpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgcmV0dXJuIHggPT09IHkgPyB4ICE9PSAwIHx8IDEgLyB4ID09PSAxIC8geSA6IHggIT0geCAmJiB5ICE9IHk7XG59O1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBhcHBseSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1hcHBseScpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciB1c2VyQWdlbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLXVzZXItYWdlbnQnKTtcbnZhciBhcnJheVNsaWNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNsaWNlJyk7XG52YXIgdmFsaWRhdGVBcmd1bWVudHNMZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdmFsaWRhdGUtYXJndW1lbnRzLWxlbmd0aCcpO1xuXG52YXIgTVNJRSA9IC9NU0lFIC5cXC4vLnRlc3QodXNlckFnZW50KTsgLy8gPC0gZGlydHkgaWU5LSBjaGVja1xudmFyIEZ1bmN0aW9uID0gZ2xvYmFsLkZ1bmN0aW9uO1xuXG52YXIgd3JhcCA9IGZ1bmN0aW9uIChzY2hlZHVsZXIpIHtcbiAgcmV0dXJuIE1TSUUgPyBmdW5jdGlvbiAoaGFuZGxlciwgdGltZW91dCAvKiAsIC4uLmFyZ3VtZW50cyAqLykge1xuICAgIHZhciBib3VuZEFyZ3MgPSB2YWxpZGF0ZUFyZ3VtZW50c0xlbmd0aChhcmd1bWVudHMubGVuZ3RoLCAxKSA+IDI7XG4gICAgdmFyIGZuID0gaXNDYWxsYWJsZShoYW5kbGVyKSA/IGhhbmRsZXIgOiBGdW5jdGlvbihoYW5kbGVyKTtcbiAgICB2YXIgYXJncyA9IGJvdW5kQXJncyA/IGFycmF5U2xpY2UoYXJndW1lbnRzLCAyKSA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gc2NoZWR1bGVyKGJvdW5kQXJncyA/IGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwcGx5KGZuLCB0aGlzLCBhcmdzKTtcbiAgICB9IDogZm4sIHRpbWVvdXQpO1xuICB9IDogc2NoZWR1bGVyO1xufTtcblxuLy8gaWU5LSBzZXRUaW1lb3V0ICYgc2V0SW50ZXJ2YWwgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZpeFxuLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvdGltZXJzLWFuZC11c2VyLXByb21wdHMuaHRtbCN0aW1lcnNcbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgc2V0VGltZW91dGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3RpbWVycy1hbmQtdXNlci1wcm9tcHRzLmh0bWwjZG9tLXNldHRpbWVvdXRcbiAgc2V0VGltZW91dDogd3JhcChnbG9iYWwuc2V0VGltZW91dCksXG4gIC8vIGBzZXRJbnRlcnZhbGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3RpbWVycy1hbmQtdXNlci1wcm9tcHRzLmh0bWwjZG9tLXNldGludGVydmFsXG4gIHNldEludGVydmFsOiB3cmFwKGdsb2JhbC5zZXRJbnRlcnZhbClcbn07XG4iLCJ2YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHRhcmdldCwgVEFHLCBTVEFUSUMpIHtcbiAgaWYgKHRhcmdldCAmJiAhU1RBVElDKSB0YXJnZXQgPSB0YXJnZXQucHJvdG90eXBlO1xuICBpZiAodGFyZ2V0ICYmICFoYXNPd24odGFyZ2V0LCBUT19TVFJJTkdfVEFHKSkge1xuICAgIGRlZmluZVByb3BlcnR5KHRhcmdldCwgVE9fU1RSSU5HX1RBRywgeyBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiBUQUcgfSk7XG4gIH1cbn07XG4iLCJ2YXIgc2hhcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZCcpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91aWQnKTtcblxudmFyIGtleXMgPSBzaGFyZWQoJ2tleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiBrZXlzW2tleV0gfHwgKGtleXNba2V5XSA9IHVpZChrZXkpKTtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGRlZmluZUdsb2JhbFByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1nbG9iYWwtcHJvcGVydHknKTtcblxudmFyIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nO1xudmFyIHN0b3JlID0gZ2xvYmFsW1NIQVJFRF0gfHwgZGVmaW5lR2xvYmFsUHJvcGVydHkoU0hBUkVELCB7fSk7XG5cbm1vZHVsZS5leHBvcnRzID0gc3RvcmU7XG4iLCJ2YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgc3RvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG5cbihtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHJldHVybiBzdG9yZVtrZXldIHx8IChzdG9yZVtrZXldID0gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDoge30pO1xufSkoJ3ZlcnNpb25zJywgW10pLnB1c2goe1xuICB2ZXJzaW9uOiAnMy4yMy41JyxcbiAgbW9kZTogSVNfUFVSRSA/ICdwdXJlJyA6ICdnbG9iYWwnLFxuICBjb3B5cmlnaHQ6ICfCqSAyMDE0LTIwMjIgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSknLFxuICBsaWNlbnNlOiAnaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvYmxvYi92My4yMy41L0xJQ0VOU0UnLFxuICBzb3VyY2U6ICdodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcydcbn0pO1xuIiwidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGFDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWNvbnN0cnVjdG9yJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBTUEVDSUVTID0gd2VsbEtub3duU3ltYm9sKCdzcGVjaWVzJyk7XG5cbi8vIGBTcGVjaWVzQ29uc3RydWN0b3JgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zcGVjaWVzY29uc3RydWN0b3Jcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE8sIGRlZmF1bHRDb25zdHJ1Y3Rvcikge1xuICB2YXIgQyA9IGFuT2JqZWN0KE8pLmNvbnN0cnVjdG9yO1xuICB2YXIgUztcbiAgcmV0dXJuIEMgPT09IHVuZGVmaW5lZCB8fCAoUyA9IGFuT2JqZWN0KEMpW1NQRUNJRVNdKSA9PSB1bmRlZmluZWQgPyBkZWZhdWx0Q29uc3RydWN0b3IgOiBhQ29uc3RydWN0b3IoUyk7XG59O1xuIiwidmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbnZhciBjaGFyQXQgPSB1bmN1cnJ5VGhpcygnJy5jaGFyQXQpO1xudmFyIGNoYXJDb2RlQXQgPSB1bmN1cnJ5VGhpcygnJy5jaGFyQ29kZUF0KTtcbnZhciBzdHJpbmdTbGljZSA9IHVuY3VycnlUaGlzKCcnLnNsaWNlKTtcblxudmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uIChDT05WRVJUX1RPX1NUUklORykge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBwb3MpIHtcbiAgICB2YXIgUyA9IHRvU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUoJHRoaXMpKTtcbiAgICB2YXIgcG9zaXRpb24gPSB0b0ludGVnZXJPckluZmluaXR5KHBvcyk7XG4gICAgdmFyIHNpemUgPSBTLmxlbmd0aDtcbiAgICB2YXIgZmlyc3QsIHNlY29uZDtcbiAgICBpZiAocG9zaXRpb24gPCAwIHx8IHBvc2l0aW9uID49IHNpemUpIHJldHVybiBDT05WRVJUX1RPX1NUUklORyA/ICcnIDogdW5kZWZpbmVkO1xuICAgIGZpcnN0ID0gY2hhckNvZGVBdChTLCBwb3NpdGlvbik7XG4gICAgcmV0dXJuIGZpcnN0IDwgMHhEODAwIHx8IGZpcnN0ID4gMHhEQkZGIHx8IHBvc2l0aW9uICsgMSA9PT0gc2l6ZVxuICAgICAgfHwgKHNlY29uZCA9IGNoYXJDb2RlQXQoUywgcG9zaXRpb24gKyAxKSkgPCAweERDMDAgfHwgc2Vjb25kID4gMHhERkZGXG4gICAgICAgID8gQ09OVkVSVF9UT19TVFJJTkdcbiAgICAgICAgICA/IGNoYXJBdChTLCBwb3NpdGlvbilcbiAgICAgICAgICA6IGZpcnN0XG4gICAgICAgIDogQ09OVkVSVF9UT19TVFJJTkdcbiAgICAgICAgICA/IHN0cmluZ1NsaWNlKFMsIHBvc2l0aW9uLCBwb3NpdGlvbiArIDIpXG4gICAgICAgICAgOiAoZmlyc3QgLSAweEQ4MDAgPDwgMTApICsgKHNlY29uZCAtIDB4REMwMCkgKyAweDEwMDAwO1xuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIC8vIGBTdHJpbmcucHJvdG90eXBlLmNvZGVQb2ludEF0YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLmNvZGVwb2ludGF0XG4gIGNvZGVBdDogY3JlYXRlTWV0aG9kKGZhbHNlKSxcbiAgLy8gYFN0cmluZy5wcm90b3R5cGUuYXRgIG1ldGhvZFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWF0aGlhc2J5bmVucy9TdHJpbmcucHJvdG90eXBlLmF0XG4gIGNoYXJBdDogY3JlYXRlTWV0aG9kKHRydWUpXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbnZhciAkUmFuZ2VFcnJvciA9IFJhbmdlRXJyb3I7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLnJlcGVhdGAgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUucmVwZWF0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHJlcGVhdChjb3VudCkge1xuICB2YXIgc3RyID0gdG9TdHJpbmcocmVxdWlyZU9iamVjdENvZXJjaWJsZSh0aGlzKSk7XG4gIHZhciByZXN1bHQgPSAnJztcbiAgdmFyIG4gPSB0b0ludGVnZXJPckluZmluaXR5KGNvdW50KTtcbiAgaWYgKG4gPCAwIHx8IG4gPT0gSW5maW5pdHkpIHRocm93ICRSYW5nZUVycm9yKCdXcm9uZyBudW1iZXIgb2YgcmVwZXRpdGlvbnMnKTtcbiAgZm9yICg7biA+IDA7IChuID4+Pj0gMSkgJiYgKHN0ciArPSBzdHIpKSBpZiAobiAmIDEpIHJlc3VsdCArPSBzdHI7XG4gIHJldHVybiByZXN1bHQ7XG59O1xuIiwidmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG52YXIgd2hpdGVzcGFjZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2hpdGVzcGFjZXMnKTtcblxudmFyIHJlcGxhY2UgPSB1bmN1cnJ5VGhpcygnJy5yZXBsYWNlKTtcbnZhciB3aGl0ZXNwYWNlID0gJ1snICsgd2hpdGVzcGFjZXMgKyAnXSc7XG52YXIgbHRyaW0gPSBSZWdFeHAoJ14nICsgd2hpdGVzcGFjZSArIHdoaXRlc3BhY2UgKyAnKicpO1xudmFyIHJ0cmltID0gUmVnRXhwKHdoaXRlc3BhY2UgKyB3aGl0ZXNwYWNlICsgJyokJyk7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLnsgdHJpbSwgdHJpbVN0YXJ0LCB0cmltRW5kLCB0cmltTGVmdCwgdHJpbVJpZ2h0IH1gIG1ldGhvZHMgaW1wbGVtZW50YXRpb25cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoVFlQRSkge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzKSB7XG4gICAgdmFyIHN0cmluZyA9IHRvU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUoJHRoaXMpKTtcbiAgICBpZiAoVFlQRSAmIDEpIHN0cmluZyA9IHJlcGxhY2Uoc3RyaW5nLCBsdHJpbSwgJycpO1xuICAgIGlmIChUWVBFICYgMikgc3RyaW5nID0gcmVwbGFjZShzdHJpbmcsIHJ0cmltLCAnJyk7XG4gICAgcmV0dXJuIHN0cmluZztcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgU3RyaW5nLnByb3RvdHlwZS57IHRyaW1MZWZ0LCB0cmltU3RhcnQgfWAgbWV0aG9kc1xuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUudHJpbXN0YXJ0XG4gIHN0YXJ0OiBjcmVhdGVNZXRob2QoMSksXG4gIC8vIGBTdHJpbmcucHJvdG90eXBlLnsgdHJpbVJpZ2h0LCB0cmltRW5kIH1gIG1ldGhvZHNcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnRyaW1lbmRcbiAgZW5kOiBjcmVhdGVNZXRob2QoMiksXG4gIC8vIGBTdHJpbmcucHJvdG90eXBlLnRyaW1gIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUudHJpbVxuICB0cmltOiBjcmVhdGVNZXRob2QoMylcbn07XG4iLCJ2YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBkZWZpbmVCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIFN5bWJvbCA9IGdldEJ1aWx0SW4oJ1N5bWJvbCcpO1xuICB2YXIgU3ltYm9sUHJvdG90eXBlID0gU3ltYm9sICYmIFN5bWJvbC5wcm90b3R5cGU7XG4gIHZhciB2YWx1ZU9mID0gU3ltYm9sUHJvdG90eXBlICYmIFN5bWJvbFByb3RvdHlwZS52YWx1ZU9mO1xuICB2YXIgVE9fUFJJTUlUSVZFID0gd2VsbEtub3duU3ltYm9sKCd0b1ByaW1pdGl2ZScpO1xuXG4gIGlmIChTeW1ib2xQcm90b3R5cGUgJiYgIVN5bWJvbFByb3RvdHlwZVtUT19QUklNSVRJVkVdKSB7XG4gICAgLy8gYFN5bWJvbC5wcm90b3R5cGVbQEB0b1ByaW1pdGl2ZV1gIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3ltYm9sLnByb3RvdHlwZS1AQHRvcHJpbWl0aXZlXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzIC0tIHJlcXVpcmVkIGZvciAubGVuZ3RoXG4gICAgZGVmaW5lQnVpbHRJbihTeW1ib2xQcm90b3R5cGUsIFRPX1BSSU1JVElWRSwgZnVuY3Rpb24gKGhpbnQpIHtcbiAgICAgIHJldHVybiBjYWxsKHZhbHVlT2YsIHRoaXMpO1xuICAgIH0sIHsgYXJpdHk6IDEgfSk7XG4gIH1cbn07XG4iLCJ2YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG5cbi8vIGB0aGlzTnVtYmVyVmFsdWVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10aGlzbnVtYmVydmFsdWVcbm1vZHVsZS5leHBvcnRzID0gdW5jdXJyeVRoaXMoMS4wLnZhbHVlT2YpO1xuIiwidmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xuXG52YXIgbWF4ID0gTWF0aC5tYXg7XG52YXIgbWluID0gTWF0aC5taW47XG5cbi8vIEhlbHBlciBmb3IgYSBwb3B1bGFyIHJlcGVhdGluZyBjYXNlIG9mIHRoZSBzcGVjOlxuLy8gTGV0IGludGVnZXIgYmUgPyBUb0ludGVnZXIoaW5kZXgpLlxuLy8gSWYgaW50ZWdlciA8IDAsIGxldCByZXN1bHQgYmUgbWF4KChsZW5ndGggKyBpbnRlZ2VyKSwgMCk7IGVsc2UgbGV0IHJlc3VsdCBiZSBtaW4oaW50ZWdlciwgbGVuZ3RoKS5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGluZGV4LCBsZW5ndGgpIHtcbiAgdmFyIGludGVnZXIgPSB0b0ludGVnZXJPckluZmluaXR5KGluZGV4KTtcbiAgcmV0dXJuIGludGVnZXIgPCAwID8gbWF4KGludGVnZXIgKyBsZW5ndGgsIDApIDogbWluKGludGVnZXIsIGxlbmd0aCk7XG59O1xuIiwiLy8gdG9PYmplY3Qgd2l0aCBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIHN0cmluZ3NcbnZhciBJbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luZGV4ZWQtb2JqZWN0Jyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIEluZGV4ZWRPYmplY3QocmVxdWlyZU9iamVjdENvZXJjaWJsZShpdCkpO1xufTtcbiIsInZhciB0cnVuYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9tYXRoLXRydW5jJyk7XG5cbi8vIGBUb0ludGVnZXJPckluZmluaXR5YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9pbnRlZ2Vyb3JpbmZpbml0eVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgdmFyIG51bWJlciA9ICthcmd1bWVudDtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgcmV0dXJuIG51bWJlciAhPT0gbnVtYmVyIHx8IG51bWJlciA9PT0gMCA/IDAgOiB0cnVuYyhudW1iZXIpO1xufTtcbiIsInZhciB0b0ludGVnZXJPckluZmluaXR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXItb3ItaW5maW5pdHknKTtcblxudmFyIG1pbiA9IE1hdGgubWluO1xuXG4vLyBgVG9MZW5ndGhgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b2xlbmd0aFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIGFyZ3VtZW50ID4gMCA/IG1pbih0b0ludGVnZXJPckluZmluaXR5KGFyZ3VtZW50KSwgMHgxRkZGRkZGRkZGRkZGRikgOiAwOyAvLyAyICoqIDUzIC0gMSA9PSA5MDA3MTk5MjU0NzQwOTkxXG59O1xuIiwidmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbnZhciAkT2JqZWN0ID0gT2JqZWN0O1xuXG4vLyBgVG9PYmplY3RgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b29iamVjdFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuICRPYmplY3QocmVxdWlyZU9iamVjdENvZXJjaWJsZShhcmd1bWVudCkpO1xufTtcbiIsInZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBpc1N5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1zeW1ib2wnKTtcbnZhciBnZXRNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LW1ldGhvZCcpO1xudmFyIG9yZGluYXJ5VG9QcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb3JkaW5hcnktdG8tcHJpbWl0aXZlJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xudmFyIFRPX1BSSU1JVElWRSA9IHdlbGxLbm93blN5bWJvbCgndG9QcmltaXRpdmUnKTtcblxuLy8gYFRvUHJpbWl0aXZlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9wcmltaXRpdmVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGlucHV0LCBwcmVmKSB7XG4gIGlmICghaXNPYmplY3QoaW5wdXQpIHx8IGlzU3ltYm9sKGlucHV0KSkgcmV0dXJuIGlucHV0O1xuICB2YXIgZXhvdGljVG9QcmltID0gZ2V0TWV0aG9kKGlucHV0LCBUT19QUklNSVRJVkUpO1xuICB2YXIgcmVzdWx0O1xuICBpZiAoZXhvdGljVG9QcmltKSB7XG4gICAgaWYgKHByZWYgPT09IHVuZGVmaW5lZCkgcHJlZiA9ICdkZWZhdWx0JztcbiAgICByZXN1bHQgPSBjYWxsKGV4b3RpY1RvUHJpbSwgaW5wdXQsIHByZWYpO1xuICAgIGlmICghaXNPYmplY3QocmVzdWx0KSB8fCBpc1N5bWJvbChyZXN1bHQpKSByZXR1cm4gcmVzdWx0O1xuICAgIHRocm93ICRUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG4gIH1cbiAgaWYgKHByZWYgPT09IHVuZGVmaW5lZCkgcHJlZiA9ICdudW1iZXInO1xuICByZXR1cm4gb3JkaW5hcnlUb1ByaW1pdGl2ZShpbnB1dCwgcHJlZik7XG59O1xuIiwidmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xudmFyIGlzU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXN5bWJvbCcpO1xuXG4vLyBgVG9Qcm9wZXJ0eUtleWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvcHJvcGVydHlrZXlcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHZhciBrZXkgPSB0b1ByaW1pdGl2ZShhcmd1bWVudCwgJ3N0cmluZycpO1xuICByZXR1cm4gaXNTeW1ib2woa2V5KSA/IGtleSA6IGtleSArICcnO1xufTtcbiIsInZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG52YXIgdGVzdCA9IHt9O1xuXG50ZXN0W1RPX1NUUklOR19UQUddID0gJ3onO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFN0cmluZyh0ZXN0KSA9PT0gJ1tvYmplY3Qgel0nO1xuIiwidmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xuXG52YXIgJFN0cmluZyA9IFN0cmluZztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgaWYgKGNsYXNzb2YoYXJndW1lbnQpID09PSAnU3ltYm9sJykgdGhyb3cgVHlwZUVycm9yKCdDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZycpO1xuICByZXR1cm4gJFN0cmluZyhhcmd1bWVudCk7XG59O1xuIiwidmFyICRTdHJpbmcgPSBTdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICRTdHJpbmcoYXJndW1lbnQpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiAnT2JqZWN0JztcbiAgfVxufTtcbiIsInZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxudmFyIGlkID0gMDtcbnZhciBwb3N0Zml4ID0gTWF0aC5yYW5kb20oKTtcbnZhciB0b1N0cmluZyA9IHVuY3VycnlUaGlzKDEuMC50b1N0cmluZyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gJ1N5bWJvbCgnICsgKGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXkpICsgJylfJyArIHRvU3RyaW5nKCsraWQgKyBwb3N0Zml4LCAzNik7XG59O1xuIiwiLyogZXNsaW50LWRpc2FibGUgZXMteC9uby1zeW1ib2wgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmcgKi9cbnZhciBOQVRJVkVfU1lNQk9MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS1zeW1ib2wnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBOQVRJVkVfU1lNQk9MXG4gICYmICFTeW1ib2wuc2hhbVxuICAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09ICdzeW1ib2wnO1xuIiwidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxuLy8gVjggfiBDaHJvbWUgMzYtXG4vLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMzM0XG5tb2R1bGUuZXhwb3J0cyA9IERFU0NSSVBUT1JTICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9LCAncHJvdG90eXBlJywge1xuICAgIHZhbHVlOiA0MixcbiAgICB3cml0YWJsZTogZmFsc2VcbiAgfSkucHJvdG90eXBlICE9IDQyO1xufSk7XG4iLCJ2YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAocGFzc2VkLCByZXF1aXJlZCkge1xuICBpZiAocGFzc2VkIDwgcmVxdWlyZWQpIHRocm93ICRUeXBlRXJyb3IoJ05vdCBlbm91Z2ggYXJndW1lbnRzJyk7XG4gIHJldHVybiBwYXNzZWQ7XG59O1xuIiwidmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG5leHBvcnRzLmYgPSB3ZWxsS25vd25TeW1ib2w7XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91aWQnKTtcbnZhciBOQVRJVkVfU1lNQk9MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS1zeW1ib2wnKTtcbnZhciBVU0VfU1lNQk9MX0FTX1VJRCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91c2Utc3ltYm9sLWFzLXVpZCcpO1xuXG52YXIgV2VsbEtub3duU3ltYm9sc1N0b3JlID0gc2hhcmVkKCd3a3MnKTtcbnZhciBTeW1ib2wgPSBnbG9iYWwuU3ltYm9sO1xudmFyIHN5bWJvbEZvciA9IFN5bWJvbCAmJiBTeW1ib2xbJ2ZvciddO1xudmFyIGNyZWF0ZVdlbGxLbm93blN5bWJvbCA9IFVTRV9TWU1CT0xfQVNfVUlEID8gU3ltYm9sIDogU3ltYm9sICYmIFN5bWJvbC53aXRob3V0U2V0dGVyIHx8IHVpZDtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmFtZSkge1xuICBpZiAoIWhhc093bihXZWxsS25vd25TeW1ib2xzU3RvcmUsIG5hbWUpIHx8ICEoTkFUSVZFX1NZTUJPTCB8fCB0eXBlb2YgV2VsbEtub3duU3ltYm9sc1N0b3JlW25hbWVdID09ICdzdHJpbmcnKSkge1xuICAgIHZhciBkZXNjcmlwdGlvbiA9ICdTeW1ib2wuJyArIG5hbWU7XG4gICAgaWYgKE5BVElWRV9TWU1CT0wgJiYgaGFzT3duKFN5bWJvbCwgbmFtZSkpIHtcbiAgICAgIFdlbGxLbm93blN5bWJvbHNTdG9yZVtuYW1lXSA9IFN5bWJvbFtuYW1lXTtcbiAgICB9IGVsc2UgaWYgKFVTRV9TWU1CT0xfQVNfVUlEICYmIHN5bWJvbEZvcikge1xuICAgICAgV2VsbEtub3duU3ltYm9sc1N0b3JlW25hbWVdID0gc3ltYm9sRm9yKGRlc2NyaXB0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgV2VsbEtub3duU3ltYm9sc1N0b3JlW25hbWVdID0gY3JlYXRlV2VsbEtub3duU3ltYm9sKGRlc2NyaXB0aW9uKTtcbiAgICB9XG4gIH0gcmV0dXJuIFdlbGxLbm93blN5bWJvbHNTdG9yZVtuYW1lXTtcbn07XG4iLCIvLyBhIHN0cmluZyBvZiBhbGwgdmFsaWQgdW5pY29kZSB3aGl0ZXNwYWNlc1xubW9kdWxlLmV4cG9ydHMgPSAnXFx1MDAwOVxcdTAwMEFcXHUwMDBCXFx1MDAwQ1xcdTAwMERcXHUwMDIwXFx1MDBBMFxcdTE2ODBcXHUyMDAwXFx1MjAwMVxcdTIwMDInICtcbiAgJ1xcdTIwMDNcXHUyMDA0XFx1MjAwNVxcdTIwMDZcXHUyMDA3XFx1MjAwOFxcdTIwMDlcXHUyMDBBXFx1MjAyRlxcdTIwNUZcXHUzMDAwXFx1MjAyOFxcdTIwMjlcXHVGRUZGJztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1hcnJheScpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG52YXIgZG9lc05vdEV4Y2VlZFNhZmVJbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvZXMtbm90LWV4Y2VlZC1zYWZlLWludGVnZXInKTtcbnZhciBjcmVhdGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHknKTtcbnZhciBhcnJheVNwZWNpZXNDcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktc3BlY2llcy1jcmVhdGUnKTtcbnZhciBhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1oYXMtc3BlY2llcy1zdXBwb3J0Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgVjhfVkVSU0lPTiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtdjgtdmVyc2lvbicpO1xuXG52YXIgSVNfQ09OQ0FUX1NQUkVBREFCTEUgPSB3ZWxsS25vd25TeW1ib2woJ2lzQ29uY2F0U3ByZWFkYWJsZScpO1xuXG4vLyBXZSBjYW4ndCB1c2UgdGhpcyBmZWF0dXJlIGRldGVjdGlvbiBpbiBWOCBzaW5jZSBpdCBjYXVzZXNcbi8vIGRlb3B0aW1pemF0aW9uIGFuZCBzZXJpb3VzIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uXG4vLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvNjc5XG52YXIgSVNfQ09OQ0FUX1NQUkVBREFCTEVfU1VQUE9SVCA9IFY4X1ZFUlNJT04gPj0gNTEgfHwgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIGFycmF5ID0gW107XG4gIGFycmF5W0lTX0NPTkNBVF9TUFJFQURBQkxFXSA9IGZhbHNlO1xuICByZXR1cm4gYXJyYXkuY29uY2F0KClbMF0gIT09IGFycmF5O1xufSk7XG5cbnZhciBTUEVDSUVTX1NVUFBPUlQgPSBhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0KCdjb25jYXQnKTtcblxudmFyIGlzQ29uY2F0U3ByZWFkYWJsZSA9IGZ1bmN0aW9uIChPKSB7XG4gIGlmICghaXNPYmplY3QoTykpIHJldHVybiBmYWxzZTtcbiAgdmFyIHNwcmVhZGFibGUgPSBPW0lTX0NPTkNBVF9TUFJFQURBQkxFXTtcbiAgcmV0dXJuIHNwcmVhZGFibGUgIT09IHVuZGVmaW5lZCA/ICEhc3ByZWFkYWJsZSA6IGlzQXJyYXkoTyk7XG59O1xuXG52YXIgRk9SQ0VEID0gIUlTX0NPTkNBVF9TUFJFQURBQkxFX1NVUFBPUlQgfHwgIVNQRUNJRVNfU1VQUE9SVDtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5jb25jYXRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuY29uY2F0XG4vLyB3aXRoIGFkZGluZyBzdXBwb3J0IG9mIEBAaXNDb25jYXRTcHJlYWRhYmxlIGFuZCBAQHNwZWNpZXNcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBhcml0eTogMSwgZm9yY2VkOiBGT1JDRUQgfSwge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMgLS0gcmVxdWlyZWQgZm9yIGAubGVuZ3RoYFxuICBjb25jYXQ6IGZ1bmN0aW9uIGNvbmNhdChhcmcpIHtcbiAgICB2YXIgTyA9IHRvT2JqZWN0KHRoaXMpO1xuICAgIHZhciBBID0gYXJyYXlTcGVjaWVzQ3JlYXRlKE8sIDApO1xuICAgIHZhciBuID0gMDtcbiAgICB2YXIgaSwgaywgbGVuZ3RoLCBsZW4sIEU7XG4gICAgZm9yIChpID0gLTEsIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgRSA9IGkgPT09IC0xID8gTyA6IGFyZ3VtZW50c1tpXTtcbiAgICAgIGlmIChpc0NvbmNhdFNwcmVhZGFibGUoRSkpIHtcbiAgICAgICAgbGVuID0gbGVuZ3RoT2ZBcnJheUxpa2UoRSk7XG4gICAgICAgIGRvZXNOb3RFeGNlZWRTYWZlSW50ZWdlcihuICsgbGVuKTtcbiAgICAgICAgZm9yIChrID0gMDsgayA8IGxlbjsgaysrLCBuKyspIGlmIChrIGluIEUpIGNyZWF0ZVByb3BlcnR5KEEsIG4sIEVba10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZG9lc05vdEV4Y2VlZFNhZmVJbnRlZ2VyKG4gKyAxKTtcbiAgICAgICAgY3JlYXRlUHJvcGVydHkoQSwgbisrLCBFKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQS5sZW5ndGggPSBuO1xuICAgIHJldHVybiBBO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRmaWx0ZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZmlsdGVyO1xudmFyIGFycmF5TWV0aG9kSGFzU3BlY2llc1N1cHBvcnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWhhcy1zcGVjaWVzLXN1cHBvcnQnKTtcblxudmFyIEhBU19TUEVDSUVTX1NVUFBPUlQgPSBhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0KCdmaWx0ZXInKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5maWx0ZXJgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmlsdGVyXG4vLyB3aXRoIGFkZGluZyBzdXBwb3J0IG9mIEBAc3BlY2llc1xuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogIUhBU19TUEVDSUVTX1NVUFBPUlQgfSwge1xuICBmaWx0ZXI6IGZ1bmN0aW9uIGZpbHRlcihjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAgIHJldHVybiAkZmlsdGVyKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBmcm9tID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWZyb20nKTtcbnZhciBjaGVja0NvcnJlY3RuZXNzT2ZJdGVyYXRpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2hlY2stY29ycmVjdG5lc3Mtb2YtaXRlcmF0aW9uJyk7XG5cbnZhciBJTkNPUlJFQ1RfSVRFUkFUSU9OID0gIWNoZWNrQ29ycmVjdG5lc3NPZkl0ZXJhdGlvbihmdW5jdGlvbiAoaXRlcmFibGUpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tYXJyYXktZnJvbSAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICBBcnJheS5mcm9tKGl0ZXJhYmxlKTtcbn0pO1xuXG4vLyBgQXJyYXkuZnJvbWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LmZyb21cbiQoeyB0YXJnZXQ6ICdBcnJheScsIHN0YXQ6IHRydWUsIGZvcmNlZDogSU5DT1JSRUNUX0lURVJBVElPTiB9LCB7XG4gIGZyb206IGZyb21cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgJGluY2x1ZGVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWluY2x1ZGVzJykuaW5jbHVkZXM7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBhZGRUb1Vuc2NvcGFibGVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FkZC10by11bnNjb3BhYmxlcycpO1xuXG4vLyBGRjk5KyBidWdcbnZhciBCUk9LRU5fT05fU1BBUlNFID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gIUFycmF5KDEpLmluY2x1ZGVzKCk7XG59KTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5pbmNsdWRlc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5pbmNsdWRlc1xuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogQlJPS0VOX09OX1NQQVJTRSB9LCB7XG4gIGluY2x1ZGVzOiBmdW5jdGlvbiBpbmNsdWRlcyhlbCAvKiAsIGZyb21JbmRleCA9IDAgKi8pIHtcbiAgICByZXR1cm4gJGluY2x1ZGVzKHRoaXMsIGVsLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn0pO1xuXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS1AQHVuc2NvcGFibGVzXG5hZGRUb1Vuc2NvcGFibGVzKCdpbmNsdWRlcycpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGFkZFRvVW5zY29wYWJsZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYWRkLXRvLXVuc2NvcGFibGVzJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycycpO1xudmFyIEludGVybmFsU3RhdGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5JykuZjtcbnZhciBkZWZpbmVJdGVyYXRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtaXRlcmF0b3InKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xuXG52YXIgQVJSQVlfSVRFUkFUT1IgPSAnQXJyYXkgSXRlcmF0b3InO1xudmFyIHNldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLnNldDtcbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXR0ZXJGb3IoQVJSQVlfSVRFUkFUT1IpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmVudHJpZXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZW50cmllc1xuLy8gYEFycmF5LnByb3RvdHlwZS5rZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmtleXNcbi8vIGBBcnJheS5wcm90b3R5cGUudmFsdWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnZhbHVlc1xuLy8gYEFycmF5LnByb3RvdHlwZVtAQGl0ZXJhdG9yXWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS1AQGl0ZXJhdG9yXG4vLyBgQ3JlYXRlQXJyYXlJdGVyYXRvcmAgaW50ZXJuYWwgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWNyZWF0ZWFycmF5aXRlcmF0b3Jcbm1vZHVsZS5leHBvcnRzID0gZGVmaW5lSXRlcmF0b3IoQXJyYXksICdBcnJheScsIGZ1bmN0aW9uIChpdGVyYXRlZCwga2luZCkge1xuICBzZXRJbnRlcm5hbFN0YXRlKHRoaXMsIHtcbiAgICB0eXBlOiBBUlJBWV9JVEVSQVRPUixcbiAgICB0YXJnZXQ6IHRvSW5kZXhlZE9iamVjdChpdGVyYXRlZCksIC8vIHRhcmdldFxuICAgIGluZGV4OiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuICAgIGtpbmQ6IGtpbmQgICAgICAgICAgICAgICAgICAgICAgICAgLy8ga2luZFxuICB9KTtcbi8vIGAlQXJyYXlJdGVyYXRvclByb3RvdHlwZSUubmV4dGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSVhcnJheWl0ZXJhdG9ycHJvdG90eXBlJS5uZXh0XG59LCBmdW5jdGlvbiAoKSB7XG4gIHZhciBzdGF0ZSA9IGdldEludGVybmFsU3RhdGUodGhpcyk7XG4gIHZhciB0YXJnZXQgPSBzdGF0ZS50YXJnZXQ7XG4gIHZhciBraW5kID0gc3RhdGUua2luZDtcbiAgdmFyIGluZGV4ID0gc3RhdGUuaW5kZXgrKztcbiAgaWYgKCF0YXJnZXQgfHwgaW5kZXggPj0gdGFyZ2V0Lmxlbmd0aCkge1xuICAgIHN0YXRlLnRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIH1cbiAgaWYgKGtpbmQgPT0gJ2tleXMnKSByZXR1cm4geyB2YWx1ZTogaW5kZXgsIGRvbmU6IGZhbHNlIH07XG4gIGlmIChraW5kID09ICd2YWx1ZXMnKSByZXR1cm4geyB2YWx1ZTogdGFyZ2V0W2luZGV4XSwgZG9uZTogZmFsc2UgfTtcbiAgcmV0dXJuIHsgdmFsdWU6IFtpbmRleCwgdGFyZ2V0W2luZGV4XV0sIGRvbmU6IGZhbHNlIH07XG59LCAndmFsdWVzJyk7XG5cbi8vIGFyZ3VtZW50c0xpc3RbQEBpdGVyYXRvcl0gaXMgJUFycmF5UHJvdG9fdmFsdWVzJVxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1jcmVhdGV1bm1hcHBlZGFyZ3VtZW50c29iamVjdFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1jcmVhdGVtYXBwZWRhcmd1bWVudHNvYmplY3RcbnZhciB2YWx1ZXMgPSBJdGVyYXRvcnMuQXJndW1lbnRzID0gSXRlcmF0b3JzLkFycmF5O1xuXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS1AQHVuc2NvcGFibGVzXG5hZGRUb1Vuc2NvcGFibGVzKCdrZXlzJyk7XG5hZGRUb1Vuc2NvcGFibGVzKCd2YWx1ZXMnKTtcbmFkZFRvVW5zY29wYWJsZXMoJ2VudHJpZXMnKTtcblxuLy8gVjggfiBDaHJvbWUgNDUtIGJ1Z1xuaWYgKCFJU19QVVJFICYmIERFU0NSSVBUT1JTICYmIHZhbHVlcy5uYW1lICE9PSAndmFsdWVzJykgdHJ5IHtcbiAgZGVmaW5lUHJvcGVydHkodmFsdWVzLCAnbmFtZScsIHsgdmFsdWU6ICd2YWx1ZXMnIH0pO1xufSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGFycmF5TWV0aG9kSXNTdHJpY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdCcpO1xuXG52YXIgdW4kSm9pbiA9IHVuY3VycnlUaGlzKFtdLmpvaW4pO1xuXG52YXIgRVMzX1NUUklOR1MgPSBJbmRleGVkT2JqZWN0ICE9IE9iamVjdDtcbnZhciBTVFJJQ1RfTUVUSE9EID0gYXJyYXlNZXRob2RJc1N0cmljdCgnam9pbicsICcsJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuam9pbmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5qb2luXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBFUzNfU1RSSU5HUyB8fCAhU1RSSUNUX01FVEhPRCB9LCB7XG4gIGpvaW46IGZ1bmN0aW9uIGpvaW4oc2VwYXJhdG9yKSB7XG4gICAgcmV0dXJuIHVuJEpvaW4odG9JbmRleGVkT2JqZWN0KHRoaXMpLCBzZXBhcmF0b3IgPT09IHVuZGVmaW5lZCA/ICcsJyA6IHNlcGFyYXRvcik7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgJG1hcCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24nKS5tYXA7XG52YXIgYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaGFzLXNwZWNpZXMtc3VwcG9ydCcpO1xuXG52YXIgSEFTX1NQRUNJRVNfU1VQUE9SVCA9IGFycmF5TWV0aG9kSGFzU3BlY2llc1N1cHBvcnQoJ21hcCcpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLm1hcGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5tYXBcbi8vIHdpdGggYWRkaW5nIHN1cHBvcnQgb2YgQEBzcGVjaWVzXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiAhSEFTX1NQRUNJRVNfU1VQUE9SVCB9LCB7XG4gIG1hcDogZnVuY3Rpb24gbWFwKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gICAgcmV0dXJuICRtYXAodGhpcywgY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtYXJyYXknKTtcblxudmFyIHVuJFJldmVyc2UgPSB1bmN1cnJ5VGhpcyhbXS5yZXZlcnNlKTtcbnZhciB0ZXN0ID0gWzEsIDJdO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLnJldmVyc2VgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUucmV2ZXJzZVxuLy8gZml4IGZvciBTYWZhcmkgMTIuMCBidWdcbi8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg3OTRcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IFN0cmluZyh0ZXN0KSA9PT0gU3RyaW5nKHRlc3QucmV2ZXJzZSgpKSB9LCB7XG4gIHJldmVyc2U6IGZ1bmN0aW9uIHJldmVyc2UoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtYXNzaWduIC0tIGRpcnR5IGhhY2tcbiAgICBpZiAoaXNBcnJheSh0aGlzKSkgdGhpcy5sZW5ndGggPSB0aGlzLmxlbmd0aDtcbiAgICByZXR1cm4gdW4kUmV2ZXJzZSh0aGlzKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5Jyk7XG52YXIgaXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jb25zdHJ1Y3RvcicpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgY3JlYXRlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaGFzLXNwZWNpZXMtc3VwcG9ydCcpO1xudmFyIHVuJFNsaWNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNsaWNlJyk7XG5cbnZhciBIQVNfU1BFQ0lFU19TVVBQT1JUID0gYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCgnc2xpY2UnKTtcblxudmFyIFNQRUNJRVMgPSB3ZWxsS25vd25TeW1ib2woJ3NwZWNpZXMnKTtcbnZhciAkQXJyYXkgPSBBcnJheTtcbnZhciBtYXggPSBNYXRoLm1heDtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5zbGljZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5zbGljZVxuLy8gZmFsbGJhY2sgZm9yIG5vdCBhcnJheS1saWtlIEVTMyBzdHJpbmdzIGFuZCBET00gb2JqZWN0c1xuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogIUhBU19TUEVDSUVTX1NVUFBPUlQgfSwge1xuICBzbGljZTogZnVuY3Rpb24gc2xpY2Uoc3RhcnQsIGVuZCkge1xuICAgIHZhciBPID0gdG9JbmRleGVkT2JqZWN0KHRoaXMpO1xuICAgIHZhciBsZW5ndGggPSBsZW5ndGhPZkFycmF5TGlrZShPKTtcbiAgICB2YXIgayA9IHRvQWJzb2x1dGVJbmRleChzdGFydCwgbGVuZ3RoKTtcbiAgICB2YXIgZmluID0gdG9BYnNvbHV0ZUluZGV4KGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuZ3RoIDogZW5kLCBsZW5ndGgpO1xuICAgIC8vIGlubGluZSBgQXJyYXlTcGVjaWVzQ3JlYXRlYCBmb3IgdXNhZ2UgbmF0aXZlIGBBcnJheSNzbGljZWAgd2hlcmUgaXQncyBwb3NzaWJsZVxuICAgIHZhciBDb25zdHJ1Y3RvciwgcmVzdWx0LCBuO1xuICAgIGlmIChpc0FycmF5KE8pKSB7XG4gICAgICBDb25zdHJ1Y3RvciA9IE8uY29uc3RydWN0b3I7XG4gICAgICAvLyBjcm9zcy1yZWFsbSBmYWxsYmFja1xuICAgICAgaWYgKGlzQ29uc3RydWN0b3IoQ29uc3RydWN0b3IpICYmIChDb25zdHJ1Y3RvciA9PT0gJEFycmF5IHx8IGlzQXJyYXkoQ29uc3RydWN0b3IucHJvdG90eXBlKSkpIHtcbiAgICAgICAgQ29uc3RydWN0b3IgPSB1bmRlZmluZWQ7XG4gICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KENvbnN0cnVjdG9yKSkge1xuICAgICAgICBDb25zdHJ1Y3RvciA9IENvbnN0cnVjdG9yW1NQRUNJRVNdO1xuICAgICAgICBpZiAoQ29uc3RydWN0b3IgPT09IG51bGwpIENvbnN0cnVjdG9yID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgaWYgKENvbnN0cnVjdG9yID09PSAkQXJyYXkgfHwgQ29uc3RydWN0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdW4kU2xpY2UoTywgaywgZmluKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVzdWx0ID0gbmV3IChDb25zdHJ1Y3RvciA9PT0gdW5kZWZpbmVkID8gJEFycmF5IDogQ29uc3RydWN0b3IpKG1heChmaW4gLSBrLCAwKSk7XG4gICAgZm9yIChuID0gMDsgayA8IGZpbjsgaysrLCBuKyspIGlmIChrIGluIE8pIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgbiwgT1trXSk7XG4gICAgcmVzdWx0Lmxlbmd0aCA9IG47XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBhQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1jYWxsYWJsZScpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG52YXIgZGVsZXRlUHJvcGVydHlPclRocm93ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlbGV0ZS1wcm9wZXJ0eS1vci10aHJvdycpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgaW50ZXJuYWxTb3J0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNvcnQnKTtcbnZhciBhcnJheU1ldGhvZElzU3RyaWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1pcy1zdHJpY3QnKTtcbnZhciBGRiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtZmYtdmVyc2lvbicpO1xudmFyIElFX09SX0VER0UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLWlzLWllLW9yLWVkZ2UnKTtcbnZhciBWOCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtdjgtdmVyc2lvbicpO1xudmFyIFdFQktJVCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtd2Via2l0LXZlcnNpb24nKTtcblxudmFyIHRlc3QgPSBbXTtcbnZhciB1biRTb3J0ID0gdW5jdXJyeVRoaXModGVzdC5zb3J0KTtcbnZhciBwdXNoID0gdW5jdXJyeVRoaXModGVzdC5wdXNoKTtcblxuLy8gSUU4LVxudmFyIEZBSUxTX09OX1VOREVGSU5FRCA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdGVzdC5zb3J0KHVuZGVmaW5lZCk7XG59KTtcbi8vIFY4IGJ1Z1xudmFyIEZBSUxTX09OX05VTEwgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHRlc3Quc29ydChudWxsKTtcbn0pO1xuLy8gT2xkIFdlYktpdFxudmFyIFNUUklDVF9NRVRIT0QgPSBhcnJheU1ldGhvZElzU3RyaWN0KCdzb3J0Jyk7XG5cbnZhciBTVEFCTEVfU09SVCA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGZlYXR1cmUgZGV0ZWN0aW9uIGNhbiBiZSB0b28gc2xvdywgc28gY2hlY2sgZW5naW5lcyB2ZXJzaW9uc1xuICBpZiAoVjgpIHJldHVybiBWOCA8IDcwO1xuICBpZiAoRkYgJiYgRkYgPiAzKSByZXR1cm47XG4gIGlmIChJRV9PUl9FREdFKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKFdFQktJVCkgcmV0dXJuIFdFQktJVCA8IDYwMztcblxuICB2YXIgcmVzdWx0ID0gJyc7XG4gIHZhciBjb2RlLCBjaHIsIHZhbHVlLCBpbmRleDtcblxuICAvLyBnZW5lcmF0ZSBhbiBhcnJheSB3aXRoIG1vcmUgNTEyIGVsZW1lbnRzIChDaGFrcmEgYW5kIG9sZCBWOCBmYWlscyBvbmx5IGluIHRoaXMgY2FzZSlcbiAgZm9yIChjb2RlID0gNjU7IGNvZGUgPCA3NjsgY29kZSsrKSB7XG4gICAgY2hyID0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKTtcblxuICAgIHN3aXRjaCAoY29kZSkge1xuICAgICAgY2FzZSA2NjogY2FzZSA2OTogY2FzZSA3MDogY2FzZSA3MjogdmFsdWUgPSAzOyBicmVhaztcbiAgICAgIGNhc2UgNjg6IGNhc2UgNzE6IHZhbHVlID0gNDsgYnJlYWs7XG4gICAgICBkZWZhdWx0OiB2YWx1ZSA9IDI7XG4gICAgfVxuXG4gICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgNDc7IGluZGV4KyspIHtcbiAgICAgIHRlc3QucHVzaCh7IGs6IGNociArIGluZGV4LCB2OiB2YWx1ZSB9KTtcbiAgICB9XG4gIH1cblxuICB0ZXN0LnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGIudiAtIGEudjsgfSk7XG5cbiAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgdGVzdC5sZW5ndGg7IGluZGV4KyspIHtcbiAgICBjaHIgPSB0ZXN0W2luZGV4XS5rLmNoYXJBdCgwKTtcbiAgICBpZiAocmVzdWx0LmNoYXJBdChyZXN1bHQubGVuZ3RoIC0gMSkgIT09IGNocikgcmVzdWx0ICs9IGNocjtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQgIT09ICdER0JFRkhBQ0lKSyc7XG59KTtcblxudmFyIEZPUkNFRCA9IEZBSUxTX09OX1VOREVGSU5FRCB8fCAhRkFJTFNfT05fTlVMTCB8fCAhU1RSSUNUX01FVEhPRCB8fCAhU1RBQkxFX1NPUlQ7XG5cbnZhciBnZXRTb3J0Q29tcGFyZSA9IGZ1bmN0aW9uIChjb21wYXJlZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh4LCB5KSB7XG4gICAgaWYgKHkgPT09IHVuZGVmaW5lZCkgcmV0dXJuIC0xO1xuICAgIGlmICh4ID09PSB1bmRlZmluZWQpIHJldHVybiAxO1xuICAgIGlmIChjb21wYXJlZm4gIT09IHVuZGVmaW5lZCkgcmV0dXJuICtjb21wYXJlZm4oeCwgeSkgfHwgMDtcbiAgICByZXR1cm4gdG9TdHJpbmcoeCkgPiB0b1N0cmluZyh5KSA/IDEgOiAtMTtcbiAgfTtcbn07XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuc29ydGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5zb3J0XG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBGT1JDRUQgfSwge1xuICBzb3J0OiBmdW5jdGlvbiBzb3J0KGNvbXBhcmVmbikge1xuICAgIGlmIChjb21wYXJlZm4gIT09IHVuZGVmaW5lZCkgYUNhbGxhYmxlKGNvbXBhcmVmbik7XG5cbiAgICB2YXIgYXJyYXkgPSB0b09iamVjdCh0aGlzKTtcblxuICAgIGlmIChTVEFCTEVfU09SVCkgcmV0dXJuIGNvbXBhcmVmbiA9PT0gdW5kZWZpbmVkID8gdW4kU29ydChhcnJheSkgOiB1biRTb3J0KGFycmF5LCBjb21wYXJlZm4pO1xuXG4gICAgdmFyIGl0ZW1zID0gW107XG4gICAgdmFyIGFycmF5TGVuZ3RoID0gbGVuZ3RoT2ZBcnJheUxpa2UoYXJyYXkpO1xuICAgIHZhciBpdGVtc0xlbmd0aCwgaW5kZXg7XG5cbiAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBhcnJheUxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgaWYgKGluZGV4IGluIGFycmF5KSBwdXNoKGl0ZW1zLCBhcnJheVtpbmRleF0pO1xuICAgIH1cblxuICAgIGludGVybmFsU29ydChpdGVtcywgZ2V0U29ydENvbXBhcmUoY29tcGFyZWZuKSk7XG5cbiAgICBpdGVtc0xlbmd0aCA9IGl0ZW1zLmxlbmd0aDtcbiAgICBpbmRleCA9IDA7XG5cbiAgICB3aGlsZSAoaW5kZXggPCBpdGVtc0xlbmd0aCkgYXJyYXlbaW5kZXhdID0gaXRlbXNbaW5kZXgrK107XG4gICAgd2hpbGUgKGluZGV4IDwgYXJyYXlMZW5ndGgpIGRlbGV0ZVByb3BlcnR5T3JUaHJvdyhhcnJheSwgaW5kZXgrKyk7XG5cbiAgICByZXR1cm4gYXJyYXk7XG4gIH1cbn0pO1xuIiwidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgRlVOQ1RJT05fTkFNRV9FWElTVFMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tbmFtZScpLkVYSVNUUztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5JykuZjtcblxudmFyIEZ1bmN0aW9uUHJvdG90eXBlID0gRnVuY3Rpb24ucHJvdG90eXBlO1xudmFyIGZ1bmN0aW9uVG9TdHJpbmcgPSB1bmN1cnJ5VGhpcyhGdW5jdGlvblByb3RvdHlwZS50b1N0cmluZyk7XG52YXIgbmFtZVJFID0gL2Z1bmN0aW9uXFxiKD86XFxzfFxcL1xcKltcXFNcXHNdKj9cXCpcXC98XFwvXFwvW15cXG5cXHJdKltcXG5cXHJdKykqKFteXFxzKC9dKikvO1xudmFyIHJlZ0V4cEV4ZWMgPSB1bmN1cnJ5VGhpcyhuYW1lUkUuZXhlYyk7XG52YXIgTkFNRSA9ICduYW1lJztcblxuLy8gRnVuY3Rpb24gaW5zdGFuY2VzIGAubmFtZWAgcHJvcGVydHlcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtZnVuY3Rpb24taW5zdGFuY2VzLW5hbWVcbmlmIChERVNDUklQVE9SUyAmJiAhRlVOQ1RJT05fTkFNRV9FWElTVFMpIHtcbiAgZGVmaW5lUHJvcGVydHkoRnVuY3Rpb25Qcm90b3R5cGUsIE5BTUUsIHtcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gcmVnRXhwRXhlYyhuYW1lUkUsIGZ1bmN0aW9uVG9TdHJpbmcodGhpcykpWzFdO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGFwcGx5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWFwcGx5Jyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5Jyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGlzU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXN5bWJvbCcpO1xudmFyIGFycmF5U2xpY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktc2xpY2UnKTtcbnZhciBOQVRJVkVfU1lNQk9MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS1zeW1ib2wnKTtcblxudmFyICRzdHJpbmdpZnkgPSBnZXRCdWlsdEluKCdKU09OJywgJ3N0cmluZ2lmeScpO1xudmFyIGV4ZWMgPSB1bmN1cnJ5VGhpcygvLi8uZXhlYyk7XG52YXIgY2hhckF0ID0gdW5jdXJyeVRoaXMoJycuY2hhckF0KTtcbnZhciBjaGFyQ29kZUF0ID0gdW5jdXJyeVRoaXMoJycuY2hhckNvZGVBdCk7XG52YXIgcmVwbGFjZSA9IHVuY3VycnlUaGlzKCcnLnJlcGxhY2UpO1xudmFyIG51bWJlclRvU3RyaW5nID0gdW5jdXJyeVRoaXMoMS4wLnRvU3RyaW5nKTtcblxudmFyIHRlc3RlciA9IC9bXFx1RDgwMC1cXHVERkZGXS9nO1xudmFyIGxvdyA9IC9eW1xcdUQ4MDAtXFx1REJGRl0kLztcbnZhciBoaSA9IC9eW1xcdURDMDAtXFx1REZGRl0kLztcblxudmFyIFdST05HX1NZTUJPTFNfQ09OVkVSU0lPTiA9ICFOQVRJVkVfU1lNQk9MIHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHN5bWJvbCA9IGdldEJ1aWx0SW4oJ1N5bWJvbCcpKCk7XG4gIC8vIE1TIEVkZ2UgY29udmVydHMgc3ltYm9sIHZhbHVlcyB0byBKU09OIGFzIHt9XG4gIHJldHVybiAkc3RyaW5naWZ5KFtzeW1ib2xdKSAhPSAnW251bGxdJ1xuICAgIC8vIFdlYktpdCBjb252ZXJ0cyBzeW1ib2wgdmFsdWVzIHRvIEpTT04gYXMgbnVsbFxuICAgIHx8ICRzdHJpbmdpZnkoeyBhOiBzeW1ib2wgfSkgIT0gJ3t9J1xuICAgIC8vIFY4IHRocm93cyBvbiBib3hlZCBzeW1ib2xzXG4gICAgfHwgJHN0cmluZ2lmeShPYmplY3Qoc3ltYm9sKSkgIT0gJ3t9Jztcbn0pO1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC13ZWxsLWZvcm1lZC1zdHJpbmdpZnlcbnZhciBJTExfRk9STUVEX1VOSUNPREUgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHJldHVybiAkc3RyaW5naWZ5KCdcXHVERjA2XFx1RDgzNCcpICE9PSAnXCJcXFxcdWRmMDZcXFxcdWQ4MzRcIidcbiAgICB8fCAkc3RyaW5naWZ5KCdcXHVERUFEJykgIT09ICdcIlxcXFx1ZGVhZFwiJztcbn0pO1xuXG52YXIgc3RyaW5naWZ5V2l0aFN5bWJvbHNGaXggPSBmdW5jdGlvbiAoaXQsIHJlcGxhY2VyKSB7XG4gIHZhciBhcmdzID0gYXJyYXlTbGljZShhcmd1bWVudHMpO1xuICB2YXIgJHJlcGxhY2VyID0gcmVwbGFjZXI7XG4gIGlmICghaXNPYmplY3QocmVwbGFjZXIpICYmIGl0ID09PSB1bmRlZmluZWQgfHwgaXNTeW1ib2woaXQpKSByZXR1cm47IC8vIElFOCByZXR1cm5zIHN0cmluZyBvbiB1bmRlZmluZWRcbiAgaWYgKCFpc0FycmF5KHJlcGxhY2VyKSkgcmVwbGFjZXIgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgIGlmIChpc0NhbGxhYmxlKCRyZXBsYWNlcikpIHZhbHVlID0gY2FsbCgkcmVwbGFjZXIsIHRoaXMsIGtleSwgdmFsdWUpO1xuICAgIGlmICghaXNTeW1ib2wodmFsdWUpKSByZXR1cm4gdmFsdWU7XG4gIH07XG4gIGFyZ3NbMV0gPSByZXBsYWNlcjtcbiAgcmV0dXJuIGFwcGx5KCRzdHJpbmdpZnksIG51bGwsIGFyZ3MpO1xufTtcblxudmFyIGZpeElsbEZvcm1lZCA9IGZ1bmN0aW9uIChtYXRjaCwgb2Zmc2V0LCBzdHJpbmcpIHtcbiAgdmFyIHByZXYgPSBjaGFyQXQoc3RyaW5nLCBvZmZzZXQgLSAxKTtcbiAgdmFyIG5leHQgPSBjaGFyQXQoc3RyaW5nLCBvZmZzZXQgKyAxKTtcbiAgaWYgKChleGVjKGxvdywgbWF0Y2gpICYmICFleGVjKGhpLCBuZXh0KSkgfHwgKGV4ZWMoaGksIG1hdGNoKSAmJiAhZXhlYyhsb3csIHByZXYpKSkge1xuICAgIHJldHVybiAnXFxcXHUnICsgbnVtYmVyVG9TdHJpbmcoY2hhckNvZGVBdChtYXRjaCwgMCksIDE2KTtcbiAgfSByZXR1cm4gbWF0Y2g7XG59O1xuXG5pZiAoJHN0cmluZ2lmeSkge1xuICAvLyBgSlNPTi5zdHJpbmdpZnlgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWpzb24uc3RyaW5naWZ5XG4gICQoeyB0YXJnZXQ6ICdKU09OJywgc3RhdDogdHJ1ZSwgYXJpdHk6IDMsIGZvcmNlZDogV1JPTkdfU1lNQk9MU19DT05WRVJTSU9OIHx8IElMTF9GT1JNRURfVU5JQ09ERSB9LCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzIC0tIHJlcXVpcmVkIGZvciBgLmxlbmd0aGBcbiAgICBzdHJpbmdpZnk6IGZ1bmN0aW9uIHN0cmluZ2lmeShpdCwgcmVwbGFjZXIsIHNwYWNlKSB7XG4gICAgICB2YXIgYXJncyA9IGFycmF5U2xpY2UoYXJndW1lbnRzKTtcbiAgICAgIHZhciByZXN1bHQgPSBhcHBseShXUk9OR19TWU1CT0xTX0NPTlZFUlNJT04gPyBzdHJpbmdpZnlXaXRoU3ltYm9sc0ZpeCA6ICRzdHJpbmdpZnksIG51bGwsIGFyZ3MpO1xuICAgICAgcmV0dXJuIElMTF9GT1JNRURfVU5JQ09ERSAmJiB0eXBlb2YgcmVzdWx0ID09ICdzdHJpbmcnID8gcmVwbGFjZShyZXN1bHQsIHRlc3RlciwgZml4SWxsRm9ybWVkKSA6IHJlc3VsdDtcbiAgICB9XG4gIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGlzRm9yY2VkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWZvcmNlZCcpO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBpbmhlcml0SWZSZXF1aXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmhlcml0LWlmLXJlcXVpcmVkJyk7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgaXNTeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtc3ltYm9sJyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzJykuZjtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpLmY7XG52YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG52YXIgdGhpc051bWJlclZhbHVlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RoaXMtbnVtYmVyLXZhbHVlJyk7XG52YXIgdHJpbSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctdHJpbScpLnRyaW07XG5cbnZhciBOVU1CRVIgPSAnTnVtYmVyJztcbnZhciBOYXRpdmVOdW1iZXIgPSBnbG9iYWxbTlVNQkVSXTtcbnZhciBOdW1iZXJQcm90b3R5cGUgPSBOYXRpdmVOdW1iZXIucHJvdG90eXBlO1xudmFyIFR5cGVFcnJvciA9IGdsb2JhbC5UeXBlRXJyb3I7XG52YXIgYXJyYXlTbGljZSA9IHVuY3VycnlUaGlzKCcnLnNsaWNlKTtcbnZhciBjaGFyQ29kZUF0ID0gdW5jdXJyeVRoaXMoJycuY2hhckNvZGVBdCk7XG5cbi8vIGBUb051bWVyaWNgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b251bWVyaWNcbnZhciB0b051bWVyaWMgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgdmFyIHByaW1WYWx1ZSA9IHRvUHJpbWl0aXZlKHZhbHVlLCAnbnVtYmVyJyk7XG4gIHJldHVybiB0eXBlb2YgcHJpbVZhbHVlID09ICdiaWdpbnQnID8gcHJpbVZhbHVlIDogdG9OdW1iZXIocHJpbVZhbHVlKTtcbn07XG5cbi8vIGBUb051bWJlcmAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvbnVtYmVyXG52YXIgdG9OdW1iZXIgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgdmFyIGl0ID0gdG9QcmltaXRpdmUoYXJndW1lbnQsICdudW1iZXInKTtcbiAgdmFyIGZpcnN0LCB0aGlyZCwgcmFkaXgsIG1heENvZGUsIGRpZ2l0cywgbGVuZ3RoLCBpbmRleCwgY29kZTtcbiAgaWYgKGlzU3ltYm9sKGl0KSkgdGhyb3cgVHlwZUVycm9yKCdDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIG51bWJlcicpO1xuICBpZiAodHlwZW9mIGl0ID09ICdzdHJpbmcnICYmIGl0Lmxlbmd0aCA+IDIpIHtcbiAgICBpdCA9IHRyaW0oaXQpO1xuICAgIGZpcnN0ID0gY2hhckNvZGVBdChpdCwgMCk7XG4gICAgaWYgKGZpcnN0ID09PSA0MyB8fCBmaXJzdCA9PT0gNDUpIHtcbiAgICAgIHRoaXJkID0gY2hhckNvZGVBdChpdCwgMik7XG4gICAgICBpZiAodGhpcmQgPT09IDg4IHx8IHRoaXJkID09PSAxMjApIHJldHVybiBOYU47IC8vIE51bWJlcignKzB4MScpIHNob3VsZCBiZSBOYU4sIG9sZCBWOCBmaXhcbiAgICB9IGVsc2UgaWYgKGZpcnN0ID09PSA0OCkge1xuICAgICAgc3dpdGNoIChjaGFyQ29kZUF0KGl0LCAxKSkge1xuICAgICAgICBjYXNlIDY2OiBjYXNlIDk4OiByYWRpeCA9IDI7IG1heENvZGUgPSA0OTsgYnJlYWs7IC8vIGZhc3QgZXF1YWwgb2YgL14wYlswMV0rJC9pXG4gICAgICAgIGNhc2UgNzk6IGNhc2UgMTExOiByYWRpeCA9IDg7IG1heENvZGUgPSA1NTsgYnJlYWs7IC8vIGZhc3QgZXF1YWwgb2YgL14wb1swLTddKyQvaVxuICAgICAgICBkZWZhdWx0OiByZXR1cm4gK2l0O1xuICAgICAgfVxuICAgICAgZGlnaXRzID0gYXJyYXlTbGljZShpdCwgMik7XG4gICAgICBsZW5ndGggPSBkaWdpdHMubGVuZ3RoO1xuICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvZGUgPSBjaGFyQ29kZUF0KGRpZ2l0cywgaW5kZXgpO1xuICAgICAgICAvLyBwYXJzZUludCBwYXJzZXMgYSBzdHJpbmcgdG8gYSBmaXJzdCB1bmF2YWlsYWJsZSBzeW1ib2xcbiAgICAgICAgLy8gYnV0IFRvTnVtYmVyIHNob3VsZCByZXR1cm4gTmFOIGlmIGEgc3RyaW5nIGNvbnRhaW5zIHVuYXZhaWxhYmxlIHN5bWJvbHNcbiAgICAgICAgaWYgKGNvZGUgPCA0OCB8fCBjb2RlID4gbWF4Q29kZSkgcmV0dXJuIE5hTjtcbiAgICAgIH0gcmV0dXJuIHBhcnNlSW50KGRpZ2l0cywgcmFkaXgpO1xuICAgIH1cbiAgfSByZXR1cm4gK2l0O1xufTtcblxuLy8gYE51bWJlcmAgY29uc3RydWN0b3Jcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtbnVtYmVyLWNvbnN0cnVjdG9yXG5pZiAoaXNGb3JjZWQoTlVNQkVSLCAhTmF0aXZlTnVtYmVyKCcgMG8xJykgfHwgIU5hdGl2ZU51bWJlcignMGIxJykgfHwgTmF0aXZlTnVtYmVyKCcrMHgxJykpKSB7XG4gIHZhciBOdW1iZXJXcmFwcGVyID0gZnVuY3Rpb24gTnVtYmVyKHZhbHVlKSB7XG4gICAgdmFyIG4gPSBhcmd1bWVudHMubGVuZ3RoIDwgMSA/IDAgOiBOYXRpdmVOdW1iZXIodG9OdW1lcmljKHZhbHVlKSk7XG4gICAgdmFyIGR1bW15ID0gdGhpcztcbiAgICAvLyBjaGVjayBvbiAxLi5jb25zdHJ1Y3Rvcihmb28pIGNhc2VcbiAgICByZXR1cm4gaXNQcm90b3R5cGVPZihOdW1iZXJQcm90b3R5cGUsIGR1bW15KSAmJiBmYWlscyhmdW5jdGlvbiAoKSB7IHRoaXNOdW1iZXJWYWx1ZShkdW1teSk7IH0pXG4gICAgICA/IGluaGVyaXRJZlJlcXVpcmVkKE9iamVjdChuKSwgZHVtbXksIE51bWJlcldyYXBwZXIpIDogbjtcbiAgfTtcbiAgZm9yICh2YXIga2V5cyA9IERFU0NSSVBUT1JTID8gZ2V0T3duUHJvcGVydHlOYW1lcyhOYXRpdmVOdW1iZXIpIDogKFxuICAgIC8vIEVTMzpcbiAgICAnTUFYX1ZBTFVFLE1JTl9WQUxVRSxOYU4sTkVHQVRJVkVfSU5GSU5JVFksUE9TSVRJVkVfSU5GSU5JVFksJyArXG4gICAgLy8gRVMyMDE1IChpbiBjYXNlLCBpZiBtb2R1bGVzIHdpdGggRVMyMDE1IE51bWJlciBzdGF0aWNzIHJlcXVpcmVkIGJlZm9yZSk6XG4gICAgJ0VQU0lMT04sTUFYX1NBRkVfSU5URUdFUixNSU5fU0FGRV9JTlRFR0VSLGlzRmluaXRlLGlzSW50ZWdlcixpc05hTixpc1NhZmVJbnRlZ2VyLHBhcnNlRmxvYXQscGFyc2VJbnQsJyArXG4gICAgLy8gRVNOZXh0XG4gICAgJ2Zyb21TdHJpbmcscmFuZ2UnXG4gICkuc3BsaXQoJywnKSwgaiA9IDAsIGtleTsga2V5cy5sZW5ndGggPiBqOyBqKyspIHtcbiAgICBpZiAoaGFzT3duKE5hdGl2ZU51bWJlciwga2V5ID0ga2V5c1tqXSkgJiYgIWhhc093bihOdW1iZXJXcmFwcGVyLCBrZXkpKSB7XG4gICAgICBkZWZpbmVQcm9wZXJ0eShOdW1iZXJXcmFwcGVyLCBrZXksIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihOYXRpdmVOdW1iZXIsIGtleSkpO1xuICAgIH1cbiAgfVxuICBOdW1iZXJXcmFwcGVyLnByb3RvdHlwZSA9IE51bWJlclByb3RvdHlwZTtcbiAgTnVtYmVyUHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTnVtYmVyV3JhcHBlcjtcbiAgZGVmaW5lQnVpbHRJbihnbG9iYWwsIE5VTUJFUiwgTnVtYmVyV3JhcHBlciwgeyBjb25zdHJ1Y3RvcjogdHJ1ZSB9KTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xudmFyIHRoaXNOdW1iZXJWYWx1ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90aGlzLW51bWJlci12YWx1ZScpO1xudmFyICRyZXBlYXQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLXJlcGVhdCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbnZhciAkUmFuZ2VFcnJvciA9IFJhbmdlRXJyb3I7XG52YXIgJFN0cmluZyA9IFN0cmluZztcbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG52YXIgcmVwZWF0ID0gdW5jdXJyeVRoaXMoJHJlcGVhdCk7XG52YXIgc3RyaW5nU2xpY2UgPSB1bmN1cnJ5VGhpcygnJy5zbGljZSk7XG52YXIgdW4kVG9GaXhlZCA9IHVuY3VycnlUaGlzKDEuMC50b0ZpeGVkKTtcblxudmFyIHBvdyA9IGZ1bmN0aW9uICh4LCBuLCBhY2MpIHtcbiAgcmV0dXJuIG4gPT09IDAgPyBhY2MgOiBuICUgMiA9PT0gMSA/IHBvdyh4LCBuIC0gMSwgYWNjICogeCkgOiBwb3coeCAqIHgsIG4gLyAyLCBhY2MpO1xufTtcblxudmFyIGxvZyA9IGZ1bmN0aW9uICh4KSB7XG4gIHZhciBuID0gMDtcbiAgdmFyIHgyID0geDtcbiAgd2hpbGUgKHgyID49IDQwOTYpIHtcbiAgICBuICs9IDEyO1xuICAgIHgyIC89IDQwOTY7XG4gIH1cbiAgd2hpbGUgKHgyID49IDIpIHtcbiAgICBuICs9IDE7XG4gICAgeDIgLz0gMjtcbiAgfSByZXR1cm4gbjtcbn07XG5cbnZhciBtdWx0aXBseSA9IGZ1bmN0aW9uIChkYXRhLCBuLCBjKSB7XG4gIHZhciBpbmRleCA9IC0xO1xuICB2YXIgYzIgPSBjO1xuICB3aGlsZSAoKytpbmRleCA8IDYpIHtcbiAgICBjMiArPSBuICogZGF0YVtpbmRleF07XG4gICAgZGF0YVtpbmRleF0gPSBjMiAlIDFlNztcbiAgICBjMiA9IGZsb29yKGMyIC8gMWU3KTtcbiAgfVxufTtcblxudmFyIGRpdmlkZSA9IGZ1bmN0aW9uIChkYXRhLCBuKSB7XG4gIHZhciBpbmRleCA9IDY7XG4gIHZhciBjID0gMDtcbiAgd2hpbGUgKC0taW5kZXggPj0gMCkge1xuICAgIGMgKz0gZGF0YVtpbmRleF07XG4gICAgZGF0YVtpbmRleF0gPSBmbG9vcihjIC8gbik7XG4gICAgYyA9IChjICUgbikgKiAxZTc7XG4gIH1cbn07XG5cbnZhciBkYXRhVG9TdHJpbmcgPSBmdW5jdGlvbiAoZGF0YSkge1xuICB2YXIgaW5kZXggPSA2O1xuICB2YXIgcyA9ICcnO1xuICB3aGlsZSAoLS1pbmRleCA+PSAwKSB7XG4gICAgaWYgKHMgIT09ICcnIHx8IGluZGV4ID09PSAwIHx8IGRhdGFbaW5kZXhdICE9PSAwKSB7XG4gICAgICB2YXIgdCA9ICRTdHJpbmcoZGF0YVtpbmRleF0pO1xuICAgICAgcyA9IHMgPT09ICcnID8gdCA6IHMgKyByZXBlYXQoJzAnLCA3IC0gdC5sZW5ndGgpICsgdDtcbiAgICB9XG4gIH0gcmV0dXJuIHM7XG59O1xuXG52YXIgRk9SQ0VEID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdW4kVG9GaXhlZCgwLjAwMDA4LCAzKSAhPT0gJzAuMDAwJyB8fFxuICAgIHVuJFRvRml4ZWQoMC45LCAwKSAhPT0gJzEnIHx8XG4gICAgdW4kVG9GaXhlZCgxLjI1NSwgMikgIT09ICcxLjI1JyB8fFxuICAgIHVuJFRvRml4ZWQoMTAwMDAwMDAwMDAwMDAwMDEyOC4wLCAwKSAhPT0gJzEwMDAwMDAwMDAwMDAwMDAxMjgnO1xufSkgfHwgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gVjggfiBBbmRyb2lkIDQuMy1cbiAgdW4kVG9GaXhlZCh7fSk7XG59KTtcblxuLy8gYE51bWJlci5wcm90b3R5cGUudG9GaXhlZGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW51bWJlci5wcm90b3R5cGUudG9maXhlZFxuJCh7IHRhcmdldDogJ051bWJlcicsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IEZPUkNFRCB9LCB7XG4gIHRvRml4ZWQ6IGZ1bmN0aW9uIHRvRml4ZWQoZnJhY3Rpb25EaWdpdHMpIHtcbiAgICB2YXIgbnVtYmVyID0gdGhpc051bWJlclZhbHVlKHRoaXMpO1xuICAgIHZhciBmcmFjdERpZ2l0cyA9IHRvSW50ZWdlck9ySW5maW5pdHkoZnJhY3Rpb25EaWdpdHMpO1xuICAgIHZhciBkYXRhID0gWzAsIDAsIDAsIDAsIDAsIDBdO1xuICAgIHZhciBzaWduID0gJyc7XG4gICAgdmFyIHJlc3VsdCA9ICcwJztcbiAgICB2YXIgZSwgeiwgaiwgaztcblxuICAgIC8vIFRPRE86IEVTMjAxOCBpbmNyZWFzZWQgdGhlIG1heGltdW0gbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cyB0byAxMDAsIG5lZWQgdG8gaW1wcm92ZSB0aGUgaW1wbGVtZW50YXRpb25cbiAgICBpZiAoZnJhY3REaWdpdHMgPCAwIHx8IGZyYWN0RGlnaXRzID4gMjApIHRocm93ICRSYW5nZUVycm9yKCdJbmNvcnJlY3QgZnJhY3Rpb24gZGlnaXRzJyk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICBpZiAobnVtYmVyICE9IG51bWJlcikgcmV0dXJuICdOYU4nO1xuICAgIGlmIChudW1iZXIgPD0gLTFlMjEgfHwgbnVtYmVyID49IDFlMjEpIHJldHVybiAkU3RyaW5nKG51bWJlcik7XG4gICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgIHNpZ24gPSAnLSc7XG4gICAgICBudW1iZXIgPSAtbnVtYmVyO1xuICAgIH1cbiAgICBpZiAobnVtYmVyID4gMWUtMjEpIHtcbiAgICAgIGUgPSBsb2cobnVtYmVyICogcG93KDIsIDY5LCAxKSkgLSA2OTtcbiAgICAgIHogPSBlIDwgMCA/IG51bWJlciAqIHBvdygyLCAtZSwgMSkgOiBudW1iZXIgLyBwb3coMiwgZSwgMSk7XG4gICAgICB6ICo9IDB4MTAwMDAwMDAwMDAwMDA7XG4gICAgICBlID0gNTIgLSBlO1xuICAgICAgaWYgKGUgPiAwKSB7XG4gICAgICAgIG11bHRpcGx5KGRhdGEsIDAsIHopO1xuICAgICAgICBqID0gZnJhY3REaWdpdHM7XG4gICAgICAgIHdoaWxlIChqID49IDcpIHtcbiAgICAgICAgICBtdWx0aXBseShkYXRhLCAxZTcsIDApO1xuICAgICAgICAgIGogLT0gNztcbiAgICAgICAgfVxuICAgICAgICBtdWx0aXBseShkYXRhLCBwb3coMTAsIGosIDEpLCAwKTtcbiAgICAgICAgaiA9IGUgLSAxO1xuICAgICAgICB3aGlsZSAoaiA+PSAyMykge1xuICAgICAgICAgIGRpdmlkZShkYXRhLCAxIDw8IDIzKTtcbiAgICAgICAgICBqIC09IDIzO1xuICAgICAgICB9XG4gICAgICAgIGRpdmlkZShkYXRhLCAxIDw8IGopO1xuICAgICAgICBtdWx0aXBseShkYXRhLCAxLCAxKTtcbiAgICAgICAgZGl2aWRlKGRhdGEsIDIpO1xuICAgICAgICByZXN1bHQgPSBkYXRhVG9TdHJpbmcoZGF0YSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtdWx0aXBseShkYXRhLCAwLCB6KTtcbiAgICAgICAgbXVsdGlwbHkoZGF0YSwgMSA8PCAtZSwgMCk7XG4gICAgICAgIHJlc3VsdCA9IGRhdGFUb1N0cmluZyhkYXRhKSArIHJlcGVhdCgnMCcsIGZyYWN0RGlnaXRzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZyYWN0RGlnaXRzID4gMCkge1xuICAgICAgayA9IHJlc3VsdC5sZW5ndGg7XG4gICAgICByZXN1bHQgPSBzaWduICsgKGsgPD0gZnJhY3REaWdpdHNcbiAgICAgICAgPyAnMC4nICsgcmVwZWF0KCcwJywgZnJhY3REaWdpdHMgLSBrKSArIHJlc3VsdFxuICAgICAgICA6IHN0cmluZ1NsaWNlKHJlc3VsdCwgMCwgayAtIGZyYWN0RGlnaXRzKSArICcuJyArIHN0cmluZ1NsaWNlKHJlc3VsdCwgayAtIGZyYWN0RGlnaXRzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IHNpZ24gKyByZXN1bHQ7XG4gICAgfSByZXR1cm4gcmVzdWx0O1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGFzc2lnbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtYXNzaWduJyk7XG5cbi8vIGBPYmplY3QuYXNzaWduYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmFzc2lnblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWFzc2lnbiAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGFyaXR5OiAyLCBmb3JjZWQ6IE9iamVjdC5hc3NpZ24gIT09IGFzc2lnbiB9LCB7XG4gIGFzc2lnbjogYXNzaWduXG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIEZSRUVaSU5HID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZyZWV6aW5nJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBvbkZyZWV6ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1tZXRhZGF0YScpLm9uRnJlZXplO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1vYmplY3QtZnJlZXplIC0tIHNhZmVcbnZhciAkZnJlZXplID0gT2JqZWN0LmZyZWV6ZTtcbnZhciBGQUlMU19PTl9QUklNSVRJVkVTID0gZmFpbHMoZnVuY3Rpb24gKCkgeyAkZnJlZXplKDEpOyB9KTtcblxuLy8gYE9iamVjdC5mcmVlemVgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZnJlZXplXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSwgZm9yY2VkOiBGQUlMU19PTl9QUklNSVRJVkVTLCBzaGFtOiAhRlJFRVpJTkcgfSwge1xuICBmcmVlemU6IGZ1bmN0aW9uIGZyZWV6ZShpdCkge1xuICAgIHJldHVybiAkZnJlZXplICYmIGlzT2JqZWN0KGl0KSA/ICRmcmVlemUob25GcmVlemUoaXQpKSA6IGl0O1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgbmF0aXZlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3InKS5mO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG5cbnZhciBGQUlMU19PTl9QUklNSVRJVkVTID0gZmFpbHMoZnVuY3Rpb24gKCkgeyBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoMSk7IH0pO1xudmFyIEZPUkNFRCA9ICFERVNDUklQVE9SUyB8fCBGQUlMU19PTl9QUklNSVRJVkVTO1xuXG4vLyBgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3JcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IEZPUkNFRCwgc2hhbTogIURFU0NSSVBUT1JTIH0sIHtcbiAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaXQsIGtleSkge1xuICAgIHJldHVybiBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodG9JbmRleGVkT2JqZWN0KGl0KSwga2V5KTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIG93bktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb3duLWtleXMnKTtcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIGNyZWF0ZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eScpO1xuXG4vLyBgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yc1xuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIHNoYW06ICFERVNDUklQVE9SUyB9LCB7XG4gIGdldE93blByb3BlcnR5RGVzY3JpcHRvcnM6IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcnMob2JqZWN0KSB7XG4gICAgdmFyIE8gPSB0b0luZGV4ZWRPYmplY3Qob2JqZWN0KTtcbiAgICB2YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlLmY7XG4gICAgdmFyIGtleXMgPSBvd25LZXlzKE8pO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBrZXksIGRlc2NyaXB0b3I7XG4gICAgd2hpbGUgKGtleXMubGVuZ3RoID4gaW5kZXgpIHtcbiAgICAgIGRlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywga2V5ID0ga2V5c1tpbmRleCsrXSk7XG4gICAgICBpZiAoZGVzY3JpcHRvciAhPT0gdW5kZWZpbmVkKSBjcmVhdGVQcm9wZXJ0eShyZXN1bHQsIGtleSwgZGVzY3JpcHRvcik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzLWV4dGVybmFsJykuZjtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5bmFtZXMgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbnZhciBGQUlMU19PTl9QUklNSVRJVkVTID0gZmFpbHMoZnVuY3Rpb24gKCkgeyByZXR1cm4gIU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKDEpOyB9KTtcblxuLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5bmFtZXNcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IEZBSUxTX09OX1BSSU1JVElWRVMgfSwge1xuICBnZXRPd25Qcm9wZXJ0eU5hbWVzOiBnZXRPd25Qcm9wZXJ0eU5hbWVzXG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIE5BVElWRV9TWU1CT0wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbmF0aXZlLXN5bWJvbCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcblxuLy8gVjggfiBDaHJvbWUgMzggYW5kIDM5IGBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzYCBmYWlscyBvbiBwcmltaXRpdmVzXG4vLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zNDQzXG52YXIgRk9SQ0VEID0gIU5BVElWRV9TWU1CT0wgfHwgZmFpbHMoZnVuY3Rpb24gKCkgeyBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUuZigxKTsgfSk7XG5cbi8vIGBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5c3ltYm9sc1xuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogRk9SQ0VEIH0sIHtcbiAgZ2V0T3duUHJvcGVydHlTeW1ib2xzOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaXQpIHtcbiAgICB2YXIgJGdldE93blByb3BlcnR5U3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZS5mO1xuICAgIHJldHVybiAkZ2V0T3duUHJvcGVydHlTeW1ib2xzID8gJGdldE93blByb3BlcnR5U3ltYm9scyh0b09iamVjdChpdCkpIDogW107XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgbmF0aXZlS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbnZhciBGQUlMU19PTl9QUklNSVRJVkVTID0gZmFpbHMoZnVuY3Rpb24gKCkgeyBuYXRpdmVLZXlzKDEpOyB9KTtcblxuLy8gYE9iamVjdC5rZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmtleXNcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IEZBSUxTX09OX1BSSU1JVElWRVMgfSwge1xuICBrZXlzOiBmdW5jdGlvbiBrZXlzKGl0KSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXModG9PYmplY3QoaXQpKTtcbiAgfVxufSk7XG4iLCJ2YXIgVE9fU1RSSU5HX1RBR19TVVBQT1JUID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydCcpO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXRvLXN0cmluZycpO1xuXG4vLyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmdcbmlmICghVE9fU1RSSU5HX1RBR19TVVBQT1JUKSB7XG4gIGRlZmluZUJ1aWx0SW4oT2JqZWN0LnByb3RvdHlwZSwgJ3RvU3RyaW5nJywgdG9TdHJpbmcsIHsgdW5zYWZlOiB0cnVlIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZXhlYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZXhlYycpO1xuXG4vLyBgUmVnRXhwLnByb3RvdHlwZS5leGVjYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS5leGVjXG4kKHsgdGFyZ2V0OiAnUmVnRXhwJywgcHJvdG86IHRydWUsIGZvcmNlZDogLy4vLmV4ZWMgIT09IGV4ZWMgfSwge1xuICBleGVjOiBleGVjXG59KTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBkZWZpbmVCdWlsdEluQWNjZXNzb3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluLWFjY2Vzc29yJyk7XG52YXIgcmVnRXhwRmxhZ3MgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWZsYWdzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxuLy8gYmFiZWwtbWluaWZ5IGFuZCBDbG9zdXJlIENvbXBpbGVyIHRyYW5zcGlsZXMgUmVnRXhwKCcuJywgJ2QnKSAtPiAvLi9kIGFuZCBpdCBjYXVzZXMgU3ludGF4RXJyb3JcbnZhciBSZWdFeHAgPSBnbG9iYWwuUmVnRXhwO1xudmFyIFJlZ0V4cFByb3RvdHlwZSA9IFJlZ0V4cC5wcm90b3R5cGU7XG5cbnZhciBGT1JDRUQgPSBERVNDUklQVE9SUyAmJiBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciBJTkRJQ0VTX1NVUFBPUlQgPSB0cnVlO1xuICB0cnkge1xuICAgIFJlZ0V4cCgnLicsICdkJyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgSU5ESUNFU19TVVBQT1JUID0gZmFsc2U7XG4gIH1cblxuICB2YXIgTyA9IHt9O1xuICAvLyBtb2Rlcm4gVjggYnVnXG4gIHZhciBjYWxscyA9ICcnO1xuICB2YXIgZXhwZWN0ZWQgPSBJTkRJQ0VTX1NVUFBPUlQgPyAnZGdpbXN5JyA6ICdnaW1zeSc7XG5cbiAgdmFyIGFkZEdldHRlciA9IGZ1bmN0aW9uIChrZXksIGNocikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSBzYWZlXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIGtleSwgeyBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGNhbGxzICs9IGNocjtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gfSk7XG4gIH07XG5cbiAgdmFyIHBhaXJzID0ge1xuICAgIGRvdEFsbDogJ3MnLFxuICAgIGdsb2JhbDogJ2cnLFxuICAgIGlnbm9yZUNhc2U6ICdpJyxcbiAgICBtdWx0aWxpbmU6ICdtJyxcbiAgICBzdGlja3k6ICd5J1xuICB9O1xuXG4gIGlmIChJTkRJQ0VTX1NVUFBPUlQpIHBhaXJzLmhhc0luZGljZXMgPSAnZCc7XG5cbiAgZm9yICh2YXIga2V5IGluIHBhaXJzKSBhZGRHZXR0ZXIoa2V5LCBwYWlyc1trZXldKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1vYmplY3QtZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yIC0tIHNhZmVcbiAgdmFyIHJlc3VsdCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhwUHJvdG90eXBlLCAnZmxhZ3MnKS5nZXQuY2FsbChPKTtcblxuICByZXR1cm4gcmVzdWx0ICE9PSBleHBlY3RlZCB8fCBjYWxscyAhPT0gZXhwZWN0ZWQ7XG59KTtcblxuLy8gYFJlZ0V4cC5wcm90b3R5cGUuZmxhZ3NgIGdldHRlclxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXQtcmVnZXhwLnByb3RvdHlwZS5mbGFnc1xuaWYgKEZPUkNFRCkgZGVmaW5lQnVpbHRJbkFjY2Vzc29yKFJlZ0V4cFByb3RvdHlwZSwgJ2ZsYWdzJywge1xuICBjb25maWd1cmFibGU6IHRydWUsXG4gIGdldDogcmVnRXhwRmxhZ3Ncbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4Jyk7XG5cbnZhciAkUmFuZ2VFcnJvciA9IFJhbmdlRXJyb3I7XG52YXIgZnJvbUNoYXJDb2RlID0gU3RyaW5nLmZyb21DaGFyQ29kZTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLXN0cmluZy1mcm9tY29kZXBvaW50IC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG52YXIgJGZyb21Db2RlUG9pbnQgPSBTdHJpbmcuZnJvbUNvZGVQb2ludDtcbnZhciBqb2luID0gdW5jdXJyeVRoaXMoW10uam9pbik7XG5cbi8vIGxlbmd0aCBzaG91bGQgYmUgMSwgb2xkIEZGIHByb2JsZW1cbnZhciBJTkNPUlJFQ1RfTEVOR1RIID0gISEkZnJvbUNvZGVQb2ludCAmJiAkZnJvbUNvZGVQb2ludC5sZW5ndGggIT0gMTtcblxuLy8gYFN0cmluZy5mcm9tQ29kZVBvaW50YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLmZyb21jb2RlcG9pbnRcbiQoeyB0YXJnZXQ6ICdTdHJpbmcnLCBzdGF0OiB0cnVlLCBhcml0eTogMSwgZm9yY2VkOiBJTkNPUlJFQ1RfTEVOR1RIIH0sIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzIC0tIHJlcXVpcmVkIGZvciBgLmxlbmd0aGBcbiAgZnJvbUNvZGVQb2ludDogZnVuY3Rpb24gZnJvbUNvZGVQb2ludCh4KSB7XG4gICAgdmFyIGVsZW1lbnRzID0gW107XG4gICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIGkgPSAwO1xuICAgIHZhciBjb2RlO1xuICAgIHdoaWxlIChsZW5ndGggPiBpKSB7XG4gICAgICBjb2RlID0gK2FyZ3VtZW50c1tpKytdO1xuICAgICAgaWYgKHRvQWJzb2x1dGVJbmRleChjb2RlLCAweDEwRkZGRikgIT09IGNvZGUpIHRocm93ICRSYW5nZUVycm9yKGNvZGUgKyAnIGlzIG5vdCBhIHZhbGlkIGNvZGUgcG9pbnQnKTtcbiAgICAgIGVsZW1lbnRzW2ldID0gY29kZSA8IDB4MTAwMDBcbiAgICAgICAgPyBmcm9tQ2hhckNvZGUoY29kZSlcbiAgICAgICAgOiBmcm9tQ2hhckNvZGUoKChjb2RlIC09IDB4MTAwMDApID4+IDEwKSArIDB4RDgwMCwgY29kZSAlIDB4NDAwICsgMHhEQzAwKTtcbiAgICB9IHJldHVybiBqb2luKGVsZW1lbnRzLCAnJyk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgbm90QVJlZ0V4cCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9ub3QtYS1yZWdleHAnKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIGNvcnJlY3RJc1JlZ0V4cExvZ2ljID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvcnJlY3QtaXMtcmVnZXhwLWxvZ2ljJyk7XG5cbnZhciBzdHJpbmdJbmRleE9mID0gdW5jdXJyeVRoaXMoJycuaW5kZXhPZik7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLmluY2x1ZGVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5pbmNsdWRlc1xuJCh7IHRhcmdldDogJ1N0cmluZycsIHByb3RvOiB0cnVlLCBmb3JjZWQ6ICFjb3JyZWN0SXNSZWdFeHBMb2dpYygnaW5jbHVkZXMnKSB9LCB7XG4gIGluY2x1ZGVzOiBmdW5jdGlvbiBpbmNsdWRlcyhzZWFyY2hTdHJpbmcgLyogLCBwb3NpdGlvbiA9IDAgKi8pIHtcbiAgICByZXR1cm4gISF+c3RyaW5nSW5kZXhPZihcbiAgICAgIHRvU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhpcykpLFxuICAgICAgdG9TdHJpbmcobm90QVJlZ0V4cChzZWFyY2hTdHJpbmcpKSxcbiAgICAgIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkXG4gICAgKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2hhckF0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N0cmluZy1tdWx0aWJ5dGUnKS5jaGFyQXQ7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG52YXIgSW50ZXJuYWxTdGF0ZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZScpO1xudmFyIGRlZmluZUl0ZXJhdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1pdGVyYXRvcicpO1xuXG52YXIgU1RSSU5HX0lURVJBVE9SID0gJ1N0cmluZyBJdGVyYXRvcic7XG52YXIgc2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuc2V0O1xudmFyIGdldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldHRlckZvcihTVFJJTkdfSVRFUkFUT1IpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZVtAQGl0ZXJhdG9yXWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUtQEBpdGVyYXRvclxuZGVmaW5lSXRlcmF0b3IoU3RyaW5nLCAnU3RyaW5nJywgZnVuY3Rpb24gKGl0ZXJhdGVkKSB7XG4gIHNldEludGVybmFsU3RhdGUodGhpcywge1xuICAgIHR5cGU6IFNUUklOR19JVEVSQVRPUixcbiAgICBzdHJpbmc6IHRvU3RyaW5nKGl0ZXJhdGVkKSxcbiAgICBpbmRleDogMFxuICB9KTtcbi8vIGAlU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUlLm5leHRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0lc3RyaW5naXRlcmF0b3Jwcm90b3R5cGUlLm5leHRcbn0sIGZ1bmN0aW9uIG5leHQoKSB7XG4gIHZhciBzdGF0ZSA9IGdldEludGVybmFsU3RhdGUodGhpcyk7XG4gIHZhciBzdHJpbmcgPSBzdGF0ZS5zdHJpbmc7XG4gIHZhciBpbmRleCA9IHN0YXRlLmluZGV4O1xuICB2YXIgcG9pbnQ7XG4gIGlmIChpbmRleCA+PSBzdHJpbmcubGVuZ3RoKSByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIHBvaW50ID0gY2hhckF0KHN0cmluZywgaW5kZXgpO1xuICBzdGF0ZS5pbmRleCArPSBwb2ludC5sZW5ndGg7XG4gIHJldHVybiB7IHZhbHVlOiBwb2ludCwgZG9uZTogZmFsc2UgfTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIGZpeFJlZ0V4cFdlbGxLbm93blN5bWJvbExvZ2ljID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZpeC1yZWdleHAtd2VsbC1rbm93bi1zeW1ib2wtbG9naWMnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIGdldE1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtbWV0aG9kJyk7XG52YXIgYWR2YW5jZVN0cmluZ0luZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FkdmFuY2Utc3RyaW5nLWluZGV4Jyk7XG52YXIgcmVnRXhwRXhlYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZXhlYy1hYnN0cmFjdCcpO1xuXG4vLyBAQG1hdGNoIGxvZ2ljXG5maXhSZWdFeHBXZWxsS25vd25TeW1ib2xMb2dpYygnbWF0Y2gnLCBmdW5jdGlvbiAoTUFUQ0gsIG5hdGl2ZU1hdGNoLCBtYXliZUNhbGxOYXRpdmUpIHtcbiAgcmV0dXJuIFtcbiAgICAvLyBgU3RyaW5nLnByb3RvdHlwZS5tYXRjaGAgbWV0aG9kXG4gICAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLm1hdGNoXG4gICAgZnVuY3Rpb24gbWF0Y2gocmVnZXhwKSB7XG4gICAgICB2YXIgTyA9IHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhpcyk7XG4gICAgICB2YXIgbWF0Y2hlciA9IHJlZ2V4cCA9PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBnZXRNZXRob2QocmVnZXhwLCBNQVRDSCk7XG4gICAgICByZXR1cm4gbWF0Y2hlciA/IGNhbGwobWF0Y2hlciwgcmVnZXhwLCBPKSA6IG5ldyBSZWdFeHAocmVnZXhwKVtNQVRDSF0odG9TdHJpbmcoTykpO1xuICAgIH0sXG4gICAgLy8gYFJlZ0V4cC5wcm90b3R5cGVbQEBtYXRjaF1gIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1AQG1hdGNoXG4gICAgZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgdmFyIHJ4ID0gYW5PYmplY3QodGhpcyk7XG4gICAgICB2YXIgUyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICB2YXIgcmVzID0gbWF5YmVDYWxsTmF0aXZlKG5hdGl2ZU1hdGNoLCByeCwgUyk7XG5cbiAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcblxuICAgICAgaWYgKCFyeC5nbG9iYWwpIHJldHVybiByZWdFeHBFeGVjKHJ4LCBTKTtcblxuICAgICAgdmFyIGZ1bGxVbmljb2RlID0gcngudW5pY29kZTtcbiAgICAgIHJ4Lmxhc3RJbmRleCA9IDA7XG4gICAgICB2YXIgQSA9IFtdO1xuICAgICAgdmFyIG4gPSAwO1xuICAgICAgdmFyIHJlc3VsdDtcbiAgICAgIHdoaWxlICgocmVzdWx0ID0gcmVnRXhwRXhlYyhyeCwgUykpICE9PSBudWxsKSB7XG4gICAgICAgIHZhciBtYXRjaFN0ciA9IHRvU3RyaW5nKHJlc3VsdFswXSk7XG4gICAgICAgIEFbbl0gPSBtYXRjaFN0cjtcbiAgICAgICAgaWYgKG1hdGNoU3RyID09PSAnJykgcngubGFzdEluZGV4ID0gYWR2YW5jZVN0cmluZ0luZGV4KFMsIHRvTGVuZ3RoKHJ4Lmxhc3RJbmRleCksIGZ1bGxVbmljb2RlKTtcbiAgICAgICAgbisrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG4gPT09IDAgPyBudWxsIDogQTtcbiAgICB9XG4gIF07XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBmaXhSZWdFeHBXZWxsS25vd25TeW1ib2xMb2dpYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9maXgtcmVnZXhwLXdlbGwta25vd24tc3ltYm9sLWxvZ2ljJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcbnZhciBzYW1lVmFsdWUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2FtZS12YWx1ZScpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIGdldE1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtbWV0aG9kJyk7XG52YXIgcmVnRXhwRXhlYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZXhlYy1hYnN0cmFjdCcpO1xuXG4vLyBAQHNlYXJjaCBsb2dpY1xuZml4UmVnRXhwV2VsbEtub3duU3ltYm9sTG9naWMoJ3NlYXJjaCcsIGZ1bmN0aW9uIChTRUFSQ0gsIG5hdGl2ZVNlYXJjaCwgbWF5YmVDYWxsTmF0aXZlKSB7XG4gIHJldHVybiBbXG4gICAgLy8gYFN0cmluZy5wcm90b3R5cGUuc2VhcmNoYCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUuc2VhcmNoXG4gICAgZnVuY3Rpb24gc2VhcmNoKHJlZ2V4cCkge1xuICAgICAgdmFyIE8gPSByZXF1aXJlT2JqZWN0Q29lcmNpYmxlKHRoaXMpO1xuICAgICAgdmFyIHNlYXJjaGVyID0gcmVnZXhwID09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IGdldE1ldGhvZChyZWdleHAsIFNFQVJDSCk7XG4gICAgICByZXR1cm4gc2VhcmNoZXIgPyBjYWxsKHNlYXJjaGVyLCByZWdleHAsIE8pIDogbmV3IFJlZ0V4cChyZWdleHApW1NFQVJDSF0odG9TdHJpbmcoTykpO1xuICAgIH0sXG4gICAgLy8gYFJlZ0V4cC5wcm90b3R5cGVbQEBzZWFyY2hdYCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXJlZ2V4cC5wcm90b3R5cGUtQEBzZWFyY2hcbiAgICBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICB2YXIgcnggPSBhbk9iamVjdCh0aGlzKTtcbiAgICAgIHZhciBTID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIHZhciByZXMgPSBtYXliZUNhbGxOYXRpdmUobmF0aXZlU2VhcmNoLCByeCwgUyk7XG5cbiAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcblxuICAgICAgdmFyIHByZXZpb3VzTGFzdEluZGV4ID0gcngubGFzdEluZGV4O1xuICAgICAgaWYgKCFzYW1lVmFsdWUocHJldmlvdXNMYXN0SW5kZXgsIDApKSByeC5sYXN0SW5kZXggPSAwO1xuICAgICAgdmFyIHJlc3VsdCA9IHJlZ0V4cEV4ZWMocngsIFMpO1xuICAgICAgaWYgKCFzYW1lVmFsdWUocngubGFzdEluZGV4LCBwcmV2aW91c0xhc3RJbmRleCkpIHJ4Lmxhc3RJbmRleCA9IHByZXZpb3VzTGFzdEluZGV4O1xuICAgICAgcmV0dXJuIHJlc3VsdCA9PT0gbnVsbCA/IC0xIDogcmVzdWx0LmluZGV4O1xuICAgIH1cbiAgXTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFwcGx5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWFwcGx5Jyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgZml4UmVnRXhwV2VsbEtub3duU3ltYm9sTG9naWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZml4LXJlZ2V4cC13ZWxsLWtub3duLXN5bWJvbC1sb2dpYycpO1xudmFyIGlzUmVnRXhwID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXJlZ2V4cCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG52YXIgc3BlY2llc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NwZWNpZXMtY29uc3RydWN0b3InKTtcbnZhciBhZHZhbmNlU3RyaW5nSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYWR2YW5jZS1zdHJpbmctaW5kZXgnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcbnZhciBnZXRNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LW1ldGhvZCcpO1xudmFyIGFycmF5U2xpY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktc2xpY2Utc2ltcGxlJyk7XG52YXIgY2FsbFJlZ0V4cEV4ZWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMtYWJzdHJhY3QnKTtcbnZhciByZWdleHBFeGVjID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1leGVjJyk7XG52YXIgc3RpY2t5SGVscGVycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtc3RpY2t5LWhlbHBlcnMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG52YXIgVU5TVVBQT1JURURfWSA9IHN0aWNreUhlbHBlcnMuVU5TVVBQT1JURURfWTtcbnZhciBNQVhfVUlOVDMyID0gMHhGRkZGRkZGRjtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbnZhciAkcHVzaCA9IFtdLnB1c2g7XG52YXIgZXhlYyA9IHVuY3VycnlUaGlzKC8uLy5leGVjKTtcbnZhciBwdXNoID0gdW5jdXJyeVRoaXMoJHB1c2gpO1xudmFyIHN0cmluZ1NsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xuXG4vLyBDaHJvbWUgNTEgaGFzIGEgYnVnZ3kgXCJzcGxpdFwiIGltcGxlbWVudGF0aW9uIHdoZW4gUmVnRXhwI2V4ZWMgIT09IG5hdGl2ZUV4ZWNcbi8vIFdlZXggSlMgaGFzIGZyb3plbiBidWlsdC1pbiBwcm90b3R5cGVzLCBzbyB1c2UgdHJ5IC8gY2F0Y2ggd3JhcHBlclxudmFyIFNQTElUX1dPUktTX1dJVEhfT1ZFUldSSVRURU5fRVhFQyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWdleHAvbm8tZW1wdHktZ3JvdXAgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgdmFyIHJlID0gLyg/OikvO1xuICB2YXIgb3JpZ2luYWxFeGVjID0gcmUuZXhlYztcbiAgcmUuZXhlYyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG9yaWdpbmFsRXhlYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9O1xuICB2YXIgcmVzdWx0ID0gJ2FiJy5zcGxpdChyZSk7XG4gIHJldHVybiByZXN1bHQubGVuZ3RoICE9PSAyIHx8IHJlc3VsdFswXSAhPT0gJ2EnIHx8IHJlc3VsdFsxXSAhPT0gJ2InO1xufSk7XG5cbi8vIEBAc3BsaXQgbG9naWNcbmZpeFJlZ0V4cFdlbGxLbm93blN5bWJvbExvZ2ljKCdzcGxpdCcsIGZ1bmN0aW9uIChTUExJVCwgbmF0aXZlU3BsaXQsIG1heWJlQ2FsbE5hdGl2ZSkge1xuICB2YXIgaW50ZXJuYWxTcGxpdDtcbiAgaWYgKFxuICAgICdhYmJjJy5zcGxpdCgvKGIpKi8pWzFdID09ICdjJyB8fFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWdleHAvbm8tZW1wdHktZ3JvdXAgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgICAndGVzdCcuc3BsaXQoLyg/OikvLCAtMSkubGVuZ3RoICE9IDQgfHxcbiAgICAnYWInLnNwbGl0KC8oPzphYikqLykubGVuZ3RoICE9IDIgfHxcbiAgICAnLicuc3BsaXQoLyguPykoLj8pLykubGVuZ3RoICE9IDQgfHxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVnZXhwL25vLWVtcHR5LWNhcHR1cmluZy1ncm91cCwgcmVnZXhwL25vLWVtcHR5LWdyb3VwIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gICAgJy4nLnNwbGl0KC8oKSgpLykubGVuZ3RoID4gMSB8fFxuICAgICcnLnNwbGl0KC8uPy8pLmxlbmd0aFxuICApIHtcbiAgICAvLyBiYXNlZCBvbiBlczUtc2hpbSBpbXBsZW1lbnRhdGlvbiwgbmVlZCB0byByZXdvcmsgaXRcbiAgICBpbnRlcm5hbFNwbGl0ID0gZnVuY3Rpb24gKHNlcGFyYXRvciwgbGltaXQpIHtcbiAgICAgIHZhciBzdHJpbmcgPSB0b1N0cmluZyhyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKHRoaXMpKTtcbiAgICAgIHZhciBsaW0gPSBsaW1pdCA9PT0gdW5kZWZpbmVkID8gTUFYX1VJTlQzMiA6IGxpbWl0ID4+PiAwO1xuICAgICAgaWYgKGxpbSA9PT0gMCkgcmV0dXJuIFtdO1xuICAgICAgaWYgKHNlcGFyYXRvciA9PT0gdW5kZWZpbmVkKSByZXR1cm4gW3N0cmluZ107XG4gICAgICAvLyBJZiBgc2VwYXJhdG9yYCBpcyBub3QgYSByZWdleCwgdXNlIG5hdGl2ZSBzcGxpdFxuICAgICAgaWYgKCFpc1JlZ0V4cChzZXBhcmF0b3IpKSB7XG4gICAgICAgIHJldHVybiBjYWxsKG5hdGl2ZVNwbGl0LCBzdHJpbmcsIHNlcGFyYXRvciwgbGltKTtcbiAgICAgIH1cbiAgICAgIHZhciBvdXRwdXQgPSBbXTtcbiAgICAgIHZhciBmbGFncyA9IChzZXBhcmF0b3IuaWdub3JlQ2FzZSA/ICdpJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAoc2VwYXJhdG9yLm11bHRpbGluZSA/ICdtJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAoc2VwYXJhdG9yLnVuaWNvZGUgPyAndScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHNlcGFyYXRvci5zdGlja3kgPyAneScgOiAnJyk7XG4gICAgICB2YXIgbGFzdExhc3RJbmRleCA9IDA7XG4gICAgICAvLyBNYWtlIGBnbG9iYWxgIGFuZCBhdm9pZCBgbGFzdEluZGV4YCBpc3N1ZXMgYnkgd29ya2luZyB3aXRoIGEgY29weVxuICAgICAgdmFyIHNlcGFyYXRvckNvcHkgPSBuZXcgUmVnRXhwKHNlcGFyYXRvci5zb3VyY2UsIGZsYWdzICsgJ2cnKTtcbiAgICAgIHZhciBtYXRjaCwgbGFzdEluZGV4LCBsYXN0TGVuZ3RoO1xuICAgICAgd2hpbGUgKG1hdGNoID0gY2FsbChyZWdleHBFeGVjLCBzZXBhcmF0b3JDb3B5LCBzdHJpbmcpKSB7XG4gICAgICAgIGxhc3RJbmRleCA9IHNlcGFyYXRvckNvcHkubGFzdEluZGV4O1xuICAgICAgICBpZiAobGFzdEluZGV4ID4gbGFzdExhc3RJbmRleCkge1xuICAgICAgICAgIHB1c2gob3V0cHV0LCBzdHJpbmdTbGljZShzdHJpbmcsIGxhc3RMYXN0SW5kZXgsIG1hdGNoLmluZGV4KSk7XG4gICAgICAgICAgaWYgKG1hdGNoLmxlbmd0aCA+IDEgJiYgbWF0Y2guaW5kZXggPCBzdHJpbmcubGVuZ3RoKSBhcHBseSgkcHVzaCwgb3V0cHV0LCBhcnJheVNsaWNlKG1hdGNoLCAxKSk7XG4gICAgICAgICAgbGFzdExlbmd0aCA9IG1hdGNoWzBdLmxlbmd0aDtcbiAgICAgICAgICBsYXN0TGFzdEluZGV4ID0gbGFzdEluZGV4O1xuICAgICAgICAgIGlmIChvdXRwdXQubGVuZ3RoID49IGxpbSkgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlcGFyYXRvckNvcHkubGFzdEluZGV4ID09PSBtYXRjaC5pbmRleCkgc2VwYXJhdG9yQ29weS5sYXN0SW5kZXgrKzsgLy8gQXZvaWQgYW4gaW5maW5pdGUgbG9vcFxuICAgICAgfVxuICAgICAgaWYgKGxhc3RMYXN0SW5kZXggPT09IHN0cmluZy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKGxhc3RMZW5ndGggfHwgIWV4ZWMoc2VwYXJhdG9yQ29weSwgJycpKSBwdXNoKG91dHB1dCwgJycpO1xuICAgICAgfSBlbHNlIHB1c2gob3V0cHV0LCBzdHJpbmdTbGljZShzdHJpbmcsIGxhc3RMYXN0SW5kZXgpKTtcbiAgICAgIHJldHVybiBvdXRwdXQubGVuZ3RoID4gbGltID8gYXJyYXlTbGljZShvdXRwdXQsIDAsIGxpbSkgOiBvdXRwdXQ7XG4gICAgfTtcbiAgLy8gQ2hha3JhLCBWOFxuICB9IGVsc2UgaWYgKCcwJy5zcGxpdCh1bmRlZmluZWQsIDApLmxlbmd0aCkge1xuICAgIGludGVybmFsU3BsaXQgPSBmdW5jdGlvbiAoc2VwYXJhdG9yLCBsaW1pdCkge1xuICAgICAgcmV0dXJuIHNlcGFyYXRvciA9PT0gdW5kZWZpbmVkICYmIGxpbWl0ID09PSAwID8gW10gOiBjYWxsKG5hdGl2ZVNwbGl0LCB0aGlzLCBzZXBhcmF0b3IsIGxpbWl0KTtcbiAgICB9O1xuICB9IGVsc2UgaW50ZXJuYWxTcGxpdCA9IG5hdGl2ZVNwbGl0O1xuXG4gIHJldHVybiBbXG4gICAgLy8gYFN0cmluZy5wcm90b3R5cGUuc3BsaXRgIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5zcGxpdFxuICAgIGZ1bmN0aW9uIHNwbGl0KHNlcGFyYXRvciwgbGltaXQpIHtcbiAgICAgIHZhciBPID0gcmVxdWlyZU9iamVjdENvZXJjaWJsZSh0aGlzKTtcbiAgICAgIHZhciBzcGxpdHRlciA9IHNlcGFyYXRvciA9PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBnZXRNZXRob2Qoc2VwYXJhdG9yLCBTUExJVCk7XG4gICAgICByZXR1cm4gc3BsaXR0ZXJcbiAgICAgICAgPyBjYWxsKHNwbGl0dGVyLCBzZXBhcmF0b3IsIE8sIGxpbWl0KVxuICAgICAgICA6IGNhbGwoaW50ZXJuYWxTcGxpdCwgdG9TdHJpbmcoTyksIHNlcGFyYXRvciwgbGltaXQpO1xuICAgIH0sXG4gICAgLy8gYFJlZ0V4cC5wcm90b3R5cGVbQEBzcGxpdF1gIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1AQHNwbGl0XG4gICAgLy9cbiAgICAvLyBOT1RFOiBUaGlzIGNhbm5vdCBiZSBwcm9wZXJseSBwb2x5ZmlsbGVkIGluIGVuZ2luZXMgdGhhdCBkb24ndCBzdXBwb3J0XG4gICAgLy8gdGhlICd5JyBmbGFnLlxuICAgIGZ1bmN0aW9uIChzdHJpbmcsIGxpbWl0KSB7XG4gICAgICB2YXIgcnggPSBhbk9iamVjdCh0aGlzKTtcbiAgICAgIHZhciBTID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIHZhciByZXMgPSBtYXliZUNhbGxOYXRpdmUoaW50ZXJuYWxTcGxpdCwgcngsIFMsIGxpbWl0LCBpbnRlcm5hbFNwbGl0ICE9PSBuYXRpdmVTcGxpdCk7XG5cbiAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcblxuICAgICAgdmFyIEMgPSBzcGVjaWVzQ29uc3RydWN0b3IocngsIFJlZ0V4cCk7XG5cbiAgICAgIHZhciB1bmljb2RlTWF0Y2hpbmcgPSByeC51bmljb2RlO1xuICAgICAgdmFyIGZsYWdzID0gKHJ4Lmlnbm9yZUNhc2UgPyAnaScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHJ4Lm11bHRpbGluZSA/ICdtJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAocngudW5pY29kZSA/ICd1JyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAoVU5TVVBQT1JURURfWSA/ICdnJyA6ICd5Jyk7XG5cbiAgICAgIC8vIF4oPyArIHJ4ICsgKSBpcyBuZWVkZWQsIGluIGNvbWJpbmF0aW9uIHdpdGggc29tZSBTIHNsaWNpbmcsIHRvXG4gICAgICAvLyBzaW11bGF0ZSB0aGUgJ3knIGZsYWcuXG4gICAgICB2YXIgc3BsaXR0ZXIgPSBuZXcgQyhVTlNVUFBPUlRFRF9ZID8gJ14oPzonICsgcnguc291cmNlICsgJyknIDogcngsIGZsYWdzKTtcbiAgICAgIHZhciBsaW0gPSBsaW1pdCA9PT0gdW5kZWZpbmVkID8gTUFYX1VJTlQzMiA6IGxpbWl0ID4+PiAwO1xuICAgICAgaWYgKGxpbSA9PT0gMCkgcmV0dXJuIFtdO1xuICAgICAgaWYgKFMubGVuZ3RoID09PSAwKSByZXR1cm4gY2FsbFJlZ0V4cEV4ZWMoc3BsaXR0ZXIsIFMpID09PSBudWxsID8gW1NdIDogW107XG4gICAgICB2YXIgcCA9IDA7XG4gICAgICB2YXIgcSA9IDA7XG4gICAgICB2YXIgQSA9IFtdO1xuICAgICAgd2hpbGUgKHEgPCBTLmxlbmd0aCkge1xuICAgICAgICBzcGxpdHRlci5sYXN0SW5kZXggPSBVTlNVUFBPUlRFRF9ZID8gMCA6IHE7XG4gICAgICAgIHZhciB6ID0gY2FsbFJlZ0V4cEV4ZWMoc3BsaXR0ZXIsIFVOU1VQUE9SVEVEX1kgPyBzdHJpbmdTbGljZShTLCBxKSA6IFMpO1xuICAgICAgICB2YXIgZTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHogPT09IG51bGwgfHxcbiAgICAgICAgICAoZSA9IG1pbih0b0xlbmd0aChzcGxpdHRlci5sYXN0SW5kZXggKyAoVU5TVVBQT1JURURfWSA/IHEgOiAwKSksIFMubGVuZ3RoKSkgPT09IHBcbiAgICAgICAgKSB7XG4gICAgICAgICAgcSA9IGFkdmFuY2VTdHJpbmdJbmRleChTLCBxLCB1bmljb2RlTWF0Y2hpbmcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHB1c2goQSwgc3RyaW5nU2xpY2UoUywgcCwgcSkpO1xuICAgICAgICAgIGlmIChBLmxlbmd0aCA9PT0gbGltKSByZXR1cm4gQTtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSB6Lmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICAgICAgcHVzaChBLCB6W2ldKTtcbiAgICAgICAgICAgIGlmIChBLmxlbmd0aCA9PT0gbGltKSByZXR1cm4gQTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcSA9IHAgPSBlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBwdXNoKEEsIHN0cmluZ1NsaWNlKFMsIHApKTtcbiAgICAgIHJldHVybiBBO1xuICAgIH1cbiAgXTtcbn0sICFTUExJVF9XT1JLU19XSVRIX09WRVJXUklUVEVOX0VYRUMsIFVOU1VQUE9SVEVEX1kpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgTkFUSVZFX1NZTUJPTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uYXRpdmUtc3ltYm9sJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIGlzUHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZicpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvUHJvcGVydHlLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJvcGVydHkta2V5Jyk7XG52YXIgJHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIG5hdGl2ZU9iamVjdENyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgb2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cycpO1xudmFyIGdldE93blByb3BlcnR5TmFtZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzRXh0ZXJuYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMtZXh0ZXJuYWwnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scycpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGRlZmluZVByb3BlcnRpZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0aWVzJyk7XG52YXIgcHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXByb3BlcnR5LWlzLWVudW1lcmFibGUnKTtcbnZhciBkZWZpbmVCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbicpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdWlkJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgd3JhcHBlZFdlbGxLbm93blN5bWJvbE1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC13cmFwcGVkJyk7XG52YXIgZGVmaW5lV2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS13ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIGRlZmluZVN5bWJvbFRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N5bWJvbC1kZWZpbmUtdG8tcHJpbWl0aXZlJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG52YXIgJGZvckVhY2ggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZm9yRWFjaDtcblxudmFyIEhJRERFTiA9IHNoYXJlZEtleSgnaGlkZGVuJyk7XG52YXIgU1lNQk9MID0gJ1N5bWJvbCc7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG5cbnZhciBzZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5zZXQ7XG52YXIgZ2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0dGVyRm9yKFNZTUJPTCk7XG5cbnZhciBPYmplY3RQcm90b3R5cGUgPSBPYmplY3RbUFJPVE9UWVBFXTtcbnZhciAkU3ltYm9sID0gZ2xvYmFsLlN5bWJvbDtcbnZhciBTeW1ib2xQcm90b3R5cGUgPSAkU3ltYm9sICYmICRTeW1ib2xbUFJPVE9UWVBFXTtcbnZhciBUeXBlRXJyb3IgPSBnbG9iYWwuVHlwZUVycm9yO1xudmFyIFFPYmplY3QgPSBnbG9iYWwuUU9iamVjdDtcbnZhciBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUuZjtcbnZhciBuYXRpdmVEZWZpbmVQcm9wZXJ0eSA9IGRlZmluZVByb3BlcnR5TW9kdWxlLmY7XG52YXIgbmF0aXZlR2V0T3duUHJvcGVydHlOYW1lcyA9IGdldE93blByb3BlcnR5TmFtZXNFeHRlcm5hbC5mO1xudmFyIG5hdGl2ZVByb3BlcnR5SXNFbnVtZXJhYmxlID0gcHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUuZjtcbnZhciBwdXNoID0gdW5jdXJyeVRoaXMoW10ucHVzaCk7XG5cbnZhciBBbGxTeW1ib2xzID0gc2hhcmVkKCdzeW1ib2xzJyk7XG52YXIgT2JqZWN0UHJvdG90eXBlU3ltYm9scyA9IHNoYXJlZCgnb3Atc3ltYm9scycpO1xudmFyIFdlbGxLbm93blN5bWJvbHNTdG9yZSA9IHNoYXJlZCgnd2tzJyk7XG5cbi8vIERvbid0IHVzZSBzZXR0ZXJzIGluIFF0IFNjcmlwdCwgaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzE3M1xudmFyIFVTRV9TRVRURVIgPSAhUU9iamVjdCB8fCAhUU9iamVjdFtQUk9UT1RZUEVdIHx8ICFRT2JqZWN0W1BST1RPVFlQRV0uZmluZENoaWxkO1xuXG4vLyBmYWxsYmFjayBmb3Igb2xkIEFuZHJvaWQsIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD02ODdcbnZhciBzZXRTeW1ib2xEZXNjcmlwdG9yID0gREVTQ1JJUFRPUlMgJiYgZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmF0aXZlT2JqZWN0Q3JlYXRlKG5hdGl2ZURlZmluZVByb3BlcnR5KHt9LCAnYScsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5hdGl2ZURlZmluZVByb3BlcnR5KHRoaXMsICdhJywgeyB2YWx1ZTogNyB9KS5hOyB9XG4gIH0pKS5hICE9IDc7XG59KSA/IGZ1bmN0aW9uIChPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIHZhciBPYmplY3RQcm90b3R5cGVEZXNjcmlwdG9yID0gbmF0aXZlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdFByb3RvdHlwZSwgUCk7XG4gIGlmIChPYmplY3RQcm90b3R5cGVEZXNjcmlwdG9yKSBkZWxldGUgT2JqZWN0UHJvdG90eXBlW1BdO1xuICBuYXRpdmVEZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKTtcbiAgaWYgKE9iamVjdFByb3RvdHlwZURlc2NyaXB0b3IgJiYgTyAhPT0gT2JqZWN0UHJvdG90eXBlKSB7XG4gICAgbmF0aXZlRGVmaW5lUHJvcGVydHkoT2JqZWN0UHJvdG90eXBlLCBQLCBPYmplY3RQcm90b3R5cGVEZXNjcmlwdG9yKTtcbiAgfVxufSA6IG5hdGl2ZURlZmluZVByb3BlcnR5O1xuXG52YXIgd3JhcCA9IGZ1bmN0aW9uICh0YWcsIGRlc2NyaXB0aW9uKSB7XG4gIHZhciBzeW1ib2wgPSBBbGxTeW1ib2xzW3RhZ10gPSBuYXRpdmVPYmplY3RDcmVhdGUoU3ltYm9sUHJvdG90eXBlKTtcbiAgc2V0SW50ZXJuYWxTdGF0ZShzeW1ib2wsIHtcbiAgICB0eXBlOiBTWU1CT0wsXG4gICAgdGFnOiB0YWcsXG4gICAgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uXG4gIH0pO1xuICBpZiAoIURFU0NSSVBUT1JTKSBzeW1ib2wuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcbiAgcmV0dXJuIHN5bWJvbDtcbn07XG5cbnZhciAkZGVmaW5lUHJvcGVydHkgPSBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGlmIChPID09PSBPYmplY3RQcm90b3R5cGUpICRkZWZpbmVQcm9wZXJ0eShPYmplY3RQcm90b3R5cGVTeW1ib2xzLCBQLCBBdHRyaWJ1dGVzKTtcbiAgYW5PYmplY3QoTyk7XG4gIHZhciBrZXkgPSB0b1Byb3BlcnR5S2V5KFApO1xuICBhbk9iamVjdChBdHRyaWJ1dGVzKTtcbiAgaWYgKGhhc093bihBbGxTeW1ib2xzLCBrZXkpKSB7XG4gICAgaWYgKCFBdHRyaWJ1dGVzLmVudW1lcmFibGUpIHtcbiAgICAgIGlmICghaGFzT3duKE8sIEhJRERFTikpIG5hdGl2ZURlZmluZVByb3BlcnR5KE8sIEhJRERFTiwgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDEsIHt9KSk7XG4gICAgICBPW0hJRERFTl1ba2V5XSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChoYXNPd24oTywgSElEREVOKSAmJiBPW0hJRERFTl1ba2V5XSkgT1tISURERU5dW2tleV0gPSBmYWxzZTtcbiAgICAgIEF0dHJpYnV0ZXMgPSBuYXRpdmVPYmplY3RDcmVhdGUoQXR0cmlidXRlcywgeyBlbnVtZXJhYmxlOiBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoMCwgZmFsc2UpIH0pO1xuICAgIH0gcmV0dXJuIHNldFN5bWJvbERlc2NyaXB0b3IoTywga2V5LCBBdHRyaWJ1dGVzKTtcbiAgfSByZXR1cm4gbmF0aXZlRGVmaW5lUHJvcGVydHkoTywga2V5LCBBdHRyaWJ1dGVzKTtcbn07XG5cbnZhciAkZGVmaW5lUHJvcGVydGllcyA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoTywgUHJvcGVydGllcykge1xuICBhbk9iamVjdChPKTtcbiAgdmFyIHByb3BlcnRpZXMgPSB0b0luZGV4ZWRPYmplY3QoUHJvcGVydGllcyk7XG4gIHZhciBrZXlzID0gb2JqZWN0S2V5cyhwcm9wZXJ0aWVzKS5jb25jYXQoJGdldE93blByb3BlcnR5U3ltYm9scyhwcm9wZXJ0aWVzKSk7XG4gICRmb3JFYWNoKGtleXMsIGZ1bmN0aW9uIChrZXkpIHtcbiAgICBpZiAoIURFU0NSSVBUT1JTIHx8IGNhbGwoJHByb3BlcnR5SXNFbnVtZXJhYmxlLCBwcm9wZXJ0aWVzLCBrZXkpKSAkZGVmaW5lUHJvcGVydHkoTywga2V5LCBwcm9wZXJ0aWVzW2tleV0pO1xuICB9KTtcbiAgcmV0dXJuIE87XG59O1xuXG52YXIgJGNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZShPLCBQcm9wZXJ0aWVzKSB7XG4gIHJldHVybiBQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgPyBuYXRpdmVPYmplY3RDcmVhdGUoTykgOiAkZGVmaW5lUHJvcGVydGllcyhuYXRpdmVPYmplY3RDcmVhdGUoTyksIFByb3BlcnRpZXMpO1xufTtcblxudmFyICRwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IGZ1bmN0aW9uIHByb3BlcnR5SXNFbnVtZXJhYmxlKFYpIHtcbiAgdmFyIFAgPSB0b1Byb3BlcnR5S2V5KFYpO1xuICB2YXIgZW51bWVyYWJsZSA9IGNhbGwobmF0aXZlUHJvcGVydHlJc0VudW1lcmFibGUsIHRoaXMsIFApO1xuICBpZiAodGhpcyA9PT0gT2JqZWN0UHJvdG90eXBlICYmIGhhc093bihBbGxTeW1ib2xzLCBQKSAmJiAhaGFzT3duKE9iamVjdFByb3RvdHlwZVN5bWJvbHMsIFApKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiBlbnVtZXJhYmxlIHx8ICFoYXNPd24odGhpcywgUCkgfHwgIWhhc093bihBbGxTeW1ib2xzLCBQKSB8fCBoYXNPd24odGhpcywgSElEREVOKSAmJiB0aGlzW0hJRERFTl1bUF1cbiAgICA/IGVudW1lcmFibGUgOiB0cnVlO1xufTtcblxudmFyICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCkge1xuICB2YXIgaXQgPSB0b0luZGV4ZWRPYmplY3QoTyk7XG4gIHZhciBrZXkgPSB0b1Byb3BlcnR5S2V5KFApO1xuICBpZiAoaXQgPT09IE9iamVjdFByb3RvdHlwZSAmJiBoYXNPd24oQWxsU3ltYm9scywga2V5KSAmJiAhaGFzT3duKE9iamVjdFByb3RvdHlwZVN5bWJvbHMsIGtleSkpIHJldHVybjtcbiAgdmFyIGRlc2NyaXB0b3IgPSBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaXQsIGtleSk7XG4gIGlmIChkZXNjcmlwdG9yICYmIGhhc093bihBbGxTeW1ib2xzLCBrZXkpICYmICEoaGFzT3duKGl0LCBISURERU4pICYmIGl0W0hJRERFTl1ba2V5XSkpIHtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSB0cnVlO1xuICB9XG4gIHJldHVybiBkZXNjcmlwdG9yO1xufTtcblxudmFyICRnZXRPd25Qcm9wZXJ0eU5hbWVzID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhPKSB7XG4gIHZhciBuYW1lcyA9IG5hdGl2ZUdldE93blByb3BlcnR5TmFtZXModG9JbmRleGVkT2JqZWN0KE8pKTtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICAkZm9yRWFjaChuYW1lcywgZnVuY3Rpb24gKGtleSkge1xuICAgIGlmICghaGFzT3duKEFsbFN5bWJvbHMsIGtleSkgJiYgIWhhc093bihoaWRkZW5LZXlzLCBrZXkpKSBwdXNoKHJlc3VsdCwga2V5KTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG52YXIgJGdldE93blByb3BlcnR5U3ltYm9scyA9IGZ1bmN0aW9uIChPKSB7XG4gIHZhciBJU19PQkpFQ1RfUFJPVE9UWVBFID0gTyA9PT0gT2JqZWN0UHJvdG90eXBlO1xuICB2YXIgbmFtZXMgPSBuYXRpdmVHZXRPd25Qcm9wZXJ0eU5hbWVzKElTX09CSkVDVF9QUk9UT1RZUEUgPyBPYmplY3RQcm90b3R5cGVTeW1ib2xzIDogdG9JbmRleGVkT2JqZWN0KE8pKTtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICAkZm9yRWFjaChuYW1lcywgZnVuY3Rpb24gKGtleSkge1xuICAgIGlmIChoYXNPd24oQWxsU3ltYm9scywga2V5KSAmJiAoIUlTX09CSkVDVF9QUk9UT1RZUEUgfHwgaGFzT3duKE9iamVjdFByb3RvdHlwZSwga2V5KSkpIHtcbiAgICAgIHB1c2gocmVzdWx0LCBBbGxTeW1ib2xzW2tleV0pO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vLyBgU3ltYm9sYCBjb25zdHJ1Y3RvclxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zeW1ib2wtY29uc3RydWN0b3JcbmlmICghTkFUSVZFX1NZTUJPTCkge1xuICAkU3ltYm9sID0gZnVuY3Rpb24gU3ltYm9sKCkge1xuICAgIGlmIChpc1Byb3RvdHlwZU9mKFN5bWJvbFByb3RvdHlwZSwgdGhpcykpIHRocm93IFR5cGVFcnJvcignU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yJyk7XG4gICAgdmFyIGRlc2NyaXB0aW9uID0gIWFyZ3VtZW50cy5sZW5ndGggfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiAkdG9TdHJpbmcoYXJndW1lbnRzWzBdKTtcbiAgICB2YXIgdGFnID0gdWlkKGRlc2NyaXB0aW9uKTtcbiAgICB2YXIgc2V0dGVyID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBpZiAodGhpcyA9PT0gT2JqZWN0UHJvdG90eXBlKSBjYWxsKHNldHRlciwgT2JqZWN0UHJvdG90eXBlU3ltYm9scywgdmFsdWUpO1xuICAgICAgaWYgKGhhc093bih0aGlzLCBISURERU4pICYmIGhhc093bih0aGlzW0hJRERFTl0sIHRhZykpIHRoaXNbSElEREVOXVt0YWddID0gZmFsc2U7XG4gICAgICBzZXRTeW1ib2xEZXNjcmlwdG9yKHRoaXMsIHRhZywgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDEsIHZhbHVlKSk7XG4gICAgfTtcbiAgICBpZiAoREVTQ1JJUFRPUlMgJiYgVVNFX1NFVFRFUikgc2V0U3ltYm9sRGVzY3JpcHRvcihPYmplY3RQcm90b3R5cGUsIHRhZywgeyBjb25maWd1cmFibGU6IHRydWUsIHNldDogc2V0dGVyIH0pO1xuICAgIHJldHVybiB3cmFwKHRhZywgZGVzY3JpcHRpb24pO1xuICB9O1xuXG4gIFN5bWJvbFByb3RvdHlwZSA9ICRTeW1ib2xbUFJPVE9UWVBFXTtcblxuICBkZWZpbmVCdWlsdEluKFN5bWJvbFByb3RvdHlwZSwgJ3RvU3RyaW5nJywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIGdldEludGVybmFsU3RhdGUodGhpcykudGFnO1xuICB9KTtcblxuICBkZWZpbmVCdWlsdEluKCRTeW1ib2wsICd3aXRob3V0U2V0dGVyJywgZnVuY3Rpb24gKGRlc2NyaXB0aW9uKSB7XG4gICAgcmV0dXJuIHdyYXAodWlkKGRlc2NyaXB0aW9uKSwgZGVzY3JpcHRpb24pO1xuICB9KTtcblxuICBwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZS5mID0gJHByb3BlcnR5SXNFbnVtZXJhYmxlO1xuICBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mID0gJGRlZmluZVByb3BlcnR5O1xuICBkZWZpbmVQcm9wZXJ0aWVzTW9kdWxlLmYgPSAkZGVmaW5lUHJvcGVydGllcztcbiAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlLmYgPSAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuICBnZXRPd25Qcm9wZXJ0eU5hbWVzTW9kdWxlLmYgPSBnZXRPd25Qcm9wZXJ0eU5hbWVzRXh0ZXJuYWwuZiA9ICRnZXRPd25Qcm9wZXJ0eU5hbWVzO1xuICBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUuZiA9ICRnZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG5cbiAgd3JhcHBlZFdlbGxLbm93blN5bWJvbE1vZHVsZS5mID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICByZXR1cm4gd3JhcCh3ZWxsS25vd25TeW1ib2wobmFtZSksIG5hbWUpO1xuICB9O1xuXG4gIGlmIChERVNDUklQVE9SUykge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLVN5bWJvbC1kZXNjcmlwdGlvblxuICAgIG5hdGl2ZURlZmluZVByb3BlcnR5KFN5bWJvbFByb3RvdHlwZSwgJ2Rlc2NyaXB0aW9uJywge1xuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiBmdW5jdGlvbiBkZXNjcmlwdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldEludGVybmFsU3RhdGUodGhpcykuZGVzY3JpcHRpb247XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCFJU19QVVJFKSB7XG4gICAgICBkZWZpbmVCdWlsdEluKE9iamVjdFByb3RvdHlwZSwgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJywgJHByb3BlcnR5SXNFbnVtZXJhYmxlLCB7IHVuc2FmZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cbn1cblxuJCh7IGdsb2JhbDogdHJ1ZSwgY29uc3RydWN0b3I6IHRydWUsIHdyYXA6IHRydWUsIGZvcmNlZDogIU5BVElWRV9TWU1CT0wsIHNoYW06ICFOQVRJVkVfU1lNQk9MIH0sIHtcbiAgU3ltYm9sOiAkU3ltYm9sXG59KTtcblxuJGZvckVhY2gob2JqZWN0S2V5cyhXZWxsS25vd25TeW1ib2xzU3RvcmUpLCBmdW5jdGlvbiAobmFtZSkge1xuICBkZWZpbmVXZWxsS25vd25TeW1ib2wobmFtZSk7XG59KTtcblxuJCh7IHRhcmdldDogU1lNQk9MLCBzdGF0OiB0cnVlLCBmb3JjZWQ6ICFOQVRJVkVfU1lNQk9MIH0sIHtcbiAgdXNlU2V0dGVyOiBmdW5jdGlvbiAoKSB7IFVTRV9TRVRURVIgPSB0cnVlOyB9LFxuICB1c2VTaW1wbGU6IGZ1bmN0aW9uICgpIHsgVVNFX1NFVFRFUiA9IGZhbHNlOyB9XG59KTtcblxuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogIU5BVElWRV9TWU1CT0wsIHNoYW06ICFERVNDUklQVE9SUyB9LCB7XG4gIC8vIGBPYmplY3QuY3JlYXRlYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuY3JlYXRlXG4gIGNyZWF0ZTogJGNyZWF0ZSxcbiAgLy8gYE9iamVjdC5kZWZpbmVQcm9wZXJ0eWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnR5XG4gIGRlZmluZVByb3BlcnR5OiAkZGVmaW5lUHJvcGVydHksXG4gIC8vIGBPYmplY3QuZGVmaW5lUHJvcGVydGllc2AgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnRpZXNcbiAgZGVmaW5lUHJvcGVydGllczogJGRlZmluZVByb3BlcnRpZXMsXG4gIC8vIGBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yc1xuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Jcbn0pO1xuXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSwgZm9yY2VkOiAhTkFUSVZFX1NZTUJPTCB9LCB7XG4gIC8vIGBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc2AgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5bmFtZXNcbiAgZ2V0T3duUHJvcGVydHlOYW1lczogJGdldE93blByb3BlcnR5TmFtZXNcbn0pO1xuXG4vLyBgU3ltYm9sLnByb3RvdHlwZVtAQHRvUHJpbWl0aXZlXWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN5bWJvbC5wcm90b3R5cGUtQEB0b3ByaW1pdGl2ZVxuZGVmaW5lU3ltYm9sVG9QcmltaXRpdmUoKTtcblxuLy8gYFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ11gIHByb3BlcnR5XG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN5bWJvbC5wcm90b3R5cGUtQEB0b3N0cmluZ3RhZ1xuc2V0VG9TdHJpbmdUYWcoJFN5bWJvbCwgU1lNQk9MKTtcblxuaGlkZGVuS2V5c1tISURERU5dID0gdHJ1ZTtcbiIsIi8vIGBTeW1ib2wucHJvdG90eXBlLmRlc2NyaXB0aW9uYCBnZXR0ZXJcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3ltYm9sLnByb3RvdHlwZS5kZXNjcmlwdGlvblxuJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG52YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG52YXIgY29weUNvbnN0cnVjdG9yUHJvcGVydGllcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb3B5LWNvbnN0cnVjdG9yLXByb3BlcnRpZXMnKTtcblxudmFyIE5hdGl2ZVN5bWJvbCA9IGdsb2JhbC5TeW1ib2w7XG52YXIgU3ltYm9sUHJvdG90eXBlID0gTmF0aXZlU3ltYm9sICYmIE5hdGl2ZVN5bWJvbC5wcm90b3R5cGU7XG5cbmlmIChERVNDUklQVE9SUyAmJiBpc0NhbGxhYmxlKE5hdGl2ZVN5bWJvbCkgJiYgKCEoJ2Rlc2NyaXB0aW9uJyBpbiBTeW1ib2xQcm90b3R5cGUpIHx8XG4gIC8vIFNhZmFyaSAxMiBidWdcbiAgTmF0aXZlU3ltYm9sKCkuZGVzY3JpcHRpb24gIT09IHVuZGVmaW5lZFxuKSkge1xuICB2YXIgRW1wdHlTdHJpbmdEZXNjcmlwdGlvblN0b3JlID0ge307XG4gIC8vIHdyYXAgU3ltYm9sIGNvbnN0cnVjdG9yIGZvciBjb3JyZWN0IHdvcmsgd2l0aCB1bmRlZmluZWQgZGVzY3JpcHRpb25cbiAgdmFyIFN5bWJvbFdyYXBwZXIgPSBmdW5jdGlvbiBTeW1ib2woKSB7XG4gICAgdmFyIGRlc2NyaXB0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA8IDEgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiB0b1N0cmluZyhhcmd1bWVudHNbMF0pO1xuICAgIHZhciByZXN1bHQgPSBpc1Byb3RvdHlwZU9mKFN5bWJvbFByb3RvdHlwZSwgdGhpcylcbiAgICAgID8gbmV3IE5hdGl2ZVN5bWJvbChkZXNjcmlwdGlvbilcbiAgICAgIC8vIGluIEVkZ2UgMTMsIFN0cmluZyhTeW1ib2wodW5kZWZpbmVkKSkgPT09ICdTeW1ib2wodW5kZWZpbmVkKSdcbiAgICAgIDogZGVzY3JpcHRpb24gPT09IHVuZGVmaW5lZCA/IE5hdGl2ZVN5bWJvbCgpIDogTmF0aXZlU3ltYm9sKGRlc2NyaXB0aW9uKTtcbiAgICBpZiAoZGVzY3JpcHRpb24gPT09ICcnKSBFbXB0eVN0cmluZ0Rlc2NyaXB0aW9uU3RvcmVbcmVzdWx0XSA9IHRydWU7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuICBjb3B5Q29uc3RydWN0b3JQcm9wZXJ0aWVzKFN5bWJvbFdyYXBwZXIsIE5hdGl2ZVN5bWJvbCk7XG4gIFN5bWJvbFdyYXBwZXIucHJvdG90eXBlID0gU3ltYm9sUHJvdG90eXBlO1xuICBTeW1ib2xQcm90b3R5cGUuY29uc3RydWN0b3IgPSBTeW1ib2xXcmFwcGVyO1xuXG4gIHZhciBOQVRJVkVfU1lNQk9MID0gU3RyaW5nKE5hdGl2ZVN5bWJvbCgndGVzdCcpKSA9PSAnU3ltYm9sKHRlc3QpJztcbiAgdmFyIHN5bWJvbFRvU3RyaW5nID0gdW5jdXJyeVRoaXMoU3ltYm9sUHJvdG90eXBlLnRvU3RyaW5nKTtcbiAgdmFyIHN5bWJvbFZhbHVlT2YgPSB1bmN1cnJ5VGhpcyhTeW1ib2xQcm90b3R5cGUudmFsdWVPZik7XG4gIHZhciByZWdleHAgPSAvXlN5bWJvbFxcKCguKilcXClbXildKyQvO1xuICB2YXIgcmVwbGFjZSA9IHVuY3VycnlUaGlzKCcnLnJlcGxhY2UpO1xuICB2YXIgc3RyaW5nU2xpY2UgPSB1bmN1cnJ5VGhpcygnJy5zbGljZSk7XG5cbiAgZGVmaW5lUHJvcGVydHkoU3ltYm9sUHJvdG90eXBlLCAnZGVzY3JpcHRpb24nLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gZGVzY3JpcHRpb24oKSB7XG4gICAgICB2YXIgc3ltYm9sID0gc3ltYm9sVmFsdWVPZih0aGlzKTtcbiAgICAgIHZhciBzdHJpbmcgPSBzeW1ib2xUb1N0cmluZyhzeW1ib2wpO1xuICAgICAgaWYgKGhhc093bihFbXB0eVN0cmluZ0Rlc2NyaXB0aW9uU3RvcmUsIHN5bWJvbCkpIHJldHVybiAnJztcbiAgICAgIHZhciBkZXNjID0gTkFUSVZFX1NZTUJPTCA/IHN0cmluZ1NsaWNlKHN0cmluZywgNywgLTEpIDogcmVwbGFjZShzdHJpbmcsIHJlZ2V4cCwgJyQxJyk7XG4gICAgICByZXR1cm4gZGVzYyA9PT0gJycgPyB1bmRlZmluZWQgOiBkZXNjO1xuICAgIH1cbiAgfSk7XG5cbiAgJCh7IGdsb2JhbDogdHJ1ZSwgY29uc3RydWN0b3I6IHRydWUsIGZvcmNlZDogdHJ1ZSB9LCB7XG4gICAgU3ltYm9sOiBTeW1ib2xXcmFwcGVyXG4gIH0pO1xufVxuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBOQVRJVkVfU1lNQk9MX1JFR0lTVFJZID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS1zeW1ib2wtcmVnaXN0cnknKTtcblxudmFyIFN0cmluZ1RvU3ltYm9sUmVnaXN0cnkgPSBzaGFyZWQoJ3N0cmluZy10by1zeW1ib2wtcmVnaXN0cnknKTtcbnZhciBTeW1ib2xUb1N0cmluZ1JlZ2lzdHJ5ID0gc2hhcmVkKCdzeW1ib2wtdG8tc3RyaW5nLXJlZ2lzdHJ5Jyk7XG5cbi8vIGBTeW1ib2wuZm9yYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3ltYm9sLmZvclxuJCh7IHRhcmdldDogJ1N5bWJvbCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogIU5BVElWRV9TWU1CT0xfUkVHSVNUUlkgfSwge1xuICAnZm9yJzogZnVuY3Rpb24gKGtleSkge1xuICAgIHZhciBzdHJpbmcgPSB0b1N0cmluZyhrZXkpO1xuICAgIGlmIChoYXNPd24oU3RyaW5nVG9TeW1ib2xSZWdpc3RyeSwgc3RyaW5nKSkgcmV0dXJuIFN0cmluZ1RvU3ltYm9sUmVnaXN0cnlbc3RyaW5nXTtcbiAgICB2YXIgc3ltYm9sID0gZ2V0QnVpbHRJbignU3ltYm9sJykoc3RyaW5nKTtcbiAgICBTdHJpbmdUb1N5bWJvbFJlZ2lzdHJ5W3N0cmluZ10gPSBzeW1ib2w7XG4gICAgU3ltYm9sVG9TdHJpbmdSZWdpc3RyeVtzeW1ib2xdID0gc3RyaW5nO1xuICAgIHJldHVybiBzeW1ib2w7XG4gIH1cbn0pO1xuIiwidmFyIGRlZmluZVdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtd2VsbC1rbm93bi1zeW1ib2wnKTtcblxuLy8gYFN5bWJvbC5pdGVyYXRvcmAgd2VsbC1rbm93biBzeW1ib2xcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3ltYm9sLml0ZXJhdG9yXG5kZWZpbmVXZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG4iLCIvLyBUT0RPOiBSZW1vdmUgdGhpcyBtb2R1bGUgZnJvbSBgY29yZS1qc0A0YCBzaW5jZSBpdCdzIHNwbGl0IHRvIG1vZHVsZXMgbGlzdGVkIGJlbG93XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN5bWJvbC5jb25zdHJ1Y3RvcicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zeW1ib2wuZm9yJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN5bWJvbC5rZXktZm9yJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmpzb24uc3RyaW5naWZ5Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm9iamVjdC5nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMnKTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgaXNTeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtc3ltYm9sJyk7XG52YXIgdHJ5VG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHJ5LXRvLXN0cmluZycpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBOQVRJVkVfU1lNQk9MX1JFR0lTVFJZID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS1zeW1ib2wtcmVnaXN0cnknKTtcblxudmFyIFN5bWJvbFRvU3RyaW5nUmVnaXN0cnkgPSBzaGFyZWQoJ3N5bWJvbC10by1zdHJpbmctcmVnaXN0cnknKTtcblxuLy8gYFN5bWJvbC5rZXlGb3JgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zeW1ib2wua2V5Zm9yXG4kKHsgdGFyZ2V0OiAnU3ltYm9sJywgc3RhdDogdHJ1ZSwgZm9yY2VkOiAhTkFUSVZFX1NZTUJPTF9SRUdJU1RSWSB9LCB7XG4gIGtleUZvcjogZnVuY3Rpb24ga2V5Rm9yKHN5bSkge1xuICAgIGlmICghaXNTeW1ib2woc3ltKSkgdGhyb3cgVHlwZUVycm9yKHRyeVRvU3RyaW5nKHN5bSkgKyAnIGlzIG5vdCBhIHN5bWJvbCcpO1xuICAgIGlmIChoYXNPd24oU3ltYm9sVG9TdHJpbmdSZWdpc3RyeSwgc3ltKSkgcmV0dXJuIFN5bWJvbFRvU3RyaW5nUmVnaXN0cnlbc3ltXTtcbiAgfVxufSk7XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIERPTUl0ZXJhYmxlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb20taXRlcmFibGVzJyk7XG52YXIgRE9NVG9rZW5MaXN0UHJvdG90eXBlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvbS10b2tlbi1saXN0LXByb3RvdHlwZScpO1xudmFyIGZvckVhY2ggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktZm9yLWVhY2gnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG5cbnZhciBoYW5kbGVQcm90b3R5cGUgPSBmdW5jdGlvbiAoQ29sbGVjdGlvblByb3RvdHlwZSkge1xuICAvLyBzb21lIENocm9tZSB2ZXJzaW9ucyBoYXZlIG5vbi1jb25maWd1cmFibGUgbWV0aG9kcyBvbiBET01Ub2tlbkxpc3RcbiAgaWYgKENvbGxlY3Rpb25Qcm90b3R5cGUgJiYgQ29sbGVjdGlvblByb3RvdHlwZS5mb3JFYWNoICE9PSBmb3JFYWNoKSB0cnkge1xuICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShDb2xsZWN0aW9uUHJvdG90eXBlLCAnZm9yRWFjaCcsIGZvckVhY2gpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIENvbGxlY3Rpb25Qcm90b3R5cGUuZm9yRWFjaCA9IGZvckVhY2g7XG4gIH1cbn07XG5cbmZvciAodmFyIENPTExFQ1RJT05fTkFNRSBpbiBET01JdGVyYWJsZXMpIHtcbiAgaWYgKERPTUl0ZXJhYmxlc1tDT0xMRUNUSU9OX05BTUVdKSB7XG4gICAgaGFuZGxlUHJvdG90eXBlKGdsb2JhbFtDT0xMRUNUSU9OX05BTUVdICYmIGdsb2JhbFtDT0xMRUNUSU9OX05BTUVdLnByb3RvdHlwZSk7XG4gIH1cbn1cblxuaGFuZGxlUHJvdG90eXBlKERPTVRva2VuTGlzdFByb3RvdHlwZSk7XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIERPTUl0ZXJhYmxlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb20taXRlcmFibGVzJyk7XG52YXIgRE9NVG9rZW5MaXN0UHJvdG90eXBlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvbS10b2tlbi1saXN0LXByb3RvdHlwZScpO1xudmFyIEFycmF5SXRlcmF0b3JNZXRob2RzID0gcmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5pdGVyYXRvcicpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG52YXIgQXJyYXlWYWx1ZXMgPSBBcnJheUl0ZXJhdG9yTWV0aG9kcy52YWx1ZXM7XG5cbnZhciBoYW5kbGVQcm90b3R5cGUgPSBmdW5jdGlvbiAoQ29sbGVjdGlvblByb3RvdHlwZSwgQ09MTEVDVElPTl9OQU1FKSB7XG4gIGlmIChDb2xsZWN0aW9uUHJvdG90eXBlKSB7XG4gICAgLy8gc29tZSBDaHJvbWUgdmVyc2lvbnMgaGF2ZSBub24tY29uZmlndXJhYmxlIG1ldGhvZHMgb24gRE9NVG9rZW5MaXN0XG4gICAgaWYgKENvbGxlY3Rpb25Qcm90b3R5cGVbSVRFUkFUT1JdICE9PSBBcnJheVZhbHVlcykgdHJ5IHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShDb2xsZWN0aW9uUHJvdG90eXBlLCBJVEVSQVRPUiwgQXJyYXlWYWx1ZXMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBDb2xsZWN0aW9uUHJvdG90eXBlW0lURVJBVE9SXSA9IEFycmF5VmFsdWVzO1xuICAgIH1cbiAgICBpZiAoIUNvbGxlY3Rpb25Qcm90b3R5cGVbVE9fU1RSSU5HX1RBR10pIHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShDb2xsZWN0aW9uUHJvdG90eXBlLCBUT19TVFJJTkdfVEFHLCBDT0xMRUNUSU9OX05BTUUpO1xuICAgIH1cbiAgICBpZiAoRE9NSXRlcmFibGVzW0NPTExFQ1RJT05fTkFNRV0pIGZvciAodmFyIE1FVEhPRF9OQU1FIGluIEFycmF5SXRlcmF0b3JNZXRob2RzKSB7XG4gICAgICAvLyBzb21lIENocm9tZSB2ZXJzaW9ucyBoYXZlIG5vbi1jb25maWd1cmFibGUgbWV0aG9kcyBvbiBET01Ub2tlbkxpc3RcbiAgICAgIGlmIChDb2xsZWN0aW9uUHJvdG90eXBlW01FVEhPRF9OQU1FXSAhPT0gQXJyYXlJdGVyYXRvck1ldGhvZHNbTUVUSE9EX05BTUVdKSB0cnkge1xuICAgICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoQ29sbGVjdGlvblByb3RvdHlwZSwgTUVUSE9EX05BTUUsIEFycmF5SXRlcmF0b3JNZXRob2RzW01FVEhPRF9OQU1FXSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBDb2xsZWN0aW9uUHJvdG90eXBlW01FVEhPRF9OQU1FXSA9IEFycmF5SXRlcmF0b3JNZXRob2RzW01FVEhPRF9OQU1FXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbmZvciAodmFyIENPTExFQ1RJT05fTkFNRSBpbiBET01JdGVyYWJsZXMpIHtcbiAgaGFuZGxlUHJvdG90eXBlKGdsb2JhbFtDT0xMRUNUSU9OX05BTUVdICYmIGdsb2JhbFtDT0xMRUNUSU9OX05BTUVdLnByb3RvdHlwZSwgQ09MTEVDVElPTl9OQU1FKTtcbn1cblxuaGFuZGxlUHJvdG90eXBlKERPTVRva2VuTGlzdFByb3RvdHlwZSwgJ0RPTVRva2VuTGlzdCcpO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHNldEludGVydmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NjaGVkdWxlcnMtZml4Jykuc2V0SW50ZXJ2YWw7XG5cbi8vIGllOS0gc2V0SW50ZXJ2YWwgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZpeFxuLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvdGltZXJzLWFuZC11c2VyLXByb21wdHMuaHRtbCNkb20tc2V0aW50ZXJ2YWxcbiQoeyBnbG9iYWw6IHRydWUsIGJpbmQ6IHRydWUsIGZvcmNlZDogZ2xvYmFsLnNldEludGVydmFsICE9PSBzZXRJbnRlcnZhbCB9LCB7XG4gIHNldEludGVydmFsOiBzZXRJbnRlcnZhbFxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgc2V0VGltZW91dCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zY2hlZHVsZXJzLWZpeCcpLnNldFRpbWVvdXQ7XG5cbi8vIGllOS0gc2V0VGltZW91dCBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgZml4XG4vLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS90aW1lcnMtYW5kLXVzZXItcHJvbXB0cy5odG1sI2RvbS1zZXR0aW1lb3V0XG4kKHsgZ2xvYmFsOiB0cnVlLCBiaW5kOiB0cnVlLCBmb3JjZWQ6IGdsb2JhbC5zZXRUaW1lb3V0ICE9PSBzZXRUaW1lb3V0IH0sIHtcbiAgc2V0VGltZW91dDogc2V0VGltZW91dFxufSk7XG4iLCIvLyBUT0RPOiBSZW1vdmUgdGhpcyBtb2R1bGUgZnJvbSBgY29yZS1qc0A0YCBzaW5jZSBpdCdzIHNwbGl0IHRvIG1vZHVsZXMgbGlzdGVkIGJlbG93XG5yZXF1aXJlKCcuLi9tb2R1bGVzL3dlYi5zZXQtaW50ZXJ2YWwnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvd2ViLnNldC10aW1lb3V0Jyk7XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5lbW9qaS1tYXJ0LFxcbi5lbW9qaS1tYXJ0ICoge1xcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XFxufVxcblxcbi5lbW9qaS1tYXJ0IHtcXG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICAvKiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7ICovXFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGhlaWdodDogNDIwcHg7XFxuICBjb2xvcjogIzIyMjQyNztcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbn1cXG5cXG4uZW1vamktbWFydC1lbW9qaSB7XFxuICBwYWRkaW5nOiA2cHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBmb250LXNpemU6IDA7XFxuICBib3JkZXI6IG5vbmU7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG5cXG4uZW1vamktbWFydC1lbW9qaSBzcGFuIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldy1lbW9qaSAuZW1vamktbWFydC1lbW9qaSBzcGFuIHtcXG4gIHdpZHRoOiAzOHB4O1xcbiAgaGVpZ2h0OiAzOHB4O1xcbiAgZm9udC1zaXplOiAzMnB4O1xcbn1cXG5cXG4uZW1vamktdHlwZS1uYXRpdmUge1xcbiAgZm9udC1mYW1pbHk6ICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnLCAnU2Vnb2UgVUknLFxcbiAgICAnQXBwbGUgQ29sb3IgRW1vamknLCAnVHdlbW9qaSBNb3ppbGxhJywgJ05vdG8gQ29sb3IgRW1vamknLCAnRW1vamlPbmUgQ29sb3InLFxcbiAgICAnQW5kcm9pZCBFbW9qaSc7XFxuICB3b3JkLWJyZWFrOiBrZWVwLWFsbDtcXG59XFxuXFxuLmVtb2ppLXR5cGUtaW1hZ2Uge1xcbiAgLyogRW1vamkgc2hlZXQgaGFzIDU2IGNvbHVtbnMsIHNlZSBhbHNvIHV0aWxzL2Vtb2ppLWRhdGEuanMsIFNIRUVUX0NPTFVNTlMgdmFyaWFibGUgKi9cXG4gIC8qIEhlcmUgd2UgdXNlICg1NisxKSAqIDEwMCUgdG8gYXZvaWQgdmlzaWJsZSBlZGdlcyBvZiBuZWFyYnkgaWNvbnMgd2hlbiBzY2FsaW5nIGZvciBkaWZmZXJlbnRcXG4gICAqIHNjcmVlbiBzaXplcyAqL1xcbiAgYmFja2dyb3VuZC1zaXplOiA2MTAwJTtcXG59XFxuLmVtb2ppLXR5cGUtaW1hZ2UuZW1vamktc2V0LWFwcGxlIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly91bnBrZy5jb20vZW1vamktZGF0YXNvdXJjZS1hcHBsZUAxNC4wLjAvaW1nL2FwcGxlL3NoZWV0cy0yNTYvNjQucG5nJyk7XFxufVxcbi5lbW9qaS10eXBlLWltYWdlLmVtb2ppLXNldC1mYWNlYm9vayB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vdW5wa2cuY29tL2Vtb2ppLWRhdGFzb3VyY2UtZmFjZWJvb2tAMTQuMC4wL2ltZy9mYWNlYm9vay9zaGVldHMtMjU2LzY0LnBuZycpO1xcbn1cXG4uZW1vamktdHlwZS1pbWFnZS5lbW9qaS1zZXQtZ29vZ2xlIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly91bnBrZy5jb20vZW1vamktZGF0YXNvdXJjZS1nb29nbGVAMTQuMC4wL2ltZy9nb29nbGUvc2hlZXRzLTI1Ni82NC5wbmcnKTtcXG59XFxuLmVtb2ppLXR5cGUtaW1hZ2UuZW1vamktc2V0LXR3aXR0ZXIge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3VucGtnLmNvbS9lbW9qaS1kYXRhc291cmNlLXR3aXR0ZXJAMTQuMC4wL2ltZy90d2l0dGVyL3NoZWV0cy0yNTYvNjQucG5nJyk7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWJhciB7XFxuICBib3JkZXI6IDAgc29saWQgI2Q5ZDlkOTtcXG59XFxuLmVtb2ppLW1hcnQtYmFyOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XFxufVxcbi5lbW9qaS1tYXJ0LWJhcjpsYXN0LWNoaWxkIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDFweDtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDVweDtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1cHg7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXNjcm9sbCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBvdmVyZmxvdy15OiBzY3JvbGw7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxO1xcbiAgICAgICAgICBmbGV4OiAxO1xcbiAgcGFkZGluZzogMCA2cHggNnB4IDZweDtcXG4gIHotaW5kZXg6IDA7IC8qIEZpeCBmb3IgcmVuZGVyaW5nIHN0aWNreSBwb3NpdGlvbmVkIGNhdGVnb3J5IGxhYmVscyBvbiBDaHJvbWUgKi9cXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IC8qIGF2b2lkcyBcXFwicmVwYWludHMgb24gc2Nyb2xsXFxcIiBpbiBtb2JpbGUgQ2hyb21lICovXFxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWFuY2hvcnMge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcXG4gIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7XFxuICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgcGFkZGluZzogMCA2cHg7XFxuICBjb2xvcjogIzg1ODU4NTtcXG4gIGxpbmUtaGVpZ2h0OiAwO1xcbn1cXG5cXG4uZW1vamktbWFydC1hbmNob3Ige1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgZmxleDogMSAxIGF1dG87XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBwYWRkaW5nOiAxMnB4IDRweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZS1vdXQ7XFxuICAtby10cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2Utb3V0O1xcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlLW91dDtcXG4gIGJvcmRlcjogbm9uZTtcXG4gIGJhY2tncm91bmQ6IG5vbmU7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5lbW9qaS1tYXJ0LWFuY2hvcjpob3ZlcixcXG4uZW1vamktbWFydC1hbmNob3Itc2VsZWN0ZWQge1xcbiAgY29sb3I6ICM0NjQ2NDY7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWFuY2hvci1zZWxlY3RlZCAuZW1vamktbWFydC1hbmNob3ItYmFyIHtcXG4gIGJvdHRvbTogMDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYW5jaG9yLWJhciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3R0b206IC0zcHg7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDNweDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM0NjQ2NDY7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWFuY2hvcnMgaSB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1heC13aWR0aDogMjJweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYW5jaG9ycyBzdmcge1xcbiAgZmlsbDogY3VycmVudENvbG9yO1xcbiAgbWF4LWhlaWdodDogMThweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQgLnNjcm9sbGVyIHtcXG4gIGhlaWdodDogMjUwcHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxO1xcbiAgICAgICAgICBmbGV4OiAxO1xcbiAgcGFkZGluZzogMCA2cHggNnB4IDZweDtcXG4gIHotaW5kZXg6IDA7IC8qIEZpeCBmb3IgcmVuZGVyaW5nIHN0aWNreSBwb3NpdGlvbmVkIGNhdGVnb3J5IGxhYmVscyBvbiBDaHJvbWUgKi9cXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IC8qIGF2b2lkcyBcXFwicmVwYWludHMgb24gc2Nyb2xsXFxcIiBpbiBtb2JpbGUgQ2hyb21lICovXFxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXNlYXJjaCB7XFxuICBtYXJnaW4tdG9wOiA2cHg7XFxuICBwYWRkaW5nOiAwIDZweDtcXG59XFxuLmVtb2ppLW1hcnQtc2VhcmNoIGlucHV0IHtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nOiAwLjJlbSAwLjZlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xcbiAgb3V0bGluZTogMDtcXG59XFxuLmVtb2ppLW1hcnQtc2VhcmNoLXJlc3VsdHMge1xcbiAgaGVpZ2h0OiAyNTBweDtcXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtY2F0ZWdvcnkge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG5cXG4uZW1vamktbWFydC1jYXRlZ29yeSAuZW1vamktbWFydC1lbW9qaSBzcGFuIHtcXG4gIHotaW5kZXg6IDE7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWNhdGVnb3J5IC5lbW9qaS1tYXJ0LWVtb2ppOmhvdmVyOmJlZm9yZSxcXG4uZW1vamktbWFydC1lbW9qaS1zZWxlY3RlZDpiZWZvcmUge1xcbiAgei1pbmRleDogMDtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4uZW1vamktbWFydC1jYXRlZ29yeSAuZW1vamktbWFydC1lbW9qaTpob3ZlcjpiZWZvcmUsXFxuLmVtb2ppLW1hcnQtZW1vamktc2VsZWN0ZWQ6YmVmb3JlIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsIHtcXG4gIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTtcXG4gIHBvc2l0aW9uOiBzdGlja3k7XFxuICB0b3A6IDA7XFxufVxcbi5lbW9qaS1tYXJ0LXN0YXRpYyAuZW1vamktbWFydC1jYXRlZ29yeS1sYWJlbCB7XFxuICB6LWluZGV4OiAyO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgLyogcG9zaXRpb246IHN0aWNreTsgKi9cXG4gIC8qIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTsgKi9cXG59XFxuXFxuLmVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWwgaDMge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBwYWRkaW5nOiA1cHggNnB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWVtb2ppIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGZvbnQtc2l6ZTogMDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtbm8tcmVzdWx0cyB7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBwYWRkaW5nLXRvcDogNzBweDtcXG4gIGNvbG9yOiAjODU4NTg1O1xcbn1cXG4uZW1vamktbWFydC1uby1yZXN1bHRzIC5lbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5lbW9qaS1tYXJ0LW5vLXJlc3VsdHMgLmVtb2ppLW1hcnQtbm8tcmVzdWx0cy1sYWJlbCB7XFxuICBtYXJnaW4tdG9wOiAwLjJlbTtcXG59XFxuLmVtb2ppLW1hcnQtbm8tcmVzdWx0cyAuZW1vamktbWFydC1lbW9qaTpob3ZlcjpiZWZvcmUge1xcbiAgY29udGVudDogbm9uZTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBoZWlnaHQ6IDcwcHg7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZW1vamksXFxuLmVtb2ppLW1hcnQtcHJldmlldy1kYXRhLFxcbi5lbW9qaS1tYXJ0LXByZXZpZXctc2tpbnMge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZW1vamkge1xcbiAgbGVmdDogMTJweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldy1kYXRhIHtcXG4gIGxlZnQ6IDY4cHg7XFxuICByaWdodDogMTJweDtcXG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldy1za2lucyB7XFxuICByaWdodDogMzBweDtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LW5hbWUge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBjb2xvcjogIzg4ODtcXG59XFxuLmVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWUgKyAuZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZSxcXG4uZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZSArIC5lbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb24sXFxuLmVtb2ppLW1hcnQtcHJldmlldy1lbW90aWNvbiArIC5lbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb24ge1xcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LWVtb3RpY29uIHtcXG4gIGZvbnQtc2l6ZTogMTFweDtcXG4gIGNvbG9yOiAjYmJiO1xcbn1cXG5cXG4uZW1vamktbWFydC10aXRsZSBzcGFuIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXRpdGxlIC5lbW9qaS1tYXJ0LWVtb2ppIHtcXG4gIHBhZGRpbmc6IDA7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXRpdGxlLWxhYmVsIHtcXG4gIGNvbG9yOiAjOTk5YTljO1xcbiAgZm9udC1zaXplOiAyMXB4O1xcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcyB7XFxuICBmb250LXNpemU6IDA7XFxuICBwYWRkaW5nOiAycHggMDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XFxuICBib3JkZXItcmFkaXVzOiAxMnB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcy1vcGVuZWQgLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gge1xcbiAgd2lkdGg6IDE2cHg7XFxuICBwYWRkaW5nOiAwIDJweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcy1vcGVuZWQgLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gtc2VsZWN0ZWQ6YWZ0ZXIge1xcbiAgb3BhY2l0eTogMC43NTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgd2lkdGg6IDA7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aCwgcGFkZGluZztcXG4gIC1vLXRyYW5zaXRpb24tcHJvcGVydHk6IHdpZHRoLCBwYWRkaW5nO1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogd2lkdGgsIHBhZGRpbmc7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuMTI1cztcXG4gICAgICAgLW8tdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xMjVzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjEyNXM7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcXG4gICAgICAgLW8tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCgxKSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDBzO1xcbiAgICAgICAtby10cmFuc2l0aW9uLWRlbGF5OiAwcztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCgyKSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDAuMDNzO1xcbiAgICAgICAtby10cmFuc2l0aW9uLWRlbGF5OiAwLjAzcztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4wM3M7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCgzKSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDAuMDZzO1xcbiAgICAgICAtby10cmFuc2l0aW9uLWRlbGF5OiAwLjA2cztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4wNnM7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCg0KSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDAuMDlzO1xcbiAgICAgICAtby10cmFuc2l0aW9uLWRlbGF5OiAwLjA5cztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4wOXM7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCg1KSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDAuMTJzO1xcbiAgICAgICAtby10cmFuc2l0aW9uLWRlbGF5OiAwLjEycztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4xMnM7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCg2KSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDAuMTVzO1xcbiAgICAgICAtby10cmFuc2l0aW9uLWRlbGF5OiAwLjE1cztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4xNXM7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoLXNlbGVjdGVkIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiAxNnB4O1xcbiAgcGFkZGluZzogMCAycHg7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoLXNlbGVjdGVkOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiA1MCU7XFxuICB3aWR0aDogNHB4O1xcbiAgaGVpZ2h0OiA0cHg7XFxuICBtYXJnaW46IC0ycHggMCAwIC0ycHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2Utb3V0O1xcbiAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2Utb3V0O1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2Utb3V0O1xcbn1cXG5cXG4uZW1vamktbWFydC1za2luIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgcGFkZGluZy10b3A6IDEwMCU7XFxuICBtYXgtd2lkdGg6IDEycHg7XFxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xcbn1cXG5cXG4uZW1vamktbWFydC1za2luLXRvbmUtMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjOTNhO1xcbn1cXG4uZW1vamktbWFydC1za2luLXRvbmUtMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFkY2JjO1xcbn1cXG4uZW1vamktbWFydC1za2luLXRvbmUtMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBiYjk1O1xcbn1cXG4uZW1vamktbWFydC1za2luLXRvbmUtNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmY4ZjY4O1xcbn1cXG4uZW1vamktbWFydC1za2luLXRvbmUtNSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWI2NDNkO1xcbn1cXG4uZW1vamktbWFydC1za2luLXRvbmUtNiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTk0NTM5O1xcbn1cXG5cXG4vKiB2dWUtdmlydHVhbC1zY3JvbGxlci9kaXN0L3Z1ZS12aXJ0dWFsLXNjcm9sbGVyLmNzcyAqL1xcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlci5kaXJlY3Rpb24tdmVydGljYWw6bm90KC5wYWdlLW1vZGUpIHtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxufVxcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlci5kaXJlY3Rpb24taG9yaXpvbnRhbDpub3QoLnBhZ2UtbW9kZSkge1xcbiAgb3ZlcmZsb3cteDogYXV0bztcXG59XFxuLmVtb2ppLW1hcnQgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLmRpcmVjdGlvbi1ob3Jpem9udGFsIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbn1cXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX3Nsb3Qge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogYXV0byAwIDBweDtcXG4gICAgICAgICAgZmxleDogYXV0byAwIDA7XFxufVxcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS13cmFwcGVyIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDE7XFxuICAgICAgICAgIGZsZXg6IDE7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXIucmVhZHkgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19pdGVtLXZpZXcge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XFxufVxcbi5lbW9qaS1tYXJ0XFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXIuZGlyZWN0aW9uLXZlcnRpY2FsXFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX2l0ZW0td3JhcHBlciB7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLmVtb2ppLW1hcnRcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlci5kaXJlY3Rpb24taG9yaXpvbnRhbFxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19pdGVtLXdyYXBwZXIge1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4uZW1vamktbWFydFxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLnJlYWR5LmRpcmVjdGlvbi12ZXJ0aWNhbFxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19pdGVtLXZpZXcge1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5lbW9qaS1tYXJ0XFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXIucmVhZHkuZGlyZWN0aW9uLWhvcml6b250YWxcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS12aWV3IHtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLmVtb2ppLW1hcnQgLnJlc2l6ZS1vYnNlcnZlcltkYXRhLXYtYjMyOWVlNGNdIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB6LWluZGV4OiAtMTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYm9yZGVyOiBub25lO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5lbW9qaS1tYXJ0IC5yZXNpemUtb2JzZXJ2ZXJbZGF0YS12LWIzMjllZTRjXSBvYmplY3Qge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB6LWluZGV4OiAtMTtcXG59XFxuLmVtb2ppLW1hcnQtc2VhcmNoIC5oaWRkZW4ge1xcbiAgZGlzcGxheTogbm9uZTtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY3NzL2Vtb2ppLW1hcnQuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBOztFQUVFLDhCQUFzQjtVQUF0QixzQkFBc0I7RUFDdEIsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsNEVBQTRFO0VBQzVFLGVBQWU7RUFDZiwyQkFBMkI7RUFDM0Isb0JBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWE7RUFDYiw0QkFBc0I7RUFBdEIsNkJBQXNCO01BQXRCLDBCQUFzQjtVQUF0QixzQkFBc0I7RUFDdEIsYUFBYTtFQUNiLGNBQWM7RUFDZCx5QkFBeUI7RUFDekIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIscUJBQXFCO0VBQ3JCLFlBQVk7RUFDWixZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLHdCQUFnQjtVQUFoQixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxXQUFXO0VBQ1gsWUFBWTtFQUNaLGVBQWU7QUFDakI7O0FBRUE7RUFDRTs7bUJBRWlCO0VBQ2pCLG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFLHFGQUFxRjtFQUNyRjttQkFDaUI7RUFDakIsc0JBQXNCO0FBQ3hCO0FBQ0E7RUFDRSxvR0FBb0c7QUFDdEc7QUFDQTtFQUNFLDBHQUEwRztBQUM1RztBQUNBO0VBQ0Usc0dBQXNHO0FBQ3hHO0FBQ0E7RUFDRSx3R0FBd0c7QUFDMUc7O0FBRUE7RUFDRSx1QkFBdUI7QUFDekI7QUFDQTtFQUNFLHdCQUF3QjtFQUN4QiwyQkFBMkI7RUFDM0IsNEJBQTRCO0FBQzlCO0FBQ0E7RUFDRSxxQkFBcUI7RUFDckIsOEJBQThCO0VBQzlCLCtCQUErQjtBQUNqQzs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsbUJBQU87TUFBUCxXQUFPO1VBQVAsT0FBTztFQUNQLHNCQUFzQjtFQUN0QixVQUFVLEVBQUUsa0VBQWtFO0VBQzlFLHNCQUFzQixFQUFFLGlEQUFpRDtFQUN6RSxpQ0FBaUM7QUFDbkM7O0FBRUE7RUFDRSxvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtFQUNiLDhCQUFtQjtFQUFuQiw2QkFBbUI7TUFBbkIsdUJBQW1CO1VBQW5CLG1CQUFtQjtFQUNuQix5QkFBOEI7TUFBOUIsc0JBQThCO1VBQTlCLDhCQUE4QjtFQUM5QixjQUFjO0VBQ2QsY0FBYztFQUNkLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsY0FBYztFQUNkLG1CQUFjO01BQWQsa0JBQWM7VUFBZCxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsdUNBQStCO0VBQS9CLGtDQUErQjtFQUEvQiwrQkFBK0I7RUFDL0IsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQix3QkFBZ0I7VUFBaEIsZ0JBQWdCO0FBQ2xCO0FBQ0E7O0VBRUUsY0FBYztBQUNoQjs7QUFFQTtFQUNFLFNBQVM7QUFDWDs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osT0FBTztFQUNQLFdBQVc7RUFDWCxXQUFXO0VBQ1gseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UscUJBQXFCO0VBQ3JCLFdBQVc7RUFDWCxlQUFlO0FBQ2pCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGFBQWE7RUFDYixrQkFBa0I7RUFDbEIsbUJBQU87TUFBUCxXQUFPO1VBQVAsT0FBTztFQUNQLHNCQUFzQjtFQUN0QixVQUFVLEVBQUUsa0VBQWtFO0VBQzlFLHNCQUFzQixFQUFFLGlEQUFpRDtFQUN6RSxpQ0FBaUM7QUFDbkM7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsY0FBYztBQUNoQjtBQUNBO0VBQ0UsZUFBZTtFQUNmLGNBQWM7RUFDZCxXQUFXO0VBQ1gsb0JBQW9CO0VBQ3BCLG1CQUFtQjtFQUNuQix5QkFBeUI7RUFDekIsVUFBVTtBQUNaO0FBQ0E7RUFDRSxhQUFhO0VBQ2Isa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0Usa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsVUFBVTtFQUNWLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsZUFBZTtBQUNqQjs7QUFFQTs7RUFFRSxVQUFVO0VBQ1YsV0FBVztFQUNYLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sT0FBTztFQUNQLFdBQVc7RUFDWCxZQUFZO0VBQ1oseUJBQXlCO0VBQ3pCLG1CQUFtQjtFQUNuQixVQUFVO0FBQ1o7QUFDQTs7RUFFRSxVQUFVO0FBQ1o7O0FBRUE7RUFDRSx3QkFBZ0I7RUFBaEIsZ0JBQWdCO0VBQ2hCLE1BQU07QUFDUjtBQUNBO0VBQ0UsVUFBVTtFQUNWLGtCQUFrQjtFQUNsQixzQkFBc0I7RUFDdEIsOEJBQThCO0FBQ2hDOztBQUVBO0VBQ0UsY0FBYztFQUNkLGVBQWU7RUFDZixXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixzQkFBc0I7RUFDdEIsMkNBQTJDO0FBQzdDOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLHFCQUFxQjtFQUNyQixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixjQUFjO0FBQ2hCO0FBQ0E7RUFDRSxhQUFhO0FBQ2Y7QUFDQTtFQUNFLGlCQUFpQjtBQUNuQjtBQUNBO0VBQ0UsYUFBYTtBQUNmOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFlBQVk7QUFDZDs7QUFFQTs7O0VBR0Usa0JBQWtCO0VBQ2xCLFFBQVE7RUFDUixtQ0FBMkI7TUFBM0IsK0JBQTJCO1VBQTNCLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLFVBQVU7QUFDWjs7QUFFQTtFQUNFLFVBQVU7RUFDVixXQUFXO0VBQ1gscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsV0FBVztFQUNYLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsV0FBVztBQUNiO0FBQ0E7OztFQUdFLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGVBQWU7RUFDZixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxxQkFBcUI7RUFDckIsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsY0FBYztFQUNkLGVBQWU7RUFDZixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxZQUFZO0VBQ1osY0FBYztFQUNkLHlCQUF5QjtFQUN6QixtQkFBbUI7RUFDbkIsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsV0FBVztFQUNYLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxxQkFBcUI7RUFDckIsUUFBUTtFQUNSLHNCQUFzQjtFQUN0QiwyQ0FBbUM7RUFBbkMsc0NBQW1DO0VBQW5DLG1DQUFtQztFQUNuQyxtQ0FBMkI7T0FBM0IsOEJBQTJCO1VBQTNCLDJCQUEyQjtFQUMzQiw0Q0FBb0M7T0FBcEMsdUNBQW9DO1VBQXBDLG9DQUFvQztBQUN0Qzs7QUFFQTtFQUNFLDRCQUFvQjtPQUFwQix1QkFBb0I7VUFBcEIsb0JBQW9CO0FBQ3RCO0FBQ0E7RUFDRSwrQkFBdUI7T0FBdkIsMEJBQXVCO1VBQXZCLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0UsK0JBQXVCO09BQXZCLDBCQUF1QjtVQUF2Qix1QkFBdUI7QUFDekI7QUFDQTtFQUNFLCtCQUF1QjtPQUF2QiwwQkFBdUI7VUFBdkIsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRSwrQkFBdUI7T0FBdkIsMEJBQXVCO1VBQXZCLHVCQUF1QjtBQUN6QjtBQUNBO0VBQ0UsK0JBQXVCO09BQXZCLDBCQUF1QjtVQUF2Qix1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLGNBQWM7QUFDaEI7QUFDQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsUUFBUTtFQUNSLFNBQVM7RUFDVCxVQUFVO0VBQ1YsV0FBVztFQUNYLHFCQUFxQjtFQUNyQixzQkFBc0I7RUFDdEIsbUJBQW1CO0VBQ25CLG9CQUFvQjtFQUNwQixVQUFVO0VBQ1YseUNBQWlDO0VBQWpDLG9DQUFpQztFQUFqQyxpQ0FBaUM7QUFDbkM7O0FBRUE7RUFDRSxxQkFBcUI7RUFDckIsV0FBVztFQUNYLGlCQUFpQjtFQUNqQixlQUFlO0VBQ2YsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjs7QUFFQSx1REFBdUQ7QUFDdkQ7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtBQUNmO0FBQ0E7RUFDRSxtQkFBYztNQUFkLG9CQUFjO1VBQWQsY0FBYztBQUNoQjtBQUNBO0VBQ0UsbUJBQU87TUFBUCxXQUFPO1VBQVAsT0FBTztFQUNQLDhCQUFzQjtVQUF0QixzQkFBc0I7RUFDdEIsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1Asc0JBQXNCO0FBQ3hCO0FBQ0E7OztFQUdFLFdBQVc7QUFDYjtBQUNBOzs7RUFHRSxZQUFZO0FBQ2Q7QUFDQTs7O0VBR0UsV0FBVztBQUNiO0FBQ0E7OztFQUdFLFlBQVk7QUFDZDtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLFdBQVc7RUFDWCxZQUFZO0VBQ1osWUFBWTtFQUNaLDZCQUE2QjtFQUM3QixvQkFBb0I7RUFDcEIsY0FBYztFQUNkLGdCQUFnQjtFQUNoQixVQUFVO0FBQ1o7QUFDQTtFQUNFLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxZQUFZO0VBQ1osV0FBVztFQUNYLGdCQUFnQjtFQUNoQixvQkFBb0I7RUFDcEIsV0FBVztBQUNiO0FBQ0E7RUFDRSxhQUFhO0VBQ2Isa0JBQWtCO0FBQ3BCXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5lbW9qaS1tYXJ0LFxcbi5lbW9qaS1tYXJ0ICoge1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xcbn1cXG5cXG4uZW1vamktbWFydCB7XFxuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmO1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbiAgLyogZGlzcGxheTogaW5saW5lLWJsb2NrOyAqL1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBoZWlnaHQ6IDQyMHB4O1xcbiAgY29sb3I6ICMyMjI0Mjc7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG59XFxuXFxuLmVtb2ppLW1hcnQtZW1vamkge1xcbiAgcGFkZGluZzogNnB4O1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgZm9udC1zaXplOiAwO1xcbiAgYm9yZGVyOiBub25lO1xcbiAgYmFja2dyb3VuZDogbm9uZTtcXG4gIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWVtb2ppIHNwYW4ge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LWVtb2ppIC5lbW9qaS1tYXJ0LWVtb2ppIHNwYW4ge1xcbiAgd2lkdGg6IDM4cHg7XFxuICBoZWlnaHQ6IDM4cHg7XFxuICBmb250LXNpemU6IDMycHg7XFxufVxcblxcbi5lbW9qaS10eXBlLW5hdGl2ZSB7XFxuICBmb250LWZhbWlseTogJ1NlZ29lIFVJIEVtb2ppJywgJ1NlZ29lIFVJIFN5bWJvbCcsICdTZWdvZSBVSScsXFxuICAgICdBcHBsZSBDb2xvciBFbW9qaScsICdUd2Vtb2ppIE1vemlsbGEnLCAnTm90byBDb2xvciBFbW9qaScsICdFbW9qaU9uZSBDb2xvcicsXFxuICAgICdBbmRyb2lkIEVtb2ppJztcXG4gIHdvcmQtYnJlYWs6IGtlZXAtYWxsO1xcbn1cXG5cXG4uZW1vamktdHlwZS1pbWFnZSB7XFxuICAvKiBFbW9qaSBzaGVldCBoYXMgNTYgY29sdW1ucywgc2VlIGFsc28gdXRpbHMvZW1vamktZGF0YS5qcywgU0hFRVRfQ09MVU1OUyB2YXJpYWJsZSAqL1xcbiAgLyogSGVyZSB3ZSB1c2UgKDU2KzEpICogMTAwJSB0byBhdm9pZCB2aXNpYmxlIGVkZ2VzIG9mIG5lYXJieSBpY29ucyB3aGVuIHNjYWxpbmcgZm9yIGRpZmZlcmVudFxcbiAgICogc2NyZWVuIHNpemVzICovXFxuICBiYWNrZ3JvdW5kLXNpemU6IDYxMDAlO1xcbn1cXG4uZW1vamktdHlwZS1pbWFnZS5lbW9qaS1zZXQtYXBwbGUge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3VucGtnLmNvbS9lbW9qaS1kYXRhc291cmNlLWFwcGxlQDE0LjAuMC9pbWcvYXBwbGUvc2hlZXRzLTI1Ni82NC5wbmcnKTtcXG59XFxuLmVtb2ppLXR5cGUtaW1hZ2UuZW1vamktc2V0LWZhY2Vib29rIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly91bnBrZy5jb20vZW1vamktZGF0YXNvdXJjZS1mYWNlYm9va0AxNC4wLjAvaW1nL2ZhY2Vib29rL3NoZWV0cy0yNTYvNjQucG5nJyk7XFxufVxcbi5lbW9qaS10eXBlLWltYWdlLmVtb2ppLXNldC1nb29nbGUge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3VucGtnLmNvbS9lbW9qaS1kYXRhc291cmNlLWdvb2dsZUAxNC4wLjAvaW1nL2dvb2dsZS9zaGVldHMtMjU2LzY0LnBuZycpO1xcbn1cXG4uZW1vamktdHlwZS1pbWFnZS5lbW9qaS1zZXQtdHdpdHRlciB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vdW5wa2cuY29tL2Vtb2ppLWRhdGFzb3VyY2UtdHdpdHRlckAxNC4wLjAvaW1nL3R3aXR0ZXIvc2hlZXRzLTI1Ni82NC5wbmcnKTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYmFyIHtcXG4gIGJvcmRlcjogMCBzb2xpZCAjZDlkOWQ5O1xcbn1cXG4uZW1vamktbWFydC1iYXI6Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcXG59XFxuLmVtb2ppLW1hcnQtYmFyOmxhc3QtY2hpbGQge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXB4O1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDVweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2Nyb2xsIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcXG4gIGZsZXg6IDE7XFxuICBwYWRkaW5nOiAwIDZweCA2cHggNnB4O1xcbiAgei1pbmRleDogMDsgLyogRml4IGZvciByZW5kZXJpbmcgc3RpY2t5IHBvc2l0aW9uZWQgY2F0ZWdvcnkgbGFiZWxzIG9uIENocm9tZSAqL1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgLyogYXZvaWRzIFxcXCJyZXBhaW50cyBvbiBzY3JvbGxcXFwiIGluIG1vYmlsZSBDaHJvbWUgKi9cXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYW5jaG9ycyB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gIHBhZGRpbmc6IDAgNnB4O1xcbiAgY29sb3I6ICM4NTg1ODU7XFxuICBsaW5lLWhlaWdodDogMDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYW5jaG9yIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgZmxleDogMSAxIGF1dG87XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBwYWRkaW5nOiAxMnB4IDRweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2Utb3V0O1xcbiAgYm9yZGVyOiBub25lO1xcbiAgYmFja2dyb3VuZDogbm9uZTtcXG4gIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5lbW9qaS1tYXJ0LWFuY2hvcjpob3ZlcixcXG4uZW1vamktbWFydC1hbmNob3Itc2VsZWN0ZWQge1xcbiAgY29sb3I6ICM0NjQ2NDY7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWFuY2hvci1zZWxlY3RlZCAuZW1vamktbWFydC1hbmNob3ItYmFyIHtcXG4gIGJvdHRvbTogMDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYW5jaG9yLWJhciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3R0b206IC0zcHg7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDNweDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM0NjQ2NDY7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWFuY2hvcnMgaSB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1heC13aWR0aDogMjJweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYW5jaG9ycyBzdmcge1xcbiAgZmlsbDogY3VycmVudENvbG9yO1xcbiAgbWF4LWhlaWdodDogMThweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQgLnNjcm9sbGVyIHtcXG4gIGhlaWdodDogMjUwcHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBmbGV4OiAxO1xcbiAgcGFkZGluZzogMCA2cHggNnB4IDZweDtcXG4gIHotaW5kZXg6IDA7IC8qIEZpeCBmb3IgcmVuZGVyaW5nIHN0aWNreSBwb3NpdGlvbmVkIGNhdGVnb3J5IGxhYmVscyBvbiBDaHJvbWUgKi9cXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IC8qIGF2b2lkcyBcXFwicmVwYWludHMgb24gc2Nyb2xsXFxcIiBpbiBtb2JpbGUgQ2hyb21lICovXFxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXNlYXJjaCB7XFxuICBtYXJnaW4tdG9wOiA2cHg7XFxuICBwYWRkaW5nOiAwIDZweDtcXG59XFxuLmVtb2ppLW1hcnQtc2VhcmNoIGlucHV0IHtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nOiAwLjJlbSAwLjZlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xcbiAgb3V0bGluZTogMDtcXG59XFxuLmVtb2ppLW1hcnQtc2VhcmNoLXJlc3VsdHMge1xcbiAgaGVpZ2h0OiAyNTBweDtcXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtY2F0ZWdvcnkge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG5cXG4uZW1vamktbWFydC1jYXRlZ29yeSAuZW1vamktbWFydC1lbW9qaSBzcGFuIHtcXG4gIHotaW5kZXg6IDE7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWNhdGVnb3J5IC5lbW9qaS1tYXJ0LWVtb2ppOmhvdmVyOmJlZm9yZSxcXG4uZW1vamktbWFydC1lbW9qaS1zZWxlY3RlZDpiZWZvcmUge1xcbiAgei1pbmRleDogMDtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4uZW1vamktbWFydC1jYXRlZ29yeSAuZW1vamktbWFydC1lbW9qaTpob3ZlcjpiZWZvcmUsXFxuLmVtb2ppLW1hcnQtZW1vamktc2VsZWN0ZWQ6YmVmb3JlIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsIHtcXG4gIHBvc2l0aW9uOiBzdGlja3k7XFxuICB0b3A6IDA7XFxufVxcbi5lbW9qaS1tYXJ0LXN0YXRpYyAuZW1vamktbWFydC1jYXRlZ29yeS1sYWJlbCB7XFxuICB6LWluZGV4OiAyO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgLyogcG9zaXRpb246IHN0aWNreTsgKi9cXG4gIC8qIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTsgKi9cXG59XFxuXFxuLmVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWwgaDMge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBwYWRkaW5nOiA1cHggNnB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWVtb2ppIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGZvbnQtc2l6ZTogMDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtbm8tcmVzdWx0cyB7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBwYWRkaW5nLXRvcDogNzBweDtcXG4gIGNvbG9yOiAjODU4NTg1O1xcbn1cXG4uZW1vamktbWFydC1uby1yZXN1bHRzIC5lbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5lbW9qaS1tYXJ0LW5vLXJlc3VsdHMgLmVtb2ppLW1hcnQtbm8tcmVzdWx0cy1sYWJlbCB7XFxuICBtYXJnaW4tdG9wOiAwLjJlbTtcXG59XFxuLmVtb2ppLW1hcnQtbm8tcmVzdWx0cyAuZW1vamktbWFydC1lbW9qaTpob3ZlcjpiZWZvcmUge1xcbiAgY29udGVudDogbm9uZTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBoZWlnaHQ6IDcwcHg7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZW1vamksXFxuLmVtb2ppLW1hcnQtcHJldmlldy1kYXRhLFxcbi5lbW9qaS1tYXJ0LXByZXZpZXctc2tpbnMge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZW1vamkge1xcbiAgbGVmdDogMTJweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldy1kYXRhIHtcXG4gIGxlZnQ6IDY4cHg7XFxuICByaWdodDogMTJweDtcXG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldy1za2lucyB7XFxuICByaWdodDogMzBweDtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LW5hbWUge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBjb2xvcjogIzg4ODtcXG59XFxuLmVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWUgKyAuZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZSxcXG4uZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZSArIC5lbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb24sXFxuLmVtb2ppLW1hcnQtcHJldmlldy1lbW90aWNvbiArIC5lbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb24ge1xcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LWVtb3RpY29uIHtcXG4gIGZvbnQtc2l6ZTogMTFweDtcXG4gIGNvbG9yOiAjYmJiO1xcbn1cXG5cXG4uZW1vamktbWFydC10aXRsZSBzcGFuIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXRpdGxlIC5lbW9qaS1tYXJ0LWVtb2ppIHtcXG4gIHBhZGRpbmc6IDA7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXRpdGxlLWxhYmVsIHtcXG4gIGNvbG9yOiAjOTk5YTljO1xcbiAgZm9udC1zaXplOiAyMXB4O1xcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcyB7XFxuICBmb250LXNpemU6IDA7XFxuICBwYWRkaW5nOiAycHggMDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XFxuICBib3JkZXItcmFkaXVzOiAxMnB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcy1vcGVuZWQgLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gge1xcbiAgd2lkdGg6IDE2cHg7XFxuICBwYWRkaW5nOiAwIDJweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcy1vcGVuZWQgLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gtc2VsZWN0ZWQ6YWZ0ZXIge1xcbiAgb3BhY2l0eTogMC43NTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgd2lkdGg6IDA7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogd2lkdGgsIHBhZGRpbmc7XFxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjEyNXM7XFxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCgxKSB7XFxuICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2g6bnRoLWNoaWxkKDIpIHtcXG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMDNzO1xcbn1cXG4uZW1vamktbWFydC1za2luLXN3YXRjaDpudGgtY2hpbGQoMykge1xcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4wNnM7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCg0KSB7XFxuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjA5cztcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2g6bnRoLWNoaWxkKDUpIHtcXG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMTJzO1xcbn1cXG4uZW1vamktbWFydC1za2luLXN3YXRjaDpudGgtY2hpbGQoNikge1xcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4xNXM7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoLXNlbGVjdGVkIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiAxNnB4O1xcbiAgcGFkZGluZzogMCAycHg7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoLXNlbGVjdGVkOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiA1MCU7XFxuICB3aWR0aDogNHB4O1xcbiAgaGVpZ2h0OiA0cHg7XFxuICBtYXJnaW46IC0ycHggMCAwIC0ycHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgb3BhY2l0eTogMDtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLW91dDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbiB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIHBhZGRpbmctdG9wOiAxMDAlO1xcbiAgbWF4LXdpZHRoOiAxMnB4O1xcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYzkzYTtcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZGNiYztcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwYmI5NTtcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JmOGY2ODtcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzliNjQzZDtcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTYge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU5NDUzOTtcXG59XFxuXFxuLyogdnVlLXZpcnR1YWwtc2Nyb2xsZXIvZGlzdC92dWUtdmlydHVhbC1zY3JvbGxlci5jc3MgKi9cXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXIuZGlyZWN0aW9uLXZlcnRpY2FsOm5vdCgucGFnZS1tb2RlKSB7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbn1cXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXIuZGlyZWN0aW9uLWhvcml6b250YWw6bm90KC5wYWdlLW1vZGUpIHtcXG4gIG92ZXJmbG93LXg6IGF1dG87XFxufVxcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlci5kaXJlY3Rpb24taG9yaXpvbnRhbCB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbn1cXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX3Nsb3Qge1xcbiAgZmxleDogYXV0byAwIDA7XFxufVxcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS13cmFwcGVyIHtcXG4gIGZsZXg6IDE7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLmVtb2ppLW1hcnQgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLnJlYWR5IC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS12aWV3IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xcbn1cXG4uZW1vamktbWFydFxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLmRpcmVjdGlvbi12ZXJ0aWNhbFxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19pdGVtLXdyYXBwZXIge1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5lbW9qaS1tYXJ0XFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXIuZGlyZWN0aW9uLWhvcml6b250YWxcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS13cmFwcGVyIHtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLmVtb2ppLW1hcnRcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlci5yZWFkeS5kaXJlY3Rpb24tdmVydGljYWxcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS12aWV3IHtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4uZW1vamktbWFydFxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLnJlYWR5LmRpcmVjdGlvbi1ob3Jpem9udGFsXFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX2l0ZW0tdmlldyB7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5lbW9qaS1tYXJ0IC5yZXNpemUtb2JzZXJ2ZXJbZGF0YS12LWIzMjllZTRjXSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgei1pbmRleDogLTE7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGJvcmRlcjogbm9uZTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4uZW1vamktbWFydCAucmVzaXplLW9ic2VydmVyW2RhdGEtdi1iMzI5ZWU0Y10gb2JqZWN0IHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgei1pbmRleDogLTE7XFxufVxcbi5lbW9qaS1tYXJ0LXNlYXJjaCAuaGlkZGVuIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvZ2V0VXJsLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18gPSBuZXcgVVJMKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBZ0FBQUFJQ0FZQUFBREVENzZMQUFBQUgwbEVRVlFvVTJOa1lHQXdaa0FGWjVHNWpQUlJnT1lFVkRlQjNFQmpCUUJPWndUVnVnSUd5QUFBQUFCSlJVNUVya0pnZ2c9PVwiLCBpbXBvcnQubWV0YS51cmwpO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8xX19fID0gbmV3IFVSTChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWo4K0NqeHpkbWNnZDJsa2RHZzlJakV5SWlCb1pXbG5hSFE5SWpRaUlIWnBaWGRRYjNKMFBTSXdJREFnTVRJZ05DSWdkbVZ5YzJsdmJqMGlNUzR4SWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpUGdvZ0lEeGxiR3hwY0hObElHTjRQU0l5SWlCamVUMGlNaUlnY25nOUlqSWlJSEo1UFNJeUlqNEtJQ0FnSUR4aGJtbHRZWFJsSUdGMGRISnBZblYwWlU1aGJXVTlJbU40SWlCbWNtOXRQU0l5SWlCMGJ6MGlMVEV3SWlCa2RYSTlJakF1Tm5NaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlBdlBnb2dJRHd2Wld4c2FYQnpaVDRLSUNBOFpXeHNhWEJ6WlNCamVEMGlNVFFpSUdONVBTSXlJaUJ5ZUQwaU1pSWdjbms5SWpJaUlHTnNZWE56UFNKc2IyRmtaWElpUGdvZ0lDQWdQR0Z1YVcxaGRHVWdZWFIwY21saWRYUmxUbUZ0WlQwaVkzZ2lJR1p5YjIwOUlqRTBJaUIwYnowaU1pSWdaSFZ5UFNJd0xqWnpJaUJ5WlhCbFlYUkRiM1Z1ZEQwaWFXNWtaV1pwYm1sMFpTSWdMejRLSUNBOEwyVnNiR2x3YzJVK0Nqd3ZjM1puUGdvPVwiLCBpbXBvcnQubWV0YS51cmwpO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzBfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMV9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIvKlxcbiAqIFF1YXNhciBGcmFtZXdvcmsgdjAuMTcuMjBcXG4gKiAoYykgMjAxNi1wcmVzZW50IFJhenZhbiBTdG9lbmVzY3VcXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXFxuICovXFxuKixcXG4qOmJlZm9yZSxcXG4qOmFmdGVyIHtcXG4gIC13ZWJraXQtYm94LXNpemluZzogaW5oZXJpdDtcXG4gICAgICAgICAgYm94LXNpemluZzogaW5oZXJpdDtcXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAtbW96LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG5odG1sLFxcbmJvZHksXFxuI3EtYXBwIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgZGlyZWN0aW9uOiBsdHI7XFxufVxcbmh0bWwsXFxuYm9keSB7XFxuICBtYXJnaW46IDA7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxufVxcbmlucHV0W3R5cGU9J3RleHQnXSxcXG5pbnB1dFt0eXBlPSdlbWFpbCddLFxcbmlucHV0W3R5cGU9J3NlYXJjaCddLFxcbmlucHV0W3R5cGU9J3Bhc3N3b3JkJ10ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lIC8qIG1vYmlsZSBmaXJlZm94IHRvbyEgKi87XFxufVxcbmFydGljbGUsXFxuYXNpZGUsXFxuZGV0YWlscyxcXG5maWdjYXB0aW9uLFxcbmZpZ3VyZSxcXG5mb290ZXIsXFxuaGVhZGVyLFxcbm1haW4sXFxubWVudSxcXG5uYXYsXFxuc2VjdGlvbixcXG5zdW1tYXJ5IHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbn1cXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xcbiAgZGlzcGxheTogbm9uZTtcXG4gIGhlaWdodDogMDtcXG59XFxuYWJiclt0aXRsZV0ge1xcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG59XFxuZGZuIHtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuaW1nIHtcXG4gIGJvcmRlci1zdHlsZTogbm9uZTtcXG59XFxuc3ZnOm5vdCg6cm9vdCkge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuY29kZSxcXG5rYmQsXFxucHJlLFxcbnNhbXAge1xcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xcbiAgZm9udC1zaXplOiAxZW07XFxufVxcbmhyIHtcXG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgaGVpZ2h0OiAwO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxufVxcbmJ1dHRvbixcXG5pbnB1dCxcXG5zZWxlY3QsXFxudGV4dGFyZWEge1xcbiAgZm9udDogaW5oZXJpdDtcXG4gIG1hcmdpbjogMDtcXG59XFxub3B0Z3JvdXAge1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxufVxcbmJ1dHRvbixcXG5pbnB1dCxcXG5zZWxlY3Qge1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxufVxcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XFxuICBib3JkZXI6IDA7XFxuICBwYWRkaW5nOiAwO1xcbn1cXG5idXR0b246LW1vei1mb2N1c3JpbmcsXFxuaW5wdXQ6LW1vei1mb2N1c3Jpbmcge1xcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xcbn1cXG50ZXh0YXJlYSB7XFxuICBvdmVyZmxvdzogYXV0bztcXG59XFxuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XFxufVxcbmlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxcbmlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG59XFxuLnEtaWNvbiB7XFxuICBsaW5lLWhlaWdodDogMTtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB3b3JkLXdyYXA6IG5vcm1hbDtcXG4gIGRpcmVjdGlvbjogbHRyO1xcbn1cXG4ucS1pY29uLFxcbi5tYXRlcmlhbC1pY29ucyB7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgY3Vyc29yOiBpbmhlcml0O1xcbiAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi5xLWFjdGlvbnNoZWV0LXRpdGxlIHtcXG4gIG1pbi1oZWlnaHQ6IDU2cHg7XFxuICBwYWRkaW5nOiAwIDE2cHg7XFxuICBjb2xvcjogIzc3NztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWZhZGVkKTtcXG59XFxuLnEtYWN0aW9uc2hlZXQtYm9keSB7XFxuICBtYXgtaGVpZ2h0OiA1MDBweDtcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZCB7XFxuICBwYWRkaW5nOiA4cHggMTZweDtcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZCAucS1pdGVtLXNlcGFyYXRvci1jb21wb25lbnQge1xcbiAgbWFyZ2luOiAyNHB4IDA7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbSB7XFxuICBwYWRkaW5nOiA4cHggMTZweDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzO1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzO1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW06aG92ZXIsXFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtOmZvY3VzIHtcXG4gIGJhY2tncm91bmQ6ICNkMGQwZDA7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW0gaSxcXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW0gaW1nIHtcXG4gIGZvbnQtc2l6ZTogNDhweDtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtIC5hdmF0YXIge1xcbiAgd2lkdGg6IDQ4cHg7XFxuICBoZWlnaHQ6IDQ4cHg7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbSBzcGFuIHtcXG4gIGNvbG9yOiAjNzc3O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItZmFkZWQpO1xcbn1cXG4ucS1sb2FkaW5nLWJhciB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB6LWluZGV4OiA5OTk4O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgb3BhY2l0eSAwLjVzO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIG9wYWNpdHkgMC41cywgLXdlYmtpdC10cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcXG59XFxuLnEtbG9hZGluZy1iYXIudG9wIHtcXG4gIGxlZnQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG4gIHJpZ2h0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxuICB0b3A6IDA7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLnEtbG9hZGluZy1iYXIuYm90dG9tIHtcXG4gIGxlZnQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG4gIHJpZ2h0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxuICBib3R0b206IDA7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLnEtbG9hZGluZy1iYXIucmlnaHQge1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWxvYWRpbmctYmFyLmxlZnQge1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLnEtYWxlcnQge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG4ucS1hbGVydCAuYXZhdGFyIHtcXG4gIHdpZHRoOiAzMnB4O1xcbiAgaGVpZ2h0OiAzMnB4O1xcbn1cXG4ucS1hbGVydC1zaWRlLFxcbi5xLWFsZXJ0LWNvbnRlbnQge1xcbiAgcGFkZGluZzogMTJweDtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XFxufVxcbi5xLWFsZXJ0LXNpZGUge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEpO1xcbn1cXG4ucS1hbGVydC1hY3Rpb25zIHtcXG4gIHBhZGRpbmc6IDEycHggMTJweCAxMnB4IDA7XFxufVxcbi5xLWFsZXJ0LWRldGFpbCB7XFxuICBmb250LXNpemU6IDEycHg7XFxufVxcbi5xLWJyZWFkY3J1bWJzIC5xLWljb24sXFxuLnEtYnJlYWRjcnVtYnMgLnEtYnJlYWRjcnVtYnMtc2VwYXJhdG9yIHtcXG4gIGZvbnQtc2l6ZTogMTUwJTtcXG59XFxuLnEtYnJlYWRjcnVtYnMtbGFzdCBhIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG5bZGlyPXJ0bF0gLnEtYnJlYWRjcnVtYnMtc2VwYXJhdG9yIC5xLWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgtMSkgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWJ0biB7XFxuICBvdXRsaW5lOiAwO1xcbiAgYm9yZGVyOiAwO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHBhZGRpbmc6IDRweCAxNnB4O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgbWluLWhlaWdodDogMi41NzJlbTtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxufVxcbmJ1dHRvbi5xLWJ0biB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcXG59XFxuYS5xLWJ0biB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG59XFxuLnEtYnRuIC5xLWljb24sXFxuLnEtYnRuIC5xLXNwaW5uZXIge1xcbiAgZm9udC1zaXplOiAxLjRlbTtcXG59XFxuLnEtYnRuIC5xLWJ0bi1pbm5lciB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC42cztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC42cztcXG59XFxuLnEtYnRuIC5xLWJ0bi1pbm5lci0taGlkZGVuIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLWJ0biAucS1idG4taW5uZXI6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbn1cXG4ucS1idG4uZGlzYWJsZWQge1xcbiAgb3BhY2l0eTogMC43ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWJ0bjpub3QoLmRpc2FibGVkKTpub3QoLnEtYnRuLWZsYXQpOm5vdCgucS1idG4tb3V0bGluZSk6bm90KC5xLWJ0bi1wdXNoKTpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgei1pbmRleDogLTE7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG59XFxuLnEtYnRuOm5vdCguZGlzYWJsZWQpOm5vdCgucS1idG4tZmxhdCk6bm90KC5xLWJ0bi1vdXRsaW5lKTpub3QoLnEtYnRuLXB1c2gpOmFjdGl2ZTpiZWZvcmUsXFxuLnEtYnRuOm5vdCguZGlzYWJsZWQpOm5vdCgucS1idG4tZmxhdCk6bm90KC5xLWJ0bi1vdXRsaW5lKTpub3QoLnEtYnRuLXB1c2gpLmFjdGl2ZTpiZWZvcmUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCA4cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMTRweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtYnRuLXByb2dyZXNzIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3M7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcXG4gIGhlaWdodDogMTAwJTtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7XFxufVxcbi5xLWJ0bi1wcm9ncmVzcy5xLWJ0bi1kYXJrLXByb2dyZXNzIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4yKTtcXG59XFxuLnEtYnRuLW5vLXVwcGVyY2FzZSB7XFxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG59XFxuLnEtYnRuLXJlY3RhbmdsZSB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxufVxcbi5xLWJ0bi1vdXRsaW5lIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWJ0bi1wdXNoIHtcXG4gIGJvcmRlci1yYWRpdXM6IDdweDtcXG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO1xcbn1cXG4ucS1idG4tcHVzaDphY3RpdmU6bm90KC5kaXNhYmxlZCksXFxuLnEtYnRuLXB1c2guYWN0aXZlOm5vdCguZGlzYWJsZWQpIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpO1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5xLWJ0bi1wdXNoIC5xLWZvY3VzLWhlbHBlcixcXG4ucS1idG4tcHVzaCAucS1yaXBwbGUtY29udGFpbmVyIHtcXG4gIGhlaWdodDogYXV0bztcXG4gIGJvdHRvbTogLTNweDtcXG59XFxuLnEtYnRuLXJvdW5kZWQge1xcbiAgYm9yZGVyLXJhZGl1czogMjhweDtcXG59XFxuLnEtYnRuLXJvdW5kIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHBhZGRpbmc6IDA7XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgaGVpZ2h0OiAzZW07XFxuICB3aWR0aDogM2VtO1xcbn1cXG4ucS1idG4tZmxhdCxcXG4ucS1idG4tb3V0bGluZSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5xLWJ0bi1kZW5zZSB7XFxuICBwYWRkaW5nOiAwLjI4NWVtO1xcbiAgbWluLWhlaWdodDogMmVtO1xcbn1cXG4ucS1idG4tZGVuc2UucS1idG4tcm91bmQge1xcbiAgcGFkZGluZzogMDtcXG4gIGhlaWdodDogMi40ZW07XFxuICB3aWR0aDogMi40ZW07XFxufVxcbi5xLWJ0bi1kZW5zZSAub24tbGVmdCB7XFxuICBtYXJnaW4tcmlnaHQ6IDZweDtcXG59XFxuLnEtYnRuLWRlbnNlIC5vbi1yaWdodCB7XFxuICBtYXJnaW4tbGVmdDogNnB4O1xcbn1cXG4ucS1idG4tZmFiIC5xLWljb24sXFxuLnEtYnRuLWZhYi1taW5pIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbn1cXG4ucS1idG4tZmFiIHtcXG4gIGhlaWdodDogNTZweDtcXG4gIHdpZHRoOiA1NnB4O1xcbn1cXG4ucS1idG4tZmFiLW1pbmkge1xcbiAgaGVpZ2h0OiA0MHB4O1xcbiAgd2lkdGg6IDQwcHg7XFxufVxcbi5xLXRyYW5zaXRpb24tLWZhZGUtbGVhdmUtYWN0aXZlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLnEtdHJhbnNpdGlvbi0tZmFkZS1lbnRlci1hY3RpdmUsXFxuLnEtdHJhbnNpdGlvbi0tZmFkZS1sZWF2ZS1hY3RpdmUge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZS1vdXQ7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZS1vdXQ7XFxufVxcbi5xLXRyYW5zaXRpb24tLWZhZGUtZW50ZXIsXFxuLnEtdHJhbnNpdGlvbi0tZmFkZS1sZWF2ZSxcXG4ucS10cmFuc2l0aW9uLS1mYWRlLWxlYXZlLXRvIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLWJ0bi1kcm9wZG93bi1zcGxpdCAucS1idG4tZHJvcGRvd24tYXJyb3cge1xcbiAgcGFkZGluZzogMCA0cHg7XFxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4zKTtcXG59XFxuLnEtYnRuLWdyb3VwIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWl0ZW0ge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4tZ3JvdXAgPiAucS1idG46Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGluaGVyaXQ7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1ncm91cCA+IC5xLWJ0bjpsYXN0LWNoaWxkIHtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKSA+IC5xLWJ0bjpmaXJzdC1jaGlsZCB7XFxuICBib3JkZXItbGVmdDogMDtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCkgPiAucS1idG46bGFzdC1jaGlsZCB7XFxuICBib3JkZXItcmlnaHQ6IDA7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWl0ZW0gKyAucS1idG4taXRlbSB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcXG59XFxuLnEtYnRuLWdyb3VwLXB1c2gge1xcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xcbn1cXG4ucS1idG4tZ3JvdXAtcHVzaCA+IC5xLWJ0bi1wdXNoIC5xLWJ0bi1pbm5lciB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG59XFxuLnEtYnRuLWdyb3VwLXB1c2ggPiAucS1idG4tcHVzaDphY3RpdmU6bm90KC5kaXNhYmxlZCksXFxuLnEtYnRuLWdyb3VwLXB1c2ggPiAucS1idG4tcHVzaC5hY3RpdmU6bm90KC5kaXNhYmxlZCkge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLDAsMCwwLjE1KTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxufVxcbi5xLWJ0bi1ncm91cC1wdXNoID4gLnEtYnRuLXB1c2g6YWN0aXZlOm5vdCguZGlzYWJsZWQpIC5xLWJ0bi1pbm5lcixcXG4ucS1idG4tZ3JvdXAtcHVzaCA+IC5xLWJ0bi1wdXNoLmFjdGl2ZTpub3QoLmRpc2FibGVkKSAucS1idG4taW5uZXIge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoM3B4KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCk7XFxufVxcbi5xLWJ0bi1ncm91cC1yb3VuZGVkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDI4cHg7XFxufVxcbi5xLWJ0bi1ncm91cC1mbGF0LFxcbi5xLWJ0bi1ncm91cC1vdXRsaW5lIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLnEtYnRuLWdyb3VwLW91dGxpbmUgPiAucS1idG4taXRlbSArIC5xLWJ0bi1pdGVtIHtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbn1cXG4ucS1idG4tZ3JvdXAtb3V0bGluZSA+IC5xLWJ0bi1pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgYm9yZGVyLXJpZ2h0OiAwO1xcbn1cXG4ucS1jYXJkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcXG59XFxuLnEtY2FyZCA+IGRpdjpmaXJzdC1jaGlsZCB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XFxufVxcbi5xLWNhcmQgPiBkaXY6bGFzdC1jaGlsZCB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XFxufVxcbi5xLWNhcmQgPiAucS1saXN0IHtcXG4gIGJvcmRlcjogMDtcXG59XFxuLnEtY2FyZC1zZXBhcmF0b3Ige1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEpO1xcbiAgaGVpZ2h0OiAxcHg7XFxufVxcbi5xLWNhcmQtc2VwYXJhdG9yLmluc2V0IHtcXG4gIG1hcmdpbjogMCAxNnB4O1xcbn1cXG4ucS1jYXJkLWNvbnRhaW5lciB7XFxuICBwYWRkaW5nOiAxNnB4O1xcbn1cXG4ucS1jYXJkLXRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMThweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbiAgbGluZS1oZWlnaHQ6IDJyZW07XFxufVxcbi5xLWNhcmQtdGl0bGU6ZW1wdHkge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtY2FyZC1zdWJ0aXRsZSxcXG4ucS1jYXJkLXRpdGxlLWV4dHJhIHtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuNCk7XFxufVxcbi5xLWNhcmQtc3VidGl0bGUgLnEtaWNvbixcXG4ucS1jYXJkLXRpdGxlLWV4dHJhIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbn1cXG4ucS1jYXJkLW1haW4ge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbn1cXG4ucS1jYXJkLXByaW1hcnkgKyAucS1jYXJkLW1haW4ge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5xLWNhcmQtYWN0aW9ucyB7XFxuICBwYWRkaW5nOiA4cHg7XFxufVxcbi5xLWNhcmQtYWN0aW9ucyAucS1idG4ge1xcbiAgcGFkZGluZzogMCA4cHg7XFxufVxcbi5xLWNhcmQtYWN0aW9ucy1ob3JpeiAucS1idG46bm90KDpsYXN0LWNoaWxkKSB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuLnEtY2FyZC1hY3Rpb25zLXZlcnQgLnEtYnRuICsgLnEtYnRuIHtcXG4gIG1hcmdpbi10b3A6IDRweDtcXG59XFxuLnEtY2FyZC1tZWRpYSB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1jYXJkLW1lZGlhID4gaW1nIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBib3JkZXI6IDA7XFxufVxcbi5xLWNhcmQtbWVkaWEtb3ZlcmxheSB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC40Nyk7XFxufVxcbi5xLWNhcmQtbWVkaWEtb3ZlcmxheSAucS1jYXJkLXN1YnRpdGxlIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1jYXJkLWRhcmsgLnEtY2FyZC1zZXBhcmF0b3Ige1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xcbn1cXG4ucS1jYXJkLWRhcmsgLnEtY2FyZC1zdWJ0aXRsZSxcXG4ucS1jYXJkLWRhcmsgLnEtY2FyZC10aXRsZS1leHRyYSB7XFxuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjYpO1xcbn1cXG4ucS1jYXJvdXNlbCB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucS1jYXJvdXNlbC1pbm5lciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWNhcm91c2VsLXNsaWRlIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgLW1zLWZsZXg6IDAgMCAxMDAlO1xcbiAgICAgICAgICBmbGV4OiAwIDAgMTAwJTtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDE4cHg7XFxufVxcbi5xLWNhcm91c2VsLXRyYWNrIHtcXG4gIHBhZGRpbmc6IDA7XFxuICBtYXJnaW46IDA7XFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtbXMtZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgZmxleC13cmFwOiBub3dyYXA7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWNhcm91c2VsLXRyYWNrLmluZmluaXRlLWxlZnQgPiBkaXY6bnRoLWxhc3QtY2hpbGQoMikge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogLTk5OTtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogLTEwMDA7XFxuICAgICAgICAgIG9yZGVyOiAtMTAwMDtcXG4gIG1hcmdpbi1sZWZ0OiAtMTAwJTtcXG59XFxuLnEtY2Fyb3VzZWwtdHJhY2suaW5maW5pdGUtcmlnaHQgPiBkaXY6bnRoLWNoaWxkKDIpIHtcXG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDEwMDE7XFxuICAgICAgLW1zLWZsZXgtb3JkZXI6IDEwMDA7XFxuICAgICAgICAgIG9yZGVyOiAxMDAwO1xcbn1cXG4ucS1jYXJvdXNlbC1sZWZ0LWFycm93LFxcbi5xLWNhcm91c2VsLXJpZ2h0LWFycm93IHtcXG4gIHRvcDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcXG59XFxuLnEtY2Fyb3VzZWwtbGVmdC1hcnJvdyB7XFxuICBsZWZ0OiA1cHg7XFxufVxcbi5xLWNhcm91c2VsLXJpZ2h0LWFycm93IHtcXG4gIHJpZ2h0OiA1cHg7XFxufVxcbi5xLWNhcm91c2VsLXF1aWNrLW5hdiB7XFxuICBwYWRkaW5nOiAycHggMDtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcXG59XFxuLnEtY2Fyb3VzZWwtcXVpY2stbmF2IC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAxOHB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWNhcm91c2VsLXF1aWNrLW5hdiAucS1idG4uaW5hY3RpdmUge1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS1jYXJvdXNlbC1xdWljay1uYXYgLnEtYnRuLmluYWN0aXZlIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMge1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zcztcXG4gIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3M7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjNzO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTA1JSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDUlKTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgbWF4LWhlaWdodDogNjAlO1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxuICBiYWNrZ3JvdW5kOiAjMDAwO1xcbiAgcGFkZGluZzogMC41cmVtO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0zcHggNnB4IHJnYmEoMCwwLDAsMC4xNiksIDAgLTVweCA2cHggcmdiYSgwLDAsMCwwLjIzKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtM3B4IDZweCByZ2JhKDAsMCwwLDAuMTYpLCAwIC01cHggNnB4IHJnYmEoMCwwLDAsMC4yMyk7XFxufVxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMuYWN0aXZlIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxufVxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMgaW1nIHtcXG4gIGhlaWdodDogYXV0bztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBvcGFjaXR5OiAwLjU7XFxuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDtcXG59XFxuLnEtY2Fyb3VzZWwtdGh1bWJuYWlscyA+IGRpdiA+IGRpdiB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgMTA4cHg7XFxuICAgICAgICAgIGZsZXg6IDAgMCAxMDhweDtcXG59XFxuLnEtY2Fyb3VzZWwtdGh1bWJuYWlscyA+IGRpdiA+IGRpdi5hY3RpdmUgaW1nLFxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMgPiBkaXYgPiBkaXYgaW1nLmFjdGl2ZSB7XFxuICBvcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiAjZmZmO1xcbn1cXG4ucS1jYXJvdXNlbC10aHVtYm5haWwtYnRuIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcXG4gIHRvcDogNXB4O1xcbiAgcmlnaHQ6IDVweDtcXG59XFxuYm9keS5kZXNrdG9wIC5xLWNhcm91c2VsLXRodW1ibmFpbHMgaW1nOmhvdmVyIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLW1lc3NhZ2UtbmFtZSxcXG4ucS1tZXNzYWdlLXN0YW1wLFxcbi5xLW1lc3NhZ2UtbGFiZWwge1xcbiAgZm9udC1zaXplOiBzbWFsbDtcXG59XFxuLnEtbWVzc2FnZS1sYWJlbCB7XFxuICBtYXJnaW46IDI0cHggMDtcXG59XFxuLnEtbWVzc2FnZS1zdGFtcCB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIG1hcmdpbi10b3A6IDRweDtcXG4gIG9wYWNpdHk6IDAuNjtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLW1lc3NhZ2UtYXZhdGFyIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHdpZHRoOiA0OHB4O1xcbiAgaGVpZ2h0OiA0OHB4O1xcbn1cXG4ucS1tZXNzYWdlIHtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuLnEtbWVzc2FnZTpmaXJzdC1jaGlsZCAucS1tZXNzYWdlLWxhYmVsIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxufVxcbi5xLW1lc3NhZ2UtcmVjZWl2ZWQgLnEtbWVzc2FnZS1hdmF0YXIge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbi5xLW1lc3NhZ2UtcmVjZWl2ZWQgLnEtbWVzc2FnZS10ZXh0IHtcXG4gIGNvbG9yOiAjODFjNzg0O1xcbiAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAzcHggMDtcXG59XFxuLnEtbWVzc2FnZS1yZWNlaXZlZCAucS1tZXNzYWdlLXRleHQ6bGFzdC1jaGlsZDpiZWZvcmUge1xcbiAgcmlnaHQ6IDEwMCU7XFxuICBib3JkZXItcmlnaHQ6IDAgc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItbGVmdDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtbWVzc2FnZS1yZWNlaXZlZCAucS1tZXNzYWdlLXRleHQtY29udGVudCB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtbWVzc2FnZS1zZW50IC5xLW1lc3NhZ2UtbmFtZSB7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG59XFxuLnEtbWVzc2FnZS1zZW50IC5xLW1lc3NhZ2UtYXZhdGFyIHtcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxufVxcbi5xLW1lc3NhZ2Utc2VudCAucS1tZXNzYWdlLWNvbnRhaW5lciB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbn1cXG4ucS1tZXNzYWdlLXNlbnQgLnEtbWVzc2FnZS10ZXh0IHtcXG4gIGNvbG9yOiAjZTBlMGUwO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAwIDNweDtcXG59XFxuLnEtbWVzc2FnZS1zZW50IC5xLW1lc3NhZ2UtdGV4dDpsYXN0LWNoaWxkOmJlZm9yZSB7XFxuICBsZWZ0OiAxMDAlO1xcbiAgYm9yZGVyLWxlZnQ6IDAgc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItcmlnaHQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLW1lc3NhZ2Utc2VudCAucS1tZXNzYWdlLXRleHQtY29udGVudCB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtbWVzc2FnZS10ZXh0IHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIHBhZGRpbmc6IDhweDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI7XFxuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbn1cXG4ucS1tZXNzYWdlLXRleHQgKyAucS1tZXNzYWdlLXRleHQge1xcbiAgbWFyZ2luLXRvcDogM3B4O1xcbn1cXG4ucS1tZXNzYWdlLXRleHQ6bGFzdC1jaGlsZCB7XFxuICBtaW4taGVpZ2h0OiA0OHB4O1xcbn1cXG4ucS1tZXNzYWdlLXRleHQ6bGFzdC1jaGlsZCAucS1tZXNzYWdlLXN0YW1wIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbn1cXG4ucS1tZXNzYWdlLXRleHQ6bGFzdC1jaGlsZDpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3R0b206IDA7XFxuICB3aWR0aDogMDtcXG4gIGhlaWdodDogMDtcXG59XFxuLnEtY2hlY2tib3gtaWNvbiB7XFxuICBoZWlnaHQ6IDIxcHg7XFxuICB3aWR0aDogMjFweDtcXG4gIGZvbnQtc2l6ZTogMjFweDtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLWNoaXAge1xcbiAgbWluLWhlaWdodDogMzJweDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIHBhZGRpbmc6IDAgMTJweDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGJvcmRlcjogI2UwZTBlMDtcXG4gIGJvcmRlci1yYWRpdXM6IDJyZW07XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgY29sb3I6ICMwMDA7XFxuICBiYWNrZ3JvdW5kOiAjZWVlO1xcbn1cXG4ucS1jaGlwOmZvY3VzIC5xLWNoaXAtY2xvc2Uge1xcbiAgb3BhY2l0eTogMC44O1xcbn1cXG4ucS1jaGlwIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbiAgbGluZS1oZWlnaHQ6IDE7XFxufVxcbi5xLWNoaXAtbWFpbiB7XFxuICBsaW5lLWhlaWdodDogaW5pdGlhbDtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG59XFxuLnEtY2hpcC1zaWRlIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGhlaWdodDogMzJweDtcXG4gIHdpZHRoOiAzMnB4O1xcbiAgbWluLXdpZHRoOiAzMnB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtY2hpcC1zaWRlIGltZyB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLnEtY2hpcC1sZWZ0IHtcXG4gIG1hcmdpbi1sZWZ0OiAtMTJweDtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG4ucS1jaGlwLXJpZ2h0IHtcXG4gIG1hcmdpbi1sZWZ0OiAycHg7XFxuICBtYXJnaW4tcmlnaHQ6IC0xMnB4O1xcbn1cXG4ucS1jaGlwLXNxdWFyZSB7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxufVxcbi5xLWNoaXAtZmxvYXRpbmcge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtMC4zZW07XFxuICByaWdodDogLTAuM2VtO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB6LWluZGV4OiAxO1xcbn1cXG4ucS1jaGlwLXRhZyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBwYWRkaW5nLWxlZnQ6IDEuN3JlbTtcXG59XFxuLnEtY2hpcC10YWc6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDAuNXJlbTtcXG4gIG1hcmdpbi10b3A6IC0wLjI1cmVtO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIHdpZHRoOiAwLjVyZW07XFxuICBoZWlnaHQ6IDAuNXJlbTtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMXB4IDFweCAwIHJnYmEoMCwwLDAsMC4zKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMXB4IDFweCAwIHJnYmEoMCwwLDAsMC4zKTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuLnEtY2hpcC1wb2ludGluZyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB6LWluZGV4OiAwO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHotaW5kZXg6IC0xO1xcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcXG4gIHdpZHRoOiAxNnB4O1xcbiAgaGVpZ2h0OiAxNnB4O1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLXVwIHtcXG4gIG1hcmdpbi10b3A6IDAuOHJlbTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy11cDpiZWZvcmUge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMjIlKSByb3RhdGUoNDVkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMjIlKSByb3RhdGUoNDVkZWcpO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLWRvd24ge1xcbiAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLWRvd246YmVmb3JlIHtcXG4gIHJpZ2h0OiBhdXRvO1xcbiAgdG9wOiAxMDAlO1xcbiAgbGVmdDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNzglKSByb3RhdGUoNDVkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNzglKSByb3RhdGUoNDVkZWcpO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLXJpZ2h0IHtcXG4gIG1hcmdpbi1yaWdodDogMC44cmVtO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLXJpZ2h0OmJlZm9yZSB7XFxuICB0b3A6IDUwJTtcXG4gIHJpZ2h0OiAycHg7XFxuICBib3R0b206IGF1dG87XFxuICBsZWZ0OiBhdXRvO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzMlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMyUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy1sZWZ0IHtcXG4gIG1hcmdpbi1sZWZ0OiAwLjhyZW07XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctbGVmdDpiZWZvcmUge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAycHg7XFxuICBib3R0b206IGF1dG87XFxuICByaWdodDogYXV0bztcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMyUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMyUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcXG59XFxuLnEtY2hpcC1kZXRhaWwge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEpO1xcbiAgb3BhY2l0eTogMC44O1xcbiAgcGFkZGluZzogMCA1cHg7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcXG59XFxuLnEtY2hpcC1zbWFsbCB7XFxuICBtaW4taGVpZ2h0OiAyNnB4O1xcbn1cXG4ucS1jaGlwLXNtYWxsIC5xLWNoaXAtbWFpbiB7XFxuICBwYWRkaW5nOiA0cHggMXB4O1xcbiAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XFxufVxcbi5xLWNoaXAtc21hbGwgLnEtY2hpcC1zaWRlIHtcXG4gIGhlaWdodDogMjZweDtcXG4gIHdpZHRoOiAyNnB4O1xcbiAgbWluLXdpZHRoOiAyNnB4O1xcbn1cXG4ucS1jaGlwLXNtYWxsIC5xLWNoaXAtaWNvbiB7XFxuICBmb250LXNpemU6IDE2cHg7XFxufVxcbi5xLWNoaXAtZGVuc2Uge1xcbiAgbWluLWhlaWdodDogMXB4O1xcbiAgcGFkZGluZzogMCAzcHg7XFxuICBmb250LXNpemU6IDEycHg7XFxufVxcbi5xLWNoaXAtZGVuc2UucS1jaGlwLXRhZyB7XFxuICBwYWRkaW5nLWxlZnQ6IDEuM3JlbTtcXG59XFxuLnEtY2hpcC1kZW5zZS5xLWNoaXAtcG9pbnRpbmc6YmVmb3JlIHtcXG4gIHdpZHRoOiA5cHg7XFxuICBoZWlnaHQ6IDlweDtcXG59XFxuLnEtY2hpcC1kZW5zZSAucS1jaGlwLW1haW4ge1xcbiAgcGFkZGluZzogMXB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlIC5xLWNoaXAtc2lkZSB7XFxuICBoZWlnaHQ6IDE4cHg7XFxuICB3aWR0aDogMThweDtcXG4gIG1pbi13aWR0aDogMTZweDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG59XFxuLnEtY2hpcC1kZW5zZSAucS1jaGlwLWxlZnQge1xcbiAgbWFyZ2luLWxlZnQ6IC0zcHg7XFxuICBtYXJnaW4tcmlnaHQ6IDJweDtcXG59XFxuLnEtY2hpcC1kZW5zZSAucS1jaGlwLXJpZ2h0IHtcXG4gIG1hcmdpbi1sZWZ0OiAycHg7XFxuICBtYXJnaW4tcmlnaHQ6IC0ycHg7XFxufVxcbi5xLWNoaXAtZGVuc2UgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDE2cHg7XFxufVxcbi5xLWlucHV0LWNoaXBzIHtcXG4gIG1hcmdpbi10b3A6IC0xcHg7XFxuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xcbn1cXG4ucS1pbnB1dC1jaGlwcyAucS1jaGlwIHtcXG4gIG1hcmdpbjogMXB4O1xcbn1cXG4ucS1pbnB1dC1jaGlwcyBpbnB1dC5xLWlucHV0LXRhcmdldCB7XFxuICBtaW4td2lkdGg6IDcwcHggIWltcG9ydGFudDtcXG59XFxuLnEtY29sbGFwc2libGUtc3ViLWl0ZW0ge1xcbiAgcGFkZGluZzogOHB4IDE2cHg7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXN1Yi1pdGVtLmluZGVudCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XFxuICBwYWRkaW5nLXJpZ2h0OiAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1zdWItaXRlbSAucS1jYXJkIHtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxufVxcbi5xLWNvbGxhcHNpYmxlLnJvdXRlci1saW5rLWFjdGl2ZSA+IC5xLWl0ZW0ge1xcbiAgYmFja2dyb3VuZDogcmdiYSgxODksMTg5LDE4OSwwLjQpO1xcbn1cXG4ucS1jb2xsYXBzaWJsZSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IHBhZGRpbmcgMC41cztcXG4gIHRyYW5zaXRpb246IHBhZGRpbmcgMC41cztcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtY2xvc2VkIHtcXG4gIHBhZGRpbmc6IDAgMTVweDtcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtY2xvc2VkIC5xLWNvbGxhcHNpYmxlLWlubmVyIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLWNsb3NlZCArIC5xLWNvbGxhcHNpYmxlLXBvcHVwLWNsb3NlZCAucS1jb2xsYXBzaWJsZS1pbm5lciB7XFxuICBib3JkZXItdG9wOiAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQge1xcbiAgcGFkZGluZzogMTVweCAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQgLnEtY29sbGFwc2libGUtaW5uZXIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLW9wZW5lZCArIC5xLWNvbGxhcHNpYmxlLXBvcHVwLW9wZW5lZCxcXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQ6Zmlyc3QtY2hpbGQge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLW9wZW5lZDpsYXN0LWNoaWxkIHtcXG4gIHBhZGRpbmctYm90dG9tOiAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1jdXJzb3ItcG9pbnRlciA+IC5xLWNvbGxhcHNpYmxlLWlubmVyID4gLnEtaXRlbSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXRvZ2dsZS1pY29uIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHdpZHRoOiAxZW07XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5xLWNvbG9yIHtcXG4gIG1heC13aWR0aDogMTAwdnc7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbn1cXG4ucS1jb2xvci1zYXR1cmF0aW9uIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMjNweDtcXG59XFxuLnEtY29sb3Itc2F0dXJhdGlvbi13aGl0ZSB7XFxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgZnJvbSgjZmZmKSwgdG8ocmdiYSgyNTUsMjU1LDI1NSwwKSkpO1xcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZmZmLCByZ2JhKDI1NSwyNTUsMjU1LDApKTtcXG59XFxuLnEtY29sb3Itc2F0dXJhdGlvbi1ibGFjayB7XFxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCBib3R0b20sIGxlZnQgdG9wLCBmcm9tKCMwMDApLCB0byhyZ2JhKDAsMCwwLDApKSk7XFxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAjMDAwLCByZ2JhKDAsMCwwLDApKTtcXG59XFxuLnEtY29sb3Itc2F0dXJhdGlvbi1jaXJjbGUge1xcbiAgd2lkdGg6IDEwcHg7XFxuICBoZWlnaHQ6IDEwcHg7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDEuNXB4ICNmZmYsIGluc2V0IDAgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4zKSwgMCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjQpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxLjVweCAjZmZmLCBpbnNldCAwIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMyksIDAgMCAxcHggMnB4IHJnYmEoMCwwLDAsMC40KTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIC01cHgpO1xcbn1cXG4ucS1jb2xvci1zd2F0Y2gsXFxuLnEtY29sb3ItYWxwaGEgLnEtc2xpZGVyLXRyYWNrIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiArIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzBfX18gKyBcIikgIWltcG9ydGFudDtcXG59XFxuLnEtY29sb3Itc3dhdGNoIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiAzMnB4O1xcbiAgaGVpZ2h0OiAzMnB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxufVxcbi5xLWNvbG9yLWh1ZSAucS1zbGlkZXItdHJhY2sge1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGZyb20oI2YwMCksIGNvbG9yLXN0b3AoMTclLCAjZmYwKSwgY29sb3Itc3RvcCgzMyUsICMwZjApLCBjb2xvci1zdG9wKDUwJSwgIzBmZiksIGNvbG9yLXN0b3AoNjclLCAjMDBmKSwgY29sb3Itc3RvcCg4MyUsICNmMGYpLCB0bygjZjAwKSk7XFxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNmMDAgMCUsICNmZjAgMTclLCAjMGYwIDMzJSwgIzBmZiA1MCUsICMwMGYgNjclLCAjZjBmIDgzJSwgI2YwMCAxMDAlKTtcXG4gIG9wYWNpdHk6IDE7XFxuICBoZWlnaHQ6IDhweDtcXG59XFxuLnEtY29sb3ItaHVlIC5xLXNsaWRlci10cmFjay5hY3RpdmUtdHJhY2sge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtY29sb3ItYWxwaGEgLnEtc2xpZGVyLXRyYWNrIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICBvcGFjaXR5OiAxO1xcbiAgaGVpZ2h0OiA4cHg7XFxufVxcbi5xLWNvbG9yLWFscGhhIC5xLXNsaWRlci10cmFjazphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBmcm9tKHJnYmEoMjU1LDI1NSwyNTUsMCkpLCB0bygjNzU3NTc1KSk7XFxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMCksICM3NTc1NzUpO1xcbn1cXG4ucS1jb2xvci1hbHBoYSAucS1zbGlkZXItdHJhY2suYWN0aXZlLXRyYWNrIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLWNvbG9yLXNsaWRlcnMge1xcbiAgaGVpZ2h0OiA1NnB4O1xcbn1cXG4ucS1jb2xvci1zbGlkZXJzIC5xLXNsaWRlciB7XFxuICBoZWlnaHQ6IDIwcHg7XFxufVxcbi5xLWNvbG9yLXNsaWRlcnMgLnEtc2xpZGVyLWhhbmRsZSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDRweCAwIHJnYmEoMCwwLDAsMC4zNyk7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCAwIHJnYmEoMCwwLDAsMC4zNyk7XFxufVxcbi5xLWNvbG9yLXNsaWRlcnMgLnEtc2xpZGVyLXJpbmcge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtY29sb3ItaW5wdXRzIHtcXG4gIGZvbnQtc2l6ZTogMTFweDtcXG4gIGNvbG9yOiAjNzU3NTc1O1xcbn1cXG4ucS1jb2xvci1pbnB1dHMgaW5wdXQge1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLWNvbG9yLXBhZGRpbmcge1xcbiAgcGFkZGluZzogMCAycHg7XFxufVxcbi5xLWNvbG9yLWxhYmVsIHtcXG4gIHBhZGRpbmctdG9wOiA0cHg7XFxufVxcbi5xLWNvbG9yLWRhcmsge1xcbiAgYmFja2dyb3VuZDogIzAwMDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XFxufVxcbi5xLWNvbG9yLWRhcmsgaW5wdXQge1xcbiAgYmFja2dyb3VuZDogIzAwMDtcXG4gIGNvbG9yOiAjYmRiZGJkO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbGlnaHQpO1xcbiAgYm9yZGVyOiAxcHggc29saWQgIzQyNDI0MjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXEtY29sb3ItZGFyayk7XFxufVxcbi5xLWNvbG9yLWRhcmsgLnEtY29sb3ItaW5wdXRzIHtcXG4gIGNvbG9yOiAjYmRiZGJkO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbGlnaHQpO1xcbn1cXG4ucS1jb2xvci1kYXJrIC5xLWNvbG9yLXN3YXRjaCB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcS1jb2xvci1kYXJrKTtcXG59XFxuLnEtZGF0ZXRpbWUtaW5wdXQge1xcbiAgbWluLXdpZHRoOiA3MHB4O1xcbn1cXG4ucS1kYXRldGltZS1jb250cm9scyB7XFxuICBwYWRkaW5nOiAwIDEwcHggOHB4O1xcbn1cXG4ucS1kYXRldGltZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XFxufVxcbi5xLWRhdGV0aW1lIC5tb2RhbC1idXR0b25zIHtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxufVxcbi5xLWRhdGV0aW1lOm5vdCgubm8tYm9yZGVyKTpub3QoLnEtZGF0ZXRpbWUtZGFyaykgLnEtZGF0ZXRpbWUtY29udGVudCB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbn1cXG4ucS1kYXRldGltZTpub3QoLm5vLWJvcmRlcikucS1kYXRldGltZS1kYXJrIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1xLWNvbG9yLWRhcmspO1xcbn1cXG4ucS1kYXRldGltZS1oZWFkZXIge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1oZWFkZXIgPiBkaXYge1xcbiAgY29sb3I6ICNmZmY7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLm1vZGFsLWNvbnRlbnQgPiAucS1kYXRldGltZSA+IC5xLWRhdGV0aW1lLWhlYWRlcixcXG4ucS1wb3BvdmVyID4gLnEtZGF0ZXRpbWUgPiAucS1kYXRldGltZS1oZWFkZXIge1xcbiAgbWluLXdpZHRoOiAxNzVweDtcXG59XFxuLnEtZGF0ZXRpbWUtd2Vla2RheXN0cmluZyB7XFxuICBmb250LXNpemU6IDAuOHJlbTtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKTtcXG4gIHBhZGRpbmc6IDVweCAwO1xcbn1cXG4ucS1kYXRldGltZS10aW1lIHtcXG4gIHBhZGRpbmc6IDEwcHggMDtcXG4gIHdpbGwtY2hhbmdlOiBzY3JvbGwtcG9zaXRpb247XFxuICBvdmVyZmxvdzogYXV0bztcXG59XFxuLnEtZGF0ZXRpbWUtYW1wbSB7XFxuICBmb250LXNpemU6IDAuOXJlbTtcXG4gIHBhZGRpbmc6IDVweDtcXG59XFxuLnEtZGF0ZXRpbWUtZGF0ZXN0cmluZyB7XFxuICBwYWRkaW5nOiAxMHB4IDA7XFxufVxcbi5xLWRhdGV0aW1lLWRhdGVzdHJpbmcgLnEtZGF0ZXRpbWUtbGluayB7XFxuICBmb250LXNpemU6IDIuN3JlbTtcXG59XFxuLnEtZGF0ZXRpbWUtZGF0ZXN0cmluZyAucS1kYXRldGltZS1saW5rIHNwYW4ge1xcbiAgcGFkZGluZzogMCA1cHg7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLnEtZGF0ZXRpbWUtZGF0ZXN0cmluZyAucS1kYXRldGltZS1saW5rLnNtYWxsIHtcXG4gIG1hcmdpbjogMCA1cHg7XFxuICBmb250LXNpemU6IDEuMnJlbTtcXG59XFxuLnEtZGF0ZXRpbWUtZGF0ZXN0cmluZyAucS1kYXRldGltZS1saW5rLnNtYWxsIHNwYW4ge1xcbiAgcGFkZGluZzogNXB4O1xcbn1cXG4ucS1kYXRldGltZS1saW5rIHtcXG4gIG9wYWNpdHk6IDAuNjtcXG59XFxuLnEtZGF0ZXRpbWUtbGluayA+IHNwYW4ge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtZGF0ZXRpbWUtbGluay5hY3RpdmUge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2tzdHJpbmcge1xcbiAgbWluLXdpZHRoOiAyMTBweDtcXG4gIGZvbnQtc2l6ZTogMi43cmVtO1xcbiAgZGlyZWN0aW9uOiBsdHIgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtc2VsZWN0b3Ige1xcbiAgbWluLXdpZHRoOiAyOTBweDtcXG4gIGhlaWdodDogMzEwcHg7XFxuICBvdmVyZmxvdzogYXV0bztcXG59XFxuLnEtZGF0ZXRpbWUtdmlldy1kYXkge1xcbiAgd2lkdGg6IDI1MHB4O1xcbiAgaGVpZ2h0OiAyODVweDtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1kYXRldGltZS12aWV3LXllYXIgPiAucS1idG46bm90KC5hY3RpdmUpLFxcbi5xLWRhdGV0aW1lLXZpZXctbW9udGggPiAucS1idG46bm90KC5hY3RpdmUpIHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1kYXRldGltZS1tb250aC1zdGFtcCB7XFxuICBmb250LXNpemU6IDE2cHg7XFxufVxcbi5xLWRhdGV0aW1lLXdlZWtkYXlzIHtcXG4gIG1hcmdpbi1ib3R0b206IDVweDtcXG59XFxuLnEtZGF0ZXRpbWUtd2Vla2RheXMgZGl2IHtcXG4gIG9wYWNpdHk6IDAuNjtcXG4gIHdpZHRoOiAzNXB4O1xcbiAgaGVpZ2h0OiAzNXB4O1xcbiAgbGluZS1oZWlnaHQ6IDM1cHg7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAwO1xcbiAgbWluLXdpZHRoOiAwO1xcbiAgbWluLWhlaWdodDogMDtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4ucS1kYXRldGltZS1kYXlzIGRpdiB7XFxuICBtYXJnaW46IDFweDtcXG4gIGxpbmUtaGVpZ2h0OiAzM3B4O1xcbiAgd2lkdGg6IDMzcHg7XFxuICBoZWlnaHQ6IDMzcHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5xLWRhdGV0aW1lLWRheXMgZGl2LnEtZGF0ZXRpbWUtZGF5LWFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWRheXMgZGl2LnEtZGF0ZXRpbWUtZGF5LWFjdGl2ZSA+IHNwYW4ge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWRhdGV0aW1lLWRheXMgZGl2LnEtZGF0ZXRpbWUtZGF5LXRvZGF5IHtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWRheXMgZGl2Om5vdCgucS1kYXRldGltZS1maWxsZXJkYXkpOm5vdCguZGlzYWJsZWQpOm5vdCgucS1kYXRldGltZS1kYXktYWN0aXZlKTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiAjZTBlMGUwO1xcbn1cXG4ucS1kYXRldGltZS1idG4ge1xcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG59XFxuLnEtZGF0ZXRpbWUtYnRuLmFjdGl2ZSB7XFxuICBmb250LXNpemU6IDEuNXJlbTtcXG4gIHBhZGRpbmctdG9wOiAxcmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrIHtcXG4gIHdpZHRoOiAyNTBweDtcXG4gIGhlaWdodDogMjUwcHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBiYWNrZ3JvdW5kOiAjZTBlMGUwO1xcbiAgcGFkZGluZzogMjRweDtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stY2lyY2xlIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXBvcCAwLjVzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wb3AgMC41cyAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1jZW50ZXIge1xcbiAgaGVpZ2h0OiA2cHg7XFxuICB3aWR0aDogNnB4O1xcbiAgdG9wOiAwO1xcbiAgbWFyZ2luOiBhdXRvO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgbWluLWhlaWdodDogMDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9pbnRlciB7XFxuICB3aWR0aDogMXB4O1xcbiAgaGVpZ2h0OiA1MCU7XFxuICBtYXJnaW46IDAgYXV0bztcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlciAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyIC8qIHJ0bDppZ25vcmUgKi87XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb2ludGVyIHNwYW4ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgd2lkdGg6IDhweDtcXG4gIGhlaWdodDogOHB4O1xcbiAgYm90dG9tOiAtOHB4O1xcbiAgbGVmdDogMDtcXG4gIG1pbi13aWR0aDogMDtcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtYXJyb3cge1xcbiAgY29sb3I6ICM3NTc1NzU7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsge1xcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItZGFyayk7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtYXJyb3cge1xcbiAgY29sb3I6ICNiZGJkYmQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1saWdodCk7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtaGVhZGVyLFxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtY2xvY2sge1xcbiAgYmFja2dyb3VuZDogIzYxNjE2MTtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS12aWV3LWRheSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS12aWV3LXllYXIgPiAucS1idG46bm90KC5hY3RpdmUpLFxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtdmlldy1tb250aCA+IC5xLWJ0bjpub3QoLmFjdGl2ZSkge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtZGF5cyBkaXYucS1kYXRldGltZS1kYXktYWN0aXZlID4gc3BhbixcXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLWRheXMgZGl2Om5vdCgucS1kYXRldGltZS1maWxsZXJkYXkpOm5vdCguZGlzYWJsZWQpOm5vdCgucS1kYXRldGltZS1kYXktYWN0aXZlKTpob3ZlciB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuYm9keS5kZXNrdG9wIC5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uOm5vdCguYWN0aXZlKTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XFxufVxcbmJvZHkuZGVza3RvcCAucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uOm5vdCguYWN0aXZlKTpob3ZlciB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb24ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbWluLWhlaWdodDogMzJweDtcXG4gIHdpZHRoOiAzMnB4O1xcbiAgaGVpZ2h0OiAzMnB4O1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSAvKiBydGw6aWdub3JlICovO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbjpub3QoLmFjdGl2ZSkge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb246bm90KC5hY3RpdmUpIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbi5hY3RpdmUge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbi5hY3RpdmUgPiBzcGFuIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMCB7XFxuICB0b3A6IDAlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xIHtcXG4gIHRvcDogNi43JTtcXG4gIGxlZnQ6IDc1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMiB7XFxuICB0b3A6IDI1JTtcXG4gIGxlZnQ6IDkzLjMlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0zIHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMTAwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNCB7XFxuICB0b3A6IDc1JTtcXG4gIGxlZnQ6IDkzLjMlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy01IHtcXG4gIHRvcDogOTMuMyU7XFxuICBsZWZ0OiA3NSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTYge1xcbiAgdG9wOiAxMDAlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy03IHtcXG4gIHRvcDogOTMuMyU7XFxuICBsZWZ0OiAyNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTgge1xcbiAgdG9wOiA3NSU7XFxuICBsZWZ0OiA2LjclIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy05IHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEwIHtcXG4gIHRvcDogMjUlO1xcbiAgbGVmdDogNi43JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTEge1xcbiAgdG9wOiA2LjclO1xcbiAgbGVmdDogMjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMiB7XFxuICB0b3A6IDAlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xLmZtdDI0IHtcXG4gIHRvcDogNi43JTtcXG4gIGxlZnQ6IDc1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMi5mbXQyNCB7XFxuICB0b3A6IDI1JTtcXG4gIGxlZnQ6IDkzLjMlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0zLmZtdDI0IHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMTAwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNC5mbXQyNCB7XFxuICB0b3A6IDc1JTtcXG4gIGxlZnQ6IDkzLjMlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy01LmZtdDI0IHtcXG4gIHRvcDogOTMuMyU7XFxuICBsZWZ0OiA3NSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTYuZm10MjQge1xcbiAgdG9wOiAxMDAlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy03LmZtdDI0IHtcXG4gIHRvcDogOTMuMyU7XFxuICBsZWZ0OiAyNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTguZm10MjQge1xcbiAgdG9wOiA3NSU7XFxuICBsZWZ0OiA2LjclIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy05LmZtdDI0IHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEwLmZtdDI0IHtcXG4gIHRvcDogMjUlO1xcbiAgbGVmdDogNi43JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTEuZm10MjQge1xcbiAgdG9wOiA2LjclO1xcbiAgbGVmdDogMjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMi5mbXQyNCB7XFxuICB0b3A6IDAlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMy5mbXQyNCB7XFxuICB0b3A6IDE5LjY5JTtcXG4gIGxlZnQ6IDY3LjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xNC5mbXQyNCB7XFxuICB0b3A6IDMyLjUlO1xcbiAgbGVmdDogODAuMzElIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xNS5mbXQyNCB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDg1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTYuZm10MjQge1xcbiAgdG9wOiA2Ny41JTtcXG4gIGxlZnQ6IDgwLjMxJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTcuZm10MjQge1xcbiAgdG9wOiA4MC4zMSU7XFxuICBsZWZ0OiA2Ny41JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTguZm10MjQge1xcbiAgdG9wOiA4NSU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTE5LmZtdDI0IHtcXG4gIHRvcDogODAuMzElO1xcbiAgbGVmdDogMzIuNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTIwLmZtdDI0IHtcXG4gIHRvcDogNjcuNSU7XFxuICBsZWZ0OiAxOS42OSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTIxLmZtdDI0IHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMTUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0yMi5mbXQyNCB7XFxuICB0b3A6IDMyLjUlO1xcbiAgbGVmdDogMTkuNjklIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0yMy5mbXQyNCB7XFxuICB0b3A6IDE5LjY5JTtcXG4gIGxlZnQ6IDMyLjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0wLmZtdDI0IHtcXG4gIHRvcDogMTUlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLXJhbmdlLnJvdyAucS1kYXRldGltZS1yYW5nZS1sZWZ0IHtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxufVxcbi5xLWRhdGV0aW1lLXJhbmdlLnJvdyAucS1kYXRldGltZS1yYW5nZS1yaWdodCB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcXG59XFxuLnEtZGF0ZXRpbWUtcmFuZ2UuY29sdW1uID4gZGl2ICsgZGl2IHtcXG4gIG1hcmdpbi10b3A6IDEwcHg7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLnEtZGF0ZXRpbWUge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsICFpbXBvcnRhbnQ7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAucS1kYXRldGltZS1oZWFkZXIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgfVxcbiAgLnEtZGF0ZXRpbWUtY29udGVudCB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDI7XFxuICAgICAgICAtbXMtZmxleDogMiAyIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMiAyIGF1dG87XFxuICB9XFxufVxcbi5xLWRvdCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC0ycHg7XFxuICByaWdodDogLTEwcHg7XFxuICBoZWlnaHQ6IDEwcHg7XFxuICB3aWR0aDogMTBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XFxuICBvcGFjaXR5OiAwLjg7XFxufVxcbi5xLWVkaXRvciB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbn1cXG4ucS1lZGl0b3IuZGlzYWJsZWQge1xcbiAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XFxufVxcbi5xLWVkaXRvci5mdWxsc2NyZWVuIHtcXG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xcbn1cXG4ucS1lZGl0b3ItY29udGVudCB7XFxuICBvdXRsaW5lOiAwO1xcbiAgcGFkZGluZzogMTBweDtcXG4gIG1pbi1oZWlnaHQ6IDEwZW07XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbn1cXG4ucS1lZGl0b3ItY29udGVudCBociB7XFxuICBib3JkZXI6IDA7XFxuICBvdXRsaW5lOiAwO1xcbiAgbWFyZ2luOiAxcHg7XFxuICBoZWlnaHQ6IDFweDtcXG4gIGJhY2tncm91bmQ6ICNjY2M7XFxufVxcbi5xLWVkaXRvci10b29sYmFyLXBhZGRpbmcge1xcbiAgcGFkZGluZzogNHB4O1xcbn1cXG4ucS1lZGl0b3ItdG9vbGJhciB7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gIGJhY2tncm91bmQ6ICNlMGUwZTA7XFxuICBtaW4taGVpZ2h0OiAzN3B4O1xcbn1cXG4ucS1lZGl0b3ItdG9vbGJhciAucS1idG4tZ3JvdXAge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG4ucS1lZGl0b3ItdG9vbGJhciAucS1idG4tZ3JvdXAgKyAucS1idG4tZ3JvdXAge1xcbiAgbWFyZ2luLWxlZnQ6IDVweDtcXG59XFxuLnEtZWRpdG9yLXRvb2xiYXItc2VwYXJhdG9yIC5xLWJ0bi1ncm91cCArIC5xLWJ0bi1ncm91cCB7XFxuICBwYWRkaW5nLWxlZnQ6IDVweDtcXG59XFxuLnEtZWRpdG9yLXRvb2xiYXItc2VwYXJhdG9yIC5xLWJ0bi1ncm91cCArIC5xLWJ0bi1ncm91cDpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDFweDtcXG4gIGJhY2tncm91bmQ6ICNjY2M7XFxufVxcbi5xLWVkaXRvci1pbnB1dCBpbnB1dCB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLnEtZmFiIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi56LWZhYiB7XFxuICB6LWluZGV4OiA5OTA7XFxufVxcbi5xLWZhYi1vcGVuZWQgLnEtZmFiLWFjdGlvbnMge1xcbiAgb3BhY2l0eTogMTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMSkgc2NhbGVZKDEpIHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSkgc2NhbGVZKDEpIHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKTtcXG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxufVxcbi5xLWZhYi1vcGVuZWQgLnEtZmFiLWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDE4MGRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTgwZGVnKTtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLWZhYi1vcGVuZWQgLnEtZmFiLWFjdGl2ZS1pY29uIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLWZhYi1pY29uLFxcbi5xLWZhYi1hY3RpdmUtaWNvbiB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC40cywgLXdlYmtpdC10cmFuc2Zvcm0gMC40cztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cywgLXdlYmtpdC10cmFuc2Zvcm0gMC40cztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cywgdHJhbnNmb3JtIDAuNHM7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMsIHRyYW5zZm9ybSAwLjRzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjRzO1xcbn1cXG4ucS1mYWItaWNvbiB7XFxuICBvcGFjaXR5OiAxO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xcbn1cXG4ucS1mYWItYWN0aXZlLWljb24ge1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMTgwZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMTgwZGVnKTtcXG59XFxuLnEtZmFiLWFjdGlvbnMge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtZmFiLWFjdGlvbnMgLnEtYnRuIHtcXG4gIG1hcmdpbjogNXB4O1xcbn1cXG4ucS1mYWItcmlnaHQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVgoLTEwMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVgoLTEwMCUpO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMTIwJTtcXG59XFxuLnEtZmFiLWxlZnQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVgoMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWCgxMDAlKTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIHJpZ2h0OiAxMjAlO1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG59XFxuLnEtZmFiLXVwIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVZKDEwMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVkoMTAwJSk7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgYm90dG9tOiAxMjAlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbn1cXG4ucS1mYWItZG93biB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWSgtMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWSgtMTAwJSk7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHRvcDogMTIwJTtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLnEtZmllbGQtaWNvbiB7XFxuICB3aWR0aDogMjhweDtcXG4gIGhlaWdodDogMjhweDtcXG4gIG1pbi13aWR0aDogMjhweDtcXG4gIGZvbnQtc2l6ZTogMjhweDtcXG4gIG1hcmdpbi1yaWdodDogMTZweDtcXG4gIGNvbG9yOiAjOTc5Nzk3O1xcbn1cXG4ucS1maWVsZC1sYWJlbCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxuICBjb2xvcjogIzk3OTc5NztcXG59XFxuLnEtZmllbGQtbGFiZWwtaW5uZXIge1xcbiAgbWluLWhlaWdodDogMjhweDtcXG59XFxuLnEtZmllbGQtbGFiZWwtaGludCB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuLnEtZmllbGQtYm90dG9tIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxuICBjb2xvcjogIzk3OTc5NztcXG59XFxuLnEtZmllbGQtbm8taW5wdXQgLnEtZmllbGQtYm90dG9tIHtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1maWVsZC1jb3VudGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3O1xcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XFxufVxcbi5xLWZpZWxkLWRhcmsgLnEtZmllbGQtbGFiZWwsXFxuLnEtZmllbGQtZGFyayAucS1maWVsZC1pY29uLFxcbi5xLWZpZWxkLWRhcmsgLnEtZmllbGQtY291bnRlcixcXG4ucS1maWVsZC1kYXJrIC5xLWZpZWxkLWJvdHRvbSB7XFxuICBjb2xvcjogI2E3YTdhNztcXG59XFxuLnEtZmllbGQtZGFyayAucS1maWVsZC1uby1pbnB1dCAucS1maWVsZC1ib3R0b20ge1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM5Nzk3OTc7XFxufVxcbi5xLWZpZWxkLXdpdGgtZXJyb3IgLnEtZmllbGQtaWNvbixcXG4ucS1maWVsZC13aXRoLWVycm9yIC5xLWZpZWxkLWxhYmVsLFxcbi5xLWZpZWxkLXdpdGgtZXJyb3IgLnEtZmllbGQtYm90dG9tIHtcXG4gIGNvbG9yOiAjZGIyODI4O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpO1xcbn1cXG4ucS1maWVsZC13aXRoLWVycm9yIC5xLWZpZWxkLW5vLWlucHV0IC5xLWZpZWxkLWJvdHRvbSB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RiMjgyODtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKTtcXG59XFxuLnEtZmllbGQtd2l0aC13YXJuaW5nIC5xLWZpZWxkLWljb24sXFxuLnEtZmllbGQtd2l0aC13YXJuaW5nIC5xLWZpZWxkLWxhYmVsLFxcbi5xLWZpZWxkLXdpdGgtd2FybmluZyAucS1maWVsZC1ib3R0b20ge1xcbiAgY29sb3I6ICNmMmMwMzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci13YXJuaW5nKTtcXG59XFxuLnEtZmllbGQtd2l0aC13YXJuaW5nIC5xLWZpZWxkLW5vLWlucHV0IC5xLWZpZWxkLWJvdHRvbSB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2YyYzAzNztcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1xLWNvbG9yLXdhcm5pbmcpO1xcbn1cXG4ucS1maWVsZC1tYXJnaW4ge1xcbiAgbWFyZ2luLXRvcDogNXB4O1xcbn1cXG4ucS1maWVsZC1mbG9hdGluZyAucS1maWVsZC1tYXJnaW4ge1xcbiAgbWFyZ2luLXRvcDogMjNweDtcXG59XFxuLnEtZmllbGQtbm8taW5wdXQgLnEtZmllbGQtbWFyZ2luIHtcXG4gIG1hcmdpbi10b3A6IDNweDtcXG59XFxuLnEtZmllbGQtY29udGVudCAucS1pZi5xLWlmLWhhcy1sYWJlbDpub3QoLnEtaWYtc3RhbmRhcmQpIHtcXG4gIG1hcmdpbi10b3A6IDlweDtcXG59XFxuLnEtZmllbGQtY29udGVudCAucS1pZi1zdGFuZGFyZDpub3QoLnEtaWYtaGFzLWxhYmVsKSB7XFxuICBwYWRkaW5nLXRvcDogNnB4O1xcbn1cXG4ucS1maWVsZC1jb250ZW50IC5xLW9wdGlvbi1ncm91cCB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG59XFxuLnEtZmllbGQtbm8taW5wdXQgLnEtZmllbGQtY29udGVudCB7XFxuICBwYWRkaW5nLXRvcDogNnB4O1xcbn1cXG4ucS1maWVsZC12ZXJ0aWNhbDpub3QoLnEtZmllbGQtbm8tbGFiZWwpIC5xLWZpZWxkLW1hcmdpbiB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbn1cXG4ucS1maWVsZC12ZXJ0aWNhbDpub3QoLnEtZmllbGQtbm8tbGFiZWwpIC5xLWlmLXN0YW5kYXJkOm5vdCgucS1pZi1oYXMtbGFiZWwpIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4ucS1maWVsZC12ZXJ0aWNhbDpub3QoLnEtZmllbGQtbm8tbGFiZWwpIC5xLWlmLnEtaWYtaGFzLWxhYmVsOm5vdCgucS1pZi1zdGFuZGFyZCkge1xcbiAgbWFyZ2luLXRvcDogMHB4O1xcbn1cXG4ucS1maWVsZC12ZXJ0aWNhbC5xLWZpZWxkLW5vLWxhYmVsIC5xLWZpZWxkLWxhYmVsIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xcbiAgLnEtZmllbGQtcmVzcG9uc2l2ZTpub3QoLnEtZmllbGQtbm8tbGFiZWwpIC5xLWZpZWxkLW1hcmdpbiB7XFxuICAgIG1hcmdpbi10b3A6IDA7XFxuICB9XFxuICAucS1maWVsZC1yZXNwb25zaXZlOm5vdCgucS1maWVsZC1uby1sYWJlbCkgLnEtaWYtc3RhbmRhcmQ6bm90KC5xLWlmLWhhcy1sYWJlbCkge1xcbiAgICBwYWRkaW5nLXRvcDogMDtcXG4gIH1cXG4gIC5xLWZpZWxkLXJlc3BvbnNpdmU6bm90KC5xLWZpZWxkLW5vLWxhYmVsKSAucS1pZi5xLWlmLWhhcy1sYWJlbDpub3QoLnEtaWYtc3RhbmRhcmQpIHtcXG4gICAgbWFyZ2luLXRvcDogMHB4O1xcbiAgfVxcbiAgLnEtZmllbGQtcmVzcG9uc2l2ZS5xLWZpZWxkLW5vLWxhYmVsIC5xLWZpZWxkLWxhYmVsIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gIH1cXG59XFxuLnEtaW5uZXItbG9hZGluZyB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7XFxufVxcbi5xLWlubmVyLWxvYWRpbmcuZGFyayB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNCk7XFxufVxcbi5xLWlmLFxcbi5xLWlmOmJlZm9yZSxcXG4ucS1pZi1sYWJlbCxcXG4ucS1pZi1hZGRvbixcXG4ucS1maWVsZC1pY29uLFxcbi5xLWZpZWxkLWxhYmVsLFxcbi5xLWlmLWNvbnRyb2wsXFxuLnEtZmllbGQtYm90dG9tIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSwgZGlzcGxheSAwcyAwcztcXG4gIHRyYW5zaXRpb246IGFsbCAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSksIGRpc3BsYXkgMHMgMHM7XFxufVxcbi5xLWlmLnEtaWYtaGlkZS11bmRlcmxpbmU6YmVmb3JlLFxcbi5xLWlmLnEtaWYtaW52ZXJ0ZWQ6YmVmb3JlLFxcbi5xLWlmLnEtaWYtaGlkZS11bmRlcmxpbmU6YWZ0ZXIsXFxuLnEtaWYucS1pZi1pbnZlcnRlZDphZnRlciB7XFxuICBjb250ZW50OiBub25lO1xcbn1cXG4ucS1pZi1pbnZlcnRlZCB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtaW5uZXIge1xcbiAgbWFyZ2luLXRvcDogN3B4O1xcbiAgbWFyZ2luLWJvdHRvbTogN3B4O1xcbn1cXG4ucS1pZi1pbnZlcnRlZC5xLWlmLWhhcy1sYWJlbCAucS1pZi1pbm5lciB7XFxuICBtYXJnaW4tdG9wOiAyNXB4O1xcbn1cXG4ucS1pZjpiZWZvcmUsXFxuLnEtaWY6YWZ0ZXIge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm9yZGVyOiAxcHggaGlkZGVuIGN1cnJlbnRDb2xvcjtcXG4gIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGNvbnRlbnQ6ICcnO1xcbn1cXG4ucS1pZjpiZWZvcmUge1xcbiAgY29sb3I6ICNiZGJkYmQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1saWdodCk7XFxufVxcbi5xLWlmOmFmdGVyIHtcXG4gIGJvcmRlci13aWR0aDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlciAwO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyIDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcXG59XFxuLnEtaWY6bm90KC5xLWlmLWRpc2FibGVkKTpub3QoLnEtaWYtZXJyb3IpOm5vdCgucS1pZi13YXJuaW5nKTpob3ZlcjpiZWZvcmUsXFxuLnEtaWYucS1pZi1yZWFkb25seTpub3QoLnEtaWYtZXJyb3IpOm5vdCgucS1pZi13YXJuaW5nKTphZnRlciB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtaWYtZGFyay5xLWlmOm5vdCgucS1pZi1kaXNhYmxlZCk6bm90KC5xLWlmLWVycm9yKTpub3QoLnEtaWYtd2FybmluZyk6aG92ZXI6YmVmb3JlLFxcbi5xLWlmLWRhcmsucS1pZi5xLWlmLXJlYWRvbmx5Om5vdCgucS1pZi1lcnJvcik6bm90KC5xLWlmLXdhcm5pbmcpOmFmdGVyIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1pZi1mb2N1c2VkOmFmdGVyIHtcXG4gIGJvcmRlci13aWR0aDogMnB4O1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgxKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1sZWZ0LXdpZHRoIDBzIDAuNDVzLCBib3JkZXItcmlnaHQtd2lkdGggMHMgMC40NXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IGJvcmRlci1sZWZ0LXdpZHRoIDBzIDAuNDVzLCBib3JkZXItcmlnaHQtd2lkdGggMHMgMC40NXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSksIGJvcmRlci1sZWZ0LXdpZHRoIDBzIDAuNDVzLCBib3JkZXItcmlnaHQtd2lkdGggMHMgMC40NXM7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpLCBib3JkZXItbGVmdC13aWR0aCAwcyAwLjQ1cywgYm9yZGVyLXJpZ2h0LXdpZHRoIDBzIDAuNDVzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxufVxcbi5xLWlmIHtcXG4gIG91dGxpbmU6IDA7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBmb250LXNpemU6IDFyZW07XFxufVxcbi5xLWlmIC5xLWlmLWlubmVyIHtcXG4gIG1pbi1oZWlnaHQ6IDI0cHg7XFxufVxcbi5xLWlmLXN0YW5kYXJkIHtcXG4gIHBhZGRpbmctdG9wOiA3cHg7XFxuICBwYWRkaW5nLWJvdHRvbTogN3B4O1xcbn1cXG4ucS1pZi1zdGFuZGFyZC5xLWlmLWhhcy1sYWJlbCB7XFxuICBwYWRkaW5nLXRvcDogMjVweDtcXG59XFxuLnEtaWYtaGlkZS11bmRlcmxpbmUge1xcbiAgcGFkZGluZy10b3A6IDA7XFxuICBwYWRkaW5nLWJvdHRvbTogMDtcXG59XFxuLnEtaWYtaGlkZS11bmRlcmxpbmUucS1pZi1oYXMtbGFiZWwge1xcbiAgcGFkZGluZy10b3A6IDE4cHg7XFxufVxcbi5xLWlmLXN0YW5kYXJkIC5xLWlmLWxhYmVsLFxcbi5xLWlmLWludmVydGVkIC5xLWlmLWxhYmVsIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xcbn1cXG4ucS1pZi1zdGFuZGFyZCAucS1pZi1sYWJlbC5xLWlmLWxhYmVsLWFib3ZlLFxcbi5xLWlmLWludmVydGVkIC5xLWlmLWxhYmVsLnEtaWYtbGFiZWwtYWJvdmUge1xcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMDAlKTtcXG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xcbn1cXG4ucS1pZi1pbnZlcnRlZCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtbGFiZWwge1xcbiAgdG9wOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yMXB4KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTIxcHgpO1xcbn1cXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1sYWJlbC5xLWlmLWxhYmVsLWFib3ZlIHtcXG4gIHRvcDogNHB4O1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTI1JSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMjUlKTtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaW5wdXQtdGFyZ2V0IHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbn1cXG4ucS1pZi1mb2N1c2VkOm5vdCgucS1pZi1yZWFkb25seSkgLnEtaWYtbGFiZWwsXFxuLnEtaWYtZm9jdXNlZDpub3QoLnEtaWYtcmVhZG9ubHkpIC5xLWlmLWFkZG9uLFxcbi5xLWlmLWZvY3VzZWQ6bm90KC5xLWlmLXJlYWRvbmx5KSAucS1pZi1jb250cm9sIHtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWlmLXdhcm5pbmc6YmVmb3JlLFxcbi5xLWlmLXdhcm5pbmc6YWZ0ZXIsXFxuLnEtaWYtd2FybmluZzpub3QoLnEtaWYtaW52ZXJ0ZWQpIC5xLWlmLWxhYmVsIHtcXG4gIGNvbG9yOiAjZjJjMDM3O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3Itd2FybmluZyk7XFxufVxcbi5xLWlmLXdhcm5pbmc6aG92ZXI6YmVmb3JlIHtcXG4gIGNvbG9yOiAjZjhkZDkzO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3Itd2FybmluZy1sKTtcXG59XFxuLnEtaWYtZXJyb3I6YmVmb3JlLFxcbi5xLWlmLWVycm9yOmFmdGVyLFxcbi5xLWlmLWVycm9yOm5vdCgucS1pZi1pbnZlcnRlZCkgLnEtaWYtbGFiZWwge1xcbiAgY29sb3I6ICNkYjI4Mjg7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSk7XFxufVxcbi5xLWlmLWVycm9yOmhvdmVyOmJlZm9yZSB7XFxuICBjb2xvcjogI2VjOGI4YjtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlLWwpO1xcbn1cXG4ucS1pZi1kaXNhYmxlZCB7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgb3BhY2l0eTogMC42O1xcbn1cXG4ucS1pZi1kaXNhYmxlZCAucS1pZi1sYWJlbCxcXG4ucS1pZi1kaXNhYmxlZCAucS1pZi1jb250cm9sLFxcbi5xLWlmLWRpc2FibGVkIC5xLWlucHV0LXRhcmdldCxcXG4ucS1pZi1kaXNhYmxlZCAucS1jaGlwIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcbi5xLWlmLWRhcms6bm90KC5xLWlmLWludmVydGVkLWxpZ2h0KSAucS1pbnB1dC10YXJnZXQ6bm90KC5xLWlucHV0LXRhcmdldC1wbGFjZWhvbGRlcikge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWlmLWZvY3VzYWJsZSB7XFxuICBvdXRsaW5lOiAwO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1pZi1sYWJlbCxcXG4ucS1pbnB1dC10YXJnZXQsXFxuLnEtaW5wdXQtdGFyZ2V0LXBsYWNlaG9sZGVyIHtcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbn1cXG4ucS1pZi1jb250cm9sIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIHdpZHRoOiAyNHB4O1xcbiAgaGVpZ2h0OiAyNHB4O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1pZi1jb250cm9sICsgLnEtaWYtY29udHJvbCxcXG4ucS1pZi1jb250cm9sICsgLnEtaWYtaW5uZXIsXFxuLnEtaWYtaW5uZXIgKyAucS1pZi1jb250cm9sIHtcXG4gIG1hcmdpbi1sZWZ0OiA0cHg7XFxufVxcbi5xLWlmLWNvbnRyb2w6aG92ZXIge1xcbiAgb3BhY2l0eTogMC43O1xcbn1cXG4ucS1pZi1iYXNlbGluZSB7XFxuICBsaW5lLWhlaWdodDogMjRweDtcXG4gIHdpZHRoOiAwO1xcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4ucS1pZi1sYWJlbC1pbm5lcixcXG4ucS1pZi1sYWJlbC1zcGFjZXIsXFxuLnEtaWYtYmFzZWxpbmUge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbn1cXG4ucS1pZi1sYWJlbC1zcGFjZXIge1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbn1cXG4ucS1pZi1sYWJlbCB7XFxuICBjdXJzb3I6IHRleHQ7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1pZi1sYWJlbCxcXG4ucS1pZi1hZGRvbixcXG4ucS1pZi1jb250cm9sIHtcXG4gIGNvbG9yOiAjOTc5Nzk3O1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxufVxcbi5xLWlmLWludmVydGVkIC5xLWlmLWxhYmVsLFxcbi5xLWlmLWludmVydGVkIC5xLWlmLWFkZG9uLFxcbi5xLWlmLWludmVydGVkIC5xLWlmLWNvbnRyb2wge1xcbiAgY29sb3I6ICNkZGQ7XFxufVxcbi5xLWlmLWludmVydGVkLWxpZ2h0IC5xLWlmLWxhYmVsLFxcbi5xLWlmLWludmVydGVkLWxpZ2h0IC5xLWlmLWFkZG9uLFxcbi5xLWlmLWludmVydGVkLWxpZ2h0IC5xLWlmLWNvbnRyb2wge1xcbiAgY29sb3I6ICM2NTY1NjU7XFxufVxcbi5xLWlmLWFkZG9uIHtcXG4gIG9wYWNpdHk6IDA7XFxuICBjdXJzb3I6IGluaGVyaXQ7XFxufVxcbi5xLWlmLWFkZG9uOm5vdCgucS1pZi1hZGRvbi12aXNpYmxlKSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1pZi1hZGRvbi1sZWZ0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDFweDtcXG59XFxuLnEtaWYtYWRkb24tcmlnaHQge1xcbiAgcGFkZGluZy1sZWZ0OiAxcHg7XFxufVxcbi5xLWlmLWFkZG9uLXZpc2libGUge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtaW5wdXQtdGFyZ2V0LFxcbi5xLWlucHV0LXNoYWRvdyB7XFxuICBib3JkZXI6IDA7XFxuICBvdXRsaW5lOiAwO1xcbiAgcGFkZGluZzogMDtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICBmb250LXNpemU6IGluaGVyaXQ7XFxuICByZXNpemU6IG5vbmU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1pbnB1dC10YXJnZXQ6LXdlYmtpdC1hdXRvZmlsbCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB3ZWJraXQtYXV0b2ZpbGwtb247XFxuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XFxufVxcbi5xLWlucHV0LXRhcmdldC5xLWlucHV0LWF1dG9maWxsOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogd2Via2l0LWF1dG9maWxsLW9mZjtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcXG59XFxuLnEtaW5wdXQtdGFyZ2V0OjotbXMtY2xlYXIsXFxuLnEtaW5wdXQtdGFyZ2V0OjotbXMtcmV2ZWFsIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICB3aWR0aDogMDtcXG4gIGhlaWdodDogMDtcXG59XFxuLnEtaW5wdXQtdGFyZ2V0OmludmFsaWQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbmhlcml0O1xcbiAgICAgICAgICBib3gtc2hhZG93OiBpbmhlcml0O1xcbn1cXG4ucS1pbnB1dC10YXJnZXQ6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICd8JztcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgd2lkdGg6IDA7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbmlucHV0LnEtaW5wdXQtdGFyZ2V0IHtcXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XFxuICBoZWlnaHQ6IDI0cHg7XFxuICBvdXRsaW5lOiAwO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbn1cXG4ucS1pZiAucS1pbnB1dC10YXJnZXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYgLnEtaW5wdXQtdGFyZ2V0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmIC5xLWlucHV0LXRhcmdldDo6LW1vei1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZiAucS1pbnB1dC10YXJnZXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWRhcmsgLnEtaW5wdXQtdGFyZ2V0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWRhcmsgLnEtaW5wdXQtdGFyZ2V0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWRhcmsgLnEtaW5wdXQtdGFyZ2V0OjotbW96LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWRhcmsgLnEtaW5wdXQtdGFyZ2V0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1pbnZlcnRlZDpub3QoLnEtaWYtaW52ZXJ0ZWQtbGlnaHQpIC5xLWlucHV0LXRhcmdldC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogI2RkZCAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1pbnZlcnRlZDpub3QoLnEtaWYtaW52ZXJ0ZWQtbGlnaHQpIC5xLWlucHV0LXRhcmdldDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogI2RkZCAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1pbnZlcnRlZDpub3QoLnEtaWYtaW52ZXJ0ZWQtbGlnaHQpIC5xLWlucHV0LXRhcmdldDo6LW1vei1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogI2RkZCAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1pbnZlcnRlZDpub3QoLnEtaWYtaW52ZXJ0ZWQtbGlnaHQpIC5xLWlucHV0LXRhcmdldDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICNkZGQgIWltcG9ydGFudDtcXG59XFxuLnEtaW5wdXQtc2hhZG93IHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGhlaWdodDogYXV0bztcXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XFxufVxcbi5xLWp1bWJvdHJvbiB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBwYWRkaW5nOiAycmVtIDFyZW07XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XFxufVxcbi5xLWp1bWJvdHJvbi1kYXJrIHtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc1NzU3NTtcXG59XFxuLnEtanVtYm90cm9uLWRhcmsgaHIucS1ociB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMzYpO1xcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5xLWp1bWJvdHJvbiB7XFxuICAgIHBhZGRpbmc6IDRyZW0gMnJlbTtcXG4gIH1cXG59XFxuLnEta25vYixcXG4ucS1rbm9iID4gZGl2IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XFxuLnEta25vYiA+IGRpdiB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLnEta25vYi1sYWJlbCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbn1cXG4ucS1rbm9iLWxhYmVsIGkge1xcbiAgZm9udC1zaXplOiAxMzAlO1xcbn1cXG4ucS1sYXlvdXQge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtaW4taGVpZ2h0OiAxMDB2aDtcXG59XFxuLnEtbGF5b3V0LWNvbnRhaW5lciAucS1sYXlvdXQge1xcbiAgbWluLWhlaWdodDogMTAwJTtcXG59XFxuLnEtbGF5b3V0LWNvbnRhaW5lciA+IGRpdiB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxufVxcbi5xLWxheW91dC1jb250YWluZXIgPiBkaXYgPiBkaXYge1xcbiAgbWluLWhlaWdodDogMDtcXG4gIG1heC1oZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWxheW91dC1oZWFkZXIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIDNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAzcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLWxheW91dC1oZWFkZXItaGlkZGVuIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMTAlKTtcXG59XFxuLnEtbGF5b3V0LWZvb3RlciB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0zcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtbGF5b3V0LWZvb3Rlci1oaWRkZW4ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTEwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMTAlKTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgei1pbmRleDogMTAwMDtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci5vbi10b3Age1xcbiAgei1pbmRleDogMzAwMDtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1kZWxpbWl0ZXIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNXB4IDhweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA1cHggOHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDE0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1sZWZ0IHtcXG4gIGxlZnQ6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItcmlnaHQge1xcbiAgcmlnaHQ6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xcbn1cXG4ucS1sYXlvdXQsXFxuLnEtbGF5b3V0LWhlYWRlcixcXG4ucS1sYXlvdXQtZm9vdGVyLFxcbi5xLWxheW91dC1wYWdlIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnEtbGF5b3V0LWhlYWRlcixcXG4ucS1sYXlvdXQtZm9vdGVyIHtcXG4gIHotaW5kZXg6IDIwMDA7XFxufVxcbi5xLWxheW91dC1iYWNrZHJvcCB7XFxuICB6LWluZGV4OiAyOTk5ICFpbXBvcnRhbnQ7XFxuICB3aWxsLWNoYW5nZTogYmFja2dyb3VuZC1jb2xvcjtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIHtcXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWl0ZW0sXFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWl0ZW0tc2lkZSB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLW1pbmktZHJhd2VyLWhpZGUsXFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWNvbGxhcHNpYmxlLWlubmVyID4gZGl2Omxhc3Qtb2YtdHlwZSxcXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtbGlzdC1oZWFkZXIsXFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWl0ZW0tbWFpbixcXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtaXRlbS1zaWRlLXJpZ2h0IHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItbm9ybWFsIC5xLW1pbmktZHJhd2VyLW9ubHkge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1tb2JpbGUgLnEtbWluaS1kcmF3ZXItb25seSxcXG4ucS1sYXlvdXQtZHJhd2VyLW1vYmlsZSAucS1taW5pLWRyYXdlci1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItb3BlbmVyIHtcXG4gIHotaW5kZXg6IDIwMDE7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMTVweDtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcbi5xLXBhZ2Utc3RpY2t5LXNocmluayB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtcGFnZS1zdGlja3ktc2hyaW5rID4gc3BhbiB7XFxuICBwb2ludGVyLWV2ZW50czogYXV0bztcXG59XFxuYm9keS5xLWlvcy1zdGF0dXNiYXItcGFkZGluZyAucS1sYXlvdXQgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRvb2xiYXI6bnRoLWNoaWxkKDIpLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXBhZGRpbmcgLnEtbGF5b3V0IC5xLWxheW91dC1oZWFkZXIgPiAucS10YWJzOm50aC1jaGlsZCgyKSAucS10YWJzLWhlYWQsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXItcGFkZGluZyAucS1sYXlvdXQgLnEtbGF5b3V0LWRyYXdlci50b3AtcGFkZGluZyxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci1wYWRkaW5nIC5tb2RhbDpub3QoLm1pbmltaXplZCkgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRvb2xiYXI6bnRoLWNoaWxkKDEpIHtcXG4gIHBhZGRpbmctdG9wOiAyMHB4O1xcbiAgbWluLWhlaWdodDogNzBweDtcXG59XFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRvb2xiYXI6bnRoLWNoaWxkKDIpLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbGF5b3V0IC5xLWxheW91dC1oZWFkZXIgPiAucS10YWJzOm50aC1jaGlsZCgyKSAucS10YWJzLWhlYWQsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWRyYXdlci50b3AtcGFkZGluZyxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5tb2RhbDpub3QoLm1pbmltaXplZCkgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRvb2xiYXI6bnRoLWNoaWxkKDEpIHtcXG4gIHBhZGRpbmctdG9wOiBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCk7XFxufVxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbGF5b3V0IC5xLWxheW91dC1mb290ZXIgPiAucS10b29sYmFyOmxhc3QtY2hpbGQsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWZvb3RlciA+IC5xLXRhYnM6bGFzdC1jaGlsZCAucS10YWJzLWhlYWQsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWRyYXdlci50b3AtcGFkZGluZyxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5tb2RhbDpub3QoLm1pbmltaXplZCkgLnEtbGF5b3V0LWZvb3RlciA+IC5xLXRvb2xiYXI6bGFzdC1jaGlsZCB7XFxuICBwYWRkaW5nLWJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xcbiAgbWluLWhlaWdodDogNzBweDtcXG59XFxuLnEtbGF5b3V0LWFuaW1hdGUgLnEtbGF5b3V0LXRyYW5zaXRpb24ge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4xMnMgZWFzZS1pbiAhaW1wb3J0YW50O1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTJzIGVhc2UtaW4gIWltcG9ydGFudDtcXG59XFxuLnEtYm9keS1kcmF3ZXItdG9nZ2xlIHtcXG4gIG92ZXJmbG93LXg6IGhpZGRlbiAhaW1wb3J0YW50O1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5sYXlvdXQtcGFkZGluZyB7XFxuICAgIHBhZGRpbmc6IDEuNXJlbSAwLjVyZW07XFxuICB9XFxuICAubGF5b3V0LXBhZGRpbmcuaG9yaXpvbnRhbCB7XFxuICAgIHBhZGRpbmc6IDAgMC41cmVtO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xcbiAgLmxheW91dC1wYWRkaW5nIHtcXG4gICAgcGFkZGluZzogMS41cmVtIDJyZW07XFxuICAgIG1hcmdpbjogYXV0bztcXG4gIH1cXG4gIC5sYXlvdXQtcGFkZGluZy5ob3Jpem9udGFsIHtcXG4gICAgcGFkZGluZzogMCAycmVtO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcXG4gIC5sYXlvdXQtcGFkZGluZyB7XFxuICAgIHBhZGRpbmc6IDIuNXJlbSAzcmVtO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICB9XFxuICAubGF5b3V0LXBhZGRpbmcuaG9yaXpvbnRhbCB7XFxuICAgIHBhZGRpbmc6IDAgM3JlbTtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xcbiAgLmxheW91dC1wYWRkaW5nIHtcXG4gICAgcGFkZGluZzogM3JlbSA0cmVtO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICB9XFxuICAubGF5b3V0LXBhZGRpbmcuaG9yaXpvbnRhbCB7XFxuICAgIHBhZGRpbmc6IDAgNHJlbTtcXG4gIH1cXG59XFxuLnEtaXRlbS1zdGFtcCB7XFxuICBmb250LXNpemU6IDAuOHJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAwLjhyZW07XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgbWFyZ2luOiAwLjNyZW0gMDtcXG59XFxuLnEtaXRlbS1zaWRlIHtcXG4gIGNvbG9yOiAjNzM3MzczO1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgbWluLXdpZHRoOiAzOHB4O1xcbn1cXG4ucS1pdGVtLXNpZGUtcmlnaHQge1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcbi5xLWl0ZW0tYXZhdGFyLFxcbi5xLWl0ZW0tYXZhdGFyIGltZyB7XFxuICB3aWR0aDogMzhweDtcXG4gIGhlaWdodDogMzhweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuLnEtaXRlbS1sZXR0ZXIsXFxuLnEtaXRlbS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG59XFxuLnEtaXRlbS1pbnZlcnRlZCB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQ6ICM3MzczNzM7XFxuICBoZWlnaHQ6IDM4cHg7XFxuICB3aWR0aDogMzhweDtcXG59XFxuLnEtaXRlbS1pbnZlcnRlZCxcXG4ucS1pdGVtLWludmVydGVkIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAyMHB4O1xcbn1cXG4ucS1pdGVtLW1haW4ge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgbWluLXdpZHRoOiAwO1xcbn1cXG4ucS1pdGVtLW1haW4taW5zZXQge1xcbiAgbWFyZ2luLWxlZnQ6IDQ4cHg7XFxufVxcbi5xLWl0ZW0tbGFiZWwge1xcbiAgbGluZS1oZWlnaHQ6IDEuMjtcXG59XFxuLnEtaXRlbS1sYWJlbCA+IHNwYW4ge1xcbiAgY29sb3I6ICM3NTc1NzU7XFxufVxcbi5xLWl0ZW0tc3VibGFiZWwge1xcbiAgY29sb3I6ICM3NTc1NzU7XFxuICBmb250LXNpemU6IDkwJTtcXG4gIG1hcmdpbi10b3A6IDAuMnJlbTtcXG59XFxuLnEtaXRlbS1zdWJsYWJlbCA+IHNwYW4ge1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG59XFxuLnEtaXRlbS1zZWN0aW9uICsgLnEtaXRlbS1zZWN0aW9uIHtcXG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xcbn1cXG4ucS1pdGVtIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgZm9udC1zaXplOiAxcmVtO1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG4gIHBhZGRpbmc6IDhweCAxNnB4O1xcbiAgbWluLWhlaWdodDogNDBweDtcXG59XFxuLnEtaXRlbS5hY3RpdmUsXFxuLnEtaXRlbS5yb3V0ZXItbGluay1hY3RpdmUsXFxuLnEtaXRlbTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDE4OSwxODksMTg5LDAuNCk7XFxufVxcbi5xLWl0ZW06Zm9jdXMge1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtaXRlbS1pbWFnZSB7XFxuICBtaW4td2lkdGg6IDExNHB4O1xcbiAgbWF4LXdpZHRoOiAxMTRweDtcXG4gIG1heC1oZWlnaHQ6IDExNHB4O1xcbn1cXG4ucS1saXN0LW11bHRpbGluZSA+IC5xLWl0ZW0sXFxuLnEtaXRlbS1tdWx0aWxpbmUge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XFxufVxcbi5xLWxpc3QtbGluayA+IC5xLWl0ZW0sXFxuLnEtaXRlbS1saW5rIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtbGlzdC1oaWdobGlnaHQgPiAucS1pdGVtOmhvdmVyLFxcbi5xLWl0ZW0taGlnaGxpZ2h0OmhvdmVyLFxcbi5xLWxpc3QtbGluayA+IC5xLWl0ZW06aG92ZXIsXFxuLnEtaXRlbS1saW5rOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTg5LDE4OSwxODksMC41KTtcXG59XFxuLnEtbGlzdC1zZXBhcmF0b3IgPiAucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1kaXZpc2lvbixcXG4ucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1zZXBhcmF0b3Ige1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMGUwZTA7XFxufVxcbi5xLWxpc3QtaW5zZXQtc2VwYXJhdG9yID4gLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0tZGl2aXNpb246YWZ0ZXIsXFxuLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0taW5zZXQtc2VwYXJhdG9yOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBsZWZ0OiA2NHB4O1xcbiAgaGVpZ2h0OiAxcHg7XFxuICBiYWNrZ3JvdW5kOiAjZTBlMGUwO1xcbn1cXG4ucS1saXN0LWRlbnNlID4gLnEtaXRlbSxcXG4ucS1pdGVtLWRlbnNlIHtcXG4gIHBhZGRpbmc6IDNweCAxNnB4O1xcbiAgbWluLWhlaWdodDogOHB4O1xcbn1cXG4ucS1saXN0LXNwYXJzZSA+IC5xLWl0ZW0sXFxuLnEtaXRlbS1zcGFyc2Uge1xcbiAgcGFkZGluZzogMjIuNHB4IDE2cHg7XFxuICBtaW4taGVpZ2h0OiA1NnB4O1xcbn1cXG4ucS1saXN0LXN0cmlwZWQgPiAucS1pdGVtOm50aC1jaGlsZChldmVuKSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4OSwxODksMTg5LDAuNjUpO1xcbn1cXG4ucS1saXN0LXN0cmlwZWQtb2RkID4gLnEtaXRlbTpudGgtY2hpbGQob2RkKSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4OSwxODksMTg5LDAuNjUpO1xcbn1cXG4ucS1saXN0IHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxuICBwYWRkaW5nOiA4cHggMDtcXG59XFxuLnEtaXRlbS1zZXBhcmF0b3ItY29tcG9uZW50IHtcXG4gIG1hcmdpbjogOHB4IDA7XFxuICBoZWlnaHQ6IDFweDtcXG4gIGJvcmRlcjogMDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7XFxufVxcbi5xLWl0ZW0tc2VwYXJhdG9yLWNvbXBvbmVudDpsYXN0LWNoaWxkIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWl0ZW0tc2VwYXJhdG9yLWNvbXBvbmVudCArIC5xLWxpc3QtaGVhZGVyIHtcXG4gIG1hcmdpbi10b3A6IC04cHg7XFxufVxcbi5xLWl0ZW0tc2VwYXJhdG9yLWluc2V0LWNvbXBvbmVudCB7XFxuICBtYXJnaW4tbGVmdDogNjRweDtcXG59XFxuLnEtbGlzdC1oZWFkZXIge1xcbiAgY29sb3I6ICM3NTc1NzU7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XFxuICBtaW4taGVpZ2h0OiA0OHB4O1xcbiAgcGFkZGluZzogMTVweCAxNnB4O1xcbn1cXG4ucS1saXN0LWhlYWRlci1pbnNldCB7XFxuICBwYWRkaW5nLWxlZnQ6IDY0cHg7XFxufVxcbi5xLWxpc3QtZGFyayAucS1pdGVtLXNpZGUsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0tc2lkZSB7XFxuICBjb2xvcjogI2JiYjtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0taW52ZXJ0ZWQsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0taW52ZXJ0ZWQge1xcbiAgY29sb3I6ICMwMDA7XFxuICBiYWNrZ3JvdW5kOiAjYmJiO1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1sYWJlbCA+IHNwYW4sXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0tbGFiZWwgPiBzcGFuLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtLXN1YmxhYmVsLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtLXN1YmxhYmVsIHtcXG4gIGNvbG9yOiAjYmRiZGJkO1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtaXRlbSxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0uYWN0aXZlLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtLmFjdGl2ZSxcXG4ucS1saXN0LWRhcmsgLnEtaXRlbS5yb3V0ZXItbGluay1hY3RpdmUsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0ucm91dGVyLWxpbmstYWN0aXZlLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtOmZvY3VzLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtOmZvY3VzIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTE3LDExNywxMTcsMC4yKTtcXG59XFxuLnEtbGlzdC1kYXJrIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4zMik7XFxufVxcbi5xLWxpc3QtZGFyay5xLWxpc3Qtc2VwYXJhdG9yID4gLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0tZGl2aXNpb24sXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLXNlcGFyYXRvciB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMyKTtcXG59XFxuLnEtbGlzdC1kYXJrLnEtbGlzdC1pbnNldC1zZXBhcmF0b3IgPiAucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1kaXZpc2lvbjphZnRlcixcXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0taW5zZXQtc2VwYXJhdG9yOmFmdGVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zMik7XFxufVxcbi5xLWxpc3QtZGFyay5xLWxpc3Qtc3RyaXBlZCA+IC5xLWl0ZW06bnRoLWNoaWxkKGV2ZW4pIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTE3LDExNywxMTcsMC40NSk7XFxufVxcbi5xLWxpc3QtZGFyay5xLWxpc3Qtc3RyaXBlZC1vZGQgPiAucS1pdGVtOm50aC1jaGlsZChvZGQpIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTE3LDExNywxMTcsMC40NSk7XFxufVxcbi5xLWxpc3QtZGFyayAucS1pdGVtLXNlcGFyYXRvci1jb21wb25lbnQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjMyKTtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWxpc3QtaGVhZGVyIHtcXG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjQpO1xcbn1cXG4ucS1saXN0LWRhcmsucS1saXN0LWhpZ2hsaWdodCA+IC5xLWl0ZW06aG92ZXIsXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0taGlnaGxpZ2h0OmhvdmVyLFxcbi5xLWxpc3QtZGFyay5xLWxpc3QtbGluayA+IC5xLWl0ZW06aG92ZXIsXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tbGluazpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDExNywxMTcsMTE3LDAuMyk7XFxufVxcbmJvZHkud2l0aC1sb2FkaW5nIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLWxvYWRpbmcge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjQpO1xcbn1cXG4ucS1sb2FkaW5nID4gZGl2IHtcXG4gIG1hcmdpbjogNDBweCAyMHB4IDA7XFxuICBtYXgtd2lkdGg6IDQ1MHB4O1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgdGV4dC1zaGFkb3c6IDAgMCA3cHggIzAwMDtcXG59XFxuLm1vZGFsLWJhY2tkcm9wIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC40KTtcXG59XFxuLm1vZGFsLm1heGltaXplZCAubW9kYWwtYmFja2Ryb3Age1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLm1vZGFsLWNvbnRlbnQge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG4gIHdpbGwtY2hhbmdlOiBzY3JvbGwtcG9zaXRpb247XFxuICBtaW4td2lkdGg6IDI4MHB4O1xcbiAgbWF4LWhlaWdodDogODB2aDtcXG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgb3V0bGluZTogMDtcXG59XFxuLm1vZGFsIHtcXG4gIHotaW5kZXg6IDUwMDA7XFxufVxcbi5tb2RhbC5taW5pbWl6ZWQgLm1vZGFsLWNvbnRlbnQge1xcbiAgbWF4LXdpZHRoOiA4MHZ3O1xcbiAgbWF4LWhlaWdodDogODB2aDtcXG59XFxuLm1vZGFsLm1heGltaXplZCAubW9kYWwtY29udGVudCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIG1heC1oZWlnaHQ6IDEwMCU7XFxuICBib3JkZXItcmFkaXVzOiAwO1xcbn1cXG4ubW9kYWwubWF4aW1pemVkIC5tb2RhbC1jb250ZW50IC5xLWxheW91dC1jb250YWluZXIge1xcbiAgbWluLWhlaWdodDogMTAwdmggIWltcG9ydGFudDtcXG59XFxuLnEtbW9kYWwtZW50ZXIsXFxuLnEtbW9kYWwtbGVhdmUtYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLm1vZGFsOm5vdCgubWF4aW1pemVkKS5xLW1vZGFsLWVudGVyIC5tb2RhbC1jb250ZW50IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMik7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xcbiAgfVxcbiAgLm1vZGFsOm5vdCgubWF4aW1pemVkKS5xLW1vZGFsLWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcXG4gIH1cXG4gIC5tb2RhbC5tYXhpbWl6ZWQucS1tb2RhbC1lbnRlciAubW9kYWwtY29udGVudCxcXG4gIC5tb2RhbC5tYXhpbWl6ZWQucS1tb2RhbC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMCUpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMCUpO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5xLXJlc3BvbnNpdmUtbW9kYWwge1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcbiAgLm1vZGFsOm5vdCgubWluaW1pemVkKSAubW9kYWwtY29udGVudCB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gICAgYm9yZGVyLXJhZGl1czogMDtcXG4gIH1cXG4gIC5tb2RhbDpub3QoLm1pbmltaXplZCkgLm1vZGFsLWNvbnRlbnQgLnEtbGF5b3V0LWNvbnRhaW5lciB7XFxuICAgIG1pbi1oZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7XFxuICB9XFxuICAubW9kYWw6bm90KC5taW5pbWl6ZWQpLnEtbW9kYWwtZW50ZXIgLm1vZGFsLWNvbnRlbnQsXFxuICAubW9kYWw6bm90KC5taW5pbWl6ZWQpLnEtbW9kYWwtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzAlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzAlKTtcXG4gIH1cXG4gIC5tb2RhbC5taW5pbWl6ZWQucS1tb2RhbC1lbnRlciAubW9kYWwtY29udGVudCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcXG4gIH1cXG4gIC5tb2RhbC5taW5pbWl6ZWQucS1tb2RhbC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC44KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XFxuICB9XFxufVxcbi5xLW1heGltaXplZC1tb2RhbCB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ubW9kYWwsXFxuLm1vZGFsLWNvbnRlbnQge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xcbn1cXG4ubW9kYWwtaGVhZGVyIHtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxuICBwYWRkaW5nOiAyNHB4IDI0cHggMTBweCAyNHB4O1xcbiAgZm9udC1zaXplOiAxLjZyZW07XFxuICBmb250LXdlaWdodDogNTAwO1xcbn1cXG4ubW9kYWwtYm9keSB7XFxuICBwYWRkaW5nOiAxMHB4IDI0cHg7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjUpO1xcbn1cXG4uc21hbGwtbW9kYWwtc2Nyb2xsLFxcbi5tb2RhbC1zY3JvbGwsXFxuLmJpZy1tb2RhbC1zY3JvbGwge1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxuICB3aWxsLWNoYW5nZTogc2Nyb2xsLXBvc2l0aW9uO1xcbn1cXG4uc21hbGwtbW9kYWwtc2Nyb2xsIHtcXG4gIG1heC1oZWlnaHQ6IDE1NnB4O1xcbn1cXG4ubW9kYWwtc2Nyb2xsIHtcXG4gIG1heC1oZWlnaHQ6IDI0MHB4O1xcbn1cXG4uYmlnLW1vZGFsLXNjcm9sbCB7XFxuICBtYXgtaGVpZ2h0OiA0ODBweDtcXG59XFxuLm1vZGFsLWJ1dHRvbnMge1xcbiAgcGFkZGluZzogMjJweCA4cHggOHB4O1xcbiAgLXdlYmtpdC1ib3gtcGFjazogZW5kO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG4gIGNvbG9yOiAjMDI3YmUzO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItcHJpbWFyeSk7XFxufVxcbi5tb2RhbC1idXR0b25zLnJvdyAucS1idG4gKyAucS1idG4ge1xcbiAgbWFyZ2luLWxlZnQ6IDhweDtcXG59XFxuLm1vZGFsLWJ1dHRvbnMuY29sdW1uIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBlbmQ7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xcbn1cXG4ubW9kYWwtYnV0dG9ucy5jb2x1bW4gLnEtYnRuICsgLnEtYnRuIHtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG59XFxuLnEtbW9kYWwtYm90dG9tLWVudGVyLFxcbi5xLW1vZGFsLWJvdHRvbS1sZWF2ZS1hY3RpdmUge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtbW9kYWwtYm90dG9tLWVudGVyIC5tb2RhbC1jb250ZW50LFxcbi5xLW1vZGFsLWJvdHRvbS1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwJSk7XFxufVxcbi5xLW1vZGFsLXRvcC1lbnRlcixcXG4ucS1tb2RhbC10b3AtbGVhdmUtYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLW1vZGFsLXRvcC1lbnRlciAubW9kYWwtY29udGVudCxcXG4ucS1tb2RhbC10b3AtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwJSk7XFxufVxcbi5xLW1vZGFsLXJpZ2h0LWVudGVyLFxcbi5xLW1vZGFsLXJpZ2h0LWxlYXZlLWFjdGl2ZSB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1tb2RhbC1yaWdodC1lbnRlciAubW9kYWwtY29udGVudCxcXG4ucS1tb2RhbC1yaWdodC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMwJSk7XFxufVxcbi5xLW1vZGFsLWxlZnQtZW50ZXIsXFxuLnEtbW9kYWwtbGVmdC1sZWF2ZS1hY3RpdmUge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtbW9kYWwtbGVmdC1lbnRlciAubW9kYWwtY29udGVudCxcXG4ucS1tb2RhbC1sZWZ0LWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMCUpO1xcbn1cXG4ucS1ub3RpZmljYXRpb25zID4gZGl2IHtcXG4gIHotaW5kZXg6IDk1MDA7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi1saXN0IHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWxpc3QtY2VudGVyIHtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWxpc3QtdG9wIHtcXG4gIHRvcDogMDtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWxpc3QtYm90dG9tIHtcXG4gIGJvdHRvbTogMDtcXG59XFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1ub3RpZmljYXRpb24tbGlzdC1jZW50ZXIsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1ub3RpZmljYXRpb24tbGlzdC10b3Age1xcbiAgdG9wOiBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCk7XFxufVxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbm90aWZpY2F0aW9uLWxpc3QtY2VudGVyLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbm90aWZpY2F0aW9uLWxpc3QtYm90dG9tIHtcXG4gIGJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xcbn1cXG4ucS1ub3RpZmljYXRpb24ge1xcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIG1hcmdpbjogMTBweCAxMHB4IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAxcztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMXM7XFxuICB6LWluZGV4OiA5NTAwO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tdG9wLWxlZnQtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1sZWZ0LWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi10b3AtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1sZWF2ZS10byxcXG4ucS1ub3RpZmljYXRpb24tdG9wLXJpZ2h0LWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi10b3AtcmlnaHQtbGVhdmUtdG8ge1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MHB4KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MHB4KTtcXG4gIHotaW5kZXg6IDk0OTk7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi1sZWZ0LWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi1sZWZ0LWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi1jZW50ZXItZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLWNlbnRlci1sZWF2ZS10byxcXG4ucS1ub3RpZmljYXRpb24tcmlnaHQtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLXJpZ2h0LWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVmdC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlZnQtbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tcmlnaHQtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1yaWdodC1sZWF2ZS10byB7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTBweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MHB4KTtcXG4gIHotaW5kZXg6IDk0OTk7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi10b3AtbGVmdC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1yaWdodC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWxlZnQtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1jZW50ZXItbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1yaWdodC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1sZWZ0LWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLXJpZ2h0LWxlYXZlLWFjdGl2ZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB6LWluZGV4OiA5NDk5O1xcbiAgbWFyZ2luLWxlZnQ6IDA7XFxuICBtYXJnaW4tcmlnaHQ6IDA7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi10b3AtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1jZW50ZXItbGVhdmUtYWN0aXZlIHtcXG4gIHRvcDogMDtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1sZWZ0LWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLXJpZ2h0LWxlYXZlLWFjdGl2ZSB7XFxuICBib3R0b206IDA7XFxufVxcbi5xLW9wdGlvbi1pbm5lciB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBsaW5lLWhlaWdodDogMDtcXG59XFxuLnEtb3B0aW9uLWlubmVyICsgLnEtb3B0aW9uLWxhYmVsIHtcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxufVxcbi5xLW9wdGlvbiB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4ucS1vcHRpb24gaW5wdXQge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4ucS1vcHRpb24ucmV2ZXJzZSAucS1vcHRpb24taW5uZXIgKyAucS1vcHRpb24tbGFiZWwge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxuICBtYXJnaW4tbGVmdDogMDtcXG59XFxuLnEtb3B0aW9uLWdyb3VwLWlubGluZS1vcHRzID4gZGl2IHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbn1cXG4ucS1vcHRpb24tZ3JvdXAge1xcbiAgbWFyZ2luOiAtNXB4O1xcbiAgcGFkZGluZzogNXB4IDA7XFxufVxcbi5xLXBhZ2luYXRpb24gaW5wdXQge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4ucS1wYWdpbmF0aW9uIC5xLWJ0biB7XFxuICBwYWRkaW5nOiAwIDVweCAhaW1wb3J0YW50O1xcbn1cXG4ucS1wYWdpbmF0aW9uIC5xLWJ0bi5kaXNhYmxlZCB7XFxuICBjb2xvcjogIzc3NztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWZhZGVkKTtcXG59XFxuLnEtcGFyYWxsYXgge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG59XFxuLnEtcGFyYWxsYXgtbWVkaWEgPiBpbWcsXFxuLnEtcGFyYWxsYXgtbWVkaWEgPiB2aWRlbyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiA1MCU7XFxuICBib3R0b206IDA7XFxuICBtaW4td2lkdGg6IDEwMCU7XFxuICBtaW4taGVpZ2h0OiAxMDAlO1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcXG59XFxuLnEtcGFyYWxsYXgtdGV4dCB7XFxuICB0ZXh0LXNoYWRvdzogMCAwIDVweCAjZmZmO1xcbn1cXG4ucS1wb3BvdmVyIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIHotaW5kZXg6IDgwMDA7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xcbiAgbWF4LXdpZHRoOiAxMDB2dztcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLXBvcG92ZXIgPiAucS1saXN0Om9ubHktY2hpbGQge1xcbiAgYm9yZGVyOiBub25lO1xcbn1cXG5ib2R5IGRpdiAucS1wb3BvdmVyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXByb2dyZXNzIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGhlaWdodDogNXB4O1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbCB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsLmFuaW1hdGUge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcHJvZ3Jlc3Mtc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGU7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wcm9ncmVzcy1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZTtcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWw6bm90KC5pbmRldGVybWluYXRlKSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDAuM3MgbGluZWFyO1xcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsLmluZGV0ZXJtaW5hdGU6YmVmb3JlLFxcbi5xLXByb2dyZXNzLW1vZGVsLmluZGV0ZXJtaW5hdGU6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIHdpbGwtY2hhbmdlOiBsZWZ0LCByaWdodDtcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWwuaW5kZXRlcm1pbmF0ZTpiZWZvcmUge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZSAyLjFzIGN1YmljLWJlemllcigwLjY1LCAwLjgxNSwgMC43MzUsIDAuMzk1KSBpbmZpbml0ZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUgMi4xcyBjdWJpYy1iZXppZXIoMC42NSwgMC44MTUsIDAuNzM1LCAwLjM5NSkgaW5maW5pdGU7XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsLmluZGV0ZXJtaW5hdGU6YWZ0ZXIge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZS1zaG9ydCAyLjFzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSkgaW5maW5pdGU7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wcm9ncmVzcy1pbmRldGVybWluYXRlLXNob3J0IDIuMXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKSBpbmZpbml0ZTtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAxLjE1cztcXG4gICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxLjE1cztcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWwuc3RyaXBlLFxcbi5xLXByb2dyZXNzLW1vZGVsLnN0cmlwZTpiZWZvcmUsXFxuLnEtcHJvZ3Jlc3MtbW9kZWwuc3RyaXBlOmFmdGVyIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kLXNpemU6IDQwcHggNDBweCAhaW1wb3J0YW50O1xcbn1cXG4ucS1wcm9ncmVzcy10cmFjayB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGxpbmVhcjtcXG4gIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgbGluZWFyO1xcbn1cXG4ucS1wcm9ncmVzcy1idWZmZXIge1xcbiAgdG9wOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgaGVpZ2h0OiA0cHg7XFxuICByaWdodDogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XFxuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGxpbmVhcjtcXG4gIC13ZWJraXQtbWFzazogdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMV9fXyArIFwiKTtcXG4gICAgICAgICAgbWFzazogdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMV9fXyArIFwiKTtcXG59XFxuLnEtcHJvZ3Jlc3MtdHJhY2ssXFxuLnEtcHJvZ3Jlc3MtYnVmZmVyIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIG9wYWNpdHk6IDAuMjtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLnB1bGwtdG8tcmVmcmVzaCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5wdWxsLXRvLXJlZnJlc2gtbWVzc2FnZSB7XFxuICBoZWlnaHQ6IDY1cHg7XFxuICBmb250LXNpemU6IDFyZW07XFxufVxcbi5wdWxsLXRvLXJlZnJlc2gtbWVzc2FnZSAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMnJlbTtcXG4gIG1hcmdpbi1yaWdodDogMTVweDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3M7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcXG59XFxuLnEtcmFkaW8tdW5jaGVja2VkLFxcbi5xLXJhZGlvLWNoZWNrZWQsXFxuLnEtcmFkaW8gLnEtb3B0aW9uLWlubmVyIHtcXG4gIGhlaWdodDogMjFweDtcXG4gIHdpZHRoOiAyMXB4O1xcbiAgbWluLXdpZHRoOiAyMXB4O1xcbiAgZm9udC1zaXplOiAyMXB4O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSwgLXdlYmtpdC10cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtcmFkaW8tdW5jaGVja2VkIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLXJhZGlvLWNoZWNrZWQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlIDA7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCUgMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG59XFxuLnEtcmFkaW8gLnEtb3B0aW9uLWlubmVyLmFjdGl2ZSAucS1yYWRpby11bmNoZWNrZWQge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtcmFkaW8gLnEtb3B0aW9uLWlubmVyLmFjdGl2ZSAucS1yYWRpby1jaGVja2VkIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG59XFxuLnEtcmF0aW5nIHtcXG4gIGNvbG9yOiAjZmZlYjNiO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnEtcmF0aW5nIHNwYW4ge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBkaXNwbGF5OiBpbmhlcml0O1xcbn1cXG4ucS1yYXRpbmcgaSB7XFxuICBjb2xvcjogY3VycmVudENvbG9yO1xcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMTIpLCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjI0KTtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG4gIG9wYWNpdHk6IDAuNDtcXG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxufVxcbi5xLXJhdGluZyBpLmhvdmVyZWQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKTtcXG59XFxuLnEtcmF0aW5nIGkuZXhzZWxlY3RlZCB7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcbi5xLXJhdGluZyBpLmFjdGl2ZSB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1yYXRpbmcgaSArIGkge1xcbiAgbWFyZ2luLWxlZnQ6IDAuM3JlbTtcXG59XFxuLnEtcmF0aW5nLmVkaXRhYmxlIGkge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1yYXRpbmc6bm90KC5lZGl0YWJsZSkgc3BhbixcXG4ucS1yYXRpbmcgaSB7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS1zY3JvbGxhcmVhLXRodW1iIHtcXG4gIGJhY2tncm91bmQ6ICMwMDA7XFxuICB3aWR0aDogMTBweDtcXG4gIHJpZ2h0OiAwO1xcbiAgb3BhY2l0eTogMC4yO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XFxufVxcbi5xLXNjcm9sbGFyZWEtdGh1bWIuaW52aXNpYmxlLXRodW1iIHtcXG4gIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcXG59XFxuLnEtc2Nyb2xsYXJlYS10aHVtYjpob3ZlciB7XFxuICBvcGFjaXR5OiAwLjM7XFxufVxcbi5xLXNjcm9sbGFyZWEtdGh1bWI6YWN0aXZlIHtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtdG9vbGJhciAucS1zZWFyY2gge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjI1KTtcXG59XFxuLnEtc2xpZGVyLXRyYWNrLFxcbi5xLXNsaWRlci1tYXJrIHtcXG4gIG9wYWNpdHk6IDAuNDtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc2xpZGVyLXRyYWNrIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICBoZWlnaHQ6IDJweDtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4ucS1zbGlkZXItdHJhY2s6bm90KC5kcmFnZ2luZykge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcXG59XFxuLnEtc2xpZGVyLXRyYWNrLmFjdGl2ZS10cmFjayB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1zbGlkZXItdHJhY2sudHJhY2stZHJhZ2dhYmxlLmRyYWdnaW5nIHtcXG4gIGhlaWdodDogNHB4O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBoZWlnaHQgMC4zcyBlYXNlO1xcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3MgZWFzZTtcXG59XFxuLnEtc2xpZGVyLXRyYWNrLmhhbmRsZS1hdC1taW5pbXVtIHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4ucS1zbGlkZXItbWFyayB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGhlaWdodDogMTBweDtcXG4gIHdpZHRoOiAycHg7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZS1jb250YWluZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgbWFyZ2luLWxlZnQ6IDZweDtcXG4gIG1hcmdpbi1yaWdodDogNnB4O1xcbn1cXG4ucS1zbGlkZXItbGFiZWwge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogNnB4O1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMCkgc2NhbGUoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApIHNjYWxlKDApO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycztcXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xcbiAgcGFkZGluZzogMnB4IDRweDtcXG59XFxuLnEtc2xpZGVyLWxhYmVsLmxhYmVsLWFsd2F5cyB7XFxuICBvcGFjaXR5OiAxO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMTM5JSkgc2NhbGUoMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0xMzklKSBzY2FsZSgxKTtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xcbiAgd2lkdGg6IDEycHg7XFxuICBoZWlnaHQ6IDEycHg7XFxuICBvdXRsaW5lOiAwO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlIC5xLWNoaXAge1xcbiAgbWF4LXdpZHRoOiB1bnNldDtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZS5kcmFnZ2luZyB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCkgc2NhbGUoMS4zKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSBzY2FsZSgxLjMpO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZTtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIHRyYW5zZm9ybSAwLjNzIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZTtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZS5kcmFnZ2luZyAucS1zbGlkZXItbGFiZWwge1xcbiAgb3BhY2l0eTogMTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTEzOSUpIHNjYWxlKDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMTM5JSkgc2NhbGUoMSk7XFxufVxcbi5xLXNsaWRlci1oYW5kbGUuaGFuZGxlLWF0LW1pbmltdW0ge1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZS5oYW5kbGUtYXQtbWluaW11bTphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc2xpZGVyLXJpbmcge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtNTAlO1xcbiAgbGVmdDogLTUwJTtcXG4gIHdpZHRoOiAyMDAlO1xcbiAgaGVpZ2h0OiAyMDAlO1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXNsaWRlcjpub3QoLmRpc2FibGVkKTpub3QoLnJlYWRvbmx5KSAucS1zbGlkZXItaGFuZGxlLmRyYWdnaW5nIC5xLXNsaWRlci1yaW5nLFxcbi5xLXNsaWRlcjpub3QoLmRpc2FibGVkKTpub3QoLnJlYWRvbmx5KSAucS1zbGlkZXItaGFuZGxlOmZvY3VzIC5xLXNsaWRlci1yaW5nLFxcbmJvZHkuZGVza3RvcCAucS1zbGlkZXI6bm90KC5kaXNhYmxlZCk6bm90KC5yZWFkb25seSk6aG92ZXIgLnEtc2xpZGVyLXJpbmcge1xcbiAgb3BhY2l0eTogMC40O1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbn1cXG4ucS1zbGlkZXIuZGlzYWJsZWQgLnEtc2xpZGVyLWhhbmRsZSB7XFxuICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xcbn1cXG4ucS1zbGlkZXIuZGlzYWJsZWQgLnEtc2xpZGVyLWhhbmRsZS5oYW5kbGUtYXQtbWluaW11bSB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXNsaWRlciB7XFxuICBoZWlnaHQ6IDI4cHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIGNvbG9yOiAjMDI3YmUzO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItcHJpbWFyeSk7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLXNsaWRlci5sYWJlbC1hbHdheXMsXFxuLnEtc2xpZGVyLndpdGgtcGFkZGluZyB7XFxuICBwYWRkaW5nOiAzNnB4IDAgOHB4O1xcbiAgaGVpZ2h0OiA2NHB4O1xcbn1cXG4ucS1zbGlkZXIuaGFzLWVycm9yIHtcXG4gIGNvbG9yOiAjZGIyODI4O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpO1xcbn1cXG4ucS1zbGlkZXIuaGFzLXdhcm5pbmcge1xcbiAgY29sb3I6ICNmMmMwMzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci13YXJuaW5nKTtcXG59XFxuLnEtc3Bpbm5lciB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4ucS1zcGlubmVyLW1hdCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1zcGluIDJzIGxpbmVhciBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtc3BpbiAycyBsaW5lYXIgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlciAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLXNwaW5uZXItbWF0IC5wYXRoIHtcXG4gIHN0cm9rZS1kYXNoYXJyYXk6IDEsIDIwMDtcXG4gIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtbWF0LWRhc2ggMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtbWF0LWRhc2ggMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1zdGVwcGVyIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1zdGVwcGVyLXRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG59XFxuLnEtc3RlcHBlci1zdWJ0aXRsZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcbi5xLXN0ZXBwZXItZG90IHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgd2lkdGg6IDI0cHg7XFxuICBoZWlnaHQ6IDI0cHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXN0ZXBwZXItZG90IHNwYW4ge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLXN0ZXBwZXItdGFiIHtcXG4gIHBhZGRpbmc6IDI0cHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgMC4yOHMsIGJhY2tncm91bmQgMC4yOHM7XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjI4cywgYmFja2dyb3VuZCAwLjI4cztcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC13YWl0aW5nIHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLXdhaXRpbmcgLnEtc3RlcHBlci1kb3Qge1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC40Mik7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtbmF2aWdhdGlvbiB7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLWNvbG9yIHtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtYWN0aXZlIC5xLXN0ZXBwZXItdGl0bGUge1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtZGlzYWJsZWQge1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC40Mik7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtZXJyb3Ige1xcbiAgY29sb3I6ICNkYjI4Mjg7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSk7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtZXJyb3IgLnEtc3RlcHBlci1kb3Qge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtZXJyb3IgLnEtc3RlcHBlci1kb3Qgc3BhbiB7XFxuICBjb2xvcjogI2RiMjgyODtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKTtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXIge1xcbiAgbWluLWhlaWdodDogNzJweDtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXI6bm90KC5hbHRlcm5hdGl2ZS1sYWJlbHMpIC5xLXN0ZXBwZXItdGFiIHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlcjpub3QoLmFsdGVybmF0aXZlLWxhYmVscykgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXIuYWx0ZXJuYXRpdmUtbGFiZWxzIHtcXG4gIG1pbi1oZWlnaHQ6IDEwNHB4O1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMgLnEtc3RlcHBlci10YWIge1xcbiAgcGFkZGluZzogMjRweCAzMnB4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXIuYWx0ZXJuYXRpdmUtbGFiZWxzIC5xLXN0ZXBwZXItZG90IHtcXG4gIG1hcmdpbi1yaWdodDogMDtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXIuYWx0ZXJuYXRpdmUtbGFiZWxzIC5xLXN0ZXBwZXItbGFiZWwge1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMgLnEtc3RlcHBlci1sYWJlbDpiZWZvcmUsXFxuLnEtc3RlcHBlci1oZWFkZXIuYWx0ZXJuYXRpdmUtbGFiZWxzIC5xLXN0ZXBwZXItbGFiZWw6YWZ0ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtc3RlcHBlci1zdGVwLWNvbnRlbnQge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItdGFiIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItZmlyc3QgLnEtc3RlcHBlci1kb3Q6YmVmb3JlLFxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItbGFzdCAucS1zdGVwcGVyLWxhYmVsOmFmdGVyLFxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItbGFzdCAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWxpbmU6YmVmb3JlLFxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItbGluZTphZnRlciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGhlaWdodDogMXB4O1xcbiAgd2lkdGg6IDEwMHZ3O1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1sYWJlbDphZnRlcixcXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIGxlZnQ6IDEwMCU7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWRvdDpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICByaWdodDogMTAwJTtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLW5hdiB7XFxuICBtYXJnaW46IDAgMTZweCA4cHg7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItc3RlcCAucS1zdGVwcGVyLW5hdiB7XFxuICBtYXJnaW46IDE2cHggMCAwO1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLXN0ZXAgLnEtc3RlcHBlci1uYXYgPiBkaXYuY29sIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItc3RlcC1jb250ZW50ID4gLnEtc3RlcHBlci1zdGVwLWlubmVyIHtcXG4gIHBhZGRpbmc6IDI0cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwge1xcbiAgcGFkZGluZzogOHB4IDAgMThweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItbmF2IHtcXG4gIG1hcmdpbi10b3A6IDE2cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLW5hdiA+IGRpdi5jb2wge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci1zdGVwLWNvbnRlbnQgPiAucS1zdGVwcGVyLXN0ZXAtaW5uZXIge1xcbiAgcGFkZGluZzogMCAyNHB4IDI0cHggNDhweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiIHtcXG4gIHBhZGRpbmc6IDEycHggMTZweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiIC5xLXN0ZXBwZXItZG90OmJlZm9yZSxcXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiA1MCU7XFxuICB3aWR0aDogMXB4O1xcbiAgaGVpZ2h0OiAxMDB2aDtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiAucS1zdGVwcGVyLWRvdDpiZWZvcmUge1xcbiAgYm90dG9tOiAxMDAlO1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgdG9wOiAxMDAlO1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIgLnEtc3RlcHBlci1sYWJlbCB7XFxuICBwYWRkaW5nLXRvcDogNHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIgLnEtc3RlcHBlci1sYWJlbCAucS1zdGVwcGVyLXRpdGxlIHtcXG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIucS1zdGVwcGVyLWZpcnN0IC5xLXN0ZXBwZXItZG90OmJlZm9yZSxcXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIucS1zdGVwcGVyLWxhc3QgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuYm9keS5kZXNrdG9wIC5xLXN0ZXBwZXItdGFiLnN0ZXAtbmF2aWdhdGlvbjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDUpO1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5xLXN0ZXBwZXItaG9yaXpvbnRhbC5xLXN0ZXBwZXItY29udHJhY3RhYmxlID4gLnEtc3RlcHBlci1oZWFkZXIge1xcbiAgICBtaW4taGVpZ2h0OiA3MnB4O1xcbiAgfVxcbiAgLnEtc3RlcHBlci1ob3Jpem9udGFsLnEtc3RlcHBlci1jb250cmFjdGFibGUgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLXRhYiB7XFxuICAgIHBhZGRpbmc6IDI0cHggMDtcXG4gIH1cXG4gIC5xLXN0ZXBwZXItaG9yaXpvbnRhbC5xLXN0ZXBwZXItY29udHJhY3RhYmxlID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci10YWI6bm90KDpsYXN0LWNoaWxkKSAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XFxuICB9XFxuICAucS1zdGVwcGVyLWhvcml6b250YWwucS1zdGVwcGVyLWNvbnRyYWN0YWJsZSA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItZG90IHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcbiAgLnEtc3RlcHBlci1ob3Jpem9udGFsLnEtc3RlcHBlci1jb250cmFjdGFibGUgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWxhYmVsIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gIH1cXG59XFxuLnEtdGFicyB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxufVxcbi5xLWxheW91dC1tYXJnaW5hbCAucS10YWJzIHtcXG4gIGJvcmRlci1yYWRpdXM6IDA7XFxufVxcbi5xLXRhYnMtc2Nyb2xsZXIge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtdGFiLXBhbmUge1xcbiAgcGFkZGluZzogMTJweDtcXG59XFxuLnEtdGFicy1wYW5lczplbXB0eSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS10YWJzLW5vcm1hbCAucS10YWItaWNvbixcXG4ucS10YWJzLW5vcm1hbCAucS10YWItbGFiZWwge1xcbiAgb3BhY2l0eTogMC43O1xcbn1cXG4ucS10YWIge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjNzLCBiYWNrZ3JvdW5kIDAuM3M7XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzLCBiYWNrZ3JvdW5kIDAuM3M7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIHBhZGRpbmc6IDhweCAxMHB4O1xcbiAgbWluLWhlaWdodDogNDhweDtcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxufVxcbi5xLXRhYiAucS10YWItaWNvbi1wYXJlbnQgKyAucS10YWItbGFiZWwtcGFyZW50IHtcXG4gIG1hcmdpbi10b3A6IDRweDtcXG59XFxuLnEtdGFiIC5xLWNoaXAge1xcbiAgdG9wOiAtOHB4O1xcbiAgcmlnaHQ6IC0xMHB4O1xcbiAgbGVmdDogYXV0bztcXG4gIG1pbi1oZWlnaHQ6IGF1dG87XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjQ0LDY3LDU0LDAuNzUpO1xcbn1cXG4ucS10YWIuYWN0aXZlIC5xLXRhYi1pY29uLFxcbi5xLXRhYi5hY3RpdmUgLnEtdGFiLWxhYmVsIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLXRhYi1sYWJlbCB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5xLXRhYi1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjdweDtcXG59XFxuLnEtdGFiLWZvY3VzLWhlbHBlciB7XFxuICB6LWluZGV4OiAtMTtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLXRhYi1mb2N1cy1oZWxwZXI6Zm9jdXMge1xcbiAgei1pbmRleDogdW5zZXQ7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBvcGFjaXR5OiAwLjE7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLnEtdGFiLmhpZGUtaWNvbiAucS10YWItaWNvbi1wYXJlbnQsXFxuICAucS10YWIuaGlkZS1sYWJlbCAucS10YWItbGFiZWwtcGFyZW50IHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbiAgLnEtdGFiLmhpZGUtaWNvbiAucS10YWItbGFiZWwge1xcbiAgICBtYXJnaW4tdG9wOiAwO1xcbiAgfVxcbiAgLnEtdGFiLWZ1bGwuaGlkZS1ub25lIC5xLXRhYi1sYWJlbC1wYXJlbnQgLnEtdGFiLW1ldGEge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5xLXRhYi1mdWxsIC5xLXRhYi1sYWJlbC1wYXJlbnQgLnEtdGFiLW1ldGEge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcXG4gIC5xLXRhYnMtaGVhZDpub3QoLnNjcm9sbGFibGUpIC5xLXRhYnMtc2Nyb2xsZXIsXFxuICAucS10YWJzLWhlYWQ6bm90KC5zY3JvbGxhYmxlKSAucS10YWIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gIC5xLXRhYiB7XFxuICAgIHBhZGRpbmctbGVmdDogMjVweDtcXG4gICAgcGFkZGluZy1yaWdodDogMjVweDtcXG4gIH1cXG4gIC5xLWxheW91dC1tYXJnaW5hbCAucS10YWJzLWhlYWQ6bm90KC5zY3JvbGxhYmxlKSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTJweDtcXG4gICAgcGFkZGluZy1yaWdodDogMTJweDtcXG4gIH1cXG59XFxuLnEtdGFicy1oZWFkIHtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgMC4xOHMgZWFzZS1pbiwgLXdlYmtpdC1ib3gtc2hhZG93IDAuMThzIGVhc2UtaW47XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE4cyBlYXNlLWluLCAtd2Via2l0LWJveC1zaGFkb3cgMC4xOHMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMThzIGVhc2UtaW4sIGJveC1zaGFkb3cgMC4xOHMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMThzIGVhc2UtaW4sIGJveC1zaGFkb3cgMC4xOHMgZWFzZS1pbiwgLXdlYmtpdC1ib3gtc2hhZG93IDAuMThzIGVhc2UtaW47XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5xLXRhYnMtaGVhZDpub3QoLnNjcm9sbGFibGUpIC5xLXRhYnMtbGVmdC1zY3JvbGwsXFxuLnEtdGFicy1oZWFkOm5vdCguc2Nyb2xsYWJsZSkgLnEtdGFicy1yaWdodC1zY3JvbGwge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4ucS10YWJzLWxlZnQtc2Nyb2xsLFxcbi5xLXRhYnMtcmlnaHQtc2Nyb2xsIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgdG9wOiAwO1xcbn1cXG4ucS10YWJzLWxlZnQtc2Nyb2xsIC5xLWljb24sXFxuLnEtdGFicy1yaWdodC1zY3JvbGwgLnEtaWNvbiB7XFxuICB0ZXh0LXNoYWRvdzogMCAwIDEwcHggIzAwMDtcXG4gIGZvbnQtc2l6ZTogMzIuNHB4O1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbn1cXG4ucS10YWJzLWxlZnQtc2Nyb2xsLmRpc2FibGVkLFxcbi5xLXRhYnMtcmlnaHQtc2Nyb2xsLmRpc2FibGVkIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXRhYnM6aG92ZXIgLnEtdGFicy1sZWZ0LXNjcm9sbCAucS1pY29uLFxcbi5xLXRhYnM6aG92ZXIgLnEtdGFicy1yaWdodC1zY3JvbGwgLnEtaWNvbiB7XFxuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbn1cXG4ucS10YWJzLWxlZnQtc2Nyb2xsIHtcXG4gIGxlZnQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtdGFicy1yaWdodC1zY3JvbGwge1xcbiAgcmlnaHQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtdGFicy1hbGlnbi1qdXN0aWZ5IC5xLXRhYnMtc2Nyb2xsZXIsXFxuLnEtdGFicy1hbGlnbi1qdXN0aWZ5IC5xLXRhYiB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgZmxleDogMSAxIGF1dG87XFxufVxcbi5xLXRhYnMtYWxpZ24tY2VudGVyIHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG4ucS10YWJzLWFsaWduLXJpZ2h0IHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XFxufVxcbi5xLXRhYnMtYmFyIHtcXG4gIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG4gIGJvcmRlci13aWR0aDogMDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGhlaWdodDogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLnEtdGFicy1nbG9iYWwtYmFyIHtcXG4gIHdpZHRoOiAxcHg7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm07XFxuICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSwgLXdlYmtpdC10cmFuc2Zvcm07XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7XFxufVxcbi5xLXRhYnMtZ2xvYmFsLWJhci5jb250cmFjdCB7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuMThzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE4cztcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XFxufVxcbi5xLXRhYnMtZ2xvYmFsLWJhci1jb250YWluZXIuaGlnaGxpZ2h0ID4gLnEtdGFicy1nbG9iYWwtYmFyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXRhYnMtdHdvLWxpbmVzIC5xLXRhYiB7XFxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbn1cXG4ucS10YWJzLXR3by1saW5lcyAucS10YWIgLnEtdGFiLWxhYmVsIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XFxufVxcbi5xLXRhYnMtcG9zaXRpb24tdG9wID4gLnEtdGFicy1oZWFkIC5xLXRhYnMtYmFyIHtcXG4gIGJvdHRvbTogMDtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcXG59XFxuLnEtdGFicy1wb3NpdGlvbi1ib3R0b20gPiAucS10YWJzLWhlYWQgLnEtdGFicy1iYXIge1xcbiAgdG9wOiAwO1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMnB4O1xcbn1cXG4ucS10YWJzLXBvc2l0aW9uLWJvdHRvbSA+IC5xLXRhYnMtcGFuZXMge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMDtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogLTE7XFxuICAgICAgICAgIG9yZGVyOiAtMTtcXG59XFxuLnEtdGFicy1pbnZlcnRlZCAucS10YWJzLWhlYWQge1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG59XFxuLnEtdGFicy1pbnZlcnRlZC5xLXRhYnMtcG9zaXRpb24tdG9wID4gLnEtdGFicy1wYW5lcyB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpO1xcbn1cXG4ucS10YWJzLWludmVydGVkLnEtdGFicy1wb3NpdGlvbi10b3AgPiAucS10YWItcGFuZSB7XFxuICBib3JkZXItdG9wOiAwO1xcbn1cXG4ucS10YWJzLWludmVydGVkLnEtdGFicy1wb3NpdGlvbi1ib3R0b20gPiAucS10YWJzLXBhbmVzIHtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7XFxufVxcbi5xLXRhYnMtaW52ZXJ0ZWQucS10YWJzLXBvc2l0aW9uLWJvdHRvbSA+IC5xLXRhYi1wYW5lIHtcXG4gIGJvcmRlci1ib3R0b206IDA7XFxufVxcbmJvZHkubW9iaWxlIC5xLXRhYnMtc2Nyb2xsZXIge1xcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xcbiAgb3ZlcmZsb3cteDogYXV0bztcXG4gIHdpbGwtY2hhbmdlOiBzY3JvbGwtcG9zaXRpb247XFxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxufVxcbmJvZHkuZGVza3RvcCAucS10YWI6YmVmb3JlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIG9wYWNpdHk6IDAuMTtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuYm9keS5kZXNrdG9wIC5xLXRhYjpob3ZlcjpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxufVxcbi5xLXRhYmxlLWNvbnRhaW5lciB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnEtdGFibGUtY29udGFpbmVyLmZ1bGxzY3JlZW4ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcXG59XFxuLnEtdGFibGUtdG9wIHtcXG4gIG1pbi1oZWlnaHQ6IDY0cHg7XFxuICBwYWRkaW5nOiA4cHggMjRweDtcXG59XFxuLnEtdGFibGUtdG9wOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgb3BhY2l0eTogMC4yO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxufVxcbi5xLXRhYmxlLXRvcCAucS10YWJsZS1jb250cm9sIHtcXG4gIG1pbi1oZWlnaHQ6IDM2cHg7XFxuICBwYWRkaW5nOiA4cHggMDtcXG4gIC1tcy1mbGV4LXdyYXA6IHdyYXA7XFxuICAgICAgZmxleC13cmFwOiB3cmFwO1xcbn1cXG4ucS10YWJsZS10aXRsZSB7XFxuICBmb250LXNpemU6IDIwcHg7XFxuICBsZXR0ZXItc3BhY2luZzogMC4wMDVlbTtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxufVxcbi5xLXRhYmxlLXNlcGFyYXRvciB7XFxuICBtaW4td2lkdGg6IDhweCAhaW1wb3J0YW50O1xcbn1cXG4ucS10YWJsZS1ub2RhdGEgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDIwMCU7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xcbn1cXG4ucS10YWJsZS1wcm9ncmVzcyB7XFxuICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcXG59XFxuLnEtdGFibGUtcHJvZ3Jlc3MgdGQge1xcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxufVxcbi5xLXRhYmxlLXByb2dyZXNzIC5xLXByb2dyZXNzIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGhlaWdodDogMnB4O1xcbiAgYm90dG9tOiAwO1xcbn1cXG4ucS10YWJsZS1taWRkbGUge1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbn1cXG4ucS10YWJsZS1ib3R0b20ge1xcbiAgbWluLWhlaWdodDogNDhweDtcXG4gIHBhZGRpbmc6IDRweCAxNHB4IDRweCAyNHB4O1xcbn1cXG4ucS10YWJsZS1ib3R0b20sXFxuLnEtdGFibGUtYm90dG9tIC5xLWlmIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG59XFxuLnEtdGFibGUtYm90dG9tIC5xLXRhYmxlLWNvbnRyb2wge1xcbiAgbWluLWhlaWdodDogMjRweDtcXG59XFxuLnEtdGFibGUtY29udHJvbCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxuLnEtdGFibGUtc29ydC1pY29uIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcXG4gIG9wYWNpdHk6IDA7XFxuICBmb250LXNpemU6IDEyMCU7XFxufVxcbi5xLXRhYmxlLXNvcnQtaWNvbi1sZWZ0LFxcbi5xLXRhYmxlLXNvcnQtaWNvbi1jZW50ZXIge1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG59XFxuLnEtdGFibGUtc29ydC1pY29uLXJpZ2h0IHtcXG4gIG1hcmdpbi1yaWdodDogNHB4O1xcbn1cXG4ucS10YWJsZSB7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XFxuICBib3JkZXItc3BhY2luZzogMDtcXG59XFxuLnEtdGFibGUgdGhlYWQgdHIge1xcbiAgaGVpZ2h0OiA1NnB4O1xcbn1cXG4ucS10YWJsZSB0aCB7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbn1cXG4ucS10YWJsZSB0aC5zb3J0YWJsZSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLXRhYmxlIHRoLnNvcnRhYmxlOmhvdmVyIC5xLXRhYmxlLXNvcnQtaWNvbiB7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLXRhYmxlIHRoLnNvcnRlZCAucS10YWJsZS1zb3J0LWljb24ge1xcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xcbn1cXG4ucS10YWJsZSB0aC5zb3J0LWRlc2MgLnEtdGFibGUtc29ydC1pY29uIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcXG59XFxuLnEtdGFibGUgdGJvZHkgdHIge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB3aWxsLWNoYW5nZTogYmFja2dyb3VuZDtcXG59XFxuLnEtdGFibGUgdGgsXFxuLnEtdGFibGUgdGQge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIHBhZGRpbmc6IDdweCAyNHB4O1xcbn1cXG4ucS10YWJsZSB0aGVhZCxcXG4ucS10YWJsZSB0ZCxcXG4ucS10YWJsZSB0aCB7XFxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgYm9yZGVyLXdpZHRoOiAwO1xcbn1cXG4ucS10YWJsZSB0Ym9keSB0ZCB7XFxuICBoZWlnaHQ6IDQ4cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgZm9udC1zaXplOiAxM3B4O1xcbn1cXG4ucS10YWJsZS1jb2wtYXV0by13aWR0aCB7XFxuICB3aWR0aDogMXB4O1xcbn1cXG4ucS10YWJsZS1ib3R0b20taXRlbSB7XFxuICBtYXJnaW4tcmlnaHQ6IDI0cHg7XFxufVxcbi5xLXRhYmxlLWdyaWQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG4ucS10YWJsZS1ncmlkIC5xLXRhYmxlLWJvdHRvbSB7XFxuICBib3JkZXItdG9wOiAwO1xcbn1cXG4ucS10YWJsZS1ncmlkIC5xLXRhYmxlIHtcXG4gIGhlaWdodDogMnB4O1xcbn1cXG4ucS10YWJsZS1ncmlkIC5xLXRhYmxlIHRoZWFkIHtcXG4gIGJvcmRlcjogMDtcXG59XFxuLnEtdGFibGUtaG9yaXpvbnRhbC1zZXBhcmF0b3IgdGhlYWQsXFxuLnEtdGFibGUtaG9yaXpvbnRhbC1zZXBhcmF0b3IgdGJvZHkgdGQge1xcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XFxufVxcbi5xLXRhYmxlLXZlcnRpY2FsLXNlcGFyYXRvciB0aGVhZCB7XFxuICBib3JkZXItd2lkdGg6IDAgMCAxcHggMDtcXG59XFxuLnEtdGFibGUtdmVydGljYWwtc2VwYXJhdG9yIHRkIHtcXG4gIGJvcmRlci13aWR0aDogMCAwIDAgMXB4O1xcbn1cXG4ucS10YWJsZS12ZXJ0aWNhbC1zZXBhcmF0b3IgdGQ6Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLWxlZnQ6IDA7XFxufVxcbi5xLXRhYmxlLWNlbGwtc2VwYXJhdG9yIHRkIHtcXG4gIGJvcmRlci13aWR0aDogMXB4O1xcbn1cXG4ucS10YWJsZS1jZWxsLXNlcGFyYXRvciB0ZDpmaXJzdC1jaGlsZCB7XFxuICBib3JkZXItbGVmdDogMDtcXG59XFxuLnEtdGFibGUtY2VsbC1zZXBhcmF0b3IgdGQ6bGFzdC1jaGlsZCB7XFxuICBib3JkZXItcmlnaHQ6IDA7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlLXRvcCB7XFxuICBtaW4taGVpZ2h0OiA0OHB4O1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZS10b3AsXFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUtYm90dG9tIHtcXG4gIHBhZGRpbmctbGVmdDogOHB4O1xcbiAgcGFkZGluZy1yaWdodDogOHB4O1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZS1ib3R0b20ge1xcbiAgbWluLWhlaWdodDogNDJweDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUtc29ydC1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMTEwJTtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUgdGgsXFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUgdGQge1xcbiAgcGFkZGluZzogNHB4IDhweDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUgdGhlYWQgdHIge1xcbiAgaGVpZ2h0OiA0MHB4O1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZSB0Ym9keSB0ZCB7XFxuICBoZWlnaHQ6IDI4cHg7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlLWJvdHRvbS1pdGVtIHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5xLXRhYmxlLXRvcCB7XFxuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XFxuICB9XFxuICAucS10YWJsZS10b3AsXFxuICAucS10YWJsZS1ib3R0b20ge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcXG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xcbiAgfVxcbiAgLnEtdGFibGUtYm90dG9tIHtcXG4gICAgbWluLWhlaWdodDogNDJweDtcXG4gIH1cXG4gIC5xLXRhYmxlLXNvcnQtaWNvbiB7XFxuICAgIGZvbnQtc2l6ZTogMTEwJTtcXG4gIH1cXG4gIC5xLXRhYmxlIHRoLFxcbiAgLnEtdGFibGUgdGQge1xcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xcbiAgfVxcbiAgLnEtdGFibGUgdGhlYWQgdHIge1xcbiAgICBoZWlnaHQ6IDQwcHg7XFxuICB9XFxuICAucS10YWJsZSB0Ym9keSB0ZCB7XFxuICAgIGhlaWdodDogMjhweDtcXG4gIH1cXG4gIC5xLXRhYmxlLWJvdHRvbS1pdGVtIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxuICB9XFxufVxcbi5xLXRhYmxlLWJvdHRvbSB7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjU0KTtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS10YWJsZSB7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjg3KTtcXG59XFxuLnEtdGFibGUgdGhlYWQsXFxuLnEtdGFibGUgdHIsXFxuLnEtdGFibGUgdGgsXFxuLnEtdGFibGUgdGQge1xcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS10YWJsZSB0aCB7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjU0KTtcXG59XFxuLnEtdGFibGUgdGguc29ydGFibGU6aG92ZXIsXFxuLnEtdGFibGUgdGguc29ydGVkIHtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuODcpO1xcbn1cXG4ucS10YWJsZSB0Ym9keSB0ci5zZWxlY3RlZCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDYpO1xcbn1cXG4ucS10YWJsZSB0Ym9keSB0cjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDMpO1xcbn1cXG4ucS10YWJsZS1kYXJrIHtcXG4gIGNvbG9yOiAjZWVlO1xcbn1cXG4ucS10YWJsZS1kYXJrIC5xLXRhYmxlLWJvdHRvbSxcXG4ucS10YWJsZS1kYXJrIC5xLXRhYmxlLXRvcCB7XFxuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjY0KTtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpO1xcbn1cXG4ucS10YWJsZS1kYXJrIHRoZWFkLFxcbi5xLXRhYmxlLWRhcmsgdHIsXFxuLnEtdGFibGUtZGFyayB0aCxcXG4ucS10YWJsZS1kYXJrIHRkIHtcXG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjEyKTtcXG59XFxuLnEtdGFibGUtZGFyayB0aCB7XFxuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjY0KTtcXG59XFxuLnEtdGFibGUtZGFyayB0aC5zb3J0YWJsZTpob3ZlcixcXG4ucS10YWJsZS1kYXJrIHRoLnNvcnRlZCB7XFxuICBjb2xvcjogI2VlZTtcXG59XFxuLnEtdGFibGUtZGFyayB0Ym9keSB0ci5zZWxlY3RlZCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMik7XFxufVxcbi5xLXRhYmxlLWRhcmsgdGJvZHkgdHI6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjEpO1xcbn1cXG4ucS10aW1lbGluZSB7XFxuICBwYWRkaW5nOiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBsaXN0LXN0eWxlOiBub25lO1xcbn1cXG4ucS10aW1lbGluZSBoNiB7XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG59XFxuLnEtdGltZWxpbmUtdGl0bGUge1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XFxufVxcbi5xLXRpbWVsaW5lLXN1YnRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG4gIG9wYWNpdHk6IDAuNDtcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxuICBsZXR0ZXItc3BhY2luZzogMXB4O1xcbiAgZm9udC13ZWlnaHQ6IDcwMDtcXG59XFxuLnEtdGltZWxpbmUtZG90IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTVweDtcXG59XFxuLnEtdGltZWxpbmUtZG90OmJlZm9yZSxcXG4ucS10aW1lbGluZS1kb3Q6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLnEtdGltZWxpbmUtZG90OmJlZm9yZSB7XFxuICBib3JkZXI6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XFxuICBoZWlnaHQ6IDE1cHg7XFxuICB3aWR0aDogMTVweDtcXG4gIHRvcDogNHB4O1xcbiAgbGVmdDogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2UtaW4tb3V0LCBib3JkZXIgMC4zcyBlYXNlLWluLW91dDtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlLWluLW91dCwgYm9yZGVyIDAuM3MgZWFzZS1pbi1vdXQ7XFxufVxcbi5xLXRpbWVsaW5lLWRvdDphZnRlciB7XFxuICB3aWR0aDogM3B4O1xcbiAgb3BhY2l0eTogMC40O1xcbiAgdG9wOiAyNHB4O1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogNnB4O1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtZG90IHtcXG4gIHdpZHRoOiAzMXB4O1xcbiAgbGVmdDogLThweDtcXG59XFxuLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLWRvdDpiZWZvcmUge1xcbiAgaGVpZ2h0OiAzMXB4O1xcbiAgd2lkdGg6IDMxcHg7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1kb3Q6YWZ0ZXIge1xcbiAgdG9wOiA0MXB4O1xcbiAgbGVmdDogMTRweDtcXG59XFxuLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLXN1YnRpdGxlIHtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxufVxcbi5xLXRpbWVsaW5lLWRvdCAucS1pY29uIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbiAgaGVpZ2h0OiAzOHB4O1xcbiAgY29sb3I6ICNmZmY7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZS1pbi1vdXQ7XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2UtaW4tb3V0O1xcbn1cXG4ucS10aW1lbGluZS1kYXJrIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS10aW1lbGluZS1kYXJrIC5xLXRpbWVsaW5lLXN1YnRpdGxlIHtcXG4gIG9wYWNpdHk6IDAuNztcXG59XFxuLnEtdGltZWxpbmUtZW50cnkge1xcbiAgcGFkZGluZy1sZWZ0OiA0MHB4O1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgbGluZS1oZWlnaHQ6IDIycHg7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5Omxhc3QtY2hpbGQge1xcbiAgcGFkZGluZy1ib3R0b206IDA7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5Omxhc3QtY2hpbGQgLnEtdGltZWxpbmUtZG90OmFmdGVyIHtcXG4gIGNvbnRlbnQ6IG5vbmU7XFxufVxcbi5xLXRpbWVsaW5lLWhvdmVyIC5xLXRpbWVsaW5lLWVudHJ5OmhvdmVyIC5xLXRpbWVsaW5lLWRvdDpiZWZvcmUge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXI6IDNweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXRpbWVsaW5lLWhvdmVyIC5xLXRpbWVsaW5lLWVudHJ5LnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uOmhvdmVyIC5xLXRpbWVsaW5lLWRvdCAucS1pY29uIHtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XFxufVxcbi5xLXRpbWVsaW5lLWhlYWRpbmcge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucS10aW1lbGluZS1oZWFkaW5nOmZpcnN0LWNoaWxkIC5xLXRpbWVsaW5lLWhlYWRpbmctdGl0bGUge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5xLXRpbWVsaW5lLWhlYWRpbmc6bGFzdC1jaGlsZCAucS10aW1lbGluZS1oZWFkaW5nLXRpdGxlIHtcXG4gIHBhZGRpbmctYm90dG9tOiAwO1xcbn1cXG4ucS10aW1lbGluZS1oZWFkaW5nLXRpdGxlIHtcXG4gIHBhZGRpbmc6IDMycHggMDtcXG4gIG1hcmdpbjogMDtcXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtaGVhZGluZyB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcXG4gICAgZm9udC1zaXplOiAyMDAlO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1oZWFkaW5nID4gZGl2IHtcXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtaGVhZGluZy10aXRsZSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAtNTBweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUge1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnkge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XFxuICAgIHBhZGRpbmc6IDA7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLXN1YnRpdGxlLFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1kb3QsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1zdWJ0aXRsZSB7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xcbiAgICB3aWR0aDogMzUlO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1kb3Qge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgcGFkZGluZy10b3A6IDhweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtc3VidGl0bGUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtaGVhZGluZy10aXRsZSB7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgbWFyZ2luLWxlZnQ6IDA7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1zdWJ0aXRsZSxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZG90LFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZG90IHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBsZWZ0OiA1MCU7XFxuICAgIG1hcmdpbi1sZWZ0OiAtNy4xNXB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtZG90IHtcXG4gICAgbGVmdDogNTAlO1xcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLXN1YnRpdGxlLFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgd2lkdGg6IDUwJTtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktbGVmdCAucS10aW1lbGluZS1jb250ZW50LFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS1yaWdodCAucS10aW1lbGluZS1zdWJ0aXRsZSB7XFxuICAgIGZsb2F0OiBsZWZ0O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktbGVmdCAucS10aW1lbGluZS1zdWJ0aXRsZSxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktcmlnaHQgLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIGZsb2F0OiByaWdodDtcXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIHBhZGRpbmctdG9wOiA4cHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5IHtcXG4gICAgcGFkZGluZy1ib3R0b206IDI0cHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICB9XFxufVxcbi5xLXRvZ2dsZS1iYXNlIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTJweDtcXG4gIGJvcmRlci1yYWRpdXM6IDMwcHg7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLXRvZ2dsZS1oYW5kbGUge1xcbiAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDQ1MG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IGFsbCA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMjFweDtcXG4gIGhlaWdodDogMjFweDtcXG4gIGxpbmUtaGVpZ2h0OiAyMXB4O1xcbn1cXG4ucS10b2dnbGUgLnEtb3B0aW9uLWlubmVyIHtcXG4gIGhlaWdodDogMjFweDtcXG4gIHdpZHRoOiA0MHB4O1xcbiAgbWluLXdpZHRoOiA0MHB4O1xcbiAgcGFkZGluZzogNXB4IDA7XFxufVxcbi5xLXRvZ2dsZSAucS1vcHRpb24taW5uZXIuYWN0aXZlIC5xLXRvZ2dsZS1oYW5kbGUge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgbGVmdDogMTlweDtcXG59XFxuLnEtdG9nZ2xlIC5xLW9wdGlvbi1pbm5lci5hY3RpdmUgLnEtdG9nZ2xlLWljb24ge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLXRvb2xiYXIge1xcbiAgcGFkZGluZzogNHB4IDEycHg7XFxuICBtaW4taGVpZ2h0OiA1MHB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4ucS10b29sYmFyLWludmVydGVkIHtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxufVxcbi5xLXRvb2xiYXItdGl0bGUge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIDAlO1xcbiAgICAgICAgICBmbGV4OiAxIDEgMCU7XFxuICBtaW4td2lkdGg6IDFweDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGZvbnQtc2l6ZTogMThweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBwYWRkaW5nOiAwIDEycHg7XFxufVxcbi5xLXRvb2xiYXItc3VidGl0bGUge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgb3BhY2l0eTogMC43O1xcbn1cXG4ucS10b29sYmFyLXRpdGxlLFxcbi5xLXRvb2xiYXItc3VidGl0bGUge1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtdG9vbHRpcCB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBjb2xvcjogI2ZhZmFmYTtcXG4gIGJhY2tncm91bmQ6ICM3NDc0NzQ7XFxuICB6LWluZGV4OiA5MDAwO1xcbiAgcGFkZGluZzogMTBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxuICBvdmVyZmxvdy14OiBoaWRkZW47XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtdHJlZS1ub2RlIHtcXG4gIG1hcmdpbjogMDtcXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmc6IDAgMCAzcHggMjJweDtcXG59XFxuLnEtdHJlZS1ub2RlOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtM3B4O1xcbiAgYm90dG9tOiAwO1xcbiAgd2lkdGg6IDFweDtcXG4gIHJpZ2h0OiBhdXRvO1xcbiAgbGVmdDogLTEzcHg7XFxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtdHJlZS1ub2RlOmxhc3QtY2hpbGQ6YWZ0ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtdHJlZS1ub2RlLWhlYWRlcjpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC0zcHg7XFxuICBib3R0b206IDUwJTtcXG4gIHdpZHRoOiAzNXB4O1xcbiAgbGVmdDogLTM1cHg7XFxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXRyZWUtY2hpbGRyZW4ge1xcbiAgcGFkZGluZy1sZWZ0OiAyNXB4O1xcbn1cXG4ucS10cmVlLWNoaWxkcmVuLmRpc2FibGVkIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS10cmVlLW5vZGUtYm9keSB7XFxuICBwYWRkaW5nOiA1cHggMCA4cHggNXB4O1xcbn1cXG4ucS10cmVlLW5vZGUtcGFyZW50IHtcXG4gIHBhZGRpbmctbGVmdDogMnB4O1xcbn1cXG4ucS10cmVlLW5vZGUtcGFyZW50ID4gLnEtdHJlZS1ub2RlLWhlYWRlcjpiZWZvcmUge1xcbiAgd2lkdGg6IDE1cHg7XFxuICBsZWZ0OiAtMTVweDtcXG59XFxuLnEtdHJlZS1ub2RlLXBhcmVudCA+IC5xLXRyZWUtbm9kZS1jb2xsYXBzaWJsZSA+IC5xLXRyZWUtbm9kZS1ib2R5IHtcXG4gIHBhZGRpbmc6IDVweCAwIDhweCAyN3B4O1xcbn1cXG4ucS10cmVlLW5vZGUtcGFyZW50ID4gLnEtdHJlZS1ub2RlLWNvbGxhcHNpYmxlID4gLnEtdHJlZS1ub2RlLWJvZHk6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICB3aWR0aDogMXB4O1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgcmlnaHQ6IGF1dG87XFxuICBsZWZ0OiAxMnB4O1xcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxuICBib3R0b206IDUwcHg7XFxufVxcbi5xLXRyZWUtbm9kZS1saW5rIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtdHJlZS1ub2RlLXNlbGVjdGVkIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xNSk7XFxufVxcbi5xLXRyZWUtZGFyayAucS10cmVlLW5vZGUtc2VsZWN0ZWQge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjQpO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtdHJlZS1ub2RlLWxpbms6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEpO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtdHJlZS1kYXJrIC5xLXRyZWUtbm9kZS1saW5rOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zKTtcXG59XFxuLnEtdHJlZS1ub2RlLWhlYWRlciB7XFxuICBwYWRkaW5nOiA0cHg7XFxuICBtYXJnaW4tdG9wOiAzcHg7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxufVxcbi5xLXRyZWUtbm9kZS1oZWFkZXIuZGlzYWJsZWQge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5xLXRyZWUtaWNvbiB7XFxuICBmb250LXNpemU6IDEuNWVtO1xcbn1cXG4ucS10cmVlLWltZyB7XFxuICBoZWlnaHQ6IDNlbTtcXG59XFxuLnEtdHJlZS1pbWcuYXZhdGFyIHtcXG4gIHdpZHRoOiAyZW07XFxuICBoZWlnaHQ6IDJlbTtcXG59XFxuLnEtdHJlZS1hcnJvdyB7XFxuICBmb250LXNpemU6IDFyZW07XFxuICB3aWR0aDogMXJlbTtcXG4gIGhlaWdodDogMXJlbTtcXG59XFxuLnEtdHJlZS1hcnJvdy1yb3RhdGUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcXG59XFxuW2Rpcj1ydGxdIC5xLXRyZWUtYXJyb3cge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuW2Rpcj1ydGxdIC5xLXRyZWUtYXJyb3ctcm90YXRlIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS10cmVlID4gLnEtdHJlZS1ub2RlIHtcXG4gIHBhZGRpbmc6IDA7XFxufVxcbi5xLXRyZWUgPiAucS10cmVlLW5vZGU6YWZ0ZXIsXFxuLnEtdHJlZSA+IC5xLXRyZWUtbm9kZSA+IC5xLXRyZWUtbm9kZS1oZWFkZXI6YmVmb3JlIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXRyZWUgPiAucS10cmVlLW5vZGUtY2hpbGQgPiAucS10cmVlLW5vZGUtaGVhZGVyIHtcXG4gIHBhZGRpbmctbGVmdDogMjRweDtcXG59XFxuLnEtdXBsb2FkZXItZXhwYW5kZWQgLnEtaWYge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xcbn1cXG4ucS11cGxvYWRlci1pbnB1dCB7XFxuICBvcGFjaXR5OiAwO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBmb250LXNpemU6IDA7XFxufVxcbi5xLXVwbG9hZGVyLXBpY2stYnV0dG9uW2Rpc2FibGVkXSAucS11cGxvYWRlci1pbnB1dCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS11cGxvYWRlci1maWxlcyB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgbWF4LWhlaWdodDogNTAwcHg7XFxufVxcbi5xLXVwbG9hZGVyLWZpbGVzLW5vLWJvcmRlciAucS11cGxvYWRlci1maWxlcyB7XFxuICBib3JkZXItdG9wOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5xLXVwbG9hZGVyLWZpbGU6bm90KDpsYXN0LWNoaWxkKSB7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UwZTBlMDtcXG59XFxuLnEtdXBsb2FkZXItcHJvZ3Jlc3MtYmcsXFxuLnEtdXBsb2FkZXItcHJvZ3Jlc3MtdGV4dCB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtdXBsb2FkZXItcHJvZ3Jlc3MtYmcge1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgb3BhY2l0eTogMC4yO1xcbn1cXG4ucS11cGxvYWRlci1wcm9ncmVzcy10ZXh0IHtcXG4gIGZvbnQtc2l6ZTogNDBweDtcXG4gIG9wYWNpdHk6IDAuMTtcXG4gIHJpZ2h0OiA0NHB4O1xcbiAgYm90dG9tOiAwO1xcbn1cXG4ucS11cGxvYWRlci1kbmQge1xcbiAgb3V0bGluZTogMnB4IGRhc2hlZCBjdXJyZW50Q29sb3I7XFxuICBvdXRsaW5lLW9mZnNldDogLTZweDtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTtcXG59XFxuLnEtdXBsb2FkZXItZG5kLmludmVydGVkIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcXG59XFxuLnEtdXBsb2FkZXItZGFyayAucS11cGxvYWRlci1maWxlcyB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNhN2E3YTc7XFxufVxcbi5xLXVwbG9hZGVyLWRhcmsgLnEtdXBsb2FkZXItYmcge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLXVwbG9hZGVyLWRhcmsgLnEtdXBsb2FkZXItcHJvZ3Jlc3MtdGV4dCB7XFxuICBvcGFjaXR5OiAwLjI7XFxufVxcbi5xLXVwbG9hZGVyLWRhcmsgLnEtdXBsb2FkZXItZmlsZTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXEtY29sb3ItZGFyayk7XFxufVxcbmltZy5yZXNwb25zaXZlIHtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGhlaWdodDogYXV0bztcXG59XFxuaW1nLmF2YXRhciB7XFxuICB3aWR0aDogNTBweDtcXG4gIGhlaWdodDogNTBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnEtdmlkZW8ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxufVxcbi5xLXZpZGVvIGlmcmFtZSxcXG4ucS12aWRlbyBvYmplY3QsXFxuLnEtdmlkZW8gZW1iZWQge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbjpyb290IHtcXG4gIC0tcS1jb2xvci1wcmltYXJ5OiAjMDI3YmUzO1xcbiAgLS1xLWNvbG9yLXNlY29uZGFyeTogIzI2YTY5YTtcXG4gIC0tcS1jb2xvci10ZXJ0aWFyeTogIzU1NTtcXG4gIC0tcS1jb2xvci1wb3NpdGl2ZTogIzIxYmE0NTtcXG4gIC0tcS1jb2xvci1uZWdhdGl2ZTogI2RiMjgyODtcXG4gIC0tcS1jb2xvci1uZWdhdGl2ZS1sOiAjZWM4YjhiO1xcbiAgLS1xLWNvbG9yLWluZm86ICMzMWNjZWM7XFxuICAtLXEtY29sb3Itd2FybmluZzogI2YyYzAzNztcXG4gIC0tcS1jb2xvci13YXJuaW5nLWw6ICNmOGRkOTM7XFxuICAtLXEtY29sb3ItbGlnaHQ6ICNiZGJkYmQ7XFxuICAtLXEtY29sb3ItbGlnaHQtZDogI2FhYTtcXG4gIC0tcS1jb2xvci1mYWRlZDogIzc3NztcXG4gIC0tcS1jb2xvci1kYXJrOiAjNDI0MjQyO1xcbn1cXG4udGV4dC1wcmltYXJ5IHtcXG4gIGNvbG9yOiAjMDI3YmUzICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1wcmltYXJ5KSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHJpbWFyeSB7XFxuICBiYWNrZ3JvdW5kOiAjMDI3YmUzICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLXByaW1hcnkpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXNlY29uZGFyeSB7XFxuICBjb2xvcjogIzI2YTY5YSAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xcbn1cXG4uYmctc2Vjb25kYXJ5IHtcXG4gIGJhY2tncm91bmQ6ICMyNmE2OWEgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZXJ0aWFyeSB7XFxuICBjb2xvcjogIzU1NSAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItdGVydGlhcnkpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZXJ0aWFyeSB7XFxuICBiYWNrZ3JvdW5kOiAjNTU1ICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLXRlcnRpYXJ5KSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1mYWRlZCB7XFxuICBjb2xvcjogIzc3NyAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItZmFkZWQpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1mYWRlZCB7XFxuICBiYWNrZ3JvdW5kOiAjNzc3ICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLWZhZGVkKSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wb3NpdGl2ZSB7XFxuICBjb2xvcjogIzIxYmE0NSAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItcG9zaXRpdmUpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wb3NpdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiAjMjFiYTQ1ICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLXBvc2l0aXZlKSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1uZWdhdGl2ZSB7XFxuICBjb2xvcjogI2RiMjgyOCAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1uZWdhdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiAjZGIyODI4ICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmZvIHtcXG4gIGNvbG9yOiAjMzFjY2VjICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1pbmZvKSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5mbyB7XFxuICBiYWNrZ3JvdW5kOiAjMzFjY2VjICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLWluZm8pICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXdhcm5pbmcge1xcbiAgY29sb3I6ICNmMmMwMzcgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXdhcm5pbmcpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy13YXJuaW5nIHtcXG4gIGJhY2tncm91bmQ6ICNmMmMwMzcgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3Itd2FybmluZykgIWltcG9ydGFudDtcXG59XFxuLnRleHQtd2hpdGUge1xcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLXdoaXRlIHtcXG4gIGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmxhY2sge1xcbiAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsYWNrIHtcXG4gIGJhY2tncm91bmQ6ICMwMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQge1xcbiAgY29sb3I6ICNiZGJkYmQgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWxpZ2h0KSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQge1xcbiAgYmFja2dyb3VuZDogI2JkYmRiZCAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1saWdodCkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGFyayB7XFxuICBjb2xvcjogIzQyNDI0MiAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItZGFyaykgIWltcG9ydGFudDtcXG59XFxuLmJnLWRhcmsge1xcbiAgYmFja2dyb3VuZDogIzQyNDI0MiAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1kYXJrKSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10cmFuc3BhcmVudCB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG59XFxuLmJnLXRyYW5zcGFyZW50IHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZCB7XFxuICBjb2xvcjogI2Y0NDMzNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMSB7XFxuICBjb2xvcjogI2ZmZWJlZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMiB7XFxuICBjb2xvcjogI2ZmY2RkMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMyB7XFxuICBjb2xvcjogI2VmOWE5YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtNCB7XFxuICBjb2xvcjogI2U1NzM3MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtNSB7XFxuICBjb2xvcjogI2VmNTM1MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtNiB7XFxuICBjb2xvcjogI2Y0NDMzNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtNyB7XFxuICBjb2xvcjogI2U1MzkzNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtOCB7XFxuICBjb2xvcjogI2QzMmYyZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtOSB7XFxuICBjb2xvcjogI2M2MjgyOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMTAge1xcbiAgY29sb3I6ICNiNzFjMWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTExIHtcXG4gIGNvbG9yOiAjZmY4YTgwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0xMiB7XFxuICBjb2xvcjogI2ZmNTI1MiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMTMge1xcbiAgY29sb3I6ICNmZjE3NDQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTE0IHtcXG4gIGNvbG9yOiAjZDUwMDAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmsge1xcbiAgY29sb3I6ICNlOTFlNjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0xIHtcXG4gIGNvbG9yOiAjZmNlNGVjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMiB7XFxuICBjb2xvcjogI2Y4YmJkMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTMge1xcbiAgY29sb3I6ICNmNDhmYjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay00IHtcXG4gIGNvbG9yOiAjZjA2MjkyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstNSB7XFxuICBjb2xvcjogI2VjNDA3YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTYge1xcbiAgY29sb3I6ICNlOTFlNjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay03IHtcXG4gIGNvbG9yOiAjZDgxYjYwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstOCB7XFxuICBjb2xvcjogI2MyMTg1YiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTkge1xcbiAgY29sb3I6ICNhZDE0NTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0xMCB7XFxuICBjb2xvcjogIzg4MGU0ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTExIHtcXG4gIGNvbG9yOiAjZmY4MGFiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMTIge1xcbiAgY29sb3I6ICNmZjQwODEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0xMyB7XFxuICBjb2xvcjogI2Y1MDA1NyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTE0IHtcXG4gIGNvbG9yOiAjYzUxMTYyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZSB7XFxuICBjb2xvcjogIzljMjdiMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMSB7XFxuICBjb2xvcjogI2YzZTVmNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMiB7XFxuICBjb2xvcjogI2UxYmVlNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMyB7XFxuICBjb2xvcjogI2NlOTNkOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtNCB7XFxuICBjb2xvcjogI2JhNjhjOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtNSB7XFxuICBjb2xvcjogI2FiNDdiYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtNiB7XFxuICBjb2xvcjogIzljMjdiMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtNyB7XFxuICBjb2xvcjogIzhlMjRhYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtOCB7XFxuICBjb2xvcjogIzdiMWZhMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtOSB7XFxuICBjb2xvcjogIzZhMWI5YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMTAge1xcbiAgY29sb3I6ICM0YTE0OGMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTExIHtcXG4gIGNvbG9yOiAjZWE4MGZjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0xMiB7XFxuICBjb2xvcjogI2UwNDBmYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMTMge1xcbiAgY29sb3I6ICNkNTAwZjkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTE0IHtcXG4gIGNvbG9yOiAjYTBmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlIHtcXG4gIGNvbG9yOiAjNjczYWI3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTEge1xcbiAgY29sb3I6ICNlZGU3ZjYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMiB7XFxuICBjb2xvcjogI2QxYzRlOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0zIHtcXG4gIGNvbG9yOiAjYjM5ZGRiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTQge1xcbiAgY29sb3I6ICM5NTc1Y2QgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtNSB7XFxuICBjb2xvcjogIzdlNTdjMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS02IHtcXG4gIGNvbG9yOiAjNjczYWI3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTcge1xcbiAgY29sb3I6ICM1ZTM1YjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtOCB7XFxuICBjb2xvcjogIzUxMmRhOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS05IHtcXG4gIGNvbG9yOiAjNDUyN2EwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTEwIHtcXG4gIGNvbG9yOiAjMzExYjkyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTExIHtcXG4gIGNvbG9yOiAjYjM4OGZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTEyIHtcXG4gIGNvbG9yOiAjN2M0ZGZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTEzIHtcXG4gIGNvbG9yOiAjNjUxZmZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTE0IHtcXG4gIGNvbG9yOiAjNjIwMGVhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnbyB7XFxuICBjb2xvcjogIzNmNTFiNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMSB7XFxuICBjb2xvcjogI2U4ZWFmNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMiB7XFxuICBjb2xvcjogI2M1Y2FlOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMyB7XFxuICBjb2xvcjogIzlmYThkYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tNCB7XFxuICBjb2xvcjogIzc5ODZjYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tNSB7XFxuICBjb2xvcjogIzVjNmJjMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tNiB7XFxuICBjb2xvcjogIzNmNTFiNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tNyB7XFxuICBjb2xvcjogIzM5NDlhYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tOCB7XFxuICBjb2xvcjogIzMwM2Y5ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tOSB7XFxuICBjb2xvcjogIzI4MzU5MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMTAge1xcbiAgY29sb3I6ICMxYTIzN2UgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTExIHtcXG4gIGNvbG9yOiAjOGM5ZWZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0xMiB7XFxuICBjb2xvcjogIzUzNmRmZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMTMge1xcbiAgY29sb3I6ICMzZDVhZmUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTE0IHtcXG4gIGNvbG9yOiAjMzA0ZmZlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUge1xcbiAgY29sb3I6ICMyMTk2ZjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0xIHtcXG4gIGNvbG9yOiAjZTNmMmZkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMiB7XFxuICBjb2xvcjogI2JiZGVmYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTMge1xcbiAgY29sb3I6ICM5MGNhZjkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS00IHtcXG4gIGNvbG9yOiAjNjRiNWY2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtNSB7XFxuICBjb2xvcjogIzQyYTVmNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTYge1xcbiAgY29sb3I6ICMyMTk2ZjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS03IHtcXG4gIGNvbG9yOiAjMWU4OGU1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtOCB7XFxuICBjb2xvcjogIzE5NzZkMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTkge1xcbiAgY29sb3I6ICMxNTY1YzAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0xMCB7XFxuICBjb2xvcjogIzBkNDdhMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTExIHtcXG4gIGNvbG9yOiAjODJiMWZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMTIge1xcbiAgY29sb3I6ICM0NDhhZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0xMyB7XFxuICBjb2xvcjogIzI5NzlmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTE0IHtcXG4gIGNvbG9yOiAjMjk2MmZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUge1xcbiAgY29sb3I6ICMwM2E5ZjQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0xIHtcXG4gIGNvbG9yOiAjZTFmNWZlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMiB7XFxuICBjb2xvcjogI2IzZTVmYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTMge1xcbiAgY29sb3I6ICM4MWQ0ZmEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS00IHtcXG4gIGNvbG9yOiAjNGZjM2Y3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtNSB7XFxuICBjb2xvcjogIzI5YjZmNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTYge1xcbiAgY29sb3I6ICMwM2E5ZjQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS03IHtcXG4gIGNvbG9yOiAjMDM5YmU1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtOCB7XFxuICBjb2xvcjogIzAyODhkMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTkge1xcbiAgY29sb3I6ICMwMjc3YmQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0xMCB7XFxuICBjb2xvcjogIzAxNTc5YiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTExIHtcXG4gIGNvbG9yOiAjODBkOGZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMTIge1xcbiAgY29sb3I6ICM0MGM0ZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0xMyB7XFxuICBjb2xvcjogIzAwYjBmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTE0IHtcXG4gIGNvbG9yOiAjMDA5MWVhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4ge1xcbiAgY29sb3I6ICMwMGJjZDQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0xIHtcXG4gIGNvbG9yOiAjZTBmN2ZhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMiB7XFxuICBjb2xvcjogI2IyZWJmMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTMge1xcbiAgY29sb3I6ICM4MGRlZWEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi00IHtcXG4gIGNvbG9yOiAjNGRkMGUxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tNSB7XFxuICBjb2xvcjogIzI2YzZkYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTYge1xcbiAgY29sb3I6ICMwMGJjZDQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi03IHtcXG4gIGNvbG9yOiAjMDBhY2MxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tOCB7XFxuICBjb2xvcjogIzAwOTdhNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTkge1xcbiAgY29sb3I6ICMwMDgzOGYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0xMCB7XFxuICBjb2xvcjogIzAwNjA2NCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTExIHtcXG4gIGNvbG9yOiAjODRmZmZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMTIge1xcbiAgY29sb3I6ICMxOGZmZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0xMyB7XFxuICBjb2xvcjogIzAwZTVmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTE0IHtcXG4gIGNvbG9yOiAjMDBiOGQ0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwge1xcbiAgY29sb3I6ICMwMDk2ODggIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0xIHtcXG4gIGNvbG9yOiAjZTBmMmYxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMiB7XFxuICBjb2xvcjogI2IyZGZkYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTMge1xcbiAgY29sb3I6ICM4MGNiYzQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC00IHtcXG4gIGNvbG9yOiAjNGRiNmFjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtNSB7XFxuICBjb2xvcjogIzI2YTY5YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTYge1xcbiAgY29sb3I6ICMwMDk2ODggIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC03IHtcXG4gIGNvbG9yOiAjMDA4OTdiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtOCB7XFxuICBjb2xvcjogIzAwNzk2YiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTkge1xcbiAgY29sb3I6ICMwMDY5NWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0xMCB7XFxuICBjb2xvcjogIzAwNGQ0MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTExIHtcXG4gIGNvbG9yOiAjYTdmZmViICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMTIge1xcbiAgY29sb3I6ICM2NGZmZGEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0xMyB7XFxuICBjb2xvcjogIzFkZTliNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTE0IHtcXG4gIGNvbG9yOiAjMDBiZmE1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuIHtcXG4gIGNvbG9yOiAjNGNhZjUwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTEge1xcbiAgY29sb3I6ICNlOGY1ZTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMiB7XFxuICBjb2xvcjogI2M4ZTZjOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0zIHtcXG4gIGNvbG9yOiAjYTVkNmE3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTQge1xcbiAgY29sb3I6ICM4MWM3ODQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tNSB7XFxuICBjb2xvcjogIzY2YmI2YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi02IHtcXG4gIGNvbG9yOiAjNGNhZjUwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTcge1xcbiAgY29sb3I6ICM0M2EwNDcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tOCB7XFxuICBjb2xvcjogIzM4OGUzYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi05IHtcXG4gIGNvbG9yOiAjMmU3ZDMyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTEwIHtcXG4gIGNvbG9yOiAjMWI1ZTIwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTExIHtcXG4gIGNvbG9yOiAjYjlmNmNhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTEyIHtcXG4gIGNvbG9yOiAjNjlmMGFlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTEzIHtcXG4gIGNvbG9yOiAjMDBlNjc2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTE0IHtcXG4gIGNvbG9yOiAjMDBjODUzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuIHtcXG4gIGNvbG9yOiAjOGJjMzRhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTEge1xcbiAgY29sb3I6ICNmMWY4ZTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMiB7XFxuICBjb2xvcjogI2RjZWRjOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0zIHtcXG4gIGNvbG9yOiAjYzVlMWE1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTQge1xcbiAgY29sb3I6ICNhZWQ1ODEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tNSB7XFxuICBjb2xvcjogIzljY2M2NSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi02IHtcXG4gIGNvbG9yOiAjOGJjMzRhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTcge1xcbiAgY29sb3I6ICM3Y2IzNDIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tOCB7XFxuICBjb2xvcjogIzY4OWYzOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi05IHtcXG4gIGNvbG9yOiAjNTU4YjJmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTEwIHtcXG4gIGNvbG9yOiAjMzM2OTFlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTExIHtcXG4gIGNvbG9yOiAjY2NmZjkwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTEyIHtcXG4gIGNvbG9yOiAjYjJmZjU5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTEzIHtcXG4gIGNvbG9yOiAjNzZmZjAzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTE0IHtcXG4gIGNvbG9yOiAjNjRkZDE3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUge1xcbiAgY29sb3I6ICNjZGRjMzkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0xIHtcXG4gIGNvbG9yOiAjZjlmYmU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMiB7XFxuICBjb2xvcjogI2YwZjRjMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTMge1xcbiAgY29sb3I6ICNlNmVlOWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS00IHtcXG4gIGNvbG9yOiAjZGNlNzc1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtNSB7XFxuICBjb2xvcjogI2Q0ZTE1NyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTYge1xcbiAgY29sb3I6ICNjZGRjMzkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS03IHtcXG4gIGNvbG9yOiAjYzBjYTMzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtOCB7XFxuICBjb2xvcjogI2FmYjQyYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTkge1xcbiAgY29sb3I6ICM5ZTlkMjQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0xMCB7XFxuICBjb2xvcjogIzgyNzcxNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTExIHtcXG4gIGNvbG9yOiAjZjRmZjgxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMTIge1xcbiAgY29sb3I6ICNlZWZmNDEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0xMyB7XFxuICBjb2xvcjogI2M2ZmYwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTE0IHtcXG4gIGNvbG9yOiAjYWVlYTAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdyB7XFxuICBjb2xvcjogI2ZmZWIzYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMSB7XFxuICBjb2xvcjogI2ZmZmRlNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMiB7XFxuICBjb2xvcjogI2ZmZjljNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMyB7XFxuICBjb2xvcjogI2ZmZjU5ZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctNCB7XFxuICBjb2xvcjogI2ZmZjE3NiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctNSB7XFxuICBjb2xvcjogI2ZmZWU1OCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctNiB7XFxuICBjb2xvcjogI2ZmZWIzYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctNyB7XFxuICBjb2xvcjogI2ZkZDgzNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctOCB7XFxuICBjb2xvcjogI2ZiYzAyZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctOSB7XFxuICBjb2xvcjogI2Y5YTgyNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMTAge1xcbiAgY29sb3I6ICNmNTdmMTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTExIHtcXG4gIGNvbG9yOiAjZmZmZjhkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0xMiB7XFxuICBjb2xvcjogI2ZmMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMTMge1xcbiAgY29sb3I6ICNmZmVhMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTE0IHtcXG4gIGNvbG9yOiAjZmZkNjAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyIHtcXG4gIGNvbG9yOiAjZmZjMTA3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTEge1xcbiAgY29sb3I6ICNmZmY4ZTEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMiB7XFxuICBjb2xvcjogI2ZmZWNiMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0zIHtcXG4gIGNvbG9yOiAjZmZlMDgyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTQge1xcbiAgY29sb3I6ICNmZmQ1NGYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItNSB7XFxuICBjb2xvcjogI2ZmY2EyOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci02IHtcXG4gIGNvbG9yOiAjZmZjMTA3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTcge1xcbiAgY29sb3I6ICNmZmIzMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItOCB7XFxuICBjb2xvcjogI2ZmYTAwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci05IHtcXG4gIGNvbG9yOiAjZmY4ZjAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTEwIHtcXG4gIGNvbG9yOiAjZmY2ZjAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTExIHtcXG4gIGNvbG9yOiAjZmZlNTdmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTEyIHtcXG4gIGNvbG9yOiAjZmZkNzQwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTEzIHtcXG4gIGNvbG9yOiAjZmZjNDAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTE0IHtcXG4gIGNvbG9yOiAjZmZhYjAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZSB7XFxuICBjb2xvcjogI2ZmOTgwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMSB7XFxuICBjb2xvcjogI2ZmZjNlMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMiB7XFxuICBjb2xvcjogI2ZmZTBiMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMyB7XFxuICBjb2xvcjogI2ZmY2M4MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtNCB7XFxuICBjb2xvcjogI2ZmYjc0ZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtNSB7XFxuICBjb2xvcjogI2ZmYTcyNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtNiB7XFxuICBjb2xvcjogI2ZmOTgwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtNyB7XFxuICBjb2xvcjogI2ZiOGMwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtOCB7XFxuICBjb2xvcjogI2Y1N2MwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtOSB7XFxuICBjb2xvcjogI2VmNmMwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMTAge1xcbiAgY29sb3I6ICNlNjUxMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTExIHtcXG4gIGNvbG9yOiAjZmZkMTgwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0xMiB7XFxuICBjb2xvcjogI2ZmYWI0MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMTMge1xcbiAgY29sb3I6ICNmZjkxMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTE0IHtcXG4gIGNvbG9yOiAjZmY2ZDAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlIHtcXG4gIGNvbG9yOiAjZmY1NzIyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTEge1xcbiAgY29sb3I6ICNmYmU5ZTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMiB7XFxuICBjb2xvcjogI2ZmY2NiYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0zIHtcXG4gIGNvbG9yOiAjZmZhYjkxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTQge1xcbiAgY29sb3I6ICNmZjhhNjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtNSB7XFxuICBjb2xvcjogI2ZmNzA0MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS02IHtcXG4gIGNvbG9yOiAjZmY1NzIyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTcge1xcbiAgY29sb3I6ICNmNDUxMWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtOCB7XFxuICBjb2xvcjogI2U2NGExOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS05IHtcXG4gIGNvbG9yOiAjZDg0MzE1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTEwIHtcXG4gIGNvbG9yOiAjYmYzNjBjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTExIHtcXG4gIGNvbG9yOiAjZmY5ZTgwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTEyIHtcXG4gIGNvbG9yOiAjZmY2ZTQwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTEzIHtcXG4gIGNvbG9yOiAjZmYzZDAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTE0IHtcXG4gIGNvbG9yOiAjZGQyYzAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duIHtcXG4gIGNvbG9yOiAjNzk1NTQ4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTEge1xcbiAgY29sb3I6ICNlZmViZTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMiB7XFxuICBjb2xvcjogI2Q3Y2NjOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0zIHtcXG4gIGNvbG9yOiAjYmNhYWE0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTQge1xcbiAgY29sb3I6ICNhMTg4N2YgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tNSB7XFxuICBjb2xvcjogIzhkNmU2MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi02IHtcXG4gIGNvbG9yOiAjNzk1NTQ4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTcge1xcbiAgY29sb3I6ICM2ZDRjNDEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tOCB7XFxuICBjb2xvcjogIzVkNDAzNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi05IHtcXG4gIGNvbG9yOiAjNGUzNDJlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTEwIHtcXG4gIGNvbG9yOiAjM2UyNzIzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTExIHtcXG4gIGNvbG9yOiAjZDdjY2M4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTEyIHtcXG4gIGNvbG9yOiAjYmNhYWE0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTEzIHtcXG4gIGNvbG9yOiAjOGQ2ZTYzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTE0IHtcXG4gIGNvbG9yOiAjNWQ0MDM3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXkge1xcbiAgY29sb3I6ICM5ZTllOWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0xIHtcXG4gIGNvbG9yOiAjZmFmYWZhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMiB7XFxuICBjb2xvcjogI2Y1ZjVmNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTMge1xcbiAgY29sb3I6ICNlZWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS00IHtcXG4gIGNvbG9yOiAjZTBlMGUwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktNSB7XFxuICBjb2xvcjogI2JkYmRiZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTYge1xcbiAgY29sb3I6ICM5ZTllOWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS03IHtcXG4gIGNvbG9yOiAjNzU3NTc1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktOCB7XFxuICBjb2xvcjogIzYxNjE2MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTkge1xcbiAgY29sb3I6ICM0MjQyNDIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0xMCB7XFxuICBjb2xvcjogIzIxMjEyMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTExIHtcXG4gIGNvbG9yOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMTIge1xcbiAgY29sb3I6ICNlZWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0xMyB7XFxuICBjb2xvcjogI2JkYmRiZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTE0IHtcXG4gIGNvbG9yOiAjNjE2MTYxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleSB7XFxuICBjb2xvcjogIzYwN2Q4YiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMSB7XFxuICBjb2xvcjogI2VjZWZmMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMiB7XFxuICBjb2xvcjogI2NmZDhkYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMyB7XFxuICBjb2xvcjogI2IwYmVjNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktNCB7XFxuICBjb2xvcjogIzkwYTRhZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktNSB7XFxuICBjb2xvcjogIzc4OTA5YyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktNiB7XFxuICBjb2xvcjogIzYwN2Q4YiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktNyB7XFxuICBjb2xvcjogIzU0NmU3YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktOCB7XFxuICBjb2xvcjogIzQ1NWE2NCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktOSB7XFxuICBjb2xvcjogIzM3NDc0ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMTAge1xcbiAgY29sb3I6ICMyNjMyMzggIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTExIHtcXG4gIGNvbG9yOiAjY2ZkOGRjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0xMiB7XFxuICBjb2xvcjogI2IwYmVjNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMTMge1xcbiAgY29sb3I6ICM3ODkwOWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTE0IHtcXG4gIGNvbG9yOiAjNDU1YTY0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQge1xcbiAgYmFja2dyb3VuZDogI2Y0NDMzNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZWJlZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTIge1xcbiAgYmFja2dyb3VuZDogI2ZmY2RkMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTMge1xcbiAgYmFja2dyb3VuZDogI2VmOWE5YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTQge1xcbiAgYmFja2dyb3VuZDogI2U1NzM3MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTUge1xcbiAgYmFja2dyb3VuZDogI2VmNTM1MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTYge1xcbiAgYmFja2dyb3VuZDogI2Y0NDMzNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTcge1xcbiAgYmFja2dyb3VuZDogI2U1MzkzNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTgge1xcbiAgYmFja2dyb3VuZDogI2QzMmYyZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTkge1xcbiAgYmFja2dyb3VuZDogI2M2MjgyOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTEwIHtcXG4gIGJhY2tncm91bmQ6ICNiNzFjMWMgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY4YTgwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMTIge1xcbiAgYmFja2dyb3VuZDogI2ZmNTI1MiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNmZjE3NDQgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjZDUwMDAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rIHtcXG4gIGJhY2tncm91bmQ6ICNlOTFlNjMgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmNlNGVjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTIge1xcbiAgYmFja2dyb3VuZDogI2Y4YmJkMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0zIHtcXG4gIGJhY2tncm91bmQ6ICNmNDhmYjEgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstNCB7XFxuICBiYWNrZ3JvdW5kOiAjZjA2MjkyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTUge1xcbiAgYmFja2dyb3VuZDogI2VjNDA3YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay02IHtcXG4gIGJhY2tncm91bmQ6ICNlOTFlNjMgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstNyB7XFxuICBiYWNrZ3JvdW5kOiAjZDgxYjYwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTgge1xcbiAgYmFja2dyb3VuZDogI2MyMTg1YiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay05IHtcXG4gIGJhY2tncm91bmQ6ICNhZDE0NTcgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMTAge1xcbiAgYmFja2dyb3VuZDogIzg4MGU0ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY4MGFiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNmZjQwODEgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMTMge1xcbiAgYmFja2dyb3VuZDogI2Y1MDA1NyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjYzUxMTYyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUge1xcbiAgYmFja2dyb3VuZDogIzljMjdiMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTEge1xcbiAgYmFja2dyb3VuZDogI2YzZTVmNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTIge1xcbiAgYmFja2dyb3VuZDogI2UxYmVlNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTMge1xcbiAgYmFja2dyb3VuZDogI2NlOTNkOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTQge1xcbiAgYmFja2dyb3VuZDogI2JhNjhjOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTUge1xcbiAgYmFja2dyb3VuZDogI2FiNDdiYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTYge1xcbiAgYmFja2dyb3VuZDogIzljMjdiMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTcge1xcbiAgYmFja2dyb3VuZDogIzhlMjRhYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTgge1xcbiAgYmFja2dyb3VuZDogIzdiMWZhMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTkge1xcbiAgYmFja2dyb3VuZDogIzZhMWI5YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTEwIHtcXG4gIGJhY2tncm91bmQ6ICM0YTE0OGMgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZWE4MGZjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMTIge1xcbiAgYmFja2dyb3VuZDogI2UwNDBmYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNkNTAwZjkgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjYTBmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZSB7XFxuICBiYWNrZ3JvdW5kOiAjNjczYWI3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNlZGU3ZjYgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTIge1xcbiAgYmFja2dyb3VuZDogI2QxYzRlOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMyB7XFxuICBiYWNrZ3JvdW5kOiAjYjM5ZGRiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS00IHtcXG4gIGJhY2tncm91bmQ6ICM5NTc1Y2QgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTUge1xcbiAgYmFja2dyb3VuZDogIzdlNTdjMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtNiB7XFxuICBiYWNrZ3JvdW5kOiAjNjczYWI3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS03IHtcXG4gIGJhY2tncm91bmQ6ICM1ZTM1YjEgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTgge1xcbiAgYmFja2dyb3VuZDogIzUxMmRhOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtOSB7XFxuICBiYWNrZ3JvdW5kOiAjNDUyN2EwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMzExYjkyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjYjM4OGZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjN2M0ZGZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjNjUxZmZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjNjIwMGVhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28ge1xcbiAgYmFja2dyb3VuZDogIzNmNTFiNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTEge1xcbiAgYmFja2dyb3VuZDogI2U4ZWFmNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTIge1xcbiAgYmFja2dyb3VuZDogI2M1Y2FlOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTMge1xcbiAgYmFja2dyb3VuZDogIzlmYThkYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTQge1xcbiAgYmFja2dyb3VuZDogIzc5ODZjYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTUge1xcbiAgYmFja2dyb3VuZDogIzVjNmJjMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTYge1xcbiAgYmFja2dyb3VuZDogIzNmNTFiNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTcge1xcbiAgYmFja2dyb3VuZDogIzM5NDlhYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTgge1xcbiAgYmFja2dyb3VuZDogIzMwM2Y5ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTkge1xcbiAgYmFja2dyb3VuZDogIzI4MzU5MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMxYTIzN2UgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjOGM5ZWZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMTIge1xcbiAgYmFja2dyb3VuZDogIzUzNmRmZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTEzIHtcXG4gIGJhY2tncm91bmQ6ICMzZDVhZmUgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMzA0ZmZlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlIHtcXG4gIGJhY2tncm91bmQ6ICMyMTk2ZjMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZTNmMmZkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTIge1xcbiAgYmFja2dyb3VuZDogI2JiZGVmYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0zIHtcXG4gIGJhY2tncm91bmQ6ICM5MGNhZjkgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtNCB7XFxuICBiYWNrZ3JvdW5kOiAjNjRiNWY2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTUge1xcbiAgYmFja2dyb3VuZDogIzQyYTVmNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS02IHtcXG4gIGJhY2tncm91bmQ6ICMyMTk2ZjMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtNyB7XFxuICBiYWNrZ3JvdW5kOiAjMWU4OGU1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTgge1xcbiAgYmFja2dyb3VuZDogIzE5NzZkMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS05IHtcXG4gIGJhY2tncm91bmQ6ICMxNTY1YzAgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMTAge1xcbiAgYmFja2dyb3VuZDogIzBkNDdhMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjODJiMWZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTEyIHtcXG4gIGJhY2tncm91bmQ6ICM0NDhhZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMTMge1xcbiAgYmFja2dyb3VuZDogIzI5NzlmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMjk2MmZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlIHtcXG4gIGJhY2tncm91bmQ6ICMwM2E5ZjQgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZTFmNWZlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTIge1xcbiAgYmFja2dyb3VuZDogI2IzZTVmYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0zIHtcXG4gIGJhY2tncm91bmQ6ICM4MWQ0ZmEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtNCB7XFxuICBiYWNrZ3JvdW5kOiAjNGZjM2Y3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTUge1xcbiAgYmFja2dyb3VuZDogIzI5YjZmNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS02IHtcXG4gIGJhY2tncm91bmQ6ICMwM2E5ZjQgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtNyB7XFxuICBiYWNrZ3JvdW5kOiAjMDM5YmU1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTgge1xcbiAgYmFja2dyb3VuZDogIzAyODhkMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS05IHtcXG4gIGJhY2tncm91bmQ6ICMwMjc3YmQgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMTAge1xcbiAgYmFja2dyb3VuZDogIzAxNTc5YiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjODBkOGZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTEyIHtcXG4gIGJhY2tncm91bmQ6ICM0MGM0ZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMTMge1xcbiAgYmFja2dyb3VuZDogIzAwYjBmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMDA5MWVhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuIHtcXG4gIGJhY2tncm91bmQ6ICMwMGJjZDQgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMSB7XFxuICBiYWNrZ3JvdW5kOiAjZTBmN2ZhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTIge1xcbiAgYmFja2dyb3VuZDogI2IyZWJmMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0zIHtcXG4gIGJhY2tncm91bmQ6ICM4MGRlZWEgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tNCB7XFxuICBiYWNrZ3JvdW5kOiAjNGRkMGUxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTUge1xcbiAgYmFja2dyb3VuZDogIzI2YzZkYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi02IHtcXG4gIGJhY2tncm91bmQ6ICMwMGJjZDQgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tNyB7XFxuICBiYWNrZ3JvdW5kOiAjMDBhY2MxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTgge1xcbiAgYmFja2dyb3VuZDogIzAwOTdhNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi05IHtcXG4gIGJhY2tncm91bmQ6ICMwMDgzOGYgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMTAge1xcbiAgYmFja2dyb3VuZDogIzAwNjA2NCAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjODRmZmZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTEyIHtcXG4gIGJhY2tncm91bmQ6ICMxOGZmZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMTMge1xcbiAgYmFja2dyb3VuZDogIzAwZTVmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMDBiOGQ0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsIHtcXG4gIGJhY2tncm91bmQ6ICMwMDk2ODggIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZTBmMmYxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTIge1xcbiAgYmFja2dyb3VuZDogI2IyZGZkYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0zIHtcXG4gIGJhY2tncm91bmQ6ICM4MGNiYzQgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtNCB7XFxuICBiYWNrZ3JvdW5kOiAjNGRiNmFjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTUge1xcbiAgYmFja2dyb3VuZDogIzI2YTY5YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC02IHtcXG4gIGJhY2tncm91bmQ6ICMwMDk2ODggIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtNyB7XFxuICBiYWNrZ3JvdW5kOiAjMDA4OTdiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTgge1xcbiAgYmFja2dyb3VuZDogIzAwNzk2YiAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC05IHtcXG4gIGJhY2tncm91bmQ6ICMwMDY5NWMgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMTAge1xcbiAgYmFja2dyb3VuZDogIzAwNGQ0MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjYTdmZmViICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTEyIHtcXG4gIGJhY2tncm91bmQ6ICM2NGZmZGEgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMTMge1xcbiAgYmFja2dyb3VuZDogIzFkZTliNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMDBiZmE1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbiB7XFxuICBiYWNrZ3JvdW5kOiAjNGNhZjUwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xIHtcXG4gIGJhY2tncm91bmQ6ICNlOGY1ZTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTIge1xcbiAgYmFja2dyb3VuZDogI2M4ZTZjOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMyB7XFxuICBiYWNrZ3JvdW5kOiAjYTVkNmE3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi00IHtcXG4gIGJhY2tncm91bmQ6ICM4MWM3ODQgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTUge1xcbiAgYmFja2dyb3VuZDogIzY2YmI2YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tNiB7XFxuICBiYWNrZ3JvdW5kOiAjNGNhZjUwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi03IHtcXG4gIGJhY2tncm91bmQ6ICM0M2EwNDcgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTgge1xcbiAgYmFja2dyb3VuZDogIzM4OGUzYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tOSB7XFxuICBiYWNrZ3JvdW5kOiAjMmU3ZDMyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMWI1ZTIwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjYjlmNmNhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjNjlmMGFlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjMDBlNjc2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMDBjODUzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbiB7XFxuICBiYWNrZ3JvdW5kOiAjOGJjMzRhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xIHtcXG4gIGJhY2tncm91bmQ6ICNmMWY4ZTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTIge1xcbiAgYmFja2dyb3VuZDogI2RjZWRjOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMyB7XFxuICBiYWNrZ3JvdW5kOiAjYzVlMWE1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi00IHtcXG4gIGJhY2tncm91bmQ6ICNhZWQ1ODEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTUge1xcbiAgYmFja2dyb3VuZDogIzljY2M2NSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tNiB7XFxuICBiYWNrZ3JvdW5kOiAjOGJjMzRhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi03IHtcXG4gIGJhY2tncm91bmQ6ICM3Y2IzNDIgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTgge1xcbiAgYmFja2dyb3VuZDogIzY4OWYzOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tOSB7XFxuICBiYWNrZ3JvdW5kOiAjNTU4YjJmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMzM2OTFlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjY2NmZjkwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjYjJmZjU5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjNzZmZjAzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjNjRkZDE3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lIHtcXG4gIGJhY2tncm91bmQ6ICNjZGRjMzkgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZjlmYmU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTIge1xcbiAgYmFja2dyb3VuZDogI2YwZjRjMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0zIHtcXG4gIGJhY2tncm91bmQ6ICNlNmVlOWMgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtNCB7XFxuICBiYWNrZ3JvdW5kOiAjZGNlNzc1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTUge1xcbiAgYmFja2dyb3VuZDogI2Q0ZTE1NyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS02IHtcXG4gIGJhY2tncm91bmQ6ICNjZGRjMzkgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtNyB7XFxuICBiYWNrZ3JvdW5kOiAjYzBjYTMzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTgge1xcbiAgYmFja2dyb3VuZDogI2FmYjQyYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS05IHtcXG4gIGJhY2tncm91bmQ6ICM5ZTlkMjQgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMTAge1xcbiAgYmFja2dyb3VuZDogIzgyNzcxNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZjRmZjgxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNlZWZmNDEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMTMge1xcbiAgYmFja2dyb3VuZDogI2M2ZmYwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjYWVlYTAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3cge1xcbiAgYmFja2dyb3VuZDogI2ZmZWIzYiAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZmRlNyAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTIge1xcbiAgYmFja2dyb3VuZDogI2ZmZjljNCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTMge1xcbiAgYmFja2dyb3VuZDogI2ZmZjU5ZCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTQge1xcbiAgYmFja2dyb3VuZDogI2ZmZjE3NiAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTUge1xcbiAgYmFja2dyb3VuZDogI2ZmZWU1OCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTYge1xcbiAgYmFja2dyb3VuZDogI2ZmZWIzYiAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTcge1xcbiAgYmFja2dyb3VuZDogI2ZkZDgzNSAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTgge1xcbiAgYmFja2dyb3VuZDogI2ZiYzAyZCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTkge1xcbiAgYmFja2dyb3VuZDogI2Y5YTgyNSAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTEwIHtcXG4gIGJhY2tncm91bmQ6ICNmNTdmMTcgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmZjhkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMTIge1xcbiAgYmFja2dyb3VuZDogI2ZmMCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTEzIHtcXG4gIGJhY2tncm91bmQ6ICNmZmVhMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZkNjAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlciB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjMTA3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xIHtcXG4gIGJhY2tncm91bmQ6ICNmZmY4ZTEgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTIge1xcbiAgYmFja2dyb3VuZDogI2ZmZWNiMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlMDgyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci00IHtcXG4gIGJhY2tncm91bmQ6ICNmZmQ1NGYgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTUge1xcbiAgYmFja2dyb3VuZDogI2ZmY2EyOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItNiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjMTA3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci03IHtcXG4gIGJhY2tncm91bmQ6ICNmZmIzMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTgge1xcbiAgYmFja2dyb3VuZDogI2ZmYTAwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItOSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY4ZjAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjZmY2ZjAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlNTdmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZkNzQwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjNDAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZhYjAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2Uge1xcbiAgYmFja2dyb3VuZDogI2ZmOTgwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZjNlMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTIge1xcbiAgYmFja2dyb3VuZDogI2ZmZTBiMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTMge1xcbiAgYmFja2dyb3VuZDogI2ZmY2M4MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTQge1xcbiAgYmFja2dyb3VuZDogI2ZmYjc0ZCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTUge1xcbiAgYmFja2dyb3VuZDogI2ZmYTcyNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTYge1xcbiAgYmFja2dyb3VuZDogI2ZmOTgwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTcge1xcbiAgYmFja2dyb3VuZDogI2ZiOGMwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTgge1xcbiAgYmFja2dyb3VuZDogI2Y1N2MwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTkge1xcbiAgYmFja2dyb3VuZDogI2VmNmMwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTEwIHtcXG4gIGJhY2tncm91bmQ6ICNlNjUxMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZkMTgwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMTIge1xcbiAgYmFja2dyb3VuZDogI2ZmYWI0MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNmZjkxMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmY2ZDAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY1NzIyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNmYmU5ZTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTIge1xcbiAgYmFja2dyb3VuZDogI2ZmY2NiYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZhYjkxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS00IHtcXG4gIGJhY2tncm91bmQ6ICNmZjhhNjUgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTUge1xcbiAgYmFja2dyb3VuZDogI2ZmNzA0MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtNiB7XFxuICBiYWNrZ3JvdW5kOiAjZmY1NzIyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS03IHtcXG4gIGJhY2tncm91bmQ6ICNmNDUxMWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTgge1xcbiAgYmFja2dyb3VuZDogI2U2NGExOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtOSB7XFxuICBiYWNrZ3JvdW5kOiAjZDg0MzE1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjYmYzNjBjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY5ZTgwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmY2ZTQwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmYzZDAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjZGQyYzAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93biB7XFxuICBiYWNrZ3JvdW5kOiAjNzk1NTQ4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xIHtcXG4gIGJhY2tncm91bmQ6ICNlZmViZTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTIge1xcbiAgYmFja2dyb3VuZDogI2Q3Y2NjOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMyB7XFxuICBiYWNrZ3JvdW5kOiAjYmNhYWE0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi00IHtcXG4gIGJhY2tncm91bmQ6ICNhMTg4N2YgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTUge1xcbiAgYmFja2dyb3VuZDogIzhkNmU2MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tNiB7XFxuICBiYWNrZ3JvdW5kOiAjNzk1NTQ4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi03IHtcXG4gIGJhY2tncm91bmQ6ICM2ZDRjNDEgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTgge1xcbiAgYmFja2dyb3VuZDogIzVkNDAzNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tOSB7XFxuICBiYWNrZ3JvdW5kOiAjNGUzNDJlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjM2UyNzIzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZDdjY2M4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjYmNhYWE0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjOGQ2ZTYzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjNWQ0MDM3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5IHtcXG4gIGJhY2tncm91bmQ6ICM5ZTllOWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmFmYWZhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTIge1xcbiAgYmFja2dyb3VuZDogI2Y1ZjVmNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0zIHtcXG4gIGJhY2tncm91bmQ6ICNlZWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktNCB7XFxuICBiYWNrZ3JvdW5kOiAjZTBlMGUwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTUge1xcbiAgYmFja2dyb3VuZDogI2JkYmRiZCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS02IHtcXG4gIGJhY2tncm91bmQ6ICM5ZTllOWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktNyB7XFxuICBiYWNrZ3JvdW5kOiAjNzU3NTc1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTgge1xcbiAgYmFja2dyb3VuZDogIzYxNjE2MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS05IHtcXG4gIGJhY2tncm91bmQ6ICM0MjQyNDIgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMTAge1xcbiAgYmFja2dyb3VuZDogIzIxMjEyMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTEyIHtcXG4gIGJhY2tncm91bmQ6ICNlZWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMTMge1xcbiAgYmFja2dyb3VuZDogI2JkYmRiZCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjNjE2MTYxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXkge1xcbiAgYmFja2dyb3VuZDogIzYwN2Q4YiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTEge1xcbiAgYmFja2dyb3VuZDogI2VjZWZmMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTIge1xcbiAgYmFja2dyb3VuZDogI2NmZDhkYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTMge1xcbiAgYmFja2dyb3VuZDogI2IwYmVjNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTQge1xcbiAgYmFja2dyb3VuZDogIzkwYTRhZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTUge1xcbiAgYmFja2dyb3VuZDogIzc4OTA5YyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTYge1xcbiAgYmFja2dyb3VuZDogIzYwN2Q4YiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTcge1xcbiAgYmFja2dyb3VuZDogIzU0NmU3YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTgge1xcbiAgYmFja2dyb3VuZDogIzQ1NWE2NCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTkge1xcbiAgYmFja2dyb3VuZDogIzM3NDc0ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTEwIHtcXG4gIGJhY2tncm91bmQ6ICMyNjMyMzggIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjY2ZkOGRjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMTIge1xcbiAgYmFja2dyb3VuZDogI2IwYmVjNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTEzIHtcXG4gIGJhY2tncm91bmQ6ICM3ODkwOWMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjNDU1YTY0ICFpbXBvcnRhbnQ7XFxufVxcbi5zaGFkb3ctdHJhbnNpdGlvbiB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtYm94LXNoYWRvdyAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7XFxuICB0cmFuc2l0aW9uOiAtd2Via2l0LWJveC1zaGFkb3cgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50O1xcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7XFxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIC13ZWJraXQtYm94LXNoYWRvdyAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7XFxufVxcbi5zaGFkb3ctMSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgLTFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0ycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0zIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAzcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTMge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgLTNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctNCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA0cHggNXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDEwcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDRweCA1cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMTBweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0ycHggNHB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIC00cHggNXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTFweCAxMHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTJweCA0cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgLTRweCA1cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMXB4IDEwcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy01IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDVweCA4cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMTRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNXB4IDhweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtNSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgLTVweCA4cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMXB4IDE0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtNXB4IDhweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0xcHggMTRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTYge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNnB4IDEwcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMThweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNnB4IDEwcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMThweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTYge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0zcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIC02cHggMTBweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0xcHggMThweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0zcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIC02cHggMTBweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0xcHggMThweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTcge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDRweCA1cHggLTJweCByZ2JhKDAsMCwwLDAuMiksIDAgN3B4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDE2cHggMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDVweCAtMnB4IHJnYmEoMCwwLDAsMC4yKSwgMCA3cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMTZweCAxcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC03IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtNHB4IDVweCAtMnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtN3B4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTJweCAxNnB4IDFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC00cHggNXB4IC0ycHggcmdiYSgwLDAsMCwwLjIpLCAwIC03cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMnB4IDE2cHggMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctOCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCA4cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMTRweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA1cHggNXB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDhweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTgge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC01cHggNXB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIC04cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgLThweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggMTRweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy05IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDlweCAxMnB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxNnB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDVweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgOXB4IDEycHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDE2cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtOSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTVweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgLTlweCAxMnB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggMTZweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtNXB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtOXB4IDEycHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAxNnB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTEwIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA2cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDEwcHggMTRweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA0cHggMThweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA2cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDEwcHggMTRweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA0cHggMThweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xMCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTZweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEwcHggMTRweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNHB4IDE4cHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTZweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEwcHggMTRweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNHB4IDE4cHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTEge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDZweCA3cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTFweCAxNXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDRweCAyMHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDZweCA3cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTFweCAxNXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDRweCAyMHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTExIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtNnB4IDdweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTFweCAxNXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC00cHggMjBweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtNnB4IDdweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTFweCAxNXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC00cHggMjBweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxMnB4IDE3cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNXB4IDIycHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxMnB4IDE3cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNXB4IDIycHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC03cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xMnB4IDE3cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTVweCAyMnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC03cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xMnB4IDE3cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTVweCAyMnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTEzIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA3cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDEzcHggMTlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA1cHggMjRweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA3cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDEzcHggMTlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA1cHggMjRweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xMyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEzcHggMTlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNXB4IDI0cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEzcHggMTlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNXB4IDI0cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDdweCA5cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTRweCAyMXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDVweCAyNnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDdweCA5cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTRweCAyMXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDVweCAyNnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTE0IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtN3B4IDlweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTRweCAyMXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC01cHggMjZweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtN3B4IDlweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTRweCAyMXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC01cHggMjZweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xNSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgOHB4IDlweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNXB4IDIycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDI4cHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDlweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNXB4IDIycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDI4cHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC04cHggOXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xNXB4IDIycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTZweCAyOHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC04cHggOXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xNXB4IDIycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTZweCAyOHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTE2IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA4cHggMTBweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNnB4IDI0cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDMwcHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDEwcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMTZweCAyNHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDZweCAzMHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTE2IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtOHB4IDEwcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE2cHggMjRweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDMwcHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLThweCAxMHB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xNnB4IDI0cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTZweCAzMHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTE3IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA4cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxN3B4IDI2cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDMycHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMTdweCAyNnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDZweCAzMnB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTE3IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtOHB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE3cHggMjZweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDMycHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLThweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xN3B4IDI2cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTZweCAzMnB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTE4IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA5cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxOHB4IDI4cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgN3B4IDM0cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgOXB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMThweCAyOHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDdweCAzNHB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTE4IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtOXB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE4cHggMjhweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtN3B4IDM0cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTlweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xOHB4IDI4cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTdweCAzNHB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTE5IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA5cHggMTJweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxOXB4IDI5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgN3B4IDM2cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgOXB4IDEycHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMTlweCAyOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDdweCAzNnB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTE5IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtOXB4IDEycHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE5cHggMjlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtN3B4IDM2cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTlweCAxMnB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xOXB4IDI5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTdweCAzNnB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTIwIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMjBweCAzMXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDhweCAzOHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAyMHB4IDMxcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOHB4IDM4cHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMjAge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIwcHggMzFweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOHB4IDM4cHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjBweCAzMXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC04cHggMzhweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0yMSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIxcHggMzNweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA4cHggNDBweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMjFweCAzM3B4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDhweCA0MHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTIxIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yMXB4IDMzcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLThweCA0MHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIxcHggMzNweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOHB4IDQwcHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMjIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDEwcHggMTRweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAyMnB4IDM1cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOHB4IDQycHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAxNHB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIycHggMzVweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA4cHggNDJweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0yMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTEwcHggMTRweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjJweCAzNXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC04cHggNDJweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMTBweCAxNHB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yMnB4IDM1cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLThweCA0MnB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTIzIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxMXB4IDE0cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgMjNweCAzNnB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDlweCA0NHB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDExcHggMTRweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAyM3B4IDM2cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOXB4IDQ0cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMjMge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xMXB4IDE0cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIzcHggMzZweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOXB4IDQ0cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTExcHggMTRweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjNweCAzNnB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC05cHggNDRweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0yNCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTFweCAxNXB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIDI0cHggMzhweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA5cHggNDZweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMXB4IDE1cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgMjRweCAzOHB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDlweCA0NnB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTI0IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMTFweCAxNXB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yNHB4IDM4cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTlweCA0NnB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xMXB4IDE1cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgLTI0cHggMzhweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOXB4IDQ2cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5uby1zaGFkb3csXFxuLnNoYWRvdy0wIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5pbnNldC1zaGFkb3cge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDdweCA5cHggLTdweCByZ2JhKDAsMCwwLDAuNykgaW5zZXQgIWltcG9ydGFudDtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA3cHggOXB4IC03cHggcmdiYSgwLDAsMCwwLjcpIGluc2V0ICFpbXBvcnRhbnQ7XFxufVxcbi56LW1hcmdpbmFscyB7XFxuICB6LWluZGV4OiAyMDAwO1xcbn1cXG4uei1ub3RpZnkge1xcbiAgei1pbmRleDogOTUwMDtcXG59XFxuLnotZnVsbHNjcmVlbiB7XFxuICB6LWluZGV4OiA2MDAwO1xcbn1cXG4uei1pbmhlcml0IHtcXG4gIHotaW5kZXg6IGluaGVyaXQgIWltcG9ydGFudDtcXG59XFxuLnJvdyxcXG4uY29sdW1uLFxcbi5mbGV4IHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLW1zLWZsZXgtd3JhcDogd3JhcDtcXG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcbi5yb3cuaW5saW5lLFxcbi5jb2x1bW4uaW5saW5lLFxcbi5mbGV4LmlubGluZSB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG59XFxuLnJvdy5yZXZlcnNlIHtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XFxufVxcbi5jb2x1bW4ge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbn1cXG4uY29sdW1uLnJldmVyc2Uge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XFxufVxcbi53cmFwIHtcXG4gIC1tcy1mbGV4LXdyYXA6IHdyYXA7XFxuICAgICAgZmxleC13cmFwOiB3cmFwO1xcbn1cXG4ubm8td3JhcCB7XFxuICAtbXMtZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgZmxleC13cmFwOiBub3dyYXA7XFxufVxcbi5yZXZlcnNlLXdyYXAge1xcbiAgLW1zLWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlO1xcbiAgICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlO1xcbn1cXG4ub3JkZXItZmlyc3Qge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogLTk5OTk7XFxuICAgICAgLW1zLWZsZXgtb3JkZXI6IC0xMDAwMDtcXG4gICAgICAgICAgb3JkZXI6IC0xMDAwMDtcXG59XFxuLm9yZGVyLWxhc3Qge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMTAwMDE7XFxuICAgICAgLW1zLWZsZXgtb3JkZXI6IDEwMDAwO1xcbiAgICAgICAgICBvcmRlcjogMTAwMDA7XFxufVxcbi5vcmRlci1ub25lIHtcXG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDE7XFxuICAgICAgLW1zLWZsZXgtb3JkZXI6IDA7XFxuICAgICAgICAgIG9yZGVyOiAwO1xcbn1cXG4uanVzdGlmeS1zdGFydCB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBzdGFydDtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBzdGFydDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xcbn1cXG4uanVzdGlmeS1lbmQge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogZW5kO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG59XFxuLmp1c3RpZnktY2VudGVyLFxcbi5mbGV4LWNlbnRlciB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuLmp1c3RpZnktYmV0d2VlbiB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5O1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG59XFxuLmp1c3RpZnktYXJvdW5kIHtcXG4gIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGU7XFxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XFxufVxcbi5pdGVtcy1zdGFydCB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG59XFxuLml0ZW1zLWVuZCB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogZW5kO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcXG59XFxuLml0ZW1zLWNlbnRlcixcXG4uZmxleC1jZW50ZXIge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4uaXRlbXMtYmFzZWxpbmUge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGJhc2VsaW5lO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBiYXNlbGluZTtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xcbn1cXG4uaXRlbXMtc3RyZXRjaCB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XFxufVxcbi5jb250ZW50LXN0YXJ0IHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQ7XFxuICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcXG59XFxuLmNvbnRlbnQtZW5kIHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogZW5kO1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kO1xcbn1cXG4uY29udGVudC1jZW50ZXIge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBjZW50ZXI7XFxuICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xcbn1cXG4uY29udGVudC1zdHJldGNoIHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogc3RyZXRjaDtcXG4gICAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoO1xcbn1cXG4uY29udGVudC1iZXR3ZWVuIHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazoganVzdGlmeTtcXG4gICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbn1cXG4uY29udGVudC1hcm91bmQge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBkaXN0cmlidXRlO1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcXG59XFxuLnNlbGYtc3RhcnQge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RhcnQ7XFxuICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcXG59XFxuLnNlbGYtZW5kIHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZDtcXG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcXG59XFxuLnNlbGYtY2VudGVyIHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjtcXG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XFxufVxcbi5zZWxmLWJhc2VsaW5lIHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGJhc2VsaW5lO1xcbiAgICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lO1xcbn1cXG4uc2VsZi1zdHJldGNoIHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0cmV0Y2g7XFxuICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcXG59XFxuLmd1dHRlci14LW5vbmUsXFxuLmd1dHRlci1ub25lIHtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbn1cXG4uZ3V0dGVyLXgtbm9uZSA+IGRpdixcXG4uZ3V0dGVyLW5vbmUgPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiAwO1xcbn1cXG4uZ3V0dGVyLXktbm9uZSxcXG4uZ3V0dGVyLW5vbmUge1xcbiAgbWFyZ2luLXRvcDogMDtcXG59XFxuLmd1dHRlci15LW5vbmUgPiBkaXYsXFxuLmd1dHRlci1ub25lID4gZGl2IHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4uZ3V0dGVyLXgteHMsXFxuLmd1dHRlci14cyB7XFxuICBtYXJnaW4tbGVmdDogLThweDtcXG59XFxuLmd1dHRlci14LXhzID4gZGl2LFxcbi5ndXR0ZXIteHMgPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XFxufVxcbi5ndXR0ZXIteS14cyxcXG4uZ3V0dGVyLXhzIHtcXG4gIG1hcmdpbi10b3A6IC04cHg7XFxufVxcbi5ndXR0ZXIteS14cyA+IGRpdixcXG4uZ3V0dGVyLXhzID4gZGl2IHtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxufVxcbi5ndXR0ZXIteC1zbSxcXG4uZ3V0dGVyLXNtIHtcXG4gIG1hcmdpbi1sZWZ0OiAtMTZweDtcXG59XFxuLmd1dHRlci14LXNtID4gZGl2LFxcbi5ndXR0ZXItc20gPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xcbn1cXG4uZ3V0dGVyLXktc20sXFxuLmd1dHRlci1zbSB7XFxuICBtYXJnaW4tdG9wOiAtMTZweDtcXG59XFxuLmd1dHRlci15LXNtID4gZGl2LFxcbi5ndXR0ZXItc20gPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDE2cHg7XFxufVxcbi5ndXR0ZXIteC1tZCxcXG4uZ3V0dGVyLW1kIHtcXG4gIG1hcmdpbi1sZWZ0OiAtMzJweDtcXG59XFxuLmd1dHRlci14LW1kID4gZGl2LFxcbi5ndXR0ZXItbWQgPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xcbn1cXG4uZ3V0dGVyLXktbWQsXFxuLmd1dHRlci1tZCB7XFxuICBtYXJnaW4tdG9wOiAtMzJweDtcXG59XFxuLmd1dHRlci15LW1kID4gZGl2LFxcbi5ndXR0ZXItbWQgPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDMycHg7XFxufVxcbi5ndXR0ZXIteC1sZyxcXG4uZ3V0dGVyLWxnIHtcXG4gIG1hcmdpbi1sZWZ0OiAtNDhweDtcXG59XFxuLmd1dHRlci14LWxnID4gZGl2LFxcbi5ndXR0ZXItbGcgPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xcbn1cXG4uZ3V0dGVyLXktbGcsXFxuLmd1dHRlci1sZyB7XFxuICBtYXJnaW4tdG9wOiAtNDhweDtcXG59XFxuLmd1dHRlci15LWxnID4gZGl2LFxcbi5ndXR0ZXItbGcgPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDQ4cHg7XFxufVxcbi5ndXR0ZXIteC14bCxcXG4uZ3V0dGVyLXhsIHtcXG4gIG1hcmdpbi1sZWZ0OiAtNjRweDtcXG59XFxuLmd1dHRlci14LXhsID4gZGl2LFxcbi5ndXR0ZXIteGwgPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiA2NHB4O1xcbn1cXG4uZ3V0dGVyLXkteGwsXFxuLmd1dHRlci14bCB7XFxuICBtYXJnaW4tdG9wOiAtNjRweDtcXG59XFxuLmd1dHRlci15LXhsID4gZGl2LFxcbi5ndXR0ZXIteGwgPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDY0cHg7XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiAwKSB7XFxuICAucm93ID4gLmNvbCxcXG4gIC5yb3cgPiAuY29sLXhzLFxcbiAgLnJvdyA+IC5jb2wtYXV0byxcXG4gIC5yb3cgPiAuY29sLXhzLWF1dG8sXFxuICAucm93ID4gLmNvbC1ncm93LFxcbiAgLnJvdyA+IC5jb2wteHMtZ3JvdyxcXG4gIC5yb3cgPiAuY29sLTAsXFxuICAucm93ID4gLmNvbC14cy0wLFxcbiAgLnJvdyA+IC5jb2wtMSxcXG4gIC5yb3cgPiAuY29sLXhzLTEsXFxuICAucm93ID4gLmNvbC0yLFxcbiAgLnJvdyA+IC5jb2wteHMtMixcXG4gIC5yb3cgPiAuY29sLTMsXFxuICAucm93ID4gLmNvbC14cy0zLFxcbiAgLnJvdyA+IC5jb2wtNCxcXG4gIC5yb3cgPiAuY29sLXhzLTQsXFxuICAucm93ID4gLmNvbC01LFxcbiAgLnJvdyA+IC5jb2wteHMtNSxcXG4gIC5yb3cgPiAuY29sLTYsXFxuICAucm93ID4gLmNvbC14cy02LFxcbiAgLnJvdyA+IC5jb2wtNyxcXG4gIC5yb3cgPiAuY29sLXhzLTcsXFxuICAucm93ID4gLmNvbC04LFxcbiAgLnJvdyA+IC5jb2wteHMtOCxcXG4gIC5yb3cgPiAuY29sLTksXFxuICAucm93ID4gLmNvbC14cy05LFxcbiAgLnJvdyA+IC5jb2wtMTAsXFxuICAucm93ID4gLmNvbC14cy0xMCxcXG4gIC5yb3cgPiAuY29sLTExLFxcbiAgLnJvdyA+IC5jb2wteHMtMTEsXFxuICAucm93ID4gLmNvbC0xMixcXG4gIC5yb3cgPiAuY29sLXhzLTEyLFxcbiAgLmZsZXggPiAuY29sLFxcbiAgLmZsZXggPiAuY29sLXhzLFxcbiAgLmZsZXggPiAuY29sLWF1dG8sXFxuICAuZmxleCA+IC5jb2wteHMtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1ncm93LFxcbiAgLmZsZXggPiAuY29sLXhzLWdyb3csXFxuICAuZmxleCA+IC5jb2wtMCxcXG4gIC5mbGV4ID4gLmNvbC14cy0wLFxcbiAgLmZsZXggPiAuY29sLTEsXFxuICAuZmxleCA+IC5jb2wteHMtMSxcXG4gIC5mbGV4ID4gLmNvbC0yLFxcbiAgLmZsZXggPiAuY29sLXhzLTIsXFxuICAuZmxleCA+IC5jb2wtMyxcXG4gIC5mbGV4ID4gLmNvbC14cy0zLFxcbiAgLmZsZXggPiAuY29sLTQsXFxuICAuZmxleCA+IC5jb2wteHMtNCxcXG4gIC5mbGV4ID4gLmNvbC01LFxcbiAgLmZsZXggPiAuY29sLXhzLTUsXFxuICAuZmxleCA+IC5jb2wtNixcXG4gIC5mbGV4ID4gLmNvbC14cy02LFxcbiAgLmZsZXggPiAuY29sLTcsXFxuICAuZmxleCA+IC5jb2wteHMtNyxcXG4gIC5mbGV4ID4gLmNvbC04LFxcbiAgLmZsZXggPiAuY29sLXhzLTgsXFxuICAuZmxleCA+IC5jb2wtOSxcXG4gIC5mbGV4ID4gLmNvbC14cy05LFxcbiAgLmZsZXggPiAuY29sLTEwLFxcbiAgLmZsZXggPiAuY29sLXhzLTEwLFxcbiAgLmZsZXggPiAuY29sLTExLFxcbiAgLmZsZXggPiAuY29sLXhzLTExLFxcbiAgLmZsZXggPiAuY29sLTEyLFxcbiAgLmZsZXggPiAuY29sLXhzLTEyIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIG1pbi13aWR0aDogMDtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wsXFxuICAuY29sdW1uID4gLmNvbC14cyxcXG4gIC5jb2x1bW4gPiAuY29sLWF1dG8sXFxuICAuY29sdW1uID4gLmNvbC14cy1hdXRvLFxcbiAgLmNvbHVtbiA+IC5jb2wtZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLWdyb3csXFxuICAuY29sdW1uID4gLmNvbC0wLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMCxcXG4gIC5jb2x1bW4gPiAuY29sLTEsXFxuICAuY29sdW1uID4gLmNvbC14cy0xLFxcbiAgLmNvbHVtbiA+IC5jb2wtMixcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTIsXFxuICAuY29sdW1uID4gLmNvbC0zLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMyxcXG4gIC5jb2x1bW4gPiAuY29sLTQsXFxuICAuY29sdW1uID4gLmNvbC14cy00LFxcbiAgLmNvbHVtbiA+IC5jb2wtNSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTUsXFxuICAuY29sdW1uID4gLmNvbC02LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNixcXG4gIC5jb2x1bW4gPiAuY29sLTcsXFxuICAuY29sdW1uID4gLmNvbC14cy03LFxcbiAgLmNvbHVtbiA+IC5jb2wtOCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTgsXFxuICAuY29sdW1uID4gLmNvbC05LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtOSxcXG4gIC5jb2x1bW4gPiAuY29sLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMTAsXFxuICAuY29sdW1uID4gLmNvbC0xMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wtMTIsXFxuICAuY29sdW1uID4gLmNvbC14cy0xMixcXG4gIC5mbGV4ID4gLmNvbCxcXG4gIC5mbGV4ID4gLmNvbC14cyxcXG4gIC5mbGV4ID4gLmNvbC1hdXRvLFxcbiAgLmZsZXggPiAuY29sLXhzLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC14cy1ncm93LFxcbiAgLmZsZXggPiAuY29sLTAsXFxuICAuZmxleCA+IC5jb2wteHMtMCxcXG4gIC5mbGV4ID4gLmNvbC0xLFxcbiAgLmZsZXggPiAuY29sLXhzLTEsXFxuICAuZmxleCA+IC5jb2wtMixcXG4gIC5mbGV4ID4gLmNvbC14cy0yLFxcbiAgLmZsZXggPiAuY29sLTMsXFxuICAuZmxleCA+IC5jb2wteHMtMyxcXG4gIC5mbGV4ID4gLmNvbC00LFxcbiAgLmZsZXggPiAuY29sLXhzLTQsXFxuICAuZmxleCA+IC5jb2wtNSxcXG4gIC5mbGV4ID4gLmNvbC14cy01LFxcbiAgLmZsZXggPiAuY29sLTYsXFxuICAuZmxleCA+IC5jb2wteHMtNixcXG4gIC5mbGV4ID4gLmNvbC03LFxcbiAgLmZsZXggPiAuY29sLXhzLTcsXFxuICAuZmxleCA+IC5jb2wtOCxcXG4gIC5mbGV4ID4gLmNvbC14cy04LFxcbiAgLmZsZXggPiAuY29sLTksXFxuICAuZmxleCA+IC5jb2wteHMtOSxcXG4gIC5mbGV4ID4gLmNvbC0xMCxcXG4gIC5mbGV4ID4gLmNvbC14cy0xMCxcXG4gIC5mbGV4ID4gLmNvbC0xMSxcXG4gIC5mbGV4ID4gLmNvbC14cy0xMSxcXG4gIC5mbGV4ID4gLmNvbC0xMixcXG4gIC5mbGV4ID4gLmNvbC14cy0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgbWluLWhlaWdodDogMDtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gIH1cXG4gIC5jb2wsXFxuICAuY29sLXhzIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDA7XFxuICAgICAgICAtbXMtZmxleDogMTAwMDAgMSAwJTtcXG4gICAgICAgICAgICBmbGV4OiAxMDAwMCAxIDAlO1xcbiAgfVxcbiAgLmNvbC1hdXRvLFxcbiAgLmNvbC14cy1hdXRvLFxcbiAgLmNvbC0wLFxcbiAgLmNvbC14cy0wLFxcbiAgLmNvbC0xLFxcbiAgLmNvbC14cy0xLFxcbiAgLmNvbC0yLFxcbiAgLmNvbC14cy0yLFxcbiAgLmNvbC0zLFxcbiAgLmNvbC14cy0zLFxcbiAgLmNvbC00LFxcbiAgLmNvbC14cy00LFxcbiAgLmNvbC01LFxcbiAgLmNvbC14cy01LFxcbiAgLmNvbC02LFxcbiAgLmNvbC14cy02LFxcbiAgLmNvbC03LFxcbiAgLmNvbC14cy03LFxcbiAgLmNvbC04LFxcbiAgLmNvbC14cy04LFxcbiAgLmNvbC05LFxcbiAgLmNvbC14cy05LFxcbiAgLmNvbC0xMCxcXG4gIC5jb2wteHMtMTAsXFxuICAuY29sLTExLFxcbiAgLmNvbC14cy0xMSxcXG4gIC5jb2wtMTIsXFxuICAuY29sLXhzLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gIH1cXG4gIC5jb2wtZ3JvdyxcXG4gIC5jb2wteHMtZ3JvdyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0wLFxcbiAgLnJvdyA+IC5jb2wteHMtMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMCxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC0wLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMCB7XFxuICAgIGhlaWdodDogMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMSxcXG4gIC5yb3cgPiAuY29sLXhzLTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMSxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTEge1xcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTEsXFxuICAuY29sdW1uID4gLmNvbC14cy0xIHtcXG4gICAgaGVpZ2h0OiA4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTIsXFxuICAucm93ID4gLmNvbC14cy0yIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0yLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTIsXFxuICAuY29sdW1uID4gLmNvbC14cy0yIHtcXG4gICAgaGVpZ2h0OiAxNi42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0zLFxcbiAgLnJvdyA+IC5jb2wteHMtMyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDI1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTMsXFxuICAucm93ID4gLm9mZnNldC14cy0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTMsXFxuICAuY29sdW1uID4gLmNvbC14cy0zIHtcXG4gICAgaGVpZ2h0OiAyNSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtNCxcXG4gIC5yb3cgPiAuY29sLXhzLTQge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTQsXFxuICAucm93ID4gLm9mZnNldC14cy00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtNCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTQge1xcbiAgICBoZWlnaHQ6IDMzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTUsXFxuICAucm93ID4gLmNvbC14cy01IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNDEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC01LFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTUsXFxuICAuY29sdW1uID4gLmNvbC14cy01IHtcXG4gICAgaGVpZ2h0OiA0MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC02LFxcbiAgLnJvdyA+IC5jb2wteHMtNiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDUwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTYsXFxuICAucm93ID4gLm9mZnNldC14cy02IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTYsXFxuICAuY29sdW1uID4gLmNvbC14cy02IHtcXG4gICAgaGVpZ2h0OiA1MCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtNyxcXG4gIC5yb3cgPiAuY29sLXhzLTcge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTcsXFxuICAucm93ID4gLm9mZnNldC14cy03IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtNyxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTcge1xcbiAgICBoZWlnaHQ6IDU4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTgsXFxuICAucm93ID4gLmNvbC14cy04IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNjYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC04LFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTgsXFxuICAuY29sdW1uID4gLmNvbC14cy04IHtcXG4gICAgaGVpZ2h0OiA2Ni42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC05LFxcbiAgLnJvdyA+IC5jb2wteHMtOSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDc1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTksXFxuICAucm93ID4gLm9mZnNldC14cy05IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTksXFxuICAuY29sdW1uID4gLmNvbC14cy05IHtcXG4gICAgaGVpZ2h0OiA3NSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMTAsXFxuICAucm93ID4gLmNvbC14cy0xMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMTAsXFxuICAucm93ID4gLm9mZnNldC14cy0xMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMTAge1xcbiAgICBoZWlnaHQ6IDgzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTExLFxcbiAgLnJvdyA+IC5jb2wteHMtMTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA5MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTExLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMTEge1xcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC0xMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTExIHtcXG4gICAgaGVpZ2h0OiA5MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0xMixcXG4gIC5yb3cgPiAuY29sLXhzLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTEyLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTEyLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMTIge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gIC5yb3cgPiAuY29sLXNtLFxcbiAgLnJvdyA+IC5jb2wtc20tYXV0byxcXG4gIC5yb3cgPiAuY29sLXNtLWdyb3csXFxuICAucm93ID4gLmNvbC1zbS0wLFxcbiAgLnJvdyA+IC5jb2wtc20tMSxcXG4gIC5yb3cgPiAuY29sLXNtLTIsXFxuICAucm93ID4gLmNvbC1zbS0zLFxcbiAgLnJvdyA+IC5jb2wtc20tNCxcXG4gIC5yb3cgPiAuY29sLXNtLTUsXFxuICAucm93ID4gLmNvbC1zbS02LFxcbiAgLnJvdyA+IC5jb2wtc20tNyxcXG4gIC5yb3cgPiAuY29sLXNtLTgsXFxuICAucm93ID4gLmNvbC1zbS05LFxcbiAgLnJvdyA+IC5jb2wtc20tMTAsXFxuICAucm93ID4gLmNvbC1zbS0xMSxcXG4gIC5yb3cgPiAuY29sLXNtLTEyLFxcbiAgLmZsZXggPiAuY29sLXNtLFxcbiAgLmZsZXggPiAuY29sLXNtLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtc20tZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC1zbS0wLFxcbiAgLmZsZXggPiAuY29sLXNtLTEsXFxuICAuZmxleCA+IC5jb2wtc20tMixcXG4gIC5mbGV4ID4gLmNvbC1zbS0zLFxcbiAgLmZsZXggPiAuY29sLXNtLTQsXFxuICAuZmxleCA+IC5jb2wtc20tNSxcXG4gIC5mbGV4ID4gLmNvbC1zbS02LFxcbiAgLmZsZXggPiAuY29sLXNtLTcsXFxuICAuZmxleCA+IC5jb2wtc20tOCxcXG4gIC5mbGV4ID4gLmNvbC1zbS05LFxcbiAgLmZsZXggPiAuY29sLXNtLTEwLFxcbiAgLmZsZXggPiAuY29sLXNtLTExLFxcbiAgLmZsZXggPiAuY29sLXNtLTEyIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIG1pbi13aWR0aDogMDtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20sXFxuICAuY29sdW1uID4gLmNvbC1zbS1hdXRvLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTAsXFxuICAuY29sdW1uID4gLmNvbC1zbS0xLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMixcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTMsXFxuICAuY29sdW1uID4gLmNvbC1zbS00LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNSxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTYsXFxuICAuY29sdW1uID4gLmNvbC1zbS03LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tOCxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTksXFxuICAuY29sdW1uID4gLmNvbC1zbS0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMTIsXFxuICAuZmxleCA+IC5jb2wtc20sXFxuICAuZmxleCA+IC5jb2wtc20tYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1zbS1ncm93LFxcbiAgLmZsZXggPiAuY29sLXNtLTAsXFxuICAuZmxleCA+IC5jb2wtc20tMSxcXG4gIC5mbGV4ID4gLmNvbC1zbS0yLFxcbiAgLmZsZXggPiAuY29sLXNtLTMsXFxuICAuZmxleCA+IC5jb2wtc20tNCxcXG4gIC5mbGV4ID4gLmNvbC1zbS01LFxcbiAgLmZsZXggPiAuY29sLXNtLTYsXFxuICAuZmxleCA+IC5jb2wtc20tNyxcXG4gIC5mbGV4ID4gLmNvbC1zbS04LFxcbiAgLmZsZXggPiAuY29sLXNtLTksXFxuICAuZmxleCA+IC5jb2wtc20tMTAsXFxuICAuZmxleCA+IC5jb2wtc20tMTEsXFxuICAuZmxleCA+IC5jb2wtc20tMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG1pbi1oZWlnaHQ6IDA7XFxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxuICB9XFxuICAuY29sLXNtIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDA7XFxuICAgICAgICAtbXMtZmxleDogMTAwMDAgMSAwJTtcXG4gICAgICAgICAgICBmbGV4OiAxMDAwMCAxIDAlO1xcbiAgfVxcbiAgLmNvbC1zbS1hdXRvLFxcbiAgLmNvbC1zbS0wLFxcbiAgLmNvbC1zbS0xLFxcbiAgLmNvbC1zbS0yLFxcbiAgLmNvbC1zbS0zLFxcbiAgLmNvbC1zbS00LFxcbiAgLmNvbC1zbS01LFxcbiAgLmNvbC1zbS02LFxcbiAgLmNvbC1zbS03LFxcbiAgLmNvbC1zbS04LFxcbiAgLmNvbC1zbS05LFxcbiAgLmNvbC1zbS0xMCxcXG4gIC5jb2wtc20tMTEsXFxuICAuY29sLXNtLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gIH1cXG4gIC5jb2wtc20tZ3JvdyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0wIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMCB7XFxuICAgIGhlaWdodDogMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0xIHtcXG4gICAgaGVpZ2h0OiA4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxNi42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0yIHtcXG4gICAgaGVpZ2h0OiAxNi42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0zIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMjUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0zIHtcXG4gICAgaGVpZ2h0OiAyNSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tNCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTQge1xcbiAgICBoZWlnaHQ6IDMzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTUge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA0MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTUge1xcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS01IHtcXG4gICAgaGVpZ2h0OiA0MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS02IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tNiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS02IHtcXG4gICAgaGVpZ2h0OiA1MCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tNyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tNyB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTcge1xcbiAgICBoZWlnaHQ6IDU4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTgge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTgge1xcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS04IHtcXG4gICAgaGVpZ2h0OiA2Ni42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS05IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNzUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tOSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS05IHtcXG4gICAgaGVpZ2h0OiA3NSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4My4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMTAge1xcbiAgICBoZWlnaHQ6IDgzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTExIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOTEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTExIHtcXG4gICAgaGVpZ2h0OiA5MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0xMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMTIge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5yb3cgPiAuY29sLW1kLFxcbiAgLnJvdyA+IC5jb2wtbWQtYXV0byxcXG4gIC5yb3cgPiAuY29sLW1kLWdyb3csXFxuICAucm93ID4gLmNvbC1tZC0wLFxcbiAgLnJvdyA+IC5jb2wtbWQtMSxcXG4gIC5yb3cgPiAuY29sLW1kLTIsXFxuICAucm93ID4gLmNvbC1tZC0zLFxcbiAgLnJvdyA+IC5jb2wtbWQtNCxcXG4gIC5yb3cgPiAuY29sLW1kLTUsXFxuICAucm93ID4gLmNvbC1tZC02LFxcbiAgLnJvdyA+IC5jb2wtbWQtNyxcXG4gIC5yb3cgPiAuY29sLW1kLTgsXFxuICAucm93ID4gLmNvbC1tZC05LFxcbiAgLnJvdyA+IC5jb2wtbWQtMTAsXFxuICAucm93ID4gLmNvbC1tZC0xMSxcXG4gIC5yb3cgPiAuY29sLW1kLTEyLFxcbiAgLmZsZXggPiAuY29sLW1kLFxcbiAgLmZsZXggPiAuY29sLW1kLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtbWQtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC1tZC0wLFxcbiAgLmZsZXggPiAuY29sLW1kLTEsXFxuICAuZmxleCA+IC5jb2wtbWQtMixcXG4gIC5mbGV4ID4gLmNvbC1tZC0zLFxcbiAgLmZsZXggPiAuY29sLW1kLTQsXFxuICAuZmxleCA+IC5jb2wtbWQtNSxcXG4gIC5mbGV4ID4gLmNvbC1tZC02LFxcbiAgLmZsZXggPiAuY29sLW1kLTcsXFxuICAuZmxleCA+IC5jb2wtbWQtOCxcXG4gIC5mbGV4ID4gLmNvbC1tZC05LFxcbiAgLmZsZXggPiAuY29sLW1kLTEwLFxcbiAgLmZsZXggPiAuY29sLW1kLTExLFxcbiAgLmZsZXggPiAuY29sLW1kLTEyIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIG1pbi13aWR0aDogMDtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQsXFxuICAuY29sdW1uID4gLmNvbC1tZC1hdXRvLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTAsXFxuICAuY29sdW1uID4gLmNvbC1tZC0xLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMixcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTMsXFxuICAuY29sdW1uID4gLmNvbC1tZC00LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNSxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTYsXFxuICAuY29sdW1uID4gLmNvbC1tZC03LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtOCxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTksXFxuICAuY29sdW1uID4gLmNvbC1tZC0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMTIsXFxuICAuZmxleCA+IC5jb2wtbWQsXFxuICAuZmxleCA+IC5jb2wtbWQtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1tZC1ncm93LFxcbiAgLmZsZXggPiAuY29sLW1kLTAsXFxuICAuZmxleCA+IC5jb2wtbWQtMSxcXG4gIC5mbGV4ID4gLmNvbC1tZC0yLFxcbiAgLmZsZXggPiAuY29sLW1kLTMsXFxuICAuZmxleCA+IC5jb2wtbWQtNCxcXG4gIC5mbGV4ID4gLmNvbC1tZC01LFxcbiAgLmZsZXggPiAuY29sLW1kLTYsXFxuICAuZmxleCA+IC5jb2wtbWQtNyxcXG4gIC5mbGV4ID4gLmNvbC1tZC04LFxcbiAgLmZsZXggPiAuY29sLW1kLTksXFxuICAuZmxleCA+IC5jb2wtbWQtMTAsXFxuICAuZmxleCA+IC5jb2wtbWQtMTEsXFxuICAuZmxleCA+IC5jb2wtbWQtMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG1pbi1oZWlnaHQ6IDA7XFxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxuICB9XFxuICAuY29sLW1kIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDA7XFxuICAgICAgICAtbXMtZmxleDogMTAwMDAgMSAwJTtcXG4gICAgICAgICAgICBmbGV4OiAxMDAwMCAxIDAlO1xcbiAgfVxcbiAgLmNvbC1tZC1hdXRvLFxcbiAgLmNvbC1tZC0wLFxcbiAgLmNvbC1tZC0xLFxcbiAgLmNvbC1tZC0yLFxcbiAgLmNvbC1tZC0zLFxcbiAgLmNvbC1tZC00LFxcbiAgLmNvbC1tZC01LFxcbiAgLmNvbC1tZC02LFxcbiAgLmNvbC1tZC03LFxcbiAgLmNvbC1tZC04LFxcbiAgLmNvbC1tZC05LFxcbiAgLmNvbC1tZC0xMCxcXG4gIC5jb2wtbWQtMTEsXFxuICAuY29sLW1kLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gIH1cXG4gIC5jb2wtbWQtZ3JvdyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0wIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMCB7XFxuICAgIGhlaWdodDogMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0xIHtcXG4gICAgaGVpZ2h0OiA4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxNi42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0yIHtcXG4gICAgaGVpZ2h0OiAxNi42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0zIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMjUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0zIHtcXG4gICAgaGVpZ2h0OiAyNSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtNCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTQge1xcbiAgICBoZWlnaHQ6IDMzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTUge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA0MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTUge1xcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC01IHtcXG4gICAgaGVpZ2h0OiA0MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC02IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtNiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC02IHtcXG4gICAgaGVpZ2h0OiA1MCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtNyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtNyB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTcge1xcbiAgICBoZWlnaHQ6IDU4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTgge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTgge1xcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC04IHtcXG4gICAgaGVpZ2h0OiA2Ni42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC05IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNzUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtOSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC05IHtcXG4gICAgaGVpZ2h0OiA3NSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4My4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMTAge1xcbiAgICBoZWlnaHQ6IDgzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTExIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOTEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTExIHtcXG4gICAgaGVpZ2h0OiA5MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0xMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMTIge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gIC5yb3cgPiAuY29sLWxnLFxcbiAgLnJvdyA+IC5jb2wtbGctYXV0byxcXG4gIC5yb3cgPiAuY29sLWxnLWdyb3csXFxuICAucm93ID4gLmNvbC1sZy0wLFxcbiAgLnJvdyA+IC5jb2wtbGctMSxcXG4gIC5yb3cgPiAuY29sLWxnLTIsXFxuICAucm93ID4gLmNvbC1sZy0zLFxcbiAgLnJvdyA+IC5jb2wtbGctNCxcXG4gIC5yb3cgPiAuY29sLWxnLTUsXFxuICAucm93ID4gLmNvbC1sZy02LFxcbiAgLnJvdyA+IC5jb2wtbGctNyxcXG4gIC5yb3cgPiAuY29sLWxnLTgsXFxuICAucm93ID4gLmNvbC1sZy05LFxcbiAgLnJvdyA+IC5jb2wtbGctMTAsXFxuICAucm93ID4gLmNvbC1sZy0xMSxcXG4gIC5yb3cgPiAuY29sLWxnLTEyLFxcbiAgLmZsZXggPiAuY29sLWxnLFxcbiAgLmZsZXggPiAuY29sLWxnLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtbGctZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC1sZy0wLFxcbiAgLmZsZXggPiAuY29sLWxnLTEsXFxuICAuZmxleCA+IC5jb2wtbGctMixcXG4gIC5mbGV4ID4gLmNvbC1sZy0zLFxcbiAgLmZsZXggPiAuY29sLWxnLTQsXFxuICAuZmxleCA+IC5jb2wtbGctNSxcXG4gIC5mbGV4ID4gLmNvbC1sZy02LFxcbiAgLmZsZXggPiAuY29sLWxnLTcsXFxuICAuZmxleCA+IC5jb2wtbGctOCxcXG4gIC5mbGV4ID4gLmNvbC1sZy05LFxcbiAgLmZsZXggPiAuY29sLWxnLTEwLFxcbiAgLmZsZXggPiAuY29sLWxnLTExLFxcbiAgLmZsZXggPiAuY29sLWxnLTEyIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIG1pbi13aWR0aDogMDtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGcsXFxuICAuY29sdW1uID4gLmNvbC1sZy1hdXRvLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTAsXFxuICAuY29sdW1uID4gLmNvbC1sZy0xLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMixcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTMsXFxuICAuY29sdW1uID4gLmNvbC1sZy00LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNSxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTYsXFxuICAuY29sdW1uID4gLmNvbC1sZy03LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctOCxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTksXFxuICAuY29sdW1uID4gLmNvbC1sZy0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMTIsXFxuICAuZmxleCA+IC5jb2wtbGcsXFxuICAuZmxleCA+IC5jb2wtbGctYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1sZy1ncm93LFxcbiAgLmZsZXggPiAuY29sLWxnLTAsXFxuICAuZmxleCA+IC5jb2wtbGctMSxcXG4gIC5mbGV4ID4gLmNvbC1sZy0yLFxcbiAgLmZsZXggPiAuY29sLWxnLTMsXFxuICAuZmxleCA+IC5jb2wtbGctNCxcXG4gIC5mbGV4ID4gLmNvbC1sZy01LFxcbiAgLmZsZXggPiAuY29sLWxnLTYsXFxuICAuZmxleCA+IC5jb2wtbGctNyxcXG4gIC5mbGV4ID4gLmNvbC1sZy04LFxcbiAgLmZsZXggPiAuY29sLWxnLTksXFxuICAuZmxleCA+IC5jb2wtbGctMTAsXFxuICAuZmxleCA+IC5jb2wtbGctMTEsXFxuICAuZmxleCA+IC5jb2wtbGctMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG1pbi1oZWlnaHQ6IDA7XFxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxuICB9XFxuICAuY29sLWxnIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDA7XFxuICAgICAgICAtbXMtZmxleDogMTAwMDAgMSAwJTtcXG4gICAgICAgICAgICBmbGV4OiAxMDAwMCAxIDAlO1xcbiAgfVxcbiAgLmNvbC1sZy1hdXRvLFxcbiAgLmNvbC1sZy0wLFxcbiAgLmNvbC1sZy0xLFxcbiAgLmNvbC1sZy0yLFxcbiAgLmNvbC1sZy0zLFxcbiAgLmNvbC1sZy00LFxcbiAgLmNvbC1sZy01LFxcbiAgLmNvbC1sZy02LFxcbiAgLmNvbC1sZy03LFxcbiAgLmNvbC1sZy04LFxcbiAgLmNvbC1sZy05LFxcbiAgLmNvbC1sZy0xMCxcXG4gIC5jb2wtbGctMTEsXFxuICAuY29sLWxnLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gIH1cXG4gIC5jb2wtbGctZ3JvdyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0wIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMCB7XFxuICAgIGhlaWdodDogMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0xIHtcXG4gICAgaGVpZ2h0OiA4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxNi42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0yIHtcXG4gICAgaGVpZ2h0OiAxNi42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0zIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMjUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0zIHtcXG4gICAgaGVpZ2h0OiAyNSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctNCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTQge1xcbiAgICBoZWlnaHQ6IDMzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTUge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA0MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTUge1xcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy01IHtcXG4gICAgaGVpZ2h0OiA0MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy02IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctNiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy02IHtcXG4gICAgaGVpZ2h0OiA1MCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctNyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctNyB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTcge1xcbiAgICBoZWlnaHQ6IDU4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTgge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTgge1xcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy04IHtcXG4gICAgaGVpZ2h0OiA2Ni42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy05IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNzUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctOSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy05IHtcXG4gICAgaGVpZ2h0OiA3NSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4My4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMTAge1xcbiAgICBoZWlnaHQ6IDgzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTExIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOTEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTExIHtcXG4gICAgaGVpZ2h0OiA5MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0xMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMTIge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAucm93ID4gLmNvbC14bCxcXG4gIC5yb3cgPiAuY29sLXhsLWF1dG8sXFxuICAucm93ID4gLmNvbC14bC1ncm93LFxcbiAgLnJvdyA+IC5jb2wteGwtMCxcXG4gIC5yb3cgPiAuY29sLXhsLTEsXFxuICAucm93ID4gLmNvbC14bC0yLFxcbiAgLnJvdyA+IC5jb2wteGwtMyxcXG4gIC5yb3cgPiAuY29sLXhsLTQsXFxuICAucm93ID4gLmNvbC14bC01LFxcbiAgLnJvdyA+IC5jb2wteGwtNixcXG4gIC5yb3cgPiAuY29sLXhsLTcsXFxuICAucm93ID4gLmNvbC14bC04LFxcbiAgLnJvdyA+IC5jb2wteGwtOSxcXG4gIC5yb3cgPiAuY29sLXhsLTEwLFxcbiAgLnJvdyA+IC5jb2wteGwtMTEsXFxuICAucm93ID4gLmNvbC14bC0xMixcXG4gIC5mbGV4ID4gLmNvbC14bCxcXG4gIC5mbGV4ID4gLmNvbC14bC1hdXRvLFxcbiAgLmZsZXggPiAuY29sLXhsLWdyb3csXFxuICAuZmxleCA+IC5jb2wteGwtMCxcXG4gIC5mbGV4ID4gLmNvbC14bC0xLFxcbiAgLmZsZXggPiAuY29sLXhsLTIsXFxuICAuZmxleCA+IC5jb2wteGwtMyxcXG4gIC5mbGV4ID4gLmNvbC14bC00LFxcbiAgLmZsZXggPiAuY29sLXhsLTUsXFxuICAuZmxleCA+IC5jb2wteGwtNixcXG4gIC5mbGV4ID4gLmNvbC14bC03LFxcbiAgLmZsZXggPiAuY29sLXhsLTgsXFxuICAuZmxleCA+IC5jb2wteGwtOSxcXG4gIC5mbGV4ID4gLmNvbC14bC0xMCxcXG4gIC5mbGV4ID4gLmNvbC14bC0xMSxcXG4gIC5mbGV4ID4gLmNvbC14bC0xMiB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBtaW4td2lkdGg6IDA7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtYXV0byxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLWdyb3csXFxuICAuY29sdW1uID4gLmNvbC14bC0wLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTIsXFxuICAuY29sdW1uID4gLmNvbC14bC0zLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNCxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTUsXFxuICAuY29sdW1uID4gLmNvbC14bC02LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNyxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTgsXFxuICAuY29sdW1uID4gLmNvbC14bC05LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMTAsXFxuICAuY29sdW1uID4gLmNvbC14bC0xMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTEyLFxcbiAgLmZsZXggPiAuY29sLXhsLFxcbiAgLmZsZXggPiAuY29sLXhsLWF1dG8sXFxuICAuZmxleCA+IC5jb2wteGwtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC14bC0wLFxcbiAgLmZsZXggPiAuY29sLXhsLTEsXFxuICAuZmxleCA+IC5jb2wteGwtMixcXG4gIC5mbGV4ID4gLmNvbC14bC0zLFxcbiAgLmZsZXggPiAuY29sLXhsLTQsXFxuICAuZmxleCA+IC5jb2wteGwtNSxcXG4gIC5mbGV4ID4gLmNvbC14bC02LFxcbiAgLmZsZXggPiAuY29sLXhsLTcsXFxuICAuZmxleCA+IC5jb2wteGwtOCxcXG4gIC5mbGV4ID4gLmNvbC14bC05LFxcbiAgLmZsZXggPiAuY29sLXhsLTEwLFxcbiAgLmZsZXggPiAuY29sLXhsLTExLFxcbiAgLmZsZXggPiAuY29sLXhsLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbC14bCB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDEwMDAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDEwMDAwIDEgMCU7XFxuICAgICAgICAgICAgZmxleDogMTAwMDAgMSAwJTtcXG4gIH1cXG4gIC5jb2wteGwtYXV0byxcXG4gIC5jb2wteGwtMCxcXG4gIC5jb2wteGwtMSxcXG4gIC5jb2wteGwtMixcXG4gIC5jb2wteGwtMyxcXG4gIC5jb2wteGwtNCxcXG4gIC5jb2wteGwtNSxcXG4gIC5jb2wteGwtNixcXG4gIC5jb2wteGwtNyxcXG4gIC5jb2wteGwtOCxcXG4gIC5jb2wteGwtOSxcXG4gIC5jb2wteGwtMTAsXFxuICAuY29sLXhsLTExLFxcbiAgLmNvbC14bC0xMiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICB9XFxuICAuY29sLXhsLWdyb3cge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTAge1xcbiAgICBoZWlnaHQ6IDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMSB7XFxuICAgIGhlaWdodDogOC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0yIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMiB7XFxuICAgIGhlaWdodDogMTYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDI1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMyB7XFxuICAgIGhlaWdodDogMjUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTQge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC00IHtcXG4gICAgaGVpZ2h0OiAzMy4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC01IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNDEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNSB7XFxuICAgIGhlaWdodDogNDEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtNiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDUwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTYge1xcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNiB7XFxuICAgIGhlaWdodDogNTAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTcge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTcge1xcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC03IHtcXG4gICAgaGVpZ2h0OiA1OC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC04IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNjYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC04IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtOCB7XFxuICAgIGhlaWdodDogNjYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtOSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDc1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTkge1xcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtOSB7XFxuICAgIGhlaWdodDogNzUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTEwIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogODMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0xMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTEwIHtcXG4gICAgaGVpZ2h0OiA4My4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0xMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDkxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMTEge1xcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0xMSB7XFxuICAgIGhlaWdodDogOTEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTEyIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG59XFxuLmJhY2tkcm9wIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTAwdnc7XFxuICBoZWlnaHQ6IDEwMHZoO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yOHMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yOHMgZWFzZS1pbjtcXG59XFxuLmJhY2tkcm9wLmFjdGl2ZSB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcXG59XFxuLnJvdW5kLWJvcmRlcnMge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XFxufVxcbi5nZW5lcmljLW1hcmdpbixcXG4uZ3JvdXAgPiAqIHtcXG4gIG1hcmdpbjogNXB4O1xcbn1cXG4ubm8tdHJhbnNpdGlvbiB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcXG4gIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLnRyYW5zaXRpb24tMCB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDBzICFpbXBvcnRhbnQ7XFxuICB0cmFuc2l0aW9uOiAwcyAhaW1wb3J0YW50O1xcbn1cXG4uZ2xvc3N5IHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20ocmdiYSgyNTUsMjU1LDI1NSwwLjMpKSwgY29sb3Itc3RvcCg1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkpLCBjb2xvci1zdG9wKDUxJSwgcmdiYSgwLDAsMCwwLjEyKSksIHRvKHJnYmEoMCwwLDAsMC4wNCkpKSAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyNTUsMjU1LDI1NSwwLjMpLCByZ2JhKDI1NSwyNTUsMjU1LDApIDUwJSwgcmdiYSgwLDAsMCwwLjEyKSA1MSUsIHJnYmEoMCwwLDAsMC4wNCkpICFpbXBvcnRhbnQ7XFxufVxcbi5xLXBsYWNlaG9sZGVyOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS1wbGFjZWhvbGRlcjo6LW1vei1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtcGxhY2Vob2xkZXI6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS1ib2R5LWZ1bGxzY3JlZW4tbWl4aW4sXFxuLnEtYm9keS1wcmV2ZW50LXNjcm9sbCB7XFxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XFxufVxcbi5xLW5vLWlucHV0LXNwaW5uZXIge1xcbiAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQgIWltcG9ydGFudDtcXG59XFxuLnEtbm8taW5wdXQtc3Bpbm5lcjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcXG4ucS1uby1pbnB1dC1zcGlubmVyOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gIG1hcmdpbjogMDtcXG59XFxuYS5xLWxpbmsge1xcbiAgb3V0bGluZTogMDtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbn1cXG4ucS1zZWxlY3QtaGlnaGxpZ2h0IHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTg5LDE4OSwxODksMC41KSAhaW1wb3J0YW50O1xcbn1cXG4uaGlnaGxpZ2h0LWFuZC1mYWRlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWhpZ2hsaWdodCAycyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtaGlnaGxpZ2h0IDJzIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi50cmFuc2l0aW9uLWdlbmVyaWMge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcztcXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xcbn1cXG4uYW5pbWF0ZS1zcGluLFxcbi5hbmltYXRlLXNwaW4tcmV2ZXJzZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1zcGluIDJzIGluZmluaXRlIGxpbmVhciAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXIgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtc3Bpbi1yZXZlcnNlIHtcXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7XFxufVxcbi5hbmltYXRlLWJsaW5rIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWJsaW5rIDFzIHN0ZXBzKDUsIHN0YXJ0KSBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtYmxpbmsgMXMgc3RlcHMoNSwgc3RhcnQpIGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLXBvcCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wb3AgMC4ycyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcG9wIDAuMnMgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtc2NhbGUge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtc2NhbGUgMC4ycyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtc2NhbGUgMC4ycyAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1mYWRlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWZhZGUgMC4ycyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtZmFkZSAwLjJzIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLWJvdW5jZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1ib3VuY2UgMnMgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWJvdW5jZSAycyBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1zaGFrZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1zaGFrZSAwLjE1cztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXNoYWtlIDAuMTVzO1xcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtcXG4gICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7XFxufVxcbi5hbmltYXRlLXBvcHVwLXVwLFxcbi5hbmltYXRlLXBvcHVwLWRvd24ge1xcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG59XFxuLmFuaW1hdGUtcG9wdXAtdXAgPiAqLFxcbi5hbmltYXRlLXBvcHVwLWRvd24gPiAqIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWZhZGUgMC44MnMgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44Nik7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1mYWRlIDAuODJzIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpO1xcbn1cXG4uYW5pbWF0ZS1wb3B1cC1kb3duIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXBvcHVwLWRvd24gMC4zNnMgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXBvcHVwLWRvd24gMC4zNnMgLyogcnRsOmlnbm9yZSAqLztcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3AgMHB4IC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wIDBweCAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1wb3B1cC11cCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wb3B1cC11cCAwLjM2cyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcG9wdXAtdXAgMC4zNnMgLyogcnRsOmlnbm9yZSAqLztcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b20gMHB4IC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tIDBweCAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1mYWRlLWxlZnQge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtZmFkZSAwLjM2cyBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KSwgcS1zbGlkZS1sZWZ0IDAuMzZzIGVhc2U7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1mYWRlIDAuMzZzIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpLCBxLXNsaWRlLWxlZnQgMC4zNnMgZWFzZTtcXG59XFxuLmFuaW1hdGUtZmFkZS1yaWdodCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1mYWRlIDAuMzZzIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpLCBxLXNsaWRlLXJpZ2h0IDAuMzZzIGVhc2U7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1mYWRlIDAuMzZzIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpLCBxLXNsaWRlLXJpZ2h0IDAuMzZzIGVhc2U7XFxufVxcbi5hbmltYXRlZCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XFxuICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XFxuICAgICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XFxufVxcbi5hbmltYXRlZC5pbmZpbml0ZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xcbiAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcXG59XFxuLmFuaW1hdGVkLmhpbmdlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcXG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcXG59XFxuLmFuaW1hdGVkLmZsaXBPdXRYLFxcbi5hbmltYXRlZC5mbGlwT3V0WSxcXG4uYW5pbWF0ZWQuYm91bmNlSW4sXFxuLmFuaW1hdGVkLmJvdW5jZU91dCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMC43NXM7XFxuICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC43NXM7XFxufVxcbi5ub24tc2VsZWN0YWJsZSB7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5zY3JvbGwge1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcbi5zY3JvbGwsXFxuLnNjcm9sbC14LFxcbi5zY3JvbGwteSB7XFxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxuICB3aWxsLWNoYW5nZTogc2Nyb2xsLXBvc2l0aW9uO1xcbn1cXG4uc2Nyb2xsLXgge1xcbiAgb3ZlcmZsb3cteDogYXV0bztcXG59XFxuLnNjcm9sbC15IHtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxufVxcbi5uby1zY3JvbGwge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xcbn1cXG4ubm8tcG9pbnRlci1ldmVudHMge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLmFsbC1wb2ludGVyLWV2ZW50cyB7XFxuICBwb2ludGVyLWV2ZW50czogYWxsICFpbXBvcnRhbnQ7XFxufVxcbi5jdXJzb3ItcG9pbnRlciB7XFxuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcXG59XFxuLmN1cnNvci1ub3QtYWxsb3dlZCB7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkICFpbXBvcnRhbnQ7XFxufVxcbi5jdXJzb3ItaW5oZXJpdCB7XFxuICBjdXJzb3I6IGluaGVyaXQgIWltcG9ydGFudDtcXG59XFxuLnJvdGF0ZS00NSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS05MCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS0xMzUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS0xODAge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS0yMDUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyMDVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDIwNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS0yNzAge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS0zMTUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzMTVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMxNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmZsaXAtaG9yaXpvbnRhbCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcXG59XFxuLmZsaXAtdmVydGljYWwge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XFxufVxcbi5mbG9hdC1sZWZ0IHtcXG4gIGZsb2F0OiBsZWZ0O1xcbn1cXG4uZmxvYXQtcmlnaHQge1xcbiAgZmxvYXQ6IHJpZ2h0O1xcbn1cXG4ucmVsYXRpdmUtcG9zaXRpb24ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4uZml4ZWQsXFxuLmZ1bGxzY3JlZW4sXFxuLmZpeGVkLWNlbnRlcixcXG4uZml4ZWQtYm90dG9tLFxcbi5maXhlZC1sZWZ0LFxcbi5maXhlZC1yaWdodCxcXG4uZml4ZWQtdG9wLFxcbi5maXhlZC10b3AtbGVmdCxcXG4uZml4ZWQtdG9wLXJpZ2h0LFxcbi5maXhlZC1ib3R0b20tbGVmdCxcXG4uZml4ZWQtYm90dG9tLXJpZ2h0IHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG59XFxuLmFic29sdXRlLFxcbi5hYnNvbHV0ZS1mdWxsLFxcbi5hYnNvbHV0ZS1jZW50ZXIsXFxuLmFic29sdXRlLWJvdHRvbSxcXG4uYWJzb2x1dGUtbGVmdCxcXG4uYWJzb2x1dGUtcmlnaHQsXFxuLmFic29sdXRlLXRvcCxcXG4uYWJzb2x1dGUtdG9wLWxlZnQsXFxuLmFic29sdXRlLXRvcC1yaWdodCxcXG4uYWJzb2x1dGUtYm90dG9tLWxlZnQsXFxuLmFic29sdXRlLWJvdHRvbS1yaWdodCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxufVxcbi5maXhlZC10b3AsXFxuLmFic29sdXRlLXRvcCB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxufVxcbi5maXhlZC1yaWdodCxcXG4uYWJzb2x1dGUtcmlnaHQge1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxufVxcbi5maXhlZC1ib3R0b20sXFxuLmFic29sdXRlLWJvdHRvbSB7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5maXhlZC1sZWZ0LFxcbi5hYnNvbHV0ZS1sZWZ0IHtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5maXhlZC10b3AtbGVmdCxcXG4uYWJzb2x1dGUtdG9wLWxlZnQge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuLmZpeGVkLXRvcC1yaWdodCxcXG4uYWJzb2x1dGUtdG9wLXJpZ2h0IHtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbn1cXG4uZml4ZWQtYm90dG9tLWxlZnQsXFxuLmFic29sdXRlLWJvdHRvbS1sZWZ0IHtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5maXhlZC1ib3R0b20tcmlnaHQsXFxuLmFic29sdXRlLWJvdHRvbS1yaWdodCB7XFxuICBib3R0b206IDA7XFxuICByaWdodDogMDtcXG59XFxuLmZ1bGxzY3JlZW4ge1xcbiAgei1pbmRleDogNjAwMDtcXG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcXG4gIG1heC13aWR0aDogMTAwdnc7XFxuICBtYXgtaGVpZ2h0OiAxMDB2aDtcXG59XFxuLmFic29sdXRlLWZ1bGwsXFxuLmZ1bGxzY3JlZW4ge1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbn1cXG4uZml4ZWQtY2VudGVyLFxcbi5hYnNvbHV0ZS1jZW50ZXIge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcXG59XFxuLnZlcnRpY2FsLXRvcCB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7XFxufVxcbi52ZXJ0aWNhbC1taWRkbGUge1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xcbn1cXG4udmVydGljYWwtYm90dG9tIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b20gIWltcG9ydGFudDtcXG59XFxuLm9uLWxlZnQge1xcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xcbn1cXG4ub24tcmlnaHQge1xcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XFxufVxcbi5xLXJpcHBsZS1jb250YWluZXIge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHotaW5kZXg6IDA7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtcmlwcGxlLWFuaW1hdGlvbiB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxuICBvcGFjaXR5OiAwO1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3Mgb3BhY2l0eSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC4xKSwgMC4zcyAtd2Via2l0LXRyYW5zZm9ybSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC45KTtcXG4gIHRyYW5zaXRpb246IDAuM3Mgb3BhY2l0eSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC4xKSwgMC4zcyAtd2Via2l0LXRyYW5zZm9ybSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC45KTtcXG4gIHRyYW5zaXRpb246IDAuM3MgdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjkpLCAwLjNzIG9wYWNpdHkgY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIHRyYW5zZm9ybSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC45KSwgMC4zcyBvcGFjaXR5IGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjEpLCAwLjNzIC13ZWJraXQtdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjkpO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcXG59XFxuLnEtcmlwcGxlLWFuaW1hdGlvbi1lbnRlciB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7XFxuICB0cmFuc2l0aW9uOiBub25lO1xcbn1cXG4ucS1yaXBwbGUtYW5pbWF0aW9uLXZpc2libGUge1xcbiAgb3BhY2l0eTogMC4xNTtcXG59XFxuLnEtcmFkaWFsLXJpcHBsZSB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC01MCU7XFxuICBsZWZ0OiAtNTAlO1xcbiAgd2lkdGg6IDIwMCU7XFxuICBoZWlnaHQ6IDIwMCU7XFxufVxcbi5xLXJhZGlhbC1yaXBwbGU6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIGN1cnJlbnRDb2xvciAxMCUsIHRyYW5zcGFyZW50IDEwLjAxJSk7XFxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEwLCAxMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMTAsIDEwKTtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXM7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjVzO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMsIG9wYWNpdHkgMXM7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cywgb3BhY2l0eSAxcywgLXdlYmtpdC10cmFuc2Zvcm0gMC41cztcXG59XFxuLnEtcmFkaWFsLXJpcHBsZS5hY3RpdmU6YWZ0ZXIge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAsIDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAsIDApO1xcbiAgb3BhY2l0eTogMC40O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwcztcXG4gIHRyYW5zaXRpb246IDBzO1xcbn1cXG46cm9vdCB7XFxuICAtLXEtc2l6ZS14czogMDtcXG4gIC0tcS1zaXplLXNtOiA1NzZweDtcXG4gIC0tcS1zaXplLW1kOiA3NjhweDtcXG4gIC0tcS1zaXplLWxnOiA5OTJweDtcXG4gIC0tcS1zaXplLXhsOiAxMjAwcHg7XFxufVxcbi5maXQge1xcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcXG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xcbn1cXG4uZnVsbC1oZWlnaHQge1xcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XFxufVxcbi5mdWxsLXdpZHRoIHtcXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XFxufVxcbi53aW5kb3ctaGVpZ2h0IHtcXG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcXG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcXG4gIGhlaWdodDogMTAwdmggIWltcG9ydGFudDtcXG59XFxuLndpbmRvdy13aWR0aCB7XFxuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XFxuICB3aWR0aDogMTAwdncgIWltcG9ydGFudDtcXG59XFxuLmJsb2NrIHtcXG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XFxufVxcbi5pbmxpbmUtYmxvY2sge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XFxufVxcbi5xLXBhLW5vbmUge1xcbiAgcGFkZGluZzogMCAwO1xcbn1cXG4ucS1wbC1ub25lLFxcbi5xLXB4LW5vbmUge1xcbiAgcGFkZGluZy1sZWZ0OiAwO1xcbn1cXG4ucS1wci1ub25lLFxcbi5xLXB4LW5vbmUge1xcbiAgcGFkZGluZy1yaWdodDogMDtcXG59XFxuLnEtcHQtbm9uZSxcXG4ucS1weS1ub25lIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4ucS1wYi1ub25lLFxcbi5xLXB5LW5vbmUge1xcbiAgcGFkZGluZy1ib3R0b206IDA7XFxufVxcbi5xLW1hLW5vbmUge1xcbiAgbWFyZ2luOiAwIDA7XFxufVxcbi5xLW1sLW5vbmUsXFxuLnEtbXgtbm9uZSB7XFxuICBtYXJnaW4tbGVmdDogMDtcXG59XFxuLnEtbXItbm9uZSxcXG4ucS1teC1ub25lIHtcXG4gIG1hcmdpbi1yaWdodDogMDtcXG59XFxuLnEtbXQtbm9uZSxcXG4ucS1teS1ub25lIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxufVxcbi5xLW1iLW5vbmUsXFxuLnEtbXktbm9uZSB7XFxuICBtYXJnaW4tYm90dG9tOiAwO1xcbn1cXG4ucS1wYS14cyB7XFxuICBwYWRkaW5nOiA0cHggNHB4O1xcbn1cXG4ucS1wbC14cyxcXG4ucS1weC14cyB7XFxuICBwYWRkaW5nLWxlZnQ6IDRweDtcXG59XFxuLnEtcHIteHMsXFxuLnEtcHgteHMge1xcbiAgcGFkZGluZy1yaWdodDogNHB4O1xcbn1cXG4ucS1wdC14cyxcXG4ucS1weS14cyB7XFxuICBwYWRkaW5nLXRvcDogNHB4O1xcbn1cXG4ucS1wYi14cyxcXG4ucS1weS14cyB7XFxuICBwYWRkaW5nLWJvdHRvbTogNHB4O1xcbn1cXG4ucS1tYS14cyB7XFxuICBtYXJnaW46IDRweCA0cHg7XFxufVxcbi5xLW1sLXhzLFxcbi5xLW14LXhzIHtcXG4gIG1hcmdpbi1sZWZ0OiA0cHg7XFxufVxcbi5xLW1yLXhzLFxcbi5xLW14LXhzIHtcXG4gIG1hcmdpbi1yaWdodDogNHB4O1xcbn1cXG4ucS1tdC14cyxcXG4ucS1teS14cyB7XFxuICBtYXJnaW4tdG9wOiA0cHg7XFxufVxcbi5xLW1iLXhzLFxcbi5xLW15LXhzIHtcXG4gIG1hcmdpbi1ib3R0b206IDRweDtcXG59XFxuLnEtcGEtc20ge1xcbiAgcGFkZGluZzogOHB4IDhweDtcXG59XFxuLnEtcGwtc20sXFxuLnEtcHgtc20ge1xcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XFxufVxcbi5xLXByLXNtLFxcbi5xLXB4LXNtIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcXG59XFxuLnEtcHQtc20sXFxuLnEtcHktc20ge1xcbiAgcGFkZGluZy10b3A6IDhweDtcXG59XFxuLnEtcGItc20sXFxuLnEtcHktc20ge1xcbiAgcGFkZGluZy1ib3R0b206IDhweDtcXG59XFxuLnEtbWEtc20ge1xcbiAgbWFyZ2luOiA4cHggOHB4O1xcbn1cXG4ucS1tbC1zbSxcXG4ucS1teC1zbSB7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG4ucS1tci1zbSxcXG4ucS1teC1zbSB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuLnEtbXQtc20sXFxuLnEtbXktc20ge1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbn1cXG4ucS1tYi1zbSxcXG4ucS1teS1zbSB7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxufVxcbi5xLXBhLW1kIHtcXG4gIHBhZGRpbmc6IDE2cHggMTZweDtcXG59XFxuLnEtcGwtbWQsXFxuLnEtcHgtbWQge1xcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xcbn1cXG4ucS1wci1tZCxcXG4ucS1weC1tZCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xcbn1cXG4ucS1wdC1tZCxcXG4ucS1weS1tZCB7XFxuICBwYWRkaW5nLXRvcDogMTZweDtcXG59XFxuLnEtcGItbWQsXFxuLnEtcHktbWQge1xcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XFxufVxcbi5xLW1hLW1kIHtcXG4gIG1hcmdpbjogMTZweCAxNnB4O1xcbn1cXG4ucS1tbC1tZCxcXG4ucS1teC1tZCB7XFxuICBtYXJnaW4tbGVmdDogMTZweDtcXG59XFxuLnEtbXItbWQsXFxuLnEtbXgtbWQge1xcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xcbn1cXG4ucS1tdC1tZCxcXG4ucS1teS1tZCB7XFxuICBtYXJnaW4tdG9wOiAxNnB4O1xcbn1cXG4ucS1tYi1tZCxcXG4ucS1teS1tZCB7XFxuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbn1cXG4ucS1wYS1sZyB7XFxuICBwYWRkaW5nOiAyNHB4IDI0cHg7XFxufVxcbi5xLXBsLWxnLFxcbi5xLXB4LWxnIHtcXG4gIHBhZGRpbmctbGVmdDogMjRweDtcXG59XFxuLnEtcHItbGcsXFxuLnEtcHgtbGcge1xcbiAgcGFkZGluZy1yaWdodDogMjRweDtcXG59XFxuLnEtcHQtbGcsXFxuLnEtcHktbGcge1xcbiAgcGFkZGluZy10b3A6IDI0cHg7XFxufVxcbi5xLXBiLWxnLFxcbi5xLXB5LWxnIHtcXG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xcbn1cXG4ucS1tYS1sZyB7XFxuICBtYXJnaW46IDI0cHggMjRweDtcXG59XFxuLnEtbWwtbGcsXFxuLnEtbXgtbGcge1xcbiAgbWFyZ2luLWxlZnQ6IDI0cHg7XFxufVxcbi5xLW1yLWxnLFxcbi5xLW14LWxnIHtcXG4gIG1hcmdpbi1yaWdodDogMjRweDtcXG59XFxuLnEtbXQtbGcsXFxuLnEtbXktbGcge1xcbiAgbWFyZ2luLXRvcDogMjRweDtcXG59XFxuLnEtbWItbGcsXFxuLnEtbXktbGcge1xcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcXG59XFxuLnEtcGEteGwge1xcbiAgcGFkZGluZzogNDhweCA0OHB4O1xcbn1cXG4ucS1wbC14bCxcXG4ucS1weC14bCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XFxufVxcbi5xLXByLXhsLFxcbi5xLXB4LXhsIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDQ4cHg7XFxufVxcbi5xLXB0LXhsLFxcbi5xLXB5LXhsIHtcXG4gIHBhZGRpbmctdG9wOiA0OHB4O1xcbn1cXG4ucS1wYi14bCxcXG4ucS1weS14bCB7XFxuICBwYWRkaW5nLWJvdHRvbTogNDhweDtcXG59XFxuLnEtbWEteGwge1xcbiAgbWFyZ2luOiA0OHB4IDQ4cHg7XFxufVxcbi5xLW1sLXhsLFxcbi5xLW14LXhsIHtcXG4gIG1hcmdpbi1sZWZ0OiA0OHB4O1xcbn1cXG4ucS1tci14bCxcXG4ucS1teC14bCB7XFxuICBtYXJnaW4tcmlnaHQ6IDQ4cHg7XFxufVxcbi5xLW10LXhsLFxcbi5xLW15LXhsIHtcXG4gIG1hcmdpbi10b3A6IDQ4cHg7XFxufVxcbi5xLW1iLXhsLFxcbi5xLW15LXhsIHtcXG4gIG1hcmdpbi1ib3R0b206IDQ4cHg7XFxufVxcbi5xLW1sLWF1dG8sXFxuLnEtbXgtYXV0byB7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG59XFxuLnEtbXItYXV0byxcXG4ucS1teC1hdXRvIHtcXG4gIG1hcmdpbi1yaWdodDogYXV0bztcXG59XFxuLnEtbXktZm9ybSB7XFxuICBtYXJnaW4tdG9wOiAxNnB4O1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbn1cXG4ucS10b3VjaCB7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgdXNlci1kcmFnOiBub25lO1xcbiAgLWtodG1sLXVzZXItZHJhZzogbm9uZTtcXG4gIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xcbn1cXG4ucS10b3VjaC14IHtcXG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi14O1xcbiAgICAgIHRvdWNoLWFjdGlvbjogcGFuLXg7XFxufVxcbi5xLXRvdWNoLXkge1xcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XFxuICAgICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcXG59XFxuYm9keSB7XFxuICBtaW4td2lkdGg6IDEwMHB4O1xcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCAnLWFwcGxlLXN5c3RlbScsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XFxuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICBjb2xvcjogIzBjMGMwYztcXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xcbn1cXG5oMSB7XFxuICBmb250LXNpemU6IDExMnB4O1xcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjEyO1xcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0ZW07XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICBoMSB7XFxuICAgIGZvbnQtc2l6ZTogNjcuMnB4O1xcbiAgfVxcbn1cXG5oMiB7XFxuICBmb250LXNpemU6IDU2cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XFxuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGgyIHtcXG4gICAgZm9udC1zaXplOiAzMy42cHg7XFxuICB9XFxufVxcbmgzIHtcXG4gIGZvbnQtc2l6ZTogNDVweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogNDhweDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICBoMyB7XFxuICAgIGZvbnQtc2l6ZTogMjdweDtcXG4gIH1cXG59XFxuaDQge1xcbiAgZm9udC1zaXplOiAzNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGg0IHtcXG4gICAgZm9udC1zaXplOiAyMC40cHg7XFxuICB9XFxufVxcbmg1IHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogMzJweDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICBoNSB7XFxuICAgIGZvbnQtc2l6ZTogMTQuMzk5OTk5OTk5OTk5OTk5cHg7XFxuICB9XFxufVxcbmg2IHtcXG4gIGZvbnQtc2l6ZTogMjBweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBsaW5lLWhlaWdodDogMS4xMjtcXG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICBoNiB7XFxuICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gIH1cXG59XFxuLnEtZGlzcGxheS00LW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC41NDtcXG59XFxuLnEtZGlzcGxheS00IHtcXG4gIGZvbnQtc2l6ZTogMTEycHg7XFxuICBmb250LXdlaWdodDogMzAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTI7XFxuICBsZXR0ZXItc3BhY2luZzogLTAuMDRlbTtcXG59XFxuLnEtZGlzcGxheS0zLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC41NDtcXG59XFxuLnEtZGlzcGxheS0zIHtcXG4gIGZvbnQtc2l6ZTogNTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogMS4zNTtcXG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xcbn1cXG4ucS1kaXNwbGF5LTItb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjU0O1xcbn1cXG4ucS1kaXNwbGF5LTIge1xcbiAgZm9udC1zaXplOiA0NXB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuLnEtZGlzcGxheS0xLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC41NDtcXG59XFxuLnEtZGlzcGxheS0xIHtcXG4gIGZvbnQtc2l6ZTogMzRweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogNDBweDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxufVxcbi5xLWhlYWRsaW5lLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC44NztcXG59XFxuLnEtaGVhZGxpbmUge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuLnEtdGl0bGUtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjg3O1xcbn1cXG4ucS10aXRsZSB7XFxuICBmb250LXNpemU6IDIwcHg7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTI7XFxuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xcbn1cXG4ucS1zdWJoZWFkaW5nLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC44NztcXG59XFxuLnEtc3ViaGVhZGluZyB7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbn1cXG4ucS1ib2R5LTItb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjg3O1xcbn1cXG4ucS1ib2R5LTIge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG59XFxuLnEtYm9keS0xLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC44NztcXG59XFxuLnEtYm9keS0xIHtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxufVxcbi5xLWNhcHRpb24tb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjU0O1xcbn1cXG4ucS1jYXB0aW9uIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxufVxcbnAge1xcbiAgbWFyZ2luOiAwIDAgMTZweDtcXG59XFxuLmNhcHRpb24ge1xcbiAgY29sb3I6ICM0MjQyNDI7XFxuICBsZXR0ZXItc3BhY2luZzogMDtcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgcGFkZGluZzogMDtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxufVxcbi51cHBlcmNhc2Uge1xcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcXG59XFxuLmxvd2VyY2FzZSB7XFxuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xcbn1cXG4uY2FwaXRhbGl6ZSB7XFxuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcXG59XFxuLnRleHQtY2VudGVyIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuLnRleHQtbGVmdCB7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbn1cXG4udGV4dC1yaWdodCB7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG59XFxuLnRleHQtanVzdGlmeSB7XFxuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xcbiAgLXdlYmtpdC1oeXBoZW5zOiBhdXRvO1xcbiAgICAgIC1tcy1oeXBoZW5zOiBhdXRvO1xcbiAgICAgICAgICBoeXBoZW5zOiBhdXRvO1xcbn1cXG4udGV4dC1pdGFsaWMge1xcbiAgZm9udC1zdHlsZTogaXRhbGljO1xcbn1cXG4udGV4dC1ib2xkIHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbn1cXG4udGV4dC1uby13cmFwIHtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxufVxcbi50ZXh0LXdlaWdodC10aGluIHtcXG4gIGZvbnQtd2VpZ2h0OiAxMDA7XFxufVxcbi50ZXh0LXdlaWdodC1saWdodCB7XFxuICBmb250LXdlaWdodDogMzAwO1xcbn1cXG4udGV4dC13ZWlnaHQtcmVndWxhciB7XFxuICBmb250LXdlaWdodDogNDAwO1xcbn1cXG4udGV4dC13ZWlnaHQtbWVkaXVtIHtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxufVxcbi50ZXh0LXdlaWdodC1ib2xkIHtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxufVxcbi50ZXh0LXdlaWdodC1ib2xkZXIge1xcbiAgZm9udC13ZWlnaHQ6IDkwMDtcXG59XFxuc21hbGwge1xcbiAgZm9udC1zaXplOiA4MCU7XFxufVxcbmJpZyB7XFxuICBmb250LXNpemU6IDE3MCU7XFxufVxcbnN1YiB7XFxuICBib3R0b206IC0wLjI1ZW07XFxufVxcbnN1cCB7XFxuICB0b3A6IC0wLjVlbTtcXG59XFxuYmxvY2txdW90ZSB7XFxuICBwYWRkaW5nOiA4cHggMTZweDtcXG4gIG1hcmdpbjogMDtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzAyN2JlMztcXG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tcS1jb2xvci1wcmltYXJ5KTtcXG59XFxuYmxvY2txdW90ZS50ZXh0LXJpZ2h0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDE2cHg7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAjMDI3YmUzO1xcbiAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdmFyKC0tcS1jb2xvci1wcmltYXJ5KTtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcbmJsb2NrcXVvdGUgc21hbGwge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBsaW5lLWhlaWdodDogMS40O1xcbiAgY29sb3I6ICM3Nzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1mYWRlZCk7XFxufVxcbmJsb2NrcXVvdGUgc21hbGw6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICdcXFxcMjAxNCBcXFxcMDBBMCc7XFxufVxcbi5xdW90ZSB7XFxuICBwYWRkaW5nOiAxMHB4IDIwcHg7XFxuICBtYXJnaW46IDAgMCAyMHB4O1xcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjMDI3YmUzO1xcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCB2YXIoLS1xLWNvbG9yLXByaW1hcnkpO1xcbn1cXG4ucXVvdGUudGV4dC1yaWdodCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xcbiAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgIzAyN2JlMztcXG4gIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIHZhcigtLXEtY29sb3ItcHJpbWFyeSk7XFxuICBib3JkZXItbGVmdDogMDtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG5kdCB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuZGQge1xcbiAgbWFyZ2luLWxlZnQ6IDA7XFxufVxcbmR0LFxcbmRkIHtcXG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XFxufVxcbmRsIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xcbn1cXG5kbC5ob3Jpem9udGFsIGR0IHtcXG4gIGZsb2F0OiBsZWZ0O1xcbiAgd2lkdGg6IDI1JTtcXG4gIGNsZWFyOiBsZWZ0O1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbn1cXG5kbC5ob3Jpem9udGFsIGRkIHtcXG4gIG1hcmdpbi1sZWZ0OiAzMCU7XFxufVxcbmhyLnEtaHIsXFxuaHIucS1oci1kYXJrIHtcXG4gIGhlaWdodDogMXB4O1xcbiAgbWluLWhlaWdodDogMXB4O1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBib3JkZXI6IG5vbmU7XFxuICB3aWR0aDogMTAwJTtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbmhyLnEtaHItZGFyayB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMzYpO1xcbn1cXG4ubm8tbWFyZ2luIHtcXG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xcbn1cXG4ubm8tcGFkZGluZyB7XFxuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5uby1ib3JkZXIge1xcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5uby1ib3JkZXItcmFkaXVzIHtcXG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcXG59XFxuLm5vLWJveC1zaGFkb3cge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLm5vLW91dGxpbmUge1xcbiAgb3V0bGluZTogMCAhaW1wb3J0YW50O1xcbn1cXG4uZWxsaXBzaXMge1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLmVsbGlwc2lzLTItbGluZXMsXFxuLmVsbGlwc2lzLTMtbGluZXMge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG59XFxuLmVsbGlwc2lzLTItbGluZXMge1xcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xcbn1cXG4uZWxsaXBzaXMtMy1saW5lcyB7XFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XFxufVxcbi5yZWFkb25seSB7XFxuICBjdXJzb3I6IGRlZmF1bHQgIWltcG9ydGFudDtcXG59XFxuLmRpc2FibGVkLFxcbltkaXNhYmxlZF0sXFxuLmRpc2FibGVkICosXFxuW2Rpc2FibGVkXSAqIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcXG59XFxuLmRpc2FibGVkLFxcbltkaXNhYmxlZF0ge1xcbiAgb3BhY2l0eTogMC42ICFpbXBvcnRhbnQ7XFxufVxcbi5oaWRkZW4ge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4uaW52aXNpYmxlIHtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xcbn1cXG4udHJhbnNwYXJlbnQge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG59XFxuLm92ZXJmbG93LWF1dG8ge1xcbiAgb3ZlcmZsb3c6IGF1dG8gIWltcG9ydGFudDtcXG59XFxuLm92ZXJmbG93LWhpZGRlbiB7XFxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XFxufVxcbi5vdmVyZmxvdy1oaWRkZW4teSB7XFxuICBvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDtcXG59XFxuLmRpbW1lZDphZnRlcixcXG4ubGlnaHQtZGltbWVkOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbn1cXG4uZGltbWVkOmFmdGVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC40KSAhaW1wb3J0YW50O1xcbn1cXG4ubGlnaHQtZGltbWVkOmFmdGVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC42KSAhaW1wb3J0YW50O1xcbn1cXG4uei10b3Age1xcbiAgei1pbmRleDogNzAwMCAhaW1wb3J0YW50O1xcbn1cXG4uei1tYXgge1xcbiAgei1pbmRleDogOTk5OCAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCguZGVza3RvcCkgLmRlc2t0b3Atb25seSxcXG5ib2R5LmRlc2t0b3AgLmRlc2t0b3AtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5tb2JpbGUpIC5tb2JpbGUtb25seSxcXG5ib2R5Lm1vYmlsZSAubW9iaWxlLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCguY29yZG92YSkgLmNvcmRvdmEtb25seSxcXG5ib2R5LmNvcmRvdmEgLmNvcmRvdmEtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5lbGVjdHJvbikgLmVsZWN0cm9uLW9ubHksXFxuYm9keS5lbGVjdHJvbiAuZWxlY3Ryb24taGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5pb3MpIC5pb3Mtb25seSxcXG5ib2R5LmlvcyAuaW9zLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCgubWF0KSAubWF0LW9ubHksXFxuYm9keS5tYXQgLm1hdC1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLnRvdWNoKSAudG91Y2gtb25seSxcXG5ib2R5LnRvdWNoIC50b3VjaC1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLndpdGhpbi1pZnJhbWUpIC53aXRoaW4taWZyYW1lLW9ubHksXFxuYm9keS53aXRoaW4taWZyYW1lIC53aXRoaW4taWZyYW1lLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCgucGxhdGZvcm0taW9zKSAucGxhdGZvcm0taW9zLW9ubHksXFxuYm9keS5wbGF0Zm9ybS1pb3MgLnBsYXRmb3JtLWlvcy1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLnBsYXRmb3JtLWFuZHJvaWQpIC5wbGF0Zm9ybS1hbmRyb2lkLW9ubHksXFxuYm9keS5wbGF0Zm9ybS1hbmRyb2lkIC5wbGF0Zm9ybS1hbmRyb2lkLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5AbWVkaWEgYWxsIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XFxuICAub3JpZW50YXRpb24tbGFuZHNjYXBlIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgYWxsIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xcbiAgLm9yaWVudGF0aW9uLXBvcnRyYWl0IHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgc2NyZWVuIHtcXG4gIC5wcmludC1vbmx5IHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgcHJpbnQge1xcbiAgLnByaW50LWhpZGUge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xcbiAgLnhzLWhpZGUsXFxuICAuZ3QteHMsXFxuICAuc20sXFxuICAuZ3Qtc20sXFxuICAubWQsXFxuICAuZ3QtbWQsXFxuICAubGcsXFxuICAuZ3QtbGcsXFxuICAueGwge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAuc20taGlkZSxcXG4gIC54cyxcXG4gIC5sdC1zbSxcXG4gIC5ndC1zbSxcXG4gIC5tZCxcXG4gIC5ndC1tZCxcXG4gIC5sZyxcXG4gIC5ndC1sZyxcXG4gIC54bCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcXG4gIC5tZC1oaWRlLFxcbiAgLnhzLFxcbiAgLmx0LXNtLFxcbiAgLnNtLFxcbiAgLmx0LW1kLFxcbiAgLmd0LW1kLFxcbiAgLmxnLFxcbiAgLmd0LWxnLFxcbiAgLnhsIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcXG4gIC5sZy1oaWRlLFxcbiAgLnhzLFxcbiAgLmx0LXNtLFxcbiAgLnNtLFxcbiAgLmx0LW1kLFxcbiAgLm1kLFxcbiAgLmx0LWxnLFxcbiAgLmd0LWxnLFxcbiAgLnhsIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAueGwtaGlkZSxcXG4gIC54cyxcXG4gIC5sdC1zbSxcXG4gIC5zbSxcXG4gIC5sdC1tZCxcXG4gIC5tZCxcXG4gIC5sdC1sZyxcXG4gIC5sZyxcXG4gIC5sdC14bCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuLnEtZm9jdXMtaGVscGVyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgb3BhY2l0eTogMC4xNTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG59XFxuLnEtZm9jdXMtaGVscGVyLXJvdW5kZWQge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbn1cXG4ucS1mb2N1cy1oZWxwZXItcm91bmQge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtZm9jdXNhYmxlOmZvY3VzIC5xLWZvY3VzLWhlbHBlcixcXG5ib2R5LmRlc2t0b3AgLnEtaG92ZXJhYmxlOmhvdmVyIC5xLWZvY3VzLWhlbHBlciB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbmJvZHkuaW9zIC5xLWhvdmVyYWJsZTphY3RpdmUgLnEtZm9jdXMtaGVscGVyIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIG9wYWNpdHk6IDAuMztcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIH1cXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIgPiBkaXYgPiAucS1pbnB1dC10YXJnZXQge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICB9XFxuICAucS1pZiA+IC5xLWlmLWlubmVyID4gZGl2ID4gaW5wdXQucS1pbnB1dC10YXJnZXQge1xcbiAgICBtaW4td2lkdGg6IDNyZW07XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAwJSAhaW1wb3J0YW50O1xcbiAgICAgICAgZmxleC1iYXNpczogMCUgIWltcG9ydGFudDtcXG4gIH1cXG4gIC5xLWlucHV0LXRhcmdldDpiZWZvcmUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gIH1cXG4gIC5xLWlmLWxhYmVsLXNwYWNlciB7XFxuICAgIHdpZHRoOiAwO1xcbiAgfVxcbiAgLnEtZWRpdG9yLXRvb2xiYXIgLnEtYnRuLWdyb3VwLnJvdy5pbmxpbmUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIH1cXG4gIC5xLXRvb2xiYXIsXFxuICAucS1hY3Rpb25zaGVldC10aXRsZSxcXG4gIC5xLWZpZWxkLWxhYmVsLWlubmVyIHtcXG4gICAgaGVpZ2h0OiAwcHg7XFxuICB9XFxuICAucS1jYXJvdXNlbC1zbGlkZSB7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAuY29sLnEtYWxlcnQtY29udGVudCB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLXNsaWRlci1oYW5kbGUgPiAucS1jaGlwLmlubGluZS5yb3cge1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG4gIH1cXG4gIGEucS1idG46bm90KC5xLWJ0bi1yb3VuZCkge1xcbiAgICBoZWlnaHQ6IDBweDtcXG4gIH1cXG4gIC5xLWJ0biAucS1idG4taW5uZXIge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICB9XFxuICAucS1idG46YWN0aXZlIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAtMXB4IDFweCAxcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUucS1idG4tcHVzaCAucS1idG4taW5uZXIsXFxuICAucS1idG4uYWN0aXZlLnEtYnRuLXB1c2ggLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAxcHggMXB4IC0xcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUucS1idG4tcHVzaC5kaXNhYmxlZCAucS1idG4taW5uZXIsXFxuICAucS1idG4uYWN0aXZlLnEtYnRuLXB1c2guZGlzYWJsZWQgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAtMXB4IDFweCAxcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bi1ncm91cCA+IC5xLWJ0bi5xLWJ0bi1wdXNoOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSAucS1idG4taW5uZXIsXFxuICAucS1idG4tZ3JvdXAgPiAucS1idG4ucS1idG4tcHVzaDpub3QoLmRpc2FibGVkKS5hY3RpdmUgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcbiAgLnEtY2hpcDpub3QoLnEtY2hpcC1zbWFsbCk6bm90KC5xLWNoaXAtZGVuc2UpIC5xLWNoaXAtbWFpbiB7XFxuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgfVxcbiAgLnEtYnRuIC5xLWNoaXAge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB9XFxuICAucS10YWIgLnEtY2hpcCAucS1jaGlwLW1haW4ge1xcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xcbiAgfVxcbiAgLnEtZmFiLWFjdGlvbnMucS1mYWItbGVmdCxcXG4gIC5xLWZhYi1hY3Rpb25zLnEtZmFiLXJpZ2h0IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB9XFxuICAucS1pdGVtLW1haW4ge1xcbiAgICBtaW4td2lkdGg6IDFweDtcXG4gIH1cXG4gIC5xLWxheW91dC1kcmF3ZXItbWluaSAucS1pdGVtIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xcbiAgfVxcbiAgLnEtbW9kYWwtbGF5b3V0IHtcXG4gICAgbWluLWhlaWdodDogODB2aCAhaW1wb3J0YW50O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcbn1cXG5Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIH1cXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIgPiBkaXYgPiAucS1pbnB1dC10YXJnZXQge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICB9XFxuICAucS1pZiA+IC5xLWlmLWlubmVyID4gZGl2ID4gaW5wdXQucS1pbnB1dC10YXJnZXQge1xcbiAgICBtaW4td2lkdGg6IDNyZW07XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAwJSAhaW1wb3J0YW50O1xcbiAgICAgICAgZmxleC1iYXNpczogMCUgIWltcG9ydGFudDtcXG4gIH1cXG4gIC5xLWlucHV0LXRhcmdldDpiZWZvcmUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gIH1cXG4gIC5xLWlmLWxhYmVsLXNwYWNlciB7XFxuICAgIHdpZHRoOiAwO1xcbiAgfVxcbiAgLnEtZWRpdG9yLXRvb2xiYXIgLnEtYnRuLWdyb3VwLnJvdy5pbmxpbmUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIH1cXG4gIC5xLXRvb2xiYXIsXFxuICAucS1hY3Rpb25zaGVldC10aXRsZSxcXG4gIC5xLWZpZWxkLWxhYmVsLWlubmVyIHtcXG4gICAgaGVpZ2h0OiAwcHg7XFxuICB9XFxuICAucS1jYXJvdXNlbC1zbGlkZSB7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAuY29sLnEtYWxlcnQtY29udGVudCB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLXNsaWRlci1oYW5kbGUgPiAucS1jaGlwLmlubGluZS5yb3cge1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG4gIH1cXG4gIGEucS1idG46bm90KC5xLWJ0bi1yb3VuZCkge1xcbiAgICBoZWlnaHQ6IDBweDtcXG4gIH1cXG4gIC5xLWJ0biAucS1idG4taW5uZXIge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICB9XFxuICAucS1idG46YWN0aXZlIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAtMXB4IDFweCAxcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUucS1idG4tcHVzaCAucS1idG4taW5uZXIsXFxuICAucS1idG4uYWN0aXZlLnEtYnRuLXB1c2ggLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAxcHggMXB4IC0xcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUucS1idG4tcHVzaC5kaXNhYmxlZCAucS1idG4taW5uZXIsXFxuICAucS1idG4uYWN0aXZlLnEtYnRuLXB1c2guZGlzYWJsZWQgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAtMXB4IDFweCAxcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bi1ncm91cCA+IC5xLWJ0bi5xLWJ0bi1wdXNoOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSAucS1idG4taW5uZXIsXFxuICAucS1idG4tZ3JvdXAgPiAucS1idG4ucS1idG4tcHVzaDpub3QoLmRpc2FibGVkKS5hY3RpdmUgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcbiAgLnEtY2hpcDpub3QoLnEtY2hpcC1zbWFsbCk6bm90KC5xLWNoaXAtZGVuc2UpIC5xLWNoaXAtbWFpbiB7XFxuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgfVxcbiAgLnEtYnRuIC5xLWNoaXAge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB9XFxuICAucS10YWIgLnEtY2hpcCAucS1jaGlwLW1haW4ge1xcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xcbiAgfVxcbiAgLnEtZmFiLWFjdGlvbnMucS1mYWItbGVmdCxcXG4gIC5xLWZhYi1hY3Rpb25zLnEtZmFiLXJpZ2h0IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB9XFxuICAucS1pdGVtLW1haW4ge1xcbiAgICBtaW4td2lkdGg6IDFweDtcXG4gIH1cXG4gIC5xLWxheW91dC1kcmF3ZXItbWluaSAucS1pdGVtIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xcbiAgfVxcbiAgLnEtbW9kYWwtbGF5b3V0IHtcXG4gICAgbWluLWhlaWdodDogODB2aCAhaW1wb3J0YW50O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgd2Via2l0LWF1dG9maWxsLW9uIHtcXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAgIGNvbG9yOiAjZmY5ODAwO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHdlYmtpdC1hdXRvZmlsbC1vbiB7XFxuICB0byB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgICBjb2xvcjogI2ZmOTgwMDtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHdlYmtpdC1hdXRvZmlsbC1vZmYge1xcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyB3ZWJraXQtYXV0b2ZpbGwtb2ZmIHtcXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUge1xcbiAgMCUge1xcbiAgICBsZWZ0OiAtMzUlO1xcbiAgICByaWdodDogMTAwJTtcXG4gIH1cXG4gIDYwJSB7XFxuICAgIGxlZnQ6IDEwMCU7XFxuICAgIHJpZ2h0OiAtOTAlO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGxlZnQ6IDEwMCU7XFxuICAgIHJpZ2h0OiAtOTAlO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZSB7XFxuICAwJSB7XFxuICAgIGxlZnQ6IC0zNSU7XFxuICAgIHJpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgNjAlIHtcXG4gICAgbGVmdDogMTAwJTtcXG4gICAgcmlnaHQ6IC05MCU7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgbGVmdDogMTAwJTtcXG4gICAgcmlnaHQ6IC05MCU7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUtc2hvcnQge1xcbiAgMCUge1xcbiAgICBsZWZ0OiAtMjAwJTtcXG4gICAgcmlnaHQ6IDEwMCU7XFxuICB9XFxuICA2MCUge1xcbiAgICBsZWZ0OiAxMDclO1xcbiAgICByaWdodDogLTglO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGxlZnQ6IDEwNyU7XFxuICAgIHJpZ2h0OiAtOCU7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1wcm9ncmVzcy1pbmRldGVybWluYXRlLXNob3J0IHtcXG4gIDAlIHtcXG4gICAgbGVmdDogLTIwMCU7XFxuICAgIHJpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgNjAlIHtcXG4gICAgbGVmdDogMTA3JTtcXG4gICAgcmlnaHQ6IC04JTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBsZWZ0OiAxMDclO1xcbiAgICByaWdodDogLTglO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1wcm9ncmVzcy1zdHJpcGVzIHtcXG4gIGZyb20ge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MHB4IDA7XFxuICB9XFxuICB0byB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXByb2dyZXNzLXN0cmlwZXMge1xcbiAgZnJvbSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDQwcHggMDtcXG4gIH1cXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1tYXQtZGFzaCB7XFxuICAwJSB7XFxuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDEsIDIwMDtcXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XFxuICB9XFxuICA1MCUge1xcbiAgICBzdHJva2UtZGFzaGFycmF5OiA4OSwgMjAwO1xcbiAgICBzdHJva2UtZGFzaG9mZnNldDogLTM1cHg7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogODksIDIwMDtcXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xMjRweDtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLW1hdC1kYXNoIHtcXG4gIDAlIHtcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogMSwgMjAwO1xcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDg5LCAyMDA7XFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMzVweDtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBzdHJva2UtZGFzaGFycmF5OiA4OSwgMjAwO1xcbiAgICBzdHJva2UtZGFzaG9mZnNldDogLTEyNHB4O1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1oaWdobGlnaHQge1xcbiAgMCUge1xcbiAgICBiYWNrZ3JvdW5kOiAjY2RkYzM5O1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtaGlnaGxpZ2h0IHtcXG4gIDAlIHtcXG4gICAgYmFja2dyb3VuZDogI2NkZGMzOTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcm90YXRlIHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICAyNSUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgNTAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgNzUlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXJvdGF0ZSB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCkgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgMjUlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDUwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDc1JSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLWJsaW5rIHtcXG4gIHRvIHtcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtYmxpbmsge1xcbiAgdG8ge1xcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXNwaW4ge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1zcGluIHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1wb3Age1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICB9XFxuICA3MCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wNyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA3KTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXBvcCB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gIH1cXG4gIDcwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjA3KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1mYWRlIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtZmFkZSB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtc2NhbGUge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1zY2FsZSB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtYm91bmNlIHtcXG4gIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgfVxcbiAgNDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XFxuICB9XFxuICA2MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLWJvdW5jZSB7XFxuICAwJSwgMjAlLCA1MCUsIDgwJSwgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gIH1cXG4gIDQwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpO1xcbiAgfVxcbiAgNjAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXNoYWtlIHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxuICA1MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wMik7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXNoYWtlIHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxuICA1MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wMik7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcG9wdXAtZG93biB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIH1cXG4gIDMwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1wb3B1cC1kb3duIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgfVxcbiAgMzAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcG9wdXAtdXAge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgfVxcbiAgMzAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXBvcHVwLXVwIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIH1cXG4gIDMwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXNsaWRlLWxlZnQge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNzAlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTcwJSk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1zbGlkZS1sZWZ0IHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTcwJSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03MCUpO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1zbGlkZS1yaWdodCB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDcwJSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDcwJSk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1zbGlkZS1yaWdodCB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDcwJSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDcwJSk7XFxuICB9XFxufVxcblwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL25vZGVfbW9kdWxlcy9xdWFzYXItZnJhbWV3b3JrL2Rpc3QvdW1kL3F1YXNhci5tYXQuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBOzs7O0VBSUU7QUFDRjs7O0VBR0UsMkJBQTJCO1VBQ25CLG1CQUFtQjtFQUMzQix3Q0FBd0M7RUFDeEMscUNBQXFDO0FBQ3ZDO0FBQ0E7OztFQUdFLFdBQVc7RUFDWCxjQUFjO0FBQ2hCO0FBQ0E7O0VBRUUsU0FBUztFQUNULDhCQUE4QjtVQUN0QixzQkFBc0I7QUFDaEM7QUFDQTs7OztFQUlFLHdCQUF3QjtFQUN4QiwrQ0FBK0M7QUFDakQ7QUFDQTs7Ozs7Ozs7Ozs7O0VBWUUsY0FBYztBQUNoQjtBQUNBO0VBQ0UsYUFBYTtFQUNiLFNBQVM7QUFDWDtBQUNBO0VBQ0UsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMxQix5Q0FBeUM7VUFDakMsaUNBQWlDO0FBQzNDO0FBQ0E7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7Ozs7RUFJRSxpQ0FBaUM7RUFDakMsY0FBYztBQUNoQjtBQUNBO0VBQ0UsK0JBQStCO1VBQ3ZCLHVCQUF1QjtFQUMvQixTQUFTO0VBQ1QsaUJBQWlCO0FBQ25CO0FBQ0E7Ozs7RUFJRSxhQUFhO0VBQ2IsU0FBUztBQUNYO0FBQ0E7RUFDRSxpQkFBaUI7QUFDbkI7QUFDQTs7O0VBR0UsaUJBQWlCO0FBQ25CO0FBQ0E7O0VBRUUsU0FBUztFQUNULFVBQVU7QUFDWjtBQUNBOztFQUVF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QUFDQTtFQUNFLFdBQVc7QUFDYjtBQUNBO0VBQ0UsT0FBTztFQUNQLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsU0FBUztFQUNULDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsVUFBVTtFQUNWLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsU0FBUztFQUNULDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsVUFBVTtFQUNWLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsU0FBUztFQUNULDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsT0FBTztFQUNQLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsU0FBUztFQUNULDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsVUFBVTtFQUNWLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsU0FBUztFQUNULDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsVUFBVTtFQUNWLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsU0FBUztFQUNULDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsT0FBTztFQUNQLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsV0FBVztFQUNYLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsVUFBVTtFQUNWLDZC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QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FB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QUNGO0FBQ0E7RUFDRTtJQUNFLFVBQVU7SUFDViwrQ0FBK0M7WUFDdkMsdUNBQXVDO0lBQy9DLG9CQUFvQjtFQUN0QjtFQUNBO0lBQ0UsVUFBVTtFQUNaO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsVUFBVTtJQUNWLCtDQUErQztZQUN2Qyx1Q0FBdUM7SUFDL0Msb0JBQW9CO0VBQ3RCO0VBQ0E7SUFDRSxVQUFVO0VBQ1o7QUFDRjtBQUNBO0VBQ0U7SUFDRSxtQ0FBbUM7WUFDM0IsMkJBQTJCO0VBQ3JDO0FBQ0Y7QUFDQTtFQUNFO0lBQ0UsbUNBQW1DO1lBQzNCLDJCQUEyQjtFQUNyQztBQUNGO0FBQ0E7RUFDRTtJQUNFLGtDQUFrQztZQUMxQiwwQkFBMEI7RUFDcEM7QUFDRjtBQUNBO0VBQ0U7SUFDRSxrQ0FBa0M7WUFDMUIsMEJBQTBCO0VBQ3BDO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLypcXG4gKiBRdWFzYXIgRnJhbWV3b3JrIHYwLjE3LjIwXFxuICogKGMpIDIwMTYtcHJlc2VudCBSYXp2YW4gU3RvZW5lc2N1XFxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxcbiAqL1xcbiosXFxuKjpiZWZvcmUsXFxuKjphZnRlciB7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGluaGVyaXQ7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XFxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgLW1vei10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuaHRtbCxcXG5ib2R5LFxcbiNxLWFwcCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGRpcmVjdGlvbjogbHRyO1xcbn1cXG5odG1sLFxcbmJvZHkge1xcbiAgbWFyZ2luOiAwO1xcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbn1cXG5pbnB1dFt0eXBlPSd0ZXh0J10sXFxuaW5wdXRbdHlwZT0nZW1haWwnXSxcXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSxcXG5pbnB1dFt0eXBlPSdwYXNzd29yZCddIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZSAvKiBtb2JpbGUgZmlyZWZveCB0b28hICovO1xcbn1cXG5hcnRpY2xlLFxcbmFzaWRlLFxcbmRldGFpbHMsXFxuZmlnY2FwdGlvbixcXG5maWd1cmUsXFxuZm9vdGVyLFxcbmhlYWRlcixcXG5tYWluLFxcbm1lbnUsXFxubmF2LFxcbnNlY3Rpb24sXFxuc3VtbWFyeSB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuYXVkaW86bm90KFtjb250cm9sc10pIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICBoZWlnaHQ6IDA7XFxufVxcbmFiYnJbdGl0bGVdIHtcXG4gIGJvcmRlci1ib3R0b206IG5vbmU7XFxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxufVxcbmRmbiB7XFxuICBmb250LXN0eWxlOiBpdGFsaWM7XFxufVxcbmltZyB7XFxuICBib3JkZXItc3R5bGU6IG5vbmU7XFxufVxcbnN2Zzpub3QoOnJvb3QpIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbmNvZGUsXFxua2JkLFxcbnByZSxcXG5zYW1wIHtcXG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcXG4gIGZvbnQtc2l6ZTogMWVtO1xcbn1cXG5ociB7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gIGhlaWdodDogMDtcXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xcbn1cXG5idXR0b24sXFxuaW5wdXQsXFxuc2VsZWN0LFxcbnRleHRhcmVhIHtcXG4gIGZvbnQ6IGluaGVyaXQ7XFxuICBtYXJnaW46IDA7XFxufVxcbm9wdGdyb3VwIHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbn1cXG5idXR0b24sXFxuaW5wdXQsXFxuc2VsZWN0IHtcXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xcbn1cXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xcbiAgYm9yZGVyOiAwO1xcbiAgcGFkZGluZzogMDtcXG59XFxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxcbmlucHV0Oi1tb3otZm9jdXNyaW5nIHtcXG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcXG59XFxudGV4dGFyZWEge1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xcbn1cXG5pbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcXG5pbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxufVxcbi5xLWljb24ge1xcbiAgbGluZS1oZWlnaHQ6IDE7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgd29yZC13cmFwOiBub3JtYWw7XFxuICBkaXJlY3Rpb246IGx0cjtcXG59XFxuLnEtaWNvbixcXG4ubWF0ZXJpYWwtaWNvbnMge1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIGN1cnNvcjogaW5oZXJpdDtcXG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4ucS1hY3Rpb25zaGVldC10aXRsZSB7XFxuICBtaW4taGVpZ2h0OiA1NnB4O1xcbiAgcGFkZGluZzogMCAxNnB4O1xcbiAgY29sb3I6ICM3Nzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1mYWRlZCk7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWJvZHkge1xcbiAgbWF4LWhlaWdodDogNTAwcHg7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQge1xcbiAgcGFkZGluZzogOHB4IDE2cHg7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQgLnEtaXRlbS1zZXBhcmF0b3ItY29tcG9uZW50IHtcXG4gIG1hcmdpbjogMjRweCAwO1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW0ge1xcbiAgcGFkZGluZzogOHB4IDE2cHg7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcztcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcztcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtOmhvdmVyLFxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kOiAjZDBkMGQwO1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtIGksXFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtIGltZyB7XFxuICBmb250LXNpemU6IDQ4cHg7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbSAuYXZhdGFyIHtcXG4gIHdpZHRoOiA0OHB4O1xcbiAgaGVpZ2h0OiA0OHB4O1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW0gc3BhbiB7XFxuICBjb2xvcjogIzc3NztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWZhZGVkKTtcXG59XFxuLnEtbG9hZGluZy1iYXIge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgei1pbmRleDogOTk5ODtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIG9wYWNpdHkgMC41cztcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpLCBvcGFjaXR5IDAuNXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XFxufVxcbi5xLWxvYWRpbmctYmFyLnRvcCB7XFxuICBsZWZ0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxuICByaWdodDogMCAvKiBydGw6aWdub3JlICovO1xcbiAgdG9wOiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5xLWxvYWRpbmctYmFyLmJvdHRvbSB7XFxuICBsZWZ0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxuICByaWdodDogMCAvKiBydGw6aWdub3JlICovO1xcbiAgYm90dG9tOiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5xLWxvYWRpbmctYmFyLnJpZ2h0IHtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1sb2FkaW5nLWJhci5sZWZ0IHtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWFsZXJ0IHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLnEtYWxlcnQgLmF2YXRhciB7XFxuICB3aWR0aDogMzJweDtcXG4gIGhlaWdodDogMzJweDtcXG59XFxuLnEtYWxlcnQtc2lkZSxcXG4ucS1hbGVydC1jb250ZW50IHtcXG4gIHBhZGRpbmc6IDEycHg7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xcbn1cXG4ucS1hbGVydC1zaWRlIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKTtcXG59XFxuLnEtYWxlcnQtYWN0aW9ucyB7XFxuICBwYWRkaW5nOiAxMnB4IDEycHggMTJweCAwO1xcbn1cXG4ucS1hbGVydC1kZXRhaWwge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbn1cXG4ucS1icmVhZGNydW1icyAucS1pY29uLFxcbi5xLWJyZWFkY3J1bWJzIC5xLWJyZWFkY3J1bWJzLXNlcGFyYXRvciB7XFxuICBmb250LXNpemU6IDE1MCU7XFxufVxcbi5xLWJyZWFkY3J1bWJzLWxhc3QgYSB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuW2Rpcj1ydGxdIC5xLWJyZWFkY3J1bWJzLXNlcGFyYXRvciAucS1pY29uIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoLTEpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1idG4ge1xcbiAgb3V0bGluZTogMDtcXG4gIGJvcmRlcjogMDtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBwYWRkaW5nOiA0cHggMTZweDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIG1pbi1oZWlnaHQ6IDIuNTcyZW07XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbn1cXG5idXR0b24ucS1idG4ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XFxufVxcbmEucS1idG4ge1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxufVxcbi5xLWJ0biAucS1pY29uLFxcbi5xLWJ0biAucS1zcGlubmVyIHtcXG4gIGZvbnQtc2l6ZTogMS40ZW07XFxufVxcbi5xLWJ0biAucS1idG4taW5uZXIge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnM7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnM7XFxufVxcbi5xLWJ0biAucS1idG4taW5uZXItLWhpZGRlbiB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1idG4gLnEtYnRuLWlubmVyOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG59XFxuLnEtYnRuLmRpc2FibGVkIHtcXG4gIG9wYWNpdHk6IDAuNyAhaW1wb3J0YW50O1xcbn1cXG4ucS1idG46bm90KC5kaXNhYmxlZCk6bm90KC5xLWJ0bi1mbGF0KTpub3QoLnEtYnRuLW91dGxpbmUpOm5vdCgucS1idG4tcHVzaCk6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG4gIHotaW5kZXg6IC0xO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxufVxcbi5xLWJ0bjpub3QoLmRpc2FibGVkKTpub3QoLnEtYnRuLWZsYXQpOm5vdCgucS1idG4tb3V0bGluZSk6bm90KC5xLWJ0bi1wdXNoKTphY3RpdmU6YmVmb3JlLFxcbi5xLWJ0bjpub3QoLmRpc2FibGVkKTpub3QoLnEtYnRuLWZsYXQpOm5vdCgucS1idG4tb3V0bGluZSk6bm90KC5xLWJ0bi1wdXNoKS5hY3RpdmU6YmVmb3JlIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggNXB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDhweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLWJ0bi1wcm9ncmVzcyB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpO1xcbn1cXG4ucS1idG4tcHJvZ3Jlc3MucS1idG4tZGFyay1wcm9ncmVzcyB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMik7XFxufVxcbi5xLWJ0bi1uby11cHBlcmNhc2Uge1xcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XFxufVxcbi5xLWJ0bi1yZWN0YW5nbGUge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbn1cXG4ucS1idG4tb3V0bGluZSB7XFxuICBib3JkZXI6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbn1cXG4ucS1idG4tcHVzaCB7XFxuICBib3JkZXItcmFkaXVzOiA3cHg7XFxuICBib3JkZXItYm90dG9tOiAzcHggc29saWQgcmdiYSgwLDAsMCwwLjE1KTtcXG59XFxuLnEtYnRuLXB1c2g6YWN0aXZlOm5vdCguZGlzYWJsZWQpLFxcbi5xLWJ0bi1wdXNoLmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoM3B4KTtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4ucS1idG4tcHVzaCAucS1mb2N1cy1oZWxwZXIsXFxuLnEtYnRuLXB1c2ggLnEtcmlwcGxlLWNvbnRhaW5lciB7XFxuICBoZWlnaHQ6IGF1dG87XFxuICBib3R0b206IC0zcHg7XFxufVxcbi5xLWJ0bi1yb3VuZGVkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDI4cHg7XFxufVxcbi5xLWJ0bi1yb3VuZCB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBwYWRkaW5nOiAwO1xcbiAgbWluLWhlaWdodDogMDtcXG4gIGhlaWdodDogM2VtO1xcbiAgd2lkdGg6IDNlbTtcXG59XFxuLnEtYnRuLWZsYXQsXFxuLnEtYnRuLW91dGxpbmUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG4ucS1idG4tZGVuc2Uge1xcbiAgcGFkZGluZzogMC4yODVlbTtcXG4gIG1pbi1oZWlnaHQ6IDJlbTtcXG59XFxuLnEtYnRuLWRlbnNlLnEtYnRuLXJvdW5kIHtcXG4gIHBhZGRpbmc6IDA7XFxuICBoZWlnaHQ6IDIuNGVtO1xcbiAgd2lkdGg6IDIuNGVtO1xcbn1cXG4ucS1idG4tZGVuc2UgLm9uLWxlZnQge1xcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XFxufVxcbi5xLWJ0bi1kZW5zZSAub24tcmlnaHQge1xcbiAgbWFyZ2luLWxlZnQ6IDZweDtcXG59XFxuLnEtYnRuLWZhYiAucS1pY29uLFxcbi5xLWJ0bi1mYWItbWluaSAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG59XFxuLnEtYnRuLWZhYiB7XFxuICBoZWlnaHQ6IDU2cHg7XFxuICB3aWR0aDogNTZweDtcXG59XFxuLnEtYnRuLWZhYi1taW5pIHtcXG4gIGhlaWdodDogNDBweDtcXG4gIHdpZHRoOiA0MHB4O1xcbn1cXG4ucS10cmFuc2l0aW9uLS1mYWRlLWxlYXZlLWFjdGl2ZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxufVxcbi5xLXRyYW5zaXRpb24tLWZhZGUtZW50ZXItYWN0aXZlLFxcbi5xLXRyYW5zaXRpb24tLWZhZGUtbGVhdmUtYWN0aXZlIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2Utb3V0O1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2Utb3V0O1xcbn1cXG4ucS10cmFuc2l0aW9uLS1mYWRlLWVudGVyLFxcbi5xLXRyYW5zaXRpb24tLWZhZGUtbGVhdmUsXFxuLnEtdHJhbnNpdGlvbi0tZmFkZS1sZWF2ZS10byB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1idG4tZHJvcGRvd24tc3BsaXQgLnEtYnRuLWRyb3Bkb3duLWFycm93IHtcXG4gIHBhZGRpbmc6IDAgNHB4O1xcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMyk7XFxufVxcbi5xLWJ0bi1ncm91cCB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1pdGVtIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWdyb3VwID4gLnEtYnRuOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGluaGVyaXQ7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4tZ3JvdXAgPiAucS1idG46bGFzdC1jaGlsZCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCkgPiAucS1idG46Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLWxlZnQ6IDA7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1ncm91cDpub3QoOmxhc3QtY2hpbGQpID4gLnEtYnRuOmxhc3QtY2hpbGQge1xcbiAgYm9yZGVyLXJpZ2h0OiAwO1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4taXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1pdGVtICsgLnEtYnRuLWl0ZW0ge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XFxufVxcbi5xLWJ0bi1ncm91cC1wdXNoIHtcXG4gIGJvcmRlci1yYWRpdXM6IDdweDtcXG59XFxuLnEtYnRuLWdyb3VwLXB1c2ggPiAucS1idG4tcHVzaCAucS1idG4taW5uZXIge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxufVxcbi5xLWJ0bi1ncm91cC1wdXNoID4gLnEtYnRuLXB1c2g6YWN0aXZlOm5vdCguZGlzYWJsZWQpLFxcbi5xLWJ0bi1ncm91cC1wdXNoID4gLnEtYnRuLXB1c2guYWN0aXZlOm5vdCguZGlzYWJsZWQpIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwwLDAsMC4xNSk7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbn1cXG4ucS1idG4tZ3JvdXAtcHVzaCA+IC5xLWJ0bi1wdXNoOmFjdGl2ZTpub3QoLmRpc2FibGVkKSAucS1idG4taW5uZXIsXFxuLnEtYnRuLWdyb3VwLXB1c2ggPiAucS1idG4tcHVzaC5hY3RpdmU6bm90KC5kaXNhYmxlZCkgLnEtYnRuLWlubmVyIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpO1xcbn1cXG4ucS1idG4tZ3JvdXAtcm91bmRlZCB7XFxuICBib3JkZXItcmFkaXVzOiAyOHB4O1xcbn1cXG4ucS1idG4tZ3JvdXAtZmxhdCxcXG4ucS1idG4tZ3JvdXAtb3V0bGluZSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5xLWJ0bi1ncm91cC1vdXRsaW5lID4gLnEtYnRuLWl0ZW0gKyAucS1idG4taXRlbSB7XFxuICBib3JkZXItbGVmdDogMDtcXG59XFxuLnEtYnRuLWdyb3VwLW91dGxpbmUgPiAucS1idG4taXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gIGJvcmRlci1yaWdodDogMDtcXG59XFxuLnEtY2FyZCB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XFxufVxcbi5xLWNhcmQgPiBkaXY6Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xcbn1cXG4ucS1jYXJkID4gZGl2Omxhc3QtY2hpbGQge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xcbn1cXG4ucS1jYXJkID4gLnEtbGlzdCB7XFxuICBib3JkZXI6IDA7XFxufVxcbi5xLWNhcmQtc2VwYXJhdG9yIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKTtcXG4gIGhlaWdodDogMXB4O1xcbn1cXG4ucS1jYXJkLXNlcGFyYXRvci5pbnNldCB7XFxuICBtYXJnaW46IDAgMTZweDtcXG59XFxuLnEtY2FyZC1jb250YWluZXIge1xcbiAgcGFkZGluZzogMTZweDtcXG59XFxuLnEtY2FyZC10aXRsZSB7XFxuICBmb250LXNpemU6IDE4cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG4gIGxpbmUtaGVpZ2h0OiAycmVtO1xcbn1cXG4ucS1jYXJkLXRpdGxlOmVtcHR5IHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWNhcmQtc3VidGl0bGUsXFxuLnEtY2FyZC10aXRsZS1leHRyYSB7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjQpO1xcbn1cXG4ucS1jYXJkLXN1YnRpdGxlIC5xLWljb24sXFxuLnEtY2FyZC10aXRsZS1leHRyYSAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG59XFxuLnEtY2FyZC1tYWluIHtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG59XFxuLnEtY2FyZC1wcmltYXJ5ICsgLnEtY2FyZC1tYWluIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4ucS1jYXJkLWFjdGlvbnMge1xcbiAgcGFkZGluZzogOHB4O1xcbn1cXG4ucS1jYXJkLWFjdGlvbnMgLnEtYnRuIHtcXG4gIHBhZGRpbmc6IDAgOHB4O1xcbn1cXG4ucS1jYXJkLWFjdGlvbnMtaG9yaXogLnEtYnRuOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbi5xLWNhcmQtYWN0aW9ucy12ZXJ0IC5xLWJ0biArIC5xLWJ0biB7XFxuICBtYXJnaW4tdG9wOiA0cHg7XFxufVxcbi5xLWNhcmQtbWVkaWEge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtY2FyZC1tZWRpYSA+IGltZyB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgYm9yZGVyOiAwO1xcbn1cXG4ucS1jYXJkLW1lZGlhLW92ZXJsYXkge1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNDcpO1xcbn1cXG4ucS1jYXJkLW1lZGlhLW92ZXJsYXkgLnEtY2FyZC1zdWJ0aXRsZSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtY2FyZC1kYXJrIC5xLWNhcmQtc2VwYXJhdG9yIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcXG59XFxuLnEtY2FyZC1kYXJrIC5xLWNhcmQtc3VidGl0bGUsXFxuLnEtY2FyZC1kYXJrIC5xLWNhcmQtdGl0bGUtZXh0cmEge1xcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTtcXG59XFxuLnEtY2Fyb3VzZWwge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnEtY2Fyb3VzZWwtaW5uZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1jYXJvdXNlbC1zbGlkZSB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgMTAwJTtcXG4gICAgICAgICAgZmxleDogMCAwIDEwMCU7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAxOHB4O1xcbn1cXG4ucS1jYXJvdXNlbC10cmFjayB7XFxuICBwYWRkaW5nOiAwO1xcbiAgbWFyZ2luOiAwO1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1jYXJvdXNlbC10cmFjay5pbmZpbml0ZS1sZWZ0ID4gZGl2Om50aC1sYXN0LWNoaWxkKDIpIHtcXG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IC05OTk7XFxuICAgICAgLW1zLWZsZXgtb3JkZXI6IC0xMDAwO1xcbiAgICAgICAgICBvcmRlcjogLTEwMDA7XFxuICBtYXJnaW4tbGVmdDogLTEwMCU7XFxufVxcbi5xLWNhcm91c2VsLXRyYWNrLmluZmluaXRlLXJpZ2h0ID4gZGl2Om50aC1jaGlsZCgyKSB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAxMDAxO1xcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAxMDAwO1xcbiAgICAgICAgICBvcmRlcjogMTAwMDtcXG59XFxuLnEtY2Fyb3VzZWwtbGVmdC1hcnJvdyxcXG4ucS1jYXJvdXNlbC1yaWdodC1hcnJvdyB7XFxuICB0b3A6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMyk7XFxufVxcbi5xLWNhcm91c2VsLWxlZnQtYXJyb3cge1xcbiAgbGVmdDogNXB4O1xcbn1cXG4ucS1jYXJvdXNlbC1yaWdodC1hcnJvdyB7XFxuICByaWdodDogNXB4O1xcbn1cXG4ucS1jYXJvdXNlbC1xdWljay1uYXYge1xcbiAgcGFkZGluZzogMnB4IDA7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMyk7XFxufVxcbi5xLWNhcm91c2VsLXF1aWNrLW5hdiAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xcbn1cXG4ucS1jYXJvdXNlbC1xdWljay1uYXYgLnEtYnRuLmluYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtY2Fyb3VzZWwtcXVpY2stbmF2IC5xLWJ0bi5pbmFjdGl2ZSAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xcbn1cXG4ucS1jYXJvdXNlbC10aHVtYm5haWxzIHtcXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XFxuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3M7XFxuICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjNzO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcywgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcztcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwNSUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTA1JSk7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogYXV0bztcXG4gIG1heC1oZWlnaHQ6IDYwJTtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbiAgYmFja2dyb3VuZDogIzAwMDtcXG4gIHBhZGRpbmc6IDAuNXJlbTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtM3B4IDZweCByZ2JhKDAsMCwwLDAuMTYpLCAwIC01cHggNnB4IHJnYmEoMCwwLDAsMC4yMyk7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTNweCA2cHggcmdiYSgwLDAsMCwwLjE2KSwgMCAtNXB4IDZweCByZ2JhKDAsMCwwLDAuMjMpO1xcbn1cXG4ucS1jYXJvdXNlbC10aHVtYm5haWxzLmFjdGl2ZSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbn1cXG4ucS1jYXJvdXNlbC10aHVtYm5haWxzIGltZyB7XFxuICBoZWlnaHQ6IGF1dG87XFxuICB3aWR0aDogMTAwJTtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgb3BhY2l0eTogMC41O1xcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XFxufVxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMgPiBkaXYgPiBkaXYge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogMCAwIDEwOHB4O1xcbiAgICAgICAgICBmbGV4OiAwIDAgMTA4cHg7XFxufVxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMgPiBkaXYgPiBkaXYuYWN0aXZlIGltZyxcXG4ucS1jYXJvdXNlbC10aHVtYm5haWxzID4gZGl2ID4gZGl2IGltZy5hY3RpdmUge1xcbiAgb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogI2ZmZjtcXG59XFxuLnEtY2Fyb3VzZWwtdGh1bWJuYWlsLWJ0biB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMyk7XFxuICB0b3A6IDVweDtcXG4gIHJpZ2h0OiA1cHg7XFxufVxcbmJvZHkuZGVza3RvcCAucS1jYXJvdXNlbC10aHVtYm5haWxzIGltZzpob3ZlciB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1tZXNzYWdlLW5hbWUsXFxuLnEtbWVzc2FnZS1zdGFtcCxcXG4ucS1tZXNzYWdlLWxhYmVsIHtcXG4gIGZvbnQtc2l6ZTogc21hbGw7XFxufVxcbi5xLW1lc3NhZ2UtbGFiZWwge1xcbiAgbWFyZ2luOiAyNHB4IDA7XFxufVxcbi5xLW1lc3NhZ2Utc3RhbXAge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBtYXJnaW4tdG9wOiA0cHg7XFxuICBvcGFjaXR5OiAwLjY7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1tZXNzYWdlLWF2YXRhciB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICB3aWR0aDogNDhweDtcXG4gIGhlaWdodDogNDhweDtcXG59XFxuLnEtbWVzc2FnZSB7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxufVxcbi5xLW1lc3NhZ2U6Zmlyc3QtY2hpbGQgLnEtbWVzc2FnZS1sYWJlbCB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbn1cXG4ucS1tZXNzYWdlLXJlY2VpdmVkIC5xLW1lc3NhZ2UtYXZhdGFyIHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG4ucS1tZXNzYWdlLXJlY2VpdmVkIC5xLW1lc3NhZ2UtdGV4dCB7XFxuICBjb2xvcjogIzgxYzc4NDtcXG4gIGJvcmRlci1yYWRpdXM6IDNweCAzcHggM3B4IDA7XFxufVxcbi5xLW1lc3NhZ2UtcmVjZWl2ZWQgLnEtbWVzc2FnZS10ZXh0Omxhc3QtY2hpbGQ6YmVmb3JlIHtcXG4gIHJpZ2h0OiAxMDAlO1xcbiAgYm9yZGVyLXJpZ2h0OiAwIHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLW1lc3NhZ2UtcmVjZWl2ZWQgLnEtbWVzc2FnZS10ZXh0LWNvbnRlbnQge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLW1lc3NhZ2Utc2VudCAucS1tZXNzYWdlLW5hbWUge1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcbi5xLW1lc3NhZ2Utc2VudCAucS1tZXNzYWdlLWF2YXRhciB7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG4ucS1tZXNzYWdlLXNlbnQgLnEtbWVzc2FnZS1jb250YWluZXIge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG59XFxuLnEtbWVzc2FnZS1zZW50IC5xLW1lc3NhZ2UtdGV4dCB7XFxuICBjb2xvcjogI2UwZTBlMDtcXG4gIGJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAzcHg7XFxufVxcbi5xLW1lc3NhZ2Utc2VudCAucS1tZXNzYWdlLXRleHQ6bGFzdC1jaGlsZDpiZWZvcmUge1xcbiAgbGVmdDogMTAwJTtcXG4gIGJvcmRlci1sZWZ0OiAwIHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXJpZ2h0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItYm90dG9tOiA4cHggc29saWQgY3VycmVudENvbG9yO1xcbn1cXG4ucS1tZXNzYWdlLXNlbnQgLnEtbWVzc2FnZS10ZXh0LWNvbnRlbnQge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLW1lc3NhZ2UtdGV4dCB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBwYWRkaW5nOiA4cHg7XFxuICBsaW5lLWhlaWdodDogMS4yO1xcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG59XFxuLnEtbWVzc2FnZS10ZXh0ICsgLnEtbWVzc2FnZS10ZXh0IHtcXG4gIG1hcmdpbi10b3A6IDNweDtcXG59XFxuLnEtbWVzc2FnZS10ZXh0Omxhc3QtY2hpbGQge1xcbiAgbWluLWhlaWdodDogNDhweDtcXG59XFxuLnEtbWVzc2FnZS10ZXh0Omxhc3QtY2hpbGQgLnEtbWVzc2FnZS1zdGFtcCB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuLnEtbWVzc2FnZS10ZXh0Omxhc3QtY2hpbGQ6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm90dG9tOiAwO1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxufVxcbi5xLWNoZWNrYm94LWljb24ge1xcbiAgaGVpZ2h0OiAyMXB4O1xcbiAgd2lkdGg6IDIxcHg7XFxuICBmb250LXNpemU6IDIxcHg7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1jaGlwIHtcXG4gIG1pbi1oZWlnaHQ6IDMycHg7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nOiAwIDEycHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBib3JkZXI6ICNlMGUwZTA7XFxuICBib3JkZXItcmFkaXVzOiAycmVtO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gIGNvbG9yOiAjMDAwO1xcbiAgYmFja2dyb3VuZDogI2VlZTtcXG59XFxuLnEtY2hpcDpmb2N1cyAucS1jaGlwLWNsb3NlIHtcXG4gIG9wYWNpdHk6IDAuODtcXG59XFxuLnEtY2hpcCAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIGxpbmUtaGVpZ2h0OiAxO1xcbn1cXG4ucS1jaGlwLW1haW4ge1xcbiAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgZmxleDogMSAxIGF1dG87XFxufVxcbi5xLWNoaXAtc2lkZSB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBoZWlnaHQ6IDMycHg7XFxuICB3aWR0aDogMzJweDtcXG4gIG1pbi13aWR0aDogMzJweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLWNoaXAtc2lkZSBpbWcge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWNoaXAtbGVmdCB7XFxuICBtYXJnaW4tbGVmdDogLTEycHg7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuLnEtY2hpcC1yaWdodCB7XFxuICBtYXJnaW4tbGVmdDogMnB4O1xcbiAgbWFyZ2luLXJpZ2h0OiAtMTJweDtcXG59XFxuLnEtY2hpcC1zcXVhcmUge1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbn1cXG4ucS1jaGlwLWZsb2F0aW5nIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogLTAuM2VtO1xcbiAgcmlnaHQ6IC0wLjNlbTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgei1pbmRleDogMTtcXG59XFxuLnEtY2hpcC10YWcge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgcGFkZGluZy1sZWZ0OiAxLjdyZW07XFxufVxcbi5xLWNoaXAtdGFnOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAwLjVyZW07XFxuICBtYXJnaW4tdG9wOiAtMC4yNXJlbTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICB3aWR0aDogMC41cmVtO1xcbiAgaGVpZ2h0OiAwLjVyZW07XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTFweCAxcHggMCByZ2JhKDAsMCwwLDAuMyk7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCAxcHggMCByZ2JhKDAsMCwwLDAuMyk7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5xLWNoaXAtcG9pbnRpbmcge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgei1pbmRleDogMDtcXG59XFxuLnEtY2hpcC1wb2ludGluZzpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICB6LWluZGV4OiAtMTtcXG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XFxuICB3aWR0aDogMTZweDtcXG4gIGhlaWdodDogMTZweDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy11cCB7XFxuICBtYXJnaW4tdG9wOiAwLjhyZW07XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctdXA6YmVmb3JlIHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTIyJSkgcm90YXRlKDQ1ZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTIyJSkgcm90YXRlKDQ1ZGVnKTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy1kb3duIHtcXG4gIG1hcmdpbi1ib3R0b206IDAuOHJlbTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy1kb3duOmJlZm9yZSB7XFxuICByaWdodDogYXV0bztcXG4gIHRvcDogMTAwJTtcXG4gIGxlZnQ6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTc4JSkgcm90YXRlKDQ1ZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTc4JSkgcm90YXRlKDQ1ZGVnKTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy1yaWdodCB7XFxuICBtYXJnaW4tcmlnaHQ6IDAuOHJlbTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy1yaWdodDpiZWZvcmUge1xcbiAgdG9wOiA1MCU7XFxuICByaWdodDogMnB4O1xcbiAgYm90dG9tOiBhdXRvO1xcbiAgbGVmdDogYXV0bztcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMzJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzMlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctbGVmdCB7XFxuICBtYXJnaW4tbGVmdDogMC44cmVtO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLWxlZnQ6YmVmb3JlIHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMnB4O1xcbiAgYm90dG9tOiBhdXRvO1xcbiAgcmlnaHQ6IGF1dG87XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzMlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzMlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XFxufVxcbi5xLWNoaXAtZGV0YWlsIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKTtcXG4gIG9wYWNpdHk6IDAuODtcXG4gIHBhZGRpbmc6IDAgNXB4O1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxufVxcbi5xLWNoaXAtc21hbGwge1xcbiAgbWluLWhlaWdodDogMjZweDtcXG59XFxuLnEtY2hpcC1zbWFsbCAucS1jaGlwLW1haW4ge1xcbiAgcGFkZGluZzogNHB4IDFweDtcXG4gIGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xcbn1cXG4ucS1jaGlwLXNtYWxsIC5xLWNoaXAtc2lkZSB7XFxuICBoZWlnaHQ6IDI2cHg7XFxuICB3aWR0aDogMjZweDtcXG4gIG1pbi13aWR0aDogMjZweDtcXG59XFxuLnEtY2hpcC1zbWFsbCAucS1jaGlwLWljb24ge1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlIHtcXG4gIG1pbi1oZWlnaHQ6IDFweDtcXG4gIHBhZGRpbmc6IDAgM3B4O1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlLnEtY2hpcC10YWcge1xcbiAgcGFkZGluZy1sZWZ0OiAxLjNyZW07XFxufVxcbi5xLWNoaXAtZGVuc2UucS1jaGlwLXBvaW50aW5nOmJlZm9yZSB7XFxuICB3aWR0aDogOXB4O1xcbiAgaGVpZ2h0OiA5cHg7XFxufVxcbi5xLWNoaXAtZGVuc2UgLnEtY2hpcC1tYWluIHtcXG4gIHBhZGRpbmc6IDFweDtcXG59XFxuLnEtY2hpcC1kZW5zZSAucS1jaGlwLXNpZGUge1xcbiAgaGVpZ2h0OiAxOHB4O1xcbiAgd2lkdGg6IDE4cHg7XFxuICBtaW4td2lkdGg6IDE2cHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxufVxcbi5xLWNoaXAtZGVuc2UgLnEtY2hpcC1sZWZ0IHtcXG4gIG1hcmdpbi1sZWZ0OiAtM3B4O1xcbiAgbWFyZ2luLXJpZ2h0OiAycHg7XFxufVxcbi5xLWNoaXAtZGVuc2UgLnEtY2hpcC1yaWdodCB7XFxuICBtYXJnaW4tbGVmdDogMnB4O1xcbiAgbWFyZ2luLXJpZ2h0OiAtMnB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbn1cXG4ucS1pbnB1dC1jaGlwcyB7XFxuICBtYXJnaW4tdG9wOiAtMXB4O1xcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcXG59XFxuLnEtaW5wdXQtY2hpcHMgLnEtY2hpcCB7XFxuICBtYXJnaW46IDFweDtcXG59XFxuLnEtaW5wdXQtY2hpcHMgaW5wdXQucS1pbnB1dC10YXJnZXQge1xcbiAgbWluLXdpZHRoOiA3MHB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXN1Yi1pdGVtIHtcXG4gIHBhZGRpbmc6IDhweCAxNnB4O1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1zdWItaXRlbS5pbmRlbnQge1xcbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xcbiAgcGFkZGluZy1yaWdodDogMDtcXG59XFxuLnEtY29sbGFwc2libGUtc3ViLWl0ZW0gLnEtY2FyZCB7XFxuICBtYXJnaW4tYm90dG9tOiAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS5yb3V0ZXItbGluay1hY3RpdmUgPiAucS1pdGVtIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTg5LDE4OSwxODksMC40KTtcXG59XFxuLnEtY29sbGFwc2libGUge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBwYWRkaW5nIDAuNXM7XFxuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDAuNXM7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLWNsb3NlZCB7XFxuICBwYWRkaW5nOiAwIDE1cHg7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLWNsb3NlZCAucS1jb2xsYXBzaWJsZS1pbm5lciB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1jbG9zZWQgKyAucS1jb2xsYXBzaWJsZS1wb3B1cC1jbG9zZWQgLnEtY29sbGFwc2libGUtaW5uZXIge1xcbiAgYm9yZGVyLXRvcDogMDtcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtb3BlbmVkIHtcXG4gIHBhZGRpbmc6IDE1cHggMDtcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtb3BlbmVkIC5xLWNvbGxhcHNpYmxlLWlubmVyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQgKyAucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQsXFxuLnEtY29sbGFwc2libGUtcG9wdXAtb3BlbmVkOmZpcnN0LWNoaWxkIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQ6bGFzdC1jaGlsZCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMDtcXG59XFxuLnEtY29sbGFwc2libGUtY3Vyc29yLXBvaW50ZXIgPiAucS1jb2xsYXBzaWJsZS1pbm5lciA+IC5xLWl0ZW0ge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS10b2dnbGUtaWNvbiB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICB3aWR0aDogMWVtO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4ucS1jb2xvciB7XFxuICBtYXgtd2lkdGg6IDEwMHZ3O1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG59XFxuLnEtY29sb3Itc2F0dXJhdGlvbiB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTIzcHg7XFxufVxcbi5xLWNvbG9yLXNhdHVyYXRpb24td2hpdGUge1xcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGZyb20oI2ZmZiksIHRvKHJnYmEoMjU1LDI1NSwyNTUsMCkpKTtcXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2ZmZiwgcmdiYSgyNTUsMjU1LDI1NSwwKSk7XFxufVxcbi5xLWNvbG9yLXNhdHVyYXRpb24tYmxhY2sge1xcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgZnJvbSgjMDAwKSwgdG8ocmdiYSgwLDAsMCwwKSkpO1xcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgIzAwMCwgcmdiYSgwLDAsMCwwKSk7XFxufVxcbi5xLWNvbG9yLXNhdHVyYXRpb24tY2lyY2xlIHtcXG4gIHdpZHRoOiAxMHB4O1xcbiAgaGVpZ2h0OiAxMHB4O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAxLjVweCAjZmZmLCBpbnNldCAwIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMyksIDAgMCAxcHggMnB4IHJnYmEoMCwwLDAsMC40KTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMS41cHggI2ZmZiwgaW5zZXQgMCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjMpLCAwIDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuNCk7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIC01cHgpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAtNXB4KTtcXG59XFxuLnEtY29sb3Itc3dhdGNoLFxcbi5xLWNvbG9yLWFscGhhIC5xLXNsaWRlci10cmFjayB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQWdBQUFBSUNBWUFBQURFRDc2TEFBQUFIMGxFUVZRb1UyTmtZR0F3WmtBRlo1RzVqUFJSZ09ZRVZEZUIzRUJqQlFCT1p3VFZ1Z0lHeUFBQUFBQkpSVTVFcmtKZ2dnPT1cXFwiKSAhaW1wb3J0YW50O1xcbn1cXG4ucS1jb2xvci1zd2F0Y2gge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDMycHg7XFxuICBoZWlnaHQ6IDMycHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG59XFxuLnEtY29sb3ItaHVlIC5xLXNsaWRlci10cmFjayB7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgZnJvbSgjZjAwKSwgY29sb3Itc3RvcCgxNyUsICNmZjApLCBjb2xvci1zdG9wKDMzJSwgIzBmMCksIGNvbG9yLXN0b3AoNTAlLCAjMGZmKSwgY29sb3Itc3RvcCg2NyUsICMwMGYpLCBjb2xvci1zdG9wKDgzJSwgI2YwZiksIHRvKCNmMDApKTtcXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2YwMCAwJSwgI2ZmMCAxNyUsICMwZjAgMzMlLCAjMGZmIDUwJSwgIzAwZiA2NyUsICNmMGYgODMlLCAjZjAwIDEwMCUpO1xcbiAgb3BhY2l0eTogMTtcXG4gIGhlaWdodDogOHB4O1xcbn1cXG4ucS1jb2xvci1odWUgLnEtc2xpZGVyLXRyYWNrLmFjdGl2ZS10cmFjayB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1jb2xvci1hbHBoYSAucS1zbGlkZXItdHJhY2sge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIG9wYWNpdHk6IDE7XFxuICBoZWlnaHQ6IDhweDtcXG59XFxuLnEtY29sb3ItYWxwaGEgLnEtc2xpZGVyLXRyYWNrOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGZyb20ocmdiYSgyNTUsMjU1LDI1NSwwKSksIHRvKCM3NTc1NzUpKTtcXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyNTUsMjU1LDI1NSwwKSwgIzc1NzU3NSk7XFxufVxcbi5xLWNvbG9yLWFscGhhIC5xLXNsaWRlci10cmFjay5hY3RpdmUtdHJhY2sge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtY29sb3Itc2xpZGVycyB7XFxuICBoZWlnaHQ6IDU2cHg7XFxufVxcbi5xLWNvbG9yLXNsaWRlcnMgLnEtc2xpZGVyIHtcXG4gIGhlaWdodDogMjBweDtcXG59XFxuLnEtY29sb3Itc2xpZGVycyAucS1zbGlkZXItaGFuZGxlIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNHB4IDAgcmdiYSgwLDAsMCwwLjM3KTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNHB4IDAgcmdiYSgwLDAsMCwwLjM3KTtcXG59XFxuLnEtY29sb3Itc2xpZGVycyAucS1zbGlkZXItcmluZyB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1jb2xvci1pbnB1dHMge1xcbiAgZm9udC1zaXplOiAxMXB4O1xcbiAgY29sb3I6ICM3NTc1NzU7XFxufVxcbi5xLWNvbG9yLWlucHV0cyBpbnB1dCB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtY29sb3ItcGFkZGluZyB7XFxuICBwYWRkaW5nOiAwIDJweDtcXG59XFxuLnEtY29sb3ItbGFiZWwge1xcbiAgcGFkZGluZy10b3A6IDRweDtcXG59XFxuLnEtY29sb3ItZGFyayB7XFxuICBiYWNrZ3JvdW5kOiAjMDAwO1xcbiAgYm9yZGVyOiAxcHggc29saWQgIzQyNDI0MjtcXG59XFxuLnEtY29sb3ItZGFyayBpbnB1dCB7XFxuICBiYWNrZ3JvdW5kOiAjMDAwO1xcbiAgY29sb3I6ICNiZGJkYmQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1saWdodCk7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcS1jb2xvci1kYXJrKTtcXG59XFxuLnEtY29sb3ItZGFyayAucS1jb2xvci1pbnB1dHMge1xcbiAgY29sb3I6ICNiZGJkYmQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1saWdodCk7XFxufVxcbi5xLWNvbG9yLWRhcmsgLnEtY29sb3Itc3dhdGNoIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1xLWNvbG9yLWRhcmspO1xcbn1cXG4ucS1kYXRldGltZS1pbnB1dCB7XFxuICBtaW4td2lkdGg6IDcwcHg7XFxufVxcbi5xLWRhdGV0aW1lLWNvbnRyb2xzIHtcXG4gIHBhZGRpbmc6IDAgMTBweCA4cHg7XFxufVxcbi5xLWRhdGV0aW1lIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBsaW5lLWhlaWdodDogaW5pdGlhbDtcXG59XFxuLnEtZGF0ZXRpbWUgLm1vZGFsLWJ1dHRvbnMge1xcbiAgcGFkZGluZy10b3A6IDhweDtcXG59XFxuLnEtZGF0ZXRpbWU6bm90KC5uby1ib3JkZXIpOm5vdCgucS1kYXRldGltZS1kYXJrKSAucS1kYXRldGltZS1jb250ZW50IHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxufVxcbi5xLWRhdGV0aW1lOm5vdCgubm8tYm9yZGVyKS5xLWRhdGV0aW1lLWRhcmsge1xcbiAgYm9yZGVyOiAxcHggc29saWQgIzQyNDI0MjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXEtY29sb3ItZGFyayk7XFxufVxcbi5xLWRhdGV0aW1lLWhlYWRlciB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWhlYWRlciA+IGRpdiB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4ubW9kYWwtY29udGVudCA+IC5xLWRhdGV0aW1lID4gLnEtZGF0ZXRpbWUtaGVhZGVyLFxcbi5xLXBvcG92ZXIgPiAucS1kYXRldGltZSA+IC5xLWRhdGV0aW1lLWhlYWRlciB7XFxuICBtaW4td2lkdGg6IDE3NXB4O1xcbn1cXG4ucS1kYXRldGltZS13ZWVrZGF5c3RyaW5nIHtcXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEpO1xcbiAgcGFkZGluZzogNXB4IDA7XFxufVxcbi5xLWRhdGV0aW1lLXRpbWUge1xcbiAgcGFkZGluZzogMTBweCAwO1xcbiAgd2lsbC1jaGFuZ2U6IHNjcm9sbC1wb3NpdGlvbjtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbn1cXG4ucS1kYXRldGltZS1hbXBtIHtcXG4gIGZvbnQtc2l6ZTogMC45cmVtO1xcbiAgcGFkZGluZzogNXB4O1xcbn1cXG4ucS1kYXRldGltZS1kYXRlc3RyaW5nIHtcXG4gIHBhZGRpbmc6IDEwcHggMDtcXG59XFxuLnEtZGF0ZXRpbWUtZGF0ZXN0cmluZyAucS1kYXRldGltZS1saW5rIHtcXG4gIGZvbnQtc2l6ZTogMi43cmVtO1xcbn1cXG4ucS1kYXRldGltZS1kYXRlc3RyaW5nIC5xLWRhdGV0aW1lLWxpbmsgc3BhbiB7XFxuICBwYWRkaW5nOiAwIDVweDtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4ucS1kYXRldGltZS1kYXRlc3RyaW5nIC5xLWRhdGV0aW1lLWxpbmsuc21hbGwge1xcbiAgbWFyZ2luOiAwIDVweDtcXG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xcbn1cXG4ucS1kYXRldGltZS1kYXRlc3RyaW5nIC5xLWRhdGV0aW1lLWxpbmsuc21hbGwgc3BhbiB7XFxuICBwYWRkaW5nOiA1cHg7XFxufVxcbi5xLWRhdGV0aW1lLWxpbmsge1xcbiAgb3BhY2l0eTogMC42O1xcbn1cXG4ucS1kYXRldGltZS1saW5rID4gc3BhbiB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS1kYXRldGltZS1saW5rLmFjdGl2ZSB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1kYXRldGltZS1jbG9ja3N0cmluZyB7XFxuICBtaW4td2lkdGg6IDIxMHB4O1xcbiAgZm9udC1zaXplOiAyLjdyZW07XFxuICBkaXJlY3Rpb246IGx0ciAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1zZWxlY3RvciB7XFxuICBtaW4td2lkdGg6IDI5MHB4O1xcbiAgaGVpZ2h0OiAzMTBweDtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbn1cXG4ucS1kYXRldGltZS12aWV3LWRheSB7XFxuICB3aWR0aDogMjUwcHg7XFxuICBoZWlnaHQ6IDI4NXB4O1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLWRhdGV0aW1lLXZpZXcteWVhciA+IC5xLWJ0bjpub3QoLmFjdGl2ZSksXFxuLnEtZGF0ZXRpbWUtdmlldy1tb250aCA+IC5xLWJ0bjpub3QoLmFjdGl2ZSkge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLWRhdGV0aW1lLW1vbnRoLXN0YW1wIHtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG59XFxuLnEtZGF0ZXRpbWUtd2Vla2RheXMge1xcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xcbn1cXG4ucS1kYXRldGltZS13ZWVrZGF5cyBkaXYge1xcbiAgb3BhY2l0eTogMC42O1xcbiAgd2lkdGg6IDM1cHg7XFxuICBoZWlnaHQ6IDM1cHg7XFxuICBsaW5lLWhlaWdodDogMzVweDtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBtaW4td2lkdGg6IDA7XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxufVxcbi5xLWRhdGV0aW1lLWRheXMgZGl2IHtcXG4gIG1hcmdpbjogMXB4O1xcbiAgbGluZS1oZWlnaHQ6IDMzcHg7XFxuICB3aWR0aDogMzNweDtcXG4gIGhlaWdodDogMzNweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuLnEtZGF0ZXRpbWUtZGF5cyBkaXYucS1kYXRldGltZS1kYXktYWN0aXZlIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtZGF5cyBkaXYucS1kYXRldGltZS1kYXktYWN0aXZlID4gc3BhbiB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtZGF0ZXRpbWUtZGF5cyBkaXYucS1kYXRldGltZS1kYXktdG9kYXkge1xcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtZGF5cyBkaXY6bm90KC5xLWRhdGV0aW1lLWZpbGxlcmRheSk6bm90KC5kaXNhYmxlZCk6bm90KC5xLWRhdGV0aW1lLWRheS1hY3RpdmUpOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6ICNlMGUwZTA7XFxufVxcbi5xLWRhdGV0aW1lLWJ0biB7XFxuICBmb250LXdlaWdodDogbm9ybWFsO1xcbn1cXG4ucS1kYXRldGltZS1idG4uYWN0aXZlIHtcXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xcbiAgcGFkZGluZy10b3A6IDFyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2sge1xcbiAgd2lkdGg6IDI1MHB4O1xcbiAgaGVpZ2h0OiAyNTBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQ6ICNlMGUwZTA7XFxuICBwYWRkaW5nOiAyNHB4O1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1jaXJjbGUge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcG9wIDAuNXMgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXBvcCAwLjVzIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLWNlbnRlciB7XFxuICBoZWlnaHQ6IDZweDtcXG4gIHdpZHRoOiA2cHg7XFxuICB0b3A6IDA7XFxuICBtYXJnaW46IGF1dG87XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb2ludGVyIHtcXG4gIHdpZHRoOiAxcHg7XFxuICBoZWlnaHQ6IDUwJTtcXG4gIG1hcmdpbjogMCBhdXRvO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXIgLyogcnRsOmlnbm9yZSAqLztcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvaW50ZXIgc3BhbiB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICB3aWR0aDogOHB4O1xcbiAgaGVpZ2h0OiA4cHg7XFxuICBib3R0b206IC04cHg7XFxuICBsZWZ0OiAwO1xcbiAgbWluLXdpZHRoOiAwO1xcbiAgbWluLWhlaWdodDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1hcnJvdyB7XFxuICBjb2xvcjogIzc1NzU3NTtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayB7XFxuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1kYXJrKTtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1hcnJvdyB7XFxuICBjb2xvcjogI2JkYmRiZDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWxpZ2h0KTtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1oZWFkZXIsXFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1jbG9jayB7XFxuICBiYWNrZ3JvdW5kOiAjNjE2MTYxO1xcbn1cXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLXZpZXctZGF5IHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLXZpZXcteWVhciA+IC5xLWJ0bjpub3QoLmFjdGl2ZSksXFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS12aWV3LW1vbnRoID4gLnEtYnRuOm5vdCguYWN0aXZlKSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1kYXlzIGRpdi5xLWRhdGV0aW1lLWRheS1hY3RpdmUgPiBzcGFuLFxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtZGF5cyBkaXY6bm90KC5xLWRhdGV0aW1lLWZpbGxlcmRheSk6bm90KC5kaXNhYmxlZCk6bm90KC5xLWRhdGV0aW1lLWRheS1hY3RpdmUpOmhvdmVyIHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb246bm90KC5hY3RpdmUpOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6ICNmNWY1ZjUgIWltcG9ydGFudDtcXG59XFxuYm9keS5kZXNrdG9wIC5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb246bm90KC5hY3RpdmUpOmhvdmVyIHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbiB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBtaW4taGVpZ2h0OiAzMnB4O1xcbiAgd2lkdGg6IDMycHg7XFxuICBoZWlnaHQ6IDMycHg7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBsaW5lLWhlaWdodDogMzJweDtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIC8qIHJ0bDppZ25vcmUgKi87XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uOm5vdCguYWN0aXZlKSB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbjpub3QoLmFjdGl2ZSkge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uLmFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uLmFjdGl2ZSA+IHNwYW4ge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0wIHtcXG4gIHRvcDogMCU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEge1xcbiAgdG9wOiA2LjclO1xcbiAgbGVmdDogNzUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0yIHtcXG4gIHRvcDogMjUlO1xcbiAgbGVmdDogOTMuMyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTMge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAxMDAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy00IHtcXG4gIHRvcDogNzUlO1xcbiAgbGVmdDogOTMuMyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTUge1xcbiAgdG9wOiA5My4zJTtcXG4gIGxlZnQ6IDc1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNiB7XFxuICB0b3A6IDEwMCU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTcge1xcbiAgdG9wOiA5My4zJTtcXG4gIGxlZnQ6IDI1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtOCB7XFxuICB0b3A6IDc1JTtcXG4gIGxlZnQ6IDYuNyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTkge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTAge1xcbiAgdG9wOiAyNSU7XFxuICBsZWZ0OiA2LjclIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMSB7XFxuICB0b3A6IDYuNyU7XFxuICBsZWZ0OiAyNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEyIHtcXG4gIHRvcDogMCU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEuZm10MjQge1xcbiAgdG9wOiA2LjclO1xcbiAgbGVmdDogNzUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0yLmZtdDI0IHtcXG4gIHRvcDogMjUlO1xcbiAgbGVmdDogOTMuMyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTMuZm10MjQge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAxMDAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy00LmZtdDI0IHtcXG4gIHRvcDogNzUlO1xcbiAgbGVmdDogOTMuMyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTUuZm10MjQge1xcbiAgdG9wOiA5My4zJTtcXG4gIGxlZnQ6IDc1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNi5mbXQyNCB7XFxuICB0b3A6IDEwMCU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTcuZm10MjQge1xcbiAgdG9wOiA5My4zJTtcXG4gIGxlZnQ6IDI1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtOC5mbXQyNCB7XFxuICB0b3A6IDc1JTtcXG4gIGxlZnQ6IDYuNyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTkuZm10MjQge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTAuZm10MjQge1xcbiAgdG9wOiAyNSU7XFxuICBsZWZ0OiA2LjclIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMS5mbXQyNCB7XFxuICB0b3A6IDYuNyU7XFxuICBsZWZ0OiAyNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEyLmZtdDI0IHtcXG4gIHRvcDogMCU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEzLmZtdDI0IHtcXG4gIHRvcDogMTkuNjklO1xcbiAgbGVmdDogNjcuNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTE0LmZtdDI0IHtcXG4gIHRvcDogMzIuNSU7XFxuICBsZWZ0OiA4MC4zMSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTE1LmZtdDI0IHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogODUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xNi5mbXQyNCB7XFxuICB0b3A6IDY3LjUlO1xcbiAgbGVmdDogODAuMzElIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xNy5mbXQyNCB7XFxuICB0b3A6IDgwLjMxJTtcXG4gIGxlZnQ6IDY3LjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xOC5mbXQyNCB7XFxuICB0b3A6IDg1JTtcXG4gIGxlZnQ6IDUwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTkuZm10MjQge1xcbiAgdG9wOiA4MC4zMSU7XFxuICBsZWZ0OiAzMi41JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMjAuZm10MjQge1xcbiAgdG9wOiA2Ny41JTtcXG4gIGxlZnQ6IDE5LjY5JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMjEuZm10MjQge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAxNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTIyLmZtdDI0IHtcXG4gIHRvcDogMzIuNSU7XFxuICBsZWZ0OiAxOS42OSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTIzLmZtdDI0IHtcXG4gIHRvcDogMTkuNjklO1xcbiAgbGVmdDogMzIuNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTAuZm10MjQge1xcbiAgdG9wOiAxNSU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtcmFuZ2Uucm93IC5xLWRhdGV0aW1lLXJhbmdlLWxlZnQge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcXG59XFxuLnEtZGF0ZXRpbWUtcmFuZ2Uucm93IC5xLWRhdGV0aW1lLXJhbmdlLXJpZ2h0IHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xcbn1cXG4ucS1kYXRldGltZS1yYW5nZS5jb2x1bW4gPiBkaXYgKyBkaXYge1xcbiAgbWFyZ2luLXRvcDogMTBweDtcXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAucS1kYXRldGltZSB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWwgIWltcG9ydGFudDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWwgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5xLWRhdGV0aW1lLWhlYWRlciB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XFxuICB9XFxuICAucS1kYXRldGltZS1jb250ZW50IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMjtcXG4gICAgICAgIC1tcy1mbGV4OiAyIDIgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAyIDIgYXV0bztcXG4gIH1cXG59XFxuLnEtZG90IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogLTJweDtcXG4gIHJpZ2h0OiAtMTBweDtcXG4gIGhlaWdodDogMTBweDtcXG4gIHdpZHRoOiAxMHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYmFja2dyb3VuZDogI2Y0NDMzNjtcXG4gIG9wYWNpdHk6IDAuODtcXG59XFxuLnEtZWRpdG9yIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxufVxcbi5xLWVkaXRvci5kaXNhYmxlZCB7XFxuICBib3JkZXItc3R5bGU6IGRhc2hlZDtcXG59XFxuLnEtZWRpdG9yLmZ1bGxzY3JlZW4ge1xcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5xLWVkaXRvci1jb250ZW50IHtcXG4gIG91dGxpbmU6IDA7XFxuICBwYWRkaW5nOiAxMHB4O1xcbiAgbWluLWhlaWdodDogMTBlbTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxufVxcbi5xLWVkaXRvci1jb250ZW50IGhyIHtcXG4gIGJvcmRlcjogMDtcXG4gIG91dGxpbmU6IDA7XFxuICBtYXJnaW46IDFweDtcXG4gIGhlaWdodDogMXB4O1xcbiAgYmFja2dyb3VuZDogI2NjYztcXG59XFxuLnEtZWRpdG9yLXRvb2xiYXItcGFkZGluZyB7XFxuICBwYWRkaW5nOiA0cHg7XFxufVxcbi5xLWVkaXRvci10b29sYmFyIHtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xcbiAgYmFja2dyb3VuZDogI2UwZTBlMDtcXG4gIG1pbi1oZWlnaHQ6IDM3cHg7XFxufVxcbi5xLWVkaXRvci10b29sYmFyIC5xLWJ0bi1ncm91cCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5xLWVkaXRvci10b29sYmFyIC5xLWJ0bi1ncm91cCArIC5xLWJ0bi1ncm91cCB7XFxuICBtYXJnaW4tbGVmdDogNXB4O1xcbn1cXG4ucS1lZGl0b3ItdG9vbGJhci1zZXBhcmF0b3IgLnEtYnRuLWdyb3VwICsgLnEtYnRuLWdyb3VwIHtcXG4gIHBhZGRpbmctbGVmdDogNXB4O1xcbn1cXG4ucS1lZGl0b3ItdG9vbGJhci1zZXBhcmF0b3IgLnEtYnRuLWdyb3VwICsgLnEtYnRuLWdyb3VwOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDA7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMXB4O1xcbiAgYmFja2dyb3VuZDogI2NjYztcXG59XFxuLnEtZWRpdG9yLWlucHV0IGlucHV0IHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbn1cXG4ucS1mYWIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnotZmFiIHtcXG4gIHotaW5kZXg6IDk5MDtcXG59XFxuLnEtZmFiLW9wZW5lZCAucS1mYWItYWN0aW9ucyB7XFxuICBvcGFjaXR5OiAxO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgxKSBzY2FsZVkoMSkgdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKSBzY2FsZVkoMSkgdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKDApO1xcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcXG59XFxuLnEtZmFiLW9wZW5lZCAucS1mYWItaWNvbiB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTgwZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpO1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtZmFiLW9wZW5lZCAucS1mYWItYWN0aXZlLWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtZmFiLWljb24sXFxuLnEtZmFiLWFjdGl2ZS1pY29uIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjRzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjRzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzLCB0cmFuc2Zvcm0gMC40cztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cywgdHJhbnNmb3JtIDAuNHMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNHM7XFxufVxcbi5xLWZhYi1pY29uIHtcXG4gIG9wYWNpdHk6IDE7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XFxufVxcbi5xLWZhYi1hY3RpdmUtaWNvbiB7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xODBkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xODBkZWcpO1xcbn1cXG4ucS1mYWItYWN0aW9ucyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS1mYWItYWN0aW9ucyAucS1idG4ge1xcbiAgbWFyZ2luOiA1cHg7XFxufVxcbi5xLWZhYi1yaWdodCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWCgtMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWCgtMTAwJSk7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAxMjAlO1xcbn1cXG4ucS1mYWItbGVmdCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWCgxMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVYKDEwMCUpO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgcmlnaHQ6IDEyMCU7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbn1cXG4ucS1mYWItdXAge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVkoMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWSgxMDAlKTtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBib3R0b206IDEyMCU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxufVxcbi5xLWZhYi1kb3duIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVZKC0xMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVZKC0xMDAlKTtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgdG9wOiAxMjAlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbn1cXG4ucS1maWVsZC1pY29uIHtcXG4gIHdpZHRoOiAyOHB4O1xcbiAgaGVpZ2h0OiAyOHB4O1xcbiAgbWluLXdpZHRoOiAyOHB4O1xcbiAgZm9udC1zaXplOiAyOHB4O1xcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xcbiAgY29sb3I6ICM5Nzk3OTc7XFxufVxcbi5xLWZpZWxkLWxhYmVsIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcXG4gIGNvbG9yOiAjOTc5Nzk3O1xcbn1cXG4ucS1maWVsZC1sYWJlbC1pbm5lciB7XFxuICBtaW4taGVpZ2h0OiAyOHB4O1xcbn1cXG4ucS1maWVsZC1sYWJlbC1oaW50IHtcXG4gIHBhZGRpbmctbGVmdDogOHB4O1xcbn1cXG4ucS1maWVsZC1ib3R0b20ge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgcGFkZGluZy10b3A6IDhweDtcXG4gIGNvbG9yOiAjOTc5Nzk3O1xcbn1cXG4ucS1maWVsZC1uby1pbnB1dCAucS1maWVsZC1ib3R0b20ge1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLWZpZWxkLWNvdW50ZXIge1xcbiAgY29sb3I6ICM5Nzk3OTc7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuLnEtZmllbGQtZGFyayAucS1maWVsZC1sYWJlbCxcXG4ucS1maWVsZC1kYXJrIC5xLWZpZWxkLWljb24sXFxuLnEtZmllbGQtZGFyayAucS1maWVsZC1jb3VudGVyLFxcbi5xLWZpZWxkLWRhcmsgLnEtZmllbGQtYm90dG9tIHtcXG4gIGNvbG9yOiAjYTdhN2E3O1xcbn1cXG4ucS1maWVsZC1kYXJrIC5xLWZpZWxkLW5vLWlucHV0IC5xLWZpZWxkLWJvdHRvbSB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgIzk3OTc5NztcXG59XFxuLnEtZmllbGQtd2l0aC1lcnJvciAucS1maWVsZC1pY29uLFxcbi5xLWZpZWxkLXdpdGgtZXJyb3IgLnEtZmllbGQtbGFiZWwsXFxuLnEtZmllbGQtd2l0aC1lcnJvciAucS1maWVsZC1ib3R0b20ge1xcbiAgY29sb3I6ICNkYjI4Mjg7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSk7XFxufVxcbi5xLWZpZWxkLXdpdGgtZXJyb3IgLnEtZmllbGQtbm8taW5wdXQgLnEtZmllbGQtYm90dG9tIHtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGIyODI4O1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXEtY29sb3ItbmVnYXRpdmUpO1xcbn1cXG4ucS1maWVsZC13aXRoLXdhcm5pbmcgLnEtZmllbGQtaWNvbixcXG4ucS1maWVsZC13aXRoLXdhcm5pbmcgLnEtZmllbGQtbGFiZWwsXFxuLnEtZmllbGQtd2l0aC13YXJuaW5nIC5xLWZpZWxkLWJvdHRvbSB7XFxuICBjb2xvcjogI2YyYzAzNztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXdhcm5pbmcpO1xcbn1cXG4ucS1maWVsZC13aXRoLXdhcm5pbmcgLnEtZmllbGQtbm8taW5wdXQgLnEtZmllbGQtYm90dG9tIHtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZjJjMDM3O1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXEtY29sb3Itd2FybmluZyk7XFxufVxcbi5xLWZpZWxkLW1hcmdpbiB7XFxuICBtYXJnaW4tdG9wOiA1cHg7XFxufVxcbi5xLWZpZWxkLWZsb2F0aW5nIC5xLWZpZWxkLW1hcmdpbiB7XFxuICBtYXJnaW4tdG9wOiAyM3B4O1xcbn1cXG4ucS1maWVsZC1uby1pbnB1dCAucS1maWVsZC1tYXJnaW4ge1xcbiAgbWFyZ2luLXRvcDogM3B4O1xcbn1cXG4ucS1maWVsZC1jb250ZW50IC5xLWlmLnEtaWYtaGFzLWxhYmVsOm5vdCgucS1pZi1zdGFuZGFyZCkge1xcbiAgbWFyZ2luLXRvcDogOXB4O1xcbn1cXG4ucS1maWVsZC1jb250ZW50IC5xLWlmLXN0YW5kYXJkOm5vdCgucS1pZi1oYXMtbGFiZWwpIHtcXG4gIHBhZGRpbmctdG9wOiA2cHg7XFxufVxcbi5xLWZpZWxkLWNvbnRlbnQgLnEtb3B0aW9uLWdyb3VwIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4ucS1maWVsZC1uby1pbnB1dCAucS1maWVsZC1jb250ZW50IHtcXG4gIHBhZGRpbmctdG9wOiA2cHg7XFxufVxcbi5xLWZpZWxkLXZlcnRpY2FsOm5vdCgucS1maWVsZC1uby1sYWJlbCkgLnEtZmllbGQtbWFyZ2luIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxufVxcbi5xLWZpZWxkLXZlcnRpY2FsOm5vdCgucS1maWVsZC1uby1sYWJlbCkgLnEtaWYtc3RhbmRhcmQ6bm90KC5xLWlmLWhhcy1sYWJlbCkge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5xLWZpZWxkLXZlcnRpY2FsOm5vdCgucS1maWVsZC1uby1sYWJlbCkgLnEtaWYucS1pZi1oYXMtbGFiZWw6bm90KC5xLWlmLXN0YW5kYXJkKSB7XFxuICBtYXJnaW4tdG9wOiAwcHg7XFxufVxcbi5xLWZpZWxkLXZlcnRpY2FsLnEtZmllbGQtbm8tbGFiZWwgLnEtZmllbGQtbGFiZWwge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XFxuICAucS1maWVsZC1yZXNwb25zaXZlOm5vdCgucS1maWVsZC1uby1sYWJlbCkgLnEtZmllbGQtbWFyZ2luIHtcXG4gICAgbWFyZ2luLXRvcDogMDtcXG4gIH1cXG4gIC5xLWZpZWxkLXJlc3BvbnNpdmU6bm90KC5xLWZpZWxkLW5vLWxhYmVsKSAucS1pZi1zdGFuZGFyZDpub3QoLnEtaWYtaGFzLWxhYmVsKSB7XFxuICAgIHBhZGRpbmctdG9wOiAwO1xcbiAgfVxcbiAgLnEtZmllbGQtcmVzcG9uc2l2ZTpub3QoLnEtZmllbGQtbm8tbGFiZWwpIC5xLWlmLnEtaWYtaGFzLWxhYmVsOm5vdCgucS1pZi1zdGFuZGFyZCkge1xcbiAgICBtYXJnaW4tdG9wOiAwcHg7XFxuICB9XFxuICAucS1maWVsZC1yZXNwb25zaXZlLnEtZmllbGQtbm8tbGFiZWwgLnEtZmllbGQtbGFiZWwge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcbn1cXG4ucS1pbm5lci1sb2FkaW5nIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTtcXG59XFxuLnEtaW5uZXItbG9hZGluZy5kYXJrIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC40KTtcXG59XFxuLnEtaWYsXFxuLnEtaWY6YmVmb3JlLFxcbi5xLWlmLWxhYmVsLFxcbi5xLWlmLWFkZG9uLFxcbi5xLWZpZWxkLWljb24sXFxuLnEtZmllbGQtbGFiZWwsXFxuLnEtaWYtY29udHJvbCxcXG4ucS1maWVsZC1ib3R0b20ge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpLCBkaXNwbGF5IDBzIDBzO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSwgZGlzcGxheSAwcyAwcztcXG59XFxuLnEtaWYucS1pZi1oaWRlLXVuZGVybGluZTpiZWZvcmUsXFxuLnEtaWYucS1pZi1pbnZlcnRlZDpiZWZvcmUsXFxuLnEtaWYucS1pZi1oaWRlLXVuZGVybGluZTphZnRlcixcXG4ucS1pZi5xLWlmLWludmVydGVkOmFmdGVyIHtcXG4gIGNvbnRlbnQ6IG5vbmU7XFxufVxcbi5xLWlmLWludmVydGVkIHtcXG4gIHBhZGRpbmctbGVmdDogOHB4O1xcbiAgcGFkZGluZy1yaWdodDogOHB4O1xcbn1cXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1pbm5lciB7XFxuICBtYXJnaW4tdG9wOiA3cHg7XFxuICBtYXJnaW4tYm90dG9tOiA3cHg7XFxufVxcbi5xLWlmLWludmVydGVkLnEtaWYtaGFzLWxhYmVsIC5xLWlmLWlubmVyIHtcXG4gIG1hcmdpbi10b3A6IDI1cHg7XFxufVxcbi5xLWlmOmJlZm9yZSxcXG4ucS1pZjphZnRlciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3JkZXI6IDFweCBoaWRkZW4gY3VycmVudENvbG9yO1xcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgY29udGVudDogJyc7XFxufVxcbi5xLWlmOmJlZm9yZSB7XFxuICBjb2xvcjogI2JkYmRiZDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWxpZ2h0KTtcXG59XFxuLnEtaWY6YWZ0ZXIge1xcbiAgYm9yZGVyLXdpZHRoOiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyIDA7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXIgMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xcbn1cXG4ucS1pZjpub3QoLnEtaWYtZGlzYWJsZWQpOm5vdCgucS1pZi1lcnJvcik6bm90KC5xLWlmLXdhcm5pbmcpOmhvdmVyOmJlZm9yZSxcXG4ucS1pZi5xLWlmLXJlYWRvbmx5Om5vdCgucS1pZi1lcnJvcik6bm90KC5xLWlmLXdhcm5pbmcpOmFmdGVyIHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1pZi1kYXJrLnEtaWY6bm90KC5xLWlmLWRpc2FibGVkKTpub3QoLnEtaWYtZXJyb3IpOm5vdCgucS1pZi13YXJuaW5nKTpob3ZlcjpiZWZvcmUsXFxuLnEtaWYtZGFyay5xLWlmLnEtaWYtcmVhZG9ubHk6bm90KC5xLWlmLWVycm9yKTpub3QoLnEtaWYtd2FybmluZyk6YWZ0ZXIge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWlmLWZvY3VzZWQ6YWZ0ZXIge1xcbiAgYm9yZGVyLXdpZHRoOiAycHg7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyLWxlZnQtd2lkdGggMHMgMC40NXMsIGJvcmRlci1yaWdodC13aWR0aCAwcyAwLjQ1cywgLXdlYmtpdC10cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWxlZnQtd2lkdGggMHMgMC40NXMsIGJvcmRlci1yaWdodC13aWR0aCAwcyAwLjQ1cywgLXdlYmtpdC10cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSwgYm9yZGVyLWxlZnQtd2lkdGggMHMgMC40NXMsIGJvcmRlci1yaWdodC13aWR0aCAwcyAwLjQ1cztcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSksIGJvcmRlci1sZWZ0LXdpZHRoIDBzIDAuNDVzLCBib3JkZXItcmlnaHQtd2lkdGggMHMgMC40NXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG59XFxuLnEtaWYge1xcbiAgb3V0bGluZTogMDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG59XFxuLnEtaWYgLnEtaWYtaW5uZXIge1xcbiAgbWluLWhlaWdodDogMjRweDtcXG59XFxuLnEtaWYtc3RhbmRhcmQge1xcbiAgcGFkZGluZy10b3A6IDdweDtcXG4gIHBhZGRpbmctYm90dG9tOiA3cHg7XFxufVxcbi5xLWlmLXN0YW5kYXJkLnEtaWYtaGFzLWxhYmVsIHtcXG4gIHBhZGRpbmctdG9wOiAyNXB4O1xcbn1cXG4ucS1pZi1oaWRlLXVuZGVybGluZSB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG4gIHBhZGRpbmctYm90dG9tOiAwO1xcbn1cXG4ucS1pZi1oaWRlLXVuZGVybGluZS5xLWlmLWhhcy1sYWJlbCB7XFxuICBwYWRkaW5nLXRvcDogMThweDtcXG59XFxuLnEtaWYtc3RhbmRhcmQgLnEtaWYtbGFiZWwsXFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtbGFiZWwge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XFxufVxcbi5xLWlmLXN0YW5kYXJkIC5xLWlmLWxhYmVsLnEtaWYtbGFiZWwtYWJvdmUsXFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtbGFiZWwucS1pZi1sYWJlbC1hYm92ZSB7XFxuICBmb250LXNpemU6IDAuNzVyZW07XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTEwMCUpO1xcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XFxufVxcbi5xLWlmLWludmVydGVkIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbn1cXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1sYWJlbCB7XFxuICB0b3A6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTIxcHgpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjFweCk7XFxufVxcbi5xLWlmLWludmVydGVkIC5xLWlmLWxhYmVsLnEtaWYtbGFiZWwtYWJvdmUge1xcbiAgdG9wOiA0cHg7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMjUlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTEyNSUpO1xcbn1cXG4ucS1pZi1pbnZlcnRlZCAucS1pbnB1dC10YXJnZXQge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxufVxcbi5xLWlmLWZvY3VzZWQ6bm90KC5xLWlmLXJlYWRvbmx5KSAucS1pZi1sYWJlbCxcXG4ucS1pZi1mb2N1c2VkOm5vdCgucS1pZi1yZWFkb25seSkgLnEtaWYtYWRkb24sXFxuLnEtaWYtZm9jdXNlZDpub3QoLnEtaWYtcmVhZG9ubHkpIC5xLWlmLWNvbnRyb2wge1xcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtaWYtd2FybmluZzpiZWZvcmUsXFxuLnEtaWYtd2FybmluZzphZnRlcixcXG4ucS1pZi13YXJuaW5nOm5vdCgucS1pZi1pbnZlcnRlZCkgLnEtaWYtbGFiZWwge1xcbiAgY29sb3I6ICNmMmMwMzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci13YXJuaW5nKTtcXG59XFxuLnEtaWYtd2FybmluZzpob3ZlcjpiZWZvcmUge1xcbiAgY29sb3I6ICNmOGRkOTM7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci13YXJuaW5nLWwpO1xcbn1cXG4ucS1pZi1lcnJvcjpiZWZvcmUsXFxuLnEtaWYtZXJyb3I6YWZ0ZXIsXFxuLnEtaWYtZXJyb3I6bm90KC5xLWlmLWludmVydGVkKSAucS1pZi1sYWJlbCB7XFxuICBjb2xvcjogI2RiMjgyODtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKTtcXG59XFxuLnEtaWYtZXJyb3I6aG92ZXI6YmVmb3JlIHtcXG4gIGNvbG9yOiAjZWM4YjhiO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUtbCk7XFxufVxcbi5xLWlmLWRpc2FibGVkIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICBvcGFjaXR5OiAwLjY7XFxufVxcbi5xLWlmLWRpc2FibGVkIC5xLWlmLWxhYmVsLFxcbi5xLWlmLWRpc2FibGVkIC5xLWlmLWNvbnRyb2wsXFxuLnEtaWYtZGlzYWJsZWQgLnEtaW5wdXQtdGFyZ2V0LFxcbi5xLWlmLWRpc2FibGVkIC5xLWNoaXAge1xcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG59XFxuLnEtaWYtZGFyazpub3QoLnEtaWYtaW52ZXJ0ZWQtbGlnaHQpIC5xLWlucHV0LXRhcmdldDpub3QoLnEtaW5wdXQtdGFyZ2V0LXBsYWNlaG9sZGVyKSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtaWYtZm9jdXNhYmxlIHtcXG4gIG91dGxpbmU6IDA7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLWlmLWxhYmVsLFxcbi5xLWlucHV0LXRhcmdldCxcXG4ucS1pbnB1dC10YXJnZXQtcGxhY2Vob2xkZXIge1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxufVxcbi5xLWlmLWNvbnRyb2wge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbiAgd2lkdGg6IDI0cHg7XFxuICBoZWlnaHQ6IDI0cHg7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLWlmLWNvbnRyb2wgKyAucS1pZi1jb250cm9sLFxcbi5xLWlmLWNvbnRyb2wgKyAucS1pZi1pbm5lcixcXG4ucS1pZi1pbm5lciArIC5xLWlmLWNvbnRyb2wge1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG59XFxuLnEtaWYtY29udHJvbDpob3ZlciB7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcbi5xLWlmLWJhc2VsaW5lIHtcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgd2lkdGg6IDA7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5xLWlmLWxhYmVsLWlubmVyLFxcbi5xLWlmLWxhYmVsLXNwYWNlcixcXG4ucS1pZi1iYXNlbGluZSB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcbi5xLWlmLWxhYmVsLXNwYWNlciB7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxufVxcbi5xLWlmLWxhYmVsIHtcXG4gIGN1cnNvcjogdGV4dDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLWlmLWxhYmVsLFxcbi5xLWlmLWFkZG9uLFxcbi5xLWlmLWNvbnRyb2wge1xcbiAgY29sb3I6ICM5Nzk3OTc7XFxuICBsaW5lLWhlaWdodDogMjRweDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtbGFiZWwsXFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtYWRkb24sXFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtY29udHJvbCB7XFxuICBjb2xvcjogI2RkZDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQtbGlnaHQgLnEtaWYtbGFiZWwsXFxuLnEtaWYtaW52ZXJ0ZWQtbGlnaHQgLnEtaWYtYWRkb24sXFxuLnEtaWYtaW52ZXJ0ZWQtbGlnaHQgLnEtaWYtY29udHJvbCB7XFxuICBjb2xvcjogIzY1NjU2NTtcXG59XFxuLnEtaWYtYWRkb24ge1xcbiAgb3BhY2l0eTogMDtcXG4gIGN1cnNvcjogaW5oZXJpdDtcXG59XFxuLnEtaWYtYWRkb246bm90KC5xLWlmLWFkZG9uLXZpc2libGUpIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWlmLWFkZG9uLWxlZnQge1xcbiAgcGFkZGluZy1yaWdodDogMXB4O1xcbn1cXG4ucS1pZi1hZGRvbi1yaWdodCB7XFxuICBwYWRkaW5nLWxlZnQ6IDFweDtcXG59XFxuLnEtaWYtYWRkb24tdmlzaWJsZSB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1pbnB1dC10YXJnZXQsXFxuLnEtaW5wdXQtc2hhZG93IHtcXG4gIGJvcmRlcjogMDtcXG4gIG91dGxpbmU6IDA7XFxuICBwYWRkaW5nOiAwO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBsaW5lLWhlaWdodDogMjRweDtcXG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG4gIHJlc2l6ZTogbm9uZTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLWlucHV0LXRhcmdldDotd2Via2l0LWF1dG9maWxsIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHdlYmtpdC1hdXRvZmlsbC1vbjtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcXG59XFxuLnEtaW5wdXQtdGFyZ2V0LnEtaW5wdXQtYXV0b2ZpbGw6bm90KDotd2Via2l0LWF1dG9maWxsKSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB3ZWJraXQtYXV0b2ZpbGwtb2ZmO1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xcbn1cXG4ucS1pbnB1dC10YXJnZXQ6Oi1tcy1jbGVhcixcXG4ucS1pbnB1dC10YXJnZXQ6Oi1tcy1yZXZlYWwge1xcbiAgZGlzcGxheTogbm9uZTtcXG4gIHdpZHRoOiAwO1xcbiAgaGVpZ2h0OiAwO1xcbn1cXG4ucS1pbnB1dC10YXJnZXQ6aW52YWxpZCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IGluaGVyaXQ7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IGluaGVyaXQ7XFxufVxcbi5xLWlucHV0LXRhcmdldDpiZWZvcmUge1xcbiAgY29udGVudDogJ3wnO1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICB3aWR0aDogMDtcXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuaW5wdXQucS1pbnB1dC10YXJnZXQge1xcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcXG4gIGhlaWdodDogMjRweDtcXG4gIG91dGxpbmU6IDA7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxufVxcbi5xLWlmIC5xLWlucHV0LXRhcmdldC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZiAucS1pbnB1dC10YXJnZXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYgLnEtaW5wdXQtdGFyZ2V0OjotbW96LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmIC5xLWlucHV0LXRhcmdldDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtZGFyayAucS1pbnB1dC10YXJnZXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtZGFyayAucS1pbnB1dC10YXJnZXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtZGFyayAucS1pbnB1dC10YXJnZXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtZGFyayAucS1pbnB1dC10YXJnZXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWludmVydGVkOm5vdCgucS1pZi1pbnZlcnRlZC1saWdodCkgLnEtaW5wdXQtdGFyZ2V0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjZGRkICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWludmVydGVkOm5vdCgucS1pZi1pbnZlcnRlZC1saWdodCkgLnEtaW5wdXQtdGFyZ2V0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjZGRkICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWludmVydGVkOm5vdCgucS1pZi1pbnZlcnRlZC1saWdodCkgLnEtaW5wdXQtdGFyZ2V0OjotbW96LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjZGRkICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWludmVydGVkOm5vdCgucS1pZi1pbnZlcnRlZC1saWdodCkgLnEtaW5wdXQtdGFyZ2V0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogI2RkZCAhaW1wb3J0YW50O1xcbn1cXG4ucS1pbnB1dC1zaGFkb3cge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcXG59XFxuLnEtanVtYm90cm9uIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmc6IDJyZW0gMXJlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XFxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcXG59XFxuLnEtanVtYm90cm9uLWRhcmsge1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzU3NTc1O1xcbn1cXG4ucS1qdW1ib3Ryb24tZGFyayBoci5xLWhyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zNik7XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLnEtanVtYm90cm9uIHtcXG4gICAgcGFkZGluZzogNHJlbSAycmVtO1xcbiAgfVxcbn1cXG4ucS1rbm9iLFxcbi5xLWtub2IgPiBkaXYge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbn1cXG4ucS1rbm9iID4gZGl2IHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1rbm9iLWxhYmVsIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxufVxcbi5xLWtub2ItbGFiZWwgaSB7XFxuICBmb250LXNpemU6IDEzMCU7XFxufVxcbi5xLWxheW91dCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xcbn1cXG4ucS1sYXlvdXQtY29udGFpbmVyIC5xLWxheW91dCB7XFxuICBtaW4taGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1sYXlvdXQtY29udGFpbmVyID4gZGl2IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG59XFxuLnEtbGF5b3V0LWNvbnRhaW5lciA+IGRpdiA+IGRpdiB7XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgbWF4LWhlaWdodDogMTAwJTtcXG59XFxuLnEtbGF5b3V0LWhlYWRlciB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIDNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtbGF5b3V0LWhlYWRlci1oaWRkZW4ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTExMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTExMCUpO1xcbn1cXG4ucS1sYXlvdXQtZm9vdGVyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgLTNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0zcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1sYXlvdXQtZm9vdGVyLWhpZGRlbiB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDExMCUpO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICB6LWluZGV4OiAxMDAwO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLm9uLXRvcCB7XFxuICB6LWluZGV4OiAzMDAwO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLWRlbGltaXRlciB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA1cHggOHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDE0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDVweCA4cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMTRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLWxlZnQge1xcbiAgbGVmdDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1yaWdodCB7XFxuICByaWdodDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XFxufVxcbi5xLWxheW91dCxcXG4ucS1sYXlvdXQtaGVhZGVyLFxcbi5xLWxheW91dC1mb290ZXIsXFxuLnEtbGF5b3V0LXBhZ2Uge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucS1sYXlvdXQtaGVhZGVyLFxcbi5xLWxheW91dC1mb290ZXIge1xcbiAgei1pbmRleDogMjAwMDtcXG59XFxuLnEtbGF5b3V0LWJhY2tkcm9wIHtcXG4gIHotaW5kZXg6IDI5OTkgIWltcG9ydGFudDtcXG4gIHdpbGwtY2hhbmdlOiBiYWNrZ3JvdW5kLWNvbG9yO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkge1xcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtaXRlbSxcXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtaXRlbS1zaWRlIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtbWluaS1kcmF3ZXItaGlkZSxcXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtY29sbGFwc2libGUtaW5uZXIgPiBkaXY6bGFzdC1vZi10eXBlLFxcbi5xLWxheW91dC1kcmF3ZXItbWluaSAucS1saXN0LWhlYWRlcixcXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtaXRlbS1tYWluLFxcbi5xLWxheW91dC1kcmF3ZXItbWluaSAucS1pdGVtLXNpZGUtcmlnaHQge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1ub3JtYWwgLnEtbWluaS1kcmF3ZXItb25seSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLW1vYmlsZSAucS1taW5pLWRyYXdlci1vbmx5LFxcbi5xLWxheW91dC1kcmF3ZXItbW9iaWxlIC5xLW1pbmktZHJhd2VyLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1vcGVuZXIge1xcbiAgei1pbmRleDogMjAwMTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHdpZHRoOiAxNXB4O1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG59XFxuLnEtcGFnZS1zdGlja3ktc2hyaW5rIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS1wYWdlLXN0aWNreS1zaHJpbmsgPiBzcGFuIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xcbn1cXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci1wYWRkaW5nIC5xLWxheW91dCAucS1sYXlvdXQtaGVhZGVyID4gLnEtdG9vbGJhcjpudGgtY2hpbGQoMiksXFxuYm9keS5xLWlvcy1zdGF0dXNiYXItcGFkZGluZyAucS1sYXlvdXQgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRhYnM6bnRoLWNoaWxkKDIpIC5xLXRhYnMtaGVhZCxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci1wYWRkaW5nIC5xLWxheW91dCAucS1sYXlvdXQtZHJhd2VyLnRvcC1wYWRkaW5nLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXBhZGRpbmcgLm1vZGFsOm5vdCgubWluaW1pemVkKSAucS1sYXlvdXQtaGVhZGVyID4gLnEtdG9vbGJhcjpudGgtY2hpbGQoMSkge1xcbiAgcGFkZGluZy10b3A6IDIwcHg7XFxuICBtaW4taGVpZ2h0OiA3MHB4O1xcbn1cXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLWxheW91dCAucS1sYXlvdXQtaGVhZGVyID4gLnEtdG9vbGJhcjpudGgtY2hpbGQoMiksXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRhYnM6bnRoLWNoaWxkKDIpIC5xLXRhYnMtaGVhZCxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLWxheW91dCAucS1sYXlvdXQtZHJhd2VyLnRvcC1wYWRkaW5nLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLm1vZGFsOm5vdCgubWluaW1pemVkKSAucS1sYXlvdXQtaGVhZGVyID4gLnEtdG9vbGJhcjpudGgtY2hpbGQoMSkge1xcbiAgcGFkZGluZy10b3A6IGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKTtcXG59XFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWZvb3RlciA+IC5xLXRvb2xiYXI6bGFzdC1jaGlsZCxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLWxheW91dCAucS1sYXlvdXQtZm9vdGVyID4gLnEtdGFiczpsYXN0LWNoaWxkIC5xLXRhYnMtaGVhZCxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLWxheW91dCAucS1sYXlvdXQtZHJhd2VyLnRvcC1wYWRkaW5nLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLm1vZGFsOm5vdCgubWluaW1pemVkKSAucS1sYXlvdXQtZm9vdGVyID4gLnEtdG9vbGJhcjpsYXN0LWNoaWxkIHtcXG4gIHBhZGRpbmctYm90dG9tOiBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSk7XFxuICBtaW4taGVpZ2h0OiA3MHB4O1xcbn1cXG4ucS1sYXlvdXQtYW5pbWF0ZSAucS1sYXlvdXQtdHJhbnNpdGlvbiB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjEycyBlYXNlLWluICFpbXBvcnRhbnQ7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4xMnMgZWFzZS1pbiAhaW1wb3J0YW50O1xcbn1cXG4ucS1ib2R5LWRyYXdlci10b2dnbGUge1xcbiAgb3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLmxheW91dC1wYWRkaW5nIHtcXG4gICAgcGFkZGluZzogMS41cmVtIDAuNXJlbTtcXG4gIH1cXG4gIC5sYXlvdXQtcGFkZGluZy5ob3Jpem9udGFsIHtcXG4gICAgcGFkZGluZzogMCAwLjVyZW07XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XFxuICAubGF5b3V0LXBhZGRpbmcge1xcbiAgICBwYWRkaW5nOiAxLjVyZW0gMnJlbTtcXG4gICAgbWFyZ2luOiBhdXRvO1xcbiAgfVxcbiAgLmxheW91dC1wYWRkaW5nLmhvcml6b250YWwge1xcbiAgICBwYWRkaW5nOiAwIDJyZW07XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xcbiAgLmxheW91dC1wYWRkaW5nIHtcXG4gICAgcGFkZGluZzogMi41cmVtIDNyZW07XFxuICAgIG1hcmdpbjogYXV0bztcXG4gIH1cXG4gIC5sYXlvdXQtcGFkZGluZy5ob3Jpem9udGFsIHtcXG4gICAgcGFkZGluZzogMCAzcmVtO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAubGF5b3V0LXBhZGRpbmcge1xcbiAgICBwYWRkaW5nOiAzcmVtIDRyZW07XFxuICAgIG1hcmdpbjogYXV0bztcXG4gIH1cXG4gIC5sYXlvdXQtcGFkZGluZy5ob3Jpem9udGFsIHtcXG4gICAgcGFkZGluZzogMCA0cmVtO1xcbiAgfVxcbn1cXG4ucS1pdGVtLXN0YW1wIHtcXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDAuOHJlbTtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBtYXJnaW46IDAuM3JlbSAwO1xcbn1cXG4ucS1pdGVtLXNpZGUge1xcbiAgY29sb3I6ICM3MzczNzM7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICBtaW4td2lkdGg6IDM4cHg7XFxufVxcbi5xLWl0ZW0tc2lkZS1yaWdodCB7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG59XFxuLnEtaXRlbS1hdmF0YXIsXFxuLnEtaXRlbS1hdmF0YXIgaW1nIHtcXG4gIHdpZHRoOiAzOHB4O1xcbiAgaGVpZ2h0OiAzOHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbn1cXG4ucS1pdGVtLWxldHRlcixcXG4ucS1pdGVtLWljb24ge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbn1cXG4ucS1pdGVtLWludmVydGVkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZDogIzczNzM3MztcXG4gIGhlaWdodDogMzhweDtcXG4gIHdpZHRoOiAzOHB4O1xcbn1cXG4ucS1pdGVtLWludmVydGVkLFxcbi5xLWl0ZW0taW52ZXJ0ZWQgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDIwcHg7XFxufVxcbi5xLWl0ZW0tbWFpbiB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgZmxleDogMSAxIGF1dG87XFxuICBtaW4td2lkdGg6IDA7XFxufVxcbi5xLWl0ZW0tbWFpbi1pbnNldCB7XFxuICBtYXJnaW4tbGVmdDogNDhweDtcXG59XFxuLnEtaXRlbS1sYWJlbCB7XFxuICBsaW5lLWhlaWdodDogMS4yO1xcbn1cXG4ucS1pdGVtLWxhYmVsID4gc3BhbiB7XFxuICBjb2xvcjogIzc1NzU3NTtcXG59XFxuLnEtaXRlbS1zdWJsYWJlbCB7XFxuICBjb2xvcjogIzc1NzU3NTtcXG4gIGZvbnQtc2l6ZTogOTAlO1xcbiAgbWFyZ2luLXRvcDogMC4ycmVtO1xcbn1cXG4ucS1pdGVtLXN1YmxhYmVsID4gc3BhbiB7XFxuICBmb250LXdlaWdodDogNTAwO1xcbn1cXG4ucS1pdGVtLXNlY3Rpb24gKyAucS1pdGVtLXNlY3Rpb24ge1xcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XFxufVxcbi5xLWl0ZW0ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBmb250LXNpemU6IDFyZW07XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgcGFkZGluZzogOHB4IDE2cHg7XFxuICBtaW4taGVpZ2h0OiA0MHB4O1xcbn1cXG4ucS1pdGVtLmFjdGl2ZSxcXG4ucS1pdGVtLnJvdXRlci1saW5rLWFjdGl2ZSxcXG4ucS1pdGVtOmZvY3VzIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTg5LDE4OSwxODksMC40KTtcXG59XFxuLnEtaXRlbTpmb2N1cyB7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS1pdGVtLWltYWdlIHtcXG4gIG1pbi13aWR0aDogMTE0cHg7XFxuICBtYXgtd2lkdGg6IDExNHB4O1xcbiAgbWF4LWhlaWdodDogMTE0cHg7XFxufVxcbi5xLWxpc3QtbXVsdGlsaW5lID4gLnEtaXRlbSxcXG4ucS1pdGVtLW11bHRpbGluZSB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG59XFxuLnEtbGlzdC1saW5rID4gLnEtaXRlbSxcXG4ucS1pdGVtLWxpbmsge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1saXN0LWhpZ2hsaWdodCA+IC5xLWl0ZW06aG92ZXIsXFxuLnEtaXRlbS1oaWdobGlnaHQ6aG92ZXIsXFxuLnEtbGlzdC1saW5rID4gLnEtaXRlbTpob3ZlcixcXG4ucS1pdGVtLWxpbms6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgxODksMTg5LDE4OSwwLjUpO1xcbn1cXG4ucS1saXN0LXNlcGFyYXRvciA+IC5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLWRpdmlzaW9uLFxcbi5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLXNlcGFyYXRvciB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2UwZTBlMDtcXG59XFxuLnEtbGlzdC1pbnNldC1zZXBhcmF0b3IgPiAucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1kaXZpc2lvbjphZnRlcixcXG4ucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1pbnNldC1zZXBhcmF0b3I6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGxlZnQ6IDY0cHg7XFxuICBoZWlnaHQ6IDFweDtcXG4gIGJhY2tncm91bmQ6ICNlMGUwZTA7XFxufVxcbi5xLWxpc3QtZGVuc2UgPiAucS1pdGVtLFxcbi5xLWl0ZW0tZGVuc2Uge1xcbiAgcGFkZGluZzogM3B4IDE2cHg7XFxuICBtaW4taGVpZ2h0OiA4cHg7XFxufVxcbi5xLWxpc3Qtc3BhcnNlID4gLnEtaXRlbSxcXG4ucS1pdGVtLXNwYXJzZSB7XFxuICBwYWRkaW5nOiAyMi40cHggMTZweDtcXG4gIG1pbi1oZWlnaHQ6IDU2cHg7XFxufVxcbi5xLWxpc3Qtc3RyaXBlZCA+IC5xLWl0ZW06bnRoLWNoaWxkKGV2ZW4pIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg5LDE4OSwxODksMC42NSk7XFxufVxcbi5xLWxpc3Qtc3RyaXBlZC1vZGQgPiAucS1pdGVtOm50aC1jaGlsZChvZGQpIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg5LDE4OSwxODksMC42NSk7XFxufVxcbi5xLWxpc3Qge1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG4gIHBhZGRpbmc6IDhweCAwO1xcbn1cXG4ucS1pdGVtLXNlcGFyYXRvci1jb21wb25lbnQge1xcbiAgbWFyZ2luOiA4cHggMDtcXG4gIGhlaWdodDogMXB4O1xcbiAgYm9yZGVyOiAwO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcXG59XFxuLnEtaXRlbS1zZXBhcmF0b3ItY29tcG9uZW50Omxhc3QtY2hpbGQge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtaXRlbS1zZXBhcmF0b3ItY29tcG9uZW50ICsgLnEtbGlzdC1oZWFkZXIge1xcbiAgbWFyZ2luLXRvcDogLThweDtcXG59XFxuLnEtaXRlbS1zZXBhcmF0b3ItaW5zZXQtY29tcG9uZW50IHtcXG4gIG1hcmdpbi1sZWZ0OiA2NHB4O1xcbn1cXG4ucS1saXN0LWhlYWRlciB7XFxuICBjb2xvcjogIzc1NzU3NTtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBsaW5lLWhlaWdodDogMThweDtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxuICBwYWRkaW5nOiAxNXB4IDE2cHg7XFxufVxcbi5xLWxpc3QtaGVhZGVyLWluc2V0IHtcXG4gIHBhZGRpbmctbGVmdDogNjRweDtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tc2lkZSxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbS1zaWRlIHtcXG4gIGNvbG9yOiAjYmJiO1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1pbnZlcnRlZCxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbS1pbnZlcnRlZCB7XFxuICBjb2xvcjogIzAwMDtcXG4gIGJhY2tncm91bmQ6ICNiYmI7XFxufVxcbi5xLWxpc3QtZGFyayAucS1pdGVtLWxhYmVsID4gc3BhbixcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbS1sYWJlbCA+IHNwYW4sXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tc3VibGFiZWwsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0tc3VibGFiZWwge1xcbiAgY29sb3I6ICNiZGJkYmQ7XFxufVxcbi5xLWxpc3QtZGFyayAucS1pdGVtLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtaXRlbS5hY3RpdmUsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0uYWN0aXZlLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtLnJvdXRlci1saW5rLWFjdGl2ZSxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbS5yb3V0ZXItbGluay1hY3RpdmUsXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW06Zm9jdXMsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW06Zm9jdXMge1xcbiAgYmFja2dyb3VuZDogcmdiYSgxMTcsMTE3LDExNywwLjIpO1xcbn1cXG4ucS1saXN0LWRhcmsge1xcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMyKTtcXG59XFxuLnEtbGlzdC1kYXJrLnEtbGlzdC1zZXBhcmF0b3IgPiAucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1kaXZpc2lvbixcXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0tc2VwYXJhdG9yIHtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMzIpO1xcbn1cXG4ucS1saXN0LWRhcmsucS1saXN0LWluc2V0LXNlcGFyYXRvciA+IC5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLWRpdmlzaW9uOmFmdGVyLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1pbnNldC1zZXBhcmF0b3I6YWZ0ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjMyKTtcXG59XFxuLnEtbGlzdC1kYXJrLnEtbGlzdC1zdHJpcGVkID4gLnEtaXRlbTpudGgtY2hpbGQoZXZlbikge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMTcsMTE3LDExNywwLjQ1KTtcXG59XFxuLnEtbGlzdC1kYXJrLnEtbGlzdC1zdHJpcGVkLW9kZCA+IC5xLWl0ZW06bnRoLWNoaWxkKG9kZCkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMTcsMTE3LDExNywwLjQ1KTtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tc2VwYXJhdG9yLWNvbXBvbmVudCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMzIpO1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtbGlzdC1oZWFkZXIge1xcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42NCk7XFxufVxcbi5xLWxpc3QtZGFyay5xLWxpc3QtaGlnaGxpZ2h0ID4gLnEtaXRlbTpob3ZlcixcXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1oaWdobGlnaHQ6aG92ZXIsXFxuLnEtbGlzdC1kYXJrLnEtbGlzdC1saW5rID4gLnEtaXRlbTpob3ZlcixcXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1saW5rOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTE3LDExNywxMTcsMC4zKTtcXG59XFxuYm9keS53aXRoLWxvYWRpbmcge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtbG9hZGluZyB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNCk7XFxufVxcbi5xLWxvYWRpbmcgPiBkaXYge1xcbiAgbWFyZ2luOiA0MHB4IDIwcHggMDtcXG4gIG1heC13aWR0aDogNDUwcHg7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB0ZXh0LXNoYWRvdzogMCAwIDdweCAjMDAwO1xcbn1cXG4ubW9kYWwtYmFja2Ryb3Age1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjQpO1xcbn1cXG4ubW9kYWwubWF4aW1pemVkIC5tb2RhbC1iYWNrZHJvcCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ubW9kYWwtY29udGVudCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgd2lsbC1jaGFuZ2U6IHNjcm9sbC1wb3NpdGlvbjtcXG4gIG1pbi13aWR0aDogMjgwcHg7XFxuICBtYXgtaGVpZ2h0OiA4MHZoO1xcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ubW9kYWwge1xcbiAgei1pbmRleDogNTAwMDtcXG59XFxuLm1vZGFsLm1pbmltaXplZCAubW9kYWwtY29udGVudCB7XFxuICBtYXgtd2lkdGg6IDgwdnc7XFxuICBtYXgtaGVpZ2h0OiA4MHZoO1xcbn1cXG4ubW9kYWwubWF4aW1pemVkIC5tb2RhbC1jb250ZW50IHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgbWF4LWhlaWdodDogMTAwJTtcXG4gIGJvcmRlci1yYWRpdXM6IDA7XFxufVxcbi5tb2RhbC5tYXhpbWl6ZWQgLm1vZGFsLWNvbnRlbnQgLnEtbGF5b3V0LWNvbnRhaW5lciB7XFxuICBtaW4taGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xcbn1cXG4ucS1tb2RhbC1lbnRlcixcXG4ucS1tb2RhbC1sZWF2ZS1hY3RpdmUge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAubW9kYWw6bm90KC5tYXhpbWl6ZWQpLnEtbW9kYWwtZW50ZXIgLm1vZGFsLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XFxuICB9XFxuICAubW9kYWw6bm90KC5tYXhpbWl6ZWQpLnEtbW9kYWwtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuOCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xcbiAgfVxcbiAgLm1vZGFsLm1heGltaXplZC5xLW1vZGFsLWVudGVyIC5tb2RhbC1jb250ZW50LFxcbiAgLm1vZGFsLm1heGltaXplZC5xLW1vZGFsLWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwJSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwJSk7XFxuICB9XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLnEtcmVzcG9uc2l2ZS1tb2RhbCB7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICB9XFxuICAubW9kYWw6bm90KC5taW5pbWl6ZWQpIC5tb2RhbC1jb250ZW50IHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgICBib3JkZXItcmFkaXVzOiAwO1xcbiAgfVxcbiAgLm1vZGFsOm5vdCgubWluaW1pemVkKSAubW9kYWwtY29udGVudCAucS1sYXlvdXQtY29udGFpbmVyIHtcXG4gICAgbWluLWhlaWdodDogMTAwdmggIWltcG9ydGFudDtcXG4gIH1cXG4gIC5tb2RhbDpub3QoLm1pbmltaXplZCkucS1tb2RhbC1lbnRlciAubW9kYWwtY29udGVudCxcXG4gIC5tb2RhbDpub3QoLm1pbmltaXplZCkucS1tb2RhbC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMCUpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMCUpO1xcbiAgfVxcbiAgLm1vZGFsLm1pbmltaXplZC5xLW1vZGFsLWVudGVyIC5tb2RhbC1jb250ZW50IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMik7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xcbiAgfVxcbiAgLm1vZGFsLm1pbmltaXplZC5xLW1vZGFsLWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcXG4gIH1cXG59XFxuLnEtbWF4aW1pemVkLW1vZGFsIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5tb2RhbCxcXG4ubW9kYWwtY29udGVudCB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XFxufVxcbi5tb2RhbC1oZWFkZXIge1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG4gIHBhZGRpbmc6IDI0cHggMjRweCAxMHB4IDI0cHg7XFxuICBmb250LXNpemU6IDEuNnJlbTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxufVxcbi5tb2RhbC1ib2R5IHtcXG4gIHBhZGRpbmc6IDEwcHggMjRweDtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuNSk7XFxufVxcbi5zbWFsbC1tb2RhbC1zY3JvbGwsXFxuLm1vZGFsLXNjcm9sbCxcXG4uYmlnLW1vZGFsLXNjcm9sbCB7XFxuICBvdmVyZmxvdzogYXV0bztcXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG4gIHdpbGwtY2hhbmdlOiBzY3JvbGwtcG9zaXRpb247XFxufVxcbi5zbWFsbC1tb2RhbC1zY3JvbGwge1xcbiAgbWF4LWhlaWdodDogMTU2cHg7XFxufVxcbi5tb2RhbC1zY3JvbGwge1xcbiAgbWF4LWhlaWdodDogMjQwcHg7XFxufVxcbi5iaWctbW9kYWwtc2Nyb2xsIHtcXG4gIG1heC1oZWlnaHQ6IDQ4MHB4O1xcbn1cXG4ubW9kYWwtYnV0dG9ucyB7XFxuICBwYWRkaW5nOiAyMnB4IDhweCA4cHg7XFxuICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazogZW5kO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcbiAgY29sb3I6ICMwMjdiZTM7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1wcmltYXJ5KTtcXG59XFxuLm1vZGFsLWJ1dHRvbnMucm93IC5xLWJ0biArIC5xLWJ0biB7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG4ubW9kYWwtYnV0dG9ucy5jb2x1bW4ge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XFxufVxcbi5tb2RhbC1idXR0b25zLmNvbHVtbiAucS1idG4gKyAucS1idG4ge1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbn1cXG4ucS1tb2RhbC1ib3R0b20tZW50ZXIsXFxuLnEtbW9kYWwtYm90dG9tLWxlYXZlLWFjdGl2ZSB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1tb2RhbC1ib3R0b20tZW50ZXIgLm1vZGFsLWNvbnRlbnQsXFxuLnEtbW9kYWwtYm90dG9tLWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzAlKTtcXG59XFxuLnEtbW9kYWwtdG9wLWVudGVyLFxcbi5xLW1vZGFsLXRvcC1sZWF2ZS1hY3RpdmUge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtbW9kYWwtdG9wLWVudGVyIC5tb2RhbC1jb250ZW50LFxcbi5xLW1vZGFsLXRvcC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzAlKTtcXG59XFxuLnEtbW9kYWwtcmlnaHQtZW50ZXIsXFxuLnEtbW9kYWwtcmlnaHQtbGVhdmUtYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLW1vZGFsLXJpZ2h0LWVudGVyIC5tb2RhbC1jb250ZW50LFxcbi5xLW1vZGFsLXJpZ2h0LWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzAlKTtcXG59XFxuLnEtbW9kYWwtbGVmdC1lbnRlcixcXG4ucS1tb2RhbC1sZWZ0LWxlYXZlLWFjdGl2ZSB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1tb2RhbC1sZWZ0LWVudGVyIC5tb2RhbC1jb250ZW50LFxcbi5xLW1vZGFsLWxlZnQtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwJSk7XFxufVxcbi5xLW5vdGlmaWNhdGlvbnMgPiBkaXYge1xcbiAgei1pbmRleDogOTUwMDtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWxpc3Qge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tbGlzdC1jZW50ZXIge1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tbGlzdC10b3Age1xcbiAgdG9wOiAwO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tbGlzdC1ib3R0b20ge1xcbiAgYm90dG9tOiAwO1xcbn1cXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLW5vdGlmaWNhdGlvbi1saXN0LWNlbnRlcixcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLW5vdGlmaWNhdGlvbi1saXN0LXRvcCB7XFxuICB0b3A6IGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKTtcXG59XFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1ub3RpZmljYXRpb24tbGlzdC1jZW50ZXIsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1ub3RpZmljYXRpb24tbGlzdC1ib3R0b20ge1xcbiAgYm90dG9tOiBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSk7XFxufVxcbi5xLW5vdGlmaWNhdGlvbiB7XFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICBwb2ludGVyLWV2ZW50czogYWxsO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgbWFyZ2luOiAxMHB4IDEwcHggMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDFzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxcztcXG4gIHotaW5kZXg6IDk1MDA7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi10b3AtbGVmdC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tdG9wLWxlZnQtbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tdG9wLWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi10b3AtcmlnaHQtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1yaWdodC1sZWF2ZS10byB7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwcHgpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwcHgpO1xcbiAgei1pbmRleDogOTQ5OTtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWxlZnQtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLWxlZnQtbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLWNlbnRlci1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tY2VudGVyLWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi1yaWdodC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tcmlnaHQtbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1sZWZ0LWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVmdC1sZWF2ZS10byxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1yaWdodC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLXJpZ2h0LWxlYXZlLXRvIHtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MHB4KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpO1xcbiAgei1pbmRleDogOTQ5OTtcXG59XFxuLnEtbm90aWZpY2F0aW9uLXRvcC1sZWZ0LWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tdG9wLWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tdG9wLXJpZ2h0LWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tbGVmdC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWNlbnRlci1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLXJpZ2h0LWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlZnQtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tcmlnaHQtbGVhdmUtYWN0aXZlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHotaW5kZXg6IDk0OTk7XFxuICBtYXJnaW4tbGVmdDogMDtcXG4gIG1hcmdpbi1yaWdodDogMDtcXG59XFxuLnEtbm90aWZpY2F0aW9uLXRvcC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWNlbnRlci1sZWF2ZS1hY3RpdmUge1xcbiAgdG9wOiAwO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlZnQtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tcmlnaHQtbGVhdmUtYWN0aXZlIHtcXG4gIGJvdHRvbTogMDtcXG59XFxuLnEtb3B0aW9uLWlubmVyIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGxpbmUtaGVpZ2h0OiAwO1xcbn1cXG4ucS1vcHRpb24taW5uZXIgKyAucS1vcHRpb24tbGFiZWwge1xcbiAgbWFyZ2luLWxlZnQ6IDhweDtcXG59XFxuLnEtb3B0aW9uIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi5xLW9wdGlvbiBpbnB1dCB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5xLW9wdGlvbi5yZXZlcnNlIC5xLW9wdGlvbi1pbm5lciArIC5xLW9wdGlvbi1sYWJlbCB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbn1cXG4ucS1vcHRpb24tZ3JvdXAtaW5saW5lLW9wdHMgPiBkaXYge1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxufVxcbi5xLW9wdGlvbi1ncm91cCB7XFxuICBtYXJnaW46IC01cHg7XFxuICBwYWRkaW5nOiA1cHggMDtcXG59XFxuLnEtcGFnaW5hdGlvbiBpbnB1dCB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5xLXBhZ2luYXRpb24gLnEtYnRuIHtcXG4gIHBhZGRpbmc6IDAgNXB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLXBhZ2luYXRpb24gLnEtYnRuLmRpc2FibGVkIHtcXG4gIGNvbG9yOiAjNzc3O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItZmFkZWQpO1xcbn1cXG4ucS1wYXJhbGxheCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB3aWR0aDogMTAwJTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbn1cXG4ucS1wYXJhbGxheC1tZWRpYSA+IGltZyxcXG4ucS1wYXJhbGxheC1tZWRpYSA+IHZpZGVvIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDUwJTtcXG4gIGJvdHRvbTogMDtcXG4gIG1pbi13aWR0aDogMTAwJTtcXG4gIG1pbi1oZWlnaHQ6IDEwMCU7XFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xcbn1cXG4ucS1wYXJhbGxheC10ZXh0IHtcXG4gIHRleHQtc2hhZG93OiAwIDAgNXB4ICNmZmY7XFxufVxcbi5xLXBvcG92ZXIge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgei1pbmRleDogODAwMDtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxuICBvdmVyZmxvdy14OiBoaWRkZW47XFxuICBtYXgtd2lkdGg6IDEwMHZ3O1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtcG9wb3ZlciA+IC5xLWxpc3Q6b25seS1jaGlsZCB7XFxuICBib3JkZXI6IG5vbmU7XFxufVxcbmJvZHkgZGl2IC5xLXBvcG92ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtcHJvZ3Jlc3Mge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgaGVpZ2h0OiA1cHg7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWwuYW5pbWF0ZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wcm9ncmVzcy1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXByb2dyZXNzLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlO1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbDpub3QoLmluZGV0ZXJtaW5hdGUpIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XFxuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGxpbmVhcjtcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWwuaW5kZXRlcm1pbmF0ZTpiZWZvcmUsXFxuLnEtcHJvZ3Jlc3MtbW9kZWwuaW5kZXRlcm1pbmF0ZTphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgd2lsbC1jaGFuZ2U6IGxlZnQsIHJpZ2h0O1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbC5pbmRldGVybWluYXRlOmJlZm9yZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wcm9ncmVzcy1pbmRldGVybWluYXRlIDIuMXMgY3ViaWMtYmV6aWVyKDAuNjUsIDAuODE1LCAwLjczNSwgMC4zOTUpIGluZmluaXRlO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZSAyLjFzIGN1YmljLWJlemllcigwLjY1LCAwLjgxNSwgMC43MzUsIDAuMzk1KSBpbmZpbml0ZTtcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWwuaW5kZXRlcm1pbmF0ZTphZnRlciB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wcm9ncmVzcy1pbmRldGVybWluYXRlLXNob3J0IDIuMXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKSBpbmZpbml0ZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUtc2hvcnQgMi4xcyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQsIDAuNDQsIDEpIGluZmluaXRlO1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDEuMTVzO1xcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDEuMTVzO1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbC5zdHJpcGUsXFxuLnEtcHJvZ3Jlc3MtbW9kZWwuc3RyaXBlOmJlZm9yZSxcXG4ucS1wcm9ncmVzcy1tb2RlbC5zdHJpcGU6YWZ0ZXIge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQtc2l6ZTogNDBweCA0MHB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLXByb2dyZXNzLXRyYWNrIHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICBib3R0b206IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDAuM3MgbGluZWFyO1xcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XFxufVxcbi5xLXByb2dyZXNzLWJ1ZmZlciB7XFxuICB0b3A6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICBoZWlnaHQ6IDRweDtcXG4gIHJpZ2h0OiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGxpbmVhcjtcXG4gIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgbGluZWFyO1xcbiAgLXdlYmtpdC1tYXNrOiB1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWo4K0NqeHpkbWNnZDJsa2RHZzlJakV5SWlCb1pXbG5hSFE5SWpRaUlIWnBaWGRRYjNKMFBTSXdJREFnTVRJZ05DSWdkbVZ5YzJsdmJqMGlNUzR4SWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpUGdvZ0lEeGxiR3hwY0hObElHTjRQU0l5SWlCamVUMGlNaUlnY25nOUlqSWlJSEo1UFNJeUlqNEtJQ0FnSUR4aGJtbHRZWFJsSUdGMGRISnBZblYwWlU1aGJXVTlJbU40SWlCbWNtOXRQU0l5SWlCMGJ6MGlMVEV3SWlCa2RYSTlJakF1Tm5NaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlBdlBnb2dJRHd2Wld4c2FYQnpaVDRLSUNBOFpXeHNhWEJ6WlNCamVEMGlNVFFpSUdONVBTSXlJaUJ5ZUQwaU1pSWdjbms5SWpJaUlHTnNZWE56UFNKc2IyRmtaWElpUGdvZ0lDQWdQR0Z1YVcxaGRHVWdZWFIwY21saWRYUmxUbUZ0WlQwaVkzZ2lJR1p5YjIwOUlqRTBJaUIwYnowaU1pSWdaSFZ5UFNJd0xqWnpJaUJ5WlhCbFlYUkRiM1Z1ZEQwaWFXNWtaV1pwYm1sMFpTSWdMejRLSUNBOEwyVnNiR2x3YzJVK0Nqd3ZjM1puUGdvPVxcXCIpO1xcbiAgICAgICAgICBtYXNrOiB1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWo4K0NqeHpkbWNnZDJsa2RHZzlJakV5SWlCb1pXbG5hSFE5SWpRaUlIWnBaWGRRYjNKMFBTSXdJREFnTVRJZ05DSWdkbVZ5YzJsdmJqMGlNUzR4SWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpUGdvZ0lEeGxiR3hwY0hObElHTjRQU0l5SWlCamVUMGlNaUlnY25nOUlqSWlJSEo1UFNJeUlqNEtJQ0FnSUR4aGJtbHRZWFJsSUdGMGRISnBZblYwWlU1aGJXVTlJbU40SWlCbWNtOXRQU0l5SWlCMGJ6MGlMVEV3SWlCa2RYSTlJakF1Tm5NaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlBdlBnb2dJRHd2Wld4c2FYQnpaVDRLSUNBOFpXeHNhWEJ6WlNCamVEMGlNVFFpSUdONVBTSXlJaUJ5ZUQwaU1pSWdjbms5SWpJaUlHTnNZWE56UFNKc2IyRmtaWElpUGdvZ0lDQWdQR0Z1YVcxaGRHVWdZWFIwY21saWRYUmxUbUZ0WlQwaVkzZ2lJR1p5YjIwOUlqRTBJaUIwYnowaU1pSWdaSFZ5UFNJd0xqWnpJaUJ5WlhCbFlYUkRiM1Z1ZEQwaWFXNWtaV1pwYm1sMFpTSWdMejRLSUNBOEwyVnNiR2x3YzJVK0Nqd3ZjM1puUGdvPVxcXCIpO1xcbn1cXG4ucS1wcm9ncmVzcy10cmFjayxcXG4ucS1wcm9ncmVzcy1idWZmZXIge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgb3BhY2l0eTogMC4yO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbn1cXG4ucHVsbC10by1yZWZyZXNoIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnB1bGwtdG8tcmVmcmVzaC1tZXNzYWdlIHtcXG4gIGhlaWdodDogNjVweDtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG59XFxuLnB1bGwtdG8tcmVmcmVzaC1tZXNzYWdlIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAycmVtO1xcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcztcXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xcbn1cXG4ucS1yYWRpby11bmNoZWNrZWQsXFxuLnEtcmFkaW8tY2hlY2tlZCxcXG4ucS1yYWRpbyAucS1vcHRpb24taW5uZXIge1xcbiAgaGVpZ2h0OiAyMXB4O1xcbiAgd2lkdGg6IDIxcHg7XFxuICBtaW4td2lkdGg6IDIxcHg7XFxuICBmb250LXNpemU6IDIxcHg7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpLCAtd2Via2l0LXRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1yYWRpby11bmNoZWNrZWQge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtcmFkaW8tY2hlY2tlZCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCUgMDtcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJSAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xcbn1cXG4ucS1yYWRpbyAucS1vcHRpb24taW5uZXIuYWN0aXZlIC5xLXJhZGlvLXVuY2hlY2tlZCB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1yYWRpbyAucS1vcHRpb24taW5uZXIuYWN0aXZlIC5xLXJhZGlvLWNoZWNrZWQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbn1cXG4ucS1yYXRpbmcge1xcbiAgY29sb3I6ICNmZmViM2I7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4ucS1yYXRpbmcgc3BhbiB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGRpc3BsYXk6IGluaGVyaXQ7XFxufVxcbi5xLXJhdGluZyBpIHtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxuICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4xMiksIDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMjQpO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgb3BhY2l0eTogMC40O1xcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcXG59XFxuLnEtcmF0aW5nIGkuaG92ZXJlZCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4zKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjMpO1xcbn1cXG4ucS1yYXRpbmcgaS5leHNlbGVjdGVkIHtcXG4gIG9wYWNpdHk6IDAuNztcXG59XFxuLnEtcmF0aW5nIGkuYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLXJhdGluZyBpICsgaSB7XFxuICBtYXJnaW4tbGVmdDogMC4zcmVtO1xcbn1cXG4ucS1yYXRpbmcuZWRpdGFibGUgaSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLXJhdGluZzpub3QoLmVkaXRhYmxlKSBzcGFuLFxcbi5xLXJhdGluZyBpIHtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLXNjcm9sbGFyZWEtdGh1bWIge1xcbiAgYmFja2dyb3VuZDogIzAwMDtcXG4gIHdpZHRoOiAxMHB4O1xcbiAgcmlnaHQ6IDA7XFxuICBvcGFjaXR5OiAwLjI7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcXG59XFxuLnEtc2Nyb2xsYXJlYS10aHVtYi5pbnZpc2libGUtdGh1bWIge1xcbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xcbn1cXG4ucS1zY3JvbGxhcmVhLXRodW1iOmhvdmVyIHtcXG4gIG9wYWNpdHk6IDAuMztcXG59XFxuLnEtc2Nyb2xsYXJlYS10aHVtYjphY3RpdmUge1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS10b29sYmFyIC5xLXNlYXJjaCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpO1xcbn1cXG4ucS1zbGlkZXItdHJhY2ssXFxuLnEtc2xpZGVyLW1hcmsge1xcbiAgb3BhY2l0eTogMC40O1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1zbGlkZXItdHJhY2sge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gIGhlaWdodDogMnB4O1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5xLXNsaWRlci10cmFjazpub3QoLmRyYWdnaW5nKSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xcbn1cXG4ucS1zbGlkZXItdHJhY2suYWN0aXZlLXRyYWNrIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLXNsaWRlci10cmFjay50cmFjay1kcmFnZ2FibGUuZHJhZ2dpbmcge1xcbiAgaGVpZ2h0OiA0cHg7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGhlaWdodCAwLjNzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4zcyBlYXNlO1xcbn1cXG4ucS1zbGlkZXItdHJhY2suaGFuZGxlLWF0LW1pbmltdW0ge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxufVxcbi5xLXNsaWRlci1tYXJrIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgaGVpZ2h0OiAxMHB4O1xcbiAgd2lkdGg6IDJweDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlLWNvbnRhaW5lciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBtYXJnaW4tbGVmdDogNnB4O1xcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XFxufVxcbi5xLXNsaWRlci1sYWJlbCB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiA2cHg7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKSBzY2FsZSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMCkgc2NhbGUoMCk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XFxuICBwYWRkaW5nOiAycHggNHB4O1xcbn1cXG4ucS1zbGlkZXItbGFiZWwubGFiZWwtYWx3YXlzIHtcXG4gIG9wYWNpdHk6IDE7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0xMzklKSBzY2FsZSgxKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTEzOSUpIHNjYWxlKDEpO1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XFxuICB3aWR0aDogMTJweDtcXG4gIGhlaWdodDogMTJweDtcXG4gIG91dGxpbmU6IDA7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXNsaWRlci1oYW5kbGUgLnEtY2hpcCB7XFxuICBtYXgtd2lkdGg6IHVuc2V0O1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlLmRyYWdnaW5nIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSBzY2FsZSgxLjMpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApIHNjYWxlKDEuMyk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCAtd2Via2l0LXRyYW5zZm9ybSAwLjNzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIHRyYW5zZm9ybSAwLjNzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlO1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlLmRyYWdnaW5nIC5xLXNsaWRlci1sYWJlbCB7XFxuICBvcGFjaXR5OiAxO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMTM5JSkgc2NhbGUoMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0xMzklKSBzY2FsZSgxKTtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZS5oYW5kbGUtYXQtbWluaW11bSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlLmhhbmRsZS1hdC1taW5pbXVtOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgYm9yZGVyOiAycHggc29saWQgY3VycmVudENvbG9yO1xcbn1cXG4ucS1zbGlkZXItcmluZyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC01MCU7XFxuICBsZWZ0OiAtNTAlO1xcbiAgd2lkdGg6IDIwMCU7XFxuICBoZWlnaHQ6IDIwMCU7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc2xpZGVyOm5vdCguZGlzYWJsZWQpOm5vdCgucmVhZG9ubHkpIC5xLXNsaWRlci1oYW5kbGUuZHJhZ2dpbmcgLnEtc2xpZGVyLXJpbmcsXFxuLnEtc2xpZGVyOm5vdCguZGlzYWJsZWQpOm5vdCgucmVhZG9ubHkpIC5xLXNsaWRlci1oYW5kbGU6Zm9jdXMgLnEtc2xpZGVyLXJpbmcsXFxuYm9keS5kZXNrdG9wIC5xLXNsaWRlcjpub3QoLmRpc2FibGVkKTpub3QoLnJlYWRvbmx5KTpob3ZlciAucS1zbGlkZXItcmluZyB7XFxuICBvcGFjaXR5OiAwLjQ7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxufVxcbi5xLXNsaWRlci5kaXNhYmxlZCAucS1zbGlkZXItaGFuZGxlIHtcXG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XFxufVxcbi5xLXNsaWRlci5kaXNhYmxlZCAucS1zbGlkZXItaGFuZGxlLmhhbmRsZS1hdC1taW5pbXVtIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc2xpZGVyIHtcXG4gIGhlaWdodDogMjhweDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgY29sb3I6ICMwMjdiZTM7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1wcmltYXJ5KTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtc2xpZGVyLmxhYmVsLWFsd2F5cyxcXG4ucS1zbGlkZXIud2l0aC1wYWRkaW5nIHtcXG4gIHBhZGRpbmc6IDM2cHggMCA4cHg7XFxuICBoZWlnaHQ6IDY0cHg7XFxufVxcbi5xLXNsaWRlci5oYXMtZXJyb3Ige1xcbiAgY29sb3I6ICNkYjI4Mjg7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSk7XFxufVxcbi5xLXNsaWRlci5oYXMtd2FybmluZyB7XFxuICBjb2xvcjogI2YyYzAzNztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXdhcm5pbmcpO1xcbn1cXG4ucS1zcGlubmVyIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi5xLXNwaW5uZXItbWF0IHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXNwaW4gMnMgbGluZWFyIGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1zcGluIDJzIGxpbmVhciBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXIgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtc3Bpbm5lci1tYXQgLnBhdGgge1xcbiAgc3Ryb2tlLWRhc2hhcnJheTogMSwgMjAwO1xcbiAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XFxuICBzdHJva2UtbGluZWNhcDogcm91bmQ7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1tYXQtZGFzaCAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1tYXQtZGFzaCAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLXN0ZXBwZXIge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLXN0ZXBwZXItdGl0bGUge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbn1cXG4ucS1zdGVwcGVyLXN1YnRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIG9wYWNpdHk6IDAuNztcXG59XFxuLnEtc3RlcHBlci1kb3Qge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICB3aWR0aDogMjRweDtcXG4gIGhlaWdodDogMjRweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc3RlcHBlci1kb3Qgc3BhbiB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtc3RlcHBlci10YWIge1xcbiAgcGFkZGluZzogMjRweDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjI4cywgYmFja2dyb3VuZCAwLjI4cztcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMjhzLCBiYWNrZ3JvdW5kIDAuMjhzO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLXdhaXRpbmcge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtd2FpdGluZyAucS1zdGVwcGVyLWRvdCB7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjQyKTtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1uYXZpZ2F0aW9uIHtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtY29sb3Ige1xcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1hY3RpdmUgLnEtc3RlcHBlci10aXRsZSB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1kaXNhYmxlZCB7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjQyKTtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1lcnJvciB7XFxuICBjb2xvcjogI2RiMjgyODtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKTtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1lcnJvciAucS1zdGVwcGVyLWRvdCB7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1lcnJvciAucS1zdGVwcGVyLWRvdCBzcGFuIHtcXG4gIGNvbG9yOiAjZGIyODI4O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpO1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlciB7XFxuICBtaW4taGVpZ2h0OiA3MnB4O1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlcjpub3QoLmFsdGVybmF0aXZlLWxhYmVscykgLnEtc3RlcHBlci10YWIge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyOm5vdCguYWx0ZXJuYXRpdmUtbGFiZWxzKSAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMge1xcbiAgbWluLWhlaWdodDogMTA0cHg7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyLmFsdGVybmF0aXZlLWxhYmVscyAucS1zdGVwcGVyLXRhYiB7XFxuICBwYWRkaW5nOiAyNHB4IDMycHg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAtd2Via2l0LWJveC1wYWNrOiBzdGFydDtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBzdGFydDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMgLnEtc3RlcHBlci1kb3Qge1xcbiAgbWFyZ2luLXJpZ2h0OiAwO1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMgLnEtc3RlcHBlci1sYWJlbCB7XFxuICBtYXJnaW4tdG9wOiA4cHg7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyLmFsdGVybmF0aXZlLWxhYmVscyAucS1zdGVwcGVyLWxhYmVsOmJlZm9yZSxcXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMgLnEtc3RlcHBlci1sYWJlbDphZnRlciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1zdGVwcGVyLXN0ZXAtY29udGVudCB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci10YWIge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1maXJzdCAucS1zdGVwcGVyLWRvdDpiZWZvcmUsXFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1sYXN0IC5xLXN0ZXBwZXItbGFiZWw6YWZ0ZXIsXFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1sYXN0IC5xLXN0ZXBwZXItZG90OmFmdGVyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItbGluZTpiZWZvcmUsXFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1saW5lOmFmdGVyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgaGVpZ2h0OiAxcHg7XFxuICB3aWR0aDogMTAwdnc7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWxhYmVsOmFmdGVyLFxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItZG90OmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgbGVmdDogMTAwJTtcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItZG90OmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHJpZ2h0OiAxMDAlO1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItbmF2IHtcXG4gIG1hcmdpbjogMCAxNnB4IDhweDtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1zdGVwIC5xLXN0ZXBwZXItbmF2IHtcXG4gIG1hcmdpbjogMTZweCAwIDA7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItc3RlcCAucS1zdGVwcGVyLW5hdiA+IGRpdi5jb2wge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci1zdGVwLWNvbnRlbnQgPiAucS1zdGVwcGVyLXN0ZXAtaW5uZXIge1xcbiAgcGFkZGluZzogMjRweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCB7XFxuICBwYWRkaW5nOiA4cHggMCAxOHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1uYXYge1xcbiAgbWFyZ2luLXRvcDogMTZweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItbmF2ID4gZGl2LmNvbCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXN0ZXAtY29udGVudCA+IC5xLXN0ZXBwZXItc3RlcC1pbm5lciB7XFxuICBwYWRkaW5nOiAwIDI0cHggMjRweCA0OHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIge1xcbiAgcGFkZGluZzogMTJweCAxNnB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIgLnEtc3RlcHBlci1kb3Q6YmVmb3JlLFxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDUwJTtcXG4gIHdpZHRoOiAxcHg7XFxuICBoZWlnaHQ6IDEwMHZoO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiIC5xLXN0ZXBwZXItZG90OmJlZm9yZSB7XFxuICBib3R0b206IDEwMCU7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICB0b3A6IDEwMCU7XFxuICBtYXJnaW4tdG9wOiA4cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiAucS1zdGVwcGVyLWxhYmVsIHtcXG4gIHBhZGRpbmctdG9wOiA0cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiAucS1zdGVwcGVyLWxhYmVsIC5xLXN0ZXBwZXItdGl0bGUge1xcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYi5xLXN0ZXBwZXItZmlyc3QgLnEtc3RlcHBlci1kb3Q6YmVmb3JlLFxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYi5xLXN0ZXBwZXItbGFzdCAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtc3RlcHBlci10YWIuc3RlcC1uYXZpZ2F0aW9uOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wNSk7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLnEtc3RlcHBlci1ob3Jpem9udGFsLnEtc3RlcHBlci1jb250cmFjdGFibGUgPiAucS1zdGVwcGVyLWhlYWRlciB7XFxuICAgIG1pbi1oZWlnaHQ6IDcycHg7XFxuICB9XFxuICAucS1zdGVwcGVyLWhvcml6b250YWwucS1zdGVwcGVyLWNvbnRyYWN0YWJsZSA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItdGFiIHtcXG4gICAgcGFkZGluZzogMjRweCAwO1xcbiAgfVxcbiAgLnEtc3RlcHBlci1ob3Jpem9udGFsLnEtc3RlcHBlci1jb250cmFjdGFibGUgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLXRhYjpub3QoOmxhc3QtY2hpbGQpIC5xLXN0ZXBwZXItZG90OmFmdGVyIHtcXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcXG4gIH1cXG4gIC5xLXN0ZXBwZXItaG9yaXpvbnRhbC5xLXN0ZXBwZXItY29udHJhY3RhYmxlID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1kb3Qge1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuICAucS1zdGVwcGVyLWhvcml6b250YWwucS1zdGVwcGVyLWNvbnRyYWN0YWJsZSA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItbGFiZWwge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcbn1cXG4ucS10YWJzIHtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG59XFxuLnEtbGF5b3V0LW1hcmdpbmFsIC5xLXRhYnMge1xcbiAgYm9yZGVyLXJhZGl1czogMDtcXG59XFxuLnEtdGFicy1zY3JvbGxlciB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS10YWItcGFuZSB7XFxuICBwYWRkaW5nOiAxMnB4O1xcbn1cXG4ucS10YWJzLXBhbmVzOmVtcHR5IHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXRhYnMtbm9ybWFsIC5xLXRhYi1pY29uLFxcbi5xLXRhYnMtbm9ybWFsIC5xLXRhYi1sYWJlbCB7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcbi5xLXRhYiB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yIDAuM3MsIGJhY2tncm91bmQgMC4zcztcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3MsIGJhY2tncm91bmQgMC4zcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgcGFkZGluZzogOHB4IDEwcHg7XFxuICBtaW4taGVpZ2h0OiA0OHB4O1xcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcXG59XFxuLnEtdGFiIC5xLXRhYi1pY29uLXBhcmVudCArIC5xLXRhYi1sYWJlbC1wYXJlbnQge1xcbiAgbWFyZ2luLXRvcDogNHB4O1xcbn1cXG4ucS10YWIgLnEtY2hpcCB7XFxuICB0b3A6IC04cHg7XFxuICByaWdodDogLTEwcHg7XFxuICBsZWZ0OiBhdXRvO1xcbiAgbWluLWhlaWdodDogYXV0bztcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNDQsNjcsNTQsMC43NSk7XFxufVxcbi5xLXRhYi5hY3RpdmUgLnEtdGFiLWljb24sXFxuLnEtdGFiLmFjdGl2ZSAucS10YWItbGFiZWwge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtdGFiLWxhYmVsIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuLnEtdGFiLWljb24ge1xcbiAgZm9udC1zaXplOiAyN3B4O1xcbn1cXG4ucS10YWItZm9jdXMtaGVscGVyIHtcXG4gIHotaW5kZXg6IC0xO1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtdGFiLWZvY3VzLWhlbHBlcjpmb2N1cyB7XFxuICB6LWluZGV4OiB1bnNldDtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIG9wYWNpdHk6IDAuMTtcXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAucS10YWIuaGlkZS1pY29uIC5xLXRhYi1pY29uLXBhcmVudCxcXG4gIC5xLXRhYi5oaWRlLWxhYmVsIC5xLXRhYi1sYWJlbC1wYXJlbnQge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxuICAucS10YWIuaGlkZS1pY29uIC5xLXRhYi1sYWJlbCB7XFxuICAgIG1hcmdpbi10b3A6IDA7XFxuICB9XFxuICAucS10YWItZnVsbC5oaWRlLW5vbmUgLnEtdGFiLWxhYmVsLXBhcmVudCAucS10YWItbWV0YSB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLnEtdGFiLWZ1bGwgLnEtdGFiLWxhYmVsLXBhcmVudCAucS10YWItbWV0YSB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xcbiAgLnEtdGFicy1oZWFkOm5vdCguc2Nyb2xsYWJsZSkgLnEtdGFicy1zY3JvbGxlcixcXG4gIC5xLXRhYnMtaGVhZDpub3QoLnNjcm9sbGFibGUpIC5xLXRhYiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgLnEtdGFiIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xcbiAgfVxcbiAgLnEtbGF5b3V0LW1hcmdpbmFsIC5xLXRhYnMtaGVhZDpub3QoLnNjcm9sbGFibGUpIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xcbiAgfVxcbn1cXG4ucS10YWJzLWhlYWQge1xcbiAgbWluLWhlaWdodDogNDhweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBmb250LXNpemU6IDAuOTVyZW07XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjE4cyBlYXNlLWluLCAtd2Via2l0LWJveC1zaGFkb3cgMC4xOHMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMThzIGVhc2UtaW4sIC13ZWJraXQtYm94LXNoYWRvdyAwLjE4cyBlYXNlLWluO1xcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xOHMgZWFzZS1pbiwgYm94LXNoYWRvdyAwLjE4cyBlYXNlLWluO1xcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xOHMgZWFzZS1pbiwgYm94LXNoYWRvdyAwLjE4cyBlYXNlLWluLCAtd2Via2l0LWJveC1zaGFkb3cgMC4xOHMgZWFzZS1pbjtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnEtdGFicy1oZWFkOm5vdCguc2Nyb2xsYWJsZSkgLnEtdGFicy1sZWZ0LXNjcm9sbCxcXG4ucS10YWJzLWhlYWQ6bm90KC5zY3JvbGxhYmxlKSAucS10YWJzLXJpZ2h0LXNjcm9sbCB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5xLXRhYnMtbGVmdC1zY3JvbGwsXFxuLnEtdGFicy1yaWdodC1zY3JvbGwge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgY29sb3I6ICNmZmY7XFxuICB0b3A6IDA7XFxufVxcbi5xLXRhYnMtbGVmdC1zY3JvbGwgLnEtaWNvbixcXG4ucS10YWJzLXJpZ2h0LXNjcm9sbCAucS1pY29uIHtcXG4gIHRleHQtc2hhZG93OiAwIDAgMTBweCAjMDAwO1xcbiAgZm9udC1zaXplOiAzMi40cHg7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxufVxcbi5xLXRhYnMtbGVmdC1zY3JvbGwuZGlzYWJsZWQsXFxuLnEtdGFicy1yaWdodC1zY3JvbGwuZGlzYWJsZWQge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtdGFiczpob3ZlciAucS10YWJzLWxlZnQtc2Nyb2xsIC5xLWljb24sXFxuLnEtdGFiczpob3ZlciAucS10YWJzLXJpZ2h0LXNjcm9sbCAucS1pY29uIHtcXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XFxufVxcbi5xLXRhYnMtbGVmdC1zY3JvbGwge1xcbiAgbGVmdDogMCAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS10YWJzLXJpZ2h0LXNjcm9sbCB7XFxuICByaWdodDogMCAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS10YWJzLWFsaWduLWp1c3RpZnkgLnEtdGFicy1zY3JvbGxlcixcXG4ucS10YWJzLWFsaWduLWp1c3RpZnkgLnEtdGFiIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG59XFxuLnEtdGFicy1hbGlnbi1jZW50ZXIge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxufVxcbi5xLXRhYnMtYWxpZ24tcmlnaHQge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogZW5kO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG59XFxuLnEtdGFicy1iYXIge1xcbiAgYm9yZGVyOiAycHggc29saWQgY3VycmVudENvbG9yO1xcbiAgYm9yZGVyLXdpZHRoOiAwO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaGVpZ2h0OiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbn1cXG4ucS10YWJzLWdsb2JhbC1iYXIge1xcbiAgd2lkdGg6IDFweDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtLCAtd2Via2l0LXRyYW5zZm9ybTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXM7XFxuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7XFxuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTtcXG59XFxuLnEtdGFicy1nbG9iYWwtYmFyLmNvbnRyYWN0IHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xOHM7XFxuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMThzO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XFxuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcXG59XFxuLnEtdGFicy1nbG9iYWwtYmFyLWNvbnRhaW5lci5oaWdobGlnaHQgPiAucS10YWJzLWdsb2JhbC1iYXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtdGFicy10d28tbGluZXMgLnEtdGFiIHtcXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XFxufVxcbi5xLXRhYnMtdHdvLWxpbmVzIC5xLXRhYiAucS10YWItbGFiZWwge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcXG59XFxuLnEtdGFicy1wb3NpdGlvbi10b3AgPiAucS10YWJzLWhlYWQgLnEtdGFicy1iYXIge1xcbiAgYm90dG9tOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xcbn1cXG4ucS10YWJzLXBvc2l0aW9uLWJvdHRvbSA+IC5xLXRhYnMtaGVhZCAucS10YWJzLWJhciB7XFxuICB0b3A6IDA7XFxuICBib3JkZXItdG9wLXdpZHRoOiAycHg7XFxufVxcbi5xLXRhYnMtcG9zaXRpb24tYm90dG9tID4gLnEtdGFicy1wYW5lcyB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAwO1xcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAtMTtcXG4gICAgICAgICAgb3JkZXI6IC0xO1xcbn1cXG4ucS10YWJzLWludmVydGVkIC5xLXRhYnMtaGVhZCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbn1cXG4ucS10YWJzLWludmVydGVkLnEtdGFicy1wb3NpdGlvbi10b3AgPiAucS10YWJzLXBhbmVzIHtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7XFxufVxcbi5xLXRhYnMtaW52ZXJ0ZWQucS10YWJzLXBvc2l0aW9uLXRvcCA+IC5xLXRhYi1wYW5lIHtcXG4gIGJvcmRlci10b3A6IDA7XFxufVxcbi5xLXRhYnMtaW52ZXJ0ZWQucS10YWJzLXBvc2l0aW9uLWJvdHRvbSA+IC5xLXRhYnMtcGFuZXMge1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTtcXG59XFxuLnEtdGFicy1pbnZlcnRlZC5xLXRhYnMtcG9zaXRpb24tYm90dG9tID4gLnEtdGFiLXBhbmUge1xcbiAgYm9yZGVyLWJvdHRvbTogMDtcXG59XFxuYm9keS5tb2JpbGUgLnEtdGFicy1zY3JvbGxlciB7XFxuICBvdmVyZmxvdy15OiBoaWRkZW47XFxuICBvdmVyZmxvdy14OiBhdXRvO1xcbiAgd2lsbC1jaGFuZ2U6IHNjcm9sbC1wb3NpdGlvbjtcXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG59XFxuYm9keS5kZXNrdG9wIC5xLXRhYjpiZWZvcmUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgb3BhY2l0eTogMC4xO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtdGFiOmhvdmVyOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG59XFxuLnEtdGFibGUtY29udGFpbmVyIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucS10YWJsZS1jb250YWluZXIuZnVsbHNjcmVlbiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xcbn1cXG4ucS10YWJsZS10b3Age1xcbiAgbWluLWhlaWdodDogNjRweDtcXG4gIHBhZGRpbmc6IDhweCAyNHB4O1xcbn1cXG4ucS10YWJsZS10b3A6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICBvcGFjaXR5OiAwLjI7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG59XFxuLnEtdGFibGUtdG9wIC5xLXRhYmxlLWNvbnRyb2wge1xcbiAgbWluLWhlaWdodDogMzZweDtcXG4gIHBhZGRpbmc6IDhweCAwO1xcbiAgLW1zLWZsZXgtd3JhcDogd3JhcDtcXG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcbi5xLXRhYmxlLXRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMjBweDtcXG4gIGxldHRlci1zcGFjaW5nOiAwLjAwNWVtO1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG59XFxuLnEtdGFibGUtc2VwYXJhdG9yIHtcXG4gIG1pbi13aWR0aDogOHB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLXRhYmxlLW5vZGF0YSAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjAwJTtcXG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxufVxcbi5xLXRhYmxlLXByb2dyZXNzIHtcXG4gIGhlaWdodDogMCAhaW1wb3J0YW50O1xcbn1cXG4ucS10YWJsZS1wcm9ncmVzcyB0ZCB7XFxuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG59XFxuLnEtdGFibGUtcHJvZ3Jlc3MgLnEtcHJvZ3Jlc3Mge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaGVpZ2h0OiAycHg7XFxuICBib3R0b206IDA7XFxufVxcbi5xLXRhYmxlLW1pZGRsZSB7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxufVxcbi5xLXRhYmxlLWJvdHRvbSB7XFxuICBtaW4taGVpZ2h0OiA0OHB4O1xcbiAgcGFkZGluZzogNHB4IDE0cHggNHB4IDI0cHg7XFxufVxcbi5xLXRhYmxlLWJvdHRvbSxcXG4ucS10YWJsZS1ib3R0b20gLnEtaWYge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbn1cXG4ucS10YWJsZS1ib3R0b20gLnEtdGFibGUtY29udHJvbCB7XFxuICBtaW4taGVpZ2h0OiAyNHB4O1xcbn1cXG4ucS10YWJsZS1jb250cm9sIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4ucS10YWJsZS1zb3J0LWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtO1xcbiAgb3BhY2l0eTogMDtcXG4gIGZvbnQtc2l6ZTogMTIwJTtcXG59XFxuLnEtdGFibGUtc29ydC1pY29uLWxlZnQsXFxuLnEtdGFibGUtc29ydC1pY29uLWNlbnRlciB7XFxuICBtYXJnaW4tbGVmdDogNHB4O1xcbn1cXG4ucS10YWJsZS1zb3J0LWljb24tcmlnaHQge1xcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XFxufVxcbi5xLXRhYmxlIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcXG4gIGJvcmRlci1zcGFjaW5nOiAwO1xcbn1cXG4ucS10YWJsZSB0aGVhZCB0ciB7XFxuICBoZWlnaHQ6IDU2cHg7XFxufVxcbi5xLXRhYmxlIHRoIHtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBmb250LXNpemU6IDEycHg7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcbi5xLXRhYmxlIHRoLnNvcnRhYmxlIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtdGFibGUgdGguc29ydGFibGU6aG92ZXIgLnEtdGFibGUtc29ydC1pY29uIHtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtdGFibGUgdGguc29ydGVkIC5xLXRhYmxlLXNvcnQtaWNvbiB7XFxuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XFxufVxcbi5xLXRhYmxlIHRoLnNvcnQtZGVzYyAucS10YWJsZS1zb3J0LWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xcbn1cXG4ucS10YWJsZSB0Ym9keSB0ciB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHdpbGwtY2hhbmdlOiBiYWNrZ3JvdW5kO1xcbn1cXG4ucS10YWJsZSB0aCxcXG4ucS10YWJsZSB0ZCB7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgcGFkZGluZzogN3B4IDI0cHg7XFxufVxcbi5xLXRhYmxlIHRoZWFkLFxcbi5xLXRhYmxlIHRkLFxcbi5xLXRhYmxlIHRoIHtcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICBib3JkZXItd2lkdGg6IDA7XFxufVxcbi5xLXRhYmxlIHRib2R5IHRkIHtcXG4gIGhlaWdodDogNDhweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBmb250LXNpemU6IDEzcHg7XFxufVxcbi5xLXRhYmxlLWNvbC1hdXRvLXdpZHRoIHtcXG4gIHdpZHRoOiAxcHg7XFxufVxcbi5xLXRhYmxlLWJvdHRvbS1pdGVtIHtcXG4gIG1hcmdpbi1yaWdodDogMjRweDtcXG59XFxuLnEtdGFibGUtZ3JpZCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5xLXRhYmxlLWdyaWQgLnEtdGFibGUtYm90dG9tIHtcXG4gIGJvcmRlci10b3A6IDA7XFxufVxcbi5xLXRhYmxlLWdyaWQgLnEtdGFibGUge1xcbiAgaGVpZ2h0OiAycHg7XFxufVxcbi5xLXRhYmxlLWdyaWQgLnEtdGFibGUgdGhlYWQge1xcbiAgYm9yZGVyOiAwO1xcbn1cXG4ucS10YWJsZS1ob3Jpem9udGFsLXNlcGFyYXRvciB0aGVhZCxcXG4ucS10YWJsZS1ob3Jpem9udGFsLXNlcGFyYXRvciB0Ym9keSB0ZCB7XFxuICBib3JkZXItd2lkdGg6IDAgMCAxcHggMDtcXG59XFxuLnEtdGFibGUtdmVydGljYWwtc2VwYXJhdG9yIHRoZWFkIHtcXG4gIGJvcmRlci13aWR0aDogMCAwIDFweCAwO1xcbn1cXG4ucS10YWJsZS12ZXJ0aWNhbC1zZXBhcmF0b3IgdGQge1xcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMCAxcHg7XFxufVxcbi5xLXRhYmxlLXZlcnRpY2FsLXNlcGFyYXRvciB0ZDpmaXJzdC1jaGlsZCB7XFxuICBib3JkZXItbGVmdDogMDtcXG59XFxuLnEtdGFibGUtY2VsbC1zZXBhcmF0b3IgdGQge1xcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XFxufVxcbi5xLXRhYmxlLWNlbGwtc2VwYXJhdG9yIHRkOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbn1cXG4ucS10YWJsZS1jZWxsLXNlcGFyYXRvciB0ZDpsYXN0LWNoaWxkIHtcXG4gIGJvcmRlci1yaWdodDogMDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUtdG9wIHtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlLXRvcCxcXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZS1ib3R0b20ge1xcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XFxuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlLWJvdHRvbSB7XFxuICBtaW4taGVpZ2h0OiA0MnB4O1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZS1zb3J0LWljb24ge1xcbiAgZm9udC1zaXplOiAxMTAlO1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZSB0aCxcXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZSB0ZCB7XFxuICBwYWRkaW5nOiA0cHggOHB4O1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZSB0aGVhZCB0ciB7XFxuICBoZWlnaHQ6IDQwcHg7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlIHRib2R5IHRkIHtcXG4gIGhlaWdodDogMjhweDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUtYm90dG9tLWl0ZW0ge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLnEtdGFibGUtdG9wIHtcXG4gICAgbWluLWhlaWdodDogNDhweDtcXG4gIH1cXG4gIC5xLXRhYmxlLXRvcCxcXG4gIC5xLXRhYmxlLWJvdHRvbSB7XFxuICAgIHBhZGRpbmctbGVmdDogOHB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxuICB9XFxuICAucS10YWJsZS1ib3R0b20ge1xcbiAgICBtaW4taGVpZ2h0OiA0MnB4O1xcbiAgfVxcbiAgLnEtdGFibGUtc29ydC1pY29uIHtcXG4gICAgZm9udC1zaXplOiAxMTAlO1xcbiAgfVxcbiAgLnEtdGFibGUgdGgsXFxuICAucS10YWJsZSB0ZCB7XFxuICAgIHBhZGRpbmc6IDRweCA4cHg7XFxuICB9XFxuICAucS10YWJsZSB0aGVhZCB0ciB7XFxuICAgIGhlaWdodDogNDBweDtcXG4gIH1cXG4gIC5xLXRhYmxlIHRib2R5IHRkIHtcXG4gICAgaGVpZ2h0OiAyOHB4O1xcbiAgfVxcbiAgLnEtdGFibGUtYm90dG9tLWl0ZW0ge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcXG4gIH1cXG59XFxuLnEtdGFibGUtYm90dG9tIHtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuNTQpO1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLXRhYmxlIHtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuODcpO1xcbn1cXG4ucS10YWJsZSB0aGVhZCxcXG4ucS10YWJsZSB0cixcXG4ucS10YWJsZSB0aCxcXG4ucS10YWJsZSB0ZCB7XFxuICBib3JkZXItY29sb3I6IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLXRhYmxlIHRoIHtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuNTQpO1xcbn1cXG4ucS10YWJsZSB0aC5zb3J0YWJsZTpob3ZlcixcXG4ucS10YWJsZSB0aC5zb3J0ZWQge1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC44Nyk7XFxufVxcbi5xLXRhYmxlIHRib2R5IHRyLnNlbGVjdGVkIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wNik7XFxufVxcbi5xLXRhYmxlIHRib2R5IHRyOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wMyk7XFxufVxcbi5xLXRhYmxlLWRhcmsge1xcbiAgY29sb3I6ICNlZWU7XFxufVxcbi5xLXRhYmxlLWRhcmsgLnEtdGFibGUtYm90dG9tLFxcbi5xLXRhYmxlLWRhcmsgLnEtdGFibGUtdG9wIHtcXG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjQpO1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7XFxufVxcbi5xLXRhYmxlLWRhcmsgdGhlYWQsXFxuLnEtdGFibGUtZGFyayB0cixcXG4ucS10YWJsZS1kYXJrIHRoLFxcbi5xLXRhYmxlLWRhcmsgdGQge1xcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpO1xcbn1cXG4ucS10YWJsZS1kYXJrIHRoIHtcXG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjQpO1xcbn1cXG4ucS10YWJsZS1kYXJrIHRoLnNvcnRhYmxlOmhvdmVyLFxcbi5xLXRhYmxlLWRhcmsgdGguc29ydGVkIHtcXG4gIGNvbG9yOiAjZWVlO1xcbn1cXG4ucS10YWJsZS1kYXJrIHRib2R5IHRyLnNlbGVjdGVkIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcXG59XFxuLnEtdGFibGUtZGFyayB0Ym9keSB0cjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7XFxufVxcbi5xLXRpbWVsaW5lIHtcXG4gIHBhZGRpbmc6IDA7XFxuICB3aWR0aDogMTAwJTtcXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XFxufVxcbi5xLXRpbWVsaW5lIGg2IHtcXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbn1cXG4ucS10aW1lbGluZS10aXRsZSB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG59XFxuLnEtdGltZWxpbmUtc3VidGl0bGUge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbiAgb3BhY2l0eTogMC40O1xcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcXG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XFxuICBmb250LXdlaWdodDogNzAwO1xcbn1cXG4ucS10aW1lbGluZS1kb3Qge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxNXB4O1xcbn1cXG4ucS10aW1lbGluZS1kb3Q6YmVmb3JlLFxcbi5xLXRpbWVsaW5lLWRvdDphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbn1cXG4ucS10aW1lbGluZS1kb3Q6YmVmb3JlIHtcXG4gIGJvcmRlcjogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcXG4gIGhlaWdodDogMTVweDtcXG4gIHdpZHRoOiAxNXB4O1xcbiAgdG9wOiA0cHg7XFxuICBsZWZ0OiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3MgZWFzZS1pbi1vdXQsIGJvcmRlciAwLjNzIGVhc2UtaW4tb3V0O1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2UtaW4tb3V0LCBib3JkZXIgMC4zcyBlYXNlLWluLW91dDtcXG59XFxuLnEtdGltZWxpbmUtZG90OmFmdGVyIHtcXG4gIHdpZHRoOiAzcHg7XFxuICBvcGFjaXR5OiAwLjQ7XFxuICB0b3A6IDI0cHg7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiA2cHg7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1kb3Qge1xcbiAgd2lkdGg6IDMxcHg7XFxuICBsZWZ0OiAtOHB4O1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtZG90OmJlZm9yZSB7XFxuICBoZWlnaHQ6IDMxcHg7XFxuICB3aWR0aDogMzFweDtcXG59XFxuLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLWRvdDphZnRlciB7XFxuICB0b3A6IDQxcHg7XFxuICBsZWZ0OiAxNHB4O1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtc3VidGl0bGUge1xcbiAgcGFkZGluZy10b3A6IDhweDtcXG59XFxuLnEtdGltZWxpbmUtZG90IC5xLWljb24ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICBoZWlnaHQ6IDM4cHg7XFxuICBjb2xvcjogI2ZmZjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlLWluLW91dDtcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZS1pbi1vdXQ7XFxufVxcbi5xLXRpbWVsaW5lLWRhcmsge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLXRpbWVsaW5lLWRhcmsgLnEtdGltZWxpbmUtc3VidGl0bGUge1xcbiAgb3BhY2l0eTogMC43O1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeSB7XFxuICBwYWRkaW5nLWxlZnQ6IDQwcHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBsaW5lLWhlaWdodDogMjJweDtcXG59XFxuLnEtdGltZWxpbmUtZW50cnk6bGFzdC1jaGlsZCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMDtcXG59XFxuLnEtdGltZWxpbmUtZW50cnk6bGFzdC1jaGlsZCAucS10aW1lbGluZS1kb3Q6YWZ0ZXIge1xcbiAgY29udGVudDogbm9uZTtcXG59XFxuLnEtdGltZWxpbmUtaG92ZXIgLnEtdGltZWxpbmUtZW50cnk6aG92ZXIgLnEtdGltZWxpbmUtZG90OmJlZm9yZSB7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlcjogM3B4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtdGltZWxpbmUtaG92ZXIgLnEtdGltZWxpbmUtZW50cnkucS10aW1lbGluZS1lbnRyeS13aXRoLWljb246aG92ZXIgLnEtdGltZWxpbmUtZG90IC5xLWljb24ge1xcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtdGltZWxpbmUtY29udGVudCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMjRweDtcXG59XFxuLnEtdGltZWxpbmUtaGVhZGluZyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5xLXRpbWVsaW5lLWhlYWRpbmc6Zmlyc3QtY2hpbGQgLnEtdGltZWxpbmUtaGVhZGluZy10aXRsZSB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG59XFxuLnEtdGltZWxpbmUtaGVhZGluZzpsYXN0LWNoaWxkIC5xLXRpbWVsaW5lLWhlYWRpbmctdGl0bGUge1xcbiAgcGFkZGluZy1ib3R0b206IDA7XFxufVxcbi5xLXRpbWVsaW5lLWhlYWRpbmctdGl0bGUge1xcbiAgcGFkZGluZzogMzJweCAwO1xcbiAgbWFyZ2luOiAwO1xcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1oZWFkaW5nIHtcXG4gICAgZGlzcGxheTogdGFibGUtcm93O1xcbiAgICBmb250LXNpemU6IDIwMCU7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWhlYWRpbmcgPiBkaXYge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1oZWFkaW5nLXRpdGxlIHtcXG4gICAgbWFyZ2luLWxlZnQ6IC01MHB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZSB7XFxuICAgIGRpc3BsYXk6IHRhYmxlO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeSB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcXG4gICAgcGFkZGluZzogMDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtc3VidGl0bGUsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWRvdCxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLXN1YnRpdGxlIHtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XFxuICAgIHdpZHRoOiAzNSU7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWRvdCB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIHBhZGRpbmctbGVmdDogMzBweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1zdWJ0aXRsZSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1oZWFkaW5nLXRpdGxlIHtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICBtYXJnaW4tbGVmdDogMDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnksXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLXN1YnRpdGxlLFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1kb3QsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1kb3Qge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGxlZnQ6IDUwJTtcXG4gICAgbWFyZ2luLWxlZnQ6IC03LjE1cHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1kb3Qge1xcbiAgICBsZWZ0OiA1MCU7XFxuICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtc3VidGl0bGUsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS1sZWZ0IC5xLXRpbWVsaW5lLWNvbnRlbnQsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LXJpZ2h0IC5xLXRpbWVsaW5lLXN1YnRpdGxlIHtcXG4gICAgZmxvYXQ6IGxlZnQ7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS1sZWZ0IC5xLXRpbWVsaW5lLXN1YnRpdGxlLFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS1yaWdodCAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgZmxvYXQ6IHJpZ2h0O1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgcGFkZGluZy10b3A6IDhweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnkge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMjRweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIH1cXG59XFxuLnEtdG9nZ2xlLWJhc2Uge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMnB4O1xcbiAgYm9yZGVyLXJhZGl1czogMzBweDtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtdG9nZ2xlLWhhbmRsZSB7XFxuICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgNDUwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogYWxsIDQ1MG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAyMXB4O1xcbiAgaGVpZ2h0OiAyMXB4O1xcbiAgbGluZS1oZWlnaHQ6IDIxcHg7XFxufVxcbi5xLXRvZ2dsZSAucS1vcHRpb24taW5uZXIge1xcbiAgaGVpZ2h0OiAyMXB4O1xcbiAgd2lkdGg6IDQwcHg7XFxuICBtaW4td2lkdGg6IDQwcHg7XFxuICBwYWRkaW5nOiA1cHggMDtcXG59XFxuLnEtdG9nZ2xlIC5xLW9wdGlvbi1pbm5lci5hY3RpdmUgLnEtdG9nZ2xlLWhhbmRsZSB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBsZWZ0OiAxOXB4O1xcbn1cXG4ucS10b2dnbGUgLnEtb3B0aW9uLWlubmVyLmFjdGl2ZSAucS10b2dnbGUtaWNvbiB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtdG9vbGJhciB7XFxuICBwYWRkaW5nOiA0cHggMTJweDtcXG4gIG1pbi1oZWlnaHQ6IDUwcHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5xLXRvb2xiYXItaW52ZXJ0ZWQge1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG59XFxuLnEtdG9vbGJhci10aXRsZSB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgMCU7XFxuICAgICAgICAgIGZsZXg6IDEgMSAwJTtcXG4gIG1pbi13aWR0aDogMXB4O1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgZm9udC1zaXplOiAxOHB4O1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIHBhZGRpbmc6IDAgMTJweDtcXG59XFxuLnEtdG9vbGJhci1zdWJ0aXRsZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcbi5xLXRvb2xiYXItdGl0bGUsXFxuLnEtdG9vbGJhci1zdWJ0aXRsZSB7XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS10b29sdGlwIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIGNvbG9yOiAjZmFmYWZhO1xcbiAgYmFja2dyb3VuZDogIzc0NzQ3NDtcXG4gIHotaW5kZXg6IDkwMDA7XFxuICBwYWRkaW5nOiAxMHB4O1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS10cmVlLW5vZGUge1xcbiAgbWFyZ2luOiAwO1xcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgcGFkZGluZzogMCAwIDNweCAyMnB4O1xcbn1cXG4ucS10cmVlLW5vZGU6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC0zcHg7XFxuICBib3R0b206IDA7XFxuICB3aWR0aDogMXB4O1xcbiAgcmlnaHQ6IGF1dG87XFxuICBsZWZ0OiAtMTNweDtcXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgY3VycmVudENvbG9yO1xcbn1cXG4ucS10cmVlLW5vZGU6bGFzdC1jaGlsZDphZnRlciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS10cmVlLW5vZGUtaGVhZGVyOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogLTNweDtcXG4gIGJvdHRvbTogNTAlO1xcbiAgd2lkdGg6IDM1cHg7XFxuICBsZWZ0OiAtMzVweDtcXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgY3VycmVudENvbG9yO1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtdHJlZS1jaGlsZHJlbiB7XFxuICBwYWRkaW5nLWxlZnQ6IDI1cHg7XFxufVxcbi5xLXRyZWUtY2hpbGRyZW4uZGlzYWJsZWQge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5xLXRyZWUtbm9kZS1ib2R5IHtcXG4gIHBhZGRpbmc6IDVweCAwIDhweCA1cHg7XFxufVxcbi5xLXRyZWUtbm9kZS1wYXJlbnQge1xcbiAgcGFkZGluZy1sZWZ0OiAycHg7XFxufVxcbi5xLXRyZWUtbm9kZS1wYXJlbnQgPiAucS10cmVlLW5vZGUtaGVhZGVyOmJlZm9yZSB7XFxuICB3aWR0aDogMTVweDtcXG4gIGxlZnQ6IC0xNXB4O1xcbn1cXG4ucS10cmVlLW5vZGUtcGFyZW50ID4gLnEtdHJlZS1ub2RlLWNvbGxhcHNpYmxlID4gLnEtdHJlZS1ub2RlLWJvZHkge1xcbiAgcGFkZGluZzogNXB4IDAgOHB4IDI3cHg7XFxufVxcbi5xLXRyZWUtbm9kZS1wYXJlbnQgPiAucS10cmVlLW5vZGUtY29sbGFwc2libGUgPiAucS10cmVlLW5vZGUtYm9keTphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHdpZHRoOiAxcHg7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICByaWdodDogYXV0bztcXG4gIGxlZnQ6IDEycHg7XFxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG4gIGJvdHRvbTogNTBweDtcXG59XFxuLnEtdHJlZS1ub2RlLWxpbmsge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS10cmVlLW5vZGUtc2VsZWN0ZWQge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjE1KTtcXG59XFxuLnEtdHJlZS1kYXJrIC5xLXRyZWUtbm9kZS1zZWxlY3RlZCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuNCk7XFxufVxcbmJvZHkuZGVza3RvcCAucS10cmVlLW5vZGUtbGluazpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XFxufVxcbmJvZHkuZGVza3RvcCAucS10cmVlLWRhcmsgLnEtdHJlZS1ub2RlLWxpbms6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjMpO1xcbn1cXG4ucS10cmVlLW5vZGUtaGVhZGVyIHtcXG4gIHBhZGRpbmc6IDRweDtcXG4gIG1hcmdpbi10b3A6IDNweDtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG59XFxuLnEtdHJlZS1ub2RlLWhlYWRlci5kaXNhYmxlZCB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtdHJlZS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMS41ZW07XFxufVxcbi5xLXRyZWUtaW1nIHtcXG4gIGhlaWdodDogM2VtO1xcbn1cXG4ucS10cmVlLWltZy5hdmF0YXIge1xcbiAgd2lkdGg6IDJlbTtcXG4gIGhlaWdodDogMmVtO1xcbn1cXG4ucS10cmVlLWFycm93IHtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIHdpZHRoOiAxcmVtO1xcbiAgaGVpZ2h0OiAxcmVtO1xcbn1cXG4ucS10cmVlLWFycm93LXJvdGF0ZSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xcbn1cXG5bZGlyPXJ0bF0gLnEtdHJlZS1hcnJvdyB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG5bZGlyPXJ0bF0gLnEtdHJlZS1hcnJvdy1yb3RhdGUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLXRyZWUgPiAucS10cmVlLW5vZGUge1xcbiAgcGFkZGluZzogMDtcXG59XFxuLnEtdHJlZSA+IC5xLXRyZWUtbm9kZTphZnRlcixcXG4ucS10cmVlID4gLnEtdHJlZS1ub2RlID4gLnEtdHJlZS1ub2RlLWhlYWRlcjpiZWZvcmUge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtdHJlZSA+IC5xLXRyZWUtbm9kZS1jaGlsZCA+IC5xLXRyZWUtbm9kZS1oZWFkZXIge1xcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xcbn1cXG4ucS11cGxvYWRlci1leHBhbmRlZCAucS1pZiB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxufVxcbi5xLXVwbG9hZGVyLWlucHV0IHtcXG4gIG9wYWNpdHk6IDA7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMTAwJTtcXG4gIGZvbnQtc2l6ZTogMDtcXG59XFxuLnEtdXBsb2FkZXItcGljay1idXR0b25bZGlzYWJsZWRdIC5xLXVwbG9hZGVyLWlucHV0IHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXVwbG9hZGVyLWZpbGVzIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBtYXgtaGVpZ2h0OiA1MDBweDtcXG59XFxuLnEtdXBsb2FkZXItZmlsZXMtbm8tYm9yZGVyIC5xLXVwbG9hZGVyLWZpbGVzIHtcXG4gIGJvcmRlci10b3A6IDAgIWltcG9ydGFudDtcXG59XFxuLnEtdXBsb2FkZXItZmlsZTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTBlMGUwO1xcbn1cXG4ucS11cGxvYWRlci1wcm9ncmVzcy1iZyxcXG4ucS11cGxvYWRlci1wcm9ncmVzcy10ZXh0IHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS11cGxvYWRlci1wcm9ncmVzcy1iZyB7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBvcGFjaXR5OiAwLjI7XFxufVxcbi5xLXVwbG9hZGVyLXByb2dyZXNzLXRleHQge1xcbiAgZm9udC1zaXplOiA0MHB4O1xcbiAgb3BhY2l0eTogMC4xO1xcbiAgcmlnaHQ6IDQ0cHg7XFxuICBib3R0b206IDA7XFxufVxcbi5xLXVwbG9hZGVyLWRuZCB7XFxuICBvdXRsaW5lOiAycHggZGFzaGVkIGN1cnJlbnRDb2xvcjtcXG4gIG91dGxpbmUtb2Zmc2V0OiAtNnB4O1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjYpO1xcbn1cXG4ucS11cGxvYWRlci1kbmQuaW52ZXJ0ZWQge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjMpO1xcbn1cXG4ucS11cGxvYWRlci1kYXJrIC5xLXVwbG9hZGVyLWZpbGVzIHtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2E3YTdhNztcXG59XFxuLnEtdXBsb2FkZXItZGFyayAucS11cGxvYWRlci1iZyB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtdXBsb2FkZXItZGFyayAucS11cGxvYWRlci1wcm9ncmVzcy10ZXh0IHtcXG4gIG9wYWNpdHk6IDAuMjtcXG59XFxuLnEtdXBsb2FkZXItZGFyayAucS11cGxvYWRlci1maWxlOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0MjQyNDI7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tcS1jb2xvci1kYXJrKTtcXG59XFxuaW1nLnJlc3BvbnNpdmUge1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbn1cXG5pbWcuYXZhdGFyIHtcXG4gIHdpZHRoOiA1MHB4O1xcbiAgaGVpZ2h0OiA1MHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4ucS12aWRlbyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG59XFxuLnEtdmlkZW8gaWZyYW1lLFxcbi5xLXZpZGVvIG9iamVjdCxcXG4ucS12aWRlbyBlbWJlZCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuOnJvb3Qge1xcbiAgLS1xLWNvbG9yLXByaW1hcnk6ICMwMjdiZTM7XFxuICAtLXEtY29sb3Itc2Vjb25kYXJ5OiAjMjZhNjlhO1xcbiAgLS1xLWNvbG9yLXRlcnRpYXJ5OiAjNTU1O1xcbiAgLS1xLWNvbG9yLXBvc2l0aXZlOiAjMjFiYTQ1O1xcbiAgLS1xLWNvbG9yLW5lZ2F0aXZlOiAjZGIyODI4O1xcbiAgLS1xLWNvbG9yLW5lZ2F0aXZlLWw6ICNlYzhiOGI7XFxuICAtLXEtY29sb3ItaW5mbzogIzMxY2NlYztcXG4gIC0tcS1jb2xvci13YXJuaW5nOiAjZjJjMDM3O1xcbiAgLS1xLWNvbG9yLXdhcm5pbmctbDogI2Y4ZGQ5MztcXG4gIC0tcS1jb2xvci1saWdodDogI2JkYmRiZDtcXG4gIC0tcS1jb2xvci1saWdodC1kOiAjYWFhO1xcbiAgLS1xLWNvbG9yLWZhZGVkOiAjNzc3O1xcbiAgLS1xLWNvbG9yLWRhcms6ICM0MjQyNDI7XFxufVxcbi50ZXh0LXByaW1hcnkge1xcbiAgY29sb3I6ICMwMjdiZTMgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXByaW1hcnkpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wcmltYXJ5IHtcXG4gIGJhY2tncm91bmQ6ICMwMjdiZTMgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItcHJpbWFyeSkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtc2Vjb25kYXJ5IHtcXG4gIGNvbG9yOiAjMjZhNjlhICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1zZWNvbmRhcnkge1xcbiAgYmFja2dyb3VuZDogIzI2YTY5YSAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlcnRpYXJ5IHtcXG4gIGNvbG9yOiAjNTU1ICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci10ZXJ0aWFyeSkgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlcnRpYXJ5IHtcXG4gIGJhY2tncm91bmQ6ICM1NTUgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItdGVydGlhcnkpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWZhZGVkIHtcXG4gIGNvbG9yOiAjNzc3ICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1mYWRlZCkgIWltcG9ydGFudDtcXG59XFxuLmJnLWZhZGVkIHtcXG4gIGJhY2tncm91bmQ6ICM3NzcgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItZmFkZWQpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBvc2l0aXZlIHtcXG4gIGNvbG9yOiAjMjFiYTQ1ICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1wb3NpdGl2ZSkgIWltcG9ydGFudDtcXG59XFxuLmJnLXBvc2l0aXZlIHtcXG4gIGJhY2tncm91bmQ6ICMyMWJhNDUgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItcG9zaXRpdmUpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW5lZ2F0aXZlIHtcXG4gIGNvbG9yOiAjZGIyODI4ICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSkgIWltcG9ydGFudDtcXG59XFxuLmJnLW5lZ2F0aXZlIHtcXG4gIGJhY2tncm91bmQ6ICNkYjI4MjggIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZm8ge1xcbiAgY29sb3I6ICMzMWNjZWMgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWluZm8pICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmZvIHtcXG4gIGJhY2tncm91bmQ6ICMzMWNjZWMgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItaW5mbykgIWltcG9ydGFudDtcXG59XFxuLnRleHQtd2FybmluZyB7XFxuICBjb2xvcjogI2YyYzAzNyAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3Itd2FybmluZykgIWltcG9ydGFudDtcXG59XFxuLmJnLXdhcm5pbmcge1xcbiAgYmFja2dyb3VuZDogI2YyYzAzNyAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci13YXJuaW5nKSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC13aGl0ZSB7XFxuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctd2hpdGUge1xcbiAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibGFjayB7XFxuICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmxhY2sge1xcbiAgYmFja2dyb3VuZDogIzAwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodCB7XFxuICBjb2xvcjogI2JkYmRiZCAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbGlnaHQpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodCB7XFxuICBiYWNrZ3JvdW5kOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLWxpZ2h0KSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kYXJrIHtcXG4gIGNvbG9yOiAjNDI0MjQyICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1kYXJrKSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGFyayB7XFxuICBiYWNrZ3JvdW5kOiAjNDI0MjQyICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLWRhcmspICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRyYW5zcGFyZW50IHtcXG4gIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbn1cXG4uYmctdHJhbnNwYXJlbnQge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkIHtcXG4gIGNvbG9yOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0xIHtcXG4gIGNvbG9yOiAjZmZlYmVlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0yIHtcXG4gIGNvbG9yOiAjZmZjZGQyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0zIHtcXG4gIGNvbG9yOiAjZWY5YTlhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC00IHtcXG4gIGNvbG9yOiAjZTU3MzczICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC01IHtcXG4gIGNvbG9yOiAjZWY1MzUwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC02IHtcXG4gIGNvbG9yOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC03IHtcXG4gIGNvbG9yOiAjZTUzOTM1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC04IHtcXG4gIGNvbG9yOiAjZDMyZjJmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC05IHtcXG4gIGNvbG9yOiAjYzYyODI4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0xMCB7XFxuICBjb2xvcjogI2I3MWMxYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMTEge1xcbiAgY29sb3I6ICNmZjhhODAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTEyIHtcXG4gIGNvbG9yOiAjZmY1MjUyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0xMyB7XFxuICBjb2xvcjogI2ZmMTc0NCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMTQge1xcbiAgY29sb3I6ICNkNTAwMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluayB7XFxuICBjb2xvcjogI2U5MWU2MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTEge1xcbiAgY29sb3I6ICNmY2U0ZWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0yIHtcXG4gIGNvbG9yOiAjZjhiYmQwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMyB7XFxuICBjb2xvcjogI2Y0OGZiMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTQge1xcbiAgY29sb3I6ICNmMDYyOTIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay01IHtcXG4gIGNvbG9yOiAjZWM0MDdhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstNiB7XFxuICBjb2xvcjogI2U5MWU2MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTcge1xcbiAgY29sb3I6ICNkODFiNjAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay04IHtcXG4gIGNvbG9yOiAjYzIxODViICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstOSB7XFxuICBjb2xvcjogI2FkMTQ1NyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTEwIHtcXG4gIGNvbG9yOiAjODgwZTRmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMTEge1xcbiAgY29sb3I6ICNmZjgwYWIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0xMiB7XFxuICBjb2xvcjogI2ZmNDA4MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTEzIHtcXG4gIGNvbG9yOiAjZjUwMDU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMTQge1xcbiAgY29sb3I6ICNjNTExNjIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlIHtcXG4gIGNvbG9yOiAjOWMyN2IwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0xIHtcXG4gIGNvbG9yOiAjZjNlNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0yIHtcXG4gIGNvbG9yOiAjZTFiZWU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0zIHtcXG4gIGNvbG9yOiAjY2U5M2Q4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS00IHtcXG4gIGNvbG9yOiAjYmE2OGM4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS01IHtcXG4gIGNvbG9yOiAjYWI0N2JjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS02IHtcXG4gIGNvbG9yOiAjOWMyN2IwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS03IHtcXG4gIGNvbG9yOiAjOGUyNGFhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS04IHtcXG4gIGNvbG9yOiAjN2IxZmEyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS05IHtcXG4gIGNvbG9yOiAjNmExYjlhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0xMCB7XFxuICBjb2xvcjogIzRhMTQ4YyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMTEge1xcbiAgY29sb3I6ICNlYTgwZmMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTEyIHtcXG4gIGNvbG9yOiAjZTA0MGZiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0xMyB7XFxuICBjb2xvcjogI2Q1MDBmOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMTQge1xcbiAgY29sb3I6ICNhMGYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUge1xcbiAgY29sb3I6ICM2NzNhYjcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMSB7XFxuICBjb2xvcjogI2VkZTdmNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0yIHtcXG4gIGNvbG9yOiAjZDFjNGU5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTMge1xcbiAgY29sb3I6ICNiMzlkZGIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtNCB7XFxuICBjb2xvcjogIzk1NzVjZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS01IHtcXG4gIGNvbG9yOiAjN2U1N2MyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTYge1xcbiAgY29sb3I6ICM2NzNhYjcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtNyB7XFxuICBjb2xvcjogIzVlMzViMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS04IHtcXG4gIGNvbG9yOiAjNTEyZGE4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTkge1xcbiAgY29sb3I6ICM0NTI3YTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMTAge1xcbiAgY29sb3I6ICMzMTFiOTIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMTEge1xcbiAgY29sb3I6ICNiMzg4ZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMTIge1xcbiAgY29sb3I6ICM3YzRkZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMTMge1xcbiAgY29sb3I6ICM2NTFmZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMTQge1xcbiAgY29sb3I6ICM2MjAwZWEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvIHtcXG4gIGNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0xIHtcXG4gIGNvbG9yOiAjZThlYWY2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0yIHtcXG4gIGNvbG9yOiAjYzVjYWU5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0zIHtcXG4gIGNvbG9yOiAjOWZhOGRhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby00IHtcXG4gIGNvbG9yOiAjNzk4NmNiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby01IHtcXG4gIGNvbG9yOiAjNWM2YmMwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby02IHtcXG4gIGNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby03IHtcXG4gIGNvbG9yOiAjMzk0OWFiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby04IHtcXG4gIGNvbG9yOiAjMzAzZjlmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby05IHtcXG4gIGNvbG9yOiAjMjgzNTkzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0xMCB7XFxuICBjb2xvcjogIzFhMjM3ZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMTEge1xcbiAgY29sb3I6ICM4YzllZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTEyIHtcXG4gIGNvbG9yOiAjNTM2ZGZlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0xMyB7XFxuICBjb2xvcjogIzNkNWFmZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMTQge1xcbiAgY29sb3I6ICMzMDRmZmUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZSB7XFxuICBjb2xvcjogIzIxOTZmMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTEge1xcbiAgY29sb3I6ICNlM2YyZmQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0yIHtcXG4gIGNvbG9yOiAjYmJkZWZiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMyB7XFxuICBjb2xvcjogIzkwY2FmOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTQge1xcbiAgY29sb3I6ICM2NGI1ZjYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS01IHtcXG4gIGNvbG9yOiAjNDJhNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtNiB7XFxuICBjb2xvcjogIzIxOTZmMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTcge1xcbiAgY29sb3I6ICMxZTg4ZTUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS04IHtcXG4gIGNvbG9yOiAjMTk3NmQyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtOSB7XFxuICBjb2xvcjogIzE1NjVjMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTEwIHtcXG4gIGNvbG9yOiAjMGQ0N2ExICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMTEge1xcbiAgY29sb3I6ICM4MmIxZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0xMiB7XFxuICBjb2xvcjogIzQ0OGFmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTEzIHtcXG4gIGNvbG9yOiAjMjk3OWZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMTQge1xcbiAgY29sb3I6ICMyOTYyZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZSB7XFxuICBjb2xvcjogIzAzYTlmNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTEge1xcbiAgY29sb3I6ICNlMWY1ZmUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0yIHtcXG4gIGNvbG9yOiAjYjNlNWZjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMyB7XFxuICBjb2xvcjogIzgxZDRmYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTQge1xcbiAgY29sb3I6ICM0ZmMzZjcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS01IHtcXG4gIGNvbG9yOiAjMjliNmY2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtNiB7XFxuICBjb2xvcjogIzAzYTlmNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTcge1xcbiAgY29sb3I6ICMwMzliZTUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS04IHtcXG4gIGNvbG9yOiAjMDI4OGQxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtOSB7XFxuICBjb2xvcjogIzAyNzdiZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTEwIHtcXG4gIGNvbG9yOiAjMDE1NzliICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMTEge1xcbiAgY29sb3I6ICM4MGQ4ZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0xMiB7XFxuICBjb2xvcjogIzQwYzRmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTEzIHtcXG4gIGNvbG9yOiAjMDBiMGZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMTQge1xcbiAgY29sb3I6ICMwMDkxZWEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbiB7XFxuICBjb2xvcjogIzAwYmNkNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTEge1xcbiAgY29sb3I6ICNlMGY3ZmEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0yIHtcXG4gIGNvbG9yOiAjYjJlYmYyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMyB7XFxuICBjb2xvcjogIzgwZGVlYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTQge1xcbiAgY29sb3I6ICM0ZGQwZTEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi01IHtcXG4gIGNvbG9yOiAjMjZjNmRhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tNiB7XFxuICBjb2xvcjogIzAwYmNkNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTcge1xcbiAgY29sb3I6ICMwMGFjYzEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi04IHtcXG4gIGNvbG9yOiAjMDA5N2E3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tOSB7XFxuICBjb2xvcjogIzAwODM4ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTEwIHtcXG4gIGNvbG9yOiAjMDA2MDY0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMTEge1xcbiAgY29sb3I6ICM4NGZmZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0xMiB7XFxuICBjb2xvcjogIzE4ZmZmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTEzIHtcXG4gIGNvbG9yOiAjMDBlNWZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMTQge1xcbiAgY29sb3I6ICMwMGI4ZDQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbCB7XFxuICBjb2xvcjogIzAwOTY4OCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTEge1xcbiAgY29sb3I6ICNlMGYyZjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0yIHtcXG4gIGNvbG9yOiAjYjJkZmRiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMyB7XFxuICBjb2xvcjogIzgwY2JjNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTQge1xcbiAgY29sb3I6ICM0ZGI2YWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC01IHtcXG4gIGNvbG9yOiAjMjZhNjlhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtNiB7XFxuICBjb2xvcjogIzAwOTY4OCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTcge1xcbiAgY29sb3I6ICMwMDg5N2IgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC04IHtcXG4gIGNvbG9yOiAjMDA3OTZiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtOSB7XFxuICBjb2xvcjogIzAwNjk1YyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTEwIHtcXG4gIGNvbG9yOiAjMDA0ZDQwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMTEge1xcbiAgY29sb3I6ICNhN2ZmZWIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0xMiB7XFxuICBjb2xvcjogIzY0ZmZkYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTEzIHtcXG4gIGNvbG9yOiAjMWRlOWI2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMTQge1xcbiAgY29sb3I6ICMwMGJmYTUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4ge1xcbiAgY29sb3I6ICM0Y2FmNTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMSB7XFxuICBjb2xvcjogI2U4ZjVlOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0yIHtcXG4gIGNvbG9yOiAjYzhlNmM5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTMge1xcbiAgY29sb3I6ICNhNWQ2YTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tNCB7XFxuICBjb2xvcjogIzgxYzc4NCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi01IHtcXG4gIGNvbG9yOiAjNjZiYjZhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTYge1xcbiAgY29sb3I6ICM0Y2FmNTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tNyB7XFxuICBjb2xvcjogIzQzYTA0NyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi04IHtcXG4gIGNvbG9yOiAjMzg4ZTNjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTkge1xcbiAgY29sb3I6ICMyZTdkMzIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMTAge1xcbiAgY29sb3I6ICMxYjVlMjAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMTEge1xcbiAgY29sb3I6ICNiOWY2Y2EgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMTIge1xcbiAgY29sb3I6ICM2OWYwYWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMTMge1xcbiAgY29sb3I6ICMwMGU2NzYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMTQge1xcbiAgY29sb3I6ICMwMGM4NTMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4ge1xcbiAgY29sb3I6ICM4YmMzNGEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMSB7XFxuICBjb2xvcjogI2YxZjhlOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0yIHtcXG4gIGNvbG9yOiAjZGNlZGM4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTMge1xcbiAgY29sb3I6ICNjNWUxYTUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tNCB7XFxuICBjb2xvcjogI2FlZDU4MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi01IHtcXG4gIGNvbG9yOiAjOWNjYzY1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTYge1xcbiAgY29sb3I6ICM4YmMzNGEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tNyB7XFxuICBjb2xvcjogIzdjYjM0MiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi04IHtcXG4gIGNvbG9yOiAjNjg5ZjM4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTkge1xcbiAgY29sb3I6ICM1NThiMmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMTAge1xcbiAgY29sb3I6ICMzMzY5MWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMTEge1xcbiAgY29sb3I6ICNjY2ZmOTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMTIge1xcbiAgY29sb3I6ICNiMmZmNTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMTMge1xcbiAgY29sb3I6ICM3NmZmMDMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMTQge1xcbiAgY29sb3I6ICM2NGRkMTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZSB7XFxuICBjb2xvcjogI2NkZGMzOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTEge1xcbiAgY29sb3I6ICNmOWZiZTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0yIHtcXG4gIGNvbG9yOiAjZjBmNGMzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMyB7XFxuICBjb2xvcjogI2U2ZWU5YyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTQge1xcbiAgY29sb3I6ICNkY2U3NzUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS01IHtcXG4gIGNvbG9yOiAjZDRlMTU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtNiB7XFxuICBjb2xvcjogI2NkZGMzOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTcge1xcbiAgY29sb3I6ICNjMGNhMzMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS04IHtcXG4gIGNvbG9yOiAjYWZiNDJiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtOSB7XFxuICBjb2xvcjogIzllOWQyNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTEwIHtcXG4gIGNvbG9yOiAjODI3NzE3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMTEge1xcbiAgY29sb3I6ICNmNGZmODEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0xMiB7XFxuICBjb2xvcjogI2VlZmY0MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTEzIHtcXG4gIGNvbG9yOiAjYzZmZjAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMTQge1xcbiAgY29sb3I6ICNhZWVhMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93IHtcXG4gIGNvbG9yOiAjZmZlYjNiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0xIHtcXG4gIGNvbG9yOiAjZmZmZGU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0yIHtcXG4gIGNvbG9yOiAjZmZmOWM0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0zIHtcXG4gIGNvbG9yOiAjZmZmNTlkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy00IHtcXG4gIGNvbG9yOiAjZmZmMTc2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy01IHtcXG4gIGNvbG9yOiAjZmZlZTU4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy02IHtcXG4gIGNvbG9yOiAjZmZlYjNiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy03IHtcXG4gIGNvbG9yOiAjZmRkODM1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy04IHtcXG4gIGNvbG9yOiAjZmJjMDJkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy05IHtcXG4gIGNvbG9yOiAjZjlhODI1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0xMCB7XFxuICBjb2xvcjogI2Y1N2YxNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMTEge1xcbiAgY29sb3I6ICNmZmZmOGQgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTEyIHtcXG4gIGNvbG9yOiAjZmYwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0xMyB7XFxuICBjb2xvcjogI2ZmZWEwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMTQge1xcbiAgY29sb3I6ICNmZmQ2MDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXIge1xcbiAgY29sb3I6ICNmZmMxMDcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMSB7XFxuICBjb2xvcjogI2ZmZjhlMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0yIHtcXG4gIGNvbG9yOiAjZmZlY2IzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTMge1xcbiAgY29sb3I6ICNmZmUwODIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItNCB7XFxuICBjb2xvcjogI2ZmZDU0ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci01IHtcXG4gIGNvbG9yOiAjZmZjYTI4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTYge1xcbiAgY29sb3I6ICNmZmMxMDcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItNyB7XFxuICBjb2xvcjogI2ZmYjMwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci04IHtcXG4gIGNvbG9yOiAjZmZhMDAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTkge1xcbiAgY29sb3I6ICNmZjhmMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMTAge1xcbiAgY29sb3I6ICNmZjZmMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMTEge1xcbiAgY29sb3I6ICNmZmU1N2YgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMTIge1xcbiAgY29sb3I6ICNmZmQ3NDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMTMge1xcbiAgY29sb3I6ICNmZmM0MDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMTQge1xcbiAgY29sb3I6ICNmZmFiMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlIHtcXG4gIGNvbG9yOiAjZmY5ODAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0xIHtcXG4gIGNvbG9yOiAjZmZmM2UwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0yIHtcXG4gIGNvbG9yOiAjZmZlMGIyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0zIHtcXG4gIGNvbG9yOiAjZmZjYzgwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS00IHtcXG4gIGNvbG9yOiAjZmZiNzRkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS01IHtcXG4gIGNvbG9yOiAjZmZhNzI2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS02IHtcXG4gIGNvbG9yOiAjZmY5ODAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS03IHtcXG4gIGNvbG9yOiAjZmI4YzAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS04IHtcXG4gIGNvbG9yOiAjZjU3YzAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS05IHtcXG4gIGNvbG9yOiAjZWY2YzAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0xMCB7XFxuICBjb2xvcjogI2U2NTEwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMTEge1xcbiAgY29sb3I6ICNmZmQxODAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTEyIHtcXG4gIGNvbG9yOiAjZmZhYjQwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0xMyB7XFxuICBjb2xvcjogI2ZmOTEwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMTQge1xcbiAgY29sb3I6ICNmZjZkMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2Uge1xcbiAgY29sb3I6ICNmZjU3MjIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMSB7XFxuICBjb2xvcjogI2ZiZTllNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0yIHtcXG4gIGNvbG9yOiAjZmZjY2JjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTMge1xcbiAgY29sb3I6ICNmZmFiOTEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtNCB7XFxuICBjb2xvcjogI2ZmOGE2NSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS01IHtcXG4gIGNvbG9yOiAjZmY3MDQzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTYge1xcbiAgY29sb3I6ICNmZjU3MjIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtNyB7XFxuICBjb2xvcjogI2Y0NTExZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS04IHtcXG4gIGNvbG9yOiAjZTY0YTE5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTkge1xcbiAgY29sb3I6ICNkODQzMTUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMTAge1xcbiAgY29sb3I6ICNiZjM2MGMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMTEge1xcbiAgY29sb3I6ICNmZjllODAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMTIge1xcbiAgY29sb3I6ICNmZjZlNDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMTMge1xcbiAgY29sb3I6ICNmZjNkMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMTQge1xcbiAgY29sb3I6ICNkZDJjMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24ge1xcbiAgY29sb3I6ICM3OTU1NDggIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMSB7XFxuICBjb2xvcjogI2VmZWJlOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0yIHtcXG4gIGNvbG9yOiAjZDdjY2M4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTMge1xcbiAgY29sb3I6ICNiY2FhYTQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tNCB7XFxuICBjb2xvcjogI2ExODg3ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi01IHtcXG4gIGNvbG9yOiAjOGQ2ZTYzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTYge1xcbiAgY29sb3I6ICM3OTU1NDggIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tNyB7XFxuICBjb2xvcjogIzZkNGM0MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi04IHtcXG4gIGNvbG9yOiAjNWQ0MDM3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTkge1xcbiAgY29sb3I6ICM0ZTM0MmUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMTAge1xcbiAgY29sb3I6ICMzZTI3MjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMTEge1xcbiAgY29sb3I6ICNkN2NjYzggIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMTIge1xcbiAgY29sb3I6ICNiY2FhYTQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMTMge1xcbiAgY29sb3I6ICM4ZDZlNjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMTQge1xcbiAgY29sb3I6ICM1ZDQwMzcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleSB7XFxuICBjb2xvcjogIzllOWU5ZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTEge1xcbiAgY29sb3I6ICNmYWZhZmEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0yIHtcXG4gIGNvbG9yOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMyB7XFxuICBjb2xvcjogI2VlZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTQge1xcbiAgY29sb3I6ICNlMGUwZTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS01IHtcXG4gIGNvbG9yOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktNiB7XFxuICBjb2xvcjogIzllOWU5ZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTcge1xcbiAgY29sb3I6ICM3NTc1NzUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS04IHtcXG4gIGNvbG9yOiAjNjE2MTYxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktOSB7XFxuICBjb2xvcjogIzQyNDI0MiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTEwIHtcXG4gIGNvbG9yOiAjMjEyMTIxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMTEge1xcbiAgY29sb3I6ICNmNWY1ZjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0xMiB7XFxuICBjb2xvcjogI2VlZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTEzIHtcXG4gIGNvbG9yOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMTQge1xcbiAgY29sb3I6ICM2MTYxNjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5IHtcXG4gIGNvbG9yOiAjNjA3ZDhiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0xIHtcXG4gIGNvbG9yOiAjZWNlZmYxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0yIHtcXG4gIGNvbG9yOiAjY2ZkOGRjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0zIHtcXG4gIGNvbG9yOiAjYjBiZWM1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS00IHtcXG4gIGNvbG9yOiAjOTBhNGFlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS01IHtcXG4gIGNvbG9yOiAjNzg5MDljICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS02IHtcXG4gIGNvbG9yOiAjNjA3ZDhiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS03IHtcXG4gIGNvbG9yOiAjNTQ2ZTdhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS04IHtcXG4gIGNvbG9yOiAjNDU1YTY0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS05IHtcXG4gIGNvbG9yOiAjMzc0NzRmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0xMCB7XFxuICBjb2xvcjogIzI2MzIzOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMTEge1xcbiAgY29sb3I6ICNjZmQ4ZGMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTEyIHtcXG4gIGNvbG9yOiAjYjBiZWM1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0xMyB7XFxuICBjb2xvcjogIzc4OTA5YyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMTQge1xcbiAgY29sb3I6ICM0NTVhNjQgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZCB7XFxuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlYmVlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjZGQyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMyB7XFxuICBiYWNrZ3JvdW5kOiAjZWY5YTlhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtNCB7XFxuICBiYWNrZ3JvdW5kOiAjZTU3MzczICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtNSB7XFxuICBiYWNrZ3JvdW5kOiAjZWY1MzUwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtNiB7XFxuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtNyB7XFxuICBiYWNrZ3JvdW5kOiAjZTUzOTM1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtOCB7XFxuICBiYWNrZ3JvdW5kOiAjZDMyZjJmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtOSB7XFxuICBiYWNrZ3JvdW5kOiAjYzYyODI4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMTAge1xcbiAgYmFja2dyb3VuZDogI2I3MWMxYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZjhhODAgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmY1MjUyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMTMge1xcbiAgYmFja2dyb3VuZDogI2ZmMTc0NCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNkNTAwMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmsge1xcbiAgYmFja2dyb3VuZDogI2U5MWU2MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0xIHtcXG4gIGJhY2tncm91bmQ6ICNmY2U0ZWMgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMiB7XFxuICBiYWNrZ3JvdW5kOiAjZjhiYmQwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTMge1xcbiAgYmFja2dyb3VuZDogI2Y0OGZiMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay00IHtcXG4gIGJhY2tncm91bmQ6ICNmMDYyOTIgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstNSB7XFxuICBiYWNrZ3JvdW5kOiAjZWM0MDdhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTYge1xcbiAgYmFja2dyb3VuZDogI2U5MWU2MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay03IHtcXG4gIGJhY2tncm91bmQ6ICNkODFiNjAgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstOCB7XFxuICBiYWNrZ3JvdW5kOiAjYzIxODViICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTkge1xcbiAgYmFja2dyb3VuZDogI2FkMTQ1NyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjODgwZTRmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZjgwYWIgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMTIge1xcbiAgYmFja2dyb3VuZDogI2ZmNDA4MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjZjUwMDU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNjNTExNjIgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZSB7XFxuICBiYWNrZ3JvdW5kOiAjOWMyN2IwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZjNlNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZTFiZWU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMyB7XFxuICBiYWNrZ3JvdW5kOiAjY2U5M2Q4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtNCB7XFxuICBiYWNrZ3JvdW5kOiAjYmE2OGM4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtNSB7XFxuICBiYWNrZ3JvdW5kOiAjYWI0N2JjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtNiB7XFxuICBiYWNrZ3JvdW5kOiAjOWMyN2IwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtNyB7XFxuICBiYWNrZ3JvdW5kOiAjOGUyNGFhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtOCB7XFxuICBiYWNrZ3JvdW5kOiAjN2IxZmEyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtOSB7XFxuICBiYWNrZ3JvdW5kOiAjNmExYjlhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMTAge1xcbiAgYmFja2dyb3VuZDogIzRhMTQ4YyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTExIHtcXG4gIGJhY2tncm91bmQ6ICNlYTgwZmMgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZTA0MGZiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMTMge1xcbiAgYmFja2dyb3VuZDogI2Q1MDBmOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNhMGYgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlIHtcXG4gIGJhY2tncm91bmQ6ICM2NzNhYjcgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTEge1xcbiAgYmFja2dyb3VuZDogI2VkZTdmNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZDFjNGU5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0zIHtcXG4gIGJhY2tncm91bmQ6ICNiMzlkZGIgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTQge1xcbiAgYmFja2dyb3VuZDogIzk1NzVjZCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtNSB7XFxuICBiYWNrZ3JvdW5kOiAjN2U1N2MyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS02IHtcXG4gIGJhY2tncm91bmQ6ICM2NzNhYjcgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTcge1xcbiAgYmFja2dyb3VuZDogIzVlMzViMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtOCB7XFxuICBiYWNrZ3JvdW5kOiAjNTEyZGE4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS05IHtcXG4gIGJhY2tncm91bmQ6ICM0NTI3YTAgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMzMTFiOTIgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTExIHtcXG4gIGJhY2tncm91bmQ6ICNiMzg4ZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTEyIHtcXG4gIGJhY2tncm91bmQ6ICM3YzRkZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTEzIHtcXG4gIGJhY2tncm91bmQ6ICM2NTFmZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICM2MjAwZWEgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnbyB7XFxuICBiYWNrZ3JvdW5kOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMSB7XFxuICBiYWNrZ3JvdW5kOiAjZThlYWY2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMiB7XFxuICBiYWNrZ3JvdW5kOiAjYzVjYWU5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMyB7XFxuICBiYWNrZ3JvdW5kOiAjOWZhOGRhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tNCB7XFxuICBiYWNrZ3JvdW5kOiAjNzk4NmNiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tNSB7XFxuICBiYWNrZ3JvdW5kOiAjNWM2YmMwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tNiB7XFxuICBiYWNrZ3JvdW5kOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tNyB7XFxuICBiYWNrZ3JvdW5kOiAjMzk0OWFiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tOCB7XFxuICBiYWNrZ3JvdW5kOiAjMzAzZjlmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tOSB7XFxuICBiYWNrZ3JvdW5kOiAjMjgzNTkzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMTAge1xcbiAgYmFja2dyb3VuZDogIzFhMjM3ZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTExIHtcXG4gIGJhY2tncm91bmQ6ICM4YzllZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjNTM2ZGZlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMTMge1xcbiAgYmFja2dyb3VuZDogIzNkNWFmZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMzMDRmZmUgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUge1xcbiAgYmFja2dyb3VuZDogIzIxOTZmMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNlM2YyZmQgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMiB7XFxuICBiYWNrZ3JvdW5kOiAjYmJkZWZiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTMge1xcbiAgYmFja2dyb3VuZDogIzkwY2FmOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS00IHtcXG4gIGJhY2tncm91bmQ6ICM2NGI1ZjYgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtNSB7XFxuICBiYWNrZ3JvdW5kOiAjNDJhNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTYge1xcbiAgYmFja2dyb3VuZDogIzIxOTZmMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS03IHtcXG4gIGJhY2tncm91bmQ6ICMxZTg4ZTUgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtOCB7XFxuICBiYWNrZ3JvdW5kOiAjMTk3NmQyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTkge1xcbiAgYmFja2dyb3VuZDogIzE1NjVjMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMGQ0N2ExICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTExIHtcXG4gIGJhY2tncm91bmQ6ICM4MmIxZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMTIge1xcbiAgYmFja2dyb3VuZDogIzQ0OGFmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjMjk3OWZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMyOTYyZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUge1xcbiAgYmFja2dyb3VuZDogIzAzYTlmNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNlMWY1ZmUgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMiB7XFxuICBiYWNrZ3JvdW5kOiAjYjNlNWZjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTMge1xcbiAgYmFja2dyb3VuZDogIzgxZDRmYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS00IHtcXG4gIGJhY2tncm91bmQ6ICM0ZmMzZjcgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtNSB7XFxuICBiYWNrZ3JvdW5kOiAjMjliNmY2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTYge1xcbiAgYmFja2dyb3VuZDogIzAzYTlmNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS03IHtcXG4gIGJhY2tncm91bmQ6ICMwMzliZTUgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtOCB7XFxuICBiYWNrZ3JvdW5kOiAjMDI4OGQxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTkge1xcbiAgYmFja2dyb3VuZDogIzAyNzdiZCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMDE1NzliICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTExIHtcXG4gIGJhY2tncm91bmQ6ICM4MGQ4ZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMTIge1xcbiAgYmFja2dyb3VuZDogIzQwYzRmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjMDBiMGZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMwMDkxZWEgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4ge1xcbiAgYmFja2dyb3VuZDogIzAwYmNkNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0xIHtcXG4gIGJhY2tncm91bmQ6ICNlMGY3ZmEgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMiB7XFxuICBiYWNrZ3JvdW5kOiAjYjJlYmYyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTMge1xcbiAgYmFja2dyb3VuZDogIzgwZGVlYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi00IHtcXG4gIGJhY2tncm91bmQ6ICM0ZGQwZTEgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tNSB7XFxuICBiYWNrZ3JvdW5kOiAjMjZjNmRhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTYge1xcbiAgYmFja2dyb3VuZDogIzAwYmNkNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi03IHtcXG4gIGJhY2tncm91bmQ6ICMwMGFjYzEgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tOCB7XFxuICBiYWNrZ3JvdW5kOiAjMDA5N2E3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTkge1xcbiAgYmFja2dyb3VuZDogIzAwODM4ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMDA2MDY0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTExIHtcXG4gIGJhY2tncm91bmQ6ICM4NGZmZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMTIge1xcbiAgYmFja2dyb3VuZDogIzE4ZmZmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjMDBlNWZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMwMGI4ZDQgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwge1xcbiAgYmFja2dyb3VuZDogIzAwOTY4OCAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0xIHtcXG4gIGJhY2tncm91bmQ6ICNlMGYyZjEgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMiB7XFxuICBiYWNrZ3JvdW5kOiAjYjJkZmRiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTMge1xcbiAgYmFja2dyb3VuZDogIzgwY2JjNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC00IHtcXG4gIGJhY2tncm91bmQ6ICM0ZGI2YWMgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtNSB7XFxuICBiYWNrZ3JvdW5kOiAjMjZhNjlhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTYge1xcbiAgYmFja2dyb3VuZDogIzAwOTY4OCAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC03IHtcXG4gIGJhY2tncm91bmQ6ICMwMDg5N2IgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtOCB7XFxuICBiYWNrZ3JvdW5kOiAjMDA3OTZiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTkge1xcbiAgYmFja2dyb3VuZDogIzAwNjk1YyAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMDA0ZDQwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTExIHtcXG4gIGJhY2tncm91bmQ6ICNhN2ZmZWIgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMTIge1xcbiAgYmFja2dyb3VuZDogIzY0ZmZkYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjMWRlOWI2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMwMGJmYTUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuIHtcXG4gIGJhY2tncm91bmQ6ICM0Y2FmNTAgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTEge1xcbiAgYmFja2dyb3VuZDogI2U4ZjVlOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMiB7XFxuICBiYWNrZ3JvdW5kOiAjYzhlNmM5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0zIHtcXG4gIGJhY2tncm91bmQ6ICNhNWQ2YTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTQge1xcbiAgYmFja2dyb3VuZDogIzgxYzc4NCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tNSB7XFxuICBiYWNrZ3JvdW5kOiAjNjZiYjZhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi02IHtcXG4gIGJhY2tncm91bmQ6ICM0Y2FmNTAgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTcge1xcbiAgYmFja2dyb3VuZDogIzQzYTA0NyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tOCB7XFxuICBiYWNrZ3JvdW5kOiAjMzg4ZTNjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi05IHtcXG4gIGJhY2tncm91bmQ6ICMyZTdkMzIgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMxYjVlMjAgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTExIHtcXG4gIGJhY2tncm91bmQ6ICNiOWY2Y2EgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTEyIHtcXG4gIGJhY2tncm91bmQ6ICM2OWYwYWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTEzIHtcXG4gIGJhY2tncm91bmQ6ICMwMGU2NzYgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMwMGM4NTMgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuIHtcXG4gIGJhY2tncm91bmQ6ICM4YmMzNGEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTEge1xcbiAgYmFja2dyb3VuZDogI2YxZjhlOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMiB7XFxuICBiYWNrZ3JvdW5kOiAjZGNlZGM4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0zIHtcXG4gIGJhY2tncm91bmQ6ICNjNWUxYTUgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTQge1xcbiAgYmFja2dyb3VuZDogI2FlZDU4MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tNSB7XFxuICBiYWNrZ3JvdW5kOiAjOWNjYzY1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi02IHtcXG4gIGJhY2tncm91bmQ6ICM4YmMzNGEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTcge1xcbiAgYmFja2dyb3VuZDogIzdjYjM0MiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tOCB7XFxuICBiYWNrZ3JvdW5kOiAjNjg5ZjM4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi05IHtcXG4gIGJhY2tncm91bmQ6ICM1NThiMmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMzMzY5MWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTExIHtcXG4gIGJhY2tncm91bmQ6ICNjY2ZmOTAgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNiMmZmNTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTEzIHtcXG4gIGJhY2tncm91bmQ6ICM3NmZmMDMgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTE0IHtcXG4gIGJhY2tncm91bmQ6ICM2NGRkMTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUge1xcbiAgYmFja2dyb3VuZDogI2NkZGMzOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNmOWZiZTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZjBmNGMzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTMge1xcbiAgYmFja2dyb3VuZDogI2U2ZWU5YyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS00IHtcXG4gIGJhY2tncm91bmQ6ICNkY2U3NzUgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtNSB7XFxuICBiYWNrZ3JvdW5kOiAjZDRlMTU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTYge1xcbiAgYmFja2dyb3VuZDogI2NkZGMzOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS03IHtcXG4gIGJhY2tncm91bmQ6ICNjMGNhMzMgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtOCB7XFxuICBiYWNrZ3JvdW5kOiAjYWZiNDJiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTkge1xcbiAgYmFja2dyb3VuZDogIzllOWQyNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjODI3NzE3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmNGZmODEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMTIge1xcbiAgYmFja2dyb3VuZDogI2VlZmY0MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjYzZmZjAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNhZWVhMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlYjNiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmZGU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmOWM0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmNTlkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmMTc2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctNSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlZTU4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctNiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlYjNiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctNyB7XFxuICBiYWNrZ3JvdW5kOiAjZmRkODM1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctOCB7XFxuICBiYWNrZ3JvdW5kOiAjZmJjMDJkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctOSB7XFxuICBiYWNrZ3JvdW5kOiAjZjlhODI1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMTAge1xcbiAgYmFja2dyb3VuZDogI2Y1N2YxNyAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZmZmOGQgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmYwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMTMge1xcbiAgYmFja2dyb3VuZDogI2ZmZWEwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTE0IHtcXG4gIGJhY2tncm91bmQ6ICNmZmQ2MDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyIHtcXG4gIGJhY2tncm91bmQ6ICNmZmMxMDcgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZjhlMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlY2IzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0zIHtcXG4gIGJhY2tncm91bmQ6ICNmZmUwODIgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTQge1xcbiAgYmFja2dyb3VuZDogI2ZmZDU0ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItNSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjYTI4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci02IHtcXG4gIGJhY2tncm91bmQ6ICNmZmMxMDcgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTcge1xcbiAgYmFja2dyb3VuZDogI2ZmYjMwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItOCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZhMDAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci05IHtcXG4gIGJhY2tncm91bmQ6ICNmZjhmMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTEwIHtcXG4gIGJhY2tncm91bmQ6ICNmZjZmMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZmU1N2YgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNmZmQ3NDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNmZmM0MDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNmZmFiMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY5ODAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmM2UwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlMGIyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjYzgwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZiNzRkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtNSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZhNzI2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtNiB7XFxuICBiYWNrZ3JvdW5kOiAjZmY5ODAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtNyB7XFxuICBiYWNrZ3JvdW5kOiAjZmI4YzAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtOCB7XFxuICBiYWNrZ3JvdW5kOiAjZjU3YzAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtOSB7XFxuICBiYWNrZ3JvdW5kOiAjZWY2YzAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMTAge1xcbiAgYmFja2dyb3VuZDogI2U2NTEwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZmQxODAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZhYjQwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMTMge1xcbiAgYmFja2dyb3VuZDogI2ZmOTEwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNmZjZkMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlIHtcXG4gIGJhY2tncm91bmQ6ICNmZjU3MjIgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTEge1xcbiAgYmFja2dyb3VuZDogI2ZiZTllNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjY2JjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0zIHtcXG4gIGJhY2tncm91bmQ6ICNmZmFiOTEgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTQge1xcbiAgYmFja2dyb3VuZDogI2ZmOGE2NSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtNSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY3MDQzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS02IHtcXG4gIGJhY2tncm91bmQ6ICNmZjU3MjIgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTcge1xcbiAgYmFja2dyb3VuZDogI2Y0NTExZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtOCB7XFxuICBiYWNrZ3JvdW5kOiAjZTY0YTE5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS05IHtcXG4gIGJhY2tncm91bmQ6ICNkODQzMTUgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTEwIHtcXG4gIGJhY2tncm91bmQ6ICNiZjM2MGMgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZjllODAgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNmZjZlNDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNmZjNkMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNkZDJjMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duIHtcXG4gIGJhY2tncm91bmQ6ICM3OTU1NDggIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTEge1xcbiAgYmFja2dyb3VuZDogI2VmZWJlOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMiB7XFxuICBiYWNrZ3JvdW5kOiAjZDdjY2M4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0zIHtcXG4gIGJhY2tncm91bmQ6ICNiY2FhYTQgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTQge1xcbiAgYmFja2dyb3VuZDogI2ExODg3ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tNSB7XFxuICBiYWNrZ3JvdW5kOiAjOGQ2ZTYzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi02IHtcXG4gIGJhY2tncm91bmQ6ICM3OTU1NDggIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTcge1xcbiAgYmFja2dyb3VuZDogIzZkNGM0MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tOCB7XFxuICBiYWNrZ3JvdW5kOiAjNWQ0MDM3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi05IHtcXG4gIGJhY2tncm91bmQ6ICM0ZTM0MmUgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMzZTI3MjMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTExIHtcXG4gIGJhY2tncm91bmQ6ICNkN2NjYzggIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNiY2FhYTQgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTEzIHtcXG4gIGJhY2tncm91bmQ6ICM4ZDZlNjMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTE0IHtcXG4gIGJhY2tncm91bmQ6ICM1ZDQwMzcgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXkge1xcbiAgYmFja2dyb3VuZDogIzllOWU5ZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0xIHtcXG4gIGJhY2tncm91bmQ6ICNmYWZhZmEgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMiB7XFxuICBiYWNrZ3JvdW5kOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTMge1xcbiAgYmFja2dyb3VuZDogI2VlZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS00IHtcXG4gIGJhY2tncm91bmQ6ICNlMGUwZTAgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktNSB7XFxuICBiYWNrZ3JvdW5kOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTYge1xcbiAgYmFja2dyb3VuZDogIzllOWU5ZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS03IHtcXG4gIGJhY2tncm91bmQ6ICM3NTc1NzUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktOCB7XFxuICBiYWNrZ3JvdW5kOiAjNjE2MTYxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTkge1xcbiAgYmFja2dyb3VuZDogIzQyNDI0MiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMjEyMTIxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTExIHtcXG4gIGJhY2tncm91bmQ6ICNmNWY1ZjUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMTIge1xcbiAgYmFja2dyb3VuZDogI2VlZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTE0IHtcXG4gIGJhY2tncm91bmQ6ICM2MTYxNjEgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleSB7XFxuICBiYWNrZ3JvdW5kOiAjNjA3ZDhiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMSB7XFxuICBiYWNrZ3JvdW5kOiAjZWNlZmYxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMiB7XFxuICBiYWNrZ3JvdW5kOiAjY2ZkOGRjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMyB7XFxuICBiYWNrZ3JvdW5kOiAjYjBiZWM1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktNCB7XFxuICBiYWNrZ3JvdW5kOiAjOTBhNGFlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktNSB7XFxuICBiYWNrZ3JvdW5kOiAjNzg5MDljICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktNiB7XFxuICBiYWNrZ3JvdW5kOiAjNjA3ZDhiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktNyB7XFxuICBiYWNrZ3JvdW5kOiAjNTQ2ZTdhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktOCB7XFxuICBiYWNrZ3JvdW5kOiAjNDU1YTY0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktOSB7XFxuICBiYWNrZ3JvdW5kOiAjMzc0NzRmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMTAge1xcbiAgYmFja2dyb3VuZDogIzI2MzIzOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTExIHtcXG4gIGJhY2tncm91bmQ6ICNjZmQ4ZGMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjYjBiZWM1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMTMge1xcbiAgYmFja2dyb3VuZDogIzc4OTA5YyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTE0IHtcXG4gIGJhY2tncm91bmQ6ICM0NTVhNjQgIWltcG9ydGFudDtcXG59XFxuLnNoYWRvdy10cmFuc2l0aW9uIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC1ib3gtc2hhZG93IDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDtcXG4gIHRyYW5zaXRpb246IC13ZWJraXQtYm94LXNoYWRvdyAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7XFxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDtcXG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgLXdlYmtpdC1ib3gtc2hhZG93IDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDtcXG59XFxuLnNoYWRvdy0xIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTEge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0ycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgLTFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0yIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0ycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTMge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIDNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAzcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0zcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy00IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDRweCA1cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMTBweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNHB4IDVweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxMHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtNCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTJweCA0cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgLTRweCA1cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMXB4IDEwcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtNHB4IDVweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0xcHggMTBweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNXB4IDhweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA1cHggOHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDE0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC01IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtNXB4IDhweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0xcHggMTRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0zcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIC01cHggOHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTFweCAxNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctNiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA2cHggMTBweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA2cHggMTBweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtNiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgLTZweCAxMHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTFweCAxOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgLTZweCAxMHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTFweCAxOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctNyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNHB4IDVweCAtMnB4IHJnYmEoMCwwLDAsMC4yKSwgMCA3cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMTZweCAxcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNXB4IC0ycHggcmdiYSgwLDAsMCwwLjIpLCAwIDdweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxNnB4IDFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTcge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC00cHggNXB4IC0ycHggcmdiYSgwLDAsMCwwLjIpLCAwIC03cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMnB4IDE2cHggMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTRweCA1cHggLTJweCByZ2JhKDAsMCwwLDAuMiksIDAgLTdweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0ycHggMTZweCAxcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy04IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggNXB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDhweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtOCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgLThweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggMTRweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAxNHB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTkge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgOXB4IDEycHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDE2cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCA5cHggMTJweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMTZweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC05IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtNXB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtOXB4IDEycHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAxNnB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC01cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIC05cHggMTJweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDE2cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTAge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDZweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgMTBweCAxNHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDRweCAxOHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDZweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgMTBweCAxNHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDRweCAxOHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTEwIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtNnB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTBweCAxNHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC00cHggMThweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtNnB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTBweCAxNHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC00cHggMThweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xMSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNnB4IDdweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxMXB4IDE1cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNHB4IDIwcHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDdweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxMXB4IDE1cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNHB4IDIwcHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTEge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC02cHggN3B4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xMXB4IDE1cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTRweCAyMHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC02cHggN3B4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xMXB4IDE1cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTRweCAyMHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTEyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA3cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDEycHggMTdweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA1cHggMjJweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA3cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDEycHggMTdweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA1cHggMjJweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEycHggMTdweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNXB4IDIycHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEycHggMTdweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNXB4IDIycHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTMge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTNweCAxOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDVweCAyNHB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTNweCAxOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDVweCAyNHB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTEzIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTNweCAxOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC01cHggMjRweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTNweCAxOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC01cHggMjRweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xNCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgN3B4IDlweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNHB4IDIxcHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNXB4IDI2cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgN3B4IDlweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNHB4IDIxcHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNXB4IDI2cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC03cHggOXB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xNHB4IDIxcHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTVweCAyNnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC03cHggOXB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xNHB4IDIxcHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTVweCAyNnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTE1IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA4cHggOXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE1cHggMjJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA2cHggMjhweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA4cHggOXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE1cHggMjJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA2cHggMjhweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xNSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLThweCA5cHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE1cHggMjJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDI4cHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLThweCA5cHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE1cHggMjJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDI4cHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTYge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDhweCAxMHB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE2cHggMjRweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA2cHggMzBweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMTBweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNnB4IDI0cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDMwcHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTYge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC04cHggMTBweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTZweCAyNHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC02cHggMzBweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtOHB4IDEwcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE2cHggMjRweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDMwcHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTcge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDhweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE3cHggMjZweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA2cHggMzJweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxN3B4IDI2cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDMycHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTcge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC04cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTdweCAyNnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC02cHggMzJweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtOHB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE3cHggMjZweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDMycHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTgge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDlweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE4cHggMjhweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA3cHggMzRweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA5cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxOHB4IDI4cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgN3B4IDM0cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTgge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC05cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMThweCAyOHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC03cHggMzRweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtOXB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE4cHggMjhweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtN3B4IDM0cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTkge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDlweCAxMnB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE5cHggMjlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA3cHggMzZweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA5cHggMTJweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxOXB4IDI5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgN3B4IDM2cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTkge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC05cHggMTJweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTlweCAyOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC03cHggMzZweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtOXB4IDEycHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE5cHggMjlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtN3B4IDM2cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMjAge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAyMHB4IDMxcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOHB4IDM4cHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIwcHggMzFweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA4cHggMzhweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0yMCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjBweCAzMXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC04cHggMzhweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yMHB4IDMxcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLThweCAzOHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTIxIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMjFweCAzM3B4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDhweCA0MHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAyMXB4IDMzcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOHB4IDQwcHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMjEge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIxcHggMzNweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOHB4IDQwcHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjFweCAzM3B4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC04cHggNDBweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0yMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTBweCAxNHB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIycHggMzVweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA4cHggNDJweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDE0cHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMjJweCAzNXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDhweCA0MnB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTIyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMTBweCAxNHB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yMnB4IDM1cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLThweCA0MnB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xMHB4IDE0cHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIycHggMzVweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOHB4IDQycHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMjMge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDExcHggMTRweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAyM3B4IDM2cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOXB4IDQ0cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTFweCAxNHB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIzcHggMzZweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA5cHggNDRweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0yMyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTExcHggMTRweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjNweCAzNnB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC05cHggNDRweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMTFweCAxNHB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yM3B4IDM2cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTlweCA0NHB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTI0IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxMXB4IDE1cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgMjRweCAzOHB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDlweCA0NnB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDExcHggMTVweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAyNHB4IDM4cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOXB4IDQ2cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMjQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xMXB4IDE1cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgLTI0cHggMzhweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOXB4IDQ2cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTExcHggMTVweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjRweCAzOHB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC05cHggNDZweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLm5vLXNoYWRvdyxcXG4uc2hhZG93LTAge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLmluc2V0LXNoYWRvdyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgN3B4IDlweCAtN3B4IHJnYmEoMCwwLDAsMC43KSBpbnNldCAhaW1wb3J0YW50O1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDdweCA5cHggLTdweCByZ2JhKDAsMCwwLDAuNykgaW5zZXQgIWltcG9ydGFudDtcXG59XFxuLnotbWFyZ2luYWxzIHtcXG4gIHotaW5kZXg6IDIwMDA7XFxufVxcbi56LW5vdGlmeSB7XFxuICB6LWluZGV4OiA5NTAwO1xcbn1cXG4uei1mdWxsc2NyZWVuIHtcXG4gIHotaW5kZXg6IDYwMDA7XFxufVxcbi56LWluaGVyaXQge1xcbiAgei1pbmRleDogaW5oZXJpdCAhaW1wb3J0YW50O1xcbn1cXG4ucm93LFxcbi5jb2x1bW4sXFxuLmZsZXgge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtbXMtZmxleC13cmFwOiB3cmFwO1xcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcXG59XFxuLnJvdy5pbmxpbmUsXFxuLmNvbHVtbi5pbmxpbmUsXFxuLmZsZXguaW5saW5lIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbn1cXG4ucm93LnJldmVyc2Uge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG59XFxuLmNvbHVtbiB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxufVxcbi5jb2x1bW4ucmV2ZXJzZSB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcXG59XFxuLndyYXAge1xcbiAgLW1zLWZsZXgtd3JhcDogd3JhcDtcXG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcbi5uby13cmFwIHtcXG4gIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcXG59XFxuLnJldmVyc2Utd3JhcCB7XFxuICAtbXMtZmxleC13cmFwOiB3cmFwLXJldmVyc2U7XFxuICAgICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2U7XFxufVxcbi5vcmRlci1maXJzdCB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAtOTk5OTtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogLTEwMDAwO1xcbiAgICAgICAgICBvcmRlcjogLTEwMDAwO1xcbn1cXG4ub3JkZXItbGFzdCB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAxMDAwMTtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogMTAwMDA7XFxuICAgICAgICAgIG9yZGVyOiAxMDAwMDtcXG59XFxuLm9yZGVyLW5vbmUge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMTtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogMDtcXG4gICAgICAgICAgb3JkZXI6IDA7XFxufVxcbi5qdXN0aWZ5LXN0YXJ0IHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0O1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XFxufVxcbi5qdXN0aWZ5LWVuZCB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazogZW5kO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcbn1cXG4uanVzdGlmeS1jZW50ZXIsXFxuLmZsZXgtY2VudGVyIHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG4uanVzdGlmeS1iZXR3ZWVuIHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7XFxuICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbn1cXG4uanVzdGlmeS1hcm91bmQge1xcbiAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZTtcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcXG59XFxuLml0ZW1zLXN0YXJ0IHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xcbn1cXG4uaXRlbXMtZW5kIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBlbmQ7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xcbn1cXG4uaXRlbXMtY2VudGVyLFxcbi5mbGV4LWNlbnRlciB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxufVxcbi5pdGVtcy1iYXNlbGluZSB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmU7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XFxufVxcbi5pdGVtcy1zdHJldGNoIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcXG59XFxuLmNvbnRlbnQtc3RhcnQge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydDtcXG4gICAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xcbn1cXG4uY29udGVudC1lbmQge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBlbmQ7XFxuICAgICAgYWxpZ24tY29udGVudDogZmxleC1lbmQ7XFxufVxcbi5jb250ZW50LWNlbnRlciB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IGNlbnRlcjtcXG4gICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XFxufVxcbi5jb250ZW50LXN0cmV0Y2gge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdHJldGNoO1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XFxufVxcbi5jb250ZW50LWJldHdlZW4ge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBqdXN0aWZ5O1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxufVxcbi5jb250ZW50LWFyb3VuZCB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IGRpc3RyaWJ1dGU7XFxuICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kO1xcbn1cXG4uc2VsZi1zdGFydCB7XFxuICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdGFydDtcXG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xcbn1cXG4uc2VsZi1lbmQge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogZW5kO1xcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xcbn1cXG4uc2VsZi1jZW50ZXIge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogY2VudGVyO1xcbiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcXG59XFxuLnNlbGYtYmFzZWxpbmUge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogYmFzZWxpbmU7XFxuICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmU7XFxufVxcbi5zZWxmLXN0cmV0Y2gge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDtcXG4gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xcbn1cXG4uZ3V0dGVyLXgtbm9uZSxcXG4uZ3V0dGVyLW5vbmUge1xcbiAgbWFyZ2luLWxlZnQ6IDA7XFxufVxcbi5ndXR0ZXIteC1ub25lID4gZGl2LFxcbi5ndXR0ZXItbm9uZSA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxufVxcbi5ndXR0ZXIteS1ub25lLFxcbi5ndXR0ZXItbm9uZSB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbn1cXG4uZ3V0dGVyLXktbm9uZSA+IGRpdixcXG4uZ3V0dGVyLW5vbmUgPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5ndXR0ZXIteC14cyxcXG4uZ3V0dGVyLXhzIHtcXG4gIG1hcmdpbi1sZWZ0OiAtOHB4O1xcbn1cXG4uZ3V0dGVyLXgteHMgPiBkaXYsXFxuLmd1dHRlci14cyA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuLmd1dHRlci15LXhzLFxcbi5ndXR0ZXIteHMge1xcbiAgbWFyZ2luLXRvcDogLThweDtcXG59XFxuLmd1dHRlci15LXhzID4gZGl2LFxcbi5ndXR0ZXIteHMgPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDhweDtcXG59XFxuLmd1dHRlci14LXNtLFxcbi5ndXR0ZXItc20ge1xcbiAgbWFyZ2luLWxlZnQ6IC0xNnB4O1xcbn1cXG4uZ3V0dGVyLXgtc20gPiBkaXYsXFxuLmd1dHRlci1zbSA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XFxufVxcbi5ndXR0ZXIteS1zbSxcXG4uZ3V0dGVyLXNtIHtcXG4gIG1hcmdpbi10b3A6IC0xNnB4O1xcbn1cXG4uZ3V0dGVyLXktc20gPiBkaXYsXFxuLmd1dHRlci1zbSA+IGRpdiB7XFxuICBwYWRkaW5nLXRvcDogMTZweDtcXG59XFxuLmd1dHRlci14LW1kLFxcbi5ndXR0ZXItbWQge1xcbiAgbWFyZ2luLWxlZnQ6IC0zMnB4O1xcbn1cXG4uZ3V0dGVyLXgtbWQgPiBkaXYsXFxuLmd1dHRlci1tZCA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDMycHg7XFxufVxcbi5ndXR0ZXIteS1tZCxcXG4uZ3V0dGVyLW1kIHtcXG4gIG1hcmdpbi10b3A6IC0zMnB4O1xcbn1cXG4uZ3V0dGVyLXktbWQgPiBkaXYsXFxuLmd1dHRlci1tZCA+IGRpdiB7XFxuICBwYWRkaW5nLXRvcDogMzJweDtcXG59XFxuLmd1dHRlci14LWxnLFxcbi5ndXR0ZXItbGcge1xcbiAgbWFyZ2luLWxlZnQ6IC00OHB4O1xcbn1cXG4uZ3V0dGVyLXgtbGcgPiBkaXYsXFxuLmd1dHRlci1sZyA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XFxufVxcbi5ndXR0ZXIteS1sZyxcXG4uZ3V0dGVyLWxnIHtcXG4gIG1hcmdpbi10b3A6IC00OHB4O1xcbn1cXG4uZ3V0dGVyLXktbGcgPiBkaXYsXFxuLmd1dHRlci1sZyA+IGRpdiB7XFxuICBwYWRkaW5nLXRvcDogNDhweDtcXG59XFxuLmd1dHRlci14LXhsLFxcbi5ndXR0ZXIteGwge1xcbiAgbWFyZ2luLWxlZnQ6IC02NHB4O1xcbn1cXG4uZ3V0dGVyLXgteGwgPiBkaXYsXFxuLmd1dHRlci14bCA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDY0cHg7XFxufVxcbi5ndXR0ZXIteS14bCxcXG4uZ3V0dGVyLXhsIHtcXG4gIG1hcmdpbi10b3A6IC02NHB4O1xcbn1cXG4uZ3V0dGVyLXkteGwgPiBkaXYsXFxuLmd1dHRlci14bCA+IGRpdiB7XFxuICBwYWRkaW5nLXRvcDogNjRweDtcXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDApIHtcXG4gIC5yb3cgPiAuY29sLFxcbiAgLnJvdyA+IC5jb2wteHMsXFxuICAucm93ID4gLmNvbC1hdXRvLFxcbiAgLnJvdyA+IC5jb2wteHMtYXV0byxcXG4gIC5yb3cgPiAuY29sLWdyb3csXFxuICAucm93ID4gLmNvbC14cy1ncm93LFxcbiAgLnJvdyA+IC5jb2wtMCxcXG4gIC5yb3cgPiAuY29sLXhzLTAsXFxuICAucm93ID4gLmNvbC0xLFxcbiAgLnJvdyA+IC5jb2wteHMtMSxcXG4gIC5yb3cgPiAuY29sLTIsXFxuICAucm93ID4gLmNvbC14cy0yLFxcbiAgLnJvdyA+IC5jb2wtMyxcXG4gIC5yb3cgPiAuY29sLXhzLTMsXFxuICAucm93ID4gLmNvbC00LFxcbiAgLnJvdyA+IC5jb2wteHMtNCxcXG4gIC5yb3cgPiAuY29sLTUsXFxuICAucm93ID4gLmNvbC14cy01LFxcbiAgLnJvdyA+IC5jb2wtNixcXG4gIC5yb3cgPiAuY29sLXhzLTYsXFxuICAucm93ID4gLmNvbC03LFxcbiAgLnJvdyA+IC5jb2wteHMtNyxcXG4gIC5yb3cgPiAuY29sLTgsXFxuICAucm93ID4gLmNvbC14cy04LFxcbiAgLnJvdyA+IC5jb2wtOSxcXG4gIC5yb3cgPiAuY29sLXhzLTksXFxuICAucm93ID4gLmNvbC0xMCxcXG4gIC5yb3cgPiAuY29sLXhzLTEwLFxcbiAgLnJvdyA+IC5jb2wtMTEsXFxuICAucm93ID4gLmNvbC14cy0xMSxcXG4gIC5yb3cgPiAuY29sLTEyLFxcbiAgLnJvdyA+IC5jb2wteHMtMTIsXFxuICAuZmxleCA+IC5jb2wsXFxuICAuZmxleCA+IC5jb2wteHMsXFxuICAuZmxleCA+IC5jb2wtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC14cy1hdXRvLFxcbiAgLmZsZXggPiAuY29sLWdyb3csXFxuICAuZmxleCA+IC5jb2wteHMtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC0wLFxcbiAgLmZsZXggPiAuY29sLXhzLTAsXFxuICAuZmxleCA+IC5jb2wtMSxcXG4gIC5mbGV4ID4gLmNvbC14cy0xLFxcbiAgLmZsZXggPiAuY29sLTIsXFxuICAuZmxleCA+IC5jb2wteHMtMixcXG4gIC5mbGV4ID4gLmNvbC0zLFxcbiAgLmZsZXggPiAuY29sLXhzLTMsXFxuICAuZmxleCA+IC5jb2wtNCxcXG4gIC5mbGV4ID4gLmNvbC14cy00LFxcbiAgLmZsZXggPiAuY29sLTUsXFxuICAuZmxleCA+IC5jb2wteHMtNSxcXG4gIC5mbGV4ID4gLmNvbC02LFxcbiAgLmZsZXggPiAuY29sLXhzLTYsXFxuICAuZmxleCA+IC5jb2wtNyxcXG4gIC5mbGV4ID4gLmNvbC14cy03LFxcbiAgLmZsZXggPiAuY29sLTgsXFxuICAuZmxleCA+IC5jb2wteHMtOCxcXG4gIC5mbGV4ID4gLmNvbC05LFxcbiAgLmZsZXggPiAuY29sLXhzLTksXFxuICAuZmxleCA+IC5jb2wtMTAsXFxuICAuZmxleCA+IC5jb2wteHMtMTAsXFxuICAuZmxleCA+IC5jb2wtMTEsXFxuICAuZmxleCA+IC5jb2wteHMtMTEsXFxuICAuZmxleCA+IC5jb2wtMTIsXFxuICAuZmxleCA+IC5jb2wteHMtMTIge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgbWluLXdpZHRoOiAwO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLFxcbiAgLmNvbHVtbiA+IC5jb2wtYXV0byxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLWF1dG8sXFxuICAuY29sdW1uID4gLmNvbC1ncm93LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLTAsXFxuICAuY29sdW1uID4gLmNvbC14cy0wLFxcbiAgLmNvbHVtbiA+IC5jb2wtMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTEsXFxuICAuY29sdW1uID4gLmNvbC0yLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMixcXG4gIC5jb2x1bW4gPiAuY29sLTMsXFxuICAuY29sdW1uID4gLmNvbC14cy0zLFxcbiAgLmNvbHVtbiA+IC5jb2wtNCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTQsXFxuICAuY29sdW1uID4gLmNvbC01LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNSxcXG4gIC5jb2x1bW4gPiAuY29sLTYsXFxuICAuY29sdW1uID4gLmNvbC14cy02LFxcbiAgLmNvbHVtbiA+IC5jb2wtNyxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTcsXFxuICAuY29sdW1uID4gLmNvbC04LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtOCxcXG4gIC5jb2x1bW4gPiAuY29sLTksXFxuICAuY29sdW1uID4gLmNvbC14cy05LFxcbiAgLmNvbHVtbiA+IC5jb2wtMTAsXFxuICAuY29sdW1uID4gLmNvbC14cy0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMTEsXFxuICAuY29sdW1uID4gLmNvbC0xMixcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTEyLFxcbiAgLmZsZXggPiAuY29sLFxcbiAgLmZsZXggPiAuY29sLXhzLFxcbiAgLmZsZXggPiAuY29sLWF1dG8sXFxuICAuZmxleCA+IC5jb2wteHMtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1ncm93LFxcbiAgLmZsZXggPiAuY29sLXhzLWdyb3csXFxuICAuZmxleCA+IC5jb2wtMCxcXG4gIC5mbGV4ID4gLmNvbC14cy0wLFxcbiAgLmZsZXggPiAuY29sLTEsXFxuICAuZmxleCA+IC5jb2wteHMtMSxcXG4gIC5mbGV4ID4gLmNvbC0yLFxcbiAgLmZsZXggPiAuY29sLXhzLTIsXFxuICAuZmxleCA+IC5jb2wtMyxcXG4gIC5mbGV4ID4gLmNvbC14cy0zLFxcbiAgLmZsZXggPiAuY29sLTQsXFxuICAuZmxleCA+IC5jb2wteHMtNCxcXG4gIC5mbGV4ID4gLmNvbC01LFxcbiAgLmZsZXggPiAuY29sLXhzLTUsXFxuICAuZmxleCA+IC5jb2wtNixcXG4gIC5mbGV4ID4gLmNvbC14cy02LFxcbiAgLmZsZXggPiAuY29sLTcsXFxuICAuZmxleCA+IC5jb2wteHMtNyxcXG4gIC5mbGV4ID4gLmNvbC04LFxcbiAgLmZsZXggPiAuY29sLXhzLTgsXFxuICAuZmxleCA+IC5jb2wtOSxcXG4gIC5mbGV4ID4gLmNvbC14cy05LFxcbiAgLmZsZXggPiAuY29sLTEwLFxcbiAgLmZsZXggPiAuY29sLXhzLTEwLFxcbiAgLmZsZXggPiAuY29sLTExLFxcbiAgLmZsZXggPiAuY29sLXhzLTExLFxcbiAgLmZsZXggPiAuY29sLTEyLFxcbiAgLmZsZXggPiAuY29sLXhzLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbCxcXG4gIC5jb2wteHMge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxMDAwMDtcXG4gICAgICAgIC1tcy1mbGV4OiAxMDAwMCAxIDAlO1xcbiAgICAgICAgICAgIGZsZXg6IDEwMDAwIDEgMCU7XFxuICB9XFxuICAuY29sLWF1dG8sXFxuICAuY29sLXhzLWF1dG8sXFxuICAuY29sLTAsXFxuICAuY29sLXhzLTAsXFxuICAuY29sLTEsXFxuICAuY29sLXhzLTEsXFxuICAuY29sLTIsXFxuICAuY29sLXhzLTIsXFxuICAuY29sLTMsXFxuICAuY29sLXhzLTMsXFxuICAuY29sLTQsXFxuICAuY29sLXhzLTQsXFxuICAuY29sLTUsXFxuICAuY29sLXhzLTUsXFxuICAuY29sLTYsXFxuICAuY29sLXhzLTYsXFxuICAuY29sLTcsXFxuICAuY29sLXhzLTcsXFxuICAuY29sLTgsXFxuICAuY29sLXhzLTgsXFxuICAuY29sLTksXFxuICAuY29sLXhzLTksXFxuICAuY29sLTEwLFxcbiAgLmNvbC14cy0xMCxcXG4gIC5jb2wtMTEsXFxuICAuY29sLXhzLTExLFxcbiAgLmNvbC0xMixcXG4gIC5jb2wteHMtMTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgfVxcbiAgLmNvbC1ncm93LFxcbiAgLmNvbC14cy1ncm93IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTAsXFxuICAucm93ID4gLmNvbC14cy0wIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0wLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTAsXFxuICAuY29sdW1uID4gLmNvbC14cy0wIHtcXG4gICAgaGVpZ2h0OiAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0xLFxcbiAgLnJvdyA+IC5jb2wteHMtMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0xLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTEge1xcbiAgICBoZWlnaHQ6IDguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMixcXG4gIC5yb3cgPiAuY29sLXhzLTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxNi42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTIsXFxuICAucm93ID4gLm9mZnNldC14cy0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMixcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTIge1xcbiAgICBoZWlnaHQ6IDE2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTMsXFxuICAucm93ID4gLmNvbC14cy0zIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMjUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMyxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMyxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTMge1xcbiAgICBoZWlnaHQ6IDI1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC00LFxcbiAgLnJvdyA+IC5jb2wteHMtNCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtNCxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC00LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNCB7XFxuICAgIGhlaWdodDogMzMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtNSxcXG4gIC5yb3cgPiAuY29sLXhzLTUge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA0MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTUsXFxuICAucm93ID4gLm9mZnNldC14cy01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtNSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTUge1xcbiAgICBoZWlnaHQ6IDQxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTYsXFxuICAucm93ID4gLmNvbC14cy02IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtNixcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTYge1xcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtNixcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTYge1xcbiAgICBoZWlnaHQ6IDUwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC03LFxcbiAgLnJvdyA+IC5jb2wteHMtNyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtNyxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTcge1xcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC03LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNyB7XFxuICAgIGhlaWdodDogNTguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtOCxcXG4gIC5yb3cgPiAuY29sLXhzLTgge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTgsXFxuICAucm93ID4gLm9mZnNldC14cy04IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtOCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTgge1xcbiAgICBoZWlnaHQ6IDY2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTksXFxuICAucm93ID4gLmNvbC14cy05IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNzUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtOSxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTkge1xcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtOSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTkge1xcbiAgICBoZWlnaHQ6IDc1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0xMCxcXG4gIC5yb3cgPiAuY29sLXhzLTEwIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogODMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0xMCxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMTAsXFxuICAuY29sdW1uID4gLmNvbC14cy0xMCB7XFxuICAgIGhlaWdodDogODMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMTEsXFxuICAucm93ID4gLmNvbC14cy0xMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDkxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMTEsXFxuICAucm93ID4gLm9mZnNldC14cy0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMTEge1xcbiAgICBoZWlnaHQ6IDkxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTEyLFxcbiAgLnJvdyA+IC5jb2wteHMtMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMTIsXFxuICAucm93ID4gLm9mZnNldC14cy0xMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMTIsXFxuICAuY29sdW1uID4gLmNvbC14cy0xMiB7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgLnJvdyA+IC5jb2wtc20sXFxuICAucm93ID4gLmNvbC1zbS1hdXRvLFxcbiAgLnJvdyA+IC5jb2wtc20tZ3JvdyxcXG4gIC5yb3cgPiAuY29sLXNtLTAsXFxuICAucm93ID4gLmNvbC1zbS0xLFxcbiAgLnJvdyA+IC5jb2wtc20tMixcXG4gIC5yb3cgPiAuY29sLXNtLTMsXFxuICAucm93ID4gLmNvbC1zbS00LFxcbiAgLnJvdyA+IC5jb2wtc20tNSxcXG4gIC5yb3cgPiAuY29sLXNtLTYsXFxuICAucm93ID4gLmNvbC1zbS03LFxcbiAgLnJvdyA+IC5jb2wtc20tOCxcXG4gIC5yb3cgPiAuY29sLXNtLTksXFxuICAucm93ID4gLmNvbC1zbS0xMCxcXG4gIC5yb3cgPiAuY29sLXNtLTExLFxcbiAgLnJvdyA+IC5jb2wtc20tMTIsXFxuICAuZmxleCA+IC5jb2wtc20sXFxuICAuZmxleCA+IC5jb2wtc20tYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1zbS1ncm93LFxcbiAgLmZsZXggPiAuY29sLXNtLTAsXFxuICAuZmxleCA+IC5jb2wtc20tMSxcXG4gIC5mbGV4ID4gLmNvbC1zbS0yLFxcbiAgLmZsZXggPiAuY29sLXNtLTMsXFxuICAuZmxleCA+IC5jb2wtc20tNCxcXG4gIC5mbGV4ID4gLmNvbC1zbS01LFxcbiAgLmZsZXggPiAuY29sLXNtLTYsXFxuICAuZmxleCA+IC5jb2wtc20tNyxcXG4gIC5mbGV4ID4gLmNvbC1zbS04LFxcbiAgLmZsZXggPiAuY29sLXNtLTksXFxuICAuZmxleCA+IC5jb2wtc20tMTAsXFxuICAuZmxleCA+IC5jb2wtc20tMTEsXFxuICAuZmxleCA+IC5jb2wtc20tMTIge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgbWluLXdpZHRoOiAwO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbSxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLWF1dG8sXFxuICAuY29sdW1uID4gLmNvbC1zbS1ncm93LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMCxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTEsXFxuICAuY29sdW1uID4gLmNvbC1zbS0yLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMyxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTQsXFxuICAuY29sdW1uID4gLmNvbC1zbS01LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNixcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTcsXFxuICAuY29sdW1uID4gLmNvbC1zbS04LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tOSxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMTEsXFxuICAuY29sdW1uID4gLmNvbC1zbS0xMixcXG4gIC5mbGV4ID4gLmNvbC1zbSxcXG4gIC5mbGV4ID4gLmNvbC1zbS1hdXRvLFxcbiAgLmZsZXggPiAuY29sLXNtLWdyb3csXFxuICAuZmxleCA+IC5jb2wtc20tMCxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xLFxcbiAgLmZsZXggPiAuY29sLXNtLTIsXFxuICAuZmxleCA+IC5jb2wtc20tMyxcXG4gIC5mbGV4ID4gLmNvbC1zbS00LFxcbiAgLmZsZXggPiAuY29sLXNtLTUsXFxuICAuZmxleCA+IC5jb2wtc20tNixcXG4gIC5mbGV4ID4gLmNvbC1zbS03LFxcbiAgLmZsZXggPiAuY29sLXNtLTgsXFxuICAuZmxleCA+IC5jb2wtc20tOSxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xMCxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xMSxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgbWluLWhlaWdodDogMDtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gIH1cXG4gIC5jb2wtc20ge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxMDAwMDtcXG4gICAgICAgIC1tcy1mbGV4OiAxMDAwMCAxIDAlO1xcbiAgICAgICAgICAgIGZsZXg6IDEwMDAwIDEgMCU7XFxuICB9XFxuICAuY29sLXNtLWF1dG8sXFxuICAuY29sLXNtLTAsXFxuICAuY29sLXNtLTEsXFxuICAuY29sLXNtLTIsXFxuICAuY29sLXNtLTMsXFxuICAuY29sLXNtLTQsXFxuICAuY29sLXNtLTUsXFxuICAuY29sLXNtLTYsXFxuICAuY29sLXNtLTcsXFxuICAuY29sLXNtLTgsXFxuICAuY29sLXNtLTksXFxuICAuY29sLXNtLTEwLFxcbiAgLmNvbC1zbS0xMSxcXG4gIC5jb2wtc20tMTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgfVxcbiAgLmNvbC1zbS1ncm93IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0wIHtcXG4gICAgaGVpZ2h0OiAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0xIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTEge1xcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTEge1xcbiAgICBoZWlnaHQ6IDguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDE2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTIge1xcbiAgICBoZWlnaHQ6IDE2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTMge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAyNSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTMge1xcbiAgICBoZWlnaHQ6IDI1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS00IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMzMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNCB7XFxuICAgIGhlaWdodDogMzMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tNSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDQxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTUge1xcbiAgICBoZWlnaHQ6IDQxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTYge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS02IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTYge1xcbiAgICBoZWlnaHQ6IDUwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS03IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS03IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNyB7XFxuICAgIGhlaWdodDogNTguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tOCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDY2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTgge1xcbiAgICBoZWlnaHQ6IDY2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTkge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA3NSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS05IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTkge1xcbiAgICBoZWlnaHQ6IDc1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0xMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tMTAge1xcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0xMCB7XFxuICAgIGhlaWdodDogODMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA5MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTExIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMTEge1xcbiAgICBoZWlnaHQ6IDkxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTEyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0xMiB7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLnJvdyA+IC5jb2wtbWQsXFxuICAucm93ID4gLmNvbC1tZC1hdXRvLFxcbiAgLnJvdyA+IC5jb2wtbWQtZ3JvdyxcXG4gIC5yb3cgPiAuY29sLW1kLTAsXFxuICAucm93ID4gLmNvbC1tZC0xLFxcbiAgLnJvdyA+IC5jb2wtbWQtMixcXG4gIC5yb3cgPiAuY29sLW1kLTMsXFxuICAucm93ID4gLmNvbC1tZC00LFxcbiAgLnJvdyA+IC5jb2wtbWQtNSxcXG4gIC5yb3cgPiAuY29sLW1kLTYsXFxuICAucm93ID4gLmNvbC1tZC03LFxcbiAgLnJvdyA+IC5jb2wtbWQtOCxcXG4gIC5yb3cgPiAuY29sLW1kLTksXFxuICAucm93ID4gLmNvbC1tZC0xMCxcXG4gIC5yb3cgPiAuY29sLW1kLTExLFxcbiAgLnJvdyA+IC5jb2wtbWQtMTIsXFxuICAuZmxleCA+IC5jb2wtbWQsXFxuICAuZmxleCA+IC5jb2wtbWQtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1tZC1ncm93LFxcbiAgLmZsZXggPiAuY29sLW1kLTAsXFxuICAuZmxleCA+IC5jb2wtbWQtMSxcXG4gIC5mbGV4ID4gLmNvbC1tZC0yLFxcbiAgLmZsZXggPiAuY29sLW1kLTMsXFxuICAuZmxleCA+IC5jb2wtbWQtNCxcXG4gIC5mbGV4ID4gLmNvbC1tZC01LFxcbiAgLmZsZXggPiAuY29sLW1kLTYsXFxuICAuZmxleCA+IC5jb2wtbWQtNyxcXG4gIC5mbGV4ID4gLmNvbC1tZC04LFxcbiAgLmZsZXggPiAuY29sLW1kLTksXFxuICAuZmxleCA+IC5jb2wtbWQtMTAsXFxuICAuZmxleCA+IC5jb2wtbWQtMTEsXFxuICAuZmxleCA+IC5jb2wtbWQtMTIge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgbWluLXdpZHRoOiAwO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZCxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLWF1dG8sXFxuICAuY29sdW1uID4gLmNvbC1tZC1ncm93LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMCxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTEsXFxuICAuY29sdW1uID4gLmNvbC1tZC0yLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMyxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTQsXFxuICAuY29sdW1uID4gLmNvbC1tZC01LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNixcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTcsXFxuICAuY29sdW1uID4gLmNvbC1tZC04LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtOSxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMTEsXFxuICAuY29sdW1uID4gLmNvbC1tZC0xMixcXG4gIC5mbGV4ID4gLmNvbC1tZCxcXG4gIC5mbGV4ID4gLmNvbC1tZC1hdXRvLFxcbiAgLmZsZXggPiAuY29sLW1kLWdyb3csXFxuICAuZmxleCA+IC5jb2wtbWQtMCxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xLFxcbiAgLmZsZXggPiAuY29sLW1kLTIsXFxuICAuZmxleCA+IC5jb2wtbWQtMyxcXG4gIC5mbGV4ID4gLmNvbC1tZC00LFxcbiAgLmZsZXggPiAuY29sLW1kLTUsXFxuICAuZmxleCA+IC5jb2wtbWQtNixcXG4gIC5mbGV4ID4gLmNvbC1tZC03LFxcbiAgLmZsZXggPiAuY29sLW1kLTgsXFxuICAuZmxleCA+IC5jb2wtbWQtOSxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xMCxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xMSxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgbWluLWhlaWdodDogMDtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gIH1cXG4gIC5jb2wtbWQge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxMDAwMDtcXG4gICAgICAgIC1tcy1mbGV4OiAxMDAwMCAxIDAlO1xcbiAgICAgICAgICAgIGZsZXg6IDEwMDAwIDEgMCU7XFxuICB9XFxuICAuY29sLW1kLWF1dG8sXFxuICAuY29sLW1kLTAsXFxuICAuY29sLW1kLTEsXFxuICAuY29sLW1kLTIsXFxuICAuY29sLW1kLTMsXFxuICAuY29sLW1kLTQsXFxuICAuY29sLW1kLTUsXFxuICAuY29sLW1kLTYsXFxuICAuY29sLW1kLTcsXFxuICAuY29sLW1kLTgsXFxuICAuY29sLW1kLTksXFxuICAuY29sLW1kLTEwLFxcbiAgLmNvbC1tZC0xMSxcXG4gIC5jb2wtbWQtMTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgfVxcbiAgLmNvbC1tZC1ncm93IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0wIHtcXG4gICAgaGVpZ2h0OiAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0xIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTEge1xcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTEge1xcbiAgICBoZWlnaHQ6IDguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDE2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTIge1xcbiAgICBoZWlnaHQ6IDE2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTMge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAyNSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTMge1xcbiAgICBoZWlnaHQ6IDI1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC00IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMzMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNCB7XFxuICAgIGhlaWdodDogMzMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtNSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDQxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTUge1xcbiAgICBoZWlnaHQ6IDQxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTYge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC02IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTYge1xcbiAgICBoZWlnaHQ6IDUwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC03IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC03IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNyB7XFxuICAgIGhlaWdodDogNTguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtOCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDY2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTgge1xcbiAgICBoZWlnaHQ6IDY2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTkge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA3NSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC05IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTkge1xcbiAgICBoZWlnaHQ6IDc1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0xMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtMTAge1xcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0xMCB7XFxuICAgIGhlaWdodDogODMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA5MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTExIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMTEge1xcbiAgICBoZWlnaHQ6IDkxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTEyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0xMiB7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgLnJvdyA+IC5jb2wtbGcsXFxuICAucm93ID4gLmNvbC1sZy1hdXRvLFxcbiAgLnJvdyA+IC5jb2wtbGctZ3JvdyxcXG4gIC5yb3cgPiAuY29sLWxnLTAsXFxuICAucm93ID4gLmNvbC1sZy0xLFxcbiAgLnJvdyA+IC5jb2wtbGctMixcXG4gIC5yb3cgPiAuY29sLWxnLTMsXFxuICAucm93ID4gLmNvbC1sZy00LFxcbiAgLnJvdyA+IC5jb2wtbGctNSxcXG4gIC5yb3cgPiAuY29sLWxnLTYsXFxuICAucm93ID4gLmNvbC1sZy03LFxcbiAgLnJvdyA+IC5jb2wtbGctOCxcXG4gIC5yb3cgPiAuY29sLWxnLTksXFxuICAucm93ID4gLmNvbC1sZy0xMCxcXG4gIC5yb3cgPiAuY29sLWxnLTExLFxcbiAgLnJvdyA+IC5jb2wtbGctMTIsXFxuICAuZmxleCA+IC5jb2wtbGcsXFxuICAuZmxleCA+IC5jb2wtbGctYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1sZy1ncm93LFxcbiAgLmZsZXggPiAuY29sLWxnLTAsXFxuICAuZmxleCA+IC5jb2wtbGctMSxcXG4gIC5mbGV4ID4gLmNvbC1sZy0yLFxcbiAgLmZsZXggPiAuY29sLWxnLTMsXFxuICAuZmxleCA+IC5jb2wtbGctNCxcXG4gIC5mbGV4ID4gLmNvbC1sZy01LFxcbiAgLmZsZXggPiAuY29sLWxnLTYsXFxuICAuZmxleCA+IC5jb2wtbGctNyxcXG4gIC5mbGV4ID4gLmNvbC1sZy04LFxcbiAgLmZsZXggPiAuY29sLWxnLTksXFxuICAuZmxleCA+IC5jb2wtbGctMTAsXFxuICAuZmxleCA+IC5jb2wtbGctMTEsXFxuICAuZmxleCA+IC5jb2wtbGctMTIge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgbWluLXdpZHRoOiAwO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZyxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLWF1dG8sXFxuICAuY29sdW1uID4gLmNvbC1sZy1ncm93LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMCxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTEsXFxuICAuY29sdW1uID4gLmNvbC1sZy0yLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMyxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTQsXFxuICAuY29sdW1uID4gLmNvbC1sZy01LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNixcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTcsXFxuICAuY29sdW1uID4gLmNvbC1sZy04LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctOSxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMTEsXFxuICAuY29sdW1uID4gLmNvbC1sZy0xMixcXG4gIC5mbGV4ID4gLmNvbC1sZyxcXG4gIC5mbGV4ID4gLmNvbC1sZy1hdXRvLFxcbiAgLmZsZXggPiAuY29sLWxnLWdyb3csXFxuICAuZmxleCA+IC5jb2wtbGctMCxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xLFxcbiAgLmZsZXggPiAuY29sLWxnLTIsXFxuICAuZmxleCA+IC5jb2wtbGctMyxcXG4gIC5mbGV4ID4gLmNvbC1sZy00LFxcbiAgLmZsZXggPiAuY29sLWxnLTUsXFxuICAuZmxleCA+IC5jb2wtbGctNixcXG4gIC5mbGV4ID4gLmNvbC1sZy03LFxcbiAgLmZsZXggPiAuY29sLWxnLTgsXFxuICAuZmxleCA+IC5jb2wtbGctOSxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xMCxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xMSxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgbWluLWhlaWdodDogMDtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gIH1cXG4gIC5jb2wtbGcge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxMDAwMDtcXG4gICAgICAgIC1tcy1mbGV4OiAxMDAwMCAxIDAlO1xcbiAgICAgICAgICAgIGZsZXg6IDEwMDAwIDEgMCU7XFxuICB9XFxuICAuY29sLWxnLWF1dG8sXFxuICAuY29sLWxnLTAsXFxuICAuY29sLWxnLTEsXFxuICAuY29sLWxnLTIsXFxuICAuY29sLWxnLTMsXFxuICAuY29sLWxnLTQsXFxuICAuY29sLWxnLTUsXFxuICAuY29sLWxnLTYsXFxuICAuY29sLWxnLTcsXFxuICAuY29sLWxnLTgsXFxuICAuY29sLWxnLTksXFxuICAuY29sLWxnLTEwLFxcbiAgLmNvbC1sZy0xMSxcXG4gIC5jb2wtbGctMTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgfVxcbiAgLmNvbC1sZy1ncm93IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0wIHtcXG4gICAgaGVpZ2h0OiAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0xIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTEge1xcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTEge1xcbiAgICBoZWlnaHQ6IDguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDE2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTIge1xcbiAgICBoZWlnaHQ6IDE2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTMge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAyNSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTMge1xcbiAgICBoZWlnaHQ6IDI1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy00IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMzMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNCB7XFxuICAgIGhlaWdodDogMzMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctNSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDQxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTUge1xcbiAgICBoZWlnaHQ6IDQxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTYge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy02IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTYge1xcbiAgICBoZWlnaHQ6IDUwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy03IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy03IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNyB7XFxuICAgIGhlaWdodDogNTguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctOCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDY2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTgge1xcbiAgICBoZWlnaHQ6IDY2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTkge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA3NSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy05IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTkge1xcbiAgICBoZWlnaHQ6IDc1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0xMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctMTAge1xcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0xMCB7XFxuICAgIGhlaWdodDogODMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA5MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTExIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMTEge1xcbiAgICBoZWlnaHQ6IDkxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTEyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0xMiB7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gIC5yb3cgPiAuY29sLXhsLFxcbiAgLnJvdyA+IC5jb2wteGwtYXV0byxcXG4gIC5yb3cgPiAuY29sLXhsLWdyb3csXFxuICAucm93ID4gLmNvbC14bC0wLFxcbiAgLnJvdyA+IC5jb2wteGwtMSxcXG4gIC5yb3cgPiAuY29sLXhsLTIsXFxuICAucm93ID4gLmNvbC14bC0zLFxcbiAgLnJvdyA+IC5jb2wteGwtNCxcXG4gIC5yb3cgPiAuY29sLXhsLTUsXFxuICAucm93ID4gLmNvbC14bC02LFxcbiAgLnJvdyA+IC5jb2wteGwtNyxcXG4gIC5yb3cgPiAuY29sLXhsLTgsXFxuICAucm93ID4gLmNvbC14bC05LFxcbiAgLnJvdyA+IC5jb2wteGwtMTAsXFxuICAucm93ID4gLmNvbC14bC0xMSxcXG4gIC5yb3cgPiAuY29sLXhsLTEyLFxcbiAgLmZsZXggPiAuY29sLXhsLFxcbiAgLmZsZXggPiAuY29sLXhsLWF1dG8sXFxuICAuZmxleCA+IC5jb2wteGwtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC14bC0wLFxcbiAgLmZsZXggPiAuY29sLXhsLTEsXFxuICAuZmxleCA+IC5jb2wteGwtMixcXG4gIC5mbGV4ID4gLmNvbC14bC0zLFxcbiAgLmZsZXggPiAuY29sLXhsLTQsXFxuICAuZmxleCA+IC5jb2wteGwtNSxcXG4gIC5mbGV4ID4gLmNvbC14bC02LFxcbiAgLmZsZXggPiAuY29sLXhsLTcsXFxuICAuZmxleCA+IC5jb2wteGwtOCxcXG4gIC5mbGV4ID4gLmNvbC14bC05LFxcbiAgLmZsZXggPiAuY29sLXhsLTEwLFxcbiAgLmZsZXggPiAuY29sLXhsLTExLFxcbiAgLmZsZXggPiAuY29sLXhsLTEyIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIG1pbi13aWR0aDogMDtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwsXFxuICAuY29sdW1uID4gLmNvbC14bC1hdXRvLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTAsXFxuICAuY29sdW1uID4gLmNvbC14bC0xLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMixcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTMsXFxuICAuY29sdW1uID4gLmNvbC14bC00LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNSxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTYsXFxuICAuY29sdW1uID4gLmNvbC14bC03LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtOCxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTksXFxuICAuY29sdW1uID4gLmNvbC14bC0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMTIsXFxuICAuZmxleCA+IC5jb2wteGwsXFxuICAuZmxleCA+IC5jb2wteGwtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC14bC1ncm93LFxcbiAgLmZsZXggPiAuY29sLXhsLTAsXFxuICAuZmxleCA+IC5jb2wteGwtMSxcXG4gIC5mbGV4ID4gLmNvbC14bC0yLFxcbiAgLmZsZXggPiAuY29sLXhsLTMsXFxuICAuZmxleCA+IC5jb2wteGwtNCxcXG4gIC5mbGV4ID4gLmNvbC14bC01LFxcbiAgLmZsZXggPiAuY29sLXhsLTYsXFxuICAuZmxleCA+IC5jb2wteGwtNyxcXG4gIC5mbGV4ID4gLmNvbC14bC04LFxcbiAgLmZsZXggPiAuY29sLXhsLTksXFxuICAuZmxleCA+IC5jb2wteGwtMTAsXFxuICAuZmxleCA+IC5jb2wteGwtMTEsXFxuICAuZmxleCA+IC5jb2wteGwtMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG1pbi1oZWlnaHQ6IDA7XFxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxuICB9XFxuICAuY29sLXhsIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDA7XFxuICAgICAgICAtbXMtZmxleDogMTAwMDAgMSAwJTtcXG4gICAgICAgICAgICBmbGV4OiAxMDAwMCAxIDAlO1xcbiAgfVxcbiAgLmNvbC14bC1hdXRvLFxcbiAgLmNvbC14bC0wLFxcbiAgLmNvbC14bC0xLFxcbiAgLmNvbC14bC0yLFxcbiAgLmNvbC14bC0zLFxcbiAgLmNvbC14bC00LFxcbiAgLmNvbC14bC01LFxcbiAgLmNvbC14bC02LFxcbiAgLmNvbC14bC03LFxcbiAgLmNvbC14bC04LFxcbiAgLmNvbC14bC05LFxcbiAgLmNvbC14bC0xMCxcXG4gIC5jb2wteGwtMTEsXFxuICAuY29sLXhsLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gIH1cXG4gIC5jb2wteGwtZ3JvdyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0wIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMCB7XFxuICAgIGhlaWdodDogMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0xIHtcXG4gICAgaGVpZ2h0OiA4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxNi42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0yIHtcXG4gICAgaGVpZ2h0OiAxNi42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0zIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMjUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0zIHtcXG4gICAgaGVpZ2h0OiAyNSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtNCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTQge1xcbiAgICBoZWlnaHQ6IDMzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTUge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA0MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTUge1xcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC01IHtcXG4gICAgaGVpZ2h0OiA0MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC02IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtNiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC02IHtcXG4gICAgaGVpZ2h0OiA1MCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtNyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtNyB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTcge1xcbiAgICBoZWlnaHQ6IDU4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTgge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTgge1xcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC04IHtcXG4gICAgaGVpZ2h0OiA2Ni42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC05IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNzUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtOSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC05IHtcXG4gICAgaGVpZ2h0OiA3NSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4My4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMTAge1xcbiAgICBoZWlnaHQ6IDgzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTExIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOTEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTExIHtcXG4gICAgaGVpZ2h0OiA5MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0xMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMTIge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbn1cXG4uYmFja2Ryb3Age1xcbiAgZGlzcGxheTogbm9uZTtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDB2dztcXG4gIGhlaWdodDogMTAwdmg7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjI4cyBlYXNlLWluO1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjI4cyBlYXNlLWluO1xcbn1cXG4uYmFja2Ryb3AuYWN0aXZlIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjMpO1xcbn1cXG4ucm91bmQtYm9yZGVycyB7XFxuICBib3JkZXItcmFkaXVzOiAzcHggIWltcG9ydGFudDtcXG59XFxuLmdlbmVyaWMtbWFyZ2luLFxcbi5ncm91cCA+ICoge1xcbiAgbWFyZ2luOiA1cHg7XFxufVxcbi5uby10cmFuc2l0aW9uIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xcbiAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4udHJhbnNpdGlvbi0wIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMHMgIWltcG9ydGFudDtcXG4gIHRyYW5zaXRpb246IDBzICFpbXBvcnRhbnQ7XFxufVxcbi5nbG9zc3kge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2JhKDI1NSwyNTUsMjU1LDAuMykpLCBjb2xvci1zdG9wKDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwKSksIGNvbG9yLXN0b3AoNTElLCByZ2JhKDAsMCwwLDAuMTIpKSwgdG8ocmdiYSgwLDAsMCwwLjA0KSkpICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwyNTUsMjU1LDAuMyksIHJnYmEoMjU1LDI1NSwyNTUsMCkgNTAlLCByZ2JhKDAsMCwwLDAuMTIpIDUxJSwgcmdiYSgwLDAsMCwwLjA0KSkgIWltcG9ydGFudDtcXG59XFxuLnEtcGxhY2Vob2xkZXI6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLXBsYWNlaG9sZGVyOjotbW96LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS1wbGFjZWhvbGRlcjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLWJvZHktZnVsbHNjcmVlbi1taXhpbixcXG4ucS1ib2R5LXByZXZlbnQtc2Nyb2xsIHtcXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcXG59XFxuLnEtbm8taW5wdXQtc3Bpbm5lciB7XFxuICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZCAhaW1wb3J0YW50O1xcbn1cXG4ucS1uby1pbnB1dC1zcGlubmVyOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxcbi5xLW5vLWlucHV0LXNwaW5uZXI6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbiAgbWFyZ2luOiAwO1xcbn1cXG5hLnEtbGluayB7XFxuICBvdXRsaW5lOiAwO1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxufVxcbi5xLXNlbGVjdC1oaWdobGlnaHQge1xcbiAgYmFja2dyb3VuZDogcmdiYSgxODksMTg5LDE4OSwwLjUpICFpbXBvcnRhbnQ7XFxufVxcbi5oaWdobGlnaHQtYW5kLWZhZGUge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtaGlnaGxpZ2h0IDJzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1oaWdobGlnaHQgMnMgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnRyYW5zaXRpb24tZ2VuZXJpYyB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XFxufVxcbi5hbmltYXRlLXNwaW4sXFxuLmFuaW1hdGUtc3Bpbi1yZXZlcnNlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1zcGluIDJzIGluZmluaXRlIGxpbmVhciAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1zcGluLXJldmVyc2Uge1xcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTtcXG59XFxuLmFuaW1hdGUtYmxpbmsge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtYmxpbmsgMXMgc3RlcHMoNSwgc3RhcnQpIGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1ibGluayAxcyBzdGVwcyg1LCBzdGFydCkgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtcG9wIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXBvcCAwLjJzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wb3AgMC4ycyAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1zY2FsZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1zY2FsZSAwLjJzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1zY2FsZSAwLjJzIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLWZhZGUge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtZmFkZSAwLjJzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1mYWRlIDAuMnMgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtYm91bmNlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWJvdW5jZSAycyBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtYm91bmNlIDJzIGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLXNoYWtlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXNoYWtlIDAuMTVzO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtc2hha2UgMC4xNXM7XFxuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO1xcbiAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtcXG59XFxuLmFuaW1hdGUtcG9wdXAtdXAsXFxuLmFuaW1hdGUtcG9wdXAtZG93biB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbn1cXG4uYW5pbWF0ZS1wb3B1cC11cCA+ICosXFxuLmFuaW1hdGUtcG9wdXAtZG93biA+ICoge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtZmFkZSAwLjgycyBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWZhZGUgMC44MnMgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44Nik7XFxufVxcbi5hbmltYXRlLXBvcHVwLWRvd24ge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcG9wdXAtZG93biAwLjM2cyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcG9wdXAtZG93biAwLjM2cyAvKiBydGw6aWdub3JlICovO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcCAwcHggLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3AgMHB4IC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLXBvcHVwLXVwIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXBvcHVwLXVwIDAuMzZzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wb3B1cC11cCAwLjM2cyAvKiBydGw6aWdub3JlICovO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbSAwcHggLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b20gMHB4IC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLWZhZGUtbGVmdCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1mYWRlIDAuMzZzIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpLCBxLXNsaWRlLWxlZnQgMC4zNnMgZWFzZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWZhZGUgMC4zNnMgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiksIHEtc2xpZGUtbGVmdCAwLjM2cyBlYXNlO1xcbn1cXG4uYW5pbWF0ZS1mYWRlLXJpZ2h0IHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWZhZGUgMC4zNnMgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiksIHEtc2xpZGUtcmlnaHQgMC4zNnMgZWFzZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWZhZGUgMC4zNnMgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiksIHEtc2xpZGUtcmlnaHQgMC4zNnMgZWFzZTtcXG59XFxuLmFuaW1hdGVkIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcXG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcXG4gICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcXG59XFxuLmFuaW1hdGVkLmluZmluaXRlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XFxuICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xcbn1cXG4uYW5pbWF0ZWQuaGluZ2Uge1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDJzO1xcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xcbn1cXG4uYW5pbWF0ZWQuZmxpcE91dFgsXFxuLmFuaW1hdGVkLmZsaXBPdXRZLFxcbi5hbmltYXRlZC5ib3VuY2VJbixcXG4uYW5pbWF0ZWQuYm91bmNlT3V0IHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjc1cztcXG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjc1cztcXG59XFxuLm5vbi1zZWxlY3RhYmxlIHtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLnNjcm9sbCB7XFxuICBvdmVyZmxvdzogYXV0bztcXG59XFxuLnNjcm9sbCxcXG4uc2Nyb2xsLXgsXFxuLnNjcm9sbC15IHtcXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG4gIHdpbGwtY2hhbmdlOiBzY3JvbGwtcG9zaXRpb247XFxufVxcbi5zY3JvbGwteCB7XFxuICBvdmVyZmxvdy14OiBhdXRvO1xcbn1cXG4uc2Nyb2xsLXkge1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG59XFxuLm5vLXNjcm9sbCB7XFxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XFxufVxcbi5uby1wb2ludGVyLWV2ZW50cyB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4uYWxsLXBvaW50ZXItZXZlbnRzIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBhbGwgIWltcG9ydGFudDtcXG59XFxuLmN1cnNvci1wb2ludGVyIHtcXG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xcbn1cXG4uY3Vyc29yLW5vdC1hbGxvd2VkIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcXG59XFxuLmN1cnNvci1pbmhlcml0IHtcXG4gIGN1cnNvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xcbn1cXG4ucm90YXRlLTQ1IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTkwIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTEzNSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTE4MCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTIwNSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDIwNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjA1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTI3MCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTMxNSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDMxNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzE1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uZmxpcC1ob3Jpem9udGFsIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xcbn1cXG4uZmxpcC12ZXJ0aWNhbCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcXG59XFxuLmZsb2F0LWxlZnQge1xcbiAgZmxvYXQ6IGxlZnQ7XFxufVxcbi5mbG9hdC1yaWdodCB7XFxuICBmbG9hdDogcmlnaHQ7XFxufVxcbi5yZWxhdGl2ZS1wb3NpdGlvbiB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5maXhlZCxcXG4uZnVsbHNjcmVlbixcXG4uZml4ZWQtY2VudGVyLFxcbi5maXhlZC1ib3R0b20sXFxuLmZpeGVkLWxlZnQsXFxuLmZpeGVkLXJpZ2h0LFxcbi5maXhlZC10b3AsXFxuLmZpeGVkLXRvcC1sZWZ0LFxcbi5maXhlZC10b3AtcmlnaHQsXFxuLmZpeGVkLWJvdHRvbS1sZWZ0LFxcbi5maXhlZC1ib3R0b20tcmlnaHQge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbn1cXG4uYWJzb2x1dGUsXFxuLmFic29sdXRlLWZ1bGwsXFxuLmFic29sdXRlLWNlbnRlcixcXG4uYWJzb2x1dGUtYm90dG9tLFxcbi5hYnNvbHV0ZS1sZWZ0LFxcbi5hYnNvbHV0ZS1yaWdodCxcXG4uYWJzb2x1dGUtdG9wLFxcbi5hYnNvbHV0ZS10b3AtbGVmdCxcXG4uYWJzb2x1dGUtdG9wLXJpZ2h0LFxcbi5hYnNvbHV0ZS1ib3R0b20tbGVmdCxcXG4uYWJzb2x1dGUtYm90dG9tLXJpZ2h0IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLmZpeGVkLXRvcCxcXG4uYWJzb2x1dGUtdG9wIHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLmZpeGVkLXJpZ2h0LFxcbi5hYnNvbHV0ZS1yaWdodCB7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG59XFxuLmZpeGVkLWJvdHRvbSxcXG4uYWJzb2x1dGUtYm90dG9tIHtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuLmZpeGVkLWxlZnQsXFxuLmFic29sdXRlLWxlZnQge1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuLmZpeGVkLXRvcC1sZWZ0LFxcbi5hYnNvbHV0ZS10b3AtbGVmdCB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbn1cXG4uZml4ZWQtdG9wLXJpZ2h0LFxcbi5hYnNvbHV0ZS10b3AtcmlnaHQge1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxufVxcbi5maXhlZC1ib3R0b20tbGVmdCxcXG4uYWJzb2x1dGUtYm90dG9tLWxlZnQge1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuLmZpeGVkLWJvdHRvbS1yaWdodCxcXG4uYWJzb2x1dGUtYm90dG9tLXJpZ2h0IHtcXG4gIGJvdHRvbTogMDtcXG4gIHJpZ2h0OiAwO1xcbn1cXG4uZnVsbHNjcmVlbiB7XFxuICB6LWluZGV4OiA2MDAwO1xcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xcbiAgbWF4LXdpZHRoOiAxMDB2dztcXG4gIG1heC1oZWlnaHQ6IDEwMHZoO1xcbn1cXG4uYWJzb2x1dGUtZnVsbCxcXG4uZnVsbHNjcmVlbiB7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5maXhlZC1jZW50ZXIsXFxuLmFic29sdXRlLWNlbnRlciB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbn1cXG4udmVydGljYWwtdG9wIHtcXG4gIHZlcnRpY2FsLWFsaWduOiB0b3AgIWltcG9ydGFudDtcXG59XFxuLnZlcnRpY2FsLW1pZGRsZSB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XFxufVxcbi52ZXJ0aWNhbC1ib3R0b20ge1xcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbSAhaW1wb3J0YW50O1xcbn1cXG4ub24tbGVmdCB7XFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XFxufVxcbi5vbi1yaWdodCB7XFxuICBtYXJnaW4tbGVmdDogMTJweDtcXG59XFxuLnEtcmlwcGxlLWNvbnRhaW5lciB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgei1pbmRleDogMDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS1yaXBwbGUtYW5pbWF0aW9uIHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG4gIG9wYWNpdHk6IDA7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBvcGFjaXR5IGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjEpLCAwLjNzIC13ZWJraXQtdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjkpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBvcGFjaXR5IGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjEpLCAwLjNzIC13ZWJraXQtdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjkpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyB0cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuOSksIDAuM3Mgb3BhY2l0eSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC4xKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjkpLCAwLjNzIG9wYWNpdHkgY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuMSksIDAuM3MgLXdlYmtpdC10cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuOSk7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xcbn1cXG4ucS1yaXBwbGUtYW5pbWF0aW9uLWVudGVyIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZTtcXG4gIHRyYW5zaXRpb246IG5vbmU7XFxufVxcbi5xLXJpcHBsZS1hbmltYXRpb24tdmlzaWJsZSB7XFxuICBvcGFjaXR5OiAwLjE1O1xcbn1cXG4ucS1yYWRpYWwtcmlwcGxlIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogLTUwJTtcXG4gIGxlZnQ6IC01MCU7XFxuICB3aWR0aDogMjAwJTtcXG4gIGhlaWdodDogMjAwJTtcXG59XFxuLnEtcmFkaWFsLXJpcHBsZTphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgY3VycmVudENvbG9yIDEwJSwgdHJhbnNwYXJlbnQgMTAuMDElKTtcXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMTAsIDEwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxMCwgMTApO1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAxcywgLXdlYmtpdC10cmFuc2Zvcm0gMC41cztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXM7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cywgb3BhY2l0eSAxcztcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzLCBvcGFjaXR5IDFzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjVzO1xcbn1cXG4ucS1yYWRpYWwtcmlwcGxlLmFjdGl2ZTphZnRlciB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCwgMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCwgMCk7XFxuICBvcGFjaXR5OiAwLjQ7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDBzO1xcbiAgdHJhbnNpdGlvbjogMHM7XFxufVxcbjpyb290IHtcXG4gIC0tcS1zaXplLXhzOiAwO1xcbiAgLS1xLXNpemUtc206IDU3NnB4O1xcbiAgLS1xLXNpemUtbWQ6IDc2OHB4O1xcbiAgLS1xLXNpemUtbGc6IDk5MnB4O1xcbiAgLS1xLXNpemUteGw6IDEyMDBweDtcXG59XFxuLmZpdCB7XFxuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XFxufVxcbi5mdWxsLWhlaWdodCB7XFxuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcXG59XFxuLmZ1bGwtd2lkdGgge1xcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcXG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcXG59XFxuLndpbmRvdy1oZWlnaHQge1xcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xcbiAgaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xcbn1cXG4ud2luZG93LXdpZHRoIHtcXG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcXG4gIHdpZHRoOiAxMDB2dyAhaW1wb3J0YW50O1xcbn1cXG4uYmxvY2sge1xcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcXG59XFxuLmlubGluZS1ibG9jayB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcXG59XFxuLnEtcGEtbm9uZSB7XFxuICBwYWRkaW5nOiAwIDA7XFxufVxcbi5xLXBsLW5vbmUsXFxuLnEtcHgtbm9uZSB7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxufVxcbi5xLXByLW5vbmUsXFxuLnEtcHgtbm9uZSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAwO1xcbn1cXG4ucS1wdC1ub25lLFxcbi5xLXB5LW5vbmUge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5xLXBiLW5vbmUsXFxuLnEtcHktbm9uZSB7XFxuICBwYWRkaW5nLWJvdHRvbTogMDtcXG59XFxuLnEtbWEtbm9uZSB7XFxuICBtYXJnaW46IDAgMDtcXG59XFxuLnEtbWwtbm9uZSxcXG4ucS1teC1ub25lIHtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbn1cXG4ucS1tci1ub25lLFxcbi5xLW14LW5vbmUge1xcbiAgbWFyZ2luLXJpZ2h0OiAwO1xcbn1cXG4ucS1tdC1ub25lLFxcbi5xLW15LW5vbmUge1xcbiAgbWFyZ2luLXRvcDogMDtcXG59XFxuLnEtbWItbm9uZSxcXG4ucS1teS1ub25lIHtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxufVxcbi5xLXBhLXhzIHtcXG4gIHBhZGRpbmc6IDRweCA0cHg7XFxufVxcbi5xLXBsLXhzLFxcbi5xLXB4LXhzIHtcXG4gIHBhZGRpbmctbGVmdDogNHB4O1xcbn1cXG4ucS1wci14cyxcXG4ucS1weC14cyB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XFxufVxcbi5xLXB0LXhzLFxcbi5xLXB5LXhzIHtcXG4gIHBhZGRpbmctdG9wOiA0cHg7XFxufVxcbi5xLXBiLXhzLFxcbi5xLXB5LXhzIHtcXG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XFxufVxcbi5xLW1hLXhzIHtcXG4gIG1hcmdpbjogNHB4IDRweDtcXG59XFxuLnEtbWwteHMsXFxuLnEtbXgteHMge1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG59XFxuLnEtbXIteHMsXFxuLnEtbXgteHMge1xcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XFxufVxcbi5xLW10LXhzLFxcbi5xLW15LXhzIHtcXG4gIG1hcmdpbi10b3A6IDRweDtcXG59XFxuLnEtbWIteHMsXFxuLnEtbXkteHMge1xcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xcbn1cXG4ucS1wYS1zbSB7XFxuICBwYWRkaW5nOiA4cHggOHB4O1xcbn1cXG4ucS1wbC1zbSxcXG4ucS1weC1zbSB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuLnEtcHItc20sXFxuLnEtcHgtc20ge1xcbiAgcGFkZGluZy1yaWdodDogOHB4O1xcbn1cXG4ucS1wdC1zbSxcXG4ucS1weS1zbSB7XFxuICBwYWRkaW5nLXRvcDogOHB4O1xcbn1cXG4ucS1wYi1zbSxcXG4ucS1weS1zbSB7XFxuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xcbn1cXG4ucS1tYS1zbSB7XFxuICBtYXJnaW46IDhweCA4cHg7XFxufVxcbi5xLW1sLXNtLFxcbi5xLW14LXNtIHtcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxufVxcbi5xLW1yLXNtLFxcbi5xLW14LXNtIHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG4ucS1tdC1zbSxcXG4ucS1teS1zbSB7XFxuICBtYXJnaW4tdG9wOiA4cHg7XFxufVxcbi5xLW1iLXNtLFxcbi5xLW15LXNtIHtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuLnEtcGEtbWQge1xcbiAgcGFkZGluZzogMTZweCAxNnB4O1xcbn1cXG4ucS1wbC1tZCxcXG4ucS1weC1tZCB7XFxuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XFxufVxcbi5xLXByLW1kLFxcbi5xLXB4LW1kIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDE2cHg7XFxufVxcbi5xLXB0LW1kLFxcbi5xLXB5LW1kIHtcXG4gIHBhZGRpbmctdG9wOiAxNnB4O1xcbn1cXG4ucS1wYi1tZCxcXG4ucS1weS1tZCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMTZweDtcXG59XFxuLnEtbWEtbWQge1xcbiAgbWFyZ2luOiAxNnB4IDE2cHg7XFxufVxcbi5xLW1sLW1kLFxcbi5xLW14LW1kIHtcXG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xcbn1cXG4ucS1tci1tZCxcXG4ucS1teC1tZCB7XFxuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XFxufVxcbi5xLW10LW1kLFxcbi5xLW15LW1kIHtcXG4gIG1hcmdpbi10b3A6IDE2cHg7XFxufVxcbi5xLW1iLW1kLFxcbi5xLW15LW1kIHtcXG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XFxufVxcbi5xLXBhLWxnIHtcXG4gIHBhZGRpbmc6IDI0cHggMjRweDtcXG59XFxuLnEtcGwtbGcsXFxuLnEtcHgtbGcge1xcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xcbn1cXG4ucS1wci1sZyxcXG4ucS1weC1sZyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xcbn1cXG4ucS1wdC1sZyxcXG4ucS1weS1sZyB7XFxuICBwYWRkaW5nLXRvcDogMjRweDtcXG59XFxuLnEtcGItbGcsXFxuLnEtcHktbGcge1xcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XFxufVxcbi5xLW1hLWxnIHtcXG4gIG1hcmdpbjogMjRweCAyNHB4O1xcbn1cXG4ucS1tbC1sZyxcXG4ucS1teC1sZyB7XFxuICBtYXJnaW4tbGVmdDogMjRweDtcXG59XFxuLnEtbXItbGcsXFxuLnEtbXgtbGcge1xcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xcbn1cXG4ucS1tdC1sZyxcXG4ucS1teS1sZyB7XFxuICBtYXJnaW4tdG9wOiAyNHB4O1xcbn1cXG4ucS1tYi1sZyxcXG4ucS1teS1sZyB7XFxuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xcbn1cXG4ucS1wYS14bCB7XFxuICBwYWRkaW5nOiA0OHB4IDQ4cHg7XFxufVxcbi5xLXBsLXhsLFxcbi5xLXB4LXhsIHtcXG4gIHBhZGRpbmctbGVmdDogNDhweDtcXG59XFxuLnEtcHIteGwsXFxuLnEtcHgteGwge1xcbiAgcGFkZGluZy1yaWdodDogNDhweDtcXG59XFxuLnEtcHQteGwsXFxuLnEtcHkteGwge1xcbiAgcGFkZGluZy10b3A6IDQ4cHg7XFxufVxcbi5xLXBiLXhsLFxcbi5xLXB5LXhsIHtcXG4gIHBhZGRpbmctYm90dG9tOiA0OHB4O1xcbn1cXG4ucS1tYS14bCB7XFxuICBtYXJnaW46IDQ4cHggNDhweDtcXG59XFxuLnEtbWwteGwsXFxuLnEtbXgteGwge1xcbiAgbWFyZ2luLWxlZnQ6IDQ4cHg7XFxufVxcbi5xLW1yLXhsLFxcbi5xLW14LXhsIHtcXG4gIG1hcmdpbi1yaWdodDogNDhweDtcXG59XFxuLnEtbXQteGwsXFxuLnEtbXkteGwge1xcbiAgbWFyZ2luLXRvcDogNDhweDtcXG59XFxuLnEtbWIteGwsXFxuLnEtbXkteGwge1xcbiAgbWFyZ2luLWJvdHRvbTogNDhweDtcXG59XFxuLnEtbWwtYXV0byxcXG4ucS1teC1hdXRvIHtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbn1cXG4ucS1tci1hdXRvLFxcbi5xLW14LWF1dG8ge1xcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbn1cXG4ucS1teS1mb3JtIHtcXG4gIG1hcmdpbi10b3A6IDE2cHg7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxufVxcbi5xLXRvdWNoIHtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICB1c2VyLWRyYWc6IG5vbmU7XFxuICAta2h0bWwtdXNlci1kcmFnOiBub25lO1xcbiAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7XFxufVxcbi5xLXRvdWNoLXgge1xcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXg7XFxuICAgICAgdG91Y2gtYWN0aW9uOiBwYW4teDtcXG59XFxuLnEtdG91Y2gteSB7XFxuICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcXG4gICAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xcbn1cXG5ib2R5IHtcXG4gIG1pbi13aWR0aDogMTAwcHg7XFxuICBmb250LWZhbWlseTogJ1JvYm90bycsICctYXBwbGUtc3lzdGVtJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIGNvbG9yOiAjMGMwYzBjO1xcbiAgbWluLWhlaWdodDogMTAwdmg7XFxufVxcbmgxIHtcXG4gIGZvbnQtc2l6ZTogMTEycHg7XFxuICBmb250LXdlaWdodDogMzAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTI7XFxuICBsZXR0ZXItc3BhY2luZzogLTAuMDRlbTtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGgxIHtcXG4gICAgZm9udC1zaXplOiA2Ny4ycHg7XFxuICB9XFxufVxcbmgyIHtcXG4gIGZvbnQtc2l6ZTogNTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogMS4zNTtcXG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgaDIge1xcbiAgICBmb250LXNpemU6IDMzLjZweDtcXG4gIH1cXG59XFxuaDMge1xcbiAgZm9udC1zaXplOiA0NXB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGgzIHtcXG4gICAgZm9udC1zaXplOiAyN3B4O1xcbiAgfVxcbn1cXG5oNCB7XFxuICBmb250LXNpemU6IDM0cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgaDQge1xcbiAgICBmb250LXNpemU6IDIwLjRweDtcXG4gIH1cXG59XFxuaDUge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGg1IHtcXG4gICAgZm9udC1zaXplOiAxNC4zOTk5OTk5OTk5OTk5OTlweDtcXG4gIH1cXG59XFxuaDYge1xcbiAgZm9udC1zaXplOiAyMHB4O1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjEyO1xcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGg2IHtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgfVxcbn1cXG4ucS1kaXNwbGF5LTQtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjU0O1xcbn1cXG4ucS1kaXNwbGF5LTQge1xcbiAgZm9udC1zaXplOiAxMTJweDtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICBsaW5lLWhlaWdodDogMS4xMjtcXG4gIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xcbn1cXG4ucS1kaXNwbGF5LTMtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjU0O1xcbn1cXG4ucS1kaXNwbGF5LTMge1xcbiAgZm9udC1zaXplOiA1NnB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XFxufVxcbi5xLWRpc3BsYXktMi1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuNTQ7XFxufVxcbi5xLWRpc3BsYXktMiB7XFxuICBmb250LXNpemU6IDQ1cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbn1cXG4ucS1kaXNwbGF5LTEtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjU0O1xcbn1cXG4ucS1kaXNwbGF5LTEge1xcbiAgZm9udC1zaXplOiAzNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuLnEtaGVhZGxpbmUtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjg3O1xcbn1cXG4ucS1oZWFkbGluZSB7XFxuICBmb250LXNpemU6IDI0cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbn1cXG4ucS10aXRsZS1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuODc7XFxufVxcbi5xLXRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMjBweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBsaW5lLWhlaWdodDogMS4xMjtcXG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XFxufVxcbi5xLXN1YmhlYWRpbmctb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjg3O1xcbn1cXG4ucS1zdWJoZWFkaW5nIHtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxufVxcbi5xLWJvZHktMi1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuODc7XFxufVxcbi5xLWJvZHktMiB7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBmb250LXdlaWdodDogNTAwO1xcbn1cXG4ucS1ib2R5LTEtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjg3O1xcbn1cXG4ucS1ib2R5LTEge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG59XFxuLnEtY2FwdGlvbi1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuNTQ7XFxufVxcbi5xLWNhcHRpb24ge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG59XFxucCB7XFxuICBtYXJnaW46IDAgMCAxNnB4O1xcbn1cXG4uY2FwdGlvbiB7XFxuICBjb2xvcjogIzQyNDI0MjtcXG4gIGxldHRlci1zcGFjaW5nOiAwO1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICBwYWRkaW5nOiAwO1xcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXG59XFxuLnVwcGVyY2FzZSB7XFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbn1cXG4ubG93ZXJjYXNlIHtcXG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XFxufVxcbi5jYXBpdGFsaXplIHtcXG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xcbn1cXG4udGV4dC1jZW50ZXIge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4udGV4dC1sZWZ0IHtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVxcbi50ZXh0LXJpZ2h0IHtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG4udGV4dC1qdXN0aWZ5IHtcXG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XFxuICAtd2Via2l0LWh5cGhlbnM6IGF1dG87XFxuICAgICAgLW1zLWh5cGhlbnM6IGF1dG87XFxuICAgICAgICAgIGh5cGhlbnM6IGF1dG87XFxufVxcbi50ZXh0LWl0YWxpYyB7XFxuICBmb250LXN0eWxlOiBpdGFsaWM7XFxufVxcbi50ZXh0LWJvbGQge1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxufVxcbi50ZXh0LW5vLXdyYXAge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG59XFxuLnRleHQtd2VpZ2h0LXRoaW4ge1xcbiAgZm9udC13ZWlnaHQ6IDEwMDtcXG59XFxuLnRleHQtd2VpZ2h0LWxpZ2h0IHtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxufVxcbi50ZXh0LXdlaWdodC1yZWd1bGFyIHtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxufVxcbi50ZXh0LXdlaWdodC1tZWRpdW0ge1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG59XFxuLnRleHQtd2VpZ2h0LWJvbGQge1xcbiAgZm9udC13ZWlnaHQ6IDcwMDtcXG59XFxuLnRleHQtd2VpZ2h0LWJvbGRlciB7XFxuICBmb250LXdlaWdodDogOTAwO1xcbn1cXG5zbWFsbCB7XFxuICBmb250LXNpemU6IDgwJTtcXG59XFxuYmlnIHtcXG4gIGZvbnQtc2l6ZTogMTcwJTtcXG59XFxuc3ViIHtcXG4gIGJvdHRvbTogLTAuMjVlbTtcXG59XFxuc3VwIHtcXG4gIHRvcDogLTAuNWVtO1xcbn1cXG5ibG9ja3F1b3RlIHtcXG4gIHBhZGRpbmc6IDhweCAxNnB4O1xcbiAgbWFyZ2luOiAwO1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjMDI3YmUzO1xcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1xLWNvbG9yLXByaW1hcnkpO1xcbn1cXG5ibG9ja3F1b3RlLnRleHQtcmlnaHQge1xcbiAgcGFkZGluZy1yaWdodDogMTZweDtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG4gIGJvcmRlci1yaWdodDogNHB4IHNvbGlkICMwMjdiZTM7XFxuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB2YXIoLS1xLWNvbG9yLXByaW1hcnkpO1xcbiAgYm9yZGVyLWxlZnQ6IDA7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG59XFxuYmxvY2txdW90ZSBzbWFsbCB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XFxuICBjb2xvcjogIzc3NztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWZhZGVkKTtcXG59XFxuYmxvY2txdW90ZSBzbWFsbDpiZWZvcmUge1xcbiAgY29udGVudDogJ1xcXFwyMDE0IFxcXFwwMEEwJztcXG59XFxuLnF1b3RlIHtcXG4gIHBhZGRpbmc6IDEwcHggMjBweDtcXG4gIG1hcmdpbjogMCAwIDIwcHg7XFxuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICMwMjdiZTM7XFxuICBib3JkZXItbGVmdDogNXB4IHNvbGlkIHZhcigtLXEtY29sb3ItcHJpbWFyeSk7XFxufVxcbi5xdW90ZS50ZXh0LXJpZ2h0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxuICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCAjMDI3YmUzO1xcbiAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgdmFyKC0tcS1jb2xvci1wcmltYXJ5KTtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcbmR0IHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbn1cXG5kZCB7XFxuICBtYXJnaW4tbGVmdDogMDtcXG59XFxuZHQsXFxuZGQge1xcbiAgbGluZS1oZWlnaHQ6IDEuNDtcXG59XFxuZGwge1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XFxufVxcbmRsLmhvcml6b250YWwgZHQge1xcbiAgZmxvYXQ6IGxlZnQ7XFxuICB3aWR0aDogMjUlO1xcbiAgY2xlYXI6IGxlZnQ7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxufVxcbmRsLmhvcml6b250YWwgZGQge1xcbiAgbWFyZ2luLWxlZnQ6IDMwJTtcXG59XFxuaHIucS1ocixcXG5oci5xLWhyLWRhcmsge1xcbiAgaGVpZ2h0OiAxcHg7XFxuICBtaW4taGVpZ2h0OiAxcHg7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGJvcmRlcjogbm9uZTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuaHIucS1oci1kYXJrIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zNik7XFxufVxcbi5uby1tYXJnaW4ge1xcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5uby1wYWRkaW5nIHtcXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcXG59XFxuLm5vLWJvcmRlciB7XFxuICBib3JkZXI6IDAgIWltcG9ydGFudDtcXG59XFxuLm5vLWJvcmRlci1yYWRpdXMge1xcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xcbn1cXG4ubm8tYm94LXNoYWRvdyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4ubm8tb3V0bGluZSB7XFxuICBvdXRsaW5lOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5lbGxpcHNpcyB7XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4uZWxsaXBzaXMtMi1saW5lcyxcXG4uZWxsaXBzaXMtMy1saW5lcyB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbn1cXG4uZWxsaXBzaXMtMi1saW5lcyB7XFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XFxufVxcbi5lbGxpcHNpcy0zLWxpbmVzIHtcXG4gIC13ZWJraXQtbGluZS1jbGFtcDogMztcXG59XFxuLnJlYWRvbmx5IHtcXG4gIGN1cnNvcjogZGVmYXVsdCAhaW1wb3J0YW50O1xcbn1cXG4uZGlzYWJsZWQsXFxuW2Rpc2FibGVkXSxcXG4uZGlzYWJsZWQgKixcXG5bZGlzYWJsZWRdICoge1xcbiAgY3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50O1xcbn1cXG4uZGlzYWJsZWQsXFxuW2Rpc2FibGVkXSB7XFxuICBvcGFjaXR5OiAwLjYgIWltcG9ydGFudDtcXG59XFxuLmhpZGRlbiB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5pbnZpc2libGUge1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XFxufVxcbi50cmFuc3BhcmVudCB7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbn1cXG4ub3ZlcmZsb3ctYXV0byB7XFxuICBvdmVyZmxvdzogYXV0byAhaW1wb3J0YW50O1xcbn1cXG4ub3ZlcmZsb3ctaGlkZGVuIHtcXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcXG59XFxuLm92ZXJmbG93LWhpZGRlbi15IHtcXG4gIG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50O1xcbn1cXG4uZGltbWVkOmFmdGVyLFxcbi5saWdodC1kaW1tZWQ6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5kaW1tZWQ6YWZ0ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjQpICFpbXBvcnRhbnQ7XFxufVxcbi5saWdodC1kaW1tZWQ6YWZ0ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjYpICFpbXBvcnRhbnQ7XFxufVxcbi56LXRvcCB7XFxuICB6LWluZGV4OiA3MDAwICFpbXBvcnRhbnQ7XFxufVxcbi56LW1heCB7XFxuICB6LWluZGV4OiA5OTk4ICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5kZXNrdG9wKSAuZGVza3RvcC1vbmx5LFxcbmJvZHkuZGVza3RvcCAuZGVza3RvcC1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLm1vYmlsZSkgLm1vYmlsZS1vbmx5LFxcbmJvZHkubW9iaWxlIC5tb2JpbGUtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5jb3Jkb3ZhKSAuY29yZG92YS1vbmx5LFxcbmJvZHkuY29yZG92YSAuY29yZG92YS1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLmVsZWN0cm9uKSAuZWxlY3Ryb24tb25seSxcXG5ib2R5LmVsZWN0cm9uIC5lbGVjdHJvbi1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLmlvcykgLmlvcy1vbmx5LFxcbmJvZHkuaW9zIC5pb3MtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5tYXQpIC5tYXQtb25seSxcXG5ib2R5Lm1hdCAubWF0LWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCgudG91Y2gpIC50b3VjaC1vbmx5LFxcbmJvZHkudG91Y2ggLnRvdWNoLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCgud2l0aGluLWlmcmFtZSkgLndpdGhpbi1pZnJhbWUtb25seSxcXG5ib2R5LndpdGhpbi1pZnJhbWUgLndpdGhpbi1pZnJhbWUtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5wbGF0Zm9ybS1pb3MpIC5wbGF0Zm9ybS1pb3Mtb25seSxcXG5ib2R5LnBsYXRmb3JtLWlvcyAucGxhdGZvcm0taW9zLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCgucGxhdGZvcm0tYW5kcm9pZCkgLnBsYXRmb3JtLWFuZHJvaWQtb25seSxcXG5ib2R5LnBsYXRmb3JtLWFuZHJvaWQgLnBsYXRmb3JtLWFuZHJvaWQtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbkBtZWRpYSBhbGwgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcXG4gIC5vcmllbnRhdGlvbi1sYW5kc2NhcGUge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSBhbGwgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XFxuICAub3JpZW50YXRpb24tcG9ydHJhaXQge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSBzY3JlZW4ge1xcbiAgLnByaW50LW9ubHkge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSBwcmludCB7XFxuICAucHJpbnQtaGlkZSB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XFxuICAueHMtaGlkZSxcXG4gIC5ndC14cyxcXG4gIC5zbSxcXG4gIC5ndC1zbSxcXG4gIC5tZCxcXG4gIC5ndC1tZCxcXG4gIC5sZyxcXG4gIC5ndC1sZyxcXG4gIC54bCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5zbS1oaWRlLFxcbiAgLnhzLFxcbiAgLmx0LXNtLFxcbiAgLmd0LXNtLFxcbiAgLm1kLFxcbiAgLmd0LW1kLFxcbiAgLmxnLFxcbiAgLmd0LWxnLFxcbiAgLnhsIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xcbiAgLm1kLWhpZGUsXFxuICAueHMsXFxuICAubHQtc20sXFxuICAuc20sXFxuICAubHQtbWQsXFxuICAuZ3QtbWQsXFxuICAubGcsXFxuICAuZ3QtbGcsXFxuICAueGwge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xcbiAgLmxnLWhpZGUsXFxuICAueHMsXFxuICAubHQtc20sXFxuICAuc20sXFxuICAubHQtbWQsXFxuICAubWQsXFxuICAubHQtbGcsXFxuICAuZ3QtbGcsXFxuICAueGwge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gIC54bC1oaWRlLFxcbiAgLnhzLFxcbiAgLmx0LXNtLFxcbiAgLnNtLFxcbiAgLmx0LW1kLFxcbiAgLm1kLFxcbiAgLmx0LWxnLFxcbiAgLmxnLFxcbiAgLmx0LXhsIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG4ucS1mb2N1cy1oZWxwZXIge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMCAvKiBydGw6aWdub3JlICovO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICBvcGFjaXR5OiAwLjE1O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbn1cXG4ucS1mb2N1cy1oZWxwZXItcm91bmRlZCB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxufVxcbi5xLWZvY3VzLWhlbHBlci1yb3VuZCB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbmJvZHkuZGVza3RvcCAucS1mb2N1c2FibGU6Zm9jdXMgLnEtZm9jdXMtaGVscGVyLFxcbmJvZHkuZGVza3RvcCAucS1ob3ZlcmFibGU6aG92ZXIgLnEtZm9jdXMtaGVscGVyIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuYm9keS5pb3MgLnEtaG92ZXJhYmxlOmFjdGl2ZSAucS1mb2N1cy1oZWxwZXIge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgb3BhY2l0eTogMC4zO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xcbiAgLnEtaWYgPiAucS1pZi1pbm5lciB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgfVxcbiAgLnEtaWYgPiAucS1pZi1pbm5lciA+IGRpdiA+IC5xLWlucHV0LXRhcmdldCB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIgPiBkaXYgPiBpbnB1dC5xLWlucHV0LXRhcmdldCB7XFxuICAgIG1pbi13aWR0aDogM3JlbTtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDAlICFpbXBvcnRhbnQ7XFxuICAgICAgICBmbGV4LWJhc2lzOiAwJSAhaW1wb3J0YW50O1xcbiAgfVxcbiAgLnEtaW5wdXQtdGFyZ2V0OmJlZm9yZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgfVxcbiAgLnEtaWYtbGFiZWwtc3BhY2VyIHtcXG4gICAgd2lkdGg6IDA7XFxuICB9XFxuICAucS1lZGl0b3ItdG9vbGJhciAucS1idG4tZ3JvdXAucm93LmlubGluZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgfVxcbiAgLnEtdG9vbGJhcixcXG4gIC5xLWFjdGlvbnNoZWV0LXRpdGxlLFxcbiAgLnEtZmllbGQtbGFiZWwtaW5uZXIge1xcbiAgICBoZWlnaHQ6IDBweDtcXG4gIH1cXG4gIC5xLWNhcm91c2VsLXNsaWRlIHtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wucS1hbGVydC1jb250ZW50IHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgfVxcbiAgLnEtc2xpZGVyLWhhbmRsZSA+IC5xLWNoaXAuaW5saW5lLnJvdyB7XFxuICAgIGRpc3BsYXk6IHRhYmxlO1xcbiAgfVxcbiAgYS5xLWJ0bjpub3QoLnEtYnRuLXJvdW5kKSB7XFxuICAgIGhlaWdodDogMHB4O1xcbiAgfVxcbiAgLnEtYnRuIC5xLWJ0bi1pbm5lciB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUgLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLmFjdGl2ZSAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IC0xcHggMXB4IDFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuOmFjdGl2ZS5xLWJ0bi1wdXNoIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUucS1idG4tcHVzaCAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IDFweCAxcHggLTFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuOmFjdGl2ZS5xLWJ0bi1wdXNoLmRpc2FibGVkIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUucS1idG4tcHVzaC5kaXNhYmxlZCAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IC0xcHggMXB4IDFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuLWdyb3VwID4gLnEtYnRuLnEtYnRuLXB1c2g6bm90KC5kaXNhYmxlZCk6YWN0aXZlIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi1ncm91cCA+IC5xLWJ0bi5xLWJ0bi1wdXNoOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuICAucS1jaGlwOm5vdCgucS1jaGlwLXNtYWxsKTpub3QoLnEtY2hpcC1kZW5zZSkgLnEtY2hpcC1tYWluIHtcXG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICB9XFxuICAucS1idG4gLnEtY2hpcCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIH1cXG4gIC5xLXRhYiAucS1jaGlwIC5xLWNoaXAtbWFpbiB7XFxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XFxuICB9XFxuICAucS1mYWItYWN0aW9ucy5xLWZhYi1sZWZ0LFxcbiAgLnEtZmFiLWFjdGlvbnMucS1mYWItcmlnaHQge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIH1cXG4gIC5xLWl0ZW0tbWFpbiB7XFxuICAgIG1pbi13aWR0aDogMXB4O1xcbiAgfVxcbiAgLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWl0ZW0ge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XFxuICB9XFxuICAucS1tb2RhbC1sYXlvdXQge1xcbiAgICBtaW4taGVpZ2h0OiA4MHZoICFpbXBvcnRhbnQ7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICB9XFxufVxcbkBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjogYXV0bykge1xcbiAgLnEtaWYgPiAucS1pZi1pbm5lciB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgfVxcbiAgLnEtaWYgPiAucS1pZi1pbm5lciA+IGRpdiA+IC5xLWlucHV0LXRhcmdldCB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIgPiBkaXYgPiBpbnB1dC5xLWlucHV0LXRhcmdldCB7XFxuICAgIG1pbi13aWR0aDogM3JlbTtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDAlICFpbXBvcnRhbnQ7XFxuICAgICAgICBmbGV4LWJhc2lzOiAwJSAhaW1wb3J0YW50O1xcbiAgfVxcbiAgLnEtaW5wdXQtdGFyZ2V0OmJlZm9yZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgfVxcbiAgLnEtaWYtbGFiZWwtc3BhY2VyIHtcXG4gICAgd2lkdGg6IDA7XFxuICB9XFxuICAucS1lZGl0b3ItdG9vbGJhciAucS1idG4tZ3JvdXAucm93LmlubGluZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgfVxcbiAgLnEtdG9vbGJhcixcXG4gIC5xLWFjdGlvbnNoZWV0LXRpdGxlLFxcbiAgLnEtZmllbGQtbGFiZWwtaW5uZXIge1xcbiAgICBoZWlnaHQ6IDBweDtcXG4gIH1cXG4gIC5xLWNhcm91c2VsLXNsaWRlIHtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wucS1hbGVydC1jb250ZW50IHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgfVxcbiAgLnEtc2xpZGVyLWhhbmRsZSA+IC5xLWNoaXAuaW5saW5lLnJvdyB7XFxuICAgIGRpc3BsYXk6IHRhYmxlO1xcbiAgfVxcbiAgYS5xLWJ0bjpub3QoLnEtYnRuLXJvdW5kKSB7XFxuICAgIGhlaWdodDogMHB4O1xcbiAgfVxcbiAgLnEtYnRuIC5xLWJ0bi1pbm5lciB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUgLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLmFjdGl2ZSAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IC0xcHggMXB4IDFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuOmFjdGl2ZS5xLWJ0bi1wdXNoIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUucS1idG4tcHVzaCAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IDFweCAxcHggLTFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuOmFjdGl2ZS5xLWJ0bi1wdXNoLmRpc2FibGVkIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUucS1idG4tcHVzaC5kaXNhYmxlZCAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IC0xcHggMXB4IDFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuLWdyb3VwID4gLnEtYnRuLnEtYnRuLXB1c2g6bm90KC5kaXNhYmxlZCk6YWN0aXZlIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi1ncm91cCA+IC5xLWJ0bi5xLWJ0bi1wdXNoOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuICAucS1jaGlwOm5vdCgucS1jaGlwLXNtYWxsKTpub3QoLnEtY2hpcC1kZW5zZSkgLnEtY2hpcC1tYWluIHtcXG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICB9XFxuICAucS1idG4gLnEtY2hpcCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIH1cXG4gIC5xLXRhYiAucS1jaGlwIC5xLWNoaXAtbWFpbiB7XFxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XFxuICB9XFxuICAucS1mYWItYWN0aW9ucy5xLWZhYi1sZWZ0LFxcbiAgLnEtZmFiLWFjdGlvbnMucS1mYWItcmlnaHQge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIH1cXG4gIC5xLWl0ZW0tbWFpbiB7XFxuICAgIG1pbi13aWR0aDogMXB4O1xcbiAgfVxcbiAgLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWl0ZW0ge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XFxuICB9XFxuICAucS1tb2RhbC1sYXlvdXQge1xcbiAgICBtaW4taGVpZ2h0OiA4MHZoICFpbXBvcnRhbnQ7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyB3ZWJraXQtYXV0b2ZpbGwtb24ge1xcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gICAgY29sb3I6ICNmZjk4MDA7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgd2Via2l0LWF1dG9maWxsLW9uIHtcXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAgIGNvbG9yOiAjZmY5ODAwO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgd2Via2l0LWF1dG9maWxsLW9mZiB7XFxuICB0byB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHdlYmtpdC1hdXRvZmlsbC1vZmYge1xcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZSB7XFxuICAwJSB7XFxuICAgIGxlZnQ6IC0zNSU7XFxuICAgIHJpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgNjAlIHtcXG4gICAgbGVmdDogMTAwJTtcXG4gICAgcmlnaHQ6IC05MCU7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgbGVmdDogMTAwJTtcXG4gICAgcmlnaHQ6IC05MCU7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1wcm9ncmVzcy1pbmRldGVybWluYXRlIHtcXG4gIDAlIHtcXG4gICAgbGVmdDogLTM1JTtcXG4gICAgcmlnaHQ6IDEwMCU7XFxuICB9XFxuICA2MCUge1xcbiAgICBsZWZ0OiAxMDAlO1xcbiAgICByaWdodDogLTkwJTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBsZWZ0OiAxMDAlO1xcbiAgICByaWdodDogLTkwJTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZS1zaG9ydCB7XFxuICAwJSB7XFxuICAgIGxlZnQ6IC0yMDAlO1xcbiAgICByaWdodDogMTAwJTtcXG4gIH1cXG4gIDYwJSB7XFxuICAgIGxlZnQ6IDEwNyU7XFxuICAgIHJpZ2h0OiAtOCU7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgbGVmdDogMTA3JTtcXG4gICAgcmlnaHQ6IC04JTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUtc2hvcnQge1xcbiAgMCUge1xcbiAgICBsZWZ0OiAtMjAwJTtcXG4gICAgcmlnaHQ6IDEwMCU7XFxuICB9XFxuICA2MCUge1xcbiAgICBsZWZ0OiAxMDclO1xcbiAgICByaWdodDogLTglO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGxlZnQ6IDEwNyU7XFxuICAgIHJpZ2h0OiAtOCU7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXByb2dyZXNzLXN0cmlwZXMge1xcbiAgZnJvbSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDQwcHggMDtcXG4gIH1cXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcHJvZ3Jlc3Mtc3RyaXBlcyB7XFxuICBmcm9tIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwO1xcbiAgfVxcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLW1hdC1kYXNoIHtcXG4gIDAlIHtcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogMSwgMjAwO1xcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDg5LCAyMDA7XFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMzVweDtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBzdHJva2UtZGFzaGFycmF5OiA4OSwgMjAwO1xcbiAgICBzdHJva2UtZGFzaG9mZnNldDogLTEyNHB4O1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtbWF0LWRhc2gge1xcbiAgMCUge1xcbiAgICBzdHJva2UtZGFzaGFycmF5OiAxLCAyMDA7XFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgfVxcbiAgNTAlIHtcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogODksIDIwMDtcXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0zNXB4O1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDg5LCAyMDA7XFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMTI0cHg7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLWhpZ2hsaWdodCB7XFxuICAwJSB7XFxuICAgIGJhY2tncm91bmQ6ICNjZGRjMzk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1oaWdobGlnaHQge1xcbiAgMCUge1xcbiAgICBiYWNrZ3JvdW5kOiAjY2RkYzM5O1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1yb3RhdGUge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCkgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDI1JSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICA1MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICA3NSUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcm90YXRlIHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICAyNSUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgNTAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgNzUlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtYmxpbmsge1xcbiAgdG8ge1xcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1ibGluayB7XFxuICB0byB7XFxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtc3BpbiB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXNwaW4ge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXBvcCB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gIH1cXG4gIDcwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjA3KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcG9wIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgfVxcbiAgNzAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNyk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLWZhZGUge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1mYWRlIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1zY2FsZSB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXNjYWxlIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1ib3VuY2Uge1xcbiAgMCUsIDIwJSwgNTAlLCA4MCUsIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICB9XFxuICA0MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcXG4gIH1cXG4gIDYwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtYm91bmNlIHtcXG4gIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgfVxcbiAgNDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XFxuICB9XFxuICA2MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtc2hha2Uge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtc2hha2Uge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1wb3B1cC1kb3duIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgfVxcbiAgMzAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXBvcHVwLWRvd24ge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB9XFxuICAzMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1wb3B1cC11cCB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB9XFxuICAzMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcG9wdXAtdXAge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgfVxcbiAgMzAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtc2xpZGUtbGVmdCB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03MCUpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNzAlKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXNsaWRlLWxlZnQge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNzAlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTcwJSk7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXNsaWRlLXJpZ2h0IHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNzAlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNzAlKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXNsaWRlLXJpZ2h0IHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNzAlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNzAlKTtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiXFxuYnV0dG9uICsgYnV0dG9uW2RhdGEtdi00ZmJjNzM1Yl0ge1xcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xcbn1cXG5idXR0b25bZGF0YS12LTRmYmM3MzViXSB7XFxuICBwYWRkaW5nOiAwLjRlbSAwLjZlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICBvdXRsaW5lOiAwO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG5idXR0b25bZGlzYWJsZWRdW2RhdGEtdi00ZmJjNzM1Yl0ge1xcbiAgYm9yZGVyLWNvbG9yOiAjYWU2NWM1O1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbn1cXG4ubW9kYWxbZGF0YS12LTRmYmM3MzViXSB7XFxuICBjb2xvcjogcmVkO1xcbn1cXG5cXG4vKipcXG4gKiBTZWUgaHR0cHM6Ly92dWUtbG9hZGVyLnZ1ZWpzLm9yZy9ndWlkZS9zY29wZWQtY3NzLmh0bWwjZGVlcC1zZWxlY3RvcnNcXG4gKiB0aGUgYD4+PmAgYWxsb3dzIHRvIGFwcGx5IHNjb3BlZCBjc3MgdG8gY2hpbGQgZWxlbWVudCB0aGF0IGlzIGdlbmVyYXRlZFxcbiAqIGR5bmFtaWNhbGx5XFxuKiovXFxuLm1vZGFsW2RhdGEtdi00ZmJjNzM1Yl0gLm1vZGFsLXNjcm9sbCB7XFxuICBjb2xvcjogcmVkO1xcbiAgbWF4LWhlaWdodDogbm9uZTtcXG59XFxuLm1vZGFsIC5tb2RhbC1ib2R5W2RhdGEtdi00ZmJjNzM1Yl0ge1xcbiAgbWF4LWhlaWdodDogbm9uZTtcXG59XFxuaDFbZGF0YS12LTRmYmM3MzViXSB7XFxuICBmb250LWZhbWlseTogQ291cmllcjtcXG4gIGZvbnQtc2l6ZTogMnJlbTtcXG59XFxuaDJbZGF0YS12LTRmYmM3MzViXSB7XFxuICBmb250LWZhbWlseTogQ291cmllcjtcXG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcXG4gIG1hcmdpbi10b3A6IDJyZW07XFxufVxcbi5hcHAgLnJvd1tkYXRhLXYtNGZiYzczNWJdIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbn1cXG4ucm93ICsgLnJvd1tkYXRhLXYtNGZiYzczNWJdIHtcXG4gIG1hcmdpbi10b3A6IDJlbTtcXG59XFxuLnJvdy1zbWFsbFtkYXRhLXYtNGZiYzczNWJdIHtcXG4gIG1hcmdpbi10b3A6IDFlbTtcXG59XFxuLmVtb2ppLW1hcnRbZGF0YS12LTRmYmM3MzViXSB7XFxuICBtYXJnaW46IDAgYXV0bztcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVxcbi5lbW9qaS1tYXJ0LXRpdGxlLWxhYmVsW2RhdGEtdi00ZmJjNzM1Yl0ge1xcbiAgZm9udC1zaXplOiAyMXB4O1xcbn1cXG4ucG9wdXBbZGF0YS12LTRmYmM3MzViXSB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwdmg7XFxuICBsZWZ0OiAwO1xcbiAgdG9wOiAwO1xcbiAgei1pbmRleDogMjAwO1xcbiAgYmFja2dyb3VuZDogcmViZWNjYXB1cnBsZTtcXG4gIG9wYWNpdHk6IDk1JTtcXG59XFxuLnBvcHVwLWJveFtkYXRhLXYtNGZiYzczNWJdIHtcXG4gIGhlaWdodDogMTAwJTtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwYWRkaW5nLXRvcDogMTIwcHg7XFxuICBwYWRkaW5nLWJvdHRvbTogODBweDtcXG59XFxuLnBvcHVwLWNvbnRlbnRbZGF0YS12LTRmYmM3MzViXSB7XFxuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDI0cHggNTRweCByZ2JhKDIwLCAyOCwgNDksIDAuMTQpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwcHggMjRweCA1NHB4IHJnYmEoMjAsIDI4LCA0OSwgMC4xNCk7XFxuICBib3JkZXItcmFkaXVzOiAxOHB4O1xcbiAgcGFkZGluZzogNnB4IDZweCA5cHggNnB4O1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtYXgtd2lkdGg6IDQ2MnB4O1xcbiAgbWFyZ2luOiAwIGF1dG87XFxufVxcbi5wb3B1cC1jbG9zZVtkYXRhLXYtNGZiYzczNWJdIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMjBweDtcXG4gIHJpZ2h0OiAzMHB4O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucm93LXNtYWxsLXBpY2tlcltkYXRhLXYtNGZiYzczNWJdIC5lbW9qaS1tYXJ0LWFuY2hvcnMgc3ZnIHtcXG4gIHdpZHRoOiA5cHg7XFxuICBoZWlnaHQ6IDlweDtcXG59XFxuLnJvdy1zbWFsbC1waWNrZXJbZGF0YS12LTRmYmM3MzViXSAuZW1vamktbWFydC10aXRsZS1sYWJlbCB7XFxuICBmb250LXNpemU6IDlweDtcXG59XFxuLnJvdy1zbWFsbC1waWNrZXJbZGF0YS12LTRmYmM3MzViXSAuZW1vamktbWFydC1wcmV2aWV3LWRhdGEge1xcbiAgbGVmdDogNDBweDtcXG4gIGZvbnQtc2l6ZTogOXB4O1xcbn1cXG4ucm93LXNtYWxsLXBpY2tlcltkYXRhLXYtNGZiYzczNWJdIC5lbW9qaS1tYXJ0LXByZXZpZXctbmFtZSB7XFxuICBmb250LXNpemU6IDlweDtcXG59XFxuLnJvdy1zbWFsbC1waWNrZXJbZGF0YS12LTRmYmM3MzViXSAuZW1vamktbWFydC1wcmV2aWV3LWVtb2ppIC5lbW9qaS10eXBlLW5hdGl2ZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICB3aWR0aDogMTJweDtcXG4gIGhlaWdodDogMTJweDtcXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vZG9jcy9hcHAudnVlXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCI7QUErVEE7RUFDQSxrQkFBQTtBQUNBO0FBQ0E7RUFDQSxvQkFBQTtFQUNBLGtCQUFBO0VBQ0Esb0NBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxlQUFBO0FBQ0E7QUFFQTtFQUNBLHFCQUFBO0VBQ0EsZUFBQTtBQUNBO0FBRUE7RUFDQSxVQUFBO0FBQ0E7O0FBRUE7Ozs7RUFJQTtBQUNBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0FBQ0E7QUFDQTtFQUNBLGdCQUFBO0FBQ0E7QUFFQTtFQUNBLG9CQUFBO0VBQ0EsZUFBQTtBQUNBO0FBRUE7RUFDQSxvQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7QUFDQTtBQUVBO0VBQ0EsY0FBQTtBQUNBO0FBRUE7RUFDQSxlQUFBO0FBQ0E7QUFFQTtFQUNBLGVBQUE7QUFDQTtBQUVBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBO0FBQ0E7QUFFQTtFQUNBLGVBQUE7QUFDQTtBQUVBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7RUFDQSxhQUFBO0VBQ0EsT0FBQTtFQUNBLE1BQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0FBQ0E7QUFDQTtFQUNBLFlBQUE7RUFDQSxjQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7QUFDQTtBQUNBO0VBQ0EsaUJBQUE7RUFDQSx3REFBQTtVQUFBLGdEQUFBO0VBQ0EsbUJBQUE7RUFDQSx3QkFBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsY0FBQTtBQUNBO0FBQ0E7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtBQUNBO0FBRUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtBQUNBO0FBQ0E7RUFDQSxjQUFBO0FBQ0E7QUFDQTtFQUNBLFVBQUE7RUFDQSxjQUFBO0FBQ0E7QUFDQTtFQUNBLGNBQUE7QUFDQTtBQUNBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FBQ0FcIixcInNvdXJjZXNDb250ZW50XCI6W1wiPHRlbXBsYXRlPlxcbiAgPGRpdiBjbGFzcz1cXFwiYXBwXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8aDE+RW1vamkgTWFydCBWdWUg8J+PrDwvaDE+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxlbW9qaSA6ZGF0YT1cXFwiaW5kZXhcXFwiIGVtb2ppPVxcXCI6c2FudGE6OnNraW4tdG9uZS0zOlxcXCIgOnNpemU9XFxcIjMyXFxcIiAvPlxcbiAgICAgIDxlbW9qaSA6ZGF0YT1cXFwiaW5kZXhcXFwiIGVtb2ppPVxcXCJzYW50YVxcXCIgc2V0PVxcXCJ0d2l0dGVyXFxcIiA6c2l6ZT1cXFwiMzJcXFwiIC8+XFxuICAgICAgPGVtb2ppIDpkYXRhPVxcXCJpbmRleFxcXCIgOmVtb2ppPVxcXCJzYW50YUVtb2ppT2JqZWN0XFxcIiA6c2l6ZT1cXFwiMzJcXFwiIC8+XFxuICAgIDwvZGl2PlxcblxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxidXR0b24gQGNsaWNrPVxcXCJ0b2dnbGVWaXNpYmxlXFxcIj5TaG93IC8gaGlkZSB0aGUgcGlja2VyPC9idXR0b24+XFxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XFxcInRvZ2dsZVZpc2libGVcXFwiIHYtaHRtbD1cXFwic21pbGVcXFwiPjwvYnV0dG9uPlxcbiAgICA8L2Rpdj5cXG5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8dGVtcGxhdGVcXG4gICAgICAgIHYtZm9yPVxcXCJzZXQgaW4gWyduYXRpdmUnLCAnYXBwbGUnLCAnZ29vZ2xlJywgJ3R3aXR0ZXInLCAnZmFjZWJvb2snXVxcXCJcXG4gICAgICA+XFxuICAgICAgICA8YnV0dG9uXFxuICAgICAgICAgIDprZXk9XFxcInNldFxcXCJcXG4gICAgICAgICAgQGNsaWNrPVxcXCJhY3RpdmVTZXQgPSBzZXRcXFwiXFxuICAgICAgICAgIDpkaXNhYmxlZD1cXFwiYWN0aXZlU2V0ID09IHNldFxcXCJcXG4gICAgICAgID5cXG4gICAgICAgICAge3sgc2V0IH19XFxuICAgICAgICA8L2J1dHRvbj5cXG4gICAgICA8L3RlbXBsYXRlPlxcbiAgICA8L2Rpdj5cXG5cXG4gICAgPGRpdiB2LWlmPVxcXCJpc1Zpc2libGVcXFwiIGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxwaWNrZXJcXG4gICAgICAgIDpkYXRhPVxcXCJpbmRleFxcXCJcXG4gICAgICAgIDpzZXQ9XFxcImFjdGl2ZVNldFxcXCJcXG4gICAgICAgIDpuYXRpdmU9XFxcIm5hdGl2ZVxcXCJcXG4gICAgICAgIDplbW9qaT1cXFwiZW1vamlcXFwiXFxuICAgICAgICA6ZW1vamlUb29sdGlwPVxcXCJ0cnVlXFxcIlxcbiAgICAgICAgOnRpdGxlPVxcXCJ0aXRsZVxcXCJcXG4gICAgICAgIDplbW9qaVNpemU9XFxcIjMwXFxcIlxcbiAgICAgICAgQHNlbGVjdD1cXFwic2hvd0Vtb2ppXFxcIlxcbiAgICAgIC8+XFxuICAgIDwvZGl2PlxcblxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxlbW9qaVxcbiAgICAgICAgdi1mb3I9XFxcImVtbyBpbiBzZWxlY3RlZEVtb2ppc1xcXCJcXG4gICAgICAgIDprZXk9XFxcImVtb1xcXCJcXG4gICAgICAgIDpkYXRhPVxcXCJpbmRleFxcXCJcXG4gICAgICAgIDplbW9qaT1cXFwiZW1vXFxcIlxcbiAgICAgICAgOnNldD1cXFwiYWN0aXZlU2V0XFxcIlxcbiAgICAgICAgOm5hdGl2ZT1cXFwibmF0aXZlXFxcIlxcbiAgICAgICAgOnNpemU9XFxcIjMyXFxcIlxcbiAgICAgIC8+XFxuICAgIDwvZGl2PlxcblxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIHt7IGVtb2ppc091dHB1dCB9fVxcbiAgICA8L2Rpdj5cXG5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93LXNtYWxsXFxcIj5cXG4gICAgICA8aWZyYW1lXFxuICAgICAgICBzcmM9XFxcImh0dHBzOi8vZ2hidG5zLmNvbS9naXRodWItYnRuLmh0bWw/dXNlcj1zZXJlYnJvdiZyZXBvPWVtb2ppLW1hcnQtdnVlJnR5cGU9c3RhciZjb3VudD10cnVlXFxcIlxcbiAgICAgICAgZnJhbWVCb3JkZXI9XFxcIjBcXFwiXFxuICAgICAgICBzY3JvbGxpbmc9XFxcIjBcXFwiXFxuICAgICAgICB3aWR0aD1cXFwiOTBweFxcXCJcXG4gICAgICAgIGhlaWdodD1cXFwiMjBweFxcXCJcXG4gICAgICA+PC9pZnJhbWU+XFxuICAgIDwvZGl2PlxcblxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPjwvZGl2PlxcbiAgICA8aDI+UURpYWxvZyBFeGFtcGxlPC9oMj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8cS1idG4gbGFiZWw9XFxcIk9wZW4gUURpYWxvZ1xcXCIgQGNsaWNrPVxcXCJlbW9qaVBpY2tlckRpYWxvZyA9IHRydWVcXFwiIC8+XFxuICAgIDwvZGl2PlxcblxcbiAgICA8cS1kaWFsb2cgdi1tb2RlbD1cXFwiZW1vamlQaWNrZXJEaWFsb2dcXFwiPlxcbiAgICAgIDx0ZW1wbGF0ZSB2LXNsb3Q6Ym9keSBzdHlsZT1cXFwiaGVpZ2h0OiA0NTBweFxcXCI+XFxuICAgICAgICA8cGlja2VyIDpkYXRhPVxcXCJpbmRleFxcXCIgOmVtb2ppU2l6ZT1cXFwiMjRcXFwiIDpuYXRpdmU9XFxcInRydWVcXFwiPjwvcGlja2VyPlxcbiAgICAgIDwvdGVtcGxhdGU+XFxuICAgIDwvcS1kaWFsb2c+XFxuXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+PC9kaXY+XFxuICAgIDxoMj5DdXN0b20gRGlhbG9nIEV4YW1wbGU8L2gyPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxidXR0b24gQGNsaWNrPVxcXCJlbW9qaVBpY2tlckN1c3RvbURpYWxvZyA9IHRydWVcXFwiPlxcbiAgICAgICAgT3BlbiBDdXN0b20gRGlhbG9nXFxuICAgICAgPC9idXR0b24+XFxuICAgIDwvZGl2PlxcblxcbiAgICA8ZGl2IGNsYXNzPVxcXCJwb3B1cFxcXCIgdi1pZj1cXFwiZW1vamlQaWNrZXJDdXN0b21EaWFsb2dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcInBvcHVwLWJveFxcXCIgQGNsaWNrPVxcXCJlbW9qaVBpY2tlckN1c3RvbURpYWxvZyA9IGZhbHNlXFxcIj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcInBvcHVwLWNvbnRlbnRcXFwiIEBjbGljaz1cXFwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXFxcIj5cXG4gICAgICAgICAgPGRpdiBjbGFzcz1cXFwicG9wdXAtY2xvc2VcXFwiPlxcbiAgICAgICAgICAgIDxhIEBjbGljaz1cXFwiZW1vamlQaWNrZXJDdXN0b21EaWFsb2cgPSBmYWxzZVxcXCI+WDwvYT5cXG4gICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgIDxoMj5FbW9qaSBTZWxlY3RvcjwvaDI+XFxuICAgICAgICAgIDxwaWNrZXIgOmRhdGE9XFxcImluZGV4XFxcIiA6ZW1vamlTaXplPVxcXCIyNFxcXCIgOm5hdGl2ZT1cXFwidHJ1ZVxcXCI+PC9waWNrZXI+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+PC9kaXY+XFxuICAgIDxoMj5DdXN0b20gU2VhcmNoIEFuZCBQcmV2aWV3IFRlbXBsYXRlcyBFeGFtcGxlPC9oMj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8UGlja2VyIDpkYXRhPVxcXCJpbmRleFxcXCIgOm5hdGl2ZT1cXFwidHJ1ZVxcXCI+XFxuICAgICAgICA8dGVtcGxhdGUgc2xvdD1cXFwic2VhcmNoVGVtcGxhdGVcXFwiIHNsb3Qtc2NvcGU9XFxcInNsb3RQcm9wc1xcXCI+XFxuICAgICAgICAgIDxpbnB1dFxcbiAgICAgICAgICAgIHR5cGU9XFxcInRleHRcXFwiXFxuICAgICAgICAgICAgOnBsYWNlaG9sZGVyPVxcXCJzbG90UHJvcHMuaTE4bi5zZWFyY2hcXFwiXFxuICAgICAgICAgICAgdi1vbjppbnB1dD1cXFwic2xvdFByb3BzLm9uU2VhcmNoKCRldmVudC50YXJnZXQudmFsdWUpXFxcIlxcbiAgICAgICAgICAvPlxcbiAgICAgICAgPC90ZW1wbGF0ZT5cXG4gICAgICAgIDx0ZW1wbGF0ZSBzbG90PVxcXCJwcmV2aWV3VGVtcGxhdGVcXFwiIHNsb3Qtc2NvcGU9XFxcInNsb3RQcm9wc1xcXCI+XFxuICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImVtb2ppLW1hcnQtcHJldmlld1xcXCI+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiZW1vamktbWFydC1wcmV2aWV3LWVtb2ppXFxcIj5cXG4gICAgICAgICAgICAgIDxFbW9qaVxcbiAgICAgICAgICAgICAgICA6ZGF0YT1cXFwic2xvdFByb3BzLmRhdGFcXFwiXFxuICAgICAgICAgICAgICAgIDplbW9qaT1cXFwic2xvdFByb3BzLmVtb2ppID8gc2xvdFByb3BzLmVtb2ppIDogJ3BvaW50X3VwJ1xcXCJcXG4gICAgICAgICAgICAgICAgOm5hdGl2ZT1cXFwic2xvdFByb3BzLmVtb2ppUHJvcHMubmF0aXZlXFxcIlxcbiAgICAgICAgICAgICAgICA6c2tpbj1cXFwic2xvdFByb3BzLmVtb2ppUHJvcHMuc2tpblxcXCJcXG4gICAgICAgICAgICAgICAgOnNldD1cXFwic2xvdFByb3BzLmVtb2ppUHJvcHMuc2V0XFxcIlxcbiAgICAgICAgICAgICAgLz5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJlbW9qaS1tYXJ0LXByZXZpZXctZGF0YVxcXCI+XFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJlbW9qaS1tYXJ0LXByZXZpZXctbmFtZVxcXCI+XFxuICAgICAgICAgICAgICAgIHt7XFxuICAgICAgICAgICAgICAgICAgc2xvdFByb3BzLmVtb2ppXFxuICAgICAgICAgICAgICAgICAgICA/ICd+JyArIHNsb3RQcm9wcy5lbW9qaS5uYW1lICsgJ34nXFxuICAgICAgICAgICAgICAgICAgICA6ICdDaG9vc2UuLi4nXFxuICAgICAgICAgICAgICAgIH19XFxuICAgICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWVzXFxcIj5cXG4gICAgICAgICAgICAgICAge3sgc2xvdFByb3BzLmVtb2ppID8gc2xvdFByb3BzLmVtb2ppLmNvbG9ucyA6ICcnIH19XFxuICAgICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgPC9kaXY+XFxuICAgICAgICA8L3RlbXBsYXRlPlxcbiAgICAgIDwvUGlja2VyPlxcbiAgICA8L2Rpdj5cXG5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj48L2Rpdj5cXG4gICAgPGgyPkZpbHRlcmVkIHBpY2tlciBleGFtcGxlPC9oMj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIiB2LXNob3c9XFxcImZsYWdzVmlzaWJsZVxcXCI+XFxuICAgICAgPFBpY2tlclxcbiAgICAgICAgOm5hdGl2ZT1cXFwidHJ1ZVxcXCJcXG4gICAgICAgIGVtb2ppPVxcXCJmbGFnLXRmXFxcIlxcbiAgICAgICAgOmVtb2ppU2l6ZT1cXFwiMThcXFwiXFxuICAgICAgICA6ZGF0YT1cXFwiaW5kZXhGaWx0ZXJlZFxcXCJcXG4gICAgICAgIHJlZj1cXFwiZmxhZ3NcXFwiXFxuICAgICAgLz5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XFxcInRvZ2dsZUZsYWdzVmlzaWJsZVxcXCI+XFxuICAgICAgICBTaG93IC8gaGlkZSB0aGUgZmxhZ3MgcGlja2VyICh3aXRoIHYtc2hvdylcXG4gICAgICA8L2J1dHRvbj5cXG4gICAgPC9kaXY+XFxuXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+PC9kaXY+XFxuICAgIDxoMj5JMThuIHBpY2tlciBleGFtcGxlPC9oMj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8UGlja2VyIGVtb2ppPVxcXCJkZXBhcnRtZW50X3N0b3JlXFxcIiA6ZGF0YT1cXFwiaW5kZXhJMThuXFxcIiA6aTE4bj1cXFwiaTE4blxcXCIgLz5cXG4gICAgPC9kaXY+XFxuXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+PC9kaXY+XFxuICAgIDxoMj5DdXN0b20gb3JkZXIgZXhhbXBsZTwvaDI+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPFBpY2tlciA6ZGF0YT1cXFwiaW5kZXhJbmNsdWRlXFxcIiAvPlxcbiAgICA8L2Rpdj5cXG5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj48L2Rpdj5cXG4gICAgPGgyPlNtYWxsIHBpY2tlciBleGFtcGxlPC9oMj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93IHJvdy1zbWFsbC1waWNrZXJcXFwiPlxcbiAgICAgIDxQaWNrZXJcXG4gICAgICAgIDpkYXRhPVxcXCJpbmRleFxcXCJcXG4gICAgICAgIDpuYXRpdmU9XFxcIm5hdGl2ZVxcXCJcXG4gICAgICAgIDpzZXQ9XFxcImFjdGl2ZVNldFxcXCJcXG4gICAgICAgIDplbW9qaVNpemU9XFxcIjEyXFxcIlxcbiAgICAgICAgOnBlckxpbmU9XFxcIjVcXFwiXFxuICAgICAgLz5cXG4gICAgPC9kaXY+XFxuICA8L2Rpdj5cXG48L3RlbXBsYXRlPlxcblxcbjxzY3JpcHQ+XFxuaW1wb3J0IGRhdGEgZnJvbSAnLi4vZGF0YS9hbGwuanNvbidcXG5pbXBvcnQgeyBQaWNrZXIsIEVtb2ppLCBFbW9qaUluZGV4IH0gZnJvbSAnLi4vc3JjJ1xcbmltcG9ydCAnLi4vY3NzL2Vtb2ppLW1hcnQuY3NzJ1xcblxcbmltcG9ydCB7IFFCdG4sIFFEaWFsb2cgfSBmcm9tICdxdWFzYXItZnJhbWV3b3JrL2Rpc3QvcXVhc2FyLm1hdC5lc20nXFxuXFxuY29uc3QgQ1VTVE9NX0VNT0pJUyA9IFtcXG4gIHtcXG4gICAgbmFtZTogJ1BhcnR5IFBhcnJvdCcsXFxuICAgIHNob3J0X25hbWVzOiBbJ3BhcnJvdCddLFxcbiAgICBrZXl3b3JkczogWydwYXJ0eSddLFxcbiAgICBpbWFnZVVybDogJy4vaW1hZ2VzL3BhcnJvdC5naWYnLFxcbiAgfSxcXG4gIHtcXG4gICAgbmFtZTogJ09jdG9jYXQnLFxcbiAgICBzaG9ydF9uYW1lczogWydvY3RvY2F0J10sXFxuICAgIGtleXdvcmRzOiBbJ2dpdGh1YiddLFxcbiAgICBpbWFnZVVybDogJ2h0dHBzOi8vZ2l0aHViLmdpdGh1YmFzc2V0cy5jb20vaW1hZ2VzL2ljb25zL2Vtb2ppL29jdG9jYXQucG5nJyxcXG4gIH0sXFxuICB7XFxuICAgIG5hbWU6ICdTcXVpcnJlbCcsXFxuICAgIHNob3J0X25hbWVzOiBbJ3NoaXBpdCcsICdzcXVpcnJlbCddLFxcbiAgICBrZXl3b3JkczogWydnaXRodWInXSxcXG4gICAgaW1hZ2VVcmw6ICdodHRwczovL2dpdGh1Yi5naXRodWJhc3NldHMuY29tL2ltYWdlcy9pY29ucy9lbW9qaS9zaGlwaXQucG5nJyxcXG4gIH0sXFxuXVxcblxcbmxldCBpbmRleCA9IG5ldyBFbW9qaUluZGV4KGRhdGEsIHtcXG4gIGN1c3RvbTogQ1VTVE9NX0VNT0pJUyxcXG59KVxcblxcbmxldCBpbmRleEZpbHRlcmVkID0gbmV3IEVtb2ppSW5kZXgoZGF0YSwge1xcbiAgY3VzdG9tOiBDVVNUT01fRU1PSklTLFxcbiAgZW1vamlzVG9TaG93RmlsdGVyOiAoZW1vamkpID0+IHtcXG4gICAgcmV0dXJuIGVtb2ppLnNob3J0X25hbWVzWzBdLm1hdGNoKC9eZmxhZy4qLykgIT09IG51bGxcXG4gIH0sXFxufSlcXG5cXG5jb25zdCBpMThuID0ge1xcbiAgY2F0ZWdvcmllczoge1xcbiAgICBzZWFyY2g6ICfmkJzntKLnu5PmnpwnLFxcbiAgICByZWNlbnQ6ICfnu4/luLjkvb/nlKgnLFxcbiAgICBzbWlsZXlzOiAn5b+D5oOFJyxcXG4gICAgcGVvcGxlOiAn5Lq654mpJyxcXG4gICAgbmF0dXJlOiAn5Yqo54mpICYg5aSn6Ieq54S2JyxcXG4gICAgZm9vZHM6ICfpo5/niakgJiDppa7mlpknLFxcbiAgICBhY3Rpdml0eTogJ+a0u+WKqCcsXFxuICAgIHBsYWNlczogJ+aXheihjCAmIOWcsOaghycsXFxuICAgIG9iamVjdHM6ICfniankvZMnLFxcbiAgICBzeW1ib2xzOiAn56ym5Y+3JyxcXG4gICAgZmxhZ3M6ICflm73ml5cnLFxcbiAgICBjdXN0b206ICfoh6rlrprkuYknLFxcbiAgfSxcXG59XFxuXFxuY29uc3QgaW5kZXhJMThuID0gbmV3IEVtb2ppSW5kZXgoZGF0YSwge1xcbiAgZXhjbHVkZTogW1xcbiAgICAnZmxhZ3MnLFxcbiAgICAnc3ltYm9scycsXFxuICAgICdvYmplY3RzJyxcXG4gICAgJ2FjdGl2aXR5JyxcXG4gICAgJ2Zvb2RzJyxcXG4gICAgJ3Blb3BsZScsXFxuICAgICdwbGFjZXMnLFxcbiAgXSxcXG59KVxcblxcbmNvbnN0IGluZGV4SW5jbHVkZSA9IG5ldyBFbW9qaUluZGV4KGRhdGEsIHtcXG4gIGluY2x1ZGU6IFsnbmF0dXJlJywgJ3NtaWxleXMnLCAncmVjZW50J10sXFxufSlcXG5cXG5leHBvcnQgZGVmYXVsdCB7XFxuICBkYXRhKCkge1xcbiAgICByZXR1cm4ge1xcbiAgICAgIGluZGV4OiBpbmRleCxcXG4gICAgICBpbmRleEZpbHRlcmVkOiBpbmRleEZpbHRlcmVkLFxcbiAgICAgIGluZGV4SW5jbHVkZTogaW5kZXhJbmNsdWRlLFxcbiAgICAgIGluZGV4STE4bjogaW5kZXhJMThuLFxcbiAgICAgIGkxOG46IGkxOG4sXFxuICAgICAgYWN0aXZlU2V0OiAnbmF0aXZlJyxcXG4gICAgICBlbW9qaTogJ3BvaW50X3VwJyxcXG4gICAgICB0aXRsZTogJ1BpY2sgeW91ciBlbW9qaeKApicsXFxuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxcbiAgICAgIGVtb2ppUGlja2VyRGlhbG9nOiBmYWxzZSxcXG4gICAgICBlbW9qaVBpY2tlckN1c3RvbURpYWxvZzogZmFsc2UsXFxuICAgICAgZW1vamlzT3V0cHV0OiAnJyxcXG4gICAgICBzZWxlY3RlZEVtb2ppczogW10sXFxuICAgICAgZmxhZ3NWaXNpYmxlOiB0cnVlLFxcbiAgICB9XFxuICB9LFxcbiAgY29tcHV0ZWQ6IHtcXG4gICAgbmF0aXZlKCkge1xcbiAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVNldCA9PSAnbmF0aXZlJ1xcbiAgICB9LFxcbiAgICBzbWlsZSgpIHtcXG4gICAgICAvLyBTdGF0aWMgZW1vamkgZXhhbXBsZVxcbiAgICAgIGxldCBlbW9qaSA9IGluZGV4LmZpbmRFbW9qaSgnOnNtaWxlOicpXFxuICAgICAgLy8gTm90ZSwgdGhhdCBwb3NpdGlvbiBpbiB0aGUgZW1vamkgc2hlZXQgaXMgY2FsY3VsYXRlZCBieVxcbiAgICAgIC8vIGBlbW9qaWAgb2JqZWN0XFxuICAgICAgbGV0IHN0eWxlID0gYGJhY2tncm91bmQtcG9zaXRpb246ICR7ZW1vamkuZ2V0UG9zaXRpb24oKX07IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL3VucGtnLmNvbS9lbW9qaS1kYXRhc291cmNlLXR3aXR0ZXJAMTQuMC4wL2ltZy90d2l0dGVyL3NoZWV0cy0yNTYvNjQucG5nKTsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBiYWNrZ3JvdW5kLXNpemU6IDU3MDAlYFxcbiAgICAgIHJldHVybiBgPGRpdiBjbGFzcz0nZW1vamknIHN0eWxlPVxcXCIke3N0eWxlfVxcXCI+PC9kaXY+YFxcbiAgICB9LFxcbiAgICBzYW50YUVtb2ppT2JqZWN0KCkge1xcbiAgICAgIHJldHVybiBpbmRleC5maW5kRW1vamkoJzpzYW50YTonKVxcbiAgICB9LFxcbiAgfSxcXG4gIG1ldGhvZHM6IHtcXG4gICAgdG9nZ2xlVmlzaWJsZSgpIHtcXG4gICAgICB0aGlzLmlzVmlzaWJsZSA9ICF0aGlzLmlzVmlzaWJsZVxcbiAgICB9LFxcbiAgICB0b2dnbGVGbGFnc1Zpc2libGUoKSB7XFxuICAgICAgdGhpcy5mbGFnc1Zpc2libGUgPSAhdGhpcy5mbGFnc1Zpc2libGVcXG4gICAgICBpZiAoIXRoaXMuZmxhZ3NWaXNpYmxlKSB7XFxuICAgICAgICB0aGlzLiRyZWZzLmZsYWdzLm9uQW5jaG9yQ2xpY2sodGhpcy4kcmVmcy5mbGFncy5jYXRlZ29yaWVzWzBdKVxcbiAgICAgIH1cXG4gICAgfSxcXG4gICAgc2hvd0Vtb2ppKGVtb2ppKSB7XFxuICAgICAgdGhpcy5zZWxlY3RlZEVtb2ppcy5wdXNoKGVtb2ppKVxcbiAgICAgIGlmIChlbW9qaS5uYXRpdmUpIHtcXG4gICAgICAgIHRoaXMuZW1vamlzT3V0cHV0ID0gdGhpcy5lbW9qaXNPdXRwdXQgKyBlbW9qaS5uYXRpdmVcXG4gICAgICB9IGVsc2Uge1xcbiAgICAgICAgdGhpcy5lbW9qaXNPdXRwdXQgPSB0aGlzLmVtb2ppc091dHB1dCArICc/J1xcbiAgICAgIH1cXG4gICAgfSxcXG4gIH0sXFxuICBjb21wb25lbnRzOiB7XFxuICAgIFBpY2tlcixcXG4gICAgRW1vamksXFxuICAgIFFCdG4sXFxuICAgIFFEaWFsb2csXFxuICB9LFxcbn1cXG48L3NjcmlwdD5cXG5cXG48c3R5bGUgc2NvcGVkPlxcbmJ1dHRvbiArIGJ1dHRvbiB7XFxuICBtYXJnaW4tbGVmdDogMC41ZW07XFxufVxcbmJ1dHRvbiB7XFxuICBwYWRkaW5nOiAwLjRlbSAwLjZlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICBvdXRsaW5lOiAwO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG5cXG5idXR0b25bZGlzYWJsZWRdIHtcXG4gIGJvcmRlci1jb2xvcjogI2FlNjVjNTtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG59XFxuXFxuLm1vZGFsIHtcXG4gIGNvbG9yOiByZWQ7XFxufVxcblxcbi8qKlxcbiAqIFNlZSBodHRwczovL3Z1ZS1sb2FkZXIudnVlanMub3JnL2d1aWRlL3Njb3BlZC1jc3MuaHRtbCNkZWVwLXNlbGVjdG9yc1xcbiAqIHRoZSBgPj4+YCBhbGxvd3MgdG8gYXBwbHkgc2NvcGVkIGNzcyB0byBjaGlsZCBlbGVtZW50IHRoYXQgaXMgZ2VuZXJhdGVkXFxuICogZHluYW1pY2FsbHlcXG4qKi9cXG4ubW9kYWwgPj4+IC5tb2RhbC1zY3JvbGwge1xcbiAgY29sb3I6IHJlZDtcXG4gIG1heC1oZWlnaHQ6IG5vbmU7XFxufVxcbi5tb2RhbCAubW9kYWwtYm9keSB7XFxuICBtYXgtaGVpZ2h0OiBub25lO1xcbn1cXG5cXG5oMSB7XFxuICBmb250LWZhbWlseTogQ291cmllcjtcXG4gIGZvbnQtc2l6ZTogMnJlbTtcXG59XFxuXFxuaDIge1xcbiAgZm9udC1mYW1pbHk6IENvdXJpZXI7XFxuICBmb250LXNpemU6IDEuMjVyZW07XFxuICBtYXJnaW4tdG9wOiAycmVtO1xcbn1cXG5cXG4uYXBwIC5yb3cge1xcbiAgZGlzcGxheTogYmxvY2s7XFxufVxcblxcbi5yb3cgKyAucm93IHtcXG4gIG1hcmdpbi10b3A6IDJlbTtcXG59XFxuXFxuLnJvdy1zbWFsbCB7XFxuICBtYXJnaW4tdG9wOiAxZW07XFxufVxcblxcbi5lbW9qaS1tYXJ0IHtcXG4gIG1hcmdpbjogMCBhdXRvO1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtdGl0bGUtbGFiZWwge1xcbiAgZm9udC1zaXplOiAyMXB4O1xcbn1cXG5cXG4ucG9wdXAge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMHZoO1xcbiAgbGVmdDogMDtcXG4gIHRvcDogMDtcXG4gIHotaW5kZXg6IDIwMDtcXG4gIGJhY2tncm91bmQ6IHJlYmVjY2FwdXJwbGU7XFxuICBvcGFjaXR5OiA5NSU7XFxufVxcbi5wb3B1cC1ib3gge1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBhZGRpbmctdG9wOiAxMjBweDtcXG4gIHBhZGRpbmctYm90dG9tOiA4MHB4O1xcbn1cXG4ucG9wdXAtY29udGVudCB7XFxuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcXG4gIGJveC1zaGFkb3c6IDBweCAyNHB4IDU0cHggcmdiYSgyMCwgMjgsIDQ5LCAwLjE0KTtcXG4gIGJvcmRlci1yYWRpdXM6IDE4cHg7XFxuICBwYWRkaW5nOiA2cHggNnB4IDlweCA2cHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1heC13aWR0aDogNDYycHg7XFxuICBtYXJnaW46IDAgYXV0bztcXG59XFxuLnBvcHVwLWNsb3NlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMjBweDtcXG4gIHJpZ2h0OiAzMHB4O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG5cXG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtYW5jaG9ycyBzdmcge1xcbiAgd2lkdGg6IDlweDtcXG4gIGhlaWdodDogOXB4O1xcbn1cXG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtdGl0bGUtbGFiZWwge1xcbiAgZm9udC1zaXplOiA5cHg7XFxufVxcbi5yb3ctc21hbGwtcGlja2VyID4+PiAuZW1vamktbWFydC1wcmV2aWV3LWRhdGEge1xcbiAgbGVmdDogNDBweDtcXG4gIGZvbnQtc2l6ZTogOXB4O1xcbn1cXG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtcHJldmlldy1uYW1lIHtcXG4gIGZvbnQtc2l6ZTogOXB4O1xcbn1cXG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtcHJldmlldy1lbW9qaSAuZW1vamktdHlwZS1uYXRpdmUge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgd2lkdGg6IDEycHg7XFxuICBoZWlnaHQ6IDEycHg7XFxufVxcbjwvc3R5bGU+XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIlwidXNlIHN0cmljdFwiO1xuXG4vKlxuICBNSVQgTGljZW5zZSBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocFxuICBBdXRob3IgVG9iaWFzIEtvcHBlcnMgQHNva3JhXG4qL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY3NzV2l0aE1hcHBpbmdUb1N0cmluZykge1xuICB2YXIgbGlzdCA9IFtdOyAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG5cbiAgbGlzdC50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgdmFyIGNvbnRlbnQgPSBcIlwiO1xuICAgICAgdmFyIG5lZWRMYXllciA9IHR5cGVvZiBpdGVtWzVdICE9PSBcInVuZGVmaW5lZFwiO1xuXG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQoaXRlbVs0XSwgXCIpIHtcIik7XG4gICAgICB9XG5cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIik7XG4gICAgICB9XG5cbiAgICAgIGlmIChuZWVkTGF5ZXIpIHtcbiAgICAgICAgY29udGVudCArPSBcIkBsYXllclwiLmNvbmNhdChpdGVtWzVdLmxlbmd0aCA+IDAgPyBcIiBcIi5jb25jYXQoaXRlbVs1XSkgOiBcIlwiLCBcIiB7XCIpO1xuICAgICAgfVxuXG4gICAgICBjb250ZW50ICs9IGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSk7XG5cbiAgICAgIGlmIChuZWVkTGF5ZXIpIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cblxuICAgICAgaWYgKGl0ZW1bMl0pIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cblxuICAgICAgaWYgKGl0ZW1bNF0pIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbihcIlwiKTtcbiAgfTsgLy8gaW1wb3J0IGEgbGlzdCBvZiBtb2R1bGVzIGludG8gdGhlIGxpc3RcblxuXG4gIGxpc3QuaSA9IGZ1bmN0aW9uIGkobW9kdWxlcywgbWVkaWEsIGRlZHVwZSwgc3VwcG9ydHMsIGxheWVyKSB7XG4gICAgaWYgKHR5cGVvZiBtb2R1bGVzID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBtb2R1bGVzID0gW1tudWxsLCBtb2R1bGVzLCB1bmRlZmluZWRdXTtcbiAgICB9XG5cbiAgICB2YXIgYWxyZWFkeUltcG9ydGVkTW9kdWxlcyA9IHt9O1xuXG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCB0aGlzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgIHZhciBpZCA9IHRoaXNba11bMF07XG5cbiAgICAgICAgaWYgKGlkICE9IG51bGwpIHtcbiAgICAgICAgICBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2lkXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKHZhciBfayA9IDA7IF9rIDwgbW9kdWxlcy5sZW5ndGg7IF9rKyspIHtcbiAgICAgIHZhciBpdGVtID0gW10uY29uY2F0KG1vZHVsZXNbX2tdKTtcblxuICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGxheWVyICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbVs1XSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgIGl0ZW1bNV0gPSBsYXllcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAbGF5ZXJcIi5jb25jYXQoaXRlbVs1XS5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KGl0ZW1bNV0pIDogXCJcIiwgXCIge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bNV0gPSBsYXllcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAobWVkaWEpIHtcbiAgICAgICAgaWYgKCFpdGVtWzJdKSB7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBtZWRpYSBcIi5jb25jYXQoaXRlbVsyXSwgXCIge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bMl0gPSBtZWRpYTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc3VwcG9ydHMpIHtcbiAgICAgICAgaWYgKCFpdGVtWzRdKSB7XG4gICAgICAgICAgaXRlbVs0XSA9IFwiXCIuY29uY2F0KHN1cHBvcnRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bNF0gPSBzdXBwb3J0cztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsaXN0LnB1c2goaXRlbSk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBsaXN0O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodXJsLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIGlmICghdXJsKSB7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIHVybCA9IFN0cmluZyh1cmwuX19lc01vZHVsZSA/IHVybC5kZWZhdWx0IDogdXJsKTsgLy8gSWYgdXJsIGlzIGFscmVhZHkgd3JhcHBlZCBpbiBxdW90ZXMsIHJlbW92ZSB0aGVtXG5cbiAgaWYgKC9eWydcIl0uKlsnXCJdJC8udGVzdCh1cmwpKSB7XG4gICAgdXJsID0gdXJsLnNsaWNlKDEsIC0xKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLmhhc2gpIHtcbiAgICB1cmwgKz0gb3B0aW9ucy5oYXNoO1xuICB9IC8vIFNob3VsZCB1cmwgYmUgd3JhcHBlZD9cbiAgLy8gU2VlIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTMvI3VybHNcblxuXG4gIGlmICgvW1wiJygpIFxcdFxcbl18KCUyMCkvLnRlc3QodXJsKSB8fCBvcHRpb25zLm5lZWRRdW90ZXMpIHtcbiAgICByZXR1cm4gXCJcXFwiXCIuY29uY2F0KHVybC5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJykucmVwbGFjZSgvXFxuL2csIFwiXFxcXG5cIiksIFwiXFxcIlwiKTtcbiAgfVxuXG4gIHJldHVybiB1cmw7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gIHZhciBjb250ZW50ID0gaXRlbVsxXTtcbiAgdmFyIGNzc01hcHBpbmcgPSBpdGVtWzNdO1xuXG4gIGlmICghY3NzTWFwcGluZykge1xuICAgIHJldHVybiBjb250ZW50O1xuICB9XG5cbiAgaWYgKHR5cGVvZiBidG9hID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoY3NzTWFwcGluZykpKSk7XG4gICAgdmFyIGRhdGEgPSBcInNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFwiLmNvbmNhdChiYXNlNjQpO1xuICAgIHZhciBzb3VyY2VNYXBwaW5nID0gXCIvKiMgXCIuY29uY2F0KGRhdGEsIFwiICovXCIpO1xuICAgIHZhciBzb3VyY2VVUkxzID0gY3NzTWFwcGluZy5zb3VyY2VzLm1hcChmdW5jdGlvbiAoc291cmNlKSB7XG4gICAgICByZXR1cm4gXCIvKiMgc291cmNlVVJMPVwiLmNvbmNhdChjc3NNYXBwaW5nLnNvdXJjZVJvb3QgfHwgXCJcIikuY29uY2F0KHNvdXJjZSwgXCIgKi9cIik7XG4gICAgfSk7XG4gICAgcmV0dXJuIFtjb250ZW50XS5jb25jYXQoc291cmNlVVJMcykuY29uY2F0KFtzb3VyY2VNYXBwaW5nXSkuam9pbihcIlxcblwiKTtcbiAgfVxuXG4gIHJldHVybiBbY29udGVudF0uam9pbihcIlxcblwiKTtcbn07IiwiLyohXG4gKiBRdWFzYXIgRnJhbWV3b3JrIHYwLjE3LjIwXG4gKiAoYykgMjAxNi1wcmVzZW50IFJhenZhbiBTdG9lbmVzY3VcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cbiAqL1xudmFyIHdlYlN0b3JhZ2UsaXNTU1I9XCJ1bmRlZmluZWRcIj09dHlwZW9mIHdpbmRvdyxmcm9tU1NSPSExLG9uU1NSPWlzU1NSO2Z1bmN0aW9uIGdldE1hdGNoKHQsZSl7dmFyIGk9LyhlZGdlKVxcLyhbXFx3Ll0rKS8uZXhlYyh0KXx8LyhvcHIpW1xcL10oW1xcdy5dKykvLmV4ZWModCl8fC8odml2YWxkaSlbXFwvXShbXFx3Ll0rKS8uZXhlYyh0KXx8LyhjaHJvbWUpW1xcL10oW1xcdy5dKykvLmV4ZWModCl8fC8oaWVtb2JpbGUpW1xcL10oW1xcdy5dKykvLmV4ZWModCl8fC8odmVyc2lvbikoYXBwbGV3ZWJraXQpW1xcL10oW1xcdy5dKykuKihzYWZhcmkpW1xcL10oW1xcdy5dKykvLmV4ZWModCl8fC8od2Via2l0KVtcXC9dKFtcXHcuXSspLioodmVyc2lvbilbXFwvXShbXFx3Ll0rKS4qKHNhZmFyaSlbXFwvXShbXFx3Ll0rKS8uZXhlYyh0KXx8Lyh3ZWJraXQpW1xcL10oW1xcdy5dKykvLmV4ZWModCl8fC8ob3BlcmEpKD86Lip2ZXJzaW9ufClbXFwvXShbXFx3Ll0rKS8uZXhlYyh0KXx8Lyhtc2llKSAoW1xcdy5dKykvLmV4ZWModCl8fHQuaW5kZXhPZihcInRyaWRlbnRcIik+PTAmJi8ocnYpKD86OnwgKShbXFx3Ll0rKS8uZXhlYyh0KXx8dC5pbmRleE9mKFwiY29tcGF0aWJsZVwiKTwwJiYvKG1vemlsbGEpKD86Lio/IHJ2OihbXFx3Ll0rKXwpLy5leGVjKHQpfHxbXTtyZXR1cm57YnJvd3NlcjppWzVdfHxpWzNdfHxpWzFdfHxcIlwiLHZlcnNpb246aVsyXXx8aVs0XXx8XCIwXCIsdmVyc2lvbk51bWJlcjppWzRdfHxpWzJdfHxcIjBcIixwbGF0Zm9ybTplWzBdfHxcIlwifX1mdW5jdGlvbiBnZXRQbGF0Zm9ybU1hdGNoKHQpe3JldHVybi8oaXBhZCkvLmV4ZWModCl8fC8oaXBvZCkvLmV4ZWModCl8fC8od2luZG93cyBwaG9uZSkvLmV4ZWModCl8fC8oaXBob25lKS8uZXhlYyh0KXx8LyhraW5kbGUpLy5leGVjKHQpfHwvKHNpbGspLy5leGVjKHQpfHwvKGFuZHJvaWQpLy5leGVjKHQpfHwvKHdpbikvLmV4ZWModCl8fC8obWFjKS8uZXhlYyh0KXx8LyhsaW51eCkvLmV4ZWModCl8fC8oY3JvcykvLmV4ZWModCl8fC8ocGxheWJvb2spLy5leGVjKHQpfHwvKGJiKS8uZXhlYyh0KXx8LyhibGFja2JlcnJ5KS8uZXhlYyh0KXx8W119ZnVuY3Rpb24gZ2V0UGxhdGZvcm0odCl7dmFyIGU9Z2V0TWF0Y2godD0odHx8bmF2aWdhdG9yLnVzZXJBZ2VudHx8bmF2aWdhdG9yLnZlbmRvcnx8d2luZG93Lm9wZXJhKS50b0xvd2VyQ2FzZSgpLGdldFBsYXRmb3JtTWF0Y2godCkpLGk9e307cmV0dXJuIGUuYnJvd3NlciYmKGlbZS5icm93c2VyXT0hMCxpLnZlcnNpb249ZS52ZXJzaW9uLGkudmVyc2lvbk51bWJlcj1wYXJzZUludChlLnZlcnNpb25OdW1iZXIsMTApKSxlLnBsYXRmb3JtJiYoaVtlLnBsYXRmb3JtXT0hMCksKGkuYW5kcm9pZHx8aS5iYnx8aS5ibGFja2JlcnJ5fHxpLmlwYWR8fGkuaXBob25lfHxpLmlwb2R8fGkua2luZGxlfHxpLnBsYXlib29rfHxpLnNpbGt8fGlbXCJ3aW5kb3dzIHBob25lXCJdKSYmKGkubW9iaWxlPSEwKSwoaS5pcG9kfHxpLmlwYWR8fGkuaXBob25lKSYmKGkuaW9zPSEwKSxpW1wid2luZG93cyBwaG9uZVwiXSYmKGkud2lucGhvbmU9ITAsZGVsZXRlIGlbXCJ3aW5kb3dzIHBob25lXCJdKSwoaS5jcm9zfHxpLm1hY3x8aS5saW51eHx8aS53aW4pJiYoaS5kZXNrdG9wPSEwKSwoaS5jaHJvbWV8fGkub3ByfHxpLnNhZmFyaXx8aS52aXZhbGRpKSYmKGkud2Via2l0PSEwKSwoaS5ydnx8aS5pZW1vYmlsZSkmJihlLmJyb3dzZXI9XCJpZVwiLGkuaWU9ITApLGkuZWRnZSYmKGUuYnJvd3Nlcj1cImVkZ2VcIixpLmVkZ2U9ITApLChpLnNhZmFyaSYmaS5ibGFja2JlcnJ5fHxpLmJiKSYmKGUuYnJvd3Nlcj1cImJsYWNrYmVycnlcIixpLmJsYWNrYmVycnk9ITApLGkuc2FmYXJpJiZpLnBsYXlib29rJiYoZS5icm93c2VyPVwicGxheWJvb2tcIixpLnBsYXlib29rPSEwKSxpLm9wciYmKGUuYnJvd3Nlcj1cIm9wZXJhXCIsaS5vcGVyYT0hMCksaS5zYWZhcmkmJmkuYW5kcm9pZCYmKGUuYnJvd3Nlcj1cImFuZHJvaWRcIixpLmFuZHJvaWQ9ITApLGkuc2FmYXJpJiZpLmtpbmRsZSYmKGUuYnJvd3Nlcj1cImtpbmRsZVwiLGkua2luZGxlPSEwKSxpLnNhZmFyaSYmaS5zaWxrJiYoZS5icm93c2VyPVwic2lsa1wiLGkuc2lsaz0hMCksaS52aXZhbGRpJiYoZS5icm93c2VyPVwidml2YWxkaVwiLGkudml2YWxkaT0hMCksaS5uYW1lPWUuYnJvd3NlcixpLnBsYXRmb3JtPWUucGxhdGZvcm0saXNTU1J8fCh3aW5kb3cucHJvY2VzcyYmd2luZG93LnByb2Nlc3MudmVyc2lvbnMmJndpbmRvdy5wcm9jZXNzLnZlcnNpb25zLmVsZWN0cm9uP2kuZWxlY3Ryb249ITA6MD09PWRvY3VtZW50LmxvY2F0aW9uLmhyZWYuaW5kZXhPZihcImNocm9tZS1leHRlbnNpb246Ly9cIik/aS5jaHJvbWVFeHQ9ITA6KHdpbmRvdy5fY29yZG92YU5hdGl2ZXx8d2luZG93LmNvcmRvdmEpJiYoaS5jb3Jkb3ZhPSEwKSwoZnJvbVNTUj12b2lkIDA9PT1pLmNvcmRvdmEmJnZvaWQgMD09PWkuZWxlY3Ryb24mJiEhZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIltkYXRhLXNlcnZlci1yZW5kZXJlZF1cIikpJiYob25TU1I9ITApKSxpfWZ1bmN0aW9uIGhhc1dlYlN0b3JhZ2UoKXtpZih2b2lkIDAhPT13ZWJTdG9yYWdlKXJldHVybiB3ZWJTdG9yYWdlO3RyeXtpZih3aW5kb3cubG9jYWxTdG9yYWdlKXJldHVybiB3ZWJTdG9yYWdlPSEwLCEwfWNhdGNoKHQpe31yZXR1cm4gd2ViU3RvcmFnZT0hMSwhMX1mdW5jdGlvbiBnZXRDbGllbnRQcm9wZXJ0aWVzKCl7cmV0dXJue2hhczp7dG91Y2g6ISEoXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCl8fHdpbmRvdy5uYXZpZ2F0b3IubXNNYXhUb3VjaFBvaW50cz4wLHdlYlN0b3JhZ2U6aGFzV2ViU3RvcmFnZSgpfSx3aXRoaW46e2lmcmFtZTp3aW5kb3cuc2VsZiE9PXdpbmRvdy50b3B9fX12YXIgUGxhdGZvcm09e2hhczp7dG91Y2g6ITEsd2ViU3RvcmFnZTohMX0sd2l0aGluOntpZnJhbWU6ITF9LHBhcnNlU1NSOmZ1bmN0aW9uKHQpe3JldHVybiB0P3tpczpnZXRQbGF0Zm9ybSh0LnJlcS5oZWFkZXJzW1widXNlci1hZ2VudFwiXSksaGFzOnRoaXMuaGFzLHdpdGhpbjp0aGlzLndpdGhpbn06T2JqZWN0LmFzc2lnbih7fSx7aXM6Z2V0UGxhdGZvcm0oKX0sZ2V0Q2xpZW50UHJvcGVydGllcygpKX0saW5zdGFsbDpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dGhpcztpc1NTUj9lLnNlcnZlci5wdXNoKGZ1bmN0aW9uKHQsZSl7dC5wbGF0Zm9ybT1zLnBhcnNlU1NSKGUuc3NyKX0pOih0aGlzLmlzPWdldFBsYXRmb3JtKCksZnJvbVNTUj8oZS50YWtlb3Zlci5wdXNoKGZ1bmN0aW9uKHQpe29uU1NSPWZyb21TU1I9ITEsT2JqZWN0LmFzc2lnbih0LnBsYXRmb3JtLGdldENsaWVudFByb3BlcnRpZXMoKSl9KSxpLnV0aWwuZGVmaW5lUmVhY3RpdmUodCxcInBsYXRmb3JtXCIsdGhpcykpOihPYmplY3QuYXNzaWduKHRoaXMsZ2V0Q2xpZW50UHJvcGVydGllcygpKSx0LnBsYXRmb3JtPXRoaXMpKX19O2Z1bmN0aW9uIGFzc2lnbih0LGUpe3ZhciBpPWFyZ3VtZW50cztpZih2b2lkIDA9PT10fHxudWxsPT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNvbnZlcnQgZmlyc3QgYXJndW1lbnQgdG8gb2JqZWN0XCIpO2Zvcih2YXIgcz1PYmplY3QodCksbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciBvPWlbbl07aWYodm9pZCAwIT09byYmbnVsbCE9PW8pZm9yKHZhciByPU9iamVjdC5rZXlzKE9iamVjdChvKSksYT0wLGw9ci5sZW5ndGg7YTxsO2ErKyl7dmFyIGM9clthXSxoPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobyxjKTt2b2lkIDAhPT1oJiZoLmVudW1lcmFibGUmJihzW2NdPW9bY10pfX1yZXR1cm4gc31PYmplY3QuYXNzaWdufHxPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LFwiYXNzaWduXCIse2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmFzc2lnbn0pLE51bWJlci5pc0ludGVnZXJ8fChOdW1iZXIuaXNJbnRlZ2VyPWZ1bmN0aW9uKHQpe3JldHVyblwibnVtYmVyXCI9PXR5cGVvZiB0JiZpc0Zpbml0ZSh0KSYmTWF0aC5mbG9vcih0KT09PXR9KSxBcnJheS5wcm90b3R5cGUuaW5jbHVkZXN8fChBcnJheS5wcm90b3R5cGUuaW5jbHVkZXM9ZnVuY3Rpb24odCxlKXt2YXIgaT1PYmplY3QodGhpcykscz1wYXJzZUludChpLmxlbmd0aCwxMCl8fDA7aWYoMD09PXMpcmV0dXJuITE7dmFyIG4sbyxyPXBhcnNlSW50KGUsMTApfHwwO2ZvcihyPj0wP249cjoobj1zK3IpPDAmJihuPTApO248czspe2lmKHQ9PT0obz1pW25dKXx8dCE9dCYmbyE9bylyZXR1cm4hMDtuKyt9cmV0dXJuITF9KSxTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGh8fChTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZT1lfHwwLHRoaXMuc3Vic3RyKGUsdC5sZW5ndGgpPT09dH0pLFN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGh8fChTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRoPWZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy50b1N0cmluZygpOyhcIm51bWJlclwiIT10eXBlb2YgZXx8IWlzRmluaXRlKGUpfHxNYXRoLmZsb29yKGUpIT09ZXx8ZT5pLmxlbmd0aCkmJihlPWkubGVuZ3RoKSxlLT10Lmxlbmd0aDt2YXIgcz1pLmluZGV4T2YodCxlKTtyZXR1cm4tMSE9PXMmJnM9PT1lfSksaXNTU1J8fChcImZ1bmN0aW9uXCIhPXR5cGVvZiBFbGVtZW50LnByb3RvdHlwZS5tYXRjaGVzJiYoRWxlbWVudC5wcm90b3R5cGUubWF0Y2hlcz1FbGVtZW50LnByb3RvdHlwZS5tc01hdGNoZXNTZWxlY3Rvcnx8RWxlbWVudC5wcm90b3R5cGUubW96TWF0Y2hlc1NlbGVjdG9yfHxFbGVtZW50LnByb3RvdHlwZS53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0odGhpcy5kb2N1bWVudHx8dGhpcy5vd25lckRvY3VtZW50KS5xdWVyeVNlbGVjdG9yQWxsKHQpLGk9MDtlW2ldJiZlW2ldIT09dGhpczspKytpO3JldHVybiBCb29sZWFuKGVbaV0pfSksXCJmdW5jdGlvblwiIT10eXBlb2YgRWxlbWVudC5wcm90b3R5cGUuY2xvc2VzdCYmKEVsZW1lbnQucHJvdG90eXBlLmNsb3Nlc3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXM7ZSYmMT09PWUubm9kZVR5cGU7KXtpZihlLm1hdGNoZXModCkpcmV0dXJuIGU7ZT1lLnBhcmVudE5vZGV9cmV0dXJuIG51bGx9KSxbRWxlbWVudC5wcm90b3R5cGUsQ2hhcmFjdGVyRGF0YS5wcm90b3R5cGUsRG9jdW1lbnRUeXBlLnByb3RvdHlwZV0uZm9yRWFjaChmdW5jdGlvbih0KXt0Lmhhc093blByb3BlcnR5KFwicmVtb3ZlXCIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcInJlbW92ZVwiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbigpe251bGwhPT10aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzKX19KX0pKSxBcnJheS5wcm90b3R5cGUuZmluZHx8T2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSxcImZpbmRcIix7dmFsdWU6ZnVuY3Rpb24odCl7aWYobnVsbD09dGhpcyl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQXJyYXkucHJvdG90eXBlLmZpbmQgY2FsbGVkIG9uIG51bGwgb3IgdW5kZWZpbmVkXCIpO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcInByZWRpY2F0ZSBtdXN0IGJlIGEgZnVuY3Rpb25cIik7Zm9yKHZhciBlLGk9T2JqZWN0KHRoaXMpLHM9aS5sZW5ndGg+Pj4wLG49YXJndW1lbnRzWzFdLG89MDtvPHM7bysrKWlmKGU9aVtvXSx0LmNhbGwobixlLG8saSkpcmV0dXJuIGV9fSk7dmFyIHZlcnNpb249XCIwLjE3LjIwXCIsSGlzdG9yeT17X19oaXN0b3J5OltdLGFkZDpmdW5jdGlvbigpe30scmVtb3ZlOmZ1bmN0aW9uKCl7fSxpbnN0YWxsOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcztpZighaXNTU1ImJnQucGxhdGZvcm0uaXMuY29yZG92YSl7dGhpcy5hZGQ9ZnVuY3Rpb24odCl7aS5fX2hpc3RvcnkucHVzaCh0KX0sdGhpcy5yZW1vdmU9ZnVuY3Rpb24odCl7dmFyIGU9aS5fX2hpc3RvcnkuaW5kZXhPZih0KTtlPj0wJiZpLl9faGlzdG9yeS5zcGxpY2UoZSwxKX07dmFyIHM9dm9pZCAwPT09ZS5jb3Jkb3ZhfHwhMSE9PWUuY29yZG92YS5iYWNrQnV0dG9uRXhpdDtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiZGV2aWNlcmVhZHlcIixmdW5jdGlvbigpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJiYWNrYnV0dG9uXCIsZnVuY3Rpb24oKXtpLl9faGlzdG9yeS5sZW5ndGg/aS5fX2hpc3RvcnkucG9wKCkuaGFuZGxlcigpOnMmJlwiIy9cIj09PXdpbmRvdy5sb2NhdGlvbi5oYXNoP25hdmlnYXRvci5hcHAuZXhpdEFwcCgpOndpbmRvdy5oaXN0b3J5LmJhY2soKX0sITEpfSl9fX0sbGFuZ0VuPXtsYW5nOlwiZW4tdXNcIixsYWJlbDp7Y2xlYXI6XCJDbGVhclwiLG9rOlwiT0tcIixjYW5jZWw6XCJDYW5jZWxcIixjbG9zZTpcIkNsb3NlXCIsc2V0OlwiU2V0XCIsc2VsZWN0OlwiU2VsZWN0XCIscmVzZXQ6XCJSZXNldFwiLHJlbW92ZTpcIlJlbW92ZVwiLHVwZGF0ZTpcIlVwZGF0ZVwiLGNyZWF0ZTpcIkNyZWF0ZVwiLHNlYXJjaDpcIlNlYXJjaFwiLGZpbHRlcjpcIkZpbHRlclwiLHJlZnJlc2g6XCJSZWZyZXNoXCJ9LGRhdGU6e2RheXM6XCJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheVwiLnNwbGl0KFwiX1wiKSxkYXlzU2hvcnQ6XCJTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXRcIi5zcGxpdChcIl9cIiksbW9udGhzOlwiSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlclwiLnNwbGl0KFwiX1wiKSxtb250aHNTaG9ydDpcIkphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjXCIuc3BsaXQoXCJfXCIpLGZpcnN0RGF5T2ZXZWVrOjAsZm9ybWF0MjRoOiExfSxwdWxsVG9SZWZyZXNoOntwdWxsOlwiUHVsbCBkb3duIHRvIHJlZnJlc2hcIixyZWxlYXNlOlwiUmVsZWFzZSB0byByZWZyZXNoXCIscmVmcmVzaDpcIlJlZnJlc2hpbmcuLi5cIn0sdGFibGU6e25vRGF0YTpcIk5vIGRhdGEgYXZhaWxhYmxlXCIsbm9SZXN1bHRzOlwiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZFwiLGxvYWRpbmc6XCJMb2FkaW5nLi4uXCIsc2VsZWN0ZWRSZWNvcmRzOmZ1bmN0aW9uKHQpe3JldHVybiAxPT09dD9cIjEgcmVjb3JkIHNlbGVjdGVkLlwiOigwPT09dD9cIk5vXCI6dCkrXCIgcmVjb3JkcyBzZWxlY3RlZC5cIn0scmVjb3Jkc1BlclBhZ2U6XCJSZWNvcmRzIHBlciBwYWdlOlwiLGFsbFJvd3M6XCJBbGxcIixwYWdpbmF0aW9uOmZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gdCtcIi1cIitlK1wiIG9mIFwiK2l9LGNvbHVtbnM6XCJDb2x1bW5zXCJ9LGVkaXRvcjp7dXJsOlwiVVJMXCIsYm9sZDpcIkJvbGRcIixpdGFsaWM6XCJJdGFsaWNcIixzdHJpa2V0aHJvdWdoOlwiU3RyaWtldGhyb3VnaFwiLHVuZGVybGluZTpcIlVuZGVybGluZVwiLHVub3JkZXJlZExpc3Q6XCJVbm9yZGVyZWQgTGlzdFwiLG9yZGVyZWRMaXN0OlwiT3JkZXJlZCBMaXN0XCIsc3Vic2NyaXB0OlwiU3Vic2NyaXB0XCIsc3VwZXJzY3JpcHQ6XCJTdXBlcnNjcmlwdFwiLGh5cGVybGluazpcIkh5cGVybGlua1wiLHRvZ2dsZUZ1bGxzY3JlZW46XCJUb2dnbGUgRnVsbHNjcmVlblwiLHF1b3RlOlwiUXVvdGVcIixsZWZ0OlwiTGVmdCBhbGlnblwiLGNlbnRlcjpcIkNlbnRlciBhbGlnblwiLHJpZ2h0OlwiUmlnaHQgYWxpZ25cIixqdXN0aWZ5OlwiSnVzdGlmeSBhbGlnblwiLHByaW50OlwiUHJpbnRcIixvdXRkZW50OlwiRGVjcmVhc2UgaW5kZW50YXRpb25cIixpbmRlbnQ6XCJJbmNyZWFzZSBpbmRlbnRhdGlvblwiLHJlbW92ZUZvcm1hdDpcIlJlbW92ZSBmb3JtYXR0aW5nXCIsZm9ybWF0dGluZzpcIkZvcm1hdHRpbmdcIixmb250U2l6ZTpcIkZvbnQgU2l6ZVwiLGFsaWduOlwiQWxpZ25cIixocjpcIkluc2VydCBIb3Jpem9udGFsIFJ1bGVcIix1bmRvOlwiVW5kb1wiLHJlZG86XCJSZWRvXCIsaGVhZGVyMTpcIkhlYWRlciAxXCIsaGVhZGVyMjpcIkhlYWRlciAyXCIsaGVhZGVyMzpcIkhlYWRlciAzXCIsaGVhZGVyNDpcIkhlYWRlciA0XCIsaGVhZGVyNTpcIkhlYWRlciA1XCIsaGVhZGVyNjpcIkhlYWRlciA2XCIscGFyYWdyYXBoOlwiUGFyYWdyYXBoXCIsY29kZTpcIkNvZGVcIixzaXplMTpcIlZlcnkgc21hbGxcIixzaXplMjpcIkEgYml0IHNtYWxsXCIsc2l6ZTM6XCJOb3JtYWxcIixzaXplNDpcIk1lZGl1bS1sYXJnZVwiLHNpemU1OlwiQmlnXCIsc2l6ZTY6XCJWZXJ5IGJpZ1wiLHNpemU3OlwiTWF4aW11bVwiLGRlZmF1bHRGb250OlwiRGVmYXVsdCBGb250XCJ9LHRyZWU6e25vTm9kZXM6XCJObyBub2RlcyBhdmFpbGFibGVcIixub1Jlc3VsdHM6XCJObyBtYXRjaGluZyBub2RlcyBmb3VuZFwifX0saTE4bj17aW5zdGFsbDpmdW5jdGlvbih0LGUsaSxzKXt2YXIgbj10aGlzO2lzU1NSJiZlLnNlcnZlci5wdXNoKGZ1bmN0aW9uKHQsZSl7dmFyIGk9e2xhbmc6dC5pMThuLmxhbmcsZGlyOnQuaTE4bi5ydGw/XCJydGxcIjpcImx0clwifSxzPWUuc3NyLnNldEh0bWxBdHRycztcImZ1bmN0aW9uXCI9PXR5cGVvZiBzP3MoaSk6ZS5zc3IuUV9IVE1MX0FUVFJTPU9iamVjdC5rZXlzKGkpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdCtcIj1cIitpW3RdfSkuam9pbihcIiBcIil9KSx0aGlzLnNldD1mdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lJiYoZT1sYW5nRW4pLGUuc2V0PW4uc2V0LGUuZ2V0TG9jYWxlPW4uZ2V0TG9jYWxlLGUucnRsPWUucnRsfHwhMSwhaXNTU1Ipe3ZhciBzPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtzLnNldEF0dHJpYnV0ZShcImRpclwiLGUucnRsP1wicnRsXCI6XCJsdHJcIikscy5zZXRBdHRyaWJ1dGUoXCJsYW5nXCIsZS5sYW5nKX1pc1NTUnx8dC5pMThuP3QuaTE4bj1lOmkudXRpbC5kZWZpbmVSZWFjdGl2ZSh0LFwiaTE4blwiLGUpLG4ubmFtZT1lLmxhbmcsbi5sYW5nPWV9LHRoaXMuc2V0KHMpfSxnZXRMb2NhbGU6ZnVuY3Rpb24oKXtpZighaXNTU1Ipe3ZhciB0PW5hdmlnYXRvci5sYW5ndWFnZXx8bmF2aWdhdG9yLmxhbmd1YWdlc1swXXx8bmF2aWdhdG9yLmJyb3dzZXJMYW5ndWFnZXx8bmF2aWdhdG9yLnVzZXJMYW5ndWFnZXx8bmF2aWdhdG9yLnN5c3RlbUxhbmd1YWdlO3JldHVybiB0P3QudG9Mb3dlckNhc2UoKTp2b2lkIDB9fX07ZnVuY3Rpb24gcmdiVG9IZXgodCl7dmFyIGU9dC5yLGk9dC5nLHM9dC5iLG49dC5hLG89dm9pZCAwIT09bjtpZihlPU1hdGgucm91bmQoZSksaT1NYXRoLnJvdW5kKGkpLHM9TWF0aC5yb3VuZChzKSxlPjI1NXx8aT4yNTV8fHM+MjU1fHxvJiZuPjEwMCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgMyBudW1iZXJzIGJlbG93IDI1NiAoYW5kIG9wdGlvbmFsbHkgb25lIGJlbG93IDEwMClcIik7cmV0dXJuIG49bz8oMjU2fE1hdGgucm91bmQoMjU1Km4vMTAwKSkudG9TdHJpbmcoMTYpLnNsaWNlKDEpOlwiXCIsXCIjXCIrKHN8aTw8OHxlPDwxNnwxPDwyNCkudG9TdHJpbmcoMTYpLnNsaWNlKDEpK259ZnVuY3Rpb24gaGV4VG9SZ2IodCl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgc3RyaW5nXCIpOzM9PT0odD10LnJlcGxhY2UoL14jLyxcIlwiKSkubGVuZ3RoP3Q9dFswXSt0WzBdK3RbMV0rdFsxXSt0WzJdK3RbMl06ND09PXQubGVuZ3RoJiYodD10WzBdK3RbMF0rdFsxXSt0WzFdK3RbMl0rdFsyXSt0WzNdK3RbM10pO3ZhciBlPXBhcnNlSW50KHQsMTYpO3JldHVybiB0Lmxlbmd0aD42P3tyOmU+PjI0JjI1NSxnOmU+PjE2JjI1NSxiOmU+PjgmMjU1LGE6TWF0aC5yb3VuZCgoMjU1JmUpLzIuNTUpfTp7cjplPj4xNixnOmU+PjgmMjU1LGI6MjU1JmV9fWZ1bmN0aW9uIGhzdlRvUmdiKHQpe3ZhciBlLGkscyxuLG8scixhLGwsYz10LmgsaD10LnMsdT10LnYsZD10LmE7c3dpdGNoKHI9KHUvPTEwMCkqKDEtKGgvPTEwMCkpLGE9dSooMS0obz02KihjLz0zNjApLShuPU1hdGguZmxvb3IoNipjKSkpKmgpLGw9dSooMS0oMS1vKSpoKSxuJTYpe2Nhc2UgMDplPXUsaT1sLHM9cjticmVhaztjYXNlIDE6ZT1hLGk9dSxzPXI7YnJlYWs7Y2FzZSAyOmU9cixpPXUscz1sO2JyZWFrO2Nhc2UgMzplPXIsaT1hLHM9dTticmVhaztjYXNlIDQ6ZT1sLGk9cixzPXU7YnJlYWs7Y2FzZSA1OmU9dSxpPXIscz1hfXJldHVybntyOk1hdGgucm91bmQoMjU1KmUpLGc6TWF0aC5yb3VuZCgyNTUqaSksYjpNYXRoLnJvdW5kKDI1NSpzKSxhOmR9fWZ1bmN0aW9uIHJnYlRvSHN2KHQpe3ZhciBlLGk9dC5yLHM9dC5nLG49dC5iLG89dC5hLHI9TWF0aC5tYXgoaSxzLG4pLGE9TWF0aC5taW4oaSxzLG4pLGw9ci1hLGM9MD09PXI/MDpsL3IsaD1yLzI1NTtzd2l0Y2gocil7Y2FzZSBhOmU9MDticmVhaztjYXNlIGk6ZT1zLW4rbCooczxuPzY6MCksZS89NipsO2JyZWFrO2Nhc2UgczplPW4taSsyKmwsZS89NipsO2JyZWFrO2Nhc2UgbjplPWktcys0KmwsZS89NipsfXJldHVybntoOk1hdGgucm91bmQoMzYwKmUpLHM6TWF0aC5yb3VuZCgxMDAqYyksdjpNYXRoLnJvdW5kKDEwMCpoKSxhOm99fXZhciByZVJHQkE9L15cXHMqcmdiKGEpP1xccypcXCgoXFxzKihcXGQrKVxccyosXFxzKj8pezJ9KFxcZCspXFxzKiw/XFxzKihbMDFdP1xcLj9cXGQqPyk/XFxzKlxcKVxccyokLztmdW5jdGlvbiB0ZXh0VG9SZ2IodCl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgc3RyaW5nXCIpO3ZhciBlPXJlUkdCQS5leGVjKHQpO2lmKGUpe3ZhciBpPXtyOk1hdGgubWF4KDI1NSxwYXJzZUludChlWzJdLDEwKSksZzpNYXRoLm1heCgyNTUscGFyc2VJbnQoZVszXSwxMCkpLGI6TWF0aC5tYXgoMjU1LHBhcnNlSW50KGVbNF0sMTApKX07cmV0dXJuIGVbMV0mJihpLmE9TWF0aC5tYXgoMSxwYXJzZUZsb2F0KGVbNV0pKSksaX1yZXR1cm4gaGV4VG9SZ2IodCl9ZnVuY3Rpb24gbGlnaHRlbih0LGUpe2lmKFwic3RyaW5nXCIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIHN0cmluZyBhcyBjb2xvclwiKTtpZihcIm51bWJlclwiIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYSBudW1lcmljIHBlcmNlbnRcIik7dmFyIGk9dGV4dFRvUmdiKHQpLHM9ZTwwPzA6MjU1LG49TWF0aC5hYnMoZSkvMTAwLG89aS5yLHI9aS5nLGE9aS5iO3JldHVyblwiI1wiKygxNjc3NzIxNis2NTUzNiooTWF0aC5yb3VuZCgocy1vKSpuKStvKSsyNTYqKE1hdGgucm91bmQoKHMtcikqbikrcikrKE1hdGgucm91bmQoKHMtYSkqbikrYSkpLnRvU3RyaW5nKDE2KS5zbGljZSgxKX1mdW5jdGlvbiBsdW1pbm9zaXR5KHQpe2lmKFwic3RyaW5nXCIhPXR5cGVvZiB0JiYoIXR8fHZvaWQgMD09PXQucikpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgc3RyaW5nIG9yIGEge3IsIGcsIGJ9IG9iamVjdCBhcyBjb2xvclwiKTt2YXIgZT1cInN0cmluZ1wiPT10eXBlb2YgdD90ZXh0VG9SZ2IodCk6dCxpPWUuci8yNTUscz1lLmcvMjU1LG49ZS5iLzI1NTtyZXR1cm4uMjEyNiooaTw9LjAzOTI4P2kvMTIuOTI6TWF0aC5wb3coKGkrLjA1NSkvMS4wNTUsMi40KSkrLjcxNTIqKHM8PS4wMzkyOD9zLzEyLjkyOk1hdGgucG93KChzKy4wNTUpLzEuMDU1LDIuNCkpKy4wNzIyKihuPD0uMDM5Mjg/bi8xMi45MjpNYXRoLnBvdygobisuMDU1KS8xLjA1NSwyLjQpKX1mdW5jdGlvbiBzZXRCcmFuZCh0LGUsaSl7aWYodm9pZCAwPT09aSYmKGk9ZG9jdW1lbnQuYm9keSksXCJzdHJpbmdcIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgc3RyaW5nIGFzIGNvbG9yXCIpO2lmKFwic3RyaW5nXCIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIHN0cmluZyBhcyB2YWx1ZVwiKTtpZighKGkgaW5zdGFuY2VvZiBFbGVtZW50KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYSBET00gZWxlbWVudFwiKTtzd2l0Y2goaS5zdHlsZS5zZXRQcm9wZXJ0eShcIi0tcS1jb2xvci1cIit0LGUpLHQpe2Nhc2VcIm5lZ2F0aXZlXCI6Y2FzZVwid2FybmluZ1wiOmkuc3R5bGUuc2V0UHJvcGVydHkoXCItLXEtY29sb3ItXCIrdCtcIi1sXCIsbGlnaHRlbihlLDQ2KSk7YnJlYWs7Y2FzZVwibGlnaHRcIjppLnN0eWxlLnNldFByb3BlcnR5KFwiLS1xLWNvbG9yLVwiK3QrXCItZFwiLGxpZ2h0ZW4oZSwtMTApKX19ZnVuY3Rpb24gZ2V0QnJhbmQodCxlKXtpZih2b2lkIDA9PT1lJiYoZT1kb2N1bWVudC5ib2R5KSxcInN0cmluZ1wiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYSBzdHJpbmcgYXMgY29sb3JcIik7aWYoIShlIGluc3RhbmNlb2YgRWxlbWVudCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgRE9NIGVsZW1lbnRcIik7cmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZSkuZ2V0UHJvcGVydHlWYWx1ZShcIi0tcS1jb2xvci1cIit0KS50cmltKCl8fG51bGx9dmFyIGNvbG9ycz17cmdiVG9IZXg6cmdiVG9IZXgsaGV4VG9SZ2I6aGV4VG9SZ2IsaHN2VG9SZ2I6aHN2VG9SZ2IscmdiVG9Ic3Y6cmdiVG9Ic3YsdGV4dFRvUmdiOnRleHRUb1JnYixsaWdodGVuOmxpZ2h0ZW4sbHVtaW5vc2l0eTpsdW1pbm9zaXR5LHNldEJyYW5kOnNldEJyYW5kLGdldEJyYW5kOmdldEJyYW5kfTtmdW5jdGlvbiBnZXRCb2R5Q2xhc3Nlcyh0LGUpe3ZhciBpPXQuaXMscz10LmhhcyxuPXQud2l0aGluLG89W1wibWF0XCIsaS5kZXNrdG9wP1wiZGVza3RvcFwiOlwibW9iaWxlXCIscy50b3VjaD9cInRvdWNoXCI6XCJuby10b3VjaFwiLFwicGxhdGZvcm0tXCIrKGkuaW9zP1wiaW9zXCI6XCJtYXRcIildO2lmKGkuY29yZG92YSYmKG8ucHVzaChcImNvcmRvdmFcIiksaS5pb3MmJih2b2lkIDA9PT1lLmNvcmRvdmF8fCExIT09ZS5jb3Jkb3ZhLmlvc1N0YXR1c0JhclBhZGRpbmcpKSl7dmFyIHI9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDEsYT13aW5kb3cuc2NyZWVuLndpZHRoKnIsbD13aW5kb3cuc2NyZWVuLmhlaWdodCpyOzExMjU9PT1hJiYyNDM2PT09bCYmby5wdXNoKFwicS1pb3Mtc3RhdHVzYmFyLXhcIiksMTEyNT09PWEmJjIwMDE9PT1sfHxvLnB1c2goXCJxLWlvcy1zdGF0dXNiYXItcGFkZGluZ1wiKX1yZXR1cm4gbi5pZnJhbWUmJm8ucHVzaChcIndpdGhpbi1pZnJhbWVcIiksaS5lbGVjdHJvbiYmby5wdXNoKFwiZWxlY3Ryb25cIiksb31mdW5jdGlvbiBib2R5SW5pdCh0LGUpe3ZhciBpPWdldEJvZHlDbGFzc2VzKHQsZSk7dC5pcy5pZSYmMTE9PT10LmlzLnZlcnNpb25OdW1iZXI/aS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQodCl9KTpkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQuYXBwbHkoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QsaSksdC5pcy5pb3MmJmRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixmdW5jdGlvbigpe30pfWZ1bmN0aW9uIHNldENvbG9ycyh0KXtmb3IodmFyIGUgaW4gdClzZXRCcmFuZChlLHRbZV0pfXZhciBCb2R5PXtpbnN0YWxsOmZ1bmN0aW9uKHQsZSxpKXtpc1NTUj9lLnNlcnZlci5wdXNoKGZ1bmN0aW9uKHQsZSl7dmFyIHM9Z2V0Qm9keUNsYXNzZXModC5wbGF0Zm9ybSxpKSxuPWUuc3NyLnNldEJvZHlDbGFzc2VzO1wiZnVuY3Rpb25cIj09dHlwZW9mIG4/bihzKTplLnNzci5RX0JPRFlfQ0xBU1NFUz1zLmpvaW4oXCIgXCIpfSk6KGkuYnJhbmQmJnNldENvbG9ycyhpLmJyYW5kKSxib2R5SW5pdCh0LnBsYXRmb3JtLGkpKX19LG1hdGVyaWFsSWNvbnM9e25hbWU6XCJtYXRlcmlhbC1pY29uc1wiLHR5cGU6e3Bvc2l0aXZlOlwiY2hlY2tfY2lyY2xlXCIsbmVnYXRpdmU6XCJ3YXJuaW5nXCIsaW5mbzpcImluZm9cIix3YXJuaW5nOlwicHJpb3JpdHlfaGlnaFwifSxhcnJvdzp7dXA6XCJhcnJvd191cHdhcmRcIixyaWdodDpcImFycm93X2ZvcndhcmRcIixkb3duOlwiYXJyb3dfZG93bndhcmRcIixsZWZ0OlwiYXJyb3dfYmFja1wifSxjaGV2cm9uOntsZWZ0OlwiY2hldnJvbl9sZWZ0XCIscmlnaHQ6XCJjaGV2cm9uX3JpZ2h0XCJ9LHB1bGxUb1JlZnJlc2g6e2Fycm93OlwiYXJyb3dfZG93bndhcmRcIixyZWZyZXNoOlwicmVmcmVzaFwifSxzZWFyY2g6e2ljb246XCJzZWFyY2hcIixjbGVhcjpcImNhbmNlbFwiLGNsZWFySW52ZXJ0ZWQ6XCJjbGVhclwifSxjYXJvdXNlbDp7bGVmdDpcImNoZXZyb25fbGVmdFwiLHJpZ2h0OlwiY2hldnJvbl9yaWdodFwiLHF1aWNrTmF2OlwibGVuc1wiLHRodW1ibmFpbHM6XCJ2aWV3X2Nhcm91c2VsXCJ9LGNoZWNrYm94OntjaGVja2VkOntpb3M6XCJjaGVja19jaXJjbGVcIixtYXQ6XCJjaGVja19ib3hcIn0sdW5jaGVja2VkOntpb3M6XCJyYWRpb19idXR0b25fdW5jaGVja2VkXCIsbWF0OlwiY2hlY2tfYm94X291dGxpbmVfYmxhbmtcIn0saW5kZXRlcm1pbmF0ZTp7aW9zOlwicmVtb3ZlX2NpcmNsZV9vdXRsaW5lXCIsbWF0OlwiaW5kZXRlcm1pbmF0ZV9jaGVja19ib3hcIn19LGNoaXA6e2Nsb3NlOlwiY2FuY2VsXCJ9LGNoaXBzSW5wdXQ6e2FkZDpcInNlbmRcIn0sY29sbGFwc2libGU6e2ljb246XCJhcnJvd19kcm9wX2Rvd25cIn0sZGF0ZXRpbWU6e2Fycm93TGVmdDpcImNoZXZyb25fbGVmdFwiLGFycm93UmlnaHQ6XCJjaGV2cm9uX3JpZ2h0XCJ9LGVkaXRvcjp7Ym9sZDpcImZvcm1hdF9ib2xkXCIsaXRhbGljOlwiZm9ybWF0X2l0YWxpY1wiLHN0cmlrZXRocm91Z2g6XCJzdHJpa2V0aHJvdWdoX3NcIix1bmRlcmxpbmU6XCJmb3JtYXRfdW5kZXJsaW5lZFwiLHVub3JkZXJlZExpc3Q6XCJmb3JtYXRfbGlzdF9idWxsZXRlZFwiLG9yZGVyZWRMaXN0OlwiZm9ybWF0X2xpc3RfbnVtYmVyZWRcIixzdWJzY3JpcHQ6XCJ2ZXJ0aWNhbF9hbGlnbl9ib3R0b21cIixzdXBlcnNjcmlwdDpcInZlcnRpY2FsX2FsaWduX3RvcFwiLGh5cGVybGluazpcImxpbmtcIix0b2dnbGVGdWxsc2NyZWVuOlwiZnVsbHNjcmVlblwiLHF1b3RlOlwiZm9ybWF0X3F1b3RlXCIsbGVmdDpcImZvcm1hdF9hbGlnbl9sZWZ0XCIsY2VudGVyOlwiZm9ybWF0X2FsaWduX2NlbnRlclwiLHJpZ2h0OlwiZm9ybWF0X2FsaWduX3JpZ2h0XCIsanVzdGlmeTpcImZvcm1hdF9hbGlnbl9qdXN0aWZ5XCIscHJpbnQ6XCJwcmludFwiLG91dGRlbnQ6XCJmb3JtYXRfaW5kZW50X2RlY3JlYXNlXCIsaW5kZW50OlwiZm9ybWF0X2luZGVudF9pbmNyZWFzZVwiLHJlbW92ZUZvcm1hdDpcImZvcm1hdF9jbGVhclwiLGZvcm1hdHRpbmc6XCJ0ZXh0X2Zvcm1hdFwiLGZvbnRTaXplOlwiZm9ybWF0X3NpemVcIixhbGlnbjpcImZvcm1hdF9hbGlnbl9sZWZ0XCIsaHI6XCJyZW1vdmVcIix1bmRvOlwidW5kb1wiLHJlZG86XCJyZWRvXCIsaGVhZGVyOlwiZm9ybWF0X3NpemVcIixjb2RlOlwiY29kZVwiLHNpemU6XCJmb3JtYXRfc2l6ZVwiLGZvbnQ6XCJmb250X2Rvd25sb2FkXCJ9LGZhYjp7aWNvbjpcImFkZFwiLGFjdGl2ZUljb246XCJjbG9zZVwifSxpbnB1dDp7c2hvd1Bhc3M6XCJ2aXNpYmlsaXR5XCIsaGlkZVBhc3M6XCJ2aXNpYmlsaXR5X29mZlwiLHNob3dOdW1iZXI6XCJrZXlib2FyZFwiLGhpZGVOdW1iZXI6XCJrZXlib2FyZF9oaWRlXCIsY2xlYXI6XCJjYW5jZWxcIixjbGVhckludmVydGVkOlwiY2xlYXJcIixkcm9wZG93bjpcImFycm93X2Ryb3BfZG93blwifSxwYWdpbmF0aW9uOntmaXJzdDpcImZpcnN0X3BhZ2VcIixwcmV2Olwia2V5Ym9hcmRfYXJyb3dfbGVmdFwiLG5leHQ6XCJrZXlib2FyZF9hcnJvd19yaWdodFwiLGxhc3Q6XCJsYXN0X3BhZ2VcIn0scmFkaW86e2NoZWNrZWQ6e2lvczpcImNoZWNrXCIsbWF0OlwicmFkaW9fYnV0dG9uX2NoZWNrZWRcIn0sdW5jaGVja2VkOntpb3M6XCJcIixtYXQ6XCJyYWRpb19idXR0b25fdW5jaGVja2VkXCJ9fSxyYXRpbmc6e2ljb246XCJncmFkZVwifSxzdGVwcGVyOntkb25lOlwiY2hlY2tcIixhY3RpdmU6XCJlZGl0XCIsZXJyb3I6XCJ3YXJuaW5nXCJ9LHRhYnM6e2xlZnQ6XCJjaGV2cm9uX2xlZnRcIixyaWdodDpcImNoZXZyb25fcmlnaHRcIn0sdGFibGU6e2Fycm93VXA6XCJhcnJvd191cHdhcmRcIix3YXJuaW5nOlwid2FybmluZ1wiLHByZXZQYWdlOlwiY2hldnJvbl9sZWZ0XCIsbmV4dFBhZ2U6XCJjaGV2cm9uX3JpZ2h0XCJ9LHRyZWU6e2ljb246XCJwbGF5X2Fycm93XCJ9LHVwbG9hZGVyOntkb25lOlwiZG9uZVwiLGNsZWFyOlwiY2FuY2VsXCIsY2xlYXJJbnZlcnRlZDpcImNsZWFyXCIsYWRkOlwiYWRkXCIsdXBsb2FkOlwiY2xvdWRfdXBsb2FkXCIsZXhwYW5kOlwia2V5Ym9hcmRfYXJyb3dfZG93blwiLGZpbGU6XCJpbnNlcnRfZHJpdmVfZmlsZVwifX0sSWNvbnM9e19faW5zdGFsbGVkOiExLGluc3RhbGw6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXM7dGhpcy5zZXQ9ZnVuY3Rpb24oaSl7dm9pZCAwPT09aSYmKGk9bWF0ZXJpYWxJY29ucyksaS5zZXQ9cy5zZXQsaXNTU1J8fHQuaWNvbj90Lmljb249aTplLnV0aWwuZGVmaW5lUmVhY3RpdmUodCxcImljb25cIixpKSxzLm5hbWU9aS5uYW1lLHMuZGVmPWl9LHRoaXMuc2V0KGkpfX0scXVldWVzPXtzZXJ2ZXI6W10sdGFrZW92ZXI6W119LCRxPXt2ZXJzaW9uOnZlcnNpb24sdGhlbWU6XCJtYXRcIn07ZnVuY3Rpb24gaW5zdGFsbCh0LGUpe2lmKHZvaWQgMD09PWUmJihlPXt9KSwhdGhpcy5fX2luc3RhbGxlZCl7dGhpcy5fX2luc3RhbGxlZD0hMDt2YXIgaT1lLmNvbmZpZ3x8e307aWYoUGxhdGZvcm0uaW5zdGFsbCgkcSxxdWV1ZXMsdCksQm9keS5pbnN0YWxsKCRxLHF1ZXVlcyxpKSxIaXN0b3J5Lmluc3RhbGwoJHEsaSksaTE4bi5pbnN0YWxsKCRxLHF1ZXVlcyx0LGUuaTE4biksSWNvbnMuaW5zdGFsbCgkcSx0LGUuaWNvblNldCksaXNTU1I/dC5taXhpbih7YmVmb3JlQ3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy4kcT10aGlzLiRyb290LiRvcHRpb25zLiRxfX0pOnQucHJvdG90eXBlLiRxPSRxLGUuY29tcG9uZW50cyYmT2JqZWN0LmtleXMoZS5jb21wb25lbnRzKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBzPWUuY29tcG9uZW50c1tpXTt2b2lkIDA9PT1zLm5hbWV8fHZvaWQgMD09PXMucmVuZGVyJiZ2b2lkIDA9PT1zLm1peGluc3x8dC5jb21wb25lbnQocy5uYW1lLHMpfSksZS5kaXJlY3RpdmVzJiZPYmplY3Qua2V5cyhlLmRpcmVjdGl2ZXMpLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIHM9ZS5kaXJlY3RpdmVzW2ldO3ZvaWQgMCE9PXMubmFtZSYmdm9pZCAwIT09cy51bmJpbmQmJnQuZGlyZWN0aXZlKHMubmFtZSxzKX0pLGUucGx1Z2lucyl7dmFyIHM9eyRxOiRxLHF1ZXVlczpxdWV1ZXMsVnVlOnQsY2ZnOml9O09iamVjdC5rZXlzKGUucGx1Z2lucykuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgaT1lLnBsdWdpbnNbdF07XCJmdW5jdGlvblwiPT10eXBlb2YgaS5pbnN0YWxsJiZpIT09UGxhdGZvcm0mJmkuaW5zdGFsbChzKX0pfX19dmFyIG1peGluPXttb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztxdWV1ZXMudGFrZW92ZXIuZm9yRWFjaChmdW5jdGlvbihlKXtlKHQuJHEpfSl9fTtmdW5jdGlvbiBzc3JVcGRhdGUodCl7aWYodC5zc3Ipe3ZhciBlPU9iamVjdC5hc3NpZ24oe30sJHEpO09iamVjdC5hc3NpZ24odC5zc3Ise1FfSEVBRF9UQUdTOlwiXCIsUV9CT0RZX0FUVFJTOlwiXCIsUV9CT0RZX1RBR1M6XCJcIn0pLHF1ZXVlcy5zZXJ2ZXIuZm9yRWFjaChmdW5jdGlvbihpKXtpKGUsdCl9KSx0LmFwcC4kcT1lfWVsc2V7dmFyIGk9dC5hcHAubWl4aW5zfHxbXTtpLmluY2x1ZGVzKG1peGluKXx8KHQuYXBwLm1peGlucz1pLmNvbmNhdChtaXhpbikpfX12YXIgdGhlbWU9XCJtYXRcIixWdWVQbHVnaW49e3ZlcnNpb246dmVyc2lvbixpbnN0YWxsOmluc3RhbGwsaTE4bjppMThuLGljb25zOkljb25zLHRoZW1lOnRoZW1lLHNzclVwZGF0ZTpzc3JVcGRhdGV9LGhhbmRsZXJzPVtdLEVzY2FwZUtleT17X19pbnN0YWxsZWQ6ITEsX19pbnN0YWxsOmZ1bmN0aW9uKCl7dGhpcy5fX2luc3RhbGxlZD0hMCx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsZnVuY3Rpb24odCl7MCE9PWhhbmRsZXJzLmxlbmd0aCYmKDI3IT09dC53aGljaCYmMjchPT10LmtleUNvZGV8fGhhbmRsZXJzW2hhbmRsZXJzLmxlbmd0aC0xXSgpKX0pfSxyZWdpc3RlcjpmdW5jdGlvbih0KXtQbGF0Zm9ybS5pcy5kZXNrdG9wJiYodGhpcy5fX2luc3RhbGxlZHx8dGhpcy5fX2luc3RhbGwoKSxoYW5kbGVycy5wdXNoKHQpKX0scG9wOmZ1bmN0aW9uKCl7UGxhdGZvcm0uaXMuZGVza3RvcCYmaGFuZGxlcnMucG9wKCl9fSxNb2RlbFRvZ2dsZU1peGluPXtwcm9wczp7dmFsdWU6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzaG93aW5nOiExfX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5kaXNhYmxlJiZ0P3RoaXMuJGVtaXQoXCJpbnB1dFwiLCExKTp0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe2UudmFsdWUhPT1lLnNob3dpbmcmJmVbdD9cInNob3dcIjpcImhpZGVcIl0oKX0pfX0sbWV0aG9kczp7dG9nZ2xlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzW3RoaXMuc2hvd2luZz9cImhpZGVcIjpcInNob3dcIl0odCl9LHNob3c6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5kaXNhYmxlfHx0aGlzLnNob3dpbmc/dGhpcy5zaG93UHJvbWlzZXx8UHJvbWlzZS5yZXNvbHZlKHQpOih0aGlzLmhpZGVQcm9taXNlJiZ0aGlzLmhpZGVQcm9taXNlUmVqZWN0KCksdGhpcy5zaG93aW5nPSEwLCExPT09dGhpcy52YWx1ZSYmdGhpcy4kZW1pdChcImlucHV0XCIsITApLCh2b2lkIDA9PT10aGlzLiRvcHRpb25zLm1vZGVsVG9nZ2xlfHx0aGlzLiRvcHRpb25zLm1vZGVsVG9nZ2xlLmhpc3RvcnkpJiYodGhpcy5fX2hpc3RvcnlFbnRyeT17aGFuZGxlcjp0aGlzLmhpZGV9LEhpc3RvcnkuYWRkKHRoaXMuX19oaXN0b3J5RW50cnkpKSx0aGlzLl9fc2hvdz8odGhpcy5zaG93UHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihpLHMpe2Uuc2hvd1Byb21pc2VSZXNvbHZlPWZ1bmN0aW9uKCl7ZS5zaG93UHJvbWlzZT1udWxsLGUuJGVtaXQoXCJzaG93XCIsdCksaSh0KX0sZS5zaG93UHJvbWlzZVJlamVjdD1mdW5jdGlvbigpe2Uuc2hvd1Byb21pc2UuY2F0Y2goZnVuY3Rpb24oKXt9KSxlLnNob3dQcm9taXNlPW51bGwscyhudWxsKX19KSx0aGlzLl9fc2hvdyh0KSx0aGlzLnNob3dQcm9taXNlfHxQcm9taXNlLnJlc29sdmUodCkpOih0aGlzLiRlbWl0KFwic2hvd1wiLHQpLFByb21pc2UucmVzb2x2ZSh0KSkpfSxoaWRlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuZGlzYWJsZXx8IXRoaXMuc2hvd2luZz90aGlzLmhpZGVQcm9taXNlfHxQcm9taXNlLnJlc29sdmUodCk6KHRoaXMuc2hvd1Byb21pc2UmJnRoaXMuc2hvd1Byb21pc2VSZWplY3QoKSx0aGlzLnNob3dpbmc9ITEsITA9PT10aGlzLnZhbHVlJiZ0aGlzLiRlbWl0KFwiaW5wdXRcIiwhMSksdGhpcy5fX3JlbW92ZUhpc3RvcnkoKSx0aGlzLl9faGlkZT8odGhpcy5oaWRlUHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihpLHMpe2UuaGlkZVByb21pc2VSZXNvbHZlPWZ1bmN0aW9uKCl7ZS5oaWRlUHJvbWlzZT1udWxsLGUuJGVtaXQoXCJoaWRlXCIsdCksaSgpfSxlLmhpZGVQcm9taXNlUmVqZWN0PWZ1bmN0aW9uKCl7ZS5oaWRlUHJvbWlzZS5jYXRjaChmdW5jdGlvbigpe30pLGUuaGlkZVByb21pc2U9bnVsbCxzKG51bGwpfX0pLHRoaXMuX19oaWRlKHQpLHRoaXMuaGlkZVByb21pc2V8fFByb21pc2UucmVzb2x2ZSh0KSk6KHRoaXMuJGVtaXQoXCJoaWRlXCIsdCksUHJvbWlzZS5yZXNvbHZlKCkpKX0sX19yZW1vdmVIaXN0b3J5OmZ1bmN0aW9uKCl7dGhpcy5fX2hpc3RvcnlFbnRyeSYmKEhpc3RvcnkucmVtb3ZlKHRoaXMuX19oaXN0b3J5RW50cnkpLHRoaXMuX19oaXN0b3J5RW50cnk9bnVsbCl9fSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5zaG93aW5nJiYodGhpcy5zaG93UHJvbWlzZSYmdGhpcy5zaG93UHJvbWlzZVJlamVjdCgpLHRoaXMuaGlkZVByb21pc2UmJnRoaXMuaGlkZVByb21pc2VSZWplY3QoKSx0aGlzLl9fcmVtb3ZlSGlzdG9yeSgpKX19LGxpc3Rlbk9wdHM9e307ZnVuY3Rpb24gbGVmdENsaWNrKHQpe3JldHVybiAwPT09dC5idXR0b259ZnVuY3Rpb24gbWlkZGxlQ2xpY2sodCl7cmV0dXJuIDE9PT10LmJ1dHRvbn1mdW5jdGlvbiByaWdodENsaWNrKHQpe3JldHVybiAyPT09dC5idXR0b259ZnVuY3Rpb24gZ2V0RXZlbnRLZXkodCl7cmV0dXJuIHQud2hpY2h8fHQua2V5Q29kZX1mdW5jdGlvbiBwb3NpdGlvbih0KXt2YXIgZSxpO2lmKHQudG91Y2hlcyYmdC50b3VjaGVzWzBdP3Q9dC50b3VjaGVzWzBdOnQuY2hhbmdlZFRvdWNoZXMmJnQuY2hhbmdlZFRvdWNoZXNbMF0mJih0PXQuY2hhbmdlZFRvdWNoZXNbMF0pLHQuY2xpZW50WHx8dC5jbGllbnRZKWU9dC5jbGllbnRYLGk9dC5jbGllbnRZO2Vsc2UgaWYodC5wYWdlWHx8dC5wYWdlWSllPXQucGFnZVgtZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0LWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0LGk9dC5wYWdlWS1kb2N1bWVudC5ib2R5LnNjcm9sbFRvcC1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wO2Vsc2V7dmFyIHM9dGFyZ2V0RWxlbWVudCh0KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlPShzLnJpZ2h0LXMubGVmdCkvMitzLmxlZnQsaT0ocy5ib3R0b20tcy50b3ApLzIrcy50b3B9cmV0dXJue3RvcDppLGxlZnQ6ZX19ZnVuY3Rpb24gdGFyZ2V0RWxlbWVudCh0KXt2YXIgZTtyZXR1cm4gdC50YXJnZXQ/ZT10LnRhcmdldDp0LnNyY0VsZW1lbnQmJihlPXQuc3JjRWxlbWVudCksMz09PWUubm9kZVR5cGUmJihlPWUucGFyZW50Tm9kZSksZX1mdW5jdGlvbiBnZXRFdmVudFBhdGgodCl7aWYodC5wYXRoKXJldHVybiB0LnBhdGg7aWYodC5jb21wb3NlZFBhdGgpcmV0dXJuIHQuY29tcG9zZWRQYXRoKCk7Zm9yKHZhciBlPVtdLGk9dC50YXJnZXQ7aTspe2lmKGUucHVzaChpKSxcIkhUTUxcIj09PWkudGFnTmFtZSlyZXR1cm4gZS5wdXNoKGRvY3VtZW50KSxlLnB1c2god2luZG93KSxlO2k9aS5wYXJlbnRFbGVtZW50fX1PYmplY3QuZGVmaW5lUHJvcGVydHkobGlzdGVuT3B0cyxcInBhc3NpdmVcIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciB0O3RyeXt2YXIgZT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sXCJwYXNzaXZlXCIse2dldDpmdW5jdGlvbigpe3Q9e3Bhc3NpdmU6ITB9fX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicXRlc3RcIixudWxsLGUpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicXRlc3RcIixudWxsLGUpfWNhdGNoKHQpe31yZXR1cm4gbGlzdGVuT3B0cy5wYXNzaXZlPXQsdH0sc2V0OmZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwicGFzc2l2ZVwiLHt2YWx1ZTp0fSl9fSk7dmFyIExJTkVfSEVJR0hUPTQwLFBBR0VfSEVJR0hUPTgwMDtmdW5jdGlvbiBnZXRNb3VzZVdoZWVsRGlzdGFuY2UodCl7dmFyIGUsaT10LmRlbHRhWCxzPXQuZGVsdGFZO2lmKChpfHxzKSYmdC5kZWx0YU1vZGUpe3ZhciBuPTE9PT10LmRlbHRhTW9kZT9MSU5FX0hFSUdIVDpQQUdFX0hFSUdIVDtpKj1uLHMqPW59cmV0dXJuIHQuc2hpZnRLZXkmJiFpJiYocz0oZT1baSxzXSlbMF0saT1lWzFdKSx7eDppLHk6c319ZnVuY3Rpb24gc3RvcEFuZFByZXZlbnQodCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCl9dmFyIGV2ZW50PXtsaXN0ZW5PcHRzOmxpc3Rlbk9wdHMsbGVmdENsaWNrOmxlZnRDbGljayxtaWRkbGVDbGljazptaWRkbGVDbGljayxyaWdodENsaWNrOnJpZ2h0Q2xpY2ssZ2V0RXZlbnRLZXk6Z2V0RXZlbnRLZXkscG9zaXRpb246cG9zaXRpb24sdGFyZ2V0RWxlbWVudDp0YXJnZXRFbGVtZW50LGdldEV2ZW50UGF0aDpnZXRFdmVudFBhdGgsZ2V0TW91c2VXaGVlbERpc3RhbmNlOmdldE1vdXNlV2hlZWxEaXN0YW5jZSxzdG9wQW5kUHJldmVudDpzdG9wQW5kUHJldmVudH07ZnVuY3Rpb24gb2Zmc2V0KHQpe2lmKCF0fHx0PT09d2luZG93KXJldHVybnt0b3A6MCxsZWZ0OjB9O3ZhciBlPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue3RvcDplLnRvcCxsZWZ0OmUubGVmdH19ZnVuY3Rpb24gc3R5bGUodCxlKXtyZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuZ2V0UHJvcGVydHlWYWx1ZShlKX1mdW5jdGlvbiBoZWlnaHQodCl7cmV0dXJuIHQ9PT13aW5kb3c/d2luZG93LmlubmVySGVpZ2h0OnBhcnNlRmxvYXQoc3R5bGUodCxcImhlaWdodFwiKSl9ZnVuY3Rpb24gd2lkdGgodCl7cmV0dXJuIHQ9PT13aW5kb3c/d2luZG93LmlubmVyV2lkdGg6cGFyc2VGbG9hdChzdHlsZSh0LFwid2lkdGhcIikpfWZ1bmN0aW9uIGNzcyh0LGUpe3ZhciBpPXQuc3R5bGU7T2JqZWN0LmtleXMoZSkuZm9yRWFjaChmdW5jdGlvbih0KXtpW3RdPWVbdF19KX1mdW5jdGlvbiByZWFkeSh0KXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0KXJldHVyblwibG9hZGluZ1wiIT09ZG9jdW1lbnQucmVhZHlTdGF0ZT90KCk6dm9pZCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLHQsITEpfXZhciBwcmVmaXg9W1wiLXdlYmtpdC1cIixcIi1tb3otXCIsXCItbXMtXCIsXCItby1cIl07ZnVuY3Rpb24gY3NzVHJhbnNmb3JtKHQpe3ZhciBlPXt0cmFuc2Zvcm06dH07cmV0dXJuIHByZWZpeC5mb3JFYWNoKGZ1bmN0aW9uKGkpe2VbaStcInRyYW5zZm9ybVwiXT10fSksZX12YXIgc2l6ZSxkb209e29mZnNldDpvZmZzZXQsc3R5bGU6c3R5bGUsaGVpZ2h0OmhlaWdodCx3aWR0aDp3aWR0aCxjc3M6Y3NzLHJlYWR5OnJlYWR5LGNzc1RyYW5zZm9ybTpjc3NUcmFuc2Zvcm19O2Z1bmN0aW9uIGdldFNjcm9sbFRhcmdldCh0KXtyZXR1cm4gdC5jbG9zZXN0KFwiLnNjcm9sbCwuc2Nyb2xsLXksLm92ZXJmbG93LWF1dG9cIil8fHdpbmRvd31mdW5jdGlvbiBnZXRTY3JvbGxIZWlnaHQodCl7cmV0dXJuKHQ9PT13aW5kb3c/ZG9jdW1lbnQuYm9keTp0KS5zY3JvbGxIZWlnaHR9ZnVuY3Rpb24gZ2V0U2Nyb2xsUG9zaXRpb24odCl7cmV0dXJuIHQ9PT13aW5kb3c/d2luZG93LnBhZ2VZT2Zmc2V0fHx3aW5kb3cuc2Nyb2xsWXx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3B8fDA6dC5zY3JvbGxUb3B9ZnVuY3Rpb24gZ2V0SG9yaXpvbnRhbFNjcm9sbFBvc2l0aW9uKHQpe3JldHVybiB0PT09d2luZG93P3dpbmRvdy5wYWdlWE9mZnNldHx8d2luZG93LnNjcm9sbFh8fGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdHx8MDp0LnNjcm9sbExlZnR9ZnVuY3Rpb24gYW5pbVNjcm9sbFRvKHQsZSxpKXt2YXIgcz1nZXRTY3JvbGxQb3NpdGlvbih0KTtpPD0wP3MhPT1lJiZzZXRTY3JvbGwodCxlKTpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXt2YXIgbj1zKyhlLXMpL01hdGgubWF4KDE2LGkpKjE2O3NldFNjcm9sbCh0LG4pLG4hPT1lJiZhbmltU2Nyb2xsVG8odCxlLGktMTYpfSl9ZnVuY3Rpb24gc2V0U2Nyb2xsKHQsZSl7aWYodD09PXdpbmRvdylyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcD1lLHZvaWQoZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A9ZSk7dC5zY3JvbGxUb3A9ZX1mdW5jdGlvbiBzZXRTY3JvbGxQb3NpdGlvbih0LGUsaSl7aT9hbmltU2Nyb2xsVG8odCxlLGkpOnNldFNjcm9sbCh0LGUpfWZ1bmN0aW9uIGdldFNjcm9sbGJhcldpZHRoKCl7aWYodm9pZCAwIT09c2l6ZSlyZXR1cm4gc2l6ZTt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwicFwiKSxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7Y3NzKHQse3dpZHRoOlwiMTAwJVwiLGhlaWdodDpcIjIwMHB4XCJ9KSxjc3MoZSx7cG9zaXRpb246XCJhYnNvbHV0ZVwiLHRvcDpcIjBweFwiLGxlZnQ6XCIwcHhcIix2aXNpYmlsaXR5OlwiaGlkZGVuXCIsd2lkdGg6XCIyMDBweFwiLGhlaWdodDpcIjE1MHB4XCIsb3ZlcmZsb3c6XCJoaWRkZW5cIn0pLGUuYXBwZW5kQ2hpbGQodCksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTt2YXIgaT10Lm9mZnNldFdpZHRoO2Uuc3R5bGUub3ZlcmZsb3c9XCJzY3JvbGxcIjt2YXIgcz10Lm9mZnNldFdpZHRoO3JldHVybiBpPT09cyYmKHM9ZS5jbGllbnRXaWR0aCksZS5yZW1vdmUoKSxzaXplPWktc31mdW5jdGlvbiBoYXNTY3JvbGxiYXIodCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ITApLCEoIXR8fHQubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERSkmJihlP3Quc2Nyb2xsSGVpZ2h0PnQuY2xpZW50SGVpZ2h0JiYodC5jbGFzc0xpc3QuY29udGFpbnMoXCJzY3JvbGxcIil8fHQuY2xhc3NMaXN0LmNvbnRhaW5zKFwib3ZlcmZsb3ctYXV0b1wiKXx8W1wiYXV0b1wiLFwic2Nyb2xsXCJdLmluY2x1ZGVzKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpW1wib3ZlcmZsb3cteVwiXSkpOnQuc2Nyb2xsV2lkdGg+dC5jbGllbnRXaWR0aCYmKHQuY2xhc3NMaXN0LmNvbnRhaW5zKFwic2Nyb2xsXCIpfHx0LmNsYXNzTGlzdC5jb250YWlucyhcIm92ZXJmbG93LWF1dG9cIil8fFtcImF1dG9cIixcInNjcm9sbFwiXS5pbmNsdWRlcyh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KVtcIm92ZXJmbG93LXhcIl0pKSl9dmFyIHNjcm9sbD17Z2V0U2Nyb2xsVGFyZ2V0OmdldFNjcm9sbFRhcmdldCxnZXRTY3JvbGxIZWlnaHQ6Z2V0U2Nyb2xsSGVpZ2h0LGdldFNjcm9sbFBvc2l0aW9uOmdldFNjcm9sbFBvc2l0aW9uLGFuaW1TY3JvbGxUbzphbmltU2Nyb2xsVG8sc2V0U2Nyb2xsUG9zaXRpb246c2V0U2Nyb2xsUG9zaXRpb24sZ2V0U2Nyb2xsYmFyV2lkdGg6Z2V0U2Nyb2xsYmFyV2lkdGgsaGFzU2Nyb2xsYmFyOmhhc1Njcm9sbGJhcn0scmVnaXN0ZXJlZD0wO2Z1bmN0aW9uIG9uV2hlZWwodCl7c2hvdWxkUHJldmVudFNjcm9sbCh0KSYmc3RvcEFuZFByZXZlbnQodCl9ZnVuY3Rpb24gc2hvdWxkUHJldmVudFNjcm9sbCh0KXtpZih0LnRhcmdldD09PWRvY3VtZW50LmJvZHl8fHQudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucyhcInEtbGF5b3V0LWJhY2tkcm9wXCIpKXJldHVybiEwO2Zvcih2YXIgZT1nZXRFdmVudFBhdGgodCksaT10LnNoaWZ0S2V5JiYhdC5kZWx0YVgscz0haSYmTWF0aC5hYnModC5kZWx0YVgpPD1NYXRoLmFicyh0LmRlbHRhWSksbj1pfHxzP3QuZGVsdGFZOnQuZGVsdGFYLG89MDtvPGUubGVuZ3RoO28rKyl7dmFyIHI9ZVtvXTtpZihoYXNTY3JvbGxiYXIocixzKSlyZXR1cm4gcz9uPDAmJjA9PT1yLnNjcm9sbFRvcHx8bj4wJiZyLnNjcm9sbFRvcCtyLmNsaWVudEhlaWdodD09PXIuc2Nyb2xsSGVpZ2h0Om48MCYmMD09PXIuc2Nyb2xsTGVmdHx8bj4wJiZyLnNjcm9sbExlZnQrci5jbGllbnRXaWR0aD09PXIuc2Nyb2xsV2lkdGh9cmV0dXJuITB9ZnVuY3Rpb24gcHJldmVudFNjcm9sbCh0KXtpZighKChyZWdpc3RlcmVkKz10PzE6LTEpPjEpKXt2YXIgZT10P1wiYWRkXCI6XCJyZW1vdmVcIjtQbGF0Zm9ybS5pcy5tb2JpbGU/ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3RbZV0oXCJxLWJvZHktcHJldmVudC1zY3JvbGxcIik6UGxhdGZvcm0uaXMuZGVza3RvcCYmd2luZG93W2UrXCJFdmVudExpc3RlbmVyXCJdKFwid2hlZWxcIixvbldoZWVsKX19dmFyIHBvc2l0aW9ucz17dG9wOlwiaXRlbXMtc3RhcnQganVzdGlmeS1jZW50ZXIgd2l0aC1iYWNrZHJvcFwiLGJvdHRvbTpcIml0ZW1zLWVuZCBqdXN0aWZ5LWNlbnRlciB3aXRoLWJhY2tkcm9wXCIscmlnaHQ6XCJpdGVtcy1jZW50ZXIganVzdGlmeS1lbmQgd2l0aC1iYWNrZHJvcFwiLGxlZnQ6XCJpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydCB3aXRoLWJhY2tkcm9wXCJ9LHBvc2l0aW9uQ1NTPXttYXhIZWlnaHQ6XCI4MHZoXCIsaGVpZ2h0OlwiYXV0b1wifTtmdW5jdGlvbiBhZGRpdGlvbmFsQ1NTKHQpe3ZhciBlPXt9O3JldHVybltcImxlZnRcIixcInJpZ2h0XCJdLmluY2x1ZGVzKHQpJiYoZS5tYXhXaWR0aD1cIjkwdndcIiksW1wibGVmdFwiLFwidG9wXCJdLmluY2x1ZGVzKHQpJiYoZS5ib3JkZXJUb3BMZWZ0UmFkaXVzPTApLFtcInJpZ2h0XCIsXCJ0b3BcIl0uaW5jbHVkZXModCkmJihlLmJvcmRlclRvcFJpZ2h0UmFkaXVzPTApLFtcImxlZnRcIixcImJvdHRvbVwiXS5pbmNsdWRlcyh0KSYmKGUuYm9yZGVyQm90dG9tTGVmdFJhZGl1cz0wKSxbXCJyaWdodFwiLFwiYm90dG9tXCJdLmluY2x1ZGVzKHQpJiYoZS5ib3JkZXJCb3R0b21SaWdodFJhZGl1cz0wKSxlfXZhciBtb2RhbHM9e3Jlc3BvbnNpdmU6MCxtYXhpbWl6ZWQ6MH0sUU1vZGFsPXtuYW1lOlwiUU1vZGFsXCIsbWl4aW5zOltNb2RlbFRvZ2dsZU1peGluXSxwcm92aWRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm57X19xbW9kYWw6e3JlZ2lzdGVyOmZ1bmN0aW9uKGUpe3QubGF5b3V0IT09ZSYmKHQubGF5b3V0PWUpfSx1bnJlZ2lzdGVyOmZ1bmN0aW9uKGUpe3QubGF5b3V0PT09ZSYmKHQubGF5b3V0PW51bGwpfX19fSxwcm9wczp7cG9zaXRpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuXCJcIj09PXR8fFtcInRvcFwiLFwiYm90dG9tXCIsXCJsZWZ0XCIsXCJyaWdodFwiXS5pbmNsdWRlcyh0KX19LHRyYW5zaXRpb246U3RyaW5nLGVudGVyQ2xhc3M6U3RyaW5nLGxlYXZlQ2xhc3M6U3RyaW5nLHBvc2l0aW9uQ2xhc3Nlczp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImZsZXgtY2VudGVyXCJ9LGNvbnRlbnRDbGFzc2VzOltPYmplY3QsQXJyYXksU3RyaW5nXSxjb250ZW50Q3NzOltPYmplY3QsQXJyYXksU3RyaW5nXSxub0JhY2tkcm9wRGlzbWlzczp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LG5vRXNjRGlzbWlzczp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LG5vUm91dGVEaXNtaXNzOkJvb2xlYW4sbm9SZWZvY3VzOkJvb2xlYW4sbWluaW1pemVkOkJvb2xlYW4sbWF4aW1pemVkOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57bGF5b3V0Om51bGx9fSx3YXRjaDp7JHJvdXRlOmZ1bmN0aW9uKCl7dGhpcy5ub1JvdXRlRGlzbWlzc3x8dGhpcy5oaWRlKCl9LG1heGltaXplZDpmdW5jdGlvbih0LGUpe3RoaXMuX19yZWdpc3RlcighMSxlKSx0aGlzLl9fcmVnaXN0ZXIoITAsdCl9LG1pbmltaXplZDpmdW5jdGlvbih0LGUpe3RoaXMuX19yZWdpc3RlcighMSx0aGlzLm1heGltaXplZCxlKSx0aGlzLl9fcmVnaXN0ZXIoITAsdGhpcy5tYXhpbWl6ZWQsdCl9fSxjb21wdXRlZDp7bW9kYWxDbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wb3NpdGlvbj9wb3NpdGlvbnNbdGhpcy5wb3NpdGlvbl06dGhpcy5wb3NpdGlvbkNsYXNzZXM7cmV0dXJuIHRoaXMubWF4aW1pemVkP1tcIm1heGltaXplZFwiLHRdOnRoaXMubWluaW1pemVkP1tcIm1pbmltaXplZFwiLHRdOnR9LGNvbnRlbnRDbGFzc2VzQ2FsYzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dD9bdGhpcy5jb250ZW50Q2xhc3NlcyxcImNvbHVtbiBuby13cmFwXCJdOnRoaXMuY29udGVudENsYXNzZXN9LHRyYW5zaXRpb25Qcm9wczpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBvc2l0aW9uP3tuYW1lOlwicS1tb2RhbC1cIit0aGlzLnBvc2l0aW9ufTp0aGlzLmVudGVyQ2xhc3N8fHRoaXMubGVhdmVDbGFzcz97ZW50ZXJBY3RpdmVDbGFzczp0aGlzLmVudGVyQ2xhc3MsbGVhdmVBY3RpdmVDbGFzczp0aGlzLmxlYXZlQ2xhc3N9OntuYW1lOnRoaXMudHJhbnNpdGlvbnx8XCJxLW1vZGFsXCJ9fSxtb2RhbENzczpmdW5jdGlvbigpe2lmKHRoaXMucG9zaXRpb24pe3ZhciB0PUFycmF5LmlzQXJyYXkodGhpcy5jb250ZW50Q3NzKT90aGlzLmNvbnRlbnRDc3M6W3RoaXMuY29udGVudENzc107cmV0dXJuIHQudW5zaGlmdChPYmplY3QuYXNzaWduKHt9LHBvc2l0aW9uQ1NTLGFkZGl0aW9uYWxDU1ModGhpcy5wb3NpdGlvbikpKSx0fXJldHVybiB0aGlzLmNvbnRlbnRDc3N9fSxtZXRob2RzOntfX2Rpc21pc3M6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMubm9CYWNrZHJvcERpc21pc3M/dGhpcy5fX3NoYWtlKCk6dGhpcy5oaWRlKCkudGhlbihmdW5jdGlvbigpe3QuJGVtaXQoXCJkaXNtaXNzXCIpfSl9LF9fc2hvdzpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5ub1JlZm9jdXN8fCh0aGlzLl9fcmVmb2N1c1RhcmdldD1kb2N1bWVudC5hY3RpdmVFbGVtZW50KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuJGVsKSx0aGlzLl9fcmVnaXN0ZXIoITApLHByZXZlbnRTY3JvbGwoITApLEVzY2FwZUtleS5yZWdpc3RlcihmdW5jdGlvbigpe3Qubm9Fc2NEaXNtaXNzP3QuX19zaGFrZSgpOih0LiRlbWl0KFwiZXNjYXBlLWtleVwiKSx0LmhpZGUoKS50aGVuKGZ1bmN0aW9uKCl7dC4kZW1pdChcImRpc21pc3NcIil9KSl9KTt2YXIgZT10aGlzLiRyZWZzLmNvbnRlbnQ7dGhpcy4kcS5wbGF0Zm9ybS5pcy5pb3MmJmUuY2xpY2soKSxlLnNjcm9sbFRvcD0wLFtcIm1vZGFsLXNjcm9sbFwiLFwibGF5b3V0LXZpZXdcIl0uZm9yRWFjaChmdW5jdGlvbih0KXtbXS5zbGljZS5jYWxsKGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh0KSkuZm9yRWFjaChmdW5jdGlvbih0KXt0LnNjcm9sbFRvcD0wfSl9KSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3JldHVybiBlJiZlLmZvY3VzKCl9KX0sX19oaWRlOmZ1bmN0aW9uKCl7dGhpcy5fX2NsZWFudXAoKSwhdGhpcy5ub1JlZm9jdXMmJnRoaXMuX19yZWZvY3VzVGFyZ2V0JiYodGhpcy5fX3JlZm9jdXNUYXJnZXQuZm9jdXMoKSwhdGhpcy5fX3JlZm9jdXNUYXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKFwicS1pZlwiKSYmdGhpcy5fX3JlZm9jdXNUYXJnZXQuYmx1cigpKX0sX19jbGVhbnVwOmZ1bmN0aW9uKCl7RXNjYXBlS2V5LnBvcCgpLHByZXZlbnRTY3JvbGwoITEpLHRoaXMuX19yZWdpc3RlcighMSl9LF9fc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9LF9fcmVnaXN0ZXI6ZnVuY3Rpb24odCxlLGkpe3ZvaWQgMD09PWUmJihlPXRoaXMubWF4aW1pemVkKSx2b2lkIDA9PT1pJiYoaT10aGlzLm1pbmltaXplZCk7dmFyIHM9dD97YWN0aW9uOlwiYWRkXCIsc3RlcDoxfTp7YWN0aW9uOlwicmVtb3ZlXCIsc3RlcDotMX07aWYoZSl7aWYobW9kYWxzLm1heGltaXplZCs9cy5zdGVwLCF0JiZtb2RhbHMubWF4aW1pemVkPjApcmV0dXJuO2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0W3MuYWN0aW9uXShcInEtbWF4aW1pemVkLW1vZGFsXCIpfWVsc2UgaWYoIWkpe2lmKG1vZGFscy5yZXNwb25zaXZlKz1zLnN0ZXAsIXQmJm1vZGFscy5yZXNwb25zaXZlPjApcmV0dXJuO2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0W3MuYWN0aW9uXShcInEtcmVzcG9uc2l2ZS1tb2RhbFwiKX19LF9fc2hha2U6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJGVsLmNsYXNzTGlzdC5yZW1vdmUoXCJhbmltYXRlLXNoYWtlXCIpLHRoaXMuJGVsLmNsYXNzTGlzdC5hZGQoXCJhbmltYXRlLXNoYWtlXCIpLGNsZWFyVGltZW91dCh0aGlzLnNoYWtlVGltZW91dCksdGhpcy5zaGFrZVRpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe3QuJGVsLmNsYXNzTGlzdC5yZW1vdmUoXCJhbmltYXRlLXNoYWtlXCIpfSwxNTApfX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMudmFsdWUmJnRoaXMuc2hvdygpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMuc2hha2VUaW1lb3V0KSx0aGlzLiRlbC5yZW1vdmUoKSx0aGlzLnNob3dpbmcmJnRoaXMuX19jbGVhbnVwKCl9LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFwidHJhbnNpdGlvblwiLHtwcm9wczp0aGlzLnRyYW5zaXRpb25Qcm9wcyxvbjp7YWZ0ZXJFbnRlcjpmdW5jdGlvbigpe2Uuc2hvd1Byb21pc2UmJmUuc2hvd1Byb21pc2VSZXNvbHZlKCl9LGVudGVyQ2FuY2VsbGVkOmZ1bmN0aW9uKCl7ZS5zaG93UHJvbWlzZSYmZS5zaG93UHJvbWlzZVJlamVjdCgpLGUuJGVsLnJlbW92ZSgpfSxhZnRlckxlYXZlOmZ1bmN0aW9uKCl7ZS5oaWRlUHJvbWlzZSYmZS5oaWRlUHJvbWlzZVJlc29sdmUoKSxlLiRlbC5yZW1vdmUoKX0sbGVhdmVDYW5jZWxsZWQ6ZnVuY3Rpb24oKXtlLmhpZGVQcm9taXNlJiZlLmhpZGVQcm9taXNlUmVqZWN0KCl9fX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJtb2RhbCBmdWxsc2NyZWVuIHJvd1wiLGNsYXNzOnRoaXMubW9kYWxDbGFzc2VzLGRpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHZhbHVlOnRoaXMuc2hvd2luZ31dfSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcIm1vZGFsLWJhY2tkcm9wIGFic29sdXRlLWZ1bGxcIixvbjp7Y2xpY2s6dGhpcy5fX2Rpc21pc3N9fSksdChcImRpdlwiLHtyZWY6XCJjb250ZW50XCIsc3RhdGljQ2xhc3M6XCJtb2RhbC1jb250ZW50XCIsc3R5bGU6dGhpcy5tb2RhbENzcyxjbGFzczp0aGlzLmNvbnRlbnRDbGFzc2VzQ2FsYyxhdHRyczp7dGFiaW5kZXg6LTF9LG9uOntjbGljazp0aGlzLl9fc3RvcFByb3BhZ2F0aW9uLHRvdWNoc3RhcnQ6dGhpcy5fX3N0b3BQcm9wYWdhdGlvbn19LHRoaXMuJHNsb3RzLmRlZmF1bHQpXSldKX19LHByZWZpeCQxPVwibWRcIixRSWNvbj17bmFtZTpcIlFJY29uXCIscHJvcHM6e25hbWU6U3RyaW5nLGNvbG9yOlN0cmluZyxzaXplOlN0cmluZ30sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXMubmFtZTtyZXR1cm4gZT8odD0vXmZhW3N8cnxsfGJdezAsMX0gLy50ZXN0KGUpfHxlLnN0YXJ0c1dpdGgoXCJpY29uLVwiKT9lOmUuc3RhcnRzV2l0aChcImJ0LVwiKT9cImJ0IFwiK2U6ZS5zdGFydHNXaXRoKFwiZXZhLVwiKT9cImV2YSBcIitlOi9eaW9uLShtZHxpb3N8bG9nbykvLnRlc3QoZSk/XCJpb25pY29ucyBcIitlOmUuc3RhcnRzV2l0aChcImlvbi1cIik/XCJpb25pY29ucyBpb24tXCIrcHJlZml4JDErZS5zdWJzdHIoMyk6ZS5zdGFydHNXaXRoKFwibWRpLVwiKT9cIm1kaSBcIitlOlwibWF0ZXJpYWwtaWNvbnNcIix0aGlzLmNvbG9yP3QrXCIgdGV4dC1cIit0aGlzLmNvbG9yOnQpOlwiXCJ9LGNvbnRlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbGFzc2VzLnN0YXJ0c1dpdGgoXCJtYXRlcmlhbC1pY29uc1wiKT90aGlzLm5hbWUucmVwbGFjZSgvIC9nLFwiX1wiKTpcIiBcIn0sc3R5bGU6ZnVuY3Rpb24oKXtpZih0aGlzLnNpemUpcmV0dXJue2ZvbnRTaXplOnRoaXMuc2l6ZX19fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJpXCIse3N0YXRpY0NsYXNzOlwicS1pY29uXCIsY2xhc3M6dGhpcy5jbGFzc2VzLHN0eWxlOnRoaXMuc3R5bGUsYXR0cnM6e1wiYXJpYS1oaWRkZW5cIjohMH19LFt0aGlzLmNvbnRlbnQsdGhpcy4kc2xvdHMuZGVmYXVsdF0pfX0sUUxpc3Q9e25hbWU6XCJRTGlzdFwiLHByb3BzOntub0JvcmRlcjpCb29sZWFuLGRhcms6Qm9vbGVhbixkZW5zZTpCb29sZWFuLHNwYXJzZTpCb29sZWFuLHN0cmlwZWQ6Qm9vbGVhbixzdHJpcGVkT2RkOkJvb2xlYW4sc2VwYXJhdG9yOkJvb2xlYW4saW5zZXRTZXBhcmF0b3I6Qm9vbGVhbixtdWx0aWxpbmU6Qm9vbGVhbixoaWdobGlnaHQ6Qm9vbGVhbixsaW5rOkJvb2xlYW59LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJue1wibm8tYm9yZGVyXCI6dGhpcy5ub0JvcmRlcixcInEtbGlzdC1kYXJrXCI6dGhpcy5kYXJrLFwicS1saXN0LWRlbnNlXCI6dGhpcy5kZW5zZSxcInEtbGlzdC1zcGFyc2VcIjp0aGlzLnNwYXJzZSxcInEtbGlzdC1zdHJpcGVkXCI6dGhpcy5zdHJpcGVkLFwicS1saXN0LXN0cmlwZWQtb2RkXCI6dGhpcy5zdHJpcGVkT2RkLFwicS1saXN0LXNlcGFyYXRvclwiOnRoaXMuc2VwYXJhdG9yLFwicS1saXN0LWluc2V0LXNlcGFyYXRvclwiOnRoaXMuaW5zZXRTZXBhcmF0b3IsXCJxLWxpc3QtbXVsdGlsaW5lXCI6dGhpcy5tdWx0aWxpbmUsXCJxLWxpc3QtaGlnaGxpZ2h0XCI6dGhpcy5oaWdobGlnaHQsXCJxLWxpc3QtbGlua1wiOnRoaXMubGlua319fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWxpc3RcIixjbGFzczp0aGlzLmNsYXNzZXN9LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0scm91dGVyTGlua0V2ZW50TmFtZT1cInFyb3V0ZXJsaW5rY2xpY2tcIixldnQ9bnVsbDtpZighaXNTU1IpdHJ5e2V2dD1uZXcgRXZlbnQocm91dGVyTGlua0V2ZW50TmFtZSl9Y2F0Y2godCl7KGV2dD1kb2N1bWVudC5jcmVhdGVFdmVudChcIkV2ZW50XCIpKS5pbml0RXZlbnQocm91dGVyTGlua0V2ZW50TmFtZSwhMCwhMSl9dmFyIHJvdXRlckxpbmtQcm9wcz17dG86W1N0cmluZyxPYmplY3RdLGV4YWN0OkJvb2xlYW4sYXBwZW5kOkJvb2xlYW4scmVwbGFjZTpCb29sZWFuLGV2ZW50OltTdHJpbmcsQXJyYXldLGFjdGl2ZUNsYXNzOlN0cmluZyxleGFjdEFjdGl2ZUNsYXNzOlN0cmluZ30sUm91dGVyTGlua01peGluPXtwcm9wczpyb3V0ZXJMaW5rUHJvcHMsZGF0YTpmdW5jdGlvbigpe3JldHVybntyb3V0ZXJMaW5rRXZlbnROYW1lOnJvdXRlckxpbmtFdmVudE5hbWV9fX07ZnVuY3Rpb24gdGV4dFN0eWxlKHQpe3JldHVybiB2b2lkIDA9PT10fHx0PDI/e306e292ZXJmbG93OlwiaGlkZGVuXCIsZGlzcGxheTpcIi13ZWJraXQtYm94XCIsXCItd2Via2l0LWJveC1vcmllbnRcIjpcInZlcnRpY2FsXCIsXCItd2Via2l0LWxpbmUtY2xhbXBcIjp0fX12YXIgc3ViSXRlbVByb3BzPXtpY29uOlN0cmluZyxyaWdodEljb246U3RyaW5nLGltYWdlOlN0cmluZyxyaWdodEltYWdlOlN0cmluZyxhdmF0YXI6U3RyaW5nLHJpZ2h0QXZhdGFyOlN0cmluZyxsZXR0ZXI6U3RyaW5nLHJpZ2h0TGV0dGVyOlN0cmluZyxsYWJlbDpTdHJpbmcsc3VibGFiZWw6U3RyaW5nLGxhYmVsTGluZXM6W1N0cmluZyxOdW1iZXJdLHN1YmxhYmVsTGluZXM6W1N0cmluZyxOdW1iZXJdfSxJdGVtTWl4aW49e21peGluczpbe3Byb3BzOnJvdXRlckxpbmtQcm9wc31dLHByb3BzOntkYXJrOkJvb2xlYW4sbGluazpCb29sZWFuLGRlbnNlOkJvb2xlYW4sc3BhcnNlOkJvb2xlYW4sc2VwYXJhdG9yOkJvb2xlYW4saW5zZXRTZXBhcmF0b3I6Qm9vbGVhbixtdWx0aWxpbmU6Qm9vbGVhbixoaWdobGlnaHQ6Qm9vbGVhbix0YWc6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJkaXZcIn19LGNvbXB1dGVkOntpdGVtQ2xhc3NlczpmdW5jdGlvbigpe3JldHVybntcInEtaXRlbVwiOiEwLFwicS1pdGVtLWRpdmlzaW9uXCI6ITAsXCJyZWxhdGl2ZS1wb3NpdGlvblwiOiEwLFwicS1pdGVtLWRhcmtcIjp0aGlzLmRhcmssXCJxLWl0ZW0tZGVuc2VcIjp0aGlzLmRlbnNlLFwicS1pdGVtLXNwYXJzZVwiOnRoaXMuc3BhcnNlLFwicS1pdGVtLXNlcGFyYXRvclwiOnRoaXMuc2VwYXJhdG9yLFwicS1pdGVtLWluc2V0LXNlcGFyYXRvclwiOnRoaXMuaW5zZXRTZXBhcmF0b3IsXCJxLWl0ZW0tbXVsdGlsaW5lXCI6dGhpcy5tdWx0aWxpbmUsXCJxLWl0ZW0taGlnaGxpZ2h0XCI6dGhpcy5oaWdobGlnaHQsXCJxLWl0ZW0tbGlua1wiOnRoaXMudG98fHRoaXMubGlua319fX0sUUl0ZW09e25hbWU6XCJRSXRlbVwiLG1peGluczpbSXRlbU1peGluXSxwcm9wczp7YWN0aXZlOkJvb2xlYW4sbGluazpCb29sZWFufSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3JldHVyblt2b2lkIDAhPT10aGlzLnRvP1wicS1saW5rXCI6e2FjdGl2ZTp0aGlzLmFjdGl2ZX0sdGhpcy5pdGVtQ2xhc3Nlc119fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMudG8/dChcInJvdXRlci1saW5rXCIse3Byb3BzOk9iamVjdC5hc3NpZ24oe30sdGhpcy4kcHJvcHMse3RhZzpcImFcIn0pLGNsYXNzOnRoaXMuY2xhc3Nlc30sdGhpcy4kc2xvdHMuZGVmYXVsdCk6dCh0aGlzLnRhZyx7Y2xhc3M6dGhpcy5jbGFzc2VzfSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFJdGVtU2lkZT17bmFtZTpcIlFJdGVtU2lkZVwiLHByb3BzOntyaWdodDpCb29sZWFuLGljb246U3RyaW5nLGxldHRlcjp7dHlwZTpTdHJpbmcsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiAxPT09dC5sZW5ndGh9fSxpbnZlcnRlZDpCb29sZWFuLGF2YXRhcjpTdHJpbmcsaW1hZ2U6U3RyaW5nLHN0YW1wOlN0cmluZyxjb2xvcjpTdHJpbmcsdGV4dENvbG9yOlN0cmluZ30sY29tcHV0ZWQ6e3R5cGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybltcImljb25cIixcImltYWdlXCIsXCJhdmF0YXJcIixcImxldHRlclwiLFwic3RhbXBcIl0uZmluZChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pfSxjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W1wicS1pdGVtLXNpZGUtXCIrKHRoaXMucmlnaHQ/XCJyaWdodFwiOlwibGVmdFwiKV07cmV0dXJuIXRoaXMuY29sb3J8fHRoaXMuaWNvbnx8dGhpcy5sZXR0ZXJ8fHQucHVzaChcInRleHQtXCIrdGhpcy5jb2xvciksdH0sdHlwZUNsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXCJxLWl0ZW0tXCIrdGhpcy50eXBlXTtyZXR1cm4gdGhpcy5jb2xvciYmKHRoaXMuaW52ZXJ0ZWQmJih0aGlzLmljb258fHRoaXMubGV0dGVyKT90LnB1c2goXCJiZy1cIit0aGlzLmNvbG9yKTp0aGlzLnRleHRDb2xvcnx8dC5wdXNoKFwidGV4dC1cIit0aGlzLmNvbG9yKSksdGhpcy50ZXh0Q29sb3ImJnQucHVzaChcInRleHQtXCIrdGhpcy50ZXh0Q29sb3IpLHRoaXMuaW52ZXJ0ZWQmJih0aGlzLmljb258fHRoaXMubGV0dGVyKSYmKHQucHVzaChcInEtaXRlbS1pbnZlcnRlZFwiKSx0LnB1c2goXCJmbGV4XCIpLHQucHVzaChcImZsZXgtY2VudGVyXCIpKSx0fSxpbWFnZVBhdGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbWFnZXx8dGhpcy5hdmF0YXJ9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIHRoaXMudHlwZSYmKHRoaXMuaWNvbj8oZT10KFFJY29uLHtjbGFzczp0aGlzLmludmVydGVkP251bGw6dGhpcy50eXBlQ2xhc3Nlcyxwcm9wczp7bmFtZTp0aGlzLmljb259fSksdGhpcy5pbnZlcnRlZCYmKGU9dChcImRpdlwiLHtjbGFzczp0aGlzLnR5cGVDbGFzc2VzfSxbZV0pKSk6ZT10aGlzLmltYWdlUGF0aD90KFwiaW1nXCIse2NsYXNzOnRoaXMudHlwZUNsYXNzZXMsYXR0cnM6e3NyYzp0aGlzLmltYWdlUGF0aH19KTp0KFwiZGl2XCIse2NsYXNzOnRoaXMudHlwZUNsYXNzZXN9LFt0aGlzLnN0YW1wfHx0aGlzLmxldHRlcl0pKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1pdGVtLXNpZGUgcS1pdGVtLXNlY3Rpb25cIixjbGFzczp0aGlzLmNsYXNzZXN9LFtlLHRoaXMuJHNsb3RzLmRlZmF1bHRdKX19O2Z1bmN0aW9uIHRleHQodCxlLGkscyl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWl0ZW0tXCIrZSsoMT09PShzPXBhcnNlSW50KHMsMTApKT9cIiBlbGxpcHNpc1wiOlwiXCIpLHN0eWxlOnRleHRTdHlsZShzKSxkb21Qcm9wczp7aW5uZXJIVE1MOml9fSl9dmFyIFFJdGVtTWFpbj17bmFtZTpcIlFJdGVtTWFpblwiLHByb3BzOntsYWJlbDpTdHJpbmcsbGFiZWxMaW5lczpbU3RyaW5nLE51bWJlcl0sc3VibGFiZWw6U3RyaW5nLHN1YmxhYmVsTGluZXM6W1N0cmluZyxOdW1iZXJdLGluc2V0OkJvb2xlYW4sdGFnOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiZGl2XCJ9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQodGhpcy50YWcse3N0YXRpY0NsYXNzOlwicS1pdGVtLW1haW4gcS1pdGVtLXNlY3Rpb25cIixjbGFzczp7XCJxLWl0ZW0tbWFpbi1pbnNldFwiOnRoaXMuaW5zZXR9fSxbdGhpcy5sYWJlbD90ZXh0KHQsXCJsYWJlbFwiLHRoaXMubGFiZWwsdGhpcy5sYWJlbExpbmVzKTpudWxsLHRoaXMuc3VibGFiZWw/dGV4dCh0LFwic3VibGFiZWxcIix0aGlzLnN1YmxhYmVsLHRoaXMuc3VibGFiZWxMaW5lcyk6bnVsbCx0aGlzLiRzbG90cy5kZWZhdWx0XSl9fSxRSXRlbVNlcGFyYXRvcj17bmFtZTpcIlFJdGVtU2VwYXJhdG9yXCIscHJvcHM6e2luc2V0OkJvb2xlYW59LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaXRlbS1zZXBhcmF0b3ItY29tcG9uZW50XCIsY2xhc3M6e1wicS1pdGVtLXNlcGFyYXRvci1pbnNldC1jb21wb25lbnRcIjp0aGlzLmluc2V0fX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRQWN0aW9uU2hlZXQ9e25hbWU6XCJRQWN0aW9uU2hlZXRcIixwcm9wczp7dmFsdWU6Qm9vbGVhbix0aXRsZTpTdHJpbmcsZ3JpZDpCb29sZWFuLGFjdGlvbnM6QXJyYXksZGlzbWlzc0xhYmVsOlN0cmluZ30sY29tcHV0ZWQ6e2NvbnRlbnRDc3M6ZnVuY3Rpb24oKXt9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPVtdLHM9dGhpcy4kc2xvdHMudGl0bGV8fHRoaXMudGl0bGU7cmV0dXJuIHMmJmkucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1hY3Rpb25zaGVldC10aXRsZSBjb2x1bW4ganVzdGlmeS1jZW50ZXJcIn0sW3NdKSksaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWFjdGlvbnNoZWV0LWJvZHkgc2Nyb2xsXCJ9LHRoaXMuYWN0aW9ucz9bdGhpcy5ncmlkP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWFjdGlvbnNoZWV0LWdyaWQgcm93IHdyYXAgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwifSx0aGlzLl9fZ2V0QWN0aW9ucyh0KSk6dChRTGlzdCx7c3RhdGljQ2xhc3M6XCJuby1ib3JkZXJcIixwcm9wczp7bGluazohMH19LHRoaXMuX19nZXRBY3Rpb25zKHQpKV06dGhpcy4kc2xvdHMuZGVmYXVsdCkpLHQoUU1vZGFsLHtyZWY6XCJtb2RhbFwiLHByb3BzOnt2YWx1ZTp0aGlzLnZhbHVlLHBvc2l0aW9uOlwiYm90dG9tXCIsY29udGVudENzczp0aGlzLmNvbnRlbnRDc3N9LG9uOntpbnB1dDpmdW5jdGlvbih0KXtlLiRlbWl0KFwiaW5wdXRcIix0KX0sc2hvdzpmdW5jdGlvbigpe2UuJGVtaXQoXCJzaG93XCIpfSxoaWRlOmZ1bmN0aW9uKCl7ZS4kZW1pdChcImhpZGVcIil9LGRpc21pc3M6ZnVuY3Rpb24oKXtlLiRlbWl0KFwiY2FuY2VsXCIpfSxcImVzY2FwZS1rZXlcIjpmdW5jdGlvbigpe2UuJGVtaXQoXCJlc2NhcGUta2V5XCIpfX19LGkpfSxtZXRob2RzOntzaG93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHJlZnMubW9kYWwuc2hvdygpfSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHJlZnMubW9kYWw/dGhpcy4kcmVmcy5tb2RhbC5oaWRlKCk6UHJvbWlzZS5yZXNvbHZlKCl9LF9fZ2V0QWN0aW9uczpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLmFjdGlvbnMubWFwKGZ1bmN0aW9uKGkpe3ZhciBzO3JldHVybiBpLmxhYmVsP3QoZS5ncmlkP1wiZGl2XCI6UUl0ZW0sKChzPXtzdGF0aWNDbGFzczplLmdyaWQ/XCJxLWFjdGlvbnNoZWV0LWdyaWQtaXRlbSBjdXJzb3ItcG9pbnRlciByZWxhdGl2ZS1wb3NpdGlvbiBjb2x1bW4gaW5saW5lIGZsZXgtY2VudGVyXCI6bnVsbCxjbGFzczppLmNsYXNzZXMsYXR0cnM6e3RhYmluZGV4OjB9fSlbZS5ncmlkP1wib25cIjpcIm5hdGl2ZU9uXCJdPXtjbGljazpmdW5jdGlvbigpe3JldHVybiBlLl9fb25PayhpKX0sa2V5dXA6ZnVuY3Rpb24odCl7MTM9PT1nZXRFdmVudEtleSh0KSYmZS5fX29uT2soaSl9fSxzKSxlLmdyaWQ/W2kuaWNvbj90KFFJY29uLHtwcm9wczp7bmFtZTppLmljb24sY29sb3I6aS5jb2xvcn19KTpudWxsLGkuYXZhdGFyP3QoXCJpbWdcIix7ZG9tUHJvcHM6e3NyYzppLmF2YXRhcn0sc3RhdGljQ2xhc3M6XCJhdmF0YXJcIn0pOm51bGwsdChcInNwYW5cIixbaS5sYWJlbF0pXTpbdChRSXRlbVNpZGUse3Byb3BzOntpY29uOmkuaWNvbixjb2xvcjppLmNvbG9yLGF2YXRhcjppLmF2YXRhcn19KSx0KFFJdGVtTWFpbix7cHJvcHM6e2luc2V0OiEwLGxhYmVsOmkubGFiZWx9fSldKTp0KFFJdGVtU2VwYXJhdG9yLHtzdGF0aWNDbGFzczpcImNvbC0xMlwifSl9KX0sX19vbk9rOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5oaWRlKCkudGhlbihmdW5jdGlvbigpe1wiZnVuY3Rpb25cIj09dHlwZW9mIHQuaGFuZGxlciYmdC5oYW5kbGVyKCksZS4kZW1pdChcIm9rXCIsdCl9KX0sX19vbkNhbmNlbDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5oaWRlKCkudGhlbihmdW5jdGlvbigpe3QuJGVtaXQoXCJjYW5jZWxcIil9KX0sX19vbktleUNhbmNlbDpmdW5jdGlvbih0KXsxMz09PWdldEV2ZW50S2V5KHQpJiZ0aGlzLl9fb25DYW5jZWwoKX19fSx1bml0cz1bXCJCXCIsXCJrQlwiLFwiTUJcIixcIkdCXCIsXCJUQlwiLFwiUEJcIl07ZnVuY3Rpb24gaHVtYW5TdG9yYWdlU2l6ZSh0KXtmb3IodmFyIGU9MDtwYXJzZUludCh0LDEwKT49MTAyNCYmZTx1bml0cy5sZW5ndGgtMTspdC89MTAyNCwrK2U7cmV0dXJuIHQudG9GaXhlZCgxKStcIiBcIit1bml0c1tlXX1mdW5jdGlvbiBjYXBpdGFsaXplKHQpe3JldHVybiB0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSl9ZnVuY3Rpb24gYmV0d2Vlbih0LGUsaSl7cmV0dXJuIGk8PWU/ZTpNYXRoLm1pbihpLE1hdGgubWF4KGUsdCkpfWZ1bmN0aW9uIG5vcm1hbGl6ZVRvSW50ZXJ2YWwodCxlLGkpe2lmKGk8PWUpcmV0dXJuIGU7dmFyIHM9aS1lKzEsbj1lKyh0LWUpJXM7cmV0dXJuIG48ZSYmKG49cytuKSwwPT09bj8wOm59ZnVuY3Rpb24gcGFkKHQsZSxpKXt2b2lkIDA9PT1lJiYoZT0yKSx2b2lkIDA9PT1pJiYoaT1cIjBcIik7dmFyIHM9XCJcIit0O3JldHVybiBzLmxlbmd0aD49ZT9zOm5ldyBBcnJheShlLXMubGVuZ3RoKzEpLmpvaW4oaSkrc312YXIgZm9ybWF0PXtodW1hblN0b3JhZ2VTaXplOmh1bWFuU3RvcmFnZVNpemUsY2FwaXRhbGl6ZTpjYXBpdGFsaXplLGJldHdlZW46YmV0d2Vlbixub3JtYWxpemVUb0ludGVydmFsOm5vcm1hbGl6ZVRvSW50ZXJ2YWwscGFkOnBhZH0seGhyPWlzU1NSP251bGw6WE1MSHR0cFJlcXVlc3Qsc2VuZD1pc1NTUj9udWxsOnhoci5wcm90b3R5cGUuc2VuZCxzdGFjaz17c3RhcnQ6W10sc3RvcDpbXX0saGlnaGphY2tDb3VudD0wO2Z1bmN0aW9uIHRyYW5zbGF0ZSh0KXt2YXIgZT10LnAsaT10LnBvcyxzPXQuYWN0aXZlLG49dC5ob3JpeixvPXQucmV2ZXJzZSxyPXQuZGlyLGE9MSxsPTE7cmV0dXJuIG4/KG8mJihhPS0xKSxcImJvdHRvbVwiPT09aSYmKGw9LTEpLHt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUzZChcIithKihlLTEwMCkrXCIlLFwiKyhzPzA6LTIwMCpsKStcIiUsMClcIn0pOihvJiYobD0tMSksXCJyaWdodFwiPT09aSYmKGE9LTEpLHt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUzZChcIisocz8wOnIqYSotMjAwKStcIiUsXCIrbCooZS0xMDApK1wiJSwwKVwifSl9ZnVuY3Rpb24gaW5jKHQsZSl7cmV0dXJuXCJudW1iZXJcIiE9dHlwZW9mIGUmJihlPXQ8MjU/MypNYXRoLnJhbmRvbSgpKzM6dDw2NT8zKk1hdGgucmFuZG9tKCk6dDw4NT8yKk1hdGgucmFuZG9tKCk6dDw5OT8uNjowKSxiZXR3ZWVuKHQrZSwwLDEwMCl9ZnVuY3Rpb24gaGlnaGphY2tBamF4KHQsZSl7ZnVuY3Rpb24gaSgpe3N0YWNrLnN0b3AubWFwKGZ1bmN0aW9uKHQpe3QoKX0pfXN0YWNrLnN0YXJ0LnB1c2godCksc3RhY2suc3RvcC5wdXNoKGUpLCsraGlnaGphY2tDb3VudD4xfHwoeGhyLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsZT1bXSxzPWFyZ3VtZW50cy5sZW5ndGg7cy0tOyllW3NdPWFyZ3VtZW50c1tzXTtzdGFjay5zdGFydC5tYXAoZnVuY3Rpb24odCl7dCgpfSksdGhpcy5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIixpLCExKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXCJyZWFkeXN0YXRlY2hhbmdlXCIsZnVuY3Rpb24oKXs0PT09dC5yZWFkeVN0YXRlJiZpKCl9LCExKSxzZW5kLmFwcGx5KHRoaXMsZSl9KX1mdW5jdGlvbiByZXN0b3JlQWpheCh0LGUpe3N0YWNrLnN0YXJ0PXN0YWNrLnN0YXJ0LmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZSE9PXR9KSxzdGFjay5zdG9wPXN0YWNrLnN0b3AuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09ZX0pLChoaWdoamFja0NvdW50PU1hdGgubWF4KDAsaGlnaGphY2tDb3VudC0xKSl8fCh4aHIucHJvdG90eXBlLnNlbmQ9c2VuZCl9dmFyIFFBamF4QmFyPXtuYW1lOlwiUUFqYXhCYXJcIixwcm9wczp7cG9zaXRpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJ0b3BcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1widG9wXCIsXCJyaWdodFwiLFwiYm90dG9tXCIsXCJsZWZ0XCJdLmluY2x1ZGVzKHQpfX0sc2l6ZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIjJweFwifSxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInJlZFwifSxza2lwSGlqYWNrOkJvb2xlYW4scmV2ZXJzZTpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2NhbGxzOjAscHJvZ3Jlc3M6MCxvblNjcmVlbjohMSxhbmltYXRlOiEwfX0sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5wb3NpdGlvbixcImJnLVwiK3RoaXMuY29sb3IsdGhpcy5hbmltYXRlP1wiXCI6XCJuby10cmFuc2l0aW9uXCJdfSxzdHlsZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMub25TY3JlZW4sZT10cmFuc2xhdGUoe3A6dGhpcy5wcm9ncmVzcyxwb3M6dGhpcy5wb3NpdGlvbixhY3RpdmU6dCxob3Jpejp0aGlzLmhvcml6b250YWwscmV2ZXJzZTp0aGlzLiRxLmkxOG4ucnRsJiZbXCJ0b3BcIixcImJvdHRvbVwiXS5pbmNsdWRlcyh0aGlzLnBvc2l0aW9uKT8hdGhpcy5yZXZlcnNlOnRoaXMucmV2ZXJzZSxkaXI6dGhpcy4kcS5pMThuLnJ0bD8tMToxfSk7cmV0dXJuIGVbdGhpcy5zaXplUHJvcF09dGhpcy5zaXplLGUub3BhY2l0eT10PzE6MCxlfSxob3Jpem9udGFsOmZ1bmN0aW9uKCl7cmV0dXJuXCJ0b3BcIj09PXRoaXMucG9zaXRpb258fFwiYm90dG9tXCI9PT10aGlzLnBvc2l0aW9ufSxzaXplUHJvcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhvcml6b250YWw/XCJoZWlnaHRcIjpcIndpZHRoXCJ9fSxtZXRob2RzOntzdGFydDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3ZvaWQgMD09PXQmJih0PTMwMCksdGhpcy5jYWxscysrLHRoaXMuY2FsbHM+MXx8KGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLiRlbWl0KFwic3RhcnRcIiksdGhpcy5vblNjcmVlbnx8KHRoaXMucHJvZ3Jlc3M9MCx0aGlzLm9uU2NyZWVuPSEwLHRoaXMuYW5pbWF0ZT0hMSx0aGlzLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmFuaW1hdGU9ITAsZS5fX3dvcmsodCl9LDEwMCkpKX0saW5jcmVtZW50OmZ1bmN0aW9uKHQpe3RoaXMuY2FsbHM+MCYmKHRoaXMucHJvZ3Jlc3M9aW5jKHRoaXMucHJvZ3Jlc3MsdCkpfSxzdG9wOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0aGlzLmNhbGxzPU1hdGgubWF4KDAsdGhpcy5jYWxscy0xKSwhKHRoaXMuY2FsbHM+MCkpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLiRlbWl0KFwic3RvcFwiKTt2YXIgZT1mdW5jdGlvbigpe3QuYW5pbWF0ZT0hMCx0LnByb2dyZXNzPTEwMCx0LnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0Lm9uU2NyZWVuPSExfSwxZTMpfTswPT09dGhpcy5wcm9ncmVzcz90aGlzLnRpbWVyPXNldFRpbWVvdXQoZSwxKTplKCl9fSxfX3dvcms6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLnByb2dyZXNzPDEwMCYmKHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2UuaW5jcmVtZW50KCksZS5fX3dvcmsodCl9LHQpKX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLnNraXBIaWphY2t8fCh0aGlzLmhpamFja2VkPSEwLGhpZ2hqYWNrQWpheCh0aGlzLnN0YXJ0LHRoaXMuc3RvcCkpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuaGlqYWNrZWQmJnJlc3RvcmVBamF4KHRoaXMuc3RhcnQsdGhpcy5zdG9wKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1sb2FkaW5nLWJhclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxzdHlsZTp0aGlzLnN0eWxlfSl9fTtmdW5jdGlvbiBzaG93UmlwcGxlKHQsZSxpKXt2YXIgcz1pLnN0b3Asbj1pLmNlbnRlcjtzJiZ0LnN0b3BQcm9wYWdhdGlvbigpO3ZhciBvLHIsYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3BhblwiKSxsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpLGM9ZS5jbGllbnRXaWR0aD5lLmNsaWVudEhlaWdodD9lLmNsaWVudFdpZHRoOmUuY2xpZW50SGVpZ2h0LGg9KG4/YzoyKmMpK1wicHhcIix1PWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoYS5hcHBlbmRDaGlsZChsKSxhLmNsYXNzTmFtZT1cInEtcmlwcGxlLWNvbnRhaW5lclwiLGwuY2xhc3NOYW1lPVwicS1yaXBwbGUtYW5pbWF0aW9uXCIsbC5zdHlsZS53aWR0aD1oLGwuc3R5bGUuaGVpZ2h0PWgsZS5hcHBlbmRDaGlsZChhKSxuKW89cj0wO2Vsc2V7dmFyIGQ9cG9zaXRpb24odCk7bz1kLmxlZnQtdS5sZWZ0LWMscj1kLnRvcC11LnRvcC1jfWwuY2xhc3NMaXN0LmFkZChcInEtcmlwcGxlLWFuaW1hdGlvbi1lbnRlclwiKSxsLmNsYXNzTGlzdC5hZGQoXCJxLXJpcHBsZS1hbmltYXRpb24tdmlzaWJsZVwiKSxsLnN0eWxlLnRyYW5zZm9ybT1cInRyYW5zbGF0ZShcIitvK1wicHgsIFwiK3IrXCJweCkgc2NhbGUzZCgwLCAwLCAwKVwiLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtsLmNsYXNzTGlzdC5yZW1vdmUoXCJxLXJpcHBsZS1hbmltYXRpb24tZW50ZXJcIiksbC5zdHlsZS50cmFuc2Zvcm09XCJ0cmFuc2xhdGUoXCIrbytcInB4LCBcIityK1wicHgpIHNjYWxlM2QoMSwgMSwgMSlcIixzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bC5jbGFzc0xpc3QucmVtb3ZlKFwicS1yaXBwbGUtYW5pbWF0aW9uLXZpc2libGVcIiksc2V0VGltZW91dChmdW5jdGlvbigpe2EucmVtb3ZlKCl9LDMwMCl9LDMwMCl9LDEwKX1mdW5jdGlvbiBzaG91bGRBYm9ydCh0KXt0Lm1hdDtyZXR1cm4gdC5pb3MmJiEwfXZhciBSaXBwbGU9e25hbWU6XCJyaXBwbGVcIixpbnNlcnRlZDpmdW5jdGlvbih0LGUpe3ZhciBpPWUudmFsdWUscz1lLm1vZGlmaWVycztpZighc2hvdWxkQWJvcnQocykpe3ZhciBuPXtlbmFibGVkOiExIT09aSxtb2RpZmllcnM6e3N0b3A6cy5zdG9wLGNlbnRlcjpzLmNlbnRlcn0sY2xpY2s6ZnVuY3Rpb24oZSl7bi5lbmFibGVkJiYtMSE9PWUuZGV0YWlsJiZzaG93UmlwcGxlKGUsdCxuLm1vZGlmaWVycyl9LGtleXVwOmZ1bmN0aW9uKGUpe24uZW5hYmxlZCYmMTM9PT1lLmtleUNvZGUmJnNob3dSaXBwbGUoZSx0LG4ubW9kaWZpZXJzKX19O3QuX19xcmlwcGxlPW4sdC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIixuLmNsaWNrLCExKSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLG4ua2V5dXAsITEpfX0sdXBkYXRlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9ZS52YWx1ZSxzPWUubW9kaWZpZXJzLG49cy5zdG9wLG89cy5jZW50ZXIscj10Ll9fcXJpcHBsZTtyJiYoci5lbmFibGVkPSExIT09aSxyLm1vZGlmaWVycz17c3RvcDpuLGNlbnRlcjpvfSl9LHVuYmluZDpmdW5jdGlvbih0LGUpe3ZhciBpPWUubW9kaWZpZXJzLHM9dC5fX3FyaXBwbGU7cyYmIXNob3VsZEFib3J0KGkpJiYodC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIixzLmNsaWNrLCExKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLHMua2V5dXAsITEpLGRlbGV0ZSB0Ll9fcXJpcHBsZSl9fSxhbGlnbk1hcD17bGVmdDpcInN0YXJ0XCIsY2VudGVyOlwiY2VudGVyXCIscmlnaHQ6XCJlbmRcIixiZXR3ZWVuOlwiYmV0d2VlblwiLGFyb3VuZDpcImFyb3VuZFwifSxhbGlnblZhbHVlcz1PYmplY3Qua2V5cyhhbGlnbk1hcCksQWxpZ25NaXhpbj17cHJvcHM6e2FsaWduOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiY2VudGVyXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiBhbGlnblZhbHVlcy5pbmNsdWRlcyh0KX19fSxjb21wdXRlZDp7YWxpZ25DbGFzczpmdW5jdGlvbigpe3JldHVyblwianVzdGlmeS1cIithbGlnbk1hcFt0aGlzLmFsaWduXX19fSxzaXplcz17eHM6OCxzbToxMCxtZDoxNCxsZzoyMCx4bDoyNCxmb3JtOjE0Ljc3NyxcImZvcm0tbGFiZWxcIjoyMS43NzcsXCJmb3JtLWhpZGUtdW5kZXJsaW5lXCI6OS4zMzMsXCJmb3JtLWxhYmVsLWhpZGUtdW5kZXJsaW5lXCI6MTYuMzMzfSxCdG5NaXhpbj17bWl4aW5zOltBbGlnbk1peGluXSxkaXJlY3RpdmVzOntSaXBwbGU6UmlwcGxlfSxwcm9wczp7dHlwZTpTdHJpbmcsbG9hZGluZzp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6bnVsbH0sZGlzYWJsZTpCb29sZWFuLGxhYmVsOltOdW1iZXIsU3RyaW5nXSxub0NhcHM6Qm9vbGVhbixub1dyYXA6Qm9vbGVhbixpY29uOlN0cmluZyxpY29uUmlnaHQ6U3RyaW5nLHJvdW5kOkJvb2xlYW4sb3V0bGluZTpCb29sZWFuLGZsYXQ6Qm9vbGVhbixyb3VuZGVkOkJvb2xlYW4scHVzaDpCb29sZWFuLHNpemU6U3RyaW5nLGZhYjpCb29sZWFuLGZhYk1pbmk6Qm9vbGVhbixjb2xvcjpTdHJpbmcsdGV4dENvbG9yOlN0cmluZyxnbG9zc3k6Qm9vbGVhbixkZW5zZTpCb29sZWFuLG5vUmlwcGxlOkJvb2xlYW4sdGFiaW5kZXg6TnVtYmVyLHRvOltPYmplY3QsU3RyaW5nXSxyZXBsYWNlOkJvb2xlYW59LGNvbXB1dGVkOntzdHlsZTpmdW5jdGlvbigpe2lmKHRoaXMuc2l6ZSYmIXRoaXMuZmFiJiYhdGhpcy5mYWJNaW5pKXJldHVybntmb250U2l6ZTp0aGlzLnNpemUgaW4gc2l6ZXM/c2l6ZXNbdGhpcy5zaXplXStcInB4XCI6dGhpcy5zaXplfX0saXNSZWN0YW5nbGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5pc1JvdW5kfSxpc1JvdW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm91bmR8fHRoaXMuZmFifHx0aGlzLmZhYk1pbml9LHNoYXBlOmZ1bmN0aW9uKCl7cmV0dXJuXCJxLWJ0bi1cIisodGhpcy5pc1JvdW5kP1wicm91bmRcIjpcInJlY3RhbmdsZVwiKX0saXNEaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRpc2FibGV8fHRoaXMubG9hZGluZ30saGFzUmlwcGxlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMubm9SaXBwbGUmJiF0aGlzLmlzRGlzYWJsZWR9LGNvbXB1dGVkVGFiSW5kZXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0Rpc2FibGVkPy0xOnRoaXMudGFiaW5kZXh8fDB9LGlzTGluazpmdW5jdGlvbigpe3JldHVyblwiYVwiPT09dGhpcy50eXBlfHx2b2lkIDAhPT10aGlzLnRvfSxhdHRyczpmdW5jdGlvbigpe3ZhciB0PXt0YWJpbmRleDp0aGlzLmNvbXB1dGVkVGFiSW5kZXh9O3JldHVyblwiYVwiIT09dGhpcy50eXBlJiYodC50eXBlPXRoaXMudHlwZXx8XCJidXR0b25cIiksdm9pZCAwIT09dGhpcy50byYmKHQuaHJlZj10aGlzLiRyb3V0ZXIucmVzb2x2ZSh0aGlzLnRvKS5ocmVmKSx0fSxjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W3RoaXMuc2hhcGVdO3JldHVybiB0aGlzLmZhYj90LnB1c2goXCJxLWJ0bi1mYWJcIik6dGhpcy5mYWJNaW5pJiZ0LnB1c2goXCJxLWJ0bi1mYWItbWluaVwiKSx0aGlzLmZsYXQ/dC5wdXNoKFwicS1idG4tZmxhdFwiKTp0aGlzLm91dGxpbmU/dC5wdXNoKFwicS1idG4tb3V0bGluZVwiKTp0aGlzLnB1c2gmJnQucHVzaChcInEtYnRuLXB1c2hcIiksdGhpcy5pc0Rpc2FibGVkP3QucHVzaChcImRpc2FibGVkXCIpOih0LnB1c2goXCJxLWZvY3VzYWJsZSBxLWhvdmVyYWJsZVwiKSx0aGlzLmFjdGl2ZSYmdC5wdXNoKFwiYWN0aXZlXCIpKSx0aGlzLmNvbG9yP3RoaXMuZmxhdHx8dGhpcy5vdXRsaW5lP3QucHVzaChcInRleHQtXCIrKHRoaXMudGV4dENvbG9yfHx0aGlzLmNvbG9yKSk6KHQucHVzaChcImJnLVwiK3RoaXMuY29sb3IpLHQucHVzaChcInRleHQtXCIrKHRoaXMudGV4dENvbG9yfHxcIndoaXRlXCIpKSk6dGhpcy50ZXh0Q29sb3ImJnQucHVzaChcInRleHQtXCIrdGhpcy50ZXh0Q29sb3IpLHQucHVzaCh7XCJxLWJ0bi1uby11cHBlcmNhc2VcIjp0aGlzLm5vQ2FwcyxcInEtYnRuLXJvdW5kZWRcIjp0aGlzLnJvdW5kZWQsXCJxLWJ0bi1kZW5zZVwiOnRoaXMuZGVuc2UsZ2xvc3N5OnRoaXMuZ2xvc3N5fSksdH0saW5uZXJDbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W3RoaXMuYWxpZ25DbGFzc107cmV0dXJuITA9PT10aGlzLm5vV3JhcCYmdC5wdXNoKFwibm8td3JhcFwiLFwidGV4dC1uby13cmFwXCIpLCEwPT09dGhpcy5yZXBlYXRpbmcmJnQucHVzaChcIm5vbi1zZWxlY3RhYmxlXCIpLCEwPT09dGhpcy5sb2FkaW5nJiZ0LnB1c2goXCJxLWJ0bi1pbm5lci0taGlkZGVuXCIpLHR9fX0sbWl4aW4kMT17cHJvcHM6e2NvbG9yOlN0cmluZyxzaXplOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OlwiMWVtXCJ9fSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe2lmKHRoaXMuY29sb3IpcmV0dXJuXCJ0ZXh0LVwiK3RoaXMuY29sb3J9fX0sRGVmYXVsdFNwaW5uZXI9e25hbWU6XCJRU3Bpbm5lck1hdFwiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyIHEtc3Bpbm5lci1tYXRcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3dpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIyNSAyNSA1MCA1MFwifX0sW3QoXCJjaXJjbGVcIix7c3RhdGljQ2xhc3M6XCJwYXRoXCIsYXR0cnM6e2N4OlwiNTBcIixjeTpcIjUwXCIscjpcIjIwXCIsZmlsbDpcIm5vbmVcIixzdHJva2U6XCJjdXJyZW50Q29sb3JcIixcInN0cm9rZS13aWR0aFwiOlwiM1wiLFwic3Ryb2tlLW1pdGVybGltaXRcIjpcIjEwXCJ9fSldKX19LFFTcGlubmVyPXttaXhpbnM6W0RlZmF1bHRTcGlubmVyXSxuYW1lOlwiUVNwaW5uZXJcIn0sUUJ0bj17bmFtZTpcIlFCdG5cIixtaXhpbnM6W0J0bk1peGluXSxwcm9wczp7cGVyY2VudGFnZTpOdW1iZXIsZGFya1BlcmNlbnRhZ2U6Qm9vbGVhbix3YWl0Rm9yUmlwcGxlOkJvb2xlYW4scmVwZWF0VGltZW91dDpbTnVtYmVyLEZ1bmN0aW9uXX0sY29tcHV0ZWQ6e2hhc1BlcmNlbnRhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5wZXJjZW50YWdlfSx3aWR0aDpmdW5jdGlvbigpe3JldHVybiBiZXR3ZWVuKHRoaXMucGVyY2VudGFnZSwwLDEwMCkrXCIlXCJ9LGV2ZW50czpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuaXNEaXNhYmxlZHx8IXRoaXMucmVwZWF0VGltZW91dD97Y2xpY2s6dGhpcy5jbGljayxrZXlkb3duOnRoaXMuX19vbktleURvd24sa2V5dXA6dGhpcy5fX29uS2V5VXB9Onttb3VzZWRvd246dGhpcy5fX3N0YXJ0UmVwZWF0LHRvdWNoc3RhcnQ6dGhpcy5fX3N0YXJ0UmVwZWF0LGtleWRvd246ZnVuY3Rpb24oZSl7dC5fX29uS2V5RG93bihlLCEwKX0sbW91c2V1cDp0aGlzLl9fZW5kUmVwZWF0LHRvdWNoZW5kOnRoaXMuX19lbmRSZXBlYXQsa2V5dXA6ZnVuY3Rpb24oZSl7dC5fX29uS2V5VXAoZSwhMCl9LG1vdXNlbGVhdmU6dGhpcy5fX2Fib3J0UmVwZWF0LHRvdWNobW92ZTp0aGlzLl9fYWJvcnRSZXBlYXQsYmx1cjp0aGlzLl9fYWJvcnRSZXBlYXR9fX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntyZXBlYXRpbmc6ITEsYWN0aXZlOiExfX0sbWV0aG9kczp7Y2xpY2s6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0aGlzLl9fY2xlYW51cCgpLHZvaWQgMD09PXRoaXMudG8mJiF0aGlzLmlzRGlzYWJsZWR8fCh0JiZzdG9wQW5kUHJldmVudCh0KSwhdGhpcy5pc0Rpc2FibGVkKSlpZih0JiYtMSE9PXQuZGV0YWlsJiZcInN1Ym1pdFwiPT09dGhpcy50eXBlKXtzdG9wQW5kUHJldmVudCh0KTt2YXIgaT1uZXcgTW91c2VFdmVudChcImNsaWNrXCIsT2JqZWN0LmFzc2lnbih7fSx0LHtkZXRhaWw6LTF9KSk7dGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIGUuJGVsJiZlLiRlbC5kaXNwYXRjaEV2ZW50KGkpfSwyMDApfWVsc2V7dmFyIHM9ZnVuY3Rpb24oKXtlLiRyb3V0ZXJbZS5yZXBsYWNlP1wicmVwbGFjZVwiOlwicHVzaFwiXShlLnRvKX0sbj1mdW5jdGlvbigpe2UuaXNEaXNhYmxlZHx8KGUuJGVtaXQoXCJjbGlja1wiLHQscyksdm9pZCAwIT09ZS50byYmITEhPT10Lm5hdmlnYXRlJiZzKCkpfTt0aGlzLndhaXRGb3JSaXBwbGUmJnRoaXMuaGFzUmlwcGxlP3RoaXMudGltZXI9c2V0VGltZW91dChuLDMwMCk6bigpfX0sX19jbGVhbnVwOmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpfSxfX29uS2V5RG93bjpmdW5jdGlvbih0LGUpe3RoaXMuaXNEaXNhYmxlZHx8MTMhPT10LmtleUNvZGV8fCh0aGlzLmFjdGl2ZT0hMCxlP3RoaXMuX19zdGFydFJlcGVhdCh0KTpzdG9wQW5kUHJldmVudCh0KSl9LF9fb25LZXlVcDpmdW5jdGlvbih0LGUpe3RoaXMuYWN0aXZlJiYodGhpcy5hY3RpdmU9ITEsdGhpcy5pc0Rpc2FibGVkfHwxMyE9PXQua2V5Q29kZXx8dGhpc1tlP1wiX19lbmRSZXBlYXRcIjpcImNsaWNrXCJdKHQpKX0sX19zdGFydFJlcGVhdDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKCF0aGlzLnJlcGVhdGluZyl7dmFyIGk9ZnVuY3Rpb24oKXtlLnRpbWVyPXNldFRpbWVvdXQocyxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnJlcGVhdFRpbWVvdXQ/ZS5yZXBlYXRUaW1lb3V0KGUucmVwZWF0Q291bnQpOmUucmVwZWF0VGltZW91dCl9LHM9ZnVuY3Rpb24oKXtlLmlzRGlzYWJsZWR8fChlLnJlcGVhdENvdW50Kz0xLHQucmVwZWF0Q291bnQ9ZS5yZXBlYXRDb3VudCxlLiRlbWl0KFwiY2xpY2tcIix0KSxpKCkpfTt0aGlzLnJlcGVhdENvdW50PTAsdGhpcy5yZXBlYXRpbmc9ITAsaSgpfX0sX19hYm9ydFJlcGVhdDpmdW5jdGlvbigpe3RoaXMucmVwZWF0aW5nPSExLHRoaXMuX19jbGVhbnVwKCl9LF9fZW5kUmVwZWF0OmZ1bmN0aW9uKHQpe3RoaXMucmVwZWF0aW5nJiYodGhpcy5yZXBlYXRpbmc9ITEsdGhpcy5yZXBlYXRDb3VudD90aGlzLnJlcGVhdENvdW50PTA6KHQuZGV0YWlsfHx0LmtleUNvZGUpJiYodC5yZXBlYXRDb3VudD0wLHRoaXMuJGVtaXQoXCJjbGlja1wiLHQpKSx0aGlzLl9fY2xlYW51cCgpKX19LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9fY2xlYW51cCgpfSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9W10uY29uY2F0KHRoaXMuJHNsb3RzLmRlZmF1bHQpO3JldHVybiB2b2lkIDAhPT10aGlzLmxhYmVsJiYhMD09PXRoaXMuaXNSZWN0YW5nbGUmJmUudW5zaGlmdCh0KFwiZGl2XCIsW3RoaXMubGFiZWxdKSksdm9pZCAwIT09dGhpcy5pY29uJiZlLnVuc2hpZnQodChRSWNvbix7Y2xhc3M6e1wib24tbGVmdFwiOnZvaWQgMCE9PXRoaXMubGFiZWwmJiEwPT09dGhpcy5pc1JlY3RhbmdsZX0scHJvcHM6e25hbWU6dGhpcy5pY29ufX0pKSx2b2lkIDAhPT10aGlzLmljb25SaWdodCYmITE9PT10aGlzLmlzUm91bmQmJmUucHVzaCh0KFFJY29uLHtzdGF0aWNDbGFzczpcIm9uLXJpZ2h0XCIscHJvcHM6e25hbWU6dGhpcy5pY29uUmlnaHR9fSkpLHQodGhpcy5pc0xpbms/XCJhXCI6XCJidXR0b25cIix7c3RhdGljQ2xhc3M6XCJxLWJ0biBpbmxpbmUgcmVsYXRpdmUtcG9zaXRpb24gcS1idG4taXRlbSBub24tc2VsZWN0YWJsZVwiLGNsYXNzOnRoaXMuY2xhc3NlcyxzdHlsZTp0aGlzLnN0eWxlLGF0dHJzOnRoaXMuYXR0cnMsb246dGhpcy5ldmVudHMsZGlyZWN0aXZlczp0aGlzLmhhc1JpcHBsZT9be25hbWU6XCJyaXBwbGVcIix2YWx1ZTohMCxtb2RpZmllcnM6e2NlbnRlcjp0aGlzLmlzUm91bmR9fV06bnVsbH0sW3RoaXMuJHEucGxhdGZvcm0uaXMuZGVza3RvcD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1mb2N1cy1oZWxwZXJcIn0pOm51bGwsdGhpcy5sb2FkaW5nJiZ0aGlzLmhhc1BlcmNlbnRhZ2U/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYnRuLXByb2dyZXNzIGFic29sdXRlLWZ1bGxcIixjbGFzczp7XCJxLWJ0bi1kYXJrLXByb2dyZXNzXCI6dGhpcy5kYXJrUGVyY2VudGFnZX0sc3R5bGU6e3dpZHRoOnRoaXMud2lkdGh9fSk6bnVsbCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1idG4taW5uZXIgcm93IGNvbCBpdGVtcy1jZW50ZXIgcS1wb3B1cC0tc2tpcFwiLGNsYXNzOnRoaXMuaW5uZXJDbGFzc2VzfSxlKSxudWxsIT09dGhpcy5sb2FkaW5nP3QoXCJ0cmFuc2l0aW9uXCIse3Byb3BzOntuYW1lOlwicS10cmFuc2l0aW9uLS1mYWRlXCJ9fSwhMD09PXRoaXMubG9hZGluZz9bdChcImRpdlwiLHtrZXk6XCJsb2FkaW5nXCIsc3RhdGljQ2xhc3M6XCJhYnNvbHV0ZS1mdWxsIGZsZXggZmxleC1jZW50ZXJcIn0sdm9pZCAwIT09dGhpcy4kc2xvdHMubG9hZGluZz90aGlzLiRzbG90cy5sb2FkaW5nOlt0KFFTcGlubmVyKV0pXTp2b2lkIDApOm51bGxdKX19LFFBbGVydD17bmFtZTpcIlFBbGVydFwiLHByb3BzOnt0eXBlOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wicG9zaXRpdmVcIixcIm5lZ2F0aXZlXCIsXCJ3YXJuaW5nXCIsXCJpbmZvXCJdLmluY2x1ZGVzKHQpfX0sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJuZWdhdGl2ZVwifSx0ZXh0Q29sb3I6U3RyaW5nLG1lc3NhZ2U6U3RyaW5nLGRldGFpbDpTdHJpbmcsaWNvbjpTdHJpbmcsYXZhdGFyOlN0cmluZyxhY3Rpb25zOkFycmF5fSxjb21wdXRlZDp7Y29tcHV0ZWRJY29uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWNvbj90aGlzLmljb246dGhpcy4kcS5pY29uLnR5cGVbdGhpcy50eXBlfHx0aGlzLmNvbG9yXX0sY2xhc3NlczpmdW5jdGlvbigpe3JldHVyblwiYmctXCIrKHRoaXMudHlwZXx8dGhpcy5jb2xvcikrXCIgdGV4dC1cIisodGhpcy50ZXh0Q29sb3J8fFwid2hpdGVcIil9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPVtdLHM9dGhpcy4kc2xvdHMuZGV0YWlsfHx0aGlzLmRldGFpbDtyZXR1cm4gdGhpcy5hdmF0YXI/aS5wdXNoKHQoXCJpbWdcIix7c3RhdGljQ2xhc3M6XCJhdmF0YXJcIixhdHRyczp7c3JjOnRoaXMuYXZhdGFyfX0pKToodGhpcy5pY29ufHx0aGlzLnR5cGUpJiZpLnB1c2godChRSWNvbix7cHJvcHM6e25hbWU6dGhpcy5jb21wdXRlZEljb259fSkpLHQoXCJkaXZcIixbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYWxlcnQgcm93IG5vLXdyYXAgc2hhZG93LTJcIixjbGFzczp0aGlzLmNsYXNzZXN9LFtpLmxlbmd0aD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1hbGVydC1zaWRlIGNvbC1hdXRvIHJvdyBmbGV4LWNlbnRlclwifSxpKTpudWxsLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWFsZXJ0LWNvbnRlbnQgY29sIHNlbGYtY2VudGVyXCJ9LFt0KFwiZGl2XCIsdGhpcy4kc2xvdHMuZGVmYXVsdHx8dGhpcy5tZXNzYWdlKSxzP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWFsZXJ0LWRldGFpbFwifSxbc10pOm51bGxdKSx0aGlzLmFjdGlvbnMmJnRoaXMuYWN0aW9ucy5sZW5ndGg/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYWxlcnQtYWN0aW9ucyBjb2wtYXV0byBndXR0ZXIteHMgY29sdW1uIGZsZXgtY2VudGVyXCJ9LHRoaXMuYWN0aW9ucy5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJmdWxsLXdpZHRoXCJ9LFt0KFFCdG4se3N0YXRpY0NsYXNzOlwiZnVsbC13aWR0aFwiLHByb3BzOntmbGF0OiEwLGRlbnNlOiEwLGFsaWduOlwibGVmdFwiLGljb246aS5pY29uLGxhYmVsOiEwPT09aS5jbG9zZUJ0bj9cInN0cmluZ1wiPT10eXBlb2YgaS5sYWJlbD9pLmxhYmVsOmUuJHEuaTE4bi5sYWJlbC5jbG9zZTppLmxhYmVsfSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gaS5oYW5kbGVyKCl9fX0pXSl9KSk6bnVsbF0pXSl9fTtmdW5jdGlvbiBmaWx0ZXIodCxlKXt2YXIgaT1lLmZpZWxkLHM9ZS5saXN0LG49dC50b0xvd2VyQ2FzZSgpO3JldHVybiBzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4oXCJcIit0W2ldKS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgobil9KX1mdW5jdGlvbiBzNCgpe3JldHVybiBNYXRoLmZsb29yKDY1NTM2KigxK01hdGgucmFuZG9tKCkpKS50b1N0cmluZygxNikuc3Vic3RyaW5nKDEpfWZ1bmN0aW9uIHVpZCgpe3JldHVybiBzNCgpK3M0KCkrXCItXCIrczQoKStcIi1cIitzNCgpK1wiLVwiK3M0KCkrXCItXCIrczQoKStzNCgpK3M0KCl9ZnVuY3Rpb24gZ2V0QW5jaG9yUG9zaXRpb24odCxlKXt2YXIgaT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9aS50b3Asbj1pLmxlZnQsbz1pLnJpZ2h0LHI9aS5ib3R0b20sYT17dG9wOnMsbGVmdDpuLHdpZHRoOnQub2Zmc2V0V2lkdGgsaGVpZ2h0OnQub2Zmc2V0SGVpZ2h0fTtyZXR1cm4gZSYmKGEudG9wLT1lWzFdLGEubGVmdC09ZVswXSxyJiYocis9ZVsxXSksbyYmKG8rPWVbMF0pLGEud2lkdGgrPWVbMF0sYS5oZWlnaHQrPWVbMV0pLGEucmlnaHQ9b3x8YS5sZWZ0K2Eud2lkdGgsYS5ib3R0b209cnx8YS50b3ArYS5oZWlnaHQsYS5taWRkbGU9YS5sZWZ0KyhhLnJpZ2h0LWEubGVmdCkvMixhLmNlbnRlcj1hLnRvcCsoYS5ib3R0b20tYS50b3ApLzIsYX1mdW5jdGlvbiBnZXRUYXJnZXRQb3NpdGlvbih0KXtyZXR1cm57dG9wOjAsY2VudGVyOnQub2Zmc2V0SGVpZ2h0LzIsYm90dG9tOnQub2Zmc2V0SGVpZ2h0LGxlZnQ6MCxtaWRkbGU6dC5vZmZzZXRXaWR0aC8yLHJpZ2h0OnQub2Zmc2V0V2lkdGh9fWZ1bmN0aW9uIHJlcG9zaXRpb25JZk5lZWRlZCh0LGUsaSxzLG4sbyl7dmFyIHI9Z2V0U2Nyb2xsYmFyV2lkdGgoKSxhPXdpbmRvdy5pbm5lckhlaWdodCxsPXdpbmRvdy5pbm5lcldpZHRoO2lmKGEtPXIsbC09cixuLnRvcDwwfHxuLnRvcCtlLmJvdHRvbT5hKWlmKFwiY2VudGVyXCI9PT1pLnZlcnRpY2FsKW4udG9wPXRbaS52ZXJ0aWNhbF0+YS8yP2EtZS5ib3R0b206MCxuLm1heEhlaWdodD1NYXRoLm1pbihlLmJvdHRvbSxhKTtlbHNlIGlmKHRbaS52ZXJ0aWNhbF0+YS8yKXt2YXIgYz1NYXRoLm1pbihhLFwiY2VudGVyXCI9PT1zLnZlcnRpY2FsP3QuY2VudGVyOnMudmVydGljYWw9PT1pLnZlcnRpY2FsP3QuYm90dG9tOnQudG9wKTtuLm1heEhlaWdodD1NYXRoLm1pbihlLmJvdHRvbSxjKSxuLnRvcD1NYXRoLm1heCgwLGMtbi5tYXhIZWlnaHQpfWVsc2Ugbi50b3A9XCJjZW50ZXJcIj09PXMudmVydGljYWw/dC5jZW50ZXI6cy52ZXJ0aWNhbD09PWkudmVydGljYWw/dC50b3A6dC5ib3R0b20sbi5tYXhIZWlnaHQ9TWF0aC5taW4oZS5ib3R0b20sYS1uLnRvcCk7aWYobi5sZWZ0PDB8fG4ubGVmdCtlLnJpZ2h0PmwpaWYobi5tYXhXaWR0aD1NYXRoLm1pbihlLnJpZ2h0LGwpLFwibWlkZGxlXCI9PT1pLmhvcml6b250YWwpbi5sZWZ0PXRbaS5ob3Jpem9udGFsXT5sLzI/bC1lLnJpZ2h0OjA7ZWxzZSBpZihvKW4ubGVmdD1uLmxlZnQ8MD8wOmwtZS5yaWdodDtlbHNlIGlmKHRbaS5ob3Jpem9udGFsXT5sLzIpe3ZhciBoPU1hdGgubWluKGwsXCJtaWRkbGVcIj09PXMuaG9yaXpvbnRhbD90LmNlbnRlcjpzLmhvcml6b250YWw9PT1pLmhvcml6b250YWw/dC5yaWdodDp0LmxlZnQpO24ubWF4V2lkdGg9TWF0aC5taW4oZS5yaWdodCxoKSxuLmxlZnQ9TWF0aC5tYXgoMCxoLW4ubWF4V2lkdGgpfWVsc2Ugbi5sZWZ0PVwibWlkZGxlXCI9PT1zLmhvcml6b250YWw/dC5jZW50ZXI6cy5ob3Jpem9udGFsPT09aS5ob3Jpem9udGFsP3QubGVmdDp0LnJpZ2h0LG4ubWF4V2lkdGg9TWF0aC5taW4oZS5yaWdodCxsLW4ubGVmdCk7cmV0dXJuIG59ZnVuY3Rpb24gc2V0UG9zaXRpb24odCl7dmFyIGUsaT10LmVsLHM9dC5hbmltYXRlLG49dC5hbmNob3JFbCxvPXQuYW5jaG9yT3JpZ2luLHI9dC5zZWxmT3JpZ2luLGE9dC5tYXhIZWlnaHQsbD10LmV2ZW50LGM9dC5hbmNob3JDbGljayxoPXQudG91Y2hQb3NpdGlvbix1PXQub2Zmc2V0LGQ9dC50b3VjaE9mZnNldCxwPXQuY292ZXI7aWYoaS5zdHlsZS5tYXhIZWlnaHQ9YXx8XCI2NXZoXCIsaS5zdHlsZS5tYXhXaWR0aD1cIjEwMHZ3XCIsIWx8fGMmJiFoKWlmKGQpe3ZhciBmPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbT1mLnRvcCxnPWYubGVmdCx2PW0rZC50b3AsYj1nK2QubGVmdDtlPXt0b3A6dixsZWZ0OmIsd2lkdGg6MSxoZWlnaHQ6MSxyaWdodDpiKzEsY2VudGVyOnYsbWlkZGxlOmIsYm90dG9tOnYrMX19ZWxzZSBlPWdldEFuY2hvclBvc2l0aW9uKG4sdSk7ZWxzZXt2YXIgXz1wb3NpdGlvbihsKSx5PV8udG9wLHc9Xy5sZWZ0O2U9e3RvcDp5LGxlZnQ6dyx3aWR0aDoxLGhlaWdodDoxLHJpZ2h0OncrMSxjZW50ZXI6eSxtaWRkbGU6dyxib3R0b206eSsxfX12YXIgQz1nZXRUYXJnZXRQb3NpdGlvbihpKSx4PXt0b3A6ZVtvLnZlcnRpY2FsXS1DW3IudmVydGljYWxdLGxlZnQ6ZVtvLmhvcml6b250YWxdLUNbci5ob3Jpem9udGFsXX07aWYoeD1yZXBvc2l0aW9uSWZOZWVkZWQoZSxDLHIsbyx4LHApLGkuc3R5bGUudG9wPU1hdGgubWF4KDAseC50b3ApK1wicHhcIixpLnN0eWxlLmxlZnQ9TWF0aC5tYXgoMCx4LmxlZnQpK1wicHhcIix4Lm1heEhlaWdodCYmKGkuc3R5bGUubWF4SGVpZ2h0PXgubWF4SGVpZ2h0K1wicHhcIikseC5tYXhXaWR0aCYmKGkuc3R5bGUubWF4V2lkdGg9eC5tYXhXaWR0aCtcInB4XCIpLHMpe3ZhciBTPXgudG9wPGUudG9wP1tcInVwXCIsXCJkb3duXCJdOltcImRvd25cIixcInVwXCJdO2kuY2xhc3NMaXN0LmFkZChcImFuaW1hdGUtcG9wdXAtXCIrU1swXSksaS5jbGFzc0xpc3QucmVtb3ZlKFwiYW5pbWF0ZS1wb3B1cC1cIitTWzFdKX19ZnVuY3Rpb24gcG9zaXRpb25WYWxpZGF0b3IodCl7dmFyIGU9dC5zcGxpdChcIiBcIik7cmV0dXJuIDI9PT1lLmxlbmd0aCYmKFtcInRvcFwiLFwiY2VudGVyXCIsXCJib3R0b21cIl0uaW5jbHVkZXMoZVswXSk/ISFbXCJsZWZ0XCIsXCJtaWRkbGVcIixcInJpZ2h0XCJdLmluY2x1ZGVzKGVbMV0pfHwoY29uc29sZS5lcnJvcihcIkFuY2hvci9TZWxmIHBvc2l0aW9uIG11c3QgZW5kIHdpdGggb25lIG9mIGxlZnQvbWlkZGxlL3JpZ2h0XCIpLCExKTooY29uc29sZS5lcnJvcihcIkFuY2hvci9TZWxmIHBvc2l0aW9uIG11c3Qgc3RhcnQgd2l0aCBvbmUgb2YgdG9wL2NlbnRlci9ib3R0b21cIiksITEpKX1mdW5jdGlvbiBvZmZzZXRWYWxpZGF0b3IodCl7cmV0dXJuIXR8fDI9PT10Lmxlbmd0aCYmKFwibnVtYmVyXCI9PXR5cGVvZiB0WzBdJiZcIm51bWJlclwiPT10eXBlb2YgdFsxXSl9ZnVuY3Rpb24gcGFyc2VQb3NpdGlvbih0KXt2YXIgZT10LnNwbGl0KFwiIFwiKTtyZXR1cm57dmVydGljYWw6ZVswXSxob3Jpem9udGFsOmVbMV19fWZ1bmN0aW9uIGZyYW1lRGVib3VuY2UodCl7dmFyIGUsaT0hMTtmdW5jdGlvbiBzKCl7Zm9yKHZhciBzPXRoaXMsbj1bXSxvPWFyZ3VtZW50cy5sZW5ndGg7by0tOyluW29dPWFyZ3VtZW50c1tvXTtpfHwoaT0hMCxlPXJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3QuYXBwbHkocyxuKSxpPSExfSkpfXJldHVybiBzLmNhbmNlbD1mdW5jdGlvbigpe3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShlKSxpPSExfSxzfXZhciBDYW5SZW5kZXJNaXhpbj17ZGF0YTpmdW5jdGlvbigpe3JldHVybntjYW5SZW5kZXI6IW9uU1NSfX0sbW91bnRlZDpmdW5jdGlvbigpeyExPT09dGhpcy5jYW5SZW5kZXImJih0aGlzLmNhblJlbmRlcj0hMCl9fSxRUG9wb3Zlcj17bmFtZTpcIlFQb3BvdmVyXCIsbWl4aW5zOltNb2RlbFRvZ2dsZU1peGluLENhblJlbmRlck1peGluXSxwcm9wczp7YW5jaG9yOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6cG9zaXRpb25WYWxpZGF0b3J9LHNlbGY6e3R5cGU6U3RyaW5nLHZhbGlkYXRvcjpwb3NpdGlvblZhbGlkYXRvcn0sZml0OkJvb2xlYW4sY292ZXI6Qm9vbGVhbixwZXJzaXN0ZW50OkJvb2xlYW4sa2VlcE9uU2NyZWVuOkJvb2xlYW4sbWF4SGVpZ2h0OlN0cmluZyx0b3VjaFBvc2l0aW9uOkJvb2xlYW4sYW5jaG9yQ2xpY2s6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSxvZmZzZXQ6e3R5cGU6QXJyYXksdmFsaWRhdG9yOm9mZnNldFZhbGlkYXRvcn0sbm9Gb2N1czpCb29sZWFuLG5vUmVmb2N1czpCb29sZWFuLGRpc2FibGU6Qm9vbGVhbn0sd2F0Y2g6eyRyb3V0ZTpmdW5jdGlvbigpe3RoaXMuaGlkZSgpfX0sY29tcHV0ZWQ6e2hvcml6U2lkZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRxLmkxOG4ucnRsP1wicmlnaHRcIjpcImxlZnRcIn0sYW5jaG9yT3JpZ2luOmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlUG9zaXRpb24odGhpcy5jb3Zlcj9cInRvcCBcIit0aGlzLmhvcml6U2lkZTp0aGlzLmFuY2hvcnx8XCJib3R0b20gXCIrdGhpcy5ob3JpelNpZGUpfSxzZWxmT3JpZ2luOmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlUG9zaXRpb24odGhpcy5zZWxmfHxcInRvcCBcIit0aGlzLmhvcml6U2lkZSl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7aWYodGhpcy5jYW5SZW5kZXIpcmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXBvcG92ZXIgc2Nyb2xsXCIscmVmOlwiY29udGVudFwiLGF0dHJzOnt0YWJpbmRleDotMX0sb246e2NsaWNrOmZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9fX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX191cGRhdGVQb3NpdGlvbj1mcmFtZURlYm91bmNlKGZ1bmN0aW9uKGUsaSxzKXtyZXR1cm4gdC5yZXBvc2l0aW9uKGkscyl9KSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3QuYW5jaG9yRWw9dC4kZWwucGFyZW50Tm9kZSx0LmFuY2hvckVsLnJlbW92ZUNoaWxkKHQuJGVsKSwodC5hbmNob3JFbC5jbGFzc0xpc3QuY29udGFpbnMoXCJxLXBvcHVwLS1za2lwXCIpfHx0LmFuY2hvckVsLmNsYXNzTGlzdC5jb250YWlucyhcIm5vLXBvaW50ZXItZXZlbnRzXCIpKSYmKHQuYW5jaG9yRWw9dC5hbmNob3JFbC5wYXJlbnROb2RlKSx0LmFuY2hvckNsaWNrJiYodC5hbmNob3JFbC5jbGFzc0xpc3QuYWRkKFwiY3Vyc29yLXBvaW50ZXJcIiksdC5hbmNob3JFbC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIix0LnRvZ2dsZSksdC5hbmNob3JFbC5hZGRFdmVudExpc3RlbmVyKFwia2V5dXBcIix0Ll9fdG9nZ2xlS2V5KSl9KSx0aGlzLnZhbHVlJiZ0aGlzLnNob3coKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuc2hvd2luZyYmdGhpcy5fX2NsZWFudXAoKSx0aGlzLmFuY2hvckNsaWNrJiZ0aGlzLmFuY2hvckVsJiYodGhpcy5hbmNob3JFbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIix0aGlzLnRvZ2dsZSksdGhpcy5hbmNob3JFbC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5dXBcIix0aGlzLl9fdG9nZ2xlS2V5KSl9LG1ldGhvZHM6e19fc2hvdzpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMubm9SZWZvY3VzfHwodGhpcy5fX3JlZm9jdXNUYXJnZXQ9dGhpcy5hbmNob3JDbGljayYmdGhpcy5hbmNob3JFbHx8ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLiRlbCksRXNjYXBlS2V5LnJlZ2lzdGVyKGZ1bmN0aW9uKCl7ZS4kZW1pdChcImVzY2FwZS1rZXlcIiksZS5oaWRlKCl9KSx0aGlzLnNjcm9sbFRhcmdldD1nZXRTY3JvbGxUYXJnZXQodGhpcy5hbmNob3JFbCksdGhpcy5zY3JvbGxUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMuX191cGRhdGVQb3NpdGlvbixsaXN0ZW5PcHRzLnBhc3NpdmUpLHRoaXMuc2Nyb2xsVGFyZ2V0IT09d2luZG93JiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMuX191cGRhdGVQb3NpdGlvbixsaXN0ZW5PcHRzLnBhc3NpdmUpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdGhpcy5fX3VwZGF0ZVBvc2l0aW9uLGxpc3Rlbk9wdHMucGFzc2l2ZSksdGhpcy5fX3VwZGF0ZVBvc2l0aW9uKDAsdCwhMCksY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLCF0aGlzLm5vRm9jdXMmJnRoaXMuJHJlZnMuY29udGVudCYmdGhpcy4kcmVmcy5jb250ZW50LmZvY3VzKCksdGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsZS5fX2JvZHlIaWRlLCEwKSxkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsZS5fX2JvZHlIaWRlLCEwKSxlLnNob3dQcm9taXNlJiZlLnNob3dQcm9taXNlUmVzb2x2ZSgpfSwwKX0sX190b2dnbGVLZXk6ZnVuY3Rpb24odCl7MTM9PT10LmtleUNvZGUmJnRoaXMudG9nZ2xlKHQpfSxfX2JvZHlIaWRlOmZ1bmN0aW9uKHQpe3RoaXMucGVyc2lzdGVudHx8dCYmdC50YXJnZXQmJih0aGlzLiRlbC5jb250YWlucyh0LnRhcmdldCl8fHRoaXMuYW5jaG9yRWwuY29udGFpbnModC50YXJnZXQpKXx8dGhpcy5oaWRlKHQpfSxfX2hpZGU6ZnVuY3Rpb24oKXt0aGlzLl9fY2xlYW51cCgpLHRoaXMuaGlkZVByb21pc2UmJnRoaXMuaGlkZVByb21pc2VSZXNvbHZlKCksIXRoaXMubm9SZWZvY3VzJiZ0aGlzLl9fcmVmb2N1c1RhcmdldCYmKHRoaXMuX19yZWZvY3VzVGFyZ2V0LmZvY3VzKCksIXRoaXMuX19yZWZvY3VzVGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucyhcInEtaWZcIikmJnRoaXMuX19yZWZvY3VzVGFyZ2V0LmJsdXIoKSl9LF9fY2xlYW51cDpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSxkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIix0aGlzLl9fYm9keUhpZGUsITApLGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIix0aGlzLl9fYm9keUhpZGUsITApLHRoaXMuc2Nyb2xsVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0aGlzLl9fdXBkYXRlUG9zaXRpb24sbGlzdGVuT3B0cy5wYXNzaXZlKSx0aGlzLnNjcm9sbFRhcmdldCE9PXdpbmRvdyYmd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0aGlzLl9fdXBkYXRlUG9zaXRpb24sbGlzdGVuT3B0cy5wYXNzaXZlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHRoaXMuX191cGRhdGVQb3NpdGlvbixsaXN0ZW5PcHRzLnBhc3NpdmUpLEVzY2FwZUtleS5wb3AoKSx0aGlzLiRlbC5yZW1vdmUoKX0scmVwb3NpdGlvbjpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMuYW5jaG9yRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscz1pLnRvcCxuPWkuYm90dG9tLG89aS5sZWZ0LHI9aS5yaWdodDtpZighdGhpcy5rZWVwT25TY3JlZW4mJihuPDB8fHM+d2luZG93LmlubmVySGVpZ2h0fHxyPDB8fG8+d2luZG93LmlubmVyV2lkdGgpKXJldHVybiB0aGlzLmhpZGUoKTtpZih0aGlzLmZpdHx8dGhpcy5jb3Zlcil7dmFyIGE9d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5hbmNob3JFbCk7dGhpcy4kZWwuc3R5bGUubWluV2lkdGg9YS5nZXRQcm9wZXJ0eVZhbHVlKFwid2lkdGhcIiksdGhpcy5jb3ZlciYmKHRoaXMuJGVsLnN0eWxlLm1pbkhlaWdodD1hLmdldFByb3BlcnR5VmFsdWUoXCJoZWlnaHRcIikpfWlmKGUpaWYodGhpcy50b3VjaFBvc2l0aW9uKXt2YXIgbD1wb3NpdGlvbih0KSxjPWwudG9wLGg9bC5sZWZ0O3RoaXMudG91Y2hPZmZzZXQ9e2xlZnQ6aC1vLHRvcDpjLXN9fWVsc2UgZGVsZXRlIHRoaXMudG91Y2hPZmZzZXQ7c2V0UG9zaXRpb24oe2V2ZW50OnQsYW5pbWF0ZTplLGVsOnRoaXMuJGVsLG9mZnNldDp0aGlzLm9mZnNldCxhbmNob3JFbDp0aGlzLmFuY2hvckVsLGFuY2hvck9yaWdpbjp0aGlzLmFuY2hvck9yaWdpbixzZWxmT3JpZ2luOnRoaXMuc2VsZk9yaWdpbixtYXhIZWlnaHQ6dGhpcy5tYXhIZWlnaHQsYW5jaG9yQ2xpY2s6dGhpcy5hbmNob3JDbGljayx0b3VjaFBvc2l0aW9uOnRoaXMudG91Y2hQb3NpdGlvbix0b3VjaE9mZnNldDp0aGlzLnRvdWNoT2Zmc2V0LGNvdmVyOnRoaXMuY292ZXJ9KX19fTtmdW5jdGlvbiBwdXNoKHQsZSxpLHMsbixvKXt2YXIgcj17cHJvcHM6e3JpZ2h0Om8ucmlnaHR9fTtpZihzJiZuKXQucHVzaChlKGkscixzKSk7ZWxzZXt2YXIgYT0hMTtmb3IodmFyIGwgaW4gbylpZihvLmhhc093blByb3BlcnR5KGwpJiZ2b2lkIDAhPT0oYT1vW2xdKSYmITAhPT1hKXt0LnB1c2goZShpLHtwcm9wczpvfSkpO2JyZWFrfXMmJnQucHVzaChlKGkscixzKSl9fXZhciBRSXRlbVdyYXBwZXI9e25hbWU6XCJRSXRlbVdyYXBwZXJcIixwcm9wczp7Y2ZnOnt0eXBlOk9iamVjdCxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJue319fSxzbG90UmVwbGFjZTpCb29sZWFufSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jZmcsaT10aGlzLnNsb3RSZXBsYWNlLHM9W107cmV0dXJuIHB1c2gocyx0LFFJdGVtU2lkZSx0aGlzLiRzbG90cy5sZWZ0LGkse2ljb246ZS5pY29uLGNvbG9yOmUubGVmdENvbG9yLGF2YXRhcjplLmF2YXRhcixsZXR0ZXI6ZS5sZXR0ZXIsaW1hZ2U6ZS5pbWFnZSxpbnZlcnRlZDplLmxlZnRJbnZlcnRlZCx0ZXh0Q29sb3I6ZS5sZWZ0VGV4dENvbG9yfSkscHVzaChzLHQsUUl0ZW1NYWluLHRoaXMuJHNsb3RzLm1haW4saSx7bGFiZWw6ZS5sYWJlbCxzdWJsYWJlbDplLnN1YmxhYmVsLGxhYmVsTGluZXM6ZS5sYWJlbExpbmVzLHN1YmxhYmVsTGluZXM6ZS5zdWJsYWJlbExpbmVzLGluc2V0OmUuaW5zZXR9KSxwdXNoKHMsdCxRSXRlbVNpZGUsdGhpcy4kc2xvdHMucmlnaHQsaSx7cmlnaHQ6ITAsaWNvbjplLnJpZ2h0SWNvbixjb2xvcjplLnJpZ2h0Q29sb3IsYXZhdGFyOmUucmlnaHRBdmF0YXIsbGV0dGVyOmUucmlnaHRMZXR0ZXIsaW1hZ2U6ZS5yaWdodEltYWdlLHN0YW1wOmUuc3RhbXAsaW52ZXJ0ZWQ6ZS5yaWdodEludmVydGVkLHRleHRDb2xvcjplLnJpZ2h0VGV4dENvbG9yfSkscy5wdXNoKHRoaXMuJHNsb3RzLmRlZmF1bHQpLHQoUUl0ZW0se2F0dHJzOnRoaXMuJGF0dHJzLG9uOnRoaXMuJGxpc3RlbmVycyxwcm9wczplfSxzKX19LEtleWJvYXJkU2VsZWN0aW9uTWl4aW49e2RhdGE6ZnVuY3Rpb24oKXtyZXR1cm57a2V5Ym9hcmRJbmRleDowLGtleWJvYXJkTW92ZURpcmVjdGlvbjohMSxrZXlib2FyZE1vdmVUaW1lcjohMX19LHdhdGNoOntrZXlib2FyZEluZGV4OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy4kcmVmcy5wb3BvdmVyJiZ0aGlzLiRyZWZzLnBvcG92ZXIuc2hvd2luZyYmdGhpcy5rZXlib2FyZE1vdmVEaXJlY3Rpb24mJnQ+LTEmJnRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7aWYoZS4kcmVmcy5wb3BvdmVyKXt2YXIgdD1lLiRyZWZzLnBvcG92ZXIuJGVsLnF1ZXJ5U2VsZWN0b3IoXCIucS1zZWxlY3QtaGlnaGxpZ2h0XCIpO2lmKHQmJnQuc2Nyb2xsSW50b1ZpZXcpe2lmKHQuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZClyZXR1cm4gdC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKCExKTt0LnNjcm9sbEludG9WaWV3KGUua2V5Ym9hcmRNb3ZlRGlyZWN0aW9uPDApfX19KX19LG1ldGhvZHM6e19fa2V5Ym9hcmRTaG93OmZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PTApLHRoaXMua2V5Ym9hcmRJbmRleCE9PXQmJih0aGlzLmtleWJvYXJkSW5kZXg9dCl9LF9fa2V5Ym9hcmRTZXRDdXJyZW50U2VsZWN0aW9uOmZ1bmN0aW9uKHQpe3RoaXMua2V5Ym9hcmRJbmRleD49MCYmdGhpcy5rZXlib2FyZEluZGV4PD10aGlzLmtleWJvYXJkTWF4SW5kZXgmJnRoaXMuX19rZXlib2FyZFNldFNlbGVjdGlvbih0aGlzLmtleWJvYXJkSW5kZXgsdCl9LF9fa2V5Ym9hcmRIYW5kbGVLZXk6ZnVuY3Rpb24odCl7dmFyIGU9Z2V0RXZlbnRLZXkodCk7c3dpdGNoKGUpe2Nhc2UgMzg6dGhpcy5fX2tleWJvYXJkTW92ZUN1cnNvcigtMSx0KTticmVhaztjYXNlIDQwOnRoaXMuX19rZXlib2FyZE1vdmVDdXJzb3IoMSx0KTticmVhaztjYXNlIDEzOmlmKHRoaXMuJHJlZnMucG9wb3Zlci5zaG93aW5nKXJldHVybiBzdG9wQW5kUHJldmVudCh0KSx2b2lkIHRoaXMuX19rZXlib2FyZFNldEN1cnJlbnRTZWxlY3Rpb24oKTticmVhaztjYXNlIDk6dGhpcy5oaWRlKCl9dGhpcy5fX2tleWJvYXJkQ3VzdG9tS2V5SGFuZGxlKGUsdCl9LF9fa2V5Ym9hcmRNb3ZlQ3Vyc29yOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcztpZihzdG9wQW5kUHJldmVudChlKSx0aGlzLiRyZWZzLnBvcG92ZXIuc2hvd2luZyl7Y2xlYXJUaW1lb3V0KHRoaXMua2V5Ym9hcmRNb3ZlVGltZXIpO3ZhciBzPXRoaXMua2V5Ym9hcmRJbmRleCxuPXRoaXMuX19rZXlib2FyZElzU2VsZWN0YWJsZUluZGV4fHxmdW5jdGlvbigpe3JldHVybiEwfTtkb3tzPW5vcm1hbGl6ZVRvSW50ZXJ2YWwocyt0LC0xLGkua2V5Ym9hcmRNYXhJbmRleCl9d2hpbGUocyE9PXRoaXMua2V5Ym9hcmRJbmRleCYmIW4ocykpO3JldHVybiB0aGlzLmtleWJvYXJkTW92ZURpcmVjdGlvbj1zPnRoaXMua2V5Ym9hcmRJbmRleD8xOi0xLHRoaXMua2V5Ym9hcmRNb3ZlVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2kua2V5Ym9hcmRNb3ZlRGlyZWN0aW9uPSExfSw1MDApLHZvaWQodGhpcy5rZXlib2FyZEluZGV4PXMpfXRoaXMuX19rZXlib2FyZFNob3dUcmlnZ2VyKCl9fX0sUUF1dG9jb21wbGV0ZT17bmFtZTpcIlFBdXRvY29tcGxldGVcIixtaXhpbnM6W0tleWJvYXJkU2VsZWN0aW9uTWl4aW5dLHByb3BzOnttaW5DaGFyYWN0ZXJzOnt0eXBlOk51bWJlcixkZWZhdWx0OjF9LG1heFJlc3VsdHM6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6Nn0sbWF4SGVpZ2h0OlN0cmluZyxkZWJvdW5jZTp7dHlwZTpOdW1iZXIsZGVmYXVsdDo1MDB9LGZpbHRlcjp7dHlwZTpGdW5jdGlvbixkZWZhdWx0OmZpbHRlcn0sc3RhdGljRGF0YTpPYmplY3QsdmFsdWVGaWVsZDpbU3RyaW5nLEZ1bmN0aW9uXSxzZXBhcmF0b3I6Qm9vbGVhbn0saW5qZWN0OntfX2lucHV0OntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFBdXRvY29tcGxldGUgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUUlucHV0LCBRQ2hpcHNJbnB1dCBvciBRU2VhcmNoXCIpfX0sX19pbnB1dERlYm91bmNlOntkZWZhdWx0Om51bGx9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3NlYXJjaElkOlwiXCIscmVzdWx0czpbXSx3aWR0aDowLGVudGVyS2V5OiExLHRpbWVyOm51bGx9fSx3YXRjaDp7XCJfX2lucHV0LnZhbFwiOmZ1bmN0aW9uKCl7dGhpcy5lbnRlcktleT90aGlzLmVudGVyS2V5PSExOnRoaXMuX19kZWxheVRyaWdnZXIoKX19LGNvbXB1dGVkOntjb21wdXRlZFJlc3VsdHM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXhSZXN1bHRzJiZ0aGlzLnJlc3VsdHMubGVuZ3RoPjA/dGhpcy5yZXN1bHRzLnNsaWNlKDAsdGhpcy5tYXhSZXN1bHRzKTpbXX0sY29tcHV0ZWRWYWx1ZUZpZWxkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVGaWVsZHx8dGhpcy5zdGF0aWNEYXRhJiZ0aGlzLnN0YXRpY0RhdGEuZmllbGR8fFwidmFsdWVcIn0sa2V5Ym9hcmRNYXhJbmRleDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbXB1dGVkUmVzdWx0cy5sZW5ndGgtMX0sY29tcHV0ZWRXaWR0aDpmdW5jdGlvbigpe3JldHVybnttaW5XaWR0aDp0aGlzLndpZHRofX0sc2VhcmNoaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VhcmNoSWQubGVuZ3RoPjB9fSxtZXRob2RzOntpc1dvcmtpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcmVmcyYmdGhpcy4kcmVmcy5wb3BvdmVyfSx0cmlnZ2VyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpcy5fX2lucHV0JiZ0aGlzLl9faW5wdXQuaXNFZGl0YWJsZSgpJiZ0aGlzLl9faW5wdXQuaGFzRm9jdXMoKSYmdGhpcy5pc1dvcmtpbmcoKSl7dmFyIGk9W251bGwsdm9pZCAwXS5pbmNsdWRlcyh0aGlzLl9faW5wdXQudmFsKT9cIlwiOlN0cmluZyh0aGlzLl9faW5wdXQudmFsKSxzPWkubGVuZ3RoLG49dWlkKCksbz10aGlzLiRyZWZzLnBvcG92ZXI7aWYodGhpcy5zZWFyY2hJZD1uLHM8dGhpcy5taW5DaGFyYWN0ZXJzfHwhMD09PXQmJnM+MClyZXR1cm4gdGhpcy5zZWFyY2hJZD1cIlwiLHRoaXMuX19jbGVhclNlYXJjaCgpLHZvaWQgdGhpcy5oaWRlKCk7aWYodGhpcy53aWR0aD13aWR0aCh0aGlzLmlucHV0RWwpK1wicHhcIix0aGlzLnN0YXRpY0RhdGEpcmV0dXJuIHRoaXMuc2VhcmNoSWQ9XCJcIix0aGlzLnJlc3VsdHM9dGhpcy5maWx0ZXIoaSx0aGlzLnN0YXRpY0RhdGEpLHRoaXMucmVzdWx0cy5sZW5ndGg/dm9pZCB0aGlzLl9fc2hvd1Jlc3VsdHMoKTp2b2lkIG8uaGlkZSgpO3RoaXMuX19pbnB1dC5sb2FkaW5nPSEwLHRoaXMuJGVtaXQoXCJzZWFyY2hcIixpLGZ1bmN0aW9uKHQpe2lmKGUuaXNXb3JraW5nKCkmJmUuc2VhcmNoSWQ9PT1uKXtpZihlLl9fY2xlYXJTZWFyY2goKSxBcnJheS5pc0FycmF5KHQpJiZ0Lmxlbmd0aD4wKXJldHVybiBlLnJlc3VsdHM9dCx2b2lkIGUuX19zaG93UmVzdWx0cygpO2UuaGlkZSgpfX0pfX0saGlkZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlc3VsdHM9W10sdGhpcy5pc1dvcmtpbmcoKT90aGlzLiRyZWZzLnBvcG92ZXIuaGlkZSgpOlByb21pc2UucmVzb2x2ZSgpfSxibHVySGlkZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fX2NsZWFyU2VhcmNoKCksdGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHQuaGlkZSgpfSwzMDApfSxfX2NsZWFyU2VhcmNoOmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuX19pbnB1dC5sb2FkaW5nPSExLHRoaXMuc2VhcmNoSWQ9XCJcIn0sX19rZXlib2FyZEN1c3RvbUtleUhhbmRsZTpmdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSAyNzp0aGlzLl9fY2xlYXJTZWFyY2goKTticmVhaztjYXNlIDM4OmNhc2UgNDA6Y2FzZSA5OnRoaXMuX19rZXlib2FyZFNldEN1cnJlbnRTZWxlY3Rpb24oITApfX0sX19rZXlib2FyZFNob3dUcmlnZ2VyOmZ1bmN0aW9uKCl7dGhpcy50cmlnZ2VyKCl9LF9fZm9jdXNTaG93VHJpZ2dlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB0LnRyaWdnZXIoITApfSwxMDApfSxfX2tleWJvYXJkSXNTZWxlY3RhYmxlSW5kZXg6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+LTEmJnQ8dGhpcy5jb21wdXRlZFJlc3VsdHMubGVuZ3RoJiYhdGhpcy5jb21wdXRlZFJlc3VsdHNbdF0uZGlzYWJsZX0sc2V0VmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLHM9XCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy5jb21wdXRlZFZhbHVlRmllbGQ/dGhpcy5jb21wdXRlZFZhbHVlRmllbGQodCk6dFt0aGlzLmNvbXB1dGVkVmFsdWVGaWVsZF0sbj10aGlzLl9faW5wdXREZWJvdW5jZT9cIkRlYm91bmNlXCI6XCJcIjt0aGlzLmlucHV0RWwmJnRoaXMuX19pbnB1dCYmIXRoaXMuX19pbnB1dC5oYXNGb2N1cygpJiYodGhpcy4kcS5wbGF0Zm9ybS5pcy5pZT90aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe2kuaW5wdXRFbC5mb2N1cygpfSk6dGhpcy5pbnB1dEVsLmZvY3VzKCkpLHRoaXMuZW50ZXJLZXk9dGhpcy5fX2lucHV0JiZzIT09dGhpcy5fX2lucHV0LnZhbCx0aGlzW1wiX19pbnB1dFwiK25dW2U/XCJzZXROYXZcIjpcInNldFwiXShzKSx0aGlzLiRlbWl0KFwic2VsZWN0ZWRcIix0LCEhZSksZXx8KHRoaXMuX19jbGVhclNlYXJjaCgpLHRoaXMuaGlkZSgpKX0sX19rZXlib2FyZFNldFNlbGVjdGlvbjpmdW5jdGlvbih0LGUpe3RoaXMuc2V0VmFsdWUodGhpcy5yZXN1bHRzW3RdLGUpfSxfX2RlbGF5VHJpZ2dlcjpmdW5jdGlvbigpe3RoaXMuX19jbGVhclNlYXJjaCgpLHRoaXMuX19pbnB1dC5oYXNGb2N1cygpJiYodGhpcy5zdGF0aWNEYXRhP3RoaXMudHJpZ2dlcigpOnRoaXMudGltZXI9c2V0VGltZW91dCh0aGlzLnRyaWdnZXIsdGhpcy5kZWJvdW5jZSkpfSxfX3Nob3dSZXN1bHRzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kcmVmcy5wb3BvdmVyO3RoaXMuX19rZXlib2FyZFNob3coLTEpLHQuc2hvd2luZz90aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3JldHVybiB0LnNob3dpbmcmJnQucmVwb3NpdGlvbigpfSk6dC5zaG93KCl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl9faW5wdXQucmVnaXN0ZXIoKSx0aGlzLl9faW5wdXREZWJvdW5jZSYmdGhpcy5fX2lucHV0RGVib3VuY2Uuc2V0Q2hpbGREZWJvdW5jZSghMCksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0Ll9faW5wdXQmJih0LmlucHV0RWw9dC5fX2lucHV0LmdldEVsKCksdC5pbnB1dEVsLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsdC5fX2tleWJvYXJkSGFuZGxlS2V5KSx0LmlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcihcImJsdXJcIix0LmJsdXJIaWRlKSx0LmlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsdC5fX2ZvY3VzU2hvd1RyaWdnZXIpKX0pfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5fX2NsZWFyU2VhcmNoKCksdGhpcy5fX2lucHV0LnVucmVnaXN0ZXIoKSx0aGlzLl9faW5wdXREZWJvdW5jZSYmdGhpcy5fX2lucHV0RGVib3VuY2Uuc2V0Q2hpbGREZWJvdW5jZSghMSksdGhpcy5pbnB1dEVsJiYodGhpcy5pbnB1dEVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsdGhpcy5fX2tleWJvYXJkSGFuZGxlS2V5KSx0aGlzLmlucHV0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImJsdXJcIix0aGlzLmJsdXJIaWRlKSx0aGlzLmlucHV0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsdGhpcy5fX2ZvY3VzU2hvd1RyaWdnZXIpLHRoaXMuaGlkZSgpKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10aGlzLl9faW5wdXQuaXNEYXJrKCk7cmV0dXJuIHQoUVBvcG92ZXIse3JlZjpcInBvcG92ZXJcIixjbGFzczppP1wiYmctZGFya1wiOm51bGwscHJvcHM6e2ZpdDohMCxrZWVwT25TY3JlZW46ITAsYW5jaG9yQ2xpY2s6ITEsbWF4SGVpZ2h0OnRoaXMubWF4SGVpZ2h0LG5vRm9jdXM6ITAsbm9SZWZvY3VzOiEwfSxvbjp7c2hvdzpmdW5jdGlvbigpe2UuX19pbnB1dC5zZWxlY3Rpb25PcGVuPSEwLGUuJGVtaXQoXCJzaG93XCIpfSxoaWRlOmZ1bmN0aW9uKCl7ZS5fX2lucHV0LnNlbGVjdGlvbk9wZW49ITEsZS4kZW1pdChcImhpZGVcIil9fX0sW3QoUUxpc3Qse3Byb3BzOntkYXJrOmksbm9Cb3JkZXI6ITAsc2VwYXJhdG9yOnRoaXMuc2VwYXJhdG9yfSxzdHlsZTp0aGlzLmNvbXB1dGVkV2lkdGh9LHRoaXMuY29tcHV0ZWRSZXN1bHRzLm1hcChmdW5jdGlvbihpLHMpe3JldHVybiB0KFFJdGVtV3JhcHBlcix7a2V5OmkuaWR8fHMsY2xhc3M6e1wicS1zZWxlY3QtaGlnaGxpZ2h0XCI6ZS5rZXlib2FyZEluZGV4PT09cyxcImN1cnNvci1wb2ludGVyXCI6IWkuZGlzYWJsZSxcInRleHQtZmFkZWRcIjppLmRpc2FibGV9LHByb3BzOntjZmc6aX0sbmF0aXZlT246e21vdXNlZW50ZXI6ZnVuY3Rpb24oKXshaS5kaXNhYmxlJiYoZS5rZXlib2FyZEluZGV4PXMpfSxjbGljazpmdW5jdGlvbigpeyFpLmRpc2FibGUmJmUuc2V0VmFsdWUoaSl9fX0pfSkpXSl9fSxRQnJlYWRjcnVtYnM9e25hbWU6XCJRQnJlYWRjcnVtYnNcIixtaXhpbnM6W0FsaWduTWl4aW5dLHByb3BzOntjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImZhZGVkXCJ9LGFjdGl2ZUNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSxzZXBhcmF0b3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCIvXCJ9LGFsaWduOk9iamVjdC5hc3NpZ24oe30sQWxpZ25NaXhpbi5wcm9wcy5hbGlnbix7ZGVmYXVsdDpcImxlZnRcIn0pfSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3JldHVybltcInRleHQtXCIrdGhpcy5jb2xvcix0aGlzLmFsaWduQ2xhc3NdfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpcy4kc2xvdHMuZGVmYXVsdCl7dmFyIGk9W10scz10aGlzLiRzbG90cy5kZWZhdWx0LmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09dC50YWcmJnQudGFnLmVuZHNXaXRoKFwiLVFCcmVhZGNydW1ic0VsXCIpfSkubGVuZ3RoLG49dGhpcy4kc2NvcGVkU2xvdHMuc2VwYXJhdG9yfHxmdW5jdGlvbigpe3JldHVybiBlLnNlcGFyYXRvcn0sbz1cInRleHQtXCIrdGhpcy5jb2xvcixyPVwidGV4dC1cIit0aGlzLmFjdGl2ZUNvbG9yLGE9MTtmb3IodmFyIGwgaW4gZS4kc2xvdHMuZGVmYXVsdCl7dmFyIGM9ZS4kc2xvdHMuZGVmYXVsdFtsXTtpZih2b2lkIDAhPT1jLnRhZyYmYy50YWcuZW5kc1dpdGgoXCItUUJyZWFkY3J1bWJzRWxcIikpe3ZhciBoPWE8czthKyssaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJmbGV4IGl0ZW1zLWNlbnRlclwiLGNsYXNzOltoP3I6byxoP1widGV4dC13ZWlnaHQtYm9sZFwiOlwicS1icmVhZGNydW1icy1sYXN0XCJdfSxbY10pKSxoJiZpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYnJlYWRjcnVtYnMtc2VwYXJhdG9yXCIsY2xhc3M6b30sW24oKV0pKX1lbHNlIGkucHVzaChjKX1yZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYnJlYWRjcnVtYnMgZmxleCBndXR0ZXIteHMgaXRlbXMtY2VudGVyIG92ZXJmbG93LWhpZGRlblwiLGNsYXNzOnRoaXMuY2xhc3Nlc30saSl9fX0sUUJyZWFkY3J1bWJzRWw9e25hbWU6XCJRQnJlYWRjcnVtYnNFbFwiLG1peGluczpbe3Byb3BzOnJvdXRlckxpbmtQcm9wc31dLHByb3BzOntsYWJlbDpTdHJpbmcsaWNvbjpTdHJpbmcsY29sb3I6U3RyaW5nfSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQodm9pZCAwIT09dGhpcy50bz9cInJvdXRlci1saW5rXCI6XCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1saW5rIHEtYnJlYWRjcnVtYnMtZWwgZmxleCBpbmxpbmUgaXRlbXMtY2VudGVyIHJlbGF0aXZlLXBvc2l0aW9uXCIscHJvcHM6dm9pZCAwIT09dGhpcy50bz90aGlzLiRwcm9wczpudWxsfSxbdGhpcy5pY29uP3QoUUljb24se3N0YXRpY0NsYXNzOlwicS1icmVhY3J1bWJzLWVsLWljb24gcS1tci1zbVwiLHByb3BzOntuYW1lOnRoaXMuaWNvbn19KTpudWxsLHRoaXMubGFiZWxdLmNvbmNhdCh0aGlzLiRzbG90cy5kZWZhdWx0KSl9fSxRQnRuR3JvdXA9e25hbWU6XCJRQnRuR3JvdXBcIixwcm9wczp7b3V0bGluZTpCb29sZWFuLGZsYXQ6Qm9vbGVhbixyb3VuZGVkOkJvb2xlYW4scHVzaDpCb29sZWFufSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuW1wib3V0bGluZVwiLFwiZmxhdFwiLFwicm91bmRlZFwiLFwicHVzaFwiXS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuXCJxLWJ0bi1ncm91cC1cIit0fSkuam9pbihcIiBcIil9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWJ0bi1ncm91cCByb3cgbm8td3JhcCBpbmxpbmVcIixjbGFzczp0aGlzLmNsYXNzZXN9LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUUJ0bkRyb3Bkb3duPXtuYW1lOlwiUUJ0bkRyb3Bkb3duXCIsbWl4aW5zOltCdG5NaXhpbl0scHJvcHM6e3ZhbHVlOkJvb2xlYW4sc3BsaXQ6Qm9vbGVhbixjb250ZW50Q2xhc3M6W0FycmF5LFN0cmluZyxPYmplY3RdLGNvbnRlbnRTdHlsZTpbQXJyYXksU3RyaW5nLE9iamVjdF0scG9wb3ZlckFuY2hvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImJvdHRvbSByaWdodFwifSxwb3BvdmVyU2VsZjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInRvcCByaWdodFwifX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzaG93aW5nOnRoaXMudmFsdWV9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dGhpcy4kcmVmcy5wb3BvdmVyJiZ0aGlzLiRyZWZzLnBvcG92ZXJbdD9cInNob3dcIjpcImhpZGVcIl0oKX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dChRUG9wb3Zlcix7cmVmOlwicG9wb3ZlclwiLHByb3BzOntkaXNhYmxlOnRoaXMuZGlzYWJsZSxmaXQ6ITAsYW5jaG9yQ2xpY2s6IXRoaXMuc3BsaXQsYW5jaG9yOnRoaXMucG9wb3ZlckFuY2hvcixzZWxmOnRoaXMucG9wb3ZlclNlbGZ9LGNsYXNzOnRoaXMuY29udGVudENsYXNzLHN0eWxlOnRoaXMuY29udGVudFN0eWxlLG9uOntzaG93OmZ1bmN0aW9uKHQpe2Uuc2hvd2luZz0hMCxlLiRlbWl0KFwic2hvd1wiLHQpLGUuJGVtaXQoXCJpbnB1dFwiLCEwKX0saGlkZTpmdW5jdGlvbih0KXtlLnNob3dpbmc9ITEsZS4kZW1pdChcImhpZGVcIix0KSxlLiRlbWl0KFwiaW5wdXRcIiwhMSl9fX0sdGhpcy4kc2xvdHMuZGVmYXVsdCkscz10KFFJY29uLHtwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uaW5wdXQuZHJvcGRvd259LHN0YXRpY0NsYXNzOlwidHJhbnNpdGlvbi1nZW5lcmljXCIsY2xhc3M6e1wicm90YXRlLTE4MFwiOnRoaXMuc2hvd2luZyxcIm9uLXJpZ2h0XCI6IXRoaXMuc3BsaXQsXCJxLWJ0bi1kcm9wZG93bi1hcnJvd1wiOiF0aGlzLnNwbGl0fX0pLG49dChRQnRuLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LHRoaXMuJHByb3BzLHtpY29uUmlnaHQ6dGhpcy5zcGxpdD90aGlzLmljb25SaWdodDpudWxsfSksY2xhc3M6dGhpcy5zcGxpdD9cInEtYnRuLWRyb3Bkb3duLWN1cnJlbnRcIjpcInEtYnRuLWRyb3Bkb3duIHEtYnRuLWRyb3Bkb3duLXNpbXBsZVwiLG9uOntjbGljazpmdW5jdGlvbih0KXtlLnNwbGl0JiZlLmhpZGUoKSxlLmRpc2FibGV8fGUuJGVtaXQoXCJjbGlja1wiLHQpfX19LHRoaXMuc3BsaXQ/bnVsbDpbcyxpXSk7cmV0dXJuIHRoaXMuc3BsaXQ/dChRQnRuR3JvdXAse3Byb3BzOntvdXRsaW5lOnRoaXMub3V0bGluZSxmbGF0OnRoaXMuZmxhdCxyb3VuZGVkOnRoaXMucm91bmRlZCxwdXNoOnRoaXMucHVzaH0sc3RhdGljQ2xhc3M6XCJxLWJ0bi1kcm9wZG93biBxLWJ0bi1kcm9wZG93bi1zcGxpdCBuby13cmFwIHEtYnRuLWl0ZW1cIn0sW24sdChRQnRuLHtwcm9wczp7ZGlzYWJsZTp0aGlzLmRpc2FibGUsb3V0bGluZTp0aGlzLm91dGxpbmUsZmxhdDp0aGlzLmZsYXQscm91bmRlZDp0aGlzLnJvdW5kZWQscHVzaDp0aGlzLnB1c2gsc2l6ZTp0aGlzLnNpemUsY29sb3I6dGhpcy5jb2xvcix0ZXh0Q29sb3I6dGhpcy50ZXh0Q29sb3IsZGVuc2U6dGhpcy5kZW5zZSxnbG9zc3k6dGhpcy5nbG9zc3ksbm9SaXBwbGU6dGhpcy5ub1JpcHBsZSx3YWl0Rm9yUmlwcGxlOnRoaXMud2FpdEZvclJpcHBsZX0sc3RhdGljQ2xhc3M6XCJxLWJ0bi1kcm9wZG93bi1hcnJvd1wiLG9uOntjbGljazpmdW5jdGlvbigpe2UudG9nZ2xlKCl9fX0sW3NdKSxbaV1dKTpufSxtZXRob2RzOnt0b2dnbGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcmVmcy5wb3BvdmVyP3RoaXMuJHJlZnMucG9wb3Zlci50b2dnbGUoKTpQcm9taXNlLnJlc29sdmUoKX0sc2hvdzpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRyZWZzLnBvcG92ZXI/dGhpcy4kcmVmcy5wb3BvdmVyLnNob3coKTpQcm9taXNlLnJlc29sdmUoKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRyZWZzLnBvcG92ZXI/dGhpcy4kcmVmcy5wb3BvdmVyLmhpZGUoKTpQcm9taXNlLnJlc29sdmUoKX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dC52YWx1ZSYmdC4kcmVmcy5wb3BvdmVyJiZ0LiRyZWZzLnBvcG92ZXIuc2hvdygpfSl9fSxRQnRuVG9nZ2xlPXtuYW1lOlwiUUJ0blRvZ2dsZVwiLHByb3BzOnt2YWx1ZTp7cmVxdWlyZWQ6ITB9LGNvbG9yOlN0cmluZyx0ZXh0Q29sb3I6U3RyaW5nLHRvZ2dsZUNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSx0b2dnbGVUZXh0Q29sb3I6U3RyaW5nLG9wdGlvbnM6e3R5cGU6QXJyYXkscmVxdWlyZWQ6ITAsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0LmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVybihcImxhYmVsXCJpbiB0fHxcImljb25cImluIHQpJiZcInZhbHVlXCJpbiB0fSl9fSxyZWFkb25seTpCb29sZWFuLGRpc2FibGU6Qm9vbGVhbixub0NhcHM6Qm9vbGVhbixub1dyYXA6Qm9vbGVhbixvdXRsaW5lOkJvb2xlYW4sZmxhdDpCb29sZWFuLGRlbnNlOkJvb2xlYW4scm91bmRlZDpCb29sZWFuLHB1c2g6Qm9vbGVhbixzaXplOlN0cmluZyxnbG9zc3k6Qm9vbGVhbixub1JpcHBsZTpCb29sZWFuLHdhaXRGb3JSaXBwbGU6Qm9vbGVhbn0sY29tcHV0ZWQ6e3ZhbDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMub3B0aW9ucy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUudmFsdWU9PT10LnZhbHVlfSl9fSxtZXRob2RzOntzZXQ6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzO3RoaXMucmVhZG9ubHl8fCh0aGlzLiRlbWl0KFwiaW5wdXRcIix0LGUpLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkodCkhPT1KU09OLnN0cmluZ2lmeShpLnZhbHVlKSYmaS4kZW1pdChcImNoYW5nZVwiLHQsZSl9KSl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChRQnRuR3JvdXAse3N0YXRpY0NsYXNzOlwicS1idG4tdG9nZ2xlXCIscHJvcHM6e291dGxpbmU6dGhpcy5vdXRsaW5lLGZsYXQ6dGhpcy5mbGF0LHJvdW5kZWQ6dGhpcy5yb3VuZGVkLHB1c2g6dGhpcy5wdXNofX0sdGhpcy5vcHRpb25zLm1hcChmdW5jdGlvbihpLHMpe3JldHVybiB0KFFCdG4se2tleTpcIlwiK2kubGFiZWwraS5pY29uK2kuaWNvblJpZ2h0LG9uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBlLnNldChpLnZhbHVlLGkpfX0scHJvcHM6e2Rpc2FibGU6ZS5kaXNhYmxlfHxpLmRpc2FibGUsbGFiZWw6aS5sYWJlbCxjb2xvcjplLnZhbFtzXT9pLnRvZ2dsZUNvbG9yfHxlLnRvZ2dsZUNvbG9yOmkuY29sb3J8fGUuY29sb3IsdGV4dENvbG9yOmUudmFsW3NdP2kudG9nZ2xlVGV4dENvbG9yfHxlLnRvZ2dsZVRleHRDb2xvcjppLnRleHRDb2xvcnx8ZS50ZXh0Q29sb3IsaWNvbjppLmljb24saWNvblJpZ2h0OmkuaWNvblJpZ2h0LG5vQ2FwczplLm5vQ2Fwc3x8aS5ub0NhcHMsbm9XcmFwOmUubm9XcmFwfHxpLm5vV3JhcCxvdXRsaW5lOmUub3V0bGluZSxmbGF0OmUuZmxhdCxyb3VuZGVkOmUucm91bmRlZCxwdXNoOmUucHVzaCxnbG9zc3k6ZS5nbG9zc3ksc2l6ZTplLnNpemUsZGVuc2U6ZS5kZW5zZSxub1JpcHBsZTplLm5vUmlwcGxlfHxpLm5vUmlwcGxlLHdhaXRGb3JSaXBwbGU6ZS53YWl0Rm9yUmlwcGxlfHxpLndhaXRGb3JSaXBwbGUsdGFiaW5kZXg6aS50YWJpbmRleH19KX0pKX19LFFDYXJkPXtuYW1lOlwiUUNhcmRcIixwcm9wczp7ZGFyazpCb29sZWFuLHNxdWFyZTpCb29sZWFuLGZsYXQ6Qm9vbGVhbixpbmxpbmU6Qm9vbGVhbixjb2xvcjpTdHJpbmcsdGV4dENvbG9yOlN0cmluZ30sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1be1wibm8tYm9yZGVyLXJhZGl1c1wiOnRoaXMuc3F1YXJlLFwibm8tc2hhZG93XCI6dGhpcy5mbGF0LFwiaW5saW5lLWJsb2NrXCI6dGhpcy5pbmxpbmUsXCJxLWNhcmQtZGFya1wiOnRoaXMuZGFya31dO3JldHVybiB0aGlzLmNvbG9yPyh0LnB1c2goXCJiZy1cIit0aGlzLmNvbG9yKSx0LnB1c2goXCJ0ZXh0LVwiKyh0aGlzLnRleHRDb2xvcnx8XCJ3aGl0ZVwiKSkpOnRoaXMudGV4dENvbG9yJiZ0LnB1c2goXCJ0ZXh0LVwiK3RoaXMudGV4dENvbG9yKSx0fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJkXCIsY2xhc3M6dGhpcy5jbGFzc2VzfSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFDYXJkVGl0bGU9e25hbWU6XCJRQ2FyZFRpdGxlXCIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJkLXByaW1hcnkgcS1jYXJkLWNvbnRhaW5lciByb3cgbm8td3JhcFwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCBjb2x1bW5cIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcmQtdGl0bGVcIn0sdGhpcy4kc2xvdHMuZGVmYXVsdCksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2FyZC1zdWJ0aXRsZVwifSxbdGhpcy4kc2xvdHMuc3VidGl0bGVdKV0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wtYXV0byBzZWxmLWNlbnRlciBxLWNhcmQtdGl0bGUtZXh0cmFcIn0sW3RoaXMuJHNsb3RzLnJpZ2h0XSldKX19LFFDYXJkTWFpbj17bmFtZTpcIlFDYXJkTWFpblwiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2FyZC1tYWluIHEtY2FyZC1jb250YWluZXJcIn0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRQ2FyZEFjdGlvbnM9e25hbWU6XCJRQ2FyZEFjdGlvbnNcIixwcm9wczp7dmVydGljYWw6Qm9vbGVhbixhbGlnbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInN0YXJ0XCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcInN0YXJ0XCIsXCJjZW50ZXJcIixcImVuZFwiLFwiYXJvdW5kXCIsXCJiZXR3ZWVuXCJdLmluY2x1ZGVzKHQpfX19LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuXCJxLWNhcmQtYWN0aW9ucy1cIisodGhpcy52ZXJ0aWNhbD9cInZlcnQgY29sdW1uIGp1c3RpZnktc3RhcnRcIjpcImhvcml6IHJvd1wiKStcIiBcIisodGhpcy52ZXJ0aWNhbD9cIml0ZW1zXCI6XCJqdXN0aWZ5XCIpK1wiLVwiK3RoaXMuYWxpZ259fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcmQtYWN0aW9uc1wiLGNsYXNzOnRoaXMuY2xhc3Nlc30sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRQ2FyZE1lZGlhPXtuYW1lOlwiUUNhcmRNZWRpYVwiLHByb3BzOntvdmVybGF5UG9zaXRpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJib3R0b21cIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1widG9wXCIsXCJib3R0b21cIixcImZ1bGxcIl0uaW5jbHVkZXModCl9fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJkLW1lZGlhIHJlbGF0aXZlLXBvc2l0aW9uXCJ9LFt0aGlzLiRzbG90cy5kZWZhdWx0LHRoaXMuJHNsb3RzLm92ZXJsYXk/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2FyZC1tZWRpYS1vdmVybGF5XCIsY2xhc3M6XCJhYnNvbHV0ZS1cIit0aGlzLm92ZXJsYXlQb3NpdGlvbn0sW3RoaXMuJHNsb3RzLm92ZXJsYXldKTpudWxsXSl9fSxRQ2FyZFNlcGFyYXRvcj17bmFtZTpcIlFDYXJkU2VwYXJhdG9yXCIscHJvcHM6e2luc2V0OkJvb2xlYW59LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2FyZC1zZXBhcmF0b3JcIixjbGFzczp7aW5zZXQ6dGhpcy5pbnNldH19LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX07ZnVuY3Rpb24gZ2V0RGlyZWN0aW9uKHQpe3ZhciBlPSEwIT09dC5ob3Jpem9udGFsJiYhMCE9PXQudmVydGljYWwsaT17fTtyZXR1cm4hMCE9PXQuaG9yaXpvbnRhbCYmITAhPT1lfHwoaS5ob3Jpem9udGFsPSEwKSwhMCE9PXQudmVydGljYWwmJiEwIT09ZXx8KGkudmVydGljYWw9ITApLGl9ZnVuY3Rpb24gcHJvY2Vzc0NoYW5nZXModCxlLGkpe3ZhciBzPXBvc2l0aW9uKHQpLG49cy5sZWZ0LWUuZXZlbnQueCxvPXMudG9wLWUuZXZlbnQueSxyPU1hdGguYWJzKG4pLGE9TWF0aC5hYnMobyk7cmV0dXJue2V2dDp0LHBvc2l0aW9uOnMsZGlyZWN0aW9uOmUuZGlyZWN0aW9uLmhvcml6b250YWwmJiFlLmRpcmVjdGlvbi52ZXJ0aWNhbD9uPDA/XCJsZWZ0XCI6XCJyaWdodFwiOiFlLmRpcmVjdGlvbi5ob3Jpem9udGFsJiZlLmRpcmVjdGlvbi52ZXJ0aWNhbD9vPDA/XCJ1cFwiOlwiZG93blwiOnI+PWE/bjwwP1wibGVmdFwiOlwicmlnaHRcIjpvPDA/XCJ1cFwiOlwiZG93blwiLGlzRmlyc3Q6ZS5ldmVudC5pc0ZpcnN0LGlzRmluYWw6aSxkdXJhdGlvbjoobmV3IERhdGUpLmdldFRpbWUoKS1lLmV2ZW50LnRpbWUsZGlzdGFuY2U6e3g6cix5OmF9LG9mZnNldDp7eDpuLHk6b30sZGVsdGE6e3g6cy5sZWZ0LWUuZXZlbnQubGFzdFgseTpzLnRvcC1lLmV2ZW50Lmxhc3RZfX19ZnVuY3Rpb24gc2hvdWxkVHJpZ2dlcih0LGUpe3JldHVybiEoIXQuZGlyZWN0aW9uLmhvcml6b250YWx8fCF0LmRpcmVjdGlvbi52ZXJ0aWNhbCl8fCh0LmRpcmVjdGlvbi5ob3Jpem9udGFsJiYhdC5kaXJlY3Rpb24udmVydGljYWw/TWF0aC5hYnMoZS5kZWx0YS54KT4wOiF0LmRpcmVjdGlvbi5ob3Jpem9udGFsJiZ0LmRpcmVjdGlvbi52ZXJ0aWNhbD9NYXRoLmFicyhlLmRlbHRhLnkpPjA6dm9pZCAwKX12YXIgVG91Y2hQYW49e25hbWU6XCJ0b3VjaC1wYW5cIixiaW5kOmZ1bmN0aW9uKHQsZSl7dmFyIGk9ITAhPT1lLm1vZGlmaWVycy5ub01vdXNlLHM9ZS5tb2RpZmllcnMuc3RvcCxuPWUubW9kaWZpZXJzLnByZXZlbnQsbz1ufHxlLm1vZGlmaWVycy5taWdodFByZXZlbnQ/bnVsbDpsaXN0ZW5PcHRzLnBhc3NpdmUscj17aGFuZGxlcjplLnZhbHVlLGRpcmVjdGlvbjpnZXREaXJlY3Rpb24oZS5tb2RpZmllcnMpLG1vdXNlU3RhcnQ6ZnVuY3Rpb24odCl7bGVmdENsaWNrKHQpJiYoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLHIubW92ZSxvKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLHIubW91c2VFbmQsbyksci5zdGFydCh0LCEwKSl9LG1vdXNlRW5kOmZ1bmN0aW9uKHQpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixyLm1vdmUsbyksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixyLm1vdXNlRW5kLG8pLHIuZW5kKHQpfSxzdGFydDpmdW5jdGlvbihlLGkpe3ZhciBvPXBvc2l0aW9uKGUpO3IuZXZlbnQ9e3g6by5sZWZ0LHk6by50b3AsdGltZToobmV3IERhdGUpLmdldFRpbWUoKSxkZXRlY3RlZDohMD09PWl8fHIuZGlyZWN0aW9uLmhvcml6b250YWwmJnIuZGlyZWN0aW9uLnZlcnRpY2FsLGFib3J0OiExLGlzRmlyc3Q6ITAsbGFzdFg6by5sZWZ0LGxhc3RZOm8udG9wfSxyLmV2ZW50LmRldGVjdGVkJiYodC5jbGFzc0xpc3QuYWRkKFwicS10b3VjaFwiKSwhMCE9PWkmJihzJiZlLnN0b3BQcm9wYWdhdGlvbigpLG4mJmUucHJldmVudERlZmF1bHQoKSxyLm1vdmUoZSkpKX0sbW92ZTpmdW5jdGlvbih0KXtpZighMCE9PXIuZXZlbnQuYWJvcnQpaWYoITAhPT1yLmV2ZW50LmRldGVjdGVkKXt2YXIgZT1wb3NpdGlvbih0KSxpPU1hdGguYWJzKGUubGVmdC1yLmV2ZW50LngpLG89TWF0aC5hYnMoZS50b3Atci5ldmVudC55KTtpIT09byYmKHIuZXZlbnQuZGV0ZWN0ZWQ9ITAsci5ldmVudC5hYm9ydD1yLmRpcmVjdGlvbi52ZXJ0aWNhbD9pPm86aTxvLHIubW92ZSh0KSl9ZWxzZXtzJiZ0LnN0b3BQcm9wYWdhdGlvbigpLG4mJnQucHJldmVudERlZmF1bHQoKTt2YXIgYT1wcm9jZXNzQ2hhbmdlcyh0LHIsITEpO3Nob3VsZFRyaWdnZXIocixhKSYmKHIuaGFuZGxlcihhKSxyLmV2ZW50Lmxhc3RYPWEucG9zaXRpb24ubGVmdCxyLmV2ZW50Lmxhc3RZPWEucG9zaXRpb24udG9wLHIuZXZlbnQuaXNGaXJzdD0hMSl9fSxlbmQ6ZnVuY3Rpb24oZSl7dC5jbGFzc0xpc3QucmVtb3ZlKFwicS10b3VjaFwiKSxyLmV2ZW50LmFib3J0fHwhci5ldmVudC5kZXRlY3RlZHx8ci5ldmVudC5pc0ZpcnN0fHwocyYmZS5zdG9wUHJvcGFnYXRpb24oKSxuJiZlLnByZXZlbnREZWZhdWx0KCksci5oYW5kbGVyKHByb2Nlc3NDaGFuZ2VzKGUsciwhMCkpKX19O3QuX19xdG91Y2hwYW4mJih0Ll9fcXRvdWNocGFuX29sZD10Ll9fcXRvdWNocGFuKSx0Ll9fcXRvdWNocGFuPXIsaSYmdC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsci5tb3VzZVN0YXJ0LG8pLHQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixyLnN0YXJ0LG8pLHQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLHIubW92ZSxvKSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLHIuZW5kLG8pfSx1cGRhdGU6ZnVuY3Rpb24odCxlKXt2YXIgaT1lLm9sZFZhbHVlLHM9ZS52YWx1ZSxuPWUubW9kaWZpZXJzLG89dC5fX3F0b3VjaHBhbjtpIT09cyYmKG8uaGFuZGxlcj1zKSxuLmhvcml6b250YWw9PT1vLmRpcmVjdGlvbi5ob3Jpem9udGFsJiZuLnZlcnRpY2FsPT09by5kaXJlY3Rpb24udmVydGljYWx8fChvLmRpcmVjdGlvbj1nZXREaXJlY3Rpb24obikpfSx1bmJpbmQ6ZnVuY3Rpb24odCxlKXt2YXIgaT10Ll9fcXRvdWNocGFuX29sZHx8dC5fX3F0b3VjaHBhbjtpZih2b2lkIDAhPT1pKXt2YXIgcz1lLm1vZGlmaWVycy5wcmV2ZW50P251bGw6bGlzdGVuT3B0cy5wYXNzaXZlO3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLGkubW91c2VTdGFydCxzKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsaS5zdGFydCxzKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIixpLm1vdmUscyksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIixpLmVuZCxzKSxkZWxldGUgdFt0Ll9fcXRvdWNocGFuX29sZD9cIl9fcXRvdWNocGFuX29sZFwiOlwiX19xdG91Y2hwYW5cIl19fX07ZnVuY3Rpb24gaXNEYXRlKHQpe3JldHVyblwiW29iamVjdCBEYXRlXVwiPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIGlzTnVtYmVyKHQpe3JldHVyblwibnVtYmVyXCI9PXR5cGVvZiB0JiZpc0Zpbml0ZSh0KX1mdW5jdGlvbiBpc1N0cmluZyh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdH12YXIgbGluZWFyPWZ1bmN0aW9uKHQpe3JldHVybiB0fSxlYXNlSW5RdWFkPWZ1bmN0aW9uKHQpe3JldHVybiB0KnR9LGVhc2VPdXRRdWFkPWZ1bmN0aW9uKHQpe3JldHVybiB0KigyLXQpfSxlYXNlSW5PdXRRdWFkPWZ1bmN0aW9uKHQpe3JldHVybiB0PC41PzIqdCp0Oig0LTIqdCkqdC0xfSxlYXNlSW5DdWJpYz1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5wb3codCwzKX0sZWFzZU91dEN1YmljPWZ1bmN0aW9uKHQpe3JldHVybiAxK01hdGgucG93KHQtMSwzKX0sZWFzZUluT3V0Q3ViaWM9ZnVuY3Rpb24odCl7cmV0dXJuIHQ8LjU/NCpNYXRoLnBvdyh0LDMpOjErKHQtMSkqTWF0aC5wb3coMip0LTIsMil9LGVhc2VJblF1YXJ0PWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdyh0LDQpfSxlYXNlT3V0UXVhcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIDEtTWF0aC5wb3codC0xLDQpfSxlYXNlSW5PdXRRdWFydD1mdW5jdGlvbih0KXtyZXR1cm4gdDwuNT84Kk1hdGgucG93KHQsNCk6MS04Kk1hdGgucG93KHQtMSw0KX0sZWFzZUluUXVpbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucG93KHQsNSl9LGVhc2VPdXRRdWludD1mdW5jdGlvbih0KXtyZXR1cm4gMStNYXRoLnBvdyh0LTEsNSl9LGVhc2VJbk91dFF1aW50PWZ1bmN0aW9uKHQpe3JldHVybiB0PC41PzE2Kk1hdGgucG93KHQsNSk6MSsxNipNYXRoLnBvdyh0LTEsNSl9LGVhc2VJbkNpcmM9ZnVuY3Rpb24odCl7cmV0dXJuLTEqTWF0aC5zcXJ0KDEtTWF0aC5wb3codCwyKSkrMX0sZWFzZU91dENpcmM9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguc3FydCgtMSoodC0yKSp0KX0sZWFzZUluT3V0Q2lyYz1mdW5jdGlvbih0KXtyZXR1cm4gdDwuNT8uNSooMS1NYXRoLnNxcnQoMS00KnQqdCkpOi41KigxK01hdGguc3FydCg4KnQtMy00KnQqdCkpfSxvdmVyc2hvb3Q9ZnVuY3Rpb24odCl7cmV0dXJuLTEqTWF0aC5wb3coTWF0aC5FLC02LjMqdCkqTWF0aC5jb3MoNSp0KSsxfSxzdGFuZGFyZD1mdW5jdGlvbih0KXtyZXR1cm4gdDwuNDAzMT8xMipNYXRoLnBvdyh0LDQpOjEvMTI5MCooMTEqTWF0aC5zcXJ0KC00ZTQqdCp0KzhlNCp0LTIzMzU5KS0xMjkpfSxkZWNlbGVyYXRlPWVhc2VPdXRDdWJpYyxhY2NlbGVyYXRlPWVhc2VJbkN1YmljLHNoYXJwPWVhc2VJbk91dFF1YWQsZWFzaW5nPXtsaW5lYXI6bGluZWFyLGVhc2VJblF1YWQ6ZWFzZUluUXVhZCxlYXNlT3V0UXVhZDplYXNlT3V0UXVhZCxlYXNlSW5PdXRRdWFkOmVhc2VJbk91dFF1YWQsZWFzZUluQ3ViaWM6ZWFzZUluQ3ViaWMsZWFzZU91dEN1YmljOmVhc2VPdXRDdWJpYyxlYXNlSW5PdXRDdWJpYzplYXNlSW5PdXRDdWJpYyxlYXNlSW5RdWFydDplYXNlSW5RdWFydCxlYXNlT3V0UXVhcnQ6ZWFzZU91dFF1YXJ0LGVhc2VJbk91dFF1YXJ0OmVhc2VJbk91dFF1YXJ0LGVhc2VJblF1aW50OmVhc2VJblF1aW50LGVhc2VPdXRRdWludDplYXNlT3V0UXVpbnQsZWFzZUluT3V0UXVpbnQ6ZWFzZUluT3V0UXVpbnQsZWFzZUluQ2lyYzplYXNlSW5DaXJjLGVhc2VPdXRDaXJjOmVhc2VPdXRDaXJjLGVhc2VJbk91dENpcmM6ZWFzZUluT3V0Q2lyYyxvdmVyc2hvb3Q6b3ZlcnNob290LHN0YW5kYXJkOnN0YW5kYXJkLGRlY2VsZXJhdGU6ZGVjZWxlcmF0ZSxhY2NlbGVyYXRlOmFjY2VsZXJhdGUsc2hhcnA6c2hhcnB9LGlkcz17fTtmdW5jdGlvbiBzdGFydCh0KXt2YXIgZT10Lm5hbWUsaT10LmR1cmF0aW9uO3ZvaWQgMD09PWkmJihpPTMwMCk7dmFyIHM9dC50byxuPXQuZnJvbSxvPXQuYXBwbHkscj10LmRvbmUsYT10LmNhbmNlbCxsPXQuZWFzaW5nLGM9ZSxoPW5ldyBEYXRlO2M/c3RvcChjKTpjPXVpZCgpO3ZhciB1PWx8fGxpbmVhcixkPWZ1bmN0aW9uKCl7dmFyIHQ9KG5ldyBEYXRlLWgpL2k7dD4xJiYodD0xKTt2YXIgZT1uKyhzLW4pKnUodCk7aWYobyhlLHQpLDE9PT10KXJldHVybiBkZWxldGUgaWRzW2NdLHZvaWQociYmcihlKSk7cC5sYXN0PXtwb3M6ZSxwcm9ncmVzczp0fSxwLnRpbWVyPXJlcXVlc3RBbmltYXRpb25GcmFtZShkKX0scD1pZHNbY109e2NhbmNlbDphLHRpbWVyOnJlcXVlc3RBbmltYXRpb25GcmFtZShkKX07cmV0dXJuIGN9ZnVuY3Rpb24gc3RvcCh0KXtpZih0KXt2YXIgZT1pZHNbdF07ZSYmZS50aW1lciYmKGNhbmNlbEFuaW1hdGlvbkZyYW1lKGUudGltZXIpLGUuY2FuY2VsJiZlLmNhbmNlbChlLmxhc3QpLGRlbGV0ZSBpZHNbdF0pfX12YXIgYW5pbWF0ZT17c3RhcnQ6c3RhcnQsc3RvcDpzdG9wfSxGdWxsc2NyZWVuTWl4aW49e2RhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aW5GdWxsc2NyZWVuOiExfX0sd2F0Y2g6eyRyb3V0ZTpmdW5jdGlvbigpe3RoaXMuZXhpdEZ1bGxzY3JlZW4oKX0saW5GdWxsc2NyZWVuOmZ1bmN0aW9uKHQpe3RoaXMuJGVtaXQoXCJmdWxsc2NyZWVuXCIsdCl9fSxtZXRob2RzOnt0b2dnbGVGdWxsc2NyZWVuOmZ1bmN0aW9uKCl7dGhpcy5pbkZ1bGxzY3JlZW4/dGhpcy5leGl0RnVsbHNjcmVlbigpOnRoaXMuc2V0RnVsbHNjcmVlbigpfSxzZXRGdWxsc2NyZWVuOmZ1bmN0aW9uKCl7dGhpcy5pbkZ1bGxzY3JlZW58fCh0aGlzLmluRnVsbHNjcmVlbj0hMCx0aGlzLmNvbnRhaW5lcj10aGlzLiRlbC5wYXJlbnROb2RlLHRoaXMuY29udGFpbmVyLnJlcGxhY2VDaGlsZCh0aGlzLmZ1bGxzY3JlZW5GaWxsZXJOb2RlLHRoaXMuJGVsKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuJGVsKSxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJxLWJvZHktZnVsbHNjcmVlbi1taXhpblwiKSx0aGlzLl9faGlzdG9yeUZ1bGxzY3JlZW49e2hhbmRsZXI6dGhpcy5leGl0RnVsbHNjcmVlbn0sSGlzdG9yeS5hZGQodGhpcy5fX2hpc3RvcnlGdWxsc2NyZWVuKSl9LGV4aXRGdWxsc2NyZWVuOmZ1bmN0aW9uKCl7dGhpcy5pbkZ1bGxzY3JlZW4mJih0aGlzLl9faGlzdG9yeUZ1bGxzY3JlZW4mJihIaXN0b3J5LnJlbW92ZSh0aGlzLl9faGlzdG9yeUZ1bGxzY3JlZW4pLHRoaXMuX19oaXN0b3J5RnVsbHNjcmVlbj1udWxsKSx0aGlzLmNvbnRhaW5lci5yZXBsYWNlQ2hpbGQodGhpcy4kZWwsdGhpcy5mdWxsc2NyZWVuRmlsbGVyTm9kZSksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwicS1ib2R5LWZ1bGxzY3JlZW4tbWl4aW5cIiksdGhpcy5pbkZ1bGxzY3JlZW49ITEpfX0sYmVmb3JlTW91bnQ6ZnVuY3Rpb24oKXt0aGlzLmZ1bGxzY3JlZW5GaWxsZXJOb2RlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5leGl0RnVsbHNjcmVlbigpfX0sUUNhcm91c2VsPXtuYW1lOlwiUUNhcm91c2VsXCIsbWl4aW5zOltGdWxsc2NyZWVuTWl4aW5dLGRpcmVjdGl2ZXM6e1RvdWNoUGFuOlRvdWNoUGFufSxwcm9wczp7dmFsdWU6TnVtYmVyLGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSxoZWlnaHQ6U3RyaW5nLGFycm93czpCb29sZWFuLGluZmluaXRlOkJvb2xlYW4sYW5pbWF0aW9uOnt0eXBlOltOdW1iZXIsQm9vbGVhbl0sZGVmYXVsdDohMH0sZWFzaW5nOkZ1bmN0aW9uLHN3aXBlRWFzaW5nOkZ1bmN0aW9uLG5vU3dpcGU6Qm9vbGVhbixhdXRvcGxheTpbTnVtYmVyLEJvb2xlYW5dLGhhbmRsZUFycm93S2V5czpCb29sZWFuLHF1aWNrTmF2OkJvb2xlYW4scXVpY2tOYXZQb3NpdGlvbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImJvdHRvbVwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJ0b3BcIixcImJvdHRvbVwiXS5pbmNsdWRlcyh0KX19LHF1aWNrTmF2SWNvbjpTdHJpbmcsdGh1bWJuYWlsczp7dHlwZTpBcnJheSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuW119fSx0aHVtYm5haWxzSWNvbjpTdHJpbmcsdGh1bWJuYWlsc0hvcml6b250YWw6Qm9vbGVhbn0scHJvdmlkZTpmdW5jdGlvbigpe3JldHVybntjYXJvdXNlbDp0aGlzfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntwb3NpdGlvbjowLHNsaWRlOjAscG9zaXRpb25TbGlkZTowLHNsaWRlc051bWJlcjowLGFuaW1VaWQ6ITEsdmlld1RodW1ibmFpbHM6ITF9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dCE9PXRoaXMuc2xpZGUmJnRoaXMuZ29Ub1NsaWRlKHQpfSxhdXRvcGxheTpmdW5jdGlvbigpe3RoaXMuX19wbGFuQXV0b1BsYXkoKX0saW5maW5pdGU6ZnVuY3Rpb24oKXt0aGlzLl9fcGxhbkF1dG9QbGF5KCl9LGhhbmRsZUFycm93S2V5czpmdW5jdGlvbih0KXt0aGlzLl9fc2V0QXJyb3dLZXlzKHQpfX0sY29tcHV0ZWQ6e3J0bERpcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRxLmkxOG4ucnRsPy0xOjF9LGFycm93SWNvbjpmdW5jdGlvbigpe3ZhciB0PVt0aGlzLiRxLmljb24uY2Fyb3VzZWwubGVmdCx0aGlzLiRxLmljb24uY2Fyb3VzZWwucmlnaHRdO3JldHVybiB0aGlzLiRxLmkxOG4ucnRsP3QucmV2ZXJzZSgpOnR9LHRyYWNrUG9zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm57dHJhbnNmb3JtOlwidHJhbnNsYXRlWChcIit0aGlzLnJ0bERpcip0aGlzLnBvc2l0aW9uK1wiJSlcIn19LGluZmluaXRlTGVmdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluZmluaXRlJiZ0aGlzLnNsaWRlc051bWJlcj4xJiZ0aGlzLnBvc2l0aW9uU2xpZGU8MH0saW5maW5pdGVSaWdodDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluZmluaXRlJiZ0aGlzLnNsaWRlc051bWJlcj4xJiZ0aGlzLnBvc2l0aW9uU2xpZGU+PXRoaXMuc2xpZGVzTnVtYmVyfSxjYW5Hb1RvUHJldmlvdXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmZpbml0ZT90aGlzLnNsaWRlc051bWJlcj4xOnRoaXMuc2xpZGU+MH0sY2FuR29Ub05leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmZpbml0ZT90aGlzLnNsaWRlc051bWJlcj4xOnRoaXMuc2xpZGU8dGhpcy5zbGlkZXNOdW1iZXItMX0sY29tcHV0ZWRRdWlja05hdkljb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWlja05hdkljb258fHRoaXMuJHEuaWNvbi5jYXJvdXNlbC5xdWlja05hdn0sY29tcHV0ZWRTdHlsZTpmdW5jdGlvbigpe2lmKCF0aGlzLmluRnVsbHNjcmVlbiYmdGhpcy5oZWlnaHQpcmV0dXJuXCJoZWlnaHQ6IFwiK3RoaXMuaGVpZ2h0fSxzbG90U2NvcGU6ZnVuY3Rpb24oKXtyZXR1cm57c2xpZGU6dGhpcy5zbGlkZSxzbGlkZXNOdW1iZXI6dGhpcy5zbGlkZXNOdW1iZXIscGVyY2VudGFnZTp0aGlzLnNsaWRlc051bWJlcjwyPzEwMDoxMDAqdGhpcy5zbGlkZS8odGhpcy5zbGlkZXNOdW1iZXItMSksZ29Ub1NsaWRlOnRoaXMuZ29Ub1NsaWRlLHByZXZpb3VzOnRoaXMucHJldmlvdXMsbmV4dDp0aGlzLm5leHQsY29sb3I6dGhpcy5jb2xvcixpbkZ1bGxzY3JlZW46dGhpcy5pbkZ1bGxzY3JlZW4sdG9nZ2xlRnVsbHNjcmVlbjp0aGlzLnRvZ2dsZUZ1bGxzY3JlZW4sY2FuR29Ub05leHQ6dGhpcy5jYW5Hb1RvTmV4dCxjYW5Hb1RvUHJldmlvdXM6dGhpcy5jYW5Hb1RvUHJldmlvdXN9fSxjb21wdXRlZFRodW1ibmFpbEljb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50aHVtYm5haWxzSWNvbnx8dGhpcy4kcS5pY29uLmNhcm91c2VsLnRodW1ibmFpbHN9fSxtZXRob2RzOntwcmV2aW91czpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNhbkdvVG9QcmV2aW91cz90aGlzLmdvVG9TbGlkZSh0aGlzLnNsaWRlLTEpOlByb21pc2UucmVzb2x2ZSgpfSxuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2FuR29Ub05leHQ/dGhpcy5nb1RvU2xpZGUodGhpcy5zbGlkZSsxKTpQcm9taXNlLnJlc29sdmUoKX0sZ29Ub1NsaWRlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcztyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ITEpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHMpe3ZhciBuLG89XCJcIixyPWkuc2xpZGU7aS5fX2NsZWFudXAoKTt2YXIgYT1mdW5jdGlvbigpe2kuJGVtaXQoXCJpbnB1dFwiLGkuc2xpZGUpLGkuJGVtaXQoXCJzbGlkZVwiLGkuc2xpZGUsbyksaS4kZW1pdChcInNsaWRlLWRpcmVjdGlvblwiLG8pLGkuX19wbGFuQXV0b1BsYXkoKSxzKCl9O2lmKGkuc2xpZGVzTnVtYmVyPDI/KGkuc2xpZGU9MCxpLnBvc2l0aW9uU2xpZGU9MCxuPTApOihpLmhhc093blByb3BlcnR5KFwiaW5pdGlhbFBvc2l0aW9uXCIpfHwoaS5wb3NpdGlvbj0xMDAqLWkuc2xpZGUpLG89dD5pLnNsaWRlP1wibmV4dFwiOlwicHJldmlvdXNcIixpLmluZmluaXRlPyhpLnNsaWRlPW5vcm1hbGl6ZVRvSW50ZXJ2YWwodCwwLGkuc2xpZGVzTnVtYmVyLTEpLG49bm9ybWFsaXplVG9JbnRlcnZhbCh0LC0xLGkuc2xpZGVzTnVtYmVyKSxlfHwoaS5wb3NpdGlvblNsaWRlPW4pKTooaS5zbGlkZT1iZXR3ZWVuKHQsMCxpLnNsaWRlc051bWJlci0xKSxpLnBvc2l0aW9uU2xpZGU9aS5zbGlkZSxuPWkuc2xpZGUpKSxpLiRlbWl0KFwic2xpZGUtdHJpZ2dlclwiLHIsaS5zbGlkZSxvKSxuKj0tMTAwLCFpLmFuaW1hdGlvbilyZXR1cm4gaS5wb3NpdGlvbj1uLHZvaWQgYSgpO2kuYW5pbWF0aW9uSW5Qcm9ncmVzcz0hMCxpLmFuaW1VaWQ9c3RhcnQoe2Zyb206aS5wb3NpdGlvbix0bzpuLGR1cmF0aW9uOmlzTnVtYmVyKGkuYW5pbWF0aW9uKT9pLmFuaW1hdGlvbjozMDAsZWFzaW5nOmU/aS5zd2lwZUVhc2luZ3x8ZGVjZWxlcmF0ZTppLmVhc2luZ3x8c3RhbmRhcmQsYXBwbHk6ZnVuY3Rpb24odCl7aS5wb3NpdGlvbj10fSxkb25lOmZ1bmN0aW9uKCl7aS5pbmZpbml0ZSYmKGkucG9zaXRpb249MTAwKi1pLnNsaWRlLGkucG9zaXRpb25TbGlkZT1pLnNsaWRlKSxpLmFuaW1hdGlvbkluUHJvZ3Jlc3M9ITEsYSgpfX0pfSl9LHN0b3BBbmltYXRpb246ZnVuY3Rpb24oKXtzdG9wKHRoaXMuYW5pbVVpZCksdGhpcy5hbmltYXRpb25JblByb2dyZXNzPSExfSxfX3BhbjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKCF0aGlzLmluZmluaXRlfHwhdGhpcy5hbmltYXRpb25JblByb2dyZXNzKXt0LmlzRmlyc3QmJih0aGlzLmluaXRpYWxQb3NpdGlvbj10aGlzLnBvc2l0aW9uLHRoaXMuX19jbGVhbnVwKCkpO3ZhciBpPXRoaXMucnRsRGlyKihcImxlZnRcIj09PXQuZGlyZWN0aW9uPy0xOjEpKnQuZGlzdGFuY2UueDsodGhpcy5pbmZpbml0ZSYmdGhpcy5zbGlkZXNOdW1iZXI8Mnx8IXRoaXMuaW5maW5pdGUmJigwPT09dGhpcy5zbGlkZSYmaT4wfHx0aGlzLnNsaWRlPT09dGhpcy5zbGlkZXNOdW1iZXItMSYmaTwwKSkmJihpPTApO3ZhciBzPXRoaXMuaW5pdGlhbFBvc2l0aW9uK2kvdGhpcy4kcmVmcy50cmFjay5vZmZzZXRXaWR0aCoxMDAsbj10aGlzLnNsaWRlK3RoaXMucnRsRGlyKihcImxlZnRcIj09PXQuZGlyZWN0aW9uPzE6LTEpO3RoaXMucG9zaXRpb24hPT1zJiYodGhpcy5wb3NpdGlvbj1zKSx0aGlzLnBvc2l0aW9uU2xpZGUhPT1uJiYodGhpcy5wb3NpdGlvblNsaWRlPW4pLHQuaXNGaW5hbCYmdGhpcy5nb1RvU2xpZGUodC5kaXN0YW5jZS54PDQwP3RoaXMuc2xpZGU6dGhpcy5wb3NpdGlvblNsaWRlLCEwKS50aGVuKGZ1bmN0aW9uKCl7ZGVsZXRlIGUuaW5pdGlhbFBvc2l0aW9ufSl9fSxfX3BsYW5BdXRvUGxheTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0LmF1dG9wbGF5JiYoY2xlYXJUaW1lb3V0KHQudGltZXIpLHQudGltZXI9c2V0VGltZW91dCh0Lm5leHQsaXNOdW1iZXIodC5hdXRvcGxheSk/dC5hdXRvcGxheTo1ZTMpKX0pfSxfX2NsZWFudXA6ZnVuY3Rpb24oKXt0aGlzLnN0b3BBbmltYXRpb24oKSxjbGVhclRpbWVvdXQodGhpcy50aW1lcil9LF9faGFuZGxlQXJyb3dLZXk6ZnVuY3Rpb24odCl7dmFyIGU9Z2V0RXZlbnRLZXkodCk7Mzc9PT1lP3RoaXMucHJldmlvdXMoKTozOT09PWUmJnRoaXMubmV4dCgpfSxfX3NldEFycm93S2V5czpmdW5jdGlvbih0KXtkb2N1bWVudFsoITA9PT10P1wiYWRkXCI6XCJyZW1vdmVcIikrXCJFdmVudExpc3RlbmVyXCJdKFwia2V5ZG93blwiLHRoaXMuX19oYW5kbGVBcnJvd0tleSl9LF9fcmVnaXN0ZXJTbGlkZTpmdW5jdGlvbigpe3RoaXMuc2xpZGVzTnVtYmVyKyt9LF9fdW5yZWdpc3RlclNsaWRlOmZ1bmN0aW9uKCl7dGhpcy5zbGlkZXNOdW1iZXItLX0sX19nZXRTY29wZWRTbG90czpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKDAhPT10aGlzLnNsaWRlc051bWJlcil7dmFyIGk9dGhpcy4kc2NvcGVkU2xvdHM7cmV0dXJuIGk/T2JqZWN0LmtleXMoaSkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN0YXJ0c1dpdGgoXCJjb250cm9sLVwiKX0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gaVt0XShlLnNsb3RTY29wZSl9KTp2b2lkIDB9fSxfX2dldFF1aWNrTmF2OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoMCE9PXRoaXMuc2xpZGVzTnVtYmVyJiZ0aGlzLnF1aWNrTmF2KXt2YXIgaT10aGlzLiRzY29wZWRTbG90c1tcInF1aWNrLW5hdlwiXSxzPVtdO2lmKGkpZm9yKHZhciBuPWZ1bmN0aW9uKHQpe3MucHVzaChpKHtzbGlkZTp0LGJlZm9yZTp0PGUuc2xpZGUsY3VycmVudDp0PT09ZS5zbGlkZSxhZnRlcjp0PmUuc2xpZGUsY29sb3I6ZS5jb2xvcixnb1RvU2xpZGU6ZnVuY3Rpb24oaSl7ZS5nb1RvU2xpZGUoaXx8dCl9fSkpfSxvPTA7bzx0aGlzLnNsaWRlc051bWJlcjtvKyspbihvKTtlbHNlIGZvcih2YXIgcj1mdW5jdGlvbihpKXtzLnB1c2godChRQnRuLHtrZXk6aSxjbGFzczp7aW5hY3RpdmU6aSE9PWUuc2xpZGV9LHByb3BzOntpY29uOmUuY29tcHV0ZWRRdWlja05hdkljb24scm91bmQ6ITAsZmxhdDohMCxkZW5zZTohMCxjb2xvcjplLmNvbG9yfSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLmdvVG9TbGlkZShpKX19fSkpfSxhPTA7YTx0aGlzLnNsaWRlc051bWJlcjthKyspcihhKTtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWwtcXVpY2stbmF2IHNjcm9sbCB0ZXh0LWNlbnRlclwiLGNsYXNzOltcInRleHQtXCIrdGhpcy5jb2xvcixcImFic29sdXRlLVwiK3RoaXMucXVpY2tOYXZQb3NpdGlvbl19LHMpfX0sX19nZXRUaHVtYm5haWxzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10aGlzLnRodW1ibmFpbHMubWFwKGZ1bmN0aW9uKGkscyl7aWYoaSlyZXR1cm4gdChcImRpdlwiLHtvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLmdvVG9TbGlkZShzKX19fSxbdChcImltZ1wiLHthdHRyczp7c3JjOml9LGNsYXNzOnthY3RpdmU6ZS5zbGlkZT09PXN9fSldKX0pLHM9W3QoUUJ0bix7c3RhdGljQ2xhc3M6XCJxLWNhcm91c2VsLXRodW1ibmFpbC1idG4gYWJzb2x1dGVcIixwcm9wczp7aWNvbjp0aGlzLmNvbXB1dGVkVGh1bWJuYWlsSWNvbixmYWJNaW5pOiEwLGZsYXQ6ITAsY29sb3I6dGhpcy5jb2xvcn0sb246e2NsaWNrOmZ1bmN0aW9uKCl7ZS52aWV3VGh1bWJuYWlscz0hZS52aWV3VGh1bWJuYWlsc319fSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWwtdGh1bWJuYWlscyBzY3JvbGwgYWJzb2x1dGUtYm90dG9tXCIsY2xhc3M6e2FjdGl2ZTp0aGlzLnZpZXdUaHVtYm5haWxzfX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJyb3cgZ3V0dGVyLXhzXCIsY2xhc3M6dGhpcy50aHVtYm5haWxzSG9yaXpvbnRhbD9cIm5vLXdyYXBcIjpcImp1c3RpZnktY2VudGVyXCJ9LGkpXSldO3JldHVybiB0aGlzLnZpZXdUaHVtYm5haWxzJiZzLnVuc2hpZnQodChcImRpdlwiLHtzdGF0aWNDbGFzczpcImFic29sdXRlLWZ1bGxcIixvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLnZpZXdUaHVtYm5haWxzPSExfX19KSksc319LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWxcIixzdHlsZTp0aGlzLmNvbXB1dGVkU3R5bGUsY2xhc3M6e2Z1bGxzY3JlZW46dGhpcy5pbkZ1bGxzY3JlZW59fSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWwtaW5uZXJcIixkaXJlY3RpdmVzOnRoaXMubm9Td2lwZT9udWxsOlt7bmFtZTpcInRvdWNoLXBhblwiLG1vZGlmaWVyczp7aG9yaXpvbnRhbDohMCxwcmV2ZW50OiEwLHN0b3A6ITB9LHZhbHVlOnRoaXMuX19wYW59XX0sW3QoXCJkaXZcIix7cmVmOlwidHJhY2tcIixzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWwtdHJhY2tcIixzdHlsZTp0aGlzLnRyYWNrUG9zaXRpb24sY2xhc3M6e1wiaW5maW5pdGUtbGVmdFwiOnRoaXMuaW5maW5pdGVMZWZ0LFwiaW5maW5pdGUtcmlnaHRcIjp0aGlzLmluZmluaXRlUmlnaHR9fSxbdGhpcy5pbmZpbml0ZVJpZ2h0P3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcm91c2VsLXNsaWRlXCIsc3R5bGU6XCJmbGV4OiAwIDAgMTAwJVwifSk6bnVsbCx0aGlzLiRzbG90cy5kZWZhdWx0LHRoaXMuaW5maW5pdGVMZWZ0P3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcm91c2VsLXNsaWRlXCIsc3R5bGU6XCJmbGV4OiAwIDAgMTAwJVwifSk6bnVsbF0pXSksdGhpcy5hcnJvd3M/dChRQnRuLHtzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWwtbGVmdC1hcnJvdyBhYnNvbHV0ZVwiLHByb3BzOntjb2xvcjp0aGlzLmNvbG9yLGljb246dGhpcy5hcnJvd0ljb25bMF0sZmFiTWluaTohMCxmbGF0OiEwfSxkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIix2YWx1ZTp0aGlzLmNhbkdvVG9QcmV2aW91c31dLG9uOntjbGljazp0aGlzLnByZXZpb3VzfX0pOm51bGwsdGhpcy5hcnJvd3M/dChRQnRuLHtzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWwtcmlnaHQtYXJyb3cgYWJzb2x1dGVcIixwcm9wczp7Y29sb3I6dGhpcy5jb2xvcixpY29uOnRoaXMuYXJyb3dJY29uWzFdLGZhYk1pbmk6ITAsZmxhdDohMH0sZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIsdmFsdWU6dGhpcy5jYW5Hb1RvTmV4dH1dLG9uOntjbGljazp0aGlzLm5leHR9fSk6bnVsbCx0aGlzLl9fZ2V0UXVpY2tOYXYodCksdGhpcy5fX2dldFNjb3BlZFNsb3RzKHQpLHRoaXMudGh1bWJuYWlscy5sZW5ndGg/dGhpcy5fX2dldFRodW1ibmFpbHModCk6bnVsbCx0aGlzLiRzbG90cy5jb250cm9sXSl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX19wbGFuQXV0b1BsYXkoKSx0aGlzLmhhbmRsZUFycm93S2V5cyYmdGhpcy5fX3NldEFycm93S2V5cyghMCksdGhpcy5fX3N0b3BTbGlkZU51bWJlck5vdGlmaWVyPXRoaXMuJHdhdGNoKFwic2xpZGVzTnVtYmVyXCIsZnVuY3Rpb24oZSl7dC52YWx1ZT49ZSYmdC4kZW1pdChcImlucHV0XCIsZS0xKX0se2ltbWVkaWF0ZTohMH0pfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5fX2NsZWFudXAoKSx0aGlzLl9fc3RvcFNsaWRlTnVtYmVyTm90aWZpZXIoKSx0aGlzLmhhbmRsZUFycm93S2V5cyYmdGhpcy5fX3NldEFycm93S2V5cyghMSl9fSxRQ2Fyb3VzZWxTbGlkZT17bmFtZTpcIlFDYXJvdXNlbFNsaWRlXCIsaW5qZWN0OntjYXJvdXNlbDp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRQ2Fyb3VzZWxTbGlkZSBuZWVkcyB0byBiZSBjaGlsZCBvZiBRQ2Fyb3VzZWxcIil9fX0scHJvcHM6e2ltZ1NyYzpTdHJpbmd9LGNvbXB1dGVkOntjb21wdXRlZFN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9e307cmV0dXJuIHRoaXMuaW1nU3JjJiYodC5iYWNrZ3JvdW5kSW1hZ2U9XCJ1cmwoXCIrdGhpcy5pbWdTcmMrXCIpXCIsdC5iYWNrZ3JvdW5kU2l6ZT1cImNvdmVyXCIsdC5iYWNrZ3JvdW5kUG9zaXRpb249XCI1MCVcIiksIXRoaXMuY2Fyb3VzZWwuaW5GdWxsc2NyZWVuJiZ0aGlzLmNhcm91c2VsLmhlaWdodCYmKHQubWF4SGVpZ2h0PXRoaXMuY2Fyb3VzZWwuaGVpZ2h0KSx0fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJvdXNlbC1zbGlkZSByZWxhdGl2ZS1wb3NpdGlvbiBzY3JvbGxcIixzdHlsZTp0aGlzLmNvbXB1dGVkU3R5bGV9LHRoaXMuJHNsb3RzLmRlZmF1bHQpfSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5jYXJvdXNlbC5fX3JlZ2lzdGVyU2xpZGUoKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuY2Fyb3VzZWwuX191bnJlZ2lzdGVyU2xpZGUoKX19LFFDYXJvdXNlbENvbnRyb2w9e25hbWU6XCJRQ2Fyb3VzZWxDb250cm9sXCIscHJvcHM6e3Bvc2l0aW9uOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiYm90dG9tLXJpZ2h0XCJ9LG9mZnNldDp7dHlwZTpBcnJheSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuWzE4LDE4XX19fSxjb21wdXRlZDp7Y29tcHV0ZWRDbGFzczpmdW5jdGlvbigpe3JldHVyblwiYWJzb2x1dGUtXCIrdGhpcy5wb3NpdGlvbn0sY29tcHV0ZWRTdHlsZTpmdW5jdGlvbigpe3JldHVybnttYXJnaW46dGhpcy5vZmZzZXRbMV0rXCJweCBcIit0aGlzLm9mZnNldFswXStcInB4XCJ9fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJvdXNlbC1jb250cm9sIGFic29sdXRlXCIsc3R5bGU6dGhpcy5jb21wdXRlZFN0eWxlLGNsYXNzOnRoaXMuY29tcHV0ZWRDbGFzc30sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRQ2hhdE1lc3NhZ2U9e25hbWU6XCJRQ2hhdE1lc3NhZ2VcIixwcm9wczp7c2VudDpCb29sZWFuLGxhYmVsOlN0cmluZyxiZ0NvbG9yOlN0cmluZyx0ZXh0Q29sb3I6U3RyaW5nLG5hbWU6U3RyaW5nLGF2YXRhcjpTdHJpbmcsdGV4dDpBcnJheSxzdGFtcDpTdHJpbmcsc2l6ZTpTdHJpbmd9LGNvbXB1dGVkOnt0ZXh0Q2xhc3M6ZnVuY3Rpb24oKXtpZih0aGlzLnRleHRDb2xvcilyZXR1cm5cInRleHQtXCIrdGhpcy50ZXh0Q29sb3J9LG1lc3NhZ2VDbGFzczpmdW5jdGlvbigpe2lmKHRoaXMuYmdDb2xvcilyZXR1cm5cInRleHQtXCIrdGhpcy5iZ0NvbG9yfSxzaXplQ2xhc3M6ZnVuY3Rpb24oKXtpZih0aGlzLnNpemUpcmV0dXJuXCJjb2wtXCIrdGhpcy5zaXplfSxjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJue1wicS1tZXNzYWdlLXNlbnRcIjp0aGlzLnNlbnQsXCJxLW1lc3NhZ2UtcmVjZWl2ZWRcIjohdGhpcy5zZW50fX19LG1ldGhvZHM6e19fZ2V0VGV4dDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLnRleHQubWFwKGZ1bmN0aW9uKGkscyl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2UtdGV4dFwiLGNsYXNzOmUubWVzc2FnZUNsYXNzfSxbdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2UtdGV4dC1jb250ZW50XCIsY2xhc3M6ZS50ZXh0Q2xhc3N9LFt0KFwiZGl2XCIse2RvbVByb3BzOntpbm5lckhUTUw6aX19KSxlLnN0YW1wP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2Utc3RhbXBcIixkb21Qcm9wczp7aW5uZXJIVE1MOmUuc3RhbXB9fSk6bnVsbF0pXSl9KX0sX19nZXRNZXNzYWdlOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1tZXNzYWdlLXRleHRcIixjbGFzczp0aGlzLm1lc3NhZ2VDbGFzc30sW3QoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1tZXNzYWdlLXRleHQtY29udGVudFwiLGNsYXNzOnRoaXMudGV4dENsYXNzfSxbdGhpcy4kc2xvdHMuZGVmYXVsdCx0aGlzLnN0YW1wP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2Utc3RhbXBcIixkb21Qcm9wczp7aW5uZXJIVE1MOnRoaXMuc3RhbXB9fSk6bnVsbF0pXSl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2VcIixjbGFzczp0aGlzLmNsYXNzZXN9LFt0aGlzLmxhYmVsP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2UtbGFiZWwgdGV4dC1jZW50ZXJcIixkb21Qcm9wczp7aW5uZXJIVE1MOnRoaXMubGFiZWx9fSk6bnVsbCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1tZXNzYWdlLWNvbnRhaW5lciByb3cgaXRlbXMtZW5kIG5vLXdyYXBcIn0sW3RoaXMuJHNsb3RzLmF2YXRhcnx8KHRoaXMuYXZhdGFyP3QoXCJpbWdcIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2UtYXZhdGFyIGNvbC1hdXRvXCIsYXR0cnM6e3NyYzp0aGlzLmF2YXRhcn19KTpudWxsKSx0KFwiZGl2XCIse2NsYXNzOnRoaXMuc2l6ZUNsYXNzfSxbdGhpcy5uYW1lP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2UtbmFtZVwiLGRvbVByb3BzOntpbm5lckhUTUw6dGhpcy5uYW1lfX0pOm51bGwsdGhpcy50ZXh0P3RoaXMuX19nZXRUZXh0KHQpOm51bGwsdGhpcy4kc2xvdHMuZGVmYXVsdD90aGlzLl9fZ2V0TWVzc2FnZSh0KTpudWxsXSldKV0pfX07ZnVuY3Rpb24gZ2V0RGlyZWN0aW9uJDEodCl7dmFyIGU9e307cmV0dXJuW1wibGVmdFwiLFwicmlnaHRcIixcInVwXCIsXCJkb3duXCIsXCJob3Jpem9udGFsXCIsXCJ2ZXJ0aWNhbFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3RbaV0mJihlW2ldPSEwKX0pLDA9PT1PYmplY3Qua2V5cyhlKS5sZW5ndGg/e2xlZnQ6ITAscmlnaHQ6ITAsdXA6ITAsZG93bjohMCxob3Jpem9udGFsOiEwLHZlcnRpY2FsOiEwfTooZS5ob3Jpem9udGFsJiYoZS5sZWZ0PWUucmlnaHQ9ITApLGUudmVydGljYWwmJihlLnVwPWUuZG93bj0hMCksZS5sZWZ0JiZlLnJpZ2h0JiYoZS5ob3Jpem9udGFsPSEwKSxlLnVwJiZlLmRvd24mJihlLnZlcnRpY2FsPSEwKSxlKX12YXIgVG91Y2hTd2lwZT17bmFtZTpcInRvdWNoLXN3aXBlXCIsYmluZDpmdW5jdGlvbih0LGUpe3ZhciBpPSFlLm1vZGlmaWVycy5ub01vdXNlLHM9e2hhbmRsZXI6ZS52YWx1ZSx0aHJlc2hvbGQ6cGFyc2VJbnQoZS5hcmcsMTApfHwzMDAsZGlyZWN0aW9uOmdldERpcmVjdGlvbiQxKGUubW9kaWZpZXJzKSxtb3VzZVN0YXJ0OmZ1bmN0aW9uKHQpe2xlZnRDbGljayh0KSYmKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixzLm1vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIscy5tb3VzZUVuZCkscy5zdGFydCh0KSl9LG1vdXNlRW5kOmZ1bmN0aW9uKHQpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixzLm1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIscy5tb3VzZUVuZCkscy5lbmQodCl9LHN0YXJ0OmZ1bmN0aW9uKGUpe3ZhciBpPXBvc2l0aW9uKGUpO3MuZXZlbnQ9e3g6aS5sZWZ0LHk6aS50b3AsdGltZToobmV3IERhdGUpLmdldFRpbWUoKSxkZXRlY3RlZDohMSxhYm9ydDohMX0sdC5jbGFzc0xpc3QuYWRkKFwicS10b3VjaFwiKX0sbW92ZTpmdW5jdGlvbih0KXtpZighcy5ldmVudC5hYm9ydClpZigobmV3IERhdGUpLmdldFRpbWUoKS1zLmV2ZW50LnRpbWU+cy50aHJlc2hvbGQpcy5ldmVudC5hYm9ydD0hMDtlbHNle2lmKHMuZXZlbnQuZGV0ZWN0ZWQpcmV0dXJuIHQuc3RvcFByb3BhZ2F0aW9uKCksdm9pZCB0LnByZXZlbnREZWZhdWx0KCk7dmFyIGU9cG9zaXRpb24odCksaT1lLmxlZnQtcy5ldmVudC54LG49TWF0aC5hYnMoaSksbz1lLnRvcC1zLmV2ZW50Lnkscj1NYXRoLmFicyhvKTtuIT09ciYmKHMuZXZlbnQuZGV0ZWN0ZWQ9ITAscy5ldmVudC5hYm9ydD0hKHMuZGlyZWN0aW9uLnZlcnRpY2FsJiZuPHJ8fHMuZGlyZWN0aW9uLmhvcml6b250YWwmJm4+cnx8cy5kaXJlY3Rpb24udXAmJm48ciYmbzwwfHxzLmRpcmVjdGlvbi5kb3duJiZuPHImJm8+MHx8cy5kaXJlY3Rpb24ubGVmdCYmbj5yJiZpPDB8fHMuZGlyZWN0aW9uLnJpZ2h0JiZuPnImJmk+MCkscy5tb3ZlKHQpKX19LGVuZDpmdW5jdGlvbihlKXtpZih0LmNsYXNzTGlzdC5yZW1vdmUoXCJxLXRvdWNoXCIpLCFzLmV2ZW50LmFib3J0JiZzLmV2ZW50LmRldGVjdGVkKXt2YXIgaT0obmV3IERhdGUpLmdldFRpbWUoKS1zLmV2ZW50LnRpbWU7aWYoIShpPnMudGhyZXNob2xkKSl7ZS5zdG9wUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCk7dmFyIG4sbz1wb3NpdGlvbihlKSxyPW8ubGVmdC1zLmV2ZW50LngsYT1NYXRoLmFicyhyKSxsPW8udG9wLXMuZXZlbnQueSxjPU1hdGguYWJzKGwpO2lmKGE+PWMpe2lmKGE8NTApcmV0dXJuO249cjwwP1wibGVmdFwiOlwicmlnaHRcIn1lbHNle2lmKGM8NTApcmV0dXJuO249bDwwP1widXBcIjpcImRvd25cIn1zLmRpcmVjdGlvbltuXSYmcy5oYW5kbGVyKHtldnQ6ZSxkaXJlY3Rpb246bixkdXJhdGlvbjppLGRpc3RhbmNlOnt4OmEseTpjfX0pfX19fTt0Ll9fcXRvdWNoc3dpcGU9cyxpJiZ0LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIixzLm1vdXNlU3RhcnQpLHQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixzLnN0YXJ0KSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIixzLm1vdmUpLHQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIscy5lbmQpfSx1cGRhdGU6ZnVuY3Rpb24odCxlKXtlLm9sZFZhbHVlIT09ZS52YWx1ZSYmKHQuX19xdG91Y2hzd2lwZS5oYW5kbGVyPWUudmFsdWUpfSx1bmJpbmQ6ZnVuY3Rpb24odCxlKXt2YXIgaT10Ll9fcXRvdWNoc3dpcGU7aSYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLGkubW91c2VTdGFydCksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLGkuc3RhcnQpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLGkubW92ZSksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIixpLmVuZCksZGVsZXRlIHQuX19xdG91Y2hzd2lwZSl9fSxDaGVja2JveE1peGluPXtkaXJlY3RpdmVzOntUb3VjaFN3aXBlOlRvdWNoU3dpcGV9LHByb3BzOnt2YWw6e30sdHJ1ZVZhbHVlOntkZWZhdWx0OiEwfSxmYWxzZVZhbHVlOntkZWZhdWx0OiExfX0sY29tcHV0ZWQ6e2lzVHJ1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsSXNBcnJheT90aGlzLmluZGV4Pi0xOnRoaXMudmFsdWU9PT10aGlzLnRydWVWYWx1ZX0saXNGYWxzZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsSXNBcnJheT8tMT09PXRoaXMuaW5kZXg6dGhpcy52YWx1ZT09PXRoaXMuZmFsc2VWYWx1ZX0saW5kZXg6ZnVuY3Rpb24oKXtpZih0aGlzLm1vZGVsSXNBcnJheSlyZXR1cm4gdGhpcy52YWx1ZS5pbmRleE9mKHRoaXMudmFsKX0sbW9kZWxJc0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSl9fSxtZXRob2RzOnt0b2dnbGU6ZnVuY3Rpb24odCxlKXt2YXIgaTsodm9pZCAwPT09ZSYmKGU9ITApLHRoaXMuZGlzYWJsZXx8dGhpcy5yZWFkb25seSl8fCh0JiZzdG9wQW5kUHJldmVudCh0KSxlJiZ0aGlzLiRlbC5ibHVyKCksdGhpcy5tb2RlbElzQXJyYXk/dGhpcy5pc1RydWU/KGk9dGhpcy52YWx1ZS5zbGljZSgpKS5zcGxpY2UodGhpcy5pbmRleCwxKTppPXRoaXMudmFsdWUuY29uY2F0KHRoaXMudmFsKTppPXRoaXMuaXNUcnVlP3RoaXMudG9nZ2xlSW5kZXRlcm1pbmF0ZT90aGlzLmluZGV0ZXJtaW5hdGVWYWx1ZTp0aGlzLmZhbHNlVmFsdWU6dGhpcy5pc0ZhbHNlP3RoaXMudHJ1ZVZhbHVlOnRoaXMuZmFsc2VWYWx1ZSx0aGlzLl9fdXBkYXRlKGkpKX19fSxPcHRpb25NaXhpbj17cHJvcHM6e3ZhbHVlOntyZXF1aXJlZDohMH0sbGFiZWw6U3RyaW5nLGxlZnRMYWJlbDpCb29sZWFuLGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSxrZWVwQ29sb3I6Qm9vbGVhbixkYXJrOkJvb2xlYW4sZGlzYWJsZTpCb29sZWFuLHJlYWRvbmx5OkJvb2xlYW4sbm9Gb2N1czpCb29sZWFuLGNoZWNrZWRJY29uOlN0cmluZyx1bmNoZWNrZWRJY29uOlN0cmluZ30sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5fX2tlYmFiVGFnLHtkaXNhYmxlZDp0aGlzLmRpc2FibGUscmV2ZXJzZTp0aGlzLmxlZnRMYWJlbCxcInEtZm9jdXNhYmxlXCI6dGhpcy5mb2N1c2FibGV9XX0saW5uZXJDbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNUcnVlfHx0aGlzLmlzSW5kZXRlcm1pbmF0ZT9bXCJhY3RpdmVcIixcInRleHQtXCIrdGhpcy5jb2xvcl06XCJ0ZXh0LVwiKyh0aGlzLmtlZXBDb2xvcj90aGlzLmNvbG9yOnRoaXMuZGFyaz9cImxpZ2h0XCI6XCJmYWRlZFwiKX0sZm9jdXNhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMubm9Gb2N1cyYmIXRoaXMuZGlzYWJsZSYmIXRoaXMucmVhZG9ubHl9LHRhYmluZGV4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZm9jdXNhYmxlPzA6LTF9fSxtZXRob2RzOntfX3VwZGF0ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dGhpcy4kcmVmcy5yaXBwbGU7aSYmKGkuY2xhc3NMaXN0LmFkZChcImFjdGl2ZVwiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS5jbGFzc0xpc3QucmVtb3ZlKFwiYWN0aXZlXCIpfSwxMCkpLHRoaXMuJGVtaXQoXCJpbnB1dFwiLHQpLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkodCkhPT1KU09OLnN0cmluZ2lmeShlLnZhbHVlKSYmZS4kZW1pdChcImNoYW5nZVwiLHQpfSl9LF9faGFuZGxlS2V5RG93bjpmdW5jdGlvbih0KXtbMTMsMzJdLmluY2x1ZGVzKGdldEV2ZW50S2V5KHQpKSYmdGhpcy50b2dnbGUodCwhMSl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtb3B0aW9uIGN1cnNvci1wb2ludGVyIG5vLW91dGxpbmUgcm93IGlubGluZSBuby13cmFwIGl0ZW1zLWNlbnRlclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7dGFiaW5kZXg6dGhpcy50YWJpbmRleH0sb246e2NsaWNrOnRoaXMudG9nZ2xlLGZvY3VzOmZ1bmN0aW9uKCl7ZS4kZW1pdChcImZvY3VzXCIpfSxibHVyOmZ1bmN0aW9uKCl7ZS4kZW1pdChcImJsdXJcIil9LGtleWRvd246dGhpcy5fX2hhbmRsZUtleURvd259LGRpcmVjdGl2ZXM6XCJxLXRvZ2dsZVwiIT09dGhpcy5fX2tlYmFiVGFnfHx0aGlzLmRpc2FibGV8fHRoaXMucmVhZG9ubHk/bnVsbDpbe25hbWU6XCJ0b3VjaC1zd2lwZVwiLG1vZGlmaWVyczp7aG9yaXpvbnRhbDohMH0sdmFsdWU6dGhpcy5fX3N3aXBlfV19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1vcHRpb24taW5uZXIgcmVsYXRpdmUtcG9zaXRpb25cIixjbGFzczp0aGlzLmlubmVyQ2xhc3Nlc30sW3QoXCJpbnB1dFwiLHthdHRyczp7dHlwZTpcImNoZWNrYm94XCJ9LG9uOntjaGFuZ2U6dGhpcy50b2dnbGV9fSksdGhpcy4kcS5wbGF0Zm9ybS5pcy5kZXNrdG9wP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWZvY3VzLWhlbHBlclwiLGNsYXNzOlwicS1yYWRpb1wiPT09dGhpcy5fX2tlYmFiVGFnP1wicS1mb2N1cy1oZWxwZXItcm91bmRcIjpcInEtZm9jdXMtaGVscGVyLXJvdW5kZWRcIn0pOm51bGwsdGhpcy5fX2dldENvbnRlbnQodCldKSx0aGlzLmxhYmVsP3QoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1vcHRpb24tbGFiZWxcIixkb21Qcm9wczp7aW5uZXJIVE1MOnRoaXMubGFiZWx9fSk6bnVsbCx0aGlzLiRzbG90cy5kZWZhdWx0XSl9fSxRQ2hlY2tib3g9e25hbWU6XCJRQ2hlY2tib3hcIixtaXhpbnM6W0NoZWNrYm94TWl4aW4sT3B0aW9uTWl4aW5dLHByb3BzOnt0b2dnbGVJbmRldGVybWluYXRlOkJvb2xlYW4saW5kZXRlcm1pbmF0ZVZhbHVlOntkZWZhdWx0Om51bGx9LGluZGV0ZXJtaW5hdGVJY29uOlN0cmluZ30sY29tcHV0ZWQ6e2lzSW5kZXRlcm1pbmF0ZTpmdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzLnZhbHVlfHx0aGlzLnZhbHVlPT09dGhpcy5pbmRldGVybWluYXRlVmFsdWV9LGNoZWNrZWRTdHlsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVHJ1ZT97dHJhbnNpdGlvbjpcIm9wYWNpdHkgMG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSAwbXMsIHRyYW5zZm9ybSA4MDBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSkgMG1zXCIsb3BhY2l0eToxLHRyYW5zZm9ybTpcInNjYWxlKDEpXCJ9Ont0cmFuc2l0aW9uOlwib3BhY2l0eSA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSkgMG1zLCB0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSA0NTBtc1wiLG9wYWNpdHk6MCx0cmFuc2Zvcm06XCJzY2FsZSgwKVwifX0saW5kZXRlcm1pbmF0ZVN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmRldGVybWluYXRlP3t0cmFuc2l0aW9uOlwib3BhY2l0eSAwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpIDBtcywgdHJhbnNmb3JtIDgwMG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSAwbXNcIixvcGFjaXR5OjEsdHJhbnNmb3JtOlwic2NhbGUoMSlcIn06e3RyYW5zaXRpb246XCJvcGFjaXR5IDQ1MG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSAwbXMsIHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpIDQ1MG1zXCIsb3BhY2l0eTowLHRyYW5zZm9ybTpcInNjYWxlKDApXCJ9fSx1bmNoZWNrZWRTdHlsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzRmFsc2U/e29wYWNpdHk6MX06e3RyYW5zaXRpb246XCJvcGFjaXR5IDY1MG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSAxNTBtc1wiLG9wYWNpdHk6MH19fSxtZXRob2RzOntfX2dldENvbnRlbnQ6ZnVuY3Rpb24odCl7cmV0dXJuW3QoUUljb24se3N0YXRpY0NsYXNzOlwicS1jaGVja2JveC1pY29uIGN1cnNvci1wb2ludGVyXCIscHJvcHM6e25hbWU6dGhpcy51bmNoZWNrZWRJY29ufHx0aGlzLiRxLmljb24uY2hlY2tib3gudW5jaGVja2VkLm1hdH0sc3R5bGU6dGhpcy51bmNoZWNrZWRTdHlsZX0pLHQoUUljb24se3N0YXRpY0NsYXNzOlwicS1jaGVja2JveC1pY29uIGN1cnNvci1wb2ludGVyIGFic29sdXRlLWZ1bGxcIixwcm9wczp7bmFtZTp0aGlzLmluZGV0ZXJtaW5hdGVJY29ufHx0aGlzLiRxLmljb24uY2hlY2tib3guaW5kZXRlcm1pbmF0ZS5tYXR9LHN0eWxlOnRoaXMuaW5kZXRlcm1pbmF0ZVN0eWxlfSksdChRSWNvbix7c3RhdGljQ2xhc3M6XCJxLWNoZWNrYm94LWljb24gY3Vyc29yLXBvaW50ZXIgYWJzb2x1dGUtZnVsbFwiLHByb3BzOntuYW1lOnRoaXMuY2hlY2tlZEljb258fHRoaXMuJHEuaWNvbi5jaGVja2JveC5jaGVja2VkLm1hdH0sc3R5bGU6dGhpcy5jaGVja2VkU3R5bGV9KSx0KFwiZGl2XCIse3JlZjpcInJpcHBsZVwiLHN0YXRpY0NsYXNzOlwicS1yYWRpYWwtcmlwcGxlXCJ9KV19fSxiZWZvcmVDcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9fa2ViYWJUYWc9XCJxLWNoZWNrYm94XCJ9fSxRQ2hpcD17bmFtZTpcIlFDaGlwXCIscHJvcHM6e3NtYWxsOkJvb2xlYW4sZGVuc2U6Qm9vbGVhbix0YWc6Qm9vbGVhbixzcXVhcmU6Qm9vbGVhbixmbG9hdGluZzpCb29sZWFuLHBvaW50aW5nOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1widXBcIixcInJpZ2h0XCIsXCJkb3duXCIsXCJsZWZ0XCJdLmluY2x1ZGVzKHQpfX0sY29sb3I6U3RyaW5nLHRleHRDb2xvcjpTdHJpbmcsaWNvbjpTdHJpbmcsaWNvblJpZ2h0OlN0cmluZyxhdmF0YXI6U3RyaW5nLGNsb3NhYmxlOkJvb2xlYW4sZGV0YWlsOkJvb2xlYW59LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPVtdO3JldHVybiB0aGlzLnBvaW50aW5nJiZlLnB1c2goXCJxLWNoaXAtcG9pbnRpbmctXCIrdGhpcy5wb2ludGluZyksW1widGFnXCIsXCJzcXVhcmVcIixcImZsb2F0aW5nXCIsXCJwb2ludGluZ1wiLFwic21hbGxcIixcImRlbnNlXCJdLmZvckVhY2goZnVuY3Rpb24oaSl7dFtpXSYmZS5wdXNoKFwicS1jaGlwLVwiK2kpfSksdGhpcy5mbG9hdGluZyYmKCF0aGlzLmRlbnNlJiZlLnB1c2goXCJxLWNoaXAtZGVuc2VcIiksIXRoaXMuc3F1YXJlJiZlLnB1c2goXCJxLWNoaXAtc3F1YXJlXCIpKSx0aGlzLmNvbG9yJiYoZS5wdXNoKFwiYmctXCIrdGhpcy5jb2xvciksIXRoaXMudGV4dENvbG9yJiZlLnB1c2goXCJ0ZXh0LXdoaXRlXCIpKSx0aGlzLnRleHRDb2xvciYmZS5wdXNoKFwidGV4dC1cIit0aGlzLnRleHRDb2xvciksZX19LG1ldGhvZHM6e19fb25DbGljazpmdW5jdGlvbih0KXt0aGlzLiRlbWl0KFwiY2xpY2tcIix0KX0sX19vbk1vdXNlRG93bjpmdW5jdGlvbih0KXt0aGlzLiRlbWl0KFwiZm9jdXNcIix0KX0sX19oYW5kbGVLZXlEb3duOmZ1bmN0aW9uKHQpe3RoaXMuY2xvc2FibGUmJls4LDEzLDMyXS5pbmNsdWRlcyhnZXRFdmVudEtleSh0KSkmJihzdG9wQW5kUHJldmVudCh0KSx0aGlzLiRlbWl0KFwiaGlkZVwiKSl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2hpcCByb3cgbm8td3JhcCBpbmxpbmUgaXRlbXMtY2VudGVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLG9uOnttb3VzZWRvd246dGhpcy5fX29uTW91c2VEb3duLHRvdWNoc3RhcnQ6dGhpcy5fX29uTW91c2VEb3duLGNsaWNrOnRoaXMuX19vbkNsaWNrLGtleWRvd246dGhpcy5fX2hhbmRsZUtleURvd259fSxbdGhpcy5pY29ufHx0aGlzLmF2YXRhcj90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jaGlwLXNpZGUgcS1jaGlwLWxlZnQgcm93IGZsZXgtY2VudGVyXCIsY2xhc3M6e1wicS1jaGlwLWRldGFpbFwiOnRoaXMuZGV0YWlsfX0sW3RoaXMuaWNvbj90KFFJY29uLHtzdGF0aWNDbGFzczpcInEtY2hpcC1pY29uXCIscHJvcHM6e25hbWU6dGhpcy5pY29ufX0pOnRoaXMuYXZhdGFyP3QoXCJpbWdcIix7YXR0cnM6e3NyYzp0aGlzLmF2YXRhcn19KTpudWxsXSk6bnVsbCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jaGlwLW1haW4gZWxsaXBzaXMgcS1wb3B1cC0tc2tpcFwifSx0aGlzLiRzbG90cy5kZWZhdWx0KSx0aGlzLmljb25SaWdodD90KFFJY29uLHtwcm9wczp7bmFtZTp0aGlzLmljb25SaWdodH0sY2xhc3M6dGhpcy5jbG9zYWJsZT9cIm9uLXJpZ2h0IHEtY2hpcC1pY29uXCI6XCJxLWNoaXAtc2lkZSBxLWNoaXAtcmlnaHRcIn0pOm51bGwsdGhpcy5jbG9zYWJsZT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jaGlwLXNpZGUgcS1jaGlwLWNsb3NlIHEtY2hpcC1yaWdodCByb3cgZmxleC1jZW50ZXJcIn0sW3QoUUljb24se3Byb3BzOntuYW1lOnRoaXMuJHEuaWNvbi5jaGlwLmNsb3NlfSxzdGF0aWNDbGFzczpcImN1cnNvci1wb2ludGVyXCIsbmF0aXZlT246e2NsaWNrOmZ1bmN0aW9uKHQpe3QmJnQuc3RvcFByb3BhZ2F0aW9uKCksZS4kZW1pdChcImhpZGVcIil9fX0pXSk6bnVsbF0pfX0sbWFyZ2luYWw9e3R5cGU6QXJyYXksdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0LmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVyblwiaWNvblwiaW4gdH0pfX0sRnJhbWVNaXhpbj17bWl4aW5zOltBbGlnbk1peGluXSxwcm9wczp7cHJlZml4OlN0cmluZyxzdWZmaXg6U3RyaW5nLHN0YWNrTGFiZWw6U3RyaW5nLGZsb2F0TGFiZWw6U3RyaW5nLHBsYWNlaG9sZGVyOlN0cmluZyxlcnJvcjpCb29sZWFuLHdhcm5pbmc6Qm9vbGVhbixkaXNhYmxlOkJvb2xlYW4scmVhZG9ubHk6Qm9vbGVhbixjbGVhcmFibGU6Qm9vbGVhbixjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sYWxpZ246e2RlZmF1bHQ6XCJsZWZ0XCJ9LGRhcms6Qm9vbGVhbixiZWZvcmU6bWFyZ2luYWwsYWZ0ZXI6bWFyZ2luYWwsaW52ZXJ0ZWQ6Qm9vbGVhbixpbnZlcnRlZExpZ2h0OkJvb2xlYW4saGlkZVVuZGVybGluZTpCb29sZWFuLGNsZWFyVmFsdWU6e30sbm9QYXJlbnRGaWVsZDpCb29sZWFufSxjb21wdXRlZDp7aW5wdXRQbGFjZWhvbGRlcjpmdW5jdGlvbigpe2lmKCF0aGlzLmZsb2F0TGFiZWwmJiF0aGlzLnN0YWNrTGFiZWx8fHRoaXMubGFiZWxJc0Fib3ZlKXJldHVybiB0aGlzLnBsYWNlaG9sZGVyfSxpc0ludmVydGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW52ZXJ0ZWR8fHRoaXMuaW52ZXJ0ZWRMaWdodH0saXNJbnZlcnRlZExpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbnZlcnRlZCYmKHRoaXMuaW52ZXJ0ZWRMaWdodCYmIXRoaXMuaGFzRXJyb3J8fHRoaXMuaW52ZXJ0ZWQmJnRoaXMuaGFzV2FybmluZyl9LGlzU3RhbmRhcmQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5pc0ludmVydGVkfSxpc0hpZGVVbmRlcmxpbmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1N0YW5kYXJkJiZ0aGlzLmhpZGVVbmRlcmxpbmV9LGxhYmVsSXNBYm92ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZvY3VzZWR8fHRoaXMubGVuZ3RofHx0aGlzLmFkZGl0aW9uYWxMZW5ndGh8fHRoaXMuc3RhY2tMYWJlbH0saGFzQ29udGVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aD4wfHx0aGlzLmFkZGl0aW9uYWxMZW5ndGg+MHx8dGhpcy5wbGFjZWhvbGRlcnx8MD09PXRoaXMucGxhY2Vob2xkZXJ9LGVkaXRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZGlzYWJsZSYmIXRoaXMucmVhZG9ubHl9LGNvbXB1dGVkQ2xlYXJWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzLmNsZWFyVmFsdWU/bnVsbDp0aGlzLmNsZWFyVmFsdWV9LGlzQ2xlYXJhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRpdGFibGUmJnRoaXMuY2xlYXJhYmxlJiZ0aGlzLmNvbXB1dGVkQ2xlYXJWYWx1ZSE9PXRoaXMubW9kZWx9LGhhc0Vycm9yOmZ1bmN0aW9uKCl7cmV0dXJuISEoIXRoaXMubm9QYXJlbnRGaWVsZCYmdGhpcy5maWVsZCYmdGhpcy5maWVsZC5lcnJvcnx8dGhpcy5lcnJvcil9LGhhc1dhcm5pbmc6ZnVuY3Rpb24oKXtyZXR1cm4hKHRoaXMuaGFzRXJyb3J8fCEoIXRoaXMubm9QYXJlbnRGaWVsZCYmdGhpcy5maWVsZCYmdGhpcy5maWVsZC53YXJuaW5nfHx0aGlzLndhcm5pbmcpKX0sZmFrZUlucHV0VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hY3R1YWxWYWx1ZXx8MD09PXRoaXMuYWN0dWFsVmFsdWU/dGhpcy5hY3R1YWxWYWx1ZTp0aGlzLnBsYWNlaG9sZGVyfHwwPT09dGhpcy5wbGFjZWhvbGRlcj90aGlzLnBsYWNlaG9sZGVyOlwiXCJ9LGZha2VJbnB1dENsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmFjdHVhbFZhbHVlfHwwPT09dGhpcy5hY3R1YWxWYWx1ZTtyZXR1cm5bdGhpcy5hbGlnbkNsYXNzLHtpbnZpc2libGU6KHRoaXMuc3RhY2tMYWJlbHx8dGhpcy5mbG9hdExhYmVsKSYmIXRoaXMubGFiZWxJc0Fib3ZlJiYhdCxcInEtaW5wdXQtdGFyZ2V0LXBsYWNlaG9sZGVyXCI6IXQmJnRoaXMuaW5wdXRQbGFjZWhvbGRlcn1dfX0sbWV0aG9kczp7Y2xlYXI6ZnVuY3Rpb24odCl7aWYodGhpcy5lZGl0YWJsZSl7dCYmc3RvcEFuZFByZXZlbnQodCk7dmFyIGU9dGhpcy5jb21wdXRlZENsZWFyVmFsdWU7dGhpcy5fX3NldE1vZGVsJiZ0aGlzLl9fc2V0TW9kZWwoZSwhMCksdGhpcy4kZW1pdChcImNsZWFyXCIsZSl9fX19LElucHV0TWl4aW49e3Byb3BzOnthdXRvZm9jdXM6W0Jvb2xlYW4sU3RyaW5nXSxtYXhIZWlnaHQ6TnVtYmVyLGxvYWRpbmc6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybntmb2N1c2VkOiExLHRpbWVyOm51bGwsaXNOdW1iZXJFcnJvcjohMSxpc05lZ1plcm86ITF9fSxtZXRob2RzOntmb2N1czpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZXx8dGhpcy4kcmVmcy5pbnB1dC5mb2N1cygpfSxibHVyOmZ1bmN0aW9uKCl7dGhpcy4kcmVmcy5pbnB1dCYmdGhpcy4kcmVmcy5pbnB1dC5ibHVyKCl9LHNlbGVjdDpmdW5jdGlvbigpe3RoaXMuJHJlZnMuaW5wdXQuc2VsZWN0KCl9LF9fb25Gb2N1czpmdW5jdGlvbih0KXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5mb2N1c2VkfHwodGhpcy5mb2N1c2VkPSEwLHRoaXMuJHJlZnMuaW5wdXQmJnRoaXMuJHJlZnMuaW5wdXQuZm9jdXMoKSx0aGlzLiRlbWl0KFwiZm9jdXNcIix0KSl9LF9fb25JbnB1dEJsdXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5fX29uQmx1cih0KX0sMjAwKX0sX19vbkJsdXI6ZnVuY3Rpb24odCxlKXt0aGlzLmZvY3VzZWQmJih0aGlzLmZvY3VzZWQ9ITEsdGhpcy4kZW1pdChcImJsdXJcIix0KSksdGhpcy5fX2VtaXQoZSl9LF9fZW1pdDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dGhpcy5pc051bWJlciYmdGhpcy5pc051bWJlckVycm9yLHM9aT90aGlzLmlzTmVnWmVybz8tMDpudWxsOnRoaXMubW9kZWw7dGhpcy5pc051bWJlciYmKHRoaXMubW9kZWw9dGhpcy52YWx1ZSksaSYmdGhpcy4kZW1pdChcImlucHV0XCIscyk7dmFyIG49ZnVuY3Rpb24oKXtlLmlzTnVtYmVyPyhzPXBhcnNlRmxvYXQocyksTnVtYmVyLmlzSW50ZWdlcihlLmRlY2ltYWxzKSYmKHM9cGFyc2VGbG9hdChzLnRvRml4ZWQoZS5kZWNpbWFscykpKSxTdHJpbmcoMS9zKSE9PVN0cmluZygxL2UudmFsdWUpJiZlLiRlbWl0KFwiY2hhbmdlXCIscykpOkpTT04uc3RyaW5naWZ5KHMpIT09SlNPTi5zdHJpbmdpZnkoZS52YWx1ZSkmJmUuJGVtaXQoXCJjaGFuZ2VcIixzKX07dD9uKCk6dGhpcy4kbmV4dFRpY2sobil9LF9fb25LZXlkb3duOmZ1bmN0aW9uKHQpezEzPT09dC5rZXlDb2RlJiYoXCJ0ZXh0YXJlYVwiPT09dGhpcy50eXBlP3Quc3RvcFByb3BhZ2F0aW9uKCk6dGhpcy5fX2VtaXQoKSksdGhpcy4kZW1pdChcImtleWRvd25cIix0KX0sX19vbktleXVwOmZ1bmN0aW9uKHQpe3RoaXMuJGVtaXQoXCJrZXl1cFwiLHQpfSxfX29uQ2xpY2s6ZnVuY3Rpb24odCl7dGhpcy5mb2N1cygpLHRoaXMuJGVtaXQoXCJjbGlja1wiLHQpfSxfX29uUGFzdGU6ZnVuY3Rpb24odCl7dGhpcy4kZW1pdChcInBhc3RlXCIsdCl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3ZhciBlPXQuJHJlZnMuaW5wdXQ7dC5hdXRvZm9jdXMmJmUmJihlLmZvY3VzKCksXCJzZWxlY3RcIj09PXQuYXV0b2ZvY3VzJiZlLnNlbGVjdCgpKX0pfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZm9jdXNlZCYmdGhpcy5fX29uQmx1cih2b2lkIDAsITApfX0sUGFyZW50RmllbGRNaXhpbj17aW5qZWN0OntmaWVsZDp7ZnJvbTpcIl9fZmllbGRcIixkZWZhdWx0Om51bGx9fSxwcm9wczp7bm9QYXJlbnRGaWVsZDpCb29sZWFufSx3YXRjaDp7bm9QYXJlbnRGaWVsZDpmdW5jdGlvbih0KXt0aGlzLmZpZWxkJiZ0aGlzLmZpZWxkW3Q/XCJfX3JlZ2lzdGVySW5wdXRcIjpcIl9fdW5yZWdpc3RlcklucHV0XCJdKHRoaXMpfX0sYmVmb3JlTW91bnQ6ZnVuY3Rpb24oKXshdGhpcy5ub1BhcmVudEZpZWxkJiZ0aGlzLmZpZWxkJiZ0aGlzLmZpZWxkLl9fcmVnaXN0ZXJJbnB1dCh0aGlzKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpeyF0aGlzLm5vUGFyZW50RmllbGQmJnRoaXMuZmllbGQmJnRoaXMuZmllbGQuX191bnJlZ2lzdGVySW5wdXQodGhpcyl9fSxRSW5wdXRGcmFtZT17bmFtZTpcIlFJbnB1dEZyYW1lXCIsbWl4aW5zOltGcmFtZU1peGluLFBhcmVudEZpZWxkTWl4aW5dLHByb3BzOntmb2N1c2VkOkJvb2xlYW4sbGVuZ3RoOk51bWJlcixmb2N1c2FibGU6Qm9vbGVhbixhZGRpdGlvbmFsTGVuZ3RoOkJvb2xlYW59LGNvbXB1dGVkOntoYXNTdGFja0xhYmVsOmZ1bmN0aW9uKCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHRoaXMuc3RhY2tMYWJlbCYmdGhpcy5zdGFja0xhYmVsLmxlbmd0aD4wfSxoYXNMYWJlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhhc1N0YWNrTGFiZWx8fFwic3RyaW5nXCI9PXR5cGVvZiB0aGlzLmZsb2F0TGFiZWwmJnRoaXMuZmxvYXRMYWJlbC5sZW5ndGg+MH0sbGFiZWw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNTdGFja0xhYmVsP3RoaXMuc3RhY2tMYWJlbDp0aGlzLmZsb2F0TGFiZWx9LGFkZG9uQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm57XCJxLWlmLWFkZG9uLXZpc2libGVcIjohdGhpcy5oYXNMYWJlbHx8dGhpcy5sYWJlbElzQWJvdmV9fSxjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W3tcInEtaWYtaGFzLWxhYmVsXCI6dGhpcy5sYWJlbCxcInEtaWYtZm9jdXNlZFwiOnRoaXMuZm9jdXNlZCxcInEtaWYtZXJyb3JcIjp0aGlzLmhhc0Vycm9yLFwicS1pZi13YXJuaW5nXCI6dGhpcy5oYXNXYXJuaW5nLFwicS1pZi1kaXNhYmxlZFwiOnRoaXMuZGlzYWJsZSxcInEtaWYtcmVhZG9ubHlcIjp0aGlzLnJlYWRvbmx5LFwicS1pZi1mb2N1c2FibGVcIjp0aGlzLmZvY3VzYWJsZSYmIXRoaXMuZGlzYWJsZSxcInEtaWYtaW52ZXJ0ZWRcIjp0aGlzLmlzSW52ZXJ0ZWQsXCJxLWlmLWludmVydGVkLWxpZ2h0XCI6dGhpcy5pc0ludmVydGVkTGlnaHQsXCJxLWlmLWxpZ2h0LWNvbG9yXCI6dGhpcy5saWdodENvbG9yLFwicS1pZi1kYXJrXCI6dGhpcy5kYXJrLFwicS1pZi1oaWRlLXVuZGVybGluZVwiOnRoaXMuaXNIaWRlVW5kZXJsaW5lLFwicS1pZi1zdGFuZGFyZFwiOnRoaXMuaXNTdGFuZGFyZCxcInEtaWYtaGFzLWNvbnRlbnRcIjp0aGlzLmhhc0NvbnRlbnR9XSxlPXRoaXMuaGFzRXJyb3I/XCJuZWdhdGl2ZVwiOnRoaXMuaGFzV2FybmluZz9cIndhcm5pbmdcIjp0aGlzLmNvbG9yO3JldHVybiB0aGlzLmlzSW52ZXJ0ZWQ/KHQucHVzaChcImJnLVwiK2UpLHQucHVzaChcInRleHQtXCIrKHRoaXMuaXNJbnZlcnRlZExpZ2h0P1wiYmxhY2tcIjpcIndoaXRlXCIpKSk6ZSYmdC5wdXNoKFwidGV4dC1cIitlKSx0fX0sbWV0aG9kczp7X19vbkNsaWNrOmZ1bmN0aW9uKHQpe3RoaXMuJGVtaXQoXCJjbGlja1wiLHQpfSxfX29uTW91c2VEb3duOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7IXRoaXMuZGlzYWJsZSYmdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtyZXR1cm4gZS4kZW1pdChcImZvY3VzXCIsdCl9KX0sX19hZGRpdGlvbmFsSGlkZGVuOmZ1bmN0aW9uKHQsZSxpLHMpe3JldHVybiB2b2lkIDAhPT10LmNvbmRpdGlvbj8hMT09PXQuY29uZGl0aW9uOnZvaWQgMCE9PXQuY29udGVudCYmIXQuY29udGVudD09cz4wfHx2b2lkIDAhPT10LmVycm9yJiYhdC5lcnJvcj09PWV8fHZvaWQgMCE9PXQud2FybmluZyYmIXQud2FybmluZz09PWl9LF9fYmFIYW5kbGVyOmZ1bmN0aW9uKHQsZSl7ZS5hbGxvd1Byb3BhZ2F0aW9ufHx0LnN0b3BQcm9wYWdhdGlvbigpLGUuaGFuZGxlciYmZS5oYW5kbGVyKHQpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWlmIHJvdyBuby13cmFwIHJlbGF0aXZlLXBvc2l0aW9uXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt0YWJpbmRleDp0aGlzLmZvY3VzYWJsZSYmIXRoaXMuZGlzYWJsZT8wOi0xfSxvbjp7Y2xpY2s6dGhpcy5fX29uQ2xpY2t9fSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaWYtYmFzZWxpbmVcIn0sXCJ8XCIpLHRoaXMuYmVmb3JlJiZ0aGlzLmJlZm9yZS5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIHQoUUljb24se2tleTpcImJcIitpLmljb24sc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2wgcS1pZi1jb250cm9sLWJlZm9yZVwiLGNsYXNzOltpLmNsYXNzLHtoaWRkZW46ZS5fX2FkZGl0aW9uYWxIaWRkZW4oaSxlLmhhc0Vycm9yLGUuaGFzV2FybmluZyxlLmxlbmd0aCl9XSxwcm9wczp7bmFtZTppLmljb259LG5hdGl2ZU9uOnttb3VzZWRvd246ZS5fX29uTW91c2VEb3duLHRvdWNoc3RhcnQ6ZS5fX29uTW91c2VEb3duLGNsaWNrOmZ1bmN0aW9uKHQpe2UuX19iYUhhbmRsZXIodCxpKX19fSl9KXx8dm9pZCAwLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWlmLWlubmVyIGNvbCBjb2x1bW4gcS1wb3B1cC0tc2tpcFwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJvdyBuby13cmFwIHJlbGF0aXZlLXBvc2l0aW9uXCJ9LFt0aGlzLnByZWZpeCYmdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLWlmLWFkZG9uIHEtaWYtYWRkb24tbGVmdFwiLGNsYXNzOnRoaXMuYWRkb25DbGFzcyxkb21Qcm9wczp7aW5uZXJIVE1MOnRoaXMucHJlZml4fX0pfHx2b2lkIDAsdGhpcy5oYXNMYWJlbCYmdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaWYtbGFiZWxcIixjbGFzczp7XCJxLWlmLWxhYmVsLWFib3ZlXCI6dGhpcy5sYWJlbElzQWJvdmV9fSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaWYtbGFiZWwtaW5uZXIgZWxsaXBzaXNcIixkb21Qcm9wczp7aW5uZXJIVE1MOnRoaXMubGFiZWx9fSldKXx8dm9pZCAwXS5jb25jYXQodGhpcy4kc2xvdHMuZGVmYXVsdCkuY29uY2F0KFt0aGlzLnN1ZmZpeCYmdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLWlmLWFkZG9uIHEtaWYtYWRkb24tcmlnaHRcIixjbGFzczp0aGlzLmFkZG9uQ2xhc3MsZG9tUHJvcHM6e2lubmVySFRNTDp0aGlzLnN1ZmZpeH19KXx8dm9pZCAwXSkpLHRoaXMuaGFzTGFiZWwmJnQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWlmLWxhYmVsLXNwYWNlclwiLGRvbVByb3BzOntpbm5lckhUTUw6dGhpcy5sYWJlbH19KXx8dm9pZCAwXSksdGhpcy5hZnRlciYmdGhpcy5hZnRlci5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIHQoUUljb24se2tleTpcImFcIitpLmljb24sc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixjbGFzczpbaS5jbGFzcyx7aGlkZGVuOmUuX19hZGRpdGlvbmFsSGlkZGVuKGksZS5oYXNFcnJvcixlLmhhc1dhcm5pbmcsZS5sZW5ndGgpfV0scHJvcHM6e25hbWU6aS5pY29ufSxuYXRpdmVPbjp7bW91c2Vkb3duOmUuX19vbk1vdXNlRG93bix0b3VjaHN0YXJ0OmUuX19vbk1vdXNlRG93bixjbGljazpmdW5jdGlvbih0KXtlLl9fYmFIYW5kbGVyKHQsaSl9fX0pfSl8fHZvaWQgMF0uY29uY2F0KHRoaXMuJHNsb3RzLmFmdGVyKSl9fSxRQ2hpcHNJbnB1dD17bmFtZTpcIlFDaGlwc0lucHV0XCIsbWl4aW5zOltGcmFtZU1peGluLElucHV0TWl4aW5dLHByb3BzOnt2YWx1ZTp7dHlwZTpBcnJheSxyZXF1aXJlZDohMH0sY2hpcHNDb2xvcjpTdHJpbmcsY2hpcHNCZ0NvbG9yOlN0cmluZyxyZWFkb25seTpCb29sZWFuLGFkZEljb246U3RyaW5nLHVwcGVyQ2FzZTpCb29sZWFuLGxvd2VyQ2FzZTpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm57aW5wdXQ6XCJcIixtb2RlbDp0aGlzLnZhbHVlLnNsaWNlKCksd2F0Y2hlcjpudWxsLHNoYWRvdzp7dmFsOnRoaXMuaW5wdXQsc2V0OnRoaXMuYWRkLHNldE5hdjpmdW5jdGlvbihlKXt0LmlucHV0PWV9LGxvYWRpbmc6ITEsc2VsZWN0aW9uT3BlbjohMSx3YXRjaGVkOjAsaXNFZGl0YWJsZTpmdW5jdGlvbigpe3JldHVybiB0LmVkaXRhYmxlfSxpc0Rhcms6ZnVuY3Rpb24oKXtyZXR1cm4gdC5kYXJrfSxoYXNGb2N1czpmdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dC4kcmVmcy5pbnB1dH0scmVnaXN0ZXI6ZnVuY3Rpb24oKXt0LnNoYWRvdy53YXRjaGVkKz0xLHQuX193YXRjaGVyUmVnaXN0ZXIoKX0sdW5yZWdpc3RlcjpmdW5jdGlvbigpe3Quc2hhZG93LndhdGNoZWQ9TWF0aC5tYXgoMCx0LnNoYWRvdy53YXRjaGVkLTEpLHQuX193YXRjaGVyVW5yZWdpc3RlcigpfSxnZXRFbDpmdW5jdGlvbigpe3JldHVybiB0LiRyZWZzLmlucHV0fX19fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5tb2RlbD10LnNsaWNlKCl9fSxwcm92aWRlOmZ1bmN0aW9uKCl7cmV0dXJue19faW5wdXQ6dGhpcy5zaGFkb3d9fSxjb21wdXRlZDp7bGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWw/dGhpcy5tb2RlbC5sZW5ndGg6MH0saXNMb2FkaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubG9hZGluZ3x8dGhpcy5zaGFkb3cud2F0Y2hlZCYmdGhpcy5zaGFkb3cubG9hZGluZ30sY29tcHV0ZWRBZGRJY29uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWRkSWNvbnx8dGhpcy4kcS5pY29uLmNoaXBzSW5wdXQuYWRkfSxjb21wdXRlZENoaXBUZXh0Q29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlwc0NvbG9yP3RoaXMuY2hpcHNDb2xvcjp0aGlzLmlzSW52ZXJ0ZWRMaWdodD90aGlzLmludmVydGVkTGlnaHQ/dGhpcy5jb2xvcjpcIndoaXRlXCI6dGhpcy5pc0ludmVydGVkP3RoaXMuaW52ZXJ0ZWRMaWdodD9cImdyZXktMTBcIjp0aGlzLmNvbG9yOnRoaXMuZGFyaz90aGlzLmNvbG9yOlwid2hpdGVcIn0sY29tcHV0ZWRDaGlwQmdDb2xvcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNoaXBzQmdDb2xvcj90aGlzLmNoaXBzQmdDb2xvcjp0aGlzLmlzSW52ZXJ0ZWRMaWdodD90aGlzLmludmVydGVkTGlnaHQ/XCJncmV5LTEwXCI6dGhpcy5jb2xvcjp0aGlzLmlzSW52ZXJ0ZWQ/dGhpcy5pbnZlcnRlZExpZ2h0P3RoaXMuY29sb3I6XCJ3aGl0ZVwiOnRoaXMuZGFyaz9cIndoaXRlXCI6dGhpcy5jb2xvcn0saW5wdXRDbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W3RoaXMuYWxpZ25DbGFzc107cmV0dXJuIHRoaXMudXBwZXJDYXNlJiZ0LnB1c2goXCJ1cHBlcmNhc2VcIiksdGhpcy5sb3dlckNhc2UmJnQucHVzaChcImxvd2VyY2FzZVwiKSx0fSxpc0NsZWFyYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkaXRhYmxlJiZ0aGlzLmNsZWFyYWJsZSYmMCE9PXRoaXMubW9kZWwubGVuZ3RofX0sbWV0aG9kczp7YWRkOmZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQmJih0PXRoaXMuaW5wdXQpLGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmZvY3VzKCksIXRoaXMuaXNMb2FkaW5nJiZ0aGlzLmVkaXRhYmxlJiZ0KXt2YXIgZT10aGlzLmxvd2VyQ2FzZT90LnRvTG93ZXJDYXNlKCk6dGhpcy51cHBlckNhc2U/dC50b1VwcGVyQ2FzZSgpOnQ7dGhpcy5tb2RlbC5pbmNsdWRlcyhlKT90aGlzLiRlbWl0KFwiZHVwbGljYXRlXCIsZSk6KHRoaXMuJGVtaXQoXCJhZGRcIix7aW5kZXg6dGhpcy5tb2RlbC5sZW5ndGgsdmFsOmV9KSx0aGlzLm1vZGVsLnB1c2goZSksdGhpcy4kZW1pdChcImlucHV0XCIsdGhpcy5tb2RlbCksdGhpcy5pbnB1dD1cIlwiKX19LHJlbW92ZTpmdW5jdGlvbih0KXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5mb2N1cygpLHRoaXMuZWRpdGFibGUmJnQ+PTAmJnQ8dGhpcy5sZW5ndGgmJih0aGlzLiRlbWl0KFwicmVtb3ZlXCIse2luZGV4OnQsdmFsdWU6dGhpcy5tb2RlbC5zcGxpY2UodCwxKX0pLHRoaXMuJGVtaXQoXCJpbnB1dFwiLHRoaXMubW9kZWwpKX0sY2xlYXI6ZnVuY3Rpb24odCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHQmJnN0b3BBbmRQcmV2ZW50KHQpLHRoaXMuZWRpdGFibGUmJih0aGlzLiRlbWl0KFwiaW5wdXRcIixbXSksdGhpcy4kZW1pdChcImNsZWFyXCIpKX0sX19jbGVhclRpbWVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3JldHVybiBjbGVhclRpbWVvdXQodC50aW1lcil9KX0sX19oYW5kbGVLZXlEb3duOmZ1bmN0aW9uKHQpe3N3aXRjaChnZXRFdmVudEtleSh0KSl7Y2FzZSAxMzppZih0aGlzLnNoYWRvdy5zZWxlY3Rpb25PcGVuKXJldHVybjtyZXR1cm4gc3RvcEFuZFByZXZlbnQodCksdGhpcy5hZGQoKTtjYXNlIDg6cmV0dXJuIHZvaWQoIXRoaXMuaW5wdXQubGVuZ3RoJiZ0aGlzLmxlbmd0aCYmdGhpcy5yZW1vdmUodGhpcy5sZW5ndGgtMSkpO2RlZmF1bHQ6cmV0dXJuIHRoaXMuX19vbktleWRvd24odCl9fSxfX29uQ2xpY2s6ZnVuY3Rpb24oKXt0aGlzLmZvY3VzKCl9LF9fd2F0Y2hlcjpmdW5jdGlvbih0KXt0aGlzLnNoYWRvdy53YXRjaGVkJiYodGhpcy5zaGFkb3cudmFsPXQpfSxfX3dhdGNoZXJSZWdpc3RlcjpmdW5jdGlvbigpe3RoaXMud2F0Y2hlcnx8KHRoaXMud2F0Y2hlcj10aGlzLiR3YXRjaChcImlucHV0XCIsdGhpcy5fX3dhdGNoZXIpKX0sX193YXRjaGVyVW5yZWdpc3RlcjpmdW5jdGlvbih0KXshdGhpcy53YXRjaGVyfHwhdCYmdGhpcy5zaGFkb3cud2F0Y2hlZHx8KHRoaXMud2F0Y2hlcigpLHRoaXMud2F0Y2hlcj1udWxsLHRoaXMuc2hhZG93LnNlbGVjdGlvbk9wZW49ITEpfX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX193YXRjaGVyVW5yZWdpc3RlcighMCl9LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFFJbnB1dEZyYW1lLHtzdGF0aWNDbGFzczpcInEtY2hpcHMtaW5wdXRcIixwcm9wczp7cHJlZml4OnRoaXMucHJlZml4LHN1ZmZpeDp0aGlzLnN1ZmZpeCxzdGFja0xhYmVsOnRoaXMuc3RhY2tMYWJlbCxmbG9hdExhYmVsOnRoaXMuZmxvYXRMYWJlbCxlcnJvcjp0aGlzLmVycm9yLHdhcm5pbmc6dGhpcy53YXJuaW5nLGRpc2FibGU6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHksaW52ZXJ0ZWQ6dGhpcy5pbnZlcnRlZCxpbnZlcnRlZExpZ2h0OnRoaXMuaW52ZXJ0ZWRMaWdodCxkYXJrOnRoaXMuZGFyayxoaWRlVW5kZXJsaW5lOnRoaXMuaGlkZVVuZGVybGluZSxiZWZvcmU6dGhpcy5iZWZvcmUsYWZ0ZXI6dGhpcy5hZnRlcixjb2xvcjp0aGlzLmNvbG9yLG5vUGFyZW50RmllbGQ6dGhpcy5ub1BhcmVudEZpZWxkLGZvY3VzZWQ6dGhpcy5mb2N1c2VkLGxlbmd0aDp0aGlzLmxlbmd0aCxhZGRpdGlvbmFsTGVuZ3RoOnRoaXMuaW5wdXQubGVuZ3RoPjB9LG9uOntjbGljazp0aGlzLl9fb25DbGlja319LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sIHJvdyBpdGVtcy1jZW50ZXIgcS1pbnB1dC1jaGlwc1wifSx0aGlzLm1vZGVsLm1hcChmdW5jdGlvbihpLHMpe3JldHVybiB0KFFDaGlwLHtrZXk6aStcIiNcIitzLHByb3BzOntzbWFsbDohMCxjbG9zYWJsZTplLmVkaXRhYmxlLGNvbG9yOmUuY29tcHV0ZWRDaGlwQmdDb2xvcix0ZXh0Q29sb3I6ZS5jb21wdXRlZENoaXBUZXh0Q29sb3J9LGF0dHJzOnt0YWJpbmRleDplLmVkaXRhYmxlJiZlLmZvY3VzZWQ/MDotMX0sb246e2JsdXI6ZS5fX29uSW5wdXRCbHVyLGZvY3VzOmUuX19jbGVhclRpbWVyLGhpZGU6ZnVuY3Rpb24oKXtlLnJlbW92ZShzKX19LG5hdGl2ZU9uOntibHVyOmUuX19vbklucHV0Qmx1cixmb2N1czplLl9fY2xlYXJUaW1lcn19LGkpfSkuY29uY2F0KFt0KFwiaW5wdXRcIix7cmVmOlwiaW5wdXRcIixzdGF0aWNDbGFzczpcImNvbCBxLWlucHV0LXRhcmdldFwiLGNsYXNzOnRoaXMuaW5wdXRDbGFzc2VzLGRvbVByb3BzOnt2YWx1ZTp0aGlzLmlucHV0fSxhdHRyczpPYmplY3QuYXNzaWduKHt9LHRoaXMuJGF0dHJzLHtwbGFjZWhvbGRlcjp0aGlzLmlucHV0UGxhY2Vob2xkZXIsZGlzYWJsZWQ6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHl9KSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7ZS5pbnB1dD10LnRhcmdldC52YWx1ZX0sZm9jdXM6dGhpcy5fX29uRm9jdXMsYmx1cjp0aGlzLl9fb25JbnB1dEJsdXIsa2V5ZG93bjp0aGlzLl9faGFuZGxlS2V5RG93bixrZXl1cDp0aGlzLl9fb25LZXl1cH19KV0pKSx0aGlzLmlzTG9hZGluZz90aGlzLiRzbG90cy5sb2FkaW5nP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixzbG90OlwiYWZ0ZXJcIn0sdGhpcy4kc2xvdHMubG9hZGluZyk6dChRU3Bpbm5lcix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixwcm9wczp7c2l6ZTpcIjI0cHhcIn19KTp0aGlzLmVkaXRhYmxlJiZ0KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwiLGNsYXNzOntpbnZpc2libGU6MD09PXRoaXMuaW5wdXQubGVuZ3RofSxwcm9wczp7bmFtZTp0aGlzLmNvbXB1dGVkQWRkSWNvbn0sbmF0aXZlT246e21vdXNlZG93bjp0aGlzLl9fY2xlYXJUaW1lcix0b3VjaHN0YXJ0OnRoaXMuX19jbGVhclRpbWVyLGNsaWNrOmZ1bmN0aW9uKCl7ZS5hZGQoKX19fSl8fHZvaWQgMCx0aGlzLmlzQ2xlYXJhYmxlJiZ0KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwiLHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi5pbnB1dFtcImNsZWFyXCIrKHRoaXMuaXNJbnZlcnRlZD9cIkludmVydGVkXCI6XCJcIildfSxuYXRpdmVPbjp7bW91c2Vkb3duOnRoaXMuX19jbGVhclRpbWVyLHRvdWNoc3RhcnQ6dGhpcy5fX2NsZWFyVGltZXIsY2xpY2s6dGhpcy5jbGVhcn19KXx8dm9pZCAwXS5jb25jYXQodGhpcy4kc2xvdHMuZGVmYXVsdD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiYWJzb2x1dGUtZnVsbCBuby1wb2ludGVyLWV2ZW50c1wiLHNsb3Q6XCJhZnRlclwifSx0aGlzLiRzbG90cy5kZWZhdWx0KTp2b2lkIDApKX19LFFJdGVtVGlsZT17bmFtZTpcIlFJdGVtVGlsZVwiLHByb3BzOntpY29uOlN0cmluZyxsZXR0ZXI6Qm9vbGVhbixpbnZlcnRlZDpCb29sZWFuLGltYWdlOkJvb2xlYW4sYXZhdGFyOkJvb2xlYW4sc3RhbXA6Qm9vbGVhbixsYWJlbDpCb29sZWFuLHN1YmxhYmVsOkJvb2xlYW4sbGluZXM6W051bWJlcixTdHJpbmddLHRhZzp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImRpdlwifSxjb2xvcjpTdHJpbmcsdGV4dENvbG9yOlN0cmluZ30sY29tcHV0ZWQ6e2hhc0xpbmVzOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMubGFiZWx8fHRoaXMuc3VibGFiZWwpJiZ0aGlzLmxpbmVzfSx0eXBlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm5bXCJpY29uXCIsXCJsYWJlbFwiLFwic3VibGFiZWxcIixcImltYWdlXCIsXCJhdmF0YXJcIixcImxldHRlclwiLFwic3RhbXBcIl0uZmluZChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pfSxjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuY29sb3ImJih0aGlzLmludmVydGVkP3QucHVzaChcImJnLVwiK3RoaXMuY29sb3IpOnRoaXMudGV4dENvbG9yfHx0LnB1c2goXCJ0ZXh0LVwiK3RoaXMuY29sb3IpKSx0aGlzLnRleHRDb2xvciYmdC5wdXNoKFwidGV4dC1cIit0aGlzLnRleHRDb2xvciksdGhpcy50eXBlJiZ0LnB1c2goXCJxLWl0ZW0tXCIrdGhpcy50eXBlKSx0aGlzLmludmVydGVkJiYodGhpcy5pY29ufHx0aGlzLmxldHRlcikmJih0LnB1c2goXCJxLWl0ZW0taW52ZXJ0ZWRcIiksdC5wdXNoKFwiZmxleFwiKSx0LnB1c2goXCJmbGV4LWNlbnRlclwiKSksIXRoaXMuaGFzTGluZXN8fFwiMVwiIT09dGhpcy5saW5lcyYmMSE9PXRoaXMubGluZXN8fHQucHVzaChcImVsbGlwc2lzXCIpLHR9LHN0eWxlOmZ1bmN0aW9uKCl7aWYodGhpcy5oYXNMaW5lcylyZXR1cm4gdGV4dFN0eWxlKHRoaXMubGluZXMpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXtjbGFzczp0aGlzLmNsYXNzZXMsc3R5bGU6dGhpcy5zdHlsZX07aWYodGhpcy5pY29uKXtpZih0aGlzLmludmVydGVkKXJldHVybiB0KHRoaXMudGFnLGUsW3QoUUljb24se3Byb3BzOntuYW1lOnRoaXMuaWNvbn19LHRoaXMuJHNsb3RzLmRlZmF1bHQpXSk7ZS5wcm9wcz17bmFtZTp0aGlzLmljb259fXJldHVybiB0KHRoaXMuaWNvbj9RSWNvbjp0aGlzLnRhZyxlLHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUVNsaWRlVHJhbnNpdGlvbj17bmFtZTpcIlFTbGlkZVRyYW5zaXRpb25cIixwcm9wczp7YXBwZWFyOkJvb2xlYW4sZHVyYXRpb246e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MzAwfX0sbWV0aG9kczp7X19iZWdpbjpmdW5jdGlvbih0LGUsaSl7dC5zdHlsZS5vdmVyZmxvd1k9XCJoaWRkZW5cIix2b2lkIDAhPT1lJiYodC5zdHlsZS5oZWlnaHQ9ZStcInB4XCIpLHQuc3R5bGUudHJhbnNpdGlvbj1cImhlaWdodCBcIit0aGlzLmR1cmF0aW9uK1wibXMgY3ViaWMtYmV6aWVyKC4yNSwgLjgsIC41MCwgMSlcIix0aGlzLmFuaW1hdGluZz0hMCx0aGlzLmRvbmU9aX0sX19lbmQ6ZnVuY3Rpb24odCxlKXt0LnN0eWxlLm92ZXJmbG93WT1udWxsLHQuc3R5bGUuaGVpZ2h0PW51bGwsdC5zdHlsZS50cmFuc2l0aW9uPW51bGwsdGhpcy5fX2NsZWFudXAoKSxlIT09dGhpcy5sYXN0RXZlbnQmJnRoaXMuJGVtaXQoZSl9LF9fY2xlYW51cDpmdW5jdGlvbigpe3RoaXMuZG9uZSYmdGhpcy5kb25lKCksdGhpcy5kb25lPW51bGwsdGhpcy5hbmltYXRpbmc9ITEsY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIix0aGlzLmFuaW1MaXN0ZW5lciksdGhpcy5hbmltTGlzdGVuZXI9bnVsbH19LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmFuaW1hdGluZyYmdGhpcy5fX2NsZWFudXAoKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJ0cmFuc2l0aW9uXCIse3Byb3BzOntjc3M6ITEsYXBwZWFyOnRoaXMuYXBwZWFyfSxvbjp7ZW50ZXI6ZnVuY3Rpb24odCxpKXt2YXIgcz0wO2UuZWw9dCwhMD09PWUuYW5pbWF0aW5nPyhlLl9fY2xlYW51cCgpLHM9dC5vZmZzZXRIZWlnaHQ9PT10LnNjcm9sbEhlaWdodD8wOnZvaWQgMCk6ZS5sYXN0RXZlbnQ9XCJoaWRlXCIsZS5fX2JlZ2luKHQscyxpKSxlLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LnN0eWxlLmhlaWdodD10LnNjcm9sbEhlaWdodCtcInB4XCIsZS5hbmltTGlzdGVuZXI9ZnVuY3Rpb24oKXtlLl9fZW5kKHQsXCJzaG93XCIpfSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsZS5hbmltTGlzdGVuZXIpfSwxMDApfSxsZWF2ZTpmdW5jdGlvbih0LGkpe3ZhciBzO2UuZWw9dCwhMD09PWUuYW5pbWF0aW5nP2UuX19jbGVhbnVwKCk6KGUubGFzdEV2ZW50PVwic2hvd1wiLHM9dC5zY3JvbGxIZWlnaHQpLGUuX19iZWdpbih0LHMsaSksZS50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5zdHlsZS5oZWlnaHQ9MCxlLmFuaW1MaXN0ZW5lcj1mdW5jdGlvbigpe2UuX19lbmQodCxcImhpZGVcIil9LHQuYWRkRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIixlLmFuaW1MaXN0ZW5lcil9LDEwMCl9fX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxldmVudE5hbWU9XCJxOmNvbGxhcHNpYmxlOmNsb3NlXCIsUUNvbGxhcHNpYmxlPXtuYW1lOlwiUUNvbGxhcHNpYmxlXCIsbWl4aW5zOltNb2RlbFRvZ2dsZU1peGluLEl0ZW1NaXhpbix7cHJvcHM6c3ViSXRlbVByb3BzfV0sbW9kZWxUb2dnbGU6e2hpc3Rvcnk6ITF9LHByb3BzOntkaXNhYmxlOkJvb2xlYW4scG9wdXA6Qm9vbGVhbixpbmRlbnQ6Qm9vbGVhbixncm91cDpTdHJpbmcsaWNvblRvZ2dsZTpCb29sZWFuLGNvbGxhcHNlSWNvbjpTdHJpbmcsb3BlbmVkOkJvb2xlYW4sZHVyYXRpb246TnVtYmVyLGhlYWRlclN0eWxlOltBcnJheSxTdHJpbmcsT2JqZWN0XSxoZWFkZXJDbGFzczpbQXJyYXksU3RyaW5nLE9iamVjdF19LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJue1wicS1jb2xsYXBzaWJsZS1vcGVuZWRcIjp0aGlzLnNob3dpbmcsXCJxLWNvbGxhcHNpYmxlLWNsb3NlZFwiOiF0aGlzLnNob3dpbmcsXCJxLWNvbGxhcHNpYmxlLXBvcHVwLW9wZW5lZFwiOnRoaXMucG9wdXAmJnRoaXMuc2hvd2luZyxcInEtY29sbGFwc2libGUtcG9wdXAtY2xvc2VkXCI6dGhpcy5wb3B1cCYmIXRoaXMuc2hvd2luZyxcInEtY29sbGFwc2libGUtY3Vyc29yLXBvaW50ZXJcIjohdGhpcy5zZXBhcmF0ZVRvZ2dsZSxcInEtaXRlbS1kYXJrXCI6dGhpcy5kYXJrLFwicS1pdGVtLXNlcGFyYXRvclwiOnRoaXMuc2VwYXJhdG9yLFwicS1pdGVtLWluc2V0LXNlcGFyYXRvclwiOnRoaXMuaW5zZXRTZXBhcmF0b3IsZGlzYWJsZWQ6dGhpcy5kaXNhYmxlfX0sc2VwYXJhdGVUb2dnbGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pY29uVG9nZ2xlfHx2b2lkIDAhPT10aGlzLnRvfX0sd2F0Y2g6e3Nob3dpbmc6ZnVuY3Rpb24odCl7dCYmdGhpcy5ncm91cCYmdGhpcy4kcm9vdC4kZW1pdChldmVudE5hbWUsdGhpcyl9fSxtZXRob2RzOntfX3RvZ2dsZUl0ZW06ZnVuY3Rpb24oKXt0aGlzLnNlcGFyYXRlVG9nZ2xlfHx0aGlzLnRvZ2dsZSgpfSxfX3RvZ2dsZUljb246ZnVuY3Rpb24odCl7dGhpcy5zZXBhcmF0ZVRvZ2dsZSYmKHQmJnN0b3BBbmRQcmV2ZW50KHQpLHRoaXMudG9nZ2xlKCkpfSxfX2V2ZW50SGFuZGxlcjpmdW5jdGlvbih0KXt0aGlzLmdyb3VwJiZ0aGlzIT09dCYmdC5ncm91cD09PXRoaXMuZ3JvdXAmJnRoaXMuaGlkZSgpfSxfX2dldFRvZ2dsZVNpZGU6ZnVuY3Rpb24odCxlKXtyZXR1cm5bdChRSXRlbVRpbGUse3Nsb3Q6ZT9cInJpZ2h0XCI6dm9pZCAwLHN0YXRpY0NsYXNzOlwiY3Vyc29yLXBvaW50ZXIgdHJhbnNpdGlvbi1nZW5lcmljIHJlbGF0aXZlLXBvc2l0aW9uIHEtY29sbGFwc2libGUtdG9nZ2xlLWljb25cIixjbGFzczp7XCJyb3RhdGUtMTgwXCI6dGhpcy5zaG93aW5nLGludmlzaWJsZTp0aGlzLmRpc2FibGV9LG5hdGl2ZU9uOntjbGljazp0aGlzLl9fdG9nZ2xlSWNvbn0scHJvcHM6e2ljb246dGhpcy5jb2xsYXBzZUljb258fHRoaXMuJHEuaWNvbi5jb2xsYXBzaWJsZS5pY29ufX0pXX0sX19nZXRJdGVtUHJvcHM6ZnVuY3Rpb24odCl7cmV0dXJue3Byb3BzOnQ/e2NmZzp0aGlzLiRwcm9wc306dGhpcy4kcHJvcHMsc3R5bGU6dGhpcy5oZWFkZXJTdHlsZSxjbGFzczp0aGlzLmhlYWRlckNsYXNzLG5hdGl2ZU9uOntjbGljazp0aGlzLl9fdG9nZ2xlSXRlbX19fX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuJHJvb3QuJG9uKGV2ZW50TmFtZSx0aGlzLl9fZXZlbnRIYW5kbGVyKSwodGhpcy5vcGVuZWR8fHRoaXMudmFsdWUpJiZ0aGlzLnNob3coKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuJHJvb3QuJG9mZihldmVudE5hbWUsdGhpcy5fX2V2ZW50SGFuZGxlcil9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCh0aGlzLnRhZyx7c3RhdGljQ2xhc3M6XCJxLWNvbGxhcHNpYmxlIHEtaXRlbS1kaXZpc2lvbiByZWxhdGl2ZS1wb3NpdGlvblwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNvbGxhcHNpYmxlLWlubmVyXCJ9LFt0aGlzLiRzbG90cy5oZWFkZXI/dChRSXRlbSx0aGlzLl9fZ2V0SXRlbVByb3BzKCksW3RoaXMuJHNsb3RzLmhlYWRlcix0KFFJdGVtU2lkZSx7cHJvcHM6e3JpZ2h0OiEwfSxzdGF0aWNDbGFzczpcInJlbGF0aXZlLXBvc2l0aW9uXCJ9LHRoaXMuX19nZXRUb2dnbGVTaWRlKHQpKV0pOnQoUUl0ZW1XcmFwcGVyLHRoaXMuX19nZXRJdGVtUHJvcHMoITApLHRoaXMuX19nZXRUb2dnbGVTaWRlKHQsITApKSx0KFFTbGlkZVRyYW5zaXRpb24se3Byb3BzOntkdXJhdGlvbjp0aGlzLmR1cmF0aW9ufX0sW3QoXCJkaXZcIix7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIsdmFsdWU6dGhpcy5zaG93aW5nfV19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xsYXBzaWJsZS1zdWItaXRlbSByZWxhdGl2ZS1wb3NpdGlvblwiLGNsYXNzOntpbmRlbnQ6dGhpcy5pbmRlbnR9fSx0aGlzLiRzbG90cy5kZWZhdWx0KV0pXSldKV0pfX0sRGlzcGxheU1vZGVNaXhpbj17cHJvcHM6e3BvcG92ZXI6Qm9vbGVhbixtb2RhbDpCb29sZWFufSxjb21wdXRlZDp7aXNQb3BvdmVyOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLnBvcG92ZXJ8fCF0aGlzLm1vZGFsJiYodGhpcy4kcS5wbGF0Zm9ybS5pcy5kZXNrdG9wJiYhdGhpcy4kcS5wbGF0Zm9ybS53aXRoaW4uaWZyYW1lKX19fTtmdW5jdGlvbiBnZXRQZXJjZW50YWdlKHQsZSxpKXt2YXIgcz1iZXR3ZWVuKChwb3NpdGlvbih0KS5sZWZ0LWUubGVmdCkvZS53aWR0aCwwLDEpO3JldHVybiBpPzEtczpzfWZ1bmN0aW9uIG5vdERpdmlkZXModCxlKXt2YXIgaT1lP3BhcnNlRmxvYXQodC50b0ZpeGVkKGUpKTp0O3JldHVybiBpIT09cGFyc2VJbnQoaSwxMCl9ZnVuY3Rpb24gZ2V0TW9kZWwodCxlLGkscyxuKXt2YXIgbz1lK3QqKGktZSkscj0oby1lKSVzO3JldHVybiBvKz0oTWF0aC5hYnMocik+PXMvMj8ocjwwPy0xOjEpKnM6MCktcixuJiYobz1wYXJzZUZsb2F0KG8udG9GaXhlZChuKSkpLGJldHdlZW4obyxlLGkpfXZhciBTbGlkZXJNaXhpbj17ZGlyZWN0aXZlczp7VG91Y2hQYW46VG91Y2hQYW59LHByb3BzOnttaW46e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MX0sbWF4Ont0eXBlOk51bWJlcixkZWZhdWx0OjV9LHN0ZXA6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MX0sZGVjaW1hbHM6TnVtYmVyLHNuYXA6Qm9vbGVhbixtYXJrZXJzOkJvb2xlYW4sbGFiZWw6Qm9vbGVhbixsYWJlbEFsd2F5czpCb29sZWFuLHNxdWFyZTpCb29sZWFuLGNvbG9yOlN0cmluZyxmaWxsSGFuZGxlQWx3YXlzOkJvb2xlYW4sZXJyb3I6Qm9vbGVhbix3YXJuaW5nOkJvb2xlYW4scmVhZG9ubHk6Qm9vbGVhbixkaXNhYmxlOkJvb2xlYW59LGNvbXB1dGVkOntlZGl0YWJsZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLmRpc2FibGUmJiF0aGlzLnJlYWRvbmx5fSxjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9e2Rpc2FibGVkOnRoaXMuZGlzYWJsZSxyZWFkb25seTp0aGlzLnJlYWRvbmx5LFwibGFiZWwtYWx3YXlzXCI6dGhpcy5sYWJlbEFsd2F5cyxcImhhcy1lcnJvclwiOnRoaXMuZXJyb3IsXCJoYXMtd2FybmluZ1wiOnRoaXMud2FybmluZ307cmV0dXJuIHRoaXMuZXJyb3J8fHRoaXMud2FybmluZ3x8IXRoaXMuY29sb3J8fCh0W1widGV4dC1cIit0aGlzLmNvbG9yXT0hMCksdH0sbWFya2Vyc0xlbjpmdW5jdGlvbigpe3JldHVybih0aGlzLm1heC10aGlzLm1pbikvdGhpcy5zdGVwKzF9LGxhYmVsQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcnJvcj9cIm5lZ2F0aXZlXCI6dGhpcy53YXJuaW5nP1wid2FybmluZ1wiOnRoaXMuY29sb3J8fFwicHJpbWFyeVwifSxjb21wdXRlZERlY2ltYWxzOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuZGVjaW1hbHM/dGhpcy5kZWNpbWFsc3x8MDooU3RyaW5nKHRoaXMuc3RlcCkudHJpbShcIjBcIikuc3BsaXQoXCIuXCIpWzFdfHxcIlwiKS5sZW5ndGh9LGNvbXB1dGVkU3RlcDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLmRlY2ltYWxzPzEvTWF0aC5wb3coMTAsdGhpcy5kZWNpbWFsc3x8MCk6dGhpcy5zdGVwfX0sbWV0aG9kczp7X19wYW46ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0LmlzRmluYWw/dGhpcy5kcmFnZ2luZyYmKHRoaXMuZHJhZ1RpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmRyYWdnaW5nPSExfSwxMDApLHRoaXMuX19lbmQodC5ldnQpLHRoaXMuX191cGRhdGUoITApKTp0LmlzRmlyc3Q/KGNsZWFyVGltZW91dCh0aGlzLmRyYWdUaW1lciksdGhpcy5kcmFnZ2luZz10aGlzLl9fZ2V0RHJhZ2dpbmcodC5ldnQpKTp0aGlzLmRyYWdnaW5nJiYodGhpcy5fX21vdmUodC5ldnQpLHRoaXMuX191cGRhdGUoKSl9LF9fdXBkYXRlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7SlNPTi5zdHJpbmdpZnkodGhpcy5tb2RlbCkhPT1KU09OLnN0cmluZ2lmeSh0aGlzLnZhbHVlKSYmKHRoaXMuJGVtaXQoXCJpbnB1dFwiLHRoaXMubW9kZWwpLHQmJnRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkoZS5tb2RlbCkhPT1KU09OLnN0cmluZ2lmeShlLnZhbHVlKSYmZS4kZW1pdChcImNoYW5nZVwiLGUubW9kZWwpfSkpfSxfX2NsaWNrOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLmRyYWdnaW5nKXt2YXIgZT10aGlzLl9fZ2V0RHJhZ2dpbmcodCk7ZSYmKHRoaXMuX19lbmQodCxlKSx0aGlzLl9fdXBkYXRlKCEwKSl9fSxfX2dldE1hcmtlcnM6ZnVuY3Rpb24odCl7aWYodGhpcy5tYXJrZXJzKXtmb3IodmFyIGU9W10saT0wO2k8dGhpcy5tYXJrZXJzTGVuO2krKyllLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2xpZGVyLW1hcmtcIixrZXk6XCJtYXJrZXJcIitpLHN0eWxlOntsZWZ0OjEwMCppKnRoaXMuc3RlcC8odGhpcy5tYXgtdGhpcy5taW4pK1wiJVwifX0pKTtyZXR1cm4gZX19fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5fX3ZhbGlkYXRlUHJvcHMoKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zbGlkZXIgbm9uLXNlbGVjdGFibGVcIixjbGFzczp0aGlzLmNsYXNzZXMsb246dGhpcy5lZGl0YWJsZT97Y2xpY2s6dGhpcy5fX2NsaWNrfTpudWxsLGRpcmVjdGl2ZXM6dGhpcy5lZGl0YWJsZT9be25hbWU6XCJ0b3VjaC1wYW5cIixtb2RpZmllcnM6e2hvcml6b250YWw6ITAscHJldmVudDohMCxzdG9wOiEwfSx2YWx1ZTp0aGlzLl9fcGFufV06bnVsbH0sW3QoXCJkaXZcIix7cmVmOlwiaGFuZGxlXCIsc3RhdGljQ2xhc3M6XCJxLXNsaWRlci1oYW5kbGUtY29udGFpbmVyXCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zbGlkZXItdHJhY2tcIn0pLHRoaXMuX19nZXRNYXJrZXJzKHQpXS5jb25jYXQodGhpcy5fX2dldENvbnRlbnQodCkpKV0pfX0sUVNsaWRlcj17bmFtZTpcIlFTbGlkZXJcIixtaXhpbnM6W1NsaWRlck1peGluXSxwcm9wczp7dmFsdWU6TnVtYmVyLGxhYmVsVmFsdWU6U3RyaW5nfSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue21vZGVsOnRoaXMudmFsdWUsZHJhZ2dpbmc6ITEsY3VycmVudFBlcmNlbnRhZ2U6KHRoaXMudmFsdWUtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbil9fSxjb21wdXRlZDp7cGVyY2VudGFnZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNuYXA/KHRoaXMubW9kZWwtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbikqMTAwK1wiJVwiOjEwMCp0aGlzLmN1cnJlbnRQZXJjZW50YWdlK1wiJVwifSxkaXNwbGF5VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5sYWJlbFZhbHVlP3RoaXMubGFiZWxWYWx1ZTp0aGlzLm1vZGVsfX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuZHJhZ2dpbmd8fCh0PHRoaXMubWluP3RoaXMubW9kZWw9dGhpcy5taW46dD50aGlzLm1heD90aGlzLm1vZGVsPXRoaXMubWF4OnRoaXMubW9kZWw9dCx0aGlzLmN1cnJlbnRQZXJjZW50YWdlPSh0aGlzLm1vZGVsLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pKX0sbWluOmZ1bmN0aW9uKHQpe3RoaXMubW9kZWw8dD90aGlzLm1vZGVsPXQ6dGhpcy4kbmV4dFRpY2sodGhpcy5fX3ZhbGlkYXRlUHJvcHMpfSxtYXg6ZnVuY3Rpb24odCl7dGhpcy5tb2RlbD50P3RoaXMubW9kZWw9dDp0aGlzLiRuZXh0VGljayh0aGlzLl9fdmFsaWRhdGVQcm9wcyl9LHN0ZXA6ZnVuY3Rpb24oKXt0aGlzLiRuZXh0VGljayh0aGlzLl9fdmFsaWRhdGVQcm9wcyl9fSxtZXRob2RzOntfX2dldERyYWdnaW5nOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuJHJlZnMuaGFuZGxlO3JldHVybntsZWZ0OmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCx3aWR0aDplLm9mZnNldFdpZHRofX0sX19tb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPWdldFBlcmNlbnRhZ2UodCx0aGlzLmRyYWdnaW5nLHRoaXMuJHEuaTE4bi5ydGwpO3RoaXMuY3VycmVudFBlcmNlbnRhZ2U9ZSx0aGlzLm1vZGVsPWdldE1vZGVsKGUsdGhpcy5taW4sdGhpcy5tYXgsdGhpcy5zdGVwLHRoaXMuY29tcHV0ZWREZWNpbWFscyl9LF9fZW5kOmZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9dGhpcy5kcmFnZ2luZyk7dmFyIGk9Z2V0UGVyY2VudGFnZSh0LGUsdGhpcy4kcS5pMThuLnJ0bCk7dGhpcy5tb2RlbD1nZXRNb2RlbChpLHRoaXMubWluLHRoaXMubWF4LHRoaXMuc3RlcCx0aGlzLmNvbXB1dGVkRGVjaW1hbHMpLHRoaXMuY3VycmVudFBlcmNlbnRhZ2U9KHRoaXMubW9kZWwtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbil9LF9fb25LZXlEb3duOmZ1bmN0aW9uKHQpe3ZhciBlPXQua2V5Q29kZTtpZih0aGlzLmVkaXRhYmxlJiZbMzcsNDAsMzksMzhdLmluY2x1ZGVzKGUpKXtzdG9wQW5kUHJldmVudCh0KTt2YXIgaT10aGlzLmNvbXB1dGVkRGVjaW1hbHMscz10LmN0cmxLZXk/MTAqdGhpcy5jb21wdXRlZFN0ZXA6dGhpcy5jb21wdXRlZFN0ZXAsbj1bMzcsNDBdLmluY2x1ZGVzKGUpPy1zOnMsbz1pP3BhcnNlRmxvYXQoKHRoaXMubW9kZWwrbikudG9GaXhlZChpKSk6dGhpcy5tb2RlbCtuO3RoaXMubW9kZWw9YmV0d2VlbihvLHRoaXMubWluLHRoaXMubWF4KSx0aGlzLmN1cnJlbnRQZXJjZW50YWdlPSh0aGlzLm1vZGVsLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pLHRoaXMuX191cGRhdGUoKX19LF9fb25LZXlVcDpmdW5jdGlvbih0KXt2YXIgZT10LmtleUNvZGU7dGhpcy5lZGl0YWJsZSYmWzM3LDQwLDM5LDM4XS5pbmNsdWRlcyhlKSYmdGhpcy5fX3VwZGF0ZSghMCl9LF9fdmFsaWRhdGVQcm9wczpmdW5jdGlvbigpe3RoaXMubWluPj10aGlzLm1heD9jb25zb2xlLmVycm9yKFwiUmFuZ2UgZXJyb3I6IG1pbiA+PSBtYXhcIix0aGlzLiRlbCx0aGlzLm1pbix0aGlzLm1heCk6bm90RGl2aWRlcygodGhpcy5tYXgtdGhpcy5taW4pL3RoaXMuc3RlcCx0aGlzLmNvbXB1dGVkRGVjaW1hbHMpJiZjb25zb2xlLmVycm9yKFwiUmFuZ2UgZXJyb3I6IHN0ZXAgbXVzdCBiZSBhIGRpdmlzb3Igb2YgbWF4IC0gbWluXCIsdGhpcy5taW4sdGhpcy5tYXgsdGhpcy5zdGVwLHRoaXMuY29tcHV0ZWREZWNpbWFscyl9LF9fZ2V0Q29udGVudDpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm5bdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2xpZGVyLXRyYWNrIGFjdGl2ZS10cmFja1wiLHN0eWxlOnt3aWR0aDp0aGlzLnBlcmNlbnRhZ2V9LGNsYXNzOntcIm5vLXRyYW5zaXRpb25cIjp0aGlzLmRyYWdnaW5nLFwiaGFuZGxlLWF0LW1pbmltdW1cIjp0aGlzLm1vZGVsPT09dGhpcy5taW59fSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2xpZGVyLWhhbmRsZVwiLHN0eWxlOihlPXt9LGVbdGhpcy4kcS5pMThuLnJ0bD9cInJpZ2h0XCI6XCJsZWZ0XCJdPXRoaXMucGVyY2VudGFnZSxlLmJvcmRlclJhZGl1cz10aGlzLnNxdWFyZT9cIjBcIjpcIjUwJVwiLGUpLGNsYXNzOntkcmFnZ2luZzp0aGlzLmRyYWdnaW5nLFwiaGFuZGxlLWF0LW1pbmltdW1cIjohdGhpcy5maWxsSGFuZGxlQWx3YXlzJiZ0aGlzLm1vZGVsPT09dGhpcy5taW59LGF0dHJzOnt0YWJpbmRleDp0aGlzLiRxLnBsYXRmb3JtLmlzLmRlc2t0b3A/dGhpcy5lZGl0YWJsZT8wOi0xOnZvaWQgMH0sb246e2tleWRvd246dGhpcy5fX29uS2V5RG93bixrZXl1cDp0aGlzLl9fb25LZXlVcH19LFt0aGlzLmxhYmVsfHx0aGlzLmxhYmVsQWx3YXlzP3QoUUNoaXAse3N0YXRpY0NsYXNzOlwicS1zbGlkZXItbGFiZWwgbm8tcG9pbnRlci1ldmVudHNcIixjbGFzczp7XCJsYWJlbC1hbHdheXNcIjp0aGlzLmxhYmVsQWx3YXlzfSxwcm9wczp7cG9pbnRpbmc6XCJkb3duXCIsc3F1YXJlOiEwLGRlbnNlOiEwLGNvbG9yOnRoaXMubGFiZWxDb2xvcn19LFt0aGlzLmRpc3BsYXlWYWx1ZV0pOm51bGwsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2xpZGVyLXJpbmdcIn0pXSldfX19O2Z1bmN0aW9uIHRocm90dGxlKHQsZSl7dm9pZCAwPT09ZSYmKGU9MjUwKTt2YXIgaSxzPSExO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgbj1bXSxvPWFyZ3VtZW50cy5sZW5ndGg7by0tOyluW29dPWFyZ3VtZW50c1tvXTtyZXR1cm4gcz9pOihzPSEwLGk9dC5hcHBseSh0aGlzLG4pLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtzPSExfSxlKSxpKX19ZnVuY3Rpb24gY2xvbmUodCl7dmFyIGU9SlNPTi5zdHJpbmdpZnkodCk7aWYoZSlyZXR1cm4gSlNPTi5wYXJzZShlKX12YXIgUUNvbG9yUGlja2VyPXtuYW1lOlwiUUNvbG9yUGlja2VyXCIsbWl4aW5zOltQYXJlbnRGaWVsZE1peGluXSxkaXJlY3RpdmVzOntUb3VjaFBhbjpUb3VjaFBhbn0scHJvcHM6e3ZhbHVlOltTdHJpbmcsT2JqZWN0XSxkZWZhdWx0VmFsdWU6e3R5cGU6W1N0cmluZyxPYmplY3RdLGRlZmF1bHQ6bnVsbH0sZm9ybWF0TW9kZWw6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJhdXRvXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcImF1dG9cIixcImhleFwiLFwicmdiXCIsXCJoZXhhXCIsXCJyZ2JhXCJdLmluY2x1ZGVzKHQpfX0sZGlzYWJsZTpCb29sZWFuLHJlYWRvbmx5OkJvb2xlYW4sZGFyazpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3ZpZXc6dGhpcy52YWx1ZSYmXCJzdHJpbmdcIiE9dHlwZW9mIHRoaXMudmFsdWU/XCJyZ2JcIjpcImhleFwiLG1vZGVsOnRoaXMuX19wYXJzZU1vZGVsKHRoaXMudmFsdWV8fHRoaXMuZGVmYXVsdFZhbHVlKX19LHdhdGNoOnt2YWx1ZTp7aGFuZGxlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fcGFyc2VNb2RlbCh0fHx0aGlzLmRlZmF1bHRWYWx1ZSk7ZS5oZXghPT10aGlzLm1vZGVsLmhleCYmKHRoaXMubW9kZWw9ZSl9LGRlZXA6ITB9fSxjb21wdXRlZDp7Zm9yY2VIZXg6ZnVuY3Rpb24oKXtyZXR1cm5cImF1dG9cIj09PXRoaXMuZm9ybWF0TW9kZWw/bnVsbDp0aGlzLmZvcm1hdE1vZGVsLmluZGV4T2YoXCJoZXhcIik+LTF9LGZvcmNlQWxwaGE6ZnVuY3Rpb24oKXtyZXR1cm5cImF1dG9cIj09PXRoaXMuZm9ybWF0TW9kZWw/bnVsbDp0aGlzLmZvcm1hdE1vZGVsLmluZGV4T2YoXCJhXCIpPi0xfSxpc0hleDpmdW5jdGlvbigpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0aGlzLnZhbHVlfSxpc091dHB1dEhleDpmdW5jdGlvbigpe3JldHVybiBudWxsIT09dGhpcy5mb3JjZUhleD90aGlzLmZvcmNlSGV4OnRoaXMuaXNIZXh9LGVkaXRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZGlzYWJsZSYmIXRoaXMucmVhZG9ubHl9LGhhc0FscGhhOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT10aGlzLmZvcmNlQWxwaGE/dGhpcy5mb3JjZUFscGhhOnRoaXMuaXNIZXg/dGhpcy52YWx1ZS50cmltKCkubGVuZ3RoPjc6dGhpcy52YWx1ZSYmdm9pZCAwIT09dGhpcy52YWx1ZS5hfSxzd2F0Y2hDb2xvcjpmdW5jdGlvbigpe3JldHVybntiYWNrZ3JvdW5kQ29sb3I6XCJyZ2JhKFwiK3RoaXMubW9kZWwucitcIixcIit0aGlzLm1vZGVsLmcrXCIsXCIrdGhpcy5tb2RlbC5iK1wiLFwiKyh2b2lkIDA9PT10aGlzLm1vZGVsLmE/MTAwOnRoaXMubW9kZWwuYSkvMTAwK1wiKVwifX0sc2F0dXJhdGlvblN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJue2JhY2tncm91bmQ6XCJoc2woXCIrdGhpcy5tb2RlbC5oK1wiLDEwMCUsNTAlKVwifX0sc2F0dXJhdGlvblBvaW50ZXJTdHlsZTpmdW5jdGlvbigpe3ZhciB0O3JldHVybih0PXt0b3A6MTAxLXRoaXMubW9kZWwuditcIiVcIn0pW3RoaXMuJHEuaTE4bi5ydGw/XCJyaWdodFwiOlwibGVmdFwiXT10aGlzLm1vZGVsLnMrXCIlXCIsdH0saW5wdXRzQXJyYXk6ZnVuY3Rpb24oKXt2YXIgdD1bXCJyXCIsXCJnXCIsXCJiXCJdO3JldHVybiB0aGlzLmhhc0FscGhhJiZ0LnB1c2goXCJhXCIpLHR9LF9fbmVlZHNCb3JkZXI6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLl9fc2F0dXJhdGlvbkNoYW5nZT10aHJvdHRsZSh0aGlzLl9fc2F0dXJhdGlvbkNoYW5nZSwyMCl9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY29sb3JcIixjbGFzczp7ZGlzYWJsZWQ6dGhpcy5kaXNhYmxlLFwicS1jb2xvci1kYXJrXCI6dGhpcy5kYXJrfX0sW3RoaXMuX19nZXRTYXR1cmF0aW9uKHQpLHRoaXMuX19nZXRTbGlkZXJzKHQpLHRoaXMuX19nZXRJbnB1dHModCldKX0sbWV0aG9kczp7X19nZXRTYXR1cmF0aW9uOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3JlZjpcInNhdHVyYXRpb25cIixzdGF0aWNDbGFzczpcInEtY29sb3Itc2F0dXJhdGlvbiBub24tc2VsZWN0YWJsZSByZWxhdGl2ZS1wb3NpdGlvbiBvdmVyZmxvdy1oaWRkZW4gY3Vyc29yLXBvaW50ZXJcIixzdHlsZTp0aGlzLnNhdHVyYXRpb25TdHlsZSxjbGFzczp7cmVhZG9ubHk6IXRoaXMuZWRpdGFibGV9LG9uOnRoaXMuZWRpdGFibGU/e2NsaWNrOnRoaXMuX19zYXR1cmF0aW9uQ2xpY2t9Om51bGwsZGlyZWN0aXZlczp0aGlzLmVkaXRhYmxlP1t7bmFtZTpcInRvdWNoLXBhblwiLG1vZGlmaWVyczp7bWlnaHRQcmV2ZW50OiEwfSx2YWx1ZTp0aGlzLl9fc2F0dXJhdGlvblBhbn1dOm51bGx9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xvci1zYXR1cmF0aW9uLXdoaXRlIGFic29sdXRlLWZ1bGxcIn0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNvbG9yLXNhdHVyYXRpb24tYmxhY2sgYWJzb2x1dGUtZnVsbFwifSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImFic29sdXRlXCIsc3R5bGU6dGhpcy5zYXR1cmF0aW9uUG9pbnRlclN0eWxlfSxbdm9pZCAwIT09dGhpcy5tb2RlbC5oZXg/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY29sb3Itc2F0dXJhdGlvbi1jaXJjbGVcIn0pOm51bGxdKV0pfSxfX2dldFNsaWRlcnM6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY29sb3Itc2xpZGVycyByb3cgaXRlbXMtY2VudGVyXCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xvci1zd2F0Y2ggcS1tdC1zbSBxLW1sLW1kIHEtbWItc20gbm9uLXNlbGVjdGFibGUgb3ZlcmZsb3ctaGlkZGVuXCJ9LFt0KFwiZGl2XCIse3N0eWxlOnRoaXMuc3dhdGNoQ29sb3Isc3RhdGljQ2xhc3M6XCJmaXRcIn0pXSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCBxLXBhLXNtXCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xvci1odWUgbm9uLXNlbGVjdGFibGVcIn0sW3QoUVNsaWRlcix7cHJvcHM6e3ZhbHVlOnRoaXMubW9kZWwuaCxjb2xvcjpcIndoaXRlXCIsbWluOjAsbWF4OjM2MCxmaWxsSGFuZGxlQWx3YXlzOiEwLHJlYWRvbmx5OiF0aGlzLmVkaXRhYmxlfSxvbjp7aW5wdXQ6dGhpcy5fX29uSHVlQ2hhbmdlLGRyYWdlbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIGUuX19vbkh1ZUNoYW5nZSh0LCEwKX19fSldKSx0aGlzLmhhc0FscGhhP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNvbG9yLWFscGhhIG5vbi1zZWxlY3RhYmxlXCJ9LFt0KFFTbGlkZXIse3Byb3BzOnt2YWx1ZTp0aGlzLm1vZGVsLmEsY29sb3I6XCJ3aGl0ZVwiLG1pbjowLG1heDoxMDAsZmlsbEhhbmRsZUFsd2F5czohMCxyZWFkb25seTohdGhpcy5lZGl0YWJsZX0sb246e2lucHV0OmZ1bmN0aW9uKHQpe3JldHVybiBlLl9fb25OdW1lcmljQ2hhbmdlKHt0YXJnZXQ6e3ZhbHVlOnR9fSxcImFcIiwxMDApfSxkcmFnZW5kOmZ1bmN0aW9uKHQpe3JldHVybiBlLl9fb25OdW1lcmljQ2hhbmdlKHt0YXJnZXQ6e3ZhbHVlOnR9fSxcImFcIiwxMDAsITApfX19KV0pOm51bGxdKV0pfSxfX2dldE51bWVyaWNJbnB1dHM6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5pbnB1dHNBcnJheS5tYXAoZnVuY3Rpb24oaSl7dmFyIHM9XCJhXCI9PT1pPzEwMDoyNTU7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgcS1jb2xvci1wYWRkaW5nXCJ9LFt0KFwiaW5wdXRcIix7YXR0cnM6e3R5cGU6XCJudW1iZXJcIixtaW46MCxtYXg6cyxyZWFkb25seTohZS5lZGl0YWJsZSx0YWJpbmRleDplLmVkaXRhYmxlPzA6LTF9LHN0YXRpY0NsYXNzOlwiZnVsbC13aWR0aCB0ZXh0LWNlbnRlciBxLW5vLWlucHV0LXNwaW5uZXJcIixkb21Qcm9wczp7dmFsdWU6dm9pZCAwPT09ZS5tb2RlbC5oZXg/XCJcIjpNYXRoLnJvdW5kKGUubW9kZWxbaV0pfSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGUuX19vbk51bWVyaWNDaGFuZ2UodCxpLHMpfSxibHVyOmZ1bmN0aW9uKHQpe3JldHVybiBlLmVkaXRhYmxlJiZlLl9fb25OdW1lcmljQ2hhbmdlKHQsaSxzLCEwKX19fSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY29sb3ItbGFiZWwgdGV4dC1jZW50ZXIgdXBwZXJjYXNlXCJ9LFtpXSldKX0pfSxfX2dldElucHV0czpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xvci1pbnB1dHMgcm93IGl0ZW1zLWNlbnRlciBxLXB4LXNtIHEtcGItc21cIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgcS1tci1zbSByb3cgbm8td3JhcFwifSxcImhleFwiPT09dGhpcy52aWV3P1t0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sXCJ9LFt0KFwiaW5wdXRcIix7ZG9tUHJvcHM6e3ZhbHVlOnRoaXMubW9kZWwuaGV4fSxhdHRyczp7cmVhZG9ubHk6IXRoaXMuZWRpdGFibGUsdGFiaW5kZXg6dGhpcy5lZGl0YWJsZT8wOi0xfSxvbjp7Y2hhbmdlOnRoaXMuX19vbkhleENoYW5nZSxibHVyOmZ1bmN0aW9uKHQpe3JldHVybiBlLmVkaXRhYmxlJiZlLl9fb25IZXhDaGFuZ2UodCwhMCl9fSxzdGF0aWNDbGFzczpcImZ1bGwtd2lkdGggdGV4dC1jZW50ZXIgdXBwZXJjYXNlXCJ9KSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xvci1sYWJlbCB0ZXh0LWNlbnRlclwifSxbXCJIRVhcIisodGhpcy5oYXNBbHBoYT9cIiAvIEFcIjpcIlwiKV0pXSldOnRoaXMuX19nZXROdW1lcmljSW5wdXRzKHQpKSx0KFwiZGl2XCIsW3QoUUJ0bix7cHJvcHM6e2ZsYXQ6ITAsZGlzYWJsZTp0aGlzLmRpc2FibGV9LG9uOntjbGljazp0aGlzLl9fbmV4dElucHV0Vmlld30sc3RhdGljQ2xhc3M6XCJxLXBhLW5vbmVcIn0sW3QoXCJzdmdcIix7YXR0cnM6e3ZpZXdCb3g6XCIwIDAgMjQgMjRcIn0sc3R5bGU6e3dpZHRoOlwiMjRweFwiLGhlaWdodDpcIjI0cHhcIn19LFt0KFwicGF0aFwiLHthdHRyczp7ZmlsbDpcImN1cnJlbnRDb2xvclwiLGQ6XCJNMTIsMTguMTdMOC44MywxNUw3LjQyLDE2LjQxTDEyLDIxTDE2LjU5LDE2LjQxTDE1LjE3LDE1TTEyLDUuODNMMTUuMTcsOUwxNi41OCw3LjU5TDEyLDNMNy40MSw3LjU5TDguODMsOUwxMiw1LjgzWlwifX0pXSldKV0pXSl9LF9fb25TYXR1cmF0aW9uQ2hhbmdlOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzLiRyZWZzLnNhdHVyYXRpb247aWYocyl7dmFyIG49cy5jbGllbnRXaWR0aCxvPXMuY2xpZW50SGVpZ2h0LHI9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPU1hdGgubWluKG4sTWF0aC5tYXgoMCx0LXIubGVmdCkpO3RoaXMuJHEuaTE4bi5ydGwmJihhPW4tYSk7dmFyIGw9TWF0aC5taW4obyxNYXRoLm1heCgwLGUtci50b3ApKSxjPU1hdGgucm91bmQoMTAwKmEvbiksaD1NYXRoLnJvdW5kKDEwMCpNYXRoLm1heCgwLE1hdGgubWluKDEsLWwvbysxKSkpLHU9aHN2VG9SZ2Ioe2g6dGhpcy5tb2RlbC5oLHM6Yyx2OmgsYTp0aGlzLmhhc0FscGhhP3RoaXMubW9kZWwuYTp2b2lkIDB9KTt0aGlzLm1vZGVsLnM9Yyx0aGlzLm1vZGVsLnY9aCx0aGlzLl9fdXBkYXRlKHUscmdiVG9IZXgodSksaSl9fSxfX29uSHVlQ2hhbmdlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9aHN2VG9SZ2Ioe2g6dD1NYXRoLnJvdW5kKHQpLHM6dGhpcy5tb2RlbC5zLHY6dGhpcy5tb2RlbC52LGE6dGhpcy5oYXNBbHBoYT90aGlzLm1vZGVsLmE6dm9pZCAwfSk7dGhpcy5tb2RlbC5oPXQsdGhpcy5fX3VwZGF0ZShpLHJnYlRvSGV4KGkpLGUpfSxfX29uTnVtZXJpY0NoYW5nZTpmdW5jdGlvbih0LGUsaSxzKXt2YXIgbj1OdW1iZXIodC50YXJnZXQudmFsdWUpO2lmKCFpc05hTihuKSlpZigobj1NYXRoLmZsb29yKG4pKTwwfHxuPmkpcyYmdGhpcy4kZm9yY2VVcGRhdGUoKTtlbHNle3ZhciBvPXtyOlwiclwiPT09ZT9uOnRoaXMubW9kZWwucixnOlwiZ1wiPT09ZT9uOnRoaXMubW9kZWwuZyxiOlwiYlwiPT09ZT9uOnRoaXMubW9kZWwuYixhOnRoaXMuaGFzQWxwaGE/XCJhXCI9PT1lP246dGhpcy5tb2RlbC5hOnZvaWQgMH07aWYoXCJhXCIhPT1lKXt2YXIgcj1yZ2JUb0hzdihvKTt0aGlzLm1vZGVsLmg9ci5oLHRoaXMubW9kZWwucz1yLnMsdGhpcy5tb2RlbC52PXIudn10aGlzLl9fdXBkYXRlKG8scmdiVG9IZXgobykscyl9fSxfX29uSGV4Q2hhbmdlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dC50YXJnZXQudmFsdWUscz1pLmxlbmd0aCxuPXRoaXMuaGFzQWxwaGE/WzUsOV06WzQsN107aWYocz09PW5bMF18fHM9PT1uWzFdKXt2YXIgbz1oZXhUb1JnYihpKSxyPXJnYlRvSHN2KG8pO3RoaXMubW9kZWwuaD1yLmgsdGhpcy5tb2RlbC5zPXIucyx0aGlzLm1vZGVsLnY9ci52LHRoaXMuX191cGRhdGUobyxpLGUpfWVsc2UgZSYmdGhpcy4kZm9yY2VVcGRhdGUoKX0sX191cGRhdGU6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXMsbj10aGlzLmlzT3V0cHV0SGV4P2U6dDt0aGlzLm1vZGVsLmhleD1lLHRoaXMubW9kZWwucj10LnIsdGhpcy5tb2RlbC5nPXQuZyx0aGlzLm1vZGVsLmI9dC5iLHRoaXMubW9kZWwuYT10aGlzLmhhc0FscGhhP3QuYTp2b2lkIDAsdGhpcy4kZW1pdChcImlucHV0XCIsbiksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtpJiZKU09OLnN0cmluZ2lmeShuKSE9PUpTT04uc3RyaW5naWZ5KHMudmFsdWUpJiZzLiRlbWl0KFwiY2hhbmdlXCIsbil9KX0sX19uZXh0SW5wdXRWaWV3OmZ1bmN0aW9uKCl7dGhpcy52aWV3PVwiaGV4XCI9PT10aGlzLnZpZXc/XCJyZ2JhXCI6XCJoZXhcIn0sX19wYXJzZU1vZGVsOmZ1bmN0aW9uKHQpe2lmKG51bGw9PT10fHx2b2lkIDA9PT10KXJldHVybntoOjAsczowLHY6MCxyOjAsZzowLGI6MCxoZXg6dm9pZCAwLGE6MTAwfTt2YXIgZT1cInN0cmluZ1wiPT10eXBlb2YgdD9oZXhUb1JnYih0LnRyaW0oKSk6Y2xvbmUodCk7cmV0dXJuIHRoaXMuZm9yY2VBbHBoYT09PSh2b2lkIDA9PT1lLmEpJiYoZS5hPXRoaXMuZm9yY2VBbHBoYT8xMDA6dm9pZCAwKSxlLmhleD1yZ2JUb0hleChlKSxPYmplY3QuYXNzaWduKHthOjEwMH0sZSxyZ2JUb0hzdihlKSl9LF9fc2F0dXJhdGlvblBhbjpmdW5jdGlvbih0KXt0LmlzRmluYWw/dGhpcy5fX2RyYWdTdG9wKHQpOnQuaXNGaXJzdD90aGlzLl9fZHJhZ1N0YXJ0KHQpOnRoaXMuX19kcmFnTW92ZSh0KX0sX19kcmFnU3RhcnQ6ZnVuY3Rpb24odCl7c3RvcEFuZFByZXZlbnQodC5ldnQpLHRoaXMuc2F0dXJhdGlvbkRyYWdnaW5nPSEwLHRoaXMuX19zYXR1cmF0aW9uQ2hhbmdlKHQpfSxfX2RyYWdNb3ZlOmZ1bmN0aW9uKHQpe3RoaXMuc2F0dXJhdGlvbkRyYWdnaW5nJiYoc3RvcEFuZFByZXZlbnQodC5ldnQpLHRoaXMuX19zYXR1cmF0aW9uQ2hhbmdlKHQpKX0sX19kcmFnU3RvcDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3N0b3BBbmRQcmV2ZW50KHQuZXZ0KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5zYXR1cmF0aW9uRHJhZ2dpbmc9ITF9LDEwMCksdGhpcy5fX29uU2F0dXJhdGlvbkNoYW5nZSh0LnBvc2l0aW9uLmxlZnQsdC5wb3NpdGlvbi50b3AsITApfSxfX3NhdHVyYXRpb25DaGFuZ2U6ZnVuY3Rpb24odCl7dGhpcy5fX29uU2F0dXJhdGlvbkNoYW5nZSh0LnBvc2l0aW9uLmxlZnQsdC5wb3NpdGlvbi50b3ApfSxfX3NhdHVyYXRpb25DbGljazpmdW5jdGlvbih0KXt0aGlzLnNhdHVyYXRpb25EcmFnZ2luZ3x8dGhpcy5fX29uU2F0dXJhdGlvbkNoYW5nZSh0LnBhZ2VYLXdpbmRvdy5wYWdlWE9mZnNldCx0LnBhZ2VZLXdpbmRvdy5wYWdlWU9mZnNldCwhMCl9fX0sY29udGVudENzcz17bWF4V2lkdGg6XCI5NXZ3XCIsbWF4SGVpZ2h0OlwiOTh2aFwifSxRQ29sb3I9e25hbWU6XCJRQ29sb3JcIixtaXhpbnM6W0ZyYW1lTWl4aW4sRGlzcGxheU1vZGVNaXhpbl0scHJvcHM6e3ZhbHVlOntyZXF1aXJlZDohMH0sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LGRlZmF1bHRWYWx1ZTp7dHlwZTpbU3RyaW5nLE9iamVjdF0sZGVmYXVsdDpudWxsfSxmb3JtYXRNb2RlbDp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImF1dG9cIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wiYXV0b1wiLFwiaGV4XCIsXCJyZ2JcIixcImhleGFcIixcInJnYmFcIl0uaW5jbHVkZXModCl9fSxkaXNwbGF5VmFsdWU6U3RyaW5nLG9rTGFiZWw6U3RyaW5nLGNhbmNlbExhYmVsOlN0cmluZ30sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpeyF0aGlzLmRpc2FibGUmJnRoaXMuaXNQb3BvdmVyJiYodGhpcy5tb2RlbD1jbG9uZSh0KSl9fSxkYXRhOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5pc1BvcG92ZXI/e306e3RyYW5zaXRpb246XCJxLW1vZGFsXCJ9O3JldHVybiB0LmZvY3VzZWQ9ITEsdC5tb2RlbD1jbG9uZSh0aGlzLnZhbHVlfHx0aGlzLmRlZmF1bHRWYWx1ZSksdH0sY29tcHV0ZWQ6e2FjdHVhbFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGlzcGxheVZhbHVlP3RoaXMuZGlzcGxheVZhbHVlOnRoaXMudmFsdWU/XCJzdHJpbmdcIj09dHlwZW9mIHRoaXMudmFsdWU/dGhpcy52YWx1ZTpcInJnYlwiKyh2b2lkIDAhPT10aGlzLnZhbHVlLmE/XCJhXCI6XCJcIikrXCIoXCIrdGhpcy52YWx1ZS5yK1wiLFwiK3RoaXMudmFsdWUuZytcIixcIit0aGlzLnZhbHVlLmIrKHZvaWQgMCE9PXRoaXMudmFsdWUuYT9cIixcIit0aGlzLnZhbHVlLmEvMTAwOlwiXCIpK1wiKVwiOlwiXCJ9LGNvbXB1dGVkQ2xlYXJWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzLmNsZWFyVmFsdWU/dGhpcy5kZWZhdWx0VmFsdWU6dGhpcy5jbGVhclZhbHVlfSxpc0NsZWFyYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkaXRhYmxlJiZ0aGlzLmNsZWFyYWJsZSYmSlNPTi5zdHJpbmdpZnkodGhpcy5jb21wdXRlZENsZWFyVmFsdWUpIT09SlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSl9LG1vZGFsQnRuQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb2xvcn19LG1ldGhvZHM6e3RvZ2dsZTpmdW5jdGlvbigpe3RoaXMuJHJlZnMucG9wdXAmJnRoaXNbdGhpcy4kcmVmcy5wb3B1cC5zaG93aW5nP1wiaGlkZVwiOlwic2hvd1wiXSgpfSxzaG93OmZ1bmN0aW9uKCl7aWYoIXRoaXMuZGlzYWJsZSlyZXR1cm4gdGhpcy5fX3NldE1vZGVsKHRoaXMudmFsdWV8fHRoaXMuZGVmYXVsdFZhbHVlKSx0aGlzLiRyZWZzLnBvcHVwLnNob3coKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRyZWZzLnBvcHVwP3RoaXMuJHJlZnMucG9wdXAuaGlkZSgpOlByb21pc2UucmVzb2x2ZSgpfSxfX2hhbmRsZUtleURvd246ZnVuY3Rpb24odCl7c3dpdGNoKGdldEV2ZW50S2V5KHQpKXtjYXNlIDEzOmNhc2UgMzI6cmV0dXJuIHN0b3BBbmRQcmV2ZW50KHQpLHRoaXMuc2hvdygpO2Nhc2UgODp0aGlzLmlzQ2xlYXJhYmxlJiZ0aGlzLmNsZWFyKCl9fSxfX29uRm9jdXM6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGV8fHRoaXMuZm9jdXNlZHx8KHRoaXMubW9kZWw9Y2xvbmUodGhpcy52YWx1ZXx8dGhpcy5kZWZhdWx0VmFsdWUpLHRoaXMuZm9jdXNlZD0hMCx0aGlzLiRlbWl0KFwiZm9jdXNcIikpfSxfX29uQmx1cjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuZm9jdXNlZCYmc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7ZS4kcmVmcy5wb3B1cCYmZS4kcmVmcy5wb3B1cC5zaG93aW5nJiYodD09PWRvY3VtZW50LmJvZHl8fGUuJHJlZnMucG9wdXAuJGVsLmNvbnRhaW5zKHQpKXx8KGUuX19vbkhpZGUoKSxlLmhpZGUoKSl9LDEpfSxfX29uSGlkZTpmdW5jdGlvbih0LGUpeyh0fHx0aGlzLmlzUG9wb3ZlcikmJnRoaXMuX191cGRhdGUodCksdGhpcy5mb2N1c2VkJiYoZT90aGlzLiRlbC5mb2N1cygpOih0aGlzLiRlbWl0KFwiYmx1clwiKSx0aGlzLmZvY3VzZWQ9ITEpKX0sX19zZXRNb2RlbDpmdW5jdGlvbih0LGUpe3RoaXMubW9kZWw9Y2xvbmUodCksKGV8fHRoaXMuaXNQb3BvdmVyKSYmdGhpcy5fX3VwZGF0ZShlKX0sX19oYXNNb2RlbENoYW5nZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5tb2RlbCkhPT1KU09OLnN0cmluZ2lmeSh0aGlzLnZhbHVlKX0sX191cGRhdGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe2UuX19oYXNNb2RlbENoYW5nZWQoKSYmKGUuJGVtaXQoXCJpbnB1dFwiLGUubW9kZWwpLHQmJmUuJGVtaXQoXCJjaGFuZ2VcIixlLm1vZGVsKSl9KX0sX19nZXRQaWNrZXI6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLHM9W3QoUUNvbG9yUGlja2VyLHtzdGF0aWNDbGFzczpcIm5vLWJvcmRlclwiKyhlP1wiIGZ1bGwtd2lkdGhcIjpcIlwiKSxwcm9wczpPYmplY3QuYXNzaWduKHt9LHRoaXMuJGF0dHJzLHt2YWx1ZTp0aGlzLm1vZGVsLGRpc2FibGU6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHksZm9ybWF0TW9kZWw6dGhpcy5mb3JtYXRNb2RlbCxkYXJrOnRoaXMuZGFyayxub1BhcmVudEZpZWxkOiEwfSksb246e2lucHV0OmZ1bmN0aW9uKHQpe3JldHVybiBpLiRuZXh0VGljayhmdW5jdGlvbigpe3JldHVybiBpLl9fc2V0TW9kZWwodCl9KX19fSldO3JldHVybiBlJiZzLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcIm1vZGFsLWJ1dHRvbnMgbW9kYWwtYnV0dG9ucy10b3Agcm93IGZ1bGwtd2lkdGhcIixjbGFzczp0aGlzLmRhcms/XCJiZy1ibGFja1wiOm51bGx9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sXCJ9KSx0KFFCdG4se3Byb3BzOntjb2xvcjp0aGlzLm1vZGFsQnRuQ29sb3IsZmxhdDohMCxsYWJlbDp0aGlzLmNhbmNlbExhYmVsfHx0aGlzLiRxLmkxOG4ubGFiZWwuY2FuY2VsLG5vUmlwcGxlOiEwfSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtpLl9fb25IaWRlKCExLCEwKSxpLmhpZGUoKX19fSksdGhpcy5lZGl0YWJsZT90KFFCdG4se3Byb3BzOntjb2xvcjp0aGlzLm1vZGFsQnRuQ29sb3IsZmxhdDohMCxsYWJlbDp0aGlzLm9rTGFiZWx8fHRoaXMuJHEuaTE4bi5sYWJlbC5zZXQsbm9SaXBwbGU6ITAsZGlzYWJsZTohdGhpcy5tb2RlbH0sb246e2NsaWNrOmZ1bmN0aW9uKCl7aS5fX29uSGlkZSghMCwhMCksaS5oaWRlKCl9fX0pOm51bGxdKSksc319LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFFJbnB1dEZyYW1lLHtzdGF0aWNDbGFzczpcInEtY29sb3ItaW5wdXRcIixwcm9wczp7cHJlZml4OnRoaXMucHJlZml4LHN1ZmZpeDp0aGlzLnN1ZmZpeCxzdGFja0xhYmVsOnRoaXMuc3RhY2tMYWJlbCxmbG9hdExhYmVsOnRoaXMuZmxvYXRMYWJlbCxlcnJvcjp0aGlzLmVycm9yLHdhcm5pbmc6dGhpcy53YXJuaW5nLGRpc2FibGU6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHksaW52ZXJ0ZWQ6dGhpcy5pbnZlcnRlZCxpbnZlcnRlZExpZ2h0OnRoaXMuaW52ZXJ0ZWRMaWdodCxkYXJrOnRoaXMuZGFyayxoaWRlVW5kZXJsaW5lOnRoaXMuaGlkZVVuZGVybGluZSxiZWZvcmU6dGhpcy5iZWZvcmUsYWZ0ZXI6dGhpcy5hZnRlcixjb2xvcjp0aGlzLmNvbG9yLG5vUGFyZW50RmllbGQ6dGhpcy5ub1BhcmVudEZpZWxkLGZvY3VzZWQ6dGhpcy5mb2N1c2VkfHx0aGlzLiRyZWZzLnBvcHVwJiZ0aGlzLiRyZWZzLnBvcHVwLnNob3dpbmcsZm9jdXNhYmxlOiEwLGxlbmd0aDp0aGlzLmFjdHVhbFZhbHVlLmxlbmd0aH0sbmF0aXZlT246e2NsaWNrOnRoaXMudG9nZ2xlLGZvY3VzOnRoaXMuX19vbkZvY3VzLGJsdXI6dGhpcy5fX29uQmx1cixrZXlkb3duOnRoaXMuX19oYW5kbGVLZXlEb3dufX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgcS1pbnB1dC10YXJnZXQgZWxsaXBzaXNcIixjbGFzczp0aGlzLmZha2VJbnB1dENsYXNzZXN9LFt0aGlzLmZha2VJbnB1dFZhbHVlXSksdGhpcy5pc1BvcG92ZXI/dChRUG9wb3Zlcix7cmVmOlwicG9wdXBcIixwcm9wczp7Y292ZXI6ITAsa2VlcE9uU2NyZWVuOiEwLGRpc2FibGU6dGhpcy5kaXNhYmxlLGFuY2hvckNsaWNrOiExLG1heEhlaWdodDpcIjEwMHZoXCJ9LHNsb3Q6XCJhZnRlclwiLG9uOntzaG93OnRoaXMuX19vbkZvY3VzLGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5fX29uSGlkZSghMCwhMCl9fX0sdGhpcy5fX2dldFBpY2tlcih0KSk6dChRTW9kYWwse3JlZjpcInBvcHVwXCIsc3RhdGljQ2xhc3M6XCJ3aXRoLWJhY2tkcm9wXCIscHJvcHM6e2NvbnRlbnRDc3M6Y29udGVudENzcyxtaW5pbWl6ZWQ6ITAscG9zaXRpb246bnVsbCx0cmFuc2l0aW9uOnRoaXMudHJhbnNpdGlvbn0sb246e2Rpc21pc3M6ZnVuY3Rpb24oKXtyZXR1cm4gZS5fX29uSGlkZSghMSwhMCl9fX0sdGhpcy5fX2dldFBpY2tlcih0LCEwKSksdGhpcy5pc0NsZWFyYWJsZT90KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uaW5wdXRbXCJjbGVhclwiKyh0aGlzLmlzSW52ZXJ0ZWQ/XCJJbnZlcnRlZFwiOlwiXCIpXX0sbmF0aXZlT246e2NsaWNrOnRoaXMuY2xlYXJ9LHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCJ9KTpudWxsLHQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi5pbnB1dC5kcm9wZG93bn0sc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIn0pXSl9fSxRQ29udGV4dE1lbnU9e25hbWU6XCJRQ29udGV4dE1lbnVcIixwcm9wczp7ZGlzYWJsZTpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue21vYmlsZTp0aGlzLiRxLnBsYXRmb3JtLmlzLm1vYmlsZX19LG1ldGhvZHM6e2hpZGU6ZnVuY3Rpb24odCl7aWYodGhpcy4kcmVmcy5wb3B1cClyZXR1cm4gdGhpcy5tb2JpbGUmJnRoaXMudGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoXCJub24tc2VsZWN0YWJsZVwiKSx0aGlzLiRyZWZzLnBvcHVwLmhpZGUodCl9LHNob3c6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmRpc2FibGV8fCh0aGlzLm1vYmlsZT90aGlzLiRyZWZzLnBvcHVwJiYodGhpcy5ldmVudD10LHRoaXMuJHJlZnMucG9wdXAuc2hvdyh0KSk6dCYmKHN0b3BBbmRQcmV2ZW50KHQpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLiRyZWZzLnBvcHVwJiYoZS5ldmVudD10LGUuJHJlZnMucG9wdXAuc2hvdyh0KSl9LDEwMCkpKX0sX19kZXNrdG9wQm9keUhpZGU6ZnVuY3Rpb24odCl7dGhpcy4kZWwuY29udGFpbnModC50YXJnZXQpfHx0aGlzLmhpZGUodCl9LF9fZGVza3RvcE9uU2hvdzpmdW5jdGlvbigpe2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcihcImNvbnRleHRtZW51XCIsdGhpcy5fX2Rlc2t0b3BCb2R5SGlkZSwhMCksZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIix0aGlzLl9fZGVza3RvcEJvZHlIaWRlLCEwKSx0aGlzLiRlbWl0KFwic2hvd1wiLHRoaXMuZXZlbnQpfSxfX2Rlc2t0b3BPbkhpZGU6ZnVuY3Rpb24odCl7ZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKFwiY29udGV4dG1lbnVcIix0aGlzLl9fZGVza3RvcEJvZHlIaWRlLCEwKSxkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLHRoaXMuX19kZXNrdG9wQm9keUhpZGUsITApLHRoaXMuJGVtaXQoXCJoaWRlXCIsdGhpcy5ldmVudCx0KX0sX19tb2JpbGVUb3VjaFN0YXJ0SGFuZGxlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX19tb2JpbGVDbGVhbnVwKCksdCYmdC50b3VjaGVzJiZ0LnRvdWNoZXMubGVuZ3RoPjF8fCh0aGlzLnRhcmdldC5jbGFzc0xpc3QuYWRkKFwibm9uLXNlbGVjdGFibGVcIiksdGhpcy50b3VjaFRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0JiZzdG9wQW5kUHJldmVudCh0KSxlLl9fbW9iaWxlQ2xlYW51cCgpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLnNob3codCl9LDEwKX0sNjAwKSl9LF9fbW9iaWxlQ2xlYW51cDpmdW5jdGlvbigpe3RoaXMudGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoXCJub24tc2VsZWN0YWJsZVwiKSxjbGVhclRpbWVvdXQodGhpcy50b3VjaFRpbWVyKX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLm1vYmlsZT90KFFNb2RhbCx7cmVmOlwicG9wdXBcIixwcm9wczp7bWluaW1pemVkOiEwfSxvbjp7c2hvdzpmdW5jdGlvbigpe2UuJGVtaXQoXCJzaG93XCIsZS5ldmVudCl9LGhpZGU6ZnVuY3Rpb24odCl7ZS4kZW1pdChcImhpZGVcIixlLmV2ZW50LHQpfX19LHRoaXMuJHNsb3RzLmRlZmF1bHQpOnQoUVBvcG92ZXIse3JlZjpcInBvcHVwXCIscHJvcHM6e2FuY2hvckNsaWNrOiExLHRvdWNoUG9zaXRpb246ITB9LG9uOntzaG93OnRoaXMuX19kZXNrdG9wT25TaG93LGhpZGU6dGhpcy5fX2Rlc2t0b3BPbkhpZGV9fSx0aGlzLiRzbG90cy5kZWZhdWx0KX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5tb2JpbGU/dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0LnRhcmdldD10LiRlbC5wYXJlbnROb2RlLHQudGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsdC5fX21vYmlsZVRvdWNoU3RhcnRIYW5kbGVyKSxbXCJ0b3VjaGNhbmNlbFwiLFwidG91Y2htb3ZlXCIsXCJ0b3VjaGVuZFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QudGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZSx0Ll9fbW9iaWxlQ2xlYW51cCl9KX0pOih0aGlzLnRhcmdldD10aGlzLiRlbC5wYXJlbnROb2RlLHRoaXMudGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXCJjb250ZXh0bWVudVwiLHRoaXMuc2hvdykpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLm1vYmlsZT8odGhpcy50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIix0aGlzLl9fbW9iaWxlVG91Y2hTdGFydEhhbmRsZXIpLFtcInRvdWNoY2FuY2VsXCIsXCJ0b3VjaG1vdmVcIixcInRvdWNoZW5kXCJdLmZvckVhY2goZnVuY3Rpb24oZSl7dC50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHQuX19tb2JpbGVDbGVhbnVwKX0pKTp0aGlzLnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY29udGV4dG1lbnVcIix0aGlzLnNob3cpfX0sbW9kZWxWYWxpZGF0b3I9ZnVuY3Rpb24odCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIG51bGw9PT10fHx2b2lkIDA9PT10fHxcIm51bWJlclwiPT09ZXx8XCJzdHJpbmdcIj09PWV8fGlzRGF0ZSh0KX0saW5saW5lPXt2YWx1ZTp7dmFsaWRhdG9yOm1vZGVsVmFsaWRhdG9yLHJlcXVpcmVkOiEwfSxkZWZhdWx0VmFsdWU6e3R5cGU6W1N0cmluZyxOdW1iZXIsRGF0ZV0sZGVmYXVsdDpudWxsfSx0eXBlOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiZGF0ZVwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJkYXRlXCIsXCJ0aW1lXCIsXCJkYXRldGltZVwiXS5pbmNsdWRlcyh0KX19LGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSxkYXJrOkJvb2xlYW4sbWluOnt2YWxpZGF0b3I6bW9kZWxWYWxpZGF0b3IsZGVmYXVsdDpudWxsfSxtYXg6e3ZhbGlkYXRvcjptb2RlbFZhbGlkYXRvcixkZWZhdWx0Om51bGx9LGhlYWRlckxhYmVsOlN0cmluZyxmaXJzdERheU9mV2VlazpOdW1iZXIsZm9ybWF0TW9kZWw6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJhdXRvXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcImF1dG9cIixcImRhdGVcIixcIm51bWJlclwiLFwic3RyaW5nXCJdLmluY2x1ZGVzKHQpfX0sZm9ybWF0MjRoOnt0eXBlOltCb29sZWFuLE51bWJlcl0sZGVmYXVsdDowLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bITAsITEsMF0uaW5jbHVkZXModCl9fSxkZWZhdWx0Vmlldzp7dHlwZTpTdHJpbmcsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcInllYXJcIixcIm1vbnRoXCIsXCJkYXlcIixcImhvdXJcIixcIm1pbnV0ZVwiXS5pbmNsdWRlcyh0KX19LG1pbmltYWw6Qm9vbGVhbn0saW5wdXQ9e2Zvcm1hdDpTdHJpbmcsb2tMYWJlbDpTdHJpbmcsY2FuY2VsTGFiZWw6U3RyaW5nLGRpc3BsYXlWYWx1ZTpTdHJpbmd9LE1JTExJU0VDT05EU19JTl9EQVk9ODY0ZTUsTUlMTElTRUNPTkRTX0lOX0hPVVI9MzZlNSxNSUxMSVNFQ09ORFNfSU5fTUlOVVRFPTZlNCx0b2tlbj0vXFxbKCg/OlteXFxdXFxcXF18XFxcXF18XFxcXCkqKVxcXXxkezEsNH18TXsxLDR9fG17MSwyfXx3ezEsMn18UW98RG98RHsxLDR9fFlZKD86WVkpP3xIezEsMn18aHsxLDJ9fHN7MSwyfXxTezEsM318WnsxLDJ9fGF7MSwyfXxbQVFFeFhdL2cscmVNeVNRTERhdGVUaW1lU3RyPS9eWzAtOV17NH0tWzAtOV17Mn0tWzAtOV17Mn0gWzAtOV17Mn06WzAtOV17Mn06WzAtOV17Mn0oLlswLTldezZ9KT8kLztmdW5jdGlvbiBmb3JtYXRUaW1lem9uZSh0LGUpe3ZvaWQgMD09PWUmJihlPVwiXCIpO3ZhciBpPXQ+MD9cIi1cIjpcIitcIixzPU1hdGguYWJzKHQpLG49cyU2MDtyZXR1cm4gaStwYWQoTWF0aC5mbG9vcihzLzYwKSkrZStwYWQobil9ZnVuY3Rpb24gc2V0TW9udGgodCxlKXt2YXIgaT1uZXcgRGF0ZSh0LmdldEZ1bGxZZWFyKCksZSwwLDAsMCwwLDApLmdldERhdGUoKTt0LnNldE1vbnRoKGUtMSxNYXRoLm1pbihpLHQuZ2V0RGF0ZSgpKSl9ZnVuY3Rpb24gYnVpbGREYXRlVmFsKHQpe3JldHVybiBuZXcgRGF0ZShpc1N0cmluZyh0KSYmbnVsbCE9PXJlTXlTUUxEYXRlVGltZVN0ci5leGVjKHQpP3Quc3Vic3RyaW5nKDAsMjMpLnJlcGxhY2UoXCIgXCIsXCJUXCIpOnQpfWZ1bmN0aW9uIGdldENoYW5nZSh0LGUsaSl7dmFyIHM9YnVpbGREYXRlVmFsKHQpLG49aT8xOi0xO3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKFwibW9udGhcIiE9PXQpe3ZhciBpPVwieWVhclwiPT09dD9cIkZ1bGxZZWFyXCI6Y2FwaXRhbGl6ZShcImRheXNcIj09PXQ/XCJkYXRlXCI6dCk7c1tcInNldFwiK2ldKHNbXCJnZXRcIitpXSgpK24qZVt0XSl9ZWxzZSBzZXRNb250aChzLHMuZ2V0TW9udGgoKSsxK24qZS5tb250aCl9KSxzfWZ1bmN0aW9uIGlzVmFsaWQodCl7aWYoXCJudW1iZXJcIj09dHlwZW9mIHQpcmV0dXJuITA7dmFyIGU9RGF0ZS5wYXJzZSh0KTtyZXR1cm4hMT09PWlzTmFOKGUpfWZ1bmN0aW9uIGJ1aWxkRGF0ZSh0LGUpe3JldHVybiBhZGp1c3REYXRlKG5ldyBEYXRlLHQsZSl9ZnVuY3Rpb24gZ2V0RGF5T2ZXZWVrKHQpe3ZhciBlPWJ1aWxkRGF0ZVZhbCh0KS5nZXREYXkoKTtyZXR1cm4gMD09PWU/NzplfWZ1bmN0aW9uIGdldFdlZWtPZlllYXIodCl7dmFyIGU9bmV3IERhdGUodC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSx0LmdldERhdGUoKSk7ZS5zZXREYXRlKGUuZ2V0RGF0ZSgpLShlLmdldERheSgpKzYpJTcrMyk7dmFyIGk9bmV3IERhdGUoZS5nZXRGdWxsWWVhcigpLDAsNCk7aS5zZXREYXRlKGkuZ2V0RGF0ZSgpLShpLmdldERheSgpKzYpJTcrMyk7dmFyIHM9ZS5nZXRUaW1lem9uZU9mZnNldCgpLWkuZ2V0VGltZXpvbmVPZmZzZXQoKTtlLnNldEhvdXJzKGUuZ2V0SG91cnMoKS1zKTt2YXIgbj0oZS1pKS8oNypNSUxMSVNFQ09ORFNfSU5fREFZKTtyZXR1cm4gMStNYXRoLmZsb29yKG4pfWZ1bmN0aW9uIGlzQmV0d2VlbkRhdGVzKHQsZSxpLHMpe3ZvaWQgMD09PXMmJihzPXt9KTt2YXIgbj1idWlsZERhdGVWYWwoZSkuZ2V0VGltZSgpLG89YnVpbGREYXRlVmFsKGkpLmdldFRpbWUoKSxyPWJ1aWxkRGF0ZVZhbCh0KS5nZXRUaW1lKCk7cmV0dXJuIHMuaW5jbHVzaXZlRnJvbSYmbi0tLHMuaW5jbHVzaXZlVG8mJm8rKyxyPm4mJnI8b31mdW5jdGlvbiBhZGRUb0RhdGUodCxlKXtyZXR1cm4gZ2V0Q2hhbmdlKHQsZSwhMCl9ZnVuY3Rpb24gc3VidHJhY3RGcm9tRGF0ZSh0LGUpe3JldHVybiBnZXRDaGFuZ2UodCxlLCExKX1mdW5jdGlvbiBhZGp1c3REYXRlKHQsZSxpKXt2YXIgcz1idWlsZERhdGVWYWwodCksbj1cInNldFwiKyhpP1wiVVRDXCI6XCJcIik7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24odCl7aWYoXCJtb250aFwiIT09dCl7dmFyIGk9XCJ5ZWFyXCI9PT10P1wiRnVsbFllYXJcIjp0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7c1tcIlwiK24raV0oZVt0XSl9ZWxzZSBzZXRNb250aChzLGUubW9udGgpfSksc31mdW5jdGlvbiBzdGFydE9mRGF0ZSh0LGUpe3ZhciBpPWJ1aWxkRGF0ZVZhbCh0KTtzd2l0Y2goZSl7Y2FzZVwieWVhclwiOmkuc2V0TW9udGgoMCk7Y2FzZVwibW9udGhcIjppLnNldERhdGUoMSk7Y2FzZVwiZGF5XCI6aS5zZXRIb3VycygwKTtjYXNlXCJob3VyXCI6aS5zZXRNaW51dGVzKDApO2Nhc2VcIm1pbnV0ZVwiOmkuc2V0U2Vjb25kcygwKTtjYXNlXCJzZWNvbmRcIjppLnNldE1pbGxpc2Vjb25kcygwKX1yZXR1cm4gaX1mdW5jdGlvbiBlbmRPZkRhdGUodCxlKXt2YXIgaT1idWlsZERhdGVWYWwodCk7c3dpdGNoKGUpe2Nhc2VcInllYXJcIjppLnNldE1vbnRoKDExKTtjYXNlXCJtb250aFwiOmkuc2V0RGF0ZShkYXlzSW5Nb250aCh0KSk7Y2FzZVwiZGF5XCI6aS5zZXRIb3VycygyMyk7Y2FzZVwiaG91clwiOmkuc2V0TWludXRlcyg1OSk7Y2FzZVwibWludXRlXCI6aS5zZXRTZWNvbmRzKDU5KTtjYXNlXCJzZWNvbmRcIjppLnNldE1pbGxpc2Vjb25kcyg1OSl9cmV0dXJuIGl9ZnVuY3Rpb24gZ2V0TWF4RGF0ZSh0KXtmb3IodmFyIGU9W10saT1hcmd1bWVudHMubGVuZ3RoLTE7aS0tID4wOyllW2ldPWFyZ3VtZW50c1tpKzFdO3ZhciBzPWJ1aWxkRGF0ZVZhbCh0KTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3M9TWF0aC5tYXgocyxidWlsZERhdGVWYWwodCkpfSksc31mdW5jdGlvbiBnZXRNaW5EYXRlKHQpe2Zvcih2YXIgZT1bXSxpPWFyZ3VtZW50cy5sZW5ndGgtMTtpLS0gPjA7KWVbaV09YXJndW1lbnRzW2krMV07dmFyIHM9YnVpbGREYXRlVmFsKHQpO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24odCl7cz1NYXRoLm1pbihzLGJ1aWxkRGF0ZVZhbCh0KSl9KSxzfWZ1bmN0aW9uIGdldERpZmYodCxlLGkpe3JldHVybih0LmdldFRpbWUoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkqTUlMTElTRUNPTkRTX0lOX01JTlVURS0oZS5nZXRUaW1lKCktZS5nZXRUaW1lem9uZU9mZnNldCgpKk1JTExJU0VDT05EU19JTl9NSU5VVEUpKS9pfWZ1bmN0aW9uIGdldERhdGVEaWZmKHQsZSxpKXt2b2lkIDA9PT1pJiYoaT1cImRheXNcIik7dmFyIHM9YnVpbGREYXRlVmFsKHQpLG49YnVpbGREYXRlVmFsKGUpO3N3aXRjaChpKXtjYXNlXCJ5ZWFyc1wiOnJldHVybiBzLmdldEZ1bGxZZWFyKCktbi5nZXRGdWxsWWVhcigpO2Nhc2VcIm1vbnRoc1wiOnJldHVybiAxMioocy5nZXRGdWxsWWVhcigpLW4uZ2V0RnVsbFllYXIoKSkrcy5nZXRNb250aCgpLW4uZ2V0TW9udGgoKTtjYXNlXCJkYXlzXCI6cmV0dXJuIGdldERpZmYoc3RhcnRPZkRhdGUocyxcImRheVwiKSxzdGFydE9mRGF0ZShuLFwiZGF5XCIpLE1JTExJU0VDT05EU19JTl9EQVkpO2Nhc2VcImhvdXJzXCI6cmV0dXJuIGdldERpZmYoc3RhcnRPZkRhdGUocyxcImhvdXJcIiksc3RhcnRPZkRhdGUobixcImhvdXJcIiksTUlMTElTRUNPTkRTX0lOX0hPVVIpO2Nhc2VcIm1pbnV0ZXNcIjpyZXR1cm4gZ2V0RGlmZihzdGFydE9mRGF0ZShzLFwibWludXRlXCIpLHN0YXJ0T2ZEYXRlKG4sXCJtaW51dGVcIiksTUlMTElTRUNPTkRTX0lOX01JTlVURSk7Y2FzZVwic2Vjb25kc1wiOnJldHVybiBnZXREaWZmKHN0YXJ0T2ZEYXRlKHMsXCJzZWNvbmRcIiksc3RhcnRPZkRhdGUobixcInNlY29uZFwiKSwxZTMpfX1mdW5jdGlvbiBnZXREYXlPZlllYXIodCl7cmV0dXJuIGdldERhdGVEaWZmKHQsc3RhcnRPZkRhdGUodCxcInllYXJcIiksXCJkYXlzXCIpKzF9ZnVuY3Rpb24gaW5mZXJEYXRlRm9ybWF0KHQpe3JldHVybiBpc0RhdGUodCk/XCJkYXRlXCI6XCJudW1iZXJcIj09dHlwZW9mIHQ/XCJudW1iZXJcIjpcInN0cmluZ1wifWZ1bmN0aW9uIGNvbnZlcnREYXRlVG9Gb3JtYXQodCxlLGkpe2lmKHR8fDA9PT10KXN3aXRjaChlKXtjYXNlXCJkYXRlXCI6cmV0dXJuIHQ7Y2FzZVwibnVtYmVyXCI6cmV0dXJuIHQuZ2V0VGltZSgpO2RlZmF1bHQ6cmV0dXJuIGZvcm1hdERhdGUodCxpKX19ZnVuY3Rpb24gZ2V0RGF0ZUJldHdlZW4odCxlLGkpe3ZhciBzPWJ1aWxkRGF0ZVZhbCh0KTtpZihlKXt2YXIgbj1idWlsZERhdGVWYWwoZSk7aWYoczxuKXJldHVybiBufWlmKGkpe3ZhciBvPWJ1aWxkRGF0ZVZhbChpKTtpZihzPm8pcmV0dXJuIG99cmV0dXJuIHN9ZnVuY3Rpb24gaXNTYW1lRGF0ZSh0LGUsaSl7dmFyIHM9YnVpbGREYXRlVmFsKHQpLG49YnVpbGREYXRlVmFsKGUpO2lmKHZvaWQgMD09PWkpcmV0dXJuIHMuZ2V0VGltZSgpPT09bi5nZXRUaW1lKCk7c3dpdGNoKGkpe2Nhc2VcInNlY29uZFwiOmlmKHMuZ2V0U2Vjb25kcygpIT09bi5nZXRTZWNvbmRzKCkpcmV0dXJuITE7Y2FzZVwibWludXRlXCI6aWYocy5nZXRNaW51dGVzKCkhPT1uLmdldE1pbnV0ZXMoKSlyZXR1cm4hMTtjYXNlXCJob3VyXCI6aWYocy5nZXRIb3VycygpIT09bi5nZXRIb3VycygpKXJldHVybiExO2Nhc2VcImRheVwiOmlmKHMuZ2V0RGF0ZSgpIT09bi5nZXREYXRlKCkpcmV0dXJuITE7Y2FzZVwibW9udGhcIjppZihzLmdldE1vbnRoKCkhPT1uLmdldE1vbnRoKCkpcmV0dXJuITE7Y2FzZVwieWVhclwiOmlmKHMuZ2V0RnVsbFllYXIoKSE9PW4uZ2V0RnVsbFllYXIoKSlyZXR1cm4hMTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihcImRhdGUgaXNTYW1lRGF0ZSB1bmtub3duIHVuaXQgXCIraSl9cmV0dXJuITB9ZnVuY3Rpb24gZGF5c0luTW9udGgodCl7cmV0dXJuIG5ldyBEYXRlKHQuZ2V0RnVsbFllYXIoKSx0LmdldE1vbnRoKCkrMSwwKS5nZXREYXRlKCl9ZnVuY3Rpb24gZ2V0T3JkaW5hbCh0KXtpZih0Pj0xMSYmdDw9MTMpcmV0dXJuIHQrXCJ0aFwiO3N3aXRjaCh0JTEwKXtjYXNlIDE6cmV0dXJuIHQrXCJzdFwiO2Nhc2UgMjpyZXR1cm4gdCtcIm5kXCI7Y2FzZSAzOnJldHVybiB0K1wicmRcIn1yZXR1cm4gdCtcInRoXCJ9dmFyIGZvcm1hdHRlcj17WVk6ZnVuY3Rpb24odCl7cmV0dXJuIHBhZCh0LmdldEZ1bGxZZWFyKCksNCkuc3Vic3RyKDIpfSxZWVlZOmZ1bmN0aW9uKHQpe3JldHVybiBwYWQodC5nZXRGdWxsWWVhcigpLDQpfSxNOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1vbnRoKCkrMX0sTU06ZnVuY3Rpb24odCl7cmV0dXJuIHBhZCh0LmdldE1vbnRoKCkrMSl9LE1NTTpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSksKGUubW9udGhOYW1lc1Nob3J0fHxpMThuLmxhbmcuZGF0ZS5tb250aHNTaG9ydClbdC5nZXRNb250aCgpXX0sTU1NTTpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSksKGUubW9udGhOYW1lc3x8aTE4bi5sYW5nLmRhdGUubW9udGhzKVt0LmdldE1vbnRoKCldfSxROmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmNlaWwoKHQuZ2V0TW9udGgoKSsxKS8zKX0sUW86ZnVuY3Rpb24odCl7cmV0dXJuIGdldE9yZGluYWwodGhpcy5RKHQpKX0sRDpmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXRlKCl9LERvOmZ1bmN0aW9uKHQpe3JldHVybiBnZXRPcmRpbmFsKHQuZ2V0RGF0ZSgpKX0sREQ6ZnVuY3Rpb24odCl7cmV0dXJuIHBhZCh0LmdldERhdGUoKSl9LERERDpmdW5jdGlvbih0KXtyZXR1cm4gZ2V0RGF5T2ZZZWFyKHQpfSxEREREOmZ1bmN0aW9uKHQpe3JldHVybiBwYWQoZ2V0RGF5T2ZZZWFyKHQpLDMpfSxkOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldERheSgpfSxkZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kZGRkKHQpLnNsaWNlKDAsMil9LGRkZDpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSksKGUuZGF5TmFtZXNTaG9ydHx8aTE4bi5sYW5nLmRhdGUuZGF5c1Nob3J0KVt0LmdldERheSgpXX0sZGRkZDpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSksKGUuZGF5TmFtZXN8fGkxOG4ubGFuZy5kYXRlLmRheXMpW3QuZ2V0RGF5KCldfSxFOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldERheSgpfHw3fSx3OmZ1bmN0aW9uKHQpe3JldHVybiBnZXRXZWVrT2ZZZWFyKHQpfSx3dzpmdW5jdGlvbih0KXtyZXR1cm4gcGFkKGdldFdlZWtPZlllYXIodCkpfSxIOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEhvdXJzKCl9LEhIOmZ1bmN0aW9uKHQpe3JldHVybiBwYWQodC5nZXRIb3VycygpKX0saDpmdW5jdGlvbih0KXt2YXIgZT10LmdldEhvdXJzKCk7cmV0dXJuIDA9PT1lPzEyOmU+MTI/ZSUxMjplfSxoaDpmdW5jdGlvbih0KXtyZXR1cm4gcGFkKHRoaXMuaCh0KSl9LG06ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TWludXRlcygpfSxtbTpmdW5jdGlvbih0KXtyZXR1cm4gcGFkKHQuZ2V0TWludXRlcygpKX0sczpmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRTZWNvbmRzKCl9LHNzOmZ1bmN0aW9uKHQpe3JldHVybiBwYWQodC5nZXRTZWNvbmRzKCkpfSxTOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmZsb29yKHQuZ2V0TWlsbGlzZWNvbmRzKCkvMTAwKX0sU1M6ZnVuY3Rpb24odCl7cmV0dXJuIHBhZChNYXRoLmZsb29yKHQuZ2V0TWlsbGlzZWNvbmRzKCkvMTApKX0sU1NTOmZ1bmN0aW9uKHQpe3JldHVybiBwYWQodC5nZXRNaWxsaXNlY29uZHMoKSwzKX0sQTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5IKHQpPDEyP1wiQU1cIjpcIlBNXCJ9LGE6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSCh0KTwxMj9cImFtXCI6XCJwbVwifSxhYTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5IKHQpPDEyP1wiYS5tLlwiOlwicC5tLlwifSxaOmZ1bmN0aW9uKHQpe3JldHVybiBmb3JtYXRUaW1lem9uZSh0LmdldFRpbWV6b25lT2Zmc2V0KCksXCI6XCIpfSxaWjpmdW5jdGlvbih0KXtyZXR1cm4gZm9ybWF0VGltZXpvbmUodC5nZXRUaW1lem9uZU9mZnNldCgpKX0sWDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5mbG9vcih0LmdldFRpbWUoKS8xZTMpfSx4OmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFRpbWUoKX19O2Z1bmN0aW9uIGZvcm1hdERhdGUodCxlLGkpe2lmKHZvaWQgMD09PWUmJihlPVwiWVlZWS1NTS1ERFRISDptbTpzcy5TU1NaXCIpLDA9PT10fHx0KXt2YXIgcz1idWlsZERhdGVWYWwodCk7cmV0dXJuIGUucmVwbGFjZSh0b2tlbixmdW5jdGlvbih0LGUpe3JldHVybiB0IGluIGZvcm1hdHRlcj9mb3JtYXR0ZXJbdF0ocyxpKTp2b2lkIDA9PT1lP3Q6ZS5zcGxpdChcIlxcXFxdXCIpLmpvaW4oXCJdXCIpfSl9fWZ1bmN0aW9uIG1hdGNoRm9ybWF0KHQpe3JldHVybiB2b2lkIDA9PT10JiYodD1cIlwiKSx0Lm1hdGNoKHRva2VuKX1mdW5jdGlvbiBjbG9uZSQxKHQpe3JldHVybiBpc0RhdGUodCk/bmV3IERhdGUodC5nZXRUaW1lKCkpOnR9dmFyIGRhdGU9e2lzVmFsaWQ6aXNWYWxpZCxidWlsZERhdGU6YnVpbGREYXRlLGdldERheU9mV2VlazpnZXREYXlPZldlZWssZ2V0V2Vla09mWWVhcjpnZXRXZWVrT2ZZZWFyLGlzQmV0d2VlbkRhdGVzOmlzQmV0d2VlbkRhdGVzLGFkZFRvRGF0ZTphZGRUb0RhdGUsc3VidHJhY3RGcm9tRGF0ZTpzdWJ0cmFjdEZyb21EYXRlLGFkanVzdERhdGU6YWRqdXN0RGF0ZSxzdGFydE9mRGF0ZTpzdGFydE9mRGF0ZSxlbmRPZkRhdGU6ZW5kT2ZEYXRlLGdldE1heERhdGU6Z2V0TWF4RGF0ZSxnZXRNaW5EYXRlOmdldE1pbkRhdGUsZ2V0RGF0ZURpZmY6Z2V0RGF0ZURpZmYsZ2V0RGF5T2ZZZWFyOmdldERheU9mWWVhcixpbmZlckRhdGVGb3JtYXQ6aW5mZXJEYXRlRm9ybWF0LGNvbnZlcnREYXRlVG9Gb3JtYXQ6Y29udmVydERhdGVUb0Zvcm1hdCxnZXREYXRlQmV0d2VlbjpnZXREYXRlQmV0d2Vlbixpc1NhbWVEYXRlOmlzU2FtZURhdGUsZGF5c0luTW9udGg6ZGF5c0luTW9udGgsZm9ybWF0dGVyOmZvcm1hdHRlcixmb3JtYXREYXRlOmZvcm1hdERhdGUsbWF0Y2hGb3JtYXQ6bWF0Y2hGb3JtYXQsY2xvbmU6Y2xvbmUkMX0scmVEYXRlPS9eXFxkezR9W15cXGRdXFxkezJ9W15cXGRdXFxkezJ9LyxEYXRlTWl4aW49e3Byb3BzOmlubGluZSxjb21wdXRlZDp7Y29tcHV0ZWRWYWx1ZTpmdW5jdGlvbigpe3JldHVyblwiZGF0ZVwiPT09dGhpcy50eXBlJiZcInN0cmluZ1wiPT09dGhpcy5mb3JtYXRNb2RlbCYmcmVEYXRlLnRlc3QodGhpcy52YWx1ZSk/dGhpcy52YWx1ZS5zbGljZSgwLDEwKS5zcGxpdCgvW15cXGRdLykuam9pbihcIi9cIik6dGhpcy52YWx1ZX0sY29tcHV0ZWREZWZhdWx0VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5cImRhdGVcIj09PXRoaXMudHlwZSYmXCJzdHJpbmdcIj09PXRoaXMuZm9ybWF0TW9kZWwmJnJlRGF0ZS50ZXN0KHRoaXMuZGVmYXVsdFZhbHVlKT90aGlzLmRlZmF1bHRWYWx1ZS5zbGljZSgwLDEwKS5zcGxpdCgvW15cXGRdKy8pLmpvaW4oXCIvXCIpOnRoaXMuZGVmYXVsdFZhbHVlfSxjb21wdXRlZERhdGVGb3JtYXQ6ZnVuY3Rpb24oKXtpZihcImRhdGVcIj09PXRoaXMudHlwZSYmXCJzdHJpbmdcIj09PXRoaXMuZm9ybWF0TW9kZWwpcmV0dXJuXCJZWVlZL01NL0REIEhIOm1tOnNzXCJ9LG1vZGVsOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaXNWYWxpZCh0aGlzLmNvbXB1dGVkVmFsdWUpP25ldyBEYXRlKHRoaXMuY29tcHV0ZWRWYWx1ZSk6dGhpcy5jb21wdXRlZERlZmF1bHRWYWx1ZT9uZXcgRGF0ZSh0aGlzLmNvbXB1dGVkRGVmYXVsdFZhbHVlKTpzdGFydE9mRGF0ZShuZXcgRGF0ZSxcImRheVwiKX0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1jb252ZXJ0RGF0ZVRvRm9ybWF0KGdldERhdGVCZXR3ZWVuKHQsdGhpcy5wbWluLHRoaXMucG1heCksXCJhdXRvXCI9PT10aGlzLmZvcm1hdE1vZGVsP2luZmVyRGF0ZUZvcm1hdCh0aGlzLnZhbHVlKTp0aGlzLmZvcm1hdE1vZGVsLHRoaXMuY29tcHV0ZWREYXRlRm9ybWF0KTt0aGlzLiRlbWl0KFwiaW5wdXRcIixpKSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe2lzU2FtZURhdGUoaSxlLnZhbHVlKXx8ZS4kZW1pdChcImNoYW5nZVwiLGkpfSl9fSxwbWluOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWluP25ldyBEYXRlKHRoaXMubWluKTpudWxsfSxwbWF4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF4P25ldyBEYXRlKHRoaXMubWF4KTpudWxsfSx0eXBlSGFzRGF0ZTpmdW5jdGlvbigpe3JldHVyblwiZGF0ZVwiPT09dGhpcy50eXBlfHxcImRhdGV0aW1lXCI9PT10aGlzLnR5cGV9LHR5cGVIYXNUaW1lOmZ1bmN0aW9uKCl7cmV0dXJuXCJ0aW1lXCI9PT10aGlzLnR5cGV8fFwiZGF0ZXRpbWVcIj09PXRoaXMudHlwZX0seWVhcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsLmdldEZ1bGxZZWFyKCl9LG1vbnRoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWwuZ2V0TW9udGgoKSsxfSxkYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb2RlbC5nZXREYXRlKCl9LG1pbnV0ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsLmdldE1pbnV0ZXMoKX0sY3VycmVudFllYXI6ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldEZ1bGxZZWFyKCl9LHllYXJJbnRlcnZhbDpmdW5jdGlvbigpe3JldHVybnttaW46bnVsbCE9PXRoaXMucG1pbj90aGlzLnBtaW4uZ2V0RnVsbFllYXIoKToodGhpcy55ZWFyfHx0aGlzLmN1cnJlbnRZZWFyKS04MCxtYXg6bnVsbCE9PXRoaXMucG1heD90aGlzLnBtYXguZ2V0RnVsbFllYXIoKToodGhpcy55ZWFyfHx0aGlzLmN1cnJlbnRZZWFyKSs4MH19LG1vbnRoSW50ZXJ2YWw6ZnVuY3Rpb24oKXtyZXR1cm57bWluOnRoaXMubW9udGhNaW4sbWF4Om51bGwhPT10aGlzLnBtYXgmJnRoaXMucG1heC5nZXRGdWxsWWVhcigpPT09dGhpcy55ZWFyP3RoaXMucG1heC5nZXRNb250aCgpOjExfX0sbW9udGhNaW46ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PXRoaXMucG1pbiYmdGhpcy5wbWluLmdldEZ1bGxZZWFyKCk9PT10aGlzLnllYXI/dGhpcy5wbWluLmdldE1vbnRoKCk6MH0sZGF5c0luTW9udGg6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy55ZWFyLHRoaXMubW9kZWwuZ2V0TW9udGgoKSsxLDApLmdldERhdGUoKX0sZWRpdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5kaXNhYmxlJiYhdGhpcy5yZWFkb25seX0sX19uZWVkc0JvcmRlcjpmdW5jdGlvbigpe3JldHVybiEwfX0sbWV0aG9kczp7dG9nZ2xlQW1QbTpmdW5jdGlvbigpe2lmKHRoaXMuZWRpdGFibGUpe3ZhciB0PXRoaXMubW9kZWwuZ2V0SG91cnMoKSxlPXRoaXMuYW0/MTI6LTEyO3RoaXMubW9kZWw9bmV3IERhdGUobmV3IERhdGUodGhpcy5tb2RlbCkuc2V0SG91cnModCtlKSl9fSxfX3BhcnNlVHlwZVZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuXCJtb250aFwiPT09dD9ub3JtYWxpemVUb0ludGVydmFsKGUsMSwxMik6XCJkYXRlXCI9PT10P25vcm1hbGl6ZVRvSW50ZXJ2YWwoZSwxLHRoaXMuZGF5c0luTW9udGgpOlwieWVhclwiPT09dD9ub3JtYWxpemVUb0ludGVydmFsKGUsdGhpcy55ZWFySW50ZXJ2YWwubWluLHRoaXMueWVhckludGVydmFsLm1heCk6XCJob3VyXCI9PT10P25vcm1hbGl6ZVRvSW50ZXJ2YWwoZSwwLDIzKTpcIm1pbnV0ZVwiPT09dD9ub3JtYWxpemVUb0ludGVydmFsKGUsMCw1OSk6dm9pZCAwfX19O2Z1bmN0aW9uIGNvbnZlcnRUb0FtUG0odCl7cmV0dXJuIDA9PT10PzEyOnQ+PTEzP3QtMTI6dH12YXIgUURhdGV0aW1lUGlja2VyPXtuYW1lOlwiUURhdGV0aW1lUGlja2VyXCIsbWl4aW5zOltEYXRlTWl4aW4sUGFyZW50RmllbGRNaXhpbixDYW5SZW5kZXJNaXhpbl0scHJvcHM6e2RlZmF1bHRWYWx1ZTpbU3RyaW5nLE51bWJlcixEYXRlXSxkaXNhYmxlOkJvb2xlYW4scmVhZG9ubHk6Qm9vbGVhbn0sZGlyZWN0aXZlczp7UmlwcGxlOlJpcHBsZX0sZGF0YTpmdW5jdGlvbigpe3JldHVybnt2aWV3OnRoaXMuX19jYWxjVmlldyh0aGlzLmRlZmF1bHRWaWV3KSxkcmFnZ2luZzohMSxjZW50ZXJDbG9ja1BvczowLGZha2VWYWx1ZTp7eWVhcjpudWxsLG1vbnRoOm51bGx9fX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3R8fCh0aGlzLnZpZXc9W1wiZGF0ZVwiLFwiZGF0ZXRpbWVcIl0uaW5jbHVkZXModGhpcy50eXBlKT9cImRheVwiOlwiaG91clwiKX0sdmlldzpmdW5jdGlvbigpe3RoaXMuX19zY3JvbGxWaWV3KCEwKX0sbW9kZWw6ZnVuY3Rpb24oKXt0aGlzLmZha2VWYWx1ZS5tb250aCE9PXRoaXMubW9udGgmJih0aGlzLmZha2VWYWx1ZS5tb250aD10aGlzLm1vbnRoLHRoaXMuX19zY3JvbGxWaWV3KCkpLHRoaXMuZmFrZVZhbHVlLnllYXIhPT10aGlzLnllYXImJih0aGlzLmZha2VWYWx1ZS55ZWFyPXRoaXMueWVhcix0aGlzLl9fc2Nyb2xsVmlldygpKX19LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZGlzYWJsZSYmdC5wdXNoKFwiZGlzYWJsZWRcIiksdGhpcy5yZWFkb25seSYmdC5wdXNoKFwicmVhZG9ubHlcIiksdGhpcy5kYXJrJiZ0LnB1c2goXCJxLWRhdGV0aW1lLWRhcmtcIiksdGhpcy5taW5pbWFsJiZ0LnB1c2goXCJxLWRhdGV0aW1lLW1pbmltYWxcIiksdGhpcy5jb2xvciYmdC5wdXNoKFwidGV4dC1cIit0aGlzLmNvbG9yKSx0fSxkYXRlQXJyb3c6ZnVuY3Rpb24oKXt2YXIgdD1bdGhpcy4kcS5pY29uLmRhdGV0aW1lLmFycm93TGVmdCx0aGlzLiRxLmljb24uZGF0ZXRpbWUuYXJyb3dSaWdodF07cmV0dXJuIHRoaXMuJHEuaTE4bi5ydGw/dC5yZXZlcnNlKCk6dH0sY29tcHV0ZWRGb3JtYXQyNGg6ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMuZm9ybWF0MjRoP3RoaXMuZm9ybWF0MjRoOnRoaXMuJHEuaTE4bi5kYXRlLmZvcm1hdDI0aH0sY29tcHV0ZWRGaXJzdERheU9mV2VlazpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLmZpcnN0RGF5T2ZXZWVrP3RoaXMuZmlyc3REYXlPZldlZWs6dGhpcy4kcS5pMThuLmRhdGUuZmlyc3REYXlPZldlZWt9LGhlYWRlckRheU5hbWVzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kcS5pMThuLmRhdGUuZGF5c1Nob3J0LGU9dGhpcy5jb21wdXRlZEZpcnN0RGF5T2ZXZWVrO3JldHVybiBlPjA/dC5zbGljZShlLDcpLmNvbmNhdCh0LnNsaWNlKDAsZSkpOnR9LGZha2VNb2RlbDpmdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh0aGlzLmZha2VZZWFyLHRoaXMuZmFrZU1vbnRoLTEsMSl9LGZha2VZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmFrZVZhbHVlLnllYXJ8fHRoaXMueWVhcn0sZmFrZU1vbnRoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmFrZVZhbHVlLm1vbnRofHx0aGlzLm1vbnRofSxkYXlzSW5Nb250aDpmdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh0aGlzLmZha2VZZWFyLHRoaXMuZmFrZU1vbnRoLDApLmdldERhdGUoKX0sbW9udGhTdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm5cIlwiK3RoaXMuJHEuaTE4bi5kYXRlLm1vbnRoc1Nob3J0W3RoaXMubW9udGgtMV19LG1vbnRoU3RhbXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcS5pMThuLmRhdGUubW9udGhzW3RoaXMuZmFrZU1vbnRoLTFdK1wiIFwiK3RoaXMuZmFrZVllYXJ9LHdlZWtEYXlTdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oZWFkZXJMYWJlbHx8dGhpcy4kcS5pMThuLmRhdGUuZGF5c1t0aGlzLm1vZGVsLmdldERheSgpXX0sZmlsbGVyRGF5czpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZmFrZU1vZGVsLmdldERheSgpLXRoaXMuY29tcHV0ZWRGaXJzdERheU9mV2VlaztyZXR1cm4gdDwwJiYodCs9NyksdH0sYmVmb3JlTWluRGF5czpmdW5jdGlvbigpe2lmKG51bGw9PT10aGlzLnBtaW4pcmV0dXJuITE7dmFyIHQ9dGhpcy5wbWluLmdldEZ1bGxZZWFyKCksZT10aGlzLnBtaW4uZ2V0TW9udGgoKSsxO3JldHVybiB0PT09dGhpcy5mYWtlWWVhciYmZT09PXRoaXMuZmFrZU1vbnRoP3RoaXMucG1pbi5nZXREYXRlKCktMToodD50aGlzLmZha2VZZWFyfHx0PT09dGhpcy5mYWtlWWVhciYmZT50aGlzLmZha2VNb250aCkmJnRoaXMuZGF5c0luTW9udGh9LGFmdGVyTWF4RGF5czpmdW5jdGlvbigpe2lmKG51bGw9PT10aGlzLnBtYXgpcmV0dXJuITE7dmFyIHQ9dGhpcy5wbWF4LmdldEZ1bGxZZWFyKCksZT10aGlzLnBtYXguZ2V0TW9udGgoKSsxO3JldHVybiB0PT09dGhpcy5mYWtlWWVhciYmZT09PXRoaXMuZmFrZU1vbnRoP3RoaXMuZGF5c0luTW9udGgtdGhpcy5tYXhEYXk6KHQ8dGhpcy5mYWtlWWVhcnx8dD09PXRoaXMuZmFrZVllYXImJmU8dGhpcy5mYWtlTW9udGgpJiZ0aGlzLmRheXNJbk1vbnRofSxtYXhEYXk6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PXRoaXMucG1heD90aGlzLnBtYXguZ2V0RGF0ZSgpOnRoaXMuZGF5c0luTW9udGh9LGRhdGVJbnRlcnZhbDpmdW5jdGlvbigpe3ZhciB0PW51bGw9PT10aGlzLnBtYXh8fCExPT09dGhpcy5hZnRlck1heERheXM/MDp0aGlzLmFmdGVyTWF4RGF5cztyZXR1cm4gdGhpcy5iZWZvcmVNaW5EYXlzPjB8fHQ/e21pbjp0aGlzLmJlZm9yZU1pbkRheXM+MD90aGlzLmJlZm9yZU1pbkRheXMrMToxLG1heDp0aGlzLmRheXNJbk1vbnRoLXR9OnttaW46MSxtYXg6dGhpcy5kYXlzSW5Nb250aH19LGhvdXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldEhvdXJzKCk7cmV0dXJuIHRoaXMuY29tcHV0ZWRGb3JtYXQyNGg/dDpjb252ZXJ0VG9BbVBtKHQpfSxtaW51dGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb2RlbC5nZXRNaW51dGVzKCl9LGFtOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWwuZ2V0SG91cnMoKTw9MTF9LGNsb2NrUG9pbnRlclN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9XCJtaW51dGVcIj09PXRoaXMudmlldyxlPXQ/NjA6MTIsaT1bXCJyb3RhdGUoXCIrKE1hdGgucm91bmQoKHQ/dGhpcy5taW51dGU6dGhpcy5ob3VyKSooMzYwL2UpKS0xODApK1wiZGVnKVwiXTtyZXR1cm4gdHx8IXRoaXMuY29tcHV0ZWRGb3JtYXQyNGh8fHRoaXMuaG91cj4wJiZ0aGlzLmhvdXI8MTN8fGkucHVzaChcInNjYWxlKC43LCAuNylcIikse3RyYW5zZm9ybTppLmpvaW4oXCIgXCIpfX0saXNWYWxpZDpmdW5jdGlvbigpe3JldHVybiBpc1ZhbGlkKHRoaXMudmFsdWUpfSx0b2RheTpmdW5jdGlvbigpe3ZhciB0PW5ldyBEYXRlO3JldHVybiBpc1NhbWVEYXRlKHQsdGhpcy5mYWtlTW9kZWwsXCJtb250aFwiKT90LmdldERhdGUoKTotMX19LG1ldGhvZHM6e3NldFllYXI6ZnVuY3Rpb24odCxlKXt0aGlzLmVkaXRhYmxlJiYoZXx8KHRoaXMudmlldz1cIm1vbnRoXCIpLHRoaXMubW9kZWw9bmV3IERhdGUobmV3IERhdGUodGhpcy5tb2RlbCkuc2V0RnVsbFllYXIodGhpcy5fX3BhcnNlVHlwZVZhbHVlKFwieWVhclwiLHQpKSkpfSxzZXRNb250aDpmdW5jdGlvbih0LGUpe3RoaXMuZWRpdGFibGUmJihlfHwodGhpcy52aWV3PVwiZGF5XCIpLHRoaXMubW9kZWw9YWRqdXN0RGF0ZSh0aGlzLm1vZGVsLHttb250aDp0fSkpfSxtb3ZlRmFrZU1vbnRoOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZmFrZU1vbnRoKyh0PjA/MTotMSksaT10aGlzLmZha2VZZWFyO2lmKGU8MT8oZT0xMixpLT0xKTplPjEyJiYoZT0xLGkrPTEpLG51bGwhPT10aGlzLnBtaW4mJnQ+MCl7dmFyIHM9dGhpcy5wbWluLmdldEZ1bGxZZWFyKCksbj10aGlzLnBtaW4uZ2V0TW9udGgoKSsxO2k8cz8oaT1zLGU9bik6aT09PXMmJmU8biYmKGU9bil9aWYobnVsbCE9PXRoaXMucG1heCYmdDwwKXt2YXIgbz10aGlzLnBtYXguZ2V0RnVsbFllYXIoKSxyPXRoaXMucG1heC5nZXRNb250aCgpKzE7aT5vPyhpPW8sZT1yKTppPT09byYmZT5yJiYoZT1yKX10aGlzLmZha2VWYWx1ZS55ZWFyPWksdGhpcy5mYWtlVmFsdWUubW9udGg9ZX0sc2V0RGF5OmZ1bmN0aW9uKHQsZSxpLHMpe2lmKHRoaXMuZWRpdGFibGUpe2lmKGkmJnMpe3ZhciBuPWFkanVzdERhdGUodGhpcy5tb2RlbCx7bW9udGg6c30pO24uc2V0RnVsbFllYXIodGhpcy5fX3BhcnNlVHlwZVZhbHVlKFwieWVhclwiLGkpKSxuLnNldERhdGUodGhpcy5fX3BhcnNlVHlwZVZhbHVlKFwiZGF0ZVwiLHQpKSx0aGlzLm1vZGVsPW59ZWxzZSB0aGlzLm1vZGVsPW5ldyBEYXRlKG5ldyBEYXRlKHRoaXMubW9kZWwpLnNldERhdGUodGhpcy5fX3BhcnNlVHlwZVZhbHVlKFwiZGF0ZVwiLHQpKSk7ZXx8XCJkYXRlXCIhPT10aGlzLnR5cGU/ZXx8KHRoaXMudmlldz1cImhvdXJcIik6KHRoaXMuJGVtaXQoXCJjYW5DbG9zZVwiKSx0aGlzLm1pbmltYWwmJnRoaXMuc2V0Vmlldyh0aGlzLmRlZmF1bHRWaWV3KSl9fSxzZXRIb3VyOmZ1bmN0aW9uKHQpe3RoaXMuZWRpdGFibGUmJih0PXRoaXMuX19wYXJzZVR5cGVWYWx1ZShcImhvdXJcIix0KSwhdGhpcy5jb21wdXRlZEZvcm1hdDI0aCYmdDwxMiYmIXRoaXMuYW0mJih0Kz0xMiksdGhpcy5tb2RlbD1uZXcgRGF0ZShuZXcgRGF0ZSh0aGlzLm1vZGVsKS5zZXRIb3Vycyh0KSkpfSxzZXRNaW51dGU6ZnVuY3Rpb24odCl7dGhpcy5lZGl0YWJsZSYmKHRoaXMubW9kZWw9bmV3IERhdGUobmV3IERhdGUodGhpcy5tb2RlbCkuc2V0TWludXRlcyh0aGlzLl9fcGFyc2VUeXBlVmFsdWUoXCJtaW51dGVcIix0KSkpKX0sc2V0VmlldzpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fY2FsY1ZpZXcodCk7dGhpcy52aWV3IT09ZSYmKHRoaXMudmlldz1lKX0sX19jYWxjVmlldzpmdW5jdGlvbih0KXtzd2l0Y2godGhpcy50eXBlKXtjYXNlXCJ0aW1lXCI6cmV0dXJuW1wiaG91clwiLFwibWludXRlXCJdLmluY2x1ZGVzKHQpP3Q6XCJob3VyXCI7Y2FzZVwiZGF0ZVwiOnJldHVybltcInllYXJcIixcIm1vbnRoXCIsXCJkYXlcIl0uaW5jbHVkZXModCk/dDpcImRheVwiO2RlZmF1bHQ6cmV0dXJuW1wieWVhclwiLFwibW9udGhcIixcImRheVwiLFwiaG91clwiLFwibWludXRlXCJdLmluY2x1ZGVzKHQpP3Q6XCJkYXlcIn19LF9fcGFkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuKHQ8MTA/ZXx8XCIwXCI6XCJcIikrdH0sX19zY3JvbGxWaWV3OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoXCJ5ZWFyXCI9PT10aGlzLnZpZXd8fFwibW9udGhcIj09PXRoaXMudmlldyl7dCYmc2V0VGltZW91dChmdW5jdGlvbigpe2UuX19zY3JvbGxWaWV3KCl9LDIwMCk7dmFyIGk9dGhpcy4kcmVmcy5zZWxlY3RvcixzPWk/aS5xdWVyeVNlbGVjdG9yKFwiLnEtYnRuOm5vdCguYWN0aXZlKVwiKTpudWxsLG49aT9pLnF1ZXJ5U2VsZWN0b3IoXCIucS1idG4uYWN0aXZlXCIpOm51bGwsbz1pP2kub2Zmc2V0SGVpZ2h0OjA7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt2YXIgdD1cInllYXJcIj09PWUudmlldz9lLnllYXItZS55ZWFySW50ZXJ2YWwubWluOmUubW9udGgtZS5tb250aE1pbi0xO28mJm4mJihpLnNjcm9sbFRvcD10KihzP3Mub2Zmc2V0SGVpZ2h0OjApKyhuLm9mZnNldEhlaWdodC1vKS8yKX0pfX0sX19kcmFnU3RhcnQ6ZnVuY3Rpb24odCxlKXtzdG9wQW5kUHJldmVudCh0KTt2YXIgaT10aGlzLiRyZWZzLmNsb2NrLHM9b2Zmc2V0KGkpO3RoaXMuY2VudGVyQ2xvY2tQb3M9e3RvcDpzLnRvcCtoZWlnaHQoaSkvMixsZWZ0OnMubGVmdCt3aWR0aChpKS8yfSx0aGlzLmRyYWdnaW5nPSEwLHRoaXMuX191cGRhdGVDbG9jayh0LGUpfSxfX2RyYWdNb3ZlOmZ1bmN0aW9uKHQpe3RoaXMuZHJhZ2dpbmcmJihzdG9wQW5kUHJldmVudCh0KSx0aGlzLl9fdXBkYXRlQ2xvY2sodCkpfSxfX2RyYWdTdG9wOmZ1bmN0aW9uKHQsZSl7c3RvcEFuZFByZXZlbnQodCksdGhpcy5kcmFnZ2luZz0hMSx2b2lkIDAhPT10JiZ0aGlzLl9fdXBkYXRlQ2xvY2sodCxlKSxcIm1pbnV0ZVwiPT09dGhpcy52aWV3Pyh0aGlzLiRlbWl0KFwiY2FuQ2xvc2VcIiksdGhpcy5taW5pbWFsJiZ0aGlzLnNldFZpZXcodGhpcy5kZWZhdWx0VmlldykpOnRoaXMudmlldz1cIm1pbnV0ZVwifSxfX3VwZGF0ZUNsb2NrOmZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwIT09ZSlyZXR1cm4gdGhpc1tcImhvdXJcIj09PXRoaXMudmlldz9cInNldEhvdXJcIjpcInNldE1pbnV0ZVwiXShlKTt2YXIgaT1wb3NpdGlvbih0KSxzPU1hdGguYWJzKGkudG9wLXRoaXMuY2VudGVyQ2xvY2tQb3MudG9wKSxuPU1hdGguc3FydChNYXRoLnBvdyhNYXRoLmFicyhpLnRvcC10aGlzLmNlbnRlckNsb2NrUG9zLnRvcCksMikrTWF0aC5wb3coTWF0aC5hYnMoaS5sZWZ0LXRoaXMuY2VudGVyQ2xvY2tQb3MubGVmdCksMikpLG89TWF0aC5hc2luKHMvbikqKDE4MC9NYXRoLlBJKTtpZihvPWkudG9wPHRoaXMuY2VudGVyQ2xvY2tQb3MudG9wP3RoaXMuY2VudGVyQ2xvY2tQb3MubGVmdDxpLmxlZnQ/OTAtbzoyNzArbzp0aGlzLmNlbnRlckNsb2NrUG9zLmxlZnQ8aS5sZWZ0P28rOTA6MjcwLW8sXCJob3VyXCI9PT10aGlzLnZpZXcpe3ZhciByPU1hdGgucm91bmQoby8zMCk7dGhpcy5jb21wdXRlZEZvcm1hdDI0aCYmKHI/bjw4NSYmKHIrPTEyKTpyPW48ODU/MDoxMiksdGhpcy5zZXRIb3VyKHIpfWVsc2UgdGhpcy5zZXRNaW51dGUoTWF0aC5yb3VuZChvLzYpKX0sX19yZXBlYXRUaW1lb3V0OmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heCgxMDAsMzAwLXQqdCoxMCl9LF9fZ2V0VG9wU2VjdGlvbjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9W3RoaXMudHlwZUhhc0RhdGU/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtd2Vla2RheXN0cmluZ1wifSxbdGhpcy53ZWVrRGF5U3RyaW5nXSk6dm9pZCAwLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2xcIn0pXTtpZih0aGlzLnR5cGVIYXNEYXRlKXt2YXIgcz1bdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtZGF0ZXN0cmluZyByb3cganVzdGlmeS1jZW50ZXIgaXRlbXMtZW5kXCJ9LFt0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtbGluayBzbWFsbCBjb2wtYXV0byBjb2wtbWQtMTJcIixjbGFzczp7YWN0aXZlOlwibW9udGhcIj09PXRoaXMudmlld30sYXR0cnM6e3RhYmluZGV4OjB9LG9uOntrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPWdldEV2ZW50S2V5KHQpOzM4PT09aXx8Mzk9PT1pPyhzdG9wQW5kUHJldmVudCh0KSxlLnNldE1vbnRoKGUubW9udGgtMSwhMCkpOjQwPT09aXx8Mzc9PT1pPyhzdG9wQW5kUHJldmVudCh0KSxlLnNldE1vbnRoKGUubW9udGgrMSwhMCkpOjEzIT09aSYmMjAhPT1pfHwoZS52aWV3PVwibW9udGhcIil9fX0sW3QoXCJzcGFuXCIse2F0dHJzOnt0YWJpbmRleDotMX0sb246dGhpcy5kaXNhYmxlP3t9OntjbGljazpmdW5jdGlvbigpe2Uudmlldz1cIm1vbnRoXCJ9fX0sW3RoaXMubW9udGhTdHJpbmddKV0pLHQoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1saW5rIGNvbC1hdXRvIGNvbC1tZC0xMlwiLGNsYXNzOnthY3RpdmU6XCJkYXlcIj09PXRoaXMudmlld30sYXR0cnM6e3RhYmluZGV4OjB9LG9uOntrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPWdldEV2ZW50S2V5KHQpOzM3PT09aXx8Mzg9PT1pPyhzdG9wQW5kUHJldmVudCh0KSxlLnNldERheShlLmRheS0oMzc9PT1pPzE6NyksITApKTozOT09PWl8fDQwPT09aT8oc3RvcEFuZFByZXZlbnQodCksZS5zZXREYXkoZS5kYXkrKDM5PT09aT8xOjcpLCEwKSk6MTMhPT1pJiYyMCE9PWl8fChlLnZpZXc9XCJkYXlcIil9fX0sW3QoXCJzcGFuXCIse2F0dHJzOnt0YWJpbmRleDotMX0sb246dGhpcy5kaXNhYmxlP3t9OntjbGljazpmdW5jdGlvbigpe2Uudmlldz1cImRheVwifX19LFt0aGlzLmRheV0pXSksdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWxpbmsgc21hbGwgY29sLWF1dG8gY29sLW1kLTEyXCIsY2xhc3M6e2FjdGl2ZTpcInllYXJcIj09PXRoaXMudmlld30sYXR0cnM6e3RhYmluZGV4OjB9LG9uOntrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPWdldEV2ZW50S2V5KHQpOzM4PT09aXx8Mzk9PT1pPyhzdG9wQW5kUHJldmVudCh0KSxlLnNldFllYXIoZS55ZWFyLTEsITApKTo0MD09PWl8fDM3PT09aT8oc3RvcEFuZFByZXZlbnQodCksZS5zZXRZZWFyKGUueWVhcisxLCEwKSk6MTMhPT1pJiYyMCE9PWl8fChlLnZpZXc9XCJ5ZWFyXCIpfX19LFt0KFwic3BhblwiLHthdHRyczp7dGFiaW5kZXg6LTF9LG9uOnRoaXMuZGlzYWJsZT97fTp7Y2xpY2s6ZnVuY3Rpb24oKXtlLnZpZXc9XCJ5ZWFyXCJ9fX0sW3RoaXMueWVhcl0pXSldKV07aS5wdXNoKHQoXCJkaXZcIixzKSl9aWYodGhpcy50eXBlSGFzVGltZSl7dmFyIG49IXRoaXMuY29tcHV0ZWRGb3JtYXQyNGgmJnQoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1hbXBtIGNvbHVtblwiLGF0dHJzOnt0YWJpbmRleDowfSxvbjp0aGlzLl9fYW1QbUV2ZW50c30sW3QoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1saW5rXCIsY2xhc3M6e2FjdGl2ZTp0aGlzLmFtfX0sW3QoXCJzcGFuXCIse2F0dHJzOnt0YWJpbmRleDotMX0sb246e2NsaWNrOnRoaXMudG9nZ2xlQW1QbX19LFtcIkFNXCJdKV0pLHQoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1saW5rXCIsY2xhc3M6e2FjdGl2ZTohdGhpcy5hbX19LFt0KFwic3BhblwiLHthdHRyczp7dGFiaW5kZXg6LTF9LG9uOntjbGljazp0aGlzLnRvZ2dsZUFtUG19fSxbXCJQTVwiXSldKV0pLG89W3QoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwiY29sLWF1dG9cIixzdHlsZTp7dGV4dEFsaWduOlwicmlnaHRcIn19LFt0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtbGlua1wiLHN0eWxlOnt0ZXh0QWxpZ246XCJyaWdodFwifSxjbGFzczp7YWN0aXZlOlwiaG91clwiPT09dGhpcy52aWV3fSxhdHRyczp7dGFiaW5kZXg6MH0sb246e2tleWRvd246ZnVuY3Rpb24odCl7dmFyIGk9Z2V0RXZlbnRLZXkodCk7NDA9PT1pfHwzNz09PWk/KHN0b3BBbmRQcmV2ZW50KHQpLGUuc2V0SG91cihlLmhvdXItMSwhMCkpOjM4PT09aXx8Mzk9PT1pPyhzdG9wQW5kUHJldmVudCh0KSxlLnNldEhvdXIoZS5ob3VyKzEsITApKToxMyE9PWkmJjIwIT09aXx8KGUudmlldz1cImhvdXJcIil9fX0sW3QoXCJzcGFuXCIse2F0dHJzOnt0YWJpbmRleDotMX0sb246dGhpcy5kaXNhYmxlP3t9OntjbGljazpmdW5jdGlvbigpe2Uudmlldz1cImhvdXJcIn19fSxbdGhpcy5jb21wdXRlZEZvcm1hdDI0aD90aGlzLl9fcGFkKHRoaXMuaG91cik6dGhpcy5ob3VyXSldKV0pLHQoXCJzcGFuXCIse3N0eWxlOlwib3BhY2l0eTowLjY7XCJ9LFtcIjpcIl0pLHQoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwiY29sLWF1dG8gcm93IG5vLXdyYXAgaXRlbXMtY2VudGVyXCIsc3R5bGU6e3RleHRBbGlnbjpcImxlZnRcIn19LFt0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtbGlua1wiLHN0eWxlOnt0ZXh0QWxpZ246XCJsZWZ0XCJ9LGNsYXNzOnthY3RpdmU6XCJtaW51dGVcIj09PXRoaXMudmlld30sYXR0cnM6e3RhYmluZGV4OjB9LG9uOntrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPWdldEV2ZW50S2V5KHQpOzQwPT09aXx8Mzc9PT1pPyhzdG9wQW5kUHJldmVudCh0KSxlLnNldE1pbnV0ZShlLm1pbnV0ZS0xLCEwKSk6Mzg9PT1pfHwzOT09PWk/KHN0b3BBbmRQcmV2ZW50KHQpLGUuc2V0TWludXRlKGUubWludXRlKzEsITApKToxMyE9PWkmJjIwIT09aXx8KGUudmlldz1cIm1pbnV0ZVwiKX19fSxbdChcInNwYW5cIix7YXR0cnM6e3RhYmluZGV4Oi0xfSxvbjp0aGlzLmRpc2FibGU/e306e2NsaWNrOmZ1bmN0aW9uKCl7ZS52aWV3PVwibWludXRlXCJ9fX0sW3RoaXMuX19wYWQodGhpcy5taW51dGUpXSldKSxuXSldO2kucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS10aW1lIHJvdyBzY3JvbGwgZmxleC1jZW50ZXJcIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWNsb2Nrc3RyaW5nIGNvbCByb3cganVzdGlmeS1jZW50ZXIgaXRlbXMtc3RhcnRcIn0sbyldKSl9cmV0dXJuIGkucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sXCJ9KSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtaGVhZGVyIGNvbHVtbiBuby13cmFwIGl0ZW1zLWNlbnRlclwifSxpKX0sX19nZXRZZWFyVmlldzpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcyxpPVt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sLWdyb3dcIn0pXSxzPWZ1bmN0aW9uKHMpe2kucHVzaCh0KFFCdG4se3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1idG4gbm8tYm9yZGVyLXJhZGl1c1wiLGNsYXNzOnthY3RpdmU6cz09PWUueWVhcn0sYXR0cnM6e3RhYmluZGV4Oi0xfSxwcm9wczp7ZmxhdDohMCxkaXNhYmxlOiFlLmVkaXRhYmxlfSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLnNldFllYXIocyl9fX0sW3NdKSl9LG49dGhpcy55ZWFySW50ZXJ2YWwubWluO248PXRoaXMueWVhckludGVydmFsLm1heDtuKyspcyhuKTtyZXR1cm4gaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wtZ3Jvd1wifSkpLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLXZpZXcteWVhciBmaXQgY29sdW1uIG5vLXdyYXBcIn0saSl9LF9fZ2V0TW9udGhWaWV3OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLGk9W3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wtZ3Jvd1wifSldLHM9ZnVuY3Rpb24ocyl7aS5wdXNoKHQoUUJ0bix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWJ0biBuby1ib3JkZXItcmFkaXVzXCIsY2xhc3M6e2FjdGl2ZTpzKzE9PT1lLm1vbnRofSxhdHRyczp7dGFiaW5kZXg6LTF9LHByb3BzOntmbGF0OiEwLGRpc2FibGU6IWUuZWRpdGFibGV9LG9uOntjbGljazpmdW5jdGlvbigpe2Uuc2V0TW9udGgocysxKX19fSxbZS4kcS5pMThuLmRhdGUubW9udGhzW3NdXSkpfSxuPXRoaXMubW9udGhJbnRlcnZhbC5taW47bjw9dGhpcy5tb250aEludGVydmFsLm1heDtuKyspcyhuKTtyZXR1cm4gaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wtZ3Jvd1wifSkpLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLXZpZXctbW9udGggZml0IGNvbHVtbiBuby13cmFwXCJ9LGkpfSxfX2dldERheVZpZXc6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMsaT1bXSxzPXRoaXMuZmFrZU1vbnRoPT09dGhpcy5tb250aCYmdGhpcy5mYWtlWWVhcj09PXRoaXMueWVhcj90aGlzLmRheTotMSxuPTE7bjw9dGhpcy5maWxsZXJEYXlzO24rKylpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtZmlsbGVyZGF5XCJ9KSk7aWYodGhpcy5taW4pZm9yKHZhciBvPTE7bzw9dGhpcy5iZWZvcmVNaW5EYXlzO28rKylpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJvdyBpdGVtcy1jZW50ZXIgY29udGVudC1jZW50ZXIganVzdGlmeS1jZW50ZXIgZGlzYWJsZWRcIixjbGFzczp7XCJxLWRhdGV0aW1lLWRheS1hY3RpdmVcIjplLmlzVmFsaWQmJm89PT1zfX0sW3QoXCJzcGFuXCIsW29dKV0pKTtmb3IodmFyIHI9dGhpcy5kYXRlSW50ZXJ2YWwsYT1yLm1pbixsPXIubWF4LGM9ZnVuY3Rpb24obil7aS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJyb3cgaXRlbXMtY2VudGVyIGNvbnRlbnQtY2VudGVyIGp1c3RpZnktY2VudGVyIGN1cnNvci1wb2ludGVyXCIsY2xhc3M6W2UuY29sb3ImJm49PT1zP1widGV4dC1cIitlLmNvbG9yOm51bGwse1wicS1kYXRldGltZS1kYXktYWN0aXZlXCI6ZS5pc1ZhbGlkJiZuPT09cyxcInEtZGF0ZXRpbWUtZGF5LXRvZGF5XCI6bj09PWUudG9kYXksZGlzYWJsZWQ6IWUuZWRpdGFibGV9XSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLnNldERheShuLCExLGUuZmFrZVllYXIsZS5mYWtlTW9udGgpfX19LFt0KFwic3BhblwiLFtuXSldKSl9LGg9YTtoPD1sO2grKyljKGgpO2lmKHRoaXMubWF4KWZvcih2YXIgdT0xO3U8PXRoaXMuYWZ0ZXJNYXhEYXlzO3UrKylpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJvdyBpdGVtcy1jZW50ZXIgY29udGVudC1jZW50ZXIganVzdGlmeS1jZW50ZXIgZGlzYWJsZWRcIixjbGFzczp7XCJxLWRhdGV0aW1lLWRheS1hY3RpdmVcIjplLmlzVmFsaWQmJnUrZS5tYXhEYXk9PT1zfX0sW3QoXCJzcGFuXCIsW3UrZS5tYXhEYXldKV0pKTtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtdmlldy1kYXlcIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJyb3cgaXRlbXMtY2VudGVyIGNvbnRlbnQtY2VudGVyXCJ9LFt0KFFCdG4se3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1hcnJvd1wiLGF0dHJzOnt0YWJpbmRleDotMX0scHJvcHM6e3JvdW5kOiEwLGRlbnNlOiEwLGZsYXQ6ITAsaWNvbjp0aGlzLmRhdGVBcnJvd1swXSxyZXBlYXRUaW1lb3V0OnRoaXMuX19yZXBlYXRUaW1lb3V0LGRpc2FibGU6dGhpcy5iZWZvcmVNaW5EYXlzPjB8fHRoaXMuZGlzYWJsZXx8dGhpcy5yZWFkb25seX0sb246e2NsaWNrOmZ1bmN0aW9uKCl7ZS5tb3ZlRmFrZU1vbnRoKC0xKX19fSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCBxLWRhdGV0aW1lLW1vbnRoLXN0YW1wXCJ9LFt0aGlzLm1vbnRoU3RhbXBdKSx0KFFCdG4se3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1hcnJvd1wiLGF0dHJzOnt0YWJpbmRleDotMX0scHJvcHM6e3JvdW5kOiEwLGRlbnNlOiEwLGZsYXQ6ITAsaWNvbjp0aGlzLmRhdGVBcnJvd1sxXSxyZXBlYXRUaW1lb3V0OnRoaXMuX19yZXBlYXRUaW1lb3V0LGRpc2FibGU6dGhpcy5hZnRlck1heERheXM+MHx8dGhpcy5kaXNhYmxlfHx0aGlzLnJlYWRvbmx5fSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLm1vdmVGYWtlTW9udGgoMSl9fX0pXSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtd2Vla2RheXMgcm93IG5vLXdyYXAgaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnRcIn0sdGhpcy5oZWFkZXJEYXlOYW1lcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQoXCJkaXZcIixbZV0pfSkpLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWRheXMgcm93IHdyYXAgaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnQgY29udGVudC1jZW50ZXJcIn0saSldKX0sX19nZXRDbG9ja1ZpZXc6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPVtdO2lmKFwiaG91clwiPT09dGhpcy52aWV3KXt2YXIgcyxuLG89XCJcIjt0aGlzLmNvbXB1dGVkRm9ybWF0MjRoPyhzPTAsbj0yNCxvPVwiIGZtdDI0XCIpOihzPTEsbj0xMyk7Zm9yKHZhciByPWZ1bmN0aW9uKHMpe2kucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1jbG9jay1wb3NpdGlvblwiK28sY2xhc3M6W1wicS1kYXRldGltZS1jbG9jay1wb3MtXCIrcyxzPT09ZS5ob3VyP1wiYWN0aXZlXCI6XCJcIl0sb246e1wiIW1vdXNlZG93blwiOmZ1bmN0aW9uKHQpe3JldHVybiBlLl9fZHJhZ1N0YXJ0KHQscyl9LFwiIW1vdXNldXBcIjpmdW5jdGlvbih0KXtyZXR1cm4gZS5fX2RyYWdTdG9wKHQscyl9fX0sW3QoXCJzcGFuXCIsW3N8fFwiMDBcIl0pXSkpfSxhPXM7YTxuO2ErKylyKGEpfWVsc2UgZm9yKHZhciBsPTA7bDwxMjtsKyspe3ZhciBjPTUqbDtpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb25cIixjbGFzczpbXCJxLWRhdGV0aW1lLWNsb2NrLXBvcy1cIitsLGM9PT1lLm1pbnV0ZT9cImFjdGl2ZVwiOlwiXCJdfSxbdChcInNwYW5cIixbY10pXSkpfXJldHVybiB0KFwiZGl2XCIse3JlZjpcImNsb2NrXCIsa2V5OlwiY2xvY2tcIit0aGlzLnZpZXcsc3RhdGljQ2xhc3M6XCJjb2x1bW4gaXRlbXMtY2VudGVyIGNvbnRlbnQtY2VudGVyIGp1c3RpZnktY2VudGVyXCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1jbG9jayBjdXJzb3ItcG9pbnRlclwiLG9uOnttb3VzZWRvd246dGhpcy5fX2RyYWdTdGFydCxtb3VzZW1vdmU6dGhpcy5fX2RyYWdNb3ZlLG1vdXNldXA6dGhpcy5fX2RyYWdTdG9wLHRvdWNoc3RhcnQ6dGhpcy5fX2RyYWdTdGFydCx0b3VjaG1vdmU6dGhpcy5fX2RyYWdNb3ZlLHRvdWNoZW5kOnRoaXMuX19kcmFnU3RvcH19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1jbG9jay1jaXJjbGUgZnVsbC13aWR0aCBmdWxsLWhlaWdodFwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtY2xvY2stY2VudGVyXCJ9KSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1jbG9jay1wb2ludGVyXCIsc3R5bGU6dGhpcy5jbG9ja1BvaW50ZXJTdHlsZX0sW3QoXCJzcGFuXCIpXSksaV0pXSldKX0sX19nZXRWaWV3U2VjdGlvbjpmdW5jdGlvbih0KXtzd2l0Y2godGhpcy52aWV3KXtjYXNlXCJ5ZWFyXCI6cmV0dXJuIHRoaXMuX19nZXRZZWFyVmlldyh0KTtjYXNlXCJtb250aFwiOnJldHVybiB0aGlzLl9fZ2V0TW9udGhWaWV3KHQpO2Nhc2VcImRheVwiOnJldHVybiB0aGlzLl9fZ2V0RGF5Vmlldyh0KTtjYXNlXCJob3VyXCI6Y2FzZVwibWludXRlXCI6cmV0dXJuIHRoaXMuX19nZXRDbG9ja1ZpZXcodCl9fX0sY3JlYXRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fX2FtUG1FdmVudHM9e2tleWRvd246ZnVuY3Rpb24oZSl7dmFyIGk9Z2V0RXZlbnRLZXkoZSk7WzEzLDMyLDM3LDM4LDM5LDQwXS5pbmNsdWRlcyhpKSYmKHN0b3BBbmRQcmV2ZW50KGUpLHQudG9nZ2xlQW1QbSgpKX19fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5fX3Njcm9sbFZpZXcoITApfSxyZW5kZXI6ZnVuY3Rpb24odCl7aWYodGhpcy5jYW5SZW5kZXIpcmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lIHJvd1wiLGNsYXNzOnRoaXMuY2xhc3Nlc30sWyF0aGlzLm1pbmltYWwmJnRoaXMuX19nZXRUb3BTZWN0aW9uKHQpfHx2b2lkIDAsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtY29udGVudCBzY3JvbGxcIn0sW3QoXCJkaXZcIix7cmVmOlwic2VsZWN0b3JcIixzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtc2VsZWN0b3Igcm93IGl0ZW1zLWNlbnRlclwifSxbdChcImRpdlwiLHtjbGFzczpcImNvbFwifSksdGhpcy5fX2dldFZpZXdTZWN0aW9uKHQpLHQoXCJkaXZcIix7Y2xhc3M6XCJjb2xcIn0pXSldLmNvbmNhdCh0aGlzLiRzbG90cy5kZWZhdWx0KSldKX19LGNvbnRlbnRDc3MkMT17bWF4V2lkdGg6XCI5NXZ3XCIsbWF4SGVpZ2h0OlwiOTh2aFwifSxRRGF0ZXRpbWU9e25hbWU6XCJRRGF0ZXRpbWVcIixtaXhpbnM6W0ZyYW1lTWl4aW4sRGlzcGxheU1vZGVNaXhpbixDYW5SZW5kZXJNaXhpbl0scHJvcHM6T2JqZWN0LmFzc2lnbih7fSxpbnB1dCxpbmxpbmUpLHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXshdGhpcy5kaXNhYmxlJiZ0aGlzLmlzUG9wb3ZlciYmKHRoaXMubW9kZWw9Y2xvbmUkMSh0KSl9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3RyYW5zaXRpb246bnVsbCxtb2RlbDpudWxsLGZvY3VzZWQ6ITF9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5tb2RlbD1jbG9uZSQxKHRoaXMuY29tcHV0ZWRWYWx1ZSksdGhpcy5pc1BvcG92ZXJ8fCh0aGlzLnRyYW5zaXRpb249XCJxLW1vZGFsXCIpfSxjb21wdXRlZDp7Y29tcHV0ZWRGb3JtYXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mb3JtYXQ/dGhpcy5mb3JtYXQ6XCJkYXRlXCI9PT10aGlzLnR5cGU/XCJZWVlZL01NL0REXCI6XCJ0aW1lXCI9PT10aGlzLnR5cGU/XCJISDptbVwiOlwiWVlZWS9NTS9ERCBISDptbTpzc1wifSxhY3R1YWxWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRpc3BsYXlWYWx1ZT90aGlzLmRpc3BsYXlWYWx1ZTppc1ZhbGlkKHRoaXMudmFsdWUpJiZ0aGlzLmNhblJlbmRlcj9mb3JtYXREYXRlKHRoaXMudmFsdWUsdGhpcy5jb21wdXRlZEZvcm1hdCx0aGlzLiRxLmkxOG4uZGF0ZSk6XCJcIn0sY29tcHV0ZWRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiBpc1ZhbGlkKHRoaXMudmFsdWUpP3RoaXMudmFsdWU6dGhpcy5kZWZhdWx0VmFsdWV9LGNvbXB1dGVkQ2xlYXJWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzLmNsZWFyVmFsdWU/dGhpcy5kZWZhdWx0VmFsdWU6dGhpcy5jbGVhclZhbHVlfSxpc0NsZWFyYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkaXRhYmxlJiZ0aGlzLmNsZWFyYWJsZSYmIWlzU2FtZURhdGUodGhpcy5jb21wdXRlZENsZWFyVmFsdWUsdGhpcy52YWx1ZSl9LG1vZGFsQnRuQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb2xvcn19LG1ldGhvZHM6e3RvZ2dsZTpmdW5jdGlvbigpe3RoaXMuJHJlZnMucG9wdXAmJnRoaXNbdGhpcy4kcmVmcy5wb3B1cC5zaG93aW5nP1wiaGlkZVwiOlwic2hvd1wiXSgpfSxzaG93OmZ1bmN0aW9uKCl7aWYoIXRoaXMuZGlzYWJsZSlyZXR1cm4gdGhpcy5fX3NldE1vZGVsKHRoaXMuY29tcHV0ZWRWYWx1ZSksdGhpcy4kcmVmcy5wb3B1cC5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcmVmcy5wb3B1cD90aGlzLiRyZWZzLnBvcHVwLmhpZGUoKTpQcm9taXNlLnJlc29sdmUoKX0sX19oYW5kbGVLZXlEb3duOmZ1bmN0aW9uKHQpe3N3aXRjaChnZXRFdmVudEtleSh0KSl7Y2FzZSAxMzpjYXNlIDMyOnJldHVybiBzdG9wQW5kUHJldmVudCh0KSx0aGlzLnNob3coKTtjYXNlIDg6dGhpcy5pc0NsZWFyYWJsZSYmdGhpcy5jbGVhcigpfX0sX19vbkZvY3VzOmZ1bmN0aW9uKCl7aWYoIXRoaXMuZGlzYWJsZSYmIXRoaXMuZm9jdXNlZCl7dmFyIHQ9dGhpcy4kcmVmcy50YXJnZXQ7dCYmdC5zZXRWaWV3KHRoaXMuZGVmYXVsdFZpZXcsITApLHRoaXMubW9kZWw9Y2xvbmUkMSh0aGlzLmNvbXB1dGVkVmFsdWUpLHRoaXMuZm9jdXNlZD0hMCx0aGlzLiRlbWl0KFwiZm9jdXNcIil9fSxfX29uQmx1cjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuZm9jdXNlZCYmc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7ZS4kcmVmcy5wb3B1cCYmZS4kcmVmcy5wb3B1cC5zaG93aW5nJiYodD09PWRvY3VtZW50LmJvZHl8fGUuJHJlZnMucG9wdXAuJGVsLmNvbnRhaW5zKHQpKXx8KGUuX19vbkhpZGUoKSxlLmhpZGUoKSl9LDEpfSxfX29uSGlkZTpmdW5jdGlvbih0LGUpeyh0fHx0aGlzLmlzUG9wb3ZlcikmJnRoaXMuX191cGRhdGUodCksdGhpcy5mb2N1c2VkJiYoZT90aGlzLiRlbC5mb2N1cygpOih0aGlzLiRlbWl0KFwiYmx1clwiKSx0aGlzLmZvY3VzZWQ9ITEpKX0sX19zZXRNb2RlbDpmdW5jdGlvbih0LGUpe3RoaXMubW9kZWw9Y2xvbmUkMSh0KSwoZXx8dGhpcy5pc1BvcG92ZXIpJiZ0aGlzLl9fdXBkYXRlKGUpfSxfX3VwZGF0ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7aXNTYW1lRGF0ZShlLm1vZGVsLGUudmFsdWUpfHwoZS4kZW1pdChcImlucHV0XCIsZS5tb2RlbCksdCYmZS4kZW1pdChcImNoYW5nZVwiLGUubW9kZWwpKX0pfSxfX3Njcm9sbFZpZXc6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRyZWZzLnRhcmdldDt0JiZ0Ll9fc2Nyb2xsVmlldygpfSxfX2dldFBpY2tlcjpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXM7cmV0dXJuW3QoUURhdGV0aW1lUGlja2VyLHtyZWY6XCJ0YXJnZXRcIixzdGF0aWNDbGFzczpcIm5vLWJvcmRlclwiLGNsYXNzOntcImRhdGV0aW1lLWlvcy1tb2RhbFwiOiExfSxwcm9wczp7dHlwZTp0aGlzLnR5cGUsbWluOnRoaXMubWluLG1heDp0aGlzLm1heCxoZWFkZXJMYWJlbDp0aGlzLmhlYWRlckxhYmVsLG1pbmltYWw6dGhpcy5taW5pbWFsLGZvcm1hdE1vZGVsOnRoaXMuZm9ybWF0TW9kZWwsZm9ybWF0MjRoOnRoaXMuZm9ybWF0MjRoLGZpcnN0RGF5T2ZXZWVrOnRoaXMuZmlyc3REYXlPZldlZWssZGVmYXVsdFZpZXc6dGhpcy5kZWZhdWx0Vmlldyxjb2xvcjp0aGlzLmludmVydGVkTGlnaHQ/XCJncmV5LTdcIjp0aGlzLmNvbG9yLGRhcms6dGhpcy5kYXJrLHZhbHVlOnRoaXMubW9kZWwsZGlzYWJsZTp0aGlzLmRpc2FibGUscmVhZG9ubHk6dGhpcy5yZWFkb25seSxub1BhcmVudEZpZWxkOiEwfSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGkuJG5leHRUaWNrKGZ1bmN0aW9uKCl7cmV0dXJuIGkuX19zZXRNb2RlbCh0KX0pfSxjYW5DbG9zZTpmdW5jdGlvbigpe2kuaXNQb3BvdmVyJiZpLmhpZGUoKX19fSxbZT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwibW9kYWwtYnV0dG9ucyBtb2RhbC1idXR0b25zLXRvcCByb3cgZnVsbC13aWR0aFwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbFwifSksdChRQnRuLHtwcm9wczp7Y29sb3I6dGhpcy5tb2RhbEJ0bkNvbG9yLGZsYXQ6ITAsbGFiZWw6dGhpcy5jYW5jZWxMYWJlbHx8dGhpcy4kcS5pMThuLmxhYmVsLmNhbmNlbCxub1JpcHBsZTohMH0sb246e2NsaWNrOmZ1bmN0aW9uKCl7aS5fX29uSGlkZSghMSwhMCksaS5oaWRlKCl9fX0pLHRoaXMuZWRpdGFibGU/dChRQnRuLHtwcm9wczp7Y29sb3I6dGhpcy5tb2RhbEJ0bkNvbG9yLGZsYXQ6ITAsbGFiZWw6dGhpcy5va0xhYmVsfHx0aGlzLiRxLmkxOG4ubGFiZWwuc2V0LG5vUmlwcGxlOiEwLGRpc2FibGU6IXRoaXMubW9kZWx9LG9uOntjbGljazpmdW5jdGlvbigpe2kuX19vbkhpZGUoITAsITApLGkuaGlkZSgpfX19KTpudWxsXSk6bnVsbF0pXX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFFJbnB1dEZyYW1lLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtaW5wdXRcIixwcm9wczp7cHJlZml4OnRoaXMucHJlZml4LHN1ZmZpeDp0aGlzLnN1ZmZpeCxzdGFja0xhYmVsOnRoaXMuc3RhY2tMYWJlbCxmbG9hdExhYmVsOnRoaXMuZmxvYXRMYWJlbCxlcnJvcjp0aGlzLmVycm9yLHdhcm5pbmc6dGhpcy53YXJuaW5nLGRpc2FibGU6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHksaW52ZXJ0ZWQ6dGhpcy5pbnZlcnRlZCxpbnZlcnRlZExpZ2h0OnRoaXMuaW52ZXJ0ZWRMaWdodCxkYXJrOnRoaXMuZGFyayxoaWRlVW5kZXJsaW5lOnRoaXMuaGlkZVVuZGVybGluZSxiZWZvcmU6dGhpcy5iZWZvcmUsYWZ0ZXI6dGhpcy5hZnRlcixjb2xvcjp0aGlzLmNvbG9yLG5vUGFyZW50RmllbGQ6dGhpcy5ub1BhcmVudEZpZWxkLGZvY3VzZWQ6dGhpcy5mb2N1c2VkfHx0aGlzLiRyZWZzLnBvcHVwJiZ0aGlzLiRyZWZzLnBvcHVwLnNob3dpbmcsZm9jdXNhYmxlOiEwLGxlbmd0aDp0aGlzLmFjdHVhbFZhbHVlLmxlbmd0aH0sbmF0aXZlT246e2NsaWNrOnRoaXMudG9nZ2xlLGZvY3VzOnRoaXMuX19vbkZvY3VzLGJsdXI6dGhpcy5fX29uQmx1cixrZXlkb3duOnRoaXMuX19oYW5kbGVLZXlEb3dufX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgcS1pbnB1dC10YXJnZXQgZWxsaXBzaXNcIixjbGFzczp0aGlzLmZha2VJbnB1dENsYXNzZXN9LFt0aGlzLmZha2VJbnB1dFZhbHVlXSksdGhpcy5pc1BvcG92ZXI/dChRUG9wb3Zlcix7cmVmOlwicG9wdXBcIixwcm9wczp7Y292ZXI6ITAsa2VlcE9uU2NyZWVuOiEwLGRpc2FibGU6dGhpcy5kaXNhYmxlLGFuY2hvckNsaWNrOiExLG1heEhlaWdodDpcIjEwMHZoXCJ9LHNsb3Q6XCJhZnRlclwiLG9uOntzaG93OmZ1bmN0aW9uKHQpe2UuX19vbkZvY3VzKHQpLGUuX19zY3JvbGxWaWV3KCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5fX29uSGlkZSghMCwhMCl9fX0sdGhpcy5fX2dldFBpY2tlcih0KSk6dChRTW9kYWwse3JlZjpcInBvcHVwXCIsc3RhdGljQ2xhc3M6XCJ3aXRoLWJhY2tkcm9wIHEtZGF0ZXRpbWUtbW9kYWxcIixwcm9wczp7Y29udGVudENzczpjb250ZW50Q3NzJDEsbWluaW1pemVkOiEwLHBvc2l0aW9uOm51bGwsdHJhbnNpdGlvbjp0aGlzLnRyYW5zaXRpb259LG9uOntzaG93OnRoaXMuX19zY3JvbGxWaWV3LGRpc21pc3M6ZnVuY3Rpb24oKXtyZXR1cm4gZS5fX29uSGlkZSghMSwhMCl9fX0sdGhpcy5fX2dldFBpY2tlcih0LCEwKSksdGhpcy5pc0NsZWFyYWJsZT90KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uaW5wdXRbXCJjbGVhclwiKyh0aGlzLmlzSW52ZXJ0ZWQ/XCJJbnZlcnRlZFwiOlwiXCIpXX0sbmF0aXZlT246e2NsaWNrOnRoaXMuY2xlYXJ9LHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCJ9KTpudWxsLHQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi5pbnB1dC5kcm9wZG93bn0sc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIn0pXSl9fSxpbnB1dFR5cGVzPVtcInRleHRcIixcInRleHRhcmVhXCIsXCJlbWFpbFwiLFwic2VhcmNoXCIsXCJ0ZWxcIixcImZpbGVcIixcIm51bWJlclwiLFwicGFzc3dvcmRcIixcInVybFwiLFwidGltZVwiLFwiZGF0ZVwiXSxRUmVzaXplT2JzZXJ2YWJsZT17bmFtZTpcIlFSZXNpemVPYnNlcnZhYmxlXCIsbWl4aW5zOltDYW5SZW5kZXJNaXhpbl0scHJvcHM6e2RlYm91bmNlOnt0eXBlOk51bWJlcixkZWZhdWx0OjEwMH19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNPYnNlcnZlcj97fTp7dXJsOnRoaXMuJHEucGxhdGZvcm0uaXMuaWU/bnVsbDpcImFib3V0OmJsYW5rXCJ9fSxtZXRob2RzOntvblJlc2l6ZTpmdW5jdGlvbigpe2lmKHRoaXMudGltZXI9bnVsbCx0aGlzLiRlbCYmdGhpcy4kZWwucGFyZW50Tm9kZSl7dmFyIHQ9dGhpcy4kZWwucGFyZW50Tm9kZSxlPXt3aWR0aDp0Lm9mZnNldFdpZHRoLGhlaWdodDp0Lm9mZnNldEhlaWdodH07ZS53aWR0aD09PXRoaXMuc2l6ZS53aWR0aCYmZS5oZWlnaHQ9PT10aGlzLnNpemUuaGVpZ2h0fHwodGhpcy5zaXplPWUsdGhpcy4kZW1pdChcInJlc2l6ZVwiLHRoaXMuc2l6ZSkpfX0sdHJpZ2dlcjpmdW5jdGlvbih0KXshMD09PXR8fDA9PT10aGlzLmRlYm91bmNlP3RoaXMub25SZXNpemUoKTp0aGlzLnRpbWVyfHwodGhpcy50aW1lcj1zZXRUaW1lb3V0KHRoaXMub25SZXNpemUsdGhpcy5kZWJvdW5jZSkpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpcy5jYW5SZW5kZXImJiF0aGlzLmhhc09ic2VydmVyKXJldHVybiB0KFwib2JqZWN0XCIse3N0eWxlOnRoaXMuc3R5bGUsYXR0cnM6e3RhYmluZGV4Oi0xLHR5cGU6XCJ0ZXh0L2h0bWxcIixkYXRhOnRoaXMudXJsLFwiYXJpYS1oaWRkZW5cIjohMH0sb246e2xvYWQ6ZnVuY3Rpb24oKXtlLiRlbC5jb250ZW50RG9jdW1lbnQuZGVmYXVsdFZpZXcuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLGUudHJpZ2dlcixsaXN0ZW5PcHRzLnBhc3NpdmUpLGUudHJpZ2dlcighMCl9fX0pfSxiZWZvcmVDcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLnNpemU9e3dpZHRoOi0xLGhlaWdodDotMX0saXNTU1J8fCh0aGlzLmhhc09ic2VydmVyPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBSZXNpemVPYnNlcnZlcix0aGlzLmhhc09ic2VydmVyfHwodGhpcy5zdHlsZT0odGhpcy4kcS5wbGF0Zm9ybS5pcy5pZT9cInZpc2liaWxpdHk6aGlkZGVuO1wiOlwiXCIpK1wiZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6LTE7XCIpKX0sbW91bnRlZDpmdW5jdGlvbigpe2lmKHRoaXMuaGFzT2JzZXJ2ZXIpcmV0dXJuIHRoaXMub2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMudHJpZ2dlciksdm9pZCB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy4kZWwucGFyZW50Tm9kZSk7dGhpcy50cmlnZ2VyKCEwKSx0aGlzLiRxLnBsYXRmb3JtLmlzLmllJiYodGhpcy51cmw9XCJhYm91dDpibGFua1wiKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmhhc09ic2VydmVyP3RoaXMuJGVsLnBhcmVudE5vZGUmJnRoaXMub2JzZXJ2ZXIudW5vYnNlcnZlKHRoaXMuJGVsLnBhcmVudE5vZGUpOnRoaXMuJGVsLmNvbnRlbnREb2N1bWVudCYmdGhpcy4kZWwuY29udGVudERvY3VtZW50LmRlZmF1bHRWaWV3LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0aGlzLnRyaWdnZXIsbGlzdGVuT3B0cy5wYXNzaXZlKX19LFFJbnB1dD17bmFtZTpcIlFJbnB1dFwiLG1peGluczpbRnJhbWVNaXhpbixJbnB1dE1peGluXSxwcm9wczp7dmFsdWU6e3JlcXVpcmVkOiEwfSx0eXBlOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwidGV4dFwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4gaW5wdXRUeXBlcy5pbmNsdWRlcyh0KX19LGFsaWduOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wibGVmdFwiLFwiY2VudGVyXCIsXCJyaWdodFwiXS5pbmNsdWRlcyh0KX19LG5vUGFzc1RvZ2dsZTpCb29sZWFuLG51bWVyaWNLZXlib2FyZFRvZ2dsZTpCb29sZWFuLHJlYWRvbmx5OkJvb2xlYW4sZGVjaW1hbHM6TnVtYmVyLHN0ZXA6TnVtYmVyLHVwcGVyQ2FzZTpCb29sZWFuLGxvd2VyQ2FzZTpCb29sZWFuLGluaXRpYWxTaG93UGFzc3dvcmQ6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJue3Nob3dQYXNzOnRoaXMuaW5pdGlhbFNob3dQYXNzd29yZCxzaG93TnVtYmVyOiEwLG1vZGVsOnRoaXMudmFsdWUsd2F0Y2hlcjpudWxsLGF1dG9maWxsZWQ6ITEsc2hhZG93Ont2YWw6dGhpcy5tb2RlbCxzZXQ6dGhpcy5fX3NldCxzZXROYXY6dGhpcy5fX3NldCxsb2FkaW5nOiExLHdhdGNoZWQ6MCxpc0VkaXRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHQuZWRpdGFibGV9LGlzRGFyazpmdW5jdGlvbigpe3JldHVybiB0LmRhcmt9LGhhc0ZvY3VzOmZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT10LiRyZWZzLmlucHV0fSxyZWdpc3RlcjpmdW5jdGlvbigpe3Quc2hhZG93LndhdGNoZWQrPTEsdC5fX3dhdGNoZXJSZWdpc3RlcigpfSx1bnJlZ2lzdGVyOmZ1bmN0aW9uKCl7dC5zaGFkb3cud2F0Y2hlZD1NYXRoLm1heCgwLHQuc2hhZG93LndhdGNoZWQtMSksdC5fX3dhdGNoZXJVbnJlZ2lzdGVyKCl9LGdldEVsOmZ1bmN0aW9uKCl7cmV0dXJuIHQuJHJlZnMuaW5wdXR9fX19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1wYXJzZUZsb2F0KHRoaXMubW9kZWwpLGk9cGFyc2VGbG9hdCh0KTsoIXRoaXMuaXNOdW1iZXJ8fHRoaXMuaXNOdW1iZXJFcnJvcnx8aXNOYU4oZSl8fGlzTmFOKGkpfHxlIT09aSkmJih0aGlzLm1vZGVsPXQpLHRoaXMuaXNOdW1iZXJFcnJvcj0hMSx0aGlzLmlzTmVnWmVybz0hMX0saXNUZXh0YXJlYTpmdW5jdGlvbih0KXt0aGlzW3Q/XCJfX3dhdGNoZXJSZWdpc3RlclwiOlwiX193YXRjaGVyVW5yZWdpc3RlclwiXSgpfSxcIiRhdHRycy5yb3dzXCI6ZnVuY3Rpb24oKXt0aGlzLmlzVGV4dGFyZWEmJnRoaXMuX191cGRhdGVBcmVhKCl9fSxwcm92aWRlOmZ1bmN0aW9uKCl7cmV0dXJue19faW5wdXQ6dGhpcy5zaGFkb3d9fSxjb21wdXRlZDp7aXNOdW1iZXI6ZnVuY3Rpb24oKXtyZXR1cm5cIm51bWJlclwiPT09dGhpcy50eXBlfSxpc1Bhc3N3b3JkOmZ1bmN0aW9uKCl7cmV0dXJuXCJwYXNzd29yZFwiPT09dGhpcy50eXBlfSxpc1RleHRhcmVhOmZ1bmN0aW9uKCl7cmV0dXJuXCJ0ZXh0YXJlYVwiPT09dGhpcy50eXBlfSxpc0xvYWRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sb2FkaW5nfHx0aGlzLnNoYWRvdy53YXRjaGVkJiZ0aGlzLnNoYWRvdy5sb2FkaW5nfSxrZXlib2FyZFRvZ2dsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRxLnBsYXRmb3JtLmlzLm1vYmlsZSYmdGhpcy5pc051bWJlciYmdGhpcy5udW1lcmljS2V5Ym9hcmRUb2dnbGV9LGlucHV0VHlwZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzUGFzc3dvcmQ/dGhpcy5zaG93UGFzcyYmdGhpcy5lZGl0YWJsZT9cInRleHRcIjpcInBhc3N3b3JkXCI6dGhpcy5pc051bWJlcj90aGlzLnNob3dOdW1iZXJ8fCF0aGlzLmVkaXRhYmxlP1wibnVtYmVyXCI6XCJ0ZXh0XCI6dGhpcy50eXBlfSxpbnB1dENsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5hbGlnbiYmdC5wdXNoKFwidGV4dC1cIit0aGlzLmFsaWduKSx0aGlzLmF1dG9maWxsZWQmJnQucHVzaChcInEtaW5wdXQtYXV0b2ZpbGxcIiksdH0sbGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT10aGlzLm1vZGVsJiZ2b2lkIDAhPT10aGlzLm1vZGVsPyhcIlwiK3RoaXMubW9kZWwpLmxlbmd0aDowfSxjb21wdXRlZENsZWFyVmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09dGhpcy5jbGVhclZhbHVlP3RoaXMuaXNOdW1iZXI/bnVsbDpcIlwiOnRoaXMuY2xlYXJWYWx1ZX0sY29tcHV0ZWRTdGVwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RlcHx8KHRoaXMuZGVjaW1hbHM/TWF0aC5wb3coMTAsLXRoaXMuZGVjaW1hbHMpOlwiYW55XCIpfSxmcmFtZVByb3BzOmZ1bmN0aW9uKCl7cmV0dXJue3ByZWZpeDp0aGlzLnByZWZpeCxzdWZmaXg6dGhpcy5zdWZmaXgsc3RhY2tMYWJlbDp0aGlzLnN0YWNrTGFiZWwsZmxvYXRMYWJlbDp0aGlzLmZsb2F0TGFiZWwscGxhY2Vob2xkZXI6dGhpcy5wbGFjZWhvbGRlcixlcnJvcjp0aGlzLmVycm9yLHdhcm5pbmc6dGhpcy53YXJuaW5nLGRpc2FibGU6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHksaW52ZXJ0ZWQ6dGhpcy5pbnZlcnRlZCxpbnZlcnRlZExpZ2h0OnRoaXMuaW52ZXJ0ZWRMaWdodCxkYXJrOnRoaXMuZGFyayxoaWRlVW5kZXJsaW5lOnRoaXMuaGlkZVVuZGVybGluZSxiZWZvcmU6dGhpcy5iZWZvcmUsYWZ0ZXI6dGhpcy5hZnRlcixjb2xvcjp0aGlzLmNvbG9yLG5vUGFyZW50RmllbGQ6dGhpcy5ub1BhcmVudEZpZWxkLGZvY3VzZWQ6dGhpcy5mb2N1c2VkLGxlbmd0aDp0aGlzLmF1dG9maWxsZWQrdGhpcy5sZW5ndGh9fX0sbWV0aG9kczp7dG9nZ2xlUGFzczpmdW5jdGlvbigpe3RoaXMuc2hvd1Bhc3M9IXRoaXMuc2hvd1Bhc3MsY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZm9jdXMoKX0sdG9nZ2xlTnVtYmVyOmZ1bmN0aW9uKCl7dGhpcy5zaG93TnVtYmVyPSF0aGlzLnNob3dOdW1iZXIsY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZm9jdXMoKX0sX19jbGVhclRpbWVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3JldHVybiBjbGVhclRpbWVvdXQodC50aW1lcil9KX0sX19vbkFuaW1hdGlvblN0YXJ0OmZ1bmN0aW9uKHQpe2lmKDA9PT10LmFuaW1hdGlvbk5hbWUuaW5kZXhPZihcIndlYmtpdC1hdXRvZmlsbC1cIikpe3ZhciBlPVwid2Via2l0LWF1dG9maWxsLW9uXCI9PT10LmFuaW1hdGlvbk5hbWU7aWYoZSE9PXRoaXMuYXV0b2ZpbGxlZClyZXR1cm4gdC52YWx1ZT10aGlzLmF1dG9maWxsZWQ9ZSx0LmVsPXRoaXMsdGhpcy4kZW1pdChcImF1dG9maWxsXCIsdCl9fSxfX3NldE1vZGVsOmZ1bmN0aW9uKHQpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmZvY3VzKCksdGhpcy5fX3NldCh0aGlzLmlzTnVtYmVyJiYwPT09dD90OnR8fCh0aGlzLmlzTnVtYmVyP251bGw6XCJcIiksITApfSxfX3NldDpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMscz10JiZ0LnRhcmdldD90LnRhcmdldC52YWx1ZTp0O2lmKHRoaXMuaXNOdW1iZXIpe3RoaXMuaXNOZWdaZXJvPTEvcz09LTEvMDt2YXIgbj10aGlzLmlzTmVnWmVybz8tMDpzO2lmKHRoaXMubW9kZWw9cyxzPXBhcnNlRmxvYXQocyksaXNOYU4ocyl8fHRoaXMuaXNOZWdaZXJvKXJldHVybiB0aGlzLmlzTnVtYmVyRXJyb3I9ITAsdm9pZChlJiYodGhpcy4kZW1pdChcImlucHV0XCIsbiksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtTdHJpbmcoMS9uKSE9PVN0cmluZygxL2kudmFsdWUpJiZpLiRlbWl0KFwiY2hhbmdlXCIsbil9KSkpO3RoaXMuaXNOdW1iZXJFcnJvcj0hMSxOdW1iZXIuaXNJbnRlZ2VyKHRoaXMuZGVjaW1hbHMpJiYocz1wYXJzZUZsb2F0KHMudG9GaXhlZCh0aGlzLmRlY2ltYWxzKSkpfWVsc2UgdGhpcy5sb3dlckNhc2U/cz1zLnRvTG93ZXJDYXNlKCk6dGhpcy51cHBlckNhc2UmJihzPXMudG9VcHBlckNhc2UoKSksdGhpcy5tb2RlbD1zO3RoaXMuJGVtaXQoXCJpbnB1dFwiLHMpLGUmJnRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkocykhPT1KU09OLnN0cmluZ2lmeShpLnZhbHVlKSYmaS4kZW1pdChcImNoYW5nZVwiLHMpfSl9LF9fdXBkYXRlQXJlYTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuJHJlZnMuc2hhZG93LGU9dGhpcy4kcmVmcy5pbnB1dDtpZih0JiZlKXt2YXIgaT10LnNjcm9sbEhlaWdodCxzPWJldHdlZW4oaSx0Lm9mZnNldEhlaWdodCx0aGlzLm1heEhlaWdodHx8aSk7ZS5zdHlsZS5oZWlnaHQ9cytcInB4XCIsZS5zdHlsZS5vdmVyZmxvd1k9dGhpcy5tYXhIZWlnaHQmJnM8aT9cInNjcm9sbFwiOlwiaGlkZGVuXCJ9fSxfX3dhdGNoZXI6ZnVuY3Rpb24odCl7dGhpcy5pc1RleHRhcmVhJiZ0aGlzLl9fdXBkYXRlQXJlYSgpLHRoaXMuc2hhZG93LndhdGNoZWQmJih0aGlzLnNoYWRvdy52YWw9dCl9LF9fd2F0Y2hlclJlZ2lzdGVyOmZ1bmN0aW9uKCl7dGhpcy53YXRjaGVyfHwodGhpcy53YXRjaGVyPXRoaXMuJHdhdGNoKFwibW9kZWxcIix0aGlzLl9fd2F0Y2hlcikpfSxfX3dhdGNoZXJVbnJlZ2lzdGVyOmZ1bmN0aW9uKHQpe3RoaXMud2F0Y2hlciYmKHR8fCF0aGlzLmlzVGV4dGFyZWEmJiF0aGlzLnNoYWRvdy53YXRjaGVkKSYmKHRoaXMud2F0Y2hlcigpLHRoaXMud2F0Y2hlcj1udWxsKX0sX19nZXRUZXh0YXJlYTpmdW5jdGlvbih0KXt2YXIgZT1PYmplY3QuYXNzaWduKHtyb3dzOjF9LHRoaXMuJGF0dHJzKTtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCByb3cgcmVsYXRpdmUtcG9zaXRpb25cIn0sW3QoUVJlc2l6ZU9ic2VydmFibGUse29uOntyZXNpemU6dGhpcy5fX3VwZGF0ZUFyZWF9fSksdChcInRleHRhcmVhXCIse3JlZjpcInNoYWRvd1wiLHN0YXRpY0NsYXNzOlwiY29sIHEtaW5wdXQtdGFyZ2V0IHEtaW5wdXQtc2hhZG93IGFic29sdXRlLXRvcFwiLGRvbVByb3BzOnt2YWx1ZTp0aGlzLm1vZGVsfSxhdHRyczplfSksdChcInRleHRhcmVhXCIse3JlZjpcImlucHV0XCIsc3RhdGljQ2xhc3M6XCJjb2wgcS1pbnB1dC10YXJnZXQgcS1pbnB1dC1hcmVhXCIsYXR0cnM6T2JqZWN0LmFzc2lnbih7fSxlLHtwbGFjZWhvbGRlcjp0aGlzLmlucHV0UGxhY2Vob2xkZXIsZGlzYWJsZWQ6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHl9KSxkb21Qcm9wczp7dmFsdWU6dGhpcy5tb2RlbH0sb246e2lucHV0OnRoaXMuX19zZXQsZm9jdXM6dGhpcy5fX29uRm9jdXMsYmx1cjp0aGlzLl9fb25JbnB1dEJsdXIsa2V5ZG93bjp0aGlzLl9fb25LZXlkb3duLGtleXVwOnRoaXMuX19vbktleXVwLHBhc3RlOnRoaXMuX19vblBhc3RlfX0pXSl9LF9fZ2V0SW5wdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJpbnB1dFwiLHtyZWY6XCJpbnB1dFwiLHN0YXRpY0NsYXNzOlwiY29sIHEtaW5wdXQtdGFyZ2V0IHEtbm8taW5wdXQtc3Bpbm5lciBlbGxpcHNpc1wiLGNsYXNzOnRoaXMuaW5wdXRDbGFzc2VzLGF0dHJzOk9iamVjdC5hc3NpZ24oe30sdGhpcy4kYXR0cnMse3R5cGU6dGhpcy5pbnB1dFR5cGUscGxhY2Vob2xkZXI6dGhpcy5pbnB1dFBsYWNlaG9sZGVyLGRpc2FibGVkOnRoaXMuZGlzYWJsZSxyZWFkb25seTp0aGlzLnJlYWRvbmx5LHN0ZXA6dGhpcy5jb21wdXRlZFN0ZXB9KSxkb21Qcm9wczp7dmFsdWU6dGhpcy5tb2RlbH0sb246e2lucHV0OnRoaXMuX19zZXQsZm9jdXM6dGhpcy5fX29uRm9jdXMsYmx1cjp0aGlzLl9fb25JbnB1dEJsdXIsa2V5ZG93bjp0aGlzLl9fb25LZXlkb3duLGtleXVwOnRoaXMuX19vbktleXVwLHBhc3RlOnRoaXMuX19vblBhc3RlLGFuaW1hdGlvbnN0YXJ0OnRoaXMuX19vbkFuaW1hdGlvblN0YXJ0fX0pfX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMuX191cGRhdGVBcmVhPWZyYW1lRGVib3VuY2UodGhpcy5fX3VwZGF0ZUFyZWEpLHRoaXMuaXNUZXh0YXJlYSYmKHRoaXMuX191cGRhdGVBcmVhKCksdGhpcy5fX3dhdGNoZXJSZWdpc3RlcigpKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX193YXRjaGVyVW5yZWdpc3RlcighMCl9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChRSW5wdXRGcmFtZSx7c3RhdGljQ2xhc3M6XCJxLWlucHV0XCIscHJvcHM6dGhpcy5mcmFtZVByb3BzLG9uOntjbGljazp0aGlzLl9fb25DbGljayxmb2N1czp0aGlzLl9fb25Gb2N1cyxwYXN0ZTp0aGlzLl9fb25QYXN0ZX19LFtdLmNvbmNhdCh0aGlzLiRzbG90cy5iZWZvcmUpLmNvbmNhdChbdGhpcy5pc1RleHRhcmVhP3RoaXMuX19nZXRUZXh0YXJlYSh0KTp0aGlzLl9fZ2V0SW5wdXQodCksIXRoaXMuZGlzYWJsZSYmdGhpcy5pc1Bhc3N3b3JkJiYhdGhpcy5ub1Bhc3NUb2dnbGUmJih0aGlzLmluaXRpYWxTaG93UGFzc3dvcmR8fHRoaXMubGVuZ3RoKSYmdChRSWNvbix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uaW5wdXRbdGhpcy5zaG93UGFzcz9cInNob3dQYXNzXCI6XCJoaWRlUGFzc1wiXX0sbmF0aXZlT246e21vdXNlZG93bjp0aGlzLl9fY2xlYXJUaW1lcix0b3VjaHN0YXJ0OnRoaXMuX19jbGVhclRpbWVyLGNsaWNrOnRoaXMudG9nZ2xlUGFzc319KXx8dm9pZCAwLHRoaXMuZWRpdGFibGUmJnRoaXMua2V5Ym9hcmRUb2dnbGUmJnQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCIscHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLmlucHV0W3RoaXMuc2hvd051bWJlcj9cInNob3dOdW1iZXJcIjpcImhpZGVOdW1iZXJcIl19LG5hdGl2ZU9uOnttb3VzZWRvd246dGhpcy5fX2NsZWFyVGltZXIsdG91Y2hzdGFydDp0aGlzLl9fY2xlYXJUaW1lcixjbGljazp0aGlzLnRvZ2dsZU51bWJlcn19KXx8dm9pZCAwLHRoaXMuaXNDbGVhcmFibGUmJnQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCIscHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLmlucHV0W1wiY2xlYXJcIisodGhpcy5pc0ludmVydGVkP1wiSW52ZXJ0ZWRcIjpcIlwiKV19LG5hdGl2ZU9uOnttb3VzZWRvd246dGhpcy5fX2NsZWFyVGltZXIsdG91Y2hzdGFydDp0aGlzLl9fY2xlYXJUaW1lcixjbGljazp0aGlzLmNsZWFyfX0pfHx2b2lkIDAsdGhpcy5pc0xvYWRpbmcmJih0aGlzLiRzbG90cy5sb2FkaW5nP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixzbG90OlwiYWZ0ZXJcIn0sdGhpcy4kc2xvdHMubG9hZGluZyk6dChRU3Bpbm5lcix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixwcm9wczp7c2l6ZTpcIjI0cHhcIn19KSl8fHZvaWQgMF0pLmNvbmNhdCh0aGlzLiRzbG90cy5hZnRlcikuY29uY2F0KHRoaXMuJHNsb3RzLmRlZmF1bHQ/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcImFic29sdXRlLWZ1bGwgbm8tcG9pbnRlci1ldmVudHNcIixzbG90OlwiYWZ0ZXJcIn0sdGhpcy4kc2xvdHMuZGVmYXVsdCk6dm9pZCAwKSl9fSxRUmFkaW89e25hbWU6XCJRUmFkaW9cIixtaXhpbnM6W09wdGlvbk1peGluXSxwcm9wczp7dmFsOntyZXF1aXJlZDohMH19LGNvbXB1dGVkOntpc1RydWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZT09PXRoaXMudmFsfX0sbWV0aG9kczp7dG9nZ2xlOmZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9ITApLHRoaXMuZGlzYWJsZXx8dGhpcy5yZWFkb25seXx8KHQmJnN0b3BBbmRQcmV2ZW50KHQpLGUmJnRoaXMuJGVsLmJsdXIoKSx0aGlzLmlzVHJ1ZXx8dGhpcy5fX3VwZGF0ZSh0aGlzLnZhbCkpfSxfX2dldENvbnRlbnQ6ZnVuY3Rpb24odCl7cmV0dXJuW3QoUUljb24se3N0YXRpY0NsYXNzOlwicS1yYWRpby11bmNoZWNrZWQgY3Vyc29yLXBvaW50ZXIgYWJzb2x1dGUtZnVsbFwiLHByb3BzOntuYW1lOnRoaXMudW5jaGVja2VkSWNvbnx8dGhpcy4kcS5pY29uLnJhZGlvLnVuY2hlY2tlZC5tYXR9fSksdChRSWNvbix7c3RhdGljQ2xhc3M6XCJxLXJhZGlvLWNoZWNrZWQgY3Vyc29yLXBvaW50ZXIgYWJzb2x1dGUtZnVsbFwiLHByb3BzOntuYW1lOnRoaXMuY2hlY2tlZEljb258fHRoaXMuJHEuaWNvbi5yYWRpby5jaGVja2VkLm1hdH19KSx0KFwiZGl2XCIse3JlZjpcInJpcHBsZVwiLHN0YXRpY0NsYXNzOlwicS1yYWRpYWwtcmlwcGxlXCJ9KV19fSxiZWZvcmVDcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9fa2ViYWJUYWc9XCJxLXJhZGlvXCJ9fSxRVG9nZ2xlPXtuYW1lOlwiUVRvZ2dsZVwiLG1peGluczpbQ2hlY2tib3hNaXhpbixPcHRpb25NaXhpbl0scHJvcHM6e2ljb246U3RyaW5nfSxjb21wdXRlZDp7Y3VycmVudEljb246ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5pc1RydWU/dGhpcy5jaGVja2VkSWNvbjp0aGlzLnVuY2hlY2tlZEljb24pfHx0aGlzLmljb259LGljb25Db2xvcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVHJ1ZT9cIndoaXRlXCI6XCJkYXJrXCJ9LGJhc2VDbGFzczpmdW5jdGlvbigpe319LG1ldGhvZHM6e19fc3dpcGU6ZnVuY3Rpb24odCl7XCJsZWZ0XCI9PT10LmRpcmVjdGlvbj90aGlzLmlzVHJ1ZSYmdGhpcy50b2dnbGUoKTpcInJpZ2h0XCI9PT10LmRpcmVjdGlvbiYmdGhpcy5pc0ZhbHNlJiZ0aGlzLnRvZ2dsZSgpfSxfX2dldENvbnRlbnQ6ZnVuY3Rpb24odCl7cmV0dXJuW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRvZ2dsZS1iYXNlXCIsY2xhc3M6dGhpcy5iYXNlQ2xhc3N9KSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10b2dnbGUtaGFuZGxlIHJvdyBmbGV4LWNlbnRlclwifSxbdGhpcy5jdXJyZW50SWNvbj90KFFJY29uLHtzdGF0aWNDbGFzczpcInEtdG9nZ2xlLWljb25cIixwcm9wczp7bmFtZTp0aGlzLmN1cnJlbnRJY29uLGNvbG9yOnRoaXMuaWNvbkNvbG9yfX0pOm51bGwsdChcImRpdlwiLHtyZWY6XCJyaXBwbGVcIixzdGF0aWNDbGFzczpcInEtcmFkaWFsLXJpcHBsZVwifSldKV19fSxiZWZvcmVDcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9fa2ViYWJUYWc9XCJxLXRvZ2dsZVwifX0sY29tcG9uZW50cz17cmFkaW86UVJhZGlvLGNoZWNrYm94OlFDaGVja2JveCx0b2dnbGU6UVRvZ2dsZX0sUU9wdGlvbkdyb3VwPXtuYW1lOlwiUU9wdGlvbkdyb3VwXCIsbWl4aW5zOltQYXJlbnRGaWVsZE1peGluXSxwcm9wczp7dmFsdWU6e3JlcXVpcmVkOiEwfSx0eXBlOntkZWZhdWx0OlwicmFkaW9cIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wicmFkaW9cIixcImNoZWNrYm94XCIsXCJ0b2dnbGVcIl0uaW5jbHVkZXModCl9fSxjb2xvcjpTdHJpbmcsa2VlcENvbG9yOkJvb2xlYW4sZGFyazpCb29sZWFuLG9wdGlvbnM6e3R5cGU6QXJyYXksdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0LmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVyblwidmFsdWVcImluIHQmJlwibGFiZWxcImluIHR9KX19LGxlZnRMYWJlbDpCb29sZWFuLGlubGluZTpCb29sZWFuLGRpc2FibGU6Qm9vbGVhbixyZWFkb25seTpCb29sZWFufSxjb21wdXRlZDp7Y29tcG9uZW50OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbXBvbmVudHNbdGhpcy50eXBlXX0sbW9kZWw6ZnVuY3Rpb24oKXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKT90aGlzLnZhbHVlLnNsaWNlKCk6dGhpcy52YWx1ZX0sbGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWU/XCJyYWRpb1wiPT09dGhpcy50eXBlPzE6dGhpcy52YWx1ZS5sZW5ndGg6MH0sX19uZWVkc0JvcmRlcjpmdW5jdGlvbigpe3JldHVybiEwfX0sbWV0aG9kczp7X19vbkZvY3VzOmZ1bmN0aW9uKCl7dGhpcy4kZW1pdChcImZvY3VzXCIpfSxfX29uQmx1cjpmdW5jdGlvbigpe3RoaXMuJGVtaXQoXCJibHVyXCIpfSxfX3VwZGF0ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuJGVtaXQoXCJpbnB1dFwiLHQpLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkodCkhPT1KU09OLnN0cmluZ2lmeShlLnZhbHVlKSYmZS4kZW1pdChcImNoYW5nZVwiLHQpfSl9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dmFyIHQ9QXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKTtcInJhZGlvXCI9PT10aGlzLnR5cGU/dCYmY29uc29sZS5lcnJvcihcInEtb3B0aW9uLWdyb3VwOiBtb2RlbCBzaG91bGQgbm90IGJlIGFycmF5XCIpOnR8fGNvbnNvbGUuZXJyb3IoXCJxLW9wdGlvbi1ncm91cDogbW9kZWwgc2hvdWxkIGJlIGFycmF5IGluIHlvdXIgY2FzZVwiKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW9wdGlvbi1ncm91cCBncm91cFwiLGNsYXNzOntcInEtb3B0aW9uLWdyb3VwLWlubGluZS1vcHRzXCI6dGhpcy5pbmxpbmV9fSx0aGlzLm9wdGlvbnMubWFwKGZ1bmN0aW9uKGkpe3JldHVybiB0KFwiZGl2XCIsW3QoZS5jb21wb25lbnQse3Byb3BzOnt2YWx1ZTplLnZhbHVlLHZhbDppLnZhbHVlLHJlYWRvbmx5OmUucmVhZG9ubHl8fGkucmVhZG9ubHksZGlzYWJsZTplLmRpc2FibGV8fGkuZGlzYWJsZSxsYWJlbDppLmxhYmVsLGxlZnRMYWJlbDplLmxlZnRMYWJlbHx8aS5sZWZ0TGFiZWwsY29sb3I6aS5jb2xvcnx8ZS5jb2xvcixjaGVja2VkSWNvbjppLmNoZWNrZWRJY29uLHVuY2hlY2tlZEljb246aS51bmNoZWNrZWRJY29uLGRhcms6aS5kYXJrfHxlLmRhcmssa2VlcENvbG9yOmkua2VlcENvbG9yfHxlLmtlZXBDb2xvcn0sb246e2lucHV0OmUuX191cGRhdGUsZm9jdXM6ZS5fX29uRm9jdXMsYmx1cjplLl9fb25CbHVyfX0pXSl9KSl9fSxRRGlhbG9nPXtuYW1lOlwiUURpYWxvZ1wiLHByb3BzOnt2YWx1ZTpCb29sZWFuLHRpdGxlOlN0cmluZyxtZXNzYWdlOlN0cmluZyxwcm9tcHQ6T2JqZWN0LG9wdGlvbnM6T2JqZWN0LG9rOnt0eXBlOltTdHJpbmcsT2JqZWN0LEJvb2xlYW5dLGRlZmF1bHQ6ITB9LGNhbmNlbDpbU3RyaW5nLE9iamVjdCxCb29sZWFuXSxzdGFja0J1dHRvbnM6Qm9vbGVhbixwcmV2ZW50Q2xvc2U6Qm9vbGVhbixub0JhY2tkcm9wRGlzbWlzczpCb29sZWFuLG5vRXNjRGlzbWlzczpCb29sZWFuLG5vUmVmb2N1czpCb29sZWFuLHBvc2l0aW9uOlN0cmluZyxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9W10scz10aGlzLiRzbG90cy50aXRsZXx8dGhpcy50aXRsZSxuPXRoaXMuJHNsb3RzLm1lc3NhZ2V8fHRoaXMubWVzc2FnZTtyZXR1cm4gcyYmaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJtb2RhbC1oZWFkZXJcIn0sW3NdKSksbiYmaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJtb2RhbC1ib2R5IG1vZGFsLW1lc3NhZ2UgbW9kYWwtc2Nyb2xsXCJ9LFtuXSkpLCh0aGlzLmhhc0Zvcm18fHRoaXMuJHNsb3RzLmJvZHkpJiZpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcIm1vZGFsLWJvZHkgbW9kYWwtc2Nyb2xsXCJ9LHRoaXMuaGFzRm9ybT90aGlzLnByb21wdD90aGlzLl9fZ2V0UHJvbXB0KHQpOnRoaXMuX19nZXRPcHRpb25zKHQpOlt0aGlzLiRzbG90cy5ib2R5XSkpLHRoaXMuJHNjb3BlZFNsb3RzLmJ1dHRvbnM/aS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJtb2RhbC1idXR0b25zXCIsY2xhc3M6dGhpcy5idXR0b25DbGFzc30sW3RoaXMuJHNjb3BlZFNsb3RzLmJ1dHRvbnMoe29rOnRoaXMuX19vbk9rLGNhbmNlbDp0aGlzLl9fb25DYW5jZWx9KV0pKToodGhpcy5va3x8dGhpcy5jYW5jZWwpJiZpLnB1c2godGhpcy5fX2dldEJ1dHRvbnModCkpLHQoUU1vZGFsLHtyZWY6XCJtb2RhbFwiLHByb3BzOnt2YWx1ZTp0aGlzLnZhbHVlLG1pbmltaXplZDohMCxub0JhY2tkcm9wRGlzbWlzczp0aGlzLm5vQmFja2Ryb3BEaXNtaXNzfHx0aGlzLnByZXZlbnRDbG9zZSxub0VzY0Rpc21pc3M6dGhpcy5ub0VzY0Rpc21pc3N8fHRoaXMucHJldmVudENsb3NlLG5vUmVmb2N1czp0aGlzLm5vUmVmb2N1cyxwb3NpdGlvbjp0aGlzLnBvc2l0aW9ufSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7ZS4kZW1pdChcImlucHV0XCIsdCl9LHNob3c6ZnVuY3Rpb24oKXtpZihlLiRxLnBsYXRmb3JtLmlzLmRlc2t0b3Ape3ZhciB0O2lmKChlLnByb21wdHx8ZS5vcHRpb25zKSYmKHQ9ZS5wcm9tcHQ/ZS4kcmVmcy5tb2RhbC4kZWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJJTlBVVFwiKTplLiRyZWZzLm1vZGFsLiRlbC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwicS1vcHRpb25cIikpLmxlbmd0aClyZXR1cm4gdFswXS5mb2N1cygpLHZvaWQgZS4kZW1pdChcInNob3dcIik7KHQ9ZS4kcmVmcy5tb2RhbC4kZWwuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInEtYnRuXCIpKS5sZW5ndGgmJnRbdC5sZW5ndGgtMV0uZm9jdXMoKSxlLiRlbWl0KFwic2hvd1wiKX1lbHNlIGUuJGVtaXQoXCJzaG93XCIpfSxoaWRlOmZ1bmN0aW9uKCl7ZS4kZW1pdChcImhpZGVcIil9LGRpc21pc3M6ZnVuY3Rpb24oKXtlLiRlbWl0KFwiY2FuY2VsXCIpfSxcImVzY2FwZS1rZXlcIjpmdW5jdGlvbigpe2UuJGVtaXQoXCJlc2NhcGUta2V5XCIpfX19LGkpfSxjb21wdXRlZDp7aGFzRm9ybTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByb21wdHx8dGhpcy5vcHRpb25zfSxva0xhYmVsOmZ1bmN0aW9uKCl7cmV0dXJuITA9PT10aGlzLm9rP3RoaXMuJHEuaTE4bi5sYWJlbC5vazp0aGlzLm9rfSxjYW5jZWxMYWJlbDpmdW5jdGlvbigpe3JldHVybiEwPT09dGhpcy5jYW5jZWw/dGhpcy4kcS5pMThuLmxhYmVsLmNhbmNlbDp0aGlzLmNhbmNlbH0sYnV0dG9uQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGFja0J1dHRvbnM/XCJjb2x1bW5cIjpcInJvd1wifSxva1Byb3BzOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdCh0aGlzLm9rKT09PXRoaXMub2s/T2JqZWN0LmFzc2lnbih7Y29sb3I6dGhpcy5jb2xvcixsYWJlbDp0aGlzLiRxLmkxOG4ubGFiZWwub2ssbm9SaXBwbGU6ITB9LHRoaXMub2spOntjb2xvcjp0aGlzLmNvbG9yLGZsYXQ6ITAsbGFiZWw6dGhpcy5va0xhYmVsLG5vUmlwcGxlOiEwfX0sY2FuY2VsUHJvcHM6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHRoaXMuY2FuY2VsKT09PXRoaXMuY2FuY2VsP09iamVjdC5hc3NpZ24oe2NvbG9yOnRoaXMuY29sb3IsbGFiZWw6dGhpcy4kcS5pMThuLmxhYmVsLmNhbmNlbCxub1JpcHBsZTohMH0sdGhpcy5jYW5jZWwpOntjb2xvcjp0aGlzLmNvbG9yLGZsYXQ6ITAsbGFiZWw6dGhpcy5jYW5jZWxMYWJlbCxub1JpcHBsZTohMH19fSxtZXRob2RzOntzaG93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHJlZnMubW9kYWwuc2hvdygpfSxoaWRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy4kcmVmcy5tb2RhbD90aGlzLiRyZWZzLm1vZGFsLmhpZGUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQuaGFzRm9ybT9jbG9uZSh0Ll9fZ2V0RGF0YSgpKTp2b2lkIDB9KTpQcm9taXNlLnJlc29sdmUoKX0sX19nZXRQcm9tcHQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm5bdChRSW5wdXQse3N0eWxlOlwibWFyZ2luLWJvdHRvbTogMTBweFwiLHByb3BzOnt2YWx1ZTp0aGlzLnByb21wdC5tb2RlbCx0eXBlOnRoaXMucHJvbXB0LnR5cGV8fFwidGV4dFwiLGNvbG9yOnRoaXMuY29sb3Isbm9QYXNzVG9nZ2xlOiEwfSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7ZS5wcm9tcHQubW9kZWw9dH0sa2V5dXA6ZnVuY3Rpb24odCl7MTM9PT1nZXRFdmVudEtleSh0KSYmZS5fX29uT2soKX19fSldfSxfX2dldE9wdGlvbnM6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm5bdChRT3B0aW9uR3JvdXAse3Byb3BzOnt2YWx1ZTp0aGlzLm9wdGlvbnMubW9kZWwsdHlwZTp0aGlzLm9wdGlvbnMudHlwZSxjb2xvcjp0aGlzLmNvbG9yLGlubGluZTp0aGlzLm9wdGlvbnMuaW5saW5lLG9wdGlvbnM6dGhpcy5vcHRpb25zLml0ZW1zfSxvbjp7Y2hhbmdlOmZ1bmN0aW9uKHQpe2Uub3B0aW9ucy5tb2RlbD10fX19KV19LF9fZ2V0QnV0dG9uczpmdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5jYW5jZWwmJmUucHVzaCh0KFFCdG4se3Byb3BzOnRoaXMuY2FuY2VsUHJvcHMsb246e2NsaWNrOnRoaXMuX19vbkNhbmNlbH19KSksdGhpcy5vayYmZS5wdXNoKHQoUUJ0bix7cHJvcHM6dGhpcy5va1Byb3BzLG9uOntjbGljazp0aGlzLl9fb25Pa319KSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcIm1vZGFsLWJ1dHRvbnNcIixjbGFzczp0aGlzLmJ1dHRvbkNsYXNzfSxlKX0sX19vbk9rOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5oaWRlKCkudGhlbihmdW5jdGlvbihlKXt0LiRlbWl0KFwib2tcIixlKX0pfSxfX29uQ2FuY2VsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5oaWRlKCkudGhlbihmdW5jdGlvbigpe3QuJGVtaXQoXCJjYW5jZWxcIil9KX0sX19nZXREYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJvbXB0P3RoaXMucHJvbXB0Lm1vZGVsOnRoaXMub3B0aW9ucz90aGlzLm9wdGlvbnMubW9kZWw6dm9pZCAwfX19O2Z1bmN0aW9uIGRlYm91bmNlKHQsZSxpKXt2YXIgcztmdW5jdGlvbiBuKCl7Zm9yKHZhciBuPXRoaXMsbz1bXSxyPWFyZ3VtZW50cy5sZW5ndGg7ci0tOylvW3JdPWFyZ3VtZW50c1tyXTtjbGVhclRpbWVvdXQocyksaSYmIXMmJnQuYXBwbHkodGhpcyxvKSxzPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtzPW51bGwsaXx8dC5hcHBseShuLG8pfSxlKX1yZXR1cm4gdm9pZCAwPT09ZSYmKGU9MjUwKSxuLmNhbmNlbD1mdW5jdGlvbigpe2NsZWFyVGltZW91dChzKX0sbn12YXIgUVRvb2x0aXA9e25hbWU6XCJRVG9vbHRpcFwiLG1peGluczpbTW9kZWxUb2dnbGVNaXhpbixDYW5SZW5kZXJNaXhpbl0scHJvcHM6e2FuY2hvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInRvcCBtaWRkbGVcIix2YWxpZGF0b3I6cG9zaXRpb25WYWxpZGF0b3J9LHNlbGY6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJib3R0b20gbWlkZGxlXCIsdmFsaWRhdG9yOnBvc2l0aW9uVmFsaWRhdG9yfSxvZmZzZXQ6e3R5cGU6QXJyYXksdmFsaWRhdG9yOm9mZnNldFZhbGlkYXRvcn0sZGVsYXk6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MH0sbWF4SGVpZ2h0OlN0cmluZyxkaXNhYmxlOkJvb2xlYW59LHdhdGNoOnskcm91dGU6ZnVuY3Rpb24oKXt0aGlzLmhpZGUoKX19LGNvbXB1dGVkOnthbmNob3JPcmlnaW46ZnVuY3Rpb24oKXtyZXR1cm4gcGFyc2VQb3NpdGlvbih0aGlzLmFuY2hvcil9LHNlbGZPcmlnaW46ZnVuY3Rpb24oKXtyZXR1cm4gcGFyc2VQb3NpdGlvbih0aGlzLnNlbGYpfX0sbWV0aG9kczp7X19zaG93OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy4kZWwpLHRoaXMuc2Nyb2xsVGFyZ2V0PWdldFNjcm9sbFRhcmdldCh0aGlzLmFuY2hvckVsKSx0aGlzLnNjcm9sbFRhcmdldC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdGhpcy5oaWRlLGxpc3Rlbk9wdHMucGFzc2l2ZSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0aGlzLl9fZGVib3VuY2VkVXBkYXRlUG9zaXRpb24sbGlzdGVuT3B0cy5wYXNzaXZlKSx0aGlzLiRxLnBsYXRmb3JtLmlzLm1vYmlsZSYmZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIix0aGlzLmhpZGUsITApLHRoaXMuX191cGRhdGVQb3NpdGlvbigpLHRoaXMuc2hvd1Byb21pc2UmJnRoaXMuc2hvd1Byb21pc2VSZXNvbHZlKCl9LF9faGlkZTpmdW5jdGlvbigpe3RoaXMuX19jbGVhbnVwKCksdGhpcy5oaWRlUHJvbWlzZSYmdGhpcy5oaWRlUHJvbWlzZVJlc29sdmUoKX0sX19jbGVhbnVwOmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuc2Nyb2xsVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0aGlzLmhpZGUsbGlzdGVuT3B0cy5wYXNzaXZlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHRoaXMuX19kZWJvdW5jZWRVcGRhdGVQb3NpdGlvbixsaXN0ZW5PcHRzLnBhc3NpdmUpLHRoaXMuJGVsLnJlbW92ZSgpLHRoaXMuJHEucGxhdGZvcm0uaXMubW9iaWxlJiZkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLHRoaXMuaGlkZSwhMCl9LF9fdXBkYXRlUG9zaXRpb246ZnVuY3Rpb24oKXtzZXRQb3NpdGlvbih7ZWw6dGhpcy4kZWwsYW5pbWF0ZTohMCxvZmZzZXQ6dGhpcy5vZmZzZXQsYW5jaG9yRWw6dGhpcy5hbmNob3JFbCxhbmNob3JPcmlnaW46dGhpcy5hbmNob3JPcmlnaW4sc2VsZk9yaWdpbjp0aGlzLnNlbGZPcmlnaW4sbWF4SGVpZ2h0OnRoaXMubWF4SGVpZ2h0fSl9LF9fZGVsYXlTaG93OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9c2V0VGltZW91dCh0aGlzLnNob3csdGhpcy5kZWxheSl9LF9fZGVsYXlIaWRlOmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuaGlkZSgpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe2lmKHRoaXMuY2FuUmVuZGVyKXJldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10b29sdGlwIGFuaW1hdGUtcG9wdXBcIn0sW3QoXCJkaXZcIix0aGlzLiRzbG90cy5kZWZhdWx0KV0pfSxiZWZvcmVNb3VudDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fX2RlYm91bmNlZFVwZGF0ZVBvc2l0aW9uPWRlYm91bmNlKGZ1bmN0aW9uKCl7dC5fX3VwZGF0ZVBvc2l0aW9uKCl9LDcwKX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0LiRlbC5vZmZzZXRIZWlnaHQsdC5hbmNob3JFbD10LiRlbC5wYXJlbnROb2RlLHQuYW5jaG9yRWwucmVtb3ZlQ2hpbGQodC4kZWwpLCh0LmFuY2hvckVsLmNsYXNzTGlzdC5jb250YWlucyhcInEtcG9wdXAtLXNraXBcIil8fHQuYW5jaG9yRWwuY2xhc3NMaXN0LmNvbnRhaW5zKFwibm8tcG9pbnRlci1ldmVudHNcIikpJiYodC5hbmNob3JFbD10LmFuY2hvckVsLnBhcmVudE5vZGUpLHQuJHEucGxhdGZvcm0uaXMubW9iaWxlP3QuYW5jaG9yRWwuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsdC5zaG93KToodC5hbmNob3JFbC5hZGRFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLHQuX19kZWxheVNob3cpLHQuYW5jaG9yRWwuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsdC5fX2RlbGF5U2hvdyksdC5hbmNob3JFbC5hZGRFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLHQuX19kZWxheUhpZGUpLHQuYW5jaG9yRWwuYWRkRXZlbnRMaXN0ZW5lcihcImJsdXJcIix0Ll9fZGVsYXlIaWRlKSksdC52YWx1ZSYmdC5zaG93KCl9KX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnNob3dpbmcmJnRoaXMuX19jbGVhbnVwKCksdGhpcy5hbmNob3JFbCYmKHRoaXMuJHEucGxhdGZvcm0uaXMubW9iaWxlP3RoaXMuYW5jaG9yRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsdGhpcy5zaG93KToodGhpcy5hbmNob3JFbC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLHRoaXMuX19kZWxheVNob3cpLHRoaXMuYW5jaG9yRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsdGhpcy5fX2RlbGF5U2hvdyksdGhpcy5hbmNob3JFbC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLHRoaXMuX19kZWxheUhpZGUpLHRoaXMuYW5jaG9yRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImJsdXJcIix0aGlzLl9fZGVsYXlIaWRlKSkpfX07ZnVuY3Rpb24gcnVuKHQsZSxpKXtlLmhhbmRsZXI/ZS5oYW5kbGVyKHQsaSxpLmNhcmV0KTppLnJ1bkNtZChlLmNtZCxlLnBhcmFtKX1mdW5jdGlvbiBnZXRCdG4odCxlLGkscyxuKXt2b2lkIDA9PT1uJiYobj0hMSk7dmFyIG89bnx8XCJ0b2dnbGVcIj09PWkudHlwZSYmKGkudG9nZ2xlZD9pLnRvZ2dsZWQoZSk6aS5jbWQmJmUuY2FyZXQuaXMoaS5jbWQsaS5wYXJhbSkpLHI9W10sYT17Y2xpY2s6ZnVuY3Rpb24odCl7cyYmcygpLHJ1bih0LGksZSl9fTtpZihpLnRpcCYmZS4kcS5wbGF0Zm9ybS5pcy5kZXNrdG9wKXt2YXIgbD1pLmtleT90KFwiZGl2XCIsW3QoXCJzbWFsbFwiLFwiKENUUkwgKyBcIitTdHJpbmcuZnJvbUNoYXJDb2RlKGkua2V5KStcIilcIildKTpudWxsO3IucHVzaCh0KFFUb29sdGlwLHtwcm9wczp7ZGVsYXk6MWUzfX0sW3QoXCJkaXZcIix7ZG9tUHJvcHM6e2lubmVySFRNTDppLnRpcH19KSxsXSkpfXJldHVybiB0KFFCdG4se3Byb3BzOk9iamVjdC5hc3NpZ24oe30sZS5idXR0b25Qcm9wcyx7aWNvbjppLmljb24sY29sb3I6bz9pLnRvZ2dsZUNvbG9yfHxlLnRvb2xiYXJUb2dnbGVDb2xvcjppLmNvbG9yfHxlLnRvb2xiYXJDb2xvcix0ZXh0Q29sb3I6byYmKGUudG9vbGJhckZsYXR8fGUudG9vbGJhck91dGxpbmUpP251bGw6aS50ZXh0Q29sb3J8fGUudG9vbGJhclRleHRDb2xvcixsYWJlbDppLmxhYmVsLGRpc2FibGU6ISFpLmRpc2FibGUmJihcImZ1bmN0aW9uXCIhPXR5cGVvZiBpLmRpc2FibGV8fGkuZGlzYWJsZShlKSl9KSxvbjphfSxyKX1mdW5jdGlvbiBnZXREcm9wZG93bih0LGUsaSl7dmFyIHMsbixvPWkubGFiZWwscj1pLmljb24sYT1cIm5vLWljb25zXCI9PT1pLmxpc3Q7ZnVuY3Rpb24gbCgpe2guY29tcG9uZW50SW5zdGFuY2UuaGlkZSgpfVwib25seS1pY29uc1wiPT09aS5saXN0PyhuPWkub3B0aW9ucy5tYXAoZnVuY3Rpb24oaSl7dmFyIHM9dm9pZCAwPT09aS50eXBlJiZlLmNhcmV0LmlzKGkuY21kLGkucGFyYW0pO3JldHVybiBzJiYobz1pLnRpcCxyPWkuaWNvbiksZ2V0QnRuKHQsZSxpLGwscyl9KSxzPWUudG9vbGJhckJhY2tncm91bmRDbGFzcyxuPVt0KFFCdG5Hcm91cCx7cHJvcHM6ZS5idXR0b25Qcm9wcyxzdGF0aWNDbGFzczpcInJlbGF0aXZlLXBvc2l0aW9uIHEtZWRpdG9yLXRvb2xiYXItcGFkZGluZ1wiLHN0eWxlOntib3JkZXJSYWRpdXM6XCIwXCJ9fSxuKV0pOihuPWkub3B0aW9ucy5tYXAoZnVuY3Rpb24oaSl7dmFyIHM9ISFpLmRpc2FibGUmJmkuZGlzYWJsZShlKSxuPXZvaWQgMD09PWkudHlwZSYmZS5jYXJldC5pcyhpLmNtZCxpLnBhcmFtKTtuJiYobz1pLnRpcCxyPWkuaWNvbik7dmFyIGM9aS5odG1sVGlwO3JldHVybiB0KFFJdGVtLHtwcm9wczp7YWN0aXZlOm4sbGluazohc30sY2xhc3M6e2Rpc2FibGVkOnN9LG5hdGl2ZU9uOntjbGljazpmdW5jdGlvbih0KXtzfHwobCgpLGUuJHJlZnMuY29udGVudCYmZS4kcmVmcy5jb250ZW50LmZvY3VzKCksZS5jYXJldC5yZXN0b3JlKCkscnVuKHQsaSxlKSl9fX0sW2E/XCJcIjp0KFFJdGVtU2lkZSx7cHJvcHM6e2ljb246aS5pY29ufX0pLHQoUUl0ZW1NYWluLHtwcm9wczohYyYmaS50aXA/e2xhYmVsOmkudGlwfTpudWxsLGRvbVByb3BzOmM/e2lubmVySFRNTDppLmh0bWxUaXB9Om51bGx9KV0pfSkscz1bZS50b29sYmFyQmFja2dyb3VuZENsYXNzLGUudG9vbGJhclRleHRDb2xvcj9cInRleHQtXCIrZS50b29sYmFyVGV4dENvbG9yOlwiXCJdLG49W3QoUUxpc3Qse3Byb3BzOntzZXBhcmF0b3I6ITB9fSxbbl0pXSk7dmFyIGM9aS5oaWdobGlnaHQmJm8hPT1pLmxhYmVsLGg9dChRQnRuRHJvcGRvd24se3Byb3BzOk9iamVjdC5hc3NpZ24oe30sZS5idXR0b25Qcm9wcyx7bm9DYXBzOiEwLG5vV3JhcDohMCxjb2xvcjpjP2UudG9vbGJhclRvZ2dsZUNvbG9yOmUudG9vbGJhckNvbG9yLHRleHRDb2xvcjpjJiYoZS50b29sYmFyRmxhdHx8ZS50b29sYmFyT3V0bGluZSk/bnVsbDplLnRvb2xiYXJUZXh0Q29sb3IsbGFiZWw6aS5maXhlZExhYmVsP2kubGFiZWw6byxpY29uOmkuZml4ZWRJY29uP2kuaWNvbjpyLGNvbnRlbnRDbGFzczpzfSl9LG4pO3JldHVybiBofWZ1bmN0aW9uIGdldFRvb2xiYXIodCxlKXtpZihlLmNhcmV0KXJldHVybiBlLmJ1dHRvbnMubWFwKGZ1bmN0aW9uKGkpe3JldHVybiB0KFFCdG5Hcm91cCx7cHJvcHM6ZS5idXR0b25Qcm9wcyxzdGF0aWNDbGFzczpcIml0ZW1zLWNlbnRlciByZWxhdGl2ZS1wb3NpdGlvblwifSxpLm1hcChmdW5jdGlvbihpKXtyZXR1cm5cInNsb3RcIj09PWkudHlwZT9lLiRzbG90c1tpLnNsb3RdOlwiZHJvcGRvd25cIj09PWkudHlwZT9nZXREcm9wZG93bih0LGUsaSk6Z2V0QnRuKHQsZSxpKX0pKX0pfWZ1bmN0aW9uIGdldEZvbnRzKHQsZSxpLHMpe3ZvaWQgMD09PXMmJihzPXt9KTt2YXIgbj1PYmplY3Qua2V5cyhzKTtpZigwPT09bi5sZW5ndGgpcmV0dXJue307dmFyIG89e2RlZmF1bHRfZm9udDp7Y21kOlwiZm9udE5hbWVcIixwYXJhbTp0LGljb246aSx0aXA6ZX19O3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9c1t0XTtvW3RdPXtjbWQ6XCJmb250TmFtZVwiLHBhcmFtOmUsaWNvbjppLHRpcDplLGh0bWxUaXA6Jzxmb250IGZhY2U9XCInK2UrJ1wiPicrZStcIjwvZm9udD5cIn19KSxvfWZ1bmN0aW9uIGdldExpbmtFZGl0b3IodCxlKXtpZihlLmNhcmV0KXt2YXIgaT1lLnRvb2xiYXJDb2xvcnx8ZS50b29sYmFyVGV4dENvbG9yLHM9ZS5lZGl0TGlua1VybCxuPWZ1bmN0aW9uKCl7ZS5jYXJldC5yZXN0b3JlKCkscyE9PWUuZWRpdExpbmtVcmwmJmRvY3VtZW50LmV4ZWNDb21tYW5kKFwiY3JlYXRlTGlua1wiLCExLFwiXCI9PT1zP1wiIFwiOnMpLGUuZWRpdExpbmtVcmw9bnVsbH07cmV0dXJuW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW14LXhzXCIsY2xhc3M6XCJ0ZXh0LVwiK2l9LFtlLiRxLmkxOG4uZWRpdG9yLnVybCtcIjogXCJdKSx0KFFJbnB1dCx7a2V5OlwicWVkdF9idG1faW5wdXRcIixzdGF0aWNDbGFzczpcInEtbWEtbm9uZSBxLXBhLW5vbmUgY29sIHEtZWRpdG9yLWlucHV0XCIscHJvcHM6e3ZhbHVlOnMsY29sb3I6aSxhdXRvZm9jdXM6ITAsaGlkZVVuZGVybGluZTohMH0sb246e2lucHV0OmZ1bmN0aW9uKHQpe3M9dH0sa2V5ZG93bjpmdW5jdGlvbih0KXtzd2l0Y2goZ2V0RXZlbnRLZXkodCkpe2Nhc2UgMTM6cmV0dXJuIHQucHJldmVudERlZmF1bHQoKSxuKCk7Y2FzZSAyNzplLmNhcmV0LnJlc3RvcmUoKSwhZS5lZGl0TGlua1VybCYmZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJ1bmxpbmtcIiksZS5lZGl0TGlua1VybD1udWxsfX19fSksdChRQnRuR3JvdXAse2tleTpcInFlZHRfYnRtX2dycFwiLHByb3BzOmUuYnV0dG9uUHJvcHN9LFt0KFFCdG4se2tleTpcInFlZHRfYnRtX3JlbVwiLGF0dHJzOnt0YWJpbmRleDotMX0scHJvcHM6T2JqZWN0LmFzc2lnbih7fSxlLmJ1dHRvblByb3BzLHtsYWJlbDplLiRxLmkxOG4ubGFiZWwucmVtb3ZlLG5vQ2FwczohMH0pLG9uOntjbGljazpmdW5jdGlvbigpe2UuY2FyZXQucmVzdG9yZSgpLGRvY3VtZW50LmV4ZWNDb21tYW5kKFwidW5saW5rXCIpLGUuZWRpdExpbmtVcmw9bnVsbH19fSksdChRQnRuLHtrZXk6XCJxZWR0X2J0bV91cGRcIixwcm9wczpPYmplY3QuYXNzaWduKHt9LGUuYnV0dG9uUHJvcHMse2xhYmVsOmUuJHEuaTE4bi5sYWJlbC51cGRhdGUsbm9DYXBzOiEwfSksb246e2NsaWNrOm59fSldKV19fWZ1bmN0aW9uIGdldEJsb2NrRWxlbWVudCh0LGUpe2lmKGUmJnQ9PT1lKXJldHVybiBudWxsO3ZhciBpPSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZT93aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KTp0LmN1cnJlbnRTdHlsZSkuZGlzcGxheTtyZXR1cm5cImJsb2NrXCI9PT1pfHxcInRhYmxlXCI9PT1pP3Q6Z2V0QmxvY2tFbGVtZW50KHQucGFyZW50Tm9kZSl9ZnVuY3Rpb24gaXNDaGlsZE9mKHQsZSl7aWYoIXQpcmV0dXJuITE7Zm9yKDt0PXQucGFyZW50Tm9kZTspe2lmKHQ9PT1kb2N1bWVudC5ib2R5KXJldHVybiExO2lmKHQ9PT1lKXJldHVybiEwfXJldHVybiExfXZhciB1cmxSZWdleD0vXmh0dHBzPzpcXC9cXC8vLENhcmV0PWZ1bmN0aW9uKHQsZSl7dGhpcy5lbD10LHRoaXMudm09ZX0scHJvdG90eXBlQWNjZXNzb3JzPXtzZWxlY3Rpb246e2NvbmZpZ3VyYWJsZTohMH0saGFzU2VsZWN0aW9uOntjb25maWd1cmFibGU6ITB9LHJhbmdlOntjb25maWd1cmFibGU6ITB9LHBhcmVudDp7Y29uZmlndXJhYmxlOiEwfSxibG9ja1BhcmVudDp7Y29uZmlndXJhYmxlOiEwfX07cHJvdG90eXBlQWNjZXNzb3JzLnNlbGVjdGlvbi5nZXQ9ZnVuY3Rpb24oKXtpZih0aGlzLmVsKXt2YXIgdD1kb2N1bWVudC5nZXRTZWxlY3Rpb24oKTtyZXR1cm4gaXNDaGlsZE9mKHQuYW5jaG9yTm9kZSx0aGlzLmVsKSYmaXNDaGlsZE9mKHQuZm9jdXNOb2RlLHRoaXMuZWwpP3Q6dm9pZCAwfX0scHJvdG90eXBlQWNjZXNzb3JzLmhhc1NlbGVjdGlvbi5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb24/dGhpcy5zZWxlY3Rpb24udG9TdHJpbmcoKS5sZW5ndGg+MDpudWxsfSxwcm90b3R5cGVBY2Nlc3NvcnMucmFuZ2UuZ2V0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zZWxlY3Rpb247aWYodClyZXR1cm4gdC5yYW5nZUNvdW50P3QuZ2V0UmFuZ2VBdCgwKTpudWxsfSxwcm90b3R5cGVBY2Nlc3NvcnMucGFyZW50LmdldD1mdW5jdGlvbigpe3ZhciB0PXRoaXMucmFuZ2U7aWYodCl7dmFyIGU9dC5zdGFydENvbnRhaW5lcjtyZXR1cm4gZS5ub2RlVHlwZT09PWRvY3VtZW50LkVMRU1FTlRfTk9ERT9lOmUucGFyZW50Tm9kZX19LHByb3RvdHlwZUFjY2Vzc29ycy5ibG9ja1BhcmVudC5nZXQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcmVudDtpZih0KXJldHVybiBnZXRCbG9ja0VsZW1lbnQodCx0aGlzLmVsKX0sQ2FyZXQucHJvdG90eXBlLnNhdmU9ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9dGhpcy5yYW5nZSksdGhpcy5fcmFuZ2U9dH0sQ2FyZXQucHJvdG90eXBlLnJlc3RvcmU9ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9dGhpcy5fcmFuZ2UpO3ZhciBlPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksaT1kb2N1bWVudC5nZXRTZWxlY3Rpb24oKTt0PyhlLnNldFN0YXJ0KHQuc3RhcnRDb250YWluZXIsdC5zdGFydE9mZnNldCksZS5zZXRFbmQodC5lbmRDb250YWluZXIsdC5lbmRPZmZzZXQpLGkucmVtb3ZlQWxsUmFuZ2VzKCksaS5hZGRSYW5nZShlKSk6KGkuc2VsZWN0QWxsQ2hpbGRyZW4odGhpcy5lbCksaS5jb2xsYXBzZVRvRW5kKCkpfSxDYXJldC5wcm90b3R5cGUuaGFzUGFyZW50PWZ1bmN0aW9uKHQsZSl7dmFyIGk9ZT90aGlzLnBhcmVudDp0aGlzLmJsb2NrUGFyZW50O3JldHVybiEhaSYmaS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09dC50b0xvd2VyQ2FzZSgpfSxDYXJldC5wcm90b3R5cGUuaGFzUGFyZW50cz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnBhcmVudDtyZXR1cm4hIWUmJnQuaW5jbHVkZXMoZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKX0sQ2FyZXQucHJvdG90eXBlLmlzPWZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQpe2Nhc2VcImZvcm1hdEJsb2NrXCI6cmV0dXJuXCJESVZcIj09PWUmJnRoaXMucGFyZW50PT09dGhpcy5lbHx8dGhpcy5oYXNQYXJlbnQoZSxcIlBSRVwiPT09ZSk7Y2FzZVwibGlua1wiOnJldHVybiB0aGlzLmhhc1BhcmVudChcIkFcIiwhMCk7Y2FzZVwiZm9udFNpemVcIjpyZXR1cm4gZG9jdW1lbnQucXVlcnlDb21tYW5kVmFsdWUodCk9PT1lO2Nhc2VcImZvbnROYW1lXCI6dmFyIGk9ZG9jdW1lbnQucXVlcnlDb21tYW5kVmFsdWUodCk7cmV0dXJuIGk9PT0nXCInK2UrJ1wiJ3x8aT09PWU7Y2FzZVwiZnVsbHNjcmVlblwiOnJldHVybiB0aGlzLnZtLmluRnVsbHNjcmVlbjtjYXNlIHZvaWQgMDpyZXR1cm4hMTtkZWZhdWx0OnZhciBzPWRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN0YXRlKHQpO3JldHVybiBlP3M9PT1lOnN9fSxDYXJldC5wcm90b3R5cGUuZ2V0UGFyZW50QXR0cmlidXRlPWZ1bmN0aW9uKHQpe2lmKHRoaXMucGFyZW50KXJldHVybiB0aGlzLnBhcmVudC5nZXRBdHRyaWJ1dGUodCl9LENhcmV0LnByb3RvdHlwZS5jYW49ZnVuY3Rpb24odCl7aWYoXCJvdXRkZW50XCI9PT10KXJldHVybiB0aGlzLmhhc1BhcmVudHMoW1wiYmxvY2txdW90ZVwiLFwibGlcIl0pO2lmKFwiaW5kZW50XCI9PT10KXt2YXIgZT0hIXRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO2lmKFwiYmxvY2txdW90ZVwiPT09ZSlyZXR1cm4hMTtpZihcImxpXCI9PT1lKXt2YXIgaT10aGlzLnBhcmVudC5wcmV2aW91c1NpYmxpbmc7cmV0dXJuIGkmJlwibGlcIj09PWkubm9kZU5hbWUudG9Mb3dlckNhc2UoKX1yZXR1cm4hMX19LENhcmV0LnByb3RvdHlwZS5hcHBseT1mdW5jdGlvbih0LGUsaSl7aWYodm9pZCAwPT09aSYmKGk9ZnVuY3Rpb24oKXt9KSxcImZvcm1hdEJsb2NrXCI9PT10KVtcIkJMT0NLUVVPVEVcIixcIkgxXCIsXCJIMlwiLFwiSDNcIixcIkg0XCIsXCJINVwiLFwiSDZcIl0uaW5jbHVkZXMoZSkmJnRoaXMuaXModCxlKSYmKHQ9XCJvdXRkZW50XCIsZT1udWxsKSxcIlBSRVwiPT09ZSYmdGhpcy5pcyh0LFwiUFJFXCIpJiYoZT1cIlBcIik7ZWxzZXtpZihcInByaW50XCI9PT10KXtpKCk7dmFyIHM9d2luZG93Lm9wZW4oKTtyZXR1cm4gcy5kb2N1bWVudC53cml0ZShcIlxcbiAgICAgICAgPCFkb2N0eXBlIGh0bWw+XFxuICAgICAgICA8aHRtbD5cXG4gICAgICAgICAgPGhlYWQ+XFxuICAgICAgICAgICAgPHRpdGxlPlByaW50IC0gXCIrZG9jdW1lbnQudGl0bGUrXCI8L3RpdGxlPlxcbiAgICAgICAgICA8L2hlYWQ+XFxuICAgICAgICAgIDxib2R5PlxcbiAgICAgICAgICAgIDxkaXY+XCIrdGhpcy5lbC5pbm5lckhUTUwrXCI8L2Rpdj5cXG4gICAgICAgICAgPC9ib2R5PlxcbiAgICAgICAgPC9odG1sPlxcbiAgICAgIFwiKSxzLnByaW50KCksdm9pZCBzLmNsb3NlKCl9aWYoXCJsaW5rXCI9PT10KXt2YXIgbj10aGlzLmdldFBhcmVudEF0dHJpYnV0ZShcImhyZWZcIik7aWYobil0aGlzLnZtLmVkaXRMaW5rVXJsPW47ZWxzZXt2YXIgbz10aGlzLnNlbGVjdFdvcmQodGhpcy5zZWxlY3Rpb24pLHI9bz9vLnRvU3RyaW5nKCk6XCJcIjtpZighci5sZW5ndGgpcmV0dXJuO3RoaXMudm0uZWRpdExpbmtVcmw9dXJsUmVnZXgudGVzdChyKT9yOlwiXCIsZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJjcmVhdGVMaW5rXCIsITEsXCJcIj09PXRoaXMudm0uZWRpdExpbmtVcmw/XCIgXCI6dGhpcy52bS5lZGl0TGlua1VybCl9cmV0dXJuIHRoaXMucmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKHRoaXMucGFyZW50KSx2b2lkIHRoaXMuc2F2ZSgpfWlmKFwiZnVsbHNjcmVlblwiPT09dClyZXR1cm4gdGhpcy52bS50b2dnbGVGdWxsc2NyZWVuKCksdm9pZCBpKCl9ZG9jdW1lbnQuZXhlY0NvbW1hbmQodCwhMSxlKSxpKCl9LENhcmV0LnByb3RvdHlwZS5zZWxlY3RXb3JkPWZ1bmN0aW9uKHQpe2lmKCF0LmlzQ29sbGFwc2VkKXJldHVybiB0O3ZhciBlPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7ZS5zZXRTdGFydCh0LmFuY2hvck5vZGUsdC5hbmNob3JPZmZzZXQpLGUuc2V0RW5kKHQuZm9jdXNOb2RlLHQuZm9jdXNPZmZzZXQpO3ZhciBpPWUuY29sbGFwc2VkP1tcImJhY2t3YXJkXCIsXCJmb3J3YXJkXCJdOltcImZvcndhcmRcIixcImJhY2t3YXJkXCJdO2UuZGV0YWNoKCk7dmFyIHM9dC5mb2N1c05vZGUsbj10LmZvY3VzT2Zmc2V0O3JldHVybiB0LmNvbGxhcHNlKHQuYW5jaG9yTm9kZSx0LmFuY2hvck9mZnNldCksdC5tb2RpZnkoXCJtb3ZlXCIsaVswXSxcImNoYXJhY3RlclwiKSx0Lm1vZGlmeShcIm1vdmVcIixpWzFdLFwid29yZFwiKSx0LmV4dGVuZChzLG4pLHQubW9kaWZ5KFwiZXh0ZW5kXCIsaVsxXSxcImNoYXJhY3RlclwiKSx0Lm1vZGlmeShcImV4dGVuZFwiLGlbMF0sXCJ3b3JkXCIpLHR9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKENhcmV0LnByb3RvdHlwZSxwcm90b3R5cGVBY2Nlc3NvcnMpO3ZhciB0b1N0cmluZz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGhhc093bj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGNsYXNzMnR5cGU9e307ZnVuY3Rpb24gdHlwZSh0KXtyZXR1cm4gbnVsbD09PXQ/U3RyaW5nKHQpOmNsYXNzMnR5cGVbdG9TdHJpbmcuY2FsbCh0KV18fFwib2JqZWN0XCJ9ZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh0KXtpZighdHx8XCJvYmplY3RcIiE9PXR5cGUodCkpcmV0dXJuITE7aWYodC5jb25zdHJ1Y3RvciYmIWhhc093bi5jYWxsKHQsXCJjb25zdHJ1Y3RvclwiKSYmIWhhc093bi5jYWxsKHQuY29uc3RydWN0b3IucHJvdG90eXBlLFwiaXNQcm90b3R5cGVPZlwiKSlyZXR1cm4hMTt2YXIgZTtmb3IoZSBpbiB0KTtyZXR1cm4gdm9pZCAwPT09ZXx8aGFzT3duLmNhbGwodCxlKX1mdW5jdGlvbiBleHRlbmQoKXt2YXIgdCxlLGkscyxuLG8scj1hcmd1bWVudHMsYT1hcmd1bWVudHNbMF18fHt9LGw9MSxjPWFyZ3VtZW50cy5sZW5ndGgsaD0hMTtmb3IoXCJib29sZWFuXCI9PXR5cGVvZiBhJiYoaD1hLGE9YXJndW1lbnRzWzFdfHx7fSxsPTIpLE9iamVjdChhKSE9PWEmJlwiZnVuY3Rpb25cIiE9PXR5cGUoYSkmJihhPXt9KSxjPT09bCYmKGE9dGhpcyxsLS0pO2w8YztsKyspaWYobnVsbCE9PSh0PXJbbF0pKWZvcihlIGluIHQpaT1hW2VdLGEhPT0ocz10W2VdKSYmKGgmJnMmJihpc1BsYWluT2JqZWN0KHMpfHwobj1cImFycmF5XCI9PT10eXBlKHMpKSk/KG4/KG49ITEsbz1pJiZcImFycmF5XCI9PT10eXBlKGkpP2k6W10pOm89aSYmaXNQbGFpbk9iamVjdChpKT9pOnt9LGFbZV09ZXh0ZW5kKGgsbyxzKSk6dm9pZCAwIT09cyYmKGFbZV09cykpO3JldHVybiBhfVwiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdFwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2NsYXNzMnR5cGVbXCJbb2JqZWN0IFwiK3QrXCJdXCJdPXQudG9Mb3dlckNhc2UoKX0pO3ZhciBRRWRpdG9yPXtuYW1lOlwiUUVkaXRvclwiLG1peGluczpbRnVsbHNjcmVlbk1peGluXSxwcm9wczp7dmFsdWU6e3R5cGU6U3RyaW5nLHJlcXVpcmVkOiEwfSxyZWFkb25seTpCb29sZWFuLGRpc2FibGU6Qm9vbGVhbixtaW5IZWlnaHQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCIxMHJlbVwifSxtYXhIZWlnaHQ6U3RyaW5nLGhlaWdodDpTdHJpbmcsZGVmaW5pdGlvbnM6T2JqZWN0LGZvbnRzOk9iamVjdCx0b29sYmFyOnt0eXBlOkFycmF5LHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4gMD09PXQubGVuZ3RofHx0LmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVybiB0Lmxlbmd0aH0pfSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuW1tcImxlZnRcIixcImNlbnRlclwiLFwicmlnaHRcIixcImp1c3RpZnlcIl0sW1wiYm9sZFwiLFwiaXRhbGljXCIsXCJ1bmRlcmxpbmVcIixcInN0cmlrZVwiXSxbXCJ1bmRvXCIsXCJyZWRvXCJdXX19LHRvb2xiYXJDb2xvcjpTdHJpbmcsdG9vbGJhclRleHRDb2xvcjpTdHJpbmcsdG9vbGJhclRvZ2dsZUNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSx0b29sYmFyQmc6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJncmV5LTNcIn0sdG9vbGJhckZsYXQ6Qm9vbGVhbix0b29sYmFyT3V0bGluZTpCb29sZWFuLHRvb2xiYXJQdXNoOkJvb2xlYW4sdG9vbGJhclJvdW5kZWQ6Qm9vbGVhbixjb250ZW50U3R5bGU6T2JqZWN0LGNvbnRlbnRDbGFzczpbT2JqZWN0LEFycmF5LFN0cmluZ119LGNvbXB1dGVkOntlZGl0YWJsZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLnJlYWRvbmx5JiYhdGhpcy5kaXNhYmxlfSxoYXNUb29sYmFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9vbGJhciYmdGhpcy50b29sYmFyLmxlbmd0aD4wfSx0b29sYmFyQmFja2dyb3VuZENsYXNzOmZ1bmN0aW9uKCl7aWYodGhpcy50b29sYmFyQmcpcmV0dXJuXCJiZy1cIit0aGlzLnRvb2xiYXJCZ30sYnV0dG9uUHJvcHM6ZnVuY3Rpb24oKXtyZXR1cm57b3V0bGluZTp0aGlzLnRvb2xiYXJPdXRsaW5lLGZsYXQ6dGhpcy50b29sYmFyRmxhdCxwdXNoOnRoaXMudG9vbGJhclB1c2gscm91bmRlZDp0aGlzLnRvb2xiYXJSb3VuZGVkLGRlbnNlOiEwLGNvbG9yOnRoaXMudG9vbGJhckNvbG9yLGRpc2FibGU6IXRoaXMuZWRpdGFibGV9fSxidXR0b25EZWY6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRxLmkxOG4uZWRpdG9yLGU9dGhpcy4kcS5pY29uLmVkaXRvcjtyZXR1cm57Ym9sZDp7Y21kOlwiYm9sZFwiLGljb246ZS5ib2xkLHRpcDp0LmJvbGQsa2V5OjY2fSxpdGFsaWM6e2NtZDpcIml0YWxpY1wiLGljb246ZS5pdGFsaWMsdGlwOnQuaXRhbGljLGtleTo3M30sc3RyaWtlOntjbWQ6XCJzdHJpa2VUaHJvdWdoXCIsaWNvbjplLnN0cmlrZXRocm91Z2gsdGlwOnQuc3RyaWtldGhyb3VnaCxrZXk6ODN9LHVuZGVybGluZTp7Y21kOlwidW5kZXJsaW5lXCIsaWNvbjplLnVuZGVybGluZSx0aXA6dC51bmRlcmxpbmUsa2V5Ojg1fSx1bm9yZGVyZWQ6e2NtZDpcImluc2VydFVub3JkZXJlZExpc3RcIixpY29uOmUudW5vcmRlcmVkTGlzdCx0aXA6dC51bm9yZGVyZWRMaXN0fSxvcmRlcmVkOntjbWQ6XCJpbnNlcnRPcmRlcmVkTGlzdFwiLGljb246ZS5vcmRlcmVkTGlzdCx0aXA6dC5vcmRlcmVkTGlzdH0sc3Vic2NyaXB0OntjbWQ6XCJzdWJzY3JpcHRcIixpY29uOmUuc3Vic2NyaXB0LHRpcDp0LnN1YnNjcmlwdCxodG1sVGlwOlwieDxzdWJzY3JpcHQ+Mjwvc3Vic2NyaXB0PlwifSxzdXBlcnNjcmlwdDp7Y21kOlwic3VwZXJzY3JpcHRcIixpY29uOmUuc3VwZXJzY3JpcHQsdGlwOnQuc3VwZXJzY3JpcHQsaHRtbFRpcDpcIng8c3VwZXJzY3JpcHQ+Mjwvc3VwZXJzY3JpcHQ+XCJ9LGxpbms6e2NtZDpcImxpbmtcIixpY29uOmUuaHlwZXJsaW5rLHRpcDp0Lmh5cGVybGluayxrZXk6NzZ9LGZ1bGxzY3JlZW46e2NtZDpcImZ1bGxzY3JlZW5cIixpY29uOmUudG9nZ2xlRnVsbHNjcmVlbix0aXA6dC50b2dnbGVGdWxsc2NyZWVuLGtleTo3MH0scXVvdGU6e2NtZDpcImZvcm1hdEJsb2NrXCIscGFyYW06XCJCTE9DS1FVT1RFXCIsaWNvbjplLnF1b3RlLHRpcDp0LnF1b3RlLGtleTo4MX0sbGVmdDp7Y21kOlwianVzdGlmeUxlZnRcIixpY29uOmUubGVmdCx0aXA6dC5sZWZ0fSxjZW50ZXI6e2NtZDpcImp1c3RpZnlDZW50ZXJcIixpY29uOmUuY2VudGVyLHRpcDp0LmNlbnRlcn0scmlnaHQ6e2NtZDpcImp1c3RpZnlSaWdodFwiLGljb246ZS5yaWdodCx0aXA6dC5yaWdodH0sanVzdGlmeTp7Y21kOlwianVzdGlmeUZ1bGxcIixpY29uOmUuanVzdGlmeSx0aXA6dC5qdXN0aWZ5fSxwcmludDp7dHlwZTpcIm5vLXN0YXRlXCIsY21kOlwicHJpbnRcIixpY29uOmUucHJpbnQsdGlwOnQucHJpbnQsa2V5OjgwfSxvdXRkZW50Ont0eXBlOlwibm8tc3RhdGVcIixkaXNhYmxlOmZ1bmN0aW9uKHQpe3JldHVybiB0LmNhcmV0JiYhdC5jYXJldC5jYW4oXCJvdXRkZW50XCIpfSxjbWQ6XCJvdXRkZW50XCIsaWNvbjplLm91dGRlbnQsdGlwOnQub3V0ZGVudH0saW5kZW50Ont0eXBlOlwibm8tc3RhdGVcIixkaXNhYmxlOmZ1bmN0aW9uKHQpe3JldHVybiB0LmNhcmV0JiYhdC5jYXJldC5jYW4oXCJpbmRlbnRcIil9LGNtZDpcImluZGVudFwiLGljb246ZS5pbmRlbnQsdGlwOnQuaW5kZW50fSxyZW1vdmVGb3JtYXQ6e3R5cGU6XCJuby1zdGF0ZVwiLGNtZDpcInJlbW92ZUZvcm1hdFwiLGljb246ZS5yZW1vdmVGb3JtYXQsdGlwOnQucmVtb3ZlRm9ybWF0fSxocjp7dHlwZTpcIm5vLXN0YXRlXCIsY21kOlwiaW5zZXJ0SG9yaXpvbnRhbFJ1bGVcIixpY29uOmUuaHIsdGlwOnQuaHJ9LHVuZG86e3R5cGU6XCJuby1zdGF0ZVwiLGNtZDpcInVuZG9cIixpY29uOmUudW5kbyx0aXA6dC51bmRvLGtleTo5MH0scmVkbzp7dHlwZTpcIm5vLXN0YXRlXCIsY21kOlwicmVkb1wiLGljb246ZS5yZWRvLHRpcDp0LnJlZG8sa2V5Ojg5fSxoMTp7Y21kOlwiZm9ybWF0QmxvY2tcIixwYXJhbTpcIkgxXCIsaWNvbjplLmhlYWRlcix0aXA6dC5oZWFkZXIxLGh0bWxUaXA6JzxoMSBjbGFzcz1cInEtbWEtbm9uZVwiPicrdC5oZWFkZXIxK1wiPC9oMT5cIn0saDI6e2NtZDpcImZvcm1hdEJsb2NrXCIscGFyYW06XCJIMlwiLGljb246ZS5oZWFkZXIsdGlwOnQuaGVhZGVyMixodG1sVGlwOic8aDIgY2xhc3M9XCJxLW1hLW5vbmVcIj4nK3QuaGVhZGVyMitcIjwvaDI+XCJ9LGgzOntjbWQ6XCJmb3JtYXRCbG9ja1wiLHBhcmFtOlwiSDNcIixpY29uOmUuaGVhZGVyLHRpcDp0LmhlYWRlcjMsaHRtbFRpcDonPGgzIGNsYXNzPVwicS1tYS1ub25lXCI+Jyt0LmhlYWRlcjMrXCI8L2gzPlwifSxoNDp7Y21kOlwiZm9ybWF0QmxvY2tcIixwYXJhbTpcIkg0XCIsaWNvbjplLmhlYWRlcix0aXA6dC5oZWFkZXI0LGh0bWxUaXA6JzxoNCBjbGFzcz1cInEtbWEtbm9uZVwiPicrdC5oZWFkZXI0K1wiPC9oND5cIn0saDU6e2NtZDpcImZvcm1hdEJsb2NrXCIscGFyYW06XCJINVwiLGljb246ZS5oZWFkZXIsdGlwOnQuaGVhZGVyNSxodG1sVGlwOic8aDUgY2xhc3M9XCJxLW1hLW5vbmVcIj4nK3QuaGVhZGVyNStcIjwvaDU+XCJ9LGg2OntjbWQ6XCJmb3JtYXRCbG9ja1wiLHBhcmFtOlwiSDZcIixpY29uOmUuaGVhZGVyLHRpcDp0LmhlYWRlcjYsaHRtbFRpcDonPGg2IGNsYXNzPVwicS1tYS1ub25lXCI+Jyt0LmhlYWRlcjYrXCI8L2g2PlwifSxwOntjbWQ6XCJmb3JtYXRCbG9ja1wiLHBhcmFtOlwiRElWXCIsaWNvbjplLmhlYWRlcix0aXA6dC5wYXJhZ3JhcGh9LGNvZGU6e2NtZDpcImZvcm1hdEJsb2NrXCIscGFyYW06XCJQUkVcIixpY29uOmUuY29kZSx0aXA6XCI8Y29kZT5cIit0LmNvZGUrXCI8L2NvZGU+XCJ9LFwic2l6ZS0xXCI6e2NtZDpcImZvbnRTaXplXCIscGFyYW06XCIxXCIsaWNvbjplLnNpemUsdGlwOnQuc2l6ZTEsaHRtbFRpcDonPGZvbnQgc2l6ZT1cIjFcIj4nK3Quc2l6ZTErXCI8L2ZvbnQ+XCJ9LFwic2l6ZS0yXCI6e2NtZDpcImZvbnRTaXplXCIscGFyYW06XCIyXCIsaWNvbjplLnNpemUsdGlwOnQuc2l6ZTIsaHRtbFRpcDonPGZvbnQgc2l6ZT1cIjJcIj4nK3Quc2l6ZTIrXCI8L2ZvbnQ+XCJ9LFwic2l6ZS0zXCI6e2NtZDpcImZvbnRTaXplXCIscGFyYW06XCIzXCIsaWNvbjplLnNpemUsdGlwOnQuc2l6ZTMsaHRtbFRpcDonPGZvbnQgc2l6ZT1cIjNcIj4nK3Quc2l6ZTMrXCI8L2ZvbnQ+XCJ9LFwic2l6ZS00XCI6e2NtZDpcImZvbnRTaXplXCIscGFyYW06XCI0XCIsaWNvbjplLnNpemUsdGlwOnQuc2l6ZTQsaHRtbFRpcDonPGZvbnQgc2l6ZT1cIjRcIj4nK3Quc2l6ZTQrXCI8L2ZvbnQ+XCJ9LFwic2l6ZS01XCI6e2NtZDpcImZvbnRTaXplXCIscGFyYW06XCI1XCIsaWNvbjplLnNpemUsdGlwOnQuc2l6ZTUsaHRtbFRpcDonPGZvbnQgc2l6ZT1cIjVcIj4nK3Quc2l6ZTUrXCI8L2ZvbnQ+XCJ9LFwic2l6ZS02XCI6e2NtZDpcImZvbnRTaXplXCIscGFyYW06XCI2XCIsaWNvbjplLnNpemUsdGlwOnQuc2l6ZTYsaHRtbFRpcDonPGZvbnQgc2l6ZT1cIjZcIj4nK3Quc2l6ZTYrXCI8L2ZvbnQ+XCJ9LFwic2l6ZS03XCI6e2NtZDpcImZvbnRTaXplXCIscGFyYW06XCI3XCIsaWNvbjplLnNpemUsdGlwOnQuc2l6ZTcsaHRtbFRpcDonPGZvbnQgc2l6ZT1cIjdcIj4nK3Quc2l6ZTcrXCI8L2ZvbnQ+XCJ9fX0sYnV0dG9uczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLmRlZmluaXRpb25zfHx7fSxpPXRoaXMuZGVmaW5pdGlvbnN8fHRoaXMuZm9udHM/ZXh0ZW5kKCEwLHt9LHRoaXMuYnV0dG9uRGVmLGUsZ2V0Rm9udHModGhpcy5kZWZhdWx0Rm9udCx0aGlzLiRxLmkxOG4uZWRpdG9yLmRlZmF1bHRGb250LHRoaXMuJHEuaWNvbi5lZGl0b3IuZm9udCx0aGlzLmZvbnRzKSk6dGhpcy5idXR0b25EZWY7cmV0dXJuIHRoaXMudG9vbGJhci5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIHMubWFwKGZ1bmN0aW9uKHMpe2lmKHMub3B0aW9ucylyZXR1cm57dHlwZTpcImRyb3Bkb3duXCIsaWNvbjpzLmljb24sbGFiZWw6cy5sYWJlbCxmaXhlZExhYmVsOnMuZml4ZWRMYWJlbCxmaXhlZEljb246cy5maXhlZEljb24saGlnaGxpZ2h0OnMuaGlnaGxpZ2h0LGxpc3Q6cy5saXN0LG9wdGlvbnM6cy5vcHRpb25zLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gaVt0XX0pfTt2YXIgbj1pW3NdO3JldHVybiBuP1wibm8tc3RhdGVcIj09PW4udHlwZXx8ZVtzXSYmKHZvaWQgMD09PW4uY21kfHx0LmJ1dHRvbkRlZltuLmNtZF0mJlwibm8tc3RhdGVcIj09PXQuYnV0dG9uRGVmW24uY21kXS50eXBlKT9uOmV4dGVuZCghMCx7dHlwZTpcInRvZ2dsZVwifSxuKTp7dHlwZTpcInNsb3RcIixzbG90OnN9fSl9KX0sa2V5czpmdW5jdGlvbigpe3ZhciB0PXt9LGU9ZnVuY3Rpb24oZSl7ZS5rZXkmJih0W2Uua2V5XT17Y21kOmUuY21kLHBhcmFtOmUucGFyYW19KX07cmV0dXJuIHRoaXMuYnV0dG9ucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuZm9yRWFjaChmdW5jdGlvbih0KXt0Lm9wdGlvbnM/dC5vcHRpb25zLmZvckVhY2goZSk6ZSh0KX0pfSksdH0saW5uZXJTdHlsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluRnVsbHNjcmVlbj90aGlzLmNvbnRlbnRTdHlsZTpbe21pbkhlaWdodDp0aGlzLm1pbkhlaWdodCxoZWlnaHQ6dGhpcy5oZWlnaHQsbWF4SGVpZ2h0OnRoaXMubWF4SGVpZ2h0fSx0aGlzLmNvbnRlbnRTdHlsZV19LGlubmVyQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5jb250ZW50Q2xhc3Mse2NvbDp0aGlzLmluRnVsbHNjcmVlbixcIm92ZXJmbG93LWF1dG9cIjp0aGlzLmluRnVsbHNjcmVlbnx8dGhpcy5tYXhIZWlnaHR9XX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57ZWRpdFdhdGNoZXI6ITAsZWRpdExpbmtVcmw6bnVsbH19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLmVkaXRXYXRjaGVyP3RoaXMuJHJlZnMuY29udGVudC5pbm5lckhUTUw9dDp0aGlzLmVkaXRXYXRjaGVyPSEwfX0sbWV0aG9kczp7b25JbnB1dDpmdW5jdGlvbih0KXtpZih0aGlzLmVkaXRXYXRjaGVyKXt2YXIgZT10aGlzLiRyZWZzLmNvbnRlbnQuaW5uZXJIVE1MO2UhPT10aGlzLnZhbHVlJiYodGhpcy5lZGl0V2F0Y2hlcj0hMSx0aGlzLiRlbWl0KFwiaW5wdXRcIixlKSl9fSxvbktleWRvd246ZnVuY3Rpb24odCl7dmFyIGU9Z2V0RXZlbnRLZXkodCk7aWYoIXQuY3RybEtleSlyZXR1cm4gdGhpcy5yZWZyZXNoVG9vbGJhcigpLHZvaWQodGhpcy4kcS5wbGF0Zm9ybS5pcy5pZSYmdGhpcy4kbmV4dFRpY2sodGhpcy5vbklucHV0KSk7dmFyIGk9dGhpcy5rZXlzW2VdO2lmKHZvaWQgMCE9PWkpe3ZhciBzPWkuY21kLG49aS5wYXJhbTtzdG9wQW5kUHJldmVudCh0KSx0aGlzLnJ1bkNtZChzLG4sITEpLHRoaXMuJHEucGxhdGZvcm0uaXMuaWUmJnRoaXMuJG5leHRUaWNrKHRoaXMub25JbnB1dCl9fSxydW5DbWQ6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXM7dm9pZCAwPT09aSYmKGk9ITApLHRoaXMuZm9jdXMoKSx0aGlzLmNhcmV0LmFwcGx5KHQsZSxmdW5jdGlvbigpe3MuZm9jdXMoKSxpJiZzLnJlZnJlc2hUb29sYmFyKCl9KX0scmVmcmVzaFRvb2xiYXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmVkaXRMaW5rVXJsPW51bGwsdC4kZm9yY2VVcGRhdGUoKX0sMSl9LGZvY3VzOmZ1bmN0aW9uKCl7dGhpcy4kcmVmcy5jb250ZW50LmZvY3VzKCl9LGdldENvbnRlbnRFbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRyZWZzLmNvbnRlbnR9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7aXNTU1J8fChkb2N1bWVudC5leGVjQ29tbWFuZChcImRlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3JcIiwhMSxcImRpdlwiKSx0aGlzLmRlZmF1bHRGb250PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmZvbnRGYW1pbHkpfSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3QuJHJlZnMuY29udGVudCYmKHQuY2FyZXQ9bmV3IENhcmV0KHQuJHJlZnMuY29udGVudCx0KSx0LiRyZWZzLmNvbnRlbnQuaW5uZXJIVE1MPXQudmFsdWUpLHQuJG5leHRUaWNrKHQucmVmcmVzaFRvb2xiYXIpfSl9LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZSxpPXRoaXM7aWYodGhpcy5oYXNUb29sYmFyKXt2YXIgcz17c3RhdGljQ2xhc3M6XCJxLWVkaXRvci10b29sYmFyIHJvdyBuby13cmFwIHNjcm9sbC14XCIsY2xhc3M6W3tcInEtZWRpdG9yLXRvb2xiYXItc2VwYXJhdG9yXCI6IXRoaXMudG9vbGJhck91dGxpbmUmJiF0aGlzLnRvb2xiYXJQdXNofSx0aGlzLnRvb2xiYXJCYWNrZ3JvdW5kQ2xhc3NdfTsoZT1bXSkucHVzaCh0KFwiZGl2XCIsZXh0ZW5kKHtrZXk6XCJxZWR0X3RvcFwifSxzKSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJvdyBuby13cmFwIHEtZWRpdG9yLXRvb2xiYXItcGFkZGluZyBmaXQgaXRlbXMtY2VudGVyXCJ9LGdldFRvb2xiYXIodCx0aGlzKSldKSksbnVsbCE9PXRoaXMuZWRpdExpbmtVcmwmJmUucHVzaCh0KFwiZGl2XCIsZXh0ZW5kKHtrZXk6XCJxZWR0X2J0bVwifSxzKSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJvdyBuby13cmFwIHEtZWRpdG9yLXRvb2xiYXItcGFkZGluZyBmaXQgaXRlbXMtY2VudGVyXCJ9LGdldExpbmtFZGl0b3IodCx0aGlzKSldKSksZT10KFwiZGl2XCIsZSl9cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWVkaXRvclwiLHN0eWxlOntoZWlnaHQ6dGhpcy5pbkZ1bGxzY3JlZW4/XCIxMDB2aFwiOm51bGx9LGNsYXNzOntkaXNhYmxlZDp0aGlzLmRpc2FibGUsZnVsbHNjcmVlbjp0aGlzLmluRnVsbHNjcmVlbixjb2x1bW46dGhpcy5pbkZ1bGxzY3JlZW59fSxbZSx0KFwiZGl2XCIse3JlZjpcImNvbnRlbnRcIixzdGF0aWNDbGFzczpcInEtZWRpdG9yLWNvbnRlbnRcIixzdHlsZTp0aGlzLmlubmVyU3R5bGUsY2xhc3M6dGhpcy5pbm5lckNsYXNzLGF0dHJzOntjb250ZW50ZWRpdGFibGU6dGhpcy5lZGl0YWJsZX0sZG9tUHJvcHM6aXNTU1I/e2lubmVySFRNTDp0aGlzLnZhbHVlfTp2b2lkIDAsb246e2lucHV0OnRoaXMub25JbnB1dCxrZXlkb3duOnRoaXMub25LZXlkb3duLGNsaWNrOnRoaXMucmVmcmVzaFRvb2xiYXIsYmx1cjpmdW5jdGlvbigpe2kuY2FyZXQuc2F2ZSgpfX19KV0pfX0sRmFiTWl4aW49e3Byb3BzOntvdXRsaW5lOkJvb2xlYW4scHVzaDpCb29sZWFuLGZsYXQ6Qm9vbGVhbixjb2xvcjpTdHJpbmcsdGV4dENvbG9yOlN0cmluZyxnbG9zc3k6Qm9vbGVhbn19LFFGYWI9e25hbWU6XCJRRmFiXCIsbWl4aW5zOltGYWJNaXhpbixNb2RlbFRvZ2dsZU1peGluXSxwcm92aWRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm57X19xRmFiQ2xvc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIHQuaGlkZShlKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQuJHJlZnMudHJpZ2dlciYmdC4kcmVmcy50cmlnZ2VyLiRlbCYmdC4kcmVmcy50cmlnZ2VyLiRlbC5mb2N1cygpLGV9KX19fSxwcm9wczp7aWNvbjpTdHJpbmcsYWN0aXZlSWNvbjpTdHJpbmcsZGlyZWN0aW9uOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicmlnaHRcIn0scGVyc2lzdGVudDpCb29sZWFufSx3YXRjaDp7JHJvdXRlOmZ1bmN0aW9uKCl7IXRoaXMucGVyc2lzdGVudCYmdGhpcy5oaWRlKCl9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy52YWx1ZSYmdGhpcy5zaG93KCl9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZmFiIHotZmFiIHJvdyBpbmxpbmUganVzdGlmeS1jZW50ZXJcIixjbGFzczp7XCJxLWZhYi1vcGVuZWRcIjp0aGlzLnNob3dpbmd9fSxbdChRQnRuLHtyZWY6XCJ0cmlnZ2VyXCIscHJvcHM6e2ZhYjohMCxvdXRsaW5lOnRoaXMub3V0bGluZSxwdXNoOnRoaXMucHVzaCxmbGF0OnRoaXMuZmxhdCxjb2xvcjp0aGlzLmNvbG9yLHRleHRDb2xvcjp0aGlzLnRleHRDb2xvcixnbG9zc3k6dGhpcy5nbG9zc3l9LG9uOntjbGljazp0aGlzLnRvZ2dsZX19LFt0aGlzLiRzbG90cy50b29sdGlwLHQoUUljb24se3N0YXRpY0NsYXNzOlwicS1mYWItaWNvbiBhYnNvbHV0ZS1mdWxsXCIscHJvcHM6e25hbWU6dGhpcy5pY29ufHx0aGlzLiRxLmljb24uZmFiLmljb259fSksdChRSWNvbix7c3RhdGljQ2xhc3M6XCJxLWZhYi1hY3RpdmUtaWNvbiBhYnNvbHV0ZS1mdWxsXCIscHJvcHM6e25hbWU6dGhpcy5hY3RpdmVJY29ufHx0aGlzLiRxLmljb24uZmFiLmFjdGl2ZUljb259fSldKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1mYWItYWN0aW9ucyBmbGV4IG5vLXdyYXAgaW5saW5lIGl0ZW1zLWNlbnRlclwiLGNsYXNzOlwicS1mYWItXCIrdGhpcy5kaXJlY3Rpb259LHRoaXMuJHNsb3RzLmRlZmF1bHQpXSl9fSxRRmFiQWN0aW9uPXtuYW1lOlwiUUZhYkFjdGlvblwiLG1peGluczpbRmFiTWl4aW5dLHByb3BzOntpY29uOnt0eXBlOlN0cmluZyxyZXF1aXJlZDohMH19LGluamVjdDp7X19xRmFiQ2xvc2U6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUUZhYkFjdGlvbiBuZWVkcyB0byBiZSBjaGlsZCBvZiBRRmFiXCIpfX19LG1ldGhvZHM6e2NsaWNrOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5fX3FGYWJDbG9zZSgpLnRoZW4oZnVuY3Rpb24oKXtlLiRlbWl0KFwiY2xpY2tcIix0KX0pfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFFCdG4se3Byb3BzOntmYWJNaW5pOiEwLG91dGxpbmU6dGhpcy5vdXRsaW5lLHB1c2g6dGhpcy5wdXNoLGZsYXQ6dGhpcy5mbGF0LGNvbG9yOnRoaXMuY29sb3IsdGV4dENvbG9yOnRoaXMudGV4dENvbG9yLGdsb3NzeTp0aGlzLmdsb3NzeSxpY29uOnRoaXMuaWNvbn0sb246e2NsaWNrOnRoaXMuY2xpY2t9fSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFGaWVsZD17bmFtZTpcIlFGaWVsZFwiLG1peGluczpbQ2FuUmVuZGVyTWl4aW5dLHByb3BzOntpbnNldDp7dHlwZTpTdHJpbmcsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcImljb25cIixcImxhYmVsXCIsXCJmdWxsXCJdLmluY2x1ZGVzKHQpfX0sbGFiZWw6U3RyaW5nLGNvdW50Ont0eXBlOltOdW1iZXIsQm9vbGVhbl0sZGVmYXVsdDohMX0sZXJyb3I6Qm9vbGVhbixlcnJvckxhYmVsOlN0cmluZyx3YXJuaW5nOkJvb2xlYW4sd2FybmluZ0xhYmVsOlN0cmluZyxoZWxwZXI6U3RyaW5nLGljb246U3RyaW5nLGljb25Db2xvcjpTdHJpbmcsZGFyazpCb29sZWFuLG9yaWVudGF0aW9uOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1widmVydGljYWxcIixcImhvcml6b250YWxcIl0uaW5jbHVkZXModCl9fSxsYWJlbFdpZHRoOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjUsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3ZhciBlPXBhcnNlSW50KHQsMTApO3JldHVybiBlPjAmJmU8MTN9fX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntpbnB1dDp7fX19LGNvbXB1dGVkOntoYXNFcnJvcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0LmVycm9yfHx0aGlzLmVycm9yfSxoYXNXYXJuaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaGFzRXJyb3ImJih0aGlzLmlucHV0Lndhcm5pbmd8fHRoaXMud2FybmluZyl9LGNoaWxkSGFzTGFiZWw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC5mbG9hdExhYmVsfHx0aGlzLmlucHV0LnN0YWNrTGFiZWx9LGlzRGFyazpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0LmRhcmt8fHRoaXMuZGFya30saW5zZXRJY29uOmZ1bmN0aW9uKCl7cmV0dXJuW1wiaWNvblwiLFwiZnVsbFwiXS5pbmNsdWRlcyh0aGlzLmluc2V0KX0saGFzTm9JbnB1dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNhblJlbmRlciYmKCF0aGlzLmlucHV0LiRvcHRpb25zfHx0aGlzLmlucHV0Ll9fbmVlZHNCb3JkZXIpfSxjb3VudGVyOmZ1bmN0aW9uKCl7aWYodGhpcy5jb3VudCl7dmFyIHQ9dGhpcy5pbnB1dC5sZW5ndGh8fFwiMFwiO3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKHRoaXMuY291bnQpP3QrXCIgLyBcIit0aGlzLmNvdW50OnR9fSxjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJue1wicS1maWVsZC1yZXNwb25zaXZlXCI6IXRoaXMuaXNWZXJ0aWNhbCYmIXRoaXMuaXNIb3Jpem9udGFsLFwicS1maWVsZC12ZXJ0aWNhbFwiOnRoaXMuaXNWZXJ0aWNhbCxcInEtZmllbGQtaG9yaXpvbnRhbFwiOnRoaXMuaXNIb3Jpem9udGFsLFwicS1maWVsZC1mbG9hdGluZ1wiOnRoaXMuY2hpbGRIYXNMYWJlbCxcInEtZmllbGQtbm8tbGFiZWxcIjohdGhpcy5sYWJlbCYmIXRoaXMuJHNsb3RzLmxhYmVsLFwicS1maWVsZC13aXRoLWVycm9yXCI6dGhpcy5oYXNFcnJvcixcInEtZmllbGQtd2l0aC13YXJuaW5nXCI6dGhpcy5oYXNXYXJuaW5nLFwicS1maWVsZC1kYXJrXCI6dGhpcy5pc0RhcmssXCJxLWZpZWxkLW5vLWlucHV0XCI6dGhpcy5oYXNOb0lucHV0fX0sY29tcHV0ZWRMYWJlbFdpZHRoOmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlSW50KHRoaXMubGFiZWxXaWR0aCwxMCl9LGlzVmVydGljYWw6ZnVuY3Rpb24oKXtyZXR1cm5cInZlcnRpY2FsXCI9PT10aGlzLm9yaWVudGF0aW9ufHwxMj09PXRoaXMuY29tcHV0ZWRMYWJlbFdpZHRofSxpc0hvcml6b250YWw6ZnVuY3Rpb24oKXtyZXR1cm5cImhvcml6b250YWxcIj09PXRoaXMub3JpZW50YXRpb259LGxhYmVsQ2xhc3NlczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmVydGljYWw/XCJjb2wtMTJcIjp0aGlzLmlzSG9yaXpvbnRhbD9cImNvbC1cIit0aGlzLmxhYmVsV2lkdGg6XCJjb2wteHMtMTIgY29sLXNtLVwiK3RoaXMubGFiZWxXaWR0aH0saW5wdXRDbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNWZXJ0aWNhbD9cImNvbC14cy0xMlwiOnRoaXMuaXNIb3Jpem9udGFsP1wiY29sXCI6XCJjb2wteHMtMTIgY29sLXNtXCJ9LGljb25Qcm9wczpmdW5jdGlvbigpe3ZhciB0PXtuYW1lOnRoaXMuaWNvbn07cmV0dXJuIXRoaXMuaWNvbkNvbG9yfHx0aGlzLmhhc0Vycm9yfHx0aGlzLmhhc1dhcm5pbmd8fCh0LmNvbG9yPXRoaXMuaWNvbkNvbG9yKSx0fSxpbnNldEhhc0xhYmVsOmZ1bmN0aW9uKCl7cmV0dXJuW1wibGFiZWxcIixcImZ1bGxcIl0uaW5jbHVkZXModGhpcy5pbnNldCl9fSxwcm92aWRlOmZ1bmN0aW9uKCl7cmV0dXJue19fZmllbGQ6dGhpc319LG1ldGhvZHM6e19fcmVnaXN0ZXJJbnB1dDpmdW5jdGlvbih0KXt0aGlzLmlucHV0PXR9LF9fdW5yZWdpc3RlcklucHV0OmZ1bmN0aW9uKHQpe3QmJnQhPT10aGlzLmlucHV0fHwodGhpcy5pbnB1dD17fSl9LF9fZ2V0Qm90dG9tQ29udGVudDpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gdGhpcy5oYXNFcnJvciYmKGU9dGhpcy4kc2xvdHNbXCJlcnJvci1sYWJlbFwiXXx8dGhpcy5lcnJvckxhYmVsKT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZC1lcnJvciBjb2xcIn0sZSk6dGhpcy5oYXNXYXJuaW5nJiYoZT10aGlzLiRzbG90c1tcIndhcm5pbmctbGFiZWxcIl18fHRoaXMud2FybmluZ0xhYmVsKT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZC13YXJuaW5nIGNvbFwifSxlKTooZT10aGlzLiRzbG90cy5oZWxwZXJ8fHRoaXMuaGVscGVyKT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZC1oZWxwZXIgY29sXCJ9LGUpOnQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgdGV4dC10cmFuc3BhcmVudFwifSxbXCJ8XCJdKX0sX19oYXNCb3R0b206ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kc2xvdHNbXCJlcnJvci1sYWJlbFwiXXx8dGhpcy5lcnJvckxhYmVsfHx0aGlzLiRzbG90c1tcIndhcm5pbmctbGFiZWxcIl18fHRoaXMud2FybmluZ0xhYmVsfHx0aGlzLiRzbG90cy5oZWxwZXJ8fHRoaXMuaGVscGVyfHx0aGlzLmNvdW50fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuJHNsb3RzLmxhYmVsfHx0aGlzLmxhYmVsO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZCByb3cgbm8td3JhcCBpdGVtcy1zdGFydFwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sW3RoaXMuaWNvbj90KFFJY29uLHtwcm9wczp0aGlzLmljb25Qcm9wcyxzdGF0aWNDbGFzczpcInEtZmllbGQtaWNvbiBxLWZpZWxkLW1hcmdpblwifSk6dGhpcy5pbnNldEljb24/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZmllbGQtaWNvblwifSk6bnVsbCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicm93IGNvbFwifSxbZXx8dGhpcy5pbnNldEhhc0xhYmVsP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWZpZWxkLWxhYmVsIHEtZmllbGQtbWFyZ2luXCIsY2xhc3M6dGhpcy5sYWJlbENsYXNzZXN9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZC1sYWJlbC1pbm5lciByb3cgaXRlbXMtY2VudGVyXCJ9LFt0aGlzLiRzbG90cy5sYWJlbHx8dGhpcy5sYWJlbF0pXSk6bnVsbCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZC1jb250ZW50XCIsY2xhc3M6dGhpcy5pbnB1dENsYXNzZXN9LFt0aGlzLiRzbG90cy5kZWZhdWx0LHRoaXMuX19oYXNCb3R0b20oKT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZC1ib3R0b20gcm93IG5vLXdyYXBcIn0sW3RoaXMuX19nZXRCb3R0b21Db250ZW50KHQpLHRoaXMuY291bnRlcj90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZC1jb3VudGVyIGNvbC1hdXRvXCJ9LFt0aGlzLmNvdW50ZXJdKTpudWxsXSk6bnVsbF0pXSldKX19LFFJbmZpbml0ZVNjcm9sbD17bmFtZTpcIlFJbmZpbml0ZVNjcm9sbFwiLHByb3BzOntoYW5kbGVyOnt0eXBlOkZ1bmN0aW9uLHJlcXVpcmVkOiEwfSxpbmxpbmU6Qm9vbGVhbixvZmZzZXQ6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MH19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aW5kZXg6MCxmZXRjaGluZzohMSx3b3JraW5nOiEwfX0sbWV0aG9kczp7cG9sbDpmdW5jdGlvbigpe2lmKCF0aGlzLmZldGNoaW5nJiZ0aGlzLndvcmtpbmcpe3ZhciB0PWhlaWdodCh0aGlzLnNjcm9sbENvbnRhaW5lciksZT1vZmZzZXQodGhpcy5zY3JvbGxDb250YWluZXIpLnRvcCt0O29mZnNldCh0aGlzLmVsZW1lbnQpLnRvcCtoZWlnaHQodGhpcy5lbGVtZW50KS0odGhpcy5vZmZzZXR8fHQpPGUmJnRoaXMubG9hZE1vcmUoKX19LGxvYWRNb3JlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczshdGhpcy5mZXRjaGluZyYmdGhpcy53b3JraW5nJiYodGhpcy5pbmRleCsrLHRoaXMuZmV0Y2hpbmc9ITAsdGhpcy5oYW5kbGVyKHRoaXMuaW5kZXgsZnVuY3Rpb24oZSl7dC5mZXRjaGluZz0hMSxlP3Quc3RvcCgpOnQuZWxlbWVudC5jbG9zZXN0KFwiYm9keVwiKSYmdC5wb2xsKCl9KSl9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5pbmRleD0wfSxyZXN1bWU6ZnVuY3Rpb24oKXshMCE9PXRoaXMud29ya2luZyYmKHRoaXMud29ya2luZz0hMCx0aGlzLnNjcm9sbENvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdGhpcy5wb2xsLGxpc3Rlbk9wdHMucGFzc2l2ZSkpLHRoaXMuaW1tZWRpYXRlUG9sbCgpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy53b3JraW5nPSExLHRoaXMuZmV0Y2hpbmc9ITEsdGhpcy5zY3JvbGxDb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMucG9sbCxsaXN0ZW5PcHRzLnBhc3NpdmUpfX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0LmVsZW1lbnQ9dC4kcmVmcy5jb250ZW50LHQuc2Nyb2xsQ29udGFpbmVyPXQuaW5saW5lP3QuJGVsOmdldFNjcm9sbFRhcmdldCh0LiRlbCksdC5wb2xsKCksdC5pbW1lZGlhdGVQb2xsPXQucG9sbCx0LnBvbGw9ZGVib3VuY2UodC5wb2xsLDUwKSwhMD09PXQud29ya2luZyYmdC5zY3JvbGxDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHQucG9sbCxsaXN0ZW5PcHRzLnBhc3NpdmUpfSl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLnNjcm9sbENvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdGhpcy5wb2xsLGxpc3Rlbk9wdHMucGFzc2l2ZSl9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaW5maW5pdGUtc2Nyb2xsXCJ9LFt0KFwiZGl2XCIse3JlZjpcImNvbnRlbnRcIixzdGF0aWNDbGFzczpcInEtaW5maW5pdGUtc2Nyb2xsLWNvbnRlbnRcIn0sdGhpcy4kc2xvdHMuZGVmYXVsdCksdGhpcy5mZXRjaGluZz90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1pbmZpbml0ZS1zY3JvbGwtbWVzc2FnZVwifSx0aGlzLiRzbG90cy5tZXNzYWdlKTpudWxsXSl9fSxRSW5uZXJMb2FkaW5nPXtuYW1lOlwiUUlubmVyTG9hZGluZ1wiLHByb3BzOntkYXJrOkJvb2xlYW4sdmlzaWJsZTpCb29sZWFuLHNpemU6e3R5cGU6W1N0cmluZyxOdW1iZXJdLGRlZmF1bHQ6NDJ9LGNvbG9yOlN0cmluZ30scmVuZGVyOmZ1bmN0aW9uKHQpe2lmKHRoaXMudmlzaWJsZSlyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaW5uZXItbG9hZGluZyBhbmltYXRlLWZhZGUgYWJzb2x1dGUtZnVsbCBjb2x1bW4gZmxleC1jZW50ZXJcIixjbGFzczp7ZGFyazp0aGlzLmRhcmt9fSx0aGlzLiRzbG90cy5kZWZhdWx0fHxbdChRU3Bpbm5lcix7cHJvcHM6e3NpemU6dGhpcy5zaXplLGNvbG9yOnRoaXMuY29sb3J9fSldKX19LFFKdW1ib3Ryb249e25hbWU6XCJRSnVtYm90cm9uXCIscHJvcHM6e2Rhcms6Qm9vbGVhbix0YWc6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJkaXZcIn0saW1nU3JjOlN0cmluZyxncmFkaWVudDpTdHJpbmd9LGNvbXB1dGVkOntncmFkaWVudFR5cGU6ZnVuY3Rpb24oKXtpZih0aGlzLmdyYWRpZW50KXJldHVybiB0aGlzLmdyYWRpZW50LmluZGV4T2YoXCJjaXJjbGVcIik+LTE/XCJyYWRpYWxcIjpcImxpbmVhclwifSxjb21wdXRlZFN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW1nU3JjP3tcImJhY2tncm91bmQtaW1hZ2VcIjpcInVybChcIit0aGlzLmltZ1NyYytcIilcIn06dGhpcy5ncmFkaWVudFR5cGU/e2JhY2tncm91bmQ6dGhpcy5ncmFkaWVudFR5cGUrXCItZ3JhZGllbnQoXCIrdGhpcy5ncmFkaWVudCtcIilcIn06dm9pZCAwfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KHRoaXMudGFnLHtzdGF0aWNDbGFzczpcInEtanVtYm90cm9uXCIsc3R5bGU6dGhpcy5jb21wdXRlZFN0eWxlLGNsYXNzOntcInEtanVtYm90cm9uLWRhcmtcIjp0aGlzLmRhcmt9fSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFLbm9iPXtuYW1lOlwiUUtub2JcIixkaXJlY3RpdmVzOntUb3VjaFBhbjpUb3VjaFBhbn0scHJvcHM6e3ZhbHVlOk51bWJlcixtaW46e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MH0sbWF4Ont0eXBlOk51bWJlcixkZWZhdWx0OjEwMH0sY29sb3I6U3RyaW5nLHRyYWNrQ29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJncmV5LTNcIn0sbGluZVdpZHRoOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiNnB4XCJ9LHNpemU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCIxMDBweFwifSxzdGVwOnt0eXBlOk51bWJlcixkZWZhdWx0OjF9LGRlY2ltYWxzOk51bWJlcixkaXNhYmxlOkJvb2xlYW4scmVhZG9ubHk6Qm9vbGVhbn0sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5kaXNhYmxlJiZ0LnB1c2goXCJkaXNhYmxlZFwiKSx0aGlzLnJlYWRvbmx5fHx0LnB1c2goXCJjdXJzb3ItcG9pbnRlclwiKSx0aGlzLmNvbG9yJiZ0LnB1c2goXCJ0ZXh0LVwiK3RoaXMuY29sb3IpLHR9LHN2Z1N0eWxlOmZ1bmN0aW9uKCl7cmV0dXJue1wic3Ryb2tlLWRhc2hhcnJheVwiOlwiMjk1LjMxcHgsIDI5NS4zMXB4XCIsXCJzdHJva2UtZGFzaG9mZnNldFwiOjI5NS4zMSoodGhpcy4kcS5pMThuLnJ0bD8tMToxKSooMS0odGhpcy5tb2RlbC10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKSkrXCJweFwiLHRyYW5zaXRpb246dGhpcy5kcmFnZ2luZz9cIlwiOlwic3Ryb2tlLWRhc2hvZmZzZXQgMC42cyBlYXNlIDBzLCBzdHJva2UgMC42cyBlYXNlXCJ9fSxlZGl0YWJsZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLmRpc2FibGUmJiF0aGlzLnJlYWRvbmx5fSxjb21wdXRlZERlY2ltYWxzOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuZGVjaW1hbHM/dGhpcy5kZWNpbWFsc3x8MDooU3RyaW5nKHRoaXMuc3RlcCkudHJpbShcIjBcIikuc3BsaXQoXCIuXCIpWzFdfHxcIlwiKS5sZW5ndGh9LGNvbXB1dGVkU3RlcDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLmRlY2ltYWxzPzEvTWF0aC5wb3coMTAsdGhpcy5kZWNpbWFsc3x8MCk6dGhpcy5zdGVwfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybnttb2RlbDp0aGlzLnZhbHVlLGRyYWdnaW5nOiExfX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodDx0aGlzLm1pbil0aGlzLm1vZGVsPXRoaXMubWluO2Vsc2V7aWYoISh0PnRoaXMubWF4KSl7dmFyIGk9dGhpcy5jb21wdXRlZERlY2ltYWxzJiZcIm51bWJlclwiPT10eXBlb2YgdD9wYXJzZUZsb2F0KHQudG9GaXhlZCh0aGlzLmNvbXB1dGVkRGVjaW1hbHMpKTp0O3JldHVybiB2b2lkKGkhPT10aGlzLm1vZGVsJiYodGhpcy5tb2RlbD1pKSl9dGhpcy5tb2RlbD10aGlzLm1heH10aGlzLiRlbWl0KFwiaW5wdXRcIix0aGlzLm1vZGVsKSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe2UubW9kZWwhPT1lLnZhbHVlJiZlLiRlbWl0KFwiY2hhbmdlXCIsZS5tb2RlbCl9KX19LG1ldGhvZHM6e19fcGFuOmZ1bmN0aW9uKHQpe3RoaXMuZWRpdGFibGUmJih0LmlzRmluYWw/dGhpcy5fX2RyYWdTdG9wKHQuZXZ0KTp0LmlzRmlyc3Q/dGhpcy5fX2RyYWdTdGFydCh0LmV2dCk6dGhpcy5fX2RyYWdNb3ZlKHQuZXZ0KSl9LF9fZHJhZ1N0YXJ0OmZ1bmN0aW9uKHQpe3RoaXMuZWRpdGFibGUmJihzdG9wQW5kUHJldmVudCh0KSx0aGlzLmNlbnRlclBvc2l0aW9uPXRoaXMuX19nZXRDZW50ZXIoKSxjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5kcmFnZ2luZz0hMCx0aGlzLl9fb25JbnB1dCh0KSl9LF9fZHJhZ01vdmU6ZnVuY3Rpb24odCl7dGhpcy5kcmFnZ2luZyYmdGhpcy5lZGl0YWJsZSYmKHN0b3BBbmRQcmV2ZW50KHQpLHRoaXMuX19vbklucHV0KHQsdGhpcy5jZW50ZXJQb3NpdGlvbikpfSxfX2RyYWdTdG9wOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5lZGl0YWJsZSYmKHN0b3BBbmRQcmV2ZW50KHQpLHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2UuZHJhZ2dpbmc9ITF9LDEwMCksdGhpcy5fX29uSW5wdXQodCx0aGlzLmNlbnRlclBvc2l0aW9uLCEwKSl9LF9fb25LZXlEb3duOmZ1bmN0aW9uKHQpe3ZhciBlPXQua2V5Q29kZTtpZih0aGlzLmVkaXRhYmxlJiZbMzcsNDAsMzksMzhdLmluY2x1ZGVzKGUpKXtzdG9wQW5kUHJldmVudCh0KTt2YXIgaT10LmN0cmxLZXk/MTAqdGhpcy5jb21wdXRlZFN0ZXA6dGhpcy5jb21wdXRlZFN0ZXAscz1bMzcsNDBdLmluY2x1ZGVzKGUpPy1pOmk7dGhpcy5fX29uSW5wdXRWYWx1ZShiZXR3ZWVuKHRoaXMubW9kZWwrcyx0aGlzLm1pbix0aGlzLm1heCkpfX0sX19vbktleVVwOmZ1bmN0aW9uKHQpe3ZhciBlPXQua2V5Q29kZTt0aGlzLmVkaXRhYmxlJiZbMzcsNDAsMzksMzhdLmluY2x1ZGVzKGUpJiZ0aGlzLl9fZW1pdENoYW5nZSgpfSxfX29uSW5wdXQ6ZnVuY3Rpb24odCxlLGkpe2lmKHZvaWQgMD09PWUmJihlPXRoaXMuX19nZXRDZW50ZXIoKSksdGhpcy5lZGl0YWJsZSl7dmFyIHM9cG9zaXRpb24odCksbj1NYXRoLmFicyhzLnRvcC1lLnRvcCksbz1NYXRoLnNxcnQoTWF0aC5wb3coTWF0aC5hYnMocy50b3AtZS50b3ApLDIpK01hdGgucG93KE1hdGguYWJzKHMubGVmdC1lLmxlZnQpLDIpKSxyPU1hdGguYXNpbihuL28pKigxODAvTWF0aC5QSSk7cj1zLnRvcDxlLnRvcD9lLmxlZnQ8cy5sZWZ0PzkwLXI6MjcwK3I6ZS5sZWZ0PHMubGVmdD9yKzkwOjI3MC1yLHRoaXMuJHEuaTE4bi5ydGwmJihyPTM2MC1yKTt2YXIgYT10aGlzLm1pbityLzM2MCoodGhpcy5tYXgtdGhpcy5taW4pLGw9YSV0aGlzLnN0ZXAsYz1iZXR3ZWVuKGEtbCsoTWF0aC5hYnMobCk+PXRoaXMuc3RlcC8yPyhsPDA/LTE6MSkqdGhpcy5zdGVwOjApLHRoaXMubWluLHRoaXMubWF4KTt0aGlzLl9fb25JbnB1dFZhbHVlKGMsaSl9fSxfX29uSW5wdXRWYWx1ZTpmdW5jdGlvbih0LGUpe3RoaXMuY29tcHV0ZWREZWNpbWFscyYmKHQ9cGFyc2VGbG9hdCh0LnRvRml4ZWQodGhpcy5jb21wdXRlZERlY2ltYWxzKSkpLHRoaXMubW9kZWwhPT10JiYodGhpcy5tb2RlbD10KSx0aGlzLiRlbWl0KFwiZHJhZy12YWx1ZVwiLHQpLHRoaXMudmFsdWUhPT10JiYodGhpcy4kZW1pdChcImlucHV0XCIsdCksZSYmdGhpcy5fX2VtaXRDaGFuZ2UodCkpfSxfX2VtaXRDaGFuZ2U6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt2b2lkIDA9PT10JiYodD10aGlzLm1vZGVsKSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe0pTT04uc3RyaW5naWZ5KHQpIT09SlNPTi5zdHJpbmdpZnkoZS52YWx1ZSkmJmUuJGVtaXQoXCJjaGFuZ2VcIix0KX0pfSxfX2dldENlbnRlcjpmdW5jdGlvbigpe3ZhciB0PW9mZnNldCh0aGlzLiRlbCk7cmV0dXJue3RvcDp0LnRvcCtoZWlnaHQodGhpcy4kZWwpLzIsbGVmdDp0LmxlZnQrd2lkdGgodGhpcy4kZWwpLzJ9fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWtub2Igbm9uLXNlbGVjdGFibGVcIixjbGFzczp0aGlzLmNsYXNzZXMsc3R5bGU6e3dpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplfX0sW3QoXCJkaXZcIix7b246e2NsaWNrOmZ1bmN0aW9uKHQpe3JldHVybiFlLmRyYWdnaW5nJiZlLl9fb25JbnB1dCh0LHZvaWQgMCwhMCl9fSxkaXJlY3RpdmVzOnRoaXMuZWRpdGFibGU/W3tuYW1lOlwidG91Y2gtcGFuXCIsbW9kaWZpZXJzOntwcmV2ZW50OiEwLHN0b3A6ITB9LHZhbHVlOnRoaXMuX19wYW59XTpudWxsfSxbdChcInN2Z1wiLHthdHRyczp7dmlld0JveDpcIjAgMCAxMDAgMTAwXCJ9fSxbdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNIDUwLDUwIG0gMCwtNDcgYSA0Nyw0NyAwIDEgMSAwLDk0IGEgNDcsNDcgMCAxIDEgMCwtOTRcIixcImZpbGwtb3BhY2l0eVwiOlwiMFwiLHN0cm9rZTpcImN1cnJlbnRDb2xvclwiLFwic3Ryb2tlLXdpZHRoXCI6dGhpcy5saW5lV2lkdGh9LGNsYXNzOlwidGV4dC1cIit0aGlzLnRyYWNrQ29sb3J9KSx0KFwicGF0aFwiLHthdHRyczp7ZDpcIk0gNTAsNTAgbSAwLC00NyBhIDQ3LDQ3IDAgMSAxIDAsOTQgYSA0Nyw0NyAwIDEgMSAwLC05NFwiLFwiZmlsbC1vcGFjaXR5XCI6XCIwXCIsc3Ryb2tlOlwiY3VycmVudENvbG9yXCIsXCJzdHJva2UtbGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZS13aWR0aFwiOnRoaXMubGluZVdpZHRofSxzdHlsZTp0aGlzLnN2Z1N0eWxlfSldKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1rbm9iLWxhYmVsIHJvdyBmbGV4LWNlbnRlciBjb250ZW50LWNlbnRlclwiLGF0dHJzOnt0YWJpbmRleDp0aGlzLmVkaXRhYmxlPzA6LTF9LG9uOntrZXlkb3duOnRoaXMuX19vbktleURvd24sa2V5dXA6dGhpcy5fX29uS2V5VXB9fSx0aGlzLiRzbG90cy5kZWZhdWx0fHxbdChcInNwYW5cIixbdGhpcy5tb2RlbF0pXSldKV0pfX0sUVNjcm9sbE9ic2VydmFibGU9e25hbWU6XCJRU2Nyb2xsT2JzZXJ2YWJsZVwiLHByb3BzOntkZWJvdW5jZTpOdW1iZXJ9LHJlbmRlcjpmdW5jdGlvbigpe30sZGF0YTpmdW5jdGlvbigpe3JldHVybntwb3M6MCxkaXI6XCJkb3duXCIsZGlyQ2hhbmdlZDohMSxkaXJDaGFuZ2VQb3M6MH19LG1ldGhvZHM6e2dldFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJue3Bvc2l0aW9uOnRoaXMucG9zLGRpcmVjdGlvbjp0aGlzLmRpcixkaXJlY3Rpb25DaGFuZ2VkOnRoaXMuZGlyQ2hhbmdlZCxpbmZsZXhpb25Qb3NpdGlvbjp0aGlzLmRpckNoYW5nZVBvc319LHRyaWdnZXI6ZnVuY3Rpb24odCl7ITA9PT10fHwwPT09dGhpcy5kZWJvdW5jZT90aGlzLmVtaXQoKTp0aGlzLnRpbWVyfHwodGhpcy50aW1lcj10aGlzLmRlYm91bmNlP3NldFRpbWVvdXQodGhpcy5lbWl0LHRoaXMuZGVib3VuY2UpOnJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLmVtaXQpKX0sZW1pdDpmdW5jdGlvbigpe3ZhciB0PU1hdGgubWF4KDAsZ2V0U2Nyb2xsUG9zaXRpb24odGhpcy50YXJnZXQpKSxlPXQtdGhpcy5wb3M8MD9cInVwXCI6XCJkb3duXCI7dGhpcy5kaXJDaGFuZ2VkPXRoaXMuZGlyIT09ZSx0aGlzLmRpckNoYW5nZWQmJih0aGlzLmRpcj1lLHRoaXMuZGlyQ2hhbmdlUG9zPXRoaXMucG9zKSx0aGlzLnRpbWVyPW51bGwsdGhpcy5wb3M9dCx0aGlzLiRlbWl0KFwic2Nyb2xsXCIsdGhpcy5nZXRQb3NpdGlvbigpKX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLnRhcmdldD1nZXRTY3JvbGxUYXJnZXQodGhpcy4kZWwucGFyZW50Tm9kZSksdGhpcy50YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMudHJpZ2dlcixsaXN0ZW5PcHRzLnBhc3NpdmUpLHRoaXMudHJpZ2dlcighMCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy50aW1lciksdGhpcy50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMudHJpZ2dlcixsaXN0ZW5PcHRzLnBhc3NpdmUpfX0sUUxheW91dD17bmFtZTpcIlFMYXlvdXRcIixwcm92aWRlOmZ1bmN0aW9uKCl7cmV0dXJue2xheW91dDp0aGlzfX0scHJvcHM6e2NvbnRhaW5lcjpCb29sZWFuLHZpZXc6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJoaGggbHByIGZmZlwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4vXihofGwpaChofHIpIGxwciAoZnxsKWYoZnxyKSQvLnRlc3QodC50b0xvd2VyQ2FzZSgpKX19fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2hlaWdodDpvblNTUj8wOndpbmRvdy5pbm5lckhlaWdodCx3aWR0aDpvblNTUnx8dGhpcy5jb250YWluZXI/MDp3aW5kb3cuaW5uZXJXaWR0aCxjb250YWluZXJIZWlnaHQ6MCxzY3JvbGxiYXJXaWR0aDpvblNTUj8wOmdldFNjcm9sbGJhcldpZHRoKCksaGVhZGVyOntzaXplOjAsb2Zmc2V0OjAsc3BhY2U6ITF9LHJpZ2h0OntzaXplOjMwMCxvZmZzZXQ6MCxzcGFjZTohMX0sZm9vdGVyOntzaXplOjAsb2Zmc2V0OjAsc3BhY2U6ITF9LGxlZnQ6e3NpemU6MzAwLG9mZnNldDowLHNwYWNlOiExfSxzY3JvbGw6e3Bvc2l0aW9uOjAsZGlyZWN0aW9uOlwiZG93blwifX19LGNvbXB1dGVkOntyb3dzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy52aWV3LnRvTG93ZXJDYXNlKCkuc3BsaXQoXCIgXCIpO3JldHVybnt0b3A6dFswXS5zcGxpdChcIlwiKSxtaWRkbGU6dFsxXS5zcGxpdChcIlwiKSxib3R0b206dFsyXS5zcGxpdChcIlwiKX19LHRhcmdldFN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ7aWYoMCE9PXRoaXMuc2Nyb2xsYmFyV2lkdGgpcmV0dXJuKHQ9e30pW3RoaXMuJHEuaTE4bi5ydGw/XCJsZWZ0XCI6XCJyaWdodFwiXT10aGlzLnNjcm9sbGJhcldpZHRoK1wicHhcIix0fSx0YXJnZXRDaGlsZFN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ7aWYoMCE9PXRoaXMuc2Nyb2xsYmFyV2lkdGgpcmV0dXJuKHQ9e30pW3RoaXMuJHEuaTE4bi5ydGw/XCJyaWdodFwiOlwibGVmdFwiXT0wLHRbdGhpcy4kcS5pMThuLnJ0bD9cImxlZnRcIjpcInJpZ2h0XCJdPVwiLVwiK3RoaXMuc2Nyb2xsYmFyV2lkdGgrXCJweFwiLHQud2lkdGg9XCJjYWxjKDEwMCUgKyBcIit0aGlzLnNjcm9sbGJhcldpZHRoK1wicHgpXCIsdH19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmluc3RhbmNlcz17aGVhZGVyOm51bGwscmlnaHQ6bnVsbCxmb290ZXI6bnVsbCxsZWZ0Om51bGx9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbGF5b3V0XCJ9LFt0KFFTY3JvbGxPYnNlcnZhYmxlLHtvbjp7c2Nyb2xsOnRoaXMuX19vblBhZ2VTY3JvbGx9fSksdChRUmVzaXplT2JzZXJ2YWJsZSx7b246e3Jlc2l6ZTp0aGlzLl9fb25QYWdlUmVzaXplfX0pLHRoaXMuJHNsb3RzLmRlZmF1bHRdKTtyZXR1cm4gdGhpcy5jb250YWluZXI/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbGF5b3V0LWNvbnRhaW5lciByZWxhdGl2ZS1wb3NpdGlvbiBvdmVyZmxvdy1oaWRkZW5cIn0sW3QoUVJlc2l6ZU9ic2VydmFibGUse29uOntyZXNpemU6dGhpcy5fX29uQ29udGFpbmVyUmVzaXplfX0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJhYnNvbHV0ZS1mdWxsXCIsc3R5bGU6dGhpcy50YXJnZXRTdHlsZX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJvdmVyZmxvdy1hdXRvXCIsc3R5bGU6dGhpcy50YXJnZXRDaGlsZFN0eWxlfSxbZV0pXSldKTplfSxtZXRob2RzOntfX2FuaW1hdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMudGltZXI/Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpOmRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcInEtbGF5b3V0LWFuaW1hdGVcIiksdGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwicS1sYXlvdXQtYW5pbWF0ZVwiKSx0LnRpbWVyPW51bGx9LDE1MCl9LF9fb25QYWdlU2Nyb2xsOmZ1bmN0aW9uKHQpe3RoaXMuc2Nyb2xsPXQsdGhpcy4kZW1pdChcInNjcm9sbFwiLHQpfSxfX29uUGFnZVJlc2l6ZTpmdW5jdGlvbih0KXt2YXIgZT10LmhlaWdodCxpPXQud2lkdGgscz0hMTt0aGlzLmhlaWdodCE9PWUmJihzPSEwLHRoaXMuaGVpZ2h0PWUsdGhpcy4kZW1pdChcInNjcm9sbEhlaWdodFwiLGUpLHRoaXMuX191cGRhdGVTY3JvbGxiYXJXaWR0aCgpKSx0aGlzLndpZHRoIT09aSYmKHM9ITAsdGhpcy53aWR0aD1pKSxzJiZ0aGlzLiRlbWl0KFwicmVzaXplXCIse2hlaWdodDplLHdpZHRoOml9KX0sX19vbkNvbnRhaW5lclJlc2l6ZTpmdW5jdGlvbih0KXt2YXIgZT10LmhlaWdodDt0aGlzLmNvbnRhaW5lckhlaWdodCE9PWUmJih0aGlzLmNvbnRhaW5lckhlaWdodD1lLHRoaXMuX191cGRhdGVTY3JvbGxiYXJXaWR0aCgpKX0sX191cGRhdGVTY3JvbGxiYXJXaWR0aDpmdW5jdGlvbigpe2lmKHRoaXMuY29udGFpbmVyKXt2YXIgdD10aGlzLmhlaWdodD50aGlzLmNvbnRhaW5lckhlaWdodD9nZXRTY3JvbGxiYXJXaWR0aCgpOjA7dGhpcy5zY3JvbGxiYXJXaWR0aCE9PXQmJih0aGlzLnNjcm9sbGJhcldpZHRoPXQpfX19fSxkdXJhdGlvbj0xNTAsUUxheW91dERyYXdlcj17bmFtZTpcIlFMYXlvdXREcmF3ZXJcIixpbmplY3Q6e2xheW91dDp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRTGF5b3V0RHJhd2VyIG5lZWRzIHRvIGJlIGNoaWxkIG9mIFFMYXlvdXRcIil9fX0sbWl4aW5zOltNb2RlbFRvZ2dsZU1peGluXSxkaXJlY3RpdmVzOntUb3VjaFBhbjpUb3VjaFBhbn0scHJvcHM6e292ZXJsYXk6Qm9vbGVhbixzaWRlOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwibGVmdFwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJsZWZ0XCIsXCJyaWdodFwiXS5pbmNsdWRlcyh0KX19LHdpZHRoOnt0eXBlOk51bWJlcixkZWZhdWx0OjMwMH0sbWluaTpCb29sZWFuLG1pbmlXaWR0aDp7dHlwZTpOdW1iZXIsZGVmYXVsdDo2MH0sYnJlYWtwb2ludDp7dHlwZTpOdW1iZXIsZGVmYXVsdDo5OTJ9LGJlaGF2aW9yOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wiZGVmYXVsdFwiLFwiZGVza3RvcFwiLFwibW9iaWxlXCJdLmluY2x1ZGVzKHQpfSxkZWZhdWx0OlwiZGVmYXVsdFwifSxzaG93SWZBYm92ZTpCb29sZWFuLGNvbnRlbnRTdHlsZTpPYmplY3QsY29udGVudENsYXNzOltTdHJpbmcsT2JqZWN0LEFycmF5XSxub0hpZGVPblJvdXRlQ2hhbmdlOkJvb2xlYW4sbm9Td2lwZU9wZW46Qm9vbGVhbixub1N3aXBlQ2xvc2U6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuc2hvd0lmQWJvdmV8fHZvaWQgMD09PXRoaXMudmFsdWV8fHRoaXMudmFsdWUsZT1cIm1vYmlsZVwiIT09dGhpcy5iZWhhdmlvciYmdGhpcy5icmVha3BvaW50PHRoaXMubGF5b3V0LndpZHRoJiYhdGhpcy5vdmVybGF5JiZ0O3JldHVybiB2b2lkIDAhPT10aGlzLnZhbHVlJiZ0aGlzLnZhbHVlIT09ZSYmdGhpcy4kZW1pdChcImlucHV0XCIsZSkse3Nob3dpbmc6ZSxiZWxvd0JyZWFrcG9pbnQ6XCJtb2JpbGVcIj09PXRoaXMuYmVoYXZpb3J8fFwiZGVza3RvcFwiIT09dGhpcy5iZWhhdmlvciYmdGhpcy5icmVha3BvaW50Pj10aGlzLmxheW91dC53aWR0aCxsYXJnZVNjcmVlblN0YXRlOnQsbW9iaWxlT3BlbmVkOiExfX0sd2F0Y2g6e2JlbG93QnJlYWtwb2ludDpmdW5jdGlvbih0KXt0aGlzLm1vYmlsZU9wZW5lZHx8KHQ/KHRoaXMub3ZlcmxheXx8KHRoaXMubGFyZ2VTY3JlZW5TdGF0ZT10aGlzLnNob3dpbmcpLHRoaXMuaGlkZSghMSkpOnRoaXMub3ZlcmxheXx8dGhpc1t0aGlzLmxhcmdlU2NyZWVuU3RhdGU/XCJzaG93XCI6XCJoaWRlXCJdKCExKSl9LHNpZGU6ZnVuY3Rpb24odCxlKXt0aGlzLmxheW91dFtlXS5zcGFjZT0hMSx0aGlzLmxheW91dFtlXS5vZmZzZXQ9MH0sYmVoYXZpb3I6ZnVuY3Rpb24odCl7dGhpcy5fX3VwZGF0ZUxvY2FsKFwiYmVsb3dCcmVha3BvaW50XCIsXCJtb2JpbGVcIj09PXR8fFwiZGVza3RvcFwiIT09dCYmdGhpcy5icmVha3BvaW50Pj10aGlzLmxheW91dC53aWR0aCl9LGJyZWFrcG9pbnQ6ZnVuY3Rpb24odCl7dGhpcy5fX3VwZGF0ZUxvY2FsKFwiYmVsb3dCcmVha3BvaW50XCIsXCJtb2JpbGVcIj09PXRoaXMuYmVoYXZpb3J8fFwiZGVza3RvcFwiIT09dGhpcy5iZWhhdmlvciYmdD49dGhpcy5sYXlvdXQud2lkdGgpfSxcImxheW91dC53aWR0aFwiOmZ1bmN0aW9uKHQpe3RoaXMuX191cGRhdGVMb2NhbChcImJlbG93QnJlYWtwb2ludFwiLFwibW9iaWxlXCI9PT10aGlzLmJlaGF2aW9yfHxcImRlc2t0b3BcIiE9PXRoaXMuYmVoYXZpb3ImJnRoaXMuYnJlYWtwb2ludD49dCl9LFwibGF5b3V0LnNjcm9sbGJhcldpZHRoXCI6ZnVuY3Rpb24oKXt0aGlzLmFwcGx5UG9zaXRpb24odGhpcy5zaG93aW5nPzA6dm9pZCAwKX0sb2Zmc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX191cGRhdGUoXCJvZmZzZXRcIix0KX0sb25MYXlvdXQ6ZnVuY3Rpb24odCl7dGhpcy4kZW1pdChcIm9uLWxheW91dFwiLHQpLHRoaXMuX191cGRhdGUoXCJzcGFjZVwiLHQpfSwkcm91dGU6ZnVuY3Rpb24oKXt0aGlzLm5vSGlkZU9uUm91dGVDaGFuZ2V8fCh0aGlzLm1vYmlsZU9wZW5lZHx8dGhpcy5vblNjcmVlbk92ZXJsYXkpJiZ0aGlzLmhpZGUoKX0scmlnaHRTaWRlOmZ1bmN0aW9uKCl7dGhpcy5hcHBseVBvc2l0aW9uKCl9LHNpemU6ZnVuY3Rpb24odCl7dGhpcy5hcHBseVBvc2l0aW9uKCksdGhpcy5fX3VwZGF0ZShcInNpemVcIix0KX0sXCIkcS5pMThuLnJ0bFwiOmZ1bmN0aW9uKCl7dGhpcy5hcHBseVBvc2l0aW9uKCl9LG1pbmk6ZnVuY3Rpb24oKXt0aGlzLnZhbHVlJiZ0aGlzLmxheW91dC5fX2FuaW1hdGUoKX19LGNvbXB1dGVkOntyaWdodFNpZGU6ZnVuY3Rpb24oKXtyZXR1cm5cInJpZ2h0XCI9PT10aGlzLnNpZGV9LG9mZnNldDpmdW5jdGlvbigpe3JldHVybiF0aGlzLnNob3dpbmd8fHRoaXMubW9iaWxlT3BlbmVkfHx0aGlzLm92ZXJsYXk/MDp0aGlzLnNpemV9LHNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc01pbmk/dGhpcy5taW5pV2lkdGg6dGhpcy53aWR0aH0sZml4ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vdmVybGF5fHx0aGlzLmxheW91dC52aWV3LmluZGV4T2YodGhpcy5yaWdodFNpZGU/XCJSXCI6XCJMXCIpPi0xfSxvbkxheW91dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNob3dpbmcmJiF0aGlzLm1vYmlsZVZpZXcmJiF0aGlzLm92ZXJsYXl9LG9uU2NyZWVuT3ZlcmxheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNob3dpbmcmJiF0aGlzLm1vYmlsZVZpZXcmJnRoaXMub3ZlcmxheX0sYmFja2Ryb3BDbGFzczpmdW5jdGlvbigpe3JldHVybntcIm5vLXBvaW50ZXItZXZlbnRzXCI6IXRoaXMuc2hvd2luZ3x8IXRoaXMubW9iaWxlVmlld319LG1vYmlsZVZpZXc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5iZWxvd0JyZWFrcG9pbnR8fHRoaXMubW9iaWxlT3BlbmVkfSxoZWFkZXJTbG90OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMub3ZlcmxheSYmKHRoaXMucmlnaHRTaWRlP1wiclwiPT09dGhpcy5sYXlvdXQucm93cy50b3BbMl06XCJsXCI9PT10aGlzLmxheW91dC5yb3dzLnRvcFswXSl9LGZvb3RlclNsb3Q6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5vdmVybGF5JiYodGhpcy5yaWdodFNpZGU/XCJyXCI9PT10aGlzLmxheW91dC5yb3dzLmJvdHRvbVsyXTpcImxcIj09PXRoaXMubGF5b3V0LnJvd3MuYm90dG9tWzBdKX0sYmVsb3dDbGFzczpmdW5jdGlvbigpe3JldHVybntmaXhlZDohMCxcIm9uLXRvcFwiOiEwLFwicS1sYXlvdXQtZHJhd2VyLWRlbGltaXRlclwiOnRoaXMuZml4ZWQmJnRoaXMuc2hvd2luZyxcInEtbGF5b3V0LWRyYXdlci1tb2JpbGVcIjohMCxcInRvcC1wYWRkaW5nXCI6ITB9fSxhYm92ZUNsYXNzOmZ1bmN0aW9uKCl7cmV0dXJue2ZpeGVkOnRoaXMuZml4ZWR8fCF0aGlzLm9uTGF5b3V0LFwicS1sYXlvdXQtZHJhd2VyLW1pbmlcIjp0aGlzLmlzTWluaSxcInEtbGF5b3V0LWRyYXdlci1ub3JtYWxcIjohdGhpcy5pc01pbmksXCJxLWxheW91dC1kcmF3ZXItZGVsaW1pdGVyXCI6dGhpcy5maXhlZCYmdGhpcy5zaG93aW5nLFwidG9wLXBhZGRpbmdcIjp0aGlzLmhlYWRlclNsb3R9fSxhYm92ZVN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9e307cmV0dXJuIHRoaXMubGF5b3V0LmhlYWRlci5zcGFjZSYmIXRoaXMuaGVhZGVyU2xvdCYmKHRoaXMuZml4ZWQ/dC50b3A9dGhpcy5sYXlvdXQuaGVhZGVyLm9mZnNldCtcInB4XCI6dGhpcy5sYXlvdXQuaGVhZGVyLnNwYWNlJiYodC50b3A9dGhpcy5sYXlvdXQuaGVhZGVyLnNpemUrXCJweFwiKSksdGhpcy5sYXlvdXQuZm9vdGVyLnNwYWNlJiYhdGhpcy5mb290ZXJTbG90JiYodGhpcy5maXhlZD90LmJvdHRvbT10aGlzLmxheW91dC5mb290ZXIub2Zmc2V0K1wicHhcIjp0aGlzLmxheW91dC5mb290ZXIuc3BhY2UmJih0LmJvdHRvbT10aGlzLmxheW91dC5mb290ZXIuc2l6ZStcInB4XCIpKSx0fSxjb21wdXRlZFN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMuY29udGVudFN0eWxlLHt3aWR0aDp0aGlzLnNpemUrXCJweFwifSx0aGlzLm1vYmlsZVZpZXc/XCJcIjp0aGlzLmFib3ZlU3R5bGVdfSxjb21wdXRlZENsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuW1wicS1sYXlvdXQtZHJhd2VyLVwiK3RoaXMuc2lkZSx0aGlzLmxheW91dC5jb250YWluZXI/XCJvdmVyZmxvdy1hdXRvXCI6XCJzY3JvbGxcIix0aGlzLmNvbnRlbnRDbGFzcyx0aGlzLm1vYmlsZVZpZXc/dGhpcy5iZWxvd0NsYXNzOnRoaXMuYWJvdmVDbGFzc119LHN0YXRlRGlyZWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuJHEuaTE4bi5ydGw/LTE6MSkqKHRoaXMucmlnaHRTaWRlPzE6LTEpfSxpc01pbmk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5taW5pJiYhdGhpcy5tb2JpbGVWaWV3fSxvbk5hdGl2ZUV2ZW50czpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYoIXRoaXMubW9iaWxlVmlldylyZXR1cm57XCIhY2xpY2tcIjpmdW5jdGlvbihlKXt0LiRlbWl0KFwiY2xpY2tcIixlKX0sbW91c2VvdmVyOmZ1bmN0aW9uKGUpe3QuJGVtaXQoXCJtb3VzZW92ZXJcIixlKX0sbW91c2VvdXQ6ZnVuY3Rpb24oZSl7dC4kZW1pdChcIm1vdXNlb3V0XCIsZSl9fX19LG1ldGhvZHM6e2FwcGx5UG9zaXRpb246ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt2b2lkIDA9PT10P3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dD1lLnNob3dpbmc/MDplLnNpemUsZS5hcHBseVBvc2l0aW9uKGUuc3RhdGVEaXJlY3Rpb24qdCl9KTp0aGlzLiRyZWZzLmNvbnRlbnQmJih0aGlzLmxheW91dC5jb250YWluZXImJnRoaXMucmlnaHRTaWRlJiYodGhpcy5tb2JpbGVWaWV3fHxNYXRoLmFicyh0KT09PXRoaXMuc2l6ZSkmJih0Kz10aGlzLnN0YXRlRGlyZWN0aW9uKnRoaXMubGF5b3V0LnNjcm9sbGJhcldpZHRoKSx0aGlzLiRyZWZzLmNvbnRlbnQuc3R5bGUudHJhbnNmb3JtPVwidHJhbnNsYXRlWChcIit0K1wicHgpXCIpfSxhcHBseUJhY2tkcm9wOmZ1bmN0aW9uKHQpe3RoaXMuJHJlZnMuYmFja2Ryb3AmJih0aGlzLiRyZWZzLmJhY2tkcm9wLnN0eWxlLmJhY2tncm91bmRDb2xvcj1cInJnYmEoMCwwLDAsXCIrLjQqdCtcIilcIil9LF9fc2V0U2Nyb2xsYWJsZTpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5jb250YWluZXJ8fGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0W3Q/XCJhZGRcIjpcInJlbW92ZVwiXShcInEtYm9keS1kcmF3ZXItdG9nZ2xlXCIpfSxfX29wZW5CeVRvdWNoOmZ1bmN0aW9uKHQpe2lmKHRoaXMuYmVsb3dCcmVha3BvaW50KXt2YXIgZT10aGlzLnNpemUsaT1iZXR3ZWVuKHQuZGlzdGFuY2UueCwwLGUpO2lmKHQuaXNGaW5hbCl7dmFyIHM9dGhpcy4kcmVmcy5jb250ZW50LG49aT49TWF0aC5taW4oNzUsZSk7cmV0dXJuIHMuY2xhc3NMaXN0LnJlbW92ZShcIm5vLXRyYW5zaXRpb25cIiksdm9pZChuP3RoaXMuc2hvdygpOih0aGlzLmxheW91dC5fX2FuaW1hdGUoKSx0aGlzLmFwcGx5QmFja2Ryb3AoMCksdGhpcy5hcHBseVBvc2l0aW9uKHRoaXMuc3RhdGVEaXJlY3Rpb24qZSkscy5jbGFzc0xpc3QucmVtb3ZlKFwicS1sYXlvdXQtZHJhd2VyLWRlbGltaXRlclwiKSkpfWlmKHRoaXMuYXBwbHlQb3NpdGlvbigodGhpcy4kcS5pMThuLnJ0bD8hdGhpcy5yaWdodFNpZGU6dGhpcy5yaWdodFNpZGUpP01hdGgubWF4KGUtaSwwKTpNYXRoLm1pbigwLGktZSkpLHRoaXMuYXBwbHlCYWNrZHJvcChiZXR3ZWVuKGkvZSwwLDEpKSx0LmlzRmlyc3Qpe3ZhciBvPXRoaXMuJHJlZnMuY29udGVudDtvLmNsYXNzTGlzdC5hZGQoXCJuby10cmFuc2l0aW9uXCIpLG8uY2xhc3NMaXN0LmFkZChcInEtbGF5b3V0LWRyYXdlci1kZWxpbWl0ZXJcIil9fX0sX19jbG9zZUJ5VG91Y2g6ZnVuY3Rpb24odCl7aWYodGhpcy5tb2JpbGVPcGVuZWQpe3ZhciBlPXRoaXMuc2l6ZSxpPXQuZGlyZWN0aW9uPT09dGhpcy5zaWRlLHM9KHRoaXMuJHEuaTE4bi5ydGw/IWk6aSk/YmV0d2Vlbih0LmRpc3RhbmNlLngsMCxlKTowO2lmKHQuaXNGaW5hbCl7dmFyIG49TWF0aC5hYnMocyk8TWF0aC5taW4oNzUsZSk7cmV0dXJuIHRoaXMuJHJlZnMuY29udGVudC5jbGFzc0xpc3QucmVtb3ZlKFwibm8tdHJhbnNpdGlvblwiKSx2b2lkKG4/KHRoaXMubGF5b3V0Ll9fYW5pbWF0ZSgpLHRoaXMuYXBwbHlCYWNrZHJvcCgxKSx0aGlzLmFwcGx5UG9zaXRpb24oMCkpOnRoaXMuaGlkZSgpKX10aGlzLmFwcGx5UG9zaXRpb24odGhpcy5zdGF0ZURpcmVjdGlvbipzKSx0aGlzLmFwcGx5QmFja2Ryb3AoYmV0d2VlbigxLXMvZSwwLDEpKSx0LmlzRmlyc3QmJnRoaXMuJHJlZnMuY29udGVudC5jbGFzc0xpc3QuYWRkKFwibm8tdHJhbnNpdGlvblwiKX19LF9fc2hvdzpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3ZvaWQgMD09PXQmJih0PSEwKSx0JiZ0aGlzLmxheW91dC5fX2FuaW1hdGUoKSx0aGlzLmFwcGx5UG9zaXRpb24oMCk7dmFyIGk9dGhpcy5sYXlvdXQuaW5zdGFuY2VzW3RoaXMucmlnaHRTaWRlP1wibGVmdFwiOlwicmlnaHRcIl07aSYmaS5tb2JpbGVPcGVuZWQmJmkuaGlkZSgpLHRoaXMuYmVsb3dCcmVha3BvaW50Pyh0aGlzLm1vYmlsZU9wZW5lZD0hMCx0aGlzLmFwcGx5QmFja2Ryb3AoMSksdGhpcy5sYXlvdXQuY29udGFpbmVyfHwodGhpcy5wcmV2ZW50ZWRTY3JvbGw9ITAscHJldmVudFNjcm9sbCghMCkpKTp0aGlzLl9fc2V0U2Nyb2xsYWJsZSghMCksY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2Uuc2hvd1Byb21pc2UmJihlLnNob3dQcm9taXNlLnRoZW4oZnVuY3Rpb24oKXtlLl9fc2V0U2Nyb2xsYWJsZSghMSl9KSxlLnNob3dQcm9taXNlUmVzb2x2ZSgpKX0sZHVyYXRpb24pfSxfX2hpZGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt2b2lkIDA9PT10JiYodD0hMCksdCYmdGhpcy5sYXlvdXQuX19hbmltYXRlKCksdGhpcy5tb2JpbGVPcGVuZWQmJih0aGlzLm1vYmlsZU9wZW5lZD0hMSksdGhpcy5hcHBseVBvc2l0aW9uKHRoaXMuc3RhdGVEaXJlY3Rpb24qdGhpcy5zaXplKSx0aGlzLmFwcGx5QmFja2Ryb3AoMCksdGhpcy5fX2NsZWFudXAoKSxjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5oaWRlUHJvbWlzZSYmZS5oaWRlUHJvbWlzZVJlc29sdmUoKX0sZHVyYXRpb24pfSxfX2NsZWFudXA6ZnVuY3Rpb24oKXt0aGlzLnByZXZlbnRlZFNjcm9sbCYmKHRoaXMucHJldmVudGVkU2Nyb2xsPSExLHByZXZlbnRTY3JvbGwoITEpKSx0aGlzLl9fc2V0U2Nyb2xsYWJsZSghMSl9LF9fdXBkYXRlOmZ1bmN0aW9uKHQsZSl7dGhpcy5sYXlvdXRbdGhpcy5zaWRlXVt0XSE9PWUmJih0aGlzLmxheW91dFt0aGlzLnNpZGVdW3RdPWUpfSxfX3VwZGF0ZUxvY2FsOmZ1bmN0aW9uKHQsZSl7dGhpc1t0XSE9PWUmJih0aGlzW3RdPWUpfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMubGF5b3V0Lmluc3RhbmNlc1t0aGlzLnNpZGVdPXRoaXMsdGhpcy5fX3VwZGF0ZShcInNpemVcIix0aGlzLnNpemUpLHRoaXMuX191cGRhdGUoXCJzcGFjZVwiLHRoaXMub25MYXlvdXQpLHRoaXMuX191cGRhdGUoXCJvZmZzZXRcIix0aGlzLm9mZnNldCl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLmFwcGx5UG9zaXRpb24odGhpcy5zaG93aW5nPzA6dm9pZCAwKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnNob3dpbmcmJnRoaXMuX19jbGVhbnVwKCksdGhpcy5sYXlvdXQuaW5zdGFuY2VzW3RoaXMuc2lkZV09PT10aGlzJiYodGhpcy5sYXlvdXQuaW5zdGFuY2VzW3RoaXMuc2lkZV09bnVsbCx0aGlzLl9fdXBkYXRlKFwic2l6ZVwiLDApLHRoaXMuX191cGRhdGUoXCJvZmZzZXRcIiwwKSx0aGlzLl9fdXBkYXRlKFwic3BhY2VcIiwhMSkpfSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRyYXdlci1jb250YWluZXJcIn0sW3RoaXMubW9iaWxlVmlldyYmIXRoaXMubm9Td2lwZU9wZW4/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbGF5b3V0LWRyYXdlci1vcGVuZXIgZml4ZWQtXCIrdGhpcy5zaWRlLGRpcmVjdGl2ZXM6W3tuYW1lOlwidG91Y2gtcGFuXCIsbW9kaWZpZXJzOntob3Jpem9udGFsOiEwfSx2YWx1ZTp0aGlzLl9fb3BlbkJ5VG91Y2h9XX0pOm51bGwsdChcImRpdlwiLHtyZWY6XCJiYWNrZHJvcFwiLHN0YXRpY0NsYXNzOlwiZnVsbHNjcmVlbiBxLWxheW91dC1iYWNrZHJvcCBxLWxheW91dC10cmFuc2l0aW9uXCIsY2xhc3M6dGhpcy5iYWNrZHJvcENsYXNzLG9uOntjbGljazp0aGlzLmhpZGV9LGRpcmVjdGl2ZXM6W3tuYW1lOlwidG91Y2gtcGFuXCIsbW9kaWZpZXJzOntob3Jpem9udGFsOiEwfSx2YWx1ZTp0aGlzLl9fY2xvc2VCeVRvdWNofV19KV0uY29uY2F0KFt0KFwiYXNpZGVcIix7cmVmOlwiY29udGVudFwiLHN0YXRpY0NsYXNzOlwicS1sYXlvdXQtZHJhd2VyIHEtbGF5b3V0LXRyYW5zaXRpb25cIixjbGFzczp0aGlzLmNvbXB1dGVkQ2xhc3Msc3R5bGU6dGhpcy5jb21wdXRlZFN0eWxlLGF0dHJzOnRoaXMuJGF0dHJzLG9uOnRoaXMub25OYXRpdmVFdmVudHMsZGlyZWN0aXZlczp0aGlzLm1vYmlsZVZpZXcmJiF0aGlzLm5vU3dpcGVDbG9zZT9be25hbWU6XCJ0b3VjaC1wYW5cIixtb2RpZmllcnM6e2hvcml6b250YWw6ITB9LHZhbHVlOnRoaXMuX19jbG9zZUJ5VG91Y2h9XTpudWxsfSx0aGlzLmlzTWluaSYmdGhpcy4kc2xvdHMubWluaT9bdGhpcy4kc2xvdHMubWluaV06dGhpcy4kc2xvdHMuZGVmYXVsdCldKSl9fSxRV2luZG93UmVzaXplT2JzZXJ2YWJsZT17bmFtZTpcIlFXaW5kb3dSZXNpemVPYnNlcnZhYmxlXCIscHJvcHM6e2RlYm91bmNlOnt0eXBlOk51bWJlcixkZWZhdWx0OjgwfX0scmVuZGVyOmZ1bmN0aW9uKCl7fSxtZXRob2RzOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7MD09PXRoaXMuZGVib3VuY2U/dGhpcy5lbWl0KCk6dGhpcy50aW1lcnx8KHRoaXMudGltZXI9c2V0VGltZW91dCh0aGlzLmVtaXQsdGhpcy5kZWJvdW5jZSkpfSxlbWl0OmZ1bmN0aW9uKHQpe3RoaXMudGltZXI9bnVsbCx0aGlzLiRlbWl0KFwicmVzaXplXCIse2hlaWdodDp0PzA6d2luZG93LmlubmVySGVpZ2h0LHdpZHRoOnQ/MDp3aW5kb3cuaW5uZXJXaWR0aH0pfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuZW1pdChvblNTUil9LG1vdW50ZWQ6ZnVuY3Rpb24oKXtmcm9tU1NSJiZ0aGlzLmVtaXQoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHRoaXMudHJpZ2dlcixsaXN0ZW5PcHRzLnBhc3NpdmUpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdGhpcy50cmlnZ2VyLGxpc3Rlbk9wdHMucGFzc2l2ZSl9fSxRTGF5b3V0Rm9vdGVyPXtuYW1lOlwiUUxheW91dEZvb3RlclwiLG1peGluczpbQ2FuUmVuZGVyTWl4aW5dLGluamVjdDp7bGF5b3V0OntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFMYXlvdXRGb290ZXIgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUUxheW91dFwiKX19fSxwcm9wczp7dmFsdWU6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSxyZXZlYWw6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzaXplOjAscmV2ZWFsZWQ6ITAsd2luZG93SGVpZ2h0Om9uU1NSfHx0aGlzLmxheW91dC5jb250YWluZXI/MDp3aW5kb3cuaW5uZXJIZWlnaHR9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5fX3VwZGF0ZShcInNwYWNlXCIsdCksdGhpcy5fX3VwZGF0ZUxvY2FsKFwicmV2ZWFsZWRcIiwhMCksdGhpcy5sYXlvdXQuX19hbmltYXRlKCl9LG9mZnNldDpmdW5jdGlvbih0KXt0aGlzLl9fdXBkYXRlKFwib2Zmc2V0XCIsdCl9LHJldmVhbDpmdW5jdGlvbih0KXt0fHx0aGlzLl9fdXBkYXRlTG9jYWwoXCJyZXZlYWxlZFwiLHRoaXMudmFsdWUpfSxyZXZlYWxlZDpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5fX2FuaW1hdGUoKSx0aGlzLiRlbWl0KFwicmV2ZWFsXCIsdCl9LFwibGF5b3V0LnNjcm9sbFwiOmZ1bmN0aW9uKCl7dGhpcy5fX3VwZGF0ZVJldmVhbGVkKCl9LFwibGF5b3V0LmhlaWdodFwiOmZ1bmN0aW9uKCl7dGhpcy5fX3VwZGF0ZVJldmVhbGVkKCl9LHNpemU6ZnVuY3Rpb24oKXt0aGlzLl9fdXBkYXRlUmV2ZWFsZWQoKX19LGNvbXB1dGVkOntmaXhlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJldmVhbHx8dGhpcy5sYXlvdXQudmlldy5pbmRleE9mKFwiRlwiKT4tMXx8dGhpcy5sYXlvdXQuY29udGFpbmVyfSxjb250YWluZXJIZWlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQuY29udGFpbmVyP3RoaXMubGF5b3V0LmNvbnRhaW5lckhlaWdodDp0aGlzLndpbmRvd0hlaWdodH0sb2Zmc2V0OmZ1bmN0aW9uKCl7aWYoIXRoaXMuY2FuUmVuZGVyfHwhdGhpcy52YWx1ZSlyZXR1cm4gMDtpZih0aGlzLmZpeGVkKXJldHVybiB0aGlzLnJldmVhbGVkP3RoaXMuc2l6ZTowO3ZhciB0PXRoaXMubGF5b3V0LnNjcm9sbC5wb3NpdGlvbit0aGlzLmNvbnRhaW5lckhlaWdodCt0aGlzLnNpemUtdGhpcy5sYXlvdXQuaGVpZ2h0O3JldHVybiB0PjA/dDowfSxjb21wdXRlZENsYXNzOmZ1bmN0aW9uKCl7cmV0dXJue1wiZml4ZWQtYm90dG9tXCI6dGhpcy5maXhlZCxcImFic29sdXRlLWJvdHRvbVwiOiF0aGlzLmZpeGVkLGhpZGRlbjohdGhpcy52YWx1ZSYmIXRoaXMuZml4ZWQsXCJxLWxheW91dC1mb290ZXItaGlkZGVuXCI6IXRoaXMuY2FuUmVuZGVyfHwhdGhpcy52YWx1ZXx8dGhpcy5maXhlZCYmIXRoaXMucmV2ZWFsZWR9fSxjb21wdXRlZFN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sYXlvdXQucm93cy5ib3R0b20sZT17fTtyZXR1cm5cImxcIj09PXRbMF0mJnRoaXMubGF5b3V0LmxlZnQuc3BhY2UmJihlW3RoaXMuJHEuaTE4bi5ydGw/XCJyaWdodFwiOlwibGVmdFwiXT10aGlzLmxheW91dC5sZWZ0LnNpemUrXCJweFwiKSxcInJcIj09PXRbMl0mJnRoaXMubGF5b3V0LnJpZ2h0LnNwYWNlJiYoZVt0aGlzLiRxLmkxOG4ucnRsP1wibGVmdFwiOlwicmlnaHRcIl09dGhpcy5sYXlvdXQucmlnaHQuc2l6ZStcInB4XCIpLGV9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJmb290ZXJcIix7c3RhdGljQ2xhc3M6XCJxLWxheW91dC1mb290ZXIgcS1sYXlvdXQtbWFyZ2luYWwgcS1sYXlvdXQtdHJhbnNpdGlvblwiLGNsYXNzOnRoaXMuY29tcHV0ZWRDbGFzcyxzdHlsZTp0aGlzLmNvbXB1dGVkU3R5bGV9LFt0KFFSZXNpemVPYnNlcnZhYmxlLHtwcm9wczp7ZGVib3VuY2U6MH0sb246e3Jlc2l6ZTp0aGlzLl9fb25SZXNpemV9fSksIXRoaXMubGF5b3V0LmNvbnRhaW5lciYmdChRV2luZG93UmVzaXplT2JzZXJ2YWJsZSx7cHJvcHM6e2RlYm91bmNlOjB9LG9uOntyZXNpemU6dGhpcy5fX29uV2luZG93UmVzaXplfX0pfHx2b2lkIDAsdGhpcy4kc2xvdHMuZGVmYXVsdF0pfSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5sYXlvdXQuaW5zdGFuY2VzLmZvb3Rlcj10aGlzLHRoaXMuX191cGRhdGUoXCJzcGFjZVwiLHRoaXMudmFsdWUpLHRoaXMuX191cGRhdGUoXCJvZmZzZXRcIix0aGlzLm9mZnNldCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmxheW91dC5pbnN0YW5jZXMuZm9vdGVyPT09dGhpcyYmKHRoaXMubGF5b3V0Lmluc3RhbmNlcy5mb290ZXI9bnVsbCx0aGlzLl9fdXBkYXRlKFwic2l6ZVwiLDApLHRoaXMuX191cGRhdGUoXCJvZmZzZXRcIiwwKSx0aGlzLl9fdXBkYXRlKFwic3BhY2VcIiwhMSkpfSxtZXRob2RzOntfX29uUmVzaXplOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaGVpZ2h0O3RoaXMuX191cGRhdGVMb2NhbChcInNpemVcIixlKSx0aGlzLl9fdXBkYXRlKFwic2l6ZVwiLGUpfSxfX29uV2luZG93UmVzaXplOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaGVpZ2h0O3RoaXMuX191cGRhdGVMb2NhbChcIndpbmRvd0hlaWdodFwiLGUpfSxfX3VwZGF0ZTpmdW5jdGlvbih0LGUpe3RoaXMubGF5b3V0LmZvb3Rlclt0XSE9PWUmJih0aGlzLmxheW91dC5mb290ZXJbdF09ZSl9LF9fdXBkYXRlTG9jYWw6ZnVuY3Rpb24odCxlKXt0aGlzW3RdIT09ZSYmKHRoaXNbdF09ZSl9LF9fdXBkYXRlUmV2ZWFsZWQ6ZnVuY3Rpb24oKXtpZih0aGlzLnJldmVhbCl7dmFyIHQ9dGhpcy5sYXlvdXQuc2Nyb2xsLGU9dC5kaXJlY3Rpb24saT10LnBvc2l0aW9uLHM9dC5pbmZsZXhpb25Qb3NpdGlvbjt0aGlzLl9fdXBkYXRlTG9jYWwoXCJyZXZlYWxlZFwiLFwidXBcIj09PWV8fGktczwxMDB8fHRoaXMubGF5b3V0LmhlaWdodC10aGlzLmNvbnRhaW5lckhlaWdodC1pLXRoaXMuc2l6ZTwzMDApfX19fSxRTGF5b3V0SGVhZGVyPXtuYW1lOlwiUUxheW91dEhlYWRlclwiLG1peGluczpbQ2FuUmVuZGVyTWl4aW5dLGluamVjdDp7bGF5b3V0OntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFMYXlvdXRIZWFkZXIgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUUxheW91dFwiKX19fSxwcm9wczp7dmFsdWU6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSxyZXZlYWw6Qm9vbGVhbixyZXZlYWxPZmZzZXQ6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MjUwfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzaXplOjAscmV2ZWFsZWQ6ITB9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5fX3VwZGF0ZShcInNwYWNlXCIsdCksdGhpcy5fX3VwZGF0ZUxvY2FsKFwicmV2ZWFsZWRcIiwhMCksdGhpcy5sYXlvdXQuX19hbmltYXRlKCl9LG9mZnNldDpmdW5jdGlvbih0KXt0aGlzLl9fdXBkYXRlKFwib2Zmc2V0XCIsdCl9LHJldmVhbDpmdW5jdGlvbih0KXt0fHx0aGlzLl9fdXBkYXRlTG9jYWwoXCJyZXZlYWxlZFwiLHRoaXMudmFsdWUpfSxyZXZlYWxlZDpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5fX2FuaW1hdGUoKSx0aGlzLiRlbWl0KFwicmV2ZWFsXCIsdCl9LFwibGF5b3V0LnNjcm9sbFwiOmZ1bmN0aW9uKHQpe3RoaXMucmV2ZWFsJiZ0aGlzLl9fdXBkYXRlTG9jYWwoXCJyZXZlYWxlZFwiLFwidXBcIj09PXQuZGlyZWN0aW9ufHx0LnBvc2l0aW9uPD10aGlzLnJldmVhbE9mZnNldHx8dC5wb3NpdGlvbi10LmluZmxleGlvblBvc2l0aW9uPDEwMCl9fSxjb21wdXRlZDp7Zml4ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXZlYWx8fHRoaXMubGF5b3V0LnZpZXcuaW5kZXhPZihcIkhcIik+LTF8fHRoaXMubGF5b3V0LmNvbnRhaW5lcn0sb2Zmc2V0OmZ1bmN0aW9uKCl7aWYoIXRoaXMuY2FuUmVuZGVyfHwhdGhpcy52YWx1ZSlyZXR1cm4gMDtpZih0aGlzLmZpeGVkKXJldHVybiB0aGlzLnJldmVhbGVkP3RoaXMuc2l6ZTowO3ZhciB0PXRoaXMuc2l6ZS10aGlzLmxheW91dC5zY3JvbGwucG9zaXRpb247cmV0dXJuIHQ+MD90OjB9LGNvbXB1dGVkQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm57XCJmaXhlZC10b3BcIjp0aGlzLmZpeGVkLFwiYWJzb2x1dGUtdG9wXCI6IXRoaXMuZml4ZWQsXCJxLWxheW91dC1oZWFkZXItaGlkZGVuXCI6IXRoaXMuY2FuUmVuZGVyfHwhdGhpcy52YWx1ZXx8dGhpcy5maXhlZCYmIXRoaXMucmV2ZWFsZWR9fSxjb21wdXRlZFN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sYXlvdXQucm93cy50b3AsZT17fTtyZXR1cm5cImxcIj09PXRbMF0mJnRoaXMubGF5b3V0LmxlZnQuc3BhY2UmJihlW3RoaXMuJHEuaTE4bi5ydGw/XCJyaWdodFwiOlwibGVmdFwiXT10aGlzLmxheW91dC5sZWZ0LnNpemUrXCJweFwiKSxcInJcIj09PXRbMl0mJnRoaXMubGF5b3V0LnJpZ2h0LnNwYWNlJiYoZVt0aGlzLiRxLmkxOG4ucnRsP1wibGVmdFwiOlwicmlnaHRcIl09dGhpcy5sYXlvdXQucmlnaHQuc2l6ZStcInB4XCIpLGV9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJoZWFkZXJcIix7c3RhdGljQ2xhc3M6XCJxLWxheW91dC1oZWFkZXIgcS1sYXlvdXQtbWFyZ2luYWwgcS1sYXlvdXQtdHJhbnNpdGlvblwiLGNsYXNzOnRoaXMuY29tcHV0ZWRDbGFzcyxzdHlsZTp0aGlzLmNvbXB1dGVkU3R5bGV9LFt0KFFSZXNpemVPYnNlcnZhYmxlLHtwcm9wczp7ZGVib3VuY2U6MH0sb246e3Jlc2l6ZTp0aGlzLl9fb25SZXNpemV9fSksdGhpcy4kc2xvdHMuZGVmYXVsdF0pfSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5sYXlvdXQuaW5zdGFuY2VzLmhlYWRlcj10aGlzLHRoaXMuX191cGRhdGUoXCJzcGFjZVwiLHRoaXMudmFsdWUpLHRoaXMuX191cGRhdGUoXCJvZmZzZXRcIix0aGlzLm9mZnNldCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmxheW91dC5pbnN0YW5jZXMuaGVhZGVyPT09dGhpcyYmKHRoaXMubGF5b3V0Lmluc3RhbmNlcy5oZWFkZXI9bnVsbCx0aGlzLl9fdXBkYXRlKFwic2l6ZVwiLDApLHRoaXMuX191cGRhdGUoXCJvZmZzZXRcIiwwKSx0aGlzLl9fdXBkYXRlKFwic3BhY2VcIiwhMSkpfSxtZXRob2RzOntfX29uUmVzaXplOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaGVpZ2h0O3RoaXMuX191cGRhdGVMb2NhbChcInNpemVcIixlKSx0aGlzLl9fdXBkYXRlKFwic2l6ZVwiLGUpfSxfX3VwZGF0ZTpmdW5jdGlvbih0LGUpe3RoaXMubGF5b3V0LmhlYWRlclt0XSE9PWUmJih0aGlzLmxheW91dC5oZWFkZXJbdF09ZSl9LF9fdXBkYXRlTG9jYWw6ZnVuY3Rpb24odCxlKXt0aGlzW3RdIT09ZSYmKHRoaXNbdF09ZSl9fX0sUVBhZ2U9e25hbWU6XCJRUGFnZVwiLGluamVjdDp7cGFnZUNvbnRhaW5lcjp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRUGFnZSBuZWVkcyB0byBiZSBjaGlsZCBvZiBRUGFnZUNvbnRhaW5lclwiKX19LGxheW91dDp7fX0scHJvcHM6e3BhZGRpbmc6Qm9vbGVhbixzdHlsZUZuOkZ1bmN0aW9ufSxjb21wdXRlZDp7c3R5bGU6ZnVuY3Rpb24oKXt2YXIgdD0odGhpcy5sYXlvdXQuaGVhZGVyLnNwYWNlP3RoaXMubGF5b3V0LmhlYWRlci5zaXplOjApKyh0aGlzLmxheW91dC5mb290ZXIuc3BhY2U/dGhpcy5sYXlvdXQuZm9vdGVyLnNpemU6MCk7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy5zdHlsZUZuP3RoaXMuc3R5bGVGbih0KTp7bWluSGVpZ2h0OnRoaXMubGF5b3V0LmNvbnRhaW5lcj90aGlzLmxheW91dC5jb250YWluZXJIZWlnaHQtdCtcInB4XCI6dD9cImNhbGMoMTAwdmggLSBcIit0K1wicHgpXCI6XCIxMDB2aFwifX0sY2xhc3NlczpmdW5jdGlvbigpe2lmKHRoaXMucGFkZGluZylyZXR1cm5cImxheW91dC1wYWRkaW5nXCJ9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJtYWluXCIse3N0YXRpY0NsYXNzOlwicS1sYXlvdXQtcGFnZVwiLHN0eWxlOnRoaXMuc3R5bGUsY2xhc3M6dGhpcy5jbGFzc2VzfSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFQYWdlQ29udGFpbmVyPXtuYW1lOlwiUVBhZ2VDb250YWluZXJcIixpbmplY3Q6e2xheW91dDp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRUGFnZUNvbnRhaW5lciBuZWVkcyB0byBiZSBjaGlsZCBvZiBRTGF5b3V0XCIpfX19LHByb3ZpZGU6e3BhZ2VDb250YWluZXI6ITB9LGNvbXB1dGVkOntzdHlsZTpmdW5jdGlvbigpe3ZhciB0PXt9O3JldHVybiB0aGlzLmxheW91dC5oZWFkZXIuc3BhY2UmJih0LnBhZGRpbmdUb3A9dGhpcy5sYXlvdXQuaGVhZGVyLnNpemUrXCJweFwiKSx0aGlzLmxheW91dC5yaWdodC5zcGFjZSYmKHRbXCJwYWRkaW5nXCIrKHRoaXMuJHEuaTE4bi5ydGw/XCJMZWZ0XCI6XCJSaWdodFwiKV09dGhpcy5sYXlvdXQucmlnaHQuc2l6ZStcInB4XCIpLHRoaXMubGF5b3V0LmZvb3Rlci5zcGFjZSYmKHQucGFkZGluZ0JvdHRvbT10aGlzLmxheW91dC5mb290ZXIuc2l6ZStcInB4XCIpLHRoaXMubGF5b3V0LmxlZnQuc3BhY2UmJih0W1wicGFkZGluZ1wiKyh0aGlzLiRxLmkxOG4ucnRsP1wiUmlnaHRcIjpcIkxlZnRcIildPXRoaXMubGF5b3V0LmxlZnQuc2l6ZStcInB4XCIpLHR9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWxheW91dC1wYWdlLWNvbnRhaW5lciBxLWxheW91dC10cmFuc2l0aW9uXCIsc3R5bGU6dGhpcy5zdHlsZX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRUGFnZVN0aWNreT17bmFtZTpcIlFQYWdlU3RpY2t5XCIsaW5qZWN0OntsYXlvdXQ6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUVBhZ2VTdGlja3kgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUUxheW91dFwiKX19fSxwcm9wczp7cG9zaXRpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJib3R0b20tcmlnaHRcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1widG9wLXJpZ2h0XCIsXCJ0b3AtbGVmdFwiLFwiYm90dG9tLXJpZ2h0XCIsXCJib3R0b20tbGVmdFwiLFwidG9wXCIsXCJyaWdodFwiLFwiYm90dG9tXCIsXCJsZWZ0XCJdLmluY2x1ZGVzKHQpfX0sb2Zmc2V0Ont0eXBlOkFycmF5LHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4gMj09PXQubGVuZ3RofX0sZXhwYW5kOkJvb2xlYW59LGNvbXB1dGVkOnthdHRhY2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBvc2l0aW9uO3JldHVybnt0b3A6dC5pbmRleE9mKFwidG9wXCIpPi0xLHJpZ2h0OnQuaW5kZXhPZihcInJpZ2h0XCIpPi0xLGJvdHRvbTp0LmluZGV4T2YoXCJib3R0b21cIik+LTEsbGVmdDp0LmluZGV4T2YoXCJsZWZ0XCIpPi0xLHZlcnRpY2FsOlwidG9wXCI9PT10fHxcImJvdHRvbVwiPT09dCxob3Jpem9udGFsOlwibGVmdFwiPT09dHx8XCJyaWdodFwiPT09dH19LHRvcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5oZWFkZXIub2Zmc2V0fSxyaWdodDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5yaWdodC5vZmZzZXR9LGJvdHRvbTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5mb290ZXIub2Zmc2V0fSxsZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LmxlZnQub2Zmc2V0fSxjb21wdXRlZFN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5hdHRhY2gsZT1bXSxpPXRoaXMuJHEuaTE4bi5ydGw/LTE6MTt0LnRvcCYmdGhpcy50b3A/ZS5wdXNoKFwidHJhbnNsYXRlWShcIit0aGlzLnRvcCtcInB4KVwiKTp0LmJvdHRvbSYmdGhpcy5ib3R0b20mJmUucHVzaChcInRyYW5zbGF0ZVkoXCIrLXRoaXMuYm90dG9tK1wicHgpXCIpLHQubGVmdCYmdGhpcy5sZWZ0P2UucHVzaChcInRyYW5zbGF0ZVgoXCIraSp0aGlzLmxlZnQrXCJweClcIik6dC5yaWdodCYmdGhpcy5yaWdodCYmZS5wdXNoKFwidHJhbnNsYXRlWChcIistaSp0aGlzLnJpZ2h0K1wicHgpXCIpO3ZhciBzPWUubGVuZ3RoP3t0cmFuc2Zvcm06ZS5qb2luKFwiIFwiKX06e307cmV0dXJuIHRoaXMub2Zmc2V0JiYocy5tYXJnaW49dGhpcy5vZmZzZXRbMV0rXCJweCBcIit0aGlzLm9mZnNldFswXStcInB4XCIpLHQudmVydGljYWw/KHRoaXMubGVmdCYmKHNbdGhpcy4kcS5pMThuLnJ0bD9cInJpZ2h0XCI6XCJsZWZ0XCJdPXRoaXMubGVmdCtcInB4XCIpLHRoaXMucmlnaHQmJihzW3RoaXMuJHEuaTE4bi5ydGw/XCJsZWZ0XCI6XCJyaWdodFwiXT10aGlzLnJpZ2h0K1wicHhcIikpOnQuaG9yaXpvbnRhbCYmKHRoaXMudG9wJiYocy50b3A9dGhpcy50b3ArXCJweFwiKSx0aGlzLmJvdHRvbSYmKHMuYm90dG9tPXRoaXMuYm90dG9tK1wicHhcIikpLHN9LGNsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm5bXCJmaXhlZC1cIit0aGlzLnBvc2l0aW9uLFwicS1wYWdlLXN0aWNreS1cIisodGhpcy5leHBhbmQ/XCJleHBhbmRcIjpcInNocmlua1wiKV19fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXBhZ2Utc3RpY2t5IHEtbGF5b3V0LXRyYW5zaXRpb24gcm93IGZsZXgtY2VudGVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLHN0eWxlOnRoaXMuY29tcHV0ZWRTdHlsZX0sdGhpcy5leHBhbmQ/dGhpcy4kc2xvdHMuZGVmYXVsdDpbdChcInNwYW5cIix0aGlzLiRzbG90cy5kZWZhdWx0KV0pfX0sUUxpc3RIZWFkZXI9e25hbWU6XCJRTGlzdEhlYWRlclwiLHByb3BzOntpbnNldDpCb29sZWFufSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWxpc3QtaGVhZGVyXCIsY2xhc3M6e1wicS1saXN0LWhlYWRlci1pbnNldFwiOnRoaXMuaW5zZXR9fSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFNb2RhbExheW91dD17bmFtZTpcIlFNb2RhbExheW91dFwiLGluamVjdDp7X19xbW9kYWw6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUU1vZGFsTGF5b3V0IG5lZWRzIHRvIGJlIGNoaWxkIG9mIFFNb2RhbFwiKX19fSxwcm9wczp7aGVhZGVyU3R5bGU6W1N0cmluZyxPYmplY3QsQXJyYXldLGhlYWRlckNsYXNzOltTdHJpbmcsT2JqZWN0LEFycmF5XSxjb250ZW50U3R5bGU6W1N0cmluZyxPYmplY3QsQXJyYXldLGNvbnRlbnRDbGFzczpbU3RyaW5nLE9iamVjdCxBcnJheV0sZm9vdGVyU3R5bGU6W1N0cmluZyxPYmplY3QsQXJyYXldLGZvb3RlckNsYXNzOltTdHJpbmcsT2JqZWN0LEFycmF5XX0sd2F0Y2g6e19fcW1vZGFsOmZ1bmN0aW9uKHQsZSl7ZSYmZS51bnJlZ2lzdGVyKHRoaXMpLHQmJnQucmVnaXN0ZXIodGhpcyl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5fX3Ftb2RhbCYmdGhpcy5fX3Ftb2RhbC5yZWdpc3Rlcih0aGlzKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX19xbW9kYWwmJnRoaXMuX19xbW9kYWwudW5yZWdpc3Rlcih0aGlzKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybih0aGlzLiRzbG90cy5oZWFkZXJ8fHRoaXMuJHNsb3RzLm5hdmlnYXRpb24pJiZlLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbGF5b3V0LWhlYWRlclwiLHN0eWxlOnRoaXMuaGVhZGVyU3R5bGUsY2xhc3M6dGhpcy5oZWFkZXJDbGFzc30sW3RoaXMuJHNsb3RzLmhlYWRlcix0aGlzLiRzbG90cy5uYXZpZ2F0aW9uXSkpLGUucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1tb2RhbC1sYXlvdXQtY29udGVudCBjb2wgc2Nyb2xsXCIsc3R5bGU6dGhpcy5jb250ZW50U3R5bGUsY2xhc3M6dGhpcy5jb250ZW50Q2xhc3N9LHRoaXMuJHNsb3RzLmRlZmF1bHQpKSx0aGlzLiRzbG90cy5mb290ZXImJmUucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1sYXlvdXQtZm9vdGVyXCIsc3R5bGU6dGhpcy5mb290ZXJTdHlsZSxjbGFzczp0aGlzLmZvb3RlckNsYXNzfSxbdGhpcy4kc2xvdHMuZm9vdGVyLG51bGxdKSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbW9kYWwtbGF5b3V0IGNvbCBjb2x1bW4gbm8td3JhcFwifSxlKX19LFFOb1Nzcj17bmFtZTpcIlFOb1NzclwiLG1peGluczpbQ2FuUmVuZGVyTWl4aW5dLHByb3BzOnt0YWc6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJkaXZcIn0scGxhY2Vob2xkZXI6U3RyaW5nfSxyZW5kZXI6ZnVuY3Rpb24odCl7aWYodGhpcy5jYW5SZW5kZXIpe3ZhciBlPXRoaXMuJHNsb3RzLmRlZmF1bHQ7cmV0dXJuIGUmJmUubGVuZ3RoPjE/dCh0aGlzLnRhZyxlKTplP2VbMF06bnVsbH1pZih0aGlzLiRzbG90cy5wbGFjZWhvbGRlcil7dmFyIGk9dGhpcy4kc2xvdHMucGxhY2Vob2xkZXI7cmV0dXJuIGkmJmkubGVuZ3RoPjE/dCh0aGlzLnRhZyx7c3RhdGljQ2xhc3M6XCJxLW5vLXNzci1wbGFjZWhvbGRlclwifSxpKTppP2lbMF06bnVsbH1pZih0aGlzLnBsYWNlaG9sZGVyKXJldHVybiB0KHRoaXMudGFnLHtzdGF0aWNDbGFzczpcInEtbm8tc3NyLXBsYWNlaG9sZGVyXCJ9LFt0aGlzLnBsYWNlaG9sZGVyXSl9fSxRUGFnaW5hdGlvbj17bmFtZTpcIlFQYWdpbmF0aW9uXCIscHJvcHM6e3ZhbHVlOnt0eXBlOk51bWJlcixyZXF1aXJlZDohMH0sbWluOnt0eXBlOk51bWJlcixkZWZhdWx0OjF9LG1heDp7dHlwZTpOdW1iZXIscmVxdWlyZWQ6ITB9LGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSx0ZXh0Q29sb3I6U3RyaW5nLHNpemU6U3RyaW5nLGRpc2FibGU6Qm9vbGVhbixpbnB1dDpCb29sZWFuLGJvdW5kYXJ5TGlua3M6e3R5cGU6Qm9vbGVhbixkZWZhdWx0Om51bGx9LGJvdW5kYXJ5TnVtYmVyczp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6bnVsbH0sZGlyZWN0aW9uTGlua3M6e3R5cGU6Qm9vbGVhbixkZWZhdWx0Om51bGx9LGVsbGlwc2VzOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDpudWxsfSxtYXhQYWdlczp7dHlwZTpOdW1iZXIsZGVmYXVsdDowLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4hKHQ8MCl8fChjb25zb2xlLmVycm9yKFwibWF4UGFnZXMgc2hvdWxkIG5vdCBiZSBuZWdhdGl2ZVwiKSwhMSl9fX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntuZXdQYWdlOm51bGx9fSx3YXRjaDp7bWluOmZ1bmN0aW9uKHQpe3RoaXMubW9kZWw9dGhpcy52YWx1ZX0sbWF4OmZ1bmN0aW9uKHQpe3RoaXMubW9kZWw9dGhpcy52YWx1ZX19LGNvbXB1dGVkOnttb2RlbDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKCF0aGlzLmRpc2FibGUmJnQmJiFpc05hTih0KSl7dmFyIGk9YmV0d2VlbihwYXJzZUludCh0LDEwKSx0aGlzLm1pbix0aGlzLm1heCk7dGhpcy4kZW1pdChcImlucHV0XCIsaSksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtKU09OLnN0cmluZ2lmeShpKSE9PUpTT04uc3RyaW5naWZ5KGUudmFsdWUpJiZlLiRlbWl0KFwiY2hhbmdlXCIsaSl9KX19fSxpbnB1dFBsYWNlaG9sZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWwrXCIgLyBcIit0aGlzLm1heH0sX19ib3VuZGFyeUxpbmtzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19nZXRCb29sKHRoaXMuYm91bmRhcnlMaW5rcyx0aGlzLmlucHV0KX0sX19ib3VuZGFyeU51bWJlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX2dldEJvb2wodGhpcy5ib3VuZGFyeU51bWJlcnMsIXRoaXMuaW5wdXQpfSxfX2RpcmVjdGlvbkxpbmtzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19nZXRCb29sKHRoaXMuZGlyZWN0aW9uTGlua3MsdGhpcy5pbnB1dCl9LF9fZWxsaXBzZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX2dldEJvb2wodGhpcy5lbGxpcHNlcywhdGhpcy5pbnB1dCl9LGljb25zOmZ1bmN0aW9uKCl7dmFyIHQ9W3RoaXMuJHEuaWNvbi5wYWdpbmF0aW9uLmZpcnN0LHRoaXMuJHEuaWNvbi5wYWdpbmF0aW9uLnByZXYsdGhpcy4kcS5pY29uLnBhZ2luYXRpb24ubmV4dCx0aGlzLiRxLmljb24ucGFnaW5hdGlvbi5sYXN0XTtyZXR1cm4gdGhpcy4kcS5pMThuLnJ0bD90LnJldmVyc2UoKTp0fX0sbWV0aG9kczp7c2V0OmZ1bmN0aW9uKHQpe3RoaXMubW9kZWw9dH0sc2V0QnlPZmZzZXQ6ZnVuY3Rpb24odCl7dGhpcy5tb2RlbD10aGlzLm1vZGVsK3R9LF9fdXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5tb2RlbD10aGlzLm5ld1BhZ2UsdGhpcy5uZXdQYWdlPW51bGx9LF9fZ2V0Qm9vbDpmdW5jdGlvbih0LGUpe3JldHVyblshMCwhMV0uaW5jbHVkZXModCk/dDplfSxfX2dldEJ0bjpmdW5jdGlvbih0LGUsaSl7cmV0dXJuIGUucHJvcHM9T2JqZWN0LmFzc2lnbih7Y29sb3I6dGhpcy5jb2xvcixmbGF0OiEwLHNpemU6dGhpcy5zaXplfSxpKSx0KFFCdG4sZSl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPVtdLHM9W10sbj1bXTtpZih0aGlzLl9fYm91bmRhcnlMaW5rcyYmKGkucHVzaCh0aGlzLl9fZ2V0QnRuKHQse2tleTpcImJsc1wiLG9uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBlLnNldChlLm1pbil9fX0se2Rpc2FibGU6dGhpcy5kaXNhYmxlfHx0aGlzLnZhbHVlPD10aGlzLm1pbixpY29uOnRoaXMuaWNvbnNbMF19KSkscy51bnNoaWZ0KHRoaXMuX19nZXRCdG4odCx7a2V5OlwiYmxlXCIsb246e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KGUubWF4KX19fSx7ZGlzYWJsZTp0aGlzLmRpc2FibGV8fHRoaXMudmFsdWU+PXRoaXMubWF4LGljb246dGhpcy5pY29uc1szXX0pKSksdGhpcy5fX2RpcmVjdGlvbkxpbmtzJiYoaS5wdXNoKHRoaXMuX19nZXRCdG4odCx7a2V5OlwiYmRwXCIsb246e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0QnlPZmZzZXQoLTEpfX19LHtkaXNhYmxlOnRoaXMuZGlzYWJsZXx8dGhpcy52YWx1ZTw9dGhpcy5taW4saWNvbjp0aGlzLmljb25zWzFdfSkpLHMudW5zaGlmdCh0aGlzLl9fZ2V0QnRuKHQse2tleTpcImJkblwiLG9uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBlLnNldEJ5T2Zmc2V0KDEpfX19LHtkaXNhYmxlOnRoaXMuZGlzYWJsZXx8dGhpcy52YWx1ZT49dGhpcy5tYXgsaWNvbjp0aGlzLmljb25zWzJdfSkpKSx0aGlzLmlucHV0KW4ucHVzaCh0KFFJbnB1dCx7c3RhdGljQ2xhc3M6XCJpbmxpbmUgbm8tcGFkZGluZ1wiLHN0eWxlOnt3aWR0aDp0aGlzLmlucHV0UGxhY2Vob2xkZXIubGVuZ3RoK1wicmVtXCJ9LHByb3BzOnt0eXBlOlwibnVtYmVyXCIsdmFsdWU6dGhpcy5uZXdQYWdlLG5vTnVtYmVyVG9nZ2xlOiEwLG1pbjp0aGlzLm1pbixtYXg6dGhpcy5tYXgsY29sb3I6dGhpcy5jb2xvcixwbGFjZWhvbGRlcjp0aGlzLmlucHV0UGxhY2Vob2xkZXIsZGlzYWJsZTp0aGlzLmRpc2FibGUsaGlkZVVuZGVybGluZTohMH0sb246e2lucHV0OmZ1bmN0aW9uKHQpe3JldHVybiBlLm5ld1BhZ2U9dH0sa2V5ZG93bjpmdW5jdGlvbih0KXtyZXR1cm4gMTM9PT1nZXRFdmVudEtleSh0KSYmZS5fX3VwZGF0ZSgpfSxibHVyOmZ1bmN0aW9uKCl7cmV0dXJuIGUuX191cGRhdGUoKX19fSkpO2Vsc2V7dmFyIG89TWF0aC5tYXgodGhpcy5tYXhQYWdlcywxKyh0aGlzLl9fZWxsaXBzZXM/MjowKSsodGhpcy5fX2JvdW5kYXJ5TnVtYmVycz8yOjApKSxyPXRoaXMubWluLGE9dGhpcy5tYXgsbD0hMSxjPSExLGg9ITEsdT0hMTt0aGlzLm1heFBhZ2VzJiZvPHRoaXMubWF4LXRoaXMubWluKzEmJihvPTErMipNYXRoLmZsb29yKG8vMikscj1NYXRoLm1heCh0aGlzLm1pbixNYXRoLm1pbih0aGlzLm1heC1vKzEsdGhpcy52YWx1ZS1NYXRoLmZsb29yKG8vMikpKSxhPU1hdGgubWluKHRoaXMubWF4LHIrby0xKSx0aGlzLl9fYm91bmRhcnlOdW1iZXJzJiYoaD0hMCxyKz0xKSx0aGlzLl9fZWxsaXBzZXMmJnI+dGhpcy5taW4rKHRoaXMuX19ib3VuZGFyeU51bWJlcnM/MTowKSYmKGw9ITAscis9MSksdGhpcy5fX2JvdW5kYXJ5TnVtYmVycyYmKHU9ITAsYS09MSksdGhpcy5fX2VsbGlwc2VzJiZhPHRoaXMubWF4LSh0aGlzLl9fYm91bmRhcnlOdW1iZXJzPzE6MCkmJihjPSEwLGEtPTEpKTt2YXIgZD17bWluV2lkdGg6TWF0aC5tYXgoMixTdHJpbmcodGhpcy5tYXgpLmxlbmd0aCkrXCJlbVwifTtpZihoKXt2YXIgcD10aGlzLm1pbj09PXRoaXMudmFsdWU7aS5wdXNoKHRoaXMuX19nZXRCdG4odCx7a2V5OlwiYm5zXCIsc3R5bGU6ZCxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoZS5taW4pfX19LHtkaXNhYmxlOnRoaXMuZGlzYWJsZSxmbGF0OiFwLHRleHRDb2xvcjpwP3RoaXMudGV4dENvbG9yOm51bGwsbGFiZWw6dGhpcy5taW4sbm9SaXBwbGU6ITB9KSl9aWYodSl7dmFyIGY9dGhpcy5tYXg9PT10aGlzLnZhbHVlO3MudW5zaGlmdCh0aGlzLl9fZ2V0QnRuKHQse2tleTpcImJuZVwiLHN0eWxlOmQsb246e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KGUubWF4KX19fSx7ZGlzYWJsZTp0aGlzLmRpc2FibGUsZmxhdDohZix0ZXh0Q29sb3I6Zj90aGlzLnRleHRDb2xvcjpudWxsLGxhYmVsOnRoaXMubWF4LG5vUmlwcGxlOiEwfSkpfWwmJmkucHVzaCh0aGlzLl9fZ2V0QnRuKHQse2tleTpcImJlc1wiLHN0eWxlOmQsb246e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KHItMSl9fX0se2Rpc2FibGU6dGhpcy5kaXNhYmxlLGxhYmVsOlwi4oCmXCJ9KSksYyYmcy51bnNoaWZ0KHRoaXMuX19nZXRCdG4odCx7a2V5OlwiYmVlXCIsc3R5bGU6ZCxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoYSsxKX19fSx7ZGlzYWJsZTp0aGlzLmRpc2FibGUsbGFiZWw6XCLigKZcIn0pKTtmb3IodmFyIG09ZnVuY3Rpb24oaSl7dmFyIHM9aT09PWUudmFsdWU7bi5wdXNoKGUuX19nZXRCdG4odCx7a2V5OlwiYnBnXCIraSxzdHlsZTpkLG9uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBlLnNldChpKX19fSx7ZGlzYWJsZTplLmRpc2FibGUsZmxhdDohcyx0ZXh0Q29sb3I6cz9lLnRleHRDb2xvcjpudWxsLGxhYmVsOmksbm9SaXBwbGU6ITB9KSl9LGc9cjtnPD1hO2crKyltKGcpfXJldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1wYWdpbmF0aW9uIHJvdyBuby13cmFwIGl0ZW1zLWNlbnRlclwiLGNsYXNzOntkaXNhYmxlZDp0aGlzLmRpc2FibGV9fSxbaSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicm93IGp1c3RpZnktY2VudGVyXCJ9LFtuXSksc10pfX0sUVBhcmFsbGF4PXtuYW1lOlwiUVBhcmFsbGF4XCIscHJvcHM6e3NyYzpTdHJpbmcsaGVpZ2h0Ont0eXBlOk51bWJlcixkZWZhdWx0OjUwMH0sc3BlZWQ6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MSx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTAmJnQ8PTF9fX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzY3JvbGxpbmc6ITF9fSx3YXRjaDp7aGVpZ2h0OmZ1bmN0aW9uKCl7dGhpcy5fX3VwZGF0ZVBvcygpfX0sbWV0aG9kczp7X19vblJlc2l6ZTpmdW5jdGlvbigpe3RoaXMuc2Nyb2xsVGFyZ2V0JiYodGhpcy5tZWRpYUhlaWdodD10aGlzLm1lZGlhLm5hdHVyYWxIZWlnaHR8fGhlaWdodCh0aGlzLm1lZGlhKSx0aGlzLl9fdXBkYXRlUG9zKCkpfSxfX3VwZGF0ZVBvczpmdW5jdGlvbigpe3ZhciB0LGUsaSxzO2lmKHRoaXMuc2Nyb2xsVGFyZ2V0PT09d2luZG93Pyh0PTAsaT1lPXdpbmRvdy5pbm5lckhlaWdodCk6aT0odD1vZmZzZXQodGhpcy5zY3JvbGxUYXJnZXQpLnRvcCkrKGU9aGVpZ2h0KHRoaXMuc2Nyb2xsVGFyZ2V0KSksKHM9b2Zmc2V0KHRoaXMuJGVsKS50b3ApK3RoaXMuaGVpZ2h0PnQmJnM8aSl7dmFyIG49KGktcykvKHRoaXMuaGVpZ2h0K2UpO3RoaXMuX19zZXRQb3MoKHRoaXMubWVkaWFIZWlnaHQtdGhpcy5oZWlnaHQpKm4qdGhpcy5zcGVlZCl9fSxfX3NldFBvczpmdW5jdGlvbih0KXt0aGlzLm1lZGlhLnN0eWxlLnRyYW5zZm9ybT1cInRyYW5zbGF0ZTNEKC01MCUsXCIrdCtcInB4LCAwKVwifX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1wYXJhbGxheFwiLHN0eWxlOntoZWlnaHQ6dGhpcy5oZWlnaHQrXCJweFwifX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXBhcmFsbGF4LW1lZGlhIGFic29sdXRlLWZ1bGxcIn0sW3RoaXMuJHNsb3RzLm1lZGlhfHx0KFwiaW1nXCIse3JlZjpcIm1lZGlhXCIsYXR0cnM6e3NyYzp0aGlzLnNyY319KV0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXBhcmFsbGF4LXRleHQgYWJzb2x1dGUtZnVsbCBjb2x1bW4gZmxleC1jZW50ZXIgbm8tcG9pbnRlci1ldmVudHNcIn0sdGhpcy4kc2xvdHMuZGVmYXVsdCldKX0sYmVmb3JlTW91bnQ6ZnVuY3Rpb24oKXt0aGlzLl9fc2V0UG9zPWZyYW1lRGVib3VuY2UodGhpcy5fX3NldFBvcyl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dC5tZWRpYT10LiRzbG90cy5tZWRpYT90LiRzbG90cy5tZWRpYVswXS5lbG06dC4kcmVmcy5tZWRpYSx0Lm1lZGlhLm9ubG9hZD10Lm1lZGlhLm9ubG9hZHN0YXJ0PXQuX19vblJlc2l6ZSx0LnNjcm9sbFRhcmdldD1nZXRTY3JvbGxUYXJnZXQodC4kZWwpLHQucmVzaXplSGFuZGxlcj1kZWJvdW5jZSh0Ll9fb25SZXNpemUsNTApLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdC5yZXNpemVIYW5kbGVyLGxpc3Rlbk9wdHMucGFzc2l2ZSksdC5zY3JvbGxUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHQuX191cGRhdGVQb3MsbGlzdGVuT3B0cy5wYXNzaXZlKSx0Ll9fb25SZXNpemUoKX0pfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0aGlzLnJlc2l6ZUhhbmRsZXIsbGlzdGVuT3B0cy5wYXNzaXZlKSx0aGlzLnNjcm9sbFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdGhpcy5fX3VwZGF0ZVBvcyxsaXN0ZW5PcHRzLnBhc3NpdmUpLHRoaXMubWVkaWEub25sb2FkPXRoaXMubWVkaWEub25sb2Fkc3RhcnQ9bnVsbH19LFFQb3B1cEVkaXQ9e25hbWU6XCJRUG9wdXBFZGl0XCIscHJvcHM6e3ZhbHVlOnt9LHBlcnNpc3RlbnQ6Qm9vbGVhbixrZWVwT25TY3JlZW46e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSx0aXRsZTpTdHJpbmcsYnV0dG9uczpCb29sZWFuLGxhYmVsU2V0OlN0cmluZyxsYWJlbENhbmNlbDpTdHJpbmcsY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LHZhbGlkYXRlOnt0eXBlOkZ1bmN0aW9uLGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LGRpc2FibGU6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybntpbml0aWFsVmFsdWU6XCJcIn19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0LiRyZWZzLnBvcG92ZXIucmVwb3NpdGlvbigpfSl9fSxtZXRob2RzOntjYW5jZWw6ZnVuY3Rpb24oKXt0aGlzLl9faGFzQ2hhbmdlZCgpJiYodGhpcy4kZW1pdChcImNhbmNlbFwiLHRoaXMudmFsdWUsdGhpcy5pbml0aWFsVmFsdWUpLHRoaXMuJGVtaXQoXCJpbnB1dFwiLHRoaXMuaW5pdGlhbFZhbHVlKSksdGhpcy4kbmV4dFRpY2sodGhpcy5fX2Nsb3NlKX0sc2V0OmZ1bmN0aW9uKCl7aWYodGhpcy5fX2hhc0NoYW5nZWQoKSl7aWYoIXRoaXMudmFsaWRhdGUodGhpcy52YWx1ZSkpcmV0dXJuO3RoaXMuJGVtaXQoXCJzYXZlXCIsdGhpcy52YWx1ZSx0aGlzLmluaXRpYWxWYWx1ZSl9dGhpcy5fX2Nsb3NlKCl9LF9faGFzQ2hhbmdlZDpmdW5jdGlvbigpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnZhbHVlKSE9PUpTT04uc3RyaW5naWZ5KHRoaXMuaW5pdGlhbFZhbHVlKX0sX19jbG9zZTpmdW5jdGlvbigpe3RoaXMudmFsaWRhdGVkPSEwLHRoaXMuJHJlZnMucG9wb3Zlci5oaWRlKCl9LF9fZ2V0Q29udGVudDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLiRzbG90cy50aXRsZXx8dGhpcy50aXRsZTtyZXR1cm5bZSYmdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGl0bGUgcS1tdC1zbSBxLW1iLXNtXCJ9LFtlXSl8fHZvaWQgMF0uY29uY2F0KHRoaXMuJHNsb3RzLmRlZmF1bHQpLmNvbmNhdChbdGhpcy5idXR0b25zJiZ0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicm93IGp1c3RpZnktY2VudGVyIG5vLXdyYXAgcS1tdC1zbVwifSxbdChRQnRuLHtwcm9wczp7ZmxhdDohMCxjb2xvcjp0aGlzLmNvbG9yLGxhYmVsOnRoaXMubGFiZWxDYW5jZWx8fHRoaXMuJHEuaTE4bi5sYWJlbC5jYW5jZWx9LG9uOntjbGljazp0aGlzLmNhbmNlbH19KSx0KFFCdG4se3N0YXRpY0NsYXNzOlwicS1tbC1zbVwiLHByb3BzOntmbGF0OiEwLGNvbG9yOnRoaXMuY29sb3IsbGFiZWw6dGhpcy5sYWJlbFNldHx8dGhpcy4kcS5pMThuLmxhYmVsLnNldH0sb246e2NsaWNrOnRoaXMuc2V0fX0pXSl8fHZvaWQgMF0pfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoUVBvcG92ZXIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1lZGl0IHEtcHgtbWQgcS1weS1zbVwiLHJlZjpcInBvcG92ZXJcIixwcm9wczp7Y292ZXI6ITAscGVyc2lzdGVudDp0aGlzLnBlcnNpc3RlbnQsa2VlcE9uU2NyZWVuOnRoaXMua2VlcE9uU2NyZWVuLGRpc2FibGU6dGhpcy5kaXNhYmxlfSxvbjp7c2hvdzpmdW5jdGlvbigpe3ZhciB0PWUuJGVsLnF1ZXJ5U2VsZWN0b3IoXCIucS1pbnB1dC10YXJnZXQ6bm90KC5xLWlucHV0LXNoYWRvdylcIil8fGUuJGVsLnF1ZXJ5U2VsZWN0b3IoXCJpbnB1dFwiKXx8ZS4kZWwucXVlcnlTZWxlY3RvcihcInRleHRhcmVhXCIpO3QmJnQuZm9jdXMoKSxlLiRlbWl0KFwic2hvd1wiKSxlLmluaXRpYWxWYWx1ZT1jbG9uZShlLnZhbHVlKSxlLnZhbGlkYXRlZD0hMX0sXCJlc2NhcGUta2V5XCI6ZnVuY3Rpb24oKXtlLnZhbGlkYXRlZD0hMCxlLiRlbWl0KFwiY2FuY2VsXCIsZS52YWx1ZSxlLmluaXRpYWxWYWx1ZSksZS4kZW1pdChcImlucHV0XCIsZS5pbml0aWFsVmFsdWUpfSxoaWRlOmZ1bmN0aW9uKCl7ZS52YWxpZGF0ZWR8fChlLl9faGFzQ2hhbmdlZCgpJiYoZS52YWxpZGF0ZShlLnZhbHVlKT9lLiRlbWl0KFwic2F2ZVwiLGUudmFsdWUsZS5pbml0aWFsVmFsdWUpOihlLiRlbWl0KFwiY2FuY2VsXCIsZS52YWx1ZSxlLmluaXRpYWxWYWx1ZSksZS4kZW1pdChcImlucHV0XCIsZS5pbml0aWFsVmFsdWUpKSksZS4kZW1pdChcImhpZGVcIikpfX0sbmF0aXZlT246e2tleWRvd246ZnVuY3Rpb24odCl7MTM9PT1nZXRFdmVudEtleSh0KSYmKGUuYnV0dG9ucz9lLnNldCgpOmUuJHJlZnMucG9wb3Zlci5oaWRlKCkpfX19LHRoaXMuX19nZXRDb250ZW50KHQpKX19O2Z1bmN0aW9uIHdpZHRoJDEodCl7cmV0dXJue3dpZHRoOnQrXCIlXCJ9fXZhciBRUHJvZ3Jlc3M9e25hbWU6XCJRUHJvZ3Jlc3NcIixwcm9wczp7cGVyY2VudGFnZTp7dHlwZTpOdW1iZXIsZGVmYXVsdDowfSxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sc3RyaXBlOkJvb2xlYW4sYW5pbWF0ZTpCb29sZWFuLGluZGV0ZXJtaW5hdGU6Qm9vbGVhbixidWZmZXI6TnVtYmVyLGhlaWdodDp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIjRweFwifX0sY29tcHV0ZWQ6e21vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIGJldHdlZW4odGhpcy5wZXJjZW50YWdlLDAsMTAwKX0sYnVmZmVyTW9kZWw6ZnVuY3Rpb24oKXtyZXR1cm4gYmV0d2Vlbih0aGlzLmJ1ZmZlcnx8MCwwLDEwMC10aGlzLm1vZGVsKX0sYnVmZmVyU3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm4gd2lkdGgkMSh0aGlzLmJ1ZmZlck1vZGVsKX0sdHJhY2tTdHlsZTpmdW5jdGlvbigpe3JldHVybiB3aWR0aCQxKHRoaXMuYnVmZmVyPzEwMC10aGlzLmJ1ZmZlcjoxMDApfSxjb21wdXRlZENsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuXCJ0ZXh0LVwiK3RoaXMuY29sb3J9LGNvbXB1dGVkU3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm57aGVpZ2h0OnRoaXMuaGVpZ2h0fX0sbW9kZWxDbGFzczpmdW5jdGlvbigpe3JldHVybnthbmltYXRlOnRoaXMuYW5pbWF0ZSxzdHJpcGU6dGhpcy5zdHJpcGUsaW5kZXRlcm1pbmF0ZTp0aGlzLmluZGV0ZXJtaW5hdGV9fSxtb2RlbFN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJuIHdpZHRoJDEodGhpcy5tb2RlbCl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXByb2dyZXNzXCIsc3R5bGU6dGhpcy5jb21wdXRlZFN0eWxlLGNsYXNzOnRoaXMuY29tcHV0ZWRDbGFzc30sW3RoaXMuYnVmZmVyJiYhdGhpcy5pbmRldGVybWluYXRlP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXByb2dyZXNzLWJ1ZmZlclwiLHN0eWxlOnRoaXMuYnVmZmVyU3R5bGV9KTpudWxsLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXByb2dyZXNzLXRyYWNrXCIsc3R5bGU6dGhpcy50cmFja1N0eWxlfSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtcHJvZ3Jlc3MtbW9kZWxcIixzdHlsZTp0aGlzLm1vZGVsU3R5bGUsY2xhc3M6dGhpcy5tb2RlbENsYXNzfSldKX19LGhlaWdodCQxPS02NSxRUHVsbFRvUmVmcmVzaD17bmFtZTpcIlFQdWxsVG9SZWZyZXNoXCIsZGlyZWN0aXZlczp7VG91Y2hQYW46VG91Y2hQYW59LHByb3BzOntoYW5kbGVyOnt0eXBlOkZ1bmN0aW9uLHJlcXVpcmVkOiEwfSxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sZGlzdGFuY2U6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MzV9LHB1bGxNZXNzYWdlOlN0cmluZyxyZWxlYXNlTWVzc2FnZTpTdHJpbmcscmVmcmVzaE1lc3NhZ2U6U3RyaW5nLHJlZnJlc2hJY29uOlN0cmluZyxpbmxpbmU6Qm9vbGVhbixkaXNhYmxlOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57c3RhdGU6XCJwdWxsXCIscHVsbFBvc2l0aW9uOmhlaWdodCQxLGFuaW1hdGluZzohMSxwdWxsaW5nOiExLHNjcm9sbGluZzohMX19LHdhdGNoOntpbmxpbmU6ZnVuY3Rpb24odCl7dGhpcy5zZXRTY3JvbGxDb250YWluZXIodCl9fSxjb21wdXRlZDp7bWVzc2FnZTpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLnN0YXRlKXtjYXNlXCJwdWxsZWRcIjpyZXR1cm4gdGhpcy5yZWxlYXNlTWVzc2FnZXx8dGhpcy4kcS5pMThuLnB1bGxUb1JlZnJlc2gucmVsZWFzZTtjYXNlXCJyZWZyZXNoaW5nXCI6cmV0dXJuIHRoaXMucmVmcmVzaE1lc3NhZ2V8fHRoaXMuJHEuaTE4bi5wdWxsVG9SZWZyZXNoLnJlZnJlc2g7Y2FzZVwicHVsbFwiOmRlZmF1bHQ6cmV0dXJuIHRoaXMucHVsbE1lc3NhZ2V8fHRoaXMuJHEuaTE4bi5wdWxsVG9SZWZyZXNoLnB1bGx9fSxzdHlsZTpmdW5jdGlvbigpe3JldHVybnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGVZKFwiK3RoaXMucHVsbFBvc2l0aW9uK1wicHgpXCIsbWFyZ2luQm90dG9tOmhlaWdodCQxK1wicHhcIn19LG1lc3NhZ2VDbGFzczpmdW5jdGlvbigpe3JldHVyblwidGV4dC1cIit0aGlzLmNvbG9yfX0sbWV0aG9kczp7X19wdWxsOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLmRpc2FibGUpe2lmKHQuaXNGaW5hbClyZXR1cm4gdGhpcy5zY3JvbGxpbmc9ITEsdGhpcy5wdWxsaW5nPSExLHZvaWQoXCJwdWxsZWRcIj09PXRoaXMuc3RhdGU/KHRoaXMuc3RhdGU9XCJyZWZyZXNoaW5nXCIsdGhpcy5fX2FuaW1hdGVUbygwKSx0aGlzLnRyaWdnZXIoKSk6XCJwdWxsXCI9PT10aGlzLnN0YXRlJiZ0aGlzLl9fYW5pbWF0ZVRvKGhlaWdodCQxKSk7aWYodGhpcy5hbmltYXRpbmd8fHRoaXMuc2Nyb2xsaW5nfHxcInJlZnJlc2hpbmdcIj09PXRoaXMuc3RhdGUpcmV0dXJuITA7dmFyIGU9Z2V0U2Nyb2xsUG9zaXRpb24odGhpcy5zY3JvbGxDb250YWluZXIpO2lmKDAhPT1lfHwwPT09ZSYmXCJkb3duXCIhPT10LmRpcmVjdGlvbilyZXR1cm4gdGhpcy5zY3JvbGxpbmc9ITAsdGhpcy5wdWxsaW5nJiYodGhpcy5wdWxsaW5nPSExLHRoaXMuc3RhdGU9XCJwdWxsXCIsdGhpcy5fX2FuaW1hdGVUbyhoZWlnaHQkMSkpLCEwO3QuZXZ0LnByZXZlbnREZWZhdWx0KCksdGhpcy5wdWxsaW5nPSEwLHRoaXMucHVsbFBvc2l0aW9uPWhlaWdodCQxK01hdGgubWF4KDAsTWF0aC5wb3codC5kaXN0YW5jZS55LC44NSkpLHRoaXMuc3RhdGU9dGhpcy5wdWxsUG9zaXRpb24+dGhpcy5kaXN0YW5jZT9cInB1bGxlZFwiOlwicHVsbFwifX0sX19hbmltYXRlVG86ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXM7IWkmJnRoaXMuYW5pbWF0aW9uSWQmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuYW5pbWF0aW5nKSx0aGlzLnB1bGxQb3NpdGlvbi09KHRoaXMucHVsbFBvc2l0aW9uLXQpLzcsdGhpcy5wdWxsUG9zaXRpb24tdD4xP3RoaXMuYW5pbWF0aW5nPXJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3MuX19hbmltYXRlVG8odCxlLCEwKX0pOnRoaXMuYW5pbWF0aW5nPXJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3MucHVsbFBvc2l0aW9uPXQscy5hbmltYXRpbmc9ITEsZSYmZSgpfSl9LHRyaWdnZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuaGFuZGxlcihmdW5jdGlvbigpe3QuX19hbmltYXRlVG8oaGVpZ2h0JDEsZnVuY3Rpb24oKXt0LnN0YXRlPVwicHVsbFwifSl9KX0sc2V0U2Nyb2xsQ29udGFpbmVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtlLnNjcm9sbENvbnRhaW5lcj10P2UuJGVsLnBhcmVudE5vZGU6Z2V0U2Nyb2xsVGFyZ2V0KGUuJGVsKX0pfX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMuc2V0U2Nyb2xsQ29udGFpbmVyKHRoaXMuaW5saW5lKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicHVsbC10by1yZWZyZXNoIG92ZXJmbG93LWhpZGRlbi15XCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicHVsbC10by1yZWZyZXNoLWNvbnRhaW5lclwiLHN0eWxlOnRoaXMuc3R5bGUsZGlyZWN0aXZlczp0aGlzLmRpc2FibGU/bnVsbDpbe25hbWU6XCJ0b3VjaC1wYW5cIixtb2RpZmllcnM6e3ZlcnRpY2FsOiEwLG1pZ2h0UHJldmVudDohMH0sdmFsdWU6dGhpcy5fX3B1bGx9XX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJwdWxsLXRvLXJlZnJlc2gtbWVzc2FnZSByb3cgZmxleC1jZW50ZXJcIixjbGFzczp0aGlzLm1lc3NhZ2VDbGFzc30sW3QoUUljb24se2NsYXNzOntcInJvdGF0ZS0xODBcIjpcInB1bGxlZFwiPT09dGhpcy5zdGF0ZX0scHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLnB1bGxUb1JlZnJlc2guYXJyb3d9LGRpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHZhbHVlOlwicmVmcmVzaGluZ1wiIT09dGhpcy5zdGF0ZX1dfSksdChRSWNvbix7c3RhdGljQ2xhc3M6XCJhbmltYXRlLXNwaW5cIixwcm9wczp7bmFtZTp0aGlzLnJlZnJlc2hJY29ufHx0aGlzLiRxLmljb24ucHVsbFRvUmVmcmVzaC5yZWZyZXNofSxkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIix2YWx1ZTpcInJlZnJlc2hpbmdcIj09PXRoaXMuc3RhdGV9XX0pLFwiIFwiK3RoaXMubWVzc2FnZV0pLHRoaXMuJHNsb3RzLmRlZmF1bHRdKV0pfX0sZHJhZ1R5cGU9e01JTjowLFJBTkdFOjEsTUFYOjJ9LFFSYW5nZT17bmFtZTpcIlFSYW5nZVwiLG1peGluczpbU2xpZGVyTWl4aW5dLHByb3BzOnt2YWx1ZTp7dHlwZTpPYmplY3QsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybnttaW46MCxtYXg6MH19LHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4gdC5oYXNPd25Qcm9wZXJ0eShcIm1pblwiKSYmdC5oYXNPd25Qcm9wZXJ0eShcIm1heFwiKX19LGRyYWdSYW5nZTpCb29sZWFuLGRyYWdPbmx5UmFuZ2U6Qm9vbGVhbixsZWZ0TGFiZWxDb2xvcjpTdHJpbmcsbGVmdExhYmVsVmFsdWU6U3RyaW5nLHJpZ2h0TGFiZWxDb2xvcjpTdHJpbmcscmlnaHRMYWJlbFZhbHVlOlN0cmluZ30sZGF0YTpmdW5jdGlvbigpe3JldHVybnttb2RlbDpPYmplY3QuYXNzaWduKHt9LHRoaXMudmFsdWUpLGRyYWdnaW5nOiExLGN1cnJlbnRNaW5QZXJjZW50YWdlOih0aGlzLnZhbHVlLm1pbi10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKSxjdXJyZW50TWF4UGVyY2VudGFnZToodGhpcy52YWx1ZS5tYXgtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbil9fSxjb21wdXRlZDp7cGVyY2VudGFnZU1pbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNuYXA/KHRoaXMubW9kZWwubWluLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pOnRoaXMuY3VycmVudE1pblBlcmNlbnRhZ2V9LHBlcmNlbnRhZ2VNYXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zbmFwPyh0aGlzLm1vZGVsLm1heC10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKTp0aGlzLmN1cnJlbnRNYXhQZXJjZW50YWdlfSxhY3RpdmVUcmFja1dpZHRoOmZ1bmN0aW9uKCl7cmV0dXJuIDEwMCoodGhpcy5wZXJjZW50YWdlTWF4LXRoaXMucGVyY2VudGFnZU1pbikrXCIlXCJ9LGxlZnREaXNwbGF5VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5sZWZ0TGFiZWxWYWx1ZT90aGlzLmxlZnRMYWJlbFZhbHVlOnRoaXMubW9kZWwubWlufSxyaWdodERpc3BsYXlWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLnJpZ2h0TGFiZWxWYWx1ZT90aGlzLnJpZ2h0TGFiZWxWYWx1ZTp0aGlzLm1vZGVsLm1heH0sbGVmdFRvb2x0aXBDb2xvcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlZnRMYWJlbENvbG9yfHx0aGlzLmxhYmVsQ29sb3J9LHJpZ2h0VG9vbHRpcENvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmlnaHRMYWJlbENvbG9yfHx0aGlzLmxhYmVsQ29sb3J9fSx3YXRjaDp7XCJ2YWx1ZS5taW5cIjpmdW5jdGlvbih0KXt0aGlzLm1vZGVsLm1pbj10fSxcInZhbHVlLm1heFwiOmZ1bmN0aW9uKHQpe3RoaXMubW9kZWwubWF4PXR9LFwibW9kZWwubWluXCI6ZnVuY3Rpb24odCl7dGhpcy5kcmFnZ2luZ3x8KHQ+dGhpcy5tb2RlbC5tYXgmJih0PXRoaXMubW9kZWwubWF4KSx0aGlzLmN1cnJlbnRNaW5QZXJjZW50YWdlPSh0LXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pKX0sXCJtb2RlbC5tYXhcIjpmdW5jdGlvbih0KXt0aGlzLmRyYWdnaW5nfHwodDx0aGlzLm1vZGVsLm1pbiYmKHQ9dGhpcy5tb2RlbC5taW4pLHRoaXMuY3VycmVudE1heFBlcmNlbnRhZ2U9KHQtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbikpfSxtaW46ZnVuY3Rpb24odCl7dGhpcy5tb2RlbC5taW48dCYmdGhpcy5fX3VwZGF0ZSh7bWluOnR9KSx0aGlzLm1vZGVsLm1heDx0JiZ0aGlzLl9fdXBkYXRlKHttYXg6dH0pLHRoaXMuJG5leHRUaWNrKHRoaXMuX192YWxpZGF0ZVByb3BzKX0sbWF4OmZ1bmN0aW9uKHQpe3RoaXMubW9kZWwubWluPnQmJnRoaXMuX191cGRhdGUoe21pbjp0fSksdGhpcy5tb2RlbC5tYXg+dCYmdGhpcy5fX3VwZGF0ZSh7bWF4OnR9KSx0aGlzLiRuZXh0VGljayh0aGlzLl9fdmFsaWRhdGVQcm9wcyl9LHN0ZXA6ZnVuY3Rpb24oKXt0aGlzLiRuZXh0VGljayh0aGlzLl9fdmFsaWRhdGVQcm9wcyl9fSxtZXRob2RzOntfX2dldERyYWdnaW5nOmZ1bmN0aW9uKHQpe3ZhciBlLGk9dGhpcy4kcmVmcy5oYW5kbGUscz1pLm9mZnNldFdpZHRoLG49KHRoaXMuZHJhZ09ubHlSYW5nZT8tMToxKSp0aGlzLiRyZWZzLmhhbmRsZU1pbi5vZmZzZXRXaWR0aC8oMipzKSxvPXtsZWZ0OmkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCx3aWR0aDpzLHZhbHVlTWluOnRoaXMubW9kZWwubWluLHZhbHVlTWF4OnRoaXMubW9kZWwubWF4LHBlcmNlbnRhZ2VNaW46dGhpcy5jdXJyZW50TWluUGVyY2VudGFnZSxwZXJjZW50YWdlTWF4OnRoaXMuY3VycmVudE1heFBlcmNlbnRhZ2V9LHI9Z2V0UGVyY2VudGFnZSh0LG8sdGhpcy4kcS5pMThuLnJ0bCk7cmV0dXJuIHI8dGhpcy5jdXJyZW50TWluUGVyY2VudGFnZStuP2U9ZHJhZ1R5cGUuTUlOOnI8dGhpcy5jdXJyZW50TWF4UGVyY2VudGFnZS1uP3RoaXMuZHJhZ1JhbmdlfHx0aGlzLmRyYWdPbmx5UmFuZ2U/KGU9ZHJhZ1R5cGUuUkFOR0UsT2JqZWN0LmFzc2lnbihvLHtvZmZzZXRQZXJjZW50YWdlOnIsb2Zmc2V0TW9kZWw6Z2V0TW9kZWwocix0aGlzLm1pbix0aGlzLm1heCx0aGlzLnN0ZXAsdGhpcy5jb21wdXRlZERlY2ltYWxzKSxyYW5nZVZhbHVlOm8udmFsdWVNYXgtby52YWx1ZU1pbixyYW5nZVBlcmNlbnRhZ2U6dGhpcy5jdXJyZW50TWF4UGVyY2VudGFnZS10aGlzLmN1cnJlbnRNaW5QZXJjZW50YWdlfSkpOmU9dGhpcy5jdXJyZW50TWF4UGVyY2VudGFnZS1yPHItdGhpcy5jdXJyZW50TWluUGVyY2VudGFnZT9kcmFnVHlwZS5NQVg6ZHJhZ1R5cGUuTUlOOmU9ZHJhZ1R5cGUuTUFYLCghdGhpcy5kcmFnT25seVJhbmdlfHxlPT09ZHJhZ1R5cGUuUkFOR0UpJiYoby50eXBlPWUsbyl9LF9fbW92ZTpmdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXRoaXMuZHJhZ2dpbmcpO3ZhciBpLHM9Z2V0UGVyY2VudGFnZSh0LGUsdGhpcy4kcS5pMThuLnJ0bCksbj1nZXRNb2RlbChzLHRoaXMubWluLHRoaXMubWF4LHRoaXMuc3RlcCx0aGlzLmNvbXB1dGVkRGVjaW1hbHMpO3N3aXRjaChlLnR5cGUpe2Nhc2UgZHJhZ1R5cGUuTUlOOmk9czw9ZS5wZXJjZW50YWdlTWF4P3ttaW5QOnMsbWF4UDplLnBlcmNlbnRhZ2VNYXgsbWluOm4sbWF4OmUudmFsdWVNYXh9OnttaW5QOmUucGVyY2VudGFnZU1heCxtYXhQOnMsbWluOmUudmFsdWVNYXgsbWF4Om59O2JyZWFrO2Nhc2UgZHJhZ1R5cGUuTUFYOmk9cz49ZS5wZXJjZW50YWdlTWluP3ttaW5QOmUucGVyY2VudGFnZU1pbixtYXhQOnMsbWluOmUudmFsdWVNaW4sbWF4Om59OnttaW5QOnMsbWF4UDplLnBlcmNlbnRhZ2VNaW4sbWluOm4sbWF4OmUudmFsdWVNaW59O2JyZWFrO2Nhc2UgZHJhZ1R5cGUuUkFOR0U6dmFyIG89cy1lLm9mZnNldFBlcmNlbnRhZ2Uscj1iZXR3ZWVuKGUucGVyY2VudGFnZU1pbitvLDAsMS1lLnJhbmdlUGVyY2VudGFnZSksYT1uLWUub2Zmc2V0TW9kZWwsbD1iZXR3ZWVuKGUudmFsdWVNaW4rYSx0aGlzLm1pbix0aGlzLm1heC1lLnJhbmdlVmFsdWUpO2k9e21pblA6cixtYXhQOnIrZS5yYW5nZVBlcmNlbnRhZ2UsbWluOnBhcnNlRmxvYXQobC50b0ZpeGVkKHRoaXMuY29tcHV0ZWREZWNpbWFscykpLG1heDpwYXJzZUZsb2F0KChsK2UucmFuZ2VWYWx1ZSkudG9GaXhlZCh0aGlzLmNvbXB1dGVkRGVjaW1hbHMpKX19dGhpcy5jdXJyZW50TWluUGVyY2VudGFnZT1pLm1pblAsdGhpcy5jdXJyZW50TWF4UGVyY2VudGFnZT1pLm1heFAsdGhpcy5tb2RlbD17bWluOmkubWluLG1heDppLm1heH19LF9fZW5kOmZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9dGhpcy5kcmFnZ2luZyksdGhpcy5fX21vdmUodCxlKSx0aGlzLmN1cnJlbnRNaW5QZXJjZW50YWdlPSh0aGlzLm1vZGVsLm1pbi10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKSx0aGlzLmN1cnJlbnRNYXhQZXJjZW50YWdlPSh0aGlzLm1vZGVsLm1heC10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKX0sX19vbktleURvd246ZnVuY3Rpb24odCxlKXt2YXIgaT10LmtleUNvZGU7aWYodGhpcy5lZGl0YWJsZSYmWzM3LDQwLDM5LDM4XS5pbmNsdWRlcyhpKSl7c3RvcEFuZFByZXZlbnQodCk7dmFyIHM9dGhpcy5jb21wdXRlZERlY2ltYWxzLG49dC5jdHJsS2V5PzEwKnRoaXMuY29tcHV0ZWRTdGVwOnRoaXMuY29tcHV0ZWRTdGVwLG89WzM3LDQwXS5pbmNsdWRlcyhpKT8tbjpuLHI9cz9wYXJzZUZsb2F0KCh0aGlzLm1vZGVsW2VdK28pLnRvRml4ZWQocykpOnRoaXMubW9kZWxbZV0rbzt0aGlzLm1vZGVsW2VdPWJldHdlZW4ocixcIm1pblwiPT09ZT90aGlzLm1pbjp0aGlzLm1vZGVsLm1pbixcIm1heFwiPT09ZT90aGlzLm1heDp0aGlzLm1vZGVsLm1heCksdGhpcy5jdXJyZW50TWluUGVyY2VudGFnZT0odGhpcy5tb2RlbC5taW4tdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbiksdGhpcy5jdXJyZW50TWF4UGVyY2VudGFnZT0odGhpcy5tb2RlbC5tYXgtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbiksdGhpcy5fX3VwZGF0ZSgpfX0sX19vbktleVVwOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dC5rZXlDb2RlO3RoaXMuZWRpdGFibGUmJlszNyw0MCwzOSwzOF0uaW5jbHVkZXMoaSkmJnRoaXMuX191cGRhdGUoITApfSxfX3ZhbGlkYXRlUHJvcHM6ZnVuY3Rpb24oKXt0aGlzLm1pbj49dGhpcy5tYXg/Y29uc29sZS5lcnJvcihcIlJhbmdlIGVycm9yOiBtaW4gPj0gbWF4XCIsdGhpcy4kZWwsdGhpcy5taW4sdGhpcy5tYXgpOm5vdERpdmlkZXMoKHRoaXMubWF4LXRoaXMubWluKS90aGlzLnN0ZXAsdGhpcy5jb21wdXRlZERlY2ltYWxzKT9jb25zb2xlLmVycm9yKFwiUmFuZ2UgZXJyb3I6IHN0ZXAgbXVzdCBiZSBhIGRpdmlzb3Igb2YgbWF4IC0gbWluXCIsdGhpcy5taW4sdGhpcy5tYXgsdGhpcy5zdGVwKTpub3REaXZpZGVzKCh0aGlzLm1vZGVsLm1pbi10aGlzLm1pbikvdGhpcy5zdGVwLHRoaXMuY29tcHV0ZWREZWNpbWFscyk/Y29uc29sZS5lcnJvcihcIlJhbmdlIGVycm9yOiBzdGVwIG11c3QgYmUgYSBkaXZpc29yIG9mIGluaXRpYWwgdmFsdWUubWluIC0gbWluXCIsdGhpcy5tb2RlbC5taW4sdGhpcy5taW4sdGhpcy5zdGVwKTpub3REaXZpZGVzKCh0aGlzLm1vZGVsLm1heC10aGlzLm1pbikvdGhpcy5zdGVwLHRoaXMuY29tcHV0ZWREZWNpbWFscykmJmNvbnNvbGUuZXJyb3IoXCJSYW5nZSBlcnJvcjogc3RlcCBtdXN0IGJlIGEgZGl2aXNvciBvZiBpbml0aWFsIHZhbHVlLm1heCAtIG1pblwiLHRoaXMubW9kZWwubWF4LHRoaXMubWF4LHRoaXMuc3RlcCl9LF9fZ2V0SGFuZGxlOmZ1bmN0aW9uKHQsZSxpLHMsbixvLHIpe3ZhciBhLGw9dGhpcztyZXR1cm4gdChcImRpdlwiLHtyZWY6XCJoYW5kbGVcIitpLHN0YXRpY0NsYXNzOlwicS1zbGlkZXItaGFuZGxlIHEtc2xpZGVyLWhhbmRsZS1cIitlLHN0eWxlOihhPXt9LGFbdGhpcy4kcS5pMThuLnJ0bD9cInJpZ2h0XCI6XCJsZWZ0XCJdPTEwMCpuK1wiJVwiLGEuYm9yZGVyUmFkaXVzPXRoaXMuc3F1YXJlP1wiMFwiOlwiNTAlXCIsYSksY2xhc3M6W3M/XCJoYW5kbGUtYXQtbWluaW11bVwiOm51bGwse2RyYWdnaW5nOnRoaXMuZHJhZ2dpbmd9XSxhdHRyczp7dGFiaW5kZXg6dGhpcy4kcS5wbGF0Zm9ybS5pcy5kZXNrdG9wP3RoaXMuZWRpdGFibGU/MDotMTp2b2lkIDB9LG9uOntrZXlkb3duOmZ1bmN0aW9uKHQpe3JldHVybiBsLl9fb25LZXlEb3duKHQsZSl9LGtleXVwOmZ1bmN0aW9uKHQpe3JldHVybiBsLl9fb25LZXlVcCh0LGUpfX19LFt0aGlzLmxhYmVsfHx0aGlzLmxhYmVsQWx3YXlzP3QoUUNoaXAse3Byb3BzOntwb2ludGluZzpcImRvd25cIixzcXVhcmU6ITAsZGVuc2U6ITAsY29sb3I6b30sc3RhdGljQ2xhc3M6XCJxLXNsaWRlci1sYWJlbCBuby1wb2ludGVyLWV2ZW50c1wiLGNsYXNzOntcImxhYmVsLWFsd2F5c1wiOnRoaXMubGFiZWxBbHdheXN9fSxbcl0pOm51bGwsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2xpZGVyLXJpbmdcIn0pXSl9LF9fZ2V0Q29udGVudDpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm5bdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2xpZGVyLXRyYWNrIGFjdGl2ZS10cmFja1wiLHN0eWxlOihlPXt9LGVbdGhpcy4kcS5pMThuLnJ0bD9cInJpZ2h0XCI6XCJsZWZ0XCJdPTEwMCp0aGlzLnBlcmNlbnRhZ2VNaW4rXCIlXCIsZS53aWR0aD10aGlzLmFjdGl2ZVRyYWNrV2lkdGgsZSksY2xhc3M6e2RyYWdnaW5nOnRoaXMuZHJhZ2dpbmcsXCJ0cmFjay1kcmFnZ2FibGVcIjp0aGlzLmRyYWdSYW5nZXx8dGhpcy5kcmFnT25seVJhbmdlfX0pLHRoaXMuX19nZXRIYW5kbGUodCxcIm1pblwiLFwiTWluXCIsIXRoaXMuZmlsbEhhbmRsZUFsd2F5cyYmdGhpcy5tb2RlbC5taW49PT10aGlzLm1pbix0aGlzLnBlcmNlbnRhZ2VNaW4sdGhpcy5sZWZ0VG9vbHRpcENvbG9yLHRoaXMubGVmdERpc3BsYXlWYWx1ZSksdGhpcy5fX2dldEhhbmRsZSh0LFwibWF4XCIsXCJNYXhcIiwhMSx0aGlzLnBlcmNlbnRhZ2VNYXgsdGhpcy5yaWdodFRvb2x0aXBDb2xvcix0aGlzLnJpZ2h0RGlzcGxheVZhbHVlKV19fX0sUVJhdGluZz17bmFtZTpcIlFSYXRpbmdcIixwcm9wczp7dmFsdWU6TnVtYmVyLG1heDp7dHlwZTpOdW1iZXIsZGVmYXVsdDo1fSxpY29uOlN0cmluZyxjb2xvcjpTdHJpbmcsc2l6ZTpTdHJpbmcscmVhZG9ubHk6Qm9vbGVhbixkaXNhYmxlOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57bW91c2VNb2RlbDowfX0sY29tcHV0ZWQ6e21vZGVsOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy4kZW1pdChcImlucHV0XCIsdCksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtKU09OLnN0cmluZ2lmeSh0KSE9PUpTT04uc3RyaW5naWZ5KGUudmFsdWUpJiZlLiRlbWl0KFwiY2hhbmdlXCIsdCl9KX19LGVkaXRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMucmVhZG9ubHkmJiF0aGlzLmRpc2FibGV9LGNsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5kaXNhYmxlJiZ0LnB1c2goXCJkaXNhYmxlZFwiKSx0aGlzLmVkaXRhYmxlJiZ0LnB1c2goXCJlZGl0YWJsZVwiKSx0aGlzLmNvbG9yJiZ0LnB1c2goXCJ0ZXh0LVwiK3RoaXMuY29sb3IpLHR9fSxtZXRob2RzOntzZXQ6ZnVuY3Rpb24odCl7aWYodGhpcy5lZGl0YWJsZSl7dmFyIGU9YmV0d2VlbihwYXJzZUludCh0LDEwKSwxLHRoaXMubWF4KTt0aGlzLm1vZGVsPXRoaXMubW9kZWw9PT1lPzA6ZSx0aGlzLm1vdXNlTW9kZWw9MH19LF9fc2V0SG92ZXJWYWx1ZTpmdW5jdGlvbih0KXt0aGlzLmVkaXRhYmxlJiYodGhpcy5tb3VzZU1vZGVsPXQpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLGk9W10scz10aGlzLmVkaXRhYmxlPzA6LTEsbj1mdW5jdGlvbihuKXtpLnB1c2godChcInNwYW5cIix7a2V5Om4scmVmOlwicnRcIituLGF0dHJzOnt0YWJpbmRleDpzfSxvbjp7a2V5ZG93bjpmdW5jdGlvbih0KXtzd2l0Y2goZ2V0RXZlbnRLZXkodCkpe2Nhc2UgMTM6Y2FzZSAzMjpyZXR1cm4gZS5zZXQobiksc3RvcEFuZFByZXZlbnQodCk7Y2FzZSAzNzpjYXNlIDQwOnJldHVybiBlLiRyZWZzW1wicnRcIisobi0xKV0mJmUuJHJlZnNbXCJydFwiKyhuLTEpXS5mb2N1cygpLHN0b3BBbmRQcmV2ZW50KHQpO2Nhc2UgMzk6Y2FzZSAzODpyZXR1cm4gZS4kcmVmc1tcInJ0XCIrKG4rMSldJiZlLiRyZWZzW1wicnRcIisobisxKV0uZm9jdXMoKSxzdG9wQW5kUHJldmVudCh0KX19fX0sW3QoUUljb24se3Byb3BzOntuYW1lOmUuaWNvbnx8ZS4kcS5pY29uLnJhdGluZy5pY29ufSxjbGFzczp7YWN0aXZlOiFlLm1vdXNlTW9kZWwmJmUubW9kZWw+PW58fGUubW91c2VNb2RlbCYmZS5tb3VzZU1vZGVsPj1uLGV4c2VsZWN0ZWQ6ZS5tb3VzZU1vZGVsJiZlLm1vZGVsPj1uJiZlLm1vdXNlTW9kZWw8bixob3ZlcmVkOmUubW91c2VNb2RlbD09PW59LGF0dHJzOnt0YWJpbmRleDotMX0sbmF0aXZlT246e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KG4pfSxtb3VzZW92ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gZS5fX3NldEhvdmVyVmFsdWUobil9LG1vdXNlb3V0OmZ1bmN0aW9uKCl7ZS5tb3VzZU1vZGVsPTB9LGZvY3VzOmZ1bmN0aW9uKCl7cmV0dXJuIGUuX19zZXRIb3ZlclZhbHVlKG4pfSxibHVyOmZ1bmN0aW9uKCl7ZS5tb3VzZU1vZGVsPTB9fX0pXSkpfSxvPTE7bzw9dGhpcy5tYXg7bysrKW4obyk7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXJhdGluZyByb3cgaW5saW5lIGl0ZW1zLWNlbnRlclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxzdHlsZTp0aGlzLnNpemU/XCJmb250LXNpemU6IFwiK3RoaXMuc2l6ZTpcIlwifSxpKX19LFFTY3JvbGxBcmVhPXtuYW1lOlwiUVNjcm9sbEFyZWFcIixkaXJlY3RpdmVzOntUb3VjaFBhbjpUb3VjaFBhbn0scHJvcHM6e3RodW1iU3R5bGU6e3R5cGU6T2JqZWN0LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm57fX19LGNvbnRlbnRTdHlsZTp7dHlwZTpPYmplY3QsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybnt9fX0sY29udGVudEFjdGl2ZVN0eWxlOnt0eXBlOk9iamVjdCxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJue319fSxkZWxheTp7dHlwZTpOdW1iZXIsZGVmYXVsdDoxZTN9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2FjdGl2ZTohMSxob3ZlcjohMSxjb250YWluZXJIZWlnaHQ6MCxzY3JvbGxQb3NpdGlvbjowLHNjcm9sbEhlaWdodDowfX0sY29tcHV0ZWQ6e3RodW1iSGlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2Nyb2xsSGVpZ2h0PD10aGlzLmNvbnRhaW5lckhlaWdodHx8IXRoaXMuYWN0aXZlJiYhdGhpcy5ob3Zlcn0sdGh1bWJIZWlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yb3VuZChiZXR3ZWVuKHRoaXMuY29udGFpbmVySGVpZ2h0KnRoaXMuY29udGFpbmVySGVpZ2h0L3RoaXMuc2Nyb2xsSGVpZ2h0LDUwLHRoaXMuY29udGFpbmVySGVpZ2h0KSl9LHN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zY3JvbGxQZXJjZW50YWdlKih0aGlzLmNvbnRhaW5lckhlaWdodC10aGlzLnRodW1iSGVpZ2h0KTtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx0aGlzLnRodW1iU3R5bGUse3RvcDp0K1wicHhcIixoZWlnaHQ6dGhpcy50aHVtYkhlaWdodCtcInB4XCJ9KX0sbWFpblN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGh1bWJIaWRkZW4/dGhpcy5jb250ZW50U3R5bGU6dGhpcy5jb250ZW50QWN0aXZlU3R5bGV9LHNjcm9sbFBlcmNlbnRhZ2U6ZnVuY3Rpb24oKXt2YXIgdD1iZXR3ZWVuKHRoaXMuc2Nyb2xsUG9zaXRpb24vKHRoaXMuc2Nyb2xsSGVpZ2h0LXRoaXMuY29udGFpbmVySGVpZ2h0KSwwLDEpO3JldHVybiBNYXRoLnJvdW5kKDFlNCp0KS8xZTR9fSxtZXRob2RzOntzZXRTY3JvbGxQb3NpdGlvbjpmdW5jdGlvbih0LGUpe3NldFNjcm9sbFBvc2l0aW9uKHRoaXMuJHJlZnMudGFyZ2V0LHQsZSl9LF9fdXBkYXRlQ29udGFpbmVyOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaGVpZ2h0O3RoaXMuY29udGFpbmVySGVpZ2h0IT09ZSYmKHRoaXMuY29udGFpbmVySGVpZ2h0PWUsdGhpcy5fX3NldEFjdGl2ZSghMCwhMCkpfSxfX3VwZGF0ZVNjcm9sbDpmdW5jdGlvbih0KXt2YXIgZT10LnBvc2l0aW9uO3RoaXMuc2Nyb2xsUG9zaXRpb24hPT1lJiYodGhpcy5zY3JvbGxQb3NpdGlvbj1lLHRoaXMuX19zZXRBY3RpdmUoITAsITApKX0sX191cGRhdGVTY3JvbGxIZWlnaHQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5oZWlnaHQ7dGhpcy5zY3JvbGxIZWlnaHQhPT1lJiYodGhpcy5zY3JvbGxIZWlnaHQ9ZSx0aGlzLl9fc2V0QWN0aXZlKCEwLCEwKSl9LF9fcGFuVGh1bWI6ZnVuY3Rpb24odCl7dC5pc0ZpcnN0JiYodGhpcy5yZWZQb3M9dGhpcy5zY3JvbGxQb3NpdGlvbix0aGlzLl9fc2V0QWN0aXZlKCEwLCEwKSxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJub24tc2VsZWN0YWJsZVwiKSxkb2N1bWVudC5zZWxlY3Rpb24/ZG9jdW1lbnQuc2VsZWN0aW9uLmVtcHR5KCk6d2luZG93LmdldFNlbGVjdGlvbiYmd2luZG93LmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpKSx0LmlzRmluYWwmJih0aGlzLl9fc2V0QWN0aXZlKCExKSxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJub24tc2VsZWN0YWJsZVwiKSk7dmFyIGU9KHRoaXMuc2Nyb2xsSGVpZ2h0LXRoaXMuY29udGFpbmVySGVpZ2h0KS8odGhpcy5jb250YWluZXJIZWlnaHQtdGhpcy50aHVtYkhlaWdodCk7dGhpcy4kcmVmcy50YXJnZXQuc2Nyb2xsVG9wPXRoaXMucmVmUG9zKyhcImRvd25cIj09PXQuZGlyZWN0aW9uPzE6LTEpKnQuZGlzdGFuY2UueSplfSxfX3BhbkNvbnRhaW5lcjpmdW5jdGlvbih0KXt0LmlzRmlyc3QmJih0aGlzLnJlZlBvcz10aGlzLnNjcm9sbFBvc2l0aW9uLHRoaXMuX19zZXRBY3RpdmUoITAsITApKSx0LmlzRmluYWwmJnRoaXMuX19zZXRBY3RpdmUoITEpO3ZhciBlPXRoaXMucmVmUG9zKyhcImRvd25cIj09PXQuZGlyZWN0aW9uPy0xOjEpKnQuZGlzdGFuY2UueTt0aGlzLiRyZWZzLnRhcmdldC5zY3JvbGxUb3A9ZSxlPjAmJmUrdGhpcy5jb250YWluZXJIZWlnaHQ8dGhpcy5zY3JvbGxIZWlnaHQmJnQuZXZ0LnByZXZlbnREZWZhdWx0KCl9LF9fbW91c2VXaGVlbDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLiRyZWZzLnRhcmdldDtlLnNjcm9sbFRvcCs9Z2V0TW91c2VXaGVlbERpc3RhbmNlKHQpLnksZS5zY3JvbGxUb3A+MCYmZS5zY3JvbGxUb3ArdGhpcy5jb250YWluZXJIZWlnaHQ8dGhpcy5zY3JvbGxIZWlnaHQmJnQucHJldmVudERlZmF1bHQoKX0sX19zZXRBY3RpdmU6ZnVuY3Rpb24odCxlKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdCE9PXRoaXMuYWN0aXZlP3Q/KHRoaXMuYWN0aXZlPSEwLGUmJnRoaXMuX19zdGFydFRpbWVyKCkpOnRoaXMuYWN0aXZlPSExOnQmJnRoaXMudGltZXImJnRoaXMuX19zdGFydFRpbWVyKCl9LF9fc3RhcnRUaW1lcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5hY3RpdmU9ITEsdC50aW1lcj1udWxsfSx0aGlzLmRlbGF5KX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLiRxLnBsYXRmb3JtLmlzLmRlc2t0b3A/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2Nyb2xsYXJlYSByZWxhdGl2ZS1wb3NpdGlvblwiLG9uOnttb3VzZWVudGVyOmZ1bmN0aW9uKCl7ZS5ob3Zlcj0hMH0sbW91c2VsZWF2ZTpmdW5jdGlvbigpe2UuaG92ZXI9ITF9fX0sW3QoXCJkaXZcIix7cmVmOlwidGFyZ2V0XCIsc3RhdGljQ2xhc3M6XCJzY3JvbGwgcmVsYXRpdmUtcG9zaXRpb24gb3ZlcmZsb3ctaGlkZGVuIGZpdFwiLG9uOnt3aGVlbDp0aGlzLl9fbW91c2VXaGVlbH0sZGlyZWN0aXZlczpbe25hbWU6XCJ0b3VjaC1wYW5cIixtb2RpZmllcnM6e3ZlcnRpY2FsOiEwLG5vTW91c2U6ITAsbWlnaHRQcmV2ZW50OiEwfSx2YWx1ZTp0aGlzLl9fcGFuQ29udGFpbmVyfV19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiYWJzb2x1dGUgZnVsbC13aWR0aFwiLHN0eWxlOnRoaXMubWFpblN0eWxlfSxbdChRUmVzaXplT2JzZXJ2YWJsZSx7b246e3Jlc2l6ZTp0aGlzLl9fdXBkYXRlU2Nyb2xsSGVpZ2h0fX0pLHRoaXMuJHNsb3RzLmRlZmF1bHRdKSx0KFFTY3JvbGxPYnNlcnZhYmxlLHtvbjp7c2Nyb2xsOnRoaXMuX191cGRhdGVTY3JvbGx9fSldKSx0KFFSZXNpemVPYnNlcnZhYmxlLHtvbjp7cmVzaXplOnRoaXMuX191cGRhdGVDb250YWluZXJ9fSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2Nyb2xsYXJlYS10aHVtYiBhYnNvbHV0ZS1yaWdodFwiLHN0eWxlOnRoaXMuc3R5bGUsY2xhc3M6e1wiaW52aXNpYmxlLXRodW1iXCI6dGhpcy50aHVtYkhpZGRlbn0sZGlyZWN0aXZlczpbe25hbWU6XCJ0b3VjaC1wYW5cIixtb2RpZmllcnM6e3ZlcnRpY2FsOiEwLHByZXZlbnQ6ITB9LHZhbHVlOnRoaXMuX19wYW5UaHVtYn1dfSldKTp0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zY3JvbGwtYXJlYSByZWxhdGl2ZS1wb3NpdGlvblwiLHN0eWxlOnRoaXMuY29udGVudFN0eWxlfSxbdChcImRpdlwiLHtyZWY6XCJ0YXJnZXRcIixzdGF0aWNDbGFzczpcInNjcm9sbCByZWxhdGl2ZS1wb3NpdGlvbiBmaXRcIn0sdGhpcy4kc2xvdHMuZGVmYXVsdCldKX19LFFTZWFyY2g9e25hbWU6XCJRU2VhcmNoXCIsbWl4aW5zOltGcmFtZU1peGluLElucHV0TWl4aW5dLHByb3BzOnt2YWx1ZTp7cmVxdWlyZWQ6ITB9LHR5cGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJzZWFyY2hcIn0sZGVib3VuY2U6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MzAwfSxpY29uOlN0cmluZyxub0ljb246Qm9vbGVhbix1cHBlckNhc2U6Qm9vbGVhbixsb3dlckNhc2U6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybnttb2RlbDp0aGlzLnZhbHVlLGNoaWxkRGVib3VuY2U6ITF9fSxwcm92aWRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPWZ1bmN0aW9uKGUpe3QubW9kZWwhPT1lJiYodC5tb2RlbD1lKX07cmV0dXJue19faW5wdXREZWJvdW5jZTp7c2V0OmUsc2V0TmF2OmUsc2V0Q2hpbGREZWJvdW5jZTpmdW5jdGlvbihlKXt0LmNoaWxkRGVib3VuY2U9ZX19fX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMubW9kZWw9dH0sbW9kZWw6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy52YWx1ZSE9PXQmJih0fHwwPT09dHx8KHRoaXMubW9kZWw9XCJudW1iZXJcIj09PXRoaXMudHlwZT9udWxsOlwiXCIpLHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2UuJGVtaXQoXCJpbnB1dFwiLGUubW9kZWwpfSx0aGlzLmRlYm91bmNlVmFsdWUpKX19LGNvbXB1dGVkOntkZWJvdW5jZVZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpbGREZWJvdW5jZT8wOnRoaXMuZGVib3VuY2V9LGNvbXB1dGVkQ2xlYXJWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzTnVtYmVyJiYwPT09dGhpcy5jbGVhclZhbHVlP3RoaXMuY2xlYXJWYWx1ZTp0aGlzLmNsZWFyVmFsdWV8fChcIm51bWJlclwiPT09dGhpcy50eXBlP251bGw6XCJcIil9LGNvbnRyb2xCZWZvcmU6ZnVuY3Rpb24oKXt2YXIgdD0odGhpcy5iZWZvcmV8fFtdKS5zbGljZSgpO3JldHVybiB0aGlzLm5vSWNvbnx8dC51bnNoaWZ0KHtpY29uOnRoaXMuaWNvbnx8dGhpcy4kcS5pY29uLnNlYXJjaC5pY29uLGhhbmRsZXI6dGhpcy5mb2N1c30pLHR9LGNvbnRyb2xBZnRlcjpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLmFmdGVyfHxbXSkuc2xpY2UoKTtyZXR1cm4gdGhpcy5pc0NsZWFyYWJsZSYmdC5wdXNoKHtpY29uOnRoaXMuJHEuaWNvbi5zZWFyY2hbXCJjbGVhclwiKyh0aGlzLmlzSW52ZXJ0ZWQ/XCJJbnZlcnRlZFwiOlwiXCIpXSxoYW5kbGVyOnRoaXMuY2xlYXJ9KSx0fX0sbWV0aG9kczp7Y2xlYXI6ZnVuY3Rpb24odCl7dGhpcy4kcmVmcy5pbnB1dC5jbGVhcih0KX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFFJbnB1dCx7cmVmOlwiaW5wdXRcIixzdGF0aWNDbGFzczpcInEtc2VhcmNoXCIscHJvcHM6e3ZhbHVlOnRoaXMubW9kZWwsdHlwZTp0aGlzLnR5cGUsYXV0b2ZvY3VzOnRoaXMuYXV0b2ZvY3VzLHBsYWNlaG9sZGVyOnRoaXMucGxhY2Vob2xkZXJ8fHRoaXMuJHEuaTE4bi5sYWJlbC5zZWFyY2gsZGlzYWJsZTp0aGlzLmRpc2FibGUscmVhZG9ubHk6dGhpcy5yZWFkb25seSxlcnJvcjp0aGlzLmVycm9yLHdhcm5pbmc6dGhpcy53YXJuaW5nLGFsaWduOnRoaXMuYWxpZ24sbm9QYXJlbnRGaWVsZDp0aGlzLm5vUGFyZW50RmllbGQsZmxvYXRMYWJlbDp0aGlzLmZsb2F0TGFiZWwsc3RhY2tMYWJlbDp0aGlzLnN0YWNrTGFiZWwscHJlZml4OnRoaXMucHJlZml4LHN1ZmZpeDp0aGlzLnN1ZmZpeCxpbnZlcnRlZDp0aGlzLmludmVydGVkLGludmVydGVkTGlnaHQ6dGhpcy5pbnZlcnRlZExpZ2h0LGRhcms6dGhpcy5kYXJrLGhpZGVVbmRlcmxpbmU6dGhpcy5oaWRlVW5kZXJsaW5lLGNvbG9yOnRoaXMuY29sb3Iscm93czp0aGlzLnJvd3MsYmVmb3JlOnRoaXMuY29udHJvbEJlZm9yZSxhZnRlcjp0aGlzLmNvbnRyb2xBZnRlcixjbGVhclZhbHVlOnRoaXMuY2xlYXJWYWx1ZSx1cHBlckNhc2U6dGhpcy51cHBlckNhc2UsbG93ZXJDYXNlOnRoaXMubG93ZXJDYXNlfSxhdHRyczp0aGlzLiRhdHRycyxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7ZS5tb2RlbD10fSxmb2N1czp0aGlzLl9fb25Gb2N1cyxibHVyOnRoaXMuX19vbkJsdXIsa2V5dXA6dGhpcy5fX29uS2V5dXAsa2V5ZG93bjp0aGlzLl9fb25LZXlkb3duLGNsaWNrOnRoaXMuX19vbkNsaWNrLHBhc3RlOnRoaXMuX19vblBhc3RlLGNsZWFyOmZ1bmN0aW9uKHQpe2UuJGVtaXQoXCJjbGVhclwiLHQpLGUuX19lbWl0KCl9fX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fTtmdW5jdGlvbiBkZWZhdWx0RmlsdGVyRm4odCxlKXtyZXR1cm4gZS5sYWJlbC50b0xvd2VyQ2FzZSgpLmluZGV4T2YodCk+LTF9dmFyIFFTZWxlY3Q9e25hbWU6XCJRU2VsZWN0XCIsbWl4aW5zOltGcmFtZU1peGluLEtleWJvYXJkU2VsZWN0aW9uTWl4aW5dLHByb3BzOntmaWx0ZXI6W0Z1bmN0aW9uLEJvb2xlYW5dLGZpbHRlclBsYWNlaG9sZGVyOlN0cmluZyxyYWRpbzpCb29sZWFuLHBsYWNlaG9sZGVyOlN0cmluZyxzZXBhcmF0b3I6Qm9vbGVhbix2YWx1ZTp7cmVxdWlyZWQ6ITB9LG11bHRpcGxlOkJvb2xlYW4sdG9nZ2xlOkJvb2xlYW4sY2hpcHM6Qm9vbGVhbixvcHRpb25zOnt0eXBlOkFycmF5LHJlcXVpcmVkOiEwLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4gdC5ldmVyeShmdW5jdGlvbih0KXtyZXR1cm5cImxhYmVsXCJpbiB0JiZcInZhbHVlXCJpbiB0fSl9fSxjaGlwc0NvbG9yOlN0cmluZyxjaGlwc0JnQ29sb3I6U3RyaW5nLGRpc3BsYXlWYWx1ZTpTdHJpbmcscG9wdXBNYXhIZWlnaHQ6U3RyaW5nLHBvcHVwQ292ZXI6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybnttb2RlbDp0aGlzLm11bHRpcGxlJiZBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpP3RoaXMudmFsdWUuc2xpY2UoKTp0aGlzLnZhbHVlLHRlcm1zOlwiXCIsZm9jdXNlZDohMX19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLm1vZGVsPXRoaXMubXVsdGlwbGUmJkFycmF5LmlzQXJyYXkodCk/dC5zbGljZSgpOnR9LHZpc2libGVPcHRpb25zOmZ1bmN0aW9uKCl7dGhpcy5fX2tleWJvYXJkQ2FsY0luZGV4KCl9fSxjb21wdXRlZDp7b3B0TW9kZWw6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMubXVsdGlwbGUpcmV0dXJuIHRoaXMubW9kZWwubGVuZ3RoPjA/dGhpcy5vcHRpb25zLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5tb2RlbC5pbmNsdWRlcyhlLnZhbHVlKX0pOnRoaXMub3B0aW9ucy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuITF9KX0sdmlzaWJsZU9wdGlvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5vcHRpb25zLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LHQse2luZGV4OmV9KX0pO2lmKHRoaXMuZmlsdGVyJiZ0aGlzLnRlcm1zLmxlbmd0aCl7dmFyIGk9dGhpcy50ZXJtcy50b0xvd2VyQ2FzZSgpO2U9ZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZmlsdGVyRm4oaSxlKX0pfXJldHVybiBlfSxrZXlib2FyZE1heEluZGV4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmlzaWJsZU9wdGlvbnMubGVuZ3RoLTF9LGZpbHRlckZuOmZ1bmN0aW9uKCl7cmV0dXJuXCJib29sZWFuXCI9PXR5cGVvZiB0aGlzLmZpbHRlcj9kZWZhdWx0RmlsdGVyRm46dGhpcy5maWx0ZXJ9LGFjdHVhbFZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0aGlzLmRpc3BsYXlWYWx1ZSlyZXR1cm4gdGhpcy5kaXNwbGF5VmFsdWU7aWYoIXRoaXMubXVsdGlwbGUpe3ZhciBlPXRoaXMub3B0aW9ucy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLnZhbHVlPT09dC5tb2RlbH0pO3JldHVybiBlP2UubGFiZWw6XCJcIn12YXIgaT10aGlzLnNlbGVjdGVkT3B0aW9ucy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQubGFiZWx9KTtyZXR1cm4gaS5sZW5ndGg/aS5qb2luKFwiLCBcIik6XCJcIn0sY29tcHV0ZWRDbGVhclZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuY2xlYXJWYWx1ZT90aGlzLm11bHRpcGxlP1tdOm51bGw6dGhpcy5jbGVhclZhbHVlfSxpc0NsZWFyYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkaXRhYmxlJiZ0aGlzLmNsZWFyYWJsZSYmSlNPTi5zdHJpbmdpZnkodGhpcy5jb21wdXRlZENsZWFyVmFsdWUpIT09SlNPTi5zdHJpbmdpZnkodGhpcy5tb2RlbCl9LHNlbGVjdGVkT3B0aW9uczpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYodGhpcy5tdWx0aXBsZSlyZXR1cm4gdGhpcy5sZW5ndGg+MD90aGlzLm9wdGlvbnMuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB0Lm1vZGVsLmluY2x1ZGVzKGUudmFsdWUpfSk6W119LGhhc0NoaXBzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsdGlwbGUmJnRoaXMuY2hpcHMmJnRoaXMubGVuZ3RoPjB9LGxlbmd0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm11bHRpcGxlP3RoaXMubW9kZWwubGVuZ3RoOltudWxsLHZvaWQgMCxcIlwiXS5pbmNsdWRlcyh0aGlzLm1vZGVsKT8wOjF9LGFkZGl0aW9uYWxMZW5ndGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kaXNwbGF5VmFsdWUmJnRoaXMuZGlzcGxheVZhbHVlLmxlbmd0aD4wfX0sbWV0aG9kczp7dG9nZ2xlUG9wdXA6ZnVuY3Rpb24oKXt0aGlzLiRyZWZzLnBvcG92ZXImJnRoaXNbdGhpcy4kcmVmcy5wb3BvdmVyLnNob3dpbmc/XCJoaWRlXCI6XCJzaG93XCJdKCl9LHNob3c6ZnVuY3Rpb24oKXtpZih0aGlzLl9fa2V5Ym9hcmRDYWxjSW5kZXgoKSx0aGlzLiRyZWZzLnBvcG92ZXIpcmV0dXJuIHRoaXMuJHJlZnMucG9wb3Zlci5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcmVmcy5wb3BvdmVyP3RoaXMuJHJlZnMucG9wb3Zlci5oaWRlKCk6UHJvbWlzZS5yZXNvbHZlKCl9LHJlcG9zaXRpb246ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRyZWZzLnBvcG92ZXI7dCYmdC5zaG93aW5nJiZ0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3JldHVybiB0JiZ0LnJlcG9zaXRpb24oKX0pfSxfX2tleWJvYXJkQ2FsY0luZGV4OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmtleWJvYXJkSW5kZXg9LTE7dmFyIGU9dGhpcy5tdWx0aXBsZT90aGlzLnNlbGVjdGVkT3B0aW9ucy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQudmFsdWV9KTpbdGhpcy5tb2RlbF07dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt2YXIgaT12b2lkIDA9PT1lPy0xOk1hdGgubWF4KC0xLHQudmlzaWJsZU9wdGlvbnMuZmluZEluZGV4KGZ1bmN0aW9uKHQpe3JldHVybiBlLmluY2x1ZGVzKHQudmFsdWUpfSkpO2k+LTEmJih0LmtleWJvYXJkTW92ZURpcmVjdGlvbj0hMCxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5rZXlib2FyZE1vdmVEaXJlY3Rpb249ITF9LDUwMCksdC5fX2tleWJvYXJkU2hvdyhpKSl9KX0sX19rZXlib2FyZEN1c3RvbUtleUhhbmRsZTpmdW5jdGlvbih0LGUpe3N3aXRjaCh0KXtjYXNlIDI3OnRoaXMuJHJlZnMucG9wb3Zlci5zaG93aW5nJiZ0aGlzLmhpZGUoKTticmVhaztjYXNlIDEzOmNhc2UgMzI6dGhpcy4kcmVmcy5wb3BvdmVyLnNob3dpbmd8fHRoaXMuc2hvdygpfX0sX19rZXlib2FyZFNob3dUcmlnZ2VyOmZ1bmN0aW9uKCl7dGhpcy5zaG93KCl9LF9fa2V5Ym9hcmRTZXRTZWxlY3Rpb246ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy52aXNpYmxlT3B0aW9uc1t0XTt0aGlzLm11bHRpcGxlP3RoaXMuX190b2dnbGVNdWx0aXBsZShlLnZhbHVlLGUuZGlzYWJsZSk6dGhpcy5fX3NpbmdsZVNlbGVjdChlLnZhbHVlLGUuZGlzYWJsZSl9LF9fa2V5Ym9hcmRJc1NlbGVjdGFibGVJbmRleDpmdW5jdGlvbih0KXtyZXR1cm4gdD4tMSYmdDx0aGlzLnZpc2libGVPcHRpb25zLmxlbmd0aCYmIXRoaXMudmlzaWJsZU9wdGlvbnNbdF0uZGlzYWJsZX0sX19tb3VzZUVudGVySGFuZGxlcjpmdW5jdGlvbih0LGUpe3RoaXMua2V5Ym9hcmRNb3ZlRGlyZWN0aW9ufHwodGhpcy5rZXlib2FyZEluZGV4PWUpfSxfX29uRm9jdXM6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGV8fHRoaXMuZm9jdXNlZHx8KHRoaXMuZm9jdXNlZD0hMCx0aGlzLiRlbWl0KFwiZm9jdXNcIikpfSxfX29uU2hvdzpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZXx8KHRoaXMuX19vbkZvY3VzKCksdGhpcy5maWx0ZXImJnRoaXMuJHJlZnMuZmlsdGVyJiYodGhpcy4kcmVmcy5maWx0ZXIuZm9jdXMoKSx0aGlzLnJlcG9zaXRpb24oKSkpfSxfX29uQmx1cjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuZm9jdXNlZCYmc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7ZS4kcmVmcy5wb3BvdmVyJiZlLiRyZWZzLnBvcG92ZXIuc2hvd2luZyYmKHQ9PT1kb2N1bWVudC5ib2R5fHxlLiRyZWZzLnBvcG92ZXIuJGVsLmNvbnRhaW5zKHQpKXx8KGUuX19vbkNsb3NlKCksZS5oaWRlKCkpfSwxKX0sX19vbkNsb3NlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtKU09OLnN0cmluZ2lmeShlLm1vZGVsKSE9PUpTT04uc3RyaW5naWZ5KGUudmFsdWUpJiZlLiRlbWl0KFwiY2hhbmdlXCIsZS5tb2RlbCl9KSx0aGlzLnRlcm1zPVwiXCIsdGhpcy5mb2N1c2VkJiYodD90aGlzLiRyZWZzLmlucHV0JiZ0aGlzLiRyZWZzLmlucHV0LiRlbCYmdGhpcy4kcmVmcy5pbnB1dC4kZWwuZm9jdXMoKToodGhpcy5mb2N1c2VkPSExLHRoaXMuJGVtaXQoXCJibHVyXCIpKSl9LF9fc2luZ2xlU2VsZWN0OmZ1bmN0aW9uKHQsZSl7ZXx8KHRoaXMuX19lbWl0KHQpLHRoaXMuaGlkZSgpKX0sX190b2dnbGVNdWx0aXBsZTpmdW5jdGlvbih0LGUpe2lmKCFlKXt2YXIgaT10aGlzLm1vZGVsLHM9aS5pbmRleE9mKHQpO3M+LTE/dGhpcy4kZW1pdChcInJlbW92ZVwiLHtpbmRleDpzLHZhbHVlOmkuc3BsaWNlKHMsMSl9KToodGhpcy4kZW1pdChcImFkZFwiLHtpbmRleDppLmxlbmd0aCx2YWx1ZTp0fSksaS5wdXNoKHQpKSx0aGlzLiRlbWl0KFwiaW5wdXRcIixpKX19LF9fZW1pdDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuJGVtaXQoXCJpbnB1dFwiLHQpLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkodCkhPT1KU09OLnN0cmluZ2lmeShlLnZhbHVlKSYmZS4kZW1pdChcImNoYW5nZVwiLHQpfSl9LF9fc2V0TW9kZWw6ZnVuY3Rpb24odCxlKXt0aGlzLm1vZGVsPXR8fCh0aGlzLm11bHRpcGxlP1tdOm51bGwpLHRoaXMuJGVtaXQoXCJpbnB1dFwiLHRoaXMubW9kZWwpLCFlJiZ0aGlzLiRyZWZzLnBvcG92ZXImJnRoaXMuJHJlZnMucG9wb3Zlci5zaG93aW5nfHx0aGlzLl9fb25DbG9zZShlKX0sX19nZXRDaGlwVGV4dENvbG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNoaXBzQ29sb3I/dGhpcy5jaGlwc0NvbG9yOnRoaXMuaXNJbnZlcnRlZExpZ2h0P3RoaXMuaW52ZXJ0ZWRMaWdodD90fHx0aGlzLmNvbG9yOlwid2hpdGVcIjp0aGlzLmlzSW52ZXJ0ZWQ/dHx8KHRoaXMuaW52ZXJ0ZWRMaWdodD9cImdyZXktMTBcIjp0aGlzLmNvbG9yKTp0aGlzLmRhcms/dHx8dGhpcy5jb2xvcjpcIndoaXRlXCJ9LF9fZ2V0Q2hpcEJnQ29sb3I6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2hpcHNCZ0NvbG9yP3RoaXMuY2hpcHNCZ0NvbG9yOnRoaXMuaXNJbnZlcnRlZExpZ2h0P3RoaXMuaW52ZXJ0ZWRMaWdodD9cImdyZXktMTBcIjp0fHx0aGlzLmNvbG9yOnRoaXMuaXNJbnZlcnRlZD90aGlzLmludmVydGVkTGlnaHQ/dGhpcy5jb2xvcjpcIndoaXRlXCI6dGhpcy5kYXJrP1wid2hpdGVcIjp0fHx0aGlzLmNvbG9yfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1bXTtpZih0aGlzLmhhc0NoaXBzKXt2YXIgcz10KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sIHJvdyBpdGVtcy1jZW50ZXIgcS1pbnB1dC1jaGlwc1wiLGNsYXNzOnRoaXMuYWxpZ25DbGFzc30sdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKGZ1bmN0aW9uKGkscyl7cmV0dXJuIHQoUUNoaXAse2tleTpzLHByb3BzOntzbWFsbDohMCxjbG9zYWJsZTplLmVkaXRhYmxlJiYhaS5kaXNhYmxlLGNvbG9yOmUuX19nZXRDaGlwQmdDb2xvcihpLmNvbG9yKSx0ZXh0Q29sb3I6ZS5fX2dldENoaXBUZXh0Q29sb3IoaS5jb2xvciksaWNvbjppLmljb24saWNvblJpZ2h0OmkucmlnaHRJY29uLGF2YXRhcjppLmF2YXRhcn0sb246e2hpZGU6ZnVuY3Rpb24oKXtlLl9fdG9nZ2xlTXVsdGlwbGUoaS52YWx1ZSxlLmRpc2FibGV8fGkuZGlzYWJsZSl9fSxuYXRpdmVPbjp7Y2xpY2s6ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX19fSxbdChcImRpdlwiLHtkb21Qcm9wczp7aW5uZXJIVE1MOmkubGFiZWx9fSldKX0pKTtpLnB1c2gocyl9ZWxzZXt2YXIgbj10KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sIHEtaW5wdXQtdGFyZ2V0IGVsbGlwc2lzXCIsY2xhc3M6dGhpcy5mYWtlSW5wdXRDbGFzc2VzLGRvbVByb3BzOntpbm5lckhUTUw6dGhpcy5mYWtlSW5wdXRWYWx1ZX19KTtpLnB1c2gobil9cmV0dXJuIGkucHVzaCh0KFFQb3BvdmVyLHtyZWY6XCJwb3BvdmVyXCIsc3RhdGljQ2xhc3M6XCJjb2x1bW4gbm8td3JhcFwiLGNsYXNzOnRoaXMuZGFyaz9cImJnLWRhcmtcIjpudWxsLHByb3BzOntjb3Zlcjp0aGlzLnBvcHVwQ292ZXIsa2VlcE9uU2NyZWVuOiEwLGRpc2FibGU6IXRoaXMuZWRpdGFibGUsYW5jaG9yQ2xpY2s6ITEsbWF4SGVpZ2h0OnRoaXMucG9wdXBNYXhIZWlnaHR9LHNsb3Q6XCJhZnRlclwiLG9uOntzaG93OnRoaXMuX19vblNob3csaGlkZTpmdW5jdGlvbigpe2UuX19vbkNsb3NlKCEwKX19LG5hdGl2ZU9uOntrZXlkb3duOnRoaXMuX19rZXlib2FyZEhhbmRsZUtleX19LFt0aGlzLmZpbHRlciYmdChRU2VhcmNoLHtyZWY6XCJmaWx0ZXJcIixzdGF0aWNDbGFzczpcImNvbC1hdXRvXCIsc3R5bGU6XCJwYWRkaW5nOiAxMHB4O1wiLHByb3BzOnt2YWx1ZTp0aGlzLnRlcm1zLHBsYWNlaG9sZGVyOnRoaXMuZmlsdGVyUGxhY2Vob2xkZXJ8fHRoaXMuJHEuaTE4bi5sYWJlbC5maWx0ZXIsZGVib3VuY2U6MTAwLGNvbG9yOnRoaXMuY29sb3IsZGFyazp0aGlzLmRhcmssbm9QYXJlbnRGaWVsZDohMCxub0ljb246ITB9LG9uOntpbnB1dDpmdW5jdGlvbih0KXtlLnRlcm1zPXQsZS5yZXBvc2l0aW9uKCl9fX0pfHx2b2lkIDAsdGhpcy52aXNpYmxlT3B0aW9ucy5sZW5ndGgmJnQoUUxpc3Qse3N0YXRpY0NsYXNzOlwibm8tYm9yZGVyIHNjcm9sbFwiLHByb3BzOntzZXBhcmF0b3I6dGhpcy5zZXBhcmF0b3IsZGFyazp0aGlzLmRhcmt9fSx0aGlzLnZpc2libGVPcHRpb25zLm1hcChmdW5jdGlvbihpLHMpe3JldHVybiB0KFFJdGVtV3JhcHBlcix7a2V5OnMsY2xhc3M6W2kuZGlzYWJsZT9cInRleHQtZmFkZWRcIjpcImN1cnNvci1wb2ludGVyXCIscz09PWUua2V5Ym9hcmRJbmRleD9cInEtc2VsZWN0LWhpZ2hsaWdodFwiOlwiXCIsaS5kaXNhYmxlP1wiXCI6XCJjdXJzb3ItcG9pbnRlclwiLGkuY2xhc3NOYW1lfHxcIlwiXSxwcm9wczp7Y2ZnOmksc2xvdFJlcGxhY2U6ITAsYWN0aXZlOmUubXVsdGlwbGU/dm9pZCAwOmUudmFsdWU9PT1pLnZhbHVlfSxuYXRpdmVPbjp7XCIhY2xpY2tcIjpmdW5jdGlvbigpe3ZhciB0PWUubXVsdGlwbGU/XCJfX3RvZ2dsZU11bHRpcGxlXCI6XCJfX3NpbmdsZVNlbGVjdFwiO2VbdF0oaS52YWx1ZSxpLmRpc2FibGUpfSxtb3VzZWVudGVyOmZ1bmN0aW9uKHQpeyFpLmRpc2FibGUmJmUuX19tb3VzZUVudGVySGFuZGxlcih0LHMpfX19LFtlLm11bHRpcGxlP3QoZS50b2dnbGU/UVRvZ2dsZTpRQ2hlY2tib3gse3Nsb3Q6ZS50b2dnbGU/XCJyaWdodFwiOlwibGVmdFwiLHByb3BzOntrZWVwQ29sb3I6ITAsY29sb3I6aS5jb2xvcnx8ZS5jb2xvcixkYXJrOmUuZGFyayx2YWx1ZTplLm9wdE1vZGVsW2kuaW5kZXhdLGRpc2FibGU6aS5kaXNhYmxlLG5vRm9jdXM6ITB9fSk6ZS5yYWRpbyYmdChRUmFkaW8se3Nsb3Q6XCJsZWZ0XCIscHJvcHM6e2tlZXBDb2xvcjohMCxjb2xvcjppLmNvbG9yfHxlLmNvbG9yLGRhcms6ZS5kYXJrLHZhbHVlOmUudmFsdWUsdmFsOmkudmFsdWUsZGlzYWJsZTppLmRpc2FibGUsbm9Gb2N1czohMH19KXx8dm9pZCAwXSl9KSl8fHZvaWQgMF0pKSx0aGlzLmlzQ2xlYXJhYmxlJiZpLnB1c2godChRSWNvbix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uaW5wdXRbXCJjbGVhclwiKyh0aGlzLmlzSW52ZXJ0ZWQ/XCJJbnZlcnRlZFwiOlwiXCIpXX0sbmF0aXZlT246e2NsaWNrOnRoaXMuY2xlYXJ9fSkpLGkucHVzaCh0KFFJY29uLHRoaXMucmVhZG9ubHk/e3Nsb3Q6XCJhZnRlclwifTp7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uaW5wdXQuZHJvcGRvd259fSkpLHQoUUlucHV0RnJhbWUse3JlZjpcImlucHV0XCIsc3RhdGljQ2xhc3M6XCJxLXNlbGVjdFwiLHByb3BzOntwcmVmaXg6dGhpcy5wcmVmaXgsc3VmZml4OnRoaXMuc3VmZml4LHN0YWNrTGFiZWw6dGhpcy5zdGFja0xhYmVsLGZsb2F0TGFiZWw6dGhpcy5mbG9hdExhYmVsLGVycm9yOnRoaXMuZXJyb3Isd2FybmluZzp0aGlzLndhcm5pbmcsZGlzYWJsZTp0aGlzLmRpc2FibGUscmVhZG9ubHk6dGhpcy5yZWFkb25seSxpbnZlcnRlZDp0aGlzLmludmVydGVkLGludmVydGVkTGlnaHQ6dGhpcy5pbnZlcnRlZExpZ2h0LGRhcms6dGhpcy5kYXJrLGhpZGVVbmRlcmxpbmU6dGhpcy5oaWRlVW5kZXJsaW5lLGJlZm9yZTp0aGlzLmJlZm9yZSxhZnRlcjp0aGlzLmFmdGVyLGNvbG9yOnRoaXMuY29sb3Isbm9QYXJlbnRGaWVsZDp0aGlzLm5vUGFyZW50RmllbGQsZm9jdXNlZDp0aGlzLmZvY3VzZWQsZm9jdXNhYmxlOiEwLGxlbmd0aDp0aGlzLmxlbmd0aCxhZGRpdGlvbmFsTGVuZ3RoOnRoaXMuYWRkaXRpb25hbExlbmd0aH0sbmF0aXZlT246e2NsaWNrOnRoaXMudG9nZ2xlUG9wdXAsZm9jdXM6dGhpcy5fX29uRm9jdXMsYmx1cjp0aGlzLl9fb25CbHVyLGtleWRvd246dGhpcy5fX2tleWJvYXJkSGFuZGxlS2V5fX0saSl9fSxRU3Bpbm5lckF1ZGlvPXtuYW1lOlwiUVNwaW5uZXJBdWRpb1wiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOntmaWxsOlwiY3VycmVudENvbG9yXCIsd2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCA1NSA4MFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwibWF0cml4KDEgMCAwIC0xIDAgODApXCJ9fSxbdChcInJlY3RcIix7YXR0cnM6e3dpZHRoOlwiMTBcIixoZWlnaHQ6XCIyMFwiLHJ4OlwiM1wifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiaGVpZ2h0XCIsYmVnaW46XCIwc1wiLGR1cjpcIjQuM3NcIix2YWx1ZXM6XCIyMDs0NTs1Nzs4MDs2NDszMjs2Njs0NTs2NDsyMzs2NjsxMzs2NDs1NjszNDszNDsyOzIzOzc2Ozc5OzIwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJyZWN0XCIse2F0dHJzOnt4OlwiMTVcIix3aWR0aDpcIjEwXCIsaGVpZ2h0OlwiODBcIixyeDpcIjNcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImhlaWdodFwiLGJlZ2luOlwiMHNcIixkdXI6XCIyc1wiLHZhbHVlczpcIjgwOzU1OzMzOzU7NzU7MjM7NzM7MzM7MTI7MTQ7NjA7ODBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInJlY3RcIix7YXR0cnM6e3g6XCIzMFwiLHdpZHRoOlwiMTBcIixoZWlnaHQ6XCI1MFwiLHJ4OlwiM1wifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiaGVpZ2h0XCIsYmVnaW46XCIwc1wiLGR1cjpcIjEuNHNcIix2YWx1ZXM6XCI1MDszNDs3ODsyMzs1NjsyMzszNDs3Njs4MDs1NDsyMTs1MFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwicmVjdFwiLHthdHRyczp7eDpcIjQ1XCIsd2lkdGg6XCIxMFwiLGhlaWdodDpcIjMwXCIscng6XCIzXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJoZWlnaHRcIixiZWdpbjpcIjBzXCIsZHVyOlwiMnNcIix2YWx1ZXM6XCIzMDs0NTsxMzs4MDs1Njs3Mjs0NTs3NjszNDsyMzs2NzszMFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pXSl9fSxRU3Bpbm5lckJhbGw9e25hbWU6XCJRU3Bpbm5lckJhbGxcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7c3Ryb2tlOlwiY3VycmVudENvbG9yXCIsd2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCA1NyA1N1wiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwidHJhbnNsYXRlKDEgMSlcIixcInN0cm9rZS13aWR0aFwiOlwiMlwiLGZpbGw6XCJub25lXCIsXCJmaWxsLXJ1bGVcIjpcImV2ZW5vZGRcIn19LFt0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjVcIixjeTpcIjUwXCIscjpcIjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImN5XCIsYmVnaW46XCIwc1wiLGR1cjpcIjIuMnNcIix2YWx1ZXM6XCI1MDs1OzUwOzUwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImN4XCIsYmVnaW46XCIwc1wiLGR1cjpcIjIuMnNcIix2YWx1ZXM6XCI1OzI3OzQ5OzVcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIyN1wiLGN5OlwiNVwiLHI6XCI1XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJjeVwiLGJlZ2luOlwiMHNcIixkdXI6XCIyLjJzXCIsZnJvbTpcIjVcIix0bzpcIjVcIix2YWx1ZXM6XCI1OzUwOzUwOzVcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiY3hcIixiZWdpbjpcIjBzXCIsZHVyOlwiMi4yc1wiLGZyb206XCIyN1wiLHRvOlwiMjdcIix2YWx1ZXM6XCIyNzs0OTs1OzI3XCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiNDlcIixjeTpcIjUwXCIscjpcIjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImN5XCIsYmVnaW46XCIwc1wiLGR1cjpcIjIuMnNcIix2YWx1ZXM6XCI1MDs1MDs1OzUwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImN4XCIsZnJvbTpcIjQ5XCIsdG86XCI0OVwiLGJlZ2luOlwiMHNcIixkdXI6XCIyLjJzXCIsdmFsdWVzOlwiNDk7NTsyNzs0OVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pXSl9fSxRU3Bpbm5lckJhcnM9e25hbWU6XCJRU3Bpbm5lckJhcnNcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7ZmlsbDpcImN1cnJlbnRDb2xvclwiLHdpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgMTM1IDE0MFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwicmVjdFwiLHthdHRyczp7eTpcIjEwXCIsd2lkdGg6XCIxNVwiLGhlaWdodDpcIjEyMFwiLHJ4OlwiNlwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiaGVpZ2h0XCIsYmVnaW46XCIwLjVzXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxMjA7MTEwOzEwMDs5MDs4MDs3MDs2MDs1MDs0MDsxNDA7MTIwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInlcIixiZWdpbjpcIjAuNXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEwOzE1OzIwOzI1OzMwOzM1OzQwOzQ1OzUwOzA7MTBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInJlY3RcIix7YXR0cnM6e3g6XCIzMFwiLHk6XCIxMFwiLHdpZHRoOlwiMTVcIixoZWlnaHQ6XCIxMjBcIixyeDpcIjZcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImhlaWdodFwiLGJlZ2luOlwiMC4yNXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEyMDsxMTA7MTAwOzkwOzgwOzcwOzYwOzUwOzQwOzE0MDsxMjBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwieVwiLGJlZ2luOlwiMC4yNXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEwOzE1OzIwOzI1OzMwOzM1OzQwOzQ1OzUwOzA7MTBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInJlY3RcIix7YXR0cnM6e3g6XCI2MFwiLHdpZHRoOlwiMTVcIixoZWlnaHQ6XCIxNDBcIixyeDpcIjZcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImhlaWdodFwiLGJlZ2luOlwiMHNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEyMDsxMTA7MTAwOzkwOzgwOzcwOzYwOzUwOzQwOzE0MDsxMjBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwieVwiLGJlZ2luOlwiMHNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEwOzE1OzIwOzI1OzMwOzM1OzQwOzQ1OzUwOzA7MTBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInJlY3RcIix7YXR0cnM6e3g6XCI5MFwiLHk6XCIxMFwiLHdpZHRoOlwiMTVcIixoZWlnaHQ6XCIxMjBcIixyeDpcIjZcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImhlaWdodFwiLGJlZ2luOlwiMC4yNXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEyMDsxMTA7MTAwOzkwOzgwOzcwOzYwOzUwOzQwOzE0MDsxMjBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwieVwiLGJlZ2luOlwiMC4yNXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEwOzE1OzIwOzI1OzMwOzM1OzQwOzQ1OzUwOzA7MTBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInJlY3RcIix7YXR0cnM6e3g6XCIxMjBcIix5OlwiMTBcIix3aWR0aDpcIjE1XCIsaGVpZ2h0OlwiMTIwXCIscng6XCI2XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJoZWlnaHRcIixiZWdpbjpcIjAuNXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEyMDsxMTA7MTAwOzkwOzgwOzcwOzYwOzUwOzQwOzE0MDsxMjBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwieVwiLGJlZ2luOlwiMC41c1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTA7MTU7MjA7MjU7MzA7MzU7NDA7NDU7NTA7MDsxMFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pfX0sUVNwaW5uZXJDaXJjbGVzPXtuYW1lOlwiUVNwaW5uZXJDaXJjbGVzXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e2ZpbGw6XCJjdXJyZW50Q29sb3JcIix3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDEzNSAxMzVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNNjcuNDQ3IDU4YzUuNTIzIDAgMTAtNC40NzcgMTAtMTBzLTQuNDc3LTEwLTEwLTEwLTEwIDQuNDc3LTEwIDEwIDQuNDc3IDEwIDEwIDEwem05LjQ0OCA5LjQ0N2MwIDUuNTIzIDQuNDc3IDEwIDEwIDEwIDUuNTIyIDAgMTAtNC40NzcgMTAtMTBzLTQuNDc4LTEwLTEwLTEwYy01LjUyMyAwLTEwIDQuNDc3LTEwIDEwem0tOS40NDggOS40NDhjLTUuNTIzIDAtMTAgNC40NzctMTAgMTAgMCA1LjUyMiA0LjQ3NyAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEwek01OCA2Ny40NDdjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMHMtMTAgNC40NzctMTAgMTAgNC40NzcgMTAgMTAgMTAgMTAtNC40NzcgMTAtMTB6XCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjAgNjcgNjdcIix0bzpcIi0zNjAgNjcgNjdcIixkdXI6XCIyLjVzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwicGF0aFwiLHthdHRyczp7ZDpcIk0yOC4xOSA0MC4zMWM2LjYyNyAwIDEyLTUuMzc0IDEyLTEyIDAtNi42MjgtNS4zNzMtMTItMTItMTItNi42MjggMC0xMiA1LjM3Mi0xMiAxMiAwIDYuNjI2IDUuMzcyIDEyIDEyIDEyem0zMC43Mi0xOS44MjVjNC42ODYgNC42ODcgMTIuMjg0IDQuNjg3IDE2Ljk3IDAgNC42ODYtNC42ODYgNC42ODYtMTIuMjg0IDAtMTYuOTctNC42ODYtNC42ODctMTIuMjg0LTQuNjg3LTE2Ljk3IDAtNC42ODcgNC42ODYtNC42ODcgMTIuMjg0IDAgMTYuOTd6bTM1Ljc0IDcuNzA1YzAgNi42MjcgNS4zNyAxMiAxMiAxMiA2LjYyNiAwIDEyLTUuMzczIDEyLTEyIDAtNi42MjgtNS4zNzQtMTItMTItMTItNi42MyAwLTEyIDUuMzcyLTEyIDEyem0xOS44MjIgMzAuNzJjLTQuNjg2IDQuNjg2LTQuNjg2IDEyLjI4NCAwIDE2Ljk3IDQuNjg3IDQuNjg2IDEyLjI4NSA0LjY4NiAxNi45NyAwIDQuNjg3LTQuNjg2IDQuNjg3LTEyLjI4NCAwLTE2Ljk3LTQuNjg1LTQuNjg3LTEyLjI4My00LjY4Ny0xNi45NyAwem0tNy43MDQgMzUuNzRjLTYuNjI3IDAtMTIgNS4zNy0xMiAxMiAwIDYuNjI2IDUuMzczIDEyIDEyIDEyczEyLTUuMzc0IDEyLTEyYzAtNi42My01LjM3My0xMi0xMi0xMnptLTMwLjcyIDE5LjgyMmMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3IDAtNC42ODYgNC42ODctNC42ODYgMTIuMjg1IDAgMTYuOTcgNC42ODYgNC42ODcgMTIuMjg0IDQuNjg3IDE2Ljk3IDAgNC42ODctNC42ODUgNC42ODctMTIuMjgzIDAtMTYuOTd6bS0zNS43NC03LjcwNGMwLTYuNjI3LTUuMzcyLTEyLTEyLTEyLTYuNjI2IDAtMTIgNS4zNzMtMTIgMTJzNS4zNzQgMTIgMTIgMTJjNi42MjggMCAxMi01LjM3MyAxMi0xMnptLTE5LjgyMy0zMC43MmM0LjY4Ny00LjY4NiA0LjY4Ny0xMi4yODQgMC0xNi45Ny00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcgMC00LjY4NyA0LjY4Ni00LjY4NyAxMi4yODQgMCAxNi45NyA0LjY4NiA0LjY4NyAxMi4yODQgNC42ODcgMTYuOTcgMHpcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJyb3RhdGVcIixmcm9tOlwiMCA2NyA2N1wiLHRvOlwiMzYwIDY3IDY3XCIsZHVyOlwiOHNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSl9fSxRU3Bpbm5lckNvbW1lbnQ9e25hbWU6XCJRU3Bpbm5lckNvbW1lbnRcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7d2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHZpZXdCb3g6XCIwIDAgMTAwIDEwMFwiLHByZXNlcnZlQXNwZWN0UmF0aW86XCJ4TWlkWU1pZFwifX0sW3QoXCJyZWN0XCIse2F0dHJzOnt4OlwiMFwiLHk6XCIwXCIsd2lkdGg6XCIxMDBcIixoZWlnaHQ6XCIxMDBcIixmaWxsOlwibm9uZVwifX0pLHQoXCJwYXRoXCIse2F0dHJzOntkOlwiTTc4LDE5SDIyYy02LjYsMC0xMiw1LjQtMTIsMTJ2MzFjMCw2LjYsNS40LDEyLDEyLDEyaDM3LjJjMC40LDMsMS44LDUuNiwzLjcsNy42YzIuNCwyLjUsNS4xLDQuMSw5LjEsNCBjLTEuNC0yLjEtMi03LjItMi0xMC4zYzAtMC40LDAtMC44LDAtMS4zaDhjNi42LDAsMTItNS40LDEyLTEyVjMxQzkwLDI0LjQsODQuNiwxOSw3OCwxOXpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9fSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIzMFwiLGN5OlwiNDdcIixyOlwiNVwiLGZpbGw6XCIjZmZmXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJvcGFjaXR5XCIsZnJvbTpcIjBcIix0bzpcIjFcIix2YWx1ZXM6XCIwOzE7MVwiLGtleVRpbWVzOlwiMDswLjI7MVwiLGR1cjpcIjFzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjUwXCIsY3k6XCI0N1wiLHI6XCI1XCIsZmlsbDpcIiNmZmZcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcIm9wYWNpdHlcIixmcm9tOlwiMFwiLHRvOlwiMVwiLHZhbHVlczpcIjA7MDsxOzFcIixrZXlUaW1lczpcIjA7MC4yOzAuNDsxXCIsZHVyOlwiMXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiNzBcIixjeTpcIjQ3XCIscjpcIjVcIixmaWxsOlwiI2ZmZlwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwib3BhY2l0eVwiLGZyb206XCIwXCIsdG86XCIxXCIsdmFsdWVzOlwiMDswOzE7MVwiLGtleVRpbWVzOlwiMDswLjQ7MC42OzFcIixkdXI6XCIxc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKX19LFFTcGlubmVyQ3ViZT17bmFtZTpcIlFTcGlubmVyQ3ViZVwiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsdmlld0JveDpcIjAgMCAxMDAgMTAwXCIscHJlc2VydmVBc3BlY3RSYXRpbzpcInhNaWRZTWlkXCJ9fSxbdChcInJlY3RcIix7YXR0cnM6e3g6XCIwXCIseTpcIjBcIix3aWR0aDpcIjEwMFwiLGhlaWdodDpcIjEwMFwiLGZpbGw6XCJub25lXCJ9fSksdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSgyNSAyNSlcIn19LFt0KFwicmVjdFwiLHthdHRyczp7eDpcIi0yMFwiLHk6XCItMjBcIix3aWR0aDpcIjQwXCIsaGVpZ2h0OlwiNDBcIixmaWxsOlwiY3VycmVudENvbG9yXCIsb3BhY2l0eTpcIjAuOVwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInNjYWxlXCIsZnJvbTpcIjEuNVwiLHRvOlwiMVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLGJlZ2luOlwiMHNcIixkdXI6XCIxc1wiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5U3BsaW5lczpcIjAuMiAwLjggMC4yIDAuOFwiLGtleVRpbWVzOlwiMDsxXCJ9fSldKV0pLHQoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoNzUgMjUpXCJ9fSxbdChcInJlY3RcIix7YXR0cnM6e3g6XCItMjBcIix5OlwiLTIwXCIsd2lkdGg6XCI0MFwiLGhlaWdodDpcIjQwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLG9wYWNpdHk6XCIwLjhcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJzY2FsZVwiLGZyb206XCIxLjVcIix0bzpcIjFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIixiZWdpbjpcIjAuMXNcIixkdXI6XCIxc1wiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5U3BsaW5lczpcIjAuMiAwLjggMC4yIDAuOFwiLGtleVRpbWVzOlwiMDsxXCJ9fSldKV0pLHQoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMjUgNzUpXCJ9fSxbdChcInJlY3RcIix7c3RhdGljQ2xhc3M6XCJjdWJlXCIsYXR0cnM6e3g6XCItMjBcIix5OlwiLTIwXCIsd2lkdGg6XCI0MFwiLGhlaWdodDpcIjQwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLG9wYWNpdHk6XCIwLjdcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJzY2FsZVwiLGZyb206XCIxLjVcIix0bzpcIjFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIixiZWdpbjpcIjAuM3NcIixkdXI6XCIxc1wiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5U3BsaW5lczpcIjAuMiAwLjggMC4yIDAuOFwiLGtleVRpbWVzOlwiMDsxXCJ9fSldKV0pLHQoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoNzUgNzUpXCJ9fSxbdChcInJlY3RcIix7c3RhdGljQ2xhc3M6XCJjdWJlXCIsYXR0cnM6e3g6XCItMjBcIix5OlwiLTIwXCIsd2lkdGg6XCI0MFwiLGhlaWdodDpcIjQwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLG9wYWNpdHk6XCIwLjZcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJzY2FsZVwiLGZyb206XCIxLjVcIix0bzpcIjFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIixiZWdpbjpcIjAuMnNcIixkdXI6XCIxc1wiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5U3BsaW5lczpcIjAuMiAwLjggMC4yIDAuOFwiLGtleVRpbWVzOlwiMDsxXCJ9fSldKV0pXSl9fSxRU3Bpbm5lckRvdHM9e25hbWU6XCJRU3Bpbm5lckRvdHNcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7ZmlsbDpcImN1cnJlbnRDb2xvclwiLHdpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgMTIwIDMwXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMTVcIixjeTpcIjE1XCIscjpcIjE1XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJyXCIsZnJvbTpcIjE1XCIsdG86XCIxNVwiLGJlZ2luOlwiMHNcIixkdXI6XCIwLjhzXCIsdmFsdWVzOlwiMTU7OTsxNVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixmcm9tOlwiMVwiLHRvOlwiMVwiLGJlZ2luOlwiMHNcIixkdXI6XCIwLjhzXCIsdmFsdWVzOlwiMTsuNTsxXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiNjBcIixjeTpcIjE1XCIscjpcIjlcIixcImZpbGwtb3BhY2l0eVwiOlwiLjNcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInJcIixmcm9tOlwiOVwiLHRvOlwiOVwiLGJlZ2luOlwiMHNcIixkdXI6XCIwLjhzXCIsdmFsdWVzOlwiOTsxNTs5XCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGZyb206XCIuNVwiLHRvOlwiLjVcIixiZWdpbjpcIjBzXCIsZHVyOlwiMC44c1wiLHZhbHVlczpcIi41OzE7LjVcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIxMDVcIixjeTpcIjE1XCIscjpcIjE1XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJyXCIsZnJvbTpcIjE1XCIsdG86XCIxNVwiLGJlZ2luOlwiMHNcIixkdXI6XCIwLjhzXCIsdmFsdWVzOlwiMTU7OTsxNVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixmcm9tOlwiMVwiLHRvOlwiMVwiLGJlZ2luOlwiMHNcIixkdXI6XCIwLjhzXCIsdmFsdWVzOlwiMTsuNTsxXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSl9fSxRU3Bpbm5lckZhY2Vib29rPXtuYW1lOlwiUVNwaW5uZXJGYWNlYm9va1wiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDEwMCAxMDBcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIscHJlc2VydmVBc3BlY3RSYXRpbzpcInhNaWRZTWlkXCJ9fSxbdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSgyMCA1MClcIn19LFt0KFwicmVjdFwiLHthdHRyczp7eDpcIi0xMFwiLHk6XCItMzBcIix3aWR0aDpcIjIwXCIsaGVpZ2h0OlwiNjBcIixmaWxsOlwiY3VycmVudENvbG9yXCIsb3BhY2l0eTpcIjAuNlwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInNjYWxlXCIsZnJvbTpcIjJcIix0bzpcIjFcIixiZWdpbjpcIjBzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsZHVyOlwiMXNcIixjYWxjTW9kZTpcInNwbGluZVwiLGtleVNwbGluZXM6XCIwLjEgMC45IDAuNCAxXCIsa2V5VGltZXM6XCIwOzFcIix2YWx1ZXM6XCIyOzFcIn19KV0pXSksdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSg1MCA1MClcIn19LFt0KFwicmVjdFwiLHthdHRyczp7eDpcIi0xMFwiLHk6XCItMzBcIix3aWR0aDpcIjIwXCIsaGVpZ2h0OlwiNjBcIixmaWxsOlwiY3VycmVudENvbG9yXCIsb3BhY2l0eTpcIjAuOFwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInNjYWxlXCIsZnJvbTpcIjJcIix0bzpcIjFcIixiZWdpbjpcIjAuMXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIixkdXI6XCIxc1wiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5U3BsaW5lczpcIjAuMSAwLjkgMC40IDFcIixrZXlUaW1lczpcIjA7MVwiLHZhbHVlczpcIjI7MVwifX0pXSldKSx0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwidHJhbnNsYXRlKDgwIDUwKVwifX0sW3QoXCJyZWN0XCIse2F0dHJzOnt4OlwiLTEwXCIseTpcIi0zMFwiLHdpZHRoOlwiMjBcIixoZWlnaHQ6XCI2MFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIixvcGFjaXR5OlwiMC45XCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwic2NhbGVcIixmcm9tOlwiMlwiLHRvOlwiMVwiLGJlZ2luOlwiMC4yc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLGR1cjpcIjFzXCIsY2FsY01vZGU6XCJzcGxpbmVcIixrZXlTcGxpbmVzOlwiMC4xIDAuOSAwLjQgMVwiLGtleVRpbWVzOlwiMDsxXCIsdmFsdWVzOlwiMjsxXCJ9fSldKV0pXSl9fSxRU3Bpbm5lckdlYXJzPXtuYW1lOlwiUVNwaW5uZXJHZWFyc1wiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDEwMCAxMDBcIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOlwieE1pZFlNaWRcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSgtMjAsLTIwKVwifX0sW3QoXCJwYXRoXCIse2F0dHJzOntkOlwiTTc5LjksNTIuNkM4MCw1MS44LDgwLDUwLjksODAsNTBzMC0xLjgtMC4xLTIuNmwtNS4xLTAuNGMtMC4zLTIuNC0wLjktNC42LTEuOC02LjdsNC4yLTIuOWMtMC43LTEuNi0xLjYtMy4xLTIuNi00LjUgTDcwLDM1Yy0xLjQtMS45LTMuMS0zLjUtNC45LTQuOWwyLjItNC42Yy0xLjQtMS0yLjktMS45LTQuNS0yLjZMNTkuOCwyN2MtMi4xLTAuOS00LjQtMS41LTYuNy0xLjhsLTAuNC01LjFDNTEuOCwyMCw1MC45LDIwLDUwLDIwIHMtMS44LDAtMi42LDAuMWwtMC40LDUuMWMtMi40LDAuMy00LjYsMC45LTYuNywxLjhsLTIuOS00LjFjLTEuNiwwLjctMy4xLDEuNi00LjUsMi42bDIuMSw0LjZjLTEuOSwxLjQtMy41LDMuMS01LDQuOWwtNC41LTIuMSBjLTEsMS40LTEuOSwyLjktMi42LDQuNWw0LjEsMi45Yy0wLjksMi4xLTEuNSw0LjQtMS44LDYuOGwtNSwwLjRDMjAsNDguMiwyMCw0OS4xLDIwLDUwczAsMS44LDAuMSwyLjZsNSwwLjQgYzAuMywyLjQsMC45LDQuNywxLjgsNi44bC00LjEsMi45YzAuNywxLjYsMS42LDMuMSwyLjYsNC41bDQuNS0yLjFjMS40LDEuOSwzLjEsMy41LDUsNC45bC0yLjEsNC42YzEuNCwxLDIuOSwxLjksNC41LDIuNmwyLjktNC4xIGMyLjEsMC45LDQuNCwxLjUsNi43LDEuOGwwLjQsNS4xQzQ4LjIsODAsNDkuMSw4MCw1MCw4MHMxLjgsMCwyLjYtMC4xbDAuNC01LjFjMi4zLTAuMyw0LjYtMC45LDYuNy0xLjhsMi45LDQuMiBjMS42LTAuNywzLjEtMS42LDQuNS0yLjZMNjUsNjkuOWMxLjktMS40LDMuNS0zLDQuOS00LjlsNC42LDIuMmMxLTEuNCwxLjktMi45LDIuNi00LjVMNzMsNTkuOGMwLjktMi4xLDEuNS00LjQsMS44LTYuN0w3OS45LDUyLjYgeiBNNTAsNjVjLTguMywwLTE1LTYuNy0xNS0xNWMwLTguMyw2LjctMTUsMTUtMTVzMTUsNi43LDE1LDE1QzY1LDU4LjMsNTguMyw2NSw1MCw2NXpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjkwIDUwIDUwXCIsdG86XCIwIDUwIDUwXCIsZHVyOlwiMXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSksdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSgyMCwyMCkgcm90YXRlKDE1IDUwIDUwKVwifX0sW3QoXCJwYXRoXCIse2F0dHJzOntkOlwiTTc5LjksNTIuNkM4MCw1MS44LDgwLDUwLjksODAsNTBzMC0xLjgtMC4xLTIuNmwtNS4xLTAuNGMtMC4zLTIuNC0wLjktNC42LTEuOC02LjdsNC4yLTIuOWMtMC43LTEuNi0xLjYtMy4xLTIuNi00LjUgTDcwLDM1Yy0xLjQtMS45LTMuMS0zLjUtNC45LTQuOWwyLjItNC42Yy0xLjQtMS0yLjktMS45LTQuNS0yLjZMNTkuOCwyN2MtMi4xLTAuOS00LjQtMS41LTYuNy0xLjhsLTAuNC01LjFDNTEuOCwyMCw1MC45LDIwLDUwLDIwIHMtMS44LDAtMi42LDAuMWwtMC40LDUuMWMtMi40LDAuMy00LjYsMC45LTYuNywxLjhsLTIuOS00LjFjLTEuNiwwLjctMy4xLDEuNi00LjUsMi42bDIuMSw0LjZjLTEuOSwxLjQtMy41LDMuMS01LDQuOWwtNC41LTIuMSBjLTEsMS40LTEuOSwyLjktMi42LDQuNWw0LjEsMi45Yy0wLjksMi4xLTEuNSw0LjQtMS44LDYuOGwtNSwwLjRDMjAsNDguMiwyMCw0OS4xLDIwLDUwczAsMS44LDAuMSwyLjZsNSwwLjQgYzAuMywyLjQsMC45LDQuNywxLjgsNi44bC00LjEsMi45YzAuNywxLjYsMS42LDMuMSwyLjYsNC41bDQuNS0yLjFjMS40LDEuOSwzLjEsMy41LDUsNC45bC0yLjEsNC42YzEuNCwxLDIuOSwxLjksNC41LDIuNmwyLjktNC4xIGMyLjEsMC45LDQuNCwxLjUsNi43LDEuOGwwLjQsNS4xQzQ4LjIsODAsNDkuMSw4MCw1MCw4MHMxLjgsMCwyLjYtMC4xbDAuNC01LjFjMi4zLTAuMyw0LjYtMC45LDYuNy0xLjhsMi45LDQuMiBjMS42LTAuNywzLjEtMS42LDQuNS0yLjZMNjUsNjkuOWMxLjktMS40LDMuNS0zLDQuOS00LjlsNC42LDIuMmMxLTEuNCwxLjktMi45LDIuNi00LjVMNzMsNTkuOGMwLjktMi4xLDEuNS00LjQsMS44LTYuN0w3OS45LDUyLjYgeiBNNTAsNjVjLTguMywwLTE1LTYuNy0xNS0xNWMwLTguMyw2LjctMTUsMTUtMTVzMTUsNi43LDE1LDE1QzY1LDU4LjMsNTguMyw2NSw1MCw2NXpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjAgNTAgNTBcIix0bzpcIjkwIDUwIDUwXCIsZHVyOlwiMXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSldKX19LFFTcGlubmVyR3JpZD17bmFtZTpcIlFTcGlubmVyR3JpZFwiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOntmaWxsOlwiY3VycmVudENvbG9yXCIsd2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAxMDUgMTA1XCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMTIuNVwiLGN5OlwiMTIuNVwiLHI6XCIxMi41XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixiZWdpbjpcIjBzXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxOy4yOzFcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIxMi41XCIsY3k6XCI1Mi41XCIscjpcIjEyLjVcIixcImZpbGwtb3BhY2l0eVwiOlwiLjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGJlZ2luOlwiMTAwbXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjE7LjI7MVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjUyLjVcIixjeTpcIjEyLjVcIixyOlwiMTIuNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiZmlsbC1vcGFjaXR5XCIsYmVnaW46XCIzMDBtc1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTsuMjsxXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiNTIuNVwiLGN5OlwiNTIuNVwiLHI6XCIxMi41XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixiZWdpbjpcIjYwMG1zXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxOy4yOzFcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCI5Mi41XCIsY3k6XCIxMi41XCIscjpcIjEyLjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGJlZ2luOlwiODAwbXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjE7LjI7MVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjkyLjVcIixjeTpcIjUyLjVcIixyOlwiMTIuNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiZmlsbC1vcGFjaXR5XCIsYmVnaW46XCI0MDBtc1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTsuMjsxXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMTIuNVwiLGN5OlwiOTIuNVwiLHI6XCIxMi41XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixiZWdpbjpcIjcwMG1zXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxOy4yOzFcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCI1Mi41XCIsY3k6XCI5Mi41XCIscjpcIjEyLjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGJlZ2luOlwiNTAwbXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjE7LjI7MVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjkyLjVcIixjeTpcIjkyLjVcIixyOlwiMTIuNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiZmlsbC1vcGFjaXR5XCIsYmVnaW46XCIyMDBtc1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTsuMjsxXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSl9fSxRU3Bpbm5lckhlYXJ0cz17bmFtZTpcIlFTcGlubmVySGVhcnRzXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e2ZpbGw6XCJjdXJyZW50Q29sb3JcIix3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDE0MCA2NFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwicGF0aFwiLHthdHRyczp7ZDpcIk0zMC4yNjIgNTcuMDJMNy4xOTUgNDAuNzIzYy01Ljg0LTMuOTc2LTcuNTYtMTIuMDYtMy44NDItMTguMDYzIDMuNzE1LTYgMTEuNDY3LTcuNjUgMTcuMzA2LTMuNjhsNC41MiAzLjc2IDIuNi01LjI3NGMzLjcxNi02LjAwMiAxMS40Ny03LjY1IDE3LjMwNC0zLjY4IDUuODQgMy45NyA3LjU2IDEyLjA1NCAzLjg0MiAxOC4wNjJMMzQuNDkgNTYuMTE4Yy0uODk3IDEuNTEyLTIuNzkzIDEuOTE1LTQuMjI4Ljl6XCIsXCJmaWxsLW9wYWNpdHlcIjpcIi41XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixiZWdpbjpcIjBzXCIsZHVyOlwiMS40c1wiLHZhbHVlczpcIjAuNTsxOzAuNVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwicGF0aFwiLHthdHRyczp7ZDpcIk0xMDUuNTEyIDU2LjEybC0xNC40NC0yNC4yNzJjLTMuNzE2LTYuMDA4LTEuOTk2LTE0LjA5MyAzLjg0My0xOC4wNjIgNS44MzUtMy45NyAxMy41ODgtMi4zMjIgMTcuMzA2IDMuNjhsMi42IDUuMjc0IDQuNTItMy43NmM1Ljg0LTMuOTcgMTMuNTkzLTIuMzIgMTcuMzA4IDMuNjggMy43MTggNi4wMDMgMS45OTggMTQuMDg4LTMuODQyIDE4LjA2NEwxMDkuNzQgNTcuMDJjLTEuNDM0IDEuMDE0LTMuMzMuNjEtNC4yMjgtLjl6XCIsXCJmaWxsLW9wYWNpdHlcIjpcIi41XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixiZWdpbjpcIjAuN3NcIixkdXI6XCIxLjRzXCIsdmFsdWVzOlwiMC41OzE7MC41XCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJwYXRoXCIse2F0dHJzOntkOlwiTTY3LjQwOCA1Ny44MzRsLTIzLjAxLTI0Ljk4Yy01Ljg2NC02LjE1LTUuODY0LTE2LjEwOCAwLTIyLjI0OCA1Ljg2LTYuMTQgMTUuMzctNi4xNCAyMS4yMzQgMEw3MCAxNi4xNjhsNC4zNjgtNS41NjJjNS44NjMtNi4xNCAxNS4zNzUtNi4xNCAyMS4yMzUgMCA1Ljg2MyA2LjE0IDUuODYzIDE2LjA5OCAwIDIyLjI0N2wtMjMuMDA3IDI0Ljk4Yy0xLjQzIDEuNTU2LTMuNzU3IDEuNTU2LTUuMTg4IDB6XCJ9fSldKX19LFFTcGlubmVySG91cmdsYXNzPXtuYW1lOlwiUVNwaW5uZXJIb3VyZ2xhc3NcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7d2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAxMDAgMTAwXCIscHJlc2VydmVBc3BlY3RSYXRpbzpcInhNaWRZTWlkXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJnXCIsW3QoXCJwYXRoXCIse3N0YXRpY0NsYXNzOlwiZ2xhc3NcIixhdHRyczp7ZmlsbDpcIm5vbmVcIixzdHJva2U6XCJjdXJyZW50Q29sb3JcIixcInN0cm9rZS13aWR0aFwiOlwiNVwiLFwic3Ryb2tlLW1pdGVybGltaXRcIjpcIjEwXCIsZDpcIk01OC40LDUxLjdjLTAuOS0wLjktMS40LTItMS40LTIuM3MwLjUtMC40LDEuNC0xLjQgQzcwLjgsNDMuOCw3OS44LDMwLjUsODAsMTUuNUg3MEgzMEgyMGMwLjIsMTUsOS4yLDI4LjEsMjEuNiwzMi4zYzAuOSwwLjksMS40LDEuMiwxLjQsMS41cy0wLjUsMS42LTEuNCwyLjUgQzI5LjIsNTYuMSwyMC4yLDY5LjUsMjAsODUuNWgxMGg0MGgxMEM3OS44LDY5LjUsNzAuOCw1NS45LDU4LjQsNTEuN3pcIn19KSx0KFwiY2xpcFBhdGhcIix7YXR0cnM6e2lkOlwidWlsLWhvdXJnbGFzcy1jbGlwMVwifX0sW3QoXCJyZWN0XCIse3N0YXRpY0NsYXNzOlwiY2xpcFwiLGF0dHJzOnt4OlwiMTVcIix5OlwiMjBcIix3aWR0aDpcIjcwXCIsaGVpZ2h0OlwiMjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImhlaWdodFwiLGZyb206XCIyNVwiLHRvOlwiMFwiLGR1cjpcIjFzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsdmxhdWVzOlwiMjU7MDswXCIsa2V5VGltZXM6XCIwOzAuNTsxXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ5XCIsZnJvbTpcIjIwXCIsdG86XCI0NVwiLGR1cjpcIjFzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsdmxhdWVzOlwiMjA7NDU7NDVcIixrZXlUaW1lczpcIjA7MC41OzFcIn19KV0pXSksdChcImNsaXBQYXRoXCIse2F0dHJzOntpZDpcInVpbC1ob3VyZ2xhc3MtY2xpcDJcIn19LFt0KFwicmVjdFwiLHtzdGF0aWNDbGFzczpcImNsaXBcIixhdHRyczp7eDpcIjE1XCIseTpcIjU1XCIsd2lkdGg6XCI3MFwiLGhlaWdodDpcIjI1XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJoZWlnaHRcIixmcm9tOlwiMFwiLHRvOlwiMjVcIixkdXI6XCIxc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLHZsYXVlczpcIjA7MjU7MjVcIixrZXlUaW1lczpcIjA7MC41OzFcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInlcIixmcm9tOlwiODBcIix0bzpcIjU1XCIsZHVyOlwiMXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIix2bGF1ZXM6XCI4MDs1NTs1NVwiLGtleVRpbWVzOlwiMDswLjU7MVwifX0pXSldKSx0KFwicGF0aFwiLHtzdGF0aWNDbGFzczpcInNhbmRcIixhdHRyczp7ZDpcIk0yOSwyM2MzLjEsMTEuNCwxMS4zLDE5LjUsMjEsMTkuNVM2Ny45LDM0LjQsNzEsMjNIMjl6XCIsXCJjbGlwLXBhdGhcIjpcInVybCgjdWlsLWhvdXJnbGFzcy1jbGlwMSlcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9fSksdChcInBhdGhcIix7c3RhdGljQ2xhc3M6XCJzYW5kXCIsYXR0cnM6e2Q6XCJNNzEuNiw3OGMtMy0xMS42LTExLjUtMjAtMjEuNS0yMHMtMTguNSw4LjQtMjEuNSwyMEg3MS42elwiLFwiY2xpcC1wYXRoXCI6XCJ1cmwoI3VpbC1ob3VyZ2xhc3MtY2xpcDIpXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifX0pLHQoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInJvdGF0ZVwiLGZyb206XCIwIDUwIDUwXCIsdG86XCIxODAgNTAgNTBcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIixkdXI6XCIxc1wiLHZhbHVlczpcIjAgNTAgNTA7MCA1MCA1MDsxODAgNTAgNTBcIixrZXlUaW1lczpcIjA7MC43OzFcIn19KV0pXSl9fSxRU3Bpbm5lckluZmluaXR5PXtuYW1lOlwiUVNwaW5uZXJJbmZpbml0eVwiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDEwMCAxMDBcIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOlwieE1pZFlNaWRcIn19LFt0KFwicGF0aFwiLHthdHRyczp7ZDpcIk0yNC4zLDMwQzExLjQsMzAsNSw0My4zLDUsNTBzNi40LDIwLDE5LjMsMjBjMTkuMywwLDMyLjEtNDAsNTEuNC00MEM4OC42LDMwLDk1LDQzLjMsOTUsNTBzLTYuNCwyMC0xOS4zLDIwQzU2LjQsNzAsNDMuNiwzMCwyNC4zLDMwelwiLGZpbGw6XCJub25lXCIsc3Ryb2tlOlwiY3VycmVudENvbG9yXCIsXCJzdHJva2Utd2lkdGhcIjpcIjhcIixcInN0cm9rZS1kYXNoYXJyYXlcIjpcIjEwLjY5MTIwNTM0MjYxMDY3OCAxMC42OTEyMDUzNDI2MTA2NzhcIixcInN0cm9rZS1kYXNob2Zmc2V0XCI6XCIwXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2UtZGFzaG9mZnNldFwiLGZyb206XCIwXCIsdG86XCIyMS4zODI0MTA2ODUyMjEzNTVcIixiZWdpbjpcIjBcIixkdXI6XCIyc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLGZpbGw6XCJmcmVlemVcIn19KV0pXSl9fSxRU3Bpbm5lcl9pb3M9e25hbWU6XCJRU3Bpbm5lcklvc1wiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSxzdHJva2U6XCJjdXJyZW50Q29sb3JcIixmaWxsOlwiY3VycmVudENvbG9yXCIsdmlld0JveDpcIjAgMCA2NCA2NFwifX0sW3QoXCJnXCIse2F0dHJzOntcInN0cm9rZS13aWR0aFwiOlwiNFwiLFwic3Ryb2tlLWxpbmVjYXBcIjpcInJvdW5kXCJ9fSxbdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoMTgwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIjE7Ljg1Oy43Oy42NTsuNTU7LjQ1Oy4zNTsuMjU7LjE1Oy4xOzA7MVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoMjEwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIjA7MTsuODU7Ljc7LjY1Oy41NTsuNDU7LjM1Oy4yNTsuMTU7LjE7MFwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoMjQwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIi4xOzA7MTsuODU7Ljc7LjY1Oy41NTsuNDU7LjM1Oy4yNTsuMTU7LjFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJsaW5lXCIse2F0dHJzOnt5MTpcIjE3XCIseTI6XCIyOVwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgzMiwzMikgcm90YXRlKDI3MClcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsZHVyOlwiNzUwbXNcIix2YWx1ZXM6XCIuMTU7LjE7MDsxOy44NTsuNzsuNjU7LjU1Oy40NTsuMzU7LjI1Oy4xNVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoMzAwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIi4yNTsuMTU7LjE7MDsxOy44NTsuNzsuNjU7LjU1Oy40NTsuMzU7LjI1XCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwibGluZVwiLHthdHRyczp7eTE6XCIxN1wiLHkyOlwiMjlcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMzIsMzIpIHJvdGF0ZSgzMzApXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGR1cjpcIjc1MG1zXCIsdmFsdWVzOlwiLjM1Oy4yNTsuMTU7LjE7MDsxOy44NTsuNzsuNjU7LjU1Oy40NTsuMzVcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJsaW5lXCIse2F0dHJzOnt5MTpcIjE3XCIseTI6XCIyOVwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgzMiwzMikgcm90YXRlKDApXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGR1cjpcIjc1MG1zXCIsdmFsdWVzOlwiLjQ1Oy4zNTsuMjU7LjE1Oy4xOzA7MTsuODU7Ljc7LjY1Oy41NTsuNDVcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJsaW5lXCIse2F0dHJzOnt5MTpcIjE3XCIseTI6XCIyOVwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgzMiwzMikgcm90YXRlKDMwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIi41NTsuNDU7LjM1Oy4yNTsuMTU7LjE7MDsxOy44NTsuNzsuNjU7LjU1XCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwibGluZVwiLHthdHRyczp7eTE6XCIxN1wiLHkyOlwiMjlcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMzIsMzIpIHJvdGF0ZSg2MClcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsZHVyOlwiNzUwbXNcIix2YWx1ZXM6XCIuNjU7LjU1Oy40NTsuMzU7LjI1Oy4xNTsuMTswOzE7Ljg1Oy43Oy42NVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoOTApXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGR1cjpcIjc1MG1zXCIsdmFsdWVzOlwiLjc7LjY1Oy41NTsuNDU7LjM1Oy4yNTsuMTU7LjE7MDsxOy44NTsuN1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoMTIwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIi44NTsuNzsuNjU7LjU1Oy40NTsuMzU7LjI1Oy4xNTsuMTswOzE7Ljg1XCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwibGluZVwiLHthdHRyczp7eTE6XCIxN1wiLHkyOlwiMjlcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMzIsMzIpIHJvdGF0ZSgxNTApXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGR1cjpcIjc1MG1zXCIsdmFsdWVzOlwiMTsuODU7Ljc7LjY1Oy41NTsuNDU7LjM1Oy4yNTsuMTU7LjE7MDsxXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pXSl9fSxRU3Bpbm5lck92YWw9e25hbWU6XCJRU3Bpbm5lck92YWxcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7c3Ryb2tlOlwiY3VycmVudENvbG9yXCIsd2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAzOCAzOFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwidHJhbnNsYXRlKDEgMSlcIixcInN0cm9rZS13aWR0aFwiOlwiMlwiLGZpbGw6XCJub25lXCIsXCJmaWxsLXJ1bGVcIjpcImV2ZW5vZGRcIn19LFt0KFwiY2lyY2xlXCIse2F0dHJzOntcInN0cm9rZS1vcGFjaXR5XCI6XCIuNVwiLGN4OlwiMThcIixjeTpcIjE4XCIscjpcIjE4XCJ9fSksdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNMzYgMThjMC05Ljk0LTguMDYtMTgtMTgtMThcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJyb3RhdGVcIixmcm9tOlwiMCAxOCAxOFwiLHRvOlwiMzYwIDE4IDE4XCIsZHVyOlwiMXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSldKX19LFFTcGlubmVyUGllPXtuYW1lOlwiUVNwaW5uZXJQaWVcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7d2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAxMDAgMTAwXCIscHJlc2VydmVBc3BlY3RSYXRpbzpcInhNaWRZTWlkXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJwYXRoXCIse2F0dHJzOntkOlwiTTAgNTBBNTAgNTAgMCAwIDEgNTAgMEw1MCA1MEwwIDUwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLG9wYWNpdHk6XCIwLjVcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJyb3RhdGVcIixmcm9tOlwiMCA1MCA1MFwiLHRvOlwiMzYwIDUwIDUwXCIsZHVyOlwiMC44c1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNNTAgMEE1MCA1MCAwIDAgMSAxMDAgNTBMNTAgNTBMNTAgMFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIixvcGFjaXR5OlwiMC41XCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjAgNTAgNTBcIix0bzpcIjM2MCA1MCA1MFwiLGR1cjpcIjEuNnNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJwYXRoXCIse2F0dHJzOntkOlwiTTEwMCA1MEE1MCA1MCAwIDAgMSA1MCAxMDBMNTAgNTBMMTAwIDUwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLG9wYWNpdHk6XCIwLjVcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJyb3RhdGVcIixmcm9tOlwiMCA1MCA1MFwiLHRvOlwiMzYwIDUwIDUwXCIsZHVyOlwiMi40c1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNNTAgMTAwQTUwIDUwIDAgMCAxIDAgNTBMNTAgNTBMNTAgMTAwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLG9wYWNpdHk6XCIwLjVcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJyb3RhdGVcIixmcm9tOlwiMCA1MCA1MFwiLHRvOlwiMzYwIDUwIDUwXCIsZHVyOlwiMy4yc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKX19LFFTcGlubmVyUHVmZj17bmFtZTpcIlFTcGlubmVyUHVmZlwiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOntzdHJva2U6XCJjdXJyZW50Q29sb3JcIix3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDQ0IDQ0XCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJnXCIse2F0dHJzOntmaWxsOlwibm9uZVwiLFwiZmlsbC1ydWxlXCI6XCJldmVub2RkXCIsXCJzdHJva2Utd2lkdGhcIjpcIjJcIn19LFt0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjIyXCIsY3k6XCIyMlwiLHI6XCIxXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJyXCIsYmVnaW46XCIwc1wiLGR1cjpcIjEuOHNcIix2YWx1ZXM6XCIxOyAyMFwiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5VGltZXM6XCIwOyAxXCIsa2V5U3BsaW5lczpcIjAuMTY1LCAwLjg0LCAwLjQ0LCAxXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGJlZ2luOlwiMHNcIixkdXI6XCIxLjhzXCIsdmFsdWVzOlwiMTsgMFwiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5VGltZXM6XCIwOyAxXCIsa2V5U3BsaW5lczpcIjAuMywgMC42MSwgMC4zNTUsIDFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMjJcIixjeTpcIjIyXCIscjpcIjFcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInJcIixiZWdpbjpcIi0wLjlzXCIsZHVyOlwiMS44c1wiLHZhbHVlczpcIjE7IDIwXCIsY2FsY01vZGU6XCJzcGxpbmVcIixrZXlUaW1lczpcIjA7IDFcIixrZXlTcGxpbmVzOlwiMC4xNjUsIDAuODQsIDAuNDQsIDFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsYmVnaW46XCItMC45c1wiLGR1cjpcIjEuOHNcIix2YWx1ZXM6XCIxOyAwXCIsY2FsY01vZGU6XCJzcGxpbmVcIixrZXlUaW1lczpcIjA7IDFcIixrZXlTcGxpbmVzOlwiMC4zLCAwLjYxLCAwLjM1NSwgMVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKV0pfX0sUVNwaW5uZXJSYWRpbz17bmFtZTpcIlFTcGlubmVyUmFkaW9cIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7d2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAxMDAgMTAwXCIscHJlc2VydmVBc3BlY3RSYXRpbzpcInhNaWRZTWlkXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJzY2FsZSgwLjU1KVwifX0sW3QoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMzBcIixjeTpcIjE1MFwiLHI6XCIzMFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcIm9wYWNpdHlcIixmcm9tOlwiMFwiLHRvOlwiMVwiLGR1cjpcIjFzXCIsYmVnaW46XCIwXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsa2V5VGltZXM6XCIwOzAuNTsxXCIsdmFsdWVzOlwiMDsxOzFcIn19KV0pLHQoXCJwYXRoXCIse2F0dHJzOntkOlwiTTkwLDE1MGgzMGMwLTQ5LjctNDAuMy05MC05MC05MHYzMEM2My4xLDkwLDkwLDExNi45LDkwLDE1MHpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJvcGFjaXR5XCIsZnJvbTpcIjBcIix0bzpcIjFcIixkdXI6XCIxc1wiLGJlZ2luOlwiMC4xXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsa2V5VGltZXM6XCIwOzAuNTsxXCIsdmFsdWVzOlwiMDsxOzFcIn19KV0pLHQoXCJwYXRoXCIse2F0dHJzOntkOlwiTTE1MCwxNTBoMzBDMTgwLDY3LjIsMTEyLjgsMCwzMCwwdjMwQzk2LjMsMzAsMTUwLDgzLjcsMTUwLDE1MHpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJvcGFjaXR5XCIsZnJvbTpcIjBcIix0bzpcIjFcIixkdXI6XCIxc1wiLGJlZ2luOlwiMC4yXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsa2V5VGltZXM6XCIwOzAuNTsxXCIsdmFsdWVzOlwiMDsxOzFcIn19KV0pXSldKX19LFFTcGlubmVyUmluZ3M9e25hbWU6XCJRU3Bpbm5lclJpbmdzXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3N0cm9rZTpcImN1cnJlbnRDb2xvclwiLHdpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgNDUgNDVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcImdcIix7YXR0cnM6e2ZpbGw6XCJub25lXCIsXCJmaWxsLXJ1bGVcIjpcImV2ZW5vZGRcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMSAxKVwiLFwic3Ryb2tlLXdpZHRoXCI6XCIyXCJ9fSxbdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIyMlwiLGN5OlwiMjJcIixyOlwiNlwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiclwiLGJlZ2luOlwiMS41c1wiLGR1cjpcIjNzXCIsdmFsdWVzOlwiNjsyMlwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGJlZ2luOlwiMS41c1wiLGR1cjpcIjNzXCIsdmFsdWVzOlwiMTswXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS13aWR0aFwiLGJlZ2luOlwiMS41c1wiLGR1cjpcIjNzXCIsdmFsdWVzOlwiMjswXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMjJcIixjeTpcIjIyXCIscjpcIjZcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInJcIixiZWdpbjpcIjNzXCIsZHVyOlwiM3NcIix2YWx1ZXM6XCI2OzIyXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsYmVnaW46XCIzc1wiLGR1cjpcIjNzXCIsdmFsdWVzOlwiMTswXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS13aWR0aFwiLGJlZ2luOlwiM3NcIixkdXI6XCIzc1wiLHZhbHVlczpcIjI7MFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjIyXCIsY3k6XCIyMlwiLHI6XCI4XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJyXCIsYmVnaW46XCIwc1wiLGR1cjpcIjEuNXNcIix2YWx1ZXM6XCI2OzE7MjszOzQ7NTs2XCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSldKX19LFFTcGlubmVyVGFpbD17bmFtZTpcIlFTcGlubmVyVGFpbFwiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDM4IDM4XCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJkZWZzXCIsW3QoXCJsaW5lYXJHcmFkaWVudFwiLHthdHRyczp7eDE6XCI4LjA0MiVcIix5MTpcIjAlXCIseDI6XCI2NS42ODIlXCIseTI6XCIyMy44NjUlXCIsaWQ6XCJhXCJ9fSxbdChcInN0b3BcIix7YXR0cnM6e1wic3RvcC1jb2xvclwiOlwiY3VycmVudENvbG9yXCIsXCJzdG9wLW9wYWNpdHlcIjpcIjBcIixvZmZzZXQ6XCIwJVwifX0pLHQoXCJzdG9wXCIse2F0dHJzOntcInN0b3AtY29sb3JcIjpcImN1cnJlbnRDb2xvclwiLFwic3RvcC1vcGFjaXR5XCI6XCIuNjMxXCIsb2Zmc2V0OlwiNjMuMTQ2JVwifX0pLHQoXCJzdG9wXCIse2F0dHJzOntcInN0b3AtY29sb3JcIjpcImN1cnJlbnRDb2xvclwiLG9mZnNldDpcIjEwMCVcIn19KV0pXSksdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSgxIDEpXCIsZmlsbDpcIm5vbmVcIixcImZpbGwtcnVsZVwiOlwiZXZlbm9kZFwifX0sW3QoXCJwYXRoXCIse2F0dHJzOntkOlwiTTM2IDE4YzAtOS45NC04LjA2LTE4LTE4LTE4XCIsc3Ryb2tlOlwidXJsKCNhKVwiLFwic3Ryb2tlLXdpZHRoXCI6XCIyXCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjAgMTggMThcIix0bzpcIjM2MCAxOCAxOFwiLGR1cjpcIjAuOXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2ZpbGw6XCJjdXJyZW50Q29sb3JcIixjeDpcIjM2XCIsY3k6XCIxOFwiLHI6XCIxXCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjAgMTggMThcIix0bzpcIjM2MCAxOCAxOFwiLGR1cjpcIjAuOXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSldKX19LFN0ZXBUYWI9e25hbWU6XCJRU3RlcFRhYlwiLGRpcmVjdGl2ZXM6e1JpcHBsZTpSaXBwbGV9LHByb3BzOltcInZtXCJdLGNvbXB1dGVkOntoYXNOYXZpZ2F0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMudm0uX19zdGVwcGVyLm5vSGVhZGVyTmF2aWdhdGlvbn0sY2xhc3NlczpmdW5jdGlvbigpe3JldHVybntcInN0ZXAtZXJyb3JcIjp0aGlzLnZtLmVycm9yLFwic3RlcC1hY3RpdmVcIjp0aGlzLnZtLmFjdGl2ZSxcInN0ZXAtZG9uZVwiOnRoaXMudm0uZG9uZSxcInN0ZXAtbmF2aWdhdGlvblwiOnRoaXMudm0uZG9uZSYmdGhpcy5oYXNOYXZpZ2F0aW9uLFwic3RlcC13YWl0aW5nXCI6dGhpcy52bS53YWl0aW5nLFwic3RlcC1kaXNhYmxlZFwiOnRoaXMudm0uZGlzYWJsZSxcInN0ZXAtY29sb3JlZFwiOnRoaXMudm0uYWN0aXZlfHx0aGlzLnZtLmRvbmUsXCJpdGVtcy1jZW50ZXJcIjohdGhpcy52bS5fX3N0ZXBwZXIudmVydGljYWwsXCJpdGVtcy1zdGFydFwiOnRoaXMudm0uX19zdGVwcGVyLnZlcnRpY2FsLFwicS1zdGVwcGVyLWZpcnN0XCI6dGhpcy52bS5maXJzdCxcInEtc3RlcHBlci1sYXN0XCI6dGhpcy52bS5sYXN0fX19LG1ldGhvZHM6e19fc2VsZWN0OmZ1bmN0aW9uKCl7dGhpcy5oYXNOYXZpZ2F0aW9uJiZ0aGlzLnZtLnNlbGVjdCgpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudm0uc3RlcEljb24/dChRSWNvbix7cHJvcHM6e25hbWU6dGhpcy52bS5zdGVwSWNvbn19KTp0KFwic3BhblwiLFt0aGlzLnZtLmlubmVyT3JkZXIrMV0pO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zdGVwcGVyLXRhYiBjb2wtZ3JvdyBmbGV4IG5vLXdyYXAgcmVsYXRpdmUtcG9zaXRpb25cIixjbGFzczp0aGlzLmNsYXNzZXMsb246e2NsaWNrOnRoaXMuX19zZWxlY3R9LGRpcmVjdGl2ZXM6dGhpcy5oYXNOYXZpZ2F0aW9uP1t7bmFtZTpcInJpcHBsZVwiLHZhbHVlOnRoaXMudm0uZG9uZX1dOm51bGx9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zdGVwcGVyLWRvdCByb3cgZmxleC1jZW50ZXIgcS1zdGVwcGVyLWxpbmUgcmVsYXRpdmUtcG9zaXRpb25cIn0sW3QoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicm93IGZsZXgtY2VudGVyXCJ9LFtlXSldKSx0aGlzLnZtLnRpdGxlP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXN0ZXBwZXItbGFiZWwgcS1zdGVwcGVyLWxpbmUgcmVsYXRpdmUtcG9zaXRpb25cIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXN0ZXBwZXItdGl0bGVcIn0sW3RoaXMudm0udGl0bGVdKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zdGVwcGVyLXN1YnRpdGxlXCJ9LFt0aGlzLnZtLnN1YnRpdGxlXSldKTpudWxsXSl9fSxRU3RlcD17bmFtZTpcIlFTdGVwXCIsaW5qZWN0OntfX3N0ZXBwZXI6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUVN0ZXAgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUVN0ZXBwZXJcIil9fX0scHJvcHM6e25hbWU6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdWlkKCl9fSxkZWZhdWx0OkJvb2xlYW4sdGl0bGU6e3R5cGU6U3RyaW5nLHJlcXVpcmVkOiEwfSxzdWJ0aXRsZTpTdHJpbmcsaWNvbjpTdHJpbmcsb3JkZXI6W051bWJlcixTdHJpbmddLGVycm9yOkJvb2xlYW4sYWN0aXZlSWNvbjpTdHJpbmcsZXJyb3JJY29uOlN0cmluZyxkb25lSWNvbjpTdHJpbmcsZGlzYWJsZTpCb29sZWFufSx3YXRjaDp7b3JkZXI6ZnVuY3Rpb24oKXt0aGlzLl9fc3RlcHBlci5fX3NvcnRTdGVwcygpfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntpbm5lck9yZGVyOjAsZmlyc3Q6ITEsbGFzdDohMX19LGNvbXB1dGVkOntzdGVwSWNvbjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX19zdGVwcGVyO3JldHVybiB0aGlzLmFjdGl2ZT90aGlzLmFjdGl2ZUljb258fHQuYWN0aXZlSWNvbnx8dGhpcy4kcS5pY29uLnN0ZXBwZXIuYWN0aXZlOnRoaXMuZXJyb3I/dGhpcy5lcnJvckljb258fHQuZXJyb3JJY29ufHx0aGlzLiRxLmljb24uc3RlcHBlci5lcnJvcjp0aGlzLmRvbmUmJiF0aGlzLmRpc2FibGU/dGhpcy5kb25lSWNvbnx8dC5kb25lSWNvbnx8dGhpcy4kcS5pY29uLnN0ZXBwZXIuZG9uZTp0aGlzLmljb259LGFjdHVhbE9yZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlSW50KHRoaXMub3JkZXJ8fHRoaXMuaW5uZXJPcmRlciwxMCl9LGFjdGl2ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fc3RlcHBlci5zdGVwPT09dGhpcy5uYW1lfSxkb25lOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZGlzYWJsZSYmdGhpcy5fX3N0ZXBwZXIuY3VycmVudE9yZGVyPnRoaXMuaW5uZXJPcmRlcn0sd2FpdGluZzpmdW5jdGlvbigpe3JldHVybiF0aGlzLmRpc2FibGUmJnRoaXMuX19zdGVwcGVyLmN1cnJlbnRPcmRlcjx0aGlzLmlubmVyT3JkZXJ9LHN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5hY3R1YWxPcmRlcjtyZXR1cm57XCItd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwXCI6dCxcIi1tcy1mbGV4LW9yZGVyXCI6dCxvcmRlcjp0fX0sY2xhc3NlczpmdW5jdGlvbigpe2lmKCF0aGlzLl9fc3RlcHBlci52ZXJ0aWNhbCl7dmFyIHQ9W107cmV0dXJuIXRoaXMuYWN0aXZlJiZ0LnB1c2goXCJoaWRkZW5cIiksbnVsbCE9PXRoaXMuX19zdGVwcGVyLmFuaW1hdGlvbiYmdC5wdXNoKHRoaXMuX19zdGVwcGVyLmFuaW1hdGlvbiksdH19fSxtZXRob2RzOntzZWxlY3Q6ZnVuY3Rpb24oKXt0aGlzLmRvbmUmJnRoaXMuX19zdGVwcGVyLmdvVG9TdGVwKHRoaXMubmFtZSl9LF9fZ2V0Q29udGFpbmVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuYWN0aXZlP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXN0ZXBwZXItc3RlcC1jb250ZW50XCIsY2xhc3M6dGhpcy5jbGFzc2VzfSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc3RlcHBlci1zdGVwLWlubmVyXCJ9LHRoaXMuJHNsb3RzLmRlZmF1bHQpXSk6bnVsbDtyZXR1cm4gdGhpcy5fX3N0ZXBwZXIudmVydGljYWw/dChRU2xpZGVUcmFuc2l0aW9uLFtlXSk6ZX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLl9fc3RlcHBlci5fX3JlZ2lzdGVyU3RlcCh0aGlzKSx0aGlzLmRlZmF1bHQmJnRoaXMuc2VsZWN0KCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9fc3RlcHBlci5fX3VucmVnaXN0ZXJTdGVwKHRoaXMpfSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXN0ZXBwZXItc3RlcFwiLHN0eWxlOnRoaXMuc3R5bGV9LFt0aGlzLl9fc3RlcHBlci52ZXJ0aWNhbD90KFN0ZXBUYWIse3Byb3BzOnt2bTp0aGlzfX0pOm51bGwsdGhpcy5fX2dldENvbnRhaW5lcih0KV0pfX0sUVN0ZXBwZXI9e25hbWU6XCJRU3RlcHBlclwiLHByb3BzOnt2YWx1ZTpbTnVtYmVyLFN0cmluZ10sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LHZlcnRpY2FsOkJvb2xlYW4sYWx0ZXJuYXRpdmVMYWJlbHM6Qm9vbGVhbixub0hlYWRlck5hdmlnYXRpb246Qm9vbGVhbixjb250cmFjdGFibGU6Qm9vbGVhbixkb25lSWNvbjpCb29sZWFuLGFjdGl2ZUljb246Qm9vbGVhbixlcnJvckljb246Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybnthbmltYXRpb246bnVsbCxzdGVwOnRoaXMudmFsdWV8fG51bGwsc3RlcHM6W119fSxwcm92aWRlOmZ1bmN0aW9uKCl7cmV0dXJue19fc3RlcHBlcjp0aGlzfX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuZ29Ub1N0ZXAodCl9LHN0ZXA6ZnVuY3Rpb24odCxlKXtpZighdGhpcy52ZXJ0aWNhbCl7dmFyIGk9dGhpcy5zdGVwcy5maW5kSW5kZXgoZnVuY3Rpb24oZSl7cmV0dXJuIGUubmFtZT09PXR9KSxzPXRoaXMuc3RlcHMuZmluZEluZGV4KGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5hbWU9PT1lfSk7dGhpcy5hbmltYXRpb249aTxzP1wiYW5pbWF0ZS1mYWRlLWxlZnRcIjppPnM/XCJhbmltYXRlLWZhZGUtcmlnaHRcIjpudWxsfX19LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W1wicS1zdGVwcGVyLVwiKyh0aGlzLnZlcnRpY2FsP1widmVydGljYWxcIjpcImhvcml6b250YWxcIiksXCJ0ZXh0LVwiK3RoaXMuY29sb3JdO3JldHVybiB0aGlzLmNvbnRyYWN0YWJsZSYmdC5wdXNoKFwicS1zdGVwcGVyLWNvbnRyYWN0YWJsZVwiKSx0fSxoYXNTdGVwczpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0ZXBzLmxlbmd0aD4wfSxjdXJyZW50U3RlcDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYodGhpcy5oYXNTdGVwcylyZXR1cm4gdGhpcy5zdGVwcy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWU9PT10LnN0ZXB9KX0sY3VycmVudE9yZGVyOmZ1bmN0aW9uKCl7aWYodGhpcy5jdXJyZW50U3RlcClyZXR1cm4gdGhpcy5jdXJyZW50U3RlcC5pbm5lck9yZGVyfSxsZW5ndGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGVwcy5sZW5ndGh9fSxtZXRob2RzOntnb1RvU3RlcDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuc3RlcCE9PXQmJnZvaWQgMCE9PXQmJih0aGlzLnN0ZXA9dCx0aGlzLiRlbWl0KFwiaW5wdXRcIix0KSx0aGlzLiRlbWl0KFwic3RlcFwiLHQpLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkodCkhPT1KU09OLnN0cmluZ2lmeShlLnZhbHVlKSYmZS4kZW1pdChcImNoYW5nZVwiLHQpfSkpfSxuZXh0OmZ1bmN0aW9uKCl7dGhpcy5fX2dvKDEpfSxwcmV2aW91czpmdW5jdGlvbigpe3RoaXMuX19nbygtMSl9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5oYXNTdGVwcyYmdGhpcy5nb1RvU3RlcCh0aGlzLnN0ZXBzWzBdLm5hbWUpfSxfX2dvOmZ1bmN0aW9uKHQpe3ZhciBlLGk9dGhpcy5jdXJyZW50T3JkZXI7aWYodm9pZCAwPT09aSl7aWYoIXRoaXMuaGFzU3RlcHMpcmV0dXJuO2U9dGhpcy5zdGVwc1swXS5uYW1lfWVsc2V7ZG97aSs9dH13aGlsZShpPj0wJiZpPHRoaXMubGVuZ3RoLTEmJnRoaXMuc3RlcHNbaV0uZGlzYWJsZSk7aWYoaTwwfHxpPnRoaXMubGVuZ3RoLTF8fHRoaXMuc3RlcHNbaV0uZGlzYWJsZSlyZXR1cm47ZT10aGlzLnN0ZXBzW2ldLm5hbWV9dGhpcy5nb1RvU3RlcChlKX0sX19zb3J0U3RlcHM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuc3RlcHMuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0LmFjdHVhbE9yZGVyLWUuYWN0dWFsT3JkZXJ9KTt2YXIgZT10aGlzLnN0ZXBzLmxlbmd0aC0xO3RoaXMuc3RlcHMuZm9yRWFjaChmdW5jdGlvbih0LGkpe3QuaW5uZXJPcmRlcj1pLHQuZmlyc3Q9MD09PWksdC5sYXN0PWk9PT1lfSksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0LnN0ZXBzLnNvbWUoZnVuY3Rpb24odCl7cmV0dXJuIHQuYWN0aXZlfSl8fHQuZ29Ub1N0ZXAodC5zdGVwc1swXS5uYW1lKX0pfSxfX3JlZ2lzdGVyU3RlcDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zdGVwcy5wdXNoKHQpLHRoaXMuX19zb3J0U3RlcHMoKSx0aGlzfSxfX3VucmVnaXN0ZXJTdGVwOmZ1bmN0aW9uKHQpe3RoaXMuc3RlcHM9dGhpcy5zdGVwcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT10fSl9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5fX3NvcnRTdGVwcz1mcmFtZURlYm91bmNlKHRoaXMuX19zb3J0U3RlcHMpfSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXN0ZXBwZXIgY29sdW1uIG92ZXJmbG93LWhpZGRlbiByZWxhdGl2ZS1wb3NpdGlvblwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sW3RoaXMudmVydGljYWw/bnVsbDp0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zdGVwcGVyLWhlYWRlciByb3cgaXRlbXMtc3RyZXRjaCBqdXN0aWZ5LWJldHdlZW4gc2hhZG93LTFcIixjbGFzczp7XCJhbHRlcm5hdGl2ZS1sYWJlbHNcIjp0aGlzLmFsdGVybmF0aXZlTGFiZWxzfX0sdGhpcy5zdGVwcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQoU3RlcFRhYix7a2V5OmUubmFtZSxwcm9wczp7dm06ZX19KX0pKSx0aGlzLiRzbG90cy5kZWZhdWx0XSl9fSxRU3RlcHBlck5hdmlnYXRpb249e25hbWU6XCJRU3RlcHBlck5hdmlnYXRpb25cIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXN0ZXBwZXItbmF2IG9yZGVyLWxhc3Qgcm93IGl0ZW1zLWNlbnRlclwifSxbdGhpcy4kc2xvdHMubGVmdCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sXCJ9KSx0aGlzLiRzbG90cy5kZWZhdWx0XSl9fSxUYWJNaXhpbj17ZGlyZWN0aXZlczp7UmlwcGxlOlJpcHBsZX0scHJvcHM6e2xhYmVsOlN0cmluZyxpY29uOlN0cmluZyxkaXNhYmxlOkJvb2xlYW4saGlkZGVuOkJvb2xlYW4saGlkZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIlwifSxuYW1lOnt0eXBlOlN0cmluZyxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIHVpZCgpfX0sYWxlcnQ6Qm9vbGVhbixjb3VudDpbTnVtYmVyLFN0cmluZ10sY29sb3I6U3RyaW5nLHRhYmluZGV4Ok51bWJlcn0saW5qZWN0OntkYXRhOntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFUYWIvUVJvdXRlVGFiIGNvbXBvbmVudHMgbmVlZCB0byBiZSBjaGlsZCBvZiBRVGFic1wiKX19LHNlbGVjdFRhYjp7fX0sd2F0Y2g6e2FjdGl2ZTpmdW5jdGlvbih0KXt0JiZ0aGlzLiRlbWl0KFwic2VsZWN0XCIsdGhpcy5uYW1lKX19LGNvbXB1dGVkOnthY3RpdmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhLnRhYk5hbWU9PT10aGlzLm5hbWV9LGNsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD17YWN0aXZlOnRoaXMuYWN0aXZlLGhpZGRlbjp0aGlzLmhpZGRlbixkaXNhYmxlZDp0aGlzLmRpc2FibGUsXCJxLXRhYi1mdWxsXCI6dGhpcy5pY29uJiZ0aGlzLmxhYmVsLFwicS10YWItb25seS1sYWJlbFwiOiF0aGlzLmljb24mJnRoaXMubGFiZWwsXCJoaWRlLW5vbmVcIjohdGhpcy5oaWRlLFwiaGlkZS1pY29uXCI6XCJpY29uXCI9PT10aGlzLmhpZGUsXCJoaWRlLWxhYmVsXCI6XCJsYWJlbFwiPT09dGhpcy5oaWRlfSxlPXRoaXMuZGF0YS5pbnZlcnRlZD90aGlzLmNvbG9yfHx0aGlzLmRhdGEudGV4dENvbG9yfHx0aGlzLmRhdGEuY29sb3I6dGhpcy5jb2xvcjtyZXR1cm4gZSYmKHRbXCJ0ZXh0LVwiK2VdPSEwKSx0fSxiYXJTdHlsZTpmdW5jdGlvbigpe2lmKCF0aGlzLmFjdGl2ZXx8IXRoaXMuZGF0YS5oaWdobGlnaHQpcmV0dXJuXCJkaXNwbGF5OiBub25lO1wifSxjb21wdXRlZFRhYkluZGV4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGlzYWJsZXx8dGhpcy5hY3RpdmU/LTE6dGhpcy50YWJpbmRleHx8MH19LG1ldGhvZHM6e19fZ2V0VGFiTWV0YTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jb3VudD9bdChRQ2hpcCx7c3RhdGljQ2xhc3M6XCJxLXRhYi1tZXRhXCIscHJvcHM6e2Zsb2F0aW5nOiEwfX0sW3RoaXMuY291bnRdKV06dGhpcy5hbGVydD9bdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFiLW1ldGEgcS1kb3RcIn0pXTp2b2lkIDB9LF9fZ2V0VGFiQ29udGVudDpmdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5pY29uJiZlLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFiLWljb24tcGFyZW50IHJlbGF0aXZlLXBvc2l0aW9uXCJ9LFt0KFFJY29uLHtzdGF0aWNDbGFzczpcInEtdGFiLWljb25cIixwcm9wczp7bmFtZTp0aGlzLmljb259fSksdGhpcy5fX2dldFRhYk1ldGEodCldKSksdGhpcy5sYWJlbCYmZS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYi1sYWJlbC1wYXJlbnQgcmVsYXRpdmUtcG9zaXRpb25cIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYi1sYWJlbFwifSxbdGhpcy5sYWJlbF0pLHRoaXMuX19nZXRUYWJNZXRhKHQpXSkpLChlPWUuY29uY2F0KHRoaXMuJHNsb3RzLmRlZmF1bHQpKS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYnMtYmFyXCIsc3R5bGU6dGhpcy5iYXJTdHlsZSxjbGFzczp0aGlzLmRhdGEudW5kZXJsaW5lQ2xhc3N9KSksZS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYi1mb2N1cy1oZWxwZXIgYWJzb2x1dGUtZnVsbFwiLGF0dHJzOnt0YWJpbmRleDp0aGlzLmNvbXB1dGVkVGFiSW5kZXh9fSkpLGV9fX0sUVJvdXRlVGFiPXtuYW1lOlwiUVJvdXRlVGFiXCIsbWl4aW5zOltUYWJNaXhpbixSb3V0ZXJMaW5rTWl4aW5dLGluamVjdDp7c2VsZWN0VGFiUm91dGVyOnt9fSx3YXRjaDp7JHJvdXRlOmZ1bmN0aW9uKCl7dGhpcy5jaGVja0lmU2VsZWN0ZWQoKX19LG1ldGhvZHM6e3NlbGVjdDpmdW5jdGlvbigpe3RoaXMuJGVtaXQoXCJjbGlja1wiLHRoaXMubmFtZSksdGhpcy5kaXNhYmxlfHwodGhpcy4kZWwuZGlzcGF0Y2hFdmVudChldnQpLHRoaXMuc2VsZWN0VGFiUm91dGVyKHt2YWx1ZTp0aGlzLm5hbWUsc2VsZWN0ZWQ6ITB9KSl9LGNoZWNrSWZTZWxlY3RlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtpZih0LiRlbC5jbGFzc0xpc3QuY29udGFpbnMoXCJxLXJvdXRlci1saW5rLWV4YWN0LWFjdGl2ZVwiKSl0LnNlbGVjdFRhYlJvdXRlcih7dmFsdWU6dC5uYW1lLHNlbGVjdGFibGU6ITAsZXhhY3Q6ITB9KTtlbHNlIGlmKHQuJGVsLmNsYXNzTGlzdC5jb250YWlucyhcInEtcm91dGVyLWxpbmstYWN0aXZlXCIpKXt2YXIgZT10LiRyb3V0ZXIucmVzb2x2ZSh0LnRvLHZvaWQgMCx0LmFwcGVuZCk7dC5zZWxlY3RUYWJSb3V0ZXIoe3ZhbHVlOnQubmFtZSxzZWxlY3RhYmxlOiEwLHByaW9yaXR5OmUuaHJlZi5sZW5ndGh9KX1lbHNlIHQuYWN0aXZlJiZ0LnNlbGVjdFRhYlJvdXRlcih7dmFsdWU6bnVsbH0pfSl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5jaGVja0lmU2VsZWN0ZWQoKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJyb3V0ZXItbGlua1wiLHtwcm9wczp7dGFnOlwiYVwiLHRvOnRoaXMudG8sZXhhY3Q6dGhpcy5leGFjdCxhcHBlbmQ6dGhpcy5hcHBlbmQscmVwbGFjZTp0aGlzLnJlcGxhY2UsZXZlbnQ6cm91dGVyTGlua0V2ZW50TmFtZSxhY3RpdmVDbGFzczpcInEtcm91dGVyLWxpbmstYWN0aXZlXCIsZXhhY3RBY3RpdmVDbGFzczpcInEtcm91dGVyLWxpbmstZXhhY3QtYWN0aXZlXCJ9LGF0dHJzOnt0YWJpbmRleDotMX0sbmF0aXZlT246e2NsaWNrOnRoaXMuc2VsZWN0LGtleXVwOmZ1bmN0aW9uKHQpe3JldHVybiAxMz09PXQua2V5Q29kZSYmZS5zZWxlY3QodCl9fSxzdGF0aWNDbGFzczpcInEtbGluayBxLXRhYiBjb2x1bW4gZmxleC1jZW50ZXIgcmVsYXRpdmUtcG9zaXRpb25cIixjbGFzczp0aGlzLmNsYXNzZXMsZGlyZWN0aXZlczpbe25hbWU6XCJyaXBwbGVcIn1dfSx0aGlzLl9fZ2V0VGFiQ29udGVudCh0KSl9fSxRVGFiPXtuYW1lOlwiUVRhYlwiLG1peGluczpbVGFiTWl4aW5dLHByb3BzOntkZWZhdWx0OkJvb2xlYW59LG1ldGhvZHM6e3NlbGVjdDpmdW5jdGlvbigpe3RoaXMuJGVtaXQoXCJjbGlja1wiLHRoaXMubmFtZSksdGhpcy5kaXNhYmxlfHx0aGlzLnNlbGVjdFRhYih0aGlzLm5hbWUpfX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMuZGVmYXVsdCYmIXRoaXMuZGlzYWJsZSYmdGhpcy5zZWxlY3QoKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYiBjb2x1bW4gZmxleC1jZW50ZXIgcmVsYXRpdmUtcG9zaXRpb25cIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e1wiZGF0YS10YWItbmFtZVwiOnRoaXMubmFtZX0sb246e2NsaWNrOnRoaXMuc2VsZWN0LGtleXVwOmZ1bmN0aW9uKHQpe3JldHVybiAxMz09PXQua2V5Q29kZSYmZS5zZWxlY3QodCl9fSxkaXJlY3RpdmVzOlt7bmFtZTpcInJpcHBsZVwifV19LHRoaXMuX19nZXRUYWJDb250ZW50KHQpKX19LFFUYWJQYW5lPXtuYW1lOlwiUVRhYlBhbmVcIixpbmplY3Q6e2RhdGE6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUVRhYlBhbmUgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUVRhYnNcIil9fX0scHJvcHM6e25hbWU6e3R5cGU6U3RyaW5nLHJlcXVpcmVkOiEwfSxrZWVwQWxpdmU6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzaG93bjohMX19LGNvbXB1dGVkOnthY3RpdmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhLnRhYk5hbWU9PT10aGlzLm5hbWV9LGNsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm57aGlkZGVuOiF0aGlzLmFjdGl2ZSxcImFuaW1hdGUtZmFkZS1sZWZ0XCI6XCJsZWZ0XCI9PT10aGlzLmRhdGEuZGlyZWN0aW9uLFwiYW5pbWF0ZS1mYWRlLXJpZ2h0XCI6XCJyaWdodFwiPT09dGhpcy5kYXRhLmRpcmVjdGlvbn19fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFiLXBhbmVcIixjbGFzczp0aGlzLmNsYXNzZXN9LHRoaXMuJHNsb3RzLmRlZmF1bHQpO2lmKHRoaXMua2VlcEFsaXZlKXtpZighdGhpcy5zaG93biYmIXRoaXMuYWN0aXZlKXJldHVybjtyZXR1cm4gdGhpcy5zaG93bj0hMCxlfWlmKHRoaXMuc2hvd249dGhpcy5hY3RpdmUsdGhpcy5hY3RpdmUpcmV0dXJuIGV9fSxzY3JvbGxOYXZpZ2F0aW9uU3BlZWQ9NSxkZWJvdW5jZURlbGF5PTUwO2Z1bmN0aW9uIGdldFVuZGVybGluZUNsYXNzKHQpe2lmKHQpcmV0dXJuXCJ0ZXh0LVwiK3R9dmFyIFFUYWJzPXtuYW1lOlwiUVRhYnNcIixwcm92aWRlOmZ1bmN0aW9uKCl7cmV0dXJue2RhdGE6dGhpcy5kYXRhLHNlbGVjdFRhYjp0aGlzLnNlbGVjdFRhYixzZWxlY3RUYWJSb3V0ZXI6dGhpcy5zZWxlY3RUYWJSb3V0ZXJ9fSxkaXJlY3RpdmVzOntUb3VjaFN3aXBlOlRvdWNoU3dpcGV9LHByb3BzOnt2YWx1ZTpTdHJpbmcsYWxpZ246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJsZWZ0XCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcImxlZnRcIixcImNlbnRlclwiLFwicmlnaHRcIixcImp1c3RpZnlcIl0uaW5jbHVkZXModCl9fSxwb3NpdGlvbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInRvcFwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJ0b3BcIixcImJvdHRvbVwiXS5pbmNsdWRlcyh0KX19LGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSx0ZXh0Q29sb3I6U3RyaW5nLGludmVydGVkOkJvb2xlYW4sdHdvTGluZXM6Qm9vbGVhbixnbG9zc3k6Qm9vbGVhbixhbmltYXRlZDpCb29sZWFuLHN3aXBlYWJsZTpCb29sZWFuLHBhbmVzQ29udGFpbmVyQ2xhc3M6U3RyaW5nLHVuZGVybGluZUNvbG9yOlN0cmluZ30sZGF0YTpmdW5jdGlvbigpe3JldHVybntjdXJyZW50RWw6bnVsbCxwb3NiYXI6e3dpZHRoOjAsbGVmdDowfSxkYXRhOntoaWdobGlnaHQ6ITAsdGFiTmFtZTp0aGlzLnZhbHVlfHxcIlwiLGNvbG9yOnRoaXMuY29sb3IsdGV4dENvbG9yOnRoaXMudGV4dENvbG9yLGludmVydGVkOnRoaXMuaW52ZXJ0ZWQsdW5kZXJsaW5lQ2xhc3M6Z2V0VW5kZXJsaW5lQ2xhc3ModGhpcy51bmRlcmxpbmVDb2xvciksZGlyZWN0aW9uOm51bGx9fX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuc2VsZWN0VGFiKHQpfSxjb2xvcjpmdW5jdGlvbih0KXt0aGlzLmRhdGEuY29sb3I9dH0sdGV4dENvbG9yOmZ1bmN0aW9uKHQpe3RoaXMuZGF0YS50ZXh0Q29sb3I9dH0saW52ZXJ0ZWQ6ZnVuY3Rpb24odCl7dGhpcy5kYXRhLmludmVydGVkPXR9LHVuZGVybGluZUNvbG9yOmZ1bmN0aW9uKHQpe3RoaXMuZGF0YS51bmRlcmxpbmVDbGFzcz1nZXRVbmRlcmxpbmVDbGFzcyh0KX19LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuW1wicS10YWJzLXBvc2l0aW9uLVwiK3RoaXMucG9zaXRpb24sXCJxLXRhYnMtXCIrKHRoaXMuaW52ZXJ0ZWQ/XCJpbnZlcnRlZFwiOlwibm9ybWFsXCIpLHRoaXMudHdvTGluZXM/XCJxLXRhYnMtdHdvLWxpbmVzXCI6XCJcIl19LGlubmVyQ2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVtcInEtdGFicy1hbGlnbi1cIit0aGlzLmFsaWduXTtyZXR1cm4gdGhpcy5nbG9zc3kmJnQucHVzaChcImdsb3NzeVwiKSx0aGlzLmludmVydGVkP3QucHVzaChcInRleHQtXCIrKHRoaXMudGV4dENvbG9yfHx0aGlzLmNvbG9yKSk6KHQucHVzaChcImJnLVwiK3RoaXMuY29sb3IpLHQucHVzaChcInRleHQtXCIrKHRoaXMudGV4dENvbG9yfHxcIndoaXRlXCIpKSksdH0scG9zYmFyQ2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmludmVydGVkJiZ0LnB1c2goXCJ0ZXh0LVwiKyh0aGlzLnRleHRDb2xvcnx8dGhpcy5jb2xvcikpLHRoaXMuZGF0YS5oaWdobGlnaHQmJnQucHVzaChcImhpZ2hsaWdodFwiKSx0fX0sbWV0aG9kczp7Z286ZnVuY3Rpb24odCl7dmFyIGU9MDtpZih0aGlzLmRhdGEudGFiTmFtZSl7dmFyIGk9dGhpcy4kcmVmcy5zY3JvbGxlci5xdWVyeVNlbGVjdG9yKCdbZGF0YS10YWItbmFtZT1cIicrdGhpcy5kYXRhLnRhYk5hbWUrJ1wiXScpO2kmJihlPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwodGhpcy4kcmVmcy5zY3JvbGxlci5jaGlsZHJlbixpKSl9dmFyIHM9dGhpcy4kcmVmcy5zY3JvbGxlci5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtdGFiLW5hbWVdXCIpOyhlKz10KT4tMSYmZTxzLmxlbmd0aCYmdGhpcy5zZWxlY3RUYWIoc1tlXS5nZXRBdHRyaWJ1dGUoXCJkYXRhLXRhYi1uYW1lXCIpKX0scHJldmlvdXM6ZnVuY3Rpb24oKXt0aGlzLmdvKC0xKX0sbmV4dDpmdW5jdGlvbigpe3RoaXMuZ28oMSl9LHNlbGVjdFRhYjpmdW5jdGlvbih0KXtpZih0aGlzLmRhdGEudGFiTmFtZSE9PXQpe3RoaXMuZGF0YS50YWJOYW1lPXQ7dmFyIGU9dGhpcy5fX2dldFRhYkVsQnlOYW1lKHQpO2lmKGUpaWYodGhpcy5fX3Njcm9sbFRvVGFiKGUpLHRoaXMuY3VycmVudEVsPWUsdGhpcy5vbGRFbCl7aWYodGhpcy5hbmltYXRlZCl7dmFyIGk9dGhpcy4kcmVmcy5zY3JvbGxlci5jaGlsZHJlbjt0aGlzLmRhdGEuZGlyZWN0aW9uPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoaSxlKTxBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGksdGhpcy5vbGRFbCk/XCJsZWZ0XCI6XCJyaWdodFwifXRoaXMuX19yZXBvc2l0aW9uQmFyKCl9ZWxzZSB0aGlzLm9sZEVsPWU7ZWxzZSB0aGlzLm9sZEVsPW51bGwsdGhpcy5kYXRhLmRpcmVjdGlvbj1udWxsO3RoaXMuJGVtaXQoXCJpbnB1dFwiLHQsdGhpcy5kYXRhLmRpcmVjdGlvbiksdGhpcy4kZW1pdChcInNlbGVjdFwiLHQsdGhpcy5kYXRhLmRpcmVjdGlvbil9fSxzZWxlY3RUYWJSb3V0ZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXQudmFsdWUscz10LnNlbGVjdGFibGUsbj10LmV4YWN0LG89dC5zZWxlY3RlZCxyPXQucHJpb3JpdHksYT0hdGhpcy5idWZmZXIubGVuZ3RoLGw9YT8tMTp0aGlzLmJ1ZmZlci5maW5kSW5kZXgoZnVuY3Rpb24odCl7cmV0dXJuIHQudmFsdWU9PT1pfSk7aWYobD4tMSl7dmFyIGM9dGhpcy5idWZmZXJbbF07biYmKGMuZXhhY3Q9bikscyYmKGMuc2VsZWN0YWJsZT1zKSxvJiYoYy5zZWxlY3RlZD1vKSxyJiYoYy5wcmlvcml0eT1yKX1lbHNlIHRoaXMuYnVmZmVyLnB1c2godCk7YSYmKHRoaXMuYnVmZmVyVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PWUuYnVmZmVyLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuZXhhY3QmJnQuc2VsZWN0ZWR9KXx8ZS5idWZmZXIuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5zZWxlY3RhYmxlJiZ0LnNlbGVjdGVkfSl8fGUuYnVmZmVyLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuZXhhY3R9KXx8ZS5idWZmZXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNlbGVjdGFibGV9KS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUucHJpb3JpdHktdC5wcmlvcml0eX0pWzBdfHxlLmJ1ZmZlclswXTtlLmJ1ZmZlci5sZW5ndGg9MCxlLnNlbGVjdFRhYih0LnZhbHVlKX0sMTAwKSl9LF9fc3dpcGU6ZnVuY3Rpb24odCl7dGhpcy5nbyhcImxlZnRcIj09PXQuZGlyZWN0aW9uPzE6LTEpfSxfX3JlcG9zaXRpb25CYXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKTt2YXIgZT0hMSxpPXRoaXMuJHJlZnMucG9zYmFyLHM9dGhpcy5jdXJyZW50RWw7aWYoITEhPT10aGlzLmRhdGEuaGlnaGxpZ2h0JiYodGhpcy5kYXRhLmhpZ2hsaWdodD0hMSxlPSEwKSwhcylyZXR1cm4gdGhpcy5maW5hbFBvc2Jhcj17d2lkdGg6MCxsZWZ0OjB9LHZvaWQgdGhpcy5fX3NldFBvc2l0aW9uQmFyKDAsMCk7dmFyIG49aS5wYXJlbnROb2RlLm9mZnNldExlZnQ7ZSYmdGhpcy5vbGRFbCYmdGhpcy5fX3NldFBvc2l0aW9uQmFyKHRoaXMub2xkRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsdGhpcy5vbGRFbC5vZmZzZXRMZWZ0LW4pLHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlPXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsbz1zLm9mZnNldExlZnQtbjtpLmNsYXNzTGlzdC5yZW1vdmUoXCJjb250cmFjdFwiKSx0Lm9sZEVsPXMsdC5maW5hbFBvc2Jhcj17d2lkdGg6ZSxsZWZ0Om99LHQuX19zZXRQb3NpdGlvbkJhcih0LnBvc2Jhci5sZWZ0PG8/bytlLXQucG9zYmFyLmxlZnQ6dC5wb3NiYXIubGVmdCt0LnBvc2Jhci53aWR0aC1vLHQucG9zYmFyLmxlZnQ8bz90LnBvc2Jhci5sZWZ0Om8pfSwyMCl9LF9fc2V0UG9zaXRpb25CYXI6ZnVuY3Rpb24odCxlKXtpZih2b2lkIDA9PT10JiYodD0wKSx2b2lkIDA9PT1lJiYoZT0wKSx0aGlzLnBvc2Jhci53aWR0aCE9PXR8fHRoaXMucG9zYmFyLmxlZnQhPT1lKXt0aGlzLnBvc2Jhcj17d2lkdGg6dCxsZWZ0OmV9O3ZhciBpPXRoaXMuJHEuaTE4bi5ydGw/ZSt0OmU7dGhpcy4kcmVmcy5wb3NiYXIuc3R5bGUudHJhbnNmb3JtPVwidHJhbnNsYXRlWChcIitpK1wicHgpIHNjYWxlWChcIit0K1wiKVwifWVsc2UgdGhpcy5fX3VwZGF0ZVBvc2JhclRyYW5zaXRpb24oKX0sX191cGRhdGVQb3NiYXJUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpcy5maW5hbFBvc2Jhci53aWR0aD09PXRoaXMucG9zYmFyLndpZHRoJiZ0aGlzLmZpbmFsUG9zYmFyLmxlZnQ9PT10aGlzLnBvc2Jhci5sZWZ0KXJldHVybiB0aGlzLnBvc2Jhcj17fSx2b2lkKCEwIT09dGhpcy5kYXRhLmhpZ2hsaWdodCYmKHRoaXMuZGF0YS5oaWdobGlnaHQ9ITApKTt0aGlzLiRyZWZzLnBvc2Jhci5jbGFzc0xpc3QuYWRkKFwiY29udHJhY3RcIiksdGhpcy5fX3NldFBvc2l0aW9uQmFyKHRoaXMuZmluYWxQb3NiYXIud2lkdGgsdGhpcy5maW5hbFBvc2Jhci5sZWZ0KX0sX19yZWRyYXc6ZnVuY3Rpb24oKXt0aGlzLiRxLnBsYXRmb3JtLmlzLmRlc2t0b3AmJih0aGlzLnNjcm9sbGVyV2lkdGg9d2lkdGgodGhpcy4kcmVmcy5zY3JvbGxlciksMD09PXRoaXMuc2Nyb2xsZXJXaWR0aCYmMD09PXRoaXMuJHJlZnMuc2Nyb2xsZXIuc2Nyb2xsV2lkdGh8fCh0aGlzLnNjcm9sbGVyV2lkdGgrNTx0aGlzLiRyZWZzLnNjcm9sbGVyLnNjcm9sbFdpZHRoPyh0aGlzLiRyZWZzLnRhYnMuY2xhc3NMaXN0LmFkZChcInNjcm9sbGFibGVcIiksdGhpcy5zY3JvbGxhYmxlPSEwLHRoaXMuX191cGRhdGVTY3JvbGxJbmRpY2F0b3IoKSk6KHRoaXMuJHJlZnMudGFicy5jbGFzc0xpc3QucmVtb3ZlKFwic2Nyb2xsYWJsZVwiKSx0aGlzLnNjcm9sbGFibGU9ITEpKSl9LF9fdXBkYXRlU2Nyb2xsSW5kaWNhdG9yOmZ1bmN0aW9uKCl7aWYodGhpcy4kcS5wbGF0Zm9ybS5pcy5kZXNrdG9wJiZ0aGlzLnNjcm9sbGFibGUpe3ZhciB0PXRoaXMuJHJlZnMuc2Nyb2xsZXIuc2Nyb2xsTGVmdCt3aWR0aCh0aGlzLiRyZWZzLnNjcm9sbGVyKSs1Pj10aGlzLiRyZWZzLnNjcm9sbGVyLnNjcm9sbFdpZHRoP1wiYWRkXCI6XCJyZW1vdmVcIjt0aGlzLiRyZWZzLmxlZnRTY3JvbGwuY2xhc3NMaXN0W3RoaXMuJHJlZnMuc2Nyb2xsZXIuc2Nyb2xsTGVmdDw9MD9cImFkZFwiOlwicmVtb3ZlXCJdKFwiZGlzYWJsZWRcIiksdGhpcy4kcmVmcy5yaWdodFNjcm9sbC5jbGFzc0xpc3RbdF0oXCJkaXNhYmxlZFwiKX19LF9fZ2V0VGFiRWxCeU5hbWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy4kY2hpbGRyZW4uZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lPT09dCYmZS4kZWwmJjE9PT1lLiRlbC5ub2RlVHlwZX0pO2lmKGUpcmV0dXJuIGUuJGVsfSxfX2ZpbmRUYWJBbmRTY3JvbGw6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpLl9fc2Nyb2xsVG9UYWIoaS5fX2dldFRhYkVsQnlOYW1lKHQpLGUpfSw0KmRlYm91bmNlRGVsYXkpfSxfX3Njcm9sbFRvVGFiOmZ1bmN0aW9uKHQsZSl7aWYodCYmdGhpcy5zY3JvbGxhYmxlKXt2YXIgaT10aGlzLiRyZWZzLnNjcm9sbGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPXMud2lkdGgsbz1zLmxlZnQtaS5sZWZ0O288MD9lP3RoaXMuJHJlZnMuc2Nyb2xsZXIuc2Nyb2xsTGVmdCs9bzp0aGlzLl9fYW5pbVNjcm9sbFRvKHRoaXMuJHJlZnMuc2Nyb2xsZXIuc2Nyb2xsTGVmdCtvKToobys9bi10aGlzLiRyZWZzLnNjcm9sbGVyLm9mZnNldFdpZHRoKT4wJiYoZT90aGlzLiRyZWZzLnNjcm9sbGVyLnNjcm9sbExlZnQrPW86dGhpcy5fX2FuaW1TY3JvbGxUbyh0aGlzLiRyZWZzLnNjcm9sbGVyLnNjcm9sbExlZnQrbykpfX0sX19hbmltU2Nyb2xsVG86ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9fc3RvcEFuaW1TY3JvbGwoKSx0aGlzLl9fc2Nyb2xsVG93YXJkcyh0KSx0aGlzLnNjcm9sbFRpbWVyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7ZS5fX3Njcm9sbFRvd2FyZHModCkmJmUuX19zdG9wQW5pbVNjcm9sbCgpfSw1KX0sX19zY3JvbGxUb1N0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fX2FuaW1TY3JvbGxUbygwKX0sX19zY3JvbGxUb0VuZDpmdW5jdGlvbigpe3RoaXMuX19hbmltU2Nyb2xsVG8oOTk5OSl9LF9fc3RvcEFuaW1TY3JvbGw6ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKHRoaXMuc2Nyb2xsVGltZXIpfSxfX3Njcm9sbFRvd2FyZHM6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy4kcmVmcy5zY3JvbGxlci5zY3JvbGxMZWZ0LGk9dDxlPy0xOjEscz0hMTtyZXR1cm4oZSs9aSpzY3JvbGxOYXZpZ2F0aW9uU3BlZWQpPDA/KHM9ITAsZT0wKTooLTE9PT1pJiZlPD10fHwxPT09aSYmZT49dCkmJihzPSEwLGU9dCksdGhpcy4kcmVmcy5zY3JvbGxlci5zY3JvbGxMZWZ0PWUsc319LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFicyBmbGV4IG5vLXdyYXAgb3ZlcmZsb3ctaGlkZGVuXCIsY2xhc3M6dGhpcy5jbGFzc2VzfSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFicy1oZWFkIHJvd1wiLHJlZjpcInRhYnNcIixjbGFzczp0aGlzLmlubmVyQ2xhc3Nlc30sW3QoXCJkaXZcIix7cmVmOlwic2Nyb2xsZXJcIixzdGF0aWNDbGFzczpcInEtdGFicy1zY3JvbGxlciByb3cgbm8td3JhcFwifSxbdGhpcy4kc2xvdHMudGl0bGUsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJlbGF0aXZlLXBvc2l0aW9uIHNlbGYtc3RyZXRjaCBxLXRhYnMtZ2xvYmFsLWJhci1jb250YWluZXJcIixjbGFzczp0aGlzLnBvc2JhckNsYXNzZXN9LFt0KFwiZGl2XCIse3JlZjpcInBvc2JhclwiLHN0YXRpY0NsYXNzOlwicS10YWJzLWJhciBxLXRhYnMtZ2xvYmFsLWJhclwiLGNsYXNzOnRoaXMuZGF0YS51bmRlcmxpbmVDbGFzcyxvbjp7dHJhbnNpdGlvbmVuZDp0aGlzLl9fdXBkYXRlUG9zYmFyVHJhbnNpdGlvbn19KV0pXSksdChcImRpdlwiLHtyZWY6XCJsZWZ0U2Nyb2xsXCIsc3RhdGljQ2xhc3M6XCJyb3cgZmxleC1jZW50ZXIgcS10YWJzLWxlZnQtc2Nyb2xsXCIsb246e21vdXNlZG93bjp0aGlzLl9fc2Nyb2xsVG9TdGFydCx0b3VjaHN0YXJ0OnRoaXMuX19zY3JvbGxUb1N0YXJ0LG1vdXNldXA6dGhpcy5fX3N0b3BBbmltU2Nyb2xsLG1vdXNlbGVhdmU6dGhpcy5fX3N0b3BBbmltU2Nyb2xsLHRvdWNoZW5kOnRoaXMuX19zdG9wQW5pbVNjcm9sbH19LFt0KFFJY29uLHtwcm9wczp7bmFtZTp0aGlzLiRxLmljb24udGFicy5sZWZ0fX0pXSksdChcImRpdlwiLHtyZWY6XCJyaWdodFNjcm9sbFwiLHN0YXRpY0NsYXNzOlwicm93IGZsZXgtY2VudGVyIHEtdGFicy1yaWdodC1zY3JvbGxcIixvbjp7bW91c2Vkb3duOnRoaXMuX19zY3JvbGxUb0VuZCx0b3VjaHN0YXJ0OnRoaXMuX19zY3JvbGxUb0VuZCxtb3VzZXVwOnRoaXMuX19zdG9wQW5pbVNjcm9sbCxtb3VzZWxlYXZlOnRoaXMuX19zdG9wQW5pbVNjcm9sbCx0b3VjaGVuZDp0aGlzLl9fc3RvcEFuaW1TY3JvbGx9fSxbdChRSWNvbix7cHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLnRhYnMucmlnaHR9fSldKV0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYnMtcGFuZXNcIixjbGFzczp0aGlzLnBhbmVzQ29udGFpbmVyQ2xhc3MsZGlyZWN0aXZlczp0aGlzLnN3aXBlYWJsZT9be25hbWU6XCJ0b3VjaC1zd2lwZVwiLHZhbHVlOnRoaXMuX19zd2lwZX1dOm51bGx9LHRoaXMuJHNsb3RzLmRlZmF1bHQpXSl9LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnRpbWVyPW51bGwsdGhpcy5zY3JvbGxUaW1lcj1udWxsLHRoaXMuYnVmZmVyVGltZXI9bnVsbCx0aGlzLmJ1ZmZlcj1bXSx0aGlzLnNjcm9sbGFibGU9IXRoaXMuJHEucGxhdGZvcm0uaXMuZGVza3RvcCx0aGlzLl9fcmVkcmF3PWRlYm91bmNlKHRoaXMuX19yZWRyYXcsZGVib3VuY2VEZWxheSksdGhpcy5fX3VwZGF0ZVNjcm9sbEluZGljYXRvcj1kZWJvdW5jZSh0aGlzLl9fdXBkYXRlU2Nyb2xsSW5kaWNhdG9yLGRlYm91bmNlRGVsYXkpfSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3QuJHJlZnMuc2Nyb2xsZXImJih0LiRyZWZzLnNjcm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0Ll9fdXBkYXRlU2Nyb2xsSW5kaWNhdG9yLGxpc3Rlbk9wdHMucGFzc2l2ZSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0Ll9fcmVkcmF3LGxpc3Rlbk9wdHMucGFzc2l2ZSksXCJcIiE9PXQuZGF0YS50YWJOYW1lJiZ0LnZhbHVlJiZ0LnNlbGVjdFRhYih0LnZhbHVlKSx0Ll9fcmVkcmF3KCksdC5fX2ZpbmRUYWJBbmRTY3JvbGwodC5kYXRhLnRhYk5hbWUsITApKX0pfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLGNsZWFyVGltZW91dCh0aGlzLmJ1ZmZlclRpbWVyKSx0aGlzLl9fc3RvcEFuaW1TY3JvbGwoKSx0aGlzLiRyZWZzLnNjcm9sbGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0aGlzLl9fdXBkYXRlU2Nyb2xsSW5kaWNhdG9yLGxpc3Rlbk9wdHMucGFzc2l2ZSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0aGlzLl9fcmVkcmF3LGxpc3Rlbk9wdHMucGFzc2l2ZSksdGhpcy5fX3JlZHJhdy5jYW5jZWwoKSx0aGlzLl9fdXBkYXRlU2Nyb2xsSW5kaWNhdG9yLmNhbmNlbCgpfX0sVG9wPXtjb21wdXRlZDp7bWFyZ2luYWxzUHJvcHM6ZnVuY3Rpb24oKXtyZXR1cm57cGFnaW5hdGlvbjp0aGlzLmNvbXB1dGVkUGFnaW5hdGlvbixwYWdlc051bWJlcjp0aGlzLnBhZ2VzTnVtYmVyLGlzRmlyc3RQYWdlOnRoaXMuaXNGaXJzdFBhZ2UsaXNMYXN0UGFnZTp0aGlzLmlzTGFzdFBhZ2UscHJldlBhZ2U6dGhpcy5wcmV2UGFnZSxuZXh0UGFnZTp0aGlzLm5leHRQYWdlLGluRnVsbHNjcmVlbjp0aGlzLmluRnVsbHNjcmVlbix0b2dnbGVGdWxsc2NyZWVuOnRoaXMudG9nZ2xlRnVsbHNjcmVlbn19fSxtZXRob2RzOntnZXRUb3A6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy4kc2NvcGVkU2xvdHMudG9wLGk9dGhpcy4kc2NvcGVkU2xvdHNbXCJ0b3AtbGVmdFwiXSxzPXRoaXMuJHNjb3BlZFNsb3RzW1widG9wLXJpZ2h0XCJdLG49dGhpcy4kc2NvcGVkU2xvdHNbXCJ0b3Atc2VsZWN0aW9uXCJdLG89dGhpcy5oYXNTZWxlY3Rpb25Nb2RlJiZuJiZ0aGlzLnJvd3NTZWxlY3RlZE51bWJlcj4wLHI9XCJxLXRhYmxlLXRvcCByZWxhdGl2ZS1wb3NpdGlvbiByb3cgaXRlbXMtY2VudGVyXCIsYT1bXTtyZXR1cm4gZT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOnJ9LFtlKHRoaXMubWFyZ2luYWxzUHJvcHMpXSk6KG8/YS5wdXNoKG4odGhpcy5tYXJnaW5hbHNQcm9wcykpOmk/YS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWNvbnRyb2xcIn0sW2kodGhpcy5tYXJnaW5hbHNQcm9wcyldKSk6dGhpcy50aXRsZSYmYS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWNvbnRyb2xcIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLXRpdGxlXCJ9LHRoaXMudGl0bGUpXSkpLHMmJihhLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtc2VwYXJhdG9yIGNvbFwifSkpLGEucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1jb250cm9sXCJ9LFtzKHRoaXMubWFyZ2luYWxzUHJvcHMpXSkpKSwwIT09YS5sZW5ndGg/dChcImRpdlwiLHtzdGF0aWNDbGFzczpyfSxhKTp2b2lkIDApfX19LFFUaD17bmFtZTpcIlFUaFwiLHByb3BzOntwcm9wczpPYmplY3QsYXV0b1dpZHRoOkJvb2xlYW59LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZSxpPXRoaXM7aWYoIXRoaXMucHJvcHMpcmV0dXJuIHQoXCJ0ZFwiLHtjbGFzczp7XCJxLXRhYmxlLWNvbC1hdXRvLXdpZHRoXCI6dGhpcy5hdXRvV2lkdGh9fSx0aGlzLiRzbG90cy5kZWZhdWx0KTt2YXIgcz10aGlzLiR2bm9kZS5rZXksbj1bXS5jb25jYXQodGhpcy4kc2xvdHMuZGVmYXVsdCk7aWYocyl7aWYoIShlPXRoaXMucHJvcHMuY29sc01hcFtzXSkpcmV0dXJufWVsc2UgZT10aGlzLnByb3BzLmNvbDtlLnNvcnRhYmxlJiZuW1wicmlnaHRcIj09PWUuYWxpZ24/XCJ1bnNoaWZ0XCI6XCJwdXNoXCJdKHQoUUljb24se3Byb3BzOntuYW1lOnRoaXMuJHEuaWNvbi50YWJsZS5hcnJvd1VwfSxzdGF0aWNDbGFzczplLl9faWNvbkNsYXNzfSkpO3JldHVybiB0KFwidGhcIix7Y2xhc3M6W2UuX190aENsYXNzLHtcInEtdGFibGUtY29sLWF1dG8td2lkdGhcIjp0aGlzLmF1dG9XaWR0aH1dLG9uOmUuc29ydGFibGU/e2NsaWNrOmZ1bmN0aW9uKCl7aS5wcm9wcy5zb3J0KGUpfX06bnVsbH0sbil9fSxUYWJsZUhlYWRlcj17bWV0aG9kczp7Z2V0VGFibGVIZWFkZXI6ZnVuY3Rpb24odCl7dmFyIGU9W3RoaXMuZ2V0VGFibGVIZWFkZXJSb3codCldO3JldHVybiB0aGlzLmxvYWRpbmcmJmUucHVzaCh0KFwidHJcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLXByb2dyZXNzIGFuaW1hdGUtZmFkZVwifSxbdChcInRkXCIse2F0dHJzOntjb2xzcGFuOlwiMTAwJVwifX0sW3QoUVByb2dyZXNzLHtwcm9wczp7Y29sb3I6dGhpcy5jb2xvcixpbmRldGVybWluYXRlOiEwLGhlaWdodDpcIjJweFwifX0pXSldKSksdChcInRoZWFkXCIsZSl9LGdldFRhYmxlSGVhZGVyUm93OmZ1bmN0aW9uKHQpe3ZhciBlLGk9dGhpcyxzPXRoaXMuJHNjb3BlZFNsb3RzLmhlYWRlcixuPXRoaXMuJHNjb3BlZFNsb3RzW1wiaGVhZGVyLWNlbGxcIl07aWYocylyZXR1cm4gcyh0aGlzLmFkZFRhYmxlSGVhZGVyUm93TWV0YSh7aGVhZGVyOiEwLGNvbHM6dGhpcy5jb21wdXRlZENvbHMsc29ydDp0aGlzLnNvcnQsY29sc01hcDp0aGlzLmNvbXB1dGVkQ29sc01hcH0pKTtlPW4/ZnVuY3Rpb24odCl7cmV0dXJuIG4oe2NvbDp0LGNvbHM6aS5jb21wdXRlZENvbHMsc29ydDppLnNvcnQsY29sc01hcDppLmNvbXB1dGVkQ29sc01hcH0pfTpmdW5jdGlvbihlKXtyZXR1cm4gdChRVGgse2tleTplLm5hbWUscHJvcHM6e3Byb3BzOntjb2w6ZSxjb2xzOmkuY29tcHV0ZWRDb2xzLHNvcnQ6aS5zb3J0LGNvbHNNYXA6aS5jb21wdXRlZENvbHNNYXB9fSxzdHlsZTplLnN0eWxlLGNsYXNzOmUuY2xhc3Nlc30sZS5sYWJlbCl9O3ZhciBvPXRoaXMuY29tcHV0ZWRDb2xzLm1hcChlKTtyZXR1cm4gdGhpcy5zaW5nbGVTZWxlY3Rpb24mJiF0aGlzLmdyaWQ/by51bnNoaWZ0KHQoXCJ0aFwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtY29sLWF1dG8td2lkdGhcIn0sW1wiIFwiXSkpOnRoaXMubXVsdGlwbGVTZWxlY3Rpb24mJm8udW5zaGlmdCh0KFwidGhcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWNvbC1hdXRvLXdpZHRoXCJ9LFt0KFFDaGVja2JveCx7cHJvcHM6e2NvbG9yOnRoaXMuY29sb3IsdmFsdWU6dGhpcy5zb21lUm93c1NlbGVjdGVkP251bGw6dGhpcy5hbGxSb3dzU2VsZWN0ZWQsZGFyazp0aGlzLmRhcmt9LG9uOntpbnB1dDpmdW5jdGlvbih0KXtpLnNvbWVSb3dzU2VsZWN0ZWQmJih0PSExKSxpLl9fdXBkYXRlU2VsZWN0aW9uKGkuY29tcHV0ZWRSb3dzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdFtpLnJvd0tleV19KSxpLmNvbXB1dGVkUm93cyx0KX19fSldKSksdChcInRyXCIsbyl9LGFkZFRhYmxlSGVhZGVyUm93TWV0YTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLm11bHRpcGxlU2VsZWN0aW9uJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJzZWxlY3RlZFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5zb21lUm93c1NlbGVjdGVkP1wic29tZVwiOmUuYWxsUm93c1NlbGVjdGVkfSxzZXQ6ZnVuY3Rpb24odCl7ZS5zb21lUm93c1NlbGVjdGVkJiYodD0hMSksZS5fX3VwZGF0ZVNlbGVjdGlvbihlLmNvbXB1dGVkUm93cy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHRbZS5yb3dLZXldfSksZS5jb21wdXRlZFJvd3MsdCl9fSksdC5wYXJ0aWFsU2VsZWN0ZWQ9dGhpcy5zb21lUm93c1NlbGVjdGVkLHQubXVsdGlwbGVTZWxlY3Q9ITApLHR9fX0sVGFibGVCb2R5PXttZXRob2RzOntnZXRUYWJsZUJvZHk6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXRoaXMuJHNjb3BlZFNsb3RzLmJvZHkscz10aGlzLiRzY29wZWRTbG90c1tcImJvZHktY2VsbFwiXSxuPXRoaXMuJHNjb3BlZFNsb3RzW1widG9wLXJvd1wiXSxvPXRoaXMuJHNjb3BlZFNsb3RzW1wiYm90dG9tLXJvd1wiXSxyPVtdO3JldHVybiByPWk/dGhpcy5jb21wdXRlZFJvd3MubWFwKGZ1bmN0aW9uKHQpe3ZhciBzPXRbZS5yb3dLZXldLG49ZS5pc1Jvd1NlbGVjdGVkKHMpO3JldHVybiBpKGUuYWRkQm9keVJvd01ldGEoe2tleTpzLHJvdzp0LGNvbHM6ZS5jb21wdXRlZENvbHMsY29sc01hcDplLmNvbXB1dGVkQ29sc01hcCxfX3RyQ2xhc3M6bj9cInNlbGVjdGVkXCI6XCJcIn0pKX0pOnRoaXMuY29tcHV0ZWRSb3dzLm1hcChmdW5jdGlvbihpKXt2YXIgbj1pW2Uucm93S2V5XSxvPWUuaXNSb3dTZWxlY3RlZChuKSxyPXM/ZS5jb21wdXRlZENvbHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBzKGUuYWRkQm9keUNlbGxNZXRhRGF0YSh7cm93OmksY29sOnR9KSl9KTplLmNvbXB1dGVkQ29scy5tYXAoZnVuY3Rpb24ocyl7dmFyIG49ZS4kc2NvcGVkU2xvdHNbXCJib2R5LWNlbGwtXCIrcy5uYW1lXTtyZXR1cm4gbj9uKGUuYWRkQm9keUNlbGxNZXRhRGF0YSh7cm93OmksY29sOnN9KSk6dChcInRkXCIse3N0YXRpY0NsYXNzOnMuX190ZENsYXNzLHN0eWxlOnMuc3R5bGUsY2xhc3M6cy5jbGFzc2VzfSxlLmdldENlbGxWYWx1ZShzLGkpKX0pO3JldHVybiBlLmhhc1NlbGVjdGlvbk1vZGUmJnIudW5zaGlmdCh0KFwidGRcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWNvbC1hdXRvLXdpZHRoXCJ9LFt0KFFDaGVja2JveCx7cHJvcHM6e3ZhbHVlOm8sY29sb3I6ZS5jb2xvcixkYXJrOmUuZGFya30sb246e2lucHV0OmZ1bmN0aW9uKHQpe2UuX191cGRhdGVTZWxlY3Rpb24oW25dLFtpXSx0KX19fSldKSksdChcInRyXCIse2tleTpuLGNsYXNzOntzZWxlY3RlZDpvfX0scil9KSxuJiZyLnVuc2hpZnQobih7Y29sczp0aGlzLmNvbXB1dGVkQ29sc30pKSxvJiZyLnB1c2gobyh7Y29sczp0aGlzLmNvbXB1dGVkQ29sc30pKSx0KFwidGJvZHlcIixyKX0sYWRkQm9keVJvd01ldGE6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5oYXNTZWxlY3Rpb25Nb2RlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcInNlbGVjdGVkXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBlLmlzUm93U2VsZWN0ZWQodC5rZXkpfSxzZXQ6ZnVuY3Rpb24oaSl7ZS5fX3VwZGF0ZVNlbGVjdGlvbihbdC5rZXldLFt0LnJvd10saSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJleHBhbmRcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuITA9PT1lLnJvd3NFeHBhbmRlZFt0LmtleV19LHNldDpmdW5jdGlvbihpKXtlLiRzZXQoZS5yb3dzRXhwYW5kZWQsdC5rZXksaSl9fSksdC5jb2xzPXQuY29scy5tYXAoZnVuY3Rpb24oaSl7dmFyIHM9T2JqZWN0LmFzc2lnbih7fSxpKTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsXCJ2YWx1ZVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXRDZWxsVmFsdWUoaSx0LnJvdyl9fSksc30pLHR9LGFkZEJvZHlDZWxsTWV0YURhdGE6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJ2YWx1ZVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXRDZWxsVmFsdWUodC5jb2wsdC5yb3cpfX0pLHR9LGdldENlbGxWYWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQuZmllbGQ/dC5maWVsZChlKTplW3QuZmllbGRdO3JldHVybiB0LmZvcm1hdD90LmZvcm1hdChpKTppfX19LEJvdHRvbT17Y29tcHV0ZWQ6e25hdkljb246ZnVuY3Rpb24oKXt2YXIgdD1bdGhpcy4kcS5pY29uLnRhYmxlLnByZXZQYWdlLHRoaXMuJHEuaWNvbi50YWJsZS5uZXh0UGFnZV07cmV0dXJuIHRoaXMuJHEuaTE4bi5ydGw/dC5yZXZlcnNlKCk6dH19LG1ldGhvZHM6e2dldEJvdHRvbTpmdW5jdGlvbih0KXtpZighdGhpcy5oaWRlQm90dG9tKXtpZih0aGlzLm5vdGhpbmdUb0Rpc3BsYXkpe3ZhciBlPXRoaXMuZmlsdGVyP3RoaXMubm9SZXN1bHRzTGFiZWx8fHRoaXMuJHEuaTE4bi50YWJsZS5ub1Jlc3VsdHM6dGhpcy5sb2FkaW5nP3RoaXMubG9hZGluZ0xhYmVsfHx0aGlzLiRxLmkxOG4udGFibGUubG9hZGluZzp0aGlzLm5vRGF0YUxhYmVsfHx0aGlzLiRxLmkxOG4udGFibGUubm9EYXRhO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1ib3R0b20gcm93IGl0ZW1zLWNlbnRlciBxLXRhYmxlLW5vZGF0YVwifSxbdChRSWNvbix7cHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLnRhYmxlLndhcm5pbmd9fSksZV0pfXZhciBpPXRoaXMuJHNjb3BlZFNsb3RzLmJvdHRvbTtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtYm90dG9tIHJvdyBpdGVtcy1jZW50ZXJcIixjbGFzczppP251bGw6XCJqdXN0aWZ5LWVuZFwifSxpP1tpKHRoaXMubWFyZ2luYWxzUHJvcHMpXTp0aGlzLmdldFBhZ2luYXRpb25Sb3codCkpfX0sZ2V0UGFnaW5hdGlvblJvdzpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dGhpcy5jb21wdXRlZFBhZ2luYXRpb24ucm93c1BlclBhZ2Uscz10aGlzLnBhZ2luYXRpb25MYWJlbHx8dGhpcy4kcS5pMThuLnRhYmxlLnBhZ2luYXRpb24sbj10aGlzLiRzY29wZWRTbG90cy5wYWdpbmF0aW9uO3JldHVyblt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1jb250cm9sXCJ9LFt0KFwiZGl2XCIsW3RoaXMuaGFzU2VsZWN0aW9uTW9kZSYmdGhpcy5yb3dzU2VsZWN0ZWROdW1iZXI+MD8odGhpcy5zZWxlY3RlZFJvd3NMYWJlbHx8dGhpcy4kcS5pMThuLnRhYmxlLnNlbGVjdGVkUmVjb3JkcykodGhpcy5yb3dzU2VsZWN0ZWROdW1iZXIpOlwiXCJdKV0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLXNlcGFyYXRvciBjb2xcIn0pLHRoaXMucm93c1BlclBhZ2VPcHRpb25zLmxlbmd0aD4xJiZ0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1jb250cm9sXCJ9LFt0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtYm90dG9tLWl0ZW1cIn0sW3RoaXMucm93c1BlclBhZ2VMYWJlbHx8dGhpcy4kcS5pMThuLnRhYmxlLnJlY29yZHNQZXJQYWdlXSksdChRU2VsZWN0LHtzdGF0aWNDbGFzczpcImlubGluZSBxLXRhYmxlLWJvdHRvbS1pdGVtXCIscHJvcHM6e2NvbG9yOnRoaXMuY29sb3IsdmFsdWU6aSxvcHRpb25zOnRoaXMuY29tcHV0ZWRSb3dzUGVyUGFnZU9wdGlvbnMsZGFyazp0aGlzLmRhcmssaGlkZVVuZGVybGluZTohMH0sb246e2lucHV0OmZ1bmN0aW9uKHQpe2Uuc2V0UGFnaW5hdGlvbih7cGFnZToxLHJvd3NQZXJQYWdlOnR9KX19fSldKXx8dm9pZCAwLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWNvbnRyb2xcIn0sW24/bih0aGlzLm1hcmdpbmFsc1Byb3BzKTpbdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWJvdHRvbS1pdGVtXCJ9LFtpP3ModGhpcy5maXJzdFJvd0luZGV4KzEsTWF0aC5taW4odGhpcy5sYXN0Um93SW5kZXgsdGhpcy5jb21wdXRlZFJvd3NOdW1iZXIpLHRoaXMuY29tcHV0ZWRSb3dzTnVtYmVyKTpzKDEsdGhpcy5jb21wdXRlZFJvd3NOdW1iZXIsdGhpcy5jb21wdXRlZFJvd3NOdW1iZXIpXSksdChRQnRuLHtwcm9wczp7Y29sb3I6dGhpcy5jb2xvcixyb3VuZDohMCxpY29uOnRoaXMubmF2SWNvblswXSxkZW5zZTohMCxmbGF0OiEwLGRpc2FibGU6dGhpcy5pc0ZpcnN0UGFnZX0sb246e2NsaWNrOnRoaXMucHJldlBhZ2V9fSksdChRQnRuLHtwcm9wczp7Y29sb3I6dGhpcy5jb2xvcixyb3VuZDohMCxpY29uOnRoaXMubmF2SWNvblsxXSxkZW5zZTohMCxmbGF0OiEwLGRpc2FibGU6dGhpcy5pc0xhc3RQYWdlfSxvbjp7Y2xpY2s6dGhpcy5uZXh0UGFnZX19KV1dKV19fX07ZnVuY3Rpb24gc29ydERhdGUodCxlKXtyZXR1cm4gbmV3IERhdGUodCktbmV3IERhdGUoZSl9dmFyIFNvcnQ9e3Byb3BzOntzb3J0TWV0aG9kOnt0eXBlOkZ1bmN0aW9uLGRlZmF1bHQ6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXMuY29sdW1ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5hbWU9PT1lfSk7aWYobnVsbD09PXN8fHZvaWQgMD09PXMuZmllbGQpcmV0dXJuIHQ7dmFyIG49aT8tMToxLG89XCJmdW5jdGlvblwiPT10eXBlb2Ygcy5maWVsZD9mdW5jdGlvbih0KXtyZXR1cm4gcy5maWVsZCh0KX06ZnVuY3Rpb24odCl7cmV0dXJuIHRbcy5maWVsZF19O3JldHVybiB0LnNvcnQoZnVuY3Rpb24odCxlKXt2YXIgaSxyPW8odCksYT1vKGUpO3JldHVybiBudWxsPT09cnx8dm9pZCAwPT09cj8tMSpuOm51bGw9PT1hfHx2b2lkIDA9PT1hPzEqbjpzLnNvcnQ/cy5zb3J0KHIsYSkqbjppc051bWJlcihyKSYmaXNOdW1iZXIoYSk/KHItYSkqbjppc0RhdGUocikmJmlzRGF0ZShhKT9zb3J0RGF0ZShyLGEpKm46XCJib29sZWFuXCI9PXR5cGVvZiByJiZcImJvb2xlYW5cIj09dHlwZW9mIGE/KHQtZSkqbjoocj0oaT1bcixhXS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuKHQrXCJcIikudG9Mb3dlckNhc2UoKX0pKVswXSk8KGE9aVsxXSk/LTEqbjpyPT09YT8wOm59KX19fSxjb21wdXRlZDp7Y29sdW1uVG9Tb3J0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb21wdXRlZFBhZ2luYXRpb24uc29ydEJ5O2lmKHQpcmV0dXJuIHRoaXMuY29sdW1ucy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWU9PT10fSl8fG51bGx9fSxtZXRob2RzOntzb3J0OmZ1bmN0aW9uKHQpe3Q9PT1PYmplY3QodCkmJih0PXQubmFtZSk7dmFyIGU9dGhpcy5jb21wdXRlZFBhZ2luYXRpb24saT1lLnNvcnRCeSxzPWUuZGVzY2VuZGluZztpIT09dD8oaT10LHM9ITEpOnRoaXMuYmluYXJ5U3RhdGVTb3J0P3M9IXM6cz9pPW51bGw6cz0hMCx0aGlzLnNldFBhZ2luYXRpb24oe3NvcnRCeTppLGRlc2NlbmRpbmc6cyxwYWdlOjF9KX19fSxGaWx0ZXI9e3Byb3BzOntmaWx0ZXI6W1N0cmluZyxPYmplY3RdLGZpbHRlck1ldGhvZDp7dHlwZTpGdW5jdGlvbixkZWZhdWx0OmZ1bmN0aW9uKHQsZSxpLHMpe3ZvaWQgMD09PWkmJihpPXRoaXMuY29tcHV0ZWRDb2xzKSx2b2lkIDA9PT1zJiYocz10aGlzLmdldENlbGxWYWx1ZSk7dmFyIG49ZT9lLnRvTG93ZXJDYXNlKCk6XCJcIjtyZXR1cm4gdC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIGkuc29tZShmdW5jdGlvbihlKXtyZXR1cm4tMSE9PShzKGUsdCkrXCJcIikudG9Mb3dlckNhc2UoKS5pbmRleE9mKG4pfSl9KX19fSx3YXRjaDp7ZmlsdGVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3Quc2V0UGFnaW5hdGlvbih7cGFnZToxfSwhMCl9KX19fTtmdW5jdGlvbiBzYW1lUGFnaW5hdGlvbih0LGUpe2Zvcih2YXIgaSBpbiBlKWlmKGVbaV0hPT10W2ldKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGZpeFBhZ2luYXRpb24odCl7cmV0dXJuIHQucGFnZTwxJiYodC5wYWdlPTEpLHZvaWQgMCE9PXQucm93c1BlclBhZ2UmJnQucm93c1BlclBhZ2U8MSYmKHQucm93c1BlclBhZ2U9MCksdH12YXIgUGFnaW5hdGlvbj17cHJvcHM6e3BhZ2luYXRpb246T2JqZWN0LHJvd3NQZXJQYWdlT3B0aW9uczp7dHlwZTpBcnJheSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuWzMsNSw3LDEwLDE1LDIwLDI1LDUwLDBdfX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aW5uZXJQYWdpbmF0aW9uOntzb3J0Qnk6bnVsbCxkZXNjZW5kaW5nOiExLHBhZ2U6MSxyb3dzUGVyUGFnZTo1fX19LGNvbXB1dGVkOntjb21wdXRlZFBhZ2luYXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gZml4UGFnaW5hdGlvbihPYmplY3QuYXNzaWduKHt9LHRoaXMuaW5uZXJQYWdpbmF0aW9uLHRoaXMucGFnaW5hdGlvbikpfSxmaXJzdFJvd0luZGV4OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb21wdXRlZFBhZ2luYXRpb247cmV0dXJuKHQucGFnZS0xKSp0LnJvd3NQZXJQYWdlfSxsYXN0Um93SW5kZXg6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbXB1dGVkUGFnaW5hdGlvbjtyZXR1cm4gdC5wYWdlKnQucm93c1BlclBhZ2V9LGlzRmlyc3RQYWdlOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmNvbXB1dGVkUGFnaW5hdGlvbi5wYWdlfSxwYWdlc051bWJlcjpmdW5jdGlvbigpe3JldHVybiBNYXRoLm1heCgxLE1hdGguY2VpbCh0aGlzLmNvbXB1dGVkUm93c051bWJlci90aGlzLmNvbXB1dGVkUGFnaW5hdGlvbi5yb3dzUGVyUGFnZSkpfSxpc0xhc3RQYWdlOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLmxhc3RSb3dJbmRleHx8dGhpcy5jb21wdXRlZFBhZ2luYXRpb24ucGFnZT49dGhpcy5wYWdlc051bWJlcn0sY29tcHV0ZWRSb3dzUGVyUGFnZU9wdGlvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLnJvd3NQZXJQYWdlT3B0aW9ucy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue2xhYmVsOjA9PT1lP3QuJHEuaTE4bi50YWJsZS5hbGxSb3dzOlwiXCIrZSx2YWx1ZTplfX0pfX0sd2F0Y2g6e3BhZ2VzTnVtYmVyOmZ1bmN0aW9uKHQsZSl7aWYodCE9PWUpe3ZhciBpPXRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLnBhZ2U7dCYmIWk/dGhpcy5zZXRQYWdpbmF0aW9uKHtwYWdlOjF9KTp0PGkmJnRoaXMuc2V0UGFnaW5hdGlvbih7cGFnZTp0fSl9fX0sbWV0aG9kczp7X19zZW5kU2VydmVyUmVxdWVzdDpmdW5jdGlvbih0KXt0aGlzLnJlcXVlc3RTZXJ2ZXJJbnRlcmFjdGlvbih7cGFnaW5hdGlvbjp0LGZpbHRlcjp0aGlzLmZpbHRlcn0pfSxzZXRQYWdpbmF0aW9uOmZ1bmN0aW9uKHQsZSl7dmFyIGk9Zml4UGFnaW5hdGlvbihPYmplY3QuYXNzaWduKHt9LHRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLHQpKTtzYW1lUGFnaW5hdGlvbih0aGlzLmNvbXB1dGVkUGFnaW5hdGlvbixpKT90aGlzLmlzU2VydmVyU2lkZSYmZSYmdGhpcy5fX3NlbmRTZXJ2ZXJSZXF1ZXN0KGkpOnRoaXMuaXNTZXJ2ZXJTaWRlP3RoaXMuX19zZW5kU2VydmVyUmVxdWVzdChpKTp0aGlzLnBhZ2luYXRpb24/dGhpcy4kZW1pdChcInVwZGF0ZTpwYWdpbmF0aW9uXCIsaSk6dGhpcy5pbm5lclBhZ2luYXRpb249aX0scHJldlBhZ2U6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbXB1dGVkUGFnaW5hdGlvbi5wYWdlO3Q+MSYmdGhpcy5zZXRQYWdpbmF0aW9uKHtwYWdlOnQtMX0pfSxuZXh0UGFnZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLGU9dC5wYWdlLGk9dC5yb3dzUGVyUGFnZTt0aGlzLmxhc3RSb3dJbmRleD4wJiZlKmk8dGhpcy5jb21wdXRlZFJvd3NOdW1iZXImJnRoaXMuc2V0UGFnaW5hdGlvbih7cGFnZTplKzF9KX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLiRlbWl0KFwidXBkYXRlOnBhZ2luYXRpb25cIixPYmplY3QuYXNzaWduKHt9LHRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uKSl9fSxSb3dTZWxlY3Rpb249e3Byb3BzOntzZWxlY3Rpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJub25lXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcInNpbmdsZVwiLFwibXVsdGlwbGVcIixcIm5vbmVcIl0uaW5jbHVkZXModCl9fSxzZWxlY3RlZDp7dHlwZTpBcnJheSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuW119fX0sY29tcHV0ZWQ6e3NlbGVjdGVkS2V5czpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT17fTtyZXR1cm4gdGhpcy5zZWxlY3RlZC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGVbdC5yb3dLZXldfSkuZm9yRWFjaChmdW5jdGlvbih0KXtlW3RdPSEwfSksZX0saGFzU2VsZWN0aW9uTW9kZTpmdW5jdGlvbigpe3JldHVyblwibm9uZVwiIT09dGhpcy5zZWxlY3Rpb259LHNpbmdsZVNlbGVjdGlvbjpmdW5jdGlvbigpe3JldHVyblwic2luZ2xlXCI9PT10aGlzLnNlbGVjdGlvbn0sbXVsdGlwbGVTZWxlY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm5cIm11bHRpcGxlXCI9PT10aGlzLnNlbGVjdGlvbn0sYWxsUm93c1NlbGVjdGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0aGlzLm11bHRpcGxlU2VsZWN0aW9uKXJldHVybiB0aGlzLmNvbXB1dGVkUm93cy5sZW5ndGg+MCYmdGhpcy5jb21wdXRlZFJvd3MuZXZlcnkoZnVuY3Rpb24oZSl7cmV0dXJuITA9PT10LnNlbGVjdGVkS2V5c1tlW3Qucm93S2V5XV19KX0sc29tZVJvd3NTZWxlY3RlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYodGhpcy5tdWx0aXBsZVNlbGVjdGlvbilyZXR1cm4hdGhpcy5hbGxSb3dzU2VsZWN0ZWQmJnRoaXMuY29tcHV0ZWRSb3dzLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuITA9PT10LnNlbGVjdGVkS2V5c1tlW3Qucm93S2V5XV19KX0scm93c1NlbGVjdGVkTnVtYmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWQubGVuZ3RofX0sbWV0aG9kczp7aXNSb3dTZWxlY3RlZDpmdW5jdGlvbih0KXtyZXR1cm4hMD09PXRoaXMuc2VsZWN0ZWRLZXlzW3RdfSxjbGVhclNlbGVjdGlvbjpmdW5jdGlvbigpe3RoaXMuJGVtaXQoXCJ1cGRhdGU6c2VsZWN0ZWRcIixbXSl9LF9fdXBkYXRlU2VsZWN0aW9uOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzO3RoaXMuc2luZ2xlU2VsZWN0aW9uP3RoaXMuJGVtaXQoXCJ1cGRhdGU6c2VsZWN0ZWRcIixpP2U6W10pOnRoaXMuJGVtaXQoXCJ1cGRhdGU6c2VsZWN0ZWRcIixpP3RoaXMuc2VsZWN0ZWQuY29uY2F0KGUpOnRoaXMuc2VsZWN0ZWQuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiF0LmluY2x1ZGVzKGVbcy5yb3dLZXldKX0pKX19fSxDb2x1bW5TZWxlY3Rpb249e3Byb3BzOnt2aXNpYmxlQ29sdW1uczpBcnJheX0sY29tcHV0ZWQ6e2NvbXB1dGVkQ29sczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLmNvbXB1dGVkUGFnaW5hdGlvbixpPWUuc29ydEJ5LHM9ZS5kZXNjZW5kaW5nO3JldHVybih0aGlzLnZpc2libGVDb2x1bW5zP3RoaXMuY29sdW1ucy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVxdWlyZWR8fHQudmlzaWJsZUNvbHVtbnMuaW5jbHVkZXMoZS5uYW1lKX0pOnRoaXMuY29sdW1ucykubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmFsaWduPXQuYWxpZ258fFwicmlnaHRcIix0Ll9faWNvbkNsYXNzPVwicS10YWJsZS1zb3J0LWljb24gcS10YWJsZS1zb3J0LWljb24tXCIrdC5hbGlnbix0Ll9fdGhDbGFzcz1cInRleHQtXCIrdC5hbGlnbisodC5zb3J0YWJsZT9cIiBzb3J0YWJsZVwiOlwiXCIpKyh0Lm5hbWU9PT1pP1wiIHNvcnRlZCBcIisocz9cInNvcnQtZGVzY1wiOlwiXCIpOlwiXCIpLHQuX190ZENsYXNzPVwidGV4dC1cIit0LmFsaWduLHR9KX0sY29tcHV0ZWRDb2xzTWFwOmZ1bmN0aW9uKCl7dmFyIHQ9e307cmV0dXJuIHRoaXMuY29tcHV0ZWRDb2xzLmZvckVhY2goZnVuY3Rpb24oZSl7dFtlLm5hbWVdPWV9KSx0fX19LEV4cGFuZD17ZGF0YTpmdW5jdGlvbigpe3JldHVybntyb3dzRXhwYW5kZWQ6e319fX0sUVRhYmxlPXtuYW1lOlwiUVRhYmxlXCIsbWl4aW5zOltGdWxsc2NyZWVuTWl4aW4sVG9wLFRhYmxlSGVhZGVyLFRhYmxlQm9keSxCb3R0b20sU29ydCxGaWx0ZXIsUGFnaW5hdGlvbixSb3dTZWxlY3Rpb24sQ29sdW1uU2VsZWN0aW9uLEV4cGFuZF0scHJvcHM6e2RhdGE6e3R5cGU6QXJyYXksZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybltdfX0scm93S2V5Ont0eXBlOlN0cmluZyxkZWZhdWx0OlwiaWRcIn0sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJncmV5LThcIn0sZ3JpZDpCb29sZWFuLGRlbnNlOkJvb2xlYW4sY29sdW1uczpBcnJheSxsb2FkaW5nOkJvb2xlYW4sdGl0bGU6U3RyaW5nLGhpZGVIZWFkZXI6Qm9vbGVhbixoaWRlQm90dG9tOkJvb2xlYW4sZGFyazpCb29sZWFuLHNlcGFyYXRvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImhvcml6b250YWxcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wiaG9yaXpvbnRhbFwiLFwidmVydGljYWxcIixcImNlbGxcIixcIm5vbmVcIl0uaW5jbHVkZXModCl9fSxiaW5hcnlTdGF0ZVNvcnQ6Qm9vbGVhbixub0RhdGFMYWJlbDpTdHJpbmcsbm9SZXN1bHRzTGFiZWw6U3RyaW5nLGxvYWRpbmdMYWJlbDpTdHJpbmcsc2VsZWN0ZWRSb3dzTGFiZWw6RnVuY3Rpb24scm93c1BlclBhZ2VMYWJlbDpTdHJpbmcscGFnaW5hdGlvbkxhYmVsOkZ1bmN0aW9uLHRhYmxlU3R5bGU6e3R5cGU6W1N0cmluZyxBcnJheSxPYmplY3RdLGRlZmF1bHQ6XCJcIn0sdGFibGVDbGFzczp7dHlwZTpbU3RyaW5nLEFycmF5LE9iamVjdF0sZGVmYXVsdDpcIlwifX0sY29tcHV0ZWQ6e2NvbXB1dGVkRGF0YTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZGF0YS5zbGljZSgpLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9faW5kZXg9ZSx0fSk7aWYoMD09PXQubGVuZ3RoKXJldHVybntyb3dzTnVtYmVyOjAscm93czpbXX07aWYodGhpcy5pc1NlcnZlclNpZGUpcmV0dXJue3Jvd3M6dH07dmFyIGU9dGhpcy5jb21wdXRlZFBhZ2luYXRpb24saT1lLnNvcnRCeSxzPWUuZGVzY2VuZGluZyxuPWUucm93c1BlclBhZ2U7dGhpcy5maWx0ZXImJih0PXRoaXMuZmlsdGVyTWV0aG9kKHQsdGhpcy5maWx0ZXIsdGhpcy5jb21wdXRlZENvbHMsdGhpcy5nZXRDZWxsVmFsdWUpKSx0aGlzLmNvbHVtblRvU29ydCYmKHQ9dGhpcy5zb3J0TWV0aG9kKHQsaSxzKSk7dmFyIG89dC5sZW5ndGg7cmV0dXJuIG4mJih0PXQuc2xpY2UodGhpcy5maXJzdFJvd0luZGV4LHRoaXMubGFzdFJvd0luZGV4KSkse3Jvd3NOdW1iZXI6byxyb3dzOnR9fSxjb21wdXRlZFJvd3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb21wdXRlZERhdGEucm93c30sY29tcHV0ZWRSb3dzTnVtYmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNTZXJ2ZXJTaWRlP3RoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLnJvd3NOdW1iZXJ8fDA6dGhpcy5jb21wdXRlZERhdGEucm93c051bWJlcn0sbm90aGluZ1RvRGlzcGxheTpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5jb21wdXRlZFJvd3MubGVuZ3RofSxpc1NlcnZlclNpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5jb21wdXRlZFBhZ2luYXRpb24ucm93c051bWJlcn19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtjbGFzczp7XCJxLXRhYmxlLWdyaWRcIjp0aGlzLmdyaWQsXCJxLXRhYmxlLWNvbnRhaW5lclwiOiEwLFwicS10YWJsZS1kYXJrXCI6dGhpcy5kYXJrLFwicS10YWJsZS1kZW5zZVwiOnRoaXMuZGVuc2UsZnVsbHNjcmVlbjp0aGlzLmluRnVsbHNjcmVlbixzY3JvbGw6dGhpcy5pbkZ1bGxzY3JlZW59fSxbdGhpcy5nZXRUb3AodCksdGhpcy5nZXRCb2R5KHQpLHRoaXMuZ2V0Qm90dG9tKHQpXSl9LG1ldGhvZHM6e3JlcXVlc3RTZXJ2ZXJJbnRlcmFjdGlvbjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7ZS4kZW1pdChcInJlcXVlc3RcIix7cGFnaW5hdGlvbjp0LnBhZ2luYXRpb258fGUuY29tcHV0ZWRQYWdpbmF0aW9uLGZpbHRlcjp0LmZpbHRlcnx8ZS5maWx0ZXIsZ2V0Q2VsbFZhbHVlOmUuZ2V0Q2VsbFZhbHVlfSl9KX0sZ2V0Qm9keTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9IXRoaXMuaGlkZUhlYWRlcjtpZih0aGlzLmdyaWQpe3ZhciBzPXRoaXMuJHNjb3BlZFNsb3RzLml0ZW07aWYodm9pZCAwIT09cylyZXR1cm5baSYmdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtbWlkZGxlIHNjcm9sbFwifSxbdChcInRhYmxlXCIse3N0YXRpY0NsYXNzOlwicS10YWJsZVwiKyh0aGlzLmRhcms/XCIgcS10YWJsZS1kYXJrXCI6XCJcIil9LFt0aGlzLmdldFRhYmxlSGVhZGVyKHQpXSldKXx8bnVsbCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicm93XCJ9LHRoaXMuY29tcHV0ZWRSb3dzLm1hcChmdW5jdGlvbih0KXt2YXIgaT10W2Uucm93S2V5XSxuPWUuaXNSb3dTZWxlY3RlZChpKTtyZXR1cm4gcyhlLmFkZEJvZHlSb3dNZXRhKHtrZXk6aSxyb3c6dCxjb2xzOmUuY29tcHV0ZWRDb2xzLGNvbHNNYXA6ZS5jb21wdXRlZENvbHNNYXAsX190ckNsYXNzOm4/XCJzZWxlY3RlZFwiOlwiXCJ9KSl9KSldfXJldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1taWRkbGUgc2Nyb2xsXCIsY2xhc3M6dGhpcy50YWJsZUNsYXNzLHN0eWxlOnRoaXMudGFibGVTdHlsZX0sW3QoXCJ0YWJsZVwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUgcS10YWJsZS1cIit0aGlzLnNlcGFyYXRvcitcIi1zZXBhcmF0b3JcIisodGhpcy5kYXJrP1wiIHEtdGFibGUtZGFya1wiOlwiXCIpfSxbaSYmdGhpcy5nZXRUYWJsZUhlYWRlcih0KXx8bnVsbCx0aGlzLmdldFRhYmxlQm9keSh0KV0pXSl9fX0sUVRyPXtuYW1lOlwiUVRyXCIscHJvcHM6e3Byb3BzOk9iamVjdH0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwidHJcIiwhdGhpcy5wcm9wc3x8dGhpcy5wcm9wcy5oZWFkZXI/e306e2NsYXNzOnRoaXMucHJvcHMuX190ckNsYXNzfSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFUZD17bmFtZTpcIlFUZFwiLHByb3BzOntwcm9wczpPYmplY3QsYXV0b1dpZHRoOkJvb2xlYW59LHJlbmRlcjpmdW5jdGlvbih0KXtpZighdGhpcy5wcm9wcylyZXR1cm4gdChcInRkXCIse2NsYXNzOntcInEtdGFibGUtY29sLWF1dG8td2lkdGhcIjp0aGlzLmF1dG9XaWR0aH19LHRoaXMuJHNsb3RzLmRlZmF1bHQpO3ZhciBlLGk9dGhpcy4kdm5vZGUua2V5O2lmKGkpe2lmKCEoZT10aGlzLnByb3BzLmNvbHNNYXBbaV0pKXJldHVybn1lbHNlIGU9dGhpcy5wcm9wcy5jb2w7cmV0dXJuIHQoXCJ0ZFwiLHtjbGFzczpbZS5fX3RkQ2xhc3Mse1wicS10YWJsZS1jb2wtYXV0by13aWR0aFwiOnRoaXMuYXV0b1dpZHRofV19LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUVRhYmxlQ29sdW1ucz17bmFtZTpcIlFUYWJsZUNvbHVtbnNcIixwcm9wczp7dmFsdWU6e3R5cGU6QXJyYXkscmVxdWlyZWQ6ITB9LGxhYmVsOlN0cmluZyxjb2x1bW5zOnt0eXBlOkFycmF5LHJlcXVpcmVkOiEwfSxjb2xvcjpTdHJpbmcsZGFyazpCb29sZWFufSxjb21wdXRlZDp7Y29tcHV0ZWRPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29sdW1ucy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIXQucmVxdWlyZWR9KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJue3ZhbHVlOnQubmFtZSxsYWJlbDp0LmxhYmVsfX0pfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoUVNlbGVjdCx7cHJvcHM6e211bHRpcGxlOiEwLHRvZ2dsZTohMCx2YWx1ZTp0aGlzLnZhbHVlLG9wdGlvbnM6dGhpcy5jb21wdXRlZE9wdGlvbnMsZGlzcGxheVZhbHVlOnRoaXMubGFiZWx8fHRoaXMuJHEuaTE4bi50YWJsZS5jb2x1bW5zLGNvbG9yOnRoaXMuY29sb3IsZGFyazp0aGlzLmRhcmssaGlkZVVuZGVybGluZTohMH0sb246e2lucHV0OmZ1bmN0aW9uKHQpe2UuJGVtaXQoXCJpbnB1dFwiLHQpfSxjaGFuZ2U6ZnVuY3Rpb24odCl7ZS4kZW1pdChcImNoYW5nZVwiLHQpfX19KX19LFFUaW1lbGluZT17bmFtZTpcIlFUaW1lbGluZVwiLHByb3ZpZGU6ZnVuY3Rpb24oKXtyZXR1cm57X190aW1lbGluZTp0aGlzfX0scHJvcHM6e2NvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSxyZXNwb25zaXZlOkJvb2xlYW4sbm9Ib3ZlcjpCb29sZWFuLGRhcms6Qm9vbGVhbn0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwidWxcIix7c3RhdGljQ2xhc3M6XCJxLXRpbWVsaW5lXCIsY2xhc3M6e1wicS10aW1lbGluZS1kYXJrXCI6dGhpcy5kYXJrLFwicS10aW1lbGluZS1yZXNwb25zaXZlXCI6dGhpcy5yZXNwb25zaXZlLFwicS10aW1lbGluZS1ob3ZlclwiOiF0aGlzLm5vSG92ZXJ9fSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFUaW1lbGluZUVudHJ5PXtuYW1lOlwiUVRpbWVsaW5lRW50cnlcIixpbmplY3Q6e19fdGltZWxpbmU6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUVRpbWVsaW5lRW50cnkgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUVRpbWVsaW5lXCIpfX19LHByb3BzOntoZWFkaW5nOkJvb2xlYW4sdGFnOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiaDNcIn0sc2lkZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInJpZ2h0XCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcImxlZnRcIixcInJpZ2h0XCJdLmluY2x1ZGVzKHQpfX0saWNvbjpTdHJpbmcsY29sb3I6U3RyaW5nLHRpdGxlOlN0cmluZyxzdWJ0aXRsZTpTdHJpbmd9LGNvbXB1dGVkOntjb2xvckNsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuXCJ0ZXh0LVwiKyh0aGlzLmNvbG9yfHx0aGlzLl9fdGltZWxpbmUuY29sb3IpfSxjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuW1wicS10aW1lbGluZS1lbnRyeS1cIisoXCJsZWZ0XCI9PT10aGlzLnNpZGU/XCJsZWZ0XCI6XCJyaWdodFwiKSx0aGlzLmljb24/XCJxLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvblwiOlwiXCJdfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhlYWRpbmc/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGltZWxpbmUtaGVhZGluZ1wifSxbdChcImRpdlwiKSx0KFwiZGl2XCIpLHQodGhpcy50YWcse3N0YXRpY0NsYXNzOlwicS10aW1lbGluZS1oZWFkaW5nLXRpdGxlXCJ9LHRoaXMuJHNsb3RzLmRlZmF1bHQpXSk6dChcImxpXCIse3N0YXRpY0NsYXNzOlwicS10aW1lbGluZS1lbnRyeVwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sW3RoaXMuJHNsb3RzLnN1YnRpdGxlfHx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10aW1lbGluZS1zdWJ0aXRsZVwifSxbdChcInNwYW5cIix0aGlzLnN1YnRpdGxlKV0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRpbWVsaW5lLWRvdFwiLGNsYXNzOnRoaXMuY29sb3JDbGFzc30sW3RoaXMuaWNvbj90KFFJY29uLHtwcm9wczp7bmFtZTp0aGlzLmljb259fSk6bnVsbF0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRpbWVsaW5lLWNvbnRlbnRcIn0sKHRoaXMuJHNsb3RzLnRpdGxlfHxbdChcImg2XCIse3N0YXRpY0NsYXNzOlwicS10aW1lbGluZS10aXRsZVwifSxbdGhpcy50aXRsZV0pXSkuY29uY2F0KHRoaXMuJHNsb3RzLmRlZmF1bHQpKV0pfX0sUVRvb2xiYXI9e25hbWU6XCJRVG9vbGJhclwiLHByb3BzOntjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sdGV4dENvbG9yOlN0cmluZyxpbnZlcnRlZDpCb29sZWFuLGdsb3NzeTpCb29sZWFufSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVtcInEtdG9vbGJhci1cIisodGhpcy5pbnZlcnRlZD9cImludmVydGVkXCI6XCJub3JtYWxcIildO3JldHVybiB0aGlzLmdsb3NzeSYmdC5wdXNoKFwiZ2xvc3N5XCIpLHRoaXMuaW52ZXJ0ZWQ/dC5wdXNoKFwidGV4dC1cIisodGhpcy50ZXh0Q29sb3J8fHRoaXMuY29sb3IpKToodC5wdXNoKFwiYmctXCIrdGhpcy5jb2xvciksdC5wdXNoKFwidGV4dC1cIisodGhpcy50ZXh0Q29sb3J8fFwid2hpdGVcIikpKSx0fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10b29sYmFyIHJvdyBuby13cmFwIGl0ZW1zLWNlbnRlciByZWxhdGl2ZS1wb3NpdGlvblwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRVG9vbGJhclRpdGxlPXtuYW1lOlwiUVRvb2xiYXJUaXRsZVwiLHByb3BzOntzaHJpbms6Qm9vbGVhbn0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10b29sYmFyLXRpdGxlXCIsY2xhc3M6dGhpcy5zaHJpbms/XCJjb2wtYXV0b1wiOm51bGx9LFt0aGlzLiRzbG90cy5kZWZhdWx0LHRoaXMuJHNsb3RzLnN1YnRpdGxlP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRvb2xiYXItc3VidGl0bGVcIn0sdGhpcy4kc2xvdHMuc3VidGl0bGUpOm51bGxdKX19LFFUcmVlPXtuYW1lOlwiUVRyZWVcIixkaXJlY3RpdmVzOntSaXBwbGU6UmlwcGxlfSxwcm9wczp7bm9kZXM6QXJyYXksbm9kZUtleTp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LGxhYmVsS2V5Ont0eXBlOlN0cmluZyxkZWZhdWx0OlwibGFiZWxcIn0sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJncmV5XCJ9LGNvbnRyb2xDb2xvcjpTdHJpbmcsdGV4dENvbG9yOlN0cmluZyxkYXJrOkJvb2xlYW4saWNvbjpTdHJpbmcsdGlja1N0cmF0ZWd5Ont0eXBlOlN0cmluZyxkZWZhdWx0Olwibm9uZVwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJub25lXCIsXCJzdHJpY3RcIixcImxlYWZcIixcImxlYWYtZmlsdGVyZWRcIl0uaW5jbHVkZXModCl9fSx0aWNrZWQ6QXJyYXksZXhwYW5kZWQ6QXJyYXksc2VsZWN0ZWQ6e30sZGVmYXVsdEV4cGFuZEFsbDpCb29sZWFuLGFjY29yZGlvbjpCb29sZWFuLGZpbHRlcjpTdHJpbmcsZmlsdGVyTWV0aG9kOnt0eXBlOkZ1bmN0aW9uLGRlZmF1bHQ6ZnVuY3Rpb24odCxlKXt2YXIgaT1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHRbdGhpcy5sYWJlbEtleV0mJnRbdGhpcy5sYWJlbEtleV0udG9Mb3dlckNhc2UoKS5pbmRleE9mKGkpPi0xfX0sZHVyYXRpb246TnVtYmVyLG5vTm9kZXNMYWJlbDpTdHJpbmcsbm9SZXN1bHRzTGFiZWw6U3RyaW5nfSxjb21wdXRlZDp7aGFzUmlwcGxlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMubm9SaXBwbGV9LGNsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm5bXCJ0ZXh0LVwiK3RoaXMuY29sb3Ise1wicS10cmVlLWRhcmtcIjp0aGlzLmRhcmt9XX0saGFzU2VsZWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuc2VsZWN0ZWR9LGNvbXB1dGVkSWNvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmljb258fHRoaXMuJHEuaWNvbi50cmVlLmljb259LGNvbXB1dGVkQ29udHJvbENvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbENvbG9yfHx0aGlzLmNvbG9yfSxjb250ZW50Q2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm5cInRleHQtXCIrKHRoaXMudGV4dENvbG9yfHwodGhpcy5kYXJrP1wid2hpdGVcIjpcImJsYWNrXCIpKX0sbWV0YTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT17fSxpPWZ1bmN0aW9uKHMsbil7dmFyIG89cy50aWNrU3RyYXRlZ3l8fChuP24udGlja1N0cmF0ZWd5OnQudGlja1N0cmF0ZWd5KSxyPXNbdC5ub2RlS2V5XSxhPXMuY2hpbGRyZW4mJnMuY2hpbGRyZW4ubGVuZ3RoPjAsbD0hYSxjPSFzLmRpc2FibGVkJiZ0Lmhhc1NlbGVjdGlvbiYmITEhPT1zLnNlbGVjdGFibGUsaD0hcy5kaXNhYmxlZCYmITEhPT1zLmV4cGFuZGFibGUsdT1cIm5vbmVcIiE9PW8sZD1cInN0cmljdFwiPT09byxwPVwibGVhZi1maWx0ZXJlZFwiPT09byxmPVwibGVhZlwiPT09b3x8XCJsZWFmLWZpbHRlcmVkXCI9PT1vLG09IXMuZGlzYWJsZWQmJiExIT09cy50aWNrYWJsZTtmJiZtJiZuJiYhbi50aWNrYWJsZSYmKG09ITEpO3ZhciBnPXMubGF6eTtnJiZ0Lmxhenlbcl0mJihnPXQubGF6eVtyXSk7dmFyIHY9e2tleTpyLHBhcmVudDpuLGlzUGFyZW50OmEsaXNMZWFmOmwsbGF6eTpnLGRpc2FibGVkOnMuZGlzYWJsZWQsbGluazpjfHxoJiYoYXx8ITA9PT1nKSxjaGlsZHJlbjpbXSxtYXRjaGVzRmlsdGVyOiF0LmZpbHRlcnx8dC5maWx0ZXJNZXRob2Qocyx0LmZpbHRlciksc2VsZWN0ZWQ6cj09PXQuc2VsZWN0ZWQmJmMsc2VsZWN0YWJsZTpjLGV4cGFuZGVkOiEhYSYmdC5pbm5lckV4cGFuZGVkLmluY2x1ZGVzKHIpLGV4cGFuZGFibGU6aCxub1RpY2s6cy5ub1RpY2t8fCFkJiZnJiZcImxvYWRlZFwiIT09Zyx0aWNrYWJsZTptLHRpY2tTdHJhdGVneTpvLGhhc1RpY2tpbmc6dSxzdHJpY3RUaWNraW5nOmQsbGVhZkZpbHRlcmVkVGlja2luZzpwLGxlYWZUaWNraW5nOmYsdGlja2VkOmQ/dC5pbm5lclRpY2tlZC5pbmNsdWRlcyhyKTohIWwmJnQuaW5uZXJUaWNrZWQuaW5jbHVkZXMocil9O2lmKGVbcl09dixhJiYodi5jaGlsZHJlbj1zLmNoaWxkcmVuLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gaSh0LHYpfSksdC5maWx0ZXImJih2Lm1hdGNoZXNGaWx0ZXJ8fCh2Lm1hdGNoZXNGaWx0ZXI9di5jaGlsZHJlbi5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hdGNoZXNGaWx0ZXJ9KSksdi5tYXRjaGVzRmlsdGVyJiYhdi5ub1RpY2smJiF2LmRpc2FibGVkJiZ2LnRpY2thYmxlJiZwJiZ2LmNoaWxkcmVuLmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVybiF0Lm1hdGNoZXNGaWx0ZXJ8fHQubm9UaWNrfHwhdC50aWNrYWJsZX0pJiYodi50aWNrYWJsZT0hMSkpLHYubWF0Y2hlc0ZpbHRlciYmKHYubm9UaWNrfHxkfHwhdi5jaGlsZHJlbi5ldmVyeShmdW5jdGlvbih0KXtyZXR1cm4gdC5ub1RpY2t9KXx8KHYubm9UaWNrPSEwKSxmJiYodi50aWNrZWQ9ITEsdi5pbmRldGVybWluYXRlPXYuY2hpbGRyZW4uc29tZShmdW5jdGlvbih0KXtyZXR1cm4gdC5pbmRldGVybWluYXRlfSksIXYuaW5kZXRlcm1pbmF0ZSkpKSl7dmFyIGI9di5jaGlsZHJlbi5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS50aWNrZWQ/dCsxOnR9LDApO2I9PT12LmNoaWxkcmVuLmxlbmd0aD92LnRpY2tlZD0hMDpiPjAmJih2LmluZGV0ZXJtaW5hdGU9ITApfXJldHVybiB2fTtyZXR1cm4gdGhpcy5ub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBpKHQsbnVsbCl9KSxlfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntsYXp5Ont9LGlubmVyVGlja2VkOnRoaXMudGlja2VkfHxbXSxpbm5lckV4cGFuZGVkOnRoaXMuZXhwYW5kZWR8fFtdfX0sd2F0Y2g6e3RpY2tlZDpmdW5jdGlvbih0KXt0aGlzLmlubmVyVGlja2VkPXR9LGV4cGFuZGVkOmZ1bmN0aW9uKHQpe3RoaXMuaW5uZXJFeHBhbmRlZD10fX0sbWV0aG9kczp7Z2V0Tm9kZUJ5S2V5OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1bXS5yZWR1Y2Uscz1mdW5jdGlvbihuLG8pe3JldHVybiBufHwhbz9uOkFycmF5LmlzQXJyYXkobyk/aS5jYWxsKE9iamVjdChvKSxzLG4pOm9bZS5ub2RlS2V5XT09PXQ/bzpvLmNoaWxkcmVuP3MobnVsbCxvLmNoaWxkcmVuKTp2b2lkIDB9O3JldHVybiBzKG51bGwsdGhpcy5ub2Rlcyl9LGdldFRpY2tlZE5vZGVzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5pbm5lclRpY2tlZC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0Tm9kZUJ5S2V5KGUpfSl9LGdldEV4cGFuZGVkTm9kZXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmlubmVyRXhwYW5kZWQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmdldE5vZGVCeUtleShlKX0pfSxpc0V4cGFuZGVkOmZ1bmN0aW9uKHQpe3JldHVybiEoIXR8fCF0aGlzLm1ldGFbdF0pJiZ0aGlzLm1ldGFbdF0uZXhwYW5kZWR9LGNvbGxhcHNlQWxsOmZ1bmN0aW9uKCl7dm9pZCAwIT09dGhpcy5leHBhbmRlZD90aGlzLiRlbWl0KFwidXBkYXRlOmV4cGFuZGVkXCIsW10pOnRoaXMuaW5uZXJFeHBhbmRlZD1bXX0sZXhwYW5kQWxsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuaW5uZXJFeHBhbmRlZCxpPWZ1bmN0aW9uKHMpe3MuY2hpbGRyZW4mJnMuY2hpbGRyZW4ubGVuZ3RoPjAmJiExIT09cy5leHBhbmRhYmxlJiYhMCE9PXMuZGlzYWJsZWQmJihlLnB1c2goc1t0Lm5vZGVLZXldKSxzLmNoaWxkcmVuLmZvckVhY2goaSkpfTt0aGlzLm5vZGVzLmZvckVhY2goaSksdm9pZCAwIT09dGhpcy5leHBhbmRlZD90aGlzLiRlbWl0KFwidXBkYXRlOmV4cGFuZGVkXCIsZSk6dGhpcy5pbm5lckV4cGFuZGVkPWV9LHNldEV4cGFuZGVkOmZ1bmN0aW9uKHQsZSxpLHMpe3ZhciBuPXRoaXM7aWYodm9pZCAwPT09aSYmKGk9dGhpcy5nZXROb2RlQnlLZXkodCkpLHZvaWQgMD09PXMmJihzPXRoaXMubWV0YVt0XSkscy5sYXp5JiZcImxvYWRlZFwiIT09cy5sYXp5KXtpZihcImxvYWRpbmdcIj09PXMubGF6eSlyZXR1cm47dGhpcy4kc2V0KHRoaXMubGF6eSx0LFwibG9hZGluZ1wiKSx0aGlzLiRlbWl0KFwibGF6eS1sb2FkXCIse25vZGU6aSxrZXk6dCxkb25lOmZ1bmN0aW9uKGUpe24ubGF6eVt0XT1cImxvYWRlZFwiLGUmJihpLmNoaWxkcmVuPWUpLG4uJG5leHRUaWNrKGZ1bmN0aW9uKCl7dmFyIGU9bi5tZXRhW3RdO2UmJmUuaXNQYXJlbnQmJm4uX19zZXRFeHBhbmRlZCh0LCEwKX0pfSxmYWlsOmZ1bmN0aW9uKCl7bi4kZGVsZXRlKG4ubGF6eSx0KX19KX1lbHNlIHMuaXNQYXJlbnQmJnMuZXhwYW5kYWJsZSYmdGhpcy5fX3NldEV4cGFuZGVkKHQsZSl9LF9fc2V0RXhwYW5kZWQ6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLHM9dGhpcy5pbm5lckV4cGFuZGVkLG49dm9pZCAwIT09dGhpcy5leHBhbmRlZDtpZihuJiYocz1zLnNsaWNlKCkpLGUpe2lmKHRoaXMuYWNjb3JkaW9uJiZ0aGlzLm1ldGFbdF0pe3ZhciBvPVtdO3RoaXMubWV0YVt0XS5wYXJlbnQ/dGhpcy5tZXRhW3RdLnBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKGUpe2Uua2V5IT09dCYmZS5leHBhbmRhYmxlJiZvLnB1c2goZS5rZXkpfSk6dGhpcy5ub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBzPWVbaS5ub2RlS2V5XTtzIT09dCYmby5wdXNoKHMpfSksby5sZW5ndGg+MCYmKHM9cy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIW8uaW5jbHVkZXModCl9KSl9cz1zLmNvbmNhdChbdF0pLmZpbHRlcihmdW5jdGlvbih0LGUsaSl7cmV0dXJuIGkuaW5kZXhPZih0KT09PWV9KX1lbHNlIHM9cy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT10fSk7bj90aGlzLiRlbWl0KFwidXBkYXRlOmV4cGFuZGVkXCIscyk6dGhpcy5pbm5lckV4cGFuZGVkPXN9LGlzVGlja2VkOmZ1bmN0aW9uKHQpe3JldHVybiEoIXR8fCF0aGlzLm1ldGFbdF0pJiZ0aGlzLm1ldGFbdF0udGlja2VkfSxzZXRUaWNrZWQ6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLmlubmVyVGlja2VkLHM9dm9pZCAwIT09dGhpcy50aWNrZWQ7cyYmKGk9aS5zbGljZSgpKSxpPWU/aS5jb25jYXQodCkuZmlsdGVyKGZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gaS5pbmRleE9mKHQpPT09ZX0pOmkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiF0LmluY2x1ZGVzKGUpfSkscyYmdGhpcy4kZW1pdChcInVwZGF0ZTp0aWNrZWRcIixpKX0sX19nZXRTbG90U2NvcGU6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXMsbj17dHJlZTp0aGlzLG5vZGU6dCxrZXk6aSxjb2xvcjp0aGlzLmNvbG9yLGRhcms6dGhpcy5kYXJrfTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sXCJleHBhbmRlZFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5leHBhbmRlZH0sc2V0OmZ1bmN0aW9uKHQpe3QhPT1lLmV4cGFuZGVkJiZzLnNldEV4cGFuZGVkKGksdCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sXCJ0aWNrZWRcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUudGlja2VkfSxzZXQ6ZnVuY3Rpb24odCl7dCE9PWUudGlja2VkJiZzLnNldFRpY2tlZChbaV0sdCl9fSksbn0sX19nZXRDaGlsZHJlbjpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXM7cmV0dXJuKHRoaXMuZmlsdGVyP2UuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBpLm1ldGFbdFtpLm5vZGVLZXldXS5tYXRjaGVzRmlsdGVyfSk6ZSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBpLl9fZ2V0Tm9kZSh0LGUpfSl9LF9fZ2V0Tm9kZU1lZGlhOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuaWNvbj90KFFJY29uLHtzdGF0aWNDbGFzczpcInEtdHJlZS1pY29uIHEtbXItc21cIixwcm9wczp7bmFtZTplLmljb24sY29sb3I6ZS5pY29uQ29sb3J9fSk6ZS5pbWd8fGUuYXZhdGFyP3QoXCJpbWdcIix7c3RhdGljQ2xhc3M6XCJxLXRyZWUtaW1nIHEtbXItc21cIixjbGFzczp7YXZhdGFyOmUuYXZhdGFyfSxhdHRyczp7c3JjOmUuaW1nfHxlLmF2YXRhcn19KTp2b2lkIDB9LF9fZ2V0Tm9kZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMscz1lW3RoaXMubm9kZUtleV0sbj10aGlzLm1ldGFbc10sbz1lLmhlYWRlciYmdGhpcy4kc2NvcGVkU2xvdHNbXCJoZWFkZXItXCIrZS5oZWFkZXJdfHx0aGlzLiRzY29wZWRTbG90c1tcImRlZmF1bHQtaGVhZGVyXCJdLHI9bi5pc1BhcmVudD90aGlzLl9fZ2V0Q2hpbGRyZW4odCxlLmNoaWxkcmVuKTpbXSxhPXIubGVuZ3RoPjB8fG4ubGF6eSYmXCJsb2FkZWRcIiE9PW4ubGF6eSxsPWUuYm9keSYmdGhpcy4kc2NvcGVkU2xvdHNbXCJib2R5LVwiK2UuYm9keV18fHRoaXMuJHNjb3BlZFNsb3RzW1wiZGVmYXVsdC1ib2R5XCJdLGM9b3x8bD90aGlzLl9fZ2V0U2xvdFNjb3BlKGUsbixzKTpudWxsO3JldHVybiBsJiYobD10KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10cmVlLW5vZGUtYm9keSByZWxhdGl2ZS1wb3NpdGlvblwifSxbdChcImRpdlwiLHtjbGFzczp0aGlzLmNvbnRlbnRDbGFzc30sW2woYyldKV0pKSx0KFwiZGl2XCIse2tleTpzLHN0YXRpY0NsYXNzOlwicS10cmVlLW5vZGVcIixjbGFzczp7XCJxLXRyZWUtbm9kZS1wYXJlbnRcIjphLFwicS10cmVlLW5vZGUtY2hpbGRcIjohYX19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10cmVlLW5vZGUtaGVhZGVyIHJlbGF0aXZlLXBvc2l0aW9uIHJvdyBuby13cmFwIGl0ZW1zLWNlbnRlclwiLGNsYXNzOntcInEtdHJlZS1ub2RlLWxpbmtcIjpuLmxpbmssXCJxLXRyZWUtbm9kZS1zZWxlY3RlZFwiOm4uc2VsZWN0ZWQsZGlzYWJsZWQ6bi5kaXNhYmxlZH0sb246e2NsaWNrOmZ1bmN0aW9uKCl7aS5fX29uQ2xpY2soZSxuKX19LGRpcmVjdGl2ZXM6bi5zZWxlY3RhYmxlP1t7bmFtZTpcInJpcHBsZVwifV06bnVsbH0sW1wibG9hZGluZ1wiPT09bi5sYXp5P3QoUVNwaW5uZXIse3N0YXRpY0NsYXNzOlwicS10cmVlLW5vZGUtaGVhZGVyLW1lZGlhIHEtbXIteHNcIixwcm9wczp7Y29sb3I6dGhpcy5jb21wdXRlZENvbnRyb2xDb2xvcn19KTphP3QoUUljb24se3N0YXRpY0NsYXNzOlwicS10cmVlLWFycm93IHEtbXIteHMgdHJhbnNpdGlvbi1nZW5lcmljXCIsY2xhc3M6e1wicS10cmVlLWFycm93LXJvdGF0ZVwiOm4uZXhwYW5kZWR9LHByb3BzOntuYW1lOnRoaXMuY29tcHV0ZWRJY29ufSxuYXRpdmVPbjp7Y2xpY2s6ZnVuY3Rpb24odCl7aS5fX29uRXhwYW5kQ2xpY2soZSxuLHQpfX19KTpudWxsLHQoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicm93IG5vLXdyYXAgaXRlbXMtY2VudGVyXCIsY2xhc3M6dGhpcy5jb250ZW50Q2xhc3N9LFtuLmhhc1RpY2tpbmcmJiFuLm5vVGljaz90KFFDaGVja2JveCx7c3RhdGljQ2xhc3M6XCJxLW1yLXhzXCIscHJvcHM6e3ZhbHVlOm4uaW5kZXRlcm1pbmF0ZT9udWxsOm4udGlja2VkLGNvbG9yOnRoaXMuY29tcHV0ZWRDb250cm9sQ29sb3IsZGFyazp0aGlzLmRhcmssa2VlcENvbG9yOiEwLGRpc2FibGU6IW4udGlja2FibGV9LG9uOntpbnB1dDpmdW5jdGlvbih0KXtpLl9fb25UaWNrZWRDbGljayhlLG4sdCl9fX0pOm51bGwsbz9vKGMpOlt0aGlzLl9fZ2V0Tm9kZU1lZGlhKHQsZSksdChcInNwYW5cIixlW3RoaXMubGFiZWxLZXldKV1dKV0pLGE/dChRU2xpZGVUcmFuc2l0aW9uLHtwcm9wczp7ZHVyYXRpb246dGhpcy5kdXJhdGlvbn19LFt0KFwiZGl2XCIse2RpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHZhbHVlOm4uZXhwYW5kZWR9XSxzdGF0aWNDbGFzczpcInEtdHJlZS1ub2RlLWNvbGxhcHNpYmxlXCIsY2xhc3M6XCJ0ZXh0LVwiK3RoaXMuY29sb3J9LFtsLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRyZWUtY2hpbGRyZW5cIixjbGFzczp7ZGlzYWJsZWQ6bi5kaXNhYmxlZH19LHIpXSldKTpsXSl9LF9fb25DbGljazpmdW5jdGlvbih0LGUpe3RoaXMuaGFzU2VsZWN0aW9uP2Uuc2VsZWN0YWJsZSYmdGhpcy4kZW1pdChcInVwZGF0ZTpzZWxlY3RlZFwiLGUua2V5IT09dGhpcy5zZWxlY3RlZD9lLmtleTpudWxsKTp0aGlzLl9fb25FeHBhbmRDbGljayh0LGUpLFwiZnVuY3Rpb25cIj09dHlwZW9mIHQuaGFuZGxlciYmdC5oYW5kbGVyKHQpfSxfX29uRXhwYW5kQ2xpY2s6ZnVuY3Rpb24odCxlLGkpe3ZvaWQgMCE9PWkmJmkuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5zZXRFeHBhbmRlZChlLmtleSwhZS5leHBhbmRlZCx0LGUpfSxfX29uVGlja2VkQ2xpY2s6ZnVuY3Rpb24odCxlLGkpe2lmKGUuaW5kZXRlcm1pbmF0ZSYmaSYmKGk9ITEpLGUuc3RyaWN0VGlja2luZyl0aGlzLnNldFRpY2tlZChbZS5rZXldLGkpO2Vsc2UgaWYoZS5sZWFmVGlja2luZyl7dmFyIHM9W10sbj1mdW5jdGlvbih0KXt0LmlzUGFyZW50PyhpfHx0Lm5vVGlja3x8IXQudGlja2FibGV8fHMucHVzaCh0LmtleSksdC5sZWFmVGlja2luZyYmdC5jaGlsZHJlbi5mb3JFYWNoKG4pKTp0Lm5vVGlja3x8IXQudGlja2FibGV8fHQubGVhZkZpbHRlcmVkVGlja2luZyYmIXQubWF0Y2hlc0ZpbHRlcnx8cy5wdXNoKHQua2V5KX07bihlKSx0aGlzLnNldFRpY2tlZChzLGkpfX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fZ2V0Q2hpbGRyZW4odCx0aGlzLm5vZGVzKTtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdHJlZSByZWxhdGl2ZS1wb3NpdGlvblwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sMD09PWUubGVuZ3RoP3RoaXMuZmlsdGVyP3RoaXMubm9SZXN1bHRzTGFiZWx8fHRoaXMuJHEuaTE4bi50cmVlLm5vUmVzdWx0czp0aGlzLm5vTm9kZXNMYWJlbHx8dGhpcy4kcS5pMThuLnRyZWUubm9Ob2RlczplKX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuZGVmYXVsdEV4cGFuZEFsbCYmdGhpcy5leHBhbmRBbGwoKX19O2Z1bmN0aW9uIGluaXRGaWxlKHQpe3QuX19kb25lVXBsb2FkaW5nPSExLHQuX19mYWlsZWQ9ITEsdC5fX3VwbG9hZGVkPTAsdC5fX3Byb2dyZXNzPTB9dmFyIFFVcGxvYWRlcj17bmFtZTpcIlFVcGxvYWRlclwiLG1peGluczpbRnJhbWVNaXhpbl0scHJvcHM6e25hbWU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJmaWxlXCJ9LGhlYWRlcnM6T2JqZWN0LHVybDp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LHVybEZhY3Rvcnk6e3R5cGU6RnVuY3Rpb24scmVxdWlyZWQ6ITF9LHVwbG9hZEZhY3Rvcnk6RnVuY3Rpb24sYWRkaXRpb25hbEZpZWxkczp7dHlwZTpBcnJheSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuW119fSxub0NvbnRlbnRUeXBlOkJvb2xlYW4sbWV0aG9kOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiUE9TVFwifSxmaWx0ZXI6RnVuY3Rpb24sZXh0ZW5zaW9uczpTdHJpbmcsbXVsdGlwbGU6Qm9vbGVhbixoaWRlVXBsb2FkQnV0dG9uOkJvb2xlYW4saGlkZVVwbG9hZFByb2dyZXNzOkJvb2xlYW4sbm9UaHVtYm5haWxzOkJvb2xlYW4sYXV0b0V4cGFuZDpCb29sZWFuLGV4cGFuZFN0eWxlOltBcnJheSxTdHJpbmcsT2JqZWN0XSxleHBhbmRDbGFzczpbQXJyYXksU3RyaW5nLE9iamVjdF0sd2l0aENyZWRlbnRpYWxzOkJvb2xlYW4sc2VuZFJhdzp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3F1ZXVlOltdLGZpbGVzOltdLHVwbG9hZGluZzohMSx1cGxvYWRlZFNpemU6MCx0b3RhbFNpemU6MCx4aHJzOltdLGZvY3VzZWQ6ITEsZG5kOiExLGV4cGFuZGVkOiExfX0sY29tcHV0ZWQ6e3F1ZXVlTGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVldWUubGVuZ3RofSxoYXNFeHBhbmRlZENvbnRlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxlcy5sZW5ndGg+MH0sbGFiZWw6ZnVuY3Rpb24oKXt2YXIgdD1odW1hblN0b3JhZ2VTaXplKHRoaXMudG90YWxTaXplKTtyZXR1cm4gdGhpcy51cGxvYWRpbmc/dGhpcy5wcm9ncmVzcy50b0ZpeGVkKDIpK1wiJSAoXCIraHVtYW5TdG9yYWdlU2l6ZSh0aGlzLnVwbG9hZGVkU2l6ZSkrXCIgLyBcIit0K1wiKVwiOnRoaXMucXVldWVMZW5ndGgrXCIgKFwiK3QrXCIpXCJ9LHByb2dyZXNzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG90YWxTaXplP01hdGgubWluKDk5Ljk5LHRoaXMudXBsb2FkZWRTaXplL3RoaXMudG90YWxTaXplKjEwMCk6MH0sYWRkRGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kaXNhYmxlfHwhdGhpcy5tdWx0aXBsZSYmdGhpcy5xdWV1ZUxlbmd0aD49MX0sZmlsZXNTdHlsZTpmdW5jdGlvbigpe2lmKHRoaXMubWF4SGVpZ2h0KXJldHVybnttYXhIZWlnaHQ6dGhpcy5tYXhIZWlnaHR9fSxkbmRDbGFzczpmdW5jdGlvbigpe3ZhciB0PVtcInRleHQtXCIrdGhpcy5jb2xvcl07cmV0dXJuIHRoaXMuaXNJbnZlcnRlZCYmdC5wdXNoKFwiaW52ZXJ0ZWRcIiksdH0sY2xhc3NlczpmdW5jdGlvbigpe3JldHVybntcInEtdXBsb2FkZXItZXhwYW5kZWRcIjp0aGlzLmV4cGFuZGVkLFwicS11cGxvYWRlci1kYXJrXCI6dGhpcy5kYXJrLFwicS11cGxvYWRlci1maWxlcy1uby1ib3JkZXJcIjp0aGlzLmlzSW52ZXJ0ZWR8fCF0aGlzLmhpZGVVbmRlcmxpbmV9fSxwcm9ncmVzc0NvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGFyaz9cIndoaXRlXCI6XCJncmV5XCJ9LGNvbXB1dGVkRXh0ZW5zaW9uczpmdW5jdGlvbigpe2lmKHRoaXMuZXh0ZW5zaW9ucylyZXR1cm4gdGhpcy5leHRlbnNpb25zLnNwbGl0KFwiLFwiKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuKHQ9dC50cmltKCkpLmVuZHNXaXRoKFwiLypcIikmJih0PXQuc2xpY2UoMCx0Lmxlbmd0aC0xKSksdH0pfX0sd2F0Y2g6e2hhc0V4cGFuZGVkQ29udGVudDpmdW5jdGlvbih0KXshMT09PXQ/dGhpcy5leHBhbmRlZD0hMTp0aGlzLmF1dG9FeHBhbmQmJih0aGlzLmV4cGFuZGVkPSEwKX19LG1ldGhvZHM6e2FkZDpmdW5jdGlvbih0KXt0JiZ0aGlzLl9fYWRkKG51bGwsdCl9LF9fb25EcmFnT3ZlcjpmdW5jdGlvbih0KXtzdG9wQW5kUHJldmVudCh0KSx0aGlzLmRuZD0hMH0sX19vbkRyYWdMZWF2ZTpmdW5jdGlvbih0KXtzdG9wQW5kUHJldmVudCh0KSx0aGlzLmRuZD0hMX0sX19vbkRyb3A6ZnVuY3Rpb24odCl7c3RvcEFuZFByZXZlbnQodCksdGhpcy5kbmQ9ITE7dmFyIGU9dC5kYXRhVHJhbnNmZXIuZmlsZXM7MCE9PWUubGVuZ3RoJiYoZT10aGlzLm11bHRpcGxlP2U6W2VbMF1dLHRoaXMuX19hZGQobnVsbCxlKSl9LF9fZmlsdGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbCh0LGZ1bmN0aW9uKHQpe3JldHVybiBlLmNvbXB1dGVkRXh0ZW5zaW9ucy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiB0LnR5cGUudG9VcHBlckNhc2UoKS5zdGFydHNXaXRoKGUudG9VcHBlckNhc2UoKSl8fHQubmFtZS50b1VwcGVyQ2FzZSgpLmVuZHNXaXRoKGUudG9VcHBlckNhc2UoKSl9KX0pfSxfX2FkZDpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXM7aWYoIXRoaXMuYWRkRGlzYWJsZWQmJihlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGV8fHQudGFyZ2V0LmZpbGVzKSwhdGhpcy5leHRlbnNpb25zfHwwIT09KGU9dGhpcy5fX2ZpbHRlcihlKSkubGVuZ3RoKSl7dGhpcy4kcmVmcy5maWxlLnZhbHVlPVwiXCI7dmFyIHM9W107ZT1lLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4haS5xdWV1ZS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiB0Lm5hbWU9PT1lLm5hbWV9KX0pLFwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMuZmlsdGVyJiYoZT10aGlzLmZpbHRlcihlKSksKGU9ZS5tYXAoZnVuY3Rpb24odCl7aWYoaW5pdEZpbGUodCksdC5fX3NpemU9aHVtYW5TdG9yYWdlU2l6ZSh0LnNpemUpLHQuX190aW1lc3RhbXA9KG5ldyBEYXRlKS5nZXRUaW1lKCksaS5ub1RodW1ibmFpbHN8fCF0LnR5cGUudG9VcHBlckNhc2UoKS5zdGFydHNXaXRoKFwiSU1BR0VcIikpaS5xdWV1ZS5wdXNoKHQpO2Vsc2V7dmFyIGU9bmV3IEZpbGVSZWFkZXIsbj1uZXcgUHJvbWlzZShmdW5jdGlvbihzLG4pe2Uub25sb2FkPWZ1bmN0aW9uKGUpe3ZhciBuPW5ldyBJbWFnZTtuLnNyYz1lLnRhcmdldC5yZXN1bHQsdC5fX2ltZz1uLGkucXVldWUucHVzaCh0KSxpLl9fY29tcHV0ZVRvdGFsU2l6ZSgpLHMoITApfSxlLm9uZXJyb3I9ZnVuY3Rpb24odCl7bih0KX19KTtlLnJlYWRBc0RhdGFVUkwodCkscy5wdXNoKG4pfXJldHVybiB0fSkpLmxlbmd0aD4wJiYodGhpcy5maWxlcz10aGlzLmZpbGVzLmNvbmNhdChlKSxQcm9taXNlLmFsbChzKS50aGVuKGZ1bmN0aW9uKCl7aS4kZW1pdChcImFkZFwiLGUpfSksdGhpcy5fX2NvbXB1dGVUb3RhbFNpemUoKSl9fSxfX2NvbXB1dGVUb3RhbFNpemU6ZnVuY3Rpb24oKXt0aGlzLnRvdGFsU2l6ZT10aGlzLnF1ZXVlTGVuZ3RoP3RoaXMucXVldWUubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNpemV9KS5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSk6MH0sX19yZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dC5uYW1lLGk9dC5fX2RvbmVVcGxvYWRpbmc7dGhpcy51cGxvYWRpbmcmJiFpPyh0aGlzLiRlbWl0KFwicmVtb3ZlOmFib3J0XCIsdCx0LnhociksdC54aHImJnQueGhyLmFib3J0KCksdGhpcy51cGxvYWRlZFNpemUtPXQuX191cGxvYWRlZCk6dGhpcy4kZW1pdChcInJlbW92ZTpcIisoaT9cImRvbmVcIjpcImNhbmNlbFwiKSx0LHQueGhyKSxpfHwodGhpcy5xdWV1ZT10aGlzLnF1ZXVlLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5uYW1lIT09ZX0pKSx0Ll9fcmVtb3ZlZD0hMCx0aGlzLmZpbGVzPXRoaXMuZmlsZXMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5hbWUhPT1lfSksdGhpcy5maWxlcy5sZW5ndGh8fCh0aGlzLnVwbG9hZGluZz0hMSksdGhpcy5fX2NvbXB1dGVUb3RhbFNpemUoKX0sX19waWNrOmZ1bmN0aW9uKCl7IXRoaXMuYWRkRGlzYWJsZWQmJnRoaXMuJHEucGxhdGZvcm0uaXMubW96aWxsYSYmdGhpcy4kcmVmcy5maWxlLmNsaWNrKCl9LF9fZ2V0VXBsb2FkUHJvbWlzZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKGluaXRGaWxlKHQpLHRoaXMudXBsb2FkRmFjdG9yeSl7dmFyIGk9ZnVuY3Rpb24oaSl7dmFyIHM9aSp0LnNpemU7ZS51cGxvYWRlZFNpemUrPXMtdC5fX3VwbG9hZGVkLHQuX191cGxvYWRlZD1zLHQuX19wcm9ncmVzcz1NYXRoLm1pbig5OSxwYXJzZUludCgxMDAqaSwxMCkpLGUuJGZvcmNlVXBkYXRlKCl9O3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihzLG4pe2UudXBsb2FkRmFjdG9yeSh0LGkpLnRoZW4oZnVuY3Rpb24odCl7dC5fX2RvbmVVcGxvYWRpbmc9ITAsdC5fX3Byb2dyZXNzPTEwMCxlLiRlbWl0KFwidXBsb2FkZWRcIix0KSxlLiRmb3JjZVVwZGF0ZSgpLHModCl9KS5jYXRjaChmdW5jdGlvbihpKXt0Ll9fZmFpbGVkPSEwLGUuJGVtaXQoXCJmYWlsXCIsdCksZS4kZm9yY2VVcGRhdGUoKSxuKGkpfSl9KX12YXIgcz1uZXcgRm9ybURhdGEsbj1uZXcgWE1MSHR0cFJlcXVlc3Q7dHJ5e3RoaXMuYWRkaXRpb25hbEZpZWxkcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3MuYXBwZW5kKHQubmFtZSx0LnZhbHVlKX0pLCEwIT09dGhpcy5ub0NvbnRlbnRUeXBlJiZzLmFwcGVuZChcIkNvbnRlbnQtVHlwZVwiLHQudHlwZXx8XCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIikscy5hcHBlbmQodGhpcy5uYW1lLHQpfWNhdGNoKHQpe3JldHVybn1yZXR1cm4gdC54aHI9bixuZXcgUHJvbWlzZShmdW5jdGlvbihpLG8pe24udXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoXCJwcm9ncmVzc1wiLGZ1bmN0aW9uKGkpe2lmKCF0Ll9fcmVtb3ZlZCl7aS5wZXJjZW50PWkudG90YWw/aS5sb2FkZWQvaS50b3RhbDowO3ZhciBzPWkucGVyY2VudCp0LnNpemU7ZS51cGxvYWRlZFNpemUrPXMtdC5fX3VwbG9hZGVkLHQuX191cGxvYWRlZD1zLHQuX19wcm9ncmVzcz1NYXRoLm1pbig5OSxwYXJzZUludCgxMDAqaS5wZXJjZW50LDEwKSl9fSwhMSksbi5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtuLnJlYWR5U3RhdGU8NHx8KG4uc3RhdHVzJiZuLnN0YXR1czw0MDA/KHQuX19kb25lVXBsb2FkaW5nPSEwLHQuX19wcm9ncmVzcz0xMDAsZS4kZW1pdChcInVwbG9hZGVkXCIsdCxuKSxpKHQpKToodC5fX2ZhaWxlZD0hMCxlLiRlbWl0KFwiZmFpbFwiLHQsbiksbyhuKSkpfSxuLm9uZXJyb3I9ZnVuY3Rpb24oKXt0Ll9fZmFpbGVkPSEwLGUuJGVtaXQoXCJmYWlsXCIsdCxuKSxvKG4pfSwoZS51cmxGYWN0b3J5P2UudXJsRmFjdG9yeSh0KTpQcm9taXNlLnJlc29sdmUoZS51cmwpKS50aGVuKGZ1bmN0aW9uKGkpe24ub3BlbihlLm1ldGhvZCxpLCEwKSxlLndpdGhDcmVkZW50aWFscyYmKG4ud2l0aENyZWRlbnRpYWxzPSEwKSxlLmhlYWRlcnMmJk9iamVjdC5rZXlzKGUuaGVhZGVycykuZm9yRWFjaChmdW5jdGlvbih0KXtuLnNldFJlcXVlc3RIZWFkZXIodCxlLmhlYWRlcnNbdF0pfSksZS54aHJzLnB1c2gobiksZS5zZW5kUmF3P24uc2VuZCh0KTpuLnNlbmQocyl9KX0pfSxwaWNrOmZ1bmN0aW9uKCl7dGhpcy5hZGREaXNhYmxlZHx8dGhpcy4kcmVmcy5maWxlLmNsaWNrKCl9LHVwbG9hZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLnF1ZXVlTGVuZ3RoO2lmKCF0aGlzLmRpc2FibGUmJjAhPT1lKXt2YXIgaT0wO3RoaXMudXBsb2FkZWRTaXplPTAsdGhpcy51cGxvYWRpbmc9ITAsdGhpcy54aHJzPVtdLHRoaXMuJGVtaXQoXCJzdGFydFwiKTt2YXIgcz1mdW5jdGlvbigpeysraT09PWUmJih0LnVwbG9hZGluZz0hMSx0LnhocnM9W10sdC5xdWV1ZT10LnF1ZXVlLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4hdC5fX2RvbmVVcGxvYWRpbmd9KSx0Ll9fY29tcHV0ZVRvdGFsU2l6ZSgpLHQuJGVtaXQoXCJmaW5pc2hcIikpfTt0aGlzLnF1ZXVlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5fX2dldFVwbG9hZFByb21pc2UoZSl9KS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QudGhlbihzKS5jYXRjaChzKX0pfX0sYWJvcnQ6ZnVuY3Rpb24oKXt0aGlzLnhocnMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmFib3J0KCl9KSx0aGlzLnVwbG9hZGluZz0hMSx0aGlzLiRlbWl0KFwiYWJvcnRcIil9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5hYm9ydCgpLHRoaXMuZmlsZXM9W10sdGhpcy5xdWV1ZT1bXSx0aGlzLmV4cGFuZGVkPSExLHRoaXMuX19jb21wdXRlVG90YWxTaXplKCksdGhpcy4kZW1pdChcInJlc2V0XCIpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1bdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCBxLWlucHV0LXRhcmdldCBlbGxpcHNpc1wiLGNsYXNzOnRoaXMuYWxpZ25DbGFzc30sW3RoaXMubGFiZWxdKV07cmV0dXJuIHRoaXMudXBsb2FkaW5nP2kucHVzaCh0aGlzLiRzbG90cy5sb2FkaW5nP3QoXCJkaXZcIix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWVuZCBzZWxmLWNlbnRlciBxLWlmLWNvbnRyb2xcIn0sdGhpcy4kc2xvdHMubG9hZGluZyk6dChRU3Bpbm5lcix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWVuZCBzZWxmLWNlbnRlclwiLHByb3BzOntzaXplOlwiMjRweFwifX0pLHQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS1pZi1lbmQgc2VsZi1jZW50ZXIgcS1pZi1jb250cm9sXCIscHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLnVwbG9hZGVyW1wiY2xlYXJcIisodGhpcy5pc0ludmVydGVkP1wiSW52ZXJ0ZWRcIjpcIlwiKV19LG5hdGl2ZU9uOntjbGljazp0aGlzLmFib3J0fX0pKTooaS5wdXNoKHQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS11cGxvYWRlci1waWNrLWJ1dHRvbiBzZWxmLWNlbnRlciBxLWlmLWNvbnRyb2wgcmVsYXRpdmUtcG9zaXRpb24gb3ZlcmZsb3ctaGlkZGVuXCIscHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLnVwbG9hZGVyLmFkZH0sYXR0cnM6e2Rpc2FibGVkOnRoaXMuYWRkRGlzYWJsZWR9fSxbdChcImlucHV0XCIse3JlZjpcImZpbGVcIixzdGF0aWNDbGFzczpcInEtdXBsb2FkZXItaW5wdXQgYWJzb2x1dGUtZnVsbCBjdXJzb3ItcG9pbnRlclwiLGF0dHJzOk9iamVjdC5hc3NpZ24oe3R5cGU6XCJmaWxlXCIsYWNjZXB0OnRoaXMuZXh0ZW5zaW9uc30sdGhpcy5tdWx0aXBsZT97bXVsdGlwbGU6ITB9Ont9KSxvbjp7Y2hhbmdlOnRoaXMuX19hZGR9fSldKSksdGhpcy5oaWRlVXBsb2FkQnV0dG9ufHxpLnB1c2godChRSWNvbix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2wgc2VsZi1jZW50ZXJcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24udXBsb2FkZXIudXBsb2FkfSxhdHRyczp7ZGlzYWJsZWQ6MD09PXRoaXMucXVldWVMZW5ndGh9LG5hdGl2ZU9uOntjbGljazp0aGlzLnVwbG9hZH19KSkpLHRoaXMuaGFzRXhwYW5kZWRDb250ZW50JiZpLnB1c2godChRSWNvbix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2wgZ2VuZXJpY190cmFuc2l0aW9uIHNlbGYtY2VudGVyXCIsY2xhc3M6e1wicm90YXRlLTE4MFwiOnRoaXMuZXhwYW5kZWR9LHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi51cGxvYWRlci5leHBhbmR9LG5hdGl2ZU9uOntjbGljazpmdW5jdGlvbigpe2UuZXhwYW5kZWQ9IWUuZXhwYW5kZWR9fX0pKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS11cGxvYWRlciByZWxhdGl2ZS1wb3NpdGlvblwiLGNsYXNzOnRoaXMuY2xhc3Nlcyxvbjp7ZHJhZ292ZXI6dGhpcy5fX29uRHJhZ092ZXJ9fSxbdChRSW5wdXRGcmFtZSx7cmVmOlwiaW5wdXRcIixwcm9wczp7cHJlZml4OnRoaXMucHJlZml4LHN1ZmZpeDp0aGlzLnN1ZmZpeCxzdGFja0xhYmVsOnRoaXMuc3RhY2tMYWJlbCxmbG9hdExhYmVsOnRoaXMuZmxvYXRMYWJlbCxlcnJvcjp0aGlzLmVycm9yLHdhcm5pbmc6dGhpcy53YXJuaW5nLHJlYWRvbmx5OnRoaXMucmVhZG9ubHksaW52ZXJ0ZWQ6dGhpcy5pbnZlcnRlZCxpbnZlcnRlZExpZ2h0OnRoaXMuaW52ZXJ0ZWRMaWdodCxkYXJrOnRoaXMuZGFyayxoaWRlVW5kZXJsaW5lOnRoaXMuaGlkZVVuZGVybGluZSxiZWZvcmU6dGhpcy5iZWZvcmUsYWZ0ZXI6dGhpcy5hZnRlcixjb2xvcjp0aGlzLmNvbG9yLGFsaWduOnRoaXMuYWxpZ24sbm9QYXJlbnRGaWVsZDp0aGlzLm5vUGFyZW50RmllbGQsbGVuZ3RoOnRoaXMucXVldWVMZW5ndGgsYWRkaXRpb25hbExlbmd0aDohMH19LGkpLHQoUVNsaWRlVHJhbnNpdGlvbixbdChcImRpdlwiLHtjbGFzczp0aGlzLmV4cGFuZENsYXNzLHN0eWxlOnRoaXMuZXhwYW5kU3R5bGUsZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIsdmFsdWU6dGhpcy5leHBhbmRlZH1dfSxbdChRTGlzdCx7c3RhdGljQ2xhc3M6XCJxLXVwbG9hZGVyLWZpbGVzIHEtcHktbm9uZSBzY3JvbGxcIixzdHlsZTp0aGlzLmZpbGVzU3R5bGUscHJvcHM6e2Rhcms6dGhpcy5kYXJrfX0sdGhpcy5maWxlcy5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIHQoUUl0ZW0se2tleTppLm5hbWUraS5fX3RpbWVzdGFtcCxzdGF0aWNDbGFzczpcInEtdXBsb2FkZXItZmlsZSBxLXBhLXhzXCJ9LFshZS5oaWRlVXBsb2FkUHJvZ3Jlc3MmJnQoUVByb2dyZXNzLHtzdGF0aWNDbGFzczpcInEtdXBsb2FkZXItcHJvZ3Jlc3MtYmcgYWJzb2x1dGUtZnVsbFwiLHByb3BzOntjb2xvcjppLl9fZmFpbGVkP1wibmVnYXRpdmVcIjplLnByb2dyZXNzQ29sb3IscGVyY2VudGFnZTppLl9fcHJvZ3Jlc3MsaGVpZ2h0OlwiMTAwJVwifX0pfHx2b2lkIDAsIWUuaGlkZVVwbG9hZFByb2dyZXNzJiZ0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS11cGxvYWRlci1wcm9ncmVzcy10ZXh0IGFic29sdXRlXCJ9LFtpLl9fcHJvZ3Jlc3MrXCIlXCJdKXx8dm9pZCAwLHQoUUl0ZW1TaWRlLHtwcm9wczppLl9faW1nP3tpbWFnZTppLl9faW1nLnNyY306e2ljb246ZS4kcS5pY29uLnVwbG9hZGVyLmZpbGUsY29sb3I6ZS5jb2xvcn19KSx0KFFJdGVtTWFpbix7cHJvcHM6e2xhYmVsOmkubmFtZSxzdWJsYWJlbDppLl9fc2l6ZX19KSx0KFFJdGVtU2lkZSx7cHJvcHM6e3JpZ2h0OiEwfX0sW3QoUUl0ZW1UaWxlLHtzdGF0aWNDbGFzczpcImN1cnNvci1wb2ludGVyXCIscHJvcHM6e2ljb246ZS4kcS5pY29uLnVwbG9hZGVyW2kuX19kb25lVXBsb2FkaW5nP1wiZG9uZVwiOlwiY2xlYXJcIl0sY29sb3I6ZS5jb2xvcn0sbmF0aXZlT246e2NsaWNrOmZ1bmN0aW9uKCl7ZS5fX3JlbW92ZShpKX19fSldKV0pfSkpXSldKSx0aGlzLmRuZCYmdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdXBsb2FkZXItZG5kIGZsZXggcm93IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBhYnNvbHV0ZS1mdWxsXCIsY2xhc3M6dGhpcy5kbmRDbGFzcyxvbjp7ZHJhZ2VudGVyOnN0b3BBbmRQcmV2ZW50LGRyYWdvdmVyOnN0b3BBbmRQcmV2ZW50LGRyYWdsZWF2ZTp0aGlzLl9fb25EcmFnTGVhdmUsZHJvcDp0aGlzLl9fb25Ecm9wfX0pfHx2b2lkIDBdKX19LFFWaWRlbz17bmFtZTpcIlFWaWRlb1wiLHByb3BzOntzcmM6e3R5cGU6U3RyaW5nLHJlcXVpcmVkOiEwfX0sY29tcHV0ZWQ6e2lmcmFtZURhdGE6ZnVuY3Rpb24oKXtyZXR1cm57YXR0cnM6e3NyYzp0aGlzLnNyYyxmcmFtZWJvcmRlcjpcIjBcIixhbGxvd2Z1bGxzY3JlZW46ITB9fX19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdmlkZW9cIn0sW3QoXCJpZnJhbWVcIix0aGlzLmlmcmFtZURhdGEpXSl9fSxjb21wb25lbnRzJDE9T2JqZWN0LmZyZWV6ZSh7UUFjdGlvblNoZWV0OlFBY3Rpb25TaGVldCxRQWpheEJhcjpRQWpheEJhcixRQWxlcnQ6UUFsZXJ0LFFBdXRvY29tcGxldGU6UUF1dG9jb21wbGV0ZSxRQnJlYWRjcnVtYnM6UUJyZWFkY3J1bWJzLFFCcmVhZGNydW1ic0VsOlFCcmVhZGNydW1ic0VsLFFCdG46UUJ0bixRQnRuR3JvdXA6UUJ0bkdyb3VwLFFCdG5Ecm9wZG93bjpRQnRuRHJvcGRvd24sUUJ0blRvZ2dsZTpRQnRuVG9nZ2xlLFFDYXJkOlFDYXJkLFFDYXJkVGl0bGU6UUNhcmRUaXRsZSxRQ2FyZE1haW46UUNhcmRNYWluLFFDYXJkQWN0aW9uczpRQ2FyZEFjdGlvbnMsUUNhcmRNZWRpYTpRQ2FyZE1lZGlhLFFDYXJkU2VwYXJhdG9yOlFDYXJkU2VwYXJhdG9yLFFDYXJvdXNlbDpRQ2Fyb3VzZWwsUUNhcm91c2VsU2xpZGU6UUNhcm91c2VsU2xpZGUsUUNhcm91c2VsQ29udHJvbDpRQ2Fyb3VzZWxDb250cm9sLFFDaGF0TWVzc2FnZTpRQ2hhdE1lc3NhZ2UsUUNoZWNrYm94OlFDaGVja2JveCxRQ2hpcDpRQ2hpcCxRQ2hpcHNJbnB1dDpRQ2hpcHNJbnB1dCxRQ29sbGFwc2libGU6UUNvbGxhcHNpYmxlLFFDb2xvcjpRQ29sb3IsUUNvbG9yUGlja2VyOlFDb2xvclBpY2tlcixRQ29udGV4dE1lbnU6UUNvbnRleHRNZW51LFFEYXRldGltZTpRRGF0ZXRpbWUsUURhdGV0aW1lUGlja2VyOlFEYXRldGltZVBpY2tlcixRRGlhbG9nOlFEaWFsb2csUUVkaXRvcjpRRWRpdG9yLFFGYWI6UUZhYixRRmFiQWN0aW9uOlFGYWJBY3Rpb24sUUZpZWxkOlFGaWVsZCxRSWNvbjpRSWNvbixRSW5maW5pdGVTY3JvbGw6UUluZmluaXRlU2Nyb2xsLFFJbm5lckxvYWRpbmc6UUlubmVyTG9hZGluZyxRSW5wdXQ6UUlucHV0LFFJbnB1dEZyYW1lOlFJbnB1dEZyYW1lLFFKdW1ib3Ryb246UUp1bWJvdHJvbixRS25vYjpRS25vYixRTGF5b3V0OlFMYXlvdXQsUUxheW91dERyYXdlcjpRTGF5b3V0RHJhd2VyLFFMYXlvdXRGb290ZXI6UUxheW91dEZvb3RlcixRTGF5b3V0SGVhZGVyOlFMYXlvdXRIZWFkZXIsUVBhZ2U6UVBhZ2UsUVBhZ2VDb250YWluZXI6UVBhZ2VDb250YWluZXIsUVBhZ2VTdGlja3k6UVBhZ2VTdGlja3ksUUl0ZW06UUl0ZW0sUUl0ZW1TZXBhcmF0b3I6UUl0ZW1TZXBhcmF0b3IsUUl0ZW1NYWluOlFJdGVtTWFpbixRSXRlbVNpZGU6UUl0ZW1TaWRlLFFJdGVtVGlsZTpRSXRlbVRpbGUsUUl0ZW1XcmFwcGVyOlFJdGVtV3JhcHBlcixRTGlzdDpRTGlzdCxRTGlzdEhlYWRlcjpRTGlzdEhlYWRlcixRTW9kYWw6UU1vZGFsLFFNb2RhbExheW91dDpRTW9kYWxMYXlvdXQsUU5vU3NyOlFOb1NzcixRUmVzaXplT2JzZXJ2YWJsZTpRUmVzaXplT2JzZXJ2YWJsZSxRU2Nyb2xsT2JzZXJ2YWJsZTpRU2Nyb2xsT2JzZXJ2YWJsZSxRV2luZG93UmVzaXplT2JzZXJ2YWJsZTpRV2luZG93UmVzaXplT2JzZXJ2YWJsZSxRT3B0aW9uR3JvdXA6UU9wdGlvbkdyb3VwLFFQYWdpbmF0aW9uOlFQYWdpbmF0aW9uLFFQYXJhbGxheDpRUGFyYWxsYXgsUVBvcG92ZXI6UVBvcG92ZXIsUVBvcHVwRWRpdDpRUG9wdXBFZGl0LFFQcm9ncmVzczpRUHJvZ3Jlc3MsUVB1bGxUb1JlZnJlc2g6UVB1bGxUb1JlZnJlc2gsUVJhZGlvOlFSYWRpbyxRUmFuZ2U6UVJhbmdlLFFSYXRpbmc6UVJhdGluZyxRU2Nyb2xsQXJlYTpRU2Nyb2xsQXJlYSxRU2VhcmNoOlFTZWFyY2gsUVNlbGVjdDpRU2VsZWN0LFFTbGlkZVRyYW5zaXRpb246UVNsaWRlVHJhbnNpdGlvbixRU2xpZGVyOlFTbGlkZXIsUVNwaW5uZXI6UVNwaW5uZXIsUVNwaW5uZXJBdWRpbzpRU3Bpbm5lckF1ZGlvLFFTcGlubmVyQmFsbDpRU3Bpbm5lckJhbGwsUVNwaW5uZXJCYXJzOlFTcGlubmVyQmFycyxRU3Bpbm5lckNpcmNsZXM6UVNwaW5uZXJDaXJjbGVzLFFTcGlubmVyQ29tbWVudDpRU3Bpbm5lckNvbW1lbnQsUVNwaW5uZXJDdWJlOlFTcGlubmVyQ3ViZSxRU3Bpbm5lckRvdHM6UVNwaW5uZXJEb3RzLFFTcGlubmVyRmFjZWJvb2s6UVNwaW5uZXJGYWNlYm9vayxRU3Bpbm5lckdlYXJzOlFTcGlubmVyR2VhcnMsUVNwaW5uZXJHcmlkOlFTcGlubmVyR3JpZCxRU3Bpbm5lckhlYXJ0czpRU3Bpbm5lckhlYXJ0cyxRU3Bpbm5lckhvdXJnbGFzczpRU3Bpbm5lckhvdXJnbGFzcyxRU3Bpbm5lckluZmluaXR5OlFTcGlubmVySW5maW5pdHksUVNwaW5uZXJJb3M6UVNwaW5uZXJfaW9zLFFTcGlubmVyTWF0OkRlZmF1bHRTcGlubmVyLFFTcGlubmVyT3ZhbDpRU3Bpbm5lck92YWwsUVNwaW5uZXJQaWU6UVNwaW5uZXJQaWUsUVNwaW5uZXJQdWZmOlFTcGlubmVyUHVmZixRU3Bpbm5lclJhZGlvOlFTcGlubmVyUmFkaW8sUVNwaW5uZXJSaW5nczpRU3Bpbm5lclJpbmdzLFFTcGlubmVyVGFpbDpRU3Bpbm5lclRhaWwsUVN0ZXA6UVN0ZXAsUVN0ZXBwZXI6UVN0ZXBwZXIsUVN0ZXBwZXJOYXZpZ2F0aW9uOlFTdGVwcGVyTmF2aWdhdGlvbixRUm91dGVUYWI6UVJvdXRlVGFiLFFUYWI6UVRhYixRVGFiUGFuZTpRVGFiUGFuZSxRVGFiczpRVGFicyxRVGFibGU6UVRhYmxlLFFUaDpRVGgsUVRyOlFUcixRVGQ6UVRkLFFUYWJsZUNvbHVtbnM6UVRhYmxlQ29sdW1ucyxRVGltZWxpbmU6UVRpbWVsaW5lLFFUaW1lbGluZUVudHJ5OlFUaW1lbGluZUVudHJ5LFFUb2dnbGU6UVRvZ2dsZSxRVG9vbGJhcjpRVG9vbGJhcixRVG9vbGJhclRpdGxlOlFUb29sYmFyVGl0bGUsUVRvb2x0aXA6UVRvb2x0aXAsUVRyZWU6UVRyZWUsUVVwbG9hZGVyOlFVcGxvYWRlcixRVmlkZW86UVZpZGVvfSk7ZnVuY3Rpb24gdXBkYXRlQmluZGluZyh0LGUpe3ZhciBpPWUudmFsdWUscz0oZS5tb2RpZmllcnMsdC5fX3FiYWNrdG90b3ApO2lmKGkpe2lmKFwibnVtYmVyXCI9PXR5cGVvZiBpKXJldHVybiBzLm9mZnNldD1pLHZvaWQgcy51cGRhdGUoKTtpZihpJiZPYmplY3QoaSkhPT1pKWNvbnNvbGUuZXJyb3IoXCJ2LWJhY2stdG8tdG9wIHJlcXVpcmVzIGFuIG9iamVjdCB7b2Zmc2V0LCBkdXJhdGlvbn0gYXMgcGFyYW1ldGVyXCIsdCk7ZWxzZXtpZihpLm9mZnNldCl7aWYoXCJudW1iZXJcIiE9dHlwZW9mIGkub2Zmc2V0KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoXCJ2LWJhY2stdG8tdG9wIHJlcXVpcmVzIGEgbnVtYmVyIGFzIG9mZnNldFwiLHQpO3Mub2Zmc2V0PWkub2Zmc2V0fWlmKGkuZHVyYXRpb24pe2lmKFwibnVtYmVyXCIhPXR5cGVvZiBpLmR1cmF0aW9uKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoXCJ2LWJhY2stdG8tdG9wIHJlcXVpcmVzIGEgbnVtYmVyIGFzIGR1cmF0aW9uXCIsdCk7cy5kdXJhdGlvbj1pLmR1cmF0aW9ufXMudXBkYXRlKCl9fWVsc2Ugcy51cGRhdGUoKX12YXIgYmFja1RvVG9wPXtuYW1lOlwiYmFjay10by10b3BcIixiaW5kOmZ1bmN0aW9uKHQpe3ZhciBlPXtvZmZzZXQ6MjAwLGR1cmF0aW9uOjMwMCx1cGRhdGVOb3c6ZnVuY3Rpb24oKXt2YXIgaT1nZXRTY3JvbGxQb3NpdGlvbihlLnNjcm9sbFRhcmdldCk8PWUub2Zmc2V0O2khPT10LmNsYXNzTGlzdC5jb250YWlucyhcImhpZGRlblwiKSYmdC5jbGFzc0xpc3RbaT9cImFkZFwiOlwicmVtb3ZlXCJdKFwiaGlkZGVuXCIpfSxnb1RvVG9wOmZ1bmN0aW9uKCl7c2V0U2Nyb2xsUG9zaXRpb24oZS5zY3JvbGxUYXJnZXQsMCxlLmFuaW1hdGU/ZS5kdXJhdGlvbjowKX0sZ29Ub1RvcEtleTpmdW5jdGlvbih0KXsxMz09PXQua2V5Q29kZSYmc2V0U2Nyb2xsUG9zaXRpb24oZS5zY3JvbGxUYXJnZXQsMCxlLmFuaW1hdGU/ZS5kdXJhdGlvbjowKX19O2UudXBkYXRlPWRlYm91bmNlKGUudXBkYXRlTm93LDI1KSx0LmNsYXNzTGlzdC5hZGQoXCJoaWRkZW5cIiksdC5fX3FiYWNrdG90b3A9ZX0saW5zZXJ0ZWQ6ZnVuY3Rpb24odCxlKXt2YXIgaT10Ll9fcWJhY2t0b3RvcDtpLnNjcm9sbFRhcmdldD1nZXRTY3JvbGxUYXJnZXQodCksaS5hbmltYXRlPWUubW9kaWZpZXJzLmFuaW1hdGUsdXBkYXRlQmluZGluZyh0LGUpLGkuc2Nyb2xsVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixpLnVwZGF0ZSxsaXN0ZW5PcHRzLnBhc3NpdmUpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsaS51cGRhdGUsbGlzdGVuT3B0cy5wYXNzaXZlKSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGkuZ29Ub1RvcCksdC5hZGRFdmVudExpc3RlbmVyKFwia2V5dXBcIixpLmdvVG9Ub3BLZXkpfSx1cGRhdGU6ZnVuY3Rpb24odCxlKXtKU09OLnN0cmluZ2lmeShlLm9sZFZhbHVlKSE9PUpTT04uc3RyaW5naWZ5KGUudmFsdWUpP3VwZGF0ZUJpbmRpbmcodCxlKTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5fX3FiYWNrdG90b3AmJnQuX19xYmFja3RvdG9wLnVwZGF0ZU5vdygpfSwwKX0sdW5iaW5kOmZ1bmN0aW9uKHQpe3ZhciBlPXQuX19xYmFja3RvdG9wO2UmJihlLnNjcm9sbFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsZS51cGRhdGUsbGlzdGVuT3B0cy5wYXNzaXZlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLGUudXBkYXRlLGxpc3Rlbk9wdHMucGFzc2l2ZSksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIixlLmdvVG9Ub3ApLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsZS5nb1RvVG9wS2V5KSxkZWxldGUgdC5fX3FiYWNrdG90b3ApfX0sY2xvc2VPdmVybGF5PXtuYW1lOlwiY2xvc2Utb3ZlcmxheVwiLGJpbmQ6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1pLmNvbXBvbmVudEluc3RhbmNlO2U9ZS4kcGFyZW50Oyl7dmFyIHM9ZS4kb3B0aW9ucy5uYW1lO2lmKFwiUVBvcG92ZXJcIj09PXN8fFwiUU1vZGFsXCI9PT1zKXtlLmhpZGUodCk7YnJlYWt9fX0sbj1mdW5jdGlvbih0KXsxMz09PXQua2V5Q29kZSYmcyh0KX07dC5fX3FjbG9zZT17aGFuZGxlcjpzLGhhbmRsZXJLZXk6bn0sdC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIixzKSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLG4pfSx1bmJpbmQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5fX3FjbG9zZTtlJiYodC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIixlLmhhbmRsZXIpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsZS5oYW5kbGVyS2V5KSxkZWxldGUgdC5fX3FjbG9zZSl9fSxnb0JhY2s9e25hbWU6XCJnby1iYWNrXCIsYmluZDpmdW5jdGlvbih0LGUsaSl7dmFyIHM9ZS52YWx1ZSxuPWUubW9kaWZpZXJzLG89e3ZhbHVlOnMscG9zaXRpb246d2luZG93Lmhpc3RvcnkubGVuZ3RoLTEsc2luZ2xlOm4uc2luZ2xlfTtQbGF0Zm9ybS5pcy5jb3Jkb3ZhP28uZ29CYWNrPWZ1bmN0aW9uKCl7aS5jb250ZXh0LiRyb3V0ZXIuZ28oby5zaW5nbGU/LTE6by5wb3NpdGlvbi13aW5kb3cuaGlzdG9yeS5sZW5ndGgpfTpvLmdvQmFjaz1mdW5jdGlvbigpe2kuY29udGV4dC4kcm91dGVyLnJlcGxhY2Uoby52YWx1ZSl9LG8uZ29CYWNrS2V5PWZ1bmN0aW9uKHQpezEzPT09dC5rZXlDb2RlJiZvLmdvQmFjayh0KX0sdC5fX3Fnb2JhY2s9byx0LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLG8uZ29CYWNrKSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLG8uZ29CYWNrS2V5KX0sdXBkYXRlOmZ1bmN0aW9uKHQsZSl7ZS5vbGRWYWx1ZSE9PWUudmFsdWUmJih0Ll9fcWdvYmFjay52YWx1ZT1lLnZhbHVlKX0sdW5iaW5kOmZ1bmN0aW9uKHQpe3ZhciBlPXQuX19xZ29iYWNrO2UmJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGUuZ29CYWNrKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLGUuZ29CYWNrS2V5KSxkZWxldGUgdC5fX3Fnb2JhY2spfX07ZnVuY3Rpb24gdXBkYXRlQmluZGluZyQxKHQsZSl7dmFyIGk9dC5fX3FzY3JvbGxmaXJlO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUudmFsdWUpcmV0dXJuIGkuc2Nyb2xsVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixpLnNjcm9sbCksdm9pZCBjb25zb2xlLmVycm9yKFwidi1zY3JvbGwtZmlyZSByZXF1aXJlcyBhIGZ1bmN0aW9uIGFzIHBhcmFtZXRlclwiLHQpO2kuaGFuZGxlcj1lLnZhbHVlLFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUub2xkVmFsdWUmJihpLnNjcm9sbFRhcmdldC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsaS5zY3JvbGwsbGlzdGVuT3B0cy5wYXNzaXZlKSxpLnNjcm9sbCgpKX12YXIgc2Nyb2xsRmlyZT17bmFtZTpcInNjcm9sbC1maXJlXCIsYmluZDpmdW5jdGlvbih0LGUpe3ZhciBpPXtzY3JvbGw6ZGVib3VuY2UoZnVuY3Rpb24oKXt2YXIgZSxzO2kuc2Nyb2xsVGFyZ2V0PT09d2luZG93PyhzPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tLGU9d2luZG93LmlubmVySGVpZ2h0KToocz1vZmZzZXQodCkudG9wK2hlaWdodCh0KSxlPW9mZnNldChpLnNjcm9sbFRhcmdldCkudG9wK2hlaWdodChpLnNjcm9sbFRhcmdldCkpLHM+MCYmczxlJiYoaS5zY3JvbGxUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLGkuc2Nyb2xsLGxpc3Rlbk9wdHMucGFzc2l2ZSksaS5oYW5kbGVyKHQpKX0sMjUpfTt0Ll9fcXNjcm9sbGZpcmU9aX0saW5zZXJ0ZWQ6ZnVuY3Rpb24odCxlKXt0Ll9fcXNjcm9sbGZpcmUuc2Nyb2xsVGFyZ2V0PWdldFNjcm9sbFRhcmdldCh0KSx1cGRhdGVCaW5kaW5nJDEodCxlKX0sdXBkYXRlOmZ1bmN0aW9uKHQsZSl7ZS52YWx1ZSE9PWUub2xkVmFsdWUmJnVwZGF0ZUJpbmRpbmckMSh0LGUpfSx1bmJpbmQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5fX3FzY3JvbGxmaXJlO2UmJihlLnNjcm9sbFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsZS5zY3JvbGwsbGlzdGVuT3B0cy5wYXNzaXZlKSxkZWxldGUgdC5fX3FzY3JvbGxmaXJlKX19O2Z1bmN0aW9uIHVwZGF0ZUJpbmRpbmckMih0LGUpe3ZhciBpPXQuX19xc2Nyb2xsO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUudmFsdWUpcmV0dXJuIGkuc2Nyb2xsVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixpLnNjcm9sbCxsaXN0ZW5PcHRzLnBhc3NpdmUpLHZvaWQgY29uc29sZS5lcnJvcihcInYtc2Nyb2xsIHJlcXVpcmVzIGEgZnVuY3Rpb24gYXMgcGFyYW1ldGVyXCIsdCk7aS5oYW5kbGVyPWUudmFsdWUsXCJmdW5jdGlvblwiIT10eXBlb2YgZS5vbGRWYWx1ZSYmaS5zY3JvbGxUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLGkuc2Nyb2xsLGxpc3Rlbk9wdHMucGFzc2l2ZSl9dmFyIHNjcm9sbCQxPXtuYW1lOlwic2Nyb2xsXCIsYmluZDpmdW5jdGlvbih0LGUpe3ZhciBpPXtzY3JvbGw6ZnVuY3Rpb24oKXtpLmhhbmRsZXIoZ2V0U2Nyb2xsUG9zaXRpb24oaS5zY3JvbGxUYXJnZXQpLGdldEhvcml6b250YWxTY3JvbGxQb3NpdGlvbihpLnNjcm9sbFRhcmdldCkpfX07dC5fX3FzY3JvbGw9aX0saW5zZXJ0ZWQ6ZnVuY3Rpb24odCxlKXt0Ll9fcXNjcm9sbC5zY3JvbGxUYXJnZXQ9Z2V0U2Nyb2xsVGFyZ2V0KHQpLHVwZGF0ZUJpbmRpbmckMih0LGUpfSx1cGRhdGU6ZnVuY3Rpb24odCxlKXtlLm9sZFZhbHVlIT09ZS52YWx1ZSYmdXBkYXRlQmluZGluZyQyKHQsZSl9LHVuYmluZDpmdW5jdGlvbih0KXt2YXIgZT10Ll9fcXNjcm9sbDtlJiYoZS5zY3JvbGxUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLGUuc2Nyb2xsLGxpc3Rlbk9wdHMucGFzc2l2ZSksZGVsZXRlIHQuX19xc2Nyb2xsKX19O2Z1bmN0aW9uIHVwZGF0ZUJpbmRpbmckMyh0LGUpe3ZhciBpPXQuX19xdG91Y2hob2xkO2kuZHVyYXRpb249cGFyc2VJbnQoZS5hcmcsMTApfHw2MDAsZS5vbGRWYWx1ZSE9PWUudmFsdWUmJihpLmhhbmRsZXI9ZS52YWx1ZSl9dmFyIHRvdWNoSG9sZD17bmFtZTpcInRvdWNoLWhvbGRcIixiaW5kOmZ1bmN0aW9uKHQsZSl7dmFyIGk9IWUubW9kaWZpZXJzLm5vTW91c2Uscz1lLm1vZGlmaWVycy5zdG9wLG49ZS5tb2RpZmllcnMucHJldmVudCxvPXttb3VzZVN0YXJ0OmZ1bmN0aW9uKHQpe2xlZnRDbGljayh0KSYmKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixvLm1vdXNlQWJvcnQpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsby5tb3VzZUFib3J0KSxvLnN0YXJ0KHQpKX0sbW91c2VBYm9ydDpmdW5jdGlvbih0KXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsby5tb3VzZUFib3J0KSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLG8ubW91c2VBYm9ydCksby5hYm9ydCh0KX0sc3RhcnQ6ZnVuY3Rpb24odCl7dmFyIGU9KG5ldyBEYXRlKS5nZXRUaW1lKCk7cyYmdC5zdG9wUHJvcGFnYXRpb24oKSxuJiZ0LnByZXZlbnREZWZhdWx0KCksby50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aSYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixvLm1vdXNlQWJvcnQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsby5tb3VzZUFib3J0KSksby5oYW5kbGVyKHtldnQ6dCxwb3NpdGlvbjpwb3NpdGlvbih0KSxkdXJhdGlvbjoobmV3IERhdGUpLmdldFRpbWUoKS1lfSl9LG8uZHVyYXRpb24pfSxhYm9ydDpmdW5jdGlvbih0KXtjbGVhclRpbWVvdXQoby50aW1lciksby50aW1lcj1udWxsfX07dC5fX3F0b3VjaGhvbGQ9byx1cGRhdGVCaW5kaW5nJDModCxlKSxpJiZ0LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIixvLm1vdXNlU3RhcnQpLHQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixvLnN0YXJ0KSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIixvLmFib3J0KSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLG8uYWJvcnQpfSx1cGRhdGU6ZnVuY3Rpb24odCxlKXt1cGRhdGVCaW5kaW5nJDModCxlKX0sdW5iaW5kOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dC5fX3F0b3VjaGhvbGQ7aSYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixpLnN0YXJ0KSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLGkuYWJvcnQpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLGkuYWJvcnQpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLGkubW91c2VTdGFydCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLGkubW91c2VBYm9ydCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixpLm1vdXNlQWJvcnQpLGRlbGV0ZSB0Ll9fcXRvdWNoaG9sZCl9fSxkaXJlY3RpdmVzPU9iamVjdC5mcmVlemUoe0JhY2tUb1RvcDpiYWNrVG9Ub3AsQ2xvc2VPdmVybGF5OmNsb3NlT3ZlcmxheSxHb0JhY2s6Z29CYWNrLFJpcHBsZTpSaXBwbGUsU2Nyb2xsRmlyZTpzY3JvbGxGaXJlLFNjcm9sbDpzY3JvbGwkMSxUb3VjaEhvbGQ6dG91Y2hIb2xkLFRvdWNoUGFuOlRvdWNoUGFuLFRvdWNoU3dpcGU6VG91Y2hTd2lwZX0pO2Z1bmN0aW9uIG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHQsZSl7dmFyIGk9e307Zm9yKHZhciBzIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscykmJi0xPT09ZS5pbmRleE9mKHMpJiYoaVtzXT10W3NdKTtyZXR1cm4gaX1mdW5jdGlvbiBtb2RhbEZuKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKGkscyl7dmFyIG49aS5jbGFzc05hbWUsbz1vYmplY3RXaXRob3V0UHJvcGVydGllcyhpLFtcImNsYXNzTmFtZVwiXSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGkscil7aWYoaXNTU1IpcmV0dXJuIGkoKTt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7dmFyIGw9ZnVuY3Rpb24odCl7aSh0KSxoLiRkZXN0cm95KCl9LGM9ZnVuY3Rpb24odCl7cih0fHxuZXcgRXJyb3IpLGguJGRlc3Ryb3koKX0saD1uZXcgZSh7ZWw6YSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3Byb3BzOm99fSxyZW5kZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGUodCx7cmVmOlwibW9kYWxcIixwcm9wczpvLGNsYXNzOm4sb246e29rOmwsY2FuY2VsOmN9fSl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLiRyZWZzLm1vZGFsLnNob3coKX19KTtzJiZzLnRoZW4obCxjKX0pfX12YXIgbWV0YVZhbHVlLGFjdGlvblNoZWV0PXtpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXQuJHEsaT10LlZ1ZTt0aGlzLmNyZWF0ZT1lLmFjdGlvblNoZWV0PW1vZGFsRm4oUUFjdGlvblNoZWV0LGkpfX07ZnVuY3Rpb24gZ2V0UHJvcCgpe3JldHVybiBQbGF0Zm9ybS5pcy53aW5waG9uZT9cIm1zYXBwbGljYXRpb24tbmF2YnV0dG9uLWNvbG9yXCI6UGxhdGZvcm0uaXMuc2FmYXJpP1wiYXBwbGUtbW9iaWxlLXdlYi1hcHAtc3RhdHVzLWJhci1zdHlsZVwiOlwidGhlbWUtY29sb3JcIn1mdW5jdGlvbiBnZXRNZXRhVGFnKHQpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiTUVUQVwiKTtmb3IodmFyIGkgaW4gZSlpZihlW2ldLm5hbWU9PT10KXJldHVybiBlW2ldfWZ1bmN0aW9uIHNldENvbG9yKHQpe3ZvaWQgMD09PW1ldGFWYWx1ZSYmKG1ldGFWYWx1ZT1nZXRQcm9wKCkpO3ZhciBlPWdldE1ldGFUYWcobWV0YVZhbHVlKSxpPXZvaWQgMD09PWU7aSYmKGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcIm1ldGFcIikpLnNldEF0dHJpYnV0ZShcIm5hbWVcIixtZXRhVmFsdWUpLGUuc2V0QXR0cmlidXRlKFwiY29udGVudFwiLHQpLGkmJmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoZSl9dmFyIGFkZHJlc3NiYXJDb2xvcj17aW5zdGFsbDpmdW5jdGlvbih0KXt2YXIgZT10LiRxLGk9KHQuVnVlLHQuY2ZnKTt0aGlzLnNldD0haXNTU1ImJlBsYXRmb3JtLmlzLm1vYmlsZSYmKFBsYXRmb3JtLmlzLmNvcmRvdmF8fFBsYXRmb3JtLmlzLndpbnBob25lfHxQbGF0Zm9ybS5pcy5zYWZhcml8fFBsYXRmb3JtLmlzLndlYmtpdHx8UGxhdGZvcm0uaXMudml2YWxkaSk/ZnVuY3Rpb24odCl7dmFyIGU9dHx8Z2V0QnJhbmQoXCJwcmltYXJ5XCIpO1BsYXRmb3JtLmlzLmNvcmRvdmEmJndpbmRvdy5TdGF0dXNCYXI/d2luZG93LlN0YXR1c0Jhci5iYWNrZ3JvdW5kQ29sb3JCeUhleFN0cmluZyhlKTpzZXRDb2xvcihlKX06ZnVuY3Rpb24oKXt9LGUuYWRkcmVzc2JhckNvbG9yPXRoaXMsaS5hZGRyZXNzYmFyQ29sb3ImJnRoaXMuc2V0KGkuYWRkcmVzc2JhckNvbG9yKX19LHByZWZpeGVzPXt9LGFwcEZ1bGxzY3JlZW49e2lzQ2FwYWJsZTohMSxpc0FjdGl2ZTohMSxyZXF1ZXN0OmZ1bmN0aW9uKHQpe3RoaXMuaXNDYXBhYmxlJiYhdGhpcy5pc0FjdGl2ZSYmKHQ9dHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KVtwcmVmaXhlcy5yZXF1ZXN0XSgpfSxleGl0OmZ1bmN0aW9uKCl7dGhpcy5pc0NhcGFibGUmJnRoaXMuaXNBY3RpdmUmJmRvY3VtZW50W3ByZWZpeGVzLmV4aXRdKCl9LHRvZ2dsZTpmdW5jdGlvbih0KXt0aGlzLmlzQWN0aXZlP3RoaXMuZXhpdCgpOnRoaXMucmVxdWVzdCh0KX0saW5zdGFsbDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dC4kcSxzPXQuVnVlO2kuZnVsbHNjcmVlbj10aGlzLGlzU1NSfHwocHJlZml4ZXMucmVxdWVzdD1bXCJyZXF1ZXN0RnVsbHNjcmVlblwiLFwibXNSZXF1ZXN0RnVsbHNjcmVlblwiLFwibW96UmVxdWVzdEZ1bGxTY3JlZW5cIixcIndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuXCJdLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFt0XX0pLHRoaXMuaXNDYXBhYmxlPXZvaWQgMCE9PXByZWZpeGVzLnJlcXVlc3QsdGhpcy5pc0NhcGFibGUmJihwcmVmaXhlcy5leGl0PVtcImV4aXRGdWxsc2NyZWVuXCIsXCJtc0V4aXRGdWxsc2NyZWVuXCIsXCJtb3pDYW5jZWxGdWxsU2NyZWVuXCIsXCJ3ZWJraXRFeGl0RnVsbHNjcmVlblwiXS5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiBkb2N1bWVudFt0XX0pLHRoaXMuaXNBY3RpdmU9ISEoZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnR8fGRvY3VtZW50Lm1vekZ1bGxTY3JlZW5FbGVtZW50fHxkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRWxlbWVudHx8ZG9jdW1lbnQubXNGdWxsc2NyZWVuRWxlbWVudCksW1wib25mdWxsc2NyZWVuY2hhbmdlXCIsXCJvbm1zZnVsbHNjcmVlbmNoYW5nZVwiLFwib25tb3pmdWxsc2NyZWVuY2hhbmdlXCIsXCJvbndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2VcIl0uZm9yRWFjaChmdW5jdGlvbih0KXtkb2N1bWVudFt0XT1mdW5jdGlvbigpe2UuaXNBY3RpdmU9IWUuaXNBY3RpdmV9fSkscy51dGlsLmRlZmluZVJlYWN0aXZlKHRoaXMsXCJpc0FjdGl2ZVwiLHRoaXMuaXNBY3RpdmUpKSl9fSxhcHBWaXNpYmlsaXR5PXthcHBWaXNpYmxlOiExLGluc3RhbGw6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXQuJHEscz10LlZ1ZTtpZihpc1NTUil0aGlzLmFwcFZpc2libGU9aS5hcHBWaXNpYmxlPSEwO2Vsc2V7dmFyIG4sbzt2b2lkIDAhPT1kb2N1bWVudC5oaWRkZW4/KG49XCJoaWRkZW5cIixvPVwidmlzaWJpbGl0eWNoYW5nZVwiKTp2b2lkIDAhPT1kb2N1bWVudC5tc0hpZGRlbj8obj1cIm1zSGlkZGVuXCIsbz1cIm1zdmlzaWJpbGl0eWNoYW5nZVwiKTp2b2lkIDAhPT1kb2N1bWVudC53ZWJraXRIaWRkZW4mJihuPVwid2Via2l0SGlkZGVuXCIsbz1cIndlYmtpdHZpc2liaWxpdHljaGFuZ2VcIik7dmFyIHI9ZnVuY3Rpb24oKXtlLmFwcFZpc2libGU9aS5hcHBWaXNpYmxlPSFkb2N1bWVudFtuXX07cigpLG8mJnZvaWQgMCE9PWRvY3VtZW50W25dJiYocy51dGlsLmRlZmluZVJlYWN0aXZlKGksXCJhcHBWaXNpYmxlXCIsdGhpcy5hcHBWaXNpYmxlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKG8sciwhMSkpfX19O2Z1bmN0aW9uIGVuY29kZSh0KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHQpfWZ1bmN0aW9uIGRlY29kZSh0KXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHQpfWZ1bmN0aW9uIHN0cmluZ2lmeUNvb2tpZVZhbHVlKHQpe3JldHVybiBlbmNvZGUodD09PU9iamVjdCh0KT9KU09OLnN0cmluZ2lmeSh0KTpcIlwiK3QpfWZ1bmN0aW9uIHJlYWQodCl7aWYoXCJcIj09PXQpcmV0dXJuIHQ7MD09PXQuaW5kZXhPZignXCInKSYmKHQ9dC5zbGljZSgxLC0xKS5yZXBsYWNlKC9cXFxcXCIvZywnXCInKS5yZXBsYWNlKC9cXFxcXFxcXC9nLFwiXFxcXFwiKSksdD1kZWNvZGUodC5yZXBsYWNlKC9cXCsvZyxcIiBcIikpO3RyeXt0PUpTT04ucGFyc2UodCl9Y2F0Y2godCl7fXJldHVybiB0fWZ1bmN0aW9uIHNldCh0LGUsaSxzKXt2YXIgbixvO2lmKHZvaWQgMD09PWkmJihpPXt9KSx2b2lkIDAhPT1pLmV4cGlyZXMpe2lmKG89cGFyc2VJbnQoaS5leHBpcmVzLDEwKSxpc05hTihvKSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKFwiUXVhc2FyIGNvb2tpZTogZXhwaXJlcyBuZWVkcyB0byBiZSBhIG51bWJlclwiKTsobj1uZXcgRGF0ZSkuc2V0TWlsbGlzZWNvbmRzKG4uZ2V0TWlsbGlzZWNvbmRzKCkrODY0ZTUqbyl9dmFyIHI9ZW5jb2RlKHQpK1wiPVwiK3N0cmluZ2lmeUNvb2tpZVZhbHVlKGUpLGE9W3Isdm9pZCAwIT09bj9cIjsgRXhwaXJlcz1cIituLnRvVVRDU3RyaW5nKCk6XCJcIixpLnBhdGg/XCI7IFBhdGg9XCIraS5wYXRoOlwiXCIsaS5kb21haW4/XCI7IERvbWFpbj1cIitpLmRvbWFpbjpcIlwiLGkuaHR0cE9ubHk/XCI7IEh0dHBPbmx5XCI6XCJcIixpLnNlY3VyZT9cIjsgU2VjdXJlXCI6XCJcIl0uam9pbihcIlwiKTtpZihzKXtzLnJlcS5xQ29va2llcz9zLnJlcS5xQ29va2llcy5wdXNoKGEpOnMucmVxLnFDb29raWVzPVthXSxzLnJlcy5zZXRIZWFkZXIoXCJTZXQtQ29va2llXCIscy5yZXEucUNvb2tpZXMpO3ZhciBsPXMucmVxLmhlYWRlcnMuY29va2llfHxcIlwiO2lmKHZvaWQgMCE9PW4mJm88MCl7dmFyIGM9Z2V0KHQscyk7dm9pZCAwIT09YyYmKGw9bC5yZXBsYWNlKHQrXCI9XCIrYytcIjsgXCIsXCJcIikucmVwbGFjZShcIjsgXCIrdCtcIj1cIitjLFwiXCIpLnJlcGxhY2UodCtcIj1cIitjLFwiXCIpKX1lbHNlIGw9bD9yK1wiOyBcIitsOmE7cy5yZXEuaGVhZGVycy5jb29raWU9bH1lbHNlIGRvY3VtZW50LmNvb2tpZT1hfWZ1bmN0aW9uIGdldCh0LGUpe2Zvcih2YXIgaSxzLG4sbz10P3ZvaWQgMDp7fSxyPWU/ZS5yZXEuaGVhZGVyczpkb2N1bWVudCxhPXIuY29va2llP3IuY29va2llLnNwbGl0KFwiOyBcIik6W10sbD0wLGM9YS5sZW5ndGg7bDxjO2wrKylpZihzPWRlY29kZSgoaT1hW2xdLnNwbGl0KFwiPVwiKSkuc2hpZnQoKSksbj1pLmpvaW4oXCI9XCIpLHQpe2lmKHQ9PT1zKXtvPXJlYWQobik7YnJlYWt9fWVsc2Ugb1tzXT1uO3JldHVybiBvfWZ1bmN0aW9uIHJlbW92ZSh0LGUsaSl7c2V0KHQsXCJcIixPYmplY3QuYXNzaWduKHt9LGUse2V4cGlyZXM6LTF9KSxpKX1mdW5jdGlvbiBoYXModCxlKXtyZXR1cm4gdm9pZCAwIT09Z2V0KHQsZSl9ZnVuY3Rpb24gZ2V0T2JqZWN0KHQpe3ZvaWQgMD09PXQmJih0PXt9KTt2YXIgZT10LnNzcjtyZXR1cm57Z2V0OmZ1bmN0aW9uKHQpe3JldHVybiBnZXQodCxlKX0sc2V0OmZ1bmN0aW9uKHQsaSxzKXtyZXR1cm4gc2V0KHQsaSxzLGUpfSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuIGhhcyh0LGUpfSxyZW1vdmU6ZnVuY3Rpb24odCxpKXtyZXR1cm4gcmVtb3ZlKHQsaSxlKX0sYWxsOmZ1bmN0aW9uKCl7cmV0dXJuIGdldChudWxsLGUpfX19dmFyIHZtLHRpbWVvdXQsdXBkYXRlSWQsc3NyVGFrZW92ZXIsY29va2llcz17cGFyc2VTU1I6ZnVuY3Rpb24odCl7cmV0dXJuIHQ/Z2V0T2JqZWN0KHtzc3I6dH0pOnRoaXN9LGluc3RhbGw6ZnVuY3Rpb24odCl7dmFyIGU9dC4kcSxpPXQucXVldWVzO2lzU1NSP2kuc2VydmVyLnB1c2goZnVuY3Rpb24odCxlKXt0LmNvb2tpZXM9Z2V0T2JqZWN0KGUpfSk6KE9iamVjdC5hc3NpZ24odGhpcyxnZXRPYmplY3QoKSksZS5jb29raWVzPXRoaXMpfX0sZGlhbG9nPXtpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXQuJHEsaT10LlZ1ZTt0aGlzLmNyZWF0ZT1lLmRpYWxvZz1tb2RhbEZuKFFEaWFsb2csaSl9fSxsb2FkaW5nQmFyPXtzdGFydDpmdW5jdGlvbigpe30sc3RvcDpmdW5jdGlvbigpe30saW5jcmVtZW50OmZ1bmN0aW9uKCl7fSxpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXQuJHEsaT10LlZ1ZSxzPXQuY2ZnO2lmKGlzU1NSKWUubG9hZGluZ0Jhcj10aGlzO2Vsc2V7dmFyIG49ZS5sb2FkaW5nQmFyPW5ldyBpKHtyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoUUFqYXhCYXIse3JlZjpcImJhclwiLHByb3BzOnMubG9hZGluZ0Jhcn0pfX0pLiRtb3VudCgpLiRyZWZzLmJhcjtPYmplY3QuYXNzaWduKHRoaXMse3N0YXJ0Om4uc3RhcnQsc3RvcDpuLnN0b3AsaW5jcmVtZW50Om4uaW5jcmVtZW50fSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlLmxvYWRpbmdCYXIuJHBhcmVudC4kZWwpfX19LHByb3BzPXt9LGRlZmF1bHRzPXtkZWxheTowLG1lc3NhZ2U6ITEsc3Bpbm5lclNpemU6ODAsc3Bpbm5lckNvbG9yOlwid2hpdGVcIixtZXNzYWdlQ29sb3I6XCJ3aGl0ZVwiLHNwaW5uZXI6UVNwaW5uZXIsY3VzdG9tQ2xhc3M6ITF9LHN0YXRpY0NsYXNzPVwicS1sb2FkaW5nIGFuaW1hdGUtZmFkZSBmdWxsc2NyZWVuIGNvbHVtbiBmbGV4LWNlbnRlciB6LW1heFwiLGxvYWRpbmc9e2lzQWN0aXZlOiExLHNob3c6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpc1NTUnx8KFwic3RyaW5nXCI9PXR5cGVvZihwcm9wcz1PYmplY3QuYXNzaWduKHt9LGRlZmF1bHRzLHQpKS5jdXN0b21DbGFzcyYmKHByb3BzLmN1c3RvbUNsYXNzPXByb3BzLmN1c3RvbUNsYXNzLnRyaW0oKSksdGhpcy5pc0FjdGl2ZT92bSYmdm0uJGZvcmNlVXBkYXRlKCk6KHRpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe3RpbWVvdXQ9bnVsbDt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwid2l0aC1sb2FkaW5nXCIpLHZtPW5ldyBlLl9fVnVlKHtuYW1lOlwiUUxvYWRpbmdcIixlbDp0LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpzdGF0aWNDbGFzcyxjbGFzczpwcm9wcy5jdXN0b21DbGFzc30sW3QocHJvcHMuc3Bpbm5lcix7cHJvcHM6e2NvbG9yOnByb3BzLnNwaW5uZXJDb2xvcixzaXplOnByb3BzLnNwaW5uZXJTaXplfX0pLHByb3BzLm1lc3NhZ2U/dChcImRpdlwiLHtjbGFzczpcInRleHQtXCIrcHJvcHMubWVzc2FnZUNvbG9yLGRvbVByb3BzOntpbm5lckhUTUw6cHJvcHMubWVzc2FnZX19KTpudWxsXSl9fSl9LHByb3BzLmRlbGF5KSx0aGlzLmlzQWN0aXZlPSEwKSl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLmlzQWN0aXZlJiYodGltZW91dD8oY2xlYXJUaW1lb3V0KHRpbWVvdXQpLHRpbWVvdXQ9bnVsbCk6KHZtLiRkZXN0cm95KCksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwid2l0aC1sb2FkaW5nXCIpLHZtLiRlbC5yZW1vdmUoKSx2bT1udWxsKSx0aGlzLmlzQWN0aXZlPSExKX0sc2V0RGVmYXVsdHM6ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbihkZWZhdWx0cyx0KX0sX19WdWU6bnVsbCxpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXQuJHEsaT10LlZ1ZSxzPXQuY2ZnLmxvYWRpbmc7cyYmdGhpcy5zZXREZWZhdWx0cyhzKSxlLmxvYWRpbmc9dGhpcyx0aGlzLl9fVnVlPWl9fTtmdW5jdGlvbiBub3JtYWxpemUodCl7dC50aXRsZSYmKHQudGl0bGU9dC50aXRsZVRlbXBsYXRlP3QudGl0bGVUZW1wbGF0ZSh0LnRpdGxlfHxcIlwiKTp0LnRpdGxlLGRlbGV0ZSB0LnRpdGxlVGVtcGxhdGUpLFtbXCJtZXRhXCIsXCJjb250ZW50XCJdLFtcImxpbmtcIixcImhyZWZcIl1dLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIGk9dFtlWzBdXSxzPWVbMV07Zm9yKHZhciBuIGluIGkpe3ZhciBvPWlbbl07by50ZW1wbGF0ZSYmKDE9PT1PYmplY3Qua2V5cyhvKS5sZW5ndGg/ZGVsZXRlIGlbbl06KG9bc109by50ZW1wbGF0ZShvW3NdfHxcIlwiKSxkZWxldGUgby50ZW1wbGF0ZSkpfX0pfWZ1bmN0aW9uIGNoYW5nZWQodCxlKXtpZihPYmplY3Qua2V5cyh0KS5sZW5ndGghPT1PYmplY3Qua2V5cyhlKS5sZW5ndGgpcmV0dXJuITA7Zm9yKHZhciBpIGluIHQpaWYodFtpXSE9PWVbaV0pcmV0dXJuITB9ZnVuY3Rpb24gYm9keUZpbHRlcih0KXtyZXR1cm4hW1wiY2xhc3NcIixcInN0eWxlXCJdLmluY2x1ZGVzKHQpfWZ1bmN0aW9uIGh0bWxGaWx0ZXIodCl7cmV0dXJuIVtcImxhbmdcIixcImRpclwiXS5pbmNsdWRlcyh0KX1mdW5jdGlvbiBkaWZmKHQsZSl7dmFyIGk9e30scz17fTtyZXR1cm4gdD8odC50aXRsZSE9PWUudGl0bGUmJihpLnRpdGxlPWUudGl0bGUpLFtcIm1ldGFcIixcImxpbmtcIixcInNjcmlwdFwiLFwiaHRtbEF0dHJcIixcImJvZHlBdHRyXCJdLmZvckVhY2goZnVuY3Rpb24obil7dmFyIG89dFtuXSxyPWVbbl07aWYoc1tuXT1bXSxvKXtmb3IodmFyIGEgaW4gaVtuXT17fSxvKXIuaGFzT3duUHJvcGVydHkoYSl8fHNbbl0ucHVzaChhKTtmb3IodmFyIGwgaW4gcilvLmhhc093blByb3BlcnR5KGwpP2NoYW5nZWQob1tsXSxyW2xdKSYmKHNbbl0ucHVzaChsKSxpW25dW2xdPXJbbF0pOmlbbl1bbF09cltsXX1lbHNlIGlbbl09cn0pLHthZGQ6aSxyZW1vdmU6c30pOnthZGQ6ZSxyZW1vdmU6c319ZnVuY3Rpb24gYXBwbHkodCl7dmFyIGU9dC5hZGQsaT10LnJlbW92ZTtlLnRpdGxlJiYoZG9jdW1lbnQudGl0bGU9ZS50aXRsZSksT2JqZWN0LmtleXMoaSkubGVuZ3RoPjAmJihbXCJtZXRhXCIsXCJsaW5rXCIsXCJzY3JpcHRcIl0uZm9yRWFjaChmdW5jdGlvbih0KXtpW3RdLmZvckVhY2goZnVuY3Rpb24oZSl7ZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yKHQrJ1tkYXRhLXFtZXRhPVwiJytlKydcIl0nKS5yZW1vdmUoKX0pfSksaS5odG1sQXR0ci5maWx0ZXIoaHRtbEZpbHRlcikuZm9yRWFjaChmdW5jdGlvbih0KXtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKHQpfSksaS5ib2R5QXR0ci5maWx0ZXIoYm9keUZpbHRlcikuZm9yRWFjaChmdW5jdGlvbih0KXtkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZSh0KX0pKSxbXCJtZXRhXCIsXCJsaW5rXCIsXCJzY3JpcHRcIl0uZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgaT1lW3RdO2Zvcih2YXIgcyBpbiBpKXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHQpO2Zvcih2YXIgbyBpbiBpW3NdKVwiaW5uZXJIVE1MXCIhPT1vJiZuLnNldEF0dHJpYnV0ZShvLGlbc11bb10pO24uc2V0QXR0cmlidXRlKFwiZGF0YS1xbWV0YVwiLHMpLFwic2NyaXB0XCI9PT10JiYobi5pbm5lckhUTUw9aVtzXS5pbm5lckhUTUx8fFwiXCIpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobil9fSksT2JqZWN0LmtleXMoZS5odG1sQXR0cikuZmlsdGVyKGh0bWxGaWx0ZXIpLmZvckVhY2goZnVuY3Rpb24odCl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNldEF0dHJpYnV0ZSh0LGUuaHRtbEF0dHJbdF18fFwiXCIpfSksT2JqZWN0LmtleXMoZS5ib2R5QXR0cikuZmlsdGVyKGJvZHlGaWx0ZXIpLmZvckVhY2goZnVuY3Rpb24odCl7ZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUodCxlLmJvZHlBdHRyW3RdfHxcIlwiKX0pfWZ1bmN0aW9uIHBhcnNlTWV0YSh0LGUpe2lmKCF0Ll9pbmFjdGl2ZSl7dmFyIGk9dC4kb3B0aW9ucy5tZXRhO2kmJihleHRlbmQoITAsZSx0Ll9fcU1ldGEpLGkuc3RvcFByb3BhZ2F0aW9uKXx8dC4kY2hpbGRyZW4mJnQuJGNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24odCl7cGFyc2VNZXRhKHQsZSl9KX19ZnVuY3Rpb24gdXBkYXRlQ2xpZW50KCl7aWYoc3NyVGFrZW92ZXIpcmV0dXJuIHNzclRha2VvdmVyPSExLHRoaXMuJHJvb3QuX19jdXJyZW50TWV0YT13aW5kb3cuX19RX01FVEFfXyx2b2lkIGRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvcihcInNjcmlwdFtkYXRhLXFtZXRhLWluaXRdXCIpLnJlbW92ZSgpO3ZhciB0PXt0aXRsZTpcIlwiLHRpdGxlVGVtcGxhdGU6bnVsbCxtZXRhOnt9LGxpbms6e30sc2NyaXB0Ont9LGh0bWxBdHRyOnt9LGJvZHlBdHRyOnt9fTtwYXJzZU1ldGEodGhpcy4kcm9vdCx0KSxub3JtYWxpemUodCksYXBwbHkoZGlmZih0aGlzLiRyb290Ll9fY3VycmVudE1ldGEsdCkpLHRoaXMuJHJvb3QuX19jdXJyZW50TWV0YT10fWZ1bmN0aW9uIGdldEF0dHIodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBpPXRbZV07cmV0dXJuIGUrKHZvaWQgMCE9PWk/Jz1cIicraSsnXCInOlwiXCIpfX1mdW5jdGlvbiBnZXRIZWFkKHQpe3ZhciBlPVwiXCI7cmV0dXJuIHQudGl0bGUmJihlKz1cIjx0aXRsZT5cIit0LnRpdGxlK1wiPC90aXRsZT5cIiksW1wibWV0YVwiLFwibGlua1wiLFwic2NyaXB0XCJdLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIHM9dFtpXTtmb3IodmFyIG4gaW4gcyl7dmFyIG89T2JqZWN0LmtleXMoc1tuXSkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVyblwiaW5uZXJIVE1MXCIhPT10fSkubWFwKGdldEF0dHIoc1tuXSkpO2UrPVwiPFwiK2krXCIgXCIrby5qb2luKFwiIFwiKSsnIGRhdGEtcW1ldGE9XCInK24rJ1wiPicsXCJzY3JpcHRcIj09PWkmJihlKz0oc1tuXS5pbm5lckhUTUx8fFwiXCIpK1wiPFxcL3NjcmlwdD5cIil9fSksZX1mdW5jdGlvbiBnZXRTZXJ2ZXJNZXRhKHQsZSl7dmFyIGk9e3RpdGxlOlwiXCIsdGl0bGVUZW1wbGF0ZTpudWxsLG1ldGE6e30sbGluazp7fSxodG1sQXR0cjp7fSxib2R5QXR0cjp7fSxub3NjcmlwdDp7fX07cGFyc2VNZXRhKHQsaSksbm9ybWFsaXplKGkpO3ZhciBzPXtcIiUlUV9IVE1MX0FUVFJTJSVcIjpPYmplY3Qua2V5cyhpLmh0bWxBdHRyKS5maWx0ZXIoaHRtbEZpbHRlcikubWFwKGdldEF0dHIoaS5odG1sQXR0cikpLmpvaW4oXCIgXCIpLFwiJSVRX0hFQURfVEFHUyUlXCI6Z2V0SGVhZChpKSxcIiUlUV9CT0RZX0FUVFJTJSVcIjpPYmplY3Qua2V5cyhpLmJvZHlBdHRyKS5maWx0ZXIoYm9keUZpbHRlcikubWFwKGdldEF0dHIoaS5ib2R5QXR0cikpLmpvaW4oXCIgXCIpLFwiJSVRX0JPRFlfVEFHUyUlXCI6T2JqZWN0LmtleXMoaS5ub3NjcmlwdCkubWFwKGZ1bmN0aW9uKHQpe3JldHVybic8bm9zY3JpcHQgZGF0YS1xbWV0YT1cIicrdCsnXCI+JytpLm5vc2NyaXB0W3RdK1wiPC9ub3NjcmlwdD5cIn0pLmpvaW4oXCJcIikrXCI8c2NyaXB0IGRhdGEtcW1ldGEtaW5pdD53aW5kb3cuX19RX01FVEFfXz1cIisoZGVsZXRlIGkubm9zY3JpcHQmJkpTT04uc3RyaW5naWZ5KGkpKStcIjxcXC9zY3JpcHQ+XCJ9O3JldHVybiBPYmplY3Qua2V5cyhzKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2U9ZS5yZXBsYWNlKHQsc1t0XSl9KSxlfWZ1bmN0aW9uIGJlZm9yZUNyZWF0ZSgpe3RoaXMuJG9wdGlvbnMubWV0YSYmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMuJG9wdGlvbnMubWV0YT8odGhpcy4kb3B0aW9ucy5jb21wdXRlZHx8KHRoaXMuJG9wdGlvbnMuY29tcHV0ZWQ9e30pLHRoaXMuJG9wdGlvbnMuY29tcHV0ZWQuX19xTWV0YT10aGlzLiRvcHRpb25zLm1ldGEpOnRoaXMuX19xTWV0YT10aGlzLiRvcHRpb25zLm1ldGEpfWZ1bmN0aW9uIHRyaWdnZXJNZXRhKCl7dGhpcy4kb3B0aW9ucy5tZXRhJiZ0aGlzLl9fcU1ldGFVcGRhdGUoKX12YXIgbWV0YT17aW5zdGFsbDpmdW5jdGlvbih0KXt2YXIgZT10LnF1ZXVlcyxpPXQuVnVlO2lzU1NSPyhpLnByb3RvdHlwZS4kZ2V0TWV0YUhUTUw9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBnZXRTZXJ2ZXJNZXRhKHQsZSl9fSxpLm1peGluKHtiZWZvcmVDcmVhdGU6YmVmb3JlQ3JlYXRlfSksZS5zZXJ2ZXIucHVzaChmdW5jdGlvbih0LGUpe2Uuc3NyLlFfSFRNTF9BVFRSUys9XCIgJSVRX0hUTUxfQVRUUlMlJVwiLE9iamVjdC5hc3NpZ24oZS5zc3Ise1FfSEVBRF9UQUdTOlwiJSVRX0hFQURfVEFHUyUlXCIsUV9CT0RZX0FUVFJTOlwiJSVRX0JPRFlfQVRUUlMlJVwiLFFfQk9EWV9UQUdTOlwiJSVRX0JPRFlfVEFHUyUlXCJ9KX0pKTooc3NyVGFrZW92ZXI9ZnJvbVNTUixpLm1peGluKHtiZWZvcmVDcmVhdGU6YmVmb3JlQ3JlYXRlLGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLiRvcHRpb25zLm1ldGEmJih0aGlzLl9fcU1ldGFVbndhdGNoPXRoaXMuJHdhdGNoKFwiX19xTWV0YVwiLHRoaXMuX19xTWV0YVVwZGF0ZSkpfSxhY3RpdmF0ZWQ6dHJpZ2dlck1ldGEsZGVhY3RpdmF0ZWQ6dHJpZ2dlck1ldGEsYmVmb3JlTW91bnQ6dHJpZ2dlck1ldGEsZGVzdHJveWVkOmZ1bmN0aW9uKCl7dGhpcy4kb3B0aW9ucy5tZXRhJiYodGhpcy5fX3FNZXRhVW53YXRjaCgpLHRoaXMuX19xTWV0YVVwZGF0ZSgpKX0sbWV0aG9kczp7X19xTWV0YVVwZGF0ZTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh1cGRhdGVJZCksdXBkYXRlSWQ9c2V0VGltZW91dCh1cGRhdGVDbGllbnQuYmluZCh0aGlzKSw1MCl9fX0pKX19LGRlZmF1bHRzJDE9e30scG9zaXRpb25MaXN0PVtcInRvcC1sZWZ0XCIsXCJ0b3AtcmlnaHRcIixcImJvdHRvbS1sZWZ0XCIsXCJib3R0b20tcmlnaHRcIixcInRvcFwiLFwiYm90dG9tXCIsXCJsZWZ0XCIsXCJyaWdodFwiLFwiY2VudGVyXCJdO2Z1bmN0aW9uIGluaXQodCl7dmFyIGU9dC5WdWUsaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaSksdGhpcy5fX3ZtPW5ldyBlKHtuYW1lOlwiUU5vdGlmaWNhdGlvbnNcIixkYXRhOntub3RpZnM6e2NlbnRlcjpbXSxsZWZ0OltdLHJpZ2h0OltdLHRvcDpbXSxcInRvcC1sZWZ0XCI6W10sXCJ0b3AtcmlnaHRcIjpbXSxib3R0b206W10sXCJib3R0b20tbGVmdFwiOltdLFwiYm90dG9tLXJpZ2h0XCI6W119fSxtZXRob2RzOnthZGQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZighdClyZXR1cm4gY29uc29sZS5lcnJvcihcIk5vdGlmeTogcGFyYW1ldGVyIHJlcXVpcmVkXCIpLCExO3ZhciBpPU9iamVjdC5hc3NpZ24oe30sZGVmYXVsdHMkMSxcInN0cmluZ1wiPT10eXBlb2YgdD97bWVzc2FnZTp0fTpjbG9uZSh0KSk7aWYoaS5wb3NpdGlvbil7aWYoIXBvc2l0aW9uTGlzdC5pbmNsdWRlcyhpLnBvc2l0aW9uKSlyZXR1cm4gY29uc29sZS5lcnJvcihcIk5vdGlmeTogd3JvbmcgcG9zaXRpb246IFwiK2kucG9zaXRpb24pLCExfWVsc2UgaS5wb3NpdGlvbj1cImJvdHRvbVwiO2lmKGkuX191aWQ9dWlkKCksdm9pZCAwPT09aS50aW1lb3V0KWkudGltZW91dD01ZTM7ZWxzZXt2YXIgcz1wYXJzZUludChpLnRpbWVvdXQsMTApO2lmKGlzTmFOKHMpfHxzPDApcmV0dXJuIGNvbnNvbGUuZXJyb3IoXCJOb3RpZnk6IHdyb25nIHRpbWVvdXQ6IFwiK2kudGltZW91dCksITE7aS50aW1lb3V0PXN9dmFyIG49ZnVuY3Rpb24oKXtlLnJlbW92ZShpKX07aWYodC5hY3Rpb25zJiYoaS5hY3Rpb25zPXQuYWN0aW9ucy5tYXAoZnVuY3Rpb24odCl7dmFyIGU9dC5oYW5kbGVyLGk9Y2xvbmUodCk7cmV0dXJuIGkuaGFuZGxlcj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2Z1bmN0aW9uKCl7ZSgpLCF0Lm5vRGlzbWlzcyYmbigpfTpmdW5jdGlvbigpe3JldHVybiBuKCl9LGl9KSksXCJmdW5jdGlvblwiPT10eXBlb2YgdC5vbkRpc21pc3MmJihpLm9uRGlzbWlzcz10Lm9uRGlzbWlzcyksaS5jbG9zZUJ0bil7dmFyIG89W3tjbG9zZUJ0bjohMCxsYWJlbDppLmNsb3NlQnRuLGhhbmRsZXI6bn1dO2kuYWN0aW9ucz1pLmFjdGlvbnM/aS5hY3Rpb25zLmNvbmNhdChvKTpvfWkudGltZW91dD4wJiYoaS5fX3RpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe24oKX0saS50aW1lb3V0KzFlMykpO3ZhciByPWkucG9zaXRpb24uaW5kZXhPZihcInRvcFwiKT4tMT9cInVuc2hpZnRcIjpcInB1c2hcIjtyZXR1cm4gdGhpcy5ub3RpZnNbaS5wb3NpdGlvbl1bcl0oaSksbn0scmVtb3ZlOmZ1bmN0aW9uKHQpe3QuX190aW1lb3V0JiZjbGVhclRpbWVvdXQodC5fX3RpbWVvdXQpO3ZhciBlPXRoaXMubm90aWZzW3QucG9zaXRpb25dLmluZGV4T2YodCk7aWYoLTEhPT1lKXt2YXIgaT10aGlzLiRyZWZzW1wibm90aWZfXCIrdC5fX3VpZF07aWYoaSYmaS4kZWwpe3ZhciBzPWkuJGVsO3Muc3R5bGUubGVmdD1zLm9mZnNldExlZnQrXCJweFwiLHMuc3R5bGUud2lkdGg9Z2V0Q29tcHV0ZWRTdHlsZShzKS53aWR0aH10aGlzLm5vdGlmc1t0LnBvc2l0aW9uXS5zcGxpY2UoZSwxKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0Lm9uRGlzbWlzcyYmdC5vbkRpc21pc3MoKX19fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbm90aWZpY2F0aW9uc1wifSxwb3NpdGlvbkxpc3QubWFwKGZ1bmN0aW9uKGkpe3ZhciBzPVtcImxlZnRcIixcImNlbnRlclwiLFwicmlnaHRcIl0uaW5jbHVkZXMoaSk/XCJjZW50ZXJcIjppLmluZGV4T2YoXCJ0b3BcIik+LTE/XCJ0b3BcIjpcImJvdHRvbVwiLG49aS5pbmRleE9mKFwibGVmdFwiKT4tMT9cInN0YXJ0XCI6aS5pbmRleE9mKFwicmlnaHRcIik+LTE/XCJlbmRcIjpcImNlbnRlclwiLG89W1wibGVmdFwiLFwicmlnaHRcIl0uaW5jbHVkZXMoaSk/XCJpdGVtcy1cIisoXCJsZWZ0XCI9PT1pP1wic3RhcnRcIjpcImVuZFwiKStcIiBqdXN0aWZ5LWNlbnRlclwiOlwiY2VudGVyXCI9PT1pP1wiZmxleC1jZW50ZXJcIjpcIml0ZW1zLVwiK247cmV0dXJuIHQoXCJ0cmFuc2l0aW9uLWdyb3VwXCIse2tleTppLHN0YXRpY0NsYXNzOlwicS1ub3RpZmljYXRpb24tbGlzdCBxLW5vdGlmaWNhdGlvbi1saXN0LVwiK3MrXCIgZml4ZWQgY29sdW1uIFwiK28sdGFnOlwiZGl2XCIscHJvcHM6e25hbWU6XCJxLW5vdGlmaWNhdGlvbi1cIitpLG1vZGU6XCJvdXQtaW5cIn19LGUubm90aWZzW2ldLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdChRQWxlcnQse3JlZjpcIm5vdGlmX1wiK2UuX191aWQsa2V5OmUuX191aWQsc3RhdGljQ2xhc3M6XCJxLW5vdGlmaWNhdGlvblwiLHByb3BzOmV9LFtlLm1lc3NhZ2VdKX0pKX0pKX19KSx0aGlzLl9fdm0uJG1vdW50KGkpfXZhciBub3RpZnk9e2NyZWF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gaXNTU1I/ZnVuY3Rpb24oKXt9OnRoaXMuX192bS5hZGQodCl9LHNldERlZmF1bHRzOmZ1bmN0aW9uKHQpe09iamVjdC5hc3NpZ24oZGVmYXVsdHMkMSx0KX0saW5zdGFsbDpmdW5jdGlvbih0KXtpZihpc1NTUilyZXR1cm4gdC4kcS5ub3RpZnk9ZnVuY3Rpb24oKXt9LHZvaWQodC4kcS5ub3RpZnkuc2V0RGVmYXVsdHM9ZnVuY3Rpb24oKXt9KTtpbml0LmNhbGwodGhpcyx0KSx0LmNmZy5ub3RpZnkmJnRoaXMuc2V0RGVmYXVsdHModC5jZmcubm90aWZ5KSx0LiRxLm5vdGlmeT10aGlzLmNyZWF0ZS5iaW5kKHRoaXMpLHQuJHEubm90aWZ5LnNldERlZmF1bHRzPXRoaXMuc2V0RGVmYXVsdHN9fSxTSVpFX0xJU1Q9W1wic21cIixcIm1kXCIsXCJsZ1wiLFwieGxcIl0sc2NyZWVuPXt3aWR0aDowLHNpemVzOntzbTo1NzYsbWQ6NzY4LGxnOjk5Mix4bDoxMjAwfSxsdDp7c206ITAsbWQ6ITAsbGc6ITAseGw6ITB9LGd0Ont9LHhzOiEwLHNldFNpemVzOmZ1bmN0aW9uKCl7fSxzZXREZWJvdW5jZTpmdW5jdGlvbigpe30saW5zdGFsbDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dC4kcSxzPXQucXVldWVzLG49dC5WdWU7aWYoaXNTU1IpaS5zY3JlZW49dGhpcztlbHNle3ZhciBvLHIsYT1mdW5jdGlvbih0KXt2YXIgaT13aW5kb3cuaW5uZXJXaWR0aCxzPWUuc2l6ZXM7dCYmaT09PWUud2lkdGh8fChlLndpZHRoPWksZS5ndC54cz1pPj1zLnNtLGUuZ3Quc209aT49cy5tZCxlLmd0Lm1kPWk+PXMubGcsZS5ndC5sZz1pPj1zLnhsLGUubHQuc209aTxzLnNtLGUubHQubWQ9aTxzLm1kLGUubHQubGc9aTxzLmxnLGUubHQueGw9aTxzLnhsLGUueHM9ZS5sdC5zbSxlLnNtPWUuZ3QueHMmJmUubHQubWQsZS5tZD1lLmd0LnNtJiZlLmx0LmxnLGUubGc9ZS5ndC5tZCYmZS5sdC54bCxlLnhsPWk+cy54bCl9LGw9e307dGhpcy5zZXRTaXplcz1mdW5jdGlvbih0KXtTSVpFX0xJU1QuZm9yRWFjaChmdW5jdGlvbihlKXt0W2VdJiYobFtlXT10W2VdKX0pfSx0aGlzLnNldERlYm91bmNlPWZ1bmN0aW9uKHQpe3I9dH07dmFyIGM9ZnVuY3Rpb24oKXt2YXIgdD1nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpO3QuZ2V0UHJvcGVydHlWYWx1ZShcIi0tcS1zaXplLXNtXCIpJiZTSVpFX0xJU1QuZm9yRWFjaChmdW5jdGlvbihpKXtlLnNpemVzW2ldPXBhcnNlSW50KHQuZ2V0UHJvcGVydHlWYWx1ZShcIi0tcS1zaXplLVwiK2kpLDEwKX0pLGUuc2V0U2l6ZXM9ZnVuY3Rpb24odCl7U0laRV9MSVNULmZvckVhY2goZnVuY3Rpb24oaSl7dFtpXSYmKGUuc2l6ZXNbaV09dFtpXSl9KSxhKCl9LGUuc2V0RGVib3VuY2U9ZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXthKCEwKX07byYmd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIixvLGxpc3Rlbk9wdHMucGFzc2l2ZSksbz10PjA/ZGVib3VuY2UoZSx0KTplLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsbyxsaXN0ZW5PcHRzLnBhc3NpdmUpfSxlLnNldERlYm91bmNlKHJ8fDEwMCksT2JqZWN0LmtleXMobCkubGVuZ3RoPjA/KGUuc2V0U2l6ZXMobCksbD1udWxsKTphKCl9O2Zyb21TU1I/cy50YWtlb3Zlci5wdXNoKGMpOmMoKSxuLnV0aWwuZGVmaW5lUmVhY3RpdmUoaSxcInNjcmVlblwiLHRoaXMpfX19O2Z1bmN0aW9uIGVuY29kZSQxKHQpe3JldHVyblwiW29iamVjdCBEYXRlXVwiPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpP1wiX19xX2RhdGV8XCIrdC50b1VUQ1N0cmluZygpOlwiW29iamVjdCBSZWdFeHBdXCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk/XCJfX3FfZXhwcnxcIit0LnNvdXJjZTpcIm51bWJlclwiPT10eXBlb2YgdD9cIl9fcV9udW1ifFwiK3Q6XCJib29sZWFuXCI9PXR5cGVvZiB0P1wiX19xX2Jvb2x8XCIrKHQ/XCIxXCI6XCIwXCIpOlwic3RyaW5nXCI9PXR5cGVvZiB0P1wiX19xX3N0cm58XCIrdDpcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P1wiX19xX3N0cm58XCIrdC50b1N0cmluZygpOnQ9PT1PYmplY3QodCk/XCJfX3Ffb2JqdHxcIitKU09OLnN0cmluZ2lmeSh0KTp0fWZ1bmN0aW9uIGRlY29kZSQxKHQpe3ZhciBlLGk7aWYodC5sZW5ndGg8OSlyZXR1cm4gdDtzd2l0Y2goZT10LnN1YnN0cigwLDgpLGk9dC5zdWJzdHJpbmcoOSksZSl7Y2FzZVwiX19xX2RhdGVcIjpyZXR1cm4gbmV3IERhdGUoaSk7Y2FzZVwiX19xX2V4cHJcIjpyZXR1cm4gbmV3IFJlZ0V4cChpKTtjYXNlXCJfX3FfbnVtYlwiOnJldHVybiBOdW1iZXIoaSk7Y2FzZVwiX19xX2Jvb2xcIjpyZXR1cm4gQm9vbGVhbihcIjFcIj09PWkpO2Nhc2VcIl9fcV9zdHJuXCI6cmV0dXJuXCJcIitpO2Nhc2VcIl9fcV9vYmp0XCI6cmV0dXJuIEpTT04ucGFyc2UoaSk7ZGVmYXVsdDpyZXR1cm4gdH19ZnVuY3Rpb24gZ2V0RW1wdHlTdG9yYWdlKCl7dmFyIHQ9ZnVuY3Rpb24oKXt9O3JldHVybntoYXM6dCxnZXQ6e2xlbmd0aDp0LGl0ZW06dCxpbmRleDp0LGFsbDp0fSxzZXQ6dCxyZW1vdmU6dCxjbGVhcjp0LGlzRW1wdHk6dH19ZnVuY3Rpb24gZ2V0U3RvcmFnZSh0KXt2YXIgZT13aW5kb3dbdCtcIlN0b3JhZ2VcIl0saT1mdW5jdGlvbih0KXt2YXIgaT1lLmdldEl0ZW0odCk7cmV0dXJuIGk/ZGVjb2RlJDEoaSk6bnVsbH07cmV0dXJue2hhczpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9PWUuZ2V0SXRlbSh0KX0sZ2V0OntsZW5ndGg6ZnVuY3Rpb24oKXtyZXR1cm4gZS5sZW5ndGh9LGl0ZW06aSxpbmRleDpmdW5jdGlvbih0KXtpZih0PGUubGVuZ3RoKXJldHVybiBpKGUua2V5KHQpKX0sYWxsOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LHM9e30sbj1lLmxlbmd0aCxvPTA7bzxuO28rKylzW3Q9ZS5rZXkobyldPWkodCk7cmV0dXJuIHN9fSxzZXQ6ZnVuY3Rpb24odCxpKXtlLnNldEl0ZW0odCxlbmNvZGUkMShpKSl9LHJlbW92ZTpmdW5jdGlvbih0KXtlLnJlbW92ZUl0ZW0odCl9LGNsZWFyOmZ1bmN0aW9uKCl7ZS5jbGVhcigpfSxpc0VtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT1lLmxlbmd0aH19fXZhciBsb2NhbFN0b3JhZ2U9e2luc3RhbGw6ZnVuY3Rpb24odCl7dmFyIGU9dC4kcSxpPWlzU1NSfHwhaGFzV2ViU3RvcmFnZT9nZXRFbXB0eVN0b3JhZ2UoKTpnZXRTdG9yYWdlKFwibG9jYWxcIik7ZS5sb2NhbFN0b3JhZ2U9aSxPYmplY3QuYXNzaWduKHRoaXMsaSl9fSxzZXNzaW9uU3RvcmFnZT17aW5zdGFsbDpmdW5jdGlvbih0KXt2YXIgZT10LiRxLGk9aXNTU1J8fCFoYXNXZWJTdG9yYWdlP2dldEVtcHR5U3RvcmFnZSgpOmdldFN0b3JhZ2UoXCJzZXNzaW9uXCIpO2Uuc2Vzc2lvblN0b3JhZ2U9aSxPYmplY3QuYXNzaWduKHRoaXMsaSl9fSxwbHVnaW5zPU9iamVjdC5mcmVlemUoe0FjdGlvblNoZWV0OmFjdGlvblNoZWV0LEFkZHJlc3NiYXJDb2xvcjphZGRyZXNzYmFyQ29sb3IsQXBwRnVsbHNjcmVlbjphcHBGdWxsc2NyZWVuLEFwcFZpc2liaWxpdHk6YXBwVmlzaWJpbGl0eSxDb29raWVzOmNvb2tpZXMsRGlhbG9nOmRpYWxvZyxMb2FkaW5nQmFyOmxvYWRpbmdCYXIsTG9hZGluZzpsb2FkaW5nLE1ldGE6bWV0YSxOb3RpZnk6bm90aWZ5LFBsYXRmb3JtOlBsYXRmb3JtLFNjcmVlbjpzY3JlZW4sTG9jYWxTdG9yYWdlOmxvY2FsU3RvcmFnZSxTZXNzaW9uU3RvcmFnZTpzZXNzaW9uU3RvcmFnZX0pO2Z1bmN0aW9uIG9wZW5VcmwodCxlKXtpZihQbGF0Zm9ybS5pcy5jb3Jkb3ZhJiZuYXZpZ2F0b3ImJm5hdmlnYXRvci5hcHApcmV0dXJuIG5hdmlnYXRvci5hcHAubG9hZFVybCh0LHtvcGVuRXh0ZXJuYWw6ITB9KTt2YXIgaT13aW5kb3cub3Blbih0LFwiX2JsYW5rXCIpO2lmKGkpcmV0dXJuIGkuZm9jdXMoKSxpO2UmJmUoKX1mdW5jdGlvbiBub29wKCl7fXZhciBpbmRleF9lc209T2JqZWN0LmFzc2lnbih7fSxWdWVQbHVnaW4se2luc3RhbGw6ZnVuY3Rpb24odCxlKXtWdWVQbHVnaW4uaW5zdGFsbCh0LE9iamVjdC5hc3NpZ24oe30se2NvbXBvbmVudHM6Y29tcG9uZW50cyQxLGRpcmVjdGl2ZXM6ZGlyZWN0aXZlcyxwbHVnaW5zOnBsdWdpbnN9LGUpKX19KTtleHBvcnQgZGVmYXVsdCBpbmRleF9lc207ZXhwb3J0e1FBY3Rpb25TaGVldCxRQWpheEJhcixRQWxlcnQsUUF1dG9jb21wbGV0ZSxRQnJlYWRjcnVtYnMsUUJyZWFkY3J1bWJzRWwsUUJ0bixRQnRuR3JvdXAsUUJ0bkRyb3Bkb3duLFFCdG5Ub2dnbGUsUUNhcmQsUUNhcmRUaXRsZSxRQ2FyZE1haW4sUUNhcmRBY3Rpb25zLFFDYXJkTWVkaWEsUUNhcmRTZXBhcmF0b3IsUUNhcm91c2VsLFFDYXJvdXNlbFNsaWRlLFFDYXJvdXNlbENvbnRyb2wsUUNoYXRNZXNzYWdlLFFDaGVja2JveCxRQ2hpcCxRQ2hpcHNJbnB1dCxRQ29sbGFwc2libGUsUUNvbG9yLFFDb2xvclBpY2tlcixRQ29udGV4dE1lbnUsUURhdGV0aW1lLFFEYXRldGltZVBpY2tlcixRRGlhbG9nLFFFZGl0b3IsUUZhYixRRmFiQWN0aW9uLFFGaWVsZCxRSWNvbixRSW5maW5pdGVTY3JvbGwsUUlubmVyTG9hZGluZyxRSW5wdXQsUUlucHV0RnJhbWUsUUp1bWJvdHJvbixRS25vYixRTGF5b3V0LFFMYXlvdXREcmF3ZXIsUUxheW91dEZvb3RlcixRTGF5b3V0SGVhZGVyLFFQYWdlLFFQYWdlQ29udGFpbmVyLFFQYWdlU3RpY2t5LFFJdGVtLFFJdGVtU2VwYXJhdG9yLFFJdGVtTWFpbixRSXRlbVNpZGUsUUl0ZW1UaWxlLFFJdGVtV3JhcHBlcixRTGlzdCxRTGlzdEhlYWRlcixRTW9kYWwsUU1vZGFsTGF5b3V0LFFOb1NzcixRUmVzaXplT2JzZXJ2YWJsZSxRU2Nyb2xsT2JzZXJ2YWJsZSxRV2luZG93UmVzaXplT2JzZXJ2YWJsZSxRT3B0aW9uR3JvdXAsUVBhZ2luYXRpb24sUVBhcmFsbGF4LFFQb3BvdmVyLFFQb3B1cEVkaXQsUVByb2dyZXNzLFFQdWxsVG9SZWZyZXNoLFFSYWRpbyxRUmFuZ2UsUVJhdGluZyxRU2Nyb2xsQXJlYSxRU2VhcmNoLFFTZWxlY3QsUVNsaWRlVHJhbnNpdGlvbixRU2xpZGVyLFFTcGlubmVyLFFTcGlubmVyQXVkaW8sUVNwaW5uZXJCYWxsLFFTcGlubmVyQmFycyxRU3Bpbm5lckNpcmNsZXMsUVNwaW5uZXJDb21tZW50LFFTcGlubmVyQ3ViZSxRU3Bpbm5lckRvdHMsUVNwaW5uZXJGYWNlYm9vayxRU3Bpbm5lckdlYXJzLFFTcGlubmVyR3JpZCxRU3Bpbm5lckhlYXJ0cyxRU3Bpbm5lckhvdXJnbGFzcyxRU3Bpbm5lckluZmluaXR5LFFTcGlubmVyX2lvcyBhcyBRU3Bpbm5lcklvcyxEZWZhdWx0U3Bpbm5lciBhcyBRU3Bpbm5lck1hdCxRU3Bpbm5lck92YWwsUVNwaW5uZXJQaWUsUVNwaW5uZXJQdWZmLFFTcGlubmVyUmFkaW8sUVNwaW5uZXJSaW5ncyxRU3Bpbm5lclRhaWwsUVN0ZXAsUVN0ZXBwZXIsUVN0ZXBwZXJOYXZpZ2F0aW9uLFFSb3V0ZVRhYixRVGFiLFFUYWJQYW5lLFFUYWJzLFFUYWJsZSxRVGgsUVRyLFFUZCxRVGFibGVDb2x1bW5zLFFUaW1lbGluZSxRVGltZWxpbmVFbnRyeSxRVG9nZ2xlLFFUb29sYmFyLFFUb29sYmFyVGl0bGUsUVRvb2x0aXAsUVRyZWUsUVVwbG9hZGVyLFFWaWRlbyxiYWNrVG9Ub3AgYXMgQmFja1RvVG9wLGNsb3NlT3ZlcmxheSBhcyBDbG9zZU92ZXJsYXksZ29CYWNrIGFzIEdvQmFjayxSaXBwbGUsc2Nyb2xsRmlyZSBhcyBTY3JvbGxGaXJlLHNjcm9sbCQxIGFzIFNjcm9sbCx0b3VjaEhvbGQgYXMgVG91Y2hIb2xkLFRvdWNoUGFuLFRvdWNoU3dpcGUsYWN0aW9uU2hlZXQgYXMgQWN0aW9uU2hlZXQsYWRkcmVzc2JhckNvbG9yIGFzIEFkZHJlc3NiYXJDb2xvcixhcHBGdWxsc2NyZWVuIGFzIEFwcEZ1bGxzY3JlZW4sYXBwVmlzaWJpbGl0eSBhcyBBcHBWaXNpYmlsaXR5LGNvb2tpZXMgYXMgQ29va2llcyxkaWFsb2cgYXMgRGlhbG9nLGxvYWRpbmdCYXIgYXMgTG9hZGluZ0Jhcixsb2FkaW5nIGFzIExvYWRpbmcsbWV0YSBhcyBNZXRhLG5vdGlmeSBhcyBOb3RpZnksUGxhdGZvcm0sc2NyZWVuIGFzIFNjcmVlbixsb2NhbFN0b3JhZ2UgYXMgTG9jYWxTdG9yYWdlLHNlc3Npb25TdG9yYWdlIGFzIFNlc3Npb25TdG9yYWdlLGFuaW1hdGUsY2xvbmUsY29sb3JzLGRhdGUsZGVib3VuY2UsZG9tLGVhc2luZyxldmVudCxleHRlbmQsZmlsdGVyLGZvcm1hdCxmcmFtZURlYm91bmNlLG5vb3Asb3BlblVybCBhcyBvcGVuVVJMLHNjcm9sbCx0aHJvdHRsZSx1aWR9OyIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vYXBwLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00ZmJjNzM1YiZzY29wZWQ9dHJ1ZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9hcHAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9hcHAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2FwcC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00ZmJjNzM1YiZzY29wZWQ9dHJ1ZSZsYW5nPWNzcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiNGZiYzczNWJcIixcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCIvVXNlcnMvc2ViL3dlYi9lbW9qaS1tYXJ0L2Vtb2ppLW1hcnQtdnVlL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzRmYmM3MzViJykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzRmYmM3MzViJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJzRmYmM3MzViJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9hcHAudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTRmYmM3MzViJnNjb3BlZD10cnVlJlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJzRmYmM3MzViJywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJkb2NzL2FwcC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL0Vtb2ppLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01MzRhZDk0NiZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9FbW9qaS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL0Vtb2ppLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL1VzZXJzL3NlYi93ZWIvZW1vamktbWFydC9lbW9qaS1tYXJ0LXZ1ZS9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanNcIilcbiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpXG4gIGlmIChhcGkuY29tcGF0aWJsZSkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCc1MzRhZDk0NicpKSB7XG4gICAgICBhcGkuY3JlYXRlUmVjb3JkKCc1MzRhZDk0NicsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVsb2FkKCc1MzRhZDk0NicsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcIi4vRW1vamkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTUzNGFkOTQ2JlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJzUzNGFkOTQ2Jywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvY29tcG9uZW50cy9FbW9qaS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL1BpY2tlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZDE2ZTkwODQmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUGlja2VyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vUGlja2VyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL1VzZXJzL3NlYi93ZWIvZW1vamktbWFydC9lbW9qaS1tYXJ0LXZ1ZS9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanNcIilcbiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpXG4gIGlmIChhcGkuY29tcGF0aWJsZSkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCdkMTZlOTA4NCcpKSB7XG4gICAgICBhcGkuY3JlYXRlUmVjb3JkKCdkMTZlOTA4NCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVsb2FkKCdkMTZlOTA4NCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUGlja2VyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kMTZlOTA4NCZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCdkMTZlOTA4NCcsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL2NvbXBvbmVudHMvUGlja2VyLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vYW5jaG9ycy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTExODgxMDQmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vYW5jaG9ycy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2FuY2hvcnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCIvVXNlcnMvc2ViL3dlYi9lbW9qaS1tYXJ0L2Vtb2ppLW1hcnQtdnVlL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzUxMTg4MTA0JykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzUxMTg4MTA0JywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJzUxMTg4MTA0JywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9hbmNob3JzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01MTE4ODEwNCZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCc1MTE4ODEwNCcsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL2NvbXBvbmVudHMvYW5jaG9ycy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL2NhdGVnb3J5LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zNzZjZGEwZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9jYXRlZ29yeS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2NhdGVnb3J5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL1VzZXJzL3NlYi93ZWIvZW1vamktbWFydC9lbW9qaS1tYXJ0LXZ1ZS9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanNcIilcbiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpXG4gIGlmIChhcGkuY29tcGF0aWJsZSkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCczNzZjZGEwZScpKSB7XG4gICAgICBhcGkuY3JlYXRlUmVjb3JkKCczNzZjZGEwZScsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVsb2FkKCczNzZjZGEwZScsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcIi4vY2F0ZWdvcnkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM3NmNkYTBlJlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJzM3NmNkYTBlJywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvY29tcG9uZW50cy9jYXRlZ29yeS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL3ByZXZpZXcudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM1MDU2YzMwJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3ByZXZpZXcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9wcmV2aWV3LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL1VzZXJzL3NlYi93ZWIvZW1vamktbWFydC9lbW9qaS1tYXJ0LXZ1ZS9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanNcIilcbiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpXG4gIGlmIChhcGkuY29tcGF0aWJsZSkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCczNTA1NmMzMCcpKSB7XG4gICAgICBhcGkuY3JlYXRlUmVjb3JkKCczNTA1NmMzMCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVsb2FkKCczNTA1NmMzMCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcIi4vcHJldmlldy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MzUwNTZjMzAmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignMzUwNTZjMzAnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy9jb21wb25lbnRzL3ByZXZpZXcudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9zZWFyY2gudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTRhZDQxYmI4JlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3NlYXJjaC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3NlYXJjaC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsXG4gIFxuKVxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICB2YXIgYXBpID0gcmVxdWlyZShcIi9Vc2Vycy9zZWIvd2ViL2Vtb2ppLW1hcnQvZW1vamktbWFydC12dWUvbm9kZV9tb2R1bGVzL3Z1ZS1ob3QtcmVsb2FkLWFwaS9kaXN0L2luZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNGFkNDFiYjgnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnNGFkNDFiYjgnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnNGFkNDFiYjgnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL3NlYXJjaC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NGFkNDFiYjgmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignNGFkNDFiYjgnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy9jb21wb25lbnRzL3NlYXJjaC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL3NraW5zLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xYzYxNDg5NCZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9za2lucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3NraW5zLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL1VzZXJzL3NlYi93ZWIvZW1vamktbWFydC9lbW9qaS1tYXJ0LXZ1ZS9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanNcIilcbiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpXG4gIGlmIChhcGkuY29tcGF0aWJsZSkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCcxYzYxNDg5NCcpKSB7XG4gICAgICBhcGkuY3JlYXRlUmVjb3JkKCcxYzYxNDg5NCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVsb2FkKCcxYzYxNDg5NCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcIi4vc2tpbnMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTFjNjE0ODk0JlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJzFjNjE0ODk0Jywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvY29tcG9uZW50cy9za2lucy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vYXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vRW1vamkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vRW1vamkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1BpY2tlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9QaWNrZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2FuY2hvcnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vYW5jaG9ycy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vY2F0ZWdvcnkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vY2F0ZWdvcnkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3ByZXZpZXcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vcHJldmlldy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vc2VhcmNoLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3NlYXJjaC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vc2tpbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vc2tpbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJkaXZcIixcbiAgICB7IHN0YXRpY0NsYXNzOiBcImFwcFwiIH0sXG4gICAgW1xuICAgICAgX3ZtLl9tKDApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcImVtb2ppXCIsIHtcbiAgICAgICAgICAgIGF0dHJzOiB7IGRhdGE6IF92bS5pbmRleCwgZW1vamk6IFwiOnNhbnRhOjpza2luLXRvbmUtMzpcIiwgc2l6ZTogMzIgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF9jKFwiZW1vamlcIiwge1xuICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgZGF0YTogX3ZtLmluZGV4LFxuICAgICAgICAgICAgICBlbW9qaTogXCJzYW50YVwiLFxuICAgICAgICAgICAgICBzZXQ6IFwidHdpdHRlclwiLFxuICAgICAgICAgICAgICBzaXplOiAzMixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICBfYyhcImVtb2ppXCIsIHtcbiAgICAgICAgICAgIGF0dHJzOiB7IGRhdGE6IF92bS5pbmRleCwgZW1vamk6IF92bS5zYW50YUVtb2ppT2JqZWN0LCBzaXplOiAzMiB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICAxXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSwgW1xuICAgICAgICBfYyhcImJ1dHRvblwiLCB7IG9uOiB7IGNsaWNrOiBfdm0udG9nZ2xlVmlzaWJsZSB9IH0sIFtcbiAgICAgICAgICBfdm0uX3YoXCJTaG93IC8gaGlkZSB0aGUgcGlja2VyXCIpLFxuICAgICAgICBdKSxcbiAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgX2MoXCJidXR0b25cIiwge1xuICAgICAgICAgIGRvbVByb3BzOiB7IGlubmVySFRNTDogX3ZtLl9zKF92bS5zbWlsZSkgfSxcbiAgICAgICAgICBvbjogeyBjbGljazogX3ZtLnRvZ2dsZVZpc2libGUgfSxcbiAgICAgICAgfSksXG4gICAgICBdKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LFxuICAgICAgICBbXG4gICAgICAgICAgX3ZtLl9sKFxuICAgICAgICAgICAgW1wibmF0aXZlXCIsIFwiYXBwbGVcIiwgXCJnb29nbGVcIiwgXCJ0d2l0dGVyXCIsIFwiZmFjZWJvb2tcIl0sXG4gICAgICAgICAgICBmdW5jdGlvbiAoc2V0KSB7XG4gICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgICBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBrZXk6IHNldCxcbiAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgZGlzYWJsZWQ6IF92bS5hY3RpdmVTZXQgPT0gc2V0IH0sXG4gICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF92bS5hY3RpdmVTZXQgPSBzZXRcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIFtfdm0uX3YoXCJcXG4gICAgICAgIFwiICsgX3ZtLl9zKHNldCkgKyBcIlxcbiAgICAgIFwiKV1cbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKSxcbiAgICAgICAgXSxcbiAgICAgICAgMlxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfdm0uaXNWaXNpYmxlXG4gICAgICAgID8gX2MoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICBfYyhcInBpY2tlclwiLCB7XG4gICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6IF92bS5pbmRleCxcbiAgICAgICAgICAgICAgICAgIHNldDogX3ZtLmFjdGl2ZVNldCxcbiAgICAgICAgICAgICAgICAgIG5hdGl2ZTogX3ZtLm5hdGl2ZSxcbiAgICAgICAgICAgICAgICAgIGVtb2ppOiBfdm0uZW1vamksXG4gICAgICAgICAgICAgICAgICBlbW9qaVRvb2x0aXA6IHRydWUsXG4gICAgICAgICAgICAgICAgICB0aXRsZTogX3ZtLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgZW1vamlTaXplOiAzMCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9uOiB7IHNlbGVjdDogX3ZtLnNob3dFbW9qaSB9LFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAxXG4gICAgICAgICAgKVxuICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sXG4gICAgICAgIF92bS5fbChfdm0uc2VsZWN0ZWRFbW9qaXMsIGZ1bmN0aW9uIChlbW8pIHtcbiAgICAgICAgICByZXR1cm4gX2MoXCJlbW9qaVwiLCB7XG4gICAgICAgICAgICBrZXk6IGVtbyxcbiAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgIGRhdGE6IF92bS5pbmRleCxcbiAgICAgICAgICAgICAgZW1vamk6IGVtbyxcbiAgICAgICAgICAgICAgc2V0OiBfdm0uYWN0aXZlU2V0LFxuICAgICAgICAgICAgICBuYXRpdmU6IF92bS5uYXRpdmUsXG4gICAgICAgICAgICAgIHNpemU6IDMyLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KVxuICAgICAgICB9KSxcbiAgICAgICAgMVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sIFtcbiAgICAgICAgX3ZtLl92KFwiXFxuICAgIFwiICsgX3ZtLl9zKF92bS5lbW9qaXNPdXRwdXQpICsgXCJcXG4gIFwiKSxcbiAgICAgIF0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF92bS5fbSgxKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiaDJcIiwgW192bS5fdihcIlFEaWFsb2cgRXhhbXBsZVwiKV0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcInEtYnRuXCIsIHtcbiAgICAgICAgICAgIGF0dHJzOiB7IGxhYmVsOiBcIk9wZW4gUURpYWxvZ1wiIH0sXG4gICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICAgIF92bS5lbW9qaVBpY2tlckRpYWxvZyA9IHRydWVcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICAgIDFcbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJxLWRpYWxvZ1wiLCB7XG4gICAgICAgIHNjb3BlZFNsb3RzOiBfdm0uX3UoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGtleTogXCJib2R5XCIsXG4gICAgICAgICAgICBmbjogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIF9jKFwicGlja2VyXCIsIHtcbiAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IGRhdGE6IF92bS5pbmRleCwgZW1vamlTaXplOiAyNCwgbmF0aXZlOiB0cnVlIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwcm94eTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdKSxcbiAgICAgICAgbW9kZWw6IHtcbiAgICAgICAgICB2YWx1ZTogX3ZtLmVtb2ppUGlja2VyRGlhbG9nLFxuICAgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbiAoJCR2KSB7XG4gICAgICAgICAgICBfdm0uZW1vamlQaWNrZXJEaWFsb2cgPSAkJHZcbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4cHJlc3Npb246IFwiZW1vamlQaWNrZXJEaWFsb2dcIixcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJoMlwiLCBbX3ZtLl92KFwiQ3VzdG9tIERpYWxvZyBFeGFtcGxlXCIpXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LCBbXG4gICAgICAgIF9jKFxuICAgICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBfdm0uZW1vamlQaWNrZXJDdXN0b21EaWFsb2cgPSB0cnVlXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgW192bS5fdihcIlxcbiAgICAgIE9wZW4gQ3VzdG9tIERpYWxvZ1xcbiAgICBcIildXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfdm0uZW1vamlQaWNrZXJDdXN0b21EaWFsb2dcbiAgICAgICAgPyBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInBvcHVwXCIgfSwgW1xuICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczogXCJwb3B1cC1ib3hcIixcbiAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgX3ZtLmVtb2ppUGlja2VyQ3VzdG9tRGlhbG9nID0gZmFsc2VcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6IFwicG9wdXAtY29udGVudFwiLFxuICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicG9wdXAtY2xvc2VcIiB9LCBbXG4gICAgICAgICAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLmVtb2ppUGlja2VyQ3VzdG9tRGlhbG9nID0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtfdm0uX3YoXCJYXCIpXVxuICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgICBfYyhcImgyXCIsIFtfdm0uX3YoXCJFbW9qaSBTZWxlY3RvclwiKV0pLFxuICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgICBfYyhcInBpY2tlclwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHsgZGF0YTogX3ZtLmluZGV4LCBlbW9qaVNpemU6IDI0LCBuYXRpdmU6IHRydWUgfSxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgXSlcbiAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiaDJcIiwgW192bS5fdihcIkN1c3RvbSBTZWFyY2ggQW5kIFByZXZpZXcgVGVtcGxhdGVzIEV4YW1wbGVcIildKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJQaWNrZXJcIiwge1xuICAgICAgICAgICAgYXR0cnM6IHsgZGF0YTogX3ZtLmluZGV4LCBuYXRpdmU6IHRydWUgfSxcbiAgICAgICAgICAgIHNjb3BlZFNsb3RzOiBfdm0uX3UoW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiBcInNlYXJjaFRlbXBsYXRlXCIsXG4gICAgICAgICAgICAgICAgZm46IGZ1bmN0aW9uIChzbG90UHJvcHMpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgIF9jKFwiaW5wdXRcIiwge1xuICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBzbG90UHJvcHMuaTE4bi5zZWFyY2gsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNsb3RQcm9wcy5vblNlYXJjaCgkZXZlbnQudGFyZ2V0LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiBcInByZXZpZXdUZW1wbGF0ZVwiLFxuICAgICAgICAgICAgICAgIGZuOiBmdW5jdGlvbiAoc2xvdFByb3BzKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlld1wiIH0sIFtcbiAgICAgICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1lbW9qaVwiIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF9jKFwiRW1vamlcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBzbG90UHJvcHMuZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVtb2ppOiBzbG90UHJvcHMuZW1vamlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBzbG90UHJvcHMuZW1vamlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcInBvaW50X3VwXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmU6IHNsb3RQcm9wcy5lbW9qaVByb3BzLm5hdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraW46IHNsb3RQcm9wcy5lbW9qaVByb3BzLnNraW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQ6IHNsb3RQcm9wcy5lbW9qaVByb3BzLnNldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LWRhdGFcIiB9LCBbXG4gICAgICAgICAgICAgICAgICAgICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1uYW1lXCIgfSwgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcXG4gICAgICAgICAgICAgIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdFByb3BzLmVtb2ppXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIn5cIiArIHNsb3RQcm9wcy5lbW9qaS5uYW1lICsgXCJ+XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiQ2hvb3NlLi4uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZXNcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcXG4gICAgICAgICAgICAgIFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl9zKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RQcm9wcy5lbW9qaSA/IHNsb3RQcm9wcy5lbW9qaS5jb2xvbnMgOiBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICAxXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJoMlwiLCBbX3ZtLl92KFwiRmlsdGVyZWQgcGlja2VyIGV4YW1wbGVcIildKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAge1xuICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJzaG93XCIsXG4gICAgICAgICAgICAgIHJhd05hbWU6IFwidi1zaG93XCIsXG4gICAgICAgICAgICAgIHZhbHVlOiBfdm0uZmxhZ3NWaXNpYmxlLFxuICAgICAgICAgICAgICBleHByZXNzaW9uOiBcImZsYWdzVmlzaWJsZVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHN0YXRpY0NsYXNzOiBcInJvd1wiLFxuICAgICAgICB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJQaWNrZXJcIiwge1xuICAgICAgICAgICAgcmVmOiBcImZsYWdzXCIsXG4gICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICBuYXRpdmU6IHRydWUsXG4gICAgICAgICAgICAgIGVtb2ppOiBcImZsYWctdGZcIixcbiAgICAgICAgICAgICAgZW1vamlTaXplOiAxOCxcbiAgICAgICAgICAgICAgZGF0YTogX3ZtLmluZGV4RmlsdGVyZWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICAxXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSwgW1xuICAgICAgICBfYyhcImJ1dHRvblwiLCB7IG9uOiB7IGNsaWNrOiBfdm0udG9nZ2xlRmxhZ3NWaXNpYmxlIH0gfSwgW1xuICAgICAgICAgIF92bS5fdihcIlxcbiAgICAgIFNob3cgLyBoaWRlIHRoZSBmbGFncyBwaWNrZXIgKHdpdGggdi1zaG93KVxcbiAgICBcIiksXG4gICAgICAgIF0pLFxuICAgICAgXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9KSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImgyXCIsIFtfdm0uX3YoXCJJMThuIHBpY2tlciBleGFtcGxlXCIpXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFwiUGlja2VyXCIsIHtcbiAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgIGVtb2ppOiBcImRlcGFydG1lbnRfc3RvcmVcIixcbiAgICAgICAgICAgICAgZGF0YTogX3ZtLmluZGV4STE4bixcbiAgICAgICAgICAgICAgaTE4bjogX3ZtLmkxOG4sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICAxXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJoMlwiLCBbX3ZtLl92KFwiQ3VzdG9tIG9yZGVyIGV4YW1wbGVcIildKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LFxuICAgICAgICBbX2MoXCJQaWNrZXJcIiwgeyBhdHRyczogeyBkYXRhOiBfdm0uaW5kZXhJbmNsdWRlIH0gfSldLFxuICAgICAgICAxXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJoMlwiLCBbX3ZtLl92KFwiU21hbGwgcGlja2VyIGV4YW1wbGVcIildKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAgeyBzdGF0aWNDbGFzczogXCJyb3cgcm93LXNtYWxsLXBpY2tlclwiIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcIlBpY2tlclwiLCB7XG4gICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICBkYXRhOiBfdm0uaW5kZXgsXG4gICAgICAgICAgICAgIG5hdGl2ZTogX3ZtLm5hdGl2ZSxcbiAgICAgICAgICAgICAgc2V0OiBfdm0uYWN0aXZlU2V0LFxuICAgICAgICAgICAgICBlbW9qaVNpemU6IDEyLFxuICAgICAgICAgICAgICBwZXJMaW5lOiA1LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgICAgMVxuICAgICAgKSxcbiAgICBdLFxuICAgIDFcbiAgKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtcbiAgZnVuY3Rpb24gKCkge1xuICAgIHZhciBfdm0gPSB0aGlzXG4gICAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gICAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gICAgcmV0dXJuIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSwgW1xuICAgICAgX2MoXCJoMVwiLCBbX3ZtLl92KFwiRW1vamkgTWFydCBWdWUg8J+PrFwiKV0pLFxuICAgIF0pXG4gIH0sXG4gIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgX3ZtID0gdGhpc1xuICAgIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICAgIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICAgIHJldHVybiBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvdy1zbWFsbFwiIH0sIFtcbiAgICAgIF9jKFwiaWZyYW1lXCIsIHtcbiAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICBzcmM6IFwiaHR0cHM6Ly9naGJ0bnMuY29tL2dpdGh1Yi1idG4uaHRtbD91c2VyPXNlcmVicm92JnJlcG89ZW1vamktbWFydC12dWUmdHlwZT1zdGFyJmNvdW50PXRydWVcIixcbiAgICAgICAgICBmcmFtZUJvcmRlcjogXCIwXCIsXG4gICAgICAgICAgc2Nyb2xsaW5nOiBcIjBcIixcbiAgICAgICAgICB3aWR0aDogXCI5MHB4XCIsXG4gICAgICAgICAgaGVpZ2h0OiBcIjIwcHhcIixcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgIF0pXG4gIH0sXG5dXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF92bS52aWV3LmNhblJlbmRlclxuICAgID8gX2MoXG4gICAgICAgIF92bS50YWcsXG4gICAgICAgIHtcbiAgICAgICAgICB0YWc6IFwiY29tcG9uZW50XCIsXG4gICAgICAgICAgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1lbW9qaVwiLFxuICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICB0aXRsZTogX3ZtLnZpZXcudGl0bGUsXG4gICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogX3ZtLnZpZXcuYXJpYUxhYmVsLFxuICAgICAgICAgICAgXCJkYXRhLXRpdGxlXCI6IF92bS50aXRsZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICBtb3VzZWVudGVyOiBfdm0ub25Nb3VzZUVudGVyLFxuICAgICAgICAgICAgbW91c2VsZWF2ZTogX3ZtLm9uTW91c2VMZWF2ZSxcbiAgICAgICAgICAgIGNsaWNrOiBfdm0ub25DbGljayxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJzcGFuXCIsIHsgY2xhc3M6IF92bS52aWV3LmNzc0NsYXNzLCBzdHlsZTogX3ZtLnZpZXcuY3NzU3R5bGUgfSwgW1xuICAgICAgICAgICAgX3ZtLl92KF92bS5fcyhfdm0udmlldy5jb250ZW50KSksXG4gICAgICAgICAgXSksXG4gICAgICAgIF1cbiAgICAgIClcbiAgICA6IF92bS5fZSgpXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJzZWN0aW9uXCIsXG4gICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0IGVtb2ppLW1hcnQtc3RhdGljXCIsIHN0eWxlOiBfdm0uY3VzdG9tU3R5bGVzIH0sXG4gICAgW1xuICAgICAgX3ZtLnNob3dDYXRlZ29yaWVzXG4gICAgICAgID8gX2MoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LWJhciBlbW9qaS1tYXJ0LWJhci1hbmNob3JzXCIgfSxcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgX2MoXCJhbmNob3JzXCIsIHtcbiAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgZGF0YTogX3ZtLmRhdGEsXG4gICAgICAgICAgICAgICAgICBpMThuOiBfdm0ubWVyZ2VkSTE4bixcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiBfdm0uY29sb3IsXG4gICAgICAgICAgICAgICAgICBjYXRlZ29yaWVzOiBfdm0udmlldy5hbGxDYXRlZ29yaWVzLFxuICAgICAgICAgICAgICAgICAgXCJhY3RpdmUtY2F0ZWdvcnlcIjogX3ZtLnZpZXcuYWN0aXZlQ2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvbjogeyBjbGljazogX3ZtLm9uQW5jaG9yQ2xpY2sgfSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgMVxuICAgICAgICAgIClcbiAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfdm0uX3QoXG4gICAgICAgIFwic2VhcmNoVGVtcGxhdGVcIixcbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBfdm0uc2hvd1NlYXJjaFxuICAgICAgICAgICAgICA/IF9jKFwic2VhcmNoXCIsIHtcbiAgICAgICAgICAgICAgICAgIHJlZjogXCJzZWFyY2hcIixcbiAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IF92bS5kYXRhLFxuICAgICAgICAgICAgICAgICAgICBpMThuOiBfdm0ubWVyZ2VkSTE4bixcbiAgICAgICAgICAgICAgICAgICAgXCJhdXRvLWZvY3VzXCI6IF92bS5hdXRvRm9jdXMsXG4gICAgICAgICAgICAgICAgICAgIFwib24tc2VhcmNoXCI6IF92bS5vblNlYXJjaCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2g6IF92bS5vblNlYXJjaCxcbiAgICAgICAgICAgICAgICAgICAgYXJyb3dMZWZ0OiBfdm0ub25BcnJvd0xlZnQsXG4gICAgICAgICAgICAgICAgICAgIGFycm93UmlnaHQ6IF92bS5vbkFycm93UmlnaHQsXG4gICAgICAgICAgICAgICAgICAgIGFycm93RG93bjogX3ZtLm9uQXJyb3dEb3duLFxuICAgICAgICAgICAgICAgICAgICBhcnJvd1VwOiBfdm0ub25BcnJvd1VwLFxuICAgICAgICAgICAgICAgICAgICBlbnRlcjogX3ZtLm9uRW50ZXIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIDogX3ZtLl9lKCksXG4gICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZGF0YTogX3ZtLmRhdGEsXG4gICAgICAgICAgaTE4bjogX3ZtLmkxOG4sXG4gICAgICAgICAgYXV0b0ZvY3VzOiBfdm0uYXV0b0ZvY3VzLFxuICAgICAgICAgIG9uU2VhcmNoOiBfdm0ub25TZWFyY2gsXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHtcbiAgICAgICAgICByZWY6IFwic2Nyb2xsXCIsXG4gICAgICAgICAgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1zY3JvbGxcIixcbiAgICAgICAgICBhdHRyczogeyByb2xlOiBcInRhYnBhbmVsXCIgfSxcbiAgICAgICAgICBvbjogeyBzY3JvbGw6IF92bS5vblNjcm9sbCB9LFxuICAgICAgICB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXG4gICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICByZWY6IFwic2Nyb2xsQ29udGVudFwiLFxuICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgIGlkOiBcImVtb2ppLW1hcnQtbGlzdFwiLFxuICAgICAgICAgICAgICAgIHJvbGU6IFwibGlzdGJveFwiLFxuICAgICAgICAgICAgICAgIFwiYXJpYS1leHBhbmRlZFwiOiBcInRydWVcIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfdm0uX2woX3ZtLnZpZXcuZmlsdGVyZWRDYXRlZ29yaWVzLCBmdW5jdGlvbiAoY2F0ZWdvcnksIGlkeCkge1xuICAgICAgICAgICAgICByZXR1cm4gX2MoXCJjYXRlZ29yeVwiLCB7XG4gICAgICAgICAgICAgICAgZGlyZWN0aXZlczogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInNob3dcIixcbiAgICAgICAgICAgICAgICAgICAgcmF3TmFtZTogXCJ2LXNob3dcIixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6XG4gICAgICAgICAgICAgICAgICAgICAgX3ZtLmluZmluaXRlU2Nyb2xsIHx8IGNhdGVnb3J5ID09IF92bS52aWV3LmFjdGl2ZUNhdGVnb3J5LFxuICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uOlxuICAgICAgICAgICAgICAgICAgICAgIFwiaW5maW5pdGVTY3JvbGwgfHwgY2F0ZWdvcnkgPT0gdmlldy5hY3RpdmVDYXRlZ29yeVwiLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIGtleTogY2F0ZWdvcnkuaWQsXG4gICAgICAgICAgICAgICAgcmVmOiBcImNhdGVnb3JpZXNfXCIgKyBpZHgsXG4gICAgICAgICAgICAgICAgcmVmSW5Gb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6IF92bS5kYXRhLFxuICAgICAgICAgICAgICAgICAgaTE4bjogX3ZtLm1lcmdlZEkxOG4sXG4gICAgICAgICAgICAgICAgICBpZDogY2F0ZWdvcnkuaWQsXG4gICAgICAgICAgICAgICAgICBuYW1lOiBjYXRlZ29yeS5uYW1lLFxuICAgICAgICAgICAgICAgICAgZW1vamlzOiBjYXRlZ29yeS5lbW9qaXMsXG4gICAgICAgICAgICAgICAgICBcImVtb2ppLXByb3BzXCI6IF92bS5lbW9qaVByb3BzLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIDFcbiAgICAgICAgICApLFxuICAgICAgICBdXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF92bS5fdChcbiAgICAgICAgXCJwcmV2aWV3VGVtcGxhdGVcIixcbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBfdm0uc2hvd1ByZXZpZXdcbiAgICAgICAgICAgICAgPyBfYyhcbiAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtYmFyIGVtb2ppLW1hcnQtYmFyLXByZXZpZXdcIiB9LFxuICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBfYyhcInByZXZpZXdcIiwge1xuICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBfdm0uZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBfdm0udGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbW9qaTogX3ZtLnZpZXcucHJldmlld0Vtb2ppLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJpZGxlLWVtb2ppXCI6IF92bS5pZGxlRW1vamksXG4gICAgICAgICAgICAgICAgICAgICAgICBcInNob3ctc2tpbi10b25lc1wiOiBfdm0uc2hvd1NraW5Ub25lcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZW1vamktcHJvcHNcIjogX3ZtLmVtb2ppUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBcInNraW4tcHJvcHNcIjogX3ZtLnNraW5Qcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwib24tc2tpbi1jaGFuZ2VcIjogX3ZtLm9uU2tpbkNoYW5nZSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGRhdGE6IF92bS5kYXRhLFxuICAgICAgICAgIHRpdGxlOiBfdm0udGl0bGUsXG4gICAgICAgICAgZW1vamk6IF92bS52aWV3LnByZXZpZXdFbW9qaSxcbiAgICAgICAgICBpZGxlRW1vamk6IF92bS5pZGxlRW1vamksXG4gICAgICAgICAgc2hvd1NraW5Ub25lczogX3ZtLnNob3dTa2luVG9uZXMsXG4gICAgICAgICAgZW1vamlQcm9wczogX3ZtLmVtb2ppUHJvcHMsXG4gICAgICAgICAgc2tpblByb3BzOiBfdm0uc2tpblByb3BzLFxuICAgICAgICAgIG9uU2tpbkNoYW5nZTogX3ZtLm9uU2tpbkNoYW5nZSxcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICBdLFxuICAgIDJcbiAgKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwiZGl2XCIsXG4gICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LWFuY2hvcnNcIiwgYXR0cnM6IHsgcm9sZTogXCJ0YWJsaXN0XCIgfSB9LFxuICAgIF92bS5fbChfdm0uY2F0ZWdvcmllcywgZnVuY3Rpb24gKGNhdGVnb3J5KSB7XG4gICAgICByZXR1cm4gX2MoXG4gICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBrZXk6IGNhdGVnb3J5LmlkLFxuICAgICAgICAgIGNsYXNzOiB7XG4gICAgICAgICAgICBcImVtb2ppLW1hcnQtYW5jaG9yXCI6IHRydWUsXG4gICAgICAgICAgICBcImVtb2ppLW1hcnQtYW5jaG9yLXNlbGVjdGVkXCI6IGNhdGVnb3J5LmlkID09IF92bS5hY3RpdmVDYXRlZ29yeS5pZCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICBjb2xvcjogY2F0ZWdvcnkuaWQgPT0gX3ZtLmFjdGl2ZUNhdGVnb3J5LmlkID8gX3ZtLmNvbG9yIDogXCJcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICByb2xlOiBcInRhYlwiLFxuICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBjYXRlZ29yeS5uYW1lLFxuICAgICAgICAgICAgXCJhcmlhLXNlbGVjdGVkXCI6IGNhdGVnb3J5LmlkID09IF92bS5hY3RpdmVDYXRlZ29yeS5pZCxcbiAgICAgICAgICAgIFwiZGF0YS10aXRsZVwiOiBfdm0uaTE4bi5jYXRlZ29yaWVzW2NhdGVnb3J5LmlkXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICBjbGljazogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICByZXR1cm4gX3ZtLiRlbWl0KFwiY2xpY2tcIiwgY2F0ZWdvcnkpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcImRpdlwiLCB7XG4gICAgICAgICAgICBhdHRyczogeyBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiIH0sXG4gICAgICAgICAgICBkb21Qcm9wczogeyBpbm5lckhUTUw6IF92bS5fcyhfdm0uc3Znc1tjYXRlZ29yeS5pZF0pIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICBfYyhcInNwYW5cIiwge1xuICAgICAgICAgICAgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1hbmNob3ItYmFyXCIsXG4gICAgICAgICAgICBzdHlsZTogeyBiYWNrZ3JvdW5kQ29sb3I6IF92bS5jb2xvciB9LFxuICAgICAgICAgICAgYXR0cnM6IHsgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIiB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICBdXG4gICAgICApXG4gICAgfSksXG4gICAgMFxuICApXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX3ZtLmlzVmlzaWJsZSAmJiAoX3ZtLmlzU2VhcmNoIHx8IF92bS5oYXNSZXN1bHRzKVxuICAgID8gX2MoXG4gICAgICAgIFwic2VjdGlvblwiLFxuICAgICAgICB7XG4gICAgICAgICAgY2xhc3M6IHtcbiAgICAgICAgICAgIFwiZW1vamktbWFydC1jYXRlZ29yeVwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbW9qaS1tYXJ0LW5vLXJlc3VsdHNcIjogIV92bS5oYXNSZXN1bHRzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYXR0cnM6IHsgXCJhcmlhLWxhYmVsXCI6IF92bS5pMThuLmNhdGVnb3JpZXNbX3ZtLmlkXSB9LFxuICAgICAgICB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsXCIgfSwgW1xuICAgICAgICAgICAgX2MoXCJoM1wiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWxcIiB9LCBbXG4gICAgICAgICAgICAgIF92bS5fdihfdm0uX3MoX3ZtLmkxOG4uY2F0ZWdvcmllc1tfdm0uaWRdKSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICBdKSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgIF92bS5fbChfdm0uZW1vamlPYmplY3RzLCBmdW5jdGlvbiAocmVmKSB7XG4gICAgICAgICAgICB2YXIgZW1vamlPYmplY3QgPSByZWYuZW1vamlPYmplY3RcbiAgICAgICAgICAgIHZhciBlbW9qaVZpZXcgPSByZWYuZW1vamlWaWV3XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICBlbW9qaVZpZXcuY2FuUmVuZGVyXG4gICAgICAgICAgICAgICAgPyBfYyhcbiAgICAgICAgICAgICAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGtleTogZW1vamlPYmplY3QuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1lbW9qaVwiLFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBfdm0uYWN0aXZlQ2xhc3MoZW1vamlPYmplY3QpLFxuICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogZW1vamlWaWV3LmFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU6IFwib3B0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImFyaWEtc2VsZWN0ZWRcIjogXCJmYWxzZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhcmlhLXBvc2luc2V0XCI6IFwiMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhcmlhLXNldHNpemVcIjogXCIxODEyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImJ1dHRvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJkYXRhLXRpdGxlXCI6IGVtb2ppT2JqZWN0LnNob3J0X25hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZW1vamlWaWV3LnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlZW50ZXI6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLmVtb2ppUHJvcHMub25FbnRlcihlbW9qaVZpZXcuZ2V0RW1vamkoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBtb3VzZWxlYXZlOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5lbW9qaVByb3BzLm9uTGVhdmUoZW1vamlWaWV3LmdldEVtb2ppKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLmVtb2ppUHJvcHMub25DbGljayhlbW9qaVZpZXcuZ2V0RW1vamkoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBlbW9qaVZpZXcuY3NzQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBlbW9qaVZpZXcuY3NzU3R5bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgW192bS5fdihfdm0uX3MoZW1vamlWaWV3LmNvbnRlbnQpKV1cbiAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICFfdm0uaGFzUmVzdWx0c1xuICAgICAgICAgICAgPyBfYyhcbiAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgIF9jKFwiZW1vamlcIiwge1xuICAgICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IF92bS5kYXRhLFxuICAgICAgICAgICAgICAgICAgICAgIGVtb2ppOiBcInNsZXV0aF9vcl9zcHlcIixcbiAgICAgICAgICAgICAgICAgICAgICBuYXRpdmU6IF92bS5lbW9qaVByb3BzLm5hdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICBza2luOiBfdm0uZW1vamlQcm9wcy5za2luLFxuICAgICAgICAgICAgICAgICAgICAgIHNldDogX3ZtLmVtb2ppUHJvcHMuc2V0LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LW5vLXJlc3VsdHMtbGFiZWxcIiB9LCBbXG4gICAgICAgICAgICAgICAgICAgIF92bS5fdihfdm0uX3MoX3ZtLmkxOG4ubm90Zm91bmQpKSxcbiAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICBdLFxuICAgICAgICAyXG4gICAgICApXG4gICAgOiBfdm0uX2UoKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwiZGl2XCIsXG4gICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXdcIiB9LFxuICAgIFtcbiAgICAgIF92bS5lbW9qaVxuICAgICAgICA/IFtcbiAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1lbW9qaVwiIH0sXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBfYyhcImVtb2ppXCIsIHtcbiAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IF92bS5kYXRhLFxuICAgICAgICAgICAgICAgICAgICBlbW9qaTogX3ZtLmVtb2ppLFxuICAgICAgICAgICAgICAgICAgICBuYXRpdmU6IF92bS5lbW9qaVByb3BzLm5hdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgc2tpbjogX3ZtLmVtb2ppUHJvcHMuc2tpbixcbiAgICAgICAgICAgICAgICAgICAgc2V0OiBfdm0uZW1vamlQcm9wcy5zZXQsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAxXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LWRhdGFcIiB9LCBbXG4gICAgICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LW5hbWVcIiB9LCBbXG4gICAgICAgICAgICAgICAgX3ZtLl92KF92bS5fcyhfdm0uZW1vamkubmFtZSkpLFxuICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWVzXCIgfSxcbiAgICAgICAgICAgICAgICBfdm0uX2woX3ZtLmVtb2ppU2hvcnROYW1lcywgZnVuY3Rpb24gKHNob3J0TmFtZSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIF9jKFxuICAgICAgICAgICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGtleTogc2hvcnROYW1lLFxuICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgW192bS5fdihcIjpcIiArIF92bS5fcyhzaG9ydE5hbWUpICsgXCI6XCIpXVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIDBcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1lbW90aWNvbnNcIiB9LFxuICAgICAgICAgICAgICAgIF92bS5fbChfdm0uZW1vamlFbW90aWNvbnMsIGZ1bmN0aW9uIChlbW90aWNvbikge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIF9jKFxuICAgICAgICAgICAgICAgICAgICBcInNwYW5cIixcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGtleTogZW1vdGljb24sXG4gICAgICAgICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3LWVtb3RpY29uXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFtfdm0uX3YoX3ZtLl9zKGVtb3RpY29uKSldXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgMFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgXVxuICAgICAgICA6IFtcbiAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1lbW9qaVwiIH0sXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBfYyhcImVtb2ppXCIsIHtcbiAgICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IF92bS5kYXRhLFxuICAgICAgICAgICAgICAgICAgICBlbW9qaTogX3ZtLmlkbGVFbW9qaSxcbiAgICAgICAgICAgICAgICAgICAgbmF0aXZlOiBfdm0uZW1vamlQcm9wcy5uYXRpdmUsXG4gICAgICAgICAgICAgICAgICAgIHNraW46IF92bS5lbW9qaVByb3BzLnNraW4sXG4gICAgICAgICAgICAgICAgICAgIHNldDogX3ZtLmVtb2ppUHJvcHMuc2V0LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1kYXRhXCIgfSwgW1xuICAgICAgICAgICAgICBfYyhcInNwYW5cIiwgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXRpdGxlLWxhYmVsXCIgfSwgW1xuICAgICAgICAgICAgICAgIF92bS5fdihfdm0uX3MoX3ZtLnRpdGxlKSksXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgX3ZtLnNob3dTa2luVG9uZXNcbiAgICAgICAgICAgICAgPyBfYyhcbiAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1za2luc1wiIH0sXG4gICAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgIF9jKFwic2tpbnNcIiwge1xuICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IHNraW46IF92bS5za2luUHJvcHMuc2tpbiB9LFxuICAgICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2U6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF92bS5vblNraW5DaGFuZ2UoJGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICAgIF0sXG4gICAgXSxcbiAgICAyXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtc2VhcmNoXCIgfSwgW1xuICAgIF9jKFwiaW5wdXRcIiwge1xuICAgICAgZGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJtb2RlbFwiLFxuICAgICAgICAgIHJhd05hbWU6IFwidi1tb2RlbFwiLFxuICAgICAgICAgIHZhbHVlOiBfdm0udmFsdWUsXG4gICAgICAgICAgZXhwcmVzc2lvbjogXCJ2YWx1ZVwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGF0dHJzOiB7XG4gICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICBwbGFjZWhvbGRlcjogX3ZtLmkxOG4uc2VhcmNoLFxuICAgICAgICByb2xlOiBcInRleHRib3hcIixcbiAgICAgICAgXCJhcmlhLWF1dG9jb21wbGV0ZVwiOiBcImxpc3RcIixcbiAgICAgICAgXCJhcmlhLW93bnNcIjogXCJlbW9qaS1tYXJ0LWxpc3RcIixcbiAgICAgICAgXCJhcmlhLWxhYmVsXCI6IFwiU2VhcmNoIGZvciBhbiBlbW9qaVwiLFxuICAgICAgICBcImFyaWEtZGVzY3JpYmVkYnlcIjogXCJlbW9qaS1tYXJ0LXNlYXJjaC1kZXNjcmlwdGlvblwiLFxuICAgICAgfSxcbiAgICAgIGRvbVByb3BzOiB7IHZhbHVlOiBfdm0udmFsdWUgfSxcbiAgICAgIG9uOiB7XG4gICAgICAgIGtleWRvd246IFtcbiAgICAgICAgICBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICEkZXZlbnQudHlwZS5pbmRleE9mKFwia2V5XCIpICYmXG4gICAgICAgICAgICAgIF92bS5faygkZXZlbnQua2V5Q29kZSwgXCJsZWZ0XCIsIDM3LCAkZXZlbnQua2V5LCBbXG4gICAgICAgICAgICAgICAgXCJMZWZ0XCIsXG4gICAgICAgICAgICAgICAgXCJBcnJvd0xlZnRcIixcbiAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFwiYnV0dG9uXCIgaW4gJGV2ZW50ICYmICRldmVudC5idXR0b24gIT09IDApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgIHJldHVybiBfdm0uJGVtaXQoXCJhcnJvd0xlZnRcIiwgJGV2ZW50KVxuICAgICAgICAgICAgfS5hcHBseShudWxsLCBhcmd1bWVudHMpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICEkZXZlbnQudHlwZS5pbmRleE9mKFwia2V5XCIpICYmXG4gICAgICAgICAgICAgIF92bS5faygkZXZlbnQua2V5Q29kZSwgXCJyaWdodFwiLCAzOSwgJGV2ZW50LmtleSwgW1xuICAgICAgICAgICAgICAgIFwiUmlnaHRcIixcbiAgICAgICAgICAgICAgICBcIkFycm93UmlnaHRcIixcbiAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFwiYnV0dG9uXCIgaW4gJGV2ZW50ICYmICRldmVudC5idXR0b24gIT09IDIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBfdm0uJGVtaXQoXCJhcnJvd1JpZ2h0XCIpXG4gICAgICAgICAgICB9LmFwcGx5KG51bGwsIGFyZ3VtZW50cylcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgISRldmVudC50eXBlLmluZGV4T2YoXCJrZXlcIikgJiZcbiAgICAgICAgICAgICAgX3ZtLl9rKCRldmVudC5rZXlDb2RlLCBcImRvd25cIiwgNDAsICRldmVudC5rZXksIFtcbiAgICAgICAgICAgICAgICBcIkRvd25cIixcbiAgICAgICAgICAgICAgICBcIkFycm93RG93blwiLFxuICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICByZXR1cm4gX3ZtLiRlbWl0KFwiYXJyb3dEb3duXCIpXG4gICAgICAgICAgICB9LmFwcGx5KG51bGwsIGFyZ3VtZW50cylcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgISRldmVudC50eXBlLmluZGV4T2YoXCJrZXlcIikgJiZcbiAgICAgICAgICAgICAgX3ZtLl9rKCRldmVudC5rZXlDb2RlLCBcInVwXCIsIDM4LCAkZXZlbnQua2V5LCBbXCJVcFwiLCBcIkFycm93VXBcIl0pXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgIHJldHVybiBfdm0uJGVtaXQoXCJhcnJvd1VwXCIsICRldmVudClcbiAgICAgICAgICAgIH0uYXBwbHkobnVsbCwgYXJndW1lbnRzKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAhJGV2ZW50LnR5cGUuaW5kZXhPZihcImtleVwiKSAmJlxuICAgICAgICAgICAgICBfdm0uX2soJGV2ZW50LmtleUNvZGUsIFwiZW50ZXJcIiwgMTMsICRldmVudC5rZXksIFwiRW50ZXJcIilcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIF92bS4kZW1pdChcImVudGVyXCIpXG4gICAgICAgICAgICB9LmFwcGx5KG51bGwsIGFyZ3VtZW50cylcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBpbnB1dDogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgIGlmICgkZXZlbnQudGFyZ2V0LmNvbXBvc2luZykge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIF92bS52YWx1ZSA9ICRldmVudC50YXJnZXQudmFsdWVcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgX3ZtLl92KFwiIFwiKSxcbiAgICBfYyhcbiAgICAgIFwic3BhblwiLFxuICAgICAge1xuICAgICAgICBzdGF0aWNDbGFzczogXCJoaWRkZW5cIixcbiAgICAgICAgYXR0cnM6IHsgaWQ6IFwiZW1vamktcGlja2VyLXNlYXJjaC1kZXNjcmlwdGlvblwiIH0sXG4gICAgICB9LFxuICAgICAgW1xuICAgICAgICBfdm0uX3YoXG4gICAgICAgICAgXCJVc2UgdGhlIGxlZnQsIHJpZ2h0LCB1cCBhbmQgZG93biBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIHRoZSBlbW9qaSBzZWFyY2hcXG4gICAgcmVzdWx0cy5cIlxuICAgICAgICApLFxuICAgICAgXVxuICAgICksXG4gIF0pXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXG4gICAgXCJkaXZcIixcbiAgICB7XG4gICAgICBjbGFzczoge1xuICAgICAgICBcImVtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlc1wiOiB0cnVlLFxuICAgICAgICBcImVtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcy1vcGVuZWRcIjogX3ZtLm9wZW5lZCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBfdm0uX2woNiwgZnVuY3Rpb24gKHNraW5Ub25lKSB7XG4gICAgICByZXR1cm4gX2MoXG4gICAgICAgIFwic3BhblwiLFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiBza2luVG9uZSxcbiAgICAgICAgICBjbGFzczoge1xuICAgICAgICAgICAgXCJlbW9qaS1tYXJ0LXNraW4tc3dhdGNoXCI6IHRydWUsXG4gICAgICAgICAgICBcImVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gtc2VsZWN0ZWRcIjogX3ZtLnNraW4gPT0gc2tpblRvbmUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFwic3BhblwiLCB7XG4gICAgICAgICAgICBjbGFzczogXCJlbW9qaS1tYXJ0LXNraW4gZW1vamktbWFydC1za2luLXRvbmUtXCIgKyBza2luVG9uZSxcbiAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF92bS5vbkNsaWNrKHNraW5Ub25lKVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXVxuICAgICAgKVxuICAgIH0pLFxuICAgIDBcbiAgKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsIi8qIGdsb2JhbHMgX19WVUVfU1NSX0NPTlRFWFRfXyAqL1xuXG4vLyBJTVBPUlRBTlQ6IERvIE5PVCB1c2UgRVMyMDE1IGZlYXR1cmVzIGluIHRoaXMgZmlsZSAoZXhjZXB0IGZvciBtb2R1bGVzKS5cbi8vIFRoaXMgbW9kdWxlIGlzIGEgcnVudGltZSB1dGlsaXR5IGZvciBjbGVhbmVyIGNvbXBvbmVudCBtb2R1bGUgb3V0cHV0IGFuZCB3aWxsXG4vLyBiZSBpbmNsdWRlZCBpbiB0aGUgZmluYWwgd2VicGFjayB1c2VyIGJ1bmRsZS5cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbm9ybWFsaXplQ29tcG9uZW50IChcbiAgc2NyaXB0RXhwb3J0cyxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZ1bmN0aW9uYWxUZW1wbGF0ZSxcbiAgaW5qZWN0U3R5bGVzLFxuICBzY29wZUlkLFxuICBtb2R1bGVJZGVudGlmaWVyLCAvKiBzZXJ2ZXIgb25seSAqL1xuICBzaGFkb3dNb2RlIC8qIHZ1ZS1jbGkgb25seSAqL1xuKSB7XG4gIC8vIFZ1ZS5leHRlbmQgY29uc3RydWN0b3IgZXhwb3J0IGludGVyb3BcbiAgdmFyIG9wdGlvbnMgPSB0eXBlb2Ygc2NyaXB0RXhwb3J0cyA9PT0gJ2Z1bmN0aW9uJ1xuICAgID8gc2NyaXB0RXhwb3J0cy5vcHRpb25zXG4gICAgOiBzY3JpcHRFeHBvcnRzXG5cbiAgLy8gcmVuZGVyIGZ1bmN0aW9uc1xuICBpZiAocmVuZGVyKSB7XG4gICAgb3B0aW9ucy5yZW5kZXIgPSByZW5kZXJcbiAgICBvcHRpb25zLnN0YXRpY1JlbmRlckZucyA9IHN0YXRpY1JlbmRlckZuc1xuICAgIG9wdGlvbnMuX2NvbXBpbGVkID0gdHJ1ZVxuICB9XG5cbiAgLy8gZnVuY3Rpb25hbCB0ZW1wbGF0ZVxuICBpZiAoZnVuY3Rpb25hbFRlbXBsYXRlKSB7XG4gICAgb3B0aW9ucy5mdW5jdGlvbmFsID0gdHJ1ZVxuICB9XG5cbiAgLy8gc2NvcGVkSWRcbiAgaWYgKHNjb3BlSWQpIHtcbiAgICBvcHRpb25zLl9zY29wZUlkID0gJ2RhdGEtdi0nICsgc2NvcGVJZFxuICB9XG5cbiAgdmFyIGhvb2tcbiAgaWYgKG1vZHVsZUlkZW50aWZpZXIpIHsgLy8gc2VydmVyIGJ1aWxkXG4gICAgaG9vayA9IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgICAvLyAyLjMgaW5qZWN0aW9uXG4gICAgICBjb250ZXh0ID1cbiAgICAgICAgY29udGV4dCB8fCAvLyBjYWNoZWQgY2FsbFxuICAgICAgICAodGhpcy4kdm5vZGUgJiYgdGhpcy4kdm5vZGUuc3NyQ29udGV4dCkgfHwgLy8gc3RhdGVmdWxcbiAgICAgICAgKHRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50LiR2bm9kZSAmJiB0aGlzLnBhcmVudC4kdm5vZGUuc3NyQ29udGV4dCkgLy8gZnVuY3Rpb25hbFxuICAgICAgLy8gMi4yIHdpdGggcnVuSW5OZXdDb250ZXh0OiB0cnVlXG4gICAgICBpZiAoIWNvbnRleHQgJiYgdHlwZW9mIF9fVlVFX1NTUl9DT05URVhUX18gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGNvbnRleHQgPSBfX1ZVRV9TU1JfQ09OVEVYVF9fXG4gICAgICB9XG4gICAgICAvLyBpbmplY3QgY29tcG9uZW50IHN0eWxlc1xuICAgICAgaWYgKGluamVjdFN0eWxlcykge1xuICAgICAgICBpbmplY3RTdHlsZXMuY2FsbCh0aGlzLCBjb250ZXh0KVxuICAgICAgfVxuICAgICAgLy8gcmVnaXN0ZXIgY29tcG9uZW50IG1vZHVsZSBpZGVudGlmaWVyIGZvciBhc3luYyBjaHVuayBpbmZlcnJlbmNlXG4gICAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0Ll9yZWdpc3RlcmVkQ29tcG9uZW50cykge1xuICAgICAgICBjb250ZXh0Ll9yZWdpc3RlcmVkQ29tcG9uZW50cy5hZGQobW9kdWxlSWRlbnRpZmllcilcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gdXNlZCBieSBzc3IgaW4gY2FzZSBjb21wb25lbnQgaXMgY2FjaGVkIGFuZCBiZWZvcmVDcmVhdGVcbiAgICAvLyBuZXZlciBnZXRzIGNhbGxlZFxuICAgIG9wdGlvbnMuX3NzclJlZ2lzdGVyID0gaG9va1xuICB9IGVsc2UgaWYgKGluamVjdFN0eWxlcykge1xuICAgIGhvb2sgPSBzaGFkb3dNb2RlXG4gICAgICA/IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaW5qZWN0U3R5bGVzLmNhbGwoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICAob3B0aW9ucy5mdW5jdGlvbmFsID8gdGhpcy5wYXJlbnQgOiB0aGlzKS4kcm9vdC4kb3B0aW9ucy5zaGFkb3dSb290XG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIDogaW5qZWN0U3R5bGVzXG4gIH1cblxuICBpZiAoaG9vaykge1xuICAgIGlmIChvcHRpb25zLmZ1bmN0aW9uYWwpIHtcbiAgICAgIC8vIGZvciB0ZW1wbGF0ZS1vbmx5IGhvdC1yZWxvYWQgYmVjYXVzZSBpbiB0aGF0IGNhc2UgdGhlIHJlbmRlciBmbiBkb2Vzbid0XG4gICAgICAvLyBnbyB0aHJvdWdoIHRoZSBub3JtYWxpemVyXG4gICAgICBvcHRpb25zLl9pbmplY3RTdHlsZXMgPSBob29rXG4gICAgICAvLyByZWdpc3RlciBmb3IgZnVuY3Rpb25hbCBjb21wb25lbnQgaW4gdnVlIGZpbGVcbiAgICAgIHZhciBvcmlnaW5hbFJlbmRlciA9IG9wdGlvbnMucmVuZGVyXG4gICAgICBvcHRpb25zLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcldpdGhTdHlsZUluamVjdGlvbiAoaCwgY29udGV4dCkge1xuICAgICAgICBob29rLmNhbGwoY29udGV4dClcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsUmVuZGVyKGgsIGNvbnRleHQpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGluamVjdCBjb21wb25lbnQgcmVnaXN0cmF0aW9uIGFzIGJlZm9yZUNyZWF0ZSBob29rXG4gICAgICB2YXIgZXhpc3RpbmcgPSBvcHRpb25zLmJlZm9yZUNyZWF0ZVxuICAgICAgb3B0aW9ucy5iZWZvcmVDcmVhdGUgPSBleGlzdGluZ1xuICAgICAgICA/IFtdLmNvbmNhdChleGlzdGluZywgaG9vaylcbiAgICAgICAgOiBbaG9va11cbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGV4cG9ydHM6IHNjcmlwdEV4cG9ydHMsXG4gICAgb3B0aW9uczogb3B0aW9uc1xuICB9XG59XG4iLCIvLyBzdHlsZS1sb2FkZXI6IEFkZHMgc29tZSBjc3MgdG8gdGhlIERPTSBieSBhZGRpbmcgYSA8c3R5bGU+IHRhZ1xuXG4vLyBsb2FkIHRoZSBzdHlsZXNcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vZW1vamktbWFydC5jc3NcIik7XG5pZihjb250ZW50Ll9fZXNNb2R1bGUpIGNvbnRlbnQgPSBjb250ZW50LmRlZmF1bHQ7XG5pZih0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbmlmKGNvbnRlbnQubG9jYWxzKSBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xuLy8gYWRkIHRoZSBzdHlsZXMgdG8gdGhlIERPTVxudmFyIGFkZCA9IHJlcXVpcmUoXCIhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlc0NsaWVudC5qc1wiKS5kZWZhdWx0XG52YXIgdXBkYXRlID0gYWRkKFwiMDQ5N2NhNjFcIiwgY29udGVudCwgZmFsc2UsIHt9KTtcbi8vIEhvdCBNb2R1bGUgUmVwbGFjZW1lbnRcbmlmKG1vZHVsZS5ob3QpIHtcbiAvLyBXaGVuIHRoZSBzdHlsZXMgY2hhbmdlLCB1cGRhdGUgdGhlIDxzdHlsZT4gdGFnc1xuIGlmKCFjb250ZW50LmxvY2Fscykge1xuICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIhIS4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2Vtb2ppLW1hcnQuY3NzXCIsIGZ1bmN0aW9uKCkge1xuICAgICB2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2Vtb2ppLW1hcnQuY3NzXCIpO1xuICAgICBpZihuZXdDb250ZW50Ll9fZXNNb2R1bGUpIG5ld0NvbnRlbnQgPSBuZXdDb250ZW50LmRlZmF1bHQ7XG4gICAgIGlmKHR5cGVvZiBuZXdDb250ZW50ID09PSAnc3RyaW5nJykgbmV3Q29udGVudCA9IFtbbW9kdWxlLmlkLCBuZXdDb250ZW50LCAnJ11dO1xuICAgICB1cGRhdGUobmV3Q29udGVudCk7XG4gICB9KTtcbiB9XG4gLy8gV2hlbiB0aGUgbW9kdWxlIGlzIGRpc3Bvc2VkLCByZW1vdmUgdGhlIDxzdHlsZT4gdGFnc1xuIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHsgdXBkYXRlKCk7IH0pO1xufSIsIi8vIHN0eWxlLWxvYWRlcjogQWRkcyBzb21lIGNzcyB0byB0aGUgRE9NIGJ5IGFkZGluZyBhIDxzdHlsZT4gdGFnXG5cbi8vIGxvYWQgdGhlIHN0eWxlc1xudmFyIGNvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi8uLi9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vcXVhc2FyLm1hdC5jc3NcIik7XG5pZihjb250ZW50Ll9fZXNNb2R1bGUpIGNvbnRlbnQgPSBjb250ZW50LmRlZmF1bHQ7XG5pZih0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbmlmKGNvbnRlbnQubG9jYWxzKSBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xuLy8gYWRkIHRoZSBzdHlsZXMgdG8gdGhlIERPTVxudmFyIGFkZCA9IHJlcXVpcmUoXCIhLi4vLi4vLi4vdnVlLXN0eWxlLWxvYWRlci9saWIvYWRkU3R5bGVzQ2xpZW50LmpzXCIpLmRlZmF1bHRcbnZhciB1cGRhdGUgPSBhZGQoXCI4M2NlYzdlYVwiLCBjb250ZW50LCBmYWxzZSwge30pO1xuLy8gSG90IE1vZHVsZSBSZXBsYWNlbWVudFxuaWYobW9kdWxlLmhvdCkge1xuIC8vIFdoZW4gdGhlIHN0eWxlcyBjaGFuZ2UsIHVwZGF0ZSB0aGUgPHN0eWxlPiB0YWdzXG4gaWYoIWNvbnRlbnQubG9jYWxzKSB7XG4gICBtb2R1bGUuaG90LmFjY2VwdChcIiEhLi4vLi4vLi4vY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3F1YXNhci5tYXQuY3NzXCIsIGZ1bmN0aW9uKCkge1xuICAgICB2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uLy4uLy4uL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanMhLi9xdWFzYXIubWF0LmNzc1wiKTtcbiAgICAgaWYobmV3Q29udGVudC5fX2VzTW9kdWxlKSBuZXdDb250ZW50ID0gbmV3Q29udGVudC5kZWZhdWx0O1xuICAgICBpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcbiAgICAgdXBkYXRlKG5ld0NvbnRlbnQpO1xuICAgfSk7XG4gfVxuIC8vIFdoZW4gdGhlIG1vZHVsZSBpcyBkaXNwb3NlZCwgcmVtb3ZlIHRoZSA8c3R5bGU+IHRhZ3NcbiBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn0iLCIvLyBzdHlsZS1sb2FkZXI6IEFkZHMgc29tZSBjc3MgdG8gdGhlIERPTSBieSBhZGRpbmcgYSA8c3R5bGU+IHRhZ1xuXG4vLyBsb2FkIHRoZSBzdHlsZXNcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2FwcC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00ZmJjNzM1YiZzY29wZWQ9dHJ1ZSZsYW5nPWNzcyZcIik7XG5pZihjb250ZW50Ll9fZXNNb2R1bGUpIGNvbnRlbnQgPSBjb250ZW50LmRlZmF1bHQ7XG5pZih0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIGNvbnRlbnQgPSBbW21vZHVsZS5pZCwgY29udGVudCwgJyddXTtcbmlmKGNvbnRlbnQubG9jYWxzKSBtb2R1bGUuZXhwb3J0cyA9IGNvbnRlbnQubG9jYWxzO1xuLy8gYWRkIHRoZSBzdHlsZXMgdG8gdGhlIERPTVxudmFyIGFkZCA9IHJlcXVpcmUoXCIhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlc0NsaWVudC5qc1wiKS5kZWZhdWx0XG52YXIgdXBkYXRlID0gYWRkKFwiMjNmMGU4ODhcIiwgY29udGVudCwgZmFsc2UsIHt9KTtcbi8vIEhvdCBNb2R1bGUgUmVwbGFjZW1lbnRcbmlmKG1vZHVsZS5ob3QpIHtcbiAvLyBXaGVuIHRoZSBzdHlsZXMgY2hhbmdlLCB1cGRhdGUgdGhlIDxzdHlsZT4gdGFnc1xuIGlmKCFjb250ZW50LmxvY2Fscykge1xuICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIhIS4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9hcHAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NGZiYzczNWImc2NvcGVkPXRydWUmbGFuZz1jc3MmXCIsIGZ1bmN0aW9uKCkge1xuICAgICB2YXIgbmV3Q29udGVudCA9IHJlcXVpcmUoXCIhIS4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9hcHAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NGZiYzczNWImc2NvcGVkPXRydWUmbGFuZz1jc3MmXCIpO1xuICAgICBpZihuZXdDb250ZW50Ll9fZXNNb2R1bGUpIG5ld0NvbnRlbnQgPSBuZXdDb250ZW50LmRlZmF1bHQ7XG4gICAgIGlmKHR5cGVvZiBuZXdDb250ZW50ID09PSAnc3RyaW5nJykgbmV3Q29udGVudCA9IFtbbW9kdWxlLmlkLCBuZXdDb250ZW50LCAnJ11dO1xuICAgICB1cGRhdGUobmV3Q29udGVudCk7XG4gICB9KTtcbiB9XG4gLy8gV2hlbiB0aGUgbW9kdWxlIGlzIGRpc3Bvc2VkLCByZW1vdmUgdGhlIDxzdHlsZT4gdGFnc1xuIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbigpIHsgdXBkYXRlKCk7IH0pO1xufSIsIi8qXG4gIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwXG4gIEF1dGhvciBUb2JpYXMgS29wcGVycyBAc29rcmFcbiAgTW9kaWZpZWQgYnkgRXZhbiBZb3UgQHl5eDk5MDgwM1xuKi9cblxuaW1wb3J0IGxpc3RUb1N0eWxlcyBmcm9tICcuL2xpc3RUb1N0eWxlcydcblxudmFyIGhhc0RvY3VtZW50ID0gdHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJ1xuXG5pZiAodHlwZW9mIERFQlVHICE9PSAndW5kZWZpbmVkJyAmJiBERUJVRykge1xuICBpZiAoIWhhc0RvY3VtZW50KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICd2dWUtc3R5bGUtbG9hZGVyIGNhbm5vdCBiZSB1c2VkIGluIGEgbm9uLWJyb3dzZXIgZW52aXJvbm1lbnQuICcgK1xuICAgIFwiVXNlIHsgdGFyZ2V0OiAnbm9kZScgfSBpbiB5b3VyIFdlYnBhY2sgY29uZmlnIHRvIGluZGljYXRlIGEgc2VydmVyLXJlbmRlcmluZyBlbnZpcm9ubWVudC5cIlxuICApIH1cbn1cblxuLypcbnR5cGUgU3R5bGVPYmplY3QgPSB7XG4gIGlkOiBudW1iZXI7XG4gIHBhcnRzOiBBcnJheTxTdHlsZU9iamVjdFBhcnQ+XG59XG5cbnR5cGUgU3R5bGVPYmplY3RQYXJ0ID0ge1xuICBjc3M6IHN0cmluZztcbiAgbWVkaWE6IHN0cmluZztcbiAgc291cmNlTWFwOiA/c3RyaW5nXG59XG4qL1xuXG52YXIgc3R5bGVzSW5Eb20gPSB7LypcbiAgW2lkOiBudW1iZXJdOiB7XG4gICAgaWQ6IG51bWJlcixcbiAgICByZWZzOiBudW1iZXIsXG4gICAgcGFydHM6IEFycmF5PChvYmo/OiBTdHlsZU9iamVjdFBhcnQpID0+IHZvaWQ+XG4gIH1cbiovfVxuXG52YXIgaGVhZCA9IGhhc0RvY3VtZW50ICYmIChkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0pXG52YXIgc2luZ2xldG9uRWxlbWVudCA9IG51bGxcbnZhciBzaW5nbGV0b25Db3VudGVyID0gMFxudmFyIGlzUHJvZHVjdGlvbiA9IGZhbHNlXG52YXIgbm9vcCA9IGZ1bmN0aW9uICgpIHt9XG52YXIgb3B0aW9ucyA9IG51bGxcbnZhciBzc3JJZEtleSA9ICdkYXRhLXZ1ZS1zc3ItaWQnXG5cbi8vIEZvcmNlIHNpbmdsZS10YWcgc29sdXRpb24gb24gSUU2LTksIHdoaWNoIGhhcyBhIGhhcmQgbGltaXQgb24gdGhlICMgb2YgPHN0eWxlPlxuLy8gdGFncyBpdCB3aWxsIGFsbG93IG9uIGEgcGFnZVxudmFyIGlzT2xkSUUgPSB0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyAmJiAvbXNpZSBbNi05XVxcYi8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFkZFN0eWxlc0NsaWVudCAocGFyZW50SWQsIGxpc3QsIF9pc1Byb2R1Y3Rpb24sIF9vcHRpb25zKSB7XG4gIGlzUHJvZHVjdGlvbiA9IF9pc1Byb2R1Y3Rpb25cblxuICBvcHRpb25zID0gX29wdGlvbnMgfHwge31cblxuICB2YXIgc3R5bGVzID0gbGlzdFRvU3R5bGVzKHBhcmVudElkLCBsaXN0KVxuICBhZGRTdHlsZXNUb0RvbShzdHlsZXMpXG5cbiAgcmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZSAobmV3TGlzdCkge1xuICAgIHZhciBtYXlSZW1vdmUgPSBbXVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaXRlbSA9IHN0eWxlc1tpXVxuICAgICAgdmFyIGRvbVN0eWxlID0gc3R5bGVzSW5Eb21baXRlbS5pZF1cbiAgICAgIGRvbVN0eWxlLnJlZnMtLVxuICAgICAgbWF5UmVtb3ZlLnB1c2goZG9tU3R5bGUpXG4gICAgfVxuICAgIGlmIChuZXdMaXN0KSB7XG4gICAgICBzdHlsZXMgPSBsaXN0VG9TdHlsZXMocGFyZW50SWQsIG5ld0xpc3QpXG4gICAgICBhZGRTdHlsZXNUb0RvbShzdHlsZXMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlcyA9IFtdXG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF5UmVtb3ZlLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZG9tU3R5bGUgPSBtYXlSZW1vdmVbaV1cbiAgICAgIGlmIChkb21TdHlsZS5yZWZzID09PSAwKSB7XG4gICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgZG9tU3R5bGUucGFydHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICBkb21TdHlsZS5wYXJ0c1tqXSgpXG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHN0eWxlc0luRG9tW2RvbVN0eWxlLmlkXVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBhZGRTdHlsZXNUb0RvbSAoc3R5bGVzIC8qIEFycmF5PFN0eWxlT2JqZWN0PiAqLykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpdGVtID0gc3R5bGVzW2ldXG4gICAgdmFyIGRvbVN0eWxlID0gc3R5bGVzSW5Eb21baXRlbS5pZF1cbiAgICBpZiAoZG9tU3R5bGUpIHtcbiAgICAgIGRvbVN0eWxlLnJlZnMrK1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBkb21TdHlsZS5wYXJ0cy5sZW5ndGg7IGorKykge1xuICAgICAgICBkb21TdHlsZS5wYXJ0c1tqXShpdGVtLnBhcnRzW2pdKVxuICAgICAgfVxuICAgICAgZm9yICg7IGogPCBpdGVtLnBhcnRzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGRvbVN0eWxlLnBhcnRzLnB1c2goYWRkU3R5bGUoaXRlbS5wYXJ0c1tqXSkpXG4gICAgICB9XG4gICAgICBpZiAoZG9tU3R5bGUucGFydHMubGVuZ3RoID4gaXRlbS5wYXJ0cy5sZW5ndGgpIHtcbiAgICAgICAgZG9tU3R5bGUucGFydHMubGVuZ3RoID0gaXRlbS5wYXJ0cy5sZW5ndGhcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHBhcnRzID0gW11cbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgaXRlbS5wYXJ0cy5sZW5ndGg7IGorKykge1xuICAgICAgICBwYXJ0cy5wdXNoKGFkZFN0eWxlKGl0ZW0ucGFydHNbal0pKVxuICAgICAgfVxuICAgICAgc3R5bGVzSW5Eb21baXRlbS5pZF0gPSB7IGlkOiBpdGVtLmlkLCByZWZzOiAxLCBwYXJ0czogcGFydHMgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVTdHlsZUVsZW1lbnQgKCkge1xuICB2YXIgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKVxuICBzdHlsZUVsZW1lbnQudHlwZSA9ICd0ZXh0L2NzcydcbiAgaGVhZC5hcHBlbmRDaGlsZChzdHlsZUVsZW1lbnQpXG4gIHJldHVybiBzdHlsZUVsZW1lbnRcbn1cblxuZnVuY3Rpb24gYWRkU3R5bGUgKG9iaiAvKiBTdHlsZU9iamVjdFBhcnQgKi8pIHtcbiAgdmFyIHVwZGF0ZSwgcmVtb3ZlXG4gIHZhciBzdHlsZUVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzdHlsZVsnICsgc3NySWRLZXkgKyAnfj1cIicgKyBvYmouaWQgKyAnXCJdJylcblxuICBpZiAoc3R5bGVFbGVtZW50KSB7XG4gICAgaWYgKGlzUHJvZHVjdGlvbikge1xuICAgICAgLy8gaGFzIFNTUiBzdHlsZXMgYW5kIGluIHByb2R1Y3Rpb24gbW9kZS5cbiAgICAgIC8vIHNpbXBseSBkbyBub3RoaW5nLlxuICAgICAgcmV0dXJuIG5vb3BcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaGFzIFNTUiBzdHlsZXMgYnV0IGluIGRldiBtb2RlLlxuICAgICAgLy8gZm9yIHNvbWUgcmVhc29uIENocm9tZSBjYW4ndCBoYW5kbGUgc291cmNlIG1hcCBpbiBzZXJ2ZXItcmVuZGVyZWRcbiAgICAgIC8vIHN0eWxlIHRhZ3MgLSBzb3VyY2UgbWFwcyBpbiA8c3R5bGU+IG9ubHkgd29ya3MgaWYgdGhlIHN0eWxlIHRhZyBpc1xuICAgICAgLy8gY3JlYXRlZCBhbmQgaW5zZXJ0ZWQgZHluYW1pY2FsbHkuIFNvIHdlIHJlbW92ZSB0aGUgc2VydmVyIHJlbmRlcmVkXG4gICAgICAvLyBzdHlsZXMgYW5kIGluamVjdCBuZXcgb25lcy5cbiAgICAgIHN0eWxlRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudClcbiAgICB9XG4gIH1cblxuICBpZiAoaXNPbGRJRSkge1xuICAgIC8vIHVzZSBzaW5nbGV0b24gbW9kZSBmb3IgSUU5LlxuICAgIHZhciBzdHlsZUluZGV4ID0gc2luZ2xldG9uQ291bnRlcisrXG4gICAgc3R5bGVFbGVtZW50ID0gc2luZ2xldG9uRWxlbWVudCB8fCAoc2luZ2xldG9uRWxlbWVudCA9IGNyZWF0ZVN0eWxlRWxlbWVudCgpKVxuICAgIHVwZGF0ZSA9IGFwcGx5VG9TaW5nbGV0b25UYWcuYmluZChudWxsLCBzdHlsZUVsZW1lbnQsIHN0eWxlSW5kZXgsIGZhbHNlKVxuICAgIHJlbW92ZSA9IGFwcGx5VG9TaW5nbGV0b25UYWcuYmluZChudWxsLCBzdHlsZUVsZW1lbnQsIHN0eWxlSW5kZXgsIHRydWUpXG4gIH0gZWxzZSB7XG4gICAgLy8gdXNlIG11bHRpLXN0eWxlLXRhZyBtb2RlIGluIGFsbCBvdGhlciBjYXNlc1xuICAgIHN0eWxlRWxlbWVudCA9IGNyZWF0ZVN0eWxlRWxlbWVudCgpXG4gICAgdXBkYXRlID0gYXBwbHlUb1RhZy5iaW5kKG51bGwsIHN0eWxlRWxlbWVudClcbiAgICByZW1vdmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBzdHlsZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdHlsZUVsZW1lbnQpXG4gICAgfVxuICB9XG5cbiAgdXBkYXRlKG9iailcblxuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlU3R5bGUgKG5ld09iaiAvKiBTdHlsZU9iamVjdFBhcnQgKi8pIHtcbiAgICBpZiAobmV3T2JqKSB7XG4gICAgICBpZiAobmV3T2JqLmNzcyA9PT0gb2JqLmNzcyAmJlxuICAgICAgICAgIG5ld09iai5tZWRpYSA9PT0gb2JqLm1lZGlhICYmXG4gICAgICAgICAgbmV3T2JqLnNvdXJjZU1hcCA9PT0gb2JqLnNvdXJjZU1hcCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIHVwZGF0ZShvYmogPSBuZXdPYmopXG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbW92ZSgpXG4gICAgfVxuICB9XG59XG5cbnZhciByZXBsYWNlVGV4dCA9IChmdW5jdGlvbiAoKSB7XG4gIHZhciB0ZXh0U3RvcmUgPSBbXVxuXG4gIHJldHVybiBmdW5jdGlvbiAoaW5kZXgsIHJlcGxhY2VtZW50KSB7XG4gICAgdGV4dFN0b3JlW2luZGV4XSA9IHJlcGxhY2VtZW50XG4gICAgcmV0dXJuIHRleHRTdG9yZS5maWx0ZXIoQm9vbGVhbikuam9pbignXFxuJylcbiAgfVxufSkoKVxuXG5mdW5jdGlvbiBhcHBseVRvU2luZ2xldG9uVGFnIChzdHlsZUVsZW1lbnQsIGluZGV4LCByZW1vdmUsIG9iaikge1xuICB2YXIgY3NzID0gcmVtb3ZlID8gJycgOiBvYmouY3NzXG5cbiAgaWYgKHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0KSB7XG4gICAgc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQuY3NzVGV4dCA9IHJlcGxhY2VUZXh0KGluZGV4LCBjc3MpXG4gIH0gZWxzZSB7XG4gICAgdmFyIGNzc05vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpXG4gICAgdmFyIGNoaWxkTm9kZXMgPSBzdHlsZUVsZW1lbnQuY2hpbGROb2Rlc1xuICAgIGlmIChjaGlsZE5vZGVzW2luZGV4XSkgc3R5bGVFbGVtZW50LnJlbW92ZUNoaWxkKGNoaWxkTm9kZXNbaW5kZXhdKVxuICAgIGlmIChjaGlsZE5vZGVzLmxlbmd0aCkge1xuICAgICAgc3R5bGVFbGVtZW50Lmluc2VydEJlZm9yZShjc3NOb2RlLCBjaGlsZE5vZGVzW2luZGV4XSlcbiAgICB9IGVsc2Uge1xuICAgICAgc3R5bGVFbGVtZW50LmFwcGVuZENoaWxkKGNzc05vZGUpXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGFwcGx5VG9UYWcgKHN0eWxlRWxlbWVudCwgb2JqKSB7XG4gIHZhciBjc3MgPSBvYmouY3NzXG4gIHZhciBtZWRpYSA9IG9iai5tZWRpYVxuICB2YXIgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcFxuXG4gIGlmIChtZWRpYSkge1xuICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ21lZGlhJywgbWVkaWEpXG4gIH1cbiAgaWYgKG9wdGlvbnMuc3NySWQpIHtcbiAgICBzdHlsZUVsZW1lbnQuc2V0QXR0cmlidXRlKHNzcklkS2V5LCBvYmouaWQpXG4gIH1cblxuICBpZiAoc291cmNlTWFwKSB7XG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuY2hyb21lLmNvbS9kZXZ0b29scy9kb2NzL2phdmFzY3JpcHQtZGVidWdnaW5nXG4gICAgLy8gdGhpcyBtYWtlcyBzb3VyY2UgbWFwcyBpbnNpZGUgc3R5bGUgdGFncyB3b3JrIHByb3Blcmx5IGluIENocm9tZVxuICAgIGNzcyArPSAnXFxuLyojIHNvdXJjZVVSTD0nICsgc291cmNlTWFwLnNvdXJjZXNbMF0gKyAnICovJ1xuICAgIC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzI2NjAzODc1XG4gICAgY3NzICs9ICdcXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LCcgKyBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKSkpICsgJyAqLydcbiAgfVxuXG4gIGlmIChzdHlsZUVsZW1lbnQuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3NcbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpIHtcbiAgICAgIHN0eWxlRWxlbWVudC5yZW1vdmVDaGlsZChzdHlsZUVsZW1lbnQuZmlyc3RDaGlsZClcbiAgICB9XG4gICAgc3R5bGVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpXG4gIH1cbn1cbiIsIi8qKlxuICogVHJhbnNsYXRlcyB0aGUgbGlzdCBmb3JtYXQgcHJvZHVjZWQgYnkgY3NzLWxvYWRlciBpbnRvIHNvbWV0aGluZ1xuICogZWFzaWVyIHRvIG1hbmlwdWxhdGUuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxpc3RUb1N0eWxlcyAocGFyZW50SWQsIGxpc3QpIHtcbiAgdmFyIHN0eWxlcyA9IFtdXG4gIHZhciBuZXdTdHlsZXMgPSB7fVxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV1cbiAgICB2YXIgaWQgPSBpdGVtWzBdXG4gICAgdmFyIGNzcyA9IGl0ZW1bMV1cbiAgICB2YXIgbWVkaWEgPSBpdGVtWzJdXG4gICAgdmFyIHNvdXJjZU1hcCA9IGl0ZW1bM11cbiAgICB2YXIgcGFydCA9IHtcbiAgICAgIGlkOiBwYXJlbnRJZCArICc6JyArIGksXG4gICAgICBjc3M6IGNzcyxcbiAgICAgIG1lZGlhOiBtZWRpYSxcbiAgICAgIHNvdXJjZU1hcDogc291cmNlTWFwXG4gICAgfVxuICAgIGlmICghbmV3U3R5bGVzW2lkXSkge1xuICAgICAgc3R5bGVzLnB1c2gobmV3U3R5bGVzW2lkXSA9IHsgaWQ6IGlkLCBwYXJ0czogW3BhcnRdIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1N0eWxlc1tpZF0ucGFydHMucHVzaChwYXJ0KVxuICAgIH1cbiAgfVxuICByZXR1cm4gc3R5bGVzXG59XG4iLCIvKiFcbiAqIFZ1ZS5qcyB2Mi42LjE0XG4gKiAoYykgMjAxNC0yMDIxIEV2YW4gWW91XG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXG4gKi9cbi8qICAqL1xuXG52YXIgZW1wdHlPYmplY3QgPSBPYmplY3QuZnJlZXplKHt9KTtcblxuLy8gVGhlc2UgaGVscGVycyBwcm9kdWNlIGJldHRlciBWTSBjb2RlIGluIEpTIGVuZ2luZXMgZHVlIHRvIHRoZWlyXG4vLyBleHBsaWNpdG5lc3MgYW5kIGZ1bmN0aW9uIGlubGluaW5nLlxuZnVuY3Rpb24gaXNVbmRlZiAodikge1xuICByZXR1cm4gdiA9PT0gdW5kZWZpbmVkIHx8IHYgPT09IG51bGxcbn1cblxuZnVuY3Rpb24gaXNEZWYgKHYpIHtcbiAgcmV0dXJuIHYgIT09IHVuZGVmaW5lZCAmJiB2ICE9PSBudWxsXG59XG5cbmZ1bmN0aW9uIGlzVHJ1ZSAodikge1xuICByZXR1cm4gdiA9PT0gdHJ1ZVxufVxuXG5mdW5jdGlvbiBpc0ZhbHNlICh2KSB7XG4gIHJldHVybiB2ID09PSBmYWxzZVxufVxuXG4vKipcbiAqIENoZWNrIGlmIHZhbHVlIGlzIHByaW1pdGl2ZS5cbiAqL1xuZnVuY3Rpb24gaXNQcmltaXRpdmUgKHZhbHVlKSB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHxcbiAgICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdzeW1ib2wnIHx8XG4gICAgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbidcbiAgKVxufVxuXG4vKipcbiAqIFF1aWNrIG9iamVjdCBjaGVjayAtIHRoaXMgaXMgcHJpbWFyaWx5IHVzZWQgdG8gdGVsbFxuICogT2JqZWN0cyBmcm9tIHByaW1pdGl2ZSB2YWx1ZXMgd2hlbiB3ZSBrbm93IHRoZSB2YWx1ZVxuICogaXMgYSBKU09OLWNvbXBsaWFudCB0eXBlLlxuICovXG5mdW5jdGlvbiBpc09iamVjdCAob2JqKSB7XG4gIHJldHVybiBvYmogIT09IG51bGwgJiYgdHlwZW9mIG9iaiA9PT0gJ29iamVjdCdcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHJhdyB0eXBlIHN0cmluZyBvZiBhIHZhbHVlLCBlLmcuLCBbb2JqZWN0IE9iamVjdF0uXG4gKi9cbnZhciBfdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1xuXG5mdW5jdGlvbiB0b1Jhd1R5cGUgKHZhbHVlKSB7XG4gIHJldHVybiBfdG9TdHJpbmcuY2FsbCh2YWx1ZSkuc2xpY2UoOCwgLTEpXG59XG5cbi8qKlxuICogU3RyaWN0IG9iamVjdCB0eXBlIGNoZWNrLiBPbmx5IHJldHVybnMgdHJ1ZVxuICogZm9yIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0cy5cbiAqL1xuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCAob2JqKSB7XG4gIHJldHVybiBfdG9TdHJpbmcuY2FsbChvYmopID09PSAnW29iamVjdCBPYmplY3RdJ1xufVxuXG5mdW5jdGlvbiBpc1JlZ0V4cCAodikge1xuICByZXR1cm4gX3RvU3RyaW5nLmNhbGwodikgPT09ICdbb2JqZWN0IFJlZ0V4cF0nXG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdmFsIGlzIGEgdmFsaWQgYXJyYXkgaW5kZXguXG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRBcnJheUluZGV4ICh2YWwpIHtcbiAgdmFyIG4gPSBwYXJzZUZsb2F0KFN0cmluZyh2YWwpKTtcbiAgcmV0dXJuIG4gPj0gMCAmJiBNYXRoLmZsb29yKG4pID09PSBuICYmIGlzRmluaXRlKHZhbClcbn1cblxuZnVuY3Rpb24gaXNQcm9taXNlICh2YWwpIHtcbiAgcmV0dXJuIChcbiAgICBpc0RlZih2YWwpICYmXG4gICAgdHlwZW9mIHZhbC50aGVuID09PSAnZnVuY3Rpb24nICYmXG4gICAgdHlwZW9mIHZhbC5jYXRjaCA9PT0gJ2Z1bmN0aW9uJ1xuICApXG59XG5cbi8qKlxuICogQ29udmVydCBhIHZhbHVlIHRvIGEgc3RyaW5nIHRoYXQgaXMgYWN0dWFsbHkgcmVuZGVyZWQuXG4gKi9cbmZ1bmN0aW9uIHRvU3RyaW5nICh2YWwpIHtcbiAgcmV0dXJuIHZhbCA9PSBudWxsXG4gICAgPyAnJ1xuICAgIDogQXJyYXkuaXNBcnJheSh2YWwpIHx8IChpc1BsYWluT2JqZWN0KHZhbCkgJiYgdmFsLnRvU3RyaW5nID09PSBfdG9TdHJpbmcpXG4gICAgICA/IEpTT04uc3RyaW5naWZ5KHZhbCwgbnVsbCwgMilcbiAgICAgIDogU3RyaW5nKHZhbClcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGFuIGlucHV0IHZhbHVlIHRvIGEgbnVtYmVyIGZvciBwZXJzaXN0ZW5jZS5cbiAqIElmIHRoZSBjb252ZXJzaW9uIGZhaWxzLCByZXR1cm4gb3JpZ2luYWwgc3RyaW5nLlxuICovXG5mdW5jdGlvbiB0b051bWJlciAodmFsKSB7XG4gIHZhciBuID0gcGFyc2VGbG9hdCh2YWwpO1xuICByZXR1cm4gaXNOYU4obikgPyB2YWwgOiBuXG59XG5cbi8qKlxuICogTWFrZSBhIG1hcCBhbmQgcmV0dXJuIGEgZnVuY3Rpb24gZm9yIGNoZWNraW5nIGlmIGEga2V5XG4gKiBpcyBpbiB0aGF0IG1hcC5cbiAqL1xuZnVuY3Rpb24gbWFrZU1hcCAoXG4gIHN0cixcbiAgZXhwZWN0c0xvd2VyQ2FzZVxuKSB7XG4gIHZhciBtYXAgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICB2YXIgbGlzdCA9IHN0ci5zcGxpdCgnLCcpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICBtYXBbbGlzdFtpXV0gPSB0cnVlO1xuICB9XG4gIHJldHVybiBleHBlY3RzTG93ZXJDYXNlXG4gICAgPyBmdW5jdGlvbiAodmFsKSB7IHJldHVybiBtYXBbdmFsLnRvTG93ZXJDYXNlKCldOyB9XG4gICAgOiBmdW5jdGlvbiAodmFsKSB7IHJldHVybiBtYXBbdmFsXTsgfVxufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgdGFnIGlzIGEgYnVpbHQtaW4gdGFnLlxuICovXG52YXIgaXNCdWlsdEluVGFnID0gbWFrZU1hcCgnc2xvdCxjb21wb25lbnQnLCB0cnVlKTtcblxuLyoqXG4gKiBDaGVjayBpZiBhbiBhdHRyaWJ1dGUgaXMgYSByZXNlcnZlZCBhdHRyaWJ1dGUuXG4gKi9cbnZhciBpc1Jlc2VydmVkQXR0cmlidXRlID0gbWFrZU1hcCgna2V5LHJlZixzbG90LHNsb3Qtc2NvcGUsaXMnKTtcblxuLyoqXG4gKiBSZW1vdmUgYW4gaXRlbSBmcm9tIGFuIGFycmF5LlxuICovXG5mdW5jdGlvbiByZW1vdmUgKGFyciwgaXRlbSkge1xuICBpZiAoYXJyLmxlbmd0aCkge1xuICAgIHZhciBpbmRleCA9IGFyci5pbmRleE9mKGl0ZW0pO1xuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICByZXR1cm4gYXJyLnNwbGljZShpbmRleCwgMSlcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIGFuIG9iamVjdCBoYXMgdGhlIHByb3BlcnR5LlxuICovXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuZnVuY3Rpb24gaGFzT3duIChvYmosIGtleSkge1xuICByZXR1cm4gaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSlcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBjYWNoZWQgdmVyc2lvbiBvZiBhIHB1cmUgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGNhY2hlZCAoZm4pIHtcbiAgdmFyIGNhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgcmV0dXJuIChmdW5jdGlvbiBjYWNoZWRGbiAoc3RyKSB7XG4gICAgdmFyIGhpdCA9IGNhY2hlW3N0cl07XG4gICAgcmV0dXJuIGhpdCB8fCAoY2FjaGVbc3RyXSA9IGZuKHN0cikpXG4gIH0pXG59XG5cbi8qKlxuICogQ2FtZWxpemUgYSBoeXBoZW4tZGVsaW1pdGVkIHN0cmluZy5cbiAqL1xudmFyIGNhbWVsaXplUkUgPSAvLShcXHcpL2c7XG52YXIgY2FtZWxpemUgPSBjYWNoZWQoZnVuY3Rpb24gKHN0cikge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoY2FtZWxpemVSRSwgZnVuY3Rpb24gKF8sIGMpIHsgcmV0dXJuIGMgPyBjLnRvVXBwZXJDYXNlKCkgOiAnJzsgfSlcbn0pO1xuXG4vKipcbiAqIENhcGl0YWxpemUgYSBzdHJpbmcuXG4gKi9cbnZhciBjYXBpdGFsaXplID0gY2FjaGVkKGZ1bmN0aW9uIChzdHIpIHtcbiAgcmV0dXJuIHN0ci5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0ci5zbGljZSgxKVxufSk7XG5cbi8qKlxuICogSHlwaGVuYXRlIGEgY2FtZWxDYXNlIHN0cmluZy5cbiAqL1xudmFyIGh5cGhlbmF0ZVJFID0gL1xcQihbQS1aXSkvZztcbnZhciBoeXBoZW5hdGUgPSBjYWNoZWQoZnVuY3Rpb24gKHN0cikge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoaHlwaGVuYXRlUkUsICctJDEnKS50b0xvd2VyQ2FzZSgpXG59KTtcblxuLyoqXG4gKiBTaW1wbGUgYmluZCBwb2x5ZmlsbCBmb3IgZW52aXJvbm1lbnRzIHRoYXQgZG8gbm90IHN1cHBvcnQgaXQsXG4gKiBlLmcuLCBQaGFudG9tSlMgMS54LiBUZWNobmljYWxseSwgd2UgZG9uJ3QgbmVlZCB0aGlzIGFueW1vcmVcbiAqIHNpbmNlIG5hdGl2ZSBiaW5kIGlzIG5vdyBwZXJmb3JtYW50IGVub3VnaCBpbiBtb3N0IGJyb3dzZXJzLlxuICogQnV0IHJlbW92aW5nIGl0IHdvdWxkIG1lYW4gYnJlYWtpbmcgY29kZSB0aGF0IHdhcyBhYmxlIHRvIHJ1biBpblxuICogUGhhbnRvbUpTIDEueCwgc28gdGhpcyBtdXN0IGJlIGtlcHQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKi9cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmZ1bmN0aW9uIHBvbHlmaWxsQmluZCAoZm4sIGN0eCkge1xuICBmdW5jdGlvbiBib3VuZEZuIChhKSB7XG4gICAgdmFyIGwgPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHJldHVybiBsXG4gICAgICA/IGwgPiAxXG4gICAgICAgID8gZm4uYXBwbHkoY3R4LCBhcmd1bWVudHMpXG4gICAgICAgIDogZm4uY2FsbChjdHgsIGEpXG4gICAgICA6IGZuLmNhbGwoY3R4KVxuICB9XG5cbiAgYm91bmRGbi5fbGVuZ3RoID0gZm4ubGVuZ3RoO1xuICByZXR1cm4gYm91bmRGblxufVxuXG5mdW5jdGlvbiBuYXRpdmVCaW5kIChmbiwgY3R4KSB7XG4gIHJldHVybiBmbi5iaW5kKGN0eClcbn1cblxudmFyIGJpbmQgPSBGdW5jdGlvbi5wcm90b3R5cGUuYmluZFxuICA/IG5hdGl2ZUJpbmRcbiAgOiBwb2x5ZmlsbEJpbmQ7XG5cbi8qKlxuICogQ29udmVydCBhbiBBcnJheS1saWtlIG9iamVjdCB0byBhIHJlYWwgQXJyYXkuXG4gKi9cbmZ1bmN0aW9uIHRvQXJyYXkgKGxpc3QsIHN0YXJ0KSB7XG4gIHN0YXJ0ID0gc3RhcnQgfHwgMDtcbiAgdmFyIGkgPSBsaXN0Lmxlbmd0aCAtIHN0YXJ0O1xuICB2YXIgcmV0ID0gbmV3IEFycmF5KGkpO1xuICB3aGlsZSAoaS0tKSB7XG4gICAgcmV0W2ldID0gbGlzdFtpICsgc3RhcnRdO1xuICB9XG4gIHJldHVybiByZXRcbn1cblxuLyoqXG4gKiBNaXggcHJvcGVydGllcyBpbnRvIHRhcmdldCBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGV4dGVuZCAodG8sIF9mcm9tKSB7XG4gIGZvciAodmFyIGtleSBpbiBfZnJvbSkge1xuICAgIHRvW2tleV0gPSBfZnJvbVtrZXldO1xuICB9XG4gIHJldHVybiB0b1xufVxuXG4vKipcbiAqIE1lcmdlIGFuIEFycmF5IG9mIE9iamVjdHMgaW50byBhIHNpbmdsZSBPYmplY3QuXG4gKi9cbmZ1bmN0aW9uIHRvT2JqZWN0IChhcnIpIHtcbiAgdmFyIHJlcyA9IHt9O1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgIGlmIChhcnJbaV0pIHtcbiAgICAgIGV4dGVuZChyZXMsIGFycltpXSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cblxuLyoqXG4gKiBQZXJmb3JtIG5vIG9wZXJhdGlvbi5cbiAqIFN0dWJiaW5nIGFyZ3MgdG8gbWFrZSBGbG93IGhhcHB5IHdpdGhvdXQgbGVhdmluZyB1c2VsZXNzIHRyYW5zcGlsZWQgY29kZVxuICogd2l0aCAuLi5yZXN0IChodHRwczovL2Zsb3cub3JnL2Jsb2cvMjAxNy8wNS8wNy9TdHJpY3QtRnVuY3Rpb24tQ2FsbC1Bcml0eS8pLlxuICovXG5mdW5jdGlvbiBub29wIChhLCBiLCBjKSB7fVxuXG4vKipcbiAqIEFsd2F5cyByZXR1cm4gZmFsc2UuXG4gKi9cbnZhciBubyA9IGZ1bmN0aW9uIChhLCBiLCBjKSB7IHJldHVybiBmYWxzZTsgfTtcblxuLyogZXNsaW50LWVuYWJsZSBuby11bnVzZWQtdmFycyAqL1xuXG4vKipcbiAqIFJldHVybiB0aGUgc2FtZSB2YWx1ZS5cbiAqL1xudmFyIGlkZW50aXR5ID0gZnVuY3Rpb24gKF8pIHsgcmV0dXJuIF87IH07XG5cbi8qKlxuICogQ2hlY2sgaWYgdHdvIHZhbHVlcyBhcmUgbG9vc2VseSBlcXVhbCAtIHRoYXQgaXMsXG4gKiBpZiB0aGV5IGFyZSBwbGFpbiBvYmplY3RzLCBkbyB0aGV5IGhhdmUgdGhlIHNhbWUgc2hhcGU/XG4gKi9cbmZ1bmN0aW9uIGxvb3NlRXF1YWwgKGEsIGIpIHtcbiAgaWYgKGEgPT09IGIpIHsgcmV0dXJuIHRydWUgfVxuICB2YXIgaXNPYmplY3RBID0gaXNPYmplY3QoYSk7XG4gIHZhciBpc09iamVjdEIgPSBpc09iamVjdChiKTtcbiAgaWYgKGlzT2JqZWN0QSAmJiBpc09iamVjdEIpIHtcbiAgICB0cnkge1xuICAgICAgdmFyIGlzQXJyYXlBID0gQXJyYXkuaXNBcnJheShhKTtcbiAgICAgIHZhciBpc0FycmF5QiA9IEFycmF5LmlzQXJyYXkoYik7XG4gICAgICBpZiAoaXNBcnJheUEgJiYgaXNBcnJheUIpIHtcbiAgICAgICAgcmV0dXJuIGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJiBhLmV2ZXJ5KGZ1bmN0aW9uIChlLCBpKSB7XG4gICAgICAgICAgcmV0dXJuIGxvb3NlRXF1YWwoZSwgYltpXSlcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSBpZiAoYSBpbnN0YW5jZW9mIERhdGUgJiYgYiBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgcmV0dXJuIGEuZ2V0VGltZSgpID09PSBiLmdldFRpbWUoKVxuICAgICAgfSBlbHNlIGlmICghaXNBcnJheUEgJiYgIWlzQXJyYXlCKSB7XG4gICAgICAgIHZhciBrZXlzQSA9IE9iamVjdC5rZXlzKGEpO1xuICAgICAgICB2YXIga2V5c0IgPSBPYmplY3Qua2V5cyhiKTtcbiAgICAgICAgcmV0dXJuIGtleXNBLmxlbmd0aCA9PT0ga2V5c0IubGVuZ3RoICYmIGtleXNBLmV2ZXJ5KGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICByZXR1cm4gbG9vc2VFcXVhbChhW2tleV0sIGJba2V5XSlcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH0gZWxzZSBpZiAoIWlzT2JqZWN0QSAmJiAhaXNPYmplY3RCKSB7XG4gICAgcmV0dXJuIFN0cmluZyhhKSA9PT0gU3RyaW5nKGIpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIGZpcnN0IGluZGV4IGF0IHdoaWNoIGEgbG9vc2VseSBlcXVhbCB2YWx1ZSBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBhcnJheSAoaWYgdmFsdWUgaXMgYSBwbGFpbiBvYmplY3QsIHRoZSBhcnJheSBtdXN0XG4gKiBjb250YWluIGFuIG9iamVjdCBvZiB0aGUgc2FtZSBzaGFwZSksIG9yIC0xIGlmIGl0IGlzIG5vdCBwcmVzZW50LlxuICovXG5mdW5jdGlvbiBsb29zZUluZGV4T2YgKGFyciwgdmFsKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGxvb3NlRXF1YWwoYXJyW2ldLCB2YWwpKSB7IHJldHVybiBpIH1cbiAgfVxuICByZXR1cm4gLTFcbn1cblxuLyoqXG4gKiBFbnN1cmUgYSBmdW5jdGlvbiBpcyBjYWxsZWQgb25seSBvbmNlLlxuICovXG5mdW5jdGlvbiBvbmNlIChmbikge1xuICB2YXIgY2FsbGVkID0gZmFsc2U7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFjYWxsZWQpIHtcbiAgICAgIGNhbGxlZCA9IHRydWU7XG4gICAgICBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgU1NSX0FUVFIgPSAnZGF0YS1zZXJ2ZXItcmVuZGVyZWQnO1xuXG52YXIgQVNTRVRfVFlQRVMgPSBbXG4gICdjb21wb25lbnQnLFxuICAnZGlyZWN0aXZlJyxcbiAgJ2ZpbHRlcidcbl07XG5cbnZhciBMSUZFQ1lDTEVfSE9PS1MgPSBbXG4gICdiZWZvcmVDcmVhdGUnLFxuICAnY3JlYXRlZCcsXG4gICdiZWZvcmVNb3VudCcsXG4gICdtb3VudGVkJyxcbiAgJ2JlZm9yZVVwZGF0ZScsXG4gICd1cGRhdGVkJyxcbiAgJ2JlZm9yZURlc3Ryb3knLFxuICAnZGVzdHJveWVkJyxcbiAgJ2FjdGl2YXRlZCcsXG4gICdkZWFjdGl2YXRlZCcsXG4gICdlcnJvckNhcHR1cmVkJyxcbiAgJ3NlcnZlclByZWZldGNoJ1xuXTtcblxuLyogICovXG5cblxuXG52YXIgY29uZmlnID0gKHtcbiAgLyoqXG4gICAqIE9wdGlvbiBtZXJnZSBzdHJhdGVnaWVzICh1c2VkIGluIGNvcmUvdXRpbC9vcHRpb25zKVxuICAgKi9cbiAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gIG9wdGlvbk1lcmdlU3RyYXRlZ2llczogT2JqZWN0LmNyZWF0ZShudWxsKSxcblxuICAvKipcbiAgICogV2hldGhlciB0byBzdXBwcmVzcyB3YXJuaW5ncy5cbiAgICovXG4gIHNpbGVudDogZmFsc2UsXG5cbiAgLyoqXG4gICAqIFNob3cgcHJvZHVjdGlvbiBtb2RlIHRpcCBtZXNzYWdlIG9uIGJvb3Q/XG4gICAqL1xuICBwcm9kdWN0aW9uVGlwOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nLFxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBkZXZ0b29sc1xuICAgKi9cbiAgZGV2dG9vbHM6IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicsXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcmVjb3JkIHBlcmZcbiAgICovXG4gIHBlcmZvcm1hbmNlOiBmYWxzZSxcblxuICAvKipcbiAgICogRXJyb3IgaGFuZGxlciBmb3Igd2F0Y2hlciBlcnJvcnNcbiAgICovXG4gIGVycm9ySGFuZGxlcjogbnVsbCxcblxuICAvKipcbiAgICogV2FybiBoYW5kbGVyIGZvciB3YXRjaGVyIHdhcm5zXG4gICAqL1xuICB3YXJuSGFuZGxlcjogbnVsbCxcblxuICAvKipcbiAgICogSWdub3JlIGNlcnRhaW4gY3VzdG9tIGVsZW1lbnRzXG4gICAqL1xuICBpZ25vcmVkRWxlbWVudHM6IFtdLFxuXG4gIC8qKlxuICAgKiBDdXN0b20gdXNlciBrZXkgYWxpYXNlcyBmb3Igdi1vblxuICAgKi9cbiAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gIGtleUNvZGVzOiBPYmplY3QuY3JlYXRlKG51bGwpLFxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIHRhZyBpcyByZXNlcnZlZCBzbyB0aGF0IGl0IGNhbm5vdCBiZSByZWdpc3RlcmVkIGFzIGFcbiAgICogY29tcG9uZW50LiBUaGlzIGlzIHBsYXRmb3JtLWRlcGVuZGVudCBhbmQgbWF5IGJlIG92ZXJ3cml0dGVuLlxuICAgKi9cbiAgaXNSZXNlcnZlZFRhZzogbm8sXG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIGF0dHJpYnV0ZSBpcyByZXNlcnZlZCBzbyB0aGF0IGl0IGNhbm5vdCBiZSB1c2VkIGFzIGEgY29tcG9uZW50XG4gICAqIHByb3AuIFRoaXMgaXMgcGxhdGZvcm0tZGVwZW5kZW50IGFuZCBtYXkgYmUgb3ZlcndyaXR0ZW4uXG4gICAqL1xuICBpc1Jlc2VydmVkQXR0cjogbm8sXG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgdGFnIGlzIGFuIHVua25vd24gZWxlbWVudC5cbiAgICogUGxhdGZvcm0tZGVwZW5kZW50LlxuICAgKi9cbiAgaXNVbmtub3duRWxlbWVudDogbm8sXG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbmFtZXNwYWNlIG9mIGFuIGVsZW1lbnRcbiAgICovXG4gIGdldFRhZ05hbWVzcGFjZTogbm9vcCxcblxuICAvKipcbiAgICogUGFyc2UgdGhlIHJlYWwgdGFnIG5hbWUgZm9yIHRoZSBzcGVjaWZpYyBwbGF0Zm9ybS5cbiAgICovXG4gIHBhcnNlUGxhdGZvcm1UYWdOYW1lOiBpZGVudGl0eSxcblxuICAvKipcbiAgICogQ2hlY2sgaWYgYW4gYXR0cmlidXRlIG11c3QgYmUgYm91bmQgdXNpbmcgcHJvcGVydHksIGUuZy4gdmFsdWVcbiAgICogUGxhdGZvcm0tZGVwZW5kZW50LlxuICAgKi9cbiAgbXVzdFVzZVByb3A6IG5vLFxuXG4gIC8qKlxuICAgKiBQZXJmb3JtIHVwZGF0ZXMgYXN5bmNocm9ub3VzbHkuIEludGVuZGVkIHRvIGJlIHVzZWQgYnkgVnVlIFRlc3QgVXRpbHNcbiAgICogVGhpcyB3aWxsIHNpZ25pZmljYW50bHkgcmVkdWNlIHBlcmZvcm1hbmNlIGlmIHNldCB0byBmYWxzZS5cbiAgICovXG4gIGFzeW5jOiB0cnVlLFxuXG4gIC8qKlxuICAgKiBFeHBvc2VkIGZvciBsZWdhY3kgcmVhc29uc1xuICAgKi9cbiAgX2xpZmVjeWNsZUhvb2tzOiBMSUZFQ1lDTEVfSE9PS1Ncbn0pO1xuXG4vKiAgKi9cblxuLyoqXG4gKiB1bmljb2RlIGxldHRlcnMgdXNlZCBmb3IgcGFyc2luZyBodG1sIHRhZ3MsIGNvbXBvbmVudCBuYW1lcyBhbmQgcHJvcGVydHkgcGF0aHMuXG4gKiB1c2luZyBodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUzL3NlbWFudGljcy1zY3JpcHRpbmcuaHRtbCNwb3RlbnRpYWxjdXN0b21lbGVtZW50bmFtZVxuICogc2tpcHBpbmcgXFx1MTAwMDAtXFx1RUZGRkYgZHVlIHRvIGl0IGZyZWV6aW5nIHVwIFBoYW50b21KU1xuICovXG52YXIgdW5pY29kZVJlZ0V4cCA9IC9hLXpBLVpcXHUwMEI3XFx1MDBDMC1cXHUwMEQ2XFx1MDBEOC1cXHUwMEY2XFx1MDBGOC1cXHUwMzdEXFx1MDM3Ri1cXHUxRkZGXFx1MjAwQy1cXHUyMDBEXFx1MjAzRi1cXHUyMDQwXFx1MjA3MC1cXHUyMThGXFx1MkMwMC1cXHUyRkVGXFx1MzAwMS1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkZELztcblxuLyoqXG4gKiBDaGVjayBpZiBhIHN0cmluZyBzdGFydHMgd2l0aCAkIG9yIF9cbiAqL1xuZnVuY3Rpb24gaXNSZXNlcnZlZCAoc3RyKSB7XG4gIHZhciBjID0gKHN0ciArICcnKS5jaGFyQ29kZUF0KDApO1xuICByZXR1cm4gYyA9PT0gMHgyNCB8fCBjID09PSAweDVGXG59XG5cbi8qKlxuICogRGVmaW5lIGEgcHJvcGVydHkuXG4gKi9cbmZ1bmN0aW9uIGRlZiAob2JqLCBrZXksIHZhbCwgZW51bWVyYWJsZSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICB2YWx1ZTogdmFsLFxuICAgIGVudW1lcmFibGU6ICEhZW51bWVyYWJsZSxcbiAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICBjb25maWd1cmFibGU6IHRydWVcbiAgfSk7XG59XG5cbi8qKlxuICogUGFyc2Ugc2ltcGxlIHBhdGguXG4gKi9cbnZhciBiYWlsUkUgPSBuZXcgUmVnRXhwKChcIlteXCIgKyAodW5pY29kZVJlZ0V4cC5zb3VyY2UpICsgXCIuJF9cXFxcZF1cIikpO1xuZnVuY3Rpb24gcGFyc2VQYXRoIChwYXRoKSB7XG4gIGlmIChiYWlsUkUudGVzdChwYXRoKSkge1xuICAgIHJldHVyblxuICB9XG4gIHZhciBzZWdtZW50cyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIChvYmopIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoIW9iaikgeyByZXR1cm4gfVxuICAgICAgb2JqID0gb2JqW3NlZ21lbnRzW2ldXTtcbiAgICB9XG4gICAgcmV0dXJuIG9ialxuICB9XG59XG5cbi8qICAqL1xuXG4vLyBjYW4gd2UgdXNlIF9fcHJvdG9fXz9cbnZhciBoYXNQcm90byA9ICdfX3Byb3RvX18nIGluIHt9O1xuXG4vLyBCcm93c2VyIGVudmlyb25tZW50IHNuaWZmaW5nXG52YXIgaW5Ccm93c2VyID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCc7XG52YXIgaW5XZWV4ID0gdHlwZW9mIFdYRW52aXJvbm1lbnQgIT09ICd1bmRlZmluZWQnICYmICEhV1hFbnZpcm9ubWVudC5wbGF0Zm9ybTtcbnZhciB3ZWV4UGxhdGZvcm0gPSBpbldlZXggJiYgV1hFbnZpcm9ubWVudC5wbGF0Zm9ybS50b0xvd2VyQ2FzZSgpO1xudmFyIFVBID0gaW5Ccm93c2VyICYmIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7XG52YXIgaXNJRSA9IFVBICYmIC9tc2llfHRyaWRlbnQvLnRlc3QoVUEpO1xudmFyIGlzSUU5ID0gVUEgJiYgVUEuaW5kZXhPZignbXNpZSA5LjAnKSA+IDA7XG52YXIgaXNFZGdlID0gVUEgJiYgVUEuaW5kZXhPZignZWRnZS8nKSA+IDA7XG52YXIgaXNBbmRyb2lkID0gKFVBICYmIFVBLmluZGV4T2YoJ2FuZHJvaWQnKSA+IDApIHx8ICh3ZWV4UGxhdGZvcm0gPT09ICdhbmRyb2lkJyk7XG52YXIgaXNJT1MgPSAoVUEgJiYgL2lwaG9uZXxpcGFkfGlwb2R8aW9zLy50ZXN0KFVBKSkgfHwgKHdlZXhQbGF0Zm9ybSA9PT0gJ2lvcycpO1xudmFyIGlzQ2hyb21lID0gVUEgJiYgL2Nocm9tZVxcL1xcZCsvLnRlc3QoVUEpICYmICFpc0VkZ2U7XG52YXIgaXNQaGFudG9tSlMgPSBVQSAmJiAvcGhhbnRvbWpzLy50ZXN0KFVBKTtcbnZhciBpc0ZGID0gVUEgJiYgVUEubWF0Y2goL2ZpcmVmb3hcXC8oXFxkKykvKTtcblxuLy8gRmlyZWZveCBoYXMgYSBcIndhdGNoXCIgZnVuY3Rpb24gb24gT2JqZWN0LnByb3RvdHlwZS4uLlxudmFyIG5hdGl2ZVdhdGNoID0gKHt9KS53YXRjaDtcblxudmFyIHN1cHBvcnRzUGFzc2l2ZSA9IGZhbHNlO1xuaWYgKGluQnJvd3Nlcikge1xuICB0cnkge1xuICAgIHZhciBvcHRzID0ge307XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9wdHMsICdwYXNzaXZlJywgKHtcbiAgICAgIGdldDogZnVuY3Rpb24gZ2V0ICgpIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgc3VwcG9ydHNQYXNzaXZlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KSk7IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9mbG93L2lzc3Vlcy8yODVcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndGVzdC1wYXNzaXZlJywgbnVsbCwgb3B0cyk7XG4gIH0gY2F0Y2ggKGUpIHt9XG59XG5cbi8vIHRoaXMgbmVlZHMgdG8gYmUgbGF6eS1ldmFsZWQgYmVjYXVzZSB2dWUgbWF5IGJlIHJlcXVpcmVkIGJlZm9yZVxuLy8gdnVlLXNlcnZlci1yZW5kZXJlciBjYW4gc2V0IFZVRV9FTlZcbnZhciBfaXNTZXJ2ZXI7XG52YXIgaXNTZXJ2ZXJSZW5kZXJpbmcgPSBmdW5jdGlvbiAoKSB7XG4gIGlmIChfaXNTZXJ2ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghaW5Ccm93c2VyICYmICFpbldlZXggJiYgdHlwZW9mIGdsb2JhbCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIC8vIGRldGVjdCBwcmVzZW5jZSBvZiB2dWUtc2VydmVyLXJlbmRlcmVyIGFuZCBhdm9pZFxuICAgICAgLy8gV2VicGFjayBzaGltbWluZyB0aGUgcHJvY2Vzc1xuICAgICAgX2lzU2VydmVyID0gZ2xvYmFsWydwcm9jZXNzJ10gJiYgZ2xvYmFsWydwcm9jZXNzJ10uZW52LlZVRV9FTlYgPT09ICdzZXJ2ZXInO1xuICAgIH0gZWxzZSB7XG4gICAgICBfaXNTZXJ2ZXIgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIF9pc1NlcnZlclxufTtcblxuLy8gZGV0ZWN0IGRldnRvb2xzXG52YXIgZGV2dG9vbHMgPSBpbkJyb3dzZXIgJiYgd2luZG93Ll9fVlVFX0RFVlRPT0xTX0dMT0JBTF9IT09LX187XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5mdW5jdGlvbiBpc05hdGl2ZSAoQ3Rvcikge1xuICByZXR1cm4gdHlwZW9mIEN0b3IgPT09ICdmdW5jdGlvbicgJiYgL25hdGl2ZSBjb2RlLy50ZXN0KEN0b3IudG9TdHJpbmcoKSlcbn1cblxudmFyIGhhc1N5bWJvbCA9XG4gIHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIGlzTmF0aXZlKFN5bWJvbCkgJiZcbiAgdHlwZW9mIFJlZmxlY3QgIT09ICd1bmRlZmluZWQnICYmIGlzTmF0aXZlKFJlZmxlY3Qub3duS2V5cyk7XG5cbnZhciBfU2V0O1xuLyogaXN0YW5idWwgaWdub3JlIGlmICovIC8vICRmbG93LWRpc2FibGUtbGluZVxuaWYgKHR5cGVvZiBTZXQgIT09ICd1bmRlZmluZWQnICYmIGlzTmF0aXZlKFNldCkpIHtcbiAgLy8gdXNlIG5hdGl2ZSBTZXQgd2hlbiBhdmFpbGFibGUuXG4gIF9TZXQgPSBTZXQ7XG59IGVsc2Uge1xuICAvLyBhIG5vbi1zdGFuZGFyZCBTZXQgcG9seWZpbGwgdGhhdCBvbmx5IHdvcmtzIHdpdGggcHJpbWl0aXZlIGtleXMuXG4gIF9TZXQgPSAvKkBfX1BVUkVfXyovKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTZXQgKCkge1xuICAgICAgdGhpcy5zZXQgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIH1cbiAgICBTZXQucHJvdG90eXBlLmhhcyA9IGZ1bmN0aW9uIGhhcyAoa2V5KSB7XG4gICAgICByZXR1cm4gdGhpcy5zZXRba2V5XSA9PT0gdHJ1ZVxuICAgIH07XG4gICAgU2V0LnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiBhZGQgKGtleSkge1xuICAgICAgdGhpcy5zZXRba2V5XSA9IHRydWU7XG4gICAgfTtcbiAgICBTZXQucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24gY2xlYXIgKCkge1xuICAgICAgdGhpcy5zZXQgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIH07XG5cbiAgICByZXR1cm4gU2V0O1xuICB9KCkpO1xufVxuXG4vKiAgKi9cblxudmFyIHdhcm4gPSBub29wO1xudmFyIHRpcCA9IG5vb3A7XG52YXIgZ2VuZXJhdGVDb21wb25lbnRUcmFjZSA9IChub29wKTsgLy8gd29yayBhcm91bmQgZmxvdyBjaGVja1xudmFyIGZvcm1hdENvbXBvbmVudE5hbWUgPSAobm9vcCk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBoYXNDb25zb2xlID0gdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnO1xuICB2YXIgY2xhc3NpZnlSRSA9IC8oPzpefFstX10pKFxcdykvZztcbiAgdmFyIGNsYXNzaWZ5ID0gZnVuY3Rpb24gKHN0cikgeyByZXR1cm4gc3RyXG4gICAgLnJlcGxhY2UoY2xhc3NpZnlSRSwgZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGMudG9VcHBlckNhc2UoKTsgfSlcbiAgICAucmVwbGFjZSgvWy1fXS9nLCAnJyk7IH07XG5cbiAgd2FybiA9IGZ1bmN0aW9uIChtc2csIHZtKSB7XG4gICAgdmFyIHRyYWNlID0gdm0gPyBnZW5lcmF0ZUNvbXBvbmVudFRyYWNlKHZtKSA6ICcnO1xuXG4gICAgaWYgKGNvbmZpZy53YXJuSGFuZGxlcikge1xuICAgICAgY29uZmlnLndhcm5IYW5kbGVyLmNhbGwobnVsbCwgbXNnLCB2bSwgdHJhY2UpO1xuICAgIH0gZWxzZSBpZiAoaGFzQ29uc29sZSAmJiAoIWNvbmZpZy5zaWxlbnQpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKChcIltWdWUgd2Fybl06IFwiICsgbXNnICsgdHJhY2UpKTtcbiAgICB9XG4gIH07XG5cbiAgdGlwID0gZnVuY3Rpb24gKG1zZywgdm0pIHtcbiAgICBpZiAoaGFzQ29uc29sZSAmJiAoIWNvbmZpZy5zaWxlbnQpKSB7XG4gICAgICBjb25zb2xlLndhcm4oXCJbVnVlIHRpcF06IFwiICsgbXNnICsgKFxuICAgICAgICB2bSA/IGdlbmVyYXRlQ29tcG9uZW50VHJhY2Uodm0pIDogJydcbiAgICAgICkpO1xuICAgIH1cbiAgfTtcblxuICBmb3JtYXRDb21wb25lbnROYW1lID0gZnVuY3Rpb24gKHZtLCBpbmNsdWRlRmlsZSkge1xuICAgIGlmICh2bS4kcm9vdCA9PT0gdm0pIHtcbiAgICAgIHJldHVybiAnPFJvb3Q+J1xuICAgIH1cbiAgICB2YXIgb3B0aW9ucyA9IHR5cGVvZiB2bSA9PT0gJ2Z1bmN0aW9uJyAmJiB2bS5jaWQgIT0gbnVsbFxuICAgICAgPyB2bS5vcHRpb25zXG4gICAgICA6IHZtLl9pc1Z1ZVxuICAgICAgICA/IHZtLiRvcHRpb25zIHx8IHZtLmNvbnN0cnVjdG9yLm9wdGlvbnNcbiAgICAgICAgOiB2bTtcbiAgICB2YXIgbmFtZSA9IG9wdGlvbnMubmFtZSB8fCBvcHRpb25zLl9jb21wb25lbnRUYWc7XG4gICAgdmFyIGZpbGUgPSBvcHRpb25zLl9fZmlsZTtcbiAgICBpZiAoIW5hbWUgJiYgZmlsZSkge1xuICAgICAgdmFyIG1hdGNoID0gZmlsZS5tYXRjaCgvKFteL1xcXFxdKylcXC52dWUkLyk7XG4gICAgICBuYW1lID0gbWF0Y2ggJiYgbWF0Y2hbMV07XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIChuYW1lID8gKFwiPFwiICsgKGNsYXNzaWZ5KG5hbWUpKSArIFwiPlwiKSA6IFwiPEFub255bW91cz5cIikgK1xuICAgICAgKGZpbGUgJiYgaW5jbHVkZUZpbGUgIT09IGZhbHNlID8gKFwiIGF0IFwiICsgZmlsZSkgOiAnJylcbiAgICApXG4gIH07XG5cbiAgdmFyIHJlcGVhdCA9IGZ1bmN0aW9uIChzdHIsIG4pIHtcbiAgICB2YXIgcmVzID0gJyc7XG4gICAgd2hpbGUgKG4pIHtcbiAgICAgIGlmIChuICUgMiA9PT0gMSkgeyByZXMgKz0gc3RyOyB9XG4gICAgICBpZiAobiA+IDEpIHsgc3RyICs9IHN0cjsgfVxuICAgICAgbiA+Pj0gMTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc1xuICB9O1xuXG4gIGdlbmVyYXRlQ29tcG9uZW50VHJhY2UgPSBmdW5jdGlvbiAodm0pIHtcbiAgICBpZiAodm0uX2lzVnVlICYmIHZtLiRwYXJlbnQpIHtcbiAgICAgIHZhciB0cmVlID0gW107XG4gICAgICB2YXIgY3VycmVudFJlY3Vyc2l2ZVNlcXVlbmNlID0gMDtcbiAgICAgIHdoaWxlICh2bSkge1xuICAgICAgICBpZiAodHJlZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdmFyIGxhc3QgPSB0cmVlW3RyZWUubGVuZ3RoIC0gMV07XG4gICAgICAgICAgaWYgKGxhc3QuY29uc3RydWN0b3IgPT09IHZtLmNvbnN0cnVjdG9yKSB7XG4gICAgICAgICAgICBjdXJyZW50UmVjdXJzaXZlU2VxdWVuY2UrKztcbiAgICAgICAgICAgIHZtID0gdm0uJHBhcmVudDtcbiAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50UmVjdXJzaXZlU2VxdWVuY2UgPiAwKSB7XG4gICAgICAgICAgICB0cmVlW3RyZWUubGVuZ3RoIC0gMV0gPSBbbGFzdCwgY3VycmVudFJlY3Vyc2l2ZVNlcXVlbmNlXTtcbiAgICAgICAgICAgIGN1cnJlbnRSZWN1cnNpdmVTZXF1ZW5jZSA9IDA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRyZWUucHVzaCh2bSk7XG4gICAgICAgIHZtID0gdm0uJHBhcmVudDtcbiAgICAgIH1cbiAgICAgIHJldHVybiAnXFxuXFxuZm91bmQgaW5cXG5cXG4nICsgdHJlZVxuICAgICAgICAubWFwKGZ1bmN0aW9uICh2bSwgaSkgeyByZXR1cm4gKFwiXCIgKyAoaSA9PT0gMCA/ICctLS0+ICcgOiByZXBlYXQoJyAnLCA1ICsgaSAqIDIpKSArIChBcnJheS5pc0FycmF5KHZtKVxuICAgICAgICAgICAgPyAoKGZvcm1hdENvbXBvbmVudE5hbWUodm1bMF0pKSArIFwiLi4uIChcIiArICh2bVsxXSkgKyBcIiByZWN1cnNpdmUgY2FsbHMpXCIpXG4gICAgICAgICAgICA6IGZvcm1hdENvbXBvbmVudE5hbWUodm0pKSk7IH0pXG4gICAgICAgIC5qb2luKCdcXG4nKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKFwiXFxuXFxuKGZvdW5kIGluIFwiICsgKGZvcm1hdENvbXBvbmVudE5hbWUodm0pKSArIFwiKVwiKVxuICAgIH1cbiAgfTtcbn1cblxuLyogICovXG5cbnZhciB1aWQgPSAwO1xuXG4vKipcbiAqIEEgZGVwIGlzIGFuIG9ic2VydmFibGUgdGhhdCBjYW4gaGF2ZSBtdWx0aXBsZVxuICogZGlyZWN0aXZlcyBzdWJzY3JpYmluZyB0byBpdC5cbiAqL1xudmFyIERlcCA9IGZ1bmN0aW9uIERlcCAoKSB7XG4gIHRoaXMuaWQgPSB1aWQrKztcbiAgdGhpcy5zdWJzID0gW107XG59O1xuXG5EZXAucHJvdG90eXBlLmFkZFN1YiA9IGZ1bmN0aW9uIGFkZFN1YiAoc3ViKSB7XG4gIHRoaXMuc3Vicy5wdXNoKHN1Yik7XG59O1xuXG5EZXAucHJvdG90eXBlLnJlbW92ZVN1YiA9IGZ1bmN0aW9uIHJlbW92ZVN1YiAoc3ViKSB7XG4gIHJlbW92ZSh0aGlzLnN1YnMsIHN1Yik7XG59O1xuXG5EZXAucHJvdG90eXBlLmRlcGVuZCA9IGZ1bmN0aW9uIGRlcGVuZCAoKSB7XG4gIGlmIChEZXAudGFyZ2V0KSB7XG4gICAgRGVwLnRhcmdldC5hZGREZXAodGhpcyk7XG4gIH1cbn07XG5cbkRlcC5wcm90b3R5cGUubm90aWZ5ID0gZnVuY3Rpb24gbm90aWZ5ICgpIHtcbiAgLy8gc3RhYmlsaXplIHRoZSBzdWJzY3JpYmVyIGxpc3QgZmlyc3RcbiAgdmFyIHN1YnMgPSB0aGlzLnN1YnMuc2xpY2UoKTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgIWNvbmZpZy5hc3luYykge1xuICAgIC8vIHN1YnMgYXJlbid0IHNvcnRlZCBpbiBzY2hlZHVsZXIgaWYgbm90IHJ1bm5pbmcgYXN5bmNcbiAgICAvLyB3ZSBuZWVkIHRvIHNvcnQgdGhlbSBub3cgdG8gbWFrZSBzdXJlIHRoZXkgZmlyZSBpbiBjb3JyZWN0XG4gICAgLy8gb3JkZXJcbiAgICBzdWJzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEuaWQgLSBiLmlkOyB9KTtcbiAgfVxuICBmb3IgKHZhciBpID0gMCwgbCA9IHN1YnMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgc3Vic1tpXS51cGRhdGUoKTtcbiAgfVxufTtcblxuLy8gVGhlIGN1cnJlbnQgdGFyZ2V0IHdhdGNoZXIgYmVpbmcgZXZhbHVhdGVkLlxuLy8gVGhpcyBpcyBnbG9iYWxseSB1bmlxdWUgYmVjYXVzZSBvbmx5IG9uZSB3YXRjaGVyXG4vLyBjYW4gYmUgZXZhbHVhdGVkIGF0IGEgdGltZS5cbkRlcC50YXJnZXQgPSBudWxsO1xudmFyIHRhcmdldFN0YWNrID0gW107XG5cbmZ1bmN0aW9uIHB1c2hUYXJnZXQgKHRhcmdldCkge1xuICB0YXJnZXRTdGFjay5wdXNoKHRhcmdldCk7XG4gIERlcC50YXJnZXQgPSB0YXJnZXQ7XG59XG5cbmZ1bmN0aW9uIHBvcFRhcmdldCAoKSB7XG4gIHRhcmdldFN0YWNrLnBvcCgpO1xuICBEZXAudGFyZ2V0ID0gdGFyZ2V0U3RhY2tbdGFyZ2V0U3RhY2subGVuZ3RoIC0gMV07XG59XG5cbi8qICAqL1xuXG52YXIgVk5vZGUgPSBmdW5jdGlvbiBWTm9kZSAoXG4gIHRhZyxcbiAgZGF0YSxcbiAgY2hpbGRyZW4sXG4gIHRleHQsXG4gIGVsbSxcbiAgY29udGV4dCxcbiAgY29tcG9uZW50T3B0aW9ucyxcbiAgYXN5bmNGYWN0b3J5XG4pIHtcbiAgdGhpcy50YWcgPSB0YWc7XG4gIHRoaXMuZGF0YSA9IGRhdGE7XG4gIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgdGhpcy50ZXh0ID0gdGV4dDtcbiAgdGhpcy5lbG0gPSBlbG07XG4gIHRoaXMubnMgPSB1bmRlZmluZWQ7XG4gIHRoaXMuY29udGV4dCA9IGNvbnRleHQ7XG4gIHRoaXMuZm5Db250ZXh0ID0gdW5kZWZpbmVkO1xuICB0aGlzLmZuT3B0aW9ucyA9IHVuZGVmaW5lZDtcbiAgdGhpcy5mblNjb3BlSWQgPSB1bmRlZmluZWQ7XG4gIHRoaXMua2V5ID0gZGF0YSAmJiBkYXRhLmtleTtcbiAgdGhpcy5jb21wb25lbnRPcHRpb25zID0gY29tcG9uZW50T3B0aW9ucztcbiAgdGhpcy5jb21wb25lbnRJbnN0YW5jZSA9IHVuZGVmaW5lZDtcbiAgdGhpcy5wYXJlbnQgPSB1bmRlZmluZWQ7XG4gIHRoaXMucmF3ID0gZmFsc2U7XG4gIHRoaXMuaXNTdGF0aWMgPSBmYWxzZTtcbiAgdGhpcy5pc1Jvb3RJbnNlcnQgPSB0cnVlO1xuICB0aGlzLmlzQ29tbWVudCA9IGZhbHNlO1xuICB0aGlzLmlzQ2xvbmVkID0gZmFsc2U7XG4gIHRoaXMuaXNPbmNlID0gZmFsc2U7XG4gIHRoaXMuYXN5bmNGYWN0b3J5ID0gYXN5bmNGYWN0b3J5O1xuICB0aGlzLmFzeW5jTWV0YSA9IHVuZGVmaW5lZDtcbiAgdGhpcy5pc0FzeW5jUGxhY2Vob2xkZXIgPSBmYWxzZTtcbn07XG5cbnZhciBwcm90b3R5cGVBY2Nlc3NvcnMgPSB7IGNoaWxkOiB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSB9IH07XG5cbi8vIERFUFJFQ0FURUQ6IGFsaWFzIGZvciBjb21wb25lbnRJbnN0YW5jZSBmb3IgYmFja3dhcmRzIGNvbXBhdC5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5wcm90b3R5cGVBY2Nlc3NvcnMuY2hpbGQuZ2V0ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5jb21wb25lbnRJbnN0YW5jZVxufTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoIFZOb2RlLnByb3RvdHlwZSwgcHJvdG90eXBlQWNjZXNzb3JzICk7XG5cbnZhciBjcmVhdGVFbXB0eVZOb2RlID0gZnVuY3Rpb24gKHRleHQpIHtcbiAgaWYgKCB0ZXh0ID09PSB2b2lkIDAgKSB0ZXh0ID0gJyc7XG5cbiAgdmFyIG5vZGUgPSBuZXcgVk5vZGUoKTtcbiAgbm9kZS50ZXh0ID0gdGV4dDtcbiAgbm9kZS5pc0NvbW1lbnQgPSB0cnVlO1xuICByZXR1cm4gbm9kZVxufTtcblxuZnVuY3Rpb24gY3JlYXRlVGV4dFZOb2RlICh2YWwpIHtcbiAgcmV0dXJuIG5ldyBWTm9kZSh1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBTdHJpbmcodmFsKSlcbn1cblxuLy8gb3B0aW1pemVkIHNoYWxsb3cgY2xvbmVcbi8vIHVzZWQgZm9yIHN0YXRpYyBub2RlcyBhbmQgc2xvdCBub2RlcyBiZWNhdXNlIHRoZXkgbWF5IGJlIHJldXNlZCBhY3Jvc3Ncbi8vIG11bHRpcGxlIHJlbmRlcnMsIGNsb25pbmcgdGhlbSBhdm9pZHMgZXJyb3JzIHdoZW4gRE9NIG1hbmlwdWxhdGlvbnMgcmVseVxuLy8gb24gdGhlaXIgZWxtIHJlZmVyZW5jZS5cbmZ1bmN0aW9uIGNsb25lVk5vZGUgKHZub2RlKSB7XG4gIHZhciBjbG9uZWQgPSBuZXcgVk5vZGUoXG4gICAgdm5vZGUudGFnLFxuICAgIHZub2RlLmRhdGEsXG4gICAgLy8gIzc5NzVcbiAgICAvLyBjbG9uZSBjaGlsZHJlbiBhcnJheSB0byBhdm9pZCBtdXRhdGluZyBvcmlnaW5hbCBpbiBjYXNlIG9mIGNsb25pbmdcbiAgICAvLyBhIGNoaWxkLlxuICAgIHZub2RlLmNoaWxkcmVuICYmIHZub2RlLmNoaWxkcmVuLnNsaWNlKCksXG4gICAgdm5vZGUudGV4dCxcbiAgICB2bm9kZS5lbG0sXG4gICAgdm5vZGUuY29udGV4dCxcbiAgICB2bm9kZS5jb21wb25lbnRPcHRpb25zLFxuICAgIHZub2RlLmFzeW5jRmFjdG9yeVxuICApO1xuICBjbG9uZWQubnMgPSB2bm9kZS5ucztcbiAgY2xvbmVkLmlzU3RhdGljID0gdm5vZGUuaXNTdGF0aWM7XG4gIGNsb25lZC5rZXkgPSB2bm9kZS5rZXk7XG4gIGNsb25lZC5pc0NvbW1lbnQgPSB2bm9kZS5pc0NvbW1lbnQ7XG4gIGNsb25lZC5mbkNvbnRleHQgPSB2bm9kZS5mbkNvbnRleHQ7XG4gIGNsb25lZC5mbk9wdGlvbnMgPSB2bm9kZS5mbk9wdGlvbnM7XG4gIGNsb25lZC5mblNjb3BlSWQgPSB2bm9kZS5mblNjb3BlSWQ7XG4gIGNsb25lZC5hc3luY01ldGEgPSB2bm9kZS5hc3luY01ldGE7XG4gIGNsb25lZC5pc0Nsb25lZCA9IHRydWU7XG4gIHJldHVybiBjbG9uZWRcbn1cblxuLypcbiAqIG5vdCB0eXBlIGNoZWNraW5nIHRoaXMgZmlsZSBiZWNhdXNlIGZsb3cgZG9lc24ndCBwbGF5IHdlbGwgd2l0aFxuICogZHluYW1pY2FsbHkgYWNjZXNzaW5nIG1ldGhvZHMgb24gQXJyYXkgcHJvdG90eXBlXG4gKi9cblxudmFyIGFycmF5UHJvdG8gPSBBcnJheS5wcm90b3R5cGU7XG52YXIgYXJyYXlNZXRob2RzID0gT2JqZWN0LmNyZWF0ZShhcnJheVByb3RvKTtcblxudmFyIG1ldGhvZHNUb1BhdGNoID0gW1xuICAncHVzaCcsXG4gICdwb3AnLFxuICAnc2hpZnQnLFxuICAndW5zaGlmdCcsXG4gICdzcGxpY2UnLFxuICAnc29ydCcsXG4gICdyZXZlcnNlJ1xuXTtcblxuLyoqXG4gKiBJbnRlcmNlcHQgbXV0YXRpbmcgbWV0aG9kcyBhbmQgZW1pdCBldmVudHNcbiAqL1xubWV0aG9kc1RvUGF0Y2guZm9yRWFjaChmdW5jdGlvbiAobWV0aG9kKSB7XG4gIC8vIGNhY2hlIG9yaWdpbmFsIG1ldGhvZFxuICB2YXIgb3JpZ2luYWwgPSBhcnJheVByb3RvW21ldGhvZF07XG4gIGRlZihhcnJheU1ldGhvZHMsIG1ldGhvZCwgZnVuY3Rpb24gbXV0YXRvciAoKSB7XG4gICAgdmFyIGFyZ3MgPSBbXSwgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICB3aGlsZSAoIGxlbi0tICkgYXJnc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiBdO1xuXG4gICAgdmFyIHJlc3VsdCA9IG9yaWdpbmFsLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgIHZhciBvYiA9IHRoaXMuX19vYl9fO1xuICAgIHZhciBpbnNlcnRlZDtcbiAgICBzd2l0Y2ggKG1ldGhvZCkge1xuICAgICAgY2FzZSAncHVzaCc6XG4gICAgICBjYXNlICd1bnNoaWZ0JzpcbiAgICAgICAgaW5zZXJ0ZWQgPSBhcmdzO1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnc3BsaWNlJzpcbiAgICAgICAgaW5zZXJ0ZWQgPSBhcmdzLnNsaWNlKDIpO1xuICAgICAgICBicmVha1xuICAgIH1cbiAgICBpZiAoaW5zZXJ0ZWQpIHsgb2Iub2JzZXJ2ZUFycmF5KGluc2VydGVkKTsgfVxuICAgIC8vIG5vdGlmeSBjaGFuZ2VcbiAgICBvYi5kZXAubm90aWZ5KCk7XG4gICAgcmV0dXJuIHJlc3VsdFxuICB9KTtcbn0pO1xuXG4vKiAgKi9cblxudmFyIGFycmF5S2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGFycmF5TWV0aG9kcyk7XG5cbi8qKlxuICogSW4gc29tZSBjYXNlcyB3ZSBtYXkgd2FudCB0byBkaXNhYmxlIG9ic2VydmF0aW9uIGluc2lkZSBhIGNvbXBvbmVudCdzXG4gKiB1cGRhdGUgY29tcHV0YXRpb24uXG4gKi9cbnZhciBzaG91bGRPYnNlcnZlID0gdHJ1ZTtcblxuZnVuY3Rpb24gdG9nZ2xlT2JzZXJ2aW5nICh2YWx1ZSkge1xuICBzaG91bGRPYnNlcnZlID0gdmFsdWU7XG59XG5cbi8qKlxuICogT2JzZXJ2ZXIgY2xhc3MgdGhhdCBpcyBhdHRhY2hlZCB0byBlYWNoIG9ic2VydmVkXG4gKiBvYmplY3QuIE9uY2UgYXR0YWNoZWQsIHRoZSBvYnNlcnZlciBjb252ZXJ0cyB0aGUgdGFyZ2V0XG4gKiBvYmplY3QncyBwcm9wZXJ0eSBrZXlzIGludG8gZ2V0dGVyL3NldHRlcnMgdGhhdFxuICogY29sbGVjdCBkZXBlbmRlbmNpZXMgYW5kIGRpc3BhdGNoIHVwZGF0ZXMuXG4gKi9cbnZhciBPYnNlcnZlciA9IGZ1bmN0aW9uIE9ic2VydmVyICh2YWx1ZSkge1xuICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIHRoaXMuZGVwID0gbmV3IERlcCgpO1xuICB0aGlzLnZtQ291bnQgPSAwO1xuICBkZWYodmFsdWUsICdfX29iX18nLCB0aGlzKTtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgaWYgKGhhc1Byb3RvKSB7XG4gICAgICBwcm90b0F1Z21lbnQodmFsdWUsIGFycmF5TWV0aG9kcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvcHlBdWdtZW50KHZhbHVlLCBhcnJheU1ldGhvZHMsIGFycmF5S2V5cyk7XG4gICAgfVxuICAgIHRoaXMub2JzZXJ2ZUFycmF5KHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLndhbGsodmFsdWUpO1xuICB9XG59O1xuXG4vKipcbiAqIFdhbGsgdGhyb3VnaCBhbGwgcHJvcGVydGllcyBhbmQgY29udmVydCB0aGVtIGludG9cbiAqIGdldHRlci9zZXR0ZXJzLiBUaGlzIG1ldGhvZCBzaG91bGQgb25seSBiZSBjYWxsZWQgd2hlblxuICogdmFsdWUgdHlwZSBpcyBPYmplY3QuXG4gKi9cbk9ic2VydmVyLnByb3RvdHlwZS53YWxrID0gZnVuY3Rpb24gd2FsayAob2JqKSB7XG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXMob2JqKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgZGVmaW5lUmVhY3RpdmUkJDEob2JqLCBrZXlzW2ldKTtcbiAgfVxufTtcblxuLyoqXG4gKiBPYnNlcnZlIGEgbGlzdCBvZiBBcnJheSBpdGVtcy5cbiAqL1xuT2JzZXJ2ZXIucHJvdG90eXBlLm9ic2VydmVBcnJheSA9IGZ1bmN0aW9uIG9ic2VydmVBcnJheSAoaXRlbXMpIHtcbiAgZm9yICh2YXIgaSA9IDAsIGwgPSBpdGVtcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBvYnNlcnZlKGl0ZW1zW2ldKTtcbiAgfVxufTtcblxuLy8gaGVscGVyc1xuXG4vKipcbiAqIEF1Z21lbnQgYSB0YXJnZXQgT2JqZWN0IG9yIEFycmF5IGJ5IGludGVyY2VwdGluZ1xuICogdGhlIHByb3RvdHlwZSBjaGFpbiB1c2luZyBfX3Byb3RvX19cbiAqL1xuZnVuY3Rpb24gcHJvdG9BdWdtZW50ICh0YXJnZXQsIHNyYykge1xuICAvKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90byAqL1xuICB0YXJnZXQuX19wcm90b19fID0gc3JjO1xuICAvKiBlc2xpbnQtZW5hYmxlIG5vLXByb3RvICovXG59XG5cbi8qKlxuICogQXVnbWVudCBhIHRhcmdldCBPYmplY3Qgb3IgQXJyYXkgYnkgZGVmaW5pbmdcbiAqIGhpZGRlbiBwcm9wZXJ0aWVzLlxuICovXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZnVuY3Rpb24gY29weUF1Z21lbnQgKHRhcmdldCwgc3JjLCBrZXlzKSB7XG4gIGZvciAodmFyIGkgPSAwLCBsID0ga2V5cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICBkZWYodGFyZ2V0LCBrZXksIHNyY1trZXldKTtcbiAgfVxufVxuXG4vKipcbiAqIEF0dGVtcHQgdG8gY3JlYXRlIGFuIG9ic2VydmVyIGluc3RhbmNlIGZvciBhIHZhbHVlLFxuICogcmV0dXJucyB0aGUgbmV3IG9ic2VydmVyIGlmIHN1Y2Nlc3NmdWxseSBvYnNlcnZlZCxcbiAqIG9yIHRoZSBleGlzdGluZyBvYnNlcnZlciBpZiB0aGUgdmFsdWUgYWxyZWFkeSBoYXMgb25lLlxuICovXG5mdW5jdGlvbiBvYnNlcnZlICh2YWx1ZSwgYXNSb290RGF0YSkge1xuICBpZiAoIWlzT2JqZWN0KHZhbHVlKSB8fCB2YWx1ZSBpbnN0YW5jZW9mIFZOb2RlKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIG9iO1xuICBpZiAoaGFzT3duKHZhbHVlLCAnX19vYl9fJykgJiYgdmFsdWUuX19vYl9fIGluc3RhbmNlb2YgT2JzZXJ2ZXIpIHtcbiAgICBvYiA9IHZhbHVlLl9fb2JfXztcbiAgfSBlbHNlIGlmIChcbiAgICBzaG91bGRPYnNlcnZlICYmXG4gICAgIWlzU2VydmVyUmVuZGVyaW5nKCkgJiZcbiAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgaXNQbGFpbk9iamVjdCh2YWx1ZSkpICYmXG4gICAgT2JqZWN0LmlzRXh0ZW5zaWJsZSh2YWx1ZSkgJiZcbiAgICAhdmFsdWUuX2lzVnVlXG4gICkge1xuICAgIG9iID0gbmV3IE9ic2VydmVyKHZhbHVlKTtcbiAgfVxuICBpZiAoYXNSb290RGF0YSAmJiBvYikge1xuICAgIG9iLnZtQ291bnQrKztcbiAgfVxuICByZXR1cm4gb2Jcbn1cblxuLyoqXG4gKiBEZWZpbmUgYSByZWFjdGl2ZSBwcm9wZXJ0eSBvbiBhbiBPYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGRlZmluZVJlYWN0aXZlJCQxIChcbiAgb2JqLFxuICBrZXksXG4gIHZhbCxcbiAgY3VzdG9tU2V0dGVyLFxuICBzaGFsbG93XG4pIHtcbiAgdmFyIGRlcCA9IG5ldyBEZXAoKTtcblxuICB2YXIgcHJvcGVydHkgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iaiwga2V5KTtcbiAgaWYgKHByb3BlcnR5ICYmIHByb3BlcnR5LmNvbmZpZ3VyYWJsZSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIGNhdGVyIGZvciBwcmUtZGVmaW5lZCBnZXR0ZXIvc2V0dGVyc1xuICB2YXIgZ2V0dGVyID0gcHJvcGVydHkgJiYgcHJvcGVydHkuZ2V0O1xuICB2YXIgc2V0dGVyID0gcHJvcGVydHkgJiYgcHJvcGVydHkuc2V0O1xuICBpZiAoKCFnZXR0ZXIgfHwgc2V0dGVyKSAmJiBhcmd1bWVudHMubGVuZ3RoID09PSAyKSB7XG4gICAgdmFsID0gb2JqW2tleV07XG4gIH1cblxuICB2YXIgY2hpbGRPYiA9ICFzaGFsbG93ICYmIG9ic2VydmUodmFsKTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiByZWFjdGl2ZUdldHRlciAoKSB7XG4gICAgICB2YXIgdmFsdWUgPSBnZXR0ZXIgPyBnZXR0ZXIuY2FsbChvYmopIDogdmFsO1xuICAgICAgaWYgKERlcC50YXJnZXQpIHtcbiAgICAgICAgZGVwLmRlcGVuZCgpO1xuICAgICAgICBpZiAoY2hpbGRPYikge1xuICAgICAgICAgIGNoaWxkT2IuZGVwLmRlcGVuZCgpO1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgZGVwZW5kQXJyYXkodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfSxcbiAgICBzZXQ6IGZ1bmN0aW9uIHJlYWN0aXZlU2V0dGVyIChuZXdWYWwpIHtcbiAgICAgIHZhciB2YWx1ZSA9IGdldHRlciA/IGdldHRlci5jYWxsKG9iaikgOiB2YWw7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby1zZWxmLWNvbXBhcmUgKi9cbiAgICAgIGlmIChuZXdWYWwgPT09IHZhbHVlIHx8IChuZXdWYWwgIT09IG5ld1ZhbCAmJiB2YWx1ZSAhPT0gdmFsdWUpKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgLyogZXNsaW50LWVuYWJsZSBuby1zZWxmLWNvbXBhcmUgKi9cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGN1c3RvbVNldHRlcikge1xuICAgICAgICBjdXN0b21TZXR0ZXIoKTtcbiAgICAgIH1cbiAgICAgIC8vICM3OTgxOiBmb3IgYWNjZXNzb3IgcHJvcGVydGllcyB3aXRob3V0IHNldHRlclxuICAgICAgaWYgKGdldHRlciAmJiAhc2V0dGVyKSB7IHJldHVybiB9XG4gICAgICBpZiAoc2V0dGVyKSB7XG4gICAgICAgIHNldHRlci5jYWxsKG9iaiwgbmV3VmFsKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbCA9IG5ld1ZhbDtcbiAgICAgIH1cbiAgICAgIGNoaWxkT2IgPSAhc2hhbGxvdyAmJiBvYnNlcnZlKG5ld1ZhbCk7XG4gICAgICBkZXAubm90aWZ5KCk7XG4gICAgfVxuICB9KTtcbn1cblxuLyoqXG4gKiBTZXQgYSBwcm9wZXJ0eSBvbiBhbiBvYmplY3QuIEFkZHMgdGhlIG5ldyBwcm9wZXJ0eSBhbmRcbiAqIHRyaWdnZXJzIGNoYW5nZSBub3RpZmljYXRpb24gaWYgdGhlIHByb3BlcnR5IGRvZXNuJ3RcbiAqIGFscmVhZHkgZXhpc3QuXG4gKi9cbmZ1bmN0aW9uIHNldCAodGFyZ2V0LCBrZXksIHZhbCkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgIChpc1VuZGVmKHRhcmdldCkgfHwgaXNQcmltaXRpdmUodGFyZ2V0KSlcbiAgKSB7XG4gICAgd2FybigoXCJDYW5ub3Qgc2V0IHJlYWN0aXZlIHByb3BlcnR5IG9uIHVuZGVmaW5lZCwgbnVsbCwgb3IgcHJpbWl0aXZlIHZhbHVlOiBcIiArICgodGFyZ2V0KSkpKTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh0YXJnZXQpICYmIGlzVmFsaWRBcnJheUluZGV4KGtleSkpIHtcbiAgICB0YXJnZXQubGVuZ3RoID0gTWF0aC5tYXgodGFyZ2V0Lmxlbmd0aCwga2V5KTtcbiAgICB0YXJnZXQuc3BsaWNlKGtleSwgMSwgdmFsKTtcbiAgICByZXR1cm4gdmFsXG4gIH1cbiAgaWYgKGtleSBpbiB0YXJnZXQgJiYgIShrZXkgaW4gT2JqZWN0LnByb3RvdHlwZSkpIHtcbiAgICB0YXJnZXRba2V5XSA9IHZhbDtcbiAgICByZXR1cm4gdmFsXG4gIH1cbiAgdmFyIG9iID0gKHRhcmdldCkuX19vYl9fO1xuICBpZiAodGFyZ2V0Ll9pc1Z1ZSB8fCAob2IgJiYgb2Iudm1Db3VudCkpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAnQXZvaWQgYWRkaW5nIHJlYWN0aXZlIHByb3BlcnRpZXMgdG8gYSBWdWUgaW5zdGFuY2Ugb3IgaXRzIHJvb3QgJGRhdGEgJyArXG4gICAgICAnYXQgcnVudGltZSAtIGRlY2xhcmUgaXQgdXBmcm9udCBpbiB0aGUgZGF0YSBvcHRpb24uJ1xuICAgICk7XG4gICAgcmV0dXJuIHZhbFxuICB9XG4gIGlmICghb2IpIHtcbiAgICB0YXJnZXRba2V5XSA9IHZhbDtcbiAgICByZXR1cm4gdmFsXG4gIH1cbiAgZGVmaW5lUmVhY3RpdmUkJDEob2IudmFsdWUsIGtleSwgdmFsKTtcbiAgb2IuZGVwLm5vdGlmeSgpO1xuICByZXR1cm4gdmFsXG59XG5cbi8qKlxuICogRGVsZXRlIGEgcHJvcGVydHkgYW5kIHRyaWdnZXIgY2hhbmdlIGlmIG5lY2Vzc2FyeS5cbiAqL1xuZnVuY3Rpb24gZGVsICh0YXJnZXQsIGtleSkge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgIChpc1VuZGVmKHRhcmdldCkgfHwgaXNQcmltaXRpdmUodGFyZ2V0KSlcbiAgKSB7XG4gICAgd2FybigoXCJDYW5ub3QgZGVsZXRlIHJlYWN0aXZlIHByb3BlcnR5IG9uIHVuZGVmaW5lZCwgbnVsbCwgb3IgcHJpbWl0aXZlIHZhbHVlOiBcIiArICgodGFyZ2V0KSkpKTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh0YXJnZXQpICYmIGlzVmFsaWRBcnJheUluZGV4KGtleSkpIHtcbiAgICB0YXJnZXQuc3BsaWNlKGtleSwgMSk7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIG9iID0gKHRhcmdldCkuX19vYl9fO1xuICBpZiAodGFyZ2V0Ll9pc1Z1ZSB8fCAob2IgJiYgb2Iudm1Db3VudCkpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAnQXZvaWQgZGVsZXRpbmcgcHJvcGVydGllcyBvbiBhIFZ1ZSBpbnN0YW5jZSBvciBpdHMgcm9vdCAkZGF0YSAnICtcbiAgICAgICctIGp1c3Qgc2V0IGl0IHRvIG51bGwuJ1xuICAgICk7XG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKCFoYXNPd24odGFyZ2V0LCBrZXkpKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgZGVsZXRlIHRhcmdldFtrZXldO1xuICBpZiAoIW9iKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgb2IuZGVwLm5vdGlmeSgpO1xufVxuXG4vKipcbiAqIENvbGxlY3QgZGVwZW5kZW5jaWVzIG9uIGFycmF5IGVsZW1lbnRzIHdoZW4gdGhlIGFycmF5IGlzIHRvdWNoZWQsIHNpbmNlXG4gKiB3ZSBjYW5ub3QgaW50ZXJjZXB0IGFycmF5IGVsZW1lbnQgYWNjZXNzIGxpa2UgcHJvcGVydHkgZ2V0dGVycy5cbiAqL1xuZnVuY3Rpb24gZGVwZW5kQXJyYXkgKHZhbHVlKSB7XG4gIGZvciAodmFyIGUgPSAodm9pZCAwKSwgaSA9IDAsIGwgPSB2YWx1ZS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBlID0gdmFsdWVbaV07XG4gICAgZSAmJiBlLl9fb2JfXyAmJiBlLl9fb2JfXy5kZXAuZGVwZW5kKCk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZSkpIHtcbiAgICAgIGRlcGVuZEFycmF5KGUpO1xuICAgIH1cbiAgfVxufVxuXG4vKiAgKi9cblxuLyoqXG4gKiBPcHRpb24gb3ZlcndyaXRpbmcgc3RyYXRlZ2llcyBhcmUgZnVuY3Rpb25zIHRoYXQgaGFuZGxlXG4gKiBob3cgdG8gbWVyZ2UgYSBwYXJlbnQgb3B0aW9uIHZhbHVlIGFuZCBhIGNoaWxkIG9wdGlvblxuICogdmFsdWUgaW50byB0aGUgZmluYWwgdmFsdWUuXG4gKi9cbnZhciBzdHJhdHMgPSBjb25maWcub3B0aW9uTWVyZ2VTdHJhdGVnaWVzO1xuXG4vKipcbiAqIE9wdGlvbnMgd2l0aCByZXN0cmljdGlvbnNcbiAqL1xuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgc3RyYXRzLmVsID0gc3RyYXRzLnByb3BzRGF0YSA9IGZ1bmN0aW9uIChwYXJlbnQsIGNoaWxkLCB2bSwga2V5KSB7XG4gICAgaWYgKCF2bSkge1xuICAgICAgd2FybihcbiAgICAgICAgXCJvcHRpb24gXFxcIlwiICsga2V5ICsgXCJcXFwiIGNhbiBvbmx5IGJlIHVzZWQgZHVyaW5nIGluc3RhbmNlIFwiICtcbiAgICAgICAgJ2NyZWF0aW9uIHdpdGggdGhlIGBuZXdgIGtleXdvcmQuJ1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGRlZmF1bHRTdHJhdChwYXJlbnQsIGNoaWxkKVxuICB9O1xufVxuXG4vKipcbiAqIEhlbHBlciB0aGF0IHJlY3Vyc2l2ZWx5IG1lcmdlcyB0d28gZGF0YSBvYmplY3RzIHRvZ2V0aGVyLlxuICovXG5mdW5jdGlvbiBtZXJnZURhdGEgKHRvLCBmcm9tKSB7XG4gIGlmICghZnJvbSkgeyByZXR1cm4gdG8gfVxuICB2YXIga2V5LCB0b1ZhbCwgZnJvbVZhbDtcblxuICB2YXIga2V5cyA9IGhhc1N5bWJvbFxuICAgID8gUmVmbGVjdC5vd25LZXlzKGZyb20pXG4gICAgOiBPYmplY3Qua2V5cyhmcm9tKTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBrZXlzW2ldO1xuICAgIC8vIGluIGNhc2UgdGhlIG9iamVjdCBpcyBhbHJlYWR5IG9ic2VydmVkLi4uXG4gICAgaWYgKGtleSA9PT0gJ19fb2JfXycpIHsgY29udGludWUgfVxuICAgIHRvVmFsID0gdG9ba2V5XTtcbiAgICBmcm9tVmFsID0gZnJvbVtrZXldO1xuICAgIGlmICghaGFzT3duKHRvLCBrZXkpKSB7XG4gICAgICBzZXQodG8sIGtleSwgZnJvbVZhbCk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRvVmFsICE9PSBmcm9tVmFsICYmXG4gICAgICBpc1BsYWluT2JqZWN0KHRvVmFsKSAmJlxuICAgICAgaXNQbGFpbk9iamVjdChmcm9tVmFsKVxuICAgICkge1xuICAgICAgbWVyZ2VEYXRhKHRvVmFsLCBmcm9tVmFsKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRvXG59XG5cbi8qKlxuICogRGF0YVxuICovXG5mdW5jdGlvbiBtZXJnZURhdGFPckZuIChcbiAgcGFyZW50VmFsLFxuICBjaGlsZFZhbCxcbiAgdm1cbikge1xuICBpZiAoIXZtKSB7XG4gICAgLy8gaW4gYSBWdWUuZXh0ZW5kIG1lcmdlLCBib3RoIHNob3VsZCBiZSBmdW5jdGlvbnNcbiAgICBpZiAoIWNoaWxkVmFsKSB7XG4gICAgICByZXR1cm4gcGFyZW50VmFsXG4gICAgfVxuICAgIGlmICghcGFyZW50VmFsKSB7XG4gICAgICByZXR1cm4gY2hpbGRWYWxcbiAgICB9XG4gICAgLy8gd2hlbiBwYXJlbnRWYWwgJiBjaGlsZFZhbCBhcmUgYm90aCBwcmVzZW50LFxuICAgIC8vIHdlIG5lZWQgdG8gcmV0dXJuIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZVxuICAgIC8vIG1lcmdlZCByZXN1bHQgb2YgYm90aCBmdW5jdGlvbnMuLi4gbm8gbmVlZCB0b1xuICAgIC8vIGNoZWNrIGlmIHBhcmVudFZhbCBpcyBhIGZ1bmN0aW9uIGhlcmUgYmVjYXVzZVxuICAgIC8vIGl0IGhhcyB0byBiZSBhIGZ1bmN0aW9uIHRvIHBhc3MgcHJldmlvdXMgbWVyZ2VzLlxuICAgIHJldHVybiBmdW5jdGlvbiBtZXJnZWREYXRhRm4gKCkge1xuICAgICAgcmV0dXJuIG1lcmdlRGF0YShcbiAgICAgICAgdHlwZW9mIGNoaWxkVmFsID09PSAnZnVuY3Rpb24nID8gY2hpbGRWYWwuY2FsbCh0aGlzLCB0aGlzKSA6IGNoaWxkVmFsLFxuICAgICAgICB0eXBlb2YgcGFyZW50VmFsID09PSAnZnVuY3Rpb24nID8gcGFyZW50VmFsLmNhbGwodGhpcywgdGhpcykgOiBwYXJlbnRWYWxcbiAgICAgIClcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIG1lcmdlZEluc3RhbmNlRGF0YUZuICgpIHtcbiAgICAgIC8vIGluc3RhbmNlIG1lcmdlXG4gICAgICB2YXIgaW5zdGFuY2VEYXRhID0gdHlwZW9mIGNoaWxkVmFsID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gY2hpbGRWYWwuY2FsbCh2bSwgdm0pXG4gICAgICAgIDogY2hpbGRWYWw7XG4gICAgICB2YXIgZGVmYXVsdERhdGEgPSB0eXBlb2YgcGFyZW50VmFsID09PSAnZnVuY3Rpb24nXG4gICAgICAgID8gcGFyZW50VmFsLmNhbGwodm0sIHZtKVxuICAgICAgICA6IHBhcmVudFZhbDtcbiAgICAgIGlmIChpbnN0YW5jZURhdGEpIHtcbiAgICAgICAgcmV0dXJuIG1lcmdlRGF0YShpbnN0YW5jZURhdGEsIGRlZmF1bHREYXRhKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHREYXRhXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbnN0cmF0cy5kYXRhID0gZnVuY3Rpb24gKFxuICBwYXJlbnRWYWwsXG4gIGNoaWxkVmFsLFxuICB2bVxuKSB7XG4gIGlmICghdm0pIHtcbiAgICBpZiAoY2hpbGRWYWwgJiYgdHlwZW9mIGNoaWxkVmFsICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAgICdUaGUgXCJkYXRhXCIgb3B0aW9uIHNob3VsZCBiZSBhIGZ1bmN0aW9uICcgK1xuICAgICAgICAndGhhdCByZXR1cm5zIGEgcGVyLWluc3RhbmNlIHZhbHVlIGluIGNvbXBvbmVudCAnICtcbiAgICAgICAgJ2RlZmluaXRpb25zLicsXG4gICAgICAgIHZtXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gcGFyZW50VmFsXG4gICAgfVxuICAgIHJldHVybiBtZXJnZURhdGFPckZuKHBhcmVudFZhbCwgY2hpbGRWYWwpXG4gIH1cblxuICByZXR1cm4gbWVyZ2VEYXRhT3JGbihwYXJlbnRWYWwsIGNoaWxkVmFsLCB2bSlcbn07XG5cbi8qKlxuICogSG9va3MgYW5kIHByb3BzIGFyZSBtZXJnZWQgYXMgYXJyYXlzLlxuICovXG5mdW5jdGlvbiBtZXJnZUhvb2sgKFxuICBwYXJlbnRWYWwsXG4gIGNoaWxkVmFsXG4pIHtcbiAgdmFyIHJlcyA9IGNoaWxkVmFsXG4gICAgPyBwYXJlbnRWYWxcbiAgICAgID8gcGFyZW50VmFsLmNvbmNhdChjaGlsZFZhbClcbiAgICAgIDogQXJyYXkuaXNBcnJheShjaGlsZFZhbClcbiAgICAgICAgPyBjaGlsZFZhbFxuICAgICAgICA6IFtjaGlsZFZhbF1cbiAgICA6IHBhcmVudFZhbDtcbiAgcmV0dXJuIHJlc1xuICAgID8gZGVkdXBlSG9va3MocmVzKVxuICAgIDogcmVzXG59XG5cbmZ1bmN0aW9uIGRlZHVwZUhvb2tzIChob29rcykge1xuICB2YXIgcmVzID0gW107XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgaG9va3MubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAocmVzLmluZGV4T2YoaG9va3NbaV0pID09PSAtMSkge1xuICAgICAgcmVzLnB1c2goaG9va3NbaV0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbkxJRkVDWUNMRV9IT09LUy5mb3JFYWNoKGZ1bmN0aW9uIChob29rKSB7XG4gIHN0cmF0c1tob29rXSA9IG1lcmdlSG9vaztcbn0pO1xuXG4vKipcbiAqIEFzc2V0c1xuICpcbiAqIFdoZW4gYSB2bSBpcyBwcmVzZW50IChpbnN0YW5jZSBjcmVhdGlvbiksIHdlIG5lZWQgdG8gZG9cbiAqIGEgdGhyZWUtd2F5IG1lcmdlIGJldHdlZW4gY29uc3RydWN0b3Igb3B0aW9ucywgaW5zdGFuY2VcbiAqIG9wdGlvbnMgYW5kIHBhcmVudCBvcHRpb25zLlxuICovXG5mdW5jdGlvbiBtZXJnZUFzc2V0cyAoXG4gIHBhcmVudFZhbCxcbiAgY2hpbGRWYWwsXG4gIHZtLFxuICBrZXlcbikge1xuICB2YXIgcmVzID0gT2JqZWN0LmNyZWF0ZShwYXJlbnRWYWwgfHwgbnVsbCk7XG4gIGlmIChjaGlsZFZhbCkge1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgYXNzZXJ0T2JqZWN0VHlwZShrZXksIGNoaWxkVmFsLCB2bSk7XG4gICAgcmV0dXJuIGV4dGVuZChyZXMsIGNoaWxkVmFsKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiByZXNcbiAgfVxufVxuXG5BU1NFVF9UWVBFUy5mb3JFYWNoKGZ1bmN0aW9uICh0eXBlKSB7XG4gIHN0cmF0c1t0eXBlICsgJ3MnXSA9IG1lcmdlQXNzZXRzO1xufSk7XG5cbi8qKlxuICogV2F0Y2hlcnMuXG4gKlxuICogV2F0Y2hlcnMgaGFzaGVzIHNob3VsZCBub3Qgb3ZlcndyaXRlIG9uZVxuICogYW5vdGhlciwgc28gd2UgbWVyZ2UgdGhlbSBhcyBhcnJheXMuXG4gKi9cbnN0cmF0cy53YXRjaCA9IGZ1bmN0aW9uIChcbiAgcGFyZW50VmFsLFxuICBjaGlsZFZhbCxcbiAgdm0sXG4gIGtleVxuKSB7XG4gIC8vIHdvcmsgYXJvdW5kIEZpcmVmb3gncyBPYmplY3QucHJvdG90eXBlLndhdGNoLi4uXG4gIGlmIChwYXJlbnRWYWwgPT09IG5hdGl2ZVdhdGNoKSB7IHBhcmVudFZhbCA9IHVuZGVmaW5lZDsgfVxuICBpZiAoY2hpbGRWYWwgPT09IG5hdGl2ZVdhdGNoKSB7IGNoaWxkVmFsID0gdW5kZWZpbmVkOyB9XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIWNoaWxkVmFsKSB7IHJldHVybiBPYmplY3QuY3JlYXRlKHBhcmVudFZhbCB8fCBudWxsKSB9XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgYXNzZXJ0T2JqZWN0VHlwZShrZXksIGNoaWxkVmFsLCB2bSk7XG4gIH1cbiAgaWYgKCFwYXJlbnRWYWwpIHsgcmV0dXJuIGNoaWxkVmFsIH1cbiAgdmFyIHJldCA9IHt9O1xuICBleHRlbmQocmV0LCBwYXJlbnRWYWwpO1xuICBmb3IgKHZhciBrZXkkMSBpbiBjaGlsZFZhbCkge1xuICAgIHZhciBwYXJlbnQgPSByZXRba2V5JDFdO1xuICAgIHZhciBjaGlsZCA9IGNoaWxkVmFsW2tleSQxXTtcbiAgICBpZiAocGFyZW50ICYmICFBcnJheS5pc0FycmF5KHBhcmVudCkpIHtcbiAgICAgIHBhcmVudCA9IFtwYXJlbnRdO1xuICAgIH1cbiAgICByZXRba2V5JDFdID0gcGFyZW50XG4gICAgICA/IHBhcmVudC5jb25jYXQoY2hpbGQpXG4gICAgICA6IEFycmF5LmlzQXJyYXkoY2hpbGQpID8gY2hpbGQgOiBbY2hpbGRdO1xuICB9XG4gIHJldHVybiByZXRcbn07XG5cbi8qKlxuICogT3RoZXIgb2JqZWN0IGhhc2hlcy5cbiAqL1xuc3RyYXRzLnByb3BzID1cbnN0cmF0cy5tZXRob2RzID1cbnN0cmF0cy5pbmplY3QgPVxuc3RyYXRzLmNvbXB1dGVkID0gZnVuY3Rpb24gKFxuICBwYXJlbnRWYWwsXG4gIGNoaWxkVmFsLFxuICB2bSxcbiAga2V5XG4pIHtcbiAgaWYgKGNoaWxkVmFsICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBhc3NlcnRPYmplY3RUeXBlKGtleSwgY2hpbGRWYWwsIHZtKTtcbiAgfVxuICBpZiAoIXBhcmVudFZhbCkgeyByZXR1cm4gY2hpbGRWYWwgfVxuICB2YXIgcmV0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgZXh0ZW5kKHJldCwgcGFyZW50VmFsKTtcbiAgaWYgKGNoaWxkVmFsKSB7IGV4dGVuZChyZXQsIGNoaWxkVmFsKTsgfVxuICByZXR1cm4gcmV0XG59O1xuc3RyYXRzLnByb3ZpZGUgPSBtZXJnZURhdGFPckZuO1xuXG4vKipcbiAqIERlZmF1bHQgc3RyYXRlZ3kuXG4gKi9cbnZhciBkZWZhdWx0U3RyYXQgPSBmdW5jdGlvbiAocGFyZW50VmFsLCBjaGlsZFZhbCkge1xuICByZXR1cm4gY2hpbGRWYWwgPT09IHVuZGVmaW5lZFxuICAgID8gcGFyZW50VmFsXG4gICAgOiBjaGlsZFZhbFxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBjb21wb25lbnQgbmFtZXNcbiAqL1xuZnVuY3Rpb24gY2hlY2tDb21wb25lbnRzIChvcHRpb25zKSB7XG4gIGZvciAodmFyIGtleSBpbiBvcHRpb25zLmNvbXBvbmVudHMpIHtcbiAgICB2YWxpZGF0ZUNvbXBvbmVudE5hbWUoa2V5KTtcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUNvbXBvbmVudE5hbWUgKG5hbWUpIHtcbiAgaWYgKCFuZXcgUmVnRXhwKChcIl5bYS16QS1aXVtcXFxcLVxcXFwuMC05X1wiICsgKHVuaWNvZGVSZWdFeHAuc291cmNlKSArIFwiXSokXCIpKS50ZXN0KG5hbWUpKSB7XG4gICAgd2FybihcbiAgICAgICdJbnZhbGlkIGNvbXBvbmVudCBuYW1lOiBcIicgKyBuYW1lICsgJ1wiLiBDb21wb25lbnQgbmFtZXMgJyArXG4gICAgICAnc2hvdWxkIGNvbmZvcm0gdG8gdmFsaWQgY3VzdG9tIGVsZW1lbnQgbmFtZSBpbiBodG1sNSBzcGVjaWZpY2F0aW9uLidcbiAgICApO1xuICB9XG4gIGlmIChpc0J1aWx0SW5UYWcobmFtZSkgfHwgY29uZmlnLmlzUmVzZXJ2ZWRUYWcobmFtZSkpIHtcbiAgICB3YXJuKFxuICAgICAgJ0RvIG5vdCB1c2UgYnVpbHQtaW4gb3IgcmVzZXJ2ZWQgSFRNTCBlbGVtZW50cyBhcyBjb21wb25lbnQgJyArXG4gICAgICAnaWQ6ICcgKyBuYW1lXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIEVuc3VyZSBhbGwgcHJvcHMgb3B0aW9uIHN5bnRheCBhcmUgbm9ybWFsaXplZCBpbnRvIHRoZVxuICogT2JqZWN0LWJhc2VkIGZvcm1hdC5cbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplUHJvcHMgKG9wdGlvbnMsIHZtKSB7XG4gIHZhciBwcm9wcyA9IG9wdGlvbnMucHJvcHM7XG4gIGlmICghcHJvcHMpIHsgcmV0dXJuIH1cbiAgdmFyIHJlcyA9IHt9O1xuICB2YXIgaSwgdmFsLCBuYW1lO1xuICBpZiAoQXJyYXkuaXNBcnJheShwcm9wcykpIHtcbiAgICBpID0gcHJvcHMubGVuZ3RoO1xuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIHZhbCA9IHByb3BzW2ldO1xuICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG5hbWUgPSBjYW1lbGl6ZSh2YWwpO1xuICAgICAgICByZXNbbmFtZV0gPSB7IHR5cGU6IG51bGwgfTtcbiAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB3YXJuKCdwcm9wcyBtdXN0IGJlIHN0cmluZ3Mgd2hlbiB1c2luZyBhcnJheSBzeW50YXguJyk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKGlzUGxhaW5PYmplY3QocHJvcHMpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIHByb3BzKSB7XG4gICAgICB2YWwgPSBwcm9wc1trZXldO1xuICAgICAgbmFtZSA9IGNhbWVsaXplKGtleSk7XG4gICAgICByZXNbbmFtZV0gPSBpc1BsYWluT2JqZWN0KHZhbClcbiAgICAgICAgPyB2YWxcbiAgICAgICAgOiB7IHR5cGU6IHZhbCB9O1xuICAgIH1cbiAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgd2FybihcbiAgICAgIFwiSW52YWxpZCB2YWx1ZSBmb3Igb3B0aW9uIFxcXCJwcm9wc1xcXCI6IGV4cGVjdGVkIGFuIEFycmF5IG9yIGFuIE9iamVjdCwgXCIgK1xuICAgICAgXCJidXQgZ290IFwiICsgKHRvUmF3VHlwZShwcm9wcykpICsgXCIuXCIsXG4gICAgICB2bVxuICAgICk7XG4gIH1cbiAgb3B0aW9ucy5wcm9wcyA9IHJlcztcbn1cblxuLyoqXG4gKiBOb3JtYWxpemUgYWxsIGluamVjdGlvbnMgaW50byBPYmplY3QtYmFzZWQgZm9ybWF0XG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZUluamVjdCAob3B0aW9ucywgdm0pIHtcbiAgdmFyIGluamVjdCA9IG9wdGlvbnMuaW5qZWN0O1xuICBpZiAoIWluamVjdCkgeyByZXR1cm4gfVxuICB2YXIgbm9ybWFsaXplZCA9IG9wdGlvbnMuaW5qZWN0ID0ge307XG4gIGlmIChBcnJheS5pc0FycmF5KGluamVjdCkpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGluamVjdC5sZW5ndGg7IGkrKykge1xuICAgICAgbm9ybWFsaXplZFtpbmplY3RbaV1dID0geyBmcm9tOiBpbmplY3RbaV0gfTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNQbGFpbk9iamVjdChpbmplY3QpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGluamVjdCkge1xuICAgICAgdmFyIHZhbCA9IGluamVjdFtrZXldO1xuICAgICAgbm9ybWFsaXplZFtrZXldID0gaXNQbGFpbk9iamVjdCh2YWwpXG4gICAgICAgID8gZXh0ZW5kKHsgZnJvbToga2V5IH0sIHZhbClcbiAgICAgICAgOiB7IGZyb206IHZhbCB9O1xuICAgIH1cbiAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgd2FybihcbiAgICAgIFwiSW52YWxpZCB2YWx1ZSBmb3Igb3B0aW9uIFxcXCJpbmplY3RcXFwiOiBleHBlY3RlZCBhbiBBcnJheSBvciBhbiBPYmplY3QsIFwiICtcbiAgICAgIFwiYnV0IGdvdCBcIiArICh0b1Jhd1R5cGUoaW5qZWN0KSkgKyBcIi5cIixcbiAgICAgIHZtXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIE5vcm1hbGl6ZSByYXcgZnVuY3Rpb24gZGlyZWN0aXZlcyBpbnRvIG9iamVjdCBmb3JtYXQuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZURpcmVjdGl2ZXMgKG9wdGlvbnMpIHtcbiAgdmFyIGRpcnMgPSBvcHRpb25zLmRpcmVjdGl2ZXM7XG4gIGlmIChkaXJzKSB7XG4gICAgZm9yICh2YXIga2V5IGluIGRpcnMpIHtcbiAgICAgIHZhciBkZWYkJDEgPSBkaXJzW2tleV07XG4gICAgICBpZiAodHlwZW9mIGRlZiQkMSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBkaXJzW2tleV0gPSB7IGJpbmQ6IGRlZiQkMSwgdXBkYXRlOiBkZWYkJDEgfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYXNzZXJ0T2JqZWN0VHlwZSAobmFtZSwgdmFsdWUsIHZtKSB7XG4gIGlmICghaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICB3YXJuKFxuICAgICAgXCJJbnZhbGlkIHZhbHVlIGZvciBvcHRpb24gXFxcIlwiICsgbmFtZSArIFwiXFxcIjogZXhwZWN0ZWQgYW4gT2JqZWN0LCBcIiArXG4gICAgICBcImJ1dCBnb3QgXCIgKyAodG9SYXdUeXBlKHZhbHVlKSkgKyBcIi5cIixcbiAgICAgIHZtXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIE1lcmdlIHR3byBvcHRpb24gb2JqZWN0cyBpbnRvIGEgbmV3IG9uZS5cbiAqIENvcmUgdXRpbGl0eSB1c2VkIGluIGJvdGggaW5zdGFudGlhdGlvbiBhbmQgaW5oZXJpdGFuY2UuXG4gKi9cbmZ1bmN0aW9uIG1lcmdlT3B0aW9ucyAoXG4gIHBhcmVudCxcbiAgY2hpbGQsXG4gIHZtXG4pIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBjaGVja0NvbXBvbmVudHMoY2hpbGQpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBjaGlsZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGNoaWxkID0gY2hpbGQub3B0aW9ucztcbiAgfVxuXG4gIG5vcm1hbGl6ZVByb3BzKGNoaWxkLCB2bSk7XG4gIG5vcm1hbGl6ZUluamVjdChjaGlsZCwgdm0pO1xuICBub3JtYWxpemVEaXJlY3RpdmVzKGNoaWxkKTtcblxuICAvLyBBcHBseSBleHRlbmRzIGFuZCBtaXhpbnMgb24gdGhlIGNoaWxkIG9wdGlvbnMsXG4gIC8vIGJ1dCBvbmx5IGlmIGl0IGlzIGEgcmF3IG9wdGlvbnMgb2JqZWN0IHRoYXQgaXNuJ3RcbiAgLy8gdGhlIHJlc3VsdCBvZiBhbm90aGVyIG1lcmdlT3B0aW9ucyBjYWxsLlxuICAvLyBPbmx5IG1lcmdlZCBvcHRpb25zIGhhcyB0aGUgX2Jhc2UgcHJvcGVydHkuXG4gIGlmICghY2hpbGQuX2Jhc2UpIHtcbiAgICBpZiAoY2hpbGQuZXh0ZW5kcykge1xuICAgICAgcGFyZW50ID0gbWVyZ2VPcHRpb25zKHBhcmVudCwgY2hpbGQuZXh0ZW5kcywgdm0pO1xuICAgIH1cbiAgICBpZiAoY2hpbGQubWl4aW5zKSB7XG4gICAgICBmb3IgKHZhciBpID0gMCwgbCA9IGNoaWxkLm1peGlucy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgcGFyZW50ID0gbWVyZ2VPcHRpb25zKHBhcmVudCwgY2hpbGQubWl4aW5zW2ldLCB2bSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIG9wdGlvbnMgPSB7fTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gcGFyZW50KSB7XG4gICAgbWVyZ2VGaWVsZChrZXkpO1xuICB9XG4gIGZvciAoa2V5IGluIGNoaWxkKSB7XG4gICAgaWYgKCFoYXNPd24ocGFyZW50LCBrZXkpKSB7XG4gICAgICBtZXJnZUZpZWxkKGtleSk7XG4gICAgfVxuICB9XG4gIGZ1bmN0aW9uIG1lcmdlRmllbGQgKGtleSkge1xuICAgIHZhciBzdHJhdCA9IHN0cmF0c1trZXldIHx8IGRlZmF1bHRTdHJhdDtcbiAgICBvcHRpb25zW2tleV0gPSBzdHJhdChwYXJlbnRba2V5XSwgY2hpbGRba2V5XSwgdm0sIGtleSk7XG4gIH1cbiAgcmV0dXJuIG9wdGlvbnNcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGFuIGFzc2V0LlxuICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGJlY2F1c2UgY2hpbGQgaW5zdGFuY2VzIG5lZWQgYWNjZXNzXG4gKiB0byBhc3NldHMgZGVmaW5lZCBpbiBpdHMgYW5jZXN0b3IgY2hhaW4uXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVBc3NldCAoXG4gIG9wdGlvbnMsXG4gIHR5cGUsXG4gIGlkLFxuICB3YXJuTWlzc2luZ1xuKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAodHlwZW9mIGlkICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVyblxuICB9XG4gIHZhciBhc3NldHMgPSBvcHRpb25zW3R5cGVdO1xuICAvLyBjaGVjayBsb2NhbCByZWdpc3RyYXRpb24gdmFyaWF0aW9ucyBmaXJzdFxuICBpZiAoaGFzT3duKGFzc2V0cywgaWQpKSB7IHJldHVybiBhc3NldHNbaWRdIH1cbiAgdmFyIGNhbWVsaXplZElkID0gY2FtZWxpemUoaWQpO1xuICBpZiAoaGFzT3duKGFzc2V0cywgY2FtZWxpemVkSWQpKSB7IHJldHVybiBhc3NldHNbY2FtZWxpemVkSWRdIH1cbiAgdmFyIFBhc2NhbENhc2VJZCA9IGNhcGl0YWxpemUoY2FtZWxpemVkSWQpO1xuICBpZiAoaGFzT3duKGFzc2V0cywgUGFzY2FsQ2FzZUlkKSkgeyByZXR1cm4gYXNzZXRzW1Bhc2NhbENhc2VJZF0gfVxuICAvLyBmYWxsYmFjayB0byBwcm90b3R5cGUgY2hhaW5cbiAgdmFyIHJlcyA9IGFzc2V0c1tpZF0gfHwgYXNzZXRzW2NhbWVsaXplZElkXSB8fCBhc3NldHNbUGFzY2FsQ2FzZUlkXTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2Fybk1pc3NpbmcgJiYgIXJlcykge1xuICAgIHdhcm4oXG4gICAgICAnRmFpbGVkIHRvIHJlc29sdmUgJyArIHR5cGUuc2xpY2UoMCwgLTEpICsgJzogJyArIGlkLFxuICAgICAgb3B0aW9uc1xuICAgICk7XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG4vKiAgKi9cblxuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlUHJvcCAoXG4gIGtleSxcbiAgcHJvcE9wdGlvbnMsXG4gIHByb3BzRGF0YSxcbiAgdm1cbikge1xuICB2YXIgcHJvcCA9IHByb3BPcHRpb25zW2tleV07XG4gIHZhciBhYnNlbnQgPSAhaGFzT3duKHByb3BzRGF0YSwga2V5KTtcbiAgdmFyIHZhbHVlID0gcHJvcHNEYXRhW2tleV07XG4gIC8vIGJvb2xlYW4gY2FzdGluZ1xuICB2YXIgYm9vbGVhbkluZGV4ID0gZ2V0VHlwZUluZGV4KEJvb2xlYW4sIHByb3AudHlwZSk7XG4gIGlmIChib29sZWFuSW5kZXggPiAtMSkge1xuICAgIGlmIChhYnNlbnQgJiYgIWhhc093bihwcm9wLCAnZGVmYXVsdCcpKSB7XG4gICAgICB2YWx1ZSA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09ICcnIHx8IHZhbHVlID09PSBoeXBoZW5hdGUoa2V5KSkge1xuICAgICAgLy8gb25seSBjYXN0IGVtcHR5IHN0cmluZyAvIHNhbWUgbmFtZSB0byBib29sZWFuIGlmXG4gICAgICAvLyBib29sZWFuIGhhcyBoaWdoZXIgcHJpb3JpdHlcbiAgICAgIHZhciBzdHJpbmdJbmRleCA9IGdldFR5cGVJbmRleChTdHJpbmcsIHByb3AudHlwZSk7XG4gICAgICBpZiAoc3RyaW5nSW5kZXggPCAwIHx8IGJvb2xlYW5JbmRleCA8IHN0cmluZ0luZGV4KSB7XG4gICAgICAgIHZhbHVlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gY2hlY2sgZGVmYXVsdCB2YWx1ZVxuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHZhbHVlID0gZ2V0UHJvcERlZmF1bHRWYWx1ZSh2bSwgcHJvcCwga2V5KTtcbiAgICAvLyBzaW5jZSB0aGUgZGVmYXVsdCB2YWx1ZSBpcyBhIGZyZXNoIGNvcHksXG4gICAgLy8gbWFrZSBzdXJlIHRvIG9ic2VydmUgaXQuXG4gICAgdmFyIHByZXZTaG91bGRPYnNlcnZlID0gc2hvdWxkT2JzZXJ2ZTtcbiAgICB0b2dnbGVPYnNlcnZpbmcodHJ1ZSk7XG4gICAgb2JzZXJ2ZSh2YWx1ZSk7XG4gICAgdG9nZ2xlT2JzZXJ2aW5nKHByZXZTaG91bGRPYnNlcnZlKTtcbiAgfVxuICBpZiAoXG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgIC8vIHNraXAgdmFsaWRhdGlvbiBmb3Igd2VleCByZWN5Y2xlLWxpc3QgY2hpbGQgY29tcG9uZW50IHByb3BzXG4gICAgIShmYWxzZSlcbiAgKSB7XG4gICAgYXNzZXJ0UHJvcChwcm9wLCBrZXksIHZhbHVlLCB2bSwgYWJzZW50KTtcbiAgfVxuICByZXR1cm4gdmFsdWVcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGRlZmF1bHQgdmFsdWUgb2YgYSBwcm9wLlxuICovXG5mdW5jdGlvbiBnZXRQcm9wRGVmYXVsdFZhbHVlICh2bSwgcHJvcCwga2V5KSB7XG4gIC8vIG5vIGRlZmF1bHQsIHJldHVybiB1bmRlZmluZWRcbiAgaWYgKCFoYXNPd24ocHJvcCwgJ2RlZmF1bHQnKSkge1xuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuICB2YXIgZGVmID0gcHJvcC5kZWZhdWx0O1xuICAvLyB3YXJuIGFnYWluc3Qgbm9uLWZhY3RvcnkgZGVmYXVsdHMgZm9yIE9iamVjdCAmIEFycmF5XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGlzT2JqZWN0KGRlZikpIHtcbiAgICB3YXJuKFxuICAgICAgJ0ludmFsaWQgZGVmYXVsdCB2YWx1ZSBmb3IgcHJvcCBcIicgKyBrZXkgKyAnXCI6ICcgK1xuICAgICAgJ1Byb3BzIHdpdGggdHlwZSBPYmplY3QvQXJyYXkgbXVzdCB1c2UgYSBmYWN0b3J5IGZ1bmN0aW9uICcgK1xuICAgICAgJ3RvIHJldHVybiB0aGUgZGVmYXVsdCB2YWx1ZS4nLFxuICAgICAgdm1cbiAgICApO1xuICB9XG4gIC8vIHRoZSByYXcgcHJvcCB2YWx1ZSB3YXMgYWxzbyB1bmRlZmluZWQgZnJvbSBwcmV2aW91cyByZW5kZXIsXG4gIC8vIHJldHVybiBwcmV2aW91cyBkZWZhdWx0IHZhbHVlIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHdhdGNoZXIgdHJpZ2dlclxuICBpZiAodm0gJiYgdm0uJG9wdGlvbnMucHJvcHNEYXRhICYmXG4gICAgdm0uJG9wdGlvbnMucHJvcHNEYXRhW2tleV0gPT09IHVuZGVmaW5lZCAmJlxuICAgIHZtLl9wcm9wc1trZXldICE9PSB1bmRlZmluZWRcbiAgKSB7XG4gICAgcmV0dXJuIHZtLl9wcm9wc1trZXldXG4gIH1cbiAgLy8gY2FsbCBmYWN0b3J5IGZ1bmN0aW9uIGZvciBub24tRnVuY3Rpb24gdHlwZXNcbiAgLy8gYSB2YWx1ZSBpcyBGdW5jdGlvbiBpZiBpdHMgcHJvdG90eXBlIGlzIGZ1bmN0aW9uIGV2ZW4gYWNyb3NzIGRpZmZlcmVudCBleGVjdXRpb24gY29udGV4dFxuICByZXR1cm4gdHlwZW9mIGRlZiA9PT0gJ2Z1bmN0aW9uJyAmJiBnZXRUeXBlKHByb3AudHlwZSkgIT09ICdGdW5jdGlvbidcbiAgICA/IGRlZi5jYWxsKHZtKVxuICAgIDogZGVmXG59XG5cbi8qKlxuICogQXNzZXJ0IHdoZXRoZXIgYSBwcm9wIGlzIHZhbGlkLlxuICovXG5mdW5jdGlvbiBhc3NlcnRQcm9wIChcbiAgcHJvcCxcbiAgbmFtZSxcbiAgdmFsdWUsXG4gIHZtLFxuICBhYnNlbnRcbikge1xuICBpZiAocHJvcC5yZXF1aXJlZCAmJiBhYnNlbnQpIHtcbiAgICB3YXJuKFxuICAgICAgJ01pc3NpbmcgcmVxdWlyZWQgcHJvcDogXCInICsgbmFtZSArICdcIicsXG4gICAgICB2bVxuICAgICk7XG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKHZhbHVlID09IG51bGwgJiYgIXByb3AucmVxdWlyZWQpIHtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIgdHlwZSA9IHByb3AudHlwZTtcbiAgdmFyIHZhbGlkID0gIXR5cGUgfHwgdHlwZSA9PT0gdHJ1ZTtcbiAgdmFyIGV4cGVjdGVkVHlwZXMgPSBbXTtcbiAgaWYgKHR5cGUpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodHlwZSkpIHtcbiAgICAgIHR5cGUgPSBbdHlwZV07XG4gICAgfVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHlwZS5sZW5ndGggJiYgIXZhbGlkOyBpKyspIHtcbiAgICAgIHZhciBhc3NlcnRlZFR5cGUgPSBhc3NlcnRUeXBlKHZhbHVlLCB0eXBlW2ldLCB2bSk7XG4gICAgICBleHBlY3RlZFR5cGVzLnB1c2goYXNzZXJ0ZWRUeXBlLmV4cGVjdGVkVHlwZSB8fCAnJyk7XG4gICAgICB2YWxpZCA9IGFzc2VydGVkVHlwZS52YWxpZDtcbiAgICB9XG4gIH1cblxuICB2YXIgaGF2ZUV4cGVjdGVkVHlwZXMgPSBleHBlY3RlZFR5cGVzLnNvbWUoZnVuY3Rpb24gKHQpIHsgcmV0dXJuIHQ7IH0pO1xuICBpZiAoIXZhbGlkICYmIGhhdmVFeHBlY3RlZFR5cGVzKSB7XG4gICAgd2FybihcbiAgICAgIGdldEludmFsaWRUeXBlTWVzc2FnZShuYW1lLCB2YWx1ZSwgZXhwZWN0ZWRUeXBlcyksXG4gICAgICB2bVxuICAgICk7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIHZhbGlkYXRvciA9IHByb3AudmFsaWRhdG9yO1xuICBpZiAodmFsaWRhdG9yKSB7XG4gICAgaWYgKCF2YWxpZGF0b3IodmFsdWUpKSB7XG4gICAgICB3YXJuKFxuICAgICAgICAnSW52YWxpZCBwcm9wOiBjdXN0b20gdmFsaWRhdG9yIGNoZWNrIGZhaWxlZCBmb3IgcHJvcCBcIicgKyBuYW1lICsgJ1wiLicsXG4gICAgICAgIHZtXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuXG52YXIgc2ltcGxlQ2hlY2tSRSA9IC9eKFN0cmluZ3xOdW1iZXJ8Qm9vbGVhbnxGdW5jdGlvbnxTeW1ib2x8QmlnSW50KSQvO1xuXG5mdW5jdGlvbiBhc3NlcnRUeXBlICh2YWx1ZSwgdHlwZSwgdm0pIHtcbiAgdmFyIHZhbGlkO1xuICB2YXIgZXhwZWN0ZWRUeXBlID0gZ2V0VHlwZSh0eXBlKTtcbiAgaWYgKHNpbXBsZUNoZWNrUkUudGVzdChleHBlY3RlZFR5cGUpKSB7XG4gICAgdmFyIHQgPSB0eXBlb2YgdmFsdWU7XG4gICAgdmFsaWQgPSB0ID09PSBleHBlY3RlZFR5cGUudG9Mb3dlckNhc2UoKTtcbiAgICAvLyBmb3IgcHJpbWl0aXZlIHdyYXBwZXIgb2JqZWN0c1xuICAgIGlmICghdmFsaWQgJiYgdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhbGlkID0gdmFsdWUgaW5zdGFuY2VvZiB0eXBlO1xuICAgIH1cbiAgfSBlbHNlIGlmIChleHBlY3RlZFR5cGUgPT09ICdPYmplY3QnKSB7XG4gICAgdmFsaWQgPSBpc1BsYWluT2JqZWN0KHZhbHVlKTtcbiAgfSBlbHNlIGlmIChleHBlY3RlZFR5cGUgPT09ICdBcnJheScpIHtcbiAgICB2YWxpZCA9IEFycmF5LmlzQXJyYXkodmFsdWUpO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICB2YWxpZCA9IHZhbHVlIGluc3RhbmNlb2YgdHlwZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB3YXJuKCdJbnZhbGlkIHByb3AgdHlwZTogXCInICsgU3RyaW5nKHR5cGUpICsgJ1wiIGlzIG5vdCBhIGNvbnN0cnVjdG9yJywgdm0pO1xuICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICB2YWxpZDogdmFsaWQsXG4gICAgZXhwZWN0ZWRUeXBlOiBleHBlY3RlZFR5cGVcbiAgfVxufVxuXG52YXIgZnVuY3Rpb25UeXBlQ2hlY2tSRSA9IC9eXFxzKmZ1bmN0aW9uIChcXHcrKS87XG5cbi8qKlxuICogVXNlIGZ1bmN0aW9uIHN0cmluZyBuYW1lIHRvIGNoZWNrIGJ1aWx0LWluIHR5cGVzLFxuICogYmVjYXVzZSBhIHNpbXBsZSBlcXVhbGl0eSBjaGVjayB3aWxsIGZhaWwgd2hlbiBydW5uaW5nXG4gKiBhY3Jvc3MgZGlmZmVyZW50IHZtcyAvIGlmcmFtZXMuXG4gKi9cbmZ1bmN0aW9uIGdldFR5cGUgKGZuKSB7XG4gIHZhciBtYXRjaCA9IGZuICYmIGZuLnRvU3RyaW5nKCkubWF0Y2goZnVuY3Rpb25UeXBlQ2hlY2tSRSk7XG4gIHJldHVybiBtYXRjaCA/IG1hdGNoWzFdIDogJydcbn1cblxuZnVuY3Rpb24gaXNTYW1lVHlwZSAoYSwgYikge1xuICByZXR1cm4gZ2V0VHlwZShhKSA9PT0gZ2V0VHlwZShiKVxufVxuXG5mdW5jdGlvbiBnZXRUeXBlSW5kZXggKHR5cGUsIGV4cGVjdGVkVHlwZXMpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGV4cGVjdGVkVHlwZXMpKSB7XG4gICAgcmV0dXJuIGlzU2FtZVR5cGUoZXhwZWN0ZWRUeXBlcywgdHlwZSkgPyAwIDogLTFcbiAgfVxuICBmb3IgKHZhciBpID0gMCwgbGVuID0gZXhwZWN0ZWRUeXBlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGlmIChpc1NhbWVUeXBlKGV4cGVjdGVkVHlwZXNbaV0sIHR5cGUpKSB7XG4gICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxuICByZXR1cm4gLTFcbn1cblxuZnVuY3Rpb24gZ2V0SW52YWxpZFR5cGVNZXNzYWdlIChuYW1lLCB2YWx1ZSwgZXhwZWN0ZWRUeXBlcykge1xuICB2YXIgbWVzc2FnZSA9IFwiSW52YWxpZCBwcm9wOiB0eXBlIGNoZWNrIGZhaWxlZCBmb3IgcHJvcCBcXFwiXCIgKyBuYW1lICsgXCJcXFwiLlwiICtcbiAgICBcIiBFeHBlY3RlZCBcIiArIChleHBlY3RlZFR5cGVzLm1hcChjYXBpdGFsaXplKS5qb2luKCcsICcpKTtcbiAgdmFyIGV4cGVjdGVkVHlwZSA9IGV4cGVjdGVkVHlwZXNbMF07XG4gIHZhciByZWNlaXZlZFR5cGUgPSB0b1Jhd1R5cGUodmFsdWUpO1xuICAvLyBjaGVjayBpZiB3ZSBuZWVkIHRvIHNwZWNpZnkgZXhwZWN0ZWQgdmFsdWVcbiAgaWYgKFxuICAgIGV4cGVjdGVkVHlwZXMubGVuZ3RoID09PSAxICYmXG4gICAgaXNFeHBsaWNhYmxlKGV4cGVjdGVkVHlwZSkgJiZcbiAgICBpc0V4cGxpY2FibGUodHlwZW9mIHZhbHVlKSAmJlxuICAgICFpc0Jvb2xlYW4oZXhwZWN0ZWRUeXBlLCByZWNlaXZlZFR5cGUpXG4gICkge1xuICAgIG1lc3NhZ2UgKz0gXCIgd2l0aCB2YWx1ZSBcIiArIChzdHlsZVZhbHVlKHZhbHVlLCBleHBlY3RlZFR5cGUpKTtcbiAgfVxuICBtZXNzYWdlICs9IFwiLCBnb3QgXCIgKyByZWNlaXZlZFR5cGUgKyBcIiBcIjtcbiAgLy8gY2hlY2sgaWYgd2UgbmVlZCB0byBzcGVjaWZ5IHJlY2VpdmVkIHZhbHVlXG4gIGlmIChpc0V4cGxpY2FibGUocmVjZWl2ZWRUeXBlKSkge1xuICAgIG1lc3NhZ2UgKz0gXCJ3aXRoIHZhbHVlIFwiICsgKHN0eWxlVmFsdWUodmFsdWUsIHJlY2VpdmVkVHlwZSkpICsgXCIuXCI7XG4gIH1cbiAgcmV0dXJuIG1lc3NhZ2Vcbn1cblxuZnVuY3Rpb24gc3R5bGVWYWx1ZSAodmFsdWUsIHR5cGUpIHtcbiAgaWYgKHR5cGUgPT09ICdTdHJpbmcnKSB7XG4gICAgcmV0dXJuIChcIlxcXCJcIiArIHZhbHVlICsgXCJcXFwiXCIpXG4gIH0gZWxzZSBpZiAodHlwZSA9PT0gJ051bWJlcicpIHtcbiAgICByZXR1cm4gKFwiXCIgKyAoTnVtYmVyKHZhbHVlKSkpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChcIlwiICsgdmFsdWUpXG4gIH1cbn1cblxudmFyIEVYUExJQ0FCTEVfVFlQRVMgPSBbJ3N0cmluZycsICdudW1iZXInLCAnYm9vbGVhbiddO1xuZnVuY3Rpb24gaXNFeHBsaWNhYmxlICh2YWx1ZSkge1xuICByZXR1cm4gRVhQTElDQUJMRV9UWVBFUy5zb21lKGZ1bmN0aW9uIChlbGVtKSB7IHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpID09PSBlbGVtOyB9KVxufVxuXG5mdW5jdGlvbiBpc0Jvb2xlYW4gKCkge1xuICB2YXIgYXJncyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICB3aGlsZSAoIGxlbi0tICkgYXJnc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiBdO1xuXG4gIHJldHVybiBhcmdzLnNvbWUoZnVuY3Rpb24gKGVsZW0pIHsgcmV0dXJuIGVsZW0udG9Mb3dlckNhc2UoKSA9PT0gJ2Jvb2xlYW4nOyB9KVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gaGFuZGxlRXJyb3IgKGVyciwgdm0sIGluZm8pIHtcbiAgLy8gRGVhY3RpdmF0ZSBkZXBzIHRyYWNraW5nIHdoaWxlIHByb2Nlc3NpbmcgZXJyb3IgaGFuZGxlciB0byBhdm9pZCBwb3NzaWJsZSBpbmZpbml0ZSByZW5kZXJpbmcuXG4gIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL3Z1ZWpzL3Z1ZXgvaXNzdWVzLzE1MDVcbiAgcHVzaFRhcmdldCgpO1xuICB0cnkge1xuICAgIGlmICh2bSkge1xuICAgICAgdmFyIGN1ciA9IHZtO1xuICAgICAgd2hpbGUgKChjdXIgPSBjdXIuJHBhcmVudCkpIHtcbiAgICAgICAgdmFyIGhvb2tzID0gY3VyLiRvcHRpb25zLmVycm9yQ2FwdHVyZWQ7XG4gICAgICAgIGlmIChob29rcykge1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaG9va3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHZhciBjYXB0dXJlID0gaG9va3NbaV0uY2FsbChjdXIsIGVyciwgdm0sIGluZm8pID09PSBmYWxzZTtcbiAgICAgICAgICAgICAgaWYgKGNhcHR1cmUpIHsgcmV0dXJuIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgZ2xvYmFsSGFuZGxlRXJyb3IoZSwgY3VyLCAnZXJyb3JDYXB0dXJlZCBob29rJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGdsb2JhbEhhbmRsZUVycm9yKGVyciwgdm0sIGluZm8pO1xuICB9IGZpbmFsbHkge1xuICAgIHBvcFRhcmdldCgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGludm9rZVdpdGhFcnJvckhhbmRsaW5nIChcbiAgaGFuZGxlcixcbiAgY29udGV4dCxcbiAgYXJncyxcbiAgdm0sXG4gIGluZm9cbikge1xuICB2YXIgcmVzO1xuICB0cnkge1xuICAgIHJlcyA9IGFyZ3MgPyBoYW5kbGVyLmFwcGx5KGNvbnRleHQsIGFyZ3MpIDogaGFuZGxlci5jYWxsKGNvbnRleHQpO1xuICAgIGlmIChyZXMgJiYgIXJlcy5faXNWdWUgJiYgaXNQcm9taXNlKHJlcykgJiYgIXJlcy5faGFuZGxlZCkge1xuICAgICAgcmVzLmNhdGNoKGZ1bmN0aW9uIChlKSB7IHJldHVybiBoYW5kbGVFcnJvcihlLCB2bSwgaW5mbyArIFwiIChQcm9taXNlL2FzeW5jKVwiKTsgfSk7XG4gICAgICAvLyBpc3N1ZSAjOTUxMVxuICAgICAgLy8gYXZvaWQgY2F0Y2ggdHJpZ2dlcmluZyBtdWx0aXBsZSB0aW1lcyB3aGVuIG5lc3RlZCBjYWxsc1xuICAgICAgcmVzLl9oYW5kbGVkID0gdHJ1ZTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBoYW5kbGVFcnJvcihlLCB2bSwgaW5mbyk7XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBnbG9iYWxIYW5kbGVFcnJvciAoZXJyLCB2bSwgaW5mbykge1xuICBpZiAoY29uZmlnLmVycm9ySGFuZGxlcikge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gY29uZmlnLmVycm9ySGFuZGxlci5jYWxsKG51bGwsIGVyciwgdm0sIGluZm8pXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gaWYgdGhlIHVzZXIgaW50ZW50aW9uYWxseSB0aHJvd3MgdGhlIG9yaWdpbmFsIGVycm9yIGluIHRoZSBoYW5kbGVyLFxuICAgICAgLy8gZG8gbm90IGxvZyBpdCB0d2ljZVxuICAgICAgaWYgKGUgIT09IGVycikge1xuICAgICAgICBsb2dFcnJvcihlLCBudWxsLCAnY29uZmlnLmVycm9ySGFuZGxlcicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBsb2dFcnJvcihlcnIsIHZtLCBpbmZvKTtcbn1cblxuZnVuY3Rpb24gbG9nRXJyb3IgKGVyciwgdm0sIGluZm8pIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICB3YXJuKChcIkVycm9yIGluIFwiICsgaW5mbyArIFwiOiBcXFwiXCIgKyAoZXJyLnRvU3RyaW5nKCkpICsgXCJcXFwiXCIpLCB2bSk7XG4gIH1cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKChpbkJyb3dzZXIgfHwgaW5XZWV4KSAmJiB0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBjb25zb2xlLmVycm9yKGVycik7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgZXJyXG4gIH1cbn1cblxuLyogICovXG5cbnZhciBpc1VzaW5nTWljcm9UYXNrID0gZmFsc2U7XG5cbnZhciBjYWxsYmFja3MgPSBbXTtcbnZhciBwZW5kaW5nID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGZsdXNoQ2FsbGJhY2tzICgpIHtcbiAgcGVuZGluZyA9IGZhbHNlO1xuICB2YXIgY29waWVzID0gY2FsbGJhY2tzLnNsaWNlKDApO1xuICBjYWxsYmFja3MubGVuZ3RoID0gMDtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3BpZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb3BpZXNbaV0oKTtcbiAgfVxufVxuXG4vLyBIZXJlIHdlIGhhdmUgYXN5bmMgZGVmZXJyaW5nIHdyYXBwZXJzIHVzaW5nIG1pY3JvdGFza3MuXG4vLyBJbiAyLjUgd2UgdXNlZCAobWFjcm8pIHRhc2tzIChpbiBjb21iaW5hdGlvbiB3aXRoIG1pY3JvdGFza3MpLlxuLy8gSG93ZXZlciwgaXQgaGFzIHN1YnRsZSBwcm9ibGVtcyB3aGVuIHN0YXRlIGlzIGNoYW5nZWQgcmlnaHQgYmVmb3JlIHJlcGFpbnRcbi8vIChlLmcuICM2ODEzLCBvdXQtaW4gdHJhbnNpdGlvbnMpLlxuLy8gQWxzbywgdXNpbmcgKG1hY3JvKSB0YXNrcyBpbiBldmVudCBoYW5kbGVyIHdvdWxkIGNhdXNlIHNvbWUgd2VpcmQgYmVoYXZpb3JzXG4vLyB0aGF0IGNhbm5vdCBiZSBjaXJjdW12ZW50ZWQgKGUuZy4gIzcxMDksICM3MTUzLCAjNzU0NiwgIzc4MzQsICM4MTA5KS5cbi8vIFNvIHdlIG5vdyB1c2UgbWljcm90YXNrcyBldmVyeXdoZXJlLCBhZ2Fpbi5cbi8vIEEgbWFqb3IgZHJhd2JhY2sgb2YgdGhpcyB0cmFkZW9mZiBpcyB0aGF0IHRoZXJlIGFyZSBzb21lIHNjZW5hcmlvc1xuLy8gd2hlcmUgbWljcm90YXNrcyBoYXZlIHRvbyBoaWdoIGEgcHJpb3JpdHkgYW5kIGZpcmUgaW4gYmV0d2VlbiBzdXBwb3NlZGx5XG4vLyBzZXF1ZW50aWFsIGV2ZW50cyAoZS5nLiAjNDUyMSwgIzY2OTAsIHdoaWNoIGhhdmUgd29ya2Fyb3VuZHMpXG4vLyBvciBldmVuIGJldHdlZW4gYnViYmxpbmcgb2YgdGhlIHNhbWUgZXZlbnQgKCM2NTY2KS5cbnZhciB0aW1lckZ1bmM7XG5cbi8vIFRoZSBuZXh0VGljayBiZWhhdmlvciBsZXZlcmFnZXMgdGhlIG1pY3JvdGFzayBxdWV1ZSwgd2hpY2ggY2FuIGJlIGFjY2Vzc2VkXG4vLyB2aWEgZWl0aGVyIG5hdGl2ZSBQcm9taXNlLnRoZW4gb3IgTXV0YXRpb25PYnNlcnZlci5cbi8vIE11dGF0aW9uT2JzZXJ2ZXIgaGFzIHdpZGVyIHN1cHBvcnQsIGhvd2V2ZXIgaXQgaXMgc2VyaW91c2x5IGJ1Z2dlZCBpblxuLy8gVUlXZWJWaWV3IGluIGlPUyA+PSA5LjMuMyB3aGVuIHRyaWdnZXJlZCBpbiB0b3VjaCBldmVudCBoYW5kbGVycy4gSXRcbi8vIGNvbXBsZXRlbHkgc3RvcHMgd29ya2luZyBhZnRlciB0cmlnZ2VyaW5nIGEgZmV3IHRpbWVzLi4uIHNvLCBpZiBuYXRpdmVcbi8vIFByb21pc2UgaXMgYXZhaWxhYmxlLCB3ZSB3aWxsIHVzZSBpdDpcbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0LCAkZmxvdy1kaXNhYmxlLWxpbmUgKi9cbmlmICh0eXBlb2YgUHJvbWlzZSAhPT0gJ3VuZGVmaW5lZCcgJiYgaXNOYXRpdmUoUHJvbWlzZSkpIHtcbiAgdmFyIHAgPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgdGltZXJGdW5jID0gZnVuY3Rpb24gKCkge1xuICAgIHAudGhlbihmbHVzaENhbGxiYWNrcyk7XG4gICAgLy8gSW4gcHJvYmxlbWF0aWMgVUlXZWJWaWV3cywgUHJvbWlzZS50aGVuIGRvZXNuJ3QgY29tcGxldGVseSBicmVhaywgYnV0XG4gICAgLy8gaXQgY2FuIGdldCBzdHVjayBpbiBhIHdlaXJkIHN0YXRlIHdoZXJlIGNhbGxiYWNrcyBhcmUgcHVzaGVkIGludG8gdGhlXG4gICAgLy8gbWljcm90YXNrIHF1ZXVlIGJ1dCB0aGUgcXVldWUgaXNuJ3QgYmVpbmcgZmx1c2hlZCwgdW50aWwgdGhlIGJyb3dzZXJcbiAgICAvLyBuZWVkcyB0byBkbyBzb21lIG90aGVyIHdvcmssIGUuZy4gaGFuZGxlIGEgdGltZXIuIFRoZXJlZm9yZSB3ZSBjYW5cbiAgICAvLyBcImZvcmNlXCIgdGhlIG1pY3JvdGFzayBxdWV1ZSB0byBiZSBmbHVzaGVkIGJ5IGFkZGluZyBhbiBlbXB0eSB0aW1lci5cbiAgICBpZiAoaXNJT1MpIHsgc2V0VGltZW91dChub29wKTsgfVxuICB9O1xuICBpc1VzaW5nTWljcm9UYXNrID0gdHJ1ZTtcbn0gZWxzZSBpZiAoIWlzSUUgJiYgdHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXIgIT09ICd1bmRlZmluZWQnICYmIChcbiAgaXNOYXRpdmUoTXV0YXRpb25PYnNlcnZlcikgfHxcbiAgLy8gUGhhbnRvbUpTIGFuZCBpT1MgNy54XG4gIE11dGF0aW9uT2JzZXJ2ZXIudG9TdHJpbmcoKSA9PT0gJ1tvYmplY3QgTXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yXSdcbikpIHtcbiAgLy8gVXNlIE11dGF0aW9uT2JzZXJ2ZXIgd2hlcmUgbmF0aXZlIFByb21pc2UgaXMgbm90IGF2YWlsYWJsZSxcbiAgLy8gZS5nLiBQaGFudG9tSlMsIGlPUzcsIEFuZHJvaWQgNC40XG4gIC8vICgjNjQ2NiBNdXRhdGlvbk9ic2VydmVyIGlzIHVucmVsaWFibGUgaW4gSUUxMSlcbiAgdmFyIGNvdW50ZXIgPSAxO1xuICB2YXIgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmbHVzaENhbGxiYWNrcyk7XG4gIHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFN0cmluZyhjb3VudGVyKSk7XG4gIG9ic2VydmVyLm9ic2VydmUodGV4dE5vZGUsIHtcbiAgICBjaGFyYWN0ZXJEYXRhOiB0cnVlXG4gIH0pO1xuICB0aW1lckZ1bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgY291bnRlciA9IChjb3VudGVyICsgMSkgJSAyO1xuICAgIHRleHROb2RlLmRhdGEgPSBTdHJpbmcoY291bnRlcik7XG4gIH07XG4gIGlzVXNpbmdNaWNyb1Rhc2sgPSB0cnVlO1xufSBlbHNlIGlmICh0eXBlb2Ygc2V0SW1tZWRpYXRlICE9PSAndW5kZWZpbmVkJyAmJiBpc05hdGl2ZShzZXRJbW1lZGlhdGUpKSB7XG4gIC8vIEZhbGxiYWNrIHRvIHNldEltbWVkaWF0ZS5cbiAgLy8gVGVjaG5pY2FsbHkgaXQgbGV2ZXJhZ2VzIHRoZSAobWFjcm8pIHRhc2sgcXVldWUsXG4gIC8vIGJ1dCBpdCBpcyBzdGlsbCBhIGJldHRlciBjaG9pY2UgdGhhbiBzZXRUaW1lb3V0LlxuICB0aW1lckZ1bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgc2V0SW1tZWRpYXRlKGZsdXNoQ2FsbGJhY2tzKTtcbiAgfTtcbn0gZWxzZSB7XG4gIC8vIEZhbGxiYWNrIHRvIHNldFRpbWVvdXQuXG4gIHRpbWVyRnVuYyA9IGZ1bmN0aW9uICgpIHtcbiAgICBzZXRUaW1lb3V0KGZsdXNoQ2FsbGJhY2tzLCAwKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gbmV4dFRpY2sgKGNiLCBjdHgpIHtcbiAgdmFyIF9yZXNvbHZlO1xuICBjYWxsYmFja3MucHVzaChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGNiKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjYi5jYWxsKGN0eCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGhhbmRsZUVycm9yKGUsIGN0eCwgJ25leHRUaWNrJyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChfcmVzb2x2ZSkge1xuICAgICAgX3Jlc29sdmUoY3R4KTtcbiAgICB9XG4gIH0pO1xuICBpZiAoIXBlbmRpbmcpIHtcbiAgICBwZW5kaW5nID0gdHJ1ZTtcbiAgICB0aW1lckZ1bmMoKTtcbiAgfVxuICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgaWYgKCFjYiAmJiB0eXBlb2YgUHJvbWlzZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgIF9yZXNvbHZlID0gcmVzb2x2ZTtcbiAgICB9KVxuICB9XG59XG5cbi8qICAqL1xuXG4vKiBub3QgdHlwZSBjaGVja2luZyB0aGlzIGZpbGUgYmVjYXVzZSBmbG93IGRvZXNuJ3QgcGxheSB3ZWxsIHdpdGggUHJveHkgKi9cblxudmFyIGluaXRQcm94eTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIGFsbG93ZWRHbG9iYWxzID0gbWFrZU1hcChcbiAgICAnSW5maW5pdHksdW5kZWZpbmVkLE5hTixpc0Zpbml0ZSxpc05hTiwnICtcbiAgICAncGFyc2VGbG9hdCxwYXJzZUludCxkZWNvZGVVUkksZGVjb2RlVVJJQ29tcG9uZW50LGVuY29kZVVSSSxlbmNvZGVVUklDb21wb25lbnQsJyArXG4gICAgJ01hdGgsTnVtYmVyLERhdGUsQXJyYXksT2JqZWN0LEJvb2xlYW4sU3RyaW5nLFJlZ0V4cCxNYXAsU2V0LEpTT04sSW50bCxCaWdJbnQsJyArXG4gICAgJ3JlcXVpcmUnIC8vIGZvciBXZWJwYWNrL0Jyb3dzZXJpZnlcbiAgKTtcblxuICB2YXIgd2Fybk5vblByZXNlbnQgPSBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHtcbiAgICB3YXJuKFxuICAgICAgXCJQcm9wZXJ0eSBvciBtZXRob2QgXFxcIlwiICsga2V5ICsgXCJcXFwiIGlzIG5vdCBkZWZpbmVkIG9uIHRoZSBpbnN0YW5jZSBidXQgXCIgK1xuICAgICAgJ3JlZmVyZW5jZWQgZHVyaW5nIHJlbmRlci4gTWFrZSBzdXJlIHRoYXQgdGhpcyBwcm9wZXJ0eSBpcyByZWFjdGl2ZSwgJyArXG4gICAgICAnZWl0aGVyIGluIHRoZSBkYXRhIG9wdGlvbiwgb3IgZm9yIGNsYXNzLWJhc2VkIGNvbXBvbmVudHMsIGJ5ICcgK1xuICAgICAgJ2luaXRpYWxpemluZyB0aGUgcHJvcGVydHkuICcgK1xuICAgICAgJ1NlZTogaHR0cHM6Ly92dWVqcy5vcmcvdjIvZ3VpZGUvcmVhY3Rpdml0eS5odG1sI0RlY2xhcmluZy1SZWFjdGl2ZS1Qcm9wZXJ0aWVzLicsXG4gICAgICB0YXJnZXRcbiAgICApO1xuICB9O1xuXG4gIHZhciB3YXJuUmVzZXJ2ZWRQcmVmaXggPSBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHtcbiAgICB3YXJuKFxuICAgICAgXCJQcm9wZXJ0eSBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgbXVzdCBiZSBhY2Nlc3NlZCB3aXRoIFxcXCIkZGF0YS5cIiArIGtleSArIFwiXFxcIiBiZWNhdXNlIFwiICtcbiAgICAgICdwcm9wZXJ0aWVzIHN0YXJ0aW5nIHdpdGggXCIkXCIgb3IgXCJfXCIgYXJlIG5vdCBwcm94aWVkIGluIHRoZSBWdWUgaW5zdGFuY2UgdG8gJyArXG4gICAgICAncHJldmVudCBjb25mbGljdHMgd2l0aCBWdWUgaW50ZXJuYWxzLiAnICtcbiAgICAgICdTZWU6IGh0dHBzOi8vdnVlanMub3JnL3YyL2FwaS8jZGF0YScsXG4gICAgICB0YXJnZXRcbiAgICApO1xuICB9O1xuXG4gIHZhciBoYXNQcm94eSA9XG4gICAgdHlwZW9mIFByb3h5ICE9PSAndW5kZWZpbmVkJyAmJiBpc05hdGl2ZShQcm94eSk7XG5cbiAgaWYgKGhhc1Byb3h5KSB7XG4gICAgdmFyIGlzQnVpbHRJbk1vZGlmaWVyID0gbWFrZU1hcCgnc3RvcCxwcmV2ZW50LHNlbGYsY3RybCxzaGlmdCxhbHQsbWV0YSxleGFjdCcpO1xuICAgIGNvbmZpZy5rZXlDb2RlcyA9IG5ldyBQcm94eShjb25maWcua2V5Q29kZXMsIHtcbiAgICAgIHNldDogZnVuY3Rpb24gc2V0ICh0YXJnZXQsIGtleSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKGlzQnVpbHRJbk1vZGlmaWVyKGtleSkpIHtcbiAgICAgICAgICB3YXJuKChcIkF2b2lkIG92ZXJ3cml0aW5nIGJ1aWx0LWluIG1vZGlmaWVyIGluIGNvbmZpZy5rZXlDb2RlczogLlwiICsga2V5KSk7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFyZ2V0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB2YXIgaGFzSGFuZGxlciA9IHtcbiAgICBoYXM6IGZ1bmN0aW9uIGhhcyAodGFyZ2V0LCBrZXkpIHtcbiAgICAgIHZhciBoYXMgPSBrZXkgaW4gdGFyZ2V0O1xuICAgICAgdmFyIGlzQWxsb3dlZCA9IGFsbG93ZWRHbG9iYWxzKGtleSkgfHxcbiAgICAgICAgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnICYmIGtleS5jaGFyQXQoMCkgPT09ICdfJyAmJiAhKGtleSBpbiB0YXJnZXQuJGRhdGEpKTtcbiAgICAgIGlmICghaGFzICYmICFpc0FsbG93ZWQpIHtcbiAgICAgICAgaWYgKGtleSBpbiB0YXJnZXQuJGRhdGEpIHsgd2FyblJlc2VydmVkUHJlZml4KHRhcmdldCwga2V5KTsgfVxuICAgICAgICBlbHNlIHsgd2Fybk5vblByZXNlbnQodGFyZ2V0LCBrZXkpOyB9XG4gICAgICB9XG4gICAgICByZXR1cm4gaGFzIHx8ICFpc0FsbG93ZWRcbiAgICB9XG4gIH07XG5cbiAgdmFyIGdldEhhbmRsZXIgPSB7XG4gICAgZ2V0OiBmdW5jdGlvbiBnZXQgKHRhcmdldCwga2V5KSB7XG4gICAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycgJiYgIShrZXkgaW4gdGFyZ2V0KSkge1xuICAgICAgICBpZiAoa2V5IGluIHRhcmdldC4kZGF0YSkgeyB3YXJuUmVzZXJ2ZWRQcmVmaXgodGFyZ2V0LCBrZXkpOyB9XG4gICAgICAgIGVsc2UgeyB3YXJuTm9uUHJlc2VudCh0YXJnZXQsIGtleSk7IH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0YXJnZXRba2V5XVxuICAgIH1cbiAgfTtcblxuICBpbml0UHJveHkgPSBmdW5jdGlvbiBpbml0UHJveHkgKHZtKSB7XG4gICAgaWYgKGhhc1Byb3h5KSB7XG4gICAgICAvLyBkZXRlcm1pbmUgd2hpY2ggcHJveHkgaGFuZGxlciB0byB1c2VcbiAgICAgIHZhciBvcHRpb25zID0gdm0uJG9wdGlvbnM7XG4gICAgICB2YXIgaGFuZGxlcnMgPSBvcHRpb25zLnJlbmRlciAmJiBvcHRpb25zLnJlbmRlci5fd2l0aFN0cmlwcGVkXG4gICAgICAgID8gZ2V0SGFuZGxlclxuICAgICAgICA6IGhhc0hhbmRsZXI7XG4gICAgICB2bS5fcmVuZGVyUHJveHkgPSBuZXcgUHJveHkodm0sIGhhbmRsZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdm0uX3JlbmRlclByb3h5ID0gdm07XG4gICAgfVxuICB9O1xufVxuXG4vKiAgKi9cblxudmFyIHNlZW5PYmplY3RzID0gbmV3IF9TZXQoKTtcblxuLyoqXG4gKiBSZWN1cnNpdmVseSB0cmF2ZXJzZSBhbiBvYmplY3QgdG8gZXZva2UgYWxsIGNvbnZlcnRlZFxuICogZ2V0dGVycywgc28gdGhhdCBldmVyeSBuZXN0ZWQgcHJvcGVydHkgaW5zaWRlIHRoZSBvYmplY3RcbiAqIGlzIGNvbGxlY3RlZCBhcyBhIFwiZGVlcFwiIGRlcGVuZGVuY3kuXG4gKi9cbmZ1bmN0aW9uIHRyYXZlcnNlICh2YWwpIHtcbiAgX3RyYXZlcnNlKHZhbCwgc2Vlbk9iamVjdHMpO1xuICBzZWVuT2JqZWN0cy5jbGVhcigpO1xufVxuXG5mdW5jdGlvbiBfdHJhdmVyc2UgKHZhbCwgc2Vlbikge1xuICB2YXIgaSwga2V5cztcbiAgdmFyIGlzQSA9IEFycmF5LmlzQXJyYXkodmFsKTtcbiAgaWYgKCghaXNBICYmICFpc09iamVjdCh2YWwpKSB8fCBPYmplY3QuaXNGcm96ZW4odmFsKSB8fCB2YWwgaW5zdGFuY2VvZiBWTm9kZSkge1xuICAgIHJldHVyblxuICB9XG4gIGlmICh2YWwuX19vYl9fKSB7XG4gICAgdmFyIGRlcElkID0gdmFsLl9fb2JfXy5kZXAuaWQ7XG4gICAgaWYgKHNlZW4uaGFzKGRlcElkKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHNlZW4uYWRkKGRlcElkKTtcbiAgfVxuICBpZiAoaXNBKSB7XG4gICAgaSA9IHZhbC5sZW5ndGg7XG4gICAgd2hpbGUgKGktLSkgeyBfdHJhdmVyc2UodmFsW2ldLCBzZWVuKTsgfVxuICB9IGVsc2Uge1xuICAgIGtleXMgPSBPYmplY3Qua2V5cyh2YWwpO1xuICAgIGkgPSBrZXlzLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7IF90cmF2ZXJzZSh2YWxba2V5c1tpXV0sIHNlZW4pOyB9XG4gIH1cbn1cblxudmFyIG1hcms7XG52YXIgbWVhc3VyZTtcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIHBlcmYgPSBpbkJyb3dzZXIgJiYgd2luZG93LnBlcmZvcm1hbmNlO1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKFxuICAgIHBlcmYgJiZcbiAgICBwZXJmLm1hcmsgJiZcbiAgICBwZXJmLm1lYXN1cmUgJiZcbiAgICBwZXJmLmNsZWFyTWFya3MgJiZcbiAgICBwZXJmLmNsZWFyTWVhc3VyZXNcbiAgKSB7XG4gICAgbWFyayA9IGZ1bmN0aW9uICh0YWcpIHsgcmV0dXJuIHBlcmYubWFyayh0YWcpOyB9O1xuICAgIG1lYXN1cmUgPSBmdW5jdGlvbiAobmFtZSwgc3RhcnRUYWcsIGVuZFRhZykge1xuICAgICAgcGVyZi5tZWFzdXJlKG5hbWUsIHN0YXJ0VGFnLCBlbmRUYWcpO1xuICAgICAgcGVyZi5jbGVhck1hcmtzKHN0YXJ0VGFnKTtcbiAgICAgIHBlcmYuY2xlYXJNYXJrcyhlbmRUYWcpO1xuICAgICAgLy8gcGVyZi5jbGVhck1lYXN1cmVzKG5hbWUpXG4gICAgfTtcbiAgfVxufVxuXG4vKiAgKi9cblxudmFyIG5vcm1hbGl6ZUV2ZW50ID0gY2FjaGVkKGZ1bmN0aW9uIChuYW1lKSB7XG4gIHZhciBwYXNzaXZlID0gbmFtZS5jaGFyQXQoMCkgPT09ICcmJztcbiAgbmFtZSA9IHBhc3NpdmUgPyBuYW1lLnNsaWNlKDEpIDogbmFtZTtcbiAgdmFyIG9uY2UkJDEgPSBuYW1lLmNoYXJBdCgwKSA9PT0gJ34nOyAvLyBQcmVmaXhlZCBsYXN0LCBjaGVja2VkIGZpcnN0XG4gIG5hbWUgPSBvbmNlJCQxID8gbmFtZS5zbGljZSgxKSA6IG5hbWU7XG4gIHZhciBjYXB0dXJlID0gbmFtZS5jaGFyQXQoMCkgPT09ICchJztcbiAgbmFtZSA9IGNhcHR1cmUgPyBuYW1lLnNsaWNlKDEpIDogbmFtZTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBuYW1lLFxuICAgIG9uY2U6IG9uY2UkJDEsXG4gICAgY2FwdHVyZTogY2FwdHVyZSxcbiAgICBwYXNzaXZlOiBwYXNzaXZlXG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBjcmVhdGVGbkludm9rZXIgKGZucywgdm0pIHtcbiAgZnVuY3Rpb24gaW52b2tlciAoKSB7XG4gICAgdmFyIGFyZ3VtZW50cyQxID0gYXJndW1lbnRzO1xuXG4gICAgdmFyIGZucyA9IGludm9rZXIuZm5zO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGZucykpIHtcbiAgICAgIHZhciBjbG9uZWQgPSBmbnMuc2xpY2UoKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2xvbmVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGludm9rZVdpdGhFcnJvckhhbmRsaW5nKGNsb25lZFtpXSwgbnVsbCwgYXJndW1lbnRzJDEsIHZtLCBcInYtb24gaGFuZGxlclwiKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gcmV0dXJuIGhhbmRsZXIgcmV0dXJuIHZhbHVlIGZvciBzaW5nbGUgaGFuZGxlcnNcbiAgICAgIHJldHVybiBpbnZva2VXaXRoRXJyb3JIYW5kbGluZyhmbnMsIG51bGwsIGFyZ3VtZW50cywgdm0sIFwidi1vbiBoYW5kbGVyXCIpXG4gICAgfVxuICB9XG4gIGludm9rZXIuZm5zID0gZm5zO1xuICByZXR1cm4gaW52b2tlclxufVxuXG5mdW5jdGlvbiB1cGRhdGVMaXN0ZW5lcnMgKFxuICBvbixcbiAgb2xkT24sXG4gIGFkZCxcbiAgcmVtb3ZlJCQxLFxuICBjcmVhdGVPbmNlSGFuZGxlcixcbiAgdm1cbikge1xuICB2YXIgbmFtZSwgZGVmJCQxLCBjdXIsIG9sZCwgZXZlbnQ7XG4gIGZvciAobmFtZSBpbiBvbikge1xuICAgIGRlZiQkMSA9IGN1ciA9IG9uW25hbWVdO1xuICAgIG9sZCA9IG9sZE9uW25hbWVdO1xuICAgIGV2ZW50ID0gbm9ybWFsaXplRXZlbnQobmFtZSk7XG4gICAgaWYgKGlzVW5kZWYoY3VyKSkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuKFxuICAgICAgICBcIkludmFsaWQgaGFuZGxlciBmb3IgZXZlbnQgXFxcIlwiICsgKGV2ZW50Lm5hbWUpICsgXCJcXFwiOiBnb3QgXCIgKyBTdHJpbmcoY3VyKSxcbiAgICAgICAgdm1cbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChpc1VuZGVmKG9sZCkpIHtcbiAgICAgIGlmIChpc1VuZGVmKGN1ci5mbnMpKSB7XG4gICAgICAgIGN1ciA9IG9uW25hbWVdID0gY3JlYXRlRm5JbnZva2VyKGN1ciwgdm0pO1xuICAgICAgfVxuICAgICAgaWYgKGlzVHJ1ZShldmVudC5vbmNlKSkge1xuICAgICAgICBjdXIgPSBvbltuYW1lXSA9IGNyZWF0ZU9uY2VIYW5kbGVyKGV2ZW50Lm5hbWUsIGN1ciwgZXZlbnQuY2FwdHVyZSk7XG4gICAgICB9XG4gICAgICBhZGQoZXZlbnQubmFtZSwgY3VyLCBldmVudC5jYXB0dXJlLCBldmVudC5wYXNzaXZlLCBldmVudC5wYXJhbXMpO1xuICAgIH0gZWxzZSBpZiAoY3VyICE9PSBvbGQpIHtcbiAgICAgIG9sZC5mbnMgPSBjdXI7XG4gICAgICBvbltuYW1lXSA9IG9sZDtcbiAgICB9XG4gIH1cbiAgZm9yIChuYW1lIGluIG9sZE9uKSB7XG4gICAgaWYgKGlzVW5kZWYob25bbmFtZV0pKSB7XG4gICAgICBldmVudCA9IG5vcm1hbGl6ZUV2ZW50KG5hbWUpO1xuICAgICAgcmVtb3ZlJCQxKGV2ZW50Lm5hbWUsIG9sZE9uW25hbWVdLCBldmVudC5jYXB0dXJlKTtcbiAgICB9XG4gIH1cbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIG1lcmdlVk5vZGVIb29rIChkZWYsIGhvb2tLZXksIGhvb2spIHtcbiAgaWYgKGRlZiBpbnN0YW5jZW9mIFZOb2RlKSB7XG4gICAgZGVmID0gZGVmLmRhdGEuaG9vayB8fCAoZGVmLmRhdGEuaG9vayA9IHt9KTtcbiAgfVxuICB2YXIgaW52b2tlcjtcbiAgdmFyIG9sZEhvb2sgPSBkZWZbaG9va0tleV07XG5cbiAgZnVuY3Rpb24gd3JhcHBlZEhvb2sgKCkge1xuICAgIGhvb2suYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAvLyBpbXBvcnRhbnQ6IHJlbW92ZSBtZXJnZWQgaG9vayB0byBlbnN1cmUgaXQncyBjYWxsZWQgb25seSBvbmNlXG4gICAgLy8gYW5kIHByZXZlbnQgbWVtb3J5IGxlYWtcbiAgICByZW1vdmUoaW52b2tlci5mbnMsIHdyYXBwZWRIb29rKTtcbiAgfVxuXG4gIGlmIChpc1VuZGVmKG9sZEhvb2spKSB7XG4gICAgLy8gbm8gZXhpc3RpbmcgaG9va1xuICAgIGludm9rZXIgPSBjcmVhdGVGbkludm9rZXIoW3dyYXBwZWRIb29rXSk7XG4gIH0gZWxzZSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGlzRGVmKG9sZEhvb2suZm5zKSAmJiBpc1RydWUob2xkSG9vay5tZXJnZWQpKSB7XG4gICAgICAvLyBhbHJlYWR5IGEgbWVyZ2VkIGludm9rZXJcbiAgICAgIGludm9rZXIgPSBvbGRIb29rO1xuICAgICAgaW52b2tlci5mbnMucHVzaCh3cmFwcGVkSG9vayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGV4aXN0aW5nIHBsYWluIGhvb2tcbiAgICAgIGludm9rZXIgPSBjcmVhdGVGbkludm9rZXIoW29sZEhvb2ssIHdyYXBwZWRIb29rXSk7XG4gICAgfVxuICB9XG5cbiAgaW52b2tlci5tZXJnZWQgPSB0cnVlO1xuICBkZWZbaG9va0tleV0gPSBpbnZva2VyO1xufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gZXh0cmFjdFByb3BzRnJvbVZOb2RlRGF0YSAoXG4gIGRhdGEsXG4gIEN0b3IsXG4gIHRhZ1xuKSB7XG4gIC8vIHdlIGFyZSBvbmx5IGV4dHJhY3RpbmcgcmF3IHZhbHVlcyBoZXJlLlxuICAvLyB2YWxpZGF0aW9uIGFuZCBkZWZhdWx0IHZhbHVlcyBhcmUgaGFuZGxlZCBpbiB0aGUgY2hpbGRcbiAgLy8gY29tcG9uZW50IGl0c2VsZi5cbiAgdmFyIHByb3BPcHRpb25zID0gQ3Rvci5vcHRpb25zLnByb3BzO1xuICBpZiAoaXNVbmRlZihwcm9wT3B0aW9ucykpIHtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIgcmVzID0ge307XG4gIHZhciBhdHRycyA9IGRhdGEuYXR0cnM7XG4gIHZhciBwcm9wcyA9IGRhdGEucHJvcHM7XG4gIGlmIChpc0RlZihhdHRycykgfHwgaXNEZWYocHJvcHMpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIHByb3BPcHRpb25zKSB7XG4gICAgICB2YXIgYWx0S2V5ID0gaHlwaGVuYXRlKGtleSk7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICB2YXIga2V5SW5Mb3dlckNhc2UgPSBrZXkudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGtleSAhPT0ga2V5SW5Mb3dlckNhc2UgJiZcbiAgICAgICAgICBhdHRycyAmJiBoYXNPd24oYXR0cnMsIGtleUluTG93ZXJDYXNlKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aXAoXG4gICAgICAgICAgICBcIlByb3AgXFxcIlwiICsga2V5SW5Mb3dlckNhc2UgKyBcIlxcXCIgaXMgcGFzc2VkIHRvIGNvbXBvbmVudCBcIiArXG4gICAgICAgICAgICAoZm9ybWF0Q29tcG9uZW50TmFtZSh0YWcgfHwgQ3RvcikpICsgXCIsIGJ1dCB0aGUgZGVjbGFyZWQgcHJvcCBuYW1lIGlzXCIgK1xuICAgICAgICAgICAgXCIgXFxcIlwiICsga2V5ICsgXCJcXFwiLiBcIiArXG4gICAgICAgICAgICBcIk5vdGUgdGhhdCBIVE1MIGF0dHJpYnV0ZXMgYXJlIGNhc2UtaW5zZW5zaXRpdmUgYW5kIGNhbWVsQ2FzZWQgXCIgK1xuICAgICAgICAgICAgXCJwcm9wcyBuZWVkIHRvIHVzZSB0aGVpciBrZWJhYi1jYXNlIGVxdWl2YWxlbnRzIHdoZW4gdXNpbmcgaW4tRE9NIFwiICtcbiAgICAgICAgICAgIFwidGVtcGxhdGVzLiBZb3Ugc2hvdWxkIHByb2JhYmx5IHVzZSBcXFwiXCIgKyBhbHRLZXkgKyBcIlxcXCIgaW5zdGVhZCBvZiBcXFwiXCIgKyBrZXkgKyBcIlxcXCIuXCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjaGVja1Byb3AocmVzLCBwcm9wcywga2V5LCBhbHRLZXksIHRydWUpIHx8XG4gICAgICBjaGVja1Byb3AocmVzLCBhdHRycywga2V5LCBhbHRLZXksIGZhbHNlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBjaGVja1Byb3AgKFxuICByZXMsXG4gIGhhc2gsXG4gIGtleSxcbiAgYWx0S2V5LFxuICBwcmVzZXJ2ZVxuKSB7XG4gIGlmIChpc0RlZihoYXNoKSkge1xuICAgIGlmIChoYXNPd24oaGFzaCwga2V5KSkge1xuICAgICAgcmVzW2tleV0gPSBoYXNoW2tleV07XG4gICAgICBpZiAoIXByZXNlcnZlKSB7XG4gICAgICAgIGRlbGV0ZSBoYXNoW2tleV07XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gZWxzZSBpZiAoaGFzT3duKGhhc2gsIGFsdEtleSkpIHtcbiAgICAgIHJlc1trZXldID0gaGFzaFthbHRLZXldO1xuICAgICAgaWYgKCFwcmVzZXJ2ZSkge1xuICAgICAgICBkZWxldGUgaGFzaFthbHRLZXldO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8qICAqL1xuXG4vLyBUaGUgdGVtcGxhdGUgY29tcGlsZXIgYXR0ZW1wdHMgdG8gbWluaW1pemUgdGhlIG5lZWQgZm9yIG5vcm1hbGl6YXRpb24gYnlcbi8vIHN0YXRpY2FsbHkgYW5hbHl6aW5nIHRoZSB0ZW1wbGF0ZSBhdCBjb21waWxlIHRpbWUuXG4vL1xuLy8gRm9yIHBsYWluIEhUTUwgbWFya3VwLCBub3JtYWxpemF0aW9uIGNhbiBiZSBjb21wbGV0ZWx5IHNraXBwZWQgYmVjYXVzZSB0aGVcbi8vIGdlbmVyYXRlZCByZW5kZXIgZnVuY3Rpb24gaXMgZ3VhcmFudGVlZCB0byByZXR1cm4gQXJyYXk8Vk5vZGU+LiBUaGVyZSBhcmVcbi8vIHR3byBjYXNlcyB3aGVyZSBleHRyYSBub3JtYWxpemF0aW9uIGlzIG5lZWRlZDpcblxuLy8gMS4gV2hlbiB0aGUgY2hpbGRyZW4gY29udGFpbnMgY29tcG9uZW50cyAtIGJlY2F1c2UgYSBmdW5jdGlvbmFsIGNvbXBvbmVudFxuLy8gbWF5IHJldHVybiBhbiBBcnJheSBpbnN0ZWFkIG9mIGEgc2luZ2xlIHJvb3QuIEluIHRoaXMgY2FzZSwganVzdCBhIHNpbXBsZVxuLy8gbm9ybWFsaXphdGlvbiBpcyBuZWVkZWQgLSBpZiBhbnkgY2hpbGQgaXMgYW4gQXJyYXksIHdlIGZsYXR0ZW4gdGhlIHdob2xlXG4vLyB0aGluZyB3aXRoIEFycmF5LnByb3RvdHlwZS5jb25jYXQuIEl0IGlzIGd1YXJhbnRlZWQgdG8gYmUgb25seSAxLWxldmVsIGRlZXBcbi8vIGJlY2F1c2UgZnVuY3Rpb25hbCBjb21wb25lbnRzIGFscmVhZHkgbm9ybWFsaXplIHRoZWlyIG93biBjaGlsZHJlbi5cbmZ1bmN0aW9uIHNpbXBsZU5vcm1hbGl6ZUNoaWxkcmVuIChjaGlsZHJlbikge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW5baV0pKSB7XG4gICAgICByZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSwgY2hpbGRyZW4pXG4gICAgfVxuICB9XG4gIHJldHVybiBjaGlsZHJlblxufVxuXG4vLyAyLiBXaGVuIHRoZSBjaGlsZHJlbiBjb250YWlucyBjb25zdHJ1Y3RzIHRoYXQgYWx3YXlzIGdlbmVyYXRlZCBuZXN0ZWQgQXJyYXlzLFxuLy8gZS5nLiA8dGVtcGxhdGU+LCA8c2xvdD4sIHYtZm9yLCBvciB3aGVuIHRoZSBjaGlsZHJlbiBpcyBwcm92aWRlZCBieSB1c2VyXG4vLyB3aXRoIGhhbmQtd3JpdHRlbiByZW5kZXIgZnVuY3Rpb25zIC8gSlNYLiBJbiBzdWNoIGNhc2VzIGEgZnVsbCBub3JtYWxpemF0aW9uXG4vLyBpcyBuZWVkZWQgdG8gY2F0ZXIgdG8gYWxsIHBvc3NpYmxlIHR5cGVzIG9mIGNoaWxkcmVuIHZhbHVlcy5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUNoaWxkcmVuIChjaGlsZHJlbikge1xuICByZXR1cm4gaXNQcmltaXRpdmUoY2hpbGRyZW4pXG4gICAgPyBbY3JlYXRlVGV4dFZOb2RlKGNoaWxkcmVuKV1cbiAgICA6IEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pXG4gICAgICA/IG5vcm1hbGl6ZUFycmF5Q2hpbGRyZW4oY2hpbGRyZW4pXG4gICAgICA6IHVuZGVmaW5lZFxufVxuXG5mdW5jdGlvbiBpc1RleHROb2RlIChub2RlKSB7XG4gIHJldHVybiBpc0RlZihub2RlKSAmJiBpc0RlZihub2RlLnRleHQpICYmIGlzRmFsc2Uobm9kZS5pc0NvbW1lbnQpXG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUFycmF5Q2hpbGRyZW4gKGNoaWxkcmVuLCBuZXN0ZWRJbmRleCkge1xuICB2YXIgcmVzID0gW107XG4gIHZhciBpLCBjLCBsYXN0SW5kZXgsIGxhc3Q7XG4gIGZvciAoaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgIGMgPSBjaGlsZHJlbltpXTtcbiAgICBpZiAoaXNVbmRlZihjKSB8fCB0eXBlb2YgYyA9PT0gJ2Jvb2xlYW4nKSB7IGNvbnRpbnVlIH1cbiAgICBsYXN0SW5kZXggPSByZXMubGVuZ3RoIC0gMTtcbiAgICBsYXN0ID0gcmVzW2xhc3RJbmRleF07XG4gICAgLy8gIG5lc3RlZFxuICAgIGlmIChBcnJheS5pc0FycmF5KGMpKSB7XG4gICAgICBpZiAoYy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGMgPSBub3JtYWxpemVBcnJheUNoaWxkcmVuKGMsICgobmVzdGVkSW5kZXggfHwgJycpICsgXCJfXCIgKyBpKSk7XG4gICAgICAgIC8vIG1lcmdlIGFkamFjZW50IHRleHQgbm9kZXNcbiAgICAgICAgaWYgKGlzVGV4dE5vZGUoY1swXSkgJiYgaXNUZXh0Tm9kZShsYXN0KSkge1xuICAgICAgICAgIHJlc1tsYXN0SW5kZXhdID0gY3JlYXRlVGV4dFZOb2RlKGxhc3QudGV4dCArIChjWzBdKS50ZXh0KTtcbiAgICAgICAgICBjLnNoaWZ0KCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnB1c2guYXBwbHkocmVzLCBjKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzUHJpbWl0aXZlKGMpKSB7XG4gICAgICBpZiAoaXNUZXh0Tm9kZShsYXN0KSkge1xuICAgICAgICAvLyBtZXJnZSBhZGphY2VudCB0ZXh0IG5vZGVzXG4gICAgICAgIC8vIHRoaXMgaXMgbmVjZXNzYXJ5IGZvciBTU1IgaHlkcmF0aW9uIGJlY2F1c2UgdGV4dCBub2RlcyBhcmVcbiAgICAgICAgLy8gZXNzZW50aWFsbHkgbWVyZ2VkIHdoZW4gcmVuZGVyZWQgdG8gSFRNTCBzdHJpbmdzXG4gICAgICAgIHJlc1tsYXN0SW5kZXhdID0gY3JlYXRlVGV4dFZOb2RlKGxhc3QudGV4dCArIGMpO1xuICAgICAgfSBlbHNlIGlmIChjICE9PSAnJykge1xuICAgICAgICAvLyBjb252ZXJ0IHByaW1pdGl2ZSB0byB2bm9kZVxuICAgICAgICByZXMucHVzaChjcmVhdGVUZXh0Vk5vZGUoYykpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaXNUZXh0Tm9kZShjKSAmJiBpc1RleHROb2RlKGxhc3QpKSB7XG4gICAgICAgIC8vIG1lcmdlIGFkamFjZW50IHRleHQgbm9kZXNcbiAgICAgICAgcmVzW2xhc3RJbmRleF0gPSBjcmVhdGVUZXh0Vk5vZGUobGFzdC50ZXh0ICsgYy50ZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGRlZmF1bHQga2V5IGZvciBuZXN0ZWQgYXJyYXkgY2hpbGRyZW4gKGxpa2VseSBnZW5lcmF0ZWQgYnkgdi1mb3IpXG4gICAgICAgIGlmIChpc1RydWUoY2hpbGRyZW4uX2lzVkxpc3QpICYmXG4gICAgICAgICAgaXNEZWYoYy50YWcpICYmXG4gICAgICAgICAgaXNVbmRlZihjLmtleSkgJiZcbiAgICAgICAgICBpc0RlZihuZXN0ZWRJbmRleCkpIHtcbiAgICAgICAgICBjLmtleSA9IFwiX192bGlzdFwiICsgbmVzdGVkSW5kZXggKyBcIl9cIiArIGkgKyBcIl9fXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnB1c2goYyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGluaXRQcm92aWRlICh2bSkge1xuICB2YXIgcHJvdmlkZSA9IHZtLiRvcHRpb25zLnByb3ZpZGU7XG4gIGlmIChwcm92aWRlKSB7XG4gICAgdm0uX3Byb3ZpZGVkID0gdHlwZW9mIHByb3ZpZGUgPT09ICdmdW5jdGlvbidcbiAgICAgID8gcHJvdmlkZS5jYWxsKHZtKVxuICAgICAgOiBwcm92aWRlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGluaXRJbmplY3Rpb25zICh2bSkge1xuICB2YXIgcmVzdWx0ID0gcmVzb2x2ZUluamVjdCh2bS4kb3B0aW9ucy5pbmplY3QsIHZtKTtcbiAgaWYgKHJlc3VsdCkge1xuICAgIHRvZ2dsZU9ic2VydmluZyhmYWxzZSk7XG4gICAgT2JqZWN0LmtleXMocmVzdWx0KS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBkZWZpbmVSZWFjdGl2ZSQkMSh2bSwga2V5LCByZXN1bHRba2V5XSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHdhcm4oXG4gICAgICAgICAgICBcIkF2b2lkIG11dGF0aW5nIGFuIGluamVjdGVkIHZhbHVlIGRpcmVjdGx5IHNpbmNlIHRoZSBjaGFuZ2VzIHdpbGwgYmUgXCIgK1xuICAgICAgICAgICAgXCJvdmVyd3JpdHRlbiB3aGVuZXZlciB0aGUgcHJvdmlkZWQgY29tcG9uZW50IHJlLXJlbmRlcnMuIFwiICtcbiAgICAgICAgICAgIFwiaW5qZWN0aW9uIGJlaW5nIG11dGF0ZWQ6IFxcXCJcIiArIGtleSArIFwiXFxcIlwiLFxuICAgICAgICAgICAgdm1cbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlZmluZVJlYWN0aXZlJCQxKHZtLCBrZXksIHJlc3VsdFtrZXldKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0b2dnbGVPYnNlcnZpbmcodHJ1ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUluamVjdCAoaW5qZWN0LCB2bSkge1xuICBpZiAoaW5qZWN0KSB7XG4gICAgLy8gaW5qZWN0IGlzIDphbnkgYmVjYXVzZSBmbG93IGlzIG5vdCBzbWFydCBlbm91Z2ggdG8gZmlndXJlIG91dCBjYWNoZWRcbiAgICB2YXIgcmVzdWx0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB2YXIga2V5cyA9IGhhc1N5bWJvbFxuICAgICAgPyBSZWZsZWN0Lm93bktleXMoaW5qZWN0KVxuICAgICAgOiBPYmplY3Qua2V5cyhpbmplY3QpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICAgIC8vICM2NTc0IGluIGNhc2UgdGhlIGluamVjdCBvYmplY3QgaXMgb2JzZXJ2ZWQuLi5cbiAgICAgIGlmIChrZXkgPT09ICdfX29iX18nKSB7IGNvbnRpbnVlIH1cbiAgICAgIHZhciBwcm92aWRlS2V5ID0gaW5qZWN0W2tleV0uZnJvbTtcbiAgICAgIHZhciBzb3VyY2UgPSB2bTtcbiAgICAgIHdoaWxlIChzb3VyY2UpIHtcbiAgICAgICAgaWYgKHNvdXJjZS5fcHJvdmlkZWQgJiYgaGFzT3duKHNvdXJjZS5fcHJvdmlkZWQsIHByb3ZpZGVLZXkpKSB7XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSBzb3VyY2UuX3Byb3ZpZGVkW3Byb3ZpZGVLZXldO1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgc291cmNlID0gc291cmNlLiRwYXJlbnQ7XG4gICAgICB9XG4gICAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgICBpZiAoJ2RlZmF1bHQnIGluIGluamVjdFtrZXldKSB7XG4gICAgICAgICAgdmFyIHByb3ZpZGVEZWZhdWx0ID0gaW5qZWN0W2tleV0uZGVmYXVsdDtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IHR5cGVvZiBwcm92aWRlRGVmYXVsdCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgPyBwcm92aWRlRGVmYXVsdC5jYWxsKHZtKVxuICAgICAgICAgICAgOiBwcm92aWRlRGVmYXVsdDtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgd2FybigoXCJJbmplY3Rpb24gXFxcIlwiICsga2V5ICsgXCJcXFwiIG5vdCBmb3VuZFwiKSwgdm0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxufVxuXG4vKiAgKi9cblxuXG5cbi8qKlxuICogUnVudGltZSBoZWxwZXIgZm9yIHJlc29sdmluZyByYXcgY2hpbGRyZW4gVk5vZGVzIGludG8gYSBzbG90IG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZVNsb3RzIChcbiAgY2hpbGRyZW4sXG4gIGNvbnRleHRcbikge1xuICBpZiAoIWNoaWxkcmVuIHx8ICFjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICByZXR1cm4ge31cbiAgfVxuICB2YXIgc2xvdHMgPSB7fTtcbiAgZm9yICh2YXIgaSA9IDAsIGwgPSBjaGlsZHJlbi5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICB2YXIgY2hpbGQgPSBjaGlsZHJlbltpXTtcbiAgICB2YXIgZGF0YSA9IGNoaWxkLmRhdGE7XG4gICAgLy8gcmVtb3ZlIHNsb3QgYXR0cmlidXRlIGlmIHRoZSBub2RlIGlzIHJlc29sdmVkIGFzIGEgVnVlIHNsb3Qgbm9kZVxuICAgIGlmIChkYXRhICYmIGRhdGEuYXR0cnMgJiYgZGF0YS5hdHRycy5zbG90KSB7XG4gICAgICBkZWxldGUgZGF0YS5hdHRycy5zbG90O1xuICAgIH1cbiAgICAvLyBuYW1lZCBzbG90cyBzaG91bGQgb25seSBiZSByZXNwZWN0ZWQgaWYgdGhlIHZub2RlIHdhcyByZW5kZXJlZCBpbiB0aGVcbiAgICAvLyBzYW1lIGNvbnRleHQuXG4gICAgaWYgKChjaGlsZC5jb250ZXh0ID09PSBjb250ZXh0IHx8IGNoaWxkLmZuQ29udGV4dCA9PT0gY29udGV4dCkgJiZcbiAgICAgIGRhdGEgJiYgZGF0YS5zbG90ICE9IG51bGxcbiAgICApIHtcbiAgICAgIHZhciBuYW1lID0gZGF0YS5zbG90O1xuICAgICAgdmFyIHNsb3QgPSAoc2xvdHNbbmFtZV0gfHwgKHNsb3RzW25hbWVdID0gW10pKTtcbiAgICAgIGlmIChjaGlsZC50YWcgPT09ICd0ZW1wbGF0ZScpIHtcbiAgICAgICAgc2xvdC5wdXNoLmFwcGx5KHNsb3QsIGNoaWxkLmNoaWxkcmVuIHx8IFtdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNsb3QucHVzaChjaGlsZCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIChzbG90cy5kZWZhdWx0IHx8IChzbG90cy5kZWZhdWx0ID0gW10pKS5wdXNoKGNoaWxkKTtcbiAgICB9XG4gIH1cbiAgLy8gaWdub3JlIHNsb3RzIHRoYXQgY29udGFpbnMgb25seSB3aGl0ZXNwYWNlXG4gIGZvciAodmFyIG5hbWUkMSBpbiBzbG90cykge1xuICAgIGlmIChzbG90c1tuYW1lJDFdLmV2ZXJ5KGlzV2hpdGVzcGFjZSkpIHtcbiAgICAgIGRlbGV0ZSBzbG90c1tuYW1lJDFdO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc2xvdHNcbn1cblxuZnVuY3Rpb24gaXNXaGl0ZXNwYWNlIChub2RlKSB7XG4gIHJldHVybiAobm9kZS5pc0NvbW1lbnQgJiYgIW5vZGUuYXN5bmNGYWN0b3J5KSB8fCBub2RlLnRleHQgPT09ICcgJ1xufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gaXNBc3luY1BsYWNlaG9sZGVyIChub2RlKSB7XG4gIHJldHVybiBub2RlLmlzQ29tbWVudCAmJiBub2RlLmFzeW5jRmFjdG9yeVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gbm9ybWFsaXplU2NvcGVkU2xvdHMgKFxuICBzbG90cyxcbiAgbm9ybWFsU2xvdHMsXG4gIHByZXZTbG90c1xuKSB7XG4gIHZhciByZXM7XG4gIHZhciBoYXNOb3JtYWxTbG90cyA9IE9iamVjdC5rZXlzKG5vcm1hbFNsb3RzKS5sZW5ndGggPiAwO1xuICB2YXIgaXNTdGFibGUgPSBzbG90cyA/ICEhc2xvdHMuJHN0YWJsZSA6ICFoYXNOb3JtYWxTbG90cztcbiAgdmFyIGtleSA9IHNsb3RzICYmIHNsb3RzLiRrZXk7XG4gIGlmICghc2xvdHMpIHtcbiAgICByZXMgPSB7fTtcbiAgfSBlbHNlIGlmIChzbG90cy5fbm9ybWFsaXplZCkge1xuICAgIC8vIGZhc3QgcGF0aCAxOiBjaGlsZCBjb21wb25lbnQgcmUtcmVuZGVyIG9ubHksIHBhcmVudCBkaWQgbm90IGNoYW5nZVxuICAgIHJldHVybiBzbG90cy5fbm9ybWFsaXplZFxuICB9IGVsc2UgaWYgKFxuICAgIGlzU3RhYmxlICYmXG4gICAgcHJldlNsb3RzICYmXG4gICAgcHJldlNsb3RzICE9PSBlbXB0eU9iamVjdCAmJlxuICAgIGtleSA9PT0gcHJldlNsb3RzLiRrZXkgJiZcbiAgICAhaGFzTm9ybWFsU2xvdHMgJiZcbiAgICAhcHJldlNsb3RzLiRoYXNOb3JtYWxcbiAgKSB7XG4gICAgLy8gZmFzdCBwYXRoIDI6IHN0YWJsZSBzY29wZWQgc2xvdHMgdy8gbm8gbm9ybWFsIHNsb3RzIHRvIHByb3h5LFxuICAgIC8vIG9ubHkgbmVlZCB0byBub3JtYWxpemUgb25jZVxuICAgIHJldHVybiBwcmV2U2xvdHNcbiAgfSBlbHNlIHtcbiAgICByZXMgPSB7fTtcbiAgICBmb3IgKHZhciBrZXkkMSBpbiBzbG90cykge1xuICAgICAgaWYgKHNsb3RzW2tleSQxXSAmJiBrZXkkMVswXSAhPT0gJyQnKSB7XG4gICAgICAgIHJlc1trZXkkMV0gPSBub3JtYWxpemVTY29wZWRTbG90KG5vcm1hbFNsb3RzLCBrZXkkMSwgc2xvdHNba2V5JDFdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLy8gZXhwb3NlIG5vcm1hbCBzbG90cyBvbiBzY29wZWRTbG90c1xuICBmb3IgKHZhciBrZXkkMiBpbiBub3JtYWxTbG90cykge1xuICAgIGlmICghKGtleSQyIGluIHJlcykpIHtcbiAgICAgIHJlc1trZXkkMl0gPSBwcm94eU5vcm1hbFNsb3Qobm9ybWFsU2xvdHMsIGtleSQyKTtcbiAgICB9XG4gIH1cbiAgLy8gYXZvcmlheiBzZWVtcyB0byBtb2NrIGEgbm9uLWV4dGVuc2libGUgJHNjb3BlZFNsb3RzIG9iamVjdFxuICAvLyBhbmQgd2hlbiB0aGF0IGlzIHBhc3NlZCBkb3duIHRoaXMgd291bGQgY2F1c2UgYW4gZXJyb3JcbiAgaWYgKHNsb3RzICYmIE9iamVjdC5pc0V4dGVuc2libGUoc2xvdHMpKSB7XG4gICAgKHNsb3RzKS5fbm9ybWFsaXplZCA9IHJlcztcbiAgfVxuICBkZWYocmVzLCAnJHN0YWJsZScsIGlzU3RhYmxlKTtcbiAgZGVmKHJlcywgJyRrZXknLCBrZXkpO1xuICBkZWYocmVzLCAnJGhhc05vcm1hbCcsIGhhc05vcm1hbFNsb3RzKTtcbiAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVTY29wZWRTbG90KG5vcm1hbFNsb3RzLCBrZXksIGZuKSB7XG4gIHZhciBub3JtYWxpemVkID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciByZXMgPSBhcmd1bWVudHMubGVuZ3RoID8gZm4uYXBwbHkobnVsbCwgYXJndW1lbnRzKSA6IGZuKHt9KTtcbiAgICByZXMgPSByZXMgJiYgdHlwZW9mIHJlcyA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkocmVzKVxuICAgICAgPyBbcmVzXSAvLyBzaW5nbGUgdm5vZGVcbiAgICAgIDogbm9ybWFsaXplQ2hpbGRyZW4ocmVzKTtcbiAgICB2YXIgdm5vZGUgPSByZXMgJiYgcmVzWzBdO1xuICAgIHJldHVybiByZXMgJiYgKFxuICAgICAgIXZub2RlIHx8XG4gICAgICAocmVzLmxlbmd0aCA9PT0gMSAmJiB2bm9kZS5pc0NvbW1lbnQgJiYgIWlzQXN5bmNQbGFjZWhvbGRlcih2bm9kZSkpIC8vICM5NjU4LCAjMTAzOTFcbiAgICApID8gdW5kZWZpbmVkXG4gICAgICA6IHJlc1xuICB9O1xuICAvLyB0aGlzIGlzIGEgc2xvdCB1c2luZyB0aGUgbmV3IHYtc2xvdCBzeW50YXggd2l0aG91dCBzY29wZS4gYWx0aG91Z2ggaXQgaXNcbiAgLy8gY29tcGlsZWQgYXMgYSBzY29wZWQgc2xvdCwgcmVuZGVyIGZuIHVzZXJzIHdvdWxkIGV4cGVjdCBpdCB0byBiZSBwcmVzZW50XG4gIC8vIG9uIHRoaXMuJHNsb3RzIGJlY2F1c2UgdGhlIHVzYWdlIGlzIHNlbWFudGljYWxseSBhIG5vcm1hbCBzbG90LlxuICBpZiAoZm4ucHJveHkpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobm9ybWFsU2xvdHMsIGtleSwge1xuICAgICAgZ2V0OiBub3JtYWxpemVkLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9XG4gIHJldHVybiBub3JtYWxpemVkXG59XG5cbmZ1bmN0aW9uIHByb3h5Tm9ybWFsU2xvdChzbG90cywga2V5KSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7IHJldHVybiBzbG90c1trZXldOyB9XG59XG5cbi8qICAqL1xuXG4vKipcbiAqIFJ1bnRpbWUgaGVscGVyIGZvciByZW5kZXJpbmcgdi1mb3IgbGlzdHMuXG4gKi9cbmZ1bmN0aW9uIHJlbmRlckxpc3QgKFxuICB2YWwsXG4gIHJlbmRlclxuKSB7XG4gIHZhciByZXQsIGksIGwsIGtleXMsIGtleTtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSB8fCB0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgIHJldCA9IG5ldyBBcnJheSh2YWwubGVuZ3RoKTtcbiAgICBmb3IgKGkgPSAwLCBsID0gdmFsLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgcmV0W2ldID0gcmVuZGVyKHZhbFtpXSwgaSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgcmV0ID0gbmV3IEFycmF5KHZhbCk7XG4gICAgZm9yIChpID0gMDsgaSA8IHZhbDsgaSsrKSB7XG4gICAgICByZXRbaV0gPSByZW5kZXIoaSArIDEsIGkpO1xuICAgIH1cbiAgfSBlbHNlIGlmIChpc09iamVjdCh2YWwpKSB7XG4gICAgaWYgKGhhc1N5bWJvbCAmJiB2YWxbU3ltYm9sLml0ZXJhdG9yXSkge1xuICAgICAgcmV0ID0gW107XG4gICAgICB2YXIgaXRlcmF0b3IgPSB2YWxbU3ltYm9sLml0ZXJhdG9yXSgpO1xuICAgICAgdmFyIHJlc3VsdCA9IGl0ZXJhdG9yLm5leHQoKTtcbiAgICAgIHdoaWxlICghcmVzdWx0LmRvbmUpIHtcbiAgICAgICAgcmV0LnB1c2gocmVuZGVyKHJlc3VsdC52YWx1ZSwgcmV0Lmxlbmd0aCkpO1xuICAgICAgICByZXN1bHQgPSBpdGVyYXRvci5uZXh0KCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGtleXMgPSBPYmplY3Qua2V5cyh2YWwpO1xuICAgICAgcmV0ID0gbmV3IEFycmF5KGtleXMubGVuZ3RoKTtcbiAgICAgIGZvciAoaSA9IDAsIGwgPSBrZXlzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICBrZXkgPSBrZXlzW2ldO1xuICAgICAgICByZXRbaV0gPSByZW5kZXIodmFsW2tleV0sIGtleSwgaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICghaXNEZWYocmV0KSkge1xuICAgIHJldCA9IFtdO1xuICB9XG4gIChyZXQpLl9pc1ZMaXN0ID0gdHJ1ZTtcbiAgcmV0dXJuIHJldFxufVxuXG4vKiAgKi9cblxuLyoqXG4gKiBSdW50aW1lIGhlbHBlciBmb3IgcmVuZGVyaW5nIDxzbG90PlxuICovXG5mdW5jdGlvbiByZW5kZXJTbG90IChcbiAgbmFtZSxcbiAgZmFsbGJhY2tSZW5kZXIsXG4gIHByb3BzLFxuICBiaW5kT2JqZWN0XG4pIHtcbiAgdmFyIHNjb3BlZFNsb3RGbiA9IHRoaXMuJHNjb3BlZFNsb3RzW25hbWVdO1xuICB2YXIgbm9kZXM7XG4gIGlmIChzY29wZWRTbG90Rm4pIHtcbiAgICAvLyBzY29wZWQgc2xvdFxuICAgIHByb3BzID0gcHJvcHMgfHwge307XG4gICAgaWYgKGJpbmRPYmplY3QpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICFpc09iamVjdChiaW5kT2JqZWN0KSkge1xuICAgICAgICB3YXJuKCdzbG90IHYtYmluZCB3aXRob3V0IGFyZ3VtZW50IGV4cGVjdHMgYW4gT2JqZWN0JywgdGhpcyk7XG4gICAgICB9XG4gICAgICBwcm9wcyA9IGV4dGVuZChleHRlbmQoe30sIGJpbmRPYmplY3QpLCBwcm9wcyk7XG4gICAgfVxuICAgIG5vZGVzID1cbiAgICAgIHNjb3BlZFNsb3RGbihwcm9wcykgfHxcbiAgICAgICh0eXBlb2YgZmFsbGJhY2tSZW5kZXIgPT09ICdmdW5jdGlvbicgPyBmYWxsYmFja1JlbmRlcigpIDogZmFsbGJhY2tSZW5kZXIpO1xuICB9IGVsc2Uge1xuICAgIG5vZGVzID1cbiAgICAgIHRoaXMuJHNsb3RzW25hbWVdIHx8XG4gICAgICAodHlwZW9mIGZhbGxiYWNrUmVuZGVyID09PSAnZnVuY3Rpb24nID8gZmFsbGJhY2tSZW5kZXIoKSA6IGZhbGxiYWNrUmVuZGVyKTtcbiAgfVxuXG4gIHZhciB0YXJnZXQgPSBwcm9wcyAmJiBwcm9wcy5zbG90O1xuICBpZiAodGFyZ2V0KSB7XG4gICAgcmV0dXJuIHRoaXMuJGNyZWF0ZUVsZW1lbnQoJ3RlbXBsYXRlJywgeyBzbG90OiB0YXJnZXQgfSwgbm9kZXMpXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5vZGVzXG4gIH1cbn1cblxuLyogICovXG5cbi8qKlxuICogUnVudGltZSBoZWxwZXIgZm9yIHJlc29sdmluZyBmaWx0ZXJzXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVGaWx0ZXIgKGlkKSB7XG4gIHJldHVybiByZXNvbHZlQXNzZXQodGhpcy4kb3B0aW9ucywgJ2ZpbHRlcnMnLCBpZCwgdHJ1ZSkgfHwgaWRlbnRpdHlcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGlzS2V5Tm90TWF0Y2ggKGV4cGVjdCwgYWN0dWFsKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGV4cGVjdCkpIHtcbiAgICByZXR1cm4gZXhwZWN0LmluZGV4T2YoYWN0dWFsKSA9PT0gLTFcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZXhwZWN0ICE9PSBhY3R1YWxcbiAgfVxufVxuXG4vKipcbiAqIFJ1bnRpbWUgaGVscGVyIGZvciBjaGVja2luZyBrZXlDb2RlcyBmcm9tIGNvbmZpZy5cbiAqIGV4cG9zZWQgYXMgVnVlLnByb3RvdHlwZS5fa1xuICogcGFzc2luZyBpbiBldmVudEtleU5hbWUgYXMgbGFzdCBhcmd1bWVudCBzZXBhcmF0ZWx5IGZvciBiYWNrd2FyZHMgY29tcGF0XG4gKi9cbmZ1bmN0aW9uIGNoZWNrS2V5Q29kZXMgKFxuICBldmVudEtleUNvZGUsXG4gIGtleSxcbiAgYnVpbHRJbktleUNvZGUsXG4gIGV2ZW50S2V5TmFtZSxcbiAgYnVpbHRJbktleU5hbWVcbikge1xuICB2YXIgbWFwcGVkS2V5Q29kZSA9IGNvbmZpZy5rZXlDb2Rlc1trZXldIHx8IGJ1aWx0SW5LZXlDb2RlO1xuICBpZiAoYnVpbHRJbktleU5hbWUgJiYgZXZlbnRLZXlOYW1lICYmICFjb25maWcua2V5Q29kZXNba2V5XSkge1xuICAgIHJldHVybiBpc0tleU5vdE1hdGNoKGJ1aWx0SW5LZXlOYW1lLCBldmVudEtleU5hbWUpXG4gIH0gZWxzZSBpZiAobWFwcGVkS2V5Q29kZSkge1xuICAgIHJldHVybiBpc0tleU5vdE1hdGNoKG1hcHBlZEtleUNvZGUsIGV2ZW50S2V5Q29kZSlcbiAgfSBlbHNlIGlmIChldmVudEtleU5hbWUpIHtcbiAgICByZXR1cm4gaHlwaGVuYXRlKGV2ZW50S2V5TmFtZSkgIT09IGtleVxuICB9XG4gIHJldHVybiBldmVudEtleUNvZGUgPT09IHVuZGVmaW5lZFxufVxuXG4vKiAgKi9cblxuLyoqXG4gKiBSdW50aW1lIGhlbHBlciBmb3IgbWVyZ2luZyB2LWJpbmQ9XCJvYmplY3RcIiBpbnRvIGEgVk5vZGUncyBkYXRhLlxuICovXG5mdW5jdGlvbiBiaW5kT2JqZWN0UHJvcHMgKFxuICBkYXRhLFxuICB0YWcsXG4gIHZhbHVlLFxuICBhc1Byb3AsXG4gIGlzU3luY1xuKSB7XG4gIGlmICh2YWx1ZSkge1xuICAgIGlmICghaXNPYmplY3QodmFsdWUpKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAgICd2LWJpbmQgd2l0aG91dCBhcmd1bWVudCBleHBlY3RzIGFuIE9iamVjdCBvciBBcnJheSB2YWx1ZScsXG4gICAgICAgIHRoaXNcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICB2YWx1ZSA9IHRvT2JqZWN0KHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHZhciBoYXNoO1xuICAgICAgdmFyIGxvb3AgPSBmdW5jdGlvbiAoIGtleSApIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGtleSA9PT0gJ2NsYXNzJyB8fFxuICAgICAgICAgIGtleSA9PT0gJ3N0eWxlJyB8fFxuICAgICAgICAgIGlzUmVzZXJ2ZWRBdHRyaWJ1dGUoa2V5KVxuICAgICAgICApIHtcbiAgICAgICAgICBoYXNoID0gZGF0YTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIgdHlwZSA9IGRhdGEuYXR0cnMgJiYgZGF0YS5hdHRycy50eXBlO1xuICAgICAgICAgIGhhc2ggPSBhc1Byb3AgfHwgY29uZmlnLm11c3RVc2VQcm9wKHRhZywgdHlwZSwga2V5KVxuICAgICAgICAgICAgPyBkYXRhLmRvbVByb3BzIHx8IChkYXRhLmRvbVByb3BzID0ge30pXG4gICAgICAgICAgICA6IGRhdGEuYXR0cnMgfHwgKGRhdGEuYXR0cnMgPSB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGNhbWVsaXplZEtleSA9IGNhbWVsaXplKGtleSk7XG4gICAgICAgIHZhciBoeXBoZW5hdGVkS2V5ID0gaHlwaGVuYXRlKGtleSk7XG4gICAgICAgIGlmICghKGNhbWVsaXplZEtleSBpbiBoYXNoKSAmJiAhKGh5cGhlbmF0ZWRLZXkgaW4gaGFzaCkpIHtcbiAgICAgICAgICBoYXNoW2tleV0gPSB2YWx1ZVtrZXldO1xuXG4gICAgICAgICAgaWYgKGlzU3luYykge1xuICAgICAgICAgICAgdmFyIG9uID0gZGF0YS5vbiB8fCAoZGF0YS5vbiA9IHt9KTtcbiAgICAgICAgICAgIG9uWyhcInVwZGF0ZTpcIiArIGtleSldID0gZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICB2YWx1ZVtrZXldID0gJGV2ZW50O1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGZvciAodmFyIGtleSBpbiB2YWx1ZSkgbG9vcCgga2V5ICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBkYXRhXG59XG5cbi8qICAqL1xuXG4vKipcbiAqIFJ1bnRpbWUgaGVscGVyIGZvciByZW5kZXJpbmcgc3RhdGljIHRyZWVzLlxuICovXG5mdW5jdGlvbiByZW5kZXJTdGF0aWMgKFxuICBpbmRleCxcbiAgaXNJbkZvclxuKSB7XG4gIHZhciBjYWNoZWQgPSB0aGlzLl9zdGF0aWNUcmVlcyB8fCAodGhpcy5fc3RhdGljVHJlZXMgPSBbXSk7XG4gIHZhciB0cmVlID0gY2FjaGVkW2luZGV4XTtcbiAgLy8gaWYgaGFzIGFscmVhZHktcmVuZGVyZWQgc3RhdGljIHRyZWUgYW5kIG5vdCBpbnNpZGUgdi1mb3IsXG4gIC8vIHdlIGNhbiByZXVzZSB0aGUgc2FtZSB0cmVlLlxuICBpZiAodHJlZSAmJiAhaXNJbkZvcikge1xuICAgIHJldHVybiB0cmVlXG4gIH1cbiAgLy8gb3RoZXJ3aXNlLCByZW5kZXIgYSBmcmVzaCB0cmVlLlxuICB0cmVlID0gY2FjaGVkW2luZGV4XSA9IHRoaXMuJG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zW2luZGV4XS5jYWxsKFxuICAgIHRoaXMuX3JlbmRlclByb3h5LFxuICAgIG51bGwsXG4gICAgdGhpcyAvLyBmb3IgcmVuZGVyIGZucyBnZW5lcmF0ZWQgZm9yIGZ1bmN0aW9uYWwgY29tcG9uZW50IHRlbXBsYXRlc1xuICApO1xuICBtYXJrU3RhdGljKHRyZWUsIChcIl9fc3RhdGljX19cIiArIGluZGV4KSwgZmFsc2UpO1xuICByZXR1cm4gdHJlZVxufVxuXG4vKipcbiAqIFJ1bnRpbWUgaGVscGVyIGZvciB2LW9uY2UuXG4gKiBFZmZlY3RpdmVseSBpdCBtZWFucyBtYXJraW5nIHRoZSBub2RlIGFzIHN0YXRpYyB3aXRoIGEgdW5pcXVlIGtleS5cbiAqL1xuZnVuY3Rpb24gbWFya09uY2UgKFxuICB0cmVlLFxuICBpbmRleCxcbiAga2V5XG4pIHtcbiAgbWFya1N0YXRpYyh0cmVlLCAoXCJfX29uY2VfX1wiICsgaW5kZXggKyAoa2V5ID8gKFwiX1wiICsga2V5KSA6IFwiXCIpKSwgdHJ1ZSk7XG4gIHJldHVybiB0cmVlXG59XG5cbmZ1bmN0aW9uIG1hcmtTdGF0aWMgKFxuICB0cmVlLFxuICBrZXksXG4gIGlzT25jZVxuKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHRyZWUpKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0cmVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAodHJlZVtpXSAmJiB0eXBlb2YgdHJlZVtpXSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgbWFya1N0YXRpY05vZGUodHJlZVtpXSwgKGtleSArIFwiX1wiICsgaSksIGlzT25jZSk7XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG1hcmtTdGF0aWNOb2RlKHRyZWUsIGtleSwgaXNPbmNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXJrU3RhdGljTm9kZSAobm9kZSwga2V5LCBpc09uY2UpIHtcbiAgbm9kZS5pc1N0YXRpYyA9IHRydWU7XG4gIG5vZGUua2V5ID0ga2V5O1xuICBub2RlLmlzT25jZSA9IGlzT25jZTtcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGJpbmRPYmplY3RMaXN0ZW5lcnMgKGRhdGEsIHZhbHVlKSB7XG4gIGlmICh2YWx1ZSkge1xuICAgIGlmICghaXNQbGFpbk9iamVjdCh2YWx1ZSkpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgICAgJ3Ytb24gd2l0aG91dCBhcmd1bWVudCBleHBlY3RzIGFuIE9iamVjdCB2YWx1ZScsXG4gICAgICAgIHRoaXNcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBvbiA9IGRhdGEub24gPSBkYXRhLm9uID8gZXh0ZW5kKHt9LCBkYXRhLm9uKSA6IHt9O1xuICAgICAgZm9yICh2YXIga2V5IGluIHZhbHVlKSB7XG4gICAgICAgIHZhciBleGlzdGluZyA9IG9uW2tleV07XG4gICAgICAgIHZhciBvdXJzID0gdmFsdWVba2V5XTtcbiAgICAgICAgb25ba2V5XSA9IGV4aXN0aW5nID8gW10uY29uY2F0KGV4aXN0aW5nLCBvdXJzKSA6IG91cnM7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBkYXRhXG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiByZXNvbHZlU2NvcGVkU2xvdHMgKFxuICBmbnMsIC8vIHNlZSBmbG93L3Zub2RlXG4gIHJlcyxcbiAgLy8gdGhlIGZvbGxvd2luZyBhcmUgYWRkZWQgaW4gMi42XG4gIGhhc0R5bmFtaWNLZXlzLFxuICBjb250ZW50SGFzaEtleVxuKSB7XG4gIHJlcyA9IHJlcyB8fCB7ICRzdGFibGU6ICFoYXNEeW5hbWljS2V5cyB9O1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGZucy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBzbG90ID0gZm5zW2ldO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHNsb3QpKSB7XG4gICAgICByZXNvbHZlU2NvcGVkU2xvdHMoc2xvdCwgcmVzLCBoYXNEeW5hbWljS2V5cyk7XG4gICAgfSBlbHNlIGlmIChzbG90KSB7XG4gICAgICAvLyBtYXJrZXIgZm9yIHJldmVyc2UgcHJveHlpbmcgdi1zbG90IHdpdGhvdXQgc2NvcGUgb24gdGhpcy4kc2xvdHNcbiAgICAgIGlmIChzbG90LnByb3h5KSB7XG4gICAgICAgIHNsb3QuZm4ucHJveHkgPSB0cnVlO1xuICAgICAgfVxuICAgICAgcmVzW3Nsb3Qua2V5XSA9IHNsb3QuZm47XG4gICAgfVxuICB9XG4gIGlmIChjb250ZW50SGFzaEtleSkge1xuICAgIChyZXMpLiRrZXkgPSBjb250ZW50SGFzaEtleTtcbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBiaW5kRHluYW1pY0tleXMgKGJhc2VPYmosIHZhbHVlcykge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkgKz0gMikge1xuICAgIHZhciBrZXkgPSB2YWx1ZXNbaV07XG4gICAgaWYgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnICYmIGtleSkge1xuICAgICAgYmFzZU9ialt2YWx1ZXNbaV1dID0gdmFsdWVzW2kgKyAxXTtcbiAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYga2V5ICE9PSAnJyAmJiBrZXkgIT09IG51bGwpIHtcbiAgICAgIC8vIG51bGwgaXMgYSBzcGVjaWFsIHZhbHVlIGZvciBleHBsaWNpdGx5IHJlbW92aW5nIGEgYmluZGluZ1xuICAgICAgd2FybihcbiAgICAgICAgKFwiSW52YWxpZCB2YWx1ZSBmb3IgZHluYW1pYyBkaXJlY3RpdmUgYXJndW1lbnQgKGV4cGVjdGVkIHN0cmluZyBvciBudWxsKTogXCIgKyBrZXkpLFxuICAgICAgICB0aGlzXG4gICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYmFzZU9ialxufVxuXG4vLyBoZWxwZXIgdG8gZHluYW1pY2FsbHkgYXBwZW5kIG1vZGlmaWVyIHJ1bnRpbWUgbWFya2VycyB0byBldmVudCBuYW1lcy5cbi8vIGVuc3VyZSBvbmx5IGFwcGVuZCB3aGVuIHZhbHVlIGlzIGFscmVhZHkgc3RyaW5nLCBvdGhlcndpc2UgaXQgd2lsbCBiZSBjYXN0XG4vLyB0byBzdHJpbmcgYW5kIGNhdXNlIHRoZSB0eXBlIGNoZWNrIHRvIG1pc3MuXG5mdW5jdGlvbiBwcmVwZW5kTW9kaWZpZXIgKHZhbHVlLCBzeW1ib2wpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyBzeW1ib2wgKyB2YWx1ZSA6IHZhbHVlXG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpbnN0YWxsUmVuZGVySGVscGVycyAodGFyZ2V0KSB7XG4gIHRhcmdldC5fbyA9IG1hcmtPbmNlO1xuICB0YXJnZXQuX24gPSB0b051bWJlcjtcbiAgdGFyZ2V0Ll9zID0gdG9TdHJpbmc7XG4gIHRhcmdldC5fbCA9IHJlbmRlckxpc3Q7XG4gIHRhcmdldC5fdCA9IHJlbmRlclNsb3Q7XG4gIHRhcmdldC5fcSA9IGxvb3NlRXF1YWw7XG4gIHRhcmdldC5faSA9IGxvb3NlSW5kZXhPZjtcbiAgdGFyZ2V0Ll9tID0gcmVuZGVyU3RhdGljO1xuICB0YXJnZXQuX2YgPSByZXNvbHZlRmlsdGVyO1xuICB0YXJnZXQuX2sgPSBjaGVja0tleUNvZGVzO1xuICB0YXJnZXQuX2IgPSBiaW5kT2JqZWN0UHJvcHM7XG4gIHRhcmdldC5fdiA9IGNyZWF0ZVRleHRWTm9kZTtcbiAgdGFyZ2V0Ll9lID0gY3JlYXRlRW1wdHlWTm9kZTtcbiAgdGFyZ2V0Ll91ID0gcmVzb2x2ZVNjb3BlZFNsb3RzO1xuICB0YXJnZXQuX2cgPSBiaW5kT2JqZWN0TGlzdGVuZXJzO1xuICB0YXJnZXQuX2QgPSBiaW5kRHluYW1pY0tleXM7XG4gIHRhcmdldC5fcCA9IHByZXBlbmRNb2RpZmllcjtcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIEZ1bmN0aW9uYWxSZW5kZXJDb250ZXh0IChcbiAgZGF0YSxcbiAgcHJvcHMsXG4gIGNoaWxkcmVuLFxuICBwYXJlbnQsXG4gIEN0b3Jcbikge1xuICB2YXIgdGhpcyQxID0gdGhpcztcblxuICB2YXIgb3B0aW9ucyA9IEN0b3Iub3B0aW9ucztcbiAgLy8gZW5zdXJlIHRoZSBjcmVhdGVFbGVtZW50IGZ1bmN0aW9uIGluIGZ1bmN0aW9uYWwgY29tcG9uZW50c1xuICAvLyBnZXRzIGEgdW5pcXVlIGNvbnRleHQgLSB0aGlzIGlzIG5lY2Vzc2FyeSBmb3IgY29ycmVjdCBuYW1lZCBzbG90IGNoZWNrXG4gIHZhciBjb250ZXh0Vm07XG4gIGlmIChoYXNPd24ocGFyZW50LCAnX3VpZCcpKSB7XG4gICAgY29udGV4dFZtID0gT2JqZWN0LmNyZWF0ZShwYXJlbnQpO1xuICAgIC8vICRmbG93LWRpc2FibGUtbGluZVxuICAgIGNvbnRleHRWbS5fb3JpZ2luYWwgPSBwYXJlbnQ7XG4gIH0gZWxzZSB7XG4gICAgLy8gdGhlIGNvbnRleHQgdm0gcGFzc2VkIGluIGlzIGEgZnVuY3Rpb25hbCBjb250ZXh0IGFzIHdlbGwuXG4gICAgLy8gaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHdlIGFyZSBhYmxlIHRvIGdldCBhIGhvbGQgdG8gdGhlXG4gICAgLy8gcmVhbCBjb250ZXh0IGluc3RhbmNlLlxuICAgIGNvbnRleHRWbSA9IHBhcmVudDtcbiAgICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgICBwYXJlbnQgPSBwYXJlbnQuX29yaWdpbmFsO1xuICB9XG4gIHZhciBpc0NvbXBpbGVkID0gaXNUcnVlKG9wdGlvbnMuX2NvbXBpbGVkKTtcbiAgdmFyIG5lZWROb3JtYWxpemF0aW9uID0gIWlzQ29tcGlsZWQ7XG5cbiAgdGhpcy5kYXRhID0gZGF0YTtcbiAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICB0aGlzLmxpc3RlbmVycyA9IGRhdGEub24gfHwgZW1wdHlPYmplY3Q7XG4gIHRoaXMuaW5qZWN0aW9ucyA9IHJlc29sdmVJbmplY3Qob3B0aW9ucy5pbmplY3QsIHBhcmVudCk7XG4gIHRoaXMuc2xvdHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCF0aGlzJDEuJHNsb3RzKSB7XG4gICAgICBub3JtYWxpemVTY29wZWRTbG90cyhcbiAgICAgICAgZGF0YS5zY29wZWRTbG90cyxcbiAgICAgICAgdGhpcyQxLiRzbG90cyA9IHJlc29sdmVTbG90cyhjaGlsZHJlbiwgcGFyZW50KVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMkMS4kc2xvdHNcbiAgfTtcblxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ3Njb3BlZFNsb3RzJywgKHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gZ2V0ICgpIHtcbiAgICAgIHJldHVybiBub3JtYWxpemVTY29wZWRTbG90cyhkYXRhLnNjb3BlZFNsb3RzLCB0aGlzLnNsb3RzKCkpXG4gICAgfVxuICB9KSk7XG5cbiAgLy8gc3VwcG9ydCBmb3IgY29tcGlsZWQgZnVuY3Rpb25hbCB0ZW1wbGF0ZVxuICBpZiAoaXNDb21waWxlZCkge1xuICAgIC8vIGV4cG9zaW5nICRvcHRpb25zIGZvciByZW5kZXJTdGF0aWMoKVxuICAgIHRoaXMuJG9wdGlvbnMgPSBvcHRpb25zO1xuICAgIC8vIHByZS1yZXNvbHZlIHNsb3RzIGZvciByZW5kZXJTbG90KClcbiAgICB0aGlzLiRzbG90cyA9IHRoaXMuc2xvdHMoKTtcbiAgICB0aGlzLiRzY29wZWRTbG90cyA9IG5vcm1hbGl6ZVNjb3BlZFNsb3RzKGRhdGEuc2NvcGVkU2xvdHMsIHRoaXMuJHNsb3RzKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLl9zY29wZUlkKSB7XG4gICAgdGhpcy5fYyA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7XG4gICAgICB2YXIgdm5vZGUgPSBjcmVhdGVFbGVtZW50KGNvbnRleHRWbSwgYSwgYiwgYywgZCwgbmVlZE5vcm1hbGl6YXRpb24pO1xuICAgICAgaWYgKHZub2RlICYmICFBcnJheS5pc0FycmF5KHZub2RlKSkge1xuICAgICAgICB2bm9kZS5mblNjb3BlSWQgPSBvcHRpb25zLl9zY29wZUlkO1xuICAgICAgICB2bm9kZS5mbkNvbnRleHQgPSBwYXJlbnQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gdm5vZGVcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHRoaXMuX2MgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCkgeyByZXR1cm4gY3JlYXRlRWxlbWVudChjb250ZXh0Vm0sIGEsIGIsIGMsIGQsIG5lZWROb3JtYWxpemF0aW9uKTsgfTtcbiAgfVxufVxuXG5pbnN0YWxsUmVuZGVySGVscGVycyhGdW5jdGlvbmFsUmVuZGVyQ29udGV4dC5wcm90b3R5cGUpO1xuXG5mdW5jdGlvbiBjcmVhdGVGdW5jdGlvbmFsQ29tcG9uZW50IChcbiAgQ3RvcixcbiAgcHJvcHNEYXRhLFxuICBkYXRhLFxuICBjb250ZXh0Vm0sXG4gIGNoaWxkcmVuXG4pIHtcbiAgdmFyIG9wdGlvbnMgPSBDdG9yLm9wdGlvbnM7XG4gIHZhciBwcm9wcyA9IHt9O1xuICB2YXIgcHJvcE9wdGlvbnMgPSBvcHRpb25zLnByb3BzO1xuICBpZiAoaXNEZWYocHJvcE9wdGlvbnMpKSB7XG4gICAgZm9yICh2YXIga2V5IGluIHByb3BPcHRpb25zKSB7XG4gICAgICBwcm9wc1trZXldID0gdmFsaWRhdGVQcm9wKGtleSwgcHJvcE9wdGlvbnMsIHByb3BzRGF0YSB8fCBlbXB0eU9iamVjdCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmIChpc0RlZihkYXRhLmF0dHJzKSkgeyBtZXJnZVByb3BzKHByb3BzLCBkYXRhLmF0dHJzKTsgfVxuICAgIGlmIChpc0RlZihkYXRhLnByb3BzKSkgeyBtZXJnZVByb3BzKHByb3BzLCBkYXRhLnByb3BzKTsgfVxuICB9XG5cbiAgdmFyIHJlbmRlckNvbnRleHQgPSBuZXcgRnVuY3Rpb25hbFJlbmRlckNvbnRleHQoXG4gICAgZGF0YSxcbiAgICBwcm9wcyxcbiAgICBjaGlsZHJlbixcbiAgICBjb250ZXh0Vm0sXG4gICAgQ3RvclxuICApO1xuXG4gIHZhciB2bm9kZSA9IG9wdGlvbnMucmVuZGVyLmNhbGwobnVsbCwgcmVuZGVyQ29udGV4dC5fYywgcmVuZGVyQ29udGV4dCk7XG5cbiAgaWYgKHZub2RlIGluc3RhbmNlb2YgVk5vZGUpIHtcbiAgICByZXR1cm4gY2xvbmVBbmRNYXJrRnVuY3Rpb25hbFJlc3VsdCh2bm9kZSwgZGF0YSwgcmVuZGVyQ29udGV4dC5wYXJlbnQsIG9wdGlvbnMsIHJlbmRlckNvbnRleHQpXG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2bm9kZSkpIHtcbiAgICB2YXIgdm5vZGVzID0gbm9ybWFsaXplQ2hpbGRyZW4odm5vZGUpIHx8IFtdO1xuICAgIHZhciByZXMgPSBuZXcgQXJyYXkodm5vZGVzLmxlbmd0aCk7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2bm9kZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHJlc1tpXSA9IGNsb25lQW5kTWFya0Z1bmN0aW9uYWxSZXN1bHQodm5vZGVzW2ldLCBkYXRhLCByZW5kZXJDb250ZXh0LnBhcmVudCwgb3B0aW9ucywgcmVuZGVyQ29udGV4dCk7XG4gICAgfVxuICAgIHJldHVybiByZXNcbiAgfVxufVxuXG5mdW5jdGlvbiBjbG9uZUFuZE1hcmtGdW5jdGlvbmFsUmVzdWx0ICh2bm9kZSwgZGF0YSwgY29udGV4dFZtLCBvcHRpb25zLCByZW5kZXJDb250ZXh0KSB7XG4gIC8vICM3ODE3IGNsb25lIG5vZGUgYmVmb3JlIHNldHRpbmcgZm5Db250ZXh0LCBvdGhlcndpc2UgaWYgdGhlIG5vZGUgaXMgcmV1c2VkXG4gIC8vIChlLmcuIGl0IHdhcyBmcm9tIGEgY2FjaGVkIG5vcm1hbCBzbG90KSB0aGUgZm5Db250ZXh0IGNhdXNlcyBuYW1lZCBzbG90c1xuICAvLyB0aGF0IHNob3VsZCBub3QgYmUgbWF0Y2hlZCB0byBtYXRjaC5cbiAgdmFyIGNsb25lID0gY2xvbmVWTm9kZSh2bm9kZSk7XG4gIGNsb25lLmZuQ29udGV4dCA9IGNvbnRleHRWbTtcbiAgY2xvbmUuZm5PcHRpb25zID0gb3B0aW9ucztcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAoY2xvbmUuZGV2dG9vbHNNZXRhID0gY2xvbmUuZGV2dG9vbHNNZXRhIHx8IHt9KS5yZW5kZXJDb250ZXh0ID0gcmVuZGVyQ29udGV4dDtcbiAgfVxuICBpZiAoZGF0YS5zbG90KSB7XG4gICAgKGNsb25lLmRhdGEgfHwgKGNsb25lLmRhdGEgPSB7fSkpLnNsb3QgPSBkYXRhLnNsb3Q7XG4gIH1cbiAgcmV0dXJuIGNsb25lXG59XG5cbmZ1bmN0aW9uIG1lcmdlUHJvcHMgKHRvLCBmcm9tKSB7XG4gIGZvciAodmFyIGtleSBpbiBmcm9tKSB7XG4gICAgdG9bY2FtZWxpemUoa2V5KV0gPSBmcm9tW2tleV07XG4gIH1cbn1cblxuLyogICovXG5cbi8qICAqL1xuXG4vKiAgKi9cblxuLyogICovXG5cbi8vIGlubGluZSBob29rcyB0byBiZSBpbnZva2VkIG9uIGNvbXBvbmVudCBWTm9kZXMgZHVyaW5nIHBhdGNoXG52YXIgY29tcG9uZW50Vk5vZGVIb29rcyA9IHtcbiAgaW5pdDogZnVuY3Rpb24gaW5pdCAodm5vZGUsIGh5ZHJhdGluZykge1xuICAgIGlmIChcbiAgICAgIHZub2RlLmNvbXBvbmVudEluc3RhbmNlICYmXG4gICAgICAhdm5vZGUuY29tcG9uZW50SW5zdGFuY2UuX2lzRGVzdHJveWVkICYmXG4gICAgICB2bm9kZS5kYXRhLmtlZXBBbGl2ZVxuICAgICkge1xuICAgICAgLy8ga2VwdC1hbGl2ZSBjb21wb25lbnRzLCB0cmVhdCBhcyBhIHBhdGNoXG4gICAgICB2YXIgbW91bnRlZE5vZGUgPSB2bm9kZTsgLy8gd29yayBhcm91bmQgZmxvd1xuICAgICAgY29tcG9uZW50Vk5vZGVIb29rcy5wcmVwYXRjaChtb3VudGVkTm9kZSwgbW91bnRlZE5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgY2hpbGQgPSB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSA9IGNyZWF0ZUNvbXBvbmVudEluc3RhbmNlRm9yVm5vZGUoXG4gICAgICAgIHZub2RlLFxuICAgICAgICBhY3RpdmVJbnN0YW5jZVxuICAgICAgKTtcbiAgICAgIGNoaWxkLiRtb3VudChoeWRyYXRpbmcgPyB2bm9kZS5lbG0gOiB1bmRlZmluZWQsIGh5ZHJhdGluZyk7XG4gICAgfVxuICB9LFxuXG4gIHByZXBhdGNoOiBmdW5jdGlvbiBwcmVwYXRjaCAob2xkVm5vZGUsIHZub2RlKSB7XG4gICAgdmFyIG9wdGlvbnMgPSB2bm9kZS5jb21wb25lbnRPcHRpb25zO1xuICAgIHZhciBjaGlsZCA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlID0gb2xkVm5vZGUuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgdXBkYXRlQ2hpbGRDb21wb25lbnQoXG4gICAgICBjaGlsZCxcbiAgICAgIG9wdGlvbnMucHJvcHNEYXRhLCAvLyB1cGRhdGVkIHByb3BzXG4gICAgICBvcHRpb25zLmxpc3RlbmVycywgLy8gdXBkYXRlZCBsaXN0ZW5lcnNcbiAgICAgIHZub2RlLCAvLyBuZXcgcGFyZW50IHZub2RlXG4gICAgICBvcHRpb25zLmNoaWxkcmVuIC8vIG5ldyBjaGlsZHJlblxuICAgICk7XG4gIH0sXG5cbiAgaW5zZXJ0OiBmdW5jdGlvbiBpbnNlcnQgKHZub2RlKSB7XG4gICAgdmFyIGNvbnRleHQgPSB2bm9kZS5jb250ZXh0O1xuICAgIHZhciBjb21wb25lbnRJbnN0YW5jZSA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlO1xuICAgIGlmICghY29tcG9uZW50SW5zdGFuY2UuX2lzTW91bnRlZCkge1xuICAgICAgY29tcG9uZW50SW5zdGFuY2UuX2lzTW91bnRlZCA9IHRydWU7XG4gICAgICBjYWxsSG9vayhjb21wb25lbnRJbnN0YW5jZSwgJ21vdW50ZWQnKTtcbiAgICB9XG4gICAgaWYgKHZub2RlLmRhdGEua2VlcEFsaXZlKSB7XG4gICAgICBpZiAoY29udGV4dC5faXNNb3VudGVkKSB7XG4gICAgICAgIC8vIHZ1ZS1yb3V0ZXIjMTIxMlxuICAgICAgICAvLyBEdXJpbmcgdXBkYXRlcywgYSBrZXB0LWFsaXZlIGNvbXBvbmVudCdzIGNoaWxkIGNvbXBvbmVudHMgbWF5XG4gICAgICAgIC8vIGNoYW5nZSwgc28gZGlyZWN0bHkgd2Fsa2luZyB0aGUgdHJlZSBoZXJlIG1heSBjYWxsIGFjdGl2YXRlZCBob29rc1xuICAgICAgICAvLyBvbiBpbmNvcnJlY3QgY2hpbGRyZW4uIEluc3RlYWQgd2UgcHVzaCB0aGVtIGludG8gYSBxdWV1ZSB3aGljaCB3aWxsXG4gICAgICAgIC8vIGJlIHByb2Nlc3NlZCBhZnRlciB0aGUgd2hvbGUgcGF0Y2ggcHJvY2VzcyBlbmRlZC5cbiAgICAgICAgcXVldWVBY3RpdmF0ZWRDb21wb25lbnQoY29tcG9uZW50SW5zdGFuY2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWN0aXZhdGVDaGlsZENvbXBvbmVudChjb21wb25lbnRJbnN0YW5jZSwgdHJ1ZSAvKiBkaXJlY3QgKi8pO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBkZXN0cm95OiBmdW5jdGlvbiBkZXN0cm95ICh2bm9kZSkge1xuICAgIHZhciBjb21wb25lbnRJbnN0YW5jZSA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlO1xuICAgIGlmICghY29tcG9uZW50SW5zdGFuY2UuX2lzRGVzdHJveWVkKSB7XG4gICAgICBpZiAoIXZub2RlLmRhdGEua2VlcEFsaXZlKSB7XG4gICAgICAgIGNvbXBvbmVudEluc3RhbmNlLiRkZXN0cm95KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWFjdGl2YXRlQ2hpbGRDb21wb25lbnQoY29tcG9uZW50SW5zdGFuY2UsIHRydWUgLyogZGlyZWN0ICovKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbnZhciBob29rc1RvTWVyZ2UgPSBPYmplY3Qua2V5cyhjb21wb25lbnRWTm9kZUhvb2tzKTtcblxuZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50IChcbiAgQ3RvcixcbiAgZGF0YSxcbiAgY29udGV4dCxcbiAgY2hpbGRyZW4sXG4gIHRhZ1xuKSB7XG4gIGlmIChpc1VuZGVmKEN0b3IpKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICB2YXIgYmFzZUN0b3IgPSBjb250ZXh0LiRvcHRpb25zLl9iYXNlO1xuXG4gIC8vIHBsYWluIG9wdGlvbnMgb2JqZWN0OiB0dXJuIGl0IGludG8gYSBjb25zdHJ1Y3RvclxuICBpZiAoaXNPYmplY3QoQ3RvcikpIHtcbiAgICBDdG9yID0gYmFzZUN0b3IuZXh0ZW5kKEN0b3IpO1xuICB9XG5cbiAgLy8gaWYgYXQgdGhpcyBzdGFnZSBpdCdzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIGFuIGFzeW5jIGNvbXBvbmVudCBmYWN0b3J5LFxuICAvLyByZWplY3QuXG4gIGlmICh0eXBlb2YgQ3RvciAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB3YXJuKChcIkludmFsaWQgQ29tcG9uZW50IGRlZmluaXRpb246IFwiICsgKFN0cmluZyhDdG9yKSkpLCBjb250ZXh0KTtcbiAgICB9XG4gICAgcmV0dXJuXG4gIH1cblxuICAvLyBhc3luYyBjb21wb25lbnRcbiAgdmFyIGFzeW5jRmFjdG9yeTtcbiAgaWYgKGlzVW5kZWYoQ3Rvci5jaWQpKSB7XG4gICAgYXN5bmNGYWN0b3J5ID0gQ3RvcjtcbiAgICBDdG9yID0gcmVzb2x2ZUFzeW5jQ29tcG9uZW50KGFzeW5jRmFjdG9yeSwgYmFzZUN0b3IpO1xuICAgIGlmIChDdG9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIHJldHVybiBhIHBsYWNlaG9sZGVyIG5vZGUgZm9yIGFzeW5jIGNvbXBvbmVudCwgd2hpY2ggaXMgcmVuZGVyZWRcbiAgICAgIC8vIGFzIGEgY29tbWVudCBub2RlIGJ1dCBwcmVzZXJ2ZXMgYWxsIHRoZSByYXcgaW5mb3JtYXRpb24gZm9yIHRoZSBub2RlLlxuICAgICAgLy8gdGhlIGluZm9ybWF0aW9uIHdpbGwgYmUgdXNlZCBmb3IgYXN5bmMgc2VydmVyLXJlbmRlcmluZyBhbmQgaHlkcmF0aW9uLlxuICAgICAgcmV0dXJuIGNyZWF0ZUFzeW5jUGxhY2Vob2xkZXIoXG4gICAgICAgIGFzeW5jRmFjdG9yeSxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIHRhZ1xuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGRhdGEgPSBkYXRhIHx8IHt9O1xuXG4gIC8vIHJlc29sdmUgY29uc3RydWN0b3Igb3B0aW9ucyBpbiBjYXNlIGdsb2JhbCBtaXhpbnMgYXJlIGFwcGxpZWQgYWZ0ZXJcbiAgLy8gY29tcG9uZW50IGNvbnN0cnVjdG9yIGNyZWF0aW9uXG4gIHJlc29sdmVDb25zdHJ1Y3Rvck9wdGlvbnMoQ3Rvcik7XG5cbiAgLy8gdHJhbnNmb3JtIGNvbXBvbmVudCB2LW1vZGVsIGRhdGEgaW50byBwcm9wcyAmIGV2ZW50c1xuICBpZiAoaXNEZWYoZGF0YS5tb2RlbCkpIHtcbiAgICB0cmFuc2Zvcm1Nb2RlbChDdG9yLm9wdGlvbnMsIGRhdGEpO1xuICB9XG5cbiAgLy8gZXh0cmFjdCBwcm9wc1xuICB2YXIgcHJvcHNEYXRhID0gZXh0cmFjdFByb3BzRnJvbVZOb2RlRGF0YShkYXRhLCBDdG9yLCB0YWcpO1xuXG4gIC8vIGZ1bmN0aW9uYWwgY29tcG9uZW50XG4gIGlmIChpc1RydWUoQ3Rvci5vcHRpb25zLmZ1bmN0aW9uYWwpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUZ1bmN0aW9uYWxDb21wb25lbnQoQ3RvciwgcHJvcHNEYXRhLCBkYXRhLCBjb250ZXh0LCBjaGlsZHJlbilcbiAgfVxuXG4gIC8vIGV4dHJhY3QgbGlzdGVuZXJzLCBzaW5jZSB0aGVzZSBuZWVkcyB0byBiZSB0cmVhdGVkIGFzXG4gIC8vIGNoaWxkIGNvbXBvbmVudCBsaXN0ZW5lcnMgaW5zdGVhZCBvZiBET00gbGlzdGVuZXJzXG4gIHZhciBsaXN0ZW5lcnMgPSBkYXRhLm9uO1xuICAvLyByZXBsYWNlIHdpdGggbGlzdGVuZXJzIHdpdGggLm5hdGl2ZSBtb2RpZmllclxuICAvLyBzbyBpdCBnZXRzIHByb2Nlc3NlZCBkdXJpbmcgcGFyZW50IGNvbXBvbmVudCBwYXRjaC5cbiAgZGF0YS5vbiA9IGRhdGEubmF0aXZlT247XG5cbiAgaWYgKGlzVHJ1ZShDdG9yLm9wdGlvbnMuYWJzdHJhY3QpKSB7XG4gICAgLy8gYWJzdHJhY3QgY29tcG9uZW50cyBkbyBub3Qga2VlcCBhbnl0aGluZ1xuICAgIC8vIG90aGVyIHRoYW4gcHJvcHMgJiBsaXN0ZW5lcnMgJiBzbG90XG5cbiAgICAvLyB3b3JrIGFyb3VuZCBmbG93XG4gICAgdmFyIHNsb3QgPSBkYXRhLnNsb3Q7XG4gICAgZGF0YSA9IHt9O1xuICAgIGlmIChzbG90KSB7XG4gICAgICBkYXRhLnNsb3QgPSBzbG90O1xuICAgIH1cbiAgfVxuXG4gIC8vIGluc3RhbGwgY29tcG9uZW50IG1hbmFnZW1lbnQgaG9va3Mgb250byB0aGUgcGxhY2Vob2xkZXIgbm9kZVxuICBpbnN0YWxsQ29tcG9uZW50SG9va3MoZGF0YSk7XG5cbiAgLy8gcmV0dXJuIGEgcGxhY2Vob2xkZXIgdm5vZGVcbiAgdmFyIG5hbWUgPSBDdG9yLm9wdGlvbnMubmFtZSB8fCB0YWc7XG4gIHZhciB2bm9kZSA9IG5ldyBWTm9kZShcbiAgICAoXCJ2dWUtY29tcG9uZW50LVwiICsgKEN0b3IuY2lkKSArIChuYW1lID8gKFwiLVwiICsgbmFtZSkgOiAnJykpLFxuICAgIGRhdGEsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbnRleHQsXG4gICAgeyBDdG9yOiBDdG9yLCBwcm9wc0RhdGE6IHByb3BzRGF0YSwgbGlzdGVuZXJzOiBsaXN0ZW5lcnMsIHRhZzogdGFnLCBjaGlsZHJlbjogY2hpbGRyZW4gfSxcbiAgICBhc3luY0ZhY3RvcnlcbiAgKTtcblxuICByZXR1cm4gdm5vZGVcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50SW5zdGFuY2VGb3JWbm9kZSAoXG4gIC8vIHdlIGtub3cgaXQncyBNb3VudGVkQ29tcG9uZW50Vk5vZGUgYnV0IGZsb3cgZG9lc24ndFxuICB2bm9kZSxcbiAgLy8gYWN0aXZlSW5zdGFuY2UgaW4gbGlmZWN5Y2xlIHN0YXRlXG4gIHBhcmVudFxuKSB7XG4gIHZhciBvcHRpb25zID0ge1xuICAgIF9pc0NvbXBvbmVudDogdHJ1ZSxcbiAgICBfcGFyZW50Vm5vZGU6IHZub2RlLFxuICAgIHBhcmVudDogcGFyZW50XG4gIH07XG4gIC8vIGNoZWNrIGlubGluZS10ZW1wbGF0ZSByZW5kZXIgZnVuY3Rpb25zXG4gIHZhciBpbmxpbmVUZW1wbGF0ZSA9IHZub2RlLmRhdGEuaW5saW5lVGVtcGxhdGU7XG4gIGlmIChpc0RlZihpbmxpbmVUZW1wbGF0ZSkpIHtcbiAgICBvcHRpb25zLnJlbmRlciA9IGlubGluZVRlbXBsYXRlLnJlbmRlcjtcbiAgICBvcHRpb25zLnN0YXRpY1JlbmRlckZucyA9IGlubGluZVRlbXBsYXRlLnN0YXRpY1JlbmRlckZucztcbiAgfVxuICByZXR1cm4gbmV3IHZub2RlLmNvbXBvbmVudE9wdGlvbnMuQ3RvcihvcHRpb25zKVxufVxuXG5mdW5jdGlvbiBpbnN0YWxsQ29tcG9uZW50SG9va3MgKGRhdGEpIHtcbiAgdmFyIGhvb2tzID0gZGF0YS5ob29rIHx8IChkYXRhLmhvb2sgPSB7fSk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgaG9va3NUb01lcmdlLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGtleSA9IGhvb2tzVG9NZXJnZVtpXTtcbiAgICB2YXIgZXhpc3RpbmcgPSBob29rc1trZXldO1xuICAgIHZhciB0b01lcmdlID0gY29tcG9uZW50Vk5vZGVIb29rc1trZXldO1xuICAgIGlmIChleGlzdGluZyAhPT0gdG9NZXJnZSAmJiAhKGV4aXN0aW5nICYmIGV4aXN0aW5nLl9tZXJnZWQpKSB7XG4gICAgICBob29rc1trZXldID0gZXhpc3RpbmcgPyBtZXJnZUhvb2skMSh0b01lcmdlLCBleGlzdGluZykgOiB0b01lcmdlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBtZXJnZUhvb2skMSAoZjEsIGYyKSB7XG4gIHZhciBtZXJnZWQgPSBmdW5jdGlvbiAoYSwgYikge1xuICAgIC8vIGZsb3cgY29tcGxhaW5zIGFib3V0IGV4dHJhIGFyZ3Mgd2hpY2ggaXMgd2h5IHdlIHVzZSBhbnlcbiAgICBmMShhLCBiKTtcbiAgICBmMihhLCBiKTtcbiAgfTtcbiAgbWVyZ2VkLl9tZXJnZWQgPSB0cnVlO1xuICByZXR1cm4gbWVyZ2VkXG59XG5cbi8vIHRyYW5zZm9ybSBjb21wb25lbnQgdi1tb2RlbCBpbmZvICh2YWx1ZSBhbmQgY2FsbGJhY2spIGludG9cbi8vIHByb3AgYW5kIGV2ZW50IGhhbmRsZXIgcmVzcGVjdGl2ZWx5LlxuZnVuY3Rpb24gdHJhbnNmb3JtTW9kZWwgKG9wdGlvbnMsIGRhdGEpIHtcbiAgdmFyIHByb3AgPSAob3B0aW9ucy5tb2RlbCAmJiBvcHRpb25zLm1vZGVsLnByb3ApIHx8ICd2YWx1ZSc7XG4gIHZhciBldmVudCA9IChvcHRpb25zLm1vZGVsICYmIG9wdGlvbnMubW9kZWwuZXZlbnQpIHx8ICdpbnB1dCdcbiAgOyhkYXRhLmF0dHJzIHx8IChkYXRhLmF0dHJzID0ge30pKVtwcm9wXSA9IGRhdGEubW9kZWwudmFsdWU7XG4gIHZhciBvbiA9IGRhdGEub24gfHwgKGRhdGEub24gPSB7fSk7XG4gIHZhciBleGlzdGluZyA9IG9uW2V2ZW50XTtcbiAgdmFyIGNhbGxiYWNrID0gZGF0YS5tb2RlbC5jYWxsYmFjaztcbiAgaWYgKGlzRGVmKGV4aXN0aW5nKSkge1xuICAgIGlmIChcbiAgICAgIEFycmF5LmlzQXJyYXkoZXhpc3RpbmcpXG4gICAgICAgID8gZXhpc3RpbmcuaW5kZXhPZihjYWxsYmFjaykgPT09IC0xXG4gICAgICAgIDogZXhpc3RpbmcgIT09IGNhbGxiYWNrXG4gICAgKSB7XG4gICAgICBvbltldmVudF0gPSBbY2FsbGJhY2tdLmNvbmNhdChleGlzdGluZyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG9uW2V2ZW50XSA9IGNhbGxiYWNrO1xuICB9XG59XG5cbi8qICAqL1xuXG52YXIgU0lNUExFX05PUk1BTElaRSA9IDE7XG52YXIgQUxXQVlTX05PUk1BTElaRSA9IDI7XG5cbi8vIHdyYXBwZXIgZnVuY3Rpb24gZm9yIHByb3ZpZGluZyBhIG1vcmUgZmxleGlibGUgaW50ZXJmYWNlXG4vLyB3aXRob3V0IGdldHRpbmcgeWVsbGVkIGF0IGJ5IGZsb3dcbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQgKFxuICBjb250ZXh0LFxuICB0YWcsXG4gIGRhdGEsXG4gIGNoaWxkcmVuLFxuICBub3JtYWxpemF0aW9uVHlwZSxcbiAgYWx3YXlzTm9ybWFsaXplXG4pIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkgfHwgaXNQcmltaXRpdmUoZGF0YSkpIHtcbiAgICBub3JtYWxpemF0aW9uVHlwZSA9IGNoaWxkcmVuO1xuICAgIGNoaWxkcmVuID0gZGF0YTtcbiAgICBkYXRhID0gdW5kZWZpbmVkO1xuICB9XG4gIGlmIChpc1RydWUoYWx3YXlzTm9ybWFsaXplKSkge1xuICAgIG5vcm1hbGl6YXRpb25UeXBlID0gQUxXQVlTX05PUk1BTElaRTtcbiAgfVxuICByZXR1cm4gX2NyZWF0ZUVsZW1lbnQoY29udGV4dCwgdGFnLCBkYXRhLCBjaGlsZHJlbiwgbm9ybWFsaXphdGlvblR5cGUpXG59XG5cbmZ1bmN0aW9uIF9jcmVhdGVFbGVtZW50IChcbiAgY29udGV4dCxcbiAgdGFnLFxuICBkYXRhLFxuICBjaGlsZHJlbixcbiAgbm9ybWFsaXphdGlvblR5cGVcbikge1xuICBpZiAoaXNEZWYoZGF0YSkgJiYgaXNEZWYoKGRhdGEpLl9fb2JfXykpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICBcIkF2b2lkIHVzaW5nIG9ic2VydmVkIGRhdGEgb2JqZWN0IGFzIHZub2RlIGRhdGE6IFwiICsgKEpTT04uc3RyaW5naWZ5KGRhdGEpKSArIFwiXFxuXCIgK1xuICAgICAgJ0Fsd2F5cyBjcmVhdGUgZnJlc2ggdm5vZGUgZGF0YSBvYmplY3RzIGluIGVhY2ggcmVuZGVyIScsXG4gICAgICBjb250ZXh0XG4gICAgKTtcbiAgICByZXR1cm4gY3JlYXRlRW1wdHlWTm9kZSgpXG4gIH1cbiAgLy8gb2JqZWN0IHN5bnRheCBpbiB2LWJpbmRcbiAgaWYgKGlzRGVmKGRhdGEpICYmIGlzRGVmKGRhdGEuaXMpKSB7XG4gICAgdGFnID0gZGF0YS5pcztcbiAgfVxuICBpZiAoIXRhZykge1xuICAgIC8vIGluIGNhc2Ugb2YgY29tcG9uZW50IDppcyBzZXQgdG8gZmFsc3kgdmFsdWVcbiAgICByZXR1cm4gY3JlYXRlRW1wdHlWTm9kZSgpXG4gIH1cbiAgLy8gd2FybiBhZ2FpbnN0IG5vbi1wcmltaXRpdmUga2V5XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgaXNEZWYoZGF0YSkgJiYgaXNEZWYoZGF0YS5rZXkpICYmICFpc1ByaW1pdGl2ZShkYXRhLmtleSlcbiAgKSB7XG4gICAge1xuICAgICAgd2FybihcbiAgICAgICAgJ0F2b2lkIHVzaW5nIG5vbi1wcmltaXRpdmUgdmFsdWUgYXMga2V5LCAnICtcbiAgICAgICAgJ3VzZSBzdHJpbmcvbnVtYmVyIHZhbHVlIGluc3RlYWQuJyxcbiAgICAgICAgY29udGV4dFxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgLy8gc3VwcG9ydCBzaW5nbGUgZnVuY3Rpb24gY2hpbGRyZW4gYXMgZGVmYXVsdCBzY29wZWQgc2xvdFxuICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikgJiZcbiAgICB0eXBlb2YgY2hpbGRyZW5bMF0gPT09ICdmdW5jdGlvbidcbiAgKSB7XG4gICAgZGF0YSA9IGRhdGEgfHwge307XG4gICAgZGF0YS5zY29wZWRTbG90cyA9IHsgZGVmYXVsdDogY2hpbGRyZW5bMF0gfTtcbiAgICBjaGlsZHJlbi5sZW5ndGggPSAwO1xuICB9XG4gIGlmIChub3JtYWxpemF0aW9uVHlwZSA9PT0gQUxXQVlTX05PUk1BTElaRSkge1xuICAgIGNoaWxkcmVuID0gbm9ybWFsaXplQ2hpbGRyZW4oY2hpbGRyZW4pO1xuICB9IGVsc2UgaWYgKG5vcm1hbGl6YXRpb25UeXBlID09PSBTSU1QTEVfTk9STUFMSVpFKSB7XG4gICAgY2hpbGRyZW4gPSBzaW1wbGVOb3JtYWxpemVDaGlsZHJlbihjaGlsZHJlbik7XG4gIH1cbiAgdmFyIHZub2RlLCBucztcbiAgaWYgKHR5cGVvZiB0YWcgPT09ICdzdHJpbmcnKSB7XG4gICAgdmFyIEN0b3I7XG4gICAgbnMgPSAoY29udGV4dC4kdm5vZGUgJiYgY29udGV4dC4kdm5vZGUubnMpIHx8IGNvbmZpZy5nZXRUYWdOYW1lc3BhY2UodGFnKTtcbiAgICBpZiAoY29uZmlnLmlzUmVzZXJ2ZWRUYWcodGFnKSkge1xuICAgICAgLy8gcGxhdGZvcm0gYnVpbHQtaW4gZWxlbWVudHNcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGlzRGVmKGRhdGEpICYmIGlzRGVmKGRhdGEubmF0aXZlT24pICYmIGRhdGEudGFnICE9PSAnY29tcG9uZW50Jykge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgIChcIlRoZSAubmF0aXZlIG1vZGlmaWVyIGZvciB2LW9uIGlzIG9ubHkgdmFsaWQgb24gY29tcG9uZW50cyBidXQgaXQgd2FzIHVzZWQgb24gPFwiICsgdGFnICsgXCI+LlwiKSxcbiAgICAgICAgICBjb250ZXh0XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB2bm9kZSA9IG5ldyBWTm9kZShcbiAgICAgICAgY29uZmlnLnBhcnNlUGxhdGZvcm1UYWdOYW1lKHRhZyksIGRhdGEsIGNoaWxkcmVuLFxuICAgICAgICB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29udGV4dFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKCghZGF0YSB8fCAhZGF0YS5wcmUpICYmIGlzRGVmKEN0b3IgPSByZXNvbHZlQXNzZXQoY29udGV4dC4kb3B0aW9ucywgJ2NvbXBvbmVudHMnLCB0YWcpKSkge1xuICAgICAgLy8gY29tcG9uZW50XG4gICAgICB2bm9kZSA9IGNyZWF0ZUNvbXBvbmVudChDdG9yLCBkYXRhLCBjb250ZXh0LCBjaGlsZHJlbiwgdGFnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdW5rbm93biBvciB1bmxpc3RlZCBuYW1lc3BhY2VkIGVsZW1lbnRzXG4gICAgICAvLyBjaGVjayBhdCBydW50aW1lIGJlY2F1c2UgaXQgbWF5IGdldCBhc3NpZ25lZCBhIG5hbWVzcGFjZSB3aGVuIGl0c1xuICAgICAgLy8gcGFyZW50IG5vcm1hbGl6ZXMgY2hpbGRyZW5cbiAgICAgIHZub2RlID0gbmV3IFZOb2RlKFxuICAgICAgICB0YWcsIGRhdGEsIGNoaWxkcmVuLFxuICAgICAgICB1bmRlZmluZWQsIHVuZGVmaW5lZCwgY29udGV4dFxuICAgICAgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gZGlyZWN0IGNvbXBvbmVudCBvcHRpb25zIC8gY29uc3RydWN0b3JcbiAgICB2bm9kZSA9IGNyZWF0ZUNvbXBvbmVudCh0YWcsIGRhdGEsIGNvbnRleHQsIGNoaWxkcmVuKTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheSh2bm9kZSkpIHtcbiAgICByZXR1cm4gdm5vZGVcbiAgfSBlbHNlIGlmIChpc0RlZih2bm9kZSkpIHtcbiAgICBpZiAoaXNEZWYobnMpKSB7IGFwcGx5TlModm5vZGUsIG5zKTsgfVxuICAgIGlmIChpc0RlZihkYXRhKSkgeyByZWdpc3RlckRlZXBCaW5kaW5ncyhkYXRhKTsgfVxuICAgIHJldHVybiB2bm9kZVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBjcmVhdGVFbXB0eVZOb2RlKClcbiAgfVxufVxuXG5mdW5jdGlvbiBhcHBseU5TICh2bm9kZSwgbnMsIGZvcmNlKSB7XG4gIHZub2RlLm5zID0gbnM7XG4gIGlmICh2bm9kZS50YWcgPT09ICdmb3JlaWduT2JqZWN0Jykge1xuICAgIC8vIHVzZSBkZWZhdWx0IG5hbWVzcGFjZSBpbnNpZGUgZm9yZWlnbk9iamVjdFxuICAgIG5zID0gdW5kZWZpbmVkO1xuICAgIGZvcmNlID0gdHJ1ZTtcbiAgfVxuICBpZiAoaXNEZWYodm5vZGUuY2hpbGRyZW4pKSB7XG4gICAgZm9yICh2YXIgaSA9IDAsIGwgPSB2bm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIHZhciBjaGlsZCA9IHZub2RlLmNoaWxkcmVuW2ldO1xuICAgICAgaWYgKGlzRGVmKGNoaWxkLnRhZykgJiYgKFxuICAgICAgICBpc1VuZGVmKGNoaWxkLm5zKSB8fCAoaXNUcnVlKGZvcmNlKSAmJiBjaGlsZC50YWcgIT09ICdzdmcnKSkpIHtcbiAgICAgICAgYXBwbHlOUyhjaGlsZCwgbnMsIGZvcmNlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gcmVmICM1MzE4XG4vLyBuZWNlc3NhcnkgdG8gZW5zdXJlIHBhcmVudCByZS1yZW5kZXIgd2hlbiBkZWVwIGJpbmRpbmdzIGxpa2UgOnN0eWxlIGFuZFxuLy8gOmNsYXNzIGFyZSB1c2VkIG9uIHNsb3Qgbm9kZXNcbmZ1bmN0aW9uIHJlZ2lzdGVyRGVlcEJpbmRpbmdzIChkYXRhKSB7XG4gIGlmIChpc09iamVjdChkYXRhLnN0eWxlKSkge1xuICAgIHRyYXZlcnNlKGRhdGEuc3R5bGUpO1xuICB9XG4gIGlmIChpc09iamVjdChkYXRhLmNsYXNzKSkge1xuICAgIHRyYXZlcnNlKGRhdGEuY2xhc3MpO1xuICB9XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpbml0UmVuZGVyICh2bSkge1xuICB2bS5fdm5vZGUgPSBudWxsOyAvLyB0aGUgcm9vdCBvZiB0aGUgY2hpbGQgdHJlZVxuICB2bS5fc3RhdGljVHJlZXMgPSBudWxsOyAvLyB2LW9uY2UgY2FjaGVkIHRyZWVzXG4gIHZhciBvcHRpb25zID0gdm0uJG9wdGlvbnM7XG4gIHZhciBwYXJlbnRWbm9kZSA9IHZtLiR2bm9kZSA9IG9wdGlvbnMuX3BhcmVudFZub2RlOyAvLyB0aGUgcGxhY2Vob2xkZXIgbm9kZSBpbiBwYXJlbnQgdHJlZVxuICB2YXIgcmVuZGVyQ29udGV4dCA9IHBhcmVudFZub2RlICYmIHBhcmVudFZub2RlLmNvbnRleHQ7XG4gIHZtLiRzbG90cyA9IHJlc29sdmVTbG90cyhvcHRpb25zLl9yZW5kZXJDaGlsZHJlbiwgcmVuZGVyQ29udGV4dCk7XG4gIHZtLiRzY29wZWRTbG90cyA9IGVtcHR5T2JqZWN0O1xuICAvLyBiaW5kIHRoZSBjcmVhdGVFbGVtZW50IGZuIHRvIHRoaXMgaW5zdGFuY2VcbiAgLy8gc28gdGhhdCB3ZSBnZXQgcHJvcGVyIHJlbmRlciBjb250ZXh0IGluc2lkZSBpdC5cbiAgLy8gYXJncyBvcmRlcjogdGFnLCBkYXRhLCBjaGlsZHJlbiwgbm9ybWFsaXphdGlvblR5cGUsIGFsd2F5c05vcm1hbGl6ZVxuICAvLyBpbnRlcm5hbCB2ZXJzaW9uIGlzIHVzZWQgYnkgcmVuZGVyIGZ1bmN0aW9ucyBjb21waWxlZCBmcm9tIHRlbXBsYXRlc1xuICB2bS5fYyA9IGZ1bmN0aW9uIChhLCBiLCBjLCBkKSB7IHJldHVybiBjcmVhdGVFbGVtZW50KHZtLCBhLCBiLCBjLCBkLCBmYWxzZSk7IH07XG4gIC8vIG5vcm1hbGl6YXRpb24gaXMgYWx3YXlzIGFwcGxpZWQgZm9yIHRoZSBwdWJsaWMgdmVyc2lvbiwgdXNlZCBpblxuICAvLyB1c2VyLXdyaXR0ZW4gcmVuZGVyIGZ1bmN0aW9ucy5cbiAgdm0uJGNyZWF0ZUVsZW1lbnQgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCkgeyByZXR1cm4gY3JlYXRlRWxlbWVudCh2bSwgYSwgYiwgYywgZCwgdHJ1ZSk7IH07XG5cbiAgLy8gJGF0dHJzICYgJGxpc3RlbmVycyBhcmUgZXhwb3NlZCBmb3IgZWFzaWVyIEhPQyBjcmVhdGlvbi5cbiAgLy8gdGhleSBuZWVkIHRvIGJlIHJlYWN0aXZlIHNvIHRoYXQgSE9DcyB1c2luZyB0aGVtIGFyZSBhbHdheXMgdXBkYXRlZFxuICB2YXIgcGFyZW50RGF0YSA9IHBhcmVudFZub2RlICYmIHBhcmVudFZub2RlLmRhdGE7XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBkZWZpbmVSZWFjdGl2ZSQkMSh2bSwgJyRhdHRycycsIHBhcmVudERhdGEgJiYgcGFyZW50RGF0YS5hdHRycyB8fCBlbXB0eU9iamVjdCwgZnVuY3Rpb24gKCkge1xuICAgICAgIWlzVXBkYXRpbmdDaGlsZENvbXBvbmVudCAmJiB3YXJuKFwiJGF0dHJzIGlzIHJlYWRvbmx5LlwiLCB2bSk7XG4gICAgfSwgdHJ1ZSk7XG4gICAgZGVmaW5lUmVhY3RpdmUkJDEodm0sICckbGlzdGVuZXJzJywgb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzIHx8IGVtcHR5T2JqZWN0LCBmdW5jdGlvbiAoKSB7XG4gICAgICAhaXNVcGRhdGluZ0NoaWxkQ29tcG9uZW50ICYmIHdhcm4oXCIkbGlzdGVuZXJzIGlzIHJlYWRvbmx5LlwiLCB2bSk7XG4gICAgfSwgdHJ1ZSk7XG4gIH0gZWxzZSB7XG4gICAgZGVmaW5lUmVhY3RpdmUkJDEodm0sICckYXR0cnMnLCBwYXJlbnREYXRhICYmIHBhcmVudERhdGEuYXR0cnMgfHwgZW1wdHlPYmplY3QsIG51bGwsIHRydWUpO1xuICAgIGRlZmluZVJlYWN0aXZlJCQxKHZtLCAnJGxpc3RlbmVycycsIG9wdGlvbnMuX3BhcmVudExpc3RlbmVycyB8fCBlbXB0eU9iamVjdCwgbnVsbCwgdHJ1ZSk7XG4gIH1cbn1cblxudmFyIGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZSA9IG51bGw7XG5cbmZ1bmN0aW9uIHJlbmRlck1peGluIChWdWUpIHtcbiAgLy8gaW5zdGFsbCBydW50aW1lIGNvbnZlbmllbmNlIGhlbHBlcnNcbiAgaW5zdGFsbFJlbmRlckhlbHBlcnMoVnVlLnByb3RvdHlwZSk7XG5cbiAgVnVlLnByb3RvdHlwZS4kbmV4dFRpY2sgPSBmdW5jdGlvbiAoZm4pIHtcbiAgICByZXR1cm4gbmV4dFRpY2soZm4sIHRoaXMpXG4gIH07XG5cbiAgVnVlLnByb3RvdHlwZS5fcmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgdmFyIHJlZiA9IHZtLiRvcHRpb25zO1xuICAgIHZhciByZW5kZXIgPSByZWYucmVuZGVyO1xuICAgIHZhciBfcGFyZW50Vm5vZGUgPSByZWYuX3BhcmVudFZub2RlO1xuXG4gICAgaWYgKF9wYXJlbnRWbm9kZSkge1xuICAgICAgdm0uJHNjb3BlZFNsb3RzID0gbm9ybWFsaXplU2NvcGVkU2xvdHMoXG4gICAgICAgIF9wYXJlbnRWbm9kZS5kYXRhLnNjb3BlZFNsb3RzLFxuICAgICAgICB2bS4kc2xvdHMsXG4gICAgICAgIHZtLiRzY29wZWRTbG90c1xuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBzZXQgcGFyZW50IHZub2RlLiB0aGlzIGFsbG93cyByZW5kZXIgZnVuY3Rpb25zIHRvIGhhdmUgYWNjZXNzXG4gICAgLy8gdG8gdGhlIGRhdGEgb24gdGhlIHBsYWNlaG9sZGVyIG5vZGUuXG4gICAgdm0uJHZub2RlID0gX3BhcmVudFZub2RlO1xuICAgIC8vIHJlbmRlciBzZWxmXG4gICAgdmFyIHZub2RlO1xuICAgIHRyeSB7XG4gICAgICAvLyBUaGVyZSdzIG5vIG5lZWQgdG8gbWFpbnRhaW4gYSBzdGFjayBiZWNhdXNlIGFsbCByZW5kZXIgZm5zIGFyZSBjYWxsZWRcbiAgICAgIC8vIHNlcGFyYXRlbHkgZnJvbSBvbmUgYW5vdGhlci4gTmVzdGVkIGNvbXBvbmVudCdzIHJlbmRlciBmbnMgYXJlIGNhbGxlZFxuICAgICAgLy8gd2hlbiBwYXJlbnQgY29tcG9uZW50IGlzIHBhdGNoZWQuXG4gICAgICBjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UgPSB2bTtcbiAgICAgIHZub2RlID0gcmVuZGVyLmNhbGwodm0uX3JlbmRlclByb3h5LCB2bS4kY3JlYXRlRWxlbWVudCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaGFuZGxlRXJyb3IoZSwgdm0sIFwicmVuZGVyXCIpO1xuICAgICAgLy8gcmV0dXJuIGVycm9yIHJlbmRlciByZXN1bHQsXG4gICAgICAvLyBvciBwcmV2aW91cyB2bm9kZSB0byBwcmV2ZW50IHJlbmRlciBlcnJvciBjYXVzaW5nIGJsYW5rIGNvbXBvbmVudFxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHZtLiRvcHRpb25zLnJlbmRlckVycm9yKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdm5vZGUgPSB2bS4kb3B0aW9ucy5yZW5kZXJFcnJvci5jYWxsKHZtLl9yZW5kZXJQcm94eSwgdm0uJGNyZWF0ZUVsZW1lbnQsIGUpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaGFuZGxlRXJyb3IoZSwgdm0sIFwicmVuZGVyRXJyb3JcIik7XG4gICAgICAgICAgdm5vZGUgPSB2bS5fdm5vZGU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZub2RlID0gdm0uX3Zub2RlO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UgPSBudWxsO1xuICAgIH1cbiAgICAvLyBpZiB0aGUgcmV0dXJuZWQgYXJyYXkgY29udGFpbnMgb25seSBhIHNpbmdsZSBub2RlLCBhbGxvdyBpdFxuICAgIGlmIChBcnJheS5pc0FycmF5KHZub2RlKSAmJiB2bm9kZS5sZW5ndGggPT09IDEpIHtcbiAgICAgIHZub2RlID0gdm5vZGVbMF07XG4gICAgfVxuICAgIC8vIHJldHVybiBlbXB0eSB2bm9kZSBpbiBjYXNlIHRoZSByZW5kZXIgZnVuY3Rpb24gZXJyb3JlZCBvdXRcbiAgICBpZiAoISh2bm9kZSBpbnN0YW5jZW9mIFZOb2RlKSkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgQXJyYXkuaXNBcnJheSh2bm9kZSkpIHtcbiAgICAgICAgd2FybihcbiAgICAgICAgICAnTXVsdGlwbGUgcm9vdCBub2RlcyByZXR1cm5lZCBmcm9tIHJlbmRlciBmdW5jdGlvbi4gUmVuZGVyIGZ1bmN0aW9uICcgK1xuICAgICAgICAgICdzaG91bGQgcmV0dXJuIGEgc2luZ2xlIHJvb3Qgbm9kZS4nLFxuICAgICAgICAgIHZtXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB2bm9kZSA9IGNyZWF0ZUVtcHR5Vk5vZGUoKTtcbiAgICB9XG4gICAgLy8gc2V0IHBhcmVudFxuICAgIHZub2RlLnBhcmVudCA9IF9wYXJlbnRWbm9kZTtcbiAgICByZXR1cm4gdm5vZGVcbiAgfTtcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGVuc3VyZUN0b3IgKGNvbXAsIGJhc2UpIHtcbiAgaWYgKFxuICAgIGNvbXAuX19lc01vZHVsZSB8fFxuICAgIChoYXNTeW1ib2wgJiYgY29tcFtTeW1ib2wudG9TdHJpbmdUYWddID09PSAnTW9kdWxlJylcbiAgKSB7XG4gICAgY29tcCA9IGNvbXAuZGVmYXVsdDtcbiAgfVxuICByZXR1cm4gaXNPYmplY3QoY29tcClcbiAgICA/IGJhc2UuZXh0ZW5kKGNvbXApXG4gICAgOiBjb21wXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUFzeW5jUGxhY2Vob2xkZXIgKFxuICBmYWN0b3J5LFxuICBkYXRhLFxuICBjb250ZXh0LFxuICBjaGlsZHJlbixcbiAgdGFnXG4pIHtcbiAgdmFyIG5vZGUgPSBjcmVhdGVFbXB0eVZOb2RlKCk7XG4gIG5vZGUuYXN5bmNGYWN0b3J5ID0gZmFjdG9yeTtcbiAgbm9kZS5hc3luY01ldGEgPSB7IGRhdGE6IGRhdGEsIGNvbnRleHQ6IGNvbnRleHQsIGNoaWxkcmVuOiBjaGlsZHJlbiwgdGFnOiB0YWcgfTtcbiAgcmV0dXJuIG5vZGVcbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUFzeW5jQ29tcG9uZW50IChcbiAgZmFjdG9yeSxcbiAgYmFzZUN0b3Jcbikge1xuICBpZiAoaXNUcnVlKGZhY3RvcnkuZXJyb3IpICYmIGlzRGVmKGZhY3RvcnkuZXJyb3JDb21wKSkge1xuICAgIHJldHVybiBmYWN0b3J5LmVycm9yQ29tcFxuICB9XG5cbiAgaWYgKGlzRGVmKGZhY3RvcnkucmVzb2x2ZWQpKSB7XG4gICAgcmV0dXJuIGZhY3RvcnkucmVzb2x2ZWRcbiAgfVxuXG4gIHZhciBvd25lciA9IGN1cnJlbnRSZW5kZXJpbmdJbnN0YW5jZTtcbiAgaWYgKG93bmVyICYmIGlzRGVmKGZhY3Rvcnkub3duZXJzKSAmJiBmYWN0b3J5Lm93bmVycy5pbmRleE9mKG93bmVyKSA9PT0gLTEpIHtcbiAgICAvLyBhbHJlYWR5IHBlbmRpbmdcbiAgICBmYWN0b3J5Lm93bmVycy5wdXNoKG93bmVyKTtcbiAgfVxuXG4gIGlmIChpc1RydWUoZmFjdG9yeS5sb2FkaW5nKSAmJiBpc0RlZihmYWN0b3J5LmxvYWRpbmdDb21wKSkge1xuICAgIHJldHVybiBmYWN0b3J5LmxvYWRpbmdDb21wXG4gIH1cblxuICBpZiAob3duZXIgJiYgIWlzRGVmKGZhY3Rvcnkub3duZXJzKSkge1xuICAgIHZhciBvd25lcnMgPSBmYWN0b3J5Lm93bmVycyA9IFtvd25lcl07XG4gICAgdmFyIHN5bmMgPSB0cnVlO1xuICAgIHZhciB0aW1lckxvYWRpbmcgPSBudWxsO1xuICAgIHZhciB0aW1lclRpbWVvdXQgPSBudWxsXG5cbiAgICA7KG93bmVyKS4kb24oJ2hvb2s6ZGVzdHJveWVkJywgZnVuY3Rpb24gKCkgeyByZXR1cm4gcmVtb3ZlKG93bmVycywgb3duZXIpOyB9KTtcblxuICAgIHZhciBmb3JjZVJlbmRlciA9IGZ1bmN0aW9uIChyZW5kZXJDb21wbGV0ZWQpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gb3duZXJzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICAob3duZXJzW2ldKS4kZm9yY2VVcGRhdGUoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlbmRlckNvbXBsZXRlZCkge1xuICAgICAgICBvd25lcnMubGVuZ3RoID0gMDtcbiAgICAgICAgaWYgKHRpbWVyTG9hZGluZyAhPT0gbnVsbCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lckxvYWRpbmcpO1xuICAgICAgICAgIHRpbWVyTG9hZGluZyA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRpbWVyVGltZW91dCAhPT0gbnVsbCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lclRpbWVvdXQpO1xuICAgICAgICAgIHRpbWVyVGltZW91dCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdmFyIHJlc29sdmUgPSBvbmNlKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgIC8vIGNhY2hlIHJlc29sdmVkXG4gICAgICBmYWN0b3J5LnJlc29sdmVkID0gZW5zdXJlQ3RvcihyZXMsIGJhc2VDdG9yKTtcbiAgICAgIC8vIGludm9rZSBjYWxsYmFja3Mgb25seSBpZiB0aGlzIGlzIG5vdCBhIHN5bmNocm9ub3VzIHJlc29sdmVcbiAgICAgIC8vIChhc3luYyByZXNvbHZlcyBhcmUgc2hpbW1lZCBhcyBzeW5jaHJvbm91cyBkdXJpbmcgU1NSKVxuICAgICAgaWYgKCFzeW5jKSB7XG4gICAgICAgIGZvcmNlUmVuZGVyKHRydWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3duZXJzLmxlbmd0aCA9IDA7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB2YXIgcmVqZWN0ID0gb25jZShmdW5jdGlvbiAocmVhc29uKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAgIFwiRmFpbGVkIHRvIHJlc29sdmUgYXN5bmMgY29tcG9uZW50OiBcIiArIChTdHJpbmcoZmFjdG9yeSkpICtcbiAgICAgICAgKHJlYXNvbiA/IChcIlxcblJlYXNvbjogXCIgKyByZWFzb24pIDogJycpXG4gICAgICApO1xuICAgICAgaWYgKGlzRGVmKGZhY3RvcnkuZXJyb3JDb21wKSkge1xuICAgICAgICBmYWN0b3J5LmVycm9yID0gdHJ1ZTtcbiAgICAgICAgZm9yY2VSZW5kZXIodHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB2YXIgcmVzID0gZmFjdG9yeShyZXNvbHZlLCByZWplY3QpO1xuXG4gICAgaWYgKGlzT2JqZWN0KHJlcykpIHtcbiAgICAgIGlmIChpc1Byb21pc2UocmVzKSkge1xuICAgICAgICAvLyAoKSA9PiBQcm9taXNlXG4gICAgICAgIGlmIChpc1VuZGVmKGZhY3RvcnkucmVzb2x2ZWQpKSB7XG4gICAgICAgICAgcmVzLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChpc1Byb21pc2UocmVzLmNvbXBvbmVudCkpIHtcbiAgICAgICAgcmVzLmNvbXBvbmVudC50aGVuKHJlc29sdmUsIHJlamVjdCk7XG5cbiAgICAgICAgaWYgKGlzRGVmKHJlcy5lcnJvcikpIHtcbiAgICAgICAgICBmYWN0b3J5LmVycm9yQ29tcCA9IGVuc3VyZUN0b3IocmVzLmVycm9yLCBiYXNlQ3Rvcik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNEZWYocmVzLmxvYWRpbmcpKSB7XG4gICAgICAgICAgZmFjdG9yeS5sb2FkaW5nQ29tcCA9IGVuc3VyZUN0b3IocmVzLmxvYWRpbmcsIGJhc2VDdG9yKTtcbiAgICAgICAgICBpZiAocmVzLmRlbGF5ID09PSAwKSB7XG4gICAgICAgICAgICBmYWN0b3J5LmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aW1lckxvYWRpbmcgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgdGltZXJMb2FkaW5nID0gbnVsbDtcbiAgICAgICAgICAgICAgaWYgKGlzVW5kZWYoZmFjdG9yeS5yZXNvbHZlZCkgJiYgaXNVbmRlZihmYWN0b3J5LmVycm9yKSkge1xuICAgICAgICAgICAgICAgIGZhY3RvcnkubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgZm9yY2VSZW5kZXIoZmFsc2UpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCByZXMuZGVsYXkgfHwgMjAwKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNEZWYocmVzLnRpbWVvdXQpKSB7XG4gICAgICAgICAgdGltZXJUaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aW1lclRpbWVvdXQgPSBudWxsO1xuICAgICAgICAgICAgaWYgKGlzVW5kZWYoZmFjdG9yeS5yZXNvbHZlZCkpIHtcbiAgICAgICAgICAgICAgcmVqZWN0KFxuICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbidcbiAgICAgICAgICAgICAgICAgID8gKFwidGltZW91dCAoXCIgKyAocmVzLnRpbWVvdXQpICsgXCJtcylcIilcbiAgICAgICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sIHJlcy50aW1lb3V0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHN5bmMgPSBmYWxzZTtcbiAgICAvLyByZXR1cm4gaW4gY2FzZSByZXNvbHZlZCBzeW5jaHJvbm91c2x5XG4gICAgcmV0dXJuIGZhY3RvcnkubG9hZGluZ1xuICAgICAgPyBmYWN0b3J5LmxvYWRpbmdDb21wXG4gICAgICA6IGZhY3RvcnkucmVzb2x2ZWRcbiAgfVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gZ2V0Rmlyc3RDb21wb25lbnRDaGlsZCAoY2hpbGRyZW4pIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGMgPSBjaGlsZHJlbltpXTtcbiAgICAgIGlmIChpc0RlZihjKSAmJiAoaXNEZWYoYy5jb21wb25lbnRPcHRpb25zKSB8fCBpc0FzeW5jUGxhY2Vob2xkZXIoYykpKSB7XG4gICAgICAgIHJldHVybiBjXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qICAqL1xuXG4vKiAgKi9cblxuZnVuY3Rpb24gaW5pdEV2ZW50cyAodm0pIHtcbiAgdm0uX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIHZtLl9oYXNIb29rRXZlbnQgPSBmYWxzZTtcbiAgLy8gaW5pdCBwYXJlbnQgYXR0YWNoZWQgZXZlbnRzXG4gIHZhciBsaXN0ZW5lcnMgPSB2bS4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzO1xuICBpZiAobGlzdGVuZXJzKSB7XG4gICAgdXBkYXRlQ29tcG9uZW50TGlzdGVuZXJzKHZtLCBsaXN0ZW5lcnMpO1xuICB9XG59XG5cbnZhciB0YXJnZXQ7XG5cbmZ1bmN0aW9uIGFkZCAoZXZlbnQsIGZuKSB7XG4gIHRhcmdldC4kb24oZXZlbnQsIGZuKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlJDEgKGV2ZW50LCBmbikge1xuICB0YXJnZXQuJG9mZihldmVudCwgZm4pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVPbmNlSGFuZGxlciAoZXZlbnQsIGZuKSB7XG4gIHZhciBfdGFyZ2V0ID0gdGFyZ2V0O1xuICByZXR1cm4gZnVuY3Rpb24gb25jZUhhbmRsZXIgKCkge1xuICAgIHZhciByZXMgPSBmbi5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgIGlmIChyZXMgIT09IG51bGwpIHtcbiAgICAgIF90YXJnZXQuJG9mZihldmVudCwgb25jZUhhbmRsZXIpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVDb21wb25lbnRMaXN0ZW5lcnMgKFxuICB2bSxcbiAgbGlzdGVuZXJzLFxuICBvbGRMaXN0ZW5lcnNcbikge1xuICB0YXJnZXQgPSB2bTtcbiAgdXBkYXRlTGlzdGVuZXJzKGxpc3RlbmVycywgb2xkTGlzdGVuZXJzIHx8IHt9LCBhZGQsIHJlbW92ZSQxLCBjcmVhdGVPbmNlSGFuZGxlciwgdm0pO1xuICB0YXJnZXQgPSB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIGV2ZW50c01peGluIChWdWUpIHtcbiAgdmFyIGhvb2tSRSA9IC9eaG9vazovO1xuICBWdWUucHJvdG90eXBlLiRvbiA9IGZ1bmN0aW9uIChldmVudCwgZm4pIHtcbiAgICB2YXIgdm0gPSB0aGlzO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGV2ZW50KSkge1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBldmVudC5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgdm0uJG9uKGV2ZW50W2ldLCBmbik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICh2bS5fZXZlbnRzW2V2ZW50XSB8fCAodm0uX2V2ZW50c1tldmVudF0gPSBbXSkpLnB1c2goZm4pO1xuICAgICAgLy8gb3B0aW1pemUgaG9vazpldmVudCBjb3N0IGJ5IHVzaW5nIGEgYm9vbGVhbiBmbGFnIG1hcmtlZCBhdCByZWdpc3RyYXRpb25cbiAgICAgIC8vIGluc3RlYWQgb2YgYSBoYXNoIGxvb2t1cFxuICAgICAgaWYgKGhvb2tSRS50ZXN0KGV2ZW50KSkge1xuICAgICAgICB2bS5faGFzSG9va0V2ZW50ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZtXG4gIH07XG5cbiAgVnVlLnByb3RvdHlwZS4kb25jZSA9IGZ1bmN0aW9uIChldmVudCwgZm4pIHtcbiAgICB2YXIgdm0gPSB0aGlzO1xuICAgIGZ1bmN0aW9uIG9uICgpIHtcbiAgICAgIHZtLiRvZmYoZXZlbnQsIG9uKTtcbiAgICAgIGZuLmFwcGx5KHZtLCBhcmd1bWVudHMpO1xuICAgIH1cbiAgICBvbi5mbiA9IGZuO1xuICAgIHZtLiRvbihldmVudCwgb24pO1xuICAgIHJldHVybiB2bVxuICB9O1xuXG4gIFZ1ZS5wcm90b3R5cGUuJG9mZiA9IGZ1bmN0aW9uIChldmVudCwgZm4pIHtcbiAgICB2YXIgdm0gPSB0aGlzO1xuICAgIC8vIGFsbFxuICAgIGlmICghYXJndW1lbnRzLmxlbmd0aCkge1xuICAgICAgdm0uX2V2ZW50cyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgICByZXR1cm4gdm1cbiAgICB9XG4gICAgLy8gYXJyYXkgb2YgZXZlbnRzXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZXZlbnQpKSB7XG4gICAgICBmb3IgKHZhciBpJDEgPSAwLCBsID0gZXZlbnQubGVuZ3RoOyBpJDEgPCBsOyBpJDErKykge1xuICAgICAgICB2bS4kb2ZmKGV2ZW50W2kkMV0sIGZuKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2bVxuICAgIH1cbiAgICAvLyBzcGVjaWZpYyBldmVudFxuICAgIHZhciBjYnMgPSB2bS5fZXZlbnRzW2V2ZW50XTtcbiAgICBpZiAoIWNicykge1xuICAgICAgcmV0dXJuIHZtXG4gICAgfVxuICAgIGlmICghZm4pIHtcbiAgICAgIHZtLl9ldmVudHNbZXZlbnRdID0gbnVsbDtcbiAgICAgIHJldHVybiB2bVxuICAgIH1cbiAgICAvLyBzcGVjaWZpYyBoYW5kbGVyXG4gICAgdmFyIGNiO1xuICAgIHZhciBpID0gY2JzLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICBjYiA9IGNic1tpXTtcbiAgICAgIGlmIChjYiA9PT0gZm4gfHwgY2IuZm4gPT09IGZuKSB7XG4gICAgICAgIGNicy5zcGxpY2UoaSwgMSk7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2bVxuICB9O1xuXG4gIFZ1ZS5wcm90b3R5cGUuJGVtaXQgPSBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICB2YXIgdm0gPSB0aGlzO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgbG93ZXJDYXNlRXZlbnQgPSBldmVudC50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKGxvd2VyQ2FzZUV2ZW50ICE9PSBldmVudCAmJiB2bS5fZXZlbnRzW2xvd2VyQ2FzZUV2ZW50XSkge1xuICAgICAgICB0aXAoXG4gICAgICAgICAgXCJFdmVudCBcXFwiXCIgKyBsb3dlckNhc2VFdmVudCArIFwiXFxcIiBpcyBlbWl0dGVkIGluIGNvbXBvbmVudCBcIiArXG4gICAgICAgICAgKGZvcm1hdENvbXBvbmVudE5hbWUodm0pKSArIFwiIGJ1dCB0aGUgaGFuZGxlciBpcyByZWdpc3RlcmVkIGZvciBcXFwiXCIgKyBldmVudCArIFwiXFxcIi4gXCIgK1xuICAgICAgICAgIFwiTm90ZSB0aGF0IEhUTUwgYXR0cmlidXRlcyBhcmUgY2FzZS1pbnNlbnNpdGl2ZSBhbmQgeW91IGNhbm5vdCB1c2UgXCIgK1xuICAgICAgICAgIFwidi1vbiB0byBsaXN0ZW4gdG8gY2FtZWxDYXNlIGV2ZW50cyB3aGVuIHVzaW5nIGluLURPTSB0ZW1wbGF0ZXMuIFwiICtcbiAgICAgICAgICBcIllvdSBzaG91bGQgcHJvYmFibHkgdXNlIFxcXCJcIiArIChoeXBoZW5hdGUoZXZlbnQpKSArIFwiXFxcIiBpbnN0ZWFkIG9mIFxcXCJcIiArIGV2ZW50ICsgXCJcXFwiLlwiXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBjYnMgPSB2bS5fZXZlbnRzW2V2ZW50XTtcbiAgICBpZiAoY2JzKSB7XG4gICAgICBjYnMgPSBjYnMubGVuZ3RoID4gMSA/IHRvQXJyYXkoY2JzKSA6IGNicztcbiAgICAgIHZhciBhcmdzID0gdG9BcnJheShhcmd1bWVudHMsIDEpO1xuICAgICAgdmFyIGluZm8gPSBcImV2ZW50IGhhbmRsZXIgZm9yIFxcXCJcIiArIGV2ZW50ICsgXCJcXFwiXCI7XG4gICAgICBmb3IgKHZhciBpID0gMCwgbCA9IGNicy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgaW52b2tlV2l0aEVycm9ySGFuZGxpbmcoY2JzW2ldLCB2bSwgYXJncywgdm0sIGluZm8pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdm1cbiAgfTtcbn1cblxuLyogICovXG5cbnZhciBhY3RpdmVJbnN0YW5jZSA9IG51bGw7XG52YXIgaXNVcGRhdGluZ0NoaWxkQ29tcG9uZW50ID0gZmFsc2U7XG5cbmZ1bmN0aW9uIHNldEFjdGl2ZUluc3RhbmNlKHZtKSB7XG4gIHZhciBwcmV2QWN0aXZlSW5zdGFuY2UgPSBhY3RpdmVJbnN0YW5jZTtcbiAgYWN0aXZlSW5zdGFuY2UgPSB2bTtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICBhY3RpdmVJbnN0YW5jZSA9IHByZXZBY3RpdmVJbnN0YW5jZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbml0TGlmZWN5Y2xlICh2bSkge1xuICB2YXIgb3B0aW9ucyA9IHZtLiRvcHRpb25zO1xuXG4gIC8vIGxvY2F0ZSBmaXJzdCBub24tYWJzdHJhY3QgcGFyZW50XG4gIHZhciBwYXJlbnQgPSBvcHRpb25zLnBhcmVudDtcbiAgaWYgKHBhcmVudCAmJiAhb3B0aW9ucy5hYnN0cmFjdCkge1xuICAgIHdoaWxlIChwYXJlbnQuJG9wdGlvbnMuYWJzdHJhY3QgJiYgcGFyZW50LiRwYXJlbnQpIHtcbiAgICAgIHBhcmVudCA9IHBhcmVudC4kcGFyZW50O1xuICAgIH1cbiAgICBwYXJlbnQuJGNoaWxkcmVuLnB1c2godm0pO1xuICB9XG5cbiAgdm0uJHBhcmVudCA9IHBhcmVudDtcbiAgdm0uJHJvb3QgPSBwYXJlbnQgPyBwYXJlbnQuJHJvb3QgOiB2bTtcblxuICB2bS4kY2hpbGRyZW4gPSBbXTtcbiAgdm0uJHJlZnMgPSB7fTtcblxuICB2bS5fd2F0Y2hlciA9IG51bGw7XG4gIHZtLl9pbmFjdGl2ZSA9IG51bGw7XG4gIHZtLl9kaXJlY3RJbmFjdGl2ZSA9IGZhbHNlO1xuICB2bS5faXNNb3VudGVkID0gZmFsc2U7XG4gIHZtLl9pc0Rlc3Ryb3llZCA9IGZhbHNlO1xuICB2bS5faXNCZWluZ0Rlc3Ryb3llZCA9IGZhbHNlO1xufVxuXG5mdW5jdGlvbiBsaWZlY3ljbGVNaXhpbiAoVnVlKSB7XG4gIFZ1ZS5wcm90b3R5cGUuX3VwZGF0ZSA9IGZ1bmN0aW9uICh2bm9kZSwgaHlkcmF0aW5nKSB7XG4gICAgdmFyIHZtID0gdGhpcztcbiAgICB2YXIgcHJldkVsID0gdm0uJGVsO1xuICAgIHZhciBwcmV2Vm5vZGUgPSB2bS5fdm5vZGU7XG4gICAgdmFyIHJlc3RvcmVBY3RpdmVJbnN0YW5jZSA9IHNldEFjdGl2ZUluc3RhbmNlKHZtKTtcbiAgICB2bS5fdm5vZGUgPSB2bm9kZTtcbiAgICAvLyBWdWUucHJvdG90eXBlLl9fcGF0Y2hfXyBpcyBpbmplY3RlZCBpbiBlbnRyeSBwb2ludHNcbiAgICAvLyBiYXNlZCBvbiB0aGUgcmVuZGVyaW5nIGJhY2tlbmQgdXNlZC5cbiAgICBpZiAoIXByZXZWbm9kZSkge1xuICAgICAgLy8gaW5pdGlhbCByZW5kZXJcbiAgICAgIHZtLiRlbCA9IHZtLl9fcGF0Y2hfXyh2bS4kZWwsIHZub2RlLCBoeWRyYXRpbmcsIGZhbHNlIC8qIHJlbW92ZU9ubHkgKi8pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB1cGRhdGVzXG4gICAgICB2bS4kZWwgPSB2bS5fX3BhdGNoX18ocHJldlZub2RlLCB2bm9kZSk7XG4gICAgfVxuICAgIHJlc3RvcmVBY3RpdmVJbnN0YW5jZSgpO1xuICAgIC8vIHVwZGF0ZSBfX3Z1ZV9fIHJlZmVyZW5jZVxuICAgIGlmIChwcmV2RWwpIHtcbiAgICAgIHByZXZFbC5fX3Z1ZV9fID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHZtLiRlbCkge1xuICAgICAgdm0uJGVsLl9fdnVlX18gPSB2bTtcbiAgICB9XG4gICAgLy8gaWYgcGFyZW50IGlzIGFuIEhPQywgdXBkYXRlIGl0cyAkZWwgYXMgd2VsbFxuICAgIGlmICh2bS4kdm5vZGUgJiYgdm0uJHBhcmVudCAmJiB2bS4kdm5vZGUgPT09IHZtLiRwYXJlbnQuX3Zub2RlKSB7XG4gICAgICB2bS4kcGFyZW50LiRlbCA9IHZtLiRlbDtcbiAgICB9XG4gICAgLy8gdXBkYXRlZCBob29rIGlzIGNhbGxlZCBieSB0aGUgc2NoZWR1bGVyIHRvIGVuc3VyZSB0aGF0IGNoaWxkcmVuIGFyZVxuICAgIC8vIHVwZGF0ZWQgaW4gYSBwYXJlbnQncyB1cGRhdGVkIGhvb2suXG4gIH07XG5cbiAgVnVlLnByb3RvdHlwZS4kZm9yY2VVcGRhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHZtID0gdGhpcztcbiAgICBpZiAodm0uX3dhdGNoZXIpIHtcbiAgICAgIHZtLl93YXRjaGVyLnVwZGF0ZSgpO1xuICAgIH1cbiAgfTtcblxuICBWdWUucHJvdG90eXBlLiRkZXN0cm95ID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgaWYgKHZtLl9pc0JlaW5nRGVzdHJveWVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY2FsbEhvb2sodm0sICdiZWZvcmVEZXN0cm95Jyk7XG4gICAgdm0uX2lzQmVpbmdEZXN0cm95ZWQgPSB0cnVlO1xuICAgIC8vIHJlbW92ZSBzZWxmIGZyb20gcGFyZW50XG4gICAgdmFyIHBhcmVudCA9IHZtLiRwYXJlbnQ7XG4gICAgaWYgKHBhcmVudCAmJiAhcGFyZW50Ll9pc0JlaW5nRGVzdHJveWVkICYmICF2bS4kb3B0aW9ucy5hYnN0cmFjdCkge1xuICAgICAgcmVtb3ZlKHBhcmVudC4kY2hpbGRyZW4sIHZtKTtcbiAgICB9XG4gICAgLy8gdGVhcmRvd24gd2F0Y2hlcnNcbiAgICBpZiAodm0uX3dhdGNoZXIpIHtcbiAgICAgIHZtLl93YXRjaGVyLnRlYXJkb3duKCk7XG4gICAgfVxuICAgIHZhciBpID0gdm0uX3dhdGNoZXJzLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICB2bS5fd2F0Y2hlcnNbaV0udGVhcmRvd24oKTtcbiAgICB9XG4gICAgLy8gcmVtb3ZlIHJlZmVyZW5jZSBmcm9tIGRhdGEgb2JcbiAgICAvLyBmcm96ZW4gb2JqZWN0IG1heSBub3QgaGF2ZSBvYnNlcnZlci5cbiAgICBpZiAodm0uX2RhdGEuX19vYl9fKSB7XG4gICAgICB2bS5fZGF0YS5fX29iX18udm1Db3VudC0tO1xuICAgIH1cbiAgICAvLyBjYWxsIHRoZSBsYXN0IGhvb2suLi5cbiAgICB2bS5faXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgIC8vIGludm9rZSBkZXN0cm95IGhvb2tzIG9uIGN1cnJlbnQgcmVuZGVyZWQgdHJlZVxuICAgIHZtLl9fcGF0Y2hfXyh2bS5fdm5vZGUsIG51bGwpO1xuICAgIC8vIGZpcmUgZGVzdHJveWVkIGhvb2tcbiAgICBjYWxsSG9vayh2bSwgJ2Rlc3Ryb3llZCcpO1xuICAgIC8vIHR1cm4gb2ZmIGFsbCBpbnN0YW5jZSBsaXN0ZW5lcnMuXG4gICAgdm0uJG9mZigpO1xuICAgIC8vIHJlbW92ZSBfX3Z1ZV9fIHJlZmVyZW5jZVxuICAgIGlmICh2bS4kZWwpIHtcbiAgICAgIHZtLiRlbC5fX3Z1ZV9fID0gbnVsbDtcbiAgICB9XG4gICAgLy8gcmVsZWFzZSBjaXJjdWxhciByZWZlcmVuY2UgKCM2NzU5KVxuICAgIGlmICh2bS4kdm5vZGUpIHtcbiAgICAgIHZtLiR2bm9kZS5wYXJlbnQgPSBudWxsO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gbW91bnRDb21wb25lbnQgKFxuICB2bSxcbiAgZWwsXG4gIGh5ZHJhdGluZ1xuKSB7XG4gIHZtLiRlbCA9IGVsO1xuICBpZiAoIXZtLiRvcHRpb25zLnJlbmRlcikge1xuICAgIHZtLiRvcHRpb25zLnJlbmRlciA9IGNyZWF0ZUVtcHR5Vk5vZGU7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKCh2bS4kb3B0aW9ucy50ZW1wbGF0ZSAmJiB2bS4kb3B0aW9ucy50ZW1wbGF0ZS5jaGFyQXQoMCkgIT09ICcjJykgfHxcbiAgICAgICAgdm0uJG9wdGlvbnMuZWwgfHwgZWwpIHtcbiAgICAgICAgd2FybihcbiAgICAgICAgICAnWW91IGFyZSB1c2luZyB0aGUgcnVudGltZS1vbmx5IGJ1aWxkIG9mIFZ1ZSB3aGVyZSB0aGUgdGVtcGxhdGUgJyArXG4gICAgICAgICAgJ2NvbXBpbGVyIGlzIG5vdCBhdmFpbGFibGUuIEVpdGhlciBwcmUtY29tcGlsZSB0aGUgdGVtcGxhdGVzIGludG8gJyArXG4gICAgICAgICAgJ3JlbmRlciBmdW5jdGlvbnMsIG9yIHVzZSB0aGUgY29tcGlsZXItaW5jbHVkZWQgYnVpbGQuJyxcbiAgICAgICAgICB2bVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2FybihcbiAgICAgICAgICAnRmFpbGVkIHRvIG1vdW50IGNvbXBvbmVudDogdGVtcGxhdGUgb3IgcmVuZGVyIGZ1bmN0aW9uIG5vdCBkZWZpbmVkLicsXG4gICAgICAgICAgdm1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY2FsbEhvb2sodm0sICdiZWZvcmVNb3VudCcpO1xuXG4gIHZhciB1cGRhdGVDb21wb25lbnQ7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBjb25maWcucGVyZm9ybWFuY2UgJiYgbWFyaykge1xuICAgIHVwZGF0ZUNvbXBvbmVudCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBuYW1lID0gdm0uX25hbWU7XG4gICAgICB2YXIgaWQgPSB2bS5fdWlkO1xuICAgICAgdmFyIHN0YXJ0VGFnID0gXCJ2dWUtcGVyZi1zdGFydDpcIiArIGlkO1xuICAgICAgdmFyIGVuZFRhZyA9IFwidnVlLXBlcmYtZW5kOlwiICsgaWQ7XG5cbiAgICAgIG1hcmsoc3RhcnRUYWcpO1xuICAgICAgdmFyIHZub2RlID0gdm0uX3JlbmRlcigpO1xuICAgICAgbWFyayhlbmRUYWcpO1xuICAgICAgbWVhc3VyZSgoXCJ2dWUgXCIgKyBuYW1lICsgXCIgcmVuZGVyXCIpLCBzdGFydFRhZywgZW5kVGFnKTtcblxuICAgICAgbWFyayhzdGFydFRhZyk7XG4gICAgICB2bS5fdXBkYXRlKHZub2RlLCBoeWRyYXRpbmcpO1xuICAgICAgbWFyayhlbmRUYWcpO1xuICAgICAgbWVhc3VyZSgoXCJ2dWUgXCIgKyBuYW1lICsgXCIgcGF0Y2hcIiksIHN0YXJ0VGFnLCBlbmRUYWcpO1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgdXBkYXRlQ29tcG9uZW50ID0gZnVuY3Rpb24gKCkge1xuICAgICAgdm0uX3VwZGF0ZSh2bS5fcmVuZGVyKCksIGh5ZHJhdGluZyk7XG4gICAgfTtcbiAgfVxuXG4gIC8vIHdlIHNldCB0aGlzIHRvIHZtLl93YXRjaGVyIGluc2lkZSB0aGUgd2F0Y2hlcidzIGNvbnN0cnVjdG9yXG4gIC8vIHNpbmNlIHRoZSB3YXRjaGVyJ3MgaW5pdGlhbCBwYXRjaCBtYXkgY2FsbCAkZm9yY2VVcGRhdGUgKGUuZy4gaW5zaWRlIGNoaWxkXG4gIC8vIGNvbXBvbmVudCdzIG1vdW50ZWQgaG9vayksIHdoaWNoIHJlbGllcyBvbiB2bS5fd2F0Y2hlciBiZWluZyBhbHJlYWR5IGRlZmluZWRcbiAgbmV3IFdhdGNoZXIodm0sIHVwZGF0ZUNvbXBvbmVudCwgbm9vcCwge1xuICAgIGJlZm9yZTogZnVuY3Rpb24gYmVmb3JlICgpIHtcbiAgICAgIGlmICh2bS5faXNNb3VudGVkICYmICF2bS5faXNEZXN0cm95ZWQpIHtcbiAgICAgICAgY2FsbEhvb2sodm0sICdiZWZvcmVVcGRhdGUnKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHRydWUgLyogaXNSZW5kZXJXYXRjaGVyICovKTtcbiAgaHlkcmF0aW5nID0gZmFsc2U7XG5cbiAgLy8gbWFudWFsbHkgbW91bnRlZCBpbnN0YW5jZSwgY2FsbCBtb3VudGVkIG9uIHNlbGZcbiAgLy8gbW91bnRlZCBpcyBjYWxsZWQgZm9yIHJlbmRlci1jcmVhdGVkIGNoaWxkIGNvbXBvbmVudHMgaW4gaXRzIGluc2VydGVkIGhvb2tcbiAgaWYgKHZtLiR2bm9kZSA9PSBudWxsKSB7XG4gICAgdm0uX2lzTW91bnRlZCA9IHRydWU7XG4gICAgY2FsbEhvb2sodm0sICdtb3VudGVkJyk7XG4gIH1cbiAgcmV0dXJuIHZtXG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUNoaWxkQ29tcG9uZW50IChcbiAgdm0sXG4gIHByb3BzRGF0YSxcbiAgbGlzdGVuZXJzLFxuICBwYXJlbnRWbm9kZSxcbiAgcmVuZGVyQ2hpbGRyZW5cbikge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlzVXBkYXRpbmdDaGlsZENvbXBvbmVudCA9IHRydWU7XG4gIH1cblxuICAvLyBkZXRlcm1pbmUgd2hldGhlciBjb21wb25lbnQgaGFzIHNsb3QgY2hpbGRyZW5cbiAgLy8gd2UgbmVlZCB0byBkbyB0aGlzIGJlZm9yZSBvdmVyd3JpdGluZyAkb3B0aW9ucy5fcmVuZGVyQ2hpbGRyZW4uXG5cbiAgLy8gY2hlY2sgaWYgdGhlcmUgYXJlIGR5bmFtaWMgc2NvcGVkU2xvdHMgKGhhbmQtd3JpdHRlbiBvciBjb21waWxlZCBidXQgd2l0aFxuICAvLyBkeW5hbWljIHNsb3QgbmFtZXMpLiBTdGF0aWMgc2NvcGVkIHNsb3RzIGNvbXBpbGVkIGZyb20gdGVtcGxhdGUgaGFzIHRoZVxuICAvLyBcIiRzdGFibGVcIiBtYXJrZXIuXG4gIHZhciBuZXdTY29wZWRTbG90cyA9IHBhcmVudFZub2RlLmRhdGEuc2NvcGVkU2xvdHM7XG4gIHZhciBvbGRTY29wZWRTbG90cyA9IHZtLiRzY29wZWRTbG90cztcbiAgdmFyIGhhc0R5bmFtaWNTY29wZWRTbG90ID0gISEoXG4gICAgKG5ld1Njb3BlZFNsb3RzICYmICFuZXdTY29wZWRTbG90cy4kc3RhYmxlKSB8fFxuICAgIChvbGRTY29wZWRTbG90cyAhPT0gZW1wdHlPYmplY3QgJiYgIW9sZFNjb3BlZFNsb3RzLiRzdGFibGUpIHx8XG4gICAgKG5ld1Njb3BlZFNsb3RzICYmIHZtLiRzY29wZWRTbG90cy4ka2V5ICE9PSBuZXdTY29wZWRTbG90cy4ka2V5KSB8fFxuICAgICghbmV3U2NvcGVkU2xvdHMgJiYgdm0uJHNjb3BlZFNsb3RzLiRrZXkpXG4gICk7XG5cbiAgLy8gQW55IHN0YXRpYyBzbG90IGNoaWxkcmVuIGZyb20gdGhlIHBhcmVudCBtYXkgaGF2ZSBjaGFuZ2VkIGR1cmluZyBwYXJlbnQnc1xuICAvLyB1cGRhdGUuIER5bmFtaWMgc2NvcGVkIHNsb3RzIG1heSBhbHNvIGhhdmUgY2hhbmdlZC4gSW4gc3VjaCBjYXNlcywgYSBmb3JjZWRcbiAgLy8gdXBkYXRlIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUgY29ycmVjdG5lc3MuXG4gIHZhciBuZWVkc0ZvcmNlVXBkYXRlID0gISEoXG4gICAgcmVuZGVyQ2hpbGRyZW4gfHwgICAgICAgICAgICAgICAvLyBoYXMgbmV3IHN0YXRpYyBzbG90c1xuICAgIHZtLiRvcHRpb25zLl9yZW5kZXJDaGlsZHJlbiB8fCAgLy8gaGFzIG9sZCBzdGF0aWMgc2xvdHNcbiAgICBoYXNEeW5hbWljU2NvcGVkU2xvdFxuICApO1xuXG4gIHZtLiRvcHRpb25zLl9wYXJlbnRWbm9kZSA9IHBhcmVudFZub2RlO1xuICB2bS4kdm5vZGUgPSBwYXJlbnRWbm9kZTsgLy8gdXBkYXRlIHZtJ3MgcGxhY2Vob2xkZXIgbm9kZSB3aXRob3V0IHJlLXJlbmRlclxuXG4gIGlmICh2bS5fdm5vZGUpIHsgLy8gdXBkYXRlIGNoaWxkIHRyZWUncyBwYXJlbnRcbiAgICB2bS5fdm5vZGUucGFyZW50ID0gcGFyZW50Vm5vZGU7XG4gIH1cbiAgdm0uJG9wdGlvbnMuX3JlbmRlckNoaWxkcmVuID0gcmVuZGVyQ2hpbGRyZW47XG5cbiAgLy8gdXBkYXRlICRhdHRycyBhbmQgJGxpc3RlbmVycyBoYXNoXG4gIC8vIHRoZXNlIGFyZSBhbHNvIHJlYWN0aXZlIHNvIHRoZXkgbWF5IHRyaWdnZXIgY2hpbGQgdXBkYXRlIGlmIHRoZSBjaGlsZFxuICAvLyB1c2VkIHRoZW0gZHVyaW5nIHJlbmRlclxuICB2bS4kYXR0cnMgPSBwYXJlbnRWbm9kZS5kYXRhLmF0dHJzIHx8IGVtcHR5T2JqZWN0O1xuICB2bS4kbGlzdGVuZXJzID0gbGlzdGVuZXJzIHx8IGVtcHR5T2JqZWN0O1xuXG4gIC8vIHVwZGF0ZSBwcm9wc1xuICBpZiAocHJvcHNEYXRhICYmIHZtLiRvcHRpb25zLnByb3BzKSB7XG4gICAgdG9nZ2xlT2JzZXJ2aW5nKGZhbHNlKTtcbiAgICB2YXIgcHJvcHMgPSB2bS5fcHJvcHM7XG4gICAgdmFyIHByb3BLZXlzID0gdm0uJG9wdGlvbnMuX3Byb3BLZXlzIHx8IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcEtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBrZXkgPSBwcm9wS2V5c1tpXTtcbiAgICAgIHZhciBwcm9wT3B0aW9ucyA9IHZtLiRvcHRpb25zLnByb3BzOyAvLyB3dGYgZmxvdz9cbiAgICAgIHByb3BzW2tleV0gPSB2YWxpZGF0ZVByb3Aoa2V5LCBwcm9wT3B0aW9ucywgcHJvcHNEYXRhLCB2bSk7XG4gICAgfVxuICAgIHRvZ2dsZU9ic2VydmluZyh0cnVlKTtcbiAgICAvLyBrZWVwIGEgY29weSBvZiByYXcgcHJvcHNEYXRhXG4gICAgdm0uJG9wdGlvbnMucHJvcHNEYXRhID0gcHJvcHNEYXRhO1xuICB9XG5cbiAgLy8gdXBkYXRlIGxpc3RlbmVyc1xuICBsaXN0ZW5lcnMgPSBsaXN0ZW5lcnMgfHwgZW1wdHlPYmplY3Q7XG4gIHZhciBvbGRMaXN0ZW5lcnMgPSB2bS4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzO1xuICB2bS4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzID0gbGlzdGVuZXJzO1xuICB1cGRhdGVDb21wb25lbnRMaXN0ZW5lcnModm0sIGxpc3RlbmVycywgb2xkTGlzdGVuZXJzKTtcblxuICAvLyByZXNvbHZlIHNsb3RzICsgZm9yY2UgdXBkYXRlIGlmIGhhcyBjaGlsZHJlblxuICBpZiAobmVlZHNGb3JjZVVwZGF0ZSkge1xuICAgIHZtLiRzbG90cyA9IHJlc29sdmVTbG90cyhyZW5kZXJDaGlsZHJlbiwgcGFyZW50Vm5vZGUuY29udGV4dCk7XG4gICAgdm0uJGZvcmNlVXBkYXRlKCk7XG4gIH1cblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlzVXBkYXRpbmdDaGlsZENvbXBvbmVudCA9IGZhbHNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGlzSW5JbmFjdGl2ZVRyZWUgKHZtKSB7XG4gIHdoaWxlICh2bSAmJiAodm0gPSB2bS4kcGFyZW50KSkge1xuICAgIGlmICh2bS5faW5hY3RpdmUpIHsgcmV0dXJuIHRydWUgfVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG5mdW5jdGlvbiBhY3RpdmF0ZUNoaWxkQ29tcG9uZW50ICh2bSwgZGlyZWN0KSB7XG4gIGlmIChkaXJlY3QpIHtcbiAgICB2bS5fZGlyZWN0SW5hY3RpdmUgPSBmYWxzZTtcbiAgICBpZiAoaXNJbkluYWN0aXZlVHJlZSh2bSkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfSBlbHNlIGlmICh2bS5fZGlyZWN0SW5hY3RpdmUpIHtcbiAgICByZXR1cm5cbiAgfVxuICBpZiAodm0uX2luYWN0aXZlIHx8IHZtLl9pbmFjdGl2ZSA9PT0gbnVsbCkge1xuICAgIHZtLl9pbmFjdGl2ZSA9IGZhbHNlO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdm0uJGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICBhY3RpdmF0ZUNoaWxkQ29tcG9uZW50KHZtLiRjaGlsZHJlbltpXSk7XG4gICAgfVxuICAgIGNhbGxIb29rKHZtLCAnYWN0aXZhdGVkJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZGVhY3RpdmF0ZUNoaWxkQ29tcG9uZW50ICh2bSwgZGlyZWN0KSB7XG4gIGlmIChkaXJlY3QpIHtcbiAgICB2bS5fZGlyZWN0SW5hY3RpdmUgPSB0cnVlO1xuICAgIGlmIChpc0luSW5hY3RpdmVUcmVlKHZtKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG4gIGlmICghdm0uX2luYWN0aXZlKSB7XG4gICAgdm0uX2luYWN0aXZlID0gdHJ1ZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZtLiRjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgZGVhY3RpdmF0ZUNoaWxkQ29tcG9uZW50KHZtLiRjaGlsZHJlbltpXSk7XG4gICAgfVxuICAgIGNhbGxIb29rKHZtLCAnZGVhY3RpdmF0ZWQnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjYWxsSG9vayAodm0sIGhvb2spIHtcbiAgLy8gIzc1NzMgZGlzYWJsZSBkZXAgY29sbGVjdGlvbiB3aGVuIGludm9raW5nIGxpZmVjeWNsZSBob29rc1xuICBwdXNoVGFyZ2V0KCk7XG4gIHZhciBoYW5kbGVycyA9IHZtLiRvcHRpb25zW2hvb2tdO1xuICB2YXIgaW5mbyA9IGhvb2sgKyBcIiBob29rXCI7XG4gIGlmIChoYW5kbGVycykge1xuICAgIGZvciAodmFyIGkgPSAwLCBqID0gaGFuZGxlcnMubGVuZ3RoOyBpIDwgajsgaSsrKSB7XG4gICAgICBpbnZva2VXaXRoRXJyb3JIYW5kbGluZyhoYW5kbGVyc1tpXSwgdm0sIG51bGwsIHZtLCBpbmZvKTtcbiAgICB9XG4gIH1cbiAgaWYgKHZtLl9oYXNIb29rRXZlbnQpIHtcbiAgICB2bS4kZW1pdCgnaG9vazonICsgaG9vayk7XG4gIH1cbiAgcG9wVGFyZ2V0KCk7XG59XG5cbi8qICAqL1xuXG52YXIgTUFYX1VQREFURV9DT1VOVCA9IDEwMDtcblxudmFyIHF1ZXVlID0gW107XG52YXIgYWN0aXZhdGVkQ2hpbGRyZW4gPSBbXTtcbnZhciBoYXMgPSB7fTtcbnZhciBjaXJjdWxhciA9IHt9O1xudmFyIHdhaXRpbmcgPSBmYWxzZTtcbnZhciBmbHVzaGluZyA9IGZhbHNlO1xudmFyIGluZGV4ID0gMDtcblxuLyoqXG4gKiBSZXNldCB0aGUgc2NoZWR1bGVyJ3Mgc3RhdGUuXG4gKi9cbmZ1bmN0aW9uIHJlc2V0U2NoZWR1bGVyU3RhdGUgKCkge1xuICBpbmRleCA9IHF1ZXVlLmxlbmd0aCA9IGFjdGl2YXRlZENoaWxkcmVuLmxlbmd0aCA9IDA7XG4gIGhhcyA9IHt9O1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGNpcmN1bGFyID0ge307XG4gIH1cbiAgd2FpdGluZyA9IGZsdXNoaW5nID0gZmFsc2U7XG59XG5cbi8vIEFzeW5jIGVkZ2UgY2FzZSAjNjU2NiByZXF1aXJlcyBzYXZpbmcgdGhlIHRpbWVzdGFtcCB3aGVuIGV2ZW50IGxpc3RlbmVycyBhcmVcbi8vIGF0dGFjaGVkLiBIb3dldmVyLCBjYWxsaW5nIHBlcmZvcm1hbmNlLm5vdygpIGhhcyBhIHBlcmYgb3ZlcmhlYWQgZXNwZWNpYWxseVxuLy8gaWYgdGhlIHBhZ2UgaGFzIHRob3VzYW5kcyBvZiBldmVudCBsaXN0ZW5lcnMuIEluc3RlYWQsIHdlIHRha2UgYSB0aW1lc3RhbXBcbi8vIGV2ZXJ5IHRpbWUgdGhlIHNjaGVkdWxlciBmbHVzaGVzIGFuZCB1c2UgdGhhdCBmb3IgYWxsIGV2ZW50IGxpc3RlbmVyc1xuLy8gYXR0YWNoZWQgZHVyaW5nIHRoYXQgZmx1c2guXG52YXIgY3VycmVudEZsdXNoVGltZXN0YW1wID0gMDtcblxuLy8gQXN5bmMgZWRnZSBjYXNlIGZpeCByZXF1aXJlcyBzdG9yaW5nIGFuIGV2ZW50IGxpc3RlbmVyJ3MgYXR0YWNoIHRpbWVzdGFtcC5cbnZhciBnZXROb3cgPSBEYXRlLm5vdztcblxuLy8gRGV0ZXJtaW5lIHdoYXQgZXZlbnQgdGltZXN0YW1wIHRoZSBicm93c2VyIGlzIHVzaW5nLiBBbm5veWluZ2x5LCB0aGVcbi8vIHRpbWVzdGFtcCBjYW4gZWl0aGVyIGJlIGhpLXJlcyAocmVsYXRpdmUgdG8gcGFnZSBsb2FkKSBvciBsb3ctcmVzXG4vLyAocmVsYXRpdmUgdG8gVU5JWCBlcG9jaCksIHNvIGluIG9yZGVyIHRvIGNvbXBhcmUgdGltZSB3ZSBoYXZlIHRvIHVzZSB0aGVcbi8vIHNhbWUgdGltZXN0YW1wIHR5cGUgd2hlbiBzYXZpbmcgdGhlIGZsdXNoIHRpbWVzdGFtcC5cbi8vIEFsbCBJRSB2ZXJzaW9ucyB1c2UgbG93LXJlcyBldmVudCB0aW1lc3RhbXBzLCBhbmQgaGF2ZSBwcm9ibGVtYXRpYyBjbG9ja1xuLy8gaW1wbGVtZW50YXRpb25zICgjOTYzMilcbmlmIChpbkJyb3dzZXIgJiYgIWlzSUUpIHtcbiAgdmFyIHBlcmZvcm1hbmNlID0gd2luZG93LnBlcmZvcm1hbmNlO1xuICBpZiAoXG4gICAgcGVyZm9ybWFuY2UgJiZcbiAgICB0eXBlb2YgcGVyZm9ybWFuY2Uubm93ID09PSAnZnVuY3Rpb24nICYmXG4gICAgZ2V0Tm93KCkgPiBkb2N1bWVudC5jcmVhdGVFdmVudCgnRXZlbnQnKS50aW1lU3RhbXBcbiAgKSB7XG4gICAgLy8gaWYgdGhlIGV2ZW50IHRpbWVzdGFtcCwgYWx0aG91Z2ggZXZhbHVhdGVkIEFGVEVSIHRoZSBEYXRlLm5vdygpLCBpc1xuICAgIC8vIHNtYWxsZXIgdGhhbiBpdCwgaXQgbWVhbnMgdGhlIGV2ZW50IGlzIHVzaW5nIGEgaGktcmVzIHRpbWVzdGFtcCxcbiAgICAvLyBhbmQgd2UgbmVlZCB0byB1c2UgdGhlIGhpLXJlcyB2ZXJzaW9uIGZvciBldmVudCBsaXN0ZW5lciB0aW1lc3RhbXBzIGFzXG4gICAgLy8gd2VsbC5cbiAgICBnZXROb3cgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBwZXJmb3JtYW5jZS5ub3coKTsgfTtcbiAgfVxufVxuXG4vKipcbiAqIEZsdXNoIGJvdGggcXVldWVzIGFuZCBydW4gdGhlIHdhdGNoZXJzLlxuICovXG5mdW5jdGlvbiBmbHVzaFNjaGVkdWxlclF1ZXVlICgpIHtcbiAgY3VycmVudEZsdXNoVGltZXN0YW1wID0gZ2V0Tm93KCk7XG4gIGZsdXNoaW5nID0gdHJ1ZTtcbiAgdmFyIHdhdGNoZXIsIGlkO1xuXG4gIC8vIFNvcnQgcXVldWUgYmVmb3JlIGZsdXNoLlxuICAvLyBUaGlzIGVuc3VyZXMgdGhhdDpcbiAgLy8gMS4gQ29tcG9uZW50cyBhcmUgdXBkYXRlZCBmcm9tIHBhcmVudCB0byBjaGlsZC4gKGJlY2F1c2UgcGFyZW50IGlzIGFsd2F5c1xuICAvLyAgICBjcmVhdGVkIGJlZm9yZSB0aGUgY2hpbGQpXG4gIC8vIDIuIEEgY29tcG9uZW50J3MgdXNlciB3YXRjaGVycyBhcmUgcnVuIGJlZm9yZSBpdHMgcmVuZGVyIHdhdGNoZXIgKGJlY2F1c2VcbiAgLy8gICAgdXNlciB3YXRjaGVycyBhcmUgY3JlYXRlZCBiZWZvcmUgdGhlIHJlbmRlciB3YXRjaGVyKVxuICAvLyAzLiBJZiBhIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQgZHVyaW5nIGEgcGFyZW50IGNvbXBvbmVudCdzIHdhdGNoZXIgcnVuLFxuICAvLyAgICBpdHMgd2F0Y2hlcnMgY2FuIGJlIHNraXBwZWQuXG4gIHF1ZXVlLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEuaWQgLSBiLmlkOyB9KTtcblxuICAvLyBkbyBub3QgY2FjaGUgbGVuZ3RoIGJlY2F1c2UgbW9yZSB3YXRjaGVycyBtaWdodCBiZSBwdXNoZWRcbiAgLy8gYXMgd2UgcnVuIGV4aXN0aW5nIHdhdGNoZXJzXG4gIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IHF1ZXVlLmxlbmd0aDsgaW5kZXgrKykge1xuICAgIHdhdGNoZXIgPSBxdWV1ZVtpbmRleF07XG4gICAgaWYgKHdhdGNoZXIuYmVmb3JlKSB7XG4gICAgICB3YXRjaGVyLmJlZm9yZSgpO1xuICAgIH1cbiAgICBpZCA9IHdhdGNoZXIuaWQ7XG4gICAgaGFzW2lkXSA9IG51bGw7XG4gICAgd2F0Y2hlci5ydW4oKTtcbiAgICAvLyBpbiBkZXYgYnVpbGQsIGNoZWNrIGFuZCBzdG9wIGNpcmN1bGFyIHVwZGF0ZXMuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgaGFzW2lkXSAhPSBudWxsKSB7XG4gICAgICBjaXJjdWxhcltpZF0gPSAoY2lyY3VsYXJbaWRdIHx8IDApICsgMTtcbiAgICAgIGlmIChjaXJjdWxhcltpZF0gPiBNQVhfVVBEQVRFX0NPVU5UKSB7XG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgJ1lvdSBtYXkgaGF2ZSBhbiBpbmZpbml0ZSB1cGRhdGUgbG9vcCAnICsgKFxuICAgICAgICAgICAgd2F0Y2hlci51c2VyXG4gICAgICAgICAgICAgID8gKFwiaW4gd2F0Y2hlciB3aXRoIGV4cHJlc3Npb24gXFxcIlwiICsgKHdhdGNoZXIuZXhwcmVzc2lvbikgKyBcIlxcXCJcIilcbiAgICAgICAgICAgICAgOiBcImluIGEgY29tcG9uZW50IHJlbmRlciBmdW5jdGlvbi5cIlxuICAgICAgICAgICksXG4gICAgICAgICAgd2F0Y2hlci52bVxuICAgICAgICApO1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGtlZXAgY29waWVzIG9mIHBvc3QgcXVldWVzIGJlZm9yZSByZXNldHRpbmcgc3RhdGVcbiAgdmFyIGFjdGl2YXRlZFF1ZXVlID0gYWN0aXZhdGVkQ2hpbGRyZW4uc2xpY2UoKTtcbiAgdmFyIHVwZGF0ZWRRdWV1ZSA9IHF1ZXVlLnNsaWNlKCk7XG5cbiAgcmVzZXRTY2hlZHVsZXJTdGF0ZSgpO1xuXG4gIC8vIGNhbGwgY29tcG9uZW50IHVwZGF0ZWQgYW5kIGFjdGl2YXRlZCBob29rc1xuICBjYWxsQWN0aXZhdGVkSG9va3MoYWN0aXZhdGVkUXVldWUpO1xuICBjYWxsVXBkYXRlZEhvb2tzKHVwZGF0ZWRRdWV1ZSk7XG5cbiAgLy8gZGV2dG9vbCBob29rXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoZGV2dG9vbHMgJiYgY29uZmlnLmRldnRvb2xzKSB7XG4gICAgZGV2dG9vbHMuZW1pdCgnZmx1c2gnKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjYWxsVXBkYXRlZEhvb2tzIChxdWV1ZSkge1xuICB2YXIgaSA9IHF1ZXVlLmxlbmd0aDtcbiAgd2hpbGUgKGktLSkge1xuICAgIHZhciB3YXRjaGVyID0gcXVldWVbaV07XG4gICAgdmFyIHZtID0gd2F0Y2hlci52bTtcbiAgICBpZiAodm0uX3dhdGNoZXIgPT09IHdhdGNoZXIgJiYgdm0uX2lzTW91bnRlZCAmJiAhdm0uX2lzRGVzdHJveWVkKSB7XG4gICAgICBjYWxsSG9vayh2bSwgJ3VwZGF0ZWQnKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBRdWV1ZSBhIGtlcHQtYWxpdmUgY29tcG9uZW50IHRoYXQgd2FzIGFjdGl2YXRlZCBkdXJpbmcgcGF0Y2guXG4gKiBUaGUgcXVldWUgd2lsbCBiZSBwcm9jZXNzZWQgYWZ0ZXIgdGhlIGVudGlyZSB0cmVlIGhhcyBiZWVuIHBhdGNoZWQuXG4gKi9cbmZ1bmN0aW9uIHF1ZXVlQWN0aXZhdGVkQ29tcG9uZW50ICh2bSkge1xuICAvLyBzZXR0aW5nIF9pbmFjdGl2ZSB0byBmYWxzZSBoZXJlIHNvIHRoYXQgYSByZW5kZXIgZnVuY3Rpb24gY2FuXG4gIC8vIHJlbHkgb24gY2hlY2tpbmcgd2hldGhlciBpdCdzIGluIGFuIGluYWN0aXZlIHRyZWUgKGUuZy4gcm91dGVyLXZpZXcpXG4gIHZtLl9pbmFjdGl2ZSA9IGZhbHNlO1xuICBhY3RpdmF0ZWRDaGlsZHJlbi5wdXNoKHZtKTtcbn1cblxuZnVuY3Rpb24gY2FsbEFjdGl2YXRlZEhvb2tzIChxdWV1ZSkge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHF1ZXVlLmxlbmd0aDsgaSsrKSB7XG4gICAgcXVldWVbaV0uX2luYWN0aXZlID0gdHJ1ZTtcbiAgICBhY3RpdmF0ZUNoaWxkQ29tcG9uZW50KHF1ZXVlW2ldLCB0cnVlIC8qIHRydWUgKi8pO1xuICB9XG59XG5cbi8qKlxuICogUHVzaCBhIHdhdGNoZXIgaW50byB0aGUgd2F0Y2hlciBxdWV1ZS5cbiAqIEpvYnMgd2l0aCBkdXBsaWNhdGUgSURzIHdpbGwgYmUgc2tpcHBlZCB1bmxlc3MgaXQnc1xuICogcHVzaGVkIHdoZW4gdGhlIHF1ZXVlIGlzIGJlaW5nIGZsdXNoZWQuXG4gKi9cbmZ1bmN0aW9uIHF1ZXVlV2F0Y2hlciAod2F0Y2hlcikge1xuICB2YXIgaWQgPSB3YXRjaGVyLmlkO1xuICBpZiAoaGFzW2lkXSA9PSBudWxsKSB7XG4gICAgaGFzW2lkXSA9IHRydWU7XG4gICAgaWYgKCFmbHVzaGluZykge1xuICAgICAgcXVldWUucHVzaCh3YXRjaGVyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaWYgYWxyZWFkeSBmbHVzaGluZywgc3BsaWNlIHRoZSB3YXRjaGVyIGJhc2VkIG9uIGl0cyBpZFxuICAgICAgLy8gaWYgYWxyZWFkeSBwYXN0IGl0cyBpZCwgaXQgd2lsbCBiZSBydW4gbmV4dCBpbW1lZGlhdGVseS5cbiAgICAgIHZhciBpID0gcXVldWUubGVuZ3RoIC0gMTtcbiAgICAgIHdoaWxlIChpID4gaW5kZXggJiYgcXVldWVbaV0uaWQgPiB3YXRjaGVyLmlkKSB7XG4gICAgICAgIGktLTtcbiAgICAgIH1cbiAgICAgIHF1ZXVlLnNwbGljZShpICsgMSwgMCwgd2F0Y2hlcik7XG4gICAgfVxuICAgIC8vIHF1ZXVlIHRoZSBmbHVzaFxuICAgIGlmICghd2FpdGluZykge1xuICAgICAgd2FpdGluZyA9IHRydWU7XG5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICFjb25maWcuYXN5bmMpIHtcbiAgICAgICAgZmx1c2hTY2hlZHVsZXJRdWV1ZSgpO1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIG5leHRUaWNrKGZsdXNoU2NoZWR1bGVyUXVldWUpO1xuICAgIH1cbiAgfVxufVxuXG4vKiAgKi9cblxuXG5cbnZhciB1aWQkMiA9IDA7XG5cbi8qKlxuICogQSB3YXRjaGVyIHBhcnNlcyBhbiBleHByZXNzaW9uLCBjb2xsZWN0cyBkZXBlbmRlbmNpZXMsXG4gKiBhbmQgZmlyZXMgY2FsbGJhY2sgd2hlbiB0aGUgZXhwcmVzc2lvbiB2YWx1ZSBjaGFuZ2VzLlxuICogVGhpcyBpcyB1c2VkIGZvciBib3RoIHRoZSAkd2F0Y2goKSBhcGkgYW5kIGRpcmVjdGl2ZXMuXG4gKi9cbnZhciBXYXRjaGVyID0gZnVuY3Rpb24gV2F0Y2hlciAoXG4gIHZtLFxuICBleHBPckZuLFxuICBjYixcbiAgb3B0aW9ucyxcbiAgaXNSZW5kZXJXYXRjaGVyXG4pIHtcbiAgdGhpcy52bSA9IHZtO1xuICBpZiAoaXNSZW5kZXJXYXRjaGVyKSB7XG4gICAgdm0uX3dhdGNoZXIgPSB0aGlzO1xuICB9XG4gIHZtLl93YXRjaGVycy5wdXNoKHRoaXMpO1xuICAvLyBvcHRpb25zXG4gIGlmIChvcHRpb25zKSB7XG4gICAgdGhpcy5kZWVwID0gISFvcHRpb25zLmRlZXA7XG4gICAgdGhpcy51c2VyID0gISFvcHRpb25zLnVzZXI7XG4gICAgdGhpcy5sYXp5ID0gISFvcHRpb25zLmxhenk7XG4gICAgdGhpcy5zeW5jID0gISFvcHRpb25zLnN5bmM7XG4gICAgdGhpcy5iZWZvcmUgPSBvcHRpb25zLmJlZm9yZTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLmRlZXAgPSB0aGlzLnVzZXIgPSB0aGlzLmxhenkgPSB0aGlzLnN5bmMgPSBmYWxzZTtcbiAgfVxuICB0aGlzLmNiID0gY2I7XG4gIHRoaXMuaWQgPSArK3VpZCQyOyAvLyB1aWQgZm9yIGJhdGNoaW5nXG4gIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgdGhpcy5kaXJ0eSA9IHRoaXMubGF6eTsgLy8gZm9yIGxhenkgd2F0Y2hlcnNcbiAgdGhpcy5kZXBzID0gW107XG4gIHRoaXMubmV3RGVwcyA9IFtdO1xuICB0aGlzLmRlcElkcyA9IG5ldyBfU2V0KCk7XG4gIHRoaXMubmV3RGVwSWRzID0gbmV3IF9TZXQoKTtcbiAgdGhpcy5leHByZXNzaW9uID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJ1xuICAgID8gZXhwT3JGbi50b1N0cmluZygpXG4gICAgOiAnJztcbiAgLy8gcGFyc2UgZXhwcmVzc2lvbiBmb3IgZ2V0dGVyXG4gIGlmICh0eXBlb2YgZXhwT3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHRoaXMuZ2V0dGVyID0gZXhwT3JGbjtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLmdldHRlciA9IHBhcnNlUGF0aChleHBPckZuKTtcbiAgICBpZiAoIXRoaXMuZ2V0dGVyKSB7XG4gICAgICB0aGlzLmdldHRlciA9IG5vb3A7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAgIFwiRmFpbGVkIHdhdGNoaW5nIHBhdGg6IFxcXCJcIiArIGV4cE9yRm4gKyBcIlxcXCIgXCIgK1xuICAgICAgICAnV2F0Y2hlciBvbmx5IGFjY2VwdHMgc2ltcGxlIGRvdC1kZWxpbWl0ZWQgcGF0aHMuICcgK1xuICAgICAgICAnRm9yIGZ1bGwgY29udHJvbCwgdXNlIGEgZnVuY3Rpb24gaW5zdGVhZC4nLFxuICAgICAgICB2bVxuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgdGhpcy52YWx1ZSA9IHRoaXMubGF6eVxuICAgID8gdW5kZWZpbmVkXG4gICAgOiB0aGlzLmdldCgpO1xufTtcblxuLyoqXG4gKiBFdmFsdWF0ZSB0aGUgZ2V0dGVyLCBhbmQgcmUtY29sbGVjdCBkZXBlbmRlbmNpZXMuXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIGdldCAoKSB7XG4gIHB1c2hUYXJnZXQodGhpcyk7XG4gIHZhciB2YWx1ZTtcbiAgdmFyIHZtID0gdGhpcy52bTtcbiAgdHJ5IHtcbiAgICB2YWx1ZSA9IHRoaXMuZ2V0dGVyLmNhbGwodm0sIHZtKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmICh0aGlzLnVzZXIpIHtcbiAgICAgIGhhbmRsZUVycm9yKGUsIHZtLCAoXCJnZXR0ZXIgZm9yIHdhdGNoZXIgXFxcIlwiICsgKHRoaXMuZXhwcmVzc2lvbikgKyBcIlxcXCJcIikpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBlXG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIC8vIFwidG91Y2hcIiBldmVyeSBwcm9wZXJ0eSBzbyB0aGV5IGFyZSBhbGwgdHJhY2tlZCBhc1xuICAgIC8vIGRlcGVuZGVuY2llcyBmb3IgZGVlcCB3YXRjaGluZ1xuICAgIGlmICh0aGlzLmRlZXApIHtcbiAgICAgIHRyYXZlcnNlKHZhbHVlKTtcbiAgICB9XG4gICAgcG9wVGFyZ2V0KCk7XG4gICAgdGhpcy5jbGVhbnVwRGVwcygpO1xuICB9XG4gIHJldHVybiB2YWx1ZVxufTtcblxuLyoqXG4gKiBBZGQgYSBkZXBlbmRlbmN5IHRvIHRoaXMgZGlyZWN0aXZlLlxuICovXG5XYXRjaGVyLnByb3RvdHlwZS5hZGREZXAgPSBmdW5jdGlvbiBhZGREZXAgKGRlcCkge1xuICB2YXIgaWQgPSBkZXAuaWQ7XG4gIGlmICghdGhpcy5uZXdEZXBJZHMuaGFzKGlkKSkge1xuICAgIHRoaXMubmV3RGVwSWRzLmFkZChpZCk7XG4gICAgdGhpcy5uZXdEZXBzLnB1c2goZGVwKTtcbiAgICBpZiAoIXRoaXMuZGVwSWRzLmhhcyhpZCkpIHtcbiAgICAgIGRlcC5hZGRTdWIodGhpcyk7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIENsZWFuIHVwIGZvciBkZXBlbmRlbmN5IGNvbGxlY3Rpb24uXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLmNsZWFudXBEZXBzID0gZnVuY3Rpb24gY2xlYW51cERlcHMgKCkge1xuICB2YXIgaSA9IHRoaXMuZGVwcy5sZW5ndGg7XG4gIHdoaWxlIChpLS0pIHtcbiAgICB2YXIgZGVwID0gdGhpcy5kZXBzW2ldO1xuICAgIGlmICghdGhpcy5uZXdEZXBJZHMuaGFzKGRlcC5pZCkpIHtcbiAgICAgIGRlcC5yZW1vdmVTdWIodGhpcyk7XG4gICAgfVxuICB9XG4gIHZhciB0bXAgPSB0aGlzLmRlcElkcztcbiAgdGhpcy5kZXBJZHMgPSB0aGlzLm5ld0RlcElkcztcbiAgdGhpcy5uZXdEZXBJZHMgPSB0bXA7XG4gIHRoaXMubmV3RGVwSWRzLmNsZWFyKCk7XG4gIHRtcCA9IHRoaXMuZGVwcztcbiAgdGhpcy5kZXBzID0gdGhpcy5uZXdEZXBzO1xuICB0aGlzLm5ld0RlcHMgPSB0bXA7XG4gIHRoaXMubmV3RGVwcy5sZW5ndGggPSAwO1xufTtcblxuLyoqXG4gKiBTdWJzY3JpYmVyIGludGVyZmFjZS5cbiAqIFdpbGwgYmUgY2FsbGVkIHdoZW4gYSBkZXBlbmRlbmN5IGNoYW5nZXMuXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLnVwZGF0ZSA9IGZ1bmN0aW9uIHVwZGF0ZSAoKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmICh0aGlzLmxhenkpIHtcbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcbiAgfSBlbHNlIGlmICh0aGlzLnN5bmMpIHtcbiAgICB0aGlzLnJ1bigpO1xuICB9IGVsc2Uge1xuICAgIHF1ZXVlV2F0Y2hlcih0aGlzKTtcbiAgfVxufTtcblxuLyoqXG4gKiBTY2hlZHVsZXIgam9iIGludGVyZmFjZS5cbiAqIFdpbGwgYmUgY2FsbGVkIGJ5IHRoZSBzY2hlZHVsZXIuXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uIHJ1biAoKSB7XG4gIGlmICh0aGlzLmFjdGl2ZSkge1xuICAgIHZhciB2YWx1ZSA9IHRoaXMuZ2V0KCk7XG4gICAgaWYgKFxuICAgICAgdmFsdWUgIT09IHRoaXMudmFsdWUgfHxcbiAgICAgIC8vIERlZXAgd2F0Y2hlcnMgYW5kIHdhdGNoZXJzIG9uIE9iamVjdC9BcnJheXMgc2hvdWxkIGZpcmUgZXZlblxuICAgICAgLy8gd2hlbiB0aGUgdmFsdWUgaXMgdGhlIHNhbWUsIGJlY2F1c2UgdGhlIHZhbHVlIG1heVxuICAgICAgLy8gaGF2ZSBtdXRhdGVkLlxuICAgICAgaXNPYmplY3QodmFsdWUpIHx8XG4gICAgICB0aGlzLmRlZXBcbiAgICApIHtcbiAgICAgIC8vIHNldCBuZXcgdmFsdWVcbiAgICAgIHZhciBvbGRWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICBpZiAodGhpcy51c2VyKSB7XG4gICAgICAgIHZhciBpbmZvID0gXCJjYWxsYmFjayBmb3Igd2F0Y2hlciBcXFwiXCIgKyAodGhpcy5leHByZXNzaW9uKSArIFwiXFxcIlwiO1xuICAgICAgICBpbnZva2VXaXRoRXJyb3JIYW5kbGluZyh0aGlzLmNiLCB0aGlzLnZtLCBbdmFsdWUsIG9sZFZhbHVlXSwgdGhpcy52bSwgaW5mbyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNiLmNhbGwodGhpcy52bSwgdmFsdWUsIG9sZFZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogRXZhbHVhdGUgdGhlIHZhbHVlIG9mIHRoZSB3YXRjaGVyLlxuICogVGhpcyBvbmx5IGdldHMgY2FsbGVkIGZvciBsYXp5IHdhdGNoZXJzLlxuICovXG5XYXRjaGVyLnByb3RvdHlwZS5ldmFsdWF0ZSA9IGZ1bmN0aW9uIGV2YWx1YXRlICgpIHtcbiAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0KCk7XG4gIHRoaXMuZGlydHkgPSBmYWxzZTtcbn07XG5cbi8qKlxuICogRGVwZW5kIG9uIGFsbCBkZXBzIGNvbGxlY3RlZCBieSB0aGlzIHdhdGNoZXIuXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLmRlcGVuZCA9IGZ1bmN0aW9uIGRlcGVuZCAoKSB7XG4gIHZhciBpID0gdGhpcy5kZXBzLmxlbmd0aDtcbiAgd2hpbGUgKGktLSkge1xuICAgIHRoaXMuZGVwc1tpXS5kZXBlbmQoKTtcbiAgfVxufTtcblxuLyoqXG4gKiBSZW1vdmUgc2VsZiBmcm9tIGFsbCBkZXBlbmRlbmNpZXMnIHN1YnNjcmliZXIgbGlzdC5cbiAqL1xuV2F0Y2hlci5wcm90b3R5cGUudGVhcmRvd24gPSBmdW5jdGlvbiB0ZWFyZG93biAoKSB7XG4gIGlmICh0aGlzLmFjdGl2ZSkge1xuICAgIC8vIHJlbW92ZSBzZWxmIGZyb20gdm0ncyB3YXRjaGVyIGxpc3RcbiAgICAvLyB0aGlzIGlzIGEgc29tZXdoYXQgZXhwZW5zaXZlIG9wZXJhdGlvbiBzbyB3ZSBza2lwIGl0XG4gICAgLy8gaWYgdGhlIHZtIGlzIGJlaW5nIGRlc3Ryb3llZC5cbiAgICBpZiAoIXRoaXMudm0uX2lzQmVpbmdEZXN0cm95ZWQpIHtcbiAgICAgIHJlbW92ZSh0aGlzLnZtLl93YXRjaGVycywgdGhpcyk7XG4gICAgfVxuICAgIHZhciBpID0gdGhpcy5kZXBzLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICB0aGlzLmRlcHNbaV0ucmVtb3ZlU3ViKHRoaXMpO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICB9XG59O1xuXG4vKiAgKi9cblxudmFyIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbiA9IHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgY29uZmlndXJhYmxlOiB0cnVlLFxuICBnZXQ6IG5vb3AsXG4gIHNldDogbm9vcFxufTtcblxuZnVuY3Rpb24gcHJveHkgKHRhcmdldCwgc291cmNlS2V5LCBrZXkpIHtcbiAgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uLmdldCA9IGZ1bmN0aW9uIHByb3h5R2V0dGVyICgpIHtcbiAgICByZXR1cm4gdGhpc1tzb3VyY2VLZXldW2tleV1cbiAgfTtcbiAgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uLnNldCA9IGZ1bmN0aW9uIHByb3h5U2V0dGVyICh2YWwpIHtcbiAgICB0aGlzW3NvdXJjZUtleV1ba2V5XSA9IHZhbDtcbiAgfTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzaGFyZWRQcm9wZXJ0eURlZmluaXRpb24pO1xufVxuXG5mdW5jdGlvbiBpbml0U3RhdGUgKHZtKSB7XG4gIHZtLl93YXRjaGVycyA9IFtdO1xuICB2YXIgb3B0cyA9IHZtLiRvcHRpb25zO1xuICBpZiAob3B0cy5wcm9wcykgeyBpbml0UHJvcHModm0sIG9wdHMucHJvcHMpOyB9XG4gIGlmIChvcHRzLm1ldGhvZHMpIHsgaW5pdE1ldGhvZHModm0sIG9wdHMubWV0aG9kcyk7IH1cbiAgaWYgKG9wdHMuZGF0YSkge1xuICAgIGluaXREYXRhKHZtKTtcbiAgfSBlbHNlIHtcbiAgICBvYnNlcnZlKHZtLl9kYXRhID0ge30sIHRydWUgLyogYXNSb290RGF0YSAqLyk7XG4gIH1cbiAgaWYgKG9wdHMuY29tcHV0ZWQpIHsgaW5pdENvbXB1dGVkKHZtLCBvcHRzLmNvbXB1dGVkKTsgfVxuICBpZiAob3B0cy53YXRjaCAmJiBvcHRzLndhdGNoICE9PSBuYXRpdmVXYXRjaCkge1xuICAgIGluaXRXYXRjaCh2bSwgb3B0cy53YXRjaCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdFByb3BzICh2bSwgcHJvcHNPcHRpb25zKSB7XG4gIHZhciBwcm9wc0RhdGEgPSB2bS4kb3B0aW9ucy5wcm9wc0RhdGEgfHwge307XG4gIHZhciBwcm9wcyA9IHZtLl9wcm9wcyA9IHt9O1xuICAvLyBjYWNoZSBwcm9wIGtleXMgc28gdGhhdCBmdXR1cmUgcHJvcHMgdXBkYXRlcyBjYW4gaXRlcmF0ZSB1c2luZyBBcnJheVxuICAvLyBpbnN0ZWFkIG9mIGR5bmFtaWMgb2JqZWN0IGtleSBlbnVtZXJhdGlvbi5cbiAgdmFyIGtleXMgPSB2bS4kb3B0aW9ucy5fcHJvcEtleXMgPSBbXTtcbiAgdmFyIGlzUm9vdCA9ICF2bS4kcGFyZW50O1xuICAvLyByb290IGluc3RhbmNlIHByb3BzIHNob3VsZCBiZSBjb252ZXJ0ZWRcbiAgaWYgKCFpc1Jvb3QpIHtcbiAgICB0b2dnbGVPYnNlcnZpbmcoZmFsc2UpO1xuICB9XG4gIHZhciBsb29wID0gZnVuY3Rpb24gKCBrZXkgKSB7XG4gICAga2V5cy5wdXNoKGtleSk7XG4gICAgdmFyIHZhbHVlID0gdmFsaWRhdGVQcm9wKGtleSwgcHJvcHNPcHRpb25zLCBwcm9wc0RhdGEsIHZtKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICB2YXIgaHlwaGVuYXRlZEtleSA9IGh5cGhlbmF0ZShrZXkpO1xuICAgICAgaWYgKGlzUmVzZXJ2ZWRBdHRyaWJ1dGUoaHlwaGVuYXRlZEtleSkgfHxcbiAgICAgICAgICBjb25maWcuaXNSZXNlcnZlZEF0dHIoaHlwaGVuYXRlZEtleSkpIHtcbiAgICAgICAgd2FybihcbiAgICAgICAgICAoXCJcXFwiXCIgKyBoeXBoZW5hdGVkS2V5ICsgXCJcXFwiIGlzIGEgcmVzZXJ2ZWQgYXR0cmlidXRlIGFuZCBjYW5ub3QgYmUgdXNlZCBhcyBjb21wb25lbnQgcHJvcC5cIiksXG4gICAgICAgICAgdm1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGRlZmluZVJlYWN0aXZlJCQxKHByb3BzLCBrZXksIHZhbHVlLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICghaXNSb290ICYmICFpc1VwZGF0aW5nQ2hpbGRDb21wb25lbnQpIHtcbiAgICAgICAgICB3YXJuKFxuICAgICAgICAgICAgXCJBdm9pZCBtdXRhdGluZyBhIHByb3AgZGlyZWN0bHkgc2luY2UgdGhlIHZhbHVlIHdpbGwgYmUgXCIgK1xuICAgICAgICAgICAgXCJvdmVyd3JpdHRlbiB3aGVuZXZlciB0aGUgcGFyZW50IGNvbXBvbmVudCByZS1yZW5kZXJzLiBcIiArXG4gICAgICAgICAgICBcIkluc3RlYWQsIHVzZSBhIGRhdGEgb3IgY29tcHV0ZWQgcHJvcGVydHkgYmFzZWQgb24gdGhlIHByb3AncyBcIiArXG4gICAgICAgICAgICBcInZhbHVlLiBQcm9wIGJlaW5nIG11dGF0ZWQ6IFxcXCJcIiArIGtleSArIFwiXFxcIlwiLFxuICAgICAgICAgICAgdm1cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVmaW5lUmVhY3RpdmUkJDEocHJvcHMsIGtleSwgdmFsdWUpO1xuICAgIH1cbiAgICAvLyBzdGF0aWMgcHJvcHMgYXJlIGFscmVhZHkgcHJveGllZCBvbiB0aGUgY29tcG9uZW50J3MgcHJvdG90eXBlXG4gICAgLy8gZHVyaW5nIFZ1ZS5leHRlbmQoKS4gV2Ugb25seSBuZWVkIHRvIHByb3h5IHByb3BzIGRlZmluZWQgYXRcbiAgICAvLyBpbnN0YW50aWF0aW9uIGhlcmUuXG4gICAgaWYgKCEoa2V5IGluIHZtKSkge1xuICAgICAgcHJveHkodm0sIFwiX3Byb3BzXCIsIGtleSk7XG4gICAgfVxuICB9O1xuXG4gIGZvciAodmFyIGtleSBpbiBwcm9wc09wdGlvbnMpIGxvb3AoIGtleSApO1xuICB0b2dnbGVPYnNlcnZpbmcodHJ1ZSk7XG59XG5cbmZ1bmN0aW9uIGluaXREYXRhICh2bSkge1xuICB2YXIgZGF0YSA9IHZtLiRvcHRpb25zLmRhdGE7XG4gIGRhdGEgPSB2bS5fZGF0YSA9IHR5cGVvZiBkYXRhID09PSAnZnVuY3Rpb24nXG4gICAgPyBnZXREYXRhKGRhdGEsIHZtKVxuICAgIDogZGF0YSB8fCB7fTtcbiAgaWYgKCFpc1BsYWluT2JqZWN0KGRhdGEpKSB7XG4gICAgZGF0YSA9IHt9O1xuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgICdkYXRhIGZ1bmN0aW9ucyBzaG91bGQgcmV0dXJuIGFuIG9iamVjdDpcXG4nICtcbiAgICAgICdodHRwczovL3Z1ZWpzLm9yZy92Mi9ndWlkZS9jb21wb25lbnRzLmh0bWwjZGF0YS1NdXN0LUJlLWEtRnVuY3Rpb24nLFxuICAgICAgdm1cbiAgICApO1xuICB9XG4gIC8vIHByb3h5IGRhdGEgb24gaW5zdGFuY2VcbiAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhkYXRhKTtcbiAgdmFyIHByb3BzID0gdm0uJG9wdGlvbnMucHJvcHM7XG4gIHZhciBtZXRob2RzID0gdm0uJG9wdGlvbnMubWV0aG9kcztcbiAgdmFyIGkgPSBrZXlzLmxlbmd0aDtcbiAgd2hpbGUgKGktLSkge1xuICAgIHZhciBrZXkgPSBrZXlzW2ldO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAobWV0aG9kcyAmJiBoYXNPd24obWV0aG9kcywga2V5KSkge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgIChcIk1ldGhvZCBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgaGFzIGFscmVhZHkgYmVlbiBkZWZpbmVkIGFzIGEgZGF0YSBwcm9wZXJ0eS5cIiksXG4gICAgICAgICAgdm1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb3BzICYmIGhhc093bihwcm9wcywga2V5KSkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuKFxuICAgICAgICBcIlRoZSBkYXRhIHByb3BlcnR5IFxcXCJcIiArIGtleSArIFwiXFxcIiBpcyBhbHJlYWR5IGRlY2xhcmVkIGFzIGEgcHJvcC4gXCIgK1xuICAgICAgICBcIlVzZSBwcm9wIGRlZmF1bHQgdmFsdWUgaW5zdGVhZC5cIixcbiAgICAgICAgdm1cbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICghaXNSZXNlcnZlZChrZXkpKSB7XG4gICAgICBwcm94eSh2bSwgXCJfZGF0YVwiLCBrZXkpO1xuICAgIH1cbiAgfVxuICAvLyBvYnNlcnZlIGRhdGFcbiAgb2JzZXJ2ZShkYXRhLCB0cnVlIC8qIGFzUm9vdERhdGEgKi8pO1xufVxuXG5mdW5jdGlvbiBnZXREYXRhIChkYXRhLCB2bSkge1xuICAvLyAjNzU3MyBkaXNhYmxlIGRlcCBjb2xsZWN0aW9uIHdoZW4gaW52b2tpbmcgZGF0YSBnZXR0ZXJzXG4gIHB1c2hUYXJnZXQoKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZGF0YS5jYWxsKHZtLCB2bSlcbiAgfSBjYXRjaCAoZSkge1xuICAgIGhhbmRsZUVycm9yKGUsIHZtLCBcImRhdGEoKVwiKTtcbiAgICByZXR1cm4ge31cbiAgfSBmaW5hbGx5IHtcbiAgICBwb3BUYXJnZXQoKTtcbiAgfVxufVxuXG52YXIgY29tcHV0ZWRXYXRjaGVyT3B0aW9ucyA9IHsgbGF6eTogdHJ1ZSB9O1xuXG5mdW5jdGlvbiBpbml0Q29tcHV0ZWQgKHZtLCBjb21wdXRlZCkge1xuICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgdmFyIHdhdGNoZXJzID0gdm0uX2NvbXB1dGVkV2F0Y2hlcnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAvLyBjb21wdXRlZCBwcm9wZXJ0aWVzIGFyZSBqdXN0IGdldHRlcnMgZHVyaW5nIFNTUlxuICB2YXIgaXNTU1IgPSBpc1NlcnZlclJlbmRlcmluZygpO1xuXG4gIGZvciAodmFyIGtleSBpbiBjb21wdXRlZCkge1xuICAgIHZhciB1c2VyRGVmID0gY29tcHV0ZWRba2V5XTtcbiAgICB2YXIgZ2V0dGVyID0gdHlwZW9mIHVzZXJEZWYgPT09ICdmdW5jdGlvbicgPyB1c2VyRGVmIDogdXNlckRlZi5nZXQ7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgZ2V0dGVyID09IG51bGwpIHtcbiAgICAgIHdhcm4oXG4gICAgICAgIChcIkdldHRlciBpcyBtaXNzaW5nIGZvciBjb21wdXRlZCBwcm9wZXJ0eSBcXFwiXCIgKyBrZXkgKyBcIlxcXCIuXCIpLFxuICAgICAgICB2bVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzU1NSKSB7XG4gICAgICAvLyBjcmVhdGUgaW50ZXJuYWwgd2F0Y2hlciBmb3IgdGhlIGNvbXB1dGVkIHByb3BlcnR5LlxuICAgICAgd2F0Y2hlcnNba2V5XSA9IG5ldyBXYXRjaGVyKFxuICAgICAgICB2bSxcbiAgICAgICAgZ2V0dGVyIHx8IG5vb3AsXG4gICAgICAgIG5vb3AsXG4gICAgICAgIGNvbXB1dGVkV2F0Y2hlck9wdGlvbnNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gY29tcG9uZW50LWRlZmluZWQgY29tcHV0ZWQgcHJvcGVydGllcyBhcmUgYWxyZWFkeSBkZWZpbmVkIG9uIHRoZVxuICAgIC8vIGNvbXBvbmVudCBwcm90b3R5cGUuIFdlIG9ubHkgbmVlZCB0byBkZWZpbmUgY29tcHV0ZWQgcHJvcGVydGllcyBkZWZpbmVkXG4gICAgLy8gYXQgaW5zdGFudGlhdGlvbiBoZXJlLlxuICAgIGlmICghKGtleSBpbiB2bSkpIHtcbiAgICAgIGRlZmluZUNvbXB1dGVkKHZtLCBrZXksIHVzZXJEZWYpO1xuICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKGtleSBpbiB2bS4kZGF0YSkge1xuICAgICAgICB3YXJuKChcIlRoZSBjb21wdXRlZCBwcm9wZXJ0eSBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgaXMgYWxyZWFkeSBkZWZpbmVkIGluIGRhdGEuXCIpLCB2bSk7XG4gICAgICB9IGVsc2UgaWYgKHZtLiRvcHRpb25zLnByb3BzICYmIGtleSBpbiB2bS4kb3B0aW9ucy5wcm9wcykge1xuICAgICAgICB3YXJuKChcIlRoZSBjb21wdXRlZCBwcm9wZXJ0eSBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgaXMgYWxyZWFkeSBkZWZpbmVkIGFzIGEgcHJvcC5cIiksIHZtKTtcbiAgICAgIH0gZWxzZSBpZiAodm0uJG9wdGlvbnMubWV0aG9kcyAmJiBrZXkgaW4gdm0uJG9wdGlvbnMubWV0aG9kcykge1xuICAgICAgICB3YXJuKChcIlRoZSBjb21wdXRlZCBwcm9wZXJ0eSBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgaXMgYWxyZWFkeSBkZWZpbmVkIGFzIGEgbWV0aG9kLlwiKSwgdm0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBkZWZpbmVDb21wdXRlZCAoXG4gIHRhcmdldCxcbiAga2V5LFxuICB1c2VyRGVmXG4pIHtcbiAgdmFyIHNob3VsZENhY2hlID0gIWlzU2VydmVyUmVuZGVyaW5nKCk7XG4gIGlmICh0eXBlb2YgdXNlckRlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbi5nZXQgPSBzaG91bGRDYWNoZVxuICAgICAgPyBjcmVhdGVDb21wdXRlZEdldHRlcihrZXkpXG4gICAgICA6IGNyZWF0ZUdldHRlckludm9rZXIodXNlckRlZik7XG4gICAgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uLnNldCA9IG5vb3A7XG4gIH0gZWxzZSB7XG4gICAgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uLmdldCA9IHVzZXJEZWYuZ2V0XG4gICAgICA/IHNob3VsZENhY2hlICYmIHVzZXJEZWYuY2FjaGUgIT09IGZhbHNlXG4gICAgICAgID8gY3JlYXRlQ29tcHV0ZWRHZXR0ZXIoa2V5KVxuICAgICAgICA6IGNyZWF0ZUdldHRlckludm9rZXIodXNlckRlZi5nZXQpXG4gICAgICA6IG5vb3A7XG4gICAgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uLnNldCA9IHVzZXJEZWYuc2V0IHx8IG5vb3A7XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAgIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbi5zZXQgPT09IG5vb3ApIHtcbiAgICBzaGFyZWRQcm9wZXJ0eURlZmluaXRpb24uc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgd2FybihcbiAgICAgICAgKFwiQ29tcHV0ZWQgcHJvcGVydHkgXFxcIlwiICsga2V5ICsgXCJcXFwiIHdhcyBhc3NpZ25lZCB0byBidXQgaXQgaGFzIG5vIHNldHRlci5cIiksXG4gICAgICAgIHRoaXNcbiAgICAgICk7XG4gICAgfTtcbiAgfVxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbik7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbXB1dGVkR2V0dGVyIChrZXkpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNvbXB1dGVkR2V0dGVyICgpIHtcbiAgICB2YXIgd2F0Y2hlciA9IHRoaXMuX2NvbXB1dGVkV2F0Y2hlcnMgJiYgdGhpcy5fY29tcHV0ZWRXYXRjaGVyc1trZXldO1xuICAgIGlmICh3YXRjaGVyKSB7XG4gICAgICBpZiAod2F0Y2hlci5kaXJ0eSkge1xuICAgICAgICB3YXRjaGVyLmV2YWx1YXRlKCk7XG4gICAgICB9XG4gICAgICBpZiAoRGVwLnRhcmdldCkge1xuICAgICAgICB3YXRjaGVyLmRlcGVuZCgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdhdGNoZXIudmFsdWVcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlR2V0dGVySW52b2tlcihmbikge1xuICByZXR1cm4gZnVuY3Rpb24gY29tcHV0ZWRHZXR0ZXIgKCkge1xuICAgIHJldHVybiBmbi5jYWxsKHRoaXMsIHRoaXMpXG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdE1ldGhvZHMgKHZtLCBtZXRob2RzKSB7XG4gIHZhciBwcm9wcyA9IHZtLiRvcHRpb25zLnByb3BzO1xuICBmb3IgKHZhciBrZXkgaW4gbWV0aG9kcykge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAodHlwZW9mIG1ldGhvZHNba2V5XSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgIFwiTWV0aG9kIFxcXCJcIiArIGtleSArIFwiXFxcIiBoYXMgdHlwZSBcXFwiXCIgKyAodHlwZW9mIG1ldGhvZHNba2V5XSkgKyBcIlxcXCIgaW4gdGhlIGNvbXBvbmVudCBkZWZpbml0aW9uLiBcIiArXG4gICAgICAgICAgXCJEaWQgeW91IHJlZmVyZW5jZSB0aGUgZnVuY3Rpb24gY29ycmVjdGx5P1wiLFxuICAgICAgICAgIHZtXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMgJiYgaGFzT3duKHByb3BzLCBrZXkpKSB7XG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgKFwiTWV0aG9kIFxcXCJcIiArIGtleSArIFwiXFxcIiBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWQgYXMgYSBwcm9wLlwiKSxcbiAgICAgICAgICB2bVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKChrZXkgaW4gdm0pICYmIGlzUmVzZXJ2ZWQoa2V5KSkge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgIFwiTWV0aG9kIFxcXCJcIiArIGtleSArIFwiXFxcIiBjb25mbGljdHMgd2l0aCBhbiBleGlzdGluZyBWdWUgaW5zdGFuY2UgbWV0aG9kLiBcIiArXG4gICAgICAgICAgXCJBdm9pZCBkZWZpbmluZyBjb21wb25lbnQgbWV0aG9kcyB0aGF0IHN0YXJ0IHdpdGggXyBvciAkLlwiXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHZtW2tleV0gPSB0eXBlb2YgbWV0aG9kc1trZXldICE9PSAnZnVuY3Rpb24nID8gbm9vcCA6IGJpbmQobWV0aG9kc1trZXldLCB2bSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdFdhdGNoICh2bSwgd2F0Y2gpIHtcbiAgZm9yICh2YXIga2V5IGluIHdhdGNoKSB7XG4gICAgdmFyIGhhbmRsZXIgPSB3YXRjaFtrZXldO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGhhbmRsZXIpKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGhhbmRsZXIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY3JlYXRlV2F0Y2hlcih2bSwga2V5LCBoYW5kbGVyW2ldKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY3JlYXRlV2F0Y2hlcih2bSwga2V5LCBoYW5kbGVyKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlV2F0Y2hlciAoXG4gIHZtLFxuICBleHBPckZuLFxuICBoYW5kbGVyLFxuICBvcHRpb25zXG4pIHtcbiAgaWYgKGlzUGxhaW5PYmplY3QoaGFuZGxlcikpIHtcbiAgICBvcHRpb25zID0gaGFuZGxlcjtcbiAgICBoYW5kbGVyID0gaGFuZGxlci5oYW5kbGVyO1xuICB9XG4gIGlmICh0eXBlb2YgaGFuZGxlciA9PT0gJ3N0cmluZycpIHtcbiAgICBoYW5kbGVyID0gdm1baGFuZGxlcl07XG4gIH1cbiAgcmV0dXJuIHZtLiR3YXRjaChleHBPckZuLCBoYW5kbGVyLCBvcHRpb25zKVxufVxuXG5mdW5jdGlvbiBzdGF0ZU1peGluIChWdWUpIHtcbiAgLy8gZmxvdyBzb21laG93IGhhcyBwcm9ibGVtcyB3aXRoIGRpcmVjdGx5IGRlY2xhcmVkIGRlZmluaXRpb24gb2JqZWN0XG4gIC8vIHdoZW4gdXNpbmcgT2JqZWN0LmRlZmluZVByb3BlcnR5LCBzbyB3ZSBoYXZlIHRvIHByb2NlZHVyYWxseSBidWlsZCB1cFxuICAvLyB0aGUgb2JqZWN0IGhlcmUuXG4gIHZhciBkYXRhRGVmID0ge307XG4gIGRhdGFEZWYuZ2V0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fZGF0YSB9O1xuICB2YXIgcHJvcHNEZWYgPSB7fTtcbiAgcHJvcHNEZWYuZ2V0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5fcHJvcHMgfTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBkYXRhRGVmLnNldCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHdhcm4oXG4gICAgICAgICdBdm9pZCByZXBsYWNpbmcgaW5zdGFuY2Ugcm9vdCAkZGF0YS4gJyArXG4gICAgICAgICdVc2UgbmVzdGVkIGRhdGEgcHJvcGVydGllcyBpbnN0ZWFkLicsXG4gICAgICAgIHRoaXNcbiAgICAgICk7XG4gICAgfTtcbiAgICBwcm9wc0RlZi5zZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB3YXJuKFwiJHByb3BzIGlzIHJlYWRvbmx5LlwiLCB0aGlzKTtcbiAgICB9O1xuICB9XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShWdWUucHJvdG90eXBlLCAnJGRhdGEnLCBkYXRhRGVmKTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFZ1ZS5wcm90b3R5cGUsICckcHJvcHMnLCBwcm9wc0RlZik7XG5cbiAgVnVlLnByb3RvdHlwZS4kc2V0ID0gc2V0O1xuICBWdWUucHJvdG90eXBlLiRkZWxldGUgPSBkZWw7XG5cbiAgVnVlLnByb3RvdHlwZS4kd2F0Y2ggPSBmdW5jdGlvbiAoXG4gICAgZXhwT3JGbixcbiAgICBjYixcbiAgICBvcHRpb25zXG4gICkge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgaWYgKGlzUGxhaW5PYmplY3QoY2IpKSB7XG4gICAgICByZXR1cm4gY3JlYXRlV2F0Y2hlcih2bSwgZXhwT3JGbiwgY2IsIG9wdGlvbnMpXG4gICAgfVxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIG9wdGlvbnMudXNlciA9IHRydWU7XG4gICAgdmFyIHdhdGNoZXIgPSBuZXcgV2F0Y2hlcih2bSwgZXhwT3JGbiwgY2IsIG9wdGlvbnMpO1xuICAgIGlmIChvcHRpb25zLmltbWVkaWF0ZSkge1xuICAgICAgdmFyIGluZm8gPSBcImNhbGxiYWNrIGZvciBpbW1lZGlhdGUgd2F0Y2hlciBcXFwiXCIgKyAod2F0Y2hlci5leHByZXNzaW9uKSArIFwiXFxcIlwiO1xuICAgICAgcHVzaFRhcmdldCgpO1xuICAgICAgaW52b2tlV2l0aEVycm9ySGFuZGxpbmcoY2IsIHZtLCBbd2F0Y2hlci52YWx1ZV0sIHZtLCBpbmZvKTtcbiAgICAgIHBvcFRhcmdldCgpO1xuICAgIH1cbiAgICByZXR1cm4gZnVuY3Rpb24gdW53YXRjaEZuICgpIHtcbiAgICAgIHdhdGNoZXIudGVhcmRvd24oKTtcbiAgICB9XG4gIH07XG59XG5cbi8qICAqL1xuXG52YXIgdWlkJDMgPSAwO1xuXG5mdW5jdGlvbiBpbml0TWl4aW4gKFZ1ZSkge1xuICBWdWUucHJvdG90eXBlLl9pbml0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICB2YXIgdm0gPSB0aGlzO1xuICAgIC8vIGEgdWlkXG4gICAgdm0uX3VpZCA9IHVpZCQzKys7XG5cbiAgICB2YXIgc3RhcnRUYWcsIGVuZFRhZztcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBjb25maWcucGVyZm9ybWFuY2UgJiYgbWFyaykge1xuICAgICAgc3RhcnRUYWcgPSBcInZ1ZS1wZXJmLXN0YXJ0OlwiICsgKHZtLl91aWQpO1xuICAgICAgZW5kVGFnID0gXCJ2dWUtcGVyZi1lbmQ6XCIgKyAodm0uX3VpZCk7XG4gICAgICBtYXJrKHN0YXJ0VGFnKTtcbiAgICB9XG5cbiAgICAvLyBhIGZsYWcgdG8gYXZvaWQgdGhpcyBiZWluZyBvYnNlcnZlZFxuICAgIHZtLl9pc1Z1ZSA9IHRydWU7XG4gICAgLy8gbWVyZ2Ugb3B0aW9uc1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuX2lzQ29tcG9uZW50KSB7XG4gICAgICAvLyBvcHRpbWl6ZSBpbnRlcm5hbCBjb21wb25lbnQgaW5zdGFudGlhdGlvblxuICAgICAgLy8gc2luY2UgZHluYW1pYyBvcHRpb25zIG1lcmdpbmcgaXMgcHJldHR5IHNsb3csIGFuZCBub25lIG9mIHRoZVxuICAgICAgLy8gaW50ZXJuYWwgY29tcG9uZW50IG9wdGlvbnMgbmVlZHMgc3BlY2lhbCB0cmVhdG1lbnQuXG4gICAgICBpbml0SW50ZXJuYWxDb21wb25lbnQodm0sIG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2bS4kb3B0aW9ucyA9IG1lcmdlT3B0aW9ucyhcbiAgICAgICAgcmVzb2x2ZUNvbnN0cnVjdG9yT3B0aW9ucyh2bS5jb25zdHJ1Y3RvciksXG4gICAgICAgIG9wdGlvbnMgfHwge30sXG4gICAgICAgIHZtXG4gICAgICApO1xuICAgIH1cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpbml0UHJveHkodm0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB2bS5fcmVuZGVyUHJveHkgPSB2bTtcbiAgICB9XG4gICAgLy8gZXhwb3NlIHJlYWwgc2VsZlxuICAgIHZtLl9zZWxmID0gdm07XG4gICAgaW5pdExpZmVjeWNsZSh2bSk7XG4gICAgaW5pdEV2ZW50cyh2bSk7XG4gICAgaW5pdFJlbmRlcih2bSk7XG4gICAgY2FsbEhvb2sodm0sICdiZWZvcmVDcmVhdGUnKTtcbiAgICBpbml0SW5qZWN0aW9ucyh2bSk7IC8vIHJlc29sdmUgaW5qZWN0aW9ucyBiZWZvcmUgZGF0YS9wcm9wc1xuICAgIGluaXRTdGF0ZSh2bSk7XG4gICAgaW5pdFByb3ZpZGUodm0pOyAvLyByZXNvbHZlIHByb3ZpZGUgYWZ0ZXIgZGF0YS9wcm9wc1xuICAgIGNhbGxIb29rKHZtLCAnY3JlYXRlZCcpO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgY29uZmlnLnBlcmZvcm1hbmNlICYmIG1hcmspIHtcbiAgICAgIHZtLl9uYW1lID0gZm9ybWF0Q29tcG9uZW50TmFtZSh2bSwgZmFsc2UpO1xuICAgICAgbWFyayhlbmRUYWcpO1xuICAgICAgbWVhc3VyZSgoXCJ2dWUgXCIgKyAodm0uX25hbWUpICsgXCIgaW5pdFwiKSwgc3RhcnRUYWcsIGVuZFRhZyk7XG4gICAgfVxuXG4gICAgaWYgKHZtLiRvcHRpb25zLmVsKSB7XG4gICAgICB2bS4kbW91bnQodm0uJG9wdGlvbnMuZWwpO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gaW5pdEludGVybmFsQ29tcG9uZW50ICh2bSwgb3B0aW9ucykge1xuICB2YXIgb3B0cyA9IHZtLiRvcHRpb25zID0gT2JqZWN0LmNyZWF0ZSh2bS5jb25zdHJ1Y3Rvci5vcHRpb25zKTtcbiAgLy8gZG9pbmcgdGhpcyBiZWNhdXNlIGl0J3MgZmFzdGVyIHRoYW4gZHluYW1pYyBlbnVtZXJhdGlvbi5cbiAgdmFyIHBhcmVudFZub2RlID0gb3B0aW9ucy5fcGFyZW50Vm5vZGU7XG4gIG9wdHMucGFyZW50ID0gb3B0aW9ucy5wYXJlbnQ7XG4gIG9wdHMuX3BhcmVudFZub2RlID0gcGFyZW50Vm5vZGU7XG5cbiAgdmFyIHZub2RlQ29tcG9uZW50T3B0aW9ucyA9IHBhcmVudFZub2RlLmNvbXBvbmVudE9wdGlvbnM7XG4gIG9wdHMucHJvcHNEYXRhID0gdm5vZGVDb21wb25lbnRPcHRpb25zLnByb3BzRGF0YTtcbiAgb3B0cy5fcGFyZW50TGlzdGVuZXJzID0gdm5vZGVDb21wb25lbnRPcHRpb25zLmxpc3RlbmVycztcbiAgb3B0cy5fcmVuZGVyQ2hpbGRyZW4gPSB2bm9kZUNvbXBvbmVudE9wdGlvbnMuY2hpbGRyZW47XG4gIG9wdHMuX2NvbXBvbmVudFRhZyA9IHZub2RlQ29tcG9uZW50T3B0aW9ucy50YWc7XG5cbiAgaWYgKG9wdGlvbnMucmVuZGVyKSB7XG4gICAgb3B0cy5yZW5kZXIgPSBvcHRpb25zLnJlbmRlcjtcbiAgICBvcHRzLnN0YXRpY1JlbmRlckZucyA9IG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVDb25zdHJ1Y3Rvck9wdGlvbnMgKEN0b3IpIHtcbiAgdmFyIG9wdGlvbnMgPSBDdG9yLm9wdGlvbnM7XG4gIGlmIChDdG9yLnN1cGVyKSB7XG4gICAgdmFyIHN1cGVyT3B0aW9ucyA9IHJlc29sdmVDb25zdHJ1Y3Rvck9wdGlvbnMoQ3Rvci5zdXBlcik7XG4gICAgdmFyIGNhY2hlZFN1cGVyT3B0aW9ucyA9IEN0b3Iuc3VwZXJPcHRpb25zO1xuICAgIGlmIChzdXBlck9wdGlvbnMgIT09IGNhY2hlZFN1cGVyT3B0aW9ucykge1xuICAgICAgLy8gc3VwZXIgb3B0aW9uIGNoYW5nZWQsXG4gICAgICAvLyBuZWVkIHRvIHJlc29sdmUgbmV3IG9wdGlvbnMuXG4gICAgICBDdG9yLnN1cGVyT3B0aW9ucyA9IHN1cGVyT3B0aW9ucztcbiAgICAgIC8vIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgbGF0ZS1tb2RpZmllZC9hdHRhY2hlZCBvcHRpb25zICgjNDk3NilcbiAgICAgIHZhciBtb2RpZmllZE9wdGlvbnMgPSByZXNvbHZlTW9kaWZpZWRPcHRpb25zKEN0b3IpO1xuICAgICAgLy8gdXBkYXRlIGJhc2UgZXh0ZW5kIG9wdGlvbnNcbiAgICAgIGlmIChtb2RpZmllZE9wdGlvbnMpIHtcbiAgICAgICAgZXh0ZW5kKEN0b3IuZXh0ZW5kT3B0aW9ucywgbW9kaWZpZWRPcHRpb25zKTtcbiAgICAgIH1cbiAgICAgIG9wdGlvbnMgPSBDdG9yLm9wdGlvbnMgPSBtZXJnZU9wdGlvbnMoc3VwZXJPcHRpb25zLCBDdG9yLmV4dGVuZE9wdGlvbnMpO1xuICAgICAgaWYgKG9wdGlvbnMubmFtZSkge1xuICAgICAgICBvcHRpb25zLmNvbXBvbmVudHNbb3B0aW9ucy5uYW1lXSA9IEN0b3I7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBvcHRpb25zXG59XG5cbmZ1bmN0aW9uIHJlc29sdmVNb2RpZmllZE9wdGlvbnMgKEN0b3IpIHtcbiAgdmFyIG1vZGlmaWVkO1xuICB2YXIgbGF0ZXN0ID0gQ3Rvci5vcHRpb25zO1xuICB2YXIgc2VhbGVkID0gQ3Rvci5zZWFsZWRPcHRpb25zO1xuICBmb3IgKHZhciBrZXkgaW4gbGF0ZXN0KSB7XG4gICAgaWYgKGxhdGVzdFtrZXldICE9PSBzZWFsZWRba2V5XSkge1xuICAgICAgaWYgKCFtb2RpZmllZCkgeyBtb2RpZmllZCA9IHt9OyB9XG4gICAgICBtb2RpZmllZFtrZXldID0gbGF0ZXN0W2tleV07XG4gICAgfVxuICB9XG4gIHJldHVybiBtb2RpZmllZFxufVxuXG5mdW5jdGlvbiBWdWUgKG9wdGlvbnMpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAhKHRoaXMgaW5zdGFuY2VvZiBWdWUpXG4gICkge1xuICAgIHdhcm4oJ1Z1ZSBpcyBhIGNvbnN0cnVjdG9yIGFuZCBzaG91bGQgYmUgY2FsbGVkIHdpdGggdGhlIGBuZXdgIGtleXdvcmQnKTtcbiAgfVxuICB0aGlzLl9pbml0KG9wdGlvbnMpO1xufVxuXG5pbml0TWl4aW4oVnVlKTtcbnN0YXRlTWl4aW4oVnVlKTtcbmV2ZW50c01peGluKFZ1ZSk7XG5saWZlY3ljbGVNaXhpbihWdWUpO1xucmVuZGVyTWl4aW4oVnVlKTtcblxuLyogICovXG5cbmZ1bmN0aW9uIGluaXRVc2UgKFZ1ZSkge1xuICBWdWUudXNlID0gZnVuY3Rpb24gKHBsdWdpbikge1xuICAgIHZhciBpbnN0YWxsZWRQbHVnaW5zID0gKHRoaXMuX2luc3RhbGxlZFBsdWdpbnMgfHwgKHRoaXMuX2luc3RhbGxlZFBsdWdpbnMgPSBbXSkpO1xuICAgIGlmIChpbnN0YWxsZWRQbHVnaW5zLmluZGV4T2YocGx1Z2luKSA+IC0xKSB7XG4gICAgICByZXR1cm4gdGhpc1xuICAgIH1cblxuICAgIC8vIGFkZGl0aW9uYWwgcGFyYW1ldGVyc1xuICAgIHZhciBhcmdzID0gdG9BcnJheShhcmd1bWVudHMsIDEpO1xuICAgIGFyZ3MudW5zaGlmdCh0aGlzKTtcbiAgICBpZiAodHlwZW9mIHBsdWdpbi5pbnN0YWxsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBwbHVnaW4uaW5zdGFsbC5hcHBseShwbHVnaW4sIGFyZ3MpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHBsdWdpbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcGx1Z2luLmFwcGx5KG51bGwsIGFyZ3MpO1xuICAgIH1cbiAgICBpbnN0YWxsZWRQbHVnaW5zLnB1c2gocGx1Z2luKTtcbiAgICByZXR1cm4gdGhpc1xuICB9O1xufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gaW5pdE1peGluJDEgKFZ1ZSkge1xuICBWdWUubWl4aW4gPSBmdW5jdGlvbiAobWl4aW4pIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBtZXJnZU9wdGlvbnModGhpcy5vcHRpb25zLCBtaXhpbik7XG4gICAgcmV0dXJuIHRoaXNcbiAgfTtcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGluaXRFeHRlbmQgKFZ1ZSkge1xuICAvKipcbiAgICogRWFjaCBpbnN0YW5jZSBjb25zdHJ1Y3RvciwgaW5jbHVkaW5nIFZ1ZSwgaGFzIGEgdW5pcXVlXG4gICAqIGNpZC4gVGhpcyBlbmFibGVzIHVzIHRvIGNyZWF0ZSB3cmFwcGVkIFwiY2hpbGRcbiAgICogY29uc3RydWN0b3JzXCIgZm9yIHByb3RvdHlwYWwgaW5oZXJpdGFuY2UgYW5kIGNhY2hlIHRoZW0uXG4gICAqL1xuICBWdWUuY2lkID0gMDtcbiAgdmFyIGNpZCA9IDE7XG5cbiAgLyoqXG4gICAqIENsYXNzIGluaGVyaXRhbmNlXG4gICAqL1xuICBWdWUuZXh0ZW5kID0gZnVuY3Rpb24gKGV4dGVuZE9wdGlvbnMpIHtcbiAgICBleHRlbmRPcHRpb25zID0gZXh0ZW5kT3B0aW9ucyB8fCB7fTtcbiAgICB2YXIgU3VwZXIgPSB0aGlzO1xuICAgIHZhciBTdXBlcklkID0gU3VwZXIuY2lkO1xuICAgIHZhciBjYWNoZWRDdG9ycyA9IGV4dGVuZE9wdGlvbnMuX0N0b3IgfHwgKGV4dGVuZE9wdGlvbnMuX0N0b3IgPSB7fSk7XG4gICAgaWYgKGNhY2hlZEN0b3JzW1N1cGVySWRdKSB7XG4gICAgICByZXR1cm4gY2FjaGVkQ3RvcnNbU3VwZXJJZF1cbiAgICB9XG5cbiAgICB2YXIgbmFtZSA9IGV4dGVuZE9wdGlvbnMubmFtZSB8fCBTdXBlci5vcHRpb25zLm5hbWU7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgbmFtZSkge1xuICAgICAgdmFsaWRhdGVDb21wb25lbnROYW1lKG5hbWUpO1xuICAgIH1cblxuICAgIHZhciBTdWIgPSBmdW5jdGlvbiBWdWVDb21wb25lbnQgKG9wdGlvbnMpIHtcbiAgICAgIHRoaXMuX2luaXQob3B0aW9ucyk7XG4gICAgfTtcbiAgICBTdWIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShTdXBlci5wcm90b3R5cGUpO1xuICAgIFN1Yi5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBTdWI7XG4gICAgU3ViLmNpZCA9IGNpZCsrO1xuICAgIFN1Yi5vcHRpb25zID0gbWVyZ2VPcHRpb25zKFxuICAgICAgU3VwZXIub3B0aW9ucyxcbiAgICAgIGV4dGVuZE9wdGlvbnNcbiAgICApO1xuICAgIFN1Ylsnc3VwZXInXSA9IFN1cGVyO1xuXG4gICAgLy8gRm9yIHByb3BzIGFuZCBjb21wdXRlZCBwcm9wZXJ0aWVzLCB3ZSBkZWZpbmUgdGhlIHByb3h5IGdldHRlcnMgb25cbiAgICAvLyB0aGUgVnVlIGluc3RhbmNlcyBhdCBleHRlbnNpb24gdGltZSwgb24gdGhlIGV4dGVuZGVkIHByb3RvdHlwZS4gVGhpc1xuICAgIC8vIGF2b2lkcyBPYmplY3QuZGVmaW5lUHJvcGVydHkgY2FsbHMgZm9yIGVhY2ggaW5zdGFuY2UgY3JlYXRlZC5cbiAgICBpZiAoU3ViLm9wdGlvbnMucHJvcHMpIHtcbiAgICAgIGluaXRQcm9wcyQxKFN1Yik7XG4gICAgfVxuICAgIGlmIChTdWIub3B0aW9ucy5jb21wdXRlZCkge1xuICAgICAgaW5pdENvbXB1dGVkJDEoU3ViKTtcbiAgICB9XG5cbiAgICAvLyBhbGxvdyBmdXJ0aGVyIGV4dGVuc2lvbi9taXhpbi9wbHVnaW4gdXNhZ2VcbiAgICBTdWIuZXh0ZW5kID0gU3VwZXIuZXh0ZW5kO1xuICAgIFN1Yi5taXhpbiA9IFN1cGVyLm1peGluO1xuICAgIFN1Yi51c2UgPSBTdXBlci51c2U7XG5cbiAgICAvLyBjcmVhdGUgYXNzZXQgcmVnaXN0ZXJzLCBzbyBleHRlbmRlZCBjbGFzc2VzXG4gICAgLy8gY2FuIGhhdmUgdGhlaXIgcHJpdmF0ZSBhc3NldHMgdG9vLlxuICAgIEFTU0VUX1RZUEVTLmZvckVhY2goZnVuY3Rpb24gKHR5cGUpIHtcbiAgICAgIFN1Ylt0eXBlXSA9IFN1cGVyW3R5cGVdO1xuICAgIH0pO1xuICAgIC8vIGVuYWJsZSByZWN1cnNpdmUgc2VsZi1sb29rdXBcbiAgICBpZiAobmFtZSkge1xuICAgICAgU3ViLm9wdGlvbnMuY29tcG9uZW50c1tuYW1lXSA9IFN1YjtcbiAgICB9XG5cbiAgICAvLyBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBzdXBlciBvcHRpb25zIGF0IGV4dGVuc2lvbiB0aW1lLlxuICAgIC8vIGxhdGVyIGF0IGluc3RhbnRpYXRpb24gd2UgY2FuIGNoZWNrIGlmIFN1cGVyJ3Mgb3B0aW9ucyBoYXZlXG4gICAgLy8gYmVlbiB1cGRhdGVkLlxuICAgIFN1Yi5zdXBlck9wdGlvbnMgPSBTdXBlci5vcHRpb25zO1xuICAgIFN1Yi5leHRlbmRPcHRpb25zID0gZXh0ZW5kT3B0aW9ucztcbiAgICBTdWIuc2VhbGVkT3B0aW9ucyA9IGV4dGVuZCh7fSwgU3ViLm9wdGlvbnMpO1xuXG4gICAgLy8gY2FjaGUgY29uc3RydWN0b3JcbiAgICBjYWNoZWRDdG9yc1tTdXBlcklkXSA9IFN1YjtcbiAgICByZXR1cm4gU3ViXG4gIH07XG59XG5cbmZ1bmN0aW9uIGluaXRQcm9wcyQxIChDb21wKSB7XG4gIHZhciBwcm9wcyA9IENvbXAub3B0aW9ucy5wcm9wcztcbiAgZm9yICh2YXIga2V5IGluIHByb3BzKSB7XG4gICAgcHJveHkoQ29tcC5wcm90b3R5cGUsIFwiX3Byb3BzXCIsIGtleSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdENvbXB1dGVkJDEgKENvbXApIHtcbiAgdmFyIGNvbXB1dGVkID0gQ29tcC5vcHRpb25zLmNvbXB1dGVkO1xuICBmb3IgKHZhciBrZXkgaW4gY29tcHV0ZWQpIHtcbiAgICBkZWZpbmVDb21wdXRlZChDb21wLnByb3RvdHlwZSwga2V5LCBjb21wdXRlZFtrZXldKTtcbiAgfVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gaW5pdEFzc2V0UmVnaXN0ZXJzIChWdWUpIHtcbiAgLyoqXG4gICAqIENyZWF0ZSBhc3NldCByZWdpc3RyYXRpb24gbWV0aG9kcy5cbiAgICovXG4gIEFTU0VUX1RZUEVTLmZvckVhY2goZnVuY3Rpb24gKHR5cGUpIHtcbiAgICBWdWVbdHlwZV0gPSBmdW5jdGlvbiAoXG4gICAgICBpZCxcbiAgICAgIGRlZmluaXRpb25cbiAgICApIHtcbiAgICAgIGlmICghZGVmaW5pdGlvbikge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zW3R5cGUgKyAncyddW2lkXVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHR5cGUgPT09ICdjb21wb25lbnQnKSB7XG4gICAgICAgICAgdmFsaWRhdGVDb21wb25lbnROYW1lKGlkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZSA9PT0gJ2NvbXBvbmVudCcgJiYgaXNQbGFpbk9iamVjdChkZWZpbml0aW9uKSkge1xuICAgICAgICAgIGRlZmluaXRpb24ubmFtZSA9IGRlZmluaXRpb24ubmFtZSB8fCBpZDtcbiAgICAgICAgICBkZWZpbml0aW9uID0gdGhpcy5vcHRpb25zLl9iYXNlLmV4dGVuZChkZWZpbml0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZSA9PT0gJ2RpcmVjdGl2ZScgJiYgdHlwZW9mIGRlZmluaXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBkZWZpbml0aW9uID0geyBiaW5kOiBkZWZpbml0aW9uLCB1cGRhdGU6IGRlZmluaXRpb24gfTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wdGlvbnNbdHlwZSArICdzJ11baWRdID0gZGVmaW5pdGlvbjtcbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb25cbiAgICAgIH1cbiAgICB9O1xuICB9KTtcbn1cblxuLyogICovXG5cblxuXG5cblxuZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZSAob3B0cykge1xuICByZXR1cm4gb3B0cyAmJiAob3B0cy5DdG9yLm9wdGlvbnMubmFtZSB8fCBvcHRzLnRhZylcbn1cblxuZnVuY3Rpb24gbWF0Y2hlcyAocGF0dGVybiwgbmFtZSkge1xuICBpZiAoQXJyYXkuaXNBcnJheShwYXR0ZXJuKSkge1xuICAgIHJldHVybiBwYXR0ZXJuLmluZGV4T2YobmFtZSkgPiAtMVxuICB9IGVsc2UgaWYgKHR5cGVvZiBwYXR0ZXJuID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwYXR0ZXJuLnNwbGl0KCcsJykuaW5kZXhPZihuYW1lKSA+IC0xXG4gIH0gZWxzZSBpZiAoaXNSZWdFeHAocGF0dGVybikpIHtcbiAgICByZXR1cm4gcGF0dGVybi50ZXN0KG5hbWUpXG4gIH1cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmZ1bmN0aW9uIHBydW5lQ2FjaGUgKGtlZXBBbGl2ZUluc3RhbmNlLCBmaWx0ZXIpIHtcbiAgdmFyIGNhY2hlID0ga2VlcEFsaXZlSW5zdGFuY2UuY2FjaGU7XG4gIHZhciBrZXlzID0ga2VlcEFsaXZlSW5zdGFuY2Uua2V5cztcbiAgdmFyIF92bm9kZSA9IGtlZXBBbGl2ZUluc3RhbmNlLl92bm9kZTtcbiAgZm9yICh2YXIga2V5IGluIGNhY2hlKSB7XG4gICAgdmFyIGVudHJ5ID0gY2FjaGVba2V5XTtcbiAgICBpZiAoZW50cnkpIHtcbiAgICAgIHZhciBuYW1lID0gZW50cnkubmFtZTtcbiAgICAgIGlmIChuYW1lICYmICFmaWx0ZXIobmFtZSkpIHtcbiAgICAgICAgcHJ1bmVDYWNoZUVudHJ5KGNhY2hlLCBrZXksIGtleXMsIF92bm9kZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHBydW5lQ2FjaGVFbnRyeSAoXG4gIGNhY2hlLFxuICBrZXksXG4gIGtleXMsXG4gIGN1cnJlbnRcbikge1xuICB2YXIgZW50cnkgPSBjYWNoZVtrZXldO1xuICBpZiAoZW50cnkgJiYgKCFjdXJyZW50IHx8IGVudHJ5LnRhZyAhPT0gY3VycmVudC50YWcpKSB7XG4gICAgZW50cnkuY29tcG9uZW50SW5zdGFuY2UuJGRlc3Ryb3koKTtcbiAgfVxuICBjYWNoZVtrZXldID0gbnVsbDtcbiAgcmVtb3ZlKGtleXMsIGtleSk7XG59XG5cbnZhciBwYXR0ZXJuVHlwZXMgPSBbU3RyaW5nLCBSZWdFeHAsIEFycmF5XTtcblxudmFyIEtlZXBBbGl2ZSA9IHtcbiAgbmFtZTogJ2tlZXAtYWxpdmUnLFxuICBhYnN0cmFjdDogdHJ1ZSxcblxuICBwcm9wczoge1xuICAgIGluY2x1ZGU6IHBhdHRlcm5UeXBlcyxcbiAgICBleGNsdWRlOiBwYXR0ZXJuVHlwZXMsXG4gICAgbWF4OiBbU3RyaW5nLCBOdW1iZXJdXG4gIH0sXG5cbiAgbWV0aG9kczoge1xuICAgIGNhY2hlVk5vZGU6IGZ1bmN0aW9uIGNhY2hlVk5vZGUoKSB7XG4gICAgICB2YXIgcmVmID0gdGhpcztcbiAgICAgIHZhciBjYWNoZSA9IHJlZi5jYWNoZTtcbiAgICAgIHZhciBrZXlzID0gcmVmLmtleXM7XG4gICAgICB2YXIgdm5vZGVUb0NhY2hlID0gcmVmLnZub2RlVG9DYWNoZTtcbiAgICAgIHZhciBrZXlUb0NhY2hlID0gcmVmLmtleVRvQ2FjaGU7XG4gICAgICBpZiAodm5vZGVUb0NhY2hlKSB7XG4gICAgICAgIHZhciB0YWcgPSB2bm9kZVRvQ2FjaGUudGFnO1xuICAgICAgICB2YXIgY29tcG9uZW50SW5zdGFuY2UgPSB2bm9kZVRvQ2FjaGUuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgICAgIHZhciBjb21wb25lbnRPcHRpb25zID0gdm5vZGVUb0NhY2hlLmNvbXBvbmVudE9wdGlvbnM7XG4gICAgICAgIGNhY2hlW2tleVRvQ2FjaGVdID0ge1xuICAgICAgICAgIG5hbWU6IGdldENvbXBvbmVudE5hbWUoY29tcG9uZW50T3B0aW9ucyksXG4gICAgICAgICAgdGFnOiB0YWcsXG4gICAgICAgICAgY29tcG9uZW50SW5zdGFuY2U6IGNvbXBvbmVudEluc3RhbmNlLFxuICAgICAgICB9O1xuICAgICAgICBrZXlzLnB1c2goa2V5VG9DYWNoZSk7XG4gICAgICAgIC8vIHBydW5lIG9sZGVzdCBlbnRyeVxuICAgICAgICBpZiAodGhpcy5tYXggJiYga2V5cy5sZW5ndGggPiBwYXJzZUludCh0aGlzLm1heCkpIHtcbiAgICAgICAgICBwcnVuZUNhY2hlRW50cnkoY2FjaGUsIGtleXNbMF0sIGtleXMsIHRoaXMuX3Zub2RlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZub2RlVG9DYWNoZSA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQgKCkge1xuICAgIHRoaXMuY2FjaGUgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIHRoaXMua2V5cyA9IFtdO1xuICB9LFxuXG4gIGRlc3Ryb3llZDogZnVuY3Rpb24gZGVzdHJveWVkICgpIHtcbiAgICBmb3IgKHZhciBrZXkgaW4gdGhpcy5jYWNoZSkge1xuICAgICAgcHJ1bmVDYWNoZUVudHJ5KHRoaXMuY2FjaGUsIGtleSwgdGhpcy5rZXlzKTtcbiAgICB9XG4gIH0sXG5cbiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCAoKSB7XG4gICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cbiAgICB0aGlzLmNhY2hlVk5vZGUoKTtcbiAgICB0aGlzLiR3YXRjaCgnaW5jbHVkZScsIGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgIHBydW5lQ2FjaGUodGhpcyQxLCBmdW5jdGlvbiAobmFtZSkgeyByZXR1cm4gbWF0Y2hlcyh2YWwsIG5hbWUpOyB9KTtcbiAgICB9KTtcbiAgICB0aGlzLiR3YXRjaCgnZXhjbHVkZScsIGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgIHBydW5lQ2FjaGUodGhpcyQxLCBmdW5jdGlvbiAobmFtZSkgeyByZXR1cm4gIW1hdGNoZXModmFsLCBuYW1lKTsgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgdXBkYXRlZDogZnVuY3Rpb24gdXBkYXRlZCAoKSB7XG4gICAgdGhpcy5jYWNoZVZOb2RlKCk7XG4gIH0sXG5cbiAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIgKCkge1xuICAgIHZhciBzbG90ID0gdGhpcy4kc2xvdHMuZGVmYXVsdDtcbiAgICB2YXIgdm5vZGUgPSBnZXRGaXJzdENvbXBvbmVudENoaWxkKHNsb3QpO1xuICAgIHZhciBjb21wb25lbnRPcHRpb25zID0gdm5vZGUgJiYgdm5vZGUuY29tcG9uZW50T3B0aW9ucztcbiAgICBpZiAoY29tcG9uZW50T3B0aW9ucykge1xuICAgICAgLy8gY2hlY2sgcGF0dGVyblxuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lKGNvbXBvbmVudE9wdGlvbnMpO1xuICAgICAgdmFyIHJlZiA9IHRoaXM7XG4gICAgICB2YXIgaW5jbHVkZSA9IHJlZi5pbmNsdWRlO1xuICAgICAgdmFyIGV4Y2x1ZGUgPSByZWYuZXhjbHVkZTtcbiAgICAgIGlmIChcbiAgICAgICAgLy8gbm90IGluY2x1ZGVkXG4gICAgICAgIChpbmNsdWRlICYmICghbmFtZSB8fCAhbWF0Y2hlcyhpbmNsdWRlLCBuYW1lKSkpIHx8XG4gICAgICAgIC8vIGV4Y2x1ZGVkXG4gICAgICAgIChleGNsdWRlICYmIG5hbWUgJiYgbWF0Y2hlcyhleGNsdWRlLCBuYW1lKSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gdm5vZGVcbiAgICAgIH1cblxuICAgICAgdmFyIHJlZiQxID0gdGhpcztcbiAgICAgIHZhciBjYWNoZSA9IHJlZiQxLmNhY2hlO1xuICAgICAgdmFyIGtleXMgPSByZWYkMS5rZXlzO1xuICAgICAgdmFyIGtleSA9IHZub2RlLmtleSA9PSBudWxsXG4gICAgICAgIC8vIHNhbWUgY29uc3RydWN0b3IgbWF5IGdldCByZWdpc3RlcmVkIGFzIGRpZmZlcmVudCBsb2NhbCBjb21wb25lbnRzXG4gICAgICAgIC8vIHNvIGNpZCBhbG9uZSBpcyBub3QgZW5vdWdoICgjMzI2OSlcbiAgICAgICAgPyBjb21wb25lbnRPcHRpb25zLkN0b3IuY2lkICsgKGNvbXBvbmVudE9wdGlvbnMudGFnID8gKFwiOjpcIiArIChjb21wb25lbnRPcHRpb25zLnRhZykpIDogJycpXG4gICAgICAgIDogdm5vZGUua2V5O1xuICAgICAgaWYgKGNhY2hlW2tleV0pIHtcbiAgICAgICAgdm5vZGUuY29tcG9uZW50SW5zdGFuY2UgPSBjYWNoZVtrZXldLmNvbXBvbmVudEluc3RhbmNlO1xuICAgICAgICAvLyBtYWtlIGN1cnJlbnQga2V5IGZyZXNoZXN0XG4gICAgICAgIHJlbW92ZShrZXlzLCBrZXkpO1xuICAgICAgICBrZXlzLnB1c2goa2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGRlbGF5IHNldHRpbmcgdGhlIGNhY2hlIHVudGlsIHVwZGF0ZVxuICAgICAgICB0aGlzLnZub2RlVG9DYWNoZSA9IHZub2RlO1xuICAgICAgICB0aGlzLmtleVRvQ2FjaGUgPSBrZXk7XG4gICAgICB9XG5cbiAgICAgIHZub2RlLmRhdGEua2VlcEFsaXZlID0gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHZub2RlIHx8IChzbG90ICYmIHNsb3RbMF0pXG4gIH1cbn07XG5cbnZhciBidWlsdEluQ29tcG9uZW50cyA9IHtcbiAgS2VlcEFsaXZlOiBLZWVwQWxpdmVcbn07XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpbml0R2xvYmFsQVBJIChWdWUpIHtcbiAgLy8gY29uZmlnXG4gIHZhciBjb25maWdEZWYgPSB7fTtcbiAgY29uZmlnRGVmLmdldCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNvbmZpZzsgfTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBjb25maWdEZWYuc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgd2FybihcbiAgICAgICAgJ0RvIG5vdCByZXBsYWNlIHRoZSBWdWUuY29uZmlnIG9iamVjdCwgc2V0IGluZGl2aWR1YWwgZmllbGRzIGluc3RlYWQuJ1xuICAgICAgKTtcbiAgICB9O1xuICB9XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShWdWUsICdjb25maWcnLCBjb25maWdEZWYpO1xuXG4gIC8vIGV4cG9zZWQgdXRpbCBtZXRob2RzLlxuICAvLyBOT1RFOiB0aGVzZSBhcmUgbm90IGNvbnNpZGVyZWQgcGFydCBvZiB0aGUgcHVibGljIEFQSSAtIGF2b2lkIHJlbHlpbmcgb25cbiAgLy8gdGhlbSB1bmxlc3MgeW91IGFyZSBhd2FyZSBvZiB0aGUgcmlzay5cbiAgVnVlLnV0aWwgPSB7XG4gICAgd2Fybjogd2FybixcbiAgICBleHRlbmQ6IGV4dGVuZCxcbiAgICBtZXJnZU9wdGlvbnM6IG1lcmdlT3B0aW9ucyxcbiAgICBkZWZpbmVSZWFjdGl2ZTogZGVmaW5lUmVhY3RpdmUkJDFcbiAgfTtcblxuICBWdWUuc2V0ID0gc2V0O1xuICBWdWUuZGVsZXRlID0gZGVsO1xuICBWdWUubmV4dFRpY2sgPSBuZXh0VGljaztcblxuICAvLyAyLjYgZXhwbGljaXQgb2JzZXJ2YWJsZSBBUElcbiAgVnVlLm9ic2VydmFibGUgPSBmdW5jdGlvbiAob2JqKSB7XG4gICAgb2JzZXJ2ZShvYmopO1xuICAgIHJldHVybiBvYmpcbiAgfTtcblxuICBWdWUub3B0aW9ucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIEFTU0VUX1RZUEVTLmZvckVhY2goZnVuY3Rpb24gKHR5cGUpIHtcbiAgICBWdWUub3B0aW9uc1t0eXBlICsgJ3MnXSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIH0pO1xuXG4gIC8vIHRoaXMgaXMgdXNlZCB0byBpZGVudGlmeSB0aGUgXCJiYXNlXCIgY29uc3RydWN0b3IgdG8gZXh0ZW5kIGFsbCBwbGFpbi1vYmplY3RcbiAgLy8gY29tcG9uZW50cyB3aXRoIGluIFdlZXgncyBtdWx0aS1pbnN0YW5jZSBzY2VuYXJpb3MuXG4gIFZ1ZS5vcHRpb25zLl9iYXNlID0gVnVlO1xuXG4gIGV4dGVuZChWdWUub3B0aW9ucy5jb21wb25lbnRzLCBidWlsdEluQ29tcG9uZW50cyk7XG5cbiAgaW5pdFVzZShWdWUpO1xuICBpbml0TWl4aW4kMShWdWUpO1xuICBpbml0RXh0ZW5kKFZ1ZSk7XG4gIGluaXRBc3NldFJlZ2lzdGVycyhWdWUpO1xufVxuXG5pbml0R2xvYmFsQVBJKFZ1ZSk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShWdWUucHJvdG90eXBlLCAnJGlzU2VydmVyJywge1xuICBnZXQ6IGlzU2VydmVyUmVuZGVyaW5nXG59KTtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFZ1ZS5wcm90b3R5cGUsICckc3NyQ29udGV4dCcsIHtcbiAgZ2V0OiBmdW5jdGlvbiBnZXQgKCkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuIHRoaXMuJHZub2RlICYmIHRoaXMuJHZub2RlLnNzckNvbnRleHRcbiAgfVxufSk7XG5cbi8vIGV4cG9zZSBGdW5jdGlvbmFsUmVuZGVyQ29udGV4dCBmb3Igc3NyIHJ1bnRpbWUgaGVscGVyIGluc3RhbGxhdGlvblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KFZ1ZSwgJ0Z1bmN0aW9uYWxSZW5kZXJDb250ZXh0Jywge1xuICB2YWx1ZTogRnVuY3Rpb25hbFJlbmRlckNvbnRleHRcbn0pO1xuXG5WdWUudmVyc2lvbiA9ICcyLjYuMTQnO1xuXG4vKiAgKi9cblxuLy8gdGhlc2UgYXJlIHJlc2VydmVkIGZvciB3ZWIgYmVjYXVzZSB0aGV5IGFyZSBkaXJlY3RseSBjb21waWxlZCBhd2F5XG4vLyBkdXJpbmcgdGVtcGxhdGUgY29tcGlsYXRpb25cbnZhciBpc1Jlc2VydmVkQXR0ciA9IG1ha2VNYXAoJ3N0eWxlLGNsYXNzJyk7XG5cbi8vIGF0dHJpYnV0ZXMgdGhhdCBzaG91bGQgYmUgdXNpbmcgcHJvcHMgZm9yIGJpbmRpbmdcbnZhciBhY2NlcHRWYWx1ZSA9IG1ha2VNYXAoJ2lucHV0LHRleHRhcmVhLG9wdGlvbixzZWxlY3QscHJvZ3Jlc3MnKTtcbnZhciBtdXN0VXNlUHJvcCA9IGZ1bmN0aW9uICh0YWcsIHR5cGUsIGF0dHIpIHtcbiAgcmV0dXJuIChcbiAgICAoYXR0ciA9PT0gJ3ZhbHVlJyAmJiBhY2NlcHRWYWx1ZSh0YWcpKSAmJiB0eXBlICE9PSAnYnV0dG9uJyB8fFxuICAgIChhdHRyID09PSAnc2VsZWN0ZWQnICYmIHRhZyA9PT0gJ29wdGlvbicpIHx8XG4gICAgKGF0dHIgPT09ICdjaGVja2VkJyAmJiB0YWcgPT09ICdpbnB1dCcpIHx8XG4gICAgKGF0dHIgPT09ICdtdXRlZCcgJiYgdGFnID09PSAndmlkZW8nKVxuICApXG59O1xuXG52YXIgaXNFbnVtZXJhdGVkQXR0ciA9IG1ha2VNYXAoJ2NvbnRlbnRlZGl0YWJsZSxkcmFnZ2FibGUsc3BlbGxjaGVjaycpO1xuXG52YXIgaXNWYWxpZENvbnRlbnRFZGl0YWJsZVZhbHVlID0gbWFrZU1hcCgnZXZlbnRzLGNhcmV0LHR5cGluZyxwbGFpbnRleHQtb25seScpO1xuXG52YXIgY29udmVydEVudW1lcmF0ZWRWYWx1ZSA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHJldHVybiBpc0ZhbHN5QXR0clZhbHVlKHZhbHVlKSB8fCB2YWx1ZSA9PT0gJ2ZhbHNlJ1xuICAgID8gJ2ZhbHNlJ1xuICAgIC8vIGFsbG93IGFyYml0cmFyeSBzdHJpbmcgdmFsdWUgZm9yIGNvbnRlbnRlZGl0YWJsZVxuICAgIDoga2V5ID09PSAnY29udGVudGVkaXRhYmxlJyAmJiBpc1ZhbGlkQ29udGVudEVkaXRhYmxlVmFsdWUodmFsdWUpXG4gICAgICA/IHZhbHVlXG4gICAgICA6ICd0cnVlJ1xufTtcblxudmFyIGlzQm9vbGVhbkF0dHIgPSBtYWtlTWFwKFxuICAnYWxsb3dmdWxsc2NyZWVuLGFzeW5jLGF1dG9mb2N1cyxhdXRvcGxheSxjaGVja2VkLGNvbXBhY3QsY29udHJvbHMsZGVjbGFyZSwnICtcbiAgJ2RlZmF1bHQsZGVmYXVsdGNoZWNrZWQsZGVmYXVsdG11dGVkLGRlZmF1bHRzZWxlY3RlZCxkZWZlcixkaXNhYmxlZCwnICtcbiAgJ2VuYWJsZWQsZm9ybW5vdmFsaWRhdGUsaGlkZGVuLGluZGV0ZXJtaW5hdGUsaW5lcnQsaXNtYXAsaXRlbXNjb3BlLGxvb3AsbXVsdGlwbGUsJyArXG4gICdtdXRlZCxub2hyZWYsbm9yZXNpemUsbm9zaGFkZSxub3ZhbGlkYXRlLG5vd3JhcCxvcGVuLHBhdXNlb25leGl0LHJlYWRvbmx5LCcgK1xuICAncmVxdWlyZWQscmV2ZXJzZWQsc2NvcGVkLHNlYW1sZXNzLHNlbGVjdGVkLHNvcnRhYmxlLCcgK1xuICAndHJ1ZXNwZWVkLHR5cGVtdXN0bWF0Y2gsdmlzaWJsZSdcbik7XG5cbnZhciB4bGlua05TID0gJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnO1xuXG52YXIgaXNYbGluayA9IGZ1bmN0aW9uIChuYW1lKSB7XG4gIHJldHVybiBuYW1lLmNoYXJBdCg1KSA9PT0gJzonICYmIG5hbWUuc2xpY2UoMCwgNSkgPT09ICd4bGluaydcbn07XG5cbnZhciBnZXRYbGlua1Byb3AgPSBmdW5jdGlvbiAobmFtZSkge1xuICByZXR1cm4gaXNYbGluayhuYW1lKSA/IG5hbWUuc2xpY2UoNiwgbmFtZS5sZW5ndGgpIDogJydcbn07XG5cbnZhciBpc0ZhbHN5QXR0clZhbHVlID0gZnVuY3Rpb24gKHZhbCkge1xuICByZXR1cm4gdmFsID09IG51bGwgfHwgdmFsID09PSBmYWxzZVxufTtcblxuLyogICovXG5cbmZ1bmN0aW9uIGdlbkNsYXNzRm9yVm5vZGUgKHZub2RlKSB7XG4gIHZhciBkYXRhID0gdm5vZGUuZGF0YTtcbiAgdmFyIHBhcmVudE5vZGUgPSB2bm9kZTtcbiAgdmFyIGNoaWxkTm9kZSA9IHZub2RlO1xuICB3aGlsZSAoaXNEZWYoY2hpbGROb2RlLmNvbXBvbmVudEluc3RhbmNlKSkge1xuICAgIGNoaWxkTm9kZSA9IGNoaWxkTm9kZS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGU7XG4gICAgaWYgKGNoaWxkTm9kZSAmJiBjaGlsZE5vZGUuZGF0YSkge1xuICAgICAgZGF0YSA9IG1lcmdlQ2xhc3NEYXRhKGNoaWxkTm9kZS5kYXRhLCBkYXRhKTtcbiAgICB9XG4gIH1cbiAgd2hpbGUgKGlzRGVmKHBhcmVudE5vZGUgPSBwYXJlbnROb2RlLnBhcmVudCkpIHtcbiAgICBpZiAocGFyZW50Tm9kZSAmJiBwYXJlbnROb2RlLmRhdGEpIHtcbiAgICAgIGRhdGEgPSBtZXJnZUNsYXNzRGF0YShkYXRhLCBwYXJlbnROb2RlLmRhdGEpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVuZGVyQ2xhc3MoZGF0YS5zdGF0aWNDbGFzcywgZGF0YS5jbGFzcylcbn1cblxuZnVuY3Rpb24gbWVyZ2VDbGFzc0RhdGEgKGNoaWxkLCBwYXJlbnQpIHtcbiAgcmV0dXJuIHtcbiAgICBzdGF0aWNDbGFzczogY29uY2F0KGNoaWxkLnN0YXRpY0NsYXNzLCBwYXJlbnQuc3RhdGljQ2xhc3MpLFxuICAgIGNsYXNzOiBpc0RlZihjaGlsZC5jbGFzcylcbiAgICAgID8gW2NoaWxkLmNsYXNzLCBwYXJlbnQuY2xhc3NdXG4gICAgICA6IHBhcmVudC5jbGFzc1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbmRlckNsYXNzIChcbiAgc3RhdGljQ2xhc3MsXG4gIGR5bmFtaWNDbGFzc1xuKSB7XG4gIGlmIChpc0RlZihzdGF0aWNDbGFzcykgfHwgaXNEZWYoZHluYW1pY0NsYXNzKSkge1xuICAgIHJldHVybiBjb25jYXQoc3RhdGljQ2xhc3MsIHN0cmluZ2lmeUNsYXNzKGR5bmFtaWNDbGFzcykpXG4gIH1cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcmV0dXJuICcnXG59XG5cbmZ1bmN0aW9uIGNvbmNhdCAoYSwgYikge1xuICByZXR1cm4gYSA/IGIgPyAoYSArICcgJyArIGIpIDogYSA6IChiIHx8ICcnKVxufVxuXG5mdW5jdGlvbiBzdHJpbmdpZnlDbGFzcyAodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHN0cmluZ2lmeUFycmF5KHZhbHVlKVxuICB9XG4gIGlmIChpc09iamVjdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gc3RyaW5naWZ5T2JqZWN0KHZhbHVlKVxuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcmV0dXJuICcnXG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeUFycmF5ICh2YWx1ZSkge1xuICB2YXIgcmVzID0gJyc7XG4gIHZhciBzdHJpbmdpZmllZDtcbiAgZm9yICh2YXIgaSA9IDAsIGwgPSB2YWx1ZS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBpZiAoaXNEZWYoc3RyaW5naWZpZWQgPSBzdHJpbmdpZnlDbGFzcyh2YWx1ZVtpXSkpICYmIHN0cmluZ2lmaWVkICE9PSAnJykge1xuICAgICAgaWYgKHJlcykgeyByZXMgKz0gJyAnOyB9XG4gICAgICByZXMgKz0gc3RyaW5naWZpZWQ7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5T2JqZWN0ICh2YWx1ZSkge1xuICB2YXIgcmVzID0gJyc7XG4gIGZvciAodmFyIGtleSBpbiB2YWx1ZSkge1xuICAgIGlmICh2YWx1ZVtrZXldKSB7XG4gICAgICBpZiAocmVzKSB7IHJlcyArPSAnICc7IH1cbiAgICAgIHJlcyArPSBrZXk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuLyogICovXG5cbnZhciBuYW1lc3BhY2VNYXAgPSB7XG4gIHN2ZzogJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyxcbiAgbWF0aDogJ2h0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwnXG59O1xuXG52YXIgaXNIVE1MVGFnID0gbWFrZU1hcChcbiAgJ2h0bWwsYm9keSxiYXNlLGhlYWQsbGluayxtZXRhLHN0eWxlLHRpdGxlLCcgK1xuICAnYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGZvb3RlcixoZWFkZXIsaDEsaDIsaDMsaDQsaDUsaDYsaGdyb3VwLG5hdixzZWN0aW9uLCcgK1xuICAnZGl2LGRkLGRsLGR0LGZpZ2NhcHRpb24sZmlndXJlLHBpY3R1cmUsaHIsaW1nLGxpLG1haW4sb2wscCxwcmUsdWwsJyArXG4gICdhLGIsYWJicixiZGksYmRvLGJyLGNpdGUsY29kZSxkYXRhLGRmbixlbSxpLGtiZCxtYXJrLHEscnAscnQscnRjLHJ1YnksJyArXG4gICdzLHNhbXAsc21hbGwsc3BhbixzdHJvbmcsc3ViLHN1cCx0aW1lLHUsdmFyLHdicixhcmVhLGF1ZGlvLG1hcCx0cmFjayx2aWRlbywnICtcbiAgJ2VtYmVkLG9iamVjdCxwYXJhbSxzb3VyY2UsY2FudmFzLHNjcmlwdCxub3NjcmlwdCxkZWwsaW5zLCcgK1xuICAnY2FwdGlvbixjb2wsY29sZ3JvdXAsdGFibGUsdGhlYWQsdGJvZHksdGQsdGgsdHIsJyArXG4gICdidXR0b24sZGF0YWxpc3QsZmllbGRzZXQsZm9ybSxpbnB1dCxsYWJlbCxsZWdlbmQsbWV0ZXIsb3B0Z3JvdXAsb3B0aW9uLCcgK1xuICAnb3V0cHV0LHByb2dyZXNzLHNlbGVjdCx0ZXh0YXJlYSwnICtcbiAgJ2RldGFpbHMsZGlhbG9nLG1lbnUsbWVudWl0ZW0sc3VtbWFyeSwnICtcbiAgJ2NvbnRlbnQsZWxlbWVudCxzaGFkb3csdGVtcGxhdGUsYmxvY2txdW90ZSxpZnJhbWUsdGZvb3QnXG4pO1xuXG4vLyB0aGlzIG1hcCBpcyBpbnRlbnRpb25hbGx5IHNlbGVjdGl2ZSwgb25seSBjb3ZlcmluZyBTVkcgZWxlbWVudHMgdGhhdCBtYXlcbi8vIGNvbnRhaW4gY2hpbGQgZWxlbWVudHMuXG52YXIgaXNTVkcgPSBtYWtlTWFwKFxuICAnc3ZnLGFuaW1hdGUsY2lyY2xlLGNsaXBwYXRoLGN1cnNvcixkZWZzLGRlc2MsZWxsaXBzZSxmaWx0ZXIsZm9udC1mYWNlLCcgK1xuICAnZm9yZWlnbm9iamVjdCxnLGdseXBoLGltYWdlLGxpbmUsbWFya2VyLG1hc2ssbWlzc2luZy1nbHlwaCxwYXRoLHBhdHRlcm4sJyArXG4gICdwb2x5Z29uLHBvbHlsaW5lLHJlY3Qsc3dpdGNoLHN5bWJvbCx0ZXh0LHRleHRwYXRoLHRzcGFuLHVzZSx2aWV3JyxcbiAgdHJ1ZVxuKTtcblxudmFyIGlzUmVzZXJ2ZWRUYWcgPSBmdW5jdGlvbiAodGFnKSB7XG4gIHJldHVybiBpc0hUTUxUYWcodGFnKSB8fCBpc1NWRyh0YWcpXG59O1xuXG5mdW5jdGlvbiBnZXRUYWdOYW1lc3BhY2UgKHRhZykge1xuICBpZiAoaXNTVkcodGFnKSkge1xuICAgIHJldHVybiAnc3ZnJ1xuICB9XG4gIC8vIGJhc2ljIHN1cHBvcnQgZm9yIE1hdGhNTFxuICAvLyBub3RlIGl0IGRvZXNuJ3Qgc3VwcG9ydCBvdGhlciBNYXRoTUwgZWxlbWVudHMgYmVpbmcgY29tcG9uZW50IHJvb3RzXG4gIGlmICh0YWcgPT09ICdtYXRoJykge1xuICAgIHJldHVybiAnbWF0aCdcbiAgfVxufVxuXG52YXIgdW5rbm93bkVsZW1lbnRDYWNoZSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5mdW5jdGlvbiBpc1Vua25vd25FbGVtZW50ICh0YWcpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmICghaW5Ccm93c2VyKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuICBpZiAoaXNSZXNlcnZlZFRhZyh0YWcpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgdGFnID0gdGFnLnRvTG93ZXJDYXNlKCk7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAodW5rbm93bkVsZW1lbnRDYWNoZVt0YWddICE9IG51bGwpIHtcbiAgICByZXR1cm4gdW5rbm93bkVsZW1lbnRDYWNoZVt0YWddXG4gIH1cbiAgdmFyIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWcpO1xuICBpZiAodGFnLmluZGV4T2YoJy0nKSA+IC0xKSB7XG4gICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjgyMTAzNjQvMTA3MDI0NFxuICAgIHJldHVybiAodW5rbm93bkVsZW1lbnRDYWNoZVt0YWddID0gKFxuICAgICAgZWwuY29uc3RydWN0b3IgPT09IHdpbmRvdy5IVE1MVW5rbm93bkVsZW1lbnQgfHxcbiAgICAgIGVsLmNvbnN0cnVjdG9yID09PSB3aW5kb3cuSFRNTEVsZW1lbnRcbiAgICApKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiAodW5rbm93bkVsZW1lbnRDYWNoZVt0YWddID0gL0hUTUxVbmtub3duRWxlbWVudC8udGVzdChlbC50b1N0cmluZygpKSlcbiAgfVxufVxuXG52YXIgaXNUZXh0SW5wdXRUeXBlID0gbWFrZU1hcCgndGV4dCxudW1iZXIscGFzc3dvcmQsc2VhcmNoLGVtYWlsLHRlbCx1cmwnKTtcblxuLyogICovXG5cbi8qKlxuICogUXVlcnkgYW4gZWxlbWVudCBzZWxlY3RvciBpZiBpdCdzIG5vdCBhbiBlbGVtZW50IGFscmVhZHkuXG4gKi9cbmZ1bmN0aW9uIHF1ZXJ5IChlbCkge1xuICBpZiAodHlwZW9mIGVsID09PSAnc3RyaW5nJykge1xuICAgIHZhciBzZWxlY3RlZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZWwpO1xuICAgIGlmICghc2VsZWN0ZWQpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgICAgJ0Nhbm5vdCBmaW5kIGVsZW1lbnQ6ICcgKyBlbFxuICAgICAgKTtcbiAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIH1cbiAgICByZXR1cm4gc2VsZWN0ZWRcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZWxcbiAgfVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gY3JlYXRlRWxlbWVudCQxICh0YWdOYW1lLCB2bm9kZSkge1xuICB2YXIgZWxtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0YWdOYW1lKTtcbiAgaWYgKHRhZ05hbWUgIT09ICdzZWxlY3QnKSB7XG4gICAgcmV0dXJuIGVsbVxuICB9XG4gIC8vIGZhbHNlIG9yIG51bGwgd2lsbCByZW1vdmUgdGhlIGF0dHJpYnV0ZSBidXQgdW5kZWZpbmVkIHdpbGwgbm90XG4gIGlmICh2bm9kZS5kYXRhICYmIHZub2RlLmRhdGEuYXR0cnMgJiYgdm5vZGUuZGF0YS5hdHRycy5tdWx0aXBsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZWxtLnNldEF0dHJpYnV0ZSgnbXVsdGlwbGUnLCAnbXVsdGlwbGUnKTtcbiAgfVxuICByZXR1cm4gZWxtXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnROUyAobmFtZXNwYWNlLCB0YWdOYW1lKSB7XG4gIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlTWFwW25hbWVzcGFjZV0sIHRhZ05hbWUpXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVRleHROb2RlICh0ZXh0KSB7XG4gIHJldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KVxufVxuXG5mdW5jdGlvbiBjcmVhdGVDb21tZW50ICh0ZXh0KSB7XG4gIHJldHVybiBkb2N1bWVudC5jcmVhdGVDb21tZW50KHRleHQpXG59XG5cbmZ1bmN0aW9uIGluc2VydEJlZm9yZSAocGFyZW50Tm9kZSwgbmV3Tm9kZSwgcmVmZXJlbmNlTm9kZSkge1xuICBwYXJlbnROb2RlLmluc2VydEJlZm9yZShuZXdOb2RlLCByZWZlcmVuY2VOb2RlKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlQ2hpbGQgKG5vZGUsIGNoaWxkKSB7XG4gIG5vZGUucmVtb3ZlQ2hpbGQoY2hpbGQpO1xufVxuXG5mdW5jdGlvbiBhcHBlbmRDaGlsZCAobm9kZSwgY2hpbGQpIHtcbiAgbm9kZS5hcHBlbmRDaGlsZChjaGlsZCk7XG59XG5cbmZ1bmN0aW9uIHBhcmVudE5vZGUgKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUucGFyZW50Tm9kZVxufVxuXG5mdW5jdGlvbiBuZXh0U2libGluZyAobm9kZSkge1xuICByZXR1cm4gbm9kZS5uZXh0U2libGluZ1xufVxuXG5mdW5jdGlvbiB0YWdOYW1lIChub2RlKSB7XG4gIHJldHVybiBub2RlLnRhZ05hbWVcbn1cblxuZnVuY3Rpb24gc2V0VGV4dENvbnRlbnQgKG5vZGUsIHRleHQpIHtcbiAgbm9kZS50ZXh0Q29udGVudCA9IHRleHQ7XG59XG5cbmZ1bmN0aW9uIHNldFN0eWxlU2NvcGUgKG5vZGUsIHNjb3BlSWQpIHtcbiAgbm9kZS5zZXRBdHRyaWJ1dGUoc2NvcGVJZCwgJycpO1xufVxuXG52YXIgbm9kZU9wcyA9IC8qI19fUFVSRV9fKi9PYmplY3QuZnJlZXplKHtcbiAgY3JlYXRlRWxlbWVudDogY3JlYXRlRWxlbWVudCQxLFxuICBjcmVhdGVFbGVtZW50TlM6IGNyZWF0ZUVsZW1lbnROUyxcbiAgY3JlYXRlVGV4dE5vZGU6IGNyZWF0ZVRleHROb2RlLFxuICBjcmVhdGVDb21tZW50OiBjcmVhdGVDb21tZW50LFxuICBpbnNlcnRCZWZvcmU6IGluc2VydEJlZm9yZSxcbiAgcmVtb3ZlQ2hpbGQ6IHJlbW92ZUNoaWxkLFxuICBhcHBlbmRDaGlsZDogYXBwZW5kQ2hpbGQsXG4gIHBhcmVudE5vZGU6IHBhcmVudE5vZGUsXG4gIG5leHRTaWJsaW5nOiBuZXh0U2libGluZyxcbiAgdGFnTmFtZTogdGFnTmFtZSxcbiAgc2V0VGV4dENvbnRlbnQ6IHNldFRleHRDb250ZW50LFxuICBzZXRTdHlsZVNjb3BlOiBzZXRTdHlsZVNjb3BlXG59KTtcblxuLyogICovXG5cbnZhciByZWYgPSB7XG4gIGNyZWF0ZTogZnVuY3Rpb24gY3JlYXRlIChfLCB2bm9kZSkge1xuICAgIHJlZ2lzdGVyUmVmKHZub2RlKTtcbiAgfSxcbiAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUgKG9sZFZub2RlLCB2bm9kZSkge1xuICAgIGlmIChvbGRWbm9kZS5kYXRhLnJlZiAhPT0gdm5vZGUuZGF0YS5yZWYpIHtcbiAgICAgIHJlZ2lzdGVyUmVmKG9sZFZub2RlLCB0cnVlKTtcbiAgICAgIHJlZ2lzdGVyUmVmKHZub2RlKTtcbiAgICB9XG4gIH0sXG4gIGRlc3Ryb3k6IGZ1bmN0aW9uIGRlc3Ryb3kgKHZub2RlKSB7XG4gICAgcmVnaXN0ZXJSZWYodm5vZGUsIHRydWUpO1xuICB9XG59O1xuXG5mdW5jdGlvbiByZWdpc3RlclJlZiAodm5vZGUsIGlzUmVtb3ZhbCkge1xuICB2YXIga2V5ID0gdm5vZGUuZGF0YS5yZWY7XG4gIGlmICghaXNEZWYoa2V5KSkgeyByZXR1cm4gfVxuXG4gIHZhciB2bSA9IHZub2RlLmNvbnRleHQ7XG4gIHZhciByZWYgPSB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSB8fCB2bm9kZS5lbG07XG4gIHZhciByZWZzID0gdm0uJHJlZnM7XG4gIGlmIChpc1JlbW92YWwpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZWZzW2tleV0pKSB7XG4gICAgICByZW1vdmUocmVmc1trZXldLCByZWYpO1xuICAgIH0gZWxzZSBpZiAocmVmc1trZXldID09PSByZWYpIHtcbiAgICAgIHJlZnNba2V5XSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgaWYgKHZub2RlLmRhdGEucmVmSW5Gb3IpIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShyZWZzW2tleV0pKSB7XG4gICAgICAgIHJlZnNba2V5XSA9IFtyZWZdO1xuICAgICAgfSBlbHNlIGlmIChyZWZzW2tleV0uaW5kZXhPZihyZWYpIDwgMCkge1xuICAgICAgICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgICAgICAgcmVmc1trZXldLnB1c2gocmVmKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVmc1trZXldID0gcmVmO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFZpcnR1YWwgRE9NIHBhdGNoaW5nIGFsZ29yaXRobSBiYXNlZCBvbiBTbmFiYmRvbSBieVxuICogU2ltb24gRnJpaXMgVmluZHVtIChAcGFsZGVwaW5kKVxuICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlXG4gKiBodHRwczovL2dpdGh1Yi5jb20vcGFsZGVwaW5kL3NuYWJiZG9tL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqXG4gKiBtb2RpZmllZCBieSBFdmFuIFlvdSAoQHl5eDk5MDgwMylcbiAqXG4gKiBOb3QgdHlwZS1jaGVja2luZyB0aGlzIGJlY2F1c2UgdGhpcyBmaWxlIGlzIHBlcmYtY3JpdGljYWwgYW5kIHRoZSBjb3N0XG4gKiBvZiBtYWtpbmcgZmxvdyB1bmRlcnN0YW5kIGl0IGlzIG5vdCB3b3J0aCBpdC5cbiAqL1xuXG52YXIgZW1wdHlOb2RlID0gbmV3IFZOb2RlKCcnLCB7fSwgW10pO1xuXG52YXIgaG9va3MgPSBbJ2NyZWF0ZScsICdhY3RpdmF0ZScsICd1cGRhdGUnLCAncmVtb3ZlJywgJ2Rlc3Ryb3knXTtcblxuZnVuY3Rpb24gc2FtZVZub2RlIChhLCBiKSB7XG4gIHJldHVybiAoXG4gICAgYS5rZXkgPT09IGIua2V5ICYmXG4gICAgYS5hc3luY0ZhY3RvcnkgPT09IGIuYXN5bmNGYWN0b3J5ICYmIChcbiAgICAgIChcbiAgICAgICAgYS50YWcgPT09IGIudGFnICYmXG4gICAgICAgIGEuaXNDb21tZW50ID09PSBiLmlzQ29tbWVudCAmJlxuICAgICAgICBpc0RlZihhLmRhdGEpID09PSBpc0RlZihiLmRhdGEpICYmXG4gICAgICAgIHNhbWVJbnB1dFR5cGUoYSwgYilcbiAgICAgICkgfHwgKFxuICAgICAgICBpc1RydWUoYS5pc0FzeW5jUGxhY2Vob2xkZXIpICYmXG4gICAgICAgIGlzVW5kZWYoYi5hc3luY0ZhY3RvcnkuZXJyb3IpXG4gICAgICApXG4gICAgKVxuICApXG59XG5cbmZ1bmN0aW9uIHNhbWVJbnB1dFR5cGUgKGEsIGIpIHtcbiAgaWYgKGEudGFnICE9PSAnaW5wdXQnKSB7IHJldHVybiB0cnVlIH1cbiAgdmFyIGk7XG4gIHZhciB0eXBlQSA9IGlzRGVmKGkgPSBhLmRhdGEpICYmIGlzRGVmKGkgPSBpLmF0dHJzKSAmJiBpLnR5cGU7XG4gIHZhciB0eXBlQiA9IGlzRGVmKGkgPSBiLmRhdGEpICYmIGlzRGVmKGkgPSBpLmF0dHJzKSAmJiBpLnR5cGU7XG4gIHJldHVybiB0eXBlQSA9PT0gdHlwZUIgfHwgaXNUZXh0SW5wdXRUeXBlKHR5cGVBKSAmJiBpc1RleHRJbnB1dFR5cGUodHlwZUIpXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUtleVRvT2xkSWR4IChjaGlsZHJlbiwgYmVnaW5JZHgsIGVuZElkeCkge1xuICB2YXIgaSwga2V5O1xuICB2YXIgbWFwID0ge307XG4gIGZvciAoaSA9IGJlZ2luSWR4OyBpIDw9IGVuZElkeDsgKytpKSB7XG4gICAga2V5ID0gY2hpbGRyZW5baV0ua2V5O1xuICAgIGlmIChpc0RlZihrZXkpKSB7IG1hcFtrZXldID0gaTsgfVxuICB9XG4gIHJldHVybiBtYXBcbn1cblxuZnVuY3Rpb24gY3JlYXRlUGF0Y2hGdW5jdGlvbiAoYmFja2VuZCkge1xuICB2YXIgaSwgajtcbiAgdmFyIGNicyA9IHt9O1xuXG4gIHZhciBtb2R1bGVzID0gYmFja2VuZC5tb2R1bGVzO1xuICB2YXIgbm9kZU9wcyA9IGJhY2tlbmQubm9kZU9wcztcblxuICBmb3IgKGkgPSAwOyBpIDwgaG9va3MubGVuZ3RoOyArK2kpIHtcbiAgICBjYnNbaG9va3NbaV1dID0gW107XG4gICAgZm9yIChqID0gMDsgaiA8IG1vZHVsZXMubGVuZ3RoOyArK2opIHtcbiAgICAgIGlmIChpc0RlZihtb2R1bGVzW2pdW2hvb2tzW2ldXSkpIHtcbiAgICAgICAgY2JzW2hvb2tzW2ldXS5wdXNoKG1vZHVsZXNbal1baG9va3NbaV1dKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBlbXB0eU5vZGVBdCAoZWxtKSB7XG4gICAgcmV0dXJuIG5ldyBWTm9kZShub2RlT3BzLnRhZ05hbWUoZWxtKS50b0xvd2VyQ2FzZSgpLCB7fSwgW10sIHVuZGVmaW5lZCwgZWxtKVxuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlUm1DYiAoY2hpbGRFbG0sIGxpc3RlbmVycykge1xuICAgIGZ1bmN0aW9uIHJlbW92ZSQkMSAoKSB7XG4gICAgICBpZiAoLS1yZW1vdmUkJDEubGlzdGVuZXJzID09PSAwKSB7XG4gICAgICAgIHJlbW92ZU5vZGUoY2hpbGRFbG0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZW1vdmUkJDEubGlzdGVuZXJzID0gbGlzdGVuZXJzO1xuICAgIHJldHVybiByZW1vdmUkJDFcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbW92ZU5vZGUgKGVsKSB7XG4gICAgdmFyIHBhcmVudCA9IG5vZGVPcHMucGFyZW50Tm9kZShlbCk7XG4gICAgLy8gZWxlbWVudCBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gcmVtb3ZlZCBkdWUgdG8gdi1odG1sIC8gdi10ZXh0XG4gICAgaWYgKGlzRGVmKHBhcmVudCkpIHtcbiAgICAgIG5vZGVPcHMucmVtb3ZlQ2hpbGQocGFyZW50LCBlbCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaXNVbmtub3duRWxlbWVudCQkMSAodm5vZGUsIGluVlByZSkge1xuICAgIHJldHVybiAoXG4gICAgICAhaW5WUHJlICYmXG4gICAgICAhdm5vZGUubnMgJiZcbiAgICAgICEoXG4gICAgICAgIGNvbmZpZy5pZ25vcmVkRWxlbWVudHMubGVuZ3RoICYmXG4gICAgICAgIGNvbmZpZy5pZ25vcmVkRWxlbWVudHMuc29tZShmdW5jdGlvbiAoaWdub3JlKSB7XG4gICAgICAgICAgcmV0dXJuIGlzUmVnRXhwKGlnbm9yZSlcbiAgICAgICAgICAgID8gaWdub3JlLnRlc3Qodm5vZGUudGFnKVxuICAgICAgICAgICAgOiBpZ25vcmUgPT09IHZub2RlLnRhZ1xuICAgICAgICB9KVxuICAgICAgKSAmJlxuICAgICAgY29uZmlnLmlzVW5rbm93bkVsZW1lbnQodm5vZGUudGFnKVxuICAgIClcbiAgfVxuXG4gIHZhciBjcmVhdGluZ0VsbUluVlByZSA9IDA7XG5cbiAgZnVuY3Rpb24gY3JlYXRlRWxtIChcbiAgICB2bm9kZSxcbiAgICBpbnNlcnRlZFZub2RlUXVldWUsXG4gICAgcGFyZW50RWxtLFxuICAgIHJlZkVsbSxcbiAgICBuZXN0ZWQsXG4gICAgb3duZXJBcnJheSxcbiAgICBpbmRleFxuICApIHtcbiAgICBpZiAoaXNEZWYodm5vZGUuZWxtKSAmJiBpc0RlZihvd25lckFycmF5KSkge1xuICAgICAgLy8gVGhpcyB2bm9kZSB3YXMgdXNlZCBpbiBhIHByZXZpb3VzIHJlbmRlciFcbiAgICAgIC8vIG5vdyBpdCdzIHVzZWQgYXMgYSBuZXcgbm9kZSwgb3ZlcndyaXRpbmcgaXRzIGVsbSB3b3VsZCBjYXVzZVxuICAgICAgLy8gcG90ZW50aWFsIHBhdGNoIGVycm9ycyBkb3duIHRoZSByb2FkIHdoZW4gaXQncyB1c2VkIGFzIGFuIGluc2VydGlvblxuICAgICAgLy8gcmVmZXJlbmNlIG5vZGUuIEluc3RlYWQsIHdlIGNsb25lIHRoZSBub2RlIG9uLWRlbWFuZCBiZWZvcmUgY3JlYXRpbmdcbiAgICAgIC8vIGFzc29jaWF0ZWQgRE9NIGVsZW1lbnQgZm9yIGl0LlxuICAgICAgdm5vZGUgPSBvd25lckFycmF5W2luZGV4XSA9IGNsb25lVk5vZGUodm5vZGUpO1xuICAgIH1cblxuICAgIHZub2RlLmlzUm9vdEluc2VydCA9ICFuZXN0ZWQ7IC8vIGZvciB0cmFuc2l0aW9uIGVudGVyIGNoZWNrXG4gICAgaWYgKGNyZWF0ZUNvbXBvbmVudCh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBwYXJlbnRFbG0sIHJlZkVsbSkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHZhciBkYXRhID0gdm5vZGUuZGF0YTtcbiAgICB2YXIgY2hpbGRyZW4gPSB2bm9kZS5jaGlsZHJlbjtcbiAgICB2YXIgdGFnID0gdm5vZGUudGFnO1xuICAgIGlmIChpc0RlZih0YWcpKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLnByZSkge1xuICAgICAgICAgIGNyZWF0aW5nRWxtSW5WUHJlKys7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzVW5rbm93bkVsZW1lbnQkJDEodm5vZGUsIGNyZWF0aW5nRWxtSW5WUHJlKSkge1xuICAgICAgICAgIHdhcm4oXG4gICAgICAgICAgICAnVW5rbm93biBjdXN0b20gZWxlbWVudDogPCcgKyB0YWcgKyAnPiAtIGRpZCB5b3UgJyArXG4gICAgICAgICAgICAncmVnaXN0ZXIgdGhlIGNvbXBvbmVudCBjb3JyZWN0bHk/IEZvciByZWN1cnNpdmUgY29tcG9uZW50cywgJyArXG4gICAgICAgICAgICAnbWFrZSBzdXJlIHRvIHByb3ZpZGUgdGhlIFwibmFtZVwiIG9wdGlvbi4nLFxuICAgICAgICAgICAgdm5vZGUuY29udGV4dFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdm5vZGUuZWxtID0gdm5vZGUubnNcbiAgICAgICAgPyBub2RlT3BzLmNyZWF0ZUVsZW1lbnROUyh2bm9kZS5ucywgdGFnKVxuICAgICAgICA6IG5vZGVPcHMuY3JlYXRlRWxlbWVudCh0YWcsIHZub2RlKTtcbiAgICAgIHNldFNjb3BlKHZub2RlKTtcblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICB7XG4gICAgICAgIGNyZWF0ZUNoaWxkcmVuKHZub2RlLCBjaGlsZHJlbiwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICAgICAgaWYgKGlzRGVmKGRhdGEpKSB7XG4gICAgICAgICAgaW52b2tlQ3JlYXRlSG9va3Modm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaW5zZXJ0KHBhcmVudEVsbSwgdm5vZGUuZWxtLCByZWZFbG0pO1xuICAgICAgfVxuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBkYXRhICYmIGRhdGEucHJlKSB7XG4gICAgICAgIGNyZWF0aW5nRWxtSW5WUHJlLS07XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc1RydWUodm5vZGUuaXNDb21tZW50KSkge1xuICAgICAgdm5vZGUuZWxtID0gbm9kZU9wcy5jcmVhdGVDb21tZW50KHZub2RlLnRleHQpO1xuICAgICAgaW5zZXJ0KHBhcmVudEVsbSwgdm5vZGUuZWxtLCByZWZFbG0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB2bm9kZS5lbG0gPSBub2RlT3BzLmNyZWF0ZVRleHROb2RlKHZub2RlLnRleHQpO1xuICAgICAgaW5zZXJ0KHBhcmVudEVsbSwgdm5vZGUuZWxtLCByZWZFbG0pO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUNvbXBvbmVudCAodm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgcGFyZW50RWxtLCByZWZFbG0pIHtcbiAgICB2YXIgaSA9IHZub2RlLmRhdGE7XG4gICAgaWYgKGlzRGVmKGkpKSB7XG4gICAgICB2YXIgaXNSZWFjdGl2YXRlZCA9IGlzRGVmKHZub2RlLmNvbXBvbmVudEluc3RhbmNlKSAmJiBpLmtlZXBBbGl2ZTtcbiAgICAgIGlmIChpc0RlZihpID0gaS5ob29rKSAmJiBpc0RlZihpID0gaS5pbml0KSkge1xuICAgICAgICBpKHZub2RlLCBmYWxzZSAvKiBoeWRyYXRpbmcgKi8pO1xuICAgICAgfVxuICAgICAgLy8gYWZ0ZXIgY2FsbGluZyB0aGUgaW5pdCBob29rLCBpZiB0aGUgdm5vZGUgaXMgYSBjaGlsZCBjb21wb25lbnRcbiAgICAgIC8vIGl0IHNob3VsZCd2ZSBjcmVhdGVkIGEgY2hpbGQgaW5zdGFuY2UgYW5kIG1vdW50ZWQgaXQuIHRoZSBjaGlsZFxuICAgICAgLy8gY29tcG9uZW50IGFsc28gaGFzIHNldCB0aGUgcGxhY2Vob2xkZXIgdm5vZGUncyBlbG0uXG4gICAgICAvLyBpbiB0aGF0IGNhc2Ugd2UgY2FuIGp1c3QgcmV0dXJuIHRoZSBlbGVtZW50IGFuZCBiZSBkb25lLlxuICAgICAgaWYgKGlzRGVmKHZub2RlLmNvbXBvbmVudEluc3RhbmNlKSkge1xuICAgICAgICBpbml0Q29tcG9uZW50KHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUpO1xuICAgICAgICBpbnNlcnQocGFyZW50RWxtLCB2bm9kZS5lbG0sIHJlZkVsbSk7XG4gICAgICAgIGlmIChpc1RydWUoaXNSZWFjdGl2YXRlZCkpIHtcbiAgICAgICAgICByZWFjdGl2YXRlQ29tcG9uZW50KHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIHBhcmVudEVsbSwgcmVmRWxtKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRDb21wb25lbnQgKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUpIHtcbiAgICBpZiAoaXNEZWYodm5vZGUuZGF0YS5wZW5kaW5nSW5zZXJ0KSkge1xuICAgICAgaW5zZXJ0ZWRWbm9kZVF1ZXVlLnB1c2guYXBwbHkoaW5zZXJ0ZWRWbm9kZVF1ZXVlLCB2bm9kZS5kYXRhLnBlbmRpbmdJbnNlcnQpO1xuICAgICAgdm5vZGUuZGF0YS5wZW5kaW5nSW5zZXJ0ID0gbnVsbDtcbiAgICB9XG4gICAgdm5vZGUuZWxtID0gdm5vZGUuY29tcG9uZW50SW5zdGFuY2UuJGVsO1xuICAgIGlmIChpc1BhdGNoYWJsZSh2bm9kZSkpIHtcbiAgICAgIGludm9rZUNyZWF0ZUhvb2tzKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUpO1xuICAgICAgc2V0U2NvcGUodm5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBlbXB0eSBjb21wb25lbnQgcm9vdC5cbiAgICAgIC8vIHNraXAgYWxsIGVsZW1lbnQtcmVsYXRlZCBtb2R1bGVzIGV4Y2VwdCBmb3IgcmVmICgjMzQ1NSlcbiAgICAgIHJlZ2lzdGVyUmVmKHZub2RlKTtcbiAgICAgIC8vIG1ha2Ugc3VyZSB0byBpbnZva2UgdGhlIGluc2VydCBob29rXG4gICAgICBpbnNlcnRlZFZub2RlUXVldWUucHVzaCh2bm9kZSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcmVhY3RpdmF0ZUNvbXBvbmVudCAodm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgcGFyZW50RWxtLCByZWZFbG0pIHtcbiAgICB2YXIgaTtcbiAgICAvLyBoYWNrIGZvciAjNDMzOTogYSByZWFjdGl2YXRlZCBjb21wb25lbnQgd2l0aCBpbm5lciB0cmFuc2l0aW9uXG4gICAgLy8gZG9lcyBub3QgdHJpZ2dlciBiZWNhdXNlIHRoZSBpbm5lciBub2RlJ3MgY3JlYXRlZCBob29rcyBhcmUgbm90IGNhbGxlZFxuICAgIC8vIGFnYWluLiBJdCdzIG5vdCBpZGVhbCB0byBpbnZvbHZlIG1vZHVsZS1zcGVjaWZpYyBsb2dpYyBpbiBoZXJlIGJ1dFxuICAgIC8vIHRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIGJldHRlciB3YXkgdG8gZG8gaXQuXG4gICAgdmFyIGlubmVyTm9kZSA9IHZub2RlO1xuICAgIHdoaWxlIChpbm5lck5vZGUuY29tcG9uZW50SW5zdGFuY2UpIHtcbiAgICAgIGlubmVyTm9kZSA9IGlubmVyTm9kZS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGU7XG4gICAgICBpZiAoaXNEZWYoaSA9IGlubmVyTm9kZS5kYXRhKSAmJiBpc0RlZihpID0gaS50cmFuc2l0aW9uKSkge1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY2JzLmFjdGl2YXRlLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgY2JzLmFjdGl2YXRlW2ldKGVtcHR5Tm9kZSwgaW5uZXJOb2RlKTtcbiAgICAgICAgfVxuICAgICAgICBpbnNlcnRlZFZub2RlUXVldWUucHVzaChpbm5lck5vZGUpO1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cbiAgICAvLyB1bmxpa2UgYSBuZXdseSBjcmVhdGVkIGNvbXBvbmVudCxcbiAgICAvLyBhIHJlYWN0aXZhdGVkIGtlZXAtYWxpdmUgY29tcG9uZW50IGRvZXNuJ3QgaW5zZXJ0IGl0c2VsZlxuICAgIGluc2VydChwYXJlbnRFbG0sIHZub2RlLmVsbSwgcmVmRWxtKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGluc2VydCAocGFyZW50LCBlbG0sIHJlZiQkMSkge1xuICAgIGlmIChpc0RlZihwYXJlbnQpKSB7XG4gICAgICBpZiAoaXNEZWYocmVmJCQxKSkge1xuICAgICAgICBpZiAobm9kZU9wcy5wYXJlbnROb2RlKHJlZiQkMSkgPT09IHBhcmVudCkge1xuICAgICAgICAgIG5vZGVPcHMuaW5zZXJ0QmVmb3JlKHBhcmVudCwgZWxtLCByZWYkJDEpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlT3BzLmFwcGVuZENoaWxkKHBhcmVudCwgZWxtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVDaGlsZHJlbiAodm5vZGUsIGNoaWxkcmVuLCBpbnNlcnRlZFZub2RlUXVldWUpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGNoZWNrRHVwbGljYXRlS2V5cyhjaGlsZHJlbik7XG4gICAgICB9XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGNyZWF0ZUVsbShjaGlsZHJlbltpXSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCB2bm9kZS5lbG0sIG51bGwsIHRydWUsIGNoaWxkcmVuLCBpKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGlzUHJpbWl0aXZlKHZub2RlLnRleHQpKSB7XG4gICAgICBub2RlT3BzLmFwcGVuZENoaWxkKHZub2RlLmVsbSwgbm9kZU9wcy5jcmVhdGVUZXh0Tm9kZShTdHJpbmcodm5vZGUudGV4dCkpKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBpc1BhdGNoYWJsZSAodm5vZGUpIHtcbiAgICB3aGlsZSAodm5vZGUuY29tcG9uZW50SW5zdGFuY2UpIHtcbiAgICAgIHZub2RlID0gdm5vZGUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlO1xuICAgIH1cbiAgICByZXR1cm4gaXNEZWYodm5vZGUudGFnKVxuICB9XG5cbiAgZnVuY3Rpb24gaW52b2tlQ3JlYXRlSG9va3MgKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUpIHtcbiAgICBmb3IgKHZhciBpJDEgPSAwOyBpJDEgPCBjYnMuY3JlYXRlLmxlbmd0aDsgKytpJDEpIHtcbiAgICAgIGNicy5jcmVhdGVbaSQxXShlbXB0eU5vZGUsIHZub2RlKTtcbiAgICB9XG4gICAgaSA9IHZub2RlLmRhdGEuaG9vazsgLy8gUmV1c2UgdmFyaWFibGVcbiAgICBpZiAoaXNEZWYoaSkpIHtcbiAgICAgIGlmIChpc0RlZihpLmNyZWF0ZSkpIHsgaS5jcmVhdGUoZW1wdHlOb2RlLCB2bm9kZSk7IH1cbiAgICAgIGlmIChpc0RlZihpLmluc2VydCkpIHsgaW5zZXJ0ZWRWbm9kZVF1ZXVlLnB1c2godm5vZGUpOyB9XG4gICAgfVxuICB9XG5cbiAgLy8gc2V0IHNjb3BlIGlkIGF0dHJpYnV0ZSBmb3Igc2NvcGVkIENTUy5cbiAgLy8gdGhpcyBpcyBpbXBsZW1lbnRlZCBhcyBhIHNwZWNpYWwgY2FzZSB0byBhdm9pZCB0aGUgb3ZlcmhlYWRcbiAgLy8gb2YgZ29pbmcgdGhyb3VnaCB0aGUgbm9ybWFsIGF0dHJpYnV0ZSBwYXRjaGluZyBwcm9jZXNzLlxuICBmdW5jdGlvbiBzZXRTY29wZSAodm5vZGUpIHtcbiAgICB2YXIgaTtcbiAgICBpZiAoaXNEZWYoaSA9IHZub2RlLmZuU2NvcGVJZCkpIHtcbiAgICAgIG5vZGVPcHMuc2V0U3R5bGVTY29wZSh2bm9kZS5lbG0sIGkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgYW5jZXN0b3IgPSB2bm9kZTtcbiAgICAgIHdoaWxlIChhbmNlc3Rvcikge1xuICAgICAgICBpZiAoaXNEZWYoaSA9IGFuY2VzdG9yLmNvbnRleHQpICYmIGlzRGVmKGkgPSBpLiRvcHRpb25zLl9zY29wZUlkKSkge1xuICAgICAgICAgIG5vZGVPcHMuc2V0U3R5bGVTY29wZSh2bm9kZS5lbG0sIGkpO1xuICAgICAgICB9XG4gICAgICAgIGFuY2VzdG9yID0gYW5jZXN0b3IucGFyZW50O1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBmb3Igc2xvdCBjb250ZW50IHRoZXkgc2hvdWxkIGFsc28gZ2V0IHRoZSBzY29wZUlkIGZyb20gdGhlIGhvc3QgaW5zdGFuY2UuXG4gICAgaWYgKGlzRGVmKGkgPSBhY3RpdmVJbnN0YW5jZSkgJiZcbiAgICAgIGkgIT09IHZub2RlLmNvbnRleHQgJiZcbiAgICAgIGkgIT09IHZub2RlLmZuQ29udGV4dCAmJlxuICAgICAgaXNEZWYoaSA9IGkuJG9wdGlvbnMuX3Njb3BlSWQpXG4gICAgKSB7XG4gICAgICBub2RlT3BzLnNldFN0eWxlU2NvcGUodm5vZGUuZWxtLCBpKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBhZGRWbm9kZXMgKHBhcmVudEVsbSwgcmVmRWxtLCB2bm9kZXMsIHN0YXJ0SWR4LCBlbmRJZHgsIGluc2VydGVkVm5vZGVRdWV1ZSkge1xuICAgIGZvciAoOyBzdGFydElkeCA8PSBlbmRJZHg7ICsrc3RhcnRJZHgpIHtcbiAgICAgIGNyZWF0ZUVsbSh2bm9kZXNbc3RhcnRJZHhdLCBpbnNlcnRlZFZub2RlUXVldWUsIHBhcmVudEVsbSwgcmVmRWxtLCBmYWxzZSwgdm5vZGVzLCBzdGFydElkeCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaW52b2tlRGVzdHJveUhvb2sgKHZub2RlKSB7XG4gICAgdmFyIGksIGo7XG4gICAgdmFyIGRhdGEgPSB2bm9kZS5kYXRhO1xuICAgIGlmIChpc0RlZihkYXRhKSkge1xuICAgICAgaWYgKGlzRGVmKGkgPSBkYXRhLmhvb2spICYmIGlzRGVmKGkgPSBpLmRlc3Ryb3kpKSB7IGkodm5vZGUpOyB9XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgY2JzLmRlc3Ryb3kubGVuZ3RoOyArK2kpIHsgY2JzLmRlc3Ryb3lbaV0odm5vZGUpOyB9XG4gICAgfVxuICAgIGlmIChpc0RlZihpID0gdm5vZGUuY2hpbGRyZW4pKSB7XG4gICAgICBmb3IgKGogPSAwOyBqIDwgdm5vZGUuY2hpbGRyZW4ubGVuZ3RoOyArK2opIHtcbiAgICAgICAgaW52b2tlRGVzdHJveUhvb2sodm5vZGUuY2hpbGRyZW5bal0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbW92ZVZub2RlcyAodm5vZGVzLCBzdGFydElkeCwgZW5kSWR4KSB7XG4gICAgZm9yICg7IHN0YXJ0SWR4IDw9IGVuZElkeDsgKytzdGFydElkeCkge1xuICAgICAgdmFyIGNoID0gdm5vZGVzW3N0YXJ0SWR4XTtcbiAgICAgIGlmIChpc0RlZihjaCkpIHtcbiAgICAgICAgaWYgKGlzRGVmKGNoLnRhZykpIHtcbiAgICAgICAgICByZW1vdmVBbmRJbnZva2VSZW1vdmVIb29rKGNoKTtcbiAgICAgICAgICBpbnZva2VEZXN0cm95SG9vayhjaCk7XG4gICAgICAgIH0gZWxzZSB7IC8vIFRleHQgbm9kZVxuICAgICAgICAgIHJlbW92ZU5vZGUoY2guZWxtKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHJlbW92ZUFuZEludm9rZVJlbW92ZUhvb2sgKHZub2RlLCBybSkge1xuICAgIGlmIChpc0RlZihybSkgfHwgaXNEZWYodm5vZGUuZGF0YSkpIHtcbiAgICAgIHZhciBpO1xuICAgICAgdmFyIGxpc3RlbmVycyA9IGNicy5yZW1vdmUubGVuZ3RoICsgMTtcbiAgICAgIGlmIChpc0RlZihybSkpIHtcbiAgICAgICAgLy8gd2UgaGF2ZSBhIHJlY3Vyc2l2ZWx5IHBhc3NlZCBkb3duIHJtIGNhbGxiYWNrXG4gICAgICAgIC8vIGluY3JlYXNlIHRoZSBsaXN0ZW5lcnMgY291bnRcbiAgICAgICAgcm0ubGlzdGVuZXJzICs9IGxpc3RlbmVycztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGRpcmVjdGx5IHJlbW92aW5nXG4gICAgICAgIHJtID0gY3JlYXRlUm1DYih2bm9kZS5lbG0sIGxpc3RlbmVycyk7XG4gICAgICB9XG4gICAgICAvLyByZWN1cnNpdmVseSBpbnZva2UgaG9va3Mgb24gY2hpbGQgY29tcG9uZW50IHJvb3Qgbm9kZVxuICAgICAgaWYgKGlzRGVmKGkgPSB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSkgJiYgaXNEZWYoaSA9IGkuX3Zub2RlKSAmJiBpc0RlZihpLmRhdGEpKSB7XG4gICAgICAgIHJlbW92ZUFuZEludm9rZVJlbW92ZUhvb2soaSwgcm0pO1xuICAgICAgfVxuICAgICAgZm9yIChpID0gMDsgaSA8IGNicy5yZW1vdmUubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgY2JzLnJlbW92ZVtpXSh2bm9kZSwgcm0pO1xuICAgICAgfVxuICAgICAgaWYgKGlzRGVmKGkgPSB2bm9kZS5kYXRhLmhvb2spICYmIGlzRGVmKGkgPSBpLnJlbW92ZSkpIHtcbiAgICAgICAgaSh2bm9kZSwgcm0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcm0oKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVtb3ZlTm9kZSh2bm9kZS5lbG0pO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZUNoaWxkcmVuIChwYXJlbnRFbG0sIG9sZENoLCBuZXdDaCwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCByZW1vdmVPbmx5KSB7XG4gICAgdmFyIG9sZFN0YXJ0SWR4ID0gMDtcbiAgICB2YXIgbmV3U3RhcnRJZHggPSAwO1xuICAgIHZhciBvbGRFbmRJZHggPSBvbGRDaC5sZW5ndGggLSAxO1xuICAgIHZhciBvbGRTdGFydFZub2RlID0gb2xkQ2hbMF07XG4gICAgdmFyIG9sZEVuZFZub2RlID0gb2xkQ2hbb2xkRW5kSWR4XTtcbiAgICB2YXIgbmV3RW5kSWR4ID0gbmV3Q2gubGVuZ3RoIC0gMTtcbiAgICB2YXIgbmV3U3RhcnRWbm9kZSA9IG5ld0NoWzBdO1xuICAgIHZhciBuZXdFbmRWbm9kZSA9IG5ld0NoW25ld0VuZElkeF07XG4gICAgdmFyIG9sZEtleVRvSWR4LCBpZHhJbk9sZCwgdm5vZGVUb01vdmUsIHJlZkVsbTtcblxuICAgIC8vIHJlbW92ZU9ubHkgaXMgYSBzcGVjaWFsIGZsYWcgdXNlZCBvbmx5IGJ5IDx0cmFuc2l0aW9uLWdyb3VwPlxuICAgIC8vIHRvIGVuc3VyZSByZW1vdmVkIGVsZW1lbnRzIHN0YXkgaW4gY29ycmVjdCByZWxhdGl2ZSBwb3NpdGlvbnNcbiAgICAvLyBkdXJpbmcgbGVhdmluZyB0cmFuc2l0aW9uc1xuICAgIHZhciBjYW5Nb3ZlID0gIXJlbW92ZU9ubHk7XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY2hlY2tEdXBsaWNhdGVLZXlzKG5ld0NoKTtcbiAgICB9XG5cbiAgICB3aGlsZSAob2xkU3RhcnRJZHggPD0gb2xkRW5kSWR4ICYmIG5ld1N0YXJ0SWR4IDw9IG5ld0VuZElkeCkge1xuICAgICAgaWYgKGlzVW5kZWYob2xkU3RhcnRWbm9kZSkpIHtcbiAgICAgICAgb2xkU3RhcnRWbm9kZSA9IG9sZENoWysrb2xkU3RhcnRJZHhdOyAvLyBWbm9kZSBoYXMgYmVlbiBtb3ZlZCBsZWZ0XG4gICAgICB9IGVsc2UgaWYgKGlzVW5kZWYob2xkRW5kVm5vZGUpKSB7XG4gICAgICAgIG9sZEVuZFZub2RlID0gb2xkQ2hbLS1vbGRFbmRJZHhdO1xuICAgICAgfSBlbHNlIGlmIChzYW1lVm5vZGUob2xkU3RhcnRWbm9kZSwgbmV3U3RhcnRWbm9kZSkpIHtcbiAgICAgICAgcGF0Y2hWbm9kZShvbGRTdGFydFZub2RlLCBuZXdTdGFydFZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIG5ld0NoLCBuZXdTdGFydElkeCk7XG4gICAgICAgIG9sZFN0YXJ0Vm5vZGUgPSBvbGRDaFsrK29sZFN0YXJ0SWR4XTtcbiAgICAgICAgbmV3U3RhcnRWbm9kZSA9IG5ld0NoWysrbmV3U3RhcnRJZHhdO1xuICAgICAgfSBlbHNlIGlmIChzYW1lVm5vZGUob2xkRW5kVm5vZGUsIG5ld0VuZFZub2RlKSkge1xuICAgICAgICBwYXRjaFZub2RlKG9sZEVuZFZub2RlLCBuZXdFbmRWbm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBuZXdDaCwgbmV3RW5kSWR4KTtcbiAgICAgICAgb2xkRW5kVm5vZGUgPSBvbGRDaFstLW9sZEVuZElkeF07XG4gICAgICAgIG5ld0VuZFZub2RlID0gbmV3Q2hbLS1uZXdFbmRJZHhdO1xuICAgICAgfSBlbHNlIGlmIChzYW1lVm5vZGUob2xkU3RhcnRWbm9kZSwgbmV3RW5kVm5vZGUpKSB7IC8vIFZub2RlIG1vdmVkIHJpZ2h0XG4gICAgICAgIHBhdGNoVm5vZGUob2xkU3RhcnRWbm9kZSwgbmV3RW5kVm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgbmV3Q2gsIG5ld0VuZElkeCk7XG4gICAgICAgIGNhbk1vdmUgJiYgbm9kZU9wcy5pbnNlcnRCZWZvcmUocGFyZW50RWxtLCBvbGRTdGFydFZub2RlLmVsbSwgbm9kZU9wcy5uZXh0U2libGluZyhvbGRFbmRWbm9kZS5lbG0pKTtcbiAgICAgICAgb2xkU3RhcnRWbm9kZSA9IG9sZENoWysrb2xkU3RhcnRJZHhdO1xuICAgICAgICBuZXdFbmRWbm9kZSA9IG5ld0NoWy0tbmV3RW5kSWR4XTtcbiAgICAgIH0gZWxzZSBpZiAoc2FtZVZub2RlKG9sZEVuZFZub2RlLCBuZXdTdGFydFZub2RlKSkgeyAvLyBWbm9kZSBtb3ZlZCBsZWZ0XG4gICAgICAgIHBhdGNoVm5vZGUob2xkRW5kVm5vZGUsIG5ld1N0YXJ0Vm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgbmV3Q2gsIG5ld1N0YXJ0SWR4KTtcbiAgICAgICAgY2FuTW92ZSAmJiBub2RlT3BzLmluc2VydEJlZm9yZShwYXJlbnRFbG0sIG9sZEVuZFZub2RlLmVsbSwgb2xkU3RhcnRWbm9kZS5lbG0pO1xuICAgICAgICBvbGRFbmRWbm9kZSA9IG9sZENoWy0tb2xkRW5kSWR4XTtcbiAgICAgICAgbmV3U3RhcnRWbm9kZSA9IG5ld0NoWysrbmV3U3RhcnRJZHhdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGlzVW5kZWYob2xkS2V5VG9JZHgpKSB7IG9sZEtleVRvSWR4ID0gY3JlYXRlS2V5VG9PbGRJZHgob2xkQ2gsIG9sZFN0YXJ0SWR4LCBvbGRFbmRJZHgpOyB9XG4gICAgICAgIGlkeEluT2xkID0gaXNEZWYobmV3U3RhcnRWbm9kZS5rZXkpXG4gICAgICAgICAgPyBvbGRLZXlUb0lkeFtuZXdTdGFydFZub2RlLmtleV1cbiAgICAgICAgICA6IGZpbmRJZHhJbk9sZChuZXdTdGFydFZub2RlLCBvbGRDaCwgb2xkU3RhcnRJZHgsIG9sZEVuZElkeCk7XG4gICAgICAgIGlmIChpc1VuZGVmKGlkeEluT2xkKSkgeyAvLyBOZXcgZWxlbWVudFxuICAgICAgICAgIGNyZWF0ZUVsbShuZXdTdGFydFZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIHBhcmVudEVsbSwgb2xkU3RhcnRWbm9kZS5lbG0sIGZhbHNlLCBuZXdDaCwgbmV3U3RhcnRJZHgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZub2RlVG9Nb3ZlID0gb2xkQ2hbaWR4SW5PbGRdO1xuICAgICAgICAgIGlmIChzYW1lVm5vZGUodm5vZGVUb01vdmUsIG5ld1N0YXJ0Vm5vZGUpKSB7XG4gICAgICAgICAgICBwYXRjaFZub2RlKHZub2RlVG9Nb3ZlLCBuZXdTdGFydFZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIG5ld0NoLCBuZXdTdGFydElkeCk7XG4gICAgICAgICAgICBvbGRDaFtpZHhJbk9sZF0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjYW5Nb3ZlICYmIG5vZGVPcHMuaW5zZXJ0QmVmb3JlKHBhcmVudEVsbSwgdm5vZGVUb01vdmUuZWxtLCBvbGRTdGFydFZub2RlLmVsbSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHNhbWUga2V5IGJ1dCBkaWZmZXJlbnQgZWxlbWVudC4gdHJlYXQgYXMgbmV3IGVsZW1lbnRcbiAgICAgICAgICAgIGNyZWF0ZUVsbShuZXdTdGFydFZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIHBhcmVudEVsbSwgb2xkU3RhcnRWbm9kZS5lbG0sIGZhbHNlLCBuZXdDaCwgbmV3U3RhcnRJZHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXdTdGFydFZub2RlID0gbmV3Q2hbKytuZXdTdGFydElkeF07XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChvbGRTdGFydElkeCA+IG9sZEVuZElkeCkge1xuICAgICAgcmVmRWxtID0gaXNVbmRlZihuZXdDaFtuZXdFbmRJZHggKyAxXSkgPyBudWxsIDogbmV3Q2hbbmV3RW5kSWR4ICsgMV0uZWxtO1xuICAgICAgYWRkVm5vZGVzKHBhcmVudEVsbSwgcmVmRWxtLCBuZXdDaCwgbmV3U3RhcnRJZHgsIG5ld0VuZElkeCwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICB9IGVsc2UgaWYgKG5ld1N0YXJ0SWR4ID4gbmV3RW5kSWR4KSB7XG4gICAgICByZW1vdmVWbm9kZXMob2xkQ2gsIG9sZFN0YXJ0SWR4LCBvbGRFbmRJZHgpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGNoZWNrRHVwbGljYXRlS2V5cyAoY2hpbGRyZW4pIHtcbiAgICB2YXIgc2VlbktleXMgPSB7fTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgdm5vZGUgPSBjaGlsZHJlbltpXTtcbiAgICAgIHZhciBrZXkgPSB2bm9kZS5rZXk7XG4gICAgICBpZiAoaXNEZWYoa2V5KSkge1xuICAgICAgICBpZiAoc2VlbktleXNba2V5XSkge1xuICAgICAgICAgIHdhcm4oXG4gICAgICAgICAgICAoXCJEdXBsaWNhdGUga2V5cyBkZXRlY3RlZDogJ1wiICsga2V5ICsgXCInLiBUaGlzIG1heSBjYXVzZSBhbiB1cGRhdGUgZXJyb3IuXCIpLFxuICAgICAgICAgICAgdm5vZGUuY29udGV4dFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2VlbktleXNba2V5XSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBmaW5kSWR4SW5PbGQgKG5vZGUsIG9sZENoLCBzdGFydCwgZW5kKSB7XG4gICAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHtcbiAgICAgIHZhciBjID0gb2xkQ2hbaV07XG4gICAgICBpZiAoaXNEZWYoYykgJiYgc2FtZVZub2RlKG5vZGUsIGMpKSB7IHJldHVybiBpIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBwYXRjaFZub2RlIChcbiAgICBvbGRWbm9kZSxcbiAgICB2bm9kZSxcbiAgICBpbnNlcnRlZFZub2RlUXVldWUsXG4gICAgb3duZXJBcnJheSxcbiAgICBpbmRleCxcbiAgICByZW1vdmVPbmx5XG4gICkge1xuICAgIGlmIChvbGRWbm9kZSA9PT0gdm5vZGUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChpc0RlZih2bm9kZS5lbG0pICYmIGlzRGVmKG93bmVyQXJyYXkpKSB7XG4gICAgICAvLyBjbG9uZSByZXVzZWQgdm5vZGVcbiAgICAgIHZub2RlID0gb3duZXJBcnJheVtpbmRleF0gPSBjbG9uZVZOb2RlKHZub2RlKTtcbiAgICB9XG5cbiAgICB2YXIgZWxtID0gdm5vZGUuZWxtID0gb2xkVm5vZGUuZWxtO1xuXG4gICAgaWYgKGlzVHJ1ZShvbGRWbm9kZS5pc0FzeW5jUGxhY2Vob2xkZXIpKSB7XG4gICAgICBpZiAoaXNEZWYodm5vZGUuYXN5bmNGYWN0b3J5LnJlc29sdmVkKSkge1xuICAgICAgICBoeWRyYXRlKG9sZFZub2RlLmVsbSwgdm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2bm9kZS5pc0FzeW5jUGxhY2Vob2xkZXIgPSB0cnVlO1xuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gcmV1c2UgZWxlbWVudCBmb3Igc3RhdGljIHRyZWVzLlxuICAgIC8vIG5vdGUgd2Ugb25seSBkbyB0aGlzIGlmIHRoZSB2bm9kZSBpcyBjbG9uZWQgLVxuICAgIC8vIGlmIHRoZSBuZXcgbm9kZSBpcyBub3QgY2xvbmVkIGl0IG1lYW5zIHRoZSByZW5kZXIgZnVuY3Rpb25zIGhhdmUgYmVlblxuICAgIC8vIHJlc2V0IGJ5IHRoZSBob3QtcmVsb2FkLWFwaSBhbmQgd2UgbmVlZCB0byBkbyBhIHByb3BlciByZS1yZW5kZXIuXG4gICAgaWYgKGlzVHJ1ZSh2bm9kZS5pc1N0YXRpYykgJiZcbiAgICAgIGlzVHJ1ZShvbGRWbm9kZS5pc1N0YXRpYykgJiZcbiAgICAgIHZub2RlLmtleSA9PT0gb2xkVm5vZGUua2V5ICYmXG4gICAgICAoaXNUcnVlKHZub2RlLmlzQ2xvbmVkKSB8fCBpc1RydWUodm5vZGUuaXNPbmNlKSlcbiAgICApIHtcbiAgICAgIHZub2RlLmNvbXBvbmVudEluc3RhbmNlID0gb2xkVm5vZGUuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB2YXIgaTtcbiAgICB2YXIgZGF0YSA9IHZub2RlLmRhdGE7XG4gICAgaWYgKGlzRGVmKGRhdGEpICYmIGlzRGVmKGkgPSBkYXRhLmhvb2spICYmIGlzRGVmKGkgPSBpLnByZXBhdGNoKSkge1xuICAgICAgaShvbGRWbm9kZSwgdm5vZGUpO1xuICAgIH1cblxuICAgIHZhciBvbGRDaCA9IG9sZFZub2RlLmNoaWxkcmVuO1xuICAgIHZhciBjaCA9IHZub2RlLmNoaWxkcmVuO1xuICAgIGlmIChpc0RlZihkYXRhKSAmJiBpc1BhdGNoYWJsZSh2bm9kZSkpIHtcbiAgICAgIGZvciAoaSA9IDA7IGkgPCBjYnMudXBkYXRlLmxlbmd0aDsgKytpKSB7IGNicy51cGRhdGVbaV0ob2xkVm5vZGUsIHZub2RlKTsgfVxuICAgICAgaWYgKGlzRGVmKGkgPSBkYXRhLmhvb2spICYmIGlzRGVmKGkgPSBpLnVwZGF0ZSkpIHsgaShvbGRWbm9kZSwgdm5vZGUpOyB9XG4gICAgfVxuICAgIGlmIChpc1VuZGVmKHZub2RlLnRleHQpKSB7XG4gICAgICBpZiAoaXNEZWYob2xkQ2gpICYmIGlzRGVmKGNoKSkge1xuICAgICAgICBpZiAob2xkQ2ggIT09IGNoKSB7IHVwZGF0ZUNoaWxkcmVuKGVsbSwgb2xkQ2gsIGNoLCBpbnNlcnRlZFZub2RlUXVldWUsIHJlbW92ZU9ubHkpOyB9XG4gICAgICB9IGVsc2UgaWYgKGlzRGVmKGNoKSkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIGNoZWNrRHVwbGljYXRlS2V5cyhjaCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRGVmKG9sZFZub2RlLnRleHQpKSB7IG5vZGVPcHMuc2V0VGV4dENvbnRlbnQoZWxtLCAnJyk7IH1cbiAgICAgICAgYWRkVm5vZGVzKGVsbSwgbnVsbCwgY2gsIDAsIGNoLmxlbmd0aCAtIDEsIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgICB9IGVsc2UgaWYgKGlzRGVmKG9sZENoKSkge1xuICAgICAgICByZW1vdmVWbm9kZXMob2xkQ2gsIDAsIG9sZENoLmxlbmd0aCAtIDEpO1xuICAgICAgfSBlbHNlIGlmIChpc0RlZihvbGRWbm9kZS50ZXh0KSkge1xuICAgICAgICBub2RlT3BzLnNldFRleHRDb250ZW50KGVsbSwgJycpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAob2xkVm5vZGUudGV4dCAhPT0gdm5vZGUudGV4dCkge1xuICAgICAgbm9kZU9wcy5zZXRUZXh0Q29udGVudChlbG0sIHZub2RlLnRleHQpO1xuICAgIH1cbiAgICBpZiAoaXNEZWYoZGF0YSkpIHtcbiAgICAgIGlmIChpc0RlZihpID0gZGF0YS5ob29rKSAmJiBpc0RlZihpID0gaS5wb3N0cGF0Y2gpKSB7IGkob2xkVm5vZGUsIHZub2RlKTsgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGludm9rZUluc2VydEhvb2sgKHZub2RlLCBxdWV1ZSwgaW5pdGlhbCkge1xuICAgIC8vIGRlbGF5IGluc2VydCBob29rcyBmb3IgY29tcG9uZW50IHJvb3Qgbm9kZXMsIGludm9rZSB0aGVtIGFmdGVyIHRoZVxuICAgIC8vIGVsZW1lbnQgaXMgcmVhbGx5IGluc2VydGVkXG4gICAgaWYgKGlzVHJ1ZShpbml0aWFsKSAmJiBpc0RlZih2bm9kZS5wYXJlbnQpKSB7XG4gICAgICB2bm9kZS5wYXJlbnQuZGF0YS5wZW5kaW5nSW5zZXJ0ID0gcXVldWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcXVldWUubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgcXVldWVbaV0uZGF0YS5ob29rLmluc2VydChxdWV1ZVtpXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIGh5ZHJhdGlvbkJhaWxlZCA9IGZhbHNlO1xuICAvLyBsaXN0IG9mIG1vZHVsZXMgdGhhdCBjYW4gc2tpcCBjcmVhdGUgaG9vayBkdXJpbmcgaHlkcmF0aW9uIGJlY2F1c2UgdGhleVxuICAvLyBhcmUgYWxyZWFkeSByZW5kZXJlZCBvbiB0aGUgY2xpZW50IG9yIGhhcyBubyBuZWVkIGZvciBpbml0aWFsaXphdGlvblxuICAvLyBOb3RlOiBzdHlsZSBpcyBleGNsdWRlZCBiZWNhdXNlIGl0IHJlbGllcyBvbiBpbml0aWFsIGNsb25lIGZvciBmdXR1cmVcbiAgLy8gZGVlcCB1cGRhdGVzICgjNzA2MykuXG4gIHZhciBpc1JlbmRlcmVkTW9kdWxlID0gbWFrZU1hcCgnYXR0cnMsY2xhc3Msc3RhdGljQ2xhc3Msc3RhdGljU3R5bGUsa2V5Jyk7XG5cbiAgLy8gTm90ZTogdGhpcyBpcyBhIGJyb3dzZXItb25seSBmdW5jdGlvbiBzbyB3ZSBjYW4gYXNzdW1lIGVsbXMgYXJlIERPTSBub2Rlcy5cbiAgZnVuY3Rpb24gaHlkcmF0ZSAoZWxtLCB2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBpblZQcmUpIHtcbiAgICB2YXIgaTtcbiAgICB2YXIgdGFnID0gdm5vZGUudGFnO1xuICAgIHZhciBkYXRhID0gdm5vZGUuZGF0YTtcbiAgICB2YXIgY2hpbGRyZW4gPSB2bm9kZS5jaGlsZHJlbjtcbiAgICBpblZQcmUgPSBpblZQcmUgfHwgKGRhdGEgJiYgZGF0YS5wcmUpO1xuICAgIHZub2RlLmVsbSA9IGVsbTtcblxuICAgIGlmIChpc1RydWUodm5vZGUuaXNDb21tZW50KSAmJiBpc0RlZih2bm9kZS5hc3luY0ZhY3RvcnkpKSB7XG4gICAgICB2bm9kZS5pc0FzeW5jUGxhY2Vob2xkZXIgPSB0cnVlO1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgLy8gYXNzZXJ0IG5vZGUgbWF0Y2hcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKCFhc3NlcnROb2RlTWF0Y2goZWxtLCB2bm9kZSwgaW5WUHJlKSkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGlzRGVmKGRhdGEpKSB7XG4gICAgICBpZiAoaXNEZWYoaSA9IGRhdGEuaG9vaykgJiYgaXNEZWYoaSA9IGkuaW5pdCkpIHsgaSh2bm9kZSwgdHJ1ZSAvKiBoeWRyYXRpbmcgKi8pOyB9XG4gICAgICBpZiAoaXNEZWYoaSA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlKSkge1xuICAgICAgICAvLyBjaGlsZCBjb21wb25lbnQuIGl0IHNob3VsZCBoYXZlIGh5ZHJhdGVkIGl0cyBvd24gdHJlZS5cbiAgICAgICAgaW5pdENvbXBvbmVudCh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGlzRGVmKHRhZykpIHtcbiAgICAgIGlmIChpc0RlZihjaGlsZHJlbikpIHtcbiAgICAgICAgLy8gZW1wdHkgZWxlbWVudCwgYWxsb3cgY2xpZW50IHRvIHBpY2sgdXAgYW5kIHBvcHVsYXRlIGNoaWxkcmVuXG4gICAgICAgIGlmICghZWxtLmhhc0NoaWxkTm9kZXMoKSkge1xuICAgICAgICAgIGNyZWF0ZUNoaWxkcmVuKHZub2RlLCBjaGlsZHJlbiwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyB2LWh0bWwgYW5kIGRvbVByb3BzOiBpbm5lckhUTUxcbiAgICAgICAgICBpZiAoaXNEZWYoaSA9IGRhdGEpICYmIGlzRGVmKGkgPSBpLmRvbVByb3BzKSAmJiBpc0RlZihpID0gaS5pbm5lckhUTUwpKSB7XG4gICAgICAgICAgICBpZiAoaSAhPT0gZWxtLmlubmVySFRNTCkge1xuICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICAgICAgICAhaHlkcmF0aW9uQmFpbGVkXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGh5ZHJhdGlvbkJhaWxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdQYXJlbnQ6ICcsIGVsbSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdzZXJ2ZXIgaW5uZXJIVE1MOiAnLCBpKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ2NsaWVudCBpbm5lckhUTUw6ICcsIGVsbS5pbm5lckhUTUwpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBpdGVyYXRlIGFuZCBjb21wYXJlIGNoaWxkcmVuIGxpc3RzXG4gICAgICAgICAgICB2YXIgY2hpbGRyZW5NYXRjaCA9IHRydWU7XG4gICAgICAgICAgICB2YXIgY2hpbGROb2RlID0gZWxtLmZpcnN0Q2hpbGQ7XG4gICAgICAgICAgICBmb3IgKHZhciBpJDEgPSAwOyBpJDEgPCBjaGlsZHJlbi5sZW5ndGg7IGkkMSsrKSB7XG4gICAgICAgICAgICAgIGlmICghY2hpbGROb2RlIHx8ICFoeWRyYXRlKGNoaWxkTm9kZSwgY2hpbGRyZW5baSQxXSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBpblZQcmUpKSB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW5NYXRjaCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY2hpbGROb2RlID0gY2hpbGROb2RlLm5leHRTaWJsaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gaWYgY2hpbGROb2RlIGlzIG5vdCBudWxsLCBpdCBtZWFucyB0aGUgYWN0dWFsIGNoaWxkTm9kZXMgbGlzdCBpc1xuICAgICAgICAgICAgLy8gbG9uZ2VyIHRoYW4gdGhlIHZpcnR1YWwgY2hpbGRyZW4gbGlzdC5cbiAgICAgICAgICAgIGlmICghY2hpbGRyZW5NYXRjaCB8fCBjaGlsZE5vZGUpIHtcbiAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgICAgICAgICAgICAgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICAgICAgIWh5ZHJhdGlvbkJhaWxlZFxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBoeWRyYXRpb25CYWlsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignUGFyZW50OiAnLCBlbG0pO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignTWlzbWF0Y2hpbmcgY2hpbGROb2RlcyB2cy4gVk5vZGVzOiAnLCBlbG0uY2hpbGROb2RlcywgY2hpbGRyZW4pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGlzRGVmKGRhdGEpKSB7XG4gICAgICAgIHZhciBmdWxsSW52b2tlID0gZmFsc2U7XG4gICAgICAgIGZvciAodmFyIGtleSBpbiBkYXRhKSB7XG4gICAgICAgICAgaWYgKCFpc1JlbmRlcmVkTW9kdWxlKGtleSkpIHtcbiAgICAgICAgICAgIGZ1bGxJbnZva2UgPSB0cnVlO1xuICAgICAgICAgICAgaW52b2tlQ3JlYXRlSG9va3Modm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIWZ1bGxJbnZva2UgJiYgZGF0YVsnY2xhc3MnXSkge1xuICAgICAgICAgIC8vIGVuc3VyZSBjb2xsZWN0aW5nIGRlcHMgZm9yIGRlZXAgY2xhc3MgYmluZGluZ3MgZm9yIGZ1dHVyZSB1cGRhdGVzXG4gICAgICAgICAgdHJhdmVyc2UoZGF0YVsnY2xhc3MnXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGVsbS5kYXRhICE9PSB2bm9kZS50ZXh0KSB7XG4gICAgICBlbG0uZGF0YSA9IHZub2RlLnRleHQ7XG4gICAgfVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBmdW5jdGlvbiBhc3NlcnROb2RlTWF0Y2ggKG5vZGUsIHZub2RlLCBpblZQcmUpIHtcbiAgICBpZiAoaXNEZWYodm5vZGUudGFnKSkge1xuICAgICAgcmV0dXJuIHZub2RlLnRhZy5pbmRleE9mKCd2dWUtY29tcG9uZW50JykgPT09IDAgfHwgKFxuICAgICAgICAhaXNVbmtub3duRWxlbWVudCQkMSh2bm9kZSwgaW5WUHJlKSAmJlxuICAgICAgICB2bm9kZS50YWcudG9Mb3dlckNhc2UoKSA9PT0gKG5vZGUudGFnTmFtZSAmJiBub2RlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSlcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5vZGUubm9kZVR5cGUgPT09ICh2bm9kZS5pc0NvbW1lbnQgPyA4IDogMylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gcGF0Y2ggKG9sZFZub2RlLCB2bm9kZSwgaHlkcmF0aW5nLCByZW1vdmVPbmx5KSB7XG4gICAgaWYgKGlzVW5kZWYodm5vZGUpKSB7XG4gICAgICBpZiAoaXNEZWYob2xkVm5vZGUpKSB7IGludm9rZURlc3Ryb3lIb29rKG9sZFZub2RlKTsgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdmFyIGlzSW5pdGlhbFBhdGNoID0gZmFsc2U7XG4gICAgdmFyIGluc2VydGVkVm5vZGVRdWV1ZSA9IFtdO1xuXG4gICAgaWYgKGlzVW5kZWYob2xkVm5vZGUpKSB7XG4gICAgICAvLyBlbXB0eSBtb3VudCAobGlrZWx5IGFzIGNvbXBvbmVudCksIGNyZWF0ZSBuZXcgcm9vdCBlbGVtZW50XG4gICAgICBpc0luaXRpYWxQYXRjaCA9IHRydWU7XG4gICAgICBjcmVhdGVFbG0odm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBpc1JlYWxFbGVtZW50ID0gaXNEZWYob2xkVm5vZGUubm9kZVR5cGUpO1xuICAgICAgaWYgKCFpc1JlYWxFbGVtZW50ICYmIHNhbWVWbm9kZShvbGRWbm9kZSwgdm5vZGUpKSB7XG4gICAgICAgIC8vIHBhdGNoIGV4aXN0aW5nIHJvb3Qgbm9kZVxuICAgICAgICBwYXRjaFZub2RlKG9sZFZub2RlLCB2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBudWxsLCBudWxsLCByZW1vdmVPbmx5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChpc1JlYWxFbGVtZW50KSB7XG4gICAgICAgICAgLy8gbW91bnRpbmcgdG8gYSByZWFsIGVsZW1lbnRcbiAgICAgICAgICAvLyBjaGVjayBpZiB0aGlzIGlzIHNlcnZlci1yZW5kZXJlZCBjb250ZW50IGFuZCBpZiB3ZSBjYW4gcGVyZm9ybVxuICAgICAgICAgIC8vIGEgc3VjY2Vzc2Z1bCBoeWRyYXRpb24uXG4gICAgICAgICAgaWYgKG9sZFZub2RlLm5vZGVUeXBlID09PSAxICYmIG9sZFZub2RlLmhhc0F0dHJpYnV0ZShTU1JfQVRUUikpIHtcbiAgICAgICAgICAgIG9sZFZub2RlLnJlbW92ZUF0dHJpYnV0ZShTU1JfQVRUUik7XG4gICAgICAgICAgICBoeWRyYXRpbmcgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNUcnVlKGh5ZHJhdGluZykpIHtcbiAgICAgICAgICAgIGlmIChoeWRyYXRlKG9sZFZub2RlLCB2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKSkge1xuICAgICAgICAgICAgICBpbnZva2VJbnNlcnRIb29rKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIHRydWUpO1xuICAgICAgICAgICAgICByZXR1cm4gb2xkVm5vZGVcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgICAgICB3YXJuKFxuICAgICAgICAgICAgICAgICdUaGUgY2xpZW50LXNpZGUgcmVuZGVyZWQgdmlydHVhbCBET00gdHJlZSBpcyBub3QgbWF0Y2hpbmcgJyArXG4gICAgICAgICAgICAgICAgJ3NlcnZlci1yZW5kZXJlZCBjb250ZW50LiBUaGlzIGlzIGxpa2VseSBjYXVzZWQgYnkgaW5jb3JyZWN0ICcgK1xuICAgICAgICAgICAgICAgICdIVE1MIG1hcmt1cCwgZm9yIGV4YW1wbGUgbmVzdGluZyBibG9jay1sZXZlbCBlbGVtZW50cyBpbnNpZGUgJyArXG4gICAgICAgICAgICAgICAgJzxwPiwgb3IgbWlzc2luZyA8dGJvZHk+LiBCYWlsaW5nIGh5ZHJhdGlvbiBhbmQgcGVyZm9ybWluZyAnICtcbiAgICAgICAgICAgICAgICAnZnVsbCBjbGllbnQtc2lkZSByZW5kZXIuJ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBlaXRoZXIgbm90IHNlcnZlci1yZW5kZXJlZCwgb3IgaHlkcmF0aW9uIGZhaWxlZC5cbiAgICAgICAgICAvLyBjcmVhdGUgYW4gZW1wdHkgbm9kZSBhbmQgcmVwbGFjZSBpdFxuICAgICAgICAgIG9sZFZub2RlID0gZW1wdHlOb2RlQXQob2xkVm5vZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVwbGFjaW5nIGV4aXN0aW5nIGVsZW1lbnRcbiAgICAgICAgdmFyIG9sZEVsbSA9IG9sZFZub2RlLmVsbTtcbiAgICAgICAgdmFyIHBhcmVudEVsbSA9IG5vZGVPcHMucGFyZW50Tm9kZShvbGRFbG0pO1xuXG4gICAgICAgIC8vIGNyZWF0ZSBuZXcgbm9kZVxuICAgICAgICBjcmVhdGVFbG0oXG4gICAgICAgICAgdm5vZGUsXG4gICAgICAgICAgaW5zZXJ0ZWRWbm9kZVF1ZXVlLFxuICAgICAgICAgIC8vIGV4dHJlbWVseSByYXJlIGVkZ2UgY2FzZTogZG8gbm90IGluc2VydCBpZiBvbGQgZWxlbWVudCBpcyBpbiBhXG4gICAgICAgICAgLy8gbGVhdmluZyB0cmFuc2l0aW9uLiBPbmx5IGhhcHBlbnMgd2hlbiBjb21iaW5pbmcgdHJhbnNpdGlvbiArXG4gICAgICAgICAgLy8ga2VlcC1hbGl2ZSArIEhPQ3MuICgjNDU5MClcbiAgICAgICAgICBvbGRFbG0uX2xlYXZlQ2IgPyBudWxsIDogcGFyZW50RWxtLFxuICAgICAgICAgIG5vZGVPcHMubmV4dFNpYmxpbmcob2xkRWxtKVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIHVwZGF0ZSBwYXJlbnQgcGxhY2Vob2xkZXIgbm9kZSBlbGVtZW50LCByZWN1cnNpdmVseVxuICAgICAgICBpZiAoaXNEZWYodm5vZGUucGFyZW50KSkge1xuICAgICAgICAgIHZhciBhbmNlc3RvciA9IHZub2RlLnBhcmVudDtcbiAgICAgICAgICB2YXIgcGF0Y2hhYmxlID0gaXNQYXRjaGFibGUodm5vZGUpO1xuICAgICAgICAgIHdoaWxlIChhbmNlc3Rvcikge1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYnMuZGVzdHJveS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICBjYnMuZGVzdHJveVtpXShhbmNlc3Rvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhbmNlc3Rvci5lbG0gPSB2bm9kZS5lbG07XG4gICAgICAgICAgICBpZiAocGF0Y2hhYmxlKSB7XG4gICAgICAgICAgICAgIGZvciAodmFyIGkkMSA9IDA7IGkkMSA8IGNicy5jcmVhdGUubGVuZ3RoOyArK2kkMSkge1xuICAgICAgICAgICAgICAgIGNicy5jcmVhdGVbaSQxXShlbXB0eU5vZGUsIGFuY2VzdG9yKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvLyAjNjUxM1xuICAgICAgICAgICAgICAvLyBpbnZva2UgaW5zZXJ0IGhvb2tzIHRoYXQgbWF5IGhhdmUgYmVlbiBtZXJnZWQgYnkgY3JlYXRlIGhvb2tzLlxuICAgICAgICAgICAgICAvLyBlLmcuIGZvciBkaXJlY3RpdmVzIHRoYXQgdXNlcyB0aGUgXCJpbnNlcnRlZFwiIGhvb2suXG4gICAgICAgICAgICAgIHZhciBpbnNlcnQgPSBhbmNlc3Rvci5kYXRhLmhvb2suaW5zZXJ0O1xuICAgICAgICAgICAgICBpZiAoaW5zZXJ0Lm1lcmdlZCkge1xuICAgICAgICAgICAgICAgIC8vIHN0YXJ0IGF0IGluZGV4IDEgdG8gYXZvaWQgcmUtaW52b2tpbmcgY29tcG9uZW50IG1vdW50ZWQgaG9va1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkkMiA9IDE7IGkkMiA8IGluc2VydC5mbnMubGVuZ3RoOyBpJDIrKykge1xuICAgICAgICAgICAgICAgICAgaW5zZXJ0LmZuc1tpJDJdKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZWdpc3RlclJlZihhbmNlc3Rvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhbmNlc3RvciA9IGFuY2VzdG9yLnBhcmVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBkZXN0cm95IG9sZCBub2RlXG4gICAgICAgIGlmIChpc0RlZihwYXJlbnRFbG0pKSB7XG4gICAgICAgICAgcmVtb3ZlVm5vZGVzKFtvbGRWbm9kZV0sIDAsIDApO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRGVmKG9sZFZub2RlLnRhZykpIHtcbiAgICAgICAgICBpbnZva2VEZXN0cm95SG9vayhvbGRWbm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbnZva2VJbnNlcnRIb29rKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIGlzSW5pdGlhbFBhdGNoKTtcbiAgICByZXR1cm4gdm5vZGUuZWxtXG4gIH1cbn1cblxuLyogICovXG5cbnZhciBkaXJlY3RpdmVzID0ge1xuICBjcmVhdGU6IHVwZGF0ZURpcmVjdGl2ZXMsXG4gIHVwZGF0ZTogdXBkYXRlRGlyZWN0aXZlcyxcbiAgZGVzdHJveTogZnVuY3Rpb24gdW5iaW5kRGlyZWN0aXZlcyAodm5vZGUpIHtcbiAgICB1cGRhdGVEaXJlY3RpdmVzKHZub2RlLCBlbXB0eU5vZGUpO1xuICB9XG59O1xuXG5mdW5jdGlvbiB1cGRhdGVEaXJlY3RpdmVzIChvbGRWbm9kZSwgdm5vZGUpIHtcbiAgaWYgKG9sZFZub2RlLmRhdGEuZGlyZWN0aXZlcyB8fCB2bm9kZS5kYXRhLmRpcmVjdGl2ZXMpIHtcbiAgICBfdXBkYXRlKG9sZFZub2RlLCB2bm9kZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX3VwZGF0ZSAob2xkVm5vZGUsIHZub2RlKSB7XG4gIHZhciBpc0NyZWF0ZSA9IG9sZFZub2RlID09PSBlbXB0eU5vZGU7XG4gIHZhciBpc0Rlc3Ryb3kgPSB2bm9kZSA9PT0gZW1wdHlOb2RlO1xuICB2YXIgb2xkRGlycyA9IG5vcm1hbGl6ZURpcmVjdGl2ZXMkMShvbGRWbm9kZS5kYXRhLmRpcmVjdGl2ZXMsIG9sZFZub2RlLmNvbnRleHQpO1xuICB2YXIgbmV3RGlycyA9IG5vcm1hbGl6ZURpcmVjdGl2ZXMkMSh2bm9kZS5kYXRhLmRpcmVjdGl2ZXMsIHZub2RlLmNvbnRleHQpO1xuXG4gIHZhciBkaXJzV2l0aEluc2VydCA9IFtdO1xuICB2YXIgZGlyc1dpdGhQb3N0cGF0Y2ggPSBbXTtcblxuICB2YXIga2V5LCBvbGREaXIsIGRpcjtcbiAgZm9yIChrZXkgaW4gbmV3RGlycykge1xuICAgIG9sZERpciA9IG9sZERpcnNba2V5XTtcbiAgICBkaXIgPSBuZXdEaXJzW2tleV07XG4gICAgaWYgKCFvbGREaXIpIHtcbiAgICAgIC8vIG5ldyBkaXJlY3RpdmUsIGJpbmRcbiAgICAgIGNhbGxIb29rJDEoZGlyLCAnYmluZCcsIHZub2RlLCBvbGRWbm9kZSk7XG4gICAgICBpZiAoZGlyLmRlZiAmJiBkaXIuZGVmLmluc2VydGVkKSB7XG4gICAgICAgIGRpcnNXaXRoSW5zZXJ0LnB1c2goZGlyKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZXhpc3RpbmcgZGlyZWN0aXZlLCB1cGRhdGVcbiAgICAgIGRpci5vbGRWYWx1ZSA9IG9sZERpci52YWx1ZTtcbiAgICAgIGRpci5vbGRBcmcgPSBvbGREaXIuYXJnO1xuICAgICAgY2FsbEhvb2skMShkaXIsICd1cGRhdGUnLCB2bm9kZSwgb2xkVm5vZGUpO1xuICAgICAgaWYgKGRpci5kZWYgJiYgZGlyLmRlZi5jb21wb25lbnRVcGRhdGVkKSB7XG4gICAgICAgIGRpcnNXaXRoUG9zdHBhdGNoLnB1c2goZGlyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoZGlyc1dpdGhJbnNlcnQubGVuZ3RoKSB7XG4gICAgdmFyIGNhbGxJbnNlcnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpcnNXaXRoSW5zZXJ0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNhbGxIb29rJDEoZGlyc1dpdGhJbnNlcnRbaV0sICdpbnNlcnRlZCcsIHZub2RlLCBvbGRWbm9kZSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBpZiAoaXNDcmVhdGUpIHtcbiAgICAgIG1lcmdlVk5vZGVIb29rKHZub2RlLCAnaW5zZXJ0JywgY2FsbEluc2VydCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhbGxJbnNlcnQoKTtcbiAgICB9XG4gIH1cblxuICBpZiAoZGlyc1dpdGhQb3N0cGF0Y2gubGVuZ3RoKSB7XG4gICAgbWVyZ2VWTm9kZUhvb2sodm5vZGUsICdwb3N0cGF0Y2gnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRpcnNXaXRoUG9zdHBhdGNoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNhbGxIb29rJDEoZGlyc1dpdGhQb3N0cGF0Y2hbaV0sICdjb21wb25lbnRVcGRhdGVkJywgdm5vZGUsIG9sZFZub2RlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGlmICghaXNDcmVhdGUpIHtcbiAgICBmb3IgKGtleSBpbiBvbGREaXJzKSB7XG4gICAgICBpZiAoIW5ld0RpcnNba2V5XSkge1xuICAgICAgICAvLyBubyBsb25nZXIgcHJlc2VudCwgdW5iaW5kXG4gICAgICAgIGNhbGxIb29rJDEob2xkRGlyc1trZXldLCAndW5iaW5kJywgb2xkVm5vZGUsIG9sZFZub2RlLCBpc0Rlc3Ryb3kpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG52YXIgZW1wdHlNb2RpZmllcnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuXG5mdW5jdGlvbiBub3JtYWxpemVEaXJlY3RpdmVzJDEgKFxuICBkaXJzLFxuICB2bVxuKSB7XG4gIHZhciByZXMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBpZiAoIWRpcnMpIHtcbiAgICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgICByZXR1cm4gcmVzXG4gIH1cbiAgdmFyIGksIGRpcjtcbiAgZm9yIChpID0gMDsgaSA8IGRpcnMubGVuZ3RoOyBpKyspIHtcbiAgICBkaXIgPSBkaXJzW2ldO1xuICAgIGlmICghZGlyLm1vZGlmaWVycykge1xuICAgICAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gICAgICBkaXIubW9kaWZpZXJzID0gZW1wdHlNb2RpZmllcnM7XG4gICAgfVxuICAgIHJlc1tnZXRSYXdEaXJOYW1lKGRpcildID0gZGlyO1xuICAgIGRpci5kZWYgPSByZXNvbHZlQXNzZXQodm0uJG9wdGlvbnMsICdkaXJlY3RpdmVzJywgZGlyLm5hbWUsIHRydWUpO1xuICB9XG4gIC8vICRmbG93LWRpc2FibGUtbGluZVxuICByZXR1cm4gcmVzXG59XG5cbmZ1bmN0aW9uIGdldFJhd0Rpck5hbWUgKGRpcikge1xuICByZXR1cm4gZGlyLnJhd05hbWUgfHwgKChkaXIubmFtZSkgKyBcIi5cIiArIChPYmplY3Qua2V5cyhkaXIubW9kaWZpZXJzIHx8IHt9KS5qb2luKCcuJykpKVxufVxuXG5mdW5jdGlvbiBjYWxsSG9vayQxIChkaXIsIGhvb2ssIHZub2RlLCBvbGRWbm9kZSwgaXNEZXN0cm95KSB7XG4gIHZhciBmbiA9IGRpci5kZWYgJiYgZGlyLmRlZltob29rXTtcbiAgaWYgKGZuKSB7XG4gICAgdHJ5IHtcbiAgICAgIGZuKHZub2RlLmVsbSwgZGlyLCB2bm9kZSwgb2xkVm5vZGUsIGlzRGVzdHJveSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaGFuZGxlRXJyb3IoZSwgdm5vZGUuY29udGV4dCwgKFwiZGlyZWN0aXZlIFwiICsgKGRpci5uYW1lKSArIFwiIFwiICsgaG9vayArIFwiIGhvb2tcIikpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgYmFzZU1vZHVsZXMgPSBbXG4gIHJlZixcbiAgZGlyZWN0aXZlc1xuXTtcblxuLyogICovXG5cbmZ1bmN0aW9uIHVwZGF0ZUF0dHJzIChvbGRWbm9kZSwgdm5vZGUpIHtcbiAgdmFyIG9wdHMgPSB2bm9kZS5jb21wb25lbnRPcHRpb25zO1xuICBpZiAoaXNEZWYob3B0cykgJiYgb3B0cy5DdG9yLm9wdGlvbnMuaW5oZXJpdEF0dHJzID09PSBmYWxzZSkge1xuICAgIHJldHVyblxuICB9XG4gIGlmIChpc1VuZGVmKG9sZFZub2RlLmRhdGEuYXR0cnMpICYmIGlzVW5kZWYodm5vZGUuZGF0YS5hdHRycykpIHtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIga2V5LCBjdXIsIG9sZDtcbiAgdmFyIGVsbSA9IHZub2RlLmVsbTtcbiAgdmFyIG9sZEF0dHJzID0gb2xkVm5vZGUuZGF0YS5hdHRycyB8fCB7fTtcbiAgdmFyIGF0dHJzID0gdm5vZGUuZGF0YS5hdHRycyB8fCB7fTtcbiAgLy8gY2xvbmUgb2JzZXJ2ZWQgb2JqZWN0cywgYXMgdGhlIHVzZXIgcHJvYmFibHkgd2FudHMgdG8gbXV0YXRlIGl0XG4gIGlmIChpc0RlZihhdHRycy5fX29iX18pKSB7XG4gICAgYXR0cnMgPSB2bm9kZS5kYXRhLmF0dHJzID0gZXh0ZW5kKHt9LCBhdHRycyk7XG4gIH1cblxuICBmb3IgKGtleSBpbiBhdHRycykge1xuICAgIGN1ciA9IGF0dHJzW2tleV07XG4gICAgb2xkID0gb2xkQXR0cnNba2V5XTtcbiAgICBpZiAob2xkICE9PSBjdXIpIHtcbiAgICAgIHNldEF0dHIoZWxtLCBrZXksIGN1ciwgdm5vZGUuZGF0YS5wcmUpO1xuICAgIH1cbiAgfVxuICAvLyAjNDM5MTogaW4gSUU5LCBzZXR0aW5nIHR5cGUgY2FuIHJlc2V0IHZhbHVlIGZvciBpbnB1dFt0eXBlPXJhZGlvXVxuICAvLyAjNjY2NjogSUUvRWRnZSBmb3JjZXMgcHJvZ3Jlc3MgdmFsdWUgZG93biB0byAxIGJlZm9yZSBzZXR0aW5nIGEgbWF4XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoKGlzSUUgfHwgaXNFZGdlKSAmJiBhdHRycy52YWx1ZSAhPT0gb2xkQXR0cnMudmFsdWUpIHtcbiAgICBzZXRBdHRyKGVsbSwgJ3ZhbHVlJywgYXR0cnMudmFsdWUpO1xuICB9XG4gIGZvciAoa2V5IGluIG9sZEF0dHJzKSB7XG4gICAgaWYgKGlzVW5kZWYoYXR0cnNba2V5XSkpIHtcbiAgICAgIGlmIChpc1hsaW5rKGtleSkpIHtcbiAgICAgICAgZWxtLnJlbW92ZUF0dHJpYnV0ZU5TKHhsaW5rTlMsIGdldFhsaW5rUHJvcChrZXkpKTtcbiAgICAgIH0gZWxzZSBpZiAoIWlzRW51bWVyYXRlZEF0dHIoa2V5KSkge1xuICAgICAgICBlbG0ucmVtb3ZlQXR0cmlidXRlKGtleSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHNldEF0dHIgKGVsLCBrZXksIHZhbHVlLCBpc0luUHJlKSB7XG4gIGlmIChpc0luUHJlIHx8IGVsLnRhZ05hbWUuaW5kZXhPZignLScpID4gLTEpIHtcbiAgICBiYXNlU2V0QXR0cihlbCwga2V5LCB2YWx1ZSk7XG4gIH0gZWxzZSBpZiAoaXNCb29sZWFuQXR0cihrZXkpKSB7XG4gICAgLy8gc2V0IGF0dHJpYnV0ZSBmb3IgYmxhbmsgdmFsdWVcbiAgICAvLyBlLmcuIDxvcHRpb24gZGlzYWJsZWQ+U2VsZWN0IG9uZTwvb3B0aW9uPlxuICAgIGlmIChpc0ZhbHN5QXR0clZhbHVlKHZhbHVlKSkge1xuICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKGtleSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRlY2huaWNhbGx5IGFsbG93ZnVsbHNjcmVlbiBpcyBhIGJvb2xlYW4gYXR0cmlidXRlIGZvciA8aWZyYW1lPixcbiAgICAgIC8vIGJ1dCBGbGFzaCBleHBlY3RzIGEgdmFsdWUgb2YgXCJ0cnVlXCIgd2hlbiB1c2VkIG9uIDxlbWJlZD4gdGFnXG4gICAgICB2YWx1ZSA9IGtleSA9PT0gJ2FsbG93ZnVsbHNjcmVlbicgJiYgZWwudGFnTmFtZSA9PT0gJ0VNQkVEJ1xuICAgICAgICA/ICd0cnVlJ1xuICAgICAgICA6IGtleTtcbiAgICAgIGVsLnNldEF0dHJpYnV0ZShrZXksIHZhbHVlKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNFbnVtZXJhdGVkQXR0cihrZXkpKSB7XG4gICAgZWwuc2V0QXR0cmlidXRlKGtleSwgY29udmVydEVudW1lcmF0ZWRWYWx1ZShrZXksIHZhbHVlKSk7XG4gIH0gZWxzZSBpZiAoaXNYbGluayhrZXkpKSB7XG4gICAgaWYgKGlzRmFsc3lBdHRyVmFsdWUodmFsdWUpKSB7XG4gICAgICBlbC5yZW1vdmVBdHRyaWJ1dGVOUyh4bGlua05TLCBnZXRYbGlua1Byb3Aoa2V5KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLnNldEF0dHJpYnV0ZU5TKHhsaW5rTlMsIGtleSwgdmFsdWUpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBiYXNlU2V0QXR0cihlbCwga2V5LCB2YWx1ZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gYmFzZVNldEF0dHIgKGVsLCBrZXksIHZhbHVlKSB7XG4gIGlmIChpc0ZhbHN5QXR0clZhbHVlKHZhbHVlKSkge1xuICAgIGVsLnJlbW92ZUF0dHJpYnV0ZShrZXkpO1xuICB9IGVsc2Uge1xuICAgIC8vICM3MTM4OiBJRTEwICYgMTEgZmlyZXMgaW5wdXQgZXZlbnQgd2hlbiBzZXR0aW5nIHBsYWNlaG9sZGVyIG9uXG4gICAgLy8gPHRleHRhcmVhPi4uLiBibG9jayB0aGUgZmlyc3QgaW5wdXQgZXZlbnQgYW5kIHJlbW92ZSB0aGUgYmxvY2tlclxuICAgIC8vIGltbWVkaWF0ZWx5LlxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChcbiAgICAgIGlzSUUgJiYgIWlzSUU5ICYmXG4gICAgICBlbC50YWdOYW1lID09PSAnVEVYVEFSRUEnICYmXG4gICAgICBrZXkgPT09ICdwbGFjZWhvbGRlcicgJiYgdmFsdWUgIT09ICcnICYmICFlbC5fX2llcGhcbiAgICApIHtcbiAgICAgIHZhciBibG9ja2VyID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBibG9ja2VyKTtcbiAgICAgIH07XG4gICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGJsb2NrZXIpO1xuICAgICAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gICAgICBlbC5fX2llcGggPSB0cnVlOyAvKiBJRSBwbGFjZWhvbGRlciBwYXRjaGVkICovXG4gICAgfVxuICAgIGVsLnNldEF0dHJpYnV0ZShrZXksIHZhbHVlKTtcbiAgfVxufVxuXG52YXIgYXR0cnMgPSB7XG4gIGNyZWF0ZTogdXBkYXRlQXR0cnMsXG4gIHVwZGF0ZTogdXBkYXRlQXR0cnNcbn07XG5cbi8qICAqL1xuXG5mdW5jdGlvbiB1cGRhdGVDbGFzcyAob2xkVm5vZGUsIHZub2RlKSB7XG4gIHZhciBlbCA9IHZub2RlLmVsbTtcbiAgdmFyIGRhdGEgPSB2bm9kZS5kYXRhO1xuICB2YXIgb2xkRGF0YSA9IG9sZFZub2RlLmRhdGE7XG4gIGlmIChcbiAgICBpc1VuZGVmKGRhdGEuc3RhdGljQ2xhc3MpICYmXG4gICAgaXNVbmRlZihkYXRhLmNsYXNzKSAmJiAoXG4gICAgICBpc1VuZGVmKG9sZERhdGEpIHx8IChcbiAgICAgICAgaXNVbmRlZihvbGREYXRhLnN0YXRpY0NsYXNzKSAmJlxuICAgICAgICBpc1VuZGVmKG9sZERhdGEuY2xhc3MpXG4gICAgICApXG4gICAgKVxuICApIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHZhciBjbHMgPSBnZW5DbGFzc0ZvclZub2RlKHZub2RlKTtcblxuICAvLyBoYW5kbGUgdHJhbnNpdGlvbiBjbGFzc2VzXG4gIHZhciB0cmFuc2l0aW9uQ2xhc3MgPSBlbC5fdHJhbnNpdGlvbkNsYXNzZXM7XG4gIGlmIChpc0RlZih0cmFuc2l0aW9uQ2xhc3MpKSB7XG4gICAgY2xzID0gY29uY2F0KGNscywgc3RyaW5naWZ5Q2xhc3ModHJhbnNpdGlvbkNsYXNzKSk7XG4gIH1cblxuICAvLyBzZXQgdGhlIGNsYXNzXG4gIGlmIChjbHMgIT09IGVsLl9wcmV2Q2xhc3MpIHtcbiAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgY2xzKTtcbiAgICBlbC5fcHJldkNsYXNzID0gY2xzO1xuICB9XG59XG5cbnZhciBrbGFzcyA9IHtcbiAgY3JlYXRlOiB1cGRhdGVDbGFzcyxcbiAgdXBkYXRlOiB1cGRhdGVDbGFzc1xufTtcblxuLyogICovXG5cbi8qICAqL1xuXG4vKiAgKi9cblxuLyogICovXG5cbi8vIGluIHNvbWUgY2FzZXMsIHRoZSBldmVudCB1c2VkIGhhcyB0byBiZSBkZXRlcm1pbmVkIGF0IHJ1bnRpbWVcbi8vIHNvIHdlIHVzZWQgc29tZSByZXNlcnZlZCB0b2tlbnMgZHVyaW5nIGNvbXBpbGUuXG52YXIgUkFOR0VfVE9LRU4gPSAnX19yJztcbnZhciBDSEVDS0JPWF9SQURJT19UT0tFTiA9ICdfX2MnO1xuXG4vKiAgKi9cblxuLy8gbm9ybWFsaXplIHYtbW9kZWwgZXZlbnQgdG9rZW5zIHRoYXQgY2FuIG9ubHkgYmUgZGV0ZXJtaW5lZCBhdCBydW50aW1lLlxuLy8gaXQncyBpbXBvcnRhbnQgdG8gcGxhY2UgdGhlIGV2ZW50IGFzIHRoZSBmaXJzdCBpbiB0aGUgYXJyYXkgYmVjYXVzZVxuLy8gdGhlIHdob2xlIHBvaW50IGlzIGVuc3VyaW5nIHRoZSB2LW1vZGVsIGNhbGxiYWNrIGdldHMgY2FsbGVkIGJlZm9yZVxuLy8gdXNlci1hdHRhY2hlZCBoYW5kbGVycy5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUV2ZW50cyAob24pIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChpc0RlZihvbltSQU5HRV9UT0tFTl0pKSB7XG4gICAgLy8gSUUgaW5wdXRbdHlwZT1yYW5nZV0gb25seSBzdXBwb3J0cyBgY2hhbmdlYCBldmVudFxuICAgIHZhciBldmVudCA9IGlzSUUgPyAnY2hhbmdlJyA6ICdpbnB1dCc7XG4gICAgb25bZXZlbnRdID0gW10uY29uY2F0KG9uW1JBTkdFX1RPS0VOXSwgb25bZXZlbnRdIHx8IFtdKTtcbiAgICBkZWxldGUgb25bUkFOR0VfVE9LRU5dO1xuICB9XG4gIC8vIFRoaXMgd2FzIG9yaWdpbmFsbHkgaW50ZW5kZWQgdG8gZml4ICM0NTIxIGJ1dCBubyBsb25nZXIgbmVjZXNzYXJ5XG4gIC8vIGFmdGVyIDIuNS4gS2VlcGluZyBpdCBmb3IgYmFja3dhcmRzIGNvbXBhdCB3aXRoIGdlbmVyYXRlZCBjb2RlIGZyb20gPCAyLjRcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChpc0RlZihvbltDSEVDS0JPWF9SQURJT19UT0tFTl0pKSB7XG4gICAgb24uY2hhbmdlID0gW10uY29uY2F0KG9uW0NIRUNLQk9YX1JBRElPX1RPS0VOXSwgb24uY2hhbmdlIHx8IFtdKTtcbiAgICBkZWxldGUgb25bQ0hFQ0tCT1hfUkFESU9fVE9LRU5dO1xuICB9XG59XG5cbnZhciB0YXJnZXQkMTtcblxuZnVuY3Rpb24gY3JlYXRlT25jZUhhbmRsZXIkMSAoZXZlbnQsIGhhbmRsZXIsIGNhcHR1cmUpIHtcbiAgdmFyIF90YXJnZXQgPSB0YXJnZXQkMTsgLy8gc2F2ZSBjdXJyZW50IHRhcmdldCBlbGVtZW50IGluIGNsb3N1cmVcbiAgcmV0dXJuIGZ1bmN0aW9uIG9uY2VIYW5kbGVyICgpIHtcbiAgICB2YXIgcmVzID0gaGFuZGxlci5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgIGlmIChyZXMgIT09IG51bGwpIHtcbiAgICAgIHJlbW92ZSQyKGV2ZW50LCBvbmNlSGFuZGxlciwgY2FwdHVyZSwgX3RhcmdldCk7XG4gICAgfVxuICB9XG59XG5cbi8vICM5NDQ2OiBGaXJlZm94IDw9IDUzIChpbiBwYXJ0aWN1bGFyLCBFU1IgNTIpIGhhcyBpbmNvcnJlY3QgRXZlbnQudGltZVN0YW1wXG4vLyBpbXBsZW1lbnRhdGlvbiBhbmQgZG9lcyBub3QgZmlyZSBtaWNyb3Rhc2tzIGluIGJldHdlZW4gZXZlbnQgcHJvcGFnYXRpb24sIHNvXG4vLyBzYWZlIHRvIGV4Y2x1ZGUuXG52YXIgdXNlTWljcm90YXNrRml4ID0gaXNVc2luZ01pY3JvVGFzayAmJiAhKGlzRkYgJiYgTnVtYmVyKGlzRkZbMV0pIDw9IDUzKTtcblxuZnVuY3Rpb24gYWRkJDEgKFxuICBuYW1lLFxuICBoYW5kbGVyLFxuICBjYXB0dXJlLFxuICBwYXNzaXZlXG4pIHtcbiAgLy8gYXN5bmMgZWRnZSBjYXNlICM2NTY2OiBpbm5lciBjbGljayBldmVudCB0cmlnZ2VycyBwYXRjaCwgZXZlbnQgaGFuZGxlclxuICAvLyBhdHRhY2hlZCB0byBvdXRlciBlbGVtZW50IGR1cmluZyBwYXRjaCwgYW5kIHRyaWdnZXJlZCBhZ2Fpbi4gVGhpc1xuICAvLyBoYXBwZW5zIGJlY2F1c2UgYnJvd3NlcnMgZmlyZSBtaWNyb3Rhc2sgdGlja3MgYmV0d2VlbiBldmVudCBwcm9wYWdhdGlvbi5cbiAgLy8gdGhlIHNvbHV0aW9uIGlzIHNpbXBsZTogd2Ugc2F2ZSB0aGUgdGltZXN0YW1wIHdoZW4gYSBoYW5kbGVyIGlzIGF0dGFjaGVkLFxuICAvLyBhbmQgdGhlIGhhbmRsZXIgd291bGQgb25seSBmaXJlIGlmIHRoZSBldmVudCBwYXNzZWQgdG8gaXQgd2FzIGZpcmVkXG4gIC8vIEFGVEVSIGl0IHdhcyBhdHRhY2hlZC5cbiAgaWYgKHVzZU1pY3JvdGFza0ZpeCkge1xuICAgIHZhciBhdHRhY2hlZFRpbWVzdGFtcCA9IGN1cnJlbnRGbHVzaFRpbWVzdGFtcDtcbiAgICB2YXIgb3JpZ2luYWwgPSBoYW5kbGVyO1xuICAgIGhhbmRsZXIgPSBvcmlnaW5hbC5fd3JhcHBlciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICBpZiAoXG4gICAgICAgIC8vIG5vIGJ1YmJsaW5nLCBzaG91bGQgYWx3YXlzIGZpcmUuXG4gICAgICAgIC8vIHRoaXMgaXMganVzdCBhIHNhZmV0eSBuZXQgaW4gY2FzZSBldmVudC50aW1lU3RhbXAgaXMgdW5yZWxpYWJsZSBpblxuICAgICAgICAvLyBjZXJ0YWluIHdlaXJkIGVudmlyb25tZW50cy4uLlxuICAgICAgICBlLnRhcmdldCA9PT0gZS5jdXJyZW50VGFyZ2V0IHx8XG4gICAgICAgIC8vIGV2ZW50IGlzIGZpcmVkIGFmdGVyIGhhbmRsZXIgYXR0YWNobWVudFxuICAgICAgICBlLnRpbWVTdGFtcCA+PSBhdHRhY2hlZFRpbWVzdGFtcCB8fFxuICAgICAgICAvLyBiYWlsIGZvciBlbnZpcm9ubWVudHMgdGhhdCBoYXZlIGJ1Z2d5IGV2ZW50LnRpbWVTdGFtcCBpbXBsZW1lbnRhdGlvbnNcbiAgICAgICAgLy8gIzk0NjIgaU9TIDkgYnVnOiBldmVudC50aW1lU3RhbXAgaXMgMCBhZnRlciBoaXN0b3J5LnB1c2hTdGF0ZVxuICAgICAgICAvLyAjOTY4MSBRdFdlYkVuZ2luZSBldmVudC50aW1lU3RhbXAgaXMgbmVnYXRpdmUgdmFsdWVcbiAgICAgICAgZS50aW1lU3RhbXAgPD0gMCB8fFxuICAgICAgICAvLyAjOTQ0OCBiYWlsIGlmIGV2ZW50IGlzIGZpcmVkIGluIGFub3RoZXIgZG9jdW1lbnQgaW4gYSBtdWx0aS1wYWdlXG4gICAgICAgIC8vIGVsZWN0cm9uL253LmpzIGFwcCwgc2luY2UgZXZlbnQudGltZVN0YW1wIHdpbGwgYmUgdXNpbmcgYSBkaWZmZXJlbnRcbiAgICAgICAgLy8gc3RhcnRpbmcgcmVmZXJlbmNlXG4gICAgICAgIGUudGFyZ2V0Lm93bmVyRG9jdW1lbnQgIT09IGRvY3VtZW50XG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsLmFwcGx5KHRoaXMsIGFyZ3VtZW50cylcbiAgICAgIH1cbiAgICB9O1xuICB9XG4gIHRhcmdldCQxLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgbmFtZSxcbiAgICBoYW5kbGVyLFxuICAgIHN1cHBvcnRzUGFzc2l2ZVxuICAgICAgPyB7IGNhcHR1cmU6IGNhcHR1cmUsIHBhc3NpdmU6IHBhc3NpdmUgfVxuICAgICAgOiBjYXB0dXJlXG4gICk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZSQyIChcbiAgbmFtZSxcbiAgaGFuZGxlcixcbiAgY2FwdHVyZSxcbiAgX3RhcmdldFxuKSB7XG4gIChfdGFyZ2V0IHx8IHRhcmdldCQxKS5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgIG5hbWUsXG4gICAgaGFuZGxlci5fd3JhcHBlciB8fCBoYW5kbGVyLFxuICAgIGNhcHR1cmVcbiAgKTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlRE9NTGlzdGVuZXJzIChvbGRWbm9kZSwgdm5vZGUpIHtcbiAgaWYgKGlzVW5kZWYob2xkVm5vZGUuZGF0YS5vbikgJiYgaXNVbmRlZih2bm9kZS5kYXRhLm9uKSkge1xuICAgIHJldHVyblxuICB9XG4gIHZhciBvbiA9IHZub2RlLmRhdGEub24gfHwge307XG4gIHZhciBvbGRPbiA9IG9sZFZub2RlLmRhdGEub24gfHwge307XG4gIHRhcmdldCQxID0gdm5vZGUuZWxtO1xuICBub3JtYWxpemVFdmVudHMob24pO1xuICB1cGRhdGVMaXN0ZW5lcnMob24sIG9sZE9uLCBhZGQkMSwgcmVtb3ZlJDIsIGNyZWF0ZU9uY2VIYW5kbGVyJDEsIHZub2RlLmNvbnRleHQpO1xuICB0YXJnZXQkMSA9IHVuZGVmaW5lZDtcbn1cblxudmFyIGV2ZW50cyA9IHtcbiAgY3JlYXRlOiB1cGRhdGVET01MaXN0ZW5lcnMsXG4gIHVwZGF0ZTogdXBkYXRlRE9NTGlzdGVuZXJzXG59O1xuXG4vKiAgKi9cblxudmFyIHN2Z0NvbnRhaW5lcjtcblxuZnVuY3Rpb24gdXBkYXRlRE9NUHJvcHMgKG9sZFZub2RlLCB2bm9kZSkge1xuICBpZiAoaXNVbmRlZihvbGRWbm9kZS5kYXRhLmRvbVByb3BzKSAmJiBpc1VuZGVmKHZub2RlLmRhdGEuZG9tUHJvcHMpKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIGtleSwgY3VyO1xuICB2YXIgZWxtID0gdm5vZGUuZWxtO1xuICB2YXIgb2xkUHJvcHMgPSBvbGRWbm9kZS5kYXRhLmRvbVByb3BzIHx8IHt9O1xuICB2YXIgcHJvcHMgPSB2bm9kZS5kYXRhLmRvbVByb3BzIHx8IHt9O1xuICAvLyBjbG9uZSBvYnNlcnZlZCBvYmplY3RzLCBhcyB0aGUgdXNlciBwcm9iYWJseSB3YW50cyB0byBtdXRhdGUgaXRcbiAgaWYgKGlzRGVmKHByb3BzLl9fb2JfXykpIHtcbiAgICBwcm9wcyA9IHZub2RlLmRhdGEuZG9tUHJvcHMgPSBleHRlbmQoe30sIHByb3BzKTtcbiAgfVxuXG4gIGZvciAoa2V5IGluIG9sZFByb3BzKSB7XG4gICAgaWYgKCEoa2V5IGluIHByb3BzKSkge1xuICAgICAgZWxtW2tleV0gPSAnJztcbiAgICB9XG4gIH1cblxuICBmb3IgKGtleSBpbiBwcm9wcykge1xuICAgIGN1ciA9IHByb3BzW2tleV07XG4gICAgLy8gaWdub3JlIGNoaWxkcmVuIGlmIHRoZSBub2RlIGhhcyB0ZXh0Q29udGVudCBvciBpbm5lckhUTUwsXG4gICAgLy8gYXMgdGhlc2Ugd2lsbCB0aHJvdyBhd2F5IGV4aXN0aW5nIERPTSBub2RlcyBhbmQgY2F1c2UgcmVtb3ZhbCBlcnJvcnNcbiAgICAvLyBvbiBzdWJzZXF1ZW50IHBhdGNoZXMgKCMzMzYwKVxuICAgIGlmIChrZXkgPT09ICd0ZXh0Q29udGVudCcgfHwga2V5ID09PSAnaW5uZXJIVE1MJykge1xuICAgICAgaWYgKHZub2RlLmNoaWxkcmVuKSB7IHZub2RlLmNoaWxkcmVuLmxlbmd0aCA9IDA7IH1cbiAgICAgIGlmIChjdXIgPT09IG9sZFByb3BzW2tleV0pIHsgY29udGludWUgfVxuICAgICAgLy8gIzY2MDEgd29yayBhcm91bmQgQ2hyb21lIHZlcnNpb24gPD0gNTUgYnVnIHdoZXJlIHNpbmdsZSB0ZXh0Tm9kZVxuICAgICAgLy8gcmVwbGFjZWQgYnkgaW5uZXJIVE1ML3RleHRDb250ZW50IHJldGFpbnMgaXRzIHBhcmVudE5vZGUgcHJvcGVydHlcbiAgICAgIGlmIChlbG0uY2hpbGROb2Rlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgZWxtLnJlbW92ZUNoaWxkKGVsbS5jaGlsZE5vZGVzWzBdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoa2V5ID09PSAndmFsdWUnICYmIGVsbS50YWdOYW1lICE9PSAnUFJPR1JFU1MnKSB7XG4gICAgICAvLyBzdG9yZSB2YWx1ZSBhcyBfdmFsdWUgYXMgd2VsbCBzaW5jZVxuICAgICAgLy8gbm9uLXN0cmluZyB2YWx1ZXMgd2lsbCBiZSBzdHJpbmdpZmllZFxuICAgICAgZWxtLl92YWx1ZSA9IGN1cjtcbiAgICAgIC8vIGF2b2lkIHJlc2V0dGluZyBjdXJzb3IgcG9zaXRpb24gd2hlbiB2YWx1ZSBpcyB0aGUgc2FtZVxuICAgICAgdmFyIHN0ckN1ciA9IGlzVW5kZWYoY3VyKSA/ICcnIDogU3RyaW5nKGN1cik7XG4gICAgICBpZiAoc2hvdWxkVXBkYXRlVmFsdWUoZWxtLCBzdHJDdXIpKSB7XG4gICAgICAgIGVsbS52YWx1ZSA9IHN0ckN1cjtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2lubmVySFRNTCcgJiYgaXNTVkcoZWxtLnRhZ05hbWUpICYmIGlzVW5kZWYoZWxtLmlubmVySFRNTCkpIHtcbiAgICAgIC8vIElFIGRvZXNuJ3Qgc3VwcG9ydCBpbm5lckhUTUwgZm9yIFNWRyBlbGVtZW50c1xuICAgICAgc3ZnQ29udGFpbmVyID0gc3ZnQ29udGFpbmVyIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgc3ZnQ29udGFpbmVyLmlubmVySFRNTCA9IFwiPHN2Zz5cIiArIGN1ciArIFwiPC9zdmc+XCI7XG4gICAgICB2YXIgc3ZnID0gc3ZnQ29udGFpbmVyLmZpcnN0Q2hpbGQ7XG4gICAgICB3aGlsZSAoZWxtLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgZWxtLnJlbW92ZUNoaWxkKGVsbS5maXJzdENoaWxkKTtcbiAgICAgIH1cbiAgICAgIHdoaWxlIChzdmcuZmlyc3RDaGlsZCkge1xuICAgICAgICBlbG0uYXBwZW5kQ2hpbGQoc3ZnLmZpcnN0Q2hpbGQpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICAvLyBza2lwIHRoZSB1cGRhdGUgaWYgb2xkIGFuZCBuZXcgVkRPTSBzdGF0ZSBpcyB0aGUgc2FtZS5cbiAgICAgIC8vIGB2YWx1ZWAgaXMgaGFuZGxlZCBzZXBhcmF0ZWx5IGJlY2F1c2UgdGhlIERPTSB2YWx1ZSBtYXkgYmUgdGVtcG9yYXJpbHlcbiAgICAgIC8vIG91dCBvZiBzeW5jIHdpdGggVkRPTSBzdGF0ZSBkdWUgdG8gZm9jdXMsIGNvbXBvc2l0aW9uIGFuZCBtb2RpZmllcnMuXG4gICAgICAvLyBUaGlzICAjNDUyMSBieSBza2lwcGluZyB0aGUgdW5uZWNlc3NhcnkgYGNoZWNrZWRgIHVwZGF0ZS5cbiAgICAgIGN1ciAhPT0gb2xkUHJvcHNba2V5XVxuICAgICkge1xuICAgICAgLy8gc29tZSBwcm9wZXJ0eSB1cGRhdGVzIGNhbiB0aHJvd1xuICAgICAgLy8gZS5nLiBgdmFsdWVgIG9uIDxwcm9ncmVzcz4gdy8gbm9uLWZpbml0ZSB2YWx1ZVxuICAgICAgdHJ5IHtcbiAgICAgICAgZWxtW2tleV0gPSBjdXI7XG4gICAgICB9IGNhdGNoIChlKSB7fVxuICAgIH1cbiAgfVxufVxuXG4vLyBjaGVjayBwbGF0Zm9ybXMvd2ViL3V0aWwvYXR0cnMuanMgYWNjZXB0VmFsdWVcblxuXG5mdW5jdGlvbiBzaG91bGRVcGRhdGVWYWx1ZSAoZWxtLCBjaGVja1ZhbCkge1xuICByZXR1cm4gKCFlbG0uY29tcG9zaW5nICYmIChcbiAgICBlbG0udGFnTmFtZSA9PT0gJ09QVElPTicgfHxcbiAgICBpc05vdEluRm9jdXNBbmREaXJ0eShlbG0sIGNoZWNrVmFsKSB8fFxuICAgIGlzRGlydHlXaXRoTW9kaWZpZXJzKGVsbSwgY2hlY2tWYWwpXG4gICkpXG59XG5cbmZ1bmN0aW9uIGlzTm90SW5Gb2N1c0FuZERpcnR5IChlbG0sIGNoZWNrVmFsKSB7XG4gIC8vIHJldHVybiB0cnVlIHdoZW4gdGV4dGJveCAoLm51bWJlciBhbmQgLnRyaW0pIGxvc2VzIGZvY3VzIGFuZCBpdHMgdmFsdWUgaXNcbiAgLy8gbm90IGVxdWFsIHRvIHRoZSB1cGRhdGVkIHZhbHVlXG4gIHZhciBub3RJbkZvY3VzID0gdHJ1ZTtcbiAgLy8gIzYxNTdcbiAgLy8gd29yayBhcm91bmQgSUUgYnVnIHdoZW4gYWNjZXNzaW5nIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW4gYW4gaWZyYW1lXG4gIHRyeSB7IG5vdEluRm9jdXMgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICE9PSBlbG07IH0gY2F0Y2ggKGUpIHt9XG4gIHJldHVybiBub3RJbkZvY3VzICYmIGVsbS52YWx1ZSAhPT0gY2hlY2tWYWxcbn1cblxuZnVuY3Rpb24gaXNEaXJ0eVdpdGhNb2RpZmllcnMgKGVsbSwgbmV3VmFsKSB7XG4gIHZhciB2YWx1ZSA9IGVsbS52YWx1ZTtcbiAgdmFyIG1vZGlmaWVycyA9IGVsbS5fdk1vZGlmaWVyczsgLy8gaW5qZWN0ZWQgYnkgdi1tb2RlbCBydW50aW1lXG4gIGlmIChpc0RlZihtb2RpZmllcnMpKSB7XG4gICAgaWYgKG1vZGlmaWVycy5udW1iZXIpIHtcbiAgICAgIHJldHVybiB0b051bWJlcih2YWx1ZSkgIT09IHRvTnVtYmVyKG5ld1ZhbClcbiAgICB9XG4gICAgaWYgKG1vZGlmaWVycy50cmltKSB7XG4gICAgICByZXR1cm4gdmFsdWUudHJpbSgpICE9PSBuZXdWYWwudHJpbSgpXG4gICAgfVxuICB9XG4gIHJldHVybiB2YWx1ZSAhPT0gbmV3VmFsXG59XG5cbnZhciBkb21Qcm9wcyA9IHtcbiAgY3JlYXRlOiB1cGRhdGVET01Qcm9wcyxcbiAgdXBkYXRlOiB1cGRhdGVET01Qcm9wc1xufTtcblxuLyogICovXG5cbnZhciBwYXJzZVN0eWxlVGV4dCA9IGNhY2hlZChmdW5jdGlvbiAoY3NzVGV4dCkge1xuICB2YXIgcmVzID0ge307XG4gIHZhciBsaXN0RGVsaW1pdGVyID0gLzsoPyFbXihdKlxcKSkvZztcbiAgdmFyIHByb3BlcnR5RGVsaW1pdGVyID0gLzooLispLztcbiAgY3NzVGV4dC5zcGxpdChsaXN0RGVsaW1pdGVyKS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHZhciB0bXAgPSBpdGVtLnNwbGl0KHByb3BlcnR5RGVsaW1pdGVyKTtcbiAgICAgIHRtcC5sZW5ndGggPiAxICYmIChyZXNbdG1wWzBdLnRyaW0oKV0gPSB0bXBbMV0udHJpbSgpKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcmVzXG59KTtcblxuLy8gbWVyZ2Ugc3RhdGljIGFuZCBkeW5hbWljIHN0eWxlIGRhdGEgb24gdGhlIHNhbWUgdm5vZGVcbmZ1bmN0aW9uIG5vcm1hbGl6ZVN0eWxlRGF0YSAoZGF0YSkge1xuICB2YXIgc3R5bGUgPSBub3JtYWxpemVTdHlsZUJpbmRpbmcoZGF0YS5zdHlsZSk7XG4gIC8vIHN0YXRpYyBzdHlsZSBpcyBwcmUtcHJvY2Vzc2VkIGludG8gYW4gb2JqZWN0IGR1cmluZyBjb21waWxhdGlvblxuICAvLyBhbmQgaXMgYWx3YXlzIGEgZnJlc2ggb2JqZWN0LCBzbyBpdCdzIHNhZmUgdG8gbWVyZ2UgaW50byBpdFxuICByZXR1cm4gZGF0YS5zdGF0aWNTdHlsZVxuICAgID8gZXh0ZW5kKGRhdGEuc3RhdGljU3R5bGUsIHN0eWxlKVxuICAgIDogc3R5bGVcbn1cblxuLy8gbm9ybWFsaXplIHBvc3NpYmxlIGFycmF5IC8gc3RyaW5nIHZhbHVlcyBpbnRvIE9iamVjdFxuZnVuY3Rpb24gbm9ybWFsaXplU3R5bGVCaW5kaW5nIChiaW5kaW5nU3R5bGUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYmluZGluZ1N0eWxlKSkge1xuICAgIHJldHVybiB0b09iamVjdChiaW5kaW5nU3R5bGUpXG4gIH1cbiAgaWYgKHR5cGVvZiBiaW5kaW5nU3R5bGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHBhcnNlU3R5bGVUZXh0KGJpbmRpbmdTdHlsZSlcbiAgfVxuICByZXR1cm4gYmluZGluZ1N0eWxlXG59XG5cbi8qKlxuICogcGFyZW50IGNvbXBvbmVudCBzdHlsZSBzaG91bGQgYmUgYWZ0ZXIgY2hpbGQnc1xuICogc28gdGhhdCBwYXJlbnQgY29tcG9uZW50J3Mgc3R5bGUgY291bGQgb3ZlcnJpZGUgaXRcbiAqL1xuZnVuY3Rpb24gZ2V0U3R5bGUgKHZub2RlLCBjaGVja0NoaWxkKSB7XG4gIHZhciByZXMgPSB7fTtcbiAgdmFyIHN0eWxlRGF0YTtcblxuICBpZiAoY2hlY2tDaGlsZCkge1xuICAgIHZhciBjaGlsZE5vZGUgPSB2bm9kZTtcbiAgICB3aGlsZSAoY2hpbGROb2RlLmNvbXBvbmVudEluc3RhbmNlKSB7XG4gICAgICBjaGlsZE5vZGUgPSBjaGlsZE5vZGUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlO1xuICAgICAgaWYgKFxuICAgICAgICBjaGlsZE5vZGUgJiYgY2hpbGROb2RlLmRhdGEgJiZcbiAgICAgICAgKHN0eWxlRGF0YSA9IG5vcm1hbGl6ZVN0eWxlRGF0YShjaGlsZE5vZGUuZGF0YSkpXG4gICAgICApIHtcbiAgICAgICAgZXh0ZW5kKHJlcywgc3R5bGVEYXRhKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoKHN0eWxlRGF0YSA9IG5vcm1hbGl6ZVN0eWxlRGF0YSh2bm9kZS5kYXRhKSkpIHtcbiAgICBleHRlbmQocmVzLCBzdHlsZURhdGEpO1xuICB9XG5cbiAgdmFyIHBhcmVudE5vZGUgPSB2bm9kZTtcbiAgd2hpbGUgKChwYXJlbnROb2RlID0gcGFyZW50Tm9kZS5wYXJlbnQpKSB7XG4gICAgaWYgKHBhcmVudE5vZGUuZGF0YSAmJiAoc3R5bGVEYXRhID0gbm9ybWFsaXplU3R5bGVEYXRhKHBhcmVudE5vZGUuZGF0YSkpKSB7XG4gICAgICBleHRlbmQocmVzLCBzdHlsZURhdGEpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbi8qICAqL1xuXG52YXIgY3NzVmFyUkUgPSAvXi0tLztcbnZhciBpbXBvcnRhbnRSRSA9IC9cXHMqIWltcG9ydGFudCQvO1xudmFyIHNldFByb3AgPSBmdW5jdGlvbiAoZWwsIG5hbWUsIHZhbCkge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKGNzc1ZhclJFLnRlc3QobmFtZSkpIHtcbiAgICBlbC5zdHlsZS5zZXRQcm9wZXJ0eShuYW1lLCB2YWwpO1xuICB9IGVsc2UgaWYgKGltcG9ydGFudFJFLnRlc3QodmFsKSkge1xuICAgIGVsLnN0eWxlLnNldFByb3BlcnR5KGh5cGhlbmF0ZShuYW1lKSwgdmFsLnJlcGxhY2UoaW1wb3J0YW50UkUsICcnKSwgJ2ltcG9ydGFudCcpO1xuICB9IGVsc2Uge1xuICAgIHZhciBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZShuYW1lKTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICAvLyBTdXBwb3J0IHZhbHVlcyBhcnJheSBjcmVhdGVkIGJ5IGF1dG9wcmVmaXhlciwgZS5nLlxuICAgICAgLy8ge2Rpc3BsYXk6IFtcIi13ZWJraXQtYm94XCIsIFwiLW1zLWZsZXhib3hcIiwgXCJmbGV4XCJdfVxuICAgICAgLy8gU2V0IHRoZW0gb25lIGJ5IG9uZSwgYW5kIHRoZSBicm93c2VyIHdpbGwgb25seSBzZXQgdGhvc2UgaXQgY2FuIHJlY29nbml6ZVxuICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IHZhbC5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICBlbC5zdHlsZVtub3JtYWxpemVkTmFtZV0gPSB2YWxbaV07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLnN0eWxlW25vcm1hbGl6ZWROYW1lXSA9IHZhbDtcbiAgICB9XG4gIH1cbn07XG5cbnZhciB2ZW5kb3JOYW1lcyA9IFsnV2Via2l0JywgJ01veicsICdtcyddO1xuXG52YXIgZW1wdHlTdHlsZTtcbnZhciBub3JtYWxpemUgPSBjYWNoZWQoZnVuY3Rpb24gKHByb3ApIHtcbiAgZW1wdHlTdHlsZSA9IGVtcHR5U3R5bGUgfHwgZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jykuc3R5bGU7XG4gIHByb3AgPSBjYW1lbGl6ZShwcm9wKTtcbiAgaWYgKHByb3AgIT09ICdmaWx0ZXInICYmIChwcm9wIGluIGVtcHR5U3R5bGUpKSB7XG4gICAgcmV0dXJuIHByb3BcbiAgfVxuICB2YXIgY2FwTmFtZSA9IHByb3AuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBwcm9wLnNsaWNlKDEpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHZlbmRvck5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIG5hbWUgPSB2ZW5kb3JOYW1lc1tpXSArIGNhcE5hbWU7XG4gICAgaWYgKG5hbWUgaW4gZW1wdHlTdHlsZSkge1xuICAgICAgcmV0dXJuIG5hbWVcbiAgICB9XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiB1cGRhdGVTdHlsZSAob2xkVm5vZGUsIHZub2RlKSB7XG4gIHZhciBkYXRhID0gdm5vZGUuZGF0YTtcbiAgdmFyIG9sZERhdGEgPSBvbGRWbm9kZS5kYXRhO1xuXG4gIGlmIChpc1VuZGVmKGRhdGEuc3RhdGljU3R5bGUpICYmIGlzVW5kZWYoZGF0YS5zdHlsZSkgJiZcbiAgICBpc1VuZGVmKG9sZERhdGEuc3RhdGljU3R5bGUpICYmIGlzVW5kZWYob2xkRGF0YS5zdHlsZSlcbiAgKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICB2YXIgY3VyLCBuYW1lO1xuICB2YXIgZWwgPSB2bm9kZS5lbG07XG4gIHZhciBvbGRTdGF0aWNTdHlsZSA9IG9sZERhdGEuc3RhdGljU3R5bGU7XG4gIHZhciBvbGRTdHlsZUJpbmRpbmcgPSBvbGREYXRhLm5vcm1hbGl6ZWRTdHlsZSB8fCBvbGREYXRhLnN0eWxlIHx8IHt9O1xuXG4gIC8vIGlmIHN0YXRpYyBzdHlsZSBleGlzdHMsIHN0eWxlYmluZGluZyBhbHJlYWR5IG1lcmdlZCBpbnRvIGl0IHdoZW4gZG9pbmcgbm9ybWFsaXplU3R5bGVEYXRhXG4gIHZhciBvbGRTdHlsZSA9IG9sZFN0YXRpY1N0eWxlIHx8IG9sZFN0eWxlQmluZGluZztcblxuICB2YXIgc3R5bGUgPSBub3JtYWxpemVTdHlsZUJpbmRpbmcodm5vZGUuZGF0YS5zdHlsZSkgfHwge307XG5cbiAgLy8gc3RvcmUgbm9ybWFsaXplZCBzdHlsZSB1bmRlciBhIGRpZmZlcmVudCBrZXkgZm9yIG5leHQgZGlmZlxuICAvLyBtYWtlIHN1cmUgdG8gY2xvbmUgaXQgaWYgaXQncyByZWFjdGl2ZSwgc2luY2UgdGhlIHVzZXIgbGlrZWx5IHdhbnRzXG4gIC8vIHRvIG11dGF0ZSBpdC5cbiAgdm5vZGUuZGF0YS5ub3JtYWxpemVkU3R5bGUgPSBpc0RlZihzdHlsZS5fX29iX18pXG4gICAgPyBleHRlbmQoe30sIHN0eWxlKVxuICAgIDogc3R5bGU7XG5cbiAgdmFyIG5ld1N0eWxlID0gZ2V0U3R5bGUodm5vZGUsIHRydWUpO1xuXG4gIGZvciAobmFtZSBpbiBvbGRTdHlsZSkge1xuICAgIGlmIChpc1VuZGVmKG5ld1N0eWxlW25hbWVdKSkge1xuICAgICAgc2V0UHJvcChlbCwgbmFtZSwgJycpO1xuICAgIH1cbiAgfVxuICBmb3IgKG5hbWUgaW4gbmV3U3R5bGUpIHtcbiAgICBjdXIgPSBuZXdTdHlsZVtuYW1lXTtcbiAgICBpZiAoY3VyICE9PSBvbGRTdHlsZVtuYW1lXSkge1xuICAgICAgLy8gaWU5IHNldHRpbmcgdG8gbnVsbCBoYXMgbm8gZWZmZWN0LCBtdXN0IHVzZSBlbXB0eSBzdHJpbmdcbiAgICAgIHNldFByb3AoZWwsIG5hbWUsIGN1ciA9PSBudWxsID8gJycgOiBjdXIpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgc3R5bGUgPSB7XG4gIGNyZWF0ZTogdXBkYXRlU3R5bGUsXG4gIHVwZGF0ZTogdXBkYXRlU3R5bGVcbn07XG5cbi8qICAqL1xuXG52YXIgd2hpdGVzcGFjZVJFID0gL1xccysvO1xuXG4vKipcbiAqIEFkZCBjbGFzcyB3aXRoIGNvbXBhdGliaWxpdHkgZm9yIFNWRyBzaW5jZSBjbGFzc0xpc3QgaXMgbm90IHN1cHBvcnRlZCBvblxuICogU1ZHIGVsZW1lbnRzIGluIElFXG4gKi9cbmZ1bmN0aW9uIGFkZENsYXNzIChlbCwgY2xzKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIWNscyB8fCAhKGNscyA9IGNscy50cmltKCkpKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAoZWwuY2xhc3NMaXN0KSB7XG4gICAgaWYgKGNscy5pbmRleE9mKCcgJykgPiAtMSkge1xuICAgICAgY2xzLnNwbGl0KHdoaXRlc3BhY2VSRSkuZm9yRWFjaChmdW5jdGlvbiAoYykgeyByZXR1cm4gZWwuY2xhc3NMaXN0LmFkZChjKTsgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLmNsYXNzTGlzdC5hZGQoY2xzKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIGN1ciA9IFwiIFwiICsgKGVsLmdldEF0dHJpYnV0ZSgnY2xhc3MnKSB8fCAnJykgKyBcIiBcIjtcbiAgICBpZiAoY3VyLmluZGV4T2YoJyAnICsgY2xzICsgJyAnKSA8IDApIHtcbiAgICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAoY3VyICsgY2xzKS50cmltKCkpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJlbW92ZSBjbGFzcyB3aXRoIGNvbXBhdGliaWxpdHkgZm9yIFNWRyBzaW5jZSBjbGFzc0xpc3QgaXMgbm90IHN1cHBvcnRlZCBvblxuICogU1ZHIGVsZW1lbnRzIGluIElFXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZUNsYXNzIChlbCwgY2xzKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIWNscyB8fCAhKGNscyA9IGNscy50cmltKCkpKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAoZWwuY2xhc3NMaXN0KSB7XG4gICAgaWYgKGNscy5pbmRleE9mKCcgJykgPiAtMSkge1xuICAgICAgY2xzLnNwbGl0KHdoaXRlc3BhY2VSRSkuZm9yRWFjaChmdW5jdGlvbiAoYykgeyByZXR1cm4gZWwuY2xhc3NMaXN0LnJlbW92ZShjKTsgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoY2xzKTtcbiAgICB9XG4gICAgaWYgKCFlbC5jbGFzc0xpc3QubGVuZ3RoKSB7XG4gICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoJ2NsYXNzJyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciBjdXIgPSBcIiBcIiArIChlbC5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgfHwgJycpICsgXCIgXCI7XG4gICAgdmFyIHRhciA9ICcgJyArIGNscyArICcgJztcbiAgICB3aGlsZSAoY3VyLmluZGV4T2YodGFyKSA+PSAwKSB7XG4gICAgICBjdXIgPSBjdXIucmVwbGFjZSh0YXIsICcgJyk7XG4gICAgfVxuICAgIGN1ciA9IGN1ci50cmltKCk7XG4gICAgaWYgKGN1cikge1xuICAgICAgZWwuc2V0QXR0cmlidXRlKCdjbGFzcycsIGN1cik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZSgnY2xhc3MnKTtcbiAgICB9XG4gIH1cbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIHJlc29sdmVUcmFuc2l0aW9uIChkZWYkJDEpIHtcbiAgaWYgKCFkZWYkJDEpIHtcbiAgICByZXR1cm5cbiAgfVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAodHlwZW9mIGRlZiQkMSA9PT0gJ29iamVjdCcpIHtcbiAgICB2YXIgcmVzID0ge307XG4gICAgaWYgKGRlZiQkMS5jc3MgIT09IGZhbHNlKSB7XG4gICAgICBleHRlbmQocmVzLCBhdXRvQ3NzVHJhbnNpdGlvbihkZWYkJDEubmFtZSB8fCAndicpKTtcbiAgICB9XG4gICAgZXh0ZW5kKHJlcywgZGVmJCQxKTtcbiAgICByZXR1cm4gcmVzXG4gIH0gZWxzZSBpZiAodHlwZW9mIGRlZiQkMSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gYXV0b0Nzc1RyYW5zaXRpb24oZGVmJCQxKVxuICB9XG59XG5cbnZhciBhdXRvQ3NzVHJhbnNpdGlvbiA9IGNhY2hlZChmdW5jdGlvbiAobmFtZSkge1xuICByZXR1cm4ge1xuICAgIGVudGVyQ2xhc3M6IChuYW1lICsgXCItZW50ZXJcIiksXG4gICAgZW50ZXJUb0NsYXNzOiAobmFtZSArIFwiLWVudGVyLXRvXCIpLFxuICAgIGVudGVyQWN0aXZlQ2xhc3M6IChuYW1lICsgXCItZW50ZXItYWN0aXZlXCIpLFxuICAgIGxlYXZlQ2xhc3M6IChuYW1lICsgXCItbGVhdmVcIiksXG4gICAgbGVhdmVUb0NsYXNzOiAobmFtZSArIFwiLWxlYXZlLXRvXCIpLFxuICAgIGxlYXZlQWN0aXZlQ2xhc3M6IChuYW1lICsgXCItbGVhdmUtYWN0aXZlXCIpXG4gIH1cbn0pO1xuXG52YXIgaGFzVHJhbnNpdGlvbiA9IGluQnJvd3NlciAmJiAhaXNJRTk7XG52YXIgVFJBTlNJVElPTiA9ICd0cmFuc2l0aW9uJztcbnZhciBBTklNQVRJT04gPSAnYW5pbWF0aW9uJztcblxuLy8gVHJhbnNpdGlvbiBwcm9wZXJ0eS9ldmVudCBzbmlmZmluZ1xudmFyIHRyYW5zaXRpb25Qcm9wID0gJ3RyYW5zaXRpb24nO1xudmFyIHRyYW5zaXRpb25FbmRFdmVudCA9ICd0cmFuc2l0aW9uZW5kJztcbnZhciBhbmltYXRpb25Qcm9wID0gJ2FuaW1hdGlvbic7XG52YXIgYW5pbWF0aW9uRW5kRXZlbnQgPSAnYW5pbWF0aW9uZW5kJztcbmlmIChoYXNUcmFuc2l0aW9uKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAod2luZG93Lm9udHJhbnNpdGlvbmVuZCA9PT0gdW5kZWZpbmVkICYmXG4gICAgd2luZG93Lm9ud2Via2l0dHJhbnNpdGlvbmVuZCAhPT0gdW5kZWZpbmVkXG4gICkge1xuICAgIHRyYW5zaXRpb25Qcm9wID0gJ1dlYmtpdFRyYW5zaXRpb24nO1xuICAgIHRyYW5zaXRpb25FbmRFdmVudCA9ICd3ZWJraXRUcmFuc2l0aW9uRW5kJztcbiAgfVxuICBpZiAod2luZG93Lm9uYW5pbWF0aW9uZW5kID09PSB1bmRlZmluZWQgJiZcbiAgICB3aW5kb3cub253ZWJraXRhbmltYXRpb25lbmQgIT09IHVuZGVmaW5lZFxuICApIHtcbiAgICBhbmltYXRpb25Qcm9wID0gJ1dlYmtpdEFuaW1hdGlvbic7XG4gICAgYW5pbWF0aW9uRW5kRXZlbnQgPSAnd2Via2l0QW5pbWF0aW9uRW5kJztcbiAgfVxufVxuXG4vLyBiaW5kaW5nIHRvIHdpbmRvdyBpcyBuZWNlc3NhcnkgdG8gbWFrZSBob3QgcmVsb2FkIHdvcmsgaW4gSUUgaW4gc3RyaWN0IG1vZGVcbnZhciByYWYgPSBpbkJyb3dzZXJcbiAgPyB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lXG4gICAgPyB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KVxuICAgIDogc2V0VGltZW91dFxuICA6IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIGZ1bmN0aW9uIChmbikgeyByZXR1cm4gZm4oKTsgfTtcblxuZnVuY3Rpb24gbmV4dEZyYW1lIChmbikge1xuICByYWYoZnVuY3Rpb24gKCkge1xuICAgIHJhZihmbik7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBhZGRUcmFuc2l0aW9uQ2xhc3MgKGVsLCBjbHMpIHtcbiAgdmFyIHRyYW5zaXRpb25DbGFzc2VzID0gZWwuX3RyYW5zaXRpb25DbGFzc2VzIHx8IChlbC5fdHJhbnNpdGlvbkNsYXNzZXMgPSBbXSk7XG4gIGlmICh0cmFuc2l0aW9uQ2xhc3Nlcy5pbmRleE9mKGNscykgPCAwKSB7XG4gICAgdHJhbnNpdGlvbkNsYXNzZXMucHVzaChjbHMpO1xuICAgIGFkZENsYXNzKGVsLCBjbHMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVRyYW5zaXRpb25DbGFzcyAoZWwsIGNscykge1xuICBpZiAoZWwuX3RyYW5zaXRpb25DbGFzc2VzKSB7XG4gICAgcmVtb3ZlKGVsLl90cmFuc2l0aW9uQ2xhc3NlcywgY2xzKTtcbiAgfVxuICByZW1vdmVDbGFzcyhlbCwgY2xzKTtcbn1cblxuZnVuY3Rpb24gd2hlblRyYW5zaXRpb25FbmRzIChcbiAgZWwsXG4gIGV4cGVjdGVkVHlwZSxcbiAgY2Jcbikge1xuICB2YXIgcmVmID0gZ2V0VHJhbnNpdGlvbkluZm8oZWwsIGV4cGVjdGVkVHlwZSk7XG4gIHZhciB0eXBlID0gcmVmLnR5cGU7XG4gIHZhciB0aW1lb3V0ID0gcmVmLnRpbWVvdXQ7XG4gIHZhciBwcm9wQ291bnQgPSByZWYucHJvcENvdW50O1xuICBpZiAoIXR5cGUpIHsgcmV0dXJuIGNiKCkgfVxuICB2YXIgZXZlbnQgPSB0eXBlID09PSBUUkFOU0lUSU9OID8gdHJhbnNpdGlvbkVuZEV2ZW50IDogYW5pbWF0aW9uRW5kRXZlbnQ7XG4gIHZhciBlbmRlZCA9IDA7XG4gIHZhciBlbmQgPSBmdW5jdGlvbiAoKSB7XG4gICAgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudCwgb25FbmQpO1xuICAgIGNiKCk7XG4gIH07XG4gIHZhciBvbkVuZCA9IGZ1bmN0aW9uIChlKSB7XG4gICAgaWYgKGUudGFyZ2V0ID09PSBlbCkge1xuICAgICAgaWYgKCsrZW5kZWQgPj0gcHJvcENvdW50KSB7XG4gICAgICAgIGVuZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGVuZGVkIDwgcHJvcENvdW50KSB7XG4gICAgICBlbmQoKTtcbiAgICB9XG4gIH0sIHRpbWVvdXQgKyAxKTtcbiAgZWwuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgb25FbmQpO1xufVxuXG52YXIgdHJhbnNmb3JtUkUgPSAvXFxiKHRyYW5zZm9ybXxhbGwpKCx8JCkvO1xuXG5mdW5jdGlvbiBnZXRUcmFuc2l0aW9uSW5mbyAoZWwsIGV4cGVjdGVkVHlwZSkge1xuICB2YXIgc3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWwpO1xuICAvLyBKU0RPTSBtYXkgcmV0dXJuIHVuZGVmaW5lZCBmb3IgdHJhbnNpdGlvbiBwcm9wZXJ0aWVzXG4gIHZhciB0cmFuc2l0aW9uRGVsYXlzID0gKHN0eWxlc1t0cmFuc2l0aW9uUHJvcCArICdEZWxheSddIHx8ICcnKS5zcGxpdCgnLCAnKTtcbiAgdmFyIHRyYW5zaXRpb25EdXJhdGlvbnMgPSAoc3R5bGVzW3RyYW5zaXRpb25Qcm9wICsgJ0R1cmF0aW9uJ10gfHwgJycpLnNwbGl0KCcsICcpO1xuICB2YXIgdHJhbnNpdGlvblRpbWVvdXQgPSBnZXRUaW1lb3V0KHRyYW5zaXRpb25EZWxheXMsIHRyYW5zaXRpb25EdXJhdGlvbnMpO1xuICB2YXIgYW5pbWF0aW9uRGVsYXlzID0gKHN0eWxlc1thbmltYXRpb25Qcm9wICsgJ0RlbGF5J10gfHwgJycpLnNwbGl0KCcsICcpO1xuICB2YXIgYW5pbWF0aW9uRHVyYXRpb25zID0gKHN0eWxlc1thbmltYXRpb25Qcm9wICsgJ0R1cmF0aW9uJ10gfHwgJycpLnNwbGl0KCcsICcpO1xuICB2YXIgYW5pbWF0aW9uVGltZW91dCA9IGdldFRpbWVvdXQoYW5pbWF0aW9uRGVsYXlzLCBhbmltYXRpb25EdXJhdGlvbnMpO1xuXG4gIHZhciB0eXBlO1xuICB2YXIgdGltZW91dCA9IDA7XG4gIHZhciBwcm9wQ291bnQgPSAwO1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKGV4cGVjdGVkVHlwZSA9PT0gVFJBTlNJVElPTikge1xuICAgIGlmICh0cmFuc2l0aW9uVGltZW91dCA+IDApIHtcbiAgICAgIHR5cGUgPSBUUkFOU0lUSU9OO1xuICAgICAgdGltZW91dCA9IHRyYW5zaXRpb25UaW1lb3V0O1xuICAgICAgcHJvcENvdW50ID0gdHJhbnNpdGlvbkR1cmF0aW9ucy5sZW5ndGg7XG4gICAgfVxuICB9IGVsc2UgaWYgKGV4cGVjdGVkVHlwZSA9PT0gQU5JTUFUSU9OKSB7XG4gICAgaWYgKGFuaW1hdGlvblRpbWVvdXQgPiAwKSB7XG4gICAgICB0eXBlID0gQU5JTUFUSU9OO1xuICAgICAgdGltZW91dCA9IGFuaW1hdGlvblRpbWVvdXQ7XG4gICAgICBwcm9wQ291bnQgPSBhbmltYXRpb25EdXJhdGlvbnMubGVuZ3RoO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0aW1lb3V0ID0gTWF0aC5tYXgodHJhbnNpdGlvblRpbWVvdXQsIGFuaW1hdGlvblRpbWVvdXQpO1xuICAgIHR5cGUgPSB0aW1lb3V0ID4gMFxuICAgICAgPyB0cmFuc2l0aW9uVGltZW91dCA+IGFuaW1hdGlvblRpbWVvdXRcbiAgICAgICAgPyBUUkFOU0lUSU9OXG4gICAgICAgIDogQU5JTUFUSU9OXG4gICAgICA6IG51bGw7XG4gICAgcHJvcENvdW50ID0gdHlwZVxuICAgICAgPyB0eXBlID09PSBUUkFOU0lUSU9OXG4gICAgICAgID8gdHJhbnNpdGlvbkR1cmF0aW9ucy5sZW5ndGhcbiAgICAgICAgOiBhbmltYXRpb25EdXJhdGlvbnMubGVuZ3RoXG4gICAgICA6IDA7XG4gIH1cbiAgdmFyIGhhc1RyYW5zZm9ybSA9XG4gICAgdHlwZSA9PT0gVFJBTlNJVElPTiAmJlxuICAgIHRyYW5zZm9ybVJFLnRlc3Qoc3R5bGVzW3RyYW5zaXRpb25Qcm9wICsgJ1Byb3BlcnR5J10pO1xuICByZXR1cm4ge1xuICAgIHR5cGU6IHR5cGUsXG4gICAgdGltZW91dDogdGltZW91dCxcbiAgICBwcm9wQ291bnQ6IHByb3BDb3VudCxcbiAgICBoYXNUcmFuc2Zvcm06IGhhc1RyYW5zZm9ybVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldFRpbWVvdXQgKGRlbGF5cywgZHVyYXRpb25zKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHdoaWxlIChkZWxheXMubGVuZ3RoIDwgZHVyYXRpb25zLmxlbmd0aCkge1xuICAgIGRlbGF5cyA9IGRlbGF5cy5jb25jYXQoZGVsYXlzKTtcbiAgfVxuXG4gIHJldHVybiBNYXRoLm1heC5hcHBseShudWxsLCBkdXJhdGlvbnMubWFwKGZ1bmN0aW9uIChkLCBpKSB7XG4gICAgcmV0dXJuIHRvTXMoZCkgKyB0b01zKGRlbGF5c1tpXSlcbiAgfSkpXG59XG5cbi8vIE9sZCB2ZXJzaW9ucyBvZiBDaHJvbWl1bSAoYmVsb3cgNjEuMC4zMTYzLjEwMCkgZm9ybWF0cyBmbG9hdGluZyBwb2ludGVyIG51bWJlcnNcbi8vIGluIGEgbG9jYWxlLWRlcGVuZGVudCB3YXksIHVzaW5nIGEgY29tbWEgaW5zdGVhZCBvZiBhIGRvdC5cbi8vIElmIGNvbW1hIGlzIG5vdCByZXBsYWNlZCB3aXRoIGEgZG90LCB0aGUgaW5wdXQgd2lsbCBiZSByb3VuZGVkIGRvd24gKGkuZS4gYWN0aW5nXG4vLyBhcyBhIGZsb29yIGZ1bmN0aW9uKSBjYXVzaW5nIHVuZXhwZWN0ZWQgYmVoYXZpb3JzXG5mdW5jdGlvbiB0b01zIChzKSB7XG4gIHJldHVybiBOdW1iZXIocy5zbGljZSgwLCAtMSkucmVwbGFjZSgnLCcsICcuJykpICogMTAwMFxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gZW50ZXIgKHZub2RlLCB0b2dnbGVEaXNwbGF5KSB7XG4gIHZhciBlbCA9IHZub2RlLmVsbTtcblxuICAvLyBjYWxsIGxlYXZlIGNhbGxiYWNrIG5vd1xuICBpZiAoaXNEZWYoZWwuX2xlYXZlQ2IpKSB7XG4gICAgZWwuX2xlYXZlQ2IuY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICBlbC5fbGVhdmVDYigpO1xuICB9XG5cbiAgdmFyIGRhdGEgPSByZXNvbHZlVHJhbnNpdGlvbih2bm9kZS5kYXRhLnRyYW5zaXRpb24pO1xuICBpZiAoaXNVbmRlZihkYXRhKSkge1xuICAgIHJldHVyblxuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChpc0RlZihlbC5fZW50ZXJDYikgfHwgZWwubm9kZVR5cGUgIT09IDEpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHZhciBjc3MgPSBkYXRhLmNzcztcbiAgdmFyIHR5cGUgPSBkYXRhLnR5cGU7XG4gIHZhciBlbnRlckNsYXNzID0gZGF0YS5lbnRlckNsYXNzO1xuICB2YXIgZW50ZXJUb0NsYXNzID0gZGF0YS5lbnRlclRvQ2xhc3M7XG4gIHZhciBlbnRlckFjdGl2ZUNsYXNzID0gZGF0YS5lbnRlckFjdGl2ZUNsYXNzO1xuICB2YXIgYXBwZWFyQ2xhc3MgPSBkYXRhLmFwcGVhckNsYXNzO1xuICB2YXIgYXBwZWFyVG9DbGFzcyA9IGRhdGEuYXBwZWFyVG9DbGFzcztcbiAgdmFyIGFwcGVhckFjdGl2ZUNsYXNzID0gZGF0YS5hcHBlYXJBY3RpdmVDbGFzcztcbiAgdmFyIGJlZm9yZUVudGVyID0gZGF0YS5iZWZvcmVFbnRlcjtcbiAgdmFyIGVudGVyID0gZGF0YS5lbnRlcjtcbiAgdmFyIGFmdGVyRW50ZXIgPSBkYXRhLmFmdGVyRW50ZXI7XG4gIHZhciBlbnRlckNhbmNlbGxlZCA9IGRhdGEuZW50ZXJDYW5jZWxsZWQ7XG4gIHZhciBiZWZvcmVBcHBlYXIgPSBkYXRhLmJlZm9yZUFwcGVhcjtcbiAgdmFyIGFwcGVhciA9IGRhdGEuYXBwZWFyO1xuICB2YXIgYWZ0ZXJBcHBlYXIgPSBkYXRhLmFmdGVyQXBwZWFyO1xuICB2YXIgYXBwZWFyQ2FuY2VsbGVkID0gZGF0YS5hcHBlYXJDYW5jZWxsZWQ7XG4gIHZhciBkdXJhdGlvbiA9IGRhdGEuZHVyYXRpb247XG5cbiAgLy8gYWN0aXZlSW5zdGFuY2Ugd2lsbCBhbHdheXMgYmUgdGhlIDx0cmFuc2l0aW9uPiBjb21wb25lbnQgbWFuYWdpbmcgdGhpc1xuICAvLyB0cmFuc2l0aW9uLiBPbmUgZWRnZSBjYXNlIHRvIGNoZWNrIGlzIHdoZW4gdGhlIDx0cmFuc2l0aW9uPiBpcyBwbGFjZWRcbiAgLy8gYXMgdGhlIHJvb3Qgbm9kZSBvZiBhIGNoaWxkIGNvbXBvbmVudC4gSW4gdGhhdCBjYXNlIHdlIG5lZWQgdG8gY2hlY2tcbiAgLy8gPHRyYW5zaXRpb24+J3MgcGFyZW50IGZvciBhcHBlYXIgY2hlY2suXG4gIHZhciBjb250ZXh0ID0gYWN0aXZlSW5zdGFuY2U7XG4gIHZhciB0cmFuc2l0aW9uTm9kZSA9IGFjdGl2ZUluc3RhbmNlLiR2bm9kZTtcbiAgd2hpbGUgKHRyYW5zaXRpb25Ob2RlICYmIHRyYW5zaXRpb25Ob2RlLnBhcmVudCkge1xuICAgIGNvbnRleHQgPSB0cmFuc2l0aW9uTm9kZS5jb250ZXh0O1xuICAgIHRyYW5zaXRpb25Ob2RlID0gdHJhbnNpdGlvbk5vZGUucGFyZW50O1xuICB9XG5cbiAgdmFyIGlzQXBwZWFyID0gIWNvbnRleHQuX2lzTW91bnRlZCB8fCAhdm5vZGUuaXNSb290SW5zZXJ0O1xuXG4gIGlmIChpc0FwcGVhciAmJiAhYXBwZWFyICYmIGFwcGVhciAhPT0gJycpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHZhciBzdGFydENsYXNzID0gaXNBcHBlYXIgJiYgYXBwZWFyQ2xhc3NcbiAgICA/IGFwcGVhckNsYXNzXG4gICAgOiBlbnRlckNsYXNzO1xuICB2YXIgYWN0aXZlQ2xhc3MgPSBpc0FwcGVhciAmJiBhcHBlYXJBY3RpdmVDbGFzc1xuICAgID8gYXBwZWFyQWN0aXZlQ2xhc3NcbiAgICA6IGVudGVyQWN0aXZlQ2xhc3M7XG4gIHZhciB0b0NsYXNzID0gaXNBcHBlYXIgJiYgYXBwZWFyVG9DbGFzc1xuICAgID8gYXBwZWFyVG9DbGFzc1xuICAgIDogZW50ZXJUb0NsYXNzO1xuXG4gIHZhciBiZWZvcmVFbnRlckhvb2sgPSBpc0FwcGVhclxuICAgID8gKGJlZm9yZUFwcGVhciB8fCBiZWZvcmVFbnRlcilcbiAgICA6IGJlZm9yZUVudGVyO1xuICB2YXIgZW50ZXJIb29rID0gaXNBcHBlYXJcbiAgICA/ICh0eXBlb2YgYXBwZWFyID09PSAnZnVuY3Rpb24nID8gYXBwZWFyIDogZW50ZXIpXG4gICAgOiBlbnRlcjtcbiAgdmFyIGFmdGVyRW50ZXJIb29rID0gaXNBcHBlYXJcbiAgICA/IChhZnRlckFwcGVhciB8fCBhZnRlckVudGVyKVxuICAgIDogYWZ0ZXJFbnRlcjtcbiAgdmFyIGVudGVyQ2FuY2VsbGVkSG9vayA9IGlzQXBwZWFyXG4gICAgPyAoYXBwZWFyQ2FuY2VsbGVkIHx8IGVudGVyQ2FuY2VsbGVkKVxuICAgIDogZW50ZXJDYW5jZWxsZWQ7XG5cbiAgdmFyIGV4cGxpY2l0RW50ZXJEdXJhdGlvbiA9IHRvTnVtYmVyKFxuICAgIGlzT2JqZWN0KGR1cmF0aW9uKVxuICAgICAgPyBkdXJhdGlvbi5lbnRlclxuICAgICAgOiBkdXJhdGlvblxuICApO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGV4cGxpY2l0RW50ZXJEdXJhdGlvbiAhPSBudWxsKSB7XG4gICAgY2hlY2tEdXJhdGlvbihleHBsaWNpdEVudGVyRHVyYXRpb24sICdlbnRlcicsIHZub2RlKTtcbiAgfVxuXG4gIHZhciBleHBlY3RzQ1NTID0gY3NzICE9PSBmYWxzZSAmJiAhaXNJRTk7XG4gIHZhciB1c2VyV2FudHNDb250cm9sID0gZ2V0SG9va0FyZ3VtZW50c0xlbmd0aChlbnRlckhvb2spO1xuXG4gIHZhciBjYiA9IGVsLl9lbnRlckNiID0gb25jZShmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGV4cGVjdHNDU1MpIHtcbiAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgdG9DbGFzcyk7XG4gICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoZWwsIGFjdGl2ZUNsYXNzKTtcbiAgICB9XG4gICAgaWYgKGNiLmNhbmNlbGxlZCkge1xuICAgICAgaWYgKGV4cGVjdHNDU1MpIHtcbiAgICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBzdGFydENsYXNzKTtcbiAgICAgIH1cbiAgICAgIGVudGVyQ2FuY2VsbGVkSG9vayAmJiBlbnRlckNhbmNlbGxlZEhvb2soZWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhZnRlckVudGVySG9vayAmJiBhZnRlckVudGVySG9vayhlbCk7XG4gICAgfVxuICAgIGVsLl9lbnRlckNiID0gbnVsbDtcbiAgfSk7XG5cbiAgaWYgKCF2bm9kZS5kYXRhLnNob3cpIHtcbiAgICAvLyByZW1vdmUgcGVuZGluZyBsZWF2ZSBlbGVtZW50IG9uIGVudGVyIGJ5IGluamVjdGluZyBhbiBpbnNlcnQgaG9va1xuICAgIG1lcmdlVk5vZGVIb29rKHZub2RlLCAnaW5zZXJ0JywgZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIHBhcmVudCA9IGVsLnBhcmVudE5vZGU7XG4gICAgICB2YXIgcGVuZGluZ05vZGUgPSBwYXJlbnQgJiYgcGFyZW50Ll9wZW5kaW5nICYmIHBhcmVudC5fcGVuZGluZ1t2bm9kZS5rZXldO1xuICAgICAgaWYgKHBlbmRpbmdOb2RlICYmXG4gICAgICAgIHBlbmRpbmdOb2RlLnRhZyA9PT0gdm5vZGUudGFnICYmXG4gICAgICAgIHBlbmRpbmdOb2RlLmVsbS5fbGVhdmVDYlxuICAgICAgKSB7XG4gICAgICAgIHBlbmRpbmdOb2RlLmVsbS5fbGVhdmVDYigpO1xuICAgICAgfVxuICAgICAgZW50ZXJIb29rICYmIGVudGVySG9vayhlbCwgY2IpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gc3RhcnQgZW50ZXIgdHJhbnNpdGlvblxuICBiZWZvcmVFbnRlckhvb2sgJiYgYmVmb3JlRW50ZXJIb29rKGVsKTtcbiAgaWYgKGV4cGVjdHNDU1MpIHtcbiAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWwsIHN0YXJ0Q2xhc3MpO1xuICAgIGFkZFRyYW5zaXRpb25DbGFzcyhlbCwgYWN0aXZlQ2xhc3MpO1xuICAgIG5leHRGcmFtZShmdW5jdGlvbiAoKSB7XG4gICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoZWwsIHN0YXJ0Q2xhc3MpO1xuICAgICAgaWYgKCFjYi5jYW5jZWxsZWQpIHtcbiAgICAgICAgYWRkVHJhbnNpdGlvbkNsYXNzKGVsLCB0b0NsYXNzKTtcbiAgICAgICAgaWYgKCF1c2VyV2FudHNDb250cm9sKSB7XG4gICAgICAgICAgaWYgKGlzVmFsaWREdXJhdGlvbihleHBsaWNpdEVudGVyRHVyYXRpb24pKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGNiLCBleHBsaWNpdEVudGVyRHVyYXRpb24pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB3aGVuVHJhbnNpdGlvbkVuZHMoZWwsIHR5cGUsIGNiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGlmICh2bm9kZS5kYXRhLnNob3cpIHtcbiAgICB0b2dnbGVEaXNwbGF5ICYmIHRvZ2dsZURpc3BsYXkoKTtcbiAgICBlbnRlckhvb2sgJiYgZW50ZXJIb29rKGVsLCBjYik7XG4gIH1cblxuICBpZiAoIWV4cGVjdHNDU1MgJiYgIXVzZXJXYW50c0NvbnRyb2wpIHtcbiAgICBjYigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGxlYXZlICh2bm9kZSwgcm0pIHtcbiAgdmFyIGVsID0gdm5vZGUuZWxtO1xuXG4gIC8vIGNhbGwgZW50ZXIgY2FsbGJhY2sgbm93XG4gIGlmIChpc0RlZihlbC5fZW50ZXJDYikpIHtcbiAgICBlbC5fZW50ZXJDYi5jYW5jZWxsZWQgPSB0cnVlO1xuICAgIGVsLl9lbnRlckNiKCk7XG4gIH1cblxuICB2YXIgZGF0YSA9IHJlc29sdmVUcmFuc2l0aW9uKHZub2RlLmRhdGEudHJhbnNpdGlvbik7XG4gIGlmIChpc1VuZGVmKGRhdGEpIHx8IGVsLm5vZGVUeXBlICE9PSAxKSB7XG4gICAgcmV0dXJuIHJtKClcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoaXNEZWYoZWwuX2xlYXZlQ2IpKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICB2YXIgY3NzID0gZGF0YS5jc3M7XG4gIHZhciB0eXBlID0gZGF0YS50eXBlO1xuICB2YXIgbGVhdmVDbGFzcyA9IGRhdGEubGVhdmVDbGFzcztcbiAgdmFyIGxlYXZlVG9DbGFzcyA9IGRhdGEubGVhdmVUb0NsYXNzO1xuICB2YXIgbGVhdmVBY3RpdmVDbGFzcyA9IGRhdGEubGVhdmVBY3RpdmVDbGFzcztcbiAgdmFyIGJlZm9yZUxlYXZlID0gZGF0YS5iZWZvcmVMZWF2ZTtcbiAgdmFyIGxlYXZlID0gZGF0YS5sZWF2ZTtcbiAgdmFyIGFmdGVyTGVhdmUgPSBkYXRhLmFmdGVyTGVhdmU7XG4gIHZhciBsZWF2ZUNhbmNlbGxlZCA9IGRhdGEubGVhdmVDYW5jZWxsZWQ7XG4gIHZhciBkZWxheUxlYXZlID0gZGF0YS5kZWxheUxlYXZlO1xuICB2YXIgZHVyYXRpb24gPSBkYXRhLmR1cmF0aW9uO1xuXG4gIHZhciBleHBlY3RzQ1NTID0gY3NzICE9PSBmYWxzZSAmJiAhaXNJRTk7XG4gIHZhciB1c2VyV2FudHNDb250cm9sID0gZ2V0SG9va0FyZ3VtZW50c0xlbmd0aChsZWF2ZSk7XG5cbiAgdmFyIGV4cGxpY2l0TGVhdmVEdXJhdGlvbiA9IHRvTnVtYmVyKFxuICAgIGlzT2JqZWN0KGR1cmF0aW9uKVxuICAgICAgPyBkdXJhdGlvbi5sZWF2ZVxuICAgICAgOiBkdXJhdGlvblxuICApO1xuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGlzRGVmKGV4cGxpY2l0TGVhdmVEdXJhdGlvbikpIHtcbiAgICBjaGVja0R1cmF0aW9uKGV4cGxpY2l0TGVhdmVEdXJhdGlvbiwgJ2xlYXZlJywgdm5vZGUpO1xuICB9XG5cbiAgdmFyIGNiID0gZWwuX2xlYXZlQ2IgPSBvbmNlKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoZWwucGFyZW50Tm9kZSAmJiBlbC5wYXJlbnROb2RlLl9wZW5kaW5nKSB7XG4gICAgICBlbC5wYXJlbnROb2RlLl9wZW5kaW5nW3Zub2RlLmtleV0gPSBudWxsO1xuICAgIH1cbiAgICBpZiAoZXhwZWN0c0NTUykge1xuICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZVRvQ2xhc3MpO1xuICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZUFjdGl2ZUNsYXNzKTtcbiAgICB9XG4gICAgaWYgKGNiLmNhbmNlbGxlZCkge1xuICAgICAgaWYgKGV4cGVjdHNDU1MpIHtcbiAgICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZUNsYXNzKTtcbiAgICAgIH1cbiAgICAgIGxlYXZlQ2FuY2VsbGVkICYmIGxlYXZlQ2FuY2VsbGVkKGVsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm0oKTtcbiAgICAgIGFmdGVyTGVhdmUgJiYgYWZ0ZXJMZWF2ZShlbCk7XG4gICAgfVxuICAgIGVsLl9sZWF2ZUNiID0gbnVsbDtcbiAgfSk7XG5cbiAgaWYgKGRlbGF5TGVhdmUpIHtcbiAgICBkZWxheUxlYXZlKHBlcmZvcm1MZWF2ZSk7XG4gIH0gZWxzZSB7XG4gICAgcGVyZm9ybUxlYXZlKCk7XG4gIH1cblxuICBmdW5jdGlvbiBwZXJmb3JtTGVhdmUgKCkge1xuICAgIC8vIHRoZSBkZWxheWVkIGxlYXZlIG1heSBoYXZlIGFscmVhZHkgYmVlbiBjYW5jZWxsZWRcbiAgICBpZiAoY2IuY2FuY2VsbGVkKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgLy8gcmVjb3JkIGxlYXZpbmcgZWxlbWVudFxuICAgIGlmICghdm5vZGUuZGF0YS5zaG93ICYmIGVsLnBhcmVudE5vZGUpIHtcbiAgICAgIChlbC5wYXJlbnROb2RlLl9wZW5kaW5nIHx8IChlbC5wYXJlbnROb2RlLl9wZW5kaW5nID0ge30pKVsodm5vZGUua2V5KV0gPSB2bm9kZTtcbiAgICB9XG4gICAgYmVmb3JlTGVhdmUgJiYgYmVmb3JlTGVhdmUoZWwpO1xuICAgIGlmIChleHBlY3RzQ1NTKSB7XG4gICAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWwsIGxlYXZlQ2xhc3MpO1xuICAgICAgYWRkVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZUFjdGl2ZUNsYXNzKTtcbiAgICAgIG5leHRGcmFtZShmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgbGVhdmVDbGFzcyk7XG4gICAgICAgIGlmICghY2IuY2FuY2VsbGVkKSB7XG4gICAgICAgICAgYWRkVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZVRvQ2xhc3MpO1xuICAgICAgICAgIGlmICghdXNlcldhbnRzQ29udHJvbCkge1xuICAgICAgICAgICAgaWYgKGlzVmFsaWREdXJhdGlvbihleHBsaWNpdExlYXZlRHVyYXRpb24pKSB7XG4gICAgICAgICAgICAgIHNldFRpbWVvdXQoY2IsIGV4cGxpY2l0TGVhdmVEdXJhdGlvbik7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB3aGVuVHJhbnNpdGlvbkVuZHMoZWwsIHR5cGUsIGNiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBsZWF2ZSAmJiBsZWF2ZShlbCwgY2IpO1xuICAgIGlmICghZXhwZWN0c0NTUyAmJiAhdXNlcldhbnRzQ29udHJvbCkge1xuICAgICAgY2IoKTtcbiAgICB9XG4gIH1cbn1cblxuLy8gb25seSB1c2VkIGluIGRldiBtb2RlXG5mdW5jdGlvbiBjaGVja0R1cmF0aW9uICh2YWwsIG5hbWUsIHZub2RlKSB7XG4gIGlmICh0eXBlb2YgdmFsICE9PSAnbnVtYmVyJykge1xuICAgIHdhcm4oXG4gICAgICBcIjx0cmFuc2l0aW9uPiBleHBsaWNpdCBcIiArIG5hbWUgKyBcIiBkdXJhdGlvbiBpcyBub3QgYSB2YWxpZCBudW1iZXIgLSBcIiArXG4gICAgICBcImdvdCBcIiArIChKU09OLnN0cmluZ2lmeSh2YWwpKSArIFwiLlwiLFxuICAgICAgdm5vZGUuY29udGV4dFxuICAgICk7XG4gIH0gZWxzZSBpZiAoaXNOYU4odmFsKSkge1xuICAgIHdhcm4oXG4gICAgICBcIjx0cmFuc2l0aW9uPiBleHBsaWNpdCBcIiArIG5hbWUgKyBcIiBkdXJhdGlvbiBpcyBOYU4gLSBcIiArXG4gICAgICAndGhlIGR1cmF0aW9uIGV4cHJlc3Npb24gbWlnaHQgYmUgaW5jb3JyZWN0LicsXG4gICAgICB2bm9kZS5jb250ZXh0XG4gICAgKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1ZhbGlkRHVyYXRpb24gKHZhbCkge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHZhbClcbn1cblxuLyoqXG4gKiBOb3JtYWxpemUgYSB0cmFuc2l0aW9uIGhvb2sncyBhcmd1bWVudCBsZW5ndGguIFRoZSBob29rIG1heSBiZTpcbiAqIC0gYSBtZXJnZWQgaG9vayAoaW52b2tlcikgd2l0aCB0aGUgb3JpZ2luYWwgaW4gLmZuc1xuICogLSBhIHdyYXBwZWQgY29tcG9uZW50IG1ldGhvZCAoY2hlY2sgLl9sZW5ndGgpXG4gKiAtIGEgcGxhaW4gZnVuY3Rpb24gKC5sZW5ndGgpXG4gKi9cbmZ1bmN0aW9uIGdldEhvb2tBcmd1bWVudHNMZW5ndGggKGZuKSB7XG4gIGlmIChpc1VuZGVmKGZuKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIHZhciBpbnZva2VyRm5zID0gZm4uZm5zO1xuICBpZiAoaXNEZWYoaW52b2tlckZucykpIHtcbiAgICAvLyBpbnZva2VyXG4gICAgcmV0dXJuIGdldEhvb2tBcmd1bWVudHNMZW5ndGgoXG4gICAgICBBcnJheS5pc0FycmF5KGludm9rZXJGbnMpXG4gICAgICAgID8gaW52b2tlckZuc1swXVxuICAgICAgICA6IGludm9rZXJGbnNcbiAgICApXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIChmbi5fbGVuZ3RoIHx8IGZuLmxlbmd0aCkgPiAxXG4gIH1cbn1cblxuZnVuY3Rpb24gX2VudGVyIChfLCB2bm9kZSkge1xuICBpZiAodm5vZGUuZGF0YS5zaG93ICE9PSB0cnVlKSB7XG4gICAgZW50ZXIodm5vZGUpO1xuICB9XG59XG5cbnZhciB0cmFuc2l0aW9uID0gaW5Ccm93c2VyID8ge1xuICBjcmVhdGU6IF9lbnRlcixcbiAgYWN0aXZhdGU6IF9lbnRlcixcbiAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUkJDEgKHZub2RlLCBybSkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHZub2RlLmRhdGEuc2hvdyAhPT0gdHJ1ZSkge1xuICAgICAgbGVhdmUodm5vZGUsIHJtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm0oKTtcbiAgICB9XG4gIH1cbn0gOiB7fTtcblxudmFyIHBsYXRmb3JtTW9kdWxlcyA9IFtcbiAgYXR0cnMsXG4gIGtsYXNzLFxuICBldmVudHMsXG4gIGRvbVByb3BzLFxuICBzdHlsZSxcbiAgdHJhbnNpdGlvblxuXTtcblxuLyogICovXG5cbi8vIHRoZSBkaXJlY3RpdmUgbW9kdWxlIHNob3VsZCBiZSBhcHBsaWVkIGxhc3QsIGFmdGVyIGFsbFxuLy8gYnVpbHQtaW4gbW9kdWxlcyBoYXZlIGJlZW4gYXBwbGllZC5cbnZhciBtb2R1bGVzID0gcGxhdGZvcm1Nb2R1bGVzLmNvbmNhdChiYXNlTW9kdWxlcyk7XG5cbnZhciBwYXRjaCA9IGNyZWF0ZVBhdGNoRnVuY3Rpb24oeyBub2RlT3BzOiBub2RlT3BzLCBtb2R1bGVzOiBtb2R1bGVzIH0pO1xuXG4vKipcbiAqIE5vdCB0eXBlIGNoZWNraW5nIHRoaXMgZmlsZSBiZWNhdXNlIGZsb3cgZG9lc24ndCBsaWtlIGF0dGFjaGluZ1xuICogcHJvcGVydGllcyB0byBFbGVtZW50cy5cbiAqL1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbmlmIChpc0lFOSkge1xuICAvLyBodHRwOi8vd3d3Lm1hdHRzNDExLmNvbS9wb3N0L2ludGVybmV0LWV4cGxvcmVyLTktb25pbnB1dC9cbiAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0aW9uY2hhbmdlJywgZnVuY3Rpb24gKCkge1xuICAgIHZhciBlbCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKGVsICYmIGVsLnZtb2RlbCkge1xuICAgICAgdHJpZ2dlcihlbCwgJ2lucHV0Jyk7XG4gICAgfVxuICB9KTtcbn1cblxudmFyIGRpcmVjdGl2ZSA9IHtcbiAgaW5zZXJ0ZWQ6IGZ1bmN0aW9uIGluc2VydGVkIChlbCwgYmluZGluZywgdm5vZGUsIG9sZFZub2RlKSB7XG4gICAgaWYgKHZub2RlLnRhZyA9PT0gJ3NlbGVjdCcpIHtcbiAgICAgIC8vICM2OTAzXG4gICAgICBpZiAob2xkVm5vZGUuZWxtICYmICFvbGRWbm9kZS5lbG0uX3ZPcHRpb25zKSB7XG4gICAgICAgIG1lcmdlVk5vZGVIb29rKHZub2RlLCAncG9zdHBhdGNoJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGRpcmVjdGl2ZS5jb21wb25lbnRVcGRhdGVkKGVsLCBiaW5kaW5nLCB2bm9kZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0U2VsZWN0ZWQoZWwsIGJpbmRpbmcsIHZub2RlLmNvbnRleHQpO1xuICAgICAgfVxuICAgICAgZWwuX3ZPcHRpb25zID0gW10ubWFwLmNhbGwoZWwub3B0aW9ucywgZ2V0VmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodm5vZGUudGFnID09PSAndGV4dGFyZWEnIHx8IGlzVGV4dElucHV0VHlwZShlbC50eXBlKSkge1xuICAgICAgZWwuX3ZNb2RpZmllcnMgPSBiaW5kaW5nLm1vZGlmaWVycztcbiAgICAgIGlmICghYmluZGluZy5tb2RpZmllcnMubGF6eSkge1xuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdjb21wb3NpdGlvbnN0YXJ0Jywgb25Db21wb3NpdGlvblN0YXJ0KTtcbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignY29tcG9zaXRpb25lbmQnLCBvbkNvbXBvc2l0aW9uRW5kKTtcbiAgICAgICAgLy8gU2FmYXJpIDwgMTAuMiAmIFVJV2ViVmlldyBkb2Vzbid0IGZpcmUgY29tcG9zaXRpb25lbmQgd2hlblxuICAgICAgICAvLyBzd2l0Y2hpbmcgZm9jdXMgYmVmb3JlIGNvbmZpcm1pbmcgY29tcG9zaXRpb24gY2hvaWNlXG4gICAgICAgIC8vIHRoaXMgYWxzbyBmaXhlcyB0aGUgaXNzdWUgd2hlcmUgc29tZSBicm93c2VycyBlLmcuIGlPUyBDaHJvbWVcbiAgICAgICAgLy8gZmlyZXMgXCJjaGFuZ2VcIiBpbnN0ZWFkIG9mIFwiaW5wdXRcIiBvbiBhdXRvY29tcGxldGUuXG4gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIG9uQ29tcG9zaXRpb25FbmQpO1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgICAgaWYgKGlzSUU5KSB7XG4gICAgICAgICAgZWwudm1vZGVsID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBjb21wb25lbnRVcGRhdGVkOiBmdW5jdGlvbiBjb21wb25lbnRVcGRhdGVkIChlbCwgYmluZGluZywgdm5vZGUpIHtcbiAgICBpZiAodm5vZGUudGFnID09PSAnc2VsZWN0Jykge1xuICAgICAgc2V0U2VsZWN0ZWQoZWwsIGJpbmRpbmcsIHZub2RlLmNvbnRleHQpO1xuICAgICAgLy8gaW4gY2FzZSB0aGUgb3B0aW9ucyByZW5kZXJlZCBieSB2LWZvciBoYXZlIGNoYW5nZWQsXG4gICAgICAvLyBpdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHZhbHVlIGlzIG91dC1vZi1zeW5jIHdpdGggdGhlIHJlbmRlcmVkIG9wdGlvbnMuXG4gICAgICAvLyBkZXRlY3Qgc3VjaCBjYXNlcyBhbmQgZmlsdGVyIG91dCB2YWx1ZXMgdGhhdCBubyBsb25nZXIgaGFzIGEgbWF0Y2hpbmdcbiAgICAgIC8vIG9wdGlvbiBpbiB0aGUgRE9NLlxuICAgICAgdmFyIHByZXZPcHRpb25zID0gZWwuX3ZPcHRpb25zO1xuICAgICAgdmFyIGN1ck9wdGlvbnMgPSBlbC5fdk9wdGlvbnMgPSBbXS5tYXAuY2FsbChlbC5vcHRpb25zLCBnZXRWYWx1ZSk7XG4gICAgICBpZiAoY3VyT3B0aW9ucy5zb21lKGZ1bmN0aW9uIChvLCBpKSB7IHJldHVybiAhbG9vc2VFcXVhbChvLCBwcmV2T3B0aW9uc1tpXSk7IH0pKSB7XG4gICAgICAgIC8vIHRyaWdnZXIgY2hhbmdlIGV2ZW50IGlmXG4gICAgICAgIC8vIG5vIG1hdGNoaW5nIG9wdGlvbiBmb3VuZCBmb3IgYXQgbGVhc3Qgb25lIHZhbHVlXG4gICAgICAgIHZhciBuZWVkUmVzZXQgPSBlbC5tdWx0aXBsZVxuICAgICAgICAgID8gYmluZGluZy52YWx1ZS5zb21lKGZ1bmN0aW9uICh2KSB7IHJldHVybiBoYXNOb01hdGNoaW5nT3B0aW9uKHYsIGN1ck9wdGlvbnMpOyB9KVxuICAgICAgICAgIDogYmluZGluZy52YWx1ZSAhPT0gYmluZGluZy5vbGRWYWx1ZSAmJiBoYXNOb01hdGNoaW5nT3B0aW9uKGJpbmRpbmcudmFsdWUsIGN1ck9wdGlvbnMpO1xuICAgICAgICBpZiAobmVlZFJlc2V0KSB7XG4gICAgICAgICAgdHJpZ2dlcihlbCwgJ2NoYW5nZScpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5mdW5jdGlvbiBzZXRTZWxlY3RlZCAoZWwsIGJpbmRpbmcsIHZtKSB7XG4gIGFjdHVhbGx5U2V0U2VsZWN0ZWQoZWwsIGJpbmRpbmcsIHZtKTtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChpc0lFIHx8IGlzRWRnZSkge1xuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgYWN0dWFsbHlTZXRTZWxlY3RlZChlbCwgYmluZGluZywgdm0pO1xuICAgIH0sIDApO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFjdHVhbGx5U2V0U2VsZWN0ZWQgKGVsLCBiaW5kaW5nLCB2bSkge1xuICB2YXIgdmFsdWUgPSBiaW5kaW5nLnZhbHVlO1xuICB2YXIgaXNNdWx0aXBsZSA9IGVsLm11bHRpcGxlO1xuICBpZiAoaXNNdWx0aXBsZSAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICBcIjxzZWxlY3QgbXVsdGlwbGUgdi1tb2RlbD1cXFwiXCIgKyAoYmluZGluZy5leHByZXNzaW9uKSArIFwiXFxcIj4gXCIgK1xuICAgICAgXCJleHBlY3RzIGFuIEFycmF5IHZhbHVlIGZvciBpdHMgYmluZGluZywgYnV0IGdvdCBcIiArIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpLnNsaWNlKDgsIC0xKSksXG4gICAgICB2bVxuICAgICk7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIHNlbGVjdGVkLCBvcHRpb247XG4gIGZvciAodmFyIGkgPSAwLCBsID0gZWwub3B0aW9ucy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBvcHRpb24gPSBlbC5vcHRpb25zW2ldO1xuICAgIGlmIChpc011bHRpcGxlKSB7XG4gICAgICBzZWxlY3RlZCA9IGxvb3NlSW5kZXhPZih2YWx1ZSwgZ2V0VmFsdWUob3B0aW9uKSkgPiAtMTtcbiAgICAgIGlmIChvcHRpb24uc2VsZWN0ZWQgIT09IHNlbGVjdGVkKSB7XG4gICAgICAgIG9wdGlvbi5zZWxlY3RlZCA9IHNlbGVjdGVkO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobG9vc2VFcXVhbChnZXRWYWx1ZShvcHRpb24pLCB2YWx1ZSkpIHtcbiAgICAgICAgaWYgKGVsLnNlbGVjdGVkSW5kZXggIT09IGkpIHtcbiAgICAgICAgICBlbC5zZWxlY3RlZEluZGV4ID0gaTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgaWYgKCFpc011bHRpcGxlKSB7XG4gICAgZWwuc2VsZWN0ZWRJbmRleCA9IC0xO1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhc05vTWF0Y2hpbmdPcHRpb24gKHZhbHVlLCBvcHRpb25zKSB7XG4gIHJldHVybiBvcHRpb25zLmV2ZXJ5KGZ1bmN0aW9uIChvKSB7IHJldHVybiAhbG9vc2VFcXVhbChvLCB2YWx1ZSk7IH0pXG59XG5cbmZ1bmN0aW9uIGdldFZhbHVlIChvcHRpb24pIHtcbiAgcmV0dXJuICdfdmFsdWUnIGluIG9wdGlvblxuICAgID8gb3B0aW9uLl92YWx1ZVxuICAgIDogb3B0aW9uLnZhbHVlXG59XG5cbmZ1bmN0aW9uIG9uQ29tcG9zaXRpb25TdGFydCAoZSkge1xuICBlLnRhcmdldC5jb21wb3NpbmcgPSB0cnVlO1xufVxuXG5mdW5jdGlvbiBvbkNvbXBvc2l0aW9uRW5kIChlKSB7XG4gIC8vIHByZXZlbnQgdHJpZ2dlcmluZyBhbiBpbnB1dCBldmVudCBmb3Igbm8gcmVhc29uXG4gIGlmICghZS50YXJnZXQuY29tcG9zaW5nKSB7IHJldHVybiB9XG4gIGUudGFyZ2V0LmNvbXBvc2luZyA9IGZhbHNlO1xuICB0cmlnZ2VyKGUudGFyZ2V0LCAnaW5wdXQnKTtcbn1cblxuZnVuY3Rpb24gdHJpZ2dlciAoZWwsIHR5cGUpIHtcbiAgdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnSFRNTEV2ZW50cycpO1xuICBlLmluaXRFdmVudCh0eXBlLCB0cnVlLCB0cnVlKTtcbiAgZWwuZGlzcGF0Y2hFdmVudChlKTtcbn1cblxuLyogICovXG5cbi8vIHJlY3Vyc2l2ZWx5IHNlYXJjaCBmb3IgcG9zc2libGUgdHJhbnNpdGlvbiBkZWZpbmVkIGluc2lkZSB0aGUgY29tcG9uZW50IHJvb3RcbmZ1bmN0aW9uIGxvY2F0ZU5vZGUgKHZub2RlKSB7XG4gIHJldHVybiB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSAmJiAoIXZub2RlLmRhdGEgfHwgIXZub2RlLmRhdGEudHJhbnNpdGlvbilcbiAgICA/IGxvY2F0ZU5vZGUodm5vZGUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlKVxuICAgIDogdm5vZGVcbn1cblxudmFyIHNob3cgPSB7XG4gIGJpbmQ6IGZ1bmN0aW9uIGJpbmQgKGVsLCByZWYsIHZub2RlKSB7XG4gICAgdmFyIHZhbHVlID0gcmVmLnZhbHVlO1xuXG4gICAgdm5vZGUgPSBsb2NhdGVOb2RlKHZub2RlKTtcbiAgICB2YXIgdHJhbnNpdGlvbiQkMSA9IHZub2RlLmRhdGEgJiYgdm5vZGUuZGF0YS50cmFuc2l0aW9uO1xuICAgIHZhciBvcmlnaW5hbERpc3BsYXkgPSBlbC5fX3ZPcmlnaW5hbERpc3BsYXkgPVxuICAgICAgZWwuc3R5bGUuZGlzcGxheSA9PT0gJ25vbmUnID8gJycgOiBlbC5zdHlsZS5kaXNwbGF5O1xuICAgIGlmICh2YWx1ZSAmJiB0cmFuc2l0aW9uJCQxKSB7XG4gICAgICB2bm9kZS5kYXRhLnNob3cgPSB0cnVlO1xuICAgICAgZW50ZXIodm5vZGUsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZWwuc3R5bGUuZGlzcGxheSA9IG9yaWdpbmFsRGlzcGxheTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gdmFsdWUgPyBvcmlnaW5hbERpc3BsYXkgOiAnbm9uZSc7XG4gICAgfVxuICB9LFxuXG4gIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlIChlbCwgcmVmLCB2bm9kZSkge1xuICAgIHZhciB2YWx1ZSA9IHJlZi52YWx1ZTtcbiAgICB2YXIgb2xkVmFsdWUgPSByZWYub2xkVmFsdWU7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIXZhbHVlID09PSAhb2xkVmFsdWUpIHsgcmV0dXJuIH1cbiAgICB2bm9kZSA9IGxvY2F0ZU5vZGUodm5vZGUpO1xuICAgIHZhciB0cmFuc2l0aW9uJCQxID0gdm5vZGUuZGF0YSAmJiB2bm9kZS5kYXRhLnRyYW5zaXRpb247XG4gICAgaWYgKHRyYW5zaXRpb24kJDEpIHtcbiAgICAgIHZub2RlLmRhdGEuc2hvdyA9IHRydWU7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgZW50ZXIodm5vZGUsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gZWwuX192T3JpZ2luYWxEaXNwbGF5O1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxlYXZlKHZub2RlLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgZWwuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsLnN0eWxlLmRpc3BsYXkgPSB2YWx1ZSA/IGVsLl9fdk9yaWdpbmFsRGlzcGxheSA6ICdub25lJztcbiAgICB9XG4gIH0sXG5cbiAgdW5iaW5kOiBmdW5jdGlvbiB1bmJpbmQgKFxuICAgIGVsLFxuICAgIGJpbmRpbmcsXG4gICAgdm5vZGUsXG4gICAgb2xkVm5vZGUsXG4gICAgaXNEZXN0cm95XG4gICkge1xuICAgIGlmICghaXNEZXN0cm95KSB7XG4gICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gZWwuX192T3JpZ2luYWxEaXNwbGF5O1xuICAgIH1cbiAgfVxufTtcblxudmFyIHBsYXRmb3JtRGlyZWN0aXZlcyA9IHtcbiAgbW9kZWw6IGRpcmVjdGl2ZSxcbiAgc2hvdzogc2hvd1xufTtcblxuLyogICovXG5cbnZhciB0cmFuc2l0aW9uUHJvcHMgPSB7XG4gIG5hbWU6IFN0cmluZyxcbiAgYXBwZWFyOiBCb29sZWFuLFxuICBjc3M6IEJvb2xlYW4sXG4gIG1vZGU6IFN0cmluZyxcbiAgdHlwZTogU3RyaW5nLFxuICBlbnRlckNsYXNzOiBTdHJpbmcsXG4gIGxlYXZlQ2xhc3M6IFN0cmluZyxcbiAgZW50ZXJUb0NsYXNzOiBTdHJpbmcsXG4gIGxlYXZlVG9DbGFzczogU3RyaW5nLFxuICBlbnRlckFjdGl2ZUNsYXNzOiBTdHJpbmcsXG4gIGxlYXZlQWN0aXZlQ2xhc3M6IFN0cmluZyxcbiAgYXBwZWFyQ2xhc3M6IFN0cmluZyxcbiAgYXBwZWFyQWN0aXZlQ2xhc3M6IFN0cmluZyxcbiAgYXBwZWFyVG9DbGFzczogU3RyaW5nLFxuICBkdXJhdGlvbjogW051bWJlciwgU3RyaW5nLCBPYmplY3RdXG59O1xuXG4vLyBpbiBjYXNlIHRoZSBjaGlsZCBpcyBhbHNvIGFuIGFic3RyYWN0IGNvbXBvbmVudCwgZS5nLiA8a2VlcC1hbGl2ZT5cbi8vIHdlIHdhbnQgdG8gcmVjdXJzaXZlbHkgcmV0cmlldmUgdGhlIHJlYWwgY29tcG9uZW50IHRvIGJlIHJlbmRlcmVkXG5mdW5jdGlvbiBnZXRSZWFsQ2hpbGQgKHZub2RlKSB7XG4gIHZhciBjb21wT3B0aW9ucyA9IHZub2RlICYmIHZub2RlLmNvbXBvbmVudE9wdGlvbnM7XG4gIGlmIChjb21wT3B0aW9ucyAmJiBjb21wT3B0aW9ucy5DdG9yLm9wdGlvbnMuYWJzdHJhY3QpIHtcbiAgICByZXR1cm4gZ2V0UmVhbENoaWxkKGdldEZpcnN0Q29tcG9uZW50Q2hpbGQoY29tcE9wdGlvbnMuY2hpbGRyZW4pKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB2bm9kZVxuICB9XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RUcmFuc2l0aW9uRGF0YSAoY29tcCkge1xuICB2YXIgZGF0YSA9IHt9O1xuICB2YXIgb3B0aW9ucyA9IGNvbXAuJG9wdGlvbnM7XG4gIC8vIHByb3BzXG4gIGZvciAodmFyIGtleSBpbiBvcHRpb25zLnByb3BzRGF0YSkge1xuICAgIGRhdGFba2V5XSA9IGNvbXBba2V5XTtcbiAgfVxuICAvLyBldmVudHMuXG4gIC8vIGV4dHJhY3QgbGlzdGVuZXJzIGFuZCBwYXNzIHRoZW0gZGlyZWN0bHkgdG8gdGhlIHRyYW5zaXRpb24gbWV0aG9kc1xuICB2YXIgbGlzdGVuZXJzID0gb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzO1xuICBmb3IgKHZhciBrZXkkMSBpbiBsaXN0ZW5lcnMpIHtcbiAgICBkYXRhW2NhbWVsaXplKGtleSQxKV0gPSBsaXN0ZW5lcnNba2V5JDFdO1xuICB9XG4gIHJldHVybiBkYXRhXG59XG5cbmZ1bmN0aW9uIHBsYWNlaG9sZGVyIChoLCByYXdDaGlsZCkge1xuICBpZiAoL1xcZC1rZWVwLWFsaXZlJC8udGVzdChyYXdDaGlsZC50YWcpKSB7XG4gICAgcmV0dXJuIGgoJ2tlZXAtYWxpdmUnLCB7XG4gICAgICBwcm9wczogcmF3Q2hpbGQuY29tcG9uZW50T3B0aW9ucy5wcm9wc0RhdGFcbiAgICB9KVxuICB9XG59XG5cbmZ1bmN0aW9uIGhhc1BhcmVudFRyYW5zaXRpb24gKHZub2RlKSB7XG4gIHdoaWxlICgodm5vZGUgPSB2bm9kZS5wYXJlbnQpKSB7XG4gICAgaWYgKHZub2RlLmRhdGEudHJhbnNpdGlvbikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNTYW1lQ2hpbGQgKGNoaWxkLCBvbGRDaGlsZCkge1xuICByZXR1cm4gb2xkQ2hpbGQua2V5ID09PSBjaGlsZC5rZXkgJiYgb2xkQ2hpbGQudGFnID09PSBjaGlsZC50YWdcbn1cblxudmFyIGlzTm90VGV4dE5vZGUgPSBmdW5jdGlvbiAoYykgeyByZXR1cm4gYy50YWcgfHwgaXNBc3luY1BsYWNlaG9sZGVyKGMpOyB9O1xuXG52YXIgaXNWU2hvd0RpcmVjdGl2ZSA9IGZ1bmN0aW9uIChkKSB7IHJldHVybiBkLm5hbWUgPT09ICdzaG93JzsgfTtcblxudmFyIFRyYW5zaXRpb24gPSB7XG4gIG5hbWU6ICd0cmFuc2l0aW9uJyxcbiAgcHJvcHM6IHRyYW5zaXRpb25Qcm9wcyxcbiAgYWJzdHJhY3Q6IHRydWUsXG5cbiAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIgKGgpIHtcbiAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuICAgIHZhciBjaGlsZHJlbiA9IHRoaXMuJHNsb3RzLmRlZmF1bHQ7XG4gICAgaWYgKCFjaGlsZHJlbikge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gZmlsdGVyIG91dCB0ZXh0IG5vZGVzIChwb3NzaWJsZSB3aGl0ZXNwYWNlcylcbiAgICBjaGlsZHJlbiA9IGNoaWxkcmVuLmZpbHRlcihpc05vdFRleHROb2RlKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIWNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gd2FybiBtdWx0aXBsZSBlbGVtZW50c1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGNoaWxkcmVuLmxlbmd0aCA+IDEpIHtcbiAgICAgIHdhcm4oXG4gICAgICAgICc8dHJhbnNpdGlvbj4gY2FuIG9ubHkgYmUgdXNlZCBvbiBhIHNpbmdsZSBlbGVtZW50LiBVc2UgJyArXG4gICAgICAgICc8dHJhbnNpdGlvbi1ncm91cD4gZm9yIGxpc3RzLicsXG4gICAgICAgIHRoaXMuJHBhcmVudFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB2YXIgbW9kZSA9IHRoaXMubW9kZTtcblxuICAgIC8vIHdhcm4gaW52YWxpZCBtb2RlXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAgIG1vZGUgJiYgbW9kZSAhPT0gJ2luLW91dCcgJiYgbW9kZSAhPT0gJ291dC1pbidcbiAgICApIHtcbiAgICAgIHdhcm4oXG4gICAgICAgICdpbnZhbGlkIDx0cmFuc2l0aW9uPiBtb2RlOiAnICsgbW9kZSxcbiAgICAgICAgdGhpcy4kcGFyZW50XG4gICAgICApO1xuICAgIH1cblxuICAgIHZhciByYXdDaGlsZCA9IGNoaWxkcmVuWzBdO1xuXG4gICAgLy8gaWYgdGhpcyBpcyBhIGNvbXBvbmVudCByb290IG5vZGUgYW5kIHRoZSBjb21wb25lbnQnc1xuICAgIC8vIHBhcmVudCBjb250YWluZXIgbm9kZSBhbHNvIGhhcyB0cmFuc2l0aW9uLCBza2lwLlxuICAgIGlmIChoYXNQYXJlbnRUcmFuc2l0aW9uKHRoaXMuJHZub2RlKSkge1xuICAgICAgcmV0dXJuIHJhd0NoaWxkXG4gICAgfVxuXG4gICAgLy8gYXBwbHkgdHJhbnNpdGlvbiBkYXRhIHRvIGNoaWxkXG4gICAgLy8gdXNlIGdldFJlYWxDaGlsZCgpIHRvIGlnbm9yZSBhYnN0cmFjdCBjb21wb25lbnRzIGUuZy4ga2VlcC1hbGl2ZVxuICAgIHZhciBjaGlsZCA9IGdldFJlYWxDaGlsZChyYXdDaGlsZCk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKCFjaGlsZCkge1xuICAgICAgcmV0dXJuIHJhd0NoaWxkXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2xlYXZpbmcpIHtcbiAgICAgIHJldHVybiBwbGFjZWhvbGRlcihoLCByYXdDaGlsZClcbiAgICB9XG5cbiAgICAvLyBlbnN1cmUgYSBrZXkgdGhhdCBpcyB1bmlxdWUgdG8gdGhlIHZub2RlIHR5cGUgYW5kIHRvIHRoaXMgdHJhbnNpdGlvblxuICAgIC8vIGNvbXBvbmVudCBpbnN0YW5jZS4gVGhpcyBrZXkgd2lsbCBiZSB1c2VkIHRvIHJlbW92ZSBwZW5kaW5nIGxlYXZpbmcgbm9kZXNcbiAgICAvLyBkdXJpbmcgZW50ZXJpbmcuXG4gICAgdmFyIGlkID0gXCJfX3RyYW5zaXRpb24tXCIgKyAodGhpcy5fdWlkKSArIFwiLVwiO1xuICAgIGNoaWxkLmtleSA9IGNoaWxkLmtleSA9PSBudWxsXG4gICAgICA/IGNoaWxkLmlzQ29tbWVudFxuICAgICAgICA/IGlkICsgJ2NvbW1lbnQnXG4gICAgICAgIDogaWQgKyBjaGlsZC50YWdcbiAgICAgIDogaXNQcmltaXRpdmUoY2hpbGQua2V5KVxuICAgICAgICA/IChTdHJpbmcoY2hpbGQua2V5KS5pbmRleE9mKGlkKSA9PT0gMCA/IGNoaWxkLmtleSA6IGlkICsgY2hpbGQua2V5KVxuICAgICAgICA6IGNoaWxkLmtleTtcblxuICAgIHZhciBkYXRhID0gKGNoaWxkLmRhdGEgfHwgKGNoaWxkLmRhdGEgPSB7fSkpLnRyYW5zaXRpb24gPSBleHRyYWN0VHJhbnNpdGlvbkRhdGEodGhpcyk7XG4gICAgdmFyIG9sZFJhd0NoaWxkID0gdGhpcy5fdm5vZGU7XG4gICAgdmFyIG9sZENoaWxkID0gZ2V0UmVhbENoaWxkKG9sZFJhd0NoaWxkKTtcblxuICAgIC8vIG1hcmsgdi1zaG93XG4gICAgLy8gc28gdGhhdCB0aGUgdHJhbnNpdGlvbiBtb2R1bGUgY2FuIGhhbmQgb3ZlciB0aGUgY29udHJvbCB0byB0aGUgZGlyZWN0aXZlXG4gICAgaWYgKGNoaWxkLmRhdGEuZGlyZWN0aXZlcyAmJiBjaGlsZC5kYXRhLmRpcmVjdGl2ZXMuc29tZShpc1ZTaG93RGlyZWN0aXZlKSkge1xuICAgICAgY2hpbGQuZGF0YS5zaG93ID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBvbGRDaGlsZCAmJlxuICAgICAgb2xkQ2hpbGQuZGF0YSAmJlxuICAgICAgIWlzU2FtZUNoaWxkKGNoaWxkLCBvbGRDaGlsZCkgJiZcbiAgICAgICFpc0FzeW5jUGxhY2Vob2xkZXIob2xkQ2hpbGQpICYmXG4gICAgICAvLyAjNjY4NyBjb21wb25lbnQgcm9vdCBpcyBhIGNvbW1lbnQgbm9kZVxuICAgICAgIShvbGRDaGlsZC5jb21wb25lbnRJbnN0YW5jZSAmJiBvbGRDaGlsZC5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUuaXNDb21tZW50KVxuICAgICkge1xuICAgICAgLy8gcmVwbGFjZSBvbGQgY2hpbGQgdHJhbnNpdGlvbiBkYXRhIHdpdGggZnJlc2ggb25lXG4gICAgICAvLyBpbXBvcnRhbnQgZm9yIGR5bmFtaWMgdHJhbnNpdGlvbnMhXG4gICAgICB2YXIgb2xkRGF0YSA9IG9sZENoaWxkLmRhdGEudHJhbnNpdGlvbiA9IGV4dGVuZCh7fSwgZGF0YSk7XG4gICAgICAvLyBoYW5kbGUgdHJhbnNpdGlvbiBtb2RlXG4gICAgICBpZiAobW9kZSA9PT0gJ291dC1pbicpIHtcbiAgICAgICAgLy8gcmV0dXJuIHBsYWNlaG9sZGVyIG5vZGUgYW5kIHF1ZXVlIHVwZGF0ZSB3aGVuIGxlYXZlIGZpbmlzaGVzXG4gICAgICAgIHRoaXMuX2xlYXZpbmcgPSB0cnVlO1xuICAgICAgICBtZXJnZVZOb2RlSG9vayhvbGREYXRhLCAnYWZ0ZXJMZWF2ZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB0aGlzJDEuX2xlYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzJDEuJGZvcmNlVXBkYXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcGxhY2Vob2xkZXIoaCwgcmF3Q2hpbGQpXG4gICAgICB9IGVsc2UgaWYgKG1vZGUgPT09ICdpbi1vdXQnKSB7XG4gICAgICAgIGlmIChpc0FzeW5jUGxhY2Vob2xkZXIoY2hpbGQpKSB7XG4gICAgICAgICAgcmV0dXJuIG9sZFJhd0NoaWxkXG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRlbGF5ZWRMZWF2ZTtcbiAgICAgICAgdmFyIHBlcmZvcm1MZWF2ZSA9IGZ1bmN0aW9uICgpIHsgZGVsYXllZExlYXZlKCk7IH07XG4gICAgICAgIG1lcmdlVk5vZGVIb29rKGRhdGEsICdhZnRlckVudGVyJywgcGVyZm9ybUxlYXZlKTtcbiAgICAgICAgbWVyZ2VWTm9kZUhvb2soZGF0YSwgJ2VudGVyQ2FuY2VsbGVkJywgcGVyZm9ybUxlYXZlKTtcbiAgICAgICAgbWVyZ2VWTm9kZUhvb2sob2xkRGF0YSwgJ2RlbGF5TGVhdmUnLCBmdW5jdGlvbiAobGVhdmUpIHsgZGVsYXllZExlYXZlID0gbGVhdmU7IH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByYXdDaGlsZFxuICB9XG59O1xuXG4vKiAgKi9cblxudmFyIHByb3BzID0gZXh0ZW5kKHtcbiAgdGFnOiBTdHJpbmcsXG4gIG1vdmVDbGFzczogU3RyaW5nXG59LCB0cmFuc2l0aW9uUHJvcHMpO1xuXG5kZWxldGUgcHJvcHMubW9kZTtcblxudmFyIFRyYW5zaXRpb25Hcm91cCA9IHtcbiAgcHJvcHM6IHByb3BzLFxuXG4gIGJlZm9yZU1vdW50OiBmdW5jdGlvbiBiZWZvcmVNb3VudCAoKSB7XG4gICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cbiAgICB2YXIgdXBkYXRlID0gdGhpcy5fdXBkYXRlO1xuICAgIHRoaXMuX3VwZGF0ZSA9IGZ1bmN0aW9uICh2bm9kZSwgaHlkcmF0aW5nKSB7XG4gICAgICB2YXIgcmVzdG9yZUFjdGl2ZUluc3RhbmNlID0gc2V0QWN0aXZlSW5zdGFuY2UodGhpcyQxKTtcbiAgICAgIC8vIGZvcmNlIHJlbW92aW5nIHBhc3NcbiAgICAgIHRoaXMkMS5fX3BhdGNoX18oXG4gICAgICAgIHRoaXMkMS5fdm5vZGUsXG4gICAgICAgIHRoaXMkMS5rZXB0LFxuICAgICAgICBmYWxzZSwgLy8gaHlkcmF0aW5nXG4gICAgICAgIHRydWUgLy8gcmVtb3ZlT25seSAoIWltcG9ydGFudCwgYXZvaWRzIHVubmVjZXNzYXJ5IG1vdmVzKVxuICAgICAgKTtcbiAgICAgIHRoaXMkMS5fdm5vZGUgPSB0aGlzJDEua2VwdDtcbiAgICAgIHJlc3RvcmVBY3RpdmVJbnN0YW5jZSgpO1xuICAgICAgdXBkYXRlLmNhbGwodGhpcyQxLCB2bm9kZSwgaHlkcmF0aW5nKTtcbiAgICB9O1xuICB9LFxuXG4gIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyIChoKSB7XG4gICAgdmFyIHRhZyA9IHRoaXMudGFnIHx8IHRoaXMuJHZub2RlLmRhdGEudGFnIHx8ICdzcGFuJztcbiAgICB2YXIgbWFwID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB2YXIgcHJldkNoaWxkcmVuID0gdGhpcy5wcmV2Q2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuO1xuICAgIHZhciByYXdDaGlsZHJlbiA9IHRoaXMuJHNsb3RzLmRlZmF1bHQgfHwgW107XG4gICAgdmFyIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbiA9IFtdO1xuICAgIHZhciB0cmFuc2l0aW9uRGF0YSA9IGV4dHJhY3RUcmFuc2l0aW9uRGF0YSh0aGlzKTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmF3Q2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBjID0gcmF3Q2hpbGRyZW5baV07XG4gICAgICBpZiAoYy50YWcpIHtcbiAgICAgICAgaWYgKGMua2V5ICE9IG51bGwgJiYgU3RyaW5nKGMua2V5KS5pbmRleE9mKCdfX3ZsaXN0JykgIT09IDApIHtcbiAgICAgICAgICBjaGlsZHJlbi5wdXNoKGMpO1xuICAgICAgICAgIG1hcFtjLmtleV0gPSBjXG4gICAgICAgICAgOyhjLmRhdGEgfHwgKGMuZGF0YSA9IHt9KSkudHJhbnNpdGlvbiA9IHRyYW5zaXRpb25EYXRhO1xuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICB2YXIgb3B0cyA9IGMuY29tcG9uZW50T3B0aW9ucztcbiAgICAgICAgICB2YXIgbmFtZSA9IG9wdHMgPyAob3B0cy5DdG9yLm9wdGlvbnMubmFtZSB8fCBvcHRzLnRhZyB8fCAnJykgOiBjLnRhZztcbiAgICAgICAgICB3YXJuKChcIjx0cmFuc2l0aW9uLWdyb3VwPiBjaGlsZHJlbiBtdXN0IGJlIGtleWVkOiA8XCIgKyBuYW1lICsgXCI+XCIpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwcmV2Q2hpbGRyZW4pIHtcbiAgICAgIHZhciBrZXB0ID0gW107XG4gICAgICB2YXIgcmVtb3ZlZCA9IFtdO1xuICAgICAgZm9yICh2YXIgaSQxID0gMDsgaSQxIDwgcHJldkNoaWxkcmVuLmxlbmd0aDsgaSQxKyspIHtcbiAgICAgICAgdmFyIGMkMSA9IHByZXZDaGlsZHJlbltpJDFdO1xuICAgICAgICBjJDEuZGF0YS50cmFuc2l0aW9uID0gdHJhbnNpdGlvbkRhdGE7XG4gICAgICAgIGMkMS5kYXRhLnBvcyA9IGMkMS5lbG0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGlmIChtYXBbYyQxLmtleV0pIHtcbiAgICAgICAgICBrZXB0LnB1c2goYyQxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZW1vdmVkLnB1c2goYyQxKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5rZXB0ID0gaCh0YWcsIG51bGwsIGtlcHQpO1xuICAgICAgdGhpcy5yZW1vdmVkID0gcmVtb3ZlZDtcbiAgICB9XG5cbiAgICByZXR1cm4gaCh0YWcsIG51bGwsIGNoaWxkcmVuKVxuICB9LFxuXG4gIHVwZGF0ZWQ6IGZ1bmN0aW9uIHVwZGF0ZWQgKCkge1xuICAgIHZhciBjaGlsZHJlbiA9IHRoaXMucHJldkNoaWxkcmVuO1xuICAgIHZhciBtb3ZlQ2xhc3MgPSB0aGlzLm1vdmVDbGFzcyB8fCAoKHRoaXMubmFtZSB8fCAndicpICsgJy1tb3ZlJyk7XG4gICAgaWYgKCFjaGlsZHJlbi5sZW5ndGggfHwgIXRoaXMuaGFzTW92ZShjaGlsZHJlblswXS5lbG0sIG1vdmVDbGFzcykpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIHdlIGRpdmlkZSB0aGUgd29yayBpbnRvIHRocmVlIGxvb3BzIHRvIGF2b2lkIG1peGluZyBET00gcmVhZHMgYW5kIHdyaXRlc1xuICAgIC8vIGluIGVhY2ggaXRlcmF0aW9uIC0gd2hpY2ggaGVscHMgcHJldmVudCBsYXlvdXQgdGhyYXNoaW5nLlxuICAgIGNoaWxkcmVuLmZvckVhY2goY2FsbFBlbmRpbmdDYnMpO1xuICAgIGNoaWxkcmVuLmZvckVhY2gocmVjb3JkUG9zaXRpb24pO1xuICAgIGNoaWxkcmVuLmZvckVhY2goYXBwbHlUcmFuc2xhdGlvbik7XG5cbiAgICAvLyBmb3JjZSByZWZsb3cgdG8gcHV0IGV2ZXJ5dGhpbmcgaW4gcG9zaXRpb25cbiAgICAvLyBhc3NpZ24gdG8gdGhpcyB0byBhdm9pZCBiZWluZyByZW1vdmVkIGluIHRyZWUtc2hha2luZ1xuICAgIC8vICRmbG93LWRpc2FibGUtbGluZVxuICAgIHRoaXMuX3JlZmxvdyA9IGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0O1xuXG4gICAgY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbiAoYykge1xuICAgICAgaWYgKGMuZGF0YS5tb3ZlZCkge1xuICAgICAgICB2YXIgZWwgPSBjLmVsbTtcbiAgICAgICAgdmFyIHMgPSBlbC5zdHlsZTtcbiAgICAgICAgYWRkVHJhbnNpdGlvbkNsYXNzKGVsLCBtb3ZlQ2xhc3MpO1xuICAgICAgICBzLnRyYW5zZm9ybSA9IHMuV2Via2l0VHJhbnNmb3JtID0gcy50cmFuc2l0aW9uRHVyYXRpb24gPSAnJztcbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcih0cmFuc2l0aW9uRW5kRXZlbnQsIGVsLl9tb3ZlQ2IgPSBmdW5jdGlvbiBjYiAoZSkge1xuICAgICAgICAgIGlmIChlICYmIGUudGFyZ2V0ICE9PSBlbCkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghZSB8fCAvdHJhbnNmb3JtJC8udGVzdChlLnByb3BlcnR5TmFtZSkpIHtcbiAgICAgICAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIodHJhbnNpdGlvbkVuZEV2ZW50LCBjYik7XG4gICAgICAgICAgICBlbC5fbW92ZUNiID0gbnVsbDtcbiAgICAgICAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgbW92ZUNsYXNzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICBoYXNNb3ZlOiBmdW5jdGlvbiBoYXNNb3ZlIChlbCwgbW92ZUNsYXNzKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmICghaGFzVHJhbnNpdGlvbikge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgaWYgKHRoaXMuX2hhc01vdmUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc01vdmVcbiAgICAgIH1cbiAgICAgIC8vIERldGVjdCB3aGV0aGVyIGFuIGVsZW1lbnQgd2l0aCB0aGUgbW92ZSBjbGFzcyBhcHBsaWVkIGhhc1xuICAgICAgLy8gQ1NTIHRyYW5zaXRpb25zLiBTaW5jZSB0aGUgZWxlbWVudCBtYXkgYmUgaW5zaWRlIGFuIGVudGVyaW5nXG4gICAgICAvLyB0cmFuc2l0aW9uIGF0IHRoaXMgdmVyeSBtb21lbnQsIHdlIG1ha2UgYSBjbG9uZSBvZiBpdCBhbmQgcmVtb3ZlXG4gICAgICAvLyBhbGwgb3RoZXIgdHJhbnNpdGlvbiBjbGFzc2VzIGFwcGxpZWQgdG8gZW5zdXJlIG9ubHkgdGhlIG1vdmUgY2xhc3NcbiAgICAgIC8vIGlzIGFwcGxpZWQuXG4gICAgICB2YXIgY2xvbmUgPSBlbC5jbG9uZU5vZGUoKTtcbiAgICAgIGlmIChlbC5fdHJhbnNpdGlvbkNsYXNzZXMpIHtcbiAgICAgICAgZWwuX3RyYW5zaXRpb25DbGFzc2VzLmZvckVhY2goZnVuY3Rpb24gKGNscykgeyByZW1vdmVDbGFzcyhjbG9uZSwgY2xzKTsgfSk7XG4gICAgICB9XG4gICAgICBhZGRDbGFzcyhjbG9uZSwgbW92ZUNsYXNzKTtcbiAgICAgIGNsb25lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICB0aGlzLiRlbC5hcHBlbmRDaGlsZChjbG9uZSk7XG4gICAgICB2YXIgaW5mbyA9IGdldFRyYW5zaXRpb25JbmZvKGNsb25lKTtcbiAgICAgIHRoaXMuJGVsLnJlbW92ZUNoaWxkKGNsb25lKTtcbiAgICAgIHJldHVybiAodGhpcy5faGFzTW92ZSA9IGluZm8uaGFzVHJhbnNmb3JtKVxuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gY2FsbFBlbmRpbmdDYnMgKGMpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChjLmVsbS5fbW92ZUNiKSB7XG4gICAgYy5lbG0uX21vdmVDYigpO1xuICB9XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoYy5lbG0uX2VudGVyQ2IpIHtcbiAgICBjLmVsbS5fZW50ZXJDYigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlY29yZFBvc2l0aW9uIChjKSB7XG4gIGMuZGF0YS5uZXdQb3MgPSBjLmVsbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbn1cblxuZnVuY3Rpb24gYXBwbHlUcmFuc2xhdGlvbiAoYykge1xuICB2YXIgb2xkUG9zID0gYy5kYXRhLnBvcztcbiAgdmFyIG5ld1BvcyA9IGMuZGF0YS5uZXdQb3M7XG4gIHZhciBkeCA9IG9sZFBvcy5sZWZ0IC0gbmV3UG9zLmxlZnQ7XG4gIHZhciBkeSA9IG9sZFBvcy50b3AgLSBuZXdQb3MudG9wO1xuICBpZiAoZHggfHwgZHkpIHtcbiAgICBjLmRhdGEubW92ZWQgPSB0cnVlO1xuICAgIHZhciBzID0gYy5lbG0uc3R5bGU7XG4gICAgcy50cmFuc2Zvcm0gPSBzLldlYmtpdFRyYW5zZm9ybSA9IFwidHJhbnNsYXRlKFwiICsgZHggKyBcInB4LFwiICsgZHkgKyBcInB4KVwiO1xuICAgIHMudHJhbnNpdGlvbkR1cmF0aW9uID0gJzBzJztcbiAgfVxufVxuXG52YXIgcGxhdGZvcm1Db21wb25lbnRzID0ge1xuICBUcmFuc2l0aW9uOiBUcmFuc2l0aW9uLFxuICBUcmFuc2l0aW9uR3JvdXA6IFRyYW5zaXRpb25Hcm91cFxufTtcblxuLyogICovXG5cbi8vIGluc3RhbGwgcGxhdGZvcm0gc3BlY2lmaWMgdXRpbHNcblZ1ZS5jb25maWcubXVzdFVzZVByb3AgPSBtdXN0VXNlUHJvcDtcblZ1ZS5jb25maWcuaXNSZXNlcnZlZFRhZyA9IGlzUmVzZXJ2ZWRUYWc7XG5WdWUuY29uZmlnLmlzUmVzZXJ2ZWRBdHRyID0gaXNSZXNlcnZlZEF0dHI7XG5WdWUuY29uZmlnLmdldFRhZ05hbWVzcGFjZSA9IGdldFRhZ05hbWVzcGFjZTtcblZ1ZS5jb25maWcuaXNVbmtub3duRWxlbWVudCA9IGlzVW5rbm93bkVsZW1lbnQ7XG5cbi8vIGluc3RhbGwgcGxhdGZvcm0gcnVudGltZSBkaXJlY3RpdmVzICYgY29tcG9uZW50c1xuZXh0ZW5kKFZ1ZS5vcHRpb25zLmRpcmVjdGl2ZXMsIHBsYXRmb3JtRGlyZWN0aXZlcyk7XG5leHRlbmQoVnVlLm9wdGlvbnMuY29tcG9uZW50cywgcGxhdGZvcm1Db21wb25lbnRzKTtcblxuLy8gaW5zdGFsbCBwbGF0Zm9ybSBwYXRjaCBmdW5jdGlvblxuVnVlLnByb3RvdHlwZS5fX3BhdGNoX18gPSBpbkJyb3dzZXIgPyBwYXRjaCA6IG5vb3A7XG5cbi8vIHB1YmxpYyBtb3VudCBtZXRob2RcblZ1ZS5wcm90b3R5cGUuJG1vdW50ID0gZnVuY3Rpb24gKFxuICBlbCxcbiAgaHlkcmF0aW5nXG4pIHtcbiAgZWwgPSBlbCAmJiBpbkJyb3dzZXIgPyBxdWVyeShlbCkgOiB1bmRlZmluZWQ7XG4gIHJldHVybiBtb3VudENvbXBvbmVudCh0aGlzLCBlbCwgaHlkcmF0aW5nKVxufTtcblxuLy8gZGV2dG9vbHMgZ2xvYmFsIGhvb2tcbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5pZiAoaW5Ccm93c2VyKSB7XG4gIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgIGlmIChjb25maWcuZGV2dG9vbHMpIHtcbiAgICAgIGlmIChkZXZ0b29scykge1xuICAgICAgICBkZXZ0b29scy5lbWl0KCdpbml0JywgVnVlKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICd0ZXN0J1xuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGVbY29uc29sZS5pbmZvID8gJ2luZm8nIDogJ2xvZyddKFxuICAgICAgICAgICdEb3dubG9hZCB0aGUgVnVlIERldnRvb2xzIGV4dGVuc2lvbiBmb3IgYSBiZXR0ZXIgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZTpcXG4nICtcbiAgICAgICAgICAnaHR0cHM6Ly9naXRodWIuY29tL3Z1ZWpzL3Z1ZS1kZXZ0b29scydcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAndGVzdCcgJiZcbiAgICAgIGNvbmZpZy5wcm9kdWN0aW9uVGlwICE9PSBmYWxzZSAmJlxuICAgICAgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnXG4gICAgKSB7XG4gICAgICBjb25zb2xlW2NvbnNvbGUuaW5mbyA/ICdpbmZvJyA6ICdsb2cnXShcbiAgICAgICAgXCJZb3UgYXJlIHJ1bm5pbmcgVnVlIGluIGRldmVsb3BtZW50IG1vZGUuXFxuXCIgK1xuICAgICAgICBcIk1ha2Ugc3VyZSB0byB0dXJuIG9uIHByb2R1Y3Rpb24gbW9kZSB3aGVuIGRlcGxveWluZyBmb3IgcHJvZHVjdGlvbi5cXG5cIiArXG4gICAgICAgIFwiU2VlIG1vcmUgdGlwcyBhdCBodHRwczovL3Z1ZWpzLm9yZy9ndWlkZS9kZXBsb3ltZW50Lmh0bWxcIlxuICAgICAgKTtcbiAgICB9XG4gIH0sIDApO1xufVxuXG4vKiAgKi9cblxuZXhwb3J0IGRlZmF1bHQgVnVlO1xuIiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2FycmF5TGlrZVRvQXJyYXkoYXJyLCBsZW4pIHtcbiAgaWYgKGxlbiA9PSBudWxsIHx8IGxlbiA+IGFyci5sZW5ndGgpIGxlbiA9IGFyci5sZW5ndGg7XG5cbiAgZm9yICh2YXIgaSA9IDAsIGFycjIgPSBuZXcgQXJyYXkobGVuKTsgaSA8IGxlbjsgaSsrKSB7XG4gICAgYXJyMltpXSA9IGFycltpXTtcbiAgfVxuXG4gIHJldHVybiBhcnIyO1xufSIsImltcG9ydCBhcnJheUxpa2VUb0FycmF5IGZyb20gXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9hcnJheVdpdGhvdXRIb2xlcyhhcnIpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkoYXJyKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufSIsImZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV07XG4gICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgIGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID0gdHJ1ZTtcbiAgICBpZiAoXCJ2YWx1ZVwiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfY3JlYXRlQ2xhc3MoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gIGlmIChwcm90b1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpO1xuICBpZiAoc3RhdGljUHJvcHMpIF9kZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb25zdHJ1Y3RvciwgXCJwcm90b3R5cGVcIiwge1xuICAgIHdyaXRhYmxlOiBmYWxzZVxuICB9KTtcbiAgcmV0dXJuIENvbnN0cnVjdG9yO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHtcbiAgaWYgKGtleSBpbiBvYmopIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHtcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB3cml0YWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIG9ialtrZXldID0gdmFsdWU7XG4gIH1cblxuICByZXR1cm4gb2JqO1xufSIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9pdGVyYWJsZVRvQXJyYXkoaXRlcikge1xuICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gXCJ1bmRlZmluZWRcIiAmJiBpdGVyW1N5bWJvbC5pdGVyYXRvcl0gIT0gbnVsbCB8fCBpdGVyW1wiQEBpdGVyYXRvclwiXSAhPSBudWxsKSByZXR1cm4gQXJyYXkuZnJvbShpdGVyKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfbm9uSXRlcmFibGVTcHJlYWQoKSB7XG4gIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuXCIpO1xufSIsImltcG9ydCBhcnJheVdpdGhvdXRIb2xlcyBmcm9tIFwiLi9hcnJheVdpdGhvdXRIb2xlcy5qc1wiO1xuaW1wb3J0IGl0ZXJhYmxlVG9BcnJheSBmcm9tIFwiLi9pdGVyYWJsZVRvQXJyYXkuanNcIjtcbmltcG9ydCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSBmcm9tIFwiLi91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qc1wiO1xuaW1wb3J0IG5vbkl0ZXJhYmxlU3ByZWFkIGZyb20gXCIuL25vbkl0ZXJhYmxlU3ByZWFkLmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfdG9Db25zdW1hYmxlQXJyYXkoYXJyKSB7XG4gIHJldHVybiBhcnJheVdpdGhvdXRIb2xlcyhhcnIpIHx8IGl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IHVuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KGFycikgfHwgbm9uSXRlcmFibGVTcHJlYWQoKTtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfdHlwZW9mKG9iaikge1xuICBcIkBiYWJlbC9oZWxwZXJzIC0gdHlwZW9mXCI7XG5cbiAgcmV0dXJuIF90eXBlb2YgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBcInN5bWJvbFwiID09IHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPyBmdW5jdGlvbiAob2JqKSB7XG4gICAgcmV0dXJuIHR5cGVvZiBvYmo7XG4gIH0gOiBmdW5jdGlvbiAob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBvYmouY29uc3RydWN0b3IgPT09IFN5bWJvbCAmJiBvYmogIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG9iajtcbiAgfSwgX3R5cGVvZihvYmopO1xufSIsImltcG9ydCBhcnJheUxpa2VUb0FycmF5IGZyb20gXCIuL2FycmF5TGlrZVRvQXJyYXkuanNcIjtcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShvLCBtaW5MZW4pIHtcbiAgaWYgKCFvKSByZXR1cm47XG4gIGlmICh0eXBlb2YgbyA9PT0gXCJzdHJpbmdcIikgcmV0dXJuIGFycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTtcbiAgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpO1xuICBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lO1xuICBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTtcbiAgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG59IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHRpZDogbW9kdWxlSWQsXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbi8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBfX3dlYnBhY2tfbW9kdWxlc19fO1xuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gZnVuY3Rpb24obW9kdWxlKSB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdGZ1bmN0aW9uKCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuXHRcdGZ1bmN0aW9uKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gZnVuY3Rpb24oZXhwb3J0cywgZGVmaW5pdGlvbikge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmcgPSAoZnVuY3Rpb24oKSB7XG5cdGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybiBnbG9iYWxUaGlzO1xuXHR0cnkge1xuXHRcdHJldHVybiB0aGlzIHx8IG5ldyBGdW5jdGlvbigncmV0dXJuIHRoaXMnKSgpO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0aWYgKHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnKSByZXR1cm4gd2luZG93O1xuXHR9XG59KSgpOyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iaiwgcHJvcCkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7IH0iLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18uYiA9IGRvY3VtZW50LmJhc2VVUkkgfHwgc2VsZi5sb2NhdGlvbi5ocmVmO1xuXG4vLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGFuZCBsb2FkaW5nIGNodW5rc1xuLy8gdW5kZWZpbmVkID0gY2h1bmsgbm90IGxvYWRlZCwgbnVsbCA9IGNodW5rIHByZWxvYWRlZC9wcmVmZXRjaGVkXG4vLyBbcmVzb2x2ZSwgcmVqZWN0LCBQcm9taXNlXSA9IGNodW5rIGxvYWRpbmcsIDAgPSBjaHVuayBsb2FkZWRcbnZhciBpbnN0YWxsZWRDaHVua3MgPSB7XG5cdFwibWFpblwiOiAwXG59O1xuXG4vLyBubyBjaHVuayBvbiBkZW1hbmQgbG9hZGluZ1xuXG4vLyBubyBwcmVmZXRjaGluZ1xuXG4vLyBubyBwcmVsb2FkZWRcblxuLy8gbm8gSE1SXG5cbi8vIG5vIEhNUiBtYW5pZmVzdFxuXG4vLyBubyBvbiBjaHVua3MgbG9hZGVkXG5cbi8vIG5vIGpzb25wIGZ1bmN0aW9uIiwiaW1wb3J0IFZ1ZSBmcm9tICd2dWUnXG5pbXBvcnQgQXBwIGZyb20gJy4vYXBwJ1xuXG4vLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3F1YXNhcmZyYW1ld29yay9xdWFzYXIvaXNzdWVzLzE1NzZcbi8vIGZvciB0aGUgaW5mb3JtYXRpb24gYWJvdXQgUXVhc2FyIGludGVncmF0aW9uIGludG8gZXhpc3RpbmcgYXBwLlxuaW1wb3J0ICdxdWFzYXItZnJhbWV3b3JrL2Rpc3QvdW1kL3F1YXNhci5tYXQuY3NzJ1xuaW1wb3J0IFF1YXNhciBmcm9tICdxdWFzYXItZnJhbWV3b3JrL2Rpc3QvcXVhc2FyLm1hdC5lc20nXG5WdWUudXNlKFF1YXNhcilcblxubmV3IFZ1ZSh7XG5cdGVsOiAnI2FwcCcsXG5cdHJlbmRlcjogKGgpID0+IGgoQXBwKSxcbn0pXG4iXSwibmFtZXMiOlsibmFtZSIsInNob3J0X25hbWVzIiwia2V5d29yZHMiLCJpbWFnZVVybCIsImN1c3RvbSIsImVtb2ppc1RvU2hvd0ZpbHRlciIsImNhdGVnb3JpZXMiLCJzZWFyY2giLCJyZWNlbnQiLCJzbWlsZXlzIiwicGVvcGxlIiwibmF0dXJlIiwiZm9vZHMiLCJhY3Rpdml0eSIsInBsYWNlcyIsIm9iamVjdHMiLCJzeW1ib2xzIiwiZmxhZ3MiLCJleGNsdWRlIiwiaW5jbHVkZSIsImRhdGEiLCJpbmRleCIsImluZGV4RmlsdGVyZWQiLCJpbmRleEluY2x1ZGUiLCJpbmRleEkxOG4iLCJpMThuIiwiYWN0aXZlU2V0IiwiZW1vamkiLCJ0aXRsZSIsImlzVmlzaWJsZSIsImVtb2ppUGlja2VyRGlhbG9nIiwiZW1vamlQaWNrZXJDdXN0b21EaWFsb2ciLCJlbW9qaXNPdXRwdXQiLCJzZWxlY3RlZEVtb2ppcyIsImZsYWdzVmlzaWJsZSIsImNvbXB1dGVkIiwibmF0aXZlIiwic21pbGUiLCJzYW50YUVtb2ppT2JqZWN0IiwibWV0aG9kcyIsInRvZ2dsZVZpc2libGUiLCJ0b2dnbGVGbGFnc1Zpc2libGUiLCJzaG93RW1vamkiLCJjb21wb25lbnRzIiwiUGlja2VyIiwiRW1vamkiLCJRQnRuIiwiUURpYWxvZyIsInByb3BzIiwiRW1vamlQcm9wcyIsInR5cGUiLCJyZXF1aXJlZCIsInZpZXciLCJzYW5pdGl6ZWREYXRhIiwiZW1vamlPYmplY3QiLCJjcmVhdGVkIiwib25DbGljayIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsIm5vdGZvdW5kIiwiUGlja2VyUHJvcHMiLCJhY3RpdmVTa2luIiwiY3VzdG9tU3R5bGVzIiwid2lkdGgiLCJlbW9qaVByb3BzIiwic2tpbiIsInNldCIsImVtb2ppVG9vbHRpcCIsImVtb2ppU2l6ZSIsInNlbGVjdGVkRW1vamkiLCJzZWxlY3RlZEVtb2ppQ2F0ZWdvcnkiLCJvbkVudGVyIiwib25MZWF2ZSIsInNraW5Qcm9wcyIsImNhbGN1bGF0ZVdpZHRoIiwiZmlsdGVyZWRDYXRlZ29yaWVzIiwibWVyZ2VkSTE4biIsImlkbGVFbW9qaSIsImNvbnNvbGUiLCJvblNjcm9sbCIsIndpbmRvdyIsIm9uU2Nyb2xsUGFpbnQiLCJvbkFuY2hvckNsaWNrIiwiY2F0ZWdvcnkiLCJvblNlYXJjaCIsInZhbHVlIiwib25FbW9qaUVudGVyIiwib25FbW9qaUxlYXZlIiwib25BcnJvd0xlZnQiLCIkZXZlbnQiLCJvbkFycm93UmlnaHQiLCJvbkFycm93RG93biIsIm9uQXJyb3dVcCIsImZyZXF1ZW50bHkiLCJvbkVtb2ppQ2xpY2siLCJvblNraW5DaGFuZ2UiLCJzdG9yZSIsImdldENhdGVnb3J5Q29tcG9uZW50IiwiQW5jaG9ycyIsIkNhdGVnb3J5IiwiUHJldmlldyIsIlNlYXJjaCIsImNvbG9yIiwiYWN0aXZlQ2F0ZWdvcnkiLCJkZWZhdWx0IiwiaWQiLCJlbW9qaXMiLCJhY3RpdmVDbGFzcyIsImlzU2VhcmNoIiwiaGFzUmVzdWx0cyIsImVtb2ppT2JqZWN0cyIsImVtb2ppVmlldyIsInNob3dTa2luVG9uZXMiLCJlbW9qaURhdGEiLCJlbW9qaVNob3J0TmFtZXMiLCJlbW9qaUVtb3RpY29ucyIsIlNraW5zIiwiYXV0b0ZvY3VzIiwiZW1vamlJbmRleCIsIndhdGNoIiwiY2xlYXIiLCJtb3VudGVkIiwiJGlucHV0Iiwib3BlbmVkIiwic2tpblRvbmUiLCJ1bmNvbXByZXNzIiwiRW1vamlJbmRleCIsIkVtb2ppVmlldyIsIkVtb2ppRGF0YSIsInNhbml0aXplIiwiX1N0cmluZyIsIlN0cmluZyIsImZyb21Db2RlUG9pbnQiLCJzdHJpbmdGcm9tQ29kZVBvaW50IiwiTUFYX1NJWkUiLCJjb2RlVW5pdHMiLCJoaWdoU3Vycm9nYXRlIiwibG93U3Vycm9nYXRlIiwibGVuZ3RoIiwiYXJndW1lbnRzIiwicmVzdWx0IiwiY29kZVBvaW50IiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJNYXRoIiwiZmxvb3IiLCJSYW5nZUVycm9yIiwicHVzaCIsImZyb21DaGFyQ29kZSIsImFwcGx5IiwiU1ZHcyIsIm1hcHBpbmciLCJ1bmlmaWVkIiwibm9uX3F1YWxpZmllZCIsImhhc19pbWdfYXBwbGUiLCJoYXNfaW1nX2dvb2dsZSIsImhhc19pbWdfdHdpdHRlciIsImhhc19pbWdfZmFjZWJvb2siLCJzaGVldCIsImVtb3RpY29ucyIsInRleHQiLCJhZGRlZF9pbiIsImJ1aWxkU2VhcmNoIiwiYWRkVG9TZWFyY2giLCJzdHJpbmdzIiwic3BsaXQiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JFYWNoIiwic3RyaW5nIiwicyIsInRvTG93ZXJDYXNlIiwiaW5kZXhPZiIsImpvaW4iLCJkZWVwRnJlZXplIiwib2JqZWN0IiwicHJvcE5hbWVzIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImZyZWV6ZSIsImNvbXByZXNzZWQiLCJrZXkiLCJ1bnNoaWZ0Iiwic2hlZXRfeCIsInNoZWV0X3kiLCJ0b0ZpeGVkIiwiaW50ZXJzZWN0IiwidW5pZmllZFRvTmF0aXZlIiwiU0hFRVRfQ09MVU1OUyIsIkNPTE9OU19SRUdFWCIsIlNLSU5TIiwicmVjZW50TGVuZ3RoIiwiX2RhdGEiLCJfZW1vamlzRmlsdGVyIiwiX2luY2x1ZGUiLCJfZXhjbHVkZSIsIl9jdXN0b20iLCJfcmVjZW50IiwiZ2V0IiwiX2Vtb2ppcyIsIl9uYXRpdmVFbW9qaXMiLCJfZW1vdGljb25zIiwiX2NhdGVnb3JpZXMiLCJfcmVjZW50Q2F0ZWdvcnkiLCJfY3VzdG9tQ2F0ZWdvcnkiLCJfc2VhcmNoSW5kZXgiLCJidWlsZEluZGV4IiwiYWxsQ2F0ZWdvcmllcyIsImZpbHRlciIsIml0ZW0iLCJpbmNsdWRlcyIsInNvcnQiLCJhIiwiYiIsImluZGV4QSIsImluZGV4QiIsImNhdGVnb3J5RGF0YSIsImlzQ2F0ZWdvcnlOZWVkZWQiLCJlbW9qaUlkIiwiYWRkRW1vamkiLCJjdXN0b21FbW9qaSIsImFkZEN1c3RvbUVtb2ppIiwibWFwIiwiaGFzRW1vamkiLCJtYXRjaGVzIiwibWF0Y2giLCJwYXJzZUludCIsImFsaWFzZXMiLCJoYXNPd25Qcm9wZXJ0eSIsImdldFNraW4iLCJFcnJvciIsImtleXMiLCJ1bmljb2RlRW1vamkiLCJtYXhSZXN1bHRzIiwidmFsdWVzIiwiYWxsUmVzdWx0cyIsImN1cnJlbnRJbmRleCIsImNoYXJJbmRleCIsImNoYXIiLCJyZXN1bHRzIiwic2NvcmVzIiwic3ViIiwic3Vic3RyIiwic3ViSW5kZXgiLCJzY29yZSIsImFTY29yZSIsImJTY29yZSIsInNsaWNlIiwiYXNzaWduIiwiaXNFbW9qaU5lZWRlZCIsIl9za2lucyIsImlkeCIsImVtb3RpY29uIiwiY2F0ZWdvcnlfaWQiLCJpc0luY2x1ZGVkIiwiaXNFeGNsdWRlZCIsInNraW5fdmFyaWF0aW9ucyIsInNraW5JZHgiLCJza2luS2V5IiwidmFyaWF0aW9uRGF0YSIsInNraW5EYXRhIiwiayIsIl9zYW5pdGl6ZWQiLCJzaG9ydF9uYW1lIiwiYWRqdXN0ZWRDb2x1bW5zIiwieCIsInkiLCJjb25jYXQiLCJCb29sZWFuIiwiZmFsbGJhY2siLCJfZW1vamkiLCJfbmF0aXZlIiwiX3NraW4iLCJfc2V0IiwiX2ZhbGxiYWNrIiwiY2FuUmVuZGVyIiwiX2NhblJlbmRlciIsImNzc0NsYXNzIiwiX2Nzc0NsYXNzIiwiY3NzU3R5bGUiLCJfY3NzU3R5bGUiLCJjb250ZW50IiwiX2NvbnRlbnQiLCJhcmlhTGFiZWwiLCJfaXNDdXN0b20iLCJfaXNOYXRpdmUiLCJfaGFzRW1vamkiLCJfZW1vamlUeXBlIiwiYmFja2dyb3VuZEltYWdlIiwiZ2V0RW1vamkiLCJiYWNrZ3JvdW5kU2l6ZSIsImhlaWdodCIsImJhY2tncm91bmRQb3NpdGlvbiIsImdldFBvc2l0aW9uIiwiZm9udFNpemUiLCJyb3VuZCIsImhhc0ltYWdlIiwidW5kZWZpbmVkIiwic2tpbl90b25lIiwiY29sb25zIiwiREVGQVVMVFMiLCJpbml0aWFsaXplZCIsImRlZmF1bHRzIiwiaW5pdCIsImFkZCIsIm1heE51bWJlciIsImRlZmF1bHRMZW5ndGgiLCJtaW4iLCJpIiwicXVhbnRpdHkiLCJmcmVxdWVudGx5S2V5cyIsInNvcnRlZCIsInJldmVyc2UiLCJzbGljZWQiLCJsYXN0IiwicG9wIiwidW5pY29kZXMiLCJjb2RlUG9pbnRzIiwidSIsInVuaXEiLCJhcnIiLCJyZWR1Y2UiLCJhY2MiLCJ1bmlxQSIsInVuaXFCIiwiZGVlcE1lcmdlIiwibyIsIm9yaWdpbmFsVmFsdWUiLCJtZWFzdXJlU2Nyb2xsYmFyIiwiZG9jdW1lbnQiLCJkaXYiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJvdmVyZmxvdyIsInBvc2l0aW9uIiwidG9wIiwiYm9keSIsImFwcGVuZENoaWxkIiwic2Nyb2xsYmFyV2lkdGgiLCJvZmZzZXRXaWR0aCIsImNsaWVudFdpZHRoIiwicmVtb3ZlQ2hpbGQiLCJQaWNrZXJWaWV3IiwicGlja2VyQ29tcG9uZW50IiwiX3ZtIiwiX3BlckxpbmUiLCJwZXJMaW5lIiwiZmlyc3QiLCJzZWFyY2hFbW9qaXMiLCJwcmV2aWV3RW1vamkiLCJwcmV2aWV3RW1vamlDYXRlZ29yeUlkeCIsInByZXZpZXdFbW9qaUlkeCIsInNjcm9sbEVsZW1lbnQiLCIkcmVmcyIsInNjcm9sbCIsInNjcm9sbFRvcCIsImwiLCJjb21wb25lbnQiLCIkZWwiLCJvZmZzZXRUb3AiLCJoYXNFbW9qaXMiLCJzY3JvbGxUb0NvbXBvbmVudCIsImluZmluaXRlU2Nyb2xsIiwibWF4U2VhcmNoUmVzdWx0cyIsInVwZGF0ZVByZXZpZXdFbW9qaSIsImVtb2ppc0xlbmd0aCIsImNhdGVnb3J5TGVuZ3RoIiwiZGlmZiIsInByZXZDYXRlZ29yeUxhc3RSb3dMZW5ndGgiLCIkbmV4dFRpY2siLCJzY3JvbGxFbCIsImVtb2ppRWwiLCJxdWVyeVNlbGVjdG9yIiwic2Nyb2xsSGVpZ2h0Iiwib2Zmc2V0SGVpZ2h0IiwiY2F0ZWdvcnlJZHgiLCJ0b29sdGlwIiwiRnVuY3Rpb24iLCJzaXplIiwidGFnIiwiZGVmYXVsdFNraW4iLCJzaG93UHJldmlldyIsInNob3dTZWFyY2giLCJzaG93Q2F0ZWdvcmllcyIsInBpY2tlclN0eWxlcyIsIk5BTUVTUEFDRSIsIl9KU09OIiwiSlNPTiIsImlzTG9jYWxTdG9yYWdlU3VwcG9ydGVkIiwiZ2V0dGVyIiwic2V0dGVyIiwic2V0SGFuZGxlcnMiLCJoYW5kbGVycyIsInNldE5hbWVzcGFjZSIsIm5hbWVzcGFjZSIsInVwZGF0ZSIsInN0YXRlIiwibG9jYWxTdG9yYWdlIiwic3RyaW5naWZ5IiwiZSIsInBhcnNlIiwiaXNXaW5kb3dBdmFpbGFibGUiLCJsYXN0VGltZSIsInZlbmRvcnMiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsImNhbGxiYWNrIiwiZWxlbWVudCIsImN1cnJUaW1lIiwiRGF0ZSIsImdldFRpbWUiLCJ0aW1lVG9DYWxsIiwibWF4Iiwic2V0VGltZW91dCIsImNsZWFyVGltZW91dCIsIlZ1ZSIsIkFwcCIsIlF1YXNhciIsInVzZSIsImVsIiwicmVuZGVyIiwiaCJdLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,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Qix5QkFBeUIsYUFBYSxPQUFPLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxXQUFXLEtBQUssS0FBSyxVQUFVLFlBQVksT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFVBQVUsWUFBWSxhQUFhLFdBQVcsT0FBTyxNQUFNLFVBQVUsVUFBVSxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLFdBQVcsS0FBSyxNQUFNLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE9BQU8sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE9BQU8sS0FBSyxZQUFZLGFBQWEsV0FBVyxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsV0FBVyxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxXQUFXLE1BQU0sT0FBTyxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsT0FBTyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLE9BQU8sS0FBSyxVQUFVLFlBQVksT0FBTyxLQUFLLFVBQVUsT0FBTyxLQUFLLFVBQVUsVUFBVSxLQUFLLE9BQU8sWUFBWSxPQUFPLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsT0FBTyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLE9BQU8sS0FBSyxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsT0FBTyxLQUFLLFVBQVUsVUFBVSxPQUFPLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxh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OEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGNBQWMsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxlQUFlLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcscUJBQXFCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsY0FBYyw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiwyQkFBMkIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLGVBQWUsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxxQkFBcUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyxlQUFlLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsY0FBYyw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiwyQkFBMkIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiwyQkFBMkIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxxQkFBcUIsOEJBQThCLEdBQUcscUJBQXFCLDhCQUE4QixHQUFHLHFCQUFxQiw4QkFBOEIsR0FBRyxxQkFBcUIsOEJBQThCLEdBQUcscUJBQXFCLDhCQUE4QixHQUFHLHFCQUFxQiw4QkFBOEIsR0FBRyxxQkFBcUIsOEJBQThCLEdBQUcscUJBQXFCLDhCQUE4QixHQUFHLHFCQUFxQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLFdBQVcsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLFlBQVksbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixnQ0FBZ0MsR0FBRyxtQkFBbUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsa0JBQWtCLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLG1CQUFtQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLFlBQVksbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsZ0NBQWdDLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLG1CQUFtQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLGFBQWEsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxZQUFZLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLGdDQUFnQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLGdDQUFnQyxHQUFH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WUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxXQUFXLFlBQVksV0FBVyxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLFdBQVcsWUFBWSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxNQUFNLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLEtBQUssTUFBTSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxPQUFPLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssTUFBTSxVQUFVLFlBQVksTUFBTSxNQUFNLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFlBQVksWUFBWSxVQUFVLFdBQVcsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLFdBQVcsWUFBWSxhQUFhLFdBQVcsS0FBSyxLQUFLLFlBQVksYUFBYSxXQUFXLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLE1BQU0sTUFBTSxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksWUFBWSxVQUFVLE1BQU0sTUFBTSxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssT0FBTyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksV0FBVyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxXQUFXLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLFlBQVksVUFBVSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxZQUFZLFdBQVcsS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsV0FBVyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxZQUFZLFdBQVcsVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxNQUFNLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxXQUFXLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxXQUFXLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxXQUFXLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxhQUFhLFdBQVcsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksV0FBVyxZQUFZLFdBQVcsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxXQUFXLFlBQVksV0FBVyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLE1BQU0sVUFBVSxLQUFLLE1BQU0sVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxVQUFVLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxXQUFXLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsV0FBVyxLQUFLLEtBQUssWUFBWSxhQUFhLFdBQVcsS0FBSyxNQUFNLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsV0FBVyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxXQUFXLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxXQUFXLE1BQU0sS0FBSyxZQUFZLFdBQVcsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLFFBQVEsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLE9BQU8sVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxPQUFPLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLFlBQVksWUFBWSxhQUFhLE1BQU0sUUFBUSxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsV0FBVyxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxNQUFNLFVBQVUsS0FBSyxNQUFNLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsV0FBVyxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksV0FBVyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sT0FBTyxZQUFZLE1BQU0sT0FBTyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLE9BQU8sVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLFFBQVEsWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sT0FBTyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLE1BQU0sT0FBTyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsWUFBWSxNQUFNLE9BQU8sWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxXQUFXLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxNQUFNLE9BQU8sVUFBVSxZQUFZLE1BQU0sT0FBTyxVQUFVLEtBQUssT0FBTyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxNQUFNLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLFdBQVcsWUFBWSxhQUFhLFdBQVcsWUFBWSxhQUFhLGFBQWEsV0FBVyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxNQUFNLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLFdBQVcsVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLFFBQVEsWUFBWSxNQUFNLE1BQU0sVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sU0FBUyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssTUFBTSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sUUFBUSxZQUFZLGFBQWEsTUFBTSxRQUFRLFlBQVksTUFBTSxRQUFRLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLFlBQVksVUFBVSxXQUFXLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLFVBQVUsWUFBWSxNQUFNLE1BQU0sVUFBVSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksV0FBVyxVQUFVLEtBQUssTUFBTSxVQUFVLE1BQU0sS0FBSyxZQUFZLFlBQVksVUFBVSxXQUFXLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsV0FBVyxZQUFZLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxhQUFhLE1BQU0sT0FBTyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsTUFBTSxNQUFNLFVBQVUsTUFBTSxRQUFRLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxNQUFNLFlBQVksV0FBVyxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLEtBQUssTUFBTSxVQUFVLFlBQVksTUFBTSxRQUFRLFVBQVUsTUFBTSxNQUFNLFVBQVUsS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxRQUFRLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsV0FBVyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFVBQVUsS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLE9BQU8sVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLFlBQVksV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sVUFBVSxLQUFLLE1BQU0sWUFBWSxhQUFhLE1BQU0sTUFBTSxVQUFVLEtBQUssTUFBTSxZQUFZLGFBQWEsTUFBTSxNQUFNLFVBQVUsS0FBSyxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sVUFBVSxLQUFLLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFVBQVUsTUFBTSxVQUFVLFVBQVUsWUFBWSxhQUFhLFdBQVcsS0FBSyxnQkFBZ0IsVUFBVSxZQUFZLGFBQWEsV0FBVyxLQUFLLGFBQWEsWUFBWSxXQUFXLFVBQVUsVUFBVSxNQUFNLE1BQU0sVUFBVSxLQUFLLE9BQU8sVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxNQUFNLE1BQU0sWUFBWSxXQUFXLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxhQUFhLFdBQVcsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxNQUFNLE1BQU0sVUFBVSxZQUFZLGFBQWEsV0FBVyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sT0FBTyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsV0FBVyxVQUFVLFlBQVksYUFBYSxjQUFjLGVBQWUsT0FBTyxNQUFNLFlBQVksV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxPQUFPLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxXQUFXLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sTUFBTSxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLE1BQU0sVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsV0FBVyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLFdBQVcsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsV0FBVyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxPQUFPLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLFdBQVcsTUFBTSxNQUFNLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxXQUFXLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxNQUFNLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxPQUFPLFVBQVUsS0FBSyxNQUFNLFlBQVksV0FBVyxVQUFVLFVBQVUsWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsS0FBSyxNQUFNLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsWUFBWSxXQUFXLFlBQVksTUFBTSxNQUFNLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLFdBQVcsS0FBSyxLQUFLLE1BQU0sWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLEtBQUssTUFBTSxZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsS0FBSyxNQUFNLFlBQVksYUFBYSxhQUFhLE1BQU0sTUFBTSxVQUFVLEtBQUssTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsWUFBWSxXQUFXLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLFdBQVcsVUFBVSxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxZQUFZLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLE1BQU0sVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLFdBQVcsVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxPQUFPLFlBQVksV0FBVyxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxRQUFRLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxNQUFNLFlBQVksYUFBYSxNQUFNLFFBQVEsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLFdBQVcsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxZQUFZLFdBQVcsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLEtBQUssWUFBWSxXQUFXLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxPQUFPLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxXQUFXLE1BQU0sUUFBUSxVQUFVLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxXQUFXLFlBQVksTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLE1BQU0sVUFBVSxLQUFLLE1BQU0sVUFBVSxZQUFZLGFBQWEsTUFBTSxNQUFNLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssWUFBWSxhQUFhLFdBQVcsVUFBVSxZQUFZLGFBQWEsV0FBVyxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsV0FBVyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxZQUFZLFVBQVUsV0FBVyxVQUFVLFVBQVUsWUFBWSxXQUFXLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxNQUFNLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxNQUFNLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sT0FBTyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLE9BQU8sWUFBWSxhQUFhLFdBQVcsWUFBWSxVQUFVLE1BQU0sT0FBTyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxVQUFVLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLE1BQU0sS0FBSyxZQUFZLGFBQWEsVUFBVSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxLQUFLLE1BQU0sVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssb0VBQW9FLFdBQVcsVUFBVSxVQUFVLE1BQU0sb0VBQW9FLFdBQVcsVUFBVSxZQUFZLE1BQU0sTUFBTSxZQUFZLGFBQWEsYUFBYSxNQUFNLGdDQUFnQyxhQUFhLFlBQVksVUFBVSxNQUFNLE1BQU0sWUFBWSxZQUFZLFVBQVUsTUFBTSxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxNQUFNLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksV0FBVyxLQUFLLE1BQU0sVUFBVSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksV0FBVyxLQUFLLE1BQU0sVUFBVSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksV0FBVyxLQUFLLE1BQU0sVUFBVSxVQUFVLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLFdBQVcsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLE1BQU0sVUFBVSxVQUFVLEtBQUssS0FBSyxLQUFLLG9DQUFvQyxXQUFXLFVBQVUsVUFBVSxNQUFNLG9DQUFvQyxXQUFXLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxrQkFBa0IsWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLFlBQVksWUFBWSxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssS0FBSyxvQ0FBb0MsV0FBVyxVQUFVLFVBQVUsTUFBTSxvQ0FBb0MsV0FBVyxVQUFVLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sa0JBQWtCLFlBQVksWUFBWSxVQUFVLE1BQU0sS0FBSyxZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLEtBQUssb0NBQW9DLFdBQVcsVUFBVSxVQUFVLE1BQU0sb0NBQW9DLFdBQVcsVUFBVSxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLGtCQUFrQixZQUFZLFlBQVksVUFBVSxNQUFNLEtBQUssWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksV0FBVyxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxLQUFLLG9DQUFvQyxXQUFXLFVBQVUsVUFBVSxNQUFNLG9DQUFvQyxXQUFXLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxrQkFBa0IsWUFBWSxZQUFZLFVBQVUsTUFBTSxLQUFLLFlBQVksWUFBWSxVQUFVLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsVUFBVSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLE1BQU0sWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sWUFBWSxXQUFXLEtBQUssS0FBSyxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxNQUFNLFlBQVksYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxRQUFRLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLE9BQU8sWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sZUFBZSxVQUFVLE1BQU0sZUFBZSxZQUFZLE1BQU0sTUFBTSxVQUFVLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLFVBQVUsS0FBSyxNQUFNLFVBQVUsVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsS0FBSyxNQUFNLFVBQVUsVUFBVSxLQUFLLE1BQU0sVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sTUFBTSxVQUFVLFVBQVUsVUFBVSxVQUFVLEtBQUssTUFBTSxVQUFVLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxVQUFVLFlBQVksV0FBVyxZQUFZLGFBQWEsV0FBVyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxXQUFXLFlBQVksV0FBVyxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxNQUFNLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxNQUFNLFVBQVUsTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFVBQVUsS0FBSyxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFVBQVUsTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxXQUFXLFlBQVksTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxVQUFVLFlBQVksYUFBYSxhQUFhLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsYUFBYSxNQUFNLEtBQUssS0FBSyxVQUFVLE1BQU0sS0FBSyxLQUFLLFVBQVUsS0FBSyxLQUFLLFlBQVksYUFBYSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsS0FBSyxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLGFBQWEsV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxVQUFVLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxZQUFZLFdBQVcsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksV0FBVyxZQUFZLGFBQWEsV0FBVyxZQUFZLE1BQU0sS0FBSyxVQUFVLFlBQVksV0FBVyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLFdBQVcsWUFBWSxhQUFhLFdBQVcsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sWUFBWSxNQUFNLEtBQUssVUFBVSxZQUFZLE1BQU0sS0FBSyxVQUFVLFVBQVUsVUFBVSxZQUFZLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLFVBQVUsVUFBVSxVQUFVLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLGFBQWEsYUFBYSxNQUFNLE1BQU0sWUFBWSxhQUFhLGFBQWEsTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxRQUFRLFlBQVksTUFBTSxNQUFNLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLFVBQVUsWUFBWSxXQUFXLFVBQVUsVUFBVSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssYUFBYSxZQUFZLE1BQU0sS0FBSyxLQUFLLGFBQWEsWUFBWSxNQUFNLEtBQUssS0FBSyxhQUFhLFlBQVksTUFBTSxLQUFLLEtBQUssYUFBYSxZQUFZLE1BQU0sS0FBSyxLQUFLLGFBQWEsWUFBWSxNQUFNLEtBQUssS0FBSyxZQUFZLFdBQVcsWUFBWSxXQUFXLFVBQVUsWUFBWSxhQUFhLFdBQVcsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sS0FBSyxZQUFZLFdBQVcsS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxPQUFPLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLFlBQVksTUFBTSxPQUFPLFVBQVUsS0FBSyxLQUFLLFVBQVUsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxZQUFZLE1BQU0sTUFBTSxVQUFVLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxVQUFVLFlBQVksTUFBTSxLQUFLLFVBQVUsTUFBTSxLQUFLLFVBQVUsWUFBWSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxXQUFXLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxXQUFXLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLEtBQUssS0FBSyxVQUFVLFVBQVUsS0FBSyxLQUFLLFVBQVUsVUFBVSxLQUFLLEtBQUssVUFBVSxVQUFVLEtBQUssS0FBSyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxVQUFVLEtBQUssS0FBSyxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssVUFBVSxLQUFLLEtBQUssS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLE1BQU0sS0FBSyxVQUFVLFlBQVksYUFBYSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLEtBQUssS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssS0FB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QUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiwyQkFBMkIsR0FBRyxxQkFBcUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxjQUFjLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsb0JBQW9CLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHNCQUFzQiw4QkFBOEIsR0FBRyxzQkFBc0IsOEJBQThCLEdBQUcsc0JBQXNCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsY0FBYyw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGNBQWMsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxlQUFlLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcscUJBQXFCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHVCQUF1Qiw4QkFBOEIsR0FBRyx1QkFBdUIsOEJBQThCLEdBQUcsdUJBQXVCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsd0JBQXdCLDhCQUE4QixHQUFHLHdCQUF3Qiw4QkFBOEIsR0FBRyx3QkFBd0IsOEJBQThCLEdBQUcsY0FBYyw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsZ0JBQWdCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGdCQUFnQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiwyQkFBMkIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLGVBQWUsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsaUJBQWlCLDhCQUE4QixHQUFHLGlCQUFpQiw4QkFBOEIsR0FBRyxpQkFBaUIsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxnQkFBZ0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsa0JBQWtCLDhCQUE4QixHQUFHLGtCQUFrQiw4QkFBOEIsR0FBRyxrQkFBa0IsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxtQkFBbUIsOEJBQThCLEdBQUcsbUJBQW1CLDhCQUE4QixHQUFHLG1CQUFtQiw4QkFBOEIsR0FBRyxxQkFB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Q0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixnQ0FBZ0MsR0FBRyxtQkFBbUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsa0JBQWtCLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLG9CQUFvQixtQ0FBbUMsR0FBRyxvQkFBb0IsbUNBQW1DLEdBQUcsb0JBQW9CLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsWUFBWSxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsYUFBYSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLG1CQUFtQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLHNCQUFzQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFtQyxHQUFHLFlBQVksbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxjQUFjLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGNBQWMsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsZ0NBQWdDLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxhQUFhLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGVBQWUsbUNBQW1DLEdBQUcsZUFBZSxtQ0FBbUMsR0FBRyxlQUFlLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsY0FBYyxtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxnQkFBZ0IsbUNBQW1DLEdBQUcsZ0JBQWdCLG1DQUFtQyxHQUFHLGdCQUFnQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLGlCQUFpQixtQ0FBbUMsR0FBRyxpQkFBaUIsbUNBQW1DLEdBQUcsaUJBQWlCLG1DQUFtQyxHQUFHLG1CQUFtQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxxQkFBcUIsbUNBQW1DLEdBQUcscUJBQXFCLG1DQUFtQyxHQUFHLHFCQUFxQixtQ0FBbUMsR0FBRyxzQkFBc0IsbUNBQW1DLEdBQUcsc0JBQXNCLG1DQUFt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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxLQUFxQztBQUMvQztBQUNBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxLQUFxQztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLEtBQXFDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRCxPQUFPO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLElBQXFDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxrQkFBa0IsaUJBQWlCO0FBQ25DO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxrQkFBa0Isa0JBQWtCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJ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QSxJQUFJLElBRVE7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDJCQUEyQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLDREQUE0RCxXQUFXO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxTQUFTO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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QUNBOztBQUVBLElBQUksSUFBcUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixtQkFBbUI7QUFDekM7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsOENBQThDO0FBQzlDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsSUFBcUM7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFD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Q0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLHNGQUFzRjtBQUM1RjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwwQ0FBMEM7QUFDMUMsa0JBQWtCLHlCQUF5QjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRywr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OztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyxTQUFTO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxRQUFRLElBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLE9BQU87QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FB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QUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGtCQUFrQixrQkFBa0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFVBQVUsS0FBcUM7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7Ozs7QUFJQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLEtBQXFDO0FBQ3pEO0FBQ0EsTUFBTSxDQUFFO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0EsSUFBSTtBQUNKLHlCQUF5QjtBQUN6QjtBQUNBLHVCQUF1QjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLElBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNLEtBQUssRUFFTjtBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksS0FBcUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQSwrQkFBK0I7O0FBRS9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUSxLQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxTQUFTLElBQXFDO0FBQ3BEO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxLQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLG9CQUFvQjtBQUMxQztBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0EsK0JBQStCO0FBQy9CLE1BQU0sSUFBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVEsS0FBcUM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFxQztBQUM3QztBQUNBLE1BQU0sS0FBSyxFQUVOO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0EscUJBQXFCO0FBQ3JCOztBQUVBO0FBQ0EsUUFBUSxLQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0VBQXNFO0FBQ3RFO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVEsS0FBcUM7QUFDN0M7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDOztBQUVqQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLFlBQVksS0FBcUM7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTs7Ozs7O0FBTUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDJDQUEyQyw0QkFBNEI7QUFDdkUsS0FBSztBQUNMO0FBQ0EsMkNBQTJDLDZCQUE2QjtBQUN4RSxLQUFLO0FBQ0wsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDO0FBQ2hDLE1BQU0sSUFBcUM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLE9BQU87QUFDM0M7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLEtBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFF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QztBQUN4Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7QUFDM0M7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUIsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBOztBQUVBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLCtDQUErQztBQUN2RDtBQUNBOztBQUVBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxDQUFDOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLHdDQUF3QyxTQUFTO0FBQ2pEO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQix3QkFBd0I7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EscURBQXFELDZCQUE2QjtBQUNsRixNQUFNO0FBQ047QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxnQ0FBZ0M7QUFDckYsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQzs7QUFFL0M7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLE1BQU0sS0FBcUM7QUFDM0M7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBTSxLQUFxQztBQUMzQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2REFBNkQ7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxFQUFFOztBQUVGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGtDQUFrQyxvQ0FBb0M7O0FBRXRFO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0Qyx3Q0FBd0M7QUFDcEY7QUFDQTtBQUNBO0FBQ0EsOENBQThDLDRDQUE0QztBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxLQUFxQztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QyxPQUFPO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxzQ0FBc0MsK0JBQStCO0FBQ3JFOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLE1BQU07QUFDTjtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsUUFBUTtBQUNSO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsbUNBQW1DOztBQUVuQyxzQ0FBc0M7O0FBRXRDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsUUFBUSxLQUFxQztBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxRQUFRLEtBQXFDO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNB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N0Q7Ozs7O1dDTkE7O1dBRUE7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBOztXQUVBOztXQUVBOztXQUVBOztXQUVBOztXQUVBOztXQUVBOztXQUVBOzs7Ozs7Ozs7Ozs7Ozs7OztBQ3JCQTtDQUdBO0FBQ0E7O0FBQ0E7QUFDQTtBQUNBc1QsK0NBQUEsQ0FBUUUsNEVBQVI7QUFFQSxJQUFJRiwyQ0FBSixDQUFRO0VBQ1BJLEVBQUUsRUFBRSxNQURHO0VBRVBDLE1BQU0sRUFBRSxnQkFBQ0MsQ0FBRDtJQUFBLE9BQU9BLENBQUMsQ0FBQ0wsNENBQUQsQ0FBUjtFQUFBO0FBRkQsQ0FBUixFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvZG9jcy9hcHAudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9FbW9qaS52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3NyYy9jb21wb25lbnRzL1BpY2tlci52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3NyYy9jb21wb25lbnRzL2FuY2hvcnMudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9jYXRlZ29yeS52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3NyYy9jb21wb25lbnRzL3ByZXZpZXcudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9zZWFyY2gudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC9zcmMvY29tcG9uZW50cy9za2lucy52dWUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2luZGV4LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9wb2x5ZmlsbHMvc3RyaW5nRnJvbUNvZGVQb2ludC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvc3Zncy9pbmRleC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvZGF0YS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvZW1vamktZGF0YS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvZnJlcXVlbnRseS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvaW5kZXguanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL3V0aWxzL3BpY2tlci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdXRpbHMvc2hhcmVkLXByb3BzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy91dGlscy9zdG9yZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvdmVuZG9yL3JhZi1wb2x5ZmlsbC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYS1jYWxsYWJsZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYS1jb25zdHJ1Y3Rvci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYS1wb3NzaWJsZS1wcm90b3R5cGUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FkZC10by11bnNjb3BhYmxlcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYWR2YW5jZS1zdHJpbmctaW5kZXguanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FuLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLW5vbi1leHRlbnNpYmxlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9hcnJheS1mb3ItZWFjaC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktZnJvbS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWhhcy1zcGVjaWVzLXN1cHBvcnQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1pcy1zdHJpY3QuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXNsaWNlLXNpbXBsZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvYXJyYXktc2xpY2UuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXNvcnQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY3JlYXRlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jYWxsLXdpdGgtc2FmZS1pdGVyYXRpb24tY2xvc2luZy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY2hlY2stY29ycmVjdG5lc3Mtb2YtaXRlcmF0aW9uLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jbGFzc29mLXJhdy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY2xhc3NvZi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY29weS1jb25zdHJ1Y3Rvci1wcm9wZXJ0aWVzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jb3JyZWN0LWlzLXJlZ2V4cC1sb2dpYy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY29ycmVjdC1wcm90b3R5cGUtZ2V0dGVyLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9jcmVhdGUtaXRlcmF0b3ItY29uc3RydWN0b3IuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3IuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluLWFjY2Vzc29yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4uanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RlZmluZS1nbG9iYWwtcHJvcGVydHkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2RlZmluZS1pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZGVmaW5lLXdlbGwta25vd24tc3ltYm9sLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kZWxldGUtcHJvcGVydHktb3ItdGhyb3cuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Rlc2NyaXB0b3JzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9kb2N1bWVudC1jcmVhdGUtZWxlbWVudC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZG9lcy1ub3QtZXhjZWVkLXNhZmUtaW50ZWdlci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZG9tLWl0ZXJhYmxlcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZG9tLXRva2VuLWxpc3QtcHJvdG90eXBlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbmdpbmUtZmYtdmVyc2lvbi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZW5naW5lLWlzLWllLW9yLWVkZ2UuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2VuZ2luZS11c2VyLWFnZW50LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbmdpbmUtdjgtdmVyc2lvbi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZW5naW5lLXdlYmtpdC12ZXJzaW9uLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9lbnVtLWJ1Zy1rZXlzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9leHBvcnQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2ZhaWxzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9maXgtcmVnZXhwLXdlbGwta25vd24tc3ltYm9sLWxvZ2ljLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9mcmVlemluZy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZnVuY3Rpb24tYXBwbHkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtY29udGV4dC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1uYXRpdmUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLW5hbWUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9nZXQtaXRlcmF0b3ItbWV0aG9kLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9nZXQtaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2dldC1tZXRob2QuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2dsb2JhbC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaGlkZGVuLWtleXMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2h0bWwuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2llOC1kb20tZGVmaW5lLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbmRleGVkLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaW5oZXJpdC1pZi1yZXF1aXJlZC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaW5zcGVjdC1zb3VyY2UuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2ludGVybmFsLW1ldGFkYXRhLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtYXJyYXktaXRlcmF0b3ItbWV0aG9kLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1hcnJheS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtY2FsbGFibGUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2lzLWNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1mb3JjZWQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2lzLW9iamVjdC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtcHVyZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXMtcmVnZXhwLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pcy1zeW1ib2wuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL2l0ZXJhdG9yLWNsb3NlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9pdGVyYXRvcnMtY29yZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvaXRlcmF0b3JzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbWFrZS1idWlsdC1pbi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbWF0aC10cnVuYy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbmF0aXZlLXN5bWJvbC1yZWdpc3RyeS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbmF0aXZlLXN5bWJvbC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvbmF0aXZlLXdlYWstbWFwLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9ub3QtYS1yZWdleHAuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1hc3NpZ24uanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1jcmVhdGUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydGllcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMtZXh0ZXJuYWwuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1zeW1ib2xzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LWlzLWV4dGVuc2libGUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1rZXlzLWludGVybmFsLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3Qta2V5cy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvb2JqZWN0LXByb3BlcnR5LWlzLWVudW1lcmFibGUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL29iamVjdC1zZXQtcHJvdG90eXBlLW9mLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vYmplY3QtdG8tc3RyaW5nLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9vcmRpbmFyeS10by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL293bi1rZXlzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9wYXRoLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWdleHAtZXhlYy1hYnN0cmFjdC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3JlZ2V4cC1mbGFncy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVnZXhwLXN0aWNreS1oZWxwZXJzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9yZWdleHAtdW5zdXBwb3J0ZWQtZG90LWFsbC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVnZXhwLXVuc3VwcG9ydGVkLW5jZy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zYW1lLXZhbHVlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zY2hlZHVsZXJzLWZpeC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NoYXJlZC1rZXkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3NoYXJlZC1zdG9yZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc2hhcmVkLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zcGVjaWVzLWNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJpbmctbXVsdGlieXRlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJpbmctcmVwZWF0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy9zdHJpbmctdHJpbS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvc3ltYm9sLWRlZmluZS10by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RoaXMtbnVtYmVyLXZhbHVlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWludGVnZXItb3ItaW5maW5pdHkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLWxlbmd0aC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tb2JqZWN0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1wcmltaXRpdmUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RvLXByb3BlcnR5LWtleS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdG8tc3RyaW5nLXRhZy1zdXBwb3J0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy90by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3RyeS10by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3VpZC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvdXNlLXN5bWJvbC1hcy11aWQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvaW50ZXJuYWxzL3Y4LXByb3RvdHlwZS1kZWZpbmUtYnVnLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy92YWxpZGF0ZS1hcmd1bWVudHMtbGVuZ3RoLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC13cmFwcGVkLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9pbnRlcm5hbHMvd2hpdGVzcGFjZXMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5mcm9tLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmpvaW4uanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5yZXZlcnNlLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc2xpY2UuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zb3J0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLmpzb24uc3RyaW5naWZ5LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLmNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMubnVtYmVyLnRvLWZpeGVkLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmFzc2lnbi5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5mcmVlemUuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcnMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuZ2V0LW93bi1wcm9wZXJ0eS1uYW1lcy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5mbGFncy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5mcm9tLWNvZGUtcG9pbnQuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaW5jbHVkZXMuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcubWF0Y2guanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuc2VhcmNoLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnNwbGl0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmNvbnN0cnVjdG9yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmRlc2NyaXB0aW9uLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmZvci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbC5pdGVyYXRvci5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL2VzLnN5bWJvbC5rZXktZm9yLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2NvcmUtanMvbW9kdWxlcy93ZWIuc2V0LWludGVydmFsLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvd2ViLnNldC10aW1lb3V0LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jb3JlLWpzL21vZHVsZXMvd2ViLnRpbWVycy5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9jc3MvZW1vamktbWFydC5jc3MiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL3F1YXNhci1mcmFtZXdvcmsvZGlzdC91bWQvcXVhc2FyLm1hdC5jc3MiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vZG9jcy9hcHAudnVlPzA3MDMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvZ2V0VXJsLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9xdWFzYXItZnJhbWV3b3JrL2Rpc3QvcXVhc2FyLm1hdC5lc20uanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vZG9jcy9hcHAudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL0Vtb2ppLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9QaWNrZXIudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL2FuY2hvcnMudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL2NhdGVnb3J5LnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9wcmV2aWV3LnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9zZWFyY2gudnVlIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL3NraW5zLnZ1ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9kb2NzL2FwcC52dWU/NjRhMiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9FbW9qaS52dWU/NDg2OCIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9QaWNrZXIudnVlPzExNTEiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvYW5jaG9ycy52dWU/ODJmMyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9jYXRlZ29yeS52dWU/YjA4ZSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9wcmV2aWV3LnZ1ZT81YjE5Iiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL3NlYXJjaC52dWU/YTdjOSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9za2lucy52dWU/NGVhOSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9kb2NzL2FwcC52dWU/MGRmYiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9FbW9qaS52dWU/OWI5ZCIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9QaWNrZXIudnVlP2VkYTUiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvYW5jaG9ycy52dWU/NGU1NyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9jYXRlZ29yeS52dWU/NjAxMiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9wcmV2aWV3LnZ1ZT8wMmI1Iiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL3NlYXJjaC52dWU/MGZkOCIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9za2lucy52dWU/MTZhMSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9kb2NzL2FwcC52dWU/MDAyMiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9kb2NzL2FwcC52dWU/N2UyYiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9FbW9qaS52dWU/NmExNCIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9QaWNrZXIudnVlPzhmNmMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vc3JjL2NvbXBvbmVudHMvYW5jaG9ycy52dWU/ZGNlZiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9jYXRlZ29yeS52dWU/NzRkNSIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9wcmV2aWV3LnZ1ZT9iNTRhIiwid2VicGFjazovL0Vtb2ppTWFydC8uL3NyYy9jb21wb25lbnRzL3NlYXJjaC52dWU/NzdkZCIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9zcmMvY29tcG9uZW50cy9za2lucy52dWU/NTY5YiIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL2Nzcy9lbW9qaS1tYXJ0LmNzcz9mN2I5Iiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9xdWFzYXItZnJhbWV3b3JrL2Rpc3QvdW1kL3F1YXNhci5tYXQuY3NzPzY0YmYiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vZG9jcy9hcHAudnVlP2EyNWIiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL3Z1ZS1zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlc0NsaWVudC5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvdnVlLXN0eWxlLWxvYWRlci9saWIvbGlzdFRvU3R5bGVzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy92dWUvZGlzdC92dWUucnVudGltZS5lc20uanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5TGlrZVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FycmF5V2l0aG91dEhvbGVzLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jbGFzc0NhbGxDaGVjay5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vY3JlYXRlQ2xhc3MuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2RlZmluZVByb3BlcnR5LmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9pdGVyYWJsZVRvQXJyYXkuanMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0Ly4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL25vbkl0ZXJhYmxlU3ByZWFkLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS90b0NvbnN1bWFibGVBcnJheS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdHlwZW9mLmpzIiwid2VicGFjazovL0Vtb2ppTWFydC8uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheS5qcyIsIndlYnBhY2s6Ly9FbW9qaU1hcnQvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL0Vtb2ppTWFydC93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svcnVudGltZS9nbG9iYWwiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vRW1vamlNYXJ0L3dlYnBhY2svcnVudGltZS9qc29ucCBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL0Vtb2ppTWFydC8uL2RvY3MvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiRW1vamlNYXJ0XCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcIkVtb2ppTWFydFwiXSA9IGZhY3RvcnkoKTtcbn0pKHNlbGYsIGZ1bmN0aW9uKCkge1xucmV0dXJuICIsIjx0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cImFwcFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxoMT5FbW9qaSBNYXJ0IFZ1ZSDwn4+sPC9oMT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZW1vamkgOmRhdGE9XCJpbmRleFwiIGVtb2ppPVwiOnNhbnRhOjpza2luLXRvbmUtMzpcIiA6c2l6ZT1cIjMyXCIgLz5cbiAgICAgIDxlbW9qaSA6ZGF0YT1cImluZGV4XCIgZW1vamk9XCJzYW50YVwiIHNldD1cInR3aXR0ZXJcIiA6c2l6ZT1cIjMyXCIgLz5cbiAgICAgIDxlbW9qaSA6ZGF0YT1cImluZGV4XCIgOmVtb2ppPVwic2FudGFFbW9qaU9iamVjdFwiIDpzaXplPVwiMzJcIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJ0b2dnbGVWaXNpYmxlXCI+U2hvdyAvIGhpZGUgdGhlIHBpY2tlcjwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XCJ0b2dnbGVWaXNpYmxlXCIgdi1odG1sPVwic21pbGVcIj48L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDx0ZW1wbGF0ZVxuICAgICAgICB2LWZvcj1cInNldCBpbiBbJ25hdGl2ZScsICdhcHBsZScsICdnb29nbGUnLCAndHdpdHRlcicsICdmYWNlYm9vayddXCJcbiAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIDprZXk9XCJzZXRcIlxuICAgICAgICAgIEBjbGljaz1cImFjdGl2ZVNldCA9IHNldFwiXG4gICAgICAgICAgOmRpc2FibGVkPVwiYWN0aXZlU2V0ID09IHNldFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBzZXQgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L3RlbXBsYXRlPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiB2LWlmPVwiaXNWaXNpYmxlXCIgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxwaWNrZXJcbiAgICAgICAgOmRhdGE9XCJpbmRleFwiXG4gICAgICAgIDpzZXQ9XCJhY3RpdmVTZXRcIlxuICAgICAgICA6bmF0aXZlPVwibmF0aXZlXCJcbiAgICAgICAgOmVtb2ppPVwiZW1vamlcIlxuICAgICAgICA6ZW1vamlUb29sdGlwPVwidHJ1ZVwiXG4gICAgICAgIDp0aXRsZT1cInRpdGxlXCJcbiAgICAgICAgOmVtb2ppU2l6ZT1cIjMwXCJcbiAgICAgICAgQHNlbGVjdD1cInNob3dFbW9qaVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGVtb2ppXG4gICAgICAgIHYtZm9yPVwiZW1vIGluIHNlbGVjdGVkRW1vamlzXCJcbiAgICAgICAgOmtleT1cImVtb1wiXG4gICAgICAgIDpkYXRhPVwiaW5kZXhcIlxuICAgICAgICA6ZW1vamk9XCJlbW9cIlxuICAgICAgICA6c2V0PVwiYWN0aXZlU2V0XCJcbiAgICAgICAgOm5hdGl2ZT1cIm5hdGl2ZVwiXG4gICAgICAgIDpzaXplPVwiMzJcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIHt7IGVtb2ppc091dHB1dCB9fVxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvdy1zbWFsbFwiPlxuICAgICAgPGlmcmFtZVxuICAgICAgICBzcmM9XCJodHRwczovL2doYnRucy5jb20vZ2l0aHViLWJ0bi5odG1sP3VzZXI9c2VyZWJyb3YmcmVwbz1lbW9qaS1tYXJ0LXZ1ZSZ0eXBlPXN0YXImY291bnQ9dHJ1ZVwiXG4gICAgICAgIGZyYW1lQm9yZGVyPVwiMFwiXG4gICAgICAgIHNjcm9sbGluZz1cIjBcIlxuICAgICAgICB3aWR0aD1cIjkwcHhcIlxuICAgICAgICBoZWlnaHQ9XCIyMHB4XCJcbiAgICAgID48L2lmcmFtZT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj48L2Rpdj5cbiAgICA8aDI+UURpYWxvZyBFeGFtcGxlPC9oMj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8cS1idG4gbGFiZWw9XCJPcGVuIFFEaWFsb2dcIiBAY2xpY2s9XCJlbW9qaVBpY2tlckRpYWxvZyA9IHRydWVcIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgPHEtZGlhbG9nIHYtbW9kZWw9XCJlbW9qaVBpY2tlckRpYWxvZ1wiPlxuICAgICAgPHRlbXBsYXRlIHYtc2xvdDpib2R5IHN0eWxlPVwiaGVpZ2h0OiA0NTBweFwiPlxuICAgICAgICA8cGlja2VyIDpkYXRhPVwiaW5kZXhcIiA6ZW1vamlTaXplPVwiMjRcIiA6bmF0aXZlPVwidHJ1ZVwiPjwvcGlja2VyPlxuICAgICAgPC90ZW1wbGF0ZT5cbiAgICA8L3EtZGlhbG9nPlxuXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPjwvZGl2PlxuICAgIDxoMj5DdXN0b20gRGlhbG9nIEV4YW1wbGU8L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxidXR0b24gQGNsaWNrPVwiZW1vamlQaWNrZXJDdXN0b21EaWFsb2cgPSB0cnVlXCI+XG4gICAgICAgIE9wZW4gQ3VzdG9tIERpYWxvZ1xuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicG9wdXBcIiB2LWlmPVwiZW1vamlQaWNrZXJDdXN0b21EaWFsb2dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1ib3hcIiBAY2xpY2s9XCJlbW9qaVBpY2tlckN1c3RvbURpYWxvZyA9IGZhbHNlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCIgQGNsaWNrPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWNsb3NlXCI+XG4gICAgICAgICAgICA8YSBAY2xpY2s9XCJlbW9qaVBpY2tlckN1c3RvbURpYWxvZyA9IGZhbHNlXCI+WDwvYT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8aDI+RW1vamkgU2VsZWN0b3I8L2gyPlxuICAgICAgICAgIDxwaWNrZXIgOmRhdGE9XCJpbmRleFwiIDplbW9qaVNpemU9XCIyNFwiIDpuYXRpdmU9XCJ0cnVlXCI+PC9waWNrZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+PC9kaXY+XG4gICAgPGgyPkN1c3RvbSBTZWFyY2ggQW5kIFByZXZpZXcgVGVtcGxhdGVzIEV4YW1wbGU8L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxQaWNrZXIgOmRhdGE9XCJpbmRleFwiIDpuYXRpdmU9XCJ0cnVlXCI+XG4gICAgICAgIDx0ZW1wbGF0ZSBzbG90PVwic2VhcmNoVGVtcGxhdGVcIiBzbG90LXNjb3BlPVwic2xvdFByb3BzXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICA6cGxhY2Vob2xkZXI9XCJzbG90UHJvcHMuaTE4bi5zZWFyY2hcIlxuICAgICAgICAgICAgdi1vbjppbnB1dD1cInNsb3RQcm9wcy5vblNlYXJjaCgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC90ZW1wbGF0ZT5cbiAgICAgICAgPHRlbXBsYXRlIHNsb3Q9XCJwcmV2aWV3VGVtcGxhdGVcIiBzbG90LXNjb3BlPVwic2xvdFByb3BzXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlld1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1lbW9qaVwiPlxuICAgICAgICAgICAgICA8RW1vamlcbiAgICAgICAgICAgICAgICA6ZGF0YT1cInNsb3RQcm9wcy5kYXRhXCJcbiAgICAgICAgICAgICAgICA6ZW1vamk9XCJzbG90UHJvcHMuZW1vamkgPyBzbG90UHJvcHMuZW1vamkgOiAncG9pbnRfdXAnXCJcbiAgICAgICAgICAgICAgICA6bmF0aXZlPVwic2xvdFByb3BzLmVtb2ppUHJvcHMubmF0aXZlXCJcbiAgICAgICAgICAgICAgICA6c2tpbj1cInNsb3RQcm9wcy5lbW9qaVByb3BzLnNraW5cIlxuICAgICAgICAgICAgICAgIDpzZXQ9XCJzbG90UHJvcHMuZW1vamlQcm9wcy5zZXRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1vamktbWFydC1wcmV2aWV3LWRhdGFcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1uYW1lXCI+XG4gICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgIHNsb3RQcm9wcy5lbW9qaVxuICAgICAgICAgICAgICAgICAgICA/ICd+JyArIHNsb3RQcm9wcy5lbW9qaS5uYW1lICsgJ34nXG4gICAgICAgICAgICAgICAgICAgIDogJ0Nob29zZS4uLidcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWVzXCI+XG4gICAgICAgICAgICAgICAge3sgc2xvdFByb3BzLmVtb2ppID8gc2xvdFByb3BzLmVtb2ppLmNvbG9ucyA6ICcnIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICA8L1BpY2tlcj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj48L2Rpdj5cbiAgICA8aDI+RmlsdGVyZWQgcGlja2VyIGV4YW1wbGU8L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIiB2LXNob3c9XCJmbGFnc1Zpc2libGVcIj5cbiAgICAgIDxQaWNrZXJcbiAgICAgICAgOm5hdGl2ZT1cInRydWVcIlxuICAgICAgICBlbW9qaT1cImZsYWctdGZcIlxuICAgICAgICA6ZW1vamlTaXplPVwiMThcIlxuICAgICAgICA6ZGF0YT1cImluZGV4RmlsdGVyZWRcIlxuICAgICAgICByZWY9XCJmbGFnc1wiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxidXR0b24gQGNsaWNrPVwidG9nZ2xlRmxhZ3NWaXNpYmxlXCI+XG4gICAgICAgIFNob3cgLyBoaWRlIHRoZSBmbGFncyBwaWNrZXIgKHdpdGggdi1zaG93KVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+PC9kaXY+XG4gICAgPGgyPkkxOG4gcGlja2VyIGV4YW1wbGU8L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxQaWNrZXIgZW1vamk9XCJkZXBhcnRtZW50X3N0b3JlXCIgOmRhdGE9XCJpbmRleEkxOG5cIiA6aTE4bj1cImkxOG5cIiAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPjwvZGl2PlxuICAgIDxoMj5DdXN0b20gb3JkZXIgZXhhbXBsZTwvaDI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPFBpY2tlciA6ZGF0YT1cImluZGV4SW5jbHVkZVwiIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+PC9kaXY+XG4gICAgPGgyPlNtYWxsIHBpY2tlciBleGFtcGxlPC9oMj5cbiAgICA8ZGl2IGNsYXNzPVwicm93IHJvdy1zbWFsbC1waWNrZXJcIj5cbiAgICAgIDxQaWNrZXJcbiAgICAgICAgOmRhdGE9XCJpbmRleFwiXG4gICAgICAgIDpuYXRpdmU9XCJuYXRpdmVcIlxuICAgICAgICA6c2V0PVwiYWN0aXZlU2V0XCJcbiAgICAgICAgOmVtb2ppU2l6ZT1cIjEyXCJcbiAgICAgICAgOnBlckxpbmU9XCI1XCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCBkYXRhIGZyb20gJy4uL2RhdGEvYWxsLmpzb24nXG5pbXBvcnQgeyBQaWNrZXIsIEVtb2ppLCBFbW9qaUluZGV4IH0gZnJvbSAnLi4vc3JjJ1xuaW1wb3J0ICcuLi9jc3MvZW1vamktbWFydC5jc3MnXG5cbmltcG9ydCB7IFFCdG4sIFFEaWFsb2cgfSBmcm9tICdxdWFzYXItZnJhbWV3b3JrL2Rpc3QvcXVhc2FyLm1hdC5lc20nXG5cbmNvbnN0IENVU1RPTV9FTU9KSVMgPSBbXG4gIHtcbiAgICBuYW1lOiAnUGFydHkgUGFycm90JyxcbiAgICBzaG9ydF9uYW1lczogWydwYXJyb3QnXSxcbiAgICBrZXl3b3JkczogWydwYXJ0eSddLFxuICAgIGltYWdlVXJsOiAnLi9pbWFnZXMvcGFycm90LmdpZicsXG4gIH0sXG4gIHtcbiAgICBuYW1lOiAnT2N0b2NhdCcsXG4gICAgc2hvcnRfbmFtZXM6IFsnb2N0b2NhdCddLFxuICAgIGtleXdvcmRzOiBbJ2dpdGh1YiddLFxuICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9naXRodWIuZ2l0aHViYXNzZXRzLmNvbS9pbWFnZXMvaWNvbnMvZW1vamkvb2N0b2NhdC5wbmcnLFxuICB9LFxuICB7XG4gICAgbmFtZTogJ1NxdWlycmVsJyxcbiAgICBzaG9ydF9uYW1lczogWydzaGlwaXQnLCAnc3F1aXJyZWwnXSxcbiAgICBrZXl3b3JkczogWydnaXRodWInXSxcbiAgICBpbWFnZVVybDogJ2h0dHBzOi8vZ2l0aHViLmdpdGh1YmFzc2V0cy5jb20vaW1hZ2VzL2ljb25zL2Vtb2ppL3NoaXBpdC5wbmcnLFxuICB9LFxuXVxuXG5sZXQgaW5kZXggPSBuZXcgRW1vamlJbmRleChkYXRhLCB7XG4gIGN1c3RvbTogQ1VTVE9NX0VNT0pJUyxcbn0pXG5cbmxldCBpbmRleEZpbHRlcmVkID0gbmV3IEVtb2ppSW5kZXgoZGF0YSwge1xuICBjdXN0b206IENVU1RPTV9FTU9KSVMsXG4gIGVtb2ppc1RvU2hvd0ZpbHRlcjogKGVtb2ppKSA9PiB7XG4gICAgcmV0dXJuIGVtb2ppLnNob3J0X25hbWVzWzBdLm1hdGNoKC9eZmxhZy4qLykgIT09IG51bGxcbiAgfSxcbn0pXG5cbmNvbnN0IGkxOG4gPSB7XG4gIGNhdGVnb3JpZXM6IHtcbiAgICBzZWFyY2g6ICfmkJzntKLnu5PmnpwnLFxuICAgIHJlY2VudDogJ+e7j+W4uOS9v+eUqCcsXG4gICAgc21pbGV5czogJ+W/g+aDhScsXG4gICAgcGVvcGxlOiAn5Lq654mpJyxcbiAgICBuYXR1cmU6ICfliqjniakgJiDlpKfoh6rnhLYnLFxuICAgIGZvb2RzOiAn6aOf54mpICYg6aWu5paZJyxcbiAgICBhY3Rpdml0eTogJ+a0u+WKqCcsXG4gICAgcGxhY2VzOiAn5peF6KGMICYg5Zyw5qCHJyxcbiAgICBvYmplY3RzOiAn54mp5L2TJyxcbiAgICBzeW1ib2xzOiAn56ym5Y+3JyxcbiAgICBmbGFnczogJ+WbveaXlycsXG4gICAgY3VzdG9tOiAn6Ieq5a6a5LmJJyxcbiAgfSxcbn1cblxuY29uc3QgaW5kZXhJMThuID0gbmV3IEVtb2ppSW5kZXgoZGF0YSwge1xuICBleGNsdWRlOiBbXG4gICAgJ2ZsYWdzJyxcbiAgICAnc3ltYm9scycsXG4gICAgJ29iamVjdHMnLFxuICAgICdhY3Rpdml0eScsXG4gICAgJ2Zvb2RzJyxcbiAgICAncGVvcGxlJyxcbiAgICAncGxhY2VzJyxcbiAgXSxcbn0pXG5cbmNvbnN0IGluZGV4SW5jbHVkZSA9IG5ldyBFbW9qaUluZGV4KGRhdGEsIHtcbiAgaW5jbHVkZTogWyduYXR1cmUnLCAnc21pbGV5cycsICdyZWNlbnQnXSxcbn0pXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgaW5kZXhGaWx0ZXJlZDogaW5kZXhGaWx0ZXJlZCxcbiAgICAgIGluZGV4SW5jbHVkZTogaW5kZXhJbmNsdWRlLFxuICAgICAgaW5kZXhJMThuOiBpbmRleEkxOG4sXG4gICAgICBpMThuOiBpMThuLFxuICAgICAgYWN0aXZlU2V0OiAnbmF0aXZlJyxcbiAgICAgIGVtb2ppOiAncG9pbnRfdXAnLFxuICAgICAgdGl0bGU6ICdQaWNrIHlvdXIgZW1vamnigKYnLFxuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgICAgZW1vamlQaWNrZXJEaWFsb2c6IGZhbHNlLFxuICAgICAgZW1vamlQaWNrZXJDdXN0b21EaWFsb2c6IGZhbHNlLFxuICAgICAgZW1vamlzT3V0cHV0OiAnJyxcbiAgICAgIHNlbGVjdGVkRW1vamlzOiBbXSxcbiAgICAgIGZsYWdzVmlzaWJsZTogdHJ1ZSxcbiAgICB9XG4gIH0sXG4gIGNvbXB1dGVkOiB7XG4gICAgbmF0aXZlKCkge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlU2V0ID09ICduYXRpdmUnXG4gICAgfSxcbiAgICBzbWlsZSgpIHtcbiAgICAgIC8vIFN0YXRpYyBlbW9qaSBleGFtcGxlXG4gICAgICBsZXQgZW1vamkgPSBpbmRleC5maW5kRW1vamkoJzpzbWlsZTonKVxuICAgICAgLy8gTm90ZSwgdGhhdCBwb3NpdGlvbiBpbiB0aGUgZW1vamkgc2hlZXQgaXMgY2FsY3VsYXRlZCBieVxuICAgICAgLy8gYGVtb2ppYCBvYmplY3RcbiAgICAgIGxldCBzdHlsZSA9IGBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAke2Vtb2ppLmdldFBvc2l0aW9uKCl9OyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cHM6Ly91bnBrZy5jb20vZW1vamktZGF0YXNvdXJjZS10d2l0dGVyQDE0LjAuMC9pbWcvdHdpdHRlci9zaGVldHMtMjU2LzY0LnBuZyk7IHdpZHRoOiAyNHB4OyBoZWlnaHQ6IDI0cHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYmFja2dyb3VuZC1zaXplOiA1NzAwJWBcbiAgICAgIHJldHVybiBgPGRpdiBjbGFzcz0nZW1vamknIHN0eWxlPVwiJHtzdHlsZX1cIj48L2Rpdj5gXG4gICAgfSxcbiAgICBzYW50YUVtb2ppT2JqZWN0KCkge1xuICAgICAgcmV0dXJuIGluZGV4LmZpbmRFbW9qaSgnOnNhbnRhOicpXG4gICAgfSxcbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIHRvZ2dsZVZpc2libGUoKSB7XG4gICAgICB0aGlzLmlzVmlzaWJsZSA9ICF0aGlzLmlzVmlzaWJsZVxuICAgIH0sXG4gICAgdG9nZ2xlRmxhZ3NWaXNpYmxlKCkge1xuICAgICAgdGhpcy5mbGFnc1Zpc2libGUgPSAhdGhpcy5mbGFnc1Zpc2libGVcbiAgICAgIGlmICghdGhpcy5mbGFnc1Zpc2libGUpIHtcbiAgICAgICAgdGhpcy4kcmVmcy5mbGFncy5vbkFuY2hvckNsaWNrKHRoaXMuJHJlZnMuZmxhZ3MuY2F0ZWdvcmllc1swXSlcbiAgICAgIH1cbiAgICB9LFxuICAgIHNob3dFbW9qaShlbW9qaSkge1xuICAgICAgdGhpcy5zZWxlY3RlZEVtb2ppcy5wdXNoKGVtb2ppKVxuICAgICAgaWYgKGVtb2ppLm5hdGl2ZSkge1xuICAgICAgICB0aGlzLmVtb2ppc091dHB1dCA9IHRoaXMuZW1vamlzT3V0cHV0ICsgZW1vamkubmF0aXZlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVtb2ppc091dHB1dCA9IHRoaXMuZW1vamlzT3V0cHV0ICsgJz8nXG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgY29tcG9uZW50czoge1xuICAgIFBpY2tlcixcbiAgICBFbW9qaSxcbiAgICBRQnRuLFxuICAgIFFEaWFsb2csXG4gIH0sXG59XG48L3NjcmlwdD5cblxuPHN0eWxlIHNjb3BlZD5cbmJ1dHRvbiArIGJ1dHRvbiB7XG4gIG1hcmdpbi1sZWZ0OiAwLjVlbTtcbn1cbmJ1dHRvbiB7XG4gIHBhZGRpbmc6IDAuNGVtIDAuNmVtO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgb3V0bGluZTogMDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5idXR0b25bZGlzYWJsZWRdIHtcbiAgYm9yZGVyLWNvbG9yOiAjYWU2NWM1O1xuICBjdXJzb3I6IGRlZmF1bHQ7XG59XG5cbi5tb2RhbCB7XG4gIGNvbG9yOiByZWQ7XG59XG5cbi8qKlxuICogU2VlIGh0dHBzOi8vdnVlLWxvYWRlci52dWVqcy5vcmcvZ3VpZGUvc2NvcGVkLWNzcy5odG1sI2RlZXAtc2VsZWN0b3JzXG4gKiB0aGUgYD4+PmAgYWxsb3dzIHRvIGFwcGx5IHNjb3BlZCBjc3MgdG8gY2hpbGQgZWxlbWVudCB0aGF0IGlzIGdlbmVyYXRlZFxuICogZHluYW1pY2FsbHlcbioqL1xuLm1vZGFsID4+PiAubW9kYWwtc2Nyb2xsIHtcbiAgY29sb3I6IHJlZDtcbiAgbWF4LWhlaWdodDogbm9uZTtcbn1cbi5tb2RhbCAubW9kYWwtYm9keSB7XG4gIG1heC1oZWlnaHQ6IG5vbmU7XG59XG5cbmgxIHtcbiAgZm9udC1mYW1pbHk6IENvdXJpZXI7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbn1cblxuaDIge1xuICBmb250LWZhbWlseTogQ291cmllcjtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICBtYXJnaW4tdG9wOiAycmVtO1xufVxuXG4uYXBwIC5yb3cge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLnJvdyArIC5yb3cge1xuICBtYXJnaW4tdG9wOiAyZW07XG59XG5cbi5yb3ctc21hbGwge1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG5cbi5lbW9qaS1tYXJ0IHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5lbW9qaS1tYXJ0LXRpdGxlLWxhYmVsIHtcbiAgZm9udC1zaXplOiAyMXB4O1xufVxuXG4ucG9wdXAge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHotaW5kZXg6IDIwMDtcbiAgYmFja2dyb3VuZDogcmViZWNjYXB1cnBsZTtcbiAgb3BhY2l0eTogOTUlO1xufVxuLnBvcHVwLWJveCB7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nLXRvcDogMTIwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA4MHB4O1xufVxuLnBvcHVwLWNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm94LXNoYWRvdzogMHB4IDI0cHggNTRweCByZ2JhKDIwLCAyOCwgNDksIDAuMTQpO1xuICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICBwYWRkaW5nOiA2cHggNnB4IDlweCA2cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogNDYycHg7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuLnBvcHVwLWNsb3NlIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDIwcHg7XG4gIHJpZ2h0OiAzMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5yb3ctc21hbGwtcGlja2VyID4+PiAuZW1vamktbWFydC1hbmNob3JzIHN2ZyB7XG4gIHdpZHRoOiA5cHg7XG4gIGhlaWdodDogOXB4O1xufVxuLnJvdy1zbWFsbC1waWNrZXIgPj4+IC5lbW9qaS1tYXJ0LXRpdGxlLWxhYmVsIHtcbiAgZm9udC1zaXplOiA5cHg7XG59XG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtcHJldmlldy1kYXRhIHtcbiAgbGVmdDogNDBweDtcbiAgZm9udC1zaXplOiA5cHg7XG59XG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtcHJldmlldy1uYW1lIHtcbiAgZm9udC1zaXplOiA5cHg7XG59XG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtcHJldmlldy1lbW9qaSAuZW1vamktdHlwZS1uYXRpdmUge1xuICBmb250LXNpemU6IDEycHg7XG4gIHdpZHRoOiAxMnB4O1xuICBoZWlnaHQ6IDEycHg7XG59XG48L3N0eWxlPlxuIiwiPHRlbXBsYXRlPlxuICA8Y29tcG9uZW50XG4gICAgOmlzPVwidGFnXCJcbiAgICB2LWlmPVwidmlldy5jYW5SZW5kZXJcIlxuICAgIDp0aXRsZT1cInZpZXcudGl0bGVcIlxuICAgIDphcmlhLWxhYmVsPVwidmlldy5hcmlhTGFiZWxcIlxuICAgIDpkYXRhLXRpdGxlPVwidGl0bGVcIlxuICAgIGNsYXNzPVwiZW1vamktbWFydC1lbW9qaVwiXG4gICAgQG1vdXNlZW50ZXI9XCJvbk1vdXNlRW50ZXJcIlxuICAgIEBtb3VzZWxlYXZlPVwib25Nb3VzZUxlYXZlXCJcbiAgICBAY2xpY2s9XCJvbkNsaWNrXCJcbiAgPlxuICAgIDxzcGFuIDpjbGFzcz1cInZpZXcuY3NzQ2xhc3NcIiA6c3R5bGU9XCJ2aWV3LmNzc1N0eWxlXCI+e3tcbiAgICAgIHZpZXcuY29udGVudFxuICAgIH19PC9zcGFuPlxuICA8L2NvbXBvbmVudD5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgeyBFbW9qaVByb3BzIH0gZnJvbSAnLi4vdXRpbHMvc2hhcmVkLXByb3BzJ1xuaW1wb3J0IHsgRW1vamlWaWV3IH0gZnJvbSAnLi4vdXRpbHMvZW1vamktZGF0YSdcblxuZXhwb3J0IGRlZmF1bHQge1xuICBwcm9wczoge1xuICAgIC4uLkVtb2ppUHJvcHMsXG4gICAgZGF0YToge1xuICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSxcbiAgfSxcbiAgY29tcHV0ZWQ6IHtcbiAgICB2aWV3KCkge1xuICAgICAgcmV0dXJuIG5ldyBFbW9qaVZpZXcoXG4gICAgICAgIHRoaXMuZW1vamlPYmplY3QsXG4gICAgICAgIHRoaXMuc2tpbixcbiAgICAgICAgdGhpcy5zZXQsXG4gICAgICAgIHRoaXMubmF0aXZlLFxuICAgICAgICB0aGlzLmZhbGxiYWNrLFxuICAgICAgICB0aGlzLnRvb2x0aXAsXG4gICAgICAgIHRoaXMuc2l6ZSxcbiAgICAgIClcbiAgICB9LFxuICAgIHNhbml0aXplZERhdGEoKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbW9qaU9iamVjdC5fc2FuaXRpemVkXG4gICAgfSxcbiAgICB0aXRsZSgpIHtcbiAgICAgIHJldHVybiB0aGlzLnRvb2x0aXAgPyB0aGlzLmVtb2ppT2JqZWN0LnNob3J0X25hbWUgOiBudWxsXG4gICAgfSxcbiAgICBlbW9qaU9iamVjdCgpIHtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5lbW9qaSA9PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLmZpbmRFbW9qaSh0aGlzLmVtb2ppKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW1vamlcbiAgICAgIH1cbiAgICB9LFxuICB9LFxuICBjcmVhdGVkKCkge30sXG4gIG1ldGhvZHM6IHtcbiAgICBvbkNsaWNrKCkge1xuICAgICAgdGhpcy4kZW1pdCgnY2xpY2snLCB0aGlzLmVtb2ppT2JqZWN0KVxuICAgIH0sXG4gICAgb25Nb3VzZUVudGVyKCkge1xuICAgICAgdGhpcy4kZW1pdCgnbW91c2VlbnRlcicsIHRoaXMuZW1vamlPYmplY3QpXG4gICAgfSxcbiAgICBvbk1vdXNlTGVhdmUoKSB7XG4gICAgICB0aGlzLiRlbWl0KCdtb3VzZWxlYXZlJywgdGhpcy5lbW9qaU9iamVjdClcbiAgICB9LFxuICB9LFxufVxuPC9zY3JpcHQ+XG4iLCI8dGVtcGxhdGU+XG4gIDxzZWN0aW9uIGNsYXNzPVwiZW1vamktbWFydCBlbW9qaS1tYXJ0LXN0YXRpY1wiIDpzdHlsZT1cImN1c3RvbVN0eWxlc1wiPlxuICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LWJhciBlbW9qaS1tYXJ0LWJhci1hbmNob3JzXCIgdi1pZj1cInNob3dDYXRlZ29yaWVzXCI+XG4gICAgICA8YW5jaG9yc1xuICAgICAgICA6ZGF0YT1cImRhdGFcIlxuICAgICAgICA6aTE4bj1cIm1lcmdlZEkxOG5cIlxuICAgICAgICA6Y29sb3I9XCJjb2xvclwiXG4gICAgICAgIDpjYXRlZ29yaWVzPVwidmlldy5hbGxDYXRlZ29yaWVzXCJcbiAgICAgICAgOmFjdGl2ZS1jYXRlZ29yeT1cInZpZXcuYWN0aXZlQ2F0ZWdvcnlcIlxuICAgICAgICBAY2xpY2s9XCJvbkFuY2hvckNsaWNrXCJcbiAgICAgIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8c2xvdFxuICAgICAgbmFtZT1cInNlYXJjaFRlbXBsYXRlXCJcbiAgICAgIDpkYXRhPVwiZGF0YVwiXG4gICAgICA6aTE4bj1cImkxOG5cIlxuICAgICAgOmF1dG8tZm9jdXM9XCJhdXRvRm9jdXNcIlxuICAgICAgOm9uLXNlYXJjaD1cIm9uU2VhcmNoXCJcbiAgICA+XG4gICAgICA8c2VhcmNoXG4gICAgICAgIHYtaWY9XCJzaG93U2VhcmNoXCJcbiAgICAgICAgcmVmPVwic2VhcmNoXCJcbiAgICAgICAgOmRhdGE9XCJkYXRhXCJcbiAgICAgICAgOmkxOG49XCJtZXJnZWRJMThuXCJcbiAgICAgICAgOmF1dG8tZm9jdXM9XCJhdXRvRm9jdXNcIlxuICAgICAgICA6b24tc2VhcmNoPVwib25TZWFyY2hcIlxuICAgICAgICBAc2VhcmNoPVwib25TZWFyY2hcIlxuICAgICAgICBAYXJyb3dMZWZ0PVwib25BcnJvd0xlZnRcIlxuICAgICAgICBAYXJyb3dSaWdodD1cIm9uQXJyb3dSaWdodFwiXG4gICAgICAgIEBhcnJvd0Rvd249XCJvbkFycm93RG93blwiXG4gICAgICAgIEBhcnJvd1VwPVwib25BcnJvd1VwXCJcbiAgICAgICAgQGVudGVyPVwib25FbnRlclwiXG4gICAgICAvPlxuICAgIDwvc2xvdD5cblxuICAgIDxkaXZcbiAgICAgIHJvbGU9XCJ0YWJwYW5lbFwiXG4gICAgICBjbGFzcz1cImVtb2ppLW1hcnQtc2Nyb2xsXCJcbiAgICAgIHJlZj1cInNjcm9sbFwiXG4gICAgICBAc2Nyb2xsPVwib25TY3JvbGxcIlxuICAgID5cbiAgICAgIDxkaXZcbiAgICAgICAgaWQ9XCJlbW9qaS1tYXJ0LWxpc3RcIlxuICAgICAgICByZWY9XCJzY3JvbGxDb250ZW50XCJcbiAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgICBhcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxjYXRlZ29yeVxuICAgICAgICAgIHYtZm9yPVwiKGNhdGVnb3J5LCBpZHgpIGluIHZpZXcuZmlsdGVyZWRDYXRlZ29yaWVzXCJcbiAgICAgICAgICB2LXNob3c9XCJpbmZpbml0ZVNjcm9sbCB8fCBjYXRlZ29yeSA9PSB2aWV3LmFjdGl2ZUNhdGVnb3J5XCJcbiAgICAgICAgICA6cmVmPVwiJ2NhdGVnb3JpZXNfJyArIGlkeFwiXG4gICAgICAgICAgOmtleT1cImNhdGVnb3J5LmlkXCJcbiAgICAgICAgICA6ZGF0YT1cImRhdGFcIlxuICAgICAgICAgIDppMThuPVwibWVyZ2VkSTE4blwiXG4gICAgICAgICAgOmlkPVwiY2F0ZWdvcnkuaWRcIlxuICAgICAgICAgIDpuYW1lPVwiY2F0ZWdvcnkubmFtZVwiXG4gICAgICAgICAgOmVtb2ppcz1cImNhdGVnb3J5LmVtb2ppc1wiXG4gICAgICAgICAgOmVtb2ppLXByb3BzPVwiZW1vamlQcm9wc1wiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxzbG90XG4gICAgICBuYW1lPVwicHJldmlld1RlbXBsYXRlXCJcbiAgICAgIDpkYXRhPVwiZGF0YVwiXG4gICAgICA6dGl0bGU9XCJ0aXRsZVwiXG4gICAgICA6ZW1vamk9XCJ2aWV3LnByZXZpZXdFbW9qaVwiXG4gICAgICA6aWRsZS1lbW9qaT1cImlkbGVFbW9qaVwiXG4gICAgICA6c2hvdy1za2luLXRvbmVzPVwic2hvd1NraW5Ub25lc1wiXG4gICAgICA6ZW1vamktcHJvcHM9XCJlbW9qaVByb3BzXCJcbiAgICAgIDpza2luLXByb3BzPVwic2tpblByb3BzXCJcbiAgICAgIDpvbi1za2luLWNoYW5nZT1cIm9uU2tpbkNoYW5nZVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtYmFyIGVtb2ppLW1hcnQtYmFyLXByZXZpZXdcIiB2LWlmPVwic2hvd1ByZXZpZXdcIj5cbiAgICAgICAgPHByZXZpZXdcbiAgICAgICAgICA6ZGF0YT1cImRhdGFcIlxuICAgICAgICAgIDp0aXRsZT1cInRpdGxlXCJcbiAgICAgICAgICA6ZW1vamk9XCJ2aWV3LnByZXZpZXdFbW9qaVwiXG4gICAgICAgICAgOmlkbGUtZW1vamk9XCJpZGxlRW1vamlcIlxuICAgICAgICAgIDpzaG93LXNraW4tdG9uZXM9XCJzaG93U2tpblRvbmVzXCJcbiAgICAgICAgICA6ZW1vamktcHJvcHM9XCJlbW9qaVByb3BzXCJcbiAgICAgICAgICA6c2tpbi1wcm9wcz1cInNraW5Qcm9wc1wiXG4gICAgICAgICAgOm9uLXNraW4tY2hhbmdlPVwib25Ta2luQ2hhbmdlXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvc2xvdD5cbiAgPC9zZWN0aW9uPlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCAnLi4vdmVuZG9yL3JhZi1wb2x5ZmlsbCdcbmltcG9ydCBzdG9yZSBmcm9tICcuLi91dGlscy9zdG9yZSdcbmltcG9ydCBmcmVxdWVudGx5IGZyb20gJy4uL3V0aWxzL2ZyZXF1ZW50bHknXG5pbXBvcnQgeyBkZWVwTWVyZ2UsIG1lYXN1cmVTY3JvbGxiYXIgfSBmcm9tICcuLi91dGlscydcbmltcG9ydCB7IFBpY2tlclByb3BzIH0gZnJvbSAnLi4vdXRpbHMvc2hhcmVkLXByb3BzJ1xuaW1wb3J0IHsgUGlja2VyVmlldyB9IGZyb20gJy4uL3V0aWxzL3BpY2tlcidcbmltcG9ydCBBbmNob3JzIGZyb20gJy4vYW5jaG9ycy52dWUnXG5pbXBvcnQgQ2F0ZWdvcnkgZnJvbSAnLi9jYXRlZ29yeS52dWUnXG5pbXBvcnQgUHJldmlldyBmcm9tICcuL3ByZXZpZXcudnVlJ1xuaW1wb3J0IFNlYXJjaCBmcm9tICcuL3NlYXJjaC52dWUnXG5cbmNvbnN0IEkxOE4gPSB7XG4gIHNlYXJjaDogJ1NlYXJjaCcsXG4gIG5vdGZvdW5kOiAnTm8gRW1vamkgRm91bmQnLFxuICBjYXRlZ29yaWVzOiB7XG4gICAgc2VhcmNoOiAnU2VhcmNoIFJlc3VsdHMnLFxuICAgIHJlY2VudDogJ0ZyZXF1ZW50bHkgVXNlZCcsXG4gICAgc21pbGV5czogJ1NtaWxleXMgJiBFbW90aW9uJyxcbiAgICBwZW9wbGU6ICdQZW9wbGUgJiBCb2R5JyxcbiAgICBuYXR1cmU6ICdBbmltYWxzICYgTmF0dXJlJyxcbiAgICBmb29kczogJ0Zvb2QgJiBEcmluaycsXG4gICAgYWN0aXZpdHk6ICdBY3Rpdml0eScsXG4gICAgcGxhY2VzOiAnVHJhdmVsICYgUGxhY2VzJyxcbiAgICBvYmplY3RzOiAnT2JqZWN0cycsXG4gICAgc3ltYm9sczogJ1N5bWJvbHMnLFxuICAgIGZsYWdzOiAnRmxhZ3MnLFxuICAgIGN1c3RvbTogJ0N1c3RvbScsXG4gIH0sXG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcHJvcHM6IHtcbiAgICAuLi5QaWNrZXJQcm9wcyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiBPYmplY3QsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9LFxuICB9LFxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICBhY3RpdmVTa2luOiB0aGlzLnNraW4gfHwgc3RvcmUuZ2V0KCdza2luJykgfHwgdGhpcy5kZWZhdWx0U2tpbixcbiAgICAgIHZpZXc6IG5ldyBQaWNrZXJWaWV3KHRoaXMpLFxuICAgIH1cbiAgfSxcbiAgY29tcHV0ZWQ6IHtcbiAgICBjdXN0b21TdHlsZXMoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB3aWR0aDogdGhpcy5jYWxjdWxhdGVXaWR0aCArICdweCcsXG4gICAgICAgIC4uLnRoaXMucGlja2VyU3R5bGVzLFxuICAgICAgfVxuICAgIH0sXG4gICAgZW1vamlQcm9wcygpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hdGl2ZTogdGhpcy5uYXRpdmUsXG4gICAgICAgIHNraW46IHRoaXMuYWN0aXZlU2tpbixcbiAgICAgICAgc2V0OiB0aGlzLnNldCxcbiAgICAgICAgZW1vamlUb29sdGlwOiB0aGlzLmVtb2ppVG9vbHRpcCxcbiAgICAgICAgZW1vamlTaXplOiB0aGlzLmVtb2ppU2l6ZSxcbiAgICAgICAgc2VsZWN0ZWRFbW9qaTogdGhpcy52aWV3LnByZXZpZXdFbW9qaSxcbiAgICAgICAgc2VsZWN0ZWRFbW9qaUNhdGVnb3J5OiB0aGlzLnZpZXcucHJldmlld0Vtb2ppQ2F0ZWdvcnksXG4gICAgICAgIG9uRW50ZXI6IHRoaXMub25FbW9qaUVudGVyLmJpbmQodGhpcyksXG4gICAgICAgIG9uTGVhdmU6IHRoaXMub25FbW9qaUxlYXZlLmJpbmQodGhpcyksXG4gICAgICAgIG9uQ2xpY2s6IHRoaXMub25FbW9qaUNsaWNrLmJpbmQodGhpcyksXG4gICAgICB9XG4gICAgfSxcbiAgICBza2luUHJvcHMoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBza2luOiB0aGlzLmFjdGl2ZVNraW4sXG4gICAgICB9XG4gICAgfSxcbiAgICBjYWxjdWxhdGVXaWR0aCgpIHtcbiAgICAgIHJldHVybiB0aGlzLnBlckxpbmUgKiAodGhpcy5lbW9qaVNpemUgKyAxMikgKyAxMiArIDIgKyBtZWFzdXJlU2Nyb2xsYmFyKClcbiAgICB9LFxuICAgIC8vIGVtb2ppc1BlclJvdygpIHtcbiAgICAvLyAgIGNvbnN0IGxpc3RFbCA9IHRoaXMuJHJlZnMuc2Nyb2xsQ29udGVudFxuICAgIC8vICAgY29uc3QgZW1vamlFbCA9IGxpc3RFbC5xdWVyeVNlbGVjdG9yKCcuZW1vamktbWFydC1lbW9qaScpXG4gICAgLy8gICByZXR1cm4gTWF0aC5mbG9vcihsaXN0RWwub2Zmc2V0V2lkdGggLyBlbW9qaUVsLm9mZnNldFdpZHRoKVxuICAgIC8vIH0sXG4gICAgZmlsdGVyZWRDYXRlZ29yaWVzKCkge1xuICAgICAgcmV0dXJuIHRoaXMudmlldy5maWx0ZXJlZENhdGVnb3JpZXNcbiAgICB9LFxuICAgIG1lcmdlZEkxOG4oKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmZyZWV6ZShkZWVwTWVyZ2UoSTE4TiwgdGhpcy5pMThuKSlcbiAgICB9LFxuICAgIGlkbGVFbW9qaSgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEuZW1vamkodGhpcy5lbW9qaSlcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnRGVmYXVsdCBwcmV2aWV3IGVtb2ppIGAnICtcbiAgICAgICAgICAgIHRoaXMuZW1vamkgK1xuICAgICAgICAgICAgJ2AgaXMgbm90IGF2YWlsYWJsZSwgY2hlY2sgdGhlIFBpY2tlciBgZW1vamlgIHByb3BlcnR5JyxcbiAgICAgICAgKVxuICAgICAgICBjb25zb2xlLmVycm9yKGUpXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEuZmlyc3RFbW9qaSgpXG4gICAgICB9XG4gICAgfSxcbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIG9uU2Nyb2xsKCkge1xuICAgICAgaWYgKHRoaXMuaW5maW5pdGVTY3JvbGwgJiYgIXRoaXMud2FpdGluZ0ZvclBhaW50KSB7XG4gICAgICAgIHRoaXMud2FpdGluZ0ZvclBhaW50ID0gdHJ1ZVxuICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMub25TY3JvbGxQYWludC5iaW5kKHRoaXMpKVxuICAgICAgfVxuICAgIH0sXG4gICAgb25TY3JvbGxQYWludCgpIHtcbiAgICAgIHRoaXMud2FpdGluZ0ZvclBhaW50ID0gZmFsc2VcbiAgICAgIHRoaXMudmlldy5vblNjcm9sbCgpXG4gICAgfSxcbiAgICBvbkFuY2hvckNsaWNrKGNhdGVnb3J5KSB7XG4gICAgICB0aGlzLnZpZXcub25BbmNob3JDbGljayhjYXRlZ29yeSlcbiAgICB9LFxuICAgIG9uU2VhcmNoKHZhbHVlKSB7XG4gICAgICB0aGlzLnZpZXcub25TZWFyY2godmFsdWUpXG4gICAgfSxcbiAgICBvbkVtb2ppRW50ZXIoZW1vamkpIHtcbiAgICAgIHRoaXMudmlldy5vbkVtb2ppRW50ZXIoZW1vamkpXG4gICAgfSxcbiAgICBvbkVtb2ppTGVhdmUoZW1vamkpIHtcbiAgICAgIHRoaXMudmlldy5vbkVtb2ppTGVhdmUoZW1vamkpXG4gICAgfSxcbiAgICBvbkFycm93TGVmdCgkZXZlbnQpIHtcbiAgICAgIGNvbnN0IG9sZElkeCA9IHRoaXMudmlldy5wcmV2aWV3RW1vamlJZHhcbiAgICAgIHRoaXMudmlldy5vbkFycm93TGVmdCgpXG4gICAgICBpZiAoJGV2ZW50ICYmIHRoaXMudmlldy5wcmV2aWV3RW1vamlJZHggIT09IG9sZElkeCkge1xuICAgICAgICAvLyBQcmV2ZW50IGN1cnNvciBtb3ZlbWVudCBpbnNpZGUgdGhlIGlucHV0XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG4gICAgfSxcbiAgICBvbkFycm93UmlnaHQoKSB7XG4gICAgICB0aGlzLnZpZXcub25BcnJvd1JpZ2h0KClcbiAgICB9LFxuICAgIG9uQXJyb3dEb3duKCkge1xuICAgICAgdGhpcy52aWV3Lm9uQXJyb3dEb3duKClcbiAgICB9LFxuICAgIG9uQXJyb3dVcCgkZXZlbnQpIHtcbiAgICAgIHRoaXMudmlldy5vbkFycm93VXAoKVxuICAgICAgLy8gUHJldmVudCBjdXJzb3IgbW92ZW1lbnQgaW5zaWRlIHRoZSBpbnB1dFxuICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB9LFxuICAgIG9uRW50ZXIoZW1vamkpIHtcbiAgICAgIHRoaXMuJGVtaXQoJ3NlbGVjdCcsIHRoaXMudmlldy5wcmV2aWV3RW1vamkpXG4gICAgICBmcmVxdWVudGx5LmFkZCh0aGlzLnZpZXcucHJldmlld0Vtb2ppKVxuICAgIH0sXG4gICAgb25FbW9qaUNsaWNrKGVtb2ppKSB7XG4gICAgICB0aGlzLiRlbWl0KCdzZWxlY3QnLCBlbW9qaSlcbiAgICAgIGZyZXF1ZW50bHkuYWRkKGVtb2ppKVxuICAgIH0sXG4gICAgb25Ta2luQ2hhbmdlKHNraW4pIHtcbiAgICAgIHRoaXMuYWN0aXZlU2tpbiA9IHNraW5cbiAgICAgIHN0b3JlLnVwZGF0ZSh7IHNraW4gfSlcblxuICAgICAgdGhpcy4kZW1pdCgnc2tpbi1jaGFuZ2UnLCBza2luKVxuICAgIH0sXG4gICAgZ2V0Q2F0ZWdvcnlDb21wb25lbnQoaW5kZXgpIHtcbiAgICAgIGxldCBjb21wb25lbnQgPSB0aGlzLiRyZWZzWydjYXRlZ29yaWVzXycgKyBpbmRleF1cbiAgICAgIGlmIChjb21wb25lbnQgJiYgJzAnIGluIGNvbXBvbmVudCkge1xuICAgICAgICAvLyBWdWUgMiBoYXMgJHJlZnMgdW5kZXIgdi1mb3IgYXMgYW4gYXJyYXkuXG4gICAgICAgIHJldHVybiBjb21wb25lbnRbJzAnXVxuICAgICAgfVxuICAgICAgLy8gVnVlIDMgZG9lcyBub3Qgc3VwcG9ydCAkcmVmcyBhcyBhcnJheS5cbiAgICAgIHJldHVybiBjb21wb25lbnRcbiAgICB9LFxuICB9LFxuICBjb21wb25lbnRzOiB7XG4gICAgQW5jaG9ycyxcbiAgICBDYXRlZ29yeSxcbiAgICBQcmV2aWV3LFxuICAgIFNlYXJjaCxcbiAgfSxcbn1cbjwvc2NyaXB0PlxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2IHJvbGU9XCJ0YWJsaXN0XCIgY2xhc3M9XCJlbW9qaS1tYXJ0LWFuY2hvcnNcIj5cbiAgICA8YnV0dG9uXG4gICAgICB2LWZvcj1cImNhdGVnb3J5IGluIGNhdGVnb3JpZXNcIlxuICAgICAgcm9sZT1cInRhYlwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIDphcmlhLWxhYmVsPVwiY2F0ZWdvcnkubmFtZVwiXG4gICAgICA6YXJpYS1zZWxlY3RlZD1cImNhdGVnb3J5LmlkID09IGFjdGl2ZUNhdGVnb3J5LmlkXCJcbiAgICAgIDprZXk9XCJjYXRlZ29yeS5pZFwiXG4gICAgICA6Y2xhc3M9XCJ7XG4gICAgICAgICdlbW9qaS1tYXJ0LWFuY2hvcic6IHRydWUsXG4gICAgICAgICdlbW9qaS1tYXJ0LWFuY2hvci1zZWxlY3RlZCc6IGNhdGVnb3J5LmlkID09IGFjdGl2ZUNhdGVnb3J5LmlkLFxuICAgICAgfVwiXG4gICAgICA6c3R5bGU9XCJ7IGNvbG9yOiBjYXRlZ29yeS5pZCA9PSBhY3RpdmVDYXRlZ29yeS5pZCA/IGNvbG9yIDogJycgfVwiXG4gICAgICA6ZGF0YS10aXRsZT1cImkxOG4uY2F0ZWdvcmllc1tjYXRlZ29yeS5pZF1cIlxuICAgICAgQGNsaWNrPVwiJGVtaXQoJ2NsaWNrJywgY2F0ZWdvcnkpXCJcbiAgICA+XG4gICAgICA8ZGl2IGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHYtaHRtbD1cInN2Z3NbY2F0ZWdvcnkuaWRdXCIgLz5cbiAgICAgIDxzcGFuXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIGNsYXNzPVwiZW1vamktbWFydC1hbmNob3ItYmFyXCJcbiAgICAgICAgOnN0eWxlPVwieyBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yIH1cIlxuICAgICAgPjwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IHN2Z3MgZnJvbSAnLi4vc3ZncydcblxuZXhwb3J0IGRlZmF1bHQge1xuICBwcm9wczoge1xuICAgIGkxOG46IHtcbiAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAgY29sb3I6IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICB9LFxuICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgIHR5cGU6IEFycmF5LFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSxcbiAgICBhY3RpdmVDYXRlZ29yeToge1xuICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgZGVmYXVsdCgpIHtcbiAgICAgICAgcmV0dXJuIHt9XG4gICAgICB9LFxuICAgIH0sXG4gIH0sXG4gIGNyZWF0ZWQoKSB7XG4gICAgdGhpcy5zdmdzID0gc3Znc1xuICB9LFxufVxuPC9zY3JpcHQ+XG4iLCI8dGVtcGxhdGU+XG4gIDxzZWN0aW9uXG4gICAgOmNsYXNzPVwie1xuICAgICAgJ2Vtb2ppLW1hcnQtY2F0ZWdvcnknOiB0cnVlLFxuICAgICAgJ2Vtb2ppLW1hcnQtbm8tcmVzdWx0cyc6ICFoYXNSZXN1bHRzLFxuICAgIH1cIlxuICAgIDphcmlhLWxhYmVsPVwiaTE4bi5jYXRlZ29yaWVzW2lkXVwiXG4gICAgdi1pZj1cImlzVmlzaWJsZSAmJiAoaXNTZWFyY2ggfHwgaGFzUmVzdWx0cylcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWxcIj5cbiAgICAgIDxoMyBjbGFzcz1cImVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWxcIj57eyBpMThuLmNhdGVnb3JpZXNbaWRdIH19PC9oMz5cbiAgICA8L2Rpdj5cblxuICAgIDx0ZW1wbGF0ZSB2LWZvcj1cInsgZW1vamlPYmplY3QsIGVtb2ppVmlldyB9IGluIGVtb2ppT2JqZWN0c1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB2LWlmPVwiZW1vamlWaWV3LmNhblJlbmRlclwiXG4gICAgICAgIDphcmlhLWxhYmVsPVwiZW1vamlWaWV3LmFyaWFMYWJlbFwiXG4gICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICBhcmlhLXNlbGVjdGVkPVwiZmFsc2VcIlxuICAgICAgICBhcmlhLXBvc2luc2V0PVwiMVwiXG4gICAgICAgIGFyaWEtc2V0c2l6ZT1cIjE4MTJcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgOmRhdGEtdGl0bGU9XCJlbW9qaU9iamVjdC5zaG9ydF9uYW1lXCJcbiAgICAgICAgOmtleT1cImVtb2ppT2JqZWN0LmlkXCJcbiAgICAgICAgOnRpdGxlPVwiZW1vamlWaWV3LnRpdGxlXCJcbiAgICAgICAgY2xhc3M9XCJlbW9qaS1tYXJ0LWVtb2ppXCJcbiAgICAgICAgOmNsYXNzPVwiYWN0aXZlQ2xhc3MoZW1vamlPYmplY3QpXCJcbiAgICAgICAgQG1vdXNlZW50ZXI9XCJlbW9qaVByb3BzLm9uRW50ZXIoZW1vamlWaWV3LmdldEVtb2ppKCkpXCJcbiAgICAgICAgQG1vdXNlbGVhdmU9XCJlbW9qaVByb3BzLm9uTGVhdmUoZW1vamlWaWV3LmdldEVtb2ppKCkpXCJcbiAgICAgICAgQGNsaWNrPVwiZW1vamlQcm9wcy5vbkNsaWNrKGVtb2ppVmlldy5nZXRFbW9qaSgpKVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIDpjbGFzcz1cImVtb2ppVmlldy5jc3NDbGFzc1wiIDpzdHlsZT1cImVtb2ppVmlldy5jc3NTdHlsZVwiPnt7XG4gICAgICAgICAgZW1vamlWaWV3LmNvbnRlbnRcbiAgICAgICAgfX08L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L3RlbXBsYXRlPlxuXG4gICAgPGRpdiB2LWlmPVwiIWhhc1Jlc3VsdHNcIj5cbiAgICAgIDxlbW9qaVxuICAgICAgICA6ZGF0YT1cImRhdGFcIlxuICAgICAgICBlbW9qaT1cInNsZXV0aF9vcl9zcHlcIlxuICAgICAgICA6bmF0aXZlPVwiZW1vamlQcm9wcy5uYXRpdmVcIlxuICAgICAgICA6c2tpbj1cImVtb2ppUHJvcHMuc2tpblwiXG4gICAgICAgIDpzZXQ9XCJlbW9qaVByb3BzLnNldFwiXG4gICAgICAvPlxuICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtbm8tcmVzdWx0cy1sYWJlbFwiPnt7IGkxOG4ubm90Zm91bmQgfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCB7IEVtb2ppVmlldyB9IGZyb20gJy4uL3V0aWxzL2Vtb2ppLWRhdGEnXG5pbXBvcnQgRW1vamkgZnJvbSAnLi9FbW9qaS52dWUnXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcHJvcHM6IHtcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiBPYmplY3QsXG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICB9LFxuICAgIGkxOG46IHtcbiAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAgaWQ6IHtcbiAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAgbmFtZToge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSxcbiAgICBlbW9qaXM6IHtcbiAgICAgIHR5cGU6IEFycmF5LFxuICAgIH0sXG4gICAgZW1vamlQcm9wczoge1xuICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSxcbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIGFjdGl2ZUNsYXNzOiBmdW5jdGlvbihlbW9qaU9iamVjdCkge1xuICAgICAgaWYgKCF0aGlzLmVtb2ppUHJvcHMuc2VsZWN0ZWRFbW9qaSkge1xuICAgICAgICByZXR1cm4gJydcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5lbW9qaVByb3BzLnNlbGVjdGVkRW1vamlDYXRlZ29yeSkge1xuICAgICAgICByZXR1cm4gJydcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5lbW9qaVByb3BzLnNlbGVjdGVkRW1vamkuaWQgPT0gZW1vamlPYmplY3QuaWQgJiZcbiAgICAgICAgdGhpcy5lbW9qaVByb3BzLnNlbGVjdGVkRW1vamlDYXRlZ29yeS5pZCA9PSB0aGlzLmlkXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuICdlbW9qaS1tYXJ0LWVtb2ppLXNlbGVjdGVkJ1xuICAgICAgfVxuICAgICAgcmV0dXJuICcnXG4gICAgfSxcbiAgfSxcbiAgY29tcHV0ZWQ6IHtcbiAgICBpc1Zpc2libGUoKSB7XG4gICAgICByZXR1cm4gISF0aGlzLmVtb2ppc1xuICAgIH0sXG4gICAgaXNTZWFyY2goKSB7XG4gICAgICByZXR1cm4gdGhpcy5uYW1lID09ICdTZWFyY2gnXG4gICAgfSxcbiAgICBoYXNSZXN1bHRzKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZW1vamlzLmxlbmd0aCA+IDBcbiAgICB9LFxuICAgIGVtb2ppT2JqZWN0cygpIHtcbiAgICAgIHJldHVybiB0aGlzLmVtb2ppcy5tYXAoKGVtb2ppKSA9PiB7XG4gICAgICAgIGxldCBlbW9qaU9iamVjdCA9IGVtb2ppXG4gICAgICAgIGxldCBlbW9qaVZpZXcgPSBuZXcgRW1vamlWaWV3KFxuICAgICAgICAgIGVtb2ppLFxuICAgICAgICAgIHRoaXMuZW1vamlQcm9wcy5za2luLFxuICAgICAgICAgIHRoaXMuZW1vamlQcm9wcy5zZXQsXG4gICAgICAgICAgdGhpcy5lbW9qaVByb3BzLm5hdGl2ZSxcbiAgICAgICAgICB0aGlzLmVtb2ppUHJvcHMuZmFsbGJhY2ssXG4gICAgICAgICAgdGhpcy5lbW9qaVByb3BzLmVtb2ppVG9vbHRpcCxcbiAgICAgICAgICB0aGlzLmVtb2ppUHJvcHMuZW1vamlTaXplLFxuICAgICAgICApXG4gICAgICAgIHJldHVybiB7IGVtb2ppT2JqZWN0LCBlbW9qaVZpZXcgfVxuICAgICAgfSlcbiAgICB9LFxuICB9LFxuICBjb21wb25lbnRzOiB7XG4gICAgRW1vamksXG4gIH0sXG59XG48L3NjcmlwdD5cbiIsIjx0ZW1wbGF0ZT5cblxuPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlld1wiPlxuICA8dGVtcGxhdGUgdi1pZj1cImVtb2ppXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW1vamktbWFydC1wcmV2aWV3LWVtb2ppXCI+XG4gICAgICAgIDxlbW9qaVxuICAgICAgICAgIDpkYXRhPVwiZGF0YVwiXG4gICAgICAgICAgOmVtb2ppPVwiZW1vamlcIlxuICAgICAgICAgIDpuYXRpdmU9XCJlbW9qaVByb3BzLm5hdGl2ZVwiXG4gICAgICAgICAgOnNraW49XCJlbW9qaVByb3BzLnNraW5cIlxuICAgICAgICAgIDpzZXQ9XCJlbW9qaVByb3BzLnNldFwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1kYXRhXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctbmFtZVwiPnt7IGVtb2ppLm5hbWUgfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWVzXCI+XG4gICAgICAgICAgPHNwYW4gdi1mb3I9XCJzaG9ydE5hbWUgaW4gZW1vamlTaG9ydE5hbWVzXCIgOmtleT1cInNob3J0TmFtZVwiIGNsYXNzPVwiZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZVwiPjp7eyBzaG9ydE5hbWUgfX06PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1lbW90aWNvbnNcIj5cbiAgICAgICAgICA8c3BhbiB2LWZvcj1cImVtb3RpY29uIGluIGVtb2ppRW1vdGljb25zXCIgOmtleT1cImVtb3RpY29uXCIgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb25cIj57eyBlbW90aWNvbiB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgPC90ZW1wbGF0ZT5cblxuICA8dGVtcGxhdGUgdi1lbHNlPlxuICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vamlcIj5cbiAgICAgIDxlbW9qaVxuICAgICAgICA6ZGF0YT1cImRhdGFcIlxuICAgICAgICA6ZW1vamk9XCJpZGxlRW1vamlcIlxuICAgICAgICA6bmF0aXZlPVwiZW1vamlQcm9wcy5uYXRpdmVcIlxuICAgICAgICA6c2tpbj1cImVtb2ppUHJvcHMuc2tpblwiXG4gICAgICAgIDpzZXQ9XCJlbW9qaVByb3BzLnNldFwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1kYXRhXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImVtb2ppLW1hcnQtdGl0bGUtbGFiZWxcIj57eyB0aXRsZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgdi1pZj1cInNob3dTa2luVG9uZXNcIiBjbGFzcz1cImVtb2ppLW1hcnQtcHJldmlldy1za2luc1wiPlxuICAgICAgPHNraW5zIDpza2luPVwic2tpblByb3BzLnNraW5cIiBAY2hhbmdlPVwib25Ta2luQ2hhbmdlKCRldmVudClcIiAvPlxuICAgIDwvZGl2PlxuICA8L3RlbXBsYXRlPlxuPC9kaXY+XG5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5cbmltcG9ydCBFbW9qaSBmcm9tICcuL0Vtb2ppLnZ1ZSdcbmltcG9ydCBTa2lucyBmcm9tICcuL3NraW5zLnZ1ZSdcblxuZXhwb3J0IGRlZmF1bHQge1xuICBwcm9wczoge1xuICAgIGRhdGE6IHtcbiAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgfSxcbiAgICB0aXRsZToge1xuICAgICAgdHlwZTogU3RyaW5nLFxuICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9LFxuICAgIGVtb2ppOiB7XG4gICAgICB0eXBlOiBbU3RyaW5nLCBPYmplY3RdXG4gICAgfSxcbiAgICBpZGxlRW1vamk6IHtcbiAgICAgIHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sXG4gICAgICByZXF1aXJlZDogdHJ1ZVxuICAgIH0sXG4gICAgc2hvd1NraW5Ub25lczoge1xuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgIGRlZmF1bHQ6IHRydWVcbiAgICB9LFxuICAgIGVtb2ppUHJvcHM6IHtcbiAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgfSxcbiAgICBza2luUHJvcHM6IHtcbiAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgfSxcbiAgICBvblNraW5DaGFuZ2U6IHtcbiAgICAgIHR5cGU6IEZ1bmN0aW9uLFxuICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICB9XG4gIH0sXG4gIGNvbXB1dGVkOiB7XG4gICAgZW1vamlEYXRhKCkge1xuICAgICAgaWYgKHRoaXMuZW1vamkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW1vamlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB7fVxuICAgICAgfVxuICAgIH0sXG4gICAgZW1vamlTaG9ydE5hbWVzKCkge1xuICAgICAgcmV0dXJuIHRoaXMuZW1vamlEYXRhLnNob3J0X25hbWVzXG4gICAgfSxcbiAgICBlbW9qaUVtb3RpY29ucygpIHtcbiAgICAgIHJldHVybiB0aGlzLmVtb2ppRGF0YS5lbW90aWNvbnNcbiAgICB9XG4gIH0sXG4gIGNvbXBvbmVudHM6IHtcbiAgICBFbW9qaSxcbiAgICBTa2luc1xuICB9XG59XG5cbjwvc2NyaXB0PlxuIiwiPHRlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiZW1vamktbWFydC1zZWFyY2hcIj5cbiAgICA8aW5wdXRcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIDpwbGFjZWhvbGRlcj1cImkxOG4uc2VhcmNoXCJcbiAgICAgIHJvbGU9XCJ0ZXh0Ym94XCJcbiAgICAgIGFyaWEtYXV0b2NvbXBsZXRlPVwibGlzdFwiXG4gICAgICBhcmlhLW93bnM9XCJlbW9qaS1tYXJ0LWxpc3RcIlxuICAgICAgYXJpYS1sYWJlbD1cIlNlYXJjaCBmb3IgYW4gZW1vamlcIlxuICAgICAgYXJpYS1kZXNjcmliZWRieT1cImVtb2ppLW1hcnQtc2VhcmNoLWRlc2NyaXB0aW9uXCJcbiAgICAgIEBrZXlkb3duLmxlZnQ9XCIoJGV2ZW50KSA9PiAkZW1pdCgnYXJyb3dMZWZ0JywgJGV2ZW50KVwiXG4gICAgICBAa2V5ZG93bi5yaWdodD1cIigpID0+ICRlbWl0KCdhcnJvd1JpZ2h0JylcIlxuICAgICAgQGtleWRvd24uZG93bj1cIigpID0+ICRlbWl0KCdhcnJvd0Rvd24nKVwiXG4gICAgICBAa2V5ZG93bi51cD1cIigkZXZlbnQpID0+ICRlbWl0KCdhcnJvd1VwJywgJGV2ZW50KVwiXG4gICAgICBAa2V5ZG93bi5lbnRlcj1cIigpID0+ICRlbWl0KCdlbnRlcicpXCJcbiAgICAgIHYtbW9kZWw9XCJ2YWx1ZVwiXG4gICAgLz5cbiAgICA8c3BhbiBjbGFzcz1cImhpZGRlblwiIGlkPVwiZW1vamktcGlja2VyLXNlYXJjaC1kZXNjcmlwdGlvblwiXG4gICAgICA+VXNlIHRoZSBsZWZ0LCByaWdodCwgdXAgYW5kIGRvd24gYXJyb3cga2V5cyB0byBuYXZpZ2F0ZSB0aGUgZW1vamkgc2VhcmNoXG4gICAgICByZXN1bHRzLjwvc3BhblxuICAgID5cbiAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuZXhwb3J0IGRlZmF1bHQge1xuICBwcm9wczoge1xuICAgIGRhdGE6IHtcbiAgICAgIHR5cGU6IE9iamVjdCxcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAgaTE4bjoge1xuICAgICAgdHlwZTogT2JqZWN0LFxuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgfSxcbiAgICBhdXRvRm9jdXM6IHtcbiAgICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9LFxuICAgIG9uU2VhcmNoOiB7XG4gICAgICB0eXBlOiBGdW5jdGlvbixcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIH0sXG4gICAgb25BcnJvd0xlZnQ6IHtcbiAgICAgIHR5cGU6IEZ1bmN0aW9uLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIH0sXG4gICAgb25BcnJvd1JpZ2h0OiB7XG4gICAgICB0eXBlOiBGdW5jdGlvbixcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB9LFxuICAgIG9uQXJyb3dEb3duOiB7XG4gICAgICB0eXBlOiBGdW5jdGlvbixcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB9LFxuICAgIG9uQXJyb3dVcDoge1xuICAgICAgdHlwZTogRnVuY3Rpb24sXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgfSxcbiAgICBvbkVudGVyOiB7XG4gICAgICB0eXBlOiBGdW5jdGlvbixcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB9LFxuICB9LFxuICBkYXRhKCkge1xuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZTogJycsXG4gICAgfVxuICB9LFxuICBjb21wdXRlZDoge1xuICAgIGVtb2ppSW5kZXgoKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXRhXG4gICAgfSxcbiAgfSxcbiAgd2F0Y2g6IHtcbiAgICB2YWx1ZSgpIHtcbiAgICAgIHRoaXMuJGVtaXQoJ3NlYXJjaCcsIHRoaXMudmFsdWUpXG4gICAgfSxcbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIGNsZWFyKCkge1xuICAgICAgdGhpcy52YWx1ZSA9ICcnXG4gICAgfSxcbiAgfSxcbiAgbW91bnRlZCgpIHtcbiAgICBsZXQgJGlucHV0ID0gdGhpcy4kZWwucXVlcnlTZWxlY3RvcignaW5wdXQnKVxuXG4gICAgaWYgKHRoaXMuYXV0b0ZvY3VzKSB7XG4gICAgICAkaW5wdXQuZm9jdXMoKVxuICAgIH1cbiAgfSxcbn1cbjwvc2NyaXB0PlxuIiwiPHRlbXBsYXRlPlxuXG48ZGl2IDpjbGFzcz1cInsgJ2Vtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcyc6IHRydWUsICdlbW9qaS1tYXJ0LXNraW4tc3dhdGNoZXMtb3BlbmVkJzogb3BlbmVkIH1cIj5cbiAgPHNwYW4gdi1mb3I9XCJza2luVG9uZSBpbiA2XCIgOmtleT1cInNraW5Ub25lXCIgOmNsYXNzPVwieyAnZW1vamktbWFydC1za2luLXN3YXRjaCc6IHRydWUsICdlbW9qaS1tYXJ0LXNraW4tc3dhdGNoLXNlbGVjdGVkJzogc2tpbiA9PSBza2luVG9uZSB9XCI+XG4gICAgPHNwYW4gOmNsYXNzPVwiJ2Vtb2ppLW1hcnQtc2tpbiBlbW9qaS1tYXJ0LXNraW4tdG9uZS0nICsgc2tpblRvbmVcIiBAY2xpY2s9XCJvbkNsaWNrKHNraW5Ub25lKVwiPjwvc3Bhbj5cbiAgPC9zcGFuPlxuPC9kaXY+XG5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgcHJvcHM6IHtcbiAgICBza2luOiB7XG4gICAgICB0eXBlOiBOdW1iZXIsXG4gICAgICByZXF1aXJlZDogdHJ1ZVxuICAgIH1cbiAgfSxcbiAgZGF0YSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgb3BlbmVkOiBmYWxzZVxuICAgIH1cbiAgfSxcbiAgbWV0aG9kczoge1xuICAgIG9uQ2xpY2soc2tpblRvbmUpIHtcbiAgICAgIGlmICh0aGlzLm9wZW5lZCkge1xuICAgICAgICBpZiAoc2tpblRvbmUgIT0gdGhpcy5za2luKSB7XG4gICAgICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlJywgc2tpblRvbmUpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5vcGVuZWQgPSAhdGhpcy5vcGVuZWRcbiAgICB9XG4gIH1cbn1cblxuPC9zY3JpcHQ+XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIEFuY2hvcnMgfSBmcm9tICcuL2FuY2hvcnMudnVlJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDYXRlZ29yeSB9IGZyb20gJy4vY2F0ZWdvcnkudnVlJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQcmV2aWV3IH0gZnJvbSAnLi9wcmV2aWV3LnZ1ZSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgU2VhcmNoIH0gZnJvbSAnLi9zZWFyY2gudnVlJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTa2lucyB9IGZyb20gJy4vc2tpbnMudnVlJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBFbW9qaSB9IGZyb20gJy4vRW1vamkudnVlJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBQaWNrZXIgfSBmcm9tICcuL1BpY2tlci52dWUnXG4iLCJpbXBvcnQgc3RvcmUgZnJvbSAnLi91dGlscy9zdG9yZSdcbmltcG9ydCB7IHVuY29tcHJlc3MgfSBmcm9tICcuL3V0aWxzL2RhdGEnXG5pbXBvcnQgZnJlcXVlbnRseSBmcm9tICcuL3V0aWxzL2ZyZXF1ZW50bHknXG5cbmV4cG9ydCB7XG4gIFBpY2tlcixcbiAgRW1vamksXG4gIEFuY2hvcnMsXG4gIFByZXZpZXcsXG4gIFNlYXJjaCxcbiAgQ2F0ZWdvcnksXG4gIFNraW5zLFxufSBmcm9tICcuL2NvbXBvbmVudHMnXG5cbmV4cG9ydCB7IEVtb2ppSW5kZXgsIEVtb2ppVmlldywgRW1vamlEYXRhLCBzYW5pdGl6ZSB9IGZyb20gJy4vdXRpbHMvZW1vamktZGF0YSdcbmV4cG9ydCB7IHVuY29tcHJlc3MsIHN0b3JlLCBmcmVxdWVudGx5IH1cbiIsImNvbnN0IF9TdHJpbmcgPSBTdHJpbmdcblxuZXhwb3J0IGRlZmF1bHQgX1N0cmluZy5mcm9tQ29kZVBvaW50IHx8XG4gIGZ1bmN0aW9uIHN0cmluZ0Zyb21Db2RlUG9pbnQoKSB7XG4gICAgdmFyIE1BWF9TSVpFID0gMHg0MDAwXG4gICAgdmFyIGNvZGVVbml0cyA9IFtdXG4gICAgdmFyIGhpZ2hTdXJyb2dhdGVcbiAgICB2YXIgbG93U3Vycm9nYXRlXG4gICAgdmFyIGluZGV4ID0gLTFcbiAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aFxuICAgIGlmICghbGVuZ3RoKSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG4gICAgdmFyIHJlc3VsdCA9ICcnXG4gICAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgIHZhciBjb2RlUG9pbnQgPSBOdW1iZXIoYXJndW1lbnRzW2luZGV4XSlcbiAgICAgIGlmIChcbiAgICAgICAgIWlzRmluaXRlKGNvZGVQb2ludCkgfHwgLy8gYE5hTmAsIGArSW5maW5pdHlgLCBvciBgLUluZmluaXR5YFxuICAgICAgICBjb2RlUG9pbnQgPCAwIHx8IC8vIG5vdCBhIHZhbGlkIFVuaWNvZGUgY29kZSBwb2ludFxuICAgICAgICBjb2RlUG9pbnQgPiAweDEwZmZmZiB8fCAvLyBub3QgYSB2YWxpZCBVbmljb2RlIGNvZGUgcG9pbnRcbiAgICAgICAgTWF0aC5mbG9vcihjb2RlUG9pbnQpICE9IGNvZGVQb2ludCAvLyBub3QgYW4gaW50ZWdlclxuICAgICAgKSB7XG4gICAgICAgIHRocm93IFJhbmdlRXJyb3IoJ0ludmFsaWQgY29kZSBwb2ludDogJyArIGNvZGVQb2ludClcbiAgICAgIH1cbiAgICAgIGlmIChjb2RlUG9pbnQgPD0gMHhmZmZmKSB7XG4gICAgICAgIC8vIEJNUCBjb2RlIHBvaW50XG4gICAgICAgIGNvZGVVbml0cy5wdXNoKGNvZGVQb2ludClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFzdHJhbCBjb2RlIHBvaW50OyBzcGxpdCBpbiBzdXJyb2dhdGUgaGFsdmVzXG4gICAgICAgIC8vIGh0dHA6Ly9tYXRoaWFzYnluZW5zLmJlL25vdGVzL2phdmFzY3JpcHQtZW5jb2Rpbmcjc3Vycm9nYXRlLWZvcm11bGFlXG4gICAgICAgIGNvZGVQb2ludCAtPSAweDEwMDAwXG4gICAgICAgIGhpZ2hTdXJyb2dhdGUgPSAoY29kZVBvaW50ID4+IDEwKSArIDB4ZDgwMFxuICAgICAgICBsb3dTdXJyb2dhdGUgPSAoY29kZVBvaW50ICUgMHg0MDApICsgMHhkYzAwXG4gICAgICAgIGNvZGVVbml0cy5wdXNoKGhpZ2hTdXJyb2dhdGUsIGxvd1N1cnJvZ2F0ZSlcbiAgICAgIH1cbiAgICAgIGlmIChpbmRleCArIDEgPT09IGxlbmd0aCB8fCBjb2RlVW5pdHMubGVuZ3RoID4gTUFYX1NJWkUpIHtcbiAgICAgICAgcmVzdWx0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgY29kZVVuaXRzKVxuICAgICAgICBjb2RlVW5pdHMubGVuZ3RoID0gMFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cbiIsImNvbnN0IFNWR3MgPSB7XG4gIGFjdGl2aXR5OiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNMTIgMEM1LjM3MyAwIDAgNS4zNzIgMCAxMmMwIDYuNjI3IDUuMzczIDEyIDEyIDEyIDYuNjI4IDAgMTItNS4zNzMgMTItMTIgMC02LjYyOC01LjM3Mi0xMi0xMi0xMm05Ljk0OSAxMUgxNy4wNWMuMjI0LTIuNTI3IDEuMjMyLTQuNzczIDEuOTY4LTYuMTEzQTkuOTY2IDkuOTY2IDAgMCAxIDIxLjk0OSAxMU0xMyAxMVYyLjA1MWE5Ljk0NSA5Ljk0NSAwIDAgMSA0LjQzMiAxLjU2NGMtLjg1OCAxLjQ5MS0yLjE1NiA0LjIyLTIuMzkyIDcuMzg1SDEzem0tMiAwSDguOTYxYy0uMjM4LTMuMTY1LTEuNTM2LTUuODk0LTIuMzkzLTcuMzg1QTkuOTUgOS45NSAwIDAgMSAxMSAyLjA1MVYxMXptMCAydjguOTQ5YTkuOTM3IDkuOTM3IDAgMCAxLTQuNDMyLTEuNTY0Yy44NTctMS40OTIgMi4xNTUtNC4yMjEgMi4zOTMtNy4zODVIMTF6bTQuMDQgMGMuMjM2IDMuMTY0IDEuNTM0IDUuODkzIDIuMzkyIDcuMzg1QTkuOTIgOS45MiAwIDAgMSAxMyAyMS45NDlWMTNoMi4wNHpNNC45ODIgNC44ODdDNS43MTggNi4yMjcgNi43MjYgOC40NzMgNi45NTEgMTFoLTQuOWE5Ljk3NyA5Ljk3NyAwIDAgMSAyLjkzMS02LjExM00yLjA1MSAxM2g0LjljLS4yMjYgMi41MjctMS4yMzMgNC43NzEtMS45NjkgNi4xMTNBOS45NzIgOS45NzIgMCAwIDEgMi4wNTEgMTNtMTYuOTY3IDYuMTEzYy0uNzM1LTEuMzQyLTEuNzQ0LTMuNTg2LTEuOTY4LTYuMTEzaDQuODk5YTkuOTYxIDkuOTYxIDAgMCAxLTIuOTMxIDYuMTEzXCIvPjwvc3ZnPmAsXG5cbiAgY3VzdG9tOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgyLjAwMDAwMCwgMS4wMDAwMDApXCI+PHJlY3QgaWQ9XCJSZWN0YW5nbGVcIiB4PVwiOFwiIHk9XCIwXCIgd2lkdGg9XCIzXCIgaGVpZ2h0PVwiMjFcIiByeD1cIjEuNVwiPjwvcmVjdD48cmVjdCBpZD1cIlJlY3RhbmdsZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSg5Ljg0MywgMTAuNTQ5KSByb3RhdGUoNjApIHRyYW5zbGF0ZSgtOS44NDMsIC0xMC41NDkpIFwiIHg9XCI4LjM0M1wiIHk9XCIwLjA0OVwiIHdpZHRoPVwiM1wiIGhlaWdodD1cIjIxXCIgcng9XCIxLjVcIj48L3JlY3Q+PHJlY3QgaWQ9XCJSZWN0YW5nbGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoOS44NDMsIDEwLjU0OSkgcm90YXRlKC02MCkgdHJhbnNsYXRlKC05Ljg0MywgLTEwLjU0OSkgXCIgeD1cIjguMzQzXCIgeT1cIjAuMDQ5XCIgd2lkdGg9XCIzXCIgaGVpZ2h0PVwiMjFcIiByeD1cIjEuNVwiPjwvcmVjdD48L2c+PC9zdmc+YCxcblxuICBmbGFnczogYDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIj48cGF0aCBkPVwiTTAgMGw2LjA4NCAyNEg4TDEuOTE2IDB6TTIxIDVoLTRsLTEtNEg0bDMgMTJoM2wxIDRoMTNMMjEgNXpNNi41NjMgM2g3Ljg3NWwyIDhIOC41NjNsLTItOHptOC44MzIgMTBsLTIuODU2IDEuOTA0TDEyLjA2MyAxM2gzLjMzMnpNMTkgMTNsLTEuNS02aDEuOTM4bDIgOEgxNmwzLTJ6XCIvPjwvc3ZnPmAsXG5cbiAgZm9vZHM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PHBhdGggZD1cIk0xNyA0Ljk3OGMtMS44MzggMC0yLjg3Ni4zOTYtMy42OC45MzQuNTEzLTEuMTcyIDEuNzY4LTIuOTM0IDQuNjgtMi45MzRhMSAxIDAgMCAwIDAtMmMtMi45MjEgMC00LjYyOSAxLjM2NS01LjU0NyAyLjUxMi0uMDY0LjA3OC0uMTE5LjE2Mi0uMTguMjQ0QzExLjczIDEuODM4IDEwLjc5OC4wMjMgOS4yMDcuMDIzIDguNTc5LjAyMiA3Ljg1LjMwNiA3IC45NzggNS4wMjcgMi41NCA1LjMyOSAzLjkwMiA2LjQ5MiA0Ljk5OSAzLjYwOSA1LjIyMiAwIDcuMzUyIDAgMTIuOTY5YzAgNC41ODIgNC45NjEgMTEuMDA5IDkgMTEuMDA5IDEuOTc1IDAgMi4zNzEtLjQ4NiAzLTEgLjYyOS41MTQgMS4wMjUgMSAzIDEgNC4wMzkgMCA5LTYuNDE4IDktMTEgMC01Ljk1My00LjA1NS04LTctOE04LjI0MiAyLjU0NmMuNjQxLS41MDguOTQzLS41MjMuOTY1LS41MjMuNDI2LjE2OS45NzUgMS40MDUgMS4zNTcgMy4wNTUtMS41MjctLjYyOS0yLjc0MS0xLjM1Mi0yLjk4LTEuODQ2LjA1OS0uMTEyLjI0MS0uMzU2LjY1OC0uNjg2TTE1IDIxLjk3OGMtMS4wOCAwLTEuMjEtLjEwOS0xLjU1OS0uNDAybC0uMTc2LS4xNDZjLS4zNjctLjMwMi0uODE2LS40NTItMS4yNjYtLjQ1MnMtLjg5OC4xNS0xLjI2Ni40NTJsLS4xNzYuMTQ2Yy0uMzQ3LjI5Mi0uNDc3LjQwMi0xLjU1Ny40MDItMi44MTMgMC03LTUuMzg5LTctOS4wMDkgMC01LjgyMyA0LjQ4OC01Ljk5MSA1LTUuOTkxIDEuOTM5IDAgMi40ODQuNDcxIDMuMzg3IDEuMjUxbC4zMjMuMjc2YTEuOTk1IDEuOTk1IDAgMCAwIDIuNTggMGwuMzIzLS4yNzZjLjkwMi0uNzggMS40NDctMS4yNTEgMy4zODctMS4yNTEuNTEyIDAgNSAuMTY4IDUgNiAwIDMuNjE3LTQuMTg3IDktNyA5XCIvPjwvc3ZnPmAsXG5cbiAgbmF0dXJlOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNMTUuNSA4YTEuNSAxLjUgMCAxIDAgLjAwMSAzLjAwMUExLjUgMS41IDAgMCAwIDE1LjUgOE04LjUgOGExLjUgMS41IDAgMSAwIC4wMDEgMy4wMDFBMS41IDEuNSAwIDAgMCA4LjUgOFwiLz48cGF0aCBkPVwiTTE4LjkzMyAwaC0uMDI3Yy0uOTcgMC0yLjEzOC43ODctMy4wMTggMS40OTctMS4yNzQtLjM3NC0yLjYxMi0uNTEtMy44ODctLjUxLTEuMjg1IDAtMi42MTYuMTMzLTMuODc0LjUxN0M3LjI0NS43OSA2LjA2OSAwIDUuMDkzIDBoLS4wMjdDMy4zNTIgMCAuMDcgMi42Ny4wMDIgNy4wMjZjLS4wMzkgMi40NzkuMjc2IDQuMjM4IDEuMDQgNS4wMTMuMjU0LjI1OC44ODIuNjc3IDEuMjk1Ljg4Mi4xOTEgMy4xNzcuOTIyIDUuMjM4IDIuNTM2IDYuMzguODk3LjYzNyAyLjE4Ny45NDkgMy4yIDEuMTAyQzguMDQgMjAuNiA4IDIwLjc5NSA4IDIxYzAgMS43NzMgMi4zNSAzIDQgMyAxLjY0OCAwIDQtMS4yMjcgNC0zIDAtLjIwMS0uMDM4LS4zOTMtLjA3Mi0uNTg2IDIuNTczLS4zODUgNS40MzUtMS44NzcgNS45MjUtNy41ODcuMzk2LS4yMi44ODctLjU2OCAxLjEwNC0uNzg4Ljc2My0uNzc0IDEuMDc5LTIuNTM0IDEuMDQtNS4wMTNDMjMuOTI5IDIuNjcgMjAuNjQ2IDAgMTguOTMzIDBNMy4yMjMgOS4xMzVjLS4yMzcuMjgxLS44MzcgMS4xNTUtLjg4NCAxLjIzOC0uMTUtLjQxLS4zNjgtMS4zNDktLjMzNy0zLjI5MS4wNTEtMy4yODEgMi40NzgtNC45NzIgMy4wOTEtNS4wMzEuMjU2LjAxNS43MzEuMjcgMS4yNjUuNjQ2LTEuMTEgMS4xNzEtMi4yNzUgMi45MTUtMi4zNTIgNS4xMjUtLjEzMy41NDYtLjM5OC44NTgtLjc4MyAxLjMxM00xMiAyMmMtLjkwMSAwLTEuOTU0LS42OTMtMi0xIDAtLjY1NC40NzUtMS4yMzYgMS0xLjYwMlYyMGExIDEgMCAxIDAgMiAwdi0uNjAyYy41MjQuMzY1IDEgLjk0NyAxIDEuNjAyLS4wNDYuMzA3LTEuMDk5IDEtMiAxbTMtMy40OHYuMDJhNC43NTIgNC43NTIgMCAwIDAtMS4yNjItMS4wMmMxLjA5Mi0uNTE2IDIuMjM5LTEuMzM0IDIuMjM5LTIuMjE3IDAtMS44NDItMS43ODEtMi4xOTUtMy45NzctMi4xOTUtMi4xOTYgMC0zLjk3OC4zNTQtMy45NzggMi4xOTUgMCAuODgzIDEuMTQ4IDEuNzAxIDIuMjM4IDIuMjE3QTQuOCA0LjggMCAwIDAgOSAxOC41Mzl2LS4wMjVjLTEtLjA3Ni0yLjE4Mi0uMjgxLTIuOTczLS44NDItMS4zMDEtLjkyLTEuODM4LTMuMDQ1LTEuODUzLTYuNDc4bC4wMjMtLjA0MWMuNDk2LS44MjYgMS40OS0xLjQ1IDEuODA0LTMuMTAyIDAtMi4wNDcgMS4zNTctMy42MzEgMi4zNjItNC41MjJDOS4zNyAzLjE3OCAxMC41NTUgMyAxMS45NDggM2MxLjQ0NyAwIDIuNjg1LjE5MiAzLjczMy41NyAxIC45IDIuMzE2IDIuNDY1IDIuMzE2IDQuNDguMzEzIDEuNjUxIDEuMzA3IDIuMjc1IDEuODAzIDMuMTAyLjAzNS4wNTguMDY4LjExNy4xMDIuMTc4LS4wNTkgNS45NjctMS45NDkgNy4wMS00LjkwMiA3LjE5bTYuNjI4LTguMjAyYy0uMDM3LS4wNjUtLjA3NC0uMTMtLjExMy0uMTk1YTcuNTg3IDcuNTg3IDAgMCAwLS43MzktLjk4N2MtLjM4NS0uNDU1LS42NDgtLjc2OC0uNzgyLTEuMzEzLS4wNzYtMi4yMDktMS4yNDEtMy45NTQtMi4zNTMtNS4xMjQuNTMxLS4zNzYgMS4wMDQtLjYzIDEuMjYxLS42NDcuNjM2LjA3MSAzLjA0NCAxLjc2NCAzLjA5NiA1LjAzMS4wMjcgMS44MS0uMzQ3IDMuMjE4LS4zNyAzLjIzNVwiLz48L3N2Zz5gLFxuXG4gIG9iamVjdHM6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PHBhdGggZD1cIk0xMiAwYTkgOSAwIDAgMC01IDE2LjQ4MlYyMXMyLjAzNSAzIDUgMyA1LTMgNS0zdi00LjUxOEE5IDkgMCAwIDAgMTIgMHptMCAyYzMuODYgMCA3IDMuMTQxIDcgN3MtMy4xNCA3LTcgNy03LTMuMTQxLTctNyAzLjE0LTcgNy03ek05IDE3LjQ3N2MuOTQuMzMyIDEuOTQ2LjUyMyAzIC41MjNzMi4wNi0uMTkgMy0uNTIzdi44MzRjLS45MS40MzYtMS45MjUuNjg5LTMgLjY4OWE2LjkyNCA2LjkyNCAwIDAgMS0zLS42OXYtLjgzM3ptLjIzNiAzLjA3QTguODU0IDguODU0IDAgMCAwIDEyIDIxYy45NjUgMCAxLjg4OC0uMTY3IDIuNzU4LS40NTFDMTQuMTU1IDIxLjE3MyAxMy4xNTMgMjIgMTIgMjJjLTEuMTAyIDAtMi4xMTctLjc4OS0yLjc2NC0xLjQ1M3pcIi8+PHBhdGggZD1cIk0xNC43NDUgMTIuNDQ5aC0uMDA0Yy0uODUyLS4wMjQtMS4xODgtLjg1OC0xLjU3Ny0xLjgyNC0uNDIxLTEuMDYxLS43MDMtMS41NjEtMS4xODItMS41NjZoLS4wMDljLS40ODEgMC0uNzgzLjQ5Ny0xLjIzNSAxLjUzNy0uNDM2Ljk4Mi0uODAxIDEuODExLTEuNjM2IDEuNzkxbC0uMjc2LS4wNDNjLS41NjUtLjE3MS0uODUzLS42OTEtMS4yODQtMS43OTQtLjEyNS0uMzEzLS4yMDItLjYzMi0uMjctLjkxMy0uMDUxLS4yMTMtLjEyNy0uNTMtLjE5NS0uNjM0QzcuMDY3IDkuMDA0IDcuMDM5IDkgNi45OSA5QTEgMSAwIDAgMSA3IDdoLjAxYzEuNjYyLjAxNyAyLjAxNSAxLjM3MyAyLjE5OCAyLjEzNC40ODYtLjk4MSAxLjMwNC0yLjA1OCAyLjc5Ny0yLjA3NSAxLjUzMS4wMTggMi4yOCAxLjE1MyAyLjczMSAyLjE0MWwuMDAyLS4wMDhDMTQuOTQ0IDguNDI0IDE1LjMyNyA3IDE2Ljk3OSA3aC4wMzJBMSAxIDAgMSAxIDE3IDloLS4wMTFjLS4xNDkuMDc2LS4yNTYuNDc0LS4zMTkuNzA5YTYuNDg0IDYuNDg0IDAgMCAxLS4zMTEuOTUxYy0uNDI5Ljk3My0uNzkgMS43ODktMS42MTQgMS43ODlcIi8+PC9zdmc+YCxcblxuICBzbWlsZXlzOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNMTIgMEM1LjM3MyAwIDAgNS4zNzMgMCAxMnM1LjM3MyAxMiAxMiAxMiAxMi01LjM3MyAxMi0xMlMxOC42MjcgMCAxMiAwbTAgMjJDNi40ODYgMjIgMiAxNy41MTQgMiAxMlM2LjQ4NiAyIDEyIDJzMTAgNC40ODYgMTAgMTAtNC40ODYgMTAtMTAgMTBcIi8+PHBhdGggZD1cIk04IDdhMiAyIDAgMSAwLS4wMDEgMy45OTlBMiAyIDAgMCAwIDggN00xNiA3YTIgMiAwIDEgMC0uMDAxIDMuOTk5QTIgMiAwIDAgMCAxNiA3TTE1LjIzMiAxNWMtLjY5MyAxLjE5NS0xLjg3IDItMy4zNDkgMi0xLjQ3NyAwLTIuNjU1LS44MDUtMy4zNDctMkgxNW0zLTJINmE2IDYgMCAxIDAgMTIgMFwiLz48L3N2Zz5gLFxuXG4gIHBlb3BsZTogYDxzdmcgeG1sbnM6c3ZnPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyNFwiIHdpZHRoPVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+IDxwYXRoIGlkPVwicGF0aDM4MTRcIiBkPVwibSAzLjM1OTEwODksMjEuMTc3MjYgYyAwLjE3MjAzNiwwLjA5Mzg1IDQuMjY1OTk0LDIuMjk4MzcgOC44MTQ0NDUxLDIuMjk4MzcgNC45Mjc3NjcsMCA4LjY3MDg5NCwtMi4yMTE4ODMgOC44Mjc4MiwtMi4zMDYwMTkgMC4xMTMwNzksLTAuMDY3ODUgMC4xODIyNjgsLTAuMTkwMDUxIDAuMTgyMjY3LC0wLjMyMTkyMyAwLC0zLjAzMTE5IC0wLjkyOTQ5NCwtNS44MDQ5MzYgLTIuNjE3MTk2LC03LjgxMDcxMiAtMS4xODA2MDMsLTEuNDAzMTM0IC0yLjY2MTkxOCwtMi4zNTk1MTYgLTQuMjk1Njk5LC0yLjc5OTc5MSA0LjY5OTExOCwtMi4yMzYyNTggMy4xMDIzMDYsLTkuMjg2MTcxNjIgLTIuMDk3MTkxLC05LjI4NjE3MTYyIC01LjE5OTQ5NzgsMCAtNi43OTYzMTAzLDcuMDQ5OTEzNjIgLTIuMDk3MTkyLDkuMjg2MTcxNjIgLTEuNjMzNzgyMSwwLjQ0MDI3NSAtMy4xMTUwOTcxLDEuMzk2Nzk4IC00LjI5NTY5OTEsMi43OTk3OTEgLTEuNjg3NzAzLDIuMDA1Nzc2IC0yLjYxNzE5Niw0Ljc3OTUyMiAtMi42MTcxOTYsNy44MTA3MTIgMS4yZS02LDAuMTM3Mzc4IDAuMDc1MDM5LDAuMjYzNzg1IDAuMTk1NjQxLDAuMzI5NTcyIHogTSA4LjA0MzkzMTksNS44MzA4NzgzIEMgOC4wNDM5MzA5LDIuMTUxNTIxIDEyLjQ5MjEwNywwLjMwOTU1ODExIDE1LjA5MzQ5MSwyLjkxMDk0MTEgMTcuNjk0ODc0LDUuNTEyMzI0MSAxNS44NTI5MTEsOS45NjA1MDA2IDEyLjE3MzU1NCw5Ljk2MDUgOS44OTM4OTkxLDkuOTU3OTEzNSA4LjA0NjUxODYsOC4xMTA1MzMyIDguMDQzOTMxOSw1LjgzMDg3ODMgWiBtIC0xLjY4ODc4Miw3LjY4OTQ5NzcgYyAxLjUyNDUzNSwtMS44MTE0NDkgMy41OTA2NjAxLC0yLjgwOTAzNSA1LjgxODQwNDEsLTIuODA5MDM1IDIuMjI3NzQ0LDAgNC4yOTM4NjksMC45OTc1ODYgNS44MTg0MDQsMi44MDkwMzUgMS41MzM2MzksMS44MjI1NzEgMi4zOTU5MzIsNC4zMzk4NTggMi40MzkxNTIsNy4xMDgzMDEgLTAuODAzMzUyLDAuNDM0ODc3IC00LjE0MTYzNiwyLjA5NjExMiAtOC4yNTc1NTYsMi4wOTYxMTIgLTMuODA2MjkyMSwwIC03LjM5MTA4NjEsLTEuNjcxMDQzIC04LjI1NzM2ODEsLTIuMTA0OTgxIDAuMDQ1MDUsLTIuNzY1MDE3IDAuOTA2OTY4LC01LjI3ODc4NSAyLjQzODk2NCwtNy4wOTk0MzIgelwiIC8+IDxwYXRoIGlkPVwicGF0aDM4MTZcIiBkPVwiTSAxMi4xNzM4MjggMC4zODg2NzE4OCBDIDkuMzE5ODUxMyAwLjM4ODY3MTg3IDcuMzc3MDk4OCAyLjM2NzIyODUgNi44NjUyMzQ0IDQuNjMwODU5NCBDIDYuNDIxODYwOCA2LjU5MTYwMTUgNy4xMTUzNTYyIDguNzY3NjExNyA4Ljk2NDg0MzggMTAuMTI2OTUzIEMgNy42MTQxMjQ5IDEwLjY3NzM3NiA2LjM1NTA1MTEgMTEuNDgwOTQ0IDUuMzQ5NjA5NCAxMi42NzU3ODEgQyAzLjU2MjkzMTcgMTQuNzk5MTg1IDIuNjAxNTYyNSAxNy43MDE0NzUgMi42MDE1NjI1IDIwLjg0NzY1NiBDIDIuNjAxNTY1NCAyMS4xODk4NjEgMi43ODk0Mjc2IDIxLjUwODAwMiAzLjA4OTg0MzggMjEuNjcxODc1IEMgMy4zMDQ0MDY4IDIxLjc4ODkyNSA3LjQ0MzYyMzkgMjQuMDM5MDYyIDEyLjE3MzgyOCAyNC4wMzkwNjIgQyAxNy4yNjk5MTggMjQuMDM5MDYyIDIxLjA4MzU2OCAyMS43NzY3ODYgMjEuMjkxMDE2IDIxLjY1MjM0NCBDIDIxLjU3MjgxIDIxLjQ4MzI2NiAyMS43NDYwOTcgMjEuMTc2MjgyIDIxLjc0NjA5NCAyMC44NDc2NTYgQyAyMS43NDYwOTQgMTcuNzAxNDc1IDIwLjc4Mjc3IDE0Ljc5OTE4NSAxOC45OTYwOTQgMTIuNjc1NzgxIEMgMTcuOTkwNDU1IDExLjQ4MDU5MSAxNi43MzM4MTggMTAuNjc1MzYyIDE1LjM4MjgxMiAxMC4xMjUgQyAxNy4yMzExMzIgOC43NjU1NTUyIDE3LjkyNTY3NSA2LjU5MTA3MDEgMTcuNDgyNDIyIDQuNjMwODU5NCBDIDE2Ljk3MDU1NyAyLjM2NzIyODUgMTUuMDI3ODA1IDAuMzg4NjcxODggMTIuMTczODI4IDAuMzg4NjcxODggeiBNIDEyLjc5Mjk2OSAyLjMwMDc4MTIgQyAxMy40NjYyNTMgMi40MTYxNzkyIDE0LjEyNTExMyAyLjczODM5NDEgMTQuNjk1MzEyIDMuMzA4NTkzOCBDIDE1LjgzNTcxMiA0LjQ0ODk5MzEgMTUuOTg1NjA0IDUuOTQ3MzU0OSAxNS40Njg3NSA3LjE5NTMxMjUgQyAxNC45NTE4OTYgOC40NDMyNzAxIDEzLjc4NjgyOCA5LjM5ODQzNzggMTIuMTczODI4IDkuMzk4NDM3NSBDIDEwLjE5NzcxOSA5LjM5NjE5NTQgOC42MDc3MTEgNy44MDYxODcgOC42MDU0Njg4IDUuODMwMDc4MSBDIDguNjA1NDY4MyA0LjIxNzA3ODUgOS41NjA2MzYyIDMuMDUyMDEwMiAxMC44MDg1OTQgMi41MzUxNTYyIEMgMTEuNDMyNTczIDIuMjc2NzI5MyAxMi4xMTk2ODUgMi4xODUzODMzIDEyLjc5Mjk2OSAyLjMwMDc4MTIgeiBNIDEyLjE3MzgyOCAxMS4yNzM0MzggQyAxNC4yMzM2NDcgMTEuMjczNDM4IDE2LjEzMzY3NCAxMi4xODUwODQgMTcuNTYyNSAxMy44ODI4MTIgQyAxOC45MzA2OSAxNS41MDg3NjUgMTkuNjk4MzQ3IDE3Ljc3Njk2OSAxOS44MDg1OTQgMjAuMjgzMjAzIEMgMTguODA3Mzk1IDIwLjgwMDIzNSAxNS44ODYxNTcgMjIuMTYyMTA5IDEyLjE3MzgyOCAyMi4xNjIxMDkgQyA4Ljc2MTQ2MzIgMjIuMTYyMTA5IDUuNjI0NTc1NCAyMC43ODcwNjkgNC41MzkwNjI1IDIwLjI2NTYyNSBDIDQuNjUyNTg5NiAxNy43NjY3MTcgNS40MjAzMzE1IDE1LjUwNDc5MSA2Ljc4NTE1NjIgMTMuODgyODEyIEMgOC4yMTM5ODI3IDEyLjE4NTA4NCAxMC4xMTQwMSAxMS4yNzM0MzggMTIuMTczODI4IDExLjI3MzQzOCB6IFwiIC8+IDwvc3ZnPmAsXG5cbiAgcGxhY2VzOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNNi41IDEyQzUuMTIyIDEyIDQgMTMuMTIxIDQgMTQuNVM1LjEyMiAxNyA2LjUgMTcgOSAxNS44NzkgOSAxNC41IDcuODc4IDEyIDYuNSAxMm0wIDNjLS4yNzUgMC0uNS0uMjI1LS41LS41cy4yMjUtLjUuNS0uNS41LjIyNS41LjUtLjIyNS41LS41LjVNMTcuNSAxMmMtMS4zNzggMC0yLjUgMS4xMjEtMi41IDIuNXMxLjEyMiAyLjUgMi41IDIuNSAyLjUtMS4xMjEgMi41LTIuNS0xLjEyMi0yLjUtMi41LTIuNW0wIDNjLS4yNzUgMC0uNS0uMjI1LS41LS41cy4yMjUtLjUuNS0uNS41LjIyNS41LjUtLjIyNS41LS41LjVcIi8+PHBhdGggZD1cIk0yMi40ODIgOS40OTRsLTEuMDM5LS4zNDZMMjEuNCA5aC42Yy41NTIgMCAxLS40MzkgMS0uOTkyIDAtLjAwNi0uMDAzLS4wMDgtLjAwMy0uMDA4SDIzYzAtMS0uODg5LTItMS45ODQtMmgtLjY0MmwtLjczMS0xLjcxN0MxOS4yNjIgMy4wMTIgMTguMDkxIDIgMTYuNzY0IDJINy4yMzZDNS45MDkgMiA0LjczOCAzLjAxMiA0LjM1NyA0LjI4M0wzLjYyNiA2aC0uNjQyQzEuODg5IDYgMSA3IDEgOGguMDAzUzEgOC4wMDIgMSA4LjAwOEMxIDguNTYxIDEuNDQ4IDkgMiA5aC42bC0uMDQzLjE0OC0xLjAzOS4zNDZhMi4wMDEgMi4wMDEgMCAwIDAtMS4zNTkgMi4wOTdsLjc1MSA3LjUwOGExIDEgMCAwIDAgLjk5NC45MDFIM3YxYzAgMS4xMDMuODk2IDIgMiAyaDJjMS4xMDQgMCAyLS44OTcgMi0ydi0xaDZ2MWMwIDEuMTAzLjg5NiAyIDIgMmgyYzEuMTA0IDAgMi0uODk3IDItMnYtMWgxLjA5NmEuOTk5Ljk5OSAwIDAgMCAuOTk0LS45MDFsLjc1MS03LjUwOGEyLjAwMSAyLjAwMSAwIDAgMC0xLjM1OS0yLjA5N002LjI3MyA0Ljg1N0M2LjQwMiA0LjQzIDYuNzg4IDQgNy4yMzYgNGg5LjUyN2MuNDQ4IDAgLjgzNC40My45NjMuODU3TDE5LjMxMyA5SDQuNjg4bDEuNTg1LTQuMTQzek03IDIxSDV2LTFoMnYxem0xMiAwaC0ydi0xaDJ2MXptMi4xODktM0gyLjgxMWwtLjY2Mi02LjYwN0wzIDExaDE4bC44NTIuMzkzTDIxLjE4OSAxOHpcIi8+PC9zdmc+YCxcblxuICByZWNlbnQ6IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCI+PHBhdGggZD1cIk0xMyA0aC0ybC0uMDAxIDdIOXYyaDJ2Mmgydi0yaDR2LTJoLTR6XCIvPjxwYXRoIGQ9XCJNMTIgMEM1LjM3MyAwIDAgNS4zNzMgMCAxMnM1LjM3MyAxMiAxMiAxMiAxMi01LjM3MyAxMi0xMlMxOC42MjcgMCAxMiAwbTAgMjJDNi40ODYgMjIgMiAxNy41MTQgMiAxMlM2LjQ4NiAyIDEyIDJzMTAgNC40ODYgMTAgMTAtNC40ODYgMTAtMTAgMTBcIi8+PC9zdmc+YCxcblxuICBzeW1ib2xzOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiPjxwYXRoIGQ9XCJNMCAwaDExdjJIMHpNNCAxMWgzVjZoNFY0SDB2Mmg0ek0xNS41IDE3YzEuMzgxIDAgMi41LTEuMTE2IDIuNS0yLjQ5M3MtMS4xMTktMi40OTMtMi41LTIuNDkzUzEzIDEzLjEzIDEzIDE0LjUwNyAxNC4xMTkgMTcgMTUuNSAxN20wLTIuOTg2Yy4yNzYgMCAuNS4yMjIuNS40OTMgMCAuMjcyLS4yMjQuNDkzLS41LjQ5M3MtLjUtLjIyMS0uNS0uNDkzLjIyNC0uNDkzLjUtLjQ5M00yMS41IDE5LjAxNGMtMS4zODEgMC0yLjUgMS4xMTYtMi41IDIuNDkzUzIwLjExOSAyNCAyMS41IDI0czIuNS0xLjExNiAyLjUtMi40OTMtMS4xMTktMi40OTMtMi41LTIuNDkzbTAgMi45ODZhLjQ5Ny40OTcgMCAwIDEtLjUtLjQ5M2MwLS4yNzEuMjI0LS40OTMuNS0uNDkzcy41LjIyMi41LjQ5M2EuNDk3LjQ5NyAwIDAgMS0uNS40OTNNMjIgMTNsLTkgOSAxLjUxMyAxLjUgOC45OS05LjAwOXpNMTcgMTFjMi4yMDkgMCA0LTEuMTE5IDQtMi41VjJzLjk4NS0uMTYxIDEuNDk4Ljk0OUMyMy4wMSA0LjA1NSAyMyA2IDIzIDZzMS0xLjExOSAxLTMuMTM1QzI0LS4wMiAyMSAwIDIxIDBoLTJ2Ni4zNDdBNS44NTMgNS44NTMgMCAwIDAgMTcgNmMtMi4yMDkgMC00IDEuMTE5LTQgMi41czEuNzkxIDIuNSA0IDIuNU0xMC4yOTcgMjAuNDgybC0xLjQ3NS0xLjU4NWE0Ny41NCA0Ny41NCAwIDAgMS0xLjQ0MiAxLjEyOWMtLjMwNy0uMjg4LS45ODktMS4wMTYtMi4wNDUtMi4xODMuOTAyLS44MzYgMS40NzktMS40NjYgMS43MjktMS44OTJzLjM3Ni0uODcxLjM3Ni0xLjMzNmMwLS41OTItLjI3My0xLjE3OC0uODE4LTEuNzU5LS41NDYtLjU4MS0xLjMyOS0uODcxLTIuMzQ5LS44NzEtMS4wMDggMC0xLjc5LjI5My0yLjM0NC44NzktLjU1Ni41ODctLjgzMiAxLjE4MS0uODMyIDEuNzg0IDAgLjgxMy40MTkgMS43NDggMS4yNTYgMi44MDUtLjg0Ny42MTQtMS40NDQgMS4yMDgtMS43OTQgMS43ODRhMy40NjUgMy40NjUgMCAwIDAtLjUyMyAxLjgzM2MwIC44NTcuMzA4IDEuNTYuOTI0IDIuMTA3LjYxNi41NDkgMS40MjMuODIzIDIuNDIuODIzIDEuMTczIDAgMi40NDQtLjM3OSAzLjgxMy0xLjEzN0w4LjIzNSAyNGgyLjgxOWwtMi4wOS0yLjM4MyAxLjMzMy0xLjEzNXptLTYuNzM2LTYuMzg5YTEuMDIgMS4wMiAwIDAgMSAuNzMtLjI4NmMuMzEgMCAuNTU5LjA4NS43NDcuMjU0YS44NDkuODQ5IDAgMCAxIC4yODMuNjU5YzAgLjUxOC0uNDE5IDEuMTEyLTEuMjU3IDEuNzg0LS41MzYtLjY1MS0uODA1LTEuMjMxLS44MDUtMS43NDJhLjkwMS45MDEgMCAwIDEgLjMwMi0uNjY5TTMuNzQgMjJjLS40MjcgMC0uNzc4LS4xMTYtMS4wNTctLjM0OS0uMjc5LS4yMzItLjQxOC0uNDg3LS40MTgtLjc2NiAwLS41OTQuNTA5LTEuMjg4IDEuNTI3LTIuMDgzLjk2OCAxLjEzNCAxLjcxNyAxLjk0NiAyLjI0OCAyLjQzOC0uOTIxLjUwNy0xLjY4Ni43Ni0yLjMuNzZcIi8+PC9zdmc+YCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgU1ZHc1xuIiwiY29uc3QgbWFwcGluZyA9IHtcbiAgbmFtZTogJ2EnLFxuICB1bmlmaWVkOiAnYicsXG4gIG5vbl9xdWFsaWZpZWQ6ICdjJyxcbiAgaGFzX2ltZ19hcHBsZTogJ2QnLFxuICBoYXNfaW1nX2dvb2dsZTogJ2UnLFxuICBoYXNfaW1nX3R3aXR0ZXI6ICdmJyxcbiAgaGFzX2ltZ19mYWNlYm9vazogJ2gnLFxuICBrZXl3b3JkczogJ2onLFxuICBzaGVldDogJ2snLFxuICBlbW90aWNvbnM6ICdsJyxcbiAgdGV4dDogJ20nLFxuICBzaG9ydF9uYW1lczogJ24nLFxuICBhZGRlZF9pbjogJ28nLFxufVxuXG5jb25zdCBidWlsZFNlYXJjaCA9IChlbW9qaSkgPT4ge1xuICBjb25zdCBzZWFyY2ggPSBbXVxuXG4gIHZhciBhZGRUb1NlYXJjaCA9IChzdHJpbmdzLCBzcGxpdCkgPT4ge1xuICAgIGlmICghc3RyaW5ncykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgOyhBcnJheS5pc0FycmF5KHN0cmluZ3MpID8gc3RyaW5ncyA6IFtzdHJpbmdzXSkuZm9yRWFjaCgoc3RyaW5nKSA9PiB7XG4gICAgICA7KHNwbGl0ID8gc3RyaW5nLnNwbGl0KC9bLXxffFxcc10rLykgOiBbc3RyaW5nXSkuZm9yRWFjaCgocykgPT4ge1xuICAgICAgICBzID0gcy50b0xvd2VyQ2FzZSgpXG5cbiAgICAgICAgaWYgKHNlYXJjaC5pbmRleE9mKHMpID09IC0xKSB7XG4gICAgICAgICAgc2VhcmNoLnB1c2gocylcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgYWRkVG9TZWFyY2goZW1vamkuc2hvcnRfbmFtZXMsIHRydWUpXG4gIGFkZFRvU2VhcmNoKGVtb2ppLm5hbWUsIHRydWUpXG4gIGFkZFRvU2VhcmNoKGVtb2ppLmtleXdvcmRzLCBmYWxzZSlcbiAgYWRkVG9TZWFyY2goZW1vamkuZW1vdGljb25zLCBmYWxzZSlcblxuICByZXR1cm4gc2VhcmNoLmpvaW4oJywnKVxufVxuXG5mdW5jdGlvbiBkZWVwRnJlZXplKG9iamVjdCkge1xuICAvLyBSZXRyaWV2ZSB0aGUgcHJvcGVydHkgbmFtZXMgZGVmaW5lZCBvbiBvYmplY3RcbiAgdmFyIHByb3BOYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdClcblxuICAvLyBGcmVlemUgcHJvcGVydGllcyBiZWZvcmUgZnJlZXppbmcgc2VsZlxuICBmb3IgKGxldCBuYW1lIG9mIHByb3BOYW1lcykge1xuICAgIGxldCB2YWx1ZSA9IG9iamVjdFtuYW1lXVxuICAgIG9iamVjdFtuYW1lXSA9XG4gICAgICB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnID8gZGVlcEZyZWV6ZSh2YWx1ZSkgOiB2YWx1ZVxuICB9XG4gIHJldHVybiBPYmplY3QuZnJlZXplKG9iamVjdClcbn1cblxuY29uc3QgdW5jb21wcmVzcyA9IChkYXRhKSA9PiB7XG4gIGlmICghZGF0YS5jb21wcmVzc2VkKSB7XG4gICAgcmV0dXJuIGRhdGFcbiAgfVxuICBkYXRhLmNvbXByZXNzZWQgPSBmYWxzZVxuXG4gIGZvciAobGV0IGlkIGluIGRhdGEuZW1vamlzKSB7XG4gICAgbGV0IGVtb2ppID0gZGF0YS5lbW9qaXNbaWRdXG5cbiAgICBmb3IgKGxldCBrZXkgaW4gbWFwcGluZykge1xuICAgICAgZW1vamlba2V5XSA9IGVtb2ppW21hcHBpbmdba2V5XV1cbiAgICAgIGRlbGV0ZSBlbW9qaVttYXBwaW5nW2tleV1dXG4gICAgfVxuXG4gICAgaWYgKCFlbW9qaS5zaG9ydF9uYW1lcykgZW1vamkuc2hvcnRfbmFtZXMgPSBbXVxuICAgIGVtb2ppLnNob3J0X25hbWVzLnVuc2hpZnQoaWQpXG5cbiAgICBlbW9qaS5zaGVldF94ID0gZW1vamkuc2hlZXRbMF1cbiAgICBlbW9qaS5zaGVldF95ID0gZW1vamkuc2hlZXRbMV1cbiAgICBkZWxldGUgZW1vamkuc2hlZXRcblxuICAgIGlmICghZW1vamkudGV4dCkgZW1vamkudGV4dCA9ICcnXG5cbiAgICBpZiAoIWVtb2ppLmFkZGVkX2luKSBlbW9qaS5hZGRlZF9pbiA9IDZcbiAgICBlbW9qaS5hZGRlZF9pbiA9IGVtb2ppLmFkZGVkX2luLnRvRml4ZWQoMSlcblxuICAgIGVtb2ppLnNlYXJjaCA9IGJ1aWxkU2VhcmNoKGVtb2ppKVxuICB9XG4gIGRhdGEgPSBkZWVwRnJlZXplKGRhdGEpXG4gIHJldHVybiBkYXRhXG59XG5cbmV4cG9ydCB7IGJ1aWxkU2VhcmNoLCB1bmNvbXByZXNzIH1cbiIsImltcG9ydCB7IGludGVyc2VjdCwgdW5pZmllZFRvTmF0aXZlIH0gZnJvbSAnLi9pbmRleCdcbmltcG9ydCB7IHVuY29tcHJlc3MsIGJ1aWxkU2VhcmNoIH0gZnJvbSAnLi9kYXRhJ1xuaW1wb3J0IGZyZXF1ZW50bHkgZnJvbSAnLi9mcmVxdWVudGx5J1xuXG5jb25zdCBTSEVFVF9DT0xVTU5TID0gNjFcbmNvbnN0IENPTE9OU19SRUdFWCA9IC9eKD86XFw6KFteXFw6XSspXFw6KSg/OlxcOnNraW4tdG9uZS0oXFxkKVxcOik/JC9cbi8vIFNraW4gdG9uZXNcbmNvbnN0IFNLSU5TID0gWycxRjNGQScsICcxRjNGQicsICcxRjNGQycsICcxRjNGRCcsICcxRjNGRScsICcxRjNGRiddXG5cbi8qKlxuICogRW1vamkgZGF0YSBzdHJ1Y3R1cmU6XG4gKiB7XG4gKiAgICBcImNvbXByZXNzZWRcIjogZmFsc2UsXG4gKiAgICBcImFsaWFzZXNcIjoge1xuICogICAgICBjb2xsaXNpb246IFwiYm9vbVwiXG4gKiAgICAgIGNvb2tpbmc6IFwiZnJpZWRfZWdnXCJcbiAqICAgICAgZW52ZWxvcGU6IFwiZW1haWxcIlxuICogICAgICBmYWNlX3dpdGhfZmluZ2VyX2NvdmVyaW5nX2Nsb3NlZF9saXBzOiBcInNodXNoaW5nX2ZhY2VcIlxuICogICAgICAuLi5cbiAqICAgIH0sXG4gKiAgICBcImNhdGVnb3JpZXNcIjogWyB7XG4gKiAgICAgIGlkOiBcInBlb3BsZVwiLFxuICogICAgICBuYW1lOiBcIlNtaWxleXMgJiBFbW90aW9uXCIsXG4gKiAgICAgIGVtb2ppczogWyBcImdyaW5uaW5nXCIsIFwiZ3JpblwiLCBcImpveVwiLCAuLi4gXVxuICogICAgfSwge1xuICogICAgICBpZDogXCJuYXR1cmVcIixcbiAqICAgICAgbmFtZTogXCJBbmltYWxzICYgTmF0dXJlXCIsXG4gKiAgICAgIGVtb2ppczogWyBcIm1vbmtleV9mYWNlXCIsIFwibW9uZXlcIiwgXCJnb3JpbGxhXCIsIC4uLiBdXG4gKiAgICB9LFxuICogICAgLi4uXG4gKiAgICBdLFxuICogICAgXCJlbW9qaXNcIjogW1xuICogICAgICBzbWlsZXk6IHtcbiAqICAgICAgICBhZGRlZF9pbjogXCI2LjBcIixcbiAqICAgICAgICBlbW90aWNvbnM6IFtcIj0pXCIsIFwiPS0pXCJdLFxuICogICAgICAgIGhhc19pbWdfYXBwbGU6IHRydWUsXG4gKiAgICAgICAgaGFzX2ltZ19mYWNlYm9vazogdHJ1ZSxcbiAqICAgICAgICBoYXNfaW1nX2dvb2dsZTogdHJ1ZSxcbiAqICAgICAgICBoYXNfaW1nX3R3aXR0ZXI6IHRydWUsXG4gKiAgICAgICAga2V5d29yZHM6IFtcImZhY2VcIiwgXCJoYXBweVwiLCBcImpveVwiLCBcImhhaGFcIiwgXCI6RFwiLCBcIjopXCIsIFwic21pbGVcIiwgXCJmdW5ueVwiXSxcbiAqICAgICAgICBuYW1lOiBcIlNtaWxpbmcgRmFjZSB3aXRoIE9wZW4gTW91dGhcIixcbiAqICAgICAgICBub25fcXVhbGlmaWVkOiB1bmRlZmluZWQsXG4gKiAgICAgICAgc2VhcmNoOiBcInNtaWxleSxzbWlsaW5nLGZhY2Usd2l0aCxvcGVuLG1vdXRoLGhhcHB5LGpveSxoYWhhLDpkLDopLHNtaWxlLGZ1bm55LD0pLD0tKVwiLFxuICogICAgICAgIHNoZWV0X3g6IDMwLFxuICogICAgICAgIHNoZWV0X3k6IDI3LFxuICogICAgICAgIHNob3J0X25hbWVzOiBbXCJzbWlsZXlcIl0sXG4gKiAgICAgICAgdGV4dDogXCI6KVwiLFxuICogICAgICAgIHVuaWZpZWQ6IFwiMUY2MDNcIixcbiAqICAgICAgfSwge1xuICogICAgICArMTogeyAgICAvLyBlbW9qaSB3aXRoIHNraW5fdmFyaWF0aW9uc1xuICogICAgICAgICAgLi4uLCAvLyBhbGwgdGhlIHJlZ3VsYXIgZmllbGRzIGFyZSBwcmVzZW50XG4gKiAgICAgICAgICBuYW1lOiBcIlRodW1icyBVcCBTaWduXCIsXG4gKiAgICAgICAgICBzaG9ydF9uYW1lczogKDIpIFtcIisxXCIsIFwidGh1bWJzdXBcIl0sXG4gKiAgICAgICAgICBza2luX3ZhcmlhdGlvbnM6IHtcbiAqICAgICAgICAgICAgMUYzRkI6ICAgICAgICAgICAgIC8vIGVhY2ggdmFyaWF0aW9uIGhhcyBhZGRpdGlvbmFsIHNldCBvZiBmaWVsZHM6XG4gKiAgICAgICAgICAgICAgYWRkZWRfaW46IFwiOC4wXCIsXG4gKiAgICAgICAgICAgICAgaGFzX2ltZ19hcHBsZTogdHJ1ZSxcbiAqICAgICAgICAgICAgICBoYXNfaW1nX2ZhY2Vib29rOiB0cnVlLFxuICogICAgICAgICAgICAgIGhhc19pbWdfZ29vZ2xlOiB0cnVlLFxuICogICAgICAgICAgICAgIGhhc19pbWdfdHdpdHRlcjogdHJ1ZSxcbiAqICAgICAgICAgICAgICBpbWFnZTogXCIxZjQ0ZC0xZjNmYi5wbmdcIixcbiAqICAgICAgICAgICAgICBub25fcXVhbGlmaWVkOiBudWxsLFxuICogICAgICAgICAgICAgIHNoZWV0X3g6IDE0LFxuICogICAgICAgICAgICAgIHNoZWV0X3k6IDUwLFxuICogICAgICAgICAgICAgIHVuaWZpZWQ6IFwiMUY0NEQtMUYzRkJcIixcbiAqICAgICAgICAgICAgMUYzRkI6IHvigKZ9LFxuICogICAgICAgICAgICAxRjNGQzoge+KApn0sXG4gKiAgICAgICAgICAgIDFGM0ZEOiB74oCmfSxcbiAqICAgICAgICAgICAgMUYzRkU6IHvigKZ9LFxuICogICAgICAgICAgICAxRjNGRjoge+KApn1cbiAqICAgICAgICAgICAgfSxcbiAqICAgICAgICAgIC4uLlxuICogICAgICB9LFxuICogICAgICBhOiB7ICAvLyBlbW9qaSB3aXRoIG5vbl9xdWFsaWZpZWQgZmllbGQgc2V0XG4gKiAgICAgICAgYWRkZWRfaW46IFwiNi4wXCIsXG4gKiAgICAgICAgZW1vdGljb25zOiB1bmRlZmluZWQsXG4gKiAgICAgICAgaGFzX2ltZ19hcHBsZTogdHJ1ZSxcbiAqICAgICAgICAuLi5cbiAqICAgICAgICBub25fcXVhbGlmaWVkOiBcIjFGMTcwXCIsXG4gKiAgICAgICAgdW5pZmllZDogXCIxRjE3MC1GRTBGXCIsXG4gKiAgICAgfSxcbiAqICAgICAuLi5cbiAqICAgXVxuICogfVxuICovXG5cbi8qKlxuICogV3JhcHMgcmF3IGphc29uIGVtb2ppIGRhdGEsIHNlcnZlcyBhcyBkYXRhIHNvdXJjZSBmb3JcbiAqIGVtb2ppIHBpY2tlciBjb21wb25lbnRzLlxuICpcbiAqIFVzYWdlOlxuICpcbiAqICAgaW1wb3J0IGRhdGEgZnJvbSAnLi4vZGF0YS9hbGwuanNvbidcbiAqICAgbGV0IGluZGV4ID0gbmV3IEVtb2ppSW5kZXgoZGF0YSlcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBFbW9qaUluZGV4IHtcbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yLlxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gZGF0YSAtIFJhdyBqc29uIGRhdGEsIHNlZSB0aGUgc3RydWN0dXJlIGFib3ZlLlxuICAgKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyAtIGFkZGl0aW9uYWwgb3B0aW9ucywgYXMgYW4gb2JqZWN0OlxuICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBlbW9qaXNUb1Nob3dGaWx0ZXIgLSBvcHRpb25hbCwgZnVuY3Rpb24gdG8gZmlsdGVyIG91dFxuICAgKiAgIHNvbWUgZW1vamlzLCBmdW5jdGlvbihlbW9qaSkgeyByZXR1cm4gdHJ1ZXxmYWxzZSB9XG4gICAqICAgd2hlcmUgYGVtb2ppYCBpcyBhbiByYXcgZW1vamkgb2JqZWN0LCBzZWUgZGF0YS5lbW9qaXMgYWJvdmUuXG4gICAqIEBwYXJhbSB7QXJyYXl9IGluY2x1ZGUgLSBvcHRpb25hbCwgYSBsaXN0IG9mIGNhdGVnb3J5IGlkcyB0byBpbmNsdWRlLlxuICAgKiBAcGFyYW0ge0FycmF5fSBleGNsdWRlIC0gb3B0aW9uYWwsIGEgbGlzdCBvZiBjYXRlZ29yeSBpZHMgdG8gZXhjbHVkZS5cbiAgICogQHBhcmFtIHtBcnJheX0gY3VzdG9tIC0gb3B0aW9uYWwsIGEgbGlzdCBjdXN0b20gZW1vamlzLCBlYWNoIGVtb2ppIGlzXG4gICAqICAgYW4gb2JqZWN0LCBzZWUgZGF0YS5lbW9qaXMgYWJvdmUgZm9yIGV4YW1wbGVzLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgZGF0YSxcbiAgICB7XG4gICAgICBlbW9qaXNUb1Nob3dGaWx0ZXIsXG4gICAgICBpbmNsdWRlLFxuICAgICAgZXhjbHVkZSxcbiAgICAgIGN1c3RvbSxcbiAgICAgIHJlY2VudCxcbiAgICAgIHJlY2VudExlbmd0aCA9IDIwLFxuICAgIH0gPSB7fSxcbiAgKSB7XG4gICAgdGhpcy5fZGF0YSA9IHVuY29tcHJlc3MoZGF0YSlcbiAgICAvLyBDYWxsYmFjayB0byBleGNsdWRlIHNwZWNpZmljIGVtb2ppc1xuICAgIHRoaXMuX2Vtb2ppc0ZpbHRlciA9IGVtb2ppc1RvU2hvd0ZpbHRlciB8fCBudWxsXG4gICAgLy8gQ2F0ZWdvcmllcyB0byBpbmNsdWRlIC8gZXhjbHVkZVxuICAgIHRoaXMuX2luY2x1ZGUgPSBpbmNsdWRlIHx8IG51bGxcbiAgICB0aGlzLl9leGNsdWRlID0gZXhjbHVkZSB8fCBudWxsXG4gICAgLy8gQ3VzdG9tIGVtb2ppc1xuICAgIHRoaXMuX2N1c3RvbSA9IGN1c3RvbSB8fCBbXVxuICAgIC8vIFJlY2VudCBlbW9qaXNcbiAgICAvLyBUT0RPOiBtYWtlIHBhcmFtZXRlciBjb25maWd1cmFibGVcbiAgICB0aGlzLl9yZWNlbnQgPSByZWNlbnQgfHwgZnJlcXVlbnRseS5nZXQocmVjZW50TGVuZ3RoKVxuXG4gICAgdGhpcy5fZW1vamlzID0ge31cbiAgICB0aGlzLl9uYXRpdmVFbW9qaXMgPSB7fVxuICAgIHRoaXMuX2Vtb3RpY29ucyA9IHt9XG5cbiAgICB0aGlzLl9jYXRlZ29yaWVzID0gW11cbiAgICB0aGlzLl9yZWNlbnRDYXRlZ29yeSA9IHsgaWQ6ICdyZWNlbnQnLCBuYW1lOiAnUmVjZW50JywgZW1vamlzOiBbXSB9XG4gICAgdGhpcy5fY3VzdG9tQ2F0ZWdvcnkgPSB7IGlkOiAnY3VzdG9tJywgbmFtZTogJ0N1c3RvbScsIGVtb2ppczogW10gfVxuICAgIHRoaXMuX3NlYXJjaEluZGV4ID0ge31cbiAgICB0aGlzLmJ1aWxkSW5kZXgoKVxuICAgIE9iamVjdC5mcmVlemUodGhpcylcbiAgfVxuXG4gIGJ1aWxkSW5kZXgoKSB7XG4gICAgbGV0IGFsbENhdGVnb3JpZXMgPSB0aGlzLl9kYXRhLmNhdGVnb3JpZXNcblxuICAgIGlmICh0aGlzLl9pbmNsdWRlKSB7XG4gICAgICAvLyBSZW1vdmUgY2F0ZWdvcmllcyB0aGF0IGFyZSBub3QgaW4gdGhlIGluY2x1ZGUgbGlzdC5cbiAgICAgIGFsbENhdGVnb3JpZXMgPSBhbGxDYXRlZ29yaWVzLmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5jbHVkZS5pbmNsdWRlcyhpdGVtLmlkKVxuICAgICAgfSlcbiAgICAgIC8vIFNvcnQgY2F0ZWdvcmllcyBhY2NvcmRpbmcgdG8gdGhlIGluY2x1ZGUgbGlzdC5cbiAgICAgIGFsbENhdGVnb3JpZXMgPSBhbGxDYXRlZ29yaWVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXhBID0gdGhpcy5faW5jbHVkZS5pbmRleE9mKGEuaWQpXG4gICAgICAgIGNvbnN0IGluZGV4QiA9IHRoaXMuX2luY2x1ZGUuaW5kZXhPZihiLmlkKVxuICAgICAgICBpZiAoaW5kZXhBIDwgaW5kZXhCKSB7XG4gICAgICAgICAgcmV0dXJuIC0xXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGV4QSA+IGluZGV4Qikge1xuICAgICAgICAgIHJldHVybiAxXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDBcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgYWxsQ2F0ZWdvcmllcy5mb3JFYWNoKChjYXRlZ29yeURhdGEpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc0NhdGVnb3J5TmVlZGVkKGNhdGVnb3J5RGF0YS5pZCkpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBsZXQgY2F0ZWdvcnkgPSB7XG4gICAgICAgIGlkOiBjYXRlZ29yeURhdGEuaWQsXG4gICAgICAgIG5hbWU6IGNhdGVnb3J5RGF0YS5uYW1lLFxuICAgICAgICBlbW9qaXM6IFtdLFxuICAgICAgfVxuICAgICAgY2F0ZWdvcnlEYXRhLmVtb2ppcy5mb3JFYWNoKChlbW9qaUlkKSA9PiB7XG4gICAgICAgIGxldCBlbW9qaSA9IHRoaXMuYWRkRW1vamkoZW1vamlJZClcbiAgICAgICAgaWYgKGVtb2ppKSB7XG4gICAgICAgICAgY2F0ZWdvcnkuZW1vamlzLnB1c2goZW1vamkpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICBpZiAoY2F0ZWdvcnkuZW1vamlzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9jYXRlZ29yaWVzLnB1c2goY2F0ZWdvcnkpXG4gICAgICB9XG4gICAgfSlcblxuICAgIGlmICh0aGlzLmlzQ2F0ZWdvcnlOZWVkZWQoJ2N1c3RvbScpKSB7XG4gICAgICBpZiAodGhpcy5fY3VzdG9tLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm9yIChsZXQgY3VzdG9tRW1vamkgb2YgdGhpcy5fY3VzdG9tKSB7XG4gICAgICAgICAgdGhpcy5hZGRDdXN0b21FbW9qaShjdXN0b21FbW9qaSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuX2N1c3RvbUNhdGVnb3J5LmVtb2ppcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5fY2F0ZWdvcmllcy5wdXNoKHRoaXMuX2N1c3RvbUNhdGVnb3J5KVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmlzQ2F0ZWdvcnlOZWVkZWQoJ3JlY2VudCcpKSB7XG4gICAgICBpZiAodGhpcy5fcmVjZW50Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9yZWNlbnQubWFwKChpZCkgPT4ge1xuICAgICAgICAgIGZvciAobGV0IGN1c3RvbUVtb2ppIG9mIHRoaXMuX2N1c3RvbUNhdGVnb3J5LmVtb2ppcykge1xuICAgICAgICAgICAgaWYgKGN1c3RvbUVtb2ppLmlkID09PSBpZCkge1xuICAgICAgICAgICAgICB0aGlzLl9yZWNlbnRDYXRlZ29yeS5lbW9qaXMucHVzaChjdXN0b21FbW9qaSlcbiAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLmhhc0Vtb2ppKGlkKSkge1xuICAgICAgICAgICAgdGhpcy5fcmVjZW50Q2F0ZWdvcnkuZW1vamlzLnB1c2godGhpcy5lbW9qaShpZCkpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgLy8gQWRkIHJlY2VudCBjYXRlZ29yeSB0byB0aGUgdG9wXG4gICAgICBpZiAodGhpcy5fcmVjZW50Q2F0ZWdvcnkuZW1vamlzLmxlbmd0aCkge1xuICAgICAgICB0aGlzLl9jYXRlZ29yaWVzLnVuc2hpZnQodGhpcy5fcmVjZW50Q2F0ZWdvcnkpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgdGhlIGVtb2ppIGZyb20gdGhlIHN0cmluZ1xuICAgKi9cbiAgZmluZEVtb2ppKGVtb2ppLCBza2luKSB7XG4gICAgLy8gMS4gUGFyc2UgYXMgOmVtb2ppX25hbWU6c2tpbi10b25lLXh4OlxuICAgIGxldCBtYXRjaGVzID0gZW1vamkubWF0Y2goQ09MT05TX1JFR0VYKVxuXG4gICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgIGVtb2ppID0gbWF0Y2hlc1sxXVxuICAgICAgaWYgKG1hdGNoZXNbMl0pIHtcbiAgICAgICAgc2tpbiA9IHBhcnNlSW50KG1hdGNoZXNbMl0sIDEwKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDIuIENoZWNrIGlmIHRoZSBzcGVjaWZpZWQgZW1vamkgaXMgYW4gYWxpYXNcbiAgICBpZiAodGhpcy5fZGF0YS5hbGlhc2VzLmhhc093blByb3BlcnR5KGVtb2ppKSkge1xuICAgICAgZW1vamkgPSB0aGlzLl9kYXRhLmFsaWFzZXNbZW1vamldXG4gICAgfVxuXG4gICAgLy8gMy4gQ2hlY2sgaWYgd2UgaGF2ZSB0aGUgc3BlY2lmaWVkIGVtb2ppXG4gICAgaWYgKHRoaXMuX2Vtb2ppcy5oYXNPd25Qcm9wZXJ0eShlbW9qaSkpIHtcbiAgICAgIGxldCBlbW9qaU9iamVjdCA9IHRoaXMuX2Vtb2ppc1tlbW9qaV1cbiAgICAgIGlmIChza2luKSB7XG4gICAgICAgIHJldHVybiBlbW9qaU9iamVjdC5nZXRTa2luKHNraW4pXG4gICAgICB9XG4gICAgICByZXR1cm4gZW1vamlPYmplY3RcbiAgICB9XG5cbiAgICAvLyA0LiBDaGVjayBpZiB3ZSBoYXZlIHRoZSBzcGVjaWZpZWQgbmF0aXZlIGVtb2ppXG4gICAgaWYgKHRoaXMuX25hdGl2ZUVtb2ppcy5oYXNPd25Qcm9wZXJ0eShlbW9qaSkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9uYXRpdmVFbW9qaXNbZW1vamldXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjYXRlZ29yaWVzKCkge1xuICAgIHJldHVybiB0aGlzLl9jYXRlZ29yaWVzXG4gIH1cblxuICBlbW9qaShlbW9qaUlkKSB7XG4gICAgaWYgKHRoaXMuX2RhdGEuYWxpYXNlcy5oYXNPd25Qcm9wZXJ0eShlbW9qaUlkKSkge1xuICAgICAgZW1vamlJZCA9IHRoaXMuX2RhdGEuYWxpYXNlc1tlbW9qaUlkXVxuICAgIH1cbiAgICBsZXQgZW1vamkgPSB0aGlzLl9lbW9qaXNbZW1vamlJZF1cbiAgICBpZiAoIWVtb2ppKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhbiBub3QgZmluZCBlbW9qaSBieSBpZDogJyArIGVtb2ppSWQpXG4gICAgfVxuICAgIHJldHVybiBlbW9qaVxuICB9XG5cbiAgZmlyc3RFbW9qaSgpIHtcbiAgICBsZXQgZW1vamkgPSB0aGlzLl9lbW9qaXNbT2JqZWN0LmtleXModGhpcy5fZW1vamlzKVswXV1cbiAgICBpZiAoIWVtb2ppKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhbiBub3QgZ2V0IGZpcnN0IGVtb2ppJylcbiAgICB9XG4gICAgcmV0dXJuIGVtb2ppXG4gIH1cblxuICBoYXNFbW9qaShlbW9qaUlkKSB7XG4gICAgaWYgKHRoaXMuX2RhdGEuYWxpYXNlcy5oYXNPd25Qcm9wZXJ0eShlbW9qaUlkKSkge1xuICAgICAgZW1vamlJZCA9IHRoaXMuX2RhdGEuYWxpYXNlc1tlbW9qaUlkXVxuICAgIH1cbiAgICBpZiAodGhpcy5fZW1vamlzW2Vtb2ppSWRdKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIG5hdGl2ZUVtb2ppKHVuaWNvZGVFbW9qaSkge1xuICAgIGlmICh0aGlzLl9uYXRpdmVFbW9qaXMuaGFzT3duUHJvcGVydHkodW5pY29kZUVtb2ppKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX25hdGl2ZUVtb2ppc1t1bmljb2RlRW1vamldXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBzZWFyY2godmFsdWUsIG1heFJlc3VsdHMpIHtcbiAgICBtYXhSZXN1bHRzIHx8IChtYXhSZXN1bHRzID0gNzUpXG4gICAgaWYgKCF2YWx1ZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PSAnLScgfHwgdmFsdWUgPT0gJy0xJykge1xuICAgICAgcmV0dXJuIFt0aGlzLmVtb2ppKCctMScpXVxuICAgIH1cblxuICAgIGxldCB2YWx1ZXMgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpLnNwbGl0KC9bXFxzfCx8XFwtfF9dKy8pXG4gICAgbGV0IGFsbFJlc3VsdHMgPSBbXVxuXG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPiAyKSB7XG4gICAgICB2YWx1ZXMgPSBbdmFsdWVzWzBdLCB2YWx1ZXNbMV1dXG4gICAgfVxuXG4gICAgYWxsUmVzdWx0cyA9IHZhbHVlc1xuICAgICAgLm1hcCgodmFsdWUpID0+IHtcbiAgICAgICAgLy8gU3RhcnQgc2VhcmNoaW4gaW4gdGhlIGdsb2JhbCBsaXN0IG9mIGVtb2ppc1xuICAgICAgICBsZXQgZW1vamlzID0gdGhpcy5fZW1vamlzXG4gICAgICAgIGxldCBjdXJyZW50SW5kZXggPSB0aGlzLl9zZWFyY2hJbmRleFxuICAgICAgICBsZXQgbGVuZ3RoID0gMFxuXG4gICAgICAgIGZvciAobGV0IGNoYXJJbmRleCA9IDA7IGNoYXJJbmRleCA8IHZhbHVlLmxlbmd0aDsgY2hhckluZGV4KyspIHtcbiAgICAgICAgICBjb25zdCBjaGFyID0gdmFsdWVbY2hhckluZGV4XVxuICAgICAgICAgIGxlbmd0aCsrXG5cbiAgICAgICAgICBjdXJyZW50SW5kZXhbY2hhcl0gfHwgKGN1cnJlbnRJbmRleFtjaGFyXSA9IHt9KVxuICAgICAgICAgIGN1cnJlbnRJbmRleCA9IGN1cnJlbnRJbmRleFtjaGFyXVxuXG4gICAgICAgICAgaWYgKCFjdXJyZW50SW5kZXgucmVzdWx0cykge1xuICAgICAgICAgICAgbGV0IHNjb3JlcyA9IHt9XG4gICAgICAgICAgICBjdXJyZW50SW5kZXgucmVzdWx0cyA9IFtdXG4gICAgICAgICAgICBjdXJyZW50SW5kZXguZW1vamlzID0ge31cblxuICAgICAgICAgICAgZm9yIChsZXQgZW1vamlJZCBpbiBlbW9qaXMpIHtcbiAgICAgICAgICAgICAgbGV0IGVtb2ppID0gZW1vamlzW2Vtb2ppSWRdXG4gICAgICAgICAgICAgIC8vIHNlYXJjaCBpcyBhIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmcgd2l0aCB3b3JkcywgcmVsYXRlZFxuICAgICAgICAgICAgICAvLyB0byB0aGUgZW1vamksIGZvciBleGFtcGxlOlxuICAgICAgICAgICAgICAvLyBzZWFyY2g6IFwic21pbGV5LHNtaWxpbmcsZmFjZSxqb3ksaGFoYSw6ZCw6KSxzbWlsZSxmdW5ueSw9KSw9LSlcIixcbiAgICAgICAgICAgICAgbGV0IHNlYXJjaCA9IGVtb2ppLl9kYXRhLnNlYXJjaFxuICAgICAgICAgICAgICBsZXQgc3ViID0gdmFsdWUuc3Vic3RyKDAsIGxlbmd0aClcbiAgICAgICAgICAgICAgbGV0IHN1YkluZGV4ID0gc2VhcmNoLmluZGV4T2Yoc3ViKVxuICAgICAgICAgICAgICBpZiAoc3ViSW5kZXggIT0gLTEpIHtcbiAgICAgICAgICAgICAgICBsZXQgc2NvcmUgPSBzdWJJbmRleCArIDFcbiAgICAgICAgICAgICAgICBpZiAoc3ViID09IGVtb2ppSWQpIHNjb3JlID0gMFxuXG4gICAgICAgICAgICAgICAgY3VycmVudEluZGV4LnJlc3VsdHMucHVzaChlbW9qaSlcbiAgICAgICAgICAgICAgICBjdXJyZW50SW5kZXguZW1vamlzW2Vtb2ppSWRdID0gZW1vamlcblxuICAgICAgICAgICAgICAgIHNjb3Jlc1tlbW9qaUlkXSA9IHNjb3JlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGN1cnJlbnRJbmRleC5yZXN1bHRzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgICAgdmFyIGFTY29yZSA9IHNjb3Jlc1thLmlkXSxcbiAgICAgICAgICAgICAgICBiU2NvcmUgPSBzY29yZXNbYi5pZF1cbiAgICAgICAgICAgICAgcmV0dXJuIGFTY29yZSAtIGJTY29yZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBjb250aW51ZSBzZWFyY2ggaW4gdGhlIHJlZHVjZWQgc2V0IG9mIGVtb2ppc1xuICAgICAgICAgIGVtb2ppcyA9IGN1cnJlbnRJbmRleC5lbW9qaXNcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VycmVudEluZGV4LnJlc3VsdHNcbiAgICAgICAgLy8gVGhlIFwiZmlsdGVyXCIgY2FsbCByZW1vdmVzIHVuZGVmaW5lZCB2YWx1ZXMgZnJvbSBhbGxSZXN1bHRzXG4gICAgICAgIC8vIGFycmF5LCBmb3IgZXhhbXBsZSwgaWYgd2UgaGF2ZSBcInRlc3QgXCIgKHdpdGggdHJhaWxpbmcgc3BhY2UpLFxuICAgICAgICAvLyB3ZSB3aWxsIGdldCBcIltBcnJheSwgdW5kZWZpbmVkXVwiIGZvciBhbGxSZXN1bHRzIGFuZCBhZnRlclxuICAgICAgICAvLyB0aGUgXCJmaWx0ZXJcIiBjYWxsIGl0IHdpbGwgdHVybiBpbnRvIFwiW0FycmF5XVwiXG4gICAgICB9KVxuICAgICAgLmZpbHRlcigoYSkgPT4gYSlcblxuICAgIHZhciByZXN1bHRzID0gbnVsbFxuICAgIGlmIChhbGxSZXN1bHRzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHJlc3VsdHMgPSBpbnRlcnNlY3QuYXBwbHkobnVsbCwgYWxsUmVzdWx0cylcbiAgICB9IGVsc2UgaWYgKGFsbFJlc3VsdHMubGVuZ3RoKSB7XG4gICAgICByZXN1bHRzID0gYWxsUmVzdWx0c1swXVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRzID0gW11cbiAgICB9XG4gICAgaWYgKHJlc3VsdHMgJiYgcmVzdWx0cy5sZW5ndGggPiBtYXhSZXN1bHRzKSB7XG4gICAgICByZXN1bHRzID0gcmVzdWx0cy5zbGljZSgwLCBtYXhSZXN1bHRzKVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0c1xuICB9XG5cbiAgYWRkQ3VzdG9tRW1vamkoY3VzdG9tRW1vamkpIHtcbiAgICBsZXQgZW1vamlEYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgY3VzdG9tRW1vamksIHtcbiAgICAgIGlkOiBjdXN0b21FbW9qaS5zaG9ydF9uYW1lc1swXSxcbiAgICAgIGN1c3RvbTogdHJ1ZSxcbiAgICB9KVxuICAgIGlmICghZW1vamlEYXRhLnNlYXJjaCkge1xuICAgICAgZW1vamlEYXRhLnNlYXJjaCA9IGJ1aWxkU2VhcmNoKGVtb2ppRGF0YSlcbiAgICB9XG4gICAgbGV0IGVtb2ppID0gbmV3IEVtb2ppRGF0YShlbW9qaURhdGEpXG4gICAgdGhpcy5fZW1vamlzW2Vtb2ppLmlkXSA9IGVtb2ppXG4gICAgdGhpcy5fY3VzdG9tQ2F0ZWdvcnkuZW1vamlzLnB1c2goZW1vamkpXG4gICAgcmV0dXJuIGVtb2ppXG4gIH1cblxuICBhZGRFbW9qaShlbW9qaUlkKSB7XG4gICAgLy8gV2UgZXhwZWN0IHRoZSBjb3JyZWN0IGVtb2ppIGlkIHRoYXQgaXMgcHJlc2VudCBpbiB0aGUgZW1vamlzIGRhdGEuXG4gICAgbGV0IGRhdGEgPSB0aGlzLl9kYXRhLmVtb2ppc1tlbW9qaUlkXVxuXG4gICAgaWYgKCF0aGlzLmlzRW1vamlOZWVkZWQoZGF0YSkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGxldCBlbW9qaSA9IG5ldyBFbW9qaURhdGEoZGF0YSlcbiAgICB0aGlzLl9lbW9qaXNbZW1vamlJZF0gPSBlbW9qaVxuICAgIGlmIChlbW9qaS5uYXRpdmUpIHtcbiAgICAgIHRoaXMuX25hdGl2ZUVtb2ppc1tlbW9qaS5uYXRpdmVdID0gZW1vamlcbiAgICB9XG4gICAgaWYgKGVtb2ppLl9za2lucykge1xuICAgICAgZm9yIChsZXQgaWR4IGluIGVtb2ppLl9za2lucykge1xuICAgICAgICBsZXQgc2tpbiA9IGVtb2ppLl9za2luc1tpZHhdXG4gICAgICAgIGlmIChza2luLm5hdGl2ZSkge1xuICAgICAgICAgIHRoaXMuX25hdGl2ZUVtb2ppc1tza2luLm5hdGl2ZV0gPSBza2luXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZW1vamkuZW1vdGljb25zKSB7XG4gICAgICBlbW9qaS5lbW90aWNvbnMuZm9yRWFjaCgoZW1vdGljb24pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2Vtb3RpY29uc1tlbW90aWNvbl0pIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lbW90aWNvbnNbZW1vdGljb25dID0gZW1vamlJZFxuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIGVtb2ppXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgd2UgbmVlZCB0byBpbmNsdWRlIGdpdmVuIGNhdGVnb3J5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2F0ZWdvcnlfaWQgLSBUaGUgY2F0ZWdvcnkgaWQuXG4gICAqIEByZXR1cm4ge2Jvb2xlYW59IC0gV2hldGhlciB0byBpbmNsdWRlIHRoZSBlbW9qaS5cbiAgICovXG4gIGlzQ2F0ZWdvcnlOZWVkZWQoY2F0ZWdvcnlfaWQpIHtcbiAgICBsZXQgaXNJbmNsdWRlZCA9XG4gICAgICB0aGlzLl9pbmNsdWRlICYmIHRoaXMuX2luY2x1ZGUubGVuZ3RoXG4gICAgICAgID8gdGhpcy5faW5jbHVkZS5pbmRleE9mKGNhdGVnb3J5X2lkKSA+IC0xXG4gICAgICAgIDogdHJ1ZVxuICAgIGxldCBpc0V4Y2x1ZGVkID1cbiAgICAgIHRoaXMuX2V4Y2x1ZGUgJiYgdGhpcy5fZXhjbHVkZS5sZW5ndGhcbiAgICAgICAgPyB0aGlzLl9leGNsdWRlLmluZGV4T2YoY2F0ZWdvcnlfaWQpID4gLTFcbiAgICAgICAgOiBmYWxzZVxuICAgIGlmICghaXNJbmNsdWRlZCB8fCBpc0V4Y2x1ZGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB3ZSBuZWVkIHRvIGluY2x1ZGUgZ2l2ZW4gZW1vamkuXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBlbW9qaSAtIFRoZSByYXcgZW1vamkgb2JqZWN0LlxuICAgKiBAcmV0dXJuIHtib29sZWFufSAtIFdoZXRoZXIgdG8gaW5jbHVkZSB0aGUgZW1vamkuXG4gICAqL1xuICBpc0Vtb2ppTmVlZGVkKGVtb2ppKSB7XG4gICAgaWYgKHRoaXMuX2Vtb2ppc0ZpbHRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuX2Vtb2ppc0ZpbHRlcihlbW9qaSlcbiAgICB9XG4gICAgcmV0dXJuIHRydWVcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRW1vamlEYXRhIHtcbiAgY29uc3RydWN0b3IoZGF0YSkge1xuICAgIHRoaXMuX2RhdGEgPSBPYmplY3QuYXNzaWduKHt9LCBkYXRhKVxuICAgIHRoaXMuX3NraW5zID0gbnVsbFxuICAgIGlmICh0aGlzLl9kYXRhLnNraW5fdmFyaWF0aW9ucykge1xuICAgICAgdGhpcy5fc2tpbnMgPSBbXVxuICAgICAgZm9yICh2YXIgc2tpbklkeCBpbiBTS0lOUykge1xuICAgICAgICBsZXQgc2tpbktleSA9IFNLSU5TW3NraW5JZHhdXG4gICAgICAgIGxldCB2YXJpYXRpb25EYXRhID0gdGhpcy5fZGF0YS5za2luX3ZhcmlhdGlvbnNbc2tpbktleV1cbiAgICAgICAgbGV0IHNraW5EYXRhID0gT2JqZWN0LmFzc2lnbih7fSwgZGF0YSlcbiAgICAgICAgZm9yIChsZXQgayBpbiB2YXJpYXRpb25EYXRhKSB7XG4gICAgICAgICAgc2tpbkRhdGFba10gPSB2YXJpYXRpb25EYXRhW2tdXG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHNraW5EYXRhLnNraW5fdmFyaWF0aW9uc1xuICAgICAgICBza2luRGF0YVsnc2tpbl90b25lJ10gPSBwYXJzZUludChza2luSWR4KSArIDFcbiAgICAgICAgdGhpcy5fc2tpbnMucHVzaChuZXcgRW1vamlEYXRhKHNraW5EYXRhKSlcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fc2FuaXRpemVkID0gc2FuaXRpemUodGhpcy5fZGF0YSlcbiAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5fc2FuaXRpemVkKSB7XG4gICAgICB0aGlzW2tleV0gPSB0aGlzLl9zYW5pdGl6ZWRba2V5XVxuICAgIH1cbiAgICB0aGlzLnNob3J0X25hbWVzID0gdGhpcy5fZGF0YS5zaG9ydF9uYW1lc1xuICAgIHRoaXMuc2hvcnRfbmFtZSA9IHRoaXMuX2RhdGEuc2hvcnRfbmFtZXNbMF1cbiAgICBPYmplY3QuZnJlZXplKHRoaXMpXG4gIH1cblxuICBnZXRTa2luKHNraW5JZHgpIHtcbiAgICBpZiAoc2tpbklkeCAmJiBza2luSWR4ICE9ICduYXRpdmUnICYmIHRoaXMuX3NraW5zKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2tpbnNbc2tpbklkeCAtIDFdXG4gICAgfVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBnZXRQb3NpdGlvbigpIHtcbiAgICBsZXQgYWRqdXN0ZWRDb2x1bW5zID0gU0hFRVRfQ09MVU1OUyAtIDEsXG4gICAgICB4ID0gKygoMTAwIC8gYWRqdXN0ZWRDb2x1bW5zKSAqIHRoaXMuX2RhdGEuc2hlZXRfeCkudG9GaXhlZCgyKSxcbiAgICAgIHkgPSArKCgxMDAgLyBhZGp1c3RlZENvbHVtbnMpICogdGhpcy5fZGF0YS5zaGVldF95KS50b0ZpeGVkKDIpXG4gICAgcmV0dXJuIGAke3h9JSAke3l9JWBcbiAgfVxuXG4gIGFyaWFMYWJlbCgpIHtcbiAgICByZXR1cm4gW3RoaXMubmF0aXZlXS5jb25jYXQodGhpcy5zaG9ydF9uYW1lcykuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJywgJylcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRW1vamlWaWV3IHtcbiAgLyoqXG4gICAqIGVtb2ppIC0gRW1vamkgdG8gZGlzcGxheVxuICAgKiBzZXQgLSBzdHJpbmcsIGVtb2ppIHNldCBuYW1lXG4gICAqIG5hdGl2ZSAtIGJvb2xlYW4sIHdoZXRoZXIgdG8gcmVuZGVyIG5hdGl2ZSBlbW9qaVxuICAgKiBmYWxsYmFjayAtIGZhbGxiYWNrIGZ1bmN0aW9uIHRvIHJlbmRlciBtaXNzaW5nIGVtb2ppLCBvcHRpb25hbFxuICAgKiBlbW9qaVRvb2x0aXAgLSB3ZXRoZXIgd2UgbmVlZCB0byBzaG93IHRoZSBlbW9qaSB0b29sdGlwLCBvcHRpb25hbFxuICAgKiBlbW9qaVNpemUgLSBlbW9qaSBzaXplIGluIHBpeGVscywgb3B0aW9uYWxcbiAgICovXG4gIGNvbnN0cnVjdG9yKGVtb2ppLCBza2luLCBzZXQsIG5hdGl2ZSwgZmFsbGJhY2ssIGVtb2ppVG9vbHRpcCwgZW1vamlTaXplKSB7XG4gICAgdGhpcy5fZW1vamkgPSBlbW9qaVxuICAgIHRoaXMuX25hdGl2ZSA9IG5hdGl2ZVxuICAgIHRoaXMuX3NraW4gPSBza2luXG4gICAgdGhpcy5fc2V0ID0gc2V0XG4gICAgdGhpcy5fZmFsbGJhY2sgPSBmYWxsYmFja1xuXG4gICAgdGhpcy5jYW5SZW5kZXIgPSB0aGlzLl9jYW5SZW5kZXIoKVxuICAgIHRoaXMuY3NzQ2xhc3MgPSB0aGlzLl9jc3NDbGFzcygpXG4gICAgdGhpcy5jc3NTdHlsZSA9IHRoaXMuX2Nzc1N0eWxlKGVtb2ppU2l6ZSlcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLl9jb250ZW50KClcbiAgICB0aGlzLnRpdGxlID0gZW1vamlUb29sdGlwID09PSB0cnVlID8gZW1vamkuc2hvcnRfbmFtZSA6IG51bGxcbiAgICB0aGlzLmFyaWFMYWJlbCA9IGVtb2ppLmFyaWFMYWJlbCgpXG5cbiAgICBPYmplY3QuZnJlZXplKHRoaXMpXG4gIH1cblxuICBnZXRFbW9qaSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW1vamkuZ2V0U2tpbih0aGlzLl9za2luKVxuICB9XG5cbiAgX2NhblJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5faXNDdXN0b20oKSB8fCB0aGlzLl9pc05hdGl2ZSgpIHx8IHRoaXMuX2hhc0Vtb2ppKCkgfHwgdGhpcy5fZmFsbGJhY2tcbiAgICApXG4gIH1cblxuICBfY3NzQ2xhc3MoKSB7XG4gICAgcmV0dXJuIFsnZW1vamktc2V0LScgKyB0aGlzLl9zZXQsICdlbW9qaS10eXBlLScgKyB0aGlzLl9lbW9qaVR5cGUoKV1cbiAgfVxuXG4gIF9jc3NTdHlsZShlbW9qaVNpemUpIHtcbiAgICBsZXQgY3NzU3R5bGUgPSB7fVxuICAgIGlmICh0aGlzLl9pc0N1c3RvbSgpKSB7XG4gICAgICBjc3NTdHlsZSA9IHtcbiAgICAgICAgYmFja2dyb3VuZEltYWdlOiAndXJsKCcgKyB0aGlzLmdldEVtb2ppKCkuX2RhdGEuaW1hZ2VVcmwgKyAnKScsXG4gICAgICAgIGJhY2tncm91bmRTaXplOiAnMTAwJScsXG4gICAgICAgIHdpZHRoOiBlbW9qaVNpemUgKyAncHgnLFxuICAgICAgICBoZWlnaHQ6IGVtb2ppU2l6ZSArICdweCcsXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLl9oYXNFbW9qaSgpICYmICF0aGlzLl9pc05hdGl2ZSgpKSB7XG4gICAgICBjc3NTdHlsZSA9IHtcbiAgICAgICAgYmFja2dyb3VuZFBvc2l0aW9uOiB0aGlzLmdldEVtb2ppKCkuZ2V0UG9zaXRpb24oKSxcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVtb2ppU2l6ZSkge1xuICAgICAgaWYgKHRoaXMuX2lzTmF0aXZlKCkpIHtcbiAgICAgICAgLy8gU2V0IGZvbnQtc2l6ZSBmb3IgbmF0aXZlIGVtb2ppLlxuICAgICAgICBjc3NTdHlsZSA9IE9iamVjdC5hc3NpZ24oY3NzU3R5bGUsIHtcbiAgICAgICAgICAvLyBmb250LXNpemUgaXMgdXNlZCBmb3IgbmF0aXZlIGVtb2ppIHdoaWNoIHdlIG5lZWRcbiAgICAgICAgICAvLyB0byBzY2FsZSB3aXRoIDAuOTUgZmFjdG9yIHRvIGhhdmUgdGhlbSBsb29rIGFwcHJveGltYXRlbHlcbiAgICAgICAgICAvLyB0aGUgc2FtZSBzaXplIGFzIGltYWdlLWJhc2VkIGVtb2ppLlxuICAgICAgICAgIGZvbnRTaXplOiBNYXRoLnJvdW5kKGVtb2ppU2l6ZSAqIDAuOTUgKiAxMCkgLyAxMCArICdweCcsXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBTZXQgd2lkdGgvaGVpZ2h0IGZvciBpbWFnZSBlbW9qaS5cbiAgICAgICAgY3NzU3R5bGUgPSBPYmplY3QuYXNzaWduKGNzc1N0eWxlLCB7XG4gICAgICAgICAgd2lkdGg6IGVtb2ppU2l6ZSArICdweCcsXG4gICAgICAgICAgaGVpZ2h0OiBlbW9qaVNpemUgKyAncHgnLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY3NzU3R5bGVcbiAgfVxuXG4gIF9jb250ZW50KCkge1xuICAgIGlmICh0aGlzLl9pc0N1c3RvbSgpKSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG4gICAgaWYgKHRoaXMuX2lzTmF0aXZlKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEVtb2ppKCkubmF0aXZlXG4gICAgfVxuICAgIGlmICh0aGlzLl9oYXNFbW9qaSgpKSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2ZhbGxiYWNrID8gdGhpcy5fZmFsbGJhY2sodGhpcy5nZXRFbW9qaSgpKSA6IG51bGxcbiAgfVxuXG4gIF9pc05hdGl2ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbmF0aXZlXG4gIH1cblxuICBfaXNDdXN0b20oKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RW1vamkoKS5jdXN0b21cbiAgfVxuXG4gIF9oYXNFbW9qaSgpIHtcbiAgICBpZiAoIXRoaXMuZ2V0RW1vamkoKS5fZGF0YSkge1xuICAgICAgLy8gUmV0dXJuIGZhbHNlIGlmIHdlIGhhdmUgbm8gZGF0YS5cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICBjb25zdCBoYXNJbWFnZSA9IHRoaXMuZ2V0RW1vamkoKS5fZGF0YVsnaGFzX2ltZ18nICsgdGhpcy5fc2V0XVxuICAgIGlmIChoYXNJbWFnZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBJZiB0aGVyZSBpcyBubyBoYXNfaW1nX3h4eCBpbiB0aGUgZGF0YSwgd2UgYXJlIHdvcmtpbmcgd2l0aFxuICAgICAgLy8gc3BlY2lmaWMgZGF0YSBmaWxlLCBsaWtlIGZhY2Vib29rLmpzb24sIHNvIHdlIGFzc3VtZSBhbGxcbiAgICAgIC8vIGVtb2ppcyBhcmUgYXZhaWxhYmxlICh0aGUgOnNldCBzZXR0aW5nIGZvciBwaWNrZXIgc2hvdWxkXG4gICAgICAvLyBtYXRjaCB0aGUgZGF0YSBmaWxlKS5cbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIC8vIE90aGVyd2lzZSwgd2UgYXJlIHVzaW5nIGFsbC5qc29uIGFuZCBjYW4gc3dpdGNoIGJldHdlZW4gZGlmZmVyZW50XG4gICAgLy8gc2V0cyAtIGluIHRoaXMgY2FzZSB0aGUgYGhhc19pbWdfe3NldF9uYW1lfWAgaXMgYSBib29sZWFuIHRoYXRcbiAgICAvLyBpbmRpY2F0ZXMgaWYgdGhlcmUgaXMgc3VjaCBpbWFnZSBvciBub3QgZm9yIGEgZ2l2ZW4gc2V0LlxuICAgIHJldHVybiBoYXNJbWFnZVxuICB9XG5cbiAgX2Vtb2ppVHlwZSgpIHtcbiAgICBpZiAodGhpcy5faXNDdXN0b20oKSkge1xuICAgICAgcmV0dXJuICdjdXN0b20nXG4gICAgfVxuICAgIGlmICh0aGlzLl9pc05hdGl2ZSgpKSB7XG4gICAgICByZXR1cm4gJ25hdGl2ZSdcbiAgICB9XG4gICAgaWYgKHRoaXMuX2hhc0Vtb2ppKCkpIHtcbiAgICAgIHJldHVybiAnaW1hZ2UnXG4gICAgfVxuICAgIHJldHVybiAnZmFsbGJhY2snXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhbml0aXplKGVtb2ppKSB7XG4gIHZhciB7XG4gICAgICBuYW1lLFxuICAgICAgc2hvcnRfbmFtZXMsXG4gICAgICBza2luX3RvbmUsXG4gICAgICBza2luX3ZhcmlhdGlvbnMsXG4gICAgICBlbW90aWNvbnMsXG4gICAgICB1bmlmaWVkLFxuICAgICAgY3VzdG9tLFxuICAgICAgaW1hZ2VVcmwsXG4gICAgfSA9IGVtb2ppLFxuICAgIGlkID0gZW1vamkuaWQgfHwgc2hvcnRfbmFtZXNbMF0sXG4gICAgY29sb25zID0gYDoke2lkfTpgXG5cbiAgaWYgKGN1c3RvbSkge1xuICAgIHJldHVybiB7XG4gICAgICBpZCxcbiAgICAgIG5hbWUsXG4gICAgICBjb2xvbnMsXG4gICAgICBlbW90aWNvbnMsXG4gICAgICBjdXN0b20sXG4gICAgICBpbWFnZVVybCxcbiAgICB9XG4gIH1cblxuICBpZiAoc2tpbl90b25lKSB7XG4gICAgY29sb25zICs9IGA6c2tpbi10b25lLSR7c2tpbl90b25lfTpgXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGlkLFxuICAgIG5hbWUsXG4gICAgY29sb25zLFxuICAgIGVtb3RpY29ucyxcbiAgICB1bmlmaWVkOiB1bmlmaWVkLnRvTG93ZXJDYXNlKCksXG4gICAgc2tpbjogc2tpbl90b25lIHx8IChza2luX3ZhcmlhdGlvbnMgPyAxIDogbnVsbCksXG4gICAgbmF0aXZlOiB1bmlmaWVkVG9OYXRpdmUodW5pZmllZCksXG4gIH1cbn1cbiIsImltcG9ydCBzdG9yZSBmcm9tICcuL3N0b3JlJ1xuXG5jb25zdCBERUZBVUxUUyA9IFtcbiAgJysxJyxcbiAgJ2dyaW5uaW5nJyxcbiAgJ2tpc3NpbmdfaGVhcnQnLFxuICAnaGVhcnRfZXllcycsXG4gICdsYXVnaGluZycsXG4gICdzdHVja19vdXRfdG9uZ3VlX3dpbmtpbmdfZXllJyxcbiAgJ3N3ZWF0X3NtaWxlJyxcbiAgJ2pveScsXG4gICdzY3JlYW0nLFxuICAnZGlzYXBwb2ludGVkJyxcbiAgJ3VuYW11c2VkJyxcbiAgJ3dlYXJ5JyxcbiAgJ3NvYicsXG4gICdzdW5nbGFzc2VzJyxcbiAgJ2hlYXJ0JyxcbiAgJ2hhbmtleScsXG5dXG5cbmxldCBmcmVxdWVudGx5LCBpbml0aWFsaXplZFxubGV0IGRlZmF1bHRzID0ge31cblxuZnVuY3Rpb24gaW5pdCgpIHtcbiAgaW5pdGlhbGl6ZWQgPSB0cnVlXG4gIGZyZXF1ZW50bHkgPSBzdG9yZS5nZXQoJ2ZyZXF1ZW50bHknKVxufVxuXG5mdW5jdGlvbiBhZGQoZW1vamkpIHtcbiAgaWYgKCFpbml0aWFsaXplZCkgaW5pdCgpXG4gIHZhciB7IGlkIH0gPSBlbW9qaVxuXG4gIGZyZXF1ZW50bHkgfHwgKGZyZXF1ZW50bHkgPSBkZWZhdWx0cylcbiAgZnJlcXVlbnRseVtpZF0gfHwgKGZyZXF1ZW50bHlbaWRdID0gMClcbiAgZnJlcXVlbnRseVtpZF0gKz0gMVxuXG4gIHN0b3JlLnNldCgnbGFzdCcsIGlkKVxuICBzdG9yZS5zZXQoJ2ZyZXF1ZW50bHknLCBmcmVxdWVudGx5KVxufVxuXG5mdW5jdGlvbiBnZXQobWF4TnVtYmVyKSB7XG4gIGlmICghaW5pdGlhbGl6ZWQpIGluaXQoKVxuICBpZiAoIWZyZXF1ZW50bHkpIHtcbiAgICBkZWZhdWx0cyA9IHt9XG5cbiAgICBjb25zdCByZXN1bHQgPSBbXVxuXG4gICAgbGV0IGRlZmF1bHRMZW5ndGggPSBNYXRoLm1pbihtYXhOdW1iZXIsIERFRkFVTFRTLmxlbmd0aClcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRlZmF1bHRMZW5ndGg7IGkrKykge1xuICAgICAgZGVmYXVsdHNbREVGQVVMVFNbaV1dID0gcGFyc2VJbnQoKGRlZmF1bHRMZW5ndGggLSBpKSAvIDQsIDEwKSArIDFcbiAgICAgIHJlc3VsdC5wdXNoKERFRkFVTFRTW2ldKVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIGNvbnN0IHF1YW50aXR5ID0gbWF4TnVtYmVyXG4gIGNvbnN0IGZyZXF1ZW50bHlLZXlzID0gW11cblxuICBmb3IgKGxldCBrZXkgaW4gZnJlcXVlbnRseSkge1xuICAgIGlmIChmcmVxdWVudGx5Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIGZyZXF1ZW50bHlLZXlzLnB1c2goa2V5KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHNvcnRlZCA9IGZyZXF1ZW50bHlLZXlzXG4gICAgLnNvcnQoKGEsIGIpID0+IGZyZXF1ZW50bHlbYV0gLSBmcmVxdWVudGx5W2JdKVxuICAgIC5yZXZlcnNlKClcbiAgY29uc3Qgc2xpY2VkID0gc29ydGVkLnNsaWNlKDAsIHF1YW50aXR5KVxuXG4gIGNvbnN0IGxhc3QgPSBzdG9yZS5nZXQoJ2xhc3QnKVxuXG4gIGlmIChsYXN0ICYmIHNsaWNlZC5pbmRleE9mKGxhc3QpID09IC0xKSB7XG4gICAgc2xpY2VkLnBvcCgpXG4gICAgc2xpY2VkLnB1c2gobGFzdClcbiAgfVxuXG4gIHJldHVybiBzbGljZWRcbn1cblxuZXhwb3J0IGRlZmF1bHQgeyBhZGQsIGdldCB9XG4iLCJpbXBvcnQgc3RyaW5nRnJvbUNvZGVQb2ludCBmcm9tICcuLi9wb2x5ZmlsbHMvc3RyaW5nRnJvbUNvZGVQb2ludCdcblxuZnVuY3Rpb24gdW5pZmllZFRvTmF0aXZlKHVuaWZpZWQpIHtcbiAgdmFyIHVuaWNvZGVzID0gdW5pZmllZC5zcGxpdCgnLScpLFxuICAgIGNvZGVQb2ludHMgPSB1bmljb2Rlcy5tYXAoKHUpID0+IGAweCR7dX1gKVxuXG4gIHJldHVybiBzdHJpbmdGcm9tQ29kZVBvaW50LmFwcGx5KG51bGwsIGNvZGVQb2ludHMpXG59XG5cbmZ1bmN0aW9uIHVuaXEoYXJyKSB7XG4gIHJldHVybiBhcnIucmVkdWNlKChhY2MsIGl0ZW0pID0+IHtcbiAgICBpZiAoYWNjLmluZGV4T2YoaXRlbSkgPT09IC0xKSB7XG4gICAgICBhY2MucHVzaChpdGVtKVxuICAgIH1cbiAgICByZXR1cm4gYWNjXG4gIH0sIFtdKVxufVxuXG5mdW5jdGlvbiBpbnRlcnNlY3QoYSwgYikge1xuICBjb25zdCB1bmlxQSA9IHVuaXEoYSlcbiAgY29uc3QgdW5pcUIgPSB1bmlxKGIpXG5cbiAgcmV0dXJuIHVuaXFBLmZpbHRlcigoaXRlbSkgPT4gdW5pcUIuaW5kZXhPZihpdGVtKSA+PSAwKVxufVxuXG5mdW5jdGlvbiBkZWVwTWVyZ2UoYSwgYikge1xuICB2YXIgbyA9IHt9XG5cbiAgZm9yIChsZXQga2V5IGluIGEpIHtcbiAgICBsZXQgb3JpZ2luYWxWYWx1ZSA9IGFba2V5XSxcbiAgICAgIHZhbHVlID0gb3JpZ2luYWxWYWx1ZVxuXG4gICAgaWYgKGIuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgdmFsdWUgPSBiW2tleV1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgdmFsdWUgPSBkZWVwTWVyZ2Uob3JpZ2luYWxWYWx1ZSwgdmFsdWUpXG4gICAgfVxuXG4gICAgb1trZXldID0gdmFsdWVcbiAgfVxuXG4gIHJldHVybiBvXG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zb25pY2RvZS9tZWFzdXJlLXNjcm9sbGJhclxuZnVuY3Rpb24gbWVhc3VyZVNjcm9sbGJhcigpIHtcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PSAndW5kZWZpbmVkJykgcmV0dXJuIDBcbiAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcblxuICBkaXYuc3R5bGUud2lkdGggPSAnMTAwcHgnXG4gIGRpdi5zdHlsZS5oZWlnaHQgPSAnMTAwcHgnXG4gIGRpdi5zdHlsZS5vdmVyZmxvdyA9ICdzY3JvbGwnXG4gIGRpdi5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSdcbiAgZGl2LnN0eWxlLnRvcCA9ICctOTk5OXB4J1xuXG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KVxuICBjb25zdCBzY3JvbGxiYXJXaWR0aCA9IGRpdi5vZmZzZXRXaWR0aCAtIGRpdi5jbGllbnRXaWR0aFxuICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdilcblxuICByZXR1cm4gc2Nyb2xsYmFyV2lkdGhcbn1cblxuZXhwb3J0IHsgdW5pcSwgaW50ZXJzZWN0LCBkZWVwTWVyZ2UsIHVuaWZpZWRUb05hdGl2ZSwgbWVhc3VyZVNjcm9sbGJhciB9XG4iLCJleHBvcnQgY2xhc3MgUGlja2VyVmlldyB7XG4gIGNvbnN0cnVjdG9yKHBpY2tlckNvbXBvbmVudCkge1xuICAgIHRoaXMuX3ZtID0gcGlja2VyQ29tcG9uZW50XG4gICAgdGhpcy5fZGF0YSA9IHBpY2tlckNvbXBvbmVudC5kYXRhXG4gICAgdGhpcy5fcGVyTGluZSA9IHBpY2tlckNvbXBvbmVudC5wZXJMaW5lXG5cbiAgICB0aGlzLl9jYXRlZ29yaWVzID0gW11cbiAgICB0aGlzLl9jYXRlZ29yaWVzLnB1c2goLi4udGhpcy5fZGF0YS5jYXRlZ29yaWVzKCkpXG4gICAgdGhpcy5fY2F0ZWdvcmllcyA9IHRoaXMuX2NhdGVnb3JpZXMuZmlsdGVyKChjYXRlZ29yeSkgPT4ge1xuICAgICAgcmV0dXJuIGNhdGVnb3J5LmVtb2ppcy5sZW5ndGggPiAwXG4gICAgfSlcblxuICAgIHRoaXMuX2NhdGVnb3JpZXNbMF0uZmlyc3QgPSB0cnVlXG4gICAgT2JqZWN0LmZyZWV6ZSh0aGlzLl9jYXRlZ29yaWVzKVxuXG4gICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IHRoaXMuX2NhdGVnb3JpZXNbMF1cbiAgICB0aGlzLnNlYXJjaEVtb2ppcyA9IG51bGxcblxuICAgIC8vIFByZXZpZXcgZW1vamksIHNob3duIG9uIG1vdXNlIG92ZXIgb3Igd2hlbiB3ZSBtb3ZlXG4gICAgLy8gd2l0aCBhcnJvdyBrZXlzLlxuICAgIHRoaXMucHJldmlld0Vtb2ppID0gbnVsbFxuICAgIC8vIEluZGV4ZXMgYXJlIHVzZWQgdG8ga2VlcCB0aGUgcG9zaXRpb24gd2hlbiBtb3ZpbmdcbiAgICAvLyB3aXRoIGFycm93czogY3VycmVudCBjYXRlZ29yeSBhbmQgY3VycmVudCBlbW9qaVxuICAgIC8vIGluc2lkZSB0aGUgY2F0ZWdvcnkuXG4gICAgdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCA9IDBcbiAgICB0aGlzLnByZXZpZXdFbW9qaUlkeCA9IC0xXG4gIH1cblxuICBvblNjcm9sbCgpIHtcbiAgICBjb25zdCBzY3JvbGxFbGVtZW50ID0gdGhpcy5fdm0uJHJlZnMuc2Nyb2xsXG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3BcblxuICAgIGxldCBhY3RpdmVDYXRlZ29yeSA9IHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzWzBdXG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGxldCBjYXRlZ29yeSA9IHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzW2ldXG4gICAgICBsZXQgY29tcG9uZW50ID0gdGhpcy5fdm0uZ2V0Q2F0ZWdvcnlDb21wb25lbnQoaSlcbiAgICAgIC8vIFRoZSBgLTUwYCBvZmZzZXQgc3dpdGNoZXMgYWN0aXZlIGNhdGVnb3J5IChzZWxlY3RlZCBpbiB0aGVcbiAgICAgIC8vIGFuY2hvcnMgYmFyKSBhIGJpdCBlYXJpbGVyLCBiZWZvcmUgaXQgYWN0dWFsbHkgcmVhY2hlcyB0aGUgdG9wLlxuICAgICAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQuJGVsLm9mZnNldFRvcCAtIDUwID4gc2Nyb2xsVG9wKSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBhY3RpdmVDYXRlZ29yeSA9IGNhdGVnb3J5XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlQ2F0ZWdvcnkgPSBhY3RpdmVDYXRlZ29yeVxuICB9XG5cbiAgZ2V0IGFsbENhdGVnb3JpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NhdGVnb3JpZXNcbiAgfVxuXG4gIGdldCBmaWx0ZXJlZENhdGVnb3JpZXMoKSB7XG4gICAgaWYgKHRoaXMuc2VhcmNoRW1vamlzKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdzZWFyY2gnLFxuICAgICAgICAgIG5hbWU6ICdTZWFyY2gnLFxuICAgICAgICAgIGVtb2ppczogdGhpcy5zZWFyY2hFbW9qaXMsXG4gICAgICAgIH0sXG4gICAgICBdXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jYXRlZ29yaWVzLmZpbHRlcigoY2F0ZWdvcnkpID0+IHtcbiAgICAgIGxldCBoYXNFbW9qaXMgPSBjYXRlZ29yeS5lbW9qaXMubGVuZ3RoID4gMFxuICAgICAgcmV0dXJuIGhhc0Vtb2ppc1xuICAgIH0pXG4gIH1cblxuICBnZXQgcHJldmlld0Vtb2ppQ2F0ZWdvcnkoKSB7XG4gICAgaWYgKHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggPj0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzW3RoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHhdXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBvbkFuY2hvckNsaWNrKGNhdGVnb3J5KSB7XG4gICAgaWYgKHRoaXMuc2VhcmNoRW1vamlzKSB7XG4gICAgICAvLyBObyBjYXRlZ29yaWVzIGFyZSBzaG93biB3aGVuIHNlYXJjaCBpcyBhY3RpdmUuXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgbGV0IGkgPSB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllcy5pbmRleE9mKGNhdGVnb3J5KVxuICAgIGxldCBjb21wb25lbnQgPSB0aGlzLl92bS5nZXRDYXRlZ29yeUNvbXBvbmVudChpKVxuICAgIGxldCBzY3JvbGxUb0NvbXBvbmVudCA9ICgpID0+IHtcbiAgICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgbGV0IHRvcCA9IGNvbXBvbmVudC4kZWwub2Zmc2V0VG9wXG4gICAgICAgIGlmIChjYXRlZ29yeS5maXJzdCkge1xuICAgICAgICAgIHRvcCA9IDBcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl92bS4kcmVmcy5zY3JvbGwuc2Nyb2xsVG9wID0gdG9wXG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLl92bS5pbmZpbml0ZVNjcm9sbCkge1xuICAgICAgc2Nyb2xsVG9Db21wb25lbnQoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gdGhpcy5maWx0ZXJlZENhdGVnb3JpZXNbaV1cbiAgICB9XG4gIH1cblxuICBvblNlYXJjaCh2YWx1ZSkge1xuICAgIGxldCBlbW9qaXMgPSB0aGlzLl9kYXRhLnNlYXJjaCh2YWx1ZSwgdGhpcy5tYXhTZWFyY2hSZXN1bHRzKVxuICAgIHRoaXMuc2VhcmNoRW1vamlzID0gZW1vamlzXG5cbiAgICB0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4ID0gMFxuICAgIHRoaXMucHJldmlld0Vtb2ppSWR4ID0gMFxuICAgIHRoaXMudXBkYXRlUHJldmlld0Vtb2ppKClcbiAgfVxuXG4gIG9uRW1vamlFbnRlcihlbW9qaSkge1xuICAgIHRoaXMucHJldmlld0Vtb2ppID0gZW1vamlcbiAgICB0aGlzLnByZXZpZXdFbW9qaUlkeCA9IC0xXG4gICAgdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCA9IC0xXG4gIH1cblxuICBvbkVtb2ppTGVhdmUoZW1vamkpIHtcbiAgICB0aGlzLnByZXZpZXdFbW9qaSA9IG51bGxcbiAgfVxuXG4gIG9uQXJyb3dMZWZ0KCkge1xuICAgIC8vIE1vdmluZyBsZWZ0LCBkZWNyZWFzZSBlbW9qaSBpbmRleC5cbiAgICBpZiAodGhpcy5wcmV2aWV3RW1vamlJZHggPiAwKSB7XG4gICAgICB0aGlzLnByZXZpZXdFbW9qaUlkeCAtPSAxXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIGVtb2ppIGluZGV4IGlzIHplcm8sIGdvIHRvIHRoZSBwcmV2aW91cyBjYXRlZ29yeS5cbiAgICAgIHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggLT0gMVxuICAgICAgaWYgKHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggPCAwKSB7XG4gICAgICAgIC8vIElmIHdlIHJlYWNoZWQgZmlyc3QgY2F0ZWdvcnksIGtlZXAgaXQuXG4gICAgICAgIHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggPSAwXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBVcGRhdGUgZW1vamkgaW5kZXggLSB3ZSBtb3ZlZCB0byB0aGUgcHJldmlvdXMgY2F0ZWdvcnksXG4gICAgICAgIC8vIGdldCB0aGUgbGFzdCBlbW9qaSBpbiBpdC5cbiAgICAgICAgdGhpcy5wcmV2aWV3RW1vamlJZHggPVxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzW3RoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHhdLmVtb2ppcy5sZW5ndGggLVxuICAgICAgICAgIDFcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy51cGRhdGVQcmV2aWV3RW1vamkoKVxuICB9XG5cbiAgb25BcnJvd1JpZ2h0KCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMucHJldmlld0Vtb2ppSWR4IDxcbiAgICAgIHRoaXMuZW1vamlzTGVuZ3RoKHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHgpIC0gMVxuICAgICkge1xuICAgICAgLy8gTW92aW5nIHJpZ2h0IHdpdGhpbiBjYXRlZ29yeSwgaW5jcmVhc2UgZW1vamkgaW5kZXguXG4gICAgICB0aGlzLnByZXZpZXdFbW9qaUlkeCArPSAxXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEdvIHRvIHRoZSBuZXh0IGNhdGVnb3J5LlxuICAgICAgdGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCArPSAxXG4gICAgICBpZiAodGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCA+PSB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllcy5sZW5ndGgpIHtcbiAgICAgICAgLy8gSWYgd2UgcmVhY2hlZCB0aGUgbGFzdCBjYXRlZ29yeSAtIGtlZXAgaXQuXG4gICAgICAgIHRoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHggPSB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllcy5sZW5ndGggLSAxXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiB3ZSBtb3ZlZCB0byB0aGUgbmV4dCBjYXRlZ29yeSwgdXBkYXRlIGVtb2ppIGluZGV4IHRvIHRoZVxuICAgICAgICAvLyBmaXJzdCBlbW9qaSBpbiB0aGUgbmV3IGNhdGVnb3J5LlxuICAgICAgICB0aGlzLnByZXZpZXdFbW9qaUlkeCA9IDBcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy51cGRhdGVQcmV2aWV3RW1vamkoKVxuICB9XG5cbiAgb25BcnJvd0Rvd24oKSB7XG4gICAgLy8gSWYgd2UgYXJlIG91dCBvZiB0aGUgZW1vamkgY29udHJvbCAoaW5kZXggaXMgLTEpLCBzZWxlY3QgdGhlIGZpcnN0XG4gICAgLy8gZW1vamkgaW4gdGhlIGZpcnN0IGNhdGVnb3J5IGJ5IGNhbGxpbmcgYG9uQXJyb3dSaWdodGAuXG4gICAgaWYgKHRoaXMucHJldmlld0Vtb2ppSWR4ID09IC0xKSB7XG4gICAgICByZXR1cm4gdGhpcy5vbkFycm93UmlnaHQoKVxuICAgIH1cblxuICAgIGNvbnN0IGNhdGVnb3J5TGVuZ3RoID1cbiAgICAgIHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzW3RoaXMucHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHhdLmVtb2ppcy5sZW5ndGhcblxuICAgIC8vIFdoZW4gbW92aW5nIGRvd24sIHdlIGNhbiBtb3ZlIGBfcGVyTGluZWAgaWNvbnMgcmlnaHQgdG9cbiAgICAvLyBqdW1wIHRvIHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZSBuZXh0IHJvdy5cbiAgICBsZXQgZGlmZiA9IHRoaXMuX3BlckxpbmVcblxuICAgIC8vIFRPRE86IHByZXZpZXdDYXRlZ29yeSBzaG91bGQgbWF0Y2ggYWN0aXZlQ2F0ZWdvcnlcbiAgICAvLyAoc28gaXQgd291bGQgYmUgYm90aCBoaWdobGlnaHRlZCBpbiBVSSBhbmQgdXNlZFxuICAgIC8vIHdoZW4gd2Ugc3RhcnQgbW92aW5nIHdpdGggYXJyb3dzIGFmdGVyIGNsaWNraW5nXG4gICAgLy8gdGhlIGNhdGVnb3J5KS5cblxuICAgIC8vIE5vdGU6IHByb2JhYmx5IHdlIGNhbiBhbHdhc3kgdGFrZSBjdXJyZW50IHJvdyBsZW5ndGhcbiAgICAvLyBhcyBhIGBkaWZmYCAtIGl0IHdpbGwgZml0IGJvdGggY2FzZSBvZiBhbnkgcm93IGFuZFxuICAgIC8vIHNwZWNpYWwgY2FzZSBvZiB0aGUgbGFzdCByb3cuXG4gICAgLy8gTm90ZTogaXQgY2FuIGJlIGFsc28gZWFzaWVyIHRvIHVwZGF0ZSBpbmRleGVzXG4gICAgLy8gZGlyZWN0bHkgaGVyZSBpbnN0ZWFkIG9mIGNhbGxpbmcgb25BcnJvd1JpZ2h0LlxuICAgIC8vIFNhbWUgaXMgdHJ1ZSBmb3IgYG9uQXJyb3dVcGAuXG5cbiAgICAvLyBVbmxlc3MgaWYgd2UgYXJlIG9uIHRoZSBsYXN0IHJvdyBvZiB0aGUgY2F0ZWdvcnkgYW5kXG4gICAgLy8gdGhlcmUgYXJlIGxlc3MgdGhlbiBgX3BlckxpbmVgIGVtb2ppcyBpbiBpdC5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgdXNlIHRoZSBsYXN0IHJvdyBsZW5ndGggYXMgZGlmZlxuICAgIC8vIHNvIHdlIGdvIHN0cmFpZ2h0IGRvd24sIGZvciBleGFtcGxlOlxuICAgIC8vXG4gICAgLy8gICAxIDIgMyA0IDUgNlxuICAgIC8vICAgNyA4IDlcbiAgICAvLyAgIEEgQiBDIEQgRSBGXG4gICAgLy9cbiAgICAvLyBJZiB3ZSBnbyBkb3duIGZyb20gYDhgLCB3ZSBuZWVkIHRvIG1vdmUgMyBlbW9qaXMgcmlnaHRcbiAgICAvLyB0byBsZW5kIGF0IGBCYCAoYW5kIDMgaXMgdGhlIGxlbmd0aCBvZiB0aGUgbGFzdCByb3cgb2ZcbiAgICAvLyB0aGlzIGNhdGVnb3J5KS5cbiAgICAvLyBBbmQgaWYgd2UgdXNlZCA2IGluc3RlYWQgKHJvdyBsZW5ndGgsIGBfcGVyTGluZWApLCB3ZSB3b3VsZFxuICAgIC8vIGxlbmQgdXAgYXQgYEVgLlxuICAgIGlmICh0aGlzLnByZXZpZXdFbW9qaUlkeCArIGRpZmYgPiBjYXRlZ29yeUxlbmd0aCkge1xuICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBsYXN0IHJvdyBsZW5ndGguXG4gICAgICBkaWZmID0gY2F0ZWdvcnlMZW5ndGggJSB0aGlzLl9wZXJMaW5lXG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGlmZjsgaSsrKSB7XG4gICAgICB0aGlzLm9uQXJyb3dSaWdodCgpXG4gICAgfVxuICAgIHRoaXMudXBkYXRlUHJldmlld0Vtb2ppKClcbiAgfVxuXG4gIG9uQXJyb3dVcCgpIHtcbiAgICAvLyBTaW1pbGFyIHRvIGBvbkFycm93RG93bmAsIHRvIG1vdmUgdXAgd2UgY2FuIG1vdmUgbGVmdFxuICAgIC8vIGJ5IGBfcGVyTGluZWAgbnVtYmVyIG9mIGVtb2ppcy5cbiAgICBsZXQgZGlmZiA9IHRoaXMuX3BlckxpbmVcblxuICAgIGlmICh0aGlzLnByZXZpZXdFbW9qaUlkeCAtIGRpZmYgPCAwKSB7XG4gICAgICBpZiAodGhpcy5wcmV2aWV3RW1vamlDYXRlZ29yeUlkeCA+IDApIHtcbiAgICAgICAgLy8gVW5sZXNzIGlmIHdlIGFyZSBvbiB0aGUgZmlyc3QgbGluZSBvZiB0aGUgY2F0ZWdvcnkgYW5kXG4gICAgICAgIC8vIHRoZSBsYXN0IGxpbmUgaW4gdGhlIHByZXZpb3VzIGNhdGVnb3J5IGlzIHNob3J0ZXIgdGhhblxuICAgICAgICAvLyBgX3BlckxpbmVgLlxuICAgICAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgdXNlIHRoZSBsYXN0IHJvdyBsZW5ndGggYXMgZGlmZiwgc29cbiAgICAgICAgLy8gd2UgZ28gc3RyYWlnaHQgdXAsIGZvciBleGFtcGxlOlxuICAgICAgICAvL1xuICAgICAgICAvLyAgIDEgMiAzIDQgNVxuICAgICAgICAvLyAgIDYgNyA4XG4gICAgICAgIC8vICAgOSBBIEIgQyBEXG4gICAgICAgIC8vXG4gICAgICAgIC8vIElmIHdlIGdvIHVwIGZyb20gYEFgLCB3ZSBuZWVkIHRvIG1vdmUgMyBlbW9qaXMgbGVmdCB0byBnZXRcbiAgICAgICAgLy8gdG8gYDdgIChhbmQgMyBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBsYXN0IHJvdyBvZiB0aGUgcHJldmlvdXNcbiAgICAgICAgLy8gY2F0ZWdvcnkpLlxuICAgICAgICBjb25zdCBwcmV2Q2F0ZWdvcnlMYXN0Um93TGVuZ3RoID1cbiAgICAgICAgICB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllc1t0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4IC0gMV0uZW1vamlzXG4gICAgICAgICAgICAubGVuZ3RoICUgdGhpcy5fcGVyTGluZVxuICAgICAgICAvLyBkaWZmID0gdGhpcy5wcmV2aWV3RW1vamlJZHggKyBwcmV2Q2F0ZWdvcnlMYXN0Um93TGVuZ3RoXG4gICAgICAgIGRpZmYgPSBwcmV2Q2F0ZWdvcnlMYXN0Um93TGVuZ3RoXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkaWZmID0gMFxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpZmY7IGkrKykge1xuICAgICAgdGhpcy5vbkFycm93TGVmdCgpXG4gICAgfVxuICAgIHRoaXMudXBkYXRlUHJldmlld0Vtb2ppKClcbiAgfVxuXG4gIHVwZGF0ZVByZXZpZXdFbW9qaSgpIHtcbiAgICB0aGlzLnByZXZpZXdFbW9qaSA9XG4gICAgICB0aGlzLmZpbHRlcmVkQ2F0ZWdvcmllc1t0aGlzLnByZXZpZXdFbW9qaUNhdGVnb3J5SWR4XS5lbW9qaXNbXG4gICAgICAgIHRoaXMucHJldmlld0Vtb2ppSWR4XG4gICAgICBdXG5cbiAgICB0aGlzLl92bS4kbmV4dFRpY2soKCkgPT4ge1xuICAgICAgLy8gU2Nyb2xsIHRoZSB2aWV3IGlmIHRoZSBgcHJldmlld0Vtb2ppYCBnb2VzIG91dCBvZiB0aGUgdmlzaWJsZSBhcmVhLlxuICAgICAgY29uc3Qgc2Nyb2xsRWwgPSB0aGlzLl92bS4kcmVmcy5zY3JvbGxcblxuICAgICAgLy8gTm90ZTogaXQgd291bGQgYmUgbW9yZSBWdWUtaXNoIHRvIG1hcmsgYWxsIGVtb2ppcyB3aXRoIGByZWZgc1xuICAgICAgLy8gYW5kIHRoZW4gZG8gc29tZXRoaW5nIHNpbWlsYXIgaGVyZSB0byB3aGF0IHdlIGRvIGluIHRoZVxuICAgICAgLy8gYGdldENhdGVnb3JpZXNgIGluc3RlYWQgb2YgdXNpbmcgYHF1ZXJ5U2VsZWN0b3JgIGRpcmVjdGx5LFxuICAgICAgLy8gYnV0IEkgYW0gbm90IHN1cmUgaWYgaGF2aW5nIG1hbnkgcmVmcyB3b3VsZCBhZmZlY3QgdGhlIHBlcmZvcm1hbmNlXG4gICAgICAvLyAoaXQgbWlnaHQsIHNvIEkgdXNlIGBxdWVyeVNlbGVjdG9yYCBmb3Igbm93KS5cbiAgICAgIGNvbnN0IGVtb2ppRWwgPSBzY3JvbGxFbC5xdWVyeVNlbGVjdG9yKCcuZW1vamktbWFydC1lbW9qaS1zZWxlY3RlZCcpXG5cbiAgICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9IHNjcm9sbEVsLm9mZnNldFRvcCAtIHNjcm9sbEVsLm9mZnNldEhlaWdodFxuICAgICAgaWYgKFxuICAgICAgICBlbW9qaUVsICYmXG4gICAgICAgIGVtb2ppRWwub2Zmc2V0VG9wICsgZW1vamlFbC5vZmZzZXRIZWlnaHQgPlxuICAgICAgICAgIHNjcm9sbEhlaWdodCArIHNjcm9sbEVsLnNjcm9sbFRvcFxuICAgICAgKSB7XG4gICAgICAgIHNjcm9sbEVsLnNjcm9sbFRvcCArPSBlbW9qaUVsLm9mZnNldEhlaWdodFxuICAgICAgfVxuICAgICAgaWYgKGVtb2ppRWwgJiYgZW1vamlFbC5vZmZzZXRUb3AgPCBzY3JvbGxFbC5zY3JvbGxUb3ApIHtcbiAgICAgICAgc2Nyb2xsRWwuc2Nyb2xsVG9wIC09IGVtb2ppRWwub2Zmc2V0SGVpZ2h0XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGVtb2ppc0xlbmd0aChjYXRlZ29yeUlkeCkge1xuICAgIGlmIChjYXRlZ29yeUlkeCA9PSAtMSkge1xuICAgICAgcmV0dXJuIDBcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRDYXRlZ29yaWVzW2NhdGVnb3J5SWR4XS5lbW9qaXMubGVuZ3RoXG4gIH1cbn1cbiIsImNvbnN0IEVtb2ppUHJvcHMgPSB7XG4gIG5hdGl2ZToge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHRvb2x0aXA6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBmYWxsYmFjazoge1xuICAgIHR5cGU6IEZ1bmN0aW9uLFxuICB9LFxuICBza2luOiB7XG4gICAgdHlwZTogTnVtYmVyLFxuICAgIGRlZmF1bHQ6IDEsXG4gIH0sXG4gIHNldDoge1xuICAgIHR5cGU6IFN0cmluZyxcbiAgICBkZWZhdWx0OiAnYXBwbGUnLFxuICB9LFxuICBlbW9qaToge1xuICAgIHR5cGU6IFtTdHJpbmcsIE9iamVjdF0sXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIHNpemU6IHtcbiAgICB0eXBlOiBOdW1iZXIsXG4gICAgZGVmYXVsdDogbnVsbCxcbiAgfSxcbiAgdGFnOiB7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIGRlZmF1bHQ6ICdzcGFuJyxcbiAgfSxcbn1cblxuY29uc3QgUGlja2VyUHJvcHMgPSB7XG4gIHBlckxpbmU6IHtcbiAgICB0eXBlOiBOdW1iZXIsXG4gICAgZGVmYXVsdDogOSxcbiAgfSxcbiAgbWF4U2VhcmNoUmVzdWx0czoge1xuICAgIHR5cGU6IE51bWJlcixcbiAgICBkZWZhdWx0OiA3NSxcbiAgfSxcbiAgZW1vamlTaXplOiB7XG4gICAgdHlwZTogTnVtYmVyLFxuICAgIGRlZmF1bHQ6IDI0LFxuICB9LFxuICB0aXRsZToge1xuICAgIHR5cGU6IFN0cmluZyxcbiAgICBkZWZhdWx0OiAnRW1vamkgTWFydOKEoicsXG4gIH0sXG4gIGVtb2ppOiB7XG4gICAgdHlwZTogU3RyaW5nLFxuICAgIGRlZmF1bHQ6ICdkZXBhcnRtZW50X3N0b3JlJyxcbiAgfSxcbiAgY29sb3I6IHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgZGVmYXVsdDogJyNhZTY1YzUnLFxuICB9LFxuICBzZXQ6IHtcbiAgICB0eXBlOiBTdHJpbmcsXG4gICAgZGVmYXVsdDogJ2FwcGxlJyxcbiAgfSxcbiAgc2tpbjoge1xuICAgIHR5cGU6IE51bWJlcixcbiAgICBkZWZhdWx0OiBudWxsLFxuICB9LFxuICBkZWZhdWx0U2tpbjoge1xuICAgIHR5cGU6IE51bWJlcixcbiAgICBkZWZhdWx0OiAxLFxuICB9LFxuICBuYXRpdmU6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBlbW9qaVRvb2x0aXA6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBhdXRvRm9jdXM6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBpMThuOiB7XG4gICAgdHlwZTogT2JqZWN0LFxuICAgIGRlZmF1bHQoKSB7XG4gICAgICByZXR1cm4ge31cbiAgICB9LFxuICB9LFxuICBzaG93UHJldmlldzoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgc2hvd1NlYXJjaDoge1xuICAgIHR5cGU6IEJvb2xlYW4sXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgc2hvd0NhdGVnb3JpZXM6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIHNob3dTa2luVG9uZXM6IHtcbiAgICB0eXBlOiBCb29sZWFuLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGluZmluaXRlU2Nyb2xsOiB7XG4gICAgdHlwZTogQm9vbGVhbixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBwaWNrZXJTdHlsZXM6IHtcbiAgICB0eXBlOiBPYmplY3QsXG4gICAgZGVmYXVsdCgpIHtcbiAgICAgIHJldHVybiB7fVxuICAgIH0sXG4gIH0sXG59XG5cbmV4cG9ydCB7IEVtb2ppUHJvcHMsIFBpY2tlclByb3BzIH1cbiIsInZhciBOQU1FU1BBQ0UgPSAnZW1vamktbWFydCdcblxuY29uc3QgX0pTT04gPSBKU09OXG5cbnZhciBpc0xvY2FsU3RvcmFnZVN1cHBvcnRlZCA9XG4gIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmICdsb2NhbFN0b3JhZ2UnIGluIHdpbmRvd1xuXG5sZXQgZ2V0dGVyXG5sZXQgc2V0dGVyXG5cbmZ1bmN0aW9uIHNldEhhbmRsZXJzKGhhbmRsZXJzKSB7XG4gIGhhbmRsZXJzIHx8IChoYW5kbGVycyA9IHt9KVxuXG4gIGdldHRlciA9IGhhbmRsZXJzLmdldHRlclxuICBzZXR0ZXIgPSBoYW5kbGVycy5zZXR0ZXJcbn1cblxuZnVuY3Rpb24gc2V0TmFtZXNwYWNlKG5hbWVzcGFjZSkge1xuICBOQU1FU1BBQ0UgPSBuYW1lc3BhY2Vcbn1cblxuZnVuY3Rpb24gdXBkYXRlKHN0YXRlKSB7XG4gIGZvciAobGV0IGtleSBpbiBzdGF0ZSkge1xuICAgIGxldCB2YWx1ZSA9IHN0YXRlW2tleV1cbiAgICBzZXQoa2V5LCB2YWx1ZSlcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXQoa2V5LCB2YWx1ZSkge1xuICBpZiAoc2V0dGVyKSB7XG4gICAgc2V0dGVyKGtleSwgdmFsdWUpXG4gIH0gZWxzZSB7XG4gICAgaWYgKCFpc0xvY2FsU3RvcmFnZVN1cHBvcnRlZCkgcmV0dXJuXG4gICAgdHJ5IHtcbiAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2VbYCR7TkFNRVNQQUNFfS4ke2tleX1gXSA9IF9KU09OLnN0cmluZ2lmeSh2YWx1ZSlcbiAgICB9IGNhdGNoIChlKSB7fVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldChrZXkpIHtcbiAgaWYgKGdldHRlcikge1xuICAgIHJldHVybiBnZXR0ZXIoa2V5KVxuICB9IGVsc2Uge1xuICAgIGlmICghaXNMb2NhbFN0b3JhZ2VTdXBwb3J0ZWQpIHJldHVyblxuICAgIHRyeSB7XG4gICAgICB2YXIgdmFsdWUgPSB3aW5kb3cubG9jYWxTdG9yYWdlW2Ake05BTUVTUEFDRX0uJHtrZXl9YF1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHZhbHVlKVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB7IHVwZGF0ZSwgc2V0LCBnZXQsIHNldE5hbWVzcGFjZSwgc2V0SGFuZGxlcnMgfVxuIiwiLy8gaHR0cDovL3BhdWxpcmlzaC5jb20vMjAxMS9yZXF1ZXN0YW5pbWF0aW9uZnJhbWUtZm9yLXNtYXJ0LWFuaW1hdGluZy9cbi8vIGh0dHA6Ly9teS5vcGVyYS5jb20vZW1vbGxlci9ibG9nLzIwMTEvMTIvMjAvcmVxdWVzdGFuaW1hdGlvbmZyYW1lLWZvci1zbWFydC1lci1hbmltYXRpbmdcblxuLy8gcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHBvbHlmaWxsIGJ5IEVyaWsgTcO2bGxlci4gZml4ZXMgZnJvbSBQYXVsIElyaXNoIGFuZCBUaW5vIFppamRlbFxuXG4vLyBNSVQgbGljZW5zZVxuXG52YXIgaXNXaW5kb3dBdmFpbGFibGUgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJ1xuXG5pc1dpbmRvd0F2YWlsYWJsZSAmJlxuICAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBsYXN0VGltZSA9IDBcbiAgICB2YXIgdmVuZG9ycyA9IFsnbXMnLCAnbW96JywgJ3dlYmtpdCcsICdvJ11cblxuICAgIGZvciAodmFyIHggPSAwOyB4IDwgdmVuZG9ycy5sZW5ndGggJiYgIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU7ICsreCkge1xuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA9XG4gICAgICAgIHdpbmRvd1t2ZW5kb3JzW3hdICsgJ1JlcXVlc3RBbmltYXRpb25GcmFtZSddXG4gICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUgPVxuICAgICAgICB3aW5kb3dbdmVuZG9yc1t4XSArICdDYW5jZWxBbmltYXRpb25GcmFtZSddIHx8XG4gICAgICAgIHdpbmRvd1t2ZW5kb3JzW3hdICsgJ0NhbmNlbFJlcXVlc3RBbmltYXRpb25GcmFtZSddXG4gICAgfVxuXG4gICAgaWYgKCF3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKVxuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSA9IGZ1bmN0aW9uIChjYWxsYmFjaywgZWxlbWVudCkge1xuICAgICAgICB2YXIgY3VyclRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKVxuICAgICAgICB2YXIgdGltZVRvQ2FsbCA9IE1hdGgubWF4KDAsIDE2IC0gKGN1cnJUaW1lIC0gbGFzdFRpbWUpKVxuICAgICAgICB2YXIgaWQgPSB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY2FsbGJhY2soY3VyclRpbWUgKyB0aW1lVG9DYWxsKVxuICAgICAgICB9LCB0aW1lVG9DYWxsKVxuXG4gICAgICAgIGxhc3RUaW1lID0gY3VyclRpbWUgKyB0aW1lVG9DYWxsXG4gICAgICAgIHJldHVybiBpZFxuICAgICAgfVxuXG4gICAgaWYgKCF3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUpXG4gICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUgPSBmdW5jdGlvbiAoaWQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KGlkKVxuICAgICAgfVxuICB9KSgpXG4iLCJ2YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIHRyeVRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RyeS10by1zdHJpbmcnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBBc3NlcnQ6IElzQ2FsbGFibGUoYXJndW1lbnQpIGlzIHRydWVgXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICBpZiAoaXNDYWxsYWJsZShhcmd1bWVudCkpIHJldHVybiBhcmd1bWVudDtcbiAgdGhyb3cgJFR5cGVFcnJvcih0cnlUb1N0cmluZyhhcmd1bWVudCkgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG59O1xuIiwidmFyIGlzQ29uc3RydWN0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY29uc3RydWN0b3InKTtcbnZhciB0cnlUb1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90cnktdG8tc3RyaW5nJyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG4vLyBgQXNzZXJ0OiBJc0NvbnN0cnVjdG9yKGFyZ3VtZW50KSBpcyB0cnVlYFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgaWYgKGlzQ29uc3RydWN0b3IoYXJndW1lbnQpKSByZXR1cm4gYXJndW1lbnQ7XG4gIHRocm93ICRUeXBlRXJyb3IodHJ5VG9TdHJpbmcoYXJndW1lbnQpICsgJyBpcyBub3QgYSBjb25zdHJ1Y3RvcicpO1xufTtcbiIsInZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG5cbnZhciAkU3RyaW5nID0gU3RyaW5nO1xudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIGlmICh0eXBlb2YgYXJndW1lbnQgPT0gJ29iamVjdCcgfHwgaXNDYWxsYWJsZShhcmd1bWVudCkpIHJldHVybiBhcmd1bWVudDtcbiAgdGhyb3cgJFR5cGVFcnJvcihcIkNhbid0IHNldCBcIiArICRTdHJpbmcoYXJndW1lbnQpICsgJyBhcyBhIHByb3RvdHlwZScpO1xufTtcbiIsInZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZScpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKS5mO1xuXG52YXIgVU5TQ09QQUJMRVMgPSB3ZWxsS25vd25TeW1ib2woJ3Vuc2NvcGFibGVzJyk7XG52YXIgQXJyYXlQcm90b3R5cGUgPSBBcnJheS5wcm90b3R5cGU7XG5cbi8vIEFycmF5LnByb3RvdHlwZVtAQHVuc2NvcGFibGVzXVxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUtQEB1bnNjb3BhYmxlc1xuaWYgKEFycmF5UHJvdG90eXBlW1VOU0NPUEFCTEVTXSA9PSB1bmRlZmluZWQpIHtcbiAgZGVmaW5lUHJvcGVydHkoQXJyYXlQcm90b3R5cGUsIFVOU0NPUEFCTEVTLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIHZhbHVlOiBjcmVhdGUobnVsbClcbiAgfSk7XG59XG5cbi8vIGFkZCBhIGtleSB0byBBcnJheS5wcm90b3R5cGVbQEB1bnNjb3BhYmxlc11cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICBBcnJheVByb3RvdHlwZVtVTlNDT1BBQkxFU11ba2V5XSA9IHRydWU7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNoYXJBdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctbXVsdGlieXRlJykuY2hhckF0O1xuXG4vLyBgQWR2YW5jZVN0cmluZ0luZGV4YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYWR2YW5jZXN0cmluZ2luZGV4XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChTLCBpbmRleCwgdW5pY29kZSkge1xuICByZXR1cm4gaW5kZXggKyAodW5pY29kZSA/IGNoYXJBdChTLCBpbmRleCkubGVuZ3RoIDogMSk7XG59O1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xuXG52YXIgJFN0cmluZyA9IFN0cmluZztcbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG4vLyBgQXNzZXJ0OiBUeXBlKGFyZ3VtZW50KSBpcyBPYmplY3RgXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICBpZiAoaXNPYmplY3QoYXJndW1lbnQpKSByZXR1cm4gYXJndW1lbnQ7XG4gIHRocm93ICRUeXBlRXJyb3IoJFN0cmluZyhhcmd1bWVudCkgKyAnIGlzIG5vdCBhbiBvYmplY3QnKTtcbn07XG4iLCIvLyBGRjI2LSBidWc6IEFycmF5QnVmZmVycyBhcmUgbm9uLWV4dGVuc2libGUsIGJ1dCBPYmplY3QuaXNFeHRlbnNpYmxlIGRvZXMgbm90IHJlcG9ydCBpdFxudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICBpZiAodHlwZW9mIEFycmF5QnVmZmVyID09ICdmdW5jdGlvbicpIHtcbiAgICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKDgpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1pc2V4dGVuc2libGUsIGVzLXgvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHNhZmVcbiAgICBpZiAoT2JqZWN0LmlzRXh0ZW5zaWJsZShidWZmZXIpKSBPYmplY3QuZGVmaW5lUHJvcGVydHkoYnVmZmVyLCAnYScsIHsgdmFsdWU6IDggfSk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICRmb3JFYWNoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWl0ZXJhdGlvbicpLmZvckVhY2g7XG52YXIgYXJyYXlNZXRob2RJc1N0cmljdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaXMtc3RyaWN0Jyk7XG5cbnZhciBTVFJJQ1RfTUVUSE9EID0gYXJyYXlNZXRob2RJc1N0cmljdCgnZm9yRWFjaCcpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmZvckVhY2hgIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZm9yZWFjaFxubW9kdWxlLmV4cG9ydHMgPSAhU1RSSUNUX01FVEhPRCA/IGZ1bmN0aW9uIGZvckVhY2goY2FsbGJhY2tmbiAvKiAsIHRoaXNBcmcgKi8pIHtcbiAgcmV0dXJuICRmb3JFYWNoKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLWFycmF5LXByb3RvdHlwZS1mb3JlYWNoIC0tIHNhZmVcbn0gOiBbXS5mb3JFYWNoO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgY2FsbFdpdGhTYWZlSXRlcmF0aW9uQ2xvc2luZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jYWxsLXdpdGgtc2FmZS1pdGVyYXRpb24tY2xvc2luZycpO1xudmFyIGlzQXJyYXlJdGVyYXRvck1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1hcnJheS1pdGVyYXRvci1tZXRob2QnKTtcbnZhciBpc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNvbnN0cnVjdG9yJyk7XG52YXIgbGVuZ3RoT2ZBcnJheUxpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbGVuZ3RoLW9mLWFycmF5LWxpa2UnKTtcbnZhciBjcmVhdGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHknKTtcbnZhciBnZXRJdGVyYXRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtaXRlcmF0b3InKTtcbnZhciBnZXRJdGVyYXRvck1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtaXRlcmF0b3ItbWV0aG9kJyk7XG5cbnZhciAkQXJyYXkgPSBBcnJheTtcblxuLy8gYEFycmF5LmZyb21gIG1ldGhvZCBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5mcm9tXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGZyb20oYXJyYXlMaWtlIC8qICwgbWFwZm4gPSB1bmRlZmluZWQsIHRoaXNBcmcgPSB1bmRlZmluZWQgKi8pIHtcbiAgdmFyIE8gPSB0b09iamVjdChhcnJheUxpa2UpO1xuICB2YXIgSVNfQ09OU1RSVUNUT1IgPSBpc0NvbnN0cnVjdG9yKHRoaXMpO1xuICB2YXIgYXJndW1lbnRzTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgdmFyIG1hcGZuID0gYXJndW1lbnRzTGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZDtcbiAgdmFyIG1hcHBpbmcgPSBtYXBmbiAhPT0gdW5kZWZpbmVkO1xuICBpZiAobWFwcGluZykgbWFwZm4gPSBiaW5kKG1hcGZuLCBhcmd1bWVudHNMZW5ndGggPiAyID8gYXJndW1lbnRzWzJdIDogdW5kZWZpbmVkKTtcbiAgdmFyIGl0ZXJhdG9yTWV0aG9kID0gZ2V0SXRlcmF0b3JNZXRob2QoTyk7XG4gIHZhciBpbmRleCA9IDA7XG4gIHZhciBsZW5ndGgsIHJlc3VsdCwgc3RlcCwgaXRlcmF0b3IsIG5leHQsIHZhbHVlO1xuICAvLyBpZiB0aGUgdGFyZ2V0IGlzIG5vdCBpdGVyYWJsZSBvciBpdCdzIGFuIGFycmF5IHdpdGggdGhlIGRlZmF1bHQgaXRlcmF0b3IgLSB1c2UgYSBzaW1wbGUgY2FzZVxuICBpZiAoaXRlcmF0b3JNZXRob2QgJiYgISh0aGlzID09PSAkQXJyYXkgJiYgaXNBcnJheUl0ZXJhdG9yTWV0aG9kKGl0ZXJhdG9yTWV0aG9kKSkpIHtcbiAgICBpdGVyYXRvciA9IGdldEl0ZXJhdG9yKE8sIGl0ZXJhdG9yTWV0aG9kKTtcbiAgICBuZXh0ID0gaXRlcmF0b3IubmV4dDtcbiAgICByZXN1bHQgPSBJU19DT05TVFJVQ1RPUiA/IG5ldyB0aGlzKCkgOiBbXTtcbiAgICBmb3IgKDshKHN0ZXAgPSBjYWxsKG5leHQsIGl0ZXJhdG9yKSkuZG9uZTsgaW5kZXgrKykge1xuICAgICAgdmFsdWUgPSBtYXBwaW5nID8gY2FsbFdpdGhTYWZlSXRlcmF0aW9uQ2xvc2luZyhpdGVyYXRvciwgbWFwZm4sIFtzdGVwLnZhbHVlLCBpbmRleF0sIHRydWUpIDogc3RlcC52YWx1ZTtcbiAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIHZhbHVlKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgbGVuZ3RoID0gbGVuZ3RoT2ZBcnJheUxpa2UoTyk7XG4gICAgcmVzdWx0ID0gSVNfQ09OU1RSVUNUT1IgPyBuZXcgdGhpcyhsZW5ndGgpIDogJEFycmF5KGxlbmd0aCk7XG4gICAgZm9yICg7bGVuZ3RoID4gaW5kZXg7IGluZGV4KyspIHtcbiAgICAgIHZhbHVlID0gbWFwcGluZyA/IG1hcGZuKE9baW5kZXhdLCBpbmRleCkgOiBPW2luZGV4XTtcbiAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgcmVzdWx0Lmxlbmd0aCA9IGluZGV4O1xuICByZXR1cm4gcmVzdWx0O1xufTtcbiIsInZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciB0b0Fic29sdXRlSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tYWJzb2x1dGUtaW5kZXgnKTtcbnZhciBsZW5ndGhPZkFycmF5TGlrZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9sZW5ndGgtb2YtYXJyYXktbGlrZScpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLnsgaW5kZXhPZiwgaW5jbHVkZXMgfWAgbWV0aG9kcyBpbXBsZW1lbnRhdGlvblxudmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uIChJU19JTkNMVURFUykge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBlbCwgZnJvbUluZGV4KSB7XG4gICAgdmFyIE8gPSB0b0luZGV4ZWRPYmplY3QoJHRoaXMpO1xuICAgIHZhciBsZW5ndGggPSBsZW5ndGhPZkFycmF5TGlrZShPKTtcbiAgICB2YXIgaW5kZXggPSB0b0Fic29sdXRlSW5kZXgoZnJvbUluZGV4LCBsZW5ndGgpO1xuICAgIHZhciB2YWx1ZTtcbiAgICAvLyBBcnJheSNpbmNsdWRlcyB1c2VzIFNhbWVWYWx1ZVplcm8gZXF1YWxpdHkgYWxnb3JpdGhtXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICBpZiAoSVNfSU5DTFVERVMgJiYgZWwgIT0gZWwpIHdoaWxlIChsZW5ndGggPiBpbmRleCkge1xuICAgICAgdmFsdWUgPSBPW2luZGV4KytdO1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICAgIGlmICh2YWx1ZSAhPSB2YWx1ZSkgcmV0dXJuIHRydWU7XG4gICAgLy8gQXJyYXkjaW5kZXhPZiBpZ25vcmVzIGhvbGVzLCBBcnJheSNpbmNsdWRlcyAtIG5vdFxuICAgIH0gZWxzZSBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykge1xuICAgICAgaWYgKChJU19JTkNMVURFUyB8fCBpbmRleCBpbiBPKSAmJiBPW2luZGV4XSA9PT0gZWwpIHJldHVybiBJU19JTkNMVURFUyB8fCBpbmRleCB8fCAwO1xuICAgIH0gcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTtcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgQXJyYXkucHJvdG90eXBlLmluY2x1ZGVzYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5jbHVkZXNcbiAgaW5jbHVkZXM6IGNyZWF0ZU1ldGhvZCh0cnVlKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5pbmRleE9mYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuaW5kZXhvZlxuICBpbmRleE9mOiBjcmVhdGVNZXRob2QoZmFsc2UpXG59O1xuIiwidmFyIGJpbmQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1jb250ZXh0Jyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG52YXIgYXJyYXlTcGVjaWVzQ3JlYXRlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNwZWNpZXMtY3JlYXRlJyk7XG5cbnZhciBwdXNoID0gdW5jdXJyeVRoaXMoW10ucHVzaCk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUueyBmb3JFYWNoLCBtYXAsIGZpbHRlciwgc29tZSwgZXZlcnksIGZpbmQsIGZpbmRJbmRleCwgZmlsdGVyUmVqZWN0IH1gIG1ldGhvZHMgaW1wbGVtZW50YXRpb25cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoVFlQRSkge1xuICB2YXIgSVNfTUFQID0gVFlQRSA9PSAxO1xuICB2YXIgSVNfRklMVEVSID0gVFlQRSA9PSAyO1xuICB2YXIgSVNfU09NRSA9IFRZUEUgPT0gMztcbiAgdmFyIElTX0VWRVJZID0gVFlQRSA9PSA0O1xuICB2YXIgSVNfRklORF9JTkRFWCA9IFRZUEUgPT0gNjtcbiAgdmFyIElTX0ZJTFRFUl9SRUpFQ1QgPSBUWVBFID09IDc7XG4gIHZhciBOT19IT0xFUyA9IFRZUEUgPT0gNSB8fCBJU19GSU5EX0lOREVYO1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBjYWxsYmFja2ZuLCB0aGF0LCBzcGVjaWZpY0NyZWF0ZSkge1xuICAgIHZhciBPID0gdG9PYmplY3QoJHRoaXMpO1xuICAgIHZhciBzZWxmID0gSW5kZXhlZE9iamVjdChPKTtcbiAgICB2YXIgYm91bmRGdW5jdGlvbiA9IGJpbmQoY2FsbGJhY2tmbiwgdGhhdCk7XG4gICAgdmFyIGxlbmd0aCA9IGxlbmd0aE9mQXJyYXlMaWtlKHNlbGYpO1xuICAgIHZhciBpbmRleCA9IDA7XG4gICAgdmFyIGNyZWF0ZSA9IHNwZWNpZmljQ3JlYXRlIHx8IGFycmF5U3BlY2llc0NyZWF0ZTtcbiAgICB2YXIgdGFyZ2V0ID0gSVNfTUFQID8gY3JlYXRlKCR0aGlzLCBsZW5ndGgpIDogSVNfRklMVEVSIHx8IElTX0ZJTFRFUl9SRUpFQ1QgPyBjcmVhdGUoJHRoaXMsIDApIDogdW5kZWZpbmVkO1xuICAgIHZhciB2YWx1ZSwgcmVzdWx0O1xuICAgIGZvciAoO2xlbmd0aCA+IGluZGV4OyBpbmRleCsrKSBpZiAoTk9fSE9MRVMgfHwgaW5kZXggaW4gc2VsZikge1xuICAgICAgdmFsdWUgPSBzZWxmW2luZGV4XTtcbiAgICAgIHJlc3VsdCA9IGJvdW5kRnVuY3Rpb24odmFsdWUsIGluZGV4LCBPKTtcbiAgICAgIGlmIChUWVBFKSB7XG4gICAgICAgIGlmIChJU19NQVApIHRhcmdldFtpbmRleF0gPSByZXN1bHQ7IC8vIG1hcFxuICAgICAgICBlbHNlIGlmIChyZXN1bHQpIHN3aXRjaCAoVFlQRSkge1xuICAgICAgICAgIGNhc2UgMzogcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAvLyBzb21lXG4gICAgICAgICAgY2FzZSA1OiByZXR1cm4gdmFsdWU7ICAgICAgICAgICAgIC8vIGZpbmRcbiAgICAgICAgICBjYXNlIDY6IHJldHVybiBpbmRleDsgICAgICAgICAgICAgLy8gZmluZEluZGV4XG4gICAgICAgICAgY2FzZSAyOiBwdXNoKHRhcmdldCwgdmFsdWUpOyAgICAgIC8vIGZpbHRlclxuICAgICAgICB9IGVsc2Ugc3dpdGNoIChUWVBFKSB7XG4gICAgICAgICAgY2FzZSA0OiByZXR1cm4gZmFsc2U7ICAgICAgICAgICAgIC8vIGV2ZXJ5XG4gICAgICAgICAgY2FzZSA3OiBwdXNoKHRhcmdldCwgdmFsdWUpOyAgICAgIC8vIGZpbHRlclJlamVjdFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBJU19GSU5EX0lOREVYID8gLTEgOiBJU19TT01FIHx8IElTX0VWRVJZID8gSVNfRVZFUlkgOiB0YXJnZXQ7XG4gIH07XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5mb3JFYWNoYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZm9yZWFjaFxuICBmb3JFYWNoOiBjcmVhdGVNZXRob2QoMCksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUubWFwYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUubWFwXG4gIG1hcDogY3JlYXRlTWV0aG9kKDEpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbHRlcmAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmZpbHRlclxuICBmaWx0ZXI6IGNyZWF0ZU1ldGhvZCgyKSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5zb21lYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuc29tZVxuICBzb21lOiBjcmVhdGVNZXRob2QoMyksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZXZlcnlgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5ldmVyeVxuICBldmVyeTogY3JlYXRlTWV0aG9kKDQpLFxuICAvLyBgQXJyYXkucHJvdG90eXBlLmZpbmRgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maW5kXG4gIGZpbmQ6IGNyZWF0ZU1ldGhvZCg1KSxcbiAgLy8gYEFycmF5LnByb3RvdHlwZS5maW5kSW5kZXhgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5maW5kSW5kZXhcbiAgZmluZEluZGV4OiBjcmVhdGVNZXRob2QoNiksXG4gIC8vIGBBcnJheS5wcm90b3R5cGUuZmlsdGVyUmVqZWN0YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtYXJyYXktZmlsdGVyaW5nXG4gIGZpbHRlclJlamVjdDogY3JlYXRlTWV0aG9kKDcpXG59O1xuIiwidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgVjhfVkVSU0lPTiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtdjgtdmVyc2lvbicpO1xuXG52YXIgU1BFQ0lFUyA9IHdlbGxLbm93blN5bWJvbCgnc3BlY2llcycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChNRVRIT0RfTkFNRSkge1xuICAvLyBXZSBjYW4ndCB1c2UgdGhpcyBmZWF0dXJlIGRldGVjdGlvbiBpbiBWOCBzaW5jZSBpdCBjYXVzZXNcbiAgLy8gZGVvcHRpbWl6YXRpb24gYW5kIHNlcmlvdXMgcGVyZm9ybWFuY2UgZGVncmFkYXRpb25cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzY3N1xuICByZXR1cm4gVjhfVkVSU0lPTiA+PSA1MSB8fCAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAgIHZhciBhcnJheSA9IFtdO1xuICAgIHZhciBjb25zdHJ1Y3RvciA9IGFycmF5LmNvbnN0cnVjdG9yID0ge307XG4gICAgY29uc3RydWN0b3JbU1BFQ0lFU10gPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4geyBmb286IDEgfTtcbiAgICB9O1xuICAgIHJldHVybiBhcnJheVtNRVRIT0RfTkFNRV0oQm9vbGVhbikuZm9vICE9PSAxO1xuICB9KTtcbn07XG4iLCIndXNlIHN0cmljdCc7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTUVUSE9EX05BTUUsIGFyZ3VtZW50KSB7XG4gIHZhciBtZXRob2QgPSBbXVtNRVRIT0RfTkFNRV07XG4gIHJldHVybiAhIW1ldGhvZCAmJiBmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZWxlc3MtY2FsbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICAgIG1ldGhvZC5jYWxsKG51bGwsIGFyZ3VtZW50IHx8IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDE7IH0sIDEpO1xuICB9KTtcbn07XG4iLCJ2YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4Jyk7XG52YXIgbGVuZ3RoT2ZBcnJheUxpa2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbGVuZ3RoLW9mLWFycmF5LWxpa2UnKTtcbnZhciBjcmVhdGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHknKTtcblxudmFyICRBcnJheSA9IEFycmF5O1xudmFyIG1heCA9IE1hdGgubWF4O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBzdGFydCwgZW5kKSB7XG4gIHZhciBsZW5ndGggPSBsZW5ndGhPZkFycmF5TGlrZShPKTtcbiAgdmFyIGsgPSB0b0Fic29sdXRlSW5kZXgoc3RhcnQsIGxlbmd0aCk7XG4gIHZhciBmaW4gPSB0b0Fic29sdXRlSW5kZXgoZW5kID09PSB1bmRlZmluZWQgPyBsZW5ndGggOiBlbmQsIGxlbmd0aCk7XG4gIHZhciByZXN1bHQgPSAkQXJyYXkobWF4KGZpbiAtIGssIDApKTtcbiAgZm9yICh2YXIgbiA9IDA7IGsgPCBmaW47IGsrKywgbisrKSBjcmVhdGVQcm9wZXJ0eShyZXN1bHQsIG4sIE9ba10pO1xuICByZXN1bHQubGVuZ3RoID0gbjtcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCJ2YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gdW5jdXJyeVRoaXMoW10uc2xpY2UpO1xuIiwidmFyIGFycmF5U2xpY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktc2xpY2Utc2ltcGxlJyk7XG5cbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG5cbnZhciBtZXJnZVNvcnQgPSBmdW5jdGlvbiAoYXJyYXksIGNvbXBhcmVmbikge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICB2YXIgbWlkZGxlID0gZmxvb3IobGVuZ3RoIC8gMik7XG4gIHJldHVybiBsZW5ndGggPCA4ID8gaW5zZXJ0aW9uU29ydChhcnJheSwgY29tcGFyZWZuKSA6IG1lcmdlKFxuICAgIGFycmF5LFxuICAgIG1lcmdlU29ydChhcnJheVNsaWNlKGFycmF5LCAwLCBtaWRkbGUpLCBjb21wYXJlZm4pLFxuICAgIG1lcmdlU29ydChhcnJheVNsaWNlKGFycmF5LCBtaWRkbGUpLCBjb21wYXJlZm4pLFxuICAgIGNvbXBhcmVmblxuICApO1xufTtcblxudmFyIGluc2VydGlvblNvcnQgPSBmdW5jdGlvbiAoYXJyYXksIGNvbXBhcmVmbikge1xuICB2YXIgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuICB2YXIgaSA9IDE7XG4gIHZhciBlbGVtZW50LCBqO1xuXG4gIHdoaWxlIChpIDwgbGVuZ3RoKSB7XG4gICAgaiA9IGk7XG4gICAgZWxlbWVudCA9IGFycmF5W2ldO1xuICAgIHdoaWxlIChqICYmIGNvbXBhcmVmbihhcnJheVtqIC0gMV0sIGVsZW1lbnQpID4gMCkge1xuICAgICAgYXJyYXlbal0gPSBhcnJheVstLWpdO1xuICAgIH1cbiAgICBpZiAoaiAhPT0gaSsrKSBhcnJheVtqXSA9IGVsZW1lbnQ7XG4gIH0gcmV0dXJuIGFycmF5O1xufTtcblxudmFyIG1lcmdlID0gZnVuY3Rpb24gKGFycmF5LCBsZWZ0LCByaWdodCwgY29tcGFyZWZuKSB7XG4gIHZhciBsbGVuZ3RoID0gbGVmdC5sZW5ndGg7XG4gIHZhciBybGVuZ3RoID0gcmlnaHQubGVuZ3RoO1xuICB2YXIgbGluZGV4ID0gMDtcbiAgdmFyIHJpbmRleCA9IDA7XG5cbiAgd2hpbGUgKGxpbmRleCA8IGxsZW5ndGggfHwgcmluZGV4IDwgcmxlbmd0aCkge1xuICAgIGFycmF5W2xpbmRleCArIHJpbmRleF0gPSAobGluZGV4IDwgbGxlbmd0aCAmJiByaW5kZXggPCBybGVuZ3RoKVxuICAgICAgPyBjb21wYXJlZm4obGVmdFtsaW5kZXhdLCByaWdodFtyaW5kZXhdKSA8PSAwID8gbGVmdFtsaW5kZXgrK10gOiByaWdodFtyaW5kZXgrK11cbiAgICAgIDogbGluZGV4IDwgbGxlbmd0aCA/IGxlZnRbbGluZGV4KytdIDogcmlnaHRbcmluZGV4KytdO1xuICB9IHJldHVybiBhcnJheTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gbWVyZ2VTb3J0O1xuIiwidmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtYXJyYXknKTtcbnZhciBpc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNvbnN0cnVjdG9yJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBTUEVDSUVTID0gd2VsbEtub3duU3ltYm9sKCdzcGVjaWVzJyk7XG52YXIgJEFycmF5ID0gQXJyYXk7XG5cbi8vIGEgcGFydCBvZiBgQXJyYXlTcGVjaWVzQ3JlYXRlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXlzcGVjaWVzY3JlYXRlXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvcmlnaW5hbEFycmF5KSB7XG4gIHZhciBDO1xuICBpZiAoaXNBcnJheShvcmlnaW5hbEFycmF5KSkge1xuICAgIEMgPSBvcmlnaW5hbEFycmF5LmNvbnN0cnVjdG9yO1xuICAgIC8vIGNyb3NzLXJlYWxtIGZhbGxiYWNrXG4gICAgaWYgKGlzQ29uc3RydWN0b3IoQykgJiYgKEMgPT09ICRBcnJheSB8fCBpc0FycmF5KEMucHJvdG90eXBlKSkpIEMgPSB1bmRlZmluZWQ7XG4gICAgZWxzZSBpZiAoaXNPYmplY3QoQykpIHtcbiAgICAgIEMgPSBDW1NQRUNJRVNdO1xuICAgICAgaWYgKEMgPT09IG51bGwpIEMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9IHJldHVybiBDID09PSB1bmRlZmluZWQgPyAkQXJyYXkgOiBDO1xufTtcbiIsInZhciBhcnJheVNwZWNpZXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zcGVjaWVzLWNvbnN0cnVjdG9yJyk7XG5cbi8vIGBBcnJheVNwZWNpZXNDcmVhdGVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheXNwZWNpZXNjcmVhdGVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9yaWdpbmFsQXJyYXksIGxlbmd0aCkge1xuICByZXR1cm4gbmV3IChhcnJheVNwZWNpZXNDb25zdHJ1Y3RvcihvcmlnaW5hbEFycmF5KSkobGVuZ3RoID09PSAwID8gMCA6IGxlbmd0aCk7XG59O1xuIiwidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGl0ZXJhdG9yQ2xvc2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3ItY2xvc2UnKTtcblxuLy8gY2FsbCBzb21ldGhpbmcgb24gaXRlcmF0b3Igc3RlcCB3aXRoIHNhZmUgY2xvc2luZyBvbiBlcnJvclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlcmF0b3IsIGZuLCB2YWx1ZSwgRU5UUklFUykge1xuICB0cnkge1xuICAgIHJldHVybiBFTlRSSUVTID8gZm4oYW5PYmplY3QodmFsdWUpWzBdLCB2YWx1ZVsxXSkgOiBmbih2YWx1ZSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaXRlcmF0b3JDbG9zZShpdGVyYXRvciwgJ3Rocm93JywgZXJyb3IpO1xuICB9XG59O1xuIiwidmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG52YXIgU0FGRV9DTE9TSU5HID0gZmFsc2U7XG5cbnRyeSB7XG4gIHZhciBjYWxsZWQgPSAwO1xuICB2YXIgaXRlcmF0b3JXaXRoUmV0dXJuID0ge1xuICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB7IGRvbmU6ICEhY2FsbGVkKysgfTtcbiAgICB9LFxuICAgICdyZXR1cm4nOiBmdW5jdGlvbiAoKSB7XG4gICAgICBTQUZFX0NMT1NJTkcgPSB0cnVlO1xuICAgIH1cbiAgfTtcbiAgaXRlcmF0b3JXaXRoUmV0dXJuW0lURVJBVE9SXSA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tYXJyYXktZnJvbSwgbm8tdGhyb3ctbGl0ZXJhbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICBBcnJheS5mcm9tKGl0ZXJhdG9yV2l0aFJldHVybiwgZnVuY3Rpb24gKCkgeyB0aHJvdyAyOyB9KTtcbn0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoZXhlYywgU0tJUF9DTE9TSU5HKSB7XG4gIGlmICghU0tJUF9DTE9TSU5HICYmICFTQUZFX0NMT1NJTkcpIHJldHVybiBmYWxzZTtcbiAgdmFyIElURVJBVElPTl9TVVBQT1JUID0gZmFsc2U7XG4gIHRyeSB7XG4gICAgdmFyIG9iamVjdCA9IHt9O1xuICAgIG9iamVjdFtJVEVSQVRPUl0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuZXh0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHsgZG9uZTogSVRFUkFUSU9OX1NVUFBPUlQgPSB0cnVlIH07XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfTtcbiAgICBleGVjKG9iamVjdCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgcmV0dXJuIElURVJBVElPTl9TVVBQT1JUO1xufTtcbiIsInZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxudmFyIHRvU3RyaW5nID0gdW5jdXJyeVRoaXMoe30udG9TdHJpbmcpO1xudmFyIHN0cmluZ1NsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gc3RyaW5nU2xpY2UodG9TdHJpbmcoaXQpLCA4LCAtMSk7XG59O1xuIiwidmFyIFRPX1NUUklOR19UQUdfU1VQUE9SVCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmctdGFnLXN1cHBvcnQnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgY2xhc3NvZlJhdyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG52YXIgVE9fU1RSSU5HX1RBRyA9IHdlbGxLbm93blN5bWJvbCgndG9TdHJpbmdUYWcnKTtcbnZhciAkT2JqZWN0ID0gT2JqZWN0O1xuXG4vLyBFUzMgd3JvbmcgaGVyZVxudmFyIENPUlJFQ1RfQVJHVU1FTlRTID0gY2xhc3NvZlJhdyhmdW5jdGlvbiAoKSB7IHJldHVybiBhcmd1bWVudHM7IH0oKSkgPT0gJ0FyZ3VtZW50cyc7XG5cbi8vIGZhbGxiYWNrIGZvciBJRTExIFNjcmlwdCBBY2Nlc3MgRGVuaWVkIGVycm9yXG52YXIgdHJ5R2V0ID0gZnVuY3Rpb24gKGl0LCBrZXkpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gaXRba2V5XTtcbiAgfSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxufTtcblxuLy8gZ2V0dGluZyB0YWcgZnJvbSBFUzYrIGBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nYFxubW9kdWxlLmV4cG9ydHMgPSBUT19TVFJJTkdfVEFHX1NVUFBPUlQgPyBjbGFzc29mUmF3IDogZnVuY3Rpb24gKGl0KSB7XG4gIHZhciBPLCB0YWcsIHJlc3VsdDtcbiAgcmV0dXJuIGl0ID09PSB1bmRlZmluZWQgPyAnVW5kZWZpbmVkJyA6IGl0ID09PSBudWxsID8gJ051bGwnXG4gICAgLy8gQEB0b1N0cmluZ1RhZyBjYXNlXG4gICAgOiB0eXBlb2YgKHRhZyA9IHRyeUdldChPID0gJE9iamVjdChpdCksIFRPX1NUUklOR19UQUcpKSA9PSAnc3RyaW5nJyA/IHRhZ1xuICAgIC8vIGJ1aWx0aW5UYWcgY2FzZVxuICAgIDogQ09SUkVDVF9BUkdVTUVOVFMgPyBjbGFzc29mUmF3KE8pXG4gICAgLy8gRVMzIGFyZ3VtZW50cyBmYWxsYmFja1xuICAgIDogKHJlc3VsdCA9IGNsYXNzb2ZSYXcoTykpID09ICdPYmplY3QnICYmIGlzQ2FsbGFibGUoTy5jYWxsZWUpID8gJ0FyZ3VtZW50cycgOiByZXN1bHQ7XG59O1xuIiwidmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgb3duS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vd24ta2V5cycpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICh0YXJnZXQsIHNvdXJjZSwgZXhjZXB0aW9ucykge1xuICB2YXIga2V5cyA9IG93bktleXMoc291cmNlKTtcbiAgdmFyIGRlZmluZVByb3BlcnR5ID0gZGVmaW5lUHJvcGVydHlNb2R1bGUuZjtcbiAgdmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZS5mO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICBpZiAoIWhhc093bih0YXJnZXQsIGtleSkgJiYgIShleGNlcHRpb25zICYmIGhhc093bihleGNlcHRpb25zLCBrZXkpKSkge1xuICAgICAgZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihzb3VyY2UsIGtleSkpO1xuICAgIH1cbiAgfVxufTtcbiIsInZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIE1BVENIID0gd2VsbEtub3duU3ltYm9sKCdtYXRjaCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChNRVRIT0RfTkFNRSkge1xuICB2YXIgcmVnZXhwID0gLy4vO1xuICB0cnkge1xuICAgICcvLi8nW01FVEhPRF9OQU1FXShyZWdleHApO1xuICB9IGNhdGNoIChlcnJvcjEpIHtcbiAgICB0cnkge1xuICAgICAgcmVnZXhwW01BVENIXSA9IGZhbHNlO1xuICAgICAgcmV0dXJuICcvLi8nW01FVEhPRF9OQU1FXShyZWdleHApO1xuICAgIH0gY2F0Y2ggKGVycm9yMikgeyAvKiBlbXB0eSAqLyB9XG4gIH0gcmV0dXJuIGZhbHNlO1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIEYoKSB7IC8qIGVtcHR5ICovIH1cbiAgRi5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBudWxsO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1vYmplY3QtZ2V0cHJvdG90eXBlb2YgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXcgRigpKSAhPT0gRi5wcm90b3R5cGU7XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMtY29yZScpLkl0ZXJhdG9yUHJvdG90eXBlO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzJyk7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoSXRlcmF0b3JDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCwgRU5VTUVSQUJMRV9ORVhUKSB7XG4gIHZhciBUT19TVFJJTkdfVEFHID0gTkFNRSArICcgSXRlcmF0b3InO1xuICBJdGVyYXRvckNvbnN0cnVjdG9yLnByb3RvdHlwZSA9IGNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSwgeyBuZXh0OiBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoKyFFTlVNRVJBQkxFX05FWFQsIG5leHQpIH0pO1xuICBzZXRUb1N0cmluZ1RhZyhJdGVyYXRvckNvbnN0cnVjdG9yLCBUT19TVFJJTkdfVEFHLCBmYWxzZSwgdHJ1ZSk7XG4gIEl0ZXJhdG9yc1tUT19TVFJJTkdfVEFHXSA9IHJldHVyblRoaXM7XG4gIHJldHVybiBJdGVyYXRvckNvbnN0cnVjdG9yO1xufTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5LWRlc2NyaXB0b3InKTtcblxubW9kdWxlLmV4cG9ydHMgPSBERVNDUklQVE9SUyA/IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5TW9kdWxlLmYob2JqZWN0LCBrZXksIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigxLCB2YWx1ZSkpO1xufSA6IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgb2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgcmV0dXJuIG9iamVjdDtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChiaXRtYXAsIHZhbHVlKSB7XG4gIHJldHVybiB7XG4gICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSxcbiAgICBjb25maWd1cmFibGU6ICEoYml0bWFwICYgMiksXG4gICAgd3JpdGFibGU6ICEoYml0bWFwICYgNCksXG4gICAgdmFsdWU6IHZhbHVlXG4gIH07XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvUHJvcGVydHlLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJvcGVydHkta2V5Jyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvYmplY3QsIGtleSwgdmFsdWUpIHtcbiAgdmFyIHByb3BlcnR5S2V5ID0gdG9Qcm9wZXJ0eUtleShrZXkpO1xuICBpZiAocHJvcGVydHlLZXkgaW4gb2JqZWN0KSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKG9iamVjdCwgcHJvcGVydHlLZXksIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvcigwLCB2YWx1ZSkpO1xuICBlbHNlIG9iamVjdFtwcm9wZXJ0eUtleV0gPSB2YWx1ZTtcbn07XG4iLCJ2YXIgbWFrZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbWFrZS1idWlsdC1pbicpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodGFyZ2V0LCBuYW1lLCBkZXNjcmlwdG9yKSB7XG4gIGlmIChkZXNjcmlwdG9yLmdldCkgbWFrZUJ1aWx0SW4oZGVzY3JpcHRvci5nZXQsIG5hbWUsIHsgZ2V0dGVyOiB0cnVlIH0pO1xuICBpZiAoZGVzY3JpcHRvci5zZXQpIG1ha2VCdWlsdEluKGRlc2NyaXB0b3Iuc2V0LCBuYW1lLCB7IHNldHRlcjogdHJ1ZSB9KTtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5LmYodGFyZ2V0LCBuYW1lLCBkZXNjcmlwdG9yKTtcbn07XG4iLCJ2YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGRlZmluZVByb3BlcnR5TW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKTtcbnZhciBtYWtlQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9tYWtlLWJ1aWx0LWluJyk7XG52YXIgZGVmaW5lR2xvYmFsUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWdsb2JhbC1wcm9wZXJ0eScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBrZXksIHZhbHVlLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9O1xuICB2YXIgc2ltcGxlID0gb3B0aW9ucy5lbnVtZXJhYmxlO1xuICB2YXIgbmFtZSA9IG9wdGlvbnMubmFtZSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5uYW1lIDoga2V5O1xuICBpZiAoaXNDYWxsYWJsZSh2YWx1ZSkpIG1ha2VCdWlsdEluKHZhbHVlLCBuYW1lLCBvcHRpb25zKTtcbiAgaWYgKG9wdGlvbnMuZ2xvYmFsKSB7XG4gICAgaWYgKHNpbXBsZSkgT1trZXldID0gdmFsdWU7XG4gICAgZWxzZSBkZWZpbmVHbG9iYWxQcm9wZXJ0eShrZXksIHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgaWYgKCFvcHRpb25zLnVuc2FmZSkgZGVsZXRlIE9ba2V5XTtcbiAgICAgIGVsc2UgaWYgKE9ba2V5XSkgc2ltcGxlID0gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gICAgaWYgKHNpbXBsZSkgT1trZXldID0gdmFsdWU7XG4gICAgZWxzZSBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mKE8sIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6ICFvcHRpb25zLm5vbkNvbmZpZ3VyYWJsZSxcbiAgICAgIHdyaXRhYmxlOiAhb3B0aW9ucy5ub25Xcml0YWJsZVxuICAgIH0pO1xuICB9IHJldHVybiBPO1xufTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSBzYWZlXG52YXIgZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcbiAgdHJ5IHtcbiAgICBkZWZpbmVQcm9wZXJ0eShnbG9iYWwsIGtleSwgeyB2YWx1ZTogdmFsdWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRydWUgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgZ2xvYmFsW2tleV0gPSB2YWx1ZTtcbiAgfSByZXR1cm4gdmFsdWU7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgRnVuY3Rpb25OYW1lID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLW5hbWUnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgY3JlYXRlSXRlcmF0b3JDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtaXRlcmF0b3ItY29uc3RydWN0b3InKTtcbnZhciBnZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LXByb3RvdHlwZS1vZicpO1xudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1zZXQtcHJvdG90eXBlLW9mJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgZGVmaW5lQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4nKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzJyk7XG52YXIgSXRlcmF0b3JzQ29yZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMtY29yZScpO1xuXG52YXIgUFJPUEVSX0ZVTkNUSU9OX05BTUUgPSBGdW5jdGlvbk5hbWUuUFJPUEVSO1xudmFyIENPTkZJR1VSQUJMRV9GVU5DVElPTl9OQU1FID0gRnVuY3Rpb25OYW1lLkNPTkZJR1VSQUJMRTtcbnZhciBJdGVyYXRvclByb3RvdHlwZSA9IEl0ZXJhdG9yc0NvcmUuSXRlcmF0b3JQcm90b3R5cGU7XG52YXIgQlVHR1lfU0FGQVJJX0lURVJBVE9SUyA9IEl0ZXJhdG9yc0NvcmUuQlVHR1lfU0FGQVJJX0lURVJBVE9SUztcbnZhciBJVEVSQVRPUiA9IHdlbGxLbm93blN5bWJvbCgnaXRlcmF0b3InKTtcbnZhciBLRVlTID0gJ2tleXMnO1xudmFyIFZBTFVFUyA9ICd2YWx1ZXMnO1xudmFyIEVOVFJJRVMgPSAnZW50cmllcyc7XG5cbnZhciByZXR1cm5UaGlzID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpczsgfTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoSXRlcmFibGUsIE5BTUUsIEl0ZXJhdG9yQ29uc3RydWN0b3IsIG5leHQsIERFRkFVTFQsIElTX1NFVCwgRk9SQ0VEKSB7XG4gIGNyZWF0ZUl0ZXJhdG9yQ29uc3RydWN0b3IoSXRlcmF0b3JDb25zdHJ1Y3RvciwgTkFNRSwgbmV4dCk7XG5cbiAgdmFyIGdldEl0ZXJhdGlvbk1ldGhvZCA9IGZ1bmN0aW9uIChLSU5EKSB7XG4gICAgaWYgKEtJTkQgPT09IERFRkFVTFQgJiYgZGVmYXVsdEl0ZXJhdG9yKSByZXR1cm4gZGVmYXVsdEl0ZXJhdG9yO1xuICAgIGlmICghQlVHR1lfU0FGQVJJX0lURVJBVE9SUyAmJiBLSU5EIGluIEl0ZXJhYmxlUHJvdG90eXBlKSByZXR1cm4gSXRlcmFibGVQcm90b3R5cGVbS0lORF07XG4gICAgc3dpdGNoIChLSU5EKSB7XG4gICAgICBjYXNlIEtFWVM6IHJldHVybiBmdW5jdGlvbiBrZXlzKCkgeyByZXR1cm4gbmV3IEl0ZXJhdG9yQ29uc3RydWN0b3IodGhpcywgS0lORCk7IH07XG4gICAgICBjYXNlIFZBTFVFUzogcmV0dXJuIGZ1bmN0aW9uIHZhbHVlcygpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMsIEtJTkQpOyB9O1xuICAgICAgY2FzZSBFTlRSSUVTOiByZXR1cm4gZnVuY3Rpb24gZW50cmllcygpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMsIEtJTkQpOyB9O1xuICAgIH0gcmV0dXJuIGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5ldyBJdGVyYXRvckNvbnN0cnVjdG9yKHRoaXMpOyB9O1xuICB9O1xuXG4gIHZhciBUT19TVFJJTkdfVEFHID0gTkFNRSArICcgSXRlcmF0b3InO1xuICB2YXIgSU5DT1JSRUNUX1ZBTFVFU19OQU1FID0gZmFsc2U7XG4gIHZhciBJdGVyYWJsZVByb3RvdHlwZSA9IEl0ZXJhYmxlLnByb3RvdHlwZTtcbiAgdmFyIG5hdGl2ZUl0ZXJhdG9yID0gSXRlcmFibGVQcm90b3R5cGVbSVRFUkFUT1JdXG4gICAgfHwgSXRlcmFibGVQcm90b3R5cGVbJ0BAaXRlcmF0b3InXVxuICAgIHx8IERFRkFVTFQgJiYgSXRlcmFibGVQcm90b3R5cGVbREVGQVVMVF07XG4gIHZhciBkZWZhdWx0SXRlcmF0b3IgPSAhQlVHR1lfU0FGQVJJX0lURVJBVE9SUyAmJiBuYXRpdmVJdGVyYXRvciB8fCBnZXRJdGVyYXRpb25NZXRob2QoREVGQVVMVCk7XG4gIHZhciBhbnlOYXRpdmVJdGVyYXRvciA9IE5BTUUgPT0gJ0FycmF5JyA/IEl0ZXJhYmxlUHJvdG90eXBlLmVudHJpZXMgfHwgbmF0aXZlSXRlcmF0b3IgOiBuYXRpdmVJdGVyYXRvcjtcbiAgdmFyIEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSwgbWV0aG9kcywgS0VZO1xuXG4gIC8vIGZpeCBuYXRpdmVcbiAgaWYgKGFueU5hdGl2ZUl0ZXJhdG9yKSB7XG4gICAgQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG90eXBlT2YoYW55TmF0aXZlSXRlcmF0b3IuY2FsbChuZXcgSXRlcmFibGUoKSkpO1xuICAgIGlmIChDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUgJiYgQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlLm5leHQpIHtcbiAgICAgIGlmICghSVNfUFVSRSAmJiBnZXRQcm90b3R5cGVPZihDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUpICE9PSBJdGVyYXRvclByb3RvdHlwZSkge1xuICAgICAgICBpZiAoc2V0UHJvdG90eXBlT2YpIHtcbiAgICAgICAgICBzZXRQcm90b3R5cGVPZihDdXJyZW50SXRlcmF0b3JQcm90b3R5cGUsIEl0ZXJhdG9yUHJvdG90eXBlKTtcbiAgICAgICAgfSBlbHNlIGlmICghaXNDYWxsYWJsZShDdXJyZW50SXRlcmF0b3JQcm90b3R5cGVbSVRFUkFUT1JdKSkge1xuICAgICAgICAgIGRlZmluZUJ1aWx0SW4oQ3VycmVudEl0ZXJhdG9yUHJvdG90eXBlLCBJVEVSQVRPUiwgcmV0dXJuVGhpcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIFNldCBAQHRvU3RyaW5nVGFnIHRvIG5hdGl2ZSBpdGVyYXRvcnNcbiAgICAgIHNldFRvU3RyaW5nVGFnKEN1cnJlbnRJdGVyYXRvclByb3RvdHlwZSwgVE9fU1RSSU5HX1RBRywgdHJ1ZSwgdHJ1ZSk7XG4gICAgICBpZiAoSVNfUFVSRSkgSXRlcmF0b3JzW1RPX1NUUklOR19UQUddID0gcmV0dXJuVGhpcztcbiAgICB9XG4gIH1cblxuICAvLyBmaXggQXJyYXkucHJvdG90eXBlLnsgdmFsdWVzLCBAQGl0ZXJhdG9yIH0ubmFtZSBpbiBWOCAvIEZGXG4gIGlmIChQUk9QRVJfRlVOQ1RJT05fTkFNRSAmJiBERUZBVUxUID09IFZBTFVFUyAmJiBuYXRpdmVJdGVyYXRvciAmJiBuYXRpdmVJdGVyYXRvci5uYW1lICE9PSBWQUxVRVMpIHtcbiAgICBpZiAoIUlTX1BVUkUgJiYgQ09ORklHVVJBQkxFX0ZVTkNUSU9OX05BTUUpIHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShJdGVyYWJsZVByb3RvdHlwZSwgJ25hbWUnLCBWQUxVRVMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBJTkNPUlJFQ1RfVkFMVUVTX05BTUUgPSB0cnVlO1xuICAgICAgZGVmYXVsdEl0ZXJhdG9yID0gZnVuY3Rpb24gdmFsdWVzKCkgeyByZXR1cm4gY2FsbChuYXRpdmVJdGVyYXRvciwgdGhpcyk7IH07XG4gICAgfVxuICB9XG5cbiAgLy8gZXhwb3J0IGFkZGl0aW9uYWwgbWV0aG9kc1xuICBpZiAoREVGQVVMVCkge1xuICAgIG1ldGhvZHMgPSB7XG4gICAgICB2YWx1ZXM6IGdldEl0ZXJhdGlvbk1ldGhvZChWQUxVRVMpLFxuICAgICAga2V5czogSVNfU0VUID8gZGVmYXVsdEl0ZXJhdG9yIDogZ2V0SXRlcmF0aW9uTWV0aG9kKEtFWVMpLFxuICAgICAgZW50cmllczogZ2V0SXRlcmF0aW9uTWV0aG9kKEVOVFJJRVMpXG4gICAgfTtcbiAgICBpZiAoRk9SQ0VEKSBmb3IgKEtFWSBpbiBtZXRob2RzKSB7XG4gICAgICBpZiAoQlVHR1lfU0FGQVJJX0lURVJBVE9SUyB8fCBJTkNPUlJFQ1RfVkFMVUVTX05BTUUgfHwgIShLRVkgaW4gSXRlcmFibGVQcm90b3R5cGUpKSB7XG4gICAgICAgIGRlZmluZUJ1aWx0SW4oSXRlcmFibGVQcm90b3R5cGUsIEtFWSwgbWV0aG9kc1tLRVldKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgJCh7IHRhcmdldDogTkFNRSwgcHJvdG86IHRydWUsIGZvcmNlZDogQlVHR1lfU0FGQVJJX0lURVJBVE9SUyB8fCBJTkNPUlJFQ1RfVkFMVUVTX05BTUUgfSwgbWV0aG9kcyk7XG4gIH1cblxuICAvLyBkZWZpbmUgaXRlcmF0b3JcbiAgaWYgKCghSVNfUFVSRSB8fCBGT1JDRUQpICYmIEl0ZXJhYmxlUHJvdG90eXBlW0lURVJBVE9SXSAhPT0gZGVmYXVsdEl0ZXJhdG9yKSB7XG4gICAgZGVmaW5lQnVpbHRJbihJdGVyYWJsZVByb3RvdHlwZSwgSVRFUkFUT1IsIGRlZmF1bHRJdGVyYXRvciwgeyBuYW1lOiBERUZBVUxUIH0pO1xuICB9XG4gIEl0ZXJhdG9yc1tOQU1FXSA9IGRlZmF1bHRJdGVyYXRvcjtcblxuICByZXR1cm4gbWV0aG9kcztcbn07XG4iLCJ2YXIgcGF0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9wYXRoJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciB3cmFwcGVkV2VsbEtub3duU3ltYm9sTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sLXdyYXBwZWQnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5JykuZjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTkFNRSkge1xuICB2YXIgU3ltYm9sID0gcGF0aC5TeW1ib2wgfHwgKHBhdGguU3ltYm9sID0ge30pO1xuICBpZiAoIWhhc093bihTeW1ib2wsIE5BTUUpKSBkZWZpbmVQcm9wZXJ0eShTeW1ib2wsIE5BTUUsIHtcbiAgICB2YWx1ZTogd3JhcHBlZFdlbGxLbm93blN5bWJvbE1vZHVsZS5mKE5BTUUpXG4gIH0pO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciB0cnlUb1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90cnktdG8tc3RyaW5nJyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChPLCBQKSB7XG4gIGlmICghZGVsZXRlIE9bUF0pIHRocm93ICRUeXBlRXJyb3IoJ0Nhbm5vdCBkZWxldGUgcHJvcGVydHkgJyArIHRyeVRvU3RyaW5nKFApICsgJyBvZiAnICsgdHJ5VG9TdHJpbmcoTykpO1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBEZXRlY3QgSUU4J3MgaW5jb21wbGV0ZSBkZWZpbmVQcm9wZXJ0eSBpbXBsZW1lbnRhdGlvblxubW9kdWxlLmV4cG9ydHMgPSAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgMSwgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSlbMV0gIT0gNztcbn0pO1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcblxudmFyIGRvY3VtZW50ID0gZ2xvYmFsLmRvY3VtZW50O1xuLy8gdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQgaXMgJ29iamVjdCcgaW4gb2xkIElFXG52YXIgRVhJU1RTID0gaXNPYmplY3QoZG9jdW1lbnQpICYmIGlzT2JqZWN0KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gRVhJU1RTID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdCkgOiB7fTtcbn07XG4iLCJ2YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcbnZhciBNQVhfU0FGRV9JTlRFR0VSID0gMHgxRkZGRkZGRkZGRkZGRjsgLy8gMiAqKiA1MyAtIDEgPT0gOTAwNzE5OTI1NDc0MDk5MVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgPiBNQVhfU0FGRV9JTlRFR0VSKSB0aHJvdyAkVHlwZUVycm9yKCdNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWQnKTtcbiAgcmV0dXJuIGl0O1xufTtcbiIsIi8vIGl0ZXJhYmxlIERPTSBjb2xsZWN0aW9uc1xuLy8gZmxhZyAtIGBpdGVyYWJsZWAgaW50ZXJmYWNlIC0gJ2VudHJpZXMnLCAna2V5cycsICd2YWx1ZXMnLCAnZm9yRWFjaCcgbWV0aG9kc1xubW9kdWxlLmV4cG9ydHMgPSB7XG4gIENTU1J1bGVMaXN0OiAwLFxuICBDU1NTdHlsZURlY2xhcmF0aW9uOiAwLFxuICBDU1NWYWx1ZUxpc3Q6IDAsXG4gIENsaWVudFJlY3RMaXN0OiAwLFxuICBET01SZWN0TGlzdDogMCxcbiAgRE9NU3RyaW5nTGlzdDogMCxcbiAgRE9NVG9rZW5MaXN0OiAxLFxuICBEYXRhVHJhbnNmZXJJdGVtTGlzdDogMCxcbiAgRmlsZUxpc3Q6IDAsXG4gIEhUTUxBbGxDb2xsZWN0aW9uOiAwLFxuICBIVE1MQ29sbGVjdGlvbjogMCxcbiAgSFRNTEZvcm1FbGVtZW50OiAwLFxuICBIVE1MU2VsZWN0RWxlbWVudDogMCxcbiAgTWVkaWFMaXN0OiAwLFxuICBNaW1lVHlwZUFycmF5OiAwLFxuICBOYW1lZE5vZGVNYXA6IDAsXG4gIE5vZGVMaXN0OiAxLFxuICBQYWludFJlcXVlc3RMaXN0OiAwLFxuICBQbHVnaW46IDAsXG4gIFBsdWdpbkFycmF5OiAwLFxuICBTVkdMZW5ndGhMaXN0OiAwLFxuICBTVkdOdW1iZXJMaXN0OiAwLFxuICBTVkdQYXRoU2VnTGlzdDogMCxcbiAgU1ZHUG9pbnRMaXN0OiAwLFxuICBTVkdTdHJpbmdMaXN0OiAwLFxuICBTVkdUcmFuc2Zvcm1MaXN0OiAwLFxuICBTb3VyY2VCdWZmZXJMaXN0OiAwLFxuICBTdHlsZVNoZWV0TGlzdDogMCxcbiAgVGV4dFRyYWNrQ3VlTGlzdDogMCxcbiAgVGV4dFRyYWNrTGlzdDogMCxcbiAgVG91Y2hMaXN0OiAwXG59O1xuIiwiLy8gaW4gb2xkIFdlYktpdCB2ZXJzaW9ucywgYGVsZW1lbnQuY2xhc3NMaXN0YCBpcyBub3QgYW4gaW5zdGFuY2Ugb2YgZ2xvYmFsIGBET01Ub2tlbkxpc3RgXG52YXIgZG9jdW1lbnRDcmVhdGVFbGVtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50Jyk7XG5cbnZhciBjbGFzc0xpc3QgPSBkb2N1bWVudENyZWF0ZUVsZW1lbnQoJ3NwYW4nKS5jbGFzc0xpc3Q7XG52YXIgRE9NVG9rZW5MaXN0UHJvdG90eXBlID0gY2xhc3NMaXN0ICYmIGNsYXNzTGlzdC5jb25zdHJ1Y3RvciAmJiBjbGFzc0xpc3QuY29uc3RydWN0b3IucHJvdG90eXBlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IERPTVRva2VuTGlzdFByb3RvdHlwZSA9PT0gT2JqZWN0LnByb3RvdHlwZSA/IHVuZGVmaW5lZCA6IERPTVRva2VuTGlzdFByb3RvdHlwZTtcbiIsInZhciB1c2VyQWdlbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLXVzZXItYWdlbnQnKTtcblxudmFyIGZpcmVmb3ggPSB1c2VyQWdlbnQubWF0Y2goL2ZpcmVmb3hcXC8oXFxkKykvaSk7XG5cbm1vZHVsZS5leHBvcnRzID0gISFmaXJlZm94ICYmICtmaXJlZm94WzFdO1xuIiwidmFyIFVBID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VuZ2luZS11c2VyLWFnZW50Jyk7XG5cbm1vZHVsZS5leHBvcnRzID0gL01TSUV8VHJpZGVudC8udGVzdChVQSk7XG4iLCJ2YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRCdWlsdEluKCduYXZpZ2F0b3InLCAndXNlckFnZW50JykgfHwgJyc7XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHVzZXJBZ2VudCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtdXNlci1hZ2VudCcpO1xuXG52YXIgcHJvY2VzcyA9IGdsb2JhbC5wcm9jZXNzO1xudmFyIERlbm8gPSBnbG9iYWwuRGVubztcbnZhciB2ZXJzaW9ucyA9IHByb2Nlc3MgJiYgcHJvY2Vzcy52ZXJzaW9ucyB8fCBEZW5vICYmIERlbm8udmVyc2lvbjtcbnZhciB2OCA9IHZlcnNpb25zICYmIHZlcnNpb25zLnY4O1xudmFyIG1hdGNoLCB2ZXJzaW9uO1xuXG5pZiAodjgpIHtcbiAgbWF0Y2ggPSB2OC5zcGxpdCgnLicpO1xuICAvLyBpbiBvbGQgQ2hyb21lLCB2ZXJzaW9ucyBvZiBWOCBpc24ndCBWOCA9IENocm9tZSAvIDEwXG4gIC8vIGJ1dCB0aGVpciBjb3JyZWN0IHZlcnNpb25zIGFyZSBub3QgaW50ZXJlc3RpbmcgZm9yIHVzXG4gIHZlcnNpb24gPSBtYXRjaFswXSA+IDAgJiYgbWF0Y2hbMF0gPCA0ID8gMSA6ICsobWF0Y2hbMF0gKyBtYXRjaFsxXSk7XG59XG5cbi8vIEJyb3dzZXJGUyBOb2RlSlMgYHByb2Nlc3NgIHBvbHlmaWxsIGluY29ycmVjdGx5IHNldCBgLnY4YCB0byBgMC4wYFxuLy8gc28gY2hlY2sgYHVzZXJBZ2VudGAgZXZlbiBpZiBgLnY4YCBleGlzdHMsIGJ1dCAwXG5pZiAoIXZlcnNpb24gJiYgdXNlckFnZW50KSB7XG4gIG1hdGNoID0gdXNlckFnZW50Lm1hdGNoKC9FZGdlXFwvKFxcZCspLyk7XG4gIGlmICghbWF0Y2ggfHwgbWF0Y2hbMV0gPj0gNzQpIHtcbiAgICBtYXRjaCA9IHVzZXJBZ2VudC5tYXRjaCgvQ2hyb21lXFwvKFxcZCspLyk7XG4gICAgaWYgKG1hdGNoKSB2ZXJzaW9uID0gK21hdGNoWzFdO1xuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gdmVyc2lvbjtcbiIsInZhciB1c2VyQWdlbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLXVzZXItYWdlbnQnKTtcblxudmFyIHdlYmtpdCA9IHVzZXJBZ2VudC5tYXRjaCgvQXBwbGVXZWJLaXRcXC8oXFxkKylcXC4vKTtcblxubW9kdWxlLmV4cG9ydHMgPSAhIXdlYmtpdCAmJiArd2Via2l0WzFdO1xuIiwiLy8gSUU4LSBkb24ndCBlbnVtIGJ1ZyBrZXlzXG5tb2R1bGUuZXhwb3J0cyA9IFtcbiAgJ2NvbnN0cnVjdG9yJyxcbiAgJ2hhc093blByb3BlcnR5JyxcbiAgJ2lzUHJvdG90eXBlT2YnLFxuICAncHJvcGVydHlJc0VudW1lcmFibGUnLFxuICAndG9Mb2NhbGVTdHJpbmcnLFxuICAndG9TdHJpbmcnLFxuICAndmFsdWVPZidcbl07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJykuZjtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgZGVmaW5lQnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtYnVpbHQtaW4nKTtcbnZhciBkZWZpbmVHbG9iYWxQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtZ2xvYmFsLXByb3BlcnR5Jyk7XG52YXIgY29weUNvbnN0cnVjdG9yUHJvcGVydGllcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb3B5LWNvbnN0cnVjdG9yLXByb3BlcnRpZXMnKTtcbnZhciBpc0ZvcmNlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1mb3JjZWQnKTtcblxuLypcbiAgb3B0aW9ucy50YXJnZXQgICAgICAgICAtIG5hbWUgb2YgdGhlIHRhcmdldCBvYmplY3RcbiAgb3B0aW9ucy5nbG9iYWwgICAgICAgICAtIHRhcmdldCBpcyB0aGUgZ2xvYmFsIG9iamVjdFxuICBvcHRpb25zLnN0YXQgICAgICAgICAgIC0gZXhwb3J0IGFzIHN0YXRpYyBtZXRob2RzIG9mIHRhcmdldFxuICBvcHRpb25zLnByb3RvICAgICAgICAgIC0gZXhwb3J0IGFzIHByb3RvdHlwZSBtZXRob2RzIG9mIHRhcmdldFxuICBvcHRpb25zLnJlYWwgICAgICAgICAgIC0gcmVhbCBwcm90b3R5cGUgbWV0aG9kIGZvciB0aGUgYHB1cmVgIHZlcnNpb25cbiAgb3B0aW9ucy5mb3JjZWQgICAgICAgICAtIGV4cG9ydCBldmVuIGlmIHRoZSBuYXRpdmUgZmVhdHVyZSBpcyBhdmFpbGFibGVcbiAgb3B0aW9ucy5iaW5kICAgICAgICAgICAtIGJpbmQgbWV0aG9kcyB0byB0aGUgdGFyZ2V0LCByZXF1aXJlZCBmb3IgdGhlIGBwdXJlYCB2ZXJzaW9uXG4gIG9wdGlvbnMud3JhcCAgICAgICAgICAgLSB3cmFwIGNvbnN0cnVjdG9ycyB0byBwcmV2ZW50aW5nIGdsb2JhbCBwb2xsdXRpb24sIHJlcXVpcmVkIGZvciB0aGUgYHB1cmVgIHZlcnNpb25cbiAgb3B0aW9ucy51bnNhZmUgICAgICAgICAtIHVzZSB0aGUgc2ltcGxlIGFzc2lnbm1lbnQgb2YgcHJvcGVydHkgaW5zdGVhZCBvZiBkZWxldGUgKyBkZWZpbmVQcm9wZXJ0eVxuICBvcHRpb25zLnNoYW0gICAgICAgICAgIC0gYWRkIGEgZmxhZyB0byBub3QgY29tcGxldGVseSBmdWxsIHBvbHlmaWxsc1xuICBvcHRpb25zLmVudW1lcmFibGUgICAgIC0gZXhwb3J0IGFzIGVudW1lcmFibGUgcHJvcGVydHlcbiAgb3B0aW9ucy5kb250Q2FsbEdldFNldCAtIHByZXZlbnQgY2FsbGluZyBhIGdldHRlciBvbiB0YXJnZXRcbiAgb3B0aW9ucy5uYW1lICAgICAgICAgICAtIHRoZSAubmFtZSBvZiB0aGUgZnVuY3Rpb24gaWYgaXQgZG9lcyBub3QgbWF0Y2ggdGhlIGtleVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9wdGlvbnMsIHNvdXJjZSkge1xuICB2YXIgVEFSR0VUID0gb3B0aW9ucy50YXJnZXQ7XG4gIHZhciBHTE9CQUwgPSBvcHRpb25zLmdsb2JhbDtcbiAgdmFyIFNUQVRJQyA9IG9wdGlvbnMuc3RhdDtcbiAgdmFyIEZPUkNFRCwgdGFyZ2V0LCBrZXksIHRhcmdldFByb3BlcnR5LCBzb3VyY2VQcm9wZXJ0eSwgZGVzY3JpcHRvcjtcbiAgaWYgKEdMT0JBTCkge1xuICAgIHRhcmdldCA9IGdsb2JhbDtcbiAgfSBlbHNlIGlmIChTVEFUSUMpIHtcbiAgICB0YXJnZXQgPSBnbG9iYWxbVEFSR0VUXSB8fCBkZWZpbmVHbG9iYWxQcm9wZXJ0eShUQVJHRVQsIHt9KTtcbiAgfSBlbHNlIHtcbiAgICB0YXJnZXQgPSAoZ2xvYmFsW1RBUkdFVF0gfHwge30pLnByb3RvdHlwZTtcbiAgfVxuICBpZiAodGFyZ2V0KSBmb3IgKGtleSBpbiBzb3VyY2UpIHtcbiAgICBzb3VyY2VQcm9wZXJ0eSA9IHNvdXJjZVtrZXldO1xuICAgIGlmIChvcHRpb25zLmRvbnRDYWxsR2V0U2V0KSB7XG4gICAgICBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KTtcbiAgICAgIHRhcmdldFByb3BlcnR5ID0gZGVzY3JpcHRvciAmJiBkZXNjcmlwdG9yLnZhbHVlO1xuICAgIH0gZWxzZSB0YXJnZXRQcm9wZXJ0eSA9IHRhcmdldFtrZXldO1xuICAgIEZPUkNFRCA9IGlzRm9yY2VkKEdMT0JBTCA/IGtleSA6IFRBUkdFVCArIChTVEFUSUMgPyAnLicgOiAnIycpICsga2V5LCBvcHRpb25zLmZvcmNlZCk7XG4gICAgLy8gY29udGFpbmVkIGluIHRhcmdldFxuICAgIGlmICghRk9SQ0VEICYmIHRhcmdldFByb3BlcnR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0eXBlb2Ygc291cmNlUHJvcGVydHkgPT0gdHlwZW9mIHRhcmdldFByb3BlcnR5KSBjb250aW51ZTtcbiAgICAgIGNvcHlDb25zdHJ1Y3RvclByb3BlcnRpZXMoc291cmNlUHJvcGVydHksIHRhcmdldFByb3BlcnR5KTtcbiAgICB9XG4gICAgLy8gYWRkIGEgZmxhZyB0byBub3QgY29tcGxldGVseSBmdWxsIHBvbHlmaWxsc1xuICAgIGlmIChvcHRpb25zLnNoYW0gfHwgKHRhcmdldFByb3BlcnR5ICYmIHRhcmdldFByb3BlcnR5LnNoYW0pKSB7XG4gICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoc291cmNlUHJvcGVydHksICdzaGFtJywgdHJ1ZSk7XG4gICAgfVxuICAgIGRlZmluZUJ1aWx0SW4odGFyZ2V0LCBrZXksIHNvdXJjZVByb3BlcnR5LCBvcHRpb25zKTtcbiAgfVxufTtcbiIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gISFleGVjKCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn07XG4iLCIndXNlIHN0cmljdCc7XG4vLyBUT0RPOiBSZW1vdmUgZnJvbSBgY29yZS1qc0A0YCBzaW5jZSBpdCdzIG1vdmVkIHRvIGVudHJ5IHBvaW50c1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5yZWdleHAuZXhlYycpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG52YXIgcmVnZXhwRXhlYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZXhlYycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1ub24tZW51bWVyYWJsZS1wcm9wZXJ0eScpO1xuXG52YXIgU1BFQ0lFUyA9IHdlbGxLbm93blN5bWJvbCgnc3BlY2llcycpO1xudmFyIFJlZ0V4cFByb3RvdHlwZSA9IFJlZ0V4cC5wcm90b3R5cGU7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEtFWSwgZXhlYywgRk9SQ0VELCBTSEFNKSB7XG4gIHZhciBTWU1CT0wgPSB3ZWxsS25vd25TeW1ib2woS0VZKTtcblxuICB2YXIgREVMRUdBVEVTX1RPX1NZTUJPTCA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgLy8gU3RyaW5nIG1ldGhvZHMgY2FsbCBzeW1ib2wtbmFtZWQgUmVnRXAgbWV0aG9kc1xuICAgIHZhciBPID0ge307XG4gICAgT1tTWU1CT0xdID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfTtcbiAgICByZXR1cm4gJydbS0VZXShPKSAhPSA3O1xuICB9KTtcblxuICB2YXIgREVMRUdBVEVTX1RPX0VYRUMgPSBERUxFR0FURVNfVE9fU1lNQk9MICYmICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gICAgLy8gU3ltYm9sLW5hbWVkIFJlZ0V4cCBtZXRob2RzIGNhbGwgLmV4ZWNcbiAgICB2YXIgZXhlY0NhbGxlZCA9IGZhbHNlO1xuICAgIHZhciByZSA9IC9hLztcblxuICAgIGlmIChLRVkgPT09ICdzcGxpdCcpIHtcbiAgICAgIC8vIFdlIGNhbid0IHVzZSByZWFsIHJlZ2V4IGhlcmUgc2luY2UgaXQgY2F1c2VzIGRlb3B0aW1pemF0aW9uXG4gICAgICAvLyBhbmQgc2VyaW91cyBwZXJmb3JtYW5jZSBkZWdyYWRhdGlvbiBpbiBWOFxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzMwNlxuICAgICAgcmUgPSB7fTtcbiAgICAgIC8vIFJlZ0V4cFtAQHNwbGl0XSBkb2Vzbid0IGNhbGwgdGhlIHJlZ2V4J3MgZXhlYyBtZXRob2QsIGJ1dCBmaXJzdCBjcmVhdGVzXG4gICAgICAvLyBhIG5ldyBvbmUuIFdlIG5lZWQgdG8gcmV0dXJuIHRoZSBwYXRjaGVkIHJlZ2V4IHdoZW4gY3JlYXRpbmcgdGhlIG5ldyBvbmUuXG4gICAgICByZS5jb25zdHJ1Y3RvciA9IHt9O1xuICAgICAgcmUuY29uc3RydWN0b3JbU1BFQ0lFU10gPSBmdW5jdGlvbiAoKSB7IHJldHVybiByZTsgfTtcbiAgICAgIHJlLmZsYWdzID0gJyc7XG4gICAgICByZVtTWU1CT0xdID0gLy4vW1NZTUJPTF07XG4gICAgfVxuXG4gICAgcmUuZXhlYyA9IGZ1bmN0aW9uICgpIHsgZXhlY0NhbGxlZCA9IHRydWU7IHJldHVybiBudWxsOyB9O1xuXG4gICAgcmVbU1lNQk9MXSgnJyk7XG4gICAgcmV0dXJuICFleGVjQ2FsbGVkO1xuICB9KTtcblxuICBpZiAoXG4gICAgIURFTEVHQVRFU19UT19TWU1CT0wgfHxcbiAgICAhREVMRUdBVEVTX1RPX0VYRUMgfHxcbiAgICBGT1JDRURcbiAgKSB7XG4gICAgdmFyIHVuY3VycmllZE5hdGl2ZVJlZ0V4cE1ldGhvZCA9IHVuY3VycnlUaGlzKC8uL1tTWU1CT0xdKTtcbiAgICB2YXIgbWV0aG9kcyA9IGV4ZWMoU1lNQk9MLCAnJ1tLRVldLCBmdW5jdGlvbiAobmF0aXZlTWV0aG9kLCByZWdleHAsIHN0ciwgYXJnMiwgZm9yY2VTdHJpbmdNZXRob2QpIHtcbiAgICAgIHZhciB1bmN1cnJpZWROYXRpdmVNZXRob2QgPSB1bmN1cnJ5VGhpcyhuYXRpdmVNZXRob2QpO1xuICAgICAgdmFyICRleGVjID0gcmVnZXhwLmV4ZWM7XG4gICAgICBpZiAoJGV4ZWMgPT09IHJlZ2V4cEV4ZWMgfHwgJGV4ZWMgPT09IFJlZ0V4cFByb3RvdHlwZS5leGVjKSB7XG4gICAgICAgIGlmIChERUxFR0FURVNfVE9fU1lNQk9MICYmICFmb3JjZVN0cmluZ01ldGhvZCkge1xuICAgICAgICAgIC8vIFRoZSBuYXRpdmUgU3RyaW5nIG1ldGhvZCBhbHJlYWR5IGRlbGVnYXRlcyB0byBAQG1ldGhvZCAodGhpc1xuICAgICAgICAgIC8vIHBvbHlmaWxsZWQgZnVuY3Rpb24pLCBsZWFzaW5nIHRvIGluZmluaXRlIHJlY3Vyc2lvbi5cbiAgICAgICAgICAvLyBXZSBhdm9pZCBpdCBieSBkaXJlY3RseSBjYWxsaW5nIHRoZSBuYXRpdmUgQEBtZXRob2QgbWV0aG9kLlxuICAgICAgICAgIHJldHVybiB7IGRvbmU6IHRydWUsIHZhbHVlOiB1bmN1cnJpZWROYXRpdmVSZWdFeHBNZXRob2QocmVnZXhwLCBzdHIsIGFyZzIpIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgZG9uZTogdHJ1ZSwgdmFsdWU6IHVuY3VycmllZE5hdGl2ZU1ldGhvZChzdHIsIHJlZ2V4cCwgYXJnMikgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IGRvbmU6IGZhbHNlIH07XG4gICAgfSk7XG5cbiAgICBkZWZpbmVCdWlsdEluKFN0cmluZy5wcm90b3R5cGUsIEtFWSwgbWV0aG9kc1swXSk7XG4gICAgZGVmaW5lQnVpbHRJbihSZWdFeHBQcm90b3R5cGUsIFNZTUJPTCwgbWV0aG9kc1sxXSk7XG4gIH1cblxuICBpZiAoU0hBTSkgY3JlYXRlTm9uRW51bWVyYWJsZVByb3BlcnR5KFJlZ0V4cFByb3RvdHlwZVtTWU1CT0xdLCAnc2hhbScsIHRydWUpO1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1pc2V4dGVuc2libGUsIGVzLXgvbm8tb2JqZWN0LXByZXZlbnRleHRlbnNpb25zIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIHJldHVybiBPYmplY3QuaXNFeHRlbnNpYmxlKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSkpO1xufSk7XG4iLCJ2YXIgTkFUSVZFX0JJTkQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tYmluZC1uYXRpdmUnKTtcblxudmFyIEZ1bmN0aW9uUHJvdG90eXBlID0gRnVuY3Rpb24ucHJvdG90eXBlO1xudmFyIGFwcGx5ID0gRnVuY3Rpb25Qcm90b3R5cGUuYXBwbHk7XG52YXIgY2FsbCA9IEZ1bmN0aW9uUHJvdG90eXBlLmNhbGw7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLXJlZmxlY3QgLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSB0eXBlb2YgUmVmbGVjdCA9PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmFwcGx5IHx8IChOQVRJVkVfQklORCA/IGNhbGwuYmluZChhcHBseSkgOiBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBjYWxsLmFwcGx5KGFwcGx5LCBhcmd1bWVudHMpO1xufSk7XG4iLCJ2YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgYUNhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtY2FsbGFibGUnKTtcbnZhciBOQVRJVkVfQklORCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLW5hdGl2ZScpO1xuXG52YXIgYmluZCA9IHVuY3VycnlUaGlzKHVuY3VycnlUaGlzLmJpbmQpO1xuXG4vLyBvcHRpb25hbCAvIHNpbXBsZSBjb250ZXh0IGJpbmRpbmdcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0KSB7XG4gIGFDYWxsYWJsZShmbik7XG4gIHJldHVybiB0aGF0ID09PSB1bmRlZmluZWQgPyBmbiA6IE5BVElWRV9CSU5EID8gYmluZChmbiwgdGhhdCkgOiBmdW5jdGlvbiAoLyogLi4uYXJncyAqLykge1xuICAgIHJldHVybiBmbi5hcHBseSh0aGF0LCBhcmd1bWVudHMpO1xuICB9O1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG5tb2R1bGUuZXhwb3J0cyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLWZ1bmN0aW9uLXByb3RvdHlwZS1iaW5kIC0tIHNhZmVcbiAgdmFyIHRlc3QgPSAoZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9KS5iaW5kKCk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnMgLS0gc2FmZVxuICByZXR1cm4gdHlwZW9mIHRlc3QgIT0gJ2Z1bmN0aW9uJyB8fCB0ZXN0Lmhhc093blByb3BlcnR5KCdwcm90b3R5cGUnKTtcbn0pO1xuIiwidmFyIE5BVElWRV9CSU5EID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWJpbmQtbmF0aXZlJyk7XG5cbnZhciBjYWxsID0gRnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7XG5cbm1vZHVsZS5leHBvcnRzID0gTkFUSVZFX0JJTkQgPyBjYWxsLmJpbmQoY2FsbCkgOiBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBjYWxsLmFwcGx5KGNhbGwsIGFyZ3VtZW50cyk7XG59O1xuIiwidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcblxudmFyIEZ1bmN0aW9uUHJvdG90eXBlID0gRnVuY3Rpb24ucHJvdG90eXBlO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG52YXIgZ2V0RGVzY3JpcHRvciA9IERFU0NSSVBUT1JTICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbnZhciBFWElTVFMgPSBoYXNPd24oRnVuY3Rpb25Qcm90b3R5cGUsICduYW1lJyk7XG4vLyBhZGRpdGlvbmFsIHByb3RlY3Rpb24gZnJvbSBtaW5pZmllZCAvIG1hbmdsZWQgLyBkcm9wcGVkIGZ1bmN0aW9uIG5hbWVzXG52YXIgUFJPUEVSID0gRVhJU1RTICYmIChmdW5jdGlvbiBzb21ldGhpbmcoKSB7IC8qIGVtcHR5ICovIH0pLm5hbWUgPT09ICdzb21ldGhpbmcnO1xudmFyIENPTkZJR1VSQUJMRSA9IEVYSVNUUyAmJiAoIURFU0NSSVBUT1JTIHx8IChERVNDUklQVE9SUyAmJiBnZXREZXNjcmlwdG9yKEZ1bmN0aW9uUHJvdG90eXBlLCAnbmFtZScpLmNvbmZpZ3VyYWJsZSkpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgRVhJU1RTOiBFWElTVFMsXG4gIFBST1BFUjogUFJPUEVSLFxuICBDT05GSUdVUkFCTEU6IENPTkZJR1VSQUJMRVxufTtcbiIsInZhciBOQVRJVkVfQklORCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1iaW5kLW5hdGl2ZScpO1xuXG52YXIgRnVuY3Rpb25Qcm90b3R5cGUgPSBGdW5jdGlvbi5wcm90b3R5cGU7XG52YXIgYmluZCA9IEZ1bmN0aW9uUHJvdG90eXBlLmJpbmQ7XG52YXIgY2FsbCA9IEZ1bmN0aW9uUHJvdG90eXBlLmNhbGw7XG52YXIgdW5jdXJyeVRoaXMgPSBOQVRJVkVfQklORCAmJiBiaW5kLmJpbmQoY2FsbCwgY2FsbCk7XG5cbm1vZHVsZS5leHBvcnRzID0gTkFUSVZFX0JJTkQgPyBmdW5jdGlvbiAoZm4pIHtcbiAgcmV0dXJuIGZuICYmIHVuY3VycnlUaGlzKGZuKTtcbn0gOiBmdW5jdGlvbiAoZm4pIHtcbiAgcmV0dXJuIGZuICYmIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gY2FsbC5hcHBseShmbiwgYXJndW1lbnRzKTtcbiAgfTtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcblxudmFyIGFGdW5jdGlvbiA9IGZ1bmN0aW9uIChhcmd1bWVudCkge1xuICByZXR1cm4gaXNDYWxsYWJsZShhcmd1bWVudCkgPyBhcmd1bWVudCA6IHVuZGVmaW5lZDtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWVzcGFjZSwgbWV0aG9kKSB7XG4gIHJldHVybiBhcmd1bWVudHMubGVuZ3RoIDwgMiA/IGFGdW5jdGlvbihnbG9iYWxbbmFtZXNwYWNlXSkgOiBnbG9iYWxbbmFtZXNwYWNlXSAmJiBnbG9iYWxbbmFtZXNwYWNlXVttZXRob2RdO1xufTtcbiIsInZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YnKTtcbnZhciBnZXRNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LW1ldGhvZCcpO1xudmFyIEl0ZXJhdG9ycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pdGVyYXRvcnMnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXQgIT0gdW5kZWZpbmVkKSByZXR1cm4gZ2V0TWV0aG9kKGl0LCBJVEVSQVRPUilcbiAgICB8fCBnZXRNZXRob2QoaXQsICdAQGl0ZXJhdG9yJylcbiAgICB8fCBJdGVyYXRvcnNbY2xhc3NvZihpdCldO1xufTtcbiIsInZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBhQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1jYWxsYWJsZScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRyeVRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RyeS10by1zdHJpbmcnKTtcbnZhciBnZXRJdGVyYXRvck1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtaXRlcmF0b3ItbWV0aG9kJyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhcmd1bWVudCwgdXNpbmdJdGVyYXRvcikge1xuICB2YXIgaXRlcmF0b3JNZXRob2QgPSBhcmd1bWVudHMubGVuZ3RoIDwgMiA/IGdldEl0ZXJhdG9yTWV0aG9kKGFyZ3VtZW50KSA6IHVzaW5nSXRlcmF0b3I7XG4gIGlmIChhQ2FsbGFibGUoaXRlcmF0b3JNZXRob2QpKSByZXR1cm4gYW5PYmplY3QoY2FsbChpdGVyYXRvck1ldGhvZCwgYXJndW1lbnQpKTtcbiAgdGhyb3cgJFR5cGVFcnJvcih0cnlUb1N0cmluZyhhcmd1bWVudCkgKyAnIGlzIG5vdCBpdGVyYWJsZScpO1xufTtcbiIsInZhciBhQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1jYWxsYWJsZScpO1xuXG4vLyBgR2V0TWV0aG9kYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtZ2V0bWV0aG9kXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChWLCBQKSB7XG4gIHZhciBmdW5jID0gVltQXTtcbiAgcmV0dXJuIGZ1bmMgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IGFDYWxsYWJsZShmdW5jKTtcbn07XG4iLCJ2YXIgY2hlY2sgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ICYmIGl0Lk1hdGggPT0gTWF0aCAmJiBpdDtcbn07XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy84NiNpc3N1ZWNvbW1lbnQtMTE1NzU5MDI4XG5tb2R1bGUuZXhwb3J0cyA9XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLWdsb2JhbC10aGlzIC0tIHNhZmVcbiAgY2hlY2sodHlwZW9mIGdsb2JhbFRoaXMgPT0gJ29iamVjdCcgJiYgZ2xvYmFsVGhpcykgfHxcbiAgY2hlY2sodHlwZW9mIHdpbmRvdyA9PSAnb2JqZWN0JyAmJiB3aW5kb3cpIHx8XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLWdsb2JhbHMgLS0gc2FmZVxuICBjaGVjayh0eXBlb2Ygc2VsZiA9PSAnb2JqZWN0JyAmJiBzZWxmKSB8fFxuICBjaGVjayh0eXBlb2YgZ2xvYmFsID09ICdvYmplY3QnICYmIGdsb2JhbCkgfHxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5ldy1mdW5jIC0tIGZhbGxiYWNrXG4gIChmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9KSgpIHx8IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG4iLCJ2YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IHVuY3VycnlUaGlzKHt9Lmhhc093blByb3BlcnR5KTtcblxuLy8gYEhhc093blByb3BlcnR5YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaGFzb3ducHJvcGVydHlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1oYXNvd24gLS0gc2FmZVxubW9kdWxlLmV4cG9ydHMgPSBPYmplY3QuaGFzT3duIHx8IGZ1bmN0aW9uIGhhc093bihpdCwga2V5KSB7XG4gIHJldHVybiBoYXNPd25Qcm9wZXJ0eSh0b09iamVjdChpdCksIGtleSk7XG59O1xuIiwibW9kdWxlLmV4cG9ydHMgPSB7fTtcbiIsInZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW4oJ2RvY3VtZW50JywgJ2RvY3VtZW50RWxlbWVudCcpO1xuIiwidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBjcmVhdGVFbGVtZW50ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvY3VtZW50LWNyZWF0ZS1lbGVtZW50Jyk7XG5cbi8vIFRoYW5rcyB0byBJRTggZm9yIGl0cyBmdW5ueSBkZWZpbmVQcm9wZXJ0eVxubW9kdWxlLmV4cG9ydHMgPSAhREVTQ1JJUFRPUlMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoY3JlYXRlRWxlbWVudCgnZGl2JyksICdhJywge1xuICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gNzsgfVxuICB9KS5hICE9IDc7XG59KTtcbiIsInZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcblxudmFyICRPYmplY3QgPSBPYmplY3Q7XG52YXIgc3BsaXQgPSB1bmN1cnJ5VGhpcygnJy5zcGxpdCk7XG5cbi8vIGZhbGxiYWNrIGZvciBub24tYXJyYXktbGlrZSBFUzMgYW5kIG5vbi1lbnVtZXJhYmxlIG9sZCBWOCBzdHJpbmdzXG5tb2R1bGUuZXhwb3J0cyA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gdGhyb3dzIGFuIGVycm9yIGluIHJoaW5vLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvcmhpbm8vaXNzdWVzLzM0NlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcHJvdG90eXBlLWJ1aWx0aW5zIC0tIHNhZmVcbiAgcmV0dXJuICEkT2JqZWN0KCd6JykucHJvcGVydHlJc0VudW1lcmFibGUoMCk7XG59KSA/IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gY2xhc3NvZihpdCkgPT0gJ1N0cmluZycgPyBzcGxpdChpdCwgJycpIDogJE9iamVjdChpdCk7XG59IDogJE9iamVjdDtcbiIsInZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG52YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXNldC1wcm90b3R5cGUtb2YnKTtcblxuLy8gbWFrZXMgc3ViY2xhc3Npbmcgd29yayBjb3JyZWN0IGZvciB3cmFwcGVkIGJ1aWx0LWluc1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoJHRoaXMsIGR1bW15LCBXcmFwcGVyKSB7XG4gIHZhciBOZXdUYXJnZXQsIE5ld1RhcmdldFByb3RvdHlwZTtcbiAgaWYgKFxuICAgIC8vIGl0IGNhbiB3b3JrIG9ubHkgd2l0aCBuYXRpdmUgYHNldFByb3RvdHlwZU9mYFxuICAgIHNldFByb3RvdHlwZU9mICYmXG4gICAgLy8gd2UgaGF2ZW4ndCBjb21wbGV0ZWx5IGNvcnJlY3QgcHJlLUVTNiB3YXkgZm9yIGdldHRpbmcgYG5ldy50YXJnZXRgLCBzbyB1c2UgdGhpc1xuICAgIGlzQ2FsbGFibGUoTmV3VGFyZ2V0ID0gZHVtbXkuY29uc3RydWN0b3IpICYmXG4gICAgTmV3VGFyZ2V0ICE9PSBXcmFwcGVyICYmXG4gICAgaXNPYmplY3QoTmV3VGFyZ2V0UHJvdG90eXBlID0gTmV3VGFyZ2V0LnByb3RvdHlwZSkgJiZcbiAgICBOZXdUYXJnZXRQcm90b3R5cGUgIT09IFdyYXBwZXIucHJvdG90eXBlXG4gICkgc2V0UHJvdG90eXBlT2YoJHRoaXMsIE5ld1RhcmdldFByb3RvdHlwZSk7XG4gIHJldHVybiAkdGhpcztcbn07XG4iLCJ2YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIHN0b3JlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1zdG9yZScpO1xuXG52YXIgZnVuY3Rpb25Ub1N0cmluZyA9IHVuY3VycnlUaGlzKEZ1bmN0aW9uLnRvU3RyaW5nKTtcblxuLy8gdGhpcyBoZWxwZXIgYnJva2VuIGluIGBjb3JlLWpzQDMuNC4xLTMuNC40YCwgc28gd2UgY2FuJ3QgdXNlIGBzaGFyZWRgIGhlbHBlclxuaWYgKCFpc0NhbGxhYmxlKHN0b3JlLmluc3BlY3RTb3VyY2UpKSB7XG4gIHN0b3JlLmluc3BlY3RTb3VyY2UgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gZnVuY3Rpb25Ub1N0cmluZyhpdCk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gc3RvcmUuaW5zcGVjdFNvdXJjZTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIGRlZmluZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1kZWZpbmUtcHJvcGVydHknKS5mO1xudmFyIGdldE93blByb3BlcnR5TmFtZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzRXh0ZXJuYWxNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMtZXh0ZXJuYWwnKTtcbnZhciBpc0V4dGVuc2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWlzLWV4dGVuc2libGUnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdWlkJyk7XG52YXIgRlJFRVpJTkcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnJlZXppbmcnKTtcblxudmFyIFJFUVVJUkVEID0gZmFsc2U7XG52YXIgTUVUQURBVEEgPSB1aWQoJ21ldGEnKTtcbnZhciBpZCA9IDA7XG5cbnZhciBzZXRNZXRhZGF0YSA9IGZ1bmN0aW9uIChpdCkge1xuICBkZWZpbmVQcm9wZXJ0eShpdCwgTUVUQURBVEEsIHsgdmFsdWU6IHtcbiAgICBvYmplY3RJRDogJ08nICsgaWQrKywgLy8gb2JqZWN0IElEXG4gICAgd2Vha0RhdGE6IHt9ICAgICAgICAgIC8vIHdlYWsgY29sbGVjdGlvbnMgSURzXG4gIH0gfSk7XG59O1xuXG52YXIgZmFzdEtleSA9IGZ1bmN0aW9uIChpdCwgY3JlYXRlKSB7XG4gIC8vIHJldHVybiBhIHByaW1pdGl2ZSB3aXRoIHByZWZpeFxuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIHR5cGVvZiBpdCA9PSAnc3ltYm9sJyA/IGl0IDogKHR5cGVvZiBpdCA9PSAnc3RyaW5nJyA/ICdTJyA6ICdQJykgKyBpdDtcbiAgaWYgKCFoYXNPd24oaXQsIE1FVEFEQVRBKSkge1xuICAgIC8vIGNhbid0IHNldCBtZXRhZGF0YSB0byB1bmNhdWdodCBmcm96ZW4gb2JqZWN0XG4gICAgaWYgKCFpc0V4dGVuc2libGUoaXQpKSByZXR1cm4gJ0YnO1xuICAgIC8vIG5vdCBuZWNlc3NhcnkgdG8gYWRkIG1ldGFkYXRhXG4gICAgaWYgKCFjcmVhdGUpIHJldHVybiAnRSc7XG4gICAgLy8gYWRkIG1pc3NpbmcgbWV0YWRhdGFcbiAgICBzZXRNZXRhZGF0YShpdCk7XG4gIC8vIHJldHVybiBvYmplY3QgSURcbiAgfSByZXR1cm4gaXRbTUVUQURBVEFdLm9iamVjdElEO1xufTtcblxudmFyIGdldFdlYWtEYXRhID0gZnVuY3Rpb24gKGl0LCBjcmVhdGUpIHtcbiAgaWYgKCFoYXNPd24oaXQsIE1FVEFEQVRBKSkge1xuICAgIC8vIGNhbid0IHNldCBtZXRhZGF0YSB0byB1bmNhdWdodCBmcm96ZW4gb2JqZWN0XG4gICAgaWYgKCFpc0V4dGVuc2libGUoaXQpKSByZXR1cm4gdHJ1ZTtcbiAgICAvLyBub3QgbmVjZXNzYXJ5IHRvIGFkZCBtZXRhZGF0YVxuICAgIGlmICghY3JlYXRlKSByZXR1cm4gZmFsc2U7XG4gICAgLy8gYWRkIG1pc3NpbmcgbWV0YWRhdGFcbiAgICBzZXRNZXRhZGF0YShpdCk7XG4gIC8vIHJldHVybiB0aGUgc3RvcmUgb2Ygd2VhayBjb2xsZWN0aW9ucyBJRHNcbiAgfSByZXR1cm4gaXRbTUVUQURBVEFdLndlYWtEYXRhO1xufTtcblxuLy8gYWRkIG1ldGFkYXRhIG9uIGZyZWV6ZS1mYW1pbHkgbWV0aG9kcyBjYWxsaW5nXG52YXIgb25GcmVlemUgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKEZSRUVaSU5HICYmIFJFUVVJUkVEICYmIGlzRXh0ZW5zaWJsZShpdCkgJiYgIWhhc093bihpdCwgTUVUQURBVEEpKSBzZXRNZXRhZGF0YShpdCk7XG4gIHJldHVybiBpdDtcbn07XG5cbnZhciBlbmFibGUgPSBmdW5jdGlvbiAoKSB7XG4gIG1ldGEuZW5hYmxlID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xuICBSRVFVSVJFRCA9IHRydWU7XG4gIHZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzID0gZ2V0T3duUHJvcGVydHlOYW1lc01vZHVsZS5mO1xuICB2YXIgc3BsaWNlID0gdW5jdXJyeVRoaXMoW10uc3BsaWNlKTtcbiAgdmFyIHRlc3QgPSB7fTtcbiAgdGVzdFtNRVRBREFUQV0gPSAxO1xuXG4gIC8vIHByZXZlbnQgZXhwb3Npbmcgb2YgbWV0YWRhdGEga2V5XG4gIGlmIChnZXRPd25Qcm9wZXJ0eU5hbWVzKHRlc3QpLmxlbmd0aCkge1xuICAgIGdldE93blByb3BlcnR5TmFtZXNNb2R1bGUuZiA9IGZ1bmN0aW9uIChpdCkge1xuICAgICAgdmFyIHJlc3VsdCA9IGdldE93blByb3BlcnR5TmFtZXMoaXQpO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbmd0aCA9IHJlc3VsdC5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAocmVzdWx0W2ldID09PSBNRVRBREFUQSkge1xuICAgICAgICAgIHNwbGljZShyZXN1bHQsIGksIDEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9IHJldHVybiByZXN1bHQ7XG4gICAgfTtcblxuICAgICQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IHRydWUgfSwge1xuICAgICAgZ2V0T3duUHJvcGVydHlOYW1lczogZ2V0T3duUHJvcGVydHlOYW1lc0V4dGVybmFsTW9kdWxlLmZcbiAgICB9KTtcbiAgfVxufTtcblxudmFyIG1ldGEgPSBtb2R1bGUuZXhwb3J0cyA9IHtcbiAgZW5hYmxlOiBlbmFibGUsXG4gIGZhc3RLZXk6IGZhc3RLZXksXG4gIGdldFdlYWtEYXRhOiBnZXRXZWFrRGF0YSxcbiAgb25GcmVlemU6IG9uRnJlZXplXG59O1xuXG5oaWRkZW5LZXlzW01FVEFEQVRBXSA9IHRydWU7XG4iLCJ2YXIgTkFUSVZFX1dFQUtfTUFQID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS13ZWFrLW1hcCcpO1xudmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBzaGFyZWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG52YXIgc2hhcmVkS2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZC1rZXknKTtcbnZhciBoaWRkZW5LZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hpZGRlbi1rZXlzJyk7XG5cbnZhciBPQkpFQ1RfQUxSRUFEWV9JTklUSUFMSVpFRCA9ICdPYmplY3QgYWxyZWFkeSBpbml0aWFsaXplZCc7XG52YXIgVHlwZUVycm9yID0gZ2xvYmFsLlR5cGVFcnJvcjtcbnZhciBXZWFrTWFwID0gZ2xvYmFsLldlYWtNYXA7XG52YXIgc2V0LCBnZXQsIGhhcztcblxudmFyIGVuZm9yY2UgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGhhcyhpdCkgPyBnZXQoaXQpIDogc2V0KGl0LCB7fSk7XG59O1xuXG52YXIgZ2V0dGVyRm9yID0gZnVuY3Rpb24gKFRZUEUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChpdCkge1xuICAgIHZhciBzdGF0ZTtcbiAgICBpZiAoIWlzT2JqZWN0KGl0KSB8fCAoc3RhdGUgPSBnZXQoaXQpKS50eXBlICE9PSBUWVBFKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoJ0luY29tcGF0aWJsZSByZWNlaXZlciwgJyArIFRZUEUgKyAnIHJlcXVpcmVkJyk7XG4gICAgfSByZXR1cm4gc3RhdGU7XG4gIH07XG59O1xuXG5pZiAoTkFUSVZFX1dFQUtfTUFQIHx8IHNoYXJlZC5zdGF0ZSkge1xuICB2YXIgc3RvcmUgPSBzaGFyZWQuc3RhdGUgfHwgKHNoYXJlZC5zdGF0ZSA9IG5ldyBXZWFrTWFwKCkpO1xuICB2YXIgd21nZXQgPSB1bmN1cnJ5VGhpcyhzdG9yZS5nZXQpO1xuICB2YXIgd21oYXMgPSB1bmN1cnJ5VGhpcyhzdG9yZS5oYXMpO1xuICB2YXIgd21zZXQgPSB1bmN1cnJ5VGhpcyhzdG9yZS5zZXQpO1xuICBzZXQgPSBmdW5jdGlvbiAoaXQsIG1ldGFkYXRhKSB7XG4gICAgaWYgKHdtaGFzKHN0b3JlLCBpdCkpIHRocm93IG5ldyBUeXBlRXJyb3IoT0JKRUNUX0FMUkVBRFlfSU5JVElBTElaRUQpO1xuICAgIG1ldGFkYXRhLmZhY2FkZSA9IGl0O1xuICAgIHdtc2V0KHN0b3JlLCBpdCwgbWV0YWRhdGEpO1xuICAgIHJldHVybiBtZXRhZGF0YTtcbiAgfTtcbiAgZ2V0ID0gZnVuY3Rpb24gKGl0KSB7XG4gICAgcmV0dXJuIHdtZ2V0KHN0b3JlLCBpdCkgfHwge307XG4gIH07XG4gIGhhcyA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiB3bWhhcyhzdG9yZSwgaXQpO1xuICB9O1xufSBlbHNlIHtcbiAgdmFyIFNUQVRFID0gc2hhcmVkS2V5KCdzdGF0ZScpO1xuICBoaWRkZW5LZXlzW1NUQVRFXSA9IHRydWU7XG4gIHNldCA9IGZ1bmN0aW9uIChpdCwgbWV0YWRhdGEpIHtcbiAgICBpZiAoaGFzT3duKGl0LCBTVEFURSkpIHRocm93IG5ldyBUeXBlRXJyb3IoT0JKRUNUX0FMUkVBRFlfSU5JVElBTElaRUQpO1xuICAgIG1ldGFkYXRhLmZhY2FkZSA9IGl0O1xuICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShpdCwgU1RBVEUsIG1ldGFkYXRhKTtcbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH07XG4gIGdldCA9IGZ1bmN0aW9uIChpdCkge1xuICAgIHJldHVybiBoYXNPd24oaXQsIFNUQVRFKSA/IGl0W1NUQVRFXSA6IHt9O1xuICB9O1xuICBoYXMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgICByZXR1cm4gaGFzT3duKGl0LCBTVEFURSk7XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBzZXQ6IHNldCxcbiAgZ2V0OiBnZXQsXG4gIGhhczogaGFzLFxuICBlbmZvcmNlOiBlbmZvcmNlLFxuICBnZXR0ZXJGb3I6IGdldHRlckZvclxufTtcbiIsInZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBJdGVyYXRvcnMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXRlcmF0b3JzJyk7XG5cbnZhciBJVEVSQVRPUiA9IHdlbGxLbm93blN5bWJvbCgnaXRlcmF0b3InKTtcbnZhciBBcnJheVByb3RvdHlwZSA9IEFycmF5LnByb3RvdHlwZTtcblxuLy8gY2hlY2sgb24gZGVmYXVsdCBBcnJheSBpdGVyYXRvclxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIGl0ICE9PSB1bmRlZmluZWQgJiYgKEl0ZXJhdG9ycy5BcnJheSA9PT0gaXQgfHwgQXJyYXlQcm90b3R5cGVbSVRFUkFUT1JdID09PSBpdCk7XG59O1xuIiwidmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcblxuLy8gYElzQXJyYXlgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1pc2FycmF5XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1hcnJheS1pc2FycmF5IC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiBpc0FycmF5KGFyZ3VtZW50KSB7XG4gIHJldHVybiBjbGFzc29mKGFyZ3VtZW50KSA9PSAnQXJyYXknO1xufTtcbiIsIi8vIGBJc0NhbGxhYmxlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtaXNjYWxsYWJsZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmd1bWVudCA9PSAnZnVuY3Rpb24nO1xufTtcbiIsInZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBjbGFzc29mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NsYXNzb2YnKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGluc3BlY3RTb3VyY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5zcGVjdC1zb3VyY2UnKTtcblxudmFyIG5vb3AgPSBmdW5jdGlvbiAoKSB7IC8qIGVtcHR5ICovIH07XG52YXIgZW1wdHkgPSBbXTtcbnZhciBjb25zdHJ1Y3QgPSBnZXRCdWlsdEluKCdSZWZsZWN0JywgJ2NvbnN0cnVjdCcpO1xudmFyIGNvbnN0cnVjdG9yUmVnRXhwID0gL15cXHMqKD86Y2xhc3N8ZnVuY3Rpb24pXFxiLztcbnZhciBleGVjID0gdW5jdXJyeVRoaXMoY29uc3RydWN0b3JSZWdFeHAuZXhlYyk7XG52YXIgSU5DT1JSRUNUX1RPX1NUUklORyA9ICFjb25zdHJ1Y3RvclJlZ0V4cC5leGVjKG5vb3ApO1xuXG52YXIgaXNDb25zdHJ1Y3Rvck1vZGVybiA9IGZ1bmN0aW9uIGlzQ29uc3RydWN0b3IoYXJndW1lbnQpIHtcbiAgaWYgKCFpc0NhbGxhYmxlKGFyZ3VtZW50KSkgcmV0dXJuIGZhbHNlO1xuICB0cnkge1xuICAgIGNvbnN0cnVjdChub29wLCBlbXB0eSwgYXJndW1lbnQpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxudmFyIGlzQ29uc3RydWN0b3JMZWdhY3kgPSBmdW5jdGlvbiBpc0NvbnN0cnVjdG9yKGFyZ3VtZW50KSB7XG4gIGlmICghaXNDYWxsYWJsZShhcmd1bWVudCkpIHJldHVybiBmYWxzZTtcbiAgc3dpdGNoIChjbGFzc29mKGFyZ3VtZW50KSkge1xuICAgIGNhc2UgJ0FzeW5jRnVuY3Rpb24nOlxuICAgIGNhc2UgJ0dlbmVyYXRvckZ1bmN0aW9uJzpcbiAgICBjYXNlICdBc3luY0dlbmVyYXRvckZ1bmN0aW9uJzogcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgLy8gd2UgY2FuJ3QgY2hlY2sgLnByb3RvdHlwZSBzaW5jZSBjb25zdHJ1Y3RvcnMgcHJvZHVjZWQgYnkgLmJpbmQgaGF2ZW4ndCBpdFxuICAgIC8vIGBGdW5jdGlvbiN0b1N0cmluZ2AgdGhyb3dzIG9uIHNvbWUgYnVpbHQtaXQgZnVuY3Rpb24gaW4gc29tZSBsZWdhY3kgZW5naW5lc1xuICAgIC8vIChmb3IgZXhhbXBsZSwgYERPTVF1YWRgIGFuZCBzaW1pbGFyIGluIEZGNDEtKVxuICAgIHJldHVybiBJTkNPUlJFQ1RfVE9fU1RSSU5HIHx8ICEhZXhlYyhjb25zdHJ1Y3RvclJlZ0V4cCwgaW5zcGVjdFNvdXJjZShhcmd1bWVudCkpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59O1xuXG5pc0NvbnN0cnVjdG9yTGVnYWN5LnNoYW0gPSB0cnVlO1xuXG4vLyBgSXNDb25zdHJ1Y3RvcmAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWlzY29uc3RydWN0b3Jcbm1vZHVsZS5leHBvcnRzID0gIWNvbnN0cnVjdCB8fCBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciBjYWxsZWQ7XG4gIHJldHVybiBpc0NvbnN0cnVjdG9yTW9kZXJuKGlzQ29uc3RydWN0b3JNb2Rlcm4uY2FsbClcbiAgICB8fCAhaXNDb25zdHJ1Y3Rvck1vZGVybihPYmplY3QpXG4gICAgfHwgIWlzQ29uc3RydWN0b3JNb2Rlcm4oZnVuY3Rpb24gKCkgeyBjYWxsZWQgPSB0cnVlOyB9KVxuICAgIHx8IGNhbGxlZDtcbn0pID8gaXNDb25zdHJ1Y3RvckxlZ2FjeSA6IGlzQ29uc3RydWN0b3JNb2Rlcm47XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG5cbnZhciByZXBsYWNlbWVudCA9IC8jfFxcLnByb3RvdHlwZVxcLi87XG5cbnZhciBpc0ZvcmNlZCA9IGZ1bmN0aW9uIChmZWF0dXJlLCBkZXRlY3Rpb24pIHtcbiAgdmFyIHZhbHVlID0gZGF0YVtub3JtYWxpemUoZmVhdHVyZSldO1xuICByZXR1cm4gdmFsdWUgPT0gUE9MWUZJTEwgPyB0cnVlXG4gICAgOiB2YWx1ZSA9PSBOQVRJVkUgPyBmYWxzZVxuICAgIDogaXNDYWxsYWJsZShkZXRlY3Rpb24pID8gZmFpbHMoZGV0ZWN0aW9uKVxuICAgIDogISFkZXRlY3Rpb247XG59O1xuXG52YXIgbm9ybWFsaXplID0gaXNGb3JjZWQubm9ybWFsaXplID0gZnVuY3Rpb24gKHN0cmluZykge1xuICByZXR1cm4gU3RyaW5nKHN0cmluZykucmVwbGFjZShyZXBsYWNlbWVudCwgJy4nKS50b0xvd2VyQ2FzZSgpO1xufTtcblxudmFyIGRhdGEgPSBpc0ZvcmNlZC5kYXRhID0ge307XG52YXIgTkFUSVZFID0gaXNGb3JjZWQuTkFUSVZFID0gJ04nO1xudmFyIFBPTFlGSUxMID0gaXNGb3JjZWQuUE9MWUZJTEwgPSAnUCc7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNGb3JjZWQ7XG4iLCJ2YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdvYmplY3QnID8gaXQgIT09IG51bGwgOiBpc0NhbGxhYmxlKGl0KTtcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IGZhbHNlO1xuIiwidmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIE1BVENIID0gd2VsbEtub3duU3ltYm9sKCdtYXRjaCcpO1xuXG4vLyBgSXNSZWdFeHBgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1pc3JlZ2V4cFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgdmFyIGlzUmVnRXhwO1xuICByZXR1cm4gaXNPYmplY3QoaXQpICYmICgoaXNSZWdFeHAgPSBpdFtNQVRDSF0pICE9PSB1bmRlZmluZWQgPyAhIWlzUmVnRXhwIDogY2xhc3NvZihpdCkgPT0gJ1JlZ0V4cCcpO1xufTtcbiIsInZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBpc1Byb3RvdHlwZU9mID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1pcy1wcm90b3R5cGUtb2YnKTtcbnZhciBVU0VfU1lNQk9MX0FTX1VJRCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91c2Utc3ltYm9sLWFzLXVpZCcpO1xuXG52YXIgJE9iamVjdCA9IE9iamVjdDtcblxubW9kdWxlLmV4cG9ydHMgPSBVU0VfU1lNQk9MX0FTX1VJRCA/IGZ1bmN0aW9uIChpdCkge1xuICByZXR1cm4gdHlwZW9mIGl0ID09ICdzeW1ib2wnO1xufSA6IGZ1bmN0aW9uIChpdCkge1xuICB2YXIgJFN5bWJvbCA9IGdldEJ1aWx0SW4oJ1N5bWJvbCcpO1xuICByZXR1cm4gaXNDYWxsYWJsZSgkU3ltYm9sKSAmJiBpc1Byb3RvdHlwZU9mKCRTeW1ib2wucHJvdG90eXBlLCAkT2JqZWN0KGl0KSk7XG59O1xuIiwidmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGdldE1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtbWV0aG9kJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0ZXJhdG9yLCBraW5kLCB2YWx1ZSkge1xuICB2YXIgaW5uZXJSZXN1bHQsIGlubmVyRXJyb3I7XG4gIGFuT2JqZWN0KGl0ZXJhdG9yKTtcbiAgdHJ5IHtcbiAgICBpbm5lclJlc3VsdCA9IGdldE1ldGhvZChpdGVyYXRvciwgJ3JldHVybicpO1xuICAgIGlmICghaW5uZXJSZXN1bHQpIHtcbiAgICAgIGlmIChraW5kID09PSAndGhyb3cnKSB0aHJvdyB2YWx1ZTtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgaW5uZXJSZXN1bHQgPSBjYWxsKGlubmVyUmVzdWx0LCBpdGVyYXRvcik7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgaW5uZXJFcnJvciA9IHRydWU7XG4gICAgaW5uZXJSZXN1bHQgPSBlcnJvcjtcbiAgfVxuICBpZiAoa2luZCA9PT0gJ3Rocm93JykgdGhyb3cgdmFsdWU7XG4gIGlmIChpbm5lckVycm9yKSB0aHJvdyBpbm5lclJlc3VsdDtcbiAgYW5PYmplY3QoaW5uZXJSZXN1bHQpO1xuICByZXR1cm4gdmFsdWU7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgZ2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1wcm90b3R5cGUtb2YnKTtcbnZhciBkZWZpbmVCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbicpO1xudmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xuXG52YXIgSVRFUkFUT1IgPSB3ZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG52YXIgQlVHR1lfU0FGQVJJX0lURVJBVE9SUyA9IGZhbHNlO1xuXG4vLyBgJUl0ZXJhdG9yUHJvdG90eXBlJWAgb2JqZWN0XG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSVpdGVyYXRvcnByb3RvdHlwZSUtb2JqZWN0XG52YXIgSXRlcmF0b3JQcm90b3R5cGUsIFByb3RvdHlwZU9mQXJyYXlJdGVyYXRvclByb3RvdHlwZSwgYXJyYXlJdGVyYXRvcjtcblxuLyogZXNsaW50LWRpc2FibGUgZXMteC9uby1hcnJheS1wcm90b3R5cGUta2V5cyAtLSBzYWZlICovXG5pZiAoW10ua2V5cykge1xuICBhcnJheUl0ZXJhdG9yID0gW10ua2V5cygpO1xuICAvLyBTYWZhcmkgOCBoYXMgYnVnZ3kgaXRlcmF0b3JzIHcvbyBgbmV4dGBcbiAgaWYgKCEoJ25leHQnIGluIGFycmF5SXRlcmF0b3IpKSBCVUdHWV9TQUZBUklfSVRFUkFUT1JTID0gdHJ1ZTtcbiAgZWxzZSB7XG4gICAgUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlID0gZ2V0UHJvdG90eXBlT2YoZ2V0UHJvdG90eXBlT2YoYXJyYXlJdGVyYXRvcikpO1xuICAgIGlmIChQcm90b3R5cGVPZkFycmF5SXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUpIEl0ZXJhdG9yUHJvdG90eXBlID0gUHJvdG90eXBlT2ZBcnJheUl0ZXJhdG9yUHJvdG90eXBlO1xuICB9XG59XG5cbnZhciBORVdfSVRFUkFUT1JfUFJPVE9UWVBFID0gSXRlcmF0b3JQcm90b3R5cGUgPT0gdW5kZWZpbmVkIHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHRlc3QgPSB7fTtcbiAgLy8gRkY0NC0gbGVnYWN5IGl0ZXJhdG9ycyBjYXNlXG4gIHJldHVybiBJdGVyYXRvclByb3RvdHlwZVtJVEVSQVRPUl0uY2FsbCh0ZXN0KSAhPT0gdGVzdDtcbn0pO1xuXG5pZiAoTkVXX0lURVJBVE9SX1BST1RPVFlQRSkgSXRlcmF0b3JQcm90b3R5cGUgPSB7fTtcbmVsc2UgaWYgKElTX1BVUkUpIEl0ZXJhdG9yUHJvdG90eXBlID0gY3JlYXRlKEl0ZXJhdG9yUHJvdG90eXBlKTtcblxuLy8gYCVJdGVyYXRvclByb3RvdHlwZSVbQEBpdGVyYXRvcl0oKWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSVpdGVyYXRvcnByb3RvdHlwZSUtQEBpdGVyYXRvclxuaWYgKCFpc0NhbGxhYmxlKEl0ZXJhdG9yUHJvdG90eXBlW0lURVJBVE9SXSkpIHtcbiAgZGVmaW5lQnVpbHRJbihJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IsIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBJdGVyYXRvclByb3RvdHlwZTogSXRlcmF0b3JQcm90b3R5cGUsXG4gIEJVR0dZX1NBRkFSSV9JVEVSQVRPUlM6IEJVR0dZX1NBRkFSSV9JVEVSQVRPUlNcbn07XG4iLCJtb2R1bGUuZXhwb3J0cyA9IHt9O1xuIiwidmFyIHRvTGVuZ3RoID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWxlbmd0aCcpO1xuXG4vLyBgTGVuZ3RoT2ZBcnJheUxpa2VgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1sZW5ndGhvZmFycmF5bGlrZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqKSB7XG4gIHJldHVybiB0b0xlbmd0aChvYmoubGVuZ3RoKTtcbn07XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIENPTkZJR1VSQUJMRV9GVU5DVElPTl9OQU1FID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLW5hbWUnKS5DT05GSUdVUkFCTEU7XG52YXIgaW5zcGVjdFNvdXJjZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnNwZWN0LXNvdXJjZScpO1xudmFyIEludGVybmFsU3RhdGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKTtcblxudmFyIGVuZm9yY2VJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5lbmZvcmNlO1xudmFyIGdldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldDtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSBzYWZlXG52YXIgZGVmaW5lUHJvcGVydHkgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7XG5cbnZhciBDT05GSUdVUkFCTEVfTEVOR1RIID0gREVTQ1JJUFRPUlMgJiYgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIGRlZmluZVByb3BlcnR5KGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfSwgJ2xlbmd0aCcsIHsgdmFsdWU6IDggfSkubGVuZ3RoICE9PSA4O1xufSk7XG5cbnZhciBURU1QTEFURSA9IFN0cmluZyhTdHJpbmcpLnNwbGl0KCdTdHJpbmcnKTtcblxudmFyIG1ha2VCdWlsdEluID0gbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodmFsdWUsIG5hbWUsIG9wdGlvbnMpIHtcbiAgaWYgKFN0cmluZyhuYW1lKS5zbGljZSgwLCA3KSA9PT0gJ1N5bWJvbCgnKSB7XG4gICAgbmFtZSA9ICdbJyArIFN0cmluZyhuYW1lKS5yZXBsYWNlKC9eU3ltYm9sXFwoKFteKV0qKVxcKS8sICckMScpICsgJ10nO1xuICB9XG4gIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZ2V0dGVyKSBuYW1lID0gJ2dldCAnICsgbmFtZTtcbiAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5zZXR0ZXIpIG5hbWUgPSAnc2V0ICcgKyBuYW1lO1xuICBpZiAoIWhhc093bih2YWx1ZSwgJ25hbWUnKSB8fCAoQ09ORklHVVJBQkxFX0ZVTkNUSU9OX05BTUUgJiYgdmFsdWUubmFtZSAhPT0gbmFtZSkpIHtcbiAgICBpZiAoREVTQ1JJUFRPUlMpIGRlZmluZVByb3BlcnR5KHZhbHVlLCAnbmFtZScsIHsgdmFsdWU6IG5hbWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSB9KTtcbiAgICBlbHNlIHZhbHVlLm5hbWUgPSBuYW1lO1xuICB9XG4gIGlmIChDT05GSUdVUkFCTEVfTEVOR1RIICYmIG9wdGlvbnMgJiYgaGFzT3duKG9wdGlvbnMsICdhcml0eScpICYmIHZhbHVlLmxlbmd0aCAhPT0gb3B0aW9ucy5hcml0eSkge1xuICAgIGRlZmluZVByb3BlcnR5KHZhbHVlLCAnbGVuZ3RoJywgeyB2YWx1ZTogb3B0aW9ucy5hcml0eSB9KTtcbiAgfVxuICB0cnkge1xuICAgIGlmIChvcHRpb25zICYmIGhhc093bihvcHRpb25zLCAnY29uc3RydWN0b3InKSAmJiBvcHRpb25zLmNvbnN0cnVjdG9yKSB7XG4gICAgICBpZiAoREVTQ1JJUFRPUlMpIGRlZmluZVByb3BlcnR5KHZhbHVlLCAncHJvdG90eXBlJywgeyB3cml0YWJsZTogZmFsc2UgfSk7XG4gICAgLy8gaW4gVjggfiBDaHJvbWUgNTMsIHByb3RvdHlwZXMgb2Ygc29tZSBtZXRob2RzLCBsaWtlIGBBcnJheS5wcm90b3R5cGUudmFsdWVzYCwgYXJlIG5vbi13cml0YWJsZVxuICAgIH0gZWxzZSBpZiAodmFsdWUucHJvdG90eXBlKSB2YWx1ZS5wcm90b3R5cGUgPSB1bmRlZmluZWQ7XG4gIH0gY2F0Y2ggKGVycm9yKSB7IC8qIGVtcHR5ICovIH1cbiAgdmFyIHN0YXRlID0gZW5mb3JjZUludGVybmFsU3RhdGUodmFsdWUpO1xuICBpZiAoIWhhc093bihzdGF0ZSwgJ3NvdXJjZScpKSB7XG4gICAgc3RhdGUuc291cmNlID0gVEVNUExBVEUuam9pbih0eXBlb2YgbmFtZSA9PSAnc3RyaW5nJyA/IG5hbWUgOiAnJyk7XG4gIH0gcmV0dXJuIHZhbHVlO1xufTtcblxuLy8gYWRkIGZha2UgRnVuY3Rpb24jdG9TdHJpbmcgZm9yIGNvcnJlY3Qgd29yayB3cmFwcGVkIG1ldGhvZHMgLyBjb25zdHJ1Y3RvcnMgd2l0aCBtZXRob2RzIGxpa2UgTG9EYXNoIGlzTmF0aXZlXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZXh0ZW5kLW5hdGl2ZSAtLSByZXF1aXJlZFxuRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nID0gbWFrZUJ1aWx0SW4oZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gIHJldHVybiBpc0NhbGxhYmxlKHRoaXMpICYmIGdldEludGVybmFsU3RhdGUodGhpcykuc291cmNlIHx8IGluc3BlY3RTb3VyY2UodGhpcyk7XG59LCAndG9TdHJpbmcnKTtcbiIsInZhciBjZWlsID0gTWF0aC5jZWlsO1xudmFyIGZsb29yID0gTWF0aC5mbG9vcjtcblxuLy8gYE1hdGgudHJ1bmNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1tYXRoLnRydW5jXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1tYXRoLXRydW5jIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gTWF0aC50cnVuYyB8fCBmdW5jdGlvbiB0cnVuYyh4KSB7XG4gIHZhciBuID0gK3g7XG4gIHJldHVybiAobiA+IDAgPyBmbG9vciA6IGNlaWwpKG4pO1xufTtcbiIsInZhciBOQVRJVkVfU1lNQk9MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS1zeW1ib2wnKTtcblxuLyogZXNsaW50LWRpc2FibGUgZXMteC9uby1zeW1ib2wgLS0gc2FmZSAqL1xubW9kdWxlLmV4cG9ydHMgPSBOQVRJVkVfU1lNQk9MICYmICEhU3ltYm9sWydmb3InXSAmJiAhIVN5bWJvbC5rZXlGb3I7XG4iLCIvKiBlc2xpbnQtZGlzYWJsZSBlcy14L25vLXN5bWJvbCAtLSByZXF1aXJlZCBmb3IgdGVzdGluZyAqL1xudmFyIFY4X1ZFUlNJT04gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLXY4LXZlcnNpb24nKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1vYmplY3QtZ2V0b3ducHJvcGVydHlzeW1ib2xzIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG5tb2R1bGUuZXhwb3J0cyA9ICEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyAmJiAhZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgc3ltYm9sID0gU3ltYm9sKCk7XG4gIC8vIENocm9tZSAzOCBTeW1ib2wgaGFzIGluY29ycmVjdCB0b1N0cmluZyBjb252ZXJzaW9uXG4gIC8vIGBnZXQtb3duLXByb3BlcnR5LXN5bWJvbHNgIHBvbHlmaWxsIHN5bWJvbHMgY29udmVydGVkIHRvIG9iamVjdCBhcmUgbm90IFN5bWJvbCBpbnN0YW5jZXNcbiAgcmV0dXJuICFTdHJpbmcoc3ltYm9sKSB8fCAhKE9iamVjdChzeW1ib2wpIGluc3RhbmNlb2YgU3ltYm9sKSB8fFxuICAgIC8vIENocm9tZSAzOC00MCBzeW1ib2xzIGFyZSBub3QgaW5oZXJpdGVkIGZyb20gRE9NIGNvbGxlY3Rpb25zIHByb3RvdHlwZXMgdG8gaW5zdGFuY2VzXG4gICAgIVN5bWJvbC5zaGFtICYmIFY4X1ZFUlNJT04gJiYgVjhfVkVSU0lPTiA8IDQxO1xufSk7XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciBpbnNwZWN0U291cmNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luc3BlY3Qtc291cmNlJyk7XG5cbnZhciBXZWFrTWFwID0gZ2xvYmFsLldlYWtNYXA7XG5cbm1vZHVsZS5leHBvcnRzID0gaXNDYWxsYWJsZShXZWFrTWFwKSAmJiAvbmF0aXZlIGNvZGUvLnRlc3QoaW5zcGVjdFNvdXJjZShXZWFrTWFwKSk7XG4iLCJ2YXIgaXNSZWdFeHAgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcmVnZXhwJyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkge1xuICBpZiAoaXNSZWdFeHAoaXQpKSB7XG4gICAgdGhyb3cgJFR5cGVFcnJvcihcIlRoZSBtZXRob2QgZG9lc24ndCBhY2NlcHQgcmVndWxhciBleHByZXNzaW9uc1wiKTtcbiAgfSByZXR1cm4gaXQ7XG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBvYmplY3RLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1rZXlzJyk7XG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMnKTtcbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtcHJvcGVydHktaXMtZW51bWVyYWJsZScpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIEluZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW5kZXhlZC1vYmplY3QnKTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWFzc2lnbiAtLSBzYWZlXG52YXIgJGFzc2lnbiA9IE9iamVjdC5hc3NpZ247XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1vYmplY3QtZGVmaW5lcHJvcGVydHkgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTtcbnZhciBjb25jYXQgPSB1bmN1cnJ5VGhpcyhbXS5jb25jYXQpO1xuXG4vLyBgT2JqZWN0LmFzc2lnbmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5hc3NpZ25cbm1vZHVsZS5leHBvcnRzID0gISRhc3NpZ24gfHwgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBzaG91bGQgaGF2ZSBjb3JyZWN0IG9yZGVyIG9mIG9wZXJhdGlvbnMgKEVkZ2UgYnVnKVxuICBpZiAoREVTQ1JJUFRPUlMgJiYgJGFzc2lnbih7IGI6IDEgfSwgJGFzc2lnbihkZWZpbmVQcm9wZXJ0eSh7fSwgJ2EnLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGRlZmluZVByb3BlcnR5KHRoaXMsICdiJywge1xuICAgICAgICB2YWx1ZTogMyxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2VcbiAgICAgIH0pO1xuICAgIH1cbiAgfSksIHsgYjogMiB9KSkuYiAhPT0gMSkgcmV0dXJuIHRydWU7XG4gIC8vIHNob3VsZCB3b3JrIHdpdGggc3ltYm9scyBhbmQgc2hvdWxkIGhhdmUgZGV0ZXJtaW5pc3RpYyBwcm9wZXJ0eSBvcmRlciAoVjggYnVnKVxuICB2YXIgQSA9IHt9O1xuICB2YXIgQiA9IHt9O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1zeW1ib2wgLS0gc2FmZVxuICB2YXIgc3ltYm9sID0gU3ltYm9sKCk7XG4gIHZhciBhbHBoYWJldCA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdCc7XG4gIEFbc3ltYm9sXSA9IDc7XG4gIGFscGhhYmV0LnNwbGl0KCcnKS5mb3JFYWNoKGZ1bmN0aW9uIChjaHIpIHsgQltjaHJdID0gY2hyOyB9KTtcbiAgcmV0dXJuICRhc3NpZ24oe30sIEEpW3N5bWJvbF0gIT0gNyB8fCBvYmplY3RLZXlzKCRhc3NpZ24oe30sIEIpKS5qb2luKCcnKSAhPSBhbHBoYWJldDtcbn0pID8gZnVuY3Rpb24gYXNzaWduKHRhcmdldCwgc291cmNlKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW51c2VkLXZhcnMgLS0gcmVxdWlyZWQgZm9yIGAubGVuZ3RoYFxuICB2YXIgVCA9IHRvT2JqZWN0KHRhcmdldCk7XG4gIHZhciBhcmd1bWVudHNMZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoO1xuICB2YXIgaW5kZXggPSAxO1xuICB2YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzTW9kdWxlLmY7XG4gIHZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IHByb3BlcnR5SXNFbnVtZXJhYmxlTW9kdWxlLmY7XG4gIHdoaWxlIChhcmd1bWVudHNMZW5ndGggPiBpbmRleCkge1xuICAgIHZhciBTID0gSW5kZXhlZE9iamVjdChhcmd1bWVudHNbaW5kZXgrK10pO1xuICAgIHZhciBrZXlzID0gZ2V0T3duUHJvcGVydHlTeW1ib2xzID8gY29uY2F0KG9iamVjdEtleXMoUyksIGdldE93blByb3BlcnR5U3ltYm9scyhTKSkgOiBvYmplY3RLZXlzKFMpO1xuICAgIHZhciBsZW5ndGggPSBrZXlzLmxlbmd0aDtcbiAgICB2YXIgaiA9IDA7XG4gICAgdmFyIGtleTtcbiAgICB3aGlsZSAobGVuZ3RoID4gaikge1xuICAgICAga2V5ID0ga2V5c1tqKytdO1xuICAgICAgaWYgKCFERVNDUklQVE9SUyB8fCBjYWxsKHByb3BlcnR5SXNFbnVtZXJhYmxlLCBTLCBrZXkpKSBUW2tleV0gPSBTW2tleV07XG4gICAgfVxuICB9IHJldHVybiBUO1xufSA6ICRhc3NpZ247XG4iLCIvKiBnbG9iYWwgQWN0aXZlWE9iamVjdCAtLSBvbGQgSUUsIFdTSCAqL1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGRlZmluZVByb3BlcnRpZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0aWVzJyk7XG52YXIgZW51bUJ1Z0tleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW51bS1idWcta2V5cycpO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcbnZhciBodG1sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2h0bWwnKTtcbnZhciBkb2N1bWVudENyZWF0ZUVsZW1lbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZG9jdW1lbnQtY3JlYXRlLWVsZW1lbnQnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xuXG52YXIgR1QgPSAnPic7XG52YXIgTFQgPSAnPCc7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG52YXIgU0NSSVBUID0gJ3NjcmlwdCc7XG52YXIgSUVfUFJPVE8gPSBzaGFyZWRLZXkoJ0lFX1BST1RPJyk7XG5cbnZhciBFbXB0eUNvbnN0cnVjdG9yID0gZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9O1xuXG52YXIgc2NyaXB0VGFnID0gZnVuY3Rpb24gKGNvbnRlbnQpIHtcbiAgcmV0dXJuIExUICsgU0NSSVBUICsgR1QgKyBjb250ZW50ICsgTFQgKyAnLycgKyBTQ1JJUFQgKyBHVDtcbn07XG5cbi8vIENyZWF0ZSBvYmplY3Qgd2l0aCBmYWtlIGBudWxsYCBwcm90b3R5cGU6IHVzZSBBY3RpdmVYIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWCA9IGZ1bmN0aW9uIChhY3RpdmVYRG9jdW1lbnQpIHtcbiAgYWN0aXZlWERvY3VtZW50LndyaXRlKHNjcmlwdFRhZygnJykpO1xuICBhY3RpdmVYRG9jdW1lbnQuY2xvc2UoKTtcbiAgdmFyIHRlbXAgPSBhY3RpdmVYRG9jdW1lbnQucGFyZW50V2luZG93Lk9iamVjdDtcbiAgYWN0aXZlWERvY3VtZW50ID0gbnVsbDsgLy8gYXZvaWQgbWVtb3J5IGxlYWtcbiAgcmV0dXJuIHRlbXA7XG59O1xuXG4vLyBDcmVhdGUgb2JqZWN0IHdpdGggZmFrZSBgbnVsbGAgcHJvdG90eXBlOiB1c2UgaWZyYW1lIE9iamVjdCB3aXRoIGNsZWFyZWQgcHJvdG90eXBlXG52YXIgTnVsbFByb3RvT2JqZWN0VmlhSUZyYW1lID0gZnVuY3Rpb24gKCkge1xuICAvLyBUaHJhc2gsIHdhc3RlIGFuZCBzb2RvbXk6IElFIEdDIGJ1Z1xuICB2YXIgaWZyYW1lID0gZG9jdW1lbnRDcmVhdGVFbGVtZW50KCdpZnJhbWUnKTtcbiAgdmFyIEpTID0gJ2phdmEnICsgU0NSSVBUICsgJzonO1xuICB2YXIgaWZyYW1lRG9jdW1lbnQ7XG4gIGlmcmFtZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICBodG1sLmFwcGVuZENoaWxkKGlmcmFtZSk7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy80NzVcbiAgaWZyYW1lLnNyYyA9IFN0cmluZyhKUyk7XG4gIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7XG4gIGlmcmFtZURvY3VtZW50Lm9wZW4oKTtcbiAgaWZyYW1lRG9jdW1lbnQud3JpdGUoc2NyaXB0VGFnKCdkb2N1bWVudC5GPU9iamVjdCcpKTtcbiAgaWZyYW1lRG9jdW1lbnQuY2xvc2UoKTtcbiAgcmV0dXJuIGlmcmFtZURvY3VtZW50LkY7XG59O1xuXG4vLyBDaGVjayBmb3IgZG9jdW1lbnQuZG9tYWluIGFuZCBhY3RpdmUgeCBzdXBwb3J0XG4vLyBObyBuZWVkIHRvIHVzZSBhY3RpdmUgeCBhcHByb2FjaCB3aGVuIGRvY3VtZW50LmRvbWFpbiBpcyBub3Qgc2V0XG4vLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2VzLXNoaW1zL2VzNS1zaGltL2lzc3Vlcy8xNTBcbi8vIHZhcmlhdGlvbiBvZiBodHRwczovL2dpdGh1Yi5jb20va2l0Y2FtYnJpZGdlL2VzNS1zaGltL2NvbW1pdC80ZjczOGFjMDY2MzQ2XG4vLyBhdm9pZCBJRSBHQyBidWdcbnZhciBhY3RpdmVYRG9jdW1lbnQ7XG52YXIgTnVsbFByb3RvT2JqZWN0ID0gZnVuY3Rpb24gKCkge1xuICB0cnkge1xuICAgIGFjdGl2ZVhEb2N1bWVudCA9IG5ldyBBY3RpdmVYT2JqZWN0KCdodG1sZmlsZScpO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBpZ25vcmUgKi8gfVxuICBOdWxsUHJvdG9PYmplY3QgPSB0eXBlb2YgZG9jdW1lbnQgIT0gJ3VuZGVmaW5lZCdcbiAgICA/IGRvY3VtZW50LmRvbWFpbiAmJiBhY3RpdmVYRG9jdW1lbnRcbiAgICAgID8gTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhY3RpdmVYRG9jdW1lbnQpIC8vIG9sZCBJRVxuICAgICAgOiBOdWxsUHJvdG9PYmplY3RWaWFJRnJhbWUoKVxuICAgIDogTnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhY3RpdmVYRG9jdW1lbnQpOyAvLyBXU0hcbiAgdmFyIGxlbmd0aCA9IGVudW1CdWdLZXlzLmxlbmd0aDtcbiAgd2hpbGUgKGxlbmd0aC0tKSBkZWxldGUgTnVsbFByb3RvT2JqZWN0W1BST1RPVFlQRV1bZW51bUJ1Z0tleXNbbGVuZ3RoXV07XG4gIHJldHVybiBOdWxsUHJvdG9PYmplY3QoKTtcbn07XG5cbmhpZGRlbktleXNbSUVfUFJPVE9dID0gdHJ1ZTtcblxuLy8gYE9iamVjdC5jcmVhdGVgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuY3JlYXRlXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1vYmplY3QtY3JlYXRlIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmNyZWF0ZSB8fCBmdW5jdGlvbiBjcmVhdGUoTywgUHJvcGVydGllcykge1xuICB2YXIgcmVzdWx0O1xuICBpZiAoTyAhPT0gbnVsbCkge1xuICAgIEVtcHR5Q29uc3RydWN0b3JbUFJPVE9UWVBFXSA9IGFuT2JqZWN0KE8pO1xuICAgIHJlc3VsdCA9IG5ldyBFbXB0eUNvbnN0cnVjdG9yKCk7XG4gICAgRW1wdHlDb25zdHJ1Y3RvcltQUk9UT1RZUEVdID0gbnVsbDtcbiAgICAvLyBhZGQgXCJfX3Byb3RvX19cIiBmb3IgT2JqZWN0LmdldFByb3RvdHlwZU9mIHBvbHlmaWxsXG4gICAgcmVzdWx0W0lFX1BST1RPXSA9IE87XG4gIH0gZWxzZSByZXN1bHQgPSBOdWxsUHJvdG9PYmplY3QoKTtcbiAgcmV0dXJuIFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCA/IHJlc3VsdCA6IGRlZmluZVByb3BlcnRpZXNNb2R1bGUuZihyZXN1bHQsIFByb3BlcnRpZXMpO1xufTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIFY4X1BST1RPVFlQRV9ERUZJTkVfQlVHID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3Y4LXByb3RvdHlwZS1kZWZpbmUtYnVnJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIG9iamVjdEtleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWtleXMnKTtcblxuLy8gYE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnRpZXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0aWVzIC0tIHNhZmVcbmV4cG9ydHMuZiA9IERFU0NSSVBUT1JTICYmICFWOF9QUk9UT1RZUEVfREVGSU5FX0JVRyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzIDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICB2YXIgcHJvcHMgPSB0b0luZGV4ZWRPYmplY3QoUHJvcGVydGllcyk7XG4gIHZhciBrZXlzID0gb2JqZWN0S2V5cyhQcm9wZXJ0aWVzKTtcbiAgdmFyIGxlbmd0aCA9IGtleXMubGVuZ3RoO1xuICB2YXIgaW5kZXggPSAwO1xuICB2YXIga2V5O1xuICB3aGlsZSAobGVuZ3RoID4gaW5kZXgpIGRlZmluZVByb3BlcnR5TW9kdWxlLmYoTywga2V5ID0ga2V5c1tpbmRleCsrXSwgcHJvcHNba2V5XSk7XG4gIHJldHVybiBPO1xufTtcbiIsInZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIElFOF9ET01fREVGSU5FID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2llOC1kb20tZGVmaW5lJyk7XG52YXIgVjhfUFJPVE9UWVBFX0RFRklORV9CVUcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdjgtcHJvdG90eXBlLWRlZmluZS1idWcnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciB0b1Byb3BlcnR5S2V5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByb3BlcnR5LWtleScpO1xuXG52YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSBzYWZlXG52YXIgJGRlZmluZVByb3BlcnR5ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG52YXIgJGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG52YXIgRU5VTUVSQUJMRSA9ICdlbnVtZXJhYmxlJztcbnZhciBDT05GSUdVUkFCTEUgPSAnY29uZmlndXJhYmxlJztcbnZhciBXUklUQUJMRSA9ICd3cml0YWJsZSc7XG5cbi8vIGBPYmplY3QuZGVmaW5lUHJvcGVydHlgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZGVmaW5lcHJvcGVydHlcbmV4cG9ydHMuZiA9IERFU0NSSVBUT1JTID8gVjhfUFJPVE9UWVBFX0RFRklORV9CVUcgPyBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9Qcm9wZXJ0eUtleShQKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmICh0eXBlb2YgTyA9PT0gJ2Z1bmN0aW9uJyAmJiBQID09PSAncHJvdG90eXBlJyAmJiAndmFsdWUnIGluIEF0dHJpYnV0ZXMgJiYgV1JJVEFCTEUgaW4gQXR0cmlidXRlcyAmJiAhQXR0cmlidXRlc1tXUklUQUJMRV0pIHtcbiAgICB2YXIgY3VycmVudCA9ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCk7XG4gICAgaWYgKGN1cnJlbnQgJiYgY3VycmVudFtXUklUQUJMRV0pIHtcbiAgICAgIE9bUF0gPSBBdHRyaWJ1dGVzLnZhbHVlO1xuICAgICAgQXR0cmlidXRlcyA9IHtcbiAgICAgICAgY29uZmlndXJhYmxlOiBDT05GSUdVUkFCTEUgaW4gQXR0cmlidXRlcyA/IEF0dHJpYnV0ZXNbQ09ORklHVVJBQkxFXSA6IGN1cnJlbnRbQ09ORklHVVJBQkxFXSxcbiAgICAgICAgZW51bWVyYWJsZTogRU5VTUVSQUJMRSBpbiBBdHRyaWJ1dGVzID8gQXR0cmlidXRlc1tFTlVNRVJBQkxFXSA6IGN1cnJlbnRbRU5VTUVSQUJMRV0sXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZVxuICAgICAgfTtcbiAgICB9XG4gIH0gcmV0dXJuICRkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKTtcbn0gOiAkZGVmaW5lUHJvcGVydHkgOiBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGFuT2JqZWN0KE8pO1xuICBQID0gdG9Qcm9wZXJ0eUtleShQKTtcbiAgYW5PYmplY3QoQXR0cmlidXRlcyk7XG4gIGlmIChJRThfRE9NX0RFRklORSkgdHJ5IHtcbiAgICByZXR1cm4gJGRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIGlmICgnZ2V0JyBpbiBBdHRyaWJ1dGVzIHx8ICdzZXQnIGluIEF0dHJpYnV0ZXMpIHRocm93ICRUeXBlRXJyb3IoJ0FjY2Vzc29ycyBub3Qgc3VwcG9ydGVkJyk7XG4gIGlmICgndmFsdWUnIGluIEF0dHJpYnV0ZXMpIE9bUF0gPSBBdHRyaWJ1dGVzLnZhbHVlO1xuICByZXR1cm4gTztcbn07XG4iLCJ2YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtcHJvcGVydHktaXMtZW51bWVyYWJsZScpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvUHJvcGVydHlLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJvcGVydHkta2V5Jyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBJRThfRE9NX0RFRklORSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pZTgtZG9tLWRlZmluZScpO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1vYmplY3QtZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yIC0tIHNhZmVcbnZhciAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtcblxuLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yXG5leHBvcnRzLmYgPSBERVNDUklQVE9SUyA/ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCkge1xuICBPID0gdG9JbmRleGVkT2JqZWN0KE8pO1xuICBQID0gdG9Qcm9wZXJ0eUtleShQKTtcbiAgaWYgKElFOF9ET01fREVGSU5FKSB0cnkge1xuICAgIHJldHVybiAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE8sIFApO1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIGlmIChoYXNPd24oTywgUCkpIHJldHVybiBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoIWNhbGwocHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUuZiwgTywgUCksIE9bUF0pO1xufTtcbiIsIi8qIGVzbGludC1kaXNhYmxlIGVzLXgvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5bmFtZXMgLS0gc2FmZSAqL1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciAkZ2V0T3duUHJvcGVydHlOYW1lcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1uYW1lcycpLmY7XG52YXIgYXJyYXlTbGljZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1zbGljZS1zaW1wbGUnKTtcblxudmFyIHdpbmRvd05hbWVzID0gdHlwZW9mIHdpbmRvdyA9PSAnb2JqZWN0JyAmJiB3aW5kb3cgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXNcbiAgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh3aW5kb3cpIDogW107XG5cbnZhciBnZXRXaW5kb3dOYW1lcyA9IGZ1bmN0aW9uIChpdCkge1xuICB0cnkge1xuICAgIHJldHVybiAkZ2V0T3duUHJvcGVydHlOYW1lcyhpdCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmV0dXJuIGFycmF5U2xpY2Uod2luZG93TmFtZXMpO1xuICB9XG59O1xuXG4vLyBmYWxsYmFjayBmb3IgSUUxMSBidWdneSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB3aXRoIGlmcmFtZSBhbmQgd2luZG93XG5tb2R1bGUuZXhwb3J0cy5mID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhpdCkge1xuICByZXR1cm4gd2luZG93TmFtZXMgJiYgY2xhc3NvZihpdCkgPT0gJ1dpbmRvdydcbiAgICA/IGdldFdpbmRvd05hbWVzKGl0KVxuICAgIDogJGdldE93blByb3BlcnR5TmFtZXModG9JbmRleGVkT2JqZWN0KGl0KSk7XG59O1xuIiwidmFyIGludGVybmFsT2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cy1pbnRlcm5hbCcpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VudW0tYnVnLWtleXMnKTtcblxudmFyIGhpZGRlbktleXMgPSBlbnVtQnVnS2V5cy5jb25jYXQoJ2xlbmd0aCcsICdwcm90b3R5cGUnKTtcblxuLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5bmFtZXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eW5hbWVzIC0tIHNhZmVcbmV4cG9ydHMuZiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uIGdldE93blByb3BlcnR5TmFtZXMoTykge1xuICByZXR1cm4gaW50ZXJuYWxPYmplY3RLZXlzKE8sIGhpZGRlbktleXMpO1xufTtcbiIsIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eXN5bWJvbHMgLS0gc2FmZVxuZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scztcbiIsInZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xudmFyIENPUlJFQ1RfUFJPVE9UWVBFX0dFVFRFUiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb3JyZWN0LXByb3RvdHlwZS1nZXR0ZXInKTtcblxudmFyIElFX1BST1RPID0gc2hhcmVkS2V5KCdJRV9QUk9UTycpO1xudmFyICRPYmplY3QgPSBPYmplY3Q7XG52YXIgT2JqZWN0UHJvdG90eXBlID0gJE9iamVjdC5wcm90b3R5cGU7XG5cbi8vIGBPYmplY3QuZ2V0UHJvdG90eXBlT2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0cHJvdG90eXBlb2Zcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1nZXRwcm90b3R5cGVvZiAtLSBzYWZlXG5tb2R1bGUuZXhwb3J0cyA9IENPUlJFQ1RfUFJPVE9UWVBFX0dFVFRFUiA/ICRPYmplY3QuZ2V0UHJvdG90eXBlT2YgOiBmdW5jdGlvbiAoTykge1xuICB2YXIgb2JqZWN0ID0gdG9PYmplY3QoTyk7XG4gIGlmIChoYXNPd24ob2JqZWN0LCBJRV9QUk9UTykpIHJldHVybiBvYmplY3RbSUVfUFJPVE9dO1xuICB2YXIgY29uc3RydWN0b3IgPSBvYmplY3QuY29uc3RydWN0b3I7XG4gIGlmIChpc0NhbGxhYmxlKGNvbnN0cnVjdG9yKSAmJiBvYmplY3QgaW5zdGFuY2VvZiBjb25zdHJ1Y3Rvcikge1xuICAgIHJldHVybiBjb25zdHJ1Y3Rvci5wcm90b3R5cGU7XG4gIH0gcmV0dXJuIG9iamVjdCBpbnN0YW5jZW9mICRPYmplY3QgPyBPYmplY3RQcm90b3R5cGUgOiBudWxsO1xufTtcbiIsInZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZi1yYXcnKTtcbnZhciBBUlJBWV9CVUZGRVJfTk9OX0VYVEVOU0lCTEUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktYnVmZmVyLW5vbi1leHRlbnNpYmxlJyk7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1pc2V4dGVuc2libGUgLS0gc2FmZVxudmFyICRpc0V4dGVuc2libGUgPSBPYmplY3QuaXNFeHRlbnNpYmxlO1xudmFyIEZBSUxTX09OX1BSSU1JVElWRVMgPSBmYWlscyhmdW5jdGlvbiAoKSB7ICRpc0V4dGVuc2libGUoMSk7IH0pO1xuXG4vLyBgT2JqZWN0LmlzRXh0ZW5zaWJsZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5pc2V4dGVuc2libGVcbm1vZHVsZS5leHBvcnRzID0gKEZBSUxTX09OX1BSSU1JVElWRVMgfHwgQVJSQVlfQlVGRkVSX05PTl9FWFRFTlNJQkxFKSA/IGZ1bmN0aW9uIGlzRXh0ZW5zaWJsZShpdCkge1xuICBpZiAoIWlzT2JqZWN0KGl0KSkgcmV0dXJuIGZhbHNlO1xuICBpZiAoQVJSQVlfQlVGRkVSX05PTl9FWFRFTlNJQkxFICYmIGNsYXNzb2YoaXQpID09ICdBcnJheUJ1ZmZlcicpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuICRpc0V4dGVuc2libGUgPyAkaXNFeHRlbnNpYmxlKGl0KSA6IHRydWU7XG59IDogJGlzRXh0ZW5zaWJsZTtcbiIsInZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSB1bmN1cnJ5VGhpcyh7fS5pc1Byb3RvdHlwZU9mKTtcbiIsInZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGluZGV4T2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaW5jbHVkZXMnKS5pbmRleE9mO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcblxudmFyIHB1c2ggPSB1bmN1cnJ5VGhpcyhbXS5wdXNoKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykge1xuICB2YXIgTyA9IHRvSW5kZXhlZE9iamVjdChvYmplY3QpO1xuICB2YXIgaSA9IDA7XG4gIHZhciByZXN1bHQgPSBbXTtcbiAgdmFyIGtleTtcbiAgZm9yIChrZXkgaW4gTykgIWhhc093bihoaWRkZW5LZXlzLCBrZXkpICYmIGhhc093bihPLCBrZXkpICYmIHB1c2gocmVzdWx0LCBrZXkpO1xuICAvLyBEb24ndCBlbnVtIGJ1ZyAmIGhpZGRlbiBrZXlzXG4gIHdoaWxlIChuYW1lcy5sZW5ndGggPiBpKSBpZiAoaGFzT3duKE8sIGtleSA9IG5hbWVzW2krK10pKSB7XG4gICAgfmluZGV4T2YocmVzdWx0LCBrZXkpIHx8IHB1c2gocmVzdWx0LCBrZXkpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuIiwidmFyIGludGVybmFsT2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cy1pbnRlcm5hbCcpO1xudmFyIGVudW1CdWdLZXlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2VudW0tYnVnLWtleXMnKTtcblxuLy8gYE9iamVjdC5rZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmtleXNcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1rZXlzIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmtleXMgfHwgZnVuY3Rpb24ga2V5cyhPKSB7XG4gIHJldHVybiBpbnRlcm5hbE9iamVjdEtleXMoTywgZW51bUJ1Z0tleXMpO1xufTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkcHJvcGVydHlJc0VudW1lcmFibGUgPSB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3IgLS0gc2FmZVxudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7XG5cbi8vIE5hc2hvcm4gfiBKREs4IGJ1Z1xudmFyIE5BU0hPUk5fQlVHID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yICYmICEkcHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh7IDE6IDIgfSwgMSk7XG5cbi8vIGBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlYCBtZXRob2QgaW1wbGVtZW50YXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eWlzZW51bWVyYWJsZVxuZXhwb3J0cy5mID0gTkFTSE9STl9CVUcgPyBmdW5jdGlvbiBwcm9wZXJ0eUlzRW51bWVyYWJsZShWKSB7XG4gIHZhciBkZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsIFYpO1xuICByZXR1cm4gISFkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuZW51bWVyYWJsZTtcbn0gOiAkcHJvcGVydHlJc0VudW1lcmFibGU7XG4iLCIvKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90byAtLSBzYWZlICovXG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgYVBvc3NpYmxlUHJvdG90eXBlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2EtcG9zc2libGUtcHJvdG90eXBlJyk7XG5cbi8vIGBPYmplY3Quc2V0UHJvdG90eXBlT2ZgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3Quc2V0cHJvdG90eXBlb2Zcbi8vIFdvcmtzIHdpdGggX19wcm90b19fIG9ubHkuIE9sZCB2OCBjYW4ndCB3b3JrIHdpdGggbnVsbCBwcm90byBvYmplY3RzLlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LXNldHByb3RvdHlwZW9mIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8ICgnX19wcm90b19fJyBpbiB7fSA/IGZ1bmN0aW9uICgpIHtcbiAgdmFyIENPUlJFQ1RfU0VUVEVSID0gZmFsc2U7XG4gIHZhciB0ZXN0ID0ge307XG4gIHZhciBzZXR0ZXI7XG4gIHRyeSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5ZGVzY3JpcHRvciAtLSBzYWZlXG4gICAgc2V0dGVyID0gdW5jdXJyeVRoaXMoT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCAnX19wcm90b19fJykuc2V0KTtcbiAgICBzZXR0ZXIodGVzdCwgW10pO1xuICAgIENPUlJFQ1RfU0VUVEVSID0gdGVzdCBpbnN0YW5jZW9mIEFycmF5O1xuICB9IGNhdGNoIChlcnJvcikgeyAvKiBlbXB0eSAqLyB9XG4gIHJldHVybiBmdW5jdGlvbiBzZXRQcm90b3R5cGVPZihPLCBwcm90bykge1xuICAgIGFuT2JqZWN0KE8pO1xuICAgIGFQb3NzaWJsZVByb3RvdHlwZShwcm90byk7XG4gICAgaWYgKENPUlJFQ1RfU0VUVEVSKSBzZXR0ZXIoTywgcHJvdG8pO1xuICAgIGVsc2UgTy5fX3Byb3RvX18gPSBwcm90bztcbiAgICByZXR1cm4gTztcbiAgfTtcbn0oKSA6IHVuZGVmaW5lZCk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgVE9fU1RSSU5HX1RBR19TVVBQT1JUID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydCcpO1xudmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xuXG4vLyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmdcbm1vZHVsZS5leHBvcnRzID0gVE9fU1RSSU5HX1RBR19TVVBQT1JUID8ge30udG9TdHJpbmcgOiBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgcmV0dXJuICdbb2JqZWN0ICcgKyBjbGFzc29mKHRoaXMpICsgJ10nO1xufTtcbiIsInZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaXNPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtb2JqZWN0Jyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xuXG4vLyBgT3JkaW5hcnlUb1ByaW1pdGl2ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9yZGluYXJ5dG9wcmltaXRpdmVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGlucHV0LCBwcmVmKSB7XG4gIHZhciBmbiwgdmFsO1xuICBpZiAocHJlZiA9PT0gJ3N0cmluZycgJiYgaXNDYWxsYWJsZShmbiA9IGlucHV0LnRvU3RyaW5nKSAmJiAhaXNPYmplY3QodmFsID0gY2FsbChmbiwgaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKGlzQ2FsbGFibGUoZm4gPSBpbnB1dC52YWx1ZU9mKSAmJiAhaXNPYmplY3QodmFsID0gY2FsbChmbiwgaW5wdXQpKSkgcmV0dXJuIHZhbDtcbiAgaWYgKHByZWYgIT09ICdzdHJpbmcnICYmIGlzQ2FsbGFibGUoZm4gPSBpbnB1dC50b1N0cmluZykgJiYgIWlzT2JqZWN0KHZhbCA9IGNhbGwoZm4sIGlucHV0KSkpIHJldHVybiB2YWw7XG4gIHRocm93ICRUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG59O1xuIiwidmFyIGdldEJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LWJ1aWx0LWluJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgZ2V0T3duUHJvcGVydHlOYW1lc01vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1uYW1lcycpO1xudmFyIGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1zeW1ib2xzJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG5cbnZhciBjb25jYXQgPSB1bmN1cnJ5VGhpcyhbXS5jb25jYXQpO1xuXG4vLyBhbGwgb2JqZWN0IGtleXMsIGluY2x1ZGVzIG5vbi1lbnVtZXJhYmxlIGFuZCBzeW1ib2xzXG5tb2R1bGUuZXhwb3J0cyA9IGdldEJ1aWx0SW4oJ1JlZmxlY3QnLCAnb3duS2V5cycpIHx8IGZ1bmN0aW9uIG93bktleXMoaXQpIHtcbiAgdmFyIGtleXMgPSBnZXRPd25Qcm9wZXJ0eU5hbWVzTW9kdWxlLmYoYW5PYmplY3QoaXQpKTtcbiAgdmFyIGdldE93blByb3BlcnR5U3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZS5mO1xuICByZXR1cm4gZ2V0T3duUHJvcGVydHlTeW1ib2xzID8gY29uY2F0KGtleXMsIGdldE93blByb3BlcnR5U3ltYm9scyhpdCkpIDoga2V5cztcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGdsb2JhbDtcbiIsInZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgY2xhc3NvZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jbGFzc29mLXJhdycpO1xudmFyIHJlZ2V4cEV4ZWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMnKTtcblxudmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBSZWdFeHBFeGVjYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwZXhlY1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoUiwgUykge1xuICB2YXIgZXhlYyA9IFIuZXhlYztcbiAgaWYgKGlzQ2FsbGFibGUoZXhlYykpIHtcbiAgICB2YXIgcmVzdWx0ID0gY2FsbChleGVjLCBSLCBTKTtcbiAgICBpZiAocmVzdWx0ICE9PSBudWxsKSBhbk9iamVjdChyZXN1bHQpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgaWYgKGNsYXNzb2YoUikgPT09ICdSZWdFeHAnKSByZXR1cm4gY2FsbChyZWdleHBFeGVjLCBSLCBTKTtcbiAgdGhyb3cgJFR5cGVFcnJvcignUmVnRXhwI2V4ZWMgY2FsbGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlcicpO1xufTtcbiIsIid1c2Ugc3RyaWN0Jztcbi8qIGVzbGludC1kaXNhYmxlIHJlZ2V4cC9uby1lbXB0eS1jYXB0dXJpbmctZ3JvdXAsIHJlZ2V4cC9uby1lbXB0eS1ncm91cCwgcmVnZXhwL25vLWxhenktZW5kcyAtLSB0ZXN0aW5nICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZWdleHAvbm8tdXNlbGVzcy1xdWFudGlmaWVyIC0tIHRlc3RpbmcgKi9cbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcbnZhciByZWdleHBGbGFncyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZmxhZ3MnKTtcbnZhciBzdGlja3lIZWxwZXJzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1zdGlja3ktaGVscGVycycpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWNyZWF0ZScpO1xudmFyIGdldEludGVybmFsU3RhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKS5nZXQ7XG52YXIgVU5TVVBQT1JURURfRE9UX0FMTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtdW5zdXBwb3J0ZWQtZG90LWFsbCcpO1xudmFyIFVOU1VQUE9SVEVEX05DRyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtdW5zdXBwb3J0ZWQtbmNnJyk7XG5cbnZhciBuYXRpdmVSZXBsYWNlID0gc2hhcmVkKCduYXRpdmUtc3RyaW5nLXJlcGxhY2UnLCBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UpO1xudmFyIG5hdGl2ZUV4ZWMgPSBSZWdFeHAucHJvdG90eXBlLmV4ZWM7XG52YXIgcGF0Y2hlZEV4ZWMgPSBuYXRpdmVFeGVjO1xudmFyIGNoYXJBdCA9IHVuY3VycnlUaGlzKCcnLmNoYXJBdCk7XG52YXIgaW5kZXhPZiA9IHVuY3VycnlUaGlzKCcnLmluZGV4T2YpO1xudmFyIHJlcGxhY2UgPSB1bmN1cnJ5VGhpcygnJy5yZXBsYWNlKTtcbnZhciBzdHJpbmdTbGljZSA9IHVuY3VycnlUaGlzKCcnLnNsaWNlKTtcblxudmFyIFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORyA9IChmdW5jdGlvbiAoKSB7XG4gIHZhciByZTEgPSAvYS87XG4gIHZhciByZTIgPSAvYiovZztcbiAgY2FsbChuYXRpdmVFeGVjLCByZTEsICdhJyk7XG4gIGNhbGwobmF0aXZlRXhlYywgcmUyLCAnYScpO1xuICByZXR1cm4gcmUxLmxhc3RJbmRleCAhPT0gMCB8fCByZTIubGFzdEluZGV4ICE9PSAwO1xufSkoKTtcblxudmFyIFVOU1VQUE9SVEVEX1kgPSBzdGlja3lIZWxwZXJzLkJST0tFTl9DQVJFVDtcblxuLy8gbm9ucGFydGljaXBhdGluZyBjYXB0dXJpbmcgZ3JvdXAsIGNvcGllZCBmcm9tIGVzNS1zaGltJ3MgU3RyaW5nI3NwbGl0IHBhdGNoLlxudmFyIE5QQ0dfSU5DTFVERUQgPSAvKCk/Py8uZXhlYygnJylbMV0gIT09IHVuZGVmaW5lZDtcblxudmFyIFBBVENIID0gVVBEQVRFU19MQVNUX0lOREVYX1dST05HIHx8IE5QQ0dfSU5DTFVERUQgfHwgVU5TVVBQT1JURURfWSB8fCBVTlNVUFBPUlRFRF9ET1RfQUxMIHx8IFVOU1VQUE9SVEVEX05DRztcblxuaWYgKFBBVENIKSB7XG4gIHBhdGNoZWRFeGVjID0gZnVuY3Rpb24gZXhlYyhzdHJpbmcpIHtcbiAgICB2YXIgcmUgPSB0aGlzO1xuICAgIHZhciBzdGF0ZSA9IGdldEludGVybmFsU3RhdGUocmUpO1xuICAgIHZhciBzdHIgPSB0b1N0cmluZyhzdHJpbmcpO1xuICAgIHZhciByYXcgPSBzdGF0ZS5yYXc7XG4gICAgdmFyIHJlc3VsdCwgcmVDb3B5LCBsYXN0SW5kZXgsIG1hdGNoLCBpLCBvYmplY3QsIGdyb3VwO1xuXG4gICAgaWYgKHJhdykge1xuICAgICAgcmF3Lmxhc3RJbmRleCA9IHJlLmxhc3RJbmRleDtcbiAgICAgIHJlc3VsdCA9IGNhbGwocGF0Y2hlZEV4ZWMsIHJhdywgc3RyKTtcbiAgICAgIHJlLmxhc3RJbmRleCA9IHJhdy5sYXN0SW5kZXg7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHZhciBncm91cHMgPSBzdGF0ZS5ncm91cHM7XG4gICAgdmFyIHN0aWNreSA9IFVOU1VQUE9SVEVEX1kgJiYgcmUuc3RpY2t5O1xuICAgIHZhciBmbGFncyA9IGNhbGwocmVnZXhwRmxhZ3MsIHJlKTtcbiAgICB2YXIgc291cmNlID0gcmUuc291cmNlO1xuICAgIHZhciBjaGFyc0FkZGVkID0gMDtcbiAgICB2YXIgc3RyQ29weSA9IHN0cjtcblxuICAgIGlmIChzdGlja3kpIHtcbiAgICAgIGZsYWdzID0gcmVwbGFjZShmbGFncywgJ3knLCAnJyk7XG4gICAgICBpZiAoaW5kZXhPZihmbGFncywgJ2cnKSA9PT0gLTEpIHtcbiAgICAgICAgZmxhZ3MgKz0gJ2cnO1xuICAgICAgfVxuXG4gICAgICBzdHJDb3B5ID0gc3RyaW5nU2xpY2Uoc3RyLCByZS5sYXN0SW5kZXgpO1xuICAgICAgLy8gU3VwcG9ydCBhbmNob3JlZCBzdGlja3kgYmVoYXZpb3IuXG4gICAgICBpZiAocmUubGFzdEluZGV4ID4gMCAmJiAoIXJlLm11bHRpbGluZSB8fCByZS5tdWx0aWxpbmUgJiYgY2hhckF0KHN0ciwgcmUubGFzdEluZGV4IC0gMSkgIT09ICdcXG4nKSkge1xuICAgICAgICBzb3VyY2UgPSAnKD86ICcgKyBzb3VyY2UgKyAnKSc7XG4gICAgICAgIHN0ckNvcHkgPSAnICcgKyBzdHJDb3B5O1xuICAgICAgICBjaGFyc0FkZGVkKys7XG4gICAgICB9XG4gICAgICAvLyBeKD8gKyByeCArICkgaXMgbmVlZGVkLCBpbiBjb21iaW5hdGlvbiB3aXRoIHNvbWUgc3RyIHNsaWNpbmcsIHRvXG4gICAgICAvLyBzaW11bGF0ZSB0aGUgJ3knIGZsYWcuXG4gICAgICByZUNvcHkgPSBuZXcgUmVnRXhwKCdeKD86JyArIHNvdXJjZSArICcpJywgZmxhZ3MpO1xuICAgIH1cblxuICAgIGlmIChOUENHX0lOQ0xVREVEKSB7XG4gICAgICByZUNvcHkgPSBuZXcgUmVnRXhwKCdeJyArIHNvdXJjZSArICckKD8hXFxcXHMpJywgZmxhZ3MpO1xuICAgIH1cbiAgICBpZiAoVVBEQVRFU19MQVNUX0lOREVYX1dST05HKSBsYXN0SW5kZXggPSByZS5sYXN0SW5kZXg7XG5cbiAgICBtYXRjaCA9IGNhbGwobmF0aXZlRXhlYywgc3RpY2t5ID8gcmVDb3B5IDogcmUsIHN0ckNvcHkpO1xuXG4gICAgaWYgKHN0aWNreSkge1xuICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgIG1hdGNoLmlucHV0ID0gc3RyaW5nU2xpY2UobWF0Y2guaW5wdXQsIGNoYXJzQWRkZWQpO1xuICAgICAgICBtYXRjaFswXSA9IHN0cmluZ1NsaWNlKG1hdGNoWzBdLCBjaGFyc0FkZGVkKTtcbiAgICAgICAgbWF0Y2guaW5kZXggPSByZS5sYXN0SW5kZXg7XG4gICAgICAgIHJlLmxhc3RJbmRleCArPSBtYXRjaFswXS5sZW5ndGg7XG4gICAgICB9IGVsc2UgcmUubGFzdEluZGV4ID0gMDtcbiAgICB9IGVsc2UgaWYgKFVQREFURVNfTEFTVF9JTkRFWF9XUk9ORyAmJiBtYXRjaCkge1xuICAgICAgcmUubGFzdEluZGV4ID0gcmUuZ2xvYmFsID8gbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGggOiBsYXN0SW5kZXg7XG4gICAgfVxuICAgIGlmIChOUENHX0lOQ0xVREVEICYmIG1hdGNoICYmIG1hdGNoLmxlbmd0aCA+IDEpIHtcbiAgICAgIC8vIEZpeCBicm93c2VycyB3aG9zZSBgZXhlY2AgbWV0aG9kcyBkb24ndCBjb25zaXN0ZW50bHkgcmV0dXJuIGB1bmRlZmluZWRgXG4gICAgICAvLyBmb3IgTlBDRywgbGlrZSBJRTguIE5PVEU6IFRoaXMgZG9lc24ndCB3b3JrIGZvciAvKC4/KT8vXG4gICAgICBjYWxsKG5hdGl2ZVJlcGxhY2UsIG1hdGNoWzBdLCByZUNvcHksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yIChpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGggLSAyOyBpKyspIHtcbiAgICAgICAgICBpZiAoYXJndW1lbnRzW2ldID09PSB1bmRlZmluZWQpIG1hdGNoW2ldID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAobWF0Y2ggJiYgZ3JvdXBzKSB7XG4gICAgICBtYXRjaC5ncm91cHMgPSBvYmplY3QgPSBjcmVhdGUobnVsbCk7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgZ3JvdXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGdyb3VwID0gZ3JvdXBzW2ldO1xuICAgICAgICBvYmplY3RbZ3JvdXBbMF1dID0gbWF0Y2hbZ3JvdXBbMV1dO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYXRjaDtcbiAgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBwYXRjaGVkRXhlYztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcblxuLy8gYFJlZ0V4cC5wcm90b3R5cGUuZmxhZ3NgIGdldHRlciBpbXBsZW1lbnRhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXQtcmVnZXhwLnByb3RvdHlwZS5mbGFnc1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciB0aGF0ID0gYW5PYmplY3QodGhpcyk7XG4gIHZhciByZXN1bHQgPSAnJztcbiAgaWYgKHRoYXQuaGFzSW5kaWNlcykgcmVzdWx0ICs9ICdkJztcbiAgaWYgKHRoYXQuZ2xvYmFsKSByZXN1bHQgKz0gJ2cnO1xuICBpZiAodGhhdC5pZ25vcmVDYXNlKSByZXN1bHQgKz0gJ2knO1xuICBpZiAodGhhdC5tdWx0aWxpbmUpIHJlc3VsdCArPSAnbSc7XG4gIGlmICh0aGF0LmRvdEFsbCkgcmVzdWx0ICs9ICdzJztcbiAgaWYgKHRoYXQudW5pY29kZSkgcmVzdWx0ICs9ICd1JztcbiAgaWYgKHRoYXQudW5pY29kZVNldHMpIHJlc3VsdCArPSAndic7XG4gIGlmICh0aGF0LnN0aWNreSkgcmVzdWx0ICs9ICd5JztcbiAgcmV0dXJuIHJlc3VsdDtcbn07XG4iLCJ2YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG5cbi8vIGJhYmVsLW1pbmlmeSBhbmQgQ2xvc3VyZSBDb21waWxlciB0cmFuc3BpbGVzIFJlZ0V4cCgnYScsICd5JykgLT4gL2EveSBhbmQgaXQgY2F1c2VzIFN5bnRheEVycm9yXG52YXIgJFJlZ0V4cCA9IGdsb2JhbC5SZWdFeHA7XG5cbnZhciBVTlNVUFBPUlRFRF9ZID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICB2YXIgcmUgPSAkUmVnRXhwKCdhJywgJ3knKTtcbiAgcmUubGFzdEluZGV4ID0gMjtcbiAgcmV0dXJuIHJlLmV4ZWMoJ2FiY2QnKSAhPSBudWxsO1xufSk7XG5cbi8vIFVDIEJyb3dzZXIgYnVnXG4vLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvMTAwOFxudmFyIE1JU1NFRF9TVElDS1kgPSBVTlNVUFBPUlRFRF9ZIHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICEkUmVnRXhwKCdhJywgJ3knKS5zdGlja3k7XG59KTtcblxudmFyIEJST0tFTl9DQVJFVCA9IFVOU1VQUE9SVEVEX1kgfHwgZmFpbHMoZnVuY3Rpb24gKCkge1xuICAvLyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM2ODdcbiAgdmFyIHJlID0gJFJlZ0V4cCgnXnInLCAnZ3knKTtcbiAgcmUubGFzdEluZGV4ID0gMjtcbiAgcmV0dXJuIHJlLmV4ZWMoJ3N0cicpICE9IG51bGw7XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIEJST0tFTl9DQVJFVDogQlJPS0VOX0NBUkVULFxuICBNSVNTRURfU1RJQ0tZOiBNSVNTRURfU1RJQ0tZLFxuICBVTlNVUFBPUlRFRF9ZOiBVTlNVUFBPUlRFRF9ZXG59O1xuIiwidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xuXG4vLyBiYWJlbC1taW5pZnkgYW5kIENsb3N1cmUgQ29tcGlsZXIgdHJhbnNwaWxlcyBSZWdFeHAoJy4nLCAncycpIC0+IC8uL3MgYW5kIGl0IGNhdXNlcyBTeW50YXhFcnJvclxudmFyICRSZWdFeHAgPSBnbG9iYWwuUmVnRXhwO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHJlID0gJFJlZ0V4cCgnLicsICdzJyk7XG4gIHJldHVybiAhKHJlLmRvdEFsbCAmJiByZS5leGVjKCdcXG4nKSAmJiByZS5mbGFncyA9PT0gJ3MnKTtcbn0pO1xuIiwidmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xuXG4vLyBiYWJlbC1taW5pZnkgYW5kIENsb3N1cmUgQ29tcGlsZXIgdHJhbnNwaWxlcyBSZWdFeHAoJyg/PGE+YiknLCAnZycpIC0+IC8oPzxhPmIpL2cgYW5kIGl0IGNhdXNlcyBTeW50YXhFcnJvclxudmFyICRSZWdFeHAgPSBnbG9iYWwuUmVnRXhwO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHJlID0gJFJlZ0V4cCgnKD88YT5iKScsICdnJyk7XG4gIHJldHVybiByZS5leGVjKCdiJykuZ3JvdXBzLmEgIT09ICdiJyB8fFxuICAgICdiJy5yZXBsYWNlKHJlLCAnJDxhPmMnKSAhPT0gJ2JjJztcbn0pO1xuIiwidmFyICRUeXBlRXJyb3IgPSBUeXBlRXJyb3I7XG5cbi8vIGBSZXF1aXJlT2JqZWN0Q29lcmNpYmxlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVxdWlyZW9iamVjdGNvZXJjaWJsZVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgaWYgKGl0ID09IHVuZGVmaW5lZCkgdGhyb3cgJFR5cGVFcnJvcihcIkNhbid0IGNhbGwgbWV0aG9kIG9uIFwiICsgaXQpO1xuICByZXR1cm4gaXQ7XG59O1xuIiwiLy8gYFNhbWVWYWx1ZWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXNhbWV2YWx1ZVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWlzIC0tIHNhZmVcbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmlzIHx8IGZ1bmN0aW9uIGlzKHgsIHkpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgcmV0dXJuIHggPT09IHkgPyB4ICE9PSAwIHx8IDEgLyB4ID09PSAxIC8geSA6IHggIT0geCAmJiB5ICE9IHk7XG59O1xuIiwidmFyIGdsb2JhbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nbG9iYWwnKTtcbnZhciBhcHBseSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1hcHBseScpO1xudmFyIGlzQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtY2FsbGFibGUnKTtcbnZhciB1c2VyQWdlbnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLXVzZXItYWdlbnQnKTtcbnZhciBhcnJheVNsaWNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNsaWNlJyk7XG52YXIgdmFsaWRhdGVBcmd1bWVudHNMZW5ndGggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdmFsaWRhdGUtYXJndW1lbnRzLWxlbmd0aCcpO1xuXG52YXIgTVNJRSA9IC9NU0lFIC5cXC4vLnRlc3QodXNlckFnZW50KTsgLy8gPC0gZGlydHkgaWU5LSBjaGVja1xudmFyIEZ1bmN0aW9uID0gZ2xvYmFsLkZ1bmN0aW9uO1xuXG52YXIgd3JhcCA9IGZ1bmN0aW9uIChzY2hlZHVsZXIpIHtcbiAgcmV0dXJuIE1TSUUgPyBmdW5jdGlvbiAoaGFuZGxlciwgdGltZW91dCAvKiAsIC4uLmFyZ3VtZW50cyAqLykge1xuICAgIHZhciBib3VuZEFyZ3MgPSB2YWxpZGF0ZUFyZ3VtZW50c0xlbmd0aChhcmd1bWVudHMubGVuZ3RoLCAxKSA+IDI7XG4gICAgdmFyIGZuID0gaXNDYWxsYWJsZShoYW5kbGVyKSA/IGhhbmRsZXIgOiBGdW5jdGlvbihoYW5kbGVyKTtcbiAgICB2YXIgYXJncyA9IGJvdW5kQXJncyA/IGFycmF5U2xpY2UoYXJndW1lbnRzLCAyKSA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gc2NoZWR1bGVyKGJvdW5kQXJncyA/IGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwcGx5KGZuLCB0aGlzLCBhcmdzKTtcbiAgICB9IDogZm4sIHRpbWVvdXQpO1xuICB9IDogc2NoZWR1bGVyO1xufTtcblxuLy8gaWU5LSBzZXRUaW1lb3V0ICYgc2V0SW50ZXJ2YWwgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZpeFxuLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvdGltZXJzLWFuZC11c2VyLXByb21wdHMuaHRtbCN0aW1lcnNcbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgc2V0VGltZW91dGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3RpbWVycy1hbmQtdXNlci1wcm9tcHRzLmh0bWwjZG9tLXNldHRpbWVvdXRcbiAgc2V0VGltZW91dDogd3JhcChnbG9iYWwuc2V0VGltZW91dCksXG4gIC8vIGBzZXRJbnRlcnZhbGAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3RpbWVycy1hbmQtdXNlci1wcm9tcHRzLmh0bWwjZG9tLXNldGludGVydmFsXG4gIHNldEludGVydmFsOiB3cmFwKGdsb2JhbC5zZXRJbnRlcnZhbClcbn07XG4iLCJ2YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKHRhcmdldCwgVEFHLCBTVEFUSUMpIHtcbiAgaWYgKHRhcmdldCAmJiAhU1RBVElDKSB0YXJnZXQgPSB0YXJnZXQucHJvdG90eXBlO1xuICBpZiAodGFyZ2V0ICYmICFoYXNPd24odGFyZ2V0LCBUT19TVFJJTkdfVEFHKSkge1xuICAgIGRlZmluZVByb3BlcnR5KHRhcmdldCwgVE9fU1RSSU5HX1RBRywgeyBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiBUQUcgfSk7XG4gIH1cbn07XG4iLCJ2YXIgc2hhcmVkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NoYXJlZCcpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91aWQnKTtcblxudmFyIGtleXMgPSBzaGFyZWQoJ2tleXMnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7XG4gIHJldHVybiBrZXlzW2tleV0gfHwgKGtleXNba2V5XSA9IHVpZChrZXkpKTtcbn07XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGRlZmluZUdsb2JhbFByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1nbG9iYWwtcHJvcGVydHknKTtcblxudmFyIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nO1xudmFyIHN0b3JlID0gZ2xvYmFsW1NIQVJFRF0gfHwgZGVmaW5lR2xvYmFsUHJvcGVydHkoU0hBUkVELCB7fSk7XG5cbm1vZHVsZS5leHBvcnRzID0gc3RvcmU7XG4iLCJ2YXIgSVNfUFVSRSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1wdXJlJyk7XG52YXIgc3RvcmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLXN0b3JlJyk7XG5cbihtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gIHJldHVybiBzdG9yZVtrZXldIHx8IChzdG9yZVtrZXldID0gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDoge30pO1xufSkoJ3ZlcnNpb25zJywgW10pLnB1c2goe1xuICB2ZXJzaW9uOiAnMy4yMy41JyxcbiAgbW9kZTogSVNfUFVSRSA/ICdwdXJlJyA6ICdnbG9iYWwnLFxuICBjb3B5cmlnaHQ6ICfCqSAyMDE0LTIwMjIgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSknLFxuICBsaWNlbnNlOiAnaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvYmxvYi92My4yMy41L0xJQ0VOU0UnLFxuICBzb3VyY2U6ICdodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcydcbn0pO1xuIiwidmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIGFDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hLWNvbnN0cnVjdG9yJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciBTUEVDSUVTID0gd2VsbEtub3duU3ltYm9sKCdzcGVjaWVzJyk7XG5cbi8vIGBTcGVjaWVzQ29uc3RydWN0b3JgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zcGVjaWVzY29uc3RydWN0b3Jcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE8sIGRlZmF1bHRDb25zdHJ1Y3Rvcikge1xuICB2YXIgQyA9IGFuT2JqZWN0KE8pLmNvbnN0cnVjdG9yO1xuICB2YXIgUztcbiAgcmV0dXJuIEMgPT09IHVuZGVmaW5lZCB8fCAoUyA9IGFuT2JqZWN0KEMpW1NQRUNJRVNdKSA9PSB1bmRlZmluZWQgPyBkZWZhdWx0Q29uc3RydWN0b3IgOiBhQ29uc3RydWN0b3IoUyk7XG59O1xuIiwidmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbnZhciBjaGFyQXQgPSB1bmN1cnJ5VGhpcygnJy5jaGFyQXQpO1xudmFyIGNoYXJDb2RlQXQgPSB1bmN1cnJ5VGhpcygnJy5jaGFyQ29kZUF0KTtcbnZhciBzdHJpbmdTbGljZSA9IHVuY3VycnlUaGlzKCcnLnNsaWNlKTtcblxudmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uIChDT05WRVJUX1RPX1NUUklORykge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBwb3MpIHtcbiAgICB2YXIgUyA9IHRvU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUoJHRoaXMpKTtcbiAgICB2YXIgcG9zaXRpb24gPSB0b0ludGVnZXJPckluZmluaXR5KHBvcyk7XG4gICAgdmFyIHNpemUgPSBTLmxlbmd0aDtcbiAgICB2YXIgZmlyc3QsIHNlY29uZDtcbiAgICBpZiAocG9zaXRpb24gPCAwIHx8IHBvc2l0aW9uID49IHNpemUpIHJldHVybiBDT05WRVJUX1RPX1NUUklORyA/ICcnIDogdW5kZWZpbmVkO1xuICAgIGZpcnN0ID0gY2hhckNvZGVBdChTLCBwb3NpdGlvbik7XG4gICAgcmV0dXJuIGZpcnN0IDwgMHhEODAwIHx8IGZpcnN0ID4gMHhEQkZGIHx8IHBvc2l0aW9uICsgMSA9PT0gc2l6ZVxuICAgICAgfHwgKHNlY29uZCA9IGNoYXJDb2RlQXQoUywgcG9zaXRpb24gKyAxKSkgPCAweERDMDAgfHwgc2Vjb25kID4gMHhERkZGXG4gICAgICAgID8gQ09OVkVSVF9UT19TVFJJTkdcbiAgICAgICAgICA/IGNoYXJBdChTLCBwb3NpdGlvbilcbiAgICAgICAgICA6IGZpcnN0XG4gICAgICAgIDogQ09OVkVSVF9UT19TVFJJTkdcbiAgICAgICAgICA/IHN0cmluZ1NsaWNlKFMsIHBvc2l0aW9uLCBwb3NpdGlvbiArIDIpXG4gICAgICAgICAgOiAoZmlyc3QgLSAweEQ4MDAgPDwgMTApICsgKHNlY29uZCAtIDB4REMwMCkgKyAweDEwMDAwO1xuICB9O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIC8vIGBTdHJpbmcucHJvdG90eXBlLmNvZGVQb2ludEF0YCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLmNvZGVwb2ludGF0XG4gIGNvZGVBdDogY3JlYXRlTWV0aG9kKGZhbHNlKSxcbiAgLy8gYFN0cmluZy5wcm90b3R5cGUuYXRgIG1ldGhvZFxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWF0aGlhc2J5bmVucy9TdHJpbmcucHJvdG90eXBlLmF0XG4gIGNoYXJBdDogY3JlYXRlTWV0aG9kKHRydWUpXG59O1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbnZhciAkUmFuZ2VFcnJvciA9IFJhbmdlRXJyb3I7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLnJlcGVhdGAgbWV0aG9kIGltcGxlbWVudGF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUucmVwZWF0XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHJlcGVhdChjb3VudCkge1xuICB2YXIgc3RyID0gdG9TdHJpbmcocmVxdWlyZU9iamVjdENvZXJjaWJsZSh0aGlzKSk7XG4gIHZhciByZXN1bHQgPSAnJztcbiAgdmFyIG4gPSB0b0ludGVnZXJPckluZmluaXR5KGNvdW50KTtcbiAgaWYgKG4gPCAwIHx8IG4gPT0gSW5maW5pdHkpIHRocm93ICRSYW5nZUVycm9yKCdXcm9uZyBudW1iZXIgb2YgcmVwZXRpdGlvbnMnKTtcbiAgZm9yICg7biA+IDA7IChuID4+Pj0gMSkgJiYgKHN0ciArPSBzdHIpKSBpZiAobiAmIDEpIHJlc3VsdCArPSBzdHI7XG4gIHJldHVybiByZXN1bHQ7XG59O1xuIiwidmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG52YXIgd2hpdGVzcGFjZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2hpdGVzcGFjZXMnKTtcblxudmFyIHJlcGxhY2UgPSB1bmN1cnJ5VGhpcygnJy5yZXBsYWNlKTtcbnZhciB3aGl0ZXNwYWNlID0gJ1snICsgd2hpdGVzcGFjZXMgKyAnXSc7XG52YXIgbHRyaW0gPSBSZWdFeHAoJ14nICsgd2hpdGVzcGFjZSArIHdoaXRlc3BhY2UgKyAnKicpO1xudmFyIHJ0cmltID0gUmVnRXhwKHdoaXRlc3BhY2UgKyB3aGl0ZXNwYWNlICsgJyokJyk7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLnsgdHJpbSwgdHJpbVN0YXJ0LCB0cmltRW5kLCB0cmltTGVmdCwgdHJpbVJpZ2h0IH1gIG1ldGhvZHMgaW1wbGVtZW50YXRpb25cbnZhciBjcmVhdGVNZXRob2QgPSBmdW5jdGlvbiAoVFlQRSkge1xuICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzKSB7XG4gICAgdmFyIHN0cmluZyA9IHRvU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUoJHRoaXMpKTtcbiAgICBpZiAoVFlQRSAmIDEpIHN0cmluZyA9IHJlcGxhY2Uoc3RyaW5nLCBsdHJpbSwgJycpO1xuICAgIGlmIChUWVBFICYgMikgc3RyaW5nID0gcmVwbGFjZShzdHJpbmcsIHJ0cmltLCAnJyk7XG4gICAgcmV0dXJuIHN0cmluZztcbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAvLyBgU3RyaW5nLnByb3RvdHlwZS57IHRyaW1MZWZ0LCB0cmltU3RhcnQgfWAgbWV0aG9kc1xuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUudHJpbXN0YXJ0XG4gIHN0YXJ0OiBjcmVhdGVNZXRob2QoMSksXG4gIC8vIGBTdHJpbmcucHJvdG90eXBlLnsgdHJpbVJpZ2h0LCB0cmltRW5kIH1gIG1ldGhvZHNcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLnRyaW1lbmRcbiAgZW5kOiBjcmVhdGVNZXRob2QoMiksXG4gIC8vIGBTdHJpbmcucHJvdG90eXBlLnRyaW1gIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUudHJpbVxuICB0cmltOiBjcmVhdGVNZXRob2QoMylcbn07XG4iLCJ2YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcbnZhciBkZWZpbmVCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIFN5bWJvbCA9IGdldEJ1aWx0SW4oJ1N5bWJvbCcpO1xuICB2YXIgU3ltYm9sUHJvdG90eXBlID0gU3ltYm9sICYmIFN5bWJvbC5wcm90b3R5cGU7XG4gIHZhciB2YWx1ZU9mID0gU3ltYm9sUHJvdG90eXBlICYmIFN5bWJvbFByb3RvdHlwZS52YWx1ZU9mO1xuICB2YXIgVE9fUFJJTUlUSVZFID0gd2VsbEtub3duU3ltYm9sKCd0b1ByaW1pdGl2ZScpO1xuXG4gIGlmIChTeW1ib2xQcm90b3R5cGUgJiYgIVN5bWJvbFByb3RvdHlwZVtUT19QUklNSVRJVkVdKSB7XG4gICAgLy8gYFN5bWJvbC5wcm90b3R5cGVbQEB0b1ByaW1pdGl2ZV1gIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3ltYm9sLnByb3RvdHlwZS1AQHRvcHJpbWl0aXZlXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzIC0tIHJlcXVpcmVkIGZvciAubGVuZ3RoXG4gICAgZGVmaW5lQnVpbHRJbihTeW1ib2xQcm90b3R5cGUsIFRPX1BSSU1JVElWRSwgZnVuY3Rpb24gKGhpbnQpIHtcbiAgICAgIHJldHVybiBjYWxsKHZhbHVlT2YsIHRoaXMpO1xuICAgIH0sIHsgYXJpdHk6IDEgfSk7XG4gIH1cbn07XG4iLCJ2YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG5cbi8vIGB0aGlzTnVtYmVyVmFsdWVgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10aGlzbnVtYmVydmFsdWVcbm1vZHVsZS5leHBvcnRzID0gdW5jdXJyeVRoaXMoMS4wLnZhbHVlT2YpO1xuIiwidmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xuXG52YXIgbWF4ID0gTWF0aC5tYXg7XG52YXIgbWluID0gTWF0aC5taW47XG5cbi8vIEhlbHBlciBmb3IgYSBwb3B1bGFyIHJlcGVhdGluZyBjYXNlIG9mIHRoZSBzcGVjOlxuLy8gTGV0IGludGVnZXIgYmUgPyBUb0ludGVnZXIoaW5kZXgpLlxuLy8gSWYgaW50ZWdlciA8IDAsIGxldCByZXN1bHQgYmUgbWF4KChsZW5ndGggKyBpbnRlZ2VyKSwgMCk7IGVsc2UgbGV0IHJlc3VsdCBiZSBtaW4oaW50ZWdlciwgbGVuZ3RoKS5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGluZGV4LCBsZW5ndGgpIHtcbiAgdmFyIGludGVnZXIgPSB0b0ludGVnZXJPckluZmluaXR5KGluZGV4KTtcbiAgcmV0dXJuIGludGVnZXIgPCAwID8gbWF4KGludGVnZXIgKyBsZW5ndGgsIDApIDogbWluKGludGVnZXIsIGxlbmd0aCk7XG59O1xuIiwiLy8gdG9PYmplY3Qgd2l0aCBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIHN0cmluZ3NcbnZhciBJbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2luZGV4ZWQtb2JqZWN0Jyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHtcbiAgcmV0dXJuIEluZGV4ZWRPYmplY3QocmVxdWlyZU9iamVjdENvZXJjaWJsZShpdCkpO1xufTtcbiIsInZhciB0cnVuYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9tYXRoLXRydW5jJyk7XG5cbi8vIGBUb0ludGVnZXJPckluZmluaXR5YCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9pbnRlZ2Vyb3JpbmZpbml0eVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgdmFyIG51bWJlciA9ICthcmd1bWVudDtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgcmV0dXJuIG51bWJlciAhPT0gbnVtYmVyIHx8IG51bWJlciA9PT0gMCA/IDAgOiB0cnVuYyhudW1iZXIpO1xufTtcbiIsInZhciB0b0ludGVnZXJPckluZmluaXR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWludGVnZXItb3ItaW5maW5pdHknKTtcblxudmFyIG1pbiA9IE1hdGgubWluO1xuXG4vLyBgVG9MZW5ndGhgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b2xlbmd0aFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuIGFyZ3VtZW50ID4gMCA/IG1pbih0b0ludGVnZXJPckluZmluaXR5KGFyZ3VtZW50KSwgMHgxRkZGRkZGRkZGRkZGRikgOiAwOyAvLyAyICoqIDUzIC0gMSA9PSA5MDA3MTk5MjU0NzQwOTkxXG59O1xuIiwidmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG5cbnZhciAkT2JqZWN0ID0gT2JqZWN0O1xuXG4vLyBgVG9PYmplY3RgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b29iamVjdFxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgcmV0dXJuICRPYmplY3QocmVxdWlyZU9iamVjdENvZXJjaWJsZShhcmd1bWVudCkpO1xufTtcbiIsInZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBpc1N5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1zeW1ib2wnKTtcbnZhciBnZXRNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LW1ldGhvZCcpO1xudmFyIG9yZGluYXJ5VG9QcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb3JkaW5hcnktdG8tcHJpbWl0aXZlJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG5cbnZhciAkVHlwZUVycm9yID0gVHlwZUVycm9yO1xudmFyIFRPX1BSSU1JVElWRSA9IHdlbGxLbm93blN5bWJvbCgndG9QcmltaXRpdmUnKTtcblxuLy8gYFRvUHJpbWl0aXZlYCBhYnN0cmFjdCBvcGVyYXRpb25cbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtdG9wcmltaXRpdmVcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGlucHV0LCBwcmVmKSB7XG4gIGlmICghaXNPYmplY3QoaW5wdXQpIHx8IGlzU3ltYm9sKGlucHV0KSkgcmV0dXJuIGlucHV0O1xuICB2YXIgZXhvdGljVG9QcmltID0gZ2V0TWV0aG9kKGlucHV0LCBUT19QUklNSVRJVkUpO1xuICB2YXIgcmVzdWx0O1xuICBpZiAoZXhvdGljVG9QcmltKSB7XG4gICAgaWYgKHByZWYgPT09IHVuZGVmaW5lZCkgcHJlZiA9ICdkZWZhdWx0JztcbiAgICByZXN1bHQgPSBjYWxsKGV4b3RpY1RvUHJpbSwgaW5wdXQsIHByZWYpO1xuICAgIGlmICghaXNPYmplY3QocmVzdWx0KSB8fCBpc1N5bWJvbChyZXN1bHQpKSByZXR1cm4gcmVzdWx0O1xuICAgIHRocm93ICRUeXBlRXJyb3IoXCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWVcIik7XG4gIH1cbiAgaWYgKHByZWYgPT09IHVuZGVmaW5lZCkgcHJlZiA9ICdudW1iZXInO1xuICByZXR1cm4gb3JkaW5hcnlUb1ByaW1pdGl2ZShpbnB1dCwgcHJlZik7XG59O1xuIiwidmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXByaW1pdGl2ZScpO1xudmFyIGlzU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXN5bWJvbCcpO1xuXG4vLyBgVG9Qcm9wZXJ0eUtleWAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvcHJvcGVydHlrZXlcbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHZhciBrZXkgPSB0b1ByaW1pdGl2ZShhcmd1bWVudCwgJ3N0cmluZycpO1xuICByZXR1cm4gaXNTeW1ib2woa2V5KSA/IGtleSA6IGtleSArICcnO1xufTtcbiIsInZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG52YXIgdGVzdCA9IHt9O1xuXG50ZXN0W1RPX1NUUklOR19UQUddID0gJ3onO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFN0cmluZyh0ZXN0KSA9PT0gJ1tvYmplY3Qgel0nO1xuIiwidmFyIGNsYXNzb2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2xhc3NvZicpO1xuXG52YXIgJFN0cmluZyA9IFN0cmluZztcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgaWYgKGNsYXNzb2YoYXJndW1lbnQpID09PSAnU3ltYm9sJykgdGhyb3cgVHlwZUVycm9yKCdDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZycpO1xuICByZXR1cm4gJFN0cmluZyhhcmd1bWVudCk7XG59O1xuIiwidmFyICRTdHJpbmcgPSBTdHJpbmc7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGFyZ3VtZW50KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICRTdHJpbmcoYXJndW1lbnQpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiAnT2JqZWN0JztcbiAgfVxufTtcbiIsInZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcblxudmFyIGlkID0gMDtcbnZhciBwb3N0Zml4ID0gTWF0aC5yYW5kb20oKTtcbnZhciB0b1N0cmluZyA9IHVuY3VycnlUaGlzKDEuMC50b1N0cmluZyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkge1xuICByZXR1cm4gJ1N5bWJvbCgnICsgKGtleSA9PT0gdW5kZWZpbmVkID8gJycgOiBrZXkpICsgJylfJyArIHRvU3RyaW5nKCsraWQgKyBwb3N0Zml4LCAzNik7XG59O1xuIiwiLyogZXNsaW50LWRpc2FibGUgZXMteC9uby1zeW1ib2wgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmcgKi9cbnZhciBOQVRJVkVfU1lNQk9MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS1zeW1ib2wnKTtcblxubW9kdWxlLmV4cG9ydHMgPSBOQVRJVkVfU1lNQk9MXG4gICYmICFTeW1ib2wuc2hhbVxuICAmJiB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID09ICdzeW1ib2wnO1xuIiwidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxuLy8gVjggfiBDaHJvbWUgMzYtXG4vLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zMzM0XG5tb2R1bGUuZXhwb3J0cyA9IERFU0NSSVBUT1JTICYmIGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWRlZmluZXByb3BlcnR5IC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZnVuY3Rpb24gKCkgeyAvKiBlbXB0eSAqLyB9LCAncHJvdG90eXBlJywge1xuICAgIHZhbHVlOiA0MixcbiAgICB3cml0YWJsZTogZmFsc2VcbiAgfSkucHJvdG90eXBlICE9IDQyO1xufSk7XG4iLCJ2YXIgJFR5cGVFcnJvciA9IFR5cGVFcnJvcjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAocGFzc2VkLCByZXF1aXJlZCkge1xuICBpZiAocGFzc2VkIDwgcmVxdWlyZWQpIHRocm93ICRUeXBlRXJyb3IoJ05vdCBlbm91Z2ggYXJndW1lbnRzJyk7XG4gIHJldHVybiBwYXNzZWQ7XG59O1xuIiwidmFyIHdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbCcpO1xuXG5leHBvcnRzLmYgPSB3ZWxsS25vd25TeW1ib2w7XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIHVpZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91aWQnKTtcbnZhciBOQVRJVkVfU1lNQk9MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS1zeW1ib2wnKTtcbnZhciBVU0VfU1lNQk9MX0FTX1VJRCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy91c2Utc3ltYm9sLWFzLXVpZCcpO1xuXG52YXIgV2VsbEtub3duU3ltYm9sc1N0b3JlID0gc2hhcmVkKCd3a3MnKTtcbnZhciBTeW1ib2wgPSBnbG9iYWwuU3ltYm9sO1xudmFyIHN5bWJvbEZvciA9IFN5bWJvbCAmJiBTeW1ib2xbJ2ZvciddO1xudmFyIGNyZWF0ZVdlbGxLbm93blN5bWJvbCA9IFVTRV9TWU1CT0xfQVNfVUlEID8gU3ltYm9sIDogU3ltYm9sICYmIFN5bWJvbC53aXRob3V0U2V0dGVyIHx8IHVpZDtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobmFtZSkge1xuICBpZiAoIWhhc093bihXZWxsS25vd25TeW1ib2xzU3RvcmUsIG5hbWUpIHx8ICEoTkFUSVZFX1NZTUJPTCB8fCB0eXBlb2YgV2VsbEtub3duU3ltYm9sc1N0b3JlW25hbWVdID09ICdzdHJpbmcnKSkge1xuICAgIHZhciBkZXNjcmlwdGlvbiA9ICdTeW1ib2wuJyArIG5hbWU7XG4gICAgaWYgKE5BVElWRV9TWU1CT0wgJiYgaGFzT3duKFN5bWJvbCwgbmFtZSkpIHtcbiAgICAgIFdlbGxLbm93blN5bWJvbHNTdG9yZVtuYW1lXSA9IFN5bWJvbFtuYW1lXTtcbiAgICB9IGVsc2UgaWYgKFVTRV9TWU1CT0xfQVNfVUlEICYmIHN5bWJvbEZvcikge1xuICAgICAgV2VsbEtub3duU3ltYm9sc1N0b3JlW25hbWVdID0gc3ltYm9sRm9yKGRlc2NyaXB0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgV2VsbEtub3duU3ltYm9sc1N0b3JlW25hbWVdID0gY3JlYXRlV2VsbEtub3duU3ltYm9sKGRlc2NyaXB0aW9uKTtcbiAgICB9XG4gIH0gcmV0dXJuIFdlbGxLbm93blN5bWJvbHNTdG9yZVtuYW1lXTtcbn07XG4iLCIvLyBhIHN0cmluZyBvZiBhbGwgdmFsaWQgdW5pY29kZSB3aGl0ZXNwYWNlc1xubW9kdWxlLmV4cG9ydHMgPSAnXFx1MDAwOVxcdTAwMEFcXHUwMDBCXFx1MDAwQ1xcdTAwMERcXHUwMDIwXFx1MDBBMFxcdTE2ODBcXHUyMDAwXFx1MjAwMVxcdTIwMDInICtcbiAgJ1xcdTIwMDNcXHUyMDA0XFx1MjAwNVxcdTIwMDZcXHUyMDA3XFx1MjAwOFxcdTIwMDlcXHUyMDBBXFx1MjAyRlxcdTIwNUZcXHUzMDAwXFx1MjAyOFxcdTIwMjlcXHVGRUZGJztcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgaXNBcnJheSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1hcnJheScpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG52YXIgZG9lc05vdEV4Y2VlZFNhZmVJbnRlZ2VyID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvZXMtbm90LWV4Y2VlZC1zYWZlLWludGVnZXInKTtcbnZhciBjcmVhdGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHknKTtcbnZhciBhcnJheVNwZWNpZXNDcmVhdGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktc3BlY2llcy1jcmVhdGUnKTtcbnZhciBhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1oYXMtc3BlY2llcy1zdXBwb3J0Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgVjhfVkVSU0lPTiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtdjgtdmVyc2lvbicpO1xuXG52YXIgSVNfQ09OQ0FUX1NQUkVBREFCTEUgPSB3ZWxsS25vd25TeW1ib2woJ2lzQ29uY2F0U3ByZWFkYWJsZScpO1xuXG4vLyBXZSBjYW4ndCB1c2UgdGhpcyBmZWF0dXJlIGRldGVjdGlvbiBpbiBWOCBzaW5jZSBpdCBjYXVzZXNcbi8vIGRlb3B0aW1pemF0aW9uIGFuZCBzZXJpb3VzIHBlcmZvcm1hbmNlIGRlZ3JhZGF0aW9uXG4vLyBodHRwczovL2dpdGh1Yi5jb20vemxvaXJvY2svY29yZS1qcy9pc3N1ZXMvNjc5XG52YXIgSVNfQ09OQ0FUX1NQUkVBREFCTEVfU1VQUE9SVCA9IFY4X1ZFUlNJT04gPj0gNTEgfHwgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIGFycmF5ID0gW107XG4gIGFycmF5W0lTX0NPTkNBVF9TUFJFQURBQkxFXSA9IGZhbHNlO1xuICByZXR1cm4gYXJyYXkuY29uY2F0KClbMF0gIT09IGFycmF5O1xufSk7XG5cbnZhciBTUEVDSUVTX1NVUFBPUlQgPSBhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0KCdjb25jYXQnKTtcblxudmFyIGlzQ29uY2F0U3ByZWFkYWJsZSA9IGZ1bmN0aW9uIChPKSB7XG4gIGlmICghaXNPYmplY3QoTykpIHJldHVybiBmYWxzZTtcbiAgdmFyIHNwcmVhZGFibGUgPSBPW0lTX0NPTkNBVF9TUFJFQURBQkxFXTtcbiAgcmV0dXJuIHNwcmVhZGFibGUgIT09IHVuZGVmaW5lZCA/ICEhc3ByZWFkYWJsZSA6IGlzQXJyYXkoTyk7XG59O1xuXG52YXIgRk9SQ0VEID0gIUlTX0NPTkNBVF9TUFJFQURBQkxFX1NVUFBPUlQgfHwgIVNQRUNJRVNfU1VQUE9SVDtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5jb25jYXRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuY29uY2F0XG4vLyB3aXRoIGFkZGluZyBzdXBwb3J0IG9mIEBAaXNDb25jYXRTcHJlYWRhYmxlIGFuZCBAQHNwZWNpZXNcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBhcml0eTogMSwgZm9yY2VkOiBGT1JDRUQgfSwge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnMgLS0gcmVxdWlyZWQgZm9yIGAubGVuZ3RoYFxuICBjb25jYXQ6IGZ1bmN0aW9uIGNvbmNhdChhcmcpIHtcbiAgICB2YXIgTyA9IHRvT2JqZWN0KHRoaXMpO1xuICAgIHZhciBBID0gYXJyYXlTcGVjaWVzQ3JlYXRlKE8sIDApO1xuICAgIHZhciBuID0gMDtcbiAgICB2YXIgaSwgaywgbGVuZ3RoLCBsZW4sIEU7XG4gICAgZm9yIChpID0gLTEsIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgICAgRSA9IGkgPT09IC0xID8gTyA6IGFyZ3VtZW50c1tpXTtcbiAgICAgIGlmIChpc0NvbmNhdFNwcmVhZGFibGUoRSkpIHtcbiAgICAgICAgbGVuID0gbGVuZ3RoT2ZBcnJheUxpa2UoRSk7XG4gICAgICAgIGRvZXNOb3RFeGNlZWRTYWZlSW50ZWdlcihuICsgbGVuKTtcbiAgICAgICAgZm9yIChrID0gMDsgayA8IGxlbjsgaysrLCBuKyspIGlmIChrIGluIEUpIGNyZWF0ZVByb3BlcnR5KEEsIG4sIEVba10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZG9lc05vdEV4Y2VlZFNhZmVJbnRlZ2VyKG4gKyAxKTtcbiAgICAgICAgY3JlYXRlUHJvcGVydHkoQSwgbisrLCBFKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQS5sZW5ndGggPSBuO1xuICAgIHJldHVybiBBO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyICRmaWx0ZXIgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZmlsdGVyO1xudmFyIGFycmF5TWV0aG9kSGFzU3BlY2llc1N1cHBvcnQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWhhcy1zcGVjaWVzLXN1cHBvcnQnKTtcblxudmFyIEhBU19TUEVDSUVTX1NVUFBPUlQgPSBhcnJheU1ldGhvZEhhc1NwZWNpZXNTdXBwb3J0KCdmaWx0ZXInKTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5maWx0ZXJgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZmlsdGVyXG4vLyB3aXRoIGFkZGluZyBzdXBwb3J0IG9mIEBAc3BlY2llc1xuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogIUhBU19TUEVDSUVTX1NVUFBPUlQgfSwge1xuICBmaWx0ZXI6IGZ1bmN0aW9uIGZpbHRlcihjYWxsYmFja2ZuIC8qICwgdGhpc0FyZyAqLykge1xuICAgIHJldHVybiAkZmlsdGVyKHRoaXMsIGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkKTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBmcm9tID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWZyb20nKTtcbnZhciBjaGVja0NvcnJlY3RuZXNzT2ZJdGVyYXRpb24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY2hlY2stY29ycmVjdG5lc3Mtb2YtaXRlcmF0aW9uJyk7XG5cbnZhciBJTkNPUlJFQ1RfSVRFUkFUSU9OID0gIWNoZWNrQ29ycmVjdG5lc3NPZkl0ZXJhdGlvbihmdW5jdGlvbiAoaXRlcmFibGUpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tYXJyYXktZnJvbSAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuICBBcnJheS5mcm9tKGl0ZXJhYmxlKTtcbn0pO1xuXG4vLyBgQXJyYXkuZnJvbWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LmZyb21cbiQoeyB0YXJnZXQ6ICdBcnJheScsIHN0YXQ6IHRydWUsIGZvcmNlZDogSU5DT1JSRUNUX0lURVJBVElPTiB9LCB7XG4gIGZyb206IGZyb21cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgJGluY2x1ZGVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LWluY2x1ZGVzJykuaW5jbHVkZXM7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBhZGRUb1Vuc2NvcGFibGVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FkZC10by11bnNjb3BhYmxlcycpO1xuXG4vLyBGRjk5KyBidWdcbnZhciBCUk9LRU5fT05fU1BBUlNFID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gIUFycmF5KDEpLmluY2x1ZGVzKCk7XG59KTtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5pbmNsdWRlc2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5pbmNsdWRlc1xuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogQlJPS0VOX09OX1NQQVJTRSB9LCB7XG4gIGluY2x1ZGVzOiBmdW5jdGlvbiBpbmNsdWRlcyhlbCAvKiAsIGZyb21JbmRleCA9IDAgKi8pIHtcbiAgICByZXR1cm4gJGluY2x1ZGVzKHRoaXMsIGVsLCBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGFyZ3VtZW50c1sxXSA6IHVuZGVmaW5lZCk7XG4gIH1cbn0pO1xuXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS1AQHVuc2NvcGFibGVzXG5hZGRUb1Vuc2NvcGFibGVzKCdpbmNsdWRlcycpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGFkZFRvVW5zY29wYWJsZXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYWRkLXRvLXVuc2NvcGFibGVzJyk7XG52YXIgSXRlcmF0b3JzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2l0ZXJhdG9ycycpO1xudmFyIEludGVybmFsU3RhdGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaW50ZXJuYWwtc3RhdGUnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5JykuZjtcbnZhciBkZWZpbmVJdGVyYXRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtaXRlcmF0b3InKTtcbnZhciBJU19QVVJFID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXB1cmUnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xuXG52YXIgQVJSQVlfSVRFUkFUT1IgPSAnQXJyYXkgSXRlcmF0b3InO1xudmFyIHNldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLnNldDtcbnZhciBnZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5nZXR0ZXJGb3IoQVJSQVlfSVRFUkFUT1IpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLmVudHJpZXNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUuZW50cmllc1xuLy8gYEFycmF5LnByb3RvdHlwZS5rZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLmtleXNcbi8vIGBBcnJheS5wcm90b3R5cGUudmFsdWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtYXJyYXkucHJvdG90eXBlLnZhbHVlc1xuLy8gYEFycmF5LnByb3RvdHlwZVtAQGl0ZXJhdG9yXWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS1AQGl0ZXJhdG9yXG4vLyBgQ3JlYXRlQXJyYXlJdGVyYXRvcmAgaW50ZXJuYWwgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWNyZWF0ZWFycmF5aXRlcmF0b3Jcbm1vZHVsZS5leHBvcnRzID0gZGVmaW5lSXRlcmF0b3IoQXJyYXksICdBcnJheScsIGZ1bmN0aW9uIChpdGVyYXRlZCwga2luZCkge1xuICBzZXRJbnRlcm5hbFN0YXRlKHRoaXMsIHtcbiAgICB0eXBlOiBBUlJBWV9JVEVSQVRPUixcbiAgICB0YXJnZXQ6IHRvSW5kZXhlZE9iamVjdChpdGVyYXRlZCksIC8vIHRhcmdldFxuICAgIGluZGV4OiAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleFxuICAgIGtpbmQ6IGtpbmQgICAgICAgICAgICAgICAgICAgICAgICAgLy8ga2luZFxuICB9KTtcbi8vIGAlQXJyYXlJdGVyYXRvclByb3RvdHlwZSUubmV4dGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLSVhcnJheWl0ZXJhdG9ycHJvdG90eXBlJS5uZXh0XG59LCBmdW5jdGlvbiAoKSB7XG4gIHZhciBzdGF0ZSA9IGdldEludGVybmFsU3RhdGUodGhpcyk7XG4gIHZhciB0YXJnZXQgPSBzdGF0ZS50YXJnZXQ7XG4gIHZhciBraW5kID0gc3RhdGUua2luZDtcbiAgdmFyIGluZGV4ID0gc3RhdGUuaW5kZXgrKztcbiAgaWYgKCF0YXJnZXQgfHwgaW5kZXggPj0gdGFyZ2V0Lmxlbmd0aCkge1xuICAgIHN0YXRlLnRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIH1cbiAgaWYgKGtpbmQgPT0gJ2tleXMnKSByZXR1cm4geyB2YWx1ZTogaW5kZXgsIGRvbmU6IGZhbHNlIH07XG4gIGlmIChraW5kID09ICd2YWx1ZXMnKSByZXR1cm4geyB2YWx1ZTogdGFyZ2V0W2luZGV4XSwgZG9uZTogZmFsc2UgfTtcbiAgcmV0dXJuIHsgdmFsdWU6IFtpbmRleCwgdGFyZ2V0W2luZGV4XV0sIGRvbmU6IGZhbHNlIH07XG59LCAndmFsdWVzJyk7XG5cbi8vIGFyZ3VtZW50c0xpc3RbQEBpdGVyYXRvcl0gaXMgJUFycmF5UHJvdG9fdmFsdWVzJVxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1jcmVhdGV1bm1hcHBlZGFyZ3VtZW50c29iamVjdFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1jcmVhdGVtYXBwZWRhcmd1bWVudHNvYmplY3RcbnZhciB2YWx1ZXMgPSBJdGVyYXRvcnMuQXJndW1lbnRzID0gSXRlcmF0b3JzLkFycmF5O1xuXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS1AQHVuc2NvcGFibGVzXG5hZGRUb1Vuc2NvcGFibGVzKCdrZXlzJyk7XG5hZGRUb1Vuc2NvcGFibGVzKCd2YWx1ZXMnKTtcbmFkZFRvVW5zY29wYWJsZXMoJ2VudHJpZXMnKTtcblxuLy8gVjggfiBDaHJvbWUgNDUtIGJ1Z1xuaWYgKCFJU19QVVJFICYmIERFU0NSSVBUT1JTICYmIHZhbHVlcy5uYW1lICE9PSAndmFsdWVzJykgdHJ5IHtcbiAgZGVmaW5lUHJvcGVydHkodmFsdWVzLCAnbmFtZScsIHsgdmFsdWU6ICd2YWx1ZXMnIH0pO1xufSBjYXRjaCAoZXJyb3IpIHsgLyogZW1wdHkgKi8gfVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIGFycmF5TWV0aG9kSXNTdHJpY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktbWV0aG9kLWlzLXN0cmljdCcpO1xuXG52YXIgdW4kSm9pbiA9IHVuY3VycnlUaGlzKFtdLmpvaW4pO1xuXG52YXIgRVMzX1NUUklOR1MgPSBJbmRleGVkT2JqZWN0ICE9IE9iamVjdDtcbnZhciBTVFJJQ1RfTUVUSE9EID0gYXJyYXlNZXRob2RJc1N0cmljdCgnam9pbicsICcsJyk7XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuam9pbmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5qb2luXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBFUzNfU1RSSU5HUyB8fCAhU1RSSUNUX01FVEhPRCB9LCB7XG4gIGpvaW46IGZ1bmN0aW9uIGpvaW4oc2VwYXJhdG9yKSB7XG4gICAgcmV0dXJuIHVuJEpvaW4odG9JbmRleGVkT2JqZWN0KHRoaXMpLCBzZXBhcmF0b3IgPT09IHVuZGVmaW5lZCA/ICcsJyA6IHNlcGFyYXRvcik7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgJG1hcCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1pdGVyYXRpb24nKS5tYXA7XG52YXIgYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaGFzLXNwZWNpZXMtc3VwcG9ydCcpO1xuXG52YXIgSEFTX1NQRUNJRVNfU1VQUE9SVCA9IGFycmF5TWV0aG9kSGFzU3BlY2llc1N1cHBvcnQoJ21hcCcpO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLm1hcGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5tYXBcbi8vIHdpdGggYWRkaW5nIHN1cHBvcnQgb2YgQEBzcGVjaWVzXG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiAhSEFTX1NQRUNJRVNfU1VQUE9SVCB9LCB7XG4gIG1hcDogZnVuY3Rpb24gbWFwKGNhbGxiYWNrZm4gLyogLCB0aGlzQXJnICovKSB7XG4gICAgcmV0dXJuICRtYXAodGhpcywgY2FsbGJhY2tmbiwgYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQpO1xuICB9XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGlzQXJyYXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtYXJyYXknKTtcblxudmFyIHVuJFJldmVyc2UgPSB1bmN1cnJ5VGhpcyhbXS5yZXZlcnNlKTtcbnZhciB0ZXN0ID0gWzEsIDJdO1xuXG4vLyBgQXJyYXkucHJvdG90eXBlLnJldmVyc2VgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1hcnJheS5wcm90b3R5cGUucmV2ZXJzZVxuLy8gZml4IGZvciBTYWZhcmkgMTIuMCBidWdcbi8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODg3OTRcbiQoeyB0YXJnZXQ6ICdBcnJheScsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IFN0cmluZyh0ZXN0KSA9PT0gU3RyaW5nKHRlc3QucmV2ZXJzZSgpKSB9LCB7XG4gIHJldmVyc2U6IGZ1bmN0aW9uIHJldmVyc2UoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtYXNzaWduIC0tIGRpcnR5IGhhY2tcbiAgICBpZiAoaXNBcnJheSh0aGlzKSkgdGhpcy5sZW5ndGggPSB0aGlzLmxlbmd0aDtcbiAgICByZXR1cm4gdW4kUmV2ZXJzZSh0aGlzKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5Jyk7XG52YXIgaXNDb25zdHJ1Y3RvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jb25zdHJ1Y3RvcicpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIHRvQWJzb2x1dGVJbmRleCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1hYnNvbHV0ZS1pbmRleCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgY3JlYXRlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLXByb3BlcnR5Jyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hcnJheS1tZXRob2QtaGFzLXNwZWNpZXMtc3VwcG9ydCcpO1xudmFyIHVuJFNsaWNlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNsaWNlJyk7XG5cbnZhciBIQVNfU1BFQ0lFU19TVVBQT1JUID0gYXJyYXlNZXRob2RIYXNTcGVjaWVzU3VwcG9ydCgnc2xpY2UnKTtcblxudmFyIFNQRUNJRVMgPSB3ZWxsS25vd25TeW1ib2woJ3NwZWNpZXMnKTtcbnZhciAkQXJyYXkgPSBBcnJheTtcbnZhciBtYXggPSBNYXRoLm1heDtcblxuLy8gYEFycmF5LnByb3RvdHlwZS5zbGljZWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5zbGljZVxuLy8gZmFsbGJhY2sgZm9yIG5vdCBhcnJheS1saWtlIEVTMyBzdHJpbmdzIGFuZCBET00gb2JqZWN0c1xuJCh7IHRhcmdldDogJ0FycmF5JywgcHJvdG86IHRydWUsIGZvcmNlZDogIUhBU19TUEVDSUVTX1NVUFBPUlQgfSwge1xuICBzbGljZTogZnVuY3Rpb24gc2xpY2Uoc3RhcnQsIGVuZCkge1xuICAgIHZhciBPID0gdG9JbmRleGVkT2JqZWN0KHRoaXMpO1xuICAgIHZhciBsZW5ndGggPSBsZW5ndGhPZkFycmF5TGlrZShPKTtcbiAgICB2YXIgayA9IHRvQWJzb2x1dGVJbmRleChzdGFydCwgbGVuZ3RoKTtcbiAgICB2YXIgZmluID0gdG9BYnNvbHV0ZUluZGV4KGVuZCA9PT0gdW5kZWZpbmVkID8gbGVuZ3RoIDogZW5kLCBsZW5ndGgpO1xuICAgIC8vIGlubGluZSBgQXJyYXlTcGVjaWVzQ3JlYXRlYCBmb3IgdXNhZ2UgbmF0aXZlIGBBcnJheSNzbGljZWAgd2hlcmUgaXQncyBwb3NzaWJsZVxuICAgIHZhciBDb25zdHJ1Y3RvciwgcmVzdWx0LCBuO1xuICAgIGlmIChpc0FycmF5KE8pKSB7XG4gICAgICBDb25zdHJ1Y3RvciA9IE8uY29uc3RydWN0b3I7XG4gICAgICAvLyBjcm9zcy1yZWFsbSBmYWxsYmFja1xuICAgICAgaWYgKGlzQ29uc3RydWN0b3IoQ29uc3RydWN0b3IpICYmIChDb25zdHJ1Y3RvciA9PT0gJEFycmF5IHx8IGlzQXJyYXkoQ29uc3RydWN0b3IucHJvdG90eXBlKSkpIHtcbiAgICAgICAgQ29uc3RydWN0b3IgPSB1bmRlZmluZWQ7XG4gICAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KENvbnN0cnVjdG9yKSkge1xuICAgICAgICBDb25zdHJ1Y3RvciA9IENvbnN0cnVjdG9yW1NQRUNJRVNdO1xuICAgICAgICBpZiAoQ29uc3RydWN0b3IgPT09IG51bGwpIENvbnN0cnVjdG9yID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgaWYgKENvbnN0cnVjdG9yID09PSAkQXJyYXkgfHwgQ29uc3RydWN0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdW4kU2xpY2UoTywgaywgZmluKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVzdWx0ID0gbmV3IChDb25zdHJ1Y3RvciA9PT0gdW5kZWZpbmVkID8gJEFycmF5IDogQ29uc3RydWN0b3IpKG1heChmaW4gLSBrLCAwKSk7XG4gICAgZm9yIChuID0gMDsgayA8IGZpbjsgaysrLCBuKyspIGlmIChrIGluIE8pIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgbiwgT1trXSk7XG4gICAgcmVzdWx0Lmxlbmd0aCA9IG47XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBhQ2FsbGFibGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYS1jYWxsYWJsZScpO1xudmFyIHRvT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLW9iamVjdCcpO1xudmFyIGxlbmd0aE9mQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2xlbmd0aC1vZi1hcnJheS1saWtlJyk7XG52YXIgZGVsZXRlUHJvcGVydHlPclRocm93ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlbGV0ZS1wcm9wZXJ0eS1vci10aHJvdycpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgaW50ZXJuYWxTb3J0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LXNvcnQnKTtcbnZhciBhcnJheU1ldGhvZElzU3RyaWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FycmF5LW1ldGhvZC1pcy1zdHJpY3QnKTtcbnZhciBGRiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtZmYtdmVyc2lvbicpO1xudmFyIElFX09SX0VER0UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZW5naW5lLWlzLWllLW9yLWVkZ2UnKTtcbnZhciBWOCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtdjgtdmVyc2lvbicpO1xudmFyIFdFQktJVCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9lbmdpbmUtd2Via2l0LXZlcnNpb24nKTtcblxudmFyIHRlc3QgPSBbXTtcbnZhciB1biRTb3J0ID0gdW5jdXJyeVRoaXModGVzdC5zb3J0KTtcbnZhciBwdXNoID0gdW5jdXJyeVRoaXModGVzdC5wdXNoKTtcblxuLy8gSUU4LVxudmFyIEZBSUxTX09OX1VOREVGSU5FRCA9IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdGVzdC5zb3J0KHVuZGVmaW5lZCk7XG59KTtcbi8vIFY4IGJ1Z1xudmFyIEZBSUxTX09OX05VTEwgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHRlc3Quc29ydChudWxsKTtcbn0pO1xuLy8gT2xkIFdlYktpdFxudmFyIFNUUklDVF9NRVRIT0QgPSBhcnJheU1ldGhvZElzU3RyaWN0KCdzb3J0Jyk7XG5cbnZhciBTVEFCTEVfU09SVCA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGZlYXR1cmUgZGV0ZWN0aW9uIGNhbiBiZSB0b28gc2xvdywgc28gY2hlY2sgZW5naW5lcyB2ZXJzaW9uc1xuICBpZiAoVjgpIHJldHVybiBWOCA8IDcwO1xuICBpZiAoRkYgJiYgRkYgPiAzKSByZXR1cm47XG4gIGlmIChJRV9PUl9FREdFKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKFdFQktJVCkgcmV0dXJuIFdFQktJVCA8IDYwMztcblxuICB2YXIgcmVzdWx0ID0gJyc7XG4gIHZhciBjb2RlLCBjaHIsIHZhbHVlLCBpbmRleDtcblxuICAvLyBnZW5lcmF0ZSBhbiBhcnJheSB3aXRoIG1vcmUgNTEyIGVsZW1lbnRzIChDaGFrcmEgYW5kIG9sZCBWOCBmYWlscyBvbmx5IGluIHRoaXMgY2FzZSlcbiAgZm9yIChjb2RlID0gNjU7IGNvZGUgPCA3NjsgY29kZSsrKSB7XG4gICAgY2hyID0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKTtcblxuICAgIHN3aXRjaCAoY29kZSkge1xuICAgICAgY2FzZSA2NjogY2FzZSA2OTogY2FzZSA3MDogY2FzZSA3MjogdmFsdWUgPSAzOyBicmVhaztcbiAgICAgIGNhc2UgNjg6IGNhc2UgNzE6IHZhbHVlID0gNDsgYnJlYWs7XG4gICAgICBkZWZhdWx0OiB2YWx1ZSA9IDI7XG4gICAgfVxuXG4gICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgNDc7IGluZGV4KyspIHtcbiAgICAgIHRlc3QucHVzaCh7IGs6IGNociArIGluZGV4LCB2OiB2YWx1ZSB9KTtcbiAgICB9XG4gIH1cblxuICB0ZXN0LnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGIudiAtIGEudjsgfSk7XG5cbiAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgdGVzdC5sZW5ndGg7IGluZGV4KyspIHtcbiAgICBjaHIgPSB0ZXN0W2luZGV4XS5rLmNoYXJBdCgwKTtcbiAgICBpZiAocmVzdWx0LmNoYXJBdChyZXN1bHQubGVuZ3RoIC0gMSkgIT09IGNocikgcmVzdWx0ICs9IGNocjtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQgIT09ICdER0JFRkhBQ0lKSyc7XG59KTtcblxudmFyIEZPUkNFRCA9IEZBSUxTX09OX1VOREVGSU5FRCB8fCAhRkFJTFNfT05fTlVMTCB8fCAhU1RSSUNUX01FVEhPRCB8fCAhU1RBQkxFX1NPUlQ7XG5cbnZhciBnZXRTb3J0Q29tcGFyZSA9IGZ1bmN0aW9uIChjb21wYXJlZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh4LCB5KSB7XG4gICAgaWYgKHkgPT09IHVuZGVmaW5lZCkgcmV0dXJuIC0xO1xuICAgIGlmICh4ID09PSB1bmRlZmluZWQpIHJldHVybiAxO1xuICAgIGlmIChjb21wYXJlZm4gIT09IHVuZGVmaW5lZCkgcmV0dXJuICtjb21wYXJlZm4oeCwgeSkgfHwgMDtcbiAgICByZXR1cm4gdG9TdHJpbmcoeCkgPiB0b1N0cmluZyh5KSA/IDEgOiAtMTtcbiAgfTtcbn07XG5cbi8vIGBBcnJheS5wcm90b3R5cGUuc29ydGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWFycmF5LnByb3RvdHlwZS5zb3J0XG4kKHsgdGFyZ2V0OiAnQXJyYXknLCBwcm90bzogdHJ1ZSwgZm9yY2VkOiBGT1JDRUQgfSwge1xuICBzb3J0OiBmdW5jdGlvbiBzb3J0KGNvbXBhcmVmbikge1xuICAgIGlmIChjb21wYXJlZm4gIT09IHVuZGVmaW5lZCkgYUNhbGxhYmxlKGNvbXBhcmVmbik7XG5cbiAgICB2YXIgYXJyYXkgPSB0b09iamVjdCh0aGlzKTtcblxuICAgIGlmIChTVEFCTEVfU09SVCkgcmV0dXJuIGNvbXBhcmVmbiA9PT0gdW5kZWZpbmVkID8gdW4kU29ydChhcnJheSkgOiB1biRTb3J0KGFycmF5LCBjb21wYXJlZm4pO1xuXG4gICAgdmFyIGl0ZW1zID0gW107XG4gICAgdmFyIGFycmF5TGVuZ3RoID0gbGVuZ3RoT2ZBcnJheUxpa2UoYXJyYXkpO1xuICAgIHZhciBpdGVtc0xlbmd0aCwgaW5kZXg7XG5cbiAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBhcnJheUxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgaWYgKGluZGV4IGluIGFycmF5KSBwdXNoKGl0ZW1zLCBhcnJheVtpbmRleF0pO1xuICAgIH1cblxuICAgIGludGVybmFsU29ydChpdGVtcywgZ2V0U29ydENvbXBhcmUoY29tcGFyZWZuKSk7XG5cbiAgICBpdGVtc0xlbmd0aCA9IGl0ZW1zLmxlbmd0aDtcbiAgICBpbmRleCA9IDA7XG5cbiAgICB3aGlsZSAoaW5kZXggPCBpdGVtc0xlbmd0aCkgYXJyYXlbaW5kZXhdID0gaXRlbXNbaW5kZXgrK107XG4gICAgd2hpbGUgKGluZGV4IDwgYXJyYXlMZW5ndGgpIGRlbGV0ZVByb3BlcnR5T3JUaHJvdyhhcnJheSwgaW5kZXgrKyk7XG5cbiAgICByZXR1cm4gYXJyYXk7XG4gIH1cbn0pO1xuIiwidmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgRlVOQ1RJT05fTkFNRV9FWElTVFMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tbmFtZScpLkVYSVNUUztcbnZhciB1bmN1cnJ5VGhpcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi11bmN1cnJ5LXRoaXMnKTtcbnZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZGVmaW5lLXByb3BlcnR5JykuZjtcblxudmFyIEZ1bmN0aW9uUHJvdG90eXBlID0gRnVuY3Rpb24ucHJvdG90eXBlO1xudmFyIGZ1bmN0aW9uVG9TdHJpbmcgPSB1bmN1cnJ5VGhpcyhGdW5jdGlvblByb3RvdHlwZS50b1N0cmluZyk7XG52YXIgbmFtZVJFID0gL2Z1bmN0aW9uXFxiKD86XFxzfFxcL1xcKltcXFNcXHNdKj9cXCpcXC98XFwvXFwvW15cXG5cXHJdKltcXG5cXHJdKykqKFteXFxzKC9dKikvO1xudmFyIHJlZ0V4cEV4ZWMgPSB1bmN1cnJ5VGhpcyhuYW1lUkUuZXhlYyk7XG52YXIgTkFNRSA9ICduYW1lJztcblxuLy8gRnVuY3Rpb24gaW5zdGFuY2VzIGAubmFtZWAgcHJvcGVydHlcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtZnVuY3Rpb24taW5zdGFuY2VzLW5hbWVcbmlmIChERVNDUklQVE9SUyAmJiAhRlVOQ1RJT05fTkFNRV9FWElTVFMpIHtcbiAgZGVmaW5lUHJvcGVydHkoRnVuY3Rpb25Qcm90b3R5cGUsIE5BTUUsIHtcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gcmVnRXhwRXhlYyhuYW1lUkUsIGZ1bmN0aW9uVG9TdHJpbmcodGhpcykpWzFdO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG59XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBnZXRCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dldC1idWlsdC1pbicpO1xudmFyIGFwcGx5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWFwcGx5Jyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc0FycmF5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWFycmF5Jyk7XG52YXIgaXNDYWxsYWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1jYWxsYWJsZScpO1xudmFyIGlzT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLW9iamVjdCcpO1xudmFyIGlzU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXN5bWJvbCcpO1xudmFyIGFycmF5U2xpY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktc2xpY2UnKTtcbnZhciBOQVRJVkVfU1lNQk9MID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS1zeW1ib2wnKTtcblxudmFyICRzdHJpbmdpZnkgPSBnZXRCdWlsdEluKCdKU09OJywgJ3N0cmluZ2lmeScpO1xudmFyIGV4ZWMgPSB1bmN1cnJ5VGhpcygvLi8uZXhlYyk7XG52YXIgY2hhckF0ID0gdW5jdXJyeVRoaXMoJycuY2hhckF0KTtcbnZhciBjaGFyQ29kZUF0ID0gdW5jdXJyeVRoaXMoJycuY2hhckNvZGVBdCk7XG52YXIgcmVwbGFjZSA9IHVuY3VycnlUaGlzKCcnLnJlcGxhY2UpO1xudmFyIG51bWJlclRvU3RyaW5nID0gdW5jdXJyeVRoaXMoMS4wLnRvU3RyaW5nKTtcblxudmFyIHRlc3RlciA9IC9bXFx1RDgwMC1cXHVERkZGXS9nO1xudmFyIGxvdyA9IC9eW1xcdUQ4MDAtXFx1REJGRl0kLztcbnZhciBoaSA9IC9eW1xcdURDMDAtXFx1REZGRl0kLztcblxudmFyIFdST05HX1NZTUJPTFNfQ09OVkVSU0lPTiA9ICFOQVRJVkVfU1lNQk9MIHx8IGZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHN5bWJvbCA9IGdldEJ1aWx0SW4oJ1N5bWJvbCcpKCk7XG4gIC8vIE1TIEVkZ2UgY29udmVydHMgc3ltYm9sIHZhbHVlcyB0byBKU09OIGFzIHt9XG4gIHJldHVybiAkc3RyaW5naWZ5KFtzeW1ib2xdKSAhPSAnW251bGxdJ1xuICAgIC8vIFdlYktpdCBjb252ZXJ0cyBzeW1ib2wgdmFsdWVzIHRvIEpTT04gYXMgbnVsbFxuICAgIHx8ICRzdHJpbmdpZnkoeyBhOiBzeW1ib2wgfSkgIT0gJ3t9J1xuICAgIC8vIFY4IHRocm93cyBvbiBib3hlZCBzeW1ib2xzXG4gICAgfHwgJHN0cmluZ2lmeShPYmplY3Qoc3ltYm9sKSkgIT0gJ3t9Jztcbn0pO1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vdGMzOS9wcm9wb3NhbC13ZWxsLWZvcm1lZC1zdHJpbmdpZnlcbnZhciBJTExfRk9STUVEX1VOSUNPREUgPSBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHJldHVybiAkc3RyaW5naWZ5KCdcXHVERjA2XFx1RDgzNCcpICE9PSAnXCJcXFxcdWRmMDZcXFxcdWQ4MzRcIidcbiAgICB8fCAkc3RyaW5naWZ5KCdcXHVERUFEJykgIT09ICdcIlxcXFx1ZGVhZFwiJztcbn0pO1xuXG52YXIgc3RyaW5naWZ5V2l0aFN5bWJvbHNGaXggPSBmdW5jdGlvbiAoaXQsIHJlcGxhY2VyKSB7XG4gIHZhciBhcmdzID0gYXJyYXlTbGljZShhcmd1bWVudHMpO1xuICB2YXIgJHJlcGxhY2VyID0gcmVwbGFjZXI7XG4gIGlmICghaXNPYmplY3QocmVwbGFjZXIpICYmIGl0ID09PSB1bmRlZmluZWQgfHwgaXNTeW1ib2woaXQpKSByZXR1cm47IC8vIElFOCByZXR1cm5zIHN0cmluZyBvbiB1bmRlZmluZWRcbiAgaWYgKCFpc0FycmF5KHJlcGxhY2VyKSkgcmVwbGFjZXIgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgIGlmIChpc0NhbGxhYmxlKCRyZXBsYWNlcikpIHZhbHVlID0gY2FsbCgkcmVwbGFjZXIsIHRoaXMsIGtleSwgdmFsdWUpO1xuICAgIGlmICghaXNTeW1ib2wodmFsdWUpKSByZXR1cm4gdmFsdWU7XG4gIH07XG4gIGFyZ3NbMV0gPSByZXBsYWNlcjtcbiAgcmV0dXJuIGFwcGx5KCRzdHJpbmdpZnksIG51bGwsIGFyZ3MpO1xufTtcblxudmFyIGZpeElsbEZvcm1lZCA9IGZ1bmN0aW9uIChtYXRjaCwgb2Zmc2V0LCBzdHJpbmcpIHtcbiAgdmFyIHByZXYgPSBjaGFyQXQoc3RyaW5nLCBvZmZzZXQgLSAxKTtcbiAgdmFyIG5leHQgPSBjaGFyQXQoc3RyaW5nLCBvZmZzZXQgKyAxKTtcbiAgaWYgKChleGVjKGxvdywgbWF0Y2gpICYmICFleGVjKGhpLCBuZXh0KSkgfHwgKGV4ZWMoaGksIG1hdGNoKSAmJiAhZXhlYyhsb3csIHByZXYpKSkge1xuICAgIHJldHVybiAnXFxcXHUnICsgbnVtYmVyVG9TdHJpbmcoY2hhckNvZGVBdChtYXRjaCwgMCksIDE2KTtcbiAgfSByZXR1cm4gbWF0Y2g7XG59O1xuXG5pZiAoJHN0cmluZ2lmeSkge1xuICAvLyBgSlNPTi5zdHJpbmdpZnlgIG1ldGhvZFxuICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWpzb24uc3RyaW5naWZ5XG4gICQoeyB0YXJnZXQ6ICdKU09OJywgc3RhdDogdHJ1ZSwgYXJpdHk6IDMsIGZvcmNlZDogV1JPTkdfU1lNQk9MU19DT05WRVJTSU9OIHx8IElMTF9GT1JNRURfVU5JQ09ERSB9LCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzIC0tIHJlcXVpcmVkIGZvciBgLmxlbmd0aGBcbiAgICBzdHJpbmdpZnk6IGZ1bmN0aW9uIHN0cmluZ2lmeShpdCwgcmVwbGFjZXIsIHNwYWNlKSB7XG4gICAgICB2YXIgYXJncyA9IGFycmF5U2xpY2UoYXJndW1lbnRzKTtcbiAgICAgIHZhciByZXN1bHQgPSBhcHBseShXUk9OR19TWU1CT0xTX0NPTlZFUlNJT04gPyBzdHJpbmdpZnlXaXRoU3ltYm9sc0ZpeCA6ICRzdHJpbmdpZnksIG51bGwsIGFyZ3MpO1xuICAgICAgcmV0dXJuIElMTF9GT1JNRURfVU5JQ09ERSAmJiB0eXBlb2YgcmVzdWx0ID09ICdzdHJpbmcnID8gcmVwbGFjZShyZXN1bHQsIHRlc3RlciwgZml4SWxsRm9ybWVkKSA6IHJlc3VsdDtcbiAgICB9XG4gIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIGlzRm9yY2VkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWZvcmNlZCcpO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBpbmhlcml0SWZSZXF1aXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbmhlcml0LWlmLXJlcXVpcmVkJyk7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgaXNTeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtc3ltYm9sJyk7XG52YXIgdG9QcmltaXRpdmUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJpbWl0aXZlJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzJykuZjtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpLmY7XG52YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG52YXIgdGhpc051bWJlclZhbHVlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RoaXMtbnVtYmVyLXZhbHVlJyk7XG52YXIgdHJpbSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zdHJpbmctdHJpbScpLnRyaW07XG5cbnZhciBOVU1CRVIgPSAnTnVtYmVyJztcbnZhciBOYXRpdmVOdW1iZXIgPSBnbG9iYWxbTlVNQkVSXTtcbnZhciBOdW1iZXJQcm90b3R5cGUgPSBOYXRpdmVOdW1iZXIucHJvdG90eXBlO1xudmFyIFR5cGVFcnJvciA9IGdsb2JhbC5UeXBlRXJyb3I7XG52YXIgYXJyYXlTbGljZSA9IHVuY3VycnlUaGlzKCcnLnNsaWNlKTtcbnZhciBjaGFyQ29kZUF0ID0gdW5jdXJyeVRoaXMoJycuY2hhckNvZGVBdCk7XG5cbi8vIGBUb051bWVyaWNgIGFic3RyYWN0IG9wZXJhdGlvblxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy10b251bWVyaWNcbnZhciB0b051bWVyaWMgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgdmFyIHByaW1WYWx1ZSA9IHRvUHJpbWl0aXZlKHZhbHVlLCAnbnVtYmVyJyk7XG4gIHJldHVybiB0eXBlb2YgcHJpbVZhbHVlID09ICdiaWdpbnQnID8gcHJpbVZhbHVlIDogdG9OdW1iZXIocHJpbVZhbHVlKTtcbn07XG5cbi8vIGBUb051bWJlcmAgYWJzdHJhY3Qgb3BlcmF0aW9uXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXRvbnVtYmVyXG52YXIgdG9OdW1iZXIgPSBmdW5jdGlvbiAoYXJndW1lbnQpIHtcbiAgdmFyIGl0ID0gdG9QcmltaXRpdmUoYXJndW1lbnQsICdudW1iZXInKTtcbiAgdmFyIGZpcnN0LCB0aGlyZCwgcmFkaXgsIG1heENvZGUsIGRpZ2l0cywgbGVuZ3RoLCBpbmRleCwgY29kZTtcbiAgaWYgKGlzU3ltYm9sKGl0KSkgdGhyb3cgVHlwZUVycm9yKCdDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIG51bWJlcicpO1xuICBpZiAodHlwZW9mIGl0ID09ICdzdHJpbmcnICYmIGl0Lmxlbmd0aCA+IDIpIHtcbiAgICBpdCA9IHRyaW0oaXQpO1xuICAgIGZpcnN0ID0gY2hhckNvZGVBdChpdCwgMCk7XG4gICAgaWYgKGZpcnN0ID09PSA0MyB8fCBmaXJzdCA9PT0gNDUpIHtcbiAgICAgIHRoaXJkID0gY2hhckNvZGVBdChpdCwgMik7XG4gICAgICBpZiAodGhpcmQgPT09IDg4IHx8IHRoaXJkID09PSAxMjApIHJldHVybiBOYU47IC8vIE51bWJlcignKzB4MScpIHNob3VsZCBiZSBOYU4sIG9sZCBWOCBmaXhcbiAgICB9IGVsc2UgaWYgKGZpcnN0ID09PSA0OCkge1xuICAgICAgc3dpdGNoIChjaGFyQ29kZUF0KGl0LCAxKSkge1xuICAgICAgICBjYXNlIDY2OiBjYXNlIDk4OiByYWRpeCA9IDI7IG1heENvZGUgPSA0OTsgYnJlYWs7IC8vIGZhc3QgZXF1YWwgb2YgL14wYlswMV0rJC9pXG4gICAgICAgIGNhc2UgNzk6IGNhc2UgMTExOiByYWRpeCA9IDg7IG1heENvZGUgPSA1NTsgYnJlYWs7IC8vIGZhc3QgZXF1YWwgb2YgL14wb1swLTddKyQvaVxuICAgICAgICBkZWZhdWx0OiByZXR1cm4gK2l0O1xuICAgICAgfVxuICAgICAgZGlnaXRzID0gYXJyYXlTbGljZShpdCwgMik7XG4gICAgICBsZW5ndGggPSBkaWdpdHMubGVuZ3RoO1xuICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvZGUgPSBjaGFyQ29kZUF0KGRpZ2l0cywgaW5kZXgpO1xuICAgICAgICAvLyBwYXJzZUludCBwYXJzZXMgYSBzdHJpbmcgdG8gYSBmaXJzdCB1bmF2YWlsYWJsZSBzeW1ib2xcbiAgICAgICAgLy8gYnV0IFRvTnVtYmVyIHNob3VsZCByZXR1cm4gTmFOIGlmIGEgc3RyaW5nIGNvbnRhaW5zIHVuYXZhaWxhYmxlIHN5bWJvbHNcbiAgICAgICAgaWYgKGNvZGUgPCA0OCB8fCBjb2RlID4gbWF4Q29kZSkgcmV0dXJuIE5hTjtcbiAgICAgIH0gcmV0dXJuIHBhcnNlSW50KGRpZ2l0cywgcmFkaXgpO1xuICAgIH1cbiAgfSByZXR1cm4gK2l0O1xufTtcblxuLy8gYE51bWJlcmAgY29uc3RydWN0b3Jcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtbnVtYmVyLWNvbnN0cnVjdG9yXG5pZiAoaXNGb3JjZWQoTlVNQkVSLCAhTmF0aXZlTnVtYmVyKCcgMG8xJykgfHwgIU5hdGl2ZU51bWJlcignMGIxJykgfHwgTmF0aXZlTnVtYmVyKCcrMHgxJykpKSB7XG4gIHZhciBOdW1iZXJXcmFwcGVyID0gZnVuY3Rpb24gTnVtYmVyKHZhbHVlKSB7XG4gICAgdmFyIG4gPSBhcmd1bWVudHMubGVuZ3RoIDwgMSA/IDAgOiBOYXRpdmVOdW1iZXIodG9OdW1lcmljKHZhbHVlKSk7XG4gICAgdmFyIGR1bW15ID0gdGhpcztcbiAgICAvLyBjaGVjayBvbiAxLi5jb25zdHJ1Y3Rvcihmb28pIGNhc2VcbiAgICByZXR1cm4gaXNQcm90b3R5cGVPZihOdW1iZXJQcm90b3R5cGUsIGR1bW15KSAmJiBmYWlscyhmdW5jdGlvbiAoKSB7IHRoaXNOdW1iZXJWYWx1ZShkdW1teSk7IH0pXG4gICAgICA/IGluaGVyaXRJZlJlcXVpcmVkKE9iamVjdChuKSwgZHVtbXksIE51bWJlcldyYXBwZXIpIDogbjtcbiAgfTtcbiAgZm9yICh2YXIga2V5cyA9IERFU0NSSVBUT1JTID8gZ2V0T3duUHJvcGVydHlOYW1lcyhOYXRpdmVOdW1iZXIpIDogKFxuICAgIC8vIEVTMzpcbiAgICAnTUFYX1ZBTFVFLE1JTl9WQUxVRSxOYU4sTkVHQVRJVkVfSU5GSU5JVFksUE9TSVRJVkVfSU5GSU5JVFksJyArXG4gICAgLy8gRVMyMDE1IChpbiBjYXNlLCBpZiBtb2R1bGVzIHdpdGggRVMyMDE1IE51bWJlciBzdGF0aWNzIHJlcXVpcmVkIGJlZm9yZSk6XG4gICAgJ0VQU0lMT04sTUFYX1NBRkVfSU5URUdFUixNSU5fU0FGRV9JTlRFR0VSLGlzRmluaXRlLGlzSW50ZWdlcixpc05hTixpc1NhZmVJbnRlZ2VyLHBhcnNlRmxvYXQscGFyc2VJbnQsJyArXG4gICAgLy8gRVNOZXh0XG4gICAgJ2Zyb21TdHJpbmcscmFuZ2UnXG4gICkuc3BsaXQoJywnKSwgaiA9IDAsIGtleTsga2V5cy5sZW5ndGggPiBqOyBqKyspIHtcbiAgICBpZiAoaGFzT3duKE5hdGl2ZU51bWJlciwga2V5ID0ga2V5c1tqXSkgJiYgIWhhc093bihOdW1iZXJXcmFwcGVyLCBrZXkpKSB7XG4gICAgICBkZWZpbmVQcm9wZXJ0eShOdW1iZXJXcmFwcGVyLCBrZXksIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihOYXRpdmVOdW1iZXIsIGtleSkpO1xuICAgIH1cbiAgfVxuICBOdW1iZXJXcmFwcGVyLnByb3RvdHlwZSA9IE51bWJlclByb3RvdHlwZTtcbiAgTnVtYmVyUHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTnVtYmVyV3JhcHBlcjtcbiAgZGVmaW5lQnVpbHRJbihnbG9iYWwsIE5VTUJFUiwgTnVtYmVyV3JhcHBlciwgeyBjb25zdHJ1Y3RvcjogdHJ1ZSB9KTtcbn1cbiIsIid1c2Ugc3RyaWN0JztcbnZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIHRvSW50ZWdlck9ySW5maW5pdHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW50ZWdlci1vci1pbmZpbml0eScpO1xudmFyIHRoaXNOdW1iZXJWYWx1ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90aGlzLW51bWJlci12YWx1ZScpO1xudmFyICRyZXBlYXQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc3RyaW5nLXJlcGVhdCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbnZhciAkUmFuZ2VFcnJvciA9IFJhbmdlRXJyb3I7XG52YXIgJFN0cmluZyA9IFN0cmluZztcbnZhciBmbG9vciA9IE1hdGguZmxvb3I7XG52YXIgcmVwZWF0ID0gdW5jdXJyeVRoaXMoJHJlcGVhdCk7XG52YXIgc3RyaW5nU2xpY2UgPSB1bmN1cnJ5VGhpcygnJy5zbGljZSk7XG52YXIgdW4kVG9GaXhlZCA9IHVuY3VycnlUaGlzKDEuMC50b0ZpeGVkKTtcblxudmFyIHBvdyA9IGZ1bmN0aW9uICh4LCBuLCBhY2MpIHtcbiAgcmV0dXJuIG4gPT09IDAgPyBhY2MgOiBuICUgMiA9PT0gMSA/IHBvdyh4LCBuIC0gMSwgYWNjICogeCkgOiBwb3coeCAqIHgsIG4gLyAyLCBhY2MpO1xufTtcblxudmFyIGxvZyA9IGZ1bmN0aW9uICh4KSB7XG4gIHZhciBuID0gMDtcbiAgdmFyIHgyID0geDtcbiAgd2hpbGUgKHgyID49IDQwOTYpIHtcbiAgICBuICs9IDEyO1xuICAgIHgyIC89IDQwOTY7XG4gIH1cbiAgd2hpbGUgKHgyID49IDIpIHtcbiAgICBuICs9IDE7XG4gICAgeDIgLz0gMjtcbiAgfSByZXR1cm4gbjtcbn07XG5cbnZhciBtdWx0aXBseSA9IGZ1bmN0aW9uIChkYXRhLCBuLCBjKSB7XG4gIHZhciBpbmRleCA9IC0xO1xuICB2YXIgYzIgPSBjO1xuICB3aGlsZSAoKytpbmRleCA8IDYpIHtcbiAgICBjMiArPSBuICogZGF0YVtpbmRleF07XG4gICAgZGF0YVtpbmRleF0gPSBjMiAlIDFlNztcbiAgICBjMiA9IGZsb29yKGMyIC8gMWU3KTtcbiAgfVxufTtcblxudmFyIGRpdmlkZSA9IGZ1bmN0aW9uIChkYXRhLCBuKSB7XG4gIHZhciBpbmRleCA9IDY7XG4gIHZhciBjID0gMDtcbiAgd2hpbGUgKC0taW5kZXggPj0gMCkge1xuICAgIGMgKz0gZGF0YVtpbmRleF07XG4gICAgZGF0YVtpbmRleF0gPSBmbG9vcihjIC8gbik7XG4gICAgYyA9IChjICUgbikgKiAxZTc7XG4gIH1cbn07XG5cbnZhciBkYXRhVG9TdHJpbmcgPSBmdW5jdGlvbiAoZGF0YSkge1xuICB2YXIgaW5kZXggPSA2O1xuICB2YXIgcyA9ICcnO1xuICB3aGlsZSAoLS1pbmRleCA+PSAwKSB7XG4gICAgaWYgKHMgIT09ICcnIHx8IGluZGV4ID09PSAwIHx8IGRhdGFbaW5kZXhdICE9PSAwKSB7XG4gICAgICB2YXIgdCA9ICRTdHJpbmcoZGF0YVtpbmRleF0pO1xuICAgICAgcyA9IHMgPT09ICcnID8gdCA6IHMgKyByZXBlYXQoJzAnLCA3IC0gdC5sZW5ndGgpICsgdDtcbiAgICB9XG4gIH0gcmV0dXJuIHM7XG59O1xuXG52YXIgRk9SQ0VEID0gZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdW4kVG9GaXhlZCgwLjAwMDA4LCAzKSAhPT0gJzAuMDAwJyB8fFxuICAgIHVuJFRvRml4ZWQoMC45LCAwKSAhPT0gJzEnIHx8XG4gICAgdW4kVG9GaXhlZCgxLjI1NSwgMikgIT09ICcxLjI1JyB8fFxuICAgIHVuJFRvRml4ZWQoMTAwMDAwMDAwMDAwMDAwMDEyOC4wLCAwKSAhPT0gJzEwMDAwMDAwMDAwMDAwMDAxMjgnO1xufSkgfHwgIWZhaWxzKGZ1bmN0aW9uICgpIHtcbiAgLy8gVjggfiBBbmRyb2lkIDQuMy1cbiAgdW4kVG9GaXhlZCh7fSk7XG59KTtcblxuLy8gYE51bWJlci5wcm90b3R5cGUudG9GaXhlZGAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW51bWJlci5wcm90b3R5cGUudG9maXhlZFxuJCh7IHRhcmdldDogJ051bWJlcicsIHByb3RvOiB0cnVlLCBmb3JjZWQ6IEZPUkNFRCB9LCB7XG4gIHRvRml4ZWQ6IGZ1bmN0aW9uIHRvRml4ZWQoZnJhY3Rpb25EaWdpdHMpIHtcbiAgICB2YXIgbnVtYmVyID0gdGhpc051bWJlclZhbHVlKHRoaXMpO1xuICAgIHZhciBmcmFjdERpZ2l0cyA9IHRvSW50ZWdlck9ySW5maW5pdHkoZnJhY3Rpb25EaWdpdHMpO1xuICAgIHZhciBkYXRhID0gWzAsIDAsIDAsIDAsIDAsIDBdO1xuICAgIHZhciBzaWduID0gJyc7XG4gICAgdmFyIHJlc3VsdCA9ICcwJztcbiAgICB2YXIgZSwgeiwgaiwgaztcblxuICAgIC8vIFRPRE86IEVTMjAxOCBpbmNyZWFzZWQgdGhlIG1heGltdW0gbnVtYmVyIG9mIGZyYWN0aW9uIGRpZ2l0cyB0byAxMDAsIG5lZWQgdG8gaW1wcm92ZSB0aGUgaW1wbGVtZW50YXRpb25cbiAgICBpZiAoZnJhY3REaWdpdHMgPCAwIHx8IGZyYWN0RGlnaXRzID4gMjApIHRocm93ICRSYW5nZUVycm9yKCdJbmNvcnJlY3QgZnJhY3Rpb24gZGlnaXRzJyk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZSAtLSBOYU4gY2hlY2tcbiAgICBpZiAobnVtYmVyICE9IG51bWJlcikgcmV0dXJuICdOYU4nO1xuICAgIGlmIChudW1iZXIgPD0gLTFlMjEgfHwgbnVtYmVyID49IDFlMjEpIHJldHVybiAkU3RyaW5nKG51bWJlcik7XG4gICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgIHNpZ24gPSAnLSc7XG4gICAgICBudW1iZXIgPSAtbnVtYmVyO1xuICAgIH1cbiAgICBpZiAobnVtYmVyID4gMWUtMjEpIHtcbiAgICAgIGUgPSBsb2cobnVtYmVyICogcG93KDIsIDY5LCAxKSkgLSA2OTtcbiAgICAgIHogPSBlIDwgMCA/IG51bWJlciAqIHBvdygyLCAtZSwgMSkgOiBudW1iZXIgLyBwb3coMiwgZSwgMSk7XG4gICAgICB6ICo9IDB4MTAwMDAwMDAwMDAwMDA7XG4gICAgICBlID0gNTIgLSBlO1xuICAgICAgaWYgKGUgPiAwKSB7XG4gICAgICAgIG11bHRpcGx5KGRhdGEsIDAsIHopO1xuICAgICAgICBqID0gZnJhY3REaWdpdHM7XG4gICAgICAgIHdoaWxlIChqID49IDcpIHtcbiAgICAgICAgICBtdWx0aXBseShkYXRhLCAxZTcsIDApO1xuICAgICAgICAgIGogLT0gNztcbiAgICAgICAgfVxuICAgICAgICBtdWx0aXBseShkYXRhLCBwb3coMTAsIGosIDEpLCAwKTtcbiAgICAgICAgaiA9IGUgLSAxO1xuICAgICAgICB3aGlsZSAoaiA+PSAyMykge1xuICAgICAgICAgIGRpdmlkZShkYXRhLCAxIDw8IDIzKTtcbiAgICAgICAgICBqIC09IDIzO1xuICAgICAgICB9XG4gICAgICAgIGRpdmlkZShkYXRhLCAxIDw8IGopO1xuICAgICAgICBtdWx0aXBseShkYXRhLCAxLCAxKTtcbiAgICAgICAgZGl2aWRlKGRhdGEsIDIpO1xuICAgICAgICByZXN1bHQgPSBkYXRhVG9TdHJpbmcoZGF0YSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtdWx0aXBseShkYXRhLCAwLCB6KTtcbiAgICAgICAgbXVsdGlwbHkoZGF0YSwgMSA8PCAtZSwgMCk7XG4gICAgICAgIHJlc3VsdCA9IGRhdGFUb1N0cmluZyhkYXRhKSArIHJlcGVhdCgnMCcsIGZyYWN0RGlnaXRzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZyYWN0RGlnaXRzID4gMCkge1xuICAgICAgayA9IHJlc3VsdC5sZW5ndGg7XG4gICAgICByZXN1bHQgPSBzaWduICsgKGsgPD0gZnJhY3REaWdpdHNcbiAgICAgICAgPyAnMC4nICsgcmVwZWF0KCcwJywgZnJhY3REaWdpdHMgLSBrKSArIHJlc3VsdFxuICAgICAgICA6IHN0cmluZ1NsaWNlKHJlc3VsdCwgMCwgayAtIGZyYWN0RGlnaXRzKSArICcuJyArIHN0cmluZ1NsaWNlKHJlc3VsdCwgayAtIGZyYWN0RGlnaXRzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IHNpZ24gKyByZXN1bHQ7XG4gICAgfSByZXR1cm4gcmVzdWx0O1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGFzc2lnbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtYXNzaWduJyk7XG5cbi8vIGBPYmplY3QuYXNzaWduYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmFzc2lnblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWFzc2lnbiAtLSByZXF1aXJlZCBmb3IgdGVzdGluZ1xuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGFyaXR5OiAyLCBmb3JjZWQ6IE9iamVjdC5hc3NpZ24gIT09IGFzc2lnbiB9LCB7XG4gIGFzc2lnbjogYXNzaWduXG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIEZSRUVaSU5HID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZyZWV6aW5nJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBpc09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pcy1vYmplY3QnKTtcbnZhciBvbkZyZWV6ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1tZXRhZGF0YScpLm9uRnJlZXplO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1vYmplY3QtZnJlZXplIC0tIHNhZmVcbnZhciAkZnJlZXplID0gT2JqZWN0LmZyZWV6ZTtcbnZhciBGQUlMU19PTl9QUklNSVRJVkVTID0gZmFpbHMoZnVuY3Rpb24gKCkgeyAkZnJlZXplKDEpOyB9KTtcblxuLy8gYE9iamVjdC5mcmVlemVgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZnJlZXplXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSwgZm9yY2VkOiBGQUlMU19PTl9QUklNSVRJVkVTLCBzaGFtOiAhRlJFRVpJTkcgfSwge1xuICBmcmVlemU6IGZ1bmN0aW9uIGZyZWV6ZShpdCkge1xuICAgIHJldHVybiAkZnJlZXplICYmIGlzT2JqZWN0KGl0KSA/ICRmcmVlemUob25GcmVlemUoaXQpKSA6IGl0O1xuICB9XG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgdG9JbmRleGVkT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWluZGV4ZWQtb2JqZWN0Jyk7XG52YXIgbmF0aXZlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LWRlc2NyaXB0b3InKS5mO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG5cbnZhciBGQUlMU19PTl9QUklNSVRJVkVTID0gZmFpbHMoZnVuY3Rpb24gKCkgeyBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoMSk7IH0pO1xudmFyIEZPUkNFRCA9ICFERVNDUklQVE9SUyB8fCBGQUlMU19PTl9QUklNSVRJVkVTO1xuXG4vLyBgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcmAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5nZXRvd25wcm9wZXJ0eWRlc2NyaXB0b3JcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IEZPUkNFRCwgc2hhbTogIURFU0NSSVBUT1JTIH0sIHtcbiAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaXQsIGtleSkge1xuICAgIHJldHVybiBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodG9JbmRleGVkT2JqZWN0KGl0KSwga2V5KTtcbiAgfVxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBERVNDUklQVE9SUyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZXNjcmlwdG9ycycpO1xudmFyIG93bktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb3duLWtleXMnKTtcbnZhciB0b0luZGV4ZWRPYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8taW5kZXhlZC1vYmplY3QnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIGNyZWF0ZVByb3BlcnR5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NyZWF0ZS1wcm9wZXJ0eScpO1xuXG4vLyBgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnNgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yc1xuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIHNoYW06ICFERVNDUklQVE9SUyB9LCB7XG4gIGdldE93blByb3BlcnR5RGVzY3JpcHRvcnM6IGZ1bmN0aW9uIGdldE93blByb3BlcnR5RGVzY3JpcHRvcnMob2JqZWN0KSB7XG4gICAgdmFyIE8gPSB0b0luZGV4ZWRPYmplY3Qob2JqZWN0KTtcbiAgICB2YXIgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlLmY7XG4gICAgdmFyIGtleXMgPSBvd25LZXlzKE8pO1xuICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICB2YXIgaW5kZXggPSAwO1xuICAgIHZhciBrZXksIGRlc2NyaXB0b3I7XG4gICAgd2hpbGUgKGtleXMubGVuZ3RoID4gaW5kZXgpIHtcbiAgICAgIGRlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywga2V5ID0ga2V5c1tpbmRleCsrXSk7XG4gICAgICBpZiAoZGVzY3JpcHRvciAhPT0gdW5kZWZpbmVkKSBjcmVhdGVQcm9wZXJ0eShyZXN1bHQsIGtleSwgZGVzY3JpcHRvcik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LW5hbWVzLWV4dGVybmFsJykuZjtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVzLXgvbm8tb2JqZWN0LWdldG93bnByb3BlcnR5bmFtZXMgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbnZhciBGQUlMU19PTl9QUklNSVRJVkVTID0gZmFpbHMoZnVuY3Rpb24gKCkgeyByZXR1cm4gIU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKDEpOyB9KTtcblxuLy8gYE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5bmFtZXNcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IEZBSUxTX09OX1BSSU1JVElWRVMgfSwge1xuICBnZXRPd25Qcm9wZXJ0eU5hbWVzOiBnZXRPd25Qcm9wZXJ0eU5hbWVzXG59KTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIE5BVElWRV9TWU1CT0wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvbmF0aXZlLXN5bWJvbCcpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG52YXIgZ2V0T3duUHJvcGVydHlTeW1ib2xzTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMnKTtcbnZhciB0b09iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1vYmplY3QnKTtcblxuLy8gVjggfiBDaHJvbWUgMzggYW5kIDM5IGBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzYCBmYWlscyBvbiBwcmltaXRpdmVzXG4vLyBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0zNDQzXG52YXIgRk9SQ0VEID0gIU5BVElWRV9TWU1CT0wgfHwgZmFpbHMoZnVuY3Rpb24gKCkgeyBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUuZigxKTsgfSk7XG5cbi8vIGBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5c3ltYm9sc1xuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogRk9SQ0VEIH0sIHtcbiAgZ2V0T3duUHJvcGVydHlTeW1ib2xzOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaXQpIHtcbiAgICB2YXIgJGdldE93blByb3BlcnR5U3ltYm9scyA9IGdldE93blByb3BlcnR5U3ltYm9sc01vZHVsZS5mO1xuICAgIHJldHVybiAkZ2V0T3duUHJvcGVydHlTeW1ib2xzID8gJGdldE93blByb3BlcnR5U3ltYm9scyh0b09iamVjdChpdCkpIDogW107XG4gIH1cbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdG9PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tb2JqZWN0Jyk7XG52YXIgbmF0aXZlS2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cycpO1xudmFyIGZhaWxzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZhaWxzJyk7XG5cbnZhciBGQUlMU19PTl9QUklNSVRJVkVTID0gZmFpbHMoZnVuY3Rpb24gKCkgeyBuYXRpdmVLZXlzKDEpOyB9KTtcblxuLy8gYE9iamVjdC5rZXlzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmtleXNcbiQoeyB0YXJnZXQ6ICdPYmplY3QnLCBzdGF0OiB0cnVlLCBmb3JjZWQ6IEZBSUxTX09OX1BSSU1JVElWRVMgfSwge1xuICBrZXlzOiBmdW5jdGlvbiBrZXlzKGl0KSB7XG4gICAgcmV0dXJuIG5hdGl2ZUtleXModG9PYmplY3QoaXQpKTtcbiAgfVxufSk7XG4iLCJ2YXIgVE9fU1RSSU5HX1RBR19TVVBQT1JUID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZy10YWctc3VwcG9ydCcpO1xudmFyIGRlZmluZUJ1aWx0SW4gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluJyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXRvLXN0cmluZycpO1xuXG4vLyBgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ2AgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLW9iamVjdC5wcm90b3R5cGUudG9zdHJpbmdcbmlmICghVE9fU1RSSU5HX1RBR19TVVBQT1JUKSB7XG4gIGRlZmluZUJ1aWx0SW4oT2JqZWN0LnByb3RvdHlwZSwgJ3RvU3RyaW5nJywgdG9TdHJpbmcsIHsgdW5zYWZlOiB0cnVlIH0pO1xufVxuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZXhlYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZXhlYycpO1xuXG4vLyBgUmVnRXhwLnByb3RvdHlwZS5leGVjYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS5leGVjXG4kKHsgdGFyZ2V0OiAnUmVnRXhwJywgcHJvdG86IHRydWUsIGZvcmNlZDogLy4vLmV4ZWMgIT09IGV4ZWMgfSwge1xuICBleGVjOiBleGVjXG59KTtcbiIsInZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBkZWZpbmVCdWlsdEluQWNjZXNzb3IgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVmaW5lLWJ1aWx0LWluLWFjY2Vzc29yJyk7XG52YXIgcmVnRXhwRmxhZ3MgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWZsYWdzJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcblxuLy8gYmFiZWwtbWluaWZ5IGFuZCBDbG9zdXJlIENvbXBpbGVyIHRyYW5zcGlsZXMgUmVnRXhwKCcuJywgJ2QnKSAtPiAvLi9kIGFuZCBpdCBjYXVzZXMgU3ludGF4RXJyb3JcbnZhciBSZWdFeHAgPSBnbG9iYWwuUmVnRXhwO1xudmFyIFJlZ0V4cFByb3RvdHlwZSA9IFJlZ0V4cC5wcm90b3R5cGU7XG5cbnZhciBGT1JDRUQgPSBERVNDUklQVE9SUyAmJiBmYWlscyhmdW5jdGlvbiAoKSB7XG4gIHZhciBJTkRJQ0VTX1NVUFBPUlQgPSB0cnVlO1xuICB0cnkge1xuICAgIFJlZ0V4cCgnLicsICdkJyk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgSU5ESUNFU19TVVBQT1JUID0gZmFsc2U7XG4gIH1cblxuICB2YXIgTyA9IHt9O1xuICAvLyBtb2Rlcm4gVjggYnVnXG4gIHZhciBjYWxscyA9ICcnO1xuICB2YXIgZXhwZWN0ZWQgPSBJTkRJQ0VTX1NVUFBPUlQgPyAnZGdpbXN5JyA6ICdnaW1zeSc7XG5cbiAgdmFyIGFkZEdldHRlciA9IGZ1bmN0aW9uIChrZXksIGNocikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLW9iamVjdC1kZWZpbmVwcm9wZXJ0eSAtLSBzYWZlXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIGtleSwgeyBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIGNhbGxzICs9IGNocjtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gfSk7XG4gIH07XG5cbiAgdmFyIHBhaXJzID0ge1xuICAgIGRvdEFsbDogJ3MnLFxuICAgIGdsb2JhbDogJ2cnLFxuICAgIGlnbm9yZUNhc2U6ICdpJyxcbiAgICBtdWx0aWxpbmU6ICdtJyxcbiAgICBzdGlja3k6ICd5J1xuICB9O1xuXG4gIGlmIChJTkRJQ0VTX1NVUFBPUlQpIHBhaXJzLmhhc0luZGljZXMgPSAnZCc7XG5cbiAgZm9yICh2YXIga2V5IGluIHBhaXJzKSBhZGRHZXR0ZXIoa2V5LCBwYWlyc1trZXldKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXMteC9uby1vYmplY3QtZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yIC0tIHNhZmVcbiAgdmFyIHJlc3VsdCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUmVnRXhwUHJvdG90eXBlLCAnZmxhZ3MnKS5nZXQuY2FsbChPKTtcblxuICByZXR1cm4gcmVzdWx0ICE9PSBleHBlY3RlZCB8fCBjYWxscyAhPT0gZXhwZWN0ZWQ7XG59KTtcblxuLy8gYFJlZ0V4cC5wcm90b3R5cGUuZmxhZ3NgIGdldHRlclxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1nZXQtcmVnZXhwLnByb3RvdHlwZS5mbGFnc1xuaWYgKEZPUkNFRCkgZGVmaW5lQnVpbHRJbkFjY2Vzc29yKFJlZ0V4cFByb3RvdHlwZSwgJ2ZsYWdzJywge1xuICBjb25maWd1cmFibGU6IHRydWUsXG4gIGdldDogcmVnRXhwRmxhZ3Ncbn0pO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgdG9BYnNvbHV0ZUluZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLWFic29sdXRlLWluZGV4Jyk7XG5cbnZhciAkUmFuZ2VFcnJvciA9IFJhbmdlRXJyb3I7XG52YXIgZnJvbUNoYXJDb2RlID0gU3RyaW5nLmZyb21DaGFyQ29kZTtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBlcy14L25vLXN0cmluZy1mcm9tY29kZXBvaW50IC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG52YXIgJGZyb21Db2RlUG9pbnQgPSBTdHJpbmcuZnJvbUNvZGVQb2ludDtcbnZhciBqb2luID0gdW5jdXJyeVRoaXMoW10uam9pbik7XG5cbi8vIGxlbmd0aCBzaG91bGQgYmUgMSwgb2xkIEZGIHByb2JsZW1cbnZhciBJTkNPUlJFQ1RfTEVOR1RIID0gISEkZnJvbUNvZGVQb2ludCAmJiAkZnJvbUNvZGVQb2ludC5sZW5ndGggIT0gMTtcblxuLy8gYFN0cmluZy5mcm9tQ29kZVBvaW50YCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLmZyb21jb2RlcG9pbnRcbiQoeyB0YXJnZXQ6ICdTdHJpbmcnLCBzdGF0OiB0cnVlLCBhcml0eTogMSwgZm9yY2VkOiBJTkNPUlJFQ1RfTEVOR1RIIH0sIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzIC0tIHJlcXVpcmVkIGZvciBgLmxlbmd0aGBcbiAgZnJvbUNvZGVQb2ludDogZnVuY3Rpb24gZnJvbUNvZGVQb2ludCh4KSB7XG4gICAgdmFyIGVsZW1lbnRzID0gW107XG4gICAgdmFyIGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIGkgPSAwO1xuICAgIHZhciBjb2RlO1xuICAgIHdoaWxlIChsZW5ndGggPiBpKSB7XG4gICAgICBjb2RlID0gK2FyZ3VtZW50c1tpKytdO1xuICAgICAgaWYgKHRvQWJzb2x1dGVJbmRleChjb2RlLCAweDEwRkZGRikgIT09IGNvZGUpIHRocm93ICRSYW5nZUVycm9yKGNvZGUgKyAnIGlzIG5vdCBhIHZhbGlkIGNvZGUgcG9pbnQnKTtcbiAgICAgIGVsZW1lbnRzW2ldID0gY29kZSA8IDB4MTAwMDBcbiAgICAgICAgPyBmcm9tQ2hhckNvZGUoY29kZSlcbiAgICAgICAgOiBmcm9tQ2hhckNvZGUoKChjb2RlIC09IDB4MTAwMDApID4+IDEwKSArIDB4RDgwMCwgY29kZSAlIDB4NDAwICsgMHhEQzAwKTtcbiAgICB9IHJldHVybiBqb2luKGVsZW1lbnRzLCAnJyk7XG4gIH1cbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgbm90QVJlZ0V4cCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9ub3QtYS1yZWdleHAnKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIGNvcnJlY3RJc1JlZ0V4cExvZ2ljID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2NvcnJlY3QtaXMtcmVnZXhwLWxvZ2ljJyk7XG5cbnZhciBzdHJpbmdJbmRleE9mID0gdW5jdXJyeVRoaXMoJycuaW5kZXhPZik7XG5cbi8vIGBTdHJpbmcucHJvdG90eXBlLmluY2x1ZGVzYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5pbmNsdWRlc1xuJCh7IHRhcmdldDogJ1N0cmluZycsIHByb3RvOiB0cnVlLCBmb3JjZWQ6ICFjb3JyZWN0SXNSZWdFeHBMb2dpYygnaW5jbHVkZXMnKSB9LCB7XG4gIGluY2x1ZGVzOiBmdW5jdGlvbiBpbmNsdWRlcyhzZWFyY2hTdHJpbmcgLyogLCBwb3NpdGlvbiA9IDAgKi8pIHtcbiAgICByZXR1cm4gISF+c3RyaW5nSW5kZXhPZihcbiAgICAgIHRvU3RyaW5nKHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhpcykpLFxuICAgICAgdG9TdHJpbmcobm90QVJlZ0V4cChzZWFyY2hTdHJpbmcpKSxcbiAgICAgIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkXG4gICAgKTtcbiAgfVxufSk7XG4iLCIndXNlIHN0cmljdCc7XG52YXIgY2hhckF0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N0cmluZy1tdWx0aWJ5dGUnKS5jaGFyQXQ7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG52YXIgSW50ZXJuYWxTdGF0ZU1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9pbnRlcm5hbC1zdGF0ZScpO1xudmFyIGRlZmluZUl0ZXJhdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1pdGVyYXRvcicpO1xuXG52YXIgU1RSSU5HX0lURVJBVE9SID0gJ1N0cmluZyBJdGVyYXRvcic7XG52YXIgc2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuc2V0O1xudmFyIGdldEludGVybmFsU3RhdGUgPSBJbnRlcm5hbFN0YXRlTW9kdWxlLmdldHRlckZvcihTVFJJTkdfSVRFUkFUT1IpO1xuXG4vLyBgU3RyaW5nLnByb3RvdHlwZVtAQGl0ZXJhdG9yXWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUtQEBpdGVyYXRvclxuZGVmaW5lSXRlcmF0b3IoU3RyaW5nLCAnU3RyaW5nJywgZnVuY3Rpb24gKGl0ZXJhdGVkKSB7XG4gIHNldEludGVybmFsU3RhdGUodGhpcywge1xuICAgIHR5cGU6IFNUUklOR19JVEVSQVRPUixcbiAgICBzdHJpbmc6IHRvU3RyaW5nKGl0ZXJhdGVkKSxcbiAgICBpbmRleDogMFxuICB9KTtcbi8vIGAlU3RyaW5nSXRlcmF0b3JQcm90b3R5cGUlLm5leHRgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy0lc3RyaW5naXRlcmF0b3Jwcm90b3R5cGUlLm5leHRcbn0sIGZ1bmN0aW9uIG5leHQoKSB7XG4gIHZhciBzdGF0ZSA9IGdldEludGVybmFsU3RhdGUodGhpcyk7XG4gIHZhciBzdHJpbmcgPSBzdGF0ZS5zdHJpbmc7XG4gIHZhciBpbmRleCA9IHN0YXRlLmluZGV4O1xuICB2YXIgcG9pbnQ7XG4gIGlmIChpbmRleCA+PSBzdHJpbmcubGVuZ3RoKSByZXR1cm4geyB2YWx1ZTogdW5kZWZpbmVkLCBkb25lOiB0cnVlIH07XG4gIHBvaW50ID0gY2hhckF0KHN0cmluZywgaW5kZXgpO1xuICBzdGF0ZS5pbmRleCArPSBwb2ludC5sZW5ndGg7XG4gIHJldHVybiB7IHZhbHVlOiBwb2ludCwgZG9uZTogZmFsc2UgfTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIGZpeFJlZ0V4cFdlbGxLbm93blN5bWJvbExvZ2ljID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ZpeC1yZWdleHAtd2VsbC1rbm93bi1zeW1ib2wtbG9naWMnKTtcbnZhciBhbk9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9hbi1vYmplY3QnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcbnZhciByZXF1aXJlT2JqZWN0Q29lcmNpYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlcXVpcmUtb2JqZWN0LWNvZXJjaWJsZScpO1xudmFyIGdldE1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtbWV0aG9kJyk7XG52YXIgYWR2YW5jZVN0cmluZ0luZGV4ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FkdmFuY2Utc3RyaW5nLWluZGV4Jyk7XG52YXIgcmVnRXhwRXhlYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZXhlYy1hYnN0cmFjdCcpO1xuXG4vLyBAQG1hdGNoIGxvZ2ljXG5maXhSZWdFeHBXZWxsS25vd25TeW1ib2xMb2dpYygnbWF0Y2gnLCBmdW5jdGlvbiAoTUFUQ0gsIG5hdGl2ZU1hdGNoLCBtYXliZUNhbGxOYXRpdmUpIHtcbiAgcmV0dXJuIFtcbiAgICAvLyBgU3RyaW5nLnByb3RvdHlwZS5tYXRjaGAgbWV0aG9kXG4gICAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zdHJpbmcucHJvdG90eXBlLm1hdGNoXG4gICAgZnVuY3Rpb24gbWF0Y2gocmVnZXhwKSB7XG4gICAgICB2YXIgTyA9IHJlcXVpcmVPYmplY3RDb2VyY2libGUodGhpcyk7XG4gICAgICB2YXIgbWF0Y2hlciA9IHJlZ2V4cCA9PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBnZXRNZXRob2QocmVnZXhwLCBNQVRDSCk7XG4gICAgICByZXR1cm4gbWF0Y2hlciA/IGNhbGwobWF0Y2hlciwgcmVnZXhwLCBPKSA6IG5ldyBSZWdFeHAocmVnZXhwKVtNQVRDSF0odG9TdHJpbmcoTykpO1xuICAgIH0sXG4gICAgLy8gYFJlZ0V4cC5wcm90b3R5cGVbQEBtYXRjaF1gIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1AQG1hdGNoXG4gICAgZnVuY3Rpb24gKHN0cmluZykge1xuICAgICAgdmFyIHJ4ID0gYW5PYmplY3QodGhpcyk7XG4gICAgICB2YXIgUyA9IHRvU3RyaW5nKHN0cmluZyk7XG4gICAgICB2YXIgcmVzID0gbWF5YmVDYWxsTmF0aXZlKG5hdGl2ZU1hdGNoLCByeCwgUyk7XG5cbiAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcblxuICAgICAgaWYgKCFyeC5nbG9iYWwpIHJldHVybiByZWdFeHBFeGVjKHJ4LCBTKTtcblxuICAgICAgdmFyIGZ1bGxVbmljb2RlID0gcngudW5pY29kZTtcbiAgICAgIHJ4Lmxhc3RJbmRleCA9IDA7XG4gICAgICB2YXIgQSA9IFtdO1xuICAgICAgdmFyIG4gPSAwO1xuICAgICAgdmFyIHJlc3VsdDtcbiAgICAgIHdoaWxlICgocmVzdWx0ID0gcmVnRXhwRXhlYyhyeCwgUykpICE9PSBudWxsKSB7XG4gICAgICAgIHZhciBtYXRjaFN0ciA9IHRvU3RyaW5nKHJlc3VsdFswXSk7XG4gICAgICAgIEFbbl0gPSBtYXRjaFN0cjtcbiAgICAgICAgaWYgKG1hdGNoU3RyID09PSAnJykgcngubGFzdEluZGV4ID0gYWR2YW5jZVN0cmluZ0luZGV4KFMsIHRvTGVuZ3RoKHJ4Lmxhc3RJbmRleCksIGZ1bGxVbmljb2RlKTtcbiAgICAgICAgbisrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG4gPT09IDAgPyBudWxsIDogQTtcbiAgICB9XG4gIF07XG59KTtcbiIsIid1c2Ugc3RyaWN0JztcbnZhciBjYWxsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWNhbGwnKTtcbnZhciBmaXhSZWdFeHBXZWxsS25vd25TeW1ib2xMb2dpYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9maXgtcmVnZXhwLXdlbGwta25vd24tc3ltYm9sLWxvZ2ljJyk7XG52YXIgYW5PYmplY3QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYW4tb2JqZWN0Jyk7XG52YXIgcmVxdWlyZU9iamVjdENvZXJjaWJsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZXF1aXJlLW9iamVjdC1jb2VyY2libGUnKTtcbnZhciBzYW1lVmFsdWUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2FtZS12YWx1ZScpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIGdldE1ldGhvZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtbWV0aG9kJyk7XG52YXIgcmVnRXhwRXhlYyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtZXhlYy1hYnN0cmFjdCcpO1xuXG4vLyBAQHNlYXJjaCBsb2dpY1xuZml4UmVnRXhwV2VsbEtub3duU3ltYm9sTG9naWMoJ3NlYXJjaCcsIGZ1bmN0aW9uIChTRUFSQ0gsIG5hdGl2ZVNlYXJjaCwgbWF5YmVDYWxsTmF0aXZlKSB7XG4gIHJldHVybiBbXG4gICAgLy8gYFN0cmluZy5wcm90b3R5cGUuc2VhcmNoYCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN0cmluZy5wcm90b3R5cGUuc2VhcmNoXG4gICAgZnVuY3Rpb24gc2VhcmNoKHJlZ2V4cCkge1xuICAgICAgdmFyIE8gPSByZXF1aXJlT2JqZWN0Q29lcmNpYmxlKHRoaXMpO1xuICAgICAgdmFyIHNlYXJjaGVyID0gcmVnZXhwID09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IGdldE1ldGhvZChyZWdleHAsIFNFQVJDSCk7XG4gICAgICByZXR1cm4gc2VhcmNoZXIgPyBjYWxsKHNlYXJjaGVyLCByZWdleHAsIE8pIDogbmV3IFJlZ0V4cChyZWdleHApW1NFQVJDSF0odG9TdHJpbmcoTykpO1xuICAgIH0sXG4gICAgLy8gYFJlZ0V4cC5wcm90b3R5cGVbQEBzZWFyY2hdYCBtZXRob2RcbiAgICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXJlZ2V4cC5wcm90b3R5cGUtQEBzZWFyY2hcbiAgICBmdW5jdGlvbiAoc3RyaW5nKSB7XG4gICAgICB2YXIgcnggPSBhbk9iamVjdCh0aGlzKTtcbiAgICAgIHZhciBTID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIHZhciByZXMgPSBtYXliZUNhbGxOYXRpdmUobmF0aXZlU2VhcmNoLCByeCwgUyk7XG5cbiAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcblxuICAgICAgdmFyIHByZXZpb3VzTGFzdEluZGV4ID0gcngubGFzdEluZGV4O1xuICAgICAgaWYgKCFzYW1lVmFsdWUocHJldmlvdXNMYXN0SW5kZXgsIDApKSByeC5sYXN0SW5kZXggPSAwO1xuICAgICAgdmFyIHJlc3VsdCA9IHJlZ0V4cEV4ZWMocngsIFMpO1xuICAgICAgaWYgKCFzYW1lVmFsdWUocngubGFzdEluZGV4LCBwcmV2aW91c0xhc3RJbmRleCkpIHJ4Lmxhc3RJbmRleCA9IHByZXZpb3VzTGFzdEluZGV4O1xuICAgICAgcmV0dXJuIHJlc3VsdCA9PT0gbnVsbCA/IC0xIDogcmVzdWx0LmluZGV4O1xuICAgIH1cbiAgXTtcbn0pO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyIGFwcGx5ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLWFwcGx5Jyk7XG52YXIgY2FsbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mdW5jdGlvbi1jYWxsJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgZml4UmVnRXhwV2VsbEtub3duU3ltYm9sTG9naWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZml4LXJlZ2V4cC13ZWxsLWtub3duLXN5bWJvbC1sb2dpYycpO1xudmFyIGlzUmVnRXhwID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLXJlZ2V4cCcpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHJlcXVpcmVPYmplY3RDb2VyY2libGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVxdWlyZS1vYmplY3QtY29lcmNpYmxlJyk7XG52YXIgc3BlY2llc0NvbnN0cnVjdG9yID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NwZWNpZXMtY29uc3RydWN0b3InKTtcbnZhciBhZHZhbmNlU3RyaW5nSW5kZXggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYWR2YW5jZS1zdHJpbmctaW5kZXgnKTtcbnZhciB0b0xlbmd0aCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1sZW5ndGgnKTtcbnZhciB0b1N0cmluZyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1zdHJpbmcnKTtcbnZhciBnZXRNZXRob2QgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2V0LW1ldGhvZCcpO1xudmFyIGFycmF5U2xpY2UgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktc2xpY2Utc2ltcGxlJyk7XG52YXIgY2FsbFJlZ0V4cEV4ZWMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvcmVnZXhwLWV4ZWMtYWJzdHJhY3QnKTtcbnZhciByZWdleHBFeGVjID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3JlZ2V4cC1leGVjJyk7XG52YXIgc3RpY2t5SGVscGVycyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9yZWdleHAtc3RpY2t5LWhlbHBlcnMnKTtcbnZhciBmYWlscyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9mYWlscycpO1xuXG52YXIgVU5TVVBQT1JURURfWSA9IHN0aWNreUhlbHBlcnMuVU5TVVBQT1JURURfWTtcbnZhciBNQVhfVUlOVDMyID0gMHhGRkZGRkZGRjtcbnZhciBtaW4gPSBNYXRoLm1pbjtcbnZhciAkcHVzaCA9IFtdLnB1c2g7XG52YXIgZXhlYyA9IHVuY3VycnlUaGlzKC8uLy5leGVjKTtcbnZhciBwdXNoID0gdW5jdXJyeVRoaXMoJHB1c2gpO1xudmFyIHN0cmluZ1NsaWNlID0gdW5jdXJyeVRoaXMoJycuc2xpY2UpO1xuXG4vLyBDaHJvbWUgNTEgaGFzIGEgYnVnZ3kgXCJzcGxpdFwiIGltcGxlbWVudGF0aW9uIHdoZW4gUmVnRXhwI2V4ZWMgIT09IG5hdGl2ZUV4ZWNcbi8vIFdlZXggSlMgaGFzIGZyb3plbiBidWlsdC1pbiBwcm90b3R5cGVzLCBzbyB1c2UgdHJ5IC8gY2F0Y2ggd3JhcHBlclxudmFyIFNQTElUX1dPUktTX1dJVEhfT1ZFUldSSVRURU5fRVhFQyA9ICFmYWlscyhmdW5jdGlvbiAoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWdleHAvbm8tZW1wdHktZ3JvdXAgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgdmFyIHJlID0gLyg/OikvO1xuICB2YXIgb3JpZ2luYWxFeGVjID0gcmUuZXhlYztcbiAgcmUuZXhlYyA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG9yaWdpbmFsRXhlYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyB9O1xuICB2YXIgcmVzdWx0ID0gJ2FiJy5zcGxpdChyZSk7XG4gIHJldHVybiByZXN1bHQubGVuZ3RoICE9PSAyIHx8IHJlc3VsdFswXSAhPT0gJ2EnIHx8IHJlc3VsdFsxXSAhPT0gJ2InO1xufSk7XG5cbi8vIEBAc3BsaXQgbG9naWNcbmZpeFJlZ0V4cFdlbGxLbm93blN5bWJvbExvZ2ljKCdzcGxpdCcsIGZ1bmN0aW9uIChTUExJVCwgbmF0aXZlU3BsaXQsIG1heWJlQ2FsbE5hdGl2ZSkge1xuICB2YXIgaW50ZXJuYWxTcGxpdDtcbiAgaWYgKFxuICAgICdhYmJjJy5zcGxpdCgvKGIpKi8pWzFdID09ICdjJyB8fFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWdleHAvbm8tZW1wdHktZ3JvdXAgLS0gcmVxdWlyZWQgZm9yIHRlc3RpbmdcbiAgICAndGVzdCcuc3BsaXQoLyg/OikvLCAtMSkubGVuZ3RoICE9IDQgfHxcbiAgICAnYWInLnNwbGl0KC8oPzphYikqLykubGVuZ3RoICE9IDIgfHxcbiAgICAnLicuc3BsaXQoLyguPykoLj8pLykubGVuZ3RoICE9IDQgfHxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVnZXhwL25vLWVtcHR5LWNhcHR1cmluZy1ncm91cCwgcmVnZXhwL25vLWVtcHR5LWdyb3VwIC0tIHJlcXVpcmVkIGZvciB0ZXN0aW5nXG4gICAgJy4nLnNwbGl0KC8oKSgpLykubGVuZ3RoID4gMSB8fFxuICAgICcnLnNwbGl0KC8uPy8pLmxlbmd0aFxuICApIHtcbiAgICAvLyBiYXNlZCBvbiBlczUtc2hpbSBpbXBsZW1lbnRhdGlvbiwgbmVlZCB0byByZXdvcmsgaXRcbiAgICBpbnRlcm5hbFNwbGl0ID0gZnVuY3Rpb24gKHNlcGFyYXRvciwgbGltaXQpIHtcbiAgICAgIHZhciBzdHJpbmcgPSB0b1N0cmluZyhyZXF1aXJlT2JqZWN0Q29lcmNpYmxlKHRoaXMpKTtcbiAgICAgIHZhciBsaW0gPSBsaW1pdCA9PT0gdW5kZWZpbmVkID8gTUFYX1VJTlQzMiA6IGxpbWl0ID4+PiAwO1xuICAgICAgaWYgKGxpbSA9PT0gMCkgcmV0dXJuIFtdO1xuICAgICAgaWYgKHNlcGFyYXRvciA9PT0gdW5kZWZpbmVkKSByZXR1cm4gW3N0cmluZ107XG4gICAgICAvLyBJZiBgc2VwYXJhdG9yYCBpcyBub3QgYSByZWdleCwgdXNlIG5hdGl2ZSBzcGxpdFxuICAgICAgaWYgKCFpc1JlZ0V4cChzZXBhcmF0b3IpKSB7XG4gICAgICAgIHJldHVybiBjYWxsKG5hdGl2ZVNwbGl0LCBzdHJpbmcsIHNlcGFyYXRvciwgbGltKTtcbiAgICAgIH1cbiAgICAgIHZhciBvdXRwdXQgPSBbXTtcbiAgICAgIHZhciBmbGFncyA9IChzZXBhcmF0b3IuaWdub3JlQ2FzZSA/ICdpJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAoc2VwYXJhdG9yLm11bHRpbGluZSA/ICdtJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAoc2VwYXJhdG9yLnVuaWNvZGUgPyAndScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHNlcGFyYXRvci5zdGlja3kgPyAneScgOiAnJyk7XG4gICAgICB2YXIgbGFzdExhc3RJbmRleCA9IDA7XG4gICAgICAvLyBNYWtlIGBnbG9iYWxgIGFuZCBhdm9pZCBgbGFzdEluZGV4YCBpc3N1ZXMgYnkgd29ya2luZyB3aXRoIGEgY29weVxuICAgICAgdmFyIHNlcGFyYXRvckNvcHkgPSBuZXcgUmVnRXhwKHNlcGFyYXRvci5zb3VyY2UsIGZsYWdzICsgJ2cnKTtcbiAgICAgIHZhciBtYXRjaCwgbGFzdEluZGV4LCBsYXN0TGVuZ3RoO1xuICAgICAgd2hpbGUgKG1hdGNoID0gY2FsbChyZWdleHBFeGVjLCBzZXBhcmF0b3JDb3B5LCBzdHJpbmcpKSB7XG4gICAgICAgIGxhc3RJbmRleCA9IHNlcGFyYXRvckNvcHkubGFzdEluZGV4O1xuICAgICAgICBpZiAobGFzdEluZGV4ID4gbGFzdExhc3RJbmRleCkge1xuICAgICAgICAgIHB1c2gob3V0cHV0LCBzdHJpbmdTbGljZShzdHJpbmcsIGxhc3RMYXN0SW5kZXgsIG1hdGNoLmluZGV4KSk7XG4gICAgICAgICAgaWYgKG1hdGNoLmxlbmd0aCA+IDEgJiYgbWF0Y2guaW5kZXggPCBzdHJpbmcubGVuZ3RoKSBhcHBseSgkcHVzaCwgb3V0cHV0LCBhcnJheVNsaWNlKG1hdGNoLCAxKSk7XG4gICAgICAgICAgbGFzdExlbmd0aCA9IG1hdGNoWzBdLmxlbmd0aDtcbiAgICAgICAgICBsYXN0TGFzdEluZGV4ID0gbGFzdEluZGV4O1xuICAgICAgICAgIGlmIChvdXRwdXQubGVuZ3RoID49IGxpbSkgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlcGFyYXRvckNvcHkubGFzdEluZGV4ID09PSBtYXRjaC5pbmRleCkgc2VwYXJhdG9yQ29weS5sYXN0SW5kZXgrKzsgLy8gQXZvaWQgYW4gaW5maW5pdGUgbG9vcFxuICAgICAgfVxuICAgICAgaWYgKGxhc3RMYXN0SW5kZXggPT09IHN0cmluZy5sZW5ndGgpIHtcbiAgICAgICAgaWYgKGxhc3RMZW5ndGggfHwgIWV4ZWMoc2VwYXJhdG9yQ29weSwgJycpKSBwdXNoKG91dHB1dCwgJycpO1xuICAgICAgfSBlbHNlIHB1c2gob3V0cHV0LCBzdHJpbmdTbGljZShzdHJpbmcsIGxhc3RMYXN0SW5kZXgpKTtcbiAgICAgIHJldHVybiBvdXRwdXQubGVuZ3RoID4gbGltID8gYXJyYXlTbGljZShvdXRwdXQsIDAsIGxpbSkgOiBvdXRwdXQ7XG4gICAgfTtcbiAgLy8gQ2hha3JhLCBWOFxuICB9IGVsc2UgaWYgKCcwJy5zcGxpdCh1bmRlZmluZWQsIDApLmxlbmd0aCkge1xuICAgIGludGVybmFsU3BsaXQgPSBmdW5jdGlvbiAoc2VwYXJhdG9yLCBsaW1pdCkge1xuICAgICAgcmV0dXJuIHNlcGFyYXRvciA9PT0gdW5kZWZpbmVkICYmIGxpbWl0ID09PSAwID8gW10gOiBjYWxsKG5hdGl2ZVNwbGl0LCB0aGlzLCBzZXBhcmF0b3IsIGxpbWl0KTtcbiAgICB9O1xuICB9IGVsc2UgaW50ZXJuYWxTcGxpdCA9IG5hdGl2ZVNwbGl0O1xuXG4gIHJldHVybiBbXG4gICAgLy8gYFN0cmluZy5wcm90b3R5cGUuc3BsaXRgIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3RyaW5nLnByb3RvdHlwZS5zcGxpdFxuICAgIGZ1bmN0aW9uIHNwbGl0KHNlcGFyYXRvciwgbGltaXQpIHtcbiAgICAgIHZhciBPID0gcmVxdWlyZU9iamVjdENvZXJjaWJsZSh0aGlzKTtcbiAgICAgIHZhciBzcGxpdHRlciA9IHNlcGFyYXRvciA9PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBnZXRNZXRob2Qoc2VwYXJhdG9yLCBTUExJVCk7XG4gICAgICByZXR1cm4gc3BsaXR0ZXJcbiAgICAgICAgPyBjYWxsKHNwbGl0dGVyLCBzZXBhcmF0b3IsIE8sIGxpbWl0KVxuICAgICAgICA6IGNhbGwoaW50ZXJuYWxTcGxpdCwgdG9TdHJpbmcoTyksIHNlcGFyYXRvciwgbGltaXQpO1xuICAgIH0sXG4gICAgLy8gYFJlZ0V4cC5wcm90b3R5cGVbQEBzcGxpdF1gIG1ldGhvZFxuICAgIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtcmVnZXhwLnByb3RvdHlwZS1AQHNwbGl0XG4gICAgLy9cbiAgICAvLyBOT1RFOiBUaGlzIGNhbm5vdCBiZSBwcm9wZXJseSBwb2x5ZmlsbGVkIGluIGVuZ2luZXMgdGhhdCBkb24ndCBzdXBwb3J0XG4gICAgLy8gdGhlICd5JyBmbGFnLlxuICAgIGZ1bmN0aW9uIChzdHJpbmcsIGxpbWl0KSB7XG4gICAgICB2YXIgcnggPSBhbk9iamVjdCh0aGlzKTtcbiAgICAgIHZhciBTID0gdG9TdHJpbmcoc3RyaW5nKTtcbiAgICAgIHZhciByZXMgPSBtYXliZUNhbGxOYXRpdmUoaW50ZXJuYWxTcGxpdCwgcngsIFMsIGxpbWl0LCBpbnRlcm5hbFNwbGl0ICE9PSBuYXRpdmVTcGxpdCk7XG5cbiAgICAgIGlmIChyZXMuZG9uZSkgcmV0dXJuIHJlcy52YWx1ZTtcblxuICAgICAgdmFyIEMgPSBzcGVjaWVzQ29uc3RydWN0b3IocngsIFJlZ0V4cCk7XG5cbiAgICAgIHZhciB1bmljb2RlTWF0Y2hpbmcgPSByeC51bmljb2RlO1xuICAgICAgdmFyIGZsYWdzID0gKHJ4Lmlnbm9yZUNhc2UgPyAnaScgOiAnJykgK1xuICAgICAgICAgICAgICAgICAgKHJ4Lm11bHRpbGluZSA/ICdtJyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAocngudW5pY29kZSA/ICd1JyA6ICcnKSArXG4gICAgICAgICAgICAgICAgICAoVU5TVVBQT1JURURfWSA/ICdnJyA6ICd5Jyk7XG5cbiAgICAgIC8vIF4oPyArIHJ4ICsgKSBpcyBuZWVkZWQsIGluIGNvbWJpbmF0aW9uIHdpdGggc29tZSBTIHNsaWNpbmcsIHRvXG4gICAgICAvLyBzaW11bGF0ZSB0aGUgJ3knIGZsYWcuXG4gICAgICB2YXIgc3BsaXR0ZXIgPSBuZXcgQyhVTlNVUFBPUlRFRF9ZID8gJ14oPzonICsgcnguc291cmNlICsgJyknIDogcngsIGZsYWdzKTtcbiAgICAgIHZhciBsaW0gPSBsaW1pdCA9PT0gdW5kZWZpbmVkID8gTUFYX1VJTlQzMiA6IGxpbWl0ID4+PiAwO1xuICAgICAgaWYgKGxpbSA9PT0gMCkgcmV0dXJuIFtdO1xuICAgICAgaWYgKFMubGVuZ3RoID09PSAwKSByZXR1cm4gY2FsbFJlZ0V4cEV4ZWMoc3BsaXR0ZXIsIFMpID09PSBudWxsID8gW1NdIDogW107XG4gICAgICB2YXIgcCA9IDA7XG4gICAgICB2YXIgcSA9IDA7XG4gICAgICB2YXIgQSA9IFtdO1xuICAgICAgd2hpbGUgKHEgPCBTLmxlbmd0aCkge1xuICAgICAgICBzcGxpdHRlci5sYXN0SW5kZXggPSBVTlNVUFBPUlRFRF9ZID8gMCA6IHE7XG4gICAgICAgIHZhciB6ID0gY2FsbFJlZ0V4cEV4ZWMoc3BsaXR0ZXIsIFVOU1VQUE9SVEVEX1kgPyBzdHJpbmdTbGljZShTLCBxKSA6IFMpO1xuICAgICAgICB2YXIgZTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHogPT09IG51bGwgfHxcbiAgICAgICAgICAoZSA9IG1pbih0b0xlbmd0aChzcGxpdHRlci5sYXN0SW5kZXggKyAoVU5TVVBQT1JURURfWSA/IHEgOiAwKSksIFMubGVuZ3RoKSkgPT09IHBcbiAgICAgICAgKSB7XG4gICAgICAgICAgcSA9IGFkdmFuY2VTdHJpbmdJbmRleChTLCBxLCB1bmljb2RlTWF0Y2hpbmcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHB1c2goQSwgc3RyaW5nU2xpY2UoUywgcCwgcSkpO1xuICAgICAgICAgIGlmIChBLmxlbmd0aCA9PT0gbGltKSByZXR1cm4gQTtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8PSB6Lmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICAgICAgcHVzaChBLCB6W2ldKTtcbiAgICAgICAgICAgIGlmIChBLmxlbmd0aCA9PT0gbGltKSByZXR1cm4gQTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcSA9IHAgPSBlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBwdXNoKEEsIHN0cmluZ1NsaWNlKFMsIHApKTtcbiAgICAgIHJldHVybiBBO1xuICAgIH1cbiAgXTtcbn0sICFTUExJVF9XT1JLU19XSVRIX09WRVJXUklUVEVOX0VYRUMsIFVOU1VQUE9SVEVEX1kpO1xuIiwiJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIGNhbGwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tY2FsbCcpO1xudmFyIHVuY3VycnlUaGlzID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Z1bmN0aW9uLXVuY3VycnktdGhpcycpO1xudmFyIElTX1BVUkUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtcHVyZScpO1xudmFyIERFU0NSSVBUT1JTID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2Rlc2NyaXB0b3JzJyk7XG52YXIgTkFUSVZFX1NZTUJPTCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9uYXRpdmUtc3ltYm9sJyk7XG52YXIgZmFpbHMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZmFpbHMnKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIGlzUHJvdG90eXBlT2YgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWlzLXByb3RvdHlwZS1vZicpO1xudmFyIGFuT2JqZWN0ID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2FuLW9iamVjdCcpO1xudmFyIHRvSW5kZXhlZE9iamVjdCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy90by1pbmRleGVkLW9iamVjdCcpO1xudmFyIHRvUHJvcGVydHlLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tcHJvcGVydHkta2V5Jyk7XG52YXIgJHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtcHJvcGVydHktZGVzY3JpcHRvcicpO1xudmFyIG5hdGl2ZU9iamVjdENyZWF0ZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtY3JlYXRlJyk7XG52YXIgb2JqZWN0S2V5cyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3Qta2V5cycpO1xudmFyIGdldE93blByb3BlcnR5TmFtZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eU5hbWVzRXh0ZXJuYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktbmFtZXMtZXh0ZXJuYWwnKTtcbnZhciBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scycpO1xudmFyIGdldE93blByb3BlcnR5RGVzY3JpcHRvck1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtZ2V0LW93bi1wcm9wZXJ0eS1kZXNjcmlwdG9yJyk7XG52YXIgZGVmaW5lUHJvcGVydHlNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpO1xudmFyIGRlZmluZVByb3BlcnRpZXNNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0aWVzJyk7XG52YXIgcHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LXByb3BlcnR5LWlzLWVudW1lcmFibGUnKTtcbnZhciBkZWZpbmVCdWlsdEluID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS1idWlsdC1pbicpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBzaGFyZWRLZXkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2hhcmVkLWtleScpO1xudmFyIGhpZGRlbktleXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGlkZGVuLWtleXMnKTtcbnZhciB1aWQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdWlkJyk7XG52YXIgd2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3dlbGwta25vd24tc3ltYm9sJyk7XG52YXIgd3JhcHBlZFdlbGxLbm93blN5bWJvbE1vZHVsZSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy93ZWxsLWtub3duLXN5bWJvbC13cmFwcGVkJyk7XG52YXIgZGVmaW5lV2VsbEtub3duU3ltYm9sID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RlZmluZS13ZWxsLWtub3duLXN5bWJvbCcpO1xudmFyIGRlZmluZVN5bWJvbFRvUHJpbWl0aXZlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3N5bWJvbC1kZWZpbmUtdG8tcHJpbWl0aXZlJyk7XG52YXIgc2V0VG9TdHJpbmdUYWcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvc2V0LXRvLXN0cmluZy10YWcnKTtcbnZhciBJbnRlcm5hbFN0YXRlTW9kdWxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2ludGVybmFsLXN0YXRlJyk7XG52YXIgJGZvckVhY2ggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktaXRlcmF0aW9uJykuZm9yRWFjaDtcblxudmFyIEhJRERFTiA9IHNoYXJlZEtleSgnaGlkZGVuJyk7XG52YXIgU1lNQk9MID0gJ1N5bWJvbCc7XG52YXIgUFJPVE9UWVBFID0gJ3Byb3RvdHlwZSc7XG5cbnZhciBzZXRJbnRlcm5hbFN0YXRlID0gSW50ZXJuYWxTdGF0ZU1vZHVsZS5zZXQ7XG52YXIgZ2V0SW50ZXJuYWxTdGF0ZSA9IEludGVybmFsU3RhdGVNb2R1bGUuZ2V0dGVyRm9yKFNZTUJPTCk7XG5cbnZhciBPYmplY3RQcm90b3R5cGUgPSBPYmplY3RbUFJPVE9UWVBFXTtcbnZhciAkU3ltYm9sID0gZ2xvYmFsLlN5bWJvbDtcbnZhciBTeW1ib2xQcm90b3R5cGUgPSAkU3ltYm9sICYmICRTeW1ib2xbUFJPVE9UWVBFXTtcbnZhciBUeXBlRXJyb3IgPSBnbG9iYWwuVHlwZUVycm9yO1xudmFyIFFPYmplY3QgPSBnbG9iYWwuUU9iamVjdDtcbnZhciBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JNb2R1bGUuZjtcbnZhciBuYXRpdmVEZWZpbmVQcm9wZXJ0eSA9IGRlZmluZVByb3BlcnR5TW9kdWxlLmY7XG52YXIgbmF0aXZlR2V0T3duUHJvcGVydHlOYW1lcyA9IGdldE93blByb3BlcnR5TmFtZXNFeHRlcm5hbC5mO1xudmFyIG5hdGl2ZVByb3BlcnR5SXNFbnVtZXJhYmxlID0gcHJvcGVydHlJc0VudW1lcmFibGVNb2R1bGUuZjtcbnZhciBwdXNoID0gdW5jdXJyeVRoaXMoW10ucHVzaCk7XG5cbnZhciBBbGxTeW1ib2xzID0gc2hhcmVkKCdzeW1ib2xzJyk7XG52YXIgT2JqZWN0UHJvdG90eXBlU3ltYm9scyA9IHNoYXJlZCgnb3Atc3ltYm9scycpO1xudmFyIFdlbGxLbm93blN5bWJvbHNTdG9yZSA9IHNoYXJlZCgnd2tzJyk7XG5cbi8vIERvbid0IHVzZSBzZXR0ZXJzIGluIFF0IFNjcmlwdCwgaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzE3M1xudmFyIFVTRV9TRVRURVIgPSAhUU9iamVjdCB8fCAhUU9iamVjdFtQUk9UT1RZUEVdIHx8ICFRT2JqZWN0W1BST1RPVFlQRV0uZmluZENoaWxkO1xuXG4vLyBmYWxsYmFjayBmb3Igb2xkIEFuZHJvaWQsIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD02ODdcbnZhciBzZXRTeW1ib2xEZXNjcmlwdG9yID0gREVTQ1JJUFRPUlMgJiYgZmFpbHMoZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmF0aXZlT2JqZWN0Q3JlYXRlKG5hdGl2ZURlZmluZVByb3BlcnR5KHt9LCAnYScsIHtcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5hdGl2ZURlZmluZVByb3BlcnR5KHRoaXMsICdhJywgeyB2YWx1ZTogNyB9KS5hOyB9XG4gIH0pKS5hICE9IDc7XG59KSA/IGZ1bmN0aW9uIChPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIHZhciBPYmplY3RQcm90b3R5cGVEZXNjcmlwdG9yID0gbmF0aXZlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdFByb3RvdHlwZSwgUCk7XG4gIGlmIChPYmplY3RQcm90b3R5cGVEZXNjcmlwdG9yKSBkZWxldGUgT2JqZWN0UHJvdG90eXBlW1BdO1xuICBuYXRpdmVEZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKTtcbiAgaWYgKE9iamVjdFByb3RvdHlwZURlc2NyaXB0b3IgJiYgTyAhPT0gT2JqZWN0UHJvdG90eXBlKSB7XG4gICAgbmF0aXZlRGVmaW5lUHJvcGVydHkoT2JqZWN0UHJvdG90eXBlLCBQLCBPYmplY3RQcm90b3R5cGVEZXNjcmlwdG9yKTtcbiAgfVxufSA6IG5hdGl2ZURlZmluZVByb3BlcnR5O1xuXG52YXIgd3JhcCA9IGZ1bmN0aW9uICh0YWcsIGRlc2NyaXB0aW9uKSB7XG4gIHZhciBzeW1ib2wgPSBBbGxTeW1ib2xzW3RhZ10gPSBuYXRpdmVPYmplY3RDcmVhdGUoU3ltYm9sUHJvdG90eXBlKTtcbiAgc2V0SW50ZXJuYWxTdGF0ZShzeW1ib2wsIHtcbiAgICB0eXBlOiBTWU1CT0wsXG4gICAgdGFnOiB0YWcsXG4gICAgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uXG4gIH0pO1xuICBpZiAoIURFU0NSSVBUT1JTKSBzeW1ib2wuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcbiAgcmV0dXJuIHN5bWJvbDtcbn07XG5cbnZhciAkZGVmaW5lUHJvcGVydHkgPSBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKSB7XG4gIGlmIChPID09PSBPYmplY3RQcm90b3R5cGUpICRkZWZpbmVQcm9wZXJ0eShPYmplY3RQcm90b3R5cGVTeW1ib2xzLCBQLCBBdHRyaWJ1dGVzKTtcbiAgYW5PYmplY3QoTyk7XG4gIHZhciBrZXkgPSB0b1Byb3BlcnR5S2V5KFApO1xuICBhbk9iamVjdChBdHRyaWJ1dGVzKTtcbiAgaWYgKGhhc093bihBbGxTeW1ib2xzLCBrZXkpKSB7XG4gICAgaWYgKCFBdHRyaWJ1dGVzLmVudW1lcmFibGUpIHtcbiAgICAgIGlmICghaGFzT3duKE8sIEhJRERFTikpIG5hdGl2ZURlZmluZVByb3BlcnR5KE8sIEhJRERFTiwgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDEsIHt9KSk7XG4gICAgICBPW0hJRERFTl1ba2V5XSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChoYXNPd24oTywgSElEREVOKSAmJiBPW0hJRERFTl1ba2V5XSkgT1tISURERU5dW2tleV0gPSBmYWxzZTtcbiAgICAgIEF0dHJpYnV0ZXMgPSBuYXRpdmVPYmplY3RDcmVhdGUoQXR0cmlidXRlcywgeyBlbnVtZXJhYmxlOiBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IoMCwgZmFsc2UpIH0pO1xuICAgIH0gcmV0dXJuIHNldFN5bWJvbERlc2NyaXB0b3IoTywga2V5LCBBdHRyaWJ1dGVzKTtcbiAgfSByZXR1cm4gbmF0aXZlRGVmaW5lUHJvcGVydHkoTywga2V5LCBBdHRyaWJ1dGVzKTtcbn07XG5cbnZhciAkZGVmaW5lUHJvcGVydGllcyA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoTywgUHJvcGVydGllcykge1xuICBhbk9iamVjdChPKTtcbiAgdmFyIHByb3BlcnRpZXMgPSB0b0luZGV4ZWRPYmplY3QoUHJvcGVydGllcyk7XG4gIHZhciBrZXlzID0gb2JqZWN0S2V5cyhwcm9wZXJ0aWVzKS5jb25jYXQoJGdldE93blByb3BlcnR5U3ltYm9scyhwcm9wZXJ0aWVzKSk7XG4gICRmb3JFYWNoKGtleXMsIGZ1bmN0aW9uIChrZXkpIHtcbiAgICBpZiAoIURFU0NSSVBUT1JTIHx8IGNhbGwoJHByb3BlcnR5SXNFbnVtZXJhYmxlLCBwcm9wZXJ0aWVzLCBrZXkpKSAkZGVmaW5lUHJvcGVydHkoTywga2V5LCBwcm9wZXJ0aWVzW2tleV0pO1xuICB9KTtcbiAgcmV0dXJuIE87XG59O1xuXG52YXIgJGNyZWF0ZSA9IGZ1bmN0aW9uIGNyZWF0ZShPLCBQcm9wZXJ0aWVzKSB7XG4gIHJldHVybiBQcm9wZXJ0aWVzID09PSB1bmRlZmluZWQgPyBuYXRpdmVPYmplY3RDcmVhdGUoTykgOiAkZGVmaW5lUHJvcGVydGllcyhuYXRpdmVPYmplY3RDcmVhdGUoTyksIFByb3BlcnRpZXMpO1xufTtcblxudmFyICRwcm9wZXJ0eUlzRW51bWVyYWJsZSA9IGZ1bmN0aW9uIHByb3BlcnR5SXNFbnVtZXJhYmxlKFYpIHtcbiAgdmFyIFAgPSB0b1Byb3BlcnR5S2V5KFYpO1xuICB2YXIgZW51bWVyYWJsZSA9IGNhbGwobmF0aXZlUHJvcGVydHlJc0VudW1lcmFibGUsIHRoaXMsIFApO1xuICBpZiAodGhpcyA9PT0gT2JqZWN0UHJvdG90eXBlICYmIGhhc093bihBbGxTeW1ib2xzLCBQKSAmJiAhaGFzT3duKE9iamVjdFByb3RvdHlwZVN5bWJvbHMsIFApKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiBlbnVtZXJhYmxlIHx8ICFoYXNPd24odGhpcywgUCkgfHwgIWhhc093bihBbGxTeW1ib2xzLCBQKSB8fCBoYXNPd24odGhpcywgSElEREVOKSAmJiB0aGlzW0hJRERFTl1bUF1cbiAgICA/IGVudW1lcmFibGUgOiB0cnVlO1xufTtcblxudmFyICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCkge1xuICB2YXIgaXQgPSB0b0luZGV4ZWRPYmplY3QoTyk7XG4gIHZhciBrZXkgPSB0b1Byb3BlcnR5S2V5KFApO1xuICBpZiAoaXQgPT09IE9iamVjdFByb3RvdHlwZSAmJiBoYXNPd24oQWxsU3ltYm9scywga2V5KSAmJiAhaGFzT3duKE9iamVjdFByb3RvdHlwZVN5bWJvbHMsIGtleSkpIHJldHVybjtcbiAgdmFyIGRlc2NyaXB0b3IgPSBuYXRpdmVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaXQsIGtleSk7XG4gIGlmIChkZXNjcmlwdG9yICYmIGhhc093bihBbGxTeW1ib2xzLCBrZXkpICYmICEoaGFzT3duKGl0LCBISURERU4pICYmIGl0W0hJRERFTl1ba2V5XSkpIHtcbiAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSB0cnVlO1xuICB9XG4gIHJldHVybiBkZXNjcmlwdG9yO1xufTtcblxudmFyICRnZXRPd25Qcm9wZXJ0eU5hbWVzID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlOYW1lcyhPKSB7XG4gIHZhciBuYW1lcyA9IG5hdGl2ZUdldE93blByb3BlcnR5TmFtZXModG9JbmRleGVkT2JqZWN0KE8pKTtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICAkZm9yRWFjaChuYW1lcywgZnVuY3Rpb24gKGtleSkge1xuICAgIGlmICghaGFzT3duKEFsbFN5bWJvbHMsIGtleSkgJiYgIWhhc093bihoaWRkZW5LZXlzLCBrZXkpKSBwdXNoKHJlc3VsdCwga2V5KTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG52YXIgJGdldE93blByb3BlcnR5U3ltYm9scyA9IGZ1bmN0aW9uIChPKSB7XG4gIHZhciBJU19PQkpFQ1RfUFJPVE9UWVBFID0gTyA9PT0gT2JqZWN0UHJvdG90eXBlO1xuICB2YXIgbmFtZXMgPSBuYXRpdmVHZXRPd25Qcm9wZXJ0eU5hbWVzKElTX09CSkVDVF9QUk9UT1RZUEUgPyBPYmplY3RQcm90b3R5cGVTeW1ib2xzIDogdG9JbmRleGVkT2JqZWN0KE8pKTtcbiAgdmFyIHJlc3VsdCA9IFtdO1xuICAkZm9yRWFjaChuYW1lcywgZnVuY3Rpb24gKGtleSkge1xuICAgIGlmIChoYXNPd24oQWxsU3ltYm9scywga2V5KSAmJiAoIUlTX09CSkVDVF9QUk9UT1RZUEUgfHwgaGFzT3duKE9iamVjdFByb3RvdHlwZSwga2V5KSkpIHtcbiAgICAgIHB1c2gocmVzdWx0LCBBbGxTeW1ib2xzW2tleV0pO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vLyBgU3ltYm9sYCBjb25zdHJ1Y3RvclxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zeW1ib2wtY29uc3RydWN0b3JcbmlmICghTkFUSVZFX1NZTUJPTCkge1xuICAkU3ltYm9sID0gZnVuY3Rpb24gU3ltYm9sKCkge1xuICAgIGlmIChpc1Byb3RvdHlwZU9mKFN5bWJvbFByb3RvdHlwZSwgdGhpcykpIHRocm93IFR5cGVFcnJvcignU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yJyk7XG4gICAgdmFyIGRlc2NyaXB0aW9uID0gIWFyZ3VtZW50cy5sZW5ndGggfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiAkdG9TdHJpbmcoYXJndW1lbnRzWzBdKTtcbiAgICB2YXIgdGFnID0gdWlkKGRlc2NyaXB0aW9uKTtcbiAgICB2YXIgc2V0dGVyID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBpZiAodGhpcyA9PT0gT2JqZWN0UHJvdG90eXBlKSBjYWxsKHNldHRlciwgT2JqZWN0UHJvdG90eXBlU3ltYm9scywgdmFsdWUpO1xuICAgICAgaWYgKGhhc093bih0aGlzLCBISURERU4pICYmIGhhc093bih0aGlzW0hJRERFTl0sIHRhZykpIHRoaXNbSElEREVOXVt0YWddID0gZmFsc2U7XG4gICAgICBzZXRTeW1ib2xEZXNjcmlwdG9yKHRoaXMsIHRhZywgY3JlYXRlUHJvcGVydHlEZXNjcmlwdG9yKDEsIHZhbHVlKSk7XG4gICAgfTtcbiAgICBpZiAoREVTQ1JJUFRPUlMgJiYgVVNFX1NFVFRFUikgc2V0U3ltYm9sRGVzY3JpcHRvcihPYmplY3RQcm90b3R5cGUsIHRhZywgeyBjb25maWd1cmFibGU6IHRydWUsIHNldDogc2V0dGVyIH0pO1xuICAgIHJldHVybiB3cmFwKHRhZywgZGVzY3JpcHRpb24pO1xuICB9O1xuXG4gIFN5bWJvbFByb3RvdHlwZSA9ICRTeW1ib2xbUFJPVE9UWVBFXTtcblxuICBkZWZpbmVCdWlsdEluKFN5bWJvbFByb3RvdHlwZSwgJ3RvU3RyaW5nJywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIGdldEludGVybmFsU3RhdGUodGhpcykudGFnO1xuICB9KTtcblxuICBkZWZpbmVCdWlsdEluKCRTeW1ib2wsICd3aXRob3V0U2V0dGVyJywgZnVuY3Rpb24gKGRlc2NyaXB0aW9uKSB7XG4gICAgcmV0dXJuIHdyYXAodWlkKGRlc2NyaXB0aW9uKSwgZGVzY3JpcHRpb24pO1xuICB9KTtcblxuICBwcm9wZXJ0eUlzRW51bWVyYWJsZU1vZHVsZS5mID0gJHByb3BlcnR5SXNFbnVtZXJhYmxlO1xuICBkZWZpbmVQcm9wZXJ0eU1vZHVsZS5mID0gJGRlZmluZVByb3BlcnR5O1xuICBkZWZpbmVQcm9wZXJ0aWVzTW9kdWxlLmYgPSAkZGVmaW5lUHJvcGVydGllcztcbiAgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yTW9kdWxlLmYgPSAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuICBnZXRPd25Qcm9wZXJ0eU5hbWVzTW9kdWxlLmYgPSBnZXRPd25Qcm9wZXJ0eU5hbWVzRXh0ZXJuYWwuZiA9ICRnZXRPd25Qcm9wZXJ0eU5hbWVzO1xuICBnZXRPd25Qcm9wZXJ0eVN5bWJvbHNNb2R1bGUuZiA9ICRnZXRPd25Qcm9wZXJ0eVN5bWJvbHM7XG5cbiAgd3JhcHBlZFdlbGxLbm93blN5bWJvbE1vZHVsZS5mID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICByZXR1cm4gd3JhcCh3ZWxsS25vd25TeW1ib2wobmFtZSksIG5hbWUpO1xuICB9O1xuXG4gIGlmIChERVNDUklQVE9SUykge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Byb3Bvc2FsLVN5bWJvbC1kZXNjcmlwdGlvblxuICAgIG5hdGl2ZURlZmluZVByb3BlcnR5KFN5bWJvbFByb3RvdHlwZSwgJ2Rlc2NyaXB0aW9uJywge1xuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiBmdW5jdGlvbiBkZXNjcmlwdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldEludGVybmFsU3RhdGUodGhpcykuZGVzY3JpcHRpb247XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKCFJU19QVVJFKSB7XG4gICAgICBkZWZpbmVCdWlsdEluKE9iamVjdFByb3RvdHlwZSwgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJywgJHByb3BlcnR5SXNFbnVtZXJhYmxlLCB7IHVuc2FmZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cbn1cblxuJCh7IGdsb2JhbDogdHJ1ZSwgY29uc3RydWN0b3I6IHRydWUsIHdyYXA6IHRydWUsIGZvcmNlZDogIU5BVElWRV9TWU1CT0wsIHNoYW06ICFOQVRJVkVfU1lNQk9MIH0sIHtcbiAgU3ltYm9sOiAkU3ltYm9sXG59KTtcblxuJGZvckVhY2gob2JqZWN0S2V5cyhXZWxsS25vd25TeW1ib2xzU3RvcmUpLCBmdW5jdGlvbiAobmFtZSkge1xuICBkZWZpbmVXZWxsS25vd25TeW1ib2wobmFtZSk7XG59KTtcblxuJCh7IHRhcmdldDogU1lNQk9MLCBzdGF0OiB0cnVlLCBmb3JjZWQ6ICFOQVRJVkVfU1lNQk9MIH0sIHtcbiAgdXNlU2V0dGVyOiBmdW5jdGlvbiAoKSB7IFVTRV9TRVRURVIgPSB0cnVlOyB9LFxuICB1c2VTaW1wbGU6IGZ1bmN0aW9uICgpIHsgVVNFX1NFVFRFUiA9IGZhbHNlOyB9XG59KTtcblxuJCh7IHRhcmdldDogJ09iamVjdCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogIU5BVElWRV9TWU1CT0wsIHNoYW06ICFERVNDUklQVE9SUyB9LCB7XG4gIC8vIGBPYmplY3QuY3JlYXRlYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuY3JlYXRlXG4gIGNyZWF0ZTogJGNyZWF0ZSxcbiAgLy8gYE9iamVjdC5kZWZpbmVQcm9wZXJ0eWAgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnR5XG4gIGRlZmluZVByb3BlcnR5OiAkZGVmaW5lUHJvcGVydHksXG4gIC8vIGBPYmplY3QuZGVmaW5lUHJvcGVydGllc2AgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmRlZmluZXByb3BlcnRpZXNcbiAgZGVmaW5lUHJvcGVydGllczogJGRlZmluZVByb3BlcnRpZXMsXG4gIC8vIGBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yYCBtZXRob2RcbiAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vYmplY3QuZ2V0b3ducHJvcGVydHlkZXNjcmlwdG9yc1xuICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Jcbn0pO1xuXG4kKHsgdGFyZ2V0OiAnT2JqZWN0Jywgc3RhdDogdHJ1ZSwgZm9yY2VkOiAhTkFUSVZFX1NZTUJPTCB9LCB7XG4gIC8vIGBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc2AgbWV0aG9kXG4gIC8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtb2JqZWN0LmdldG93bnByb3BlcnR5bmFtZXNcbiAgZ2V0T3duUHJvcGVydHlOYW1lczogJGdldE93blByb3BlcnR5TmFtZXNcbn0pO1xuXG4vLyBgU3ltYm9sLnByb3RvdHlwZVtAQHRvUHJpbWl0aXZlXWAgbWV0aG9kXG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN5bWJvbC5wcm90b3R5cGUtQEB0b3ByaW1pdGl2ZVxuZGVmaW5lU3ltYm9sVG9QcmltaXRpdmUoKTtcblxuLy8gYFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ11gIHByb3BlcnR5XG4vLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXN5bWJvbC5wcm90b3R5cGUtQEB0b3N0cmluZ3RhZ1xuc2V0VG9TdHJpbmdUYWcoJFN5bWJvbCwgU1lNQk9MKTtcblxuaGlkZGVuS2V5c1tISURERU5dID0gdHJ1ZTtcbiIsIi8vIGBTeW1ib2wucHJvdG90eXBlLmRlc2NyaXB0aW9uYCBnZXR0ZXJcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3ltYm9sLnByb3RvdHlwZS5kZXNjcmlwdGlvblxuJ3VzZSBzdHJpY3QnO1xudmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgREVTQ1JJUFRPUlMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZGVzY3JpcHRvcnMnKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgdW5jdXJyeVRoaXMgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZnVuY3Rpb24tdW5jdXJyeS10aGlzJyk7XG52YXIgaGFzT3duID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2hhcy1vd24tcHJvcGVydHknKTtcbnZhciBpc0NhbGxhYmxlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2lzLWNhbGxhYmxlJyk7XG52YXIgaXNQcm90b3R5cGVPZiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9vYmplY3QtaXMtcHJvdG90eXBlLW9mJyk7XG52YXIgdG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdG8tc3RyaW5nJyk7XG52YXIgZGVmaW5lUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvb2JqZWN0LWRlZmluZS1wcm9wZXJ0eScpLmY7XG52YXIgY29weUNvbnN0cnVjdG9yUHJvcGVydGllcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jb3B5LWNvbnN0cnVjdG9yLXByb3BlcnRpZXMnKTtcblxudmFyIE5hdGl2ZVN5bWJvbCA9IGdsb2JhbC5TeW1ib2w7XG52YXIgU3ltYm9sUHJvdG90eXBlID0gTmF0aXZlU3ltYm9sICYmIE5hdGl2ZVN5bWJvbC5wcm90b3R5cGU7XG5cbmlmIChERVNDUklQVE9SUyAmJiBpc0NhbGxhYmxlKE5hdGl2ZVN5bWJvbCkgJiYgKCEoJ2Rlc2NyaXB0aW9uJyBpbiBTeW1ib2xQcm90b3R5cGUpIHx8XG4gIC8vIFNhZmFyaSAxMiBidWdcbiAgTmF0aXZlU3ltYm9sKCkuZGVzY3JpcHRpb24gIT09IHVuZGVmaW5lZFxuKSkge1xuICB2YXIgRW1wdHlTdHJpbmdEZXNjcmlwdGlvblN0b3JlID0ge307XG4gIC8vIHdyYXAgU3ltYm9sIGNvbnN0cnVjdG9yIGZvciBjb3JyZWN0IHdvcmsgd2l0aCB1bmRlZmluZWQgZGVzY3JpcHRpb25cbiAgdmFyIFN5bWJvbFdyYXBwZXIgPSBmdW5jdGlvbiBTeW1ib2woKSB7XG4gICAgdmFyIGRlc2NyaXB0aW9uID0gYXJndW1lbnRzLmxlbmd0aCA8IDEgfHwgYXJndW1lbnRzWzBdID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiB0b1N0cmluZyhhcmd1bWVudHNbMF0pO1xuICAgIHZhciByZXN1bHQgPSBpc1Byb3RvdHlwZU9mKFN5bWJvbFByb3RvdHlwZSwgdGhpcylcbiAgICAgID8gbmV3IE5hdGl2ZVN5bWJvbChkZXNjcmlwdGlvbilcbiAgICAgIC8vIGluIEVkZ2UgMTMsIFN0cmluZyhTeW1ib2wodW5kZWZpbmVkKSkgPT09ICdTeW1ib2wodW5kZWZpbmVkKSdcbiAgICAgIDogZGVzY3JpcHRpb24gPT09IHVuZGVmaW5lZCA/IE5hdGl2ZVN5bWJvbCgpIDogTmF0aXZlU3ltYm9sKGRlc2NyaXB0aW9uKTtcbiAgICBpZiAoZGVzY3JpcHRpb24gPT09ICcnKSBFbXB0eVN0cmluZ0Rlc2NyaXB0aW9uU3RvcmVbcmVzdWx0XSA9IHRydWU7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcblxuICBjb3B5Q29uc3RydWN0b3JQcm9wZXJ0aWVzKFN5bWJvbFdyYXBwZXIsIE5hdGl2ZVN5bWJvbCk7XG4gIFN5bWJvbFdyYXBwZXIucHJvdG90eXBlID0gU3ltYm9sUHJvdG90eXBlO1xuICBTeW1ib2xQcm90b3R5cGUuY29uc3RydWN0b3IgPSBTeW1ib2xXcmFwcGVyO1xuXG4gIHZhciBOQVRJVkVfU1lNQk9MID0gU3RyaW5nKE5hdGl2ZVN5bWJvbCgndGVzdCcpKSA9PSAnU3ltYm9sKHRlc3QpJztcbiAgdmFyIHN5bWJvbFRvU3RyaW5nID0gdW5jdXJyeVRoaXMoU3ltYm9sUHJvdG90eXBlLnRvU3RyaW5nKTtcbiAgdmFyIHN5bWJvbFZhbHVlT2YgPSB1bmN1cnJ5VGhpcyhTeW1ib2xQcm90b3R5cGUudmFsdWVPZik7XG4gIHZhciByZWdleHAgPSAvXlN5bWJvbFxcKCguKilcXClbXildKyQvO1xuICB2YXIgcmVwbGFjZSA9IHVuY3VycnlUaGlzKCcnLnJlcGxhY2UpO1xuICB2YXIgc3RyaW5nU2xpY2UgPSB1bmN1cnJ5VGhpcygnJy5zbGljZSk7XG5cbiAgZGVmaW5lUHJvcGVydHkoU3ltYm9sUHJvdG90eXBlLCAnZGVzY3JpcHRpb24nLCB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gZGVzY3JpcHRpb24oKSB7XG4gICAgICB2YXIgc3ltYm9sID0gc3ltYm9sVmFsdWVPZih0aGlzKTtcbiAgICAgIHZhciBzdHJpbmcgPSBzeW1ib2xUb1N0cmluZyhzeW1ib2wpO1xuICAgICAgaWYgKGhhc093bihFbXB0eVN0cmluZ0Rlc2NyaXB0aW9uU3RvcmUsIHN5bWJvbCkpIHJldHVybiAnJztcbiAgICAgIHZhciBkZXNjID0gTkFUSVZFX1NZTUJPTCA/IHN0cmluZ1NsaWNlKHN0cmluZywgNywgLTEpIDogcmVwbGFjZShzdHJpbmcsIHJlZ2V4cCwgJyQxJyk7XG4gICAgICByZXR1cm4gZGVzYyA9PT0gJycgPyB1bmRlZmluZWQgOiBkZXNjO1xuICAgIH1cbiAgfSk7XG5cbiAgJCh7IGdsb2JhbDogdHJ1ZSwgY29uc3RydWN0b3I6IHRydWUsIGZvcmNlZDogdHJ1ZSB9LCB7XG4gICAgU3ltYm9sOiBTeW1ib2xXcmFwcGVyXG4gIH0pO1xufVxuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZ2V0QnVpbHRJbiA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9nZXQtYnVpbHQtaW4nKTtcbnZhciBoYXNPd24gPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaGFzLW93bi1wcm9wZXJ0eScpO1xudmFyIHRvU3RyaW5nID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3RvLXN0cmluZycpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBOQVRJVkVfU1lNQk9MX1JFR0lTVFJZID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS1zeW1ib2wtcmVnaXN0cnknKTtcblxudmFyIFN0cmluZ1RvU3ltYm9sUmVnaXN0cnkgPSBzaGFyZWQoJ3N0cmluZy10by1zeW1ib2wtcmVnaXN0cnknKTtcbnZhciBTeW1ib2xUb1N0cmluZ1JlZ2lzdHJ5ID0gc2hhcmVkKCdzeW1ib2wtdG8tc3RyaW5nLXJlZ2lzdHJ5Jyk7XG5cbi8vIGBTeW1ib2wuZm9yYCBtZXRob2Rcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3ltYm9sLmZvclxuJCh7IHRhcmdldDogJ1N5bWJvbCcsIHN0YXQ6IHRydWUsIGZvcmNlZDogIU5BVElWRV9TWU1CT0xfUkVHSVNUUlkgfSwge1xuICAnZm9yJzogZnVuY3Rpb24gKGtleSkge1xuICAgIHZhciBzdHJpbmcgPSB0b1N0cmluZyhrZXkpO1xuICAgIGlmIChoYXNPd24oU3RyaW5nVG9TeW1ib2xSZWdpc3RyeSwgc3RyaW5nKSkgcmV0dXJuIFN0cmluZ1RvU3ltYm9sUmVnaXN0cnlbc3RyaW5nXTtcbiAgICB2YXIgc3ltYm9sID0gZ2V0QnVpbHRJbignU3ltYm9sJykoc3RyaW5nKTtcbiAgICBTdHJpbmdUb1N5bWJvbFJlZ2lzdHJ5W3N0cmluZ10gPSBzeW1ib2w7XG4gICAgU3ltYm9sVG9TdHJpbmdSZWdpc3RyeVtzeW1ib2xdID0gc3RyaW5nO1xuICAgIHJldHVybiBzeW1ib2w7XG4gIH1cbn0pO1xuIiwidmFyIGRlZmluZVdlbGxLbm93blN5bWJvbCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kZWZpbmUtd2VsbC1rbm93bi1zeW1ib2wnKTtcblxuLy8gYFN5bWJvbC5pdGVyYXRvcmAgd2VsbC1rbm93biBzeW1ib2xcbi8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtc3ltYm9sLml0ZXJhdG9yXG5kZWZpbmVXZWxsS25vd25TeW1ib2woJ2l0ZXJhdG9yJyk7XG4iLCIvLyBUT0RPOiBSZW1vdmUgdGhpcyBtb2R1bGUgZnJvbSBgY29yZS1qc0A0YCBzaW5jZSBpdCdzIHNwbGl0IHRvIG1vZHVsZXMgbGlzdGVkIGJlbG93XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN5bWJvbC5jb25zdHJ1Y3RvcicpO1xucmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5zeW1ib2wuZm9yJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLnN5bWJvbC5rZXktZm9yJyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLmpzb24uc3RyaW5naWZ5Jyk7XG5yZXF1aXJlKCcuLi9tb2R1bGVzL2VzLm9iamVjdC5nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMnKTtcbiIsInZhciAkID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2V4cG9ydCcpO1xudmFyIGhhc093biA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9oYXMtb3duLXByb3BlcnR5Jyk7XG52YXIgaXNTeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvaXMtc3ltYm9sJyk7XG52YXIgdHJ5VG9TdHJpbmcgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvdHJ5LXRvLXN0cmluZycpO1xudmFyIHNoYXJlZCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zaGFyZWQnKTtcbnZhciBOQVRJVkVfU1lNQk9MX1JFR0lTVFJZID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL25hdGl2ZS1zeW1ib2wtcmVnaXN0cnknKTtcblxudmFyIFN5bWJvbFRvU3RyaW5nUmVnaXN0cnkgPSBzaGFyZWQoJ3N5bWJvbC10by1zdHJpbmctcmVnaXN0cnknKTtcblxuLy8gYFN5bWJvbC5rZXlGb3JgIG1ldGhvZFxuLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1zeW1ib2wua2V5Zm9yXG4kKHsgdGFyZ2V0OiAnU3ltYm9sJywgc3RhdDogdHJ1ZSwgZm9yY2VkOiAhTkFUSVZFX1NZTUJPTF9SRUdJU1RSWSB9LCB7XG4gIGtleUZvcjogZnVuY3Rpb24ga2V5Rm9yKHN5bSkge1xuICAgIGlmICghaXNTeW1ib2woc3ltKSkgdGhyb3cgVHlwZUVycm9yKHRyeVRvU3RyaW5nKHN5bSkgKyAnIGlzIG5vdCBhIHN5bWJvbCcpO1xuICAgIGlmIChoYXNPd24oU3ltYm9sVG9TdHJpbmdSZWdpc3RyeSwgc3ltKSkgcmV0dXJuIFN5bWJvbFRvU3RyaW5nUmVnaXN0cnlbc3ltXTtcbiAgfVxufSk7XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIERPTUl0ZXJhYmxlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb20taXRlcmFibGVzJyk7XG52YXIgRE9NVG9rZW5MaXN0UHJvdG90eXBlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvbS10b2tlbi1saXN0LXByb3RvdHlwZScpO1xudmFyIGZvckVhY2ggPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvYXJyYXktZm9yLWVhY2gnKTtcbnZhciBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvY3JlYXRlLW5vbi1lbnVtZXJhYmxlLXByb3BlcnR5Jyk7XG5cbnZhciBoYW5kbGVQcm90b3R5cGUgPSBmdW5jdGlvbiAoQ29sbGVjdGlvblByb3RvdHlwZSkge1xuICAvLyBzb21lIENocm9tZSB2ZXJzaW9ucyBoYXZlIG5vbi1jb25maWd1cmFibGUgbWV0aG9kcyBvbiBET01Ub2tlbkxpc3RcbiAgaWYgKENvbGxlY3Rpb25Qcm90b3R5cGUgJiYgQ29sbGVjdGlvblByb3RvdHlwZS5mb3JFYWNoICE9PSBmb3JFYWNoKSB0cnkge1xuICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShDb2xsZWN0aW9uUHJvdG90eXBlLCAnZm9yRWFjaCcsIGZvckVhY2gpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIENvbGxlY3Rpb25Qcm90b3R5cGUuZm9yRWFjaCA9IGZvckVhY2g7XG4gIH1cbn07XG5cbmZvciAodmFyIENPTExFQ1RJT05fTkFNRSBpbiBET01JdGVyYWJsZXMpIHtcbiAgaWYgKERPTUl0ZXJhYmxlc1tDT0xMRUNUSU9OX05BTUVdKSB7XG4gICAgaGFuZGxlUHJvdG90eXBlKGdsb2JhbFtDT0xMRUNUSU9OX05BTUVdICYmIGdsb2JhbFtDT0xMRUNUSU9OX05BTUVdLnByb3RvdHlwZSk7XG4gIH1cbn1cblxuaGFuZGxlUHJvdG90eXBlKERPTVRva2VuTGlzdFByb3RvdHlwZSk7XG4iLCJ2YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIERPTUl0ZXJhYmxlcyA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9kb20taXRlcmFibGVzJyk7XG52YXIgRE9NVG9rZW5MaXN0UHJvdG90eXBlID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2RvbS10b2tlbi1saXN0LXByb3RvdHlwZScpO1xudmFyIEFycmF5SXRlcmF0b3JNZXRob2RzID0gcmVxdWlyZSgnLi4vbW9kdWxlcy9lcy5hcnJheS5pdGVyYXRvcicpO1xudmFyIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eSA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9jcmVhdGUtbm9uLWVudW1lcmFibGUtcHJvcGVydHknKTtcbnZhciB3ZWxsS25vd25TeW1ib2wgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvd2VsbC1rbm93bi1zeW1ib2wnKTtcblxudmFyIElURVJBVE9SID0gd2VsbEtub3duU3ltYm9sKCdpdGVyYXRvcicpO1xudmFyIFRPX1NUUklOR19UQUcgPSB3ZWxsS25vd25TeW1ib2woJ3RvU3RyaW5nVGFnJyk7XG52YXIgQXJyYXlWYWx1ZXMgPSBBcnJheUl0ZXJhdG9yTWV0aG9kcy52YWx1ZXM7XG5cbnZhciBoYW5kbGVQcm90b3R5cGUgPSBmdW5jdGlvbiAoQ29sbGVjdGlvblByb3RvdHlwZSwgQ09MTEVDVElPTl9OQU1FKSB7XG4gIGlmIChDb2xsZWN0aW9uUHJvdG90eXBlKSB7XG4gICAgLy8gc29tZSBDaHJvbWUgdmVyc2lvbnMgaGF2ZSBub24tY29uZmlndXJhYmxlIG1ldGhvZHMgb24gRE9NVG9rZW5MaXN0XG4gICAgaWYgKENvbGxlY3Rpb25Qcm90b3R5cGVbSVRFUkFUT1JdICE9PSBBcnJheVZhbHVlcykgdHJ5IHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShDb2xsZWN0aW9uUHJvdG90eXBlLCBJVEVSQVRPUiwgQXJyYXlWYWx1ZXMpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBDb2xsZWN0aW9uUHJvdG90eXBlW0lURVJBVE9SXSA9IEFycmF5VmFsdWVzO1xuICAgIH1cbiAgICBpZiAoIUNvbGxlY3Rpb25Qcm90b3R5cGVbVE9fU1RSSU5HX1RBR10pIHtcbiAgICAgIGNyZWF0ZU5vbkVudW1lcmFibGVQcm9wZXJ0eShDb2xsZWN0aW9uUHJvdG90eXBlLCBUT19TVFJJTkdfVEFHLCBDT0xMRUNUSU9OX05BTUUpO1xuICAgIH1cbiAgICBpZiAoRE9NSXRlcmFibGVzW0NPTExFQ1RJT05fTkFNRV0pIGZvciAodmFyIE1FVEhPRF9OQU1FIGluIEFycmF5SXRlcmF0b3JNZXRob2RzKSB7XG4gICAgICAvLyBzb21lIENocm9tZSB2ZXJzaW9ucyBoYXZlIG5vbi1jb25maWd1cmFibGUgbWV0aG9kcyBvbiBET01Ub2tlbkxpc3RcbiAgICAgIGlmIChDb2xsZWN0aW9uUHJvdG90eXBlW01FVEhPRF9OQU1FXSAhPT0gQXJyYXlJdGVyYXRvck1ldGhvZHNbTUVUSE9EX05BTUVdKSB0cnkge1xuICAgICAgICBjcmVhdGVOb25FbnVtZXJhYmxlUHJvcGVydHkoQ29sbGVjdGlvblByb3RvdHlwZSwgTUVUSE9EX05BTUUsIEFycmF5SXRlcmF0b3JNZXRob2RzW01FVEhPRF9OQU1FXSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBDb2xsZWN0aW9uUHJvdG90eXBlW01FVEhPRF9OQU1FXSA9IEFycmF5SXRlcmF0b3JNZXRob2RzW01FVEhPRF9OQU1FXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG5cbmZvciAodmFyIENPTExFQ1RJT05fTkFNRSBpbiBET01JdGVyYWJsZXMpIHtcbiAgaGFuZGxlUHJvdG90eXBlKGdsb2JhbFtDT0xMRUNUSU9OX05BTUVdICYmIGdsb2JhbFtDT0xMRUNUSU9OX05BTUVdLnByb3RvdHlwZSwgQ09MTEVDVElPTl9OQU1FKTtcbn1cblxuaGFuZGxlUHJvdG90eXBlKERPTVRva2VuTGlzdFByb3RvdHlwZSwgJ0RPTVRva2VuTGlzdCcpO1xuIiwidmFyICQgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZXhwb3J0Jyk7XG52YXIgZ2xvYmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL2dsb2JhbCcpO1xudmFyIHNldEludGVydmFsID0gcmVxdWlyZSgnLi4vaW50ZXJuYWxzL3NjaGVkdWxlcnMtZml4Jykuc2V0SW50ZXJ2YWw7XG5cbi8vIGllOS0gc2V0SW50ZXJ2YWwgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZpeFxuLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvdGltZXJzLWFuZC11c2VyLXByb21wdHMuaHRtbCNkb20tc2V0aW50ZXJ2YWxcbiQoeyBnbG9iYWw6IHRydWUsIGJpbmQ6IHRydWUsIGZvcmNlZDogZ2xvYmFsLnNldEludGVydmFsICE9PSBzZXRJbnRlcnZhbCB9LCB7XG4gIHNldEludGVydmFsOiBzZXRJbnRlcnZhbFxufSk7XG4iLCJ2YXIgJCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9leHBvcnQnKTtcbnZhciBnbG9iYWwgPSByZXF1aXJlKCcuLi9pbnRlcm5hbHMvZ2xvYmFsJyk7XG52YXIgc2V0VGltZW91dCA9IHJlcXVpcmUoJy4uL2ludGVybmFscy9zY2hlZHVsZXJzLWZpeCcpLnNldFRpbWVvdXQ7XG5cbi8vIGllOS0gc2V0VGltZW91dCBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgZml4XG4vLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS90aW1lcnMtYW5kLXVzZXItcHJvbXB0cy5odG1sI2RvbS1zZXR0aW1lb3V0XG4kKHsgZ2xvYmFsOiB0cnVlLCBiaW5kOiB0cnVlLCBmb3JjZWQ6IGdsb2JhbC5zZXRUaW1lb3V0ICE9PSBzZXRUaW1lb3V0IH0sIHtcbiAgc2V0VGltZW91dDogc2V0VGltZW91dFxufSk7XG4iLCIvLyBUT0RPOiBSZW1vdmUgdGhpcyBtb2R1bGUgZnJvbSBgY29yZS1qc0A0YCBzaW5jZSBpdCdzIHNwbGl0IHRvIG1vZHVsZXMgbGlzdGVkIGJlbG93XG5yZXF1aXJlKCcuLi9tb2R1bGVzL3dlYi5zZXQtaW50ZXJ2YWwnKTtcbnJlcXVpcmUoJy4uL21vZHVsZXMvd2ViLnNldC10aW1lb3V0Jyk7XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIi5lbW9qaS1tYXJ0LFxcbi5lbW9qaS1tYXJ0ICoge1xcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XFxufVxcblxcbi5lbW9qaS1tYXJ0IHtcXG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICAvKiBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7ICovXFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGhlaWdodDogNDIwcHg7XFxuICBjb2xvcjogIzIyMjQyNztcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbn1cXG5cXG4uZW1vamktbWFydC1lbW9qaSB7XFxuICBwYWRkaW5nOiA2cHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBmb250LXNpemU6IDA7XFxuICBib3JkZXI6IG5vbmU7XFxuICBiYWNrZ3JvdW5kOiBub25lO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG5cXG4uZW1vamktbWFydC1lbW9qaSBzcGFuIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldy1lbW9qaSAuZW1vamktbWFydC1lbW9qaSBzcGFuIHtcXG4gIHdpZHRoOiAzOHB4O1xcbiAgaGVpZ2h0OiAzOHB4O1xcbiAgZm9udC1zaXplOiAzMnB4O1xcbn1cXG5cXG4uZW1vamktdHlwZS1uYXRpdmUge1xcbiAgZm9udC1mYW1pbHk6ICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnLCAnU2Vnb2UgVUknLFxcbiAgICAnQXBwbGUgQ29sb3IgRW1vamknLCAnVHdlbW9qaSBNb3ppbGxhJywgJ05vdG8gQ29sb3IgRW1vamknLCAnRW1vamlPbmUgQ29sb3InLFxcbiAgICAnQW5kcm9pZCBFbW9qaSc7XFxuICB3b3JkLWJyZWFrOiBrZWVwLWFsbDtcXG59XFxuXFxuLmVtb2ppLXR5cGUtaW1hZ2Uge1xcbiAgLyogRW1vamkgc2hlZXQgaGFzIDU2IGNvbHVtbnMsIHNlZSBhbHNvIHV0aWxzL2Vtb2ppLWRhdGEuanMsIFNIRUVUX0NPTFVNTlMgdmFyaWFibGUgKi9cXG4gIC8qIEhlcmUgd2UgdXNlICg1NisxKSAqIDEwMCUgdG8gYXZvaWQgdmlzaWJsZSBlZGdlcyBvZiBuZWFyYnkgaWNvbnMgd2hlbiBzY2FsaW5nIGZvciBkaWZmZXJlbnRcXG4gICAqIHNjcmVlbiBzaXplcyAqL1xcbiAgYmFja2dyb3VuZC1zaXplOiA2MTAwJTtcXG59XFxuLmVtb2ppLXR5cGUtaW1hZ2UuZW1vamktc2V0LWFwcGxlIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly91bnBrZy5jb20vZW1vamktZGF0YXNvdXJjZS1hcHBsZUAxNC4wLjAvaW1nL2FwcGxlL3NoZWV0cy0yNTYvNjQucG5nJyk7XFxufVxcbi5lbW9qaS10eXBlLWltYWdlLmVtb2ppLXNldC1mYWNlYm9vayB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vdW5wa2cuY29tL2Vtb2ppLWRhdGFzb3VyY2UtZmFjZWJvb2tAMTQuMC4wL2ltZy9mYWNlYm9vay9zaGVldHMtMjU2LzY0LnBuZycpO1xcbn1cXG4uZW1vamktdHlwZS1pbWFnZS5lbW9qaS1zZXQtZ29vZ2xlIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly91bnBrZy5jb20vZW1vamktZGF0YXNvdXJjZS1nb29nbGVAMTQuMC4wL2ltZy9nb29nbGUvc2hlZXRzLTI1Ni82NC5wbmcnKTtcXG59XFxuLmVtb2ppLXR5cGUtaW1hZ2UuZW1vamktc2V0LXR3aXR0ZXIge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3VucGtnLmNvbS9lbW9qaS1kYXRhc291cmNlLXR3aXR0ZXJAMTQuMC4wL2ltZy90d2l0dGVyL3NoZWV0cy0yNTYvNjQucG5nJyk7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWJhciB7XFxuICBib3JkZXI6IDAgc29saWQgI2Q5ZDlkOTtcXG59XFxuLmVtb2ppLW1hcnQtYmFyOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDFweDtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDVweDtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XFxufVxcbi5lbW9qaS1tYXJ0LWJhcjpsYXN0LWNoaWxkIHtcXG4gIGJvcmRlci10b3Atd2lkdGg6IDFweDtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDVweDtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiA1cHg7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXNjcm9sbCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBvdmVyZmxvdy15OiBzY3JvbGw7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxO1xcbiAgICAgICAgICBmbGV4OiAxO1xcbiAgcGFkZGluZzogMCA2cHggNnB4IDZweDtcXG4gIHotaW5kZXg6IDA7IC8qIEZpeCBmb3IgcmVuZGVyaW5nIHN0aWNreSBwb3NpdGlvbmVkIGNhdGVnb3J5IGxhYmVscyBvbiBDaHJvbWUgKi9cXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IC8qIGF2b2lkcyBcXFwicmVwYWludHMgb24gc2Nyb2xsXFxcIiBpbiBtb2JpbGUgQ2hyb21lICovXFxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWFuY2hvcnMge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcXG4gIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7XFxuICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgcGFkZGluZzogMCA2cHg7XFxuICBjb2xvcjogIzg1ODU4NTtcXG4gIGxpbmUtaGVpZ2h0OiAwO1xcbn1cXG5cXG4uZW1vamktbWFydC1hbmNob3Ige1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgZmxleDogMSAxIGF1dG87XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBwYWRkaW5nOiAxMnB4IDRweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yIDAuMXMgZWFzZS1vdXQ7XFxuICAtby10cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2Utb3V0O1xcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xcyBlYXNlLW91dDtcXG4gIGJvcmRlcjogbm9uZTtcXG4gIGJhY2tncm91bmQ6IG5vbmU7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5lbW9qaS1tYXJ0LWFuY2hvcjpob3ZlcixcXG4uZW1vamktbWFydC1hbmNob3Itc2VsZWN0ZWQge1xcbiAgY29sb3I6ICM0NjQ2NDY7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWFuY2hvci1zZWxlY3RlZCAuZW1vamktbWFydC1hbmNob3ItYmFyIHtcXG4gIGJvdHRvbTogMDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYW5jaG9yLWJhciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3R0b206IC0zcHg7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDNweDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM0NjQ2NDY7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWFuY2hvcnMgaSB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1heC13aWR0aDogMjJweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYW5jaG9ycyBzdmcge1xcbiAgZmlsbDogY3VycmVudENvbG9yO1xcbiAgbWF4LWhlaWdodDogMThweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQgLnNjcm9sbGVyIHtcXG4gIGhlaWdodDogMjUwcHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxO1xcbiAgICAgICAgICBmbGV4OiAxO1xcbiAgcGFkZGluZzogMCA2cHggNnB4IDZweDtcXG4gIHotaW5kZXg6IDA7IC8qIEZpeCBmb3IgcmVuZGVyaW5nIHN0aWNreSBwb3NpdGlvbmVkIGNhdGVnb3J5IGxhYmVscyBvbiBDaHJvbWUgKi9cXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IC8qIGF2b2lkcyBcXFwicmVwYWludHMgb24gc2Nyb2xsXFxcIiBpbiBtb2JpbGUgQ2hyb21lICovXFxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXNlYXJjaCB7XFxuICBtYXJnaW4tdG9wOiA2cHg7XFxuICBwYWRkaW5nOiAwIDZweDtcXG59XFxuLmVtb2ppLW1hcnQtc2VhcmNoIGlucHV0IHtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nOiAwLjJlbSAwLjZlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xcbiAgb3V0bGluZTogMDtcXG59XFxuLmVtb2ppLW1hcnQtc2VhcmNoLXJlc3VsdHMge1xcbiAgaGVpZ2h0OiAyNTBweDtcXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtY2F0ZWdvcnkge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG5cXG4uZW1vamktbWFydC1jYXRlZ29yeSAuZW1vamktbWFydC1lbW9qaSBzcGFuIHtcXG4gIHotaW5kZXg6IDE7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWNhdGVnb3J5IC5lbW9qaS1tYXJ0LWVtb2ppOmhvdmVyOmJlZm9yZSxcXG4uZW1vamktbWFydC1lbW9qaS1zZWxlY3RlZDpiZWZvcmUge1xcbiAgei1pbmRleDogMDtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4uZW1vamktbWFydC1jYXRlZ29yeSAuZW1vamktbWFydC1lbW9qaTpob3ZlcjpiZWZvcmUsXFxuLmVtb2ppLW1hcnQtZW1vamktc2VsZWN0ZWQ6YmVmb3JlIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsIHtcXG4gIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTtcXG4gIHBvc2l0aW9uOiBzdGlja3k7XFxuICB0b3A6IDA7XFxufVxcbi5lbW9qaS1tYXJ0LXN0YXRpYyAuZW1vamktbWFydC1jYXRlZ29yeS1sYWJlbCB7XFxuICB6LWluZGV4OiAyO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgLyogcG9zaXRpb246IHN0aWNreTsgKi9cXG4gIC8qIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTsgKi9cXG59XFxuXFxuLmVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWwgaDMge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBwYWRkaW5nOiA1cHggNnB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWVtb2ppIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGZvbnQtc2l6ZTogMDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtbm8tcmVzdWx0cyB7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBwYWRkaW5nLXRvcDogNzBweDtcXG4gIGNvbG9yOiAjODU4NTg1O1xcbn1cXG4uZW1vamktbWFydC1uby1yZXN1bHRzIC5lbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5lbW9qaS1tYXJ0LW5vLXJlc3VsdHMgLmVtb2ppLW1hcnQtbm8tcmVzdWx0cy1sYWJlbCB7XFxuICBtYXJnaW4tdG9wOiAwLjJlbTtcXG59XFxuLmVtb2ppLW1hcnQtbm8tcmVzdWx0cyAuZW1vamktbWFydC1lbW9qaTpob3ZlcjpiZWZvcmUge1xcbiAgY29udGVudDogbm9uZTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBoZWlnaHQ6IDcwcHg7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZW1vamksXFxuLmVtb2ppLW1hcnQtcHJldmlldy1kYXRhLFxcbi5lbW9qaS1tYXJ0LXByZXZpZXctc2tpbnMge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gICAgICAtbXMtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZW1vamkge1xcbiAgbGVmdDogMTJweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldy1kYXRhIHtcXG4gIGxlZnQ6IDY4cHg7XFxuICByaWdodDogMTJweDtcXG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldy1za2lucyB7XFxuICByaWdodDogMzBweDtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LW5hbWUge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBjb2xvcjogIzg4ODtcXG59XFxuLmVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWUgKyAuZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZSxcXG4uZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZSArIC5lbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb24sXFxuLmVtb2ppLW1hcnQtcHJldmlldy1lbW90aWNvbiArIC5lbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb24ge1xcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LWVtb3RpY29uIHtcXG4gIGZvbnQtc2l6ZTogMTFweDtcXG4gIGNvbG9yOiAjYmJiO1xcbn1cXG5cXG4uZW1vamktbWFydC10aXRsZSBzcGFuIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXRpdGxlIC5lbW9qaS1tYXJ0LWVtb2ppIHtcXG4gIHBhZGRpbmc6IDA7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXRpdGxlLWxhYmVsIHtcXG4gIGNvbG9yOiAjOTk5YTljO1xcbiAgZm9udC1zaXplOiAyMXB4O1xcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcyB7XFxuICBmb250LXNpemU6IDA7XFxuICBwYWRkaW5nOiAycHggMDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XFxuICBib3JkZXItcmFkaXVzOiAxMnB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcy1vcGVuZWQgLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gge1xcbiAgd2lkdGg6IDE2cHg7XFxuICBwYWRkaW5nOiAwIDJweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcy1vcGVuZWQgLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gtc2VsZWN0ZWQ6YWZ0ZXIge1xcbiAgb3BhY2l0eTogMC43NTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgd2lkdGg6IDA7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB3aWR0aCwgcGFkZGluZztcXG4gIC1vLXRyYW5zaXRpb24tcHJvcGVydHk6IHdpZHRoLCBwYWRkaW5nO1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogd2lkdGgsIHBhZGRpbmc7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuMTI1cztcXG4gICAgICAgLW8tdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xMjVzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjEyNXM7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDtcXG4gICAgICAgLW8tdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2Utb3V0O1xcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCgxKSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDBzO1xcbiAgICAgICAtby10cmFuc2l0aW9uLWRlbGF5OiAwcztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMHM7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCgyKSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDAuMDNzO1xcbiAgICAgICAtby10cmFuc2l0aW9uLWRlbGF5OiAwLjAzcztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4wM3M7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCgzKSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDAuMDZzO1xcbiAgICAgICAtby10cmFuc2l0aW9uLWRlbGF5OiAwLjA2cztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4wNnM7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCg0KSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDAuMDlzO1xcbiAgICAgICAtby10cmFuc2l0aW9uLWRlbGF5OiAwLjA5cztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4wOXM7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCg1KSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDAuMTJzO1xcbiAgICAgICAtby10cmFuc2l0aW9uLWRlbGF5OiAwLjEycztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4xMnM7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCg2KSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZGVsYXk6IDAuMTVzO1xcbiAgICAgICAtby10cmFuc2l0aW9uLWRlbGF5OiAwLjE1cztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4xNXM7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoLXNlbGVjdGVkIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiAxNnB4O1xcbiAgcGFkZGluZzogMCAycHg7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoLXNlbGVjdGVkOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiA1MCU7XFxuICB3aWR0aDogNHB4O1xcbiAgaGVpZ2h0OiA0cHg7XFxuICBtYXJnaW46IC0ycHggMCAwIC0ycHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2Utb3V0O1xcbiAgLW8tdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2Utb3V0O1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2Utb3V0O1xcbn1cXG5cXG4uZW1vamktbWFydC1za2luIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgcGFkZGluZy10b3A6IDEwMCU7XFxuICBtYXgtd2lkdGg6IDEycHg7XFxuICBib3JkZXItcmFkaXVzOiAxMDAlO1xcbn1cXG5cXG4uZW1vamktbWFydC1za2luLXRvbmUtMSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjOTNhO1xcbn1cXG4uZW1vamktbWFydC1za2luLXRvbmUtMiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFkY2JjO1xcbn1cXG4uZW1vamktbWFydC1za2luLXRvbmUtMyB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBiYjk1O1xcbn1cXG4uZW1vamktbWFydC1za2luLXRvbmUtNCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmY4ZjY4O1xcbn1cXG4uZW1vamktbWFydC1za2luLXRvbmUtNSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOWI2NDNkO1xcbn1cXG4uZW1vamktbWFydC1za2luLXRvbmUtNiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTk0NTM5O1xcbn1cXG5cXG4vKiB2dWUtdmlydHVhbC1zY3JvbGxlci9kaXN0L3Z1ZS12aXJ0dWFsLXNjcm9sbGVyLmNzcyAqL1xcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlci5kaXJlY3Rpb24tdmVydGljYWw6bm90KC5wYWdlLW1vZGUpIHtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxufVxcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlci5kaXJlY3Rpb24taG9yaXpvbnRhbDpub3QoLnBhZ2UtbW9kZSkge1xcbiAgb3ZlcmZsb3cteDogYXV0bztcXG59XFxuLmVtb2ppLW1hcnQgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLmRpcmVjdGlvbi1ob3Jpem9udGFsIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbn1cXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX3Nsb3Qge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogYXV0byAwIDBweDtcXG4gICAgICAgICAgZmxleDogYXV0byAwIDA7XFxufVxcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS13cmFwcGVyIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDE7XFxuICAgICAgICAgIGZsZXg6IDE7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXIucmVhZHkgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19pdGVtLXZpZXcge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XFxufVxcbi5lbW9qaS1tYXJ0XFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXIuZGlyZWN0aW9uLXZlcnRpY2FsXFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX2l0ZW0td3JhcHBlciB7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLmVtb2ppLW1hcnRcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlci5kaXJlY3Rpb24taG9yaXpvbnRhbFxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19pdGVtLXdyYXBwZXIge1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4uZW1vamktbWFydFxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLnJlYWR5LmRpcmVjdGlvbi12ZXJ0aWNhbFxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19pdGVtLXZpZXcge1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5lbW9qaS1tYXJ0XFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXIucmVhZHkuZGlyZWN0aW9uLWhvcml6b250YWxcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS12aWV3IHtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLmVtb2ppLW1hcnQgLnJlc2l6ZS1vYnNlcnZlcltkYXRhLXYtYjMyOWVlNGNdIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB6LWluZGV4OiAtMTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYm9yZGVyOiBub25lO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5lbW9qaS1tYXJ0IC5yZXNpemUtb2JzZXJ2ZXJbZGF0YS12LWIzMjllZTRjXSBvYmplY3Qge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB6LWluZGV4OiAtMTtcXG59XFxuLmVtb2ppLW1hcnQtc2VhcmNoIC5oaWRkZW4ge1xcbiAgZGlzcGxheTogbm9uZTtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY3NzL2Vtb2ppLW1hcnQuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBOztFQUVFLDhCQUFzQjtVQUF0QixzQkFBc0I7RUFDdEIsaUJBQWlCO0FBQ25COztBQUVB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QUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjs7QUFFQSx1REFBdUQ7QUFDdkQ7RUFDRSxrQkFBa0I7QUFDcEI7QUFDQTtFQUNFLGdCQUFnQjtBQUNsQjtBQUNBO0VBQ0UsZ0JBQWdCO0FBQ2xCO0FBQ0E7RUFDRSxvQkFBYTtFQUFiLG9CQUFhO0VBQWIsYUFBYTtBQUNmO0FBQ0E7RUFDRSxtQkFBYztNQUFkLG9CQUFjO1VBQWQsY0FBYztBQUNoQjtBQUNBO0VBQ0UsbUJBQU87TUFBUCxXQUFPO1VBQVAsT0FBTztFQUNQLDhCQUFzQjtVQUF0QixzQkFBc0I7RUFDdEIsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBQUNwQjtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1Asc0JBQXNCO0FBQ3hCO0FBQ0E7OztFQUdFLFdBQVc7QUFDYjtBQUNBOzs7RUFHRSxZQUFZO0FBQ2Q7QUFDQTs7O0VBR0UsV0FBVztBQUNiO0FBQ0E7OztFQUdFLFlBQVk7QUFDZDtBQUNBO0VBQ0Usa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixPQUFPO0VBQ1AsV0FBVztFQUNYLFdBQVc7RUFDWCxZQUFZO0VBQ1osWUFBWTtFQUNaLDZCQUE2QjtFQUM3QixvQkFBb0I7RUFDcEIsY0FBYztFQUNkLGdCQUFnQjtFQUNoQixVQUFVO0FBQ1o7QUFDQTtFQUNFLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsTUFBTTtFQUNOLE9BQU87RUFDUCxZQUFZO0VBQ1osV0FBVztFQUNYLGdCQUFnQjtFQUNoQixvQkFBb0I7RUFDcEIsV0FBVztBQUNiO0FBQ0E7RUFDRSxhQUFhO0VBQ2Isa0JBQWtCO0FBQ3BCXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5lbW9qaS1tYXJ0LFxcbi5lbW9qaS1tYXJ0ICoge1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xcbn1cXG5cXG4uZW1vamktbWFydCB7XFxuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmO1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbiAgLyogZGlzcGxheTogaW5saW5lLWJsb2NrOyAqL1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBoZWlnaHQ6IDQyMHB4O1xcbiAgY29sb3I6ICMyMjI0Mjc7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG59XFxuXFxuLmVtb2ppLW1hcnQtZW1vamkge1xcbiAgcGFkZGluZzogNnB4O1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgZm9udC1zaXplOiAwO1xcbiAgYm9yZGVyOiBub25lO1xcbiAgYmFja2dyb3VuZDogbm9uZTtcXG4gIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWVtb2ppIHNwYW4ge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LWVtb2ppIC5lbW9qaS1tYXJ0LWVtb2ppIHNwYW4ge1xcbiAgd2lkdGg6IDM4cHg7XFxuICBoZWlnaHQ6IDM4cHg7XFxuICBmb250LXNpemU6IDMycHg7XFxufVxcblxcbi5lbW9qaS10eXBlLW5hdGl2ZSB7XFxuICBmb250LWZhbWlseTogJ1NlZ29lIFVJIEVtb2ppJywgJ1NlZ29lIFVJIFN5bWJvbCcsICdTZWdvZSBVSScsXFxuICAgICdBcHBsZSBDb2xvciBFbW9qaScsICdUd2Vtb2ppIE1vemlsbGEnLCAnTm90byBDb2xvciBFbW9qaScsICdFbW9qaU9uZSBDb2xvcicsXFxuICAgICdBbmRyb2lkIEVtb2ppJztcXG4gIHdvcmQtYnJlYWs6IGtlZXAtYWxsO1xcbn1cXG5cXG4uZW1vamktdHlwZS1pbWFnZSB7XFxuICAvKiBFbW9qaSBzaGVldCBoYXMgNTYgY29sdW1ucywgc2VlIGFsc28gdXRpbHMvZW1vamktZGF0YS5qcywgU0hFRVRfQ09MVU1OUyB2YXJpYWJsZSAqL1xcbiAgLyogSGVyZSB3ZSB1c2UgKDU2KzEpICogMTAwJSB0byBhdm9pZCB2aXNpYmxlIGVkZ2VzIG9mIG5lYXJieSBpY29ucyB3aGVuIHNjYWxpbmcgZm9yIGRpZmZlcmVudFxcbiAgICogc2NyZWVuIHNpemVzICovXFxuICBiYWNrZ3JvdW5kLXNpemU6IDYxMDAlO1xcbn1cXG4uZW1vamktdHlwZS1pbWFnZS5lbW9qaS1zZXQtYXBwbGUge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3VucGtnLmNvbS9lbW9qaS1kYXRhc291cmNlLWFwcGxlQDE0LjAuMC9pbWcvYXBwbGUvc2hlZXRzLTI1Ni82NC5wbmcnKTtcXG59XFxuLmVtb2ppLXR5cGUtaW1hZ2UuZW1vamktc2V0LWZhY2Vib29rIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnaHR0cHM6Ly91bnBrZy5jb20vZW1vamktZGF0YXNvdXJjZS1mYWNlYm9va0AxNC4wLjAvaW1nL2ZhY2Vib29rL3NoZWV0cy0yNTYvNjQucG5nJyk7XFxufVxcbi5lbW9qaS10eXBlLWltYWdlLmVtb2ppLXNldC1nb29nbGUge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdodHRwczovL3VucGtnLmNvbS9lbW9qaS1kYXRhc291cmNlLWdvb2dsZUAxNC4wLjAvaW1nL2dvb2dsZS9zaGVldHMtMjU2LzY0LnBuZycpO1xcbn1cXG4uZW1vamktdHlwZS1pbWFnZS5lbW9qaS1zZXQtdHdpdHRlciB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2h0dHBzOi8vdW5wa2cuY29tL2Vtb2ppLWRhdGFzb3VyY2UtdHdpdHRlckAxNC4wLjAvaW1nL3R3aXR0ZXIvc2hlZXRzLTI1Ni82NC5wbmcnKTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYmFyIHtcXG4gIGJvcmRlcjogMCBzb2xpZCAjZDlkOWQ5O1xcbn1cXG4uZW1vamktbWFydC1iYXI6Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMXB4O1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcXG59XFxuLmVtb2ppLW1hcnQtYmFyOmxhc3QtY2hpbGQge1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMXB4O1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNXB4O1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDVweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2Nyb2xsIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcXG4gIGZsZXg6IDE7XFxuICBwYWRkaW5nOiAwIDZweCA2cHggNnB4O1xcbiAgei1pbmRleDogMDsgLyogRml4IGZvciByZW5kZXJpbmcgc3RpY2t5IHBvc2l0aW9uZWQgY2F0ZWdvcnkgbGFiZWxzIG9uIENocm9tZSAqL1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsgLyogYXZvaWRzIFxcXCJyZXBhaW50cyBvbiBzY3JvbGxcXFwiIGluIG1vYmlsZSBDaHJvbWUgKi9cXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYW5jaG9ycyB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gIHBhZGRpbmc6IDAgNnB4O1xcbiAgY29sb3I6ICM4NTg1ODU7XFxuICBsaW5lLWhlaWdodDogMDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYW5jaG9yIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgZmxleDogMSAxIGF1dG87XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBwYWRkaW5nOiAxMnB4IDRweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjFzIGVhc2Utb3V0O1xcbiAgYm9yZGVyOiBub25lO1xcbiAgYmFja2dyb3VuZDogbm9uZTtcXG4gIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5lbW9qaS1tYXJ0LWFuY2hvcjpob3ZlcixcXG4uZW1vamktbWFydC1hbmNob3Itc2VsZWN0ZWQge1xcbiAgY29sb3I6ICM0NjQ2NDY7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWFuY2hvci1zZWxlY3RlZCAuZW1vamktbWFydC1hbmNob3ItYmFyIHtcXG4gIGJvdHRvbTogMDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYW5jaG9yLWJhciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3R0b206IC0zcHg7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDNweDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICM0NjQ2NDY7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWFuY2hvcnMgaSB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1heC13aWR0aDogMjJweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtYW5jaG9ycyBzdmcge1xcbiAgZmlsbDogY3VycmVudENvbG9yO1xcbiAgbWF4LWhlaWdodDogMThweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQgLnNjcm9sbGVyIHtcXG4gIGhlaWdodDogMjUwcHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBmbGV4OiAxO1xcbiAgcGFkZGluZzogMCA2cHggNnB4IDZweDtcXG4gIHotaW5kZXg6IDA7IC8qIEZpeCBmb3IgcmVuZGVyaW5nIHN0aWNreSBwb3NpdGlvbmVkIGNhdGVnb3J5IGxhYmVscyBvbiBDaHJvbWUgKi9cXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07IC8qIGF2b2lkcyBcXFwicmVwYWludHMgb24gc2Nyb2xsXFxcIiBpbiBtb2JpbGUgQ2hyb21lICovXFxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXNlYXJjaCB7XFxuICBtYXJnaW4tdG9wOiA2cHg7XFxuICBwYWRkaW5nOiAwIDZweDtcXG59XFxuLmVtb2ppLW1hcnQtc2VhcmNoIGlucHV0IHtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nOiAwLjJlbSAwLjZlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xcbiAgb3V0bGluZTogMDtcXG59XFxuLmVtb2ppLW1hcnQtc2VhcmNoLXJlc3VsdHMge1xcbiAgaGVpZ2h0OiAyNTBweDtcXG4gIG92ZXJmbG93LXk6IHNjcm9sbDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtY2F0ZWdvcnkge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG5cXG4uZW1vamktbWFydC1jYXRlZ29yeSAuZW1vamktbWFydC1lbW9qaSBzcGFuIHtcXG4gIHotaW5kZXg6IDE7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBjdXJzb3I6IGRlZmF1bHQ7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWNhdGVnb3J5IC5lbW9qaS1tYXJ0LWVtb2ppOmhvdmVyOmJlZm9yZSxcXG4uZW1vamktbWFydC1lbW9qaS1zZWxlY3RlZDpiZWZvcmUge1xcbiAgei1pbmRleDogMDtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Y0ZjRmNDtcXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4uZW1vamktbWFydC1jYXRlZ29yeSAuZW1vamktbWFydC1lbW9qaTpob3ZlcjpiZWZvcmUsXFxuLmVtb2ppLW1hcnQtZW1vamktc2VsZWN0ZWQ6YmVmb3JlIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsIHtcXG4gIHBvc2l0aW9uOiBzdGlja3k7XFxuICB0b3A6IDA7XFxufVxcbi5lbW9qaS1tYXJ0LXN0YXRpYyAuZW1vamktbWFydC1jYXRlZ29yeS1sYWJlbCB7XFxuICB6LWluZGV4OiAyO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgLyogcG9zaXRpb246IHN0aWNreTsgKi9cXG4gIC8qIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTsgKi9cXG59XFxuXFxuLmVtb2ppLW1hcnQtY2F0ZWdvcnktbGFiZWwgaDMge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBwYWRkaW5nOiA1cHggNnB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XFxufVxcblxcbi5lbW9qaS1tYXJ0LWVtb2ppIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGZvbnQtc2l6ZTogMDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtbm8tcmVzdWx0cyB7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICBwYWRkaW5nLXRvcDogNzBweDtcXG4gIGNvbG9yOiAjODU4NTg1O1xcbn1cXG4uZW1vamktbWFydC1uby1yZXN1bHRzIC5lbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5lbW9qaS1tYXJ0LW5vLXJlc3VsdHMgLmVtb2ppLW1hcnQtbm8tcmVzdWx0cy1sYWJlbCB7XFxuICBtYXJnaW4tdG9wOiAwLjJlbTtcXG59XFxuLmVtb2ppLW1hcnQtbm8tcmVzdWx0cyAuZW1vamktbWFydC1lbW9qaTpob3ZlcjpiZWZvcmUge1xcbiAgY29udGVudDogbm9uZTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBoZWlnaHQ6IDcwcHg7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZW1vamksXFxuLmVtb2ppLW1hcnQtcHJldmlldy1kYXRhLFxcbi5lbW9qaS1tYXJ0LXByZXZpZXctc2tpbnMge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXByZXZpZXctZW1vamkge1xcbiAgbGVmdDogMTJweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldy1kYXRhIHtcXG4gIGxlZnQ6IDY4cHg7XFxuICByaWdodDogMTJweDtcXG4gIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtcHJldmlldy1za2lucyB7XFxuICByaWdodDogMzBweDtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LW5hbWUge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBjb2xvcjogIzg4ODtcXG59XFxuLmVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWUgKyAuZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZSxcXG4uZW1vamktbWFydC1wcmV2aWV3LXNob3J0bmFtZSArIC5lbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb24sXFxuLmVtb2ppLW1hcnQtcHJldmlldy1lbW90aWNvbiArIC5lbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb24ge1xcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xcbn1cXG5cXG4uZW1vamktbWFydC1wcmV2aWV3LWVtb3RpY29uIHtcXG4gIGZvbnQtc2l6ZTogMTFweDtcXG4gIGNvbG9yOiAjYmJiO1xcbn1cXG5cXG4uZW1vamktbWFydC10aXRsZSBzcGFuIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXRpdGxlIC5lbW9qaS1tYXJ0LWVtb2ppIHtcXG4gIHBhZGRpbmc6IDA7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXRpdGxlLWxhYmVsIHtcXG4gIGNvbG9yOiAjOTk5YTljO1xcbiAgZm9udC1zaXplOiAyMXB4O1xcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcyB7XFxuICBmb250LXNpemU6IDA7XFxuICBwYWRkaW5nOiAycHggMDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XFxuICBib3JkZXItcmFkaXVzOiAxMnB4O1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcy1vcGVuZWQgLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gge1xcbiAgd2lkdGg6IDE2cHg7XFxuICBwYWRkaW5nOiAwIDJweDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2hlcy1vcGVuZWQgLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gtc2VsZWN0ZWQ6YWZ0ZXIge1xcbiAgb3BhY2l0eTogMC43NTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2gge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgd2lkdGg6IDA7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogd2lkdGgsIHBhZGRpbmc7XFxuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjEyNXM7XFxuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCgxKSB7XFxuICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2g6bnRoLWNoaWxkKDIpIHtcXG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMDNzO1xcbn1cXG4uZW1vamktbWFydC1za2luLXN3YXRjaDpudGgtY2hpbGQoMykge1xcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4wNnM7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoOm50aC1jaGlsZCg0KSB7XFxuICB0cmFuc2l0aW9uLWRlbGF5OiAwLjA5cztcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi1zd2F0Y2g6bnRoLWNoaWxkKDUpIHtcXG4gIHRyYW5zaXRpb24tZGVsYXk6IDAuMTJzO1xcbn1cXG4uZW1vamktbWFydC1za2luLXN3YXRjaDpudGgtY2hpbGQoNikge1xcbiAgdHJhbnNpdGlvbi1kZWxheTogMC4xNXM7XFxufVxcblxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoLXNlbGVjdGVkIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiAxNnB4O1xcbiAgcGFkZGluZzogMCAycHg7XFxufVxcbi5lbW9qaS1tYXJ0LXNraW4tc3dhdGNoLXNlbGVjdGVkOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiA1MCU7XFxuICB3aWR0aDogNHB4O1xcbiAgaGVpZ2h0OiA0cHg7XFxuICBtYXJnaW46IC0ycHggMCAwIC0ycHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgb3BhY2l0eTogMDtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLW91dDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbiB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIHBhZGRpbmctdG9wOiAxMDAlO1xcbiAgbWF4LXdpZHRoOiAxMnB4O1xcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcXG59XFxuXFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTEge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYzkzYTtcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTIge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZGNiYztcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTMge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwYmI5NTtcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2JmOGY2ODtcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTUge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzliNjQzZDtcXG59XFxuLmVtb2ppLW1hcnQtc2tpbi10b25lLTYge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzU5NDUzOTtcXG59XFxuXFxuLyogdnVlLXZpcnR1YWwtc2Nyb2xsZXIvZGlzdC92dWUtdmlydHVhbC1zY3JvbGxlci5jc3MgKi9cXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXIuZGlyZWN0aW9uLXZlcnRpY2FsOm5vdCgucGFnZS1tb2RlKSB7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbn1cXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXIuZGlyZWN0aW9uLWhvcml6b250YWw6bm90KC5wYWdlLW1vZGUpIHtcXG4gIG92ZXJmbG93LXg6IGF1dG87XFxufVxcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlci5kaXJlY3Rpb24taG9yaXpvbnRhbCB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbn1cXG4uZW1vamktbWFydCAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX3Nsb3Qge1xcbiAgZmxleDogYXV0byAwIDA7XFxufVxcbi5lbW9qaS1tYXJ0IC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS13cmFwcGVyIHtcXG4gIGZsZXg6IDE7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLmVtb2ppLW1hcnQgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLnJlYWR5IC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS12aWV3IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xcbn1cXG4uZW1vamktbWFydFxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLmRpcmVjdGlvbi12ZXJ0aWNhbFxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyX19pdGVtLXdyYXBwZXIge1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5lbW9qaS1tYXJ0XFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXIuZGlyZWN0aW9uLWhvcml6b250YWxcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS13cmFwcGVyIHtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLmVtb2ppLW1hcnRcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlci5yZWFkeS5kaXJlY3Rpb24tdmVydGljYWxcXG4gIC52dWUtcmVjeWNsZS1zY3JvbGxlcl9faXRlbS12aWV3IHtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4uZW1vamktbWFydFxcbiAgLnZ1ZS1yZWN5Y2xlLXNjcm9sbGVyLnJlYWR5LmRpcmVjdGlvbi1ob3Jpem9udGFsXFxuICAudnVlLXJlY3ljbGUtc2Nyb2xsZXJfX2l0ZW0tdmlldyB7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5lbW9qaS1tYXJ0IC5yZXNpemUtb2JzZXJ2ZXJbZGF0YS12LWIzMjllZTRjXSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgei1pbmRleDogLTE7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGJvcmRlcjogbm9uZTtcXG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4uZW1vamktbWFydCAucmVzaXplLW9ic2VydmVyW2RhdGEtdi1iMzI5ZWU0Y10gb2JqZWN0IHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgei1pbmRleDogLTE7XFxufVxcbi5lbW9qaS1tYXJ0LXNlYXJjaCAuaGlkZGVuIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvZ2V0VXJsLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9VUkxfSU1QT1JUXzBfX18gPSBuZXcgVVJMKFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBZ0FBQUFJQ0FZQUFBREVENzZMQUFBQUgwbEVRVlFvVTJOa1lHQXdaa0FGWjVHNWpQUlJnT1lFVkRlQjNFQmpCUUJPWndUVnVnSUd5QUFBQUFCSlJVNUVya0pnZ2c9PVwiLCBpbXBvcnQubWV0YS51cmwpO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8xX19fID0gbmV3IFVSTChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWo4K0NqeHpkbWNnZDJsa2RHZzlJakV5SWlCb1pXbG5hSFE5SWpRaUlIWnBaWGRRYjNKMFBTSXdJREFnTVRJZ05DSWdkbVZ5YzJsdmJqMGlNUzR4SWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpUGdvZ0lEeGxiR3hwY0hObElHTjRQU0l5SWlCamVUMGlNaUlnY25nOUlqSWlJSEo1UFNJeUlqNEtJQ0FnSUR4aGJtbHRZWFJsSUdGMGRISnBZblYwWlU1aGJXVTlJbU40SWlCbWNtOXRQU0l5SWlCMGJ6MGlMVEV3SWlCa2RYSTlJakF1Tm5NaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlBdlBnb2dJRHd2Wld4c2FYQnpaVDRLSUNBOFpXeHNhWEJ6WlNCamVEMGlNVFFpSUdONVBTSXlJaUJ5ZUQwaU1pSWdjbms5SWpJaUlHTnNZWE56UFNKc2IyRmtaWElpUGdvZ0lDQWdQR0Z1YVcxaGRHVWdZWFIwY21saWRYUmxUbUZ0WlQwaVkzZ2lJR1p5YjIwOUlqRTBJaUIwYnowaU1pSWdaSFZ5UFNJd0xqWnpJaUJ5WlhCbFlYUkRiM1Z1ZEQwaWFXNWtaV1pwYm1sMFpTSWdMejRLSUNBOEwyVnNiR2x3YzJVK0Nqd3ZjM1puUGdvPVwiLCBpbXBvcnQubWV0YS51cmwpO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xudmFyIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzBfX18gPSBfX19DU1NfTE9BREVSX0dFVF9VUkxfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfVVJMX0lNUE9SVF8wX19fKTtcbnZhciBfX19DU1NfTE9BREVSX1VSTF9SRVBMQUNFTUVOVF8xX19fID0gX19fQ1NTX0xPQURFUl9HRVRfVVJMX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX1VSTF9JTVBPUlRfMV9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIvKlxcbiAqIFF1YXNhciBGcmFtZXdvcmsgdjAuMTcuMjBcXG4gKiAoYykgMjAxNi1wcmVzZW50IFJhenZhbiBTdG9lbmVzY3VcXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuXFxuICovXFxuKixcXG4qOmJlZm9yZSxcXG4qOmFmdGVyIHtcXG4gIC13ZWJraXQtYm94LXNpemluZzogaW5oZXJpdDtcXG4gICAgICAgICAgYm94LXNpemluZzogaW5oZXJpdDtcXG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XFxuICAtbW96LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG5odG1sLFxcbmJvZHksXFxuI3EtYXBwIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgZGlyZWN0aW9uOiBsdHI7XFxufVxcbmh0bWwsXFxuYm9keSB7XFxuICBtYXJnaW46IDA7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxufVxcbmlucHV0W3R5cGU9J3RleHQnXSxcXG5pbnB1dFt0eXBlPSdlbWFpbCddLFxcbmlucHV0W3R5cGU9J3NlYXJjaCddLFxcbmlucHV0W3R5cGU9J3Bhc3N3b3JkJ10ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lIC8qIG1vYmlsZSBmaXJlZm94IHRvbyEgKi87XFxufVxcbmFydGljbGUsXFxuYXNpZGUsXFxuZGV0YWlscyxcXG5maWdjYXB0aW9uLFxcbmZpZ3VyZSxcXG5mb290ZXIsXFxuaGVhZGVyLFxcbm1haW4sXFxubWVudSxcXG5uYXYsXFxuc2VjdGlvbixcXG5zdW1tYXJ5IHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbn1cXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xcbiAgZGlzcGxheTogbm9uZTtcXG4gIGhlaWdodDogMDtcXG59XFxuYWJiclt0aXRsZV0ge1xcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xcbiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcXG59XFxuZGZuIHtcXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcXG59XFxuaW1nIHtcXG4gIGJvcmRlci1zdHlsZTogbm9uZTtcXG59XFxuc3ZnOm5vdCg6cm9vdCkge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuY29kZSxcXG5rYmQsXFxucHJlLFxcbnNhbXAge1xcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xcbiAgZm9udC1zaXplOiAxZW07XFxufVxcbmhyIHtcXG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgaGVpZ2h0OiAwO1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxufVxcbmJ1dHRvbixcXG5pbnB1dCxcXG5zZWxlY3QsXFxudGV4dGFyZWEge1xcbiAgZm9udDogaW5oZXJpdDtcXG4gIG1hcmdpbjogMDtcXG59XFxub3B0Z3JvdXAge1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxufVxcbmJ1dHRvbixcXG5pbnB1dCxcXG5zZWxlY3Qge1xcbiAgb3ZlcmZsb3c6IHZpc2libGU7XFxufVxcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XFxuICBib3JkZXI6IDA7XFxuICBwYWRkaW5nOiAwO1xcbn1cXG5idXR0b246LW1vei1mb2N1c3JpbmcsXFxuaW5wdXQ6LW1vei1mb2N1c3Jpbmcge1xcbiAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xcbn1cXG50ZXh0YXJlYSB7XFxuICBvdmVyZmxvdzogYXV0bztcXG59XFxuaW5wdXRbdHlwZT0nc2VhcmNoJ10ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XFxufVxcbmlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxcbmlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG59XFxuLnEtaWNvbiB7XFxuICBsaW5lLWhlaWdodDogMTtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB3b3JkLXdyYXA6IG5vcm1hbDtcXG4gIGRpcmVjdGlvbjogbHRyO1xcbn1cXG4ucS1pY29uLFxcbi5tYXRlcmlhbC1pY29ucyB7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgY3Vyc29yOiBpbmhlcml0O1xcbiAgZm9udC1zaXplOiBpbmhlcml0O1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi5xLWFjdGlvbnNoZWV0LXRpdGxlIHtcXG4gIG1pbi1oZWlnaHQ6IDU2cHg7XFxuICBwYWRkaW5nOiAwIDE2cHg7XFxuICBjb2xvcjogIzc3NztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWZhZGVkKTtcXG59XFxuLnEtYWN0aW9uc2hlZXQtYm9keSB7XFxuICBtYXgtaGVpZ2h0OiA1MDBweDtcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZCB7XFxuICBwYWRkaW5nOiA4cHggMTZweDtcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZCAucS1pdGVtLXNlcGFyYXRvci1jb21wb25lbnQge1xcbiAgbWFyZ2luOiAyNHB4IDA7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbSB7XFxuICBwYWRkaW5nOiA4cHggMTZweDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzO1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzO1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW06aG92ZXIsXFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtOmZvY3VzIHtcXG4gIGJhY2tncm91bmQ6ICNkMGQwZDA7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW0gaSxcXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW0gaW1nIHtcXG4gIGZvbnQtc2l6ZTogNDhweDtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtIC5hdmF0YXIge1xcbiAgd2lkdGg6IDQ4cHg7XFxuICBoZWlnaHQ6IDQ4cHg7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbSBzcGFuIHtcXG4gIGNvbG9yOiAjNzc3O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItZmFkZWQpO1xcbn1cXG4ucS1sb2FkaW5nLWJhciB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB6LWluZGV4OiA5OTk4O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSwgb3BhY2l0eSAwLjVzO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIG9wYWNpdHkgMC41cywgLXdlYmtpdC10cmFuc2Zvcm0gMC41cyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcXG59XFxuLnEtbG9hZGluZy1iYXIudG9wIHtcXG4gIGxlZnQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG4gIHJpZ2h0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxuICB0b3A6IDA7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLnEtbG9hZGluZy1iYXIuYm90dG9tIHtcXG4gIGxlZnQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG4gIHJpZ2h0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxuICBib3R0b206IDA7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLnEtbG9hZGluZy1iYXIucmlnaHQge1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWxvYWRpbmctYmFyLmxlZnQge1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLnEtYWxlcnQge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG4ucS1hbGVydCAuYXZhdGFyIHtcXG4gIHdpZHRoOiAzMnB4O1xcbiAgaGVpZ2h0OiAzMnB4O1xcbn1cXG4ucS1hbGVydC1zaWRlLFxcbi5xLWFsZXJ0LWNvbnRlbnQge1xcbiAgcGFkZGluZzogMTJweDtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XFxufVxcbi5xLWFsZXJ0LXNpZGUge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEpO1xcbn1cXG4ucS1hbGVydC1hY3Rpb25zIHtcXG4gIHBhZGRpbmc6IDEycHggMTJweCAxMnB4IDA7XFxufVxcbi5xLWFsZXJ0LWRldGFpbCB7XFxuICBmb250LXNpemU6IDEycHg7XFxufVxcbi5xLWJyZWFkY3J1bWJzIC5xLWljb24sXFxuLnEtYnJlYWRjcnVtYnMgLnEtYnJlYWRjcnVtYnMtc2VwYXJhdG9yIHtcXG4gIGZvbnQtc2l6ZTogMTUwJTtcXG59XFxuLnEtYnJlYWRjcnVtYnMtbGFzdCBhIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG5bZGlyPXJ0bF0gLnEtYnJlYWRjcnVtYnMtc2VwYXJhdG9yIC5xLWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgtMSkgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoLTEpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWJ0biB7XFxuICBvdXRsaW5lOiAwO1xcbiAgYm9yZGVyOiAwO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIHBhZGRpbmc6IDRweCAxNnB4O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgbWluLWhlaWdodDogMi41NzJlbTtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxufVxcbmJ1dHRvbi5xLWJ0biB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcXG59XFxuYS5xLWJ0biB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG59XFxuLnEtYnRuIC5xLWljb24sXFxuLnEtYnRuIC5xLXNwaW5uZXIge1xcbiAgZm9udC1zaXplOiAxLjRlbTtcXG59XFxuLnEtYnRuIC5xLWJ0bi1pbm5lciB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC42cztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC42cztcXG59XFxuLnEtYnRuIC5xLWJ0bi1pbm5lci0taGlkZGVuIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLWJ0biAucS1idG4taW5uZXI6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbn1cXG4ucS1idG4uZGlzYWJsZWQge1xcbiAgb3BhY2l0eTogMC43ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWJ0bjpub3QoLmRpc2FibGVkKTpub3QoLnEtYnRuLWZsYXQpOm5vdCgucS1idG4tb3V0bGluZSk6bm90KC5xLWJ0bi1wdXNoKTpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgei1pbmRleDogLTE7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG59XFxuLnEtYnRuOm5vdCguZGlzYWJsZWQpOm5vdCgucS1idG4tZmxhdCk6bm90KC5xLWJ0bi1vdXRsaW5lKTpub3QoLnEtYnRuLXB1c2gpOmFjdGl2ZTpiZWZvcmUsXFxuLnEtYnRuOm5vdCguZGlzYWJsZWQpOm5vdCgucS1idG4tZmxhdCk6bm90KC5xLWJ0bi1vdXRsaW5lKTpub3QoLnEtYnRuLXB1c2gpLmFjdGl2ZTpiZWZvcmUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCA4cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMTRweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtYnRuLXByb2dyZXNzIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3M7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcXG4gIGhlaWdodDogMTAwJTtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7XFxufVxcbi5xLWJ0bi1wcm9ncmVzcy5xLWJ0bi1kYXJrLXByb2dyZXNzIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4yKTtcXG59XFxuLnEtYnRuLW5vLXVwcGVyY2FzZSB7XFxuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcXG59XFxuLnEtYnRuLXJlY3RhbmdsZSB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxufVxcbi5xLWJ0bi1vdXRsaW5lIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWJ0bi1wdXNoIHtcXG4gIGJvcmRlci1yYWRpdXM6IDdweDtcXG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTUpO1xcbn1cXG4ucS1idG4tcHVzaDphY3RpdmU6bm90KC5kaXNhYmxlZCksXFxuLnEtYnRuLXB1c2guYWN0aXZlOm5vdCguZGlzYWJsZWQpIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpO1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5xLWJ0bi1wdXNoIC5xLWZvY3VzLWhlbHBlcixcXG4ucS1idG4tcHVzaCAucS1yaXBwbGUtY29udGFpbmVyIHtcXG4gIGhlaWdodDogYXV0bztcXG4gIGJvdHRvbTogLTNweDtcXG59XFxuLnEtYnRuLXJvdW5kZWQge1xcbiAgYm9yZGVyLXJhZGl1czogMjhweDtcXG59XFxuLnEtYnRuLXJvdW5kIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHBhZGRpbmc6IDA7XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgaGVpZ2h0OiAzZW07XFxuICB3aWR0aDogM2VtO1xcbn1cXG4ucS1idG4tZmxhdCxcXG4ucS1idG4tb3V0bGluZSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5xLWJ0bi1kZW5zZSB7XFxuICBwYWRkaW5nOiAwLjI4NWVtO1xcbiAgbWluLWhlaWdodDogMmVtO1xcbn1cXG4ucS1idG4tZGVuc2UucS1idG4tcm91bmQge1xcbiAgcGFkZGluZzogMDtcXG4gIGhlaWdodDogMi40ZW07XFxuICB3aWR0aDogMi40ZW07XFxufVxcbi5xLWJ0bi1kZW5zZSAub24tbGVmdCB7XFxuICBtYXJnaW4tcmlnaHQ6IDZweDtcXG59XFxuLnEtYnRuLWRlbnNlIC5vbi1yaWdodCB7XFxuICBtYXJnaW4tbGVmdDogNnB4O1xcbn1cXG4ucS1idG4tZmFiIC5xLWljb24sXFxuLnEtYnRuLWZhYi1taW5pIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbn1cXG4ucS1idG4tZmFiIHtcXG4gIGhlaWdodDogNTZweDtcXG4gIHdpZHRoOiA1NnB4O1xcbn1cXG4ucS1idG4tZmFiLW1pbmkge1xcbiAgaGVpZ2h0OiA0MHB4O1xcbiAgd2lkdGg6IDQwcHg7XFxufVxcbi5xLXRyYW5zaXRpb24tLWZhZGUtbGVhdmUtYWN0aXZlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLnEtdHJhbnNpdGlvbi0tZmFkZS1lbnRlci1hY3RpdmUsXFxuLnEtdHJhbnNpdGlvbi0tZmFkZS1sZWF2ZS1hY3RpdmUge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZS1vdXQ7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMgZWFzZS1vdXQ7XFxufVxcbi5xLXRyYW5zaXRpb24tLWZhZGUtZW50ZXIsXFxuLnEtdHJhbnNpdGlvbi0tZmFkZS1sZWF2ZSxcXG4ucS10cmFuc2l0aW9uLS1mYWRlLWxlYXZlLXRvIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLWJ0bi1kcm9wZG93bi1zcGxpdCAucS1idG4tZHJvcGRvd24tYXJyb3cge1xcbiAgcGFkZGluZzogMCA0cHg7XFxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4zKTtcXG59XFxuLnEtYnRuLWdyb3VwIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWl0ZW0ge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4tZ3JvdXAgPiAucS1idG46Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGluaGVyaXQ7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1ncm91cCA+IC5xLWJ0bjpsYXN0LWNoaWxkIHtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1ncm91cDpub3QoOmZpcnN0LWNoaWxkKSA+IC5xLWJ0bjpmaXJzdC1jaGlsZCB7XFxuICBib3JkZXItbGVmdDogMDtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCkgPiAucS1idG46bGFzdC1jaGlsZCB7XFxuICBib3JkZXItcmlnaHQ6IDA7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWl0ZW0gKyAucS1idG4taXRlbSB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcXG59XFxuLnEtYnRuLWdyb3VwLXB1c2gge1xcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xcbn1cXG4ucS1idG4tZ3JvdXAtcHVzaCA+IC5xLWJ0bi1wdXNoIC5xLWJ0bi1pbm5lciB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG59XFxuLnEtYnRuLWdyb3VwLXB1c2ggPiAucS1idG4tcHVzaDphY3RpdmU6bm90KC5kaXNhYmxlZCksXFxuLnEtYnRuLWdyb3VwLXB1c2ggPiAucS1idG4tcHVzaC5hY3RpdmU6bm90KC5kaXNhYmxlZCkge1xcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogcmdiYSgwLDAsMCwwLjE1KTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxufVxcbi5xLWJ0bi1ncm91cC1wdXNoID4gLnEtYnRuLXB1c2g6YWN0aXZlOm5vdCguZGlzYWJsZWQpIC5xLWJ0bi1pbm5lcixcXG4ucS1idG4tZ3JvdXAtcHVzaCA+IC5xLWJ0bi1wdXNoLmFjdGl2ZTpub3QoLmRpc2FibGVkKSAucS1idG4taW5uZXIge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoM3B4KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCk7XFxufVxcbi5xLWJ0bi1ncm91cC1yb3VuZGVkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDI4cHg7XFxufVxcbi5xLWJ0bi1ncm91cC1mbGF0LFxcbi5xLWJ0bi1ncm91cC1vdXRsaW5lIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLnEtYnRuLWdyb3VwLW91dGxpbmUgPiAucS1idG4taXRlbSArIC5xLWJ0bi1pdGVtIHtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbn1cXG4ucS1idG4tZ3JvdXAtb3V0bGluZSA+IC5xLWJ0bi1pdGVtOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgYm9yZGVyLXJpZ2h0OiAwO1xcbn1cXG4ucS1jYXJkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgdmVydGljYWwtYWxpZ246IHRvcDtcXG59XFxuLnEtY2FyZCA+IGRpdjpmaXJzdC1jaGlsZCB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XFxufVxcbi5xLWNhcmQgPiBkaXY6bGFzdC1jaGlsZCB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IGluaGVyaXQ7XFxufVxcbi5xLWNhcmQgPiAucS1saXN0IHtcXG4gIGJvcmRlcjogMDtcXG59XFxuLnEtY2FyZC1zZXBhcmF0b3Ige1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEpO1xcbiAgaGVpZ2h0OiAxcHg7XFxufVxcbi5xLWNhcmQtc2VwYXJhdG9yLmluc2V0IHtcXG4gIG1hcmdpbjogMCAxNnB4O1xcbn1cXG4ucS1jYXJkLWNvbnRhaW5lciB7XFxuICBwYWRkaW5nOiAxNnB4O1xcbn1cXG4ucS1jYXJkLXRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMThweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbiAgbGluZS1oZWlnaHQ6IDJyZW07XFxufVxcbi5xLWNhcmQtdGl0bGU6ZW1wdHkge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtY2FyZC1zdWJ0aXRsZSxcXG4ucS1jYXJkLXRpdGxlLWV4dHJhIHtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuNCk7XFxufVxcbi5xLWNhcmQtc3VidGl0bGUgLnEtaWNvbixcXG4ucS1jYXJkLXRpdGxlLWV4dHJhIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbn1cXG4ucS1jYXJkLW1haW4ge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbn1cXG4ucS1jYXJkLXByaW1hcnkgKyAucS1jYXJkLW1haW4ge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5xLWNhcmQtYWN0aW9ucyB7XFxuICBwYWRkaW5nOiA4cHg7XFxufVxcbi5xLWNhcmQtYWN0aW9ucyAucS1idG4ge1xcbiAgcGFkZGluZzogMCA4cHg7XFxufVxcbi5xLWNhcmQtYWN0aW9ucy1ob3JpeiAucS1idG46bm90KDpsYXN0LWNoaWxkKSB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuLnEtY2FyZC1hY3Rpb25zLXZlcnQgLnEtYnRuICsgLnEtYnRuIHtcXG4gIG1hcmdpbi10b3A6IDRweDtcXG59XFxuLnEtY2FyZC1tZWRpYSB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1jYXJkLW1lZGlhID4gaW1nIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBib3JkZXI6IDA7XFxufVxcbi5xLWNhcmQtbWVkaWEtb3ZlcmxheSB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC40Nyk7XFxufVxcbi5xLWNhcmQtbWVkaWEtb3ZlcmxheSAucS1jYXJkLXN1YnRpdGxlIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1jYXJkLWRhcmsgLnEtY2FyZC1zZXBhcmF0b3Ige1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xcbn1cXG4ucS1jYXJkLWRhcmsgLnEtY2FyZC1zdWJ0aXRsZSxcXG4ucS1jYXJkLWRhcmsgLnEtY2FyZC10aXRsZS1leHRyYSB7XFxuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjYpO1xcbn1cXG4ucS1jYXJvdXNlbCB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucS1jYXJvdXNlbC1pbm5lciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWNhcm91c2VsLXNsaWRlIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgLW1zLWZsZXg6IDAgMCAxMDAlO1xcbiAgICAgICAgICBmbGV4OiAwIDAgMTAwJTtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDE4cHg7XFxufVxcbi5xLWNhcm91c2VsLXRyYWNrIHtcXG4gIHBhZGRpbmc6IDA7XFxuICBtYXJnaW46IDA7XFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtbXMtZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgZmxleC13cmFwOiBub3dyYXA7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWNhcm91c2VsLXRyYWNrLmluZmluaXRlLWxlZnQgPiBkaXY6bnRoLWxhc3QtY2hpbGQoMikge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogLTk5OTtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogLTEwMDA7XFxuICAgICAgICAgIG9yZGVyOiAtMTAwMDtcXG4gIG1hcmdpbi1sZWZ0OiAtMTAwJTtcXG59XFxuLnEtY2Fyb3VzZWwtdHJhY2suaW5maW5pdGUtcmlnaHQgPiBkaXY6bnRoLWNoaWxkKDIpIHtcXG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDEwMDE7XFxuICAgICAgLW1zLWZsZXgtb3JkZXI6IDEwMDA7XFxuICAgICAgICAgIG9yZGVyOiAxMDAwO1xcbn1cXG4ucS1jYXJvdXNlbC1sZWZ0LWFycm93LFxcbi5xLWNhcm91c2VsLXJpZ2h0LWFycm93IHtcXG4gIHRvcDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcXG59XFxuLnEtY2Fyb3VzZWwtbGVmdC1hcnJvdyB7XFxuICBsZWZ0OiA1cHg7XFxufVxcbi5xLWNhcm91c2VsLXJpZ2h0LWFycm93IHtcXG4gIHJpZ2h0OiA1cHg7XFxufVxcbi5xLWNhcm91c2VsLXF1aWNrLW5hdiB7XFxuICBwYWRkaW5nOiAycHggMDtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcXG59XFxuLnEtY2Fyb3VzZWwtcXVpY2stbmF2IC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAxOHB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWNhcm91c2VsLXF1aWNrLW5hdiAucS1idG4uaW5hY3RpdmUge1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS1jYXJvdXNlbC1xdWljay1uYXYgLnEtYnRuLmluYWN0aXZlIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMge1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMC4zcztcXG4gIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3M7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjNzO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTA1JSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDUlKTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgbWF4LWhlaWdodDogNjAlO1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxuICBiYWNrZ3JvdW5kOiAjMDAwO1xcbiAgcGFkZGluZzogMC41cmVtO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0zcHggNnB4IHJnYmEoMCwwLDAsMC4xNiksIDAgLTVweCA2cHggcmdiYSgwLDAsMCwwLjIzKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtM3B4IDZweCByZ2JhKDAsMCwwLDAuMTYpLCAwIC01cHggNnB4IHJnYmEoMCwwLDAsMC4yMyk7XFxufVxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMuYWN0aXZlIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxufVxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMgaW1nIHtcXG4gIGhlaWdodDogYXV0bztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBvcGFjaXR5OiAwLjU7XFxuICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgYm9yZGVyOiAxcHggc29saWQgIzAwMDtcXG59XFxuLnEtY2Fyb3VzZWwtdGh1bWJuYWlscyA+IGRpdiA+IGRpdiB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgMTA4cHg7XFxuICAgICAgICAgIGZsZXg6IDAgMCAxMDhweDtcXG59XFxuLnEtY2Fyb3VzZWwtdGh1bWJuYWlscyA+IGRpdiA+IGRpdi5hY3RpdmUgaW1nLFxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMgPiBkaXYgPiBkaXYgaW1nLmFjdGl2ZSB7XFxuICBvcGFjaXR5OiAxO1xcbiAgYm9yZGVyLWNvbG9yOiAjZmZmO1xcbn1cXG4ucS1jYXJvdXNlbC10aHVtYm5haWwtYnRuIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcXG4gIHRvcDogNXB4O1xcbiAgcmlnaHQ6IDVweDtcXG59XFxuYm9keS5kZXNrdG9wIC5xLWNhcm91c2VsLXRodW1ibmFpbHMgaW1nOmhvdmVyIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLW1lc3NhZ2UtbmFtZSxcXG4ucS1tZXNzYWdlLXN0YW1wLFxcbi5xLW1lc3NhZ2UtbGFiZWwge1xcbiAgZm9udC1zaXplOiBzbWFsbDtcXG59XFxuLnEtbWVzc2FnZS1sYWJlbCB7XFxuICBtYXJnaW46IDI0cHggMDtcXG59XFxuLnEtbWVzc2FnZS1zdGFtcCB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIG1hcmdpbi10b3A6IDRweDtcXG4gIG9wYWNpdHk6IDAuNjtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLW1lc3NhZ2UtYXZhdGFyIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHdpZHRoOiA0OHB4O1xcbiAgaGVpZ2h0OiA0OHB4O1xcbn1cXG4ucS1tZXNzYWdlIHtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuLnEtbWVzc2FnZTpmaXJzdC1jaGlsZCAucS1tZXNzYWdlLWxhYmVsIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxufVxcbi5xLW1lc3NhZ2UtcmVjZWl2ZWQgLnEtbWVzc2FnZS1hdmF0YXIge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbi5xLW1lc3NhZ2UtcmVjZWl2ZWQgLnEtbWVzc2FnZS10ZXh0IHtcXG4gIGNvbG9yOiAjODFjNzg0O1xcbiAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAzcHggMDtcXG59XFxuLnEtbWVzc2FnZS1yZWNlaXZlZCAucS1tZXNzYWdlLXRleHQ6bGFzdC1jaGlsZDpiZWZvcmUge1xcbiAgcmlnaHQ6IDEwMCU7XFxuICBib3JkZXItcmlnaHQ6IDAgc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItbGVmdDogOHB4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWJvdHRvbTogOHB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtbWVzc2FnZS1yZWNlaXZlZCAucS1tZXNzYWdlLXRleHQtY29udGVudCB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtbWVzc2FnZS1zZW50IC5xLW1lc3NhZ2UtbmFtZSB7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG59XFxuLnEtbWVzc2FnZS1zZW50IC5xLW1lc3NhZ2UtYXZhdGFyIHtcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxufVxcbi5xLW1lc3NhZ2Utc2VudCAucS1tZXNzYWdlLWNvbnRhaW5lciB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbn1cXG4ucS1tZXNzYWdlLXNlbnQgLnEtbWVzc2FnZS10ZXh0IHtcXG4gIGNvbG9yOiAjZTBlMGUwO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4IDNweCAwIDNweDtcXG59XFxuLnEtbWVzc2FnZS1zZW50IC5xLW1lc3NhZ2UtdGV4dDpsYXN0LWNoaWxkOmJlZm9yZSB7XFxuICBsZWZ0OiAxMDAlO1xcbiAgYm9yZGVyLWxlZnQ6IDAgc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItcmlnaHQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLW1lc3NhZ2Utc2VudCAucS1tZXNzYWdlLXRleHQtY29udGVudCB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtbWVzc2FnZS10ZXh0IHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIHBhZGRpbmc6IDhweDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjI7XFxuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xcbn1cXG4ucS1tZXNzYWdlLXRleHQgKyAucS1tZXNzYWdlLXRleHQge1xcbiAgbWFyZ2luLXRvcDogM3B4O1xcbn1cXG4ucS1tZXNzYWdlLXRleHQ6bGFzdC1jaGlsZCB7XFxuICBtaW4taGVpZ2h0OiA0OHB4O1xcbn1cXG4ucS1tZXNzYWdlLXRleHQ6bGFzdC1jaGlsZCAucS1tZXNzYWdlLXN0YW1wIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbn1cXG4ucS1tZXNzYWdlLXRleHQ6bGFzdC1jaGlsZDpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3R0b206IDA7XFxuICB3aWR0aDogMDtcXG4gIGhlaWdodDogMDtcXG59XFxuLnEtY2hlY2tib3gtaWNvbiB7XFxuICBoZWlnaHQ6IDIxcHg7XFxuICB3aWR0aDogMjFweDtcXG4gIGZvbnQtc2l6ZTogMjFweDtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLWNoaXAge1xcbiAgbWluLWhlaWdodDogMzJweDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIHBhZGRpbmc6IDAgMTJweDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGJvcmRlcjogI2UwZTBlMDtcXG4gIGJvcmRlci1yYWRpdXM6IDJyZW07XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgY29sb3I6ICMwMDA7XFxuICBiYWNrZ3JvdW5kOiAjZWVlO1xcbn1cXG4ucS1jaGlwOmZvY3VzIC5xLWNoaXAtY2xvc2Uge1xcbiAgb3BhY2l0eTogMC44O1xcbn1cXG4ucS1jaGlwIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbiAgbGluZS1oZWlnaHQ6IDE7XFxufVxcbi5xLWNoaXAtbWFpbiB7XFxuICBsaW5lLWhlaWdodDogaW5pdGlhbDtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG59XFxuLnEtY2hpcC1zaWRlIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGhlaWdodDogMzJweDtcXG4gIHdpZHRoOiAzMnB4O1xcbiAgbWluLXdpZHRoOiAzMnB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtY2hpcC1zaWRlIGltZyB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLnEtY2hpcC1sZWZ0IHtcXG4gIG1hcmdpbi1sZWZ0OiAtMTJweDtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG4ucS1jaGlwLXJpZ2h0IHtcXG4gIG1hcmdpbi1sZWZ0OiAycHg7XFxuICBtYXJnaW4tcmlnaHQ6IC0xMnB4O1xcbn1cXG4ucS1jaGlwLXNxdWFyZSB7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxufVxcbi5xLWNoaXAtZmxvYXRpbmcge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtMC4zZW07XFxuICByaWdodDogLTAuM2VtO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB6LWluZGV4OiAxO1xcbn1cXG4ucS1jaGlwLXRhZyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBwYWRkaW5nLWxlZnQ6IDEuN3JlbTtcXG59XFxuLnEtY2hpcC10YWc6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDAuNXJlbTtcXG4gIG1hcmdpbi10b3A6IC0wLjI1cmVtO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIHdpZHRoOiAwLjVyZW07XFxuICBoZWlnaHQ6IDAuNXJlbTtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMXB4IDFweCAwIHJnYmEoMCwwLDAsMC4zKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMXB4IDFweCAwIHJnYmEoMCwwLDAsMC4zKTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuLnEtY2hpcC1wb2ludGluZyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB6LWluZGV4OiAwO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHotaW5kZXg6IC0xO1xcbiAgYmFja2dyb3VuZDogaW5oZXJpdDtcXG4gIHdpZHRoOiAxNnB4O1xcbiAgaGVpZ2h0OiAxNnB4O1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLXVwIHtcXG4gIG1hcmdpbi10b3A6IDAuOHJlbTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy11cDpiZWZvcmUge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMjIlKSByb3RhdGUoNDVkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMjIlKSByb3RhdGUoNDVkZWcpO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLWRvd24ge1xcbiAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLWRvd246YmVmb3JlIHtcXG4gIHJpZ2h0OiBhdXRvO1xcbiAgdG9wOiAxMDAlO1xcbiAgbGVmdDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNzglKSByb3RhdGUoNDVkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNzglKSByb3RhdGUoNDVkZWcpO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLXJpZ2h0IHtcXG4gIG1hcmdpbi1yaWdodDogMC44cmVtO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLXJpZ2h0OmJlZm9yZSB7XFxuICB0b3A6IDUwJTtcXG4gIHJpZ2h0OiAycHg7XFxuICBib3R0b206IGF1dG87XFxuICBsZWZ0OiBhdXRvO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzMlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMyUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy1sZWZ0IHtcXG4gIG1hcmdpbi1sZWZ0OiAwLjhyZW07XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctbGVmdDpiZWZvcmUge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAycHg7XFxuICBib3R0b206IGF1dG87XFxuICByaWdodDogYXV0bztcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMyUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMyUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcXG59XFxuLnEtY2hpcC1kZXRhaWwge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEpO1xcbiAgb3BhY2l0eTogMC44O1xcbiAgcGFkZGluZzogMCA1cHg7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcXG59XFxuLnEtY2hpcC1zbWFsbCB7XFxuICBtaW4taGVpZ2h0OiAyNnB4O1xcbn1cXG4ucS1jaGlwLXNtYWxsIC5xLWNoaXAtbWFpbiB7XFxuICBwYWRkaW5nOiA0cHggMXB4O1xcbiAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XFxufVxcbi5xLWNoaXAtc21hbGwgLnEtY2hpcC1zaWRlIHtcXG4gIGhlaWdodDogMjZweDtcXG4gIHdpZHRoOiAyNnB4O1xcbiAgbWluLXdpZHRoOiAyNnB4O1xcbn1cXG4ucS1jaGlwLXNtYWxsIC5xLWNoaXAtaWNvbiB7XFxuICBmb250LXNpemU6IDE2cHg7XFxufVxcbi5xLWNoaXAtZGVuc2Uge1xcbiAgbWluLWhlaWdodDogMXB4O1xcbiAgcGFkZGluZzogMCAzcHg7XFxuICBmb250LXNpemU6IDEycHg7XFxufVxcbi5xLWNoaXAtZGVuc2UucS1jaGlwLXRhZyB7XFxuICBwYWRkaW5nLWxlZnQ6IDEuM3JlbTtcXG59XFxuLnEtY2hpcC1kZW5zZS5xLWNoaXAtcG9pbnRpbmc6YmVmb3JlIHtcXG4gIHdpZHRoOiA5cHg7XFxuICBoZWlnaHQ6IDlweDtcXG59XFxuLnEtY2hpcC1kZW5zZSAucS1jaGlwLW1haW4ge1xcbiAgcGFkZGluZzogMXB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlIC5xLWNoaXAtc2lkZSB7XFxuICBoZWlnaHQ6IDE4cHg7XFxuICB3aWR0aDogMThweDtcXG4gIG1pbi13aWR0aDogMTZweDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG59XFxuLnEtY2hpcC1kZW5zZSAucS1jaGlwLWxlZnQge1xcbiAgbWFyZ2luLWxlZnQ6IC0zcHg7XFxuICBtYXJnaW4tcmlnaHQ6IDJweDtcXG59XFxuLnEtY2hpcC1kZW5zZSAucS1jaGlwLXJpZ2h0IHtcXG4gIG1hcmdpbi1sZWZ0OiAycHg7XFxuICBtYXJnaW4tcmlnaHQ6IC0ycHg7XFxufVxcbi5xLWNoaXAtZGVuc2UgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDE2cHg7XFxufVxcbi5xLWlucHV0LWNoaXBzIHtcXG4gIG1hcmdpbi10b3A6IC0xcHg7XFxuICBtYXJnaW4tYm90dG9tOiAtMXB4O1xcbn1cXG4ucS1pbnB1dC1jaGlwcyAucS1jaGlwIHtcXG4gIG1hcmdpbjogMXB4O1xcbn1cXG4ucS1pbnB1dC1jaGlwcyBpbnB1dC5xLWlucHV0LXRhcmdldCB7XFxuICBtaW4td2lkdGg6IDcwcHggIWltcG9ydGFudDtcXG59XFxuLnEtY29sbGFwc2libGUtc3ViLWl0ZW0ge1xcbiAgcGFkZGluZzogOHB4IDE2cHg7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXN1Yi1pdGVtLmluZGVudCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XFxuICBwYWRkaW5nLXJpZ2h0OiAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1zdWItaXRlbSAucS1jYXJkIHtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxufVxcbi5xLWNvbGxhcHNpYmxlLnJvdXRlci1saW5rLWFjdGl2ZSA+IC5xLWl0ZW0ge1xcbiAgYmFja2dyb3VuZDogcmdiYSgxODksMTg5LDE4OSwwLjQpO1xcbn1cXG4ucS1jb2xsYXBzaWJsZSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IHBhZGRpbmcgMC41cztcXG4gIHRyYW5zaXRpb246IHBhZGRpbmcgMC41cztcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtY2xvc2VkIHtcXG4gIHBhZGRpbmc6IDAgMTVweDtcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtY2xvc2VkIC5xLWNvbGxhcHNpYmxlLWlubmVyIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLWNsb3NlZCArIC5xLWNvbGxhcHNpYmxlLXBvcHVwLWNsb3NlZCAucS1jb2xsYXBzaWJsZS1pbm5lciB7XFxuICBib3JkZXItdG9wOiAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQge1xcbiAgcGFkZGluZzogMTVweCAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQgLnEtY29sbGFwc2libGUtaW5uZXIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLW9wZW5lZCArIC5xLWNvbGxhcHNpYmxlLXBvcHVwLW9wZW5lZCxcXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQ6Zmlyc3QtY2hpbGQge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLW9wZW5lZDpsYXN0LWNoaWxkIHtcXG4gIHBhZGRpbmctYm90dG9tOiAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1jdXJzb3ItcG9pbnRlciA+IC5xLWNvbGxhcHNpYmxlLWlubmVyID4gLnEtaXRlbSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXRvZ2dsZS1pY29uIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHdpZHRoOiAxZW07XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5xLWNvbG9yIHtcXG4gIG1heC13aWR0aDogMTAwdnc7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbn1cXG4ucS1jb2xvci1zYXR1cmF0aW9uIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMjNweDtcXG59XFxuLnEtY29sb3Itc2F0dXJhdGlvbi13aGl0ZSB7XFxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgZnJvbSgjZmZmKSwgdG8ocmdiYSgyNTUsMjU1LDI1NSwwKSkpO1xcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjZmZmLCByZ2JhKDI1NSwyNTUsMjU1LDApKTtcXG59XFxuLnEtY29sb3Itc2F0dXJhdGlvbi1ibGFjayB7XFxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCBib3R0b20sIGxlZnQgdG9wLCBmcm9tKCMwMDApLCB0byhyZ2JhKDAsMCwwLDApKSk7XFxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCAjMDAwLCByZ2JhKDAsMCwwLDApKTtcXG59XFxuLnEtY29sb3Itc2F0dXJhdGlvbi1jaXJjbGUge1xcbiAgd2lkdGg6IDEwcHg7XFxuICBoZWlnaHQ6IDEwcHg7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMCAwIDEuNXB4ICNmZmYsIGluc2V0IDAgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4zKSwgMCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjQpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAxLjVweCAjZmZmLCBpbnNldCAwIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMyksIDAgMCAxcHggMnB4IHJnYmEoMCwwLDAsMC40KTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTVweCwgLTVweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIC01cHgpO1xcbn1cXG4ucS1jb2xvci1zd2F0Y2gsXFxuLnEtY29sb3ItYWxwaGEgLnEtc2xpZGVyLXRyYWNrIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiArIF9fX0NTU19MT0FERVJfVVJMX1JFUExBQ0VNRU5UXzBfX18gKyBcIikgIWltcG9ydGFudDtcXG59XFxuLnEtY29sb3Itc3dhdGNoIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiAzMnB4O1xcbiAgaGVpZ2h0OiAzMnB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxufVxcbi5xLWNvbG9yLWh1ZSAucS1zbGlkZXItdHJhY2sge1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGZyb20oI2YwMCksIGNvbG9yLXN0b3AoMTclLCAjZmYwKSwgY29sb3Itc3RvcCgzMyUsICMwZjApLCBjb2xvci1zdG9wKDUwJSwgIzBmZiksIGNvbG9yLXN0b3AoNjclLCAjMDBmKSwgY29sb3Itc3RvcCg4MyUsICNmMGYpLCB0bygjZjAwKSk7XFxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICNmMDAgMCUsICNmZjAgMTclLCAjMGYwIDMzJSwgIzBmZiA1MCUsICMwMGYgNjclLCAjZjBmIDgzJSwgI2YwMCAxMDAlKTtcXG4gIG9wYWNpdHk6IDE7XFxuICBoZWlnaHQ6IDhweDtcXG59XFxuLnEtY29sb3ItaHVlIC5xLXNsaWRlci10cmFjay5hY3RpdmUtdHJhY2sge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtY29sb3ItYWxwaGEgLnEtc2xpZGVyLXRyYWNrIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICBvcGFjaXR5OiAxO1xcbiAgaGVpZ2h0OiA4cHg7XFxufVxcbi5xLWNvbG9yLWFscGhhIC5xLXNsaWRlci10cmFjazphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGJhY2tncm91bmQ6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgcmlnaHQgdG9wLCBmcm9tKHJnYmEoMjU1LDI1NSwyNTUsMCkpLCB0bygjNzU3NTc1KSk7XFxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHJnYmEoMjU1LDI1NSwyNTUsMCksICM3NTc1NzUpO1xcbn1cXG4ucS1jb2xvci1hbHBoYSAucS1zbGlkZXItdHJhY2suYWN0aXZlLXRyYWNrIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLWNvbG9yLXNsaWRlcnMge1xcbiAgaGVpZ2h0OiA1NnB4O1xcbn1cXG4ucS1jb2xvci1zbGlkZXJzIC5xLXNsaWRlciB7XFxuICBoZWlnaHQ6IDIwcHg7XFxufVxcbi5xLWNvbG9yLXNsaWRlcnMgLnEtc2xpZGVyLWhhbmRsZSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDRweCAwIHJnYmEoMCwwLDAsMC4zNyk7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCAwIHJnYmEoMCwwLDAsMC4zNyk7XFxufVxcbi5xLWNvbG9yLXNsaWRlcnMgLnEtc2xpZGVyLXJpbmcge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtY29sb3ItaW5wdXRzIHtcXG4gIGZvbnQtc2l6ZTogMTFweDtcXG4gIGNvbG9yOiAjNzU3NTc1O1xcbn1cXG4ucS1jb2xvci1pbnB1dHMgaW5wdXQge1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLWNvbG9yLXBhZGRpbmcge1xcbiAgcGFkZGluZzogMCAycHg7XFxufVxcbi5xLWNvbG9yLWxhYmVsIHtcXG4gIHBhZGRpbmctdG9wOiA0cHg7XFxufVxcbi5xLWNvbG9yLWRhcmsge1xcbiAgYmFja2dyb3VuZDogIzAwMDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XFxufVxcbi5xLWNvbG9yLWRhcmsgaW5wdXQge1xcbiAgYmFja2dyb3VuZDogIzAwMDtcXG4gIGNvbG9yOiAjYmRiZGJkO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbGlnaHQpO1xcbiAgYm9yZGVyOiAxcHggc29saWQgIzQyNDI0MjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXEtY29sb3ItZGFyayk7XFxufVxcbi5xLWNvbG9yLWRhcmsgLnEtY29sb3ItaW5wdXRzIHtcXG4gIGNvbG9yOiAjYmRiZGJkO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbGlnaHQpO1xcbn1cXG4ucS1jb2xvci1kYXJrIC5xLWNvbG9yLXN3YXRjaCB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcS1jb2xvci1kYXJrKTtcXG59XFxuLnEtZGF0ZXRpbWUtaW5wdXQge1xcbiAgbWluLXdpZHRoOiA3MHB4O1xcbn1cXG4ucS1kYXRldGltZS1jb250cm9scyB7XFxuICBwYWRkaW5nOiAwIDEwcHggOHB4O1xcbn1cXG4ucS1kYXRldGltZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XFxufVxcbi5xLWRhdGV0aW1lIC5tb2RhbC1idXR0b25zIHtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxufVxcbi5xLWRhdGV0aW1lOm5vdCgubm8tYm9yZGVyKTpub3QoLnEtZGF0ZXRpbWUtZGFyaykgLnEtZGF0ZXRpbWUtY29udGVudCB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbn1cXG4ucS1kYXRldGltZTpub3QoLm5vLWJvcmRlcikucS1kYXRldGltZS1kYXJrIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1xLWNvbG9yLWRhcmspO1xcbn1cXG4ucS1kYXRldGltZS1oZWFkZXIge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1oZWFkZXIgPiBkaXYge1xcbiAgY29sb3I6ICNmZmY7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLm1vZGFsLWNvbnRlbnQgPiAucS1kYXRldGltZSA+IC5xLWRhdGV0aW1lLWhlYWRlcixcXG4ucS1wb3BvdmVyID4gLnEtZGF0ZXRpbWUgPiAucS1kYXRldGltZS1oZWFkZXIge1xcbiAgbWluLXdpZHRoOiAxNzVweDtcXG59XFxuLnEtZGF0ZXRpbWUtd2Vla2RheXN0cmluZyB7XFxuICBmb250LXNpemU6IDAuOHJlbTtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKTtcXG4gIHBhZGRpbmc6IDVweCAwO1xcbn1cXG4ucS1kYXRldGltZS10aW1lIHtcXG4gIHBhZGRpbmc6IDEwcHggMDtcXG4gIHdpbGwtY2hhbmdlOiBzY3JvbGwtcG9zaXRpb247XFxuICBvdmVyZmxvdzogYXV0bztcXG59XFxuLnEtZGF0ZXRpbWUtYW1wbSB7XFxuICBmb250LXNpemU6IDAuOXJlbTtcXG4gIHBhZGRpbmc6IDVweDtcXG59XFxuLnEtZGF0ZXRpbWUtZGF0ZXN0cmluZyB7XFxuICBwYWRkaW5nOiAxMHB4IDA7XFxufVxcbi5xLWRhdGV0aW1lLWRhdGVzdHJpbmcgLnEtZGF0ZXRpbWUtbGluayB7XFxuICBmb250LXNpemU6IDIuN3JlbTtcXG59XFxuLnEtZGF0ZXRpbWUtZGF0ZXN0cmluZyAucS1kYXRldGltZS1saW5rIHNwYW4ge1xcbiAgcGFkZGluZzogMCA1cHg7XFxuICB3aWR0aDogMTAwJTtcXG59XFxuLnEtZGF0ZXRpbWUtZGF0ZXN0cmluZyAucS1kYXRldGltZS1saW5rLnNtYWxsIHtcXG4gIG1hcmdpbjogMCA1cHg7XFxuICBmb250LXNpemU6IDEuMnJlbTtcXG59XFxuLnEtZGF0ZXRpbWUtZGF0ZXN0cmluZyAucS1kYXRldGltZS1saW5rLnNtYWxsIHNwYW4ge1xcbiAgcGFkZGluZzogNXB4O1xcbn1cXG4ucS1kYXRldGltZS1saW5rIHtcXG4gIG9wYWNpdHk6IDAuNjtcXG59XFxuLnEtZGF0ZXRpbWUtbGluayA+IHNwYW4ge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtZGF0ZXRpbWUtbGluay5hY3RpdmUge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2tzdHJpbmcge1xcbiAgbWluLXdpZHRoOiAyMTBweDtcXG4gIGZvbnQtc2l6ZTogMi43cmVtO1xcbiAgZGlyZWN0aW9uOiBsdHIgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtc2VsZWN0b3Ige1xcbiAgbWluLXdpZHRoOiAyOTBweDtcXG4gIGhlaWdodDogMzEwcHg7XFxuICBvdmVyZmxvdzogYXV0bztcXG59XFxuLnEtZGF0ZXRpbWUtdmlldy1kYXkge1xcbiAgd2lkdGg6IDI1MHB4O1xcbiAgaGVpZ2h0OiAyODVweDtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1kYXRldGltZS12aWV3LXllYXIgPiAucS1idG46bm90KC5hY3RpdmUpLFxcbi5xLWRhdGV0aW1lLXZpZXctbW9udGggPiAucS1idG46bm90KC5hY3RpdmUpIHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1kYXRldGltZS1tb250aC1zdGFtcCB7XFxuICBmb250LXNpemU6IDE2cHg7XFxufVxcbi5xLWRhdGV0aW1lLXdlZWtkYXlzIHtcXG4gIG1hcmdpbi1ib3R0b206IDVweDtcXG59XFxuLnEtZGF0ZXRpbWUtd2Vla2RheXMgZGl2IHtcXG4gIG9wYWNpdHk6IDAuNjtcXG4gIHdpZHRoOiAzNXB4O1xcbiAgaGVpZ2h0OiAzNXB4O1xcbiAgbGluZS1oZWlnaHQ6IDM1cHg7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAwO1xcbiAgbWluLXdpZHRoOiAwO1xcbiAgbWluLWhlaWdodDogMDtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4ucS1kYXRldGltZS1kYXlzIGRpdiB7XFxuICBtYXJnaW46IDFweDtcXG4gIGxpbmUtaGVpZ2h0OiAzM3B4O1xcbiAgd2lkdGg6IDMzcHg7XFxuICBoZWlnaHQ6IDMzcHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5xLWRhdGV0aW1lLWRheXMgZGl2LnEtZGF0ZXRpbWUtZGF5LWFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWRheXMgZGl2LnEtZGF0ZXRpbWUtZGF5LWFjdGl2ZSA+IHNwYW4ge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWRhdGV0aW1lLWRheXMgZGl2LnEtZGF0ZXRpbWUtZGF5LXRvZGF5IHtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBib3JkZXI6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWRheXMgZGl2Om5vdCgucS1kYXRldGltZS1maWxsZXJkYXkpOm5vdCguZGlzYWJsZWQpOm5vdCgucS1kYXRldGltZS1kYXktYWN0aXZlKTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiAjZTBlMGUwO1xcbn1cXG4ucS1kYXRldGltZS1idG4ge1xcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcXG59XFxuLnEtZGF0ZXRpbWUtYnRuLmFjdGl2ZSB7XFxuICBmb250LXNpemU6IDEuNXJlbTtcXG4gIHBhZGRpbmctdG9wOiAxcmVtO1xcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrIHtcXG4gIHdpZHRoOiAyNTBweDtcXG4gIGhlaWdodDogMjUwcHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBiYWNrZ3JvdW5kOiAjZTBlMGUwO1xcbiAgcGFkZGluZzogMjRweDtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stY2lyY2xlIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXBvcCAwLjVzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wb3AgMC41cyAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1jZW50ZXIge1xcbiAgaGVpZ2h0OiA2cHg7XFxuICB3aWR0aDogNnB4O1xcbiAgdG9wOiAwO1xcbiAgbWFyZ2luOiBhdXRvO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgbWluLWhlaWdodDogMDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9pbnRlciB7XFxuICB3aWR0aDogMXB4O1xcbiAgaGVpZ2h0OiA1MCU7XFxuICBtYXJnaW46IDAgYXV0bztcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGNlbnRlciAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyIC8qIHJ0bDppZ25vcmUgKi87XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb2ludGVyIHNwYW4ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgd2lkdGg6IDhweDtcXG4gIGhlaWdodDogOHB4O1xcbiAgYm90dG9tOiAtOHB4O1xcbiAgbGVmdDogMDtcXG4gIG1pbi13aWR0aDogMDtcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtYXJyb3cge1xcbiAgY29sb3I6ICM3NTc1NzU7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsge1xcbiAgYmFja2dyb3VuZDogIzQyNDI0MjtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItZGFyayk7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtYXJyb3cge1xcbiAgY29sb3I6ICNiZGJkYmQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1saWdodCk7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtaGVhZGVyLFxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtY2xvY2sge1xcbiAgYmFja2dyb3VuZDogIzYxNjE2MTtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS12aWV3LWRheSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS12aWV3LXllYXIgPiAucS1idG46bm90KC5hY3RpdmUpLFxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtdmlldy1tb250aCA+IC5xLWJ0bjpub3QoLmFjdGl2ZSkge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtZGF5cyBkaXYucS1kYXRldGltZS1kYXktYWN0aXZlID4gc3BhbixcXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLWRheXMgZGl2Om5vdCgucS1kYXRldGltZS1maWxsZXJkYXkpOm5vdCguZGlzYWJsZWQpOm5vdCgucS1kYXRldGltZS1kYXktYWN0aXZlKTpob3ZlciB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuYm9keS5kZXNrdG9wIC5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uOm5vdCguYWN0aXZlKTpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XFxufVxcbmJvZHkuZGVza3RvcCAucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uOm5vdCguYWN0aXZlKTpob3ZlciB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb24ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbWluLWhlaWdodDogMzJweDtcXG4gIHdpZHRoOiAzMnB4O1xcbiAgaGVpZ2h0OiAzMnB4O1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSAvKiBydGw6aWdub3JlICovO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbjpub3QoLmFjdGl2ZSkge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb246bm90KC5hY3RpdmUpIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbi5hY3RpdmUge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbi5hY3RpdmUgPiBzcGFuIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMCB7XFxuICB0b3A6IDAlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xIHtcXG4gIHRvcDogNi43JTtcXG4gIGxlZnQ6IDc1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMiB7XFxuICB0b3A6IDI1JTtcXG4gIGxlZnQ6IDkzLjMlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0zIHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMTAwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNCB7XFxuICB0b3A6IDc1JTtcXG4gIGxlZnQ6IDkzLjMlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy01IHtcXG4gIHRvcDogOTMuMyU7XFxuICBsZWZ0OiA3NSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTYge1xcbiAgdG9wOiAxMDAlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy03IHtcXG4gIHRvcDogOTMuMyU7XFxuICBsZWZ0OiAyNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTgge1xcbiAgdG9wOiA3NSU7XFxuICBsZWZ0OiA2LjclIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy05IHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEwIHtcXG4gIHRvcDogMjUlO1xcbiAgbGVmdDogNi43JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTEge1xcbiAgdG9wOiA2LjclO1xcbiAgbGVmdDogMjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMiB7XFxuICB0b3A6IDAlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xLmZtdDI0IHtcXG4gIHRvcDogNi43JTtcXG4gIGxlZnQ6IDc1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMi5mbXQyNCB7XFxuICB0b3A6IDI1JTtcXG4gIGxlZnQ6IDkzLjMlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0zLmZtdDI0IHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMTAwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNC5mbXQyNCB7XFxuICB0b3A6IDc1JTtcXG4gIGxlZnQ6IDkzLjMlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy01LmZtdDI0IHtcXG4gIHRvcDogOTMuMyU7XFxuICBsZWZ0OiA3NSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTYuZm10MjQge1xcbiAgdG9wOiAxMDAlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy03LmZtdDI0IHtcXG4gIHRvcDogOTMuMyU7XFxuICBsZWZ0OiAyNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTguZm10MjQge1xcbiAgdG9wOiA3NSU7XFxuICBsZWZ0OiA2LjclIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy05LmZtdDI0IHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEwLmZtdDI0IHtcXG4gIHRvcDogMjUlO1xcbiAgbGVmdDogNi43JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTEuZm10MjQge1xcbiAgdG9wOiA2LjclO1xcbiAgbGVmdDogMjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMi5mbXQyNCB7XFxuICB0b3A6IDAlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMy5mbXQyNCB7XFxuICB0b3A6IDE5LjY5JTtcXG4gIGxlZnQ6IDY3LjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xNC5mbXQyNCB7XFxuICB0b3A6IDMyLjUlO1xcbiAgbGVmdDogODAuMzElIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xNS5mbXQyNCB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDg1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTYuZm10MjQge1xcbiAgdG9wOiA2Ny41JTtcXG4gIGxlZnQ6IDgwLjMxJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTcuZm10MjQge1xcbiAgdG9wOiA4MC4zMSU7XFxuICBsZWZ0OiA2Ny41JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTguZm10MjQge1xcbiAgdG9wOiA4NSU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTE5LmZtdDI0IHtcXG4gIHRvcDogODAuMzElO1xcbiAgbGVmdDogMzIuNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTIwLmZtdDI0IHtcXG4gIHRvcDogNjcuNSU7XFxuICBsZWZ0OiAxOS42OSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTIxLmZtdDI0IHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMTUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0yMi5mbXQyNCB7XFxuICB0b3A6IDMyLjUlO1xcbiAgbGVmdDogMTkuNjklIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0yMy5mbXQyNCB7XFxuICB0b3A6IDE5LjY5JTtcXG4gIGxlZnQ6IDMyLjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0wLmZtdDI0IHtcXG4gIHRvcDogMTUlO1xcbiAgbGVmdDogNTAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLXJhbmdlLnJvdyAucS1kYXRldGltZS1yYW5nZS1sZWZ0IHtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxufVxcbi5xLWRhdGV0aW1lLXJhbmdlLnJvdyAucS1kYXRldGltZS1yYW5nZS1yaWdodCB7XFxuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcXG59XFxuLnEtZGF0ZXRpbWUtcmFuZ2UuY29sdW1uID4gZGl2ICsgZGl2IHtcXG4gIG1hcmdpbi10b3A6IDEwcHg7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLnEtZGF0ZXRpbWUge1xcbiAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsICFpbXBvcnRhbnQ7XFxuICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsICFpbXBvcnRhbnQ7XFxuICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAucS1kYXRldGltZS1oZWFkZXIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgfVxcbiAgLnEtZGF0ZXRpbWUtY29udGVudCB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDI7XFxuICAgICAgICAtbXMtZmxleDogMiAyIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMiAyIGF1dG87XFxuICB9XFxufVxcbi5xLWRvdCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC0ycHg7XFxuICByaWdodDogLTEwcHg7XFxuICBoZWlnaHQ6IDEwcHg7XFxuICB3aWR0aDogMTBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQ6ICNmNDQzMzY7XFxuICBvcGFjaXR5OiAwLjg7XFxufVxcbi5xLWVkaXRvciB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xcbn1cXG4ucS1lZGl0b3IuZGlzYWJsZWQge1xcbiAgYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XFxufVxcbi5xLWVkaXRvci5mdWxsc2NyZWVuIHtcXG4gIGJvcmRlcjogMCAhaW1wb3J0YW50O1xcbn1cXG4ucS1lZGl0b3ItY29udGVudCB7XFxuICBvdXRsaW5lOiAwO1xcbiAgcGFkZGluZzogMTBweDtcXG4gIG1pbi1oZWlnaHQ6IDEwZW07XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbn1cXG4ucS1lZGl0b3ItY29udGVudCBociB7XFxuICBib3JkZXI6IDA7XFxuICBvdXRsaW5lOiAwO1xcbiAgbWFyZ2luOiAxcHg7XFxuICBoZWlnaHQ6IDFweDtcXG4gIGJhY2tncm91bmQ6ICNjY2M7XFxufVxcbi5xLWVkaXRvci10b29sYmFyLXBhZGRpbmcge1xcbiAgcGFkZGluZzogNHB4O1xcbn1cXG4ucS1lZGl0b3ItdG9vbGJhciB7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcXG4gIGJhY2tncm91bmQ6ICNlMGUwZTA7XFxuICBtaW4taGVpZ2h0OiAzN3B4O1xcbn1cXG4ucS1lZGl0b3ItdG9vbGJhciAucS1idG4tZ3JvdXAge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG4ucS1lZGl0b3ItdG9vbGJhciAucS1idG4tZ3JvdXAgKyAucS1idG4tZ3JvdXAge1xcbiAgbWFyZ2luLWxlZnQ6IDVweDtcXG59XFxuLnEtZWRpdG9yLXRvb2xiYXItc2VwYXJhdG9yIC5xLWJ0bi1ncm91cCArIC5xLWJ0bi1ncm91cCB7XFxuICBwYWRkaW5nLWxlZnQ6IDVweDtcXG59XFxuLnEtZWRpdG9yLXRvb2xiYXItc2VwYXJhdG9yIC5xLWJ0bi1ncm91cCArIC5xLWJ0bi1ncm91cDpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDFweDtcXG4gIGJhY2tncm91bmQ6ICNjY2M7XFxufVxcbi5xLWVkaXRvci1pbnB1dCBpbnB1dCB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG59XFxuLnEtZmFiIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi56LWZhYiB7XFxuICB6LWluZGV4OiA5OTA7XFxufVxcbi5xLWZhYi1vcGVuZWQgLnEtZmFiLWFjdGlvbnMge1xcbiAgb3BhY2l0eTogMTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMSkgc2NhbGVZKDEpIHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSkgc2NhbGVZKDEpIHRyYW5zbGF0ZVgoMCkgdHJhbnNsYXRlWSgwKTtcXG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxufVxcbi5xLWZhYi1vcGVuZWQgLnEtZmFiLWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDE4MGRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTgwZGVnKTtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLWZhYi1vcGVuZWQgLnEtZmFiLWFjdGl2ZS1pY29uIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAwZGVnKTtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLWZhYi1pY29uLFxcbi5xLWZhYi1hY3RpdmUtaWNvbiB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC40cywgLXdlYmtpdC10cmFuc2Zvcm0gMC40cztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cywgLXdlYmtpdC10cmFuc2Zvcm0gMC40cztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cywgdHJhbnNmb3JtIDAuNHM7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNHMsIHRyYW5zZm9ybSAwLjRzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjRzO1xcbn1cXG4ucS1mYWItaWNvbiB7XFxuICBvcGFjaXR5OiAxO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xcbn1cXG4ucS1mYWItYWN0aXZlLWljb24ge1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMTgwZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAtMTgwZGVnKTtcXG59XFxuLnEtZmFiLWFjdGlvbnMge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtZmFiLWFjdGlvbnMgLnEtYnRuIHtcXG4gIG1hcmdpbjogNXB4O1xcbn1cXG4ucS1mYWItcmlnaHQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVgoLTEwMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVgoLTEwMCUpO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMTIwJTtcXG59XFxuLnEtZmFiLWxlZnQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVgoMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWCgxMDAlKTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIHJpZ2h0OiAxMjAlO1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG59XFxuLnEtZmFiLXVwIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVZKDEwMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVkoMTAwJSk7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgYm90dG9tOiAxMjAlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbn1cXG4ucS1mYWItZG93biB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWSgtMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWSgtMTAwJSk7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHRvcDogMTIwJTtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLnEtZmllbGQtaWNvbiB7XFxuICB3aWR0aDogMjhweDtcXG4gIGhlaWdodDogMjhweDtcXG4gIG1pbi13aWR0aDogMjhweDtcXG4gIGZvbnQtc2l6ZTogMjhweDtcXG4gIG1hcmdpbi1yaWdodDogMTZweDtcXG4gIGNvbG9yOiAjOTc5Nzk3O1xcbn1cXG4ucS1maWVsZC1sYWJlbCB7XFxuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxuICBjb2xvcjogIzk3OTc5NztcXG59XFxuLnEtZmllbGQtbGFiZWwtaW5uZXIge1xcbiAgbWluLWhlaWdodDogMjhweDtcXG59XFxuLnEtZmllbGQtbGFiZWwtaGludCB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuLnEtZmllbGQtYm90dG9tIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxuICBjb2xvcjogIzk3OTc5NztcXG59XFxuLnEtZmllbGQtbm8taW5wdXQgLnEtZmllbGQtYm90dG9tIHtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1maWVsZC1jb3VudGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3O1xcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XFxufVxcbi5xLWZpZWxkLWRhcmsgLnEtZmllbGQtbGFiZWwsXFxuLnEtZmllbGQtZGFyayAucS1maWVsZC1pY29uLFxcbi5xLWZpZWxkLWRhcmsgLnEtZmllbGQtY291bnRlcixcXG4ucS1maWVsZC1kYXJrIC5xLWZpZWxkLWJvdHRvbSB7XFxuICBjb2xvcjogI2E3YTdhNztcXG59XFxuLnEtZmllbGQtZGFyayAucS1maWVsZC1uby1pbnB1dCAucS1maWVsZC1ib3R0b20ge1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM5Nzk3OTc7XFxufVxcbi5xLWZpZWxkLXdpdGgtZXJyb3IgLnEtZmllbGQtaWNvbixcXG4ucS1maWVsZC13aXRoLWVycm9yIC5xLWZpZWxkLWxhYmVsLFxcbi5xLWZpZWxkLXdpdGgtZXJyb3IgLnEtZmllbGQtYm90dG9tIHtcXG4gIGNvbG9yOiAjZGIyODI4O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpO1xcbn1cXG4ucS1maWVsZC13aXRoLWVycm9yIC5xLWZpZWxkLW5vLWlucHV0IC5xLWZpZWxkLWJvdHRvbSB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RiMjgyODtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKTtcXG59XFxuLnEtZmllbGQtd2l0aC13YXJuaW5nIC5xLWZpZWxkLWljb24sXFxuLnEtZmllbGQtd2l0aC13YXJuaW5nIC5xLWZpZWxkLWxhYmVsLFxcbi5xLWZpZWxkLXdpdGgtd2FybmluZyAucS1maWVsZC1ib3R0b20ge1xcbiAgY29sb3I6ICNmMmMwMzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci13YXJuaW5nKTtcXG59XFxuLnEtZmllbGQtd2l0aC13YXJuaW5nIC5xLWZpZWxkLW5vLWlucHV0IC5xLWZpZWxkLWJvdHRvbSB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2YyYzAzNztcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1xLWNvbG9yLXdhcm5pbmcpO1xcbn1cXG4ucS1maWVsZC1tYXJnaW4ge1xcbiAgbWFyZ2luLXRvcDogNXB4O1xcbn1cXG4ucS1maWVsZC1mbG9hdGluZyAucS1maWVsZC1tYXJnaW4ge1xcbiAgbWFyZ2luLXRvcDogMjNweDtcXG59XFxuLnEtZmllbGQtbm8taW5wdXQgLnEtZmllbGQtbWFyZ2luIHtcXG4gIG1hcmdpbi10b3A6IDNweDtcXG59XFxuLnEtZmllbGQtY29udGVudCAucS1pZi5xLWlmLWhhcy1sYWJlbDpub3QoLnEtaWYtc3RhbmRhcmQpIHtcXG4gIG1hcmdpbi10b3A6IDlweDtcXG59XFxuLnEtZmllbGQtY29udGVudCAucS1pZi1zdGFuZGFyZDpub3QoLnEtaWYtaGFzLWxhYmVsKSB7XFxuICBwYWRkaW5nLXRvcDogNnB4O1xcbn1cXG4ucS1maWVsZC1jb250ZW50IC5xLW9wdGlvbi1ncm91cCB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG59XFxuLnEtZmllbGQtbm8taW5wdXQgLnEtZmllbGQtY29udGVudCB7XFxuICBwYWRkaW5nLXRvcDogNnB4O1xcbn1cXG4ucS1maWVsZC12ZXJ0aWNhbDpub3QoLnEtZmllbGQtbm8tbGFiZWwpIC5xLWZpZWxkLW1hcmdpbiB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbn1cXG4ucS1maWVsZC12ZXJ0aWNhbDpub3QoLnEtZmllbGQtbm8tbGFiZWwpIC5xLWlmLXN0YW5kYXJkOm5vdCgucS1pZi1oYXMtbGFiZWwpIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4ucS1maWVsZC12ZXJ0aWNhbDpub3QoLnEtZmllbGQtbm8tbGFiZWwpIC5xLWlmLnEtaWYtaGFzLWxhYmVsOm5vdCgucS1pZi1zdGFuZGFyZCkge1xcbiAgbWFyZ2luLXRvcDogMHB4O1xcbn1cXG4ucS1maWVsZC12ZXJ0aWNhbC5xLWZpZWxkLW5vLWxhYmVsIC5xLWZpZWxkLWxhYmVsIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xcbiAgLnEtZmllbGQtcmVzcG9uc2l2ZTpub3QoLnEtZmllbGQtbm8tbGFiZWwpIC5xLWZpZWxkLW1hcmdpbiB7XFxuICAgIG1hcmdpbi10b3A6IDA7XFxuICB9XFxuICAucS1maWVsZC1yZXNwb25zaXZlOm5vdCgucS1maWVsZC1uby1sYWJlbCkgLnEtaWYtc3RhbmRhcmQ6bm90KC5xLWlmLWhhcy1sYWJlbCkge1xcbiAgICBwYWRkaW5nLXRvcDogMDtcXG4gIH1cXG4gIC5xLWZpZWxkLXJlc3BvbnNpdmU6bm90KC5xLWZpZWxkLW5vLWxhYmVsKSAucS1pZi5xLWlmLWhhcy1sYWJlbDpub3QoLnEtaWYtc3RhbmRhcmQpIHtcXG4gICAgbWFyZ2luLXRvcDogMHB4O1xcbiAgfVxcbiAgLnEtZmllbGQtcmVzcG9uc2l2ZS5xLWZpZWxkLW5vLWxhYmVsIC5xLWZpZWxkLWxhYmVsIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gIH1cXG59XFxuLnEtaW5uZXItbG9hZGluZyB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuNik7XFxufVxcbi5xLWlubmVyLWxvYWRpbmcuZGFyayB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNCk7XFxufVxcbi5xLWlmLFxcbi5xLWlmOmJlZm9yZSxcXG4ucS1pZi1sYWJlbCxcXG4ucS1pZi1hZGRvbixcXG4ucS1maWVsZC1pY29uLFxcbi5xLWZpZWxkLWxhYmVsLFxcbi5xLWlmLWNvbnRyb2wsXFxuLnEtZmllbGQtYm90dG9tIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSwgZGlzcGxheSAwcyAwcztcXG4gIHRyYW5zaXRpb246IGFsbCAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSksIGRpc3BsYXkgMHMgMHM7XFxufVxcbi5xLWlmLnEtaWYtaGlkZS11bmRlcmxpbmU6YmVmb3JlLFxcbi5xLWlmLnEtaWYtaW52ZXJ0ZWQ6YmVmb3JlLFxcbi5xLWlmLnEtaWYtaGlkZS11bmRlcmxpbmU6YWZ0ZXIsXFxuLnEtaWYucS1pZi1pbnZlcnRlZDphZnRlciB7XFxuICBjb250ZW50OiBub25lO1xcbn1cXG4ucS1pZi1pbnZlcnRlZCB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtaW5uZXIge1xcbiAgbWFyZ2luLXRvcDogN3B4O1xcbiAgbWFyZ2luLWJvdHRvbTogN3B4O1xcbn1cXG4ucS1pZi1pbnZlcnRlZC5xLWlmLWhhcy1sYWJlbCAucS1pZi1pbm5lciB7XFxuICBtYXJnaW4tdG9wOiAyNXB4O1xcbn1cXG4ucS1pZjpiZWZvcmUsXFxuLnEtaWY6YWZ0ZXIge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm9yZGVyOiAxcHggaGlkZGVuIGN1cnJlbnRDb2xvcjtcXG4gIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGNvbnRlbnQ6ICcnO1xcbn1cXG4ucS1pZjpiZWZvcmUge1xcbiAgY29sb3I6ICNiZGJkYmQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1saWdodCk7XFxufVxcbi5xLWlmOmFmdGVyIHtcXG4gIGJvcmRlci13aWR0aDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlciAwO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyIDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwKTtcXG59XFxuLnEtaWY6bm90KC5xLWlmLWRpc2FibGVkKTpub3QoLnEtaWYtZXJyb3IpOm5vdCgucS1pZi13YXJuaW5nKTpob3ZlcjpiZWZvcmUsXFxuLnEtaWYucS1pZi1yZWFkb25seTpub3QoLnEtaWYtZXJyb3IpOm5vdCgucS1pZi13YXJuaW5nKTphZnRlciB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtaWYtZGFyay5xLWlmOm5vdCgucS1pZi1kaXNhYmxlZCk6bm90KC5xLWlmLWVycm9yKTpub3QoLnEtaWYtd2FybmluZyk6aG92ZXI6YmVmb3JlLFxcbi5xLWlmLWRhcmsucS1pZi5xLWlmLXJlYWRvbmx5Om5vdCgucS1pZi1lcnJvcik6bm90KC5xLWlmLXdhcm5pbmcpOmFmdGVyIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1pZi1mb2N1c2VkOmFmdGVyIHtcXG4gIGJvcmRlci13aWR0aDogMnB4O1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgxKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMSk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGJvcmRlci1sZWZ0LXdpZHRoIDBzIDAuNDVzLCBib3JkZXItcmlnaHQtd2lkdGggMHMgMC40NXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IGJvcmRlci1sZWZ0LXdpZHRoIDBzIDAuNDVzLCBib3JkZXItcmlnaHQtd2lkdGggMHMgMC40NXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSksIGJvcmRlci1sZWZ0LXdpZHRoIDBzIDAuNDVzLCBib3JkZXItcmlnaHQtd2lkdGggMHMgMC40NXM7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpLCBib3JkZXItbGVmdC13aWR0aCAwcyAwLjQ1cywgYm9yZGVyLXJpZ2h0LXdpZHRoIDBzIDAuNDVzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxufVxcbi5xLWlmIHtcXG4gIG91dGxpbmU6IDA7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBmb250LXNpemU6IDFyZW07XFxufVxcbi5xLWlmIC5xLWlmLWlubmVyIHtcXG4gIG1pbi1oZWlnaHQ6IDI0cHg7XFxufVxcbi5xLWlmLXN0YW5kYXJkIHtcXG4gIHBhZGRpbmctdG9wOiA3cHg7XFxuICBwYWRkaW5nLWJvdHRvbTogN3B4O1xcbn1cXG4ucS1pZi1zdGFuZGFyZC5xLWlmLWhhcy1sYWJlbCB7XFxuICBwYWRkaW5nLXRvcDogMjVweDtcXG59XFxuLnEtaWYtaGlkZS11bmRlcmxpbmUge1xcbiAgcGFkZGluZy10b3A6IDA7XFxuICBwYWRkaW5nLWJvdHRvbTogMDtcXG59XFxuLnEtaWYtaGlkZS11bmRlcmxpbmUucS1pZi1oYXMtbGFiZWwge1xcbiAgcGFkZGluZy10b3A6IDE4cHg7XFxufVxcbi5xLWlmLXN0YW5kYXJkIC5xLWlmLWxhYmVsLFxcbi5xLWlmLWludmVydGVkIC5xLWlmLWxhYmVsIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApO1xcbn1cXG4ucS1pZi1zdGFuZGFyZCAucS1pZi1sYWJlbC5xLWlmLWxhYmVsLWFib3ZlLFxcbi5xLWlmLWludmVydGVkIC5xLWlmLWxhYmVsLnEtaWYtbGFiZWwtYWJvdmUge1xcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMDAlKTtcXG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xcbn1cXG4ucS1pZi1pbnZlcnRlZCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtbGFiZWwge1xcbiAgdG9wOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0yMXB4KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTIxcHgpO1xcbn1cXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1sYWJlbC5xLWlmLWxhYmVsLWFib3ZlIHtcXG4gIHRvcDogNHB4O1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMTI1JSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMjUlKTtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaW5wdXQtdGFyZ2V0IHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbn1cXG4ucS1pZi1mb2N1c2VkOm5vdCgucS1pZi1yZWFkb25seSkgLnEtaWYtbGFiZWwsXFxuLnEtaWYtZm9jdXNlZDpub3QoLnEtaWYtcmVhZG9ubHkpIC5xLWlmLWFkZG9uLFxcbi5xLWlmLWZvY3VzZWQ6bm90KC5xLWlmLXJlYWRvbmx5KSAucS1pZi1jb250cm9sIHtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWlmLXdhcm5pbmc6YmVmb3JlLFxcbi5xLWlmLXdhcm5pbmc6YWZ0ZXIsXFxuLnEtaWYtd2FybmluZzpub3QoLnEtaWYtaW52ZXJ0ZWQpIC5xLWlmLWxhYmVsIHtcXG4gIGNvbG9yOiAjZjJjMDM3O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3Itd2FybmluZyk7XFxufVxcbi5xLWlmLXdhcm5pbmc6aG92ZXI6YmVmb3JlIHtcXG4gIGNvbG9yOiAjZjhkZDkzO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3Itd2FybmluZy1sKTtcXG59XFxuLnEtaWYtZXJyb3I6YmVmb3JlLFxcbi5xLWlmLWVycm9yOmFmdGVyLFxcbi5xLWlmLWVycm9yOm5vdCgucS1pZi1pbnZlcnRlZCkgLnEtaWYtbGFiZWwge1xcbiAgY29sb3I6ICNkYjI4Mjg7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSk7XFxufVxcbi5xLWlmLWVycm9yOmhvdmVyOmJlZm9yZSB7XFxuICBjb2xvcjogI2VjOGI4YjtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlLWwpO1xcbn1cXG4ucS1pZi1kaXNhYmxlZCB7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xcbiAgb3BhY2l0eTogMC42O1xcbn1cXG4ucS1pZi1kaXNhYmxlZCAucS1pZi1sYWJlbCxcXG4ucS1pZi1kaXNhYmxlZCAucS1pZi1jb250cm9sLFxcbi5xLWlmLWRpc2FibGVkIC5xLWlucHV0LXRhcmdldCxcXG4ucS1pZi1kaXNhYmxlZCAucS1jaGlwIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxufVxcbi5xLWlmLWRhcms6bm90KC5xLWlmLWludmVydGVkLWxpZ2h0KSAucS1pbnB1dC10YXJnZXQ6bm90KC5xLWlucHV0LXRhcmdldC1wbGFjZWhvbGRlcikge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWlmLWZvY3VzYWJsZSB7XFxuICBvdXRsaW5lOiAwO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1pZi1sYWJlbCxcXG4ucS1pbnB1dC10YXJnZXQsXFxuLnEtaW5wdXQtdGFyZ2V0LXBsYWNlaG9sZGVyIHtcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbn1cXG4ucS1pZi1jb250cm9sIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIHdpZHRoOiAyNHB4O1xcbiAgaGVpZ2h0OiAyNHB4O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1pZi1jb250cm9sICsgLnEtaWYtY29udHJvbCxcXG4ucS1pZi1jb250cm9sICsgLnEtaWYtaW5uZXIsXFxuLnEtaWYtaW5uZXIgKyAucS1pZi1jb250cm9sIHtcXG4gIG1hcmdpbi1sZWZ0OiA0cHg7XFxufVxcbi5xLWlmLWNvbnRyb2w6aG92ZXIge1xcbiAgb3BhY2l0eTogMC43O1xcbn1cXG4ucS1pZi1iYXNlbGluZSB7XFxuICBsaW5lLWhlaWdodDogMjRweDtcXG4gIHdpZHRoOiAwO1xcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4ucS1pZi1sYWJlbC1pbm5lcixcXG4ucS1pZi1sYWJlbC1zcGFjZXIsXFxuLnEtaWYtYmFzZWxpbmUge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbn1cXG4ucS1pZi1sYWJlbC1zcGFjZXIge1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbn1cXG4ucS1pZi1sYWJlbCB7XFxuICBjdXJzb3I6IHRleHQ7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1pZi1sYWJlbCxcXG4ucS1pZi1hZGRvbixcXG4ucS1pZi1jb250cm9sIHtcXG4gIGNvbG9yOiAjOTc5Nzk3O1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxufVxcbi5xLWlmLWludmVydGVkIC5xLWlmLWxhYmVsLFxcbi5xLWlmLWludmVydGVkIC5xLWlmLWFkZG9uLFxcbi5xLWlmLWludmVydGVkIC5xLWlmLWNvbnRyb2wge1xcbiAgY29sb3I6ICNkZGQ7XFxufVxcbi5xLWlmLWludmVydGVkLWxpZ2h0IC5xLWlmLWxhYmVsLFxcbi5xLWlmLWludmVydGVkLWxpZ2h0IC5xLWlmLWFkZG9uLFxcbi5xLWlmLWludmVydGVkLWxpZ2h0IC5xLWlmLWNvbnRyb2wge1xcbiAgY29sb3I6ICM2NTY1NjU7XFxufVxcbi5xLWlmLWFkZG9uIHtcXG4gIG9wYWNpdHk6IDA7XFxuICBjdXJzb3I6IGluaGVyaXQ7XFxufVxcbi5xLWlmLWFkZG9uOm5vdCgucS1pZi1hZGRvbi12aXNpYmxlKSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1pZi1hZGRvbi1sZWZ0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDFweDtcXG59XFxuLnEtaWYtYWRkb24tcmlnaHQge1xcbiAgcGFkZGluZy1sZWZ0OiAxcHg7XFxufVxcbi5xLWlmLWFkZG9uLXZpc2libGUge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtaW5wdXQtdGFyZ2V0LFxcbi5xLWlucHV0LXNoYWRvdyB7XFxuICBib3JkZXI6IDA7XFxuICBvdXRsaW5lOiAwO1xcbiAgcGFkZGluZzogMDtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICBmb250LXNpemU6IGluaGVyaXQ7XFxuICByZXNpemU6IG5vbmU7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1pbnB1dC10YXJnZXQ6LXdlYmtpdC1hdXRvZmlsbCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB3ZWJraXQtYXV0b2ZpbGwtb247XFxuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XFxufVxcbi5xLWlucHV0LXRhcmdldC5xLWlucHV0LWF1dG9maWxsOm5vdCg6LXdlYmtpdC1hdXRvZmlsbCkge1xcbiAgLXdlYmtpdC1hbmltYXRpb24tbmFtZTogd2Via2l0LWF1dG9maWxsLW9mZjtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcXG59XFxuLnEtaW5wdXQtdGFyZ2V0OjotbXMtY2xlYXIsXFxuLnEtaW5wdXQtdGFyZ2V0OjotbXMtcmV2ZWFsIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICB3aWR0aDogMDtcXG4gIGhlaWdodDogMDtcXG59XFxuLnEtaW5wdXQtdGFyZ2V0OmludmFsaWQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBpbmhlcml0O1xcbiAgICAgICAgICBib3gtc2hhZG93OiBpbmhlcml0O1xcbn1cXG4ucS1pbnB1dC10YXJnZXQ6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICd8JztcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgd2lkdGg6IDA7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbmlucHV0LnEtaW5wdXQtdGFyZ2V0IHtcXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XFxuICBoZWlnaHQ6IDI0cHg7XFxuICBvdXRsaW5lOiAwO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbn1cXG4ucS1pZiAucS1pbnB1dC10YXJnZXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYgLnEtaW5wdXQtdGFyZ2V0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmIC5xLWlucHV0LXRhcmdldDo6LW1vei1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZiAucS1pbnB1dC10YXJnZXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWRhcmsgLnEtaW5wdXQtdGFyZ2V0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWRhcmsgLnEtaW5wdXQtdGFyZ2V0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWRhcmsgLnEtaW5wdXQtdGFyZ2V0OjotbW96LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWRhcmsgLnEtaW5wdXQtdGFyZ2V0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1pbnZlcnRlZDpub3QoLnEtaWYtaW52ZXJ0ZWQtbGlnaHQpIC5xLWlucHV0LXRhcmdldC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogI2RkZCAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1pbnZlcnRlZDpub3QoLnEtaWYtaW52ZXJ0ZWQtbGlnaHQpIC5xLWlucHV0LXRhcmdldDo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogI2RkZCAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1pbnZlcnRlZDpub3QoLnEtaWYtaW52ZXJ0ZWQtbGlnaHQpIC5xLWlucHV0LXRhcmdldDo6LW1vei1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogI2RkZCAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZi1pbnZlcnRlZDpub3QoLnEtaWYtaW52ZXJ0ZWQtbGlnaHQpIC5xLWlucHV0LXRhcmdldDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICNkZGQgIWltcG9ydGFudDtcXG59XFxuLnEtaW5wdXQtc2hhZG93IHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGhlaWdodDogYXV0bztcXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XFxufVxcbi5xLWp1bWJvdHJvbiB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBwYWRkaW5nOiAycmVtIDFyZW07XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcXG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XFxufVxcbi5xLWp1bWJvdHJvbi1kYXJrIHtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogIzc1NzU3NTtcXG59XFxuLnEtanVtYm90cm9uLWRhcmsgaHIucS1ociB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMzYpO1xcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5xLWp1bWJvdHJvbiB7XFxuICAgIHBhZGRpbmc6IDRyZW0gMnJlbTtcXG4gIH1cXG59XFxuLnEta25vYixcXG4ucS1rbm9iID4gZGl2IHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG59XFxuLnEta25vYiA+IGRpdiB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuLnEta25vYi1sYWJlbCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbn1cXG4ucS1rbm9iLWxhYmVsIGkge1xcbiAgZm9udC1zaXplOiAxMzAlO1xcbn1cXG4ucS1sYXlvdXQge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtaW4taGVpZ2h0OiAxMDB2aDtcXG59XFxuLnEtbGF5b3V0LWNvbnRhaW5lciAucS1sYXlvdXQge1xcbiAgbWluLWhlaWdodDogMTAwJTtcXG59XFxuLnEtbGF5b3V0LWNvbnRhaW5lciA+IGRpdiB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XFxufVxcbi5xLWxheW91dC1jb250YWluZXIgPiBkaXYgPiBkaXYge1xcbiAgbWluLWhlaWdodDogMDtcXG4gIG1heC1oZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWxheW91dC1oZWFkZXIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIDNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAzcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLWxheW91dC1oZWFkZXItaGlkZGVuIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMTAlKTtcXG59XFxuLnEtbGF5b3V0LWZvb3RlciB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0zcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtbGF5b3V0LWZvb3Rlci1oaWRkZW4ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTEwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMTAlKTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgei1pbmRleDogMTAwMDtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci5vbi10b3Age1xcbiAgei1pbmRleDogMzAwMDtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1kZWxpbWl0ZXIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNXB4IDhweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA1cHggOHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDE0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1sZWZ0IHtcXG4gIGxlZnQ6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItcmlnaHQge1xcbiAgcmlnaHQ6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xcbn1cXG4ucS1sYXlvdXQsXFxuLnEtbGF5b3V0LWhlYWRlcixcXG4ucS1sYXlvdXQtZm9vdGVyLFxcbi5xLWxheW91dC1wYWdlIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnEtbGF5b3V0LWhlYWRlcixcXG4ucS1sYXlvdXQtZm9vdGVyIHtcXG4gIHotaW5kZXg6IDIwMDA7XFxufVxcbi5xLWxheW91dC1iYWNrZHJvcCB7XFxuICB6LWluZGV4OiAyOTk5ICFpbXBvcnRhbnQ7XFxuICB3aWxsLWNoYW5nZTogYmFja2dyb3VuZC1jb2xvcjtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIHtcXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWl0ZW0sXFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWl0ZW0tc2lkZSB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLW1pbmktZHJhd2VyLWhpZGUsXFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWNvbGxhcHNpYmxlLWlubmVyID4gZGl2Omxhc3Qtb2YtdHlwZSxcXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtbGlzdC1oZWFkZXIsXFxuLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWl0ZW0tbWFpbixcXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtaXRlbS1zaWRlLXJpZ2h0IHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItbm9ybWFsIC5xLW1pbmktZHJhd2VyLW9ubHkge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1tb2JpbGUgLnEtbWluaS1kcmF3ZXItb25seSxcXG4ucS1sYXlvdXQtZHJhd2VyLW1vYmlsZSAucS1taW5pLWRyYXdlci1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWxheW91dC1kcmF3ZXItb3BlbmVyIHtcXG4gIHotaW5kZXg6IDIwMDE7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMTVweDtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcbi5xLXBhZ2Utc3RpY2t5LXNocmluayB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtcGFnZS1zdGlja3ktc2hyaW5rID4gc3BhbiB7XFxuICBwb2ludGVyLWV2ZW50czogYXV0bztcXG59XFxuYm9keS5xLWlvcy1zdGF0dXNiYXItcGFkZGluZyAucS1sYXlvdXQgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRvb2xiYXI6bnRoLWNoaWxkKDIpLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXBhZGRpbmcgLnEtbGF5b3V0IC5xLWxheW91dC1oZWFkZXIgPiAucS10YWJzOm50aC1jaGlsZCgyKSAucS10YWJzLWhlYWQsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXItcGFkZGluZyAucS1sYXlvdXQgLnEtbGF5b3V0LWRyYXdlci50b3AtcGFkZGluZyxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci1wYWRkaW5nIC5tb2RhbDpub3QoLm1pbmltaXplZCkgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRvb2xiYXI6bnRoLWNoaWxkKDEpIHtcXG4gIHBhZGRpbmctdG9wOiAyMHB4O1xcbiAgbWluLWhlaWdodDogNzBweDtcXG59XFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRvb2xiYXI6bnRoLWNoaWxkKDIpLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbGF5b3V0IC5xLWxheW91dC1oZWFkZXIgPiAucS10YWJzOm50aC1jaGlsZCgyKSAucS10YWJzLWhlYWQsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWRyYXdlci50b3AtcGFkZGluZyxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5tb2RhbDpub3QoLm1pbmltaXplZCkgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRvb2xiYXI6bnRoLWNoaWxkKDEpIHtcXG4gIHBhZGRpbmctdG9wOiBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCk7XFxufVxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbGF5b3V0IC5xLWxheW91dC1mb290ZXIgPiAucS10b29sYmFyOmxhc3QtY2hpbGQsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWZvb3RlciA+IC5xLXRhYnM6bGFzdC1jaGlsZCAucS10YWJzLWhlYWQsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWRyYXdlci50b3AtcGFkZGluZyxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5tb2RhbDpub3QoLm1pbmltaXplZCkgLnEtbGF5b3V0LWZvb3RlciA+IC5xLXRvb2xiYXI6bGFzdC1jaGlsZCB7XFxuICBwYWRkaW5nLWJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xcbiAgbWluLWhlaWdodDogNzBweDtcXG59XFxuLnEtbGF5b3V0LWFuaW1hdGUgLnEtbGF5b3V0LXRyYW5zaXRpb24ge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4xMnMgZWFzZS1pbiAhaW1wb3J0YW50O1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMTJzIGVhc2UtaW4gIWltcG9ydGFudDtcXG59XFxuLnEtYm9keS1kcmF3ZXItdG9nZ2xlIHtcXG4gIG92ZXJmbG93LXg6IGhpZGRlbiAhaW1wb3J0YW50O1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5sYXlvdXQtcGFkZGluZyB7XFxuICAgIHBhZGRpbmc6IDEuNXJlbSAwLjVyZW07XFxuICB9XFxuICAubGF5b3V0LXBhZGRpbmcuaG9yaXpvbnRhbCB7XFxuICAgIHBhZGRpbmc6IDAgMC41cmVtO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xcbiAgLmxheW91dC1wYWRkaW5nIHtcXG4gICAgcGFkZGluZzogMS41cmVtIDJyZW07XFxuICAgIG1hcmdpbjogYXV0bztcXG4gIH1cXG4gIC5sYXlvdXQtcGFkZGluZy5ob3Jpem9udGFsIHtcXG4gICAgcGFkZGluZzogMCAycmVtO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcXG4gIC5sYXlvdXQtcGFkZGluZyB7XFxuICAgIHBhZGRpbmc6IDIuNXJlbSAzcmVtO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICB9XFxuICAubGF5b3V0LXBhZGRpbmcuaG9yaXpvbnRhbCB7XFxuICAgIHBhZGRpbmc6IDAgM3JlbTtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDEyMDBweCkge1xcbiAgLmxheW91dC1wYWRkaW5nIHtcXG4gICAgcGFkZGluZzogM3JlbSA0cmVtO1xcbiAgICBtYXJnaW46IGF1dG87XFxuICB9XFxuICAubGF5b3V0LXBhZGRpbmcuaG9yaXpvbnRhbCB7XFxuICAgIHBhZGRpbmc6IDAgNHJlbTtcXG4gIH1cXG59XFxuLnEtaXRlbS1zdGFtcCB7XFxuICBmb250LXNpemU6IDAuOHJlbTtcXG4gIGxpbmUtaGVpZ2h0OiAwLjhyZW07XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgbWFyZ2luOiAwLjNyZW0gMDtcXG59XFxuLnEtaXRlbS1zaWRlIHtcXG4gIGNvbG9yOiAjNzM3MzczO1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgbWluLXdpZHRoOiAzOHB4O1xcbn1cXG4ucS1pdGVtLXNpZGUtcmlnaHQge1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcbi5xLWl0ZW0tYXZhdGFyLFxcbi5xLWl0ZW0tYXZhdGFyIGltZyB7XFxuICB3aWR0aDogMzhweDtcXG4gIGhlaWdodDogMzhweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuLnEtaXRlbS1sZXR0ZXIsXFxuLnEtaXRlbS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG59XFxuLnEtaXRlbS1pbnZlcnRlZCB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQ6ICM3MzczNzM7XFxuICBoZWlnaHQ6IDM4cHg7XFxuICB3aWR0aDogMzhweDtcXG59XFxuLnEtaXRlbS1pbnZlcnRlZCxcXG4ucS1pdGVtLWludmVydGVkIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAyMHB4O1xcbn1cXG4ucS1pdGVtLW1haW4ge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgbWluLXdpZHRoOiAwO1xcbn1cXG4ucS1pdGVtLW1haW4taW5zZXQge1xcbiAgbWFyZ2luLWxlZnQ6IDQ4cHg7XFxufVxcbi5xLWl0ZW0tbGFiZWwge1xcbiAgbGluZS1oZWlnaHQ6IDEuMjtcXG59XFxuLnEtaXRlbS1sYWJlbCA+IHNwYW4ge1xcbiAgY29sb3I6ICM3NTc1NzU7XFxufVxcbi5xLWl0ZW0tc3VibGFiZWwge1xcbiAgY29sb3I6ICM3NTc1NzU7XFxuICBmb250LXNpemU6IDkwJTtcXG4gIG1hcmdpbi10b3A6IDAuMnJlbTtcXG59XFxuLnEtaXRlbS1zdWJsYWJlbCA+IHNwYW4ge1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG59XFxuLnEtaXRlbS1zZWN0aW9uICsgLnEtaXRlbS1zZWN0aW9uIHtcXG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xcbn1cXG4ucS1pdGVtIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgZm9udC1zaXplOiAxcmVtO1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG4gIHBhZGRpbmc6IDhweCAxNnB4O1xcbiAgbWluLWhlaWdodDogNDBweDtcXG59XFxuLnEtaXRlbS5hY3RpdmUsXFxuLnEtaXRlbS5yb3V0ZXItbGluay1hY3RpdmUsXFxuLnEtaXRlbTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDE4OSwxODksMTg5LDAuNCk7XFxufVxcbi5xLWl0ZW06Zm9jdXMge1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtaXRlbS1pbWFnZSB7XFxuICBtaW4td2lkdGg6IDExNHB4O1xcbiAgbWF4LXdpZHRoOiAxMTRweDtcXG4gIG1heC1oZWlnaHQ6IDExNHB4O1xcbn1cXG4ucS1saXN0LW11bHRpbGluZSA+IC5xLWl0ZW0sXFxuLnEtaXRlbS1tdWx0aWxpbmUge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IHN0YXJ0O1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdGFydDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XFxufVxcbi5xLWxpc3QtbGluayA+IC5xLWl0ZW0sXFxuLnEtaXRlbS1saW5rIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtbGlzdC1oaWdobGlnaHQgPiAucS1pdGVtOmhvdmVyLFxcbi5xLWl0ZW0taGlnaGxpZ2h0OmhvdmVyLFxcbi5xLWxpc3QtbGluayA+IC5xLWl0ZW06aG92ZXIsXFxuLnEtaXRlbS1saW5rOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTg5LDE4OSwxODksMC41KTtcXG59XFxuLnEtbGlzdC1zZXBhcmF0b3IgPiAucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1kaXZpc2lvbixcXG4ucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1zZXBhcmF0b3Ige1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMGUwZTA7XFxufVxcbi5xLWxpc3QtaW5zZXQtc2VwYXJhdG9yID4gLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0tZGl2aXNpb246YWZ0ZXIsXFxuLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0taW5zZXQtc2VwYXJhdG9yOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBsZWZ0OiA2NHB4O1xcbiAgaGVpZ2h0OiAxcHg7XFxuICBiYWNrZ3JvdW5kOiAjZTBlMGUwO1xcbn1cXG4ucS1saXN0LWRlbnNlID4gLnEtaXRlbSxcXG4ucS1pdGVtLWRlbnNlIHtcXG4gIHBhZGRpbmc6IDNweCAxNnB4O1xcbiAgbWluLWhlaWdodDogOHB4O1xcbn1cXG4ucS1saXN0LXNwYXJzZSA+IC5xLWl0ZW0sXFxuLnEtaXRlbS1zcGFyc2Uge1xcbiAgcGFkZGluZzogMjIuNHB4IDE2cHg7XFxuICBtaW4taGVpZ2h0OiA1NnB4O1xcbn1cXG4ucS1saXN0LXN0cmlwZWQgPiAucS1pdGVtOm50aC1jaGlsZChldmVuKSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4OSwxODksMTg5LDAuNjUpO1xcbn1cXG4ucS1saXN0LXN0cmlwZWQtb2RkID4gLnEtaXRlbTpudGgtY2hpbGQob2RkKSB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE4OSwxODksMTg5LDAuNjUpO1xcbn1cXG4ucS1saXN0IHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxuICBwYWRkaW5nOiA4cHggMDtcXG59XFxuLnEtaXRlbS1zZXBhcmF0b3ItY29tcG9uZW50IHtcXG4gIG1hcmdpbjogOHB4IDA7XFxuICBoZWlnaHQ6IDFweDtcXG4gIGJvcmRlcjogMDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlMGUwZTA7XFxufVxcbi5xLWl0ZW0tc2VwYXJhdG9yLWNvbXBvbmVudDpsYXN0LWNoaWxkIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWl0ZW0tc2VwYXJhdG9yLWNvbXBvbmVudCArIC5xLWxpc3QtaGVhZGVyIHtcXG4gIG1hcmdpbi10b3A6IC04cHg7XFxufVxcbi5xLWl0ZW0tc2VwYXJhdG9yLWluc2V0LWNvbXBvbmVudCB7XFxuICBtYXJnaW4tbGVmdDogNjRweDtcXG59XFxuLnEtbGlzdC1oZWFkZXIge1xcbiAgY29sb3I6ICM3NTc1NzU7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XFxuICBtaW4taGVpZ2h0OiA0OHB4O1xcbiAgcGFkZGluZzogMTVweCAxNnB4O1xcbn1cXG4ucS1saXN0LWhlYWRlci1pbnNldCB7XFxuICBwYWRkaW5nLWxlZnQ6IDY0cHg7XFxufVxcbi5xLWxpc3QtZGFyayAucS1pdGVtLXNpZGUsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0tc2lkZSB7XFxuICBjb2xvcjogI2JiYjtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0taW52ZXJ0ZWQsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0taW52ZXJ0ZWQge1xcbiAgY29sb3I6ICMwMDA7XFxuICBiYWNrZ3JvdW5kOiAjYmJiO1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1sYWJlbCA+IHNwYW4sXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0tbGFiZWwgPiBzcGFuLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtLXN1YmxhYmVsLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtLXN1YmxhYmVsIHtcXG4gIGNvbG9yOiAjYmRiZGJkO1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtaXRlbSxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0uYWN0aXZlLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtLmFjdGl2ZSxcXG4ucS1saXN0LWRhcmsgLnEtaXRlbS5yb3V0ZXItbGluay1hY3RpdmUsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0ucm91dGVyLWxpbmstYWN0aXZlLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtOmZvY3VzLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtOmZvY3VzIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTE3LDExNywxMTcsMC4yKTtcXG59XFxuLnEtbGlzdC1kYXJrIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4zMik7XFxufVxcbi5xLWxpc3QtZGFyay5xLWxpc3Qtc2VwYXJhdG9yID4gLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0tZGl2aXNpb24sXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLXNlcGFyYXRvciB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMyKTtcXG59XFxuLnEtbGlzdC1kYXJrLnEtbGlzdC1pbnNldC1zZXBhcmF0b3IgPiAucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1kaXZpc2lvbjphZnRlcixcXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0taW5zZXQtc2VwYXJhdG9yOmFmdGVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zMik7XFxufVxcbi5xLWxpc3QtZGFyay5xLWxpc3Qtc3RyaXBlZCA+IC5xLWl0ZW06bnRoLWNoaWxkKGV2ZW4pIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTE3LDExNywxMTcsMC40NSk7XFxufVxcbi5xLWxpc3QtZGFyay5xLWxpc3Qtc3RyaXBlZC1vZGQgPiAucS1pdGVtOm50aC1jaGlsZChvZGQpIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTE3LDExNywxMTcsMC40NSk7XFxufVxcbi5xLWxpc3QtZGFyayAucS1pdGVtLXNlcGFyYXRvci1jb21wb25lbnQge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjMyKTtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWxpc3QtaGVhZGVyIHtcXG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjQpO1xcbn1cXG4ucS1saXN0LWRhcmsucS1saXN0LWhpZ2hsaWdodCA+IC5xLWl0ZW06aG92ZXIsXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0taGlnaGxpZ2h0OmhvdmVyLFxcbi5xLWxpc3QtZGFyay5xLWxpc3QtbGluayA+IC5xLWl0ZW06aG92ZXIsXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tbGluazpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDExNywxMTcsMTE3LDAuMyk7XFxufVxcbmJvZHkud2l0aC1sb2FkaW5nIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLWxvYWRpbmcge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjQpO1xcbn1cXG4ucS1sb2FkaW5nID4gZGl2IHtcXG4gIG1hcmdpbjogNDBweCAyMHB4IDA7XFxuICBtYXgtd2lkdGg6IDQ1MHB4O1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgdGV4dC1zaGFkb3c6IDAgMCA3cHggIzAwMDtcXG59XFxuLm1vZGFsLWJhY2tkcm9wIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC40KTtcXG59XFxuLm1vZGFsLm1heGltaXplZCAubW9kYWwtYmFja2Ryb3Age1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLm1vZGFsLWNvbnRlbnQge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG4gIHdpbGwtY2hhbmdlOiBzY3JvbGwtcG9zaXRpb247XFxuICBtaW4td2lkdGg6IDI4MHB4O1xcbiAgbWF4LWhlaWdodDogODB2aDtcXG4gIC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgb3V0bGluZTogMDtcXG59XFxuLm1vZGFsIHtcXG4gIHotaW5kZXg6IDUwMDA7XFxufVxcbi5tb2RhbC5taW5pbWl6ZWQgLm1vZGFsLWNvbnRlbnQge1xcbiAgbWF4LXdpZHRoOiA4MHZ3O1xcbiAgbWF4LWhlaWdodDogODB2aDtcXG59XFxuLm1vZGFsLm1heGltaXplZCAubW9kYWwtY29udGVudCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIG1heC1oZWlnaHQ6IDEwMCU7XFxuICBib3JkZXItcmFkaXVzOiAwO1xcbn1cXG4ubW9kYWwubWF4aW1pemVkIC5tb2RhbC1jb250ZW50IC5xLWxheW91dC1jb250YWluZXIge1xcbiAgbWluLWhlaWdodDogMTAwdmggIWltcG9ydGFudDtcXG59XFxuLnEtbW9kYWwtZW50ZXIsXFxuLnEtbW9kYWwtbGVhdmUtYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLm1vZGFsOm5vdCgubWF4aW1pemVkKS5xLW1vZGFsLWVudGVyIC5tb2RhbC1jb250ZW50IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMik7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xcbiAgfVxcbiAgLm1vZGFsOm5vdCgubWF4aW1pemVkKS5xLW1vZGFsLWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcXG4gIH1cXG4gIC5tb2RhbC5tYXhpbWl6ZWQucS1tb2RhbC1lbnRlciAubW9kYWwtY29udGVudCxcXG4gIC5tb2RhbC5tYXhpbWl6ZWQucS1tb2RhbC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMCUpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMCUpO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5xLXJlc3BvbnNpdmUtbW9kYWwge1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcbiAgLm1vZGFsOm5vdCgubWluaW1pemVkKSAubW9kYWwtY29udGVudCB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gICAgYm9yZGVyLXJhZGl1czogMDtcXG4gIH1cXG4gIC5tb2RhbDpub3QoLm1pbmltaXplZCkgLm1vZGFsLWNvbnRlbnQgLnEtbGF5b3V0LWNvbnRhaW5lciB7XFxuICAgIG1pbi1oZWlnaHQ6IDEwMHZoICFpbXBvcnRhbnQ7XFxuICB9XFxuICAubW9kYWw6bm90KC5taW5pbWl6ZWQpLnEtbW9kYWwtZW50ZXIgLm1vZGFsLWNvbnRlbnQsXFxuICAubW9kYWw6bm90KC5taW5pbWl6ZWQpLnEtbW9kYWwtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzAlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzAlKTtcXG4gIH1cXG4gIC5tb2RhbC5taW5pbWl6ZWQucS1tb2RhbC1lbnRlciAubW9kYWwtY29udGVudCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcXG4gIH1cXG4gIC5tb2RhbC5taW5pbWl6ZWQucS1tb2RhbC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC44KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCk7XFxuICB9XFxufVxcbi5xLW1heGltaXplZC1tb2RhbCB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ubW9kYWwsXFxuLm1vZGFsLWNvbnRlbnQge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xcbn1cXG4ubW9kYWwtaGVhZGVyIHtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxuICBwYWRkaW5nOiAyNHB4IDI0cHggMTBweCAyNHB4O1xcbiAgZm9udC1zaXplOiAxLjZyZW07XFxuICBmb250LXdlaWdodDogNTAwO1xcbn1cXG4ubW9kYWwtYm9keSB7XFxuICBwYWRkaW5nOiAxMHB4IDI0cHg7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjUpO1xcbn1cXG4uc21hbGwtbW9kYWwtc2Nyb2xsLFxcbi5tb2RhbC1zY3JvbGwsXFxuLmJpZy1tb2RhbC1zY3JvbGwge1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxuICB3aWxsLWNoYW5nZTogc2Nyb2xsLXBvc2l0aW9uO1xcbn1cXG4uc21hbGwtbW9kYWwtc2Nyb2xsIHtcXG4gIG1heC1oZWlnaHQ6IDE1NnB4O1xcbn1cXG4ubW9kYWwtc2Nyb2xsIHtcXG4gIG1heC1oZWlnaHQ6IDI0MHB4O1xcbn1cXG4uYmlnLW1vZGFsLXNjcm9sbCB7XFxuICBtYXgtaGVpZ2h0OiA0ODBweDtcXG59XFxuLm1vZGFsLWJ1dHRvbnMge1xcbiAgcGFkZGluZzogMjJweCA4cHggOHB4O1xcbiAgLXdlYmtpdC1ib3gtcGFjazogZW5kO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG4gIGNvbG9yOiAjMDI3YmUzO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItcHJpbWFyeSk7XFxufVxcbi5tb2RhbC1idXR0b25zLnJvdyAucS1idG4gKyAucS1idG4ge1xcbiAgbWFyZ2luLWxlZnQ6IDhweDtcXG59XFxuLm1vZGFsLWJ1dHRvbnMuY29sdW1uIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBlbmQ7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xcbn1cXG4ubW9kYWwtYnV0dG9ucy5jb2x1bW4gLnEtYnRuICsgLnEtYnRuIHtcXG4gIG1hcmdpbi10b3A6IDhweDtcXG59XFxuLnEtbW9kYWwtYm90dG9tLWVudGVyLFxcbi5xLW1vZGFsLWJvdHRvbS1sZWF2ZS1hY3RpdmUge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtbW9kYWwtYm90dG9tLWVudGVyIC5tb2RhbC1jb250ZW50LFxcbi5xLW1vZGFsLWJvdHRvbS1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwJSk7XFxufVxcbi5xLW1vZGFsLXRvcC1lbnRlcixcXG4ucS1tb2RhbC10b3AtbGVhdmUtYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLW1vZGFsLXRvcC1lbnRlciAubW9kYWwtY29udGVudCxcXG4ucS1tb2RhbC10b3AtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwJSk7XFxufVxcbi5xLW1vZGFsLXJpZ2h0LWVudGVyLFxcbi5xLW1vZGFsLXJpZ2h0LWxlYXZlLWFjdGl2ZSB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1tb2RhbC1yaWdodC1lbnRlciAubW9kYWwtY29udGVudCxcXG4ucS1tb2RhbC1yaWdodC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMwJSk7XFxufVxcbi5xLW1vZGFsLWxlZnQtZW50ZXIsXFxuLnEtbW9kYWwtbGVmdC1sZWF2ZS1hY3RpdmUge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtbW9kYWwtbGVmdC1lbnRlciAubW9kYWwtY29udGVudCxcXG4ucS1tb2RhbC1sZWZ0LWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMCUpO1xcbn1cXG4ucS1ub3RpZmljYXRpb25zID4gZGl2IHtcXG4gIHotaW5kZXg6IDk1MDA7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi1saXN0IHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWxpc3QtY2VudGVyIHtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWxpc3QtdG9wIHtcXG4gIHRvcDogMDtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWxpc3QtYm90dG9tIHtcXG4gIGJvdHRvbTogMDtcXG59XFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1ub3RpZmljYXRpb24tbGlzdC1jZW50ZXIsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1ub3RpZmljYXRpb24tbGlzdC10b3Age1xcbiAgdG9wOiBlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCk7XFxufVxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbm90aWZpY2F0aW9uLWxpc3QtY2VudGVyLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLnEtbm90aWZpY2F0aW9uLWxpc3QtYm90dG9tIHtcXG4gIGJvdHRvbTogZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pO1xcbn1cXG4ucS1ub3RpZmljYXRpb24ge1xcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIG1hcmdpbjogMTBweCAxMHB4IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHk7XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIG9wYWNpdHksIC13ZWJraXQtdHJhbnNmb3JtO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAxcztcXG4gICAgICAgICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMXM7XFxuICB6LWluZGV4OiA5NTAwO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tdG9wLWxlZnQtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1sZWZ0LWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi10b3AtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1sZWF2ZS10byxcXG4ucS1ub3RpZmljYXRpb24tdG9wLXJpZ2h0LWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi10b3AtcmlnaHQtbGVhdmUtdG8ge1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MHB4KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MHB4KTtcXG4gIHotaW5kZXg6IDk0OTk7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi1sZWZ0LWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi1sZWZ0LWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi1jZW50ZXItZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLWNlbnRlci1sZWF2ZS10byxcXG4ucS1ub3RpZmljYXRpb24tcmlnaHQtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLXJpZ2h0LWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVmdC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlZnQtbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tcmlnaHQtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1yaWdodC1sZWF2ZS10byB7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNTBweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MHB4KTtcXG4gIHotaW5kZXg6IDk0OTk7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi10b3AtbGVmdC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1yaWdodC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWxlZnQtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1jZW50ZXItbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1yaWdodC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1sZWZ0LWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLXJpZ2h0LWxlYXZlLWFjdGl2ZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB6LWluZGV4OiA5NDk5O1xcbiAgbWFyZ2luLWxlZnQ6IDA7XFxuICBtYXJnaW4tcmlnaHQ6IDA7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi10b3AtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1jZW50ZXItbGVhdmUtYWN0aXZlIHtcXG4gIHRvcDogMDtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1sZWZ0LWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLXJpZ2h0LWxlYXZlLWFjdGl2ZSB7XFxuICBib3R0b206IDA7XFxufVxcbi5xLW9wdGlvbi1pbm5lciB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBsaW5lLWhlaWdodDogMDtcXG59XFxuLnEtb3B0aW9uLWlubmVyICsgLnEtb3B0aW9uLWxhYmVsIHtcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxufVxcbi5xLW9wdGlvbiB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4ucS1vcHRpb24gaW5wdXQge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4ucS1vcHRpb24ucmV2ZXJzZSAucS1vcHRpb24taW5uZXIgKyAucS1vcHRpb24tbGFiZWwge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxuICBtYXJnaW4tbGVmdDogMDtcXG59XFxuLnEtb3B0aW9uLWdyb3VwLWlubGluZS1vcHRzID4gZGl2IHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbn1cXG4ucS1vcHRpb24tZ3JvdXAge1xcbiAgbWFyZ2luOiAtNXB4O1xcbiAgcGFkZGluZzogNXB4IDA7XFxufVxcbi5xLXBhZ2luYXRpb24gaW5wdXQge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4ucS1wYWdpbmF0aW9uIC5xLWJ0biB7XFxuICBwYWRkaW5nOiAwIDVweCAhaW1wb3J0YW50O1xcbn1cXG4ucS1wYWdpbmF0aW9uIC5xLWJ0bi5kaXNhYmxlZCB7XFxuICBjb2xvcjogIzc3NztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWZhZGVkKTtcXG59XFxuLnEtcGFyYWxsYXgge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG59XFxuLnEtcGFyYWxsYXgtbWVkaWEgPiBpbWcsXFxuLnEtcGFyYWxsYXgtbWVkaWEgPiB2aWRlbyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiA1MCU7XFxuICBib3R0b206IDA7XFxuICBtaW4td2lkdGg6IDEwMCU7XFxuICBtaW4taGVpZ2h0OiAxMDAlO1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcXG59XFxuLnEtcGFyYWxsYXgtdGV4dCB7XFxuICB0ZXh0LXNoYWRvdzogMCAwIDVweCAjZmZmO1xcbn1cXG4ucS1wb3BvdmVyIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIHotaW5kZXg6IDgwMDA7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xcbiAgbWF4LXdpZHRoOiAxMDB2dztcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLXBvcG92ZXIgPiAucS1saXN0Om9ubHktY2hpbGQge1xcbiAgYm9yZGVyOiBub25lO1xcbn1cXG5ib2R5IGRpdiAucS1wb3BvdmVyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXByb2dyZXNzIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGhlaWdodDogNXB4O1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICB3aWR0aDogMTAwJTtcXG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbCB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsLmFuaW1hdGUge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcHJvZ3Jlc3Mtc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGU7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wcm9ncmVzcy1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZTtcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWw6bm90KC5pbmRldGVybWluYXRlKSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDAuM3MgbGluZWFyO1xcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsLmluZGV0ZXJtaW5hdGU6YmVmb3JlLFxcbi5xLXByb2dyZXNzLW1vZGVsLmluZGV0ZXJtaW5hdGU6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIHdpbGwtY2hhbmdlOiBsZWZ0LCByaWdodDtcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWwuaW5kZXRlcm1pbmF0ZTpiZWZvcmUge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZSAyLjFzIGN1YmljLWJlemllcigwLjY1LCAwLjgxNSwgMC43MzUsIDAuMzk1KSBpbmZpbml0ZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUgMi4xcyBjdWJpYy1iZXppZXIoMC42NSwgMC44MTUsIDAuNzM1LCAwLjM5NSkgaW5maW5pdGU7XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsLmluZGV0ZXJtaW5hdGU6YWZ0ZXIge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZS1zaG9ydCAyLjFzIGN1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSkgaW5maW5pdGU7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wcm9ncmVzcy1pbmRldGVybWluYXRlLXNob3J0IDIuMXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKSBpbmZpbml0ZTtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OiAxLjE1cztcXG4gICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAxLjE1cztcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWwuc3RyaXBlLFxcbi5xLXByb2dyZXNzLW1vZGVsLnN0cmlwZTpiZWZvcmUsXFxuLnEtcHJvZ3Jlc3MtbW9kZWwuc3RyaXBlOmFmdGVyIHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg0NWRlZywgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSAyNSUsIHRyYW5zcGFyZW50IDI1JSwgdHJhbnNwYXJlbnQgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KSA3NSUsIHRyYW5zcGFyZW50IDc1JSwgdHJhbnNwYXJlbnQpICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kLXNpemU6IDQwcHggNDBweCAhaW1wb3J0YW50O1xcbn1cXG4ucS1wcm9ncmVzcy10cmFjayB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGxpbmVhcjtcXG4gIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgbGluZWFyO1xcbn1cXG4ucS1wcm9ncmVzcy1idWZmZXIge1xcbiAgdG9wOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgaGVpZ2h0OiA0cHg7XFxuICByaWdodDogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XFxuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGxpbmVhcjtcXG4gIC13ZWJraXQtbWFzazogdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMV9fXyArIFwiKTtcXG4gICAgICAgICAgbWFzazogdXJsKFwiICsgX19fQ1NTX0xPQURFUl9VUkxfUkVQTEFDRU1FTlRfMV9fXyArIFwiKTtcXG59XFxuLnEtcHJvZ3Jlc3MtdHJhY2ssXFxuLnEtcHJvZ3Jlc3MtYnVmZmVyIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIG9wYWNpdHk6IDAuMjtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLnB1bGwtdG8tcmVmcmVzaCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5wdWxsLXRvLXJlZnJlc2gtbWVzc2FnZSB7XFxuICBoZWlnaHQ6IDY1cHg7XFxuICBmb250LXNpemU6IDFyZW07XFxufVxcbi5wdWxsLXRvLXJlZnJlc2gtbWVzc2FnZSAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMnJlbTtcXG4gIG1hcmdpbi1yaWdodDogMTVweDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3M7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcztcXG59XFxuLnEtcmFkaW8tdW5jaGVja2VkLFxcbi5xLXJhZGlvLWNoZWNrZWQsXFxuLnEtcmFkaW8gLnEtb3B0aW9uLWlubmVyIHtcXG4gIGhlaWdodDogMjFweDtcXG4gIHdpZHRoOiAyMXB4O1xcbiAgbWluLXdpZHRoOiAyMXB4O1xcbiAgZm9udC1zaXplOiAyMXB4O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSwgLXdlYmtpdC10cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtcmFkaW8tdW5jaGVja2VkIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLXJhZGlvLWNoZWNrZWQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlIDA7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCUgMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG59XFxuLnEtcmFkaW8gLnEtb3B0aW9uLWlubmVyLmFjdGl2ZSAucS1yYWRpby11bmNoZWNrZWQge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtcmFkaW8gLnEtb3B0aW9uLWlubmVyLmFjdGl2ZSAucS1yYWRpby1jaGVja2VkIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG59XFxuLnEtcmF0aW5nIHtcXG4gIGNvbG9yOiAjZmZlYjNiO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnEtcmF0aW5nIHNwYW4ge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBkaXNwbGF5OiBpbmhlcml0O1xcbn1cXG4ucS1yYXRpbmcgaSB7XFxuICBjb2xvcjogY3VycmVudENvbG9yO1xcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMTIpLCAwIDFweCAycHggcmdiYSgwLDAsMCwwLjI0KTtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG4gIG9wYWNpdHk6IDAuNDtcXG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XFxufVxcbi5xLXJhdGluZyBpLmhvdmVyZWQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4zKTtcXG59XFxuLnEtcmF0aW5nIGkuZXhzZWxlY3RlZCB7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcbi5xLXJhdGluZyBpLmFjdGl2ZSB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1yYXRpbmcgaSArIGkge1xcbiAgbWFyZ2luLWxlZnQ6IDAuM3JlbTtcXG59XFxuLnEtcmF0aW5nLmVkaXRhYmxlIGkge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1yYXRpbmc6bm90KC5lZGl0YWJsZSkgc3BhbixcXG4ucS1yYXRpbmcgaSB7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS1zY3JvbGxhcmVhLXRodW1iIHtcXG4gIGJhY2tncm91bmQ6ICMwMDA7XFxuICB3aWR0aDogMTBweDtcXG4gIHJpZ2h0OiAwO1xcbiAgb3BhY2l0eTogMC4yO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XFxufVxcbi5xLXNjcm9sbGFyZWEtdGh1bWIuaW52aXNpYmxlLXRodW1iIHtcXG4gIG9wYWNpdHk6IDAgIWltcG9ydGFudDtcXG59XFxuLnEtc2Nyb2xsYXJlYS10aHVtYjpob3ZlciB7XFxuICBvcGFjaXR5OiAwLjM7XFxufVxcbi5xLXNjcm9sbGFyZWEtdGh1bWI6YWN0aXZlIHtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtdG9vbGJhciAucS1zZWFyY2gge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjI1KTtcXG59XFxuLnEtc2xpZGVyLXRyYWNrLFxcbi5xLXNsaWRlci1tYXJrIHtcXG4gIG9wYWNpdHk6IDAuNDtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc2xpZGVyLXRyYWNrIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICBoZWlnaHQ6IDJweDtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4ucS1zbGlkZXItdHJhY2s6bm90KC5kcmFnZ2luZykge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcXG59XFxuLnEtc2xpZGVyLXRyYWNrLmFjdGl2ZS10cmFjayB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1zbGlkZXItdHJhY2sudHJhY2stZHJhZ2dhYmxlLmRyYWdnaW5nIHtcXG4gIGhlaWdodDogNHB4O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBoZWlnaHQgMC4zcyBlYXNlO1xcbiAgdHJhbnNpdGlvbjogaGVpZ2h0IDAuM3MgZWFzZTtcXG59XFxuLnEtc2xpZGVyLXRyYWNrLmhhbmRsZS1hdC1taW5pbXVtIHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbn1cXG4ucS1zbGlkZXItbWFyayB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGhlaWdodDogMTBweDtcXG4gIHdpZHRoOiAycHg7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZS1jb250YWluZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgbWFyZ2luLWxlZnQ6IDZweDtcXG4gIG1hcmdpbi1yaWdodDogNnB4O1xcbn1cXG4ucS1zbGlkZXItbGFiZWwge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogNnB4O1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMCkgc2NhbGUoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApIHNjYWxlKDApO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycztcXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzO1xcbiAgcGFkZGluZzogMnB4IDRweDtcXG59XFxuLnEtc2xpZGVyLWxhYmVsLmxhYmVsLWFsd2F5cyB7XFxuICBvcGFjaXR5OiAxO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMTM5JSkgc2NhbGUoMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0xMzklKSBzY2FsZSgxKTtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xcbiAgd2lkdGg6IDEycHg7XFxuICBoZWlnaHQ6IDEycHg7XFxuICBvdXRsaW5lOiAwO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlIC5xLWNoaXAge1xcbiAgbWF4LXdpZHRoOiB1bnNldDtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZS5kcmFnZ2luZyB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCkgc2NhbGUoMS4zKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSBzY2FsZSgxLjMpO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZTtcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIHRyYW5zZm9ybSAwLjNzIGVhc2UsIC13ZWJraXQtdHJhbnNmb3JtIDAuM3MgZWFzZTtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZS5kcmFnZ2luZyAucS1zbGlkZXItbGFiZWwge1xcbiAgb3BhY2l0eTogMTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTEzOSUpIHNjYWxlKDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMTM5JSkgc2NhbGUoMSk7XFxufVxcbi5xLXNsaWRlci1oYW5kbGUuaGFuZGxlLWF0LW1pbmltdW0ge1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZS5oYW5kbGUtYXQtbWluaW11bTphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc2xpZGVyLXJpbmcge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtNTAlO1xcbiAgbGVmdDogLTUwJTtcXG4gIHdpZHRoOiAyMDAlO1xcbiAgaGVpZ2h0OiAyMDAlO1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXNsaWRlcjpub3QoLmRpc2FibGVkKTpub3QoLnJlYWRvbmx5KSAucS1zbGlkZXItaGFuZGxlLmRyYWdnaW5nIC5xLXNsaWRlci1yaW5nLFxcbi5xLXNsaWRlcjpub3QoLmRpc2FibGVkKTpub3QoLnJlYWRvbmx5KSAucS1zbGlkZXItaGFuZGxlOmZvY3VzIC5xLXNsaWRlci1yaW5nLFxcbmJvZHkuZGVza3RvcCAucS1zbGlkZXI6bm90KC5kaXNhYmxlZCk6bm90KC5yZWFkb25seSk6aG92ZXIgLnEtc2xpZGVyLXJpbmcge1xcbiAgb3BhY2l0eTogMC40O1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbn1cXG4ucS1zbGlkZXIuZGlzYWJsZWQgLnEtc2xpZGVyLWhhbmRsZSB7XFxuICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xcbn1cXG4ucS1zbGlkZXIuZGlzYWJsZWQgLnEtc2xpZGVyLWhhbmRsZS5oYW5kbGUtYXQtbWluaW11bSB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXNsaWRlciB7XFxuICBoZWlnaHQ6IDI4cHg7XFxuICB3aWR0aDogMTAwJTtcXG4gIGNvbG9yOiAjMDI3YmUzO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItcHJpbWFyeSk7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLXNsaWRlci5sYWJlbC1hbHdheXMsXFxuLnEtc2xpZGVyLndpdGgtcGFkZGluZyB7XFxuICBwYWRkaW5nOiAzNnB4IDAgOHB4O1xcbiAgaGVpZ2h0OiA2NHB4O1xcbn1cXG4ucS1zbGlkZXIuaGFzLWVycm9yIHtcXG4gIGNvbG9yOiAjZGIyODI4O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpO1xcbn1cXG4ucS1zbGlkZXIuaGFzLXdhcm5pbmcge1xcbiAgY29sb3I6ICNmMmMwMzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci13YXJuaW5nKTtcXG59XFxuLnEtc3Bpbm5lciB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4ucS1zcGlubmVyLW1hdCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1zcGluIDJzIGxpbmVhciBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtc3BpbiAycyBsaW5lYXIgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlciAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLXNwaW5uZXItbWF0IC5wYXRoIHtcXG4gIHN0cm9rZS1kYXNoYXJyYXk6IDEsIDIwMDtcXG4gIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtbWF0LWRhc2ggMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtbWF0LWRhc2ggMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1zdGVwcGVyIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1zdGVwcGVyLXRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG59XFxuLnEtc3RlcHBlci1zdWJ0aXRsZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcbi5xLXN0ZXBwZXItZG90IHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgd2lkdGg6IDI0cHg7XFxuICBoZWlnaHQ6IDI0cHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXN0ZXBwZXItZG90IHNwYW4ge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLXN0ZXBwZXItdGFiIHtcXG4gIHBhZGRpbmc6IDI0cHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdztcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgMC4yOHMsIGJhY2tncm91bmQgMC4yOHM7XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjI4cywgYmFja2dyb3VuZCAwLjI4cztcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC13YWl0aW5nIHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLXdhaXRpbmcgLnEtc3RlcHBlci1kb3Qge1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC40Mik7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtbmF2aWdhdGlvbiB7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLWNvbG9yIHtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtYWN0aXZlIC5xLXN0ZXBwZXItdGl0bGUge1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtZGlzYWJsZWQge1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC40Mik7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtZXJyb3Ige1xcbiAgY29sb3I6ICNkYjI4Mjg7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSk7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtZXJyb3IgLnEtc3RlcHBlci1kb3Qge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtZXJyb3IgLnEtc3RlcHBlci1kb3Qgc3BhbiB7XFxuICBjb2xvcjogI2RiMjgyODtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKTtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXIge1xcbiAgbWluLWhlaWdodDogNzJweDtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXI6bm90KC5hbHRlcm5hdGl2ZS1sYWJlbHMpIC5xLXN0ZXBwZXItdGFiIHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlcjpub3QoLmFsdGVybmF0aXZlLWxhYmVscykgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXIuYWx0ZXJuYXRpdmUtbGFiZWxzIHtcXG4gIG1pbi1oZWlnaHQ6IDEwNHB4O1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMgLnEtc3RlcHBlci10YWIge1xcbiAgcGFkZGluZzogMjRweCAzMnB4O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgLXdlYmtpdC1ib3gtcGFjazogc3RhcnQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazogc3RhcnQ7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXIuYWx0ZXJuYXRpdmUtbGFiZWxzIC5xLXN0ZXBwZXItZG90IHtcXG4gIG1hcmdpbi1yaWdodDogMDtcXG59XFxuLnEtc3RlcHBlci1oZWFkZXIuYWx0ZXJuYXRpdmUtbGFiZWxzIC5xLXN0ZXBwZXItbGFiZWwge1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMgLnEtc3RlcHBlci1sYWJlbDpiZWZvcmUsXFxuLnEtc3RlcHBlci1oZWFkZXIuYWx0ZXJuYXRpdmUtbGFiZWxzIC5xLXN0ZXBwZXItbGFiZWw6YWZ0ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtc3RlcHBlci1zdGVwLWNvbnRlbnQge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItdGFiIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItZmlyc3QgLnEtc3RlcHBlci1kb3Q6YmVmb3JlLFxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItbGFzdCAucS1zdGVwcGVyLWxhYmVsOmFmdGVyLFxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItbGFzdCAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWxpbmU6YmVmb3JlLFxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItbGluZTphZnRlciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDUwJTtcXG4gIGhlaWdodDogMXB4O1xcbiAgd2lkdGg6IDEwMHZ3O1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1sYWJlbDphZnRlcixcXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIGxlZnQ6IDEwMCU7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWRvdDpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICByaWdodDogMTAwJTtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLW5hdiB7XFxuICBtYXJnaW46IDAgMTZweCA4cHg7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItc3RlcCAucS1zdGVwcGVyLW5hdiB7XFxuICBtYXJnaW46IDE2cHggMCAwO1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLXN0ZXAgLnEtc3RlcHBlci1uYXYgPiBkaXYuY29sIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItc3RlcC1jb250ZW50ID4gLnEtc3RlcHBlci1zdGVwLWlubmVyIHtcXG4gIHBhZGRpbmc6IDI0cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwge1xcbiAgcGFkZGluZzogOHB4IDAgMThweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItbmF2IHtcXG4gIG1hcmdpbi10b3A6IDE2cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLW5hdiA+IGRpdi5jb2wge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci1zdGVwLWNvbnRlbnQgPiAucS1zdGVwcGVyLXN0ZXAtaW5uZXIge1xcbiAgcGFkZGluZzogMCAyNHB4IDI0cHggNDhweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiIHtcXG4gIHBhZGRpbmc6IDEycHggMTZweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiIC5xLXN0ZXBwZXItZG90OmJlZm9yZSxcXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiA1MCU7XFxuICB3aWR0aDogMXB4O1xcbiAgaGVpZ2h0OiAxMDB2aDtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiAucS1zdGVwcGVyLWRvdDpiZWZvcmUge1xcbiAgYm90dG9tOiAxMDAlO1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgdG9wOiAxMDAlO1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIgLnEtc3RlcHBlci1sYWJlbCB7XFxuICBwYWRkaW5nLXRvcDogNHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIgLnEtc3RlcHBlci1sYWJlbCAucS1zdGVwcGVyLXRpdGxlIHtcXG4gIGxpbmUtaGVpZ2h0OiAxOHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIucS1zdGVwcGVyLWZpcnN0IC5xLXN0ZXBwZXItZG90OmJlZm9yZSxcXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIucS1zdGVwcGVyLWxhc3QgLnEtc3RlcHBlci1kb3Q6YWZ0ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuYm9keS5kZXNrdG9wIC5xLXN0ZXBwZXItdGFiLnN0ZXAtbmF2aWdhdGlvbjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDUpO1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5xLXN0ZXBwZXItaG9yaXpvbnRhbC5xLXN0ZXBwZXItY29udHJhY3RhYmxlID4gLnEtc3RlcHBlci1oZWFkZXIge1xcbiAgICBtaW4taGVpZ2h0OiA3MnB4O1xcbiAgfVxcbiAgLnEtc3RlcHBlci1ob3Jpem9udGFsLnEtc3RlcHBlci1jb250cmFjdGFibGUgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLXRhYiB7XFxuICAgIHBhZGRpbmc6IDI0cHggMDtcXG4gIH1cXG4gIC5xLXN0ZXBwZXItaG9yaXpvbnRhbC5xLXN0ZXBwZXItY29udHJhY3RhYmxlID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci10YWI6bm90KDpsYXN0LWNoaWxkKSAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XFxuICB9XFxuICAucS1zdGVwcGVyLWhvcml6b250YWwucS1zdGVwcGVyLWNvbnRyYWN0YWJsZSA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItZG90IHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcbiAgLnEtc3RlcHBlci1ob3Jpem9udGFsLnEtc3RlcHBlci1jb250cmFjdGFibGUgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWxhYmVsIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gIH1cXG59XFxuLnEtdGFicyB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxufVxcbi5xLWxheW91dC1tYXJnaW5hbCAucS10YWJzIHtcXG4gIGJvcmRlci1yYWRpdXM6IDA7XFxufVxcbi5xLXRhYnMtc2Nyb2xsZXIge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtdGFiLXBhbmUge1xcbiAgcGFkZGluZzogMTJweDtcXG59XFxuLnEtdGFicy1wYW5lczplbXB0eSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS10YWJzLW5vcm1hbCAucS10YWItaWNvbixcXG4ucS10YWJzLW5vcm1hbCAucS10YWItbGFiZWwge1xcbiAgb3BhY2l0eTogMC43O1xcbn1cXG4ucS10YWIge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjNzLCBiYWNrZ3JvdW5kIDAuM3M7XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzLCBiYWNrZ3JvdW5kIDAuM3M7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIHBhZGRpbmc6IDhweCAxMHB4O1xcbiAgbWluLWhlaWdodDogNDhweDtcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxufVxcbi5xLXRhYiAucS10YWItaWNvbi1wYXJlbnQgKyAucS10YWItbGFiZWwtcGFyZW50IHtcXG4gIG1hcmdpbi10b3A6IDRweDtcXG59XFxuLnEtdGFiIC5xLWNoaXAge1xcbiAgdG9wOiAtOHB4O1xcbiAgcmlnaHQ6IC0xMHB4O1xcbiAgbGVmdDogYXV0bztcXG4gIG1pbi1oZWlnaHQ6IGF1dG87XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjQ0LDY3LDU0LDAuNzUpO1xcbn1cXG4ucS10YWIuYWN0aXZlIC5xLXRhYi1pY29uLFxcbi5xLXRhYi5hY3RpdmUgLnEtdGFiLWxhYmVsIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLXRhYi1sYWJlbCB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5xLXRhYi1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjdweDtcXG59XFxuLnEtdGFiLWZvY3VzLWhlbHBlciB7XFxuICB6LWluZGV4OiAtMTtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLXRhYi1mb2N1cy1oZWxwZXI6Zm9jdXMge1xcbiAgei1pbmRleDogdW5zZXQ7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBvcGFjaXR5OiAwLjE7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLnEtdGFiLmhpZGUtaWNvbiAucS10YWItaWNvbi1wYXJlbnQsXFxuICAucS10YWIuaGlkZS1sYWJlbCAucS10YWItbGFiZWwtcGFyZW50IHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbiAgLnEtdGFiLmhpZGUtaWNvbiAucS10YWItbGFiZWwge1xcbiAgICBtYXJnaW4tdG9wOiAwO1xcbiAgfVxcbiAgLnEtdGFiLWZ1bGwuaGlkZS1ub25lIC5xLXRhYi1sYWJlbC1wYXJlbnQgLnEtdGFiLW1ldGEge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5xLXRhYi1mdWxsIC5xLXRhYi1sYWJlbC1wYXJlbnQgLnEtdGFiLW1ldGEge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogOTkxcHgpIHtcXG4gIC5xLXRhYnMtaGVhZDpub3QoLnNjcm9sbGFibGUpIC5xLXRhYnMtc2Nyb2xsZXIsXFxuICAucS10YWJzLWhlYWQ6bm90KC5zY3JvbGxhYmxlKSAucS10YWIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMSBhdXRvO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gIC5xLXRhYiB7XFxuICAgIHBhZGRpbmctbGVmdDogMjVweDtcXG4gICAgcGFkZGluZy1yaWdodDogMjVweDtcXG4gIH1cXG4gIC5xLWxheW91dC1tYXJnaW5hbCAucS10YWJzLWhlYWQ6bm90KC5zY3JvbGxhYmxlKSB7XFxuICAgIHBhZGRpbmctbGVmdDogMTJweDtcXG4gICAgcGFkZGluZy1yaWdodDogMTJweDtcXG4gIH1cXG59XFxuLnEtdGFicy1oZWFkIHtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgMC4xOHMgZWFzZS1pbiwgLXdlYmtpdC1ib3gtc2hhZG93IDAuMThzIGVhc2UtaW47XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjE4cyBlYXNlLWluLCAtd2Via2l0LWJveC1zaGFkb3cgMC4xOHMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMThzIGVhc2UtaW4sIGJveC1zaGFkb3cgMC4xOHMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMThzIGVhc2UtaW4sIGJveC1zaGFkb3cgMC4xOHMgZWFzZS1pbiwgLXdlYmtpdC1ib3gtc2hhZG93IDAuMThzIGVhc2UtaW47XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5xLXRhYnMtaGVhZDpub3QoLnNjcm9sbGFibGUpIC5xLXRhYnMtbGVmdC1zY3JvbGwsXFxuLnEtdGFicy1oZWFkOm5vdCguc2Nyb2xsYWJsZSkgLnEtdGFicy1yaWdodC1zY3JvbGwge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4ucS10YWJzLWxlZnQtc2Nyb2xsLFxcbi5xLXRhYnMtcmlnaHQtc2Nyb2xsIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgdG9wOiAwO1xcbn1cXG4ucS10YWJzLWxlZnQtc2Nyb2xsIC5xLWljb24sXFxuLnEtdGFicy1yaWdodC1zY3JvbGwgLnEtaWNvbiB7XFxuICB0ZXh0LXNoYWRvdzogMCAwIDEwcHggIzAwMDtcXG4gIGZvbnQtc2l6ZTogMzIuNHB4O1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbn1cXG4ucS10YWJzLWxlZnQtc2Nyb2xsLmRpc2FibGVkLFxcbi5xLXRhYnMtcmlnaHQtc2Nyb2xsLmRpc2FibGVkIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXRhYnM6aG92ZXIgLnEtdGFicy1sZWZ0LXNjcm9sbCAucS1pY29uLFxcbi5xLXRhYnM6aG92ZXIgLnEtdGFicy1yaWdodC1zY3JvbGwgLnEtaWNvbiB7XFxuICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xcbn1cXG4ucS10YWJzLWxlZnQtc2Nyb2xsIHtcXG4gIGxlZnQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtdGFicy1yaWdodC1zY3JvbGwge1xcbiAgcmlnaHQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtdGFicy1hbGlnbi1qdXN0aWZ5IC5xLXRhYnMtc2Nyb2xsZXIsXFxuLnEtdGFicy1hbGlnbi1qdXN0aWZ5IC5xLXRhYiB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgZmxleDogMSAxIGF1dG87XFxufVxcbi5xLXRhYnMtYWxpZ24tY2VudGVyIHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG4ucS10YWJzLWFsaWduLXJpZ2h0IHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGVuZDtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBlbmQ7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XFxufVxcbi5xLXRhYnMtYmFyIHtcXG4gIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG4gIGJvcmRlci13aWR0aDogMDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGhlaWdodDogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLnEtdGFicy1nbG9iYWwtYmFyIHtcXG4gIHdpZHRoOiAxcHg7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xcbiAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGNlbnRlcjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm07XFxuICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSwgLXdlYmtpdC10cmFuc2Zvcm07XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE1cztcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjQsIDAsIDEsIDEpO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7XFxufVxcbi5xLXRhYnMtZ2xvYmFsLWJhci5jb250cmFjdCB7XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDAuMThzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjE4cztcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XFxufVxcbi5xLXRhYnMtZ2xvYmFsLWJhci1jb250YWluZXIuaGlnaGxpZ2h0ID4gLnEtdGFicy1nbG9iYWwtYmFyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXRhYnMtdHdvLWxpbmVzIC5xLXRhYiB7XFxuICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbn1cXG4ucS10YWJzLXR3by1saW5lcyAucS10YWIgLnEtdGFiLWxhYmVsIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XFxufVxcbi5xLXRhYnMtcG9zaXRpb24tdG9wID4gLnEtdGFicy1oZWFkIC5xLXRhYnMtYmFyIHtcXG4gIGJvdHRvbTogMDtcXG4gIGJvcmRlci1ib3R0b20td2lkdGg6IDJweDtcXG59XFxuLnEtdGFicy1wb3NpdGlvbi1ib3R0b20gPiAucS10YWJzLWhlYWQgLnEtdGFicy1iYXIge1xcbiAgdG9wOiAwO1xcbiAgYm9yZGVyLXRvcC13aWR0aDogMnB4O1xcbn1cXG4ucS10YWJzLXBvc2l0aW9uLWJvdHRvbSA+IC5xLXRhYnMtcGFuZXMge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMDtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogLTE7XFxuICAgICAgICAgIG9yZGVyOiAtMTtcXG59XFxuLnEtdGFicy1pbnZlcnRlZCAucS10YWJzLWhlYWQge1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG59XFxuLnEtdGFicy1pbnZlcnRlZC5xLXRhYnMtcG9zaXRpb24tdG9wID4gLnEtdGFicy1wYW5lcyB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgwLDAsMCwwLjEpO1xcbn1cXG4ucS10YWJzLWludmVydGVkLnEtdGFicy1wb3NpdGlvbi10b3AgPiAucS10YWItcGFuZSB7XFxuICBib3JkZXItdG9wOiAwO1xcbn1cXG4ucS10YWJzLWludmVydGVkLnEtdGFicy1wb3NpdGlvbi1ib3R0b20gPiAucS10YWJzLXBhbmVzIHtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7XFxufVxcbi5xLXRhYnMtaW52ZXJ0ZWQucS10YWJzLXBvc2l0aW9uLWJvdHRvbSA+IC5xLXRhYi1wYW5lIHtcXG4gIGJvcmRlci1ib3R0b206IDA7XFxufVxcbmJvZHkubW9iaWxlIC5xLXRhYnMtc2Nyb2xsZXIge1xcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xcbiAgb3ZlcmZsb3cteDogYXV0bztcXG4gIHdpbGwtY2hhbmdlOiBzY3JvbGwtcG9zaXRpb247XFxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxufVxcbmJvZHkuZGVza3RvcCAucS10YWI6YmVmb3JlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIG9wYWNpdHk6IDAuMTtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuYm9keS5kZXNrdG9wIC5xLXRhYjpob3ZlcjpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxufVxcbi5xLXRhYmxlLWNvbnRhaW5lciB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnEtdGFibGUtY29udGFpbmVyLmZ1bGxzY3JlZW4ge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcXG59XFxuLnEtdGFibGUtdG9wIHtcXG4gIG1pbi1oZWlnaHQ6IDY0cHg7XFxuICBwYWRkaW5nOiA4cHggMjRweDtcXG59XFxuLnEtdGFibGUtdG9wOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgb3BhY2l0eTogMC4yO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxufVxcbi5xLXRhYmxlLXRvcCAucS10YWJsZS1jb250cm9sIHtcXG4gIG1pbi1oZWlnaHQ6IDM2cHg7XFxuICBwYWRkaW5nOiA4cHggMDtcXG4gIC1tcy1mbGV4LXdyYXA6IHdyYXA7XFxuICAgICAgZmxleC13cmFwOiB3cmFwO1xcbn1cXG4ucS10YWJsZS10aXRsZSB7XFxuICBmb250LXNpemU6IDIwcHg7XFxuICBsZXR0ZXItc3BhY2luZzogMC4wMDVlbTtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxufVxcbi5xLXRhYmxlLXNlcGFyYXRvciB7XFxuICBtaW4td2lkdGg6IDhweCAhaW1wb3J0YW50O1xcbn1cXG4ucS10YWJsZS1ub2RhdGEgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDIwMCU7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xcbn1cXG4ucS10YWJsZS1wcm9ncmVzcyB7XFxuICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcXG59XFxuLnEtdGFibGUtcHJvZ3Jlc3MgdGQge1xcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxufVxcbi5xLXRhYmxlLXByb2dyZXNzIC5xLXByb2dyZXNzIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGhlaWdodDogMnB4O1xcbiAgYm90dG9tOiAwO1xcbn1cXG4ucS10YWJsZS1taWRkbGUge1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbn1cXG4ucS10YWJsZS1ib3R0b20ge1xcbiAgbWluLWhlaWdodDogNDhweDtcXG4gIHBhZGRpbmc6IDRweCAxNHB4IDRweCAyNHB4O1xcbn1cXG4ucS10YWJsZS1ib3R0b20sXFxuLnEtdGFibGUtYm90dG9tIC5xLWlmIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG59XFxuLnEtdGFibGUtYm90dG9tIC5xLXRhYmxlLWNvbnRyb2wge1xcbiAgbWluLWhlaWdodDogMjRweDtcXG59XFxuLnEtdGFibGUtY29udHJvbCB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcXG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xcbiAgZGlzcGxheTogZmxleDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG59XFxuLnEtdGFibGUtc29ydC1pY29uIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcXG4gIG9wYWNpdHk6IDA7XFxuICBmb250LXNpemU6IDEyMCU7XFxufVxcbi5xLXRhYmxlLXNvcnQtaWNvbi1sZWZ0LFxcbi5xLXRhYmxlLXNvcnQtaWNvbi1jZW50ZXIge1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG59XFxuLnEtdGFibGUtc29ydC1pY29uLXJpZ2h0IHtcXG4gIG1hcmdpbi1yaWdodDogNHB4O1xcbn1cXG4ucS10YWJsZSB7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XFxuICBib3JkZXItc3BhY2luZzogMDtcXG59XFxuLnEtdGFibGUgdGhlYWQgdHIge1xcbiAgaGVpZ2h0OiA1NnB4O1xcbn1cXG4ucS10YWJsZSB0aCB7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbn1cXG4ucS10YWJsZSB0aC5zb3J0YWJsZSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLXRhYmxlIHRoLnNvcnRhYmxlOmhvdmVyIC5xLXRhYmxlLXNvcnQtaWNvbiB7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLXRhYmxlIHRoLnNvcnRlZCAucS10YWJsZS1zb3J0LWljb24ge1xcbiAgb3BhY2l0eTogMSAhaW1wb3J0YW50O1xcbn1cXG4ucS10YWJsZSB0aC5zb3J0LWRlc2MgLnEtdGFibGUtc29ydC1pY29uIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcXG59XFxuLnEtdGFibGUgdGJvZHkgdHIge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB3aWxsLWNoYW5nZTogYmFja2dyb3VuZDtcXG59XFxuLnEtdGFibGUgdGgsXFxuLnEtdGFibGUgdGQge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIHBhZGRpbmc6IDdweCAyNHB4O1xcbn1cXG4ucS10YWJsZSB0aGVhZCxcXG4ucS10YWJsZSB0ZCxcXG4ucS10YWJsZSB0aCB7XFxuICBib3JkZXItc3R5bGU6IHNvbGlkO1xcbiAgYm9yZGVyLXdpZHRoOiAwO1xcbn1cXG4ucS10YWJsZSB0Ym9keSB0ZCB7XFxuICBoZWlnaHQ6IDQ4cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgZm9udC1zaXplOiAxM3B4O1xcbn1cXG4ucS10YWJsZS1jb2wtYXV0by13aWR0aCB7XFxuICB3aWR0aDogMXB4O1xcbn1cXG4ucS10YWJsZS1ib3R0b20taXRlbSB7XFxuICBtYXJnaW4tcmlnaHQ6IDI0cHg7XFxufVxcbi5xLXRhYmxlLWdyaWQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG4ucS10YWJsZS1ncmlkIC5xLXRhYmxlLWJvdHRvbSB7XFxuICBib3JkZXItdG9wOiAwO1xcbn1cXG4ucS10YWJsZS1ncmlkIC5xLXRhYmxlIHtcXG4gIGhlaWdodDogMnB4O1xcbn1cXG4ucS10YWJsZS1ncmlkIC5xLXRhYmxlIHRoZWFkIHtcXG4gIGJvcmRlcjogMDtcXG59XFxuLnEtdGFibGUtaG9yaXpvbnRhbC1zZXBhcmF0b3IgdGhlYWQsXFxuLnEtdGFibGUtaG9yaXpvbnRhbC1zZXBhcmF0b3IgdGJvZHkgdGQge1xcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMXB4IDA7XFxufVxcbi5xLXRhYmxlLXZlcnRpY2FsLXNlcGFyYXRvciB0aGVhZCB7XFxuICBib3JkZXItd2lkdGg6IDAgMCAxcHggMDtcXG59XFxuLnEtdGFibGUtdmVydGljYWwtc2VwYXJhdG9yIHRkIHtcXG4gIGJvcmRlci13aWR0aDogMCAwIDAgMXB4O1xcbn1cXG4ucS10YWJsZS12ZXJ0aWNhbC1zZXBhcmF0b3IgdGQ6Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLWxlZnQ6IDA7XFxufVxcbi5xLXRhYmxlLWNlbGwtc2VwYXJhdG9yIHRkIHtcXG4gIGJvcmRlci13aWR0aDogMXB4O1xcbn1cXG4ucS10YWJsZS1jZWxsLXNlcGFyYXRvciB0ZDpmaXJzdC1jaGlsZCB7XFxuICBib3JkZXItbGVmdDogMDtcXG59XFxuLnEtdGFibGUtY2VsbC1zZXBhcmF0b3IgdGQ6bGFzdC1jaGlsZCB7XFxuICBib3JkZXItcmlnaHQ6IDA7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlLXRvcCB7XFxuICBtaW4taGVpZ2h0OiA0OHB4O1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZS10b3AsXFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUtYm90dG9tIHtcXG4gIHBhZGRpbmctbGVmdDogOHB4O1xcbiAgcGFkZGluZy1yaWdodDogOHB4O1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZS1ib3R0b20ge1xcbiAgbWluLWhlaWdodDogNDJweDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUtc29ydC1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMTEwJTtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUgdGgsXFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUgdGQge1xcbiAgcGFkZGluZzogNHB4IDhweDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUgdGhlYWQgdHIge1xcbiAgaGVpZ2h0OiA0MHB4O1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZSB0Ym9keSB0ZCB7XFxuICBoZWlnaHQ6IDI4cHg7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlLWJvdHRvbS1pdGVtIHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG5AbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5xLXRhYmxlLXRvcCB7XFxuICAgIG1pbi1oZWlnaHQ6IDQ4cHg7XFxuICB9XFxuICAucS10YWJsZS10b3AsXFxuICAucS10YWJsZS1ib3R0b20ge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDhweDtcXG4gICAgcGFkZGluZy1yaWdodDogOHB4O1xcbiAgfVxcbiAgLnEtdGFibGUtYm90dG9tIHtcXG4gICAgbWluLWhlaWdodDogNDJweDtcXG4gIH1cXG4gIC5xLXRhYmxlLXNvcnQtaWNvbiB7XFxuICAgIGZvbnQtc2l6ZTogMTEwJTtcXG4gIH1cXG4gIC5xLXRhYmxlIHRoLFxcbiAgLnEtdGFibGUgdGQge1xcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xcbiAgfVxcbiAgLnEtdGFibGUgdGhlYWQgdHIge1xcbiAgICBoZWlnaHQ6IDQwcHg7XFxuICB9XFxuICAucS10YWJsZSB0Ym9keSB0ZCB7XFxuICAgIGhlaWdodDogMjhweDtcXG4gIH1cXG4gIC5xLXRhYmxlLWJvdHRvbS1pdGVtIHtcXG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxuICB9XFxufVxcbi5xLXRhYmxlLWJvdHRvbSB7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjU0KTtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS10YWJsZSB7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjg3KTtcXG59XFxuLnEtdGFibGUgdGhlYWQsXFxuLnEtdGFibGUgdHIsXFxuLnEtdGFibGUgdGgsXFxuLnEtdGFibGUgdGQge1xcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS10YWJsZSB0aCB7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjU0KTtcXG59XFxuLnEtdGFibGUgdGguc29ydGFibGU6aG92ZXIsXFxuLnEtdGFibGUgdGguc29ydGVkIHtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuODcpO1xcbn1cXG4ucS10YWJsZSB0Ym9keSB0ci5zZWxlY3RlZCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDYpO1xcbn1cXG4ucS10YWJsZSB0Ym9keSB0cjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMDMpO1xcbn1cXG4ucS10YWJsZS1kYXJrIHtcXG4gIGNvbG9yOiAjZWVlO1xcbn1cXG4ucS10YWJsZS1kYXJrIC5xLXRhYmxlLWJvdHRvbSxcXG4ucS10YWJsZS1kYXJrIC5xLXRhYmxlLXRvcCB7XFxuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjY0KTtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpO1xcbn1cXG4ucS10YWJsZS1kYXJrIHRoZWFkLFxcbi5xLXRhYmxlLWRhcmsgdHIsXFxuLnEtdGFibGUtZGFyayB0aCxcXG4ucS10YWJsZS1kYXJrIHRkIHtcXG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjEyKTtcXG59XFxuLnEtdGFibGUtZGFyayB0aCB7XFxuICBjb2xvcjogcmdiYSgyNTUsMjU1LDI1NSwwLjY0KTtcXG59XFxuLnEtdGFibGUtZGFyayB0aC5zb3J0YWJsZTpob3ZlcixcXG4ucS10YWJsZS1kYXJrIHRoLnNvcnRlZCB7XFxuICBjb2xvcjogI2VlZTtcXG59XFxuLnEtdGFibGUtZGFyayB0Ym9keSB0ci5zZWxlY3RlZCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMik7XFxufVxcbi5xLXRhYmxlLWRhcmsgdGJvZHkgdHI6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjEpO1xcbn1cXG4ucS10aW1lbGluZSB7XFxuICBwYWRkaW5nOiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBsaXN0LXN0eWxlOiBub25lO1xcbn1cXG4ucS10aW1lbGluZSBoNiB7XFxuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcXG59XFxuLnEtdGltZWxpbmUtdGl0bGUge1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XFxufVxcbi5xLXRpbWVsaW5lLXN1YnRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG4gIG9wYWNpdHk6IDAuNDtcXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XFxuICBsZXR0ZXItc3BhY2luZzogMXB4O1xcbiAgZm9udC13ZWlnaHQ6IDcwMDtcXG59XFxuLnEtdGltZWxpbmUtZG90IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTVweDtcXG59XFxuLnEtdGltZWxpbmUtZG90OmJlZm9yZSxcXG4ucS10aW1lbGluZS1kb3Q6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLnEtdGltZWxpbmUtZG90OmJlZm9yZSB7XFxuICBib3JkZXI6IDNweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XFxuICBoZWlnaHQ6IDE1cHg7XFxuICB3aWR0aDogMTVweDtcXG4gIHRvcDogNHB4O1xcbiAgbGVmdDogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2UtaW4tb3V0LCBib3JkZXIgMC4zcyBlYXNlLWluLW91dDtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcyBlYXNlLWluLW91dCwgYm9yZGVyIDAuM3MgZWFzZS1pbi1vdXQ7XFxufVxcbi5xLXRpbWVsaW5lLWRvdDphZnRlciB7XFxuICB3aWR0aDogM3B4O1xcbiAgb3BhY2l0eTogMC40O1xcbiAgdG9wOiAyNHB4O1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogNnB4O1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtZG90IHtcXG4gIHdpZHRoOiAzMXB4O1xcbiAgbGVmdDogLThweDtcXG59XFxuLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLWRvdDpiZWZvcmUge1xcbiAgaGVpZ2h0OiAzMXB4O1xcbiAgd2lkdGg6IDMxcHg7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1kb3Q6YWZ0ZXIge1xcbiAgdG9wOiA0MXB4O1xcbiAgbGVmdDogMTRweDtcXG59XFxuLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLXN1YnRpdGxlIHtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxufVxcbi5xLXRpbWVsaW5lLWRvdCAucS1pY29uIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbiAgaGVpZ2h0OiAzOHB4O1xcbiAgY29sb3I6ICNmZmY7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZS1pbi1vdXQ7XFxuICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzIGVhc2UtaW4tb3V0O1xcbn1cXG4ucS10aW1lbGluZS1kYXJrIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS10aW1lbGluZS1kYXJrIC5xLXRpbWVsaW5lLXN1YnRpdGxlIHtcXG4gIG9wYWNpdHk6IDAuNztcXG59XFxuLnEtdGltZWxpbmUtZW50cnkge1xcbiAgcGFkZGluZy1sZWZ0OiA0MHB4O1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgbGluZS1oZWlnaHQ6IDIycHg7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5Omxhc3QtY2hpbGQge1xcbiAgcGFkZGluZy1ib3R0b206IDA7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5Omxhc3QtY2hpbGQgLnEtdGltZWxpbmUtZG90OmFmdGVyIHtcXG4gIGNvbnRlbnQ6IG5vbmU7XFxufVxcbi5xLXRpbWVsaW5lLWhvdmVyIC5xLXRpbWVsaW5lLWVudHJ5OmhvdmVyIC5xLXRpbWVsaW5lLWRvdDpiZWZvcmUge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXI6IDNweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXRpbWVsaW5lLWhvdmVyIC5xLXRpbWVsaW5lLWVudHJ5LnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uOmhvdmVyIC5xLXRpbWVsaW5lLWRvdCAucS1pY29uIHtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XFxufVxcbi5xLXRpbWVsaW5lLWhlYWRpbmcge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucS10aW1lbGluZS1oZWFkaW5nOmZpcnN0LWNoaWxkIC5xLXRpbWVsaW5lLWhlYWRpbmctdGl0bGUge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5xLXRpbWVsaW5lLWhlYWRpbmc6bGFzdC1jaGlsZCAucS10aW1lbGluZS1oZWFkaW5nLXRpdGxlIHtcXG4gIHBhZGRpbmctYm90dG9tOiAwO1xcbn1cXG4ucS10aW1lbGluZS1oZWFkaW5nLXRpdGxlIHtcXG4gIHBhZGRpbmc6IDMycHggMDtcXG4gIG1hcmdpbjogMDtcXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtaGVhZGluZyB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcXG4gICAgZm9udC1zaXplOiAyMDAlO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1oZWFkaW5nID4gZGl2IHtcXG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtaGVhZGluZy10aXRsZSB7XFxuICAgIG1hcmdpbi1sZWZ0OiAtNTBweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUge1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnkge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1yb3c7XFxuICAgIHBhZGRpbmc6IDA7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLXN1YnRpdGxlLFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1kb3QsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1zdWJ0aXRsZSB7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xcbiAgICB3aWR0aDogMzUlO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1kb3Qge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgcGFkZGluZy10b3A6IDhweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtc3VidGl0bGUge1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtaGVhZGluZy10aXRsZSB7XFxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgbWFyZ2luLWxlZnQ6IDA7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1zdWJ0aXRsZSxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZG90LFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIG1hcmdpbjogMDtcXG4gICAgcGFkZGluZzogMDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZG90IHtcXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgICBsZWZ0OiA1MCU7XFxuICAgIG1hcmdpbi1sZWZ0OiAtNy4xNXB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtZG90IHtcXG4gICAgbGVmdDogNTAlO1xcbiAgICBtYXJnaW4tbGVmdDogLTE1cHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLXN1YnRpdGxlLFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgd2lkdGg6IDUwJTtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktbGVmdCAucS10aW1lbGluZS1jb250ZW50LFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS1yaWdodCAucS10aW1lbGluZS1zdWJ0aXRsZSB7XFxuICAgIGZsb2F0OiBsZWZ0O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAzMHB4O1xcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktbGVmdCAucS10aW1lbGluZS1zdWJ0aXRsZSxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktcmlnaHQgLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIGZsb2F0OiByaWdodDtcXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgcGFkZGluZy1sZWZ0OiAzMHB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIHBhZGRpbmctdG9wOiA4cHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5IHtcXG4gICAgcGFkZGluZy1ib3R0b206IDI0cHg7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICB9XFxufVxcbi5xLXRvZ2dsZS1iYXNlIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTJweDtcXG4gIGJvcmRlci1yYWRpdXM6IDMwcHg7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLXRvZ2dsZS1oYW5kbGUge1xcbiAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDQ1MG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IGFsbCA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMjFweDtcXG4gIGhlaWdodDogMjFweDtcXG4gIGxpbmUtaGVpZ2h0OiAyMXB4O1xcbn1cXG4ucS10b2dnbGUgLnEtb3B0aW9uLWlubmVyIHtcXG4gIGhlaWdodDogMjFweDtcXG4gIHdpZHRoOiA0MHB4O1xcbiAgbWluLXdpZHRoOiA0MHB4O1xcbiAgcGFkZGluZzogNXB4IDA7XFxufVxcbi5xLXRvZ2dsZSAucS1vcHRpb24taW5uZXIuYWN0aXZlIC5xLXRvZ2dsZS1oYW5kbGUge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgbGVmdDogMTlweDtcXG59XFxuLnEtdG9nZ2xlIC5xLW9wdGlvbi1pbm5lci5hY3RpdmUgLnEtdG9nZ2xlLWljb24ge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLXRvb2xiYXIge1xcbiAgcGFkZGluZzogNHB4IDEycHg7XFxuICBtaW4taGVpZ2h0OiA1MHB4O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4ucS10b29sYmFyLWludmVydGVkIHtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxufVxcbi5xLXRvb2xiYXItdGl0bGUge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAtbXMtZmxleDogMSAxIDAlO1xcbiAgICAgICAgICBmbGV4OiAxIDEgMCU7XFxuICBtaW4td2lkdGg6IDFweDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGZvbnQtc2l6ZTogMThweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBwYWRkaW5nOiAwIDEycHg7XFxufVxcbi5xLXRvb2xiYXItc3VidGl0bGUge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgb3BhY2l0eTogMC43O1xcbn1cXG4ucS10b29sYmFyLXRpdGxlLFxcbi5xLXRvb2xiYXItc3VidGl0bGUge1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtdG9vbHRpcCB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBjb2xvcjogI2ZhZmFmYTtcXG4gIGJhY2tncm91bmQ6ICM3NDc0NzQ7XFxuICB6LWluZGV4OiA5MDAwO1xcbiAgcGFkZGluZzogMTBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxuICBvdmVyZmxvdy14OiBoaWRkZW47XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtdHJlZS1ub2RlIHtcXG4gIG1hcmdpbjogMDtcXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmc6IDAgMCAzcHggMjJweDtcXG59XFxuLnEtdHJlZS1ub2RlOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAtM3B4O1xcbiAgYm90dG9tOiAwO1xcbiAgd2lkdGg6IDFweDtcXG4gIHJpZ2h0OiBhdXRvO1xcbiAgbGVmdDogLTEzcHg7XFxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtdHJlZS1ub2RlOmxhc3QtY2hpbGQ6YWZ0ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtdHJlZS1ub2RlLWhlYWRlcjpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC0zcHg7XFxuICBib3R0b206IDUwJTtcXG4gIHdpZHRoOiAzNXB4O1xcbiAgbGVmdDogLTM1cHg7XFxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXRyZWUtY2hpbGRyZW4ge1xcbiAgcGFkZGluZy1sZWZ0OiAyNXB4O1xcbn1cXG4ucS10cmVlLWNoaWxkcmVuLmRpc2FibGVkIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS10cmVlLW5vZGUtYm9keSB7XFxuICBwYWRkaW5nOiA1cHggMCA4cHggNXB4O1xcbn1cXG4ucS10cmVlLW5vZGUtcGFyZW50IHtcXG4gIHBhZGRpbmctbGVmdDogMnB4O1xcbn1cXG4ucS10cmVlLW5vZGUtcGFyZW50ID4gLnEtdHJlZS1ub2RlLWhlYWRlcjpiZWZvcmUge1xcbiAgd2lkdGg6IDE1cHg7XFxuICBsZWZ0OiAtMTVweDtcXG59XFxuLnEtdHJlZS1ub2RlLXBhcmVudCA+IC5xLXRyZWUtbm9kZS1jb2xsYXBzaWJsZSA+IC5xLXRyZWUtbm9kZS1ib2R5IHtcXG4gIHBhZGRpbmc6IDVweCAwIDhweCAyN3B4O1xcbn1cXG4ucS10cmVlLW5vZGUtcGFyZW50ID4gLnEtdHJlZS1ub2RlLWNvbGxhcHNpYmxlID4gLnEtdHJlZS1ub2RlLWJvZHk6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICB3aWR0aDogMXB4O1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgcmlnaHQ6IGF1dG87XFxuICBsZWZ0OiAxMnB4O1xcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxuICBib3R0b206IDUwcHg7XFxufVxcbi5xLXRyZWUtbm9kZS1saW5rIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtdHJlZS1ub2RlLXNlbGVjdGVkIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xNSk7XFxufVxcbi5xLXRyZWUtZGFyayAucS10cmVlLW5vZGUtc2VsZWN0ZWQge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjQpO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtdHJlZS1ub2RlLWxpbms6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEpO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtdHJlZS1kYXJrIC5xLXRyZWUtbm9kZS1saW5rOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zKTtcXG59XFxuLnEtdHJlZS1ub2RlLWhlYWRlciB7XFxuICBwYWRkaW5nOiA0cHg7XFxuICBtYXJnaW4tdG9wOiAzcHg7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxufVxcbi5xLXRyZWUtbm9kZS1oZWFkZXIuZGlzYWJsZWQge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5xLXRyZWUtaWNvbiB7XFxuICBmb250LXNpemU6IDEuNWVtO1xcbn1cXG4ucS10cmVlLWltZyB7XFxuICBoZWlnaHQ6IDNlbTtcXG59XFxuLnEtdHJlZS1pbWcuYXZhdGFyIHtcXG4gIHdpZHRoOiAyZW07XFxuICBoZWlnaHQ6IDJlbTtcXG59XFxuLnEtdHJlZS1hcnJvdyB7XFxuICBmb250LXNpemU6IDFyZW07XFxuICB3aWR0aDogMXJlbTtcXG4gIGhlaWdodDogMXJlbTtcXG59XFxuLnEtdHJlZS1hcnJvdy1yb3RhdGUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcXG59XFxuW2Rpcj1ydGxdIC5xLXRyZWUtYXJyb3cge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuW2Rpcj1ydGxdIC5xLXRyZWUtYXJyb3ctcm90YXRlIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS10cmVlID4gLnEtdHJlZS1ub2RlIHtcXG4gIHBhZGRpbmc6IDA7XFxufVxcbi5xLXRyZWUgPiAucS10cmVlLW5vZGU6YWZ0ZXIsXFxuLnEtdHJlZSA+IC5xLXRyZWUtbm9kZSA+IC5xLXRyZWUtbm9kZS1oZWFkZXI6YmVmb3JlIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXRyZWUgPiAucS10cmVlLW5vZGUtY2hpbGQgPiAucS10cmVlLW5vZGUtaGVhZGVyIHtcXG4gIHBhZGRpbmctbGVmdDogMjRweDtcXG59XFxuLnEtdXBsb2FkZXItZXhwYW5kZWQgLnEtaWYge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xcbn1cXG4ucS11cGxvYWRlci1pbnB1dCB7XFxuICBvcGFjaXR5OiAwO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBmb250LXNpemU6IDA7XFxufVxcbi5xLXVwbG9hZGVyLXBpY2stYnV0dG9uW2Rpc2FibGVkXSAucS11cGxvYWRlci1pbnB1dCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS11cGxvYWRlci1maWxlcyB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgbWF4LWhlaWdodDogNTAwcHg7XFxufVxcbi5xLXVwbG9hZGVyLWZpbGVzLW5vLWJvcmRlciAucS11cGxvYWRlci1maWxlcyB7XFxuICBib3JkZXItdG9wOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5xLXVwbG9hZGVyLWZpbGU6bm90KDpsYXN0LWNoaWxkKSB7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UwZTBlMDtcXG59XFxuLnEtdXBsb2FkZXItcHJvZ3Jlc3MtYmcsXFxuLnEtdXBsb2FkZXItcHJvZ3Jlc3MtdGV4dCB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtdXBsb2FkZXItcHJvZ3Jlc3MtYmcge1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgb3BhY2l0eTogMC4yO1xcbn1cXG4ucS11cGxvYWRlci1wcm9ncmVzcy10ZXh0IHtcXG4gIGZvbnQtc2l6ZTogNDBweDtcXG4gIG9wYWNpdHk6IDAuMTtcXG4gIHJpZ2h0OiA0NHB4O1xcbiAgYm90dG9tOiAwO1xcbn1cXG4ucS11cGxvYWRlci1kbmQge1xcbiAgb3V0bGluZTogMnB4IGRhc2hlZCBjdXJyZW50Q29sb3I7XFxuICBvdXRsaW5lLW9mZnNldDogLTZweDtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTtcXG59XFxuLnEtdXBsb2FkZXItZG5kLmludmVydGVkIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcXG59XFxuLnEtdXBsb2FkZXItZGFyayAucS11cGxvYWRlci1maWxlcyB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNhN2E3YTc7XFxufVxcbi5xLXVwbG9hZGVyLWRhcmsgLnEtdXBsb2FkZXItYmcge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLXVwbG9hZGVyLWRhcmsgLnEtdXBsb2FkZXItcHJvZ3Jlc3MtdGV4dCB7XFxuICBvcGFjaXR5OiAwLjI7XFxufVxcbi5xLXVwbG9hZGVyLWRhcmsgLnEtdXBsb2FkZXItZmlsZTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLXEtY29sb3ItZGFyayk7XFxufVxcbmltZy5yZXNwb25zaXZlIHtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIGhlaWdodDogYXV0bztcXG59XFxuaW1nLmF2YXRhciB7XFxuICB3aWR0aDogNTBweDtcXG4gIGhlaWdodDogNTBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnEtdmlkZW8ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxufVxcbi5xLXZpZGVvIGlmcmFtZSxcXG4ucS12aWRlbyBvYmplY3QsXFxuLnEtdmlkZW8gZW1iZWQge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbjpyb290IHtcXG4gIC0tcS1jb2xvci1wcmltYXJ5OiAjMDI3YmUzO1xcbiAgLS1xLWNvbG9yLXNlY29uZGFyeTogIzI2YTY5YTtcXG4gIC0tcS1jb2xvci10ZXJ0aWFyeTogIzU1NTtcXG4gIC0tcS1jb2xvci1wb3NpdGl2ZTogIzIxYmE0NTtcXG4gIC0tcS1jb2xvci1uZWdhdGl2ZTogI2RiMjgyODtcXG4gIC0tcS1jb2xvci1uZWdhdGl2ZS1sOiAjZWM4YjhiO1xcbiAgLS1xLWNvbG9yLWluZm86ICMzMWNjZWM7XFxuICAtLXEtY29sb3Itd2FybmluZzogI2YyYzAzNztcXG4gIC0tcS1jb2xvci13YXJuaW5nLWw6ICNmOGRkOTM7XFxuICAtLXEtY29sb3ItbGlnaHQ6ICNiZGJkYmQ7XFxuICAtLXEtY29sb3ItbGlnaHQtZDogI2FhYTtcXG4gIC0tcS1jb2xvci1mYWRlZDogIzc3NztcXG4gIC0tcS1jb2xvci1kYXJrOiAjNDI0MjQyO1xcbn1cXG4udGV4dC1wcmltYXJ5IHtcXG4gIGNvbG9yOiAjMDI3YmUzICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1wcmltYXJ5KSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHJpbWFyeSB7XFxuICBiYWNrZ3JvdW5kOiAjMDI3YmUzICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLXByaW1hcnkpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXNlY29uZGFyeSB7XFxuICBjb2xvcjogIzI2YTY5YSAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xcbn1cXG4uYmctc2Vjb25kYXJ5IHtcXG4gIGJhY2tncm91bmQ6ICMyNmE2OWEgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3Itc2Vjb25kYXJ5KSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZXJ0aWFyeSB7XFxuICBjb2xvcjogIzU1NSAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItdGVydGlhcnkpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZXJ0aWFyeSB7XFxuICBiYWNrZ3JvdW5kOiAjNTU1ICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLXRlcnRpYXJ5KSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1mYWRlZCB7XFxuICBjb2xvcjogIzc3NyAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItZmFkZWQpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1mYWRlZCB7XFxuICBiYWNrZ3JvdW5kOiAjNzc3ICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLWZhZGVkKSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wb3NpdGl2ZSB7XFxuICBjb2xvcjogIzIxYmE0NSAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItcG9zaXRpdmUpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wb3NpdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiAjMjFiYTQ1ICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLXBvc2l0aXZlKSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1uZWdhdGl2ZSB7XFxuICBjb2xvcjogI2RiMjgyOCAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1uZWdhdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiAjZGIyODI4ICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmZvIHtcXG4gIGNvbG9yOiAjMzFjY2VjICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1pbmZvKSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5mbyB7XFxuICBiYWNrZ3JvdW5kOiAjMzFjY2VjICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLWluZm8pICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXdhcm5pbmcge1xcbiAgY29sb3I6ICNmMmMwMzcgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXdhcm5pbmcpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy13YXJuaW5nIHtcXG4gIGJhY2tncm91bmQ6ICNmMmMwMzcgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3Itd2FybmluZykgIWltcG9ydGFudDtcXG59XFxuLnRleHQtd2hpdGUge1xcbiAgY29sb3I6ICNmZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLXdoaXRlIHtcXG4gIGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmxhY2sge1xcbiAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsYWNrIHtcXG4gIGJhY2tncm91bmQ6ICMwMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQge1xcbiAgY29sb3I6ICNiZGJkYmQgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWxpZ2h0KSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQge1xcbiAgYmFja2dyb3VuZDogI2JkYmRiZCAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1saWdodCkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGFyayB7XFxuICBjb2xvcjogIzQyNDI0MiAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItZGFyaykgIWltcG9ydGFudDtcXG59XFxuLmJnLWRhcmsge1xcbiAgYmFja2dyb3VuZDogIzQyNDI0MiAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1kYXJrKSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10cmFuc3BhcmVudCB7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG59XFxuLmJnLXRyYW5zcGFyZW50IHtcXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZCB7XFxuICBjb2xvcjogI2Y0NDMzNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMSB7XFxuICBjb2xvcjogI2ZmZWJlZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMiB7XFxuICBjb2xvcjogI2ZmY2RkMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMyB7XFxuICBjb2xvcjogI2VmOWE5YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtNCB7XFxuICBjb2xvcjogI2U1NzM3MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtNSB7XFxuICBjb2xvcjogI2VmNTM1MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtNiB7XFxuICBjb2xvcjogI2Y0NDMzNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtNyB7XFxuICBjb2xvcjogI2U1MzkzNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtOCB7XFxuICBjb2xvcjogI2QzMmYyZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtOSB7XFxuICBjb2xvcjogI2M2MjgyOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMTAge1xcbiAgY29sb3I6ICNiNzFjMWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTExIHtcXG4gIGNvbG9yOiAjZmY4YTgwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0xMiB7XFxuICBjb2xvcjogI2ZmNTI1MiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMTMge1xcbiAgY29sb3I6ICNmZjE3NDQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTE0IHtcXG4gIGNvbG9yOiAjZDUwMDAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmsge1xcbiAgY29sb3I6ICNlOTFlNjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0xIHtcXG4gIGNvbG9yOiAjZmNlNGVjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMiB7XFxuICBjb2xvcjogI2Y4YmJkMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTMge1xcbiAgY29sb3I6ICNmNDhmYjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay00IHtcXG4gIGNvbG9yOiAjZjA2MjkyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstNSB7XFxuICBjb2xvcjogI2VjNDA3YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTYge1xcbiAgY29sb3I6ICNlOTFlNjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay03IHtcXG4gIGNvbG9yOiAjZDgxYjYwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstOCB7XFxuICBjb2xvcjogI2MyMTg1YiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTkge1xcbiAgY29sb3I6ICNhZDE0NTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0xMCB7XFxuICBjb2xvcjogIzg4MGU0ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTExIHtcXG4gIGNvbG9yOiAjZmY4MGFiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMTIge1xcbiAgY29sb3I6ICNmZjQwODEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0xMyB7XFxuICBjb2xvcjogI2Y1MDA1NyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTE0IHtcXG4gIGNvbG9yOiAjYzUxMTYyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZSB7XFxuICBjb2xvcjogIzljMjdiMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMSB7XFxuICBjb2xvcjogI2YzZTVmNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMiB7XFxuICBjb2xvcjogI2UxYmVlNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMyB7XFxuICBjb2xvcjogI2NlOTNkOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtNCB7XFxuICBjb2xvcjogI2JhNjhjOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtNSB7XFxuICBjb2xvcjogI2FiNDdiYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtNiB7XFxuICBjb2xvcjogIzljMjdiMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtNyB7XFxuICBjb2xvcjogIzhlMjRhYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtOCB7XFxuICBjb2xvcjogIzdiMWZhMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtOSB7XFxuICBjb2xvcjogIzZhMWI5YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMTAge1xcbiAgY29sb3I6ICM0YTE0OGMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTExIHtcXG4gIGNvbG9yOiAjZWE4MGZjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0xMiB7XFxuICBjb2xvcjogI2UwNDBmYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMTMge1xcbiAgY29sb3I6ICNkNTAwZjkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTE0IHtcXG4gIGNvbG9yOiAjYTBmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlIHtcXG4gIGNvbG9yOiAjNjczYWI3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTEge1xcbiAgY29sb3I6ICNlZGU3ZjYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMiB7XFxuICBjb2xvcjogI2QxYzRlOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0zIHtcXG4gIGNvbG9yOiAjYjM5ZGRiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTQge1xcbiAgY29sb3I6ICM5NTc1Y2QgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtNSB7XFxuICBjb2xvcjogIzdlNTdjMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS02IHtcXG4gIGNvbG9yOiAjNjczYWI3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTcge1xcbiAgY29sb3I6ICM1ZTM1YjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtOCB7XFxuICBjb2xvcjogIzUxMmRhOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS05IHtcXG4gIGNvbG9yOiAjNDUyN2EwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTEwIHtcXG4gIGNvbG9yOiAjMzExYjkyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTExIHtcXG4gIGNvbG9yOiAjYjM4OGZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTEyIHtcXG4gIGNvbG9yOiAjN2M0ZGZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTEzIHtcXG4gIGNvbG9yOiAjNjUxZmZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTE0IHtcXG4gIGNvbG9yOiAjNjIwMGVhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnbyB7XFxuICBjb2xvcjogIzNmNTFiNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMSB7XFxuICBjb2xvcjogI2U4ZWFmNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMiB7XFxuICBjb2xvcjogI2M1Y2FlOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMyB7XFxuICBjb2xvcjogIzlmYThkYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tNCB7XFxuICBjb2xvcjogIzc5ODZjYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tNSB7XFxuICBjb2xvcjogIzVjNmJjMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tNiB7XFxuICBjb2xvcjogIzNmNTFiNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tNyB7XFxuICBjb2xvcjogIzM5NDlhYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tOCB7XFxuICBjb2xvcjogIzMwM2Y5ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tOSB7XFxuICBjb2xvcjogIzI4MzU5MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMTAge1xcbiAgY29sb3I6ICMxYTIzN2UgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTExIHtcXG4gIGNvbG9yOiAjOGM5ZWZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0xMiB7XFxuICBjb2xvcjogIzUzNmRmZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMTMge1xcbiAgY29sb3I6ICMzZDVhZmUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTE0IHtcXG4gIGNvbG9yOiAjMzA0ZmZlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUge1xcbiAgY29sb3I6ICMyMTk2ZjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0xIHtcXG4gIGNvbG9yOiAjZTNmMmZkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMiB7XFxuICBjb2xvcjogI2JiZGVmYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTMge1xcbiAgY29sb3I6ICM5MGNhZjkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS00IHtcXG4gIGNvbG9yOiAjNjRiNWY2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtNSB7XFxuICBjb2xvcjogIzQyYTVmNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTYge1xcbiAgY29sb3I6ICMyMTk2ZjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS03IHtcXG4gIGNvbG9yOiAjMWU4OGU1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtOCB7XFxuICBjb2xvcjogIzE5NzZkMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTkge1xcbiAgY29sb3I6ICMxNTY1YzAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0xMCB7XFxuICBjb2xvcjogIzBkNDdhMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTExIHtcXG4gIGNvbG9yOiAjODJiMWZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMTIge1xcbiAgY29sb3I6ICM0NDhhZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0xMyB7XFxuICBjb2xvcjogIzI5NzlmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTE0IHtcXG4gIGNvbG9yOiAjMjk2MmZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUge1xcbiAgY29sb3I6ICMwM2E5ZjQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0xIHtcXG4gIGNvbG9yOiAjZTFmNWZlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMiB7XFxuICBjb2xvcjogI2IzZTVmYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTMge1xcbiAgY29sb3I6ICM4MWQ0ZmEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS00IHtcXG4gIGNvbG9yOiAjNGZjM2Y3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtNSB7XFxuICBjb2xvcjogIzI5YjZmNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTYge1xcbiAgY29sb3I6ICMwM2E5ZjQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS03IHtcXG4gIGNvbG9yOiAjMDM5YmU1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtOCB7XFxuICBjb2xvcjogIzAyODhkMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTkge1xcbiAgY29sb3I6ICMwMjc3YmQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0xMCB7XFxuICBjb2xvcjogIzAxNTc5YiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTExIHtcXG4gIGNvbG9yOiAjODBkOGZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMTIge1xcbiAgY29sb3I6ICM0MGM0ZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0xMyB7XFxuICBjb2xvcjogIzAwYjBmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTE0IHtcXG4gIGNvbG9yOiAjMDA5MWVhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4ge1xcbiAgY29sb3I6ICMwMGJjZDQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0xIHtcXG4gIGNvbG9yOiAjZTBmN2ZhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMiB7XFxuICBjb2xvcjogI2IyZWJmMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTMge1xcbiAgY29sb3I6ICM4MGRlZWEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi00IHtcXG4gIGNvbG9yOiAjNGRkMGUxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tNSB7XFxuICBjb2xvcjogIzI2YzZkYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTYge1xcbiAgY29sb3I6ICMwMGJjZDQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi03IHtcXG4gIGNvbG9yOiAjMDBhY2MxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tOCB7XFxuICBjb2xvcjogIzAwOTdhNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTkge1xcbiAgY29sb3I6ICMwMDgzOGYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0xMCB7XFxuICBjb2xvcjogIzAwNjA2NCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTExIHtcXG4gIGNvbG9yOiAjODRmZmZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMTIge1xcbiAgY29sb3I6ICMxOGZmZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0xMyB7XFxuICBjb2xvcjogIzAwZTVmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTE0IHtcXG4gIGNvbG9yOiAjMDBiOGQ0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwge1xcbiAgY29sb3I6ICMwMDk2ODggIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0xIHtcXG4gIGNvbG9yOiAjZTBmMmYxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMiB7XFxuICBjb2xvcjogI2IyZGZkYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTMge1xcbiAgY29sb3I6ICM4MGNiYzQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC00IHtcXG4gIGNvbG9yOiAjNGRiNmFjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtNSB7XFxuICBjb2xvcjogIzI2YTY5YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTYge1xcbiAgY29sb3I6ICMwMDk2ODggIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC03IHtcXG4gIGNvbG9yOiAjMDA4OTdiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtOCB7XFxuICBjb2xvcjogIzAwNzk2YiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTkge1xcbiAgY29sb3I6ICMwMDY5NWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0xMCB7XFxuICBjb2xvcjogIzAwNGQ0MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTExIHtcXG4gIGNvbG9yOiAjYTdmZmViICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMTIge1xcbiAgY29sb3I6ICM2NGZmZGEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0xMyB7XFxuICBjb2xvcjogIzFkZTliNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTE0IHtcXG4gIGNvbG9yOiAjMDBiZmE1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuIHtcXG4gIGNvbG9yOiAjNGNhZjUwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTEge1xcbiAgY29sb3I6ICNlOGY1ZTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMiB7XFxuICBjb2xvcjogI2M4ZTZjOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0zIHtcXG4gIGNvbG9yOiAjYTVkNmE3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTQge1xcbiAgY29sb3I6ICM4MWM3ODQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tNSB7XFxuICBjb2xvcjogIzY2YmI2YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi02IHtcXG4gIGNvbG9yOiAjNGNhZjUwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTcge1xcbiAgY29sb3I6ICM0M2EwNDcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tOCB7XFxuICBjb2xvcjogIzM4OGUzYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi05IHtcXG4gIGNvbG9yOiAjMmU3ZDMyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTEwIHtcXG4gIGNvbG9yOiAjMWI1ZTIwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTExIHtcXG4gIGNvbG9yOiAjYjlmNmNhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTEyIHtcXG4gIGNvbG9yOiAjNjlmMGFlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTEzIHtcXG4gIGNvbG9yOiAjMDBlNjc2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTE0IHtcXG4gIGNvbG9yOiAjMDBjODUzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuIHtcXG4gIGNvbG9yOiAjOGJjMzRhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTEge1xcbiAgY29sb3I6ICNmMWY4ZTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMiB7XFxuICBjb2xvcjogI2RjZWRjOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0zIHtcXG4gIGNvbG9yOiAjYzVlMWE1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTQge1xcbiAgY29sb3I6ICNhZWQ1ODEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tNSB7XFxuICBjb2xvcjogIzljY2M2NSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi02IHtcXG4gIGNvbG9yOiAjOGJjMzRhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTcge1xcbiAgY29sb3I6ICM3Y2IzNDIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tOCB7XFxuICBjb2xvcjogIzY4OWYzOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi05IHtcXG4gIGNvbG9yOiAjNTU4YjJmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTEwIHtcXG4gIGNvbG9yOiAjMzM2OTFlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTExIHtcXG4gIGNvbG9yOiAjY2NmZjkwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTEyIHtcXG4gIGNvbG9yOiAjYjJmZjU5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTEzIHtcXG4gIGNvbG9yOiAjNzZmZjAzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTE0IHtcXG4gIGNvbG9yOiAjNjRkZDE3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUge1xcbiAgY29sb3I6ICNjZGRjMzkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0xIHtcXG4gIGNvbG9yOiAjZjlmYmU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMiB7XFxuICBjb2xvcjogI2YwZjRjMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTMge1xcbiAgY29sb3I6ICNlNmVlOWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS00IHtcXG4gIGNvbG9yOiAjZGNlNzc1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtNSB7XFxuICBjb2xvcjogI2Q0ZTE1NyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTYge1xcbiAgY29sb3I6ICNjZGRjMzkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS03IHtcXG4gIGNvbG9yOiAjYzBjYTMzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtOCB7XFxuICBjb2xvcjogI2FmYjQyYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTkge1xcbiAgY29sb3I6ICM5ZTlkMjQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0xMCB7XFxuICBjb2xvcjogIzgyNzcxNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTExIHtcXG4gIGNvbG9yOiAjZjRmZjgxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMTIge1xcbiAgY29sb3I6ICNlZWZmNDEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0xMyB7XFxuICBjb2xvcjogI2M2ZmYwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTE0IHtcXG4gIGNvbG9yOiAjYWVlYTAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdyB7XFxuICBjb2xvcjogI2ZmZWIzYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMSB7XFxuICBjb2xvcjogI2ZmZmRlNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMiB7XFxuICBjb2xvcjogI2ZmZjljNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMyB7XFxuICBjb2xvcjogI2ZmZjU5ZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctNCB7XFxuICBjb2xvcjogI2ZmZjE3NiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctNSB7XFxuICBjb2xvcjogI2ZmZWU1OCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctNiB7XFxuICBjb2xvcjogI2ZmZWIzYiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctNyB7XFxuICBjb2xvcjogI2ZkZDgzNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctOCB7XFxuICBjb2xvcjogI2ZiYzAyZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctOSB7XFxuICBjb2xvcjogI2Y5YTgyNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMTAge1xcbiAgY29sb3I6ICNmNTdmMTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTExIHtcXG4gIGNvbG9yOiAjZmZmZjhkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0xMiB7XFxuICBjb2xvcjogI2ZmMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMTMge1xcbiAgY29sb3I6ICNmZmVhMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTE0IHtcXG4gIGNvbG9yOiAjZmZkNjAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyIHtcXG4gIGNvbG9yOiAjZmZjMTA3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTEge1xcbiAgY29sb3I6ICNmZmY4ZTEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMiB7XFxuICBjb2xvcjogI2ZmZWNiMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0zIHtcXG4gIGNvbG9yOiAjZmZlMDgyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTQge1xcbiAgY29sb3I6ICNmZmQ1NGYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItNSB7XFxuICBjb2xvcjogI2ZmY2EyOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci02IHtcXG4gIGNvbG9yOiAjZmZjMTA3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTcge1xcbiAgY29sb3I6ICNmZmIzMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItOCB7XFxuICBjb2xvcjogI2ZmYTAwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci05IHtcXG4gIGNvbG9yOiAjZmY4ZjAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTEwIHtcXG4gIGNvbG9yOiAjZmY2ZjAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTExIHtcXG4gIGNvbG9yOiAjZmZlNTdmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTEyIHtcXG4gIGNvbG9yOiAjZmZkNzQwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTEzIHtcXG4gIGNvbG9yOiAjZmZjNDAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTE0IHtcXG4gIGNvbG9yOiAjZmZhYjAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZSB7XFxuICBjb2xvcjogI2ZmOTgwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMSB7XFxuICBjb2xvcjogI2ZmZjNlMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMiB7XFxuICBjb2xvcjogI2ZmZTBiMiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMyB7XFxuICBjb2xvcjogI2ZmY2M4MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtNCB7XFxuICBjb2xvcjogI2ZmYjc0ZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtNSB7XFxuICBjb2xvcjogI2ZmYTcyNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtNiB7XFxuICBjb2xvcjogI2ZmOTgwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtNyB7XFxuICBjb2xvcjogI2ZiOGMwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtOCB7XFxuICBjb2xvcjogI2Y1N2MwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtOSB7XFxuICBjb2xvcjogI2VmNmMwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMTAge1xcbiAgY29sb3I6ICNlNjUxMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTExIHtcXG4gIGNvbG9yOiAjZmZkMTgwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0xMiB7XFxuICBjb2xvcjogI2ZmYWI0MCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMTMge1xcbiAgY29sb3I6ICNmZjkxMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTE0IHtcXG4gIGNvbG9yOiAjZmY2ZDAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlIHtcXG4gIGNvbG9yOiAjZmY1NzIyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTEge1xcbiAgY29sb3I6ICNmYmU5ZTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMiB7XFxuICBjb2xvcjogI2ZmY2NiYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0zIHtcXG4gIGNvbG9yOiAjZmZhYjkxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTQge1xcbiAgY29sb3I6ICNmZjhhNjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtNSB7XFxuICBjb2xvcjogI2ZmNzA0MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS02IHtcXG4gIGNvbG9yOiAjZmY1NzIyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTcge1xcbiAgY29sb3I6ICNmNDUxMWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtOCB7XFxuICBjb2xvcjogI2U2NGExOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS05IHtcXG4gIGNvbG9yOiAjZDg0MzE1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTEwIHtcXG4gIGNvbG9yOiAjYmYzNjBjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTExIHtcXG4gIGNvbG9yOiAjZmY5ZTgwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTEyIHtcXG4gIGNvbG9yOiAjZmY2ZTQwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTEzIHtcXG4gIGNvbG9yOiAjZmYzZDAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTE0IHtcXG4gIGNvbG9yOiAjZGQyYzAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duIHtcXG4gIGNvbG9yOiAjNzk1NTQ4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTEge1xcbiAgY29sb3I6ICNlZmViZTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMiB7XFxuICBjb2xvcjogI2Q3Y2NjOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0zIHtcXG4gIGNvbG9yOiAjYmNhYWE0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTQge1xcbiAgY29sb3I6ICNhMTg4N2YgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tNSB7XFxuICBjb2xvcjogIzhkNmU2MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi02IHtcXG4gIGNvbG9yOiAjNzk1NTQ4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTcge1xcbiAgY29sb3I6ICM2ZDRjNDEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tOCB7XFxuICBjb2xvcjogIzVkNDAzNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi05IHtcXG4gIGNvbG9yOiAjNGUzNDJlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTEwIHtcXG4gIGNvbG9yOiAjM2UyNzIzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTExIHtcXG4gIGNvbG9yOiAjZDdjY2M4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTEyIHtcXG4gIGNvbG9yOiAjYmNhYWE0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTEzIHtcXG4gIGNvbG9yOiAjOGQ2ZTYzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTE0IHtcXG4gIGNvbG9yOiAjNWQ0MDM3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXkge1xcbiAgY29sb3I6ICM5ZTllOWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0xIHtcXG4gIGNvbG9yOiAjZmFmYWZhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMiB7XFxuICBjb2xvcjogI2Y1ZjVmNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTMge1xcbiAgY29sb3I6ICNlZWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS00IHtcXG4gIGNvbG9yOiAjZTBlMGUwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktNSB7XFxuICBjb2xvcjogI2JkYmRiZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTYge1xcbiAgY29sb3I6ICM5ZTllOWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS03IHtcXG4gIGNvbG9yOiAjNzU3NTc1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktOCB7XFxuICBjb2xvcjogIzYxNjE2MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTkge1xcbiAgY29sb3I6ICM0MjQyNDIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0xMCB7XFxuICBjb2xvcjogIzIxMjEyMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTExIHtcXG4gIGNvbG9yOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMTIge1xcbiAgY29sb3I6ICNlZWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0xMyB7XFxuICBjb2xvcjogI2JkYmRiZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTE0IHtcXG4gIGNvbG9yOiAjNjE2MTYxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleSB7XFxuICBjb2xvcjogIzYwN2Q4YiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMSB7XFxuICBjb2xvcjogI2VjZWZmMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMiB7XFxuICBjb2xvcjogI2NmZDhkYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMyB7XFxuICBjb2xvcjogI2IwYmVjNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktNCB7XFxuICBjb2xvcjogIzkwYTRhZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktNSB7XFxuICBjb2xvcjogIzc4OTA5YyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktNiB7XFxuICBjb2xvcjogIzYwN2Q4YiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktNyB7XFxuICBjb2xvcjogIzU0NmU3YSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktOCB7XFxuICBjb2xvcjogIzQ1NWE2NCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktOSB7XFxuICBjb2xvcjogIzM3NDc0ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMTAge1xcbiAgY29sb3I6ICMyNjMyMzggIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTExIHtcXG4gIGNvbG9yOiAjY2ZkOGRjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0xMiB7XFxuICBjb2xvcjogI2IwYmVjNSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMTMge1xcbiAgY29sb3I6ICM3ODkwOWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTE0IHtcXG4gIGNvbG9yOiAjNDU1YTY0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQge1xcbiAgYmFja2dyb3VuZDogI2Y0NDMzNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZWJlZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTIge1xcbiAgYmFja2dyb3VuZDogI2ZmY2RkMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTMge1xcbiAgYmFja2dyb3VuZDogI2VmOWE5YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTQge1xcbiAgYmFja2dyb3VuZDogI2U1NzM3MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTUge1xcbiAgYmFja2dyb3VuZDogI2VmNTM1MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTYge1xcbiAgYmFja2dyb3VuZDogI2Y0NDMzNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTcge1xcbiAgYmFja2dyb3VuZDogI2U1MzkzNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTgge1xcbiAgYmFja2dyb3VuZDogI2QzMmYyZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTkge1xcbiAgYmFja2dyb3VuZDogI2M2MjgyOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTEwIHtcXG4gIGJhY2tncm91bmQ6ICNiNzFjMWMgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY4YTgwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMTIge1xcbiAgYmFja2dyb3VuZDogI2ZmNTI1MiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNmZjE3NDQgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjZDUwMDAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rIHtcXG4gIGJhY2tncm91bmQ6ICNlOTFlNjMgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmNlNGVjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTIge1xcbiAgYmFja2dyb3VuZDogI2Y4YmJkMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0zIHtcXG4gIGJhY2tncm91bmQ6ICNmNDhmYjEgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstNCB7XFxuICBiYWNrZ3JvdW5kOiAjZjA2MjkyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTUge1xcbiAgYmFja2dyb3VuZDogI2VjNDA3YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay02IHtcXG4gIGJhY2tncm91bmQ6ICNlOTFlNjMgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstNyB7XFxuICBiYWNrZ3JvdW5kOiAjZDgxYjYwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTgge1xcbiAgYmFja2dyb3VuZDogI2MyMTg1YiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay05IHtcXG4gIGJhY2tncm91bmQ6ICNhZDE0NTcgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMTAge1xcbiAgYmFja2dyb3VuZDogIzg4MGU0ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY4MGFiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNmZjQwODEgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMTMge1xcbiAgYmFja2dyb3VuZDogI2Y1MDA1NyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjYzUxMTYyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUge1xcbiAgYmFja2dyb3VuZDogIzljMjdiMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTEge1xcbiAgYmFja2dyb3VuZDogI2YzZTVmNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTIge1xcbiAgYmFja2dyb3VuZDogI2UxYmVlNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTMge1xcbiAgYmFja2dyb3VuZDogI2NlOTNkOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTQge1xcbiAgYmFja2dyb3VuZDogI2JhNjhjOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTUge1xcbiAgYmFja2dyb3VuZDogI2FiNDdiYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTYge1xcbiAgYmFja2dyb3VuZDogIzljMjdiMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTcge1xcbiAgYmFja2dyb3VuZDogIzhlMjRhYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTgge1xcbiAgYmFja2dyb3VuZDogIzdiMWZhMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTkge1xcbiAgYmFja2dyb3VuZDogIzZhMWI5YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTEwIHtcXG4gIGJhY2tncm91bmQ6ICM0YTE0OGMgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZWE4MGZjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMTIge1xcbiAgYmFja2dyb3VuZDogI2UwNDBmYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNkNTAwZjkgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjYTBmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZSB7XFxuICBiYWNrZ3JvdW5kOiAjNjczYWI3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNlZGU3ZjYgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTIge1xcbiAgYmFja2dyb3VuZDogI2QxYzRlOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMyB7XFxuICBiYWNrZ3JvdW5kOiAjYjM5ZGRiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS00IHtcXG4gIGJhY2tncm91bmQ6ICM5NTc1Y2QgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTUge1xcbiAgYmFja2dyb3VuZDogIzdlNTdjMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtNiB7XFxuICBiYWNrZ3JvdW5kOiAjNjczYWI3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS03IHtcXG4gIGJhY2tncm91bmQ6ICM1ZTM1YjEgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTgge1xcbiAgYmFja2dyb3VuZDogIzUxMmRhOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtOSB7XFxuICBiYWNrZ3JvdW5kOiAjNDUyN2EwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMzExYjkyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjYjM4OGZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjN2M0ZGZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjNjUxZmZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjNjIwMGVhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28ge1xcbiAgYmFja2dyb3VuZDogIzNmNTFiNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTEge1xcbiAgYmFja2dyb3VuZDogI2U4ZWFmNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTIge1xcbiAgYmFja2dyb3VuZDogI2M1Y2FlOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTMge1xcbiAgYmFja2dyb3VuZDogIzlmYThkYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTQge1xcbiAgYmFja2dyb3VuZDogIzc5ODZjYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTUge1xcbiAgYmFja2dyb3VuZDogIzVjNmJjMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTYge1xcbiAgYmFja2dyb3VuZDogIzNmNTFiNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTcge1xcbiAgYmFja2dyb3VuZDogIzM5NDlhYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTgge1xcbiAgYmFja2dyb3VuZDogIzMwM2Y5ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTkge1xcbiAgYmFja2dyb3VuZDogIzI4MzU5MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMxYTIzN2UgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjOGM5ZWZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMTIge1xcbiAgYmFja2dyb3VuZDogIzUzNmRmZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTEzIHtcXG4gIGJhY2tncm91bmQ6ICMzZDVhZmUgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMzA0ZmZlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlIHtcXG4gIGJhY2tncm91bmQ6ICMyMTk2ZjMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZTNmMmZkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTIge1xcbiAgYmFja2dyb3VuZDogI2JiZGVmYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0zIHtcXG4gIGJhY2tncm91bmQ6ICM5MGNhZjkgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtNCB7XFxuICBiYWNrZ3JvdW5kOiAjNjRiNWY2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTUge1xcbiAgYmFja2dyb3VuZDogIzQyYTVmNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS02IHtcXG4gIGJhY2tncm91bmQ6ICMyMTk2ZjMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtNyB7XFxuICBiYWNrZ3JvdW5kOiAjMWU4OGU1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTgge1xcbiAgYmFja2dyb3VuZDogIzE5NzZkMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS05IHtcXG4gIGJhY2tncm91bmQ6ICMxNTY1YzAgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMTAge1xcbiAgYmFja2dyb3VuZDogIzBkNDdhMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjODJiMWZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTEyIHtcXG4gIGJhY2tncm91bmQ6ICM0NDhhZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMTMge1xcbiAgYmFja2dyb3VuZDogIzI5NzlmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMjk2MmZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlIHtcXG4gIGJhY2tncm91bmQ6ICMwM2E5ZjQgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZTFmNWZlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTIge1xcbiAgYmFja2dyb3VuZDogI2IzZTVmYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0zIHtcXG4gIGJhY2tncm91bmQ6ICM4MWQ0ZmEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtNCB7XFxuICBiYWNrZ3JvdW5kOiAjNGZjM2Y3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTUge1xcbiAgYmFja2dyb3VuZDogIzI5YjZmNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS02IHtcXG4gIGJhY2tncm91bmQ6ICMwM2E5ZjQgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtNyB7XFxuICBiYWNrZ3JvdW5kOiAjMDM5YmU1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTgge1xcbiAgYmFja2dyb3VuZDogIzAyODhkMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS05IHtcXG4gIGJhY2tncm91bmQ6ICMwMjc3YmQgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMTAge1xcbiAgYmFja2dyb3VuZDogIzAxNTc5YiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjODBkOGZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTEyIHtcXG4gIGJhY2tncm91bmQ6ICM0MGM0ZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMTMge1xcbiAgYmFja2dyb3VuZDogIzAwYjBmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMDA5MWVhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuIHtcXG4gIGJhY2tncm91bmQ6ICMwMGJjZDQgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMSB7XFxuICBiYWNrZ3JvdW5kOiAjZTBmN2ZhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTIge1xcbiAgYmFja2dyb3VuZDogI2IyZWJmMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0zIHtcXG4gIGJhY2tncm91bmQ6ICM4MGRlZWEgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tNCB7XFxuICBiYWNrZ3JvdW5kOiAjNGRkMGUxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTUge1xcbiAgYmFja2dyb3VuZDogIzI2YzZkYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi02IHtcXG4gIGJhY2tncm91bmQ6ICMwMGJjZDQgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tNyB7XFxuICBiYWNrZ3JvdW5kOiAjMDBhY2MxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTgge1xcbiAgYmFja2dyb3VuZDogIzAwOTdhNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi05IHtcXG4gIGJhY2tncm91bmQ6ICMwMDgzOGYgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMTAge1xcbiAgYmFja2dyb3VuZDogIzAwNjA2NCAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjODRmZmZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTEyIHtcXG4gIGJhY2tncm91bmQ6ICMxOGZmZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMTMge1xcbiAgYmFja2dyb3VuZDogIzAwZTVmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMDBiOGQ0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsIHtcXG4gIGJhY2tncm91bmQ6ICMwMDk2ODggIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZTBmMmYxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTIge1xcbiAgYmFja2dyb3VuZDogI2IyZGZkYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0zIHtcXG4gIGJhY2tncm91bmQ6ICM4MGNiYzQgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtNCB7XFxuICBiYWNrZ3JvdW5kOiAjNGRiNmFjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTUge1xcbiAgYmFja2dyb3VuZDogIzI2YTY5YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC02IHtcXG4gIGJhY2tncm91bmQ6ICMwMDk2ODggIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtNyB7XFxuICBiYWNrZ3JvdW5kOiAjMDA4OTdiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTgge1xcbiAgYmFja2dyb3VuZDogIzAwNzk2YiAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC05IHtcXG4gIGJhY2tncm91bmQ6ICMwMDY5NWMgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMTAge1xcbiAgYmFja2dyb3VuZDogIzAwNGQ0MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjYTdmZmViICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTEyIHtcXG4gIGJhY2tncm91bmQ6ICM2NGZmZGEgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMTMge1xcbiAgYmFja2dyb3VuZDogIzFkZTliNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMDBiZmE1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbiB7XFxuICBiYWNrZ3JvdW5kOiAjNGNhZjUwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xIHtcXG4gIGJhY2tncm91bmQ6ICNlOGY1ZTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTIge1xcbiAgYmFja2dyb3VuZDogI2M4ZTZjOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMyB7XFxuICBiYWNrZ3JvdW5kOiAjYTVkNmE3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi00IHtcXG4gIGJhY2tncm91bmQ6ICM4MWM3ODQgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTUge1xcbiAgYmFja2dyb3VuZDogIzY2YmI2YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tNiB7XFxuICBiYWNrZ3JvdW5kOiAjNGNhZjUwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi03IHtcXG4gIGJhY2tncm91bmQ6ICM0M2EwNDcgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTgge1xcbiAgYmFja2dyb3VuZDogIzM4OGUzYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tOSB7XFxuICBiYWNrZ3JvdW5kOiAjMmU3ZDMyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMWI1ZTIwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjYjlmNmNhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjNjlmMGFlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjMDBlNjc2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjMDBjODUzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbiB7XFxuICBiYWNrZ3JvdW5kOiAjOGJjMzRhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xIHtcXG4gIGJhY2tncm91bmQ6ICNmMWY4ZTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTIge1xcbiAgYmFja2dyb3VuZDogI2RjZWRjOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMyB7XFxuICBiYWNrZ3JvdW5kOiAjYzVlMWE1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi00IHtcXG4gIGJhY2tncm91bmQ6ICNhZWQ1ODEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTUge1xcbiAgYmFja2dyb3VuZDogIzljY2M2NSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tNiB7XFxuICBiYWNrZ3JvdW5kOiAjOGJjMzRhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi03IHtcXG4gIGJhY2tncm91bmQ6ICM3Y2IzNDIgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTgge1xcbiAgYmFja2dyb3VuZDogIzY4OWYzOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tOSB7XFxuICBiYWNrZ3JvdW5kOiAjNTU4YjJmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMzM2OTFlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjY2NmZjkwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjYjJmZjU5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjNzZmZjAzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjNjRkZDE3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lIHtcXG4gIGJhY2tncm91bmQ6ICNjZGRjMzkgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZjlmYmU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTIge1xcbiAgYmFja2dyb3VuZDogI2YwZjRjMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0zIHtcXG4gIGJhY2tncm91bmQ6ICNlNmVlOWMgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtNCB7XFxuICBiYWNrZ3JvdW5kOiAjZGNlNzc1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTUge1xcbiAgYmFja2dyb3VuZDogI2Q0ZTE1NyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS02IHtcXG4gIGJhY2tncm91bmQ6ICNjZGRjMzkgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtNyB7XFxuICBiYWNrZ3JvdW5kOiAjYzBjYTMzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTgge1xcbiAgYmFja2dyb3VuZDogI2FmYjQyYiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS05IHtcXG4gIGJhY2tncm91bmQ6ICM5ZTlkMjQgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMTAge1xcbiAgYmFja2dyb3VuZDogIzgyNzcxNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZjRmZjgxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNlZWZmNDEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMTMge1xcbiAgYmFja2dyb3VuZDogI2M2ZmYwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjYWVlYTAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3cge1xcbiAgYmFja2dyb3VuZDogI2ZmZWIzYiAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZmRlNyAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTIge1xcbiAgYmFja2dyb3VuZDogI2ZmZjljNCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTMge1xcbiAgYmFja2dyb3VuZDogI2ZmZjU5ZCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTQge1xcbiAgYmFja2dyb3VuZDogI2ZmZjE3NiAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTUge1xcbiAgYmFja2dyb3VuZDogI2ZmZWU1OCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTYge1xcbiAgYmFja2dyb3VuZDogI2ZmZWIzYiAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTcge1xcbiAgYmFja2dyb3VuZDogI2ZkZDgzNSAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTgge1xcbiAgYmFja2dyb3VuZDogI2ZiYzAyZCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTkge1xcbiAgYmFja2dyb3VuZDogI2Y5YTgyNSAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTEwIHtcXG4gIGJhY2tncm91bmQ6ICNmNTdmMTcgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmZjhkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMTIge1xcbiAgYmFja2dyb3VuZDogI2ZmMCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTEzIHtcXG4gIGJhY2tncm91bmQ6ICNmZmVhMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZkNjAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlciB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjMTA3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xIHtcXG4gIGJhY2tncm91bmQ6ICNmZmY4ZTEgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTIge1xcbiAgYmFja2dyb3VuZDogI2ZmZWNiMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlMDgyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci00IHtcXG4gIGJhY2tncm91bmQ6ICNmZmQ1NGYgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTUge1xcbiAgYmFja2dyb3VuZDogI2ZmY2EyOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItNiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjMTA3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci03IHtcXG4gIGJhY2tncm91bmQ6ICNmZmIzMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTgge1xcbiAgYmFja2dyb3VuZDogI2ZmYTAwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItOSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY4ZjAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjZmY2ZjAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlNTdmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZkNzQwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjNDAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZhYjAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2Uge1xcbiAgYmFja2dyb3VuZDogI2ZmOTgwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZjNlMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTIge1xcbiAgYmFja2dyb3VuZDogI2ZmZTBiMiAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTMge1xcbiAgYmFja2dyb3VuZDogI2ZmY2M4MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTQge1xcbiAgYmFja2dyb3VuZDogI2ZmYjc0ZCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTUge1xcbiAgYmFja2dyb3VuZDogI2ZmYTcyNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTYge1xcbiAgYmFja2dyb3VuZDogI2ZmOTgwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTcge1xcbiAgYmFja2dyb3VuZDogI2ZiOGMwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTgge1xcbiAgYmFja2dyb3VuZDogI2Y1N2MwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTkge1xcbiAgYmFja2dyb3VuZDogI2VmNmMwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTEwIHtcXG4gIGJhY2tncm91bmQ6ICNlNjUxMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZkMTgwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMTIge1xcbiAgYmFja2dyb3VuZDogI2ZmYWI0MCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNmZjkxMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmY2ZDAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY1NzIyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNmYmU5ZTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTIge1xcbiAgYmFja2dyb3VuZDogI2ZmY2NiYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZhYjkxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS00IHtcXG4gIGJhY2tncm91bmQ6ICNmZjhhNjUgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTUge1xcbiAgYmFja2dyb3VuZDogI2ZmNzA0MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtNiB7XFxuICBiYWNrZ3JvdW5kOiAjZmY1NzIyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS03IHtcXG4gIGJhY2tncm91bmQ6ICNmNDUxMWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTgge1xcbiAgYmFja2dyb3VuZDogI2U2NGExOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtOSB7XFxuICBiYWNrZ3JvdW5kOiAjZDg0MzE1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjYmYzNjBjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY5ZTgwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmY2ZTQwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmYzZDAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjZGQyYzAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93biB7XFxuICBiYWNrZ3JvdW5kOiAjNzk1NTQ4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xIHtcXG4gIGJhY2tncm91bmQ6ICNlZmViZTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTIge1xcbiAgYmFja2dyb3VuZDogI2Q3Y2NjOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMyB7XFxuICBiYWNrZ3JvdW5kOiAjYmNhYWE0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi00IHtcXG4gIGJhY2tncm91bmQ6ICNhMTg4N2YgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTUge1xcbiAgYmFja2dyb3VuZDogIzhkNmU2MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tNiB7XFxuICBiYWNrZ3JvdW5kOiAjNzk1NTQ4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi03IHtcXG4gIGJhY2tncm91bmQ6ICM2ZDRjNDEgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTgge1xcbiAgYmFja2dyb3VuZDogIzVkNDAzNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tOSB7XFxuICBiYWNrZ3JvdW5kOiAjNGUzNDJlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjM2UyNzIzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZDdjY2M4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjYmNhYWE0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjOGQ2ZTYzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjNWQ0MDM3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5IHtcXG4gIGJhY2tncm91bmQ6ICM5ZTllOWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmFmYWZhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTIge1xcbiAgYmFja2dyb3VuZDogI2Y1ZjVmNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0zIHtcXG4gIGJhY2tncm91bmQ6ICNlZWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktNCB7XFxuICBiYWNrZ3JvdW5kOiAjZTBlMGUwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTUge1xcbiAgYmFja2dyb3VuZDogI2JkYmRiZCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS02IHtcXG4gIGJhY2tncm91bmQ6ICM5ZTllOWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktNyB7XFxuICBiYWNrZ3JvdW5kOiAjNzU3NTc1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTgge1xcbiAgYmFja2dyb3VuZDogIzYxNjE2MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS05IHtcXG4gIGJhY2tncm91bmQ6ICM0MjQyNDIgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMTAge1xcbiAgYmFja2dyb3VuZDogIzIxMjEyMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTEyIHtcXG4gIGJhY2tncm91bmQ6ICNlZWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMTMge1xcbiAgYmFja2dyb3VuZDogI2JkYmRiZCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjNjE2MTYxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXkge1xcbiAgYmFja2dyb3VuZDogIzYwN2Q4YiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTEge1xcbiAgYmFja2dyb3VuZDogI2VjZWZmMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTIge1xcbiAgYmFja2dyb3VuZDogI2NmZDhkYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTMge1xcbiAgYmFja2dyb3VuZDogI2IwYmVjNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTQge1xcbiAgYmFja2dyb3VuZDogIzkwYTRhZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTUge1xcbiAgYmFja2dyb3VuZDogIzc4OTA5YyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTYge1xcbiAgYmFja2dyb3VuZDogIzYwN2Q4YiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTcge1xcbiAgYmFja2dyb3VuZDogIzU0NmU3YSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTgge1xcbiAgYmFja2dyb3VuZDogIzQ1NWE2NCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTkge1xcbiAgYmFja2dyb3VuZDogIzM3NDc0ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTEwIHtcXG4gIGJhY2tncm91bmQ6ICMyNjMyMzggIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0xMSB7XFxuICBiYWNrZ3JvdW5kOiAjY2ZkOGRjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMTIge1xcbiAgYmFja2dyb3VuZDogI2IwYmVjNSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTEzIHtcXG4gIGJhY2tncm91bmQ6ICM3ODkwOWMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0xNCB7XFxuICBiYWNrZ3JvdW5kOiAjNDU1YTY0ICFpbXBvcnRhbnQ7XFxufVxcbi5zaGFkb3ctdHJhbnNpdGlvbiB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtYm94LXNoYWRvdyAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7XFxuICB0cmFuc2l0aW9uOiAtd2Via2l0LWJveC1zaGFkb3cgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSAhaW1wb3J0YW50O1xcbiAgdHJhbnNpdGlvbjogYm94LXNoYWRvdyAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7XFxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSksIC13ZWJraXQtYm94LXNoYWRvdyAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7XFxufVxcbi5zaGFkb3ctMSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgLTFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0ycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0zIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAzcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTMge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgLTNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctNCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA0cHggNXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDEwcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDRweCA1cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMTBweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0ycHggNHB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIC00cHggNXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTFweCAxMHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTJweCA0cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgLTRweCA1cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMXB4IDEwcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy01IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDVweCA4cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMTRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNXB4IDhweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtNSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgLTVweCA4cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMXB4IDE0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtNXB4IDhweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0xcHggMTRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTYge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNnB4IDEwcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMThweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNnB4IDEwcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMThweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTYge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0zcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIC02cHggMTBweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0xcHggMThweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0zcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIC02cHggMTBweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0xcHggMThweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTcge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDRweCA1cHggLTJweCByZ2JhKDAsMCwwLDAuMiksIDAgN3B4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDE2cHggMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDVweCAtMnB4IHJnYmEoMCwwLDAsMC4yKSwgMCA3cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMTZweCAxcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC03IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtNHB4IDVweCAtMnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtN3B4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTJweCAxNnB4IDFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC00cHggNXB4IC0ycHggcmdiYSgwLDAsMCwwLjIpLCAwIC03cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMnB4IDE2cHggMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctOCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCA4cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMTRweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA1cHggNXB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDhweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTgge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC01cHggNXB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIC04cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgLThweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggMTRweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy05IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDlweCAxMnB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxNnB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDVweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgOXB4IDEycHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDE2cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtOSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTVweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgLTlweCAxMnB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggMTZweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtNXB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtOXB4IDEycHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAxNnB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTEwIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA2cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDEwcHggMTRweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA0cHggMThweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA2cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDEwcHggMTRweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA0cHggMThweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xMCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTZweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEwcHggMTRweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNHB4IDE4cHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTZweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEwcHggMTRweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNHB4IDE4cHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTEge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDZweCA3cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTFweCAxNXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDRweCAyMHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDZweCA3cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTFweCAxNXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDRweCAyMHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTExIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtNnB4IDdweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTFweCAxNXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC00cHggMjBweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtNnB4IDdweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTFweCAxNXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC00cHggMjBweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxMnB4IDE3cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNXB4IDIycHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxMnB4IDE3cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNXB4IDIycHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC03cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xMnB4IDE3cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTVweCAyMnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC03cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xMnB4IDE3cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTVweCAyMnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTEzIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA3cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDEzcHggMTlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA1cHggMjRweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA3cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDEzcHggMTlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA1cHggMjRweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xMyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEzcHggMTlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNXB4IDI0cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEzcHggMTlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNXB4IDI0cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDdweCA5cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTRweCAyMXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDVweCAyNnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDdweCA5cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTRweCAyMXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDVweCAyNnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTE0IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtN3B4IDlweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTRweCAyMXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC01cHggMjZweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtN3B4IDlweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTRweCAyMXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC01cHggMjZweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xNSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgOHB4IDlweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNXB4IDIycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDI4cHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDlweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNXB4IDIycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDI4cHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC04cHggOXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xNXB4IDIycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTZweCAyOHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC04cHggOXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xNXB4IDIycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTZweCAyOHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTE2IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA4cHggMTBweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNnB4IDI0cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDMwcHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDEwcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMTZweCAyNHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDZweCAzMHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTE2IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtOHB4IDEwcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE2cHggMjRweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDMwcHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLThweCAxMHB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xNnB4IDI0cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTZweCAzMHB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTE3IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA4cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxN3B4IDI2cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDMycHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgOHB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMTdweCAyNnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDZweCAzMnB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTE3IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtOHB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE3cHggMjZweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDMycHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLThweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xN3B4IDI2cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTZweCAzMnB4IDVweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTE4IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA5cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxOHB4IDI4cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgN3B4IDM0cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgOXB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgMThweCAyOHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDdweCAzNHB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTE4IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtOXB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE4cHggMjhweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtN3B4IDM0cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTlweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xOHB4IDI4cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTdweCAzNHB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTE5IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA5cHggMTJweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxOXB4IDI5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgN3B4IDM2cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgOXB4IDEycHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMTlweCAyOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDdweCAzNnB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTE5IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtOXB4IDEycHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE5cHggMjlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtN3B4IDM2cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTlweCAxMnB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xOXB4IDI5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTdweCAzNnB4IDZweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTIwIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMjBweCAzMXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDhweCAzOHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAyMHB4IDMxcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOHB4IDM4cHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMjAge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIwcHggMzFweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOHB4IDM4cHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjBweCAzMXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC04cHggMzhweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0yMSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIxcHggMzNweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA4cHggNDBweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMjFweCAzM3B4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDhweCA0MHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTIxIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yMXB4IDMzcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLThweCA0MHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIxcHggMzNweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOHB4IDQwcHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMjIge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDEwcHggMTRweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAyMnB4IDM1cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOHB4IDQycHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAxNHB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIycHggMzVweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA4cHggNDJweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0yMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTEwcHggMTRweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjJweCAzNXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC04cHggNDJweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMTBweCAxNHB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yMnB4IDM1cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLThweCA0MnB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTIzIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxMXB4IDE0cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgMjNweCAzNnB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDlweCA0NHB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDExcHggMTRweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAyM3B4IDM2cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOXB4IDQ0cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMjMge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xMXB4IDE0cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIzcHggMzZweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOXB4IDQ0cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTExcHggMTRweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjNweCAzNnB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC05cHggNDRweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0yNCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTFweCAxNXB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIDI0cHggMzhweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA5cHggNDZweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMXB4IDE1cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgMjRweCAzOHB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDlweCA0NnB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTI0IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMTFweCAxNXB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yNHB4IDM4cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTlweCA0NnB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xMXB4IDE1cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgLTI0cHggMzhweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOXB4IDQ2cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5uby1zaGFkb3csXFxuLnNoYWRvdy0wIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5pbnNldC1zaGFkb3cge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDdweCA5cHggLTdweCByZ2JhKDAsMCwwLDAuNykgaW5zZXQgIWltcG9ydGFudDtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA3cHggOXB4IC03cHggcmdiYSgwLDAsMCwwLjcpIGluc2V0ICFpbXBvcnRhbnQ7XFxufVxcbi56LW1hcmdpbmFscyB7XFxuICB6LWluZGV4OiAyMDAwO1xcbn1cXG4uei1ub3RpZnkge1xcbiAgei1pbmRleDogOTUwMDtcXG59XFxuLnotZnVsbHNjcmVlbiB7XFxuICB6LWluZGV4OiA2MDAwO1xcbn1cXG4uei1pbmhlcml0IHtcXG4gIHotaW5kZXg6IGluaGVyaXQgIWltcG9ydGFudDtcXG59XFxuLnJvdyxcXG4uY29sdW1uLFxcbi5mbGV4IHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLW1zLWZsZXgtd3JhcDogd3JhcDtcXG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcbi5yb3cuaW5saW5lLFxcbi5jb2x1bW4uaW5saW5lLFxcbi5mbGV4LmlubGluZSB7XFxuICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XFxuICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG59XFxuLnJvdy5yZXZlcnNlIHtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XFxufVxcbi5jb2x1bW4ge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbn1cXG4uY29sdW1uLnJldmVyc2Uge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogcmV2ZXJzZTtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XFxufVxcbi53cmFwIHtcXG4gIC1tcy1mbGV4LXdyYXA6IHdyYXA7XFxuICAgICAgZmxleC13cmFwOiB3cmFwO1xcbn1cXG4ubm8td3JhcCB7XFxuICAtbXMtZmxleC13cmFwOiBub3dyYXA7XFxuICAgICAgZmxleC13cmFwOiBub3dyYXA7XFxufVxcbi5yZXZlcnNlLXdyYXAge1xcbiAgLW1zLWZsZXgtd3JhcDogd3JhcC1yZXZlcnNlO1xcbiAgICAgIGZsZXgtd3JhcDogd3JhcC1yZXZlcnNlO1xcbn1cXG4ub3JkZXItZmlyc3Qge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogLTk5OTk7XFxuICAgICAgLW1zLWZsZXgtb3JkZXI6IC0xMDAwMDtcXG4gICAgICAgICAgb3JkZXI6IC0xMDAwMDtcXG59XFxuLm9yZGVyLWxhc3Qge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMTAwMDE7XFxuICAgICAgLW1zLWZsZXgtb3JkZXI6IDEwMDAwO1xcbiAgICAgICAgICBvcmRlcjogMTAwMDA7XFxufVxcbi5vcmRlci1ub25lIHtcXG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IDE7XFxuICAgICAgLW1zLWZsZXgtb3JkZXI6IDA7XFxuICAgICAgICAgIG9yZGVyOiAwO1xcbn1cXG4uanVzdGlmeS1zdGFydCB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBzdGFydDtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBzdGFydDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xcbn1cXG4uanVzdGlmeS1lbmQge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogZW5kO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG59XFxuLmp1c3RpZnktY2VudGVyLFxcbi5mbGV4LWNlbnRlciB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtcGFjazogY2VudGVyO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuLmp1c3RpZnktYmV0d2VlbiB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBqdXN0aWZ5O1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGp1c3RpZnk7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG59XFxuLmp1c3RpZnktYXJvdW5kIHtcXG4gIC1tcy1mbGV4LXBhY2s6IGRpc3RyaWJ1dGU7XFxuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XFxufVxcbi5pdGVtcy1zdGFydCB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG59XFxuLml0ZW1zLWVuZCB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogZW5kO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcXG59XFxuLml0ZW1zLWNlbnRlcixcXG4uZmxleC1jZW50ZXIge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4uaXRlbXMtYmFzZWxpbmUge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGJhc2VsaW5lO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBiYXNlbGluZTtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xcbn1cXG4uaXRlbXMtc3RyZXRjaCB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XFxufVxcbi5jb250ZW50LXN0YXJ0IHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogc3RhcnQ7XFxuICAgICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcXG59XFxuLmNvbnRlbnQtZW5kIHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogZW5kO1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtZW5kO1xcbn1cXG4uY29udGVudC1jZW50ZXIge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBjZW50ZXI7XFxuICAgICAgYWxpZ24tY29udGVudDogY2VudGVyO1xcbn1cXG4uY29udGVudC1zdHJldGNoIHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogc3RyZXRjaDtcXG4gICAgICBhbGlnbi1jb250ZW50OiBzdHJldGNoO1xcbn1cXG4uY29udGVudC1iZXR3ZWVuIHtcXG4gIC1tcy1mbGV4LWxpbmUtcGFjazoganVzdGlmeTtcXG4gICAgICBhbGlnbi1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbn1cXG4uY29udGVudC1hcm91bmQge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBkaXN0cmlidXRlO1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcXG59XFxuLnNlbGYtc3RhcnQge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RhcnQ7XFxuICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcXG59XFxuLnNlbGYtZW5kIHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGVuZDtcXG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LWVuZDtcXG59XFxuLnNlbGYtY2VudGVyIHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjtcXG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XFxufVxcbi5zZWxmLWJhc2VsaW5lIHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGJhc2VsaW5lO1xcbiAgICAgIGFsaWduLXNlbGY6IGJhc2VsaW5lO1xcbn1cXG4uc2VsZi1zdHJldGNoIHtcXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246IHN0cmV0Y2g7XFxuICAgICAgYWxpZ24tc2VsZjogc3RyZXRjaDtcXG59XFxuLmd1dHRlci14LW5vbmUsXFxuLmd1dHRlci1ub25lIHtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbn1cXG4uZ3V0dGVyLXgtbm9uZSA+IGRpdixcXG4uZ3V0dGVyLW5vbmUgPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiAwO1xcbn1cXG4uZ3V0dGVyLXktbm9uZSxcXG4uZ3V0dGVyLW5vbmUge1xcbiAgbWFyZ2luLXRvcDogMDtcXG59XFxuLmd1dHRlci15LW5vbmUgPiBkaXYsXFxuLmd1dHRlci1ub25lID4gZGl2IHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4uZ3V0dGVyLXgteHMsXFxuLmd1dHRlci14cyB7XFxuICBtYXJnaW4tbGVmdDogLThweDtcXG59XFxuLmd1dHRlci14LXhzID4gZGl2LFxcbi5ndXR0ZXIteHMgPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XFxufVxcbi5ndXR0ZXIteS14cyxcXG4uZ3V0dGVyLXhzIHtcXG4gIG1hcmdpbi10b3A6IC04cHg7XFxufVxcbi5ndXR0ZXIteS14cyA+IGRpdixcXG4uZ3V0dGVyLXhzID4gZGl2IHtcXG4gIHBhZGRpbmctdG9wOiA4cHg7XFxufVxcbi5ndXR0ZXIteC1zbSxcXG4uZ3V0dGVyLXNtIHtcXG4gIG1hcmdpbi1sZWZ0OiAtMTZweDtcXG59XFxuLmd1dHRlci14LXNtID4gZGl2LFxcbi5ndXR0ZXItc20gPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xcbn1cXG4uZ3V0dGVyLXktc20sXFxuLmd1dHRlci1zbSB7XFxuICBtYXJnaW4tdG9wOiAtMTZweDtcXG59XFxuLmd1dHRlci15LXNtID4gZGl2LFxcbi5ndXR0ZXItc20gPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDE2cHg7XFxufVxcbi5ndXR0ZXIteC1tZCxcXG4uZ3V0dGVyLW1kIHtcXG4gIG1hcmdpbi1sZWZ0OiAtMzJweDtcXG59XFxuLmd1dHRlci14LW1kID4gZGl2LFxcbi5ndXR0ZXItbWQgPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiAzMnB4O1xcbn1cXG4uZ3V0dGVyLXktbWQsXFxuLmd1dHRlci1tZCB7XFxuICBtYXJnaW4tdG9wOiAtMzJweDtcXG59XFxuLmd1dHRlci15LW1kID4gZGl2LFxcbi5ndXR0ZXItbWQgPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDMycHg7XFxufVxcbi5ndXR0ZXIteC1sZyxcXG4uZ3V0dGVyLWxnIHtcXG4gIG1hcmdpbi1sZWZ0OiAtNDhweDtcXG59XFxuLmd1dHRlci14LWxnID4gZGl2LFxcbi5ndXR0ZXItbGcgPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xcbn1cXG4uZ3V0dGVyLXktbGcsXFxuLmd1dHRlci1sZyB7XFxuICBtYXJnaW4tdG9wOiAtNDhweDtcXG59XFxuLmd1dHRlci15LWxnID4gZGl2LFxcbi5ndXR0ZXItbGcgPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDQ4cHg7XFxufVxcbi5ndXR0ZXIteC14bCxcXG4uZ3V0dGVyLXhsIHtcXG4gIG1hcmdpbi1sZWZ0OiAtNjRweDtcXG59XFxuLmd1dHRlci14LXhsID4gZGl2LFxcbi5ndXR0ZXIteGwgPiBkaXYge1xcbiAgcGFkZGluZy1sZWZ0OiA2NHB4O1xcbn1cXG4uZ3V0dGVyLXkteGwsXFxuLmd1dHRlci14bCB7XFxuICBtYXJnaW4tdG9wOiAtNjRweDtcXG59XFxuLmd1dHRlci15LXhsID4gZGl2LFxcbi5ndXR0ZXIteGwgPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDY0cHg7XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiAwKSB7XFxuICAucm93ID4gLmNvbCxcXG4gIC5yb3cgPiAuY29sLXhzLFxcbiAgLnJvdyA+IC5jb2wtYXV0byxcXG4gIC5yb3cgPiAuY29sLXhzLWF1dG8sXFxuICAucm93ID4gLmNvbC1ncm93LFxcbiAgLnJvdyA+IC5jb2wteHMtZ3JvdyxcXG4gIC5yb3cgPiAuY29sLTAsXFxuICAucm93ID4gLmNvbC14cy0wLFxcbiAgLnJvdyA+IC5jb2wtMSxcXG4gIC5yb3cgPiAuY29sLXhzLTEsXFxuICAucm93ID4gLmNvbC0yLFxcbiAgLnJvdyA+IC5jb2wteHMtMixcXG4gIC5yb3cgPiAuY29sLTMsXFxuICAucm93ID4gLmNvbC14cy0zLFxcbiAgLnJvdyA+IC5jb2wtNCxcXG4gIC5yb3cgPiAuY29sLXhzLTQsXFxuICAucm93ID4gLmNvbC01LFxcbiAgLnJvdyA+IC5jb2wteHMtNSxcXG4gIC5yb3cgPiAuY29sLTYsXFxuICAucm93ID4gLmNvbC14cy02LFxcbiAgLnJvdyA+IC5jb2wtNyxcXG4gIC5yb3cgPiAuY29sLXhzLTcsXFxuICAucm93ID4gLmNvbC04LFxcbiAgLnJvdyA+IC5jb2wteHMtOCxcXG4gIC5yb3cgPiAuY29sLTksXFxuICAucm93ID4gLmNvbC14cy05LFxcbiAgLnJvdyA+IC5jb2wtMTAsXFxuICAucm93ID4gLmNvbC14cy0xMCxcXG4gIC5yb3cgPiAuY29sLTExLFxcbiAgLnJvdyA+IC5jb2wteHMtMTEsXFxuICAucm93ID4gLmNvbC0xMixcXG4gIC5yb3cgPiAuY29sLXhzLTEyLFxcbiAgLmZsZXggPiAuY29sLFxcbiAgLmZsZXggPiAuY29sLXhzLFxcbiAgLmZsZXggPiAuY29sLWF1dG8sXFxuICAuZmxleCA+IC5jb2wteHMtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1ncm93LFxcbiAgLmZsZXggPiAuY29sLXhzLWdyb3csXFxuICAuZmxleCA+IC5jb2wtMCxcXG4gIC5mbGV4ID4gLmNvbC14cy0wLFxcbiAgLmZsZXggPiAuY29sLTEsXFxuICAuZmxleCA+IC5jb2wteHMtMSxcXG4gIC5mbGV4ID4gLmNvbC0yLFxcbiAgLmZsZXggPiAuY29sLXhzLTIsXFxuICAuZmxleCA+IC5jb2wtMyxcXG4gIC5mbGV4ID4gLmNvbC14cy0zLFxcbiAgLmZsZXggPiAuY29sLTQsXFxuICAuZmxleCA+IC5jb2wteHMtNCxcXG4gIC5mbGV4ID4gLmNvbC01LFxcbiAgLmZsZXggPiAuY29sLXhzLTUsXFxuICAuZmxleCA+IC5jb2wtNixcXG4gIC5mbGV4ID4gLmNvbC14cy02LFxcbiAgLmZsZXggPiAuY29sLTcsXFxuICAuZmxleCA+IC5jb2wteHMtNyxcXG4gIC5mbGV4ID4gLmNvbC04LFxcbiAgLmZsZXggPiAuY29sLXhzLTgsXFxuICAuZmxleCA+IC5jb2wtOSxcXG4gIC5mbGV4ID4gLmNvbC14cy05LFxcbiAgLmZsZXggPiAuY29sLTEwLFxcbiAgLmZsZXggPiAuY29sLXhzLTEwLFxcbiAgLmZsZXggPiAuY29sLTExLFxcbiAgLmZsZXggPiAuY29sLXhzLTExLFxcbiAgLmZsZXggPiAuY29sLTEyLFxcbiAgLmZsZXggPiAuY29sLXhzLTEyIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIG1pbi13aWR0aDogMDtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wsXFxuICAuY29sdW1uID4gLmNvbC14cyxcXG4gIC5jb2x1bW4gPiAuY29sLWF1dG8sXFxuICAuY29sdW1uID4gLmNvbC14cy1hdXRvLFxcbiAgLmNvbHVtbiA+IC5jb2wtZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLWdyb3csXFxuICAuY29sdW1uID4gLmNvbC0wLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMCxcXG4gIC5jb2x1bW4gPiAuY29sLTEsXFxuICAuY29sdW1uID4gLmNvbC14cy0xLFxcbiAgLmNvbHVtbiA+IC5jb2wtMixcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTIsXFxuICAuY29sdW1uID4gLmNvbC0zLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMyxcXG4gIC5jb2x1bW4gPiAuY29sLTQsXFxuICAuY29sdW1uID4gLmNvbC14cy00LFxcbiAgLmNvbHVtbiA+IC5jb2wtNSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTUsXFxuICAuY29sdW1uID4gLmNvbC02LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNixcXG4gIC5jb2x1bW4gPiAuY29sLTcsXFxuICAuY29sdW1uID4gLmNvbC14cy03LFxcbiAgLmNvbHVtbiA+IC5jb2wtOCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTgsXFxuICAuY29sdW1uID4gLmNvbC05LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtOSxcXG4gIC5jb2x1bW4gPiAuY29sLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMTAsXFxuICAuY29sdW1uID4gLmNvbC0xMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wtMTIsXFxuICAuY29sdW1uID4gLmNvbC14cy0xMixcXG4gIC5mbGV4ID4gLmNvbCxcXG4gIC5mbGV4ID4gLmNvbC14cyxcXG4gIC5mbGV4ID4gLmNvbC1hdXRvLFxcbiAgLmZsZXggPiAuY29sLXhzLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC14cy1ncm93LFxcbiAgLmZsZXggPiAuY29sLTAsXFxuICAuZmxleCA+IC5jb2wteHMtMCxcXG4gIC5mbGV4ID4gLmNvbC0xLFxcbiAgLmZsZXggPiAuY29sLXhzLTEsXFxuICAuZmxleCA+IC5jb2wtMixcXG4gIC5mbGV4ID4gLmNvbC14cy0yLFxcbiAgLmZsZXggPiAuY29sLTMsXFxuICAuZmxleCA+IC5jb2wteHMtMyxcXG4gIC5mbGV4ID4gLmNvbC00LFxcbiAgLmZsZXggPiAuY29sLXhzLTQsXFxuICAuZmxleCA+IC5jb2wtNSxcXG4gIC5mbGV4ID4gLmNvbC14cy01LFxcbiAgLmZsZXggPiAuY29sLTYsXFxuICAuZmxleCA+IC5jb2wteHMtNixcXG4gIC5mbGV4ID4gLmNvbC03LFxcbiAgLmZsZXggPiAuY29sLXhzLTcsXFxuICAuZmxleCA+IC5jb2wtOCxcXG4gIC5mbGV4ID4gLmNvbC14cy04LFxcbiAgLmZsZXggPiAuY29sLTksXFxuICAuZmxleCA+IC5jb2wteHMtOSxcXG4gIC5mbGV4ID4gLmNvbC0xMCxcXG4gIC5mbGV4ID4gLmNvbC14cy0xMCxcXG4gIC5mbGV4ID4gLmNvbC0xMSxcXG4gIC5mbGV4ID4gLmNvbC14cy0xMSxcXG4gIC5mbGV4ID4gLmNvbC0xMixcXG4gIC5mbGV4ID4gLmNvbC14cy0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgbWluLWhlaWdodDogMDtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gIH1cXG4gIC5jb2wsXFxuICAuY29sLXhzIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDA7XFxuICAgICAgICAtbXMtZmxleDogMTAwMDAgMSAwJTtcXG4gICAgICAgICAgICBmbGV4OiAxMDAwMCAxIDAlO1xcbiAgfVxcbiAgLmNvbC1hdXRvLFxcbiAgLmNvbC14cy1hdXRvLFxcbiAgLmNvbC0wLFxcbiAgLmNvbC14cy0wLFxcbiAgLmNvbC0xLFxcbiAgLmNvbC14cy0xLFxcbiAgLmNvbC0yLFxcbiAgLmNvbC14cy0yLFxcbiAgLmNvbC0zLFxcbiAgLmNvbC14cy0zLFxcbiAgLmNvbC00LFxcbiAgLmNvbC14cy00LFxcbiAgLmNvbC01LFxcbiAgLmNvbC14cy01LFxcbiAgLmNvbC02LFxcbiAgLmNvbC14cy02LFxcbiAgLmNvbC03LFxcbiAgLmNvbC14cy03LFxcbiAgLmNvbC04LFxcbiAgLmNvbC14cy04LFxcbiAgLmNvbC05LFxcbiAgLmNvbC14cy05LFxcbiAgLmNvbC0xMCxcXG4gIC5jb2wteHMtMTAsXFxuICAuY29sLTExLFxcbiAgLmNvbC14cy0xMSxcXG4gIC5jb2wtMTIsXFxuICAuY29sLXhzLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gIH1cXG4gIC5jb2wtZ3JvdyxcXG4gIC5jb2wteHMtZ3JvdyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0wLFxcbiAgLnJvdyA+IC5jb2wteHMtMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMCxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC0wLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMCB7XFxuICAgIGhlaWdodDogMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMSxcXG4gIC5yb3cgPiAuY29sLXhzLTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMSxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTEge1xcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTEsXFxuICAuY29sdW1uID4gLmNvbC14cy0xIHtcXG4gICAgaGVpZ2h0OiA4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTIsXFxuICAucm93ID4gLmNvbC14cy0yIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0yLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTIsXFxuICAuY29sdW1uID4gLmNvbC14cy0yIHtcXG4gICAgaGVpZ2h0OiAxNi42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0zLFxcbiAgLnJvdyA+IC5jb2wteHMtMyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDI1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTMsXFxuICAucm93ID4gLm9mZnNldC14cy0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTMsXFxuICAuY29sdW1uID4gLmNvbC14cy0zIHtcXG4gICAgaGVpZ2h0OiAyNSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtNCxcXG4gIC5yb3cgPiAuY29sLXhzLTQge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTQsXFxuICAucm93ID4gLm9mZnNldC14cy00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtNCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTQge1xcbiAgICBoZWlnaHQ6IDMzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTUsXFxuICAucm93ID4gLmNvbC14cy01IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNDEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC01LFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTUsXFxuICAuY29sdW1uID4gLmNvbC14cy01IHtcXG4gICAgaGVpZ2h0OiA0MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC02LFxcbiAgLnJvdyA+IC5jb2wteHMtNiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDUwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTYsXFxuICAucm93ID4gLm9mZnNldC14cy02IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTYsXFxuICAuY29sdW1uID4gLmNvbC14cy02IHtcXG4gICAgaGVpZ2h0OiA1MCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtNyxcXG4gIC5yb3cgPiAuY29sLXhzLTcge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTcsXFxuICAucm93ID4gLm9mZnNldC14cy03IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtNyxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTcge1xcbiAgICBoZWlnaHQ6IDU4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTgsXFxuICAucm93ID4gLmNvbC14cy04IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNjYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC04LFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTgsXFxuICAuY29sdW1uID4gLmNvbC14cy04IHtcXG4gICAgaGVpZ2h0OiA2Ni42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC05LFxcbiAgLnJvdyA+IC5jb2wteHMtOSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDc1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTksXFxuICAucm93ID4gLm9mZnNldC14cy05IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTksXFxuICAuY29sdW1uID4gLmNvbC14cy05IHtcXG4gICAgaGVpZ2h0OiA3NSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMTAsXFxuICAucm93ID4gLmNvbC14cy0xMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMTAsXFxuICAucm93ID4gLm9mZnNldC14cy0xMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMTAge1xcbiAgICBoZWlnaHQ6IDgzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTExLFxcbiAgLnJvdyA+IC5jb2wteHMtMTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA5MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTExLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMTEge1xcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC0xMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTExIHtcXG4gICAgaGVpZ2h0OiA5MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0xMixcXG4gIC5yb3cgPiAuY29sLXhzLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTEyLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTEyLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMTIge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcXG4gIC5yb3cgPiAuY29sLXNtLFxcbiAgLnJvdyA+IC5jb2wtc20tYXV0byxcXG4gIC5yb3cgPiAuY29sLXNtLWdyb3csXFxuICAucm93ID4gLmNvbC1zbS0wLFxcbiAgLnJvdyA+IC5jb2wtc20tMSxcXG4gIC5yb3cgPiAuY29sLXNtLTIsXFxuICAucm93ID4gLmNvbC1zbS0zLFxcbiAgLnJvdyA+IC5jb2wtc20tNCxcXG4gIC5yb3cgPiAuY29sLXNtLTUsXFxuICAucm93ID4gLmNvbC1zbS02LFxcbiAgLnJvdyA+IC5jb2wtc20tNyxcXG4gIC5yb3cgPiAuY29sLXNtLTgsXFxuICAucm93ID4gLmNvbC1zbS05LFxcbiAgLnJvdyA+IC5jb2wtc20tMTAsXFxuICAucm93ID4gLmNvbC1zbS0xMSxcXG4gIC5yb3cgPiAuY29sLXNtLTEyLFxcbiAgLmZsZXggPiAuY29sLXNtLFxcbiAgLmZsZXggPiAuY29sLXNtLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtc20tZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC1zbS0wLFxcbiAgLmZsZXggPiAuY29sLXNtLTEsXFxuICAuZmxleCA+IC5jb2wtc20tMixcXG4gIC5mbGV4ID4gLmNvbC1zbS0zLFxcbiAgLmZsZXggPiAuY29sLXNtLTQsXFxuICAuZmxleCA+IC5jb2wtc20tNSxcXG4gIC5mbGV4ID4gLmNvbC1zbS02LFxcbiAgLmZsZXggPiAuY29sLXNtLTcsXFxuICAuZmxleCA+IC5jb2wtc20tOCxcXG4gIC5mbGV4ID4gLmNvbC1zbS05LFxcbiAgLmZsZXggPiAuY29sLXNtLTEwLFxcbiAgLmZsZXggPiAuY29sLXNtLTExLFxcbiAgLmZsZXggPiAuY29sLXNtLTEyIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIG1pbi13aWR0aDogMDtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20sXFxuICAuY29sdW1uID4gLmNvbC1zbS1hdXRvLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTAsXFxuICAuY29sdW1uID4gLmNvbC1zbS0xLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMixcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTMsXFxuICAuY29sdW1uID4gLmNvbC1zbS00LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNSxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTYsXFxuICAuY29sdW1uID4gLmNvbC1zbS03LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tOCxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTksXFxuICAuY29sdW1uID4gLmNvbC1zbS0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMTIsXFxuICAuZmxleCA+IC5jb2wtc20sXFxuICAuZmxleCA+IC5jb2wtc20tYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1zbS1ncm93LFxcbiAgLmZsZXggPiAuY29sLXNtLTAsXFxuICAuZmxleCA+IC5jb2wtc20tMSxcXG4gIC5mbGV4ID4gLmNvbC1zbS0yLFxcbiAgLmZsZXggPiAuY29sLXNtLTMsXFxuICAuZmxleCA+IC5jb2wtc20tNCxcXG4gIC5mbGV4ID4gLmNvbC1zbS01LFxcbiAgLmZsZXggPiAuY29sLXNtLTYsXFxuICAuZmxleCA+IC5jb2wtc20tNyxcXG4gIC5mbGV4ID4gLmNvbC1zbS04LFxcbiAgLmZsZXggPiAuY29sLXNtLTksXFxuICAuZmxleCA+IC5jb2wtc20tMTAsXFxuICAuZmxleCA+IC5jb2wtc20tMTEsXFxuICAuZmxleCA+IC5jb2wtc20tMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG1pbi1oZWlnaHQ6IDA7XFxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxuICB9XFxuICAuY29sLXNtIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDA7XFxuICAgICAgICAtbXMtZmxleDogMTAwMDAgMSAwJTtcXG4gICAgICAgICAgICBmbGV4OiAxMDAwMCAxIDAlO1xcbiAgfVxcbiAgLmNvbC1zbS1hdXRvLFxcbiAgLmNvbC1zbS0wLFxcbiAgLmNvbC1zbS0xLFxcbiAgLmNvbC1zbS0yLFxcbiAgLmNvbC1zbS0zLFxcbiAgLmNvbC1zbS00LFxcbiAgLmNvbC1zbS01LFxcbiAgLmNvbC1zbS02LFxcbiAgLmNvbC1zbS03LFxcbiAgLmNvbC1zbS04LFxcbiAgLmNvbC1zbS05LFxcbiAgLmNvbC1zbS0xMCxcXG4gIC5jb2wtc20tMTEsXFxuICAuY29sLXNtLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gIH1cXG4gIC5jb2wtc20tZ3JvdyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0wIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMCB7XFxuICAgIGhlaWdodDogMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0xIHtcXG4gICAgaGVpZ2h0OiA4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxNi42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0yIHtcXG4gICAgaGVpZ2h0OiAxNi42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0zIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMjUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0zIHtcXG4gICAgaGVpZ2h0OiAyNSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tNCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTQge1xcbiAgICBoZWlnaHQ6IDMzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTUge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA0MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTUge1xcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS01IHtcXG4gICAgaGVpZ2h0OiA0MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS02IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tNiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS02IHtcXG4gICAgaGVpZ2h0OiA1MCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tNyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tNyB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTcge1xcbiAgICBoZWlnaHQ6IDU4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTgge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTgge1xcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS04IHtcXG4gICAgaGVpZ2h0OiA2Ni42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS05IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNzUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tOSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS05IHtcXG4gICAgaGVpZ2h0OiA3NSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4My4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMTAge1xcbiAgICBoZWlnaHQ6IDgzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTExIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOTEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTExIHtcXG4gICAgaGVpZ2h0OiA5MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0xMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMTIge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5yb3cgPiAuY29sLW1kLFxcbiAgLnJvdyA+IC5jb2wtbWQtYXV0byxcXG4gIC5yb3cgPiAuY29sLW1kLWdyb3csXFxuICAucm93ID4gLmNvbC1tZC0wLFxcbiAgLnJvdyA+IC5jb2wtbWQtMSxcXG4gIC5yb3cgPiAuY29sLW1kLTIsXFxuICAucm93ID4gLmNvbC1tZC0zLFxcbiAgLnJvdyA+IC5jb2wtbWQtNCxcXG4gIC5yb3cgPiAuY29sLW1kLTUsXFxuICAucm93ID4gLmNvbC1tZC02LFxcbiAgLnJvdyA+IC5jb2wtbWQtNyxcXG4gIC5yb3cgPiAuY29sLW1kLTgsXFxuICAucm93ID4gLmNvbC1tZC05LFxcbiAgLnJvdyA+IC5jb2wtbWQtMTAsXFxuICAucm93ID4gLmNvbC1tZC0xMSxcXG4gIC5yb3cgPiAuY29sLW1kLTEyLFxcbiAgLmZsZXggPiAuY29sLW1kLFxcbiAgLmZsZXggPiAuY29sLW1kLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtbWQtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC1tZC0wLFxcbiAgLmZsZXggPiAuY29sLW1kLTEsXFxuICAuZmxleCA+IC5jb2wtbWQtMixcXG4gIC5mbGV4ID4gLmNvbC1tZC0zLFxcbiAgLmZsZXggPiAuY29sLW1kLTQsXFxuICAuZmxleCA+IC5jb2wtbWQtNSxcXG4gIC5mbGV4ID4gLmNvbC1tZC02LFxcbiAgLmZsZXggPiAuY29sLW1kLTcsXFxuICAuZmxleCA+IC5jb2wtbWQtOCxcXG4gIC5mbGV4ID4gLmNvbC1tZC05LFxcbiAgLmZsZXggPiAuY29sLW1kLTEwLFxcbiAgLmZsZXggPiAuY29sLW1kLTExLFxcbiAgLmZsZXggPiAuY29sLW1kLTEyIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIG1pbi13aWR0aDogMDtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQsXFxuICAuY29sdW1uID4gLmNvbC1tZC1hdXRvLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTAsXFxuICAuY29sdW1uID4gLmNvbC1tZC0xLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMixcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTMsXFxuICAuY29sdW1uID4gLmNvbC1tZC00LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNSxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTYsXFxuICAuY29sdW1uID4gLmNvbC1tZC03LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtOCxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTksXFxuICAuY29sdW1uID4gLmNvbC1tZC0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMTIsXFxuICAuZmxleCA+IC5jb2wtbWQsXFxuICAuZmxleCA+IC5jb2wtbWQtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1tZC1ncm93LFxcbiAgLmZsZXggPiAuY29sLW1kLTAsXFxuICAuZmxleCA+IC5jb2wtbWQtMSxcXG4gIC5mbGV4ID4gLmNvbC1tZC0yLFxcbiAgLmZsZXggPiAuY29sLW1kLTMsXFxuICAuZmxleCA+IC5jb2wtbWQtNCxcXG4gIC5mbGV4ID4gLmNvbC1tZC01LFxcbiAgLmZsZXggPiAuY29sLW1kLTYsXFxuICAuZmxleCA+IC5jb2wtbWQtNyxcXG4gIC5mbGV4ID4gLmNvbC1tZC04LFxcbiAgLmZsZXggPiAuY29sLW1kLTksXFxuICAuZmxleCA+IC5jb2wtbWQtMTAsXFxuICAuZmxleCA+IC5jb2wtbWQtMTEsXFxuICAuZmxleCA+IC5jb2wtbWQtMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG1pbi1oZWlnaHQ6IDA7XFxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxuICB9XFxuICAuY29sLW1kIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDA7XFxuICAgICAgICAtbXMtZmxleDogMTAwMDAgMSAwJTtcXG4gICAgICAgICAgICBmbGV4OiAxMDAwMCAxIDAlO1xcbiAgfVxcbiAgLmNvbC1tZC1hdXRvLFxcbiAgLmNvbC1tZC0wLFxcbiAgLmNvbC1tZC0xLFxcbiAgLmNvbC1tZC0yLFxcbiAgLmNvbC1tZC0zLFxcbiAgLmNvbC1tZC00LFxcbiAgLmNvbC1tZC01LFxcbiAgLmNvbC1tZC02LFxcbiAgLmNvbC1tZC03LFxcbiAgLmNvbC1tZC04LFxcbiAgLmNvbC1tZC05LFxcbiAgLmNvbC1tZC0xMCxcXG4gIC5jb2wtbWQtMTEsXFxuICAuY29sLW1kLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gIH1cXG4gIC5jb2wtbWQtZ3JvdyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0wIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMCB7XFxuICAgIGhlaWdodDogMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0xIHtcXG4gICAgaGVpZ2h0OiA4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxNi42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0yIHtcXG4gICAgaGVpZ2h0OiAxNi42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0zIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMjUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0zIHtcXG4gICAgaGVpZ2h0OiAyNSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtNCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTQge1xcbiAgICBoZWlnaHQ6IDMzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTUge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA0MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTUge1xcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC01IHtcXG4gICAgaGVpZ2h0OiA0MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC02IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtNiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC02IHtcXG4gICAgaGVpZ2h0OiA1MCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtNyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtNyB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTcge1xcbiAgICBoZWlnaHQ6IDU4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTgge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTgge1xcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC04IHtcXG4gICAgaGVpZ2h0OiA2Ni42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC05IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNzUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtOSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC05IHtcXG4gICAgaGVpZ2h0OiA3NSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4My4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMTAge1xcbiAgICBoZWlnaHQ6IDgzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTExIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOTEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTExIHtcXG4gICAgaGVpZ2h0OiA5MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0xMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMTIge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcXG4gIC5yb3cgPiAuY29sLWxnLFxcbiAgLnJvdyA+IC5jb2wtbGctYXV0byxcXG4gIC5yb3cgPiAuY29sLWxnLWdyb3csXFxuICAucm93ID4gLmNvbC1sZy0wLFxcbiAgLnJvdyA+IC5jb2wtbGctMSxcXG4gIC5yb3cgPiAuY29sLWxnLTIsXFxuICAucm93ID4gLmNvbC1sZy0zLFxcbiAgLnJvdyA+IC5jb2wtbGctNCxcXG4gIC5yb3cgPiAuY29sLWxnLTUsXFxuICAucm93ID4gLmNvbC1sZy02LFxcbiAgLnJvdyA+IC5jb2wtbGctNyxcXG4gIC5yb3cgPiAuY29sLWxnLTgsXFxuICAucm93ID4gLmNvbC1sZy05LFxcbiAgLnJvdyA+IC5jb2wtbGctMTAsXFxuICAucm93ID4gLmNvbC1sZy0xMSxcXG4gIC5yb3cgPiAuY29sLWxnLTEyLFxcbiAgLmZsZXggPiAuY29sLWxnLFxcbiAgLmZsZXggPiAuY29sLWxnLWF1dG8sXFxuICAuZmxleCA+IC5jb2wtbGctZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC1sZy0wLFxcbiAgLmZsZXggPiAuY29sLWxnLTEsXFxuICAuZmxleCA+IC5jb2wtbGctMixcXG4gIC5mbGV4ID4gLmNvbC1sZy0zLFxcbiAgLmZsZXggPiAuY29sLWxnLTQsXFxuICAuZmxleCA+IC5jb2wtbGctNSxcXG4gIC5mbGV4ID4gLmNvbC1sZy02LFxcbiAgLmZsZXggPiAuY29sLWxnLTcsXFxuICAuZmxleCA+IC5jb2wtbGctOCxcXG4gIC5mbGV4ID4gLmNvbC1sZy05LFxcbiAgLmZsZXggPiAuY29sLWxnLTEwLFxcbiAgLmZsZXggPiAuY29sLWxnLTExLFxcbiAgLmZsZXggPiAuY29sLWxnLTEyIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIG1pbi13aWR0aDogMDtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGcsXFxuICAuY29sdW1uID4gLmNvbC1sZy1hdXRvLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTAsXFxuICAuY29sdW1uID4gLmNvbC1sZy0xLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMixcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTMsXFxuICAuY29sdW1uID4gLmNvbC1sZy00LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNSxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTYsXFxuICAuY29sdW1uID4gLmNvbC1sZy03LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctOCxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTksXFxuICAuY29sdW1uID4gLmNvbC1sZy0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMTIsXFxuICAuZmxleCA+IC5jb2wtbGcsXFxuICAuZmxleCA+IC5jb2wtbGctYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1sZy1ncm93LFxcbiAgLmZsZXggPiAuY29sLWxnLTAsXFxuICAuZmxleCA+IC5jb2wtbGctMSxcXG4gIC5mbGV4ID4gLmNvbC1sZy0yLFxcbiAgLmZsZXggPiAuY29sLWxnLTMsXFxuICAuZmxleCA+IC5jb2wtbGctNCxcXG4gIC5mbGV4ID4gLmNvbC1sZy01LFxcbiAgLmZsZXggPiAuY29sLWxnLTYsXFxuICAuZmxleCA+IC5jb2wtbGctNyxcXG4gIC5mbGV4ID4gLmNvbC1sZy04LFxcbiAgLmZsZXggPiAuY29sLWxnLTksXFxuICAuZmxleCA+IC5jb2wtbGctMTAsXFxuICAuZmxleCA+IC5jb2wtbGctMTEsXFxuICAuZmxleCA+IC5jb2wtbGctMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG1pbi1oZWlnaHQ6IDA7XFxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxuICB9XFxuICAuY29sLWxnIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDA7XFxuICAgICAgICAtbXMtZmxleDogMTAwMDAgMSAwJTtcXG4gICAgICAgICAgICBmbGV4OiAxMDAwMCAxIDAlO1xcbiAgfVxcbiAgLmNvbC1sZy1hdXRvLFxcbiAgLmNvbC1sZy0wLFxcbiAgLmNvbC1sZy0xLFxcbiAgLmNvbC1sZy0yLFxcbiAgLmNvbC1sZy0zLFxcbiAgLmNvbC1sZy00LFxcbiAgLmNvbC1sZy01LFxcbiAgLmNvbC1sZy02LFxcbiAgLmNvbC1sZy03LFxcbiAgLmNvbC1sZy04LFxcbiAgLmNvbC1sZy05LFxcbiAgLmNvbC1sZy0xMCxcXG4gIC5jb2wtbGctMTEsXFxuICAuY29sLWxnLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gIH1cXG4gIC5jb2wtbGctZ3JvdyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0wIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMCB7XFxuICAgIGhlaWdodDogMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0xIHtcXG4gICAgaGVpZ2h0OiA4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxNi42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0yIHtcXG4gICAgaGVpZ2h0OiAxNi42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0zIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMjUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0zIHtcXG4gICAgaGVpZ2h0OiAyNSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctNCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTQge1xcbiAgICBoZWlnaHQ6IDMzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTUge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA0MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTUge1xcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy01IHtcXG4gICAgaGVpZ2h0OiA0MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy02IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctNiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy02IHtcXG4gICAgaGVpZ2h0OiA1MCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctNyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctNyB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTcge1xcbiAgICBoZWlnaHQ6IDU4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTgge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTgge1xcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy04IHtcXG4gICAgaGVpZ2h0OiA2Ni42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy05IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNzUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctOSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy05IHtcXG4gICAgaGVpZ2h0OiA3NSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4My4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMTAge1xcbiAgICBoZWlnaHQ6IDgzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTExIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOTEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTExIHtcXG4gICAgaGVpZ2h0OiA5MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0xMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMTIge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAucm93ID4gLmNvbC14bCxcXG4gIC5yb3cgPiAuY29sLXhsLWF1dG8sXFxuICAucm93ID4gLmNvbC14bC1ncm93LFxcbiAgLnJvdyA+IC5jb2wteGwtMCxcXG4gIC5yb3cgPiAuY29sLXhsLTEsXFxuICAucm93ID4gLmNvbC14bC0yLFxcbiAgLnJvdyA+IC5jb2wteGwtMyxcXG4gIC5yb3cgPiAuY29sLXhsLTQsXFxuICAucm93ID4gLmNvbC14bC01LFxcbiAgLnJvdyA+IC5jb2wteGwtNixcXG4gIC5yb3cgPiAuY29sLXhsLTcsXFxuICAucm93ID4gLmNvbC14bC04LFxcbiAgLnJvdyA+IC5jb2wteGwtOSxcXG4gIC5yb3cgPiAuY29sLXhsLTEwLFxcbiAgLnJvdyA+IC5jb2wteGwtMTEsXFxuICAucm93ID4gLmNvbC14bC0xMixcXG4gIC5mbGV4ID4gLmNvbC14bCxcXG4gIC5mbGV4ID4gLmNvbC14bC1hdXRvLFxcbiAgLmZsZXggPiAuY29sLXhsLWdyb3csXFxuICAuZmxleCA+IC5jb2wteGwtMCxcXG4gIC5mbGV4ID4gLmNvbC14bC0xLFxcbiAgLmZsZXggPiAuY29sLXhsLTIsXFxuICAuZmxleCA+IC5jb2wteGwtMyxcXG4gIC5mbGV4ID4gLmNvbC14bC00LFxcbiAgLmZsZXggPiAuY29sLXhsLTUsXFxuICAuZmxleCA+IC5jb2wteGwtNixcXG4gIC5mbGV4ID4gLmNvbC14bC03LFxcbiAgLmZsZXggPiAuY29sLXhsLTgsXFxuICAuZmxleCA+IC5jb2wteGwtOSxcXG4gIC5mbGV4ID4gLmNvbC14bC0xMCxcXG4gIC5mbGV4ID4gLmNvbC14bC0xMSxcXG4gIC5mbGV4ID4gLmNvbC14bC0xMiB7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgICBtaW4td2lkdGg6IDA7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtYXV0byxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLWdyb3csXFxuICAuY29sdW1uID4gLmNvbC14bC0wLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTIsXFxuICAuY29sdW1uID4gLmNvbC14bC0zLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNCxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTUsXFxuICAuY29sdW1uID4gLmNvbC14bC02LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNyxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTgsXFxuICAuY29sdW1uID4gLmNvbC14bC05LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMTAsXFxuICAuY29sdW1uID4gLmNvbC14bC0xMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTEyLFxcbiAgLmZsZXggPiAuY29sLXhsLFxcbiAgLmZsZXggPiAuY29sLXhsLWF1dG8sXFxuICAuZmxleCA+IC5jb2wteGwtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC14bC0wLFxcbiAgLmZsZXggPiAuY29sLXhsLTEsXFxuICAuZmxleCA+IC5jb2wteGwtMixcXG4gIC5mbGV4ID4gLmNvbC14bC0zLFxcbiAgLmZsZXggPiAuY29sLXhsLTQsXFxuICAuZmxleCA+IC5jb2wteGwtNSxcXG4gIC5mbGV4ID4gLmNvbC14bC02LFxcbiAgLmZsZXggPiAuY29sLXhsLTcsXFxuICAuZmxleCA+IC5jb2wteGwtOCxcXG4gIC5mbGV4ID4gLmNvbC14bC05LFxcbiAgLmZsZXggPiAuY29sLXhsLTEwLFxcbiAgLmZsZXggPiAuY29sLXhsLTExLFxcbiAgLmZsZXggPiAuY29sLXhsLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbC14bCB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDEwMDAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDEwMDAwIDEgMCU7XFxuICAgICAgICAgICAgZmxleDogMTAwMDAgMSAwJTtcXG4gIH1cXG4gIC5jb2wteGwtYXV0byxcXG4gIC5jb2wteGwtMCxcXG4gIC5jb2wteGwtMSxcXG4gIC5jb2wteGwtMixcXG4gIC5jb2wteGwtMyxcXG4gIC5jb2wteGwtNCxcXG4gIC5jb2wteGwtNSxcXG4gIC5jb2wteGwtNixcXG4gIC5jb2wteGwtNyxcXG4gIC5jb2wteGwtOCxcXG4gIC5jb2wteGwtOSxcXG4gIC5jb2wteGwtMTAsXFxuICAuY29sLXhsLTExLFxcbiAgLmNvbC14bC0xMiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDA7XFxuICAgICAgICAtbXMtZmxleDogMCAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICB9XFxuICAuY29sLXhsLWdyb3cge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgICAgLW1zLWZsZXg6IDEgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTAge1xcbiAgICBoZWlnaHQ6IDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMSB7XFxuICAgIGhlaWdodDogOC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0yIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMiB7XFxuICAgIGhlaWdodDogMTYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDI1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMyB7XFxuICAgIGhlaWdodDogMjUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTQge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC00IHtcXG4gICAgaGVpZ2h0OiAzMy4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC01IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNDEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNSB7XFxuICAgIGhlaWdodDogNDEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtNiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDUwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTYge1xcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNiB7XFxuICAgIGhlaWdodDogNTAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTcge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTcge1xcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC03IHtcXG4gICAgaGVpZ2h0OiA1OC4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC04IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNjYuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC04IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtOCB7XFxuICAgIGhlaWdodDogNjYuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtOSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDc1JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTkge1xcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtOSB7XFxuICAgIGhlaWdodDogNzUlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTEwIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogODMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0xMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTEwIHtcXG4gICAgaGVpZ2h0OiA4My4zMzMzJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0xMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDkxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMTEge1xcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0xMSB7XFxuICAgIGhlaWdodDogOTEuNjY2NyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTEyIHtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG59XFxuLmJhY2tkcm9wIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICB3aWR0aDogMTAwdnc7XFxuICBoZWlnaHQ6IDEwMHZoO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yOHMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yOHMgZWFzZS1pbjtcXG59XFxuLmJhY2tkcm9wLmFjdGl2ZSB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4zKTtcXG59XFxuLnJvdW5kLWJvcmRlcnMge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4ICFpbXBvcnRhbnQ7XFxufVxcbi5nZW5lcmljLW1hcmdpbixcXG4uZ3JvdXAgPiAqIHtcXG4gIG1hcmdpbjogNXB4O1xcbn1cXG4ubm8tdHJhbnNpdGlvbiB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcXG4gIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLnRyYW5zaXRpb24tMCB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDBzICFpbXBvcnRhbnQ7XFxuICB0cmFuc2l0aW9uOiAwcyAhaW1wb3J0YW50O1xcbn1cXG4uZ2xvc3N5IHtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGZyb20ocmdiYSgyNTUsMjU1LDI1NSwwLjMpKSwgY29sb3Itc3RvcCg1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMCkpLCBjb2xvci1zdG9wKDUxJSwgcmdiYSgwLDAsMCwwLjEyKSksIHRvKHJnYmEoMCwwLDAsMC4wNCkpKSAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgyNTUsMjU1LDI1NSwwLjMpLCByZ2JhKDI1NSwyNTUsMjU1LDApIDUwJSwgcmdiYSgwLDAsMCwwLjEyKSA1MSUsIHJnYmEoMCwwLDAsMC4wNCkpICFpbXBvcnRhbnQ7XFxufVxcbi5xLXBsYWNlaG9sZGVyOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS1wbGFjZWhvbGRlcjo6LW1vei1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtcGxhY2Vob2xkZXI6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS1ib2R5LWZ1bGxzY3JlZW4tbWl4aW4sXFxuLnEtYm9keS1wcmV2ZW50LXNjcm9sbCB7XFxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XFxufVxcbi5xLW5vLWlucHV0LXNwaW5uZXIge1xcbiAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQgIWltcG9ydGFudDtcXG59XFxuLnEtbm8taW5wdXQtc3Bpbm5lcjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcXG4ucS1uby1pbnB1dC1zcGlubmVyOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gIG1hcmdpbjogMDtcXG59XFxuYS5xLWxpbmsge1xcbiAgb3V0bGluZTogMDtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbn1cXG4ucS1zZWxlY3QtaGlnaGxpZ2h0IHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTg5LDE4OSwxODksMC41KSAhaW1wb3J0YW50O1xcbn1cXG4uaGlnaGxpZ2h0LWFuZC1mYWRlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWhpZ2hsaWdodCAycyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtaGlnaGxpZ2h0IDJzIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi50cmFuc2l0aW9uLWdlbmVyaWMge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcztcXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xcbn1cXG4uYW5pbWF0ZS1zcGluLFxcbi5hbmltYXRlLXNwaW4tcmV2ZXJzZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1zcGluIDJzIGluZmluaXRlIGxpbmVhciAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXIgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtc3Bpbi1yZXZlcnNlIHtcXG4gIGFuaW1hdGlvbi1kaXJlY3Rpb246IHJldmVyc2U7XFxufVxcbi5hbmltYXRlLWJsaW5rIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWJsaW5rIDFzIHN0ZXBzKDUsIHN0YXJ0KSBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtYmxpbmsgMXMgc3RlcHMoNSwgc3RhcnQpIGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLXBvcCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wb3AgMC4ycyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcG9wIDAuMnMgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtc2NhbGUge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtc2NhbGUgMC4ycyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtc2NhbGUgMC4ycyAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1mYWRlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWZhZGUgMC4ycyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtZmFkZSAwLjJzIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLWJvdW5jZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1ib3VuY2UgMnMgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWJvdW5jZSAycyBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1zaGFrZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1zaGFrZSAwLjE1cztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXNoYWtlIDAuMTVzO1xcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtcXG4gICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSk7XFxufVxcbi5hbmltYXRlLXBvcHVwLXVwLFxcbi5hbmltYXRlLXBvcHVwLWRvd24ge1xcbiAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG59XFxuLmFuaW1hdGUtcG9wdXAtdXAgPiAqLFxcbi5hbmltYXRlLXBvcHVwLWRvd24gPiAqIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWZhZGUgMC44MnMgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44Nik7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1mYWRlIDAuODJzIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpO1xcbn1cXG4uYW5pbWF0ZS1wb3B1cC1kb3duIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXBvcHVwLWRvd24gMC4zNnMgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXBvcHVwLWRvd24gMC4zNnMgLyogcnRsOmlnbm9yZSAqLztcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3AgMHB4IC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgdG9wIDBweCAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1wb3B1cC11cCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wb3B1cC11cCAwLjM2cyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcG9wdXAtdXAgMC4zNnMgLyogcnRsOmlnbm9yZSAqLztcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b20gMHB4IC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgYm90dG9tIDBweCAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1mYWRlLWxlZnQge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtZmFkZSAwLjM2cyBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KSwgcS1zbGlkZS1sZWZ0IDAuMzZzIGVhc2U7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1mYWRlIDAuMzZzIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpLCBxLXNsaWRlLWxlZnQgMC4zNnMgZWFzZTtcXG59XFxuLmFuaW1hdGUtZmFkZS1yaWdodCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1mYWRlIDAuMzZzIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpLCBxLXNsaWRlLXJpZ2h0IDAuMzZzIGVhc2U7XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1mYWRlIDAuMzZzIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpLCBxLXNsaWRlLXJpZ2h0IDAuMzZzIGVhc2U7XFxufVxcbi5hbmltYXRlZCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XFxuICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMXM7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XFxuICAgICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XFxufVxcbi5hbmltYXRlZC5pbmZpbml0ZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xcbiAgICAgICAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcXG59XFxuLmFuaW1hdGVkLmhpbmdlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcXG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAycztcXG59XFxuLmFuaW1hdGVkLmZsaXBPdXRYLFxcbi5hbmltYXRlZC5mbGlwT3V0WSxcXG4uYW5pbWF0ZWQuYm91bmNlSW4sXFxuLmFuaW1hdGVkLmJvdW5jZU91dCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMC43NXM7XFxuICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC43NXM7XFxufVxcbi5ub24tc2VsZWN0YWJsZSB7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5zY3JvbGwge1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcbi5zY3JvbGwsXFxuLnNjcm9sbC14LFxcbi5zY3JvbGwteSB7XFxuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XFxuICB3aWxsLWNoYW5nZTogc2Nyb2xsLXBvc2l0aW9uO1xcbn1cXG4uc2Nyb2xsLXgge1xcbiAgb3ZlcmZsb3cteDogYXV0bztcXG59XFxuLnNjcm9sbC15IHtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxufVxcbi5uby1zY3JvbGwge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xcbn1cXG4ubm8tcG9pbnRlci1ldmVudHMge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLmFsbC1wb2ludGVyLWV2ZW50cyB7XFxuICBwb2ludGVyLWV2ZW50czogYWxsICFpbXBvcnRhbnQ7XFxufVxcbi5jdXJzb3ItcG9pbnRlciB7XFxuICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcXG59XFxuLmN1cnNvci1ub3QtYWxsb3dlZCB7XFxuICBjdXJzb3I6IG5vdC1hbGxvd2VkICFpbXBvcnRhbnQ7XFxufVxcbi5jdXJzb3ItaW5oZXJpdCB7XFxuICBjdXJzb3I6IGluaGVyaXQgIWltcG9ydGFudDtcXG59XFxuLnJvdGF0ZS00NSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS05MCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS0xMzUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS0xODAge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS0yMDUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyMDVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDIwNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS0yNzAge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnJvdGF0ZS0zMTUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzMTVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDMxNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmZsaXAtaG9yaXpvbnRhbCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKC0xLCAxKTtcXG59XFxuLmZsaXAtdmVydGljYWwge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLCAtMSk7XFxufVxcbi5mbG9hdC1sZWZ0IHtcXG4gIGZsb2F0OiBsZWZ0O1xcbn1cXG4uZmxvYXQtcmlnaHQge1xcbiAgZmxvYXQ6IHJpZ2h0O1xcbn1cXG4ucmVsYXRpdmUtcG9zaXRpb24ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4uZml4ZWQsXFxuLmZ1bGxzY3JlZW4sXFxuLmZpeGVkLWNlbnRlcixcXG4uZml4ZWQtYm90dG9tLFxcbi5maXhlZC1sZWZ0LFxcbi5maXhlZC1yaWdodCxcXG4uZml4ZWQtdG9wLFxcbi5maXhlZC10b3AtbGVmdCxcXG4uZml4ZWQtdG9wLXJpZ2h0LFxcbi5maXhlZC1ib3R0b20tbGVmdCxcXG4uZml4ZWQtYm90dG9tLXJpZ2h0IHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG59XFxuLmFic29sdXRlLFxcbi5hYnNvbHV0ZS1mdWxsLFxcbi5hYnNvbHV0ZS1jZW50ZXIsXFxuLmFic29sdXRlLWJvdHRvbSxcXG4uYWJzb2x1dGUtbGVmdCxcXG4uYWJzb2x1dGUtcmlnaHQsXFxuLmFic29sdXRlLXRvcCxcXG4uYWJzb2x1dGUtdG9wLWxlZnQsXFxuLmFic29sdXRlLXRvcC1yaWdodCxcXG4uYWJzb2x1dGUtYm90dG9tLWxlZnQsXFxuLmFic29sdXRlLWJvdHRvbS1yaWdodCB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxufVxcbi5maXhlZC10b3AsXFxuLmFic29sdXRlLXRvcCB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxufVxcbi5maXhlZC1yaWdodCxcXG4uYWJzb2x1dGUtcmlnaHQge1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxufVxcbi5maXhlZC1ib3R0b20sXFxuLmFic29sdXRlLWJvdHRvbSB7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5maXhlZC1sZWZ0LFxcbi5hYnNvbHV0ZS1sZWZ0IHtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5maXhlZC10b3AtbGVmdCxcXG4uYWJzb2x1dGUtdG9wLWxlZnQge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuLmZpeGVkLXRvcC1yaWdodCxcXG4uYWJzb2x1dGUtdG9wLXJpZ2h0IHtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbn1cXG4uZml4ZWQtYm90dG9tLWxlZnQsXFxuLmFic29sdXRlLWJvdHRvbS1sZWZ0IHtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5maXhlZC1ib3R0b20tcmlnaHQsXFxuLmFic29sdXRlLWJvdHRvbS1yaWdodCB7XFxuICBib3R0b206IDA7XFxuICByaWdodDogMDtcXG59XFxuLmZ1bGxzY3JlZW4ge1xcbiAgei1pbmRleDogNjAwMDtcXG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcXG4gIG1heC13aWR0aDogMTAwdnc7XFxuICBtYXgtaGVpZ2h0OiAxMDB2aDtcXG59XFxuLmFic29sdXRlLWZ1bGwsXFxuLmZ1bGxzY3JlZW4ge1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbn1cXG4uZml4ZWQtY2VudGVyLFxcbi5hYnNvbHV0ZS1jZW50ZXIge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcXG59XFxuLnZlcnRpY2FsLXRvcCB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogdG9wICFpbXBvcnRhbnQ7XFxufVxcbi52ZXJ0aWNhbC1taWRkbGUge1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZSAhaW1wb3J0YW50O1xcbn1cXG4udmVydGljYWwtYm90dG9tIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b20gIWltcG9ydGFudDtcXG59XFxuLm9uLWxlZnQge1xcbiAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xcbn1cXG4ub24tcmlnaHQge1xcbiAgbWFyZ2luLWxlZnQ6IDEycHg7XFxufVxcbi5xLXJpcHBsZS1jb250YWluZXIge1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHotaW5kZXg6IDA7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtcmlwcGxlLWFuaW1hdGlvbiB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxuICBvcGFjaXR5OiAwO1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3Mgb3BhY2l0eSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC4xKSwgMC4zcyAtd2Via2l0LXRyYW5zZm9ybSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC45KTtcXG4gIHRyYW5zaXRpb246IDAuM3Mgb3BhY2l0eSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC4xKSwgMC4zcyAtd2Via2l0LXRyYW5zZm9ybSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC45KTtcXG4gIHRyYW5zaXRpb246IDAuM3MgdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjkpLCAwLjNzIG9wYWNpdHkgY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIHRyYW5zZm9ybSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC45KSwgMC4zcyBvcGFjaXR5IGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjEpLCAwLjNzIC13ZWJraXQtdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjkpO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcXG59XFxuLnEtcmlwcGxlLWFuaW1hdGlvbi1lbnRlciB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7XFxuICB0cmFuc2l0aW9uOiBub25lO1xcbn1cXG4ucS1yaXBwbGUtYW5pbWF0aW9uLXZpc2libGUge1xcbiAgb3BhY2l0eTogMC4xNTtcXG59XFxuLnEtcmFkaWFsLXJpcHBsZSB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC01MCU7XFxuICBsZWZ0OiAtNTAlO1xcbiAgd2lkdGg6IDIwMCU7XFxuICBoZWlnaHQ6IDIwMCU7XFxufVxcbi5xLXJhZGlhbC1yaXBwbGU6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChjaXJjbGUsIGN1cnJlbnRDb2xvciAxMCUsIHRyYW5zcGFyZW50IDEwLjAxJSk7XFxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEwLCAxMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMTAsIDEwKTtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXM7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDFzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjVzO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMsIG9wYWNpdHkgMXM7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cywgb3BhY2l0eSAxcywgLXdlYmtpdC10cmFuc2Zvcm0gMC41cztcXG59XFxuLnEtcmFkaWFsLXJpcHBsZS5hY3RpdmU6YWZ0ZXIge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAsIDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAsIDApO1xcbiAgb3BhY2l0eTogMC40O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwcztcXG4gIHRyYW5zaXRpb246IDBzO1xcbn1cXG46cm9vdCB7XFxuICAtLXEtc2l6ZS14czogMDtcXG4gIC0tcS1zaXplLXNtOiA1NzZweDtcXG4gIC0tcS1zaXplLW1kOiA3NjhweDtcXG4gIC0tcS1zaXplLWxnOiA5OTJweDtcXG4gIC0tcS1zaXplLXhsOiAxMjAwcHg7XFxufVxcbi5maXQge1xcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcXG4gIGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xcbn1cXG4uZnVsbC1oZWlnaHQge1xcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XFxufVxcbi5mdWxsLXdpZHRoIHtcXG4gIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XFxufVxcbi53aW5kb3ctaGVpZ2h0IHtcXG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcXG4gIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcXG4gIGhlaWdodDogMTAwdmggIWltcG9ydGFudDtcXG59XFxuLndpbmRvdy13aWR0aCB7XFxuICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XFxuICB3aWR0aDogMTAwdncgIWltcG9ydGFudDtcXG59XFxuLmJsb2NrIHtcXG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XFxufVxcbi5pbmxpbmUtYmxvY2sge1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7XFxufVxcbi5xLXBhLW5vbmUge1xcbiAgcGFkZGluZzogMCAwO1xcbn1cXG4ucS1wbC1ub25lLFxcbi5xLXB4LW5vbmUge1xcbiAgcGFkZGluZy1sZWZ0OiAwO1xcbn1cXG4ucS1wci1ub25lLFxcbi5xLXB4LW5vbmUge1xcbiAgcGFkZGluZy1yaWdodDogMDtcXG59XFxuLnEtcHQtbm9uZSxcXG4ucS1weS1ub25lIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4ucS1wYi1ub25lLFxcbi5xLXB5LW5vbmUge1xcbiAgcGFkZGluZy1ib3R0b206IDA7XFxufVxcbi5xLW1hLW5vbmUge1xcbiAgbWFyZ2luOiAwIDA7XFxufVxcbi5xLW1sLW5vbmUsXFxuLnEtbXgtbm9uZSB7XFxuICBtYXJnaW4tbGVmdDogMDtcXG59XFxuLnEtbXItbm9uZSxcXG4ucS1teC1ub25lIHtcXG4gIG1hcmdpbi1yaWdodDogMDtcXG59XFxuLnEtbXQtbm9uZSxcXG4ucS1teS1ub25lIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxufVxcbi5xLW1iLW5vbmUsXFxuLnEtbXktbm9uZSB7XFxuICBtYXJnaW4tYm90dG9tOiAwO1xcbn1cXG4ucS1wYS14cyB7XFxuICBwYWRkaW5nOiA0cHggNHB4O1xcbn1cXG4ucS1wbC14cyxcXG4ucS1weC14cyB7XFxuICBwYWRkaW5nLWxlZnQ6IDRweDtcXG59XFxuLnEtcHIteHMsXFxuLnEtcHgteHMge1xcbiAgcGFkZGluZy1yaWdodDogNHB4O1xcbn1cXG4ucS1wdC14cyxcXG4ucS1weS14cyB7XFxuICBwYWRkaW5nLXRvcDogNHB4O1xcbn1cXG4ucS1wYi14cyxcXG4ucS1weS14cyB7XFxuICBwYWRkaW5nLWJvdHRvbTogNHB4O1xcbn1cXG4ucS1tYS14cyB7XFxuICBtYXJnaW46IDRweCA0cHg7XFxufVxcbi5xLW1sLXhzLFxcbi5xLW14LXhzIHtcXG4gIG1hcmdpbi1sZWZ0OiA0cHg7XFxufVxcbi5xLW1yLXhzLFxcbi5xLW14LXhzIHtcXG4gIG1hcmdpbi1yaWdodDogNHB4O1xcbn1cXG4ucS1tdC14cyxcXG4ucS1teS14cyB7XFxuICBtYXJnaW4tdG9wOiA0cHg7XFxufVxcbi5xLW1iLXhzLFxcbi5xLW15LXhzIHtcXG4gIG1hcmdpbi1ib3R0b206IDRweDtcXG59XFxuLnEtcGEtc20ge1xcbiAgcGFkZGluZzogOHB4IDhweDtcXG59XFxuLnEtcGwtc20sXFxuLnEtcHgtc20ge1xcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XFxufVxcbi5xLXByLXNtLFxcbi5xLXB4LXNtIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcXG59XFxuLnEtcHQtc20sXFxuLnEtcHktc20ge1xcbiAgcGFkZGluZy10b3A6IDhweDtcXG59XFxuLnEtcGItc20sXFxuLnEtcHktc20ge1xcbiAgcGFkZGluZy1ib3R0b206IDhweDtcXG59XFxuLnEtbWEtc20ge1xcbiAgbWFyZ2luOiA4cHggOHB4O1xcbn1cXG4ucS1tbC1zbSxcXG4ucS1teC1zbSB7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG4ucS1tci1zbSxcXG4ucS1teC1zbSB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuLnEtbXQtc20sXFxuLnEtbXktc20ge1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbn1cXG4ucS1tYi1zbSxcXG4ucS1teS1zbSB7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxufVxcbi5xLXBhLW1kIHtcXG4gIHBhZGRpbmc6IDE2cHggMTZweDtcXG59XFxuLnEtcGwtbWQsXFxuLnEtcHgtbWQge1xcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xcbn1cXG4ucS1wci1tZCxcXG4ucS1weC1tZCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNnB4O1xcbn1cXG4ucS1wdC1tZCxcXG4ucS1weS1tZCB7XFxuICBwYWRkaW5nLXRvcDogMTZweDtcXG59XFxuLnEtcGItbWQsXFxuLnEtcHktbWQge1xcbiAgcGFkZGluZy1ib3R0b206IDE2cHg7XFxufVxcbi5xLW1hLW1kIHtcXG4gIG1hcmdpbjogMTZweCAxNnB4O1xcbn1cXG4ucS1tbC1tZCxcXG4ucS1teC1tZCB7XFxuICBtYXJnaW4tbGVmdDogMTZweDtcXG59XFxuLnEtbXItbWQsXFxuLnEtbXgtbWQge1xcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xcbn1cXG4ucS1tdC1tZCxcXG4ucS1teS1tZCB7XFxuICBtYXJnaW4tdG9wOiAxNnB4O1xcbn1cXG4ucS1tYi1tZCxcXG4ucS1teS1tZCB7XFxuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xcbn1cXG4ucS1wYS1sZyB7XFxuICBwYWRkaW5nOiAyNHB4IDI0cHg7XFxufVxcbi5xLXBsLWxnLFxcbi5xLXB4LWxnIHtcXG4gIHBhZGRpbmctbGVmdDogMjRweDtcXG59XFxuLnEtcHItbGcsXFxuLnEtcHgtbGcge1xcbiAgcGFkZGluZy1yaWdodDogMjRweDtcXG59XFxuLnEtcHQtbGcsXFxuLnEtcHktbGcge1xcbiAgcGFkZGluZy10b3A6IDI0cHg7XFxufVxcbi5xLXBiLWxnLFxcbi5xLXB5LWxnIHtcXG4gIHBhZGRpbmctYm90dG9tOiAyNHB4O1xcbn1cXG4ucS1tYS1sZyB7XFxuICBtYXJnaW46IDI0cHggMjRweDtcXG59XFxuLnEtbWwtbGcsXFxuLnEtbXgtbGcge1xcbiAgbWFyZ2luLWxlZnQ6IDI0cHg7XFxufVxcbi5xLW1yLWxnLFxcbi5xLW14LWxnIHtcXG4gIG1hcmdpbi1yaWdodDogMjRweDtcXG59XFxuLnEtbXQtbGcsXFxuLnEtbXktbGcge1xcbiAgbWFyZ2luLXRvcDogMjRweDtcXG59XFxuLnEtbWItbGcsXFxuLnEtbXktbGcge1xcbiAgbWFyZ2luLWJvdHRvbTogMjRweDtcXG59XFxuLnEtcGEteGwge1xcbiAgcGFkZGluZzogNDhweCA0OHB4O1xcbn1cXG4ucS1wbC14bCxcXG4ucS1weC14bCB7XFxuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XFxufVxcbi5xLXByLXhsLFxcbi5xLXB4LXhsIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDQ4cHg7XFxufVxcbi5xLXB0LXhsLFxcbi5xLXB5LXhsIHtcXG4gIHBhZGRpbmctdG9wOiA0OHB4O1xcbn1cXG4ucS1wYi14bCxcXG4ucS1weS14bCB7XFxuICBwYWRkaW5nLWJvdHRvbTogNDhweDtcXG59XFxuLnEtbWEteGwge1xcbiAgbWFyZ2luOiA0OHB4IDQ4cHg7XFxufVxcbi5xLW1sLXhsLFxcbi5xLW14LXhsIHtcXG4gIG1hcmdpbi1sZWZ0OiA0OHB4O1xcbn1cXG4ucS1tci14bCxcXG4ucS1teC14bCB7XFxuICBtYXJnaW4tcmlnaHQ6IDQ4cHg7XFxufVxcbi5xLW10LXhsLFxcbi5xLW15LXhsIHtcXG4gIG1hcmdpbi10b3A6IDQ4cHg7XFxufVxcbi5xLW1iLXhsLFxcbi5xLW15LXhsIHtcXG4gIG1hcmdpbi1ib3R0b206IDQ4cHg7XFxufVxcbi5xLW1sLWF1dG8sXFxuLnEtbXgtYXV0byB7XFxuICBtYXJnaW4tbGVmdDogYXV0bztcXG59XFxuLnEtbXItYXV0byxcXG4ucS1teC1hdXRvIHtcXG4gIG1hcmdpbi1yaWdodDogYXV0bztcXG59XFxuLnEtbXktZm9ybSB7XFxuICBtYXJnaW4tdG9wOiAxNnB4O1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbn1cXG4ucS10b3VjaCB7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgdXNlci1kcmFnOiBub25lO1xcbiAgLWtodG1sLXVzZXItZHJhZzogbm9uZTtcXG4gIC13ZWJraXQtdXNlci1kcmFnOiBub25lO1xcbn1cXG4ucS10b3VjaC14IHtcXG4gIC1tcy10b3VjaC1hY3Rpb246IHBhbi14O1xcbiAgICAgIHRvdWNoLWFjdGlvbjogcGFuLXg7XFxufVxcbi5xLXRvdWNoLXkge1xcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXk7XFxuICAgICAgdG91Y2gtYWN0aW9uOiBwYW4teTtcXG59XFxuYm9keSB7XFxuICBtaW4td2lkdGg6IDEwMHB4O1xcbiAgZm9udC1mYW1pbHk6ICdSb2JvdG8nLCAnLWFwcGxlLXN5c3RlbScsICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XFxuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcXG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcXG4gIGZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICBjb2xvcjogIzBjMGMwYztcXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xcbn1cXG5oMSB7XFxuICBmb250LXNpemU6IDExMnB4O1xcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjEyO1xcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjA0ZW07XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICBoMSB7XFxuICAgIGZvbnQtc2l6ZTogNjcuMnB4O1xcbiAgfVxcbn1cXG5oMiB7XFxuICBmb250LXNpemU6IDU2cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMzU7XFxuICBsZXR0ZXItc3BhY2luZzogLTAuMDJlbTtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGgyIHtcXG4gICAgZm9udC1zaXplOiAzMy42cHg7XFxuICB9XFxufVxcbmgzIHtcXG4gIGZvbnQtc2l6ZTogNDVweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogNDhweDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICBoMyB7XFxuICAgIGZvbnQtc2l6ZTogMjdweDtcXG4gIH1cXG59XFxuaDQge1xcbiAgZm9udC1zaXplOiAzNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGg0IHtcXG4gICAgZm9udC1zaXplOiAyMC40cHg7XFxuICB9XFxufVxcbmg1IHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogMzJweDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICBoNSB7XFxuICAgIGZvbnQtc2l6ZTogMTQuMzk5OTk5OTk5OTk5OTk5cHg7XFxuICB9XFxufVxcbmg2IHtcXG4gIGZvbnQtc2l6ZTogMjBweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBsaW5lLWhlaWdodDogMS4xMjtcXG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XFxufVxcbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICBoNiB7XFxuICAgIGZvbnQtc2l6ZTogMTJweDtcXG4gIH1cXG59XFxuLnEtZGlzcGxheS00LW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC41NDtcXG59XFxuLnEtZGlzcGxheS00IHtcXG4gIGZvbnQtc2l6ZTogMTEycHg7XFxuICBmb250LXdlaWdodDogMzAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTI7XFxuICBsZXR0ZXItc3BhY2luZzogLTAuMDRlbTtcXG59XFxuLnEtZGlzcGxheS0zLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC41NDtcXG59XFxuLnEtZGlzcGxheS0zIHtcXG4gIGZvbnQtc2l6ZTogNTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogMS4zNTtcXG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xcbn1cXG4ucS1kaXNwbGF5LTItb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjU0O1xcbn1cXG4ucS1kaXNwbGF5LTIge1xcbiAgZm9udC1zaXplOiA0NXB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuLnEtZGlzcGxheS0xLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC41NDtcXG59XFxuLnEtZGlzcGxheS0xIHtcXG4gIGZvbnQtc2l6ZTogMzRweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogNDBweDtcXG4gIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XFxufVxcbi5xLWhlYWRsaW5lLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC44NztcXG59XFxuLnEtaGVhZGxpbmUge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuLnEtdGl0bGUtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjg3O1xcbn1cXG4ucS10aXRsZSB7XFxuICBmb250LXNpemU6IDIwcHg7XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTI7XFxuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xcbn1cXG4ucS1zdWJoZWFkaW5nLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC44NztcXG59XFxuLnEtc3ViaGVhZGluZyB7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbn1cXG4ucS1ib2R5LTItb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjg3O1xcbn1cXG4ucS1ib2R5LTIge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG59XFxuLnEtYm9keS0xLW9wYWNpdHkge1xcbiAgb3BhY2l0eTogMC44NztcXG59XFxuLnEtYm9keS0xIHtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxufVxcbi5xLWNhcHRpb24tb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjU0O1xcbn1cXG4ucS1jYXB0aW9uIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxufVxcbnAge1xcbiAgbWFyZ2luOiAwIDAgMTZweDtcXG59XFxuLmNhcHRpb24ge1xcbiAgY29sb3I6ICM0MjQyNDI7XFxuICBsZXR0ZXItc3BhY2luZzogMDtcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgcGFkZGluZzogMDtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxufVxcbi51cHBlcmNhc2Uge1xcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcXG59XFxuLmxvd2VyY2FzZSB7XFxuICB0ZXh0LXRyYW5zZm9ybTogbG93ZXJjYXNlO1xcbn1cXG4uY2FwaXRhbGl6ZSB7XFxuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcXG59XFxuLnRleHQtY2VudGVyIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuLnRleHQtbGVmdCB7XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbn1cXG4udGV4dC1yaWdodCB7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG59XFxuLnRleHQtanVzdGlmeSB7XFxuICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xcbiAgLXdlYmtpdC1oeXBoZW5zOiBhdXRvO1xcbiAgICAgIC1tcy1oeXBoZW5zOiBhdXRvO1xcbiAgICAgICAgICBoeXBoZW5zOiBhdXRvO1xcbn1cXG4udGV4dC1pdGFsaWMge1xcbiAgZm9udC1zdHlsZTogaXRhbGljO1xcbn1cXG4udGV4dC1ib2xkIHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbn1cXG4udGV4dC1uby13cmFwIHtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxufVxcbi50ZXh0LXdlaWdodC10aGluIHtcXG4gIGZvbnQtd2VpZ2h0OiAxMDA7XFxufVxcbi50ZXh0LXdlaWdodC1saWdodCB7XFxuICBmb250LXdlaWdodDogMzAwO1xcbn1cXG4udGV4dC13ZWlnaHQtcmVndWxhciB7XFxuICBmb250LXdlaWdodDogNDAwO1xcbn1cXG4udGV4dC13ZWlnaHQtbWVkaXVtIHtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxufVxcbi50ZXh0LXdlaWdodC1ib2xkIHtcXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XFxufVxcbi50ZXh0LXdlaWdodC1ib2xkZXIge1xcbiAgZm9udC13ZWlnaHQ6IDkwMDtcXG59XFxuc21hbGwge1xcbiAgZm9udC1zaXplOiA4MCU7XFxufVxcbmJpZyB7XFxuICBmb250LXNpemU6IDE3MCU7XFxufVxcbnN1YiB7XFxuICBib3R0b206IC0wLjI1ZW07XFxufVxcbnN1cCB7XFxuICB0b3A6IC0wLjVlbTtcXG59XFxuYmxvY2txdW90ZSB7XFxuICBwYWRkaW5nOiA4cHggMTZweDtcXG4gIG1hcmdpbjogMDtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgIzAyN2JlMztcXG4gIGJvcmRlci1sZWZ0OiA0cHggc29saWQgdmFyKC0tcS1jb2xvci1wcmltYXJ5KTtcXG59XFxuYmxvY2txdW90ZS50ZXh0LXJpZ2h0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDE2cHg7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCAjMDI3YmUzO1xcbiAgYm9yZGVyLXJpZ2h0OiA0cHggc29saWQgdmFyKC0tcS1jb2xvci1wcmltYXJ5KTtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcbmJsb2NrcXVvdGUgc21hbGwge1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBsaW5lLWhlaWdodDogMS40O1xcbiAgY29sb3I6ICM3Nzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1mYWRlZCk7XFxufVxcbmJsb2NrcXVvdGUgc21hbGw6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICdcXFxcMjAxNCBcXFxcMDBBMCc7XFxufVxcbi5xdW90ZSB7XFxuICBwYWRkaW5nOiAxMHB4IDIwcHg7XFxuICBtYXJnaW46IDAgMCAyMHB4O1xcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCAjMDI3YmUzO1xcbiAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCB2YXIoLS1xLWNvbG9yLXByaW1hcnkpO1xcbn1cXG4ucXVvdGUudGV4dC1yaWdodCB7XFxuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xcbiAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgIzAyN2JlMztcXG4gIGJvcmRlci1yaWdodDogNXB4IHNvbGlkIHZhcigtLXEtY29sb3ItcHJpbWFyeSk7XFxuICBib3JkZXItbGVmdDogMDtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG5kdCB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuZGQge1xcbiAgbWFyZ2luLWxlZnQ6IDA7XFxufVxcbmR0LFxcbmRkIHtcXG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XFxufVxcbmRsIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xcbn1cXG5kbC5ob3Jpem9udGFsIGR0IHtcXG4gIGZsb2F0OiBsZWZ0O1xcbiAgd2lkdGg6IDI1JTtcXG4gIGNsZWFyOiBsZWZ0O1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbn1cXG5kbC5ob3Jpem9udGFsIGRkIHtcXG4gIG1hcmdpbi1sZWZ0OiAzMCU7XFxufVxcbmhyLnEtaHIsXFxuaHIucS1oci1kYXJrIHtcXG4gIGhlaWdodDogMXB4O1xcbiAgbWluLWhlaWdodDogMXB4O1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBib3JkZXI6IG5vbmU7XFxuICB3aWR0aDogMTAwJTtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbmhyLnEtaHItZGFyayB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMzYpO1xcbn1cXG4ubm8tbWFyZ2luIHtcXG4gIG1hcmdpbjogMCAhaW1wb3J0YW50O1xcbn1cXG4ubm8tcGFkZGluZyB7XFxuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5uby1ib3JkZXIge1xcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5uby1ib3JkZXItcmFkaXVzIHtcXG4gIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcXG59XFxuLm5vLWJveC1zaGFkb3cge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLm5vLW91dGxpbmUge1xcbiAgb3V0bGluZTogMCAhaW1wb3J0YW50O1xcbn1cXG4uZWxsaXBzaXMge1xcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLmVsbGlwc2lzLTItbGluZXMsXFxuLmVsbGlwc2lzLTMtbGluZXMge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG59XFxuLmVsbGlwc2lzLTItbGluZXMge1xcbiAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xcbn1cXG4uZWxsaXBzaXMtMy1saW5lcyB7XFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDM7XFxufVxcbi5yZWFkb25seSB7XFxuICBjdXJzb3I6IGRlZmF1bHQgIWltcG9ydGFudDtcXG59XFxuLmRpc2FibGVkLFxcbltkaXNhYmxlZF0sXFxuLmRpc2FibGVkICosXFxuW2Rpc2FibGVkXSAqIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcXG59XFxuLmRpc2FibGVkLFxcbltkaXNhYmxlZF0ge1xcbiAgb3BhY2l0eTogMC42ICFpbXBvcnRhbnQ7XFxufVxcbi5oaWRkZW4ge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4uaW52aXNpYmxlIHtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xcbn1cXG4udHJhbnNwYXJlbnQge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG59XFxuLm92ZXJmbG93LWF1dG8ge1xcbiAgb3ZlcmZsb3c6IGF1dG8gIWltcG9ydGFudDtcXG59XFxuLm92ZXJmbG93LWhpZGRlbiB7XFxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XFxufVxcbi5vdmVyZmxvdy1oaWRkZW4teSB7XFxuICBvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDtcXG59XFxuLmRpbW1lZDphZnRlcixcXG4ubGlnaHQtZGltbWVkOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbn1cXG4uZGltbWVkOmFmdGVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC40KSAhaW1wb3J0YW50O1xcbn1cXG4ubGlnaHQtZGltbWVkOmFmdGVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC42KSAhaW1wb3J0YW50O1xcbn1cXG4uei10b3Age1xcbiAgei1pbmRleDogNzAwMCAhaW1wb3J0YW50O1xcbn1cXG4uei1tYXgge1xcbiAgei1pbmRleDogOTk5OCAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCguZGVza3RvcCkgLmRlc2t0b3Atb25seSxcXG5ib2R5LmRlc2t0b3AgLmRlc2t0b3AtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5tb2JpbGUpIC5tb2JpbGUtb25seSxcXG5ib2R5Lm1vYmlsZSAubW9iaWxlLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCguY29yZG92YSkgLmNvcmRvdmEtb25seSxcXG5ib2R5LmNvcmRvdmEgLmNvcmRvdmEtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5lbGVjdHJvbikgLmVsZWN0cm9uLW9ubHksXFxuYm9keS5lbGVjdHJvbiAuZWxlY3Ryb24taGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5pb3MpIC5pb3Mtb25seSxcXG5ib2R5LmlvcyAuaW9zLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCgubWF0KSAubWF0LW9ubHksXFxuYm9keS5tYXQgLm1hdC1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLnRvdWNoKSAudG91Y2gtb25seSxcXG5ib2R5LnRvdWNoIC50b3VjaC1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLndpdGhpbi1pZnJhbWUpIC53aXRoaW4taWZyYW1lLW9ubHksXFxuYm9keS53aXRoaW4taWZyYW1lIC53aXRoaW4taWZyYW1lLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCgucGxhdGZvcm0taW9zKSAucGxhdGZvcm0taW9zLW9ubHksXFxuYm9keS5wbGF0Zm9ybS1pb3MgLnBsYXRmb3JtLWlvcy1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLnBsYXRmb3JtLWFuZHJvaWQpIC5wbGF0Zm9ybS1hbmRyb2lkLW9ubHksXFxuYm9keS5wbGF0Zm9ybS1hbmRyb2lkIC5wbGF0Zm9ybS1hbmRyb2lkLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5AbWVkaWEgYWxsIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XFxuICAub3JpZW50YXRpb24tbGFuZHNjYXBlIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgYWxsIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xcbiAgLm9yaWVudGF0aW9uLXBvcnRyYWl0IHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgc2NyZWVuIHtcXG4gIC5wcmludC1vbmx5IHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgcHJpbnQge1xcbiAgLnByaW50LWhpZGUge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA1NzVweCkge1xcbiAgLnhzLWhpZGUsXFxuICAuZ3QteHMsXFxuICAuc20sXFxuICAuZ3Qtc20sXFxuICAubWQsXFxuICAuZ3QtbWQsXFxuICAubGcsXFxuICAuZ3QtbGcsXFxuICAueGwge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkgYW5kIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAuc20taGlkZSxcXG4gIC54cyxcXG4gIC5sdC1zbSxcXG4gIC5ndC1zbSxcXG4gIC5tZCxcXG4gIC5ndC1tZCxcXG4gIC5sZyxcXG4gIC5ndC1sZyxcXG4gIC54bCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogOTkxcHgpIHtcXG4gIC5tZC1oaWRlLFxcbiAgLnhzLFxcbiAgLmx0LXNtLFxcbiAgLnNtLFxcbiAgLmx0LW1kLFxcbiAgLmd0LW1kLFxcbiAgLmxnLFxcbiAgLmd0LWxnLFxcbiAgLnhsIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIGFuZCAobWF4LXdpZHRoOiAxMTk5cHgpIHtcXG4gIC5sZy1oaWRlLFxcbiAgLnhzLFxcbiAgLmx0LXNtLFxcbiAgLnNtLFxcbiAgLmx0LW1kLFxcbiAgLm1kLFxcbiAgLmx0LWxnLFxcbiAgLmd0LWxnLFxcbiAgLnhsIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAueGwtaGlkZSxcXG4gIC54cyxcXG4gIC5sdC1zbSxcXG4gIC5zbSxcXG4gIC5sdC1tZCxcXG4gIC5tZCxcXG4gIC5sdC1sZyxcXG4gIC5sZyxcXG4gIC5sdC14bCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuLnEtZm9jdXMtaGVscGVyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgb3BhY2l0eTogMC4xNTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG59XFxuLnEtZm9jdXMtaGVscGVyLXJvdW5kZWQge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbn1cXG4ucS1mb2N1cy1oZWxwZXItcm91bmQge1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtZm9jdXNhYmxlOmZvY3VzIC5xLWZvY3VzLWhlbHBlcixcXG5ib2R5LmRlc2t0b3AgLnEtaG92ZXJhYmxlOmhvdmVyIC5xLWZvY3VzLWhlbHBlciB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbmJvZHkuaW9zIC5xLWhvdmVyYWJsZTphY3RpdmUgLnEtZm9jdXMtaGVscGVyIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIG9wYWNpdHk6IDAuMztcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIH1cXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIgPiBkaXYgPiAucS1pbnB1dC10YXJnZXQge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICB9XFxuICAucS1pZiA+IC5xLWlmLWlubmVyID4gZGl2ID4gaW5wdXQucS1pbnB1dC10YXJnZXQge1xcbiAgICBtaW4td2lkdGg6IDNyZW07XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAwJSAhaW1wb3J0YW50O1xcbiAgICAgICAgZmxleC1iYXNpczogMCUgIWltcG9ydGFudDtcXG4gIH1cXG4gIC5xLWlucHV0LXRhcmdldDpiZWZvcmUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gIH1cXG4gIC5xLWlmLWxhYmVsLXNwYWNlciB7XFxuICAgIHdpZHRoOiAwO1xcbiAgfVxcbiAgLnEtZWRpdG9yLXRvb2xiYXIgLnEtYnRuLWdyb3VwLnJvdy5pbmxpbmUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIH1cXG4gIC5xLXRvb2xiYXIsXFxuICAucS1hY3Rpb25zaGVldC10aXRsZSxcXG4gIC5xLWZpZWxkLWxhYmVsLWlubmVyIHtcXG4gICAgaGVpZ2h0OiAwcHg7XFxuICB9XFxuICAucS1jYXJvdXNlbC1zbGlkZSB7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAuY29sLnEtYWxlcnQtY29udGVudCB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLXNsaWRlci1oYW5kbGUgPiAucS1jaGlwLmlubGluZS5yb3cge1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG4gIH1cXG4gIGEucS1idG46bm90KC5xLWJ0bi1yb3VuZCkge1xcbiAgICBoZWlnaHQ6IDBweDtcXG4gIH1cXG4gIC5xLWJ0biAucS1idG4taW5uZXIge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICB9XFxuICAucS1idG46YWN0aXZlIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAtMXB4IDFweCAxcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUucS1idG4tcHVzaCAucS1idG4taW5uZXIsXFxuICAucS1idG4uYWN0aXZlLnEtYnRuLXB1c2ggLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAxcHggMXB4IC0xcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUucS1idG4tcHVzaC5kaXNhYmxlZCAucS1idG4taW5uZXIsXFxuICAucS1idG4uYWN0aXZlLnEtYnRuLXB1c2guZGlzYWJsZWQgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAtMXB4IDFweCAxcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bi1ncm91cCA+IC5xLWJ0bi5xLWJ0bi1wdXNoOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSAucS1idG4taW5uZXIsXFxuICAucS1idG4tZ3JvdXAgPiAucS1idG4ucS1idG4tcHVzaDpub3QoLmRpc2FibGVkKS5hY3RpdmUgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcbiAgLnEtY2hpcDpub3QoLnEtY2hpcC1zbWFsbCk6bm90KC5xLWNoaXAtZGVuc2UpIC5xLWNoaXAtbWFpbiB7XFxuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgfVxcbiAgLnEtYnRuIC5xLWNoaXAge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB9XFxuICAucS10YWIgLnEtY2hpcCAucS1jaGlwLW1haW4ge1xcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xcbiAgfVxcbiAgLnEtZmFiLWFjdGlvbnMucS1mYWItbGVmdCxcXG4gIC5xLWZhYi1hY3Rpb25zLnEtZmFiLXJpZ2h0IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB9XFxuICAucS1pdGVtLW1haW4ge1xcbiAgICBtaW4td2lkdGg6IDFweDtcXG4gIH1cXG4gIC5xLWxheW91dC1kcmF3ZXItbWluaSAucS1pdGVtIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xcbiAgfVxcbiAgLnEtbW9kYWwtbGF5b3V0IHtcXG4gICAgbWluLWhlaWdodDogODB2aCAhaW1wb3J0YW50O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcbn1cXG5Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcXG4gIH1cXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIgPiBkaXYgPiAucS1pbnB1dC10YXJnZXQge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICB9XFxuICAucS1pZiA+IC5xLWlmLWlubmVyID4gZGl2ID4gaW5wdXQucS1pbnB1dC10YXJnZXQge1xcbiAgICBtaW4td2lkdGg6IDNyZW07XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAwJSAhaW1wb3J0YW50O1xcbiAgICAgICAgZmxleC1iYXNpczogMCUgIWltcG9ydGFudDtcXG4gIH1cXG4gIC5xLWlucHV0LXRhcmdldDpiZWZvcmUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gIH1cXG4gIC5xLWlmLWxhYmVsLXNwYWNlciB7XFxuICAgIHdpZHRoOiAwO1xcbiAgfVxcbiAgLnEtZWRpdG9yLXRvb2xiYXIgLnEtYnRuLWdyb3VwLnJvdy5pbmxpbmUge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIH1cXG4gIC5xLXRvb2xiYXIsXFxuICAucS1hY3Rpb25zaGVldC10aXRsZSxcXG4gIC5xLWZpZWxkLWxhYmVsLWlubmVyIHtcXG4gICAgaGVpZ2h0OiAwcHg7XFxuICB9XFxuICAucS1jYXJvdXNlbC1zbGlkZSB7XFxuICAgIG1heC13aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAuY29sLnEtYWxlcnQtY29udGVudCB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLXNsaWRlci1oYW5kbGUgPiAucS1jaGlwLmlubGluZS5yb3cge1xcbiAgICBkaXNwbGF5OiB0YWJsZTtcXG4gIH1cXG4gIGEucS1idG46bm90KC5xLWJ0bi1yb3VuZCkge1xcbiAgICBoZWlnaHQ6IDBweDtcXG4gIH1cXG4gIC5xLWJ0biAucS1idG4taW5uZXIge1xcbiAgICAtbXMtZmxleC1wcmVmZXJyZWQtc2l6ZTogYXV0bztcXG4gICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XFxuICB9XFxuICAucS1idG46YWN0aXZlIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAtMXB4IDFweCAxcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUucS1idG4tcHVzaCAucS1idG4taW5uZXIsXFxuICAucS1idG4uYWN0aXZlLnEtYnRuLXB1c2ggLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAxcHggMXB4IC0xcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUucS1idG4tcHVzaC5kaXNhYmxlZCAucS1idG4taW5uZXIsXFxuICAucS1idG4uYWN0aXZlLnEtYnRuLXB1c2guZGlzYWJsZWQgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAtMXB4IDFweCAxcHggLTFweDtcXG4gIH1cXG4gIC5xLWJ0bi1ncm91cCA+IC5xLWJ0bi5xLWJ0bi1wdXNoOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSAucS1idG4taW5uZXIsXFxuICAucS1idG4tZ3JvdXAgPiAucS1idG4ucS1idG4tcHVzaDpub3QoLmRpc2FibGVkKS5hY3RpdmUgLnEtYnRuLWlubmVyIHtcXG4gICAgbWFyZ2luOiAwO1xcbiAgfVxcbiAgLnEtY2hpcDpub3QoLnEtY2hpcC1zbWFsbCk6bm90KC5xLWNoaXAtZGVuc2UpIC5xLWNoaXAtbWFpbiB7XFxuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgfVxcbiAgLnEtYnRuIC5xLWNoaXAge1xcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICB9XFxuICAucS10YWIgLnEtY2hpcCAucS1jaGlwLW1haW4ge1xcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xcbiAgfVxcbiAgLnEtZmFiLWFjdGlvbnMucS1mYWItbGVmdCxcXG4gIC5xLWZhYi1hY3Rpb25zLnEtZmFiLXJpZ2h0IHtcXG4gICAgZGlzcGxheTogYmxvY2s7XFxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICB9XFxuICAucS1pdGVtLW1haW4ge1xcbiAgICBtaW4td2lkdGg6IDFweDtcXG4gIH1cXG4gIC5xLWxheW91dC1kcmF3ZXItbWluaSAucS1pdGVtIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAwO1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xcbiAgfVxcbiAgLnEtbW9kYWwtbGF5b3V0IHtcXG4gICAgbWluLWhlaWdodDogODB2aCAhaW1wb3J0YW50O1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgd2Via2l0LWF1dG9maWxsLW9uIHtcXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAgIGNvbG9yOiAjZmY5ODAwO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHdlYmtpdC1hdXRvZmlsbC1vbiB7XFxuICB0byB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgICBjb2xvcjogI2ZmOTgwMDtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHdlYmtpdC1hdXRvZmlsbC1vZmYge1xcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyB3ZWJraXQtYXV0b2ZpbGwtb2ZmIHtcXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUge1xcbiAgMCUge1xcbiAgICBsZWZ0OiAtMzUlO1xcbiAgICByaWdodDogMTAwJTtcXG4gIH1cXG4gIDYwJSB7XFxuICAgIGxlZnQ6IDEwMCU7XFxuICAgIHJpZ2h0OiAtOTAlO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGxlZnQ6IDEwMCU7XFxuICAgIHJpZ2h0OiAtOTAlO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZSB7XFxuICAwJSB7XFxuICAgIGxlZnQ6IC0zNSU7XFxuICAgIHJpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgNjAlIHtcXG4gICAgbGVmdDogMTAwJTtcXG4gICAgcmlnaHQ6IC05MCU7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgbGVmdDogMTAwJTtcXG4gICAgcmlnaHQ6IC05MCU7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUtc2hvcnQge1xcbiAgMCUge1xcbiAgICBsZWZ0OiAtMjAwJTtcXG4gICAgcmlnaHQ6IDEwMCU7XFxuICB9XFxuICA2MCUge1xcbiAgICBsZWZ0OiAxMDclO1xcbiAgICByaWdodDogLTglO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGxlZnQ6IDEwNyU7XFxuICAgIHJpZ2h0OiAtOCU7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1wcm9ncmVzcy1pbmRldGVybWluYXRlLXNob3J0IHtcXG4gIDAlIHtcXG4gICAgbGVmdDogLTIwMCU7XFxuICAgIHJpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgNjAlIHtcXG4gICAgbGVmdDogMTA3JTtcXG4gICAgcmlnaHQ6IC04JTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBsZWZ0OiAxMDclO1xcbiAgICByaWdodDogLTglO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1wcm9ncmVzcy1zdHJpcGVzIHtcXG4gIGZyb20ge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA0MHB4IDA7XFxuICB9XFxuICB0byB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXByb2dyZXNzLXN0cmlwZXMge1xcbiAgZnJvbSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDQwcHggMDtcXG4gIH1cXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1tYXQtZGFzaCB7XFxuICAwJSB7XFxuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDEsIDIwMDtcXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XFxuICB9XFxuICA1MCUge1xcbiAgICBzdHJva2UtZGFzaGFycmF5OiA4OSwgMjAwO1xcbiAgICBzdHJva2UtZGFzaG9mZnNldDogLTM1cHg7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogODksIDIwMDtcXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xMjRweDtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLW1hdC1kYXNoIHtcXG4gIDAlIHtcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogMSwgMjAwO1xcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDg5LCAyMDA7XFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMzVweDtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBzdHJva2UtZGFzaGFycmF5OiA4OSwgMjAwO1xcbiAgICBzdHJva2UtZGFzaG9mZnNldDogLTEyNHB4O1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1oaWdobGlnaHQge1xcbiAgMCUge1xcbiAgICBiYWNrZ3JvdW5kOiAjY2RkYzM5O1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtaGlnaGxpZ2h0IHtcXG4gIDAlIHtcXG4gICAgYmFja2dyb3VuZDogI2NkZGMzOTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcm90YXRlIHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICAyNSUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgNTAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgNzUlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXJvdGF0ZSB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMCkgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgMjUlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDUwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDc1JSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLWJsaW5rIHtcXG4gIHRvIHtcXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtYmxpbmsge1xcbiAgdG8ge1xcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXNwaW4ge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1zcGluIHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1wb3Age1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICB9XFxuICA3MCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wNyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA3KTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXBvcCB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gIH1cXG4gIDcwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjA3KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1mYWRlIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtZmFkZSB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtc2NhbGUge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1zY2FsZSB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtYm91bmNlIHtcXG4gIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgfVxcbiAgNDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XFxuICB9XFxuICA2MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLWJvdW5jZSB7XFxuICAwJSwgMjAlLCA1MCUsIDgwJSwgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gIH1cXG4gIDQwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpO1xcbiAgfVxcbiAgNjAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXNoYWtlIHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxuICA1MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wMik7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXNoYWtlIHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxuICA1MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4wMik7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcG9wdXAtZG93biB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIH1cXG4gIDMwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1wb3B1cC1kb3duIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgfVxcbiAgMzAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcG9wdXAtdXAge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgfVxcbiAgMzAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXBvcHVwLXVwIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIH1cXG4gIDMwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXNsaWRlLWxlZnQge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNzAlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTcwJSk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1zbGlkZS1sZWZ0IHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTcwJSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03MCUpO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1zbGlkZS1yaWdodCB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDcwJSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDcwJSk7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1zbGlkZS1yaWdodCB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDcwJSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDcwJSk7XFxuICB9XFxufVxcblwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL25vZGVfbW9kdWxlcy9xdWFzYXItZnJhbWV3b3JrL2Rpc3QvdW1kL3F1YXNhci5tYXQuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBOzs7O0VBSUU7QUFDRjs7O0VBR0UsMkJBQTJCO1VBQ25CLG1CQUFtQjtFQUMzQix3Q0FBd0M7RUFDeEMscUNBQXFDO0FBQ3ZDO0FBQ0E7OztFQUdFLFdBQVc7RUFDWCxjQUFjO0FBQ2hCO0FBQ0E7O0VBRUUsU0FBUztFQUNULDhCQUE4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TztFQUNQLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsU0FBUztFQUNULDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsVUFBVTtFQUNWLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsU0FBUztFQUNULDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsVUFBVTtFQUNWLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsU0FBUztFQUNULDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsT0FBTztFQUNQLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsV0FBVztFQUNYLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsVUFBVTtFQUNWLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsVUFBVTtFQUNWLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0UsV0FBVztFQUNYLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsV0FBVztFQUNYLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsVUFBVTtFQUNWLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsVUFBVTtFQUNWLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0UsV0FBVztFQUNYLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsUUFBUTtFQUNSLDBCQUEwQjtBQUM1QjtBQUNBO0VBQ0UsMEJBQTBCO0VBQzFCLDZCQUE2QjtBQUMvQjtBQUNBO0VBQ0UseUJBQXlCO0VBQ3pCLDRCQUE0QjtBQUM5QjtBQUNBO0VBQ0UsZ0JBQWdC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QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSxzQkFBc0I7QUFDeEI7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHNCQUFzQjtBQUN4QjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLHlCQUF5QjtBQUMzQjtBQUNBO0VBQ0UseUJBQXlCO0FBQzNCO0FBQ0E7RUFDRSx5QkFBeUI7QUFDM0I7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSwyQkFBMkI7QUFDN0I7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDJCQUEyQjtBQUM3QjtBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFDRSw4QkFBOEI7QUFDaEM7QUFDQTtFQUNFLDhCQUE4QjtBQUNoQztBQUNBO0VBQ0UsOEJBQThCO0FBQ2hDO0FBQ0E7RUFD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KGMpIDIwMTYtcHJlc2VudCBSYXp2YW4gU3RvZW5lc2N1XFxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxcbiAqL1xcbiosXFxuKjpiZWZvcmUsXFxuKjphZnRlciB7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGluaGVyaXQ7XFxuICAgICAgICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XFxuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xcbiAgLW1vei10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuaHRtbCxcXG5ib2R5LFxcbiNxLWFwcCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGRpcmVjdGlvbjogbHRyO1xcbn1cXG5odG1sLFxcbmJvZHkge1xcbiAgbWFyZ2luOiAwO1xcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbn1cXG5pbnB1dFt0eXBlPSd0ZXh0J10sXFxuaW5wdXRbdHlwZT0nZW1haWwnXSxcXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSxcXG5pbnB1dFt0eXBlPSdwYXNzd29yZCddIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcXG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZSAvKiBtb2JpbGUgZmlyZWZveCB0b28hICovO1xcbn1cXG5hcnRpY2xlLFxcbmFzaWRlLFxcbmRldGFpbHMsXFxuZmlnY2FwdGlvbixcXG5maWd1cmUsXFxuZm9vdGVyLFxcbmhlYWRlcixcXG5tYWluLFxcbm1lbnUsXFxubmF2LFxcbnNlY3Rpb24sXFxuc3VtbWFyeSB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuYXVkaW86bm90KFtjb250cm9sc10pIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxuICBoZWlnaHQ6IDA7XFxufVxcbmFiYnJbdGl0bGVdIHtcXG4gIGJvcmRlci1ib3R0b206IG5vbmU7XFxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XFxufVxcbmRmbiB7XFxuICBmb250LXN0eWxlOiBpdGFsaWM7XFxufVxcbmltZyB7XFxuICBib3JkZXItc3R5bGU6IG5vbmU7XFxufVxcbnN2Zzpub3QoOnJvb3QpIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbmNvZGUsXFxua2JkLFxcbnByZSxcXG5zYW1wIHtcXG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcXG4gIGZvbnQtc2l6ZTogMWVtO1xcbn1cXG5ociB7XFxuICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xcbiAgICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcXG4gIGhlaWdodDogMDtcXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xcbn1cXG5idXR0b24sXFxuaW5wdXQsXFxuc2VsZWN0LFxcbnRleHRhcmVhIHtcXG4gIGZvbnQ6IGluaGVyaXQ7XFxuICBtYXJnaW46IDA7XFxufVxcbm9wdGdyb3VwIHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbn1cXG5idXR0b24sXFxuaW5wdXQsXFxuc2VsZWN0IHtcXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xcbn1cXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xcbiAgYm9yZGVyOiAwO1xcbiAgcGFkZGluZzogMDtcXG59XFxuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxcbmlucHV0Oi1tb3otZm9jdXNyaW5nIHtcXG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcXG59XFxudGV4dGFyZWEge1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxufVxcbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcXG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xcbn1cXG5pbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcXG5pbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxufVxcbi5xLWljb24ge1xcbiAgbGluZS1oZWlnaHQ6IDE7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgd29yZC13cmFwOiBub3JtYWw7XFxuICBkaXJlY3Rpb246IGx0cjtcXG59XFxuLnEtaWNvbixcXG4ubWF0ZXJpYWwtaWNvbnMge1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG4gIGN1cnNvcjogaW5oZXJpdDtcXG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4ucS1hY3Rpb25zaGVldC10aXRsZSB7XFxuICBtaW4taGVpZ2h0OiA1NnB4O1xcbiAgcGFkZGluZzogMCAxNnB4O1xcbiAgY29sb3I6ICM3Nzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1mYWRlZCk7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWJvZHkge1xcbiAgbWF4LWhlaWdodDogNTAwcHg7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQge1xcbiAgcGFkZGluZzogOHB4IDE2cHg7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQgLnEtaXRlbS1zZXBhcmF0b3ItY29tcG9uZW50IHtcXG4gIG1hcmdpbjogMjRweCAwO1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW0ge1xcbiAgcGFkZGluZzogOHB4IDE2cHg7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcztcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zcztcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtOmhvdmVyLFxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbTpmb2N1cyB7XFxuICBiYWNrZ3JvdW5kOiAjZDBkMGQwO1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtIGksXFxuLnEtYWN0aW9uc2hlZXQtZ3JpZC1pdGVtIGltZyB7XFxuICBmb250LXNpemU6IDQ4cHg7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxufVxcbi5xLWFjdGlvbnNoZWV0LWdyaWQtaXRlbSAuYXZhdGFyIHtcXG4gIHdpZHRoOiA0OHB4O1xcbiAgaGVpZ2h0OiA0OHB4O1xcbn1cXG4ucS1hY3Rpb25zaGVldC1ncmlkLWl0ZW0gc3BhbiB7XFxuICBjb2xvcjogIzc3NztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWZhZGVkKTtcXG59XFxuLnEtbG9hZGluZy1iYXIge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgei1pbmRleDogOTk5ODtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjVzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSksIG9wYWNpdHkgMC41cztcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpLCBvcGFjaXR5IDAuNXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XFxufVxcbi5xLWxvYWRpbmctYmFyLnRvcCB7XFxuICBsZWZ0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxuICByaWdodDogMCAvKiBydGw6aWdub3JlICovO1xcbiAgdG9wOiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5xLWxvYWRpbmctYmFyLmJvdHRvbSB7XFxuICBsZWZ0OiAwIC8qIHJ0bDppZ25vcmUgKi87XFxuICByaWdodDogMCAvKiBydGw6aWdub3JlICovO1xcbiAgYm90dG9tOiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5xLWxvYWRpbmctYmFyLnJpZ2h0IHtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1sb2FkaW5nLWJhci5sZWZ0IHtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWFsZXJ0IHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLnEtYWxlcnQgLmF2YXRhciB7XFxuICB3aWR0aDogMzJweDtcXG4gIGhlaWdodDogMzJweDtcXG59XFxuLnEtYWxlcnQtc2lkZSxcXG4ucS1hbGVydC1jb250ZW50IHtcXG4gIHBhZGRpbmc6IDEycHg7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xcbn1cXG4ucS1hbGVydC1zaWRlIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKTtcXG59XFxuLnEtYWxlcnQtYWN0aW9ucyB7XFxuICBwYWRkaW5nOiAxMnB4IDEycHggMTJweCAwO1xcbn1cXG4ucS1hbGVydC1kZXRhaWwge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbn1cXG4ucS1icmVhZGNydW1icyAucS1pY29uLFxcbi5xLWJyZWFkY3J1bWJzIC5xLWJyZWFkY3J1bWJzLXNlcGFyYXRvciB7XFxuICBmb250LXNpemU6IDE1MCU7XFxufVxcbi5xLWJyZWFkY3J1bWJzLWxhc3QgYSB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuW2Rpcj1ydGxdIC5xLWJyZWFkY3J1bWJzLXNlcGFyYXRvciAucS1pY29uIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoLTEpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKC0xKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1idG4ge1xcbiAgb3V0bGluZTogMDtcXG4gIGJvcmRlcjogMDtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBwYWRkaW5nOiA0cHggMTZweDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIG1pbi1oZWlnaHQ6IDIuNTcyZW07XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbn1cXG5idXR0b24ucS1idG4ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XFxufVxcbmEucS1idG4ge1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxufVxcbi5xLWJ0biAucS1pY29uLFxcbi5xLWJ0biAucS1zcGlubmVyIHtcXG4gIGZvbnQtc2l6ZTogMS40ZW07XFxufVxcbi5xLWJ0biAucS1idG4taW5uZXIge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnM7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnM7XFxufVxcbi5xLWJ0biAucS1idG4taW5uZXItLWhpZGRlbiB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1idG4gLnEtYnRuLWlubmVyOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG59XFxuLnEtYnRuLmRpc2FibGVkIHtcXG4gIG9wYWNpdHk6IDAuNyAhaW1wb3J0YW50O1xcbn1cXG4ucS1idG46bm90KC5kaXNhYmxlZCk6bm90KC5xLWJ0bi1mbGF0KTpub3QoLnEtYnRuLW91dGxpbmUpOm5vdCgucS1idG4tcHVzaCk6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG4gIHotaW5kZXg6IC0xO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxufVxcbi5xLWJ0bjpub3QoLmRpc2FibGVkKTpub3QoLnEtYnRuLWZsYXQpOm5vdCgucS1idG4tb3V0bGluZSk6bm90KC5xLWJ0bi1wdXNoKTphY3RpdmU6YmVmb3JlLFxcbi5xLWJ0bjpub3QoLmRpc2FibGVkKTpub3QoLnEtYnRuLWZsYXQpOm5vdCgucS1idG4tb3V0bGluZSk6bm90KC5xLWJ0bi1wdXNoKS5hY3RpdmU6YmVmb3JlIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggNXB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDhweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLWJ0bi1wcm9ncmVzcyB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpO1xcbn1cXG4ucS1idG4tcHJvZ3Jlc3MucS1idG4tZGFyay1wcm9ncmVzcyB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMik7XFxufVxcbi5xLWJ0bi1uby11cHBlcmNhc2Uge1xcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XFxufVxcbi5xLWJ0bi1yZWN0YW5nbGUge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbn1cXG4ucS1idG4tb3V0bGluZSB7XFxuICBib3JkZXI6IDFweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbn1cXG4ucS1idG4tcHVzaCB7XFxuICBib3JkZXItcmFkaXVzOiA3cHg7XFxuICBib3JkZXItYm90dG9tOiAzcHggc29saWQgcmdiYSgwLDAsMCwwLjE1KTtcXG59XFxuLnEtYnRuLXB1c2g6YWN0aXZlOm5vdCguZGlzYWJsZWQpLFxcbi5xLWJ0bi1wdXNoLmFjdGl2ZTpub3QoLmRpc2FibGVkKSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoM3B4KTtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xcbn1cXG4ucS1idG4tcHVzaCAucS1mb2N1cy1oZWxwZXIsXFxuLnEtYnRuLXB1c2ggLnEtcmlwcGxlLWNvbnRhaW5lciB7XFxuICBoZWlnaHQ6IGF1dG87XFxuICBib3R0b206IC0zcHg7XFxufVxcbi5xLWJ0bi1yb3VuZGVkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDI4cHg7XFxufVxcbi5xLWJ0bi1yb3VuZCB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBwYWRkaW5nOiAwO1xcbiAgbWluLWhlaWdodDogMDtcXG4gIGhlaWdodDogM2VtO1xcbiAgd2lkdGg6IDNlbTtcXG59XFxuLnEtYnRuLWZsYXQsXFxuLnEtYnRuLW91dGxpbmUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xcbiAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xcbn1cXG4ucS1idG4tZGVuc2Uge1xcbiAgcGFkZGluZzogMC4yODVlbTtcXG4gIG1pbi1oZWlnaHQ6IDJlbTtcXG59XFxuLnEtYnRuLWRlbnNlLnEtYnRuLXJvdW5kIHtcXG4gIHBhZGRpbmc6IDA7XFxuICBoZWlnaHQ6IDIuNGVtO1xcbiAgd2lkdGg6IDIuNGVtO1xcbn1cXG4ucS1idG4tZGVuc2UgLm9uLWxlZnQge1xcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XFxufVxcbi5xLWJ0bi1kZW5zZSAub24tcmlnaHQge1xcbiAgbWFyZ2luLWxlZnQ6IDZweDtcXG59XFxuLnEtYnRuLWZhYiAucS1pY29uLFxcbi5xLWJ0bi1mYWItbWluaSAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG59XFxuLnEtYnRuLWZhYiB7XFxuICBoZWlnaHQ6IDU2cHg7XFxuICB3aWR0aDogNTZweDtcXG59XFxuLnEtYnRuLWZhYi1taW5pIHtcXG4gIGhlaWdodDogNDBweDtcXG4gIHdpZHRoOiA0MHB4O1xcbn1cXG4ucS10cmFuc2l0aW9uLS1mYWRlLWxlYXZlLWFjdGl2ZSB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxufVxcbi5xLXRyYW5zaXRpb24tLWZhZGUtZW50ZXItYWN0aXZlLFxcbi5xLXRyYW5zaXRpb24tLWZhZGUtbGVhdmUtYWN0aXZlIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2Utb3V0O1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2Utb3V0O1xcbn1cXG4ucS10cmFuc2l0aW9uLS1mYWRlLWVudGVyLFxcbi5xLXRyYW5zaXRpb24tLWZhZGUtbGVhdmUsXFxuLnEtdHJhbnNpdGlvbi0tZmFkZS1sZWF2ZS10byB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1idG4tZHJvcGRvd24tc3BsaXQgLnEtYnRuLWRyb3Bkb3duLWFycm93IHtcXG4gIHBhZGRpbmc6IDAgNHB4O1xcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMyk7XFxufVxcbi5xLWJ0bi1ncm91cCB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1pdGVtIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcXG59XFxuLnEtYnRuLWdyb3VwID4gLnEtYnRuLWdyb3VwID4gLnEtYnRuOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGluaGVyaXQ7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiBpbmhlcml0O1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4tZ3JvdXAgPiAucS1idG46bGFzdC1jaGlsZCB7XFxuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCkgPiAucS1idG46Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLWxlZnQ6IDA7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1ncm91cDpub3QoOmxhc3QtY2hpbGQpID4gLnEtYnRuOmxhc3QtY2hpbGQge1xcbiAgYm9yZGVyLXJpZ2h0OiAwO1xcbn1cXG4ucS1idG4tZ3JvdXAgPiAucS1idG4taXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxufVxcbi5xLWJ0bi1ncm91cCA+IC5xLWJ0bi1pdGVtICsgLnEtYnRuLWl0ZW0ge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcXG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XFxufVxcbi5xLWJ0bi1ncm91cC1wdXNoIHtcXG4gIGJvcmRlci1yYWRpdXM6IDdweDtcXG59XFxuLnEtYnRuLWdyb3VwLXB1c2ggPiAucS1idG4tcHVzaCAucS1idG4taW5uZXIge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxufVxcbi5xLWJ0bi1ncm91cC1wdXNoID4gLnEtYnRuLXB1c2g6YWN0aXZlOm5vdCguZGlzYWJsZWQpLFxcbi5xLWJ0bi1ncm91cC1wdXNoID4gLnEtYnRuLXB1c2guYWN0aXZlOm5vdCguZGlzYWJsZWQpIHtcXG4gIGJvcmRlci1ib3R0b20tY29sb3I6IHJnYmEoMCwwLDAsMC4xNSk7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbn1cXG4ucS1idG4tZ3JvdXAtcHVzaCA+IC5xLWJ0bi1wdXNoOmFjdGl2ZTpub3QoLmRpc2FibGVkKSAucS1idG4taW5uZXIsXFxuLnEtYnRuLWdyb3VwLXB1c2ggPiAucS1idG4tcHVzaC5hY3RpdmU6bm90KC5kaXNhYmxlZCkgLnEtYnRuLWlubmVyIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDNweCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzcHgpO1xcbn1cXG4ucS1idG4tZ3JvdXAtcm91bmRlZCB7XFxuICBib3JkZXItcmFkaXVzOiAyOHB4O1xcbn1cXG4ucS1idG4tZ3JvdXAtZmxhdCxcXG4ucS1idG4tZ3JvdXAtb3V0bGluZSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5xLWJ0bi1ncm91cC1vdXRsaW5lID4gLnEtYnRuLWl0ZW0gKyAucS1idG4taXRlbSB7XFxuICBib3JkZXItbGVmdDogMDtcXG59XFxuLnEtYnRuLWdyb3VwLW91dGxpbmUgPiAucS1idG4taXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gIGJvcmRlci1yaWdodDogMDtcXG59XFxuLnEtY2FyZCB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7XFxufVxcbi5xLWNhcmQgPiBkaXY6Zmlyc3QtY2hpbGQge1xcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xcbn1cXG4ucS1jYXJkID4gZGl2Omxhc3QtY2hpbGQge1xcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiBpbmhlcml0O1xcbn1cXG4ucS1jYXJkID4gLnEtbGlzdCB7XFxuICBib3JkZXI6IDA7XFxufVxcbi5xLWNhcmQtc2VwYXJhdG9yIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKTtcXG4gIGhlaWdodDogMXB4O1xcbn1cXG4ucS1jYXJkLXNlcGFyYXRvci5pbnNldCB7XFxuICBtYXJnaW46IDAgMTZweDtcXG59XFxuLnEtY2FyZC1jb250YWluZXIge1xcbiAgcGFkZGluZzogMTZweDtcXG59XFxuLnEtY2FyZC10aXRsZSB7XFxuICBmb250LXNpemU6IDE4cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG4gIGxpbmUtaGVpZ2h0OiAycmVtO1xcbn1cXG4ucS1jYXJkLXRpdGxlOmVtcHR5IHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWNhcmQtc3VidGl0bGUsXFxuLnEtY2FyZC10aXRsZS1leHRyYSB7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjQpO1xcbn1cXG4ucS1jYXJkLXN1YnRpdGxlIC5xLWljb24sXFxuLnEtY2FyZC10aXRsZS1leHRyYSAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG59XFxuLnEtY2FyZC1tYWluIHtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG59XFxuLnEtY2FyZC1wcmltYXJ5ICsgLnEtY2FyZC1tYWluIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4ucS1jYXJkLWFjdGlvbnMge1xcbiAgcGFkZGluZzogOHB4O1xcbn1cXG4ucS1jYXJkLWFjdGlvbnMgLnEtYnRuIHtcXG4gIHBhZGRpbmc6IDAgOHB4O1xcbn1cXG4ucS1jYXJkLWFjdGlvbnMtaG9yaXogLnEtYnRuOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbi5xLWNhcmQtYWN0aW9ucy12ZXJ0IC5xLWJ0biArIC5xLWJ0biB7XFxuICBtYXJnaW4tdG9wOiA0cHg7XFxufVxcbi5xLWNhcmQtbWVkaWEge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtY2FyZC1tZWRpYSA+IGltZyB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgYm9yZGVyOiAwO1xcbn1cXG4ucS1jYXJkLW1lZGlhLW92ZXJsYXkge1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNDcpO1xcbn1cXG4ucS1jYXJkLW1lZGlhLW92ZXJsYXkgLnEtY2FyZC1zdWJ0aXRsZSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtY2FyZC1kYXJrIC5xLWNhcmQtc2VwYXJhdG9yIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcXG59XFxuLnEtY2FyZC1kYXJrIC5xLWNhcmQtc3VidGl0bGUsXFxuLnEtY2FyZC1kYXJrIC5xLWNhcmQtdGl0bGUtZXh0cmEge1xcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTtcXG59XFxuLnEtY2Fyb3VzZWwge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnEtY2Fyb3VzZWwtaW5uZXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1jYXJvdXNlbC1zbGlkZSB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgMTAwJTtcXG4gICAgICAgICAgZmxleDogMCAwIDEwMCU7XFxuICBtYXJnaW46IDA7XFxuICBwYWRkaW5nOiAxOHB4O1xcbn1cXG4ucS1jYXJvdXNlbC10cmFjayB7XFxuICBwYWRkaW5nOiAwO1xcbiAgbWFyZ2luOiAwO1xcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLW1zLWZsZXgtd3JhcDogbm93cmFwO1xcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1jYXJvdXNlbC10cmFjay5pbmZpbml0ZS1sZWZ0ID4gZGl2Om50aC1sYXN0LWNoaWxkKDIpIHtcXG4gIC13ZWJraXQtYm94LW9yZGluYWwtZ3JvdXA6IC05OTk7XFxuICAgICAgLW1zLWZsZXgtb3JkZXI6IC0xMDAwO1xcbiAgICAgICAgICBvcmRlcjogLTEwMDA7XFxuICBtYXJnaW4tbGVmdDogLTEwMCU7XFxufVxcbi5xLWNhcm91c2VsLXRyYWNrLmluZmluaXRlLXJpZ2h0ID4gZGl2Om50aC1jaGlsZCgyKSB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAxMDAxO1xcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAxMDAwO1xcbiAgICAgICAgICBvcmRlcjogMTAwMDtcXG59XFxuLnEtY2Fyb3VzZWwtbGVmdC1hcnJvdyxcXG4ucS1jYXJvdXNlbC1yaWdodC1hcnJvdyB7XFxuICB0b3A6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMyk7XFxufVxcbi5xLWNhcm91c2VsLWxlZnQtYXJyb3cge1xcbiAgbGVmdDogNXB4O1xcbn1cXG4ucS1jYXJvdXNlbC1yaWdodC1hcnJvdyB7XFxuICByaWdodDogNXB4O1xcbn1cXG4ucS1jYXJvdXNlbC1xdWljay1uYXYge1xcbiAgcGFkZGluZzogMnB4IDA7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMyk7XFxufVxcbi5xLWNhcm91c2VsLXF1aWNrLW5hdiAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50O1xcbn1cXG4ucS1jYXJvdXNlbC1xdWljay1uYXYgLnEtYnRuLmluYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtY2Fyb3VzZWwtcXVpY2stbmF2IC5xLWJ0bi5pbmFjdGl2ZSAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xcbn1cXG4ucS1jYXJvdXNlbC10aHVtYm5haWxzIHtcXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XFxuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuM3M7XFxuICB0cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybSAwLjNzO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcywgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcztcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwNSUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTA1JSk7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogYXV0bztcXG4gIG1heC1oZWlnaHQ6IDYwJTtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbiAgYmFja2dyb3VuZDogIzAwMDtcXG4gIHBhZGRpbmc6IDAuNXJlbTtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtM3B4IDZweCByZ2JhKDAsMCwwLDAuMTYpLCAwIC01cHggNnB4IHJnYmEoMCwwLDAsMC4yMyk7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTNweCA2cHggcmdiYSgwLDAsMCwwLjE2KSwgMCAtNXB4IDZweCByZ2JhKDAsMCwwLDAuMjMpO1xcbn1cXG4ucS1jYXJvdXNlbC10aHVtYm5haWxzLmFjdGl2ZSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbn1cXG4ucS1jYXJvdXNlbC10aHVtYm5haWxzIGltZyB7XFxuICBoZWlnaHQ6IGF1dG87XFxuICB3aWR0aDogMTAwJTtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgb3BhY2l0eTogMC41O1xcbiAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7XFxufVxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMgPiBkaXYgPiBkaXYge1xcbiAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAtbXMtZmxleDogMCAwIDEwOHB4O1xcbiAgICAgICAgICBmbGV4OiAwIDAgMTA4cHg7XFxufVxcbi5xLWNhcm91c2VsLXRodW1ibmFpbHMgPiBkaXYgPiBkaXYuYWN0aXZlIGltZyxcXG4ucS1jYXJvdXNlbC10aHVtYm5haWxzID4gZGl2ID4gZGl2IGltZy5hY3RpdmUge1xcbiAgb3BhY2l0eTogMTtcXG4gIGJvcmRlci1jb2xvcjogI2ZmZjtcXG59XFxuLnEtY2Fyb3VzZWwtdGh1bWJuYWlsLWJ0biB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMyk7XFxuICB0b3A6IDVweDtcXG4gIHJpZ2h0OiA1cHg7XFxufVxcbmJvZHkuZGVza3RvcCAucS1jYXJvdXNlbC10aHVtYm5haWxzIGltZzpob3ZlciB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1tZXNzYWdlLW5hbWUsXFxuLnEtbWVzc2FnZS1zdGFtcCxcXG4ucS1tZXNzYWdlLWxhYmVsIHtcXG4gIGZvbnQtc2l6ZTogc21hbGw7XFxufVxcbi5xLW1lc3NhZ2UtbGFiZWwge1xcbiAgbWFyZ2luOiAyNHB4IDA7XFxufVxcbi5xLW1lc3NhZ2Utc3RhbXAge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBtYXJnaW4tdG9wOiA0cHg7XFxuICBvcGFjaXR5OiAwLjY7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1tZXNzYWdlLWF2YXRhciB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICB3aWR0aDogNDhweDtcXG4gIGhlaWdodDogNDhweDtcXG59XFxuLnEtbWVzc2FnZSB7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxufVxcbi5xLW1lc3NhZ2U6Zmlyc3QtY2hpbGQgLnEtbWVzc2FnZS1sYWJlbCB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbn1cXG4ucS1tZXNzYWdlLXJlY2VpdmVkIC5xLW1lc3NhZ2UtYXZhdGFyIHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG4ucS1tZXNzYWdlLXJlY2VpdmVkIC5xLW1lc3NhZ2UtdGV4dCB7XFxuICBjb2xvcjogIzgxYzc4NDtcXG4gIGJvcmRlci1yYWRpdXM6IDNweCAzcHggM3B4IDA7XFxufVxcbi5xLW1lc3NhZ2UtcmVjZWl2ZWQgLnEtbWVzc2FnZS10ZXh0Omxhc3QtY2hpbGQ6YmVmb3JlIHtcXG4gIHJpZ2h0OiAxMDAlO1xcbiAgYm9yZGVyLXJpZ2h0OiAwIHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCB0cmFuc3BhcmVudDtcXG4gIGJvcmRlci1ib3R0b206IDhweCBzb2xpZCBjdXJyZW50Q29sb3I7XFxufVxcbi5xLW1lc3NhZ2UtcmVjZWl2ZWQgLnEtbWVzc2FnZS10ZXh0LWNvbnRlbnQge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLW1lc3NhZ2Utc2VudCAucS1tZXNzYWdlLW5hbWUge1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcbi5xLW1lc3NhZ2Utc2VudCAucS1tZXNzYWdlLWF2YXRhciB7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG4ucS1tZXNzYWdlLXNlbnQgLnEtbWVzc2FnZS1jb250YWluZXIge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG59XFxuLnEtbWVzc2FnZS1zZW50IC5xLW1lc3NhZ2UtdGV4dCB7XFxuICBjb2xvcjogI2UwZTBlMDtcXG4gIGJvcmRlci1yYWRpdXM6IDNweCAzcHggMCAzcHg7XFxufVxcbi5xLW1lc3NhZ2Utc2VudCAucS1tZXNzYWdlLXRleHQ6bGFzdC1jaGlsZDpiZWZvcmUge1xcbiAgbGVmdDogMTAwJTtcXG4gIGJvcmRlci1sZWZ0OiAwIHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXJpZ2h0OiA4cHggc29saWQgdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItYm90dG9tOiA4cHggc29saWQgY3VycmVudENvbG9yO1xcbn1cXG4ucS1tZXNzYWdlLXNlbnQgLnEtbWVzc2FnZS10ZXh0LWNvbnRlbnQge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLW1lc3NhZ2UtdGV4dCB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBwYWRkaW5nOiA4cHg7XFxuICBsaW5lLWhlaWdodDogMS4yO1xcbiAgd29yZC1icmVhazogYnJlYWstd29yZDtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG59XFxuLnEtbWVzc2FnZS10ZXh0ICsgLnEtbWVzc2FnZS10ZXh0IHtcXG4gIG1hcmdpbi10b3A6IDNweDtcXG59XFxuLnEtbWVzc2FnZS10ZXh0Omxhc3QtY2hpbGQge1xcbiAgbWluLWhlaWdodDogNDhweDtcXG59XFxuLnEtbWVzc2FnZS10ZXh0Omxhc3QtY2hpbGQgLnEtbWVzc2FnZS1zdGFtcCB7XFxuICBkaXNwbGF5OiBibG9jaztcXG59XFxuLnEtbWVzc2FnZS10ZXh0Omxhc3QtY2hpbGQ6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgYm90dG9tOiAwO1xcbiAgd2lkdGg6IDA7XFxuICBoZWlnaHQ6IDA7XFxufVxcbi5xLWNoZWNrYm94LWljb24ge1xcbiAgaGVpZ2h0OiAyMXB4O1xcbiAgd2lkdGg6IDIxcHg7XFxuICBmb250LXNpemU6IDIxcHg7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1jaGlwIHtcXG4gIG1pbi1oZWlnaHQ6IDMycHg7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBwYWRkaW5nOiAwIDEycHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBib3JkZXI6ICNlMGUwZTA7XFxuICBib3JkZXItcmFkaXVzOiAycmVtO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gIGNvbG9yOiAjMDAwO1xcbiAgYmFja2dyb3VuZDogI2VlZTtcXG59XFxuLnEtY2hpcDpmb2N1cyAucS1jaGlwLWNsb3NlIHtcXG4gIG9wYWNpdHk6IDAuODtcXG59XFxuLnEtY2hpcCAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjRweDtcXG4gIGxpbmUtaGVpZ2h0OiAxO1xcbn1cXG4ucS1jaGlwLW1haW4ge1xcbiAgbGluZS1oZWlnaHQ6IGluaXRpYWw7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgZmxleDogMSAxIGF1dG87XFxufVxcbi5xLWNoaXAtc2lkZSB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBoZWlnaHQ6IDMycHg7XFxuICB3aWR0aDogMzJweDtcXG4gIG1pbi13aWR0aDogMzJweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLWNoaXAtc2lkZSBpbWcge1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxufVxcbi5xLWNoaXAtbGVmdCB7XFxuICBtYXJnaW4tbGVmdDogLTEycHg7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG59XFxuLnEtY2hpcC1yaWdodCB7XFxuICBtYXJnaW4tbGVmdDogMnB4O1xcbiAgbWFyZ2luLXJpZ2h0OiAtMTJweDtcXG59XFxuLnEtY2hpcC1zcXVhcmUge1xcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xcbn1cXG4ucS1jaGlwLWZsb2F0aW5nIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogLTAuM2VtO1xcbiAgcmlnaHQ6IC0wLjNlbTtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgei1pbmRleDogMTtcXG59XFxuLnEtY2hpcC10YWcge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgcGFkZGluZy1sZWZ0OiAxLjdyZW07XFxufVxcbi5xLWNoaXAtdGFnOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAwLjVyZW07XFxuICBtYXJnaW4tdG9wOiAtMC4yNXJlbTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICB3aWR0aDogMC41cmVtO1xcbiAgaGVpZ2h0OiAwLjVyZW07XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTFweCAxcHggMCByZ2JhKDAsMCwwLDAuMyk7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCAxcHggMCByZ2JhKDAsMCwwLDAuMyk7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5xLWNoaXAtcG9pbnRpbmcge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgei1pbmRleDogMDtcXG59XFxuLnEtY2hpcC1wb2ludGluZzpiZWZvcmUge1xcbiAgY29udGVudDogJyc7XFxuICB6LWluZGV4OiAtMTtcXG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XFxuICB3aWR0aDogMTZweDtcXG4gIGhlaWdodDogMTZweDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy11cCB7XFxuICBtYXJnaW4tdG9wOiAwLjhyZW07XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctdXA6YmVmb3JlIHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTIyJSkgcm90YXRlKDQ1ZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTIyJSkgcm90YXRlKDQ1ZGVnKTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy1kb3duIHtcXG4gIG1hcmdpbi1ib3R0b206IDAuOHJlbTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy1kb3duOmJlZm9yZSB7XFxuICByaWdodDogYXV0bztcXG4gIHRvcDogMTAwJTtcXG4gIGxlZnQ6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTc4JSkgcm90YXRlKDQ1ZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTc4JSkgcm90YXRlKDQ1ZGVnKTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy1yaWdodCB7XFxuICBtYXJnaW4tcmlnaHQ6IDAuOHJlbTtcXG59XFxuLnEtY2hpcC1wb2ludGluZy1yaWdodDpiZWZvcmUge1xcbiAgdG9wOiA1MCU7XFxuICByaWdodDogMnB4O1xcbiAgYm90dG9tOiBhdXRvO1xcbiAgbGVmdDogYXV0bztcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMzJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzMlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XFxufVxcbi5xLWNoaXAtcG9pbnRpbmctbGVmdCB7XFxuICBtYXJnaW4tbGVmdDogMC44cmVtO1xcbn1cXG4ucS1jaGlwLXBvaW50aW5nLWxlZnQ6YmVmb3JlIHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogMnB4O1xcbiAgYm90dG9tOiBhdXRvO1xcbiAgcmlnaHQ6IGF1dG87XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzMlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzMlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XFxufVxcbi5xLWNoaXAtZGV0YWlsIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xKTtcXG4gIG9wYWNpdHk6IDAuODtcXG4gIHBhZGRpbmc6IDAgNXB4O1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxufVxcbi5xLWNoaXAtc21hbGwge1xcbiAgbWluLWhlaWdodDogMjZweDtcXG59XFxuLnEtY2hpcC1zbWFsbCAucS1jaGlwLW1haW4ge1xcbiAgcGFkZGluZzogNHB4IDFweDtcXG4gIGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xcbn1cXG4ucS1jaGlwLXNtYWxsIC5xLWNoaXAtc2lkZSB7XFxuICBoZWlnaHQ6IDI2cHg7XFxuICB3aWR0aDogMjZweDtcXG4gIG1pbi13aWR0aDogMjZweDtcXG59XFxuLnEtY2hpcC1zbWFsbCAucS1jaGlwLWljb24ge1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlIHtcXG4gIG1pbi1oZWlnaHQ6IDFweDtcXG4gIHBhZGRpbmc6IDAgM3B4O1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlLnEtY2hpcC10YWcge1xcbiAgcGFkZGluZy1sZWZ0OiAxLjNyZW07XFxufVxcbi5xLWNoaXAtZGVuc2UucS1jaGlwLXBvaW50aW5nOmJlZm9yZSB7XFxuICB3aWR0aDogOXB4O1xcbiAgaGVpZ2h0OiA5cHg7XFxufVxcbi5xLWNoaXAtZGVuc2UgLnEtY2hpcC1tYWluIHtcXG4gIHBhZGRpbmc6IDFweDtcXG59XFxuLnEtY2hpcC1kZW5zZSAucS1jaGlwLXNpZGUge1xcbiAgaGVpZ2h0OiAxOHB4O1xcbiAgd2lkdGg6IDE4cHg7XFxuICBtaW4td2lkdGg6IDE2cHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxufVxcbi5xLWNoaXAtZGVuc2UgLnEtY2hpcC1sZWZ0IHtcXG4gIG1hcmdpbi1sZWZ0OiAtM3B4O1xcbiAgbWFyZ2luLXJpZ2h0OiAycHg7XFxufVxcbi5xLWNoaXAtZGVuc2UgLnEtY2hpcC1yaWdodCB7XFxuICBtYXJnaW4tbGVmdDogMnB4O1xcbiAgbWFyZ2luLXJpZ2h0OiAtMnB4O1xcbn1cXG4ucS1jaGlwLWRlbnNlIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbn1cXG4ucS1pbnB1dC1jaGlwcyB7XFxuICBtYXJnaW4tdG9wOiAtMXB4O1xcbiAgbWFyZ2luLWJvdHRvbTogLTFweDtcXG59XFxuLnEtaW5wdXQtY2hpcHMgLnEtY2hpcCB7XFxuICBtYXJnaW46IDFweDtcXG59XFxuLnEtaW5wdXQtY2hpcHMgaW5wdXQucS1pbnB1dC10YXJnZXQge1xcbiAgbWluLXdpZHRoOiA3MHB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXN1Yi1pdGVtIHtcXG4gIHBhZGRpbmc6IDhweCAxNnB4O1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1zdWItaXRlbS5pbmRlbnQge1xcbiAgcGFkZGluZy1sZWZ0OiA0OHB4O1xcbiAgcGFkZGluZy1yaWdodDogMDtcXG59XFxuLnEtY29sbGFwc2libGUtc3ViLWl0ZW0gLnEtY2FyZCB7XFxuICBtYXJnaW4tYm90dG9tOiAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS5yb3V0ZXItbGluay1hY3RpdmUgPiAucS1pdGVtIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTg5LDE4OSwxODksMC40KTtcXG59XFxuLnEtY29sbGFwc2libGUge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBwYWRkaW5nIDAuNXM7XFxuICB0cmFuc2l0aW9uOiBwYWRkaW5nIDAuNXM7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLWNsb3NlZCB7XFxuICBwYWRkaW5nOiAwIDE1cHg7XFxufVxcbi5xLWNvbGxhcHNpYmxlLXBvcHVwLWNsb3NlZCAucS1jb2xsYXBzaWJsZS1pbm5lciB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1jbG9zZWQgKyAucS1jb2xsYXBzaWJsZS1wb3B1cC1jbG9zZWQgLnEtY29sbGFwc2libGUtaW5uZXIge1xcbiAgYm9yZGVyLXRvcDogMDtcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtb3BlbmVkIHtcXG4gIHBhZGRpbmc6IDE1cHggMDtcXG59XFxuLnEtY29sbGFwc2libGUtcG9wdXAtb3BlbmVkIC5xLWNvbGxhcHNpYmxlLWlubmVyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQgKyAucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQsXFxuLnEtY29sbGFwc2libGUtcG9wdXAtb3BlbmVkOmZpcnN0LWNoaWxkIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS1wb3B1cC1vcGVuZWQ6bGFzdC1jaGlsZCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMDtcXG59XFxuLnEtY29sbGFwc2libGUtY3Vyc29yLXBvaW50ZXIgPiAucS1jb2xsYXBzaWJsZS1pbm5lciA+IC5xLWl0ZW0ge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1jb2xsYXBzaWJsZS10b2dnbGUtaWNvbiB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICB3aWR0aDogMWVtO1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4ucS1jb2xvciB7XFxuICBtYXgtd2lkdGg6IDEwMHZ3O1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG59XFxuLnEtY29sb3Itc2F0dXJhdGlvbiB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTIzcHg7XFxufVxcbi5xLWNvbG9yLXNhdHVyYXRpb24td2hpdGUge1xcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGZyb20oI2ZmZiksIHRvKHJnYmEoMjU1LDI1NSwyNTUsMCkpKTtcXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2ZmZiwgcmdiYSgyNTUsMjU1LDI1NSwwKSk7XFxufVxcbi5xLWNvbG9yLXNhdHVyYXRpb24tYmxhY2sge1xcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgYm90dG9tLCBsZWZ0IHRvcCwgZnJvbSgjMDAwKSwgdG8ocmdiYSgwLDAsMCwwKSkpO1xcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgIzAwMCwgcmdiYSgwLDAsMCwwKSk7XFxufVxcbi5xLWNvbG9yLXNhdHVyYXRpb24tY2lyY2xlIHtcXG4gIHdpZHRoOiAxMHB4O1xcbiAgaGVpZ2h0OiAxMHB4O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMCAxLjVweCAjZmZmLCBpbnNldCAwIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMyksIDAgMCAxcHggMnB4IHJnYmEoMCwwLDAsMC40KTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMS41cHggI2ZmZiwgaW5zZXQgMCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjMpLCAwIDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuNCk7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01cHgsIC01cHgpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNXB4LCAtNXB4KTtcXG59XFxuLnEtY29sb3Itc3dhdGNoLFxcbi5xLWNvbG9yLWFscGhhIC5xLXNsaWRlci10cmFjayB7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXFxcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQWdBQUFBSUNBWUFBQURFRDc2TEFBQUFIMGxFUVZRb1UyTmtZR0F3WmtBRlo1RzVqUFJSZ09ZRVZEZUIzRUJqQlFCT1p3VFZ1Z0lHeUFBQUFBQkpSVTVFcmtKZ2dnPT1cXFwiKSAhaW1wb3J0YW50O1xcbn1cXG4ucS1jb2xvci1zd2F0Y2gge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDMycHg7XFxuICBoZWlnaHQ6IDMycHg7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG59XFxuLnEtY29sb3ItaHVlIC5xLXNsaWRlci10cmFjayB7XFxuICBib3JkZXItcmFkaXVzOiAycHg7XFxuICBiYWNrZ3JvdW5kOiAtd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIHJpZ2h0IHRvcCwgZnJvbSgjZjAwKSwgY29sb3Itc3RvcCgxNyUsICNmZjApLCBjb2xvci1zdG9wKDMzJSwgIzBmMCksIGNvbG9yLXN0b3AoNTAlLCAjMGZmKSwgY29sb3Itc3RvcCg2NyUsICMwMGYpLCBjb2xvci1zdG9wKDgzJSwgI2YwZiksIHRvKCNmMDApKTtcXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgI2YwMCAwJSwgI2ZmMCAxNyUsICMwZjAgMzMlLCAjMGZmIDUwJSwgIzAwZiA2NyUsICNmMGYgODMlLCAjZjAwIDEwMCUpO1xcbiAgb3BhY2l0eTogMTtcXG4gIGhlaWdodDogOHB4O1xcbn1cXG4ucS1jb2xvci1odWUgLnEtc2xpZGVyLXRyYWNrLmFjdGl2ZS10cmFjayB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1jb2xvci1hbHBoYSAucS1zbGlkZXItdHJhY2sge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIG9wYWNpdHk6IDE7XFxuICBoZWlnaHQ6IDhweDtcXG59XFxuLnEtY29sb3ItYWxwaGEgLnEtc2xpZGVyLXRyYWNrOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCByaWdodCB0b3AsIGZyb20ocmdiYSgyNTUsMjU1LDI1NSwwKSksIHRvKCM3NTc1NzUpKTtcXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyNTUsMjU1LDI1NSwwKSwgIzc1NzU3NSk7XFxufVxcbi5xLWNvbG9yLWFscGhhIC5xLXNsaWRlci10cmFjay5hY3RpdmUtdHJhY2sge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtY29sb3Itc2xpZGVycyB7XFxuICBoZWlnaHQ6IDU2cHg7XFxufVxcbi5xLWNvbG9yLXNsaWRlcnMgLnEtc2xpZGVyIHtcXG4gIGhlaWdodDogMjBweDtcXG59XFxuLnEtY29sb3Itc2xpZGVycyAucS1zbGlkZXItaGFuZGxlIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNHB4IDAgcmdiYSgwLDAsMCwwLjM3KTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNHB4IDAgcmdiYSgwLDAsMCwwLjM3KTtcXG59XFxuLnEtY29sb3Itc2xpZGVycyAucS1zbGlkZXItcmluZyB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1jb2xvci1pbnB1dHMge1xcbiAgZm9udC1zaXplOiAxMXB4O1xcbiAgY29sb3I6ICM3NTc1NzU7XFxufVxcbi5xLWNvbG9yLWlucHV0cyBpbnB1dCB7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwO1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtY29sb3ItcGFkZGluZyB7XFxuICBwYWRkaW5nOiAwIDJweDtcXG59XFxuLnEtY29sb3ItbGFiZWwge1xcbiAgcGFkZGluZy10b3A6IDRweDtcXG59XFxuLnEtY29sb3ItZGFyayB7XFxuICBiYWNrZ3JvdW5kOiAjMDAwO1xcbiAgYm9yZGVyOiAxcHggc29saWQgIzQyNDI0MjtcXG59XFxuLnEtY29sb3ItZGFyayBpbnB1dCB7XFxuICBiYWNrZ3JvdW5kOiAjMDAwO1xcbiAgY29sb3I6ICNiZGJkYmQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1saWdodCk7XFxuICBib3JkZXI6IDFweCBzb2xpZCAjNDI0MjQyO1xcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcS1jb2xvci1kYXJrKTtcXG59XFxuLnEtY29sb3ItZGFyayAucS1jb2xvci1pbnB1dHMge1xcbiAgY29sb3I6ICNiZGJkYmQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1saWdodCk7XFxufVxcbi5xLWNvbG9yLWRhcmsgLnEtY29sb3Itc3dhdGNoIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICM0MjQyNDI7XFxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1xLWNvbG9yLWRhcmspO1xcbn1cXG4ucS1kYXRldGltZS1pbnB1dCB7XFxuICBtaW4td2lkdGg6IDcwcHg7XFxufVxcbi5xLWRhdGV0aW1lLWNvbnRyb2xzIHtcXG4gIHBhZGRpbmc6IDAgMTBweCA4cHg7XFxufVxcbi5xLWRhdGV0aW1lIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBsaW5lLWhlaWdodDogaW5pdGlhbDtcXG59XFxuLnEtZGF0ZXRpbWUgLm1vZGFsLWJ1dHRvbnMge1xcbiAgcGFkZGluZy10b3A6IDhweDtcXG59XFxuLnEtZGF0ZXRpbWU6bm90KC5uby1ib3JkZXIpOm5vdCgucS1kYXRldGltZS1kYXJrKSAucS1kYXRldGltZS1jb250ZW50IHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxufVxcbi5xLWRhdGV0aW1lOm5vdCgubm8tYm9yZGVyKS5xLWRhdGV0aW1lLWRhcmsge1xcbiAgYm9yZGVyOiAxcHggc29saWQgIzQyNDI0MjtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXEtY29sb3ItZGFyayk7XFxufVxcbi5xLWRhdGV0aW1lLWhlYWRlciB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWhlYWRlciA+IGRpdiB7XFxuICBjb2xvcjogI2ZmZjtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4ubW9kYWwtY29udGVudCA+IC5xLWRhdGV0aW1lID4gLnEtZGF0ZXRpbWUtaGVhZGVyLFxcbi5xLXBvcG92ZXIgPiAucS1kYXRldGltZSA+IC5xLWRhdGV0aW1lLWhlYWRlciB7XFxuICBtaW4td2lkdGg6IDE3NXB4O1xcbn1cXG4ucS1kYXRldGltZS13ZWVrZGF5c3RyaW5nIHtcXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEpO1xcbiAgcGFkZGluZzogNXB4IDA7XFxufVxcbi5xLWRhdGV0aW1lLXRpbWUge1xcbiAgcGFkZGluZzogMTBweCAwO1xcbiAgd2lsbC1jaGFuZ2U6IHNjcm9sbC1wb3NpdGlvbjtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbn1cXG4ucS1kYXRldGltZS1hbXBtIHtcXG4gIGZvbnQtc2l6ZTogMC45cmVtO1xcbiAgcGFkZGluZzogNXB4O1xcbn1cXG4ucS1kYXRldGltZS1kYXRlc3RyaW5nIHtcXG4gIHBhZGRpbmc6IDEwcHggMDtcXG59XFxuLnEtZGF0ZXRpbWUtZGF0ZXN0cmluZyAucS1kYXRldGltZS1saW5rIHtcXG4gIGZvbnQtc2l6ZTogMi43cmVtO1xcbn1cXG4ucS1kYXRldGltZS1kYXRlc3RyaW5nIC5xLWRhdGV0aW1lLWxpbmsgc3BhbiB7XFxuICBwYWRkaW5nOiAwIDVweDtcXG4gIHdpZHRoOiAxMDAlO1xcbn1cXG4ucS1kYXRldGltZS1kYXRlc3RyaW5nIC5xLWRhdGV0aW1lLWxpbmsuc21hbGwge1xcbiAgbWFyZ2luOiAwIDVweDtcXG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xcbn1cXG4ucS1kYXRldGltZS1kYXRlc3RyaW5nIC5xLWRhdGV0aW1lLWxpbmsuc21hbGwgc3BhbiB7XFxuICBwYWRkaW5nOiA1cHg7XFxufVxcbi5xLWRhdGV0aW1lLWxpbmsge1xcbiAgb3BhY2l0eTogMC42O1xcbn1cXG4ucS1kYXRldGltZS1saW5rID4gc3BhbiB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS1kYXRldGltZS1saW5rLmFjdGl2ZSB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1kYXRldGltZS1jbG9ja3N0cmluZyB7XFxuICBtaW4td2lkdGg6IDIxMHB4O1xcbiAgZm9udC1zaXplOiAyLjdyZW07XFxuICBkaXJlY3Rpb246IGx0ciAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1zZWxlY3RvciB7XFxuICBtaW4td2lkdGg6IDI5MHB4O1xcbiAgaGVpZ2h0OiAzMTBweDtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbn1cXG4ucS1kYXRldGltZS12aWV3LWRheSB7XFxuICB3aWR0aDogMjUwcHg7XFxuICBoZWlnaHQ6IDI4NXB4O1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLWRhdGV0aW1lLXZpZXcteWVhciA+IC5xLWJ0bjpub3QoLmFjdGl2ZSksXFxuLnEtZGF0ZXRpbWUtdmlldy1tb250aCA+IC5xLWJ0bjpub3QoLmFjdGl2ZSkge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLWRhdGV0aW1lLW1vbnRoLXN0YW1wIHtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG59XFxuLnEtZGF0ZXRpbWUtd2Vla2RheXMge1xcbiAgbWFyZ2luLWJvdHRvbTogNXB4O1xcbn1cXG4ucS1kYXRldGltZS13ZWVrZGF5cyBkaXYge1xcbiAgb3BhY2l0eTogMC42O1xcbiAgd2lkdGg6IDM1cHg7XFxuICBoZWlnaHQ6IDM1cHg7XFxuICBsaW5lLWhlaWdodDogMzVweDtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICBtaW4td2lkdGg6IDA7XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxufVxcbi5xLWRhdGV0aW1lLWRheXMgZGl2IHtcXG4gIG1hcmdpbjogMXB4O1xcbiAgbGluZS1oZWlnaHQ6IDMzcHg7XFxuICB3aWR0aDogMzNweDtcXG4gIGhlaWdodDogMzNweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG59XFxuLnEtZGF0ZXRpbWUtZGF5cyBkaXYucS1kYXRldGltZS1kYXktYWN0aXZlIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtZGF5cyBkaXYucS1kYXRldGltZS1kYXktYWN0aXZlID4gc3BhbiB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtZGF0ZXRpbWUtZGF5cyBkaXYucS1kYXRldGltZS1kYXktdG9kYXkge1xcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtZGF0ZXRpbWUtZGF5cyBkaXY6bm90KC5xLWRhdGV0aW1lLWZpbGxlcmRheSk6bm90KC5kaXNhYmxlZCk6bm90KC5xLWRhdGV0aW1lLWRheS1hY3RpdmUpOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6ICNlMGUwZTA7XFxufVxcbi5xLWRhdGV0aW1lLWJ0biB7XFxuICBmb250LXdlaWdodDogbm9ybWFsO1xcbn1cXG4ucS1kYXRldGltZS1idG4uYWN0aXZlIHtcXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xcbiAgcGFkZGluZy10b3A6IDFyZW07XFxuICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2sge1xcbiAgd2lkdGg6IDI1MHB4O1xcbiAgaGVpZ2h0OiAyNTBweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQ6ICNlMGUwZTA7XFxuICBwYWRkaW5nOiAyNHB4O1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1jaXJjbGUge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcG9wIDAuNXMgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXBvcCAwLjVzIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLWNlbnRlciB7XFxuICBoZWlnaHQ6IDZweDtcXG4gIHdpZHRoOiA2cHg7XFxuICB0b3A6IDA7XFxuICBtYXJnaW46IGF1dG87XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb2ludGVyIHtcXG4gIHdpZHRoOiAxcHg7XFxuICBoZWlnaHQ6IDUwJTtcXG4gIG1hcmdpbjogMCBhdXRvO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiB0b3AgY2VudGVyIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXIgLyogcnRsOmlnbm9yZSAqLztcXG4gIG1pbi1oZWlnaHQ6IDA7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvaW50ZXIgc3BhbiB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICB3aWR0aDogOHB4O1xcbiAgaGVpZ2h0OiA4cHg7XFxuICBib3R0b206IC04cHg7XFxuICBsZWZ0OiAwO1xcbiAgbWluLXdpZHRoOiAwO1xcbiAgbWluLWhlaWdodDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1kYXRldGltZS1hcnJvdyB7XFxuICBjb2xvcjogIzc1NzU3NTtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayB7XFxuICBiYWNrZ3JvdW5kOiAjNDI0MjQyO1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1kYXJrKTtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1hcnJvdyB7XFxuICBjb2xvcjogI2JkYmRiZDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWxpZ2h0KTtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1oZWFkZXIsXFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1jbG9jayB7XFxuICBiYWNrZ3JvdW5kOiAjNjE2MTYxO1xcbn1cXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLXZpZXctZGF5IHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1kYXRldGltZS1kYXJrIC5xLWRhdGV0aW1lLXZpZXcteWVhciA+IC5xLWJ0bjpub3QoLmFjdGl2ZSksXFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS12aWV3LW1vbnRoID4gLnEtYnRuOm5vdCguYWN0aXZlKSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1kYXlzIGRpdi5xLWRhdGV0aW1lLWRheS1hY3RpdmUgPiBzcGFuLFxcbi5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtZGF5cyBkaXY6bm90KC5xLWRhdGV0aW1lLWZpbGxlcmRheSk6bm90KC5kaXNhYmxlZCk6bm90KC5xLWRhdGV0aW1lLWRheS1hY3RpdmUpOmhvdmVyIHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb246bm90KC5hY3RpdmUpOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6ICNmNWY1ZjUgIWltcG9ydGFudDtcXG59XFxuYm9keS5kZXNrdG9wIC5xLWRhdGV0aW1lLWRhcmsgLnEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb246bm90KC5hY3RpdmUpOmhvdmVyIHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbiB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBtaW4taGVpZ2h0OiAzMnB4O1xcbiAgd2lkdGg6IDMycHg7XFxuICBoZWlnaHQ6IDMycHg7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBsaW5lLWhlaWdodDogMzJweDtcXG4gIG1hcmdpbjogMDtcXG4gIHBhZGRpbmc6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIC8qIHJ0bDppZ25vcmUgKi87XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uOm5vdCguYWN0aXZlKSB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtZGF0ZXRpbWUtZGFyayAucS1kYXRldGltZS1jbG9jay1wb3NpdGlvbjpub3QoLmFjdGl2ZSkge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uLmFjdGl2ZSB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvc2l0aW9uLmFjdGl2ZSA+IHNwYW4ge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0wIHtcXG4gIHRvcDogMCU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEge1xcbiAgdG9wOiA2LjclO1xcbiAgbGVmdDogNzUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0yIHtcXG4gIHRvcDogMjUlO1xcbiAgbGVmdDogOTMuMyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTMge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAxMDAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy00IHtcXG4gIHRvcDogNzUlO1xcbiAgbGVmdDogOTMuMyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTUge1xcbiAgdG9wOiA5My4zJTtcXG4gIGxlZnQ6IDc1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNiB7XFxuICB0b3A6IDEwMCU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTcge1xcbiAgdG9wOiA5My4zJTtcXG4gIGxlZnQ6IDI1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtOCB7XFxuICB0b3A6IDc1JTtcXG4gIGxlZnQ6IDYuNyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTkge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTAge1xcbiAgdG9wOiAyNSU7XFxuICBsZWZ0OiA2LjclIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMSB7XFxuICB0b3A6IDYuNyU7XFxuICBsZWZ0OiAyNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEyIHtcXG4gIHRvcDogMCU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEuZm10MjQge1xcbiAgdG9wOiA2LjclO1xcbiAgbGVmdDogNzUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0yLmZtdDI0IHtcXG4gIHRvcDogMjUlO1xcbiAgbGVmdDogOTMuMyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTMuZm10MjQge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAxMDAlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy00LmZtdDI0IHtcXG4gIHRvcDogNzUlO1xcbiAgbGVmdDogOTMuMyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTUuZm10MjQge1xcbiAgdG9wOiA5My4zJTtcXG4gIGxlZnQ6IDc1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtNi5mbXQyNCB7XFxuICB0b3A6IDEwMCU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTcuZm10MjQge1xcbiAgdG9wOiA5My4zJTtcXG4gIGxlZnQ6IDI1JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtOC5mbXQyNCB7XFxuICB0b3A6IDc1JTtcXG4gIGxlZnQ6IDYuNyUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTkuZm10MjQge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTAuZm10MjQge1xcbiAgdG9wOiAyNSU7XFxuICBsZWZ0OiA2LjclIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xMS5mbXQyNCB7XFxuICB0b3A6IDYuNyU7XFxuICBsZWZ0OiAyNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEyLmZtdDI0IHtcXG4gIHRvcDogMCU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTEzLmZtdDI0IHtcXG4gIHRvcDogMTkuNjklO1xcbiAgbGVmdDogNjcuNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTE0LmZtdDI0IHtcXG4gIHRvcDogMzIuNSU7XFxuICBsZWZ0OiA4MC4zMSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTE1LmZtdDI0IHtcXG4gIHRvcDogNTAlO1xcbiAgbGVmdDogODUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xNi5mbXQyNCB7XFxuICB0b3A6IDY3LjUlO1xcbiAgbGVmdDogODAuMzElIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xNy5mbXQyNCB7XFxuICB0b3A6IDgwLjMxJTtcXG4gIGxlZnQ6IDY3LjUlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLWRhdGV0aW1lLWNsb2NrLXBvcy0xOC5mbXQyNCB7XFxuICB0b3A6IDg1JTtcXG4gIGxlZnQ6IDUwJSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMTkuZm10MjQge1xcbiAgdG9wOiA4MC4zMSU7XFxuICBsZWZ0OiAzMi41JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMjAuZm10MjQge1xcbiAgdG9wOiA2Ny41JTtcXG4gIGxlZnQ6IDE5LjY5JSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS1kYXRldGltZS1jbG9jay1wb3MtMjEuZm10MjQge1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAxNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTIyLmZtdDI0IHtcXG4gIHRvcDogMzIuNSU7XFxuICBsZWZ0OiAxOS42OSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTIzLmZtdDI0IHtcXG4gIHRvcDogMTkuNjklO1xcbiAgbGVmdDogMzIuNSUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtY2xvY2stcG9zLTAuZm10MjQge1xcbiAgdG9wOiAxNSU7XFxuICBsZWZ0OiA1MCUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtZGF0ZXRpbWUtcmFuZ2Uucm93IC5xLWRhdGV0aW1lLXJhbmdlLWxlZnQge1xcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcXG59XFxuLnEtZGF0ZXRpbWUtcmFuZ2Uucm93IC5xLWRhdGV0aW1lLXJhbmdlLXJpZ2h0IHtcXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xcbn1cXG4ucS1kYXRldGltZS1yYW5nZS5jb2x1bW4gPiBkaXYgKyBkaXYge1xcbiAgbWFyZ2luLXRvcDogMTBweDtcXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAucS1kYXRldGltZSB7XFxuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWwgIWltcG9ydGFudDtcXG4gICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWwgIWltcG9ydGFudDtcXG4gICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcXG4gIC5xLWRhdGV0aW1lLWhlYWRlciB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XFxuICB9XFxuICAucS1kYXRldGltZS1jb250ZW50IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMjtcXG4gICAgICAgIC1tcy1mbGV4OiAyIDIgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAyIDIgYXV0bztcXG4gIH1cXG59XFxuLnEtZG90IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogLTJweDtcXG4gIHJpZ2h0OiAtMTBweDtcXG4gIGhlaWdodDogMTBweDtcXG4gIHdpZHRoOiAxMHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYmFja2dyb3VuZDogI2Y0NDMzNjtcXG4gIG9wYWNpdHk6IDAuODtcXG59XFxuLnEtZWRpdG9yIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XFxufVxcbi5xLWVkaXRvci5kaXNhYmxlZCB7XFxuICBib3JkZXItc3R5bGU6IGRhc2hlZDtcXG59XFxuLnEtZWRpdG9yLmZ1bGxzY3JlZW4ge1xcbiAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5xLWVkaXRvci1jb250ZW50IHtcXG4gIG91dGxpbmU6IDA7XFxuICBwYWRkaW5nOiAxMHB4O1xcbiAgbWluLWhlaWdodDogMTBlbTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxufVxcbi5xLWVkaXRvci1jb250ZW50IGhyIHtcXG4gIGJvcmRlcjogMDtcXG4gIG91dGxpbmU6IDA7XFxuICBtYXJnaW46IDFweDtcXG4gIGhlaWdodDogMXB4O1xcbiAgYmFja2dyb3VuZDogI2NjYztcXG59XFxuLnEtZWRpdG9yLXRvb2xiYXItcGFkZGluZyB7XFxuICBwYWRkaW5nOiA0cHg7XFxufVxcbi5xLWVkaXRvci10b29sYmFyIHtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1xcbiAgYmFja2dyb3VuZDogI2UwZTBlMDtcXG4gIG1pbi1oZWlnaHQ6IDM3cHg7XFxufVxcbi5xLWVkaXRvci10b29sYmFyIC5xLWJ0bi1ncm91cCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5xLWVkaXRvci10b29sYmFyIC5xLWJ0bi1ncm91cCArIC5xLWJ0bi1ncm91cCB7XFxuICBtYXJnaW4tbGVmdDogNXB4O1xcbn1cXG4ucS1lZGl0b3ItdG9vbGJhci1zZXBhcmF0b3IgLnEtYnRuLWdyb3VwICsgLnEtYnRuLWdyb3VwIHtcXG4gIHBhZGRpbmctbGVmdDogNXB4O1xcbn1cXG4ucS1lZGl0b3ItdG9vbGJhci1zZXBhcmF0b3IgLnEtYnRuLWdyb3VwICsgLnEtYnRuLWdyb3VwOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDA7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMXB4O1xcbiAgYmFja2dyb3VuZDogI2NjYztcXG59XFxuLnEtZWRpdG9yLWlucHV0IGlucHV0IHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbn1cXG4ucS1mYWIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG59XFxuLnotZmFiIHtcXG4gIHotaW5kZXg6IDk5MDtcXG59XFxuLnEtZmFiLW9wZW5lZCAucS1mYWItYWN0aW9ucyB7XFxuICBvcGFjaXR5OiAxO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgxKSBzY2FsZVkoMSkgdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKSBzY2FsZVkoMSkgdHJhbnNsYXRlWCgwKSB0cmFuc2xhdGVZKDApO1xcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcXG59XFxuLnEtZmFiLW9wZW5lZCAucS1mYWItaWNvbiB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMTgwZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCAxODBkZWcpO1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtZmFiLW9wZW5lZCAucS1mYWItYWN0aXZlLWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDBkZWcpO1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtZmFiLWljb24sXFxuLnEtZmFiLWFjdGl2ZS1pY29uIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjRzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjRzO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzLCB0cmFuc2Zvcm0gMC40cztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cywgdHJhbnNmb3JtIDAuNHMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNHM7XFxufVxcbi5xLWZhYi1pY29uIHtcXG4gIG9wYWNpdHk6IDE7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlM2QoMCwgMCwgMSwgMGRlZyk7XFxufVxcbi5xLWZhYi1hY3RpdmUtaWNvbiB7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xODBkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIC0xODBkZWcpO1xcbn1cXG4ucS1mYWItYWN0aW9ucyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS1mYWItYWN0aW9ucyAucS1idG4ge1xcbiAgbWFyZ2luOiA1cHg7XFxufVxcbi5xLWZhYi1yaWdodCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWCgtMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWCgtMTAwJSk7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAxMjAlO1xcbn1cXG4ucS1mYWItbGVmdCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWCgxMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVYKDEwMCUpO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgcmlnaHQ6IDEyMCU7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xcbn1cXG4ucS1mYWItdXAge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlWCgwLjQpIHNjYWxlWSgwLjQpIHRyYW5zbGF0ZVkoMTAwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDAuNCkgc2NhbGVZKDAuNCkgdHJhbnNsYXRlWSgxMDAlKTtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IHJldmVyc2U7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBib3R0b206IDEyMCU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxufVxcbi5xLWZhYi1kb3duIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVZKC0xMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMC40KSBzY2FsZVkoMC40KSB0cmFuc2xhdGVZKC0xMDAlKTtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgdG9wOiAxMjAlO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbn1cXG4ucS1maWVsZC1pY29uIHtcXG4gIHdpZHRoOiAyOHB4O1xcbiAgaGVpZ2h0OiAyOHB4O1xcbiAgbWluLXdpZHRoOiAyOHB4O1xcbiAgZm9udC1zaXplOiAyOHB4O1xcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4O1xcbiAgY29sb3I6ICM5Nzk3OTc7XFxufVxcbi5xLWZpZWxkLWxhYmVsIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDhweDtcXG4gIGNvbG9yOiAjOTc5Nzk3O1xcbn1cXG4ucS1maWVsZC1sYWJlbC1pbm5lciB7XFxuICBtaW4taGVpZ2h0OiAyOHB4O1xcbn1cXG4ucS1maWVsZC1sYWJlbC1oaW50IHtcXG4gIHBhZGRpbmctbGVmdDogOHB4O1xcbn1cXG4ucS1maWVsZC1ib3R0b20ge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgcGFkZGluZy10b3A6IDhweDtcXG4gIGNvbG9yOiAjOTc5Nzk3O1xcbn1cXG4ucS1maWVsZC1uby1pbnB1dCAucS1maWVsZC1ib3R0b20ge1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLWZpZWxkLWNvdW50ZXIge1xcbiAgY29sb3I6ICM5Nzk3OTc7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuLnEtZmllbGQtZGFyayAucS1maWVsZC1sYWJlbCxcXG4ucS1maWVsZC1kYXJrIC5xLWZpZWxkLWljb24sXFxuLnEtZmllbGQtZGFyayAucS1maWVsZC1jb3VudGVyLFxcbi5xLWZpZWxkLWRhcmsgLnEtZmllbGQtYm90dG9tIHtcXG4gIGNvbG9yOiAjYTdhN2E3O1xcbn1cXG4ucS1maWVsZC1kYXJrIC5xLWZpZWxkLW5vLWlucHV0IC5xLWZpZWxkLWJvdHRvbSB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgIzk3OTc5NztcXG59XFxuLnEtZmllbGQtd2l0aC1lcnJvciAucS1maWVsZC1pY29uLFxcbi5xLWZpZWxkLXdpdGgtZXJyb3IgLnEtZmllbGQtbGFiZWwsXFxuLnEtZmllbGQtd2l0aC1lcnJvciAucS1maWVsZC1ib3R0b20ge1xcbiAgY29sb3I6ICNkYjI4Mjg7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSk7XFxufVxcbi5xLWZpZWxkLXdpdGgtZXJyb3IgLnEtZmllbGQtbm8taW5wdXQgLnEtZmllbGQtYm90dG9tIHtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGIyODI4O1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXEtY29sb3ItbmVnYXRpdmUpO1xcbn1cXG4ucS1maWVsZC13aXRoLXdhcm5pbmcgLnEtZmllbGQtaWNvbixcXG4ucS1maWVsZC13aXRoLXdhcm5pbmcgLnEtZmllbGQtbGFiZWwsXFxuLnEtZmllbGQtd2l0aC13YXJuaW5nIC5xLWZpZWxkLWJvdHRvbSB7XFxuICBjb2xvcjogI2YyYzAzNztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXdhcm5pbmcpO1xcbn1cXG4ucS1maWVsZC13aXRoLXdhcm5pbmcgLnEtZmllbGQtbm8taW5wdXQgLnEtZmllbGQtYm90dG9tIHtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZjJjMDM3O1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXEtY29sb3Itd2FybmluZyk7XFxufVxcbi5xLWZpZWxkLW1hcmdpbiB7XFxuICBtYXJnaW4tdG9wOiA1cHg7XFxufVxcbi5xLWZpZWxkLWZsb2F0aW5nIC5xLWZpZWxkLW1hcmdpbiB7XFxuICBtYXJnaW4tdG9wOiAyM3B4O1xcbn1cXG4ucS1maWVsZC1uby1pbnB1dCAucS1maWVsZC1tYXJnaW4ge1xcbiAgbWFyZ2luLXRvcDogM3B4O1xcbn1cXG4ucS1maWVsZC1jb250ZW50IC5xLWlmLnEtaWYtaGFzLWxhYmVsOm5vdCgucS1pZi1zdGFuZGFyZCkge1xcbiAgbWFyZ2luLXRvcDogOXB4O1xcbn1cXG4ucS1maWVsZC1jb250ZW50IC5xLWlmLXN0YW5kYXJkOm5vdCgucS1pZi1oYXMtbGFiZWwpIHtcXG4gIHBhZGRpbmctdG9wOiA2cHg7XFxufVxcbi5xLWZpZWxkLWNvbnRlbnQgLnEtb3B0aW9uLWdyb3VwIHtcXG4gIHBhZGRpbmctdG9wOiAwO1xcbn1cXG4ucS1maWVsZC1uby1pbnB1dCAucS1maWVsZC1jb250ZW50IHtcXG4gIHBhZGRpbmctdG9wOiA2cHg7XFxufVxcbi5xLWZpZWxkLXZlcnRpY2FsOm5vdCgucS1maWVsZC1uby1sYWJlbCkgLnEtZmllbGQtbWFyZ2luIHtcXG4gIG1hcmdpbi10b3A6IDA7XFxufVxcbi5xLWZpZWxkLXZlcnRpY2FsOm5vdCgucS1maWVsZC1uby1sYWJlbCkgLnEtaWYtc3RhbmRhcmQ6bm90KC5xLWlmLWhhcy1sYWJlbCkge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5xLWZpZWxkLXZlcnRpY2FsOm5vdCgucS1maWVsZC1uby1sYWJlbCkgLnEtaWYucS1pZi1oYXMtbGFiZWw6bm90KC5xLWlmLXN0YW5kYXJkKSB7XFxuICBtYXJnaW4tdG9wOiAwcHg7XFxufVxcbi5xLWZpZWxkLXZlcnRpY2FsLnEtZmllbGQtbm8tbGFiZWwgLnEtZmllbGQtbGFiZWwge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XFxuICAucS1maWVsZC1yZXNwb25zaXZlOm5vdCgucS1maWVsZC1uby1sYWJlbCkgLnEtZmllbGQtbWFyZ2luIHtcXG4gICAgbWFyZ2luLXRvcDogMDtcXG4gIH1cXG4gIC5xLWZpZWxkLXJlc3BvbnNpdmU6bm90KC5xLWZpZWxkLW5vLWxhYmVsKSAucS1pZi1zdGFuZGFyZDpub3QoLnEtaWYtaGFzLWxhYmVsKSB7XFxuICAgIHBhZGRpbmctdG9wOiAwO1xcbiAgfVxcbiAgLnEtZmllbGQtcmVzcG9uc2l2ZTpub3QoLnEtZmllbGQtbm8tbGFiZWwpIC5xLWlmLnEtaWYtaGFzLWxhYmVsOm5vdCgucS1pZi1zdGFuZGFyZCkge1xcbiAgICBtYXJnaW4tdG9wOiAwcHg7XFxuICB9XFxuICAucS1maWVsZC1yZXNwb25zaXZlLnEtZmllbGQtbm8tbGFiZWwgLnEtZmllbGQtbGFiZWwge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcbn1cXG4ucS1pbm5lci1sb2FkaW5nIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC42KTtcXG59XFxuLnEtaW5uZXItbG9hZGluZy5kYXJrIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC40KTtcXG59XFxuLnEtaWYsXFxuLnEtaWY6YmVmb3JlLFxcbi5xLWlmLWxhYmVsLFxcbi5xLWlmLWFkZG9uLFxcbi5xLWZpZWxkLWljb24sXFxuLnEtZmllbGQtbGFiZWwsXFxuLnEtaWYtY29udHJvbCxcXG4ucS1maWVsZC1ib3R0b20ge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpLCBkaXNwbGF5IDBzIDBzO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSwgZGlzcGxheSAwcyAwcztcXG59XFxuLnEtaWYucS1pZi1oaWRlLXVuZGVybGluZTpiZWZvcmUsXFxuLnEtaWYucS1pZi1pbnZlcnRlZDpiZWZvcmUsXFxuLnEtaWYucS1pZi1oaWRlLXVuZGVybGluZTphZnRlcixcXG4ucS1pZi5xLWlmLWludmVydGVkOmFmdGVyIHtcXG4gIGNvbnRlbnQ6IG5vbmU7XFxufVxcbi5xLWlmLWludmVydGVkIHtcXG4gIHBhZGRpbmctbGVmdDogOHB4O1xcbiAgcGFkZGluZy1yaWdodDogOHB4O1xcbn1cXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1pbm5lciB7XFxuICBtYXJnaW4tdG9wOiA3cHg7XFxuICBtYXJnaW4tYm90dG9tOiA3cHg7XFxufVxcbi5xLWlmLWludmVydGVkLnEtaWYtaGFzLWxhYmVsIC5xLWlmLWlubmVyIHtcXG4gIG1hcmdpbi10b3A6IDI1cHg7XFxufVxcbi5xLWlmOmJlZm9yZSxcXG4ucS1pZjphZnRlciB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3JkZXI6IDFweCBoaWRkZW4gY3VycmVudENvbG9yO1xcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgY29udGVudDogJyc7XFxufVxcbi5xLWlmOmJlZm9yZSB7XFxuICBjb2xvcjogI2JkYmRiZDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWxpZ2h0KTtcXG59XFxuLnEtaWY6YWZ0ZXIge1xcbiAgYm9yZGVyLXdpZHRoOiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyIDA7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXIgMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZVgoMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGVYKDApO1xcbn1cXG4ucS1pZjpub3QoLnEtaWYtZGlzYWJsZWQpOm5vdCgucS1pZi1lcnJvcik6bm90KC5xLWlmLXdhcm5pbmcpOmhvdmVyOmJlZm9yZSxcXG4ucS1pZi5xLWlmLXJlYWRvbmx5Om5vdCgucS1pZi1lcnJvcik6bm90KC5xLWlmLXdhcm5pbmcpOmFmdGVyIHtcXG4gIGNvbG9yOiAjMDAwO1xcbn1cXG4ucS1pZi1kYXJrLnEtaWY6bm90KC5xLWlmLWRpc2FibGVkKTpub3QoLnEtaWYtZXJyb3IpOm5vdCgucS1pZi13YXJuaW5nKTpob3ZlcjpiZWZvcmUsXFxuLnEtaWYtZGFyay5xLWlmLnEtaWYtcmVhZG9ubHk6bm90KC5xLWlmLWVycm9yKTpub3QoLnEtaWYtd2FybmluZyk6YWZ0ZXIge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLWlmLWZvY3VzZWQ6YWZ0ZXIge1xcbiAgYm9yZGVyLXdpZHRoOiAycHg7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGVYKDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYm9yZGVyLWxlZnQtd2lkdGggMHMgMC40NXMsIGJvcmRlci1yaWdodC13aWR0aCAwcyAwLjQ1cywgLXdlYmtpdC10cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWxlZnQtd2lkdGggMHMgMC40NXMsIGJvcmRlci1yaWdodC13aWR0aCAwcyAwLjQ1cywgLXdlYmtpdC10cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSwgYm9yZGVyLWxlZnQtd2lkdGggMHMgMC40NXMsIGJvcmRlci1yaWdodC13aWR0aCAwcyAwLjQ1cztcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSksIGJvcmRlci1sZWZ0LXdpZHRoIDBzIDAuNDVzLCBib3JkZXItcmlnaHQtd2lkdGggMHMgMC40NXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG59XFxuLnEtaWYge1xcbiAgb3V0bGluZTogMDtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG59XFxuLnEtaWYgLnEtaWYtaW5uZXIge1xcbiAgbWluLWhlaWdodDogMjRweDtcXG59XFxuLnEtaWYtc3RhbmRhcmQge1xcbiAgcGFkZGluZy10b3A6IDdweDtcXG4gIHBhZGRpbmctYm90dG9tOiA3cHg7XFxufVxcbi5xLWlmLXN0YW5kYXJkLnEtaWYtaGFzLWxhYmVsIHtcXG4gIHBhZGRpbmctdG9wOiAyNXB4O1xcbn1cXG4ucS1pZi1oaWRlLXVuZGVybGluZSB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG4gIHBhZGRpbmctYm90dG9tOiAwO1xcbn1cXG4ucS1pZi1oaWRlLXVuZGVybGluZS5xLWlmLWhhcy1sYWJlbCB7XFxuICBwYWRkaW5nLXRvcDogMThweDtcXG59XFxuLnEtaWYtc3RhbmRhcmQgLnEtaWYtbGFiZWwsXFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtbGFiZWwge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgbGVmdDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogdG9wIGxlZnQ7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBsZWZ0O1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XFxufVxcbi5xLWlmLXN0YW5kYXJkIC5xLWlmLWxhYmVsLnEtaWYtbGFiZWwtYWJvdmUsXFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtbGFiZWwucS1pZi1sYWJlbC1hYm92ZSB7XFxuICBmb250LXNpemU6IDAuNzVyZW07XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTEwMCUpO1xcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XFxufVxcbi5xLWlmLWludmVydGVkIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbn1cXG4ucS1pZi1pbnZlcnRlZCAucS1pZi1sYWJlbCB7XFxuICB0b3A6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTIxcHgpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtMjFweCk7XFxufVxcbi5xLWlmLWludmVydGVkIC5xLWlmLWxhYmVsLnEtaWYtbGFiZWwtYWJvdmUge1xcbiAgdG9wOiA0cHg7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xMjUlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTEyNSUpO1xcbn1cXG4ucS1pZi1pbnZlcnRlZCAucS1pbnB1dC10YXJnZXQge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxufVxcbi5xLWlmLWZvY3VzZWQ6bm90KC5xLWlmLXJlYWRvbmx5KSAucS1pZi1sYWJlbCxcXG4ucS1pZi1mb2N1c2VkOm5vdCgucS1pZi1yZWFkb25seSkgLnEtaWYtYWRkb24sXFxuLnEtaWYtZm9jdXNlZDpub3QoLnEtaWYtcmVhZG9ubHkpIC5xLWlmLWNvbnRyb2wge1xcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtaWYtd2FybmluZzpiZWZvcmUsXFxuLnEtaWYtd2FybmluZzphZnRlcixcXG4ucS1pZi13YXJuaW5nOm5vdCgucS1pZi1pbnZlcnRlZCkgLnEtaWYtbGFiZWwge1xcbiAgY29sb3I6ICNmMmMwMzc7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci13YXJuaW5nKTtcXG59XFxuLnEtaWYtd2FybmluZzpob3ZlcjpiZWZvcmUge1xcbiAgY29sb3I6ICNmOGRkOTM7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci13YXJuaW5nLWwpO1xcbn1cXG4ucS1pZi1lcnJvcjpiZWZvcmUsXFxuLnEtaWYtZXJyb3I6YWZ0ZXIsXFxuLnEtaWYtZXJyb3I6bm90KC5xLWlmLWludmVydGVkKSAucS1pZi1sYWJlbCB7XFxuICBjb2xvcjogI2RiMjgyODtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKTtcXG59XFxuLnEtaWYtZXJyb3I6aG92ZXI6YmVmb3JlIHtcXG4gIGNvbG9yOiAjZWM4YjhiO1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUtbCk7XFxufVxcbi5xLWlmLWRpc2FibGVkIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XFxuICBvcGFjaXR5OiAwLjY7XFxufVxcbi5xLWlmLWRpc2FibGVkIC5xLWlmLWxhYmVsLFxcbi5xLWlmLWRpc2FibGVkIC5xLWlmLWNvbnRyb2wsXFxuLnEtaWYtZGlzYWJsZWQgLnEtaW5wdXQtdGFyZ2V0LFxcbi5xLWlmLWRpc2FibGVkIC5xLWNoaXAge1xcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcXG59XFxuLnEtaWYtZGFyazpub3QoLnEtaWYtaW52ZXJ0ZWQtbGlnaHQpIC5xLWlucHV0LXRhcmdldDpub3QoLnEtaW5wdXQtdGFyZ2V0LXBsYWNlaG9sZGVyKSB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtaWYtZm9jdXNhYmxlIHtcXG4gIG91dGxpbmU6IDA7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLWlmLWxhYmVsLFxcbi5xLWlucHV0LXRhcmdldCxcXG4ucS1pbnB1dC10YXJnZXQtcGxhY2Vob2xkZXIge1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxufVxcbi5xLWlmLWNvbnRyb2wge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbiAgd2lkdGg6IDI0cHg7XFxuICBoZWlnaHQ6IDI0cHg7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLWlmLWNvbnRyb2wgKyAucS1pZi1jb250cm9sLFxcbi5xLWlmLWNvbnRyb2wgKyAucS1pZi1pbm5lcixcXG4ucS1pZi1pbm5lciArIC5xLWlmLWNvbnRyb2wge1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG59XFxuLnEtaWYtY29udHJvbDpob3ZlciB7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcbi5xLWlmLWJhc2VsaW5lIHtcXG4gIGxpbmUtaGVpZ2h0OiAyNHB4O1xcbiAgd2lkdGg6IDA7XFxuICBjb2xvcjogdHJhbnNwYXJlbnQ7XFxufVxcbi5xLWlmLWxhYmVsLWlubmVyLFxcbi5xLWlmLWxhYmVsLXNwYWNlcixcXG4ucS1pZi1iYXNlbGluZSB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcbi5xLWlmLWxhYmVsLXNwYWNlciB7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxufVxcbi5xLWlmLWxhYmVsIHtcXG4gIGN1cnNvcjogdGV4dDtcXG4gIG1heC13aWR0aDogMTAwJTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLWlmLWxhYmVsLFxcbi5xLWlmLWFkZG9uLFxcbi5xLWlmLWNvbnRyb2wge1xcbiAgY29sb3I6ICM5Nzk3OTc7XFxuICBsaW5lLWhlaWdodDogMjRweDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtbGFiZWwsXFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtYWRkb24sXFxuLnEtaWYtaW52ZXJ0ZWQgLnEtaWYtY29udHJvbCB7XFxuICBjb2xvcjogI2RkZDtcXG59XFxuLnEtaWYtaW52ZXJ0ZWQtbGlnaHQgLnEtaWYtbGFiZWwsXFxuLnEtaWYtaW52ZXJ0ZWQtbGlnaHQgLnEtaWYtYWRkb24sXFxuLnEtaWYtaW52ZXJ0ZWQtbGlnaHQgLnEtaWYtY29udHJvbCB7XFxuICBjb2xvcjogIzY1NjU2NTtcXG59XFxuLnEtaWYtYWRkb24ge1xcbiAgb3BhY2l0eTogMDtcXG4gIGN1cnNvcjogaW5oZXJpdDtcXG59XFxuLnEtaWYtYWRkb246bm90KC5xLWlmLWFkZG9uLXZpc2libGUpIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLWlmLWFkZG9uLWxlZnQge1xcbiAgcGFkZGluZy1yaWdodDogMXB4O1xcbn1cXG4ucS1pZi1hZGRvbi1yaWdodCB7XFxuICBwYWRkaW5nLWxlZnQ6IDFweDtcXG59XFxuLnEtaWYtYWRkb24tdmlzaWJsZSB7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1pbnB1dC10YXJnZXQsXFxuLnEtaW5wdXQtc2hhZG93IHtcXG4gIGJvcmRlcjogMDtcXG4gIG91dGxpbmU6IDA7XFxuICBwYWRkaW5nOiAwO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBsaW5lLWhlaWdodDogMjRweDtcXG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcXG4gIHJlc2l6ZTogbm9uZTtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLWlucHV0LXRhcmdldDotd2Via2l0LWF1dG9maWxsIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHdlYmtpdC1hdXRvZmlsbC1vbjtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcXG59XFxuLnEtaW5wdXQtdGFyZ2V0LnEtaW5wdXQtYXV0b2ZpbGw6bm90KDotd2Via2l0LWF1dG9maWxsKSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiB3ZWJraXQtYXV0b2ZpbGwtb2ZmO1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xcbn1cXG4ucS1pbnB1dC10YXJnZXQ6Oi1tcy1jbGVhcixcXG4ucS1pbnB1dC10YXJnZXQ6Oi1tcy1yZXZlYWwge1xcbiAgZGlzcGxheTogbm9uZTtcXG4gIHdpZHRoOiAwO1xcbiAgaGVpZ2h0OiAwO1xcbn1cXG4ucS1pbnB1dC10YXJnZXQ6aW52YWxpZCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IGluaGVyaXQ7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IGluaGVyaXQ7XFxufVxcbi5xLWlucHV0LXRhcmdldDpiZWZvcmUge1xcbiAgY29udGVudDogJ3wnO1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICB3aWR0aDogMDtcXG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcXG59XFxuaW5wdXQucS1pbnB1dC10YXJnZXQge1xcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcXG4gIGhlaWdodDogMjRweDtcXG4gIG91dGxpbmU6IDA7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XFxuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XFxufVxcbi5xLWlmIC5xLWlucHV0LXRhcmdldC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogIzk3OTc5NyAhaW1wb3J0YW50O1xcbn1cXG4ucS1pZiAucS1pbnB1dC10YXJnZXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYgLnEtaW5wdXQtdGFyZ2V0OjotbW96LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmIC5xLWlucHV0LXRhcmdldDotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtZGFyayAucS1pbnB1dC10YXJnZXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtZGFyayAucS1pbnB1dC10YXJnZXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtZGFyayAucS1pbnB1dC10YXJnZXQ6Oi1tb3otcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6ICM5Nzk3OTcgIWltcG9ydGFudDtcXG59XFxuLnEtaWYtZGFyayAucS1pbnB1dC10YXJnZXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjOTc5Nzk3ICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWludmVydGVkOm5vdCgucS1pZi1pbnZlcnRlZC1saWdodCkgLnEtaW5wdXQtdGFyZ2V0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjZGRkICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWludmVydGVkOm5vdCgucS1pZi1pbnZlcnRlZC1saWdodCkgLnEtaW5wdXQtdGFyZ2V0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjZGRkICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWludmVydGVkOm5vdCgucS1pZi1pbnZlcnRlZC1saWdodCkgLnEtaW5wdXQtdGFyZ2V0OjotbW96LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiAjZGRkICFpbXBvcnRhbnQ7XFxufVxcbi5xLWlmLWludmVydGVkOm5vdCgucS1pZi1pbnZlcnRlZC1saWdodCkgLnEtaW5wdXQtdGFyZ2V0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XFxuICBjb2xvcjogI2RkZCAhaW1wb3J0YW50O1xcbn1cXG4ucS1pbnB1dC1zaGFkb3cge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcXG59XFxuLnEtanVtYm90cm9uIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHBhZGRpbmc6IDJyZW0gMXJlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XFxuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcXG59XFxuLnEtanVtYm90cm9uLWRhcmsge1xcbiAgY29sb3I6ICNmZmY7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzU3NTc1O1xcbn1cXG4ucS1qdW1ib3Ryb24tZGFyayBoci5xLWhyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zNik7XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLnEtanVtYm90cm9uIHtcXG4gICAgcGFkZGluZzogNHJlbSAycmVtO1xcbiAgfVxcbn1cXG4ucS1rbm9iLFxcbi5xLWtub2IgPiBkaXYge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbn1cXG4ucS1rbm9iID4gZGl2IHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1rbm9iLWxhYmVsIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICB0b3A6IDA7XFxuICBib3R0b206IDA7XFxufVxcbi5xLWtub2ItbGFiZWwgaSB7XFxuICBmb250LXNpemU6IDEzMCU7XFxufVxcbi5xLWxheW91dCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xcbn1cXG4ucS1sYXlvdXQtY29udGFpbmVyIC5xLWxheW91dCB7XFxuICBtaW4taGVpZ2h0OiAxMDAlO1xcbn1cXG4ucS1sYXlvdXQtY29udGFpbmVyID4gZGl2IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcXG59XFxuLnEtbGF5b3V0LWNvbnRhaW5lciA+IGRpdiA+IGRpdiB7XFxuICBtaW4taGVpZ2h0OiAwO1xcbiAgbWF4LWhlaWdodDogMTAwJTtcXG59XFxuLnEtbGF5b3V0LWhlYWRlciB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIDNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtbGF5b3V0LWhlYWRlci1oaWRkZW4ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTExMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTExMCUpO1xcbn1cXG4ucS1sYXlvdXQtZm9vdGVyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMXB4IDhweCByZ2JhKDAsMCwwLDAuMiksIDAgLTNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0zcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1sYXlvdXQtZm9vdGVyLWhpZGRlbiB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMTAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDExMCUpO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICB6LWluZGV4OiAxMDAwO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLm9uLXRvcCB7XFxuICB6LWluZGV4OiAzMDAwO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLWRlbGltaXRlciB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA1cHggOHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDE0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAzcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDVweCA4cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMTRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLWxlZnQge1xcbiAgbGVmdDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1yaWdodCB7XFxuICByaWdodDogMDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XFxufVxcbi5xLWxheW91dCxcXG4ucS1sYXlvdXQtaGVhZGVyLFxcbi5xLWxheW91dC1mb290ZXIsXFxuLnEtbGF5b3V0LXBhZ2Uge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucS1sYXlvdXQtaGVhZGVyLFxcbi5xLWxheW91dC1mb290ZXIge1xcbiAgei1pbmRleDogMjAwMDtcXG59XFxuLnEtbGF5b3V0LWJhY2tkcm9wIHtcXG4gIHotaW5kZXg6IDI5OTkgIWltcG9ydGFudDtcXG4gIHdpbGwtY2hhbmdlOiBiYWNrZ3JvdW5kLWNvbG9yO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkge1xcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtaXRlbSxcXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtaXRlbS1zaWRlIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtbWluaS1kcmF3ZXItaGlkZSxcXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtY29sbGFwc2libGUtaW5uZXIgPiBkaXY6bGFzdC1vZi10eXBlLFxcbi5xLWxheW91dC1kcmF3ZXItbWluaSAucS1saXN0LWhlYWRlcixcXG4ucS1sYXlvdXQtZHJhd2VyLW1pbmkgLnEtaXRlbS1tYWluLFxcbi5xLWxheW91dC1kcmF3ZXItbWluaSAucS1pdGVtLXNpZGUtcmlnaHQge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1ub3JtYWwgLnEtbWluaS1kcmF3ZXItb25seSB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1sYXlvdXQtZHJhd2VyLW1vYmlsZSAucS1taW5pLWRyYXdlci1vbmx5LFxcbi5xLWxheW91dC1kcmF3ZXItbW9iaWxlIC5xLW1pbmktZHJhd2VyLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtbGF5b3V0LWRyYXdlci1vcGVuZXIge1xcbiAgei1pbmRleDogMjAwMTtcXG4gIGhlaWdodDogMTAwJTtcXG4gIHdpZHRoOiAxNXB4O1xcbiAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcXG59XFxuLnEtcGFnZS1zdGlja3ktc2hyaW5rIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS1wYWdlLXN0aWNreS1zaHJpbmsgPiBzcGFuIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xcbn1cXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci1wYWRkaW5nIC5xLWxheW91dCAucS1sYXlvdXQtaGVhZGVyID4gLnEtdG9vbGJhcjpudGgtY2hpbGQoMiksXFxuYm9keS5xLWlvcy1zdGF0dXNiYXItcGFkZGluZyAucS1sYXlvdXQgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRhYnM6bnRoLWNoaWxkKDIpIC5xLXRhYnMtaGVhZCxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci1wYWRkaW5nIC5xLWxheW91dCAucS1sYXlvdXQtZHJhd2VyLnRvcC1wYWRkaW5nLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXBhZGRpbmcgLm1vZGFsOm5vdCgubWluaW1pemVkKSAucS1sYXlvdXQtaGVhZGVyID4gLnEtdG9vbGJhcjpudGgtY2hpbGQoMSkge1xcbiAgcGFkZGluZy10b3A6IDIwcHg7XFxuICBtaW4taGVpZ2h0OiA3MHB4O1xcbn1cXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLWxheW91dCAucS1sYXlvdXQtaGVhZGVyID4gLnEtdG9vbGJhcjpudGgtY2hpbGQoMiksXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWhlYWRlciA+IC5xLXRhYnM6bnRoLWNoaWxkKDIpIC5xLXRhYnMtaGVhZCxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLWxheW91dCAucS1sYXlvdXQtZHJhd2VyLnRvcC1wYWRkaW5nLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLm1vZGFsOm5vdCgubWluaW1pemVkKSAucS1sYXlvdXQtaGVhZGVyID4gLnEtdG9vbGJhcjpudGgtY2hpbGQoMSkge1xcbiAgcGFkZGluZy10b3A6IGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKTtcXG59XFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1sYXlvdXQgLnEtbGF5b3V0LWZvb3RlciA+IC5xLXRvb2xiYXI6bGFzdC1jaGlsZCxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLWxheW91dCAucS1sYXlvdXQtZm9vdGVyID4gLnEtdGFiczpsYXN0LWNoaWxkIC5xLXRhYnMtaGVhZCxcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLWxheW91dCAucS1sYXlvdXQtZHJhd2VyLnRvcC1wYWRkaW5nLFxcbmJvZHkucS1pb3Mtc3RhdHVzYmFyLXggLm1vZGFsOm5vdCgubWluaW1pemVkKSAucS1sYXlvdXQtZm9vdGVyID4gLnEtdG9vbGJhcjpsYXN0LWNoaWxkIHtcXG4gIHBhZGRpbmctYm90dG9tOiBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSk7XFxuICBtaW4taGVpZ2h0OiA3MHB4O1xcbn1cXG4ucS1sYXlvdXQtYW5pbWF0ZSAucS1sYXlvdXQtdHJhbnNpdGlvbiB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjEycyBlYXNlLWluICFpbXBvcnRhbnQ7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4xMnMgZWFzZS1pbiAhaW1wb3J0YW50O1xcbn1cXG4ucS1ib2R5LWRyYXdlci10b2dnbGUge1xcbiAgb3ZlcmZsb3cteDogaGlkZGVuICFpbXBvcnRhbnQ7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLmxheW91dC1wYWRkaW5nIHtcXG4gICAgcGFkZGluZzogMS41cmVtIDAuNXJlbTtcXG4gIH1cXG4gIC5sYXlvdXQtcGFkZGluZy5ob3Jpem9udGFsIHtcXG4gICAgcGFkZGluZzogMCAwLjVyZW07XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgYW5kIChtYXgtd2lkdGg6IDk5MXB4KSB7XFxuICAubGF5b3V0LXBhZGRpbmcge1xcbiAgICBwYWRkaW5nOiAxLjVyZW0gMnJlbTtcXG4gICAgbWFyZ2luOiBhdXRvO1xcbiAgfVxcbiAgLmxheW91dC1wYWRkaW5nLmhvcml6b250YWwge1xcbiAgICBwYWRkaW5nOiAwIDJyZW07XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xcbiAgLmxheW91dC1wYWRkaW5nIHtcXG4gICAgcGFkZGluZzogMi41cmVtIDNyZW07XFxuICAgIG1hcmdpbjogYXV0bztcXG4gIH1cXG4gIC5sYXlvdXQtcGFkZGluZy5ob3Jpem9udGFsIHtcXG4gICAgcGFkZGluZzogMCAzcmVtO1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KSB7XFxuICAubGF5b3V0LXBhZGRpbmcge1xcbiAgICBwYWRkaW5nOiAzcmVtIDRyZW07XFxuICAgIG1hcmdpbjogYXV0bztcXG4gIH1cXG4gIC5sYXlvdXQtcGFkZGluZy5ob3Jpem9udGFsIHtcXG4gICAgcGFkZGluZzogMCA0cmVtO1xcbiAgfVxcbn1cXG4ucS1pdGVtLXN0YW1wIHtcXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xcbiAgbGluZS1oZWlnaHQ6IDAuOHJlbTtcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBtYXJnaW46IDAuM3JlbSAwO1xcbn1cXG4ucS1pdGVtLXNpZGUge1xcbiAgY29sb3I6ICM3MzczNzM7XFxuICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgZmxleDogMCAwIGF1dG87XFxuICBtaW4td2lkdGg6IDM4cHg7XFxufVxcbi5xLWl0ZW0tc2lkZS1yaWdodCB7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG59XFxuLnEtaXRlbS1hdmF0YXIsXFxuLnEtaXRlbS1hdmF0YXIgaW1nIHtcXG4gIHdpZHRoOiAzOHB4O1xcbiAgaGVpZ2h0OiAzOHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbn1cXG4ucS1pdGVtLWxldHRlcixcXG4ucS1pdGVtLWljb24ge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbn1cXG4ucS1pdGVtLWludmVydGVkIHtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZDogIzczNzM3MztcXG4gIGhlaWdodDogMzhweDtcXG4gIHdpZHRoOiAzOHB4O1xcbn1cXG4ucS1pdGVtLWludmVydGVkLFxcbi5xLWl0ZW0taW52ZXJ0ZWQgLnEtaWNvbiB7XFxuICBmb250LXNpemU6IDIwcHg7XFxufVxcbi5xLWl0ZW0tbWFpbiB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgYXV0bztcXG4gICAgICAgICAgZmxleDogMSAxIGF1dG87XFxuICBtaW4td2lkdGg6IDA7XFxufVxcbi5xLWl0ZW0tbWFpbi1pbnNldCB7XFxuICBtYXJnaW4tbGVmdDogNDhweDtcXG59XFxuLnEtaXRlbS1sYWJlbCB7XFxuICBsaW5lLWhlaWdodDogMS4yO1xcbn1cXG4ucS1pdGVtLWxhYmVsID4gc3BhbiB7XFxuICBjb2xvcjogIzc1NzU3NTtcXG59XFxuLnEtaXRlbS1zdWJsYWJlbCB7XFxuICBjb2xvcjogIzc1NzU3NTtcXG4gIGZvbnQtc2l6ZTogOTAlO1xcbiAgbWFyZ2luLXRvcDogMC4ycmVtO1xcbn1cXG4ucS1pdGVtLXN1YmxhYmVsID4gc3BhbiB7XFxuICBmb250LXdlaWdodDogNTAwO1xcbn1cXG4ucS1pdGVtLXNlY3Rpb24gKyAucS1pdGVtLXNlY3Rpb24ge1xcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XFxufVxcbi5xLWl0ZW0ge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBmb250LXNpemU6IDFyZW07XFxuICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgcGFkZGluZzogOHB4IDE2cHg7XFxuICBtaW4taGVpZ2h0OiA0MHB4O1xcbn1cXG4ucS1pdGVtLmFjdGl2ZSxcXG4ucS1pdGVtLnJvdXRlci1saW5rLWFjdGl2ZSxcXG4ucS1pdGVtOmZvY3VzIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTg5LDE4OSwxODksMC40KTtcXG59XFxuLnEtaXRlbTpmb2N1cyB7XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ucS1pdGVtLWltYWdlIHtcXG4gIG1pbi13aWR0aDogMTE0cHg7XFxuICBtYXgtd2lkdGg6IDExNHB4O1xcbiAgbWF4LWhlaWdodDogMTE0cHg7XFxufVxcbi5xLWxpc3QtbXVsdGlsaW5lID4gLnEtaXRlbSxcXG4ucS1pdGVtLW11bHRpbGluZSB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogc3RhcnQ7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IHN0YXJ0O1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcXG59XFxuLnEtbGlzdC1saW5rID4gLnEtaXRlbSxcXG4ucS1pdGVtLWxpbmsge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS1saXN0LWhpZ2hsaWdodCA+IC5xLWl0ZW06aG92ZXIsXFxuLnEtaXRlbS1oaWdobGlnaHQ6aG92ZXIsXFxuLnEtbGlzdC1saW5rID4gLnEtaXRlbTpob3ZlcixcXG4ucS1pdGVtLWxpbms6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgxODksMTg5LDE4OSwwLjUpO1xcbn1cXG4ucS1saXN0LXNlcGFyYXRvciA+IC5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLWRpdmlzaW9uLFxcbi5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLXNlcGFyYXRvciB7XFxuICBib3JkZXItdG9wOiAxcHggc29saWQgI2UwZTBlMDtcXG59XFxuLnEtbGlzdC1pbnNldC1zZXBhcmF0b3IgPiAucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1kaXZpc2lvbjphZnRlcixcXG4ucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1pbnNldC1zZXBhcmF0b3I6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGxlZnQ6IDY0cHg7XFxuICBoZWlnaHQ6IDFweDtcXG4gIGJhY2tncm91bmQ6ICNlMGUwZTA7XFxufVxcbi5xLWxpc3QtZGVuc2UgPiAucS1pdGVtLFxcbi5xLWl0ZW0tZGVuc2Uge1xcbiAgcGFkZGluZzogM3B4IDE2cHg7XFxuICBtaW4taGVpZ2h0OiA4cHg7XFxufVxcbi5xLWxpc3Qtc3BhcnNlID4gLnEtaXRlbSxcXG4ucS1pdGVtLXNwYXJzZSB7XFxuICBwYWRkaW5nOiAyMi40cHggMTZweDtcXG4gIG1pbi1oZWlnaHQ6IDU2cHg7XFxufVxcbi5xLWxpc3Qtc3RyaXBlZCA+IC5xLWl0ZW06bnRoLWNoaWxkKGV2ZW4pIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg5LDE4OSwxODksMC42NSk7XFxufVxcbi5xLWxpc3Qtc3RyaXBlZC1vZGQgPiAucS1pdGVtOm50aC1jaGlsZChvZGQpIHtcXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTg5LDE4OSwxODksMC42NSk7XFxufVxcbi5xLWxpc3Qge1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2UwZTBlMDtcXG4gIHBhZGRpbmc6IDhweCAwO1xcbn1cXG4ucS1pdGVtLXNlcGFyYXRvci1jb21wb25lbnQge1xcbiAgbWFyZ2luOiA4cHggMDtcXG4gIGhlaWdodDogMXB4O1xcbiAgYm9yZGVyOiAwO1xcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcXG59XFxuLnEtaXRlbS1zZXBhcmF0b3ItY29tcG9uZW50Omxhc3QtY2hpbGQge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtaXRlbS1zZXBhcmF0b3ItY29tcG9uZW50ICsgLnEtbGlzdC1oZWFkZXIge1xcbiAgbWFyZ2luLXRvcDogLThweDtcXG59XFxuLnEtaXRlbS1zZXBhcmF0b3ItaW5zZXQtY29tcG9uZW50IHtcXG4gIG1hcmdpbi1sZWZ0OiA2NHB4O1xcbn1cXG4ucS1saXN0LWhlYWRlciB7XFxuICBjb2xvcjogIzc1NzU3NTtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBsaW5lLWhlaWdodDogMThweDtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxuICBwYWRkaW5nOiAxNXB4IDE2cHg7XFxufVxcbi5xLWxpc3QtaGVhZGVyLWluc2V0IHtcXG4gIHBhZGRpbmctbGVmdDogNjRweDtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tc2lkZSxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbS1zaWRlIHtcXG4gIGNvbG9yOiAjYmJiO1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1pbnZlcnRlZCxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbS1pbnZlcnRlZCB7XFxuICBjb2xvcjogIzAwMDtcXG4gIGJhY2tncm91bmQ6ICNiYmI7XFxufVxcbi5xLWxpc3QtZGFyayAucS1pdGVtLWxhYmVsID4gc3BhbixcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbS1sYWJlbCA+IHNwYW4sXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tc3VibGFiZWwsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0tc3VibGFiZWwge1xcbiAgY29sb3I6ICNiZGJkYmQ7XFxufVxcbi5xLWxpc3QtZGFyayAucS1pdGVtLFxcbi5xLWl0ZW0tZGFyayAucS1pdGVtIHtcXG4gIGNvbG9yOiAjZmZmO1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtaXRlbS5hY3RpdmUsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW0uYWN0aXZlLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtLnJvdXRlci1saW5rLWFjdGl2ZSxcXG4ucS1pdGVtLWRhcmsgLnEtaXRlbS5yb3V0ZXItbGluay1hY3RpdmUsXFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW06Zm9jdXMsXFxuLnEtaXRlbS1kYXJrIC5xLWl0ZW06Zm9jdXMge1xcbiAgYmFja2dyb3VuZDogcmdiYSgxMTcsMTE3LDExNywwLjIpO1xcbn1cXG4ucS1saXN0LWRhcmsge1xcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjMyKTtcXG59XFxuLnEtbGlzdC1kYXJrLnEtbGlzdC1zZXBhcmF0b3IgPiAucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1kaXZpc2lvbixcXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1kaXZpc2lvbiArIC5xLWl0ZW0tc2VwYXJhdG9yIHtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMzIpO1xcbn1cXG4ucS1saXN0LWRhcmsucS1saXN0LWluc2V0LXNlcGFyYXRvciA+IC5xLWl0ZW0tZGl2aXNpb24gKyAucS1pdGVtLWRpdmlzaW9uOmFmdGVyLFxcbi5xLWxpc3QtZGFyayAucS1pdGVtLWRpdmlzaW9uICsgLnEtaXRlbS1pbnNldC1zZXBhcmF0b3I6YWZ0ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjMyKTtcXG59XFxuLnEtbGlzdC1kYXJrLnEtbGlzdC1zdHJpcGVkID4gLnEtaXRlbTpudGgtY2hpbGQoZXZlbikge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMTcsMTE3LDExNywwLjQ1KTtcXG59XFxuLnEtbGlzdC1kYXJrLnEtbGlzdC1zdHJpcGVkLW9kZCA+IC5xLWl0ZW06bnRoLWNoaWxkKG9kZCkge1xcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMTcsMTE3LDExNywwLjQ1KTtcXG59XFxuLnEtbGlzdC1kYXJrIC5xLWl0ZW0tc2VwYXJhdG9yLWNvbXBvbmVudCB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMzIpO1xcbn1cXG4ucS1saXN0LWRhcmsgLnEtbGlzdC1oZWFkZXIge1xcbiAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC42NCk7XFxufVxcbi5xLWxpc3QtZGFyay5xLWxpc3QtaGlnaGxpZ2h0ID4gLnEtaXRlbTpob3ZlcixcXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1oaWdobGlnaHQ6aG92ZXIsXFxuLnEtbGlzdC1kYXJrLnEtbGlzdC1saW5rID4gLnEtaXRlbTpob3ZlcixcXG4ucS1saXN0LWRhcmsgLnEtaXRlbS1saW5rOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMTE3LDExNywxMTcsMC4zKTtcXG59XFxuYm9keS53aXRoLWxvYWRpbmcge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtbG9hZGluZyB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNCk7XFxufVxcbi5xLWxvYWRpbmcgPiBkaXYge1xcbiAgbWFyZ2luOiA0MHB4IDIwcHggMDtcXG4gIG1heC13aWR0aDogNDUwcHg7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICB0ZXh0LXNoYWRvdzogMCAwIDdweCAjMDAwO1xcbn1cXG4ubW9kYWwtYmFja2Ryb3Age1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjQpO1xcbn1cXG4ubW9kYWwubWF4aW1pemVkIC5tb2RhbC1iYWNrZHJvcCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ubW9kYWwtY29udGVudCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICBvdmVyZmxvdy15OiBhdXRvO1xcbiAgd2lsbC1jaGFuZ2U6IHNjcm9sbC1wb3NpdGlvbjtcXG4gIG1pbi13aWR0aDogMjgwcHg7XFxuICBtYXgtaGVpZ2h0OiA4MHZoO1xcbiAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XFxuICBvdXRsaW5lOiAwO1xcbn1cXG4ubW9kYWwge1xcbiAgei1pbmRleDogNTAwMDtcXG59XFxuLm1vZGFsLm1pbmltaXplZCAubW9kYWwtY29udGVudCB7XFxuICBtYXgtd2lkdGg6IDgwdnc7XFxuICBtYXgtaGVpZ2h0OiA4MHZoO1xcbn1cXG4ubW9kYWwubWF4aW1pemVkIC5tb2RhbC1jb250ZW50IHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgbWF4LWhlaWdodDogMTAwJTtcXG4gIGJvcmRlci1yYWRpdXM6IDA7XFxufVxcbi5tb2RhbC5tYXhpbWl6ZWQgLm1vZGFsLWNvbnRlbnQgLnEtbGF5b3V0LWNvbnRhaW5lciB7XFxuICBtaW4taGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xcbn1cXG4ucS1tb2RhbC1lbnRlcixcXG4ucS1tb2RhbC1sZWF2ZS1hY3RpdmUge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XFxuICAubW9kYWw6bm90KC5tYXhpbWl6ZWQpLnEtbW9kYWwtZW50ZXIgLm1vZGFsLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMik7XFxuICB9XFxuICAubW9kYWw6bm90KC5tYXhpbWl6ZWQpLnEtbW9kYWwtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuOCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xcbiAgfVxcbiAgLm1vZGFsLm1heGltaXplZC5xLW1vZGFsLWVudGVyIC5tb2RhbC1jb250ZW50LFxcbiAgLm1vZGFsLm1heGltaXplZC5xLW1vZGFsLWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwJSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwJSk7XFxuICB9XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLnEtcmVzcG9uc2l2ZS1tb2RhbCB7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICB9XFxuICAubW9kYWw6bm90KC5taW5pbWl6ZWQpIC5tb2RhbC1jb250ZW50IHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgICBib3JkZXItcmFkaXVzOiAwO1xcbiAgfVxcbiAgLm1vZGFsOm5vdCgubWluaW1pemVkKSAubW9kYWwtY29udGVudCAucS1sYXlvdXQtY29udGFpbmVyIHtcXG4gICAgbWluLWhlaWdodDogMTAwdmggIWltcG9ydGFudDtcXG4gIH1cXG4gIC5tb2RhbDpub3QoLm1pbmltaXplZCkucS1tb2RhbC1lbnRlciAubW9kYWwtY29udGVudCxcXG4gIC5tb2RhbDpub3QoLm1pbmltaXplZCkucS1tb2RhbC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMCUpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMCUpO1xcbiAgfVxcbiAgLm1vZGFsLm1pbmltaXplZC5xLW1vZGFsLWVudGVyIC5tb2RhbC1jb250ZW50IHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMik7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xcbiAgfVxcbiAgLm1vZGFsLm1pbmltaXplZC5xLW1vZGFsLWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KTtcXG4gIH1cXG59XFxuLnEtbWF4aW1pemVkLW1vZGFsIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5tb2RhbCxcXG4ubW9kYWwtY29udGVudCB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XFxufVxcbi5tb2RhbC1oZWFkZXIge1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG4gIHBhZGRpbmc6IDI0cHggMjRweCAxMHB4IDI0cHg7XFxuICBmb250LXNpemU6IDEuNnJlbTtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxufVxcbi5tb2RhbC1ib2R5IHtcXG4gIHBhZGRpbmc6IDEwcHggMjRweDtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuNSk7XFxufVxcbi5zbWFsbC1tb2RhbC1zY3JvbGwsXFxuLm1vZGFsLXNjcm9sbCxcXG4uYmlnLW1vZGFsLXNjcm9sbCB7XFxuICBvdmVyZmxvdzogYXV0bztcXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG4gIHdpbGwtY2hhbmdlOiBzY3JvbGwtcG9zaXRpb247XFxufVxcbi5zbWFsbC1tb2RhbC1zY3JvbGwge1xcbiAgbWF4LWhlaWdodDogMTU2cHg7XFxufVxcbi5tb2RhbC1zY3JvbGwge1xcbiAgbWF4LWhlaWdodDogMjQwcHg7XFxufVxcbi5iaWctbW9kYWwtc2Nyb2xsIHtcXG4gIG1heC1oZWlnaHQ6IDQ4MHB4O1xcbn1cXG4ubW9kYWwtYnV0dG9ucyB7XFxuICBwYWRkaW5nOiAyMnB4IDhweCA4cHg7XFxuICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazogZW5kO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcbiAgY29sb3I6ICMwMjdiZTM7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1wcmltYXJ5KTtcXG59XFxuLm1vZGFsLWJ1dHRvbnMucm93IC5xLWJ0biArIC5xLWJ0biB7XFxuICBtYXJnaW4tbGVmdDogOHB4O1xcbn1cXG4ubW9kYWwtYnV0dG9ucy5jb2x1bW4ge1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogZW5kO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XFxufVxcbi5tb2RhbC1idXR0b25zLmNvbHVtbiAucS1idG4gKyAucS1idG4ge1xcbiAgbWFyZ2luLXRvcDogOHB4O1xcbn1cXG4ucS1tb2RhbC1ib3R0b20tZW50ZXIsXFxuLnEtbW9kYWwtYm90dG9tLWxlYXZlLWFjdGl2ZSB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1tb2RhbC1ib3R0b20tZW50ZXIgLm1vZGFsLWNvbnRlbnQsXFxuLnEtbW9kYWwtYm90dG9tLWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzAlKTtcXG59XFxuLnEtbW9kYWwtdG9wLWVudGVyLFxcbi5xLW1vZGFsLXRvcC1sZWF2ZS1hY3RpdmUge1xcbiAgb3BhY2l0eTogMDtcXG59XFxuLnEtbW9kYWwtdG9wLWVudGVyIC5tb2RhbC1jb250ZW50LFxcbi5xLW1vZGFsLXRvcC1sZWF2ZS1hY3RpdmUgLm1vZGFsLWNvbnRlbnQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzAlKTtcXG59XFxuLnEtbW9kYWwtcmlnaHQtZW50ZXIsXFxuLnEtbW9kYWwtcmlnaHQtbGVhdmUtYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDA7XFxufVxcbi5xLW1vZGFsLXJpZ2h0LWVudGVyIC5tb2RhbC1jb250ZW50LFxcbi5xLW1vZGFsLXJpZ2h0LWxlYXZlLWFjdGl2ZSAubW9kYWwtY29udGVudCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgzMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzAlKTtcXG59XFxuLnEtbW9kYWwtbGVmdC1lbnRlcixcXG4ucS1tb2RhbC1sZWZ0LWxlYXZlLWFjdGl2ZSB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1tb2RhbC1sZWZ0LWVudGVyIC5tb2RhbC1jb250ZW50LFxcbi5xLW1vZGFsLWxlZnQtbGVhdmUtYWN0aXZlIC5tb2RhbC1jb250ZW50IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0zMCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwJSk7XFxufVxcbi5xLW5vdGlmaWNhdGlvbnMgPiBkaXYge1xcbiAgei1pbmRleDogOTUwMDtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWxpc3Qge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tbGlzdC1jZW50ZXIge1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tbGlzdC10b3Age1xcbiAgdG9wOiAwO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tbGlzdC1ib3R0b20ge1xcbiAgYm90dG9tOiAwO1xcbn1cXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLW5vdGlmaWNhdGlvbi1saXN0LWNlbnRlcixcXG5ib2R5LnEtaW9zLXN0YXR1c2Jhci14IC5xLW5vdGlmaWNhdGlvbi1saXN0LXRvcCB7XFxuICB0b3A6IGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKTtcXG59XFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1ub3RpZmljYXRpb24tbGlzdC1jZW50ZXIsXFxuYm9keS5xLWlvcy1zdGF0dXNiYXIteCAucS1ub3RpZmljYXRpb24tbGlzdC1ib3R0b20ge1xcbiAgYm90dG9tOiBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSk7XFxufVxcbi5xLW5vdGlmaWNhdGlvbiB7XFxuICBib3JkZXItcmFkaXVzOiA1cHg7XFxuICBwb2ludGVyLWV2ZW50czogYWxsO1xcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xcbiAgbWFyZ2luOiAxMHB4IDEwcHggMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XFxuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBvcGFjaXR5LCAtd2Via2l0LXRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eTtcXG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgb3BhY2l0eSwgLXdlYmtpdC10cmFuc2Zvcm07XFxuICAtd2Via2l0LXRyYW5zaXRpb24tZHVyYXRpb246IDFzO1xcbiAgICAgICAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAxcztcXG4gIHotaW5kZXg6IDk1MDA7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxufVxcbi5xLW5vdGlmaWNhdGlvbi10b3AtbGVmdC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tdG9wLWxlZnQtbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tdG9wLWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi10b3AtcmlnaHQtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLXRvcC1yaWdodC1sZWF2ZS10byB7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwcHgpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwcHgpO1xcbiAgei1pbmRleDogOTQ5OTtcXG59XFxuLnEtbm90aWZpY2F0aW9uLWxlZnQtZW50ZXIsXFxuLnEtbm90aWZpY2F0aW9uLWxlZnQtbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLWNlbnRlci1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tY2VudGVyLWxlYXZlLXRvLFxcbi5xLW5vdGlmaWNhdGlvbi1yaWdodC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tcmlnaHQtbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1sZWZ0LWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVmdC1sZWF2ZS10byxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWVudGVyLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVhdmUtdG8sXFxuLnEtbm90aWZpY2F0aW9uLWJvdHRvbS1yaWdodC1lbnRlcixcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLXJpZ2h0LWxlYXZlLXRvIHtcXG4gIG9wYWNpdHk6IDA7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MHB4KTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpO1xcbiAgei1pbmRleDogOTQ5OTtcXG59XFxuLnEtbm90aWZpY2F0aW9uLXRvcC1sZWZ0LWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tdG9wLWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tdG9wLXJpZ2h0LWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tbGVmdC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWNlbnRlci1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLXJpZ2h0LWxlYXZlLWFjdGl2ZSxcXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlZnQtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tcmlnaHQtbGVhdmUtYWN0aXZlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHotaW5kZXg6IDk0OTk7XFxuICBtYXJnaW4tbGVmdDogMDtcXG4gIG1hcmdpbi1yaWdodDogMDtcXG59XFxuLnEtbm90aWZpY2F0aW9uLXRvcC1sZWF2ZS1hY3RpdmUsXFxuLnEtbm90aWZpY2F0aW9uLWNlbnRlci1sZWF2ZS1hY3RpdmUge1xcbiAgdG9wOiAwO1xcbn1cXG4ucS1ub3RpZmljYXRpb24tYm90dG9tLWxlZnQtbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tbGVhdmUtYWN0aXZlLFxcbi5xLW5vdGlmaWNhdGlvbi1ib3R0b20tcmlnaHQtbGVhdmUtYWN0aXZlIHtcXG4gIGJvdHRvbTogMDtcXG59XFxuLnEtb3B0aW9uLWlubmVyIHtcXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIGxpbmUtaGVpZ2h0OiAwO1xcbn1cXG4ucS1vcHRpb24taW5uZXIgKyAucS1vcHRpb24tbGFiZWwge1xcbiAgbWFyZ2luLWxlZnQ6IDhweDtcXG59XFxuLnEtb3B0aW9uIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi5xLW9wdGlvbiBpbnB1dCB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5xLW9wdGlvbi5yZXZlcnNlIC5xLW9wdGlvbi1pbm5lciArIC5xLW9wdGlvbi1sYWJlbCB7XFxuICBtYXJnaW4tcmlnaHQ6IDhweDtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbn1cXG4ucS1vcHRpb24tZ3JvdXAtaW5saW5lLW9wdHMgPiBkaXYge1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxufVxcbi5xLW9wdGlvbi1ncm91cCB7XFxuICBtYXJnaW46IC01cHg7XFxuICBwYWRkaW5nOiA1cHggMDtcXG59XFxuLnEtcGFnaW5hdGlvbiBpbnB1dCB7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5xLXBhZ2luYXRpb24gLnEtYnRuIHtcXG4gIHBhZGRpbmc6IDAgNXB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLXBhZ2luYXRpb24gLnEtYnRuLmRpc2FibGVkIHtcXG4gIGNvbG9yOiAjNzc3O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItZmFkZWQpO1xcbn1cXG4ucS1wYXJhbGxheCB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB3aWR0aDogMTAwJTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbn1cXG4ucS1wYXJhbGxheC1tZWRpYSA+IGltZyxcXG4ucS1wYXJhbGxheC1tZWRpYSA+IHZpZGVvIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDUwJTtcXG4gIGJvdHRvbTogMDtcXG4gIG1pbi13aWR0aDogMTAwJTtcXG4gIG1pbi1oZWlnaHQ6IDEwMCU7XFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xcbn1cXG4ucS1wYXJhbGxheC10ZXh0IHtcXG4gIHRleHQtc2hhZG93OiAwIDAgNXB4ICNmZmY7XFxufVxcbi5xLXBvcG92ZXIge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbiAgei1pbmRleDogODAwMDtcXG4gIG92ZXJmbG93LXk6IGF1dG87XFxuICBvdmVyZmxvdy14OiBoaWRkZW47XFxuICBtYXgtd2lkdGg6IDEwMHZ3O1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtcG9wb3ZlciA+IC5xLWxpc3Q6b25seS1jaGlsZCB7XFxuICBib3JkZXI6IG5vbmU7XFxufVxcbmJvZHkgZGl2IC5xLXBvcG92ZXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtcHJvZ3Jlc3Mge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgaGVpZ2h0OiA1cHg7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLXByb2dyZXNzLW1vZGVsIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWwuYW5pbWF0ZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wcm9ncmVzcy1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXByb2dyZXNzLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlO1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbDpub3QoLmluZGV0ZXJtaW5hdGUpIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XFxuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGxpbmVhcjtcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWwuaW5kZXRlcm1pbmF0ZTpiZWZvcmUsXFxuLnEtcHJvZ3Jlc3MtbW9kZWwuaW5kZXRlcm1pbmF0ZTphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJhY2tncm91bmQ6IGluaGVyaXQ7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgd2lsbC1jaGFuZ2U6IGxlZnQsIHJpZ2h0O1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbC5pbmRldGVybWluYXRlOmJlZm9yZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wcm9ncmVzcy1pbmRldGVybWluYXRlIDIuMXMgY3ViaWMtYmV6aWVyKDAuNjUsIDAuODE1LCAwLjczNSwgMC4zOTUpIGluZmluaXRlO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZSAyLjFzIGN1YmljLWJlemllcigwLjY1LCAwLjgxNSwgMC43MzUsIDAuMzk1KSBpbmZpbml0ZTtcXG59XFxuLnEtcHJvZ3Jlc3MtbW9kZWwuaW5kZXRlcm1pbmF0ZTphZnRlciB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1wcm9ncmVzcy1pbmRldGVybWluYXRlLXNob3J0IDIuMXMgY3ViaWMtYmV6aWVyKDAuMTY1LCAwLjg0LCAwLjQ0LCAxKSBpbmZpbml0ZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUtc2hvcnQgMi4xcyBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQsIDAuNDQsIDEpIGluZmluaXRlO1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IDEuMTVzO1xcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDEuMTVzO1xcbn1cXG4ucS1wcm9ncmVzcy1tb2RlbC5zdHJpcGUsXFxuLnEtcHJvZ3Jlc3MtbW9kZWwuc3RyaXBlOmJlZm9yZSxcXG4ucS1wcm9ncmVzcy1tb2RlbC5zdHJpcGU6YWZ0ZXIge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDQ1ZGVnLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDI1JSwgdHJhbnNwYXJlbnQgMjUlLCB0cmFuc3BhcmVudCA1MCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4xNSkgNTAlLCByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCkgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQtc2l6ZTogNDBweCA0MHB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLXByb2dyZXNzLXRyYWNrIHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICBib3R0b206IDA7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IHdpZHRoIDAuM3MgbGluZWFyO1xcbiAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBsaW5lYXI7XFxufVxcbi5xLXByb2dyZXNzLWJ1ZmZlciB7XFxuICB0b3A6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICBoZWlnaHQ6IDRweDtcXG4gIHJpZ2h0OiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiB3aWR0aCAwLjNzIGxpbmVhcjtcXG4gIHRyYW5zaXRpb246IHdpZHRoIDAuM3MgbGluZWFyO1xcbiAgLXdlYmtpdC1tYXNrOiB1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWo4K0NqeHpkbWNnZDJsa2RHZzlJakV5SWlCb1pXbG5hSFE5SWpRaUlIWnBaWGRRYjNKMFBTSXdJREFnTVRJZ05DSWdkbVZ5YzJsdmJqMGlNUzR4SWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpUGdvZ0lEeGxiR3hwY0hObElHTjRQU0l5SWlCamVUMGlNaUlnY25nOUlqSWlJSEo1UFNJeUlqNEtJQ0FnSUR4aGJtbHRZWFJsSUdGMGRISnBZblYwWlU1aGJXVTlJbU40SWlCbWNtOXRQU0l5SWlCMGJ6MGlMVEV3SWlCa2RYSTlJakF1Tm5NaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlBdlBnb2dJRHd2Wld4c2FYQnpaVDRLSUNBOFpXeHNhWEJ6WlNCamVEMGlNVFFpSUdONVBTSXlJaUJ5ZUQwaU1pSWdjbms5SWpJaUlHTnNZWE56UFNKc2IyRmtaWElpUGdvZ0lDQWdQR0Z1YVcxaGRHVWdZWFIwY21saWRYUmxUbUZ0WlQwaVkzZ2lJR1p5YjIwOUlqRTBJaUIwYnowaU1pSWdaSFZ5UFNJd0xqWnpJaUJ5WlhCbFlYUkRiM1Z1ZEQwaWFXNWtaV1pwYm1sMFpTSWdMejRLSUNBOEwyVnNiR2x3YzJVK0Nqd3ZjM1puUGdvPVxcXCIpO1xcbiAgICAgICAgICBtYXNrOiB1cmwoXFxcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWo4K0NqeHpkbWNnZDJsa2RHZzlJakV5SWlCb1pXbG5hSFE5SWpRaUlIWnBaWGRRYjNKMFBTSXdJREFnTVRJZ05DSWdkbVZ5YzJsdmJqMGlNUzR4SWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpUGdvZ0lEeGxiR3hwY0hObElHTjRQU0l5SWlCamVUMGlNaUlnY25nOUlqSWlJSEo1UFNJeUlqNEtJQ0FnSUR4aGJtbHRZWFJsSUdGMGRISnBZblYwWlU1aGJXVTlJbU40SWlCbWNtOXRQU0l5SWlCMGJ6MGlMVEV3SWlCa2RYSTlJakF1Tm5NaUlISmxjR1ZoZEVOdmRXNTBQU0pwYm1SbFptbHVhWFJsSWlBdlBnb2dJRHd2Wld4c2FYQnpaVDRLSUNBOFpXeHNhWEJ6WlNCamVEMGlNVFFpSUdONVBTSXlJaUJ5ZUQwaU1pSWdjbms5SWpJaUlHTnNZWE56UFNKc2IyRmtaWElpUGdvZ0lDQWdQR0Z1YVcxaGRHVWdZWFIwY21saWRYUmxUbUZ0WlQwaVkzZ2lJR1p5YjIwOUlqRTBJaUIwYnowaU1pSWdaSFZ5UFNJd0xqWnpJaUJ5WlhCbFlYUkRiM1Z1ZEQwaWFXNWtaV1pwYm1sMFpTSWdMejRLSUNBOEwyVnNiR2x3YzJVK0Nqd3ZjM1puUGdvPVxcXCIpO1xcbn1cXG4ucS1wcm9ncmVzcy10cmFjayxcXG4ucS1wcm9ncmVzcy1idWZmZXIge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgb3BhY2l0eTogMC4yO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbn1cXG4ucHVsbC10by1yZWZyZXNoIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnB1bGwtdG8tcmVmcmVzaC1tZXNzYWdlIHtcXG4gIGhlaWdodDogNjVweDtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG59XFxuLnB1bGwtdG8tcmVmcmVzaC1tZXNzYWdlIC5xLWljb24ge1xcbiAgZm9udC1zaXplOiAycmVtO1xcbiAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4zcztcXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xcbn1cXG4ucS1yYWRpby11bmNoZWNrZWQsXFxuLnEtcmFkaW8tY2hlY2tlZCxcXG4ucS1yYWRpbyAucS1vcHRpb24taW5uZXIge1xcbiAgaGVpZ2h0OiAyMXB4O1xcbiAgd2lkdGg6IDIxcHg7XFxuICBtaW4td2lkdGg6IDIxcHg7XFxuICBmb250LXNpemU6IDIxcHg7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpLCAtd2Via2l0LXRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSk7XFxuICBvcGFjaXR5OiAxO1xcbn1cXG4ucS1yYWRpby11bmNoZWNrZWQge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtcmFkaW8tY2hlY2tlZCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46IDUwJSA1MCUgMDtcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJSAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xcbn1cXG4ucS1yYWRpbyAucS1vcHRpb24taW5uZXIuYWN0aXZlIC5xLXJhZGlvLXVuY2hlY2tlZCB7XFxuICBvcGFjaXR5OiAwO1xcbn1cXG4ucS1yYWRpbyAucS1vcHRpb24taW5uZXIuYWN0aXZlIC5xLXJhZGlvLWNoZWNrZWQge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbn1cXG4ucS1yYXRpbmcge1xcbiAgY29sb3I6ICNmZmViM2I7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4ucS1yYXRpbmcgc3BhbiB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGRpc3BsYXk6IGluaGVyaXQ7XFxufVxcbi5xLXJhdGluZyBpIHtcXG4gIGNvbG9yOiBjdXJyZW50Q29sb3I7XFxuICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4xMiksIDAgMXB4IDJweCByZ2JhKDAsMCwwLDAuMjQpO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbiAgb3BhY2l0eTogMC40O1xcbiAgcG9pbnRlci1ldmVudHM6IGFsbDtcXG59XFxuLnEtcmF0aW5nIGkuaG92ZXJlZCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4zKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjMpO1xcbn1cXG4ucS1yYXRpbmcgaS5leHNlbGVjdGVkIHtcXG4gIG9wYWNpdHk6IDAuNztcXG59XFxuLnEtcmF0aW5nIGkuYWN0aXZlIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLXJhdGluZyBpICsgaSB7XFxuICBtYXJnaW4tbGVmdDogMC4zcmVtO1xcbn1cXG4ucS1yYXRpbmcuZWRpdGFibGUgaSB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLXJhdGluZzpub3QoLmVkaXRhYmxlKSBzcGFuLFxcbi5xLXJhdGluZyBpIHtcXG4gIG91dGxpbmU6IDA7XFxufVxcbi5xLXNjcm9sbGFyZWEtdGh1bWIge1xcbiAgYmFja2dyb3VuZDogIzAwMDtcXG4gIHdpZHRoOiAxMHB4O1xcbiAgcmlnaHQ6IDA7XFxuICBvcGFjaXR5OiAwLjI7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcXG59XFxuLnEtc2Nyb2xsYXJlYS10aHVtYi5pbnZpc2libGUtdGh1bWIge1xcbiAgb3BhY2l0eTogMCAhaW1wb3J0YW50O1xcbn1cXG4ucS1zY3JvbGxhcmVhLXRodW1iOmhvdmVyIHtcXG4gIG9wYWNpdHk6IDAuMztcXG59XFxuLnEtc2Nyb2xsYXJlYS10aHVtYjphY3RpdmUge1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS10b29sYmFyIC5xLXNlYXJjaCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpO1xcbn1cXG4ucS1zbGlkZXItdHJhY2ssXFxuLnEtc2xpZGVyLW1hcmsge1xcbiAgb3BhY2l0eTogMC40O1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG4ucS1zbGlkZXItdHJhY2sge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiA1MCU7XFxuICBsZWZ0OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcXG4gIGhlaWdodDogMnB4O1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5xLXNsaWRlci10cmFjazpub3QoLmRyYWdnaW5nKSB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xcbn1cXG4ucS1zbGlkZXItdHJhY2suYWN0aXZlLXRyYWNrIHtcXG4gIG9wYWNpdHk6IDE7XFxufVxcbi5xLXNsaWRlci10cmFjay50cmFjay1kcmFnZ2FibGUuZHJhZ2dpbmcge1xcbiAgaGVpZ2h0OiA0cHg7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGhlaWdodCAwLjNzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBoZWlnaHQgMC4zcyBlYXNlO1xcbn1cXG4ucS1zbGlkZXItdHJhY2suaGFuZGxlLWF0LW1pbmltdW0ge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxufVxcbi5xLXNsaWRlci1tYXJrIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgaGVpZ2h0OiAxMHB4O1xcbiAgd2lkdGg6IDJweDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlLWNvbnRhaW5lciB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBtYXJnaW4tbGVmdDogNnB4O1xcbiAgbWFyZ2luLXJpZ2h0OiA2cHg7XFxufVxcbi5xLXNsaWRlci1sYWJlbCB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiA2cHg7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKSBzY2FsZSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoMCkgc2NhbGUoMCk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjJzO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XFxuICBwYWRkaW5nOiAycHggNHB4O1xcbn1cXG4ucS1zbGlkZXItbGFiZWwubGFiZWwtYWx3YXlzIHtcXG4gIG9wYWNpdHk6IDE7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0xMzklKSBzY2FsZSgxKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTEzOSUpIHNjYWxlKDEpO1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7XFxuICB3aWR0aDogMTJweDtcXG4gIGhlaWdodDogMTJweDtcXG4gIG91dGxpbmU6IDA7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxufVxcbi5xLXNsaWRlci1oYW5kbGUgLnEtY2hpcCB7XFxuICBtYXgtd2lkdGg6IHVuc2V0O1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlLmRyYWdnaW5nIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSBzY2FsZSgxLjMpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApIHNjYWxlKDEuMyk7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLCAtd2Via2l0LXRyYW5zZm9ybSAwLjNzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlO1xcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UsIHRyYW5zZm9ybSAwLjNzIGVhc2U7XFxuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZSwgdHJhbnNmb3JtIDAuM3MgZWFzZSwgLXdlYmtpdC10cmFuc2Zvcm0gMC4zcyBlYXNlO1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlLmRyYWdnaW5nIC5xLXNsaWRlci1sYWJlbCB7XFxuICBvcGFjaXR5OiAxO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtMTM5JSkgc2NhbGUoMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC0xMzklKSBzY2FsZSgxKTtcXG59XFxuLnEtc2xpZGVyLWhhbmRsZS5oYW5kbGUtYXQtbWluaW11bSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbn1cXG4ucS1zbGlkZXItaGFuZGxlLmhhbmRsZS1hdC1taW5pbXVtOmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgYm9yZGVyOiAycHggc29saWQgY3VycmVudENvbG9yO1xcbn1cXG4ucS1zbGlkZXItcmluZyB7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC01MCU7XFxuICBsZWZ0OiAtNTAlO1xcbiAgd2lkdGg6IDIwMCU7XFxuICBoZWlnaHQ6IDIwMCU7XFxuICBib3JkZXItcmFkaXVzOiBpbmhlcml0O1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICBvcGFjaXR5OiAwO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc2xpZGVyOm5vdCguZGlzYWJsZWQpOm5vdCgucmVhZG9ubHkpIC5xLXNsaWRlci1oYW5kbGUuZHJhZ2dpbmcgLnEtc2xpZGVyLXJpbmcsXFxuLnEtc2xpZGVyOm5vdCguZGlzYWJsZWQpOm5vdCgucmVhZG9ubHkpIC5xLXNsaWRlci1oYW5kbGU6Zm9jdXMgLnEtc2xpZGVyLXJpbmcsXFxuYm9keS5kZXNrdG9wIC5xLXNsaWRlcjpub3QoLmRpc2FibGVkKTpub3QoLnJlYWRvbmx5KTpob3ZlciAucS1zbGlkZXItcmluZyB7XFxuICBvcGFjaXR5OiAwLjQ7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxufVxcbi5xLXNsaWRlci5kaXNhYmxlZCAucS1zbGlkZXItaGFuZGxlIHtcXG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XFxufVxcbi5xLXNsaWRlci5kaXNhYmxlZCAucS1zbGlkZXItaGFuZGxlLmhhbmRsZS1hdC1taW5pbXVtIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc2xpZGVyIHtcXG4gIGhlaWdodDogMjhweDtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgY29sb3I6ICMwMjdiZTM7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1wcmltYXJ5KTtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtc2xpZGVyLmxhYmVsLWFsd2F5cyxcXG4ucS1zbGlkZXIud2l0aC1wYWRkaW5nIHtcXG4gIHBhZGRpbmc6IDM2cHggMCA4cHg7XFxuICBoZWlnaHQ6IDY0cHg7XFxufVxcbi5xLXNsaWRlci5oYXMtZXJyb3Ige1xcbiAgY29sb3I6ICNkYjI4Mjg7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSk7XFxufVxcbi5xLXNsaWRlci5oYXMtd2FybmluZyB7XFxuICBjb2xvcjogI2YyYzAzNztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXdhcm5pbmcpO1xcbn1cXG4ucS1zcGlubmVyIHtcXG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxufVxcbi5xLXNwaW5uZXItbWF0IHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXNwaW4gMnMgbGluZWFyIGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1zcGluIDJzIGxpbmVhciBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXIgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnEtc3Bpbm5lci1tYXQgLnBhdGgge1xcbiAgc3Ryb2tlLWRhc2hhcnJheTogMSwgMjAwO1xcbiAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XFxuICBzdHJva2UtbGluZWNhcDogcm91bmQ7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1tYXQtZGFzaCAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1tYXQtZGFzaCAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLXN0ZXBwZXIge1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLXN0ZXBwZXItdGl0bGUge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbn1cXG4ucS1zdGVwcGVyLXN1YnRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIG9wYWNpdHk6IDAuNztcXG59XFxuLnEtc3RlcHBlci1kb3Qge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICB3aWR0aDogMjRweDtcXG4gIGhlaWdodDogMjRweDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc3RlcHBlci1kb3Qgc3BhbiB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtc3RlcHBlci10YWIge1xcbiAgcGFkZGluZzogMjRweDtcXG4gIGZvbnQtc2l6ZTogMTRweDtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDtcXG4gIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjI4cywgYmFja2dyb3VuZCAwLjI4cztcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMjhzLCBiYWNrZ3JvdW5kIDAuMjhzO1xcbn1cXG4ucS1zdGVwcGVyLXRhYi5zdGVwLXdhaXRpbmcge1xcbiAgY29sb3I6ICMwMDA7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtd2FpdGluZyAucS1zdGVwcGVyLWRvdCB7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjQyKTtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1uYXZpZ2F0aW9uIHtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcbi5xLXN0ZXBwZXItdGFiLnN0ZXAtY29sb3Ige1xcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1hY3RpdmUgLnEtc3RlcHBlci10aXRsZSB7XFxuICBmb250LXdlaWdodDogYm9sZDtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1kaXNhYmxlZCB7XFxuICBjb2xvcjogcmdiYSgwLDAsMCwwLjQyKTtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1lcnJvciB7XFxuICBjb2xvcjogI2RiMjgyODtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLW5lZ2F0aXZlKTtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1lcnJvciAucS1zdGVwcGVyLWRvdCB7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG59XFxuLnEtc3RlcHBlci10YWIuc3RlcC1lcnJvciAucS1zdGVwcGVyLWRvdCBzcGFuIHtcXG4gIGNvbG9yOiAjZGIyODI4O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpO1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlciB7XFxuICBtaW4taGVpZ2h0OiA3MnB4O1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlcjpub3QoLmFsdGVybmF0aXZlLWxhYmVscykgLnEtc3RlcHBlci10YWIge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyOm5vdCguYWx0ZXJuYXRpdmUtbGFiZWxzKSAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMge1xcbiAgbWluLWhlaWdodDogMTA0cHg7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyLmFsdGVybmF0aXZlLWxhYmVscyAucS1zdGVwcGVyLXRhYiB7XFxuICBwYWRkaW5nOiAyNHB4IDMycHg7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAtd2Via2l0LWJveC1wYWNrOiBzdGFydDtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBzdGFydDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMgLnEtc3RlcHBlci1kb3Qge1xcbiAgbWFyZ2luLXJpZ2h0OiAwO1xcbn1cXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMgLnEtc3RlcHBlci1sYWJlbCB7XFxuICBtYXJnaW4tdG9wOiA4cHg7XFxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxufVxcbi5xLXN0ZXBwZXItaGVhZGVyLmFsdGVybmF0aXZlLWxhYmVscyAucS1zdGVwcGVyLWxhYmVsOmJlZm9yZSxcXG4ucS1zdGVwcGVyLWhlYWRlci5hbHRlcm5hdGl2ZS1sYWJlbHMgLnEtc3RlcHBlci1sYWJlbDphZnRlciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1zdGVwcGVyLXN0ZXAtY29udGVudCB7XFxuICBjb2xvcjogIzAwMDtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci10YWIge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1maXJzdCAucS1zdGVwcGVyLWRvdDpiZWZvcmUsXFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1sYXN0IC5xLXN0ZXBwZXItbGFiZWw6YWZ0ZXIsXFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1sYXN0IC5xLXN0ZXBwZXItZG90OmFmdGVyIHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItbGluZTpiZWZvcmUsXFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1saW5lOmFmdGVyIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogNTAlO1xcbiAgaGVpZ2h0OiAxcHg7XFxuICB3aWR0aDogMTAwdnc7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4ucS1zdGVwcGVyLWhvcml6b250YWwgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLWxhYmVsOmFmdGVyLFxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItZG90OmFmdGVyIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgbGVmdDogMTAwJTtcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItZG90OmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHJpZ2h0OiAxMDAlO1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItbmF2IHtcXG4gIG1hcmdpbjogMCAxNnB4IDhweDtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1zdGVwIC5xLXN0ZXBwZXItbmF2IHtcXG4gIG1hcmdpbjogMTZweCAwIDA7XFxufVxcbi5xLXN0ZXBwZXItaG9yaXpvbnRhbCA+IC5xLXN0ZXBwZXItc3RlcCAucS1zdGVwcGVyLW5hdiA+IGRpdi5jb2wge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtc3RlcHBlci1ob3Jpem9udGFsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci1zdGVwLWNvbnRlbnQgPiAucS1zdGVwcGVyLXN0ZXAtaW5uZXIge1xcbiAgcGFkZGluZzogMjRweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCB7XFxuICBwYWRkaW5nOiA4cHggMCAxOHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1uYXYge1xcbiAgbWFyZ2luLXRvcDogMTZweDtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItbmF2ID4gZGl2LmNvbCB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXN0ZXAtY29udGVudCA+IC5xLXN0ZXBwZXItc3RlcC1pbm5lciB7XFxuICBwYWRkaW5nOiAwIDI0cHggMjRweCA0OHB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIge1xcbiAgcGFkZGluZzogMTJweCAxNnB4O1xcbn1cXG4ucS1zdGVwcGVyLXZlcnRpY2FsID4gLnEtc3RlcHBlci1zdGVwID4gLnEtc3RlcHBlci10YWIgLnEtc3RlcHBlci1kb3Q6YmVmb3JlLFxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGxlZnQ6IDUwJTtcXG4gIHdpZHRoOiAxcHg7XFxuICBoZWlnaHQ6IDEwMHZoO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnEtc3RlcHBlci12ZXJ0aWNhbCA+IC5xLXN0ZXBwZXItc3RlcCA+IC5xLXN0ZXBwZXItdGFiIC5xLXN0ZXBwZXItZG90OmJlZm9yZSB7XFxuICBib3R0b206IDEwMCU7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICB0b3A6IDEwMCU7XFxuICBtYXJnaW4tdG9wOiA4cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiAucS1zdGVwcGVyLWxhYmVsIHtcXG4gIHBhZGRpbmctdG9wOiA0cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYiAucS1zdGVwcGVyLWxhYmVsIC5xLXN0ZXBwZXItdGl0bGUge1xcbiAgbGluZS1oZWlnaHQ6IDE4cHg7XFxufVxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYi5xLXN0ZXBwZXItZmlyc3QgLnEtc3RlcHBlci1kb3Q6YmVmb3JlLFxcbi5xLXN0ZXBwZXItdmVydGljYWwgPiAucS1zdGVwcGVyLXN0ZXAgPiAucS1zdGVwcGVyLXRhYi5xLXN0ZXBwZXItbGFzdCAucS1zdGVwcGVyLWRvdDphZnRlciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtc3RlcHBlci10YWIuc3RlcC1uYXZpZ2F0aW9uOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wNSk7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLnEtc3RlcHBlci1ob3Jpem9udGFsLnEtc3RlcHBlci1jb250cmFjdGFibGUgPiAucS1zdGVwcGVyLWhlYWRlciB7XFxuICAgIG1pbi1oZWlnaHQ6IDcycHg7XFxuICB9XFxuICAucS1zdGVwcGVyLWhvcml6b250YWwucS1zdGVwcGVyLWNvbnRyYWN0YWJsZSA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItdGFiIHtcXG4gICAgcGFkZGluZzogMjRweCAwO1xcbiAgfVxcbiAgLnEtc3RlcHBlci1ob3Jpem9udGFsLnEtc3RlcHBlci1jb250cmFjdGFibGUgPiAucS1zdGVwcGVyLWhlYWRlciAucS1zdGVwcGVyLXRhYjpub3QoOmxhc3QtY2hpbGQpIC5xLXN0ZXBwZXItZG90OmFmdGVyIHtcXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcXG4gIH1cXG4gIC5xLXN0ZXBwZXItaG9yaXpvbnRhbC5xLXN0ZXBwZXItY29udHJhY3RhYmxlID4gLnEtc3RlcHBlci1oZWFkZXIgLnEtc3RlcHBlci1kb3Qge1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuICAucS1zdGVwcGVyLWhvcml6b250YWwucS1zdGVwcGVyLWNvbnRyYWN0YWJsZSA+IC5xLXN0ZXBwZXItaGVhZGVyIC5xLXN0ZXBwZXItbGFiZWwge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcbn1cXG4ucS10YWJzIHtcXG4gIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XFxuICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDtcXG4gICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG59XFxuLnEtbGF5b3V0LW1hcmdpbmFsIC5xLXRhYnMge1xcbiAgYm9yZGVyLXJhZGl1czogMDtcXG59XFxuLnEtdGFicy1zY3JvbGxlciB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS10YWItcGFuZSB7XFxuICBwYWRkaW5nOiAxMnB4O1xcbn1cXG4ucS10YWJzLXBhbmVzOmVtcHR5IHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXRhYnMtbm9ybWFsIC5xLXRhYi1pY29uLFxcbi5xLXRhYnMtbm9ybWFsIC5xLXRhYi1sYWJlbCB7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcbi5xLXRhYiB7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGNvbG9yIDAuM3MsIGJhY2tncm91bmQgMC4zcztcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3MsIGJhY2tncm91bmQgMC4zcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xcbiAgcGFkZGluZzogOHB4IDEwcHg7XFxuICBtaW4taGVpZ2h0OiA0OHB4O1xcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcXG59XFxuLnEtdGFiIC5xLXRhYi1pY29uLXBhcmVudCArIC5xLXRhYi1sYWJlbC1wYXJlbnQge1xcbiAgbWFyZ2luLXRvcDogNHB4O1xcbn1cXG4ucS10YWIgLnEtY2hpcCB7XFxuICB0b3A6IC04cHg7XFxuICByaWdodDogLTEwcHg7XFxuICBsZWZ0OiBhdXRvO1xcbiAgbWluLWhlaWdodDogYXV0bztcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNDQsNjcsNTQsMC43NSk7XFxufVxcbi5xLXRhYi5hY3RpdmUgLnEtdGFiLWljb24sXFxuLnEtdGFiLmFjdGl2ZSAucS10YWItbGFiZWwge1xcbiAgb3BhY2l0eTogMTtcXG59XFxuLnEtdGFiLWxhYmVsIHtcXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcXG59XFxuLnEtdGFiLWljb24ge1xcbiAgZm9udC1zaXplOiAyN3B4O1xcbn1cXG4ucS10YWItZm9jdXMtaGVscGVyIHtcXG4gIHotaW5kZXg6IC0xO1xcbiAgb3V0bGluZTogMDtcXG59XFxuLnEtdGFiLWZvY3VzLWhlbHBlcjpmb2N1cyB7XFxuICB6LWluZGV4OiB1bnNldDtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIG9wYWNpdHk6IDAuMTtcXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7XFxuICAucS10YWIuaGlkZS1pY29uIC5xLXRhYi1pY29uLXBhcmVudCxcXG4gIC5xLXRhYi5oaWRlLWxhYmVsIC5xLXRhYi1sYWJlbC1wYXJlbnQge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxuICAucS10YWIuaGlkZS1pY29uIC5xLXRhYi1sYWJlbCB7XFxuICAgIG1hcmdpbi10b3A6IDA7XFxuICB9XFxuICAucS10YWItZnVsbC5oaWRlLW5vbmUgLnEtdGFiLWxhYmVsLXBhcmVudCAucS10YWItbWV0YSB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLnEtdGFiLWZ1bGwgLnEtdGFiLWxhYmVsLXBhcmVudCAucS10YWItbWV0YSB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA5OTFweCkge1xcbiAgLnEtdGFicy1oZWFkOm5vdCguc2Nyb2xsYWJsZSkgLnEtdGFicy1zY3JvbGxlcixcXG4gIC5xLXRhYnMtaGVhZDpub3QoLnNjcm9sbGFibGUpIC5xLXRhYiB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAxIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgLnEtdGFiIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAyNXB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xcbiAgfVxcbiAgLnEtbGF5b3V0LW1hcmdpbmFsIC5xLXRhYnMtaGVhZDpub3QoLnNjcm9sbGFibGUpIHtcXG4gICAgcGFkZGluZy1sZWZ0OiAxMnB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiAxMnB4O1xcbiAgfVxcbn1cXG4ucS10YWJzLWhlYWQge1xcbiAgbWluLWhlaWdodDogNDhweDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBmb250LXNpemU6IDAuOTVyZW07XFxuICBmb250LXdlaWdodDogNTAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBjb2xvciAwLjE4cyBlYXNlLWluLCAtd2Via2l0LWJveC1zaGFkb3cgMC4xOHMgZWFzZS1pbjtcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMThzIGVhc2UtaW4sIC13ZWJraXQtYm94LXNoYWRvdyAwLjE4cyBlYXNlLWluO1xcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xOHMgZWFzZS1pbiwgYm94LXNoYWRvdyAwLjE4cyBlYXNlLWluO1xcbiAgdHJhbnNpdGlvbjogY29sb3IgMC4xOHMgZWFzZS1pbiwgYm94LXNoYWRvdyAwLjE4cyBlYXNlLWluLCAtd2Via2l0LWJveC1zaGFkb3cgMC4xOHMgZWFzZS1pbjtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG59XFxuLnEtdGFicy1oZWFkOm5vdCguc2Nyb2xsYWJsZSkgLnEtdGFicy1sZWZ0LXNjcm9sbCxcXG4ucS10YWJzLWhlYWQ6bm90KC5zY3JvbGxhYmxlKSAucS10YWJzLXJpZ2h0LXNjcm9sbCB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5xLXRhYnMtbGVmdC1zY3JvbGwsXFxuLnEtdGFicy1yaWdodC1zY3JvbGwge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbiAgY29sb3I6ICNmZmY7XFxuICB0b3A6IDA7XFxufVxcbi5xLXRhYnMtbGVmdC1zY3JvbGwgLnEtaWNvbixcXG4ucS10YWJzLXJpZ2h0LXNjcm9sbCAucS1pY29uIHtcXG4gIHRleHQtc2hhZG93OiAwIDAgMTBweCAjMDAwO1xcbiAgZm9udC1zaXplOiAzMi40cHg7XFxuICB2aXNpYmlsaXR5OiBoaWRkZW47XFxufVxcbi5xLXRhYnMtbGVmdC1zY3JvbGwuZGlzYWJsZWQsXFxuLnEtdGFicy1yaWdodC1zY3JvbGwuZGlzYWJsZWQge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtdGFiczpob3ZlciAucS10YWJzLWxlZnQtc2Nyb2xsIC5xLWljb24sXFxuLnEtdGFiczpob3ZlciAucS10YWJzLXJpZ2h0LXNjcm9sbCAucS1pY29uIHtcXG4gIHZpc2liaWxpdHk6IHZpc2libGU7XFxufVxcbi5xLXRhYnMtbGVmdC1zY3JvbGwge1xcbiAgbGVmdDogMCAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS10YWJzLXJpZ2h0LXNjcm9sbCB7XFxuICByaWdodDogMCAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucS10YWJzLWFsaWduLWp1c3RpZnkgLnEtdGFicy1zY3JvbGxlcixcXG4ucS10YWJzLWFsaWduLWp1c3RpZnkgLnEtdGFiIHtcXG4gIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgLW1zLWZsZXg6IDEgMSBhdXRvO1xcbiAgICAgICAgICBmbGV4OiAxIDEgYXV0bztcXG59XFxuLnEtdGFicy1hbGlnbi1jZW50ZXIge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGNlbnRlcjtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxufVxcbi5xLXRhYnMtYWxpZ24tcmlnaHQge1xcbiAgLXdlYmtpdC1ib3gtcGFjazogZW5kO1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IGVuZDtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcXG59XFxuLnEtdGFicy1iYXIge1xcbiAgYm9yZGVyOiAycHggc29saWQgY3VycmVudENvbG9yO1xcbiAgYm9yZGVyLXdpZHRoOiAwO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaGVpZ2h0OiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbn1cXG4ucS10YWJzLWdsb2JhbC1iYXIge1xcbiAgd2lkdGg6IDFweDtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XFxuICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAtd2Via2l0LXRyYW5zZm9ybTtcXG4gIHRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtO1xcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtLCAtd2Via2l0LXRyYW5zZm9ybTtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xNXM7XFxuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMTVzO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuNCwgMCwgMSwgMSk7XFxuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKTtcXG59XFxuLnEtdGFicy1nbG9iYWwtYmFyLmNvbnRyYWN0IHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMC4xOHM7XFxuICAgICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMThzO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSk7XFxuICAgICAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKTtcXG59XFxuLnEtdGFicy1nbG9iYWwtYmFyLWNvbnRhaW5lci5oaWdobGlnaHQgPiAucS10YWJzLWdsb2JhbC1iYXIge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtdGFicy10d28tbGluZXMgLnEtdGFiIHtcXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XFxufVxcbi5xLXRhYnMtdHdvLWxpbmVzIC5xLXRhYiAucS10YWItbGFiZWwge1xcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcXG4gIC13ZWJraXQtbGluZS1jbGFtcDogMjtcXG59XFxuLnEtdGFicy1wb3NpdGlvbi10b3AgPiAucS10YWJzLWhlYWQgLnEtdGFicy1iYXIge1xcbiAgYm90dG9tOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xcbn1cXG4ucS10YWJzLXBvc2l0aW9uLWJvdHRvbSA+IC5xLXRhYnMtaGVhZCAucS10YWJzLWJhciB7XFxuICB0b3A6IDA7XFxuICBib3JkZXItdG9wLXdpZHRoOiAycHg7XFxufVxcbi5xLXRhYnMtcG9zaXRpb24tYm90dG9tID4gLnEtdGFicy1wYW5lcyB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAwO1xcbiAgICAgIC1tcy1mbGV4LW9yZGVyOiAtMTtcXG4gICAgICAgICAgb3JkZXI6IC0xO1xcbn1cXG4ucS10YWJzLWludmVydGVkIC5xLXRhYnMtaGVhZCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmO1xcbn1cXG4ucS10YWJzLWludmVydGVkLnEtdGFicy1wb3NpdGlvbi10b3AgPiAucS10YWJzLXBhbmVzIHtcXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7XFxufVxcbi5xLXRhYnMtaW52ZXJ0ZWQucS10YWJzLXBvc2l0aW9uLXRvcCA+IC5xLXRhYi1wYW5lIHtcXG4gIGJvcmRlci10b3A6IDA7XFxufVxcbi5xLXRhYnMtaW52ZXJ0ZWQucS10YWJzLXBvc2l0aW9uLWJvdHRvbSA+IC5xLXRhYnMtcGFuZXMge1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTtcXG59XFxuLnEtdGFicy1pbnZlcnRlZC5xLXRhYnMtcG9zaXRpb24tYm90dG9tID4gLnEtdGFiLXBhbmUge1xcbiAgYm9yZGVyLWJvdHRvbTogMDtcXG59XFxuYm9keS5tb2JpbGUgLnEtdGFicy1zY3JvbGxlciB7XFxuICBvdmVyZmxvdy15OiBoaWRkZW47XFxuICBvdmVyZmxvdy14OiBhdXRvO1xcbiAgd2lsbC1jaGFuZ2U6IHNjcm9sbC1wb3NpdGlvbjtcXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG59XFxuYm9keS5kZXNrdG9wIC5xLXRhYjpiZWZvcmUge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiAwO1xcbiAgb3BhY2l0eTogMC4xO1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbn1cXG5ib2R5LmRlc2t0b3AgLnEtdGFiOmhvdmVyOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG59XFxuLnEtdGFibGUtY29udGFpbmVyIHtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbn1cXG4ucS10YWJsZS1jb250YWluZXIuZnVsbHNjcmVlbiB7XFxuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xcbn1cXG4ucS10YWJsZS10b3Age1xcbiAgbWluLWhlaWdodDogNjRweDtcXG4gIHBhZGRpbmc6IDhweCAyNHB4O1xcbn1cXG4ucS10YWJsZS10b3A6YmVmb3JlIHtcXG4gIGNvbnRlbnQ6ICcnO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxuICBvcGFjaXR5OiAwLjI7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG59XFxuLnEtdGFibGUtdG9wIC5xLXRhYmxlLWNvbnRyb2wge1xcbiAgbWluLWhlaWdodDogMzZweDtcXG4gIHBhZGRpbmc6IDhweCAwO1xcbiAgLW1zLWZsZXgtd3JhcDogd3JhcDtcXG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcbi5xLXRhYmxlLXRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMjBweDtcXG4gIGxldHRlci1zcGFjaW5nOiAwLjAwNWVtO1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG59XFxuLnEtdGFibGUtc2VwYXJhdG9yIHtcXG4gIG1pbi13aWR0aDogOHB4ICFpbXBvcnRhbnQ7XFxufVxcbi5xLXRhYmxlLW5vZGF0YSAucS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMjAwJTtcXG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxufVxcbi5xLXRhYmxlLXByb2dyZXNzIHtcXG4gIGhlaWdodDogMCAhaW1wb3J0YW50O1xcbn1cXG4ucS10YWJsZS1wcm9ncmVzcyB0ZCB7XFxuICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG59XFxuLnEtdGFibGUtcHJvZ3Jlc3MgLnEtcHJvZ3Jlc3Mge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgaGVpZ2h0OiAycHg7XFxuICBib3R0b206IDA7XFxufVxcbi5xLXRhYmxlLW1pZGRsZSB7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxufVxcbi5xLXRhYmxlLWJvdHRvbSB7XFxuICBtaW4taGVpZ2h0OiA0OHB4O1xcbiAgcGFkZGluZzogNHB4IDE0cHggNHB4IDI0cHg7XFxufVxcbi5xLXRhYmxlLWJvdHRvbSxcXG4ucS10YWJsZS1ib3R0b20gLnEtaWYge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbn1cXG4ucS10YWJsZS1ib3R0b20gLnEtdGFibGUtY29udHJvbCB7XFxuICBtaW4taGVpZ2h0OiAyNHB4O1xcbn1cXG4ucS10YWJsZS1jb250cm9sIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbn1cXG4ucS10YWJsZS1zb3J0LWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuNSwgMSk7XFxuICB3aWxsLWNoYW5nZTogb3BhY2l0eSwgdHJhbnNmb3JtO1xcbiAgb3BhY2l0eTogMDtcXG4gIGZvbnQtc2l6ZTogMTIwJTtcXG59XFxuLnEtdGFibGUtc29ydC1pY29uLWxlZnQsXFxuLnEtdGFibGUtc29ydC1pY29uLWNlbnRlciB7XFxuICBtYXJnaW4tbGVmdDogNHB4O1xcbn1cXG4ucS10YWJsZS1zb3J0LWljb24tcmlnaHQge1xcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XFxufVxcbi5xLXRhYmxlIHtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcXG4gIGJvcmRlci1zcGFjaW5nOiAwO1xcbn1cXG4ucS10YWJsZSB0aGVhZCB0ciB7XFxuICBoZWlnaHQ6IDU2cHg7XFxufVxcbi5xLXRhYmxlIHRoIHtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBmb250LXNpemU6IDEycHg7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxufVxcbi5xLXRhYmxlIHRoLnNvcnRhYmxlIHtcXG4gIGN1cnNvcjogcG9pbnRlcjtcXG59XFxuLnEtdGFibGUgdGguc29ydGFibGU6aG92ZXIgLnEtdGFibGUtc29ydC1pY29uIHtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtdGFibGUgdGguc29ydGVkIC5xLXRhYmxlLXNvcnQtaWNvbiB7XFxuICBvcGFjaXR5OiAxICFpbXBvcnRhbnQ7XFxufVxcbi5xLXRhYmxlIHRoLnNvcnQtZGVzYyAucS10YWJsZS1zb3J0LWljb24ge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xcbn1cXG4ucS10YWJsZSB0Ym9keSB0ciB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHdpbGwtY2hhbmdlOiBiYWNrZ3JvdW5kO1xcbn1cXG4ucS10YWJsZSB0aCxcXG4ucS10YWJsZSB0ZCB7XFxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgcGFkZGluZzogN3B4IDI0cHg7XFxufVxcbi5xLXRhYmxlIHRoZWFkLFxcbi5xLXRhYmxlIHRkLFxcbi5xLXRhYmxlIHRoIHtcXG4gIGJvcmRlci1zdHlsZTogc29saWQ7XFxuICBib3JkZXItd2lkdGg6IDA7XFxufVxcbi5xLXRhYmxlIHRib2R5IHRkIHtcXG4gIGhlaWdodDogNDhweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBmb250LXNpemU6IDEzcHg7XFxufVxcbi5xLXRhYmxlLWNvbC1hdXRvLXdpZHRoIHtcXG4gIHdpZHRoOiAxcHg7XFxufVxcbi5xLXRhYmxlLWJvdHRvbS1pdGVtIHtcXG4gIG1hcmdpbi1yaWdodDogMjRweDtcXG59XFxuLnEtdGFibGUtZ3JpZCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XFxufVxcbi5xLXRhYmxlLWdyaWQgLnEtdGFibGUtYm90dG9tIHtcXG4gIGJvcmRlci10b3A6IDA7XFxufVxcbi5xLXRhYmxlLWdyaWQgLnEtdGFibGUge1xcbiAgaGVpZ2h0OiAycHg7XFxufVxcbi5xLXRhYmxlLWdyaWQgLnEtdGFibGUgdGhlYWQge1xcbiAgYm9yZGVyOiAwO1xcbn1cXG4ucS10YWJsZS1ob3Jpem9udGFsLXNlcGFyYXRvciB0aGVhZCxcXG4ucS10YWJsZS1ob3Jpem9udGFsLXNlcGFyYXRvciB0Ym9keSB0ZCB7XFxuICBib3JkZXItd2lkdGg6IDAgMCAxcHggMDtcXG59XFxuLnEtdGFibGUtdmVydGljYWwtc2VwYXJhdG9yIHRoZWFkIHtcXG4gIGJvcmRlci13aWR0aDogMCAwIDFweCAwO1xcbn1cXG4ucS10YWJsZS12ZXJ0aWNhbC1zZXBhcmF0b3IgdGQge1xcbiAgYm9yZGVyLXdpZHRoOiAwIDAgMCAxcHg7XFxufVxcbi5xLXRhYmxlLXZlcnRpY2FsLXNlcGFyYXRvciB0ZDpmaXJzdC1jaGlsZCB7XFxuICBib3JkZXItbGVmdDogMDtcXG59XFxuLnEtdGFibGUtY2VsbC1zZXBhcmF0b3IgdGQge1xcbiAgYm9yZGVyLXdpZHRoOiAxcHg7XFxufVxcbi5xLXRhYmxlLWNlbGwtc2VwYXJhdG9yIHRkOmZpcnN0LWNoaWxkIHtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbn1cXG4ucS10YWJsZS1jZWxsLXNlcGFyYXRvciB0ZDpsYXN0LWNoaWxkIHtcXG4gIGJvcmRlci1yaWdodDogMDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUtdG9wIHtcXG4gIG1pbi1oZWlnaHQ6IDQ4cHg7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlLXRvcCxcXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZS1ib3R0b20ge1xcbiAgcGFkZGluZy1sZWZ0OiA4cHg7XFxuICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlLWJvdHRvbSB7XFxuICBtaW4taGVpZ2h0OiA0MnB4O1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZS1zb3J0LWljb24ge1xcbiAgZm9udC1zaXplOiAxMTAlO1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZSB0aCxcXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZSB0ZCB7XFxuICBwYWRkaW5nOiA0cHggOHB4O1xcbn1cXG4ucS10YWJsZS1kZW5zZSAucS10YWJsZSB0aGVhZCB0ciB7XFxuICBoZWlnaHQ6IDQwcHg7XFxufVxcbi5xLXRhYmxlLWRlbnNlIC5xLXRhYmxlIHRib2R5IHRkIHtcXG4gIGhlaWdodDogMjhweDtcXG59XFxuLnEtdGFibGUtZGVuc2UgLnEtdGFibGUtYm90dG9tLWl0ZW0ge1xcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XFxufVxcbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgLnEtdGFibGUtdG9wIHtcXG4gICAgbWluLWhlaWdodDogNDhweDtcXG4gIH1cXG4gIC5xLXRhYmxlLXRvcCxcXG4gIC5xLXRhYmxlLWJvdHRvbSB7XFxuICAgIHBhZGRpbmctbGVmdDogOHB4O1xcbiAgICBwYWRkaW5nLXJpZ2h0OiA4cHg7XFxuICB9XFxuICAucS10YWJsZS1ib3R0b20ge1xcbiAgICBtaW4taGVpZ2h0OiA0MnB4O1xcbiAgfVxcbiAgLnEtdGFibGUtc29ydC1pY29uIHtcXG4gICAgZm9udC1zaXplOiAxMTAlO1xcbiAgfVxcbiAgLnEtdGFibGUgdGgsXFxuICAucS10YWJsZSB0ZCB7XFxuICAgIHBhZGRpbmc6IDRweCA4cHg7XFxuICB9XFxuICAucS10YWJsZSB0aGVhZCB0ciB7XFxuICAgIGhlaWdodDogNDBweDtcXG4gIH1cXG4gIC5xLXRhYmxlIHRib2R5IHRkIHtcXG4gICAgaGVpZ2h0OiAyOHB4O1xcbiAgfVxcbiAgLnEtdGFibGUtYm90dG9tLWl0ZW0ge1xcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcXG4gIH1cXG59XFxuLnEtdGFibGUtYm90dG9tIHtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuNTQpO1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLXRhYmxlIHtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuODcpO1xcbn1cXG4ucS10YWJsZSB0aGVhZCxcXG4ucS10YWJsZSB0cixcXG4ucS10YWJsZSB0aCxcXG4ucS10YWJsZSB0ZCB7XFxuICBib3JkZXItY29sb3I6IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5xLXRhYmxlIHRoIHtcXG4gIGNvbG9yOiByZ2JhKDAsMCwwLDAuNTQpO1xcbn1cXG4ucS10YWJsZSB0aC5zb3J0YWJsZTpob3ZlcixcXG4ucS10YWJsZSB0aC5zb3J0ZWQge1xcbiAgY29sb3I6IHJnYmEoMCwwLDAsMC44Nyk7XFxufVxcbi5xLXRhYmxlIHRib2R5IHRyLnNlbGVjdGVkIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wNik7XFxufVxcbi5xLXRhYmxlIHRib2R5IHRyOmhvdmVyIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4wMyk7XFxufVxcbi5xLXRhYmxlLWRhcmsge1xcbiAgY29sb3I6ICNlZWU7XFxufVxcbi5xLXRhYmxlLWRhcmsgLnEtdGFibGUtYm90dG9tLFxcbi5xLXRhYmxlLWRhcmsgLnEtdGFibGUtdG9wIHtcXG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjQpO1xcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7XFxufVxcbi5xLXRhYmxlLWRhcmsgdGhlYWQsXFxuLnEtdGFibGUtZGFyayB0cixcXG4ucS10YWJsZS1kYXJrIHRoLFxcbi5xLXRhYmxlLWRhcmsgdGQge1xcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpO1xcbn1cXG4ucS10YWJsZS1kYXJrIHRoIHtcXG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjQpO1xcbn1cXG4ucS10YWJsZS1kYXJrIHRoLnNvcnRhYmxlOmhvdmVyLFxcbi5xLXRhYmxlLWRhcmsgdGguc29ydGVkIHtcXG4gIGNvbG9yOiAjZWVlO1xcbn1cXG4ucS10YWJsZS1kYXJrIHRib2R5IHRyLnNlbGVjdGVkIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcXG59XFxuLnEtdGFibGUtZGFyayB0Ym9keSB0cjpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7XFxufVxcbi5xLXRpbWVsaW5lIHtcXG4gIHBhZGRpbmc6IDA7XFxuICB3aWR0aDogMTAwJTtcXG4gIGxpc3Qtc3R5bGU6IG5vbmU7XFxufVxcbi5xLXRpbWVsaW5lIGg2IHtcXG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xcbn1cXG4ucS10aW1lbGluZS10aXRsZSB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcXG59XFxuLnEtdGltZWxpbmUtc3VidGl0bGUge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgbWFyZ2luLWJvdHRvbTogOHB4O1xcbiAgb3BhY2l0eTogMC40O1xcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcXG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XFxuICBmb250LXdlaWdodDogNzAwO1xcbn1cXG4ucS10aW1lbGluZS1kb3Qge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxNXB4O1xcbn1cXG4ucS10aW1lbGluZS1kb3Q6YmVmb3JlLFxcbi5xLXRpbWVsaW5lLWRvdDphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbn1cXG4ucS10aW1lbGluZS1kb3Q6YmVmb3JlIHtcXG4gIGJvcmRlcjogM3B4IHNvbGlkIHRyYW5zcGFyZW50O1xcbiAgYm9yZGVyLXJhZGl1czogMTAwJTtcXG4gIGhlaWdodDogMTVweDtcXG4gIHdpZHRoOiAxNXB4O1xcbiAgdG9wOiA0cHg7XFxuICBsZWZ0OiAwO1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3MgZWFzZS1pbi1vdXQsIGJvcmRlciAwLjNzIGVhc2UtaW4tb3V0O1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzIGVhc2UtaW4tb3V0LCBib3JkZXIgMC4zcyBlYXNlLWluLW91dDtcXG59XFxuLnEtdGltZWxpbmUtZG90OmFmdGVyIHtcXG4gIHdpZHRoOiAzcHg7XFxuICBvcGFjaXR5OiAwLjQ7XFxuICB0b3A6IDI0cHg7XFxuICBib3R0b206IDA7XFxuICBsZWZ0OiA2cHg7XFxufVxcbi5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1kb3Qge1xcbiAgd2lkdGg6IDMxcHg7XFxuICBsZWZ0OiAtOHB4O1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtZG90OmJlZm9yZSB7XFxuICBoZWlnaHQ6IDMxcHg7XFxuICB3aWR0aDogMzFweDtcXG59XFxuLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLWRvdDphZnRlciB7XFxuICB0b3A6IDQxcHg7XFxuICBsZWZ0OiAxNHB4O1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeS13aXRoLWljb24gLnEtdGltZWxpbmUtc3VidGl0bGUge1xcbiAgcGFkZGluZy10b3A6IDhweDtcXG59XFxuLnEtdGltZWxpbmUtZG90IC5xLWljb24ge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgcmlnaHQ6IDA7XFxuICBmb250LXNpemU6IDE2cHg7XFxuICBoZWlnaHQ6IDM4cHg7XFxuICBjb2xvcjogI2ZmZjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogY29sb3IgMC4zcyBlYXNlLWluLW91dDtcXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZS1pbi1vdXQ7XFxufVxcbi5xLXRpbWVsaW5lLWRhcmsge1xcbiAgY29sb3I6ICNmZmY7XFxufVxcbi5xLXRpbWVsaW5lLWRhcmsgLnEtdGltZWxpbmUtc3VidGl0bGUge1xcbiAgb3BhY2l0eTogMC43O1xcbn1cXG4ucS10aW1lbGluZS1lbnRyeSB7XFxuICBwYWRkaW5nLWxlZnQ6IDQwcHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBsaW5lLWhlaWdodDogMjJweDtcXG59XFxuLnEtdGltZWxpbmUtZW50cnk6bGFzdC1jaGlsZCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMDtcXG59XFxuLnEtdGltZWxpbmUtZW50cnk6bGFzdC1jaGlsZCAucS10aW1lbGluZS1kb3Q6YWZ0ZXIge1xcbiAgY29udGVudDogbm9uZTtcXG59XFxuLnEtdGltZWxpbmUtaG92ZXIgLnEtdGltZWxpbmUtZW50cnk6aG92ZXIgLnEtdGltZWxpbmUtZG90OmJlZm9yZSB7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIGJvcmRlcjogM3B4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtdGltZWxpbmUtaG92ZXIgLnEtdGltZWxpbmUtZW50cnkucS10aW1lbGluZS1lbnRyeS13aXRoLWljb246aG92ZXIgLnEtdGltZWxpbmUtZG90IC5xLWljb24ge1xcbiAgY29sb3I6IGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtdGltZWxpbmUtY29udGVudCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMjRweDtcXG59XFxuLnEtdGltZWxpbmUtaGVhZGluZyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5xLXRpbWVsaW5lLWhlYWRpbmc6Zmlyc3QtY2hpbGQgLnEtdGltZWxpbmUtaGVhZGluZy10aXRsZSB7XFxuICBwYWRkaW5nLXRvcDogMDtcXG59XFxuLnEtdGltZWxpbmUtaGVhZGluZzpsYXN0LWNoaWxkIC5xLXRpbWVsaW5lLWhlYWRpbmctdGl0bGUge1xcbiAgcGFkZGluZy1ib3R0b206IDA7XFxufVxcbi5xLXRpbWVsaW5lLWhlYWRpbmctdGl0bGUge1xcbiAgcGFkZGluZzogMzJweCAwO1xcbiAgbWFyZ2luOiAwO1xcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1oZWFkaW5nIHtcXG4gICAgZGlzcGxheTogdGFibGUtcm93O1xcbiAgICBmb250LXNpemU6IDIwMCU7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWhlYWRpbmcgPiBkaXYge1xcbiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1oZWFkaW5nLXRpdGxlIHtcXG4gICAgbWFyZ2luLWxlZnQ6IC01MHB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZSB7XFxuICAgIGRpc3BsYXk6IHRhYmxlO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeSB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcXG4gICAgcGFkZGluZzogMDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtc3VidGl0bGUsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWRvdCxcXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XFxuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLXN1YnRpdGxlIHtcXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XFxuICAgIHdpZHRoOiAzNSU7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWRvdCB7XFxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtY29udGVudCB7XFxuICAgIHBhZGRpbmctbGVmdDogMzBweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnktd2l0aC1pY29uIC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1zdWJ0aXRsZSB7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1oZWFkaW5nLXRpdGxlIHtcXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICBtYXJnaW4tbGVmdDogMDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnksXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLXN1YnRpdGxlLFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1kb3QsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgbWFyZ2luOiAwO1xcbiAgICBwYWRkaW5nOiAwO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1kb3Qge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIGxlZnQ6IDUwJTtcXG4gICAgbWFyZ2luLWxlZnQ6IC03LjE1cHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1kb3Qge1xcbiAgICBsZWZ0OiA1MCU7XFxuICAgIG1hcmdpbi1sZWZ0OiAtMTVweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtc3VidGl0bGUsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWNvbnRlbnQge1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS1sZWZ0IC5xLXRpbWVsaW5lLWNvbnRlbnQsXFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LXJpZ2h0IC5xLXRpbWVsaW5lLXN1YnRpdGxlIHtcXG4gICAgZmxvYXQ6IGxlZnQ7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHg7XFxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xcbiAgfVxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS1sZWZ0IC5xLXRpbWVsaW5lLXN1YnRpdGxlLFxcbiAgLnEtdGltZWxpbmUtcmVzcG9uc2l2ZSAucS10aW1lbGluZS1lbnRyeS1yaWdodCAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgZmxvYXQ6IHJpZ2h0O1xcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICBwYWRkaW5nLWxlZnQ6IDMwcHg7XFxuICB9XFxuICAucS10aW1lbGluZS1yZXNwb25zaXZlIC5xLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvbiAucS10aW1lbGluZS1jb250ZW50IHtcXG4gICAgcGFkZGluZy10b3A6IDhweDtcXG4gIH1cXG4gIC5xLXRpbWVsaW5lLXJlc3BvbnNpdmUgLnEtdGltZWxpbmUtZW50cnkge1xcbiAgICBwYWRkaW5nLWJvdHRvbTogMjRweDtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIH1cXG59XFxuLnEtdG9nZ2xlLWJhc2Uge1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgMC40NXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuNDVzIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiAxMnB4O1xcbiAgYm9yZGVyLXJhZGl1czogMzBweDtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIG9wYWNpdHk6IDAuNTtcXG59XFxuLnEtdG9nZ2xlLWhhbmRsZSB7XFxuICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgNDUwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbiAgdHJhbnNpdGlvbjogYWxsIDQ1MG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAyMXB4O1xcbiAgaGVpZ2h0OiAyMXB4O1xcbiAgbGluZS1oZWlnaHQ6IDIxcHg7XFxufVxcbi5xLXRvZ2dsZSAucS1vcHRpb24taW5uZXIge1xcbiAgaGVpZ2h0OiAyMXB4O1xcbiAgd2lkdGg6IDQwcHg7XFxuICBtaW4td2lkdGg6IDQwcHg7XFxuICBwYWRkaW5nOiA1cHggMDtcXG59XFxuLnEtdG9nZ2xlIC5xLW9wdGlvbi1pbm5lci5hY3RpdmUgLnEtdG9nZ2xlLWhhbmRsZSB7XFxuICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XFxuICBsZWZ0OiAxOXB4O1xcbn1cXG4ucS10b2dnbGUgLnEtb3B0aW9uLWlubmVyLmFjdGl2ZSAucS10b2dnbGUtaWNvbiB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtdG9vbGJhciB7XFxuICBwYWRkaW5nOiA0cHggMTJweDtcXG4gIG1pbi1oZWlnaHQ6IDUwcHg7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgd2lkdGg6IDEwMCU7XFxufVxcbi5xLXRvb2xiYXItaW52ZXJ0ZWQge1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG59XFxuLnEtdG9vbGJhci10aXRsZSB7XFxuICAtd2Via2l0LWJveC1mbGV4OiAxO1xcbiAgICAgIC1tcy1mbGV4OiAxIDEgMCU7XFxuICAgICAgICAgIGZsZXg6IDEgMSAwJTtcXG4gIG1pbi13aWR0aDogMXB4O1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgZm9udC1zaXplOiAxOHB4O1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIHBhZGRpbmc6IDAgMTJweDtcXG59XFxuLnEtdG9vbGJhci1zdWJ0aXRsZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICBvcGFjaXR5OiAwLjc7XFxufVxcbi5xLXRvb2xiYXItdGl0bGUsXFxuLnEtdG9vbGJhci1zdWJ0aXRsZSB7XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4ucS10b29sdGlwIHtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIGZvbnQtc2l6ZTogMTJweDtcXG4gIGNvbG9yOiAjZmFmYWZhO1xcbiAgYmFja2dyb3VuZDogIzc0NzQ3NDtcXG4gIHotaW5kZXg6IDkwMDA7XFxuICBwYWRkaW5nOiAxMHB4O1xcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS10cmVlLW5vZGUge1xcbiAgbWFyZ2luOiAwO1xcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgcGFkZGluZzogMCAwIDNweCAyMnB4O1xcbn1cXG4ucS10cmVlLW5vZGU6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IC0zcHg7XFxuICBib3R0b206IDA7XFxuICB3aWR0aDogMXB4O1xcbiAgcmlnaHQ6IGF1dG87XFxuICBsZWZ0OiAtMTNweDtcXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgY3VycmVudENvbG9yO1xcbn1cXG4ucS10cmVlLW5vZGU6bGFzdC1jaGlsZDphZnRlciB7XFxuICBkaXNwbGF5OiBub25lO1xcbn1cXG4ucS10cmVlLW5vZGUtaGVhZGVyOmJlZm9yZSB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogLTNweDtcXG4gIGJvdHRvbTogNTAlO1xcbiAgd2lkdGg6IDM1cHg7XFxuICBsZWZ0OiAtMzVweDtcXG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgY3VycmVudENvbG9yO1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG59XFxuLnEtdHJlZS1jaGlsZHJlbiB7XFxuICBwYWRkaW5nLWxlZnQ6IDI1cHg7XFxufVxcbi5xLXRyZWUtY2hpbGRyZW4uZGlzYWJsZWQge1xcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxufVxcbi5xLXRyZWUtbm9kZS1ib2R5IHtcXG4gIHBhZGRpbmc6IDVweCAwIDhweCA1cHg7XFxufVxcbi5xLXRyZWUtbm9kZS1wYXJlbnQge1xcbiAgcGFkZGluZy1sZWZ0OiAycHg7XFxufVxcbi5xLXRyZWUtbm9kZS1wYXJlbnQgPiAucS10cmVlLW5vZGUtaGVhZGVyOmJlZm9yZSB7XFxuICB3aWR0aDogMTVweDtcXG4gIGxlZnQ6IC0xNXB4O1xcbn1cXG4ucS10cmVlLW5vZGUtcGFyZW50ID4gLnEtdHJlZS1ub2RlLWNvbGxhcHNpYmxlID4gLnEtdHJlZS1ub2RlLWJvZHkge1xcbiAgcGFkZGluZzogNXB4IDAgOHB4IDI3cHg7XFxufVxcbi5xLXRyZWUtbm9kZS1wYXJlbnQgPiAucS10cmVlLW5vZGUtY29sbGFwc2libGUgPiAucS10cmVlLW5vZGUtYm9keTphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMDtcXG4gIHdpZHRoOiAxcHg7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICByaWdodDogYXV0bztcXG4gIGxlZnQ6IDEycHg7XFxuICBib3JkZXItbGVmdDogMXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcXG4gIGJvdHRvbTogNTBweDtcXG59XFxuLnEtdHJlZS1ub2RlLWxpbmsge1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucS10cmVlLW5vZGUtc2VsZWN0ZWQge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjE1KTtcXG59XFxuLnEtdHJlZS1kYXJrIC5xLXRyZWUtbm9kZS1zZWxlY3RlZCB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuNCk7XFxufVxcbmJvZHkuZGVza3RvcCAucS10cmVlLW5vZGUtbGluazpob3ZlciB7XFxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMSk7XFxufVxcbmJvZHkuZGVza3RvcCAucS10cmVlLWRhcmsgLnEtdHJlZS1ub2RlLWxpbms6aG92ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjMpO1xcbn1cXG4ucS10cmVlLW5vZGUtaGVhZGVyIHtcXG4gIHBhZGRpbmc6IDRweDtcXG4gIG1hcmdpbi10b3A6IDNweDtcXG4gIGJvcmRlci1yYWRpdXM6IDNweDtcXG59XFxuLnEtdHJlZS1ub2RlLWhlYWRlci5kaXNhYmxlZCB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG59XFxuLnEtdHJlZS1pY29uIHtcXG4gIGZvbnQtc2l6ZTogMS41ZW07XFxufVxcbi5xLXRyZWUtaW1nIHtcXG4gIGhlaWdodDogM2VtO1xcbn1cXG4ucS10cmVlLWltZy5hdmF0YXIge1xcbiAgd2lkdGg6IDJlbTtcXG4gIGhlaWdodDogMmVtO1xcbn1cXG4ucS10cmVlLWFycm93IHtcXG4gIGZvbnQtc2l6ZTogMXJlbTtcXG4gIHdpZHRoOiAxcmVtO1xcbiAgaGVpZ2h0OiAxcmVtO1xcbn1cXG4ucS10cmVlLWFycm93LXJvdGF0ZSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xcbn1cXG5bZGlyPXJ0bF0gLnEtdHJlZS1hcnJvdyB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG5bZGlyPXJ0bF0gLnEtdHJlZS1hcnJvdy1yb3RhdGUge1xcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5xLXRyZWUgPiAucS10cmVlLW5vZGUge1xcbiAgcGFkZGluZzogMDtcXG59XFxuLnEtdHJlZSA+IC5xLXRyZWUtbm9kZTphZnRlcixcXG4ucS10cmVlID4gLnEtdHJlZS1ub2RlID4gLnEtdHJlZS1ub2RlLWhlYWRlcjpiZWZvcmUge1xcbiAgZGlzcGxheTogbm9uZTtcXG59XFxuLnEtdHJlZSA+IC5xLXRyZWUtbm9kZS1jaGlsZCA+IC5xLXRyZWUtbm9kZS1oZWFkZXIge1xcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xcbn1cXG4ucS11cGxvYWRlci1leHBhbmRlZCAucS1pZiB7XFxuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XFxufVxcbi5xLXVwbG9hZGVyLWlucHV0IHtcXG4gIG9wYWNpdHk6IDA7XFxuICBtYXgtd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICB3aWR0aDogMTAwJTtcXG4gIGZvbnQtc2l6ZTogMDtcXG59XFxuLnEtdXBsb2FkZXItcGljay1idXR0b25bZGlzYWJsZWRdIC5xLXVwbG9hZGVyLWlucHV0IHtcXG4gIGRpc3BsYXk6IG5vbmU7XFxufVxcbi5xLXVwbG9hZGVyLWZpbGVzIHtcXG4gIGJvcmRlcjogMXB4IHNvbGlkICNlMGUwZTA7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBtYXgtaGVpZ2h0OiA1MDBweDtcXG59XFxuLnEtdXBsb2FkZXItZmlsZXMtbm8tYm9yZGVyIC5xLXVwbG9hZGVyLWZpbGVzIHtcXG4gIGJvcmRlci10b3A6IDAgIWltcG9ydGFudDtcXG59XFxuLnEtdXBsb2FkZXItZmlsZTpub3QoOmxhc3QtY2hpbGQpIHtcXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTBlMGUwO1xcbn1cXG4ucS11cGxvYWRlci1wcm9ncmVzcy1iZyxcXG4ucS11cGxvYWRlci1wcm9ncmVzcy10ZXh0IHtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS11cGxvYWRlci1wcm9ncmVzcy1iZyB7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBvcGFjaXR5OiAwLjI7XFxufVxcbi5xLXVwbG9hZGVyLXByb2dyZXNzLXRleHQge1xcbiAgZm9udC1zaXplOiA0MHB4O1xcbiAgb3BhY2l0eTogMC4xO1xcbiAgcmlnaHQ6IDQ0cHg7XFxuICBib3R0b206IDA7XFxufVxcbi5xLXVwbG9hZGVyLWRuZCB7XFxuICBvdXRsaW5lOiAycHggZGFzaGVkIGN1cnJlbnRDb2xvcjtcXG4gIG91dGxpbmUtb2Zmc2V0OiAtNnB4O1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjYpO1xcbn1cXG4ucS11cGxvYWRlci1kbmQuaW52ZXJ0ZWQge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjMpO1xcbn1cXG4ucS11cGxvYWRlci1kYXJrIC5xLXVwbG9hZGVyLWZpbGVzIHtcXG4gIGNvbG9yOiAjZmZmO1xcbiAgYm9yZGVyOiAxcHggc29saWQgI2E3YTdhNztcXG59XFxuLnEtdXBsb2FkZXItZGFyayAucS11cGxvYWRlci1iZyB7XFxuICBjb2xvcjogI2ZmZjtcXG59XFxuLnEtdXBsb2FkZXItZGFyayAucS11cGxvYWRlci1wcm9ncmVzcy10ZXh0IHtcXG4gIG9wYWNpdHk6IDAuMjtcXG59XFxuLnEtdXBsb2FkZXItZGFyayAucS11cGxvYWRlci1maWxlOm5vdCg6bGFzdC1jaGlsZCkge1xcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0MjQyNDI7XFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tcS1jb2xvci1kYXJrKTtcXG59XFxuaW1nLnJlc3BvbnNpdmUge1xcbiAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgaGVpZ2h0OiBhdXRvO1xcbn1cXG5pbWcuYXZhdGFyIHtcXG4gIHdpZHRoOiA1MHB4O1xcbiAgaGVpZ2h0OiA1MHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCAzcHggcmdiYSgwLDAsMCwwLjIpLCAwIDFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbn1cXG4ucS12aWRlbyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgYm9yZGVyLXJhZGl1czogaW5oZXJpdDtcXG59XFxuLnEtdmlkZW8gaWZyYW1lLFxcbi5xLXZpZGVvIG9iamVjdCxcXG4ucS12aWRlbyBlbWJlZCB7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwJTtcXG59XFxuOnJvb3Qge1xcbiAgLS1xLWNvbG9yLXByaW1hcnk6ICMwMjdiZTM7XFxuICAtLXEtY29sb3Itc2Vjb25kYXJ5OiAjMjZhNjlhO1xcbiAgLS1xLWNvbG9yLXRlcnRpYXJ5OiAjNTU1O1xcbiAgLS1xLWNvbG9yLXBvc2l0aXZlOiAjMjFiYTQ1O1xcbiAgLS1xLWNvbG9yLW5lZ2F0aXZlOiAjZGIyODI4O1xcbiAgLS1xLWNvbG9yLW5lZ2F0aXZlLWw6ICNlYzhiOGI7XFxuICAtLXEtY29sb3ItaW5mbzogIzMxY2NlYztcXG4gIC0tcS1jb2xvci13YXJuaW5nOiAjZjJjMDM3O1xcbiAgLS1xLWNvbG9yLXdhcm5pbmctbDogI2Y4ZGQ5MztcXG4gIC0tcS1jb2xvci1saWdodDogI2JkYmRiZDtcXG4gIC0tcS1jb2xvci1saWdodC1kOiAjYWFhO1xcbiAgLS1xLWNvbG9yLWZhZGVkOiAjNzc3O1xcbiAgLS1xLWNvbG9yLWRhcms6ICM0MjQyNDI7XFxufVxcbi50ZXh0LXByaW1hcnkge1xcbiAgY29sb3I6ICMwMjdiZTMgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLXByaW1hcnkpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wcmltYXJ5IHtcXG4gIGJhY2tncm91bmQ6ICMwMjdiZTMgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItcHJpbWFyeSkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtc2Vjb25kYXJ5IHtcXG4gIGNvbG9yOiAjMjZhNjlhICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1zZWNvbmRhcnkge1xcbiAgYmFja2dyb3VuZDogIzI2YTY5YSAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci1zZWNvbmRhcnkpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlcnRpYXJ5IHtcXG4gIGNvbG9yOiAjNTU1ICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci10ZXJ0aWFyeSkgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlcnRpYXJ5IHtcXG4gIGJhY2tncm91bmQ6ICM1NTUgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItdGVydGlhcnkpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWZhZGVkIHtcXG4gIGNvbG9yOiAjNzc3ICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1mYWRlZCkgIWltcG9ydGFudDtcXG59XFxuLmJnLWZhZGVkIHtcXG4gIGJhY2tncm91bmQ6ICM3NzcgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItZmFkZWQpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBvc2l0aXZlIHtcXG4gIGNvbG9yOiAjMjFiYTQ1ICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1wb3NpdGl2ZSkgIWltcG9ydGFudDtcXG59XFxuLmJnLXBvc2l0aXZlIHtcXG4gIGJhY2tncm91bmQ6ICMyMWJhNDUgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItcG9zaXRpdmUpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW5lZ2F0aXZlIHtcXG4gIGNvbG9yOiAjZGIyODI4ICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1uZWdhdGl2ZSkgIWltcG9ydGFudDtcXG59XFxuLmJnLW5lZ2F0aXZlIHtcXG4gIGJhY2tncm91bmQ6ICNkYjI4MjggIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItbmVnYXRpdmUpICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZm8ge1xcbiAgY29sb3I6ICMzMWNjZWMgIWltcG9ydGFudDtcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWluZm8pICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmZvIHtcXG4gIGJhY2tncm91bmQ6ICMzMWNjZWMgIWltcG9ydGFudDtcXG4gIGJhY2tncm91bmQ6IHZhcigtLXEtY29sb3ItaW5mbykgIWltcG9ydGFudDtcXG59XFxuLnRleHQtd2FybmluZyB7XFxuICBjb2xvcjogI2YyYzAzNyAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3Itd2FybmluZykgIWltcG9ydGFudDtcXG59XFxuLmJnLXdhcm5pbmcge1xcbiAgYmFja2dyb3VuZDogI2YyYzAzNyAhaW1wb3J0YW50O1xcbiAgYmFja2dyb3VuZDogdmFyKC0tcS1jb2xvci13YXJuaW5nKSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC13aGl0ZSB7XFxuICBjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctd2hpdGUge1xcbiAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibGFjayB7XFxuICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmxhY2sge1xcbiAgYmFja2dyb3VuZDogIzAwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodCB7XFxuICBjb2xvcjogI2JkYmRiZCAhaW1wb3J0YW50O1xcbiAgY29sb3I6IHZhcigtLXEtY29sb3ItbGlnaHQpICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodCB7XFxuICBiYWNrZ3JvdW5kOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLWxpZ2h0KSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kYXJrIHtcXG4gIGNvbG9yOiAjNDI0MjQyICFpbXBvcnRhbnQ7XFxuICBjb2xvcjogdmFyKC0tcS1jb2xvci1kYXJrKSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGFyayB7XFxuICBiYWNrZ3JvdW5kOiAjNDI0MjQyICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kOiB2YXIoLS1xLWNvbG9yLWRhcmspICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRyYW5zcGFyZW50IHtcXG4gIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbn1cXG4uYmctdHJhbnNwYXJlbnQge1xcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkIHtcXG4gIGNvbG9yOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0xIHtcXG4gIGNvbG9yOiAjZmZlYmVlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0yIHtcXG4gIGNvbG9yOiAjZmZjZGQyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0zIHtcXG4gIGNvbG9yOiAjZWY5YTlhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC00IHtcXG4gIGNvbG9yOiAjZTU3MzczICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC01IHtcXG4gIGNvbG9yOiAjZWY1MzUwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC02IHtcXG4gIGNvbG9yOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC03IHtcXG4gIGNvbG9yOiAjZTUzOTM1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC04IHtcXG4gIGNvbG9yOiAjZDMyZjJmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC05IHtcXG4gIGNvbG9yOiAjYzYyODI4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0xMCB7XFxuICBjb2xvcjogI2I3MWMxYyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMTEge1xcbiAgY29sb3I6ICNmZjhhODAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcmVkLTEyIHtcXG4gIGNvbG9yOiAjZmY1MjUyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXJlZC0xMyB7XFxuICBjb2xvcjogI2ZmMTc0NCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1yZWQtMTQge1xcbiAgY29sb3I6ICNkNTAwMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluayB7XFxuICBjb2xvcjogI2U5MWU2MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTEge1xcbiAgY29sb3I6ICNmY2U0ZWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0yIHtcXG4gIGNvbG9yOiAjZjhiYmQwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMyB7XFxuICBjb2xvcjogI2Y0OGZiMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTQge1xcbiAgY29sb3I6ICNmMDYyOTIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay01IHtcXG4gIGNvbG9yOiAjZWM0MDdhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstNiB7XFxuICBjb2xvcjogI2U5MWU2MyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTcge1xcbiAgY29sb3I6ICNkODFiNjAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay04IHtcXG4gIGNvbG9yOiAjYzIxODViICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstOSB7XFxuICBjb2xvcjogI2FkMTQ1NyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTEwIHtcXG4gIGNvbG9yOiAjODgwZTRmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMTEge1xcbiAgY29sb3I6ICNmZjgwYWIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcGluay0xMiB7XFxuICBjb2xvcjogI2ZmNDA4MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1waW5rLTEzIHtcXG4gIGNvbG9yOiAjZjUwMDU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXBpbmstMTQge1xcbiAgY29sb3I6ICNjNTExNjIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlIHtcXG4gIGNvbG9yOiAjOWMyN2IwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0xIHtcXG4gIGNvbG9yOiAjZjNlNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0yIHtcXG4gIGNvbG9yOiAjZTFiZWU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0zIHtcXG4gIGNvbG9yOiAjY2U5M2Q4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS00IHtcXG4gIGNvbG9yOiAjYmE2OGM4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS01IHtcXG4gIGNvbG9yOiAjYWI0N2JjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS02IHtcXG4gIGNvbG9yOiAjOWMyN2IwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS03IHtcXG4gIGNvbG9yOiAjOGUyNGFhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS04IHtcXG4gIGNvbG9yOiAjN2IxZmEyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS05IHtcXG4gIGNvbG9yOiAjNmExYjlhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0xMCB7XFxuICBjb2xvcjogIzRhMTQ4YyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMTEge1xcbiAgY29sb3I6ICNlYTgwZmMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtcHVycGxlLTEyIHtcXG4gIGNvbG9yOiAjZTA0MGZiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXB1cnBsZS0xMyB7XFxuICBjb2xvcjogI2Q1MDBmOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1wdXJwbGUtMTQge1xcbiAgY29sb3I6ICNhMGYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUge1xcbiAgY29sb3I6ICM2NzNhYjcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMSB7XFxuICBjb2xvcjogI2VkZTdmNiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS0yIHtcXG4gIGNvbG9yOiAjZDFjNGU5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTMge1xcbiAgY29sb3I6ICNiMzlkZGIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtNCB7XFxuICBjb2xvcjogIzk1NzVjZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS01IHtcXG4gIGNvbG9yOiAjN2U1N2MyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTYge1xcbiAgY29sb3I6ICM2NzNhYjcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtNyB7XFxuICBjb2xvcjogIzVlMzViMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLXB1cnBsZS04IHtcXG4gIGNvbG9yOiAjNTEyZGE4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtcHVycGxlLTkge1xcbiAgY29sb3I6ICM0NTI3YTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMTAge1xcbiAgY29sb3I6ICMzMTFiOTIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMTEge1xcbiAgY29sb3I6ICNiMzg4ZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMTIge1xcbiAgY29sb3I6ICM3YzRkZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMTMge1xcbiAgY29sb3I6ICM2NTFmZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1wdXJwbGUtMTQge1xcbiAgY29sb3I6ICM2MjAwZWEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvIHtcXG4gIGNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0xIHtcXG4gIGNvbG9yOiAjZThlYWY2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0yIHtcXG4gIGNvbG9yOiAjYzVjYWU5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0zIHtcXG4gIGNvbG9yOiAjOWZhOGRhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby00IHtcXG4gIGNvbG9yOiAjNzk4NmNiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby01IHtcXG4gIGNvbG9yOiAjNWM2YmMwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby02IHtcXG4gIGNvbG9yOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby03IHtcXG4gIGNvbG9yOiAjMzk0OWFiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby04IHtcXG4gIGNvbG9yOiAjMzAzZjlmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby05IHtcXG4gIGNvbG9yOiAjMjgzNTkzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0xMCB7XFxuICBjb2xvcjogIzFhMjM3ZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMTEge1xcbiAgY29sb3I6ICM4YzllZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtaW5kaWdvLTEyIHtcXG4gIGNvbG9yOiAjNTM2ZGZlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWluZGlnby0xMyB7XFxuICBjb2xvcjogIzNkNWFmZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1pbmRpZ28tMTQge1xcbiAgY29sb3I6ICMzMDRmZmUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZSB7XFxuICBjb2xvcjogIzIxOTZmMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTEge1xcbiAgY29sb3I6ICNlM2YyZmQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0yIHtcXG4gIGNvbG9yOiAjYmJkZWZiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMyB7XFxuICBjb2xvcjogIzkwY2FmOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTQge1xcbiAgY29sb3I6ICM2NGI1ZjYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS01IHtcXG4gIGNvbG9yOiAjNDJhNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtNiB7XFxuICBjb2xvcjogIzIxOTZmMyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTcge1xcbiAgY29sb3I6ICMxZTg4ZTUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS04IHtcXG4gIGNvbG9yOiAjMTk3NmQyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtOSB7XFxuICBjb2xvcjogIzE1NjVjMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTEwIHtcXG4gIGNvbG9yOiAjMGQ0N2ExICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMTEge1xcbiAgY29sb3I6ICM4MmIxZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS0xMiB7XFxuICBjb2xvcjogIzQ0OGFmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLTEzIHtcXG4gIGNvbG9yOiAjMjk3OWZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtMTQge1xcbiAgY29sb3I6ICMyOTYyZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZSB7XFxuICBjb2xvcjogIzAzYTlmNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTEge1xcbiAgY29sb3I6ICNlMWY1ZmUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0yIHtcXG4gIGNvbG9yOiAjYjNlNWZjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMyB7XFxuICBjb2xvcjogIzgxZDRmYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTQge1xcbiAgY29sb3I6ICM0ZmMzZjcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS01IHtcXG4gIGNvbG9yOiAjMjliNmY2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtNiB7XFxuICBjb2xvcjogIzAzYTlmNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTcge1xcbiAgY29sb3I6ICMwMzliZTUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS04IHtcXG4gIGNvbG9yOiAjMDI4OGQxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtOSB7XFxuICBjb2xvcjogIzAyNzdiZCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTEwIHtcXG4gIGNvbG9yOiAjMDE1NzliICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMTEge1xcbiAgY29sb3I6ICM4MGQ4ZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtYmx1ZS0xMiB7XFxuICBjb2xvcjogIzQwYzRmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ibHVlLTEzIHtcXG4gIGNvbG9yOiAjMDBiMGZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWJsdWUtMTQge1xcbiAgY29sb3I6ICMwMDkxZWEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbiB7XFxuICBjb2xvcjogIzAwYmNkNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTEge1xcbiAgY29sb3I6ICNlMGY3ZmEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0yIHtcXG4gIGNvbG9yOiAjYjJlYmYyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMyB7XFxuICBjb2xvcjogIzgwZGVlYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTQge1xcbiAgY29sb3I6ICM0ZGQwZTEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi01IHtcXG4gIGNvbG9yOiAjMjZjNmRhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tNiB7XFxuICBjb2xvcjogIzAwYmNkNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTcge1xcbiAgY29sb3I6ICMwMGFjYzEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi04IHtcXG4gIGNvbG9yOiAjMDA5N2E3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tOSB7XFxuICBjb2xvcjogIzAwODM4ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTEwIHtcXG4gIGNvbG9yOiAjMDA2MDY0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMTEge1xcbiAgY29sb3I6ICM4NGZmZmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtY3lhbi0xMiB7XFxuICBjb2xvcjogIzE4ZmZmZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1jeWFuLTEzIHtcXG4gIGNvbG9yOiAjMDBlNWZmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWN5YW4tMTQge1xcbiAgY29sb3I6ICMwMGI4ZDQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbCB7XFxuICBjb2xvcjogIzAwOTY4OCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTEge1xcbiAgY29sb3I6ICNlMGYyZjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0yIHtcXG4gIGNvbG9yOiAjYjJkZmRiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMyB7XFxuICBjb2xvcjogIzgwY2JjNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTQge1xcbiAgY29sb3I6ICM0ZGI2YWMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC01IHtcXG4gIGNvbG9yOiAjMjZhNjlhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtNiB7XFxuICBjb2xvcjogIzAwOTY4OCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTcge1xcbiAgY29sb3I6ICMwMDg5N2IgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC04IHtcXG4gIGNvbG9yOiAjMDA3OTZiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtOSB7XFxuICBjb2xvcjogIzAwNjk1YyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTEwIHtcXG4gIGNvbG9yOiAjMDA0ZDQwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMTEge1xcbiAgY29sb3I6ICNhN2ZmZWIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtdGVhbC0xMiB7XFxuICBjb2xvcjogIzY0ZmZkYSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC10ZWFsLTEzIHtcXG4gIGNvbG9yOiAjMWRlOWI2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXRlYWwtMTQge1xcbiAgY29sb3I6ICMwMGJmYTUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4ge1xcbiAgY29sb3I6ICM0Y2FmNTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMSB7XFxuICBjb2xvcjogI2U4ZjVlOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi0yIHtcXG4gIGNvbG9yOiAjYzhlNmM5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTMge1xcbiAgY29sb3I6ICNhNWQ2YTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tNCB7XFxuICBjb2xvcjogIzgxYzc4NCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi01IHtcXG4gIGNvbG9yOiAjNjZiYjZhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTYge1xcbiAgY29sb3I6ICM0Y2FmNTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tNyB7XFxuICBjb2xvcjogIzQzYTA0NyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmVlbi04IHtcXG4gIGNvbG9yOiAjMzg4ZTNjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZWVuLTkge1xcbiAgY29sb3I6ICMyZTdkMzIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMTAge1xcbiAgY29sb3I6ICMxYjVlMjAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMTEge1xcbiAgY29sb3I6ICNiOWY2Y2EgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMTIge1xcbiAgY29sb3I6ICM2OWYwYWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMTMge1xcbiAgY29sb3I6ICMwMGU2NzYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JlZW4tMTQge1xcbiAgY29sb3I6ICMwMGM4NTMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4ge1xcbiAgY29sb3I6ICM4YmMzNGEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMSB7XFxuICBjb2xvcjogI2YxZjhlOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi0yIHtcXG4gIGNvbG9yOiAjZGNlZGM4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTMge1xcbiAgY29sb3I6ICNjNWUxYTUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tNCB7XFxuICBjb2xvcjogI2FlZDU4MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi01IHtcXG4gIGNvbG9yOiAjOWNjYzY1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTYge1xcbiAgY29sb3I6ICM4YmMzNGEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tNyB7XFxuICBjb2xvcjogIzdjYjM0MiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saWdodC1ncmVlbi04IHtcXG4gIGNvbG9yOiAjNjg5ZjM4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpZ2h0LWdyZWVuLTkge1xcbiAgY29sb3I6ICM1NThiMmYgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMTAge1xcbiAgY29sb3I6ICMzMzY5MWUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMTEge1xcbiAgY29sb3I6ICNjY2ZmOTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMTIge1xcbiAgY29sb3I6ICNiMmZmNTkgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMTMge1xcbiAgY29sb3I6ICM3NmZmMDMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGlnaHQtZ3JlZW4tMTQge1xcbiAgY29sb3I6ICM2NGRkMTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZSB7XFxuICBjb2xvcjogI2NkZGMzOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTEge1xcbiAgY29sb3I6ICNmOWZiZTcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0yIHtcXG4gIGNvbG9yOiAjZjBmNGMzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMyB7XFxuICBjb2xvcjogI2U2ZWU5YyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTQge1xcbiAgY29sb3I6ICNkY2U3NzUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS01IHtcXG4gIGNvbG9yOiAjZDRlMTU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtNiB7XFxuICBjb2xvcjogI2NkZGMzOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTcge1xcbiAgY29sb3I6ICNjMGNhMzMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS04IHtcXG4gIGNvbG9yOiAjYWZiNDJiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtOSB7XFxuICBjb2xvcjogIzllOWQyNCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTEwIHtcXG4gIGNvbG9yOiAjODI3NzE3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMTEge1xcbiAgY29sb3I6ICNmNGZmODEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtbGltZS0xMiB7XFxuICBjb2xvcjogI2VlZmY0MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1saW1lLTEzIHtcXG4gIGNvbG9yOiAjYzZmZjAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWxpbWUtMTQge1xcbiAgY29sb3I6ICNhZWVhMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93IHtcXG4gIGNvbG9yOiAjZmZlYjNiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0xIHtcXG4gIGNvbG9yOiAjZmZmZGU3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0yIHtcXG4gIGNvbG9yOiAjZmZmOWM0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0zIHtcXG4gIGNvbG9yOiAjZmZmNTlkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy00IHtcXG4gIGNvbG9yOiAjZmZmMTc2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy01IHtcXG4gIGNvbG9yOiAjZmZlZTU4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy02IHtcXG4gIGNvbG9yOiAjZmZlYjNiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy03IHtcXG4gIGNvbG9yOiAjZmRkODM1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy04IHtcXG4gIGNvbG9yOiAjZmJjMDJkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy05IHtcXG4gIGNvbG9yOiAjZjlhODI1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0xMCB7XFxuICBjb2xvcjogI2Y1N2YxNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMTEge1xcbiAgY29sb3I6ICNmZmZmOGQgIWltcG9ydGFudDtcXG59XFxuLnRleHQteWVsbG93LTEyIHtcXG4gIGNvbG9yOiAjZmYwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LXllbGxvdy0xMyB7XFxuICBjb2xvcjogI2ZmZWEwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC15ZWxsb3ctMTQge1xcbiAgY29sb3I6ICNmZmQ2MDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXIge1xcbiAgY29sb3I6ICNmZmMxMDcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMSB7XFxuICBjb2xvcjogI2ZmZjhlMSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci0yIHtcXG4gIGNvbG9yOiAjZmZlY2IzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTMge1xcbiAgY29sb3I6ICNmZmUwODIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItNCB7XFxuICBjb2xvcjogI2ZmZDU0ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci01IHtcXG4gIGNvbG9yOiAjZmZjYTI4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTYge1xcbiAgY29sb3I6ICNmZmMxMDcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItNyB7XFxuICBjb2xvcjogI2ZmYjMwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1hbWJlci04IHtcXG4gIGNvbG9yOiAjZmZhMDAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWFtYmVyLTkge1xcbiAgY29sb3I6ICNmZjhmMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMTAge1xcbiAgY29sb3I6ICNmZjZmMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMTEge1xcbiAgY29sb3I6ICNmZmU1N2YgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMTIge1xcbiAgY29sb3I6ICNmZmQ3NDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMTMge1xcbiAgY29sb3I6ICNmZmM0MDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYW1iZXItMTQge1xcbiAgY29sb3I6ICNmZmFiMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlIHtcXG4gIGNvbG9yOiAjZmY5ODAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0xIHtcXG4gIGNvbG9yOiAjZmZmM2UwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0yIHtcXG4gIGNvbG9yOiAjZmZlMGIyICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0zIHtcXG4gIGNvbG9yOiAjZmZjYzgwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS00IHtcXG4gIGNvbG9yOiAjZmZiNzRkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS01IHtcXG4gIGNvbG9yOiAjZmZhNzI2ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS02IHtcXG4gIGNvbG9yOiAjZmY5ODAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS03IHtcXG4gIGNvbG9yOiAjZmI4YzAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS04IHtcXG4gIGNvbG9yOiAjZjU3YzAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS05IHtcXG4gIGNvbG9yOiAjZWY2YzAwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0xMCB7XFxuICBjb2xvcjogI2U2NTEwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMTEge1xcbiAgY29sb3I6ICNmZmQxODAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtb3JhbmdlLTEyIHtcXG4gIGNvbG9yOiAjZmZhYjQwICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LW9yYW5nZS0xMyB7XFxuICBjb2xvcjogI2ZmOTEwMCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1vcmFuZ2UtMTQge1xcbiAgY29sb3I6ICNmZjZkMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2Uge1xcbiAgY29sb3I6ICNmZjU3MjIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMSB7XFxuICBjb2xvcjogI2ZiZTllNyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS0yIHtcXG4gIGNvbG9yOiAjZmZjY2JjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTMge1xcbiAgY29sb3I6ICNmZmFiOTEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtNCB7XFxuICBjb2xvcjogI2ZmOGE2NSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS01IHtcXG4gIGNvbG9yOiAjZmY3MDQzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTYge1xcbiAgY29sb3I6ICNmZjU3MjIgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtNyB7XFxuICBjb2xvcjogI2Y0NTExZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1kZWVwLW9yYW5nZS04IHtcXG4gIGNvbG9yOiAjZTY0YTE5ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWRlZXAtb3JhbmdlLTkge1xcbiAgY29sb3I6ICNkODQzMTUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMTAge1xcbiAgY29sb3I6ICNiZjM2MGMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMTEge1xcbiAgY29sb3I6ICNmZjllODAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMTIge1xcbiAgY29sb3I6ICNmZjZlNDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMTMge1xcbiAgY29sb3I6ICNmZjNkMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZGVlcC1vcmFuZ2UtMTQge1xcbiAgY29sb3I6ICNkZDJjMDAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24ge1xcbiAgY29sb3I6ICM3OTU1NDggIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMSB7XFxuICBjb2xvcjogI2VmZWJlOSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi0yIHtcXG4gIGNvbG9yOiAjZDdjY2M4ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTMge1xcbiAgY29sb3I6ICNiY2FhYTQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tNCB7XFxuICBjb2xvcjogI2ExODg3ZiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi01IHtcXG4gIGNvbG9yOiAjOGQ2ZTYzICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTYge1xcbiAgY29sb3I6ICM3OTU1NDggIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tNyB7XFxuICBjb2xvcjogIzZkNGM0MSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1icm93bi04IHtcXG4gIGNvbG9yOiAjNWQ0MDM3ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJyb3duLTkge1xcbiAgY29sb3I6ICM0ZTM0MmUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMTAge1xcbiAgY29sb3I6ICMzZTI3MjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMTEge1xcbiAgY29sb3I6ICNkN2NjYzggIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMTIge1xcbiAgY29sb3I6ICNiY2FhYTQgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMTMge1xcbiAgY29sb3I6ICM4ZDZlNjMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYnJvd24tMTQge1xcbiAgY29sb3I6ICM1ZDQwMzcgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleSB7XFxuICBjb2xvcjogIzllOWU5ZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTEge1xcbiAgY29sb3I6ICNmYWZhZmEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0yIHtcXG4gIGNvbG9yOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMyB7XFxuICBjb2xvcjogI2VlZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTQge1xcbiAgY29sb3I6ICNlMGUwZTAgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS01IHtcXG4gIGNvbG9yOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktNiB7XFxuICBjb2xvcjogIzllOWU5ZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTcge1xcbiAgY29sb3I6ICM3NTc1NzUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS04IHtcXG4gIGNvbG9yOiAjNjE2MTYxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktOSB7XFxuICBjb2xvcjogIzQyNDI0MiAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTEwIHtcXG4gIGNvbG9yOiAjMjEyMTIxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMTEge1xcbiAgY29sb3I6ICNmNWY1ZjUgIWltcG9ydGFudDtcXG59XFxuLnRleHQtZ3JleS0xMiB7XFxuICBjb2xvcjogI2VlZSAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ncmV5LTEzIHtcXG4gIGNvbG9yOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWdyZXktMTQge1xcbiAgY29sb3I6ICM2MTYxNjEgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5IHtcXG4gIGNvbG9yOiAjNjA3ZDhiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0xIHtcXG4gIGNvbG9yOiAjZWNlZmYxICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0yIHtcXG4gIGNvbG9yOiAjY2ZkOGRjICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0zIHtcXG4gIGNvbG9yOiAjYjBiZWM1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS00IHtcXG4gIGNvbG9yOiAjOTBhNGFlICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS01IHtcXG4gIGNvbG9yOiAjNzg5MDljICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS02IHtcXG4gIGNvbG9yOiAjNjA3ZDhiICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS03IHtcXG4gIGNvbG9yOiAjNTQ2ZTdhICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS04IHtcXG4gIGNvbG9yOiAjNDU1YTY0ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS05IHtcXG4gIGNvbG9yOiAjMzc0NzRmICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0xMCB7XFxuICBjb2xvcjogIzI2MzIzOCAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMTEge1xcbiAgY29sb3I6ICNjZmQ4ZGMgIWltcG9ydGFudDtcXG59XFxuLnRleHQtYmx1ZS1ncmV5LTEyIHtcXG4gIGNvbG9yOiAjYjBiZWM1ICFpbXBvcnRhbnQ7XFxufVxcbi50ZXh0LWJsdWUtZ3JleS0xMyB7XFxuICBjb2xvcjogIzc4OTA5YyAhaW1wb3J0YW50O1xcbn1cXG4udGV4dC1ibHVlLWdyZXktMTQge1xcbiAgY29sb3I6ICM0NTVhNjQgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZCB7XFxuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlYmVlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjZGQyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMyB7XFxuICBiYWNrZ3JvdW5kOiAjZWY5YTlhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtNCB7XFxuICBiYWNrZ3JvdW5kOiAjZTU3MzczICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtNSB7XFxuICBiYWNrZ3JvdW5kOiAjZWY1MzUwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtNiB7XFxuICBiYWNrZ3JvdW5kOiAjZjQ0MzM2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtNyB7XFxuICBiYWNrZ3JvdW5kOiAjZTUzOTM1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtOCB7XFxuICBiYWNrZ3JvdW5kOiAjZDMyZjJmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtOSB7XFxuICBiYWNrZ3JvdW5kOiAjYzYyODI4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMTAge1xcbiAgYmFja2dyb3VuZDogI2I3MWMxYyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZjhhODAgIWltcG9ydGFudDtcXG59XFxuLmJnLXJlZC0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmY1MjUyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1yZWQtMTMge1xcbiAgYmFja2dyb3VuZDogI2ZmMTc0NCAhaW1wb3J0YW50O1xcbn1cXG4uYmctcmVkLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNkNTAwMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmsge1xcbiAgYmFja2dyb3VuZDogI2U5MWU2MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0xIHtcXG4gIGJhY2tncm91bmQ6ICNmY2U0ZWMgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMiB7XFxuICBiYWNrZ3JvdW5kOiAjZjhiYmQwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTMge1xcbiAgYmFja2dyb3VuZDogI2Y0OGZiMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay00IHtcXG4gIGJhY2tncm91bmQ6ICNmMDYyOTIgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstNSB7XFxuICBiYWNrZ3JvdW5kOiAjZWM0MDdhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTYge1xcbiAgYmFja2dyb3VuZDogI2U5MWU2MyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay03IHtcXG4gIGJhY2tncm91bmQ6ICNkODFiNjAgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstOCB7XFxuICBiYWNrZ3JvdW5kOiAjYzIxODViICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTkge1xcbiAgYmFja2dyb3VuZDogI2FkMTQ1NyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjODgwZTRmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZjgwYWIgIWltcG9ydGFudDtcXG59XFxuLmJnLXBpbmstMTIge1xcbiAgYmFja2dyb3VuZDogI2ZmNDA4MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcGluay0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjZjUwMDU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1waW5rLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNjNTExNjIgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZSB7XFxuICBiYWNrZ3JvdW5kOiAjOWMyN2IwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZjNlNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZTFiZWU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMyB7XFxuICBiYWNrZ3JvdW5kOiAjY2U5M2Q4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtNCB7XFxuICBiYWNrZ3JvdW5kOiAjYmE2OGM4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtNSB7XFxuICBiYWNrZ3JvdW5kOiAjYWI0N2JjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtNiB7XFxuICBiYWNrZ3JvdW5kOiAjOWMyN2IwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtNyB7XFxuICBiYWNrZ3JvdW5kOiAjOGUyNGFhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtOCB7XFxuICBiYWNrZ3JvdW5kOiAjN2IxZmEyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtOSB7XFxuICBiYWNrZ3JvdW5kOiAjNmExYjlhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMTAge1xcbiAgYmFja2dyb3VuZDogIzRhMTQ4YyAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTExIHtcXG4gIGJhY2tncm91bmQ6ICNlYTgwZmMgIWltcG9ydGFudDtcXG59XFxuLmJnLXB1cnBsZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZTA0MGZiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1wdXJwbGUtMTMge1xcbiAgYmFja2dyb3VuZDogI2Q1MDBmOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctcHVycGxlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNhMGYgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlIHtcXG4gIGJhY2tncm91bmQ6ICM2NzNhYjcgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTEge1xcbiAgYmFja2dyb3VuZDogI2VkZTdmNiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZDFjNGU5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS0zIHtcXG4gIGJhY2tncm91bmQ6ICNiMzlkZGIgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTQge1xcbiAgYmFja2dyb3VuZDogIzk1NzVjZCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtNSB7XFxuICBiYWNrZ3JvdW5kOiAjN2U1N2MyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS02IHtcXG4gIGJhY2tncm91bmQ6ICM2NzNhYjcgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTcge1xcbiAgYmFja2dyb3VuZDogIzVlMzViMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1wdXJwbGUtOCB7XFxuICBiYWNrZ3JvdW5kOiAjNTEyZGE4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLXB1cnBsZS05IHtcXG4gIGJhY2tncm91bmQ6ICM0NTI3YTAgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMzMTFiOTIgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTExIHtcXG4gIGJhY2tncm91bmQ6ICNiMzg4ZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTEyIHtcXG4gIGJhY2tncm91bmQ6ICM3YzRkZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTEzIHtcXG4gIGJhY2tncm91bmQ6ICM2NTFmZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtcHVycGxlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICM2MjAwZWEgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnbyB7XFxuICBiYWNrZ3JvdW5kOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMSB7XFxuICBiYWNrZ3JvdW5kOiAjZThlYWY2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMiB7XFxuICBiYWNrZ3JvdW5kOiAjYzVjYWU5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMyB7XFxuICBiYWNrZ3JvdW5kOiAjOWZhOGRhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tNCB7XFxuICBiYWNrZ3JvdW5kOiAjNzk4NmNiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tNSB7XFxuICBiYWNrZ3JvdW5kOiAjNWM2YmMwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tNiB7XFxuICBiYWNrZ3JvdW5kOiAjM2Y1MWI1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tNyB7XFxuICBiYWNrZ3JvdW5kOiAjMzk0OWFiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tOCB7XFxuICBiYWNrZ3JvdW5kOiAjMzAzZjlmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tOSB7XFxuICBiYWNrZ3JvdW5kOiAjMjgzNTkzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMTAge1xcbiAgYmFja2dyb3VuZDogIzFhMjM3ZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTExIHtcXG4gIGJhY2tncm91bmQ6ICM4YzllZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWluZGlnby0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjNTM2ZGZlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1pbmRpZ28tMTMge1xcbiAgYmFja2dyb3VuZDogIzNkNWFmZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctaW5kaWdvLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMzMDRmZmUgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUge1xcbiAgYmFja2dyb3VuZDogIzIxOTZmMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNlM2YyZmQgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMiB7XFxuICBiYWNrZ3JvdW5kOiAjYmJkZWZiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTMge1xcbiAgYmFja2dyb3VuZDogIzkwY2FmOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS00IHtcXG4gIGJhY2tncm91bmQ6ICM2NGI1ZjYgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtNSB7XFxuICBiYWNrZ3JvdW5kOiAjNDJhNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTYge1xcbiAgYmFja2dyb3VuZDogIzIxOTZmMyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS03IHtcXG4gIGJhY2tncm91bmQ6ICMxZTg4ZTUgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtOCB7XFxuICBiYWNrZ3JvdW5kOiAjMTk3NmQyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTkge1xcbiAgYmFja2dyb3VuZDogIzE1NjVjMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMGQ0N2ExICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTExIHtcXG4gIGJhY2tncm91bmQ6ICM4MmIxZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtMTIge1xcbiAgYmFja2dyb3VuZDogIzQ0OGFmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjMjk3OWZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMyOTYyZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUge1xcbiAgYmFja2dyb3VuZDogIzAzYTlmNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNlMWY1ZmUgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMiB7XFxuICBiYWNrZ3JvdW5kOiAjYjNlNWZjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTMge1xcbiAgYmFja2dyb3VuZDogIzgxZDRmYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS00IHtcXG4gIGJhY2tncm91bmQ6ICM0ZmMzZjcgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtNSB7XFxuICBiYWNrZ3JvdW5kOiAjMjliNmY2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTYge1xcbiAgYmFja2dyb3VuZDogIzAzYTlmNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS03IHtcXG4gIGJhY2tncm91bmQ6ICMwMzliZTUgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtOCB7XFxuICBiYWNrZ3JvdW5kOiAjMDI4OGQxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTkge1xcbiAgYmFja2dyb3VuZDogIzAyNzdiZCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMDE1NzliICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTExIHtcXG4gIGJhY2tncm91bmQ6ICM4MGQ4ZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWJsdWUtMTIge1xcbiAgYmFja2dyb3VuZDogIzQwYzRmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtYmx1ZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjMDBiMGZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ibHVlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMwMDkxZWEgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4ge1xcbiAgYmFja2dyb3VuZDogIzAwYmNkNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0xIHtcXG4gIGJhY2tncm91bmQ6ICNlMGY3ZmEgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMiB7XFxuICBiYWNrZ3JvdW5kOiAjYjJlYmYyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTMge1xcbiAgYmFja2dyb3VuZDogIzgwZGVlYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi00IHtcXG4gIGJhY2tncm91bmQ6ICM0ZGQwZTEgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tNSB7XFxuICBiYWNrZ3JvdW5kOiAjMjZjNmRhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTYge1xcbiAgYmFja2dyb3VuZDogIzAwYmNkNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi03IHtcXG4gIGJhY2tncm91bmQ6ICMwMGFjYzEgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tOCB7XFxuICBiYWNrZ3JvdW5kOiAjMDA5N2E3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTkge1xcbiAgYmFja2dyb3VuZDogIzAwODM4ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMDA2MDY0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTExIHtcXG4gIGJhY2tncm91bmQ6ICM4NGZmZmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWN5YW4tMTIge1xcbiAgYmFja2dyb3VuZDogIzE4ZmZmZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctY3lhbi0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjMDBlNWZmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1jeWFuLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMwMGI4ZDQgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwge1xcbiAgYmFja2dyb3VuZDogIzAwOTY4OCAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0xIHtcXG4gIGJhY2tncm91bmQ6ICNlMGYyZjEgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMiB7XFxuICBiYWNrZ3JvdW5kOiAjYjJkZmRiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTMge1xcbiAgYmFja2dyb3VuZDogIzgwY2JjNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC00IHtcXG4gIGJhY2tncm91bmQ6ICM0ZGI2YWMgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtNSB7XFxuICBiYWNrZ3JvdW5kOiAjMjZhNjlhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTYge1xcbiAgYmFja2dyb3VuZDogIzAwOTY4OCAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC03IHtcXG4gIGJhY2tncm91bmQ6ICMwMDg5N2IgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtOCB7XFxuICBiYWNrZ3JvdW5kOiAjMDA3OTZiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTkge1xcbiAgYmFja2dyb3VuZDogIzAwNjk1YyAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMDA0ZDQwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTExIHtcXG4gIGJhY2tncm91bmQ6ICNhN2ZmZWIgIWltcG9ydGFudDtcXG59XFxuLmJnLXRlYWwtMTIge1xcbiAgYmFja2dyb3VuZDogIzY0ZmZkYSAhaW1wb3J0YW50O1xcbn1cXG4uYmctdGVhbC0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjMWRlOWI2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy10ZWFsLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMwMGJmYTUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuIHtcXG4gIGJhY2tncm91bmQ6ICM0Y2FmNTAgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTEge1xcbiAgYmFja2dyb3VuZDogI2U4ZjVlOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tMiB7XFxuICBiYWNrZ3JvdW5kOiAjYzhlNmM5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi0zIHtcXG4gIGJhY2tncm91bmQ6ICNhNWQ2YTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTQge1xcbiAgYmFja2dyb3VuZDogIzgxYzc4NCAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tNSB7XFxuICBiYWNrZ3JvdW5kOiAjNjZiYjZhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi02IHtcXG4gIGJhY2tncm91bmQ6ICM0Y2FmNTAgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTcge1xcbiAgYmFja2dyb3VuZDogIzQzYTA0NyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JlZW4tOCB7XFxuICBiYWNrZ3JvdW5kOiAjMzg4ZTNjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmVlbi05IHtcXG4gIGJhY2tncm91bmQ6ICMyZTdkMzIgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMxYjVlMjAgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTExIHtcXG4gIGJhY2tncm91bmQ6ICNiOWY2Y2EgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTEyIHtcXG4gIGJhY2tncm91bmQ6ICM2OWYwYWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTEzIHtcXG4gIGJhY2tncm91bmQ6ICMwMGU2NzYgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZWVuLTE0IHtcXG4gIGJhY2tncm91bmQ6ICMwMGM4NTMgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuIHtcXG4gIGJhY2tncm91bmQ6ICM4YmMzNGEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTEge1xcbiAgYmFja2dyb3VuZDogI2YxZjhlOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tMiB7XFxuICBiYWNrZ3JvdW5kOiAjZGNlZGM4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi0zIHtcXG4gIGJhY2tncm91bmQ6ICNjNWUxYTUgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTQge1xcbiAgYmFja2dyb3VuZDogI2FlZDU4MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tNSB7XFxuICBiYWNrZ3JvdW5kOiAjOWNjYzY1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi02IHtcXG4gIGJhY2tncm91bmQ6ICM4YmMzNGEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTcge1xcbiAgYmFja2dyb3VuZDogIzdjYjM0MiAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGlnaHQtZ3JlZW4tOCB7XFxuICBiYWNrZ3JvdW5kOiAjNjg5ZjM4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saWdodC1ncmVlbi05IHtcXG4gIGJhY2tncm91bmQ6ICM1NThiMmYgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMzMzY5MWUgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTExIHtcXG4gIGJhY2tncm91bmQ6ICNjY2ZmOTAgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNiMmZmNTkgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTEzIHtcXG4gIGJhY2tncm91bmQ6ICM3NmZmMDMgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpZ2h0LWdyZWVuLTE0IHtcXG4gIGJhY2tncm91bmQ6ICM2NGRkMTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUge1xcbiAgYmFja2dyb3VuZDogI2NkZGMzOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0xIHtcXG4gIGJhY2tncm91bmQ6ICNmOWZiZTcgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZjBmNGMzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTMge1xcbiAgYmFja2dyb3VuZDogI2U2ZWU5YyAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS00IHtcXG4gIGJhY2tncm91bmQ6ICNkY2U3NzUgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtNSB7XFxuICBiYWNrZ3JvdW5kOiAjZDRlMTU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTYge1xcbiAgYmFja2dyb3VuZDogI2NkZGMzOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS03IHtcXG4gIGJhY2tncm91bmQ6ICNjMGNhMzMgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtOCB7XFxuICBiYWNrZ3JvdW5kOiAjYWZiNDJiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTkge1xcbiAgYmFja2dyb3VuZDogIzllOWQyNCAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjODI3NzE3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmNGZmODEgIWltcG9ydGFudDtcXG59XFxuLmJnLWxpbWUtMTIge1xcbiAgYmFja2dyb3VuZDogI2VlZmY0MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctbGltZS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjYzZmZjAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1saW1lLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNhZWVhMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlYjNiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmZGU3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmOWM0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmNTlkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmMTc2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctNSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlZTU4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctNiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlYjNiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctNyB7XFxuICBiYWNrZ3JvdW5kOiAjZmRkODM1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctOCB7XFxuICBiYWNrZ3JvdW5kOiAjZmJjMDJkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctOSB7XFxuICBiYWNrZ3JvdW5kOiAjZjlhODI1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMTAge1xcbiAgYmFja2dyb3VuZDogI2Y1N2YxNyAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZmZmOGQgIWltcG9ydGFudDtcXG59XFxuLmJnLXllbGxvdy0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmYwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy15ZWxsb3ctMTMge1xcbiAgYmFja2dyb3VuZDogI2ZmZWEwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmcteWVsbG93LTE0IHtcXG4gIGJhY2tncm91bmQ6ICNmZmQ2MDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyIHtcXG4gIGJhY2tncm91bmQ6ICNmZmMxMDcgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTEge1xcbiAgYmFja2dyb3VuZDogI2ZmZjhlMSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlY2IzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci0zIHtcXG4gIGJhY2tncm91bmQ6ICNmZmUwODIgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTQge1xcbiAgYmFja2dyb3VuZDogI2ZmZDU0ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItNSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjYTI4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci02IHtcXG4gIGJhY2tncm91bmQ6ICNmZmMxMDcgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTcge1xcbiAgYmFja2dyb3VuZDogI2ZmYjMwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYW1iZXItOCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZhMDAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1hbWJlci05IHtcXG4gIGJhY2tncm91bmQ6ICNmZjhmMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTEwIHtcXG4gIGJhY2tncm91bmQ6ICNmZjZmMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZmU1N2YgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNmZmQ3NDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNmZmM0MDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWFtYmVyLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNmZmFiMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY5ODAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZmM2UwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZlMGIyICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMyB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjYzgwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtNCB7XFxuICBiYWNrZ3JvdW5kOiAjZmZiNzRkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtNSB7XFxuICBiYWNrZ3JvdW5kOiAjZmZhNzI2ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtNiB7XFxuICBiYWNrZ3JvdW5kOiAjZmY5ODAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtNyB7XFxuICBiYWNrZ3JvdW5kOiAjZmI4YzAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtOCB7XFxuICBiYWNrZ3JvdW5kOiAjZjU3YzAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtOSB7XFxuICBiYWNrZ3JvdW5kOiAjZWY2YzAwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMTAge1xcbiAgYmFja2dyb3VuZDogI2U2NTEwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZmQxODAgIWltcG9ydGFudDtcXG59XFxuLmJnLW9yYW5nZS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZhYjQwICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1vcmFuZ2UtMTMge1xcbiAgYmFja2dyb3VuZDogI2ZmOTEwMCAhaW1wb3J0YW50O1xcbn1cXG4uYmctb3JhbmdlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNmZjZkMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlIHtcXG4gIGJhY2tncm91bmQ6ICNmZjU3MjIgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTEge1xcbiAgYmFja2dyb3VuZDogI2ZiZTllNyAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtMiB7XFxuICBiYWNrZ3JvdW5kOiAjZmZjY2JjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS0zIHtcXG4gIGJhY2tncm91bmQ6ICNmZmFiOTEgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTQge1xcbiAgYmFja2dyb3VuZDogI2ZmOGE2NSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtNSB7XFxuICBiYWNrZ3JvdW5kOiAjZmY3MDQzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS02IHtcXG4gIGJhY2tncm91bmQ6ICNmZjU3MjIgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTcge1xcbiAgYmFja2dyb3VuZDogI2Y0NTExZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZGVlcC1vcmFuZ2UtOCB7XFxuICBiYWNrZ3JvdW5kOiAjZTY0YTE5ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1kZWVwLW9yYW5nZS05IHtcXG4gIGJhY2tncm91bmQ6ICNkODQzMTUgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTEwIHtcXG4gIGJhY2tncm91bmQ6ICNiZjM2MGMgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTExIHtcXG4gIGJhY2tncm91bmQ6ICNmZjllODAgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNmZjZlNDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTEzIHtcXG4gIGJhY2tncm91bmQ6ICNmZjNkMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWRlZXAtb3JhbmdlLTE0IHtcXG4gIGJhY2tncm91bmQ6ICNkZDJjMDAgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duIHtcXG4gIGJhY2tncm91bmQ6ICM3OTU1NDggIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTEge1xcbiAgYmFja2dyb3VuZDogI2VmZWJlOSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tMiB7XFxuICBiYWNrZ3JvdW5kOiAjZDdjY2M4ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi0zIHtcXG4gIGJhY2tncm91bmQ6ICNiY2FhYTQgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTQge1xcbiAgYmFja2dyb3VuZDogI2ExODg3ZiAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tNSB7XFxuICBiYWNrZ3JvdW5kOiAjOGQ2ZTYzICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi02IHtcXG4gIGJhY2tncm91bmQ6ICM3OTU1NDggIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTcge1xcbiAgYmFja2dyb3VuZDogIzZkNGM0MSAhaW1wb3J0YW50O1xcbn1cXG4uYmctYnJvd24tOCB7XFxuICBiYWNrZ3JvdW5kOiAjNWQ0MDM3ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1icm93bi05IHtcXG4gIGJhY2tncm91bmQ6ICM0ZTM0MmUgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTEwIHtcXG4gIGJhY2tncm91bmQ6ICMzZTI3MjMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTExIHtcXG4gIGJhY2tncm91bmQ6ICNkN2NjYzggIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTEyIHtcXG4gIGJhY2tncm91bmQ6ICNiY2FhYTQgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTEzIHtcXG4gIGJhY2tncm91bmQ6ICM4ZDZlNjMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJyb3duLTE0IHtcXG4gIGJhY2tncm91bmQ6ICM1ZDQwMzcgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXkge1xcbiAgYmFja2dyb3VuZDogIzllOWU5ZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0xIHtcXG4gIGJhY2tncm91bmQ6ICNmYWZhZmEgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMiB7XFxuICBiYWNrZ3JvdW5kOiAjZjVmNWY1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTMge1xcbiAgYmFja2dyb3VuZDogI2VlZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS00IHtcXG4gIGJhY2tncm91bmQ6ICNlMGUwZTAgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktNSB7XFxuICBiYWNrZ3JvdW5kOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTYge1xcbiAgYmFja2dyb3VuZDogIzllOWU5ZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS03IHtcXG4gIGJhY2tncm91bmQ6ICM3NTc1NzUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktOCB7XFxuICBiYWNrZ3JvdW5kOiAjNjE2MTYxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTkge1xcbiAgYmFja2dyb3VuZDogIzQyNDI0MiAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0xMCB7XFxuICBiYWNrZ3JvdW5kOiAjMjEyMTIxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTExIHtcXG4gIGJhY2tncm91bmQ6ICNmNWY1ZjUgIWltcG9ydGFudDtcXG59XFxuLmJnLWdyZXktMTIge1xcbiAgYmFja2dyb3VuZDogI2VlZSAhaW1wb3J0YW50O1xcbn1cXG4uYmctZ3JleS0xMyB7XFxuICBiYWNrZ3JvdW5kOiAjYmRiZGJkICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ncmV5LTE0IHtcXG4gIGJhY2tncm91bmQ6ICM2MTYxNjEgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleSB7XFxuICBiYWNrZ3JvdW5kOiAjNjA3ZDhiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMSB7XFxuICBiYWNrZ3JvdW5kOiAjZWNlZmYxICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMiB7XFxuICBiYWNrZ3JvdW5kOiAjY2ZkOGRjICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMyB7XFxuICBiYWNrZ3JvdW5kOiAjYjBiZWM1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktNCB7XFxuICBiYWNrZ3JvdW5kOiAjOTBhNGFlICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktNSB7XFxuICBiYWNrZ3JvdW5kOiAjNzg5MDljICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktNiB7XFxuICBiYWNrZ3JvdW5kOiAjNjA3ZDhiICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktNyB7XFxuICBiYWNrZ3JvdW5kOiAjNTQ2ZTdhICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktOCB7XFxuICBiYWNrZ3JvdW5kOiAjNDU1YTY0ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktOSB7XFxuICBiYWNrZ3JvdW5kOiAjMzc0NzRmICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMTAge1xcbiAgYmFja2dyb3VuZDogIzI2MzIzOCAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTExIHtcXG4gIGJhY2tncm91bmQ6ICNjZmQ4ZGMgIWltcG9ydGFudDtcXG59XFxuLmJnLWJsdWUtZ3JleS0xMiB7XFxuICBiYWNrZ3JvdW5kOiAjYjBiZWM1ICFpbXBvcnRhbnQ7XFxufVxcbi5iZy1ibHVlLWdyZXktMTMge1xcbiAgYmFja2dyb3VuZDogIzc4OTA5YyAhaW1wb3J0YW50O1xcbn1cXG4uYmctYmx1ZS1ncmV5LTE0IHtcXG4gIGJhY2tncm91bmQ6ICM0NTVhNjQgIWltcG9ydGFudDtcXG59XFxuLnNoYWRvdy10cmFuc2l0aW9uIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC1ib3gtc2hhZG93IDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDtcXG4gIHRyYW5zaXRpb246IC13ZWJraXQtYm94LXNoYWRvdyAwLjI4cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpICFpbXBvcnRhbnQ7XFxuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDtcXG4gIHRyYW5zaXRpb246IGJveC1zaGFkb3cgMC4yOHMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKSwgLXdlYmtpdC1ib3gtc2hhZG93IDAuMjhzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgIWltcG9ydGFudDtcXG59XFxuLnNoYWRvdy0xIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAxcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxcHggLTFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTEge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xcHggM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMXB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0ycHggMXB4IC0xcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMXB4IDNweCByZ2JhKDAsMCwwLDAuMiksIDAgLTFweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMnB4IDFweCAtMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgMnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIDJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMXB4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0yIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMXB4IDVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDFweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTFweCA1cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0ycHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAxcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTMge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIDNweCA0cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAzcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDNweCAtMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTFweCA4cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0zcHggNHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAzcHggLTJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xcHggOHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtM3B4IDRweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggM3B4IC0ycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy00IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggNHB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIDRweCA1cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAxcHggMTBweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDJweCA0cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNHB4IDVweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxMHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtNCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTJweCA0cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgLTRweCA1cHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMXB4IDEwcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMnB4IDRweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtNHB4IDVweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0xcHggMTBweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTUge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgNXB4IDhweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA1cHggOHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgMXB4IDE0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC01IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtNXB4IDhweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0xcHggMTRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0zcHggNXB4IC0xcHggcmdiYSgwLDAsMCwwLjIpLCAwIC01cHggOHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTFweCAxNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctNiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA2cHggMTBweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgM3B4IDVweCAtMXB4IHJnYmEoMCwwLDAsMC4yKSwgMCA2cHggMTBweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDFweCAxOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtNiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgLTZweCAxMHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTFweCAxOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTNweCA1cHggLTFweCByZ2JhKDAsMCwwLDAuMiksIDAgLTZweCAxMHB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTFweCAxOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctNyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNHB4IDVweCAtMnB4IHJnYmEoMCwwLDAsMC4yKSwgMCA3cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAycHggMTZweCAxcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNXB4IC0ycHggcmdiYSgwLDAsMCwwLjIpLCAwIDdweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDJweCAxNnB4IDFweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTcge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC00cHggNXB4IC0ycHggcmdiYSgwLDAsMCwwLjIpLCAwIC03cHggMTBweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtMnB4IDE2cHggMXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTRweCA1cHggLTJweCByZ2JhKDAsMCwwLDAuMiksIDAgLTdweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0ycHggMTZweCAxcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy04IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA1cHggNXB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIDhweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDNweCAxNHB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDE0cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtOCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTVweCA1cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgLThweCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC0zcHggMTRweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtNXB4IDVweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtOHB4IDEwcHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAxNHB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTkge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDVweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgOXB4IDEycHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgM3B4IDE2cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCA5cHggMTJweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAzcHggMTZweCAycHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC05IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtNXB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtOXB4IDEycHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTNweCAxNnB4IDJweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC01cHggNnB4IC0zcHggcmdiYSgwLDAsMCwwLjIpLCAwIC05cHggMTJweCAxcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtM3B4IDE2cHggMnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTAge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDZweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgMTBweCAxNHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDRweCAxOHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDZweCA2cHggLTNweCByZ2JhKDAsMCwwLDAuMiksIDAgMTBweCAxNHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDRweCAxOHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTEwIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtNnB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTBweCAxNHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC00cHggMThweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtNnB4IDZweCAtM3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTBweCAxNHB4IDFweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC00cHggMThweCAzcHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xMSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNnB4IDdweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxMXB4IDE1cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNHB4IDIwcHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgNnB4IDdweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxMXB4IDE1cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNHB4IDIwcHggM3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTEge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC02cHggN3B4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xMXB4IDE1cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTRweCAyMHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC02cHggN3B4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xMXB4IDE1cHggMXB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTRweCAyMHB4IDNweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTEyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA3cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDEycHggMTdweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA1cHggMjJweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA3cHggOHB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIDEycHggMTdweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA1cHggMjJweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEycHggMTdweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNXB4IDIycHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgLTEycHggMTdweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNXB4IDIycHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTMge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTNweCAxOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDVweCAyNHB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDdweCA4cHggLTRweCByZ2JhKDAsMCwwLDAuMiksIDAgMTNweCAxOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDVweCAyNHB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTEzIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTNweCAxOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC01cHggMjRweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtN3B4IDhweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTNweCAxOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC01cHggMjRweCA0cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0xNCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgN3B4IDlweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNHB4IDIxcHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNXB4IDI2cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgN3B4IDlweCAtNHB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNHB4IDIxcHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNXB4IDI2cHggNHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC03cHggOXB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xNHB4IDIxcHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTVweCAyNnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC03cHggOXB4IC00cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0xNHB4IDIxcHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTVweCAyNnB4IDRweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTE1IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCA4cHggOXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE1cHggMjJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA2cHggMjhweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA4cHggOXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE1cHggMjJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA2cHggMjhweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0xNSB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLThweCA5cHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE1cHggMjJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDI4cHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLThweCA5cHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE1cHggMjJweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDI4cHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTYge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDhweCAxMHB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE2cHggMjRweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA2cHggMzBweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMTBweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxNnB4IDI0cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDMwcHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTYge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC04cHggMTBweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTZweCAyNHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC02cHggMzBweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtOHB4IDEwcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE2cHggMjRweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDMwcHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTcge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDhweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE3cHggMjZweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA2cHggMzJweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA4cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxN3B4IDI2cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgNnB4IDMycHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTcge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC04cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTdweCAyNnB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC02cHggMzJweCA1cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtOHB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE3cHggMjZweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtNnB4IDMycHggNXB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTgge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDlweCAxMXB4IC01cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE4cHggMjhweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA3cHggMzRweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA5cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxOHB4IDI4cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgN3B4IDM0cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTgge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC05cHggMTFweCAtNXB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMThweCAyOHB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC03cHggMzRweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtOXB4IDExcHggLTVweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE4cHggMjhweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtN3B4IDM0cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMTkge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDlweCAxMnB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDE5cHggMjlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCA3cHggMzZweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCA5cHggMTJweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAxOXB4IDI5cHggMnB4IHJnYmEoMCwwLDAsMC4xNCksIDAgN3B4IDM2cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMTkge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC05cHggMTJweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMTlweCAyOXB4IDJweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC03cHggMzZweCA2cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtOXB4IDEycHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTE5cHggMjlweCAycHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtN3B4IDM2cHggNnB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMjAge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAyMHB4IDMxcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOHB4IDM4cHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIwcHggMzFweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA4cHggMzhweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0yMCB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjBweCAzMXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC04cHggMzhweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMTBweCAxM3B4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yMHB4IDMxcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLThweCAzOHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTIxIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMjFweCAzM3B4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDhweCA0MHB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAyMXB4IDMzcHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOHB4IDQwcHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMjEge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xMHB4IDEzcHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIxcHggMzNweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOHB4IDQwcHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTEwcHggMTNweCAtNnB4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjFweCAzM3B4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC04cHggNDBweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy0yMiB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMTBweCAxNHB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIycHggMzVweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA4cHggNDJweCA3cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDE0cHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgMjJweCAzNXB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDhweCA0MnB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LXVwLTIyIHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAtMTBweCAxNHB4IC02cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yMnB4IDM1cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLThweCA0MnB4IDdweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIC0xMHB4IDE0cHggLTZweCByZ2JhKDAsMCwwLDAuMiksIDAgLTIycHggMzVweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOHB4IDQycHggN3B4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctMjMge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDExcHggMTRweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAyM3B4IDM2cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOXB4IDQ0cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTFweCAxNHB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIDIzcHggMzZweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCA5cHggNDRweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLnNoYWRvdy11cC0yMyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgLTExcHggMTRweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjNweCAzNnB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC05cHggNDRweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG4gICAgICAgICAgYm94LXNoYWRvdzogMCAtMTFweCAxNHB4IC03cHggcmdiYSgwLDAsMCwwLjIpLCAwIC0yM3B4IDM2cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgLTlweCA0NHB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbn1cXG4uc2hhZG93LTI0IHtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMCAxMXB4IDE1cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgMjRweCAzOHB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIDlweCA0NnB4IDhweCByZ2JhKDAsMCwwLDAuMTIpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDExcHggMTVweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAyNHB4IDM4cHggM3B4IHJnYmEoMCwwLDAsMC4xNCksIDAgOXB4IDQ2cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxufVxcbi5zaGFkb3ctdXAtMjQge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIC0xMXB4IDE1cHggLTdweCByZ2JhKDAsMCwwLDAuMiksIDAgLTI0cHggMzhweCAzcHggcmdiYSgwLDAsMCwwLjE0KSwgMCAtOXB4IDQ2cHggOHB4IHJnYmEoMCwwLDAsMC4xMik7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgLTExcHggMTVweCAtN3B4IHJnYmEoMCwwLDAsMC4yKSwgMCAtMjRweCAzOHB4IDNweCByZ2JhKDAsMCwwLDAuMTQpLCAwIC05cHggNDZweCA4cHggcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuLm5vLXNoYWRvdyxcXG4uc2hhZG93LTAge1xcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XFxuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLmluc2V0LXNoYWRvdyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgN3B4IDlweCAtN3B4IHJnYmEoMCwwLDAsMC43KSBpbnNldCAhaW1wb3J0YW50O1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDdweCA5cHggLTdweCByZ2JhKDAsMCwwLDAuNykgaW5zZXQgIWltcG9ydGFudDtcXG59XFxuLnotbWFyZ2luYWxzIHtcXG4gIHotaW5kZXg6IDIwMDA7XFxufVxcbi56LW5vdGlmeSB7XFxuICB6LWluZGV4OiA5NTAwO1xcbn1cXG4uei1mdWxsc2NyZWVuIHtcXG4gIHotaW5kZXg6IDYwMDA7XFxufVxcbi56LWluaGVyaXQge1xcbiAgei1pbmRleDogaW5oZXJpdCAhaW1wb3J0YW50O1xcbn1cXG4ucm93LFxcbi5jb2x1bW4sXFxuLmZsZXgge1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICAtbXMtZmxleC13cmFwOiB3cmFwO1xcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcXG59XFxuLnJvdy5pbmxpbmUsXFxuLmNvbHVtbi5pbmxpbmUsXFxuLmZsZXguaW5saW5lIHtcXG4gIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcXG4gIGRpc3BsYXk6IC1tcy1pbmxpbmUtZmxleGJveDtcXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbn1cXG4ucm93LnJldmVyc2Uge1xcbiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcXG59XFxuLmNvbHVtbiB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7XFxuICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxufVxcbi5jb2x1bW4ucmV2ZXJzZSB7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiByZXZlcnNlO1xcbiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XFxuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcXG59XFxuLndyYXAge1xcbiAgLW1zLWZsZXgtd3JhcDogd3JhcDtcXG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XFxufVxcbi5uby13cmFwIHtcXG4gIC1tcy1mbGV4LXdyYXA6IG5vd3JhcDtcXG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcXG59XFxuLnJldmVyc2Utd3JhcCB7XFxuICAtbXMtZmxleC13cmFwOiB3cmFwLXJldmVyc2U7XFxuICAgICAgZmxleC13cmFwOiB3cmFwLXJldmVyc2U7XFxufVxcbi5vcmRlci1maXJzdCB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAtOTk5OTtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogLTEwMDAwO1xcbiAgICAgICAgICBvcmRlcjogLTEwMDAwO1xcbn1cXG4ub3JkZXItbGFzdCB7XFxuICAtd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwOiAxMDAwMTtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogMTAwMDA7XFxuICAgICAgICAgIG9yZGVyOiAxMDAwMDtcXG59XFxuLm9yZGVyLW5vbmUge1xcbiAgLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cDogMTtcXG4gICAgICAtbXMtZmxleC1vcmRlcjogMDtcXG4gICAgICAgICAgb3JkZXI6IDA7XFxufVxcbi5qdXN0aWZ5LXN0YXJ0IHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IHN0YXJ0O1xcbiAgICAgIC1tcy1mbGV4LXBhY2s6IHN0YXJ0O1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XFxufVxcbi5qdXN0aWZ5LWVuZCB7XFxuICAtd2Via2l0LWJveC1wYWNrOiBlbmQ7XFxuICAgICAgLW1zLWZsZXgtcGFjazogZW5kO1xcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xcbn1cXG4uanVzdGlmeS1jZW50ZXIsXFxuLmZsZXgtY2VudGVyIHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjtcXG4gICAgICAtbXMtZmxleC1wYWNrOiBjZW50ZXI7XFxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG4uanVzdGlmeS1iZXR3ZWVuIHtcXG4gIC13ZWJraXQtYm94LXBhY2s6IGp1c3RpZnk7XFxuICAgICAgLW1zLWZsZXgtcGFjazoganVzdGlmeTtcXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbn1cXG4uanVzdGlmeS1hcm91bmQge1xcbiAgLW1zLWZsZXgtcGFjazogZGlzdHJpYnV0ZTtcXG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcXG59XFxuLml0ZW1zLXN0YXJ0IHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDtcXG4gICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xcbn1cXG4uaXRlbXMtZW5kIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBlbmQ7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGVuZDtcXG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xcbn1cXG4uaXRlbXMtY2VudGVyLFxcbi5mbGV4LWNlbnRlciB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBjZW50ZXI7XFxuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxufVxcbi5pdGVtcy1iYXNlbGluZSB7XFxuICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmU7XFxuICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XFxufVxcbi5pdGVtcy1zdHJldGNoIHtcXG4gIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoO1xcbiAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoO1xcbiAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcXG59XFxuLmNvbnRlbnQtc3RhcnQge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdGFydDtcXG4gICAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xcbn1cXG4uY29udGVudC1lbmQge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBlbmQ7XFxuICAgICAgYWxpZ24tY29udGVudDogZmxleC1lbmQ7XFxufVxcbi5jb250ZW50LWNlbnRlciB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IGNlbnRlcjtcXG4gICAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XFxufVxcbi5jb250ZW50LXN0cmV0Y2gge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBzdHJldGNoO1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IHN0cmV0Y2g7XFxufVxcbi5jb250ZW50LWJldHdlZW4ge1xcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiBqdXN0aWZ5O1xcbiAgICAgIGFsaWduLWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxufVxcbi5jb250ZW50LWFyb3VuZCB7XFxuICAtbXMtZmxleC1saW5lLXBhY2s6IGRpc3RyaWJ1dGU7XFxuICAgICAgYWxpZ24tY29udGVudDogc3BhY2UtYXJvdW5kO1xcbn1cXG4uc2VsZi1zdGFydCB7XFxuICAtbXMtZmxleC1pdGVtLWFsaWduOiBzdGFydDtcXG4gICAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0O1xcbn1cXG4uc2VsZi1lbmQge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogZW5kO1xcbiAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xcbn1cXG4uc2VsZi1jZW50ZXIge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogY2VudGVyO1xcbiAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcXG59XFxuLnNlbGYtYmFzZWxpbmUge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogYmFzZWxpbmU7XFxuICAgICAgYWxpZ24tc2VsZjogYmFzZWxpbmU7XFxufVxcbi5zZWxmLXN0cmV0Y2gge1xcbiAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDtcXG4gICAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xcbn1cXG4uZ3V0dGVyLXgtbm9uZSxcXG4uZ3V0dGVyLW5vbmUge1xcbiAgbWFyZ2luLWxlZnQ6IDA7XFxufVxcbi5ndXR0ZXIteC1ub25lID4gZGl2LFxcbi5ndXR0ZXItbm9uZSA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxufVxcbi5ndXR0ZXIteS1ub25lLFxcbi5ndXR0ZXItbm9uZSB7XFxuICBtYXJnaW4tdG9wOiAwO1xcbn1cXG4uZ3V0dGVyLXktbm9uZSA+IGRpdixcXG4uZ3V0dGVyLW5vbmUgPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5ndXR0ZXIteC14cyxcXG4uZ3V0dGVyLXhzIHtcXG4gIG1hcmdpbi1sZWZ0OiAtOHB4O1xcbn1cXG4uZ3V0dGVyLXgteHMgPiBkaXYsXFxuLmd1dHRlci14cyA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuLmd1dHRlci15LXhzLFxcbi5ndXR0ZXIteHMge1xcbiAgbWFyZ2luLXRvcDogLThweDtcXG59XFxuLmd1dHRlci15LXhzID4gZGl2LFxcbi5ndXR0ZXIteHMgPiBkaXYge1xcbiAgcGFkZGluZy10b3A6IDhweDtcXG59XFxuLmd1dHRlci14LXNtLFxcbi5ndXR0ZXItc20ge1xcbiAgbWFyZ2luLWxlZnQ6IC0xNnB4O1xcbn1cXG4uZ3V0dGVyLXgtc20gPiBkaXYsXFxuLmd1dHRlci1zbSA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XFxufVxcbi5ndXR0ZXIteS1zbSxcXG4uZ3V0dGVyLXNtIHtcXG4gIG1hcmdpbi10b3A6IC0xNnB4O1xcbn1cXG4uZ3V0dGVyLXktc20gPiBkaXYsXFxuLmd1dHRlci1zbSA+IGRpdiB7XFxuICBwYWRkaW5nLXRvcDogMTZweDtcXG59XFxuLmd1dHRlci14LW1kLFxcbi5ndXR0ZXItbWQge1xcbiAgbWFyZ2luLWxlZnQ6IC0zMnB4O1xcbn1cXG4uZ3V0dGVyLXgtbWQgPiBkaXYsXFxuLmd1dHRlci1tZCA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDMycHg7XFxufVxcbi5ndXR0ZXIteS1tZCxcXG4uZ3V0dGVyLW1kIHtcXG4gIG1hcmdpbi10b3A6IC0zMnB4O1xcbn1cXG4uZ3V0dGVyLXktbWQgPiBkaXYsXFxuLmd1dHRlci1tZCA+IGRpdiB7XFxuICBwYWRkaW5nLXRvcDogMzJweDtcXG59XFxuLmd1dHRlci14LWxnLFxcbi5ndXR0ZXItbGcge1xcbiAgbWFyZ2luLWxlZnQ6IC00OHB4O1xcbn1cXG4uZ3V0dGVyLXgtbGcgPiBkaXYsXFxuLmd1dHRlci1sZyA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDQ4cHg7XFxufVxcbi5ndXR0ZXIteS1sZyxcXG4uZ3V0dGVyLWxnIHtcXG4gIG1hcmdpbi10b3A6IC00OHB4O1xcbn1cXG4uZ3V0dGVyLXktbGcgPiBkaXYsXFxuLmd1dHRlci1sZyA+IGRpdiB7XFxuICBwYWRkaW5nLXRvcDogNDhweDtcXG59XFxuLmd1dHRlci14LXhsLFxcbi5ndXR0ZXIteGwge1xcbiAgbWFyZ2luLWxlZnQ6IC02NHB4O1xcbn1cXG4uZ3V0dGVyLXgteGwgPiBkaXYsXFxuLmd1dHRlci14bCA+IGRpdiB7XFxuICBwYWRkaW5nLWxlZnQ6IDY0cHg7XFxufVxcbi5ndXR0ZXIteS14bCxcXG4uZ3V0dGVyLXhsIHtcXG4gIG1hcmdpbi10b3A6IC02NHB4O1xcbn1cXG4uZ3V0dGVyLXkteGwgPiBkaXYsXFxuLmd1dHRlci14bCA+IGRpdiB7XFxuICBwYWRkaW5nLXRvcDogNjRweDtcXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDApIHtcXG4gIC5yb3cgPiAuY29sLFxcbiAgLnJvdyA+IC5jb2wteHMsXFxuICAucm93ID4gLmNvbC1hdXRvLFxcbiAgLnJvdyA+IC5jb2wteHMtYXV0byxcXG4gIC5yb3cgPiAuY29sLWdyb3csXFxuICAucm93ID4gLmNvbC14cy1ncm93LFxcbiAgLnJvdyA+IC5jb2wtMCxcXG4gIC5yb3cgPiAuY29sLXhzLTAsXFxuICAucm93ID4gLmNvbC0xLFxcbiAgLnJvdyA+IC5jb2wteHMtMSxcXG4gIC5yb3cgPiAuY29sLTIsXFxuICAucm93ID4gLmNvbC14cy0yLFxcbiAgLnJvdyA+IC5jb2wtMyxcXG4gIC5yb3cgPiAuY29sLXhzLTMsXFxuICAucm93ID4gLmNvbC00LFxcbiAgLnJvdyA+IC5jb2wteHMtNCxcXG4gIC5yb3cgPiAuY29sLTUsXFxuICAucm93ID4gLmNvbC14cy01LFxcbiAgLnJvdyA+IC5jb2wtNixcXG4gIC5yb3cgPiAuY29sLXhzLTYsXFxuICAucm93ID4gLmNvbC03LFxcbiAgLnJvdyA+IC5jb2wteHMtNyxcXG4gIC5yb3cgPiAuY29sLTgsXFxuICAucm93ID4gLmNvbC14cy04LFxcbiAgLnJvdyA+IC5jb2wtOSxcXG4gIC5yb3cgPiAuY29sLXhzLTksXFxuICAucm93ID4gLmNvbC0xMCxcXG4gIC5yb3cgPiAuY29sLXhzLTEwLFxcbiAgLnJvdyA+IC5jb2wtMTEsXFxuICAucm93ID4gLmNvbC14cy0xMSxcXG4gIC5yb3cgPiAuY29sLTEyLFxcbiAgLnJvdyA+IC5jb2wteHMtMTIsXFxuICAuZmxleCA+IC5jb2wsXFxuICAuZmxleCA+IC5jb2wteHMsXFxuICAuZmxleCA+IC5jb2wtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC14cy1hdXRvLFxcbiAgLmZsZXggPiAuY29sLWdyb3csXFxuICAuZmxleCA+IC5jb2wteHMtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC0wLFxcbiAgLmZsZXggPiAuY29sLXhzLTAsXFxuICAuZmxleCA+IC5jb2wtMSxcXG4gIC5mbGV4ID4gLmNvbC14cy0xLFxcbiAgLmZsZXggPiAuY29sLTIsXFxuICAuZmxleCA+IC5jb2wteHMtMixcXG4gIC5mbGV4ID4gLmNvbC0zLFxcbiAgLmZsZXggPiAuY29sLXhzLTMsXFxuICAuZmxleCA+IC5jb2wtNCxcXG4gIC5mbGV4ID4gLmNvbC14cy00LFxcbiAgLmZsZXggPiAuY29sLTUsXFxuICAuZmxleCA+IC5jb2wteHMtNSxcXG4gIC5mbGV4ID4gLmNvbC02LFxcbiAgLmZsZXggPiAuY29sLXhzLTYsXFxuICAuZmxleCA+IC5jb2wtNyxcXG4gIC5mbGV4ID4gLmNvbC14cy03LFxcbiAgLmZsZXggPiAuY29sLTgsXFxuICAuZmxleCA+IC5jb2wteHMtOCxcXG4gIC5mbGV4ID4gLmNvbC05LFxcbiAgLmZsZXggPiAuY29sLXhzLTksXFxuICAuZmxleCA+IC5jb2wtMTAsXFxuICAuZmxleCA+IC5jb2wteHMtMTAsXFxuICAuZmxleCA+IC5jb2wtMTEsXFxuICAuZmxleCA+IC5jb2wteHMtMTEsXFxuICAuZmxleCA+IC5jb2wtMTIsXFxuICAuZmxleCA+IC5jb2wteHMtMTIge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgbWluLXdpZHRoOiAwO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLFxcbiAgLmNvbHVtbiA+IC5jb2wtYXV0byxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLWF1dG8sXFxuICAuY29sdW1uID4gLmNvbC1ncm93LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLTAsXFxuICAuY29sdW1uID4gLmNvbC14cy0wLFxcbiAgLmNvbHVtbiA+IC5jb2wtMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTEsXFxuICAuY29sdW1uID4gLmNvbC0yLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMixcXG4gIC5jb2x1bW4gPiAuY29sLTMsXFxuICAuY29sdW1uID4gLmNvbC14cy0zLFxcbiAgLmNvbHVtbiA+IC5jb2wtNCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTQsXFxuICAuY29sdW1uID4gLmNvbC01LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNSxcXG4gIC5jb2x1bW4gPiAuY29sLTYsXFxuICAuY29sdW1uID4gLmNvbC14cy02LFxcbiAgLmNvbHVtbiA+IC5jb2wtNyxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTcsXFxuICAuY29sdW1uID4gLmNvbC04LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtOCxcXG4gIC5jb2x1bW4gPiAuY29sLTksXFxuICAuY29sdW1uID4gLmNvbC14cy05LFxcbiAgLmNvbHVtbiA+IC5jb2wtMTAsXFxuICAuY29sdW1uID4gLmNvbC14cy0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMTEsXFxuICAuY29sdW1uID4gLmNvbC0xMixcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTEyLFxcbiAgLmZsZXggPiAuY29sLFxcbiAgLmZsZXggPiAuY29sLXhzLFxcbiAgLmZsZXggPiAuY29sLWF1dG8sXFxuICAuZmxleCA+IC5jb2wteHMtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1ncm93LFxcbiAgLmZsZXggPiAuY29sLXhzLWdyb3csXFxuICAuZmxleCA+IC5jb2wtMCxcXG4gIC5mbGV4ID4gLmNvbC14cy0wLFxcbiAgLmZsZXggPiAuY29sLTEsXFxuICAuZmxleCA+IC5jb2wteHMtMSxcXG4gIC5mbGV4ID4gLmNvbC0yLFxcbiAgLmZsZXggPiAuY29sLXhzLTIsXFxuICAuZmxleCA+IC5jb2wtMyxcXG4gIC5mbGV4ID4gLmNvbC14cy0zLFxcbiAgLmZsZXggPiAuY29sLTQsXFxuICAuZmxleCA+IC5jb2wteHMtNCxcXG4gIC5mbGV4ID4gLmNvbC01LFxcbiAgLmZsZXggPiAuY29sLXhzLTUsXFxuICAuZmxleCA+IC5jb2wtNixcXG4gIC5mbGV4ID4gLmNvbC14cy02LFxcbiAgLmZsZXggPiAuY29sLTcsXFxuICAuZmxleCA+IC5jb2wteHMtNyxcXG4gIC5mbGV4ID4gLmNvbC04LFxcbiAgLmZsZXggPiAuY29sLXhzLTgsXFxuICAuZmxleCA+IC5jb2wtOSxcXG4gIC5mbGV4ID4gLmNvbC14cy05LFxcbiAgLmZsZXggPiAuY29sLTEwLFxcbiAgLmZsZXggPiAuY29sLXhzLTEwLFxcbiAgLmZsZXggPiAuY29sLTExLFxcbiAgLmZsZXggPiAuY29sLXhzLTExLFxcbiAgLmZsZXggPiAuY29sLTEyLFxcbiAgLmZsZXggPiAuY29sLXhzLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICBtaW4taGVpZ2h0OiAwO1xcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbCxcXG4gIC5jb2wteHMge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxMDAwMDtcXG4gICAgICAgIC1tcy1mbGV4OiAxMDAwMCAxIDAlO1xcbiAgICAgICAgICAgIGZsZXg6IDEwMDAwIDEgMCU7XFxuICB9XFxuICAuY29sLWF1dG8sXFxuICAuY29sLXhzLWF1dG8sXFxuICAuY29sLTAsXFxuICAuY29sLXhzLTAsXFxuICAuY29sLTEsXFxuICAuY29sLXhzLTEsXFxuICAuY29sLTIsXFxuICAuY29sLXhzLTIsXFxuICAuY29sLTMsXFxuICAuY29sLXhzLTMsXFxuICAuY29sLTQsXFxuICAuY29sLXhzLTQsXFxuICAuY29sLTUsXFxuICAuY29sLXhzLTUsXFxuICAuY29sLTYsXFxuICAuY29sLXhzLTYsXFxuICAuY29sLTcsXFxuICAuY29sLXhzLTcsXFxuICAuY29sLTgsXFxuICAuY29sLXhzLTgsXFxuICAuY29sLTksXFxuICAuY29sLXhzLTksXFxuICAuY29sLTEwLFxcbiAgLmNvbC14cy0xMCxcXG4gIC5jb2wtMTEsXFxuICAuY29sLXhzLTExLFxcbiAgLmNvbC0xMixcXG4gIC5jb2wteHMtMTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgfVxcbiAgLmNvbC1ncm93LFxcbiAgLmNvbC14cy1ncm93IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTAsXFxuICAucm93ID4gLmNvbC14cy0wIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0wLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTAsXFxuICAuY29sdW1uID4gLmNvbC14cy0wIHtcXG4gICAgaGVpZ2h0OiAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0xLFxcbiAgLnJvdyA+IC5jb2wteHMtMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0xLFxcbiAgLnJvdyA+IC5vZmZzZXQteHMtMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTEge1xcbiAgICBoZWlnaHQ6IDguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMixcXG4gIC5yb3cgPiAuY29sLXhzLTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxNi42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTIsXFxuICAucm93ID4gLm9mZnNldC14cy0yIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMixcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTIge1xcbiAgICBoZWlnaHQ6IDE2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTMsXFxuICAucm93ID4gLmNvbC14cy0zIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMjUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMyxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTMge1xcbiAgICBtYXJnaW4tbGVmdDogMjUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMyxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTMge1xcbiAgICBoZWlnaHQ6IDI1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC00LFxcbiAgLnJvdyA+IC5jb2wteHMtNCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtNCxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTQge1xcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC00LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNCB7XFxuICAgIGhlaWdodDogMzMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtNSxcXG4gIC5yb3cgPiAuY29sLXhzLTUge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA0MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTUsXFxuICAucm93ID4gLm9mZnNldC14cy01IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtNSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTUge1xcbiAgICBoZWlnaHQ6IDQxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTYsXFxuICAucm93ID4gLmNvbC14cy02IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtNixcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTYge1xcbiAgICBtYXJnaW4tbGVmdDogNTAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtNixcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTYge1xcbiAgICBoZWlnaHQ6IDUwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC03LFxcbiAgLnJvdyA+IC5jb2wteHMtNyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtNyxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTcge1xcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC03LFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtNyB7XFxuICAgIGhlaWdodDogNTguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtOCxcXG4gIC5yb3cgPiAuY29sLXhzLTgge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LTgsXFxuICAucm93ID4gLm9mZnNldC14cy04IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtOCxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTgge1xcbiAgICBoZWlnaHQ6IDY2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTksXFxuICAucm93ID4gLmNvbC14cy05IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNzUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtOSxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTkge1xcbiAgICBtYXJnaW4tbGVmdDogNzUlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtOSxcXG4gIC5jb2x1bW4gPiAuY29sLXhzLTkge1xcbiAgICBoZWlnaHQ6IDc1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC0xMCxcXG4gIC5yb3cgPiAuY29sLXhzLTEwIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogODMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC0xMCxcXG4gIC5yb3cgPiAub2Zmc2V0LXhzLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMTAsXFxuICAuY29sdW1uID4gLmNvbC14cy0xMCB7XFxuICAgIGhlaWdodDogODMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtMTEsXFxuICAucm93ID4gLmNvbC14cy0xMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDkxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMTEsXFxuICAucm93ID4gLm9mZnNldC14cy0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wteHMtMTEge1xcbiAgICBoZWlnaHQ6IDkxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLTEyLFxcbiAgLnJvdyA+IC5jb2wteHMtMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtMTIsXFxuICAucm93ID4gLm9mZnNldC14cy0xMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtMTIsXFxuICAuY29sdW1uID4gLmNvbC14cy0xMiB7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA1NzZweCkge1xcbiAgLnJvdyA+IC5jb2wtc20sXFxuICAucm93ID4gLmNvbC1zbS1hdXRvLFxcbiAgLnJvdyA+IC5jb2wtc20tZ3JvdyxcXG4gIC5yb3cgPiAuY29sLXNtLTAsXFxuICAucm93ID4gLmNvbC1zbS0xLFxcbiAgLnJvdyA+IC5jb2wtc20tMixcXG4gIC5yb3cgPiAuY29sLXNtLTMsXFxuICAucm93ID4gLmNvbC1zbS00LFxcbiAgLnJvdyA+IC5jb2wtc20tNSxcXG4gIC5yb3cgPiAuY29sLXNtLTYsXFxuICAucm93ID4gLmNvbC1zbS03LFxcbiAgLnJvdyA+IC5jb2wtc20tOCxcXG4gIC5yb3cgPiAuY29sLXNtLTksXFxuICAucm93ID4gLmNvbC1zbS0xMCxcXG4gIC5yb3cgPiAuY29sLXNtLTExLFxcbiAgLnJvdyA+IC5jb2wtc20tMTIsXFxuICAuZmxleCA+IC5jb2wtc20sXFxuICAuZmxleCA+IC5jb2wtc20tYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1zbS1ncm93LFxcbiAgLmZsZXggPiAuY29sLXNtLTAsXFxuICAuZmxleCA+IC5jb2wtc20tMSxcXG4gIC5mbGV4ID4gLmNvbC1zbS0yLFxcbiAgLmZsZXggPiAuY29sLXNtLTMsXFxuICAuZmxleCA+IC5jb2wtc20tNCxcXG4gIC5mbGV4ID4gLmNvbC1zbS01LFxcbiAgLmZsZXggPiAuY29sLXNtLTYsXFxuICAuZmxleCA+IC5jb2wtc20tNyxcXG4gIC5mbGV4ID4gLmNvbC1zbS04LFxcbiAgLmZsZXggPiAuY29sLXNtLTksXFxuICAuZmxleCA+IC5jb2wtc20tMTAsXFxuICAuZmxleCA+IC5jb2wtc20tMTEsXFxuICAuZmxleCA+IC5jb2wtc20tMTIge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgbWluLXdpZHRoOiAwO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbSxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLWF1dG8sXFxuICAuY29sdW1uID4gLmNvbC1zbS1ncm93LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMCxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTEsXFxuICAuY29sdW1uID4gLmNvbC1zbS0yLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMyxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTQsXFxuICAuY29sdW1uID4gLmNvbC1zbS01LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNixcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTcsXFxuICAuY29sdW1uID4gLmNvbC1zbS04LFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tOSxcXG4gIC5jb2x1bW4gPiAuY29sLXNtLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMTEsXFxuICAuY29sdW1uID4gLmNvbC1zbS0xMixcXG4gIC5mbGV4ID4gLmNvbC1zbSxcXG4gIC5mbGV4ID4gLmNvbC1zbS1hdXRvLFxcbiAgLmZsZXggPiAuY29sLXNtLWdyb3csXFxuICAuZmxleCA+IC5jb2wtc20tMCxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xLFxcbiAgLmZsZXggPiAuY29sLXNtLTIsXFxuICAuZmxleCA+IC5jb2wtc20tMyxcXG4gIC5mbGV4ID4gLmNvbC1zbS00LFxcbiAgLmZsZXggPiAuY29sLXNtLTUsXFxuICAuZmxleCA+IC5jb2wtc20tNixcXG4gIC5mbGV4ID4gLmNvbC1zbS03LFxcbiAgLmZsZXggPiAuY29sLXNtLTgsXFxuICAuZmxleCA+IC5jb2wtc20tOSxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xMCxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xMSxcXG4gIC5mbGV4ID4gLmNvbC1zbS0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgbWluLWhlaWdodDogMDtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gIH1cXG4gIC5jb2wtc20ge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxMDAwMDtcXG4gICAgICAgIC1tcy1mbGV4OiAxMDAwMCAxIDAlO1xcbiAgICAgICAgICAgIGZsZXg6IDEwMDAwIDEgMCU7XFxuICB9XFxuICAuY29sLXNtLWF1dG8sXFxuICAuY29sLXNtLTAsXFxuICAuY29sLXNtLTEsXFxuICAuY29sLXNtLTIsXFxuICAuY29sLXNtLTMsXFxuICAuY29sLXNtLTQsXFxuICAuY29sLXNtLTUsXFxuICAuY29sLXNtLTYsXFxuICAuY29sLXNtLTcsXFxuICAuY29sLXNtLTgsXFxuICAuY29sLXNtLTksXFxuICAuY29sLXNtLTEwLFxcbiAgLmNvbC1zbS0xMSxcXG4gIC5jb2wtc20tMTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgfVxcbiAgLmNvbC1zbS1ncm93IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0wIHtcXG4gICAgaGVpZ2h0OiAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0xIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTEge1xcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTEge1xcbiAgICBoZWlnaHQ6IDguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDE2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTIge1xcbiAgICBoZWlnaHQ6IDE2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTMge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAyNSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTMge1xcbiAgICBoZWlnaHQ6IDI1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS00IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMzMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNCB7XFxuICAgIGhlaWdodDogMzMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tNSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDQxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTUge1xcbiAgICBoZWlnaHQ6IDQxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTYge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS02IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTYge1xcbiAgICBoZWlnaHQ6IDUwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS03IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS03IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tNyB7XFxuICAgIGhlaWdodDogNTguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tOCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDY2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTgge1xcbiAgICBoZWlnaHQ6IDY2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTkge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA3NSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1zbS05IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXNtLTkge1xcbiAgICBoZWlnaHQ6IDc1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1zbS0xMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtc20tMTAge1xcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0xMCB7XFxuICAgIGhlaWdodDogODMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtc20tMTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA5MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTExIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtc20tMTEge1xcbiAgICBoZWlnaHQ6IDkxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXNtLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXNtLTEyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1zbS0xMiB7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xcbiAgLnJvdyA+IC5jb2wtbWQsXFxuICAucm93ID4gLmNvbC1tZC1hdXRvLFxcbiAgLnJvdyA+IC5jb2wtbWQtZ3JvdyxcXG4gIC5yb3cgPiAuY29sLW1kLTAsXFxuICAucm93ID4gLmNvbC1tZC0xLFxcbiAgLnJvdyA+IC5jb2wtbWQtMixcXG4gIC5yb3cgPiAuY29sLW1kLTMsXFxuICAucm93ID4gLmNvbC1tZC00LFxcbiAgLnJvdyA+IC5jb2wtbWQtNSxcXG4gIC5yb3cgPiAuY29sLW1kLTYsXFxuICAucm93ID4gLmNvbC1tZC03LFxcbiAgLnJvdyA+IC5jb2wtbWQtOCxcXG4gIC5yb3cgPiAuY29sLW1kLTksXFxuICAucm93ID4gLmNvbC1tZC0xMCxcXG4gIC5yb3cgPiAuY29sLW1kLTExLFxcbiAgLnJvdyA+IC5jb2wtbWQtMTIsXFxuICAuZmxleCA+IC5jb2wtbWQsXFxuICAuZmxleCA+IC5jb2wtbWQtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1tZC1ncm93LFxcbiAgLmZsZXggPiAuY29sLW1kLTAsXFxuICAuZmxleCA+IC5jb2wtbWQtMSxcXG4gIC5mbGV4ID4gLmNvbC1tZC0yLFxcbiAgLmZsZXggPiAuY29sLW1kLTMsXFxuICAuZmxleCA+IC5jb2wtbWQtNCxcXG4gIC5mbGV4ID4gLmNvbC1tZC01LFxcbiAgLmZsZXggPiAuY29sLW1kLTYsXFxuICAuZmxleCA+IC5jb2wtbWQtNyxcXG4gIC5mbGV4ID4gLmNvbC1tZC04LFxcbiAgLmZsZXggPiAuY29sLW1kLTksXFxuICAuZmxleCA+IC5jb2wtbWQtMTAsXFxuICAuZmxleCA+IC5jb2wtbWQtMTEsXFxuICAuZmxleCA+IC5jb2wtbWQtMTIge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgbWluLXdpZHRoOiAwO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZCxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLWF1dG8sXFxuICAuY29sdW1uID4gLmNvbC1tZC1ncm93LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMCxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTEsXFxuICAuY29sdW1uID4gLmNvbC1tZC0yLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMyxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTQsXFxuICAuY29sdW1uID4gLmNvbC1tZC01LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNixcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTcsXFxuICAuY29sdW1uID4gLmNvbC1tZC04LFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtOSxcXG4gIC5jb2x1bW4gPiAuY29sLW1kLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMTEsXFxuICAuY29sdW1uID4gLmNvbC1tZC0xMixcXG4gIC5mbGV4ID4gLmNvbC1tZCxcXG4gIC5mbGV4ID4gLmNvbC1tZC1hdXRvLFxcbiAgLmZsZXggPiAuY29sLW1kLWdyb3csXFxuICAuZmxleCA+IC5jb2wtbWQtMCxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xLFxcbiAgLmZsZXggPiAuY29sLW1kLTIsXFxuICAuZmxleCA+IC5jb2wtbWQtMyxcXG4gIC5mbGV4ID4gLmNvbC1tZC00LFxcbiAgLmZsZXggPiAuY29sLW1kLTUsXFxuICAuZmxleCA+IC5jb2wtbWQtNixcXG4gIC5mbGV4ID4gLmNvbC1tZC03LFxcbiAgLmZsZXggPiAuY29sLW1kLTgsXFxuICAuZmxleCA+IC5jb2wtbWQtOSxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xMCxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xMSxcXG4gIC5mbGV4ID4gLmNvbC1tZC0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgbWluLWhlaWdodDogMDtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gIH1cXG4gIC5jb2wtbWQge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxMDAwMDtcXG4gICAgICAgIC1tcy1mbGV4OiAxMDAwMCAxIDAlO1xcbiAgICAgICAgICAgIGZsZXg6IDEwMDAwIDEgMCU7XFxuICB9XFxuICAuY29sLW1kLWF1dG8sXFxuICAuY29sLW1kLTAsXFxuICAuY29sLW1kLTEsXFxuICAuY29sLW1kLTIsXFxuICAuY29sLW1kLTMsXFxuICAuY29sLW1kLTQsXFxuICAuY29sLW1kLTUsXFxuICAuY29sLW1kLTYsXFxuICAuY29sLW1kLTcsXFxuICAuY29sLW1kLTgsXFxuICAuY29sLW1kLTksXFxuICAuY29sLW1kLTEwLFxcbiAgLmNvbC1tZC0xMSxcXG4gIC5jb2wtbWQtMTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgfVxcbiAgLmNvbC1tZC1ncm93IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0wIHtcXG4gICAgaGVpZ2h0OiAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0xIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTEge1xcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTEge1xcbiAgICBoZWlnaHQ6IDguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDE2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTIge1xcbiAgICBoZWlnaHQ6IDE2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTMge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAyNSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTMge1xcbiAgICBoZWlnaHQ6IDI1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC00IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMzMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNCB7XFxuICAgIGhlaWdodDogMzMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtNSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDQxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTUge1xcbiAgICBoZWlnaHQ6IDQxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTYge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC02IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTYge1xcbiAgICBoZWlnaHQ6IDUwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC03IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC03IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtNyB7XFxuICAgIGhlaWdodDogNTguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtOCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDY2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTgge1xcbiAgICBoZWlnaHQ6IDY2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTkge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA3NSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1tZC05IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLW1kLTkge1xcbiAgICBoZWlnaHQ6IDc1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1tZC0xMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbWQtMTAge1xcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0xMCB7XFxuICAgIGhlaWdodDogODMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbWQtMTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA5MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTExIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbWQtMTEge1xcbiAgICBoZWlnaHQ6IDkxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLW1kLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LW1kLTEyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1tZC0xMiB7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xcbiAgLnJvdyA+IC5jb2wtbGcsXFxuICAucm93ID4gLmNvbC1sZy1hdXRvLFxcbiAgLnJvdyA+IC5jb2wtbGctZ3JvdyxcXG4gIC5yb3cgPiAuY29sLWxnLTAsXFxuICAucm93ID4gLmNvbC1sZy0xLFxcbiAgLnJvdyA+IC5jb2wtbGctMixcXG4gIC5yb3cgPiAuY29sLWxnLTMsXFxuICAucm93ID4gLmNvbC1sZy00LFxcbiAgLnJvdyA+IC5jb2wtbGctNSxcXG4gIC5yb3cgPiAuY29sLWxnLTYsXFxuICAucm93ID4gLmNvbC1sZy03LFxcbiAgLnJvdyA+IC5jb2wtbGctOCxcXG4gIC5yb3cgPiAuY29sLWxnLTksXFxuICAucm93ID4gLmNvbC1sZy0xMCxcXG4gIC5yb3cgPiAuY29sLWxnLTExLFxcbiAgLnJvdyA+IC5jb2wtbGctMTIsXFxuICAuZmxleCA+IC5jb2wtbGcsXFxuICAuZmxleCA+IC5jb2wtbGctYXV0byxcXG4gIC5mbGV4ID4gLmNvbC1sZy1ncm93LFxcbiAgLmZsZXggPiAuY29sLWxnLTAsXFxuICAuZmxleCA+IC5jb2wtbGctMSxcXG4gIC5mbGV4ID4gLmNvbC1sZy0yLFxcbiAgLmZsZXggPiAuY29sLWxnLTMsXFxuICAuZmxleCA+IC5jb2wtbGctNCxcXG4gIC5mbGV4ID4gLmNvbC1sZy01LFxcbiAgLmZsZXggPiAuY29sLWxnLTYsXFxuICAuZmxleCA+IC5jb2wtbGctNyxcXG4gIC5mbGV4ID4gLmNvbC1sZy04LFxcbiAgLmZsZXggPiAuY29sLWxnLTksXFxuICAuZmxleCA+IC5jb2wtbGctMTAsXFxuICAuZmxleCA+IC5jb2wtbGctMTEsXFxuICAuZmxleCA+IC5jb2wtbGctMTIge1xcbiAgICB3aWR0aDogYXV0bztcXG4gICAgbWluLXdpZHRoOiAwO1xcbiAgICBtYXgtd2lkdGg6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZyxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLWF1dG8sXFxuICAuY29sdW1uID4gLmNvbC1sZy1ncm93LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMCxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTEsXFxuICAuY29sdW1uID4gLmNvbC1sZy0yLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMyxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTQsXFxuICAuY29sdW1uID4gLmNvbC1sZy01LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNixcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTcsXFxuICAuY29sdW1uID4gLmNvbC1sZy04LFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctOSxcXG4gIC5jb2x1bW4gPiAuY29sLWxnLTEwLFxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMTEsXFxuICAuY29sdW1uID4gLmNvbC1sZy0xMixcXG4gIC5mbGV4ID4gLmNvbC1sZyxcXG4gIC5mbGV4ID4gLmNvbC1sZy1hdXRvLFxcbiAgLmZsZXggPiAuY29sLWxnLWdyb3csXFxuICAuZmxleCA+IC5jb2wtbGctMCxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xLFxcbiAgLmZsZXggPiAuY29sLWxnLTIsXFxuICAuZmxleCA+IC5jb2wtbGctMyxcXG4gIC5mbGV4ID4gLmNvbC1sZy00LFxcbiAgLmZsZXggPiAuY29sLWxnLTUsXFxuICAuZmxleCA+IC5jb2wtbGctNixcXG4gIC5mbGV4ID4gLmNvbC1sZy03LFxcbiAgLmZsZXggPiAuY29sLWxnLTgsXFxuICAuZmxleCA+IC5jb2wtbGctOSxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xMCxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xMSxcXG4gIC5mbGV4ID4gLmNvbC1sZy0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgbWluLWhlaWdodDogMDtcXG4gICAgbWF4LWhlaWdodDogMTAwJTtcXG4gIH1cXG4gIC5jb2wtbGcge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAxMDAwMDtcXG4gICAgICAgIC1tcy1mbGV4OiAxMDAwMCAxIDAlO1xcbiAgICAgICAgICAgIGZsZXg6IDEwMDAwIDEgMCU7XFxuICB9XFxuICAuY29sLWxnLWF1dG8sXFxuICAuY29sLWxnLTAsXFxuICAuY29sLWxnLTEsXFxuICAuY29sLWxnLTIsXFxuICAuY29sLWxnLTMsXFxuICAuY29sLWxnLTQsXFxuICAuY29sLWxnLTUsXFxuICAuY29sLWxnLTYsXFxuICAuY29sLWxnLTcsXFxuICAuY29sLWxnLTgsXFxuICAuY29sLWxnLTksXFxuICAuY29sLWxnLTEwLFxcbiAgLmNvbC1sZy0xMSxcXG4gIC5jb2wtbGctMTIge1xcbiAgICAtd2Via2l0LWJveC1mbGV4OiAwO1xcbiAgICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvO1xcbiAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xcbiAgfVxcbiAgLmNvbC1sZy1ncm93IHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTtcXG4gICAgICAgIC1tcy1mbGV4OiAxIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTAge1xcbiAgICBtYXJnaW4tbGVmdDogMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0wIHtcXG4gICAgaGVpZ2h0OiAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0xIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOC4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTEge1xcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTEge1xcbiAgICBoZWlnaHQ6IDguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDE2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTIge1xcbiAgICBoZWlnaHQ6IDE2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTMge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAyNSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy0zIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDI1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTMge1xcbiAgICBoZWlnaHQ6IDI1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy00IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMzMuMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy00IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNCB7XFxuICAgIGhlaWdodDogMzMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctNSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDQxLjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctNSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTUge1xcbiAgICBoZWlnaHQ6IDQxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTYge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA1MCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy02IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDUwJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTYge1xcbiAgICBoZWlnaHQ6IDUwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy03IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy03IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctNyB7XFxuICAgIGhlaWdodDogNTguMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctOCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDY2LjY2NjclO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctOCB7XFxuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTgge1xcbiAgICBoZWlnaHQ6IDY2LjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTkge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA3NSU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC1sZy05IHtcXG4gICAgbWFyZ2luLWxlZnQ6IDc1JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLWxnLTkge1xcbiAgICBoZWlnaHQ6IDc1JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC1sZy0xMCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQtbGctMTAge1xcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0xMCB7XFxuICAgIGhlaWdodDogODMuMzMzMyU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wtbGctMTEge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA5MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTExIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjclO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wtbGctMTEge1xcbiAgICBoZWlnaHQ6IDkxLjY2NjclO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLWxnLTEyIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LWxnLTEyIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDEwMCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC1sZy0xMiB7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gIC5yb3cgPiAuY29sLXhsLFxcbiAgLnJvdyA+IC5jb2wteGwtYXV0byxcXG4gIC5yb3cgPiAuY29sLXhsLWdyb3csXFxuICAucm93ID4gLmNvbC14bC0wLFxcbiAgLnJvdyA+IC5jb2wteGwtMSxcXG4gIC5yb3cgPiAuY29sLXhsLTIsXFxuICAucm93ID4gLmNvbC14bC0zLFxcbiAgLnJvdyA+IC5jb2wteGwtNCxcXG4gIC5yb3cgPiAuY29sLXhsLTUsXFxuICAucm93ID4gLmNvbC14bC02LFxcbiAgLnJvdyA+IC5jb2wteGwtNyxcXG4gIC5yb3cgPiAuY29sLXhsLTgsXFxuICAucm93ID4gLmNvbC14bC05LFxcbiAgLnJvdyA+IC5jb2wteGwtMTAsXFxuICAucm93ID4gLmNvbC14bC0xMSxcXG4gIC5yb3cgPiAuY29sLXhsLTEyLFxcbiAgLmZsZXggPiAuY29sLXhsLFxcbiAgLmZsZXggPiAuY29sLXhsLWF1dG8sXFxuICAuZmxleCA+IC5jb2wteGwtZ3JvdyxcXG4gIC5mbGV4ID4gLmNvbC14bC0wLFxcbiAgLmZsZXggPiAuY29sLXhsLTEsXFxuICAuZmxleCA+IC5jb2wteGwtMixcXG4gIC5mbGV4ID4gLmNvbC14bC0zLFxcbiAgLmZsZXggPiAuY29sLXhsLTQsXFxuICAuZmxleCA+IC5jb2wteGwtNSxcXG4gIC5mbGV4ID4gLmNvbC14bC02LFxcbiAgLmZsZXggPiAuY29sLXhsLTcsXFxuICAuZmxleCA+IC5jb2wteGwtOCxcXG4gIC5mbGV4ID4gLmNvbC14bC05LFxcbiAgLmZsZXggPiAuY29sLXhsLTEwLFxcbiAgLmZsZXggPiAuY29sLXhsLTExLFxcbiAgLmZsZXggPiAuY29sLXhsLTEyIHtcXG4gICAgd2lkdGg6IGF1dG87XFxuICAgIG1pbi13aWR0aDogMDtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwsXFxuICAuY29sdW1uID4gLmNvbC14bC1hdXRvLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtZ3JvdyxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTAsXFxuICAuY29sdW1uID4gLmNvbC14bC0xLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMixcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTMsXFxuICAuY29sdW1uID4gLmNvbC14bC00LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtNSxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTYsXFxuICAuY29sdW1uID4gLmNvbC14bC03LFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtOCxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTksXFxuICAuY29sdW1uID4gLmNvbC14bC0xMCxcXG4gIC5jb2x1bW4gPiAuY29sLXhsLTExLFxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMTIsXFxuICAuZmxleCA+IC5jb2wteGwsXFxuICAuZmxleCA+IC5jb2wteGwtYXV0byxcXG4gIC5mbGV4ID4gLmNvbC14bC1ncm93LFxcbiAgLmZsZXggPiAuY29sLXhsLTAsXFxuICAuZmxleCA+IC5jb2wteGwtMSxcXG4gIC5mbGV4ID4gLmNvbC14bC0yLFxcbiAgLmZsZXggPiAuY29sLXhsLTMsXFxuICAuZmxleCA+IC5jb2wteGwtNCxcXG4gIC5mbGV4ID4gLmNvbC14bC01LFxcbiAgLmZsZXggPiAuY29sLXhsLTYsXFxuICAuZmxleCA+IC5jb2wteGwtNyxcXG4gIC5mbGV4ID4gLmNvbC14bC04LFxcbiAgLmZsZXggPiAuY29sLXhsLTksXFxuICAuZmxleCA+IC5jb2wteGwtMTAsXFxuICAuZmxleCA+IC5jb2wteGwtMTEsXFxuICAuZmxleCA+IC5jb2wteGwtMTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIG1pbi1oZWlnaHQ6IDA7XFxuICAgIG1heC1oZWlnaHQ6IDEwMCU7XFxuICB9XFxuICAuY29sLXhsIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMTAwMDA7XFxuICAgICAgICAtbXMtZmxleDogMTAwMDAgMSAwJTtcXG4gICAgICAgICAgICBmbGV4OiAxMDAwMCAxIDAlO1xcbiAgfVxcbiAgLmNvbC14bC1hdXRvLFxcbiAgLmNvbC14bC0wLFxcbiAgLmNvbC14bC0xLFxcbiAgLmNvbC14bC0yLFxcbiAgLmNvbC14bC0zLFxcbiAgLmNvbC14bC00LFxcbiAgLmNvbC14bC01LFxcbiAgLmNvbC14bC02LFxcbiAgLmNvbC14bC03LFxcbiAgLmNvbC14bC04LFxcbiAgLmNvbC14bC05LFxcbiAgLmNvbC14bC0xMCxcXG4gIC5jb2wteGwtMTEsXFxuICAuY29sLXhsLTEyIHtcXG4gICAgLXdlYmtpdC1ib3gtZmxleDogMDtcXG4gICAgICAgIC1tcy1mbGV4OiAwIDAgYXV0bztcXG4gICAgICAgICAgICBmbGV4OiAwIDAgYXV0bztcXG4gIH1cXG4gIC5jb2wteGwtZ3JvdyB7XFxuICAgIC13ZWJraXQtYm94LWZsZXg6IDE7XFxuICAgICAgICAtbXMtZmxleDogMSAwIGF1dG87XFxuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0wIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0wIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMCB7XFxuICAgIGhlaWdodDogMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMSB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDguMzMzMyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0xIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0xIHtcXG4gICAgaGVpZ2h0OiA4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTIge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiAxNi42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTIge1xcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0yIHtcXG4gICAgaGVpZ2h0OiAxNi42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0zIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogMjUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtMyB7XFxuICAgIG1hcmdpbi1sZWZ0OiAyNSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC0zIHtcXG4gICAgaGVpZ2h0OiAyNSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtNCB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDMzLjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtNCB7XFxuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTQge1xcbiAgICBoZWlnaHQ6IDMzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTUge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA0MS42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTUge1xcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC01IHtcXG4gICAgaGVpZ2h0OiA0MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC02IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNTAlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtNiB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1MCU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC02IHtcXG4gICAgaGVpZ2h0OiA1MCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtNyB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDU4LjMzMzMlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtNyB7XFxuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzJTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTcge1xcbiAgICBoZWlnaHQ6IDU4LjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTgge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA2Ni42NjY3JTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTgge1xcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NyU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC04IHtcXG4gICAgaGVpZ2h0OiA2Ni42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC05IHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogNzUlO1xcbiAgfVxcbiAgLnJvdyA+IC5vZmZzZXQteGwtOSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA3NSU7XFxuICB9XFxuICAuY29sdW1uID4gLmNvbC14bC05IHtcXG4gICAgaGVpZ2h0OiA3NSU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wteGwtMTAge1xcbiAgICBoZWlnaHQ6IGF1dG87XFxuICAgIHdpZHRoOiA4My4zMzMzJTtcXG4gIH1cXG4gIC5yb3cgPiAub2Zmc2V0LXhsLTEwIHtcXG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMTAge1xcbiAgICBoZWlnaHQ6IDgzLjMzMzMlO1xcbiAgICB3aWR0aDogYXV0bztcXG4gIH1cXG4gIC5yb3cgPiAuY29sLXhsLTExIHtcXG4gICAgaGVpZ2h0OiBhdXRvO1xcbiAgICB3aWR0aDogOTEuNjY2NyU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0xMSB7XFxuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY3JTtcXG4gIH1cXG4gIC5jb2x1bW4gPiAuY29sLXhsLTExIHtcXG4gICAgaGVpZ2h0OiA5MS42NjY3JTtcXG4gICAgd2lkdGg6IGF1dG87XFxuICB9XFxuICAucm93ID4gLmNvbC14bC0xMiB7XFxuICAgIGhlaWdodDogYXV0bztcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuICAucm93ID4gLm9mZnNldC14bC0xMiB7XFxuICAgIG1hcmdpbi1sZWZ0OiAxMDAlO1xcbiAgfVxcbiAgLmNvbHVtbiA+IC5jb2wteGwtMTIge1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuICAgIHdpZHRoOiBhdXRvO1xcbiAgfVxcbn1cXG4uYmFja2Ryb3Age1xcbiAgZGlzcGxheTogbm9uZTtcXG4gIHBvc2l0aW9uOiBmaXhlZDtcXG4gIHRvcDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG4gIHdpZHRoOiAxMDB2dztcXG4gIGhlaWdodDogMTAwdmg7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjI4cyBlYXNlLWluO1xcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjI4cyBlYXNlLWluO1xcbn1cXG4uYmFja2Ryb3AuYWN0aXZlIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjMpO1xcbn1cXG4ucm91bmQtYm9yZGVycyB7XFxuICBib3JkZXItcmFkaXVzOiAzcHggIWltcG9ydGFudDtcXG59XFxuLmdlbmVyaWMtbWFyZ2luLFxcbi5ncm91cCA+ICoge1xcbiAgbWFyZ2luOiA1cHg7XFxufVxcbi5uby10cmFuc2l0aW9uIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xcbiAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4udHJhbnNpdGlvbi0wIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMHMgIWltcG9ydGFudDtcXG4gIHRyYW5zaXRpb246IDBzICFpbXBvcnRhbnQ7XFxufVxcbi5nbG9zc3kge1xcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbShyZ2JhKDI1NSwyNTUsMjU1LDAuMykpLCBjb2xvci1zdG9wKDUwJSwgcmdiYSgyNTUsMjU1LDI1NSwwKSksIGNvbG9yLXN0b3AoNTElLCByZ2JhKDAsMCwwLDAuMTIpKSwgdG8ocmdiYSgwLDAsMCwwLjA0KSkpICFpbXBvcnRhbnQ7XFxuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCByZ2JhKDI1NSwyNTUsMjU1LDAuMyksIHJnYmEoMjU1LDI1NSwyNTUsMCkgNTAlLCByZ2JhKDAsMCwwLDAuMTIpIDUxJSwgcmdiYSgwLDAsMCwwLjA0KSkgIWltcG9ydGFudDtcXG59XFxuLnEtcGxhY2Vob2xkZXI6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLXBsYWNlaG9sZGVyOjotbW96LXBsYWNlaG9sZGVyIHtcXG4gIGNvbG9yOiBpbmhlcml0O1xcbiAgb3BhY2l0eTogMC41O1xcbn1cXG4ucS1wbGFjZWhvbGRlcjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICBvcGFjaXR5OiAwLjU7XFxufVxcbi5xLWJvZHktZnVsbHNjcmVlbi1taXhpbixcXG4ucS1ib2R5LXByZXZlbnQtc2Nyb2xsIHtcXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcXG59XFxuLnEtbm8taW5wdXQtc3Bpbm5lciB7XFxuICAtbW96LWFwcGVhcmFuY2U6IHRleHRmaWVsZCAhaW1wb3J0YW50O1xcbn1cXG4ucS1uby1pbnB1dC1zcGlubmVyOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLFxcbi5xLW5vLWlucHV0LXNwaW5uZXI6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xcbiAgbWFyZ2luOiAwO1xcbn1cXG5hLnEtbGluayB7XFxuICBvdXRsaW5lOiAwO1xcbiAgY29sb3I6IGluaGVyaXQ7XFxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxufVxcbi5xLXNlbGVjdC1oaWdobGlnaHQge1xcbiAgYmFja2dyb3VuZDogcmdiYSgxODksMTg5LDE4OSwwLjUpICFpbXBvcnRhbnQ7XFxufVxcbi5oaWdobGlnaHQtYW5kLWZhZGUge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtaGlnaGxpZ2h0IDJzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1oaWdobGlnaHQgMnMgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLnRyYW5zaXRpb24tZ2VuZXJpYyB7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzO1xcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3M7XFxufVxcbi5hbmltYXRlLXNwaW4sXFxuLmFuaW1hdGUtc3Bpbi1yZXZlcnNlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXNwaW4gMnMgaW5maW5pdGUgbGluZWFyIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1zcGluIDJzIGluZmluaXRlIGxpbmVhciAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1zcGluLXJldmVyc2Uge1xcbiAgYW5pbWF0aW9uLWRpcmVjdGlvbjogcmV2ZXJzZTtcXG59XFxuLmFuaW1hdGUtYmxpbmsge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtYmxpbmsgMXMgc3RlcHMoNSwgc3RhcnQpIGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1ibGluayAxcyBzdGVwcyg1LCBzdGFydCkgaW5maW5pdGUgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtcG9wIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXBvcCAwLjJzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wb3AgMC4ycyAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uYW5pbWF0ZS1zY2FsZSB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1zY2FsZSAwLjJzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1zY2FsZSAwLjJzIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLWZhZGUge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtZmFkZSAwLjJzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1mYWRlIDAuMnMgLyogcnRsOmlnbm9yZSAqLztcXG59XFxuLmFuaW1hdGUtYm91bmNlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWJvdW5jZSAycyBpbmZpbml0ZSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtYm91bmNlIDJzIGluZmluaXRlIC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLXNoYWtlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXNoYWtlIDAuMTVzO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtc2hha2UgMC4xNXM7XFxuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpO1xcbiAgICAgICAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtcXG59XFxuLmFuaW1hdGUtcG9wdXAtdXAsXFxuLmFuaW1hdGUtcG9wdXAtZG93biB7XFxuICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKTtcXG4gICAgICAgICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpO1xcbn1cXG4uYW5pbWF0ZS1wb3B1cC11cCA+ICosXFxuLmFuaW1hdGUtcG9wdXAtZG93biA+ICoge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtZmFkZSAwLjgycyBjdWJpYy1iZXppZXIoMC43ODUsIDAuMTM1LCAwLjE1LCAwLjg2KTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWZhZGUgMC44MnMgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44Nik7XFxufVxcbi5hbmltYXRlLXBvcHVwLWRvd24ge1xcbiAgLXdlYmtpdC1hbmltYXRpb246IHEtcG9wdXAtZG93biAwLjM2cyAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICBhbmltYXRpb246IHEtcG9wdXAtZG93biAwLjM2cyAvKiBydGw6aWdub3JlICovO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcCAwcHggLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCB0b3AgMHB4IC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLXBvcHVwLXVwIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLXBvcHVwLXVwIDAuMzZzIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIGFuaW1hdGlvbjogcS1wb3B1cC11cCAwLjM2cyAvKiBydGw6aWdub3JlICovO1xcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IGJvdHRvbSAwcHggLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBib3R0b20gMHB4IC8qIHJ0bDppZ25vcmUgKi87XFxufVxcbi5hbmltYXRlLWZhZGUtbGVmdCB7XFxuICAtd2Via2l0LWFuaW1hdGlvbjogcS1mYWRlIDAuMzZzIGN1YmljLWJlemllcigwLjc4NSwgMC4xMzUsIDAuMTUsIDAuODYpLCBxLXNsaWRlLWxlZnQgMC4zNnMgZWFzZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWZhZGUgMC4zNnMgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiksIHEtc2xpZGUtbGVmdCAwLjM2cyBlYXNlO1xcbn1cXG4uYW5pbWF0ZS1mYWRlLXJpZ2h0IHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uOiBxLWZhZGUgMC4zNnMgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiksIHEtc2xpZGUtcmlnaHQgMC4zNnMgZWFzZTtcXG4gICAgICAgICAgYW5pbWF0aW9uOiBxLWZhZGUgMC4zNnMgY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNSwgMC44NiksIHEtc2xpZGUtcmlnaHQgMC4zNnMgZWFzZTtcXG59XFxuLmFuaW1hdGVkIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcXG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxcztcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcXG4gICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcXG59XFxuLmFuaW1hdGVkLmluZmluaXRlIHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XFxuICAgICAgICAgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlO1xcbn1cXG4uYW5pbWF0ZWQuaGluZ2Uge1xcbiAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDJzO1xcbiAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDJzO1xcbn1cXG4uYW5pbWF0ZWQuZmxpcE91dFgsXFxuLmFuaW1hdGVkLmZsaXBPdXRZLFxcbi5hbmltYXRlZC5ib3VuY2VJbixcXG4uYW5pbWF0ZWQuYm91bmNlT3V0IHtcXG4gIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjc1cztcXG4gICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjc1cztcXG59XFxuLm5vbi1zZWxlY3RhYmxlIHtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgIC1tb3otdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICAtbXMtdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuLnNjcm9sbCB7XFxuICBvdmVyZmxvdzogYXV0bztcXG59XFxuLnNjcm9sbCxcXG4uc2Nyb2xsLXgsXFxuLnNjcm9sbC15IHtcXG4gIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcXG4gIHdpbGwtY2hhbmdlOiBzY3JvbGwtcG9zaXRpb247XFxufVxcbi5zY3JvbGwteCB7XFxuICBvdmVyZmxvdy14OiBhdXRvO1xcbn1cXG4uc2Nyb2xsLXkge1xcbiAgb3ZlcmZsb3cteTogYXV0bztcXG59XFxuLm5vLXNjcm9sbCB7XFxuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XFxufVxcbi5uby1wb2ludGVyLWV2ZW50cyB7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4uYWxsLXBvaW50ZXItZXZlbnRzIHtcXG4gIHBvaW50ZXItZXZlbnRzOiBhbGwgIWltcG9ydGFudDtcXG59XFxuLmN1cnNvci1wb2ludGVyIHtcXG4gIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xcbn1cXG4uY3Vyc29yLW5vdC1hbGxvd2VkIHtcXG4gIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcXG59XFxuLmN1cnNvci1pbmhlcml0IHtcXG4gIGN1cnNvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xcbn1cXG4ucm90YXRlLTQ1IHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTkwIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTEzNSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTE4MCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTIwNSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDIwNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjA1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTI3MCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4ucm90YXRlLTMxNSB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDMxNWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzE1ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbn1cXG4uZmxpcC1ob3Jpem9udGFsIHtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgtMSwgMSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoLTEsIDEpO1xcbn1cXG4uZmxpcC12ZXJ0aWNhbCB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSwgLTEpO1xcbiAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIC0xKTtcXG59XFxuLmZsb2F0LWxlZnQge1xcbiAgZmxvYXQ6IGxlZnQ7XFxufVxcbi5mbG9hdC1yaWdodCB7XFxuICBmbG9hdDogcmlnaHQ7XFxufVxcbi5yZWxhdGl2ZS1wb3NpdGlvbiB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxufVxcbi5maXhlZCxcXG4uZnVsbHNjcmVlbixcXG4uZml4ZWQtY2VudGVyLFxcbi5maXhlZC1ib3R0b20sXFxuLmZpeGVkLWxlZnQsXFxuLmZpeGVkLXJpZ2h0LFxcbi5maXhlZC10b3AsXFxuLmZpeGVkLXRvcC1sZWZ0LFxcbi5maXhlZC10b3AtcmlnaHQsXFxuLmZpeGVkLWJvdHRvbS1sZWZ0LFxcbi5maXhlZC1ib3R0b20tcmlnaHQge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbn1cXG4uYWJzb2x1dGUsXFxuLmFic29sdXRlLWZ1bGwsXFxuLmFic29sdXRlLWNlbnRlcixcXG4uYWJzb2x1dGUtYm90dG9tLFxcbi5hYnNvbHV0ZS1sZWZ0LFxcbi5hYnNvbHV0ZS1yaWdodCxcXG4uYWJzb2x1dGUtdG9wLFxcbi5hYnNvbHV0ZS10b3AtbGVmdCxcXG4uYWJzb2x1dGUtdG9wLXJpZ2h0LFxcbi5hYnNvbHV0ZS1ib3R0b20tbGVmdCxcXG4uYWJzb2x1dGUtYm90dG9tLXJpZ2h0IHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG59XFxuLmZpeGVkLXRvcCxcXG4uYWJzb2x1dGUtdG9wIHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDA7XFxuICByaWdodDogMDtcXG59XFxuLmZpeGVkLXJpZ2h0LFxcbi5hYnNvbHV0ZS1yaWdodCB7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG59XFxuLmZpeGVkLWJvdHRvbSxcXG4uYWJzb2x1dGUtYm90dG9tIHtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuLmZpeGVkLWxlZnQsXFxuLmFic29sdXRlLWxlZnQge1xcbiAgdG9wOiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuLmZpeGVkLXRvcC1sZWZ0LFxcbi5hYnNvbHV0ZS10b3AtbGVmdCB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbn1cXG4uZml4ZWQtdG9wLXJpZ2h0LFxcbi5hYnNvbHV0ZS10b3AtcmlnaHQge1xcbiAgdG9wOiAwO1xcbiAgcmlnaHQ6IDA7XFxufVxcbi5maXhlZC1ib3R0b20tbGVmdCxcXG4uYWJzb2x1dGUtYm90dG9tLWxlZnQge1xcbiAgYm90dG9tOiAwO1xcbiAgbGVmdDogMDtcXG59XFxuLmZpeGVkLWJvdHRvbS1yaWdodCxcXG4uYWJzb2x1dGUtYm90dG9tLXJpZ2h0IHtcXG4gIGJvdHRvbTogMDtcXG4gIHJpZ2h0OiAwO1xcbn1cXG4uZnVsbHNjcmVlbiB7XFxuICB6LWluZGV4OiA2MDAwO1xcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xcbiAgbWF4LXdpZHRoOiAxMDB2dztcXG4gIG1heC1oZWlnaHQ6IDEwMHZoO1xcbn1cXG4uYWJzb2x1dGUtZnVsbCxcXG4uZnVsbHNjcmVlbiB7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5maXhlZC1jZW50ZXIsXFxuLmFic29sdXRlLWNlbnRlciB7XFxuICB0b3A6IDUwJTtcXG4gIGxlZnQ6IDUwJTtcXG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xcbn1cXG4udmVydGljYWwtdG9wIHtcXG4gIHZlcnRpY2FsLWFsaWduOiB0b3AgIWltcG9ydGFudDtcXG59XFxuLnZlcnRpY2FsLW1pZGRsZSB7XFxuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlICFpbXBvcnRhbnQ7XFxufVxcbi52ZXJ0aWNhbC1ib3R0b20ge1xcbiAgdmVydGljYWwtYWxpZ246IGJvdHRvbSAhaW1wb3J0YW50O1xcbn1cXG4ub24tbGVmdCB7XFxuICBtYXJnaW4tcmlnaHQ6IDEycHg7XFxufVxcbi5vbi1yaWdodCB7XFxuICBtYXJnaW4tbGVmdDogMTJweDtcXG59XFxuLnEtcmlwcGxlLWNvbnRhaW5lciB7XFxuICB0b3A6IDA7XFxuICBsZWZ0OiAwO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgei1pbmRleDogMDtcXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbn1cXG4ucS1yaXBwbGUtYW5pbWF0aW9uIHtcXG4gIHRvcDogMDtcXG4gIGxlZnQ6IDAgLyogcnRsOmlnbm9yZSAqLztcXG4gIG9wYWNpdHk6IDA7XFxuICBjb2xvcjogaW5oZXJpdDtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogMC4zcyBvcGFjaXR5IGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjEpLCAwLjNzIC13ZWJraXQtdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjkpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyBvcGFjaXR5IGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjEpLCAwLjNzIC13ZWJraXQtdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjkpO1xcbiAgdHJhbnNpdGlvbjogMC4zcyB0cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuOSksIDAuM3Mgb3BhY2l0eSBjdWJpYy1iZXppZXIoMC4yLCAwLjQsIDAuNCwgMC4xKTtcXG4gIHRyYW5zaXRpb246IDAuM3MgdHJhbnNmb3JtIGN1YmljLWJlemllcigwLjIsIDAuNCwgMC40LCAwLjkpLCAwLjNzIG9wYWNpdHkgY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuMSksIDAuM3MgLXdlYmtpdC10cmFuc2Zvcm0gY3ViaWMtYmV6aWVyKDAuMiwgMC40LCAwLjQsIDAuOSk7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5O1xcbn1cXG4ucS1yaXBwbGUtYW5pbWF0aW9uLWVudGVyIHtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogbm9uZTtcXG4gIHRyYW5zaXRpb246IG5vbmU7XFxufVxcbi5xLXJpcHBsZS1hbmltYXRpb24tdmlzaWJsZSB7XFxuICBvcGFjaXR5OiAwLjE1O1xcbn1cXG4ucS1yYWRpYWwtcmlwcGxlIHtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogLTUwJTtcXG4gIGxlZnQ6IC01MCU7XFxuICB3aWR0aDogMjAwJTtcXG4gIGhlaWdodDogMjAwJTtcXG59XFxuLnEtcmFkaWFsLXJpcHBsZTphZnRlciB7XFxuICBjb250ZW50OiAnJztcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMDtcXG4gIHJpZ2h0OiAwO1xcbiAgYm90dG9tOiAwO1xcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgY3VycmVudENvbG9yIDEwJSwgdHJhbnNwYXJlbnQgMTAuMDElKTtcXG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XFxuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCU7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMTAsIDEwKTtcXG4gICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxMCwgMTApO1xcbiAgb3BhY2l0eTogMDtcXG4gIC13ZWJraXQtdHJhbnNpdGlvbjogb3BhY2l0eSAxcywgLXdlYmtpdC10cmFuc2Zvcm0gMC41cztcXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMXMsIC13ZWJraXQtdHJhbnNmb3JtIDAuNXM7XFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cywgb3BhY2l0eSAxcztcXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzLCBvcGFjaXR5IDFzLCAtd2Via2l0LXRyYW5zZm9ybSAwLjVzO1xcbn1cXG4ucS1yYWRpYWwtcmlwcGxlLmFjdGl2ZTphZnRlciB7XFxuICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMCwgMCk7XFxuICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCwgMCk7XFxuICBvcGFjaXR5OiAwLjQ7XFxuICAtd2Via2l0LXRyYW5zaXRpb246IDBzO1xcbiAgdHJhbnNpdGlvbjogMHM7XFxufVxcbjpyb290IHtcXG4gIC0tcS1zaXplLXhzOiAwO1xcbiAgLS1xLXNpemUtc206IDU3NnB4O1xcbiAgLS1xLXNpemUtbWQ6IDc2OHB4O1xcbiAgLS1xLXNpemUtbGc6IDk5MnB4O1xcbiAgLS1xLXNpemUteGw6IDEyMDBweDtcXG59XFxuLmZpdCB7XFxuICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xcbiAgaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XFxufVxcbi5mdWxsLWhlaWdodCB7XFxuICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcXG59XFxuLmZ1bGwtd2lkdGgge1xcbiAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcXG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcXG59XFxuLndpbmRvdy1oZWlnaHQge1xcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xcbiAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xcbiAgaGVpZ2h0OiAxMDB2aCAhaW1wb3J0YW50O1xcbn1cXG4ud2luZG93LXdpZHRoIHtcXG4gIG1hcmdpbi1sZWZ0OiAwICFpbXBvcnRhbnQ7XFxuICBtYXJnaW4tcmlnaHQ6IDAgIWltcG9ydGFudDtcXG4gIHdpZHRoOiAxMDB2dyAhaW1wb3J0YW50O1xcbn1cXG4uYmxvY2sge1xcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcXG59XFxuLmlubGluZS1ibG9jayB7XFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcXG59XFxuLnEtcGEtbm9uZSB7XFxuICBwYWRkaW5nOiAwIDA7XFxufVxcbi5xLXBsLW5vbmUsXFxuLnEtcHgtbm9uZSB7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxufVxcbi5xLXByLW5vbmUsXFxuLnEtcHgtbm9uZSB7XFxuICBwYWRkaW5nLXJpZ2h0OiAwO1xcbn1cXG4ucS1wdC1ub25lLFxcbi5xLXB5LW5vbmUge1xcbiAgcGFkZGluZy10b3A6IDA7XFxufVxcbi5xLXBiLW5vbmUsXFxuLnEtcHktbm9uZSB7XFxuICBwYWRkaW5nLWJvdHRvbTogMDtcXG59XFxuLnEtbWEtbm9uZSB7XFxuICBtYXJnaW46IDAgMDtcXG59XFxuLnEtbWwtbm9uZSxcXG4ucS1teC1ub25lIHtcXG4gIG1hcmdpbi1sZWZ0OiAwO1xcbn1cXG4ucS1tci1ub25lLFxcbi5xLW14LW5vbmUge1xcbiAgbWFyZ2luLXJpZ2h0OiAwO1xcbn1cXG4ucS1tdC1ub25lLFxcbi5xLW15LW5vbmUge1xcbiAgbWFyZ2luLXRvcDogMDtcXG59XFxuLnEtbWItbm9uZSxcXG4ucS1teS1ub25lIHtcXG4gIG1hcmdpbi1ib3R0b206IDA7XFxufVxcbi5xLXBhLXhzIHtcXG4gIHBhZGRpbmc6IDRweCA0cHg7XFxufVxcbi5xLXBsLXhzLFxcbi5xLXB4LXhzIHtcXG4gIHBhZGRpbmctbGVmdDogNHB4O1xcbn1cXG4ucS1wci14cyxcXG4ucS1weC14cyB7XFxuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XFxufVxcbi5xLXB0LXhzLFxcbi5xLXB5LXhzIHtcXG4gIHBhZGRpbmctdG9wOiA0cHg7XFxufVxcbi5xLXBiLXhzLFxcbi5xLXB5LXhzIHtcXG4gIHBhZGRpbmctYm90dG9tOiA0cHg7XFxufVxcbi5xLW1hLXhzIHtcXG4gIG1hcmdpbjogNHB4IDRweDtcXG59XFxuLnEtbWwteHMsXFxuLnEtbXgteHMge1xcbiAgbWFyZ2luLWxlZnQ6IDRweDtcXG59XFxuLnEtbXIteHMsXFxuLnEtbXgteHMge1xcbiAgbWFyZ2luLXJpZ2h0OiA0cHg7XFxufVxcbi5xLW10LXhzLFxcbi5xLW15LXhzIHtcXG4gIG1hcmdpbi10b3A6IDRweDtcXG59XFxuLnEtbWIteHMsXFxuLnEtbXkteHMge1xcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xcbn1cXG4ucS1wYS1zbSB7XFxuICBwYWRkaW5nOiA4cHggOHB4O1xcbn1cXG4ucS1wbC1zbSxcXG4ucS1weC1zbSB7XFxuICBwYWRkaW5nLWxlZnQ6IDhweDtcXG59XFxuLnEtcHItc20sXFxuLnEtcHgtc20ge1xcbiAgcGFkZGluZy1yaWdodDogOHB4O1xcbn1cXG4ucS1wdC1zbSxcXG4ucS1weS1zbSB7XFxuICBwYWRkaW5nLXRvcDogOHB4O1xcbn1cXG4ucS1wYi1zbSxcXG4ucS1weS1zbSB7XFxuICBwYWRkaW5nLWJvdHRvbTogOHB4O1xcbn1cXG4ucS1tYS1zbSB7XFxuICBtYXJnaW46IDhweCA4cHg7XFxufVxcbi5xLW1sLXNtLFxcbi5xLW14LXNtIHtcXG4gIG1hcmdpbi1sZWZ0OiA4cHg7XFxufVxcbi5xLW1yLXNtLFxcbi5xLW14LXNtIHtcXG4gIG1hcmdpbi1yaWdodDogOHB4O1xcbn1cXG4ucS1tdC1zbSxcXG4ucS1teS1zbSB7XFxuICBtYXJnaW4tdG9wOiA4cHg7XFxufVxcbi5xLW1iLXNtLFxcbi5xLW15LXNtIHtcXG4gIG1hcmdpbi1ib3R0b206IDhweDtcXG59XFxuLnEtcGEtbWQge1xcbiAgcGFkZGluZzogMTZweCAxNnB4O1xcbn1cXG4ucS1wbC1tZCxcXG4ucS1weC1tZCB7XFxuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XFxufVxcbi5xLXByLW1kLFxcbi5xLXB4LW1kIHtcXG4gIHBhZGRpbmctcmlnaHQ6IDE2cHg7XFxufVxcbi5xLXB0LW1kLFxcbi5xLXB5LW1kIHtcXG4gIHBhZGRpbmctdG9wOiAxNnB4O1xcbn1cXG4ucS1wYi1tZCxcXG4ucS1weS1tZCB7XFxuICBwYWRkaW5nLWJvdHRvbTogMTZweDtcXG59XFxuLnEtbWEtbWQge1xcbiAgbWFyZ2luOiAxNnB4IDE2cHg7XFxufVxcbi5xLW1sLW1kLFxcbi5xLW14LW1kIHtcXG4gIG1hcmdpbi1sZWZ0OiAxNnB4O1xcbn1cXG4ucS1tci1tZCxcXG4ucS1teC1tZCB7XFxuICBtYXJnaW4tcmlnaHQ6IDE2cHg7XFxufVxcbi5xLW10LW1kLFxcbi5xLW15LW1kIHtcXG4gIG1hcmdpbi10b3A6IDE2cHg7XFxufVxcbi5xLW1iLW1kLFxcbi5xLW15LW1kIHtcXG4gIG1hcmdpbi1ib3R0b206IDE2cHg7XFxufVxcbi5xLXBhLWxnIHtcXG4gIHBhZGRpbmc6IDI0cHggMjRweDtcXG59XFxuLnEtcGwtbGcsXFxuLnEtcHgtbGcge1xcbiAgcGFkZGluZy1sZWZ0OiAyNHB4O1xcbn1cXG4ucS1wci1sZyxcXG4ucS1weC1sZyB7XFxuICBwYWRkaW5nLXJpZ2h0OiAyNHB4O1xcbn1cXG4ucS1wdC1sZyxcXG4ucS1weS1sZyB7XFxuICBwYWRkaW5nLXRvcDogMjRweDtcXG59XFxuLnEtcGItbGcsXFxuLnEtcHktbGcge1xcbiAgcGFkZGluZy1ib3R0b206IDI0cHg7XFxufVxcbi5xLW1hLWxnIHtcXG4gIG1hcmdpbjogMjRweCAyNHB4O1xcbn1cXG4ucS1tbC1sZyxcXG4ucS1teC1sZyB7XFxuICBtYXJnaW4tbGVmdDogMjRweDtcXG59XFxuLnEtbXItbGcsXFxuLnEtbXgtbGcge1xcbiAgbWFyZ2luLXJpZ2h0OiAyNHB4O1xcbn1cXG4ucS1tdC1sZyxcXG4ucS1teS1sZyB7XFxuICBtYXJnaW4tdG9wOiAyNHB4O1xcbn1cXG4ucS1tYi1sZyxcXG4ucS1teS1sZyB7XFxuICBtYXJnaW4tYm90dG9tOiAyNHB4O1xcbn1cXG4ucS1wYS14bCB7XFxuICBwYWRkaW5nOiA0OHB4IDQ4cHg7XFxufVxcbi5xLXBsLXhsLFxcbi5xLXB4LXhsIHtcXG4gIHBhZGRpbmctbGVmdDogNDhweDtcXG59XFxuLnEtcHIteGwsXFxuLnEtcHgteGwge1xcbiAgcGFkZGluZy1yaWdodDogNDhweDtcXG59XFxuLnEtcHQteGwsXFxuLnEtcHkteGwge1xcbiAgcGFkZGluZy10b3A6IDQ4cHg7XFxufVxcbi5xLXBiLXhsLFxcbi5xLXB5LXhsIHtcXG4gIHBhZGRpbmctYm90dG9tOiA0OHB4O1xcbn1cXG4ucS1tYS14bCB7XFxuICBtYXJnaW46IDQ4cHggNDhweDtcXG59XFxuLnEtbWwteGwsXFxuLnEtbXgteGwge1xcbiAgbWFyZ2luLWxlZnQ6IDQ4cHg7XFxufVxcbi5xLW1yLXhsLFxcbi5xLW14LXhsIHtcXG4gIG1hcmdpbi1yaWdodDogNDhweDtcXG59XFxuLnEtbXQteGwsXFxuLnEtbXkteGwge1xcbiAgbWFyZ2luLXRvcDogNDhweDtcXG59XFxuLnEtbWIteGwsXFxuLnEtbXkteGwge1xcbiAgbWFyZ2luLWJvdHRvbTogNDhweDtcXG59XFxuLnEtbWwtYXV0byxcXG4ucS1teC1hdXRvIHtcXG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xcbn1cXG4ucS1tci1hdXRvLFxcbi5xLW14LWF1dG8ge1xcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xcbn1cXG4ucS1teS1mb3JtIHtcXG4gIG1hcmdpbi10b3A6IDE2cHg7XFxuICBtYXJnaW4tYm90dG9tOiA4cHg7XFxufVxcbi5xLXRvdWNoIHtcXG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XFxuICAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xcbiAgICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcXG4gICAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XFxuICB1c2VyLWRyYWc6IG5vbmU7XFxuICAta2h0bWwtdXNlci1kcmFnOiBub25lO1xcbiAgLXdlYmtpdC11c2VyLWRyYWc6IG5vbmU7XFxufVxcbi5xLXRvdWNoLXgge1xcbiAgLW1zLXRvdWNoLWFjdGlvbjogcGFuLXg7XFxuICAgICAgdG91Y2gtYWN0aW9uOiBwYW4teDtcXG59XFxuLnEtdG91Y2gteSB7XFxuICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcXG4gICAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xcbn1cXG5ib2R5IHtcXG4gIG1pbi13aWR0aDogMTAwcHg7XFxuICBmb250LWZhbWlseTogJ1JvYm90bycsICctYXBwbGUtc3lzdGVtJywgJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XFxuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xcbiAgZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xcbiAgYmFja2dyb3VuZDogI2ZmZjtcXG4gIGNvbG9yOiAjMGMwYzBjO1xcbiAgbWluLWhlaWdodDogMTAwdmg7XFxufVxcbmgxIHtcXG4gIGZvbnQtc2l6ZTogMTEycHg7XFxuICBmb250LXdlaWdodDogMzAwO1xcbiAgbGluZS1oZWlnaHQ6IDEuMTI7XFxuICBsZXR0ZXItc3BhY2luZzogLTAuMDRlbTtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGgxIHtcXG4gICAgZm9udC1zaXplOiA2Ny4ycHg7XFxuICB9XFxufVxcbmgyIHtcXG4gIGZvbnQtc2l6ZTogNTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxuICBsaW5lLWhlaWdodDogMS4zNTtcXG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgaDIge1xcbiAgICBmb250LXNpemU6IDMzLjZweDtcXG4gIH1cXG59XFxuaDMge1xcbiAgZm9udC1zaXplOiA0NXB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiA0OHB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGgzIHtcXG4gICAgZm9udC1zaXplOiAyN3B4O1xcbiAgfVxcbn1cXG5oNCB7XFxuICBmb250LXNpemU6IDM0cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDQwcHg7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjdweCkge1xcbiAgaDQge1xcbiAgICBmb250LXNpemU6IDIwLjRweDtcXG4gIH1cXG59XFxuaDUge1xcbiAgZm9udC1zaXplOiAyNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGg1IHtcXG4gICAgZm9udC1zaXplOiAxNC4zOTk5OTk5OTk5OTk5OTlweDtcXG4gIH1cXG59XFxuaDYge1xcbiAgZm9udC1zaXplOiAyMHB4O1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjEyO1xcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcXG59XFxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIGg2IHtcXG4gICAgZm9udC1zaXplOiAxMnB4O1xcbiAgfVxcbn1cXG4ucS1kaXNwbGF5LTQtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjU0O1xcbn1cXG4ucS1kaXNwbGF5LTQge1xcbiAgZm9udC1zaXplOiAxMTJweDtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxuICBsaW5lLWhlaWdodDogMS4xMjtcXG4gIGxldHRlci1zcGFjaW5nOiAtMC4wNGVtO1xcbn1cXG4ucS1kaXNwbGF5LTMtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjU0O1xcbn1cXG4ucS1kaXNwbGF5LTMge1xcbiAgZm9udC1zaXplOiA1NnB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiAxLjM1O1xcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAyZW07XFxufVxcbi5xLWRpc3BsYXktMi1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuNTQ7XFxufVxcbi5xLWRpc3BsYXktMiB7XFxuICBmb250LXNpemU6IDQ1cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDQ4cHg7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbn1cXG4ucS1kaXNwbGF5LTEtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjU0O1xcbn1cXG4ucS1kaXNwbGF5LTEge1xcbiAgZm9udC1zaXplOiAzNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG4gIGxpbmUtaGVpZ2h0OiA0MHB4O1xcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcXG59XFxuLnEtaGVhZGxpbmUtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjg3O1xcbn1cXG4ucS1oZWFkbGluZSB7XFxuICBmb250LXNpemU6IDI0cHg7XFxuICBmb250LXdlaWdodDogNDAwO1xcbiAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xcbn1cXG4ucS10aXRsZS1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuODc7XFxufVxcbi5xLXRpdGxlIHtcXG4gIGZvbnQtc2l6ZTogMjBweDtcXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XFxuICBsaW5lLWhlaWdodDogMS4xMjtcXG4gIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XFxufVxcbi5xLXN1YmhlYWRpbmctb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjg3O1xcbn1cXG4ucS1zdWJoZWFkaW5nIHtcXG4gIGZvbnQtc2l6ZTogMTZweDtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxufVxcbi5xLWJvZHktMi1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuODc7XFxufVxcbi5xLWJvZHktMiB7XFxuICBmb250LXNpemU6IDE0cHg7XFxuICBmb250LXdlaWdodDogNTAwO1xcbn1cXG4ucS1ib2R5LTEtb3BhY2l0eSB7XFxuICBvcGFjaXR5OiAwLjg3O1xcbn1cXG4ucS1ib2R5LTEge1xcbiAgZm9udC1zaXplOiAxNHB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG59XFxuLnEtY2FwdGlvbi1vcGFjaXR5IHtcXG4gIG9wYWNpdHk6IDAuNTQ7XFxufVxcbi5xLWNhcHRpb24ge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgZm9udC13ZWlnaHQ6IDQwMDtcXG59XFxucCB7XFxuICBtYXJnaW46IDAgMCAxNnB4O1xcbn1cXG4uY2FwdGlvbiB7XFxuICBjb2xvcjogIzQyNDI0MjtcXG4gIGxldHRlci1zcGFjaW5nOiAwO1xcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XFxuICBwYWRkaW5nOiAwO1xcbiAgZm9udC13ZWlnaHQ6IDMwMDtcXG59XFxuLnVwcGVyY2FzZSB7XFxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xcbn1cXG4ubG93ZXJjYXNlIHtcXG4gIHRleHQtdHJhbnNmb3JtOiBsb3dlcmNhc2U7XFxufVxcbi5jYXBpdGFsaXplIHtcXG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xcbn1cXG4udGV4dC1jZW50ZXIge1xcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xcbn1cXG4udGV4dC1sZWZ0IHtcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVxcbi50ZXh0LXJpZ2h0IHtcXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xcbn1cXG4udGV4dC1qdXN0aWZ5IHtcXG4gIHRleHQtYWxpZ246IGp1c3RpZnk7XFxuICAtd2Via2l0LWh5cGhlbnM6IGF1dG87XFxuICAgICAgLW1zLWh5cGhlbnM6IGF1dG87XFxuICAgICAgICAgIGh5cGhlbnM6IGF1dG87XFxufVxcbi50ZXh0LWl0YWxpYyB7XFxuICBmb250LXN0eWxlOiBpdGFsaWM7XFxufVxcbi50ZXh0LWJvbGQge1xcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XFxufVxcbi50ZXh0LW5vLXdyYXAge1xcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG59XFxuLnRleHQtd2VpZ2h0LXRoaW4ge1xcbiAgZm9udC13ZWlnaHQ6IDEwMDtcXG59XFxuLnRleHQtd2VpZ2h0LWxpZ2h0IHtcXG4gIGZvbnQtd2VpZ2h0OiAzMDA7XFxufVxcbi50ZXh0LXdlaWdodC1yZWd1bGFyIHtcXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XFxufVxcbi50ZXh0LXdlaWdodC1tZWRpdW0ge1xcbiAgZm9udC13ZWlnaHQ6IDUwMDtcXG59XFxuLnRleHQtd2VpZ2h0LWJvbGQge1xcbiAgZm9udC13ZWlnaHQ6IDcwMDtcXG59XFxuLnRleHQtd2VpZ2h0LWJvbGRlciB7XFxuICBmb250LXdlaWdodDogOTAwO1xcbn1cXG5zbWFsbCB7XFxuICBmb250LXNpemU6IDgwJTtcXG59XFxuYmlnIHtcXG4gIGZvbnQtc2l6ZTogMTcwJTtcXG59XFxuc3ViIHtcXG4gIGJvdHRvbTogLTAuMjVlbTtcXG59XFxuc3VwIHtcXG4gIHRvcDogLTAuNWVtO1xcbn1cXG5ibG9ja3F1b3RlIHtcXG4gIHBhZGRpbmc6IDhweCAxNnB4O1xcbiAgbWFyZ2luOiAwO1xcbiAgZm9udC1zaXplOiAxNnB4O1xcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjMDI3YmUzO1xcbiAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1xLWNvbG9yLXByaW1hcnkpO1xcbn1cXG5ibG9ja3F1b3RlLnRleHQtcmlnaHQge1xcbiAgcGFkZGluZy1yaWdodDogMTZweDtcXG4gIHBhZGRpbmctbGVmdDogMDtcXG4gIGJvcmRlci1yaWdodDogNHB4IHNvbGlkICMwMjdiZTM7XFxuICBib3JkZXItcmlnaHQ6IDRweCBzb2xpZCB2YXIoLS1xLWNvbG9yLXByaW1hcnkpO1xcbiAgYm9yZGVyLWxlZnQ6IDA7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG59XFxuYmxvY2txdW90ZSBzbWFsbCB7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XFxuICBjb2xvcjogIzc3NztcXG4gIGNvbG9yOiB2YXIoLS1xLWNvbG9yLWZhZGVkKTtcXG59XFxuYmxvY2txdW90ZSBzbWFsbDpiZWZvcmUge1xcbiAgY29udGVudDogJ1xcXFwyMDE0IFxcXFwwMEEwJztcXG59XFxuLnF1b3RlIHtcXG4gIHBhZGRpbmc6IDEwcHggMjBweDtcXG4gIG1hcmdpbjogMCAwIDIwcHg7XFxuICBib3JkZXItbGVmdDogNXB4IHNvbGlkICMwMjdiZTM7XFxuICBib3JkZXItbGVmdDogNXB4IHNvbGlkIHZhcigtLXEtY29sb3ItcHJpbWFyeSk7XFxufVxcbi5xdW90ZS50ZXh0LXJpZ2h0IHtcXG4gIHBhZGRpbmctcmlnaHQ6IDE1cHg7XFxuICBwYWRkaW5nLWxlZnQ6IDA7XFxuICBib3JkZXItcmlnaHQ6IDVweCBzb2xpZCAjMDI3YmUzO1xcbiAgYm9yZGVyLXJpZ2h0OiA1cHggc29saWQgdmFyKC0tcS1jb2xvci1wcmltYXJ5KTtcXG4gIGJvcmRlci1sZWZ0OiAwO1xcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XFxufVxcbmR0IHtcXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xcbn1cXG5kZCB7XFxuICBtYXJnaW4tbGVmdDogMDtcXG59XFxuZHQsXFxuZGQge1xcbiAgbGluZS1oZWlnaHQ6IDEuNDtcXG59XFxuZGwge1xcbiAgbWFyZ2luLXRvcDogMDtcXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XFxufVxcbmRsLmhvcml6b250YWwgZHQge1xcbiAgZmxvYXQ6IGxlZnQ7XFxuICB3aWR0aDogMjUlO1xcbiAgY2xlYXI6IGxlZnQ7XFxuICB0ZXh0LWFsaWduOiByaWdodDtcXG4gIG92ZXJmbG93OiBoaWRkZW47XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxufVxcbmRsLmhvcml6b250YWwgZGQge1xcbiAgbWFyZ2luLWxlZnQ6IDMwJTtcXG59XFxuaHIucS1ocixcXG5oci5xLWhyLWRhcmsge1xcbiAgaGVpZ2h0OiAxcHg7XFxuICBtaW4taGVpZ2h0OiAxcHg7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIGJvcmRlcjogbm9uZTtcXG4gIHdpZHRoOiAxMDAlO1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjEyKTtcXG59XFxuaHIucS1oci1kYXJrIHtcXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4zNik7XFxufVxcbi5uby1tYXJnaW4ge1xcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5uby1wYWRkaW5nIHtcXG4gIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcXG59XFxuLm5vLWJvcmRlciB7XFxuICBib3JkZXI6IDAgIWltcG9ydGFudDtcXG59XFxuLm5vLWJvcmRlci1yYWRpdXMge1xcbiAgYm9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xcbn1cXG4ubm8tYm94LXNoYWRvdyB7XFxuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICAgICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG4ubm8tb3V0bGluZSB7XFxuICBvdXRsaW5lOiAwICFpbXBvcnRhbnQ7XFxufVxcbi5lbGxpcHNpcyB7XFxuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcXG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbn1cXG4uZWxsaXBzaXMtMi1saW5lcyxcXG4uZWxsaXBzaXMtMy1saW5lcyB7XFxuICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgZGlzcGxheTogLXdlYmtpdC1ib3g7XFxuICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xcbn1cXG4uZWxsaXBzaXMtMi1saW5lcyB7XFxuICAtd2Via2l0LWxpbmUtY2xhbXA6IDI7XFxufVxcbi5lbGxpcHNpcy0zLWxpbmVzIHtcXG4gIC13ZWJraXQtbGluZS1jbGFtcDogMztcXG59XFxuLnJlYWRvbmx5IHtcXG4gIGN1cnNvcjogZGVmYXVsdCAhaW1wb3J0YW50O1xcbn1cXG4uZGlzYWJsZWQsXFxuW2Rpc2FibGVkXSxcXG4uZGlzYWJsZWQgKixcXG5bZGlzYWJsZWRdICoge1xcbiAgY3Vyc29yOiBub3QtYWxsb3dlZCAhaW1wb3J0YW50O1xcbn1cXG4uZGlzYWJsZWQsXFxuW2Rpc2FibGVkXSB7XFxuICBvcGFjaXR5OiAwLjYgIWltcG9ydGFudDtcXG59XFxuLmhpZGRlbiB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbi5pbnZpc2libGUge1xcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7XFxufVxcbi50cmFuc3BhcmVudCB7XFxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xcbn1cXG4ub3ZlcmZsb3ctYXV0byB7XFxuICBvdmVyZmxvdzogYXV0byAhaW1wb3J0YW50O1xcbn1cXG4ub3ZlcmZsb3ctaGlkZGVuIHtcXG4gIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcXG59XFxuLm92ZXJmbG93LWhpZGRlbi15IHtcXG4gIG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50O1xcbn1cXG4uZGltbWVkOmFmdGVyLFxcbi5saWdodC1kaW1tZWQ6YWZ0ZXIge1xcbiAgY29udGVudDogJyc7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB0b3A6IDA7XFxuICByaWdodDogMDtcXG4gIGJvdHRvbTogMDtcXG4gIGxlZnQ6IDA7XFxufVxcbi5kaW1tZWQ6YWZ0ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjQpICFpbXBvcnRhbnQ7XFxufVxcbi5saWdodC1kaW1tZWQ6YWZ0ZXIge1xcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjYpICFpbXBvcnRhbnQ7XFxufVxcbi56LXRvcCB7XFxuICB6LWluZGV4OiA3MDAwICFpbXBvcnRhbnQ7XFxufVxcbi56LW1heCB7XFxuICB6LWluZGV4OiA5OTk4ICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5kZXNrdG9wKSAuZGVza3RvcC1vbmx5LFxcbmJvZHkuZGVza3RvcCAuZGVza3RvcC1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLm1vYmlsZSkgLm1vYmlsZS1vbmx5LFxcbmJvZHkubW9iaWxlIC5tb2JpbGUtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5jb3Jkb3ZhKSAuY29yZG92YS1vbmx5LFxcbmJvZHkuY29yZG92YSAuY29yZG92YS1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLmVsZWN0cm9uKSAuZWxlY3Ryb24tb25seSxcXG5ib2R5LmVsZWN0cm9uIC5lbGVjdHJvbi1oaWRlIHtcXG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG59XFxuYm9keTpub3QoLmlvcykgLmlvcy1vbmx5LFxcbmJvZHkuaW9zIC5pb3MtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5tYXQpIC5tYXQtb25seSxcXG5ib2R5Lm1hdCAubWF0LWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCgudG91Y2gpIC50b3VjaC1vbmx5LFxcbmJvZHkudG91Y2ggLnRvdWNoLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCgud2l0aGluLWlmcmFtZSkgLndpdGhpbi1pZnJhbWUtb25seSxcXG5ib2R5LndpdGhpbi1pZnJhbWUgLndpdGhpbi1pZnJhbWUtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbmJvZHk6bm90KC5wbGF0Zm9ybS1pb3MpIC5wbGF0Zm9ybS1pb3Mtb25seSxcXG5ib2R5LnBsYXRmb3JtLWlvcyAucGxhdGZvcm0taW9zLWhpZGUge1xcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbn1cXG5ib2R5Om5vdCgucGxhdGZvcm0tYW5kcm9pZCkgLnBsYXRmb3JtLWFuZHJvaWQtb25seSxcXG5ib2R5LnBsYXRmb3JtLWFuZHJvaWQgLnBsYXRmb3JtLWFuZHJvaWQtaGlkZSB7XFxuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxufVxcbkBtZWRpYSBhbGwgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcXG4gIC5vcmllbnRhdGlvbi1sYW5kc2NhcGUge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSBhbGwgYW5kIChvcmllbnRhdGlvbjogbGFuZHNjYXBlKSB7XFxuICAub3JpZW50YXRpb24tcG9ydHJhaXQge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSBzY3JlZW4ge1xcbiAgLnByaW50LW9ubHkge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSBwcmludCB7XFxuICAucHJpbnQtaGlkZSB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIChtYXgtd2lkdGg6IDU3NXB4KSB7XFxuICAueHMtaGlkZSxcXG4gIC5ndC14cyxcXG4gIC5zbSxcXG4gIC5ndC1zbSxcXG4gIC5tZCxcXG4gIC5ndC1tZCxcXG4gIC5sZyxcXG4gIC5ndC1sZyxcXG4gIC54bCB7XFxuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcXG4gIH1cXG59XFxuQG1lZGlhIChtaW4td2lkdGg6IDU3NnB4KSBhbmQgKG1heC13aWR0aDogNzY3cHgpIHtcXG4gIC5zbS1oaWRlLFxcbiAgLnhzLFxcbiAgLmx0LXNtLFxcbiAgLmd0LXNtLFxcbiAgLm1kLFxcbiAgLmd0LW1kLFxcbiAgLmxnLFxcbiAgLmd0LWxnLFxcbiAgLnhsIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCkge1xcbiAgLm1kLWhpZGUsXFxuICAueHMsXFxuICAubHQtc20sXFxuICAuc20sXFxuICAubHQtbWQsXFxuICAuZ3QtbWQsXFxuICAubGcsXFxuICAuZ3QtbGcsXFxuICAueGwge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgYW5kIChtYXgtd2lkdGg6IDExOTlweCkge1xcbiAgLmxnLWhpZGUsXFxuICAueHMsXFxuICAubHQtc20sXFxuICAuc20sXFxuICAubHQtbWQsXFxuICAubWQsXFxuICAubHQtbGcsXFxuICAuZ3QtbGcsXFxuICAueGwge1xcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XFxuICB9XFxufVxcbkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpIHtcXG4gIC54bC1oaWRlLFxcbiAgLnhzLFxcbiAgLmx0LXNtLFxcbiAgLnNtLFxcbiAgLmx0LW1kLFxcbiAgLm1kLFxcbiAgLmx0LWxnLFxcbiAgLmxnLFxcbiAgLmx0LXhsIHtcXG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xcbiAgfVxcbn1cXG4ucS1mb2N1cy1oZWxwZXIge1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgdG9wOiAwO1xcbiAgbGVmdDogMCAvKiBydGw6aWdub3JlICovO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMCU7XFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcXG4gIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XFxuICBvcGFjaXR5OiAwLjE1O1xcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC41LCAxKTtcXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjUsIDEpO1xcbn1cXG4ucS1mb2N1cy1oZWxwZXItcm91bmRlZCB7XFxuICBib3JkZXItcmFkaXVzOiAzcHg7XFxufVxcbi5xLWZvY3VzLWhlbHBlci1yb3VuZCB7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxufVxcbmJvZHkuZGVza3RvcCAucS1mb2N1c2FibGU6Zm9jdXMgLnEtZm9jdXMtaGVscGVyLFxcbmJvZHkuZGVza3RvcCAucS1ob3ZlcmFibGU6aG92ZXIgLnEtZm9jdXMtaGVscGVyIHtcXG4gIGJhY2tncm91bmQ6IGN1cnJlbnRDb2xvcjtcXG59XFxuYm9keS5pb3MgLnEtaG92ZXJhYmxlOmFjdGl2ZSAucS1mb2N1cy1oZWxwZXIge1xcbiAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xcbiAgb3BhY2l0eTogMC4zO1xcbn1cXG5AbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xcbiAgLnEtaWYgPiAucS1pZi1pbm5lciB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgfVxcbiAgLnEtaWYgPiAucS1pZi1pbm5lciA+IGRpdiA+IC5xLWlucHV0LXRhcmdldCB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIgPiBkaXYgPiBpbnB1dC5xLWlucHV0LXRhcmdldCB7XFxuICAgIG1pbi13aWR0aDogM3JlbTtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDAlICFpbXBvcnRhbnQ7XFxuICAgICAgICBmbGV4LWJhc2lzOiAwJSAhaW1wb3J0YW50O1xcbiAgfVxcbiAgLnEtaW5wdXQtdGFyZ2V0OmJlZm9yZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgfVxcbiAgLnEtaWYtbGFiZWwtc3BhY2VyIHtcXG4gICAgd2lkdGg6IDA7XFxuICB9XFxuICAucS1lZGl0b3ItdG9vbGJhciAucS1idG4tZ3JvdXAucm93LmlubGluZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgfVxcbiAgLnEtdG9vbGJhcixcXG4gIC5xLWFjdGlvbnNoZWV0LXRpdGxlLFxcbiAgLnEtZmllbGQtbGFiZWwtaW5uZXIge1xcbiAgICBoZWlnaHQ6IDBweDtcXG4gIH1cXG4gIC5xLWNhcm91c2VsLXNsaWRlIHtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wucS1hbGVydC1jb250ZW50IHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgfVxcbiAgLnEtc2xpZGVyLWhhbmRsZSA+IC5xLWNoaXAuaW5saW5lLnJvdyB7XFxuICAgIGRpc3BsYXk6IHRhYmxlO1xcbiAgfVxcbiAgYS5xLWJ0bjpub3QoLnEtYnRuLXJvdW5kKSB7XFxuICAgIGhlaWdodDogMHB4O1xcbiAgfVxcbiAgLnEtYnRuIC5xLWJ0bi1pbm5lciB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUgLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLmFjdGl2ZSAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IC0xcHggMXB4IDFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuOmFjdGl2ZS5xLWJ0bi1wdXNoIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUucS1idG4tcHVzaCAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IDFweCAxcHggLTFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuOmFjdGl2ZS5xLWJ0bi1wdXNoLmRpc2FibGVkIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUucS1idG4tcHVzaC5kaXNhYmxlZCAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IC0xcHggMXB4IDFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuLWdyb3VwID4gLnEtYnRuLnEtYnRuLXB1c2g6bm90KC5kaXNhYmxlZCk6YWN0aXZlIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi1ncm91cCA+IC5xLWJ0bi5xLWJ0bi1wdXNoOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuICAucS1jaGlwOm5vdCgucS1jaGlwLXNtYWxsKTpub3QoLnEtY2hpcC1kZW5zZSkgLnEtY2hpcC1tYWluIHtcXG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICB9XFxuICAucS1idG4gLnEtY2hpcCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIH1cXG4gIC5xLXRhYiAucS1jaGlwIC5xLWNoaXAtbWFpbiB7XFxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XFxuICB9XFxuICAucS1mYWItYWN0aW9ucy5xLWZhYi1sZWZ0LFxcbiAgLnEtZmFiLWFjdGlvbnMucS1mYWItcmlnaHQge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIH1cXG4gIC5xLWl0ZW0tbWFpbiB7XFxuICAgIG1pbi13aWR0aDogMXB4O1xcbiAgfVxcbiAgLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWl0ZW0ge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XFxuICB9XFxuICAucS1tb2RhbC1sYXlvdXQge1xcbiAgICBtaW4taGVpZ2h0OiA4MHZoICFpbXBvcnRhbnQ7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICB9XFxufVxcbkBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjogYXV0bykge1xcbiAgLnEtaWYgPiAucS1pZi1pbm5lciB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gICAgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtYm94O1xcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XFxuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xcbiAgfVxcbiAgLnEtaWYgPiAucS1pZi1pbm5lciA+IGRpdiA+IC5xLWlucHV0LXRhcmdldCB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLWlmID4gLnEtaWYtaW5uZXIgPiBkaXYgPiBpbnB1dC5xLWlucHV0LXRhcmdldCB7XFxuICAgIG1pbi13aWR0aDogM3JlbTtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IDAlICFpbXBvcnRhbnQ7XFxuICAgICAgICBmbGV4LWJhc2lzOiAwJSAhaW1wb3J0YW50O1xcbiAgfVxcbiAgLnEtaW5wdXQtdGFyZ2V0OmJlZm9yZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgfVxcbiAgLnEtaWYtbGFiZWwtc3BhY2VyIHtcXG4gICAgd2lkdGg6IDA7XFxuICB9XFxuICAucS1lZGl0b3ItdG9vbGJhciAucS1idG4tZ3JvdXAucm93LmlubGluZSB7XFxuICAgIGRpc3BsYXk6IGJsb2NrO1xcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgfVxcbiAgLnEtdG9vbGJhcixcXG4gIC5xLWFjdGlvbnNoZWV0LXRpdGxlLFxcbiAgLnEtZmllbGQtbGFiZWwtaW5uZXIge1xcbiAgICBoZWlnaHQ6IDBweDtcXG4gIH1cXG4gIC5xLWNhcm91c2VsLXNsaWRlIHtcXG4gICAgbWF4LXdpZHRoOiAxMDAlO1xcbiAgfVxcbiAgLnJvdyA+IC5jb2wucS1hbGVydC1jb250ZW50IHtcXG4gICAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6IGF1dG87XFxuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xcbiAgfVxcbiAgLnEtc2xpZGVyLWhhbmRsZSA+IC5xLWNoaXAuaW5saW5lLnJvdyB7XFxuICAgIGRpc3BsYXk6IHRhYmxlO1xcbiAgfVxcbiAgYS5xLWJ0bjpub3QoLnEtYnRuLXJvdW5kKSB7XFxuICAgIGhlaWdodDogMHB4O1xcbiAgfVxcbiAgLnEtYnRuIC5xLWJ0bi1pbm5lciB7XFxuICAgIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiBhdXRvO1xcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcXG4gIH1cXG4gIC5xLWJ0bjphY3RpdmUgLnEtYnRuLWlubmVyLFxcbiAgLnEtYnRuLmFjdGl2ZSAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IC0xcHggMXB4IDFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuOmFjdGl2ZS5xLWJ0bi1wdXNoIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUucS1idG4tcHVzaCAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IDFweCAxcHggLTFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuOmFjdGl2ZS5xLWJ0bi1wdXNoLmRpc2FibGVkIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi5hY3RpdmUucS1idG4tcHVzaC5kaXNhYmxlZCAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IC0xcHggMXB4IDFweCAtMXB4O1xcbiAgfVxcbiAgLnEtYnRuLWdyb3VwID4gLnEtYnRuLnEtYnRuLXB1c2g6bm90KC5kaXNhYmxlZCk6YWN0aXZlIC5xLWJ0bi1pbm5lcixcXG4gIC5xLWJ0bi1ncm91cCA+IC5xLWJ0bi5xLWJ0bi1wdXNoOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSAucS1idG4taW5uZXIge1xcbiAgICBtYXJnaW46IDA7XFxuICB9XFxuICAucS1jaGlwOm5vdCgucS1jaGlwLXNtYWxsKTpub3QoLnEtY2hpcC1kZW5zZSkgLnEtY2hpcC1tYWluIHtcXG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XFxuICB9XFxuICAucS1idG4gLnEtY2hpcCB7XFxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcXG4gIH1cXG4gIC5xLXRhYiAucS1jaGlwIC5xLWNoaXAtbWFpbiB7XFxuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XFxuICB9XFxuICAucS1mYWItYWN0aW9ucy5xLWZhYi1sZWZ0LFxcbiAgLnEtZmFiLWFjdGlvbnMucS1mYWItcmlnaHQge1xcbiAgICBkaXNwbGF5OiBibG9jaztcXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gIH1cXG4gIC5xLWl0ZW0tbWFpbiB7XFxuICAgIG1pbi13aWR0aDogMXB4O1xcbiAgfVxcbiAgLnEtbGF5b3V0LWRyYXdlci1taW5pIC5xLWl0ZW0ge1xcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XFxuICAgIHBhZGRpbmctcmlnaHQ6IDA7XFxuICB9XFxuICAucS1tb2RhbC1sYXlvdXQge1xcbiAgICBtaW4taGVpZ2h0OiA4MHZoICFpbXBvcnRhbnQ7XFxuICAgIG92ZXJmbG93OiBoaWRkZW47XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyB3ZWJraXQtYXV0b2ZpbGwtb24ge1xcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gICAgY29sb3I6ICNmZjk4MDA7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgd2Via2l0LWF1dG9maWxsLW9uIHtcXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICAgIGNvbG9yOiAjZmY5ODAwO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgd2Via2l0LWF1dG9maWxsLW9mZiB7XFxuICB0byB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHdlYmtpdC1hdXRvZmlsbC1vZmYge1xcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZSB7XFxuICAwJSB7XFxuICAgIGxlZnQ6IC0zNSU7XFxuICAgIHJpZ2h0OiAxMDAlO1xcbiAgfVxcbiAgNjAlIHtcXG4gICAgbGVmdDogMTAwJTtcXG4gICAgcmlnaHQ6IC05MCU7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgbGVmdDogMTAwJTtcXG4gICAgcmlnaHQ6IC05MCU7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1wcm9ncmVzcy1pbmRldGVybWluYXRlIHtcXG4gIDAlIHtcXG4gICAgbGVmdDogLTM1JTtcXG4gICAgcmlnaHQ6IDEwMCU7XFxuICB9XFxuICA2MCUge1xcbiAgICBsZWZ0OiAxMDAlO1xcbiAgICByaWdodDogLTkwJTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBsZWZ0OiAxMDAlO1xcbiAgICByaWdodDogLTkwJTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtcHJvZ3Jlc3MtaW5kZXRlcm1pbmF0ZS1zaG9ydCB7XFxuICAwJSB7XFxuICAgIGxlZnQ6IC0yMDAlO1xcbiAgICByaWdodDogMTAwJTtcXG4gIH1cXG4gIDYwJSB7XFxuICAgIGxlZnQ6IDEwNyU7XFxuICAgIHJpZ2h0OiAtOCU7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgbGVmdDogMTA3JTtcXG4gICAgcmlnaHQ6IC04JTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXByb2dyZXNzLWluZGV0ZXJtaW5hdGUtc2hvcnQge1xcbiAgMCUge1xcbiAgICBsZWZ0OiAtMjAwJTtcXG4gICAgcmlnaHQ6IDEwMCU7XFxuICB9XFxuICA2MCUge1xcbiAgICBsZWZ0OiAxMDclO1xcbiAgICByaWdodDogLTglO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGxlZnQ6IDEwNyU7XFxuICAgIHJpZ2h0OiAtOCU7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXByb2dyZXNzLXN0cmlwZXMge1xcbiAgZnJvbSB7XFxuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDQwcHggMDtcXG4gIH1cXG4gIHRvIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcHJvZ3Jlc3Mtc3RyaXBlcyB7XFxuICBmcm9tIHtcXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNDBweCAwO1xcbiAgfVxcbiAgdG8ge1xcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDA7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLW1hdC1kYXNoIHtcXG4gIDAlIHtcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogMSwgMjAwO1xcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDg5LCAyMDA7XFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMzVweDtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBzdHJva2UtZGFzaGFycmF5OiA4OSwgMjAwO1xcbiAgICBzdHJva2UtZGFzaG9mZnNldDogLTEyNHB4O1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtbWF0LWRhc2gge1xcbiAgMCUge1xcbiAgICBzdHJva2UtZGFzaGFycmF5OiAxLCAyMDA7XFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xcbiAgfVxcbiAgNTAlIHtcXG4gICAgc3Ryb2tlLWRhc2hhcnJheTogODksIDIwMDtcXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0zNXB4O1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDg5LCAyMDA7XFxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAtMTI0cHg7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLWhpZ2hsaWdodCB7XFxuICAwJSB7XFxuICAgIGJhY2tncm91bmQ6ICNjZGRjMzk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1oaWdobGlnaHQge1xcbiAgMCUge1xcbiAgICBiYWNrZ3JvdW5kOiAjY2RkYzM5O1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1yb3RhdGUge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDApIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMCkgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDI1JSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICA1MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICA3NSUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcm90YXRlIHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgwKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDApIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxuICAyNSUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgNTAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgNzUlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtYmxpbmsge1xcbiAgdG8ge1xcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1ibGluayB7XFxuICB0byB7XFxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtc3BpbiB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMzU5ZGVnKSAvKiBydGw6aWdub3JlICovO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM1OWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXNwaW4ge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDBkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gIH1cXG4gIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDM1OWRlZykgLyogcnRsOmlnbm9yZSAqLztcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNTlkZWcpIC8qIHJ0bDppZ25vcmUgKi87XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXBvcCB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gIH1cXG4gIDcwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjA3KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcG9wIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgfVxcbiAgNzAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMDcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNyk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLWZhZGUge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICB9XFxufVxcbkBrZXlmcmFtZXMgcS1mYWRlIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1zY2FsZSB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXNjYWxlIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDAuNyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjcpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIG9wYWNpdHk6IDE7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1ib3VuY2Uge1xcbiAgMCUsIDIwJSwgNTAlLCA4MCUsIDEwMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICB9XFxuICA0MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcXG4gIH1cXG4gIDYwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE1cHgpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtYm91bmNlIHtcXG4gIDAlLCAyMCUsIDUwJSwgODAlLCAxMDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xcbiAgfVxcbiAgNDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMzBweCk7XFxuICB9XFxuICA2MCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTVweCk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNXB4KTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtc2hha2Uge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtc2hha2Uge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gIH1cXG4gIDUwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxLjAyKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDIpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgxKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1wb3B1cC1kb3duIHtcXG4gIDAlIHtcXG4gICAgb3BhY2l0eTogMDtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgfVxcbiAgMzAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXBvcHVwLWRvd24ge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB9XFxuICAzMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5ALXdlYmtpdC1rZXlmcmFtZXMgcS1wb3B1cC11cCB7XFxuICAwJSB7XFxuICAgIG9wYWNpdHk6IDA7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwcHgpIHNjYWxlWSgwLjMpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XFxuICB9XFxuICAzMCUge1xcbiAgICBvcGFjaXR5OiAxO1xcbiAgfVxcbn1cXG5Aa2V5ZnJhbWVzIHEtcG9wdXAtdXAge1xcbiAgMCUge1xcbiAgICBvcGFjaXR5OiAwO1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMHB4KSBzY2FsZVkoMC4zKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTBweCkgc2NhbGVZKDAuMyk7XFxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xcbiAgfVxcbiAgMzAlIHtcXG4gICAgb3BhY2l0eTogMTtcXG4gIH1cXG59XFxuQC13ZWJraXQta2V5ZnJhbWVzIHEtc2xpZGUtbGVmdCB7XFxuICAwJSB7XFxuICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC03MCUpO1xcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNzAlKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXNsaWRlLWxlZnQge1xcbiAgMCUge1xcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNzAlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTcwJSk7XFxuICB9XFxufVxcbkAtd2Via2l0LWtleWZyYW1lcyBxLXNsaWRlLXJpZ2h0IHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNzAlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNzAlKTtcXG4gIH1cXG59XFxuQGtleWZyYW1lcyBxLXNsaWRlLXJpZ2h0IHtcXG4gIDAlIHtcXG4gICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNzAlKTtcXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNzAlKTtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiXFxuYnV0dG9uICsgYnV0dG9uW2RhdGEtdi00ZmJjNzM1Yl0ge1xcbiAgbWFyZ2luLWxlZnQ6IDAuNWVtO1xcbn1cXG5idXR0b25bZGF0YS12LTRmYmM3MzViXSB7XFxuICBwYWRkaW5nOiAwLjRlbSAwLjZlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICBvdXRsaW5lOiAwO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG5idXR0b25bZGlzYWJsZWRdW2RhdGEtdi00ZmJjNzM1Yl0ge1xcbiAgYm9yZGVyLWNvbG9yOiAjYWU2NWM1O1xcbiAgY3Vyc29yOiBkZWZhdWx0O1xcbn1cXG4ubW9kYWxbZGF0YS12LTRmYmM3MzViXSB7XFxuICBjb2xvcjogcmVkO1xcbn1cXG5cXG4vKipcXG4gKiBTZWUgaHR0cHM6Ly92dWUtbG9hZGVyLnZ1ZWpzLm9yZy9ndWlkZS9zY29wZWQtY3NzLmh0bWwjZGVlcC1zZWxlY3RvcnNcXG4gKiB0aGUgYD4+PmAgYWxsb3dzIHRvIGFwcGx5IHNjb3BlZCBjc3MgdG8gY2hpbGQgZWxlbWVudCB0aGF0IGlzIGdlbmVyYXRlZFxcbiAqIGR5bmFtaWNhbGx5XFxuKiovXFxuLm1vZGFsW2RhdGEtdi00ZmJjNzM1Yl0gLm1vZGFsLXNjcm9sbCB7XFxuICBjb2xvcjogcmVkO1xcbiAgbWF4LWhlaWdodDogbm9uZTtcXG59XFxuLm1vZGFsIC5tb2RhbC1ib2R5W2RhdGEtdi00ZmJjNzM1Yl0ge1xcbiAgbWF4LWhlaWdodDogbm9uZTtcXG59XFxuaDFbZGF0YS12LTRmYmM3MzViXSB7XFxuICBmb250LWZhbWlseTogQ291cmllcjtcXG4gIGZvbnQtc2l6ZTogMnJlbTtcXG59XFxuaDJbZGF0YS12LTRmYmM3MzViXSB7XFxuICBmb250LWZhbWlseTogQ291cmllcjtcXG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcXG4gIG1hcmdpbi10b3A6IDJyZW07XFxufVxcbi5hcHAgLnJvd1tkYXRhLXYtNGZiYzczNWJdIHtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbn1cXG4ucm93ICsgLnJvd1tkYXRhLXYtNGZiYzczNWJdIHtcXG4gIG1hcmdpbi10b3A6IDJlbTtcXG59XFxuLnJvdy1zbWFsbFtkYXRhLXYtNGZiYzczNWJdIHtcXG4gIG1hcmdpbi10b3A6IDFlbTtcXG59XFxuLmVtb2ppLW1hcnRbZGF0YS12LTRmYmM3MzViXSB7XFxuICBtYXJnaW46IDAgYXV0bztcXG4gIHRleHQtYWxpZ246IGxlZnQ7XFxufVxcbi5lbW9qaS1tYXJ0LXRpdGxlLWxhYmVsW2RhdGEtdi00ZmJjNzM1Yl0ge1xcbiAgZm9udC1zaXplOiAyMXB4O1xcbn1cXG4ucG9wdXBbZGF0YS12LTRmYmM3MzViXSB7XFxuICBwb3NpdGlvbjogZml4ZWQ7XFxuICB3aWR0aDogMTAwJTtcXG4gIGhlaWdodDogMTAwdmg7XFxuICBsZWZ0OiAwO1xcbiAgdG9wOiAwO1xcbiAgei1pbmRleDogMjAwO1xcbiAgYmFja2dyb3VuZDogcmViZWNjYXB1cnBsZTtcXG4gIG9wYWNpdHk6IDk1JTtcXG59XFxuLnBvcHVwLWJveFtkYXRhLXYtNGZiYzczNWJdIHtcXG4gIGhlaWdodDogMTAwJTtcXG4gIG92ZXJmbG93OiBhdXRvO1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwYWRkaW5nLXRvcDogMTIwcHg7XFxuICBwYWRkaW5nLWJvdHRvbTogODBweDtcXG59XFxuLnBvcHVwLWNvbnRlbnRbZGF0YS12LTRmYmM3MzViXSB7XFxuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcXG4gIC13ZWJraXQtYm94LXNoYWRvdzogMHB4IDI0cHggNTRweCByZ2JhKDIwLCAyOCwgNDksIDAuMTQpO1xcbiAgICAgICAgICBib3gtc2hhZG93OiAwcHggMjRweCA1NHB4IHJnYmEoMjAsIDI4LCA0OSwgMC4xNCk7XFxuICBib3JkZXItcmFkaXVzOiAxOHB4O1xcbiAgcGFkZGluZzogNnB4IDZweCA5cHggNnB4O1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBtYXgtd2lkdGg6IDQ2MnB4O1xcbiAgbWFyZ2luOiAwIGF1dG87XFxufVxcbi5wb3B1cC1jbG9zZVtkYXRhLXYtNGZiYzczNWJdIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMjBweDtcXG4gIHJpZ2h0OiAzMHB4O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG4ucm93LXNtYWxsLXBpY2tlcltkYXRhLXYtNGZiYzczNWJdIC5lbW9qaS1tYXJ0LWFuY2hvcnMgc3ZnIHtcXG4gIHdpZHRoOiA5cHg7XFxuICBoZWlnaHQ6IDlweDtcXG59XFxuLnJvdy1zbWFsbC1waWNrZXJbZGF0YS12LTRmYmM3MzViXSAuZW1vamktbWFydC10aXRsZS1sYWJlbCB7XFxuICBmb250LXNpemU6IDlweDtcXG59XFxuLnJvdy1zbWFsbC1waWNrZXJbZGF0YS12LTRmYmM3MzViXSAuZW1vamktbWFydC1wcmV2aWV3LWRhdGEge1xcbiAgbGVmdDogNDBweDtcXG4gIGZvbnQtc2l6ZTogOXB4O1xcbn1cXG4ucm93LXNtYWxsLXBpY2tlcltkYXRhLXYtNGZiYzczNWJdIC5lbW9qaS1tYXJ0LXByZXZpZXctbmFtZSB7XFxuICBmb250LXNpemU6IDlweDtcXG59XFxuLnJvdy1zbWFsbC1waWNrZXJbZGF0YS12LTRmYmM3MzViXSAuZW1vamktbWFydC1wcmV2aWV3LWVtb2ppIC5lbW9qaS10eXBlLW5hdGl2ZSB7XFxuICBmb250LXNpemU6IDEycHg7XFxuICB3aWR0aDogMTJweDtcXG4gIGhlaWdodDogMTJweDtcXG59XFxuXCIsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vZG9jcy9hcHAudnVlXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCI7QUErVEE7RUFDQSxrQkFBQTtBQUNBO0FBQ0E7RUFDQSxvQkFBQTtFQUNBLGtCQUFBO0VBQ0Esb0NBQUE7RUFDQSxnQkFBQTtFQUNBLFVBQUE7RUFDQSxlQUFBO0FBQ0E7QUFFQTtFQUNBLHFCQUFBO0VBQ0EsZUFBQTtBQUNBO0FBRUE7RUFDQSxVQUFBO0FBQ0E7O0FBRUE7Ozs7RUFJQTtBQUNBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBO0FBQ0E7QUFDQTtFQUNBLGdCQUFBO0FBQ0E7QUFFQTtFQUNBLG9CQUFBO0VBQ0EsZUFBQTtBQUNBO0FBRUE7RUFDQSxvQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7QUFDQTtBQUVBO0VBQ0EsY0FBQTtBQUNBO0FBRUE7RUFDQSxlQUFBO0FBQ0E7QUFFQTtFQUNBLGVBQUE7QUFDQTtBQUVBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBO0FBQ0E7QUFFQTtFQUNBLGVBQUE7QUFDQTtBQUVBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7RUFDQSxhQUFBO0VBQ0EsT0FBQTtFQUNBLE1BQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0FBQ0E7QUFDQTtFQUNBLFlBQUE7RUFDQSxjQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7QUFDQTtBQUNBO0VBQ0EsaUJBQUE7RUFDQSx3REFBQTtVQUFBLGdEQUFBO0VBQ0EsbUJBQUE7RUFDQSx3QkFBQTtFQUNBLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsY0FBQTtBQUNBO0FBQ0E7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtBQUNBO0FBRUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtBQUNBO0FBQ0E7RUFDQSxjQUFBO0FBQ0E7QUFDQTtFQUNBLFVBQUE7RUFDQSxjQUFBO0FBQ0E7QUFDQTtFQUNBLGNBQUE7QUFDQTtBQUNBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0FBQ0FcIixcInNvdXJjZXNDb250ZW50XCI6W1wiPHRlbXBsYXRlPlxcbiAgPGRpdiBjbGFzcz1cXFwiYXBwXFxcIj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8aDE+RW1vamkgTWFydCBWdWUg8J+PrDwvaDE+XFxuICAgIDwvZGl2PlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxlbW9qaSA6ZGF0YT1cXFwiaW5kZXhcXFwiIGVtb2ppPVxcXCI6c2FudGE6OnNraW4tdG9uZS0zOlxcXCIgOnNpemU9XFxcIjMyXFxcIiAvPlxcbiAgICAgIDxlbW9qaSA6ZGF0YT1cXFwiaW5kZXhcXFwiIGVtb2ppPVxcXCJzYW50YVxcXCIgc2V0PVxcXCJ0d2l0dGVyXFxcIiA6c2l6ZT1cXFwiMzJcXFwiIC8+XFxuICAgICAgPGVtb2ppIDpkYXRhPVxcXCJpbmRleFxcXCIgOmVtb2ppPVxcXCJzYW50YUVtb2ppT2JqZWN0XFxcIiA6c2l6ZT1cXFwiMzJcXFwiIC8+XFxuICAgIDwvZGl2PlxcblxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxidXR0b24gQGNsaWNrPVxcXCJ0b2dnbGVWaXNpYmxlXFxcIj5TaG93IC8gaGlkZSB0aGUgcGlja2VyPC9idXR0b24+XFxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XFxcInRvZ2dsZVZpc2libGVcXFwiIHYtaHRtbD1cXFwic21pbGVcXFwiPjwvYnV0dG9uPlxcbiAgICA8L2Rpdj5cXG5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8dGVtcGxhdGVcXG4gICAgICAgIHYtZm9yPVxcXCJzZXQgaW4gWyduYXRpdmUnLCAnYXBwbGUnLCAnZ29vZ2xlJywgJ3R3aXR0ZXInLCAnZmFjZWJvb2snXVxcXCJcXG4gICAgICA+XFxuICAgICAgICA8YnV0dG9uXFxuICAgICAgICAgIDprZXk9XFxcInNldFxcXCJcXG4gICAgICAgICAgQGNsaWNrPVxcXCJhY3RpdmVTZXQgPSBzZXRcXFwiXFxuICAgICAgICAgIDpkaXNhYmxlZD1cXFwiYWN0aXZlU2V0ID09IHNldFxcXCJcXG4gICAgICAgID5cXG4gICAgICAgICAge3sgc2V0IH19XFxuICAgICAgICA8L2J1dHRvbj5cXG4gICAgICA8L3RlbXBsYXRlPlxcbiAgICA8L2Rpdj5cXG5cXG4gICAgPGRpdiB2LWlmPVxcXCJpc1Zpc2libGVcXFwiIGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxwaWNrZXJcXG4gICAgICAgIDpkYXRhPVxcXCJpbmRleFxcXCJcXG4gICAgICAgIDpzZXQ9XFxcImFjdGl2ZVNldFxcXCJcXG4gICAgICAgIDpuYXRpdmU9XFxcIm5hdGl2ZVxcXCJcXG4gICAgICAgIDplbW9qaT1cXFwiZW1vamlcXFwiXFxuICAgICAgICA6ZW1vamlUb29sdGlwPVxcXCJ0cnVlXFxcIlxcbiAgICAgICAgOnRpdGxlPVxcXCJ0aXRsZVxcXCJcXG4gICAgICAgIDplbW9qaVNpemU9XFxcIjMwXFxcIlxcbiAgICAgICAgQHNlbGVjdD1cXFwic2hvd0Vtb2ppXFxcIlxcbiAgICAgIC8+XFxuICAgIDwvZGl2PlxcblxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxlbW9qaVxcbiAgICAgICAgdi1mb3I9XFxcImVtbyBpbiBzZWxlY3RlZEVtb2ppc1xcXCJcXG4gICAgICAgIDprZXk9XFxcImVtb1xcXCJcXG4gICAgICAgIDpkYXRhPVxcXCJpbmRleFxcXCJcXG4gICAgICAgIDplbW9qaT1cXFwiZW1vXFxcIlxcbiAgICAgICAgOnNldD1cXFwiYWN0aXZlU2V0XFxcIlxcbiAgICAgICAgOm5hdGl2ZT1cXFwibmF0aXZlXFxcIlxcbiAgICAgICAgOnNpemU9XFxcIjMyXFxcIlxcbiAgICAgIC8+XFxuICAgIDwvZGl2PlxcblxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIHt7IGVtb2ppc091dHB1dCB9fVxcbiAgICA8L2Rpdj5cXG5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93LXNtYWxsXFxcIj5cXG4gICAgICA8aWZyYW1lXFxuICAgICAgICBzcmM9XFxcImh0dHBzOi8vZ2hidG5zLmNvbS9naXRodWItYnRuLmh0bWw/dXNlcj1zZXJlYnJvdiZyZXBvPWVtb2ppLW1hcnQtdnVlJnR5cGU9c3RhciZjb3VudD10cnVlXFxcIlxcbiAgICAgICAgZnJhbWVCb3JkZXI9XFxcIjBcXFwiXFxuICAgICAgICBzY3JvbGxpbmc9XFxcIjBcXFwiXFxuICAgICAgICB3aWR0aD1cXFwiOTBweFxcXCJcXG4gICAgICAgIGhlaWdodD1cXFwiMjBweFxcXCJcXG4gICAgICA+PC9pZnJhbWU+XFxuICAgIDwvZGl2PlxcblxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPjwvZGl2PlxcbiAgICA8aDI+UURpYWxvZyBFeGFtcGxlPC9oMj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8cS1idG4gbGFiZWw9XFxcIk9wZW4gUURpYWxvZ1xcXCIgQGNsaWNrPVxcXCJlbW9qaVBpY2tlckRpYWxvZyA9IHRydWVcXFwiIC8+XFxuICAgIDwvZGl2PlxcblxcbiAgICA8cS1kaWFsb2cgdi1tb2RlbD1cXFwiZW1vamlQaWNrZXJEaWFsb2dcXFwiPlxcbiAgICAgIDx0ZW1wbGF0ZSB2LXNsb3Q6Ym9keSBzdHlsZT1cXFwiaGVpZ2h0OiA0NTBweFxcXCI+XFxuICAgICAgICA8cGlja2VyIDpkYXRhPVxcXCJpbmRleFxcXCIgOmVtb2ppU2l6ZT1cXFwiMjRcXFwiIDpuYXRpdmU9XFxcInRydWVcXFwiPjwvcGlja2VyPlxcbiAgICAgIDwvdGVtcGxhdGU+XFxuICAgIDwvcS1kaWFsb2c+XFxuXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+PC9kaXY+XFxuICAgIDxoMj5DdXN0b20gRGlhbG9nIEV4YW1wbGU8L2gyPlxcbiAgICA8ZGl2IGNsYXNzPVxcXCJyb3dcXFwiPlxcbiAgICAgIDxidXR0b24gQGNsaWNrPVxcXCJlbW9qaVBpY2tlckN1c3RvbURpYWxvZyA9IHRydWVcXFwiPlxcbiAgICAgICAgT3BlbiBDdXN0b20gRGlhbG9nXFxuICAgICAgPC9idXR0b24+XFxuICAgIDwvZGl2PlxcblxcbiAgICA8ZGl2IGNsYXNzPVxcXCJwb3B1cFxcXCIgdi1pZj1cXFwiZW1vamlQaWNrZXJDdXN0b21EaWFsb2dcXFwiPlxcbiAgICAgIDxkaXYgY2xhc3M9XFxcInBvcHVwLWJveFxcXCIgQGNsaWNrPVxcXCJlbW9qaVBpY2tlckN1c3RvbURpYWxvZyA9IGZhbHNlXFxcIj5cXG4gICAgICAgIDxkaXYgY2xhc3M9XFxcInBvcHVwLWNvbnRlbnRcXFwiIEBjbGljaz1cXFwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXFxcIj5cXG4gICAgICAgICAgPGRpdiBjbGFzcz1cXFwicG9wdXAtY2xvc2VcXFwiPlxcbiAgICAgICAgICAgIDxhIEBjbGljaz1cXFwiZW1vamlQaWNrZXJDdXN0b21EaWFsb2cgPSBmYWxzZVxcXCI+WDwvYT5cXG4gICAgICAgICAgPC9kaXY+XFxuICAgICAgICAgIDxoMj5FbW9qaSBTZWxlY3RvcjwvaDI+XFxuICAgICAgICAgIDxwaWNrZXIgOmRhdGE9XFxcImluZGV4XFxcIiA6ZW1vamlTaXplPVxcXCIyNFxcXCIgOm5hdGl2ZT1cXFwidHJ1ZVxcXCI+PC9waWNrZXI+XFxuICAgICAgICA8L2Rpdj5cXG4gICAgICA8L2Rpdj5cXG4gICAgPC9kaXY+XFxuXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+PC9kaXY+XFxuICAgIDxoMj5DdXN0b20gU2VhcmNoIEFuZCBQcmV2aWV3IFRlbXBsYXRlcyBFeGFtcGxlPC9oMj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8UGlja2VyIDpkYXRhPVxcXCJpbmRleFxcXCIgOm5hdGl2ZT1cXFwidHJ1ZVxcXCI+XFxuICAgICAgICA8dGVtcGxhdGUgc2xvdD1cXFwic2VhcmNoVGVtcGxhdGVcXFwiIHNsb3Qtc2NvcGU9XFxcInNsb3RQcm9wc1xcXCI+XFxuICAgICAgICAgIDxpbnB1dFxcbiAgICAgICAgICAgIHR5cGU9XFxcInRleHRcXFwiXFxuICAgICAgICAgICAgOnBsYWNlaG9sZGVyPVxcXCJzbG90UHJvcHMuaTE4bi5zZWFyY2hcXFwiXFxuICAgICAgICAgICAgdi1vbjppbnB1dD1cXFwic2xvdFByb3BzLm9uU2VhcmNoKCRldmVudC50YXJnZXQudmFsdWUpXFxcIlxcbiAgICAgICAgICAvPlxcbiAgICAgICAgPC90ZW1wbGF0ZT5cXG4gICAgICAgIDx0ZW1wbGF0ZSBzbG90PVxcXCJwcmV2aWV3VGVtcGxhdGVcXFwiIHNsb3Qtc2NvcGU9XFxcInNsb3RQcm9wc1xcXCI+XFxuICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImVtb2ppLW1hcnQtcHJldmlld1xcXCI+XFxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cXFwiZW1vamktbWFydC1wcmV2aWV3LWVtb2ppXFxcIj5cXG4gICAgICAgICAgICAgIDxFbW9qaVxcbiAgICAgICAgICAgICAgICA6ZGF0YT1cXFwic2xvdFByb3BzLmRhdGFcXFwiXFxuICAgICAgICAgICAgICAgIDplbW9qaT1cXFwic2xvdFByb3BzLmVtb2ppID8gc2xvdFByb3BzLmVtb2ppIDogJ3BvaW50X3VwJ1xcXCJcXG4gICAgICAgICAgICAgICAgOm5hdGl2ZT1cXFwic2xvdFByb3BzLmVtb2ppUHJvcHMubmF0aXZlXFxcIlxcbiAgICAgICAgICAgICAgICA6c2tpbj1cXFwic2xvdFByb3BzLmVtb2ppUHJvcHMuc2tpblxcXCJcXG4gICAgICAgICAgICAgICAgOnNldD1cXFwic2xvdFByb3BzLmVtb2ppUHJvcHMuc2V0XFxcIlxcbiAgICAgICAgICAgICAgLz5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJlbW9qaS1tYXJ0LXByZXZpZXctZGF0YVxcXCI+XFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVxcXCJlbW9qaS1tYXJ0LXByZXZpZXctbmFtZVxcXCI+XFxuICAgICAgICAgICAgICAgIHt7XFxuICAgICAgICAgICAgICAgICAgc2xvdFByb3BzLmVtb2ppXFxuICAgICAgICAgICAgICAgICAgICA/ICd+JyArIHNsb3RQcm9wcy5lbW9qaS5uYW1lICsgJ34nXFxuICAgICAgICAgICAgICAgICAgICA6ICdDaG9vc2UuLi4nXFxuICAgICAgICAgICAgICAgIH19XFxuICAgICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XFxcImVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWVzXFxcIj5cXG4gICAgICAgICAgICAgICAge3sgc2xvdFByb3BzLmVtb2ppID8gc2xvdFByb3BzLmVtb2ppLmNvbG9ucyA6ICcnIH19XFxuICAgICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgICA8L2Rpdj5cXG4gICAgICAgICAgPC9kaXY+XFxuICAgICAgICA8L3RlbXBsYXRlPlxcbiAgICAgIDwvUGlja2VyPlxcbiAgICA8L2Rpdj5cXG5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj48L2Rpdj5cXG4gICAgPGgyPkZpbHRlcmVkIHBpY2tlciBleGFtcGxlPC9oMj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIiB2LXNob3c9XFxcImZsYWdzVmlzaWJsZVxcXCI+XFxuICAgICAgPFBpY2tlclxcbiAgICAgICAgOm5hdGl2ZT1cXFwidHJ1ZVxcXCJcXG4gICAgICAgIGVtb2ppPVxcXCJmbGFnLXRmXFxcIlxcbiAgICAgICAgOmVtb2ppU2l6ZT1cXFwiMThcXFwiXFxuICAgICAgICA6ZGF0YT1cXFwiaW5kZXhGaWx0ZXJlZFxcXCJcXG4gICAgICAgIHJlZj1cXFwiZmxhZ3NcXFwiXFxuICAgICAgLz5cXG4gICAgPC9kaXY+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPGJ1dHRvbiBAY2xpY2s9XFxcInRvZ2dsZUZsYWdzVmlzaWJsZVxcXCI+XFxuICAgICAgICBTaG93IC8gaGlkZSB0aGUgZmxhZ3MgcGlja2VyICh3aXRoIHYtc2hvdylcXG4gICAgICA8L2J1dHRvbj5cXG4gICAgPC9kaXY+XFxuXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+PC9kaXY+XFxuICAgIDxoMj5JMThuIHBpY2tlciBleGFtcGxlPC9oMj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj5cXG4gICAgICA8UGlja2VyIGVtb2ppPVxcXCJkZXBhcnRtZW50X3N0b3JlXFxcIiA6ZGF0YT1cXFwiaW5kZXhJMThuXFxcIiA6aTE4bj1cXFwiaTE4blxcXCIgLz5cXG4gICAgPC9kaXY+XFxuXFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+PC9kaXY+XFxuICAgIDxoMj5DdXN0b20gb3JkZXIgZXhhbXBsZTwvaDI+XFxuICAgIDxkaXYgY2xhc3M9XFxcInJvd1xcXCI+XFxuICAgICAgPFBpY2tlciA6ZGF0YT1cXFwiaW5kZXhJbmNsdWRlXFxcIiAvPlxcbiAgICA8L2Rpdj5cXG5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93XFxcIj48L2Rpdj5cXG4gICAgPGgyPlNtYWxsIHBpY2tlciBleGFtcGxlPC9oMj5cXG4gICAgPGRpdiBjbGFzcz1cXFwicm93IHJvdy1zbWFsbC1waWNrZXJcXFwiPlxcbiAgICAgIDxQaWNrZXJcXG4gICAgICAgIDpkYXRhPVxcXCJpbmRleFxcXCJcXG4gICAgICAgIDpuYXRpdmU9XFxcIm5hdGl2ZVxcXCJcXG4gICAgICAgIDpzZXQ9XFxcImFjdGl2ZVNldFxcXCJcXG4gICAgICAgIDplbW9qaVNpemU9XFxcIjEyXFxcIlxcbiAgICAgICAgOnBlckxpbmU9XFxcIjVcXFwiXFxuICAgICAgLz5cXG4gICAgPC9kaXY+XFxuICA8L2Rpdj5cXG48L3RlbXBsYXRlPlxcblxcbjxzY3JpcHQ+XFxuaW1wb3J0IGRhdGEgZnJvbSAnLi4vZGF0YS9hbGwuanNvbidcXG5pbXBvcnQgeyBQaWNrZXIsIEVtb2ppLCBFbW9qaUluZGV4IH0gZnJvbSAnLi4vc3JjJ1xcbmltcG9ydCAnLi4vY3NzL2Vtb2ppLW1hcnQuY3NzJ1xcblxcbmltcG9ydCB7IFFCdG4sIFFEaWFsb2cgfSBmcm9tICdxdWFzYXItZnJhbWV3b3JrL2Rpc3QvcXVhc2FyLm1hdC5lc20nXFxuXFxuY29uc3QgQ1VTVE9NX0VNT0pJUyA9IFtcXG4gIHtcXG4gICAgbmFtZTogJ1BhcnR5IFBhcnJvdCcsXFxuICAgIHNob3J0X25hbWVzOiBbJ3BhcnJvdCddLFxcbiAgICBrZXl3b3JkczogWydwYXJ0eSddLFxcbiAgICBpbWFnZVVybDogJy4vaW1hZ2VzL3BhcnJvdC5naWYnLFxcbiAgfSxcXG4gIHtcXG4gICAgbmFtZTogJ09jdG9jYXQnLFxcbiAgICBzaG9ydF9uYW1lczogWydvY3RvY2F0J10sXFxuICAgIGtleXdvcmRzOiBbJ2dpdGh1YiddLFxcbiAgICBpbWFnZVVybDogJ2h0dHBzOi8vZ2l0aHViLmdpdGh1YmFzc2V0cy5jb20vaW1hZ2VzL2ljb25zL2Vtb2ppL29jdG9jYXQucG5nJyxcXG4gIH0sXFxuICB7XFxuICAgIG5hbWU6ICdTcXVpcnJlbCcsXFxuICAgIHNob3J0X25hbWVzOiBbJ3NoaXBpdCcsICdzcXVpcnJlbCddLFxcbiAgICBrZXl3b3JkczogWydnaXRodWInXSxcXG4gICAgaW1hZ2VVcmw6ICdodHRwczovL2dpdGh1Yi5naXRodWJhc3NldHMuY29tL2ltYWdlcy9pY29ucy9lbW9qaS9zaGlwaXQucG5nJyxcXG4gIH0sXFxuXVxcblxcbmxldCBpbmRleCA9IG5ldyBFbW9qaUluZGV4KGRhdGEsIHtcXG4gIGN1c3RvbTogQ1VTVE9NX0VNT0pJUyxcXG59KVxcblxcbmxldCBpbmRleEZpbHRlcmVkID0gbmV3IEVtb2ppSW5kZXgoZGF0YSwge1xcbiAgY3VzdG9tOiBDVVNUT01fRU1PSklTLFxcbiAgZW1vamlzVG9TaG93RmlsdGVyOiAoZW1vamkpID0+IHtcXG4gICAgcmV0dXJuIGVtb2ppLnNob3J0X25hbWVzWzBdLm1hdGNoKC9eZmxhZy4qLykgIT09IG51bGxcXG4gIH0sXFxufSlcXG5cXG5jb25zdCBpMThuID0ge1xcbiAgY2F0ZWdvcmllczoge1xcbiAgICBzZWFyY2g6ICfmkJzntKLnu5PmnpwnLFxcbiAgICByZWNlbnQ6ICfnu4/luLjkvb/nlKgnLFxcbiAgICBzbWlsZXlzOiAn5b+D5oOFJyxcXG4gICAgcGVvcGxlOiAn5Lq654mpJyxcXG4gICAgbmF0dXJlOiAn5Yqo54mpICYg5aSn6Ieq54S2JyxcXG4gICAgZm9vZHM6ICfpo5/niakgJiDppa7mlpknLFxcbiAgICBhY3Rpdml0eTogJ+a0u+WKqCcsXFxuICAgIHBsYWNlczogJ+aXheihjCAmIOWcsOaghycsXFxuICAgIG9iamVjdHM6ICfniankvZMnLFxcbiAgICBzeW1ib2xzOiAn56ym5Y+3JyxcXG4gICAgZmxhZ3M6ICflm73ml5cnLFxcbiAgICBjdXN0b206ICfoh6rlrprkuYknLFxcbiAgfSxcXG59XFxuXFxuY29uc3QgaW5kZXhJMThuID0gbmV3IEVtb2ppSW5kZXgoZGF0YSwge1xcbiAgZXhjbHVkZTogW1xcbiAgICAnZmxhZ3MnLFxcbiAgICAnc3ltYm9scycsXFxuICAgICdvYmplY3RzJyxcXG4gICAgJ2FjdGl2aXR5JyxcXG4gICAgJ2Zvb2RzJyxcXG4gICAgJ3Blb3BsZScsXFxuICAgICdwbGFjZXMnLFxcbiAgXSxcXG59KVxcblxcbmNvbnN0IGluZGV4SW5jbHVkZSA9IG5ldyBFbW9qaUluZGV4KGRhdGEsIHtcXG4gIGluY2x1ZGU6IFsnbmF0dXJlJywgJ3NtaWxleXMnLCAncmVjZW50J10sXFxufSlcXG5cXG5leHBvcnQgZGVmYXVsdCB7XFxuICBkYXRhKCkge1xcbiAgICByZXR1cm4ge1xcbiAgICAgIGluZGV4OiBpbmRleCxcXG4gICAgICBpbmRleEZpbHRlcmVkOiBpbmRleEZpbHRlcmVkLFxcbiAgICAgIGluZGV4SW5jbHVkZTogaW5kZXhJbmNsdWRlLFxcbiAgICAgIGluZGV4STE4bjogaW5kZXhJMThuLFxcbiAgICAgIGkxOG46IGkxOG4sXFxuICAgICAgYWN0aXZlU2V0OiAnbmF0aXZlJyxcXG4gICAgICBlbW9qaTogJ3BvaW50X3VwJyxcXG4gICAgICB0aXRsZTogJ1BpY2sgeW91ciBlbW9qaeKApicsXFxuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxcbiAgICAgIGVtb2ppUGlja2VyRGlhbG9nOiBmYWxzZSxcXG4gICAgICBlbW9qaVBpY2tlckN1c3RvbURpYWxvZzogZmFsc2UsXFxuICAgICAgZW1vamlzT3V0cHV0OiAnJyxcXG4gICAgICBzZWxlY3RlZEVtb2ppczogW10sXFxuICAgICAgZmxhZ3NWaXNpYmxlOiB0cnVlLFxcbiAgICB9XFxuICB9LFxcbiAgY29tcHV0ZWQ6IHtcXG4gICAgbmF0aXZlKCkge1xcbiAgICAgIHJldHVybiB0aGlzLmFjdGl2ZVNldCA9PSAnbmF0aXZlJ1xcbiAgICB9LFxcbiAgICBzbWlsZSgpIHtcXG4gICAgICAvLyBTdGF0aWMgZW1vamkgZXhhbXBsZVxcbiAgICAgIGxldCBlbW9qaSA9IGluZGV4LmZpbmRFbW9qaSgnOnNtaWxlOicpXFxuICAgICAgLy8gTm90ZSwgdGhhdCBwb3NpdGlvbiBpbiB0aGUgZW1vamkgc2hlZXQgaXMgY2FsY3VsYXRlZCBieVxcbiAgICAgIC8vIGBlbW9qaWAgb2JqZWN0XFxuICAgICAgbGV0IHN0eWxlID0gYGJhY2tncm91bmQtcG9zaXRpb246ICR7ZW1vamkuZ2V0UG9zaXRpb24oKX07IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL3VucGtnLmNvbS9lbW9qaS1kYXRhc291cmNlLXR3aXR0ZXJAMTQuMC4wL2ltZy90d2l0dGVyL3NoZWV0cy0yNTYvNjQucG5nKTsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBiYWNrZ3JvdW5kLXNpemU6IDU3MDAlYFxcbiAgICAgIHJldHVybiBgPGRpdiBjbGFzcz0nZW1vamknIHN0eWxlPVxcXCIke3N0eWxlfVxcXCI+PC9kaXY+YFxcbiAgICB9LFxcbiAgICBzYW50YUVtb2ppT2JqZWN0KCkge1xcbiAgICAgIHJldHVybiBpbmRleC5maW5kRW1vamkoJzpzYW50YTonKVxcbiAgICB9LFxcbiAgfSxcXG4gIG1ldGhvZHM6IHtcXG4gICAgdG9nZ2xlVmlzaWJsZSgpIHtcXG4gICAgICB0aGlzLmlzVmlzaWJsZSA9ICF0aGlzLmlzVmlzaWJsZVxcbiAgICB9LFxcbiAgICB0b2dnbGVGbGFnc1Zpc2libGUoKSB7XFxuICAgICAgdGhpcy5mbGFnc1Zpc2libGUgPSAhdGhpcy5mbGFnc1Zpc2libGVcXG4gICAgICBpZiAoIXRoaXMuZmxhZ3NWaXNpYmxlKSB7XFxuICAgICAgICB0aGlzLiRyZWZzLmZsYWdzLm9uQW5jaG9yQ2xpY2sodGhpcy4kcmVmcy5mbGFncy5jYXRlZ29yaWVzWzBdKVxcbiAgICAgIH1cXG4gICAgfSxcXG4gICAgc2hvd0Vtb2ppKGVtb2ppKSB7XFxuICAgICAgdGhpcy5zZWxlY3RlZEVtb2ppcy5wdXNoKGVtb2ppKVxcbiAgICAgIGlmIChlbW9qaS5uYXRpdmUpIHtcXG4gICAgICAgIHRoaXMuZW1vamlzT3V0cHV0ID0gdGhpcy5lbW9qaXNPdXRwdXQgKyBlbW9qaS5uYXRpdmVcXG4gICAgICB9IGVsc2Uge1xcbiAgICAgICAgdGhpcy5lbW9qaXNPdXRwdXQgPSB0aGlzLmVtb2ppc091dHB1dCArICc/J1xcbiAgICAgIH1cXG4gICAgfSxcXG4gIH0sXFxuICBjb21wb25lbnRzOiB7XFxuICAgIFBpY2tlcixcXG4gICAgRW1vamksXFxuICAgIFFCdG4sXFxuICAgIFFEaWFsb2csXFxuICB9LFxcbn1cXG48L3NjcmlwdD5cXG5cXG48c3R5bGUgc2NvcGVkPlxcbmJ1dHRvbiArIGJ1dHRvbiB7XFxuICBtYXJnaW4tbGVmdDogMC41ZW07XFxufVxcbmJ1dHRvbiB7XFxuICBwYWRkaW5nOiAwLjRlbSAwLjZlbTtcXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcXG4gIGJhY2tncm91bmQ6ICNmZmY7XFxuICBvdXRsaW5lOiAwO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG5cXG5idXR0b25bZGlzYWJsZWRdIHtcXG4gIGJvcmRlci1jb2xvcjogI2FlNjVjNTtcXG4gIGN1cnNvcjogZGVmYXVsdDtcXG59XFxuXFxuLm1vZGFsIHtcXG4gIGNvbG9yOiByZWQ7XFxufVxcblxcbi8qKlxcbiAqIFNlZSBodHRwczovL3Z1ZS1sb2FkZXIudnVlanMub3JnL2d1aWRlL3Njb3BlZC1jc3MuaHRtbCNkZWVwLXNlbGVjdG9yc1xcbiAqIHRoZSBgPj4+YCBhbGxvd3MgdG8gYXBwbHkgc2NvcGVkIGNzcyB0byBjaGlsZCBlbGVtZW50IHRoYXQgaXMgZ2VuZXJhdGVkXFxuICogZHluYW1pY2FsbHlcXG4qKi9cXG4ubW9kYWwgPj4+IC5tb2RhbC1zY3JvbGwge1xcbiAgY29sb3I6IHJlZDtcXG4gIG1heC1oZWlnaHQ6IG5vbmU7XFxufVxcbi5tb2RhbCAubW9kYWwtYm9keSB7XFxuICBtYXgtaGVpZ2h0OiBub25lO1xcbn1cXG5cXG5oMSB7XFxuICBmb250LWZhbWlseTogQ291cmllcjtcXG4gIGZvbnQtc2l6ZTogMnJlbTtcXG59XFxuXFxuaDIge1xcbiAgZm9udC1mYW1pbHk6IENvdXJpZXI7XFxuICBmb250LXNpemU6IDEuMjVyZW07XFxuICBtYXJnaW4tdG9wOiAycmVtO1xcbn1cXG5cXG4uYXBwIC5yb3cge1xcbiAgZGlzcGxheTogYmxvY2s7XFxufVxcblxcbi5yb3cgKyAucm93IHtcXG4gIG1hcmdpbi10b3A6IDJlbTtcXG59XFxuXFxuLnJvdy1zbWFsbCB7XFxuICBtYXJnaW4tdG9wOiAxZW07XFxufVxcblxcbi5lbW9qaS1tYXJ0IHtcXG4gIG1hcmdpbjogMCBhdXRvO1xcbiAgdGV4dC1hbGlnbjogbGVmdDtcXG59XFxuXFxuLmVtb2ppLW1hcnQtdGl0bGUtbGFiZWwge1xcbiAgZm9udC1zaXplOiAyMXB4O1xcbn1cXG5cXG4ucG9wdXAge1xcbiAgcG9zaXRpb246IGZpeGVkO1xcbiAgd2lkdGg6IDEwMCU7XFxuICBoZWlnaHQ6IDEwMHZoO1xcbiAgbGVmdDogMDtcXG4gIHRvcDogMDtcXG4gIHotaW5kZXg6IDIwMDtcXG4gIGJhY2tncm91bmQ6IHJlYmVjY2FwdXJwbGU7XFxuICBvcGFjaXR5OiA5NSU7XFxufVxcbi5wb3B1cC1ib3gge1xcbiAgaGVpZ2h0OiAxMDAlO1xcbiAgb3ZlcmZsb3c6IGF1dG87XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBhZGRpbmctdG9wOiAxMjBweDtcXG4gIHBhZGRpbmctYm90dG9tOiA4MHB4O1xcbn1cXG4ucG9wdXAtY29udGVudCB7XFxuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcXG4gIGJveC1zaGFkb3c6IDBweCAyNHB4IDU0cHggcmdiYSgyMCwgMjgsIDQ5LCAwLjE0KTtcXG4gIGJvcmRlci1yYWRpdXM6IDE4cHg7XFxuICBwYWRkaW5nOiA2cHggNnB4IDlweCA2cHg7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB3aWR0aDogMTAwJTtcXG4gIG1heC13aWR0aDogNDYycHg7XFxuICBtYXJnaW46IDAgYXV0bztcXG59XFxuLnBvcHVwLWNsb3NlIHtcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHRvcDogMjBweDtcXG4gIHJpZ2h0OiAzMHB4O1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG5cXG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtYW5jaG9ycyBzdmcge1xcbiAgd2lkdGg6IDlweDtcXG4gIGhlaWdodDogOXB4O1xcbn1cXG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtdGl0bGUtbGFiZWwge1xcbiAgZm9udC1zaXplOiA5cHg7XFxufVxcbi5yb3ctc21hbGwtcGlja2VyID4+PiAuZW1vamktbWFydC1wcmV2aWV3LWRhdGEge1xcbiAgbGVmdDogNDBweDtcXG4gIGZvbnQtc2l6ZTogOXB4O1xcbn1cXG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtcHJldmlldy1uYW1lIHtcXG4gIGZvbnQtc2l6ZTogOXB4O1xcbn1cXG4ucm93LXNtYWxsLXBpY2tlciA+Pj4gLmVtb2ppLW1hcnQtcHJldmlldy1lbW9qaSAuZW1vamktdHlwZS1uYXRpdmUge1xcbiAgZm9udC1zaXplOiAxMnB4O1xcbiAgd2lkdGg6IDEycHg7XFxuICBoZWlnaHQ6IDEycHg7XFxufVxcbjwvc3R5bGU+XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIlwidXNlIHN0cmljdFwiO1xuXG4vKlxuICBNSVQgTGljZW5zZSBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocFxuICBBdXRob3IgVG9iaWFzIEtvcHBlcnMgQHNva3JhXG4qL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY3NzV2l0aE1hcHBpbmdUb1N0cmluZykge1xuICB2YXIgbGlzdCA9IFtdOyAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG5cbiAgbGlzdC50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgdmFyIGNvbnRlbnQgPSBcIlwiO1xuICAgICAgdmFyIG5lZWRMYXllciA9IHR5cGVvZiBpdGVtWzVdICE9PSBcInVuZGVmaW5lZFwiO1xuXG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQoaXRlbVs0XSwgXCIpIHtcIik7XG4gICAgICB9XG5cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIik7XG4gICAgICB9XG5cbiAgICAgIGlmIChuZWVkTGF5ZXIpIHtcbiAgICAgICAgY29udGVudCArPSBcIkBsYXllclwiLmNvbmNhdChpdGVtWzVdLmxlbmd0aCA+IDAgPyBcIiBcIi5jb25jYXQoaXRlbVs1XSkgOiBcIlwiLCBcIiB7XCIpO1xuICAgICAgfVxuXG4gICAgICBjb250ZW50ICs9IGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSk7XG5cbiAgICAgIGlmIChuZWVkTGF5ZXIpIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cblxuICAgICAgaWYgKGl0ZW1bMl0pIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cblxuICAgICAgaWYgKGl0ZW1bNF0pIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbihcIlwiKTtcbiAgfTsgLy8gaW1wb3J0IGEgbGlzdCBvZiBtb2R1bGVzIGludG8gdGhlIGxpc3RcblxuXG4gIGxpc3QuaSA9IGZ1bmN0aW9uIGkobW9kdWxlcywgbWVkaWEsIGRlZHVwZSwgc3VwcG9ydHMsIGxheWVyKSB7XG4gICAgaWYgKHR5cGVvZiBtb2R1bGVzID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBtb2R1bGVzID0gW1tudWxsLCBtb2R1bGVzLCB1bmRlZmluZWRdXTtcbiAgICB9XG5cbiAgICB2YXIgYWxyZWFkeUltcG9ydGVkTW9kdWxlcyA9IHt9O1xuXG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCB0aGlzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgIHZhciBpZCA9IHRoaXNba11bMF07XG5cbiAgICAgICAgaWYgKGlkICE9IG51bGwpIHtcbiAgICAgICAgICBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2lkXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKHZhciBfayA9IDA7IF9rIDwgbW9kdWxlcy5sZW5ndGg7IF9rKyspIHtcbiAgICAgIHZhciBpdGVtID0gW10uY29uY2F0KG1vZHVsZXNbX2tdKTtcblxuICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGxheWVyICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbVs1XSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgIGl0ZW1bNV0gPSBsYXllcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAbGF5ZXJcIi5jb25jYXQoaXRlbVs1XS5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KGl0ZW1bNV0pIDogXCJcIiwgXCIge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bNV0gPSBsYXllcjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAobWVkaWEpIHtcbiAgICAgICAgaWYgKCFpdGVtWzJdKSB7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBtZWRpYSBcIi5jb25jYXQoaXRlbVsyXSwgXCIge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bMl0gPSBtZWRpYTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoc3VwcG9ydHMpIHtcbiAgICAgICAgaWYgKCFpdGVtWzRdKSB7XG4gICAgICAgICAgaXRlbVs0XSA9IFwiXCIuY29uY2F0KHN1cHBvcnRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bNF0gPSBzdXBwb3J0cztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsaXN0LnB1c2goaXRlbSk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBsaXN0O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodXJsLCBvcHRpb25zKSB7XG4gIGlmICghb3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSB7fTtcbiAgfVxuXG4gIGlmICghdXJsKSB7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxuXG4gIHVybCA9IFN0cmluZyh1cmwuX19lc01vZHVsZSA/IHVybC5kZWZhdWx0IDogdXJsKTsgLy8gSWYgdXJsIGlzIGFscmVhZHkgd3JhcHBlZCBpbiBxdW90ZXMsIHJlbW92ZSB0aGVtXG5cbiAgaWYgKC9eWydcIl0uKlsnXCJdJC8udGVzdCh1cmwpKSB7XG4gICAgdXJsID0gdXJsLnNsaWNlKDEsIC0xKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLmhhc2gpIHtcbiAgICB1cmwgKz0gb3B0aW9ucy5oYXNoO1xuICB9IC8vIFNob3VsZCB1cmwgYmUgd3JhcHBlZD9cbiAgLy8gU2VlIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTMvI3VybHNcblxuXG4gIGlmICgvW1wiJygpIFxcdFxcbl18KCUyMCkvLnRlc3QodXJsKSB8fCBvcHRpb25zLm5lZWRRdW90ZXMpIHtcbiAgICByZXR1cm4gXCJcXFwiXCIuY29uY2F0KHVybC5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJykucmVwbGFjZSgvXFxuL2csIFwiXFxcXG5cIiksIFwiXFxcIlwiKTtcbiAgfVxuXG4gIHJldHVybiB1cmw7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gIHZhciBjb250ZW50ID0gaXRlbVsxXTtcbiAgdmFyIGNzc01hcHBpbmcgPSBpdGVtWzNdO1xuXG4gIGlmICghY3NzTWFwcGluZykge1xuICAgIHJldHVybiBjb250ZW50O1xuICB9XG5cbiAgaWYgKHR5cGVvZiBidG9hID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoY3NzTWFwcGluZykpKSk7XG4gICAgdmFyIGRhdGEgPSBcInNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFwiLmNvbmNhdChiYXNlNjQpO1xuICAgIHZhciBzb3VyY2VNYXBwaW5nID0gXCIvKiMgXCIuY29uY2F0KGRhdGEsIFwiICovXCIpO1xuICAgIHZhciBzb3VyY2VVUkxzID0gY3NzTWFwcGluZy5zb3VyY2VzLm1hcChmdW5jdGlvbiAoc291cmNlKSB7XG4gICAgICByZXR1cm4gXCIvKiMgc291cmNlVVJMPVwiLmNvbmNhdChjc3NNYXBwaW5nLnNvdXJjZVJvb3QgfHwgXCJcIikuY29uY2F0KHNvdXJjZSwgXCIgKi9cIik7XG4gICAgfSk7XG4gICAgcmV0dXJuIFtjb250ZW50XS5jb25jYXQoc291cmNlVVJMcykuY29uY2F0KFtzb3VyY2VNYXBwaW5nXSkuam9pbihcIlxcblwiKTtcbiAgfVxuXG4gIHJldHVybiBbY29udGVudF0uam9pbihcIlxcblwiKTtcbn07IiwiLyohXG4gKiBRdWFzYXIgRnJhbWV3b3JrIHYwLjE3LjIwXG4gKiAoYykgMjAxNi1wcmVzZW50IFJhenZhbiBTdG9lbmVzY3VcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS5cbiAqL1xudmFyIHdlYlN0b3JhZ2UsaXNTU1I9XCJ1bmRlZmluZWRcIj09dHlwZW9mIHdpbmRvdyxmcm9tU1NSPSExLG9uU1NSPWlzU1NSO2Z1bmN0aW9uIGdldE1hdGNoKHQsZSl7dmFyIGk9LyhlZGdlKVxcLyhbXFx3Ll0rKS8uZXhlYyh0KXx8LyhvcHIpW1xcL10oW1xcdy5dKykvLmV4ZWModCl8fC8odml2YWxkaSlbXFwvXShbXFx3Ll0rKS8uZXhlYyh0KXx8LyhjaHJvbWUpW1xcL10oW1xcdy5dKykvLmV4ZWModCl8fC8oaWVtb2JpbGUpW1xcL10oW1xcdy5dKykvLmV4ZWModCl8fC8odmVyc2lvbikoYXBwbGV3ZWJraXQpW1xcL10oW1xcdy5dKykuKihzYWZhcmkpW1xcL10oW1xcdy5dKykvLmV4ZWModCl8fC8od2Via2l0KVtcXC9dKFtcXHcuXSspLioodmVyc2lvbilbXFwvXShbXFx3Ll0rKS4qKHNhZmFyaSlbXFwvXShbXFx3Ll0rKS8uZXhlYyh0KXx8Lyh3ZWJraXQpW1xcL10oW1xcdy5dKykvLmV4ZWModCl8fC8ob3BlcmEpKD86Lip2ZXJzaW9ufClbXFwvXShbXFx3Ll0rKS8uZXhlYyh0KXx8Lyhtc2llKSAoW1xcdy5dKykvLmV4ZWModCl8fHQuaW5kZXhPZihcInRyaWRlbnRcIik+PTAmJi8ocnYpKD86OnwgKShbXFx3Ll0rKS8uZXhlYyh0KXx8dC5pbmRleE9mKFwiY29tcGF0aWJsZVwiKTwwJiYvKG1vemlsbGEpKD86Lio/IHJ2OihbXFx3Ll0rKXwpLy5leGVjKHQpfHxbXTtyZXR1cm57YnJvd3NlcjppWzVdfHxpWzNdfHxpWzFdfHxcIlwiLHZlcnNpb246aVsyXXx8aVs0XXx8XCIwXCIsdmVyc2lvbk51bWJlcjppWzRdfHxpWzJdfHxcIjBcIixwbGF0Zm9ybTplWzBdfHxcIlwifX1mdW5jdGlvbiBnZXRQbGF0Zm9ybU1hdGNoKHQpe3JldHVybi8oaXBhZCkvLmV4ZWModCl8fC8oaXBvZCkvLmV4ZWModCl8fC8od2luZG93cyBwaG9uZSkvLmV4ZWModCl8fC8oaXBob25lKS8uZXhlYyh0KXx8LyhraW5kbGUpLy5leGVjKHQpfHwvKHNpbGspLy5leGVjKHQpfHwvKGFuZHJvaWQpLy5leGVjKHQpfHwvKHdpbikvLmV4ZWModCl8fC8obWFjKS8uZXhlYyh0KXx8LyhsaW51eCkvLmV4ZWModCl8fC8oY3JvcykvLmV4ZWModCl8fC8ocGxheWJvb2spLy5leGVjKHQpfHwvKGJiKS8uZXhlYyh0KXx8LyhibGFja2JlcnJ5KS8uZXhlYyh0KXx8W119ZnVuY3Rpb24gZ2V0UGxhdGZvcm0odCl7dmFyIGU9Z2V0TWF0Y2godD0odHx8bmF2aWdhdG9yLnVzZXJBZ2VudHx8bmF2aWdhdG9yLnZlbmRvcnx8d2luZG93Lm9wZXJhKS50b0xvd2VyQ2FzZSgpLGdldFBsYXRmb3JtTWF0Y2godCkpLGk9e307cmV0dXJuIGUuYnJvd3NlciYmKGlbZS5icm93c2VyXT0hMCxpLnZlcnNpb249ZS52ZXJzaW9uLGkudmVyc2lvbk51bWJlcj1wYXJzZUludChlLnZlcnNpb25OdW1iZXIsMTApKSxlLnBsYXRmb3JtJiYoaVtlLnBsYXRmb3JtXT0hMCksKGkuYW5kcm9pZHx8aS5iYnx8aS5ibGFja2JlcnJ5fHxpLmlwYWR8fGkuaXBob25lfHxpLmlwb2R8fGkua2luZGxlfHxpLnBsYXlib29rfHxpLnNpbGt8fGlbXCJ3aW5kb3dzIHBob25lXCJdKSYmKGkubW9iaWxlPSEwKSwoaS5pcG9kfHxpLmlwYWR8fGkuaXBob25lKSYmKGkuaW9zPSEwKSxpW1wid2luZG93cyBwaG9uZVwiXSYmKGkud2lucGhvbmU9ITAsZGVsZXRlIGlbXCJ3aW5kb3dzIHBob25lXCJdKSwoaS5jcm9zfHxpLm1hY3x8aS5saW51eHx8aS53aW4pJiYoaS5kZXNrdG9wPSEwKSwoaS5jaHJvbWV8fGkub3ByfHxpLnNhZmFyaXx8aS52aXZhbGRpKSYmKGkud2Via2l0PSEwKSwoaS5ydnx8aS5pZW1vYmlsZSkmJihlLmJyb3dzZXI9XCJpZVwiLGkuaWU9ITApLGkuZWRnZSYmKGUuYnJvd3Nlcj1cImVkZ2VcIixpLmVkZ2U9ITApLChpLnNhZmFyaSYmaS5ibGFja2JlcnJ5fHxpLmJiKSYmKGUuYnJvd3Nlcj1cImJsYWNrYmVycnlcIixpLmJsYWNrYmVycnk9ITApLGkuc2FmYXJpJiZpLnBsYXlib29rJiYoZS5icm93c2VyPVwicGxheWJvb2tcIixpLnBsYXlib29rPSEwKSxpLm9wciYmKGUuYnJvd3Nlcj1cIm9wZXJhXCIsaS5vcGVyYT0hMCksaS5zYWZhcmkmJmkuYW5kcm9pZCYmKGUuYnJvd3Nlcj1cImFuZHJvaWRcIixpLmFuZHJvaWQ9ITApLGkuc2FmYXJpJiZpLmtpbmRsZSYmKGUuYnJvd3Nlcj1cImtpbmRsZVwiLGkua2luZGxlPSEwKSxpLnNhZmFyaSYmaS5zaWxrJiYoZS5icm93c2VyPVwic2lsa1wiLGkuc2lsaz0hMCksaS52aXZhbGRpJiYoZS5icm93c2VyPVwidml2YWxkaVwiLGkudml2YWxkaT0hMCksaS5uYW1lPWUuYnJvd3NlcixpLnBsYXRmb3JtPWUucGxhdGZvcm0saXNTU1J8fCh3aW5kb3cucHJvY2VzcyYmd2luZG93LnByb2Nlc3MudmVyc2lvbnMmJndpbmRvdy5wcm9jZXNzLnZlcnNpb25zLmVsZWN0cm9uP2kuZWxlY3Ryb249ITA6MD09PWRvY3VtZW50LmxvY2F0aW9uLmhyZWYuaW5kZXhPZihcImNocm9tZS1leHRlbnNpb246Ly9cIik/aS5jaHJvbWVFeHQ9ITA6KHdpbmRvdy5fY29yZG92YU5hdGl2ZXx8d2luZG93LmNvcmRvdmEpJiYoaS5jb3Jkb3ZhPSEwKSwoZnJvbVNTUj12b2lkIDA9PT1pLmNvcmRvdmEmJnZvaWQgMD09PWkuZWxlY3Ryb24mJiEhZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIltkYXRhLXNlcnZlci1yZW5kZXJlZF1cIikpJiYob25TU1I9ITApKSxpfWZ1bmN0aW9uIGhhc1dlYlN0b3JhZ2UoKXtpZih2b2lkIDAhPT13ZWJTdG9yYWdlKXJldHVybiB3ZWJTdG9yYWdlO3RyeXtpZih3aW5kb3cubG9jYWxTdG9yYWdlKXJldHVybiB3ZWJTdG9yYWdlPSEwLCEwfWNhdGNoKHQpe31yZXR1cm4gd2ViU3RvcmFnZT0hMSwhMX1mdW5jdGlvbiBnZXRDbGllbnRQcm9wZXJ0aWVzKCl7cmV0dXJue2hhczp7dG91Y2g6ISEoXCJvbnRvdWNoc3RhcnRcImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCl8fHdpbmRvdy5uYXZpZ2F0b3IubXNNYXhUb3VjaFBvaW50cz4wLHdlYlN0b3JhZ2U6aGFzV2ViU3RvcmFnZSgpfSx3aXRoaW46e2lmcmFtZTp3aW5kb3cuc2VsZiE9PXdpbmRvdy50b3B9fX12YXIgUGxhdGZvcm09e2hhczp7dG91Y2g6ITEsd2ViU3RvcmFnZTohMX0sd2l0aGluOntpZnJhbWU6ITF9LHBhcnNlU1NSOmZ1bmN0aW9uKHQpe3JldHVybiB0P3tpczpnZXRQbGF0Zm9ybSh0LnJlcS5oZWFkZXJzW1widXNlci1hZ2VudFwiXSksaGFzOnRoaXMuaGFzLHdpdGhpbjp0aGlzLndpdGhpbn06T2JqZWN0LmFzc2lnbih7fSx7aXM6Z2V0UGxhdGZvcm0oKX0sZ2V0Q2xpZW50UHJvcGVydGllcygpKX0saW5zdGFsbDpmdW5jdGlvbih0LGUsaSl7dmFyIHM9dGhpcztpc1NTUj9lLnNlcnZlci5wdXNoKGZ1bmN0aW9uKHQsZSl7dC5wbGF0Zm9ybT1zLnBhcnNlU1NSKGUuc3NyKX0pOih0aGlzLmlzPWdldFBsYXRmb3JtKCksZnJvbVNTUj8oZS50YWtlb3Zlci5wdXNoKGZ1bmN0aW9uKHQpe29uU1NSPWZyb21TU1I9ITEsT2JqZWN0LmFzc2lnbih0LnBsYXRmb3JtLGdldENsaWVudFByb3BlcnRpZXMoKSl9KSxpLnV0aWwuZGVmaW5lUmVhY3RpdmUodCxcInBsYXRmb3JtXCIsdGhpcykpOihPYmplY3QuYXNzaWduKHRoaXMsZ2V0Q2xpZW50UHJvcGVydGllcygpKSx0LnBsYXRmb3JtPXRoaXMpKX19O2Z1bmN0aW9uIGFzc2lnbih0LGUpe3ZhciBpPWFyZ3VtZW50cztpZih2b2lkIDA9PT10fHxudWxsPT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNvbnZlcnQgZmlyc3QgYXJndW1lbnQgdG8gb2JqZWN0XCIpO2Zvcih2YXIgcz1PYmplY3QodCksbj0xO248YXJndW1lbnRzLmxlbmd0aDtuKyspe3ZhciBvPWlbbl07aWYodm9pZCAwIT09byYmbnVsbCE9PW8pZm9yKHZhciByPU9iamVjdC5rZXlzKE9iamVjdChvKSksYT0wLGw9ci5sZW5ndGg7YTxsO2ErKyl7dmFyIGM9clthXSxoPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobyxjKTt2b2lkIDAhPT1oJiZoLmVudW1lcmFibGUmJihzW2NdPW9bY10pfX1yZXR1cm4gc31PYmplY3QuYXNzaWdufHxPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LFwiYXNzaWduXCIse2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmFzc2lnbn0pLE51bWJlci5pc0ludGVnZXJ8fChOdW1iZXIuaXNJbnRlZ2VyPWZ1bmN0aW9uKHQpe3JldHVyblwibnVtYmVyXCI9PXR5cGVvZiB0JiZpc0Zpbml0ZSh0KSYmTWF0aC5mbG9vcih0KT09PXR9KSxBcnJheS5wcm90b3R5cGUuaW5jbHVkZXN8fChBcnJheS5wcm90b3R5cGUuaW5jbHVkZXM9ZnVuY3Rpb24odCxlKXt2YXIgaT1PYmplY3QodGhpcykscz1wYXJzZUludChpLmxlbmd0aCwxMCl8fDA7aWYoMD09PXMpcmV0dXJuITE7dmFyIG4sbyxyPXBhcnNlSW50KGUsMTApfHwwO2ZvcihyPj0wP249cjoobj1zK3IpPDAmJihuPTApO248czspe2lmKHQ9PT0obz1pW25dKXx8dCE9dCYmbyE9bylyZXR1cm4hMDtuKyt9cmV0dXJuITF9KSxTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGh8fChTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZT1lfHwwLHRoaXMuc3Vic3RyKGUsdC5sZW5ndGgpPT09dH0pLFN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGh8fChTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRoPWZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy50b1N0cmluZygpOyhcIm51bWJlclwiIT10eXBlb2YgZXx8IWlzRmluaXRlKGUpfHxNYXRoLmZsb29yKGUpIT09ZXx8ZT5pLmxlbmd0aCkmJihlPWkubGVuZ3RoKSxlLT10Lmxlbmd0aDt2YXIgcz1pLmluZGV4T2YodCxlKTtyZXR1cm4tMSE9PXMmJnM9PT1lfSksaXNTU1J8fChcImZ1bmN0aW9uXCIhPXR5cGVvZiBFbGVtZW50LnByb3RvdHlwZS5tYXRjaGVzJiYoRWxlbWVudC5wcm90b3R5cGUubWF0Y2hlcz1FbGVtZW50LnByb3RvdHlwZS5tc01hdGNoZXNTZWxlY3Rvcnx8RWxlbWVudC5wcm90b3R5cGUubW96TWF0Y2hlc1NlbGVjdG9yfHxFbGVtZW50LnByb3RvdHlwZS53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0odGhpcy5kb2N1bWVudHx8dGhpcy5vd25lckRvY3VtZW50KS5xdWVyeVNlbGVjdG9yQWxsKHQpLGk9MDtlW2ldJiZlW2ldIT09dGhpczspKytpO3JldHVybiBCb29sZWFuKGVbaV0pfSksXCJmdW5jdGlvblwiIT10eXBlb2YgRWxlbWVudC5wcm90b3R5cGUuY2xvc2VzdCYmKEVsZW1lbnQucHJvdG90eXBlLmNsb3Nlc3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXM7ZSYmMT09PWUubm9kZVR5cGU7KXtpZihlLm1hdGNoZXModCkpcmV0dXJuIGU7ZT1lLnBhcmVudE5vZGV9cmV0dXJuIG51bGx9KSxbRWxlbWVudC5wcm90b3R5cGUsQ2hhcmFjdGVyRGF0YS5wcm90b3R5cGUsRG9jdW1lbnRUeXBlLnByb3RvdHlwZV0uZm9yRWFjaChmdW5jdGlvbih0KXt0Lmhhc093blByb3BlcnR5KFwicmVtb3ZlXCIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcInJlbW92ZVwiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbigpe251bGwhPT10aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzKX19KX0pKSxBcnJheS5wcm90b3R5cGUuZmluZHx8T2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSxcImZpbmRcIix7dmFsdWU6ZnVuY3Rpb24odCl7aWYobnVsbD09dGhpcyl0aHJvdyBuZXcgVHlwZUVycm9yKFwiQXJyYXkucHJvdG90eXBlLmZpbmQgY2FsbGVkIG9uIG51bGwgb3IgdW5kZWZpbmVkXCIpO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcInByZWRpY2F0ZSBtdXN0IGJlIGEgZnVuY3Rpb25cIik7Zm9yKHZhciBlLGk9T2JqZWN0KHRoaXMpLHM9aS5sZW5ndGg+Pj4wLG49YXJndW1lbnRzWzFdLG89MDtvPHM7bysrKWlmKGU9aVtvXSx0LmNhbGwobixlLG8saSkpcmV0dXJuIGV9fSk7dmFyIHZlcnNpb249XCIwLjE3LjIwXCIsSGlzdG9yeT17X19oaXN0b3J5OltdLGFkZDpmdW5jdGlvbigpe30scmVtb3ZlOmZ1bmN0aW9uKCl7fSxpbnN0YWxsOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcztpZighaXNTU1ImJnQucGxhdGZvcm0uaXMuY29yZG92YSl7dGhpcy5hZGQ9ZnVuY3Rpb24odCl7aS5fX2hpc3RvcnkucHVzaCh0KX0sdGhpcy5yZW1vdmU9ZnVuY3Rpb24odCl7dmFyIGU9aS5fX2hpc3RvcnkuaW5kZXhPZih0KTtlPj0wJiZpLl9faGlzdG9yeS5zcGxpY2UoZSwxKX07dmFyIHM9dm9pZCAwPT09ZS5jb3Jkb3ZhfHwhMSE9PWUuY29yZG92YS5iYWNrQnV0dG9uRXhpdDtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiZGV2aWNlcmVhZHlcIixmdW5jdGlvbigpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJiYWNrYnV0dG9uXCIsZnVuY3Rpb24oKXtpLl9faGlzdG9yeS5sZW5ndGg/aS5fX2hpc3RvcnkucG9wKCkuaGFuZGxlcigpOnMmJlwiIy9cIj09PXdpbmRvdy5sb2NhdGlvbi5oYXNoP25hdmlnYXRvci5hcHAuZXhpdEFwcCgpOndpbmRvdy5oaXN0b3J5LmJhY2soKX0sITEpfSl9fX0sbGFuZ0VuPXtsYW5nOlwiZW4tdXNcIixsYWJlbDp7Y2xlYXI6XCJDbGVhclwiLG9rOlwiT0tcIixjYW5jZWw6XCJDYW5jZWxcIixjbG9zZTpcIkNsb3NlXCIsc2V0OlwiU2V0XCIsc2VsZWN0OlwiU2VsZWN0XCIscmVzZXQ6XCJSZXNldFwiLHJlbW92ZTpcIlJlbW92ZVwiLHVwZGF0ZTpcIlVwZGF0ZVwiLGNyZWF0ZTpcIkNyZWF0ZVwiLHNlYXJjaDpcIlNlYXJjaFwiLGZpbHRlcjpcIkZpbHRlclwiLHJlZnJlc2g6XCJSZWZyZXNoXCJ9LGRhdGU6e2RheXM6XCJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheVwiLnNwbGl0KFwiX1wiKSxkYXlzU2hvcnQ6XCJTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXRcIi5zcGxpdChcIl9cIiksbW9udGhzOlwiSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlclwiLnNwbGl0KFwiX1wiKSxtb250aHNTaG9ydDpcIkphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjXCIuc3BsaXQoXCJfXCIpLGZpcnN0RGF5T2ZXZWVrOjAsZm9ybWF0MjRoOiExfSxwdWxsVG9SZWZyZXNoOntwdWxsOlwiUHVsbCBkb3duIHRvIHJlZnJlc2hcIixyZWxlYXNlOlwiUmVsZWFzZSB0byByZWZyZXNoXCIscmVmcmVzaDpcIlJlZnJlc2hpbmcuLi5cIn0sdGFibGU6e25vRGF0YTpcIk5vIGRhdGEgYXZhaWxhYmxlXCIsbm9SZXN1bHRzOlwiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZFwiLGxvYWRpbmc6XCJMb2FkaW5nLi4uXCIsc2VsZWN0ZWRSZWNvcmRzOmZ1bmN0aW9uKHQpe3JldHVybiAxPT09dD9cIjEgcmVjb3JkIHNlbGVjdGVkLlwiOigwPT09dD9cIk5vXCI6dCkrXCIgcmVjb3JkcyBzZWxlY3RlZC5cIn0scmVjb3Jkc1BlclBhZ2U6XCJSZWNvcmRzIHBlciBwYWdlOlwiLGFsbFJvd3M6XCJBbGxcIixwYWdpbmF0aW9uOmZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gdCtcIi1cIitlK1wiIG9mIFwiK2l9LGNvbHVtbnM6XCJDb2x1bW5zXCJ9LGVkaXRvcjp7dXJsOlwiVVJMXCIsYm9sZDpcIkJvbGRcIixpdGFsaWM6XCJJdGFsaWNcIixzdHJpa2V0aHJvdWdoOlwiU3RyaWtldGhyb3VnaFwiLHVuZGVybGluZTpcIlVuZGVybGluZVwiLHVub3JkZXJlZExpc3Q6XCJVbm9yZGVyZWQgTGlzdFwiLG9yZGVyZWRMaXN0OlwiT3JkZXJlZCBMaXN0XCIsc3Vic2NyaXB0OlwiU3Vic2NyaXB0XCIsc3VwZXJzY3JpcHQ6XCJTdXBlcnNjcmlwdFwiLGh5cGVybGluazpcIkh5cGVybGlua1wiLHRvZ2dsZUZ1bGxzY3JlZW46XCJUb2dnbGUgRnVsbHNjcmVlblwiLHF1b3RlOlwiUXVvdGVcIixsZWZ0OlwiTGVmdCBhbGlnblwiLGNlbnRlcjpcIkNlbnRlciBhbGlnblwiLHJpZ2h0OlwiUmlnaHQgYWxpZ25cIixqdXN0aWZ5OlwiSnVzdGlmeSBhbGlnblwiLHByaW50OlwiUHJpbnRcIixvdXRkZW50OlwiRGVjcmVhc2UgaW5kZW50YXRpb25cIixpbmRlbnQ6XCJJbmNyZWFzZSBpbmRlbnRhdGlvblwiLHJlbW92ZUZvcm1hdDpcIlJlbW92ZSBmb3JtYXR0aW5nXCIsZm9ybWF0dGluZzpcIkZvcm1hdHRpbmdcIixmb250U2l6ZTpcIkZvbnQgU2l6ZVwiLGFsaWduOlwiQWxpZ25cIixocjpcIkluc2VydCBIb3Jpem9udGFsIFJ1bGVcIix1bmRvOlwiVW5kb1wiLHJlZG86XCJSZWRvXCIsaGVhZGVyMTpcIkhlYWRlciAxXCIsaGVhZGVyMjpcIkhlYWRlciAyXCIsaGVhZGVyMzpcIkhlYWRlciAzXCIsaGVhZGVyNDpcIkhlYWRlciA0XCIsaGVhZGVyNTpcIkhlYWRlciA1XCIsaGVhZGVyNjpcIkhlYWRlciA2XCIscGFyYWdyYXBoOlwiUGFyYWdyYXBoXCIsY29kZTpcIkNvZGVcIixzaXplMTpcIlZlcnkgc21hbGxcIixzaXplMjpcIkEgYml0IHNtYWxsXCIsc2l6ZTM6XCJOb3JtYWxcIixzaXplNDpcIk1lZGl1bS1sYXJnZVwiLHNpemU1OlwiQmlnXCIsc2l6ZTY6XCJWZXJ5IGJpZ1wiLHNpemU3OlwiTWF4aW11bVwiLGRlZmF1bHRGb250OlwiRGVmYXVsdCBGb250XCJ9LHRyZWU6e25vTm9kZXM6XCJObyBub2RlcyBhdmFpbGFibGVcIixub1Jlc3VsdHM6XCJObyBtYXRjaGluZyBub2RlcyBmb3VuZFwifX0saTE4bj17aW5zdGFsbDpmdW5jdGlvbih0LGUsaSxzKXt2YXIgbj10aGlzO2lzU1NSJiZlLnNlcnZlci5wdXNoKGZ1bmN0aW9uKHQsZSl7dmFyIGk9e2xhbmc6dC5pMThuLmxhbmcsZGlyOnQuaTE4bi5ydGw/XCJydGxcIjpcImx0clwifSxzPWUuc3NyLnNldEh0bWxBdHRycztcImZ1bmN0aW9uXCI9PXR5cGVvZiBzP3MoaSk6ZS5zc3IuUV9IVE1MX0FUVFJTPU9iamVjdC5rZXlzKGkpLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdCtcIj1cIitpW3RdfSkuam9pbihcIiBcIil9KSx0aGlzLnNldD1mdW5jdGlvbihlKXtpZih2b2lkIDA9PT1lJiYoZT1sYW5nRW4pLGUuc2V0PW4uc2V0LGUuZ2V0TG9jYWxlPW4uZ2V0TG9jYWxlLGUucnRsPWUucnRsfHwhMSwhaXNTU1Ipe3ZhciBzPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtzLnNldEF0dHJpYnV0ZShcImRpclwiLGUucnRsP1wicnRsXCI6XCJsdHJcIikscy5zZXRBdHRyaWJ1dGUoXCJsYW5nXCIsZS5sYW5nKX1pc1NTUnx8dC5pMThuP3QuaTE4bj1lOmkudXRpbC5kZWZpbmVSZWFjdGl2ZSh0LFwiaTE4blwiLGUpLG4ubmFtZT1lLmxhbmcsbi5sYW5nPWV9LHRoaXMuc2V0KHMpfSxnZXRMb2NhbGU6ZnVuY3Rpb24oKXtpZighaXNTU1Ipe3ZhciB0PW5hdmlnYXRvci5sYW5ndWFnZXx8bmF2aWdhdG9yLmxhbmd1YWdlc1swXXx8bmF2aWdhdG9yLmJyb3dzZXJMYW5ndWFnZXx8bmF2aWdhdG9yLnVzZXJMYW5ndWFnZXx8bmF2aWdhdG9yLnN5c3RlbUxhbmd1YWdlO3JldHVybiB0P3QudG9Mb3dlckNhc2UoKTp2b2lkIDB9fX07ZnVuY3Rpb24gcmdiVG9IZXgodCl7dmFyIGU9dC5yLGk9dC5nLHM9dC5iLG49dC5hLG89dm9pZCAwIT09bjtpZihlPU1hdGgucm91bmQoZSksaT1NYXRoLnJvdW5kKGkpLHM9TWF0aC5yb3VuZChzKSxlPjI1NXx8aT4yNTV8fHM+MjU1fHxvJiZuPjEwMCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgMyBudW1iZXJzIGJlbG93IDI1NiAoYW5kIG9wdGlvbmFsbHkgb25lIGJlbG93IDEwMClcIik7cmV0dXJuIG49bz8oMjU2fE1hdGgucm91bmQoMjU1Km4vMTAwKSkudG9TdHJpbmcoMTYpLnNsaWNlKDEpOlwiXCIsXCIjXCIrKHN8aTw8OHxlPDwxNnwxPDwyNCkudG9TdHJpbmcoMTYpLnNsaWNlKDEpK259ZnVuY3Rpb24gaGV4VG9SZ2IodCl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgc3RyaW5nXCIpOzM9PT0odD10LnJlcGxhY2UoL14jLyxcIlwiKSkubGVuZ3RoP3Q9dFswXSt0WzBdK3RbMV0rdFsxXSt0WzJdK3RbMl06ND09PXQubGVuZ3RoJiYodD10WzBdK3RbMF0rdFsxXSt0WzFdK3RbMl0rdFsyXSt0WzNdK3RbM10pO3ZhciBlPXBhcnNlSW50KHQsMTYpO3JldHVybiB0Lmxlbmd0aD42P3tyOmU+PjI0JjI1NSxnOmU+PjE2JjI1NSxiOmU+PjgmMjU1LGE6TWF0aC5yb3VuZCgoMjU1JmUpLzIuNTUpfTp7cjplPj4xNixnOmU+PjgmMjU1LGI6MjU1JmV9fWZ1bmN0aW9uIGhzdlRvUmdiKHQpe3ZhciBlLGkscyxuLG8scixhLGwsYz10LmgsaD10LnMsdT10LnYsZD10LmE7c3dpdGNoKHI9KHUvPTEwMCkqKDEtKGgvPTEwMCkpLGE9dSooMS0obz02KihjLz0zNjApLShuPU1hdGguZmxvb3IoNipjKSkpKmgpLGw9dSooMS0oMS1vKSpoKSxuJTYpe2Nhc2UgMDplPXUsaT1sLHM9cjticmVhaztjYXNlIDE6ZT1hLGk9dSxzPXI7YnJlYWs7Y2FzZSAyOmU9cixpPXUscz1sO2JyZWFrO2Nhc2UgMzplPXIsaT1hLHM9dTticmVhaztjYXNlIDQ6ZT1sLGk9cixzPXU7YnJlYWs7Y2FzZSA1OmU9dSxpPXIscz1hfXJldHVybntyOk1hdGgucm91bmQoMjU1KmUpLGc6TWF0aC5yb3VuZCgyNTUqaSksYjpNYXRoLnJvdW5kKDI1NSpzKSxhOmR9fWZ1bmN0aW9uIHJnYlRvSHN2KHQpe3ZhciBlLGk9dC5yLHM9dC5nLG49dC5iLG89dC5hLHI9TWF0aC5tYXgoaSxzLG4pLGE9TWF0aC5taW4oaSxzLG4pLGw9ci1hLGM9MD09PXI/MDpsL3IsaD1yLzI1NTtzd2l0Y2gocil7Y2FzZSBhOmU9MDticmVhaztjYXNlIGk6ZT1zLW4rbCooczxuPzY6MCksZS89NipsO2JyZWFrO2Nhc2UgczplPW4taSsyKmwsZS89NipsO2JyZWFrO2Nhc2UgbjplPWktcys0KmwsZS89NipsfXJldHVybntoOk1hdGgucm91bmQoMzYwKmUpLHM6TWF0aC5yb3VuZCgxMDAqYyksdjpNYXRoLnJvdW5kKDEwMCpoKSxhOm99fXZhciByZVJHQkE9L15cXHMqcmdiKGEpP1xccypcXCgoXFxzKihcXGQrKVxccyosXFxzKj8pezJ9KFxcZCspXFxzKiw/XFxzKihbMDFdP1xcLj9cXGQqPyk/XFxzKlxcKVxccyokLztmdW5jdGlvbiB0ZXh0VG9SZ2IodCl7aWYoXCJzdHJpbmdcIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgc3RyaW5nXCIpO3ZhciBlPXJlUkdCQS5leGVjKHQpO2lmKGUpe3ZhciBpPXtyOk1hdGgubWF4KDI1NSxwYXJzZUludChlWzJdLDEwKSksZzpNYXRoLm1heCgyNTUscGFyc2VJbnQoZVszXSwxMCkpLGI6TWF0aC5tYXgoMjU1LHBhcnNlSW50KGVbNF0sMTApKX07cmV0dXJuIGVbMV0mJihpLmE9TWF0aC5tYXgoMSxwYXJzZUZsb2F0KGVbNV0pKSksaX1yZXR1cm4gaGV4VG9SZ2IodCl9ZnVuY3Rpb24gbGlnaHRlbih0LGUpe2lmKFwic3RyaW5nXCIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIHN0cmluZyBhcyBjb2xvclwiKTtpZihcIm51bWJlclwiIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYSBudW1lcmljIHBlcmNlbnRcIik7dmFyIGk9dGV4dFRvUmdiKHQpLHM9ZTwwPzA6MjU1LG49TWF0aC5hYnMoZSkvMTAwLG89aS5yLHI9aS5nLGE9aS5iO3JldHVyblwiI1wiKygxNjc3NzIxNis2NTUzNiooTWF0aC5yb3VuZCgocy1vKSpuKStvKSsyNTYqKE1hdGgucm91bmQoKHMtcikqbikrcikrKE1hdGgucm91bmQoKHMtYSkqbikrYSkpLnRvU3RyaW5nKDE2KS5zbGljZSgxKX1mdW5jdGlvbiBsdW1pbm9zaXR5KHQpe2lmKFwic3RyaW5nXCIhPXR5cGVvZiB0JiYoIXR8fHZvaWQgMD09PXQucikpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgc3RyaW5nIG9yIGEge3IsIGcsIGJ9IG9iamVjdCBhcyBjb2xvclwiKTt2YXIgZT1cInN0cmluZ1wiPT10eXBlb2YgdD90ZXh0VG9SZ2IodCk6dCxpPWUuci8yNTUscz1lLmcvMjU1LG49ZS5iLzI1NTtyZXR1cm4uMjEyNiooaTw9LjAzOTI4P2kvMTIuOTI6TWF0aC5wb3coKGkrLjA1NSkvMS4wNTUsMi40KSkrLjcxNTIqKHM8PS4wMzkyOD9zLzEyLjkyOk1hdGgucG93KChzKy4wNTUpLzEuMDU1LDIuNCkpKy4wNzIyKihuPD0uMDM5Mjg/bi8xMi45MjpNYXRoLnBvdygobisuMDU1KS8xLjA1NSwyLjQpKX1mdW5jdGlvbiBzZXRCcmFuZCh0LGUsaSl7aWYodm9pZCAwPT09aSYmKGk9ZG9jdW1lbnQuYm9keSksXCJzdHJpbmdcIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgc3RyaW5nIGFzIGNvbG9yXCIpO2lmKFwic3RyaW5nXCIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIHN0cmluZyBhcyB2YWx1ZVwiKTtpZighKGkgaW5zdGFuY2VvZiBFbGVtZW50KSl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYSBET00gZWxlbWVudFwiKTtzd2l0Y2goaS5zdHlsZS5zZXRQcm9wZXJ0eShcIi0tcS1jb2xvci1cIit0LGUpLHQpe2Nhc2VcIm5lZ2F0aXZlXCI6Y2FzZVwid2FybmluZ1wiOmkuc3R5bGUuc2V0UHJvcGVydHkoXCItLXEtY29sb3ItXCIrdCtcIi1sXCIsbGlnaHRlbihlLDQ2KSk7YnJlYWs7Y2FzZVwibGlnaHRcIjppLnN0eWxlLnNldFByb3BlcnR5KFwiLS1xLWNvbG9yLVwiK3QrXCItZFwiLGxpZ2h0ZW4oZSwtMTApKX19ZnVuY3Rpb24gZ2V0QnJhbmQodCxlKXtpZih2b2lkIDA9PT1lJiYoZT1kb2N1bWVudC5ib2R5KSxcInN0cmluZ1wiIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKFwiRXhwZWN0ZWQgYSBzdHJpbmcgYXMgY29sb3JcIik7aWYoIShlIGluc3RhbmNlb2YgRWxlbWVudCkpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgRE9NIGVsZW1lbnRcIik7cmV0dXJuIGdldENvbXB1dGVkU3R5bGUoZSkuZ2V0UHJvcGVydHlWYWx1ZShcIi0tcS1jb2xvci1cIit0KS50cmltKCl8fG51bGx9dmFyIGNvbG9ycz17cmdiVG9IZXg6cmdiVG9IZXgsaGV4VG9SZ2I6aGV4VG9SZ2IsaHN2VG9SZ2I6aHN2VG9SZ2IscmdiVG9Ic3Y6cmdiVG9Ic3YsdGV4dFRvUmdiOnRleHRUb1JnYixsaWdodGVuOmxpZ2h0ZW4sbHVtaW5vc2l0eTpsdW1pbm9zaXR5LHNldEJyYW5kOnNldEJyYW5kLGdldEJyYW5kOmdldEJyYW5kfTtmdW5jdGlvbiBnZXRCb2R5Q2xhc3Nlcyh0LGUpe3ZhciBpPXQuaXMscz10LmhhcyxuPXQud2l0aGluLG89W1wibWF0XCIsaS5kZXNrdG9wP1wiZGVza3RvcFwiOlwibW9iaWxlXCIscy50b3VjaD9cInRvdWNoXCI6XCJuby10b3VjaFwiLFwicGxhdGZvcm0tXCIrKGkuaW9zP1wiaW9zXCI6XCJtYXRcIildO2lmKGkuY29yZG92YSYmKG8ucHVzaChcImNvcmRvdmFcIiksaS5pb3MmJih2b2lkIDA9PT1lLmNvcmRvdmF8fCExIT09ZS5jb3Jkb3ZhLmlvc1N0YXR1c0JhclBhZGRpbmcpKSl7dmFyIHI9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDEsYT13aW5kb3cuc2NyZWVuLndpZHRoKnIsbD13aW5kb3cuc2NyZWVuLmhlaWdodCpyOzExMjU9PT1hJiYyNDM2PT09bCYmby5wdXNoKFwicS1pb3Mtc3RhdHVzYmFyLXhcIiksMTEyNT09PWEmJjIwMDE9PT1sfHxvLnB1c2goXCJxLWlvcy1zdGF0dXNiYXItcGFkZGluZ1wiKX1yZXR1cm4gbi5pZnJhbWUmJm8ucHVzaChcIndpdGhpbi1pZnJhbWVcIiksaS5lbGVjdHJvbiYmby5wdXNoKFwiZWxlY3Ryb25cIiksb31mdW5jdGlvbiBib2R5SW5pdCh0LGUpe3ZhciBpPWdldEJvZHlDbGFzc2VzKHQsZSk7dC5pcy5pZSYmMTE9PT10LmlzLnZlcnNpb25OdW1iZXI/aS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQodCl9KTpkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQuYXBwbHkoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QsaSksdC5pcy5pb3MmJmRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixmdW5jdGlvbigpe30pfWZ1bmN0aW9uIHNldENvbG9ycyh0KXtmb3IodmFyIGUgaW4gdClzZXRCcmFuZChlLHRbZV0pfXZhciBCb2R5PXtpbnN0YWxsOmZ1bmN0aW9uKHQsZSxpKXtpc1NTUj9lLnNlcnZlci5wdXNoKGZ1bmN0aW9uKHQsZSl7dmFyIHM9Z2V0Qm9keUNsYXNzZXModC5wbGF0Zm9ybSxpKSxuPWUuc3NyLnNldEJvZHlDbGFzc2VzO1wiZnVuY3Rpb25cIj09dHlwZW9mIG4/bihzKTplLnNzci5RX0JPRFlfQ0xBU1NFUz1zLmpvaW4oXCIgXCIpfSk6KGkuYnJhbmQmJnNldENvbG9ycyhpLmJyYW5kKSxib2R5SW5pdCh0LnBsYXRmb3JtLGkpKX19LG1hdGVyaWFsSWNvbnM9e25hbWU6XCJtYXRlcmlhbC1pY29uc1wiLHR5cGU6e3Bvc2l0aXZlOlwiY2hlY2tfY2lyY2xlXCIsbmVnYXRpdmU6XCJ3YXJuaW5nXCIsaW5mbzpcImluZm9cIix3YXJuaW5nOlwicHJpb3JpdHlfaGlnaFwifSxhcnJvdzp7dXA6XCJhcnJvd191cHdhcmRcIixyaWdodDpcImFycm93X2ZvcndhcmRcIixkb3duOlwiYXJyb3dfZG93bndhcmRcIixsZWZ0OlwiYXJyb3dfYmFja1wifSxjaGV2cm9uOntsZWZ0OlwiY2hldnJvbl9sZWZ0XCIscmlnaHQ6XCJjaGV2cm9uX3JpZ2h0XCJ9LHB1bGxUb1JlZnJlc2g6e2Fycm93OlwiYXJyb3dfZG93bndhcmRcIixyZWZyZXNoOlwicmVmcmVzaFwifSxzZWFyY2g6e2ljb246XCJzZWFyY2hcIixjbGVhcjpcImNhbmNlbFwiLGNsZWFySW52ZXJ0ZWQ6XCJjbGVhclwifSxjYXJvdXNlbDp7bGVmdDpcImNoZXZyb25fbGVmdFwiLHJpZ2h0OlwiY2hldnJvbl9yaWdodFwiLHF1aWNrTmF2OlwibGVuc1wiLHRodW1ibmFpbHM6XCJ2aWV3X2Nhcm91c2VsXCJ9LGNoZWNrYm94OntjaGVja2VkOntpb3M6XCJjaGVja19jaXJjbGVcIixtYXQ6XCJjaGVja19ib3hcIn0sdW5jaGVja2VkOntpb3M6XCJyYWRpb19idXR0b25fdW5jaGVja2VkXCIsbWF0OlwiY2hlY2tfYm94X291dGxpbmVfYmxhbmtcIn0saW5kZXRlcm1pbmF0ZTp7aW9zOlwicmVtb3ZlX2NpcmNsZV9vdXRsaW5lXCIsbWF0OlwiaW5kZXRlcm1pbmF0ZV9jaGVja19ib3hcIn19LGNoaXA6e2Nsb3NlOlwiY2FuY2VsXCJ9LGNoaXBzSW5wdXQ6e2FkZDpcInNlbmRcIn0sY29sbGFwc2libGU6e2ljb246XCJhcnJvd19kcm9wX2Rvd25cIn0sZGF0ZXRpbWU6e2Fycm93TGVmdDpcImNoZXZyb25fbGVmdFwiLGFycm93UmlnaHQ6XCJjaGV2cm9uX3JpZ2h0XCJ9LGVkaXRvcjp7Ym9sZDpcImZvcm1hdF9ib2xkXCIsaXRhbGljOlwiZm9ybWF0X2l0YWxpY1wiLHN0cmlrZXRocm91Z2g6XCJzdHJpa2V0aHJvdWdoX3NcIix1bmRlcmxpbmU6XCJmb3JtYXRfdW5kZXJsaW5lZFwiLHVub3JkZXJlZExpc3Q6XCJmb3JtYXRfbGlzdF9idWxsZXRlZFwiLG9yZGVyZWRMaXN0OlwiZm9ybWF0X2xpc3RfbnVtYmVyZWRcIixzdWJzY3JpcHQ6XCJ2ZXJ0aWNhbF9hbGlnbl9ib3R0b21cIixzdXBlcnNjcmlwdDpcInZlcnRpY2FsX2FsaWduX3RvcFwiLGh5cGVybGluazpcImxpbmtcIix0b2dnbGVGdWxsc2NyZWVuOlwiZnVsbHNjcmVlblwiLHF1b3RlOlwiZm9ybWF0X3F1b3RlXCIsbGVmdDpcImZvcm1hdF9hbGlnbl9sZWZ0XCIsY2VudGVyOlwiZm9ybWF0X2FsaWduX2NlbnRlclwiLHJpZ2h0OlwiZm9ybWF0X2FsaWduX3JpZ2h0XCIsanVzdGlmeTpcImZvcm1hdF9hbGlnbl9qdXN0aWZ5XCIscHJpbnQ6XCJwcmludFwiLG91dGRlbnQ6XCJmb3JtYXRfaW5kZW50X2RlY3JlYXNlXCIsaW5kZW50OlwiZm9ybWF0X2luZGVudF9pbmNyZWFzZVwiLHJlbW92ZUZvcm1hdDpcImZvcm1hdF9jbGVhclwiLGZvcm1hdHRpbmc6XCJ0ZXh0X2Zvcm1hdFwiLGZvbnRTaXplOlwiZm9ybWF0X3NpemVcIixhbGlnbjpcImZvcm1hdF9hbGlnbl9sZWZ0XCIsaHI6XCJyZW1vdmVcIix1bmRvOlwidW5kb1wiLHJlZG86XCJyZWRvXCIsaGVhZGVyOlwiZm9ybWF0X3NpemVcIixjb2RlOlwiY29kZVwiLHNpemU6XCJmb3JtYXRfc2l6ZVwiLGZvbnQ6XCJmb250X2Rvd25sb2FkXCJ9LGZhYjp7aWNvbjpcImFkZFwiLGFjdGl2ZUljb246XCJjbG9zZVwifSxpbnB1dDp7c2hvd1Bhc3M6XCJ2aXNpYmlsaXR5XCIsaGlkZVBhc3M6XCJ2aXNpYmlsaXR5X29mZlwiLHNob3dOdW1iZXI6XCJrZXlib2FyZFwiLGhpZGVOdW1iZXI6XCJrZXlib2FyZF9oaWRlXCIsY2xlYXI6XCJjYW5jZWxcIixjbGVhckludmVydGVkOlwiY2xlYXJcIixkcm9wZG93bjpcImFycm93X2Ryb3BfZG93blwifSxwYWdpbmF0aW9uOntmaXJzdDpcImZpcnN0X3BhZ2VcIixwcmV2Olwia2V5Ym9hcmRfYXJyb3dfbGVmdFwiLG5leHQ6XCJrZXlib2FyZF9hcnJvd19yaWdodFwiLGxhc3Q6XCJsYXN0X3BhZ2VcIn0scmFkaW86e2NoZWNrZWQ6e2lvczpcImNoZWNrXCIsbWF0OlwicmFkaW9fYnV0dG9uX2NoZWNrZWRcIn0sdW5jaGVja2VkOntpb3M6XCJcIixtYXQ6XCJyYWRpb19idXR0b25fdW5jaGVja2VkXCJ9fSxyYXRpbmc6e2ljb246XCJncmFkZVwifSxzdGVwcGVyOntkb25lOlwiY2hlY2tcIixhY3RpdmU6XCJlZGl0XCIsZXJyb3I6XCJ3YXJuaW5nXCJ9LHRhYnM6e2xlZnQ6XCJjaGV2cm9uX2xlZnRcIixyaWdodDpcImNoZXZyb25fcmlnaHRcIn0sdGFibGU6e2Fycm93VXA6XCJhcnJvd191cHdhcmRcIix3YXJuaW5nOlwid2FybmluZ1wiLHByZXZQYWdlOlwiY2hldnJvbl9sZWZ0XCIsbmV4dFBhZ2U6XCJjaGV2cm9uX3JpZ2h0XCJ9LHRyZWU6e2ljb246XCJwbGF5X2Fycm93XCJ9LHVwbG9hZGVyOntkb25lOlwiZG9uZVwiLGNsZWFyOlwiY2FuY2VsXCIsY2xlYXJJbnZlcnRlZDpcImNsZWFyXCIsYWRkOlwiYWRkXCIsdXBsb2FkOlwiY2xvdWRfdXBsb2FkXCIsZXhwYW5kOlwia2V5Ym9hcmRfYXJyb3dfZG93blwiLGZpbGU6XCJpbnNlcnRfZHJpdmVfZmlsZVwifX0sSWNvbnM9e19faW5zdGFsbGVkOiExLGluc3RhbGw6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXM7dGhpcy5zZXQ9ZnVuY3Rpb24oaSl7dm9pZCAwPT09aSYmKGk9bWF0ZXJpYWxJY29ucyksaS5zZXQ9cy5zZXQsaXNTU1J8fHQuaWNvbj90Lmljb249aTplLnV0aWwuZGVmaW5lUmVhY3RpdmUodCxcImljb25cIixpKSxzLm5hbWU9aS5uYW1lLHMuZGVmPWl9LHRoaXMuc2V0KGkpfX0scXVldWVzPXtzZXJ2ZXI6W10sdGFrZW92ZXI6W119LCRxPXt2ZXJzaW9uOnZlcnNpb24sdGhlbWU6XCJtYXRcIn07ZnVuY3Rpb24gaW5zdGFsbCh0LGUpe2lmKHZvaWQgMD09PWUmJihlPXt9KSwhdGhpcy5fX2luc3RhbGxlZCl7dGhpcy5fX2luc3RhbGxlZD0hMDt2YXIgaT1lLmNvbmZpZ3x8e307aWYoUGxhdGZvcm0uaW5zdGFsbCgkcSxxdWV1ZXMsdCksQm9keS5pbnN0YWxsKCRxLHF1ZXVlcyxpKSxIaXN0b3J5Lmluc3RhbGwoJHEsaSksaTE4bi5pbnN0YWxsKCRxLHF1ZXVlcyx0LGUuaTE4biksSWNvbnMuaW5zdGFsbCgkcSx0LGUuaWNvblNldCksaXNTU1I/dC5taXhpbih7YmVmb3JlQ3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy4kcT10aGlzLiRyb290LiRvcHRpb25zLiRxfX0pOnQucHJvdG90eXBlLiRxPSRxLGUuY29tcG9uZW50cyYmT2JqZWN0LmtleXMoZS5jb21wb25lbnRzKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBzPWUuY29tcG9uZW50c1tpXTt2b2lkIDA9PT1zLm5hbWV8fHZvaWQgMD09PXMucmVuZGVyJiZ2b2lkIDA9PT1zLm1peGluc3x8dC5jb21wb25lbnQocy5uYW1lLHMpfSksZS5kaXJlY3RpdmVzJiZPYmplY3Qua2V5cyhlLmRpcmVjdGl2ZXMpLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIHM9ZS5kaXJlY3RpdmVzW2ldO3ZvaWQgMCE9PXMubmFtZSYmdm9pZCAwIT09cy51bmJpbmQmJnQuZGlyZWN0aXZlKHMubmFtZSxzKX0pLGUucGx1Z2lucyl7dmFyIHM9eyRxOiRxLHF1ZXVlczpxdWV1ZXMsVnVlOnQsY2ZnOml9O09iamVjdC5rZXlzKGUucGx1Z2lucykuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgaT1lLnBsdWdpbnNbdF07XCJmdW5jdGlvblwiPT10eXBlb2YgaS5pbnN0YWxsJiZpIT09UGxhdGZvcm0mJmkuaW5zdGFsbChzKX0pfX19dmFyIG1peGluPXttb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztxdWV1ZXMudGFrZW92ZXIuZm9yRWFjaChmdW5jdGlvbihlKXtlKHQuJHEpfSl9fTtmdW5jdGlvbiBzc3JVcGRhdGUodCl7aWYodC5zc3Ipe3ZhciBlPU9iamVjdC5hc3NpZ24oe30sJHEpO09iamVjdC5hc3NpZ24odC5zc3Ise1FfSEVBRF9UQUdTOlwiXCIsUV9CT0RZX0FUVFJTOlwiXCIsUV9CT0RZX1RBR1M6XCJcIn0pLHF1ZXVlcy5zZXJ2ZXIuZm9yRWFjaChmdW5jdGlvbihpKXtpKGUsdCl9KSx0LmFwcC4kcT1lfWVsc2V7dmFyIGk9dC5hcHAubWl4aW5zfHxbXTtpLmluY2x1ZGVzKG1peGluKXx8KHQuYXBwLm1peGlucz1pLmNvbmNhdChtaXhpbikpfX12YXIgdGhlbWU9XCJtYXRcIixWdWVQbHVnaW49e3ZlcnNpb246dmVyc2lvbixpbnN0YWxsOmluc3RhbGwsaTE4bjppMThuLGljb25zOkljb25zLHRoZW1lOnRoZW1lLHNzclVwZGF0ZTpzc3JVcGRhdGV9LGhhbmRsZXJzPVtdLEVzY2FwZUtleT17X19pbnN0YWxsZWQ6ITEsX19pbnN0YWxsOmZ1bmN0aW9uKCl7dGhpcy5fX2luc3RhbGxlZD0hMCx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsZnVuY3Rpb24odCl7MCE9PWhhbmRsZXJzLmxlbmd0aCYmKDI3IT09dC53aGljaCYmMjchPT10LmtleUNvZGV8fGhhbmRsZXJzW2hhbmRsZXJzLmxlbmd0aC0xXSgpKX0pfSxyZWdpc3RlcjpmdW5jdGlvbih0KXtQbGF0Zm9ybS5pcy5kZXNrdG9wJiYodGhpcy5fX2luc3RhbGxlZHx8dGhpcy5fX2luc3RhbGwoKSxoYW5kbGVycy5wdXNoKHQpKX0scG9wOmZ1bmN0aW9uKCl7UGxhdGZvcm0uaXMuZGVza3RvcCYmaGFuZGxlcnMucG9wKCl9fSxNb2RlbFRvZ2dsZU1peGluPXtwcm9wczp7dmFsdWU6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzaG93aW5nOiExfX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5kaXNhYmxlJiZ0P3RoaXMuJGVtaXQoXCJpbnB1dFwiLCExKTp0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe2UudmFsdWUhPT1lLnNob3dpbmcmJmVbdD9cInNob3dcIjpcImhpZGVcIl0oKX0pfX0sbWV0aG9kczp7dG9nZ2xlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzW3RoaXMuc2hvd2luZz9cImhpZGVcIjpcInNob3dcIl0odCl9LHNob3c6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5kaXNhYmxlfHx0aGlzLnNob3dpbmc/dGhpcy5zaG93UHJvbWlzZXx8UHJvbWlzZS5yZXNvbHZlKHQpOih0aGlzLmhpZGVQcm9taXNlJiZ0aGlzLmhpZGVQcm9taXNlUmVqZWN0KCksdGhpcy5zaG93aW5nPSEwLCExPT09dGhpcy52YWx1ZSYmdGhpcy4kZW1pdChcImlucHV0XCIsITApLCh2b2lkIDA9PT10aGlzLiRvcHRpb25zLm1vZGVsVG9nZ2xlfHx0aGlzLiRvcHRpb25zLm1vZGVsVG9nZ2xlLmhpc3RvcnkpJiYodGhpcy5fX2hpc3RvcnlFbnRyeT17aGFuZGxlcjp0aGlzLmhpZGV9LEhpc3RvcnkuYWRkKHRoaXMuX19oaXN0b3J5RW50cnkpKSx0aGlzLl9fc2hvdz8odGhpcy5zaG93UHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihpLHMpe2Uuc2hvd1Byb21pc2VSZXNvbHZlPWZ1bmN0aW9uKCl7ZS5zaG93UHJvbWlzZT1udWxsLGUuJGVtaXQoXCJzaG93XCIsdCksaSh0KX0sZS5zaG93UHJvbWlzZVJlamVjdD1mdW5jdGlvbigpe2Uuc2hvd1Byb21pc2UuY2F0Y2goZnVuY3Rpb24oKXt9KSxlLnNob3dQcm9taXNlPW51bGwscyhudWxsKX19KSx0aGlzLl9fc2hvdyh0KSx0aGlzLnNob3dQcm9taXNlfHxQcm9taXNlLnJlc29sdmUodCkpOih0aGlzLiRlbWl0KFwic2hvd1wiLHQpLFByb21pc2UucmVzb2x2ZSh0KSkpfSxoaWRlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuZGlzYWJsZXx8IXRoaXMuc2hvd2luZz90aGlzLmhpZGVQcm9taXNlfHxQcm9taXNlLnJlc29sdmUodCk6KHRoaXMuc2hvd1Byb21pc2UmJnRoaXMuc2hvd1Byb21pc2VSZWplY3QoKSx0aGlzLnNob3dpbmc9ITEsITA9PT10aGlzLnZhbHVlJiZ0aGlzLiRlbWl0KFwiaW5wdXRcIiwhMSksdGhpcy5fX3JlbW92ZUhpc3RvcnkoKSx0aGlzLl9faGlkZT8odGhpcy5oaWRlUHJvbWlzZT1uZXcgUHJvbWlzZShmdW5jdGlvbihpLHMpe2UuaGlkZVByb21pc2VSZXNvbHZlPWZ1bmN0aW9uKCl7ZS5oaWRlUHJvbWlzZT1udWxsLGUuJGVtaXQoXCJoaWRlXCIsdCksaSgpfSxlLmhpZGVQcm9taXNlUmVqZWN0PWZ1bmN0aW9uKCl7ZS5oaWRlUHJvbWlzZS5jYXRjaChmdW5jdGlvbigpe30pLGUuaGlkZVByb21pc2U9bnVsbCxzKG51bGwpfX0pLHRoaXMuX19oaWRlKHQpLHRoaXMuaGlkZVByb21pc2V8fFByb21pc2UucmVzb2x2ZSh0KSk6KHRoaXMuJGVtaXQoXCJoaWRlXCIsdCksUHJvbWlzZS5yZXNvbHZlKCkpKX0sX19yZW1vdmVIaXN0b3J5OmZ1bmN0aW9uKCl7dGhpcy5fX2hpc3RvcnlFbnRyeSYmKEhpc3RvcnkucmVtb3ZlKHRoaXMuX19oaXN0b3J5RW50cnkpLHRoaXMuX19oaXN0b3J5RW50cnk9bnVsbCl9fSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5zaG93aW5nJiYodGhpcy5zaG93UHJvbWlzZSYmdGhpcy5zaG93UHJvbWlzZVJlamVjdCgpLHRoaXMuaGlkZVByb21pc2UmJnRoaXMuaGlkZVByb21pc2VSZWplY3QoKSx0aGlzLl9fcmVtb3ZlSGlzdG9yeSgpKX19LGxpc3Rlbk9wdHM9e307ZnVuY3Rpb24gbGVmdENsaWNrKHQpe3JldHVybiAwPT09dC5idXR0b259ZnVuY3Rpb24gbWlkZGxlQ2xpY2sodCl7cmV0dXJuIDE9PT10LmJ1dHRvbn1mdW5jdGlvbiByaWdodENsaWNrKHQpe3JldHVybiAyPT09dC5idXR0b259ZnVuY3Rpb24gZ2V0RXZlbnRLZXkodCl7cmV0dXJuIHQud2hpY2h8fHQua2V5Q29kZX1mdW5jdGlvbiBwb3NpdGlvbih0KXt2YXIgZSxpO2lmKHQudG91Y2hlcyYmdC50b3VjaGVzWzBdP3Q9dC50b3VjaGVzWzBdOnQuY2hhbmdlZFRvdWNoZXMmJnQuY2hhbmdlZFRvdWNoZXNbMF0mJih0PXQuY2hhbmdlZFRvdWNoZXNbMF0pLHQuY2xpZW50WHx8dC5jbGllbnRZKWU9dC5jbGllbnRYLGk9dC5jbGllbnRZO2Vsc2UgaWYodC5wYWdlWHx8dC5wYWdlWSllPXQucGFnZVgtZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0LWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0LGk9dC5wYWdlWS1kb2N1bWVudC5ib2R5LnNjcm9sbFRvcC1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wO2Vsc2V7dmFyIHM9dGFyZ2V0RWxlbWVudCh0KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlPShzLnJpZ2h0LXMubGVmdCkvMitzLmxlZnQsaT0ocy5ib3R0b20tcy50b3ApLzIrcy50b3B9cmV0dXJue3RvcDppLGxlZnQ6ZX19ZnVuY3Rpb24gdGFyZ2V0RWxlbWVudCh0KXt2YXIgZTtyZXR1cm4gdC50YXJnZXQ/ZT10LnRhcmdldDp0LnNyY0VsZW1lbnQmJihlPXQuc3JjRWxlbWVudCksMz09PWUubm9kZVR5cGUmJihlPWUucGFyZW50Tm9kZSksZX1mdW5jdGlvbiBnZXRFdmVudFBhdGgodCl7aWYodC5wYXRoKXJldHVybiB0LnBhdGg7aWYodC5jb21wb3NlZFBhdGgpcmV0dXJuIHQuY29tcG9zZWRQYXRoKCk7Zm9yKHZhciBlPVtdLGk9dC50YXJnZXQ7aTspe2lmKGUucHVzaChpKSxcIkhUTUxcIj09PWkudGFnTmFtZSlyZXR1cm4gZS5wdXNoKGRvY3VtZW50KSxlLnB1c2god2luZG93KSxlO2k9aS5wYXJlbnRFbGVtZW50fX1PYmplY3QuZGVmaW5lUHJvcGVydHkobGlzdGVuT3B0cyxcInBhc3NpdmVcIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciB0O3RyeXt2YXIgZT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sXCJwYXNzaXZlXCIse2dldDpmdW5jdGlvbigpe3Q9e3Bhc3NpdmU6ITB9fX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicXRlc3RcIixudWxsLGUpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicXRlc3RcIixudWxsLGUpfWNhdGNoKHQpe31yZXR1cm4gbGlzdGVuT3B0cy5wYXNzaXZlPXQsdH0sc2V0OmZ1bmN0aW9uKHQpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLFwicGFzc2l2ZVwiLHt2YWx1ZTp0fSl9fSk7dmFyIExJTkVfSEVJR0hUPTQwLFBBR0VfSEVJR0hUPTgwMDtmdW5jdGlvbiBnZXRNb3VzZVdoZWVsRGlzdGFuY2UodCl7dmFyIGUsaT10LmRlbHRhWCxzPXQuZGVsdGFZO2lmKChpfHxzKSYmdC5kZWx0YU1vZGUpe3ZhciBuPTE9PT10LmRlbHRhTW9kZT9MSU5FX0hFSUdIVDpQQUdFX0hFSUdIVDtpKj1uLHMqPW59cmV0dXJuIHQuc2hpZnRLZXkmJiFpJiYocz0oZT1baSxzXSlbMF0saT1lWzFdKSx7eDppLHk6c319ZnVuY3Rpb24gc3RvcEFuZFByZXZlbnQodCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCl9dmFyIGV2ZW50PXtsaXN0ZW5PcHRzOmxpc3Rlbk9wdHMsbGVmdENsaWNrOmxlZnRDbGljayxtaWRkbGVDbGljazptaWRkbGVDbGljayxyaWdodENsaWNrOnJpZ2h0Q2xpY2ssZ2V0RXZlbnRLZXk6Z2V0RXZlbnRLZXkscG9zaXRpb246cG9zaXRpb24sdGFyZ2V0RWxlbWVudDp0YXJnZXRFbGVtZW50LGdldEV2ZW50UGF0aDpnZXRFdmVudFBhdGgsZ2V0TW91c2VXaGVlbERpc3RhbmNlOmdldE1vdXNlV2hlZWxEaXN0YW5jZSxzdG9wQW5kUHJldmVudDpzdG9wQW5kUHJldmVudH07ZnVuY3Rpb24gb2Zmc2V0KHQpe2lmKCF0fHx0PT09d2luZG93KXJldHVybnt0b3A6MCxsZWZ0OjB9O3ZhciBlPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJue3RvcDplLnRvcCxsZWZ0OmUubGVmdH19ZnVuY3Rpb24gc3R5bGUodCxlKXtyZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUodCkuZ2V0UHJvcGVydHlWYWx1ZShlKX1mdW5jdGlvbiBoZWlnaHQodCl7cmV0dXJuIHQ9PT13aW5kb3c/d2luZG93LmlubmVySGVpZ2h0OnBhcnNlRmxvYXQoc3R5bGUodCxcImhlaWdodFwiKSl9ZnVuY3Rpb24gd2lkdGgodCl7cmV0dXJuIHQ9PT13aW5kb3c/d2luZG93LmlubmVyV2lkdGg6cGFyc2VGbG9hdChzdHlsZSh0LFwid2lkdGhcIikpfWZ1bmN0aW9uIGNzcyh0LGUpe3ZhciBpPXQuc3R5bGU7T2JqZWN0LmtleXMoZSkuZm9yRWFjaChmdW5jdGlvbih0KXtpW3RdPWVbdF19KX1mdW5jdGlvbiByZWFkeSh0KXtpZihcImZ1bmN0aW9uXCI9PXR5cGVvZiB0KXJldHVyblwibG9hZGluZ1wiIT09ZG9jdW1lbnQucmVhZHlTdGF0ZT90KCk6dm9pZCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLHQsITEpfXZhciBwcmVmaXg9W1wiLXdlYmtpdC1cIixcIi1tb3otXCIsXCItbXMtXCIsXCItby1cIl07ZnVuY3Rpb24gY3NzVHJhbnNmb3JtKHQpe3ZhciBlPXt0cmFuc2Zvcm06dH07cmV0dXJuIHByZWZpeC5mb3JFYWNoKGZ1bmN0aW9uKGkpe2VbaStcInRyYW5zZm9ybVwiXT10fSksZX12YXIgc2l6ZSxkb209e29mZnNldDpvZmZzZXQsc3R5bGU6c3R5bGUsaGVpZ2h0OmhlaWdodCx3aWR0aDp3aWR0aCxjc3M6Y3NzLHJlYWR5OnJlYWR5LGNzc1RyYW5zZm9ybTpjc3NUcmFuc2Zvcm19O2Z1bmN0aW9uIGdldFNjcm9sbFRhcmdldCh0KXtyZXR1cm4gdC5jbG9zZXN0KFwiLnNjcm9sbCwuc2Nyb2xsLXksLm92ZXJmbG93LWF1dG9cIil8fHdpbmRvd31mdW5jdGlvbiBnZXRTY3JvbGxIZWlnaHQodCl7cmV0dXJuKHQ9PT13aW5kb3c/ZG9jdW1lbnQuYm9keTp0KS5zY3JvbGxIZWlnaHR9ZnVuY3Rpb24gZ2V0U2Nyb2xsUG9zaXRpb24odCl7cmV0dXJuIHQ9PT13aW5kb3c/d2luZG93LnBhZ2VZT2Zmc2V0fHx3aW5kb3cuc2Nyb2xsWXx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3B8fDA6dC5zY3JvbGxUb3B9ZnVuY3Rpb24gZ2V0SG9yaXpvbnRhbFNjcm9sbFBvc2l0aW9uKHQpe3JldHVybiB0PT09d2luZG93P3dpbmRvdy5wYWdlWE9mZnNldHx8d2luZG93LnNjcm9sbFh8fGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdHx8MDp0LnNjcm9sbExlZnR9ZnVuY3Rpb24gYW5pbVNjcm9sbFRvKHQsZSxpKXt2YXIgcz1nZXRTY3JvbGxQb3NpdGlvbih0KTtpPD0wP3MhPT1lJiZzZXRTY3JvbGwodCxlKTpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXt2YXIgbj1zKyhlLXMpL01hdGgubWF4KDE2LGkpKjE2O3NldFNjcm9sbCh0LG4pLG4hPT1lJiZhbmltU2Nyb2xsVG8odCxlLGktMTYpfSl9ZnVuY3Rpb24gc2V0U2Nyb2xsKHQsZSl7aWYodD09PXdpbmRvdylyZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcD1lLHZvaWQoZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A9ZSk7dC5zY3JvbGxUb3A9ZX1mdW5jdGlvbiBzZXRTY3JvbGxQb3NpdGlvbih0LGUsaSl7aT9hbmltU2Nyb2xsVG8odCxlLGkpOnNldFNjcm9sbCh0LGUpfWZ1bmN0aW9uIGdldFNjcm9sbGJhcldpZHRoKCl7aWYodm9pZCAwIT09c2l6ZSlyZXR1cm4gc2l6ZTt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwicFwiKSxlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7Y3NzKHQse3dpZHRoOlwiMTAwJVwiLGhlaWdodDpcIjIwMHB4XCJ9KSxjc3MoZSx7cG9zaXRpb246XCJhYnNvbHV0ZVwiLHRvcDpcIjBweFwiLGxlZnQ6XCIwcHhcIix2aXNpYmlsaXR5OlwiaGlkZGVuXCIsd2lkdGg6XCIyMDBweFwiLGhlaWdodDpcIjE1MHB4XCIsb3ZlcmZsb3c6XCJoaWRkZW5cIn0pLGUuYXBwZW5kQ2hpbGQodCksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTt2YXIgaT10Lm9mZnNldFdpZHRoO2Uuc3R5bGUub3ZlcmZsb3c9XCJzY3JvbGxcIjt2YXIgcz10Lm9mZnNldFdpZHRoO3JldHVybiBpPT09cyYmKHM9ZS5jbGllbnRXaWR0aCksZS5yZW1vdmUoKSxzaXplPWktc31mdW5jdGlvbiBoYXNTY3JvbGxiYXIodCxlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ITApLCEoIXR8fHQubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERSkmJihlP3Quc2Nyb2xsSGVpZ2h0PnQuY2xpZW50SGVpZ2h0JiYodC5jbGFzc0xpc3QuY29udGFpbnMoXCJzY3JvbGxcIil8fHQuY2xhc3NMaXN0LmNvbnRhaW5zKFwib3ZlcmZsb3ctYXV0b1wiKXx8W1wiYXV0b1wiLFwic2Nyb2xsXCJdLmluY2x1ZGVzKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpW1wib3ZlcmZsb3cteVwiXSkpOnQuc2Nyb2xsV2lkdGg+dC5jbGllbnRXaWR0aCYmKHQuY2xhc3NMaXN0LmNvbnRhaW5zKFwic2Nyb2xsXCIpfHx0LmNsYXNzTGlzdC5jb250YWlucyhcIm92ZXJmbG93LWF1dG9cIil8fFtcImF1dG9cIixcInNjcm9sbFwiXS5pbmNsdWRlcyh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KVtcIm92ZXJmbG93LXhcIl0pKSl9dmFyIHNjcm9sbD17Z2V0U2Nyb2xsVGFyZ2V0OmdldFNjcm9sbFRhcmdldCxnZXRTY3JvbGxIZWlnaHQ6Z2V0U2Nyb2xsSGVpZ2h0LGdldFNjcm9sbFBvc2l0aW9uOmdldFNjcm9sbFBvc2l0aW9uLGFuaW1TY3JvbGxUbzphbmltU2Nyb2xsVG8sc2V0U2Nyb2xsUG9zaXRpb246c2V0U2Nyb2xsUG9zaXRpb24sZ2V0U2Nyb2xsYmFyV2lkdGg6Z2V0U2Nyb2xsYmFyV2lkdGgsaGFzU2Nyb2xsYmFyOmhhc1Njcm9sbGJhcn0scmVnaXN0ZXJlZD0wO2Z1bmN0aW9uIG9uV2hlZWwodCl7c2hvdWxkUHJldmVudFNjcm9sbCh0KSYmc3RvcEFuZFByZXZlbnQodCl9ZnVuY3Rpb24gc2hvdWxkUHJldmVudFNjcm9sbCh0KXtpZih0LnRhcmdldD09PWRvY3VtZW50LmJvZHl8fHQudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucyhcInEtbGF5b3V0LWJhY2tkcm9wXCIpKXJldHVybiEwO2Zvcih2YXIgZT1nZXRFdmVudFBhdGgodCksaT10LnNoaWZ0S2V5JiYhdC5kZWx0YVgscz0haSYmTWF0aC5hYnModC5kZWx0YVgpPD1NYXRoLmFicyh0LmRlbHRhWSksbj1pfHxzP3QuZGVsdGFZOnQuZGVsdGFYLG89MDtvPGUubGVuZ3RoO28rKyl7dmFyIHI9ZVtvXTtpZihoYXNTY3JvbGxiYXIocixzKSlyZXR1cm4gcz9uPDAmJjA9PT1yLnNjcm9sbFRvcHx8bj4wJiZyLnNjcm9sbFRvcCtyLmNsaWVudEhlaWdodD09PXIuc2Nyb2xsSGVpZ2h0Om48MCYmMD09PXIuc2Nyb2xsTGVmdHx8bj4wJiZyLnNjcm9sbExlZnQrci5jbGllbnRXaWR0aD09PXIuc2Nyb2xsV2lkdGh9cmV0dXJuITB9ZnVuY3Rpb24gcHJldmVudFNjcm9sbCh0KXtpZighKChyZWdpc3RlcmVkKz10PzE6LTEpPjEpKXt2YXIgZT10P1wiYWRkXCI6XCJyZW1vdmVcIjtQbGF0Zm9ybS5pcy5tb2JpbGU/ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3RbZV0oXCJxLWJvZHktcHJldmVudC1zY3JvbGxcIik6UGxhdGZvcm0uaXMuZGVza3RvcCYmd2luZG93W2UrXCJFdmVudExpc3RlbmVyXCJdKFwid2hlZWxcIixvbldoZWVsKX19dmFyIHBvc2l0aW9ucz17dG9wOlwiaXRlbXMtc3RhcnQganVzdGlmeS1jZW50ZXIgd2l0aC1iYWNrZHJvcFwiLGJvdHRvbTpcIml0ZW1zLWVuZCBqdXN0aWZ5LWNlbnRlciB3aXRoLWJhY2tkcm9wXCIscmlnaHQ6XCJpdGVtcy1jZW50ZXIganVzdGlmeS1lbmQgd2l0aC1iYWNrZHJvcFwiLGxlZnQ6XCJpdGVtcy1jZW50ZXIganVzdGlmeS1zdGFydCB3aXRoLWJhY2tkcm9wXCJ9LHBvc2l0aW9uQ1NTPXttYXhIZWlnaHQ6XCI4MHZoXCIsaGVpZ2h0OlwiYXV0b1wifTtmdW5jdGlvbiBhZGRpdGlvbmFsQ1NTKHQpe3ZhciBlPXt9O3JldHVybltcImxlZnRcIixcInJpZ2h0XCJdLmluY2x1ZGVzKHQpJiYoZS5tYXhXaWR0aD1cIjkwdndcIiksW1wibGVmdFwiLFwidG9wXCJdLmluY2x1ZGVzKHQpJiYoZS5ib3JkZXJUb3BMZWZ0UmFkaXVzPTApLFtcInJpZ2h0XCIsXCJ0b3BcIl0uaW5jbHVkZXModCkmJihlLmJvcmRlclRvcFJpZ2h0UmFkaXVzPTApLFtcImxlZnRcIixcImJvdHRvbVwiXS5pbmNsdWRlcyh0KSYmKGUuYm9yZGVyQm90dG9tTGVmdFJhZGl1cz0wKSxbXCJyaWdodFwiLFwiYm90dG9tXCJdLmluY2x1ZGVzKHQpJiYoZS5ib3JkZXJCb3R0b21SaWdodFJhZGl1cz0wKSxlfXZhciBtb2RhbHM9e3Jlc3BvbnNpdmU6MCxtYXhpbWl6ZWQ6MH0sUU1vZGFsPXtuYW1lOlwiUU1vZGFsXCIsbWl4aW5zOltNb2RlbFRvZ2dsZU1peGluXSxwcm92aWRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm57X19xbW9kYWw6e3JlZ2lzdGVyOmZ1bmN0aW9uKGUpe3QubGF5b3V0IT09ZSYmKHQubGF5b3V0PWUpfSx1bnJlZ2lzdGVyOmZ1bmN0aW9uKGUpe3QubGF5b3V0PT09ZSYmKHQubGF5b3V0PW51bGwpfX19fSxwcm9wczp7cG9zaXRpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuXCJcIj09PXR8fFtcInRvcFwiLFwiYm90dG9tXCIsXCJsZWZ0XCIsXCJyaWdodFwiXS5pbmNsdWRlcyh0KX19LHRyYW5zaXRpb246U3RyaW5nLGVudGVyQ2xhc3M6U3RyaW5nLGxlYXZlQ2xhc3M6U3RyaW5nLHBvc2l0aW9uQ2xhc3Nlczp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImZsZXgtY2VudGVyXCJ9LGNvbnRlbnRDbGFzc2VzOltPYmplY3QsQXJyYXksU3RyaW5nXSxjb250ZW50Q3NzOltPYmplY3QsQXJyYXksU3RyaW5nXSxub0JhY2tkcm9wRGlzbWlzczp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LG5vRXNjRGlzbWlzczp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LG5vUm91dGVEaXNtaXNzOkJvb2xlYW4sbm9SZWZvY3VzOkJvb2xlYW4sbWluaW1pemVkOkJvb2xlYW4sbWF4aW1pemVkOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57bGF5b3V0Om51bGx9fSx3YXRjaDp7JHJvdXRlOmZ1bmN0aW9uKCl7dGhpcy5ub1JvdXRlRGlzbWlzc3x8dGhpcy5oaWRlKCl9LG1heGltaXplZDpmdW5jdGlvbih0LGUpe3RoaXMuX19yZWdpc3RlcighMSxlKSx0aGlzLl9fcmVnaXN0ZXIoITAsdCl9LG1pbmltaXplZDpmdW5jdGlvbih0LGUpe3RoaXMuX19yZWdpc3RlcighMSx0aGlzLm1heGltaXplZCxlKSx0aGlzLl9fcmVnaXN0ZXIoITAsdGhpcy5tYXhpbWl6ZWQsdCl9fSxjb21wdXRlZDp7bW9kYWxDbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wb3NpdGlvbj9wb3NpdGlvbnNbdGhpcy5wb3NpdGlvbl06dGhpcy5wb3NpdGlvbkNsYXNzZXM7cmV0dXJuIHRoaXMubWF4aW1pemVkP1tcIm1heGltaXplZFwiLHRdOnRoaXMubWluaW1pemVkP1tcIm1pbmltaXplZFwiLHRdOnR9LGNvbnRlbnRDbGFzc2VzQ2FsYzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dD9bdGhpcy5jb250ZW50Q2xhc3NlcyxcImNvbHVtbiBuby13cmFwXCJdOnRoaXMuY29udGVudENsYXNzZXN9LHRyYW5zaXRpb25Qcm9wczpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBvc2l0aW9uP3tuYW1lOlwicS1tb2RhbC1cIit0aGlzLnBvc2l0aW9ufTp0aGlzLmVudGVyQ2xhc3N8fHRoaXMubGVhdmVDbGFzcz97ZW50ZXJBY3RpdmVDbGFzczp0aGlzLmVudGVyQ2xhc3MsbGVhdmVBY3RpdmVDbGFzczp0aGlzLmxlYXZlQ2xhc3N9OntuYW1lOnRoaXMudHJhbnNpdGlvbnx8XCJxLW1vZGFsXCJ9fSxtb2RhbENzczpmdW5jdGlvbigpe2lmKHRoaXMucG9zaXRpb24pe3ZhciB0PUFycmF5LmlzQXJyYXkodGhpcy5jb250ZW50Q3NzKT90aGlzLmNvbnRlbnRDc3M6W3RoaXMuY29udGVudENzc107cmV0dXJuIHQudW5zaGlmdChPYmplY3QuYXNzaWduKHt9LHBvc2l0aW9uQ1NTLGFkZGl0aW9uYWxDU1ModGhpcy5wb3NpdGlvbikpKSx0fXJldHVybiB0aGlzLmNvbnRlbnRDc3N9fSxtZXRob2RzOntfX2Rpc21pc3M6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMubm9CYWNrZHJvcERpc21pc3M/dGhpcy5fX3NoYWtlKCk6dGhpcy5oaWRlKCkudGhlbihmdW5jdGlvbigpe3QuJGVtaXQoXCJkaXNtaXNzXCIpfSl9LF9fc2hvdzpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5ub1JlZm9jdXN8fCh0aGlzLl9fcmVmb2N1c1RhcmdldD1kb2N1bWVudC5hY3RpdmVFbGVtZW50KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuJGVsKSx0aGlzLl9fcmVnaXN0ZXIoITApLHByZXZlbnRTY3JvbGwoITApLEVzY2FwZUtleS5yZWdpc3RlcihmdW5jdGlvbigpe3Qubm9Fc2NEaXNtaXNzP3QuX19zaGFrZSgpOih0LiRlbWl0KFwiZXNjYXBlLWtleVwiKSx0LmhpZGUoKS50aGVuKGZ1bmN0aW9uKCl7dC4kZW1pdChcImRpc21pc3NcIil9KSl9KTt2YXIgZT10aGlzLiRyZWZzLmNvbnRlbnQ7dGhpcy4kcS5wbGF0Zm9ybS5pcy5pb3MmJmUuY2xpY2soKSxlLnNjcm9sbFRvcD0wLFtcIm1vZGFsLXNjcm9sbFwiLFwibGF5b3V0LXZpZXdcIl0uZm9yRWFjaChmdW5jdGlvbih0KXtbXS5zbGljZS5jYWxsKGUuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh0KSkuZm9yRWFjaChmdW5jdGlvbih0KXt0LnNjcm9sbFRvcD0wfSl9KSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3JldHVybiBlJiZlLmZvY3VzKCl9KX0sX19oaWRlOmZ1bmN0aW9uKCl7dGhpcy5fX2NsZWFudXAoKSwhdGhpcy5ub1JlZm9jdXMmJnRoaXMuX19yZWZvY3VzVGFyZ2V0JiYodGhpcy5fX3JlZm9jdXNUYXJnZXQuZm9jdXMoKSwhdGhpcy5fX3JlZm9jdXNUYXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKFwicS1pZlwiKSYmdGhpcy5fX3JlZm9jdXNUYXJnZXQuYmx1cigpKX0sX19jbGVhbnVwOmZ1bmN0aW9uKCl7RXNjYXBlS2V5LnBvcCgpLHByZXZlbnRTY3JvbGwoITEpLHRoaXMuX19yZWdpc3RlcighMSl9LF9fc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9LF9fcmVnaXN0ZXI6ZnVuY3Rpb24odCxlLGkpe3ZvaWQgMD09PWUmJihlPXRoaXMubWF4aW1pemVkKSx2b2lkIDA9PT1pJiYoaT10aGlzLm1pbmltaXplZCk7dmFyIHM9dD97YWN0aW9uOlwiYWRkXCIsc3RlcDoxfTp7YWN0aW9uOlwicmVtb3ZlXCIsc3RlcDotMX07aWYoZSl7aWYobW9kYWxzLm1heGltaXplZCs9cy5zdGVwLCF0JiZtb2RhbHMubWF4aW1pemVkPjApcmV0dXJuO2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0W3MuYWN0aW9uXShcInEtbWF4aW1pemVkLW1vZGFsXCIpfWVsc2UgaWYoIWkpe2lmKG1vZGFscy5yZXNwb25zaXZlKz1zLnN0ZXAsIXQmJm1vZGFscy5yZXNwb25zaXZlPjApcmV0dXJuO2RvY3VtZW50LmJvZHkuY2xhc3NMaXN0W3MuYWN0aW9uXShcInEtcmVzcG9uc2l2ZS1tb2RhbFwiKX19LF9fc2hha2U6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJGVsLmNsYXNzTGlzdC5yZW1vdmUoXCJhbmltYXRlLXNoYWtlXCIpLHRoaXMuJGVsLmNsYXNzTGlzdC5hZGQoXCJhbmltYXRlLXNoYWtlXCIpLGNsZWFyVGltZW91dCh0aGlzLnNoYWtlVGltZW91dCksdGhpcy5zaGFrZVRpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe3QuJGVsLmNsYXNzTGlzdC5yZW1vdmUoXCJhbmltYXRlLXNoYWtlXCIpfSwxNTApfX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMudmFsdWUmJnRoaXMuc2hvdygpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMuc2hha2VUaW1lb3V0KSx0aGlzLiRlbC5yZW1vdmUoKSx0aGlzLnNob3dpbmcmJnRoaXMuX19jbGVhbnVwKCl9LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFwidHJhbnNpdGlvblwiLHtwcm9wczp0aGlzLnRyYW5zaXRpb25Qcm9wcyxvbjp7YWZ0ZXJFbnRlcjpmdW5jdGlvbigpe2Uuc2hvd1Byb21pc2UmJmUuc2hvd1Byb21pc2VSZXNvbHZlKCl9LGVudGVyQ2FuY2VsbGVkOmZ1bmN0aW9uKCl7ZS5zaG93UHJvbWlzZSYmZS5zaG93UHJvbWlzZVJlamVjdCgpLGUuJGVsLnJlbW92ZSgpfSxhZnRlckxlYXZlOmZ1bmN0aW9uKCl7ZS5oaWRlUHJvbWlzZSYmZS5oaWRlUHJvbWlzZVJlc29sdmUoKSxlLiRlbC5yZW1vdmUoKX0sbGVhdmVDYW5jZWxsZWQ6ZnVuY3Rpb24oKXtlLmhpZGVQcm9taXNlJiZlLmhpZGVQcm9taXNlUmVqZWN0KCl9fX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJtb2RhbCBmdWxsc2NyZWVuIHJvd1wiLGNsYXNzOnRoaXMubW9kYWxDbGFzc2VzLGRpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHZhbHVlOnRoaXMuc2hvd2luZ31dfSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcIm1vZGFsLWJhY2tkcm9wIGFic29sdXRlLWZ1bGxcIixvbjp7Y2xpY2s6dGhpcy5fX2Rpc21pc3N9fSksdChcImRpdlwiLHtyZWY6XCJjb250ZW50XCIsc3RhdGljQ2xhc3M6XCJtb2RhbC1jb250ZW50XCIsc3R5bGU6dGhpcy5tb2RhbENzcyxjbGFzczp0aGlzLmNvbnRlbnRDbGFzc2VzQ2FsYyxhdHRyczp7dGFiaW5kZXg6LTF9LG9uOntjbGljazp0aGlzLl9fc3RvcFByb3BhZ2F0aW9uLHRvdWNoc3RhcnQ6dGhpcy5fX3N0b3BQcm9wYWdhdGlvbn19LHRoaXMuJHNsb3RzLmRlZmF1bHQpXSldKX19LHByZWZpeCQxPVwibWRcIixRSWNvbj17bmFtZTpcIlFJY29uXCIscHJvcHM6e25hbWU6U3RyaW5nLGNvbG9yOlN0cmluZyxzaXplOlN0cmluZ30sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXMubmFtZTtyZXR1cm4gZT8odD0vXmZhW3N8cnxsfGJdezAsMX0gLy50ZXN0KGUpfHxlLnN0YXJ0c1dpdGgoXCJpY29uLVwiKT9lOmUuc3RhcnRzV2l0aChcImJ0LVwiKT9cImJ0IFwiK2U6ZS5zdGFydHNXaXRoKFwiZXZhLVwiKT9cImV2YSBcIitlOi9eaW9uLShtZHxpb3N8bG9nbykvLnRlc3QoZSk/XCJpb25pY29ucyBcIitlOmUuc3RhcnRzV2l0aChcImlvbi1cIik/XCJpb25pY29ucyBpb24tXCIrcHJlZml4JDErZS5zdWJzdHIoMyk6ZS5zdGFydHNXaXRoKFwibWRpLVwiKT9cIm1kaSBcIitlOlwibWF0ZXJpYWwtaWNvbnNcIix0aGlzLmNvbG9yP3QrXCIgdGV4dC1cIit0aGlzLmNvbG9yOnQpOlwiXCJ9LGNvbnRlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbGFzc2VzLnN0YXJ0c1dpdGgoXCJtYXRlcmlhbC1pY29uc1wiKT90aGlzLm5hbWUucmVwbGFjZSgvIC9nLFwiX1wiKTpcIiBcIn0sc3R5bGU6ZnVuY3Rpb24oKXtpZih0aGlzLnNpemUpcmV0dXJue2ZvbnRTaXplOnRoaXMuc2l6ZX19fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJpXCIse3N0YXRpY0NsYXNzOlwicS1pY29uXCIsY2xhc3M6dGhpcy5jbGFzc2VzLHN0eWxlOnRoaXMuc3R5bGUsYXR0cnM6e1wiYXJpYS1oaWRkZW5cIjohMH19LFt0aGlzLmNvbnRlbnQsdGhpcy4kc2xvdHMuZGVmYXVsdF0pfX0sUUxpc3Q9e25hbWU6XCJRTGlzdFwiLHByb3BzOntub0JvcmRlcjpCb29sZWFuLGRhcms6Qm9vbGVhbixkZW5zZTpCb29sZWFuLHNwYXJzZTpCb29sZWFuLHN0cmlwZWQ6Qm9vbGVhbixzdHJpcGVkT2RkOkJvb2xlYW4sc2VwYXJhdG9yOkJvb2xlYW4saW5zZXRTZXBhcmF0b3I6Qm9vbGVhbixtdWx0aWxpbmU6Qm9vbGVhbixoaWdobGlnaHQ6Qm9vbGVhbixsaW5rOkJvb2xlYW59LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJue1wibm8tYm9yZGVyXCI6dGhpcy5ub0JvcmRlcixcInEtbGlzdC1kYXJrXCI6dGhpcy5kYXJrLFwicS1saXN0LWRlbnNlXCI6dGhpcy5kZW5zZSxcInEtbGlzdC1zcGFyc2VcIjp0aGlzLnNwYXJzZSxcInEtbGlzdC1zdHJpcGVkXCI6dGhpcy5zdHJpcGVkLFwicS1saXN0LXN0cmlwZWQtb2RkXCI6dGhpcy5zdHJpcGVkT2RkLFwicS1saXN0LXNlcGFyYXRvclwiOnRoaXMuc2VwYXJhdG9yLFwicS1saXN0LWluc2V0LXNlcGFyYXRvclwiOnRoaXMuaW5zZXRTZXBhcmF0b3IsXCJxLWxpc3QtbXVsdGlsaW5lXCI6dGhpcy5tdWx0aWxpbmUsXCJxLWxpc3QtaGlnaGxpZ2h0XCI6dGhpcy5oaWdobGlnaHQsXCJxLWxpc3QtbGlua1wiOnRoaXMubGlua319fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWxpc3RcIixjbGFzczp0aGlzLmNsYXNzZXN9LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0scm91dGVyTGlua0V2ZW50TmFtZT1cInFyb3V0ZXJsaW5rY2xpY2tcIixldnQ9bnVsbDtpZighaXNTU1IpdHJ5e2V2dD1uZXcgRXZlbnQocm91dGVyTGlua0V2ZW50TmFtZSl9Y2F0Y2godCl7KGV2dD1kb2N1bWVudC5jcmVhdGVFdmVudChcIkV2ZW50XCIpKS5pbml0RXZlbnQocm91dGVyTGlua0V2ZW50TmFtZSwhMCwhMSl9dmFyIHJvdXRlckxpbmtQcm9wcz17dG86W1N0cmluZyxPYmplY3RdLGV4YWN0OkJvb2xlYW4sYXBwZW5kOkJvb2xlYW4scmVwbGFjZTpCb29sZWFuLGV2ZW50OltTdHJpbmcsQXJyYXldLGFjdGl2ZUNsYXNzOlN0cmluZyxleGFjdEFjdGl2ZUNsYXNzOlN0cmluZ30sUm91dGVyTGlua01peGluPXtwcm9wczpyb3V0ZXJMaW5rUHJvcHMsZGF0YTpmdW5jdGlvbigpe3JldHVybntyb3V0ZXJMaW5rRXZlbnROYW1lOnJvdXRlckxpbmtFdmVudE5hbWV9fX07ZnVuY3Rpb24gdGV4dFN0eWxlKHQpe3JldHVybiB2b2lkIDA9PT10fHx0PDI/e306e292ZXJmbG93OlwiaGlkZGVuXCIsZGlzcGxheTpcIi13ZWJraXQtYm94XCIsXCItd2Via2l0LWJveC1vcmllbnRcIjpcInZlcnRpY2FsXCIsXCItd2Via2l0LWxpbmUtY2xhbXBcIjp0fX12YXIgc3ViSXRlbVByb3BzPXtpY29uOlN0cmluZyxyaWdodEljb246U3RyaW5nLGltYWdlOlN0cmluZyxyaWdodEltYWdlOlN0cmluZyxhdmF0YXI6U3RyaW5nLHJpZ2h0QXZhdGFyOlN0cmluZyxsZXR0ZXI6U3RyaW5nLHJpZ2h0TGV0dGVyOlN0cmluZyxsYWJlbDpTdHJpbmcsc3VibGFiZWw6U3RyaW5nLGxhYmVsTGluZXM6W1N0cmluZyxOdW1iZXJdLHN1YmxhYmVsTGluZXM6W1N0cmluZyxOdW1iZXJdfSxJdGVtTWl4aW49e21peGluczpbe3Byb3BzOnJvdXRlckxpbmtQcm9wc31dLHByb3BzOntkYXJrOkJvb2xlYW4sbGluazpCb29sZWFuLGRlbnNlOkJvb2xlYW4sc3BhcnNlOkJvb2xlYW4sc2VwYXJhdG9yOkJvb2xlYW4saW5zZXRTZXBhcmF0b3I6Qm9vbGVhbixtdWx0aWxpbmU6Qm9vbGVhbixoaWdobGlnaHQ6Qm9vbGVhbix0YWc6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJkaXZcIn19LGNvbXB1dGVkOntpdGVtQ2xhc3NlczpmdW5jdGlvbigpe3JldHVybntcInEtaXRlbVwiOiEwLFwicS1pdGVtLWRpdmlzaW9uXCI6ITAsXCJyZWxhdGl2ZS1wb3NpdGlvblwiOiEwLFwicS1pdGVtLWRhcmtcIjp0aGlzLmRhcmssXCJxLWl0ZW0tZGVuc2VcIjp0aGlzLmRlbnNlLFwicS1pdGVtLXNwYXJzZVwiOnRoaXMuc3BhcnNlLFwicS1pdGVtLXNlcGFyYXRvclwiOnRoaXMuc2VwYXJhdG9yLFwicS1pdGVtLWluc2V0LXNlcGFyYXRvclwiOnRoaXMuaW5zZXRTZXBhcmF0b3IsXCJxLWl0ZW0tbXVsdGlsaW5lXCI6dGhpcy5tdWx0aWxpbmUsXCJxLWl0ZW0taGlnaGxpZ2h0XCI6dGhpcy5oaWdobGlnaHQsXCJxLWl0ZW0tbGlua1wiOnRoaXMudG98fHRoaXMubGlua319fX0sUUl0ZW09e25hbWU6XCJRSXRlbVwiLG1peGluczpbSXRlbU1peGluXSxwcm9wczp7YWN0aXZlOkJvb2xlYW4sbGluazpCb29sZWFufSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3JldHVyblt2b2lkIDAhPT10aGlzLnRvP1wicS1saW5rXCI6e2FjdGl2ZTp0aGlzLmFjdGl2ZX0sdGhpcy5pdGVtQ2xhc3Nlc119fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMudG8/dChcInJvdXRlci1saW5rXCIse3Byb3BzOk9iamVjdC5hc3NpZ24oe30sdGhpcy4kcHJvcHMse3RhZzpcImFcIn0pLGNsYXNzOnRoaXMuY2xhc3Nlc30sdGhpcy4kc2xvdHMuZGVmYXVsdCk6dCh0aGlzLnRhZyx7Y2xhc3M6dGhpcy5jbGFzc2VzfSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFJdGVtU2lkZT17bmFtZTpcIlFJdGVtU2lkZVwiLHByb3BzOntyaWdodDpCb29sZWFuLGljb246U3RyaW5nLGxldHRlcjp7dHlwZTpTdHJpbmcsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiAxPT09dC5sZW5ndGh9fSxpbnZlcnRlZDpCb29sZWFuLGF2YXRhcjpTdHJpbmcsaW1hZ2U6U3RyaW5nLHN0YW1wOlN0cmluZyxjb2xvcjpTdHJpbmcsdGV4dENvbG9yOlN0cmluZ30sY29tcHV0ZWQ6e3R5cGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybltcImljb25cIixcImltYWdlXCIsXCJhdmF0YXJcIixcImxldHRlclwiLFwic3RhbXBcIl0uZmluZChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pfSxjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W1wicS1pdGVtLXNpZGUtXCIrKHRoaXMucmlnaHQ/XCJyaWdodFwiOlwibGVmdFwiKV07cmV0dXJuIXRoaXMuY29sb3J8fHRoaXMuaWNvbnx8dGhpcy5sZXR0ZXJ8fHQucHVzaChcInRleHQtXCIrdGhpcy5jb2xvciksdH0sdHlwZUNsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXCJxLWl0ZW0tXCIrdGhpcy50eXBlXTtyZXR1cm4gdGhpcy5jb2xvciYmKHRoaXMuaW52ZXJ0ZWQmJih0aGlzLmljb258fHRoaXMubGV0dGVyKT90LnB1c2goXCJiZy1cIit0aGlzLmNvbG9yKTp0aGlzLnRleHRDb2xvcnx8dC5wdXNoKFwidGV4dC1cIit0aGlzLmNvbG9yKSksdGhpcy50ZXh0Q29sb3ImJnQucHVzaChcInRleHQtXCIrdGhpcy50ZXh0Q29sb3IpLHRoaXMuaW52ZXJ0ZWQmJih0aGlzLmljb258fHRoaXMubGV0dGVyKSYmKHQucHVzaChcInEtaXRlbS1pbnZlcnRlZFwiKSx0LnB1c2goXCJmbGV4XCIpLHQucHVzaChcImZsZXgtY2VudGVyXCIpKSx0fSxpbWFnZVBhdGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbWFnZXx8dGhpcy5hdmF0YXJ9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIHRoaXMudHlwZSYmKHRoaXMuaWNvbj8oZT10KFFJY29uLHtjbGFzczp0aGlzLmludmVydGVkP251bGw6dGhpcy50eXBlQ2xhc3Nlcyxwcm9wczp7bmFtZTp0aGlzLmljb259fSksdGhpcy5pbnZlcnRlZCYmKGU9dChcImRpdlwiLHtjbGFzczp0aGlzLnR5cGVDbGFzc2VzfSxbZV0pKSk6ZT10aGlzLmltYWdlUGF0aD90KFwiaW1nXCIse2NsYXNzOnRoaXMudHlwZUNsYXNzZXMsYXR0cnM6e3NyYzp0aGlzLmltYWdlUGF0aH19KTp0KFwiZGl2XCIse2NsYXNzOnRoaXMudHlwZUNsYXNzZXN9LFt0aGlzLnN0YW1wfHx0aGlzLmxldHRlcl0pKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1pdGVtLXNpZGUgcS1pdGVtLXNlY3Rpb25cIixjbGFzczp0aGlzLmNsYXNzZXN9LFtlLHRoaXMuJHNsb3RzLmRlZmF1bHRdKX19O2Z1bmN0aW9uIHRleHQodCxlLGkscyl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWl0ZW0tXCIrZSsoMT09PShzPXBhcnNlSW50KHMsMTApKT9cIiBlbGxpcHNpc1wiOlwiXCIpLHN0eWxlOnRleHRTdHlsZShzKSxkb21Qcm9wczp7aW5uZXJIVE1MOml9fSl9dmFyIFFJdGVtTWFpbj17bmFtZTpcIlFJdGVtTWFpblwiLHByb3BzOntsYWJlbDpTdHJpbmcsbGFiZWxMaW5lczpbU3RyaW5nLE51bWJlcl0sc3VibGFiZWw6U3RyaW5nLHN1YmxhYmVsTGluZXM6W1N0cmluZyxOdW1iZXJdLGluc2V0OkJvb2xlYW4sdGFnOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiZGl2XCJ9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQodGhpcy50YWcse3N0YXRpY0NsYXNzOlwicS1pdGVtLW1haW4gcS1pdGVtLXNlY3Rpb25cIixjbGFzczp7XCJxLWl0ZW0tbWFpbi1pbnNldFwiOnRoaXMuaW5zZXR9fSxbdGhpcy5sYWJlbD90ZXh0KHQsXCJsYWJlbFwiLHRoaXMubGFiZWwsdGhpcy5sYWJlbExpbmVzKTpudWxsLHRoaXMuc3VibGFiZWw/dGV4dCh0LFwic3VibGFiZWxcIix0aGlzLnN1YmxhYmVsLHRoaXMuc3VibGFiZWxMaW5lcyk6bnVsbCx0aGlzLiRzbG90cy5kZWZhdWx0XSl9fSxRSXRlbVNlcGFyYXRvcj17bmFtZTpcIlFJdGVtU2VwYXJhdG9yXCIscHJvcHM6e2luc2V0OkJvb2xlYW59LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaXRlbS1zZXBhcmF0b3ItY29tcG9uZW50XCIsY2xhc3M6e1wicS1pdGVtLXNlcGFyYXRvci1pbnNldC1jb21wb25lbnRcIjp0aGlzLmluc2V0fX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRQWN0aW9uU2hlZXQ9e25hbWU6XCJRQWN0aW9uU2hlZXRcIixwcm9wczp7dmFsdWU6Qm9vbGVhbix0aXRsZTpTdHJpbmcsZ3JpZDpCb29sZWFuLGFjdGlvbnM6QXJyYXksZGlzbWlzc0xhYmVsOlN0cmluZ30sY29tcHV0ZWQ6e2NvbnRlbnRDc3M6ZnVuY3Rpb24oKXt9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPVtdLHM9dGhpcy4kc2xvdHMudGl0bGV8fHRoaXMudGl0bGU7cmV0dXJuIHMmJmkucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1hY3Rpb25zaGVldC10aXRsZSBjb2x1bW4ganVzdGlmeS1jZW50ZXJcIn0sW3NdKSksaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWFjdGlvbnNoZWV0LWJvZHkgc2Nyb2xsXCJ9LHRoaXMuYWN0aW9ucz9bdGhpcy5ncmlkP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWFjdGlvbnNoZWV0LWdyaWQgcm93IHdyYXAgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwifSx0aGlzLl9fZ2V0QWN0aW9ucyh0KSk6dChRTGlzdCx7c3RhdGljQ2xhc3M6XCJuby1ib3JkZXJcIixwcm9wczp7bGluazohMH19LHRoaXMuX19nZXRBY3Rpb25zKHQpKV06dGhpcy4kc2xvdHMuZGVmYXVsdCkpLHQoUU1vZGFsLHtyZWY6XCJtb2RhbFwiLHByb3BzOnt2YWx1ZTp0aGlzLnZhbHVlLHBvc2l0aW9uOlwiYm90dG9tXCIsY29udGVudENzczp0aGlzLmNvbnRlbnRDc3N9LG9uOntpbnB1dDpmdW5jdGlvbih0KXtlLiRlbWl0KFwiaW5wdXRcIix0KX0sc2hvdzpmdW5jdGlvbigpe2UuJGVtaXQoXCJzaG93XCIpfSxoaWRlOmZ1bmN0aW9uKCl7ZS4kZW1pdChcImhpZGVcIil9LGRpc21pc3M6ZnVuY3Rpb24oKXtlLiRlbWl0KFwiY2FuY2VsXCIpfSxcImVzY2FwZS1rZXlcIjpmdW5jdGlvbigpe2UuJGVtaXQoXCJlc2NhcGUta2V5XCIpfX19LGkpfSxtZXRob2RzOntzaG93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHJlZnMubW9kYWwuc2hvdygpfSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHJlZnMubW9kYWw/dGhpcy4kcmVmcy5tb2RhbC5oaWRlKCk6UHJvbWlzZS5yZXNvbHZlKCl9LF9fZ2V0QWN0aW9uczpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLmFjdGlvbnMubWFwKGZ1bmN0aW9uKGkpe3ZhciBzO3JldHVybiBpLmxhYmVsP3QoZS5ncmlkP1wiZGl2XCI6UUl0ZW0sKChzPXtzdGF0aWNDbGFzczplLmdyaWQ/XCJxLWFjdGlvbnNoZWV0LWdyaWQtaXRlbSBjdXJzb3ItcG9pbnRlciByZWxhdGl2ZS1wb3NpdGlvbiBjb2x1bW4gaW5saW5lIGZsZXgtY2VudGVyXCI6bnVsbCxjbGFzczppLmNsYXNzZXMsYXR0cnM6e3RhYmluZGV4OjB9fSlbZS5ncmlkP1wib25cIjpcIm5hdGl2ZU9uXCJdPXtjbGljazpmdW5jdGlvbigpe3JldHVybiBlLl9fb25PayhpKX0sa2V5dXA6ZnVuY3Rpb24odCl7MTM9PT1nZXRFdmVudEtleSh0KSYmZS5fX29uT2soaSl9fSxzKSxlLmdyaWQ/W2kuaWNvbj90KFFJY29uLHtwcm9wczp7bmFtZTppLmljb24sY29sb3I6aS5jb2xvcn19KTpudWxsLGkuYXZhdGFyP3QoXCJpbWdcIix7ZG9tUHJvcHM6e3NyYzppLmF2YXRhcn0sc3RhdGljQ2xhc3M6XCJhdmF0YXJcIn0pOm51bGwsdChcInNwYW5cIixbaS5sYWJlbF0pXTpbdChRSXRlbVNpZGUse3Byb3BzOntpY29uOmkuaWNvbixjb2xvcjppLmNvbG9yLGF2YXRhcjppLmF2YXRhcn19KSx0KFFJdGVtTWFpbix7cHJvcHM6e2luc2V0OiEwLGxhYmVsOmkubGFiZWx9fSldKTp0KFFJdGVtU2VwYXJhdG9yLHtzdGF0aWNDbGFzczpcImNvbC0xMlwifSl9KX0sX19vbk9rOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5oaWRlKCkudGhlbihmdW5jdGlvbigpe1wiZnVuY3Rpb25cIj09dHlwZW9mIHQuaGFuZGxlciYmdC5oYW5kbGVyKCksZS4kZW1pdChcIm9rXCIsdCl9KX0sX19vbkNhbmNlbDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5oaWRlKCkudGhlbihmdW5jdGlvbigpe3QuJGVtaXQoXCJjYW5jZWxcIil9KX0sX19vbktleUNhbmNlbDpmdW5jdGlvbih0KXsxMz09PWdldEV2ZW50S2V5KHQpJiZ0aGlzLl9fb25DYW5jZWwoKX19fSx1bml0cz1bXCJCXCIsXCJrQlwiLFwiTUJcIixcIkdCXCIsXCJUQlwiLFwiUEJcIl07ZnVuY3Rpb24gaHVtYW5TdG9yYWdlU2l6ZSh0KXtmb3IodmFyIGU9MDtwYXJzZUludCh0LDEwKT49MTAyNCYmZTx1bml0cy5sZW5ndGgtMTspdC89MTAyNCwrK2U7cmV0dXJuIHQudG9GaXhlZCgxKStcIiBcIit1bml0c1tlXX1mdW5jdGlvbiBjYXBpdGFsaXplKHQpe3JldHVybiB0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSl9ZnVuY3Rpb24gYmV0d2Vlbih0LGUsaSl7cmV0dXJuIGk8PWU/ZTpNYXRoLm1pbihpLE1hdGgubWF4KGUsdCkpfWZ1bmN0aW9uIG5vcm1hbGl6ZVRvSW50ZXJ2YWwodCxlLGkpe2lmKGk8PWUpcmV0dXJuIGU7dmFyIHM9aS1lKzEsbj1lKyh0LWUpJXM7cmV0dXJuIG48ZSYmKG49cytuKSwwPT09bj8wOm59ZnVuY3Rpb24gcGFkKHQsZSxpKXt2b2lkIDA9PT1lJiYoZT0yKSx2b2lkIDA9PT1pJiYoaT1cIjBcIik7dmFyIHM9XCJcIit0O3JldHVybiBzLmxlbmd0aD49ZT9zOm5ldyBBcnJheShlLXMubGVuZ3RoKzEpLmpvaW4oaSkrc312YXIgZm9ybWF0PXtodW1hblN0b3JhZ2VTaXplOmh1bWFuU3RvcmFnZVNpemUsY2FwaXRhbGl6ZTpjYXBpdGFsaXplLGJldHdlZW46YmV0d2Vlbixub3JtYWxpemVUb0ludGVydmFsOm5vcm1hbGl6ZVRvSW50ZXJ2YWwscGFkOnBhZH0seGhyPWlzU1NSP251bGw6WE1MSHR0cFJlcXVlc3Qsc2VuZD1pc1NTUj9udWxsOnhoci5wcm90b3R5cGUuc2VuZCxzdGFjaz17c3RhcnQ6W10sc3RvcDpbXX0saGlnaGphY2tDb3VudD0wO2Z1bmN0aW9uIHRyYW5zbGF0ZSh0KXt2YXIgZT10LnAsaT10LnBvcyxzPXQuYWN0aXZlLG49dC5ob3JpeixvPXQucmV2ZXJzZSxyPXQuZGlyLGE9MSxsPTE7cmV0dXJuIG4/KG8mJihhPS0xKSxcImJvdHRvbVwiPT09aSYmKGw9LTEpLHt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUzZChcIithKihlLTEwMCkrXCIlLFwiKyhzPzA6LTIwMCpsKStcIiUsMClcIn0pOihvJiYobD0tMSksXCJyaWdodFwiPT09aSYmKGE9LTEpLHt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUzZChcIisocz8wOnIqYSotMjAwKStcIiUsXCIrbCooZS0xMDApK1wiJSwwKVwifSl9ZnVuY3Rpb24gaW5jKHQsZSl7cmV0dXJuXCJudW1iZXJcIiE9dHlwZW9mIGUmJihlPXQ8MjU/MypNYXRoLnJhbmRvbSgpKzM6dDw2NT8zKk1hdGgucmFuZG9tKCk6dDw4NT8yKk1hdGgucmFuZG9tKCk6dDw5OT8uNjowKSxiZXR3ZWVuKHQrZSwwLDEwMCl9ZnVuY3Rpb24gaGlnaGphY2tBamF4KHQsZSl7ZnVuY3Rpb24gaSgpe3N0YWNrLnN0b3AubWFwKGZ1bmN0aW9uKHQpe3QoKX0pfXN0YWNrLnN0YXJ0LnB1c2godCksc3RhY2suc3RvcC5wdXNoKGUpLCsraGlnaGphY2tDb3VudD4xfHwoeGhyLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsZT1bXSxzPWFyZ3VtZW50cy5sZW5ndGg7cy0tOyllW3NdPWFyZ3VtZW50c1tzXTtzdGFjay5zdGFydC5tYXAoZnVuY3Rpb24odCl7dCgpfSksdGhpcy5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIixpLCExKSx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXCJyZWFkeXN0YXRlY2hhbmdlXCIsZnVuY3Rpb24oKXs0PT09dC5yZWFkeVN0YXRlJiZpKCl9LCExKSxzZW5kLmFwcGx5KHRoaXMsZSl9KX1mdW5jdGlvbiByZXN0b3JlQWpheCh0LGUpe3N0YWNrLnN0YXJ0PXN0YWNrLnN0YXJ0LmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZSE9PXR9KSxzdGFjay5zdG9wPXN0YWNrLnN0b3AuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09ZX0pLChoaWdoamFja0NvdW50PU1hdGgubWF4KDAsaGlnaGphY2tDb3VudC0xKSl8fCh4aHIucHJvdG90eXBlLnNlbmQ9c2VuZCl9dmFyIFFBamF4QmFyPXtuYW1lOlwiUUFqYXhCYXJcIixwcm9wczp7cG9zaXRpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJ0b3BcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1widG9wXCIsXCJyaWdodFwiLFwiYm90dG9tXCIsXCJsZWZ0XCJdLmluY2x1ZGVzKHQpfX0sc2l6ZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIjJweFwifSxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInJlZFwifSxza2lwSGlqYWNrOkJvb2xlYW4scmV2ZXJzZTpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2NhbGxzOjAscHJvZ3Jlc3M6MCxvblNjcmVlbjohMSxhbmltYXRlOiEwfX0sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5wb3NpdGlvbixcImJnLVwiK3RoaXMuY29sb3IsdGhpcy5hbmltYXRlP1wiXCI6XCJuby10cmFuc2l0aW9uXCJdfSxzdHlsZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMub25TY3JlZW4sZT10cmFuc2xhdGUoe3A6dGhpcy5wcm9ncmVzcyxwb3M6dGhpcy5wb3NpdGlvbixhY3RpdmU6dCxob3Jpejp0aGlzLmhvcml6b250YWwscmV2ZXJzZTp0aGlzLiRxLmkxOG4ucnRsJiZbXCJ0b3BcIixcImJvdHRvbVwiXS5pbmNsdWRlcyh0aGlzLnBvc2l0aW9uKT8hdGhpcy5yZXZlcnNlOnRoaXMucmV2ZXJzZSxkaXI6dGhpcy4kcS5pMThuLnJ0bD8tMToxfSk7cmV0dXJuIGVbdGhpcy5zaXplUHJvcF09dGhpcy5zaXplLGUub3BhY2l0eT10PzE6MCxlfSxob3Jpem9udGFsOmZ1bmN0aW9uKCl7cmV0dXJuXCJ0b3BcIj09PXRoaXMucG9zaXRpb258fFwiYm90dG9tXCI9PT10aGlzLnBvc2l0aW9ufSxzaXplUHJvcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhvcml6b250YWw/XCJoZWlnaHRcIjpcIndpZHRoXCJ9fSxtZXRob2RzOntzdGFydDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3ZvaWQgMD09PXQmJih0PTMwMCksdGhpcy5jYWxscysrLHRoaXMuY2FsbHM+MXx8KGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLiRlbWl0KFwic3RhcnRcIiksdGhpcy5vblNjcmVlbnx8KHRoaXMucHJvZ3Jlc3M9MCx0aGlzLm9uU2NyZWVuPSEwLHRoaXMuYW5pbWF0ZT0hMSx0aGlzLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmFuaW1hdGU9ITAsZS5fX3dvcmsodCl9LDEwMCkpKX0saW5jcmVtZW50OmZ1bmN0aW9uKHQpe3RoaXMuY2FsbHM+MCYmKHRoaXMucHJvZ3Jlc3M9aW5jKHRoaXMucHJvZ3Jlc3MsdCkpfSxzdG9wOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0aGlzLmNhbGxzPU1hdGgubWF4KDAsdGhpcy5jYWxscy0xKSwhKHRoaXMuY2FsbHM+MCkpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLiRlbWl0KFwic3RvcFwiKTt2YXIgZT1mdW5jdGlvbigpe3QuYW5pbWF0ZT0hMCx0LnByb2dyZXNzPTEwMCx0LnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0Lm9uU2NyZWVuPSExfSwxZTMpfTswPT09dGhpcy5wcm9ncmVzcz90aGlzLnRpbWVyPXNldFRpbWVvdXQoZSwxKTplKCl9fSxfX3dvcms6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLnByb2dyZXNzPDEwMCYmKHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2UuaW5jcmVtZW50KCksZS5fX3dvcmsodCl9LHQpKX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLnNraXBIaWphY2t8fCh0aGlzLmhpamFja2VkPSEwLGhpZ2hqYWNrQWpheCh0aGlzLnN0YXJ0LHRoaXMuc3RvcCkpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuaGlqYWNrZWQmJnJlc3RvcmVBamF4KHRoaXMuc3RhcnQsdGhpcy5zdG9wKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1sb2FkaW5nLWJhclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxzdHlsZTp0aGlzLnN0eWxlfSl9fTtmdW5jdGlvbiBzaG93UmlwcGxlKHQsZSxpKXt2YXIgcz1pLnN0b3Asbj1pLmNlbnRlcjtzJiZ0LnN0b3BQcm9wYWdhdGlvbigpO3ZhciBvLHIsYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3BhblwiKSxsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpLGM9ZS5jbGllbnRXaWR0aD5lLmNsaWVudEhlaWdodD9lLmNsaWVudFdpZHRoOmUuY2xpZW50SGVpZ2h0LGg9KG4/YzoyKmMpK1wicHhcIix1PWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoYS5hcHBlbmRDaGlsZChsKSxhLmNsYXNzTmFtZT1cInEtcmlwcGxlLWNvbnRhaW5lclwiLGwuY2xhc3NOYW1lPVwicS1yaXBwbGUtYW5pbWF0aW9uXCIsbC5zdHlsZS53aWR0aD1oLGwuc3R5bGUuaGVpZ2h0PWgsZS5hcHBlbmRDaGlsZChhKSxuKW89cj0wO2Vsc2V7dmFyIGQ9cG9zaXRpb24odCk7bz1kLmxlZnQtdS5sZWZ0LWMscj1kLnRvcC11LnRvcC1jfWwuY2xhc3NMaXN0LmFkZChcInEtcmlwcGxlLWFuaW1hdGlvbi1lbnRlclwiKSxsLmNsYXNzTGlzdC5hZGQoXCJxLXJpcHBsZS1hbmltYXRpb24tdmlzaWJsZVwiKSxsLnN0eWxlLnRyYW5zZm9ybT1cInRyYW5zbGF0ZShcIitvK1wicHgsIFwiK3IrXCJweCkgc2NhbGUzZCgwLCAwLCAwKVwiLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtsLmNsYXNzTGlzdC5yZW1vdmUoXCJxLXJpcHBsZS1hbmltYXRpb24tZW50ZXJcIiksbC5zdHlsZS50cmFuc2Zvcm09XCJ0cmFuc2xhdGUoXCIrbytcInB4LCBcIityK1wicHgpIHNjYWxlM2QoMSwgMSwgMSlcIixzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bC5jbGFzc0xpc3QucmVtb3ZlKFwicS1yaXBwbGUtYW5pbWF0aW9uLXZpc2libGVcIiksc2V0VGltZW91dChmdW5jdGlvbigpe2EucmVtb3ZlKCl9LDMwMCl9LDMwMCl9LDEwKX1mdW5jdGlvbiBzaG91bGRBYm9ydCh0KXt0Lm1hdDtyZXR1cm4gdC5pb3MmJiEwfXZhciBSaXBwbGU9e25hbWU6XCJyaXBwbGVcIixpbnNlcnRlZDpmdW5jdGlvbih0LGUpe3ZhciBpPWUudmFsdWUscz1lLm1vZGlmaWVycztpZighc2hvdWxkQWJvcnQocykpe3ZhciBuPXtlbmFibGVkOiExIT09aSxtb2RpZmllcnM6e3N0b3A6cy5zdG9wLGNlbnRlcjpzLmNlbnRlcn0sY2xpY2s6ZnVuY3Rpb24oZSl7bi5lbmFibGVkJiYtMSE9PWUuZGV0YWlsJiZzaG93UmlwcGxlKGUsdCxuLm1vZGlmaWVycyl9LGtleXVwOmZ1bmN0aW9uKGUpe24uZW5hYmxlZCYmMTM9PT1lLmtleUNvZGUmJnNob3dSaXBwbGUoZSx0LG4ubW9kaWZpZXJzKX19O3QuX19xcmlwcGxlPW4sdC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIixuLmNsaWNrLCExKSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLG4ua2V5dXAsITEpfX0sdXBkYXRlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9ZS52YWx1ZSxzPWUubW9kaWZpZXJzLG49cy5zdG9wLG89cy5jZW50ZXIscj10Ll9fcXJpcHBsZTtyJiYoci5lbmFibGVkPSExIT09aSxyLm1vZGlmaWVycz17c3RvcDpuLGNlbnRlcjpvfSl9LHVuYmluZDpmdW5jdGlvbih0LGUpe3ZhciBpPWUubW9kaWZpZXJzLHM9dC5fX3FyaXBwbGU7cyYmIXNob3VsZEFib3J0KGkpJiYodC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIixzLmNsaWNrLCExKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLHMua2V5dXAsITEpLGRlbGV0ZSB0Ll9fcXJpcHBsZSl9fSxhbGlnbk1hcD17bGVmdDpcInN0YXJ0XCIsY2VudGVyOlwiY2VudGVyXCIscmlnaHQ6XCJlbmRcIixiZXR3ZWVuOlwiYmV0d2VlblwiLGFyb3VuZDpcImFyb3VuZFwifSxhbGlnblZhbHVlcz1PYmplY3Qua2V5cyhhbGlnbk1hcCksQWxpZ25NaXhpbj17cHJvcHM6e2FsaWduOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiY2VudGVyXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiBhbGlnblZhbHVlcy5pbmNsdWRlcyh0KX19fSxjb21wdXRlZDp7YWxpZ25DbGFzczpmdW5jdGlvbigpe3JldHVyblwianVzdGlmeS1cIithbGlnbk1hcFt0aGlzLmFsaWduXX19fSxzaXplcz17eHM6OCxzbToxMCxtZDoxNCxsZzoyMCx4bDoyNCxmb3JtOjE0Ljc3NyxcImZvcm0tbGFiZWxcIjoyMS43NzcsXCJmb3JtLWhpZGUtdW5kZXJsaW5lXCI6OS4zMzMsXCJmb3JtLWxhYmVsLWhpZGUtdW5kZXJsaW5lXCI6MTYuMzMzfSxCdG5NaXhpbj17bWl4aW5zOltBbGlnbk1peGluXSxkaXJlY3RpdmVzOntSaXBwbGU6UmlwcGxlfSxwcm9wczp7dHlwZTpTdHJpbmcsbG9hZGluZzp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6bnVsbH0sZGlzYWJsZTpCb29sZWFuLGxhYmVsOltOdW1iZXIsU3RyaW5nXSxub0NhcHM6Qm9vbGVhbixub1dyYXA6Qm9vbGVhbixpY29uOlN0cmluZyxpY29uUmlnaHQ6U3RyaW5nLHJvdW5kOkJvb2xlYW4sb3V0bGluZTpCb29sZWFuLGZsYXQ6Qm9vbGVhbixyb3VuZGVkOkJvb2xlYW4scHVzaDpCb29sZWFuLHNpemU6U3RyaW5nLGZhYjpCb29sZWFuLGZhYk1pbmk6Qm9vbGVhbixjb2xvcjpTdHJpbmcsdGV4dENvbG9yOlN0cmluZyxnbG9zc3k6Qm9vbGVhbixkZW5zZTpCb29sZWFuLG5vUmlwcGxlOkJvb2xlYW4sdGFiaW5kZXg6TnVtYmVyLHRvOltPYmplY3QsU3RyaW5nXSxyZXBsYWNlOkJvb2xlYW59LGNvbXB1dGVkOntzdHlsZTpmdW5jdGlvbigpe2lmKHRoaXMuc2l6ZSYmIXRoaXMuZmFiJiYhdGhpcy5mYWJNaW5pKXJldHVybntmb250U2l6ZTp0aGlzLnNpemUgaW4gc2l6ZXM/c2l6ZXNbdGhpcy5zaXplXStcInB4XCI6dGhpcy5zaXplfX0saXNSZWN0YW5nbGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5pc1JvdW5kfSxpc1JvdW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm91bmR8fHRoaXMuZmFifHx0aGlzLmZhYk1pbml9LHNoYXBlOmZ1bmN0aW9uKCl7cmV0dXJuXCJxLWJ0bi1cIisodGhpcy5pc1JvdW5kP1wicm91bmRcIjpcInJlY3RhbmdsZVwiKX0saXNEaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRpc2FibGV8fHRoaXMubG9hZGluZ30saGFzUmlwcGxlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMubm9SaXBwbGUmJiF0aGlzLmlzRGlzYWJsZWR9LGNvbXB1dGVkVGFiSW5kZXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0Rpc2FibGVkPy0xOnRoaXMudGFiaW5kZXh8fDB9LGlzTGluazpmdW5jdGlvbigpe3JldHVyblwiYVwiPT09dGhpcy50eXBlfHx2b2lkIDAhPT10aGlzLnRvfSxhdHRyczpmdW5jdGlvbigpe3ZhciB0PXt0YWJpbmRleDp0aGlzLmNvbXB1dGVkVGFiSW5kZXh9O3JldHVyblwiYVwiIT09dGhpcy50eXBlJiYodC50eXBlPXRoaXMudHlwZXx8XCJidXR0b25cIiksdm9pZCAwIT09dGhpcy50byYmKHQuaHJlZj10aGlzLiRyb3V0ZXIucmVzb2x2ZSh0aGlzLnRvKS5ocmVmKSx0fSxjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W3RoaXMuc2hhcGVdO3JldHVybiB0aGlzLmZhYj90LnB1c2goXCJxLWJ0bi1mYWJcIik6dGhpcy5mYWJNaW5pJiZ0LnB1c2goXCJxLWJ0bi1mYWItbWluaVwiKSx0aGlzLmZsYXQ/dC5wdXNoKFwicS1idG4tZmxhdFwiKTp0aGlzLm91dGxpbmU/dC5wdXNoKFwicS1idG4tb3V0bGluZVwiKTp0aGlzLnB1c2gmJnQucHVzaChcInEtYnRuLXB1c2hcIiksdGhpcy5pc0Rpc2FibGVkP3QucHVzaChcImRpc2FibGVkXCIpOih0LnB1c2goXCJxLWZvY3VzYWJsZSBxLWhvdmVyYWJsZVwiKSx0aGlzLmFjdGl2ZSYmdC5wdXNoKFwiYWN0aXZlXCIpKSx0aGlzLmNvbG9yP3RoaXMuZmxhdHx8dGhpcy5vdXRsaW5lP3QucHVzaChcInRleHQtXCIrKHRoaXMudGV4dENvbG9yfHx0aGlzLmNvbG9yKSk6KHQucHVzaChcImJnLVwiK3RoaXMuY29sb3IpLHQucHVzaChcInRleHQtXCIrKHRoaXMudGV4dENvbG9yfHxcIndoaXRlXCIpKSk6dGhpcy50ZXh0Q29sb3ImJnQucHVzaChcInRleHQtXCIrdGhpcy50ZXh0Q29sb3IpLHQucHVzaCh7XCJxLWJ0bi1uby11cHBlcmNhc2VcIjp0aGlzLm5vQ2FwcyxcInEtYnRuLXJvdW5kZWRcIjp0aGlzLnJvdW5kZWQsXCJxLWJ0bi1kZW5zZVwiOnRoaXMuZGVuc2UsZ2xvc3N5OnRoaXMuZ2xvc3N5fSksdH0saW5uZXJDbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W3RoaXMuYWxpZ25DbGFzc107cmV0dXJuITA9PT10aGlzLm5vV3JhcCYmdC5wdXNoKFwibm8td3JhcFwiLFwidGV4dC1uby13cmFwXCIpLCEwPT09dGhpcy5yZXBlYXRpbmcmJnQucHVzaChcIm5vbi1zZWxlY3RhYmxlXCIpLCEwPT09dGhpcy5sb2FkaW5nJiZ0LnB1c2goXCJxLWJ0bi1pbm5lci0taGlkZGVuXCIpLHR9fX0sbWl4aW4kMT17cHJvcHM6e2NvbG9yOlN0cmluZyxzaXplOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OlwiMWVtXCJ9fSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe2lmKHRoaXMuY29sb3IpcmV0dXJuXCJ0ZXh0LVwiK3RoaXMuY29sb3J9fX0sRGVmYXVsdFNwaW5uZXI9e25hbWU6XCJRU3Bpbm5lck1hdFwiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyIHEtc3Bpbm5lci1tYXRcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3dpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIyNSAyNSA1MCA1MFwifX0sW3QoXCJjaXJjbGVcIix7c3RhdGljQ2xhc3M6XCJwYXRoXCIsYXR0cnM6e2N4OlwiNTBcIixjeTpcIjUwXCIscjpcIjIwXCIsZmlsbDpcIm5vbmVcIixzdHJva2U6XCJjdXJyZW50Q29sb3JcIixcInN0cm9rZS13aWR0aFwiOlwiM1wiLFwic3Ryb2tlLW1pdGVybGltaXRcIjpcIjEwXCJ9fSldKX19LFFTcGlubmVyPXttaXhpbnM6W0RlZmF1bHRTcGlubmVyXSxuYW1lOlwiUVNwaW5uZXJcIn0sUUJ0bj17bmFtZTpcIlFCdG5cIixtaXhpbnM6W0J0bk1peGluXSxwcm9wczp7cGVyY2VudGFnZTpOdW1iZXIsZGFya1BlcmNlbnRhZ2U6Qm9vbGVhbix3YWl0Rm9yUmlwcGxlOkJvb2xlYW4scmVwZWF0VGltZW91dDpbTnVtYmVyLEZ1bmN0aW9uXX0sY29tcHV0ZWQ6e2hhc1BlcmNlbnRhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5wZXJjZW50YWdlfSx3aWR0aDpmdW5jdGlvbigpe3JldHVybiBiZXR3ZWVuKHRoaXMucGVyY2VudGFnZSwwLDEwMCkrXCIlXCJ9LGV2ZW50czpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuaXNEaXNhYmxlZHx8IXRoaXMucmVwZWF0VGltZW91dD97Y2xpY2s6dGhpcy5jbGljayxrZXlkb3duOnRoaXMuX19vbktleURvd24sa2V5dXA6dGhpcy5fX29uS2V5VXB9Onttb3VzZWRvd246dGhpcy5fX3N0YXJ0UmVwZWF0LHRvdWNoc3RhcnQ6dGhpcy5fX3N0YXJ0UmVwZWF0LGtleWRvd246ZnVuY3Rpb24oZSl7dC5fX29uS2V5RG93bihlLCEwKX0sbW91c2V1cDp0aGlzLl9fZW5kUmVwZWF0LHRvdWNoZW5kOnRoaXMuX19lbmRSZXBlYXQsa2V5dXA6ZnVuY3Rpb24oZSl7dC5fX29uS2V5VXAoZSwhMCl9LG1vdXNlbGVhdmU6dGhpcy5fX2Fib3J0UmVwZWF0LHRvdWNobW92ZTp0aGlzLl9fYWJvcnRSZXBlYXQsYmx1cjp0aGlzLl9fYWJvcnRSZXBlYXR9fX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntyZXBlYXRpbmc6ITEsYWN0aXZlOiExfX0sbWV0aG9kczp7Y2xpY2s6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0aGlzLl9fY2xlYW51cCgpLHZvaWQgMD09PXRoaXMudG8mJiF0aGlzLmlzRGlzYWJsZWR8fCh0JiZzdG9wQW5kUHJldmVudCh0KSwhdGhpcy5pc0Rpc2FibGVkKSlpZih0JiYtMSE9PXQuZGV0YWlsJiZcInN1Ym1pdFwiPT09dGhpcy50eXBlKXtzdG9wQW5kUHJldmVudCh0KTt2YXIgaT1uZXcgTW91c2VFdmVudChcImNsaWNrXCIsT2JqZWN0LmFzc2lnbih7fSx0LHtkZXRhaWw6LTF9KSk7dGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIGUuJGVsJiZlLiRlbC5kaXNwYXRjaEV2ZW50KGkpfSwyMDApfWVsc2V7dmFyIHM9ZnVuY3Rpb24oKXtlLiRyb3V0ZXJbZS5yZXBsYWNlP1wicmVwbGFjZVwiOlwicHVzaFwiXShlLnRvKX0sbj1mdW5jdGlvbigpe2UuaXNEaXNhYmxlZHx8KGUuJGVtaXQoXCJjbGlja1wiLHQscyksdm9pZCAwIT09ZS50byYmITEhPT10Lm5hdmlnYXRlJiZzKCkpfTt0aGlzLndhaXRGb3JSaXBwbGUmJnRoaXMuaGFzUmlwcGxlP3RoaXMudGltZXI9c2V0VGltZW91dChuLDMwMCk6bigpfX0sX19jbGVhbnVwOmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpfSxfX29uS2V5RG93bjpmdW5jdGlvbih0LGUpe3RoaXMuaXNEaXNhYmxlZHx8MTMhPT10LmtleUNvZGV8fCh0aGlzLmFjdGl2ZT0hMCxlP3RoaXMuX19zdGFydFJlcGVhdCh0KTpzdG9wQW5kUHJldmVudCh0KSl9LF9fb25LZXlVcDpmdW5jdGlvbih0LGUpe3RoaXMuYWN0aXZlJiYodGhpcy5hY3RpdmU9ITEsdGhpcy5pc0Rpc2FibGVkfHwxMyE9PXQua2V5Q29kZXx8dGhpc1tlP1wiX19lbmRSZXBlYXRcIjpcImNsaWNrXCJdKHQpKX0sX19zdGFydFJlcGVhdDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKCF0aGlzLnJlcGVhdGluZyl7dmFyIGk9ZnVuY3Rpb24oKXtlLnRpbWVyPXNldFRpbWVvdXQocyxcImZ1bmN0aW9uXCI9PXR5cGVvZiBlLnJlcGVhdFRpbWVvdXQ/ZS5yZXBlYXRUaW1lb3V0KGUucmVwZWF0Q291bnQpOmUucmVwZWF0VGltZW91dCl9LHM9ZnVuY3Rpb24oKXtlLmlzRGlzYWJsZWR8fChlLnJlcGVhdENvdW50Kz0xLHQucmVwZWF0Q291bnQ9ZS5yZXBlYXRDb3VudCxlLiRlbWl0KFwiY2xpY2tcIix0KSxpKCkpfTt0aGlzLnJlcGVhdENvdW50PTAsdGhpcy5yZXBlYXRpbmc9ITAsaSgpfX0sX19hYm9ydFJlcGVhdDpmdW5jdGlvbigpe3RoaXMucmVwZWF0aW5nPSExLHRoaXMuX19jbGVhbnVwKCl9LF9fZW5kUmVwZWF0OmZ1bmN0aW9uKHQpe3RoaXMucmVwZWF0aW5nJiYodGhpcy5yZXBlYXRpbmc9ITEsdGhpcy5yZXBlYXRDb3VudD90aGlzLnJlcGVhdENvdW50PTA6KHQuZGV0YWlsfHx0LmtleUNvZGUpJiYodC5yZXBlYXRDb3VudD0wLHRoaXMuJGVtaXQoXCJjbGlja1wiLHQpKSx0aGlzLl9fY2xlYW51cCgpKX19LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9fY2xlYW51cCgpfSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9W10uY29uY2F0KHRoaXMuJHNsb3RzLmRlZmF1bHQpO3JldHVybiB2b2lkIDAhPT10aGlzLmxhYmVsJiYhMD09PXRoaXMuaXNSZWN0YW5nbGUmJmUudW5zaGlmdCh0KFwiZGl2XCIsW3RoaXMubGFiZWxdKSksdm9pZCAwIT09dGhpcy5pY29uJiZlLnVuc2hpZnQodChRSWNvbix7Y2xhc3M6e1wib24tbGVmdFwiOnZvaWQgMCE9PXRoaXMubGFiZWwmJiEwPT09dGhpcy5pc1JlY3RhbmdsZX0scHJvcHM6e25hbWU6dGhpcy5pY29ufX0pKSx2b2lkIDAhPT10aGlzLmljb25SaWdodCYmITE9PT10aGlzLmlzUm91bmQmJmUucHVzaCh0KFFJY29uLHtzdGF0aWNDbGFzczpcIm9uLXJpZ2h0XCIscHJvcHM6e25hbWU6dGhpcy5pY29uUmlnaHR9fSkpLHQodGhpcy5pc0xpbms/XCJhXCI6XCJidXR0b25cIix7c3RhdGljQ2xhc3M6XCJxLWJ0biBpbmxpbmUgcmVsYXRpdmUtcG9zaXRpb24gcS1idG4taXRlbSBub24tc2VsZWN0YWJsZVwiLGNsYXNzOnRoaXMuY2xhc3NlcyxzdHlsZTp0aGlzLnN0eWxlLGF0dHJzOnRoaXMuYXR0cnMsb246dGhpcy5ldmVudHMsZGlyZWN0aXZlczp0aGlzLmhhc1JpcHBsZT9be25hbWU6XCJyaXBwbGVcIix2YWx1ZTohMCxtb2RpZmllcnM6e2NlbnRlcjp0aGlzLmlzUm91bmR9fV06bnVsbH0sW3RoaXMuJHEucGxhdGZvcm0uaXMuZGVza3RvcD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1mb2N1cy1oZWxwZXJcIn0pOm51bGwsdGhpcy5sb2FkaW5nJiZ0aGlzLmhhc1BlcmNlbnRhZ2U/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYnRuLXByb2dyZXNzIGFic29sdXRlLWZ1bGxcIixjbGFzczp7XCJxLWJ0bi1kYXJrLXByb2dyZXNzXCI6dGhpcy5kYXJrUGVyY2VudGFnZX0sc3R5bGU6e3dpZHRoOnRoaXMud2lkdGh9fSk6bnVsbCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1idG4taW5uZXIgcm93IGNvbCBpdGVtcy1jZW50ZXIgcS1wb3B1cC0tc2tpcFwiLGNsYXNzOnRoaXMuaW5uZXJDbGFzc2VzfSxlKSxudWxsIT09dGhpcy5sb2FkaW5nP3QoXCJ0cmFuc2l0aW9uXCIse3Byb3BzOntuYW1lOlwicS10cmFuc2l0aW9uLS1mYWRlXCJ9fSwhMD09PXRoaXMubG9hZGluZz9bdChcImRpdlwiLHtrZXk6XCJsb2FkaW5nXCIsc3RhdGljQ2xhc3M6XCJhYnNvbHV0ZS1mdWxsIGZsZXggZmxleC1jZW50ZXJcIn0sdm9pZCAwIT09dGhpcy4kc2xvdHMubG9hZGluZz90aGlzLiRzbG90cy5sb2FkaW5nOlt0KFFTcGlubmVyKV0pXTp2b2lkIDApOm51bGxdKX19LFFBbGVydD17bmFtZTpcIlFBbGVydFwiLHByb3BzOnt0eXBlOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wicG9zaXRpdmVcIixcIm5lZ2F0aXZlXCIsXCJ3YXJuaW5nXCIsXCJpbmZvXCJdLmluY2x1ZGVzKHQpfX0sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJuZWdhdGl2ZVwifSx0ZXh0Q29sb3I6U3RyaW5nLG1lc3NhZ2U6U3RyaW5nLGRldGFpbDpTdHJpbmcsaWNvbjpTdHJpbmcsYXZhdGFyOlN0cmluZyxhY3Rpb25zOkFycmF5fSxjb21wdXRlZDp7Y29tcHV0ZWRJY29uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaWNvbj90aGlzLmljb246dGhpcy4kcS5pY29uLnR5cGVbdGhpcy50eXBlfHx0aGlzLmNvbG9yXX0sY2xhc3NlczpmdW5jdGlvbigpe3JldHVyblwiYmctXCIrKHRoaXMudHlwZXx8dGhpcy5jb2xvcikrXCIgdGV4dC1cIisodGhpcy50ZXh0Q29sb3J8fFwid2hpdGVcIil9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPVtdLHM9dGhpcy4kc2xvdHMuZGV0YWlsfHx0aGlzLmRldGFpbDtyZXR1cm4gdGhpcy5hdmF0YXI/aS5wdXNoKHQoXCJpbWdcIix7c3RhdGljQ2xhc3M6XCJhdmF0YXJcIixhdHRyczp7c3JjOnRoaXMuYXZhdGFyfX0pKToodGhpcy5pY29ufHx0aGlzLnR5cGUpJiZpLnB1c2godChRSWNvbix7cHJvcHM6e25hbWU6dGhpcy5jb21wdXRlZEljb259fSkpLHQoXCJkaXZcIixbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYWxlcnQgcm93IG5vLXdyYXAgc2hhZG93LTJcIixjbGFzczp0aGlzLmNsYXNzZXN9LFtpLmxlbmd0aD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1hbGVydC1zaWRlIGNvbC1hdXRvIHJvdyBmbGV4LWNlbnRlclwifSxpKTpudWxsLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWFsZXJ0LWNvbnRlbnQgY29sIHNlbGYtY2VudGVyXCJ9LFt0KFwiZGl2XCIsdGhpcy4kc2xvdHMuZGVmYXVsdHx8dGhpcy5tZXNzYWdlKSxzP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWFsZXJ0LWRldGFpbFwifSxbc10pOm51bGxdKSx0aGlzLmFjdGlvbnMmJnRoaXMuYWN0aW9ucy5sZW5ndGg/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYWxlcnQtYWN0aW9ucyBjb2wtYXV0byBndXR0ZXIteHMgY29sdW1uIGZsZXgtY2VudGVyXCJ9LHRoaXMuYWN0aW9ucy5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJmdWxsLXdpZHRoXCJ9LFt0KFFCdG4se3N0YXRpY0NsYXNzOlwiZnVsbC13aWR0aFwiLHByb3BzOntmbGF0OiEwLGRlbnNlOiEwLGFsaWduOlwibGVmdFwiLGljb246aS5pY29uLGxhYmVsOiEwPT09aS5jbG9zZUJ0bj9cInN0cmluZ1wiPT10eXBlb2YgaS5sYWJlbD9pLmxhYmVsOmUuJHEuaTE4bi5sYWJlbC5jbG9zZTppLmxhYmVsfSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gaS5oYW5kbGVyKCl9fX0pXSl9KSk6bnVsbF0pXSl9fTtmdW5jdGlvbiBmaWx0ZXIodCxlKXt2YXIgaT1lLmZpZWxkLHM9ZS5saXN0LG49dC50b0xvd2VyQ2FzZSgpO3JldHVybiBzLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4oXCJcIit0W2ldKS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgobil9KX1mdW5jdGlvbiBzNCgpe3JldHVybiBNYXRoLmZsb29yKDY1NTM2KigxK01hdGgucmFuZG9tKCkpKS50b1N0cmluZygxNikuc3Vic3RyaW5nKDEpfWZ1bmN0aW9uIHVpZCgpe3JldHVybiBzNCgpK3M0KCkrXCItXCIrczQoKStcIi1cIitzNCgpK1wiLVwiK3M0KCkrXCItXCIrczQoKStzNCgpK3M0KCl9ZnVuY3Rpb24gZ2V0QW5jaG9yUG9zaXRpb24odCxlKXt2YXIgaT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9aS50b3Asbj1pLmxlZnQsbz1pLnJpZ2h0LHI9aS5ib3R0b20sYT17dG9wOnMsbGVmdDpuLHdpZHRoOnQub2Zmc2V0V2lkdGgsaGVpZ2h0OnQub2Zmc2V0SGVpZ2h0fTtyZXR1cm4gZSYmKGEudG9wLT1lWzFdLGEubGVmdC09ZVswXSxyJiYocis9ZVsxXSksbyYmKG8rPWVbMF0pLGEud2lkdGgrPWVbMF0sYS5oZWlnaHQrPWVbMV0pLGEucmlnaHQ9b3x8YS5sZWZ0K2Eud2lkdGgsYS5ib3R0b209cnx8YS50b3ArYS5oZWlnaHQsYS5taWRkbGU9YS5sZWZ0KyhhLnJpZ2h0LWEubGVmdCkvMixhLmNlbnRlcj1hLnRvcCsoYS5ib3R0b20tYS50b3ApLzIsYX1mdW5jdGlvbiBnZXRUYXJnZXRQb3NpdGlvbih0KXtyZXR1cm57dG9wOjAsY2VudGVyOnQub2Zmc2V0SGVpZ2h0LzIsYm90dG9tOnQub2Zmc2V0SGVpZ2h0LGxlZnQ6MCxtaWRkbGU6dC5vZmZzZXRXaWR0aC8yLHJpZ2h0OnQub2Zmc2V0V2lkdGh9fWZ1bmN0aW9uIHJlcG9zaXRpb25JZk5lZWRlZCh0LGUsaSxzLG4sbyl7dmFyIHI9Z2V0U2Nyb2xsYmFyV2lkdGgoKSxhPXdpbmRvdy5pbm5lckhlaWdodCxsPXdpbmRvdy5pbm5lcldpZHRoO2lmKGEtPXIsbC09cixuLnRvcDwwfHxuLnRvcCtlLmJvdHRvbT5hKWlmKFwiY2VudGVyXCI9PT1pLnZlcnRpY2FsKW4udG9wPXRbaS52ZXJ0aWNhbF0+YS8yP2EtZS5ib3R0b206MCxuLm1heEhlaWdodD1NYXRoLm1pbihlLmJvdHRvbSxhKTtlbHNlIGlmKHRbaS52ZXJ0aWNhbF0+YS8yKXt2YXIgYz1NYXRoLm1pbihhLFwiY2VudGVyXCI9PT1zLnZlcnRpY2FsP3QuY2VudGVyOnMudmVydGljYWw9PT1pLnZlcnRpY2FsP3QuYm90dG9tOnQudG9wKTtuLm1heEhlaWdodD1NYXRoLm1pbihlLmJvdHRvbSxjKSxuLnRvcD1NYXRoLm1heCgwLGMtbi5tYXhIZWlnaHQpfWVsc2Ugbi50b3A9XCJjZW50ZXJcIj09PXMudmVydGljYWw/dC5jZW50ZXI6cy52ZXJ0aWNhbD09PWkudmVydGljYWw/dC50b3A6dC5ib3R0b20sbi5tYXhIZWlnaHQ9TWF0aC5taW4oZS5ib3R0b20sYS1uLnRvcCk7aWYobi5sZWZ0PDB8fG4ubGVmdCtlLnJpZ2h0PmwpaWYobi5tYXhXaWR0aD1NYXRoLm1pbihlLnJpZ2h0LGwpLFwibWlkZGxlXCI9PT1pLmhvcml6b250YWwpbi5sZWZ0PXRbaS5ob3Jpem9udGFsXT5sLzI/bC1lLnJpZ2h0OjA7ZWxzZSBpZihvKW4ubGVmdD1uLmxlZnQ8MD8wOmwtZS5yaWdodDtlbHNlIGlmKHRbaS5ob3Jpem9udGFsXT5sLzIpe3ZhciBoPU1hdGgubWluKGwsXCJtaWRkbGVcIj09PXMuaG9yaXpvbnRhbD90LmNlbnRlcjpzLmhvcml6b250YWw9PT1pLmhvcml6b250YWw/dC5yaWdodDp0LmxlZnQpO24ubWF4V2lkdGg9TWF0aC5taW4oZS5yaWdodCxoKSxuLmxlZnQ9TWF0aC5tYXgoMCxoLW4ubWF4V2lkdGgpfWVsc2Ugbi5sZWZ0PVwibWlkZGxlXCI9PT1zLmhvcml6b250YWw/dC5jZW50ZXI6cy5ob3Jpem9udGFsPT09aS5ob3Jpem9udGFsP3QubGVmdDp0LnJpZ2h0LG4ubWF4V2lkdGg9TWF0aC5taW4oZS5yaWdodCxsLW4ubGVmdCk7cmV0dXJuIG59ZnVuY3Rpb24gc2V0UG9zaXRpb24odCl7dmFyIGUsaT10LmVsLHM9dC5hbmltYXRlLG49dC5hbmNob3JFbCxvPXQuYW5jaG9yT3JpZ2luLHI9dC5zZWxmT3JpZ2luLGE9dC5tYXhIZWlnaHQsbD10LmV2ZW50LGM9dC5hbmNob3JDbGljayxoPXQudG91Y2hQb3NpdGlvbix1PXQub2Zmc2V0LGQ9dC50b3VjaE9mZnNldCxwPXQuY292ZXI7aWYoaS5zdHlsZS5tYXhIZWlnaHQ9YXx8XCI2NXZoXCIsaS5zdHlsZS5tYXhXaWR0aD1cIjEwMHZ3XCIsIWx8fGMmJiFoKWlmKGQpe3ZhciBmPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbT1mLnRvcCxnPWYubGVmdCx2PW0rZC50b3AsYj1nK2QubGVmdDtlPXt0b3A6dixsZWZ0OmIsd2lkdGg6MSxoZWlnaHQ6MSxyaWdodDpiKzEsY2VudGVyOnYsbWlkZGxlOmIsYm90dG9tOnYrMX19ZWxzZSBlPWdldEFuY2hvclBvc2l0aW9uKG4sdSk7ZWxzZXt2YXIgXz1wb3NpdGlvbihsKSx5PV8udG9wLHc9Xy5sZWZ0O2U9e3RvcDp5LGxlZnQ6dyx3aWR0aDoxLGhlaWdodDoxLHJpZ2h0OncrMSxjZW50ZXI6eSxtaWRkbGU6dyxib3R0b206eSsxfX12YXIgQz1nZXRUYXJnZXRQb3NpdGlvbihpKSx4PXt0b3A6ZVtvLnZlcnRpY2FsXS1DW3IudmVydGljYWxdLGxlZnQ6ZVtvLmhvcml6b250YWxdLUNbci5ob3Jpem9udGFsXX07aWYoeD1yZXBvc2l0aW9uSWZOZWVkZWQoZSxDLHIsbyx4LHApLGkuc3R5bGUudG9wPU1hdGgubWF4KDAseC50b3ApK1wicHhcIixpLnN0eWxlLmxlZnQ9TWF0aC5tYXgoMCx4LmxlZnQpK1wicHhcIix4Lm1heEhlaWdodCYmKGkuc3R5bGUubWF4SGVpZ2h0PXgubWF4SGVpZ2h0K1wicHhcIikseC5tYXhXaWR0aCYmKGkuc3R5bGUubWF4V2lkdGg9eC5tYXhXaWR0aCtcInB4XCIpLHMpe3ZhciBTPXgudG9wPGUudG9wP1tcInVwXCIsXCJkb3duXCJdOltcImRvd25cIixcInVwXCJdO2kuY2xhc3NMaXN0LmFkZChcImFuaW1hdGUtcG9wdXAtXCIrU1swXSksaS5jbGFzc0xpc3QucmVtb3ZlKFwiYW5pbWF0ZS1wb3B1cC1cIitTWzFdKX19ZnVuY3Rpb24gcG9zaXRpb25WYWxpZGF0b3IodCl7dmFyIGU9dC5zcGxpdChcIiBcIik7cmV0dXJuIDI9PT1lLmxlbmd0aCYmKFtcInRvcFwiLFwiY2VudGVyXCIsXCJib3R0b21cIl0uaW5jbHVkZXMoZVswXSk/ISFbXCJsZWZ0XCIsXCJtaWRkbGVcIixcInJpZ2h0XCJdLmluY2x1ZGVzKGVbMV0pfHwoY29uc29sZS5lcnJvcihcIkFuY2hvci9TZWxmIHBvc2l0aW9uIG11c3QgZW5kIHdpdGggb25lIG9mIGxlZnQvbWlkZGxlL3JpZ2h0XCIpLCExKTooY29uc29sZS5lcnJvcihcIkFuY2hvci9TZWxmIHBvc2l0aW9uIG11c3Qgc3RhcnQgd2l0aCBvbmUgb2YgdG9wL2NlbnRlci9ib3R0b21cIiksITEpKX1mdW5jdGlvbiBvZmZzZXRWYWxpZGF0b3IodCl7cmV0dXJuIXR8fDI9PT10Lmxlbmd0aCYmKFwibnVtYmVyXCI9PXR5cGVvZiB0WzBdJiZcIm51bWJlclwiPT10eXBlb2YgdFsxXSl9ZnVuY3Rpb24gcGFyc2VQb3NpdGlvbih0KXt2YXIgZT10LnNwbGl0KFwiIFwiKTtyZXR1cm57dmVydGljYWw6ZVswXSxob3Jpem9udGFsOmVbMV19fWZ1bmN0aW9uIGZyYW1lRGVib3VuY2UodCl7dmFyIGUsaT0hMTtmdW5jdGlvbiBzKCl7Zm9yKHZhciBzPXRoaXMsbj1bXSxvPWFyZ3VtZW50cy5sZW5ndGg7by0tOyluW29dPWFyZ3VtZW50c1tvXTtpfHwoaT0hMCxlPXJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3QuYXBwbHkocyxuKSxpPSExfSkpfXJldHVybiBzLmNhbmNlbD1mdW5jdGlvbigpe3dpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShlKSxpPSExfSxzfXZhciBDYW5SZW5kZXJNaXhpbj17ZGF0YTpmdW5jdGlvbigpe3JldHVybntjYW5SZW5kZXI6IW9uU1NSfX0sbW91bnRlZDpmdW5jdGlvbigpeyExPT09dGhpcy5jYW5SZW5kZXImJih0aGlzLmNhblJlbmRlcj0hMCl9fSxRUG9wb3Zlcj17bmFtZTpcIlFQb3BvdmVyXCIsbWl4aW5zOltNb2RlbFRvZ2dsZU1peGluLENhblJlbmRlck1peGluXSxwcm9wczp7YW5jaG9yOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6cG9zaXRpb25WYWxpZGF0b3J9LHNlbGY6e3R5cGU6U3RyaW5nLHZhbGlkYXRvcjpwb3NpdGlvblZhbGlkYXRvcn0sZml0OkJvb2xlYW4sY292ZXI6Qm9vbGVhbixwZXJzaXN0ZW50OkJvb2xlYW4sa2VlcE9uU2NyZWVuOkJvb2xlYW4sbWF4SGVpZ2h0OlN0cmluZyx0b3VjaFBvc2l0aW9uOkJvb2xlYW4sYW5jaG9yQ2xpY2s6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSxvZmZzZXQ6e3R5cGU6QXJyYXksdmFsaWRhdG9yOm9mZnNldFZhbGlkYXRvcn0sbm9Gb2N1czpCb29sZWFuLG5vUmVmb2N1czpCb29sZWFuLGRpc2FibGU6Qm9vbGVhbn0sd2F0Y2g6eyRyb3V0ZTpmdW5jdGlvbigpe3RoaXMuaGlkZSgpfX0sY29tcHV0ZWQ6e2hvcml6U2lkZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRxLmkxOG4ucnRsP1wicmlnaHRcIjpcImxlZnRcIn0sYW5jaG9yT3JpZ2luOmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlUG9zaXRpb24odGhpcy5jb3Zlcj9cInRvcCBcIit0aGlzLmhvcml6U2lkZTp0aGlzLmFuY2hvcnx8XCJib3R0b20gXCIrdGhpcy5ob3JpelNpZGUpfSxzZWxmT3JpZ2luOmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlUG9zaXRpb24odGhpcy5zZWxmfHxcInRvcCBcIit0aGlzLmhvcml6U2lkZSl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7aWYodGhpcy5jYW5SZW5kZXIpcmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXBvcG92ZXIgc2Nyb2xsXCIscmVmOlwiY29udGVudFwiLGF0dHJzOnt0YWJpbmRleDotMX0sb246e2NsaWNrOmZ1bmN0aW9uKHQpe3Quc3RvcFByb3BhZ2F0aW9uKCl9fX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX191cGRhdGVQb3NpdGlvbj1mcmFtZURlYm91bmNlKGZ1bmN0aW9uKGUsaSxzKXtyZXR1cm4gdC5yZXBvc2l0aW9uKGkscyl9KSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3QuYW5jaG9yRWw9dC4kZWwucGFyZW50Tm9kZSx0LmFuY2hvckVsLnJlbW92ZUNoaWxkKHQuJGVsKSwodC5hbmNob3JFbC5jbGFzc0xpc3QuY29udGFpbnMoXCJxLXBvcHVwLS1za2lwXCIpfHx0LmFuY2hvckVsLmNsYXNzTGlzdC5jb250YWlucyhcIm5vLXBvaW50ZXItZXZlbnRzXCIpKSYmKHQuYW5jaG9yRWw9dC5hbmNob3JFbC5wYXJlbnROb2RlKSx0LmFuY2hvckNsaWNrJiYodC5hbmNob3JFbC5jbGFzc0xpc3QuYWRkKFwiY3Vyc29yLXBvaW50ZXJcIiksdC5hbmNob3JFbC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIix0LnRvZ2dsZSksdC5hbmNob3JFbC5hZGRFdmVudExpc3RlbmVyKFwia2V5dXBcIix0Ll9fdG9nZ2xlS2V5KSl9KSx0aGlzLnZhbHVlJiZ0aGlzLnNob3coKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuc2hvd2luZyYmdGhpcy5fX2NsZWFudXAoKSx0aGlzLmFuY2hvckNsaWNrJiZ0aGlzLmFuY2hvckVsJiYodGhpcy5hbmNob3JFbC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIix0aGlzLnRvZ2dsZSksdGhpcy5hbmNob3JFbC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5dXBcIix0aGlzLl9fdG9nZ2xlS2V5KSl9LG1ldGhvZHM6e19fc2hvdzpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMubm9SZWZvY3VzfHwodGhpcy5fX3JlZm9jdXNUYXJnZXQ9dGhpcy5hbmNob3JDbGljayYmdGhpcy5hbmNob3JFbHx8ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLiRlbCksRXNjYXBlS2V5LnJlZ2lzdGVyKGZ1bmN0aW9uKCl7ZS4kZW1pdChcImVzY2FwZS1rZXlcIiksZS5oaWRlKCl9KSx0aGlzLnNjcm9sbFRhcmdldD1nZXRTY3JvbGxUYXJnZXQodGhpcy5hbmNob3JFbCksdGhpcy5zY3JvbGxUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMuX191cGRhdGVQb3NpdGlvbixsaXN0ZW5PcHRzLnBhc3NpdmUpLHRoaXMuc2Nyb2xsVGFyZ2V0IT09d2luZG93JiZ3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMuX191cGRhdGVQb3NpdGlvbixsaXN0ZW5PcHRzLnBhc3NpdmUpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdGhpcy5fX3VwZGF0ZVBvc2l0aW9uLGxpc3Rlbk9wdHMucGFzc2l2ZSksdGhpcy5fX3VwZGF0ZVBvc2l0aW9uKDAsdCwhMCksY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLCF0aGlzLm5vRm9jdXMmJnRoaXMuJHJlZnMuY29udGVudCYmdGhpcy4kcmVmcy5jb250ZW50LmZvY3VzKCksdGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsZS5fX2JvZHlIaWRlLCEwKSxkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsZS5fX2JvZHlIaWRlLCEwKSxlLnNob3dQcm9taXNlJiZlLnNob3dQcm9taXNlUmVzb2x2ZSgpfSwwKX0sX190b2dnbGVLZXk6ZnVuY3Rpb24odCl7MTM9PT10LmtleUNvZGUmJnRoaXMudG9nZ2xlKHQpfSxfX2JvZHlIaWRlOmZ1bmN0aW9uKHQpe3RoaXMucGVyc2lzdGVudHx8dCYmdC50YXJnZXQmJih0aGlzLiRlbC5jb250YWlucyh0LnRhcmdldCl8fHRoaXMuYW5jaG9yRWwuY29udGFpbnModC50YXJnZXQpKXx8dGhpcy5oaWRlKHQpfSxfX2hpZGU6ZnVuY3Rpb24oKXt0aGlzLl9fY2xlYW51cCgpLHRoaXMuaGlkZVByb21pc2UmJnRoaXMuaGlkZVByb21pc2VSZXNvbHZlKCksIXRoaXMubm9SZWZvY3VzJiZ0aGlzLl9fcmVmb2N1c1RhcmdldCYmKHRoaXMuX19yZWZvY3VzVGFyZ2V0LmZvY3VzKCksIXRoaXMuX19yZWZvY3VzVGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucyhcInEtaWZcIikmJnRoaXMuX19yZWZvY3VzVGFyZ2V0LmJsdXIoKSl9LF9fY2xlYW51cDpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSxkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIix0aGlzLl9fYm9keUhpZGUsITApLGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIix0aGlzLl9fYm9keUhpZGUsITApLHRoaXMuc2Nyb2xsVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0aGlzLl9fdXBkYXRlUG9zaXRpb24sbGlzdGVuT3B0cy5wYXNzaXZlKSx0aGlzLnNjcm9sbFRhcmdldCE9PXdpbmRvdyYmd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0aGlzLl9fdXBkYXRlUG9zaXRpb24sbGlzdGVuT3B0cy5wYXNzaXZlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHRoaXMuX191cGRhdGVQb3NpdGlvbixsaXN0ZW5PcHRzLnBhc3NpdmUpLEVzY2FwZUtleS5wb3AoKSx0aGlzLiRlbC5yZW1vdmUoKX0scmVwb3NpdGlvbjpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMuYW5jaG9yRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscz1pLnRvcCxuPWkuYm90dG9tLG89aS5sZWZ0LHI9aS5yaWdodDtpZighdGhpcy5rZWVwT25TY3JlZW4mJihuPDB8fHM+d2luZG93LmlubmVySGVpZ2h0fHxyPDB8fG8+d2luZG93LmlubmVyV2lkdGgpKXJldHVybiB0aGlzLmhpZGUoKTtpZih0aGlzLmZpdHx8dGhpcy5jb3Zlcil7dmFyIGE9d2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5hbmNob3JFbCk7dGhpcy4kZWwuc3R5bGUubWluV2lkdGg9YS5nZXRQcm9wZXJ0eVZhbHVlKFwid2lkdGhcIiksdGhpcy5jb3ZlciYmKHRoaXMuJGVsLnN0eWxlLm1pbkhlaWdodD1hLmdldFByb3BlcnR5VmFsdWUoXCJoZWlnaHRcIikpfWlmKGUpaWYodGhpcy50b3VjaFBvc2l0aW9uKXt2YXIgbD1wb3NpdGlvbih0KSxjPWwudG9wLGg9bC5sZWZ0O3RoaXMudG91Y2hPZmZzZXQ9e2xlZnQ6aC1vLHRvcDpjLXN9fWVsc2UgZGVsZXRlIHRoaXMudG91Y2hPZmZzZXQ7c2V0UG9zaXRpb24oe2V2ZW50OnQsYW5pbWF0ZTplLGVsOnRoaXMuJGVsLG9mZnNldDp0aGlzLm9mZnNldCxhbmNob3JFbDp0aGlzLmFuY2hvckVsLGFuY2hvck9yaWdpbjp0aGlzLmFuY2hvck9yaWdpbixzZWxmT3JpZ2luOnRoaXMuc2VsZk9yaWdpbixtYXhIZWlnaHQ6dGhpcy5tYXhIZWlnaHQsYW5jaG9yQ2xpY2s6dGhpcy5hbmNob3JDbGljayx0b3VjaFBvc2l0aW9uOnRoaXMudG91Y2hQb3NpdGlvbix0b3VjaE9mZnNldDp0aGlzLnRvdWNoT2Zmc2V0LGNvdmVyOnRoaXMuY292ZXJ9KX19fTtmdW5jdGlvbiBwdXNoKHQsZSxpLHMsbixvKXt2YXIgcj17cHJvcHM6e3JpZ2h0Om8ucmlnaHR9fTtpZihzJiZuKXQucHVzaChlKGkscixzKSk7ZWxzZXt2YXIgYT0hMTtmb3IodmFyIGwgaW4gbylpZihvLmhhc093blByb3BlcnR5KGwpJiZ2b2lkIDAhPT0oYT1vW2xdKSYmITAhPT1hKXt0LnB1c2goZShpLHtwcm9wczpvfSkpO2JyZWFrfXMmJnQucHVzaChlKGkscixzKSl9fXZhciBRSXRlbVdyYXBwZXI9e25hbWU6XCJRSXRlbVdyYXBwZXJcIixwcm9wczp7Y2ZnOnt0eXBlOk9iamVjdCxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJue319fSxzbG90UmVwbGFjZTpCb29sZWFufSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jZmcsaT10aGlzLnNsb3RSZXBsYWNlLHM9W107cmV0dXJuIHB1c2gocyx0LFFJdGVtU2lkZSx0aGlzLiRzbG90cy5sZWZ0LGkse2ljb246ZS5pY29uLGNvbG9yOmUubGVmdENvbG9yLGF2YXRhcjplLmF2YXRhcixsZXR0ZXI6ZS5sZXR0ZXIsaW1hZ2U6ZS5pbWFnZSxpbnZlcnRlZDplLmxlZnRJbnZlcnRlZCx0ZXh0Q29sb3I6ZS5sZWZ0VGV4dENvbG9yfSkscHVzaChzLHQsUUl0ZW1NYWluLHRoaXMuJHNsb3RzLm1haW4saSx7bGFiZWw6ZS5sYWJlbCxzdWJsYWJlbDplLnN1YmxhYmVsLGxhYmVsTGluZXM6ZS5sYWJlbExpbmVzLHN1YmxhYmVsTGluZXM6ZS5zdWJsYWJlbExpbmVzLGluc2V0OmUuaW5zZXR9KSxwdXNoKHMsdCxRSXRlbVNpZGUsdGhpcy4kc2xvdHMucmlnaHQsaSx7cmlnaHQ6ITAsaWNvbjplLnJpZ2h0SWNvbixjb2xvcjplLnJpZ2h0Q29sb3IsYXZhdGFyOmUucmlnaHRBdmF0YXIsbGV0dGVyOmUucmlnaHRMZXR0ZXIsaW1hZ2U6ZS5yaWdodEltYWdlLHN0YW1wOmUuc3RhbXAsaW52ZXJ0ZWQ6ZS5yaWdodEludmVydGVkLHRleHRDb2xvcjplLnJpZ2h0VGV4dENvbG9yfSkscy5wdXNoKHRoaXMuJHNsb3RzLmRlZmF1bHQpLHQoUUl0ZW0se2F0dHJzOnRoaXMuJGF0dHJzLG9uOnRoaXMuJGxpc3RlbmVycyxwcm9wczplfSxzKX19LEtleWJvYXJkU2VsZWN0aW9uTWl4aW49e2RhdGE6ZnVuY3Rpb24oKXtyZXR1cm57a2V5Ym9hcmRJbmRleDowLGtleWJvYXJkTW92ZURpcmVjdGlvbjohMSxrZXlib2FyZE1vdmVUaW1lcjohMX19LHdhdGNoOntrZXlib2FyZEluZGV4OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy4kcmVmcy5wb3BvdmVyJiZ0aGlzLiRyZWZzLnBvcG92ZXIuc2hvd2luZyYmdGhpcy5rZXlib2FyZE1vdmVEaXJlY3Rpb24mJnQ+LTEmJnRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7aWYoZS4kcmVmcy5wb3BvdmVyKXt2YXIgdD1lLiRyZWZzLnBvcG92ZXIuJGVsLnF1ZXJ5U2VsZWN0b3IoXCIucS1zZWxlY3QtaGlnaGxpZ2h0XCIpO2lmKHQmJnQuc2Nyb2xsSW50b1ZpZXcpe2lmKHQuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZClyZXR1cm4gdC5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKCExKTt0LnNjcm9sbEludG9WaWV3KGUua2V5Ym9hcmRNb3ZlRGlyZWN0aW9uPDApfX19KX19LG1ldGhvZHM6e19fa2V5Ym9hcmRTaG93OmZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PTApLHRoaXMua2V5Ym9hcmRJbmRleCE9PXQmJih0aGlzLmtleWJvYXJkSW5kZXg9dCl9LF9fa2V5Ym9hcmRTZXRDdXJyZW50U2VsZWN0aW9uOmZ1bmN0aW9uKHQpe3RoaXMua2V5Ym9hcmRJbmRleD49MCYmdGhpcy5rZXlib2FyZEluZGV4PD10aGlzLmtleWJvYXJkTWF4SW5kZXgmJnRoaXMuX19rZXlib2FyZFNldFNlbGVjdGlvbih0aGlzLmtleWJvYXJkSW5kZXgsdCl9LF9fa2V5Ym9hcmRIYW5kbGVLZXk6ZnVuY3Rpb24odCl7dmFyIGU9Z2V0RXZlbnRLZXkodCk7c3dpdGNoKGUpe2Nhc2UgMzg6dGhpcy5fX2tleWJvYXJkTW92ZUN1cnNvcigtMSx0KTticmVhaztjYXNlIDQwOnRoaXMuX19rZXlib2FyZE1vdmVDdXJzb3IoMSx0KTticmVhaztjYXNlIDEzOmlmKHRoaXMuJHJlZnMucG9wb3Zlci5zaG93aW5nKXJldHVybiBzdG9wQW5kUHJldmVudCh0KSx2b2lkIHRoaXMuX19rZXlib2FyZFNldEN1cnJlbnRTZWxlY3Rpb24oKTticmVhaztjYXNlIDk6dGhpcy5oaWRlKCl9dGhpcy5fX2tleWJvYXJkQ3VzdG9tS2V5SGFuZGxlKGUsdCl9LF9fa2V5Ym9hcmRNb3ZlQ3Vyc29yOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcztpZihzdG9wQW5kUHJldmVudChlKSx0aGlzLiRyZWZzLnBvcG92ZXIuc2hvd2luZyl7Y2xlYXJUaW1lb3V0KHRoaXMua2V5Ym9hcmRNb3ZlVGltZXIpO3ZhciBzPXRoaXMua2V5Ym9hcmRJbmRleCxuPXRoaXMuX19rZXlib2FyZElzU2VsZWN0YWJsZUluZGV4fHxmdW5jdGlvbigpe3JldHVybiEwfTtkb3tzPW5vcm1hbGl6ZVRvSW50ZXJ2YWwocyt0LC0xLGkua2V5Ym9hcmRNYXhJbmRleCl9d2hpbGUocyE9PXRoaXMua2V5Ym9hcmRJbmRleCYmIW4ocykpO3JldHVybiB0aGlzLmtleWJvYXJkTW92ZURpcmVjdGlvbj1zPnRoaXMua2V5Ym9hcmRJbmRleD8xOi0xLHRoaXMua2V5Ym9hcmRNb3ZlVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2kua2V5Ym9hcmRNb3ZlRGlyZWN0aW9uPSExfSw1MDApLHZvaWQodGhpcy5rZXlib2FyZEluZGV4PXMpfXRoaXMuX19rZXlib2FyZFNob3dUcmlnZ2VyKCl9fX0sUUF1dG9jb21wbGV0ZT17bmFtZTpcIlFBdXRvY29tcGxldGVcIixtaXhpbnM6W0tleWJvYXJkU2VsZWN0aW9uTWl4aW5dLHByb3BzOnttaW5DaGFyYWN0ZXJzOnt0eXBlOk51bWJlcixkZWZhdWx0OjF9LG1heFJlc3VsdHM6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6Nn0sbWF4SGVpZ2h0OlN0cmluZyxkZWJvdW5jZTp7dHlwZTpOdW1iZXIsZGVmYXVsdDo1MDB9LGZpbHRlcjp7dHlwZTpGdW5jdGlvbixkZWZhdWx0OmZpbHRlcn0sc3RhdGljRGF0YTpPYmplY3QsdmFsdWVGaWVsZDpbU3RyaW5nLEZ1bmN0aW9uXSxzZXBhcmF0b3I6Qm9vbGVhbn0saW5qZWN0OntfX2lucHV0OntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFBdXRvY29tcGxldGUgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUUlucHV0LCBRQ2hpcHNJbnB1dCBvciBRU2VhcmNoXCIpfX0sX19pbnB1dERlYm91bmNlOntkZWZhdWx0Om51bGx9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3NlYXJjaElkOlwiXCIscmVzdWx0czpbXSx3aWR0aDowLGVudGVyS2V5OiExLHRpbWVyOm51bGx9fSx3YXRjaDp7XCJfX2lucHV0LnZhbFwiOmZ1bmN0aW9uKCl7dGhpcy5lbnRlcktleT90aGlzLmVudGVyS2V5PSExOnRoaXMuX19kZWxheVRyaWdnZXIoKX19LGNvbXB1dGVkOntjb21wdXRlZFJlc3VsdHM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXhSZXN1bHRzJiZ0aGlzLnJlc3VsdHMubGVuZ3RoPjA/dGhpcy5yZXN1bHRzLnNsaWNlKDAsdGhpcy5tYXhSZXN1bHRzKTpbXX0sY29tcHV0ZWRWYWx1ZUZpZWxkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVGaWVsZHx8dGhpcy5zdGF0aWNEYXRhJiZ0aGlzLnN0YXRpY0RhdGEuZmllbGR8fFwidmFsdWVcIn0sa2V5Ym9hcmRNYXhJbmRleDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbXB1dGVkUmVzdWx0cy5sZW5ndGgtMX0sY29tcHV0ZWRXaWR0aDpmdW5jdGlvbigpe3JldHVybnttaW5XaWR0aDp0aGlzLndpZHRofX0sc2VhcmNoaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VhcmNoSWQubGVuZ3RoPjB9fSxtZXRob2RzOntpc1dvcmtpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcmVmcyYmdGhpcy4kcmVmcy5wb3BvdmVyfSx0cmlnZ2VyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpcy5fX2lucHV0JiZ0aGlzLl9faW5wdXQuaXNFZGl0YWJsZSgpJiZ0aGlzLl9faW5wdXQuaGFzRm9jdXMoKSYmdGhpcy5pc1dvcmtpbmcoKSl7dmFyIGk9W251bGwsdm9pZCAwXS5pbmNsdWRlcyh0aGlzLl9faW5wdXQudmFsKT9cIlwiOlN0cmluZyh0aGlzLl9faW5wdXQudmFsKSxzPWkubGVuZ3RoLG49dWlkKCksbz10aGlzLiRyZWZzLnBvcG92ZXI7aWYodGhpcy5zZWFyY2hJZD1uLHM8dGhpcy5taW5DaGFyYWN0ZXJzfHwhMD09PXQmJnM+MClyZXR1cm4gdGhpcy5zZWFyY2hJZD1cIlwiLHRoaXMuX19jbGVhclNlYXJjaCgpLHZvaWQgdGhpcy5oaWRlKCk7aWYodGhpcy53aWR0aD13aWR0aCh0aGlzLmlucHV0RWwpK1wicHhcIix0aGlzLnN0YXRpY0RhdGEpcmV0dXJuIHRoaXMuc2VhcmNoSWQ9XCJcIix0aGlzLnJlc3VsdHM9dGhpcy5maWx0ZXIoaSx0aGlzLnN0YXRpY0RhdGEpLHRoaXMucmVzdWx0cy5sZW5ndGg/dm9pZCB0aGlzLl9fc2hvd1Jlc3VsdHMoKTp2b2lkIG8uaGlkZSgpO3RoaXMuX19pbnB1dC5sb2FkaW5nPSEwLHRoaXMuJGVtaXQoXCJzZWFyY2hcIixpLGZ1bmN0aW9uKHQpe2lmKGUuaXNXb3JraW5nKCkmJmUuc2VhcmNoSWQ9PT1uKXtpZihlLl9fY2xlYXJTZWFyY2goKSxBcnJheS5pc0FycmF5KHQpJiZ0Lmxlbmd0aD4wKXJldHVybiBlLnJlc3VsdHM9dCx2b2lkIGUuX19zaG93UmVzdWx0cygpO2UuaGlkZSgpfX0pfX0saGlkZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlc3VsdHM9W10sdGhpcy5pc1dvcmtpbmcoKT90aGlzLiRyZWZzLnBvcG92ZXIuaGlkZSgpOlByb21pc2UucmVzb2x2ZSgpfSxibHVySGlkZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fX2NsZWFyU2VhcmNoKCksdGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHQuaGlkZSgpfSwzMDApfSxfX2NsZWFyU2VhcmNoOmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuX19pbnB1dC5sb2FkaW5nPSExLHRoaXMuc2VhcmNoSWQ9XCJcIn0sX19rZXlib2FyZEN1c3RvbUtleUhhbmRsZTpmdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSAyNzp0aGlzLl9fY2xlYXJTZWFyY2goKTticmVhaztjYXNlIDM4OmNhc2UgNDA6Y2FzZSA5OnRoaXMuX19rZXlib2FyZFNldEN1cnJlbnRTZWxlY3Rpb24oITApfX0sX19rZXlib2FyZFNob3dUcmlnZ2VyOmZ1bmN0aW9uKCl7dGhpcy50cmlnZ2VyKCl9LF9fZm9jdXNTaG93VHJpZ2dlcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiB0LnRyaWdnZXIoITApfSwxMDApfSxfX2tleWJvYXJkSXNTZWxlY3RhYmxlSW5kZXg6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+LTEmJnQ8dGhpcy5jb21wdXRlZFJlc3VsdHMubGVuZ3RoJiYhdGhpcy5jb21wdXRlZFJlc3VsdHNbdF0uZGlzYWJsZX0sc2V0VmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLHM9XCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy5jb21wdXRlZFZhbHVlRmllbGQ/dGhpcy5jb21wdXRlZFZhbHVlRmllbGQodCk6dFt0aGlzLmNvbXB1dGVkVmFsdWVGaWVsZF0sbj10aGlzLl9faW5wdXREZWJvdW5jZT9cIkRlYm91bmNlXCI6XCJcIjt0aGlzLmlucHV0RWwmJnRoaXMuX19pbnB1dCYmIXRoaXMuX19pbnB1dC5oYXNGb2N1cygpJiYodGhpcy4kcS5wbGF0Zm9ybS5pcy5pZT90aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe2kuaW5wdXRFbC5mb2N1cygpfSk6dGhpcy5pbnB1dEVsLmZvY3VzKCkpLHRoaXMuZW50ZXJLZXk9dGhpcy5fX2lucHV0JiZzIT09dGhpcy5fX2lucHV0LnZhbCx0aGlzW1wiX19pbnB1dFwiK25dW2U/XCJzZXROYXZcIjpcInNldFwiXShzKSx0aGlzLiRlbWl0KFwic2VsZWN0ZWRcIix0LCEhZSksZXx8KHRoaXMuX19jbGVhclNlYXJjaCgpLHRoaXMuaGlkZSgpKX0sX19rZXlib2FyZFNldFNlbGVjdGlvbjpmdW5jdGlvbih0LGUpe3RoaXMuc2V0VmFsdWUodGhpcy5yZXN1bHRzW3RdLGUpfSxfX2RlbGF5VHJpZ2dlcjpmdW5jdGlvbigpe3RoaXMuX19jbGVhclNlYXJjaCgpLHRoaXMuX19pbnB1dC5oYXNGb2N1cygpJiYodGhpcy5zdGF0aWNEYXRhP3RoaXMudHJpZ2dlcigpOnRoaXMudGltZXI9c2V0VGltZW91dCh0aGlzLnRyaWdnZXIsdGhpcy5kZWJvdW5jZSkpfSxfX3Nob3dSZXN1bHRzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kcmVmcy5wb3BvdmVyO3RoaXMuX19rZXlib2FyZFNob3coLTEpLHQuc2hvd2luZz90aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3JldHVybiB0LnNob3dpbmcmJnQucmVwb3NpdGlvbigpfSk6dC5zaG93KCl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLl9faW5wdXQucmVnaXN0ZXIoKSx0aGlzLl9faW5wdXREZWJvdW5jZSYmdGhpcy5fX2lucHV0RGVib3VuY2Uuc2V0Q2hpbGREZWJvdW5jZSghMCksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0Ll9faW5wdXQmJih0LmlucHV0RWw9dC5fX2lucHV0LmdldEVsKCksdC5pbnB1dEVsLmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsdC5fX2tleWJvYXJkSGFuZGxlS2V5KSx0LmlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcihcImJsdXJcIix0LmJsdXJIaWRlKSx0LmlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsdC5fX2ZvY3VzU2hvd1RyaWdnZXIpKX0pfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5fX2NsZWFyU2VhcmNoKCksdGhpcy5fX2lucHV0LnVucmVnaXN0ZXIoKSx0aGlzLl9faW5wdXREZWJvdW5jZSYmdGhpcy5fX2lucHV0RGVib3VuY2Uuc2V0Q2hpbGREZWJvdW5jZSghMSksdGhpcy5pbnB1dEVsJiYodGhpcy5pbnB1dEVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsdGhpcy5fX2tleWJvYXJkSGFuZGxlS2V5KSx0aGlzLmlucHV0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImJsdXJcIix0aGlzLmJsdXJIaWRlKSx0aGlzLmlucHV0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsdGhpcy5fX2ZvY3VzU2hvd1RyaWdnZXIpLHRoaXMuaGlkZSgpKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10aGlzLl9faW5wdXQuaXNEYXJrKCk7cmV0dXJuIHQoUVBvcG92ZXIse3JlZjpcInBvcG92ZXJcIixjbGFzczppP1wiYmctZGFya1wiOm51bGwscHJvcHM6e2ZpdDohMCxrZWVwT25TY3JlZW46ITAsYW5jaG9yQ2xpY2s6ITEsbWF4SGVpZ2h0OnRoaXMubWF4SGVpZ2h0LG5vRm9jdXM6ITAsbm9SZWZvY3VzOiEwfSxvbjp7c2hvdzpmdW5jdGlvbigpe2UuX19pbnB1dC5zZWxlY3Rpb25PcGVuPSEwLGUuJGVtaXQoXCJzaG93XCIpfSxoaWRlOmZ1bmN0aW9uKCl7ZS5fX2lucHV0LnNlbGVjdGlvbk9wZW49ITEsZS4kZW1pdChcImhpZGVcIil9fX0sW3QoUUxpc3Qse3Byb3BzOntkYXJrOmksbm9Cb3JkZXI6ITAsc2VwYXJhdG9yOnRoaXMuc2VwYXJhdG9yfSxzdHlsZTp0aGlzLmNvbXB1dGVkV2lkdGh9LHRoaXMuY29tcHV0ZWRSZXN1bHRzLm1hcChmdW5jdGlvbihpLHMpe3JldHVybiB0KFFJdGVtV3JhcHBlcix7a2V5OmkuaWR8fHMsY2xhc3M6e1wicS1zZWxlY3QtaGlnaGxpZ2h0XCI6ZS5rZXlib2FyZEluZGV4PT09cyxcImN1cnNvci1wb2ludGVyXCI6IWkuZGlzYWJsZSxcInRleHQtZmFkZWRcIjppLmRpc2FibGV9LHByb3BzOntjZmc6aX0sbmF0aXZlT246e21vdXNlZW50ZXI6ZnVuY3Rpb24oKXshaS5kaXNhYmxlJiYoZS5rZXlib2FyZEluZGV4PXMpfSxjbGljazpmdW5jdGlvbigpeyFpLmRpc2FibGUmJmUuc2V0VmFsdWUoaSl9fX0pfSkpXSl9fSxRQnJlYWRjcnVtYnM9e25hbWU6XCJRQnJlYWRjcnVtYnNcIixtaXhpbnM6W0FsaWduTWl4aW5dLHByb3BzOntjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImZhZGVkXCJ9LGFjdGl2ZUNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSxzZXBhcmF0b3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCIvXCJ9LGFsaWduOk9iamVjdC5hc3NpZ24oe30sQWxpZ25NaXhpbi5wcm9wcy5hbGlnbix7ZGVmYXVsdDpcImxlZnRcIn0pfSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3JldHVybltcInRleHQtXCIrdGhpcy5jb2xvcix0aGlzLmFsaWduQ2xhc3NdfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpcy4kc2xvdHMuZGVmYXVsdCl7dmFyIGk9W10scz10aGlzLiRzbG90cy5kZWZhdWx0LmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwIT09dC50YWcmJnQudGFnLmVuZHNXaXRoKFwiLVFCcmVhZGNydW1ic0VsXCIpfSkubGVuZ3RoLG49dGhpcy4kc2NvcGVkU2xvdHMuc2VwYXJhdG9yfHxmdW5jdGlvbigpe3JldHVybiBlLnNlcGFyYXRvcn0sbz1cInRleHQtXCIrdGhpcy5jb2xvcixyPVwidGV4dC1cIit0aGlzLmFjdGl2ZUNvbG9yLGE9MTtmb3IodmFyIGwgaW4gZS4kc2xvdHMuZGVmYXVsdCl7dmFyIGM9ZS4kc2xvdHMuZGVmYXVsdFtsXTtpZih2b2lkIDAhPT1jLnRhZyYmYy50YWcuZW5kc1dpdGgoXCItUUJyZWFkY3J1bWJzRWxcIikpe3ZhciBoPWE8czthKyssaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJmbGV4IGl0ZW1zLWNlbnRlclwiLGNsYXNzOltoP3I6byxoP1widGV4dC13ZWlnaHQtYm9sZFwiOlwicS1icmVhZGNydW1icy1sYXN0XCJdfSxbY10pKSxoJiZpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYnJlYWRjcnVtYnMtc2VwYXJhdG9yXCIsY2xhc3M6b30sW24oKV0pKX1lbHNlIGkucHVzaChjKX1yZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtYnJlYWRjcnVtYnMgZmxleCBndXR0ZXIteHMgaXRlbXMtY2VudGVyIG92ZXJmbG93LWhpZGRlblwiLGNsYXNzOnRoaXMuY2xhc3Nlc30saSl9fX0sUUJyZWFkY3J1bWJzRWw9e25hbWU6XCJRQnJlYWRjcnVtYnNFbFwiLG1peGluczpbe3Byb3BzOnJvdXRlckxpbmtQcm9wc31dLHByb3BzOntsYWJlbDpTdHJpbmcsaWNvbjpTdHJpbmcsY29sb3I6U3RyaW5nfSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQodm9pZCAwIT09dGhpcy50bz9cInJvdXRlci1saW5rXCI6XCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1saW5rIHEtYnJlYWRjcnVtYnMtZWwgZmxleCBpbmxpbmUgaXRlbXMtY2VudGVyIHJlbGF0aXZlLXBvc2l0aW9uXCIscHJvcHM6dm9pZCAwIT09dGhpcy50bz90aGlzLiRwcm9wczpudWxsfSxbdGhpcy5pY29uP3QoUUljb24se3N0YXRpY0NsYXNzOlwicS1icmVhY3J1bWJzLWVsLWljb24gcS1tci1zbVwiLHByb3BzOntuYW1lOnRoaXMuaWNvbn19KTpudWxsLHRoaXMubGFiZWxdLmNvbmNhdCh0aGlzLiRzbG90cy5kZWZhdWx0KSl9fSxRQnRuR3JvdXA9e25hbWU6XCJRQnRuR3JvdXBcIixwcm9wczp7b3V0bGluZTpCb29sZWFuLGZsYXQ6Qm9vbGVhbixyb3VuZGVkOkJvb2xlYW4scHVzaDpCb29sZWFufSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuW1wib3V0bGluZVwiLFwiZmxhdFwiLFwicm91bmRlZFwiLFwicHVzaFwiXS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuXCJxLWJ0bi1ncm91cC1cIit0fSkuam9pbihcIiBcIil9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWJ0bi1ncm91cCByb3cgbm8td3JhcCBpbmxpbmVcIixjbGFzczp0aGlzLmNsYXNzZXN9LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUUJ0bkRyb3Bkb3duPXtuYW1lOlwiUUJ0bkRyb3Bkb3duXCIsbWl4aW5zOltCdG5NaXhpbl0scHJvcHM6e3ZhbHVlOkJvb2xlYW4sc3BsaXQ6Qm9vbGVhbixjb250ZW50Q2xhc3M6W0FycmF5LFN0cmluZyxPYmplY3RdLGNvbnRlbnRTdHlsZTpbQXJyYXksU3RyaW5nLE9iamVjdF0scG9wb3ZlckFuY2hvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImJvdHRvbSByaWdodFwifSxwb3BvdmVyU2VsZjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInRvcCByaWdodFwifX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzaG93aW5nOnRoaXMudmFsdWV9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dGhpcy4kcmVmcy5wb3BvdmVyJiZ0aGlzLiRyZWZzLnBvcG92ZXJbdD9cInNob3dcIjpcImhpZGVcIl0oKX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dChRUG9wb3Zlcix7cmVmOlwicG9wb3ZlclwiLHByb3BzOntkaXNhYmxlOnRoaXMuZGlzYWJsZSxmaXQ6ITAsYW5jaG9yQ2xpY2s6IXRoaXMuc3BsaXQsYW5jaG9yOnRoaXMucG9wb3ZlckFuY2hvcixzZWxmOnRoaXMucG9wb3ZlclNlbGZ9LGNsYXNzOnRoaXMuY29udGVudENsYXNzLHN0eWxlOnRoaXMuY29udGVudFN0eWxlLG9uOntzaG93OmZ1bmN0aW9uKHQpe2Uuc2hvd2luZz0hMCxlLiRlbWl0KFwic2hvd1wiLHQpLGUuJGVtaXQoXCJpbnB1dFwiLCEwKX0saGlkZTpmdW5jdGlvbih0KXtlLnNob3dpbmc9ITEsZS4kZW1pdChcImhpZGVcIix0KSxlLiRlbWl0KFwiaW5wdXRcIiwhMSl9fX0sdGhpcy4kc2xvdHMuZGVmYXVsdCkscz10KFFJY29uLHtwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uaW5wdXQuZHJvcGRvd259LHN0YXRpY0NsYXNzOlwidHJhbnNpdGlvbi1nZW5lcmljXCIsY2xhc3M6e1wicm90YXRlLTE4MFwiOnRoaXMuc2hvd2luZyxcIm9uLXJpZ2h0XCI6IXRoaXMuc3BsaXQsXCJxLWJ0bi1kcm9wZG93bi1hcnJvd1wiOiF0aGlzLnNwbGl0fX0pLG49dChRQnRuLHtwcm9wczpPYmplY3QuYXNzaWduKHt9LHRoaXMuJHByb3BzLHtpY29uUmlnaHQ6dGhpcy5zcGxpdD90aGlzLmljb25SaWdodDpudWxsfSksY2xhc3M6dGhpcy5zcGxpdD9cInEtYnRuLWRyb3Bkb3duLWN1cnJlbnRcIjpcInEtYnRuLWRyb3Bkb3duIHEtYnRuLWRyb3Bkb3duLXNpbXBsZVwiLG9uOntjbGljazpmdW5jdGlvbih0KXtlLnNwbGl0JiZlLmhpZGUoKSxlLmRpc2FibGV8fGUuJGVtaXQoXCJjbGlja1wiLHQpfX19LHRoaXMuc3BsaXQ/bnVsbDpbcyxpXSk7cmV0dXJuIHRoaXMuc3BsaXQ/dChRQnRuR3JvdXAse3Byb3BzOntvdXRsaW5lOnRoaXMub3V0bGluZSxmbGF0OnRoaXMuZmxhdCxyb3VuZGVkOnRoaXMucm91bmRlZCxwdXNoOnRoaXMucHVzaH0sc3RhdGljQ2xhc3M6XCJxLWJ0bi1kcm9wZG93biBxLWJ0bi1kcm9wZG93bi1zcGxpdCBuby13cmFwIHEtYnRuLWl0ZW1cIn0sW24sdChRQnRuLHtwcm9wczp7ZGlzYWJsZTp0aGlzLmRpc2FibGUsb3V0bGluZTp0aGlzLm91dGxpbmUsZmxhdDp0aGlzLmZsYXQscm91bmRlZDp0aGlzLnJvdW5kZWQscHVzaDp0aGlzLnB1c2gsc2l6ZTp0aGlzLnNpemUsY29sb3I6dGhpcy5jb2xvcix0ZXh0Q29sb3I6dGhpcy50ZXh0Q29sb3IsZGVuc2U6dGhpcy5kZW5zZSxnbG9zc3k6dGhpcy5nbG9zc3ksbm9SaXBwbGU6dGhpcy5ub1JpcHBsZSx3YWl0Rm9yUmlwcGxlOnRoaXMud2FpdEZvclJpcHBsZX0sc3RhdGljQ2xhc3M6XCJxLWJ0bi1kcm9wZG93bi1hcnJvd1wiLG9uOntjbGljazpmdW5jdGlvbigpe2UudG9nZ2xlKCl9fX0sW3NdKSxbaV1dKTpufSxtZXRob2RzOnt0b2dnbGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcmVmcy5wb3BvdmVyP3RoaXMuJHJlZnMucG9wb3Zlci50b2dnbGUoKTpQcm9taXNlLnJlc29sdmUoKX0sc2hvdzpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRyZWZzLnBvcG92ZXI/dGhpcy4kcmVmcy5wb3BvdmVyLnNob3coKTpQcm9taXNlLnJlc29sdmUoKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRyZWZzLnBvcG92ZXI/dGhpcy4kcmVmcy5wb3BvdmVyLmhpZGUoKTpQcm9taXNlLnJlc29sdmUoKX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dC52YWx1ZSYmdC4kcmVmcy5wb3BvdmVyJiZ0LiRyZWZzLnBvcG92ZXIuc2hvdygpfSl9fSxRQnRuVG9nZ2xlPXtuYW1lOlwiUUJ0blRvZ2dsZVwiLHByb3BzOnt2YWx1ZTp7cmVxdWlyZWQ6ITB9LGNvbG9yOlN0cmluZyx0ZXh0Q29sb3I6U3RyaW5nLHRvZ2dsZUNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSx0b2dnbGVUZXh0Q29sb3I6U3RyaW5nLG9wdGlvbnM6e3R5cGU6QXJyYXkscmVxdWlyZWQ6ITAsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0LmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVybihcImxhYmVsXCJpbiB0fHxcImljb25cImluIHQpJiZcInZhbHVlXCJpbiB0fSl9fSxyZWFkb25seTpCb29sZWFuLGRpc2FibGU6Qm9vbGVhbixub0NhcHM6Qm9vbGVhbixub1dyYXA6Qm9vbGVhbixvdXRsaW5lOkJvb2xlYW4sZmxhdDpCb29sZWFuLGRlbnNlOkJvb2xlYW4scm91bmRlZDpCb29sZWFuLHB1c2g6Qm9vbGVhbixzaXplOlN0cmluZyxnbG9zc3k6Qm9vbGVhbixub1JpcHBsZTpCb29sZWFuLHdhaXRGb3JSaXBwbGU6Qm9vbGVhbn0sY29tcHV0ZWQ6e3ZhbDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMub3B0aW9ucy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUudmFsdWU9PT10LnZhbHVlfSl9fSxtZXRob2RzOntzZXQ6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzO3RoaXMucmVhZG9ubHl8fCh0aGlzLiRlbWl0KFwiaW5wdXRcIix0LGUpLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkodCkhPT1KU09OLnN0cmluZ2lmeShpLnZhbHVlKSYmaS4kZW1pdChcImNoYW5nZVwiLHQsZSl9KSl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChRQnRuR3JvdXAse3N0YXRpY0NsYXNzOlwicS1idG4tdG9nZ2xlXCIscHJvcHM6e291dGxpbmU6dGhpcy5vdXRsaW5lLGZsYXQ6dGhpcy5mbGF0LHJvdW5kZWQ6dGhpcy5yb3VuZGVkLHB1c2g6dGhpcy5wdXNofX0sdGhpcy5vcHRpb25zLm1hcChmdW5jdGlvbihpLHMpe3JldHVybiB0KFFCdG4se2tleTpcIlwiK2kubGFiZWwraS5pY29uK2kuaWNvblJpZ2h0LG9uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBlLnNldChpLnZhbHVlLGkpfX0scHJvcHM6e2Rpc2FibGU6ZS5kaXNhYmxlfHxpLmRpc2FibGUsbGFiZWw6aS5sYWJlbCxjb2xvcjplLnZhbFtzXT9pLnRvZ2dsZUNvbG9yfHxlLnRvZ2dsZUNvbG9yOmkuY29sb3J8fGUuY29sb3IsdGV4dENvbG9yOmUudmFsW3NdP2kudG9nZ2xlVGV4dENvbG9yfHxlLnRvZ2dsZVRleHRDb2xvcjppLnRleHRDb2xvcnx8ZS50ZXh0Q29sb3IsaWNvbjppLmljb24saWNvblJpZ2h0OmkuaWNvblJpZ2h0LG5vQ2FwczplLm5vQ2Fwc3x8aS5ub0NhcHMsbm9XcmFwOmUubm9XcmFwfHxpLm5vV3JhcCxvdXRsaW5lOmUub3V0bGluZSxmbGF0OmUuZmxhdCxyb3VuZGVkOmUucm91bmRlZCxwdXNoOmUucHVzaCxnbG9zc3k6ZS5nbG9zc3ksc2l6ZTplLnNpemUsZGVuc2U6ZS5kZW5zZSxub1JpcHBsZTplLm5vUmlwcGxlfHxpLm5vUmlwcGxlLHdhaXRGb3JSaXBwbGU6ZS53YWl0Rm9yUmlwcGxlfHxpLndhaXRGb3JSaXBwbGUsdGFiaW5kZXg6aS50YWJpbmRleH19KX0pKX19LFFDYXJkPXtuYW1lOlwiUUNhcmRcIixwcm9wczp7ZGFyazpCb29sZWFuLHNxdWFyZTpCb29sZWFuLGZsYXQ6Qm9vbGVhbixpbmxpbmU6Qm9vbGVhbixjb2xvcjpTdHJpbmcsdGV4dENvbG9yOlN0cmluZ30sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1be1wibm8tYm9yZGVyLXJhZGl1c1wiOnRoaXMuc3F1YXJlLFwibm8tc2hhZG93XCI6dGhpcy5mbGF0LFwiaW5saW5lLWJsb2NrXCI6dGhpcy5pbmxpbmUsXCJxLWNhcmQtZGFya1wiOnRoaXMuZGFya31dO3JldHVybiB0aGlzLmNvbG9yPyh0LnB1c2goXCJiZy1cIit0aGlzLmNvbG9yKSx0LnB1c2goXCJ0ZXh0LVwiKyh0aGlzLnRleHRDb2xvcnx8XCJ3aGl0ZVwiKSkpOnRoaXMudGV4dENvbG9yJiZ0LnB1c2goXCJ0ZXh0LVwiK3RoaXMudGV4dENvbG9yKSx0fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJkXCIsY2xhc3M6dGhpcy5jbGFzc2VzfSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFDYXJkVGl0bGU9e25hbWU6XCJRQ2FyZFRpdGxlXCIscmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJkLXByaW1hcnkgcS1jYXJkLWNvbnRhaW5lciByb3cgbm8td3JhcFwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCBjb2x1bW5cIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcmQtdGl0bGVcIn0sdGhpcy4kc2xvdHMuZGVmYXVsdCksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2FyZC1zdWJ0aXRsZVwifSxbdGhpcy4kc2xvdHMuc3VidGl0bGVdKV0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wtYXV0byBzZWxmLWNlbnRlciBxLWNhcmQtdGl0bGUtZXh0cmFcIn0sW3RoaXMuJHNsb3RzLnJpZ2h0XSldKX19LFFDYXJkTWFpbj17bmFtZTpcIlFDYXJkTWFpblwiLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2FyZC1tYWluIHEtY2FyZC1jb250YWluZXJcIn0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRQ2FyZEFjdGlvbnM9e25hbWU6XCJRQ2FyZEFjdGlvbnNcIixwcm9wczp7dmVydGljYWw6Qm9vbGVhbixhbGlnbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInN0YXJ0XCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcInN0YXJ0XCIsXCJjZW50ZXJcIixcImVuZFwiLFwiYXJvdW5kXCIsXCJiZXR3ZWVuXCJdLmluY2x1ZGVzKHQpfX19LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuXCJxLWNhcmQtYWN0aW9ucy1cIisodGhpcy52ZXJ0aWNhbD9cInZlcnQgY29sdW1uIGp1c3RpZnktc3RhcnRcIjpcImhvcml6IHJvd1wiKStcIiBcIisodGhpcy52ZXJ0aWNhbD9cIml0ZW1zXCI6XCJqdXN0aWZ5XCIpK1wiLVwiK3RoaXMuYWxpZ259fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcmQtYWN0aW9uc1wiLGNsYXNzOnRoaXMuY2xhc3Nlc30sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRQ2FyZE1lZGlhPXtuYW1lOlwiUUNhcmRNZWRpYVwiLHByb3BzOntvdmVybGF5UG9zaXRpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJib3R0b21cIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1widG9wXCIsXCJib3R0b21cIixcImZ1bGxcIl0uaW5jbHVkZXModCl9fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJkLW1lZGlhIHJlbGF0aXZlLXBvc2l0aW9uXCJ9LFt0aGlzLiRzbG90cy5kZWZhdWx0LHRoaXMuJHNsb3RzLm92ZXJsYXk/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2FyZC1tZWRpYS1vdmVybGF5XCIsY2xhc3M6XCJhYnNvbHV0ZS1cIit0aGlzLm92ZXJsYXlQb3NpdGlvbn0sW3RoaXMuJHNsb3RzLm92ZXJsYXldKTpudWxsXSl9fSxRQ2FyZFNlcGFyYXRvcj17bmFtZTpcIlFDYXJkU2VwYXJhdG9yXCIscHJvcHM6e2luc2V0OkJvb2xlYW59LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2FyZC1zZXBhcmF0b3JcIixjbGFzczp7aW5zZXQ6dGhpcy5pbnNldH19LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX07ZnVuY3Rpb24gZ2V0RGlyZWN0aW9uKHQpe3ZhciBlPSEwIT09dC5ob3Jpem9udGFsJiYhMCE9PXQudmVydGljYWwsaT17fTtyZXR1cm4hMCE9PXQuaG9yaXpvbnRhbCYmITAhPT1lfHwoaS5ob3Jpem9udGFsPSEwKSwhMCE9PXQudmVydGljYWwmJiEwIT09ZXx8KGkudmVydGljYWw9ITApLGl9ZnVuY3Rpb24gcHJvY2Vzc0NoYW5nZXModCxlLGkpe3ZhciBzPXBvc2l0aW9uKHQpLG49cy5sZWZ0LWUuZXZlbnQueCxvPXMudG9wLWUuZXZlbnQueSxyPU1hdGguYWJzKG4pLGE9TWF0aC5hYnMobyk7cmV0dXJue2V2dDp0LHBvc2l0aW9uOnMsZGlyZWN0aW9uOmUuZGlyZWN0aW9uLmhvcml6b250YWwmJiFlLmRpcmVjdGlvbi52ZXJ0aWNhbD9uPDA/XCJsZWZ0XCI6XCJyaWdodFwiOiFlLmRpcmVjdGlvbi5ob3Jpem9udGFsJiZlLmRpcmVjdGlvbi52ZXJ0aWNhbD9vPDA/XCJ1cFwiOlwiZG93blwiOnI+PWE/bjwwP1wibGVmdFwiOlwicmlnaHRcIjpvPDA/XCJ1cFwiOlwiZG93blwiLGlzRmlyc3Q6ZS5ldmVudC5pc0ZpcnN0LGlzRmluYWw6aSxkdXJhdGlvbjoobmV3IERhdGUpLmdldFRpbWUoKS1lLmV2ZW50LnRpbWUsZGlzdGFuY2U6e3g6cix5OmF9LG9mZnNldDp7eDpuLHk6b30sZGVsdGE6e3g6cy5sZWZ0LWUuZXZlbnQubGFzdFgseTpzLnRvcC1lLmV2ZW50Lmxhc3RZfX19ZnVuY3Rpb24gc2hvdWxkVHJpZ2dlcih0LGUpe3JldHVybiEoIXQuZGlyZWN0aW9uLmhvcml6b250YWx8fCF0LmRpcmVjdGlvbi52ZXJ0aWNhbCl8fCh0LmRpcmVjdGlvbi5ob3Jpem9udGFsJiYhdC5kaXJlY3Rpb24udmVydGljYWw/TWF0aC5hYnMoZS5kZWx0YS54KT4wOiF0LmRpcmVjdGlvbi5ob3Jpem9udGFsJiZ0LmRpcmVjdGlvbi52ZXJ0aWNhbD9NYXRoLmFicyhlLmRlbHRhLnkpPjA6dm9pZCAwKX12YXIgVG91Y2hQYW49e25hbWU6XCJ0b3VjaC1wYW5cIixiaW5kOmZ1bmN0aW9uKHQsZSl7dmFyIGk9ITAhPT1lLm1vZGlmaWVycy5ub01vdXNlLHM9ZS5tb2RpZmllcnMuc3RvcCxuPWUubW9kaWZpZXJzLnByZXZlbnQsbz1ufHxlLm1vZGlmaWVycy5taWdodFByZXZlbnQ/bnVsbDpsaXN0ZW5PcHRzLnBhc3NpdmUscj17aGFuZGxlcjplLnZhbHVlLGRpcmVjdGlvbjpnZXREaXJlY3Rpb24oZS5tb2RpZmllcnMpLG1vdXNlU3RhcnQ6ZnVuY3Rpb24odCl7bGVmdENsaWNrKHQpJiYoZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLHIubW92ZSxvKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLHIubW91c2VFbmQsbyksci5zdGFydCh0LCEwKSl9LG1vdXNlRW5kOmZ1bmN0aW9uKHQpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixyLm1vdmUsbyksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixyLm1vdXNlRW5kLG8pLHIuZW5kKHQpfSxzdGFydDpmdW5jdGlvbihlLGkpe3ZhciBvPXBvc2l0aW9uKGUpO3IuZXZlbnQ9e3g6by5sZWZ0LHk6by50b3AsdGltZToobmV3IERhdGUpLmdldFRpbWUoKSxkZXRlY3RlZDohMD09PWl8fHIuZGlyZWN0aW9uLmhvcml6b250YWwmJnIuZGlyZWN0aW9uLnZlcnRpY2FsLGFib3J0OiExLGlzRmlyc3Q6ITAsbGFzdFg6by5sZWZ0LGxhc3RZOm8udG9wfSxyLmV2ZW50LmRldGVjdGVkJiYodC5jbGFzc0xpc3QuYWRkKFwicS10b3VjaFwiKSwhMCE9PWkmJihzJiZlLnN0b3BQcm9wYWdhdGlvbigpLG4mJmUucHJldmVudERlZmF1bHQoKSxyLm1vdmUoZSkpKX0sbW92ZTpmdW5jdGlvbih0KXtpZighMCE9PXIuZXZlbnQuYWJvcnQpaWYoITAhPT1yLmV2ZW50LmRldGVjdGVkKXt2YXIgZT1wb3NpdGlvbih0KSxpPU1hdGguYWJzKGUubGVmdC1yLmV2ZW50LngpLG89TWF0aC5hYnMoZS50b3Atci5ldmVudC55KTtpIT09byYmKHIuZXZlbnQuZGV0ZWN0ZWQ9ITAsci5ldmVudC5hYm9ydD1yLmRpcmVjdGlvbi52ZXJ0aWNhbD9pPm86aTxvLHIubW92ZSh0KSl9ZWxzZXtzJiZ0LnN0b3BQcm9wYWdhdGlvbigpLG4mJnQucHJldmVudERlZmF1bHQoKTt2YXIgYT1wcm9jZXNzQ2hhbmdlcyh0LHIsITEpO3Nob3VsZFRyaWdnZXIocixhKSYmKHIuaGFuZGxlcihhKSxyLmV2ZW50Lmxhc3RYPWEucG9zaXRpb24ubGVmdCxyLmV2ZW50Lmxhc3RZPWEucG9zaXRpb24udG9wLHIuZXZlbnQuaXNGaXJzdD0hMSl9fSxlbmQ6ZnVuY3Rpb24oZSl7dC5jbGFzc0xpc3QucmVtb3ZlKFwicS10b3VjaFwiKSxyLmV2ZW50LmFib3J0fHwhci5ldmVudC5kZXRlY3RlZHx8ci5ldmVudC5pc0ZpcnN0fHwocyYmZS5zdG9wUHJvcGFnYXRpb24oKSxuJiZlLnByZXZlbnREZWZhdWx0KCksci5oYW5kbGVyKHByb2Nlc3NDaGFuZ2VzKGUsciwhMCkpKX19O3QuX19xdG91Y2hwYW4mJih0Ll9fcXRvdWNocGFuX29sZD10Ll9fcXRvdWNocGFuKSx0Ll9fcXRvdWNocGFuPXIsaSYmdC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsci5tb3VzZVN0YXJ0LG8pLHQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixyLnN0YXJ0LG8pLHQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLHIubW92ZSxvKSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLHIuZW5kLG8pfSx1cGRhdGU6ZnVuY3Rpb24odCxlKXt2YXIgaT1lLm9sZFZhbHVlLHM9ZS52YWx1ZSxuPWUubW9kaWZpZXJzLG89dC5fX3F0b3VjaHBhbjtpIT09cyYmKG8uaGFuZGxlcj1zKSxuLmhvcml6b250YWw9PT1vLmRpcmVjdGlvbi5ob3Jpem9udGFsJiZuLnZlcnRpY2FsPT09by5kaXJlY3Rpb24udmVydGljYWx8fChvLmRpcmVjdGlvbj1nZXREaXJlY3Rpb24obikpfSx1bmJpbmQ6ZnVuY3Rpb24odCxlKXt2YXIgaT10Ll9fcXRvdWNocGFuX29sZHx8dC5fX3F0b3VjaHBhbjtpZih2b2lkIDAhPT1pKXt2YXIgcz1lLm1vZGlmaWVycy5wcmV2ZW50P251bGw6bGlzdGVuT3B0cy5wYXNzaXZlO3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLGkubW91c2VTdGFydCxzKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsaS5zdGFydCxzKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIixpLm1vdmUscyksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIixpLmVuZCxzKSxkZWxldGUgdFt0Ll9fcXRvdWNocGFuX29sZD9cIl9fcXRvdWNocGFuX29sZFwiOlwiX19xdG91Y2hwYW5cIl19fX07ZnVuY3Rpb24gaXNEYXRlKHQpe3JldHVyblwiW29iamVjdCBEYXRlXVwiPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIGlzTnVtYmVyKHQpe3JldHVyblwibnVtYmVyXCI9PXR5cGVvZiB0JiZpc0Zpbml0ZSh0KX1mdW5jdGlvbiBpc1N0cmluZyh0KXtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgdH12YXIgbGluZWFyPWZ1bmN0aW9uKHQpe3JldHVybiB0fSxlYXNlSW5RdWFkPWZ1bmN0aW9uKHQpe3JldHVybiB0KnR9LGVhc2VPdXRRdWFkPWZ1bmN0aW9uKHQpe3JldHVybiB0KigyLXQpfSxlYXNlSW5PdXRRdWFkPWZ1bmN0aW9uKHQpe3JldHVybiB0PC41PzIqdCp0Oig0LTIqdCkqdC0xfSxlYXNlSW5DdWJpYz1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5wb3codCwzKX0sZWFzZU91dEN1YmljPWZ1bmN0aW9uKHQpe3JldHVybiAxK01hdGgucG93KHQtMSwzKX0sZWFzZUluT3V0Q3ViaWM9ZnVuY3Rpb24odCl7cmV0dXJuIHQ8LjU/NCpNYXRoLnBvdyh0LDMpOjErKHQtMSkqTWF0aC5wb3coMip0LTIsMil9LGVhc2VJblF1YXJ0PWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdyh0LDQpfSxlYXNlT3V0UXVhcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIDEtTWF0aC5wb3codC0xLDQpfSxlYXNlSW5PdXRRdWFydD1mdW5jdGlvbih0KXtyZXR1cm4gdDwuNT84Kk1hdGgucG93KHQsNCk6MS04Kk1hdGgucG93KHQtMSw0KX0sZWFzZUluUXVpbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucG93KHQsNSl9LGVhc2VPdXRRdWludD1mdW5jdGlvbih0KXtyZXR1cm4gMStNYXRoLnBvdyh0LTEsNSl9LGVhc2VJbk91dFF1aW50PWZ1bmN0aW9uKHQpe3JldHVybiB0PC41PzE2Kk1hdGgucG93KHQsNSk6MSsxNipNYXRoLnBvdyh0LTEsNSl9LGVhc2VJbkNpcmM9ZnVuY3Rpb24odCl7cmV0dXJuLTEqTWF0aC5zcXJ0KDEtTWF0aC5wb3codCwyKSkrMX0sZWFzZU91dENpcmM9ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguc3FydCgtMSoodC0yKSp0KX0sZWFzZUluT3V0Q2lyYz1mdW5jdGlvbih0KXtyZXR1cm4gdDwuNT8uNSooMS1NYXRoLnNxcnQoMS00KnQqdCkpOi41KigxK01hdGguc3FydCg4KnQtMy00KnQqdCkpfSxvdmVyc2hvb3Q9ZnVuY3Rpb24odCl7cmV0dXJuLTEqTWF0aC5wb3coTWF0aC5FLC02LjMqdCkqTWF0aC5jb3MoNSp0KSsxfSxzdGFuZGFyZD1mdW5jdGlvbih0KXtyZXR1cm4gdDwuNDAzMT8xMipNYXRoLnBvdyh0LDQpOjEvMTI5MCooMTEqTWF0aC5zcXJ0KC00ZTQqdCp0KzhlNCp0LTIzMzU5KS0xMjkpfSxkZWNlbGVyYXRlPWVhc2VPdXRDdWJpYyxhY2NlbGVyYXRlPWVhc2VJbkN1YmljLHNoYXJwPWVhc2VJbk91dFF1YWQsZWFzaW5nPXtsaW5lYXI6bGluZWFyLGVhc2VJblF1YWQ6ZWFzZUluUXVhZCxlYXNlT3V0UXVhZDplYXNlT3V0UXVhZCxlYXNlSW5PdXRRdWFkOmVhc2VJbk91dFF1YWQsZWFzZUluQ3ViaWM6ZWFzZUluQ3ViaWMsZWFzZU91dEN1YmljOmVhc2VPdXRDdWJpYyxlYXNlSW5PdXRDdWJpYzplYXNlSW5PdXRDdWJpYyxlYXNlSW5RdWFydDplYXNlSW5RdWFydCxlYXNlT3V0UXVhcnQ6ZWFzZU91dFF1YXJ0LGVhc2VJbk91dFF1YXJ0OmVhc2VJbk91dFF1YXJ0LGVhc2VJblF1aW50OmVhc2VJblF1aW50LGVhc2VPdXRRdWludDplYXNlT3V0UXVpbnQsZWFzZUluT3V0UXVpbnQ6ZWFzZUluT3V0UXVpbnQsZWFzZUluQ2lyYzplYXNlSW5DaXJjLGVhc2VPdXRDaXJjOmVhc2VPdXRDaXJjLGVhc2VJbk91dENpcmM6ZWFzZUluT3V0Q2lyYyxvdmVyc2hvb3Q6b3ZlcnNob290LHN0YW5kYXJkOnN0YW5kYXJkLGRlY2VsZXJhdGU6ZGVjZWxlcmF0ZSxhY2NlbGVyYXRlOmFjY2VsZXJhdGUsc2hhcnA6c2hhcnB9LGlkcz17fTtmdW5jdGlvbiBzdGFydCh0KXt2YXIgZT10Lm5hbWUsaT10LmR1cmF0aW9uO3ZvaWQgMD09PWkmJihpPTMwMCk7dmFyIHM9dC50byxuPXQuZnJvbSxvPXQuYXBwbHkscj10LmRvbmUsYT10LmNhbmNlbCxsPXQuZWFzaW5nLGM9ZSxoPW5ldyBEYXRlO2M/c3RvcChjKTpjPXVpZCgpO3ZhciB1PWx8fGxpbmVhcixkPWZ1bmN0aW9uKCl7dmFyIHQ9KG5ldyBEYXRlLWgpL2k7dD4xJiYodD0xKTt2YXIgZT1uKyhzLW4pKnUodCk7aWYobyhlLHQpLDE9PT10KXJldHVybiBkZWxldGUgaWRzW2NdLHZvaWQociYmcihlKSk7cC5sYXN0PXtwb3M6ZSxwcm9ncmVzczp0fSxwLnRpbWVyPXJlcXVlc3RBbmltYXRpb25GcmFtZShkKX0scD1pZHNbY109e2NhbmNlbDphLHRpbWVyOnJlcXVlc3RBbmltYXRpb25GcmFtZShkKX07cmV0dXJuIGN9ZnVuY3Rpb24gc3RvcCh0KXtpZih0KXt2YXIgZT1pZHNbdF07ZSYmZS50aW1lciYmKGNhbmNlbEFuaW1hdGlvbkZyYW1lKGUudGltZXIpLGUuY2FuY2VsJiZlLmNhbmNlbChlLmxhc3QpLGRlbGV0ZSBpZHNbdF0pfX12YXIgYW5pbWF0ZT17c3RhcnQ6c3RhcnQsc3RvcDpzdG9wfSxGdWxsc2NyZWVuTWl4aW49e2RhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aW5GdWxsc2NyZWVuOiExfX0sd2F0Y2g6eyRyb3V0ZTpmdW5jdGlvbigpe3RoaXMuZXhpdEZ1bGxzY3JlZW4oKX0saW5GdWxsc2NyZWVuOmZ1bmN0aW9uKHQpe3RoaXMuJGVtaXQoXCJmdWxsc2NyZWVuXCIsdCl9fSxtZXRob2RzOnt0b2dnbGVGdWxsc2NyZWVuOmZ1bmN0aW9uKCl7dGhpcy5pbkZ1bGxzY3JlZW4/dGhpcy5leGl0RnVsbHNjcmVlbigpOnRoaXMuc2V0RnVsbHNjcmVlbigpfSxzZXRGdWxsc2NyZWVuOmZ1bmN0aW9uKCl7dGhpcy5pbkZ1bGxzY3JlZW58fCh0aGlzLmluRnVsbHNjcmVlbj0hMCx0aGlzLmNvbnRhaW5lcj10aGlzLiRlbC5wYXJlbnROb2RlLHRoaXMuY29udGFpbmVyLnJlcGxhY2VDaGlsZCh0aGlzLmZ1bGxzY3JlZW5GaWxsZXJOb2RlLHRoaXMuJGVsKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuJGVsKSxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJxLWJvZHktZnVsbHNjcmVlbi1taXhpblwiKSx0aGlzLl9faGlzdG9yeUZ1bGxzY3JlZW49e2hhbmRsZXI6dGhpcy5leGl0RnVsbHNjcmVlbn0sSGlzdG9yeS5hZGQodGhpcy5fX2hpc3RvcnlGdWxsc2NyZWVuKSl9LGV4aXRGdWxsc2NyZWVuOmZ1bmN0aW9uKCl7dGhpcy5pbkZ1bGxzY3JlZW4mJih0aGlzLl9faGlzdG9yeUZ1bGxzY3JlZW4mJihIaXN0b3J5LnJlbW92ZSh0aGlzLl9faGlzdG9yeUZ1bGxzY3JlZW4pLHRoaXMuX19oaXN0b3J5RnVsbHNjcmVlbj1udWxsKSx0aGlzLmNvbnRhaW5lci5yZXBsYWNlQ2hpbGQodGhpcy4kZWwsdGhpcy5mdWxsc2NyZWVuRmlsbGVyTm9kZSksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwicS1ib2R5LWZ1bGxzY3JlZW4tbWl4aW5cIiksdGhpcy5pbkZ1bGxzY3JlZW49ITEpfX0sYmVmb3JlTW91bnQ6ZnVuY3Rpb24oKXt0aGlzLmZ1bGxzY3JlZW5GaWxsZXJOb2RlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5leGl0RnVsbHNjcmVlbigpfX0sUUNhcm91c2VsPXtuYW1lOlwiUUNhcm91c2VsXCIsbWl4aW5zOltGdWxsc2NyZWVuTWl4aW5dLGRpcmVjdGl2ZXM6e1RvdWNoUGFuOlRvdWNoUGFufSxwcm9wczp7dmFsdWU6TnVtYmVyLGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSxoZWlnaHQ6U3RyaW5nLGFycm93czpCb29sZWFuLGluZmluaXRlOkJvb2xlYW4sYW5pbWF0aW9uOnt0eXBlOltOdW1iZXIsQm9vbGVhbl0sZGVmYXVsdDohMH0sZWFzaW5nOkZ1bmN0aW9uLHN3aXBlRWFzaW5nOkZ1bmN0aW9uLG5vU3dpcGU6Qm9vbGVhbixhdXRvcGxheTpbTnVtYmVyLEJvb2xlYW5dLGhhbmRsZUFycm93S2V5czpCb29sZWFuLHF1aWNrTmF2OkJvb2xlYW4scXVpY2tOYXZQb3NpdGlvbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImJvdHRvbVwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJ0b3BcIixcImJvdHRvbVwiXS5pbmNsdWRlcyh0KX19LHF1aWNrTmF2SWNvbjpTdHJpbmcsdGh1bWJuYWlsczp7dHlwZTpBcnJheSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuW119fSx0aHVtYm5haWxzSWNvbjpTdHJpbmcsdGh1bWJuYWlsc0hvcml6b250YWw6Qm9vbGVhbn0scHJvdmlkZTpmdW5jdGlvbigpe3JldHVybntjYXJvdXNlbDp0aGlzfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntwb3NpdGlvbjowLHNsaWRlOjAscG9zaXRpb25TbGlkZTowLHNsaWRlc051bWJlcjowLGFuaW1VaWQ6ITEsdmlld1RodW1ibmFpbHM6ITF9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dCE9PXRoaXMuc2xpZGUmJnRoaXMuZ29Ub1NsaWRlKHQpfSxhdXRvcGxheTpmdW5jdGlvbigpe3RoaXMuX19wbGFuQXV0b1BsYXkoKX0saW5maW5pdGU6ZnVuY3Rpb24oKXt0aGlzLl9fcGxhbkF1dG9QbGF5KCl9LGhhbmRsZUFycm93S2V5czpmdW5jdGlvbih0KXt0aGlzLl9fc2V0QXJyb3dLZXlzKHQpfX0sY29tcHV0ZWQ6e3J0bERpcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRxLmkxOG4ucnRsPy0xOjF9LGFycm93SWNvbjpmdW5jdGlvbigpe3ZhciB0PVt0aGlzLiRxLmljb24uY2Fyb3VzZWwubGVmdCx0aGlzLiRxLmljb24uY2Fyb3VzZWwucmlnaHRdO3JldHVybiB0aGlzLiRxLmkxOG4ucnRsP3QucmV2ZXJzZSgpOnR9LHRyYWNrUG9zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm57dHJhbnNmb3JtOlwidHJhbnNsYXRlWChcIit0aGlzLnJ0bERpcip0aGlzLnBvc2l0aW9uK1wiJSlcIn19LGluZmluaXRlTGVmdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluZmluaXRlJiZ0aGlzLnNsaWRlc051bWJlcj4xJiZ0aGlzLnBvc2l0aW9uU2xpZGU8MH0saW5maW5pdGVSaWdodDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluZmluaXRlJiZ0aGlzLnNsaWRlc051bWJlcj4xJiZ0aGlzLnBvc2l0aW9uU2xpZGU+PXRoaXMuc2xpZGVzTnVtYmVyfSxjYW5Hb1RvUHJldmlvdXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmZpbml0ZT90aGlzLnNsaWRlc051bWJlcj4xOnRoaXMuc2xpZGU+MH0sY2FuR29Ub05leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmZpbml0ZT90aGlzLnNsaWRlc051bWJlcj4xOnRoaXMuc2xpZGU8dGhpcy5zbGlkZXNOdW1iZXItMX0sY29tcHV0ZWRRdWlja05hdkljb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWlja05hdkljb258fHRoaXMuJHEuaWNvbi5jYXJvdXNlbC5xdWlja05hdn0sY29tcHV0ZWRTdHlsZTpmdW5jdGlvbigpe2lmKCF0aGlzLmluRnVsbHNjcmVlbiYmdGhpcy5oZWlnaHQpcmV0dXJuXCJoZWlnaHQ6IFwiK3RoaXMuaGVpZ2h0fSxzbG90U2NvcGU6ZnVuY3Rpb24oKXtyZXR1cm57c2xpZGU6dGhpcy5zbGlkZSxzbGlkZXNOdW1iZXI6dGhpcy5zbGlkZXNOdW1iZXIscGVyY2VudGFnZTp0aGlzLnNsaWRlc051bWJlcjwyPzEwMDoxMDAqdGhpcy5zbGlkZS8odGhpcy5zbGlkZXNOdW1iZXItMSksZ29Ub1NsaWRlOnRoaXMuZ29Ub1NsaWRlLHByZXZpb3VzOnRoaXMucHJldmlvdXMsbmV4dDp0aGlzLm5leHQsY29sb3I6dGhpcy5jb2xvcixpbkZ1bGxzY3JlZW46dGhpcy5pbkZ1bGxzY3JlZW4sdG9nZ2xlRnVsbHNjcmVlbjp0aGlzLnRvZ2dsZUZ1bGxzY3JlZW4sY2FuR29Ub05leHQ6dGhpcy5jYW5Hb1RvTmV4dCxjYW5Hb1RvUHJldmlvdXM6dGhpcy5jYW5Hb1RvUHJldmlvdXN9fSxjb21wdXRlZFRodW1ibmFpbEljb246ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50aHVtYm5haWxzSWNvbnx8dGhpcy4kcS5pY29uLmNhcm91c2VsLnRodW1ibmFpbHN9fSxtZXRob2RzOntwcmV2aW91czpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNhbkdvVG9QcmV2aW91cz90aGlzLmdvVG9TbGlkZSh0aGlzLnNsaWRlLTEpOlByb21pc2UucmVzb2x2ZSgpfSxuZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2FuR29Ub05leHQ/dGhpcy5nb1RvU2xpZGUodGhpcy5zbGlkZSsxKTpQcm9taXNlLnJlc29sdmUoKX0sZ29Ub1NsaWRlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcztyZXR1cm4gdm9pZCAwPT09ZSYmKGU9ITEpLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHMpe3ZhciBuLG89XCJcIixyPWkuc2xpZGU7aS5fX2NsZWFudXAoKTt2YXIgYT1mdW5jdGlvbigpe2kuJGVtaXQoXCJpbnB1dFwiLGkuc2xpZGUpLGkuJGVtaXQoXCJzbGlkZVwiLGkuc2xpZGUsbyksaS4kZW1pdChcInNsaWRlLWRpcmVjdGlvblwiLG8pLGkuX19wbGFuQXV0b1BsYXkoKSxzKCl9O2lmKGkuc2xpZGVzTnVtYmVyPDI/KGkuc2xpZGU9MCxpLnBvc2l0aW9uU2xpZGU9MCxuPTApOihpLmhhc093blByb3BlcnR5KFwiaW5pdGlhbFBvc2l0aW9uXCIpfHwoaS5wb3NpdGlvbj0xMDAqLWkuc2xpZGUpLG89dD5pLnNsaWRlP1wibmV4dFwiOlwicHJldmlvdXNcIixpLmluZmluaXRlPyhpLnNsaWRlPW5vcm1hbGl6ZVRvSW50ZXJ2YWwodCwwLGkuc2xpZGVzTnVtYmVyLTEpLG49bm9ybWFsaXplVG9JbnRlcnZhbCh0LC0xLGkuc2xpZGVzTnVtYmVyKSxlfHwoaS5wb3NpdGlvblNsaWRlPW4pKTooaS5zbGlkZT1iZXR3ZWVuKHQsMCxpLnNsaWRlc051bWJlci0xKSxpLnBvc2l0aW9uU2xpZGU9aS5zbGlkZSxuPWkuc2xpZGUpKSxpLiRlbWl0KFwic2xpZGUtdHJpZ2dlclwiLHIsaS5zbGlkZSxvKSxuKj0tMTAwLCFpLmFuaW1hdGlvbilyZXR1cm4gaS5wb3NpdGlvbj1uLHZvaWQgYSgpO2kuYW5pbWF0aW9uSW5Qcm9ncmVzcz0hMCxpLmFuaW1VaWQ9c3RhcnQoe2Zyb206aS5wb3NpdGlvbix0bzpuLGR1cmF0aW9uOmlzTnVtYmVyKGkuYW5pbWF0aW9uKT9pLmFuaW1hdGlvbjozMDAsZWFzaW5nOmU/aS5zd2lwZUVhc2luZ3x8ZGVjZWxlcmF0ZTppLmVhc2luZ3x8c3RhbmRhcmQsYXBwbHk6ZnVuY3Rpb24odCl7aS5wb3NpdGlvbj10fSxkb25lOmZ1bmN0aW9uKCl7aS5pbmZpbml0ZSYmKGkucG9zaXRpb249MTAwKi1pLnNsaWRlLGkucG9zaXRpb25TbGlkZT1pLnNsaWRlKSxpLmFuaW1hdGlvbkluUHJvZ3Jlc3M9ITEsYSgpfX0pfSl9LHN0b3BBbmltYXRpb246ZnVuY3Rpb24oKXtzdG9wKHRoaXMuYW5pbVVpZCksdGhpcy5hbmltYXRpb25JblByb2dyZXNzPSExfSxfX3BhbjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKCF0aGlzLmluZmluaXRlfHwhdGhpcy5hbmltYXRpb25JblByb2dyZXNzKXt0LmlzRmlyc3QmJih0aGlzLmluaXRpYWxQb3NpdGlvbj10aGlzLnBvc2l0aW9uLHRoaXMuX19jbGVhbnVwKCkpO3ZhciBpPXRoaXMucnRsRGlyKihcImxlZnRcIj09PXQuZGlyZWN0aW9uPy0xOjEpKnQuZGlzdGFuY2UueDsodGhpcy5pbmZpbml0ZSYmdGhpcy5zbGlkZXNOdW1iZXI8Mnx8IXRoaXMuaW5maW5pdGUmJigwPT09dGhpcy5zbGlkZSYmaT4wfHx0aGlzLnNsaWRlPT09dGhpcy5zbGlkZXNOdW1iZXItMSYmaTwwKSkmJihpPTApO3ZhciBzPXRoaXMuaW5pdGlhbFBvc2l0aW9uK2kvdGhpcy4kcmVmcy50cmFjay5vZmZzZXRXaWR0aCoxMDAsbj10aGlzLnNsaWRlK3RoaXMucnRsRGlyKihcImxlZnRcIj09PXQuZGlyZWN0aW9uPzE6LTEpO3RoaXMucG9zaXRpb24hPT1zJiYodGhpcy5wb3NpdGlvbj1zKSx0aGlzLnBvc2l0aW9uU2xpZGUhPT1uJiYodGhpcy5wb3NpdGlvblNsaWRlPW4pLHQuaXNGaW5hbCYmdGhpcy5nb1RvU2xpZGUodC5kaXN0YW5jZS54PDQwP3RoaXMuc2xpZGU6dGhpcy5wb3NpdGlvblNsaWRlLCEwKS50aGVuKGZ1bmN0aW9uKCl7ZGVsZXRlIGUuaW5pdGlhbFBvc2l0aW9ufSl9fSxfX3BsYW5BdXRvUGxheTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0LmF1dG9wbGF5JiYoY2xlYXJUaW1lb3V0KHQudGltZXIpLHQudGltZXI9c2V0VGltZW91dCh0Lm5leHQsaXNOdW1iZXIodC5hdXRvcGxheSk/dC5hdXRvcGxheTo1ZTMpKX0pfSxfX2NsZWFudXA6ZnVuY3Rpb24oKXt0aGlzLnN0b3BBbmltYXRpb24oKSxjbGVhclRpbWVvdXQodGhpcy50aW1lcil9LF9faGFuZGxlQXJyb3dLZXk6ZnVuY3Rpb24odCl7dmFyIGU9Z2V0RXZlbnRLZXkodCk7Mzc9PT1lP3RoaXMucHJldmlvdXMoKTozOT09PWUmJnRoaXMubmV4dCgpfSxfX3NldEFycm93S2V5czpmdW5jdGlvbih0KXtkb2N1bWVudFsoITA9PT10P1wiYWRkXCI6XCJyZW1vdmVcIikrXCJFdmVudExpc3RlbmVyXCJdKFwia2V5ZG93blwiLHRoaXMuX19oYW5kbGVBcnJvd0tleSl9LF9fcmVnaXN0ZXJTbGlkZTpmdW5jdGlvbigpe3RoaXMuc2xpZGVzTnVtYmVyKyt9LF9fdW5yZWdpc3RlclNsaWRlOmZ1bmN0aW9uKCl7dGhpcy5zbGlkZXNOdW1iZXItLX0sX19nZXRTY29wZWRTbG90czpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKDAhPT10aGlzLnNsaWRlc051bWJlcil7dmFyIGk9dGhpcy4kc2NvcGVkU2xvdHM7cmV0dXJuIGk/T2JqZWN0LmtleXMoaSkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0LnN0YXJ0c1dpdGgoXCJjb250cm9sLVwiKX0pLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gaVt0XShlLnNsb3RTY29wZSl9KTp2b2lkIDB9fSxfX2dldFF1aWNrTmF2OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoMCE9PXRoaXMuc2xpZGVzTnVtYmVyJiZ0aGlzLnF1aWNrTmF2KXt2YXIgaT10aGlzLiRzY29wZWRTbG90c1tcInF1aWNrLW5hdlwiXSxzPVtdO2lmKGkpZm9yKHZhciBuPWZ1bmN0aW9uKHQpe3MucHVzaChpKHtzbGlkZTp0LGJlZm9yZTp0PGUuc2xpZGUsY3VycmVudDp0PT09ZS5zbGlkZSxhZnRlcjp0PmUuc2xpZGUsY29sb3I6ZS5jb2xvcixnb1RvU2xpZGU6ZnVuY3Rpb24oaSl7ZS5nb1RvU2xpZGUoaXx8dCl9fSkpfSxvPTA7bzx0aGlzLnNsaWRlc051bWJlcjtvKyspbihvKTtlbHNlIGZvcih2YXIgcj1mdW5jdGlvbihpKXtzLnB1c2godChRQnRuLHtrZXk6aSxjbGFzczp7aW5hY3RpdmU6aSE9PWUuc2xpZGV9LHByb3BzOntpY29uOmUuY29tcHV0ZWRRdWlja05hdkljb24scm91bmQ6ITAsZmxhdDohMCxkZW5zZTohMCxjb2xvcjplLmNvbG9yfSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLmdvVG9TbGlkZShpKX19fSkpfSxhPTA7YTx0aGlzLnNsaWRlc051bWJlcjthKyspcihhKTtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWwtcXVpY2stbmF2IHNjcm9sbCB0ZXh0LWNlbnRlclwiLGNsYXNzOltcInRleHQtXCIrdGhpcy5jb2xvcixcImFic29sdXRlLVwiK3RoaXMucXVpY2tOYXZQb3NpdGlvbl19LHMpfX0sX19nZXRUaHVtYm5haWxzOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT10aGlzLnRodW1ibmFpbHMubWFwKGZ1bmN0aW9uKGkscyl7aWYoaSlyZXR1cm4gdChcImRpdlwiLHtvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLmdvVG9TbGlkZShzKX19fSxbdChcImltZ1wiLHthdHRyczp7c3JjOml9LGNsYXNzOnthY3RpdmU6ZS5zbGlkZT09PXN9fSldKX0pLHM9W3QoUUJ0bix7c3RhdGljQ2xhc3M6XCJxLWNhcm91c2VsLXRodW1ibmFpbC1idG4gYWJzb2x1dGVcIixwcm9wczp7aWNvbjp0aGlzLmNvbXB1dGVkVGh1bWJuYWlsSWNvbixmYWJNaW5pOiEwLGZsYXQ6ITAsY29sb3I6dGhpcy5jb2xvcn0sb246e2NsaWNrOmZ1bmN0aW9uKCl7ZS52aWV3VGh1bWJuYWlscz0hZS52aWV3VGh1bWJuYWlsc319fSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWwtdGh1bWJuYWlscyBzY3JvbGwgYWJzb2x1dGUtYm90dG9tXCIsY2xhc3M6e2FjdGl2ZTp0aGlzLnZpZXdUaHVtYm5haWxzfX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJyb3cgZ3V0dGVyLXhzXCIsY2xhc3M6dGhpcy50aHVtYm5haWxzSG9yaXpvbnRhbD9cIm5vLXdyYXBcIjpcImp1c3RpZnktY2VudGVyXCJ9LGkpXSldO3JldHVybiB0aGlzLnZpZXdUaHVtYm5haWxzJiZzLnVuc2hpZnQodChcImRpdlwiLHtzdGF0aWNDbGFzczpcImFic29sdXRlLWZ1bGxcIixvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLnZpZXdUaHVtYm5haWxzPSExfX19KSksc319LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWxcIixzdHlsZTp0aGlzLmNvbXB1dGVkU3R5bGUsY2xhc3M6e2Z1bGxzY3JlZW46dGhpcy5pbkZ1bGxzY3JlZW59fSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWwtaW5uZXJcIixkaXJlY3RpdmVzOnRoaXMubm9Td2lwZT9udWxsOlt7bmFtZTpcInRvdWNoLXBhblwiLG1vZGlmaWVyczp7aG9yaXpvbnRhbDohMCxwcmV2ZW50OiEwLHN0b3A6ITB9LHZhbHVlOnRoaXMuX19wYW59XX0sW3QoXCJkaXZcIix7cmVmOlwidHJhY2tcIixzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWwtdHJhY2tcIixzdHlsZTp0aGlzLnRyYWNrUG9zaXRpb24sY2xhc3M6e1wiaW5maW5pdGUtbGVmdFwiOnRoaXMuaW5maW5pdGVMZWZ0LFwiaW5maW5pdGUtcmlnaHRcIjp0aGlzLmluZmluaXRlUmlnaHR9fSxbdGhpcy5pbmZpbml0ZVJpZ2h0P3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcm91c2VsLXNsaWRlXCIsc3R5bGU6XCJmbGV4OiAwIDAgMTAwJVwifSk6bnVsbCx0aGlzLiRzbG90cy5kZWZhdWx0LHRoaXMuaW5maW5pdGVMZWZ0P3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNhcm91c2VsLXNsaWRlXCIsc3R5bGU6XCJmbGV4OiAwIDAgMTAwJVwifSk6bnVsbF0pXSksdGhpcy5hcnJvd3M/dChRQnRuLHtzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWwtbGVmdC1hcnJvdyBhYnNvbHV0ZVwiLHByb3BzOntjb2xvcjp0aGlzLmNvbG9yLGljb246dGhpcy5hcnJvd0ljb25bMF0sZmFiTWluaTohMCxmbGF0OiEwfSxkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIix2YWx1ZTp0aGlzLmNhbkdvVG9QcmV2aW91c31dLG9uOntjbGljazp0aGlzLnByZXZpb3VzfX0pOm51bGwsdGhpcy5hcnJvd3M/dChRQnRuLHtzdGF0aWNDbGFzczpcInEtY2Fyb3VzZWwtcmlnaHQtYXJyb3cgYWJzb2x1dGVcIixwcm9wczp7Y29sb3I6dGhpcy5jb2xvcixpY29uOnRoaXMuYXJyb3dJY29uWzFdLGZhYk1pbmk6ITAsZmxhdDohMH0sZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIsdmFsdWU6dGhpcy5jYW5Hb1RvTmV4dH1dLG9uOntjbGljazp0aGlzLm5leHR9fSk6bnVsbCx0aGlzLl9fZ2V0UXVpY2tOYXYodCksdGhpcy5fX2dldFNjb3BlZFNsb3RzKHQpLHRoaXMudGh1bWJuYWlscy5sZW5ndGg/dGhpcy5fX2dldFRodW1ibmFpbHModCk6bnVsbCx0aGlzLiRzbG90cy5jb250cm9sXSl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuX19wbGFuQXV0b1BsYXkoKSx0aGlzLmhhbmRsZUFycm93S2V5cyYmdGhpcy5fX3NldEFycm93S2V5cyghMCksdGhpcy5fX3N0b3BTbGlkZU51bWJlck5vdGlmaWVyPXRoaXMuJHdhdGNoKFwic2xpZGVzTnVtYmVyXCIsZnVuY3Rpb24oZSl7dC52YWx1ZT49ZSYmdC4kZW1pdChcImlucHV0XCIsZS0xKX0se2ltbWVkaWF0ZTohMH0pfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5fX2NsZWFudXAoKSx0aGlzLl9fc3RvcFNsaWRlTnVtYmVyTm90aWZpZXIoKSx0aGlzLmhhbmRsZUFycm93S2V5cyYmdGhpcy5fX3NldEFycm93S2V5cyghMSl9fSxRQ2Fyb3VzZWxTbGlkZT17bmFtZTpcIlFDYXJvdXNlbFNsaWRlXCIsaW5qZWN0OntjYXJvdXNlbDp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRQ2Fyb3VzZWxTbGlkZSBuZWVkcyB0byBiZSBjaGlsZCBvZiBRQ2Fyb3VzZWxcIil9fX0scHJvcHM6e2ltZ1NyYzpTdHJpbmd9LGNvbXB1dGVkOntjb21wdXRlZFN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9e307cmV0dXJuIHRoaXMuaW1nU3JjJiYodC5iYWNrZ3JvdW5kSW1hZ2U9XCJ1cmwoXCIrdGhpcy5pbWdTcmMrXCIpXCIsdC5iYWNrZ3JvdW5kU2l6ZT1cImNvdmVyXCIsdC5iYWNrZ3JvdW5kUG9zaXRpb249XCI1MCVcIiksIXRoaXMuY2Fyb3VzZWwuaW5GdWxsc2NyZWVuJiZ0aGlzLmNhcm91c2VsLmhlaWdodCYmKHQubWF4SGVpZ2h0PXRoaXMuY2Fyb3VzZWwuaGVpZ2h0KSx0fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJvdXNlbC1zbGlkZSByZWxhdGl2ZS1wb3NpdGlvbiBzY3JvbGxcIixzdHlsZTp0aGlzLmNvbXB1dGVkU3R5bGV9LHRoaXMuJHNsb3RzLmRlZmF1bHQpfSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5jYXJvdXNlbC5fX3JlZ2lzdGVyU2xpZGUoKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuY2Fyb3VzZWwuX191bnJlZ2lzdGVyU2xpZGUoKX19LFFDYXJvdXNlbENvbnRyb2w9e25hbWU6XCJRQ2Fyb3VzZWxDb250cm9sXCIscHJvcHM6e3Bvc2l0aW9uOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiYm90dG9tLXJpZ2h0XCJ9LG9mZnNldDp7dHlwZTpBcnJheSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuWzE4LDE4XX19fSxjb21wdXRlZDp7Y29tcHV0ZWRDbGFzczpmdW5jdGlvbigpe3JldHVyblwiYWJzb2x1dGUtXCIrdGhpcy5wb3NpdGlvbn0sY29tcHV0ZWRTdHlsZTpmdW5jdGlvbigpe3JldHVybnttYXJnaW46dGhpcy5vZmZzZXRbMV0rXCJweCBcIit0aGlzLm9mZnNldFswXStcInB4XCJ9fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jYXJvdXNlbC1jb250cm9sIGFic29sdXRlXCIsc3R5bGU6dGhpcy5jb21wdXRlZFN0eWxlLGNsYXNzOnRoaXMuY29tcHV0ZWRDbGFzc30sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRQ2hhdE1lc3NhZ2U9e25hbWU6XCJRQ2hhdE1lc3NhZ2VcIixwcm9wczp7c2VudDpCb29sZWFuLGxhYmVsOlN0cmluZyxiZ0NvbG9yOlN0cmluZyx0ZXh0Q29sb3I6U3RyaW5nLG5hbWU6U3RyaW5nLGF2YXRhcjpTdHJpbmcsdGV4dDpBcnJheSxzdGFtcDpTdHJpbmcsc2l6ZTpTdHJpbmd9LGNvbXB1dGVkOnt0ZXh0Q2xhc3M6ZnVuY3Rpb24oKXtpZih0aGlzLnRleHRDb2xvcilyZXR1cm5cInRleHQtXCIrdGhpcy50ZXh0Q29sb3J9LG1lc3NhZ2VDbGFzczpmdW5jdGlvbigpe2lmKHRoaXMuYmdDb2xvcilyZXR1cm5cInRleHQtXCIrdGhpcy5iZ0NvbG9yfSxzaXplQ2xhc3M6ZnVuY3Rpb24oKXtpZih0aGlzLnNpemUpcmV0dXJuXCJjb2wtXCIrdGhpcy5zaXplfSxjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJue1wicS1tZXNzYWdlLXNlbnRcIjp0aGlzLnNlbnQsXCJxLW1lc3NhZ2UtcmVjZWl2ZWRcIjohdGhpcy5zZW50fX19LG1ldGhvZHM6e19fZ2V0VGV4dDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLnRleHQubWFwKGZ1bmN0aW9uKGkscyl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2UtdGV4dFwiLGNsYXNzOmUubWVzc2FnZUNsYXNzfSxbdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2UtdGV4dC1jb250ZW50XCIsY2xhc3M6ZS50ZXh0Q2xhc3N9LFt0KFwiZGl2XCIse2RvbVByb3BzOntpbm5lckhUTUw6aX19KSxlLnN0YW1wP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2Utc3RhbXBcIixkb21Qcm9wczp7aW5uZXJIVE1MOmUuc3RhbXB9fSk6bnVsbF0pXSl9KX0sX19nZXRNZXNzYWdlOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1tZXNzYWdlLXRleHRcIixjbGFzczp0aGlzLm1lc3NhZ2VDbGFzc30sW3QoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1tZXNzYWdlLXRleHQtY29udGVudFwiLGNsYXNzOnRoaXMudGV4dENsYXNzfSxbdGhpcy4kc2xvdHMuZGVmYXVsdCx0aGlzLnN0YW1wP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2Utc3RhbXBcIixkb21Qcm9wczp7aW5uZXJIVE1MOnRoaXMuc3RhbXB9fSk6bnVsbF0pXSl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2VcIixjbGFzczp0aGlzLmNsYXNzZXN9LFt0aGlzLmxhYmVsP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2UtbGFiZWwgdGV4dC1jZW50ZXJcIixkb21Qcm9wczp7aW5uZXJIVE1MOnRoaXMubGFiZWx9fSk6bnVsbCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1tZXNzYWdlLWNvbnRhaW5lciByb3cgaXRlbXMtZW5kIG5vLXdyYXBcIn0sW3RoaXMuJHNsb3RzLmF2YXRhcnx8KHRoaXMuYXZhdGFyP3QoXCJpbWdcIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2UtYXZhdGFyIGNvbC1hdXRvXCIsYXR0cnM6e3NyYzp0aGlzLmF2YXRhcn19KTpudWxsKSx0KFwiZGl2XCIse2NsYXNzOnRoaXMuc2l6ZUNsYXNzfSxbdGhpcy5uYW1lP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW1lc3NhZ2UtbmFtZVwiLGRvbVByb3BzOntpbm5lckhUTUw6dGhpcy5uYW1lfX0pOm51bGwsdGhpcy50ZXh0P3RoaXMuX19nZXRUZXh0KHQpOm51bGwsdGhpcy4kc2xvdHMuZGVmYXVsdD90aGlzLl9fZ2V0TWVzc2FnZSh0KTpudWxsXSldKV0pfX07ZnVuY3Rpb24gZ2V0RGlyZWN0aW9uJDEodCl7dmFyIGU9e307cmV0dXJuW1wibGVmdFwiLFwicmlnaHRcIixcInVwXCIsXCJkb3duXCIsXCJob3Jpem9udGFsXCIsXCJ2ZXJ0aWNhbFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3RbaV0mJihlW2ldPSEwKX0pLDA9PT1PYmplY3Qua2V5cyhlKS5sZW5ndGg/e2xlZnQ6ITAscmlnaHQ6ITAsdXA6ITAsZG93bjohMCxob3Jpem9udGFsOiEwLHZlcnRpY2FsOiEwfTooZS5ob3Jpem9udGFsJiYoZS5sZWZ0PWUucmlnaHQ9ITApLGUudmVydGljYWwmJihlLnVwPWUuZG93bj0hMCksZS5sZWZ0JiZlLnJpZ2h0JiYoZS5ob3Jpem9udGFsPSEwKSxlLnVwJiZlLmRvd24mJihlLnZlcnRpY2FsPSEwKSxlKX12YXIgVG91Y2hTd2lwZT17bmFtZTpcInRvdWNoLXN3aXBlXCIsYmluZDpmdW5jdGlvbih0LGUpe3ZhciBpPSFlLm1vZGlmaWVycy5ub01vdXNlLHM9e2hhbmRsZXI6ZS52YWx1ZSx0aHJlc2hvbGQ6cGFyc2VJbnQoZS5hcmcsMTApfHwzMDAsZGlyZWN0aW9uOmdldERpcmVjdGlvbiQxKGUubW9kaWZpZXJzKSxtb3VzZVN0YXJ0OmZ1bmN0aW9uKHQpe2xlZnRDbGljayh0KSYmKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixzLm1vdmUpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIscy5tb3VzZUVuZCkscy5zdGFydCh0KSl9LG1vdXNlRW5kOmZ1bmN0aW9uKHQpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixzLm1vdmUpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIscy5tb3VzZUVuZCkscy5lbmQodCl9LHN0YXJ0OmZ1bmN0aW9uKGUpe3ZhciBpPXBvc2l0aW9uKGUpO3MuZXZlbnQ9e3g6aS5sZWZ0LHk6aS50b3AsdGltZToobmV3IERhdGUpLmdldFRpbWUoKSxkZXRlY3RlZDohMSxhYm9ydDohMX0sdC5jbGFzc0xpc3QuYWRkKFwicS10b3VjaFwiKX0sbW92ZTpmdW5jdGlvbih0KXtpZighcy5ldmVudC5hYm9ydClpZigobmV3IERhdGUpLmdldFRpbWUoKS1zLmV2ZW50LnRpbWU+cy50aHJlc2hvbGQpcy5ldmVudC5hYm9ydD0hMDtlbHNle2lmKHMuZXZlbnQuZGV0ZWN0ZWQpcmV0dXJuIHQuc3RvcFByb3BhZ2F0aW9uKCksdm9pZCB0LnByZXZlbnREZWZhdWx0KCk7dmFyIGU9cG9zaXRpb24odCksaT1lLmxlZnQtcy5ldmVudC54LG49TWF0aC5hYnMoaSksbz1lLnRvcC1zLmV2ZW50Lnkscj1NYXRoLmFicyhvKTtuIT09ciYmKHMuZXZlbnQuZGV0ZWN0ZWQ9ITAscy5ldmVudC5hYm9ydD0hKHMuZGlyZWN0aW9uLnZlcnRpY2FsJiZuPHJ8fHMuZGlyZWN0aW9uLmhvcml6b250YWwmJm4+cnx8cy5kaXJlY3Rpb24udXAmJm48ciYmbzwwfHxzLmRpcmVjdGlvbi5kb3duJiZuPHImJm8+MHx8cy5kaXJlY3Rpb24ubGVmdCYmbj5yJiZpPDB8fHMuZGlyZWN0aW9uLnJpZ2h0JiZuPnImJmk+MCkscy5tb3ZlKHQpKX19LGVuZDpmdW5jdGlvbihlKXtpZih0LmNsYXNzTGlzdC5yZW1vdmUoXCJxLXRvdWNoXCIpLCFzLmV2ZW50LmFib3J0JiZzLmV2ZW50LmRldGVjdGVkKXt2YXIgaT0obmV3IERhdGUpLmdldFRpbWUoKS1zLmV2ZW50LnRpbWU7aWYoIShpPnMudGhyZXNob2xkKSl7ZS5zdG9wUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCk7dmFyIG4sbz1wb3NpdGlvbihlKSxyPW8ubGVmdC1zLmV2ZW50LngsYT1NYXRoLmFicyhyKSxsPW8udG9wLXMuZXZlbnQueSxjPU1hdGguYWJzKGwpO2lmKGE+PWMpe2lmKGE8NTApcmV0dXJuO249cjwwP1wibGVmdFwiOlwicmlnaHRcIn1lbHNle2lmKGM8NTApcmV0dXJuO249bDwwP1widXBcIjpcImRvd25cIn1zLmRpcmVjdGlvbltuXSYmcy5oYW5kbGVyKHtldnQ6ZSxkaXJlY3Rpb246bixkdXJhdGlvbjppLGRpc3RhbmNlOnt4OmEseTpjfX0pfX19fTt0Ll9fcXRvdWNoc3dpcGU9cyxpJiZ0LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIixzLm1vdXNlU3RhcnQpLHQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixzLnN0YXJ0KSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIixzLm1vdmUpLHQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoZW5kXCIscy5lbmQpfSx1cGRhdGU6ZnVuY3Rpb24odCxlKXtlLm9sZFZhbHVlIT09ZS52YWx1ZSYmKHQuX19xdG91Y2hzd2lwZS5oYW5kbGVyPWUudmFsdWUpfSx1bmJpbmQ6ZnVuY3Rpb24odCxlKXt2YXIgaT10Ll9fcXRvdWNoc3dpcGU7aSYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLGkubW91c2VTdGFydCksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLGkuc3RhcnQpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLGkubW92ZSksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hlbmRcIixpLmVuZCksZGVsZXRlIHQuX19xdG91Y2hzd2lwZSl9fSxDaGVja2JveE1peGluPXtkaXJlY3RpdmVzOntUb3VjaFN3aXBlOlRvdWNoU3dpcGV9LHByb3BzOnt2YWw6e30sdHJ1ZVZhbHVlOntkZWZhdWx0OiEwfSxmYWxzZVZhbHVlOntkZWZhdWx0OiExfX0sY29tcHV0ZWQ6e2lzVHJ1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsSXNBcnJheT90aGlzLmluZGV4Pi0xOnRoaXMudmFsdWU9PT10aGlzLnRydWVWYWx1ZX0saXNGYWxzZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsSXNBcnJheT8tMT09PXRoaXMuaW5kZXg6dGhpcy52YWx1ZT09PXRoaXMuZmFsc2VWYWx1ZX0saW5kZXg6ZnVuY3Rpb24oKXtpZih0aGlzLm1vZGVsSXNBcnJheSlyZXR1cm4gdGhpcy52YWx1ZS5pbmRleE9mKHRoaXMudmFsKX0sbW9kZWxJc0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSl9fSxtZXRob2RzOnt0b2dnbGU6ZnVuY3Rpb24odCxlKXt2YXIgaTsodm9pZCAwPT09ZSYmKGU9ITApLHRoaXMuZGlzYWJsZXx8dGhpcy5yZWFkb25seSl8fCh0JiZzdG9wQW5kUHJldmVudCh0KSxlJiZ0aGlzLiRlbC5ibHVyKCksdGhpcy5tb2RlbElzQXJyYXk/dGhpcy5pc1RydWU/KGk9dGhpcy52YWx1ZS5zbGljZSgpKS5zcGxpY2UodGhpcy5pbmRleCwxKTppPXRoaXMudmFsdWUuY29uY2F0KHRoaXMudmFsKTppPXRoaXMuaXNUcnVlP3RoaXMudG9nZ2xlSW5kZXRlcm1pbmF0ZT90aGlzLmluZGV0ZXJtaW5hdGVWYWx1ZTp0aGlzLmZhbHNlVmFsdWU6dGhpcy5pc0ZhbHNlP3RoaXMudHJ1ZVZhbHVlOnRoaXMuZmFsc2VWYWx1ZSx0aGlzLl9fdXBkYXRlKGkpKX19fSxPcHRpb25NaXhpbj17cHJvcHM6e3ZhbHVlOntyZXF1aXJlZDohMH0sbGFiZWw6U3RyaW5nLGxlZnRMYWJlbDpCb29sZWFuLGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSxrZWVwQ29sb3I6Qm9vbGVhbixkYXJrOkJvb2xlYW4sZGlzYWJsZTpCb29sZWFuLHJlYWRvbmx5OkJvb2xlYW4sbm9Gb2N1czpCb29sZWFuLGNoZWNrZWRJY29uOlN0cmluZyx1bmNoZWNrZWRJY29uOlN0cmluZ30sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5fX2tlYmFiVGFnLHtkaXNhYmxlZDp0aGlzLmRpc2FibGUscmV2ZXJzZTp0aGlzLmxlZnRMYWJlbCxcInEtZm9jdXNhYmxlXCI6dGhpcy5mb2N1c2FibGV9XX0saW5uZXJDbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNUcnVlfHx0aGlzLmlzSW5kZXRlcm1pbmF0ZT9bXCJhY3RpdmVcIixcInRleHQtXCIrdGhpcy5jb2xvcl06XCJ0ZXh0LVwiKyh0aGlzLmtlZXBDb2xvcj90aGlzLmNvbG9yOnRoaXMuZGFyaz9cImxpZ2h0XCI6XCJmYWRlZFwiKX0sZm9jdXNhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMubm9Gb2N1cyYmIXRoaXMuZGlzYWJsZSYmIXRoaXMucmVhZG9ubHl9LHRhYmluZGV4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZm9jdXNhYmxlPzA6LTF9fSxtZXRob2RzOntfX3VwZGF0ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dGhpcy4kcmVmcy5yaXBwbGU7aSYmKGkuY2xhc3NMaXN0LmFkZChcImFjdGl2ZVwiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS5jbGFzc0xpc3QucmVtb3ZlKFwiYWN0aXZlXCIpfSwxMCkpLHRoaXMuJGVtaXQoXCJpbnB1dFwiLHQpLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkodCkhPT1KU09OLnN0cmluZ2lmeShlLnZhbHVlKSYmZS4kZW1pdChcImNoYW5nZVwiLHQpfSl9LF9faGFuZGxlS2V5RG93bjpmdW5jdGlvbih0KXtbMTMsMzJdLmluY2x1ZGVzKGdldEV2ZW50S2V5KHQpKSYmdGhpcy50b2dnbGUodCwhMSl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtb3B0aW9uIGN1cnNvci1wb2ludGVyIG5vLW91dGxpbmUgcm93IGlubGluZSBuby13cmFwIGl0ZW1zLWNlbnRlclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7dGFiaW5kZXg6dGhpcy50YWJpbmRleH0sb246e2NsaWNrOnRoaXMudG9nZ2xlLGZvY3VzOmZ1bmN0aW9uKCl7ZS4kZW1pdChcImZvY3VzXCIpfSxibHVyOmZ1bmN0aW9uKCl7ZS4kZW1pdChcImJsdXJcIil9LGtleWRvd246dGhpcy5fX2hhbmRsZUtleURvd259LGRpcmVjdGl2ZXM6XCJxLXRvZ2dsZVwiIT09dGhpcy5fX2tlYmFiVGFnfHx0aGlzLmRpc2FibGV8fHRoaXMucmVhZG9ubHk/bnVsbDpbe25hbWU6XCJ0b3VjaC1zd2lwZVwiLG1vZGlmaWVyczp7aG9yaXpvbnRhbDohMH0sdmFsdWU6dGhpcy5fX3N3aXBlfV19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1vcHRpb24taW5uZXIgcmVsYXRpdmUtcG9zaXRpb25cIixjbGFzczp0aGlzLmlubmVyQ2xhc3Nlc30sW3QoXCJpbnB1dFwiLHthdHRyczp7dHlwZTpcImNoZWNrYm94XCJ9LG9uOntjaGFuZ2U6dGhpcy50b2dnbGV9fSksdGhpcy4kcS5wbGF0Zm9ybS5pcy5kZXNrdG9wP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWZvY3VzLWhlbHBlclwiLGNsYXNzOlwicS1yYWRpb1wiPT09dGhpcy5fX2tlYmFiVGFnP1wicS1mb2N1cy1oZWxwZXItcm91bmRcIjpcInEtZm9jdXMtaGVscGVyLXJvdW5kZWRcIn0pOm51bGwsdGhpcy5fX2dldENvbnRlbnQodCldKSx0aGlzLmxhYmVsP3QoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1vcHRpb24tbGFiZWxcIixkb21Qcm9wczp7aW5uZXJIVE1MOnRoaXMubGFiZWx9fSk6bnVsbCx0aGlzLiRzbG90cy5kZWZhdWx0XSl9fSxRQ2hlY2tib3g9e25hbWU6XCJRQ2hlY2tib3hcIixtaXhpbnM6W0NoZWNrYm94TWl4aW4sT3B0aW9uTWl4aW5dLHByb3BzOnt0b2dnbGVJbmRldGVybWluYXRlOkJvb2xlYW4saW5kZXRlcm1pbmF0ZVZhbHVlOntkZWZhdWx0Om51bGx9LGluZGV0ZXJtaW5hdGVJY29uOlN0cmluZ30sY29tcHV0ZWQ6e2lzSW5kZXRlcm1pbmF0ZTpmdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzLnZhbHVlfHx0aGlzLnZhbHVlPT09dGhpcy5pbmRldGVybWluYXRlVmFsdWV9LGNoZWNrZWRTdHlsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVHJ1ZT97dHJhbnNpdGlvbjpcIm9wYWNpdHkgMG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSAwbXMsIHRyYW5zZm9ybSA4MDBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSkgMG1zXCIsb3BhY2l0eToxLHRyYW5zZm9ybTpcInNjYWxlKDEpXCJ9Ont0cmFuc2l0aW9uOlwib3BhY2l0eSA0NTBtcyBjdWJpYy1iZXppZXIoMC4yMywgMSwgMC4zMiwgMSkgMG1zLCB0cmFuc2Zvcm0gMG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSA0NTBtc1wiLG9wYWNpdHk6MCx0cmFuc2Zvcm06XCJzY2FsZSgwKVwifX0saW5kZXRlcm1pbmF0ZVN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmRldGVybWluYXRlP3t0cmFuc2l0aW9uOlwib3BhY2l0eSAwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpIDBtcywgdHJhbnNmb3JtIDgwMG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSAwbXNcIixvcGFjaXR5OjEsdHJhbnNmb3JtOlwic2NhbGUoMSlcIn06e3RyYW5zaXRpb246XCJvcGFjaXR5IDQ1MG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSAwbXMsIHRyYW5zZm9ybSAwbXMgY3ViaWMtYmV6aWVyKDAuMjMsIDEsIDAuMzIsIDEpIDQ1MG1zXCIsb3BhY2l0eTowLHRyYW5zZm9ybTpcInNjYWxlKDApXCJ9fSx1bmNoZWNrZWRTdHlsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzRmFsc2U/e29wYWNpdHk6MX06e3RyYW5zaXRpb246XCJvcGFjaXR5IDY1MG1zIGN1YmljLWJlemllcigwLjIzLCAxLCAwLjMyLCAxKSAxNTBtc1wiLG9wYWNpdHk6MH19fSxtZXRob2RzOntfX2dldENvbnRlbnQ6ZnVuY3Rpb24odCl7cmV0dXJuW3QoUUljb24se3N0YXRpY0NsYXNzOlwicS1jaGVja2JveC1pY29uIGN1cnNvci1wb2ludGVyXCIscHJvcHM6e25hbWU6dGhpcy51bmNoZWNrZWRJY29ufHx0aGlzLiRxLmljb24uY2hlY2tib3gudW5jaGVja2VkLm1hdH0sc3R5bGU6dGhpcy51bmNoZWNrZWRTdHlsZX0pLHQoUUljb24se3N0YXRpY0NsYXNzOlwicS1jaGVja2JveC1pY29uIGN1cnNvci1wb2ludGVyIGFic29sdXRlLWZ1bGxcIixwcm9wczp7bmFtZTp0aGlzLmluZGV0ZXJtaW5hdGVJY29ufHx0aGlzLiRxLmljb24uY2hlY2tib3guaW5kZXRlcm1pbmF0ZS5tYXR9LHN0eWxlOnRoaXMuaW5kZXRlcm1pbmF0ZVN0eWxlfSksdChRSWNvbix7c3RhdGljQ2xhc3M6XCJxLWNoZWNrYm94LWljb24gY3Vyc29yLXBvaW50ZXIgYWJzb2x1dGUtZnVsbFwiLHByb3BzOntuYW1lOnRoaXMuY2hlY2tlZEljb258fHRoaXMuJHEuaWNvbi5jaGVja2JveC5jaGVja2VkLm1hdH0sc3R5bGU6dGhpcy5jaGVja2VkU3R5bGV9KSx0KFwiZGl2XCIse3JlZjpcInJpcHBsZVwiLHN0YXRpY0NsYXNzOlwicS1yYWRpYWwtcmlwcGxlXCJ9KV19fSxiZWZvcmVDcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9fa2ViYWJUYWc9XCJxLWNoZWNrYm94XCJ9fSxRQ2hpcD17bmFtZTpcIlFDaGlwXCIscHJvcHM6e3NtYWxsOkJvb2xlYW4sZGVuc2U6Qm9vbGVhbix0YWc6Qm9vbGVhbixzcXVhcmU6Qm9vbGVhbixmbG9hdGluZzpCb29sZWFuLHBvaW50aW5nOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1widXBcIixcInJpZ2h0XCIsXCJkb3duXCIsXCJsZWZ0XCJdLmluY2x1ZGVzKHQpfX0sY29sb3I6U3RyaW5nLHRleHRDb2xvcjpTdHJpbmcsaWNvbjpTdHJpbmcsaWNvblJpZ2h0OlN0cmluZyxhdmF0YXI6U3RyaW5nLGNsb3NhYmxlOkJvb2xlYW4sZGV0YWlsOkJvb2xlYW59LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPVtdO3JldHVybiB0aGlzLnBvaW50aW5nJiZlLnB1c2goXCJxLWNoaXAtcG9pbnRpbmctXCIrdGhpcy5wb2ludGluZyksW1widGFnXCIsXCJzcXVhcmVcIixcImZsb2F0aW5nXCIsXCJwb2ludGluZ1wiLFwic21hbGxcIixcImRlbnNlXCJdLmZvckVhY2goZnVuY3Rpb24oaSl7dFtpXSYmZS5wdXNoKFwicS1jaGlwLVwiK2kpfSksdGhpcy5mbG9hdGluZyYmKCF0aGlzLmRlbnNlJiZlLnB1c2goXCJxLWNoaXAtZGVuc2VcIiksIXRoaXMuc3F1YXJlJiZlLnB1c2goXCJxLWNoaXAtc3F1YXJlXCIpKSx0aGlzLmNvbG9yJiYoZS5wdXNoKFwiYmctXCIrdGhpcy5jb2xvciksIXRoaXMudGV4dENvbG9yJiZlLnB1c2goXCJ0ZXh0LXdoaXRlXCIpKSx0aGlzLnRleHRDb2xvciYmZS5wdXNoKFwidGV4dC1cIit0aGlzLnRleHRDb2xvciksZX19LG1ldGhvZHM6e19fb25DbGljazpmdW5jdGlvbih0KXt0aGlzLiRlbWl0KFwiY2xpY2tcIix0KX0sX19vbk1vdXNlRG93bjpmdW5jdGlvbih0KXt0aGlzLiRlbWl0KFwiZm9jdXNcIix0KX0sX19oYW5kbGVLZXlEb3duOmZ1bmN0aW9uKHQpe3RoaXMuY2xvc2FibGUmJls4LDEzLDMyXS5pbmNsdWRlcyhnZXRFdmVudEtleSh0KSkmJihzdG9wQW5kUHJldmVudCh0KSx0aGlzLiRlbWl0KFwiaGlkZVwiKSl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY2hpcCByb3cgbm8td3JhcCBpbmxpbmUgaXRlbXMtY2VudGVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLG9uOnttb3VzZWRvd246dGhpcy5fX29uTW91c2VEb3duLHRvdWNoc3RhcnQ6dGhpcy5fX29uTW91c2VEb3duLGNsaWNrOnRoaXMuX19vbkNsaWNrLGtleWRvd246dGhpcy5fX2hhbmRsZUtleURvd259fSxbdGhpcy5pY29ufHx0aGlzLmF2YXRhcj90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jaGlwLXNpZGUgcS1jaGlwLWxlZnQgcm93IGZsZXgtY2VudGVyXCIsY2xhc3M6e1wicS1jaGlwLWRldGFpbFwiOnRoaXMuZGV0YWlsfX0sW3RoaXMuaWNvbj90KFFJY29uLHtzdGF0aWNDbGFzczpcInEtY2hpcC1pY29uXCIscHJvcHM6e25hbWU6dGhpcy5pY29ufX0pOnRoaXMuYXZhdGFyP3QoXCJpbWdcIix7YXR0cnM6e3NyYzp0aGlzLmF2YXRhcn19KTpudWxsXSk6bnVsbCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jaGlwLW1haW4gZWxsaXBzaXMgcS1wb3B1cC0tc2tpcFwifSx0aGlzLiRzbG90cy5kZWZhdWx0KSx0aGlzLmljb25SaWdodD90KFFJY29uLHtwcm9wczp7bmFtZTp0aGlzLmljb25SaWdodH0sY2xhc3M6dGhpcy5jbG9zYWJsZT9cIm9uLXJpZ2h0IHEtY2hpcC1pY29uXCI6XCJxLWNoaXAtc2lkZSBxLWNoaXAtcmlnaHRcIn0pOm51bGwsdGhpcy5jbG9zYWJsZT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jaGlwLXNpZGUgcS1jaGlwLWNsb3NlIHEtY2hpcC1yaWdodCByb3cgZmxleC1jZW50ZXJcIn0sW3QoUUljb24se3Byb3BzOntuYW1lOnRoaXMuJHEuaWNvbi5jaGlwLmNsb3NlfSxzdGF0aWNDbGFzczpcImN1cnNvci1wb2ludGVyXCIsbmF0aXZlT246e2NsaWNrOmZ1bmN0aW9uKHQpe3QmJnQuc3RvcFByb3BhZ2F0aW9uKCksZS4kZW1pdChcImhpZGVcIil9fX0pXSk6bnVsbF0pfX0sbWFyZ2luYWw9e3R5cGU6QXJyYXksdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0LmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVyblwiaWNvblwiaW4gdH0pfX0sRnJhbWVNaXhpbj17bWl4aW5zOltBbGlnbk1peGluXSxwcm9wczp7cHJlZml4OlN0cmluZyxzdWZmaXg6U3RyaW5nLHN0YWNrTGFiZWw6U3RyaW5nLGZsb2F0TGFiZWw6U3RyaW5nLHBsYWNlaG9sZGVyOlN0cmluZyxlcnJvcjpCb29sZWFuLHdhcm5pbmc6Qm9vbGVhbixkaXNhYmxlOkJvb2xlYW4scmVhZG9ubHk6Qm9vbGVhbixjbGVhcmFibGU6Qm9vbGVhbixjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sYWxpZ246e2RlZmF1bHQ6XCJsZWZ0XCJ9LGRhcms6Qm9vbGVhbixiZWZvcmU6bWFyZ2luYWwsYWZ0ZXI6bWFyZ2luYWwsaW52ZXJ0ZWQ6Qm9vbGVhbixpbnZlcnRlZExpZ2h0OkJvb2xlYW4saGlkZVVuZGVybGluZTpCb29sZWFuLGNsZWFyVmFsdWU6e30sbm9QYXJlbnRGaWVsZDpCb29sZWFufSxjb21wdXRlZDp7aW5wdXRQbGFjZWhvbGRlcjpmdW5jdGlvbigpe2lmKCF0aGlzLmZsb2F0TGFiZWwmJiF0aGlzLnN0YWNrTGFiZWx8fHRoaXMubGFiZWxJc0Fib3ZlKXJldHVybiB0aGlzLnBsYWNlaG9sZGVyfSxpc0ludmVydGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW52ZXJ0ZWR8fHRoaXMuaW52ZXJ0ZWRMaWdodH0saXNJbnZlcnRlZExpZ2h0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbnZlcnRlZCYmKHRoaXMuaW52ZXJ0ZWRMaWdodCYmIXRoaXMuaGFzRXJyb3J8fHRoaXMuaW52ZXJ0ZWQmJnRoaXMuaGFzV2FybmluZyl9LGlzU3RhbmRhcmQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5pc0ludmVydGVkfSxpc0hpZGVVbmRlcmxpbmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1N0YW5kYXJkJiZ0aGlzLmhpZGVVbmRlcmxpbmV9LGxhYmVsSXNBYm92ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZvY3VzZWR8fHRoaXMubGVuZ3RofHx0aGlzLmFkZGl0aW9uYWxMZW5ndGh8fHRoaXMuc3RhY2tMYWJlbH0saGFzQ29udGVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aD4wfHx0aGlzLmFkZGl0aW9uYWxMZW5ndGg+MHx8dGhpcy5wbGFjZWhvbGRlcnx8MD09PXRoaXMucGxhY2Vob2xkZXJ9LGVkaXRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZGlzYWJsZSYmIXRoaXMucmVhZG9ubHl9LGNvbXB1dGVkQ2xlYXJWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzLmNsZWFyVmFsdWU/bnVsbDp0aGlzLmNsZWFyVmFsdWV9LGlzQ2xlYXJhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRpdGFibGUmJnRoaXMuY2xlYXJhYmxlJiZ0aGlzLmNvbXB1dGVkQ2xlYXJWYWx1ZSE9PXRoaXMubW9kZWx9LGhhc0Vycm9yOmZ1bmN0aW9uKCl7cmV0dXJuISEoIXRoaXMubm9QYXJlbnRGaWVsZCYmdGhpcy5maWVsZCYmdGhpcy5maWVsZC5lcnJvcnx8dGhpcy5lcnJvcil9LGhhc1dhcm5pbmc6ZnVuY3Rpb24oKXtyZXR1cm4hKHRoaXMuaGFzRXJyb3J8fCEoIXRoaXMubm9QYXJlbnRGaWVsZCYmdGhpcy5maWVsZCYmdGhpcy5maWVsZC53YXJuaW5nfHx0aGlzLndhcm5pbmcpKX0sZmFrZUlucHV0VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hY3R1YWxWYWx1ZXx8MD09PXRoaXMuYWN0dWFsVmFsdWU/dGhpcy5hY3R1YWxWYWx1ZTp0aGlzLnBsYWNlaG9sZGVyfHwwPT09dGhpcy5wbGFjZWhvbGRlcj90aGlzLnBsYWNlaG9sZGVyOlwiXCJ9LGZha2VJbnB1dENsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmFjdHVhbFZhbHVlfHwwPT09dGhpcy5hY3R1YWxWYWx1ZTtyZXR1cm5bdGhpcy5hbGlnbkNsYXNzLHtpbnZpc2libGU6KHRoaXMuc3RhY2tMYWJlbHx8dGhpcy5mbG9hdExhYmVsKSYmIXRoaXMubGFiZWxJc0Fib3ZlJiYhdCxcInEtaW5wdXQtdGFyZ2V0LXBsYWNlaG9sZGVyXCI6IXQmJnRoaXMuaW5wdXRQbGFjZWhvbGRlcn1dfX0sbWV0aG9kczp7Y2xlYXI6ZnVuY3Rpb24odCl7aWYodGhpcy5lZGl0YWJsZSl7dCYmc3RvcEFuZFByZXZlbnQodCk7dmFyIGU9dGhpcy5jb21wdXRlZENsZWFyVmFsdWU7dGhpcy5fX3NldE1vZGVsJiZ0aGlzLl9fc2V0TW9kZWwoZSwhMCksdGhpcy4kZW1pdChcImNsZWFyXCIsZSl9fX19LElucHV0TWl4aW49e3Byb3BzOnthdXRvZm9jdXM6W0Jvb2xlYW4sU3RyaW5nXSxtYXhIZWlnaHQ6TnVtYmVyLGxvYWRpbmc6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybntmb2N1c2VkOiExLHRpbWVyOm51bGwsaXNOdW1iZXJFcnJvcjohMSxpc05lZ1plcm86ITF9fSxtZXRob2RzOntmb2N1czpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZXx8dGhpcy4kcmVmcy5pbnB1dC5mb2N1cygpfSxibHVyOmZ1bmN0aW9uKCl7dGhpcy4kcmVmcy5pbnB1dCYmdGhpcy4kcmVmcy5pbnB1dC5ibHVyKCl9LHNlbGVjdDpmdW5jdGlvbigpe3RoaXMuJHJlZnMuaW5wdXQuc2VsZWN0KCl9LF9fb25Gb2N1czpmdW5jdGlvbih0KXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5mb2N1c2VkfHwodGhpcy5mb2N1c2VkPSEwLHRoaXMuJHJlZnMuaW5wdXQmJnRoaXMuJHJlZnMuaW5wdXQuZm9jdXMoKSx0aGlzLiRlbWl0KFwiZm9jdXNcIix0KSl9LF9fb25JbnB1dEJsdXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5fX29uQmx1cih0KX0sMjAwKX0sX19vbkJsdXI6ZnVuY3Rpb24odCxlKXt0aGlzLmZvY3VzZWQmJih0aGlzLmZvY3VzZWQ9ITEsdGhpcy4kZW1pdChcImJsdXJcIix0KSksdGhpcy5fX2VtaXQoZSl9LF9fZW1pdDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dGhpcy5pc051bWJlciYmdGhpcy5pc051bWJlckVycm9yLHM9aT90aGlzLmlzTmVnWmVybz8tMDpudWxsOnRoaXMubW9kZWw7dGhpcy5pc051bWJlciYmKHRoaXMubW9kZWw9dGhpcy52YWx1ZSksaSYmdGhpcy4kZW1pdChcImlucHV0XCIscyk7dmFyIG49ZnVuY3Rpb24oKXtlLmlzTnVtYmVyPyhzPXBhcnNlRmxvYXQocyksTnVtYmVyLmlzSW50ZWdlcihlLmRlY2ltYWxzKSYmKHM9cGFyc2VGbG9hdChzLnRvRml4ZWQoZS5kZWNpbWFscykpKSxTdHJpbmcoMS9zKSE9PVN0cmluZygxL2UudmFsdWUpJiZlLiRlbWl0KFwiY2hhbmdlXCIscykpOkpTT04uc3RyaW5naWZ5KHMpIT09SlNPTi5zdHJpbmdpZnkoZS52YWx1ZSkmJmUuJGVtaXQoXCJjaGFuZ2VcIixzKX07dD9uKCk6dGhpcy4kbmV4dFRpY2sobil9LF9fb25LZXlkb3duOmZ1bmN0aW9uKHQpezEzPT09dC5rZXlDb2RlJiYoXCJ0ZXh0YXJlYVwiPT09dGhpcy50eXBlP3Quc3RvcFByb3BhZ2F0aW9uKCk6dGhpcy5fX2VtaXQoKSksdGhpcy4kZW1pdChcImtleWRvd25cIix0KX0sX19vbktleXVwOmZ1bmN0aW9uKHQpe3RoaXMuJGVtaXQoXCJrZXl1cFwiLHQpfSxfX29uQ2xpY2s6ZnVuY3Rpb24odCl7dGhpcy5mb2N1cygpLHRoaXMuJGVtaXQoXCJjbGlja1wiLHQpfSxfX29uUGFzdGU6ZnVuY3Rpb24odCl7dGhpcy4kZW1pdChcInBhc3RlXCIsdCl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3ZhciBlPXQuJHJlZnMuaW5wdXQ7dC5hdXRvZm9jdXMmJmUmJihlLmZvY3VzKCksXCJzZWxlY3RcIj09PXQuYXV0b2ZvY3VzJiZlLnNlbGVjdCgpKX0pfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZm9jdXNlZCYmdGhpcy5fX29uQmx1cih2b2lkIDAsITApfX0sUGFyZW50RmllbGRNaXhpbj17aW5qZWN0OntmaWVsZDp7ZnJvbTpcIl9fZmllbGRcIixkZWZhdWx0Om51bGx9fSxwcm9wczp7bm9QYXJlbnRGaWVsZDpCb29sZWFufSx3YXRjaDp7bm9QYXJlbnRGaWVsZDpmdW5jdGlvbih0KXt0aGlzLmZpZWxkJiZ0aGlzLmZpZWxkW3Q/XCJfX3JlZ2lzdGVySW5wdXRcIjpcIl9fdW5yZWdpc3RlcklucHV0XCJdKHRoaXMpfX0sYmVmb3JlTW91bnQ6ZnVuY3Rpb24oKXshdGhpcy5ub1BhcmVudEZpZWxkJiZ0aGlzLmZpZWxkJiZ0aGlzLmZpZWxkLl9fcmVnaXN0ZXJJbnB1dCh0aGlzKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpeyF0aGlzLm5vUGFyZW50RmllbGQmJnRoaXMuZmllbGQmJnRoaXMuZmllbGQuX191bnJlZ2lzdGVySW5wdXQodGhpcyl9fSxRSW5wdXRGcmFtZT17bmFtZTpcIlFJbnB1dEZyYW1lXCIsbWl4aW5zOltGcmFtZU1peGluLFBhcmVudEZpZWxkTWl4aW5dLHByb3BzOntmb2N1c2VkOkJvb2xlYW4sbGVuZ3RoOk51bWJlcixmb2N1c2FibGU6Qm9vbGVhbixhZGRpdGlvbmFsTGVuZ3RoOkJvb2xlYW59LGNvbXB1dGVkOntoYXNTdGFja0xhYmVsOmZ1bmN0aW9uKCl7cmV0dXJuXCJzdHJpbmdcIj09dHlwZW9mIHRoaXMuc3RhY2tMYWJlbCYmdGhpcy5zdGFja0xhYmVsLmxlbmd0aD4wfSxoYXNMYWJlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhhc1N0YWNrTGFiZWx8fFwic3RyaW5nXCI9PXR5cGVvZiB0aGlzLmZsb2F0TGFiZWwmJnRoaXMuZmxvYXRMYWJlbC5sZW5ndGg+MH0sbGFiZWw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNTdGFja0xhYmVsP3RoaXMuc3RhY2tMYWJlbDp0aGlzLmZsb2F0TGFiZWx9LGFkZG9uQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm57XCJxLWlmLWFkZG9uLXZpc2libGVcIjohdGhpcy5oYXNMYWJlbHx8dGhpcy5sYWJlbElzQWJvdmV9fSxjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W3tcInEtaWYtaGFzLWxhYmVsXCI6dGhpcy5sYWJlbCxcInEtaWYtZm9jdXNlZFwiOnRoaXMuZm9jdXNlZCxcInEtaWYtZXJyb3JcIjp0aGlzLmhhc0Vycm9yLFwicS1pZi13YXJuaW5nXCI6dGhpcy5oYXNXYXJuaW5nLFwicS1pZi1kaXNhYmxlZFwiOnRoaXMuZGlzYWJsZSxcInEtaWYtcmVhZG9ubHlcIjp0aGlzLnJlYWRvbmx5LFwicS1pZi1mb2N1c2FibGVcIjp0aGlzLmZvY3VzYWJsZSYmIXRoaXMuZGlzYWJsZSxcInEtaWYtaW52ZXJ0ZWRcIjp0aGlzLmlzSW52ZXJ0ZWQsXCJxLWlmLWludmVydGVkLWxpZ2h0XCI6dGhpcy5pc0ludmVydGVkTGlnaHQsXCJxLWlmLWxpZ2h0LWNvbG9yXCI6dGhpcy5saWdodENvbG9yLFwicS1pZi1kYXJrXCI6dGhpcy5kYXJrLFwicS1pZi1oaWRlLXVuZGVybGluZVwiOnRoaXMuaXNIaWRlVW5kZXJsaW5lLFwicS1pZi1zdGFuZGFyZFwiOnRoaXMuaXNTdGFuZGFyZCxcInEtaWYtaGFzLWNvbnRlbnRcIjp0aGlzLmhhc0NvbnRlbnR9XSxlPXRoaXMuaGFzRXJyb3I/XCJuZWdhdGl2ZVwiOnRoaXMuaGFzV2FybmluZz9cIndhcm5pbmdcIjp0aGlzLmNvbG9yO3JldHVybiB0aGlzLmlzSW52ZXJ0ZWQ/KHQucHVzaChcImJnLVwiK2UpLHQucHVzaChcInRleHQtXCIrKHRoaXMuaXNJbnZlcnRlZExpZ2h0P1wiYmxhY2tcIjpcIndoaXRlXCIpKSk6ZSYmdC5wdXNoKFwidGV4dC1cIitlKSx0fX0sbWV0aG9kczp7X19vbkNsaWNrOmZ1bmN0aW9uKHQpe3RoaXMuJGVtaXQoXCJjbGlja1wiLHQpfSxfX29uTW91c2VEb3duOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7IXRoaXMuZGlzYWJsZSYmdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtyZXR1cm4gZS4kZW1pdChcImZvY3VzXCIsdCl9KX0sX19hZGRpdGlvbmFsSGlkZGVuOmZ1bmN0aW9uKHQsZSxpLHMpe3JldHVybiB2b2lkIDAhPT10LmNvbmRpdGlvbj8hMT09PXQuY29uZGl0aW9uOnZvaWQgMCE9PXQuY29udGVudCYmIXQuY29udGVudD09cz4wfHx2b2lkIDAhPT10LmVycm9yJiYhdC5lcnJvcj09PWV8fHZvaWQgMCE9PXQud2FybmluZyYmIXQud2FybmluZz09PWl9LF9fYmFIYW5kbGVyOmZ1bmN0aW9uKHQsZSl7ZS5hbGxvd1Byb3BhZ2F0aW9ufHx0LnN0b3BQcm9wYWdhdGlvbigpLGUuaGFuZGxlciYmZS5oYW5kbGVyKHQpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWlmIHJvdyBuby13cmFwIHJlbGF0aXZlLXBvc2l0aW9uXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt0YWJpbmRleDp0aGlzLmZvY3VzYWJsZSYmIXRoaXMuZGlzYWJsZT8wOi0xfSxvbjp7Y2xpY2s6dGhpcy5fX29uQ2xpY2t9fSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaWYtYmFzZWxpbmVcIn0sXCJ8XCIpLHRoaXMuYmVmb3JlJiZ0aGlzLmJlZm9yZS5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIHQoUUljb24se2tleTpcImJcIitpLmljb24sc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2wgcS1pZi1jb250cm9sLWJlZm9yZVwiLGNsYXNzOltpLmNsYXNzLHtoaWRkZW46ZS5fX2FkZGl0aW9uYWxIaWRkZW4oaSxlLmhhc0Vycm9yLGUuaGFzV2FybmluZyxlLmxlbmd0aCl9XSxwcm9wczp7bmFtZTppLmljb259LG5hdGl2ZU9uOnttb3VzZWRvd246ZS5fX29uTW91c2VEb3duLHRvdWNoc3RhcnQ6ZS5fX29uTW91c2VEb3duLGNsaWNrOmZ1bmN0aW9uKHQpe2UuX19iYUhhbmRsZXIodCxpKX19fSl9KXx8dm9pZCAwLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWlmLWlubmVyIGNvbCBjb2x1bW4gcS1wb3B1cC0tc2tpcFwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJvdyBuby13cmFwIHJlbGF0aXZlLXBvc2l0aW9uXCJ9LFt0aGlzLnByZWZpeCYmdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLWlmLWFkZG9uIHEtaWYtYWRkb24tbGVmdFwiLGNsYXNzOnRoaXMuYWRkb25DbGFzcyxkb21Qcm9wczp7aW5uZXJIVE1MOnRoaXMucHJlZml4fX0pfHx2b2lkIDAsdGhpcy5oYXNMYWJlbCYmdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaWYtbGFiZWxcIixjbGFzczp7XCJxLWlmLWxhYmVsLWFib3ZlXCI6dGhpcy5sYWJlbElzQWJvdmV9fSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaWYtbGFiZWwtaW5uZXIgZWxsaXBzaXNcIixkb21Qcm9wczp7aW5uZXJIVE1MOnRoaXMubGFiZWx9fSldKXx8dm9pZCAwXS5jb25jYXQodGhpcy4kc2xvdHMuZGVmYXVsdCkuY29uY2F0KFt0aGlzLnN1ZmZpeCYmdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLWlmLWFkZG9uIHEtaWYtYWRkb24tcmlnaHRcIixjbGFzczp0aGlzLmFkZG9uQ2xhc3MsZG9tUHJvcHM6e2lubmVySFRNTDp0aGlzLnN1ZmZpeH19KXx8dm9pZCAwXSkpLHRoaXMuaGFzTGFiZWwmJnQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWlmLWxhYmVsLXNwYWNlclwiLGRvbVByb3BzOntpbm5lckhUTUw6dGhpcy5sYWJlbH19KXx8dm9pZCAwXSksdGhpcy5hZnRlciYmdGhpcy5hZnRlci5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIHQoUUljb24se2tleTpcImFcIitpLmljb24sc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixjbGFzczpbaS5jbGFzcyx7aGlkZGVuOmUuX19hZGRpdGlvbmFsSGlkZGVuKGksZS5oYXNFcnJvcixlLmhhc1dhcm5pbmcsZS5sZW5ndGgpfV0scHJvcHM6e25hbWU6aS5pY29ufSxuYXRpdmVPbjp7bW91c2Vkb3duOmUuX19vbk1vdXNlRG93bix0b3VjaHN0YXJ0OmUuX19vbk1vdXNlRG93bixjbGljazpmdW5jdGlvbih0KXtlLl9fYmFIYW5kbGVyKHQsaSl9fX0pfSl8fHZvaWQgMF0uY29uY2F0KHRoaXMuJHNsb3RzLmFmdGVyKSl9fSxRQ2hpcHNJbnB1dD17bmFtZTpcIlFDaGlwc0lucHV0XCIsbWl4aW5zOltGcmFtZU1peGluLElucHV0TWl4aW5dLHByb3BzOnt2YWx1ZTp7dHlwZTpBcnJheSxyZXF1aXJlZDohMH0sY2hpcHNDb2xvcjpTdHJpbmcsY2hpcHNCZ0NvbG9yOlN0cmluZyxyZWFkb25seTpCb29sZWFuLGFkZEljb246U3RyaW5nLHVwcGVyQ2FzZTpCb29sZWFuLGxvd2VyQ2FzZTpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm57aW5wdXQ6XCJcIixtb2RlbDp0aGlzLnZhbHVlLnNsaWNlKCksd2F0Y2hlcjpudWxsLHNoYWRvdzp7dmFsOnRoaXMuaW5wdXQsc2V0OnRoaXMuYWRkLHNldE5hdjpmdW5jdGlvbihlKXt0LmlucHV0PWV9LGxvYWRpbmc6ITEsc2VsZWN0aW9uT3BlbjohMSx3YXRjaGVkOjAsaXNFZGl0YWJsZTpmdW5jdGlvbigpe3JldHVybiB0LmVkaXRhYmxlfSxpc0Rhcms6ZnVuY3Rpb24oKXtyZXR1cm4gdC5kYXJrfSxoYXNGb2N1czpmdW5jdGlvbigpe3JldHVybiBkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dC4kcmVmcy5pbnB1dH0scmVnaXN0ZXI6ZnVuY3Rpb24oKXt0LnNoYWRvdy53YXRjaGVkKz0xLHQuX193YXRjaGVyUmVnaXN0ZXIoKX0sdW5yZWdpc3RlcjpmdW5jdGlvbigpe3Quc2hhZG93LndhdGNoZWQ9TWF0aC5tYXgoMCx0LnNoYWRvdy53YXRjaGVkLTEpLHQuX193YXRjaGVyVW5yZWdpc3RlcigpfSxnZXRFbDpmdW5jdGlvbigpe3JldHVybiB0LiRyZWZzLmlucHV0fX19fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5tb2RlbD10LnNsaWNlKCl9fSxwcm92aWRlOmZ1bmN0aW9uKCl7cmV0dXJue19faW5wdXQ6dGhpcy5zaGFkb3d9fSxjb21wdXRlZDp7bGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWw/dGhpcy5tb2RlbC5sZW5ndGg6MH0saXNMb2FkaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubG9hZGluZ3x8dGhpcy5zaGFkb3cud2F0Y2hlZCYmdGhpcy5zaGFkb3cubG9hZGluZ30sY29tcHV0ZWRBZGRJY29uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWRkSWNvbnx8dGhpcy4kcS5pY29uLmNoaXBzSW5wdXQuYWRkfSxjb21wdXRlZENoaXBUZXh0Q29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlwc0NvbG9yP3RoaXMuY2hpcHNDb2xvcjp0aGlzLmlzSW52ZXJ0ZWRMaWdodD90aGlzLmludmVydGVkTGlnaHQ/dGhpcy5jb2xvcjpcIndoaXRlXCI6dGhpcy5pc0ludmVydGVkP3RoaXMuaW52ZXJ0ZWRMaWdodD9cImdyZXktMTBcIjp0aGlzLmNvbG9yOnRoaXMuZGFyaz90aGlzLmNvbG9yOlwid2hpdGVcIn0sY29tcHV0ZWRDaGlwQmdDb2xvcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNoaXBzQmdDb2xvcj90aGlzLmNoaXBzQmdDb2xvcjp0aGlzLmlzSW52ZXJ0ZWRMaWdodD90aGlzLmludmVydGVkTGlnaHQ/XCJncmV5LTEwXCI6dGhpcy5jb2xvcjp0aGlzLmlzSW52ZXJ0ZWQ/dGhpcy5pbnZlcnRlZExpZ2h0P3RoaXMuY29sb3I6XCJ3aGl0ZVwiOnRoaXMuZGFyaz9cIndoaXRlXCI6dGhpcy5jb2xvcn0saW5wdXRDbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W3RoaXMuYWxpZ25DbGFzc107cmV0dXJuIHRoaXMudXBwZXJDYXNlJiZ0LnB1c2goXCJ1cHBlcmNhc2VcIiksdGhpcy5sb3dlckNhc2UmJnQucHVzaChcImxvd2VyY2FzZVwiKSx0fSxpc0NsZWFyYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkaXRhYmxlJiZ0aGlzLmNsZWFyYWJsZSYmMCE9PXRoaXMubW9kZWwubGVuZ3RofX0sbWV0aG9kczp7YWRkOmZ1bmN0aW9uKHQpe2lmKHZvaWQgMD09PXQmJih0PXRoaXMuaW5wdXQpLGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmZvY3VzKCksIXRoaXMuaXNMb2FkaW5nJiZ0aGlzLmVkaXRhYmxlJiZ0KXt2YXIgZT10aGlzLmxvd2VyQ2FzZT90LnRvTG93ZXJDYXNlKCk6dGhpcy51cHBlckNhc2U/dC50b1VwcGVyQ2FzZSgpOnQ7dGhpcy5tb2RlbC5pbmNsdWRlcyhlKT90aGlzLiRlbWl0KFwiZHVwbGljYXRlXCIsZSk6KHRoaXMuJGVtaXQoXCJhZGRcIix7aW5kZXg6dGhpcy5tb2RlbC5sZW5ndGgsdmFsOmV9KSx0aGlzLm1vZGVsLnB1c2goZSksdGhpcy4kZW1pdChcImlucHV0XCIsdGhpcy5tb2RlbCksdGhpcy5pbnB1dD1cIlwiKX19LHJlbW92ZTpmdW5jdGlvbih0KXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5mb2N1cygpLHRoaXMuZWRpdGFibGUmJnQ+PTAmJnQ8dGhpcy5sZW5ndGgmJih0aGlzLiRlbWl0KFwicmVtb3ZlXCIse2luZGV4OnQsdmFsdWU6dGhpcy5tb2RlbC5zcGxpY2UodCwxKX0pLHRoaXMuJGVtaXQoXCJpbnB1dFwiLHRoaXMubW9kZWwpKX0sY2xlYXI6ZnVuY3Rpb24odCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHQmJnN0b3BBbmRQcmV2ZW50KHQpLHRoaXMuZWRpdGFibGUmJih0aGlzLiRlbWl0KFwiaW5wdXRcIixbXSksdGhpcy4kZW1pdChcImNsZWFyXCIpKX0sX19jbGVhclRpbWVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3JldHVybiBjbGVhclRpbWVvdXQodC50aW1lcil9KX0sX19oYW5kbGVLZXlEb3duOmZ1bmN0aW9uKHQpe3N3aXRjaChnZXRFdmVudEtleSh0KSl7Y2FzZSAxMzppZih0aGlzLnNoYWRvdy5zZWxlY3Rpb25PcGVuKXJldHVybjtyZXR1cm4gc3RvcEFuZFByZXZlbnQodCksdGhpcy5hZGQoKTtjYXNlIDg6cmV0dXJuIHZvaWQoIXRoaXMuaW5wdXQubGVuZ3RoJiZ0aGlzLmxlbmd0aCYmdGhpcy5yZW1vdmUodGhpcy5sZW5ndGgtMSkpO2RlZmF1bHQ6cmV0dXJuIHRoaXMuX19vbktleWRvd24odCl9fSxfX29uQ2xpY2s6ZnVuY3Rpb24oKXt0aGlzLmZvY3VzKCl9LF9fd2F0Y2hlcjpmdW5jdGlvbih0KXt0aGlzLnNoYWRvdy53YXRjaGVkJiYodGhpcy5zaGFkb3cudmFsPXQpfSxfX3dhdGNoZXJSZWdpc3RlcjpmdW5jdGlvbigpe3RoaXMud2F0Y2hlcnx8KHRoaXMud2F0Y2hlcj10aGlzLiR3YXRjaChcImlucHV0XCIsdGhpcy5fX3dhdGNoZXIpKX0sX193YXRjaGVyVW5yZWdpc3RlcjpmdW5jdGlvbih0KXshdGhpcy53YXRjaGVyfHwhdCYmdGhpcy5zaGFkb3cud2F0Y2hlZHx8KHRoaXMud2F0Y2hlcigpLHRoaXMud2F0Y2hlcj1udWxsLHRoaXMuc2hhZG93LnNlbGVjdGlvbk9wZW49ITEpfX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX193YXRjaGVyVW5yZWdpc3RlcighMCl9LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFFJbnB1dEZyYW1lLHtzdGF0aWNDbGFzczpcInEtY2hpcHMtaW5wdXRcIixwcm9wczp7cHJlZml4OnRoaXMucHJlZml4LHN1ZmZpeDp0aGlzLnN1ZmZpeCxzdGFja0xhYmVsOnRoaXMuc3RhY2tMYWJlbCxmbG9hdExhYmVsOnRoaXMuZmxvYXRMYWJlbCxlcnJvcjp0aGlzLmVycm9yLHdhcm5pbmc6dGhpcy53YXJuaW5nLGRpc2FibGU6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHksaW52ZXJ0ZWQ6dGhpcy5pbnZlcnRlZCxpbnZlcnRlZExpZ2h0OnRoaXMuaW52ZXJ0ZWRMaWdodCxkYXJrOnRoaXMuZGFyayxoaWRlVW5kZXJsaW5lOnRoaXMuaGlkZVVuZGVybGluZSxiZWZvcmU6dGhpcy5iZWZvcmUsYWZ0ZXI6dGhpcy5hZnRlcixjb2xvcjp0aGlzLmNvbG9yLG5vUGFyZW50RmllbGQ6dGhpcy5ub1BhcmVudEZpZWxkLGZvY3VzZWQ6dGhpcy5mb2N1c2VkLGxlbmd0aDp0aGlzLmxlbmd0aCxhZGRpdGlvbmFsTGVuZ3RoOnRoaXMuaW5wdXQubGVuZ3RoPjB9LG9uOntjbGljazp0aGlzLl9fb25DbGlja319LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sIHJvdyBpdGVtcy1jZW50ZXIgcS1pbnB1dC1jaGlwc1wifSx0aGlzLm1vZGVsLm1hcChmdW5jdGlvbihpLHMpe3JldHVybiB0KFFDaGlwLHtrZXk6aStcIiNcIitzLHByb3BzOntzbWFsbDohMCxjbG9zYWJsZTplLmVkaXRhYmxlLGNvbG9yOmUuY29tcHV0ZWRDaGlwQmdDb2xvcix0ZXh0Q29sb3I6ZS5jb21wdXRlZENoaXBUZXh0Q29sb3J9LGF0dHJzOnt0YWJpbmRleDplLmVkaXRhYmxlJiZlLmZvY3VzZWQ/MDotMX0sb246e2JsdXI6ZS5fX29uSW5wdXRCbHVyLGZvY3VzOmUuX19jbGVhclRpbWVyLGhpZGU6ZnVuY3Rpb24oKXtlLnJlbW92ZShzKX19LG5hdGl2ZU9uOntibHVyOmUuX19vbklucHV0Qmx1cixmb2N1czplLl9fY2xlYXJUaW1lcn19LGkpfSkuY29uY2F0KFt0KFwiaW5wdXRcIix7cmVmOlwiaW5wdXRcIixzdGF0aWNDbGFzczpcImNvbCBxLWlucHV0LXRhcmdldFwiLGNsYXNzOnRoaXMuaW5wdXRDbGFzc2VzLGRvbVByb3BzOnt2YWx1ZTp0aGlzLmlucHV0fSxhdHRyczpPYmplY3QuYXNzaWduKHt9LHRoaXMuJGF0dHJzLHtwbGFjZWhvbGRlcjp0aGlzLmlucHV0UGxhY2Vob2xkZXIsZGlzYWJsZWQ6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHl9KSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7ZS5pbnB1dD10LnRhcmdldC52YWx1ZX0sZm9jdXM6dGhpcy5fX29uRm9jdXMsYmx1cjp0aGlzLl9fb25JbnB1dEJsdXIsa2V5ZG93bjp0aGlzLl9faGFuZGxlS2V5RG93bixrZXl1cDp0aGlzLl9fb25LZXl1cH19KV0pKSx0aGlzLmlzTG9hZGluZz90aGlzLiRzbG90cy5sb2FkaW5nP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixzbG90OlwiYWZ0ZXJcIn0sdGhpcy4kc2xvdHMubG9hZGluZyk6dChRU3Bpbm5lcix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixwcm9wczp7c2l6ZTpcIjI0cHhcIn19KTp0aGlzLmVkaXRhYmxlJiZ0KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwiLGNsYXNzOntpbnZpc2libGU6MD09PXRoaXMuaW5wdXQubGVuZ3RofSxwcm9wczp7bmFtZTp0aGlzLmNvbXB1dGVkQWRkSWNvbn0sbmF0aXZlT246e21vdXNlZG93bjp0aGlzLl9fY2xlYXJUaW1lcix0b3VjaHN0YXJ0OnRoaXMuX19jbGVhclRpbWVyLGNsaWNrOmZ1bmN0aW9uKCl7ZS5hZGQoKX19fSl8fHZvaWQgMCx0aGlzLmlzQ2xlYXJhYmxlJiZ0KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixzdGF0aWNDbGFzczpcInEtaWYtY29udHJvbFwiLHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi5pbnB1dFtcImNsZWFyXCIrKHRoaXMuaXNJbnZlcnRlZD9cIkludmVydGVkXCI6XCJcIildfSxuYXRpdmVPbjp7bW91c2Vkb3duOnRoaXMuX19jbGVhclRpbWVyLHRvdWNoc3RhcnQ6dGhpcy5fX2NsZWFyVGltZXIsY2xpY2s6dGhpcy5jbGVhcn19KXx8dm9pZCAwXS5jb25jYXQodGhpcy4kc2xvdHMuZGVmYXVsdD90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiYWJzb2x1dGUtZnVsbCBuby1wb2ludGVyLWV2ZW50c1wiLHNsb3Q6XCJhZnRlclwifSx0aGlzLiRzbG90cy5kZWZhdWx0KTp2b2lkIDApKX19LFFJdGVtVGlsZT17bmFtZTpcIlFJdGVtVGlsZVwiLHByb3BzOntpY29uOlN0cmluZyxsZXR0ZXI6Qm9vbGVhbixpbnZlcnRlZDpCb29sZWFuLGltYWdlOkJvb2xlYW4sYXZhdGFyOkJvb2xlYW4sc3RhbXA6Qm9vbGVhbixsYWJlbDpCb29sZWFuLHN1YmxhYmVsOkJvb2xlYW4sbGluZXM6W051bWJlcixTdHJpbmddLHRhZzp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImRpdlwifSxjb2xvcjpTdHJpbmcsdGV4dENvbG9yOlN0cmluZ30sY29tcHV0ZWQ6e2hhc0xpbmVzOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMubGFiZWx8fHRoaXMuc3VibGFiZWwpJiZ0aGlzLmxpbmVzfSx0eXBlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm5bXCJpY29uXCIsXCJsYWJlbFwiLFwic3VibGFiZWxcIixcImltYWdlXCIsXCJhdmF0YXJcIixcImxldHRlclwiLFwic3RhbXBcIl0uZmluZChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pfSxjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuY29sb3ImJih0aGlzLmludmVydGVkP3QucHVzaChcImJnLVwiK3RoaXMuY29sb3IpOnRoaXMudGV4dENvbG9yfHx0LnB1c2goXCJ0ZXh0LVwiK3RoaXMuY29sb3IpKSx0aGlzLnRleHRDb2xvciYmdC5wdXNoKFwidGV4dC1cIit0aGlzLnRleHRDb2xvciksdGhpcy50eXBlJiZ0LnB1c2goXCJxLWl0ZW0tXCIrdGhpcy50eXBlKSx0aGlzLmludmVydGVkJiYodGhpcy5pY29ufHx0aGlzLmxldHRlcikmJih0LnB1c2goXCJxLWl0ZW0taW52ZXJ0ZWRcIiksdC5wdXNoKFwiZmxleFwiKSx0LnB1c2goXCJmbGV4LWNlbnRlclwiKSksIXRoaXMuaGFzTGluZXN8fFwiMVwiIT09dGhpcy5saW5lcyYmMSE9PXRoaXMubGluZXN8fHQucHVzaChcImVsbGlwc2lzXCIpLHR9LHN0eWxlOmZ1bmN0aW9uKCl7aWYodGhpcy5oYXNMaW5lcylyZXR1cm4gdGV4dFN0eWxlKHRoaXMubGluZXMpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXtjbGFzczp0aGlzLmNsYXNzZXMsc3R5bGU6dGhpcy5zdHlsZX07aWYodGhpcy5pY29uKXtpZih0aGlzLmludmVydGVkKXJldHVybiB0KHRoaXMudGFnLGUsW3QoUUljb24se3Byb3BzOntuYW1lOnRoaXMuaWNvbn19LHRoaXMuJHNsb3RzLmRlZmF1bHQpXSk7ZS5wcm9wcz17bmFtZTp0aGlzLmljb259fXJldHVybiB0KHRoaXMuaWNvbj9RSWNvbjp0aGlzLnRhZyxlLHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUVNsaWRlVHJhbnNpdGlvbj17bmFtZTpcIlFTbGlkZVRyYW5zaXRpb25cIixwcm9wczp7YXBwZWFyOkJvb2xlYW4sZHVyYXRpb246e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MzAwfX0sbWV0aG9kczp7X19iZWdpbjpmdW5jdGlvbih0LGUsaSl7dC5zdHlsZS5vdmVyZmxvd1k9XCJoaWRkZW5cIix2b2lkIDAhPT1lJiYodC5zdHlsZS5oZWlnaHQ9ZStcInB4XCIpLHQuc3R5bGUudHJhbnNpdGlvbj1cImhlaWdodCBcIit0aGlzLmR1cmF0aW9uK1wibXMgY3ViaWMtYmV6aWVyKC4yNSwgLjgsIC41MCwgMSlcIix0aGlzLmFuaW1hdGluZz0hMCx0aGlzLmRvbmU9aX0sX19lbmQ6ZnVuY3Rpb24odCxlKXt0LnN0eWxlLm92ZXJmbG93WT1udWxsLHQuc3R5bGUuaGVpZ2h0PW51bGwsdC5zdHlsZS50cmFuc2l0aW9uPW51bGwsdGhpcy5fX2NsZWFudXAoKSxlIT09dGhpcy5sYXN0RXZlbnQmJnRoaXMuJGVtaXQoZSl9LF9fY2xlYW51cDpmdW5jdGlvbigpe3RoaXMuZG9uZSYmdGhpcy5kb25lKCksdGhpcy5kb25lPW51bGwsdGhpcy5hbmltYXRpbmc9ITEsY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIix0aGlzLmFuaW1MaXN0ZW5lciksdGhpcy5hbmltTGlzdGVuZXI9bnVsbH19LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmFuaW1hdGluZyYmdGhpcy5fX2NsZWFudXAoKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJ0cmFuc2l0aW9uXCIse3Byb3BzOntjc3M6ITEsYXBwZWFyOnRoaXMuYXBwZWFyfSxvbjp7ZW50ZXI6ZnVuY3Rpb24odCxpKXt2YXIgcz0wO2UuZWw9dCwhMD09PWUuYW5pbWF0aW5nPyhlLl9fY2xlYW51cCgpLHM9dC5vZmZzZXRIZWlnaHQ9PT10LnNjcm9sbEhlaWdodD8wOnZvaWQgMCk6ZS5sYXN0RXZlbnQ9XCJoaWRlXCIsZS5fX2JlZ2luKHQscyxpKSxlLnRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LnN0eWxlLmhlaWdodD10LnNjcm9sbEhlaWdodCtcInB4XCIsZS5hbmltTGlzdGVuZXI9ZnVuY3Rpb24oKXtlLl9fZW5kKHQsXCJzaG93XCIpfSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0cmFuc2l0aW9uZW5kXCIsZS5hbmltTGlzdGVuZXIpfSwxMDApfSxsZWF2ZTpmdW5jdGlvbih0LGkpe3ZhciBzO2UuZWw9dCwhMD09PWUuYW5pbWF0aW5nP2UuX19jbGVhbnVwKCk6KGUubGFzdEV2ZW50PVwic2hvd1wiLHM9dC5zY3JvbGxIZWlnaHQpLGUuX19iZWdpbih0LHMsaSksZS50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5zdHlsZS5oZWlnaHQ9MCxlLmFuaW1MaXN0ZW5lcj1mdW5jdGlvbigpe2UuX19lbmQodCxcImhpZGVcIil9LHQuYWRkRXZlbnRMaXN0ZW5lcihcInRyYW5zaXRpb25lbmRcIixlLmFuaW1MaXN0ZW5lcil9LDEwMCl9fX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxldmVudE5hbWU9XCJxOmNvbGxhcHNpYmxlOmNsb3NlXCIsUUNvbGxhcHNpYmxlPXtuYW1lOlwiUUNvbGxhcHNpYmxlXCIsbWl4aW5zOltNb2RlbFRvZ2dsZU1peGluLEl0ZW1NaXhpbix7cHJvcHM6c3ViSXRlbVByb3BzfV0sbW9kZWxUb2dnbGU6e2hpc3Rvcnk6ITF9LHByb3BzOntkaXNhYmxlOkJvb2xlYW4scG9wdXA6Qm9vbGVhbixpbmRlbnQ6Qm9vbGVhbixncm91cDpTdHJpbmcsaWNvblRvZ2dsZTpCb29sZWFuLGNvbGxhcHNlSWNvbjpTdHJpbmcsb3BlbmVkOkJvb2xlYW4sZHVyYXRpb246TnVtYmVyLGhlYWRlclN0eWxlOltBcnJheSxTdHJpbmcsT2JqZWN0XSxoZWFkZXJDbGFzczpbQXJyYXksU3RyaW5nLE9iamVjdF19LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJue1wicS1jb2xsYXBzaWJsZS1vcGVuZWRcIjp0aGlzLnNob3dpbmcsXCJxLWNvbGxhcHNpYmxlLWNsb3NlZFwiOiF0aGlzLnNob3dpbmcsXCJxLWNvbGxhcHNpYmxlLXBvcHVwLW9wZW5lZFwiOnRoaXMucG9wdXAmJnRoaXMuc2hvd2luZyxcInEtY29sbGFwc2libGUtcG9wdXAtY2xvc2VkXCI6dGhpcy5wb3B1cCYmIXRoaXMuc2hvd2luZyxcInEtY29sbGFwc2libGUtY3Vyc29yLXBvaW50ZXJcIjohdGhpcy5zZXBhcmF0ZVRvZ2dsZSxcInEtaXRlbS1kYXJrXCI6dGhpcy5kYXJrLFwicS1pdGVtLXNlcGFyYXRvclwiOnRoaXMuc2VwYXJhdG9yLFwicS1pdGVtLWluc2V0LXNlcGFyYXRvclwiOnRoaXMuaW5zZXRTZXBhcmF0b3IsZGlzYWJsZWQ6dGhpcy5kaXNhYmxlfX0sc2VwYXJhdGVUb2dnbGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pY29uVG9nZ2xlfHx2b2lkIDAhPT10aGlzLnRvfX0sd2F0Y2g6e3Nob3dpbmc6ZnVuY3Rpb24odCl7dCYmdGhpcy5ncm91cCYmdGhpcy4kcm9vdC4kZW1pdChldmVudE5hbWUsdGhpcyl9fSxtZXRob2RzOntfX3RvZ2dsZUl0ZW06ZnVuY3Rpb24oKXt0aGlzLnNlcGFyYXRlVG9nZ2xlfHx0aGlzLnRvZ2dsZSgpfSxfX3RvZ2dsZUljb246ZnVuY3Rpb24odCl7dGhpcy5zZXBhcmF0ZVRvZ2dsZSYmKHQmJnN0b3BBbmRQcmV2ZW50KHQpLHRoaXMudG9nZ2xlKCkpfSxfX2V2ZW50SGFuZGxlcjpmdW5jdGlvbih0KXt0aGlzLmdyb3VwJiZ0aGlzIT09dCYmdC5ncm91cD09PXRoaXMuZ3JvdXAmJnRoaXMuaGlkZSgpfSxfX2dldFRvZ2dsZVNpZGU6ZnVuY3Rpb24odCxlKXtyZXR1cm5bdChRSXRlbVRpbGUse3Nsb3Q6ZT9cInJpZ2h0XCI6dm9pZCAwLHN0YXRpY0NsYXNzOlwiY3Vyc29yLXBvaW50ZXIgdHJhbnNpdGlvbi1nZW5lcmljIHJlbGF0aXZlLXBvc2l0aW9uIHEtY29sbGFwc2libGUtdG9nZ2xlLWljb25cIixjbGFzczp7XCJyb3RhdGUtMTgwXCI6dGhpcy5zaG93aW5nLGludmlzaWJsZTp0aGlzLmRpc2FibGV9LG5hdGl2ZU9uOntjbGljazp0aGlzLl9fdG9nZ2xlSWNvbn0scHJvcHM6e2ljb246dGhpcy5jb2xsYXBzZUljb258fHRoaXMuJHEuaWNvbi5jb2xsYXBzaWJsZS5pY29ufX0pXX0sX19nZXRJdGVtUHJvcHM6ZnVuY3Rpb24odCl7cmV0dXJue3Byb3BzOnQ/e2NmZzp0aGlzLiRwcm9wc306dGhpcy4kcHJvcHMsc3R5bGU6dGhpcy5oZWFkZXJTdHlsZSxjbGFzczp0aGlzLmhlYWRlckNsYXNzLG5hdGl2ZU9uOntjbGljazp0aGlzLl9fdG9nZ2xlSXRlbX19fX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuJHJvb3QuJG9uKGV2ZW50TmFtZSx0aGlzLl9fZXZlbnRIYW5kbGVyKSwodGhpcy5vcGVuZWR8fHRoaXMudmFsdWUpJiZ0aGlzLnNob3coKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuJHJvb3QuJG9mZihldmVudE5hbWUsdGhpcy5fX2V2ZW50SGFuZGxlcil9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdCh0aGlzLnRhZyx7c3RhdGljQ2xhc3M6XCJxLWNvbGxhcHNpYmxlIHEtaXRlbS1kaXZpc2lvbiByZWxhdGl2ZS1wb3NpdGlvblwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNvbGxhcHNpYmxlLWlubmVyXCJ9LFt0aGlzLiRzbG90cy5oZWFkZXI/dChRSXRlbSx0aGlzLl9fZ2V0SXRlbVByb3BzKCksW3RoaXMuJHNsb3RzLmhlYWRlcix0KFFJdGVtU2lkZSx7cHJvcHM6e3JpZ2h0OiEwfSxzdGF0aWNDbGFzczpcInJlbGF0aXZlLXBvc2l0aW9uXCJ9LHRoaXMuX19nZXRUb2dnbGVTaWRlKHQpKV0pOnQoUUl0ZW1XcmFwcGVyLHRoaXMuX19nZXRJdGVtUHJvcHMoITApLHRoaXMuX19nZXRUb2dnbGVTaWRlKHQsITApKSx0KFFTbGlkZVRyYW5zaXRpb24se3Byb3BzOntkdXJhdGlvbjp0aGlzLmR1cmF0aW9ufX0sW3QoXCJkaXZcIix7ZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIsdmFsdWU6dGhpcy5zaG93aW5nfV19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xsYXBzaWJsZS1zdWItaXRlbSByZWxhdGl2ZS1wb3NpdGlvblwiLGNsYXNzOntpbmRlbnQ6dGhpcy5pbmRlbnR9fSx0aGlzLiRzbG90cy5kZWZhdWx0KV0pXSldKV0pfX0sRGlzcGxheU1vZGVNaXhpbj17cHJvcHM6e3BvcG92ZXI6Qm9vbGVhbixtb2RhbDpCb29sZWFufSxjb21wdXRlZDp7aXNQb3BvdmVyOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLnBvcG92ZXJ8fCF0aGlzLm1vZGFsJiYodGhpcy4kcS5wbGF0Zm9ybS5pcy5kZXNrdG9wJiYhdGhpcy4kcS5wbGF0Zm9ybS53aXRoaW4uaWZyYW1lKX19fTtmdW5jdGlvbiBnZXRQZXJjZW50YWdlKHQsZSxpKXt2YXIgcz1iZXR3ZWVuKChwb3NpdGlvbih0KS5sZWZ0LWUubGVmdCkvZS53aWR0aCwwLDEpO3JldHVybiBpPzEtczpzfWZ1bmN0aW9uIG5vdERpdmlkZXModCxlKXt2YXIgaT1lP3BhcnNlRmxvYXQodC50b0ZpeGVkKGUpKTp0O3JldHVybiBpIT09cGFyc2VJbnQoaSwxMCl9ZnVuY3Rpb24gZ2V0TW9kZWwodCxlLGkscyxuKXt2YXIgbz1lK3QqKGktZSkscj0oby1lKSVzO3JldHVybiBvKz0oTWF0aC5hYnMocik+PXMvMj8ocjwwPy0xOjEpKnM6MCktcixuJiYobz1wYXJzZUZsb2F0KG8udG9GaXhlZChuKSkpLGJldHdlZW4obyxlLGkpfXZhciBTbGlkZXJNaXhpbj17ZGlyZWN0aXZlczp7VG91Y2hQYW46VG91Y2hQYW59LHByb3BzOnttaW46e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MX0sbWF4Ont0eXBlOk51bWJlcixkZWZhdWx0OjV9LHN0ZXA6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MX0sZGVjaW1hbHM6TnVtYmVyLHNuYXA6Qm9vbGVhbixtYXJrZXJzOkJvb2xlYW4sbGFiZWw6Qm9vbGVhbixsYWJlbEFsd2F5czpCb29sZWFuLHNxdWFyZTpCb29sZWFuLGNvbG9yOlN0cmluZyxmaWxsSGFuZGxlQWx3YXlzOkJvb2xlYW4sZXJyb3I6Qm9vbGVhbix3YXJuaW5nOkJvb2xlYW4scmVhZG9ubHk6Qm9vbGVhbixkaXNhYmxlOkJvb2xlYW59LGNvbXB1dGVkOntlZGl0YWJsZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLmRpc2FibGUmJiF0aGlzLnJlYWRvbmx5fSxjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9e2Rpc2FibGVkOnRoaXMuZGlzYWJsZSxyZWFkb25seTp0aGlzLnJlYWRvbmx5LFwibGFiZWwtYWx3YXlzXCI6dGhpcy5sYWJlbEFsd2F5cyxcImhhcy1lcnJvclwiOnRoaXMuZXJyb3IsXCJoYXMtd2FybmluZ1wiOnRoaXMud2FybmluZ307cmV0dXJuIHRoaXMuZXJyb3J8fHRoaXMud2FybmluZ3x8IXRoaXMuY29sb3J8fCh0W1widGV4dC1cIit0aGlzLmNvbG9yXT0hMCksdH0sbWFya2Vyc0xlbjpmdW5jdGlvbigpe3JldHVybih0aGlzLm1heC10aGlzLm1pbikvdGhpcy5zdGVwKzF9LGxhYmVsQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcnJvcj9cIm5lZ2F0aXZlXCI6dGhpcy53YXJuaW5nP1wid2FybmluZ1wiOnRoaXMuY29sb3J8fFwicHJpbWFyeVwifSxjb21wdXRlZERlY2ltYWxzOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuZGVjaW1hbHM/dGhpcy5kZWNpbWFsc3x8MDooU3RyaW5nKHRoaXMuc3RlcCkudHJpbShcIjBcIikuc3BsaXQoXCIuXCIpWzFdfHxcIlwiKS5sZW5ndGh9LGNvbXB1dGVkU3RlcDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLmRlY2ltYWxzPzEvTWF0aC5wb3coMTAsdGhpcy5kZWNpbWFsc3x8MCk6dGhpcy5zdGVwfX0sbWV0aG9kczp7X19wYW46ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0LmlzRmluYWw/dGhpcy5kcmFnZ2luZyYmKHRoaXMuZHJhZ1RpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmRyYWdnaW5nPSExfSwxMDApLHRoaXMuX19lbmQodC5ldnQpLHRoaXMuX191cGRhdGUoITApKTp0LmlzRmlyc3Q/KGNsZWFyVGltZW91dCh0aGlzLmRyYWdUaW1lciksdGhpcy5kcmFnZ2luZz10aGlzLl9fZ2V0RHJhZ2dpbmcodC5ldnQpKTp0aGlzLmRyYWdnaW5nJiYodGhpcy5fX21vdmUodC5ldnQpLHRoaXMuX191cGRhdGUoKSl9LF9fdXBkYXRlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7SlNPTi5zdHJpbmdpZnkodGhpcy5tb2RlbCkhPT1KU09OLnN0cmluZ2lmeSh0aGlzLnZhbHVlKSYmKHRoaXMuJGVtaXQoXCJpbnB1dFwiLHRoaXMubW9kZWwpLHQmJnRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkoZS5tb2RlbCkhPT1KU09OLnN0cmluZ2lmeShlLnZhbHVlKSYmZS4kZW1pdChcImNoYW5nZVwiLGUubW9kZWwpfSkpfSxfX2NsaWNrOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLmRyYWdnaW5nKXt2YXIgZT10aGlzLl9fZ2V0RHJhZ2dpbmcodCk7ZSYmKHRoaXMuX19lbmQodCxlKSx0aGlzLl9fdXBkYXRlKCEwKSl9fSxfX2dldE1hcmtlcnM6ZnVuY3Rpb24odCl7aWYodGhpcy5tYXJrZXJzKXtmb3IodmFyIGU9W10saT0wO2k8dGhpcy5tYXJrZXJzTGVuO2krKyllLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2xpZGVyLW1hcmtcIixrZXk6XCJtYXJrZXJcIitpLHN0eWxlOntsZWZ0OjEwMCppKnRoaXMuc3RlcC8odGhpcy5tYXgtdGhpcy5taW4pK1wiJVwifX0pKTtyZXR1cm4gZX19fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5fX3ZhbGlkYXRlUHJvcHMoKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zbGlkZXIgbm9uLXNlbGVjdGFibGVcIixjbGFzczp0aGlzLmNsYXNzZXMsb246dGhpcy5lZGl0YWJsZT97Y2xpY2s6dGhpcy5fX2NsaWNrfTpudWxsLGRpcmVjdGl2ZXM6dGhpcy5lZGl0YWJsZT9be25hbWU6XCJ0b3VjaC1wYW5cIixtb2RpZmllcnM6e2hvcml6b250YWw6ITAscHJldmVudDohMCxzdG9wOiEwfSx2YWx1ZTp0aGlzLl9fcGFufV06bnVsbH0sW3QoXCJkaXZcIix7cmVmOlwiaGFuZGxlXCIsc3RhdGljQ2xhc3M6XCJxLXNsaWRlci1oYW5kbGUtY29udGFpbmVyXCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zbGlkZXItdHJhY2tcIn0pLHRoaXMuX19nZXRNYXJrZXJzKHQpXS5jb25jYXQodGhpcy5fX2dldENvbnRlbnQodCkpKV0pfX0sUVNsaWRlcj17bmFtZTpcIlFTbGlkZXJcIixtaXhpbnM6W1NsaWRlck1peGluXSxwcm9wczp7dmFsdWU6TnVtYmVyLGxhYmVsVmFsdWU6U3RyaW5nfSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue21vZGVsOnRoaXMudmFsdWUsZHJhZ2dpbmc6ITEsY3VycmVudFBlcmNlbnRhZ2U6KHRoaXMudmFsdWUtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbil9fSxjb21wdXRlZDp7cGVyY2VudGFnZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNuYXA/KHRoaXMubW9kZWwtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbikqMTAwK1wiJVwiOjEwMCp0aGlzLmN1cnJlbnRQZXJjZW50YWdlK1wiJVwifSxkaXNwbGF5VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5sYWJlbFZhbHVlP3RoaXMubGFiZWxWYWx1ZTp0aGlzLm1vZGVsfX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuZHJhZ2dpbmd8fCh0PHRoaXMubWluP3RoaXMubW9kZWw9dGhpcy5taW46dD50aGlzLm1heD90aGlzLm1vZGVsPXRoaXMubWF4OnRoaXMubW9kZWw9dCx0aGlzLmN1cnJlbnRQZXJjZW50YWdlPSh0aGlzLm1vZGVsLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pKX0sbWluOmZ1bmN0aW9uKHQpe3RoaXMubW9kZWw8dD90aGlzLm1vZGVsPXQ6dGhpcy4kbmV4dFRpY2sodGhpcy5fX3ZhbGlkYXRlUHJvcHMpfSxtYXg6ZnVuY3Rpb24odCl7dGhpcy5tb2RlbD50P3RoaXMubW9kZWw9dDp0aGlzLiRuZXh0VGljayh0aGlzLl9fdmFsaWRhdGVQcm9wcyl9LHN0ZXA6ZnVuY3Rpb24oKXt0aGlzLiRuZXh0VGljayh0aGlzLl9fdmFsaWRhdGVQcm9wcyl9fSxtZXRob2RzOntfX2dldERyYWdnaW5nOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuJHJlZnMuaGFuZGxlO3JldHVybntsZWZ0OmUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCx3aWR0aDplLm9mZnNldFdpZHRofX0sX19tb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPWdldFBlcmNlbnRhZ2UodCx0aGlzLmRyYWdnaW5nLHRoaXMuJHEuaTE4bi5ydGwpO3RoaXMuY3VycmVudFBlcmNlbnRhZ2U9ZSx0aGlzLm1vZGVsPWdldE1vZGVsKGUsdGhpcy5taW4sdGhpcy5tYXgsdGhpcy5zdGVwLHRoaXMuY29tcHV0ZWREZWNpbWFscyl9LF9fZW5kOmZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9dGhpcy5kcmFnZ2luZyk7dmFyIGk9Z2V0UGVyY2VudGFnZSh0LGUsdGhpcy4kcS5pMThuLnJ0bCk7dGhpcy5tb2RlbD1nZXRNb2RlbChpLHRoaXMubWluLHRoaXMubWF4LHRoaXMuc3RlcCx0aGlzLmNvbXB1dGVkRGVjaW1hbHMpLHRoaXMuY3VycmVudFBlcmNlbnRhZ2U9KHRoaXMubW9kZWwtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbil9LF9fb25LZXlEb3duOmZ1bmN0aW9uKHQpe3ZhciBlPXQua2V5Q29kZTtpZih0aGlzLmVkaXRhYmxlJiZbMzcsNDAsMzksMzhdLmluY2x1ZGVzKGUpKXtzdG9wQW5kUHJldmVudCh0KTt2YXIgaT10aGlzLmNvbXB1dGVkRGVjaW1hbHMscz10LmN0cmxLZXk/MTAqdGhpcy5jb21wdXRlZFN0ZXA6dGhpcy5jb21wdXRlZFN0ZXAsbj1bMzcsNDBdLmluY2x1ZGVzKGUpPy1zOnMsbz1pP3BhcnNlRmxvYXQoKHRoaXMubW9kZWwrbikudG9GaXhlZChpKSk6dGhpcy5tb2RlbCtuO3RoaXMubW9kZWw9YmV0d2VlbihvLHRoaXMubWluLHRoaXMubWF4KSx0aGlzLmN1cnJlbnRQZXJjZW50YWdlPSh0aGlzLm1vZGVsLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pLHRoaXMuX191cGRhdGUoKX19LF9fb25LZXlVcDpmdW5jdGlvbih0KXt2YXIgZT10LmtleUNvZGU7dGhpcy5lZGl0YWJsZSYmWzM3LDQwLDM5LDM4XS5pbmNsdWRlcyhlKSYmdGhpcy5fX3VwZGF0ZSghMCl9LF9fdmFsaWRhdGVQcm9wczpmdW5jdGlvbigpe3RoaXMubWluPj10aGlzLm1heD9jb25zb2xlLmVycm9yKFwiUmFuZ2UgZXJyb3I6IG1pbiA+PSBtYXhcIix0aGlzLiRlbCx0aGlzLm1pbix0aGlzLm1heCk6bm90RGl2aWRlcygodGhpcy5tYXgtdGhpcy5taW4pL3RoaXMuc3RlcCx0aGlzLmNvbXB1dGVkRGVjaW1hbHMpJiZjb25zb2xlLmVycm9yKFwiUmFuZ2UgZXJyb3I6IHN0ZXAgbXVzdCBiZSBhIGRpdmlzb3Igb2YgbWF4IC0gbWluXCIsdGhpcy5taW4sdGhpcy5tYXgsdGhpcy5zdGVwLHRoaXMuY29tcHV0ZWREZWNpbWFscyl9LF9fZ2V0Q29udGVudDpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm5bdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2xpZGVyLXRyYWNrIGFjdGl2ZS10cmFja1wiLHN0eWxlOnt3aWR0aDp0aGlzLnBlcmNlbnRhZ2V9LGNsYXNzOntcIm5vLXRyYW5zaXRpb25cIjp0aGlzLmRyYWdnaW5nLFwiaGFuZGxlLWF0LW1pbmltdW1cIjp0aGlzLm1vZGVsPT09dGhpcy5taW59fSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2xpZGVyLWhhbmRsZVwiLHN0eWxlOihlPXt9LGVbdGhpcy4kcS5pMThuLnJ0bD9cInJpZ2h0XCI6XCJsZWZ0XCJdPXRoaXMucGVyY2VudGFnZSxlLmJvcmRlclJhZGl1cz10aGlzLnNxdWFyZT9cIjBcIjpcIjUwJVwiLGUpLGNsYXNzOntkcmFnZ2luZzp0aGlzLmRyYWdnaW5nLFwiaGFuZGxlLWF0LW1pbmltdW1cIjohdGhpcy5maWxsSGFuZGxlQWx3YXlzJiZ0aGlzLm1vZGVsPT09dGhpcy5taW59LGF0dHJzOnt0YWJpbmRleDp0aGlzLiRxLnBsYXRmb3JtLmlzLmRlc2t0b3A/dGhpcy5lZGl0YWJsZT8wOi0xOnZvaWQgMH0sb246e2tleWRvd246dGhpcy5fX29uS2V5RG93bixrZXl1cDp0aGlzLl9fb25LZXlVcH19LFt0aGlzLmxhYmVsfHx0aGlzLmxhYmVsQWx3YXlzP3QoUUNoaXAse3N0YXRpY0NsYXNzOlwicS1zbGlkZXItbGFiZWwgbm8tcG9pbnRlci1ldmVudHNcIixjbGFzczp7XCJsYWJlbC1hbHdheXNcIjp0aGlzLmxhYmVsQWx3YXlzfSxwcm9wczp7cG9pbnRpbmc6XCJkb3duXCIsc3F1YXJlOiEwLGRlbnNlOiEwLGNvbG9yOnRoaXMubGFiZWxDb2xvcn19LFt0aGlzLmRpc3BsYXlWYWx1ZV0pOm51bGwsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2xpZGVyLXJpbmdcIn0pXSldfX19O2Z1bmN0aW9uIHRocm90dGxlKHQsZSl7dm9pZCAwPT09ZSYmKGU9MjUwKTt2YXIgaSxzPSExO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgbj1bXSxvPWFyZ3VtZW50cy5sZW5ndGg7by0tOyluW29dPWFyZ3VtZW50c1tvXTtyZXR1cm4gcz9pOihzPSEwLGk9dC5hcHBseSh0aGlzLG4pLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtzPSExfSxlKSxpKX19ZnVuY3Rpb24gY2xvbmUodCl7dmFyIGU9SlNPTi5zdHJpbmdpZnkodCk7aWYoZSlyZXR1cm4gSlNPTi5wYXJzZShlKX12YXIgUUNvbG9yUGlja2VyPXtuYW1lOlwiUUNvbG9yUGlja2VyXCIsbWl4aW5zOltQYXJlbnRGaWVsZE1peGluXSxkaXJlY3RpdmVzOntUb3VjaFBhbjpUb3VjaFBhbn0scHJvcHM6e3ZhbHVlOltTdHJpbmcsT2JqZWN0XSxkZWZhdWx0VmFsdWU6e3R5cGU6W1N0cmluZyxPYmplY3RdLGRlZmF1bHQ6bnVsbH0sZm9ybWF0TW9kZWw6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJhdXRvXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcImF1dG9cIixcImhleFwiLFwicmdiXCIsXCJoZXhhXCIsXCJyZ2JhXCJdLmluY2x1ZGVzKHQpfX0sZGlzYWJsZTpCb29sZWFuLHJlYWRvbmx5OkJvb2xlYW4sZGFyazpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3ZpZXc6dGhpcy52YWx1ZSYmXCJzdHJpbmdcIiE9dHlwZW9mIHRoaXMudmFsdWU/XCJyZ2JcIjpcImhleFwiLG1vZGVsOnRoaXMuX19wYXJzZU1vZGVsKHRoaXMudmFsdWV8fHRoaXMuZGVmYXVsdFZhbHVlKX19LHdhdGNoOnt2YWx1ZTp7aGFuZGxlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fcGFyc2VNb2RlbCh0fHx0aGlzLmRlZmF1bHRWYWx1ZSk7ZS5oZXghPT10aGlzLm1vZGVsLmhleCYmKHRoaXMubW9kZWw9ZSl9LGRlZXA6ITB9fSxjb21wdXRlZDp7Zm9yY2VIZXg6ZnVuY3Rpb24oKXtyZXR1cm5cImF1dG9cIj09PXRoaXMuZm9ybWF0TW9kZWw/bnVsbDp0aGlzLmZvcm1hdE1vZGVsLmluZGV4T2YoXCJoZXhcIik+LTF9LGZvcmNlQWxwaGE6ZnVuY3Rpb24oKXtyZXR1cm5cImF1dG9cIj09PXRoaXMuZm9ybWF0TW9kZWw/bnVsbDp0aGlzLmZvcm1hdE1vZGVsLmluZGV4T2YoXCJhXCIpPi0xfSxpc0hleDpmdW5jdGlvbigpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0aGlzLnZhbHVlfSxpc091dHB1dEhleDpmdW5jdGlvbigpe3JldHVybiBudWxsIT09dGhpcy5mb3JjZUhleD90aGlzLmZvcmNlSGV4OnRoaXMuaXNIZXh9LGVkaXRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZGlzYWJsZSYmIXRoaXMucmVhZG9ubHl9LGhhc0FscGhhOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT10aGlzLmZvcmNlQWxwaGE/dGhpcy5mb3JjZUFscGhhOnRoaXMuaXNIZXg/dGhpcy52YWx1ZS50cmltKCkubGVuZ3RoPjc6dGhpcy52YWx1ZSYmdm9pZCAwIT09dGhpcy52YWx1ZS5hfSxzd2F0Y2hDb2xvcjpmdW5jdGlvbigpe3JldHVybntiYWNrZ3JvdW5kQ29sb3I6XCJyZ2JhKFwiK3RoaXMubW9kZWwucitcIixcIit0aGlzLm1vZGVsLmcrXCIsXCIrdGhpcy5tb2RlbC5iK1wiLFwiKyh2b2lkIDA9PT10aGlzLm1vZGVsLmE/MTAwOnRoaXMubW9kZWwuYSkvMTAwK1wiKVwifX0sc2F0dXJhdGlvblN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJue2JhY2tncm91bmQ6XCJoc2woXCIrdGhpcy5tb2RlbC5oK1wiLDEwMCUsNTAlKVwifX0sc2F0dXJhdGlvblBvaW50ZXJTdHlsZTpmdW5jdGlvbigpe3ZhciB0O3JldHVybih0PXt0b3A6MTAxLXRoaXMubW9kZWwuditcIiVcIn0pW3RoaXMuJHEuaTE4bi5ydGw/XCJyaWdodFwiOlwibGVmdFwiXT10aGlzLm1vZGVsLnMrXCIlXCIsdH0saW5wdXRzQXJyYXk6ZnVuY3Rpb24oKXt2YXIgdD1bXCJyXCIsXCJnXCIsXCJiXCJdO3JldHVybiB0aGlzLmhhc0FscGhhJiZ0LnB1c2goXCJhXCIpLHR9LF9fbmVlZHNCb3JkZXI6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLl9fc2F0dXJhdGlvbkNoYW5nZT10aHJvdHRsZSh0aGlzLl9fc2F0dXJhdGlvbkNoYW5nZSwyMCl9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY29sb3JcIixjbGFzczp7ZGlzYWJsZWQ6dGhpcy5kaXNhYmxlLFwicS1jb2xvci1kYXJrXCI6dGhpcy5kYXJrfX0sW3RoaXMuX19nZXRTYXR1cmF0aW9uKHQpLHRoaXMuX19nZXRTbGlkZXJzKHQpLHRoaXMuX19nZXRJbnB1dHModCldKX0sbWV0aG9kczp7X19nZXRTYXR1cmF0aW9uOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3JlZjpcInNhdHVyYXRpb25cIixzdGF0aWNDbGFzczpcInEtY29sb3Itc2F0dXJhdGlvbiBub24tc2VsZWN0YWJsZSByZWxhdGl2ZS1wb3NpdGlvbiBvdmVyZmxvdy1oaWRkZW4gY3Vyc29yLXBvaW50ZXJcIixzdHlsZTp0aGlzLnNhdHVyYXRpb25TdHlsZSxjbGFzczp7cmVhZG9ubHk6IXRoaXMuZWRpdGFibGV9LG9uOnRoaXMuZWRpdGFibGU/e2NsaWNrOnRoaXMuX19zYXR1cmF0aW9uQ2xpY2t9Om51bGwsZGlyZWN0aXZlczp0aGlzLmVkaXRhYmxlP1t7bmFtZTpcInRvdWNoLXBhblwiLG1vZGlmaWVyczp7bWlnaHRQcmV2ZW50OiEwfSx2YWx1ZTp0aGlzLl9fc2F0dXJhdGlvblBhbn1dOm51bGx9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xvci1zYXR1cmF0aW9uLXdoaXRlIGFic29sdXRlLWZ1bGxcIn0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNvbG9yLXNhdHVyYXRpb24tYmxhY2sgYWJzb2x1dGUtZnVsbFwifSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImFic29sdXRlXCIsc3R5bGU6dGhpcy5zYXR1cmF0aW9uUG9pbnRlclN0eWxlfSxbdm9pZCAwIT09dGhpcy5tb2RlbC5oZXg/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY29sb3Itc2F0dXJhdGlvbi1jaXJjbGVcIn0pOm51bGxdKV0pfSxfX2dldFNsaWRlcnM6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY29sb3Itc2xpZGVycyByb3cgaXRlbXMtY2VudGVyXCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xvci1zd2F0Y2ggcS1tdC1zbSBxLW1sLW1kIHEtbWItc20gbm9uLXNlbGVjdGFibGUgb3ZlcmZsb3ctaGlkZGVuXCJ9LFt0KFwiZGl2XCIse3N0eWxlOnRoaXMuc3dhdGNoQ29sb3Isc3RhdGljQ2xhc3M6XCJmaXRcIn0pXSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCBxLXBhLXNtXCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xvci1odWUgbm9uLXNlbGVjdGFibGVcIn0sW3QoUVNsaWRlcix7cHJvcHM6e3ZhbHVlOnRoaXMubW9kZWwuaCxjb2xvcjpcIndoaXRlXCIsbWluOjAsbWF4OjM2MCxmaWxsSGFuZGxlQWx3YXlzOiEwLHJlYWRvbmx5OiF0aGlzLmVkaXRhYmxlfSxvbjp7aW5wdXQ6dGhpcy5fX29uSHVlQ2hhbmdlLGRyYWdlbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIGUuX19vbkh1ZUNoYW5nZSh0LCEwKX19fSldKSx0aGlzLmhhc0FscGhhP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWNvbG9yLWFscGhhIG5vbi1zZWxlY3RhYmxlXCJ9LFt0KFFTbGlkZXIse3Byb3BzOnt2YWx1ZTp0aGlzLm1vZGVsLmEsY29sb3I6XCJ3aGl0ZVwiLG1pbjowLG1heDoxMDAsZmlsbEhhbmRsZUFsd2F5czohMCxyZWFkb25seTohdGhpcy5lZGl0YWJsZX0sb246e2lucHV0OmZ1bmN0aW9uKHQpe3JldHVybiBlLl9fb25OdW1lcmljQ2hhbmdlKHt0YXJnZXQ6e3ZhbHVlOnR9fSxcImFcIiwxMDApfSxkcmFnZW5kOmZ1bmN0aW9uKHQpe3JldHVybiBlLl9fb25OdW1lcmljQ2hhbmdlKHt0YXJnZXQ6e3ZhbHVlOnR9fSxcImFcIiwxMDAsITApfX19KV0pOm51bGxdKV0pfSxfX2dldE51bWVyaWNJbnB1dHM6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5pbnB1dHNBcnJheS5tYXAoZnVuY3Rpb24oaSl7dmFyIHM9XCJhXCI9PT1pPzEwMDoyNTU7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgcS1jb2xvci1wYWRkaW5nXCJ9LFt0KFwiaW5wdXRcIix7YXR0cnM6e3R5cGU6XCJudW1iZXJcIixtaW46MCxtYXg6cyxyZWFkb25seTohZS5lZGl0YWJsZSx0YWJpbmRleDplLmVkaXRhYmxlPzA6LTF9LHN0YXRpY0NsYXNzOlwiZnVsbC13aWR0aCB0ZXh0LWNlbnRlciBxLW5vLWlucHV0LXNwaW5uZXJcIixkb21Qcm9wczp7dmFsdWU6dm9pZCAwPT09ZS5tb2RlbC5oZXg/XCJcIjpNYXRoLnJvdW5kKGUubW9kZWxbaV0pfSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGUuX19vbk51bWVyaWNDaGFuZ2UodCxpLHMpfSxibHVyOmZ1bmN0aW9uKHQpe3JldHVybiBlLmVkaXRhYmxlJiZlLl9fb25OdW1lcmljQ2hhbmdlKHQsaSxzLCEwKX19fSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtY29sb3ItbGFiZWwgdGV4dC1jZW50ZXIgdXBwZXJjYXNlXCJ9LFtpXSldKX0pfSxfX2dldElucHV0czpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xvci1pbnB1dHMgcm93IGl0ZW1zLWNlbnRlciBxLXB4LXNtIHEtcGItc21cIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgcS1tci1zbSByb3cgbm8td3JhcFwifSxcImhleFwiPT09dGhpcy52aWV3P1t0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sXCJ9LFt0KFwiaW5wdXRcIix7ZG9tUHJvcHM6e3ZhbHVlOnRoaXMubW9kZWwuaGV4fSxhdHRyczp7cmVhZG9ubHk6IXRoaXMuZWRpdGFibGUsdGFiaW5kZXg6dGhpcy5lZGl0YWJsZT8wOi0xfSxvbjp7Y2hhbmdlOnRoaXMuX19vbkhleENoYW5nZSxibHVyOmZ1bmN0aW9uKHQpe3JldHVybiBlLmVkaXRhYmxlJiZlLl9fb25IZXhDaGFuZ2UodCwhMCl9fSxzdGF0aWNDbGFzczpcImZ1bGwtd2lkdGggdGV4dC1jZW50ZXIgdXBwZXJjYXNlXCJ9KSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1jb2xvci1sYWJlbCB0ZXh0LWNlbnRlclwifSxbXCJIRVhcIisodGhpcy5oYXNBbHBoYT9cIiAvIEFcIjpcIlwiKV0pXSldOnRoaXMuX19nZXROdW1lcmljSW5wdXRzKHQpKSx0KFwiZGl2XCIsW3QoUUJ0bix7cHJvcHM6e2ZsYXQ6ITAsZGlzYWJsZTp0aGlzLmRpc2FibGV9LG9uOntjbGljazp0aGlzLl9fbmV4dElucHV0Vmlld30sc3RhdGljQ2xhc3M6XCJxLXBhLW5vbmVcIn0sW3QoXCJzdmdcIix7YXR0cnM6e3ZpZXdCb3g6XCIwIDAgMjQgMjRcIn0sc3R5bGU6e3dpZHRoOlwiMjRweFwiLGhlaWdodDpcIjI0cHhcIn19LFt0KFwicGF0aFwiLHthdHRyczp7ZmlsbDpcImN1cnJlbnRDb2xvclwiLGQ6XCJNMTIsMTguMTdMOC44MywxNUw3LjQyLDE2LjQxTDEyLDIxTDE2LjU5LDE2LjQxTDE1LjE3LDE1TTEyLDUuODNMMTUuMTcsOUwxNi41OCw3LjU5TDEyLDNMNy40MSw3LjU5TDguODMsOUwxMiw1LjgzWlwifX0pXSldKV0pXSl9LF9fb25TYXR1cmF0aW9uQ2hhbmdlOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzLiRyZWZzLnNhdHVyYXRpb247aWYocyl7dmFyIG49cy5jbGllbnRXaWR0aCxvPXMuY2xpZW50SGVpZ2h0LHI9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPU1hdGgubWluKG4sTWF0aC5tYXgoMCx0LXIubGVmdCkpO3RoaXMuJHEuaTE4bi5ydGwmJihhPW4tYSk7dmFyIGw9TWF0aC5taW4obyxNYXRoLm1heCgwLGUtci50b3ApKSxjPU1hdGgucm91bmQoMTAwKmEvbiksaD1NYXRoLnJvdW5kKDEwMCpNYXRoLm1heCgwLE1hdGgubWluKDEsLWwvbysxKSkpLHU9aHN2VG9SZ2Ioe2g6dGhpcy5tb2RlbC5oLHM6Yyx2OmgsYTp0aGlzLmhhc0FscGhhP3RoaXMubW9kZWwuYTp2b2lkIDB9KTt0aGlzLm1vZGVsLnM9Yyx0aGlzLm1vZGVsLnY9aCx0aGlzLl9fdXBkYXRlKHUscmdiVG9IZXgodSksaSl9fSxfX29uSHVlQ2hhbmdlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9aHN2VG9SZ2Ioe2g6dD1NYXRoLnJvdW5kKHQpLHM6dGhpcy5tb2RlbC5zLHY6dGhpcy5tb2RlbC52LGE6dGhpcy5oYXNBbHBoYT90aGlzLm1vZGVsLmE6dm9pZCAwfSk7dGhpcy5tb2RlbC5oPXQsdGhpcy5fX3VwZGF0ZShpLHJnYlRvSGV4KGkpLGUpfSxfX29uTnVtZXJpY0NoYW5nZTpmdW5jdGlvbih0LGUsaSxzKXt2YXIgbj1OdW1iZXIodC50YXJnZXQudmFsdWUpO2lmKCFpc05hTihuKSlpZigobj1NYXRoLmZsb29yKG4pKTwwfHxuPmkpcyYmdGhpcy4kZm9yY2VVcGRhdGUoKTtlbHNle3ZhciBvPXtyOlwiclwiPT09ZT9uOnRoaXMubW9kZWwucixnOlwiZ1wiPT09ZT9uOnRoaXMubW9kZWwuZyxiOlwiYlwiPT09ZT9uOnRoaXMubW9kZWwuYixhOnRoaXMuaGFzQWxwaGE/XCJhXCI9PT1lP246dGhpcy5tb2RlbC5hOnZvaWQgMH07aWYoXCJhXCIhPT1lKXt2YXIgcj1yZ2JUb0hzdihvKTt0aGlzLm1vZGVsLmg9ci5oLHRoaXMubW9kZWwucz1yLnMsdGhpcy5tb2RlbC52PXIudn10aGlzLl9fdXBkYXRlKG8scmdiVG9IZXgobykscyl9fSxfX29uSGV4Q2hhbmdlOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dC50YXJnZXQudmFsdWUscz1pLmxlbmd0aCxuPXRoaXMuaGFzQWxwaGE/WzUsOV06WzQsN107aWYocz09PW5bMF18fHM9PT1uWzFdKXt2YXIgbz1oZXhUb1JnYihpKSxyPXJnYlRvSHN2KG8pO3RoaXMubW9kZWwuaD1yLmgsdGhpcy5tb2RlbC5zPXIucyx0aGlzLm1vZGVsLnY9ci52LHRoaXMuX191cGRhdGUobyxpLGUpfWVsc2UgZSYmdGhpcy4kZm9yY2VVcGRhdGUoKX0sX191cGRhdGU6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXMsbj10aGlzLmlzT3V0cHV0SGV4P2U6dDt0aGlzLm1vZGVsLmhleD1lLHRoaXMubW9kZWwucj10LnIsdGhpcy5tb2RlbC5nPXQuZyx0aGlzLm1vZGVsLmI9dC5iLHRoaXMubW9kZWwuYT10aGlzLmhhc0FscGhhP3QuYTp2b2lkIDAsdGhpcy4kZW1pdChcImlucHV0XCIsbiksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtpJiZKU09OLnN0cmluZ2lmeShuKSE9PUpTT04uc3RyaW5naWZ5KHMudmFsdWUpJiZzLiRlbWl0KFwiY2hhbmdlXCIsbil9KX0sX19uZXh0SW5wdXRWaWV3OmZ1bmN0aW9uKCl7dGhpcy52aWV3PVwiaGV4XCI9PT10aGlzLnZpZXc/XCJyZ2JhXCI6XCJoZXhcIn0sX19wYXJzZU1vZGVsOmZ1bmN0aW9uKHQpe2lmKG51bGw9PT10fHx2b2lkIDA9PT10KXJldHVybntoOjAsczowLHY6MCxyOjAsZzowLGI6MCxoZXg6dm9pZCAwLGE6MTAwfTt2YXIgZT1cInN0cmluZ1wiPT10eXBlb2YgdD9oZXhUb1JnYih0LnRyaW0oKSk6Y2xvbmUodCk7cmV0dXJuIHRoaXMuZm9yY2VBbHBoYT09PSh2b2lkIDA9PT1lLmEpJiYoZS5hPXRoaXMuZm9yY2VBbHBoYT8xMDA6dm9pZCAwKSxlLmhleD1yZ2JUb0hleChlKSxPYmplY3QuYXNzaWduKHthOjEwMH0sZSxyZ2JUb0hzdihlKSl9LF9fc2F0dXJhdGlvblBhbjpmdW5jdGlvbih0KXt0LmlzRmluYWw/dGhpcy5fX2RyYWdTdG9wKHQpOnQuaXNGaXJzdD90aGlzLl9fZHJhZ1N0YXJ0KHQpOnRoaXMuX19kcmFnTW92ZSh0KX0sX19kcmFnU3RhcnQ6ZnVuY3Rpb24odCl7c3RvcEFuZFByZXZlbnQodC5ldnQpLHRoaXMuc2F0dXJhdGlvbkRyYWdnaW5nPSEwLHRoaXMuX19zYXR1cmF0aW9uQ2hhbmdlKHQpfSxfX2RyYWdNb3ZlOmZ1bmN0aW9uKHQpe3RoaXMuc2F0dXJhdGlvbkRyYWdnaW5nJiYoc3RvcEFuZFByZXZlbnQodC5ldnQpLHRoaXMuX19zYXR1cmF0aW9uQ2hhbmdlKHQpKX0sX19kcmFnU3RvcDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3N0b3BBbmRQcmV2ZW50KHQuZXZ0KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5zYXR1cmF0aW9uRHJhZ2dpbmc9ITF9LDEwMCksdGhpcy5fX29uU2F0dXJhdGlvbkNoYW5nZSh0LnBvc2l0aW9uLmxlZnQsdC5wb3NpdGlvbi50b3AsITApfSxfX3NhdHVyYXRpb25DaGFuZ2U6ZnVuY3Rpb24odCl7dGhpcy5fX29uU2F0dXJhdGlvbkNoYW5nZSh0LnBvc2l0aW9uLmxlZnQsdC5wb3NpdGlvbi50b3ApfSxfX3NhdHVyYXRpb25DbGljazpmdW5jdGlvbih0KXt0aGlzLnNhdHVyYXRpb25EcmFnZ2luZ3x8dGhpcy5fX29uU2F0dXJhdGlvbkNoYW5nZSh0LnBhZ2VYLXdpbmRvdy5wYWdlWE9mZnNldCx0LnBhZ2VZLXdpbmRvdy5wYWdlWU9mZnNldCwhMCl9fX0sY29udGVudENzcz17bWF4V2lkdGg6XCI5NXZ3XCIsbWF4SGVpZ2h0OlwiOTh2aFwifSxRQ29sb3I9e25hbWU6XCJRQ29sb3JcIixtaXhpbnM6W0ZyYW1lTWl4aW4sRGlzcGxheU1vZGVNaXhpbl0scHJvcHM6e3ZhbHVlOntyZXF1aXJlZDohMH0sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LGRlZmF1bHRWYWx1ZTp7dHlwZTpbU3RyaW5nLE9iamVjdF0sZGVmYXVsdDpudWxsfSxmb3JtYXRNb2RlbDp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImF1dG9cIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wiYXV0b1wiLFwiaGV4XCIsXCJyZ2JcIixcImhleGFcIixcInJnYmFcIl0uaW5jbHVkZXModCl9fSxkaXNwbGF5VmFsdWU6U3RyaW5nLG9rTGFiZWw6U3RyaW5nLGNhbmNlbExhYmVsOlN0cmluZ30sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpeyF0aGlzLmRpc2FibGUmJnRoaXMuaXNQb3BvdmVyJiYodGhpcy5tb2RlbD1jbG9uZSh0KSl9fSxkYXRhOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5pc1BvcG92ZXI/e306e3RyYW5zaXRpb246XCJxLW1vZGFsXCJ9O3JldHVybiB0LmZvY3VzZWQ9ITEsdC5tb2RlbD1jbG9uZSh0aGlzLnZhbHVlfHx0aGlzLmRlZmF1bHRWYWx1ZSksdH0sY29tcHV0ZWQ6e2FjdHVhbFZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGlzcGxheVZhbHVlP3RoaXMuZGlzcGxheVZhbHVlOnRoaXMudmFsdWU/XCJzdHJpbmdcIj09dHlwZW9mIHRoaXMudmFsdWU/dGhpcy52YWx1ZTpcInJnYlwiKyh2b2lkIDAhPT10aGlzLnZhbHVlLmE/XCJhXCI6XCJcIikrXCIoXCIrdGhpcy52YWx1ZS5yK1wiLFwiK3RoaXMudmFsdWUuZytcIixcIit0aGlzLnZhbHVlLmIrKHZvaWQgMCE9PXRoaXMudmFsdWUuYT9cIixcIit0aGlzLnZhbHVlLmEvMTAwOlwiXCIpK1wiKVwiOlwiXCJ9LGNvbXB1dGVkQ2xlYXJWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzLmNsZWFyVmFsdWU/dGhpcy5kZWZhdWx0VmFsdWU6dGhpcy5jbGVhclZhbHVlfSxpc0NsZWFyYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkaXRhYmxlJiZ0aGlzLmNsZWFyYWJsZSYmSlNPTi5zdHJpbmdpZnkodGhpcy5jb21wdXRlZENsZWFyVmFsdWUpIT09SlNPTi5zdHJpbmdpZnkodGhpcy52YWx1ZSl9LG1vZGFsQnRuQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb2xvcn19LG1ldGhvZHM6e3RvZ2dsZTpmdW5jdGlvbigpe3RoaXMuJHJlZnMucG9wdXAmJnRoaXNbdGhpcy4kcmVmcy5wb3B1cC5zaG93aW5nP1wiaGlkZVwiOlwic2hvd1wiXSgpfSxzaG93OmZ1bmN0aW9uKCl7aWYoIXRoaXMuZGlzYWJsZSlyZXR1cm4gdGhpcy5fX3NldE1vZGVsKHRoaXMudmFsdWV8fHRoaXMuZGVmYXVsdFZhbHVlKSx0aGlzLiRyZWZzLnBvcHVwLnNob3coKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRyZWZzLnBvcHVwP3RoaXMuJHJlZnMucG9wdXAuaGlkZSgpOlByb21pc2UucmVzb2x2ZSgpfSxfX2hhbmRsZUtleURvd246ZnVuY3Rpb24odCl7c3dpdGNoKGdldEV2ZW50S2V5KHQpKXtjYXNlIDEzOmNhc2UgMzI6cmV0dXJuIHN0b3BBbmRQcmV2ZW50KHQpLHRoaXMuc2hvdygpO2Nhc2UgODp0aGlzLmlzQ2xlYXJhYmxlJiZ0aGlzLmNsZWFyKCl9fSxfX29uRm9jdXM6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGV8fHRoaXMuZm9jdXNlZHx8KHRoaXMubW9kZWw9Y2xvbmUodGhpcy52YWx1ZXx8dGhpcy5kZWZhdWx0VmFsdWUpLHRoaXMuZm9jdXNlZD0hMCx0aGlzLiRlbWl0KFwiZm9jdXNcIikpfSxfX29uQmx1cjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuZm9jdXNlZCYmc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7ZS4kcmVmcy5wb3B1cCYmZS4kcmVmcy5wb3B1cC5zaG93aW5nJiYodD09PWRvY3VtZW50LmJvZHl8fGUuJHJlZnMucG9wdXAuJGVsLmNvbnRhaW5zKHQpKXx8KGUuX19vbkhpZGUoKSxlLmhpZGUoKSl9LDEpfSxfX29uSGlkZTpmdW5jdGlvbih0LGUpeyh0fHx0aGlzLmlzUG9wb3ZlcikmJnRoaXMuX191cGRhdGUodCksdGhpcy5mb2N1c2VkJiYoZT90aGlzLiRlbC5mb2N1cygpOih0aGlzLiRlbWl0KFwiYmx1clwiKSx0aGlzLmZvY3VzZWQ9ITEpKX0sX19zZXRNb2RlbDpmdW5jdGlvbih0LGUpe3RoaXMubW9kZWw9Y2xvbmUodCksKGV8fHRoaXMuaXNQb3BvdmVyKSYmdGhpcy5fX3VwZGF0ZShlKX0sX19oYXNNb2RlbENoYW5nZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5tb2RlbCkhPT1KU09OLnN0cmluZ2lmeSh0aGlzLnZhbHVlKX0sX191cGRhdGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe2UuX19oYXNNb2RlbENoYW5nZWQoKSYmKGUuJGVtaXQoXCJpbnB1dFwiLGUubW9kZWwpLHQmJmUuJGVtaXQoXCJjaGFuZ2VcIixlLm1vZGVsKSl9KX0sX19nZXRQaWNrZXI6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLHM9W3QoUUNvbG9yUGlja2VyLHtzdGF0aWNDbGFzczpcIm5vLWJvcmRlclwiKyhlP1wiIGZ1bGwtd2lkdGhcIjpcIlwiKSxwcm9wczpPYmplY3QuYXNzaWduKHt9LHRoaXMuJGF0dHJzLHt2YWx1ZTp0aGlzLm1vZGVsLGRpc2FibGU6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHksZm9ybWF0TW9kZWw6dGhpcy5mb3JtYXRNb2RlbCxkYXJrOnRoaXMuZGFyayxub1BhcmVudEZpZWxkOiEwfSksb246e2lucHV0OmZ1bmN0aW9uKHQpe3JldHVybiBpLiRuZXh0VGljayhmdW5jdGlvbigpe3JldHVybiBpLl9fc2V0TW9kZWwodCl9KX19fSldO3JldHVybiBlJiZzLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcIm1vZGFsLWJ1dHRvbnMgbW9kYWwtYnV0dG9ucy10b3Agcm93IGZ1bGwtd2lkdGhcIixjbGFzczp0aGlzLmRhcms/XCJiZy1ibGFja1wiOm51bGx9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sXCJ9KSx0KFFCdG4se3Byb3BzOntjb2xvcjp0aGlzLm1vZGFsQnRuQ29sb3IsZmxhdDohMCxsYWJlbDp0aGlzLmNhbmNlbExhYmVsfHx0aGlzLiRxLmkxOG4ubGFiZWwuY2FuY2VsLG5vUmlwcGxlOiEwfSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtpLl9fb25IaWRlKCExLCEwKSxpLmhpZGUoKX19fSksdGhpcy5lZGl0YWJsZT90KFFCdG4se3Byb3BzOntjb2xvcjp0aGlzLm1vZGFsQnRuQ29sb3IsZmxhdDohMCxsYWJlbDp0aGlzLm9rTGFiZWx8fHRoaXMuJHEuaTE4bi5sYWJlbC5zZXQsbm9SaXBwbGU6ITAsZGlzYWJsZTohdGhpcy5tb2RlbH0sb246e2NsaWNrOmZ1bmN0aW9uKCl7aS5fX29uSGlkZSghMCwhMCksaS5oaWRlKCl9fX0pOm51bGxdKSksc319LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFFJbnB1dEZyYW1lLHtzdGF0aWNDbGFzczpcInEtY29sb3ItaW5wdXRcIixwcm9wczp7cHJlZml4OnRoaXMucHJlZml4LHN1ZmZpeDp0aGlzLnN1ZmZpeCxzdGFja0xhYmVsOnRoaXMuc3RhY2tMYWJlbCxmbG9hdExhYmVsOnRoaXMuZmxvYXRMYWJlbCxlcnJvcjp0aGlzLmVycm9yLHdhcm5pbmc6dGhpcy53YXJuaW5nLGRpc2FibGU6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHksaW52ZXJ0ZWQ6dGhpcy5pbnZlcnRlZCxpbnZlcnRlZExpZ2h0OnRoaXMuaW52ZXJ0ZWRMaWdodCxkYXJrOnRoaXMuZGFyayxoaWRlVW5kZXJsaW5lOnRoaXMuaGlkZVVuZGVybGluZSxiZWZvcmU6dGhpcy5iZWZvcmUsYWZ0ZXI6dGhpcy5hZnRlcixjb2xvcjp0aGlzLmNvbG9yLG5vUGFyZW50RmllbGQ6dGhpcy5ub1BhcmVudEZpZWxkLGZvY3VzZWQ6dGhpcy5mb2N1c2VkfHx0aGlzLiRyZWZzLnBvcHVwJiZ0aGlzLiRyZWZzLnBvcHVwLnNob3dpbmcsZm9jdXNhYmxlOiEwLGxlbmd0aDp0aGlzLmFjdHVhbFZhbHVlLmxlbmd0aH0sbmF0aXZlT246e2NsaWNrOnRoaXMudG9nZ2xlLGZvY3VzOnRoaXMuX19vbkZvY3VzLGJsdXI6dGhpcy5fX29uQmx1cixrZXlkb3duOnRoaXMuX19oYW5kbGVLZXlEb3dufX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgcS1pbnB1dC10YXJnZXQgZWxsaXBzaXNcIixjbGFzczp0aGlzLmZha2VJbnB1dENsYXNzZXN9LFt0aGlzLmZha2VJbnB1dFZhbHVlXSksdGhpcy5pc1BvcG92ZXI/dChRUG9wb3Zlcix7cmVmOlwicG9wdXBcIixwcm9wczp7Y292ZXI6ITAsa2VlcE9uU2NyZWVuOiEwLGRpc2FibGU6dGhpcy5kaXNhYmxlLGFuY2hvckNsaWNrOiExLG1heEhlaWdodDpcIjEwMHZoXCJ9LHNsb3Q6XCJhZnRlclwiLG9uOntzaG93OnRoaXMuX19vbkZvY3VzLGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5fX29uSGlkZSghMCwhMCl9fX0sdGhpcy5fX2dldFBpY2tlcih0KSk6dChRTW9kYWwse3JlZjpcInBvcHVwXCIsc3RhdGljQ2xhc3M6XCJ3aXRoLWJhY2tkcm9wXCIscHJvcHM6e2NvbnRlbnRDc3M6Y29udGVudENzcyxtaW5pbWl6ZWQ6ITAscG9zaXRpb246bnVsbCx0cmFuc2l0aW9uOnRoaXMudHJhbnNpdGlvbn0sb246e2Rpc21pc3M6ZnVuY3Rpb24oKXtyZXR1cm4gZS5fX29uSGlkZSghMSwhMCl9fX0sdGhpcy5fX2dldFBpY2tlcih0LCEwKSksdGhpcy5pc0NsZWFyYWJsZT90KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uaW5wdXRbXCJjbGVhclwiKyh0aGlzLmlzSW52ZXJ0ZWQ/XCJJbnZlcnRlZFwiOlwiXCIpXX0sbmF0aXZlT246e2NsaWNrOnRoaXMuY2xlYXJ9LHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCJ9KTpudWxsLHQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi5pbnB1dC5kcm9wZG93bn0sc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIn0pXSl9fSxRQ29udGV4dE1lbnU9e25hbWU6XCJRQ29udGV4dE1lbnVcIixwcm9wczp7ZGlzYWJsZTpCb29sZWFufSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue21vYmlsZTp0aGlzLiRxLnBsYXRmb3JtLmlzLm1vYmlsZX19LG1ldGhvZHM6e2hpZGU6ZnVuY3Rpb24odCl7aWYodGhpcy4kcmVmcy5wb3B1cClyZXR1cm4gdGhpcy5tb2JpbGUmJnRoaXMudGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoXCJub24tc2VsZWN0YWJsZVwiKSx0aGlzLiRyZWZzLnBvcHVwLmhpZGUodCl9LHNob3c6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLmRpc2FibGV8fCh0aGlzLm1vYmlsZT90aGlzLiRyZWZzLnBvcHVwJiYodGhpcy5ldmVudD10LHRoaXMuJHJlZnMucG9wdXAuc2hvdyh0KSk6dCYmKHN0b3BBbmRQcmV2ZW50KHQpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLiRyZWZzLnBvcHVwJiYoZS5ldmVudD10LGUuJHJlZnMucG9wdXAuc2hvdyh0KSl9LDEwMCkpKX0sX19kZXNrdG9wQm9keUhpZGU6ZnVuY3Rpb24odCl7dGhpcy4kZWwuY29udGFpbnModC50YXJnZXQpfHx0aGlzLmhpZGUodCl9LF9fZGVza3RvcE9uU2hvdzpmdW5jdGlvbigpe2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcihcImNvbnRleHRtZW51XCIsdGhpcy5fX2Rlc2t0b3BCb2R5SGlkZSwhMCksZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIix0aGlzLl9fZGVza3RvcEJvZHlIaWRlLCEwKSx0aGlzLiRlbWl0KFwic2hvd1wiLHRoaXMuZXZlbnQpfSxfX2Rlc2t0b3BPbkhpZGU6ZnVuY3Rpb24odCl7ZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKFwiY29udGV4dG1lbnVcIix0aGlzLl9fZGVza3RvcEJvZHlIaWRlLCEwKSxkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLHRoaXMuX19kZXNrdG9wQm9keUhpZGUsITApLHRoaXMuJGVtaXQoXCJoaWRlXCIsdGhpcy5ldmVudCx0KX0sX19tb2JpbGVUb3VjaFN0YXJ0SGFuZGxlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX19tb2JpbGVDbGVhbnVwKCksdCYmdC50b3VjaGVzJiZ0LnRvdWNoZXMubGVuZ3RoPjF8fCh0aGlzLnRhcmdldC5jbGFzc0xpc3QuYWRkKFwibm9uLXNlbGVjdGFibGVcIiksdGhpcy50b3VjaFRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt0JiZzdG9wQW5kUHJldmVudCh0KSxlLl9fbW9iaWxlQ2xlYW51cCgpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLnNob3codCl9LDEwKX0sNjAwKSl9LF9fbW9iaWxlQ2xlYW51cDpmdW5jdGlvbigpe3RoaXMudGFyZ2V0LmNsYXNzTGlzdC5yZW1vdmUoXCJub24tc2VsZWN0YWJsZVwiKSxjbGVhclRpbWVvdXQodGhpcy50b3VjaFRpbWVyKX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLm1vYmlsZT90KFFNb2RhbCx7cmVmOlwicG9wdXBcIixwcm9wczp7bWluaW1pemVkOiEwfSxvbjp7c2hvdzpmdW5jdGlvbigpe2UuJGVtaXQoXCJzaG93XCIsZS5ldmVudCl9LGhpZGU6ZnVuY3Rpb24odCl7ZS4kZW1pdChcImhpZGVcIixlLmV2ZW50LHQpfX19LHRoaXMuJHNsb3RzLmRlZmF1bHQpOnQoUVBvcG92ZXIse3JlZjpcInBvcHVwXCIscHJvcHM6e2FuY2hvckNsaWNrOiExLHRvdWNoUG9zaXRpb246ITB9LG9uOntzaG93OnRoaXMuX19kZXNrdG9wT25TaG93LGhpZGU6dGhpcy5fX2Rlc2t0b3BPbkhpZGV9fSx0aGlzLiRzbG90cy5kZWZhdWx0KX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5tb2JpbGU/dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0LnRhcmdldD10LiRlbC5wYXJlbnROb2RlLHQudGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsdC5fX21vYmlsZVRvdWNoU3RhcnRIYW5kbGVyKSxbXCJ0b3VjaGNhbmNlbFwiLFwidG91Y2htb3ZlXCIsXCJ0b3VjaGVuZFwiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3QudGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZSx0Ll9fbW9iaWxlQ2xlYW51cCl9KX0pOih0aGlzLnRhcmdldD10aGlzLiRlbC5wYXJlbnROb2RlLHRoaXMudGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXCJjb250ZXh0bWVudVwiLHRoaXMuc2hvdykpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLm1vYmlsZT8odGhpcy50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIix0aGlzLl9fbW9iaWxlVG91Y2hTdGFydEhhbmRsZXIpLFtcInRvdWNoY2FuY2VsXCIsXCJ0b3VjaG1vdmVcIixcInRvdWNoZW5kXCJdLmZvckVhY2goZnVuY3Rpb24oZSl7dC50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHQuX19tb2JpbGVDbGVhbnVwKX0pKTp0aGlzLnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY29udGV4dG1lbnVcIix0aGlzLnNob3cpfX0sbW9kZWxWYWxpZGF0b3I9ZnVuY3Rpb24odCl7dmFyIGU9dHlwZW9mIHQ7cmV0dXJuIG51bGw9PT10fHx2b2lkIDA9PT10fHxcIm51bWJlclwiPT09ZXx8XCJzdHJpbmdcIj09PWV8fGlzRGF0ZSh0KX0saW5saW5lPXt2YWx1ZTp7dmFsaWRhdG9yOm1vZGVsVmFsaWRhdG9yLHJlcXVpcmVkOiEwfSxkZWZhdWx0VmFsdWU6e3R5cGU6W1N0cmluZyxOdW1iZXIsRGF0ZV0sZGVmYXVsdDpudWxsfSx0eXBlOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiZGF0ZVwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJkYXRlXCIsXCJ0aW1lXCIsXCJkYXRldGltZVwiXS5pbmNsdWRlcyh0KX19LGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSxkYXJrOkJvb2xlYW4sbWluOnt2YWxpZGF0b3I6bW9kZWxWYWxpZGF0b3IsZGVmYXVsdDpudWxsfSxtYXg6e3ZhbGlkYXRvcjptb2RlbFZhbGlkYXRvcixkZWZhdWx0Om51bGx9LGhlYWRlckxhYmVsOlN0cmluZyxmaXJzdERheU9mV2VlazpOdW1iZXIsZm9ybWF0TW9kZWw6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJhdXRvXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcImF1dG9cIixcImRhdGVcIixcIm51bWJlclwiLFwic3RyaW5nXCJdLmluY2x1ZGVzKHQpfX0sZm9ybWF0MjRoOnt0eXBlOltCb29sZWFuLE51bWJlcl0sZGVmYXVsdDowLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bITAsITEsMF0uaW5jbHVkZXModCl9fSxkZWZhdWx0Vmlldzp7dHlwZTpTdHJpbmcsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcInllYXJcIixcIm1vbnRoXCIsXCJkYXlcIixcImhvdXJcIixcIm1pbnV0ZVwiXS5pbmNsdWRlcyh0KX19LG1pbmltYWw6Qm9vbGVhbn0saW5wdXQ9e2Zvcm1hdDpTdHJpbmcsb2tMYWJlbDpTdHJpbmcsY2FuY2VsTGFiZWw6U3RyaW5nLGRpc3BsYXlWYWx1ZTpTdHJpbmd9LE1JTExJU0VDT05EU19JTl9EQVk9ODY0ZTUsTUlMTElTRUNPTkRTX0lOX0hPVVI9MzZlNSxNSUxMSVNFQ09ORFNfSU5fTUlOVVRFPTZlNCx0b2tlbj0vXFxbKCg/OlteXFxdXFxcXF18XFxcXF18XFxcXCkqKVxcXXxkezEsNH18TXsxLDR9fG17MSwyfXx3ezEsMn18UW98RG98RHsxLDR9fFlZKD86WVkpP3xIezEsMn18aHsxLDJ9fHN7MSwyfXxTezEsM318WnsxLDJ9fGF7MSwyfXxbQVFFeFhdL2cscmVNeVNRTERhdGVUaW1lU3RyPS9eWzAtOV17NH0tWzAtOV17Mn0tWzAtOV17Mn0gWzAtOV17Mn06WzAtOV17Mn06WzAtOV17Mn0oLlswLTldezZ9KT8kLztmdW5jdGlvbiBmb3JtYXRUaW1lem9uZSh0LGUpe3ZvaWQgMD09PWUmJihlPVwiXCIpO3ZhciBpPXQ+MD9cIi1cIjpcIitcIixzPU1hdGguYWJzKHQpLG49cyU2MDtyZXR1cm4gaStwYWQoTWF0aC5mbG9vcihzLzYwKSkrZStwYWQobil9ZnVuY3Rpb24gc2V0TW9udGgodCxlKXt2YXIgaT1uZXcgRGF0ZSh0LmdldEZ1bGxZZWFyKCksZSwwLDAsMCwwLDApLmdldERhdGUoKTt0LnNldE1vbnRoKGUtMSxNYXRoLm1pbihpLHQuZ2V0RGF0ZSgpKSl9ZnVuY3Rpb24gYnVpbGREYXRlVmFsKHQpe3JldHVybiBuZXcgRGF0ZShpc1N0cmluZyh0KSYmbnVsbCE9PXJlTXlTUUxEYXRlVGltZVN0ci5leGVjKHQpP3Quc3Vic3RyaW5nKDAsMjMpLnJlcGxhY2UoXCIgXCIsXCJUXCIpOnQpfWZ1bmN0aW9uIGdldENoYW5nZSh0LGUsaSl7dmFyIHM9YnVpbGREYXRlVmFsKHQpLG49aT8xOi0xO3JldHVybiBPYmplY3Qua2V5cyhlKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKFwibW9udGhcIiE9PXQpe3ZhciBpPVwieWVhclwiPT09dD9cIkZ1bGxZZWFyXCI6Y2FwaXRhbGl6ZShcImRheXNcIj09PXQ/XCJkYXRlXCI6dCk7c1tcInNldFwiK2ldKHNbXCJnZXRcIitpXSgpK24qZVt0XSl9ZWxzZSBzZXRNb250aChzLHMuZ2V0TW9udGgoKSsxK24qZS5tb250aCl9KSxzfWZ1bmN0aW9uIGlzVmFsaWQodCl7aWYoXCJudW1iZXJcIj09dHlwZW9mIHQpcmV0dXJuITA7dmFyIGU9RGF0ZS5wYXJzZSh0KTtyZXR1cm4hMT09PWlzTmFOKGUpfWZ1bmN0aW9uIGJ1aWxkRGF0ZSh0LGUpe3JldHVybiBhZGp1c3REYXRlKG5ldyBEYXRlLHQsZSl9ZnVuY3Rpb24gZ2V0RGF5T2ZXZWVrKHQpe3ZhciBlPWJ1aWxkRGF0ZVZhbCh0KS5nZXREYXkoKTtyZXR1cm4gMD09PWU/NzplfWZ1bmN0aW9uIGdldFdlZWtPZlllYXIodCl7dmFyIGU9bmV3IERhdGUodC5nZXRGdWxsWWVhcigpLHQuZ2V0TW9udGgoKSx0LmdldERhdGUoKSk7ZS5zZXREYXRlKGUuZ2V0RGF0ZSgpLShlLmdldERheSgpKzYpJTcrMyk7dmFyIGk9bmV3IERhdGUoZS5nZXRGdWxsWWVhcigpLDAsNCk7aS5zZXREYXRlKGkuZ2V0RGF0ZSgpLShpLmdldERheSgpKzYpJTcrMyk7dmFyIHM9ZS5nZXRUaW1lem9uZU9mZnNldCgpLWkuZ2V0VGltZXpvbmVPZmZzZXQoKTtlLnNldEhvdXJzKGUuZ2V0SG91cnMoKS1zKTt2YXIgbj0oZS1pKS8oNypNSUxMSVNFQ09ORFNfSU5fREFZKTtyZXR1cm4gMStNYXRoLmZsb29yKG4pfWZ1bmN0aW9uIGlzQmV0d2VlbkRhdGVzKHQsZSxpLHMpe3ZvaWQgMD09PXMmJihzPXt9KTt2YXIgbj1idWlsZERhdGVWYWwoZSkuZ2V0VGltZSgpLG89YnVpbGREYXRlVmFsKGkpLmdldFRpbWUoKSxyPWJ1aWxkRGF0ZVZhbCh0KS5nZXRUaW1lKCk7cmV0dXJuIHMuaW5jbHVzaXZlRnJvbSYmbi0tLHMuaW5jbHVzaXZlVG8mJm8rKyxyPm4mJnI8b31mdW5jdGlvbiBhZGRUb0RhdGUodCxlKXtyZXR1cm4gZ2V0Q2hhbmdlKHQsZSwhMCl9ZnVuY3Rpb24gc3VidHJhY3RGcm9tRGF0ZSh0LGUpe3JldHVybiBnZXRDaGFuZ2UodCxlLCExKX1mdW5jdGlvbiBhZGp1c3REYXRlKHQsZSxpKXt2YXIgcz1idWlsZERhdGVWYWwodCksbj1cInNldFwiKyhpP1wiVVRDXCI6XCJcIik7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goZnVuY3Rpb24odCl7aWYoXCJtb250aFwiIT09dCl7dmFyIGk9XCJ5ZWFyXCI9PT10P1wiRnVsbFllYXJcIjp0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7c1tcIlwiK24raV0oZVt0XSl9ZWxzZSBzZXRNb250aChzLGUubW9udGgpfSksc31mdW5jdGlvbiBzdGFydE9mRGF0ZSh0LGUpe3ZhciBpPWJ1aWxkRGF0ZVZhbCh0KTtzd2l0Y2goZSl7Y2FzZVwieWVhclwiOmkuc2V0TW9udGgoMCk7Y2FzZVwibW9udGhcIjppLnNldERhdGUoMSk7Y2FzZVwiZGF5XCI6aS5zZXRIb3VycygwKTtjYXNlXCJob3VyXCI6aS5zZXRNaW51dGVzKDApO2Nhc2VcIm1pbnV0ZVwiOmkuc2V0U2Vjb25kcygwKTtjYXNlXCJzZWNvbmRcIjppLnNldE1pbGxpc2Vjb25kcygwKX1yZXR1cm4gaX1mdW5jdGlvbiBlbmRPZkRhdGUodCxlKXt2YXIgaT1idWlsZERhdGVWYWwodCk7c3dpdGNoKGUpe2Nhc2VcInllYXJcIjppLnNldE1vbnRoKDExKTtjYXNlXCJtb250aFwiOmkuc2V0RGF0ZShkYXlzSW5Nb250aCh0KSk7Y2FzZVwiZGF5XCI6aS5zZXRIb3VycygyMyk7Y2FzZVwiaG91clwiOmkuc2V0TWludXRlcyg1OSk7Y2FzZVwibWludXRlXCI6aS5zZXRTZWNvbmRzKDU5KTtjYXNlXCJzZWNvbmRcIjppLnNldE1pbGxpc2Vjb25kcyg1OSl9cmV0dXJuIGl9ZnVuY3Rpb24gZ2V0TWF4RGF0ZSh0KXtmb3IodmFyIGU9W10saT1hcmd1bWVudHMubGVuZ3RoLTE7aS0tID4wOyllW2ldPWFyZ3VtZW50c1tpKzFdO3ZhciBzPWJ1aWxkRGF0ZVZhbCh0KTtyZXR1cm4gZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3M9TWF0aC5tYXgocyxidWlsZERhdGVWYWwodCkpfSksc31mdW5jdGlvbiBnZXRNaW5EYXRlKHQpe2Zvcih2YXIgZT1bXSxpPWFyZ3VtZW50cy5sZW5ndGgtMTtpLS0gPjA7KWVbaV09YXJndW1lbnRzW2krMV07dmFyIHM9YnVpbGREYXRlVmFsKHQpO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24odCl7cz1NYXRoLm1pbihzLGJ1aWxkRGF0ZVZhbCh0KSl9KSxzfWZ1bmN0aW9uIGdldERpZmYodCxlLGkpe3JldHVybih0LmdldFRpbWUoKS10LmdldFRpbWV6b25lT2Zmc2V0KCkqTUlMTElTRUNPTkRTX0lOX01JTlVURS0oZS5nZXRUaW1lKCktZS5nZXRUaW1lem9uZU9mZnNldCgpKk1JTExJU0VDT05EU19JTl9NSU5VVEUpKS9pfWZ1bmN0aW9uIGdldERhdGVEaWZmKHQsZSxpKXt2b2lkIDA9PT1pJiYoaT1cImRheXNcIik7dmFyIHM9YnVpbGREYXRlVmFsKHQpLG49YnVpbGREYXRlVmFsKGUpO3N3aXRjaChpKXtjYXNlXCJ5ZWFyc1wiOnJldHVybiBzLmdldEZ1bGxZZWFyKCktbi5nZXRGdWxsWWVhcigpO2Nhc2VcIm1vbnRoc1wiOnJldHVybiAxMioocy5nZXRGdWxsWWVhcigpLW4uZ2V0RnVsbFllYXIoKSkrcy5nZXRNb250aCgpLW4uZ2V0TW9udGgoKTtjYXNlXCJkYXlzXCI6cmV0dXJuIGdldERpZmYoc3RhcnRPZkRhdGUocyxcImRheVwiKSxzdGFydE9mRGF0ZShuLFwiZGF5XCIpLE1JTExJU0VDT05EU19JTl9EQVkpO2Nhc2VcImhvdXJzXCI6cmV0dXJuIGdldERpZmYoc3RhcnRPZkRhdGUocyxcImhvdXJcIiksc3RhcnRPZkRhdGUobixcImhvdXJcIiksTUlMTElTRUNPTkRTX0lOX0hPVVIpO2Nhc2VcIm1pbnV0ZXNcIjpyZXR1cm4gZ2V0RGlmZihzdGFydE9mRGF0ZShzLFwibWludXRlXCIpLHN0YXJ0T2ZEYXRlKG4sXCJtaW51dGVcIiksTUlMTElTRUNPTkRTX0lOX01JTlVURSk7Y2FzZVwic2Vjb25kc1wiOnJldHVybiBnZXREaWZmKHN0YXJ0T2ZEYXRlKHMsXCJzZWNvbmRcIiksc3RhcnRPZkRhdGUobixcInNlY29uZFwiKSwxZTMpfX1mdW5jdGlvbiBnZXREYXlPZlllYXIodCl7cmV0dXJuIGdldERhdGVEaWZmKHQsc3RhcnRPZkRhdGUodCxcInllYXJcIiksXCJkYXlzXCIpKzF9ZnVuY3Rpb24gaW5mZXJEYXRlRm9ybWF0KHQpe3JldHVybiBpc0RhdGUodCk/XCJkYXRlXCI6XCJudW1iZXJcIj09dHlwZW9mIHQ/XCJudW1iZXJcIjpcInN0cmluZ1wifWZ1bmN0aW9uIGNvbnZlcnREYXRlVG9Gb3JtYXQodCxlLGkpe2lmKHR8fDA9PT10KXN3aXRjaChlKXtjYXNlXCJkYXRlXCI6cmV0dXJuIHQ7Y2FzZVwibnVtYmVyXCI6cmV0dXJuIHQuZ2V0VGltZSgpO2RlZmF1bHQ6cmV0dXJuIGZvcm1hdERhdGUodCxpKX19ZnVuY3Rpb24gZ2V0RGF0ZUJldHdlZW4odCxlLGkpe3ZhciBzPWJ1aWxkRGF0ZVZhbCh0KTtpZihlKXt2YXIgbj1idWlsZERhdGVWYWwoZSk7aWYoczxuKXJldHVybiBufWlmKGkpe3ZhciBvPWJ1aWxkRGF0ZVZhbChpKTtpZihzPm8pcmV0dXJuIG99cmV0dXJuIHN9ZnVuY3Rpb24gaXNTYW1lRGF0ZSh0LGUsaSl7dmFyIHM9YnVpbGREYXRlVmFsKHQpLG49YnVpbGREYXRlVmFsKGUpO2lmKHZvaWQgMD09PWkpcmV0dXJuIHMuZ2V0VGltZSgpPT09bi5nZXRUaW1lKCk7c3dpdGNoKGkpe2Nhc2VcInNlY29uZFwiOmlmKHMuZ2V0U2Vjb25kcygpIT09bi5nZXRTZWNvbmRzKCkpcmV0dXJuITE7Y2FzZVwibWludXRlXCI6aWYocy5nZXRNaW51dGVzKCkhPT1uLmdldE1pbnV0ZXMoKSlyZXR1cm4hMTtjYXNlXCJob3VyXCI6aWYocy5nZXRIb3VycygpIT09bi5nZXRIb3VycygpKXJldHVybiExO2Nhc2VcImRheVwiOmlmKHMuZ2V0RGF0ZSgpIT09bi5nZXREYXRlKCkpcmV0dXJuITE7Y2FzZVwibW9udGhcIjppZihzLmdldE1vbnRoKCkhPT1uLmdldE1vbnRoKCkpcmV0dXJuITE7Y2FzZVwieWVhclwiOmlmKHMuZ2V0RnVsbFllYXIoKSE9PW4uZ2V0RnVsbFllYXIoKSlyZXR1cm4hMTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihcImRhdGUgaXNTYW1lRGF0ZSB1bmtub3duIHVuaXQgXCIraSl9cmV0dXJuITB9ZnVuY3Rpb24gZGF5c0luTW9udGgodCl7cmV0dXJuIG5ldyBEYXRlKHQuZ2V0RnVsbFllYXIoKSx0LmdldE1vbnRoKCkrMSwwKS5nZXREYXRlKCl9ZnVuY3Rpb24gZ2V0T3JkaW5hbCh0KXtpZih0Pj0xMSYmdDw9MTMpcmV0dXJuIHQrXCJ0aFwiO3N3aXRjaCh0JTEwKXtjYXNlIDE6cmV0dXJuIHQrXCJzdFwiO2Nhc2UgMjpyZXR1cm4gdCtcIm5kXCI7Y2FzZSAzOnJldHVybiB0K1wicmRcIn1yZXR1cm4gdCtcInRoXCJ9dmFyIGZvcm1hdHRlcj17WVk6ZnVuY3Rpb24odCl7cmV0dXJuIHBhZCh0LmdldEZ1bGxZZWFyKCksNCkuc3Vic3RyKDIpfSxZWVlZOmZ1bmN0aW9uKHQpe3JldHVybiBwYWQodC5nZXRGdWxsWWVhcigpLDQpfSxNOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1vbnRoKCkrMX0sTU06ZnVuY3Rpb24odCl7cmV0dXJuIHBhZCh0LmdldE1vbnRoKCkrMSl9LE1NTTpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSksKGUubW9udGhOYW1lc1Nob3J0fHxpMThuLmxhbmcuZGF0ZS5tb250aHNTaG9ydClbdC5nZXRNb250aCgpXX0sTU1NTTpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSksKGUubW9udGhOYW1lc3x8aTE4bi5sYW5nLmRhdGUubW9udGhzKVt0LmdldE1vbnRoKCldfSxROmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmNlaWwoKHQuZ2V0TW9udGgoKSsxKS8zKX0sUW86ZnVuY3Rpb24odCl7cmV0dXJuIGdldE9yZGluYWwodGhpcy5RKHQpKX0sRDpmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXREYXRlKCl9LERvOmZ1bmN0aW9uKHQpe3JldHVybiBnZXRPcmRpbmFsKHQuZ2V0RGF0ZSgpKX0sREQ6ZnVuY3Rpb24odCl7cmV0dXJuIHBhZCh0LmdldERhdGUoKSl9LERERDpmdW5jdGlvbih0KXtyZXR1cm4gZ2V0RGF5T2ZZZWFyKHQpfSxEREREOmZ1bmN0aW9uKHQpe3JldHVybiBwYWQoZ2V0RGF5T2ZZZWFyKHQpLDMpfSxkOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldERheSgpfSxkZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kZGRkKHQpLnNsaWNlKDAsMil9LGRkZDpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSksKGUuZGF5TmFtZXNTaG9ydHx8aTE4bi5sYW5nLmRhdGUuZGF5c1Nob3J0KVt0LmdldERheSgpXX0sZGRkZDpmdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSksKGUuZGF5TmFtZXN8fGkxOG4ubGFuZy5kYXRlLmRheXMpW3QuZ2V0RGF5KCldfSxFOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldERheSgpfHw3fSx3OmZ1bmN0aW9uKHQpe3JldHVybiBnZXRXZWVrT2ZZZWFyKHQpfSx3dzpmdW5jdGlvbih0KXtyZXR1cm4gcGFkKGdldFdlZWtPZlllYXIodCkpfSxIOmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEhvdXJzKCl9LEhIOmZ1bmN0aW9uKHQpe3JldHVybiBwYWQodC5nZXRIb3VycygpKX0saDpmdW5jdGlvbih0KXt2YXIgZT10LmdldEhvdXJzKCk7cmV0dXJuIDA9PT1lPzEyOmU+MTI/ZSUxMjplfSxoaDpmdW5jdGlvbih0KXtyZXR1cm4gcGFkKHRoaXMuaCh0KSl9LG06ZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0TWludXRlcygpfSxtbTpmdW5jdGlvbih0KXtyZXR1cm4gcGFkKHQuZ2V0TWludXRlcygpKX0sczpmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRTZWNvbmRzKCl9LHNzOmZ1bmN0aW9uKHQpe3JldHVybiBwYWQodC5nZXRTZWNvbmRzKCkpfSxTOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmZsb29yKHQuZ2V0TWlsbGlzZWNvbmRzKCkvMTAwKX0sU1M6ZnVuY3Rpb24odCl7cmV0dXJuIHBhZChNYXRoLmZsb29yKHQuZ2V0TWlsbGlzZWNvbmRzKCkvMTApKX0sU1NTOmZ1bmN0aW9uKHQpe3JldHVybiBwYWQodC5nZXRNaWxsaXNlY29uZHMoKSwzKX0sQTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5IKHQpPDEyP1wiQU1cIjpcIlBNXCJ9LGE6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuSCh0KTwxMj9cImFtXCI6XCJwbVwifSxhYTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5IKHQpPDEyP1wiYS5tLlwiOlwicC5tLlwifSxaOmZ1bmN0aW9uKHQpe3JldHVybiBmb3JtYXRUaW1lem9uZSh0LmdldFRpbWV6b25lT2Zmc2V0KCksXCI6XCIpfSxaWjpmdW5jdGlvbih0KXtyZXR1cm4gZm9ybWF0VGltZXpvbmUodC5nZXRUaW1lem9uZU9mZnNldCgpKX0sWDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5mbG9vcih0LmdldFRpbWUoKS8xZTMpfSx4OmZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFRpbWUoKX19O2Z1bmN0aW9uIGZvcm1hdERhdGUodCxlLGkpe2lmKHZvaWQgMD09PWUmJihlPVwiWVlZWS1NTS1ERFRISDptbTpzcy5TU1NaXCIpLDA9PT10fHx0KXt2YXIgcz1idWlsZERhdGVWYWwodCk7cmV0dXJuIGUucmVwbGFjZSh0b2tlbixmdW5jdGlvbih0LGUpe3JldHVybiB0IGluIGZvcm1hdHRlcj9mb3JtYXR0ZXJbdF0ocyxpKTp2b2lkIDA9PT1lP3Q6ZS5zcGxpdChcIlxcXFxdXCIpLmpvaW4oXCJdXCIpfSl9fWZ1bmN0aW9uIG1hdGNoRm9ybWF0KHQpe3JldHVybiB2b2lkIDA9PT10JiYodD1cIlwiKSx0Lm1hdGNoKHRva2VuKX1mdW5jdGlvbiBjbG9uZSQxKHQpe3JldHVybiBpc0RhdGUodCk/bmV3IERhdGUodC5nZXRUaW1lKCkpOnR9dmFyIGRhdGU9e2lzVmFsaWQ6aXNWYWxpZCxidWlsZERhdGU6YnVpbGREYXRlLGdldERheU9mV2VlazpnZXREYXlPZldlZWssZ2V0V2Vla09mWWVhcjpnZXRXZWVrT2ZZZWFyLGlzQmV0d2VlbkRhdGVzOmlzQmV0d2VlbkRhdGVzLGFkZFRvRGF0ZTphZGRUb0RhdGUsc3VidHJhY3RGcm9tRGF0ZTpzdWJ0cmFjdEZyb21EYXRlLGFkanVzdERhdGU6YWRqdXN0RGF0ZSxzdGFydE9mRGF0ZTpzdGFydE9mRGF0ZSxlbmRPZkRhdGU6ZW5kT2ZEYXRlLGdldE1heERhdGU6Z2V0TWF4RGF0ZSxnZXRNaW5EYXRlOmdldE1pbkRhdGUsZ2V0RGF0ZURpZmY6Z2V0RGF0ZURpZmYsZ2V0RGF5T2ZZZWFyOmdldERheU9mWWVhcixpbmZlckRhdGVGb3JtYXQ6aW5mZXJEYXRlRm9ybWF0LGNvbnZlcnREYXRlVG9Gb3JtYXQ6Y29udmVydERhdGVUb0Zvcm1hdCxnZXREYXRlQmV0d2VlbjpnZXREYXRlQmV0d2Vlbixpc1NhbWVEYXRlOmlzU2FtZURhdGUsZGF5c0luTW9udGg6ZGF5c0luTW9udGgsZm9ybWF0dGVyOmZvcm1hdHRlcixmb3JtYXREYXRlOmZvcm1hdERhdGUsbWF0Y2hGb3JtYXQ6bWF0Y2hGb3JtYXQsY2xvbmU6Y2xvbmUkMX0scmVEYXRlPS9eXFxkezR9W15cXGRdXFxkezJ9W15cXGRdXFxkezJ9LyxEYXRlTWl4aW49e3Byb3BzOmlubGluZSxjb21wdXRlZDp7Y29tcHV0ZWRWYWx1ZTpmdW5jdGlvbigpe3JldHVyblwiZGF0ZVwiPT09dGhpcy50eXBlJiZcInN0cmluZ1wiPT09dGhpcy5mb3JtYXRNb2RlbCYmcmVEYXRlLnRlc3QodGhpcy52YWx1ZSk/dGhpcy52YWx1ZS5zbGljZSgwLDEwKS5zcGxpdCgvW15cXGRdLykuam9pbihcIi9cIik6dGhpcy52YWx1ZX0sY29tcHV0ZWREZWZhdWx0VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5cImRhdGVcIj09PXRoaXMudHlwZSYmXCJzdHJpbmdcIj09PXRoaXMuZm9ybWF0TW9kZWwmJnJlRGF0ZS50ZXN0KHRoaXMuZGVmYXVsdFZhbHVlKT90aGlzLmRlZmF1bHRWYWx1ZS5zbGljZSgwLDEwKS5zcGxpdCgvW15cXGRdKy8pLmpvaW4oXCIvXCIpOnRoaXMuZGVmYXVsdFZhbHVlfSxjb21wdXRlZERhdGVGb3JtYXQ6ZnVuY3Rpb24oKXtpZihcImRhdGVcIj09PXRoaXMudHlwZSYmXCJzdHJpbmdcIj09PXRoaXMuZm9ybWF0TW9kZWwpcmV0dXJuXCJZWVlZL01NL0REIEhIOm1tOnNzXCJ9LG1vZGVsOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaXNWYWxpZCh0aGlzLmNvbXB1dGVkVmFsdWUpP25ldyBEYXRlKHRoaXMuY29tcHV0ZWRWYWx1ZSk6dGhpcy5jb21wdXRlZERlZmF1bHRWYWx1ZT9uZXcgRGF0ZSh0aGlzLmNvbXB1dGVkRGVmYXVsdFZhbHVlKTpzdGFydE9mRGF0ZShuZXcgRGF0ZSxcImRheVwiKX0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1jb252ZXJ0RGF0ZVRvRm9ybWF0KGdldERhdGVCZXR3ZWVuKHQsdGhpcy5wbWluLHRoaXMucG1heCksXCJhdXRvXCI9PT10aGlzLmZvcm1hdE1vZGVsP2luZmVyRGF0ZUZvcm1hdCh0aGlzLnZhbHVlKTp0aGlzLmZvcm1hdE1vZGVsLHRoaXMuY29tcHV0ZWREYXRlRm9ybWF0KTt0aGlzLiRlbWl0KFwiaW5wdXRcIixpKSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe2lzU2FtZURhdGUoaSxlLnZhbHVlKXx8ZS4kZW1pdChcImNoYW5nZVwiLGkpfSl9fSxwbWluOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWluP25ldyBEYXRlKHRoaXMubWluKTpudWxsfSxwbWF4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF4P25ldyBEYXRlKHRoaXMubWF4KTpudWxsfSx0eXBlSGFzRGF0ZTpmdW5jdGlvbigpe3JldHVyblwiZGF0ZVwiPT09dGhpcy50eXBlfHxcImRhdGV0aW1lXCI9PT10aGlzLnR5cGV9LHR5cGVIYXNUaW1lOmZ1bmN0aW9uKCl7cmV0dXJuXCJ0aW1lXCI9PT10aGlzLnR5cGV8fFwiZGF0ZXRpbWVcIj09PXRoaXMudHlwZX0seWVhcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsLmdldEZ1bGxZZWFyKCl9LG1vbnRoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWwuZ2V0TW9udGgoKSsxfSxkYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb2RlbC5nZXREYXRlKCl9LG1pbnV0ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1vZGVsLmdldE1pbnV0ZXMoKX0sY3VycmVudFllYXI6ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldEZ1bGxZZWFyKCl9LHllYXJJbnRlcnZhbDpmdW5jdGlvbigpe3JldHVybnttaW46bnVsbCE9PXRoaXMucG1pbj90aGlzLnBtaW4uZ2V0RnVsbFllYXIoKToodGhpcy55ZWFyfHx0aGlzLmN1cnJlbnRZZWFyKS04MCxtYXg6bnVsbCE9PXRoaXMucG1heD90aGlzLnBtYXguZ2V0RnVsbFllYXIoKToodGhpcy55ZWFyfHx0aGlzLmN1cnJlbnRZZWFyKSs4MH19LG1vbnRoSW50ZXJ2YWw6ZnVuY3Rpb24oKXtyZXR1cm57bWluOnRoaXMubW9udGhNaW4sbWF4Om51bGwhPT10aGlzLnBtYXgmJnRoaXMucG1heC5nZXRGdWxsWWVhcigpPT09dGhpcy55ZWFyP3RoaXMucG1heC5nZXRNb250aCgpOjExfX0sbW9udGhNaW46ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PXRoaXMucG1pbiYmdGhpcy5wbWluLmdldEZ1bGxZZWFyKCk9PT10aGlzLnllYXI/dGhpcy5wbWluLmdldE1vbnRoKCk6MH0sZGF5c0luTW9udGg6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy55ZWFyLHRoaXMubW9kZWwuZ2V0TW9udGgoKSsxLDApLmdldERhdGUoKX0sZWRpdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5kaXNhYmxlJiYhdGhpcy5yZWFkb25seX0sX19uZWVkc0JvcmRlcjpmdW5jdGlvbigpe3JldHVybiEwfX0sbWV0aG9kczp7dG9nZ2xlQW1QbTpmdW5jdGlvbigpe2lmKHRoaXMuZWRpdGFibGUpe3ZhciB0PXRoaXMubW9kZWwuZ2V0SG91cnMoKSxlPXRoaXMuYW0/MTI6LTEyO3RoaXMubW9kZWw9bmV3IERhdGUobmV3IERhdGUodGhpcy5tb2RlbCkuc2V0SG91cnModCtlKSl9fSxfX3BhcnNlVHlwZVZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuXCJtb250aFwiPT09dD9ub3JtYWxpemVUb0ludGVydmFsKGUsMSwxMik6XCJkYXRlXCI9PT10P25vcm1hbGl6ZVRvSW50ZXJ2YWwoZSwxLHRoaXMuZGF5c0luTW9udGgpOlwieWVhclwiPT09dD9ub3JtYWxpemVUb0ludGVydmFsKGUsdGhpcy55ZWFySW50ZXJ2YWwubWluLHRoaXMueWVhckludGVydmFsLm1heCk6XCJob3VyXCI9PT10P25vcm1hbGl6ZVRvSW50ZXJ2YWwoZSwwLDIzKTpcIm1pbnV0ZVwiPT09dD9ub3JtYWxpemVUb0ludGVydmFsKGUsMCw1OSk6dm9pZCAwfX19O2Z1bmN0aW9uIGNvbnZlcnRUb0FtUG0odCl7cmV0dXJuIDA9PT10PzEyOnQ+PTEzP3QtMTI6dH12YXIgUURhdGV0aW1lUGlja2VyPXtuYW1lOlwiUURhdGV0aW1lUGlja2VyXCIsbWl4aW5zOltEYXRlTWl4aW4sUGFyZW50RmllbGRNaXhpbixDYW5SZW5kZXJNaXhpbl0scHJvcHM6e2RlZmF1bHRWYWx1ZTpbU3RyaW5nLE51bWJlcixEYXRlXSxkaXNhYmxlOkJvb2xlYW4scmVhZG9ubHk6Qm9vbGVhbn0sZGlyZWN0aXZlczp7UmlwcGxlOlJpcHBsZX0sZGF0YTpmdW5jdGlvbigpe3JldHVybnt2aWV3OnRoaXMuX19jYWxjVmlldyh0aGlzLmRlZmF1bHRWaWV3KSxkcmFnZ2luZzohMSxjZW50ZXJDbG9ja1BvczowLGZha2VWYWx1ZTp7eWVhcjpudWxsLG1vbnRoOm51bGx9fX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3R8fCh0aGlzLnZpZXc9W1wiZGF0ZVwiLFwiZGF0ZXRpbWVcIl0uaW5jbHVkZXModGhpcy50eXBlKT9cImRheVwiOlwiaG91clwiKX0sdmlldzpmdW5jdGlvbigpe3RoaXMuX19zY3JvbGxWaWV3KCEwKX0sbW9kZWw6ZnVuY3Rpb24oKXt0aGlzLmZha2VWYWx1ZS5tb250aCE9PXRoaXMubW9udGgmJih0aGlzLmZha2VWYWx1ZS5tb250aD10aGlzLm1vbnRoLHRoaXMuX19zY3JvbGxWaWV3KCkpLHRoaXMuZmFrZVZhbHVlLnllYXIhPT10aGlzLnllYXImJih0aGlzLmZha2VWYWx1ZS55ZWFyPXRoaXMueWVhcix0aGlzLl9fc2Nyb2xsVmlldygpKX19LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZGlzYWJsZSYmdC5wdXNoKFwiZGlzYWJsZWRcIiksdGhpcy5yZWFkb25seSYmdC5wdXNoKFwicmVhZG9ubHlcIiksdGhpcy5kYXJrJiZ0LnB1c2goXCJxLWRhdGV0aW1lLWRhcmtcIiksdGhpcy5taW5pbWFsJiZ0LnB1c2goXCJxLWRhdGV0aW1lLW1pbmltYWxcIiksdGhpcy5jb2xvciYmdC5wdXNoKFwidGV4dC1cIit0aGlzLmNvbG9yKSx0fSxkYXRlQXJyb3c6ZnVuY3Rpb24oKXt2YXIgdD1bdGhpcy4kcS5pY29uLmRhdGV0aW1lLmFycm93TGVmdCx0aGlzLiRxLmljb24uZGF0ZXRpbWUuYXJyb3dSaWdodF07cmV0dXJuIHRoaXMuJHEuaTE4bi5ydGw/dC5yZXZlcnNlKCk6dH0sY29tcHV0ZWRGb3JtYXQyNGg6ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMuZm9ybWF0MjRoP3RoaXMuZm9ybWF0MjRoOnRoaXMuJHEuaTE4bi5kYXRlLmZvcm1hdDI0aH0sY29tcHV0ZWRGaXJzdERheU9mV2VlazpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLmZpcnN0RGF5T2ZXZWVrP3RoaXMuZmlyc3REYXlPZldlZWs6dGhpcy4kcS5pMThuLmRhdGUuZmlyc3REYXlPZldlZWt9LGhlYWRlckRheU5hbWVzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy4kcS5pMThuLmRhdGUuZGF5c1Nob3J0LGU9dGhpcy5jb21wdXRlZEZpcnN0RGF5T2ZXZWVrO3JldHVybiBlPjA/dC5zbGljZShlLDcpLmNvbmNhdCh0LnNsaWNlKDAsZSkpOnR9LGZha2VNb2RlbDpmdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh0aGlzLmZha2VZZWFyLHRoaXMuZmFrZU1vbnRoLTEsMSl9LGZha2VZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmFrZVZhbHVlLnllYXJ8fHRoaXMueWVhcn0sZmFrZU1vbnRoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmFrZVZhbHVlLm1vbnRofHx0aGlzLm1vbnRofSxkYXlzSW5Nb250aDpmdW5jdGlvbigpe3JldHVybiBuZXcgRGF0ZSh0aGlzLmZha2VZZWFyLHRoaXMuZmFrZU1vbnRoLDApLmdldERhdGUoKX0sbW9udGhTdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm5cIlwiK3RoaXMuJHEuaTE4bi5kYXRlLm1vbnRoc1Nob3J0W3RoaXMubW9udGgtMV19LG1vbnRoU3RhbXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcS5pMThuLmRhdGUubW9udGhzW3RoaXMuZmFrZU1vbnRoLTFdK1wiIFwiK3RoaXMuZmFrZVllYXJ9LHdlZWtEYXlTdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oZWFkZXJMYWJlbHx8dGhpcy4kcS5pMThuLmRhdGUuZGF5c1t0aGlzLm1vZGVsLmdldERheSgpXX0sZmlsbGVyRGF5czpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZmFrZU1vZGVsLmdldERheSgpLXRoaXMuY29tcHV0ZWRGaXJzdERheU9mV2VlaztyZXR1cm4gdDwwJiYodCs9NyksdH0sYmVmb3JlTWluRGF5czpmdW5jdGlvbigpe2lmKG51bGw9PT10aGlzLnBtaW4pcmV0dXJuITE7dmFyIHQ9dGhpcy5wbWluLmdldEZ1bGxZZWFyKCksZT10aGlzLnBtaW4uZ2V0TW9udGgoKSsxO3JldHVybiB0PT09dGhpcy5mYWtlWWVhciYmZT09PXRoaXMuZmFrZU1vbnRoP3RoaXMucG1pbi5nZXREYXRlKCktMToodD50aGlzLmZha2VZZWFyfHx0PT09dGhpcy5mYWtlWWVhciYmZT50aGlzLmZha2VNb250aCkmJnRoaXMuZGF5c0luTW9udGh9LGFmdGVyTWF4RGF5czpmdW5jdGlvbigpe2lmKG51bGw9PT10aGlzLnBtYXgpcmV0dXJuITE7dmFyIHQ9dGhpcy5wbWF4LmdldEZ1bGxZZWFyKCksZT10aGlzLnBtYXguZ2V0TW9udGgoKSsxO3JldHVybiB0PT09dGhpcy5mYWtlWWVhciYmZT09PXRoaXMuZmFrZU1vbnRoP3RoaXMuZGF5c0luTW9udGgtdGhpcy5tYXhEYXk6KHQ8dGhpcy5mYWtlWWVhcnx8dD09PXRoaXMuZmFrZVllYXImJmU8dGhpcy5mYWtlTW9udGgpJiZ0aGlzLmRheXNJbk1vbnRofSxtYXhEYXk6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PXRoaXMucG1heD90aGlzLnBtYXguZ2V0RGF0ZSgpOnRoaXMuZGF5c0luTW9udGh9LGRhdGVJbnRlcnZhbDpmdW5jdGlvbigpe3ZhciB0PW51bGw9PT10aGlzLnBtYXh8fCExPT09dGhpcy5hZnRlck1heERheXM/MDp0aGlzLmFmdGVyTWF4RGF5cztyZXR1cm4gdGhpcy5iZWZvcmVNaW5EYXlzPjB8fHQ/e21pbjp0aGlzLmJlZm9yZU1pbkRheXM+MD90aGlzLmJlZm9yZU1pbkRheXMrMToxLG1heDp0aGlzLmRheXNJbk1vbnRoLXR9OnttaW46MSxtYXg6dGhpcy5kYXlzSW5Nb250aH19LGhvdXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1vZGVsLmdldEhvdXJzKCk7cmV0dXJuIHRoaXMuY29tcHV0ZWRGb3JtYXQyNGg/dDpjb252ZXJ0VG9BbVBtKHQpfSxtaW51dGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb2RlbC5nZXRNaW51dGVzKCl9LGFtOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWwuZ2V0SG91cnMoKTw9MTF9LGNsb2NrUG9pbnRlclN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9XCJtaW51dGVcIj09PXRoaXMudmlldyxlPXQ/NjA6MTIsaT1bXCJyb3RhdGUoXCIrKE1hdGgucm91bmQoKHQ/dGhpcy5taW51dGU6dGhpcy5ob3VyKSooMzYwL2UpKS0xODApK1wiZGVnKVwiXTtyZXR1cm4gdHx8IXRoaXMuY29tcHV0ZWRGb3JtYXQyNGh8fHRoaXMuaG91cj4wJiZ0aGlzLmhvdXI8MTN8fGkucHVzaChcInNjYWxlKC43LCAuNylcIikse3RyYW5zZm9ybTppLmpvaW4oXCIgXCIpfX0saXNWYWxpZDpmdW5jdGlvbigpe3JldHVybiBpc1ZhbGlkKHRoaXMudmFsdWUpfSx0b2RheTpmdW5jdGlvbigpe3ZhciB0PW5ldyBEYXRlO3JldHVybiBpc1NhbWVEYXRlKHQsdGhpcy5mYWtlTW9kZWwsXCJtb250aFwiKT90LmdldERhdGUoKTotMX19LG1ldGhvZHM6e3NldFllYXI6ZnVuY3Rpb24odCxlKXt0aGlzLmVkaXRhYmxlJiYoZXx8KHRoaXMudmlldz1cIm1vbnRoXCIpLHRoaXMubW9kZWw9bmV3IERhdGUobmV3IERhdGUodGhpcy5tb2RlbCkuc2V0RnVsbFllYXIodGhpcy5fX3BhcnNlVHlwZVZhbHVlKFwieWVhclwiLHQpKSkpfSxzZXRNb250aDpmdW5jdGlvbih0LGUpe3RoaXMuZWRpdGFibGUmJihlfHwodGhpcy52aWV3PVwiZGF5XCIpLHRoaXMubW9kZWw9YWRqdXN0RGF0ZSh0aGlzLm1vZGVsLHttb250aDp0fSkpfSxtb3ZlRmFrZU1vbnRoOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZmFrZU1vbnRoKyh0PjA/MTotMSksaT10aGlzLmZha2VZZWFyO2lmKGU8MT8oZT0xMixpLT0xKTplPjEyJiYoZT0xLGkrPTEpLG51bGwhPT10aGlzLnBtaW4mJnQ+MCl7dmFyIHM9dGhpcy5wbWluLmdldEZ1bGxZZWFyKCksbj10aGlzLnBtaW4uZ2V0TW9udGgoKSsxO2k8cz8oaT1zLGU9bik6aT09PXMmJmU8biYmKGU9bil9aWYobnVsbCE9PXRoaXMucG1heCYmdDwwKXt2YXIgbz10aGlzLnBtYXguZ2V0RnVsbFllYXIoKSxyPXRoaXMucG1heC5nZXRNb250aCgpKzE7aT5vPyhpPW8sZT1yKTppPT09byYmZT5yJiYoZT1yKX10aGlzLmZha2VWYWx1ZS55ZWFyPWksdGhpcy5mYWtlVmFsdWUubW9udGg9ZX0sc2V0RGF5OmZ1bmN0aW9uKHQsZSxpLHMpe2lmKHRoaXMuZWRpdGFibGUpe2lmKGkmJnMpe3ZhciBuPWFkanVzdERhdGUodGhpcy5tb2RlbCx7bW9udGg6c30pO24uc2V0RnVsbFllYXIodGhpcy5fX3BhcnNlVHlwZVZhbHVlKFwieWVhclwiLGkpKSxuLnNldERhdGUodGhpcy5fX3BhcnNlVHlwZVZhbHVlKFwiZGF0ZVwiLHQpKSx0aGlzLm1vZGVsPW59ZWxzZSB0aGlzLm1vZGVsPW5ldyBEYXRlKG5ldyBEYXRlKHRoaXMubW9kZWwpLnNldERhdGUodGhpcy5fX3BhcnNlVHlwZVZhbHVlKFwiZGF0ZVwiLHQpKSk7ZXx8XCJkYXRlXCIhPT10aGlzLnR5cGU/ZXx8KHRoaXMudmlldz1cImhvdXJcIik6KHRoaXMuJGVtaXQoXCJjYW5DbG9zZVwiKSx0aGlzLm1pbmltYWwmJnRoaXMuc2V0Vmlldyh0aGlzLmRlZmF1bHRWaWV3KSl9fSxzZXRIb3VyOmZ1bmN0aW9uKHQpe3RoaXMuZWRpdGFibGUmJih0PXRoaXMuX19wYXJzZVR5cGVWYWx1ZShcImhvdXJcIix0KSwhdGhpcy5jb21wdXRlZEZvcm1hdDI0aCYmdDwxMiYmIXRoaXMuYW0mJih0Kz0xMiksdGhpcy5tb2RlbD1uZXcgRGF0ZShuZXcgRGF0ZSh0aGlzLm1vZGVsKS5zZXRIb3Vycyh0KSkpfSxzZXRNaW51dGU6ZnVuY3Rpb24odCl7dGhpcy5lZGl0YWJsZSYmKHRoaXMubW9kZWw9bmV3IERhdGUobmV3IERhdGUodGhpcy5tb2RlbCkuc2V0TWludXRlcyh0aGlzLl9fcGFyc2VUeXBlVmFsdWUoXCJtaW51dGVcIix0KSkpKX0sc2V0VmlldzpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fY2FsY1ZpZXcodCk7dGhpcy52aWV3IT09ZSYmKHRoaXMudmlldz1lKX0sX19jYWxjVmlldzpmdW5jdGlvbih0KXtzd2l0Y2godGhpcy50eXBlKXtjYXNlXCJ0aW1lXCI6cmV0dXJuW1wiaG91clwiLFwibWludXRlXCJdLmluY2x1ZGVzKHQpP3Q6XCJob3VyXCI7Y2FzZVwiZGF0ZVwiOnJldHVybltcInllYXJcIixcIm1vbnRoXCIsXCJkYXlcIl0uaW5jbHVkZXModCk/dDpcImRheVwiO2RlZmF1bHQ6cmV0dXJuW1wieWVhclwiLFwibW9udGhcIixcImRheVwiLFwiaG91clwiLFwibWludXRlXCJdLmluY2x1ZGVzKHQpP3Q6XCJkYXlcIn19LF9fcGFkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuKHQ8MTA/ZXx8XCIwXCI6XCJcIikrdH0sX19zY3JvbGxWaWV3OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoXCJ5ZWFyXCI9PT10aGlzLnZpZXd8fFwibW9udGhcIj09PXRoaXMudmlldyl7dCYmc2V0VGltZW91dChmdW5jdGlvbigpe2UuX19zY3JvbGxWaWV3KCl9LDIwMCk7dmFyIGk9dGhpcy4kcmVmcy5zZWxlY3RvcixzPWk/aS5xdWVyeVNlbGVjdG9yKFwiLnEtYnRuOm5vdCguYWN0aXZlKVwiKTpudWxsLG49aT9pLnF1ZXJ5U2VsZWN0b3IoXCIucS1idG4uYWN0aXZlXCIpOm51bGwsbz1pP2kub2Zmc2V0SGVpZ2h0OjA7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt2YXIgdD1cInllYXJcIj09PWUudmlldz9lLnllYXItZS55ZWFySW50ZXJ2YWwubWluOmUubW9udGgtZS5tb250aE1pbi0xO28mJm4mJihpLnNjcm9sbFRvcD10KihzP3Mub2Zmc2V0SGVpZ2h0OjApKyhuLm9mZnNldEhlaWdodC1vKS8yKX0pfX0sX19kcmFnU3RhcnQ6ZnVuY3Rpb24odCxlKXtzdG9wQW5kUHJldmVudCh0KTt2YXIgaT10aGlzLiRyZWZzLmNsb2NrLHM9b2Zmc2V0KGkpO3RoaXMuY2VudGVyQ2xvY2tQb3M9e3RvcDpzLnRvcCtoZWlnaHQoaSkvMixsZWZ0OnMubGVmdCt3aWR0aChpKS8yfSx0aGlzLmRyYWdnaW5nPSEwLHRoaXMuX191cGRhdGVDbG9jayh0LGUpfSxfX2RyYWdNb3ZlOmZ1bmN0aW9uKHQpe3RoaXMuZHJhZ2dpbmcmJihzdG9wQW5kUHJldmVudCh0KSx0aGlzLl9fdXBkYXRlQ2xvY2sodCkpfSxfX2RyYWdTdG9wOmZ1bmN0aW9uKHQsZSl7c3RvcEFuZFByZXZlbnQodCksdGhpcy5kcmFnZ2luZz0hMSx2b2lkIDAhPT10JiZ0aGlzLl9fdXBkYXRlQ2xvY2sodCxlKSxcIm1pbnV0ZVwiPT09dGhpcy52aWV3Pyh0aGlzLiRlbWl0KFwiY2FuQ2xvc2VcIiksdGhpcy5taW5pbWFsJiZ0aGlzLnNldFZpZXcodGhpcy5kZWZhdWx0VmlldykpOnRoaXMudmlldz1cIm1pbnV0ZVwifSxfX3VwZGF0ZUNsb2NrOmZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwIT09ZSlyZXR1cm4gdGhpc1tcImhvdXJcIj09PXRoaXMudmlldz9cInNldEhvdXJcIjpcInNldE1pbnV0ZVwiXShlKTt2YXIgaT1wb3NpdGlvbih0KSxzPU1hdGguYWJzKGkudG9wLXRoaXMuY2VudGVyQ2xvY2tQb3MudG9wKSxuPU1hdGguc3FydChNYXRoLnBvdyhNYXRoLmFicyhpLnRvcC10aGlzLmNlbnRlckNsb2NrUG9zLnRvcCksMikrTWF0aC5wb3coTWF0aC5hYnMoaS5sZWZ0LXRoaXMuY2VudGVyQ2xvY2tQb3MubGVmdCksMikpLG89TWF0aC5hc2luKHMvbikqKDE4MC9NYXRoLlBJKTtpZihvPWkudG9wPHRoaXMuY2VudGVyQ2xvY2tQb3MudG9wP3RoaXMuY2VudGVyQ2xvY2tQb3MubGVmdDxpLmxlZnQ/OTAtbzoyNzArbzp0aGlzLmNlbnRlckNsb2NrUG9zLmxlZnQ8aS5sZWZ0P28rOTA6MjcwLW8sXCJob3VyXCI9PT10aGlzLnZpZXcpe3ZhciByPU1hdGgucm91bmQoby8zMCk7dGhpcy5jb21wdXRlZEZvcm1hdDI0aCYmKHI/bjw4NSYmKHIrPTEyKTpyPW48ODU/MDoxMiksdGhpcy5zZXRIb3VyKHIpfWVsc2UgdGhpcy5zZXRNaW51dGUoTWF0aC5yb3VuZChvLzYpKX0sX19yZXBlYXRUaW1lb3V0OmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heCgxMDAsMzAwLXQqdCoxMCl9LF9fZ2V0VG9wU2VjdGlvbjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9W3RoaXMudHlwZUhhc0RhdGU/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtd2Vla2RheXN0cmluZ1wifSxbdGhpcy53ZWVrRGF5U3RyaW5nXSk6dm9pZCAwLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2xcIn0pXTtpZih0aGlzLnR5cGVIYXNEYXRlKXt2YXIgcz1bdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtZGF0ZXN0cmluZyByb3cganVzdGlmeS1jZW50ZXIgaXRlbXMtZW5kXCJ9LFt0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtbGluayBzbWFsbCBjb2wtYXV0byBjb2wtbWQtMTJcIixjbGFzczp7YWN0aXZlOlwibW9udGhcIj09PXRoaXMudmlld30sYXR0cnM6e3RhYmluZGV4OjB9LG9uOntrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPWdldEV2ZW50S2V5KHQpOzM4PT09aXx8Mzk9PT1pPyhzdG9wQW5kUHJldmVudCh0KSxlLnNldE1vbnRoKGUubW9udGgtMSwhMCkpOjQwPT09aXx8Mzc9PT1pPyhzdG9wQW5kUHJldmVudCh0KSxlLnNldE1vbnRoKGUubW9udGgrMSwhMCkpOjEzIT09aSYmMjAhPT1pfHwoZS52aWV3PVwibW9udGhcIil9fX0sW3QoXCJzcGFuXCIse2F0dHJzOnt0YWJpbmRleDotMX0sb246dGhpcy5kaXNhYmxlP3t9OntjbGljazpmdW5jdGlvbigpe2Uudmlldz1cIm1vbnRoXCJ9fX0sW3RoaXMubW9udGhTdHJpbmddKV0pLHQoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1saW5rIGNvbC1hdXRvIGNvbC1tZC0xMlwiLGNsYXNzOnthY3RpdmU6XCJkYXlcIj09PXRoaXMudmlld30sYXR0cnM6e3RhYmluZGV4OjB9LG9uOntrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPWdldEV2ZW50S2V5KHQpOzM3PT09aXx8Mzg9PT1pPyhzdG9wQW5kUHJldmVudCh0KSxlLnNldERheShlLmRheS0oMzc9PT1pPzE6NyksITApKTozOT09PWl8fDQwPT09aT8oc3RvcEFuZFByZXZlbnQodCksZS5zZXREYXkoZS5kYXkrKDM5PT09aT8xOjcpLCEwKSk6MTMhPT1pJiYyMCE9PWl8fChlLnZpZXc9XCJkYXlcIil9fX0sW3QoXCJzcGFuXCIse2F0dHJzOnt0YWJpbmRleDotMX0sb246dGhpcy5kaXNhYmxlP3t9OntjbGljazpmdW5jdGlvbigpe2Uudmlldz1cImRheVwifX19LFt0aGlzLmRheV0pXSksdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWxpbmsgc21hbGwgY29sLWF1dG8gY29sLW1kLTEyXCIsY2xhc3M6e2FjdGl2ZTpcInllYXJcIj09PXRoaXMudmlld30sYXR0cnM6e3RhYmluZGV4OjB9LG9uOntrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPWdldEV2ZW50S2V5KHQpOzM4PT09aXx8Mzk9PT1pPyhzdG9wQW5kUHJldmVudCh0KSxlLnNldFllYXIoZS55ZWFyLTEsITApKTo0MD09PWl8fDM3PT09aT8oc3RvcEFuZFByZXZlbnQodCksZS5zZXRZZWFyKGUueWVhcisxLCEwKSk6MTMhPT1pJiYyMCE9PWl8fChlLnZpZXc9XCJ5ZWFyXCIpfX19LFt0KFwic3BhblwiLHthdHRyczp7dGFiaW5kZXg6LTF9LG9uOnRoaXMuZGlzYWJsZT97fTp7Y2xpY2s6ZnVuY3Rpb24oKXtlLnZpZXc9XCJ5ZWFyXCJ9fX0sW3RoaXMueWVhcl0pXSldKV07aS5wdXNoKHQoXCJkaXZcIixzKSl9aWYodGhpcy50eXBlSGFzVGltZSl7dmFyIG49IXRoaXMuY29tcHV0ZWRGb3JtYXQyNGgmJnQoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1hbXBtIGNvbHVtblwiLGF0dHJzOnt0YWJpbmRleDowfSxvbjp0aGlzLl9fYW1QbUV2ZW50c30sW3QoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1saW5rXCIsY2xhc3M6e2FjdGl2ZTp0aGlzLmFtfX0sW3QoXCJzcGFuXCIse2F0dHJzOnt0YWJpbmRleDotMX0sb246e2NsaWNrOnRoaXMudG9nZ2xlQW1QbX19LFtcIkFNXCJdKV0pLHQoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1saW5rXCIsY2xhc3M6e2FjdGl2ZTohdGhpcy5hbX19LFt0KFwic3BhblwiLHthdHRyczp7dGFiaW5kZXg6LTF9LG9uOntjbGljazp0aGlzLnRvZ2dsZUFtUG19fSxbXCJQTVwiXSldKV0pLG89W3QoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwiY29sLWF1dG9cIixzdHlsZTp7dGV4dEFsaWduOlwicmlnaHRcIn19LFt0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtbGlua1wiLHN0eWxlOnt0ZXh0QWxpZ246XCJyaWdodFwifSxjbGFzczp7YWN0aXZlOlwiaG91clwiPT09dGhpcy52aWV3fSxhdHRyczp7dGFiaW5kZXg6MH0sb246e2tleWRvd246ZnVuY3Rpb24odCl7dmFyIGk9Z2V0RXZlbnRLZXkodCk7NDA9PT1pfHwzNz09PWk/KHN0b3BBbmRQcmV2ZW50KHQpLGUuc2V0SG91cihlLmhvdXItMSwhMCkpOjM4PT09aXx8Mzk9PT1pPyhzdG9wQW5kUHJldmVudCh0KSxlLnNldEhvdXIoZS5ob3VyKzEsITApKToxMyE9PWkmJjIwIT09aXx8KGUudmlldz1cImhvdXJcIil9fX0sW3QoXCJzcGFuXCIse2F0dHJzOnt0YWJpbmRleDotMX0sb246dGhpcy5kaXNhYmxlP3t9OntjbGljazpmdW5jdGlvbigpe2Uudmlldz1cImhvdXJcIn19fSxbdGhpcy5jb21wdXRlZEZvcm1hdDI0aD90aGlzLl9fcGFkKHRoaXMuaG91cik6dGhpcy5ob3VyXSldKV0pLHQoXCJzcGFuXCIse3N0eWxlOlwib3BhY2l0eTowLjY7XCJ9LFtcIjpcIl0pLHQoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwiY29sLWF1dG8gcm93IG5vLXdyYXAgaXRlbXMtY2VudGVyXCIsc3R5bGU6e3RleHRBbGlnbjpcImxlZnRcIn19LFt0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtbGlua1wiLHN0eWxlOnt0ZXh0QWxpZ246XCJsZWZ0XCJ9LGNsYXNzOnthY3RpdmU6XCJtaW51dGVcIj09PXRoaXMudmlld30sYXR0cnM6e3RhYmluZGV4OjB9LG9uOntrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPWdldEV2ZW50S2V5KHQpOzQwPT09aXx8Mzc9PT1pPyhzdG9wQW5kUHJldmVudCh0KSxlLnNldE1pbnV0ZShlLm1pbnV0ZS0xLCEwKSk6Mzg9PT1pfHwzOT09PWk/KHN0b3BBbmRQcmV2ZW50KHQpLGUuc2V0TWludXRlKGUubWludXRlKzEsITApKToxMyE9PWkmJjIwIT09aXx8KGUudmlldz1cIm1pbnV0ZVwiKX19fSxbdChcInNwYW5cIix7YXR0cnM6e3RhYmluZGV4Oi0xfSxvbjp0aGlzLmRpc2FibGU/e306e2NsaWNrOmZ1bmN0aW9uKCl7ZS52aWV3PVwibWludXRlXCJ9fX0sW3RoaXMuX19wYWQodGhpcy5taW51dGUpXSldKSxuXSldO2kucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS10aW1lIHJvdyBzY3JvbGwgZmxleC1jZW50ZXJcIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWNsb2Nrc3RyaW5nIGNvbCByb3cganVzdGlmeS1jZW50ZXIgaXRlbXMtc3RhcnRcIn0sbyldKSl9cmV0dXJuIGkucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sXCJ9KSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtaGVhZGVyIGNvbHVtbiBuby13cmFwIGl0ZW1zLWNlbnRlclwifSxpKX0sX19nZXRZZWFyVmlldzpmdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcyxpPVt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sLWdyb3dcIn0pXSxzPWZ1bmN0aW9uKHMpe2kucHVzaCh0KFFCdG4se3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1idG4gbm8tYm9yZGVyLXJhZGl1c1wiLGNsYXNzOnthY3RpdmU6cz09PWUueWVhcn0sYXR0cnM6e3RhYmluZGV4Oi0xfSxwcm9wczp7ZmxhdDohMCxkaXNhYmxlOiFlLmVkaXRhYmxlfSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLnNldFllYXIocyl9fX0sW3NdKSl9LG49dGhpcy55ZWFySW50ZXJ2YWwubWluO248PXRoaXMueWVhckludGVydmFsLm1heDtuKyspcyhuKTtyZXR1cm4gaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wtZ3Jvd1wifSkpLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLXZpZXcteWVhciBmaXQgY29sdW1uIG5vLXdyYXBcIn0saSl9LF9fZ2V0TW9udGhWaWV3OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLGk9W3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wtZ3Jvd1wifSldLHM9ZnVuY3Rpb24ocyl7aS5wdXNoKHQoUUJ0bix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWJ0biBuby1ib3JkZXItcmFkaXVzXCIsY2xhc3M6e2FjdGl2ZTpzKzE9PT1lLm1vbnRofSxhdHRyczp7dGFiaW5kZXg6LTF9LHByb3BzOntmbGF0OiEwLGRpc2FibGU6IWUuZWRpdGFibGV9LG9uOntjbGljazpmdW5jdGlvbigpe2Uuc2V0TW9udGgocysxKX19fSxbZS4kcS5pMThuLmRhdGUubW9udGhzW3NdXSkpfSxuPXRoaXMubW9udGhJbnRlcnZhbC5taW47bjw9dGhpcy5tb250aEludGVydmFsLm1heDtuKyspcyhuKTtyZXR1cm4gaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wtZ3Jvd1wifSkpLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLXZpZXctbW9udGggZml0IGNvbHVtbiBuby13cmFwXCJ9LGkpfSxfX2dldERheVZpZXc6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMsaT1bXSxzPXRoaXMuZmFrZU1vbnRoPT09dGhpcy5tb250aCYmdGhpcy5mYWtlWWVhcj09PXRoaXMueWVhcj90aGlzLmRheTotMSxuPTE7bjw9dGhpcy5maWxsZXJEYXlzO24rKylpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtZmlsbGVyZGF5XCJ9KSk7aWYodGhpcy5taW4pZm9yKHZhciBvPTE7bzw9dGhpcy5iZWZvcmVNaW5EYXlzO28rKylpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJvdyBpdGVtcy1jZW50ZXIgY29udGVudC1jZW50ZXIganVzdGlmeS1jZW50ZXIgZGlzYWJsZWRcIixjbGFzczp7XCJxLWRhdGV0aW1lLWRheS1hY3RpdmVcIjplLmlzVmFsaWQmJm89PT1zfX0sW3QoXCJzcGFuXCIsW29dKV0pKTtmb3IodmFyIHI9dGhpcy5kYXRlSW50ZXJ2YWwsYT1yLm1pbixsPXIubWF4LGM9ZnVuY3Rpb24obil7aS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJyb3cgaXRlbXMtY2VudGVyIGNvbnRlbnQtY2VudGVyIGp1c3RpZnktY2VudGVyIGN1cnNvci1wb2ludGVyXCIsY2xhc3M6W2UuY29sb3ImJm49PT1zP1widGV4dC1cIitlLmNvbG9yOm51bGwse1wicS1kYXRldGltZS1kYXktYWN0aXZlXCI6ZS5pc1ZhbGlkJiZuPT09cyxcInEtZGF0ZXRpbWUtZGF5LXRvZGF5XCI6bj09PWUudG9kYXksZGlzYWJsZWQ6IWUuZWRpdGFibGV9XSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLnNldERheShuLCExLGUuZmFrZVllYXIsZS5mYWtlTW9udGgpfX19LFt0KFwic3BhblwiLFtuXSldKSl9LGg9YTtoPD1sO2grKyljKGgpO2lmKHRoaXMubWF4KWZvcih2YXIgdT0xO3U8PXRoaXMuYWZ0ZXJNYXhEYXlzO3UrKylpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJvdyBpdGVtcy1jZW50ZXIgY29udGVudC1jZW50ZXIganVzdGlmeS1jZW50ZXIgZGlzYWJsZWRcIixjbGFzczp7XCJxLWRhdGV0aW1lLWRheS1hY3RpdmVcIjplLmlzVmFsaWQmJnUrZS5tYXhEYXk9PT1zfX0sW3QoXCJzcGFuXCIsW3UrZS5tYXhEYXldKV0pKTtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtdmlldy1kYXlcIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJyb3cgaXRlbXMtY2VudGVyIGNvbnRlbnQtY2VudGVyXCJ9LFt0KFFCdG4se3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1hcnJvd1wiLGF0dHJzOnt0YWJpbmRleDotMX0scHJvcHM6e3JvdW5kOiEwLGRlbnNlOiEwLGZsYXQ6ITAsaWNvbjp0aGlzLmRhdGVBcnJvd1swXSxyZXBlYXRUaW1lb3V0OnRoaXMuX19yZXBlYXRUaW1lb3V0LGRpc2FibGU6dGhpcy5iZWZvcmVNaW5EYXlzPjB8fHRoaXMuZGlzYWJsZXx8dGhpcy5yZWFkb25seX0sb246e2NsaWNrOmZ1bmN0aW9uKCl7ZS5tb3ZlRmFrZU1vbnRoKC0xKX19fSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCBxLWRhdGV0aW1lLW1vbnRoLXN0YW1wXCJ9LFt0aGlzLm1vbnRoU3RhbXBdKSx0KFFCdG4se3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1hcnJvd1wiLGF0dHJzOnt0YWJpbmRleDotMX0scHJvcHM6e3JvdW5kOiEwLGRlbnNlOiEwLGZsYXQ6ITAsaWNvbjp0aGlzLmRhdGVBcnJvd1sxXSxyZXBlYXRUaW1lb3V0OnRoaXMuX19yZXBlYXRUaW1lb3V0LGRpc2FibGU6dGhpcy5hZnRlck1heERheXM+MHx8dGhpcy5kaXNhYmxlfHx0aGlzLnJlYWRvbmx5fSxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtlLm1vdmVGYWtlTW9udGgoMSl9fX0pXSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtd2Vla2RheXMgcm93IG5vLXdyYXAgaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnRcIn0sdGhpcy5oZWFkZXJEYXlOYW1lcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQoXCJkaXZcIixbZV0pfSkpLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lLWRheXMgcm93IHdyYXAgaXRlbXMtY2VudGVyIGp1c3RpZnktc3RhcnQgY29udGVudC1jZW50ZXJcIn0saSldKX0sX19nZXRDbG9ja1ZpZXc6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPVtdO2lmKFwiaG91clwiPT09dGhpcy52aWV3KXt2YXIgcyxuLG89XCJcIjt0aGlzLmNvbXB1dGVkRm9ybWF0MjRoPyhzPTAsbj0yNCxvPVwiIGZtdDI0XCIpOihzPTEsbj0xMyk7Zm9yKHZhciByPWZ1bmN0aW9uKHMpe2kucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1jbG9jay1wb3NpdGlvblwiK28sY2xhc3M6W1wicS1kYXRldGltZS1jbG9jay1wb3MtXCIrcyxzPT09ZS5ob3VyP1wiYWN0aXZlXCI6XCJcIl0sb246e1wiIW1vdXNlZG93blwiOmZ1bmN0aW9uKHQpe3JldHVybiBlLl9fZHJhZ1N0YXJ0KHQscyl9LFwiIW1vdXNldXBcIjpmdW5jdGlvbih0KXtyZXR1cm4gZS5fX2RyYWdTdG9wKHQscyl9fX0sW3QoXCJzcGFuXCIsW3N8fFwiMDBcIl0pXSkpfSxhPXM7YTxuO2ErKylyKGEpfWVsc2UgZm9yKHZhciBsPTA7bDwxMjtsKyspe3ZhciBjPTUqbDtpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtY2xvY2stcG9zaXRpb25cIixjbGFzczpbXCJxLWRhdGV0aW1lLWNsb2NrLXBvcy1cIitsLGM9PT1lLm1pbnV0ZT9cImFjdGl2ZVwiOlwiXCJdfSxbdChcInNwYW5cIixbY10pXSkpfXJldHVybiB0KFwiZGl2XCIse3JlZjpcImNsb2NrXCIsa2V5OlwiY2xvY2tcIit0aGlzLnZpZXcsc3RhdGljQ2xhc3M6XCJjb2x1bW4gaXRlbXMtY2VudGVyIGNvbnRlbnQtY2VudGVyIGp1c3RpZnktY2VudGVyXCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1jbG9jayBjdXJzb3ItcG9pbnRlclwiLG9uOnttb3VzZWRvd246dGhpcy5fX2RyYWdTdGFydCxtb3VzZW1vdmU6dGhpcy5fX2RyYWdNb3ZlLG1vdXNldXA6dGhpcy5fX2RyYWdTdG9wLHRvdWNoc3RhcnQ6dGhpcy5fX2RyYWdTdGFydCx0b3VjaG1vdmU6dGhpcy5fX2RyYWdNb3ZlLHRvdWNoZW5kOnRoaXMuX19kcmFnU3RvcH19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1jbG9jay1jaXJjbGUgZnVsbC13aWR0aCBmdWxsLWhlaWdodFwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtY2xvY2stY2VudGVyXCJ9KSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1kYXRldGltZS1jbG9jay1wb2ludGVyXCIsc3R5bGU6dGhpcy5jbG9ja1BvaW50ZXJTdHlsZX0sW3QoXCJzcGFuXCIpXSksaV0pXSldKX0sX19nZXRWaWV3U2VjdGlvbjpmdW5jdGlvbih0KXtzd2l0Y2godGhpcy52aWV3KXtjYXNlXCJ5ZWFyXCI6cmV0dXJuIHRoaXMuX19nZXRZZWFyVmlldyh0KTtjYXNlXCJtb250aFwiOnJldHVybiB0aGlzLl9fZ2V0TW9udGhWaWV3KHQpO2Nhc2VcImRheVwiOnJldHVybiB0aGlzLl9fZ2V0RGF5Vmlldyh0KTtjYXNlXCJob3VyXCI6Y2FzZVwibWludXRlXCI6cmV0dXJuIHRoaXMuX19nZXRDbG9ja1ZpZXcodCl9fX0sY3JlYXRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fX2FtUG1FdmVudHM9e2tleWRvd246ZnVuY3Rpb24oZSl7dmFyIGk9Z2V0RXZlbnRLZXkoZSk7WzEzLDMyLDM3LDM4LDM5LDQwXS5pbmNsdWRlcyhpKSYmKHN0b3BBbmRQcmV2ZW50KGUpLHQudG9nZ2xlQW1QbSgpKX19fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5fX3Njcm9sbFZpZXcoITApfSxyZW5kZXI6ZnVuY3Rpb24odCl7aWYodGhpcy5jYW5SZW5kZXIpcmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRhdGV0aW1lIHJvd1wiLGNsYXNzOnRoaXMuY2xhc3Nlc30sWyF0aGlzLm1pbmltYWwmJnRoaXMuX19nZXRUb3BTZWN0aW9uKHQpfHx2b2lkIDAsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtY29udGVudCBzY3JvbGxcIn0sW3QoXCJkaXZcIix7cmVmOlwic2VsZWN0b3JcIixzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtc2VsZWN0b3Igcm93IGl0ZW1zLWNlbnRlclwifSxbdChcImRpdlwiLHtjbGFzczpcImNvbFwifSksdGhpcy5fX2dldFZpZXdTZWN0aW9uKHQpLHQoXCJkaXZcIix7Y2xhc3M6XCJjb2xcIn0pXSldLmNvbmNhdCh0aGlzLiRzbG90cy5kZWZhdWx0KSldKX19LGNvbnRlbnRDc3MkMT17bWF4V2lkdGg6XCI5NXZ3XCIsbWF4SGVpZ2h0OlwiOTh2aFwifSxRRGF0ZXRpbWU9e25hbWU6XCJRRGF0ZXRpbWVcIixtaXhpbnM6W0ZyYW1lTWl4aW4sRGlzcGxheU1vZGVNaXhpbixDYW5SZW5kZXJNaXhpbl0scHJvcHM6T2JqZWN0LmFzc2lnbih7fSxpbnB1dCxpbmxpbmUpLHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXshdGhpcy5kaXNhYmxlJiZ0aGlzLmlzUG9wb3ZlciYmKHRoaXMubW9kZWw9Y2xvbmUkMSh0KSl9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3RyYW5zaXRpb246bnVsbCxtb2RlbDpudWxsLGZvY3VzZWQ6ITF9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5tb2RlbD1jbG9uZSQxKHRoaXMuY29tcHV0ZWRWYWx1ZSksdGhpcy5pc1BvcG92ZXJ8fCh0aGlzLnRyYW5zaXRpb249XCJxLW1vZGFsXCIpfSxjb21wdXRlZDp7Y29tcHV0ZWRGb3JtYXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mb3JtYXQ/dGhpcy5mb3JtYXQ6XCJkYXRlXCI9PT10aGlzLnR5cGU/XCJZWVlZL01NL0REXCI6XCJ0aW1lXCI9PT10aGlzLnR5cGU/XCJISDptbVwiOlwiWVlZWS9NTS9ERCBISDptbTpzc1wifSxhY3R1YWxWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRpc3BsYXlWYWx1ZT90aGlzLmRpc3BsYXlWYWx1ZTppc1ZhbGlkKHRoaXMudmFsdWUpJiZ0aGlzLmNhblJlbmRlcj9mb3JtYXREYXRlKHRoaXMudmFsdWUsdGhpcy5jb21wdXRlZEZvcm1hdCx0aGlzLiRxLmkxOG4uZGF0ZSk6XCJcIn0sY29tcHV0ZWRWYWx1ZTpmdW5jdGlvbigpe3JldHVybiBpc1ZhbGlkKHRoaXMudmFsdWUpP3RoaXMudmFsdWU6dGhpcy5kZWZhdWx0VmFsdWV9LGNvbXB1dGVkQ2xlYXJWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzLmNsZWFyVmFsdWU/dGhpcy5kZWZhdWx0VmFsdWU6dGhpcy5jbGVhclZhbHVlfSxpc0NsZWFyYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkaXRhYmxlJiZ0aGlzLmNsZWFyYWJsZSYmIWlzU2FtZURhdGUodGhpcy5jb21wdXRlZENsZWFyVmFsdWUsdGhpcy52YWx1ZSl9LG1vZGFsQnRuQ29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb2xvcn19LG1ldGhvZHM6e3RvZ2dsZTpmdW5jdGlvbigpe3RoaXMuJHJlZnMucG9wdXAmJnRoaXNbdGhpcy4kcmVmcy5wb3B1cC5zaG93aW5nP1wiaGlkZVwiOlwic2hvd1wiXSgpfSxzaG93OmZ1bmN0aW9uKCl7aWYoIXRoaXMuZGlzYWJsZSlyZXR1cm4gdGhpcy5fX3NldE1vZGVsKHRoaXMuY29tcHV0ZWRWYWx1ZSksdGhpcy4kcmVmcy5wb3B1cC5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcmVmcy5wb3B1cD90aGlzLiRyZWZzLnBvcHVwLmhpZGUoKTpQcm9taXNlLnJlc29sdmUoKX0sX19oYW5kbGVLZXlEb3duOmZ1bmN0aW9uKHQpe3N3aXRjaChnZXRFdmVudEtleSh0KSl7Y2FzZSAxMzpjYXNlIDMyOnJldHVybiBzdG9wQW5kUHJldmVudCh0KSx0aGlzLnNob3coKTtjYXNlIDg6dGhpcy5pc0NsZWFyYWJsZSYmdGhpcy5jbGVhcigpfX0sX19vbkZvY3VzOmZ1bmN0aW9uKCl7aWYoIXRoaXMuZGlzYWJsZSYmIXRoaXMuZm9jdXNlZCl7dmFyIHQ9dGhpcy4kcmVmcy50YXJnZXQ7dCYmdC5zZXRWaWV3KHRoaXMuZGVmYXVsdFZpZXcsITApLHRoaXMubW9kZWw9Y2xvbmUkMSh0aGlzLmNvbXB1dGVkVmFsdWUpLHRoaXMuZm9jdXNlZD0hMCx0aGlzLiRlbWl0KFwiZm9jdXNcIil9fSxfX29uQmx1cjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuZm9jdXNlZCYmc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7ZS4kcmVmcy5wb3B1cCYmZS4kcmVmcy5wb3B1cC5zaG93aW5nJiYodD09PWRvY3VtZW50LmJvZHl8fGUuJHJlZnMucG9wdXAuJGVsLmNvbnRhaW5zKHQpKXx8KGUuX19vbkhpZGUoKSxlLmhpZGUoKSl9LDEpfSxfX29uSGlkZTpmdW5jdGlvbih0LGUpeyh0fHx0aGlzLmlzUG9wb3ZlcikmJnRoaXMuX191cGRhdGUodCksdGhpcy5mb2N1c2VkJiYoZT90aGlzLiRlbC5mb2N1cygpOih0aGlzLiRlbWl0KFwiYmx1clwiKSx0aGlzLmZvY3VzZWQ9ITEpKX0sX19zZXRNb2RlbDpmdW5jdGlvbih0LGUpe3RoaXMubW9kZWw9Y2xvbmUkMSh0KSwoZXx8dGhpcy5pc1BvcG92ZXIpJiZ0aGlzLl9fdXBkYXRlKGUpfSxfX3VwZGF0ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7aXNTYW1lRGF0ZShlLm1vZGVsLGUudmFsdWUpfHwoZS4kZW1pdChcImlucHV0XCIsZS5tb2RlbCksdCYmZS4kZW1pdChcImNoYW5nZVwiLGUubW9kZWwpKX0pfSxfX3Njcm9sbFZpZXc6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRyZWZzLnRhcmdldDt0JiZ0Ll9fc2Nyb2xsVmlldygpfSxfX2dldFBpY2tlcjpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXM7cmV0dXJuW3QoUURhdGV0aW1lUGlja2VyLHtyZWY6XCJ0YXJnZXRcIixzdGF0aWNDbGFzczpcIm5vLWJvcmRlclwiLGNsYXNzOntcImRhdGV0aW1lLWlvcy1tb2RhbFwiOiExfSxwcm9wczp7dHlwZTp0aGlzLnR5cGUsbWluOnRoaXMubWluLG1heDp0aGlzLm1heCxoZWFkZXJMYWJlbDp0aGlzLmhlYWRlckxhYmVsLG1pbmltYWw6dGhpcy5taW5pbWFsLGZvcm1hdE1vZGVsOnRoaXMuZm9ybWF0TW9kZWwsZm9ybWF0MjRoOnRoaXMuZm9ybWF0MjRoLGZpcnN0RGF5T2ZXZWVrOnRoaXMuZmlyc3REYXlPZldlZWssZGVmYXVsdFZpZXc6dGhpcy5kZWZhdWx0Vmlldyxjb2xvcjp0aGlzLmludmVydGVkTGlnaHQ/XCJncmV5LTdcIjp0aGlzLmNvbG9yLGRhcms6dGhpcy5kYXJrLHZhbHVlOnRoaXMubW9kZWwsZGlzYWJsZTp0aGlzLmRpc2FibGUscmVhZG9ubHk6dGhpcy5yZWFkb25seSxub1BhcmVudEZpZWxkOiEwfSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGkuJG5leHRUaWNrKGZ1bmN0aW9uKCl7cmV0dXJuIGkuX19zZXRNb2RlbCh0KX0pfSxjYW5DbG9zZTpmdW5jdGlvbigpe2kuaXNQb3BvdmVyJiZpLmhpZGUoKX19fSxbZT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwibW9kYWwtYnV0dG9ucyBtb2RhbC1idXR0b25zLXRvcCByb3cgZnVsbC13aWR0aFwifSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbFwifSksdChRQnRuLHtwcm9wczp7Y29sb3I6dGhpcy5tb2RhbEJ0bkNvbG9yLGZsYXQ6ITAsbGFiZWw6dGhpcy5jYW5jZWxMYWJlbHx8dGhpcy4kcS5pMThuLmxhYmVsLmNhbmNlbCxub1JpcHBsZTohMH0sb246e2NsaWNrOmZ1bmN0aW9uKCl7aS5fX29uSGlkZSghMSwhMCksaS5oaWRlKCl9fX0pLHRoaXMuZWRpdGFibGU/dChRQnRuLHtwcm9wczp7Y29sb3I6dGhpcy5tb2RhbEJ0bkNvbG9yLGZsYXQ6ITAsbGFiZWw6dGhpcy5va0xhYmVsfHx0aGlzLiRxLmkxOG4ubGFiZWwuc2V0LG5vUmlwcGxlOiEwLGRpc2FibGU6IXRoaXMubW9kZWx9LG9uOntjbGljazpmdW5jdGlvbigpe2kuX19vbkhpZGUoITAsITApLGkuaGlkZSgpfX19KTpudWxsXSk6bnVsbF0pXX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFFJbnB1dEZyYW1lLHtzdGF0aWNDbGFzczpcInEtZGF0ZXRpbWUtaW5wdXRcIixwcm9wczp7cHJlZml4OnRoaXMucHJlZml4LHN1ZmZpeDp0aGlzLnN1ZmZpeCxzdGFja0xhYmVsOnRoaXMuc3RhY2tMYWJlbCxmbG9hdExhYmVsOnRoaXMuZmxvYXRMYWJlbCxlcnJvcjp0aGlzLmVycm9yLHdhcm5pbmc6dGhpcy53YXJuaW5nLGRpc2FibGU6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHksaW52ZXJ0ZWQ6dGhpcy5pbnZlcnRlZCxpbnZlcnRlZExpZ2h0OnRoaXMuaW52ZXJ0ZWRMaWdodCxkYXJrOnRoaXMuZGFyayxoaWRlVW5kZXJsaW5lOnRoaXMuaGlkZVVuZGVybGluZSxiZWZvcmU6dGhpcy5iZWZvcmUsYWZ0ZXI6dGhpcy5hZnRlcixjb2xvcjp0aGlzLmNvbG9yLG5vUGFyZW50RmllbGQ6dGhpcy5ub1BhcmVudEZpZWxkLGZvY3VzZWQ6dGhpcy5mb2N1c2VkfHx0aGlzLiRyZWZzLnBvcHVwJiZ0aGlzLiRyZWZzLnBvcHVwLnNob3dpbmcsZm9jdXNhYmxlOiEwLGxlbmd0aDp0aGlzLmFjdHVhbFZhbHVlLmxlbmd0aH0sbmF0aXZlT246e2NsaWNrOnRoaXMudG9nZ2xlLGZvY3VzOnRoaXMuX19vbkZvY3VzLGJsdXI6dGhpcy5fX29uQmx1cixrZXlkb3duOnRoaXMuX19oYW5kbGVLZXlEb3dufX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgcS1pbnB1dC10YXJnZXQgZWxsaXBzaXNcIixjbGFzczp0aGlzLmZha2VJbnB1dENsYXNzZXN9LFt0aGlzLmZha2VJbnB1dFZhbHVlXSksdGhpcy5pc1BvcG92ZXI/dChRUG9wb3Zlcix7cmVmOlwicG9wdXBcIixwcm9wczp7Y292ZXI6ITAsa2VlcE9uU2NyZWVuOiEwLGRpc2FibGU6dGhpcy5kaXNhYmxlLGFuY2hvckNsaWNrOiExLG1heEhlaWdodDpcIjEwMHZoXCJ9LHNsb3Q6XCJhZnRlclwiLG9uOntzaG93OmZ1bmN0aW9uKHQpe2UuX19vbkZvY3VzKHQpLGUuX19zY3JvbGxWaWV3KCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gZS5fX29uSGlkZSghMCwhMCl9fX0sdGhpcy5fX2dldFBpY2tlcih0KSk6dChRTW9kYWwse3JlZjpcInBvcHVwXCIsc3RhdGljQ2xhc3M6XCJ3aXRoLWJhY2tkcm9wIHEtZGF0ZXRpbWUtbW9kYWxcIixwcm9wczp7Y29udGVudENzczpjb250ZW50Q3NzJDEsbWluaW1pemVkOiEwLHBvc2l0aW9uOm51bGwsdHJhbnNpdGlvbjp0aGlzLnRyYW5zaXRpb259LG9uOntzaG93OnRoaXMuX19zY3JvbGxWaWV3LGRpc21pc3M6ZnVuY3Rpb24oKXtyZXR1cm4gZS5fX29uSGlkZSghMSwhMCl9fX0sdGhpcy5fX2dldFBpY2tlcih0LCEwKSksdGhpcy5pc0NsZWFyYWJsZT90KFFJY29uLHtzbG90OlwiYWZ0ZXJcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uaW5wdXRbXCJjbGVhclwiKyh0aGlzLmlzSW52ZXJ0ZWQ/XCJJbnZlcnRlZFwiOlwiXCIpXX0sbmF0aXZlT246e2NsaWNrOnRoaXMuY2xlYXJ9LHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCJ9KTpudWxsLHQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi5pbnB1dC5kcm9wZG93bn0sc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIn0pXSl9fSxpbnB1dFR5cGVzPVtcInRleHRcIixcInRleHRhcmVhXCIsXCJlbWFpbFwiLFwic2VhcmNoXCIsXCJ0ZWxcIixcImZpbGVcIixcIm51bWJlclwiLFwicGFzc3dvcmRcIixcInVybFwiLFwidGltZVwiLFwiZGF0ZVwiXSxRUmVzaXplT2JzZXJ2YWJsZT17bmFtZTpcIlFSZXNpemVPYnNlcnZhYmxlXCIsbWl4aW5zOltDYW5SZW5kZXJNaXhpbl0scHJvcHM6e2RlYm91bmNlOnt0eXBlOk51bWJlcixkZWZhdWx0OjEwMH19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNPYnNlcnZlcj97fTp7dXJsOnRoaXMuJHEucGxhdGZvcm0uaXMuaWU/bnVsbDpcImFib3V0OmJsYW5rXCJ9fSxtZXRob2RzOntvblJlc2l6ZTpmdW5jdGlvbigpe2lmKHRoaXMudGltZXI9bnVsbCx0aGlzLiRlbCYmdGhpcy4kZWwucGFyZW50Tm9kZSl7dmFyIHQ9dGhpcy4kZWwucGFyZW50Tm9kZSxlPXt3aWR0aDp0Lm9mZnNldFdpZHRoLGhlaWdodDp0Lm9mZnNldEhlaWdodH07ZS53aWR0aD09PXRoaXMuc2l6ZS53aWR0aCYmZS5oZWlnaHQ9PT10aGlzLnNpemUuaGVpZ2h0fHwodGhpcy5zaXplPWUsdGhpcy4kZW1pdChcInJlc2l6ZVwiLHRoaXMuc2l6ZSkpfX0sdHJpZ2dlcjpmdW5jdGlvbih0KXshMD09PXR8fDA9PT10aGlzLmRlYm91bmNlP3RoaXMub25SZXNpemUoKTp0aGlzLnRpbWVyfHwodGhpcy50aW1lcj1zZXRUaW1lb3V0KHRoaXMub25SZXNpemUsdGhpcy5kZWJvdW5jZSkpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodGhpcy5jYW5SZW5kZXImJiF0aGlzLmhhc09ic2VydmVyKXJldHVybiB0KFwib2JqZWN0XCIse3N0eWxlOnRoaXMuc3R5bGUsYXR0cnM6e3RhYmluZGV4Oi0xLHR5cGU6XCJ0ZXh0L2h0bWxcIixkYXRhOnRoaXMudXJsLFwiYXJpYS1oaWRkZW5cIjohMH0sb246e2xvYWQ6ZnVuY3Rpb24oKXtlLiRlbC5jb250ZW50RG9jdW1lbnQuZGVmYXVsdFZpZXcuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLGUudHJpZ2dlcixsaXN0ZW5PcHRzLnBhc3NpdmUpLGUudHJpZ2dlcighMCl9fX0pfSxiZWZvcmVDcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLnNpemU9e3dpZHRoOi0xLGhlaWdodDotMX0saXNTU1J8fCh0aGlzLmhhc09ic2VydmVyPVwidW5kZWZpbmVkXCIhPXR5cGVvZiBSZXNpemVPYnNlcnZlcix0aGlzLmhhc09ic2VydmVyfHwodGhpcy5zdHlsZT0odGhpcy4kcS5wbGF0Zm9ybS5pcy5pZT9cInZpc2liaWxpdHk6aGlkZGVuO1wiOlwiXCIpK1wiZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6LTE7XCIpKX0sbW91bnRlZDpmdW5jdGlvbigpe2lmKHRoaXMuaGFzT2JzZXJ2ZXIpcmV0dXJuIHRoaXMub2JzZXJ2ZXI9bmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMudHJpZ2dlciksdm9pZCB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy4kZWwucGFyZW50Tm9kZSk7dGhpcy50cmlnZ2VyKCEwKSx0aGlzLiRxLnBsYXRmb3JtLmlzLmllJiYodGhpcy51cmw9XCJhYm91dDpibGFua1wiKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmhhc09ic2VydmVyP3RoaXMuJGVsLnBhcmVudE5vZGUmJnRoaXMub2JzZXJ2ZXIudW5vYnNlcnZlKHRoaXMuJGVsLnBhcmVudE5vZGUpOnRoaXMuJGVsLmNvbnRlbnREb2N1bWVudCYmdGhpcy4kZWwuY29udGVudERvY3VtZW50LmRlZmF1bHRWaWV3LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0aGlzLnRyaWdnZXIsbGlzdGVuT3B0cy5wYXNzaXZlKX19LFFJbnB1dD17bmFtZTpcIlFJbnB1dFwiLG1peGluczpbRnJhbWVNaXhpbixJbnB1dE1peGluXSxwcm9wczp7dmFsdWU6e3JlcXVpcmVkOiEwfSx0eXBlOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwidGV4dFwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4gaW5wdXRUeXBlcy5pbmNsdWRlcyh0KX19LGFsaWduOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wibGVmdFwiLFwiY2VudGVyXCIsXCJyaWdodFwiXS5pbmNsdWRlcyh0KX19LG5vUGFzc1RvZ2dsZTpCb29sZWFuLG51bWVyaWNLZXlib2FyZFRvZ2dsZTpCb29sZWFuLHJlYWRvbmx5OkJvb2xlYW4sZGVjaW1hbHM6TnVtYmVyLHN0ZXA6TnVtYmVyLHVwcGVyQ2FzZTpCb29sZWFuLGxvd2VyQ2FzZTpCb29sZWFuLGluaXRpYWxTaG93UGFzc3dvcmQ6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJue3Nob3dQYXNzOnRoaXMuaW5pdGlhbFNob3dQYXNzd29yZCxzaG93TnVtYmVyOiEwLG1vZGVsOnRoaXMudmFsdWUsd2F0Y2hlcjpudWxsLGF1dG9maWxsZWQ6ITEsc2hhZG93Ont2YWw6dGhpcy5tb2RlbCxzZXQ6dGhpcy5fX3NldCxzZXROYXY6dGhpcy5fX3NldCxsb2FkaW5nOiExLHdhdGNoZWQ6MCxpc0VkaXRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHQuZWRpdGFibGV9LGlzRGFyazpmdW5jdGlvbigpe3JldHVybiB0LmRhcmt9LGhhc0ZvY3VzOmZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT10LiRyZWZzLmlucHV0fSxyZWdpc3RlcjpmdW5jdGlvbigpe3Quc2hhZG93LndhdGNoZWQrPTEsdC5fX3dhdGNoZXJSZWdpc3RlcigpfSx1bnJlZ2lzdGVyOmZ1bmN0aW9uKCl7dC5zaGFkb3cud2F0Y2hlZD1NYXRoLm1heCgwLHQuc2hhZG93LndhdGNoZWQtMSksdC5fX3dhdGNoZXJVbnJlZ2lzdGVyKCl9LGdldEVsOmZ1bmN0aW9uKCl7cmV0dXJuIHQuJHJlZnMuaW5wdXR9fX19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1wYXJzZUZsb2F0KHRoaXMubW9kZWwpLGk9cGFyc2VGbG9hdCh0KTsoIXRoaXMuaXNOdW1iZXJ8fHRoaXMuaXNOdW1iZXJFcnJvcnx8aXNOYU4oZSl8fGlzTmFOKGkpfHxlIT09aSkmJih0aGlzLm1vZGVsPXQpLHRoaXMuaXNOdW1iZXJFcnJvcj0hMSx0aGlzLmlzTmVnWmVybz0hMX0saXNUZXh0YXJlYTpmdW5jdGlvbih0KXt0aGlzW3Q/XCJfX3dhdGNoZXJSZWdpc3RlclwiOlwiX193YXRjaGVyVW5yZWdpc3RlclwiXSgpfSxcIiRhdHRycy5yb3dzXCI6ZnVuY3Rpb24oKXt0aGlzLmlzVGV4dGFyZWEmJnRoaXMuX191cGRhdGVBcmVhKCl9fSxwcm92aWRlOmZ1bmN0aW9uKCl7cmV0dXJue19faW5wdXQ6dGhpcy5zaGFkb3d9fSxjb21wdXRlZDp7aXNOdW1iZXI6ZnVuY3Rpb24oKXtyZXR1cm5cIm51bWJlclwiPT09dGhpcy50eXBlfSxpc1Bhc3N3b3JkOmZ1bmN0aW9uKCl7cmV0dXJuXCJwYXNzd29yZFwiPT09dGhpcy50eXBlfSxpc1RleHRhcmVhOmZ1bmN0aW9uKCl7cmV0dXJuXCJ0ZXh0YXJlYVwiPT09dGhpcy50eXBlfSxpc0xvYWRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sb2FkaW5nfHx0aGlzLnNoYWRvdy53YXRjaGVkJiZ0aGlzLnNoYWRvdy5sb2FkaW5nfSxrZXlib2FyZFRvZ2dsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRxLnBsYXRmb3JtLmlzLm1vYmlsZSYmdGhpcy5pc051bWJlciYmdGhpcy5udW1lcmljS2V5Ym9hcmRUb2dnbGV9LGlucHV0VHlwZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzUGFzc3dvcmQ/dGhpcy5zaG93UGFzcyYmdGhpcy5lZGl0YWJsZT9cInRleHRcIjpcInBhc3N3b3JkXCI6dGhpcy5pc051bWJlcj90aGlzLnNob3dOdW1iZXJ8fCF0aGlzLmVkaXRhYmxlP1wibnVtYmVyXCI6XCJ0ZXh0XCI6dGhpcy50eXBlfSxpbnB1dENsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5hbGlnbiYmdC5wdXNoKFwidGV4dC1cIit0aGlzLmFsaWduKSx0aGlzLmF1dG9maWxsZWQmJnQucHVzaChcInEtaW5wdXQtYXV0b2ZpbGxcIiksdH0sbGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT10aGlzLm1vZGVsJiZ2b2lkIDAhPT10aGlzLm1vZGVsPyhcIlwiK3RoaXMubW9kZWwpLmxlbmd0aDowfSxjb21wdXRlZENsZWFyVmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09dGhpcy5jbGVhclZhbHVlP3RoaXMuaXNOdW1iZXI/bnVsbDpcIlwiOnRoaXMuY2xlYXJWYWx1ZX0sY29tcHV0ZWRTdGVwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RlcHx8KHRoaXMuZGVjaW1hbHM/TWF0aC5wb3coMTAsLXRoaXMuZGVjaW1hbHMpOlwiYW55XCIpfSxmcmFtZVByb3BzOmZ1bmN0aW9uKCl7cmV0dXJue3ByZWZpeDp0aGlzLnByZWZpeCxzdWZmaXg6dGhpcy5zdWZmaXgsc3RhY2tMYWJlbDp0aGlzLnN0YWNrTGFiZWwsZmxvYXRMYWJlbDp0aGlzLmZsb2F0TGFiZWwscGxhY2Vob2xkZXI6dGhpcy5wbGFjZWhvbGRlcixlcnJvcjp0aGlzLmVycm9yLHdhcm5pbmc6dGhpcy53YXJuaW5nLGRpc2FibGU6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHksaW52ZXJ0ZWQ6dGhpcy5pbnZlcnRlZCxpbnZlcnRlZExpZ2h0OnRoaXMuaW52ZXJ0ZWRMaWdodCxkYXJrOnRoaXMuZGFyayxoaWRlVW5kZXJsaW5lOnRoaXMuaGlkZVVuZGVybGluZSxiZWZvcmU6dGhpcy5iZWZvcmUsYWZ0ZXI6dGhpcy5hZnRlcixjb2xvcjp0aGlzLmNvbG9yLG5vUGFyZW50RmllbGQ6dGhpcy5ub1BhcmVudEZpZWxkLGZvY3VzZWQ6dGhpcy5mb2N1c2VkLGxlbmd0aDp0aGlzLmF1dG9maWxsZWQrdGhpcy5sZW5ndGh9fX0sbWV0aG9kczp7dG9nZ2xlUGFzczpmdW5jdGlvbigpe3RoaXMuc2hvd1Bhc3M9IXRoaXMuc2hvd1Bhc3MsY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZm9jdXMoKX0sdG9nZ2xlTnVtYmVyOmZ1bmN0aW9uKCl7dGhpcy5zaG93TnVtYmVyPSF0aGlzLnNob3dOdW1iZXIsY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZm9jdXMoKX0sX19jbGVhclRpbWVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3JldHVybiBjbGVhclRpbWVvdXQodC50aW1lcil9KX0sX19vbkFuaW1hdGlvblN0YXJ0OmZ1bmN0aW9uKHQpe2lmKDA9PT10LmFuaW1hdGlvbk5hbWUuaW5kZXhPZihcIndlYmtpdC1hdXRvZmlsbC1cIikpe3ZhciBlPVwid2Via2l0LWF1dG9maWxsLW9uXCI9PT10LmFuaW1hdGlvbk5hbWU7aWYoZSE9PXRoaXMuYXV0b2ZpbGxlZClyZXR1cm4gdC52YWx1ZT10aGlzLmF1dG9maWxsZWQ9ZSx0LmVsPXRoaXMsdGhpcy4kZW1pdChcImF1dG9maWxsXCIsdCl9fSxfX3NldE1vZGVsOmZ1bmN0aW9uKHQpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmZvY3VzKCksdGhpcy5fX3NldCh0aGlzLmlzTnVtYmVyJiYwPT09dD90OnR8fCh0aGlzLmlzTnVtYmVyP251bGw6XCJcIiksITApfSxfX3NldDpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMscz10JiZ0LnRhcmdldD90LnRhcmdldC52YWx1ZTp0O2lmKHRoaXMuaXNOdW1iZXIpe3RoaXMuaXNOZWdaZXJvPTEvcz09LTEvMDt2YXIgbj10aGlzLmlzTmVnWmVybz8tMDpzO2lmKHRoaXMubW9kZWw9cyxzPXBhcnNlRmxvYXQocyksaXNOYU4ocyl8fHRoaXMuaXNOZWdaZXJvKXJldHVybiB0aGlzLmlzTnVtYmVyRXJyb3I9ITAsdm9pZChlJiYodGhpcy4kZW1pdChcImlucHV0XCIsbiksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtTdHJpbmcoMS9uKSE9PVN0cmluZygxL2kudmFsdWUpJiZpLiRlbWl0KFwiY2hhbmdlXCIsbil9KSkpO3RoaXMuaXNOdW1iZXJFcnJvcj0hMSxOdW1iZXIuaXNJbnRlZ2VyKHRoaXMuZGVjaW1hbHMpJiYocz1wYXJzZUZsb2F0KHMudG9GaXhlZCh0aGlzLmRlY2ltYWxzKSkpfWVsc2UgdGhpcy5sb3dlckNhc2U/cz1zLnRvTG93ZXJDYXNlKCk6dGhpcy51cHBlckNhc2UmJihzPXMudG9VcHBlckNhc2UoKSksdGhpcy5tb2RlbD1zO3RoaXMuJGVtaXQoXCJpbnB1dFwiLHMpLGUmJnRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkocykhPT1KU09OLnN0cmluZ2lmeShpLnZhbHVlKSYmaS4kZW1pdChcImNoYW5nZVwiLHMpfSl9LF9fdXBkYXRlQXJlYTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuJHJlZnMuc2hhZG93LGU9dGhpcy4kcmVmcy5pbnB1dDtpZih0JiZlKXt2YXIgaT10LnNjcm9sbEhlaWdodCxzPWJldHdlZW4oaSx0Lm9mZnNldEhlaWdodCx0aGlzLm1heEhlaWdodHx8aSk7ZS5zdHlsZS5oZWlnaHQ9cytcInB4XCIsZS5zdHlsZS5vdmVyZmxvd1k9dGhpcy5tYXhIZWlnaHQmJnM8aT9cInNjcm9sbFwiOlwiaGlkZGVuXCJ9fSxfX3dhdGNoZXI6ZnVuY3Rpb24odCl7dGhpcy5pc1RleHRhcmVhJiZ0aGlzLl9fdXBkYXRlQXJlYSgpLHRoaXMuc2hhZG93LndhdGNoZWQmJih0aGlzLnNoYWRvdy52YWw9dCl9LF9fd2F0Y2hlclJlZ2lzdGVyOmZ1bmN0aW9uKCl7dGhpcy53YXRjaGVyfHwodGhpcy53YXRjaGVyPXRoaXMuJHdhdGNoKFwibW9kZWxcIix0aGlzLl9fd2F0Y2hlcikpfSxfX3dhdGNoZXJVbnJlZ2lzdGVyOmZ1bmN0aW9uKHQpe3RoaXMud2F0Y2hlciYmKHR8fCF0aGlzLmlzVGV4dGFyZWEmJiF0aGlzLnNoYWRvdy53YXRjaGVkKSYmKHRoaXMud2F0Y2hlcigpLHRoaXMud2F0Y2hlcj1udWxsKX0sX19nZXRUZXh0YXJlYTpmdW5jdGlvbih0KXt2YXIgZT1PYmplY3QuYXNzaWduKHtyb3dzOjF9LHRoaXMuJGF0dHJzKTtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCByb3cgcmVsYXRpdmUtcG9zaXRpb25cIn0sW3QoUVJlc2l6ZU9ic2VydmFibGUse29uOntyZXNpemU6dGhpcy5fX3VwZGF0ZUFyZWF9fSksdChcInRleHRhcmVhXCIse3JlZjpcInNoYWRvd1wiLHN0YXRpY0NsYXNzOlwiY29sIHEtaW5wdXQtdGFyZ2V0IHEtaW5wdXQtc2hhZG93IGFic29sdXRlLXRvcFwiLGRvbVByb3BzOnt2YWx1ZTp0aGlzLm1vZGVsfSxhdHRyczplfSksdChcInRleHRhcmVhXCIse3JlZjpcImlucHV0XCIsc3RhdGljQ2xhc3M6XCJjb2wgcS1pbnB1dC10YXJnZXQgcS1pbnB1dC1hcmVhXCIsYXR0cnM6T2JqZWN0LmFzc2lnbih7fSxlLHtwbGFjZWhvbGRlcjp0aGlzLmlucHV0UGxhY2Vob2xkZXIsZGlzYWJsZWQ6dGhpcy5kaXNhYmxlLHJlYWRvbmx5OnRoaXMucmVhZG9ubHl9KSxkb21Qcm9wczp7dmFsdWU6dGhpcy5tb2RlbH0sb246e2lucHV0OnRoaXMuX19zZXQsZm9jdXM6dGhpcy5fX29uRm9jdXMsYmx1cjp0aGlzLl9fb25JbnB1dEJsdXIsa2V5ZG93bjp0aGlzLl9fb25LZXlkb3duLGtleXVwOnRoaXMuX19vbktleXVwLHBhc3RlOnRoaXMuX19vblBhc3RlfX0pXSl9LF9fZ2V0SW5wdXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJpbnB1dFwiLHtyZWY6XCJpbnB1dFwiLHN0YXRpY0NsYXNzOlwiY29sIHEtaW5wdXQtdGFyZ2V0IHEtbm8taW5wdXQtc3Bpbm5lciBlbGxpcHNpc1wiLGNsYXNzOnRoaXMuaW5wdXRDbGFzc2VzLGF0dHJzOk9iamVjdC5hc3NpZ24oe30sdGhpcy4kYXR0cnMse3R5cGU6dGhpcy5pbnB1dFR5cGUscGxhY2Vob2xkZXI6dGhpcy5pbnB1dFBsYWNlaG9sZGVyLGRpc2FibGVkOnRoaXMuZGlzYWJsZSxyZWFkb25seTp0aGlzLnJlYWRvbmx5LHN0ZXA6dGhpcy5jb21wdXRlZFN0ZXB9KSxkb21Qcm9wczp7dmFsdWU6dGhpcy5tb2RlbH0sb246e2lucHV0OnRoaXMuX19zZXQsZm9jdXM6dGhpcy5fX29uRm9jdXMsYmx1cjp0aGlzLl9fb25JbnB1dEJsdXIsa2V5ZG93bjp0aGlzLl9fb25LZXlkb3duLGtleXVwOnRoaXMuX19vbktleXVwLHBhc3RlOnRoaXMuX19vblBhc3RlLGFuaW1hdGlvbnN0YXJ0OnRoaXMuX19vbkFuaW1hdGlvblN0YXJ0fX0pfX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMuX191cGRhdGVBcmVhPWZyYW1lRGVib3VuY2UodGhpcy5fX3VwZGF0ZUFyZWEpLHRoaXMuaXNUZXh0YXJlYSYmKHRoaXMuX191cGRhdGVBcmVhKCksdGhpcy5fX3dhdGNoZXJSZWdpc3RlcigpKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX193YXRjaGVyVW5yZWdpc3RlcighMCl9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChRSW5wdXRGcmFtZSx7c3RhdGljQ2xhc3M6XCJxLWlucHV0XCIscHJvcHM6dGhpcy5mcmFtZVByb3BzLG9uOntjbGljazp0aGlzLl9fb25DbGljayxmb2N1czp0aGlzLl9fb25Gb2N1cyxwYXN0ZTp0aGlzLl9fb25QYXN0ZX19LFtdLmNvbmNhdCh0aGlzLiRzbG90cy5iZWZvcmUpLmNvbmNhdChbdGhpcy5pc1RleHRhcmVhP3RoaXMuX19nZXRUZXh0YXJlYSh0KTp0aGlzLl9fZ2V0SW5wdXQodCksIXRoaXMuZGlzYWJsZSYmdGhpcy5pc1Bhc3N3b3JkJiYhdGhpcy5ub1Bhc3NUb2dnbGUmJih0aGlzLmluaXRpYWxTaG93UGFzc3dvcmR8fHRoaXMubGVuZ3RoKSYmdChRSWNvbix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uaW5wdXRbdGhpcy5zaG93UGFzcz9cInNob3dQYXNzXCI6XCJoaWRlUGFzc1wiXX0sbmF0aXZlT246e21vdXNlZG93bjp0aGlzLl9fY2xlYXJUaW1lcix0b3VjaHN0YXJ0OnRoaXMuX19jbGVhclRpbWVyLGNsaWNrOnRoaXMudG9nZ2xlUGFzc319KXx8dm9pZCAwLHRoaXMuZWRpdGFibGUmJnRoaXMua2V5Ym9hcmRUb2dnbGUmJnQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCIscHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLmlucHV0W3RoaXMuc2hvd051bWJlcj9cInNob3dOdW1iZXJcIjpcImhpZGVOdW1iZXJcIl19LG5hdGl2ZU9uOnttb3VzZWRvd246dGhpcy5fX2NsZWFyVGltZXIsdG91Y2hzdGFydDp0aGlzLl9fY2xlYXJUaW1lcixjbGljazp0aGlzLnRvZ2dsZU51bWJlcn19KXx8dm9pZCAwLHRoaXMuaXNDbGVhcmFibGUmJnQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS1pZi1jb250cm9sXCIscHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLmlucHV0W1wiY2xlYXJcIisodGhpcy5pc0ludmVydGVkP1wiSW52ZXJ0ZWRcIjpcIlwiKV19LG5hdGl2ZU9uOnttb3VzZWRvd246dGhpcy5fX2NsZWFyVGltZXIsdG91Y2hzdGFydDp0aGlzLl9fY2xlYXJUaW1lcixjbGljazp0aGlzLmNsZWFyfX0pfHx2b2lkIDAsdGhpcy5pc0xvYWRpbmcmJih0aGlzLiRzbG90cy5sb2FkaW5nP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixzbG90OlwiYWZ0ZXJcIn0sdGhpcy4kc2xvdHMubG9hZGluZyk6dChRU3Bpbm5lcix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixwcm9wczp7c2l6ZTpcIjI0cHhcIn19KSl8fHZvaWQgMF0pLmNvbmNhdCh0aGlzLiRzbG90cy5hZnRlcikuY29uY2F0KHRoaXMuJHNsb3RzLmRlZmF1bHQ/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcImFic29sdXRlLWZ1bGwgbm8tcG9pbnRlci1ldmVudHNcIixzbG90OlwiYWZ0ZXJcIn0sdGhpcy4kc2xvdHMuZGVmYXVsdCk6dm9pZCAwKSl9fSxRUmFkaW89e25hbWU6XCJRUmFkaW9cIixtaXhpbnM6W09wdGlvbk1peGluXSxwcm9wczp7dmFsOntyZXF1aXJlZDohMH19LGNvbXB1dGVkOntpc1RydWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZT09PXRoaXMudmFsfX0sbWV0aG9kczp7dG9nZ2xlOmZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9ITApLHRoaXMuZGlzYWJsZXx8dGhpcy5yZWFkb25seXx8KHQmJnN0b3BBbmRQcmV2ZW50KHQpLGUmJnRoaXMuJGVsLmJsdXIoKSx0aGlzLmlzVHJ1ZXx8dGhpcy5fX3VwZGF0ZSh0aGlzLnZhbCkpfSxfX2dldENvbnRlbnQ6ZnVuY3Rpb24odCl7cmV0dXJuW3QoUUljb24se3N0YXRpY0NsYXNzOlwicS1yYWRpby11bmNoZWNrZWQgY3Vyc29yLXBvaW50ZXIgYWJzb2x1dGUtZnVsbFwiLHByb3BzOntuYW1lOnRoaXMudW5jaGVja2VkSWNvbnx8dGhpcy4kcS5pY29uLnJhZGlvLnVuY2hlY2tlZC5tYXR9fSksdChRSWNvbix7c3RhdGljQ2xhc3M6XCJxLXJhZGlvLWNoZWNrZWQgY3Vyc29yLXBvaW50ZXIgYWJzb2x1dGUtZnVsbFwiLHByb3BzOntuYW1lOnRoaXMuY2hlY2tlZEljb258fHRoaXMuJHEuaWNvbi5yYWRpby5jaGVja2VkLm1hdH19KSx0KFwiZGl2XCIse3JlZjpcInJpcHBsZVwiLHN0YXRpY0NsYXNzOlwicS1yYWRpYWwtcmlwcGxlXCJ9KV19fSxiZWZvcmVDcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9fa2ViYWJUYWc9XCJxLXJhZGlvXCJ9fSxRVG9nZ2xlPXtuYW1lOlwiUVRvZ2dsZVwiLG1peGluczpbQ2hlY2tib3hNaXhpbixPcHRpb25NaXhpbl0scHJvcHM6e2ljb246U3RyaW5nfSxjb21wdXRlZDp7Y3VycmVudEljb246ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5pc1RydWU/dGhpcy5jaGVja2VkSWNvbjp0aGlzLnVuY2hlY2tlZEljb24pfHx0aGlzLmljb259LGljb25Db2xvcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVHJ1ZT9cIndoaXRlXCI6XCJkYXJrXCJ9LGJhc2VDbGFzczpmdW5jdGlvbigpe319LG1ldGhvZHM6e19fc3dpcGU6ZnVuY3Rpb24odCl7XCJsZWZ0XCI9PT10LmRpcmVjdGlvbj90aGlzLmlzVHJ1ZSYmdGhpcy50b2dnbGUoKTpcInJpZ2h0XCI9PT10LmRpcmVjdGlvbiYmdGhpcy5pc0ZhbHNlJiZ0aGlzLnRvZ2dsZSgpfSxfX2dldENvbnRlbnQ6ZnVuY3Rpb24odCl7cmV0dXJuW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRvZ2dsZS1iYXNlXCIsY2xhc3M6dGhpcy5iYXNlQ2xhc3N9KSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10b2dnbGUtaGFuZGxlIHJvdyBmbGV4LWNlbnRlclwifSxbdGhpcy5jdXJyZW50SWNvbj90KFFJY29uLHtzdGF0aWNDbGFzczpcInEtdG9nZ2xlLWljb25cIixwcm9wczp7bmFtZTp0aGlzLmN1cnJlbnRJY29uLGNvbG9yOnRoaXMuaWNvbkNvbG9yfX0pOm51bGwsdChcImRpdlwiLHtyZWY6XCJyaXBwbGVcIixzdGF0aWNDbGFzczpcInEtcmFkaWFsLXJpcHBsZVwifSldKV19fSxiZWZvcmVDcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9fa2ViYWJUYWc9XCJxLXRvZ2dsZVwifX0sY29tcG9uZW50cz17cmFkaW86UVJhZGlvLGNoZWNrYm94OlFDaGVja2JveCx0b2dnbGU6UVRvZ2dsZX0sUU9wdGlvbkdyb3VwPXtuYW1lOlwiUU9wdGlvbkdyb3VwXCIsbWl4aW5zOltQYXJlbnRGaWVsZE1peGluXSxwcm9wczp7dmFsdWU6e3JlcXVpcmVkOiEwfSx0eXBlOntkZWZhdWx0OlwicmFkaW9cIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wicmFkaW9cIixcImNoZWNrYm94XCIsXCJ0b2dnbGVcIl0uaW5jbHVkZXModCl9fSxjb2xvcjpTdHJpbmcsa2VlcENvbG9yOkJvb2xlYW4sZGFyazpCb29sZWFuLG9wdGlvbnM6e3R5cGU6QXJyYXksdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0LmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVyblwidmFsdWVcImluIHQmJlwibGFiZWxcImluIHR9KX19LGxlZnRMYWJlbDpCb29sZWFuLGlubGluZTpCb29sZWFuLGRpc2FibGU6Qm9vbGVhbixyZWFkb25seTpCb29sZWFufSxjb21wdXRlZDp7Y29tcG9uZW50OmZ1bmN0aW9uKCl7cmV0dXJuIGNvbXBvbmVudHNbdGhpcy50eXBlXX0sbW9kZWw6ZnVuY3Rpb24oKXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKT90aGlzLnZhbHVlLnNsaWNlKCk6dGhpcy52YWx1ZX0sbGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWU/XCJyYWRpb1wiPT09dGhpcy50eXBlPzE6dGhpcy52YWx1ZS5sZW5ndGg6MH0sX19uZWVkc0JvcmRlcjpmdW5jdGlvbigpe3JldHVybiEwfX0sbWV0aG9kczp7X19vbkZvY3VzOmZ1bmN0aW9uKCl7dGhpcy4kZW1pdChcImZvY3VzXCIpfSxfX29uQmx1cjpmdW5jdGlvbigpe3RoaXMuJGVtaXQoXCJibHVyXCIpfSxfX3VwZGF0ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuJGVtaXQoXCJpbnB1dFwiLHQpLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkodCkhPT1KU09OLnN0cmluZ2lmeShlLnZhbHVlKSYmZS4kZW1pdChcImNoYW5nZVwiLHQpfSl9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dmFyIHQ9QXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKTtcInJhZGlvXCI9PT10aGlzLnR5cGU/dCYmY29uc29sZS5lcnJvcihcInEtb3B0aW9uLWdyb3VwOiBtb2RlbCBzaG91bGQgbm90IGJlIGFycmF5XCIpOnR8fGNvbnNvbGUuZXJyb3IoXCJxLW9wdGlvbi1ncm91cDogbW9kZWwgc2hvdWxkIGJlIGFycmF5IGluIHlvdXIgY2FzZVwiKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW9wdGlvbi1ncm91cCBncm91cFwiLGNsYXNzOntcInEtb3B0aW9uLWdyb3VwLWlubGluZS1vcHRzXCI6dGhpcy5pbmxpbmV9fSx0aGlzLm9wdGlvbnMubWFwKGZ1bmN0aW9uKGkpe3JldHVybiB0KFwiZGl2XCIsW3QoZS5jb21wb25lbnQse3Byb3BzOnt2YWx1ZTplLnZhbHVlLHZhbDppLnZhbHVlLHJlYWRvbmx5OmUucmVhZG9ubHl8fGkucmVhZG9ubHksZGlzYWJsZTplLmRpc2FibGV8fGkuZGlzYWJsZSxsYWJlbDppLmxhYmVsLGxlZnRMYWJlbDplLmxlZnRMYWJlbHx8aS5sZWZ0TGFiZWwsY29sb3I6aS5jb2xvcnx8ZS5jb2xvcixjaGVja2VkSWNvbjppLmNoZWNrZWRJY29uLHVuY2hlY2tlZEljb246aS51bmNoZWNrZWRJY29uLGRhcms6aS5kYXJrfHxlLmRhcmssa2VlcENvbG9yOmkua2VlcENvbG9yfHxlLmtlZXBDb2xvcn0sb246e2lucHV0OmUuX191cGRhdGUsZm9jdXM6ZS5fX29uRm9jdXMsYmx1cjplLl9fb25CbHVyfX0pXSl9KSl9fSxRRGlhbG9nPXtuYW1lOlwiUURpYWxvZ1wiLHByb3BzOnt2YWx1ZTpCb29sZWFuLHRpdGxlOlN0cmluZyxtZXNzYWdlOlN0cmluZyxwcm9tcHQ6T2JqZWN0LG9wdGlvbnM6T2JqZWN0LG9rOnt0eXBlOltTdHJpbmcsT2JqZWN0LEJvb2xlYW5dLGRlZmF1bHQ6ITB9LGNhbmNlbDpbU3RyaW5nLE9iamVjdCxCb29sZWFuXSxzdGFja0J1dHRvbnM6Qm9vbGVhbixwcmV2ZW50Q2xvc2U6Qm9vbGVhbixub0JhY2tkcm9wRGlzbWlzczpCb29sZWFuLG5vRXNjRGlzbWlzczpCb29sZWFuLG5vUmVmb2N1czpCb29sZWFuLHBvc2l0aW9uOlN0cmluZyxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9W10scz10aGlzLiRzbG90cy50aXRsZXx8dGhpcy50aXRsZSxuPXRoaXMuJHNsb3RzLm1lc3NhZ2V8fHRoaXMubWVzc2FnZTtyZXR1cm4gcyYmaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJtb2RhbC1oZWFkZXJcIn0sW3NdKSksbiYmaS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJtb2RhbC1ib2R5IG1vZGFsLW1lc3NhZ2UgbW9kYWwtc2Nyb2xsXCJ9LFtuXSkpLCh0aGlzLmhhc0Zvcm18fHRoaXMuJHNsb3RzLmJvZHkpJiZpLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcIm1vZGFsLWJvZHkgbW9kYWwtc2Nyb2xsXCJ9LHRoaXMuaGFzRm9ybT90aGlzLnByb21wdD90aGlzLl9fZ2V0UHJvbXB0KHQpOnRoaXMuX19nZXRPcHRpb25zKHQpOlt0aGlzLiRzbG90cy5ib2R5XSkpLHRoaXMuJHNjb3BlZFNsb3RzLmJ1dHRvbnM/aS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJtb2RhbC1idXR0b25zXCIsY2xhc3M6dGhpcy5idXR0b25DbGFzc30sW3RoaXMuJHNjb3BlZFNsb3RzLmJ1dHRvbnMoe29rOnRoaXMuX19vbk9rLGNhbmNlbDp0aGlzLl9fb25DYW5jZWx9KV0pKToodGhpcy5va3x8dGhpcy5jYW5jZWwpJiZpLnB1c2godGhpcy5fX2dldEJ1dHRvbnModCkpLHQoUU1vZGFsLHtyZWY6XCJtb2RhbFwiLHByb3BzOnt2YWx1ZTp0aGlzLnZhbHVlLG1pbmltaXplZDohMCxub0JhY2tkcm9wRGlzbWlzczp0aGlzLm5vQmFja2Ryb3BEaXNtaXNzfHx0aGlzLnByZXZlbnRDbG9zZSxub0VzY0Rpc21pc3M6dGhpcy5ub0VzY0Rpc21pc3N8fHRoaXMucHJldmVudENsb3NlLG5vUmVmb2N1czp0aGlzLm5vUmVmb2N1cyxwb3NpdGlvbjp0aGlzLnBvc2l0aW9ufSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7ZS4kZW1pdChcImlucHV0XCIsdCl9LHNob3c6ZnVuY3Rpb24oKXtpZihlLiRxLnBsYXRmb3JtLmlzLmRlc2t0b3Ape3ZhciB0O2lmKChlLnByb21wdHx8ZS5vcHRpb25zKSYmKHQ9ZS5wcm9tcHQ/ZS4kcmVmcy5tb2RhbC4kZWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJJTlBVVFwiKTplLiRyZWZzLm1vZGFsLiRlbC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwicS1vcHRpb25cIikpLmxlbmd0aClyZXR1cm4gdFswXS5mb2N1cygpLHZvaWQgZS4kZW1pdChcInNob3dcIik7KHQ9ZS4kcmVmcy5tb2RhbC4kZWwuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcInEtYnRuXCIpKS5sZW5ndGgmJnRbdC5sZW5ndGgtMV0uZm9jdXMoKSxlLiRlbWl0KFwic2hvd1wiKX1lbHNlIGUuJGVtaXQoXCJzaG93XCIpfSxoaWRlOmZ1bmN0aW9uKCl7ZS4kZW1pdChcImhpZGVcIil9LGRpc21pc3M6ZnVuY3Rpb24oKXtlLiRlbWl0KFwiY2FuY2VsXCIpfSxcImVzY2FwZS1rZXlcIjpmdW5jdGlvbigpe2UuJGVtaXQoXCJlc2NhcGUta2V5XCIpfX19LGkpfSxjb21wdXRlZDp7aGFzRm9ybTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByb21wdHx8dGhpcy5vcHRpb25zfSxva0xhYmVsOmZ1bmN0aW9uKCl7cmV0dXJuITA9PT10aGlzLm9rP3RoaXMuJHEuaTE4bi5sYWJlbC5vazp0aGlzLm9rfSxjYW5jZWxMYWJlbDpmdW5jdGlvbigpe3JldHVybiEwPT09dGhpcy5jYW5jZWw/dGhpcy4kcS5pMThuLmxhYmVsLmNhbmNlbDp0aGlzLmNhbmNlbH0sYnV0dG9uQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGFja0J1dHRvbnM/XCJjb2x1bW5cIjpcInJvd1wifSxva1Byb3BzOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdCh0aGlzLm9rKT09PXRoaXMub2s/T2JqZWN0LmFzc2lnbih7Y29sb3I6dGhpcy5jb2xvcixsYWJlbDp0aGlzLiRxLmkxOG4ubGFiZWwub2ssbm9SaXBwbGU6ITB9LHRoaXMub2spOntjb2xvcjp0aGlzLmNvbG9yLGZsYXQ6ITAsbGFiZWw6dGhpcy5va0xhYmVsLG5vUmlwcGxlOiEwfX0sY2FuY2VsUHJvcHM6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0KHRoaXMuY2FuY2VsKT09PXRoaXMuY2FuY2VsP09iamVjdC5hc3NpZ24oe2NvbG9yOnRoaXMuY29sb3IsbGFiZWw6dGhpcy4kcS5pMThuLmxhYmVsLmNhbmNlbCxub1JpcHBsZTohMH0sdGhpcy5jYW5jZWwpOntjb2xvcjp0aGlzLmNvbG9yLGZsYXQ6ITAsbGFiZWw6dGhpcy5jYW5jZWxMYWJlbCxub1JpcHBsZTohMH19fSxtZXRob2RzOntzaG93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJHJlZnMubW9kYWwuc2hvdygpfSxoaWRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy4kcmVmcy5tb2RhbD90aGlzLiRyZWZzLm1vZGFsLmhpZGUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQuaGFzRm9ybT9jbG9uZSh0Ll9fZ2V0RGF0YSgpKTp2b2lkIDB9KTpQcm9taXNlLnJlc29sdmUoKX0sX19nZXRQcm9tcHQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm5bdChRSW5wdXQse3N0eWxlOlwibWFyZ2luLWJvdHRvbTogMTBweFwiLHByb3BzOnt2YWx1ZTp0aGlzLnByb21wdC5tb2RlbCx0eXBlOnRoaXMucHJvbXB0LnR5cGV8fFwidGV4dFwiLGNvbG9yOnRoaXMuY29sb3Isbm9QYXNzVG9nZ2xlOiEwfSxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7ZS5wcm9tcHQubW9kZWw9dH0sa2V5dXA6ZnVuY3Rpb24odCl7MTM9PT1nZXRFdmVudEtleSh0KSYmZS5fX29uT2soKX19fSldfSxfX2dldE9wdGlvbnM6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm5bdChRT3B0aW9uR3JvdXAse3Byb3BzOnt2YWx1ZTp0aGlzLm9wdGlvbnMubW9kZWwsdHlwZTp0aGlzLm9wdGlvbnMudHlwZSxjb2xvcjp0aGlzLmNvbG9yLGlubGluZTp0aGlzLm9wdGlvbnMuaW5saW5lLG9wdGlvbnM6dGhpcy5vcHRpb25zLml0ZW1zfSxvbjp7Y2hhbmdlOmZ1bmN0aW9uKHQpe2Uub3B0aW9ucy5tb2RlbD10fX19KV19LF9fZ2V0QnV0dG9uczpmdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5jYW5jZWwmJmUucHVzaCh0KFFCdG4se3Byb3BzOnRoaXMuY2FuY2VsUHJvcHMsb246e2NsaWNrOnRoaXMuX19vbkNhbmNlbH19KSksdGhpcy5vayYmZS5wdXNoKHQoUUJ0bix7cHJvcHM6dGhpcy5va1Byb3BzLG9uOntjbGljazp0aGlzLl9fb25Pa319KSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcIm1vZGFsLWJ1dHRvbnNcIixjbGFzczp0aGlzLmJ1dHRvbkNsYXNzfSxlKX0sX19vbk9rOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5oaWRlKCkudGhlbihmdW5jdGlvbihlKXt0LiRlbWl0KFwib2tcIixlKX0pfSxfX29uQ2FuY2VsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5oaWRlKCkudGhlbihmdW5jdGlvbigpe3QuJGVtaXQoXCJjYW5jZWxcIil9KX0sX19nZXREYXRhOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJvbXB0P3RoaXMucHJvbXB0Lm1vZGVsOnRoaXMub3B0aW9ucz90aGlzLm9wdGlvbnMubW9kZWw6dm9pZCAwfX19O2Z1bmN0aW9uIGRlYm91bmNlKHQsZSxpKXt2YXIgcztmdW5jdGlvbiBuKCl7Zm9yKHZhciBuPXRoaXMsbz1bXSxyPWFyZ3VtZW50cy5sZW5ndGg7ci0tOylvW3JdPWFyZ3VtZW50c1tyXTtjbGVhclRpbWVvdXQocyksaSYmIXMmJnQuYXBwbHkodGhpcyxvKSxzPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtzPW51bGwsaXx8dC5hcHBseShuLG8pfSxlKX1yZXR1cm4gdm9pZCAwPT09ZSYmKGU9MjUwKSxuLmNhbmNlbD1mdW5jdGlvbigpe2NsZWFyVGltZW91dChzKX0sbn12YXIgUVRvb2x0aXA9e25hbWU6XCJRVG9vbHRpcFwiLG1peGluczpbTW9kZWxUb2dnbGVNaXhpbixDYW5SZW5kZXJNaXhpbl0scHJvcHM6e2FuY2hvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInRvcCBtaWRkbGVcIix2YWxpZGF0b3I6cG9zaXRpb25WYWxpZGF0b3J9LHNlbGY6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJib3R0b20gbWlkZGxlXCIsdmFsaWRhdG9yOnBvc2l0aW9uVmFsaWRhdG9yfSxvZmZzZXQ6e3R5cGU6QXJyYXksdmFsaWRhdG9yOm9mZnNldFZhbGlkYXRvcn0sZGVsYXk6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MH0sbWF4SGVpZ2h0OlN0cmluZyxkaXNhYmxlOkJvb2xlYW59LHdhdGNoOnskcm91dGU6ZnVuY3Rpb24oKXt0aGlzLmhpZGUoKX19LGNvbXB1dGVkOnthbmNob3JPcmlnaW46ZnVuY3Rpb24oKXtyZXR1cm4gcGFyc2VQb3NpdGlvbih0aGlzLmFuY2hvcil9LHNlbGZPcmlnaW46ZnVuY3Rpb24oKXtyZXR1cm4gcGFyc2VQb3NpdGlvbih0aGlzLnNlbGYpfX0sbWV0aG9kczp7X19zaG93OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy4kZWwpLHRoaXMuc2Nyb2xsVGFyZ2V0PWdldFNjcm9sbFRhcmdldCh0aGlzLmFuY2hvckVsKSx0aGlzLnNjcm9sbFRhcmdldC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdGhpcy5oaWRlLGxpc3Rlbk9wdHMucGFzc2l2ZSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0aGlzLl9fZGVib3VuY2VkVXBkYXRlUG9zaXRpb24sbGlzdGVuT3B0cy5wYXNzaXZlKSx0aGlzLiRxLnBsYXRmb3JtLmlzLm1vYmlsZSYmZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIix0aGlzLmhpZGUsITApLHRoaXMuX191cGRhdGVQb3NpdGlvbigpLHRoaXMuc2hvd1Byb21pc2UmJnRoaXMuc2hvd1Byb21pc2VSZXNvbHZlKCl9LF9faGlkZTpmdW5jdGlvbigpe3RoaXMuX19jbGVhbnVwKCksdGhpcy5oaWRlUHJvbWlzZSYmdGhpcy5oaWRlUHJvbWlzZVJlc29sdmUoKX0sX19jbGVhbnVwOmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuc2Nyb2xsVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0aGlzLmhpZGUsbGlzdGVuT3B0cy5wYXNzaXZlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHRoaXMuX19kZWJvdW5jZWRVcGRhdGVQb3NpdGlvbixsaXN0ZW5PcHRzLnBhc3NpdmUpLHRoaXMuJGVsLnJlbW92ZSgpLHRoaXMuJHEucGxhdGZvcm0uaXMubW9iaWxlJiZkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLHRoaXMuaGlkZSwhMCl9LF9fdXBkYXRlUG9zaXRpb246ZnVuY3Rpb24oKXtzZXRQb3NpdGlvbih7ZWw6dGhpcy4kZWwsYW5pbWF0ZTohMCxvZmZzZXQ6dGhpcy5vZmZzZXQsYW5jaG9yRWw6dGhpcy5hbmNob3JFbCxhbmNob3JPcmlnaW46dGhpcy5hbmNob3JPcmlnaW4sc2VsZk9yaWdpbjp0aGlzLnNlbGZPcmlnaW4sbWF4SGVpZ2h0OnRoaXMubWF4SGVpZ2h0fSl9LF9fZGVsYXlTaG93OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9c2V0VGltZW91dCh0aGlzLnNob3csdGhpcy5kZWxheSl9LF9fZGVsYXlIaWRlOmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuaGlkZSgpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe2lmKHRoaXMuY2FuUmVuZGVyKXJldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10b29sdGlwIGFuaW1hdGUtcG9wdXBcIn0sW3QoXCJkaXZcIix0aGlzLiRzbG90cy5kZWZhdWx0KV0pfSxiZWZvcmVNb3VudDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fX2RlYm91bmNlZFVwZGF0ZVBvc2l0aW9uPWRlYm91bmNlKGZ1bmN0aW9uKCl7dC5fX3VwZGF0ZVBvc2l0aW9uKCl9LDcwKX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0LiRlbC5vZmZzZXRIZWlnaHQsdC5hbmNob3JFbD10LiRlbC5wYXJlbnROb2RlLHQuYW5jaG9yRWwucmVtb3ZlQ2hpbGQodC4kZWwpLCh0LmFuY2hvckVsLmNsYXNzTGlzdC5jb250YWlucyhcInEtcG9wdXAtLXNraXBcIil8fHQuYW5jaG9yRWwuY2xhc3NMaXN0LmNvbnRhaW5zKFwibm8tcG9pbnRlci1ldmVudHNcIikpJiYodC5hbmNob3JFbD10LmFuY2hvckVsLnBhcmVudE5vZGUpLHQuJHEucGxhdGZvcm0uaXMubW9iaWxlP3QuYW5jaG9yRWwuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsdC5zaG93KToodC5hbmNob3JFbC5hZGRFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLHQuX19kZWxheVNob3cpLHQuYW5jaG9yRWwuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsdC5fX2RlbGF5U2hvdyksdC5hbmNob3JFbC5hZGRFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLHQuX19kZWxheUhpZGUpLHQuYW5jaG9yRWwuYWRkRXZlbnRMaXN0ZW5lcihcImJsdXJcIix0Ll9fZGVsYXlIaWRlKSksdC52YWx1ZSYmdC5zaG93KCl9KX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnNob3dpbmcmJnRoaXMuX19jbGVhbnVwKCksdGhpcy5hbmNob3JFbCYmKHRoaXMuJHEucGxhdGZvcm0uaXMubW9iaWxlP3RoaXMuYW5jaG9yRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsdGhpcy5zaG93KToodGhpcy5hbmNob3JFbC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VlbnRlclwiLHRoaXMuX19kZWxheVNob3cpLHRoaXMuYW5jaG9yRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3VzXCIsdGhpcy5fX2RlbGF5U2hvdyksdGhpcy5hbmNob3JFbC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLHRoaXMuX19kZWxheUhpZGUpLHRoaXMuYW5jaG9yRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImJsdXJcIix0aGlzLl9fZGVsYXlIaWRlKSkpfX07ZnVuY3Rpb24gcnVuKHQsZSxpKXtlLmhhbmRsZXI/ZS5oYW5kbGVyKHQsaSxpLmNhcmV0KTppLnJ1bkNtZChlLmNtZCxlLnBhcmFtKX1mdW5jdGlvbiBnZXRCdG4odCxlLGkscyxuKXt2b2lkIDA9PT1uJiYobj0hMSk7dmFyIG89bnx8XCJ0b2dnbGVcIj09PWkudHlwZSYmKGkudG9nZ2xlZD9pLnRvZ2dsZWQoZSk6aS5jbWQmJmUuY2FyZXQuaXMoaS5jbWQsaS5wYXJhbSkpLHI9W10sYT17Y2xpY2s6ZnVuY3Rpb24odCl7cyYmcygpLHJ1bih0LGksZSl9fTtpZihpLnRpcCYmZS4kcS5wbGF0Zm9ybS5pcy5kZXNrdG9wKXt2YXIgbD1pLmtleT90KFwiZGl2XCIsW3QoXCJzbWFsbFwiLFwiKENUUkwgKyBcIitTdHJpbmcuZnJvbUNoYXJDb2RlKGkua2V5KStcIilcIildKTpudWxsO3IucHVzaCh0KFFUb29sdGlwLHtwcm9wczp7ZGVsYXk6MWUzfX0sW3QoXCJkaXZcIix7ZG9tUHJvcHM6e2lubmVySFRNTDppLnRpcH19KSxsXSkpfXJldHVybiB0KFFCdG4se3Byb3BzOk9iamVjdC5hc3NpZ24oe30sZS5idXR0b25Qcm9wcyx7aWNvbjppLmljb24sY29sb3I6bz9pLnRvZ2dsZUNvbG9yfHxlLnRvb2xiYXJUb2dnbGVDb2xvcjppLmNvbG9yfHxlLnRvb2xiYXJDb2xvcix0ZXh0Q29sb3I6byYmKGUudG9vbGJhckZsYXR8fGUudG9vbGJhck91dGxpbmUpP251bGw6aS50ZXh0Q29sb3J8fGUudG9vbGJhclRleHRDb2xvcixsYWJlbDppLmxhYmVsLGRpc2FibGU6ISFpLmRpc2FibGUmJihcImZ1bmN0aW9uXCIhPXR5cGVvZiBpLmRpc2FibGV8fGkuZGlzYWJsZShlKSl9KSxvbjphfSxyKX1mdW5jdGlvbiBnZXREcm9wZG93bih0LGUsaSl7dmFyIHMsbixvPWkubGFiZWwscj1pLmljb24sYT1cIm5vLWljb25zXCI9PT1pLmxpc3Q7ZnVuY3Rpb24gbCgpe2guY29tcG9uZW50SW5zdGFuY2UuaGlkZSgpfVwib25seS1pY29uc1wiPT09aS5saXN0PyhuPWkub3B0aW9ucy5tYXAoZnVuY3Rpb24oaSl7dmFyIHM9dm9pZCAwPT09aS50eXBlJiZlLmNhcmV0LmlzKGkuY21kLGkucGFyYW0pO3JldHVybiBzJiYobz1pLnRpcCxyPWkuaWNvbiksZ2V0QnRuKHQsZSxpLGwscyl9KSxzPWUudG9vbGJhckJhY2tncm91bmRDbGFzcyxuPVt0KFFCdG5Hcm91cCx7cHJvcHM6ZS5idXR0b25Qcm9wcyxzdGF0aWNDbGFzczpcInJlbGF0aXZlLXBvc2l0aW9uIHEtZWRpdG9yLXRvb2xiYXItcGFkZGluZ1wiLHN0eWxlOntib3JkZXJSYWRpdXM6XCIwXCJ9fSxuKV0pOihuPWkub3B0aW9ucy5tYXAoZnVuY3Rpb24oaSl7dmFyIHM9ISFpLmRpc2FibGUmJmkuZGlzYWJsZShlKSxuPXZvaWQgMD09PWkudHlwZSYmZS5jYXJldC5pcyhpLmNtZCxpLnBhcmFtKTtuJiYobz1pLnRpcCxyPWkuaWNvbik7dmFyIGM9aS5odG1sVGlwO3JldHVybiB0KFFJdGVtLHtwcm9wczp7YWN0aXZlOm4sbGluazohc30sY2xhc3M6e2Rpc2FibGVkOnN9LG5hdGl2ZU9uOntjbGljazpmdW5jdGlvbih0KXtzfHwobCgpLGUuJHJlZnMuY29udGVudCYmZS4kcmVmcy5jb250ZW50LmZvY3VzKCksZS5jYXJldC5yZXN0b3JlKCkscnVuKHQsaSxlKSl9fX0sW2E/XCJcIjp0KFFJdGVtU2lkZSx7cHJvcHM6e2ljb246aS5pY29ufX0pLHQoUUl0ZW1NYWluLHtwcm9wczohYyYmaS50aXA/e2xhYmVsOmkudGlwfTpudWxsLGRvbVByb3BzOmM/e2lubmVySFRNTDppLmh0bWxUaXB9Om51bGx9KV0pfSkscz1bZS50b29sYmFyQmFja2dyb3VuZENsYXNzLGUudG9vbGJhclRleHRDb2xvcj9cInRleHQtXCIrZS50b29sYmFyVGV4dENvbG9yOlwiXCJdLG49W3QoUUxpc3Qse3Byb3BzOntzZXBhcmF0b3I6ITB9fSxbbl0pXSk7dmFyIGM9aS5oaWdobGlnaHQmJm8hPT1pLmxhYmVsLGg9dChRQnRuRHJvcGRvd24se3Byb3BzOk9iamVjdC5hc3NpZ24oe30sZS5idXR0b25Qcm9wcyx7bm9DYXBzOiEwLG5vV3JhcDohMCxjb2xvcjpjP2UudG9vbGJhclRvZ2dsZUNvbG9yOmUudG9vbGJhckNvbG9yLHRleHRDb2xvcjpjJiYoZS50b29sYmFyRmxhdHx8ZS50b29sYmFyT3V0bGluZSk/bnVsbDplLnRvb2xiYXJUZXh0Q29sb3IsbGFiZWw6aS5maXhlZExhYmVsP2kubGFiZWw6byxpY29uOmkuZml4ZWRJY29uP2kuaWNvbjpyLGNvbnRlbnRDbGFzczpzfSl9LG4pO3JldHVybiBofWZ1bmN0aW9uIGdldFRvb2xiYXIodCxlKXtpZihlLmNhcmV0KXJldHVybiBlLmJ1dHRvbnMubWFwKGZ1bmN0aW9uKGkpe3JldHVybiB0KFFCdG5Hcm91cCx7cHJvcHM6ZS5idXR0b25Qcm9wcyxzdGF0aWNDbGFzczpcIml0ZW1zLWNlbnRlciByZWxhdGl2ZS1wb3NpdGlvblwifSxpLm1hcChmdW5jdGlvbihpKXtyZXR1cm5cInNsb3RcIj09PWkudHlwZT9lLiRzbG90c1tpLnNsb3RdOlwiZHJvcGRvd25cIj09PWkudHlwZT9nZXREcm9wZG93bih0LGUsaSk6Z2V0QnRuKHQsZSxpKX0pKX0pfWZ1bmN0aW9uIGdldEZvbnRzKHQsZSxpLHMpe3ZvaWQgMD09PXMmJihzPXt9KTt2YXIgbj1PYmplY3Qua2V5cyhzKTtpZigwPT09bi5sZW5ndGgpcmV0dXJue307dmFyIG89e2RlZmF1bHRfZm9udDp7Y21kOlwiZm9udE5hbWVcIixwYXJhbTp0LGljb246aSx0aXA6ZX19O3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIGU9c1t0XTtvW3RdPXtjbWQ6XCJmb250TmFtZVwiLHBhcmFtOmUsaWNvbjppLHRpcDplLGh0bWxUaXA6Jzxmb250IGZhY2U9XCInK2UrJ1wiPicrZStcIjwvZm9udD5cIn19KSxvfWZ1bmN0aW9uIGdldExpbmtFZGl0b3IodCxlKXtpZihlLmNhcmV0KXt2YXIgaT1lLnRvb2xiYXJDb2xvcnx8ZS50b29sYmFyVGV4dENvbG9yLHM9ZS5lZGl0TGlua1VybCxuPWZ1bmN0aW9uKCl7ZS5jYXJldC5yZXN0b3JlKCkscyE9PWUuZWRpdExpbmtVcmwmJmRvY3VtZW50LmV4ZWNDb21tYW5kKFwiY3JlYXRlTGlua1wiLCExLFwiXCI9PT1zP1wiIFwiOnMpLGUuZWRpdExpbmtVcmw9bnVsbH07cmV0dXJuW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLW14LXhzXCIsY2xhc3M6XCJ0ZXh0LVwiK2l9LFtlLiRxLmkxOG4uZWRpdG9yLnVybCtcIjogXCJdKSx0KFFJbnB1dCx7a2V5OlwicWVkdF9idG1faW5wdXRcIixzdGF0aWNDbGFzczpcInEtbWEtbm9uZSBxLXBhLW5vbmUgY29sIHEtZWRpdG9yLWlucHV0XCIscHJvcHM6e3ZhbHVlOnMsY29sb3I6aSxhdXRvZm9jdXM6ITAsaGlkZVVuZGVybGluZTohMH0sb246e2lucHV0OmZ1bmN0aW9uKHQpe3M9dH0sa2V5ZG93bjpmdW5jdGlvbih0KXtzd2l0Y2goZ2V0RXZlbnRLZXkodCkpe2Nhc2UgMTM6cmV0dXJuIHQucHJldmVudERlZmF1bHQoKSxuKCk7Y2FzZSAyNzplLmNhcmV0LnJlc3RvcmUoKSwhZS5lZGl0TGlua1VybCYmZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJ1bmxpbmtcIiksZS5lZGl0TGlua1VybD1udWxsfX19fSksdChRQnRuR3JvdXAse2tleTpcInFlZHRfYnRtX2dycFwiLHByb3BzOmUuYnV0dG9uUHJvcHN9LFt0KFFCdG4se2tleTpcInFlZHRfYnRtX3JlbVwiLGF0dHJzOnt0YWJpbmRleDotMX0scHJvcHM6T2JqZWN0LmFzc2lnbih7fSxlLmJ1dHRvblByb3BzLHtsYWJlbDplLiRxLmkxOG4ubGFiZWwucmVtb3ZlLG5vQ2FwczohMH0pLG9uOntjbGljazpmdW5jdGlvbigpe2UuY2FyZXQucmVzdG9yZSgpLGRvY3VtZW50LmV4ZWNDb21tYW5kKFwidW5saW5rXCIpLGUuZWRpdExpbmtVcmw9bnVsbH19fSksdChRQnRuLHtrZXk6XCJxZWR0X2J0bV91cGRcIixwcm9wczpPYmplY3QuYXNzaWduKHt9LGUuYnV0dG9uUHJvcHMse2xhYmVsOmUuJHEuaTE4bi5sYWJlbC51cGRhdGUsbm9DYXBzOiEwfSksb246e2NsaWNrOm59fSldKV19fWZ1bmN0aW9uIGdldEJsb2NrRWxlbWVudCh0LGUpe2lmKGUmJnQ9PT1lKXJldHVybiBudWxsO3ZhciBpPSh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZT93aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KTp0LmN1cnJlbnRTdHlsZSkuZGlzcGxheTtyZXR1cm5cImJsb2NrXCI9PT1pfHxcInRhYmxlXCI9PT1pP3Q6Z2V0QmxvY2tFbGVtZW50KHQucGFyZW50Tm9kZSl9ZnVuY3Rpb24gaXNDaGlsZE9mKHQsZSl7aWYoIXQpcmV0dXJuITE7Zm9yKDt0PXQucGFyZW50Tm9kZTspe2lmKHQ9PT1kb2N1bWVudC5ib2R5KXJldHVybiExO2lmKHQ9PT1lKXJldHVybiEwfXJldHVybiExfXZhciB1cmxSZWdleD0vXmh0dHBzPzpcXC9cXC8vLENhcmV0PWZ1bmN0aW9uKHQsZSl7dGhpcy5lbD10LHRoaXMudm09ZX0scHJvdG90eXBlQWNjZXNzb3JzPXtzZWxlY3Rpb246e2NvbmZpZ3VyYWJsZTohMH0saGFzU2VsZWN0aW9uOntjb25maWd1cmFibGU6ITB9LHJhbmdlOntjb25maWd1cmFibGU6ITB9LHBhcmVudDp7Y29uZmlndXJhYmxlOiEwfSxibG9ja1BhcmVudDp7Y29uZmlndXJhYmxlOiEwfX07cHJvdG90eXBlQWNjZXNzb3JzLnNlbGVjdGlvbi5nZXQ9ZnVuY3Rpb24oKXtpZih0aGlzLmVsKXt2YXIgdD1kb2N1bWVudC5nZXRTZWxlY3Rpb24oKTtyZXR1cm4gaXNDaGlsZE9mKHQuYW5jaG9yTm9kZSx0aGlzLmVsKSYmaXNDaGlsZE9mKHQuZm9jdXNOb2RlLHRoaXMuZWwpP3Q6dm9pZCAwfX0scHJvdG90eXBlQWNjZXNzb3JzLmhhc1NlbGVjdGlvbi5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb24/dGhpcy5zZWxlY3Rpb24udG9TdHJpbmcoKS5sZW5ndGg+MDpudWxsfSxwcm90b3R5cGVBY2Nlc3NvcnMucmFuZ2UuZ2V0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zZWxlY3Rpb247aWYodClyZXR1cm4gdC5yYW5nZUNvdW50P3QuZ2V0UmFuZ2VBdCgwKTpudWxsfSxwcm90b3R5cGVBY2Nlc3NvcnMucGFyZW50LmdldD1mdW5jdGlvbigpe3ZhciB0PXRoaXMucmFuZ2U7aWYodCl7dmFyIGU9dC5zdGFydENvbnRhaW5lcjtyZXR1cm4gZS5ub2RlVHlwZT09PWRvY3VtZW50LkVMRU1FTlRfTk9ERT9lOmUucGFyZW50Tm9kZX19LHByb3RvdHlwZUFjY2Vzc29ycy5ibG9ja1BhcmVudC5nZXQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcmVudDtpZih0KXJldHVybiBnZXRCbG9ja0VsZW1lbnQodCx0aGlzLmVsKX0sQ2FyZXQucHJvdG90eXBlLnNhdmU9ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9dGhpcy5yYW5nZSksdGhpcy5fcmFuZ2U9dH0sQ2FyZXQucHJvdG90eXBlLnJlc3RvcmU9ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9dGhpcy5fcmFuZ2UpO3ZhciBlPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCksaT1kb2N1bWVudC5nZXRTZWxlY3Rpb24oKTt0PyhlLnNldFN0YXJ0KHQuc3RhcnRDb250YWluZXIsdC5zdGFydE9mZnNldCksZS5zZXRFbmQodC5lbmRDb250YWluZXIsdC5lbmRPZmZzZXQpLGkucmVtb3ZlQWxsUmFuZ2VzKCksaS5hZGRSYW5nZShlKSk6KGkuc2VsZWN0QWxsQ2hpbGRyZW4odGhpcy5lbCksaS5jb2xsYXBzZVRvRW5kKCkpfSxDYXJldC5wcm90b3R5cGUuaGFzUGFyZW50PWZ1bmN0aW9uKHQsZSl7dmFyIGk9ZT90aGlzLnBhcmVudDp0aGlzLmJsb2NrUGFyZW50O3JldHVybiEhaSYmaS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09dC50b0xvd2VyQ2FzZSgpfSxDYXJldC5wcm90b3R5cGUuaGFzUGFyZW50cz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnBhcmVudDtyZXR1cm4hIWUmJnQuaW5jbHVkZXMoZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKX0sQ2FyZXQucHJvdG90eXBlLmlzPWZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQpe2Nhc2VcImZvcm1hdEJsb2NrXCI6cmV0dXJuXCJESVZcIj09PWUmJnRoaXMucGFyZW50PT09dGhpcy5lbHx8dGhpcy5oYXNQYXJlbnQoZSxcIlBSRVwiPT09ZSk7Y2FzZVwibGlua1wiOnJldHVybiB0aGlzLmhhc1BhcmVudChcIkFcIiwhMCk7Y2FzZVwiZm9udFNpemVcIjpyZXR1cm4gZG9jdW1lbnQucXVlcnlDb21tYW5kVmFsdWUodCk9PT1lO2Nhc2VcImZvbnROYW1lXCI6dmFyIGk9ZG9jdW1lbnQucXVlcnlDb21tYW5kVmFsdWUodCk7cmV0dXJuIGk9PT0nXCInK2UrJ1wiJ3x8aT09PWU7Y2FzZVwiZnVsbHNjcmVlblwiOnJldHVybiB0aGlzLnZtLmluRnVsbHNjcmVlbjtjYXNlIHZvaWQgMDpyZXR1cm4hMTtkZWZhdWx0OnZhciBzPWRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN0YXRlKHQpO3JldHVybiBlP3M9PT1lOnN9fSxDYXJldC5wcm90b3R5cGUuZ2V0UGFyZW50QXR0cmlidXRlPWZ1bmN0aW9uKHQpe2lmKHRoaXMucGFyZW50KXJldHVybiB0aGlzLnBhcmVudC5nZXRBdHRyaWJ1dGUodCl9LENhcmV0LnByb3RvdHlwZS5jYW49ZnVuY3Rpb24odCl7aWYoXCJvdXRkZW50XCI9PT10KXJldHVybiB0aGlzLmhhc1BhcmVudHMoW1wiYmxvY2txdW90ZVwiLFwibGlcIl0pO2lmKFwiaW5kZW50XCI9PT10KXt2YXIgZT0hIXRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO2lmKFwiYmxvY2txdW90ZVwiPT09ZSlyZXR1cm4hMTtpZihcImxpXCI9PT1lKXt2YXIgaT10aGlzLnBhcmVudC5wcmV2aW91c1NpYmxpbmc7cmV0dXJuIGkmJlwibGlcIj09PWkubm9kZU5hbWUudG9Mb3dlckNhc2UoKX1yZXR1cm4hMX19LENhcmV0LnByb3RvdHlwZS5hcHBseT1mdW5jdGlvbih0LGUsaSl7aWYodm9pZCAwPT09aSYmKGk9ZnVuY3Rpb24oKXt9KSxcImZvcm1hdEJsb2NrXCI9PT10KVtcIkJMT0NLUVVPVEVcIixcIkgxXCIsXCJIMlwiLFwiSDNcIixcIkg0XCIsXCJINVwiLFwiSDZcIl0uaW5jbHVkZXMoZSkmJnRoaXMuaXModCxlKSYmKHQ9XCJvdXRkZW50XCIsZT1udWxsKSxcIlBSRVwiPT09ZSYmdGhpcy5pcyh0LFwiUFJFXCIpJiYoZT1cIlBcIik7ZWxzZXtpZihcInByaW50XCI9PT10KXtpKCk7dmFyIHM9d2luZG93Lm9wZW4oKTtyZXR1cm4gcy5kb2N1bWVudC53cml0ZShcIlxcbiAgICAgICAgPCFkb2N0eXBlIGh0bWw+XFxuICAgICAgICA8aHRtbD5cXG4gICAgICAgICAgPGhlYWQ+XFxuICAgICAgICAgICAgPHRpdGxlPlByaW50IC0gXCIrZG9jdW1lbnQudGl0bGUrXCI8L3RpdGxlPlxcbiAgICAgICAgICA8L2hlYWQ+XFxuICAgICAgICAgIDxib2R5PlxcbiAgICAgICAgICAgIDxkaXY+XCIrdGhpcy5lbC5pbm5lckhUTUwrXCI8L2Rpdj5cXG4gICAgICAgICAgPC9ib2R5PlxcbiAgICAgICAgPC9odG1sPlxcbiAgICAgIFwiKSxzLnByaW50KCksdm9pZCBzLmNsb3NlKCl9aWYoXCJsaW5rXCI9PT10KXt2YXIgbj10aGlzLmdldFBhcmVudEF0dHJpYnV0ZShcImhyZWZcIik7aWYobil0aGlzLnZtLmVkaXRMaW5rVXJsPW47ZWxzZXt2YXIgbz10aGlzLnNlbGVjdFdvcmQodGhpcy5zZWxlY3Rpb24pLHI9bz9vLnRvU3RyaW5nKCk6XCJcIjtpZighci5sZW5ndGgpcmV0dXJuO3RoaXMudm0uZWRpdExpbmtVcmw9dXJsUmVnZXgudGVzdChyKT9yOlwiXCIsZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJjcmVhdGVMaW5rXCIsITEsXCJcIj09PXRoaXMudm0uZWRpdExpbmtVcmw/XCIgXCI6dGhpcy52bS5lZGl0TGlua1VybCl9cmV0dXJuIHRoaXMucmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKHRoaXMucGFyZW50KSx2b2lkIHRoaXMuc2F2ZSgpfWlmKFwiZnVsbHNjcmVlblwiPT09dClyZXR1cm4gdGhpcy52bS50b2dnbGVGdWxsc2NyZWVuKCksdm9pZCBpKCl9ZG9jdW1lbnQuZXhlY0NvbW1hbmQodCwhMSxlKSxpKCl9LENhcmV0LnByb3RvdHlwZS5zZWxlY3RXb3JkPWZ1bmN0aW9uKHQpe2lmKCF0LmlzQ29sbGFwc2VkKXJldHVybiB0O3ZhciBlPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7ZS5zZXRTdGFydCh0LmFuY2hvck5vZGUsdC5hbmNob3JPZmZzZXQpLGUuc2V0RW5kKHQuZm9jdXNOb2RlLHQuZm9jdXNPZmZzZXQpO3ZhciBpPWUuY29sbGFwc2VkP1tcImJhY2t3YXJkXCIsXCJmb3J3YXJkXCJdOltcImZvcndhcmRcIixcImJhY2t3YXJkXCJdO2UuZGV0YWNoKCk7dmFyIHM9dC5mb2N1c05vZGUsbj10LmZvY3VzT2Zmc2V0O3JldHVybiB0LmNvbGxhcHNlKHQuYW5jaG9yTm9kZSx0LmFuY2hvck9mZnNldCksdC5tb2RpZnkoXCJtb3ZlXCIsaVswXSxcImNoYXJhY3RlclwiKSx0Lm1vZGlmeShcIm1vdmVcIixpWzFdLFwid29yZFwiKSx0LmV4dGVuZChzLG4pLHQubW9kaWZ5KFwiZXh0ZW5kXCIsaVsxXSxcImNoYXJhY3RlclwiKSx0Lm1vZGlmeShcImV4dGVuZFwiLGlbMF0sXCJ3b3JkXCIpLHR9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKENhcmV0LnByb3RvdHlwZSxwcm90b3R5cGVBY2Nlc3NvcnMpO3ZhciB0b1N0cmluZz1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLGhhc093bj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LGNsYXNzMnR5cGU9e307ZnVuY3Rpb24gdHlwZSh0KXtyZXR1cm4gbnVsbD09PXQ/U3RyaW5nKHQpOmNsYXNzMnR5cGVbdG9TdHJpbmcuY2FsbCh0KV18fFwib2JqZWN0XCJ9ZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh0KXtpZighdHx8XCJvYmplY3RcIiE9PXR5cGUodCkpcmV0dXJuITE7aWYodC5jb25zdHJ1Y3RvciYmIWhhc093bi5jYWxsKHQsXCJjb25zdHJ1Y3RvclwiKSYmIWhhc093bi5jYWxsKHQuY29uc3RydWN0b3IucHJvdG90eXBlLFwiaXNQcm90b3R5cGVPZlwiKSlyZXR1cm4hMTt2YXIgZTtmb3IoZSBpbiB0KTtyZXR1cm4gdm9pZCAwPT09ZXx8aGFzT3duLmNhbGwodCxlKX1mdW5jdGlvbiBleHRlbmQoKXt2YXIgdCxlLGkscyxuLG8scj1hcmd1bWVudHMsYT1hcmd1bWVudHNbMF18fHt9LGw9MSxjPWFyZ3VtZW50cy5sZW5ndGgsaD0hMTtmb3IoXCJib29sZWFuXCI9PXR5cGVvZiBhJiYoaD1hLGE9YXJndW1lbnRzWzFdfHx7fSxsPTIpLE9iamVjdChhKSE9PWEmJlwiZnVuY3Rpb25cIiE9PXR5cGUoYSkmJihhPXt9KSxjPT09bCYmKGE9dGhpcyxsLS0pO2w8YztsKyspaWYobnVsbCE9PSh0PXJbbF0pKWZvcihlIGluIHQpaT1hW2VdLGEhPT0ocz10W2VdKSYmKGgmJnMmJihpc1BsYWluT2JqZWN0KHMpfHwobj1cImFycmF5XCI9PT10eXBlKHMpKSk/KG4/KG49ITEsbz1pJiZcImFycmF5XCI9PT10eXBlKGkpP2k6W10pOm89aSYmaXNQbGFpbk9iamVjdChpKT9pOnt9LGFbZV09ZXh0ZW5kKGgsbyxzKSk6dm9pZCAwIT09cyYmKGFbZV09cykpO3JldHVybiBhfVwiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdFwiLnNwbGl0KFwiIFwiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2NsYXNzMnR5cGVbXCJbb2JqZWN0IFwiK3QrXCJdXCJdPXQudG9Mb3dlckNhc2UoKX0pO3ZhciBRRWRpdG9yPXtuYW1lOlwiUUVkaXRvclwiLG1peGluczpbRnVsbHNjcmVlbk1peGluXSxwcm9wczp7dmFsdWU6e3R5cGU6U3RyaW5nLHJlcXVpcmVkOiEwfSxyZWFkb25seTpCb29sZWFuLGRpc2FibGU6Qm9vbGVhbixtaW5IZWlnaHQ6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCIxMHJlbVwifSxtYXhIZWlnaHQ6U3RyaW5nLGhlaWdodDpTdHJpbmcsZGVmaW5pdGlvbnM6T2JqZWN0LGZvbnRzOk9iamVjdCx0b29sYmFyOnt0eXBlOkFycmF5LHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4gMD09PXQubGVuZ3RofHx0LmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVybiB0Lmxlbmd0aH0pfSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuW1tcImxlZnRcIixcImNlbnRlclwiLFwicmlnaHRcIixcImp1c3RpZnlcIl0sW1wiYm9sZFwiLFwiaXRhbGljXCIsXCJ1bmRlcmxpbmVcIixcInN0cmlrZVwiXSxbXCJ1bmRvXCIsXCJyZWRvXCJdXX19LHRvb2xiYXJDb2xvcjpTdHJpbmcsdG9vbGJhclRleHRDb2xvcjpTdHJpbmcsdG9vbGJhclRvZ2dsZUNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSx0b29sYmFyQmc6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJncmV5LTNcIn0sdG9vbGJhckZsYXQ6Qm9vbGVhbix0b29sYmFyT3V0bGluZTpCb29sZWFuLHRvb2xiYXJQdXNoOkJvb2xlYW4sdG9vbGJhclJvdW5kZWQ6Qm9vbGVhbixjb250ZW50U3R5bGU6T2JqZWN0LGNvbnRlbnRDbGFzczpbT2JqZWN0LEFycmF5LFN0cmluZ119LGNvbXB1dGVkOntlZGl0YWJsZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLnJlYWRvbmx5JiYhdGhpcy5kaXNhYmxlfSxoYXNUb29sYmFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9vbGJhciYmdGhpcy50b29sYmFyLmxlbmd0aD4wfSx0b29sYmFyQmFja2dyb3VuZENsYXNzOmZ1bmN0aW9uKCl7aWYodGhpcy50b29sYmFyQmcpcmV0dXJuXCJiZy1cIit0aGlzLnRvb2xiYXJCZ30sYnV0dG9uUHJvcHM6ZnVuY3Rpb24oKXtyZXR1cm57b3V0bGluZTp0aGlzLnRvb2xiYXJPdXRsaW5lLGZsYXQ6dGhpcy50b29sYmFyRmxhdCxwdXNoOnRoaXMudG9vbGJhclB1c2gscm91bmRlZDp0aGlzLnRvb2xiYXJSb3VuZGVkLGRlbnNlOiEwLGNvbG9yOnRoaXMudG9vbGJhckNvbG9yLGRpc2FibGU6IXRoaXMuZWRpdGFibGV9fSxidXR0b25EZWY6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRxLmkxOG4uZWRpdG9yLGU9dGhpcy4kcS5pY29uLmVkaXRvcjtyZXR1cm57Ym9sZDp7Y21kOlwiYm9sZFwiLGljb246ZS5ib2xkLHRpcDp0LmJvbGQsa2V5OjY2fSxpdGFsaWM6e2NtZDpcIml0YWxpY1wiLGljb246ZS5pdGFsaWMsdGlwOnQuaXRhbGljLGtleTo3M30sc3RyaWtlOntjbWQ6XCJzdHJpa2VUaHJvdWdoXCIsaWNvbjplLnN0cmlrZXRocm91Z2gsdGlwOnQuc3RyaWtldGhyb3VnaCxrZXk6ODN9LHVuZGVybGluZTp7Y21kOlwidW5kZXJsaW5lXCIsaWNvbjplLnVuZGVybGluZSx0aXA6dC51bmRlcmxpbmUsa2V5Ojg1fSx1bm9yZGVyZWQ6e2NtZDpcImluc2VydFVub3JkZXJlZExpc3RcIixpY29uOmUudW5vcmRlcmVkTGlzdCx0aXA6dC51bm9yZGVyZWRMaXN0fSxvcmRlcmVkOntjbWQ6XCJpbnNlcnRPcmRlcmVkTGlzdFwiLGljb246ZS5vcmRlcmVkTGlzdCx0aXA6dC5vcmRlcmVkTGlzdH0sc3Vic2NyaXB0OntjbWQ6XCJzdWJzY3JpcHRcIixpY29uOmUuc3Vic2NyaXB0LHRpcDp0LnN1YnNjcmlwdCxodG1sVGlwOlwieDxzdWJzY3JpcHQ+Mjwvc3Vic2NyaXB0PlwifSxzdXBlcnNjcmlwdDp7Y21kOlwic3VwZXJzY3JpcHRcIixpY29uOmUuc3VwZXJzY3JpcHQsdGlwOnQuc3VwZXJzY3JpcHQsaHRtbFRpcDpcIng8c3VwZXJzY3JpcHQ+Mjwvc3VwZXJzY3JpcHQ+XCJ9LGxpbms6e2NtZDpcImxpbmtcIixpY29uOmUuaHlwZXJsaW5rLHRpcDp0Lmh5cGVybGluayxrZXk6NzZ9LGZ1bGxzY3JlZW46e2NtZDpcImZ1bGxzY3JlZW5cIixpY29uOmUudG9nZ2xlRnVsbHNjcmVlbix0aXA6dC50b2dnbGVGdWxsc2NyZWVuLGtleTo3MH0scXVvdGU6e2NtZDpcImZvcm1hdEJsb2NrXCIscGFyYW06XCJCTE9DS1FVT1RFXCIsaWNvbjplLnF1b3RlLHRpcDp0LnF1b3RlLGtleTo4MX0sbGVmdDp7Y21kOlwianVzdGlmeUxlZnRcIixpY29uOmUubGVmdCx0aXA6dC5sZWZ0fSxjZW50ZXI6e2NtZDpcImp1c3RpZnlDZW50ZXJcIixpY29uOmUuY2VudGVyLHRpcDp0LmNlbnRlcn0scmlnaHQ6e2NtZDpcImp1c3RpZnlSaWdodFwiLGljb246ZS5yaWdodCx0aXA6dC5yaWdodH0sanVzdGlmeTp7Y21kOlwianVzdGlmeUZ1bGxcIixpY29uOmUuanVzdGlmeSx0aXA6dC5qdXN0aWZ5fSxwcmludDp7dHlwZTpcIm5vLXN0YXRlXCIsY21kOlwicHJpbnRcIixpY29uOmUucHJpbnQsdGlwOnQucHJpbnQsa2V5OjgwfSxvdXRkZW50Ont0eXBlOlwibm8tc3RhdGVcIixkaXNhYmxlOmZ1bmN0aW9uKHQpe3JldHVybiB0LmNhcmV0JiYhdC5jYXJldC5jYW4oXCJvdXRkZW50XCIpfSxjbWQ6XCJvdXRkZW50XCIsaWNvbjplLm91dGRlbnQsdGlwOnQub3V0ZGVudH0saW5kZW50Ont0eXBlOlwibm8tc3RhdGVcIixkaXNhYmxlOmZ1bmN0aW9uKHQpe3JldHVybiB0LmNhcmV0JiYhdC5jYXJldC5jYW4oXCJpbmRlbnRcIil9LGNtZDpcImluZGVudFwiLGljb246ZS5pbmRlbnQsdGlwOnQuaW5kZW50fSxyZW1vdmVGb3JtYXQ6e3R5cGU6XCJuby1zdGF0ZVwiLGNtZDpcInJlbW92ZUZvcm1hdFwiLGljb246ZS5yZW1vdmVGb3JtYXQsdGlwOnQucmVtb3ZlRm9ybWF0fSxocjp7dHlwZTpcIm5vLXN0YXRlXCIsY21kOlwiaW5zZXJ0SG9yaXpvbnRhbFJ1bGVcIixpY29uOmUuaHIsdGlwOnQuaHJ9LHVuZG86e3R5cGU6XCJuby1zdGF0ZVwiLGNtZDpcInVuZG9cIixpY29uOmUudW5kbyx0aXA6dC51bmRvLGtleTo5MH0scmVkbzp7dHlwZTpcIm5vLXN0YXRlXCIsY21kOlwicmVkb1wiLGljb246ZS5yZWRvLHRpcDp0LnJlZG8sa2V5Ojg5fSxoMTp7Y21kOlwiZm9ybWF0QmxvY2tcIixwYXJhbTpcIkgxXCIsaWNvbjplLmhlYWRlcix0aXA6dC5oZWFkZXIxLGh0bWxUaXA6JzxoMSBjbGFzcz1cInEtbWEtbm9uZVwiPicrdC5oZWFkZXIxK1wiPC9oMT5cIn0saDI6e2NtZDpcImZvcm1hdEJsb2NrXCIscGFyYW06XCJIMlwiLGljb246ZS5oZWFkZXIsdGlwOnQuaGVhZGVyMixodG1sVGlwOic8aDIgY2xhc3M9XCJxLW1hLW5vbmVcIj4nK3QuaGVhZGVyMitcIjwvaDI+XCJ9LGgzOntjbWQ6XCJmb3JtYXRCbG9ja1wiLHBhcmFtOlwiSDNcIixpY29uOmUuaGVhZGVyLHRpcDp0LmhlYWRlcjMsaHRtbFRpcDonPGgzIGNsYXNzPVwicS1tYS1ub25lXCI+Jyt0LmhlYWRlcjMrXCI8L2gzPlwifSxoNDp7Y21kOlwiZm9ybWF0QmxvY2tcIixwYXJhbTpcIkg0XCIsaWNvbjplLmhlYWRlcix0aXA6dC5oZWFkZXI0LGh0bWxUaXA6JzxoNCBjbGFzcz1cInEtbWEtbm9uZVwiPicrdC5oZWFkZXI0K1wiPC9oND5cIn0saDU6e2NtZDpcImZvcm1hdEJsb2NrXCIscGFyYW06XCJINVwiLGljb246ZS5oZWFkZXIsdGlwOnQuaGVhZGVyNSxodG1sVGlwOic8aDUgY2xhc3M9XCJxLW1hLW5vbmVcIj4nK3QuaGVhZGVyNStcIjwvaDU+XCJ9LGg2OntjbWQ6XCJmb3JtYXRCbG9ja1wiLHBhcmFtOlwiSDZcIixpY29uOmUuaGVhZGVyLHRpcDp0LmhlYWRlcjYsaHRtbFRpcDonPGg2IGNsYXNzPVwicS1tYS1ub25lXCI+Jyt0LmhlYWRlcjYrXCI8L2g2PlwifSxwOntjbWQ6XCJmb3JtYXRCbG9ja1wiLHBhcmFtOlwiRElWXCIsaWNvbjplLmhlYWRlcix0aXA6dC5wYXJhZ3JhcGh9LGNvZGU6e2NtZDpcImZvcm1hdEJsb2NrXCIscGFyYW06XCJQUkVcIixpY29uOmUuY29kZSx0aXA6XCI8Y29kZT5cIit0LmNvZGUrXCI8L2NvZGU+XCJ9LFwic2l6ZS0xXCI6e2NtZDpcImZvbnRTaXplXCIscGFyYW06XCIxXCIsaWNvbjplLnNpemUsdGlwOnQuc2l6ZTEsaHRtbFRpcDonPGZvbnQgc2l6ZT1cIjFcIj4nK3Quc2l6ZTErXCI8L2ZvbnQ+XCJ9LFwic2l6ZS0yXCI6e2NtZDpcImZvbnRTaXplXCIscGFyYW06XCIyXCIsaWNvbjplLnNpemUsdGlwOnQuc2l6ZTIsaHRtbFRpcDonPGZvbnQgc2l6ZT1cIjJcIj4nK3Quc2l6ZTIrXCI8L2ZvbnQ+XCJ9LFwic2l6ZS0zXCI6e2NtZDpcImZvbnRTaXplXCIscGFyYW06XCIzXCIsaWNvbjplLnNpemUsdGlwOnQuc2l6ZTMsaHRtbFRpcDonPGZvbnQgc2l6ZT1cIjNcIj4nK3Quc2l6ZTMrXCI8L2ZvbnQ+XCJ9LFwic2l6ZS00XCI6e2NtZDpcImZvbnRTaXplXCIscGFyYW06XCI0XCIsaWNvbjplLnNpemUsdGlwOnQuc2l6ZTQsaHRtbFRpcDonPGZvbnQgc2l6ZT1cIjRcIj4nK3Quc2l6ZTQrXCI8L2ZvbnQ+XCJ9LFwic2l6ZS01XCI6e2NtZDpcImZvbnRTaXplXCIscGFyYW06XCI1XCIsaWNvbjplLnNpemUsdGlwOnQuc2l6ZTUsaHRtbFRpcDonPGZvbnQgc2l6ZT1cIjVcIj4nK3Quc2l6ZTUrXCI8L2ZvbnQ+XCJ9LFwic2l6ZS02XCI6e2NtZDpcImZvbnRTaXplXCIscGFyYW06XCI2XCIsaWNvbjplLnNpemUsdGlwOnQuc2l6ZTYsaHRtbFRpcDonPGZvbnQgc2l6ZT1cIjZcIj4nK3Quc2l6ZTYrXCI8L2ZvbnQ+XCJ9LFwic2l6ZS03XCI6e2NtZDpcImZvbnRTaXplXCIscGFyYW06XCI3XCIsaWNvbjplLnNpemUsdGlwOnQuc2l6ZTcsaHRtbFRpcDonPGZvbnQgc2l6ZT1cIjdcIj4nK3Quc2l6ZTcrXCI8L2ZvbnQ+XCJ9fX0sYnV0dG9uczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLmRlZmluaXRpb25zfHx7fSxpPXRoaXMuZGVmaW5pdGlvbnN8fHRoaXMuZm9udHM/ZXh0ZW5kKCEwLHt9LHRoaXMuYnV0dG9uRGVmLGUsZ2V0Rm9udHModGhpcy5kZWZhdWx0Rm9udCx0aGlzLiRxLmkxOG4uZWRpdG9yLmRlZmF1bHRGb250LHRoaXMuJHEuaWNvbi5lZGl0b3IuZm9udCx0aGlzLmZvbnRzKSk6dGhpcy5idXR0b25EZWY7cmV0dXJuIHRoaXMudG9vbGJhci5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIHMubWFwKGZ1bmN0aW9uKHMpe2lmKHMub3B0aW9ucylyZXR1cm57dHlwZTpcImRyb3Bkb3duXCIsaWNvbjpzLmljb24sbGFiZWw6cy5sYWJlbCxmaXhlZExhYmVsOnMuZml4ZWRMYWJlbCxmaXhlZEljb246cy5maXhlZEljb24saGlnaGxpZ2h0OnMuaGlnaGxpZ2h0LGxpc3Q6cy5saXN0LG9wdGlvbnM6cy5vcHRpb25zLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gaVt0XX0pfTt2YXIgbj1pW3NdO3JldHVybiBuP1wibm8tc3RhdGVcIj09PW4udHlwZXx8ZVtzXSYmKHZvaWQgMD09PW4uY21kfHx0LmJ1dHRvbkRlZltuLmNtZF0mJlwibm8tc3RhdGVcIj09PXQuYnV0dG9uRGVmW24uY21kXS50eXBlKT9uOmV4dGVuZCghMCx7dHlwZTpcInRvZ2dsZVwifSxuKTp7dHlwZTpcInNsb3RcIixzbG90OnN9fSl9KX0sa2V5czpmdW5jdGlvbigpe3ZhciB0PXt9LGU9ZnVuY3Rpb24oZSl7ZS5rZXkmJih0W2Uua2V5XT17Y21kOmUuY21kLHBhcmFtOmUucGFyYW19KX07cmV0dXJuIHRoaXMuYnV0dG9ucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuZm9yRWFjaChmdW5jdGlvbih0KXt0Lm9wdGlvbnM/dC5vcHRpb25zLmZvckVhY2goZSk6ZSh0KX0pfSksdH0saW5uZXJTdHlsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluRnVsbHNjcmVlbj90aGlzLmNvbnRlbnRTdHlsZTpbe21pbkhlaWdodDp0aGlzLm1pbkhlaWdodCxoZWlnaHQ6dGhpcy5oZWlnaHQsbWF4SGVpZ2h0OnRoaXMubWF4SGVpZ2h0fSx0aGlzLmNvbnRlbnRTdHlsZV19LGlubmVyQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5jb250ZW50Q2xhc3Mse2NvbDp0aGlzLmluRnVsbHNjcmVlbixcIm92ZXJmbG93LWF1dG9cIjp0aGlzLmluRnVsbHNjcmVlbnx8dGhpcy5tYXhIZWlnaHR9XX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57ZWRpdFdhdGNoZXI6ITAsZWRpdExpbmtVcmw6bnVsbH19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLmVkaXRXYXRjaGVyP3RoaXMuJHJlZnMuY29udGVudC5pbm5lckhUTUw9dDp0aGlzLmVkaXRXYXRjaGVyPSEwfX0sbWV0aG9kczp7b25JbnB1dDpmdW5jdGlvbih0KXtpZih0aGlzLmVkaXRXYXRjaGVyKXt2YXIgZT10aGlzLiRyZWZzLmNvbnRlbnQuaW5uZXJIVE1MO2UhPT10aGlzLnZhbHVlJiYodGhpcy5lZGl0V2F0Y2hlcj0hMSx0aGlzLiRlbWl0KFwiaW5wdXRcIixlKSl9fSxvbktleWRvd246ZnVuY3Rpb24odCl7dmFyIGU9Z2V0RXZlbnRLZXkodCk7aWYoIXQuY3RybEtleSlyZXR1cm4gdGhpcy5yZWZyZXNoVG9vbGJhcigpLHZvaWQodGhpcy4kcS5wbGF0Zm9ybS5pcy5pZSYmdGhpcy4kbmV4dFRpY2sodGhpcy5vbklucHV0KSk7dmFyIGk9dGhpcy5rZXlzW2VdO2lmKHZvaWQgMCE9PWkpe3ZhciBzPWkuY21kLG49aS5wYXJhbTtzdG9wQW5kUHJldmVudCh0KSx0aGlzLnJ1bkNtZChzLG4sITEpLHRoaXMuJHEucGxhdGZvcm0uaXMuaWUmJnRoaXMuJG5leHRUaWNrKHRoaXMub25JbnB1dCl9fSxydW5DbWQ6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXM7dm9pZCAwPT09aSYmKGk9ITApLHRoaXMuZm9jdXMoKSx0aGlzLmNhcmV0LmFwcGx5KHQsZSxmdW5jdGlvbigpe3MuZm9jdXMoKSxpJiZzLnJlZnJlc2hUb29sYmFyKCl9KX0scmVmcmVzaFRvb2xiYXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmVkaXRMaW5rVXJsPW51bGwsdC4kZm9yY2VVcGRhdGUoKX0sMSl9LGZvY3VzOmZ1bmN0aW9uKCl7dGhpcy4kcmVmcy5jb250ZW50LmZvY3VzKCl9LGdldENvbnRlbnRFbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLiRyZWZzLmNvbnRlbnR9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7aXNTU1J8fChkb2N1bWVudC5leGVjQ29tbWFuZChcImRlZmF1bHRQYXJhZ3JhcGhTZXBhcmF0b3JcIiwhMSxcImRpdlwiKSx0aGlzLmRlZmF1bHRGb250PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmZvbnRGYW1pbHkpfSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3QuJHJlZnMuY29udGVudCYmKHQuY2FyZXQ9bmV3IENhcmV0KHQuJHJlZnMuY29udGVudCx0KSx0LiRyZWZzLmNvbnRlbnQuaW5uZXJIVE1MPXQudmFsdWUpLHQuJG5leHRUaWNrKHQucmVmcmVzaFRvb2xiYXIpfSl9LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZSxpPXRoaXM7aWYodGhpcy5oYXNUb29sYmFyKXt2YXIgcz17c3RhdGljQ2xhc3M6XCJxLWVkaXRvci10b29sYmFyIHJvdyBuby13cmFwIHNjcm9sbC14XCIsY2xhc3M6W3tcInEtZWRpdG9yLXRvb2xiYXItc2VwYXJhdG9yXCI6IXRoaXMudG9vbGJhck91dGxpbmUmJiF0aGlzLnRvb2xiYXJQdXNofSx0aGlzLnRvb2xiYXJCYWNrZ3JvdW5kQ2xhc3NdfTsoZT1bXSkucHVzaCh0KFwiZGl2XCIsZXh0ZW5kKHtrZXk6XCJxZWR0X3RvcFwifSxzKSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJvdyBuby13cmFwIHEtZWRpdG9yLXRvb2xiYXItcGFkZGluZyBmaXQgaXRlbXMtY2VudGVyXCJ9LGdldFRvb2xiYXIodCx0aGlzKSldKSksbnVsbCE9PXRoaXMuZWRpdExpbmtVcmwmJmUucHVzaCh0KFwiZGl2XCIsZXh0ZW5kKHtrZXk6XCJxZWR0X2J0bVwifSxzKSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJvdyBuby13cmFwIHEtZWRpdG9yLXRvb2xiYXItcGFkZGluZyBmaXQgaXRlbXMtY2VudGVyXCJ9LGdldExpbmtFZGl0b3IodCx0aGlzKSldKSksZT10KFwiZGl2XCIsZSl9cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWVkaXRvclwiLHN0eWxlOntoZWlnaHQ6dGhpcy5pbkZ1bGxzY3JlZW4/XCIxMDB2aFwiOm51bGx9LGNsYXNzOntkaXNhYmxlZDp0aGlzLmRpc2FibGUsZnVsbHNjcmVlbjp0aGlzLmluRnVsbHNjcmVlbixjb2x1bW46dGhpcy5pbkZ1bGxzY3JlZW59fSxbZSx0KFwiZGl2XCIse3JlZjpcImNvbnRlbnRcIixzdGF0aWNDbGFzczpcInEtZWRpdG9yLWNvbnRlbnRcIixzdHlsZTp0aGlzLmlubmVyU3R5bGUsY2xhc3M6dGhpcy5pbm5lckNsYXNzLGF0dHJzOntjb250ZW50ZWRpdGFibGU6dGhpcy5lZGl0YWJsZX0sZG9tUHJvcHM6aXNTU1I/e2lubmVySFRNTDp0aGlzLnZhbHVlfTp2b2lkIDAsb246e2lucHV0OnRoaXMub25JbnB1dCxrZXlkb3duOnRoaXMub25LZXlkb3duLGNsaWNrOnRoaXMucmVmcmVzaFRvb2xiYXIsYmx1cjpmdW5jdGlvbigpe2kuY2FyZXQuc2F2ZSgpfX19KV0pfX0sRmFiTWl4aW49e3Byb3BzOntvdXRsaW5lOkJvb2xlYW4scHVzaDpCb29sZWFuLGZsYXQ6Qm9vbGVhbixjb2xvcjpTdHJpbmcsdGV4dENvbG9yOlN0cmluZyxnbG9zc3k6Qm9vbGVhbn19LFFGYWI9e25hbWU6XCJRRmFiXCIsbWl4aW5zOltGYWJNaXhpbixNb2RlbFRvZ2dsZU1peGluXSxwcm92aWRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm57X19xRmFiQ2xvc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIHQuaGlkZShlKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHQuJHJlZnMudHJpZ2dlciYmdC4kcmVmcy50cmlnZ2VyLiRlbCYmdC4kcmVmcy50cmlnZ2VyLiRlbC5mb2N1cygpLGV9KX19fSxwcm9wczp7aWNvbjpTdHJpbmcsYWN0aXZlSWNvbjpTdHJpbmcsZGlyZWN0aW9uOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicmlnaHRcIn0scGVyc2lzdGVudDpCb29sZWFufSx3YXRjaDp7JHJvdXRlOmZ1bmN0aW9uKCl7IXRoaXMucGVyc2lzdGVudCYmdGhpcy5oaWRlKCl9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy52YWx1ZSYmdGhpcy5zaG93KCl9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZmFiIHotZmFiIHJvdyBpbmxpbmUganVzdGlmeS1jZW50ZXJcIixjbGFzczp7XCJxLWZhYi1vcGVuZWRcIjp0aGlzLnNob3dpbmd9fSxbdChRQnRuLHtyZWY6XCJ0cmlnZ2VyXCIscHJvcHM6e2ZhYjohMCxvdXRsaW5lOnRoaXMub3V0bGluZSxwdXNoOnRoaXMucHVzaCxmbGF0OnRoaXMuZmxhdCxjb2xvcjp0aGlzLmNvbG9yLHRleHRDb2xvcjp0aGlzLnRleHRDb2xvcixnbG9zc3k6dGhpcy5nbG9zc3l9LG9uOntjbGljazp0aGlzLnRvZ2dsZX19LFt0aGlzLiRzbG90cy50b29sdGlwLHQoUUljb24se3N0YXRpY0NsYXNzOlwicS1mYWItaWNvbiBhYnNvbHV0ZS1mdWxsXCIscHJvcHM6e25hbWU6dGhpcy5pY29ufHx0aGlzLiRxLmljb24uZmFiLmljb259fSksdChRSWNvbix7c3RhdGljQ2xhc3M6XCJxLWZhYi1hY3RpdmUtaWNvbiBhYnNvbHV0ZS1mdWxsXCIscHJvcHM6e25hbWU6dGhpcy5hY3RpdmVJY29ufHx0aGlzLiRxLmljb24uZmFiLmFjdGl2ZUljb259fSldKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1mYWItYWN0aW9ucyBmbGV4IG5vLXdyYXAgaW5saW5lIGl0ZW1zLWNlbnRlclwiLGNsYXNzOlwicS1mYWItXCIrdGhpcy5kaXJlY3Rpb259LHRoaXMuJHNsb3RzLmRlZmF1bHQpXSl9fSxRRmFiQWN0aW9uPXtuYW1lOlwiUUZhYkFjdGlvblwiLG1peGluczpbRmFiTWl4aW5dLHByb3BzOntpY29uOnt0eXBlOlN0cmluZyxyZXF1aXJlZDohMH19LGluamVjdDp7X19xRmFiQ2xvc2U6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUUZhYkFjdGlvbiBuZWVkcyB0byBiZSBjaGlsZCBvZiBRRmFiXCIpfX19LG1ldGhvZHM6e2NsaWNrOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5fX3FGYWJDbG9zZSgpLnRoZW4oZnVuY3Rpb24oKXtlLiRlbWl0KFwiY2xpY2tcIix0KX0pfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFFCdG4se3Byb3BzOntmYWJNaW5pOiEwLG91dGxpbmU6dGhpcy5vdXRsaW5lLHB1c2g6dGhpcy5wdXNoLGZsYXQ6dGhpcy5mbGF0LGNvbG9yOnRoaXMuY29sb3IsdGV4dENvbG9yOnRoaXMudGV4dENvbG9yLGdsb3NzeTp0aGlzLmdsb3NzeSxpY29uOnRoaXMuaWNvbn0sb246e2NsaWNrOnRoaXMuY2xpY2t9fSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFGaWVsZD17bmFtZTpcIlFGaWVsZFwiLG1peGluczpbQ2FuUmVuZGVyTWl4aW5dLHByb3BzOntpbnNldDp7dHlwZTpTdHJpbmcsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcImljb25cIixcImxhYmVsXCIsXCJmdWxsXCJdLmluY2x1ZGVzKHQpfX0sbGFiZWw6U3RyaW5nLGNvdW50Ont0eXBlOltOdW1iZXIsQm9vbGVhbl0sZGVmYXVsdDohMX0sZXJyb3I6Qm9vbGVhbixlcnJvckxhYmVsOlN0cmluZyx3YXJuaW5nOkJvb2xlYW4sd2FybmluZ0xhYmVsOlN0cmluZyxoZWxwZXI6U3RyaW5nLGljb246U3RyaW5nLGljb25Db2xvcjpTdHJpbmcsZGFyazpCb29sZWFuLG9yaWVudGF0aW9uOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1widmVydGljYWxcIixcImhvcml6b250YWxcIl0uaW5jbHVkZXModCl9fSxsYWJlbFdpZHRoOnt0eXBlOltOdW1iZXIsU3RyaW5nXSxkZWZhdWx0OjUsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3ZhciBlPXBhcnNlSW50KHQsMTApO3JldHVybiBlPjAmJmU8MTN9fX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntpbnB1dDp7fX19LGNvbXB1dGVkOntoYXNFcnJvcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0LmVycm9yfHx0aGlzLmVycm9yfSxoYXNXYXJuaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaGFzRXJyb3ImJih0aGlzLmlucHV0Lndhcm5pbmd8fHRoaXMud2FybmluZyl9LGNoaWxkSGFzTGFiZWw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC5mbG9hdExhYmVsfHx0aGlzLmlucHV0LnN0YWNrTGFiZWx9LGlzRGFyazpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0LmRhcmt8fHRoaXMuZGFya30saW5zZXRJY29uOmZ1bmN0aW9uKCl7cmV0dXJuW1wiaWNvblwiLFwiZnVsbFwiXS5pbmNsdWRlcyh0aGlzLmluc2V0KX0saGFzTm9JbnB1dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNhblJlbmRlciYmKCF0aGlzLmlucHV0LiRvcHRpb25zfHx0aGlzLmlucHV0Ll9fbmVlZHNCb3JkZXIpfSxjb3VudGVyOmZ1bmN0aW9uKCl7aWYodGhpcy5jb3VudCl7dmFyIHQ9dGhpcy5pbnB1dC5sZW5ndGh8fFwiMFwiO3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKHRoaXMuY291bnQpP3QrXCIgLyBcIit0aGlzLmNvdW50OnR9fSxjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJue1wicS1maWVsZC1yZXNwb25zaXZlXCI6IXRoaXMuaXNWZXJ0aWNhbCYmIXRoaXMuaXNIb3Jpem9udGFsLFwicS1maWVsZC12ZXJ0aWNhbFwiOnRoaXMuaXNWZXJ0aWNhbCxcInEtZmllbGQtaG9yaXpvbnRhbFwiOnRoaXMuaXNIb3Jpem9udGFsLFwicS1maWVsZC1mbG9hdGluZ1wiOnRoaXMuY2hpbGRIYXNMYWJlbCxcInEtZmllbGQtbm8tbGFiZWxcIjohdGhpcy5sYWJlbCYmIXRoaXMuJHNsb3RzLmxhYmVsLFwicS1maWVsZC13aXRoLWVycm9yXCI6dGhpcy5oYXNFcnJvcixcInEtZmllbGQtd2l0aC13YXJuaW5nXCI6dGhpcy5oYXNXYXJuaW5nLFwicS1maWVsZC1kYXJrXCI6dGhpcy5pc0RhcmssXCJxLWZpZWxkLW5vLWlucHV0XCI6dGhpcy5oYXNOb0lucHV0fX0sY29tcHV0ZWRMYWJlbFdpZHRoOmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlSW50KHRoaXMubGFiZWxXaWR0aCwxMCl9LGlzVmVydGljYWw6ZnVuY3Rpb24oKXtyZXR1cm5cInZlcnRpY2FsXCI9PT10aGlzLm9yaWVudGF0aW9ufHwxMj09PXRoaXMuY29tcHV0ZWRMYWJlbFdpZHRofSxpc0hvcml6b250YWw6ZnVuY3Rpb24oKXtyZXR1cm5cImhvcml6b250YWxcIj09PXRoaXMub3JpZW50YXRpb259LGxhYmVsQ2xhc3NlczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVmVydGljYWw/XCJjb2wtMTJcIjp0aGlzLmlzSG9yaXpvbnRhbD9cImNvbC1cIit0aGlzLmxhYmVsV2lkdGg6XCJjb2wteHMtMTIgY29sLXNtLVwiK3RoaXMubGFiZWxXaWR0aH0saW5wdXRDbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNWZXJ0aWNhbD9cImNvbC14cy0xMlwiOnRoaXMuaXNIb3Jpem9udGFsP1wiY29sXCI6XCJjb2wteHMtMTIgY29sLXNtXCJ9LGljb25Qcm9wczpmdW5jdGlvbigpe3ZhciB0PXtuYW1lOnRoaXMuaWNvbn07cmV0dXJuIXRoaXMuaWNvbkNvbG9yfHx0aGlzLmhhc0Vycm9yfHx0aGlzLmhhc1dhcm5pbmd8fCh0LmNvbG9yPXRoaXMuaWNvbkNvbG9yKSx0fSxpbnNldEhhc0xhYmVsOmZ1bmN0aW9uKCl7cmV0dXJuW1wibGFiZWxcIixcImZ1bGxcIl0uaW5jbHVkZXModGhpcy5pbnNldCl9fSxwcm92aWRlOmZ1bmN0aW9uKCl7cmV0dXJue19fZmllbGQ6dGhpc319LG1ldGhvZHM6e19fcmVnaXN0ZXJJbnB1dDpmdW5jdGlvbih0KXt0aGlzLmlucHV0PXR9LF9fdW5yZWdpc3RlcklucHV0OmZ1bmN0aW9uKHQpe3QmJnQhPT10aGlzLmlucHV0fHwodGhpcy5pbnB1dD17fSl9LF9fZ2V0Qm90dG9tQ29udGVudDpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4gdGhpcy5oYXNFcnJvciYmKGU9dGhpcy4kc2xvdHNbXCJlcnJvci1sYWJlbFwiXXx8dGhpcy5lcnJvckxhYmVsKT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZC1lcnJvciBjb2xcIn0sZSk6dGhpcy5oYXNXYXJuaW5nJiYoZT10aGlzLiRzbG90c1tcIndhcm5pbmctbGFiZWxcIl18fHRoaXMud2FybmluZ0xhYmVsKT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZC13YXJuaW5nIGNvbFwifSxlKTooZT10aGlzLiRzbG90cy5oZWxwZXJ8fHRoaXMuaGVscGVyKT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZC1oZWxwZXIgY29sXCJ9LGUpOnQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJjb2wgdGV4dC10cmFuc3BhcmVudFwifSxbXCJ8XCJdKX0sX19oYXNCb3R0b206ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kc2xvdHNbXCJlcnJvci1sYWJlbFwiXXx8dGhpcy5lcnJvckxhYmVsfHx0aGlzLiRzbG90c1tcIndhcm5pbmctbGFiZWxcIl18fHRoaXMud2FybmluZ0xhYmVsfHx0aGlzLiRzbG90cy5oZWxwZXJ8fHRoaXMuaGVscGVyfHx0aGlzLmNvdW50fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuJHNsb3RzLmxhYmVsfHx0aGlzLmxhYmVsO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZCByb3cgbm8td3JhcCBpdGVtcy1zdGFydFwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sW3RoaXMuaWNvbj90KFFJY29uLHtwcm9wczp0aGlzLmljb25Qcm9wcyxzdGF0aWNDbGFzczpcInEtZmllbGQtaWNvbiBxLWZpZWxkLW1hcmdpblwifSk6dGhpcy5pbnNldEljb24/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtZmllbGQtaWNvblwifSk6bnVsbCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicm93IGNvbFwifSxbZXx8dGhpcy5pbnNldEhhc0xhYmVsP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWZpZWxkLWxhYmVsIHEtZmllbGQtbWFyZ2luXCIsY2xhc3M6dGhpcy5sYWJlbENsYXNzZXN9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZC1sYWJlbC1pbm5lciByb3cgaXRlbXMtY2VudGVyXCJ9LFt0aGlzLiRzbG90cy5sYWJlbHx8dGhpcy5sYWJlbF0pXSk6bnVsbCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZC1jb250ZW50XCIsY2xhc3M6dGhpcy5pbnB1dENsYXNzZXN9LFt0aGlzLiRzbG90cy5kZWZhdWx0LHRoaXMuX19oYXNCb3R0b20oKT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZC1ib3R0b20gcm93IG5vLXdyYXBcIn0sW3RoaXMuX19nZXRCb3R0b21Db250ZW50KHQpLHRoaXMuY291bnRlcj90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1maWVsZC1jb3VudGVyIGNvbC1hdXRvXCJ9LFt0aGlzLmNvdW50ZXJdKTpudWxsXSk6bnVsbF0pXSldKX19LFFJbmZpbml0ZVNjcm9sbD17bmFtZTpcIlFJbmZpbml0ZVNjcm9sbFwiLHByb3BzOntoYW5kbGVyOnt0eXBlOkZ1bmN0aW9uLHJlcXVpcmVkOiEwfSxpbmxpbmU6Qm9vbGVhbixvZmZzZXQ6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MH19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aW5kZXg6MCxmZXRjaGluZzohMSx3b3JraW5nOiEwfX0sbWV0aG9kczp7cG9sbDpmdW5jdGlvbigpe2lmKCF0aGlzLmZldGNoaW5nJiZ0aGlzLndvcmtpbmcpe3ZhciB0PWhlaWdodCh0aGlzLnNjcm9sbENvbnRhaW5lciksZT1vZmZzZXQodGhpcy5zY3JvbGxDb250YWluZXIpLnRvcCt0O29mZnNldCh0aGlzLmVsZW1lbnQpLnRvcCtoZWlnaHQodGhpcy5lbGVtZW50KS0odGhpcy5vZmZzZXR8fHQpPGUmJnRoaXMubG9hZE1vcmUoKX19LGxvYWRNb3JlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczshdGhpcy5mZXRjaGluZyYmdGhpcy53b3JraW5nJiYodGhpcy5pbmRleCsrLHRoaXMuZmV0Y2hpbmc9ITAsdGhpcy5oYW5kbGVyKHRoaXMuaW5kZXgsZnVuY3Rpb24oZSl7dC5mZXRjaGluZz0hMSxlP3Quc3RvcCgpOnQuZWxlbWVudC5jbG9zZXN0KFwiYm9keVwiKSYmdC5wb2xsKCl9KSl9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5pbmRleD0wfSxyZXN1bWU6ZnVuY3Rpb24oKXshMCE9PXRoaXMud29ya2luZyYmKHRoaXMud29ya2luZz0hMCx0aGlzLnNjcm9sbENvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdGhpcy5wb2xsLGxpc3Rlbk9wdHMucGFzc2l2ZSkpLHRoaXMuaW1tZWRpYXRlUG9sbCgpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy53b3JraW5nPSExLHRoaXMuZmV0Y2hpbmc9ITEsdGhpcy5zY3JvbGxDb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMucG9sbCxsaXN0ZW5PcHRzLnBhc3NpdmUpfX0sbW91bnRlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0LmVsZW1lbnQ9dC4kcmVmcy5jb250ZW50LHQuc2Nyb2xsQ29udGFpbmVyPXQuaW5saW5lP3QuJGVsOmdldFNjcm9sbFRhcmdldCh0LiRlbCksdC5wb2xsKCksdC5pbW1lZGlhdGVQb2xsPXQucG9sbCx0LnBvbGw9ZGVib3VuY2UodC5wb2xsLDUwKSwhMD09PXQud29ya2luZyYmdC5zY3JvbGxDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHQucG9sbCxsaXN0ZW5PcHRzLnBhc3NpdmUpfSl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLnNjcm9sbENvbnRhaW5lci5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdGhpcy5wb2xsLGxpc3Rlbk9wdHMucGFzc2l2ZSl9LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaW5maW5pdGUtc2Nyb2xsXCJ9LFt0KFwiZGl2XCIse3JlZjpcImNvbnRlbnRcIixzdGF0aWNDbGFzczpcInEtaW5maW5pdGUtc2Nyb2xsLWNvbnRlbnRcIn0sdGhpcy4kc2xvdHMuZGVmYXVsdCksdGhpcy5mZXRjaGluZz90KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1pbmZpbml0ZS1zY3JvbGwtbWVzc2FnZVwifSx0aGlzLiRzbG90cy5tZXNzYWdlKTpudWxsXSl9fSxRSW5uZXJMb2FkaW5nPXtuYW1lOlwiUUlubmVyTG9hZGluZ1wiLHByb3BzOntkYXJrOkJvb2xlYW4sdmlzaWJsZTpCb29sZWFuLHNpemU6e3R5cGU6W1N0cmluZyxOdW1iZXJdLGRlZmF1bHQ6NDJ9LGNvbG9yOlN0cmluZ30scmVuZGVyOmZ1bmN0aW9uKHQpe2lmKHRoaXMudmlzaWJsZSlyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtaW5uZXItbG9hZGluZyBhbmltYXRlLWZhZGUgYWJzb2x1dGUtZnVsbCBjb2x1bW4gZmxleC1jZW50ZXJcIixjbGFzczp7ZGFyazp0aGlzLmRhcmt9fSx0aGlzLiRzbG90cy5kZWZhdWx0fHxbdChRU3Bpbm5lcix7cHJvcHM6e3NpemU6dGhpcy5zaXplLGNvbG9yOnRoaXMuY29sb3J9fSldKX19LFFKdW1ib3Ryb249e25hbWU6XCJRSnVtYm90cm9uXCIscHJvcHM6e2Rhcms6Qm9vbGVhbix0YWc6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJkaXZcIn0saW1nU3JjOlN0cmluZyxncmFkaWVudDpTdHJpbmd9LGNvbXB1dGVkOntncmFkaWVudFR5cGU6ZnVuY3Rpb24oKXtpZih0aGlzLmdyYWRpZW50KXJldHVybiB0aGlzLmdyYWRpZW50LmluZGV4T2YoXCJjaXJjbGVcIik+LTE/XCJyYWRpYWxcIjpcImxpbmVhclwifSxjb21wdXRlZFN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW1nU3JjP3tcImJhY2tncm91bmQtaW1hZ2VcIjpcInVybChcIit0aGlzLmltZ1NyYytcIilcIn06dGhpcy5ncmFkaWVudFR5cGU/e2JhY2tncm91bmQ6dGhpcy5ncmFkaWVudFR5cGUrXCItZ3JhZGllbnQoXCIrdGhpcy5ncmFkaWVudCtcIilcIn06dm9pZCAwfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KHRoaXMudGFnLHtzdGF0aWNDbGFzczpcInEtanVtYm90cm9uXCIsc3R5bGU6dGhpcy5jb21wdXRlZFN0eWxlLGNsYXNzOntcInEtanVtYm90cm9uLWRhcmtcIjp0aGlzLmRhcmt9fSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFLbm9iPXtuYW1lOlwiUUtub2JcIixkaXJlY3RpdmVzOntUb3VjaFBhbjpUb3VjaFBhbn0scHJvcHM6e3ZhbHVlOk51bWJlcixtaW46e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MH0sbWF4Ont0eXBlOk51bWJlcixkZWZhdWx0OjEwMH0sY29sb3I6U3RyaW5nLHRyYWNrQ29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJncmV5LTNcIn0sbGluZVdpZHRoOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiNnB4XCJ9LHNpemU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCIxMDBweFwifSxzdGVwOnt0eXBlOk51bWJlcixkZWZhdWx0OjF9LGRlY2ltYWxzOk51bWJlcixkaXNhYmxlOkJvb2xlYW4scmVhZG9ubHk6Qm9vbGVhbn0sY29tcHV0ZWQ6e2NsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5kaXNhYmxlJiZ0LnB1c2goXCJkaXNhYmxlZFwiKSx0aGlzLnJlYWRvbmx5fHx0LnB1c2goXCJjdXJzb3ItcG9pbnRlclwiKSx0aGlzLmNvbG9yJiZ0LnB1c2goXCJ0ZXh0LVwiK3RoaXMuY29sb3IpLHR9LHN2Z1N0eWxlOmZ1bmN0aW9uKCl7cmV0dXJue1wic3Ryb2tlLWRhc2hhcnJheVwiOlwiMjk1LjMxcHgsIDI5NS4zMXB4XCIsXCJzdHJva2UtZGFzaG9mZnNldFwiOjI5NS4zMSoodGhpcy4kcS5pMThuLnJ0bD8tMToxKSooMS0odGhpcy5tb2RlbC10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKSkrXCJweFwiLHRyYW5zaXRpb246dGhpcy5kcmFnZ2luZz9cIlwiOlwic3Ryb2tlLWRhc2hvZmZzZXQgMC42cyBlYXNlIDBzLCBzdHJva2UgMC42cyBlYXNlXCJ9fSxlZGl0YWJsZTpmdW5jdGlvbigpe3JldHVybiF0aGlzLmRpc2FibGUmJiF0aGlzLnJlYWRvbmx5fSxjb21wdXRlZERlY2ltYWxzOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuZGVjaW1hbHM/dGhpcy5kZWNpbWFsc3x8MDooU3RyaW5nKHRoaXMuc3RlcCkudHJpbShcIjBcIikuc3BsaXQoXCIuXCIpWzFdfHxcIlwiKS5sZW5ndGh9LGNvbXB1dGVkU3RlcDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLmRlY2ltYWxzPzEvTWF0aC5wb3coMTAsdGhpcy5kZWNpbWFsc3x8MCk6dGhpcy5zdGVwfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybnttb2RlbDp0aGlzLnZhbHVlLGRyYWdnaW5nOiExfX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYodDx0aGlzLm1pbil0aGlzLm1vZGVsPXRoaXMubWluO2Vsc2V7aWYoISh0PnRoaXMubWF4KSl7dmFyIGk9dGhpcy5jb21wdXRlZERlY2ltYWxzJiZcIm51bWJlclwiPT10eXBlb2YgdD9wYXJzZUZsb2F0KHQudG9GaXhlZCh0aGlzLmNvbXB1dGVkRGVjaW1hbHMpKTp0O3JldHVybiB2b2lkKGkhPT10aGlzLm1vZGVsJiYodGhpcy5tb2RlbD1pKSl9dGhpcy5tb2RlbD10aGlzLm1heH10aGlzLiRlbWl0KFwiaW5wdXRcIix0aGlzLm1vZGVsKSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe2UubW9kZWwhPT1lLnZhbHVlJiZlLiRlbWl0KFwiY2hhbmdlXCIsZS5tb2RlbCl9KX19LG1ldGhvZHM6e19fcGFuOmZ1bmN0aW9uKHQpe3RoaXMuZWRpdGFibGUmJih0LmlzRmluYWw/dGhpcy5fX2RyYWdTdG9wKHQuZXZ0KTp0LmlzRmlyc3Q/dGhpcy5fX2RyYWdTdGFydCh0LmV2dCk6dGhpcy5fX2RyYWdNb3ZlKHQuZXZ0KSl9LF9fZHJhZ1N0YXJ0OmZ1bmN0aW9uKHQpe3RoaXMuZWRpdGFibGUmJihzdG9wQW5kUHJldmVudCh0KSx0aGlzLmNlbnRlclBvc2l0aW9uPXRoaXMuX19nZXRDZW50ZXIoKSxjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy5kcmFnZ2luZz0hMCx0aGlzLl9fb25JbnB1dCh0KSl9LF9fZHJhZ01vdmU6ZnVuY3Rpb24odCl7dGhpcy5kcmFnZ2luZyYmdGhpcy5lZGl0YWJsZSYmKHN0b3BBbmRQcmV2ZW50KHQpLHRoaXMuX19vbklucHV0KHQsdGhpcy5jZW50ZXJQb3NpdGlvbikpfSxfX2RyYWdTdG9wOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5lZGl0YWJsZSYmKHN0b3BBbmRQcmV2ZW50KHQpLHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2UuZHJhZ2dpbmc9ITF9LDEwMCksdGhpcy5fX29uSW5wdXQodCx0aGlzLmNlbnRlclBvc2l0aW9uLCEwKSl9LF9fb25LZXlEb3duOmZ1bmN0aW9uKHQpe3ZhciBlPXQua2V5Q29kZTtpZih0aGlzLmVkaXRhYmxlJiZbMzcsNDAsMzksMzhdLmluY2x1ZGVzKGUpKXtzdG9wQW5kUHJldmVudCh0KTt2YXIgaT10LmN0cmxLZXk/MTAqdGhpcy5jb21wdXRlZFN0ZXA6dGhpcy5jb21wdXRlZFN0ZXAscz1bMzcsNDBdLmluY2x1ZGVzKGUpPy1pOmk7dGhpcy5fX29uSW5wdXRWYWx1ZShiZXR3ZWVuKHRoaXMubW9kZWwrcyx0aGlzLm1pbix0aGlzLm1heCkpfX0sX19vbktleVVwOmZ1bmN0aW9uKHQpe3ZhciBlPXQua2V5Q29kZTt0aGlzLmVkaXRhYmxlJiZbMzcsNDAsMzksMzhdLmluY2x1ZGVzKGUpJiZ0aGlzLl9fZW1pdENoYW5nZSgpfSxfX29uSW5wdXQ6ZnVuY3Rpb24odCxlLGkpe2lmKHZvaWQgMD09PWUmJihlPXRoaXMuX19nZXRDZW50ZXIoKSksdGhpcy5lZGl0YWJsZSl7dmFyIHM9cG9zaXRpb24odCksbj1NYXRoLmFicyhzLnRvcC1lLnRvcCksbz1NYXRoLnNxcnQoTWF0aC5wb3coTWF0aC5hYnMocy50b3AtZS50b3ApLDIpK01hdGgucG93KE1hdGguYWJzKHMubGVmdC1lLmxlZnQpLDIpKSxyPU1hdGguYXNpbihuL28pKigxODAvTWF0aC5QSSk7cj1zLnRvcDxlLnRvcD9lLmxlZnQ8cy5sZWZ0PzkwLXI6MjcwK3I6ZS5sZWZ0PHMubGVmdD9yKzkwOjI3MC1yLHRoaXMuJHEuaTE4bi5ydGwmJihyPTM2MC1yKTt2YXIgYT10aGlzLm1pbityLzM2MCoodGhpcy5tYXgtdGhpcy5taW4pLGw9YSV0aGlzLnN0ZXAsYz1iZXR3ZWVuKGEtbCsoTWF0aC5hYnMobCk+PXRoaXMuc3RlcC8yPyhsPDA/LTE6MSkqdGhpcy5zdGVwOjApLHRoaXMubWluLHRoaXMubWF4KTt0aGlzLl9fb25JbnB1dFZhbHVlKGMsaSl9fSxfX29uSW5wdXRWYWx1ZTpmdW5jdGlvbih0LGUpe3RoaXMuY29tcHV0ZWREZWNpbWFscyYmKHQ9cGFyc2VGbG9hdCh0LnRvRml4ZWQodGhpcy5jb21wdXRlZERlY2ltYWxzKSkpLHRoaXMubW9kZWwhPT10JiYodGhpcy5tb2RlbD10KSx0aGlzLiRlbWl0KFwiZHJhZy12YWx1ZVwiLHQpLHRoaXMudmFsdWUhPT10JiYodGhpcy4kZW1pdChcImlucHV0XCIsdCksZSYmdGhpcy5fX2VtaXRDaGFuZ2UodCkpfSxfX2VtaXRDaGFuZ2U6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt2b2lkIDA9PT10JiYodD10aGlzLm1vZGVsKSx0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe0pTT04uc3RyaW5naWZ5KHQpIT09SlNPTi5zdHJpbmdpZnkoZS52YWx1ZSkmJmUuJGVtaXQoXCJjaGFuZ2VcIix0KX0pfSxfX2dldENlbnRlcjpmdW5jdGlvbigpe3ZhciB0PW9mZnNldCh0aGlzLiRlbCk7cmV0dXJue3RvcDp0LnRvcCtoZWlnaHQodGhpcy4kZWwpLzIsbGVmdDp0LmxlZnQrd2lkdGgodGhpcy4kZWwpLzJ9fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWtub2Igbm9uLXNlbGVjdGFibGVcIixjbGFzczp0aGlzLmNsYXNzZXMsc3R5bGU6e3dpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplfX0sW3QoXCJkaXZcIix7b246e2NsaWNrOmZ1bmN0aW9uKHQpe3JldHVybiFlLmRyYWdnaW5nJiZlLl9fb25JbnB1dCh0LHZvaWQgMCwhMCl9fSxkaXJlY3RpdmVzOnRoaXMuZWRpdGFibGU/W3tuYW1lOlwidG91Y2gtcGFuXCIsbW9kaWZpZXJzOntwcmV2ZW50OiEwLHN0b3A6ITB9LHZhbHVlOnRoaXMuX19wYW59XTpudWxsfSxbdChcInN2Z1wiLHthdHRyczp7dmlld0JveDpcIjAgMCAxMDAgMTAwXCJ9fSxbdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNIDUwLDUwIG0gMCwtNDcgYSA0Nyw0NyAwIDEgMSAwLDk0IGEgNDcsNDcgMCAxIDEgMCwtOTRcIixcImZpbGwtb3BhY2l0eVwiOlwiMFwiLHN0cm9rZTpcImN1cnJlbnRDb2xvclwiLFwic3Ryb2tlLXdpZHRoXCI6dGhpcy5saW5lV2lkdGh9LGNsYXNzOlwidGV4dC1cIit0aGlzLnRyYWNrQ29sb3J9KSx0KFwicGF0aFwiLHthdHRyczp7ZDpcIk0gNTAsNTAgbSAwLC00NyBhIDQ3LDQ3IDAgMSAxIDAsOTQgYSA0Nyw0NyAwIDEgMSAwLC05NFwiLFwiZmlsbC1vcGFjaXR5XCI6XCIwXCIsc3Ryb2tlOlwiY3VycmVudENvbG9yXCIsXCJzdHJva2UtbGluZWNhcFwiOlwicm91bmRcIixcInN0cm9rZS13aWR0aFwiOnRoaXMubGluZVdpZHRofSxzdHlsZTp0aGlzLnN2Z1N0eWxlfSldKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1rbm9iLWxhYmVsIHJvdyBmbGV4LWNlbnRlciBjb250ZW50LWNlbnRlclwiLGF0dHJzOnt0YWJpbmRleDp0aGlzLmVkaXRhYmxlPzA6LTF9LG9uOntrZXlkb3duOnRoaXMuX19vbktleURvd24sa2V5dXA6dGhpcy5fX29uS2V5VXB9fSx0aGlzLiRzbG90cy5kZWZhdWx0fHxbdChcInNwYW5cIixbdGhpcy5tb2RlbF0pXSldKV0pfX0sUVNjcm9sbE9ic2VydmFibGU9e25hbWU6XCJRU2Nyb2xsT2JzZXJ2YWJsZVwiLHByb3BzOntkZWJvdW5jZTpOdW1iZXJ9LHJlbmRlcjpmdW5jdGlvbigpe30sZGF0YTpmdW5jdGlvbigpe3JldHVybntwb3M6MCxkaXI6XCJkb3duXCIsZGlyQ2hhbmdlZDohMSxkaXJDaGFuZ2VQb3M6MH19LG1ldGhvZHM6e2dldFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJue3Bvc2l0aW9uOnRoaXMucG9zLGRpcmVjdGlvbjp0aGlzLmRpcixkaXJlY3Rpb25DaGFuZ2VkOnRoaXMuZGlyQ2hhbmdlZCxpbmZsZXhpb25Qb3NpdGlvbjp0aGlzLmRpckNoYW5nZVBvc319LHRyaWdnZXI6ZnVuY3Rpb24odCl7ITA9PT10fHwwPT09dGhpcy5kZWJvdW5jZT90aGlzLmVtaXQoKTp0aGlzLnRpbWVyfHwodGhpcy50aW1lcj10aGlzLmRlYm91bmNlP3NldFRpbWVvdXQodGhpcy5lbWl0LHRoaXMuZGVib3VuY2UpOnJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLmVtaXQpKX0sZW1pdDpmdW5jdGlvbigpe3ZhciB0PU1hdGgubWF4KDAsZ2V0U2Nyb2xsUG9zaXRpb24odGhpcy50YXJnZXQpKSxlPXQtdGhpcy5wb3M8MD9cInVwXCI6XCJkb3duXCI7dGhpcy5kaXJDaGFuZ2VkPXRoaXMuZGlyIT09ZSx0aGlzLmRpckNoYW5nZWQmJih0aGlzLmRpcj1lLHRoaXMuZGlyQ2hhbmdlUG9zPXRoaXMucG9zKSx0aGlzLnRpbWVyPW51bGwsdGhpcy5wb3M9dCx0aGlzLiRlbWl0KFwic2Nyb2xsXCIsdGhpcy5nZXRQb3NpdGlvbigpKX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLnRhcmdldD1nZXRTY3JvbGxUYXJnZXQodGhpcy4kZWwucGFyZW50Tm9kZSksdGhpcy50YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMudHJpZ2dlcixsaXN0ZW5PcHRzLnBhc3NpdmUpLHRoaXMudHJpZ2dlcighMCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy50aW1lciksdGhpcy50YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHRoaXMudHJpZ2dlcixsaXN0ZW5PcHRzLnBhc3NpdmUpfX0sUUxheW91dD17bmFtZTpcIlFMYXlvdXRcIixwcm92aWRlOmZ1bmN0aW9uKCl7cmV0dXJue2xheW91dDp0aGlzfX0scHJvcHM6e2NvbnRhaW5lcjpCb29sZWFuLHZpZXc6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJoaGggbHByIGZmZlwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4vXihofGwpaChofHIpIGxwciAoZnxsKWYoZnxyKSQvLnRlc3QodC50b0xvd2VyQ2FzZSgpKX19fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2hlaWdodDpvblNTUj8wOndpbmRvdy5pbm5lckhlaWdodCx3aWR0aDpvblNTUnx8dGhpcy5jb250YWluZXI/MDp3aW5kb3cuaW5uZXJXaWR0aCxjb250YWluZXJIZWlnaHQ6MCxzY3JvbGxiYXJXaWR0aDpvblNTUj8wOmdldFNjcm9sbGJhcldpZHRoKCksaGVhZGVyOntzaXplOjAsb2Zmc2V0OjAsc3BhY2U6ITF9LHJpZ2h0OntzaXplOjMwMCxvZmZzZXQ6MCxzcGFjZTohMX0sZm9vdGVyOntzaXplOjAsb2Zmc2V0OjAsc3BhY2U6ITF9LGxlZnQ6e3NpemU6MzAwLG9mZnNldDowLHNwYWNlOiExfSxzY3JvbGw6e3Bvc2l0aW9uOjAsZGlyZWN0aW9uOlwiZG93blwifX19LGNvbXB1dGVkOntyb3dzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy52aWV3LnRvTG93ZXJDYXNlKCkuc3BsaXQoXCIgXCIpO3JldHVybnt0b3A6dFswXS5zcGxpdChcIlwiKSxtaWRkbGU6dFsxXS5zcGxpdChcIlwiKSxib3R0b206dFsyXS5zcGxpdChcIlwiKX19LHRhcmdldFN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ7aWYoMCE9PXRoaXMuc2Nyb2xsYmFyV2lkdGgpcmV0dXJuKHQ9e30pW3RoaXMuJHEuaTE4bi5ydGw/XCJsZWZ0XCI6XCJyaWdodFwiXT10aGlzLnNjcm9sbGJhcldpZHRoK1wicHhcIix0fSx0YXJnZXRDaGlsZFN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ7aWYoMCE9PXRoaXMuc2Nyb2xsYmFyV2lkdGgpcmV0dXJuKHQ9e30pW3RoaXMuJHEuaTE4bi5ydGw/XCJyaWdodFwiOlwibGVmdFwiXT0wLHRbdGhpcy4kcS5pMThuLnJ0bD9cImxlZnRcIjpcInJpZ2h0XCJdPVwiLVwiK3RoaXMuc2Nyb2xsYmFyV2lkdGgrXCJweFwiLHQud2lkdGg9XCJjYWxjKDEwMCUgKyBcIit0aGlzLnNjcm9sbGJhcldpZHRoK1wicHgpXCIsdH19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLmluc3RhbmNlcz17aGVhZGVyOm51bGwscmlnaHQ6bnVsbCxmb290ZXI6bnVsbCxsZWZ0Om51bGx9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbGF5b3V0XCJ9LFt0KFFTY3JvbGxPYnNlcnZhYmxlLHtvbjp7c2Nyb2xsOnRoaXMuX19vblBhZ2VTY3JvbGx9fSksdChRUmVzaXplT2JzZXJ2YWJsZSx7b246e3Jlc2l6ZTp0aGlzLl9fb25QYWdlUmVzaXplfX0pLHRoaXMuJHNsb3RzLmRlZmF1bHRdKTtyZXR1cm4gdGhpcy5jb250YWluZXI/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbGF5b3V0LWNvbnRhaW5lciByZWxhdGl2ZS1wb3NpdGlvbiBvdmVyZmxvdy1oaWRkZW5cIn0sW3QoUVJlc2l6ZU9ic2VydmFibGUse29uOntyZXNpemU6dGhpcy5fX29uQ29udGFpbmVyUmVzaXplfX0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJhYnNvbHV0ZS1mdWxsXCIsc3R5bGU6dGhpcy50YXJnZXRTdHlsZX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJvdmVyZmxvdy1hdXRvXCIsc3R5bGU6dGhpcy50YXJnZXRDaGlsZFN0eWxlfSxbZV0pXSldKTplfSxtZXRob2RzOntfX2FuaW1hdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMudGltZXI/Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpOmRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChcInEtbGF5b3V0LWFuaW1hdGVcIiksdGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwicS1sYXlvdXQtYW5pbWF0ZVwiKSx0LnRpbWVyPW51bGx9LDE1MCl9LF9fb25QYWdlU2Nyb2xsOmZ1bmN0aW9uKHQpe3RoaXMuc2Nyb2xsPXQsdGhpcy4kZW1pdChcInNjcm9sbFwiLHQpfSxfX29uUGFnZVJlc2l6ZTpmdW5jdGlvbih0KXt2YXIgZT10LmhlaWdodCxpPXQud2lkdGgscz0hMTt0aGlzLmhlaWdodCE9PWUmJihzPSEwLHRoaXMuaGVpZ2h0PWUsdGhpcy4kZW1pdChcInNjcm9sbEhlaWdodFwiLGUpLHRoaXMuX191cGRhdGVTY3JvbGxiYXJXaWR0aCgpKSx0aGlzLndpZHRoIT09aSYmKHM9ITAsdGhpcy53aWR0aD1pKSxzJiZ0aGlzLiRlbWl0KFwicmVzaXplXCIse2hlaWdodDplLHdpZHRoOml9KX0sX19vbkNvbnRhaW5lclJlc2l6ZTpmdW5jdGlvbih0KXt2YXIgZT10LmhlaWdodDt0aGlzLmNvbnRhaW5lckhlaWdodCE9PWUmJih0aGlzLmNvbnRhaW5lckhlaWdodD1lLHRoaXMuX191cGRhdGVTY3JvbGxiYXJXaWR0aCgpKX0sX191cGRhdGVTY3JvbGxiYXJXaWR0aDpmdW5jdGlvbigpe2lmKHRoaXMuY29udGFpbmVyKXt2YXIgdD10aGlzLmhlaWdodD50aGlzLmNvbnRhaW5lckhlaWdodD9nZXRTY3JvbGxiYXJXaWR0aCgpOjA7dGhpcy5zY3JvbGxiYXJXaWR0aCE9PXQmJih0aGlzLnNjcm9sbGJhcldpZHRoPXQpfX19fSxkdXJhdGlvbj0xNTAsUUxheW91dERyYXdlcj17bmFtZTpcIlFMYXlvdXREcmF3ZXJcIixpbmplY3Q6e2xheW91dDp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRTGF5b3V0RHJhd2VyIG5lZWRzIHRvIGJlIGNoaWxkIG9mIFFMYXlvdXRcIil9fX0sbWl4aW5zOltNb2RlbFRvZ2dsZU1peGluXSxkaXJlY3RpdmVzOntUb3VjaFBhbjpUb3VjaFBhbn0scHJvcHM6e292ZXJsYXk6Qm9vbGVhbixzaWRlOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwibGVmdFwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJsZWZ0XCIsXCJyaWdodFwiXS5pbmNsdWRlcyh0KX19LHdpZHRoOnt0eXBlOk51bWJlcixkZWZhdWx0OjMwMH0sbWluaTpCb29sZWFuLG1pbmlXaWR0aDp7dHlwZTpOdW1iZXIsZGVmYXVsdDo2MH0sYnJlYWtwb2ludDp7dHlwZTpOdW1iZXIsZGVmYXVsdDo5OTJ9LGJlaGF2aW9yOnt0eXBlOlN0cmluZyx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wiZGVmYXVsdFwiLFwiZGVza3RvcFwiLFwibW9iaWxlXCJdLmluY2x1ZGVzKHQpfSxkZWZhdWx0OlwiZGVmYXVsdFwifSxzaG93SWZBYm92ZTpCb29sZWFuLGNvbnRlbnRTdHlsZTpPYmplY3QsY29udGVudENsYXNzOltTdHJpbmcsT2JqZWN0LEFycmF5XSxub0hpZGVPblJvdXRlQ2hhbmdlOkJvb2xlYW4sbm9Td2lwZU9wZW46Qm9vbGVhbixub1N3aXBlQ2xvc2U6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuc2hvd0lmQWJvdmV8fHZvaWQgMD09PXRoaXMudmFsdWV8fHRoaXMudmFsdWUsZT1cIm1vYmlsZVwiIT09dGhpcy5iZWhhdmlvciYmdGhpcy5icmVha3BvaW50PHRoaXMubGF5b3V0LndpZHRoJiYhdGhpcy5vdmVybGF5JiZ0O3JldHVybiB2b2lkIDAhPT10aGlzLnZhbHVlJiZ0aGlzLnZhbHVlIT09ZSYmdGhpcy4kZW1pdChcImlucHV0XCIsZSkse3Nob3dpbmc6ZSxiZWxvd0JyZWFrcG9pbnQ6XCJtb2JpbGVcIj09PXRoaXMuYmVoYXZpb3J8fFwiZGVza3RvcFwiIT09dGhpcy5iZWhhdmlvciYmdGhpcy5icmVha3BvaW50Pj10aGlzLmxheW91dC53aWR0aCxsYXJnZVNjcmVlblN0YXRlOnQsbW9iaWxlT3BlbmVkOiExfX0sd2F0Y2g6e2JlbG93QnJlYWtwb2ludDpmdW5jdGlvbih0KXt0aGlzLm1vYmlsZU9wZW5lZHx8KHQ/KHRoaXMub3ZlcmxheXx8KHRoaXMubGFyZ2VTY3JlZW5TdGF0ZT10aGlzLnNob3dpbmcpLHRoaXMuaGlkZSghMSkpOnRoaXMub3ZlcmxheXx8dGhpc1t0aGlzLmxhcmdlU2NyZWVuU3RhdGU/XCJzaG93XCI6XCJoaWRlXCJdKCExKSl9LHNpZGU6ZnVuY3Rpb24odCxlKXt0aGlzLmxheW91dFtlXS5zcGFjZT0hMSx0aGlzLmxheW91dFtlXS5vZmZzZXQ9MH0sYmVoYXZpb3I6ZnVuY3Rpb24odCl7dGhpcy5fX3VwZGF0ZUxvY2FsKFwiYmVsb3dCcmVha3BvaW50XCIsXCJtb2JpbGVcIj09PXR8fFwiZGVza3RvcFwiIT09dCYmdGhpcy5icmVha3BvaW50Pj10aGlzLmxheW91dC53aWR0aCl9LGJyZWFrcG9pbnQ6ZnVuY3Rpb24odCl7dGhpcy5fX3VwZGF0ZUxvY2FsKFwiYmVsb3dCcmVha3BvaW50XCIsXCJtb2JpbGVcIj09PXRoaXMuYmVoYXZpb3J8fFwiZGVza3RvcFwiIT09dGhpcy5iZWhhdmlvciYmdD49dGhpcy5sYXlvdXQud2lkdGgpfSxcImxheW91dC53aWR0aFwiOmZ1bmN0aW9uKHQpe3RoaXMuX191cGRhdGVMb2NhbChcImJlbG93QnJlYWtwb2ludFwiLFwibW9iaWxlXCI9PT10aGlzLmJlaGF2aW9yfHxcImRlc2t0b3BcIiE9PXRoaXMuYmVoYXZpb3ImJnRoaXMuYnJlYWtwb2ludD49dCl9LFwibGF5b3V0LnNjcm9sbGJhcldpZHRoXCI6ZnVuY3Rpb24oKXt0aGlzLmFwcGx5UG9zaXRpb24odGhpcy5zaG93aW5nPzA6dm9pZCAwKX0sb2Zmc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX191cGRhdGUoXCJvZmZzZXRcIix0KX0sb25MYXlvdXQ6ZnVuY3Rpb24odCl7dGhpcy4kZW1pdChcIm9uLWxheW91dFwiLHQpLHRoaXMuX191cGRhdGUoXCJzcGFjZVwiLHQpfSwkcm91dGU6ZnVuY3Rpb24oKXt0aGlzLm5vSGlkZU9uUm91dGVDaGFuZ2V8fCh0aGlzLm1vYmlsZU9wZW5lZHx8dGhpcy5vblNjcmVlbk92ZXJsYXkpJiZ0aGlzLmhpZGUoKX0scmlnaHRTaWRlOmZ1bmN0aW9uKCl7dGhpcy5hcHBseVBvc2l0aW9uKCl9LHNpemU6ZnVuY3Rpb24odCl7dGhpcy5hcHBseVBvc2l0aW9uKCksdGhpcy5fX3VwZGF0ZShcInNpemVcIix0KX0sXCIkcS5pMThuLnJ0bFwiOmZ1bmN0aW9uKCl7dGhpcy5hcHBseVBvc2l0aW9uKCl9LG1pbmk6ZnVuY3Rpb24oKXt0aGlzLnZhbHVlJiZ0aGlzLmxheW91dC5fX2FuaW1hdGUoKX19LGNvbXB1dGVkOntyaWdodFNpZGU6ZnVuY3Rpb24oKXtyZXR1cm5cInJpZ2h0XCI9PT10aGlzLnNpZGV9LG9mZnNldDpmdW5jdGlvbigpe3JldHVybiF0aGlzLnNob3dpbmd8fHRoaXMubW9iaWxlT3BlbmVkfHx0aGlzLm92ZXJsYXk/MDp0aGlzLnNpemV9LHNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc01pbmk/dGhpcy5taW5pV2lkdGg6dGhpcy53aWR0aH0sZml4ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vdmVybGF5fHx0aGlzLmxheW91dC52aWV3LmluZGV4T2YodGhpcy5yaWdodFNpZGU/XCJSXCI6XCJMXCIpPi0xfSxvbkxheW91dDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNob3dpbmcmJiF0aGlzLm1vYmlsZVZpZXcmJiF0aGlzLm92ZXJsYXl9LG9uU2NyZWVuT3ZlcmxheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNob3dpbmcmJiF0aGlzLm1vYmlsZVZpZXcmJnRoaXMub3ZlcmxheX0sYmFja2Ryb3BDbGFzczpmdW5jdGlvbigpe3JldHVybntcIm5vLXBvaW50ZXItZXZlbnRzXCI6IXRoaXMuc2hvd2luZ3x8IXRoaXMubW9iaWxlVmlld319LG1vYmlsZVZpZXc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5iZWxvd0JyZWFrcG9pbnR8fHRoaXMubW9iaWxlT3BlbmVkfSxoZWFkZXJTbG90OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMub3ZlcmxheSYmKHRoaXMucmlnaHRTaWRlP1wiclwiPT09dGhpcy5sYXlvdXQucm93cy50b3BbMl06XCJsXCI9PT10aGlzLmxheW91dC5yb3dzLnRvcFswXSl9LGZvb3RlclNsb3Q6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5vdmVybGF5JiYodGhpcy5yaWdodFNpZGU/XCJyXCI9PT10aGlzLmxheW91dC5yb3dzLmJvdHRvbVsyXTpcImxcIj09PXRoaXMubGF5b3V0LnJvd3MuYm90dG9tWzBdKX0sYmVsb3dDbGFzczpmdW5jdGlvbigpe3JldHVybntmaXhlZDohMCxcIm9uLXRvcFwiOiEwLFwicS1sYXlvdXQtZHJhd2VyLWRlbGltaXRlclwiOnRoaXMuZml4ZWQmJnRoaXMuc2hvd2luZyxcInEtbGF5b3V0LWRyYXdlci1tb2JpbGVcIjohMCxcInRvcC1wYWRkaW5nXCI6ITB9fSxhYm92ZUNsYXNzOmZ1bmN0aW9uKCl7cmV0dXJue2ZpeGVkOnRoaXMuZml4ZWR8fCF0aGlzLm9uTGF5b3V0LFwicS1sYXlvdXQtZHJhd2VyLW1pbmlcIjp0aGlzLmlzTWluaSxcInEtbGF5b3V0LWRyYXdlci1ub3JtYWxcIjohdGhpcy5pc01pbmksXCJxLWxheW91dC1kcmF3ZXItZGVsaW1pdGVyXCI6dGhpcy5maXhlZCYmdGhpcy5zaG93aW5nLFwidG9wLXBhZGRpbmdcIjp0aGlzLmhlYWRlclNsb3R9fSxhYm92ZVN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9e307cmV0dXJuIHRoaXMubGF5b3V0LmhlYWRlci5zcGFjZSYmIXRoaXMuaGVhZGVyU2xvdCYmKHRoaXMuZml4ZWQ/dC50b3A9dGhpcy5sYXlvdXQuaGVhZGVyLm9mZnNldCtcInB4XCI6dGhpcy5sYXlvdXQuaGVhZGVyLnNwYWNlJiYodC50b3A9dGhpcy5sYXlvdXQuaGVhZGVyLnNpemUrXCJweFwiKSksdGhpcy5sYXlvdXQuZm9vdGVyLnNwYWNlJiYhdGhpcy5mb290ZXJTbG90JiYodGhpcy5maXhlZD90LmJvdHRvbT10aGlzLmxheW91dC5mb290ZXIub2Zmc2V0K1wicHhcIjp0aGlzLmxheW91dC5mb290ZXIuc3BhY2UmJih0LmJvdHRvbT10aGlzLmxheW91dC5mb290ZXIuc2l6ZStcInB4XCIpKSx0fSxjb21wdXRlZFN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMuY29udGVudFN0eWxlLHt3aWR0aDp0aGlzLnNpemUrXCJweFwifSx0aGlzLm1vYmlsZVZpZXc/XCJcIjp0aGlzLmFib3ZlU3R5bGVdfSxjb21wdXRlZENsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuW1wicS1sYXlvdXQtZHJhd2VyLVwiK3RoaXMuc2lkZSx0aGlzLmxheW91dC5jb250YWluZXI/XCJvdmVyZmxvdy1hdXRvXCI6XCJzY3JvbGxcIix0aGlzLmNvbnRlbnRDbGFzcyx0aGlzLm1vYmlsZVZpZXc/dGhpcy5iZWxvd0NsYXNzOnRoaXMuYWJvdmVDbGFzc119LHN0YXRlRGlyZWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMuJHEuaTE4bi5ydGw/LTE6MSkqKHRoaXMucmlnaHRTaWRlPzE6LTEpfSxpc01pbmk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5taW5pJiYhdGhpcy5tb2JpbGVWaWV3fSxvbk5hdGl2ZUV2ZW50czpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYoIXRoaXMubW9iaWxlVmlldylyZXR1cm57XCIhY2xpY2tcIjpmdW5jdGlvbihlKXt0LiRlbWl0KFwiY2xpY2tcIixlKX0sbW91c2VvdmVyOmZ1bmN0aW9uKGUpe3QuJGVtaXQoXCJtb3VzZW92ZXJcIixlKX0sbW91c2VvdXQ6ZnVuY3Rpb24oZSl7dC4kZW1pdChcIm1vdXNlb3V0XCIsZSl9fX19LG1ldGhvZHM6e2FwcGx5UG9zaXRpb246ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt2b2lkIDA9PT10P3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dD1lLnNob3dpbmc/MDplLnNpemUsZS5hcHBseVBvc2l0aW9uKGUuc3RhdGVEaXJlY3Rpb24qdCl9KTp0aGlzLiRyZWZzLmNvbnRlbnQmJih0aGlzLmxheW91dC5jb250YWluZXImJnRoaXMucmlnaHRTaWRlJiYodGhpcy5tb2JpbGVWaWV3fHxNYXRoLmFicyh0KT09PXRoaXMuc2l6ZSkmJih0Kz10aGlzLnN0YXRlRGlyZWN0aW9uKnRoaXMubGF5b3V0LnNjcm9sbGJhcldpZHRoKSx0aGlzLiRyZWZzLmNvbnRlbnQuc3R5bGUudHJhbnNmb3JtPVwidHJhbnNsYXRlWChcIit0K1wicHgpXCIpfSxhcHBseUJhY2tkcm9wOmZ1bmN0aW9uKHQpe3RoaXMuJHJlZnMuYmFja2Ryb3AmJih0aGlzLiRyZWZzLmJhY2tkcm9wLnN0eWxlLmJhY2tncm91bmRDb2xvcj1cInJnYmEoMCwwLDAsXCIrLjQqdCtcIilcIil9LF9fc2V0U2Nyb2xsYWJsZTpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5jb250YWluZXJ8fGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0W3Q/XCJhZGRcIjpcInJlbW92ZVwiXShcInEtYm9keS1kcmF3ZXItdG9nZ2xlXCIpfSxfX29wZW5CeVRvdWNoOmZ1bmN0aW9uKHQpe2lmKHRoaXMuYmVsb3dCcmVha3BvaW50KXt2YXIgZT10aGlzLnNpemUsaT1iZXR3ZWVuKHQuZGlzdGFuY2UueCwwLGUpO2lmKHQuaXNGaW5hbCl7dmFyIHM9dGhpcy4kcmVmcy5jb250ZW50LG49aT49TWF0aC5taW4oNzUsZSk7cmV0dXJuIHMuY2xhc3NMaXN0LnJlbW92ZShcIm5vLXRyYW5zaXRpb25cIiksdm9pZChuP3RoaXMuc2hvdygpOih0aGlzLmxheW91dC5fX2FuaW1hdGUoKSx0aGlzLmFwcGx5QmFja2Ryb3AoMCksdGhpcy5hcHBseVBvc2l0aW9uKHRoaXMuc3RhdGVEaXJlY3Rpb24qZSkscy5jbGFzc0xpc3QucmVtb3ZlKFwicS1sYXlvdXQtZHJhd2VyLWRlbGltaXRlclwiKSkpfWlmKHRoaXMuYXBwbHlQb3NpdGlvbigodGhpcy4kcS5pMThuLnJ0bD8hdGhpcy5yaWdodFNpZGU6dGhpcy5yaWdodFNpZGUpP01hdGgubWF4KGUtaSwwKTpNYXRoLm1pbigwLGktZSkpLHRoaXMuYXBwbHlCYWNrZHJvcChiZXR3ZWVuKGkvZSwwLDEpKSx0LmlzRmlyc3Qpe3ZhciBvPXRoaXMuJHJlZnMuY29udGVudDtvLmNsYXNzTGlzdC5hZGQoXCJuby10cmFuc2l0aW9uXCIpLG8uY2xhc3NMaXN0LmFkZChcInEtbGF5b3V0LWRyYXdlci1kZWxpbWl0ZXJcIil9fX0sX19jbG9zZUJ5VG91Y2g6ZnVuY3Rpb24odCl7aWYodGhpcy5tb2JpbGVPcGVuZWQpe3ZhciBlPXRoaXMuc2l6ZSxpPXQuZGlyZWN0aW9uPT09dGhpcy5zaWRlLHM9KHRoaXMuJHEuaTE4bi5ydGw/IWk6aSk/YmV0d2Vlbih0LmRpc3RhbmNlLngsMCxlKTowO2lmKHQuaXNGaW5hbCl7dmFyIG49TWF0aC5hYnMocyk8TWF0aC5taW4oNzUsZSk7cmV0dXJuIHRoaXMuJHJlZnMuY29udGVudC5jbGFzc0xpc3QucmVtb3ZlKFwibm8tdHJhbnNpdGlvblwiKSx2b2lkKG4/KHRoaXMubGF5b3V0Ll9fYW5pbWF0ZSgpLHRoaXMuYXBwbHlCYWNrZHJvcCgxKSx0aGlzLmFwcGx5UG9zaXRpb24oMCkpOnRoaXMuaGlkZSgpKX10aGlzLmFwcGx5UG9zaXRpb24odGhpcy5zdGF0ZURpcmVjdGlvbipzKSx0aGlzLmFwcGx5QmFja2Ryb3AoYmV0d2VlbigxLXMvZSwwLDEpKSx0LmlzRmlyc3QmJnRoaXMuJHJlZnMuY29udGVudC5jbGFzc0xpc3QuYWRkKFwibm8tdHJhbnNpdGlvblwiKX19LF9fc2hvdzpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3ZvaWQgMD09PXQmJih0PSEwKSx0JiZ0aGlzLmxheW91dC5fX2FuaW1hdGUoKSx0aGlzLmFwcGx5UG9zaXRpb24oMCk7dmFyIGk9dGhpcy5sYXlvdXQuaW5zdGFuY2VzW3RoaXMucmlnaHRTaWRlP1wibGVmdFwiOlwicmlnaHRcIl07aSYmaS5tb2JpbGVPcGVuZWQmJmkuaGlkZSgpLHRoaXMuYmVsb3dCcmVha3BvaW50Pyh0aGlzLm1vYmlsZU9wZW5lZD0hMCx0aGlzLmFwcGx5QmFja2Ryb3AoMSksdGhpcy5sYXlvdXQuY29udGFpbmVyfHwodGhpcy5wcmV2ZW50ZWRTY3JvbGw9ITAscHJldmVudFNjcm9sbCghMCkpKTp0aGlzLl9fc2V0U2Nyb2xsYWJsZSghMCksY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2Uuc2hvd1Byb21pc2UmJihlLnNob3dQcm9taXNlLnRoZW4oZnVuY3Rpb24oKXtlLl9fc2V0U2Nyb2xsYWJsZSghMSl9KSxlLnNob3dQcm9taXNlUmVzb2x2ZSgpKX0sZHVyYXRpb24pfSxfX2hpZGU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt2b2lkIDA9PT10JiYodD0hMCksdCYmdGhpcy5sYXlvdXQuX19hbmltYXRlKCksdGhpcy5tb2JpbGVPcGVuZWQmJih0aGlzLm1vYmlsZU9wZW5lZD0hMSksdGhpcy5hcHBseVBvc2l0aW9uKHRoaXMuc3RhdGVEaXJlY3Rpb24qdGhpcy5zaXplKSx0aGlzLmFwcGx5QmFja2Ryb3AoMCksdGhpcy5fX2NsZWFudXAoKSxjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5oaWRlUHJvbWlzZSYmZS5oaWRlUHJvbWlzZVJlc29sdmUoKX0sZHVyYXRpb24pfSxfX2NsZWFudXA6ZnVuY3Rpb24oKXt0aGlzLnByZXZlbnRlZFNjcm9sbCYmKHRoaXMucHJldmVudGVkU2Nyb2xsPSExLHByZXZlbnRTY3JvbGwoITEpKSx0aGlzLl9fc2V0U2Nyb2xsYWJsZSghMSl9LF9fdXBkYXRlOmZ1bmN0aW9uKHQsZSl7dGhpcy5sYXlvdXRbdGhpcy5zaWRlXVt0XSE9PWUmJih0aGlzLmxheW91dFt0aGlzLnNpZGVdW3RdPWUpfSxfX3VwZGF0ZUxvY2FsOmZ1bmN0aW9uKHQsZSl7dGhpc1t0XSE9PWUmJih0aGlzW3RdPWUpfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMubGF5b3V0Lmluc3RhbmNlc1t0aGlzLnNpZGVdPXRoaXMsdGhpcy5fX3VwZGF0ZShcInNpemVcIix0aGlzLnNpemUpLHRoaXMuX191cGRhdGUoXCJzcGFjZVwiLHRoaXMub25MYXlvdXQpLHRoaXMuX191cGRhdGUoXCJvZmZzZXRcIix0aGlzLm9mZnNldCl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLmFwcGx5UG9zaXRpb24odGhpcy5zaG93aW5nPzA6dm9pZCAwKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLnNob3dpbmcmJnRoaXMuX19jbGVhbnVwKCksdGhpcy5sYXlvdXQuaW5zdGFuY2VzW3RoaXMuc2lkZV09PT10aGlzJiYodGhpcy5sYXlvdXQuaW5zdGFuY2VzW3RoaXMuc2lkZV09bnVsbCx0aGlzLl9fdXBkYXRlKFwic2l6ZVwiLDApLHRoaXMuX191cGRhdGUoXCJvZmZzZXRcIiwwKSx0aGlzLl9fdXBkYXRlKFwic3BhY2VcIiwhMSkpfSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWRyYXdlci1jb250YWluZXJcIn0sW3RoaXMubW9iaWxlVmlldyYmIXRoaXMubm9Td2lwZU9wZW4/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbGF5b3V0LWRyYXdlci1vcGVuZXIgZml4ZWQtXCIrdGhpcy5zaWRlLGRpcmVjdGl2ZXM6W3tuYW1lOlwidG91Y2gtcGFuXCIsbW9kaWZpZXJzOntob3Jpem9udGFsOiEwfSx2YWx1ZTp0aGlzLl9fb3BlbkJ5VG91Y2h9XX0pOm51bGwsdChcImRpdlwiLHtyZWY6XCJiYWNrZHJvcFwiLHN0YXRpY0NsYXNzOlwiZnVsbHNjcmVlbiBxLWxheW91dC1iYWNrZHJvcCBxLWxheW91dC10cmFuc2l0aW9uXCIsY2xhc3M6dGhpcy5iYWNrZHJvcENsYXNzLG9uOntjbGljazp0aGlzLmhpZGV9LGRpcmVjdGl2ZXM6W3tuYW1lOlwidG91Y2gtcGFuXCIsbW9kaWZpZXJzOntob3Jpem9udGFsOiEwfSx2YWx1ZTp0aGlzLl9fY2xvc2VCeVRvdWNofV19KV0uY29uY2F0KFt0KFwiYXNpZGVcIix7cmVmOlwiY29udGVudFwiLHN0YXRpY0NsYXNzOlwicS1sYXlvdXQtZHJhd2VyIHEtbGF5b3V0LXRyYW5zaXRpb25cIixjbGFzczp0aGlzLmNvbXB1dGVkQ2xhc3Msc3R5bGU6dGhpcy5jb21wdXRlZFN0eWxlLGF0dHJzOnRoaXMuJGF0dHJzLG9uOnRoaXMub25OYXRpdmVFdmVudHMsZGlyZWN0aXZlczp0aGlzLm1vYmlsZVZpZXcmJiF0aGlzLm5vU3dpcGVDbG9zZT9be25hbWU6XCJ0b3VjaC1wYW5cIixtb2RpZmllcnM6e2hvcml6b250YWw6ITB9LHZhbHVlOnRoaXMuX19jbG9zZUJ5VG91Y2h9XTpudWxsfSx0aGlzLmlzTWluaSYmdGhpcy4kc2xvdHMubWluaT9bdGhpcy4kc2xvdHMubWluaV06dGhpcy4kc2xvdHMuZGVmYXVsdCldKSl9fSxRV2luZG93UmVzaXplT2JzZXJ2YWJsZT17bmFtZTpcIlFXaW5kb3dSZXNpemVPYnNlcnZhYmxlXCIscHJvcHM6e2RlYm91bmNlOnt0eXBlOk51bWJlcixkZWZhdWx0OjgwfX0scmVuZGVyOmZ1bmN0aW9uKCl7fSxtZXRob2RzOnt0cmlnZ2VyOmZ1bmN0aW9uKCl7MD09PXRoaXMuZGVib3VuY2U/dGhpcy5lbWl0KCk6dGhpcy50aW1lcnx8KHRoaXMudGltZXI9c2V0VGltZW91dCh0aGlzLmVtaXQsdGhpcy5kZWJvdW5jZSkpfSxlbWl0OmZ1bmN0aW9uKHQpe3RoaXMudGltZXI9bnVsbCx0aGlzLiRlbWl0KFwicmVzaXplXCIse2hlaWdodDp0PzA6d2luZG93LmlubmVySGVpZ2h0LHdpZHRoOnQ/MDp3aW5kb3cuaW5uZXJXaWR0aH0pfX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuZW1pdChvblNTUil9LG1vdW50ZWQ6ZnVuY3Rpb24oKXtmcm9tU1NSJiZ0aGlzLmVtaXQoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLHRoaXMudHJpZ2dlcixsaXN0ZW5PcHRzLnBhc3NpdmUpfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdGhpcy50cmlnZ2VyLGxpc3Rlbk9wdHMucGFzc2l2ZSl9fSxRTGF5b3V0Rm9vdGVyPXtuYW1lOlwiUUxheW91dEZvb3RlclwiLG1peGluczpbQ2FuUmVuZGVyTWl4aW5dLGluamVjdDp7bGF5b3V0OntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFMYXlvdXRGb290ZXIgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUUxheW91dFwiKX19fSxwcm9wczp7dmFsdWU6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSxyZXZlYWw6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzaXplOjAscmV2ZWFsZWQ6ITAsd2luZG93SGVpZ2h0Om9uU1NSfHx0aGlzLmxheW91dC5jb250YWluZXI/MDp3aW5kb3cuaW5uZXJIZWlnaHR9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5fX3VwZGF0ZShcInNwYWNlXCIsdCksdGhpcy5fX3VwZGF0ZUxvY2FsKFwicmV2ZWFsZWRcIiwhMCksdGhpcy5sYXlvdXQuX19hbmltYXRlKCl9LG9mZnNldDpmdW5jdGlvbih0KXt0aGlzLl9fdXBkYXRlKFwib2Zmc2V0XCIsdCl9LHJldmVhbDpmdW5jdGlvbih0KXt0fHx0aGlzLl9fdXBkYXRlTG9jYWwoXCJyZXZlYWxlZFwiLHRoaXMudmFsdWUpfSxyZXZlYWxlZDpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5fX2FuaW1hdGUoKSx0aGlzLiRlbWl0KFwicmV2ZWFsXCIsdCl9LFwibGF5b3V0LnNjcm9sbFwiOmZ1bmN0aW9uKCl7dGhpcy5fX3VwZGF0ZVJldmVhbGVkKCl9LFwibGF5b3V0LmhlaWdodFwiOmZ1bmN0aW9uKCl7dGhpcy5fX3VwZGF0ZVJldmVhbGVkKCl9LHNpemU6ZnVuY3Rpb24oKXt0aGlzLl9fdXBkYXRlUmV2ZWFsZWQoKX19LGNvbXB1dGVkOntmaXhlZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJldmVhbHx8dGhpcy5sYXlvdXQudmlldy5pbmRleE9mKFwiRlwiKT4tMXx8dGhpcy5sYXlvdXQuY29udGFpbmVyfSxjb250YWluZXJIZWlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXlvdXQuY29udGFpbmVyP3RoaXMubGF5b3V0LmNvbnRhaW5lckhlaWdodDp0aGlzLndpbmRvd0hlaWdodH0sb2Zmc2V0OmZ1bmN0aW9uKCl7aWYoIXRoaXMuY2FuUmVuZGVyfHwhdGhpcy52YWx1ZSlyZXR1cm4gMDtpZih0aGlzLmZpeGVkKXJldHVybiB0aGlzLnJldmVhbGVkP3RoaXMuc2l6ZTowO3ZhciB0PXRoaXMubGF5b3V0LnNjcm9sbC5wb3NpdGlvbit0aGlzLmNvbnRhaW5lckhlaWdodCt0aGlzLnNpemUtdGhpcy5sYXlvdXQuaGVpZ2h0O3JldHVybiB0PjA/dDowfSxjb21wdXRlZENsYXNzOmZ1bmN0aW9uKCl7cmV0dXJue1wiZml4ZWQtYm90dG9tXCI6dGhpcy5maXhlZCxcImFic29sdXRlLWJvdHRvbVwiOiF0aGlzLmZpeGVkLGhpZGRlbjohdGhpcy52YWx1ZSYmIXRoaXMuZml4ZWQsXCJxLWxheW91dC1mb290ZXItaGlkZGVuXCI6IXRoaXMuY2FuUmVuZGVyfHwhdGhpcy52YWx1ZXx8dGhpcy5maXhlZCYmIXRoaXMucmV2ZWFsZWR9fSxjb21wdXRlZFN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sYXlvdXQucm93cy5ib3R0b20sZT17fTtyZXR1cm5cImxcIj09PXRbMF0mJnRoaXMubGF5b3V0LmxlZnQuc3BhY2UmJihlW3RoaXMuJHEuaTE4bi5ydGw/XCJyaWdodFwiOlwibGVmdFwiXT10aGlzLmxheW91dC5sZWZ0LnNpemUrXCJweFwiKSxcInJcIj09PXRbMl0mJnRoaXMubGF5b3V0LnJpZ2h0LnNwYWNlJiYoZVt0aGlzLiRxLmkxOG4ucnRsP1wibGVmdFwiOlwicmlnaHRcIl09dGhpcy5sYXlvdXQucmlnaHQuc2l6ZStcInB4XCIpLGV9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJmb290ZXJcIix7c3RhdGljQ2xhc3M6XCJxLWxheW91dC1mb290ZXIgcS1sYXlvdXQtbWFyZ2luYWwgcS1sYXlvdXQtdHJhbnNpdGlvblwiLGNsYXNzOnRoaXMuY29tcHV0ZWRDbGFzcyxzdHlsZTp0aGlzLmNvbXB1dGVkU3R5bGV9LFt0KFFSZXNpemVPYnNlcnZhYmxlLHtwcm9wczp7ZGVib3VuY2U6MH0sb246e3Jlc2l6ZTp0aGlzLl9fb25SZXNpemV9fSksIXRoaXMubGF5b3V0LmNvbnRhaW5lciYmdChRV2luZG93UmVzaXplT2JzZXJ2YWJsZSx7cHJvcHM6e2RlYm91bmNlOjB9LG9uOntyZXNpemU6dGhpcy5fX29uV2luZG93UmVzaXplfX0pfHx2b2lkIDAsdGhpcy4kc2xvdHMuZGVmYXVsdF0pfSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5sYXlvdXQuaW5zdGFuY2VzLmZvb3Rlcj10aGlzLHRoaXMuX191cGRhdGUoXCJzcGFjZVwiLHRoaXMudmFsdWUpLHRoaXMuX191cGRhdGUoXCJvZmZzZXRcIix0aGlzLm9mZnNldCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmxheW91dC5pbnN0YW5jZXMuZm9vdGVyPT09dGhpcyYmKHRoaXMubGF5b3V0Lmluc3RhbmNlcy5mb290ZXI9bnVsbCx0aGlzLl9fdXBkYXRlKFwic2l6ZVwiLDApLHRoaXMuX191cGRhdGUoXCJvZmZzZXRcIiwwKSx0aGlzLl9fdXBkYXRlKFwic3BhY2VcIiwhMSkpfSxtZXRob2RzOntfX29uUmVzaXplOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaGVpZ2h0O3RoaXMuX191cGRhdGVMb2NhbChcInNpemVcIixlKSx0aGlzLl9fdXBkYXRlKFwic2l6ZVwiLGUpfSxfX29uV2luZG93UmVzaXplOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaGVpZ2h0O3RoaXMuX191cGRhdGVMb2NhbChcIndpbmRvd0hlaWdodFwiLGUpfSxfX3VwZGF0ZTpmdW5jdGlvbih0LGUpe3RoaXMubGF5b3V0LmZvb3Rlclt0XSE9PWUmJih0aGlzLmxheW91dC5mb290ZXJbdF09ZSl9LF9fdXBkYXRlTG9jYWw6ZnVuY3Rpb24odCxlKXt0aGlzW3RdIT09ZSYmKHRoaXNbdF09ZSl9LF9fdXBkYXRlUmV2ZWFsZWQ6ZnVuY3Rpb24oKXtpZih0aGlzLnJldmVhbCl7dmFyIHQ9dGhpcy5sYXlvdXQuc2Nyb2xsLGU9dC5kaXJlY3Rpb24saT10LnBvc2l0aW9uLHM9dC5pbmZsZXhpb25Qb3NpdGlvbjt0aGlzLl9fdXBkYXRlTG9jYWwoXCJyZXZlYWxlZFwiLFwidXBcIj09PWV8fGktczwxMDB8fHRoaXMubGF5b3V0LmhlaWdodC10aGlzLmNvbnRhaW5lckhlaWdodC1pLXRoaXMuc2l6ZTwzMDApfX19fSxRTGF5b3V0SGVhZGVyPXtuYW1lOlwiUUxheW91dEhlYWRlclwiLG1peGluczpbQ2FuUmVuZGVyTWl4aW5dLGluamVjdDp7bGF5b3V0OntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFMYXlvdXRIZWFkZXIgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUUxheW91dFwiKX19fSxwcm9wczp7dmFsdWU6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSxyZXZlYWw6Qm9vbGVhbixyZXZlYWxPZmZzZXQ6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MjUwfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzaXplOjAscmV2ZWFsZWQ6ITB9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5fX3VwZGF0ZShcInNwYWNlXCIsdCksdGhpcy5fX3VwZGF0ZUxvY2FsKFwicmV2ZWFsZWRcIiwhMCksdGhpcy5sYXlvdXQuX19hbmltYXRlKCl9LG9mZnNldDpmdW5jdGlvbih0KXt0aGlzLl9fdXBkYXRlKFwib2Zmc2V0XCIsdCl9LHJldmVhbDpmdW5jdGlvbih0KXt0fHx0aGlzLl9fdXBkYXRlTG9jYWwoXCJyZXZlYWxlZFwiLHRoaXMudmFsdWUpfSxyZXZlYWxlZDpmdW5jdGlvbih0KXt0aGlzLmxheW91dC5fX2FuaW1hdGUoKSx0aGlzLiRlbWl0KFwicmV2ZWFsXCIsdCl9LFwibGF5b3V0LnNjcm9sbFwiOmZ1bmN0aW9uKHQpe3RoaXMucmV2ZWFsJiZ0aGlzLl9fdXBkYXRlTG9jYWwoXCJyZXZlYWxlZFwiLFwidXBcIj09PXQuZGlyZWN0aW9ufHx0LnBvc2l0aW9uPD10aGlzLnJldmVhbE9mZnNldHx8dC5wb3NpdGlvbi10LmluZmxleGlvblBvc2l0aW9uPDEwMCl9fSxjb21wdXRlZDp7Zml4ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXZlYWx8fHRoaXMubGF5b3V0LnZpZXcuaW5kZXhPZihcIkhcIik+LTF8fHRoaXMubGF5b3V0LmNvbnRhaW5lcn0sb2Zmc2V0OmZ1bmN0aW9uKCl7aWYoIXRoaXMuY2FuUmVuZGVyfHwhdGhpcy52YWx1ZSlyZXR1cm4gMDtpZih0aGlzLmZpeGVkKXJldHVybiB0aGlzLnJldmVhbGVkP3RoaXMuc2l6ZTowO3ZhciB0PXRoaXMuc2l6ZS10aGlzLmxheW91dC5zY3JvbGwucG9zaXRpb247cmV0dXJuIHQ+MD90OjB9LGNvbXB1dGVkQ2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm57XCJmaXhlZC10b3BcIjp0aGlzLmZpeGVkLFwiYWJzb2x1dGUtdG9wXCI6IXRoaXMuZml4ZWQsXCJxLWxheW91dC1oZWFkZXItaGlkZGVuXCI6IXRoaXMuY2FuUmVuZGVyfHwhdGhpcy52YWx1ZXx8dGhpcy5maXhlZCYmIXRoaXMucmV2ZWFsZWR9fSxjb21wdXRlZFN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sYXlvdXQucm93cy50b3AsZT17fTtyZXR1cm5cImxcIj09PXRbMF0mJnRoaXMubGF5b3V0LmxlZnQuc3BhY2UmJihlW3RoaXMuJHEuaTE4bi5ydGw/XCJyaWdodFwiOlwibGVmdFwiXT10aGlzLmxheW91dC5sZWZ0LnNpemUrXCJweFwiKSxcInJcIj09PXRbMl0mJnRoaXMubGF5b3V0LnJpZ2h0LnNwYWNlJiYoZVt0aGlzLiRxLmkxOG4ucnRsP1wibGVmdFwiOlwicmlnaHRcIl09dGhpcy5sYXlvdXQucmlnaHQuc2l6ZStcInB4XCIpLGV9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJoZWFkZXJcIix7c3RhdGljQ2xhc3M6XCJxLWxheW91dC1oZWFkZXIgcS1sYXlvdXQtbWFyZ2luYWwgcS1sYXlvdXQtdHJhbnNpdGlvblwiLGNsYXNzOnRoaXMuY29tcHV0ZWRDbGFzcyxzdHlsZTp0aGlzLmNvbXB1dGVkU3R5bGV9LFt0KFFSZXNpemVPYnNlcnZhYmxlLHtwcm9wczp7ZGVib3VuY2U6MH0sb246e3Jlc2l6ZTp0aGlzLl9fb25SZXNpemV9fSksdGhpcy4kc2xvdHMuZGVmYXVsdF0pfSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5sYXlvdXQuaW5zdGFuY2VzLmhlYWRlcj10aGlzLHRoaXMuX191cGRhdGUoXCJzcGFjZVwiLHRoaXMudmFsdWUpLHRoaXMuX191cGRhdGUoXCJvZmZzZXRcIix0aGlzLm9mZnNldCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmxheW91dC5pbnN0YW5jZXMuaGVhZGVyPT09dGhpcyYmKHRoaXMubGF5b3V0Lmluc3RhbmNlcy5oZWFkZXI9bnVsbCx0aGlzLl9fdXBkYXRlKFwic2l6ZVwiLDApLHRoaXMuX191cGRhdGUoXCJvZmZzZXRcIiwwKSx0aGlzLl9fdXBkYXRlKFwic3BhY2VcIiwhMSkpfSxtZXRob2RzOntfX29uUmVzaXplOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaGVpZ2h0O3RoaXMuX191cGRhdGVMb2NhbChcInNpemVcIixlKSx0aGlzLl9fdXBkYXRlKFwic2l6ZVwiLGUpfSxfX3VwZGF0ZTpmdW5jdGlvbih0LGUpe3RoaXMubGF5b3V0LmhlYWRlclt0XSE9PWUmJih0aGlzLmxheW91dC5oZWFkZXJbdF09ZSl9LF9fdXBkYXRlTG9jYWw6ZnVuY3Rpb24odCxlKXt0aGlzW3RdIT09ZSYmKHRoaXNbdF09ZSl9fX0sUVBhZ2U9e25hbWU6XCJRUGFnZVwiLGluamVjdDp7cGFnZUNvbnRhaW5lcjp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRUGFnZSBuZWVkcyB0byBiZSBjaGlsZCBvZiBRUGFnZUNvbnRhaW5lclwiKX19LGxheW91dDp7fX0scHJvcHM6e3BhZGRpbmc6Qm9vbGVhbixzdHlsZUZuOkZ1bmN0aW9ufSxjb21wdXRlZDp7c3R5bGU6ZnVuY3Rpb24oKXt2YXIgdD0odGhpcy5sYXlvdXQuaGVhZGVyLnNwYWNlP3RoaXMubGF5b3V0LmhlYWRlci5zaXplOjApKyh0aGlzLmxheW91dC5mb290ZXIuc3BhY2U/dGhpcy5sYXlvdXQuZm9vdGVyLnNpemU6MCk7cmV0dXJuXCJmdW5jdGlvblwiPT10eXBlb2YgdGhpcy5zdHlsZUZuP3RoaXMuc3R5bGVGbih0KTp7bWluSGVpZ2h0OnRoaXMubGF5b3V0LmNvbnRhaW5lcj90aGlzLmxheW91dC5jb250YWluZXJIZWlnaHQtdCtcInB4XCI6dD9cImNhbGMoMTAwdmggLSBcIit0K1wicHgpXCI6XCIxMDB2aFwifX0sY2xhc3NlczpmdW5jdGlvbigpe2lmKHRoaXMucGFkZGluZylyZXR1cm5cImxheW91dC1wYWRkaW5nXCJ9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJtYWluXCIse3N0YXRpY0NsYXNzOlwicS1sYXlvdXQtcGFnZVwiLHN0eWxlOnRoaXMuc3R5bGUsY2xhc3M6dGhpcy5jbGFzc2VzfSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFQYWdlQ29udGFpbmVyPXtuYW1lOlwiUVBhZ2VDb250YWluZXJcIixpbmplY3Q6e2xheW91dDp7ZGVmYXVsdDpmdW5jdGlvbigpe2NvbnNvbGUuZXJyb3IoXCJRUGFnZUNvbnRhaW5lciBuZWVkcyB0byBiZSBjaGlsZCBvZiBRTGF5b3V0XCIpfX19LHByb3ZpZGU6e3BhZ2VDb250YWluZXI6ITB9LGNvbXB1dGVkOntzdHlsZTpmdW5jdGlvbigpe3ZhciB0PXt9O3JldHVybiB0aGlzLmxheW91dC5oZWFkZXIuc3BhY2UmJih0LnBhZGRpbmdUb3A9dGhpcy5sYXlvdXQuaGVhZGVyLnNpemUrXCJweFwiKSx0aGlzLmxheW91dC5yaWdodC5zcGFjZSYmKHRbXCJwYWRkaW5nXCIrKHRoaXMuJHEuaTE4bi5ydGw/XCJMZWZ0XCI6XCJSaWdodFwiKV09dGhpcy5sYXlvdXQucmlnaHQuc2l6ZStcInB4XCIpLHRoaXMubGF5b3V0LmZvb3Rlci5zcGFjZSYmKHQucGFkZGluZ0JvdHRvbT10aGlzLmxheW91dC5mb290ZXIuc2l6ZStcInB4XCIpLHRoaXMubGF5b3V0LmxlZnQuc3BhY2UmJih0W1wicGFkZGluZ1wiKyh0aGlzLiRxLmkxOG4ucnRsP1wiUmlnaHRcIjpcIkxlZnRcIildPXRoaXMubGF5b3V0LmxlZnQuc2l6ZStcInB4XCIpLHR9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWxheW91dC1wYWdlLWNvbnRhaW5lciBxLWxheW91dC10cmFuc2l0aW9uXCIsc3R5bGU6dGhpcy5zdHlsZX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRUGFnZVN0aWNreT17bmFtZTpcIlFQYWdlU3RpY2t5XCIsaW5qZWN0OntsYXlvdXQ6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUVBhZ2VTdGlja3kgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUUxheW91dFwiKX19fSxwcm9wczp7cG9zaXRpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJib3R0b20tcmlnaHRcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1widG9wLXJpZ2h0XCIsXCJ0b3AtbGVmdFwiLFwiYm90dG9tLXJpZ2h0XCIsXCJib3R0b20tbGVmdFwiLFwidG9wXCIsXCJyaWdodFwiLFwiYm90dG9tXCIsXCJsZWZ0XCJdLmluY2x1ZGVzKHQpfX0sb2Zmc2V0Ont0eXBlOkFycmF5LHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4gMj09PXQubGVuZ3RofX0sZXhwYW5kOkJvb2xlYW59LGNvbXB1dGVkOnthdHRhY2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBvc2l0aW9uO3JldHVybnt0b3A6dC5pbmRleE9mKFwidG9wXCIpPi0xLHJpZ2h0OnQuaW5kZXhPZihcInJpZ2h0XCIpPi0xLGJvdHRvbTp0LmluZGV4T2YoXCJib3R0b21cIik+LTEsbGVmdDp0LmluZGV4T2YoXCJsZWZ0XCIpPi0xLHZlcnRpY2FsOlwidG9wXCI9PT10fHxcImJvdHRvbVwiPT09dCxob3Jpem9udGFsOlwibGVmdFwiPT09dHx8XCJyaWdodFwiPT09dH19LHRvcDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5oZWFkZXIub2Zmc2V0fSxyaWdodDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5yaWdodC5vZmZzZXR9LGJvdHRvbTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxheW91dC5mb290ZXIub2Zmc2V0fSxsZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF5b3V0LmxlZnQub2Zmc2V0fSxjb21wdXRlZFN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5hdHRhY2gsZT1bXSxpPXRoaXMuJHEuaTE4bi5ydGw/LTE6MTt0LnRvcCYmdGhpcy50b3A/ZS5wdXNoKFwidHJhbnNsYXRlWShcIit0aGlzLnRvcCtcInB4KVwiKTp0LmJvdHRvbSYmdGhpcy5ib3R0b20mJmUucHVzaChcInRyYW5zbGF0ZVkoXCIrLXRoaXMuYm90dG9tK1wicHgpXCIpLHQubGVmdCYmdGhpcy5sZWZ0P2UucHVzaChcInRyYW5zbGF0ZVgoXCIraSp0aGlzLmxlZnQrXCJweClcIik6dC5yaWdodCYmdGhpcy5yaWdodCYmZS5wdXNoKFwidHJhbnNsYXRlWChcIistaSp0aGlzLnJpZ2h0K1wicHgpXCIpO3ZhciBzPWUubGVuZ3RoP3t0cmFuc2Zvcm06ZS5qb2luKFwiIFwiKX06e307cmV0dXJuIHRoaXMub2Zmc2V0JiYocy5tYXJnaW49dGhpcy5vZmZzZXRbMV0rXCJweCBcIit0aGlzLm9mZnNldFswXStcInB4XCIpLHQudmVydGljYWw/KHRoaXMubGVmdCYmKHNbdGhpcy4kcS5pMThuLnJ0bD9cInJpZ2h0XCI6XCJsZWZ0XCJdPXRoaXMubGVmdCtcInB4XCIpLHRoaXMucmlnaHQmJihzW3RoaXMuJHEuaTE4bi5ydGw/XCJsZWZ0XCI6XCJyaWdodFwiXT10aGlzLnJpZ2h0K1wicHhcIikpOnQuaG9yaXpvbnRhbCYmKHRoaXMudG9wJiYocy50b3A9dGhpcy50b3ArXCJweFwiKSx0aGlzLmJvdHRvbSYmKHMuYm90dG9tPXRoaXMuYm90dG9tK1wicHhcIikpLHN9LGNsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm5bXCJmaXhlZC1cIit0aGlzLnBvc2l0aW9uLFwicS1wYWdlLXN0aWNreS1cIisodGhpcy5leHBhbmQ/XCJleHBhbmRcIjpcInNocmlua1wiKV19fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXBhZ2Utc3RpY2t5IHEtbGF5b3V0LXRyYW5zaXRpb24gcm93IGZsZXgtY2VudGVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLHN0eWxlOnRoaXMuY29tcHV0ZWRTdHlsZX0sdGhpcy5leHBhbmQ/dGhpcy4kc2xvdHMuZGVmYXVsdDpbdChcInNwYW5cIix0aGlzLiRzbG90cy5kZWZhdWx0KV0pfX0sUUxpc3RIZWFkZXI9e25hbWU6XCJRTGlzdEhlYWRlclwiLHByb3BzOntpbnNldDpCb29sZWFufSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLWxpc3QtaGVhZGVyXCIsY2xhc3M6e1wicS1saXN0LWhlYWRlci1pbnNldFwiOnRoaXMuaW5zZXR9fSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFNb2RhbExheW91dD17bmFtZTpcIlFNb2RhbExheW91dFwiLGluamVjdDp7X19xbW9kYWw6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUU1vZGFsTGF5b3V0IG5lZWRzIHRvIGJlIGNoaWxkIG9mIFFNb2RhbFwiKX19fSxwcm9wczp7aGVhZGVyU3R5bGU6W1N0cmluZyxPYmplY3QsQXJyYXldLGhlYWRlckNsYXNzOltTdHJpbmcsT2JqZWN0LEFycmF5XSxjb250ZW50U3R5bGU6W1N0cmluZyxPYmplY3QsQXJyYXldLGNvbnRlbnRDbGFzczpbU3RyaW5nLE9iamVjdCxBcnJheV0sZm9vdGVyU3R5bGU6W1N0cmluZyxPYmplY3QsQXJyYXldLGZvb3RlckNsYXNzOltTdHJpbmcsT2JqZWN0LEFycmF5XX0sd2F0Y2g6e19fcW1vZGFsOmZ1bmN0aW9uKHQsZSl7ZSYmZS51bnJlZ2lzdGVyKHRoaXMpLHQmJnQucmVnaXN0ZXIodGhpcyl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5fX3Ftb2RhbCYmdGhpcy5fX3Ftb2RhbC5yZWdpc3Rlcih0aGlzKX0sYmVmb3JlRGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX19xbW9kYWwmJnRoaXMuX19xbW9kYWwudW5yZWdpc3Rlcih0aGlzKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybih0aGlzLiRzbG90cy5oZWFkZXJ8fHRoaXMuJHNsb3RzLm5hdmlnYXRpb24pJiZlLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbGF5b3V0LWhlYWRlclwiLHN0eWxlOnRoaXMuaGVhZGVyU3R5bGUsY2xhc3M6dGhpcy5oZWFkZXJDbGFzc30sW3RoaXMuJHNsb3RzLmhlYWRlcix0aGlzLiRzbG90cy5uYXZpZ2F0aW9uXSkpLGUucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1tb2RhbC1sYXlvdXQtY29udGVudCBjb2wgc2Nyb2xsXCIsc3R5bGU6dGhpcy5jb250ZW50U3R5bGUsY2xhc3M6dGhpcy5jb250ZW50Q2xhc3N9LHRoaXMuJHNsb3RzLmRlZmF1bHQpKSx0aGlzLiRzbG90cy5mb290ZXImJmUucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1sYXlvdXQtZm9vdGVyXCIsc3R5bGU6dGhpcy5mb290ZXJTdHlsZSxjbGFzczp0aGlzLmZvb3RlckNsYXNzfSxbdGhpcy4kc2xvdHMuZm9vdGVyLG51bGxdKSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbW9kYWwtbGF5b3V0IGNvbCBjb2x1bW4gbm8td3JhcFwifSxlKX19LFFOb1Nzcj17bmFtZTpcIlFOb1NzclwiLG1peGluczpbQ2FuUmVuZGVyTWl4aW5dLHByb3BzOnt0YWc6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJkaXZcIn0scGxhY2Vob2xkZXI6U3RyaW5nfSxyZW5kZXI6ZnVuY3Rpb24odCl7aWYodGhpcy5jYW5SZW5kZXIpe3ZhciBlPXRoaXMuJHNsb3RzLmRlZmF1bHQ7cmV0dXJuIGUmJmUubGVuZ3RoPjE/dCh0aGlzLnRhZyxlKTplP2VbMF06bnVsbH1pZih0aGlzLiRzbG90cy5wbGFjZWhvbGRlcil7dmFyIGk9dGhpcy4kc2xvdHMucGxhY2Vob2xkZXI7cmV0dXJuIGkmJmkubGVuZ3RoPjE/dCh0aGlzLnRhZyx7c3RhdGljQ2xhc3M6XCJxLW5vLXNzci1wbGFjZWhvbGRlclwifSxpKTppP2lbMF06bnVsbH1pZih0aGlzLnBsYWNlaG9sZGVyKXJldHVybiB0KHRoaXMudGFnLHtzdGF0aWNDbGFzczpcInEtbm8tc3NyLXBsYWNlaG9sZGVyXCJ9LFt0aGlzLnBsYWNlaG9sZGVyXSl9fSxRUGFnaW5hdGlvbj17bmFtZTpcIlFQYWdpbmF0aW9uXCIscHJvcHM6e3ZhbHVlOnt0eXBlOk51bWJlcixyZXF1aXJlZDohMH0sbWluOnt0eXBlOk51bWJlcixkZWZhdWx0OjF9LG1heDp7dHlwZTpOdW1iZXIscmVxdWlyZWQ6ITB9LGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSx0ZXh0Q29sb3I6U3RyaW5nLHNpemU6U3RyaW5nLGRpc2FibGU6Qm9vbGVhbixpbnB1dDpCb29sZWFuLGJvdW5kYXJ5TGlua3M6e3R5cGU6Qm9vbGVhbixkZWZhdWx0Om51bGx9LGJvdW5kYXJ5TnVtYmVyczp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6bnVsbH0sZGlyZWN0aW9uTGlua3M6e3R5cGU6Qm9vbGVhbixkZWZhdWx0Om51bGx9LGVsbGlwc2VzOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDpudWxsfSxtYXhQYWdlczp7dHlwZTpOdW1iZXIsZGVmYXVsdDowLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4hKHQ8MCl8fChjb25zb2xlLmVycm9yKFwibWF4UGFnZXMgc2hvdWxkIG5vdCBiZSBuZWdhdGl2ZVwiKSwhMSl9fX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntuZXdQYWdlOm51bGx9fSx3YXRjaDp7bWluOmZ1bmN0aW9uKHQpe3RoaXMubW9kZWw9dGhpcy52YWx1ZX0sbWF4OmZ1bmN0aW9uKHQpe3RoaXMubW9kZWw9dGhpcy52YWx1ZX19LGNvbXB1dGVkOnttb2RlbDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKCF0aGlzLmRpc2FibGUmJnQmJiFpc05hTih0KSl7dmFyIGk9YmV0d2VlbihwYXJzZUludCh0LDEwKSx0aGlzLm1pbix0aGlzLm1heCk7dGhpcy4kZW1pdChcImlucHV0XCIsaSksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtKU09OLnN0cmluZ2lmeShpKSE9PUpTT04uc3RyaW5naWZ5KGUudmFsdWUpJiZlLiRlbWl0KFwiY2hhbmdlXCIsaSl9KX19fSxpbnB1dFBsYWNlaG9sZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW9kZWwrXCIgLyBcIit0aGlzLm1heH0sX19ib3VuZGFyeUxpbmtzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19nZXRCb29sKHRoaXMuYm91bmRhcnlMaW5rcyx0aGlzLmlucHV0KX0sX19ib3VuZGFyeU51bWJlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX2dldEJvb2wodGhpcy5ib3VuZGFyeU51bWJlcnMsIXRoaXMuaW5wdXQpfSxfX2RpcmVjdGlvbkxpbmtzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19nZXRCb29sKHRoaXMuZGlyZWN0aW9uTGlua3MsdGhpcy5pbnB1dCl9LF9fZWxsaXBzZXM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fX2dldEJvb2wodGhpcy5lbGxpcHNlcywhdGhpcy5pbnB1dCl9LGljb25zOmZ1bmN0aW9uKCl7dmFyIHQ9W3RoaXMuJHEuaWNvbi5wYWdpbmF0aW9uLmZpcnN0LHRoaXMuJHEuaWNvbi5wYWdpbmF0aW9uLnByZXYsdGhpcy4kcS5pY29uLnBhZ2luYXRpb24ubmV4dCx0aGlzLiRxLmljb24ucGFnaW5hdGlvbi5sYXN0XTtyZXR1cm4gdGhpcy4kcS5pMThuLnJ0bD90LnJldmVyc2UoKTp0fX0sbWV0aG9kczp7c2V0OmZ1bmN0aW9uKHQpe3RoaXMubW9kZWw9dH0sc2V0QnlPZmZzZXQ6ZnVuY3Rpb24odCl7dGhpcy5tb2RlbD10aGlzLm1vZGVsK3R9LF9fdXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5tb2RlbD10aGlzLm5ld1BhZ2UsdGhpcy5uZXdQYWdlPW51bGx9LF9fZ2V0Qm9vbDpmdW5jdGlvbih0LGUpe3JldHVyblshMCwhMV0uaW5jbHVkZXModCk/dDplfSxfX2dldEJ0bjpmdW5jdGlvbih0LGUsaSl7cmV0dXJuIGUucHJvcHM9T2JqZWN0LmFzc2lnbih7Y29sb3I6dGhpcy5jb2xvcixmbGF0OiEwLHNpemU6dGhpcy5zaXplfSxpKSx0KFFCdG4sZSl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPVtdLHM9W10sbj1bXTtpZih0aGlzLl9fYm91bmRhcnlMaW5rcyYmKGkucHVzaCh0aGlzLl9fZ2V0QnRuKHQse2tleTpcImJsc1wiLG9uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBlLnNldChlLm1pbil9fX0se2Rpc2FibGU6dGhpcy5kaXNhYmxlfHx0aGlzLnZhbHVlPD10aGlzLm1pbixpY29uOnRoaXMuaWNvbnNbMF19KSkscy51bnNoaWZ0KHRoaXMuX19nZXRCdG4odCx7a2V5OlwiYmxlXCIsb246e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KGUubWF4KX19fSx7ZGlzYWJsZTp0aGlzLmRpc2FibGV8fHRoaXMudmFsdWU+PXRoaXMubWF4LGljb246dGhpcy5pY29uc1szXX0pKSksdGhpcy5fX2RpcmVjdGlvbkxpbmtzJiYoaS5wdXNoKHRoaXMuX19nZXRCdG4odCx7a2V5OlwiYmRwXCIsb246e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0QnlPZmZzZXQoLTEpfX19LHtkaXNhYmxlOnRoaXMuZGlzYWJsZXx8dGhpcy52YWx1ZTw9dGhpcy5taW4saWNvbjp0aGlzLmljb25zWzFdfSkpLHMudW5zaGlmdCh0aGlzLl9fZ2V0QnRuKHQse2tleTpcImJkblwiLG9uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBlLnNldEJ5T2Zmc2V0KDEpfX19LHtkaXNhYmxlOnRoaXMuZGlzYWJsZXx8dGhpcy52YWx1ZT49dGhpcy5tYXgsaWNvbjp0aGlzLmljb25zWzJdfSkpKSx0aGlzLmlucHV0KW4ucHVzaCh0KFFJbnB1dCx7c3RhdGljQ2xhc3M6XCJpbmxpbmUgbm8tcGFkZGluZ1wiLHN0eWxlOnt3aWR0aDp0aGlzLmlucHV0UGxhY2Vob2xkZXIubGVuZ3RoK1wicmVtXCJ9LHByb3BzOnt0eXBlOlwibnVtYmVyXCIsdmFsdWU6dGhpcy5uZXdQYWdlLG5vTnVtYmVyVG9nZ2xlOiEwLG1pbjp0aGlzLm1pbixtYXg6dGhpcy5tYXgsY29sb3I6dGhpcy5jb2xvcixwbGFjZWhvbGRlcjp0aGlzLmlucHV0UGxhY2Vob2xkZXIsZGlzYWJsZTp0aGlzLmRpc2FibGUsaGlkZVVuZGVybGluZTohMH0sb246e2lucHV0OmZ1bmN0aW9uKHQpe3JldHVybiBlLm5ld1BhZ2U9dH0sa2V5ZG93bjpmdW5jdGlvbih0KXtyZXR1cm4gMTM9PT1nZXRFdmVudEtleSh0KSYmZS5fX3VwZGF0ZSgpfSxibHVyOmZ1bmN0aW9uKCl7cmV0dXJuIGUuX191cGRhdGUoKX19fSkpO2Vsc2V7dmFyIG89TWF0aC5tYXgodGhpcy5tYXhQYWdlcywxKyh0aGlzLl9fZWxsaXBzZXM/MjowKSsodGhpcy5fX2JvdW5kYXJ5TnVtYmVycz8yOjApKSxyPXRoaXMubWluLGE9dGhpcy5tYXgsbD0hMSxjPSExLGg9ITEsdT0hMTt0aGlzLm1heFBhZ2VzJiZvPHRoaXMubWF4LXRoaXMubWluKzEmJihvPTErMipNYXRoLmZsb29yKG8vMikscj1NYXRoLm1heCh0aGlzLm1pbixNYXRoLm1pbih0aGlzLm1heC1vKzEsdGhpcy52YWx1ZS1NYXRoLmZsb29yKG8vMikpKSxhPU1hdGgubWluKHRoaXMubWF4LHIrby0xKSx0aGlzLl9fYm91bmRhcnlOdW1iZXJzJiYoaD0hMCxyKz0xKSx0aGlzLl9fZWxsaXBzZXMmJnI+dGhpcy5taW4rKHRoaXMuX19ib3VuZGFyeU51bWJlcnM/MTowKSYmKGw9ITAscis9MSksdGhpcy5fX2JvdW5kYXJ5TnVtYmVycyYmKHU9ITAsYS09MSksdGhpcy5fX2VsbGlwc2VzJiZhPHRoaXMubWF4LSh0aGlzLl9fYm91bmRhcnlOdW1iZXJzPzE6MCkmJihjPSEwLGEtPTEpKTt2YXIgZD17bWluV2lkdGg6TWF0aC5tYXgoMixTdHJpbmcodGhpcy5tYXgpLmxlbmd0aCkrXCJlbVwifTtpZihoKXt2YXIgcD10aGlzLm1pbj09PXRoaXMudmFsdWU7aS5wdXNoKHRoaXMuX19nZXRCdG4odCx7a2V5OlwiYm5zXCIsc3R5bGU6ZCxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoZS5taW4pfX19LHtkaXNhYmxlOnRoaXMuZGlzYWJsZSxmbGF0OiFwLHRleHRDb2xvcjpwP3RoaXMudGV4dENvbG9yOm51bGwsbGFiZWw6dGhpcy5taW4sbm9SaXBwbGU6ITB9KSl9aWYodSl7dmFyIGY9dGhpcy5tYXg9PT10aGlzLnZhbHVlO3MudW5zaGlmdCh0aGlzLl9fZ2V0QnRuKHQse2tleTpcImJuZVwiLHN0eWxlOmQsb246e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KGUubWF4KX19fSx7ZGlzYWJsZTp0aGlzLmRpc2FibGUsZmxhdDohZix0ZXh0Q29sb3I6Zj90aGlzLnRleHRDb2xvcjpudWxsLGxhYmVsOnRoaXMubWF4LG5vUmlwcGxlOiEwfSkpfWwmJmkucHVzaCh0aGlzLl9fZ2V0QnRuKHQse2tleTpcImJlc1wiLHN0eWxlOmQsb246e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KHItMSl9fX0se2Rpc2FibGU6dGhpcy5kaXNhYmxlLGxhYmVsOlwi4oCmXCJ9KSksYyYmcy51bnNoaWZ0KHRoaXMuX19nZXRCdG4odCx7a2V5OlwiYmVlXCIsc3R5bGU6ZCxvbjp7Y2xpY2s6ZnVuY3Rpb24oKXtyZXR1cm4gZS5zZXQoYSsxKX19fSx7ZGlzYWJsZTp0aGlzLmRpc2FibGUsbGFiZWw6XCLigKZcIn0pKTtmb3IodmFyIG09ZnVuY3Rpb24oaSl7dmFyIHM9aT09PWUudmFsdWU7bi5wdXNoKGUuX19nZXRCdG4odCx7a2V5OlwiYnBnXCIraSxzdHlsZTpkLG9uOntjbGljazpmdW5jdGlvbigpe3JldHVybiBlLnNldChpKX19fSx7ZGlzYWJsZTplLmRpc2FibGUsZmxhdDohcyx0ZXh0Q29sb3I6cz9lLnRleHRDb2xvcjpudWxsLGxhYmVsOmksbm9SaXBwbGU6ITB9KSl9LGc9cjtnPD1hO2crKyltKGcpfXJldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1wYWdpbmF0aW9uIHJvdyBuby13cmFwIGl0ZW1zLWNlbnRlclwiLGNsYXNzOntkaXNhYmxlZDp0aGlzLmRpc2FibGV9fSxbaSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicm93IGp1c3RpZnktY2VudGVyXCJ9LFtuXSksc10pfX0sUVBhcmFsbGF4PXtuYW1lOlwiUVBhcmFsbGF4XCIscHJvcHM6e3NyYzpTdHJpbmcsaGVpZ2h0Ont0eXBlOk51bWJlcixkZWZhdWx0OjUwMH0sc3BlZWQ6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MSx2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTAmJnQ8PTF9fX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzY3JvbGxpbmc6ITF9fSx3YXRjaDp7aGVpZ2h0OmZ1bmN0aW9uKCl7dGhpcy5fX3VwZGF0ZVBvcygpfX0sbWV0aG9kczp7X19vblJlc2l6ZTpmdW5jdGlvbigpe3RoaXMuc2Nyb2xsVGFyZ2V0JiYodGhpcy5tZWRpYUhlaWdodD10aGlzLm1lZGlhLm5hdHVyYWxIZWlnaHR8fGhlaWdodCh0aGlzLm1lZGlhKSx0aGlzLl9fdXBkYXRlUG9zKCkpfSxfX3VwZGF0ZVBvczpmdW5jdGlvbigpe3ZhciB0LGUsaSxzO2lmKHRoaXMuc2Nyb2xsVGFyZ2V0PT09d2luZG93Pyh0PTAsaT1lPXdpbmRvdy5pbm5lckhlaWdodCk6aT0odD1vZmZzZXQodGhpcy5zY3JvbGxUYXJnZXQpLnRvcCkrKGU9aGVpZ2h0KHRoaXMuc2Nyb2xsVGFyZ2V0KSksKHM9b2Zmc2V0KHRoaXMuJGVsKS50b3ApK3RoaXMuaGVpZ2h0PnQmJnM8aSl7dmFyIG49KGktcykvKHRoaXMuaGVpZ2h0K2UpO3RoaXMuX19zZXRQb3MoKHRoaXMubWVkaWFIZWlnaHQtdGhpcy5oZWlnaHQpKm4qdGhpcy5zcGVlZCl9fSxfX3NldFBvczpmdW5jdGlvbih0KXt0aGlzLm1lZGlhLnN0eWxlLnRyYW5zZm9ybT1cInRyYW5zbGF0ZTNEKC01MCUsXCIrdCtcInB4LCAwKVwifX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1wYXJhbGxheFwiLHN0eWxlOntoZWlnaHQ6dGhpcy5oZWlnaHQrXCJweFwifX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXBhcmFsbGF4LW1lZGlhIGFic29sdXRlLWZ1bGxcIn0sW3RoaXMuJHNsb3RzLm1lZGlhfHx0KFwiaW1nXCIse3JlZjpcIm1lZGlhXCIsYXR0cnM6e3NyYzp0aGlzLnNyY319KV0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXBhcmFsbGF4LXRleHQgYWJzb2x1dGUtZnVsbCBjb2x1bW4gZmxleC1jZW50ZXIgbm8tcG9pbnRlci1ldmVudHNcIn0sdGhpcy4kc2xvdHMuZGVmYXVsdCldKX0sYmVmb3JlTW91bnQ6ZnVuY3Rpb24oKXt0aGlzLl9fc2V0UG9zPWZyYW1lRGVib3VuY2UodGhpcy5fX3NldFBvcyl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7dC5tZWRpYT10LiRzbG90cy5tZWRpYT90LiRzbG90cy5tZWRpYVswXS5lbG06dC4kcmVmcy5tZWRpYSx0Lm1lZGlhLm9ubG9hZD10Lm1lZGlhLm9ubG9hZHN0YXJ0PXQuX19vblJlc2l6ZSx0LnNjcm9sbFRhcmdldD1nZXRTY3JvbGxUYXJnZXQodC4kZWwpLHQucmVzaXplSGFuZGxlcj1kZWJvdW5jZSh0Ll9fb25SZXNpemUsNTApLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsdC5yZXNpemVIYW5kbGVyLGxpc3Rlbk9wdHMucGFzc2l2ZSksdC5zY3JvbGxUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLHQuX191cGRhdGVQb3MsbGlzdGVuT3B0cy5wYXNzaXZlKSx0Ll9fb25SZXNpemUoKX0pfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0aGlzLnJlc2l6ZUhhbmRsZXIsbGlzdGVuT3B0cy5wYXNzaXZlKSx0aGlzLnNjcm9sbFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsdGhpcy5fX3VwZGF0ZVBvcyxsaXN0ZW5PcHRzLnBhc3NpdmUpLHRoaXMubWVkaWEub25sb2FkPXRoaXMubWVkaWEub25sb2Fkc3RhcnQ9bnVsbH19LFFQb3B1cEVkaXQ9e25hbWU6XCJRUG9wdXBFZGl0XCIscHJvcHM6e3ZhbHVlOnt9LHBlcnNpc3RlbnQ6Qm9vbGVhbixrZWVwT25TY3JlZW46e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfSx0aXRsZTpTdHJpbmcsYnV0dG9uczpCb29sZWFuLGxhYmVsU2V0OlN0cmluZyxsYWJlbENhbmNlbDpTdHJpbmcsY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LHZhbGlkYXRlOnt0eXBlOkZ1bmN0aW9uLGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LGRpc2FibGU6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybntpbml0aWFsVmFsdWU6XCJcIn19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0LiRyZWZzLnBvcG92ZXIucmVwb3NpdGlvbigpfSl9fSxtZXRob2RzOntjYW5jZWw6ZnVuY3Rpb24oKXt0aGlzLl9faGFzQ2hhbmdlZCgpJiYodGhpcy4kZW1pdChcImNhbmNlbFwiLHRoaXMudmFsdWUsdGhpcy5pbml0aWFsVmFsdWUpLHRoaXMuJGVtaXQoXCJpbnB1dFwiLHRoaXMuaW5pdGlhbFZhbHVlKSksdGhpcy4kbmV4dFRpY2sodGhpcy5fX2Nsb3NlKX0sc2V0OmZ1bmN0aW9uKCl7aWYodGhpcy5fX2hhc0NoYW5nZWQoKSl7aWYoIXRoaXMudmFsaWRhdGUodGhpcy52YWx1ZSkpcmV0dXJuO3RoaXMuJGVtaXQoXCJzYXZlXCIsdGhpcy52YWx1ZSx0aGlzLmluaXRpYWxWYWx1ZSl9dGhpcy5fX2Nsb3NlKCl9LF9faGFzQ2hhbmdlZDpmdW5jdGlvbigpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnZhbHVlKSE9PUpTT04uc3RyaW5naWZ5KHRoaXMuaW5pdGlhbFZhbHVlKX0sX19jbG9zZTpmdW5jdGlvbigpe3RoaXMudmFsaWRhdGVkPSEwLHRoaXMuJHJlZnMucG9wb3Zlci5oaWRlKCl9LF9fZ2V0Q29udGVudDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLiRzbG90cy50aXRsZXx8dGhpcy50aXRsZTtyZXR1cm5bZSYmdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGl0bGUgcS1tdC1zbSBxLW1iLXNtXCJ9LFtlXSl8fHZvaWQgMF0uY29uY2F0KHRoaXMuJHNsb3RzLmRlZmF1bHQpLmNvbmNhdChbdGhpcy5idXR0b25zJiZ0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicm93IGp1c3RpZnktY2VudGVyIG5vLXdyYXAgcS1tdC1zbVwifSxbdChRQnRuLHtwcm9wczp7ZmxhdDohMCxjb2xvcjp0aGlzLmNvbG9yLGxhYmVsOnRoaXMubGFiZWxDYW5jZWx8fHRoaXMuJHEuaTE4bi5sYWJlbC5jYW5jZWx9LG9uOntjbGljazp0aGlzLmNhbmNlbH19KSx0KFFCdG4se3N0YXRpY0NsYXNzOlwicS1tbC1zbVwiLHByb3BzOntmbGF0OiEwLGNvbG9yOnRoaXMuY29sb3IsbGFiZWw6dGhpcy5sYWJlbFNldHx8dGhpcy4kcS5pMThuLmxhYmVsLnNldH0sb246e2NsaWNrOnRoaXMuc2V0fX0pXSl8fHZvaWQgMF0pfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoUVBvcG92ZXIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1lZGl0IHEtcHgtbWQgcS1weS1zbVwiLHJlZjpcInBvcG92ZXJcIixwcm9wczp7Y292ZXI6ITAscGVyc2lzdGVudDp0aGlzLnBlcnNpc3RlbnQsa2VlcE9uU2NyZWVuOnRoaXMua2VlcE9uU2NyZWVuLGRpc2FibGU6dGhpcy5kaXNhYmxlfSxvbjp7c2hvdzpmdW5jdGlvbigpe3ZhciB0PWUuJGVsLnF1ZXJ5U2VsZWN0b3IoXCIucS1pbnB1dC10YXJnZXQ6bm90KC5xLWlucHV0LXNoYWRvdylcIil8fGUuJGVsLnF1ZXJ5U2VsZWN0b3IoXCJpbnB1dFwiKXx8ZS4kZWwucXVlcnlTZWxlY3RvcihcInRleHRhcmVhXCIpO3QmJnQuZm9jdXMoKSxlLiRlbWl0KFwic2hvd1wiKSxlLmluaXRpYWxWYWx1ZT1jbG9uZShlLnZhbHVlKSxlLnZhbGlkYXRlZD0hMX0sXCJlc2NhcGUta2V5XCI6ZnVuY3Rpb24oKXtlLnZhbGlkYXRlZD0hMCxlLiRlbWl0KFwiY2FuY2VsXCIsZS52YWx1ZSxlLmluaXRpYWxWYWx1ZSksZS4kZW1pdChcImlucHV0XCIsZS5pbml0aWFsVmFsdWUpfSxoaWRlOmZ1bmN0aW9uKCl7ZS52YWxpZGF0ZWR8fChlLl9faGFzQ2hhbmdlZCgpJiYoZS52YWxpZGF0ZShlLnZhbHVlKT9lLiRlbWl0KFwic2F2ZVwiLGUudmFsdWUsZS5pbml0aWFsVmFsdWUpOihlLiRlbWl0KFwiY2FuY2VsXCIsZS52YWx1ZSxlLmluaXRpYWxWYWx1ZSksZS4kZW1pdChcImlucHV0XCIsZS5pbml0aWFsVmFsdWUpKSksZS4kZW1pdChcImhpZGVcIikpfX0sbmF0aXZlT246e2tleWRvd246ZnVuY3Rpb24odCl7MTM9PT1nZXRFdmVudEtleSh0KSYmKGUuYnV0dG9ucz9lLnNldCgpOmUuJHJlZnMucG9wb3Zlci5oaWRlKCkpfX19LHRoaXMuX19nZXRDb250ZW50KHQpKX19O2Z1bmN0aW9uIHdpZHRoJDEodCl7cmV0dXJue3dpZHRoOnQrXCIlXCJ9fXZhciBRUHJvZ3Jlc3M9e25hbWU6XCJRUHJvZ3Jlc3NcIixwcm9wczp7cGVyY2VudGFnZTp7dHlwZTpOdW1iZXIsZGVmYXVsdDowfSxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sc3RyaXBlOkJvb2xlYW4sYW5pbWF0ZTpCb29sZWFuLGluZGV0ZXJtaW5hdGU6Qm9vbGVhbixidWZmZXI6TnVtYmVyLGhlaWdodDp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIjRweFwifX0sY29tcHV0ZWQ6e21vZGVsOmZ1bmN0aW9uKCl7cmV0dXJuIGJldHdlZW4odGhpcy5wZXJjZW50YWdlLDAsMTAwKX0sYnVmZmVyTW9kZWw6ZnVuY3Rpb24oKXtyZXR1cm4gYmV0d2Vlbih0aGlzLmJ1ZmZlcnx8MCwwLDEwMC10aGlzLm1vZGVsKX0sYnVmZmVyU3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm4gd2lkdGgkMSh0aGlzLmJ1ZmZlck1vZGVsKX0sdHJhY2tTdHlsZTpmdW5jdGlvbigpe3JldHVybiB3aWR0aCQxKHRoaXMuYnVmZmVyPzEwMC10aGlzLmJ1ZmZlcjoxMDApfSxjb21wdXRlZENsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuXCJ0ZXh0LVwiK3RoaXMuY29sb3J9LGNvbXB1dGVkU3R5bGU6ZnVuY3Rpb24oKXtyZXR1cm57aGVpZ2h0OnRoaXMuaGVpZ2h0fX0sbW9kZWxDbGFzczpmdW5jdGlvbigpe3JldHVybnthbmltYXRlOnRoaXMuYW5pbWF0ZSxzdHJpcGU6dGhpcy5zdHJpcGUsaW5kZXRlcm1pbmF0ZTp0aGlzLmluZGV0ZXJtaW5hdGV9fSxtb2RlbFN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJuIHdpZHRoJDEodGhpcy5tb2RlbCl9fSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXByb2dyZXNzXCIsc3R5bGU6dGhpcy5jb21wdXRlZFN0eWxlLGNsYXNzOnRoaXMuY29tcHV0ZWRDbGFzc30sW3RoaXMuYnVmZmVyJiYhdGhpcy5pbmRldGVybWluYXRlP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXByb2dyZXNzLWJ1ZmZlclwiLHN0eWxlOnRoaXMuYnVmZmVyU3R5bGV9KTpudWxsLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXByb2dyZXNzLXRyYWNrXCIsc3R5bGU6dGhpcy50cmFja1N0eWxlfSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtcHJvZ3Jlc3MtbW9kZWxcIixzdHlsZTp0aGlzLm1vZGVsU3R5bGUsY2xhc3M6dGhpcy5tb2RlbENsYXNzfSldKX19LGhlaWdodCQxPS02NSxRUHVsbFRvUmVmcmVzaD17bmFtZTpcIlFQdWxsVG9SZWZyZXNoXCIsZGlyZWN0aXZlczp7VG91Y2hQYW46VG91Y2hQYW59LHByb3BzOntoYW5kbGVyOnt0eXBlOkZ1bmN0aW9uLHJlcXVpcmVkOiEwfSxjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sZGlzdGFuY2U6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MzV9LHB1bGxNZXNzYWdlOlN0cmluZyxyZWxlYXNlTWVzc2FnZTpTdHJpbmcscmVmcmVzaE1lc3NhZ2U6U3RyaW5nLHJlZnJlc2hJY29uOlN0cmluZyxpbmxpbmU6Qm9vbGVhbixkaXNhYmxlOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57c3RhdGU6XCJwdWxsXCIscHVsbFBvc2l0aW9uOmhlaWdodCQxLGFuaW1hdGluZzohMSxwdWxsaW5nOiExLHNjcm9sbGluZzohMX19LHdhdGNoOntpbmxpbmU6ZnVuY3Rpb24odCl7dGhpcy5zZXRTY3JvbGxDb250YWluZXIodCl9fSxjb21wdXRlZDp7bWVzc2FnZTpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLnN0YXRlKXtjYXNlXCJwdWxsZWRcIjpyZXR1cm4gdGhpcy5yZWxlYXNlTWVzc2FnZXx8dGhpcy4kcS5pMThuLnB1bGxUb1JlZnJlc2gucmVsZWFzZTtjYXNlXCJyZWZyZXNoaW5nXCI6cmV0dXJuIHRoaXMucmVmcmVzaE1lc3NhZ2V8fHRoaXMuJHEuaTE4bi5wdWxsVG9SZWZyZXNoLnJlZnJlc2g7Y2FzZVwicHVsbFwiOmRlZmF1bHQ6cmV0dXJuIHRoaXMucHVsbE1lc3NhZ2V8fHRoaXMuJHEuaTE4bi5wdWxsVG9SZWZyZXNoLnB1bGx9fSxzdHlsZTpmdW5jdGlvbigpe3JldHVybnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGVZKFwiK3RoaXMucHVsbFBvc2l0aW9uK1wicHgpXCIsbWFyZ2luQm90dG9tOmhlaWdodCQxK1wicHhcIn19LG1lc3NhZ2VDbGFzczpmdW5jdGlvbigpe3JldHVyblwidGV4dC1cIit0aGlzLmNvbG9yfX0sbWV0aG9kczp7X19wdWxsOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLmRpc2FibGUpe2lmKHQuaXNGaW5hbClyZXR1cm4gdGhpcy5zY3JvbGxpbmc9ITEsdGhpcy5wdWxsaW5nPSExLHZvaWQoXCJwdWxsZWRcIj09PXRoaXMuc3RhdGU/KHRoaXMuc3RhdGU9XCJyZWZyZXNoaW5nXCIsdGhpcy5fX2FuaW1hdGVUbygwKSx0aGlzLnRyaWdnZXIoKSk6XCJwdWxsXCI9PT10aGlzLnN0YXRlJiZ0aGlzLl9fYW5pbWF0ZVRvKGhlaWdodCQxKSk7aWYodGhpcy5hbmltYXRpbmd8fHRoaXMuc2Nyb2xsaW5nfHxcInJlZnJlc2hpbmdcIj09PXRoaXMuc3RhdGUpcmV0dXJuITA7dmFyIGU9Z2V0U2Nyb2xsUG9zaXRpb24odGhpcy5zY3JvbGxDb250YWluZXIpO2lmKDAhPT1lfHwwPT09ZSYmXCJkb3duXCIhPT10LmRpcmVjdGlvbilyZXR1cm4gdGhpcy5zY3JvbGxpbmc9ITAsdGhpcy5wdWxsaW5nJiYodGhpcy5wdWxsaW5nPSExLHRoaXMuc3RhdGU9XCJwdWxsXCIsdGhpcy5fX2FuaW1hdGVUbyhoZWlnaHQkMSkpLCEwO3QuZXZ0LnByZXZlbnREZWZhdWx0KCksdGhpcy5wdWxsaW5nPSEwLHRoaXMucHVsbFBvc2l0aW9uPWhlaWdodCQxK01hdGgubWF4KDAsTWF0aC5wb3codC5kaXN0YW5jZS55LC44NSkpLHRoaXMuc3RhdGU9dGhpcy5wdWxsUG9zaXRpb24+dGhpcy5kaXN0YW5jZT9cInB1bGxlZFwiOlwicHVsbFwifX0sX19hbmltYXRlVG86ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXM7IWkmJnRoaXMuYW5pbWF0aW9uSWQmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuYW5pbWF0aW5nKSx0aGlzLnB1bGxQb3NpdGlvbi09KHRoaXMucHVsbFBvc2l0aW9uLXQpLzcsdGhpcy5wdWxsUG9zaXRpb24tdD4xP3RoaXMuYW5pbWF0aW5nPXJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3MuX19hbmltYXRlVG8odCxlLCEwKX0pOnRoaXMuYW5pbWF0aW5nPXJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3MucHVsbFBvc2l0aW9uPXQscy5hbmltYXRpbmc9ITEsZSYmZSgpfSl9LHRyaWdnZXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuaGFuZGxlcihmdW5jdGlvbigpe3QuX19hbmltYXRlVG8oaGVpZ2h0JDEsZnVuY3Rpb24oKXt0LnN0YXRlPVwicHVsbFwifSl9KX0sc2V0U2Nyb2xsQ29udGFpbmVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtlLnNjcm9sbENvbnRhaW5lcj10P2UuJGVsLnBhcmVudE5vZGU6Z2V0U2Nyb2xsVGFyZ2V0KGUuJGVsKX0pfX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMuc2V0U2Nyb2xsQ29udGFpbmVyKHRoaXMuaW5saW5lKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicHVsbC10by1yZWZyZXNoIG92ZXJmbG93LWhpZGRlbi15XCJ9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicHVsbC10by1yZWZyZXNoLWNvbnRhaW5lclwiLHN0eWxlOnRoaXMuc3R5bGUsZGlyZWN0aXZlczp0aGlzLmRpc2FibGU/bnVsbDpbe25hbWU6XCJ0b3VjaC1wYW5cIixtb2RpZmllcnM6e3ZlcnRpY2FsOiEwLG1pZ2h0UHJldmVudDohMH0sdmFsdWU6dGhpcy5fX3B1bGx9XX0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJwdWxsLXRvLXJlZnJlc2gtbWVzc2FnZSByb3cgZmxleC1jZW50ZXJcIixjbGFzczp0aGlzLm1lc3NhZ2VDbGFzc30sW3QoUUljb24se2NsYXNzOntcInJvdGF0ZS0xODBcIjpcInB1bGxlZFwiPT09dGhpcy5zdGF0ZX0scHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLnB1bGxUb1JlZnJlc2guYXJyb3d9LGRpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHZhbHVlOlwicmVmcmVzaGluZ1wiIT09dGhpcy5zdGF0ZX1dfSksdChRSWNvbix7c3RhdGljQ2xhc3M6XCJhbmltYXRlLXNwaW5cIixwcm9wczp7bmFtZTp0aGlzLnJlZnJlc2hJY29ufHx0aGlzLiRxLmljb24ucHVsbFRvUmVmcmVzaC5yZWZyZXNofSxkaXJlY3RpdmVzOlt7bmFtZTpcInNob3dcIix2YWx1ZTpcInJlZnJlc2hpbmdcIj09PXRoaXMuc3RhdGV9XX0pLFwiIFwiK3RoaXMubWVzc2FnZV0pLHRoaXMuJHNsb3RzLmRlZmF1bHRdKV0pfX0sZHJhZ1R5cGU9e01JTjowLFJBTkdFOjEsTUFYOjJ9LFFSYW5nZT17bmFtZTpcIlFSYW5nZVwiLG1peGluczpbU2xpZGVyTWl4aW5dLHByb3BzOnt2YWx1ZTp7dHlwZTpPYmplY3QsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybnttaW46MCxtYXg6MH19LHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4gdC5oYXNPd25Qcm9wZXJ0eShcIm1pblwiKSYmdC5oYXNPd25Qcm9wZXJ0eShcIm1heFwiKX19LGRyYWdSYW5nZTpCb29sZWFuLGRyYWdPbmx5UmFuZ2U6Qm9vbGVhbixsZWZ0TGFiZWxDb2xvcjpTdHJpbmcsbGVmdExhYmVsVmFsdWU6U3RyaW5nLHJpZ2h0TGFiZWxDb2xvcjpTdHJpbmcscmlnaHRMYWJlbFZhbHVlOlN0cmluZ30sZGF0YTpmdW5jdGlvbigpe3JldHVybnttb2RlbDpPYmplY3QuYXNzaWduKHt9LHRoaXMudmFsdWUpLGRyYWdnaW5nOiExLGN1cnJlbnRNaW5QZXJjZW50YWdlOih0aGlzLnZhbHVlLm1pbi10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKSxjdXJyZW50TWF4UGVyY2VudGFnZToodGhpcy52YWx1ZS5tYXgtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbil9fSxjb21wdXRlZDp7cGVyY2VudGFnZU1pbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNuYXA/KHRoaXMubW9kZWwubWluLXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pOnRoaXMuY3VycmVudE1pblBlcmNlbnRhZ2V9LHBlcmNlbnRhZ2VNYXg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zbmFwPyh0aGlzLm1vZGVsLm1heC10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKTp0aGlzLmN1cnJlbnRNYXhQZXJjZW50YWdlfSxhY3RpdmVUcmFja1dpZHRoOmZ1bmN0aW9uKCl7cmV0dXJuIDEwMCoodGhpcy5wZXJjZW50YWdlTWF4LXRoaXMucGVyY2VudGFnZU1pbikrXCIlXCJ9LGxlZnREaXNwbGF5VmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5sZWZ0TGFiZWxWYWx1ZT90aGlzLmxlZnRMYWJlbFZhbHVlOnRoaXMubW9kZWwubWlufSxyaWdodERpc3BsYXlWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLnJpZ2h0TGFiZWxWYWx1ZT90aGlzLnJpZ2h0TGFiZWxWYWx1ZTp0aGlzLm1vZGVsLm1heH0sbGVmdFRvb2x0aXBDb2xvcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlZnRMYWJlbENvbG9yfHx0aGlzLmxhYmVsQ29sb3J9LHJpZ2h0VG9vbHRpcENvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmlnaHRMYWJlbENvbG9yfHx0aGlzLmxhYmVsQ29sb3J9fSx3YXRjaDp7XCJ2YWx1ZS5taW5cIjpmdW5jdGlvbih0KXt0aGlzLm1vZGVsLm1pbj10fSxcInZhbHVlLm1heFwiOmZ1bmN0aW9uKHQpe3RoaXMubW9kZWwubWF4PXR9LFwibW9kZWwubWluXCI6ZnVuY3Rpb24odCl7dGhpcy5kcmFnZ2luZ3x8KHQ+dGhpcy5tb2RlbC5tYXgmJih0PXRoaXMubW9kZWwubWF4KSx0aGlzLmN1cnJlbnRNaW5QZXJjZW50YWdlPSh0LXRoaXMubWluKS8odGhpcy5tYXgtdGhpcy5taW4pKX0sXCJtb2RlbC5tYXhcIjpmdW5jdGlvbih0KXt0aGlzLmRyYWdnaW5nfHwodDx0aGlzLm1vZGVsLm1pbiYmKHQ9dGhpcy5tb2RlbC5taW4pLHRoaXMuY3VycmVudE1heFBlcmNlbnRhZ2U9KHQtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbikpfSxtaW46ZnVuY3Rpb24odCl7dGhpcy5tb2RlbC5taW48dCYmdGhpcy5fX3VwZGF0ZSh7bWluOnR9KSx0aGlzLm1vZGVsLm1heDx0JiZ0aGlzLl9fdXBkYXRlKHttYXg6dH0pLHRoaXMuJG5leHRUaWNrKHRoaXMuX192YWxpZGF0ZVByb3BzKX0sbWF4OmZ1bmN0aW9uKHQpe3RoaXMubW9kZWwubWluPnQmJnRoaXMuX191cGRhdGUoe21pbjp0fSksdGhpcy5tb2RlbC5tYXg+dCYmdGhpcy5fX3VwZGF0ZSh7bWF4OnR9KSx0aGlzLiRuZXh0VGljayh0aGlzLl9fdmFsaWRhdGVQcm9wcyl9LHN0ZXA6ZnVuY3Rpb24oKXt0aGlzLiRuZXh0VGljayh0aGlzLl9fdmFsaWRhdGVQcm9wcyl9fSxtZXRob2RzOntfX2dldERyYWdnaW5nOmZ1bmN0aW9uKHQpe3ZhciBlLGk9dGhpcy4kcmVmcy5oYW5kbGUscz1pLm9mZnNldFdpZHRoLG49KHRoaXMuZHJhZ09ubHlSYW5nZT8tMToxKSp0aGlzLiRyZWZzLmhhbmRsZU1pbi5vZmZzZXRXaWR0aC8oMipzKSxvPXtsZWZ0OmkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdCx3aWR0aDpzLHZhbHVlTWluOnRoaXMubW9kZWwubWluLHZhbHVlTWF4OnRoaXMubW9kZWwubWF4LHBlcmNlbnRhZ2VNaW46dGhpcy5jdXJyZW50TWluUGVyY2VudGFnZSxwZXJjZW50YWdlTWF4OnRoaXMuY3VycmVudE1heFBlcmNlbnRhZ2V9LHI9Z2V0UGVyY2VudGFnZSh0LG8sdGhpcy4kcS5pMThuLnJ0bCk7cmV0dXJuIHI8dGhpcy5jdXJyZW50TWluUGVyY2VudGFnZStuP2U9ZHJhZ1R5cGUuTUlOOnI8dGhpcy5jdXJyZW50TWF4UGVyY2VudGFnZS1uP3RoaXMuZHJhZ1JhbmdlfHx0aGlzLmRyYWdPbmx5UmFuZ2U/KGU9ZHJhZ1R5cGUuUkFOR0UsT2JqZWN0LmFzc2lnbihvLHtvZmZzZXRQZXJjZW50YWdlOnIsb2Zmc2V0TW9kZWw6Z2V0TW9kZWwocix0aGlzLm1pbix0aGlzLm1heCx0aGlzLnN0ZXAsdGhpcy5jb21wdXRlZERlY2ltYWxzKSxyYW5nZVZhbHVlOm8udmFsdWVNYXgtby52YWx1ZU1pbixyYW5nZVBlcmNlbnRhZ2U6dGhpcy5jdXJyZW50TWF4UGVyY2VudGFnZS10aGlzLmN1cnJlbnRNaW5QZXJjZW50YWdlfSkpOmU9dGhpcy5jdXJyZW50TWF4UGVyY2VudGFnZS1yPHItdGhpcy5jdXJyZW50TWluUGVyY2VudGFnZT9kcmFnVHlwZS5NQVg6ZHJhZ1R5cGUuTUlOOmU9ZHJhZ1R5cGUuTUFYLCghdGhpcy5kcmFnT25seVJhbmdlfHxlPT09ZHJhZ1R5cGUuUkFOR0UpJiYoby50eXBlPWUsbyl9LF9fbW92ZTpmdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXRoaXMuZHJhZ2dpbmcpO3ZhciBpLHM9Z2V0UGVyY2VudGFnZSh0LGUsdGhpcy4kcS5pMThuLnJ0bCksbj1nZXRNb2RlbChzLHRoaXMubWluLHRoaXMubWF4LHRoaXMuc3RlcCx0aGlzLmNvbXB1dGVkRGVjaW1hbHMpO3N3aXRjaChlLnR5cGUpe2Nhc2UgZHJhZ1R5cGUuTUlOOmk9czw9ZS5wZXJjZW50YWdlTWF4P3ttaW5QOnMsbWF4UDplLnBlcmNlbnRhZ2VNYXgsbWluOm4sbWF4OmUudmFsdWVNYXh9OnttaW5QOmUucGVyY2VudGFnZU1heCxtYXhQOnMsbWluOmUudmFsdWVNYXgsbWF4Om59O2JyZWFrO2Nhc2UgZHJhZ1R5cGUuTUFYOmk9cz49ZS5wZXJjZW50YWdlTWluP3ttaW5QOmUucGVyY2VudGFnZU1pbixtYXhQOnMsbWluOmUudmFsdWVNaW4sbWF4Om59OnttaW5QOnMsbWF4UDplLnBlcmNlbnRhZ2VNaW4sbWluOm4sbWF4OmUudmFsdWVNaW59O2JyZWFrO2Nhc2UgZHJhZ1R5cGUuUkFOR0U6dmFyIG89cy1lLm9mZnNldFBlcmNlbnRhZ2Uscj1iZXR3ZWVuKGUucGVyY2VudGFnZU1pbitvLDAsMS1lLnJhbmdlUGVyY2VudGFnZSksYT1uLWUub2Zmc2V0TW9kZWwsbD1iZXR3ZWVuKGUudmFsdWVNaW4rYSx0aGlzLm1pbix0aGlzLm1heC1lLnJhbmdlVmFsdWUpO2k9e21pblA6cixtYXhQOnIrZS5yYW5nZVBlcmNlbnRhZ2UsbWluOnBhcnNlRmxvYXQobC50b0ZpeGVkKHRoaXMuY29tcHV0ZWREZWNpbWFscykpLG1heDpwYXJzZUZsb2F0KChsK2UucmFuZ2VWYWx1ZSkudG9GaXhlZCh0aGlzLmNvbXB1dGVkRGVjaW1hbHMpKX19dGhpcy5jdXJyZW50TWluUGVyY2VudGFnZT1pLm1pblAsdGhpcy5jdXJyZW50TWF4UGVyY2VudGFnZT1pLm1heFAsdGhpcy5tb2RlbD17bWluOmkubWluLG1heDppLm1heH19LF9fZW5kOmZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9dGhpcy5kcmFnZ2luZyksdGhpcy5fX21vdmUodCxlKSx0aGlzLmN1cnJlbnRNaW5QZXJjZW50YWdlPSh0aGlzLm1vZGVsLm1pbi10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKSx0aGlzLmN1cnJlbnRNYXhQZXJjZW50YWdlPSh0aGlzLm1vZGVsLm1heC10aGlzLm1pbikvKHRoaXMubWF4LXRoaXMubWluKX0sX19vbktleURvd246ZnVuY3Rpb24odCxlKXt2YXIgaT10LmtleUNvZGU7aWYodGhpcy5lZGl0YWJsZSYmWzM3LDQwLDM5LDM4XS5pbmNsdWRlcyhpKSl7c3RvcEFuZFByZXZlbnQodCk7dmFyIHM9dGhpcy5jb21wdXRlZERlY2ltYWxzLG49dC5jdHJsS2V5PzEwKnRoaXMuY29tcHV0ZWRTdGVwOnRoaXMuY29tcHV0ZWRTdGVwLG89WzM3LDQwXS5pbmNsdWRlcyhpKT8tbjpuLHI9cz9wYXJzZUZsb2F0KCh0aGlzLm1vZGVsW2VdK28pLnRvRml4ZWQocykpOnRoaXMubW9kZWxbZV0rbzt0aGlzLm1vZGVsW2VdPWJldHdlZW4ocixcIm1pblwiPT09ZT90aGlzLm1pbjp0aGlzLm1vZGVsLm1pbixcIm1heFwiPT09ZT90aGlzLm1heDp0aGlzLm1vZGVsLm1heCksdGhpcy5jdXJyZW50TWluUGVyY2VudGFnZT0odGhpcy5tb2RlbC5taW4tdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbiksdGhpcy5jdXJyZW50TWF4UGVyY2VudGFnZT0odGhpcy5tb2RlbC5tYXgtdGhpcy5taW4pLyh0aGlzLm1heC10aGlzLm1pbiksdGhpcy5fX3VwZGF0ZSgpfX0sX19vbktleVVwOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dC5rZXlDb2RlO3RoaXMuZWRpdGFibGUmJlszNyw0MCwzOSwzOF0uaW5jbHVkZXMoaSkmJnRoaXMuX191cGRhdGUoITApfSxfX3ZhbGlkYXRlUHJvcHM6ZnVuY3Rpb24oKXt0aGlzLm1pbj49dGhpcy5tYXg/Y29uc29sZS5lcnJvcihcIlJhbmdlIGVycm9yOiBtaW4gPj0gbWF4XCIsdGhpcy4kZWwsdGhpcy5taW4sdGhpcy5tYXgpOm5vdERpdmlkZXMoKHRoaXMubWF4LXRoaXMubWluKS90aGlzLnN0ZXAsdGhpcy5jb21wdXRlZERlY2ltYWxzKT9jb25zb2xlLmVycm9yKFwiUmFuZ2UgZXJyb3I6IHN0ZXAgbXVzdCBiZSBhIGRpdmlzb3Igb2YgbWF4IC0gbWluXCIsdGhpcy5taW4sdGhpcy5tYXgsdGhpcy5zdGVwKTpub3REaXZpZGVzKCh0aGlzLm1vZGVsLm1pbi10aGlzLm1pbikvdGhpcy5zdGVwLHRoaXMuY29tcHV0ZWREZWNpbWFscyk/Y29uc29sZS5lcnJvcihcIlJhbmdlIGVycm9yOiBzdGVwIG11c3QgYmUgYSBkaXZpc29yIG9mIGluaXRpYWwgdmFsdWUubWluIC0gbWluXCIsdGhpcy5tb2RlbC5taW4sdGhpcy5taW4sdGhpcy5zdGVwKTpub3REaXZpZGVzKCh0aGlzLm1vZGVsLm1heC10aGlzLm1pbikvdGhpcy5zdGVwLHRoaXMuY29tcHV0ZWREZWNpbWFscykmJmNvbnNvbGUuZXJyb3IoXCJSYW5nZSBlcnJvcjogc3RlcCBtdXN0IGJlIGEgZGl2aXNvciBvZiBpbml0aWFsIHZhbHVlLm1heCAtIG1pblwiLHRoaXMubW9kZWwubWF4LHRoaXMubWF4LHRoaXMuc3RlcCl9LF9fZ2V0SGFuZGxlOmZ1bmN0aW9uKHQsZSxpLHMsbixvLHIpe3ZhciBhLGw9dGhpcztyZXR1cm4gdChcImRpdlwiLHtyZWY6XCJoYW5kbGVcIitpLHN0YXRpY0NsYXNzOlwicS1zbGlkZXItaGFuZGxlIHEtc2xpZGVyLWhhbmRsZS1cIitlLHN0eWxlOihhPXt9LGFbdGhpcy4kcS5pMThuLnJ0bD9cInJpZ2h0XCI6XCJsZWZ0XCJdPTEwMCpuK1wiJVwiLGEuYm9yZGVyUmFkaXVzPXRoaXMuc3F1YXJlP1wiMFwiOlwiNTAlXCIsYSksY2xhc3M6W3M/XCJoYW5kbGUtYXQtbWluaW11bVwiOm51bGwse2RyYWdnaW5nOnRoaXMuZHJhZ2dpbmd9XSxhdHRyczp7dGFiaW5kZXg6dGhpcy4kcS5wbGF0Zm9ybS5pcy5kZXNrdG9wP3RoaXMuZWRpdGFibGU/MDotMTp2b2lkIDB9LG9uOntrZXlkb3duOmZ1bmN0aW9uKHQpe3JldHVybiBsLl9fb25LZXlEb3duKHQsZSl9LGtleXVwOmZ1bmN0aW9uKHQpe3JldHVybiBsLl9fb25LZXlVcCh0LGUpfX19LFt0aGlzLmxhYmVsfHx0aGlzLmxhYmVsQWx3YXlzP3QoUUNoaXAse3Byb3BzOntwb2ludGluZzpcImRvd25cIixzcXVhcmU6ITAsZGVuc2U6ITAsY29sb3I6b30sc3RhdGljQ2xhc3M6XCJxLXNsaWRlci1sYWJlbCBuby1wb2ludGVyLWV2ZW50c1wiLGNsYXNzOntcImxhYmVsLWFsd2F5c1wiOnRoaXMubGFiZWxBbHdheXN9fSxbcl0pOm51bGwsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2xpZGVyLXJpbmdcIn0pXSl9LF9fZ2V0Q29udGVudDpmdW5jdGlvbih0KXt2YXIgZTtyZXR1cm5bdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2xpZGVyLXRyYWNrIGFjdGl2ZS10cmFja1wiLHN0eWxlOihlPXt9LGVbdGhpcy4kcS5pMThuLnJ0bD9cInJpZ2h0XCI6XCJsZWZ0XCJdPTEwMCp0aGlzLnBlcmNlbnRhZ2VNaW4rXCIlXCIsZS53aWR0aD10aGlzLmFjdGl2ZVRyYWNrV2lkdGgsZSksY2xhc3M6e2RyYWdnaW5nOnRoaXMuZHJhZ2dpbmcsXCJ0cmFjay1kcmFnZ2FibGVcIjp0aGlzLmRyYWdSYW5nZXx8dGhpcy5kcmFnT25seVJhbmdlfX0pLHRoaXMuX19nZXRIYW5kbGUodCxcIm1pblwiLFwiTWluXCIsIXRoaXMuZmlsbEhhbmRsZUFsd2F5cyYmdGhpcy5tb2RlbC5taW49PT10aGlzLm1pbix0aGlzLnBlcmNlbnRhZ2VNaW4sdGhpcy5sZWZ0VG9vbHRpcENvbG9yLHRoaXMubGVmdERpc3BsYXlWYWx1ZSksdGhpcy5fX2dldEhhbmRsZSh0LFwibWF4XCIsXCJNYXhcIiwhMSx0aGlzLnBlcmNlbnRhZ2VNYXgsdGhpcy5yaWdodFRvb2x0aXBDb2xvcix0aGlzLnJpZ2h0RGlzcGxheVZhbHVlKV19fX0sUVJhdGluZz17bmFtZTpcIlFSYXRpbmdcIixwcm9wczp7dmFsdWU6TnVtYmVyLG1heDp7dHlwZTpOdW1iZXIsZGVmYXVsdDo1fSxpY29uOlN0cmluZyxjb2xvcjpTdHJpbmcsc2l6ZTpTdHJpbmcscmVhZG9ubHk6Qm9vbGVhbixkaXNhYmxlOkJvb2xlYW59LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57bW91c2VNb2RlbDowfX0sY29tcHV0ZWQ6e21vZGVsOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy4kZW1pdChcImlucHV0XCIsdCksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtKU09OLnN0cmluZ2lmeSh0KSE9PUpTT04uc3RyaW5naWZ5KGUudmFsdWUpJiZlLiRlbWl0KFwiY2hhbmdlXCIsdCl9KX19LGVkaXRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMucmVhZG9ubHkmJiF0aGlzLmRpc2FibGV9LGNsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtyZXR1cm4gdGhpcy5kaXNhYmxlJiZ0LnB1c2goXCJkaXNhYmxlZFwiKSx0aGlzLmVkaXRhYmxlJiZ0LnB1c2goXCJlZGl0YWJsZVwiKSx0aGlzLmNvbG9yJiZ0LnB1c2goXCJ0ZXh0LVwiK3RoaXMuY29sb3IpLHR9fSxtZXRob2RzOntzZXQ6ZnVuY3Rpb24odCl7aWYodGhpcy5lZGl0YWJsZSl7dmFyIGU9YmV0d2VlbihwYXJzZUludCh0LDEwKSwxLHRoaXMubWF4KTt0aGlzLm1vZGVsPXRoaXMubW9kZWw9PT1lPzA6ZSx0aGlzLm1vdXNlTW9kZWw9MH19LF9fc2V0SG92ZXJWYWx1ZTpmdW5jdGlvbih0KXt0aGlzLmVkaXRhYmxlJiYodGhpcy5tb3VzZU1vZGVsPXQpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLGk9W10scz10aGlzLmVkaXRhYmxlPzA6LTEsbj1mdW5jdGlvbihuKXtpLnB1c2godChcInNwYW5cIix7a2V5Om4scmVmOlwicnRcIituLGF0dHJzOnt0YWJpbmRleDpzfSxvbjp7a2V5ZG93bjpmdW5jdGlvbih0KXtzd2l0Y2goZ2V0RXZlbnRLZXkodCkpe2Nhc2UgMTM6Y2FzZSAzMjpyZXR1cm4gZS5zZXQobiksc3RvcEFuZFByZXZlbnQodCk7Y2FzZSAzNzpjYXNlIDQwOnJldHVybiBlLiRyZWZzW1wicnRcIisobi0xKV0mJmUuJHJlZnNbXCJydFwiKyhuLTEpXS5mb2N1cygpLHN0b3BBbmRQcmV2ZW50KHQpO2Nhc2UgMzk6Y2FzZSAzODpyZXR1cm4gZS4kcmVmc1tcInJ0XCIrKG4rMSldJiZlLiRyZWZzW1wicnRcIisobisxKV0uZm9jdXMoKSxzdG9wQW5kUHJldmVudCh0KX19fX0sW3QoUUljb24se3Byb3BzOntuYW1lOmUuaWNvbnx8ZS4kcS5pY29uLnJhdGluZy5pY29ufSxjbGFzczp7YWN0aXZlOiFlLm1vdXNlTW9kZWwmJmUubW9kZWw+PW58fGUubW91c2VNb2RlbCYmZS5tb3VzZU1vZGVsPj1uLGV4c2VsZWN0ZWQ6ZS5tb3VzZU1vZGVsJiZlLm1vZGVsPj1uJiZlLm1vdXNlTW9kZWw8bixob3ZlcmVkOmUubW91c2VNb2RlbD09PW59LGF0dHJzOnt0YWJpbmRleDotMX0sbmF0aXZlT246e2NsaWNrOmZ1bmN0aW9uKCl7cmV0dXJuIGUuc2V0KG4pfSxtb3VzZW92ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gZS5fX3NldEhvdmVyVmFsdWUobil9LG1vdXNlb3V0OmZ1bmN0aW9uKCl7ZS5tb3VzZU1vZGVsPTB9LGZvY3VzOmZ1bmN0aW9uKCl7cmV0dXJuIGUuX19zZXRIb3ZlclZhbHVlKG4pfSxibHVyOmZ1bmN0aW9uKCl7ZS5tb3VzZU1vZGVsPTB9fX0pXSkpfSxvPTE7bzw9dGhpcy5tYXg7bysrKW4obyk7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXJhdGluZyByb3cgaW5saW5lIGl0ZW1zLWNlbnRlclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxzdHlsZTp0aGlzLnNpemU/XCJmb250LXNpemU6IFwiK3RoaXMuc2l6ZTpcIlwifSxpKX19LFFTY3JvbGxBcmVhPXtuYW1lOlwiUVNjcm9sbEFyZWFcIixkaXJlY3RpdmVzOntUb3VjaFBhbjpUb3VjaFBhbn0scHJvcHM6e3RodW1iU3R5bGU6e3R5cGU6T2JqZWN0LGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm57fX19LGNvbnRlbnRTdHlsZTp7dHlwZTpPYmplY3QsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybnt9fX0sY29udGVudEFjdGl2ZVN0eWxlOnt0eXBlOk9iamVjdCxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJue319fSxkZWxheTp7dHlwZTpOdW1iZXIsZGVmYXVsdDoxZTN9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2FjdGl2ZTohMSxob3ZlcjohMSxjb250YWluZXJIZWlnaHQ6MCxzY3JvbGxQb3NpdGlvbjowLHNjcm9sbEhlaWdodDowfX0sY29tcHV0ZWQ6e3RodW1iSGlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2Nyb2xsSGVpZ2h0PD10aGlzLmNvbnRhaW5lckhlaWdodHx8IXRoaXMuYWN0aXZlJiYhdGhpcy5ob3Zlcn0sdGh1bWJIZWlnaHQ6ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yb3VuZChiZXR3ZWVuKHRoaXMuY29udGFpbmVySGVpZ2h0KnRoaXMuY29udGFpbmVySGVpZ2h0L3RoaXMuc2Nyb2xsSGVpZ2h0LDUwLHRoaXMuY29udGFpbmVySGVpZ2h0KSl9LHN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zY3JvbGxQZXJjZW50YWdlKih0aGlzLmNvbnRhaW5lckhlaWdodC10aGlzLnRodW1iSGVpZ2h0KTtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSx0aGlzLnRodW1iU3R5bGUse3RvcDp0K1wicHhcIixoZWlnaHQ6dGhpcy50aHVtYkhlaWdodCtcInB4XCJ9KX0sbWFpblN0eWxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGh1bWJIaWRkZW4/dGhpcy5jb250ZW50U3R5bGU6dGhpcy5jb250ZW50QWN0aXZlU3R5bGV9LHNjcm9sbFBlcmNlbnRhZ2U6ZnVuY3Rpb24oKXt2YXIgdD1iZXR3ZWVuKHRoaXMuc2Nyb2xsUG9zaXRpb24vKHRoaXMuc2Nyb2xsSGVpZ2h0LXRoaXMuY29udGFpbmVySGVpZ2h0KSwwLDEpO3JldHVybiBNYXRoLnJvdW5kKDFlNCp0KS8xZTR9fSxtZXRob2RzOntzZXRTY3JvbGxQb3NpdGlvbjpmdW5jdGlvbih0LGUpe3NldFNjcm9sbFBvc2l0aW9uKHRoaXMuJHJlZnMudGFyZ2V0LHQsZSl9LF9fdXBkYXRlQ29udGFpbmVyOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaGVpZ2h0O3RoaXMuY29udGFpbmVySGVpZ2h0IT09ZSYmKHRoaXMuY29udGFpbmVySGVpZ2h0PWUsdGhpcy5fX3NldEFjdGl2ZSghMCwhMCkpfSxfX3VwZGF0ZVNjcm9sbDpmdW5jdGlvbih0KXt2YXIgZT10LnBvc2l0aW9uO3RoaXMuc2Nyb2xsUG9zaXRpb24hPT1lJiYodGhpcy5zY3JvbGxQb3NpdGlvbj1lLHRoaXMuX19zZXRBY3RpdmUoITAsITApKX0sX191cGRhdGVTY3JvbGxIZWlnaHQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5oZWlnaHQ7dGhpcy5zY3JvbGxIZWlnaHQhPT1lJiYodGhpcy5zY3JvbGxIZWlnaHQ9ZSx0aGlzLl9fc2V0QWN0aXZlKCEwLCEwKSl9LF9fcGFuVGh1bWI6ZnVuY3Rpb24odCl7dC5pc0ZpcnN0JiYodGhpcy5yZWZQb3M9dGhpcy5zY3JvbGxQb3NpdGlvbix0aGlzLl9fc2V0QWN0aXZlKCEwLCEwKSxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJub24tc2VsZWN0YWJsZVwiKSxkb2N1bWVudC5zZWxlY3Rpb24/ZG9jdW1lbnQuc2VsZWN0aW9uLmVtcHR5KCk6d2luZG93LmdldFNlbGVjdGlvbiYmd2luZG93LmdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpKSx0LmlzRmluYWwmJih0aGlzLl9fc2V0QWN0aXZlKCExKSxkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoXCJub24tc2VsZWN0YWJsZVwiKSk7dmFyIGU9KHRoaXMuc2Nyb2xsSGVpZ2h0LXRoaXMuY29udGFpbmVySGVpZ2h0KS8odGhpcy5jb250YWluZXJIZWlnaHQtdGhpcy50aHVtYkhlaWdodCk7dGhpcy4kcmVmcy50YXJnZXQuc2Nyb2xsVG9wPXRoaXMucmVmUG9zKyhcImRvd25cIj09PXQuZGlyZWN0aW9uPzE6LTEpKnQuZGlzdGFuY2UueSplfSxfX3BhbkNvbnRhaW5lcjpmdW5jdGlvbih0KXt0LmlzRmlyc3QmJih0aGlzLnJlZlBvcz10aGlzLnNjcm9sbFBvc2l0aW9uLHRoaXMuX19zZXRBY3RpdmUoITAsITApKSx0LmlzRmluYWwmJnRoaXMuX19zZXRBY3RpdmUoITEpO3ZhciBlPXRoaXMucmVmUG9zKyhcImRvd25cIj09PXQuZGlyZWN0aW9uPy0xOjEpKnQuZGlzdGFuY2UueTt0aGlzLiRyZWZzLnRhcmdldC5zY3JvbGxUb3A9ZSxlPjAmJmUrdGhpcy5jb250YWluZXJIZWlnaHQ8dGhpcy5zY3JvbGxIZWlnaHQmJnQuZXZ0LnByZXZlbnREZWZhdWx0KCl9LF9fbW91c2VXaGVlbDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLiRyZWZzLnRhcmdldDtlLnNjcm9sbFRvcCs9Z2V0TW91c2VXaGVlbERpc3RhbmNlKHQpLnksZS5zY3JvbGxUb3A+MCYmZS5zY3JvbGxUb3ArdGhpcy5jb250YWluZXJIZWlnaHQ8dGhpcy5zY3JvbGxIZWlnaHQmJnQucHJldmVudERlZmF1bHQoKX0sX19zZXRBY3RpdmU6ZnVuY3Rpb24odCxlKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksdCE9PXRoaXMuYWN0aXZlP3Q/KHRoaXMuYWN0aXZlPSEwLGUmJnRoaXMuX19zdGFydFRpbWVyKCkpOnRoaXMuYWN0aXZlPSExOnQmJnRoaXMudGltZXImJnRoaXMuX19zdGFydFRpbWVyKCl9LF9fc3RhcnRUaW1lcjpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5hY3RpdmU9ITEsdC50aW1lcj1udWxsfSx0aGlzLmRlbGF5KX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLiRxLnBsYXRmb3JtLmlzLmRlc2t0b3A/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2Nyb2xsYXJlYSByZWxhdGl2ZS1wb3NpdGlvblwiLG9uOnttb3VzZWVudGVyOmZ1bmN0aW9uKCl7ZS5ob3Zlcj0hMH0sbW91c2VsZWF2ZTpmdW5jdGlvbigpe2UuaG92ZXI9ITF9fX0sW3QoXCJkaXZcIix7cmVmOlwidGFyZ2V0XCIsc3RhdGljQ2xhc3M6XCJzY3JvbGwgcmVsYXRpdmUtcG9zaXRpb24gb3ZlcmZsb3ctaGlkZGVuIGZpdFwiLG9uOnt3aGVlbDp0aGlzLl9fbW91c2VXaGVlbH0sZGlyZWN0aXZlczpbe25hbWU6XCJ0b3VjaC1wYW5cIixtb2RpZmllcnM6e3ZlcnRpY2FsOiEwLG5vTW91c2U6ITAsbWlnaHRQcmV2ZW50OiEwfSx2YWx1ZTp0aGlzLl9fcGFuQ29udGFpbmVyfV19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiYWJzb2x1dGUgZnVsbC13aWR0aFwiLHN0eWxlOnRoaXMubWFpblN0eWxlfSxbdChRUmVzaXplT2JzZXJ2YWJsZSx7b246e3Jlc2l6ZTp0aGlzLl9fdXBkYXRlU2Nyb2xsSGVpZ2h0fX0pLHRoaXMuJHNsb3RzLmRlZmF1bHRdKSx0KFFTY3JvbGxPYnNlcnZhYmxlLHtvbjp7c2Nyb2xsOnRoaXMuX191cGRhdGVTY3JvbGx9fSldKSx0KFFSZXNpemVPYnNlcnZhYmxlLHtvbjp7cmVzaXplOnRoaXMuX191cGRhdGVDb250YWluZXJ9fSksdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc2Nyb2xsYXJlYS10aHVtYiBhYnNvbHV0ZS1yaWdodFwiLHN0eWxlOnRoaXMuc3R5bGUsY2xhc3M6e1wiaW52aXNpYmxlLXRodW1iXCI6dGhpcy50aHVtYkhpZGRlbn0sZGlyZWN0aXZlczpbe25hbWU6XCJ0b3VjaC1wYW5cIixtb2RpZmllcnM6e3ZlcnRpY2FsOiEwLHByZXZlbnQ6ITB9LHZhbHVlOnRoaXMuX19wYW5UaHVtYn1dfSldKTp0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zY3JvbGwtYXJlYSByZWxhdGl2ZS1wb3NpdGlvblwiLHN0eWxlOnRoaXMuY29udGVudFN0eWxlfSxbdChcImRpdlwiLHtyZWY6XCJ0YXJnZXRcIixzdGF0aWNDbGFzczpcInNjcm9sbCByZWxhdGl2ZS1wb3NpdGlvbiBmaXRcIn0sdGhpcy4kc2xvdHMuZGVmYXVsdCldKX19LFFTZWFyY2g9e25hbWU6XCJRU2VhcmNoXCIsbWl4aW5zOltGcmFtZU1peGluLElucHV0TWl4aW5dLHByb3BzOnt2YWx1ZTp7cmVxdWlyZWQ6ITB9LHR5cGU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJzZWFyY2hcIn0sZGVib3VuY2U6e3R5cGU6TnVtYmVyLGRlZmF1bHQ6MzAwfSxpY29uOlN0cmluZyxub0ljb246Qm9vbGVhbix1cHBlckNhc2U6Qm9vbGVhbixsb3dlckNhc2U6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybnttb2RlbDp0aGlzLnZhbHVlLGNoaWxkRGVib3VuY2U6ITF9fSxwcm92aWRlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPWZ1bmN0aW9uKGUpe3QubW9kZWwhPT1lJiYodC5tb2RlbD1lKX07cmV0dXJue19faW5wdXREZWJvdW5jZTp7c2V0OmUsc2V0TmF2OmUsc2V0Q2hpbGREZWJvdW5jZTpmdW5jdGlvbihlKXt0LmNoaWxkRGVib3VuY2U9ZX19fX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMubW9kZWw9dH0sbW9kZWw6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy52YWx1ZSE9PXQmJih0fHwwPT09dHx8KHRoaXMubW9kZWw9XCJudW1iZXJcIj09PXRoaXMudHlwZT9udWxsOlwiXCIpLHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2UuJGVtaXQoXCJpbnB1dFwiLGUubW9kZWwpfSx0aGlzLmRlYm91bmNlVmFsdWUpKX19LGNvbXB1dGVkOntkZWJvdW5jZVZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2hpbGREZWJvdW5jZT8wOnRoaXMuZGVib3VuY2V9LGNvbXB1dGVkQ2xlYXJWYWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzTnVtYmVyJiYwPT09dGhpcy5jbGVhclZhbHVlP3RoaXMuY2xlYXJWYWx1ZTp0aGlzLmNsZWFyVmFsdWV8fChcIm51bWJlclwiPT09dGhpcy50eXBlP251bGw6XCJcIil9LGNvbnRyb2xCZWZvcmU6ZnVuY3Rpb24oKXt2YXIgdD0odGhpcy5iZWZvcmV8fFtdKS5zbGljZSgpO3JldHVybiB0aGlzLm5vSWNvbnx8dC51bnNoaWZ0KHtpY29uOnRoaXMuaWNvbnx8dGhpcy4kcS5pY29uLnNlYXJjaC5pY29uLGhhbmRsZXI6dGhpcy5mb2N1c30pLHR9LGNvbnRyb2xBZnRlcjpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLmFmdGVyfHxbXSkuc2xpY2UoKTtyZXR1cm4gdGhpcy5pc0NsZWFyYWJsZSYmdC5wdXNoKHtpY29uOnRoaXMuJHEuaWNvbi5zZWFyY2hbXCJjbGVhclwiKyh0aGlzLmlzSW52ZXJ0ZWQ/XCJJbnZlcnRlZFwiOlwiXCIpXSxoYW5kbGVyOnRoaXMuY2xlYXJ9KSx0fX0sbWV0aG9kczp7Y2xlYXI6ZnVuY3Rpb24odCl7dGhpcy4kcmVmcy5pbnB1dC5jbGVhcih0KX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0KFFJbnB1dCx7cmVmOlwiaW5wdXRcIixzdGF0aWNDbGFzczpcInEtc2VhcmNoXCIscHJvcHM6e3ZhbHVlOnRoaXMubW9kZWwsdHlwZTp0aGlzLnR5cGUsYXV0b2ZvY3VzOnRoaXMuYXV0b2ZvY3VzLHBsYWNlaG9sZGVyOnRoaXMucGxhY2Vob2xkZXJ8fHRoaXMuJHEuaTE4bi5sYWJlbC5zZWFyY2gsZGlzYWJsZTp0aGlzLmRpc2FibGUscmVhZG9ubHk6dGhpcy5yZWFkb25seSxlcnJvcjp0aGlzLmVycm9yLHdhcm5pbmc6dGhpcy53YXJuaW5nLGFsaWduOnRoaXMuYWxpZ24sbm9QYXJlbnRGaWVsZDp0aGlzLm5vUGFyZW50RmllbGQsZmxvYXRMYWJlbDp0aGlzLmZsb2F0TGFiZWwsc3RhY2tMYWJlbDp0aGlzLnN0YWNrTGFiZWwscHJlZml4OnRoaXMucHJlZml4LHN1ZmZpeDp0aGlzLnN1ZmZpeCxpbnZlcnRlZDp0aGlzLmludmVydGVkLGludmVydGVkTGlnaHQ6dGhpcy5pbnZlcnRlZExpZ2h0LGRhcms6dGhpcy5kYXJrLGhpZGVVbmRlcmxpbmU6dGhpcy5oaWRlVW5kZXJsaW5lLGNvbG9yOnRoaXMuY29sb3Iscm93czp0aGlzLnJvd3MsYmVmb3JlOnRoaXMuY29udHJvbEJlZm9yZSxhZnRlcjp0aGlzLmNvbnRyb2xBZnRlcixjbGVhclZhbHVlOnRoaXMuY2xlYXJWYWx1ZSx1cHBlckNhc2U6dGhpcy51cHBlckNhc2UsbG93ZXJDYXNlOnRoaXMubG93ZXJDYXNlfSxhdHRyczp0aGlzLiRhdHRycyxvbjp7aW5wdXQ6ZnVuY3Rpb24odCl7ZS5tb2RlbD10fSxmb2N1czp0aGlzLl9fb25Gb2N1cyxibHVyOnRoaXMuX19vbkJsdXIsa2V5dXA6dGhpcy5fX29uS2V5dXAsa2V5ZG93bjp0aGlzLl9fb25LZXlkb3duLGNsaWNrOnRoaXMuX19vbkNsaWNrLHBhc3RlOnRoaXMuX19vblBhc3RlLGNsZWFyOmZ1bmN0aW9uKHQpe2UuJGVtaXQoXCJjbGVhclwiLHQpLGUuX19lbWl0KCl9fX0sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fTtmdW5jdGlvbiBkZWZhdWx0RmlsdGVyRm4odCxlKXtyZXR1cm4gZS5sYWJlbC50b0xvd2VyQ2FzZSgpLmluZGV4T2YodCk+LTF9dmFyIFFTZWxlY3Q9e25hbWU6XCJRU2VsZWN0XCIsbWl4aW5zOltGcmFtZU1peGluLEtleWJvYXJkU2VsZWN0aW9uTWl4aW5dLHByb3BzOntmaWx0ZXI6W0Z1bmN0aW9uLEJvb2xlYW5dLGZpbHRlclBsYWNlaG9sZGVyOlN0cmluZyxyYWRpbzpCb29sZWFuLHBsYWNlaG9sZGVyOlN0cmluZyxzZXBhcmF0b3I6Qm9vbGVhbix2YWx1ZTp7cmVxdWlyZWQ6ITB9LG11bHRpcGxlOkJvb2xlYW4sdG9nZ2xlOkJvb2xlYW4sY2hpcHM6Qm9vbGVhbixvcHRpb25zOnt0eXBlOkFycmF5LHJlcXVpcmVkOiEwLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm4gdC5ldmVyeShmdW5jdGlvbih0KXtyZXR1cm5cImxhYmVsXCJpbiB0JiZcInZhbHVlXCJpbiB0fSl9fSxjaGlwc0NvbG9yOlN0cmluZyxjaGlwc0JnQ29sb3I6U3RyaW5nLGRpc3BsYXlWYWx1ZTpTdHJpbmcscG9wdXBNYXhIZWlnaHQ6U3RyaW5nLHBvcHVwQ292ZXI6e3R5cGU6Qm9vbGVhbixkZWZhdWx0OiEwfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybnttb2RlbDp0aGlzLm11bHRpcGxlJiZBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpP3RoaXMudmFsdWUuc2xpY2UoKTp0aGlzLnZhbHVlLHRlcm1zOlwiXCIsZm9jdXNlZDohMX19LHdhdGNoOnt2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLm1vZGVsPXRoaXMubXVsdGlwbGUmJkFycmF5LmlzQXJyYXkodCk/dC5zbGljZSgpOnR9LHZpc2libGVPcHRpb25zOmZ1bmN0aW9uKCl7dGhpcy5fX2tleWJvYXJkQ2FsY0luZGV4KCl9fSxjb21wdXRlZDp7b3B0TW9kZWw6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKHRoaXMubXVsdGlwbGUpcmV0dXJuIHRoaXMubW9kZWwubGVuZ3RoPjA/dGhpcy5vcHRpb25zLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5tb2RlbC5pbmNsdWRlcyhlLnZhbHVlKX0pOnRoaXMub3B0aW9ucy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuITF9KX0sdmlzaWJsZU9wdGlvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9dGhpcy5vcHRpb25zLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LHQse2luZGV4OmV9KX0pO2lmKHRoaXMuZmlsdGVyJiZ0aGlzLnRlcm1zLmxlbmd0aCl7dmFyIGk9dGhpcy50ZXJtcy50b0xvd2VyQ2FzZSgpO2U9ZS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZmlsdGVyRm4oaSxlKX0pfXJldHVybiBlfSxrZXlib2FyZE1heEluZGV4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmlzaWJsZU9wdGlvbnMubGVuZ3RoLTF9LGZpbHRlckZuOmZ1bmN0aW9uKCl7cmV0dXJuXCJib29sZWFuXCI9PXR5cGVvZiB0aGlzLmZpbHRlcj9kZWZhdWx0RmlsdGVyRm46dGhpcy5maWx0ZXJ9LGFjdHVhbFZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0aGlzLmRpc3BsYXlWYWx1ZSlyZXR1cm4gdGhpcy5kaXNwbGF5VmFsdWU7aWYoIXRoaXMubXVsdGlwbGUpe3ZhciBlPXRoaXMub3B0aW9ucy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLnZhbHVlPT09dC5tb2RlbH0pO3JldHVybiBlP2UubGFiZWw6XCJcIn12YXIgaT10aGlzLnNlbGVjdGVkT3B0aW9ucy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQubGFiZWx9KTtyZXR1cm4gaS5sZW5ndGg/aS5qb2luKFwiLCBcIik6XCJcIn0sY29tcHV0ZWRDbGVhclZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuY2xlYXJWYWx1ZT90aGlzLm11bHRpcGxlP1tdOm51bGw6dGhpcy5jbGVhclZhbHVlfSxpc0NsZWFyYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkaXRhYmxlJiZ0aGlzLmNsZWFyYWJsZSYmSlNPTi5zdHJpbmdpZnkodGhpcy5jb21wdXRlZENsZWFyVmFsdWUpIT09SlNPTi5zdHJpbmdpZnkodGhpcy5tb2RlbCl9LHNlbGVjdGVkT3B0aW9uczpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYodGhpcy5tdWx0aXBsZSlyZXR1cm4gdGhpcy5sZW5ndGg+MD90aGlzLm9wdGlvbnMuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiB0Lm1vZGVsLmluY2x1ZGVzKGUudmFsdWUpfSk6W119LGhhc0NoaXBzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsdGlwbGUmJnRoaXMuY2hpcHMmJnRoaXMubGVuZ3RoPjB9LGxlbmd0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm11bHRpcGxlP3RoaXMubW9kZWwubGVuZ3RoOltudWxsLHZvaWQgMCxcIlwiXS5pbmNsdWRlcyh0aGlzLm1vZGVsKT8wOjF9LGFkZGl0aW9uYWxMZW5ndGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kaXNwbGF5VmFsdWUmJnRoaXMuZGlzcGxheVZhbHVlLmxlbmd0aD4wfX0sbWV0aG9kczp7dG9nZ2xlUG9wdXA6ZnVuY3Rpb24oKXt0aGlzLiRyZWZzLnBvcG92ZXImJnRoaXNbdGhpcy4kcmVmcy5wb3BvdmVyLnNob3dpbmc/XCJoaWRlXCI6XCJzaG93XCJdKCl9LHNob3c6ZnVuY3Rpb24oKXtpZih0aGlzLl9fa2V5Ym9hcmRDYWxjSW5kZXgoKSx0aGlzLiRyZWZzLnBvcG92ZXIpcmV0dXJuIHRoaXMuJHJlZnMucG9wb3Zlci5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kcmVmcy5wb3BvdmVyP3RoaXMuJHJlZnMucG9wb3Zlci5oaWRlKCk6UHJvbWlzZS5yZXNvbHZlKCl9LHJlcG9zaXRpb246ZnVuY3Rpb24oKXt2YXIgdD10aGlzLiRyZWZzLnBvcG92ZXI7dCYmdC5zaG93aW5nJiZ0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3JldHVybiB0JiZ0LnJlcG9zaXRpb24oKX0pfSxfX2tleWJvYXJkQ2FsY0luZGV4OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmtleWJvYXJkSW5kZXg9LTE7dmFyIGU9dGhpcy5tdWx0aXBsZT90aGlzLnNlbGVjdGVkT3B0aW9ucy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHQudmFsdWV9KTpbdGhpcy5tb2RlbF07dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt2YXIgaT12b2lkIDA9PT1lPy0xOk1hdGgubWF4KC0xLHQudmlzaWJsZU9wdGlvbnMuZmluZEluZGV4KGZ1bmN0aW9uKHQpe3JldHVybiBlLmluY2x1ZGVzKHQudmFsdWUpfSkpO2k+LTEmJih0LmtleWJvYXJkTW92ZURpcmVjdGlvbj0hMCxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5rZXlib2FyZE1vdmVEaXJlY3Rpb249ITF9LDUwMCksdC5fX2tleWJvYXJkU2hvdyhpKSl9KX0sX19rZXlib2FyZEN1c3RvbUtleUhhbmRsZTpmdW5jdGlvbih0LGUpe3N3aXRjaCh0KXtjYXNlIDI3OnRoaXMuJHJlZnMucG9wb3Zlci5zaG93aW5nJiZ0aGlzLmhpZGUoKTticmVhaztjYXNlIDEzOmNhc2UgMzI6dGhpcy4kcmVmcy5wb3BvdmVyLnNob3dpbmd8fHRoaXMuc2hvdygpfX0sX19rZXlib2FyZFNob3dUcmlnZ2VyOmZ1bmN0aW9uKCl7dGhpcy5zaG93KCl9LF9fa2V5Ym9hcmRTZXRTZWxlY3Rpb246ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy52aXNpYmxlT3B0aW9uc1t0XTt0aGlzLm11bHRpcGxlP3RoaXMuX190b2dnbGVNdWx0aXBsZShlLnZhbHVlLGUuZGlzYWJsZSk6dGhpcy5fX3NpbmdsZVNlbGVjdChlLnZhbHVlLGUuZGlzYWJsZSl9LF9fa2V5Ym9hcmRJc1NlbGVjdGFibGVJbmRleDpmdW5jdGlvbih0KXtyZXR1cm4gdD4tMSYmdDx0aGlzLnZpc2libGVPcHRpb25zLmxlbmd0aCYmIXRoaXMudmlzaWJsZU9wdGlvbnNbdF0uZGlzYWJsZX0sX19tb3VzZUVudGVySGFuZGxlcjpmdW5jdGlvbih0LGUpe3RoaXMua2V5Ym9hcmRNb3ZlRGlyZWN0aW9ufHwodGhpcy5rZXlib2FyZEluZGV4PWUpfSxfX29uRm9jdXM6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGV8fHRoaXMuZm9jdXNlZHx8KHRoaXMuZm9jdXNlZD0hMCx0aGlzLiRlbWl0KFwiZm9jdXNcIikpfSxfX29uU2hvdzpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZXx8KHRoaXMuX19vbkZvY3VzKCksdGhpcy5maWx0ZXImJnRoaXMuJHJlZnMuZmlsdGVyJiYodGhpcy4kcmVmcy5maWx0ZXIuZm9jdXMoKSx0aGlzLnJlcG9zaXRpb24oKSkpfSxfX29uQmx1cjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuZm9jdXNlZCYmc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7ZS4kcmVmcy5wb3BvdmVyJiZlLiRyZWZzLnBvcG92ZXIuc2hvd2luZyYmKHQ9PT1kb2N1bWVudC5ib2R5fHxlLiRyZWZzLnBvcG92ZXIuJGVsLmNvbnRhaW5zKHQpKXx8KGUuX19vbkNsb3NlKCksZS5oaWRlKCkpfSwxKX0sX19vbkNsb3NlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtKU09OLnN0cmluZ2lmeShlLm1vZGVsKSE9PUpTT04uc3RyaW5naWZ5KGUudmFsdWUpJiZlLiRlbWl0KFwiY2hhbmdlXCIsZS5tb2RlbCl9KSx0aGlzLnRlcm1zPVwiXCIsdGhpcy5mb2N1c2VkJiYodD90aGlzLiRyZWZzLmlucHV0JiZ0aGlzLiRyZWZzLmlucHV0LiRlbCYmdGhpcy4kcmVmcy5pbnB1dC4kZWwuZm9jdXMoKToodGhpcy5mb2N1c2VkPSExLHRoaXMuJGVtaXQoXCJibHVyXCIpKSl9LF9fc2luZ2xlU2VsZWN0OmZ1bmN0aW9uKHQsZSl7ZXx8KHRoaXMuX19lbWl0KHQpLHRoaXMuaGlkZSgpKX0sX190b2dnbGVNdWx0aXBsZTpmdW5jdGlvbih0LGUpe2lmKCFlKXt2YXIgaT10aGlzLm1vZGVsLHM9aS5pbmRleE9mKHQpO3M+LTE/dGhpcy4kZW1pdChcInJlbW92ZVwiLHtpbmRleDpzLHZhbHVlOmkuc3BsaWNlKHMsMSl9KToodGhpcy4kZW1pdChcImFkZFwiLHtpbmRleDppLmxlbmd0aCx2YWx1ZTp0fSksaS5wdXNoKHQpKSx0aGlzLiRlbWl0KFwiaW5wdXRcIixpKX19LF9fZW1pdDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuJGVtaXQoXCJpbnB1dFwiLHQpLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkodCkhPT1KU09OLnN0cmluZ2lmeShlLnZhbHVlKSYmZS4kZW1pdChcImNoYW5nZVwiLHQpfSl9LF9fc2V0TW9kZWw6ZnVuY3Rpb24odCxlKXt0aGlzLm1vZGVsPXR8fCh0aGlzLm11bHRpcGxlP1tdOm51bGwpLHRoaXMuJGVtaXQoXCJpbnB1dFwiLHRoaXMubW9kZWwpLCFlJiZ0aGlzLiRyZWZzLnBvcG92ZXImJnRoaXMuJHJlZnMucG9wb3Zlci5zaG93aW5nfHx0aGlzLl9fb25DbG9zZShlKX0sX19nZXRDaGlwVGV4dENvbG9yOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNoaXBzQ29sb3I/dGhpcy5jaGlwc0NvbG9yOnRoaXMuaXNJbnZlcnRlZExpZ2h0P3RoaXMuaW52ZXJ0ZWRMaWdodD90fHx0aGlzLmNvbG9yOlwid2hpdGVcIjp0aGlzLmlzSW52ZXJ0ZWQ/dHx8KHRoaXMuaW52ZXJ0ZWRMaWdodD9cImdyZXktMTBcIjp0aGlzLmNvbG9yKTp0aGlzLmRhcms/dHx8dGhpcy5jb2xvcjpcIndoaXRlXCJ9LF9fZ2V0Q2hpcEJnQ29sb3I6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2hpcHNCZ0NvbG9yP3RoaXMuY2hpcHNCZ0NvbG9yOnRoaXMuaXNJbnZlcnRlZExpZ2h0P3RoaXMuaW52ZXJ0ZWRMaWdodD9cImdyZXktMTBcIjp0fHx0aGlzLmNvbG9yOnRoaXMuaXNJbnZlcnRlZD90aGlzLmludmVydGVkTGlnaHQ/dGhpcy5jb2xvcjpcIndoaXRlXCI6dGhpcy5kYXJrP1wid2hpdGVcIjp0fHx0aGlzLmNvbG9yfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1bXTtpZih0aGlzLmhhc0NoaXBzKXt2YXIgcz10KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sIHJvdyBpdGVtcy1jZW50ZXIgcS1pbnB1dC1jaGlwc1wiLGNsYXNzOnRoaXMuYWxpZ25DbGFzc30sdGhpcy5zZWxlY3RlZE9wdGlvbnMubWFwKGZ1bmN0aW9uKGkscyl7cmV0dXJuIHQoUUNoaXAse2tleTpzLHByb3BzOntzbWFsbDohMCxjbG9zYWJsZTplLmVkaXRhYmxlJiYhaS5kaXNhYmxlLGNvbG9yOmUuX19nZXRDaGlwQmdDb2xvcihpLmNvbG9yKSx0ZXh0Q29sb3I6ZS5fX2dldENoaXBUZXh0Q29sb3IoaS5jb2xvciksaWNvbjppLmljb24saWNvblJpZ2h0OmkucmlnaHRJY29uLGF2YXRhcjppLmF2YXRhcn0sb246e2hpZGU6ZnVuY3Rpb24oKXtlLl9fdG9nZ2xlTXVsdGlwbGUoaS52YWx1ZSxlLmRpc2FibGV8fGkuZGlzYWJsZSl9fSxuYXRpdmVPbjp7Y2xpY2s6ZnVuY3Rpb24odCl7dC5zdG9wUHJvcGFnYXRpb24oKX19fSxbdChcImRpdlwiLHtkb21Qcm9wczp7aW5uZXJIVE1MOmkubGFiZWx9fSldKX0pKTtpLnB1c2gocyl9ZWxzZXt2YXIgbj10KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sIHEtaW5wdXQtdGFyZ2V0IGVsbGlwc2lzXCIsY2xhc3M6dGhpcy5mYWtlSW5wdXRDbGFzc2VzLGRvbVByb3BzOntpbm5lckhUTUw6dGhpcy5mYWtlSW5wdXRWYWx1ZX19KTtpLnB1c2gobil9cmV0dXJuIGkucHVzaCh0KFFQb3BvdmVyLHtyZWY6XCJwb3BvdmVyXCIsc3RhdGljQ2xhc3M6XCJjb2x1bW4gbm8td3JhcFwiLGNsYXNzOnRoaXMuZGFyaz9cImJnLWRhcmtcIjpudWxsLHByb3BzOntjb3Zlcjp0aGlzLnBvcHVwQ292ZXIsa2VlcE9uU2NyZWVuOiEwLGRpc2FibGU6IXRoaXMuZWRpdGFibGUsYW5jaG9yQ2xpY2s6ITEsbWF4SGVpZ2h0OnRoaXMucG9wdXBNYXhIZWlnaHR9LHNsb3Q6XCJhZnRlclwiLG9uOntzaG93OnRoaXMuX19vblNob3csaGlkZTpmdW5jdGlvbigpe2UuX19vbkNsb3NlKCEwKX19LG5hdGl2ZU9uOntrZXlkb3duOnRoaXMuX19rZXlib2FyZEhhbmRsZUtleX19LFt0aGlzLmZpbHRlciYmdChRU2VhcmNoLHtyZWY6XCJmaWx0ZXJcIixzdGF0aWNDbGFzczpcImNvbC1hdXRvXCIsc3R5bGU6XCJwYWRkaW5nOiAxMHB4O1wiLHByb3BzOnt2YWx1ZTp0aGlzLnRlcm1zLHBsYWNlaG9sZGVyOnRoaXMuZmlsdGVyUGxhY2Vob2xkZXJ8fHRoaXMuJHEuaTE4bi5sYWJlbC5maWx0ZXIsZGVib3VuY2U6MTAwLGNvbG9yOnRoaXMuY29sb3IsZGFyazp0aGlzLmRhcmssbm9QYXJlbnRGaWVsZDohMCxub0ljb246ITB9LG9uOntpbnB1dDpmdW5jdGlvbih0KXtlLnRlcm1zPXQsZS5yZXBvc2l0aW9uKCl9fX0pfHx2b2lkIDAsdGhpcy52aXNpYmxlT3B0aW9ucy5sZW5ndGgmJnQoUUxpc3Qse3N0YXRpY0NsYXNzOlwibm8tYm9yZGVyIHNjcm9sbFwiLHByb3BzOntzZXBhcmF0b3I6dGhpcy5zZXBhcmF0b3IsZGFyazp0aGlzLmRhcmt9fSx0aGlzLnZpc2libGVPcHRpb25zLm1hcChmdW5jdGlvbihpLHMpe3JldHVybiB0KFFJdGVtV3JhcHBlcix7a2V5OnMsY2xhc3M6W2kuZGlzYWJsZT9cInRleHQtZmFkZWRcIjpcImN1cnNvci1wb2ludGVyXCIscz09PWUua2V5Ym9hcmRJbmRleD9cInEtc2VsZWN0LWhpZ2hsaWdodFwiOlwiXCIsaS5kaXNhYmxlP1wiXCI6XCJjdXJzb3ItcG9pbnRlclwiLGkuY2xhc3NOYW1lfHxcIlwiXSxwcm9wczp7Y2ZnOmksc2xvdFJlcGxhY2U6ITAsYWN0aXZlOmUubXVsdGlwbGU/dm9pZCAwOmUudmFsdWU9PT1pLnZhbHVlfSxuYXRpdmVPbjp7XCIhY2xpY2tcIjpmdW5jdGlvbigpe3ZhciB0PWUubXVsdGlwbGU/XCJfX3RvZ2dsZU11bHRpcGxlXCI6XCJfX3NpbmdsZVNlbGVjdFwiO2VbdF0oaS52YWx1ZSxpLmRpc2FibGUpfSxtb3VzZWVudGVyOmZ1bmN0aW9uKHQpeyFpLmRpc2FibGUmJmUuX19tb3VzZUVudGVySGFuZGxlcih0LHMpfX19LFtlLm11bHRpcGxlP3QoZS50b2dnbGU/UVRvZ2dsZTpRQ2hlY2tib3gse3Nsb3Q6ZS50b2dnbGU/XCJyaWdodFwiOlwibGVmdFwiLHByb3BzOntrZWVwQ29sb3I6ITAsY29sb3I6aS5jb2xvcnx8ZS5jb2xvcixkYXJrOmUuZGFyayx2YWx1ZTplLm9wdE1vZGVsW2kuaW5kZXhdLGRpc2FibGU6aS5kaXNhYmxlLG5vRm9jdXM6ITB9fSk6ZS5yYWRpbyYmdChRUmFkaW8se3Nsb3Q6XCJsZWZ0XCIscHJvcHM6e2tlZXBDb2xvcjohMCxjb2xvcjppLmNvbG9yfHxlLmNvbG9yLGRhcms6ZS5kYXJrLHZhbHVlOmUudmFsdWUsdmFsOmkudmFsdWUsZGlzYWJsZTppLmRpc2FibGUsbm9Gb2N1czohMH19KXx8dm9pZCAwXSl9KSl8fHZvaWQgMF0pKSx0aGlzLmlzQ2xlYXJhYmxlJiZpLnB1c2godChRSWNvbix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uaW5wdXRbXCJjbGVhclwiKyh0aGlzLmlzSW52ZXJ0ZWQ/XCJJbnZlcnRlZFwiOlwiXCIpXX0sbmF0aXZlT246e2NsaWNrOnRoaXMuY2xlYXJ9fSkpLGkucHVzaCh0KFFJY29uLHRoaXMucmVhZG9ubHk/e3Nsb3Q6XCJhZnRlclwifTp7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2xcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24uaW5wdXQuZHJvcGRvd259fSkpLHQoUUlucHV0RnJhbWUse3JlZjpcImlucHV0XCIsc3RhdGljQ2xhc3M6XCJxLXNlbGVjdFwiLHByb3BzOntwcmVmaXg6dGhpcy5wcmVmaXgsc3VmZml4OnRoaXMuc3VmZml4LHN0YWNrTGFiZWw6dGhpcy5zdGFja0xhYmVsLGZsb2F0TGFiZWw6dGhpcy5mbG9hdExhYmVsLGVycm9yOnRoaXMuZXJyb3Isd2FybmluZzp0aGlzLndhcm5pbmcsZGlzYWJsZTp0aGlzLmRpc2FibGUscmVhZG9ubHk6dGhpcy5yZWFkb25seSxpbnZlcnRlZDp0aGlzLmludmVydGVkLGludmVydGVkTGlnaHQ6dGhpcy5pbnZlcnRlZExpZ2h0LGRhcms6dGhpcy5kYXJrLGhpZGVVbmRlcmxpbmU6dGhpcy5oaWRlVW5kZXJsaW5lLGJlZm9yZTp0aGlzLmJlZm9yZSxhZnRlcjp0aGlzLmFmdGVyLGNvbG9yOnRoaXMuY29sb3Isbm9QYXJlbnRGaWVsZDp0aGlzLm5vUGFyZW50RmllbGQsZm9jdXNlZDp0aGlzLmZvY3VzZWQsZm9jdXNhYmxlOiEwLGxlbmd0aDp0aGlzLmxlbmd0aCxhZGRpdGlvbmFsTGVuZ3RoOnRoaXMuYWRkaXRpb25hbExlbmd0aH0sbmF0aXZlT246e2NsaWNrOnRoaXMudG9nZ2xlUG9wdXAsZm9jdXM6dGhpcy5fX29uRm9jdXMsYmx1cjp0aGlzLl9fb25CbHVyLGtleWRvd246dGhpcy5fX2tleWJvYXJkSGFuZGxlS2V5fX0saSl9fSxRU3Bpbm5lckF1ZGlvPXtuYW1lOlwiUVNwaW5uZXJBdWRpb1wiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOntmaWxsOlwiY3VycmVudENvbG9yXCIsd2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCA1NSA4MFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwibWF0cml4KDEgMCAwIC0xIDAgODApXCJ9fSxbdChcInJlY3RcIix7YXR0cnM6e3dpZHRoOlwiMTBcIixoZWlnaHQ6XCIyMFwiLHJ4OlwiM1wifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiaGVpZ2h0XCIsYmVnaW46XCIwc1wiLGR1cjpcIjQuM3NcIix2YWx1ZXM6XCIyMDs0NTs1Nzs4MDs2NDszMjs2Njs0NTs2NDsyMzs2NjsxMzs2NDs1NjszNDszNDsyOzIzOzc2Ozc5OzIwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJyZWN0XCIse2F0dHJzOnt4OlwiMTVcIix3aWR0aDpcIjEwXCIsaGVpZ2h0OlwiODBcIixyeDpcIjNcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImhlaWdodFwiLGJlZ2luOlwiMHNcIixkdXI6XCIyc1wiLHZhbHVlczpcIjgwOzU1OzMzOzU7NzU7MjM7NzM7MzM7MTI7MTQ7NjA7ODBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInJlY3RcIix7YXR0cnM6e3g6XCIzMFwiLHdpZHRoOlwiMTBcIixoZWlnaHQ6XCI1MFwiLHJ4OlwiM1wifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiaGVpZ2h0XCIsYmVnaW46XCIwc1wiLGR1cjpcIjEuNHNcIix2YWx1ZXM6XCI1MDszNDs3ODsyMzs1NjsyMzszNDs3Njs4MDs1NDsyMTs1MFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwicmVjdFwiLHthdHRyczp7eDpcIjQ1XCIsd2lkdGg6XCIxMFwiLGhlaWdodDpcIjMwXCIscng6XCIzXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJoZWlnaHRcIixiZWdpbjpcIjBzXCIsZHVyOlwiMnNcIix2YWx1ZXM6XCIzMDs0NTsxMzs4MDs1Njs3Mjs0NTs3NjszNDsyMzs2NzszMFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pXSl9fSxRU3Bpbm5lckJhbGw9e25hbWU6XCJRU3Bpbm5lckJhbGxcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7c3Ryb2tlOlwiY3VycmVudENvbG9yXCIsd2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCA1NyA1N1wiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwidHJhbnNsYXRlKDEgMSlcIixcInN0cm9rZS13aWR0aFwiOlwiMlwiLGZpbGw6XCJub25lXCIsXCJmaWxsLXJ1bGVcIjpcImV2ZW5vZGRcIn19LFt0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjVcIixjeTpcIjUwXCIscjpcIjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImN5XCIsYmVnaW46XCIwc1wiLGR1cjpcIjIuMnNcIix2YWx1ZXM6XCI1MDs1OzUwOzUwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImN4XCIsYmVnaW46XCIwc1wiLGR1cjpcIjIuMnNcIix2YWx1ZXM6XCI1OzI3OzQ5OzVcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIyN1wiLGN5OlwiNVwiLHI6XCI1XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJjeVwiLGJlZ2luOlwiMHNcIixkdXI6XCIyLjJzXCIsZnJvbTpcIjVcIix0bzpcIjVcIix2YWx1ZXM6XCI1OzUwOzUwOzVcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiY3hcIixiZWdpbjpcIjBzXCIsZHVyOlwiMi4yc1wiLGZyb206XCIyN1wiLHRvOlwiMjdcIix2YWx1ZXM6XCIyNzs0OTs1OzI3XCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiNDlcIixjeTpcIjUwXCIscjpcIjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImN5XCIsYmVnaW46XCIwc1wiLGR1cjpcIjIuMnNcIix2YWx1ZXM6XCI1MDs1MDs1OzUwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImN4XCIsZnJvbTpcIjQ5XCIsdG86XCI0OVwiLGJlZ2luOlwiMHNcIixkdXI6XCIyLjJzXCIsdmFsdWVzOlwiNDk7NTsyNzs0OVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pXSl9fSxRU3Bpbm5lckJhcnM9e25hbWU6XCJRU3Bpbm5lckJhcnNcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7ZmlsbDpcImN1cnJlbnRDb2xvclwiLHdpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgMTM1IDE0MFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwicmVjdFwiLHthdHRyczp7eTpcIjEwXCIsd2lkdGg6XCIxNVwiLGhlaWdodDpcIjEyMFwiLHJ4OlwiNlwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiaGVpZ2h0XCIsYmVnaW46XCIwLjVzXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxMjA7MTEwOzEwMDs5MDs4MDs3MDs2MDs1MDs0MDsxNDA7MTIwXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInlcIixiZWdpbjpcIjAuNXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEwOzE1OzIwOzI1OzMwOzM1OzQwOzQ1OzUwOzA7MTBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInJlY3RcIix7YXR0cnM6e3g6XCIzMFwiLHk6XCIxMFwiLHdpZHRoOlwiMTVcIixoZWlnaHQ6XCIxMjBcIixyeDpcIjZcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImhlaWdodFwiLGJlZ2luOlwiMC4yNXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEyMDsxMTA7MTAwOzkwOzgwOzcwOzYwOzUwOzQwOzE0MDsxMjBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwieVwiLGJlZ2luOlwiMC4yNXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEwOzE1OzIwOzI1OzMwOzM1OzQwOzQ1OzUwOzA7MTBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInJlY3RcIix7YXR0cnM6e3g6XCI2MFwiLHdpZHRoOlwiMTVcIixoZWlnaHQ6XCIxNDBcIixyeDpcIjZcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImhlaWdodFwiLGJlZ2luOlwiMHNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEyMDsxMTA7MTAwOzkwOzgwOzcwOzYwOzUwOzQwOzE0MDsxMjBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwieVwiLGJlZ2luOlwiMHNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEwOzE1OzIwOzI1OzMwOzM1OzQwOzQ1OzUwOzA7MTBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInJlY3RcIix7YXR0cnM6e3g6XCI5MFwiLHk6XCIxMFwiLHdpZHRoOlwiMTVcIixoZWlnaHQ6XCIxMjBcIixyeDpcIjZcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImhlaWdodFwiLGJlZ2luOlwiMC4yNXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEyMDsxMTA7MTAwOzkwOzgwOzcwOzYwOzUwOzQwOzE0MDsxMjBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwieVwiLGJlZ2luOlwiMC4yNXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEwOzE1OzIwOzI1OzMwOzM1OzQwOzQ1OzUwOzA7MTBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInJlY3RcIix7YXR0cnM6e3g6XCIxMjBcIix5OlwiMTBcIix3aWR0aDpcIjE1XCIsaGVpZ2h0OlwiMTIwXCIscng6XCI2XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJoZWlnaHRcIixiZWdpbjpcIjAuNXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjEyMDsxMTA7MTAwOzkwOzgwOzcwOzYwOzUwOzQwOzE0MDsxMjBcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pLHQoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwieVwiLGJlZ2luOlwiMC41c1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTA7MTU7MjA7MjU7MzA7MzU7NDA7NDU7NTA7MDsxMFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pfX0sUVNwaW5uZXJDaXJjbGVzPXtuYW1lOlwiUVNwaW5uZXJDaXJjbGVzXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e2ZpbGw6XCJjdXJyZW50Q29sb3JcIix3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDEzNSAxMzVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNNjcuNDQ3IDU4YzUuNTIzIDAgMTAtNC40NzcgMTAtMTBzLTQuNDc3LTEwLTEwLTEwLTEwIDQuNDc3LTEwIDEwIDQuNDc3IDEwIDEwIDEwem05LjQ0OCA5LjQ0N2MwIDUuNTIzIDQuNDc3IDEwIDEwIDEwIDUuNTIyIDAgMTAtNC40NzcgMTAtMTBzLTQuNDc4LTEwLTEwLTEwYy01LjUyMyAwLTEwIDQuNDc3LTEwIDEwem0tOS40NDggOS40NDhjLTUuNTIzIDAtMTAgNC40NzctMTAgMTAgMCA1LjUyMiA0LjQ3NyAxMCAxMCAxMHMxMC00LjQ3OCAxMC0xMGMwLTUuNTIzLTQuNDc3LTEwLTEwLTEwek01OCA2Ny40NDdjMC01LjUyMy00LjQ3Ny0xMC0xMC0xMHMtMTAgNC40NzctMTAgMTAgNC40NzcgMTAgMTAgMTAgMTAtNC40NzcgMTAtMTB6XCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjAgNjcgNjdcIix0bzpcIi0zNjAgNjcgNjdcIixkdXI6XCIyLjVzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwicGF0aFwiLHthdHRyczp7ZDpcIk0yOC4xOSA0MC4zMWM2LjYyNyAwIDEyLTUuMzc0IDEyLTEyIDAtNi42MjgtNS4zNzMtMTItMTItMTItNi42MjggMC0xMiA1LjM3Mi0xMiAxMiAwIDYuNjI2IDUuMzcyIDEyIDEyIDEyem0zMC43Mi0xOS44MjVjNC42ODYgNC42ODcgMTIuMjg0IDQuNjg3IDE2Ljk3IDAgNC42ODYtNC42ODYgNC42ODYtMTIuMjg0IDAtMTYuOTctNC42ODYtNC42ODctMTIuMjg0LTQuNjg3LTE2Ljk3IDAtNC42ODcgNC42ODYtNC42ODcgMTIuMjg0IDAgMTYuOTd6bTM1Ljc0IDcuNzA1YzAgNi42MjcgNS4zNyAxMiAxMiAxMiA2LjYyNiAwIDEyLTUuMzczIDEyLTEyIDAtNi42MjgtNS4zNzQtMTItMTItMTItNi42MyAwLTEyIDUuMzcyLTEyIDEyem0xOS44MjIgMzAuNzJjLTQuNjg2IDQuNjg2LTQuNjg2IDEyLjI4NCAwIDE2Ljk3IDQuNjg3IDQuNjg2IDEyLjI4NSA0LjY4NiAxNi45NyAwIDQuNjg3LTQuNjg2IDQuNjg3LTEyLjI4NCAwLTE2Ljk3LTQuNjg1LTQuNjg3LTEyLjI4My00LjY4Ny0xNi45NyAwem0tNy43MDQgMzUuNzRjLTYuNjI3IDAtMTIgNS4zNy0xMiAxMiAwIDYuNjI2IDUuMzczIDEyIDEyIDEyczEyLTUuMzc0IDEyLTEyYzAtNi42My01LjM3My0xMi0xMi0xMnptLTMwLjcyIDE5LjgyMmMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3IDAtNC42ODYgNC42ODctNC42ODYgMTIuMjg1IDAgMTYuOTcgNC42ODYgNC42ODcgMTIuMjg0IDQuNjg3IDE2Ljk3IDAgNC42ODctNC42ODUgNC42ODctMTIuMjgzIDAtMTYuOTd6bS0zNS43NC03LjcwNGMwLTYuNjI3LTUuMzcyLTEyLTEyLTEyLTYuNjI2IDAtMTIgNS4zNzMtMTIgMTJzNS4zNzQgMTIgMTIgMTJjNi42MjggMCAxMi01LjM3MyAxMi0xMnptLTE5LjgyMy0zMC43MmM0LjY4Ny00LjY4NiA0LjY4Ny0xMi4yODQgMC0xNi45Ny00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcgMC00LjY4NyA0LjY4Ni00LjY4NyAxMi4yODQgMCAxNi45NyA0LjY4NiA0LjY4NyAxMi4yODQgNC42ODcgMTYuOTcgMHpcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJyb3RhdGVcIixmcm9tOlwiMCA2NyA2N1wiLHRvOlwiMzYwIDY3IDY3XCIsZHVyOlwiOHNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSl9fSxRU3Bpbm5lckNvbW1lbnQ9e25hbWU6XCJRU3Bpbm5lckNvbW1lbnRcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7d2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLHZpZXdCb3g6XCIwIDAgMTAwIDEwMFwiLHByZXNlcnZlQXNwZWN0UmF0aW86XCJ4TWlkWU1pZFwifX0sW3QoXCJyZWN0XCIse2F0dHJzOnt4OlwiMFwiLHk6XCIwXCIsd2lkdGg6XCIxMDBcIixoZWlnaHQ6XCIxMDBcIixmaWxsOlwibm9uZVwifX0pLHQoXCJwYXRoXCIse2F0dHJzOntkOlwiTTc4LDE5SDIyYy02LjYsMC0xMiw1LjQtMTIsMTJ2MzFjMCw2LjYsNS40LDEyLDEyLDEyaDM3LjJjMC40LDMsMS44LDUuNiwzLjcsNy42YzIuNCwyLjUsNS4xLDQuMSw5LjEsNCBjLTEuNC0yLjEtMi03LjItMi0xMC4zYzAtMC40LDAtMC44LDAtMS4zaDhjNi42LDAsMTItNS40LDEyLTEyVjMxQzkwLDI0LjQsODQuNiwxOSw3OCwxOXpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9fSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIzMFwiLGN5OlwiNDdcIixyOlwiNVwiLGZpbGw6XCIjZmZmXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJvcGFjaXR5XCIsZnJvbTpcIjBcIix0bzpcIjFcIix2YWx1ZXM6XCIwOzE7MVwiLGtleVRpbWVzOlwiMDswLjI7MVwiLGR1cjpcIjFzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjUwXCIsY3k6XCI0N1wiLHI6XCI1XCIsZmlsbDpcIiNmZmZcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcIm9wYWNpdHlcIixmcm9tOlwiMFwiLHRvOlwiMVwiLHZhbHVlczpcIjA7MDsxOzFcIixrZXlUaW1lczpcIjA7MC4yOzAuNDsxXCIsZHVyOlwiMXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiNzBcIixjeTpcIjQ3XCIscjpcIjVcIixmaWxsOlwiI2ZmZlwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwib3BhY2l0eVwiLGZyb206XCIwXCIsdG86XCIxXCIsdmFsdWVzOlwiMDswOzE7MVwiLGtleVRpbWVzOlwiMDswLjQ7MC42OzFcIixkdXI6XCIxc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKX19LFFTcGlubmVyQ3ViZT17bmFtZTpcIlFTcGlubmVyQ3ViZVwiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsdmlld0JveDpcIjAgMCAxMDAgMTAwXCIscHJlc2VydmVBc3BlY3RSYXRpbzpcInhNaWRZTWlkXCJ9fSxbdChcInJlY3RcIix7YXR0cnM6e3g6XCIwXCIseTpcIjBcIix3aWR0aDpcIjEwMFwiLGhlaWdodDpcIjEwMFwiLGZpbGw6XCJub25lXCJ9fSksdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSgyNSAyNSlcIn19LFt0KFwicmVjdFwiLHthdHRyczp7eDpcIi0yMFwiLHk6XCItMjBcIix3aWR0aDpcIjQwXCIsaGVpZ2h0OlwiNDBcIixmaWxsOlwiY3VycmVudENvbG9yXCIsb3BhY2l0eTpcIjAuOVwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInNjYWxlXCIsZnJvbTpcIjEuNVwiLHRvOlwiMVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLGJlZ2luOlwiMHNcIixkdXI6XCIxc1wiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5U3BsaW5lczpcIjAuMiAwLjggMC4yIDAuOFwiLGtleVRpbWVzOlwiMDsxXCJ9fSldKV0pLHQoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoNzUgMjUpXCJ9fSxbdChcInJlY3RcIix7YXR0cnM6e3g6XCItMjBcIix5OlwiLTIwXCIsd2lkdGg6XCI0MFwiLGhlaWdodDpcIjQwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLG9wYWNpdHk6XCIwLjhcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJzY2FsZVwiLGZyb206XCIxLjVcIix0bzpcIjFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIixiZWdpbjpcIjAuMXNcIixkdXI6XCIxc1wiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5U3BsaW5lczpcIjAuMiAwLjggMC4yIDAuOFwiLGtleVRpbWVzOlwiMDsxXCJ9fSldKV0pLHQoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMjUgNzUpXCJ9fSxbdChcInJlY3RcIix7c3RhdGljQ2xhc3M6XCJjdWJlXCIsYXR0cnM6e3g6XCItMjBcIix5OlwiLTIwXCIsd2lkdGg6XCI0MFwiLGhlaWdodDpcIjQwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLG9wYWNpdHk6XCIwLjdcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJzY2FsZVwiLGZyb206XCIxLjVcIix0bzpcIjFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIixiZWdpbjpcIjAuM3NcIixkdXI6XCIxc1wiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5U3BsaW5lczpcIjAuMiAwLjggMC4yIDAuOFwiLGtleVRpbWVzOlwiMDsxXCJ9fSldKV0pLHQoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoNzUgNzUpXCJ9fSxbdChcInJlY3RcIix7c3RhdGljQ2xhc3M6XCJjdWJlXCIsYXR0cnM6e3g6XCItMjBcIix5OlwiLTIwXCIsd2lkdGg6XCI0MFwiLGhlaWdodDpcIjQwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLG9wYWNpdHk6XCIwLjZcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJzY2FsZVwiLGZyb206XCIxLjVcIix0bzpcIjFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIixiZWdpbjpcIjAuMnNcIixkdXI6XCIxc1wiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5U3BsaW5lczpcIjAuMiAwLjggMC4yIDAuOFwiLGtleVRpbWVzOlwiMDsxXCJ9fSldKV0pXSl9fSxRU3Bpbm5lckRvdHM9e25hbWU6XCJRU3Bpbm5lckRvdHNcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7ZmlsbDpcImN1cnJlbnRDb2xvclwiLHdpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgMTIwIDMwXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMTVcIixjeTpcIjE1XCIscjpcIjE1XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJyXCIsZnJvbTpcIjE1XCIsdG86XCIxNVwiLGJlZ2luOlwiMHNcIixkdXI6XCIwLjhzXCIsdmFsdWVzOlwiMTU7OTsxNVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixmcm9tOlwiMVwiLHRvOlwiMVwiLGJlZ2luOlwiMHNcIixkdXI6XCIwLjhzXCIsdmFsdWVzOlwiMTsuNTsxXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiNjBcIixjeTpcIjE1XCIscjpcIjlcIixcImZpbGwtb3BhY2l0eVwiOlwiLjNcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInJcIixmcm9tOlwiOVwiLHRvOlwiOVwiLGJlZ2luOlwiMHNcIixkdXI6XCIwLjhzXCIsdmFsdWVzOlwiOTsxNTs5XCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGZyb206XCIuNVwiLHRvOlwiLjVcIixiZWdpbjpcIjBzXCIsZHVyOlwiMC44c1wiLHZhbHVlczpcIi41OzE7LjVcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIxMDVcIixjeTpcIjE1XCIscjpcIjE1XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJyXCIsZnJvbTpcIjE1XCIsdG86XCIxNVwiLGJlZ2luOlwiMHNcIixkdXI6XCIwLjhzXCIsdmFsdWVzOlwiMTU7OTsxNVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixmcm9tOlwiMVwiLHRvOlwiMVwiLGJlZ2luOlwiMHNcIixkdXI6XCIwLjhzXCIsdmFsdWVzOlwiMTsuNTsxXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSl9fSxRU3Bpbm5lckZhY2Vib29rPXtuYW1lOlwiUVNwaW5uZXJGYWNlYm9va1wiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDEwMCAxMDBcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIscHJlc2VydmVBc3BlY3RSYXRpbzpcInhNaWRZTWlkXCJ9fSxbdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSgyMCA1MClcIn19LFt0KFwicmVjdFwiLHthdHRyczp7eDpcIi0xMFwiLHk6XCItMzBcIix3aWR0aDpcIjIwXCIsaGVpZ2h0OlwiNjBcIixmaWxsOlwiY3VycmVudENvbG9yXCIsb3BhY2l0eTpcIjAuNlwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInNjYWxlXCIsZnJvbTpcIjJcIix0bzpcIjFcIixiZWdpbjpcIjBzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsZHVyOlwiMXNcIixjYWxjTW9kZTpcInNwbGluZVwiLGtleVNwbGluZXM6XCIwLjEgMC45IDAuNCAxXCIsa2V5VGltZXM6XCIwOzFcIix2YWx1ZXM6XCIyOzFcIn19KV0pXSksdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSg1MCA1MClcIn19LFt0KFwicmVjdFwiLHthdHRyczp7eDpcIi0xMFwiLHk6XCItMzBcIix3aWR0aDpcIjIwXCIsaGVpZ2h0OlwiNjBcIixmaWxsOlwiY3VycmVudENvbG9yXCIsb3BhY2l0eTpcIjAuOFwifX0sW3QoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInNjYWxlXCIsZnJvbTpcIjJcIix0bzpcIjFcIixiZWdpbjpcIjAuMXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIixkdXI6XCIxc1wiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5U3BsaW5lczpcIjAuMSAwLjkgMC40IDFcIixrZXlUaW1lczpcIjA7MVwiLHZhbHVlczpcIjI7MVwifX0pXSldKSx0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwidHJhbnNsYXRlKDgwIDUwKVwifX0sW3QoXCJyZWN0XCIse2F0dHJzOnt4OlwiLTEwXCIseTpcIi0zMFwiLHdpZHRoOlwiMjBcIixoZWlnaHQ6XCI2MFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIixvcGFjaXR5OlwiMC45XCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwic2NhbGVcIixmcm9tOlwiMlwiLHRvOlwiMVwiLGJlZ2luOlwiMC4yc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLGR1cjpcIjFzXCIsY2FsY01vZGU6XCJzcGxpbmVcIixrZXlTcGxpbmVzOlwiMC4xIDAuOSAwLjQgMVwiLGtleVRpbWVzOlwiMDsxXCIsdmFsdWVzOlwiMjsxXCJ9fSldKV0pXSl9fSxRU3Bpbm5lckdlYXJzPXtuYW1lOlwiUVNwaW5uZXJHZWFyc1wiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDEwMCAxMDBcIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOlwieE1pZFlNaWRcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSgtMjAsLTIwKVwifX0sW3QoXCJwYXRoXCIse2F0dHJzOntkOlwiTTc5LjksNTIuNkM4MCw1MS44LDgwLDUwLjksODAsNTBzMC0xLjgtMC4xLTIuNmwtNS4xLTAuNGMtMC4zLTIuNC0wLjktNC42LTEuOC02LjdsNC4yLTIuOWMtMC43LTEuNi0xLjYtMy4xLTIuNi00LjUgTDcwLDM1Yy0xLjQtMS45LTMuMS0zLjUtNC45LTQuOWwyLjItNC42Yy0xLjQtMS0yLjktMS45LTQuNS0yLjZMNTkuOCwyN2MtMi4xLTAuOS00LjQtMS41LTYuNy0xLjhsLTAuNC01LjFDNTEuOCwyMCw1MC45LDIwLDUwLDIwIHMtMS44LDAtMi42LDAuMWwtMC40LDUuMWMtMi40LDAuMy00LjYsMC45LTYuNywxLjhsLTIuOS00LjFjLTEuNiwwLjctMy4xLDEuNi00LjUsMi42bDIuMSw0LjZjLTEuOSwxLjQtMy41LDMuMS01LDQuOWwtNC41LTIuMSBjLTEsMS40LTEuOSwyLjktMi42LDQuNWw0LjEsMi45Yy0wLjksMi4xLTEuNSw0LjQtMS44LDYuOGwtNSwwLjRDMjAsNDguMiwyMCw0OS4xLDIwLDUwczAsMS44LDAuMSwyLjZsNSwwLjQgYzAuMywyLjQsMC45LDQuNywxLjgsNi44bC00LjEsMi45YzAuNywxLjYsMS42LDMuMSwyLjYsNC41bDQuNS0yLjFjMS40LDEuOSwzLjEsMy41LDUsNC45bC0yLjEsNC42YzEuNCwxLDIuOSwxLjksNC41LDIuNmwyLjktNC4xIGMyLjEsMC45LDQuNCwxLjUsNi43LDEuOGwwLjQsNS4xQzQ4LjIsODAsNDkuMSw4MCw1MCw4MHMxLjgsMCwyLjYtMC4xbDAuNC01LjFjMi4zLTAuMyw0LjYtMC45LDYuNy0xLjhsMi45LDQuMiBjMS42LTAuNywzLjEtMS42LDQuNS0yLjZMNjUsNjkuOWMxLjktMS40LDMuNS0zLDQuOS00LjlsNC42LDIuMmMxLTEuNCwxLjktMi45LDIuNi00LjVMNzMsNTkuOGMwLjktMi4xLDEuNS00LjQsMS44LTYuN0w3OS45LDUyLjYgeiBNNTAsNjVjLTguMywwLTE1LTYuNy0xNS0xNWMwLTguMyw2LjctMTUsMTUtMTVzMTUsNi43LDE1LDE1QzY1LDU4LjMsNTguMyw2NSw1MCw2NXpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjkwIDUwIDUwXCIsdG86XCIwIDUwIDUwXCIsZHVyOlwiMXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSksdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSgyMCwyMCkgcm90YXRlKDE1IDUwIDUwKVwifX0sW3QoXCJwYXRoXCIse2F0dHJzOntkOlwiTTc5LjksNTIuNkM4MCw1MS44LDgwLDUwLjksODAsNTBzMC0xLjgtMC4xLTIuNmwtNS4xLTAuNGMtMC4zLTIuNC0wLjktNC42LTEuOC02LjdsNC4yLTIuOWMtMC43LTEuNi0xLjYtMy4xLTIuNi00LjUgTDcwLDM1Yy0xLjQtMS45LTMuMS0zLjUtNC45LTQuOWwyLjItNC42Yy0xLjQtMS0yLjktMS45LTQuNS0yLjZMNTkuOCwyN2MtMi4xLTAuOS00LjQtMS41LTYuNy0xLjhsLTAuNC01LjFDNTEuOCwyMCw1MC45LDIwLDUwLDIwIHMtMS44LDAtMi42LDAuMWwtMC40LDUuMWMtMi40LDAuMy00LjYsMC45LTYuNywxLjhsLTIuOS00LjFjLTEuNiwwLjctMy4xLDEuNi00LjUsMi42bDIuMSw0LjZjLTEuOSwxLjQtMy41LDMuMS01LDQuOWwtNC41LTIuMSBjLTEsMS40LTEuOSwyLjktMi42LDQuNWw0LjEsMi45Yy0wLjksMi4xLTEuNSw0LjQtMS44LDYuOGwtNSwwLjRDMjAsNDguMiwyMCw0OS4xLDIwLDUwczAsMS44LDAuMSwyLjZsNSwwLjQgYzAuMywyLjQsMC45LDQuNywxLjgsNi44bC00LjEsMi45YzAuNywxLjYsMS42LDMuMSwyLjYsNC41bDQuNS0yLjFjMS40LDEuOSwzLjEsMy41LDUsNC45bC0yLjEsNC42YzEuNCwxLDIuOSwxLjksNC41LDIuNmwyLjktNC4xIGMyLjEsMC45LDQuNCwxLjUsNi43LDEuOGwwLjQsNS4xQzQ4LjIsODAsNDkuMSw4MCw1MCw4MHMxLjgsMCwyLjYtMC4xbDAuNC01LjFjMi4zLTAuMyw0LjYtMC45LDYuNy0xLjhsMi45LDQuMiBjMS42LTAuNywzLjEtMS42LDQuNS0yLjZMNjUsNjkuOWMxLjktMS40LDMuNS0zLDQuOS00LjlsNC42LDIuMmMxLTEuNCwxLjktMi45LDIuNi00LjVMNzMsNTkuOGMwLjktMi4xLDEuNS00LjQsMS44LTYuN0w3OS45LDUyLjYgeiBNNTAsNjVjLTguMywwLTE1LTYuNy0xNS0xNWMwLTguMyw2LjctMTUsMTUtMTVzMTUsNi43LDE1LDE1QzY1LDU4LjMsNTguMyw2NSw1MCw2NXpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjAgNTAgNTBcIix0bzpcIjkwIDUwIDUwXCIsZHVyOlwiMXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSldKX19LFFTcGlubmVyR3JpZD17bmFtZTpcIlFTcGlubmVyR3JpZFwiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOntmaWxsOlwiY3VycmVudENvbG9yXCIsd2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAxMDUgMTA1XCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMTIuNVwiLGN5OlwiMTIuNVwiLHI6XCIxMi41XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixiZWdpbjpcIjBzXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxOy4yOzFcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIxMi41XCIsY3k6XCI1Mi41XCIscjpcIjEyLjVcIixcImZpbGwtb3BhY2l0eVwiOlwiLjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGJlZ2luOlwiMTAwbXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjE7LjI7MVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjUyLjVcIixjeTpcIjEyLjVcIixyOlwiMTIuNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiZmlsbC1vcGFjaXR5XCIsYmVnaW46XCIzMDBtc1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTsuMjsxXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiNTIuNVwiLGN5OlwiNTIuNVwiLHI6XCIxMi41XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixiZWdpbjpcIjYwMG1zXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxOy4yOzFcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCI5Mi41XCIsY3k6XCIxMi41XCIscjpcIjEyLjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGJlZ2luOlwiODAwbXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjE7LjI7MVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjkyLjVcIixjeTpcIjUyLjVcIixyOlwiMTIuNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiZmlsbC1vcGFjaXR5XCIsYmVnaW46XCI0MDBtc1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTsuMjsxXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMTIuNVwiLGN5OlwiOTIuNVwiLHI6XCIxMi41XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixiZWdpbjpcIjcwMG1zXCIsZHVyOlwiMXNcIix2YWx1ZXM6XCIxOy4yOzFcIixjYWxjTW9kZTpcImxpbmVhclwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCI1Mi41XCIsY3k6XCI5Mi41XCIscjpcIjEyLjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImZpbGwtb3BhY2l0eVwiLGJlZ2luOlwiNTAwbXNcIixkdXI6XCIxc1wiLHZhbHVlczpcIjE7LjI7MVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjkyLjVcIixjeTpcIjkyLjVcIixyOlwiMTIuNVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiZmlsbC1vcGFjaXR5XCIsYmVnaW46XCIyMDBtc1wiLGR1cjpcIjFzXCIsdmFsdWVzOlwiMTsuMjsxXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSl9fSxRU3Bpbm5lckhlYXJ0cz17bmFtZTpcIlFTcGlubmVySGVhcnRzXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e2ZpbGw6XCJjdXJyZW50Q29sb3JcIix3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDE0MCA2NFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwicGF0aFwiLHthdHRyczp7ZDpcIk0zMC4yNjIgNTcuMDJMNy4xOTUgNDAuNzIzYy01Ljg0LTMuOTc2LTcuNTYtMTIuMDYtMy44NDItMTguMDYzIDMuNzE1LTYgMTEuNDY3LTcuNjUgMTcuMzA2LTMuNjhsNC41MiAzLjc2IDIuNi01LjI3NGMzLjcxNi02LjAwMiAxMS40Ny03LjY1IDE3LjMwNC0zLjY4IDUuODQgMy45NyA3LjU2IDEyLjA1NCAzLjg0MiAxOC4wNjJMMzQuNDkgNTYuMTE4Yy0uODk3IDEuNTEyLTIuNzkzIDEuOTE1LTQuMjI4Ljl6XCIsXCJmaWxsLW9wYWNpdHlcIjpcIi41XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixiZWdpbjpcIjBzXCIsZHVyOlwiMS40c1wiLHZhbHVlczpcIjAuNTsxOzAuNVwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwicGF0aFwiLHthdHRyczp7ZDpcIk0xMDUuNTEyIDU2LjEybC0xNC40NC0yNC4yNzJjLTMuNzE2LTYuMDA4LTEuOTk2LTE0LjA5MyAzLjg0My0xOC4wNjIgNS44MzUtMy45NyAxMy41ODgtMi4zMjIgMTcuMzA2IDMuNjhsMi42IDUuMjc0IDQuNTItMy43NmM1Ljg0LTMuOTcgMTMuNTkzLTIuMzIgMTcuMzA4IDMuNjggMy43MTggNi4wMDMgMS45OTggMTQuMDg4LTMuODQyIDE4LjA2NEwxMDkuNzQgNTcuMDJjLTEuNDM0IDEuMDE0LTMuMzMuNjEtNC4yMjgtLjl6XCIsXCJmaWxsLW9wYWNpdHlcIjpcIi41XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJmaWxsLW9wYWNpdHlcIixiZWdpbjpcIjAuN3NcIixkdXI6XCIxLjRzXCIsdmFsdWVzOlwiMC41OzE7MC41XCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJwYXRoXCIse2F0dHJzOntkOlwiTTY3LjQwOCA1Ny44MzRsLTIzLjAxLTI0Ljk4Yy01Ljg2NC02LjE1LTUuODY0LTE2LjEwOCAwLTIyLjI0OCA1Ljg2LTYuMTQgMTUuMzctNi4xNCAyMS4yMzQgMEw3MCAxNi4xNjhsNC4zNjgtNS41NjJjNS44NjMtNi4xNCAxNS4zNzUtNi4xNCAyMS4yMzUgMCA1Ljg2MyA2LjE0IDUuODYzIDE2LjA5OCAwIDIyLjI0N2wtMjMuMDA3IDI0Ljk4Yy0xLjQzIDEuNTU2LTMuNzU3IDEuNTU2LTUuMTg4IDB6XCJ9fSldKX19LFFTcGlubmVySG91cmdsYXNzPXtuYW1lOlwiUVNwaW5uZXJIb3VyZ2xhc3NcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7d2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAxMDAgMTAwXCIscHJlc2VydmVBc3BlY3RSYXRpbzpcInhNaWRZTWlkXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJnXCIsW3QoXCJwYXRoXCIse3N0YXRpY0NsYXNzOlwiZ2xhc3NcIixhdHRyczp7ZmlsbDpcIm5vbmVcIixzdHJva2U6XCJjdXJyZW50Q29sb3JcIixcInN0cm9rZS13aWR0aFwiOlwiNVwiLFwic3Ryb2tlLW1pdGVybGltaXRcIjpcIjEwXCIsZDpcIk01OC40LDUxLjdjLTAuOS0wLjktMS40LTItMS40LTIuM3MwLjUtMC40LDEuNC0xLjQgQzcwLjgsNDMuOCw3OS44LDMwLjUsODAsMTUuNUg3MEgzMEgyMGMwLjIsMTUsOS4yLDI4LjEsMjEuNiwzMi4zYzAuOSwwLjksMS40LDEuMiwxLjQsMS41cy0wLjUsMS42LTEuNCwyLjUgQzI5LjIsNTYuMSwyMC4yLDY5LjUsMjAsODUuNWgxMGg0MGgxMEM3OS44LDY5LjUsNzAuOCw1NS45LDU4LjQsNTEuN3pcIn19KSx0KFwiY2xpcFBhdGhcIix7YXR0cnM6e2lkOlwidWlsLWhvdXJnbGFzcy1jbGlwMVwifX0sW3QoXCJyZWN0XCIse3N0YXRpY0NsYXNzOlwiY2xpcFwiLGF0dHJzOnt4OlwiMTVcIix5OlwiMjBcIix3aWR0aDpcIjcwXCIsaGVpZ2h0OlwiMjVcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcImhlaWdodFwiLGZyb206XCIyNVwiLHRvOlwiMFwiLGR1cjpcIjFzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsdmxhdWVzOlwiMjU7MDswXCIsa2V5VGltZXM6XCIwOzAuNTsxXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ5XCIsZnJvbTpcIjIwXCIsdG86XCI0NVwiLGR1cjpcIjFzXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsdmxhdWVzOlwiMjA7NDU7NDVcIixrZXlUaW1lczpcIjA7MC41OzFcIn19KV0pXSksdChcImNsaXBQYXRoXCIse2F0dHJzOntpZDpcInVpbC1ob3VyZ2xhc3MtY2xpcDJcIn19LFt0KFwicmVjdFwiLHtzdGF0aWNDbGFzczpcImNsaXBcIixhdHRyczp7eDpcIjE1XCIseTpcIjU1XCIsd2lkdGg6XCI3MFwiLGhlaWdodDpcIjI1XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJoZWlnaHRcIixmcm9tOlwiMFwiLHRvOlwiMjVcIixkdXI6XCIxc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLHZsYXVlczpcIjA7MjU7MjVcIixrZXlUaW1lczpcIjA7MC41OzFcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInlcIixmcm9tOlwiODBcIix0bzpcIjU1XCIsZHVyOlwiMXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIix2bGF1ZXM6XCI4MDs1NTs1NVwiLGtleVRpbWVzOlwiMDswLjU7MVwifX0pXSldKSx0KFwicGF0aFwiLHtzdGF0aWNDbGFzczpcInNhbmRcIixhdHRyczp7ZDpcIk0yOSwyM2MzLjEsMTEuNCwxMS4zLDE5LjUsMjEsMTkuNVM2Ny45LDM0LjQsNzEsMjNIMjl6XCIsXCJjbGlwLXBhdGhcIjpcInVybCgjdWlsLWhvdXJnbGFzcy1jbGlwMSlcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9fSksdChcInBhdGhcIix7c3RhdGljQ2xhc3M6XCJzYW5kXCIsYXR0cnM6e2Q6XCJNNzEuNiw3OGMtMy0xMS42LTExLjUtMjAtMjEuNS0yMHMtMTguNSw4LjQtMjEuNSwyMEg3MS42elwiLFwiY2xpcC1wYXRoXCI6XCJ1cmwoI3VpbC1ob3VyZ2xhc3MtY2xpcDIpXCIsZmlsbDpcImN1cnJlbnRDb2xvclwifX0pLHQoXCJhbmltYXRlVHJhbnNmb3JtXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwidHJhbnNmb3JtXCIsdHlwZTpcInJvdGF0ZVwiLGZyb206XCIwIDUwIDUwXCIsdG86XCIxODAgNTAgNTBcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIixkdXI6XCIxc1wiLHZhbHVlczpcIjAgNTAgNTA7MCA1MCA1MDsxODAgNTAgNTBcIixrZXlUaW1lczpcIjA7MC43OzFcIn19KV0pXSl9fSxRU3Bpbm5lckluZmluaXR5PXtuYW1lOlwiUVNwaW5uZXJJbmZpbml0eVwiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDEwMCAxMDBcIixwcmVzZXJ2ZUFzcGVjdFJhdGlvOlwieE1pZFlNaWRcIn19LFt0KFwicGF0aFwiLHthdHRyczp7ZDpcIk0yNC4zLDMwQzExLjQsMzAsNSw0My4zLDUsNTBzNi40LDIwLDE5LjMsMjBjMTkuMywwLDMyLjEtNDAsNTEuNC00MEM4OC42LDMwLDk1LDQzLjMsOTUsNTBzLTYuNCwyMC0xOS4zLDIwQzU2LjQsNzAsNDMuNiwzMCwyNC4zLDMwelwiLGZpbGw6XCJub25lXCIsc3Ryb2tlOlwiY3VycmVudENvbG9yXCIsXCJzdHJva2Utd2lkdGhcIjpcIjhcIixcInN0cm9rZS1kYXNoYXJyYXlcIjpcIjEwLjY5MTIwNTM0MjYxMDY3OCAxMC42OTEyMDUzNDI2MTA2NzhcIixcInN0cm9rZS1kYXNob2Zmc2V0XCI6XCIwXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2UtZGFzaG9mZnNldFwiLGZyb206XCIwXCIsdG86XCIyMS4zODI0MTA2ODUyMjEzNTVcIixiZWdpbjpcIjBcIixkdXI6XCIyc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwiLGZpbGw6XCJmcmVlemVcIn19KV0pXSl9fSxRU3Bpbm5lcl9pb3M9e25hbWU6XCJRU3Bpbm5lcklvc1wiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSxzdHJva2U6XCJjdXJyZW50Q29sb3JcIixmaWxsOlwiY3VycmVudENvbG9yXCIsdmlld0JveDpcIjAgMCA2NCA2NFwifX0sW3QoXCJnXCIse2F0dHJzOntcInN0cm9rZS13aWR0aFwiOlwiNFwiLFwic3Ryb2tlLWxpbmVjYXBcIjpcInJvdW5kXCJ9fSxbdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoMTgwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIjE7Ljg1Oy43Oy42NTsuNTU7LjQ1Oy4zNTsuMjU7LjE1Oy4xOzA7MVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoMjEwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIjA7MTsuODU7Ljc7LjY1Oy41NTsuNDU7LjM1Oy4yNTsuMTU7LjE7MFwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoMjQwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIi4xOzA7MTsuODU7Ljc7LjY1Oy41NTsuNDU7LjM1Oy4yNTsuMTU7LjFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJsaW5lXCIse2F0dHJzOnt5MTpcIjE3XCIseTI6XCIyOVwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgzMiwzMikgcm90YXRlKDI3MClcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsZHVyOlwiNzUwbXNcIix2YWx1ZXM6XCIuMTU7LjE7MDsxOy44NTsuNzsuNjU7LjU1Oy40NTsuMzU7LjI1Oy4xNVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoMzAwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIi4yNTsuMTU7LjE7MDsxOy44NTsuNzsuNjU7LjU1Oy40NTsuMzU7LjI1XCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwibGluZVwiLHthdHRyczp7eTE6XCIxN1wiLHkyOlwiMjlcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMzIsMzIpIHJvdGF0ZSgzMzApXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGR1cjpcIjc1MG1zXCIsdmFsdWVzOlwiLjM1Oy4yNTsuMTU7LjE7MDsxOy44NTsuNzsuNjU7LjU1Oy40NTsuMzVcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJsaW5lXCIse2F0dHJzOnt5MTpcIjE3XCIseTI6XCIyOVwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgzMiwzMikgcm90YXRlKDApXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGR1cjpcIjc1MG1zXCIsdmFsdWVzOlwiLjQ1Oy4zNTsuMjU7LjE1Oy4xOzA7MTsuODU7Ljc7LjY1Oy41NTsuNDVcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJsaW5lXCIse2F0dHJzOnt5MTpcIjE3XCIseTI6XCIyOVwiLHRyYW5zZm9ybTpcInRyYW5zbGF0ZSgzMiwzMikgcm90YXRlKDMwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIi41NTsuNDU7LjM1Oy4yNTsuMTU7LjE7MDsxOy44NTsuNzsuNjU7LjU1XCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwibGluZVwiLHthdHRyczp7eTE6XCIxN1wiLHkyOlwiMjlcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMzIsMzIpIHJvdGF0ZSg2MClcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsZHVyOlwiNzUwbXNcIix2YWx1ZXM6XCIuNjU7LjU1Oy40NTsuMzU7LjI1Oy4xNTsuMTswOzE7Ljg1Oy43Oy42NVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoOTApXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGR1cjpcIjc1MG1zXCIsdmFsdWVzOlwiLjc7LjY1Oy41NTsuNDU7LjM1Oy4yNTsuMTU7LjE7MDsxOy44NTsuN1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcImxpbmVcIix7YXR0cnM6e3kxOlwiMTdcIix5MjpcIjI5XCIsdHJhbnNmb3JtOlwidHJhbnNsYXRlKDMyLDMyKSByb3RhdGUoMTIwKVwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwic3Ryb2tlLW9wYWNpdHlcIixkdXI6XCI3NTBtc1wiLHZhbHVlczpcIi44NTsuNzsuNjU7LjU1Oy40NTsuMzU7LjI1Oy4xNTsuMTswOzE7Ljg1XCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwibGluZVwiLHthdHRyczp7eTE6XCIxN1wiLHkyOlwiMjlcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMzIsMzIpIHJvdGF0ZSgxNTApXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGR1cjpcIjc1MG1zXCIsdmFsdWVzOlwiMTsuODU7Ljc7LjY1Oy41NTsuNDU7LjM1Oy4yNTsuMTU7LjE7MDsxXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKV0pXSl9fSxRU3Bpbm5lck92YWw9e25hbWU6XCJRU3Bpbm5lck92YWxcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7c3Ryb2tlOlwiY3VycmVudENvbG9yXCIsd2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAzOCAzOFwiLHhtbG5zOlwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIn19LFt0KFwiZ1wiLHthdHRyczp7dHJhbnNmb3JtOlwidHJhbnNsYXRlKDEgMSlcIixcInN0cm9rZS13aWR0aFwiOlwiMlwiLGZpbGw6XCJub25lXCIsXCJmaWxsLXJ1bGVcIjpcImV2ZW5vZGRcIn19LFt0KFwiY2lyY2xlXCIse2F0dHJzOntcInN0cm9rZS1vcGFjaXR5XCI6XCIuNVwiLGN4OlwiMThcIixjeTpcIjE4XCIscjpcIjE4XCJ9fSksdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNMzYgMThjMC05Ljk0LTguMDYtMTgtMTgtMThcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJyb3RhdGVcIixmcm9tOlwiMCAxOCAxOFwiLHRvOlwiMzYwIDE4IDE4XCIsZHVyOlwiMXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSldKX19LFFTcGlubmVyUGllPXtuYW1lOlwiUVNwaW5uZXJQaWVcIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7d2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAxMDAgMTAwXCIscHJlc2VydmVBc3BlY3RSYXRpbzpcInhNaWRZTWlkXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJwYXRoXCIse2F0dHJzOntkOlwiTTAgNTBBNTAgNTAgMCAwIDEgNTAgMEw1MCA1MEwwIDUwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLG9wYWNpdHk6XCIwLjVcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJyb3RhdGVcIixmcm9tOlwiMCA1MCA1MFwiLHRvOlwiMzYwIDUwIDUwXCIsZHVyOlwiMC44c1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNNTAgMEE1MCA1MCAwIDAgMSAxMDAgNTBMNTAgNTBMNTAgMFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIixvcGFjaXR5OlwiMC41XCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjAgNTAgNTBcIix0bzpcIjM2MCA1MCA1MFwiLGR1cjpcIjEuNnNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJwYXRoXCIse2F0dHJzOntkOlwiTTEwMCA1MEE1MCA1MCAwIDAgMSA1MCAxMDBMNTAgNTBMMTAwIDUwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLG9wYWNpdHk6XCIwLjVcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJyb3RhdGVcIixmcm9tOlwiMCA1MCA1MFwiLHRvOlwiMzYwIDUwIDUwXCIsZHVyOlwiMi40c1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSksdChcInBhdGhcIix7YXR0cnM6e2Q6XCJNNTAgMTAwQTUwIDUwIDAgMCAxIDAgNTBMNTAgNTBMNTAgMTAwXCIsZmlsbDpcImN1cnJlbnRDb2xvclwiLG9wYWNpdHk6XCIwLjVcIn19LFt0KFwiYW5pbWF0ZVRyYW5zZm9ybVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInRyYW5zZm9ybVwiLHR5cGU6XCJyb3RhdGVcIixmcm9tOlwiMCA1MCA1MFwiLHRvOlwiMzYwIDUwIDUwXCIsZHVyOlwiMy4yc1wiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKX19LFFTcGlubmVyUHVmZj17bmFtZTpcIlFTcGlubmVyUHVmZlwiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOntzdHJva2U6XCJjdXJyZW50Q29sb3JcIix3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDQ0IDQ0XCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJnXCIse2F0dHJzOntmaWxsOlwibm9uZVwiLFwiZmlsbC1ydWxlXCI6XCJldmVub2RkXCIsXCJzdHJva2Utd2lkdGhcIjpcIjJcIn19LFt0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjIyXCIsY3k6XCIyMlwiLHI6XCIxXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJyXCIsYmVnaW46XCIwc1wiLGR1cjpcIjEuOHNcIix2YWx1ZXM6XCIxOyAyMFwiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5VGltZXM6XCIwOyAxXCIsa2V5U3BsaW5lczpcIjAuMTY1LCAwLjg0LCAwLjQ0LCAxXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGJlZ2luOlwiMHNcIixkdXI6XCIxLjhzXCIsdmFsdWVzOlwiMTsgMFwiLGNhbGNNb2RlOlwic3BsaW5lXCIsa2V5VGltZXM6XCIwOyAxXCIsa2V5U3BsaW5lczpcIjAuMywgMC42MSwgMC4zNTUsIDFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMjJcIixjeTpcIjIyXCIscjpcIjFcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInJcIixiZWdpbjpcIi0wLjlzXCIsZHVyOlwiMS44c1wiLHZhbHVlczpcIjE7IDIwXCIsY2FsY01vZGU6XCJzcGxpbmVcIixrZXlUaW1lczpcIjA7IDFcIixrZXlTcGxpbmVzOlwiMC4xNjUsIDAuODQsIDAuNDQsIDFcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsYmVnaW46XCItMC45c1wiLGR1cjpcIjEuOHNcIix2YWx1ZXM6XCIxOyAwXCIsY2FsY01vZGU6XCJzcGxpbmVcIixrZXlUaW1lczpcIjA7IDFcIixrZXlTcGxpbmVzOlwiMC4zLCAwLjYxLCAwLjM1NSwgMVwiLHJlcGVhdENvdW50OlwiaW5kZWZpbml0ZVwifX0pXSldKV0pfX0sUVNwaW5uZXJSYWRpbz17bmFtZTpcIlFTcGlubmVyUmFkaW9cIixtaXhpbnM6W21peGluJDFdLHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcInN2Z1wiLHtzdGF0aWNDbGFzczpcInEtc3Bpbm5lclwiLGNsYXNzOnRoaXMuY2xhc3NlcyxhdHRyczp7d2lkdGg6dGhpcy5zaXplLGhlaWdodDp0aGlzLnNpemUsdmlld0JveDpcIjAgMCAxMDAgMTAwXCIscHJlc2VydmVBc3BlY3RSYXRpbzpcInhNaWRZTWlkXCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJnXCIse2F0dHJzOnt0cmFuc2Zvcm06XCJzY2FsZSgwLjU1KVwifX0sW3QoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMzBcIixjeTpcIjE1MFwiLHI6XCIzMFwiLGZpbGw6XCJjdXJyZW50Q29sb3JcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcIm9wYWNpdHlcIixmcm9tOlwiMFwiLHRvOlwiMVwiLGR1cjpcIjFzXCIsYmVnaW46XCIwXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsa2V5VGltZXM6XCIwOzAuNTsxXCIsdmFsdWVzOlwiMDsxOzFcIn19KV0pLHQoXCJwYXRoXCIse2F0dHJzOntkOlwiTTkwLDE1MGgzMGMwLTQ5LjctNDAuMy05MC05MC05MHYzMEM2My4xLDkwLDkwLDExNi45LDkwLDE1MHpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJvcGFjaXR5XCIsZnJvbTpcIjBcIix0bzpcIjFcIixkdXI6XCIxc1wiLGJlZ2luOlwiMC4xXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsa2V5VGltZXM6XCIwOzAuNTsxXCIsdmFsdWVzOlwiMDsxOzFcIn19KV0pLHQoXCJwYXRoXCIse2F0dHJzOntkOlwiTTE1MCwxNTBoMzBDMTgwLDY3LjIsMTEyLjgsMCwzMCwwdjMwQzk2LjMsMzAsMTUwLDgzLjcsMTUwLDE1MHpcIixmaWxsOlwiY3VycmVudENvbG9yXCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJvcGFjaXR5XCIsZnJvbTpcIjBcIix0bzpcIjFcIixkdXI6XCIxc1wiLGJlZ2luOlwiMC4yXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCIsa2V5VGltZXM6XCIwOzAuNTsxXCIsdmFsdWVzOlwiMDsxOzFcIn19KV0pXSldKX19LFFTcGlubmVyUmluZ3M9e25hbWU6XCJRU3Bpbm5lclJpbmdzXCIsbWl4aW5zOlttaXhpbiQxXSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJzdmdcIix7c3RhdGljQ2xhc3M6XCJxLXNwaW5uZXJcIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e3N0cm9rZTpcImN1cnJlbnRDb2xvclwiLHdpZHRoOnRoaXMuc2l6ZSxoZWlnaHQ6dGhpcy5zaXplLHZpZXdCb3g6XCIwIDAgNDUgNDVcIix4bWxuczpcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJ9fSxbdChcImdcIix7YXR0cnM6e2ZpbGw6XCJub25lXCIsXCJmaWxsLXJ1bGVcIjpcImV2ZW5vZGRcIix0cmFuc2Zvcm06XCJ0cmFuc2xhdGUoMSAxKVwiLFwic3Ryb2tlLXdpZHRoXCI6XCIyXCJ9fSxbdChcImNpcmNsZVwiLHthdHRyczp7Y3g6XCIyMlwiLGN5OlwiMjJcIixyOlwiNlwifX0sW3QoXCJhbmltYXRlXCIse2F0dHJzOnthdHRyaWJ1dGVOYW1lOlwiclwiLGJlZ2luOlwiMS41c1wiLGR1cjpcIjNzXCIsdmFsdWVzOlwiNjsyMlwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSksdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJzdHJva2Utb3BhY2l0eVwiLGJlZ2luOlwiMS41c1wiLGR1cjpcIjNzXCIsdmFsdWVzOlwiMTswXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS13aWR0aFwiLGJlZ2luOlwiMS41c1wiLGR1cjpcIjNzXCIsdmFsdWVzOlwiMjswXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2N4OlwiMjJcIixjeTpcIjIyXCIscjpcIjZcIn19LFt0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInJcIixiZWdpbjpcIjNzXCIsZHVyOlwiM3NcIix2YWx1ZXM6XCI2OzIyXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS1vcGFjaXR5XCIsYmVnaW46XCIzc1wiLGR1cjpcIjNzXCIsdmFsdWVzOlwiMTswXCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KSx0KFwiYW5pbWF0ZVwiLHthdHRyczp7YXR0cmlidXRlTmFtZTpcInN0cm9rZS13aWR0aFwiLGJlZ2luOlwiM3NcIixkdXI6XCIzc1wiLHZhbHVlczpcIjI7MFwiLGNhbGNNb2RlOlwibGluZWFyXCIscmVwZWF0Q291bnQ6XCJpbmRlZmluaXRlXCJ9fSldKSx0KFwiY2lyY2xlXCIse2F0dHJzOntjeDpcIjIyXCIsY3k6XCIyMlwiLHI6XCI4XCJ9fSxbdChcImFuaW1hdGVcIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJyXCIsYmVnaW46XCIwc1wiLGR1cjpcIjEuNXNcIix2YWx1ZXM6XCI2OzE7MjszOzQ7NTs2XCIsY2FsY01vZGU6XCJsaW5lYXJcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSldKX19LFFTcGlubmVyVGFpbD17bmFtZTpcIlFTcGlubmVyVGFpbFwiLG1peGluczpbbWl4aW4kMV0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwic3ZnXCIse3N0YXRpY0NsYXNzOlwicS1zcGlubmVyXCIsY2xhc3M6dGhpcy5jbGFzc2VzLGF0dHJzOnt3aWR0aDp0aGlzLnNpemUsaGVpZ2h0OnRoaXMuc2l6ZSx2aWV3Qm94OlwiMCAwIDM4IDM4XCIseG1sbnM6XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wifX0sW3QoXCJkZWZzXCIsW3QoXCJsaW5lYXJHcmFkaWVudFwiLHthdHRyczp7eDE6XCI4LjA0MiVcIix5MTpcIjAlXCIseDI6XCI2NS42ODIlXCIseTI6XCIyMy44NjUlXCIsaWQ6XCJhXCJ9fSxbdChcInN0b3BcIix7YXR0cnM6e1wic3RvcC1jb2xvclwiOlwiY3VycmVudENvbG9yXCIsXCJzdG9wLW9wYWNpdHlcIjpcIjBcIixvZmZzZXQ6XCIwJVwifX0pLHQoXCJzdG9wXCIse2F0dHJzOntcInN0b3AtY29sb3JcIjpcImN1cnJlbnRDb2xvclwiLFwic3RvcC1vcGFjaXR5XCI6XCIuNjMxXCIsb2Zmc2V0OlwiNjMuMTQ2JVwifX0pLHQoXCJzdG9wXCIse2F0dHJzOntcInN0b3AtY29sb3JcIjpcImN1cnJlbnRDb2xvclwiLG9mZnNldDpcIjEwMCVcIn19KV0pXSksdChcImdcIix7YXR0cnM6e3RyYW5zZm9ybTpcInRyYW5zbGF0ZSgxIDEpXCIsZmlsbDpcIm5vbmVcIixcImZpbGwtcnVsZVwiOlwiZXZlbm9kZFwifX0sW3QoXCJwYXRoXCIse2F0dHJzOntkOlwiTTM2IDE4YzAtOS45NC04LjA2LTE4LTE4LTE4XCIsc3Ryb2tlOlwidXJsKCNhKVwiLFwic3Ryb2tlLXdpZHRoXCI6XCIyXCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjAgMTggMThcIix0bzpcIjM2MCAxOCAxOFwiLGR1cjpcIjAuOXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pLHQoXCJjaXJjbGVcIix7YXR0cnM6e2ZpbGw6XCJjdXJyZW50Q29sb3JcIixjeDpcIjM2XCIsY3k6XCIxOFwiLHI6XCIxXCJ9fSxbdChcImFuaW1hdGVUcmFuc2Zvcm1cIix7YXR0cnM6e2F0dHJpYnV0ZU5hbWU6XCJ0cmFuc2Zvcm1cIix0eXBlOlwicm90YXRlXCIsZnJvbTpcIjAgMTggMThcIix0bzpcIjM2MCAxOCAxOFwiLGR1cjpcIjAuOXNcIixyZXBlYXRDb3VudDpcImluZGVmaW5pdGVcIn19KV0pXSldKX19LFN0ZXBUYWI9e25hbWU6XCJRU3RlcFRhYlwiLGRpcmVjdGl2ZXM6e1JpcHBsZTpSaXBwbGV9LHByb3BzOltcInZtXCJdLGNvbXB1dGVkOntoYXNOYXZpZ2F0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMudm0uX19zdGVwcGVyLm5vSGVhZGVyTmF2aWdhdGlvbn0sY2xhc3NlczpmdW5jdGlvbigpe3JldHVybntcInN0ZXAtZXJyb3JcIjp0aGlzLnZtLmVycm9yLFwic3RlcC1hY3RpdmVcIjp0aGlzLnZtLmFjdGl2ZSxcInN0ZXAtZG9uZVwiOnRoaXMudm0uZG9uZSxcInN0ZXAtbmF2aWdhdGlvblwiOnRoaXMudm0uZG9uZSYmdGhpcy5oYXNOYXZpZ2F0aW9uLFwic3RlcC13YWl0aW5nXCI6dGhpcy52bS53YWl0aW5nLFwic3RlcC1kaXNhYmxlZFwiOnRoaXMudm0uZGlzYWJsZSxcInN0ZXAtY29sb3JlZFwiOnRoaXMudm0uYWN0aXZlfHx0aGlzLnZtLmRvbmUsXCJpdGVtcy1jZW50ZXJcIjohdGhpcy52bS5fX3N0ZXBwZXIudmVydGljYWwsXCJpdGVtcy1zdGFydFwiOnRoaXMudm0uX19zdGVwcGVyLnZlcnRpY2FsLFwicS1zdGVwcGVyLWZpcnN0XCI6dGhpcy52bS5maXJzdCxcInEtc3RlcHBlci1sYXN0XCI6dGhpcy52bS5sYXN0fX19LG1ldGhvZHM6e19fc2VsZWN0OmZ1bmN0aW9uKCl7dGhpcy5oYXNOYXZpZ2F0aW9uJiZ0aGlzLnZtLnNlbGVjdCgpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudm0uc3RlcEljb24/dChRSWNvbix7cHJvcHM6e25hbWU6dGhpcy52bS5zdGVwSWNvbn19KTp0KFwic3BhblwiLFt0aGlzLnZtLmlubmVyT3JkZXIrMV0pO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zdGVwcGVyLXRhYiBjb2wtZ3JvdyBmbGV4IG5vLXdyYXAgcmVsYXRpdmUtcG9zaXRpb25cIixjbGFzczp0aGlzLmNsYXNzZXMsb246e2NsaWNrOnRoaXMuX19zZWxlY3R9LGRpcmVjdGl2ZXM6dGhpcy5oYXNOYXZpZ2F0aW9uP1t7bmFtZTpcInJpcHBsZVwiLHZhbHVlOnRoaXMudm0uZG9uZX1dOm51bGx9LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zdGVwcGVyLWRvdCByb3cgZmxleC1jZW50ZXIgcS1zdGVwcGVyLWxpbmUgcmVsYXRpdmUtcG9zaXRpb25cIn0sW3QoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicm93IGZsZXgtY2VudGVyXCJ9LFtlXSldKSx0aGlzLnZtLnRpdGxlP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXN0ZXBwZXItbGFiZWwgcS1zdGVwcGVyLWxpbmUgcmVsYXRpdmUtcG9zaXRpb25cIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXN0ZXBwZXItdGl0bGVcIn0sW3RoaXMudm0udGl0bGVdKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zdGVwcGVyLXN1YnRpdGxlXCJ9LFt0aGlzLnZtLnN1YnRpdGxlXSldKTpudWxsXSl9fSxRU3RlcD17bmFtZTpcIlFTdGVwXCIsaW5qZWN0OntfX3N0ZXBwZXI6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUVN0ZXAgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUVN0ZXBwZXJcIil9fX0scHJvcHM6e25hbWU6e3R5cGU6W051bWJlcixTdHJpbmddLGRlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdWlkKCl9fSxkZWZhdWx0OkJvb2xlYW4sdGl0bGU6e3R5cGU6U3RyaW5nLHJlcXVpcmVkOiEwfSxzdWJ0aXRsZTpTdHJpbmcsaWNvbjpTdHJpbmcsb3JkZXI6W051bWJlcixTdHJpbmddLGVycm9yOkJvb2xlYW4sYWN0aXZlSWNvbjpTdHJpbmcsZXJyb3JJY29uOlN0cmluZyxkb25lSWNvbjpTdHJpbmcsZGlzYWJsZTpCb29sZWFufSx3YXRjaDp7b3JkZXI6ZnVuY3Rpb24oKXt0aGlzLl9fc3RlcHBlci5fX3NvcnRTdGVwcygpfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntpbm5lck9yZGVyOjAsZmlyc3Q6ITEsbGFzdDohMX19LGNvbXB1dGVkOntzdGVwSWNvbjpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX19zdGVwcGVyO3JldHVybiB0aGlzLmFjdGl2ZT90aGlzLmFjdGl2ZUljb258fHQuYWN0aXZlSWNvbnx8dGhpcy4kcS5pY29uLnN0ZXBwZXIuYWN0aXZlOnRoaXMuZXJyb3I/dGhpcy5lcnJvckljb258fHQuZXJyb3JJY29ufHx0aGlzLiRxLmljb24uc3RlcHBlci5lcnJvcjp0aGlzLmRvbmUmJiF0aGlzLmRpc2FibGU/dGhpcy5kb25lSWNvbnx8dC5kb25lSWNvbnx8dGhpcy4kcS5pY29uLnN0ZXBwZXIuZG9uZTp0aGlzLmljb259LGFjdHVhbE9yZGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHBhcnNlSW50KHRoaXMub3JkZXJ8fHRoaXMuaW5uZXJPcmRlciwxMCl9LGFjdGl2ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fc3RlcHBlci5zdGVwPT09dGhpcy5uYW1lfSxkb25lOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZGlzYWJsZSYmdGhpcy5fX3N0ZXBwZXIuY3VycmVudE9yZGVyPnRoaXMuaW5uZXJPcmRlcn0sd2FpdGluZzpmdW5jdGlvbigpe3JldHVybiF0aGlzLmRpc2FibGUmJnRoaXMuX19zdGVwcGVyLmN1cnJlbnRPcmRlcjx0aGlzLmlubmVyT3JkZXJ9LHN0eWxlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5hY3R1YWxPcmRlcjtyZXR1cm57XCItd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwXCI6dCxcIi1tcy1mbGV4LW9yZGVyXCI6dCxvcmRlcjp0fX0sY2xhc3NlczpmdW5jdGlvbigpe2lmKCF0aGlzLl9fc3RlcHBlci52ZXJ0aWNhbCl7dmFyIHQ9W107cmV0dXJuIXRoaXMuYWN0aXZlJiZ0LnB1c2goXCJoaWRkZW5cIiksbnVsbCE9PXRoaXMuX19zdGVwcGVyLmFuaW1hdGlvbiYmdC5wdXNoKHRoaXMuX19zdGVwcGVyLmFuaW1hdGlvbiksdH19fSxtZXRob2RzOntzZWxlY3Q6ZnVuY3Rpb24oKXt0aGlzLmRvbmUmJnRoaXMuX19zdGVwcGVyLmdvVG9TdGVwKHRoaXMubmFtZSl9LF9fZ2V0Q29udGFpbmVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuYWN0aXZlP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXN0ZXBwZXItc3RlcC1jb250ZW50XCIsY2xhc3M6dGhpcy5jbGFzc2VzfSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtc3RlcHBlci1zdGVwLWlubmVyXCJ9LHRoaXMuJHNsb3RzLmRlZmF1bHQpXSk6bnVsbDtyZXR1cm4gdGhpcy5fX3N0ZXBwZXIudmVydGljYWw/dChRU2xpZGVUcmFuc2l0aW9uLFtlXSk6ZX19LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLl9fc3RlcHBlci5fX3JlZ2lzdGVyU3RlcCh0aGlzKSx0aGlzLmRlZmF1bHQmJnRoaXMuc2VsZWN0KCl9LGJlZm9yZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9fc3RlcHBlci5fX3VucmVnaXN0ZXJTdGVwKHRoaXMpfSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXN0ZXBwZXItc3RlcFwiLHN0eWxlOnRoaXMuc3R5bGV9LFt0aGlzLl9fc3RlcHBlci52ZXJ0aWNhbD90KFN0ZXBUYWIse3Byb3BzOnt2bTp0aGlzfX0pOm51bGwsdGhpcy5fX2dldENvbnRhaW5lcih0KV0pfX0sUVN0ZXBwZXI9e25hbWU6XCJRU3RlcHBlclwiLHByb3BzOnt2YWx1ZTpbTnVtYmVyLFN0cmluZ10sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJwcmltYXJ5XCJ9LHZlcnRpY2FsOkJvb2xlYW4sYWx0ZXJuYXRpdmVMYWJlbHM6Qm9vbGVhbixub0hlYWRlck5hdmlnYXRpb246Qm9vbGVhbixjb250cmFjdGFibGU6Qm9vbGVhbixkb25lSWNvbjpCb29sZWFuLGFjdGl2ZUljb246Qm9vbGVhbixlcnJvckljb246Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybnthbmltYXRpb246bnVsbCxzdGVwOnRoaXMudmFsdWV8fG51bGwsc3RlcHM6W119fSxwcm92aWRlOmZ1bmN0aW9uKCl7cmV0dXJue19fc3RlcHBlcjp0aGlzfX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuZ29Ub1N0ZXAodCl9LHN0ZXA6ZnVuY3Rpb24odCxlKXtpZighdGhpcy52ZXJ0aWNhbCl7dmFyIGk9dGhpcy5zdGVwcy5maW5kSW5kZXgoZnVuY3Rpb24oZSl7cmV0dXJuIGUubmFtZT09PXR9KSxzPXRoaXMuc3RlcHMuZmluZEluZGV4KGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5hbWU9PT1lfSk7dGhpcy5hbmltYXRpb249aTxzP1wiYW5pbWF0ZS1mYWRlLWxlZnRcIjppPnM/XCJhbmltYXRlLWZhZGUtcmlnaHRcIjpudWxsfX19LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7dmFyIHQ9W1wicS1zdGVwcGVyLVwiKyh0aGlzLnZlcnRpY2FsP1widmVydGljYWxcIjpcImhvcml6b250YWxcIiksXCJ0ZXh0LVwiK3RoaXMuY29sb3JdO3JldHVybiB0aGlzLmNvbnRyYWN0YWJsZSYmdC5wdXNoKFwicS1zdGVwcGVyLWNvbnRyYWN0YWJsZVwiKSx0fSxoYXNTdGVwczpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0ZXBzLmxlbmd0aD4wfSxjdXJyZW50U3RlcDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYodGhpcy5oYXNTdGVwcylyZXR1cm4gdGhpcy5zdGVwcy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWU9PT10LnN0ZXB9KX0sY3VycmVudE9yZGVyOmZ1bmN0aW9uKCl7aWYodGhpcy5jdXJyZW50U3RlcClyZXR1cm4gdGhpcy5jdXJyZW50U3RlcC5pbm5lck9yZGVyfSxsZW5ndGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zdGVwcy5sZW5ndGh9fSxtZXRob2RzOntnb1RvU3RlcDpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuc3RlcCE9PXQmJnZvaWQgMCE9PXQmJih0aGlzLnN0ZXA9dCx0aGlzLiRlbWl0KFwiaW5wdXRcIix0KSx0aGlzLiRlbWl0KFwic3RlcFwiLHQpLHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7SlNPTi5zdHJpbmdpZnkodCkhPT1KU09OLnN0cmluZ2lmeShlLnZhbHVlKSYmZS4kZW1pdChcImNoYW5nZVwiLHQpfSkpfSxuZXh0OmZ1bmN0aW9uKCl7dGhpcy5fX2dvKDEpfSxwcmV2aW91czpmdW5jdGlvbigpe3RoaXMuX19nbygtMSl9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5oYXNTdGVwcyYmdGhpcy5nb1RvU3RlcCh0aGlzLnN0ZXBzWzBdLm5hbWUpfSxfX2dvOmZ1bmN0aW9uKHQpe3ZhciBlLGk9dGhpcy5jdXJyZW50T3JkZXI7aWYodm9pZCAwPT09aSl7aWYoIXRoaXMuaGFzU3RlcHMpcmV0dXJuO2U9dGhpcy5zdGVwc1swXS5uYW1lfWVsc2V7ZG97aSs9dH13aGlsZShpPj0wJiZpPHRoaXMubGVuZ3RoLTEmJnRoaXMuc3RlcHNbaV0uZGlzYWJsZSk7aWYoaTwwfHxpPnRoaXMubGVuZ3RoLTF8fHRoaXMuc3RlcHNbaV0uZGlzYWJsZSlyZXR1cm47ZT10aGlzLnN0ZXBzW2ldLm5hbWV9dGhpcy5nb1RvU3RlcChlKX0sX19zb3J0U3RlcHM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3RoaXMuc3RlcHMuc29ydChmdW5jdGlvbih0LGUpe3JldHVybiB0LmFjdHVhbE9yZGVyLWUuYWN0dWFsT3JkZXJ9KTt2YXIgZT10aGlzLnN0ZXBzLmxlbmd0aC0xO3RoaXMuc3RlcHMuZm9yRWFjaChmdW5jdGlvbih0LGkpe3QuaW5uZXJPcmRlcj1pLHQuZmlyc3Q9MD09PWksdC5sYXN0PWk9PT1lfSksdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXt0LnN0ZXBzLnNvbWUoZnVuY3Rpb24odCl7cmV0dXJuIHQuYWN0aXZlfSl8fHQuZ29Ub1N0ZXAodC5zdGVwc1swXS5uYW1lKX0pfSxfX3JlZ2lzdGVyU3RlcDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zdGVwcy5wdXNoKHQpLHRoaXMuX19zb3J0U3RlcHMoKSx0aGlzfSxfX3VucmVnaXN0ZXJTdGVwOmZ1bmN0aW9uKHQpe3RoaXMuc3RlcHM9dGhpcy5zdGVwcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT10fSl9fSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5fX3NvcnRTdGVwcz1mcmFtZURlYm91bmNlKHRoaXMuX19zb3J0U3RlcHMpfSxyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXN0ZXBwZXIgY29sdW1uIG92ZXJmbG93LWhpZGRlbiByZWxhdGl2ZS1wb3NpdGlvblwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sW3RoaXMudmVydGljYWw/bnVsbDp0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS1zdGVwcGVyLWhlYWRlciByb3cgaXRlbXMtc3RyZXRjaCBqdXN0aWZ5LWJldHdlZW4gc2hhZG93LTFcIixjbGFzczp7XCJhbHRlcm5hdGl2ZS1sYWJlbHNcIjp0aGlzLmFsdGVybmF0aXZlTGFiZWxzfX0sdGhpcy5zdGVwcy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQoU3RlcFRhYix7a2V5OmUubmFtZSxwcm9wczp7dm06ZX19KX0pKSx0aGlzLiRzbG90cy5kZWZhdWx0XSl9fSxRU3RlcHBlck5hdmlnYXRpb249e25hbWU6XCJRU3RlcHBlck5hdmlnYXRpb25cIixyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXN0ZXBwZXItbmF2IG9yZGVyLWxhc3Qgcm93IGl0ZW1zLWNlbnRlclwifSxbdGhpcy4kc2xvdHMubGVmdCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwiY29sXCJ9KSx0aGlzLiRzbG90cy5kZWZhdWx0XSl9fSxUYWJNaXhpbj17ZGlyZWN0aXZlczp7UmlwcGxlOlJpcHBsZX0scHJvcHM6e2xhYmVsOlN0cmluZyxpY29uOlN0cmluZyxkaXNhYmxlOkJvb2xlYW4saGlkZGVuOkJvb2xlYW4saGlkZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcIlwifSxuYW1lOnt0eXBlOlN0cmluZyxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIHVpZCgpfX0sYWxlcnQ6Qm9vbGVhbixjb3VudDpbTnVtYmVyLFN0cmluZ10sY29sb3I6U3RyaW5nLHRhYmluZGV4Ok51bWJlcn0saW5qZWN0OntkYXRhOntkZWZhdWx0OmZ1bmN0aW9uKCl7Y29uc29sZS5lcnJvcihcIlFUYWIvUVJvdXRlVGFiIGNvbXBvbmVudHMgbmVlZCB0byBiZSBjaGlsZCBvZiBRVGFic1wiKX19LHNlbGVjdFRhYjp7fX0sd2F0Y2g6e2FjdGl2ZTpmdW5jdGlvbih0KXt0JiZ0aGlzLiRlbWl0KFwic2VsZWN0XCIsdGhpcy5uYW1lKX19LGNvbXB1dGVkOnthY3RpdmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhLnRhYk5hbWU9PT10aGlzLm5hbWV9LGNsYXNzZXM6ZnVuY3Rpb24oKXt2YXIgdD17YWN0aXZlOnRoaXMuYWN0aXZlLGhpZGRlbjp0aGlzLmhpZGRlbixkaXNhYmxlZDp0aGlzLmRpc2FibGUsXCJxLXRhYi1mdWxsXCI6dGhpcy5pY29uJiZ0aGlzLmxhYmVsLFwicS10YWItb25seS1sYWJlbFwiOiF0aGlzLmljb24mJnRoaXMubGFiZWwsXCJoaWRlLW5vbmVcIjohdGhpcy5oaWRlLFwiaGlkZS1pY29uXCI6XCJpY29uXCI9PT10aGlzLmhpZGUsXCJoaWRlLWxhYmVsXCI6XCJsYWJlbFwiPT09dGhpcy5oaWRlfSxlPXRoaXMuZGF0YS5pbnZlcnRlZD90aGlzLmNvbG9yfHx0aGlzLmRhdGEudGV4dENvbG9yfHx0aGlzLmRhdGEuY29sb3I6dGhpcy5jb2xvcjtyZXR1cm4gZSYmKHRbXCJ0ZXh0LVwiK2VdPSEwKSx0fSxiYXJTdHlsZTpmdW5jdGlvbigpe2lmKCF0aGlzLmFjdGl2ZXx8IXRoaXMuZGF0YS5oaWdobGlnaHQpcmV0dXJuXCJkaXNwbGF5OiBub25lO1wifSxjb21wdXRlZFRhYkluZGV4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGlzYWJsZXx8dGhpcy5hY3RpdmU/LTE6dGhpcy50YWJpbmRleHx8MH19LG1ldGhvZHM6e19fZ2V0VGFiTWV0YTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jb3VudD9bdChRQ2hpcCx7c3RhdGljQ2xhc3M6XCJxLXRhYi1tZXRhXCIscHJvcHM6e2Zsb2F0aW5nOiEwfX0sW3RoaXMuY291bnRdKV06dGhpcy5hbGVydD9bdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFiLW1ldGEgcS1kb3RcIn0pXTp2b2lkIDB9LF9fZ2V0VGFiQ29udGVudDpmdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gdGhpcy5pY29uJiZlLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFiLWljb24tcGFyZW50IHJlbGF0aXZlLXBvc2l0aW9uXCJ9LFt0KFFJY29uLHtzdGF0aWNDbGFzczpcInEtdGFiLWljb25cIixwcm9wczp7bmFtZTp0aGlzLmljb259fSksdGhpcy5fX2dldFRhYk1ldGEodCldKSksdGhpcy5sYWJlbCYmZS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYi1sYWJlbC1wYXJlbnQgcmVsYXRpdmUtcG9zaXRpb25cIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYi1sYWJlbFwifSxbdGhpcy5sYWJlbF0pLHRoaXMuX19nZXRUYWJNZXRhKHQpXSkpLChlPWUuY29uY2F0KHRoaXMuJHNsb3RzLmRlZmF1bHQpKS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYnMtYmFyXCIsc3R5bGU6dGhpcy5iYXJTdHlsZSxjbGFzczp0aGlzLmRhdGEudW5kZXJsaW5lQ2xhc3N9KSksZS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYi1mb2N1cy1oZWxwZXIgYWJzb2x1dGUtZnVsbFwiLGF0dHJzOnt0YWJpbmRleDp0aGlzLmNvbXB1dGVkVGFiSW5kZXh9fSkpLGV9fX0sUVJvdXRlVGFiPXtuYW1lOlwiUVJvdXRlVGFiXCIsbWl4aW5zOltUYWJNaXhpbixSb3V0ZXJMaW5rTWl4aW5dLGluamVjdDp7c2VsZWN0VGFiUm91dGVyOnt9fSx3YXRjaDp7JHJvdXRlOmZ1bmN0aW9uKCl7dGhpcy5jaGVja0lmU2VsZWN0ZWQoKX19LG1ldGhvZHM6e3NlbGVjdDpmdW5jdGlvbigpe3RoaXMuJGVtaXQoXCJjbGlja1wiLHRoaXMubmFtZSksdGhpcy5kaXNhYmxlfHwodGhpcy4kZWwuZGlzcGF0Y2hFdmVudChldnQpLHRoaXMuc2VsZWN0VGFiUm91dGVyKHt2YWx1ZTp0aGlzLm5hbWUsc2VsZWN0ZWQ6ITB9KSl9LGNoZWNrSWZTZWxlY3RlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy4kbmV4dFRpY2soZnVuY3Rpb24oKXtpZih0LiRlbC5jbGFzc0xpc3QuY29udGFpbnMoXCJxLXJvdXRlci1saW5rLWV4YWN0LWFjdGl2ZVwiKSl0LnNlbGVjdFRhYlJvdXRlcih7dmFsdWU6dC5uYW1lLHNlbGVjdGFibGU6ITAsZXhhY3Q6ITB9KTtlbHNlIGlmKHQuJGVsLmNsYXNzTGlzdC5jb250YWlucyhcInEtcm91dGVyLWxpbmstYWN0aXZlXCIpKXt2YXIgZT10LiRyb3V0ZXIucmVzb2x2ZSh0LnRvLHZvaWQgMCx0LmFwcGVuZCk7dC5zZWxlY3RUYWJSb3V0ZXIoe3ZhbHVlOnQubmFtZSxzZWxlY3RhYmxlOiEwLHByaW9yaXR5OmUuaHJlZi5sZW5ndGh9KX1lbHNlIHQuYWN0aXZlJiZ0LnNlbGVjdFRhYlJvdXRlcih7dmFsdWU6bnVsbH0pfSl9fSxtb3VudGVkOmZ1bmN0aW9uKCl7dGhpcy5jaGVja0lmU2VsZWN0ZWQoKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJyb3V0ZXItbGlua1wiLHtwcm9wczp7dGFnOlwiYVwiLHRvOnRoaXMudG8sZXhhY3Q6dGhpcy5leGFjdCxhcHBlbmQ6dGhpcy5hcHBlbmQscmVwbGFjZTp0aGlzLnJlcGxhY2UsZXZlbnQ6cm91dGVyTGlua0V2ZW50TmFtZSxhY3RpdmVDbGFzczpcInEtcm91dGVyLWxpbmstYWN0aXZlXCIsZXhhY3RBY3RpdmVDbGFzczpcInEtcm91dGVyLWxpbmstZXhhY3QtYWN0aXZlXCJ9LGF0dHJzOnt0YWJpbmRleDotMX0sbmF0aXZlT246e2NsaWNrOnRoaXMuc2VsZWN0LGtleXVwOmZ1bmN0aW9uKHQpe3JldHVybiAxMz09PXQua2V5Q29kZSYmZS5zZWxlY3QodCl9fSxzdGF0aWNDbGFzczpcInEtbGluayBxLXRhYiBjb2x1bW4gZmxleC1jZW50ZXIgcmVsYXRpdmUtcG9zaXRpb25cIixjbGFzczp0aGlzLmNsYXNzZXMsZGlyZWN0aXZlczpbe25hbWU6XCJyaXBwbGVcIn1dfSx0aGlzLl9fZ2V0VGFiQ29udGVudCh0KSl9fSxRVGFiPXtuYW1lOlwiUVRhYlwiLG1peGluczpbVGFiTWl4aW5dLHByb3BzOntkZWZhdWx0OkJvb2xlYW59LG1ldGhvZHM6e3NlbGVjdDpmdW5jdGlvbigpe3RoaXMuJGVtaXQoXCJjbGlja1wiLHRoaXMubmFtZSksdGhpcy5kaXNhYmxlfHx0aGlzLnNlbGVjdFRhYih0aGlzLm5hbWUpfX0sbW91bnRlZDpmdW5jdGlvbigpe3RoaXMuZGVmYXVsdCYmIXRoaXMuZGlzYWJsZSYmdGhpcy5zZWxlY3QoKX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYiBjb2x1bW4gZmxleC1jZW50ZXIgcmVsYXRpdmUtcG9zaXRpb25cIixjbGFzczp0aGlzLmNsYXNzZXMsYXR0cnM6e1wiZGF0YS10YWItbmFtZVwiOnRoaXMubmFtZX0sb246e2NsaWNrOnRoaXMuc2VsZWN0LGtleXVwOmZ1bmN0aW9uKHQpe3JldHVybiAxMz09PXQua2V5Q29kZSYmZS5zZWxlY3QodCl9fSxkaXJlY3RpdmVzOlt7bmFtZTpcInJpcHBsZVwifV19LHRoaXMuX19nZXRUYWJDb250ZW50KHQpKX19LFFUYWJQYW5lPXtuYW1lOlwiUVRhYlBhbmVcIixpbmplY3Q6e2RhdGE6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUVRhYlBhbmUgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUVRhYnNcIil9fX0scHJvcHM6e25hbWU6e3R5cGU6U3RyaW5nLHJlcXVpcmVkOiEwfSxrZWVwQWxpdmU6Qm9vbGVhbn0sZGF0YTpmdW5jdGlvbigpe3JldHVybntzaG93bjohMX19LGNvbXB1dGVkOnthY3RpdmU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhLnRhYk5hbWU9PT10aGlzLm5hbWV9LGNsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm57aGlkZGVuOiF0aGlzLmFjdGl2ZSxcImFuaW1hdGUtZmFkZS1sZWZ0XCI6XCJsZWZ0XCI9PT10aGlzLmRhdGEuZGlyZWN0aW9uLFwiYW5pbWF0ZS1mYWRlLXJpZ2h0XCI6XCJyaWdodFwiPT09dGhpcy5kYXRhLmRpcmVjdGlvbn19fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFiLXBhbmVcIixjbGFzczp0aGlzLmNsYXNzZXN9LHRoaXMuJHNsb3RzLmRlZmF1bHQpO2lmKHRoaXMua2VlcEFsaXZlKXtpZighdGhpcy5zaG93biYmIXRoaXMuYWN0aXZlKXJldHVybjtyZXR1cm4gdGhpcy5zaG93bj0hMCxlfWlmKHRoaXMuc2hvd249dGhpcy5hY3RpdmUsdGhpcy5hY3RpdmUpcmV0dXJuIGV9fSxzY3JvbGxOYXZpZ2F0aW9uU3BlZWQ9NSxkZWJvdW5jZURlbGF5PTUwO2Z1bmN0aW9uIGdldFVuZGVybGluZUNsYXNzKHQpe2lmKHQpcmV0dXJuXCJ0ZXh0LVwiK3R9dmFyIFFUYWJzPXtuYW1lOlwiUVRhYnNcIixwcm92aWRlOmZ1bmN0aW9uKCl7cmV0dXJue2RhdGE6dGhpcy5kYXRhLHNlbGVjdFRhYjp0aGlzLnNlbGVjdFRhYixzZWxlY3RUYWJSb3V0ZXI6dGhpcy5zZWxlY3RUYWJSb3V0ZXJ9fSxkaXJlY3RpdmVzOntUb3VjaFN3aXBlOlRvdWNoU3dpcGV9LHByb3BzOnt2YWx1ZTpTdHJpbmcsYWxpZ246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJsZWZ0XCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcImxlZnRcIixcImNlbnRlclwiLFwicmlnaHRcIixcImp1c3RpZnlcIl0uaW5jbHVkZXModCl9fSxwb3NpdGlvbjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInRvcFwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJ0b3BcIixcImJvdHRvbVwiXS5pbmNsdWRlcyh0KX19LGNvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSx0ZXh0Q29sb3I6U3RyaW5nLGludmVydGVkOkJvb2xlYW4sdHdvTGluZXM6Qm9vbGVhbixnbG9zc3k6Qm9vbGVhbixhbmltYXRlZDpCb29sZWFuLHN3aXBlYWJsZTpCb29sZWFuLHBhbmVzQ29udGFpbmVyQ2xhc3M6U3RyaW5nLHVuZGVybGluZUNvbG9yOlN0cmluZ30sZGF0YTpmdW5jdGlvbigpe3JldHVybntjdXJyZW50RWw6bnVsbCxwb3NiYXI6e3dpZHRoOjAsbGVmdDowfSxkYXRhOntoaWdobGlnaHQ6ITAsdGFiTmFtZTp0aGlzLnZhbHVlfHxcIlwiLGNvbG9yOnRoaXMuY29sb3IsdGV4dENvbG9yOnRoaXMudGV4dENvbG9yLGludmVydGVkOnRoaXMuaW52ZXJ0ZWQsdW5kZXJsaW5lQ2xhc3M6Z2V0VW5kZXJsaW5lQ2xhc3ModGhpcy51bmRlcmxpbmVDb2xvciksZGlyZWN0aW9uOm51bGx9fX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuc2VsZWN0VGFiKHQpfSxjb2xvcjpmdW5jdGlvbih0KXt0aGlzLmRhdGEuY29sb3I9dH0sdGV4dENvbG9yOmZ1bmN0aW9uKHQpe3RoaXMuZGF0YS50ZXh0Q29sb3I9dH0saW52ZXJ0ZWQ6ZnVuY3Rpb24odCl7dGhpcy5kYXRhLmludmVydGVkPXR9LHVuZGVybGluZUNvbG9yOmZ1bmN0aW9uKHQpe3RoaXMuZGF0YS51bmRlcmxpbmVDbGFzcz1nZXRVbmRlcmxpbmVDbGFzcyh0KX19LGNvbXB1dGVkOntjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuW1wicS10YWJzLXBvc2l0aW9uLVwiK3RoaXMucG9zaXRpb24sXCJxLXRhYnMtXCIrKHRoaXMuaW52ZXJ0ZWQ/XCJpbnZlcnRlZFwiOlwibm9ybWFsXCIpLHRoaXMudHdvTGluZXM/XCJxLXRhYnMtdHdvLWxpbmVzXCI6XCJcIl19LGlubmVyQ2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVtcInEtdGFicy1hbGlnbi1cIit0aGlzLmFsaWduXTtyZXR1cm4gdGhpcy5nbG9zc3kmJnQucHVzaChcImdsb3NzeVwiKSx0aGlzLmludmVydGVkP3QucHVzaChcInRleHQtXCIrKHRoaXMudGV4dENvbG9yfHx0aGlzLmNvbG9yKSk6KHQucHVzaChcImJnLVwiK3RoaXMuY29sb3IpLHQucHVzaChcInRleHQtXCIrKHRoaXMudGV4dENvbG9yfHxcIndoaXRlXCIpKSksdH0scG9zYmFyQ2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmludmVydGVkJiZ0LnB1c2goXCJ0ZXh0LVwiKyh0aGlzLnRleHRDb2xvcnx8dGhpcy5jb2xvcikpLHRoaXMuZGF0YS5oaWdobGlnaHQmJnQucHVzaChcImhpZ2hsaWdodFwiKSx0fX0sbWV0aG9kczp7Z286ZnVuY3Rpb24odCl7dmFyIGU9MDtpZih0aGlzLmRhdGEudGFiTmFtZSl7dmFyIGk9dGhpcy4kcmVmcy5zY3JvbGxlci5xdWVyeVNlbGVjdG9yKCdbZGF0YS10YWItbmFtZT1cIicrdGhpcy5kYXRhLnRhYk5hbWUrJ1wiXScpO2kmJihlPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwodGhpcy4kcmVmcy5zY3JvbGxlci5jaGlsZHJlbixpKSl9dmFyIHM9dGhpcy4kcmVmcy5zY3JvbGxlci5xdWVyeVNlbGVjdG9yQWxsKFwiW2RhdGEtdGFiLW5hbWVdXCIpOyhlKz10KT4tMSYmZTxzLmxlbmd0aCYmdGhpcy5zZWxlY3RUYWIoc1tlXS5nZXRBdHRyaWJ1dGUoXCJkYXRhLXRhYi1uYW1lXCIpKX0scHJldmlvdXM6ZnVuY3Rpb24oKXt0aGlzLmdvKC0xKX0sbmV4dDpmdW5jdGlvbigpe3RoaXMuZ28oMSl9LHNlbGVjdFRhYjpmdW5jdGlvbih0KXtpZih0aGlzLmRhdGEudGFiTmFtZSE9PXQpe3RoaXMuZGF0YS50YWJOYW1lPXQ7dmFyIGU9dGhpcy5fX2dldFRhYkVsQnlOYW1lKHQpO2lmKGUpaWYodGhpcy5fX3Njcm9sbFRvVGFiKGUpLHRoaXMuY3VycmVudEVsPWUsdGhpcy5vbGRFbCl7aWYodGhpcy5hbmltYXRlZCl7dmFyIGk9dGhpcy4kcmVmcy5zY3JvbGxlci5jaGlsZHJlbjt0aGlzLmRhdGEuZGlyZWN0aW9uPUFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoaSxlKTxBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGksdGhpcy5vbGRFbCk/XCJsZWZ0XCI6XCJyaWdodFwifXRoaXMuX19yZXBvc2l0aW9uQmFyKCl9ZWxzZSB0aGlzLm9sZEVsPWU7ZWxzZSB0aGlzLm9sZEVsPW51bGwsdGhpcy5kYXRhLmRpcmVjdGlvbj1udWxsO3RoaXMuJGVtaXQoXCJpbnB1dFwiLHQsdGhpcy5kYXRhLmRpcmVjdGlvbiksdGhpcy4kZW1pdChcInNlbGVjdFwiLHQsdGhpcy5kYXRhLmRpcmVjdGlvbil9fSxzZWxlY3RUYWJSb3V0ZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXQudmFsdWUscz10LnNlbGVjdGFibGUsbj10LmV4YWN0LG89dC5zZWxlY3RlZCxyPXQucHJpb3JpdHksYT0hdGhpcy5idWZmZXIubGVuZ3RoLGw9YT8tMTp0aGlzLmJ1ZmZlci5maW5kSW5kZXgoZnVuY3Rpb24odCl7cmV0dXJuIHQudmFsdWU9PT1pfSk7aWYobD4tMSl7dmFyIGM9dGhpcy5idWZmZXJbbF07biYmKGMuZXhhY3Q9bikscyYmKGMuc2VsZWN0YWJsZT1zKSxvJiYoYy5zZWxlY3RlZD1vKSxyJiYoYy5wcmlvcml0eT1yKX1lbHNlIHRoaXMuYnVmZmVyLnB1c2godCk7YSYmKHRoaXMuYnVmZmVyVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PWUuYnVmZmVyLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuZXhhY3QmJnQuc2VsZWN0ZWR9KXx8ZS5idWZmZXIuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5zZWxlY3RhYmxlJiZ0LnNlbGVjdGVkfSl8fGUuYnVmZmVyLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuZXhhY3R9KXx8ZS5idWZmZXIuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNlbGVjdGFibGV9KS5zb3J0KGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUucHJpb3JpdHktdC5wcmlvcml0eX0pWzBdfHxlLmJ1ZmZlclswXTtlLmJ1ZmZlci5sZW5ndGg9MCxlLnNlbGVjdFRhYih0LnZhbHVlKX0sMTAwKSl9LF9fc3dpcGU6ZnVuY3Rpb24odCl7dGhpcy5nbyhcImxlZnRcIj09PXQuZGlyZWN0aW9uPzE6LTEpfSxfX3JlcG9zaXRpb25CYXI6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2NsZWFyVGltZW91dCh0aGlzLnRpbWVyKTt2YXIgZT0hMSxpPXRoaXMuJHJlZnMucG9zYmFyLHM9dGhpcy5jdXJyZW50RWw7aWYoITEhPT10aGlzLmRhdGEuaGlnaGxpZ2h0JiYodGhpcy5kYXRhLmhpZ2hsaWdodD0hMSxlPSEwKSwhcylyZXR1cm4gdGhpcy5maW5hbFBvc2Jhcj17d2lkdGg6MCxsZWZ0OjB9LHZvaWQgdGhpcy5fX3NldFBvc2l0aW9uQmFyKDAsMCk7dmFyIG49aS5wYXJlbnROb2RlLm9mZnNldExlZnQ7ZSYmdGhpcy5vbGRFbCYmdGhpcy5fX3NldFBvc2l0aW9uQmFyKHRoaXMub2xkRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsdGhpcy5vbGRFbC5vZmZzZXRMZWZ0LW4pLHRoaXMudGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBlPXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgsbz1zLm9mZnNldExlZnQtbjtpLmNsYXNzTGlzdC5yZW1vdmUoXCJjb250cmFjdFwiKSx0Lm9sZEVsPXMsdC5maW5hbFBvc2Jhcj17d2lkdGg6ZSxsZWZ0Om99LHQuX19zZXRQb3NpdGlvbkJhcih0LnBvc2Jhci5sZWZ0PG8/bytlLXQucG9zYmFyLmxlZnQ6dC5wb3NiYXIubGVmdCt0LnBvc2Jhci53aWR0aC1vLHQucG9zYmFyLmxlZnQ8bz90LnBvc2Jhci5sZWZ0Om8pfSwyMCl9LF9fc2V0UG9zaXRpb25CYXI6ZnVuY3Rpb24odCxlKXtpZih2b2lkIDA9PT10JiYodD0wKSx2b2lkIDA9PT1lJiYoZT0wKSx0aGlzLnBvc2Jhci53aWR0aCE9PXR8fHRoaXMucG9zYmFyLmxlZnQhPT1lKXt0aGlzLnBvc2Jhcj17d2lkdGg6dCxsZWZ0OmV9O3ZhciBpPXRoaXMuJHEuaTE4bi5ydGw/ZSt0OmU7dGhpcy4kcmVmcy5wb3NiYXIuc3R5bGUudHJhbnNmb3JtPVwidHJhbnNsYXRlWChcIitpK1wicHgpIHNjYWxlWChcIit0K1wiKVwifWVsc2UgdGhpcy5fX3VwZGF0ZVBvc2JhclRyYW5zaXRpb24oKX0sX191cGRhdGVQb3NiYXJUcmFuc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpcy5maW5hbFBvc2Jhci53aWR0aD09PXRoaXMucG9zYmFyLndpZHRoJiZ0aGlzLmZpbmFsUG9zYmFyLmxlZnQ9PT10aGlzLnBvc2Jhci5sZWZ0KXJldHVybiB0aGlzLnBvc2Jhcj17fSx2b2lkKCEwIT09dGhpcy5kYXRhLmhpZ2hsaWdodCYmKHRoaXMuZGF0YS5oaWdobGlnaHQ9ITApKTt0aGlzLiRyZWZzLnBvc2Jhci5jbGFzc0xpc3QuYWRkKFwiY29udHJhY3RcIiksdGhpcy5fX3NldFBvc2l0aW9uQmFyKHRoaXMuZmluYWxQb3NiYXIud2lkdGgsdGhpcy5maW5hbFBvc2Jhci5sZWZ0KX0sX19yZWRyYXc6ZnVuY3Rpb24oKXt0aGlzLiRxLnBsYXRmb3JtLmlzLmRlc2t0b3AmJih0aGlzLnNjcm9sbGVyV2lkdGg9d2lkdGgodGhpcy4kcmVmcy5zY3JvbGxlciksMD09PXRoaXMuc2Nyb2xsZXJXaWR0aCYmMD09PXRoaXMuJHJlZnMuc2Nyb2xsZXIuc2Nyb2xsV2lkdGh8fCh0aGlzLnNjcm9sbGVyV2lkdGgrNTx0aGlzLiRyZWZzLnNjcm9sbGVyLnNjcm9sbFdpZHRoPyh0aGlzLiRyZWZzLnRhYnMuY2xhc3NMaXN0LmFkZChcInNjcm9sbGFibGVcIiksdGhpcy5zY3JvbGxhYmxlPSEwLHRoaXMuX191cGRhdGVTY3JvbGxJbmRpY2F0b3IoKSk6KHRoaXMuJHJlZnMudGFicy5jbGFzc0xpc3QucmVtb3ZlKFwic2Nyb2xsYWJsZVwiKSx0aGlzLnNjcm9sbGFibGU9ITEpKSl9LF9fdXBkYXRlU2Nyb2xsSW5kaWNhdG9yOmZ1bmN0aW9uKCl7aWYodGhpcy4kcS5wbGF0Zm9ybS5pcy5kZXNrdG9wJiZ0aGlzLnNjcm9sbGFibGUpe3ZhciB0PXRoaXMuJHJlZnMuc2Nyb2xsZXIuc2Nyb2xsTGVmdCt3aWR0aCh0aGlzLiRyZWZzLnNjcm9sbGVyKSs1Pj10aGlzLiRyZWZzLnNjcm9sbGVyLnNjcm9sbFdpZHRoP1wiYWRkXCI6XCJyZW1vdmVcIjt0aGlzLiRyZWZzLmxlZnRTY3JvbGwuY2xhc3NMaXN0W3RoaXMuJHJlZnMuc2Nyb2xsZXIuc2Nyb2xsTGVmdDw9MD9cImFkZFwiOlwicmVtb3ZlXCJdKFwiZGlzYWJsZWRcIiksdGhpcy4kcmVmcy5yaWdodFNjcm9sbC5jbGFzc0xpc3RbdF0oXCJkaXNhYmxlZFwiKX19LF9fZ2V0VGFiRWxCeU5hbWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy4kY2hpbGRyZW4uZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5uYW1lPT09dCYmZS4kZWwmJjE9PT1lLiRlbC5ub2RlVHlwZX0pO2lmKGUpcmV0dXJuIGUuJGVsfSxfX2ZpbmRUYWJBbmRTY3JvbGw6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpLl9fc2Nyb2xsVG9UYWIoaS5fX2dldFRhYkVsQnlOYW1lKHQpLGUpfSw0KmRlYm91bmNlRGVsYXkpfSxfX3Njcm9sbFRvVGFiOmZ1bmN0aW9uKHQsZSl7aWYodCYmdGhpcy5zY3JvbGxhYmxlKXt2YXIgaT10aGlzLiRyZWZzLnNjcm9sbGVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPXMud2lkdGgsbz1zLmxlZnQtaS5sZWZ0O288MD9lP3RoaXMuJHJlZnMuc2Nyb2xsZXIuc2Nyb2xsTGVmdCs9bzp0aGlzLl9fYW5pbVNjcm9sbFRvKHRoaXMuJHJlZnMuc2Nyb2xsZXIuc2Nyb2xsTGVmdCtvKToobys9bi10aGlzLiRyZWZzLnNjcm9sbGVyLm9mZnNldFdpZHRoKT4wJiYoZT90aGlzLiRyZWZzLnNjcm9sbGVyLnNjcm9sbExlZnQrPW86dGhpcy5fX2FuaW1TY3JvbGxUbyh0aGlzLiRyZWZzLnNjcm9sbGVyLnNjcm9sbExlZnQrbykpfX0sX19hbmltU2Nyb2xsVG86ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9fc3RvcEFuaW1TY3JvbGwoKSx0aGlzLl9fc2Nyb2xsVG93YXJkcyh0KSx0aGlzLnNjcm9sbFRpbWVyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7ZS5fX3Njcm9sbFRvd2FyZHModCkmJmUuX19zdG9wQW5pbVNjcm9sbCgpfSw1KX0sX19zY3JvbGxUb1N0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fX2FuaW1TY3JvbGxUbygwKX0sX19zY3JvbGxUb0VuZDpmdW5jdGlvbigpe3RoaXMuX19hbmltU2Nyb2xsVG8oOTk5OSl9LF9fc3RvcEFuaW1TY3JvbGw6ZnVuY3Rpb24oKXtjbGVhckludGVydmFsKHRoaXMuc2Nyb2xsVGltZXIpfSxfX3Njcm9sbFRvd2FyZHM6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy4kcmVmcy5zY3JvbGxlci5zY3JvbGxMZWZ0LGk9dDxlPy0xOjEscz0hMTtyZXR1cm4oZSs9aSpzY3JvbGxOYXZpZ2F0aW9uU3BlZWQpPDA/KHM9ITAsZT0wKTooLTE9PT1pJiZlPD10fHwxPT09aSYmZT49dCkmJihzPSEwLGU9dCksdGhpcy4kcmVmcy5zY3JvbGxlci5zY3JvbGxMZWZ0PWUsc319LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFicyBmbGV4IG5vLXdyYXAgb3ZlcmZsb3ctaGlkZGVuXCIsY2xhc3M6dGhpcy5jbGFzc2VzfSxbdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFicy1oZWFkIHJvd1wiLHJlZjpcInRhYnNcIixjbGFzczp0aGlzLmlubmVyQ2xhc3Nlc30sW3QoXCJkaXZcIix7cmVmOlwic2Nyb2xsZXJcIixzdGF0aWNDbGFzczpcInEtdGFicy1zY3JvbGxlciByb3cgbm8td3JhcFwifSxbdGhpcy4kc2xvdHMudGl0bGUsdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInJlbGF0aXZlLXBvc2l0aW9uIHNlbGYtc3RyZXRjaCBxLXRhYnMtZ2xvYmFsLWJhci1jb250YWluZXJcIixjbGFzczp0aGlzLnBvc2JhckNsYXNzZXN9LFt0KFwiZGl2XCIse3JlZjpcInBvc2JhclwiLHN0YXRpY0NsYXNzOlwicS10YWJzLWJhciBxLXRhYnMtZ2xvYmFsLWJhclwiLGNsYXNzOnRoaXMuZGF0YS51bmRlcmxpbmVDbGFzcyxvbjp7dHJhbnNpdGlvbmVuZDp0aGlzLl9fdXBkYXRlUG9zYmFyVHJhbnNpdGlvbn19KV0pXSksdChcImRpdlwiLHtyZWY6XCJsZWZ0U2Nyb2xsXCIsc3RhdGljQ2xhc3M6XCJyb3cgZmxleC1jZW50ZXIgcS10YWJzLWxlZnQtc2Nyb2xsXCIsb246e21vdXNlZG93bjp0aGlzLl9fc2Nyb2xsVG9TdGFydCx0b3VjaHN0YXJ0OnRoaXMuX19zY3JvbGxUb1N0YXJ0LG1vdXNldXA6dGhpcy5fX3N0b3BBbmltU2Nyb2xsLG1vdXNlbGVhdmU6dGhpcy5fX3N0b3BBbmltU2Nyb2xsLHRvdWNoZW5kOnRoaXMuX19zdG9wQW5pbVNjcm9sbH19LFt0KFFJY29uLHtwcm9wczp7bmFtZTp0aGlzLiRxLmljb24udGFicy5sZWZ0fX0pXSksdChcImRpdlwiLHtyZWY6XCJyaWdodFNjcm9sbFwiLHN0YXRpY0NsYXNzOlwicm93IGZsZXgtY2VudGVyIHEtdGFicy1yaWdodC1zY3JvbGxcIixvbjp7bW91c2Vkb3duOnRoaXMuX19zY3JvbGxUb0VuZCx0b3VjaHN0YXJ0OnRoaXMuX19zY3JvbGxUb0VuZCxtb3VzZXVwOnRoaXMuX19zdG9wQW5pbVNjcm9sbCxtb3VzZWxlYXZlOnRoaXMuX19zdG9wQW5pbVNjcm9sbCx0b3VjaGVuZDp0aGlzLl9fc3RvcEFuaW1TY3JvbGx9fSxbdChRSWNvbix7cHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLnRhYnMucmlnaHR9fSldKV0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYnMtcGFuZXNcIixjbGFzczp0aGlzLnBhbmVzQ29udGFpbmVyQ2xhc3MsZGlyZWN0aXZlczp0aGlzLnN3aXBlYWJsZT9be25hbWU6XCJ0b3VjaC1zd2lwZVwiLHZhbHVlOnRoaXMuX19zd2lwZX1dOm51bGx9LHRoaXMuJHNsb3RzLmRlZmF1bHQpXSl9LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLnRpbWVyPW51bGwsdGhpcy5zY3JvbGxUaW1lcj1udWxsLHRoaXMuYnVmZmVyVGltZXI9bnVsbCx0aGlzLmJ1ZmZlcj1bXSx0aGlzLnNjcm9sbGFibGU9IXRoaXMuJHEucGxhdGZvcm0uaXMuZGVza3RvcCx0aGlzLl9fcmVkcmF3PWRlYm91bmNlKHRoaXMuX19yZWRyYXcsZGVib3VuY2VEZWxheSksdGhpcy5fX3VwZGF0ZVNjcm9sbEluZGljYXRvcj1kZWJvdW5jZSh0aGlzLl9fdXBkYXRlU2Nyb2xsSW5kaWNhdG9yLGRlYm91bmNlRGVsYXkpfSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3QuJHJlZnMuc2Nyb2xsZXImJih0LiRyZWZzLnNjcm9sbGVyLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0Ll9fdXBkYXRlU2Nyb2xsSW5kaWNhdG9yLGxpc3Rlbk9wdHMucGFzc2l2ZSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0Ll9fcmVkcmF3LGxpc3Rlbk9wdHMucGFzc2l2ZSksXCJcIiE9PXQuZGF0YS50YWJOYW1lJiZ0LnZhbHVlJiZ0LnNlbGVjdFRhYih0LnZhbHVlKSx0Ll9fcmVkcmF3KCksdC5fX2ZpbmRUYWJBbmRTY3JvbGwodC5kYXRhLnRhYk5hbWUsITApKX0pfSxiZWZvcmVEZXN0cm95OmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLGNsZWFyVGltZW91dCh0aGlzLmJ1ZmZlclRpbWVyKSx0aGlzLl9fc3RvcEFuaW1TY3JvbGwoKSx0aGlzLiRyZWZzLnNjcm9sbGVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIix0aGlzLl9fdXBkYXRlU2Nyb2xsSW5kaWNhdG9yLGxpc3Rlbk9wdHMucGFzc2l2ZSksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIix0aGlzLl9fcmVkcmF3LGxpc3Rlbk9wdHMucGFzc2l2ZSksdGhpcy5fX3JlZHJhdy5jYW5jZWwoKSx0aGlzLl9fdXBkYXRlU2Nyb2xsSW5kaWNhdG9yLmNhbmNlbCgpfX0sVG9wPXtjb21wdXRlZDp7bWFyZ2luYWxzUHJvcHM6ZnVuY3Rpb24oKXtyZXR1cm57cGFnaW5hdGlvbjp0aGlzLmNvbXB1dGVkUGFnaW5hdGlvbixwYWdlc051bWJlcjp0aGlzLnBhZ2VzTnVtYmVyLGlzRmlyc3RQYWdlOnRoaXMuaXNGaXJzdFBhZ2UsaXNMYXN0UGFnZTp0aGlzLmlzTGFzdFBhZ2UscHJldlBhZ2U6dGhpcy5wcmV2UGFnZSxuZXh0UGFnZTp0aGlzLm5leHRQYWdlLGluRnVsbHNjcmVlbjp0aGlzLmluRnVsbHNjcmVlbix0b2dnbGVGdWxsc2NyZWVuOnRoaXMudG9nZ2xlRnVsbHNjcmVlbn19fSxtZXRob2RzOntnZXRUb3A6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy4kc2NvcGVkU2xvdHMudG9wLGk9dGhpcy4kc2NvcGVkU2xvdHNbXCJ0b3AtbGVmdFwiXSxzPXRoaXMuJHNjb3BlZFNsb3RzW1widG9wLXJpZ2h0XCJdLG49dGhpcy4kc2NvcGVkU2xvdHNbXCJ0b3Atc2VsZWN0aW9uXCJdLG89dGhpcy5oYXNTZWxlY3Rpb25Nb2RlJiZuJiZ0aGlzLnJvd3NTZWxlY3RlZE51bWJlcj4wLHI9XCJxLXRhYmxlLXRvcCByZWxhdGl2ZS1wb3NpdGlvbiByb3cgaXRlbXMtY2VudGVyXCIsYT1bXTtyZXR1cm4gZT90KFwiZGl2XCIse3N0YXRpY0NsYXNzOnJ9LFtlKHRoaXMubWFyZ2luYWxzUHJvcHMpXSk6KG8/YS5wdXNoKG4odGhpcy5tYXJnaW5hbHNQcm9wcykpOmk/YS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWNvbnRyb2xcIn0sW2kodGhpcy5tYXJnaW5hbHNQcm9wcyldKSk6dGhpcy50aXRsZSYmYS5wdXNoKHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWNvbnRyb2xcIn0sW3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLXRpdGxlXCJ9LHRoaXMudGl0bGUpXSkpLHMmJihhLnB1c2godChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtc2VwYXJhdG9yIGNvbFwifSkpLGEucHVzaCh0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1jb250cm9sXCJ9LFtzKHRoaXMubWFyZ2luYWxzUHJvcHMpXSkpKSwwIT09YS5sZW5ndGg/dChcImRpdlwiLHtzdGF0aWNDbGFzczpyfSxhKTp2b2lkIDApfX19LFFUaD17bmFtZTpcIlFUaFwiLHByb3BzOntwcm9wczpPYmplY3QsYXV0b1dpZHRoOkJvb2xlYW59LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZSxpPXRoaXM7aWYoIXRoaXMucHJvcHMpcmV0dXJuIHQoXCJ0ZFwiLHtjbGFzczp7XCJxLXRhYmxlLWNvbC1hdXRvLXdpZHRoXCI6dGhpcy5hdXRvV2lkdGh9fSx0aGlzLiRzbG90cy5kZWZhdWx0KTt2YXIgcz10aGlzLiR2bm9kZS5rZXksbj1bXS5jb25jYXQodGhpcy4kc2xvdHMuZGVmYXVsdCk7aWYocyl7aWYoIShlPXRoaXMucHJvcHMuY29sc01hcFtzXSkpcmV0dXJufWVsc2UgZT10aGlzLnByb3BzLmNvbDtlLnNvcnRhYmxlJiZuW1wicmlnaHRcIj09PWUuYWxpZ24/XCJ1bnNoaWZ0XCI6XCJwdXNoXCJdKHQoUUljb24se3Byb3BzOntuYW1lOnRoaXMuJHEuaWNvbi50YWJsZS5hcnJvd1VwfSxzdGF0aWNDbGFzczplLl9faWNvbkNsYXNzfSkpO3JldHVybiB0KFwidGhcIix7Y2xhc3M6W2UuX190aENsYXNzLHtcInEtdGFibGUtY29sLWF1dG8td2lkdGhcIjp0aGlzLmF1dG9XaWR0aH1dLG9uOmUuc29ydGFibGU/e2NsaWNrOmZ1bmN0aW9uKCl7aS5wcm9wcy5zb3J0KGUpfX06bnVsbH0sbil9fSxUYWJsZUhlYWRlcj17bWV0aG9kczp7Z2V0VGFibGVIZWFkZXI6ZnVuY3Rpb24odCl7dmFyIGU9W3RoaXMuZ2V0VGFibGVIZWFkZXJSb3codCldO3JldHVybiB0aGlzLmxvYWRpbmcmJmUucHVzaCh0KFwidHJcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLXByb2dyZXNzIGFuaW1hdGUtZmFkZVwifSxbdChcInRkXCIse2F0dHJzOntjb2xzcGFuOlwiMTAwJVwifX0sW3QoUVByb2dyZXNzLHtwcm9wczp7Y29sb3I6dGhpcy5jb2xvcixpbmRldGVybWluYXRlOiEwLGhlaWdodDpcIjJweFwifX0pXSldKSksdChcInRoZWFkXCIsZSl9LGdldFRhYmxlSGVhZGVyUm93OmZ1bmN0aW9uKHQpe3ZhciBlLGk9dGhpcyxzPXRoaXMuJHNjb3BlZFNsb3RzLmhlYWRlcixuPXRoaXMuJHNjb3BlZFNsb3RzW1wiaGVhZGVyLWNlbGxcIl07aWYocylyZXR1cm4gcyh0aGlzLmFkZFRhYmxlSGVhZGVyUm93TWV0YSh7aGVhZGVyOiEwLGNvbHM6dGhpcy5jb21wdXRlZENvbHMsc29ydDp0aGlzLnNvcnQsY29sc01hcDp0aGlzLmNvbXB1dGVkQ29sc01hcH0pKTtlPW4/ZnVuY3Rpb24odCl7cmV0dXJuIG4oe2NvbDp0LGNvbHM6aS5jb21wdXRlZENvbHMsc29ydDppLnNvcnQsY29sc01hcDppLmNvbXB1dGVkQ29sc01hcH0pfTpmdW5jdGlvbihlKXtyZXR1cm4gdChRVGgse2tleTplLm5hbWUscHJvcHM6e3Byb3BzOntjb2w6ZSxjb2xzOmkuY29tcHV0ZWRDb2xzLHNvcnQ6aS5zb3J0LGNvbHNNYXA6aS5jb21wdXRlZENvbHNNYXB9fSxzdHlsZTplLnN0eWxlLGNsYXNzOmUuY2xhc3Nlc30sZS5sYWJlbCl9O3ZhciBvPXRoaXMuY29tcHV0ZWRDb2xzLm1hcChlKTtyZXR1cm4gdGhpcy5zaW5nbGVTZWxlY3Rpb24mJiF0aGlzLmdyaWQ/by51bnNoaWZ0KHQoXCJ0aFwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtY29sLWF1dG8td2lkdGhcIn0sW1wiIFwiXSkpOnRoaXMubXVsdGlwbGVTZWxlY3Rpb24mJm8udW5zaGlmdCh0KFwidGhcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWNvbC1hdXRvLXdpZHRoXCJ9LFt0KFFDaGVja2JveCx7cHJvcHM6e2NvbG9yOnRoaXMuY29sb3IsdmFsdWU6dGhpcy5zb21lUm93c1NlbGVjdGVkP251bGw6dGhpcy5hbGxSb3dzU2VsZWN0ZWQsZGFyazp0aGlzLmRhcmt9LG9uOntpbnB1dDpmdW5jdGlvbih0KXtpLnNvbWVSb3dzU2VsZWN0ZWQmJih0PSExKSxpLl9fdXBkYXRlU2VsZWN0aW9uKGkuY29tcHV0ZWRSb3dzLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdFtpLnJvd0tleV19KSxpLmNvbXB1dGVkUm93cyx0KX19fSldKSksdChcInRyXCIsbyl9LGFkZFRhYmxlSGVhZGVyUm93TWV0YTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiB0aGlzLm11bHRpcGxlU2VsZWN0aW9uJiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJzZWxlY3RlZFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5zb21lUm93c1NlbGVjdGVkP1wic29tZVwiOmUuYWxsUm93c1NlbGVjdGVkfSxzZXQ6ZnVuY3Rpb24odCl7ZS5zb21lUm93c1NlbGVjdGVkJiYodD0hMSksZS5fX3VwZGF0ZVNlbGVjdGlvbihlLmNvbXB1dGVkUm93cy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIHRbZS5yb3dLZXldfSksZS5jb21wdXRlZFJvd3MsdCl9fSksdC5wYXJ0aWFsU2VsZWN0ZWQ9dGhpcy5zb21lUm93c1NlbGVjdGVkLHQubXVsdGlwbGVTZWxlY3Q9ITApLHR9fX0sVGFibGVCb2R5PXttZXRob2RzOntnZXRUYWJsZUJvZHk6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXRoaXMuJHNjb3BlZFNsb3RzLmJvZHkscz10aGlzLiRzY29wZWRTbG90c1tcImJvZHktY2VsbFwiXSxuPXRoaXMuJHNjb3BlZFNsb3RzW1widG9wLXJvd1wiXSxvPXRoaXMuJHNjb3BlZFNsb3RzW1wiYm90dG9tLXJvd1wiXSxyPVtdO3JldHVybiByPWk/dGhpcy5jb21wdXRlZFJvd3MubWFwKGZ1bmN0aW9uKHQpe3ZhciBzPXRbZS5yb3dLZXldLG49ZS5pc1Jvd1NlbGVjdGVkKHMpO3JldHVybiBpKGUuYWRkQm9keVJvd01ldGEoe2tleTpzLHJvdzp0LGNvbHM6ZS5jb21wdXRlZENvbHMsY29sc01hcDplLmNvbXB1dGVkQ29sc01hcCxfX3RyQ2xhc3M6bj9cInNlbGVjdGVkXCI6XCJcIn0pKX0pOnRoaXMuY29tcHV0ZWRSb3dzLm1hcChmdW5jdGlvbihpKXt2YXIgbj1pW2Uucm93S2V5XSxvPWUuaXNSb3dTZWxlY3RlZChuKSxyPXM/ZS5jb21wdXRlZENvbHMubWFwKGZ1bmN0aW9uKHQpe3JldHVybiBzKGUuYWRkQm9keUNlbGxNZXRhRGF0YSh7cm93OmksY29sOnR9KSl9KTplLmNvbXB1dGVkQ29scy5tYXAoZnVuY3Rpb24ocyl7dmFyIG49ZS4kc2NvcGVkU2xvdHNbXCJib2R5LWNlbGwtXCIrcy5uYW1lXTtyZXR1cm4gbj9uKGUuYWRkQm9keUNlbGxNZXRhRGF0YSh7cm93OmksY29sOnN9KSk6dChcInRkXCIse3N0YXRpY0NsYXNzOnMuX190ZENsYXNzLHN0eWxlOnMuc3R5bGUsY2xhc3M6cy5jbGFzc2VzfSxlLmdldENlbGxWYWx1ZShzLGkpKX0pO3JldHVybiBlLmhhc1NlbGVjdGlvbk1vZGUmJnIudW5zaGlmdCh0KFwidGRcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWNvbC1hdXRvLXdpZHRoXCJ9LFt0KFFDaGVja2JveCx7cHJvcHM6e3ZhbHVlOm8sY29sb3I6ZS5jb2xvcixkYXJrOmUuZGFya30sb246e2lucHV0OmZ1bmN0aW9uKHQpe2UuX191cGRhdGVTZWxlY3Rpb24oW25dLFtpXSx0KX19fSldKSksdChcInRyXCIse2tleTpuLGNsYXNzOntzZWxlY3RlZDpvfX0scil9KSxuJiZyLnVuc2hpZnQobih7Y29sczp0aGlzLmNvbXB1dGVkQ29sc30pKSxvJiZyLnB1c2gobyh7Y29sczp0aGlzLmNvbXB1dGVkQ29sc30pKSx0KFwidGJvZHlcIixyKX0sYWRkQm9keVJvd01ldGE6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdGhpcy5oYXNTZWxlY3Rpb25Nb2RlJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcInNlbGVjdGVkXCIse2dldDpmdW5jdGlvbigpe3JldHVybiBlLmlzUm93U2VsZWN0ZWQodC5rZXkpfSxzZXQ6ZnVuY3Rpb24oaSl7ZS5fX3VwZGF0ZVNlbGVjdGlvbihbdC5rZXldLFt0LnJvd10saSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJleHBhbmRcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuITA9PT1lLnJvd3NFeHBhbmRlZFt0LmtleV19LHNldDpmdW5jdGlvbihpKXtlLiRzZXQoZS5yb3dzRXhwYW5kZWQsdC5rZXksaSl9fSksdC5jb2xzPXQuY29scy5tYXAoZnVuY3Rpb24oaSl7dmFyIHM9T2JqZWN0LmFzc2lnbih7fSxpKTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHMsXCJ2YWx1ZVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXRDZWxsVmFsdWUoaSx0LnJvdyl9fSksc30pLHR9LGFkZEJvZHlDZWxsTWV0YURhdGE6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJ2YWx1ZVwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXRDZWxsVmFsdWUodC5jb2wsdC5yb3cpfX0pLHR9LGdldENlbGxWYWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBpPVwiZnVuY3Rpb25cIj09dHlwZW9mIHQuZmllbGQ/dC5maWVsZChlKTplW3QuZmllbGRdO3JldHVybiB0LmZvcm1hdD90LmZvcm1hdChpKTppfX19LEJvdHRvbT17Y29tcHV0ZWQ6e25hdkljb246ZnVuY3Rpb24oKXt2YXIgdD1bdGhpcy4kcS5pY29uLnRhYmxlLnByZXZQYWdlLHRoaXMuJHEuaWNvbi50YWJsZS5uZXh0UGFnZV07cmV0dXJuIHRoaXMuJHEuaTE4bi5ydGw/dC5yZXZlcnNlKCk6dH19LG1ldGhvZHM6e2dldEJvdHRvbTpmdW5jdGlvbih0KXtpZighdGhpcy5oaWRlQm90dG9tKXtpZih0aGlzLm5vdGhpbmdUb0Rpc3BsYXkpe3ZhciBlPXRoaXMuZmlsdGVyP3RoaXMubm9SZXN1bHRzTGFiZWx8fHRoaXMuJHEuaTE4bi50YWJsZS5ub1Jlc3VsdHM6dGhpcy5sb2FkaW5nP3RoaXMubG9hZGluZ0xhYmVsfHx0aGlzLiRxLmkxOG4udGFibGUubG9hZGluZzp0aGlzLm5vRGF0YUxhYmVsfHx0aGlzLiRxLmkxOG4udGFibGUubm9EYXRhO3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1ib3R0b20gcm93IGl0ZW1zLWNlbnRlciBxLXRhYmxlLW5vZGF0YVwifSxbdChRSWNvbix7cHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLnRhYmxlLndhcm5pbmd9fSksZV0pfXZhciBpPXRoaXMuJHNjb3BlZFNsb3RzLmJvdHRvbTtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtYm90dG9tIHJvdyBpdGVtcy1jZW50ZXJcIixjbGFzczppP251bGw6XCJqdXN0aWZ5LWVuZFwifSxpP1tpKHRoaXMubWFyZ2luYWxzUHJvcHMpXTp0aGlzLmdldFBhZ2luYXRpb25Sb3codCkpfX0sZ2V0UGFnaW5hdGlvblJvdzpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dGhpcy5jb21wdXRlZFBhZ2luYXRpb24ucm93c1BlclBhZ2Uscz10aGlzLnBhZ2luYXRpb25MYWJlbHx8dGhpcy4kcS5pMThuLnRhYmxlLnBhZ2luYXRpb24sbj10aGlzLiRzY29wZWRTbG90cy5wYWdpbmF0aW9uO3JldHVyblt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1jb250cm9sXCJ9LFt0KFwiZGl2XCIsW3RoaXMuaGFzU2VsZWN0aW9uTW9kZSYmdGhpcy5yb3dzU2VsZWN0ZWROdW1iZXI+MD8odGhpcy5zZWxlY3RlZFJvd3NMYWJlbHx8dGhpcy4kcS5pMThuLnRhYmxlLnNlbGVjdGVkUmVjb3JkcykodGhpcy5yb3dzU2VsZWN0ZWROdW1iZXIpOlwiXCJdKV0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLXNlcGFyYXRvciBjb2xcIn0pLHRoaXMucm93c1BlclBhZ2VPcHRpb25zLmxlbmd0aD4xJiZ0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1jb250cm9sXCJ9LFt0KFwic3BhblwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtYm90dG9tLWl0ZW1cIn0sW3RoaXMucm93c1BlclBhZ2VMYWJlbHx8dGhpcy4kcS5pMThuLnRhYmxlLnJlY29yZHNQZXJQYWdlXSksdChRU2VsZWN0LHtzdGF0aWNDbGFzczpcImlubGluZSBxLXRhYmxlLWJvdHRvbS1pdGVtXCIscHJvcHM6e2NvbG9yOnRoaXMuY29sb3IsdmFsdWU6aSxvcHRpb25zOnRoaXMuY29tcHV0ZWRSb3dzUGVyUGFnZU9wdGlvbnMsZGFyazp0aGlzLmRhcmssaGlkZVVuZGVybGluZTohMH0sb246e2lucHV0OmZ1bmN0aW9uKHQpe2Uuc2V0UGFnaW5hdGlvbih7cGFnZToxLHJvd3NQZXJQYWdlOnR9KX19fSldKXx8dm9pZCAwLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWNvbnRyb2xcIn0sW24/bih0aGlzLm1hcmdpbmFsc1Byb3BzKTpbdChcInNwYW5cIix7c3RhdGljQ2xhc3M6XCJxLXRhYmxlLWJvdHRvbS1pdGVtXCJ9LFtpP3ModGhpcy5maXJzdFJvd0luZGV4KzEsTWF0aC5taW4odGhpcy5sYXN0Um93SW5kZXgsdGhpcy5jb21wdXRlZFJvd3NOdW1iZXIpLHRoaXMuY29tcHV0ZWRSb3dzTnVtYmVyKTpzKDEsdGhpcy5jb21wdXRlZFJvd3NOdW1iZXIsdGhpcy5jb21wdXRlZFJvd3NOdW1iZXIpXSksdChRQnRuLHtwcm9wczp7Y29sb3I6dGhpcy5jb2xvcixyb3VuZDohMCxpY29uOnRoaXMubmF2SWNvblswXSxkZW5zZTohMCxmbGF0OiEwLGRpc2FibGU6dGhpcy5pc0ZpcnN0UGFnZX0sb246e2NsaWNrOnRoaXMucHJldlBhZ2V9fSksdChRQnRuLHtwcm9wczp7Y29sb3I6dGhpcy5jb2xvcixyb3VuZDohMCxpY29uOnRoaXMubmF2SWNvblsxXSxkZW5zZTohMCxmbGF0OiEwLGRpc2FibGU6dGhpcy5pc0xhc3RQYWdlfSxvbjp7Y2xpY2s6dGhpcy5uZXh0UGFnZX19KV1dKV19fX07ZnVuY3Rpb24gc29ydERhdGUodCxlKXtyZXR1cm4gbmV3IERhdGUodCktbmV3IERhdGUoZSl9dmFyIFNvcnQ9e3Byb3BzOntzb3J0TWV0aG9kOnt0eXBlOkZ1bmN0aW9uLGRlZmF1bHQ6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXMuY29sdW1ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5hbWU9PT1lfSk7aWYobnVsbD09PXN8fHZvaWQgMD09PXMuZmllbGQpcmV0dXJuIHQ7dmFyIG49aT8tMToxLG89XCJmdW5jdGlvblwiPT10eXBlb2Ygcy5maWVsZD9mdW5jdGlvbih0KXtyZXR1cm4gcy5maWVsZCh0KX06ZnVuY3Rpb24odCl7cmV0dXJuIHRbcy5maWVsZF19O3JldHVybiB0LnNvcnQoZnVuY3Rpb24odCxlKXt2YXIgaSxyPW8odCksYT1vKGUpO3JldHVybiBudWxsPT09cnx8dm9pZCAwPT09cj8tMSpuOm51bGw9PT1hfHx2b2lkIDA9PT1hPzEqbjpzLnNvcnQ/cy5zb3J0KHIsYSkqbjppc051bWJlcihyKSYmaXNOdW1iZXIoYSk/KHItYSkqbjppc0RhdGUocikmJmlzRGF0ZShhKT9zb3J0RGF0ZShyLGEpKm46XCJib29sZWFuXCI9PXR5cGVvZiByJiZcImJvb2xlYW5cIj09dHlwZW9mIGE/KHQtZSkqbjoocj0oaT1bcixhXS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuKHQrXCJcIikudG9Mb3dlckNhc2UoKX0pKVswXSk8KGE9aVsxXSk/LTEqbjpyPT09YT8wOm59KX19fSxjb21wdXRlZDp7Y29sdW1uVG9Tb3J0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb21wdXRlZFBhZ2luYXRpb24uc29ydEJ5O2lmKHQpcmV0dXJuIHRoaXMuY29sdW1ucy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLm5hbWU9PT10fSl8fG51bGx9fSxtZXRob2RzOntzb3J0OmZ1bmN0aW9uKHQpe3Q9PT1PYmplY3QodCkmJih0PXQubmFtZSk7dmFyIGU9dGhpcy5jb21wdXRlZFBhZ2luYXRpb24saT1lLnNvcnRCeSxzPWUuZGVzY2VuZGluZztpIT09dD8oaT10LHM9ITEpOnRoaXMuYmluYXJ5U3RhdGVTb3J0P3M9IXM6cz9pPW51bGw6cz0hMCx0aGlzLnNldFBhZ2luYXRpb24oe3NvcnRCeTppLGRlc2NlbmRpbmc6cyxwYWdlOjF9KX19fSxGaWx0ZXI9e3Byb3BzOntmaWx0ZXI6W1N0cmluZyxPYmplY3RdLGZpbHRlck1ldGhvZDp7dHlwZTpGdW5jdGlvbixkZWZhdWx0OmZ1bmN0aW9uKHQsZSxpLHMpe3ZvaWQgMD09PWkmJihpPXRoaXMuY29tcHV0ZWRDb2xzKSx2b2lkIDA9PT1zJiYocz10aGlzLmdldENlbGxWYWx1ZSk7dmFyIG49ZT9lLnRvTG93ZXJDYXNlKCk6XCJcIjtyZXR1cm4gdC5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIGkuc29tZShmdW5jdGlvbihlKXtyZXR1cm4tMSE9PShzKGUsdCkrXCJcIikudG9Mb3dlckNhc2UoKS5pbmRleE9mKG4pfSl9KX19fSx3YXRjaDp7ZmlsdGVyOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLiRuZXh0VGljayhmdW5jdGlvbigpe3Quc2V0UGFnaW5hdGlvbih7cGFnZToxfSwhMCl9KX19fTtmdW5jdGlvbiBzYW1lUGFnaW5hdGlvbih0LGUpe2Zvcih2YXIgaSBpbiBlKWlmKGVbaV0hPT10W2ldKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGZpeFBhZ2luYXRpb24odCl7cmV0dXJuIHQucGFnZTwxJiYodC5wYWdlPTEpLHZvaWQgMCE9PXQucm93c1BlclBhZ2UmJnQucm93c1BlclBhZ2U8MSYmKHQucm93c1BlclBhZ2U9MCksdH12YXIgUGFnaW5hdGlvbj17cHJvcHM6e3BhZ2luYXRpb246T2JqZWN0LHJvd3NQZXJQYWdlT3B0aW9uczp7dHlwZTpBcnJheSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuWzMsNSw3LDEwLDE1LDIwLDI1LDUwLDBdfX19LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aW5uZXJQYWdpbmF0aW9uOntzb3J0Qnk6bnVsbCxkZXNjZW5kaW5nOiExLHBhZ2U6MSxyb3dzUGVyUGFnZTo1fX19LGNvbXB1dGVkOntjb21wdXRlZFBhZ2luYXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gZml4UGFnaW5hdGlvbihPYmplY3QuYXNzaWduKHt9LHRoaXMuaW5uZXJQYWdpbmF0aW9uLHRoaXMucGFnaW5hdGlvbikpfSxmaXJzdFJvd0luZGV4OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb21wdXRlZFBhZ2luYXRpb247cmV0dXJuKHQucGFnZS0xKSp0LnJvd3NQZXJQYWdlfSxsYXN0Um93SW5kZXg6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbXB1dGVkUGFnaW5hdGlvbjtyZXR1cm4gdC5wYWdlKnQucm93c1BlclBhZ2V9LGlzRmlyc3RQYWdlOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmNvbXB1dGVkUGFnaW5hdGlvbi5wYWdlfSxwYWdlc051bWJlcjpmdW5jdGlvbigpe3JldHVybiBNYXRoLm1heCgxLE1hdGguY2VpbCh0aGlzLmNvbXB1dGVkUm93c051bWJlci90aGlzLmNvbXB1dGVkUGFnaW5hdGlvbi5yb3dzUGVyUGFnZSkpfSxpc0xhc3RQYWdlOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLmxhc3RSb3dJbmRleHx8dGhpcy5jb21wdXRlZFBhZ2luYXRpb24ucGFnZT49dGhpcy5wYWdlc051bWJlcn0sY29tcHV0ZWRSb3dzUGVyUGFnZU9wdGlvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLnJvd3NQZXJQYWdlT3B0aW9ucy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJue2xhYmVsOjA9PT1lP3QuJHEuaTE4bi50YWJsZS5hbGxSb3dzOlwiXCIrZSx2YWx1ZTplfX0pfX0sd2F0Y2g6e3BhZ2VzTnVtYmVyOmZ1bmN0aW9uKHQsZSl7aWYodCE9PWUpe3ZhciBpPXRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLnBhZ2U7dCYmIWk/dGhpcy5zZXRQYWdpbmF0aW9uKHtwYWdlOjF9KTp0PGkmJnRoaXMuc2V0UGFnaW5hdGlvbih7cGFnZTp0fSl9fX0sbWV0aG9kczp7X19zZW5kU2VydmVyUmVxdWVzdDpmdW5jdGlvbih0KXt0aGlzLnJlcXVlc3RTZXJ2ZXJJbnRlcmFjdGlvbih7cGFnaW5hdGlvbjp0LGZpbHRlcjp0aGlzLmZpbHRlcn0pfSxzZXRQYWdpbmF0aW9uOmZ1bmN0aW9uKHQsZSl7dmFyIGk9Zml4UGFnaW5hdGlvbihPYmplY3QuYXNzaWduKHt9LHRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLHQpKTtzYW1lUGFnaW5hdGlvbih0aGlzLmNvbXB1dGVkUGFnaW5hdGlvbixpKT90aGlzLmlzU2VydmVyU2lkZSYmZSYmdGhpcy5fX3NlbmRTZXJ2ZXJSZXF1ZXN0KGkpOnRoaXMuaXNTZXJ2ZXJTaWRlP3RoaXMuX19zZW5kU2VydmVyUmVxdWVzdChpKTp0aGlzLnBhZ2luYXRpb24/dGhpcy4kZW1pdChcInVwZGF0ZTpwYWdpbmF0aW9uXCIsaSk6dGhpcy5pbm5lclBhZ2luYXRpb249aX0scHJldlBhZ2U6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbXB1dGVkUGFnaW5hdGlvbi5wYWdlO3Q+MSYmdGhpcy5zZXRQYWdpbmF0aW9uKHtwYWdlOnQtMX0pfSxuZXh0UGFnZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLGU9dC5wYWdlLGk9dC5yb3dzUGVyUGFnZTt0aGlzLmxhc3RSb3dJbmRleD4wJiZlKmk8dGhpcy5jb21wdXRlZFJvd3NOdW1iZXImJnRoaXMuc2V0UGFnaW5hdGlvbih7cGFnZTplKzF9KX19LGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLiRlbWl0KFwidXBkYXRlOnBhZ2luYXRpb25cIixPYmplY3QuYXNzaWduKHt9LHRoaXMuY29tcHV0ZWRQYWdpbmF0aW9uKSl9fSxSb3dTZWxlY3Rpb249e3Byb3BzOntzZWxlY3Rpb246e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJub25lXCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcInNpbmdsZVwiLFwibXVsdGlwbGVcIixcIm5vbmVcIl0uaW5jbHVkZXModCl9fSxzZWxlY3RlZDp7dHlwZTpBcnJheSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuW119fX0sY29tcHV0ZWQ6e3NlbGVjdGVkS2V5czpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT17fTtyZXR1cm4gdGhpcy5zZWxlY3RlZC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGVbdC5yb3dLZXldfSkuZm9yRWFjaChmdW5jdGlvbih0KXtlW3RdPSEwfSksZX0saGFzU2VsZWN0aW9uTW9kZTpmdW5jdGlvbigpe3JldHVyblwibm9uZVwiIT09dGhpcy5zZWxlY3Rpb259LHNpbmdsZVNlbGVjdGlvbjpmdW5jdGlvbigpe3JldHVyblwic2luZ2xlXCI9PT10aGlzLnNlbGVjdGlvbn0sbXVsdGlwbGVTZWxlY3Rpb246ZnVuY3Rpb24oKXtyZXR1cm5cIm11bHRpcGxlXCI9PT10aGlzLnNlbGVjdGlvbn0sYWxsUm93c1NlbGVjdGVkOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztpZih0aGlzLm11bHRpcGxlU2VsZWN0aW9uKXJldHVybiB0aGlzLmNvbXB1dGVkUm93cy5sZW5ndGg+MCYmdGhpcy5jb21wdXRlZFJvd3MuZXZlcnkoZnVuY3Rpb24oZSl7cmV0dXJuITA9PT10LnNlbGVjdGVkS2V5c1tlW3Qucm93S2V5XV19KX0sc29tZVJvd3NTZWxlY3RlZDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYodGhpcy5tdWx0aXBsZVNlbGVjdGlvbilyZXR1cm4hdGhpcy5hbGxSb3dzU2VsZWN0ZWQmJnRoaXMuY29tcHV0ZWRSb3dzLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuITA9PT10LnNlbGVjdGVkS2V5c1tlW3Qucm93S2V5XV19KX0scm93c1NlbGVjdGVkTnVtYmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWQubGVuZ3RofX0sbWV0aG9kczp7aXNSb3dTZWxlY3RlZDpmdW5jdGlvbih0KXtyZXR1cm4hMD09PXRoaXMuc2VsZWN0ZWRLZXlzW3RdfSxjbGVhclNlbGVjdGlvbjpmdW5jdGlvbigpe3RoaXMuJGVtaXQoXCJ1cGRhdGU6c2VsZWN0ZWRcIixbXSl9LF9fdXBkYXRlU2VsZWN0aW9uOmZ1bmN0aW9uKHQsZSxpKXt2YXIgcz10aGlzO3RoaXMuc2luZ2xlU2VsZWN0aW9uP3RoaXMuJGVtaXQoXCJ1cGRhdGU6c2VsZWN0ZWRcIixpP2U6W10pOnRoaXMuJGVtaXQoXCJ1cGRhdGU6c2VsZWN0ZWRcIixpP3RoaXMuc2VsZWN0ZWQuY29uY2F0KGUpOnRoaXMuc2VsZWN0ZWQuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiF0LmluY2x1ZGVzKGVbcy5yb3dLZXldKX0pKX19fSxDb2x1bW5TZWxlY3Rpb249e3Byb3BzOnt2aXNpYmxlQ29sdW1uczpBcnJheX0sY29tcHV0ZWQ6e2NvbXB1dGVkQ29sczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLmNvbXB1dGVkUGFnaW5hdGlvbixpPWUuc29ydEJ5LHM9ZS5kZXNjZW5kaW5nO3JldHVybih0aGlzLnZpc2libGVDb2x1bW5zP3RoaXMuY29sdW1ucy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVxdWlyZWR8fHQudmlzaWJsZUNvbHVtbnMuaW5jbHVkZXMoZS5uYW1lKX0pOnRoaXMuY29sdW1ucykubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LmFsaWduPXQuYWxpZ258fFwicmlnaHRcIix0Ll9faWNvbkNsYXNzPVwicS10YWJsZS1zb3J0LWljb24gcS10YWJsZS1zb3J0LWljb24tXCIrdC5hbGlnbix0Ll9fdGhDbGFzcz1cInRleHQtXCIrdC5hbGlnbisodC5zb3J0YWJsZT9cIiBzb3J0YWJsZVwiOlwiXCIpKyh0Lm5hbWU9PT1pP1wiIHNvcnRlZCBcIisocz9cInNvcnQtZGVzY1wiOlwiXCIpOlwiXCIpLHQuX190ZENsYXNzPVwidGV4dC1cIit0LmFsaWduLHR9KX0sY29tcHV0ZWRDb2xzTWFwOmZ1bmN0aW9uKCl7dmFyIHQ9e307cmV0dXJuIHRoaXMuY29tcHV0ZWRDb2xzLmZvckVhY2goZnVuY3Rpb24oZSl7dFtlLm5hbWVdPWV9KSx0fX19LEV4cGFuZD17ZGF0YTpmdW5jdGlvbigpe3JldHVybntyb3dzRXhwYW5kZWQ6e319fX0sUVRhYmxlPXtuYW1lOlwiUVRhYmxlXCIsbWl4aW5zOltGdWxsc2NyZWVuTWl4aW4sVG9wLFRhYmxlSGVhZGVyLFRhYmxlQm9keSxCb3R0b20sU29ydCxGaWx0ZXIsUGFnaW5hdGlvbixSb3dTZWxlY3Rpb24sQ29sdW1uU2VsZWN0aW9uLEV4cGFuZF0scHJvcHM6e2RhdGE6e3R5cGU6QXJyYXksZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybltdfX0scm93S2V5Ont0eXBlOlN0cmluZyxkZWZhdWx0OlwiaWRcIn0sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJncmV5LThcIn0sZ3JpZDpCb29sZWFuLGRlbnNlOkJvb2xlYW4sY29sdW1uczpBcnJheSxsb2FkaW5nOkJvb2xlYW4sdGl0bGU6U3RyaW5nLGhpZGVIZWFkZXI6Qm9vbGVhbixoaWRlQm90dG9tOkJvb2xlYW4sZGFyazpCb29sZWFuLHNlcGFyYXRvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcImhvcml6b250YWxcIix2YWxpZGF0b3I6ZnVuY3Rpb24odCl7cmV0dXJuW1wiaG9yaXpvbnRhbFwiLFwidmVydGljYWxcIixcImNlbGxcIixcIm5vbmVcIl0uaW5jbHVkZXModCl9fSxiaW5hcnlTdGF0ZVNvcnQ6Qm9vbGVhbixub0RhdGFMYWJlbDpTdHJpbmcsbm9SZXN1bHRzTGFiZWw6U3RyaW5nLGxvYWRpbmdMYWJlbDpTdHJpbmcsc2VsZWN0ZWRSb3dzTGFiZWw6RnVuY3Rpb24scm93c1BlclBhZ2VMYWJlbDpTdHJpbmcscGFnaW5hdGlvbkxhYmVsOkZ1bmN0aW9uLHRhYmxlU3R5bGU6e3R5cGU6W1N0cmluZyxBcnJheSxPYmplY3RdLGRlZmF1bHQ6XCJcIn0sdGFibGVDbGFzczp7dHlwZTpbU3RyaW5nLEFycmF5LE9iamVjdF0sZGVmYXVsdDpcIlwifX0sY29tcHV0ZWQ6e2NvbXB1dGVkRGF0YTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZGF0YS5zbGljZSgpLm1hcChmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9faW5kZXg9ZSx0fSk7aWYoMD09PXQubGVuZ3RoKXJldHVybntyb3dzTnVtYmVyOjAscm93czpbXX07aWYodGhpcy5pc1NlcnZlclNpZGUpcmV0dXJue3Jvd3M6dH07dmFyIGU9dGhpcy5jb21wdXRlZFBhZ2luYXRpb24saT1lLnNvcnRCeSxzPWUuZGVzY2VuZGluZyxuPWUucm93c1BlclBhZ2U7dGhpcy5maWx0ZXImJih0PXRoaXMuZmlsdGVyTWV0aG9kKHQsdGhpcy5maWx0ZXIsdGhpcy5jb21wdXRlZENvbHMsdGhpcy5nZXRDZWxsVmFsdWUpKSx0aGlzLmNvbHVtblRvU29ydCYmKHQ9dGhpcy5zb3J0TWV0aG9kKHQsaSxzKSk7dmFyIG89dC5sZW5ndGg7cmV0dXJuIG4mJih0PXQuc2xpY2UodGhpcy5maXJzdFJvd0luZGV4LHRoaXMubGFzdFJvd0luZGV4KSkse3Jvd3NOdW1iZXI6byxyb3dzOnR9fSxjb21wdXRlZFJvd3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb21wdXRlZERhdGEucm93c30sY29tcHV0ZWRSb3dzTnVtYmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNTZXJ2ZXJTaWRlP3RoaXMuY29tcHV0ZWRQYWdpbmF0aW9uLnJvd3NOdW1iZXJ8fDA6dGhpcy5jb21wdXRlZERhdGEucm93c051bWJlcn0sbm90aGluZ1RvRGlzcGxheTpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5jb21wdXRlZFJvd3MubGVuZ3RofSxpc1NlcnZlclNpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5jb21wdXRlZFBhZ2luYXRpb24ucm93c051bWJlcn19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtjbGFzczp7XCJxLXRhYmxlLWdyaWRcIjp0aGlzLmdyaWQsXCJxLXRhYmxlLWNvbnRhaW5lclwiOiEwLFwicS10YWJsZS1kYXJrXCI6dGhpcy5kYXJrLFwicS10YWJsZS1kZW5zZVwiOnRoaXMuZGVuc2UsZnVsbHNjcmVlbjp0aGlzLmluRnVsbHNjcmVlbixzY3JvbGw6dGhpcy5pbkZ1bGxzY3JlZW59fSxbdGhpcy5nZXRUb3AodCksdGhpcy5nZXRCb2R5KHQpLHRoaXMuZ2V0Qm90dG9tKHQpXSl9LG1ldGhvZHM6e3JlcXVlc3RTZXJ2ZXJJbnRlcmFjdGlvbjpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuJG5leHRUaWNrKGZ1bmN0aW9uKCl7ZS4kZW1pdChcInJlcXVlc3RcIix7cGFnaW5hdGlvbjp0LnBhZ2luYXRpb258fGUuY29tcHV0ZWRQYWdpbmF0aW9uLGZpbHRlcjp0LmZpbHRlcnx8ZS5maWx0ZXIsZ2V0Q2VsbFZhbHVlOmUuZ2V0Q2VsbFZhbHVlfSl9KX0sZ2V0Qm9keTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9IXRoaXMuaGlkZUhlYWRlcjtpZih0aGlzLmdyaWQpe3ZhciBzPXRoaXMuJHNjb3BlZFNsb3RzLml0ZW07aWYodm9pZCAwIT09cylyZXR1cm5baSYmdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUtbWlkZGxlIHNjcm9sbFwifSxbdChcInRhYmxlXCIse3N0YXRpY0NsYXNzOlwicS10YWJsZVwiKyh0aGlzLmRhcms/XCIgcS10YWJsZS1kYXJrXCI6XCJcIil9LFt0aGlzLmdldFRhYmxlSGVhZGVyKHQpXSldKXx8bnVsbCx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicm93XCJ9LHRoaXMuY29tcHV0ZWRSb3dzLm1hcChmdW5jdGlvbih0KXt2YXIgaT10W2Uucm93S2V5XSxuPWUuaXNSb3dTZWxlY3RlZChpKTtyZXR1cm4gcyhlLmFkZEJvZHlSb3dNZXRhKHtrZXk6aSxyb3c6dCxjb2xzOmUuY29tcHV0ZWRDb2xzLGNvbHNNYXA6ZS5jb21wdXRlZENvbHNNYXAsX190ckNsYXNzOm4/XCJzZWxlY3RlZFwiOlwiXCJ9KSl9KSldfXJldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10YWJsZS1taWRkbGUgc2Nyb2xsXCIsY2xhc3M6dGhpcy50YWJsZUNsYXNzLHN0eWxlOnRoaXMudGFibGVTdHlsZX0sW3QoXCJ0YWJsZVwiLHtzdGF0aWNDbGFzczpcInEtdGFibGUgcS10YWJsZS1cIit0aGlzLnNlcGFyYXRvcitcIi1zZXBhcmF0b3JcIisodGhpcy5kYXJrP1wiIHEtdGFibGUtZGFya1wiOlwiXCIpfSxbaSYmdGhpcy5nZXRUYWJsZUhlYWRlcih0KXx8bnVsbCx0aGlzLmdldFRhYmxlQm9keSh0KV0pXSl9fX0sUVRyPXtuYW1lOlwiUVRyXCIscHJvcHM6e3Byb3BzOk9iamVjdH0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwidHJcIiwhdGhpcy5wcm9wc3x8dGhpcy5wcm9wcy5oZWFkZXI/e306e2NsYXNzOnRoaXMucHJvcHMuX190ckNsYXNzfSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFUZD17bmFtZTpcIlFUZFwiLHByb3BzOntwcm9wczpPYmplY3QsYXV0b1dpZHRoOkJvb2xlYW59LHJlbmRlcjpmdW5jdGlvbih0KXtpZighdGhpcy5wcm9wcylyZXR1cm4gdChcInRkXCIse2NsYXNzOntcInEtdGFibGUtY29sLWF1dG8td2lkdGhcIjp0aGlzLmF1dG9XaWR0aH19LHRoaXMuJHNsb3RzLmRlZmF1bHQpO3ZhciBlLGk9dGhpcy4kdm5vZGUua2V5O2lmKGkpe2lmKCEoZT10aGlzLnByb3BzLmNvbHNNYXBbaV0pKXJldHVybn1lbHNlIGU9dGhpcy5wcm9wcy5jb2w7cmV0dXJuIHQoXCJ0ZFwiLHtjbGFzczpbZS5fX3RkQ2xhc3Mse1wicS10YWJsZS1jb2wtYXV0by13aWR0aFwiOnRoaXMuYXV0b1dpZHRofV19LHRoaXMuJHNsb3RzLmRlZmF1bHQpfX0sUVRhYmxlQ29sdW1ucz17bmFtZTpcIlFUYWJsZUNvbHVtbnNcIixwcm9wczp7dmFsdWU6e3R5cGU6QXJyYXkscmVxdWlyZWQ6ITB9LGxhYmVsOlN0cmluZyxjb2x1bW5zOnt0eXBlOkFycmF5LHJlcXVpcmVkOiEwfSxjb2xvcjpTdHJpbmcsZGFyazpCb29sZWFufSxjb21wdXRlZDp7Y29tcHV0ZWRPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29sdW1ucy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIXQucmVxdWlyZWR9KS5tYXAoZnVuY3Rpb24odCl7cmV0dXJue3ZhbHVlOnQubmFtZSxsYWJlbDp0LmxhYmVsfX0pfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHQoUVNlbGVjdCx7cHJvcHM6e211bHRpcGxlOiEwLHRvZ2dsZTohMCx2YWx1ZTp0aGlzLnZhbHVlLG9wdGlvbnM6dGhpcy5jb21wdXRlZE9wdGlvbnMsZGlzcGxheVZhbHVlOnRoaXMubGFiZWx8fHRoaXMuJHEuaTE4bi50YWJsZS5jb2x1bW5zLGNvbG9yOnRoaXMuY29sb3IsZGFyazp0aGlzLmRhcmssaGlkZVVuZGVybGluZTohMH0sb246e2lucHV0OmZ1bmN0aW9uKHQpe2UuJGVtaXQoXCJpbnB1dFwiLHQpfSxjaGFuZ2U6ZnVuY3Rpb24odCl7ZS4kZW1pdChcImNoYW5nZVwiLHQpfX19KX19LFFUaW1lbGluZT17bmFtZTpcIlFUaW1lbGluZVwiLHByb3ZpZGU6ZnVuY3Rpb24oKXtyZXR1cm57X190aW1lbGluZTp0aGlzfX0scHJvcHM6e2NvbG9yOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwicHJpbWFyeVwifSxyZXNwb25zaXZlOkJvb2xlYW4sbm9Ib3ZlcjpCb29sZWFuLGRhcms6Qm9vbGVhbn0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwidWxcIix7c3RhdGljQ2xhc3M6XCJxLXRpbWVsaW5lXCIsY2xhc3M6e1wicS10aW1lbGluZS1kYXJrXCI6dGhpcy5kYXJrLFwicS10aW1lbGluZS1yZXNwb25zaXZlXCI6dGhpcy5yZXNwb25zaXZlLFwicS10aW1lbGluZS1ob3ZlclwiOiF0aGlzLm5vSG92ZXJ9fSx0aGlzLiRzbG90cy5kZWZhdWx0KX19LFFUaW1lbGluZUVudHJ5PXtuYW1lOlwiUVRpbWVsaW5lRW50cnlcIixpbmplY3Q6e19fdGltZWxpbmU6e2RlZmF1bHQ6ZnVuY3Rpb24oKXtjb25zb2xlLmVycm9yKFwiUVRpbWVsaW5lRW50cnkgbmVlZHMgdG8gYmUgY2hpbGQgb2YgUVRpbWVsaW5lXCIpfX19LHByb3BzOntoZWFkaW5nOkJvb2xlYW4sdGFnOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiaDNcIn0sc2lkZTp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInJpZ2h0XCIsdmFsaWRhdG9yOmZ1bmN0aW9uKHQpe3JldHVybltcImxlZnRcIixcInJpZ2h0XCJdLmluY2x1ZGVzKHQpfX0saWNvbjpTdHJpbmcsY29sb3I6U3RyaW5nLHRpdGxlOlN0cmluZyxzdWJ0aXRsZTpTdHJpbmd9LGNvbXB1dGVkOntjb2xvckNsYXNzOmZ1bmN0aW9uKCl7cmV0dXJuXCJ0ZXh0LVwiKyh0aGlzLmNvbG9yfHx0aGlzLl9fdGltZWxpbmUuY29sb3IpfSxjbGFzc2VzOmZ1bmN0aW9uKCl7cmV0dXJuW1wicS10aW1lbGluZS1lbnRyeS1cIisoXCJsZWZ0XCI9PT10aGlzLnNpZGU/XCJsZWZ0XCI6XCJyaWdodFwiKSx0aGlzLmljb24/XCJxLXRpbWVsaW5lLWVudHJ5LXdpdGgtaWNvblwiOlwiXCJdfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmhlYWRpbmc/dChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdGltZWxpbmUtaGVhZGluZ1wifSxbdChcImRpdlwiKSx0KFwiZGl2XCIpLHQodGhpcy50YWcse3N0YXRpY0NsYXNzOlwicS10aW1lbGluZS1oZWFkaW5nLXRpdGxlXCJ9LHRoaXMuJHNsb3RzLmRlZmF1bHQpXSk6dChcImxpXCIse3N0YXRpY0NsYXNzOlwicS10aW1lbGluZS1lbnRyeVwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sW3RoaXMuJHNsb3RzLnN1YnRpdGxlfHx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10aW1lbGluZS1zdWJ0aXRsZVwifSxbdChcInNwYW5cIix0aGlzLnN1YnRpdGxlKV0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRpbWVsaW5lLWRvdFwiLGNsYXNzOnRoaXMuY29sb3JDbGFzc30sW3RoaXMuaWNvbj90KFFJY29uLHtwcm9wczp7bmFtZTp0aGlzLmljb259fSk6bnVsbF0pLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRpbWVsaW5lLWNvbnRlbnRcIn0sKHRoaXMuJHNsb3RzLnRpdGxlfHxbdChcImg2XCIse3N0YXRpY0NsYXNzOlwicS10aW1lbGluZS10aXRsZVwifSxbdGhpcy50aXRsZV0pXSkuY29uY2F0KHRoaXMuJHNsb3RzLmRlZmF1bHQpKV0pfX0sUVRvb2xiYXI9e25hbWU6XCJRVG9vbGJhclwiLHByb3BzOntjb2xvcjp7dHlwZTpTdHJpbmcsZGVmYXVsdDpcInByaW1hcnlcIn0sdGV4dENvbG9yOlN0cmluZyxpbnZlcnRlZDpCb29sZWFuLGdsb3NzeTpCb29sZWFufSxjb21wdXRlZDp7Y2xhc3NlczpmdW5jdGlvbigpe3ZhciB0PVtcInEtdG9vbGJhci1cIisodGhpcy5pbnZlcnRlZD9cImludmVydGVkXCI6XCJub3JtYWxcIildO3JldHVybiB0aGlzLmdsb3NzeSYmdC5wdXNoKFwiZ2xvc3N5XCIpLHRoaXMuaW52ZXJ0ZWQ/dC5wdXNoKFwidGV4dC1cIisodGhpcy50ZXh0Q29sb3J8fHRoaXMuY29sb3IpKToodC5wdXNoKFwiYmctXCIrdGhpcy5jb2xvciksdC5wdXNoKFwidGV4dC1cIisodGhpcy50ZXh0Q29sb3J8fFwid2hpdGVcIikpKSx0fX0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10b29sYmFyIHJvdyBuby13cmFwIGl0ZW1zLWNlbnRlciByZWxhdGl2ZS1wb3NpdGlvblwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sdGhpcy4kc2xvdHMuZGVmYXVsdCl9fSxRVG9vbGJhclRpdGxlPXtuYW1lOlwiUVRvb2xiYXJUaXRsZVwiLHByb3BzOntzaHJpbms6Qm9vbGVhbn0scmVuZGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10b29sYmFyLXRpdGxlXCIsY2xhc3M6dGhpcy5zaHJpbms/XCJjb2wtYXV0b1wiOm51bGx9LFt0aGlzLiRzbG90cy5kZWZhdWx0LHRoaXMuJHNsb3RzLnN1YnRpdGxlP3QoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRvb2xiYXItc3VidGl0bGVcIn0sdGhpcy4kc2xvdHMuc3VidGl0bGUpOm51bGxdKX19LFFUcmVlPXtuYW1lOlwiUVRyZWVcIixkaXJlY3RpdmVzOntSaXBwbGU6UmlwcGxlfSxwcm9wczp7bm9kZXM6QXJyYXksbm9kZUtleTp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LGxhYmVsS2V5Ont0eXBlOlN0cmluZyxkZWZhdWx0OlwibGFiZWxcIn0sY29sb3I6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJncmV5XCJ9LGNvbnRyb2xDb2xvcjpTdHJpbmcsdGV4dENvbG9yOlN0cmluZyxkYXJrOkJvb2xlYW4saWNvbjpTdHJpbmcsdGlja1N0cmF0ZWd5Ont0eXBlOlN0cmluZyxkZWZhdWx0Olwibm9uZVwiLHZhbGlkYXRvcjpmdW5jdGlvbih0KXtyZXR1cm5bXCJub25lXCIsXCJzdHJpY3RcIixcImxlYWZcIixcImxlYWYtZmlsdGVyZWRcIl0uaW5jbHVkZXModCl9fSx0aWNrZWQ6QXJyYXksZXhwYW5kZWQ6QXJyYXksc2VsZWN0ZWQ6e30sZGVmYXVsdEV4cGFuZEFsbDpCb29sZWFuLGFjY29yZGlvbjpCb29sZWFuLGZpbHRlcjpTdHJpbmcsZmlsdGVyTWV0aG9kOnt0eXBlOkZ1bmN0aW9uLGRlZmF1bHQ6ZnVuY3Rpb24odCxlKXt2YXIgaT1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHRbdGhpcy5sYWJlbEtleV0mJnRbdGhpcy5sYWJlbEtleV0udG9Mb3dlckNhc2UoKS5pbmRleE9mKGkpPi0xfX0sZHVyYXRpb246TnVtYmVyLG5vTm9kZXNMYWJlbDpTdHJpbmcsbm9SZXN1bHRzTGFiZWw6U3RyaW5nfSxjb21wdXRlZDp7aGFzUmlwcGxlOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMubm9SaXBwbGV9LGNsYXNzZXM6ZnVuY3Rpb24oKXtyZXR1cm5bXCJ0ZXh0LVwiK3RoaXMuY29sb3Ise1wicS10cmVlLWRhcmtcIjp0aGlzLmRhcmt9XX0saGFzU2VsZWN0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuc2VsZWN0ZWR9LGNvbXB1dGVkSWNvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmljb258fHRoaXMuJHEuaWNvbi50cmVlLmljb259LGNvbXB1dGVkQ29udHJvbENvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udHJvbENvbG9yfHx0aGlzLmNvbG9yfSxjb250ZW50Q2xhc3M6ZnVuY3Rpb24oKXtyZXR1cm5cInRleHQtXCIrKHRoaXMudGV4dENvbG9yfHwodGhpcy5kYXJrP1wid2hpdGVcIjpcImJsYWNrXCIpKX0sbWV0YTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT17fSxpPWZ1bmN0aW9uKHMsbil7dmFyIG89cy50aWNrU3RyYXRlZ3l8fChuP24udGlja1N0cmF0ZWd5OnQudGlja1N0cmF0ZWd5KSxyPXNbdC5ub2RlS2V5XSxhPXMuY2hpbGRyZW4mJnMuY2hpbGRyZW4ubGVuZ3RoPjAsbD0hYSxjPSFzLmRpc2FibGVkJiZ0Lmhhc1NlbGVjdGlvbiYmITEhPT1zLnNlbGVjdGFibGUsaD0hcy5kaXNhYmxlZCYmITEhPT1zLmV4cGFuZGFibGUsdT1cIm5vbmVcIiE9PW8sZD1cInN0cmljdFwiPT09byxwPVwibGVhZi1maWx0ZXJlZFwiPT09byxmPVwibGVhZlwiPT09b3x8XCJsZWFmLWZpbHRlcmVkXCI9PT1vLG09IXMuZGlzYWJsZWQmJiExIT09cy50aWNrYWJsZTtmJiZtJiZuJiYhbi50aWNrYWJsZSYmKG09ITEpO3ZhciBnPXMubGF6eTtnJiZ0Lmxhenlbcl0mJihnPXQubGF6eVtyXSk7dmFyIHY9e2tleTpyLHBhcmVudDpuLGlzUGFyZW50OmEsaXNMZWFmOmwsbGF6eTpnLGRpc2FibGVkOnMuZGlzYWJsZWQsbGluazpjfHxoJiYoYXx8ITA9PT1nKSxjaGlsZHJlbjpbXSxtYXRjaGVzRmlsdGVyOiF0LmZpbHRlcnx8dC5maWx0ZXJNZXRob2Qocyx0LmZpbHRlciksc2VsZWN0ZWQ6cj09PXQuc2VsZWN0ZWQmJmMsc2VsZWN0YWJsZTpjLGV4cGFuZGVkOiEhYSYmdC5pbm5lckV4cGFuZGVkLmluY2x1ZGVzKHIpLGV4cGFuZGFibGU6aCxub1RpY2s6cy5ub1RpY2t8fCFkJiZnJiZcImxvYWRlZFwiIT09Zyx0aWNrYWJsZTptLHRpY2tTdHJhdGVneTpvLGhhc1RpY2tpbmc6dSxzdHJpY3RUaWNraW5nOmQsbGVhZkZpbHRlcmVkVGlja2luZzpwLGxlYWZUaWNraW5nOmYsdGlja2VkOmQ/dC5pbm5lclRpY2tlZC5pbmNsdWRlcyhyKTohIWwmJnQuaW5uZXJUaWNrZWQuaW5jbHVkZXMocil9O2lmKGVbcl09dixhJiYodi5jaGlsZHJlbj1zLmNoaWxkcmVuLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gaSh0LHYpfSksdC5maWx0ZXImJih2Lm1hdGNoZXNGaWx0ZXJ8fCh2Lm1hdGNoZXNGaWx0ZXI9di5jaGlsZHJlbi5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hdGNoZXNGaWx0ZXJ9KSksdi5tYXRjaGVzRmlsdGVyJiYhdi5ub1RpY2smJiF2LmRpc2FibGVkJiZ2LnRpY2thYmxlJiZwJiZ2LmNoaWxkcmVuLmV2ZXJ5KGZ1bmN0aW9uKHQpe3JldHVybiF0Lm1hdGNoZXNGaWx0ZXJ8fHQubm9UaWNrfHwhdC50aWNrYWJsZX0pJiYodi50aWNrYWJsZT0hMSkpLHYubWF0Y2hlc0ZpbHRlciYmKHYubm9UaWNrfHxkfHwhdi5jaGlsZHJlbi5ldmVyeShmdW5jdGlvbih0KXtyZXR1cm4gdC5ub1RpY2t9KXx8KHYubm9UaWNrPSEwKSxmJiYodi50aWNrZWQ9ITEsdi5pbmRldGVybWluYXRlPXYuY2hpbGRyZW4uc29tZShmdW5jdGlvbih0KXtyZXR1cm4gdC5pbmRldGVybWluYXRlfSksIXYuaW5kZXRlcm1pbmF0ZSkpKSl7dmFyIGI9di5jaGlsZHJlbi5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS50aWNrZWQ/dCsxOnR9LDApO2I9PT12LmNoaWxkcmVuLmxlbmd0aD92LnRpY2tlZD0hMDpiPjAmJih2LmluZGV0ZXJtaW5hdGU9ITApfXJldHVybiB2fTtyZXR1cm4gdGhpcy5ub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBpKHQsbnVsbCl9KSxlfX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntsYXp5Ont9LGlubmVyVGlja2VkOnRoaXMudGlja2VkfHxbXSxpbm5lckV4cGFuZGVkOnRoaXMuZXhwYW5kZWR8fFtdfX0sd2F0Y2g6e3RpY2tlZDpmdW5jdGlvbih0KXt0aGlzLmlubmVyVGlja2VkPXR9LGV4cGFuZGVkOmZ1bmN0aW9uKHQpe3RoaXMuaW5uZXJFeHBhbmRlZD10fX0sbWV0aG9kczp7Z2V0Tm9kZUJ5S2V5OmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1bXS5yZWR1Y2Uscz1mdW5jdGlvbihuLG8pe3JldHVybiBufHwhbz9uOkFycmF5LmlzQXJyYXkobyk/aS5jYWxsKE9iamVjdChvKSxzLG4pOm9bZS5ub2RlS2V5XT09PXQ/bzpvLmNoaWxkcmVuP3MobnVsbCxvLmNoaWxkcmVuKTp2b2lkIDB9O3JldHVybiBzKG51bGwsdGhpcy5ub2Rlcyl9LGdldFRpY2tlZE5vZGVzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5pbm5lclRpY2tlZC5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0Tm9kZUJ5S2V5KGUpfSl9LGdldEV4cGFuZGVkTm9kZXM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLmlubmVyRXhwYW5kZWQubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB0LmdldE5vZGVCeUtleShlKX0pfSxpc0V4cGFuZGVkOmZ1bmN0aW9uKHQpe3JldHVybiEoIXR8fCF0aGlzLm1ldGFbdF0pJiZ0aGlzLm1ldGFbdF0uZXhwYW5kZWR9LGNvbGxhcHNlQWxsOmZ1bmN0aW9uKCl7dm9pZCAwIT09dGhpcy5leHBhbmRlZD90aGlzLiRlbWl0KFwidXBkYXRlOmV4cGFuZGVkXCIsW10pOnRoaXMuaW5uZXJFeHBhbmRlZD1bXX0sZXhwYW5kQWxsOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuaW5uZXJFeHBhbmRlZCxpPWZ1bmN0aW9uKHMpe3MuY2hpbGRyZW4mJnMuY2hpbGRyZW4ubGVuZ3RoPjAmJiExIT09cy5leHBhbmRhYmxlJiYhMCE9PXMuZGlzYWJsZWQmJihlLnB1c2goc1t0Lm5vZGVLZXldKSxzLmNoaWxkcmVuLmZvckVhY2goaSkpfTt0aGlzLm5vZGVzLmZvckVhY2goaSksdm9pZCAwIT09dGhpcy5leHBhbmRlZD90aGlzLiRlbWl0KFwidXBkYXRlOmV4cGFuZGVkXCIsZSk6dGhpcy5pbm5lckV4cGFuZGVkPWV9LHNldEV4cGFuZGVkOmZ1bmN0aW9uKHQsZSxpLHMpe3ZhciBuPXRoaXM7aWYodm9pZCAwPT09aSYmKGk9dGhpcy5nZXROb2RlQnlLZXkodCkpLHZvaWQgMD09PXMmJihzPXRoaXMubWV0YVt0XSkscy5sYXp5JiZcImxvYWRlZFwiIT09cy5sYXp5KXtpZihcImxvYWRpbmdcIj09PXMubGF6eSlyZXR1cm47dGhpcy4kc2V0KHRoaXMubGF6eSx0LFwibG9hZGluZ1wiKSx0aGlzLiRlbWl0KFwibGF6eS1sb2FkXCIse25vZGU6aSxrZXk6dCxkb25lOmZ1bmN0aW9uKGUpe24ubGF6eVt0XT1cImxvYWRlZFwiLGUmJihpLmNoaWxkcmVuPWUpLG4uJG5leHRUaWNrKGZ1bmN0aW9uKCl7dmFyIGU9bi5tZXRhW3RdO2UmJmUuaXNQYXJlbnQmJm4uX19zZXRFeHBhbmRlZCh0LCEwKX0pfSxmYWlsOmZ1bmN0aW9uKCl7bi4kZGVsZXRlKG4ubGF6eSx0KX19KX1lbHNlIHMuaXNQYXJlbnQmJnMuZXhwYW5kYWJsZSYmdGhpcy5fX3NldEV4cGFuZGVkKHQsZSl9LF9fc2V0RXhwYW5kZWQ6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLHM9dGhpcy5pbm5lckV4cGFuZGVkLG49dm9pZCAwIT09dGhpcy5leHBhbmRlZDtpZihuJiYocz1zLnNsaWNlKCkpLGUpe2lmKHRoaXMuYWNjb3JkaW9uJiZ0aGlzLm1ldGFbdF0pe3ZhciBvPVtdO3RoaXMubWV0YVt0XS5wYXJlbnQ/dGhpcy5tZXRhW3RdLnBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKGUpe2Uua2V5IT09dCYmZS5leHBhbmRhYmxlJiZvLnB1c2goZS5rZXkpfSk6dGhpcy5ub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBzPWVbaS5ub2RlS2V5XTtzIT09dCYmby5wdXNoKHMpfSksby5sZW5ndGg+MCYmKHM9cy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIW8uaW5jbHVkZXModCl9KSl9cz1zLmNvbmNhdChbdF0pLmZpbHRlcihmdW5jdGlvbih0LGUsaSl7cmV0dXJuIGkuaW5kZXhPZih0KT09PWV9KX1lbHNlIHM9cy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUhPT10fSk7bj90aGlzLiRlbWl0KFwidXBkYXRlOmV4cGFuZGVkXCIscyk6dGhpcy5pbm5lckV4cGFuZGVkPXN9LGlzVGlja2VkOmZ1bmN0aW9uKHQpe3JldHVybiEoIXR8fCF0aGlzLm1ldGFbdF0pJiZ0aGlzLm1ldGFbdF0udGlja2VkfSxzZXRUaWNrZWQ6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLmlubmVyVGlja2VkLHM9dm9pZCAwIT09dGhpcy50aWNrZWQ7cyYmKGk9aS5zbGljZSgpKSxpPWU/aS5jb25jYXQodCkuZmlsdGVyKGZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gaS5pbmRleE9mKHQpPT09ZX0pOmkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiF0LmluY2x1ZGVzKGUpfSkscyYmdGhpcy4kZW1pdChcInVwZGF0ZTp0aWNrZWRcIixpKX0sX19nZXRTbG90U2NvcGU6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPXRoaXMsbj17dHJlZTp0aGlzLG5vZGU6dCxrZXk6aSxjb2xvcjp0aGlzLmNvbG9yLGRhcms6dGhpcy5kYXJrfTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sXCJleHBhbmRlZFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZS5leHBhbmRlZH0sc2V0OmZ1bmN0aW9uKHQpe3QhPT1lLmV4cGFuZGVkJiZzLnNldEV4cGFuZGVkKGksdCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sXCJ0aWNrZWRcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUudGlja2VkfSxzZXQ6ZnVuY3Rpb24odCl7dCE9PWUudGlja2VkJiZzLnNldFRpY2tlZChbaV0sdCl9fSksbn0sX19nZXRDaGlsZHJlbjpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXM7cmV0dXJuKHRoaXMuZmlsdGVyP2UuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiBpLm1ldGFbdFtpLm5vZGVLZXldXS5tYXRjaGVzRmlsdGVyfSk6ZSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBpLl9fZ2V0Tm9kZSh0LGUpfSl9LF9fZ2V0Tm9kZU1lZGlhOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuaWNvbj90KFFJY29uLHtzdGF0aWNDbGFzczpcInEtdHJlZS1pY29uIHEtbXItc21cIixwcm9wczp7bmFtZTplLmljb24sY29sb3I6ZS5pY29uQ29sb3J9fSk6ZS5pbWd8fGUuYXZhdGFyP3QoXCJpbWdcIix7c3RhdGljQ2xhc3M6XCJxLXRyZWUtaW1nIHEtbXItc21cIixjbGFzczp7YXZhdGFyOmUuYXZhdGFyfSxhdHRyczp7c3JjOmUuaW1nfHxlLmF2YXRhcn19KTp2b2lkIDB9LF9fZ2V0Tm9kZTpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMscz1lW3RoaXMubm9kZUtleV0sbj10aGlzLm1ldGFbc10sbz1lLmhlYWRlciYmdGhpcy4kc2NvcGVkU2xvdHNbXCJoZWFkZXItXCIrZS5oZWFkZXJdfHx0aGlzLiRzY29wZWRTbG90c1tcImRlZmF1bHQtaGVhZGVyXCJdLHI9bi5pc1BhcmVudD90aGlzLl9fZ2V0Q2hpbGRyZW4odCxlLmNoaWxkcmVuKTpbXSxhPXIubGVuZ3RoPjB8fG4ubGF6eSYmXCJsb2FkZWRcIiE9PW4ubGF6eSxsPWUuYm9keSYmdGhpcy4kc2NvcGVkU2xvdHNbXCJib2R5LVwiK2UuYm9keV18fHRoaXMuJHNjb3BlZFNsb3RzW1wiZGVmYXVsdC1ib2R5XCJdLGM9b3x8bD90aGlzLl9fZ2V0U2xvdFNjb3BlKGUsbixzKTpudWxsO3JldHVybiBsJiYobD10KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10cmVlLW5vZGUtYm9keSByZWxhdGl2ZS1wb3NpdGlvblwifSxbdChcImRpdlwiLHtjbGFzczp0aGlzLmNvbnRlbnRDbGFzc30sW2woYyldKV0pKSx0KFwiZGl2XCIse2tleTpzLHN0YXRpY0NsYXNzOlwicS10cmVlLW5vZGVcIixjbGFzczp7XCJxLXRyZWUtbm9kZS1wYXJlbnRcIjphLFwicS10cmVlLW5vZGUtY2hpbGRcIjohYX19LFt0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS10cmVlLW5vZGUtaGVhZGVyIHJlbGF0aXZlLXBvc2l0aW9uIHJvdyBuby13cmFwIGl0ZW1zLWNlbnRlclwiLGNsYXNzOntcInEtdHJlZS1ub2RlLWxpbmtcIjpuLmxpbmssXCJxLXRyZWUtbm9kZS1zZWxlY3RlZFwiOm4uc2VsZWN0ZWQsZGlzYWJsZWQ6bi5kaXNhYmxlZH0sb246e2NsaWNrOmZ1bmN0aW9uKCl7aS5fX29uQ2xpY2soZSxuKX19LGRpcmVjdGl2ZXM6bi5zZWxlY3RhYmxlP1t7bmFtZTpcInJpcHBsZVwifV06bnVsbH0sW1wibG9hZGluZ1wiPT09bi5sYXp5P3QoUVNwaW5uZXIse3N0YXRpY0NsYXNzOlwicS10cmVlLW5vZGUtaGVhZGVyLW1lZGlhIHEtbXIteHNcIixwcm9wczp7Y29sb3I6dGhpcy5jb21wdXRlZENvbnRyb2xDb2xvcn19KTphP3QoUUljb24se3N0YXRpY0NsYXNzOlwicS10cmVlLWFycm93IHEtbXIteHMgdHJhbnNpdGlvbi1nZW5lcmljXCIsY2xhc3M6e1wicS10cmVlLWFycm93LXJvdGF0ZVwiOm4uZXhwYW5kZWR9LHByb3BzOntuYW1lOnRoaXMuY29tcHV0ZWRJY29ufSxuYXRpdmVPbjp7Y2xpY2s6ZnVuY3Rpb24odCl7aS5fX29uRXhwYW5kQ2xpY2soZSxuLHQpfX19KTpudWxsLHQoXCJzcGFuXCIse3N0YXRpY0NsYXNzOlwicm93IG5vLXdyYXAgaXRlbXMtY2VudGVyXCIsY2xhc3M6dGhpcy5jb250ZW50Q2xhc3N9LFtuLmhhc1RpY2tpbmcmJiFuLm5vVGljaz90KFFDaGVja2JveCx7c3RhdGljQ2xhc3M6XCJxLW1yLXhzXCIscHJvcHM6e3ZhbHVlOm4uaW5kZXRlcm1pbmF0ZT9udWxsOm4udGlja2VkLGNvbG9yOnRoaXMuY29tcHV0ZWRDb250cm9sQ29sb3IsZGFyazp0aGlzLmRhcmssa2VlcENvbG9yOiEwLGRpc2FibGU6IW4udGlja2FibGV9LG9uOntpbnB1dDpmdW5jdGlvbih0KXtpLl9fb25UaWNrZWRDbGljayhlLG4sdCl9fX0pOm51bGwsbz9vKGMpOlt0aGlzLl9fZ2V0Tm9kZU1lZGlhKHQsZSksdChcInNwYW5cIixlW3RoaXMubGFiZWxLZXldKV1dKV0pLGE/dChRU2xpZGVUcmFuc2l0aW9uLHtwcm9wczp7ZHVyYXRpb246dGhpcy5kdXJhdGlvbn19LFt0KFwiZGl2XCIse2RpcmVjdGl2ZXM6W3tuYW1lOlwic2hvd1wiLHZhbHVlOm4uZXhwYW5kZWR9XSxzdGF0aWNDbGFzczpcInEtdHJlZS1ub2RlLWNvbGxhcHNpYmxlXCIsY2xhc3M6XCJ0ZXh0LVwiK3RoaXMuY29sb3J9LFtsLHQoXCJkaXZcIix7c3RhdGljQ2xhc3M6XCJxLXRyZWUtY2hpbGRyZW5cIixjbGFzczp7ZGlzYWJsZWQ6bi5kaXNhYmxlZH19LHIpXSldKTpsXSl9LF9fb25DbGljazpmdW5jdGlvbih0LGUpe3RoaXMuaGFzU2VsZWN0aW9uP2Uuc2VsZWN0YWJsZSYmdGhpcy4kZW1pdChcInVwZGF0ZTpzZWxlY3RlZFwiLGUua2V5IT09dGhpcy5zZWxlY3RlZD9lLmtleTpudWxsKTp0aGlzLl9fb25FeHBhbmRDbGljayh0LGUpLFwiZnVuY3Rpb25cIj09dHlwZW9mIHQuaGFuZGxlciYmdC5oYW5kbGVyKHQpfSxfX29uRXhwYW5kQ2xpY2s6ZnVuY3Rpb24odCxlLGkpe3ZvaWQgMCE9PWkmJmkuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5zZXRFeHBhbmRlZChlLmtleSwhZS5leHBhbmRlZCx0LGUpfSxfX29uVGlja2VkQ2xpY2s6ZnVuY3Rpb24odCxlLGkpe2lmKGUuaW5kZXRlcm1pbmF0ZSYmaSYmKGk9ITEpLGUuc3RyaWN0VGlja2luZyl0aGlzLnNldFRpY2tlZChbZS5rZXldLGkpO2Vsc2UgaWYoZS5sZWFmVGlja2luZyl7dmFyIHM9W10sbj1mdW5jdGlvbih0KXt0LmlzUGFyZW50PyhpfHx0Lm5vVGlja3x8IXQudGlja2FibGV8fHMucHVzaCh0LmtleSksdC5sZWFmVGlja2luZyYmdC5jaGlsZHJlbi5mb3JFYWNoKG4pKTp0Lm5vVGlja3x8IXQudGlja2FibGV8fHQubGVhZkZpbHRlcmVkVGlja2luZyYmIXQubWF0Y2hlc0ZpbHRlcnx8cy5wdXNoKHQua2V5KX07bihlKSx0aGlzLnNldFRpY2tlZChzLGkpfX19LHJlbmRlcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9fZ2V0Q2hpbGRyZW4odCx0aGlzLm5vZGVzKTtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdHJlZSByZWxhdGl2ZS1wb3NpdGlvblwiLGNsYXNzOnRoaXMuY2xhc3Nlc30sMD09PWUubGVuZ3RoP3RoaXMuZmlsdGVyP3RoaXMubm9SZXN1bHRzTGFiZWx8fHRoaXMuJHEuaTE4bi50cmVlLm5vUmVzdWx0czp0aGlzLm5vTm9kZXNMYWJlbHx8dGhpcy4kcS5pMThuLnRyZWUubm9Ob2RlczplKX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuZGVmYXVsdEV4cGFuZEFsbCYmdGhpcy5leHBhbmRBbGwoKX19O2Z1bmN0aW9uIGluaXRGaWxlKHQpe3QuX19kb25lVXBsb2FkaW5nPSExLHQuX19mYWlsZWQ9ITEsdC5fX3VwbG9hZGVkPTAsdC5fX3Byb2dyZXNzPTB9dmFyIFFVcGxvYWRlcj17bmFtZTpcIlFVcGxvYWRlclwiLG1peGluczpbRnJhbWVNaXhpbl0scHJvcHM6e25hbWU6e3R5cGU6U3RyaW5nLGRlZmF1bHQ6XCJmaWxlXCJ9LGhlYWRlcnM6T2JqZWN0LHVybDp7dHlwZTpTdHJpbmcscmVxdWlyZWQ6ITB9LHVybEZhY3Rvcnk6e3R5cGU6RnVuY3Rpb24scmVxdWlyZWQ6ITF9LHVwbG9hZEZhY3Rvcnk6RnVuY3Rpb24sYWRkaXRpb25hbEZpZWxkczp7dHlwZTpBcnJheSxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuW119fSxub0NvbnRlbnRUeXBlOkJvb2xlYW4sbWV0aG9kOnt0eXBlOlN0cmluZyxkZWZhdWx0OlwiUE9TVFwifSxmaWx0ZXI6RnVuY3Rpb24sZXh0ZW5zaW9uczpTdHJpbmcsbXVsdGlwbGU6Qm9vbGVhbixoaWRlVXBsb2FkQnV0dG9uOkJvb2xlYW4saGlkZVVwbG9hZFByb2dyZXNzOkJvb2xlYW4sbm9UaHVtYm5haWxzOkJvb2xlYW4sYXV0b0V4cGFuZDpCb29sZWFuLGV4cGFuZFN0eWxlOltBcnJheSxTdHJpbmcsT2JqZWN0XSxleHBhbmRDbGFzczpbQXJyYXksU3RyaW5nLE9iamVjdF0sd2l0aENyZWRlbnRpYWxzOkJvb2xlYW4sc2VuZFJhdzp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9fSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3F1ZXVlOltdLGZpbGVzOltdLHVwbG9hZGluZzohMSx1cGxvYWRlZFNpemU6MCx0b3RhbFNpemU6MCx4aHJzOltdLGZvY3VzZWQ6ITEsZG5kOiExLGV4cGFuZGVkOiExfX0sY29tcHV0ZWQ6e3F1ZXVlTGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVldWUubGVuZ3RofSxoYXNFeHBhbmRlZENvbnRlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxlcy5sZW5ndGg+MH0sbGFiZWw6ZnVuY3Rpb24oKXt2YXIgdD1odW1hblN0b3JhZ2VTaXplKHRoaXMudG90YWxTaXplKTtyZXR1cm4gdGhpcy51cGxvYWRpbmc/dGhpcy5wcm9ncmVzcy50b0ZpeGVkKDIpK1wiJSAoXCIraHVtYW5TdG9yYWdlU2l6ZSh0aGlzLnVwbG9hZGVkU2l6ZSkrXCIgLyBcIit0K1wiKVwiOnRoaXMucXVldWVMZW5ndGgrXCIgKFwiK3QrXCIpXCJ9LHByb2dyZXNzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG90YWxTaXplP01hdGgubWluKDk5Ljk5LHRoaXMudXBsb2FkZWRTaXplL3RoaXMudG90YWxTaXplKjEwMCk6MH0sYWRkRGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kaXNhYmxlfHwhdGhpcy5tdWx0aXBsZSYmdGhpcy5xdWV1ZUxlbmd0aD49MX0sZmlsZXNTdHlsZTpmdW5jdGlvbigpe2lmKHRoaXMubWF4SGVpZ2h0KXJldHVybnttYXhIZWlnaHQ6dGhpcy5tYXhIZWlnaHR9fSxkbmRDbGFzczpmdW5jdGlvbigpe3ZhciB0PVtcInRleHQtXCIrdGhpcy5jb2xvcl07cmV0dXJuIHRoaXMuaXNJbnZlcnRlZCYmdC5wdXNoKFwiaW52ZXJ0ZWRcIiksdH0sY2xhc3NlczpmdW5jdGlvbigpe3JldHVybntcInEtdXBsb2FkZXItZXhwYW5kZWRcIjp0aGlzLmV4cGFuZGVkLFwicS11cGxvYWRlci1kYXJrXCI6dGhpcy5kYXJrLFwicS11cGxvYWRlci1maWxlcy1uby1ib3JkZXJcIjp0aGlzLmlzSW52ZXJ0ZWR8fCF0aGlzLmhpZGVVbmRlcmxpbmV9fSxwcm9ncmVzc0NvbG9yOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGFyaz9cIndoaXRlXCI6XCJncmV5XCJ9LGNvbXB1dGVkRXh0ZW5zaW9uczpmdW5jdGlvbigpe2lmKHRoaXMuZXh0ZW5zaW9ucylyZXR1cm4gdGhpcy5leHRlbnNpb25zLnNwbGl0KFwiLFwiKS5tYXAoZnVuY3Rpb24odCl7cmV0dXJuKHQ9dC50cmltKCkpLmVuZHNXaXRoKFwiLypcIikmJih0PXQuc2xpY2UoMCx0Lmxlbmd0aC0xKSksdH0pfX0sd2F0Y2g6e2hhc0V4cGFuZGVkQ29udGVudDpmdW5jdGlvbih0KXshMT09PXQ/dGhpcy5leHBhbmRlZD0hMTp0aGlzLmF1dG9FeHBhbmQmJih0aGlzLmV4cGFuZGVkPSEwKX19LG1ldGhvZHM6e2FkZDpmdW5jdGlvbih0KXt0JiZ0aGlzLl9fYWRkKG51bGwsdCl9LF9fb25EcmFnT3ZlcjpmdW5jdGlvbih0KXtzdG9wQW5kUHJldmVudCh0KSx0aGlzLmRuZD0hMH0sX19vbkRyYWdMZWF2ZTpmdW5jdGlvbih0KXtzdG9wQW5kUHJldmVudCh0KSx0aGlzLmRuZD0hMX0sX19vbkRyb3A6ZnVuY3Rpb24odCl7c3RvcEFuZFByZXZlbnQodCksdGhpcy5kbmQ9ITE7dmFyIGU9dC5kYXRhVHJhbnNmZXIuZmlsZXM7MCE9PWUubGVuZ3RoJiYoZT10aGlzLm11bHRpcGxlP2U6W2VbMF1dLHRoaXMuX19hZGQobnVsbCxlKSl9LF9fZmlsdGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5maWx0ZXIuY2FsbCh0LGZ1bmN0aW9uKHQpe3JldHVybiBlLmNvbXB1dGVkRXh0ZW5zaW9ucy5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiB0LnR5cGUudG9VcHBlckNhc2UoKS5zdGFydHNXaXRoKGUudG9VcHBlckNhc2UoKSl8fHQubmFtZS50b1VwcGVyQ2FzZSgpLmVuZHNXaXRoKGUudG9VcHBlckNhc2UoKSl9KX0pfSxfX2FkZDpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXM7aWYoIXRoaXMuYWRkRGlzYWJsZWQmJihlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGV8fHQudGFyZ2V0LmZpbGVzKSwhdGhpcy5leHRlbnNpb25zfHwwIT09KGU9dGhpcy5fX2ZpbHRlcihlKSkubGVuZ3RoKSl7dGhpcy4kcmVmcy5maWxlLnZhbHVlPVwiXCI7dmFyIHM9W107ZT1lLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4haS5xdWV1ZS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiB0Lm5hbWU9PT1lLm5hbWV9KX0pLFwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMuZmlsdGVyJiYoZT10aGlzLmZpbHRlcihlKSksKGU9ZS5tYXAoZnVuY3Rpb24odCl7aWYoaW5pdEZpbGUodCksdC5fX3NpemU9aHVtYW5TdG9yYWdlU2l6ZSh0LnNpemUpLHQuX190aW1lc3RhbXA9KG5ldyBEYXRlKS5nZXRUaW1lKCksaS5ub1RodW1ibmFpbHN8fCF0LnR5cGUudG9VcHBlckNhc2UoKS5zdGFydHNXaXRoKFwiSU1BR0VcIikpaS5xdWV1ZS5wdXNoKHQpO2Vsc2V7dmFyIGU9bmV3IEZpbGVSZWFkZXIsbj1uZXcgUHJvbWlzZShmdW5jdGlvbihzLG4pe2Uub25sb2FkPWZ1bmN0aW9uKGUpe3ZhciBuPW5ldyBJbWFnZTtuLnNyYz1lLnRhcmdldC5yZXN1bHQsdC5fX2ltZz1uLGkucXVldWUucHVzaCh0KSxpLl9fY29tcHV0ZVRvdGFsU2l6ZSgpLHMoITApfSxlLm9uZXJyb3I9ZnVuY3Rpb24odCl7bih0KX19KTtlLnJlYWRBc0RhdGFVUkwodCkscy5wdXNoKG4pfXJldHVybiB0fSkpLmxlbmd0aD4wJiYodGhpcy5maWxlcz10aGlzLmZpbGVzLmNvbmNhdChlKSxQcm9taXNlLmFsbChzKS50aGVuKGZ1bmN0aW9uKCl7aS4kZW1pdChcImFkZFwiLGUpfSksdGhpcy5fX2NvbXB1dGVUb3RhbFNpemUoKSl9fSxfX2NvbXB1dGVUb3RhbFNpemU6ZnVuY3Rpb24oKXt0aGlzLnRvdGFsU2l6ZT10aGlzLnF1ZXVlTGVuZ3RoP3RoaXMucXVldWUubWFwKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNpemV9KS5yZWR1Y2UoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSk6MH0sX19yZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dC5uYW1lLGk9dC5fX2RvbmVVcGxvYWRpbmc7dGhpcy51cGxvYWRpbmcmJiFpPyh0aGlzLiRlbWl0KFwicmVtb3ZlOmFib3J0XCIsdCx0LnhociksdC54aHImJnQueGhyLmFib3J0KCksdGhpcy51cGxvYWRlZFNpemUtPXQuX191cGxvYWRlZCk6dGhpcy4kZW1pdChcInJlbW92ZTpcIisoaT9cImRvbmVcIjpcImNhbmNlbFwiKSx0LHQueGhyKSxpfHwodGhpcy5xdWV1ZT10aGlzLnF1ZXVlLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5uYW1lIT09ZX0pKSx0Ll9fcmVtb3ZlZD0hMCx0aGlzLmZpbGVzPXRoaXMuZmlsZXMuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5hbWUhPT1lfSksdGhpcy5maWxlcy5sZW5ndGh8fCh0aGlzLnVwbG9hZGluZz0hMSksdGhpcy5fX2NvbXB1dGVUb3RhbFNpemUoKX0sX19waWNrOmZ1bmN0aW9uKCl7IXRoaXMuYWRkRGlzYWJsZWQmJnRoaXMuJHEucGxhdGZvcm0uaXMubW96aWxsYSYmdGhpcy4kcmVmcy5maWxlLmNsaWNrKCl9LF9fZ2V0VXBsb2FkUHJvbWlzZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKGluaXRGaWxlKHQpLHRoaXMudXBsb2FkRmFjdG9yeSl7dmFyIGk9ZnVuY3Rpb24oaSl7dmFyIHM9aSp0LnNpemU7ZS51cGxvYWRlZFNpemUrPXMtdC5fX3VwbG9hZGVkLHQuX191cGxvYWRlZD1zLHQuX19wcm9ncmVzcz1NYXRoLm1pbig5OSxwYXJzZUludCgxMDAqaSwxMCkpLGUuJGZvcmNlVXBkYXRlKCl9O3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihzLG4pe2UudXBsb2FkRmFjdG9yeSh0LGkpLnRoZW4oZnVuY3Rpb24odCl7dC5fX2RvbmVVcGxvYWRpbmc9ITAsdC5fX3Byb2dyZXNzPTEwMCxlLiRlbWl0KFwidXBsb2FkZWRcIix0KSxlLiRmb3JjZVVwZGF0ZSgpLHModCl9KS5jYXRjaChmdW5jdGlvbihpKXt0Ll9fZmFpbGVkPSEwLGUuJGVtaXQoXCJmYWlsXCIsdCksZS4kZm9yY2VVcGRhdGUoKSxuKGkpfSl9KX12YXIgcz1uZXcgRm9ybURhdGEsbj1uZXcgWE1MSHR0cFJlcXVlc3Q7dHJ5e3RoaXMuYWRkaXRpb25hbEZpZWxkcy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3MuYXBwZW5kKHQubmFtZSx0LnZhbHVlKX0pLCEwIT09dGhpcy5ub0NvbnRlbnRUeXBlJiZzLmFwcGVuZChcIkNvbnRlbnQtVHlwZVwiLHQudHlwZXx8XCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIikscy5hcHBlbmQodGhpcy5uYW1lLHQpfWNhdGNoKHQpe3JldHVybn1yZXR1cm4gdC54aHI9bixuZXcgUHJvbWlzZShmdW5jdGlvbihpLG8pe24udXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoXCJwcm9ncmVzc1wiLGZ1bmN0aW9uKGkpe2lmKCF0Ll9fcmVtb3ZlZCl7aS5wZXJjZW50PWkudG90YWw/aS5sb2FkZWQvaS50b3RhbDowO3ZhciBzPWkucGVyY2VudCp0LnNpemU7ZS51cGxvYWRlZFNpemUrPXMtdC5fX3VwbG9hZGVkLHQuX191cGxvYWRlZD1zLHQuX19wcm9ncmVzcz1NYXRoLm1pbig5OSxwYXJzZUludCgxMDAqaS5wZXJjZW50LDEwKSl9fSwhMSksbi5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXtuLnJlYWR5U3RhdGU8NHx8KG4uc3RhdHVzJiZuLnN0YXR1czw0MDA/KHQuX19kb25lVXBsb2FkaW5nPSEwLHQuX19wcm9ncmVzcz0xMDAsZS4kZW1pdChcInVwbG9hZGVkXCIsdCxuKSxpKHQpKToodC5fX2ZhaWxlZD0hMCxlLiRlbWl0KFwiZmFpbFwiLHQsbiksbyhuKSkpfSxuLm9uZXJyb3I9ZnVuY3Rpb24oKXt0Ll9fZmFpbGVkPSEwLGUuJGVtaXQoXCJmYWlsXCIsdCxuKSxvKG4pfSwoZS51cmxGYWN0b3J5P2UudXJsRmFjdG9yeSh0KTpQcm9taXNlLnJlc29sdmUoZS51cmwpKS50aGVuKGZ1bmN0aW9uKGkpe24ub3BlbihlLm1ldGhvZCxpLCEwKSxlLndpdGhDcmVkZW50aWFscyYmKG4ud2l0aENyZWRlbnRpYWxzPSEwKSxlLmhlYWRlcnMmJk9iamVjdC5rZXlzKGUuaGVhZGVycykuZm9yRWFjaChmdW5jdGlvbih0KXtuLnNldFJlcXVlc3RIZWFkZXIodCxlLmhlYWRlcnNbdF0pfSksZS54aHJzLnB1c2gobiksZS5zZW5kUmF3P24uc2VuZCh0KTpuLnNlbmQocyl9KX0pfSxwaWNrOmZ1bmN0aW9uKCl7dGhpcy5hZGREaXNhYmxlZHx8dGhpcy4kcmVmcy5maWxlLmNsaWNrKCl9LHVwbG9hZDpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLnF1ZXVlTGVuZ3RoO2lmKCF0aGlzLmRpc2FibGUmJjAhPT1lKXt2YXIgaT0wO3RoaXMudXBsb2FkZWRTaXplPTAsdGhpcy51cGxvYWRpbmc9ITAsdGhpcy54aHJzPVtdLHRoaXMuJGVtaXQoXCJzdGFydFwiKTt2YXIgcz1mdW5jdGlvbigpeysraT09PWUmJih0LnVwbG9hZGluZz0hMSx0LnhocnM9W10sdC5xdWV1ZT10LnF1ZXVlLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4hdC5fX2RvbmVVcGxvYWRpbmd9KSx0Ll9fY29tcHV0ZVRvdGFsU2l6ZSgpLHQuJGVtaXQoXCJmaW5pc2hcIikpfTt0aGlzLnF1ZXVlLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdC5fX2dldFVwbG9hZFByb21pc2UoZSl9KS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QudGhlbihzKS5jYXRjaChzKX0pfX0sYWJvcnQ6ZnVuY3Rpb24oKXt0aGlzLnhocnMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmFib3J0KCl9KSx0aGlzLnVwbG9hZGluZz0hMSx0aGlzLiRlbWl0KFwiYWJvcnRcIil9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5hYm9ydCgpLHRoaXMuZmlsZXM9W10sdGhpcy5xdWV1ZT1bXSx0aGlzLmV4cGFuZGVkPSExLHRoaXMuX19jb21wdXRlVG90YWxTaXplKCksdGhpcy4kZW1pdChcInJlc2V0XCIpfX0scmVuZGVyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMsaT1bdChcImRpdlwiLHtzdGF0aWNDbGFzczpcImNvbCBxLWlucHV0LXRhcmdldCBlbGxpcHNpc1wiLGNsYXNzOnRoaXMuYWxpZ25DbGFzc30sW3RoaXMubGFiZWxdKV07cmV0dXJuIHRoaXMudXBsb2FkaW5nP2kucHVzaCh0aGlzLiRzbG90cy5sb2FkaW5nP3QoXCJkaXZcIix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWVuZCBzZWxmLWNlbnRlciBxLWlmLWNvbnRyb2xcIn0sdGhpcy4kc2xvdHMubG9hZGluZyk6dChRU3Bpbm5lcix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWVuZCBzZWxmLWNlbnRlclwiLHByb3BzOntzaXplOlwiMjRweFwifX0pLHQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS1pZi1lbmQgc2VsZi1jZW50ZXIgcS1pZi1jb250cm9sXCIscHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLnVwbG9hZGVyW1wiY2xlYXJcIisodGhpcy5pc0ludmVydGVkP1wiSW52ZXJ0ZWRcIjpcIlwiKV19LG5hdGl2ZU9uOntjbGljazp0aGlzLmFib3J0fX0pKTooaS5wdXNoKHQoUUljb24se3Nsb3Q6XCJhZnRlclwiLHN0YXRpY0NsYXNzOlwicS11cGxvYWRlci1waWNrLWJ1dHRvbiBzZWxmLWNlbnRlciBxLWlmLWNvbnRyb2wgcmVsYXRpdmUtcG9zaXRpb24gb3ZlcmZsb3ctaGlkZGVuXCIscHJvcHM6e25hbWU6dGhpcy4kcS5pY29uLnVwbG9hZGVyLmFkZH0sYXR0cnM6e2Rpc2FibGVkOnRoaXMuYWRkRGlzYWJsZWR9fSxbdChcImlucHV0XCIse3JlZjpcImZpbGVcIixzdGF0aWNDbGFzczpcInEtdXBsb2FkZXItaW5wdXQgYWJzb2x1dGUtZnVsbCBjdXJzb3ItcG9pbnRlclwiLGF0dHJzOk9iamVjdC5hc3NpZ24oe3R5cGU6XCJmaWxlXCIsYWNjZXB0OnRoaXMuZXh0ZW5zaW9uc30sdGhpcy5tdWx0aXBsZT97bXVsdGlwbGU6ITB9Ont9KSxvbjp7Y2hhbmdlOnRoaXMuX19hZGR9fSldKSksdGhpcy5oaWRlVXBsb2FkQnV0dG9ufHxpLnB1c2godChRSWNvbix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2wgc2VsZi1jZW50ZXJcIixwcm9wczp7bmFtZTp0aGlzLiRxLmljb24udXBsb2FkZXIudXBsb2FkfSxhdHRyczp7ZGlzYWJsZWQ6MD09PXRoaXMucXVldWVMZW5ndGh9LG5hdGl2ZU9uOntjbGljazp0aGlzLnVwbG9hZH19KSkpLHRoaXMuaGFzRXhwYW5kZWRDb250ZW50JiZpLnB1c2godChRSWNvbix7c2xvdDpcImFmdGVyXCIsc3RhdGljQ2xhc3M6XCJxLWlmLWNvbnRyb2wgZ2VuZXJpY190cmFuc2l0aW9uIHNlbGYtY2VudGVyXCIsY2xhc3M6e1wicm90YXRlLTE4MFwiOnRoaXMuZXhwYW5kZWR9LHByb3BzOntuYW1lOnRoaXMuJHEuaWNvbi51cGxvYWRlci5leHBhbmR9LG5hdGl2ZU9uOntjbGljazpmdW5jdGlvbigpe2UuZXhwYW5kZWQ9IWUuZXhwYW5kZWR9fX0pKSx0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS11cGxvYWRlciByZWxhdGl2ZS1wb3NpdGlvblwiLGNsYXNzOnRoaXMuY2xhc3Nlcyxvbjp7ZHJhZ292ZXI6dGhpcy5fX29uRHJhZ092ZXJ9fSxbdChRSW5wdXRGcmFtZSx7cmVmOlwiaW5wdXRcIixwcm9wczp7cHJlZml4OnRoaXMucHJlZml4LHN1ZmZpeDp0aGlzLnN1ZmZpeCxzdGFja0xhYmVsOnRoaXMuc3RhY2tMYWJlbCxmbG9hdExhYmVsOnRoaXMuZmxvYXRMYWJlbCxlcnJvcjp0aGlzLmVycm9yLHdhcm5pbmc6dGhpcy53YXJuaW5nLHJlYWRvbmx5OnRoaXMucmVhZG9ubHksaW52ZXJ0ZWQ6dGhpcy5pbnZlcnRlZCxpbnZlcnRlZExpZ2h0OnRoaXMuaW52ZXJ0ZWRMaWdodCxkYXJrOnRoaXMuZGFyayxoaWRlVW5kZXJsaW5lOnRoaXMuaGlkZVVuZGVybGluZSxiZWZvcmU6dGhpcy5iZWZvcmUsYWZ0ZXI6dGhpcy5hZnRlcixjb2xvcjp0aGlzLmNvbG9yLGFsaWduOnRoaXMuYWxpZ24sbm9QYXJlbnRGaWVsZDp0aGlzLm5vUGFyZW50RmllbGQsbGVuZ3RoOnRoaXMucXVldWVMZW5ndGgsYWRkaXRpb25hbExlbmd0aDohMH19LGkpLHQoUVNsaWRlVHJhbnNpdGlvbixbdChcImRpdlwiLHtjbGFzczp0aGlzLmV4cGFuZENsYXNzLHN0eWxlOnRoaXMuZXhwYW5kU3R5bGUsZGlyZWN0aXZlczpbe25hbWU6XCJzaG93XCIsdmFsdWU6dGhpcy5leHBhbmRlZH1dfSxbdChRTGlzdCx7c3RhdGljQ2xhc3M6XCJxLXVwbG9hZGVyLWZpbGVzIHEtcHktbm9uZSBzY3JvbGxcIixzdHlsZTp0aGlzLmZpbGVzU3R5bGUscHJvcHM6e2Rhcms6dGhpcy5kYXJrfX0sdGhpcy5maWxlcy5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIHQoUUl0ZW0se2tleTppLm5hbWUraS5fX3RpbWVzdGFtcCxzdGF0aWNDbGFzczpcInEtdXBsb2FkZXItZmlsZSBxLXBhLXhzXCJ9LFshZS5oaWRlVXBsb2FkUHJvZ3Jlc3MmJnQoUVByb2dyZXNzLHtzdGF0aWNDbGFzczpcInEtdXBsb2FkZXItcHJvZ3Jlc3MtYmcgYWJzb2x1dGUtZnVsbFwiLHByb3BzOntjb2xvcjppLl9fZmFpbGVkP1wibmVnYXRpdmVcIjplLnByb2dyZXNzQ29sb3IscGVyY2VudGFnZTppLl9fcHJvZ3Jlc3MsaGVpZ2h0OlwiMTAwJVwifX0pfHx2b2lkIDAsIWUuaGlkZVVwbG9hZFByb2dyZXNzJiZ0KFwiZGl2XCIse3N0YXRpY0NsYXNzOlwicS11cGxvYWRlci1wcm9ncmVzcy10ZXh0IGFic29sdXRlXCJ9LFtpLl9fcHJvZ3Jlc3MrXCIlXCJdKXx8dm9pZCAwLHQoUUl0ZW1TaWRlLHtwcm9wczppLl9faW1nP3tpbWFnZTppLl9faW1nLnNyY306e2ljb246ZS4kcS5pY29uLnVwbG9hZGVyLmZpbGUsY29sb3I6ZS5jb2xvcn19KSx0KFFJdGVtTWFpbix7cHJvcHM6e2xhYmVsOmkubmFtZSxzdWJsYWJlbDppLl9fc2l6ZX19KSx0KFFJdGVtU2lkZSx7cHJvcHM6e3JpZ2h0OiEwfX0sW3QoUUl0ZW1UaWxlLHtzdGF0aWNDbGFzczpcImN1cnNvci1wb2ludGVyXCIscHJvcHM6e2ljb246ZS4kcS5pY29uLnVwbG9hZGVyW2kuX19kb25lVXBsb2FkaW5nP1wiZG9uZVwiOlwiY2xlYXJcIl0sY29sb3I6ZS5jb2xvcn0sbmF0aXZlT246e2NsaWNrOmZ1bmN0aW9uKCl7ZS5fX3JlbW92ZShpKX19fSldKV0pfSkpXSldKSx0aGlzLmRuZCYmdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdXBsb2FkZXItZG5kIGZsZXggcm93IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBhYnNvbHV0ZS1mdWxsXCIsY2xhc3M6dGhpcy5kbmRDbGFzcyxvbjp7ZHJhZ2VudGVyOnN0b3BBbmRQcmV2ZW50LGRyYWdvdmVyOnN0b3BBbmRQcmV2ZW50LGRyYWdsZWF2ZTp0aGlzLl9fb25EcmFnTGVhdmUsZHJvcDp0aGlzLl9fb25Ecm9wfX0pfHx2b2lkIDBdKX19LFFWaWRlbz17bmFtZTpcIlFWaWRlb1wiLHByb3BzOntzcmM6e3R5cGU6U3RyaW5nLHJlcXVpcmVkOiEwfX0sY29tcHV0ZWQ6e2lmcmFtZURhdGE6ZnVuY3Rpb24oKXtyZXR1cm57YXR0cnM6e3NyYzp0aGlzLnNyYyxmcmFtZWJvcmRlcjpcIjBcIixhbGxvd2Z1bGxzY3JlZW46ITB9fX19LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtdmlkZW9cIn0sW3QoXCJpZnJhbWVcIix0aGlzLmlmcmFtZURhdGEpXSl9fSxjb21wb25lbnRzJDE9T2JqZWN0LmZyZWV6ZSh7UUFjdGlvblNoZWV0OlFBY3Rpb25TaGVldCxRQWpheEJhcjpRQWpheEJhcixRQWxlcnQ6UUFsZXJ0LFFBdXRvY29tcGxldGU6UUF1dG9jb21wbGV0ZSxRQnJlYWRjcnVtYnM6UUJyZWFkY3J1bWJzLFFCcmVhZGNydW1ic0VsOlFCcmVhZGNydW1ic0VsLFFCdG46UUJ0bixRQnRuR3JvdXA6UUJ0bkdyb3VwLFFCdG5Ecm9wZG93bjpRQnRuRHJvcGRvd24sUUJ0blRvZ2dsZTpRQnRuVG9nZ2xlLFFDYXJkOlFDYXJkLFFDYXJkVGl0bGU6UUNhcmRUaXRsZSxRQ2FyZE1haW46UUNhcmRNYWluLFFDYXJkQWN0aW9uczpRQ2FyZEFjdGlvbnMsUUNhcmRNZWRpYTpRQ2FyZE1lZGlhLFFDYXJkU2VwYXJhdG9yOlFDYXJkU2VwYXJhdG9yLFFDYXJvdXNlbDpRQ2Fyb3VzZWwsUUNhcm91c2VsU2xpZGU6UUNhcm91c2VsU2xpZGUsUUNhcm91c2VsQ29udHJvbDpRQ2Fyb3VzZWxDb250cm9sLFFDaGF0TWVzc2FnZTpRQ2hhdE1lc3NhZ2UsUUNoZWNrYm94OlFDaGVja2JveCxRQ2hpcDpRQ2hpcCxRQ2hpcHNJbnB1dDpRQ2hpcHNJbnB1dCxRQ29sbGFwc2libGU6UUNvbGxhcHNpYmxlLFFDb2xvcjpRQ29sb3IsUUNvbG9yUGlja2VyOlFDb2xvclBpY2tlcixRQ29udGV4dE1lbnU6UUNvbnRleHRNZW51LFFEYXRldGltZTpRRGF0ZXRpbWUsUURhdGV0aW1lUGlja2VyOlFEYXRldGltZVBpY2tlcixRRGlhbG9nOlFEaWFsb2csUUVkaXRvcjpRRWRpdG9yLFFGYWI6UUZhYixRRmFiQWN0aW9uOlFGYWJBY3Rpb24sUUZpZWxkOlFGaWVsZCxRSWNvbjpRSWNvbixRSW5maW5pdGVTY3JvbGw6UUluZmluaXRlU2Nyb2xsLFFJbm5lckxvYWRpbmc6UUlubmVyTG9hZGluZyxRSW5wdXQ6UUlucHV0LFFJbnB1dEZyYW1lOlFJbnB1dEZyYW1lLFFKdW1ib3Ryb246UUp1bWJvdHJvbixRS25vYjpRS25vYixRTGF5b3V0OlFMYXlvdXQsUUxheW91dERyYXdlcjpRTGF5b3V0RHJhd2VyLFFMYXlvdXRGb290ZXI6UUxheW91dEZvb3RlcixRTGF5b3V0SGVhZGVyOlFMYXlvdXRIZWFkZXIsUVBhZ2U6UVBhZ2UsUVBhZ2VDb250YWluZXI6UVBhZ2VDb250YWluZXIsUVBhZ2VTdGlja3k6UVBhZ2VTdGlja3ksUUl0ZW06UUl0ZW0sUUl0ZW1TZXBhcmF0b3I6UUl0ZW1TZXBhcmF0b3IsUUl0ZW1NYWluOlFJdGVtTWFpbixRSXRlbVNpZGU6UUl0ZW1TaWRlLFFJdGVtVGlsZTpRSXRlbVRpbGUsUUl0ZW1XcmFwcGVyOlFJdGVtV3JhcHBlcixRTGlzdDpRTGlzdCxRTGlzdEhlYWRlcjpRTGlzdEhlYWRlcixRTW9kYWw6UU1vZGFsLFFNb2RhbExheW91dDpRTW9kYWxMYXlvdXQsUU5vU3NyOlFOb1NzcixRUmVzaXplT2JzZXJ2YWJsZTpRUmVzaXplT2JzZXJ2YWJsZSxRU2Nyb2xsT2JzZXJ2YWJsZTpRU2Nyb2xsT2JzZXJ2YWJsZSxRV2luZG93UmVzaXplT2JzZXJ2YWJsZTpRV2luZG93UmVzaXplT2JzZXJ2YWJsZSxRT3B0aW9uR3JvdXA6UU9wdGlvbkdyb3VwLFFQYWdpbmF0aW9uOlFQYWdpbmF0aW9uLFFQYXJhbGxheDpRUGFyYWxsYXgsUVBvcG92ZXI6UVBvcG92ZXIsUVBvcHVwRWRpdDpRUG9wdXBFZGl0LFFQcm9ncmVzczpRUHJvZ3Jlc3MsUVB1bGxUb1JlZnJlc2g6UVB1bGxUb1JlZnJlc2gsUVJhZGlvOlFSYWRpbyxRUmFuZ2U6UVJhbmdlLFFSYXRpbmc6UVJhdGluZyxRU2Nyb2xsQXJlYTpRU2Nyb2xsQXJlYSxRU2VhcmNoOlFTZWFyY2gsUVNlbGVjdDpRU2VsZWN0LFFTbGlkZVRyYW5zaXRpb246UVNsaWRlVHJhbnNpdGlvbixRU2xpZGVyOlFTbGlkZXIsUVNwaW5uZXI6UVNwaW5uZXIsUVNwaW5uZXJBdWRpbzpRU3Bpbm5lckF1ZGlvLFFTcGlubmVyQmFsbDpRU3Bpbm5lckJhbGwsUVNwaW5uZXJCYXJzOlFTcGlubmVyQmFycyxRU3Bpbm5lckNpcmNsZXM6UVNwaW5uZXJDaXJjbGVzLFFTcGlubmVyQ29tbWVudDpRU3Bpbm5lckNvbW1lbnQsUVNwaW5uZXJDdWJlOlFTcGlubmVyQ3ViZSxRU3Bpbm5lckRvdHM6UVNwaW5uZXJEb3RzLFFTcGlubmVyRmFjZWJvb2s6UVNwaW5uZXJGYWNlYm9vayxRU3Bpbm5lckdlYXJzOlFTcGlubmVyR2VhcnMsUVNwaW5uZXJHcmlkOlFTcGlubmVyR3JpZCxRU3Bpbm5lckhlYXJ0czpRU3Bpbm5lckhlYXJ0cyxRU3Bpbm5lckhvdXJnbGFzczpRU3Bpbm5lckhvdXJnbGFzcyxRU3Bpbm5lckluZmluaXR5OlFTcGlubmVySW5maW5pdHksUVNwaW5uZXJJb3M6UVNwaW5uZXJfaW9zLFFTcGlubmVyTWF0OkRlZmF1bHRTcGlubmVyLFFTcGlubmVyT3ZhbDpRU3Bpbm5lck92YWwsUVNwaW5uZXJQaWU6UVNwaW5uZXJQaWUsUVNwaW5uZXJQdWZmOlFTcGlubmVyUHVmZixRU3Bpbm5lclJhZGlvOlFTcGlubmVyUmFkaW8sUVNwaW5uZXJSaW5nczpRU3Bpbm5lclJpbmdzLFFTcGlubmVyVGFpbDpRU3Bpbm5lclRhaWwsUVN0ZXA6UVN0ZXAsUVN0ZXBwZXI6UVN0ZXBwZXIsUVN0ZXBwZXJOYXZpZ2F0aW9uOlFTdGVwcGVyTmF2aWdhdGlvbixRUm91dGVUYWI6UVJvdXRlVGFiLFFUYWI6UVRhYixRVGFiUGFuZTpRVGFiUGFuZSxRVGFiczpRVGFicyxRVGFibGU6UVRhYmxlLFFUaDpRVGgsUVRyOlFUcixRVGQ6UVRkLFFUYWJsZUNvbHVtbnM6UVRhYmxlQ29sdW1ucyxRVGltZWxpbmU6UVRpbWVsaW5lLFFUaW1lbGluZUVudHJ5OlFUaW1lbGluZUVudHJ5LFFUb2dnbGU6UVRvZ2dsZSxRVG9vbGJhcjpRVG9vbGJhcixRVG9vbGJhclRpdGxlOlFUb29sYmFyVGl0bGUsUVRvb2x0aXA6UVRvb2x0aXAsUVRyZWU6UVRyZWUsUVVwbG9hZGVyOlFVcGxvYWRlcixRVmlkZW86UVZpZGVvfSk7ZnVuY3Rpb24gdXBkYXRlQmluZGluZyh0LGUpe3ZhciBpPWUudmFsdWUscz0oZS5tb2RpZmllcnMsdC5fX3FiYWNrdG90b3ApO2lmKGkpe2lmKFwibnVtYmVyXCI9PXR5cGVvZiBpKXJldHVybiBzLm9mZnNldD1pLHZvaWQgcy51cGRhdGUoKTtpZihpJiZPYmplY3QoaSkhPT1pKWNvbnNvbGUuZXJyb3IoXCJ2LWJhY2stdG8tdG9wIHJlcXVpcmVzIGFuIG9iamVjdCB7b2Zmc2V0LCBkdXJhdGlvbn0gYXMgcGFyYW1ldGVyXCIsdCk7ZWxzZXtpZihpLm9mZnNldCl7aWYoXCJudW1iZXJcIiE9dHlwZW9mIGkub2Zmc2V0KXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoXCJ2LWJhY2stdG8tdG9wIHJlcXVpcmVzIGEgbnVtYmVyIGFzIG9mZnNldFwiLHQpO3Mub2Zmc2V0PWkub2Zmc2V0fWlmKGkuZHVyYXRpb24pe2lmKFwibnVtYmVyXCIhPXR5cGVvZiBpLmR1cmF0aW9uKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoXCJ2LWJhY2stdG8tdG9wIHJlcXVpcmVzIGEgbnVtYmVyIGFzIGR1cmF0aW9uXCIsdCk7cy5kdXJhdGlvbj1pLmR1cmF0aW9ufXMudXBkYXRlKCl9fWVsc2Ugcy51cGRhdGUoKX12YXIgYmFja1RvVG9wPXtuYW1lOlwiYmFjay10by10b3BcIixiaW5kOmZ1bmN0aW9uKHQpe3ZhciBlPXtvZmZzZXQ6MjAwLGR1cmF0aW9uOjMwMCx1cGRhdGVOb3c6ZnVuY3Rpb24oKXt2YXIgaT1nZXRTY3JvbGxQb3NpdGlvbihlLnNjcm9sbFRhcmdldCk8PWUub2Zmc2V0O2khPT10LmNsYXNzTGlzdC5jb250YWlucyhcImhpZGRlblwiKSYmdC5jbGFzc0xpc3RbaT9cImFkZFwiOlwicmVtb3ZlXCJdKFwiaGlkZGVuXCIpfSxnb1RvVG9wOmZ1bmN0aW9uKCl7c2V0U2Nyb2xsUG9zaXRpb24oZS5zY3JvbGxUYXJnZXQsMCxlLmFuaW1hdGU/ZS5kdXJhdGlvbjowKX0sZ29Ub1RvcEtleTpmdW5jdGlvbih0KXsxMz09PXQua2V5Q29kZSYmc2V0U2Nyb2xsUG9zaXRpb24oZS5zY3JvbGxUYXJnZXQsMCxlLmFuaW1hdGU/ZS5kdXJhdGlvbjowKX19O2UudXBkYXRlPWRlYm91bmNlKGUudXBkYXRlTm93LDI1KSx0LmNsYXNzTGlzdC5hZGQoXCJoaWRkZW5cIiksdC5fX3FiYWNrdG90b3A9ZX0saW5zZXJ0ZWQ6ZnVuY3Rpb24odCxlKXt2YXIgaT10Ll9fcWJhY2t0b3RvcDtpLnNjcm9sbFRhcmdldD1nZXRTY3JvbGxUYXJnZXQodCksaS5hbmltYXRlPWUubW9kaWZpZXJzLmFuaW1hdGUsdXBkYXRlQmluZGluZyh0LGUpLGkuc2Nyb2xsVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixpLnVwZGF0ZSxsaXN0ZW5PcHRzLnBhc3NpdmUpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsaS51cGRhdGUsbGlzdGVuT3B0cy5wYXNzaXZlKSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGkuZ29Ub1RvcCksdC5hZGRFdmVudExpc3RlbmVyKFwia2V5dXBcIixpLmdvVG9Ub3BLZXkpfSx1cGRhdGU6ZnVuY3Rpb24odCxlKXtKU09OLnN0cmluZ2lmeShlLm9sZFZhbHVlKSE9PUpTT04uc3RyaW5naWZ5KGUudmFsdWUpP3VwZGF0ZUJpbmRpbmcodCxlKTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5fX3FiYWNrdG90b3AmJnQuX19xYmFja3RvdG9wLnVwZGF0ZU5vdygpfSwwKX0sdW5iaW5kOmZ1bmN0aW9uKHQpe3ZhciBlPXQuX19xYmFja3RvdG9wO2UmJihlLnNjcm9sbFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsZS51cGRhdGUsbGlzdGVuT3B0cy5wYXNzaXZlKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLGUudXBkYXRlLGxpc3Rlbk9wdHMucGFzc2l2ZSksdC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIixlLmdvVG9Ub3ApLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsZS5nb1RvVG9wS2V5KSxkZWxldGUgdC5fX3FiYWNrdG90b3ApfX0sY2xvc2VPdmVybGF5PXtuYW1lOlwiY2xvc2Utb3ZlcmxheVwiLGJpbmQ6ZnVuY3Rpb24odCxlLGkpe3ZhciBzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1pLmNvbXBvbmVudEluc3RhbmNlO2U9ZS4kcGFyZW50Oyl7dmFyIHM9ZS4kb3B0aW9ucy5uYW1lO2lmKFwiUVBvcG92ZXJcIj09PXN8fFwiUU1vZGFsXCI9PT1zKXtlLmhpZGUodCk7YnJlYWt9fX0sbj1mdW5jdGlvbih0KXsxMz09PXQua2V5Q29kZSYmcyh0KX07dC5fX3FjbG9zZT17aGFuZGxlcjpzLGhhbmRsZXJLZXk6bn0sdC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIixzKSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLG4pfSx1bmJpbmQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5fX3FjbG9zZTtlJiYodC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIixlLmhhbmRsZXIpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsZS5oYW5kbGVyS2V5KSxkZWxldGUgdC5fX3FjbG9zZSl9fSxnb0JhY2s9e25hbWU6XCJnby1iYWNrXCIsYmluZDpmdW5jdGlvbih0LGUsaSl7dmFyIHM9ZS52YWx1ZSxuPWUubW9kaWZpZXJzLG89e3ZhbHVlOnMscG9zaXRpb246d2luZG93Lmhpc3RvcnkubGVuZ3RoLTEsc2luZ2xlOm4uc2luZ2xlfTtQbGF0Zm9ybS5pcy5jb3Jkb3ZhP28uZ29CYWNrPWZ1bmN0aW9uKCl7aS5jb250ZXh0LiRyb3V0ZXIuZ28oby5zaW5nbGU/LTE6by5wb3NpdGlvbi13aW5kb3cuaGlzdG9yeS5sZW5ndGgpfTpvLmdvQmFjaz1mdW5jdGlvbigpe2kuY29udGV4dC4kcm91dGVyLnJlcGxhY2Uoby52YWx1ZSl9LG8uZ29CYWNrS2V5PWZ1bmN0aW9uKHQpezEzPT09dC5rZXlDb2RlJiZvLmdvQmFjayh0KX0sdC5fX3Fnb2JhY2s9byx0LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLG8uZ29CYWNrKSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLG8uZ29CYWNrS2V5KX0sdXBkYXRlOmZ1bmN0aW9uKHQsZSl7ZS5vbGRWYWx1ZSE9PWUudmFsdWUmJih0Ll9fcWdvYmFjay52YWx1ZT1lLnZhbHVlKX0sdW5iaW5kOmZ1bmN0aW9uKHQpe3ZhciBlPXQuX19xZ29iYWNrO2UmJih0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLGUuZ29CYWNrKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLGUuZ29CYWNrS2V5KSxkZWxldGUgdC5fX3Fnb2JhY2spfX07ZnVuY3Rpb24gdXBkYXRlQmluZGluZyQxKHQsZSl7dmFyIGk9dC5fX3FzY3JvbGxmaXJlO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUudmFsdWUpcmV0dXJuIGkuc2Nyb2xsVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixpLnNjcm9sbCksdm9pZCBjb25zb2xlLmVycm9yKFwidi1zY3JvbGwtZmlyZSByZXF1aXJlcyBhIGZ1bmN0aW9uIGFzIHBhcmFtZXRlclwiLHQpO2kuaGFuZGxlcj1lLnZhbHVlLFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUub2xkVmFsdWUmJihpLnNjcm9sbFRhcmdldC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsaS5zY3JvbGwsbGlzdGVuT3B0cy5wYXNzaXZlKSxpLnNjcm9sbCgpKX12YXIgc2Nyb2xsRmlyZT17bmFtZTpcInNjcm9sbC1maXJlXCIsYmluZDpmdW5jdGlvbih0LGUpe3ZhciBpPXtzY3JvbGw6ZGVib3VuY2UoZnVuY3Rpb24oKXt2YXIgZSxzO2kuc2Nyb2xsVGFyZ2V0PT09d2luZG93PyhzPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tLGU9d2luZG93LmlubmVySGVpZ2h0KToocz1vZmZzZXQodCkudG9wK2hlaWdodCh0KSxlPW9mZnNldChpLnNjcm9sbFRhcmdldCkudG9wK2hlaWdodChpLnNjcm9sbFRhcmdldCkpLHM+MCYmczxlJiYoaS5zY3JvbGxUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLGkuc2Nyb2xsLGxpc3Rlbk9wdHMucGFzc2l2ZSksaS5oYW5kbGVyKHQpKX0sMjUpfTt0Ll9fcXNjcm9sbGZpcmU9aX0saW5zZXJ0ZWQ6ZnVuY3Rpb24odCxlKXt0Ll9fcXNjcm9sbGZpcmUuc2Nyb2xsVGFyZ2V0PWdldFNjcm9sbFRhcmdldCh0KSx1cGRhdGVCaW5kaW5nJDEodCxlKX0sdXBkYXRlOmZ1bmN0aW9uKHQsZSl7ZS52YWx1ZSE9PWUub2xkVmFsdWUmJnVwZGF0ZUJpbmRpbmckMSh0LGUpfSx1bmJpbmQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5fX3FzY3JvbGxmaXJlO2UmJihlLnNjcm9sbFRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsZS5zY3JvbGwsbGlzdGVuT3B0cy5wYXNzaXZlKSxkZWxldGUgdC5fX3FzY3JvbGxmaXJlKX19O2Z1bmN0aW9uIHVwZGF0ZUJpbmRpbmckMih0LGUpe3ZhciBpPXQuX19xc2Nyb2xsO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIGUudmFsdWUpcmV0dXJuIGkuc2Nyb2xsVGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIixpLnNjcm9sbCxsaXN0ZW5PcHRzLnBhc3NpdmUpLHZvaWQgY29uc29sZS5lcnJvcihcInYtc2Nyb2xsIHJlcXVpcmVzIGEgZnVuY3Rpb24gYXMgcGFyYW1ldGVyXCIsdCk7aS5oYW5kbGVyPWUudmFsdWUsXCJmdW5jdGlvblwiIT10eXBlb2YgZS5vbGRWYWx1ZSYmaS5zY3JvbGxUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLGkuc2Nyb2xsLGxpc3Rlbk9wdHMucGFzc2l2ZSl9dmFyIHNjcm9sbCQxPXtuYW1lOlwic2Nyb2xsXCIsYmluZDpmdW5jdGlvbih0LGUpe3ZhciBpPXtzY3JvbGw6ZnVuY3Rpb24oKXtpLmhhbmRsZXIoZ2V0U2Nyb2xsUG9zaXRpb24oaS5zY3JvbGxUYXJnZXQpLGdldEhvcml6b250YWxTY3JvbGxQb3NpdGlvbihpLnNjcm9sbFRhcmdldCkpfX07dC5fX3FzY3JvbGw9aX0saW5zZXJ0ZWQ6ZnVuY3Rpb24odCxlKXt0Ll9fcXNjcm9sbC5zY3JvbGxUYXJnZXQ9Z2V0U2Nyb2xsVGFyZ2V0KHQpLHVwZGF0ZUJpbmRpbmckMih0LGUpfSx1cGRhdGU6ZnVuY3Rpb24odCxlKXtlLm9sZFZhbHVlIT09ZS52YWx1ZSYmdXBkYXRlQmluZGluZyQyKHQsZSl9LHVuYmluZDpmdW5jdGlvbih0KXt2YXIgZT10Ll9fcXNjcm9sbDtlJiYoZS5zY3JvbGxUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLGUuc2Nyb2xsLGxpc3Rlbk9wdHMucGFzc2l2ZSksZGVsZXRlIHQuX19xc2Nyb2xsKX19O2Z1bmN0aW9uIHVwZGF0ZUJpbmRpbmckMyh0LGUpe3ZhciBpPXQuX19xdG91Y2hob2xkO2kuZHVyYXRpb249cGFyc2VJbnQoZS5hcmcsMTApfHw2MDAsZS5vbGRWYWx1ZSE9PWUudmFsdWUmJihpLmhhbmRsZXI9ZS52YWx1ZSl9dmFyIHRvdWNoSG9sZD17bmFtZTpcInRvdWNoLWhvbGRcIixiaW5kOmZ1bmN0aW9uKHQsZSl7dmFyIGk9IWUubW9kaWZpZXJzLm5vTW91c2Uscz1lLm1vZGlmaWVycy5zdG9wLG49ZS5tb2RpZmllcnMucHJldmVudCxvPXttb3VzZVN0YXJ0OmZ1bmN0aW9uKHQpe2xlZnRDbGljayh0KSYmKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixvLm1vdXNlQWJvcnQpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsby5tb3VzZUFib3J0KSxvLnN0YXJ0KHQpKX0sbW91c2VBYm9ydDpmdW5jdGlvbih0KXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2Vtb3ZlXCIsby5tb3VzZUFib3J0KSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwibW91c2V1cFwiLG8ubW91c2VBYm9ydCksby5hYm9ydCh0KX0sc3RhcnQ6ZnVuY3Rpb24odCl7dmFyIGU9KG5ldyBEYXRlKS5nZXRUaW1lKCk7cyYmdC5zdG9wUHJvcGFnYXRpb24oKSxuJiZ0LnByZXZlbnREZWZhdWx0KCksby50aW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aSYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIixvLm1vdXNlQWJvcnQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZXVwXCIsby5tb3VzZUFib3J0KSksby5oYW5kbGVyKHtldnQ6dCxwb3NpdGlvbjpwb3NpdGlvbih0KSxkdXJhdGlvbjoobmV3IERhdGUpLmdldFRpbWUoKS1lfSl9LG8uZHVyYXRpb24pfSxhYm9ydDpmdW5jdGlvbih0KXtjbGVhclRpbWVvdXQoby50aW1lciksby50aW1lcj1udWxsfX07dC5fX3F0b3VjaGhvbGQ9byx1cGRhdGVCaW5kaW5nJDModCxlKSxpJiZ0LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIixvLm1vdXNlU3RhcnQpLHQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixvLnN0YXJ0KSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaG1vdmVcIixvLmFib3J0KSx0LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLG8uYWJvcnQpfSx1cGRhdGU6ZnVuY3Rpb24odCxlKXt1cGRhdGVCaW5kaW5nJDModCxlKX0sdW5iaW5kOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dC5fX3F0b3VjaGhvbGQ7aSYmKHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIixpLnN0YXJ0KSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0b3VjaGVuZFwiLGkuYWJvcnQpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNobW92ZVwiLGkuYWJvcnQpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLGkubW91c2VTdGFydCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlbW92ZVwiLGkubW91c2VBYm9ydCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNldXBcIixpLm1vdXNlQWJvcnQpLGRlbGV0ZSB0Ll9fcXRvdWNoaG9sZCl9fSxkaXJlY3RpdmVzPU9iamVjdC5mcmVlemUoe0JhY2tUb1RvcDpiYWNrVG9Ub3AsQ2xvc2VPdmVybGF5OmNsb3NlT3ZlcmxheSxHb0JhY2s6Z29CYWNrLFJpcHBsZTpSaXBwbGUsU2Nyb2xsRmlyZTpzY3JvbGxGaXJlLFNjcm9sbDpzY3JvbGwkMSxUb3VjaEhvbGQ6dG91Y2hIb2xkLFRvdWNoUGFuOlRvdWNoUGFuLFRvdWNoU3dpcGU6VG91Y2hTd2lwZX0pO2Z1bmN0aW9uIG9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHQsZSl7dmFyIGk9e307Zm9yKHZhciBzIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscykmJi0xPT09ZS5pbmRleE9mKHMpJiYoaVtzXT10W3NdKTtyZXR1cm4gaX1mdW5jdGlvbiBtb2RhbEZuKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKGkscyl7dmFyIG49aS5jbGFzc05hbWUsbz1vYmplY3RXaXRob3V0UHJvcGVydGllcyhpLFtcImNsYXNzTmFtZVwiXSk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGkscil7aWYoaXNTU1IpcmV0dXJuIGkoKTt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7dmFyIGw9ZnVuY3Rpb24odCl7aSh0KSxoLiRkZXN0cm95KCl9LGM9ZnVuY3Rpb24odCl7cih0fHxuZXcgRXJyb3IpLGguJGRlc3Ryb3koKX0saD1uZXcgZSh7ZWw6YSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3Byb3BzOm99fSxyZW5kZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGUodCx7cmVmOlwibW9kYWxcIixwcm9wczpvLGNsYXNzOm4sb246e29rOmwsY2FuY2VsOmN9fSl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt0aGlzLiRyZWZzLm1vZGFsLnNob3coKX19KTtzJiZzLnRoZW4obCxjKX0pfX12YXIgbWV0YVZhbHVlLGFjdGlvblNoZWV0PXtpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXQuJHEsaT10LlZ1ZTt0aGlzLmNyZWF0ZT1lLmFjdGlvblNoZWV0PW1vZGFsRm4oUUFjdGlvblNoZWV0LGkpfX07ZnVuY3Rpb24gZ2V0UHJvcCgpe3JldHVybiBQbGF0Zm9ybS5pcy53aW5waG9uZT9cIm1zYXBwbGljYXRpb24tbmF2YnV0dG9uLWNvbG9yXCI6UGxhdGZvcm0uaXMuc2FmYXJpP1wiYXBwbGUtbW9iaWxlLXdlYi1hcHAtc3RhdHVzLWJhci1zdHlsZVwiOlwidGhlbWUtY29sb3JcIn1mdW5jdGlvbiBnZXRNZXRhVGFnKHQpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiTUVUQVwiKTtmb3IodmFyIGkgaW4gZSlpZihlW2ldLm5hbWU9PT10KXJldHVybiBlW2ldfWZ1bmN0aW9uIHNldENvbG9yKHQpe3ZvaWQgMD09PW1ldGFWYWx1ZSYmKG1ldGFWYWx1ZT1nZXRQcm9wKCkpO3ZhciBlPWdldE1ldGFUYWcobWV0YVZhbHVlKSxpPXZvaWQgMD09PWU7aSYmKGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcIm1ldGFcIikpLnNldEF0dHJpYnV0ZShcIm5hbWVcIixtZXRhVmFsdWUpLGUuc2V0QXR0cmlidXRlKFwiY29udGVudFwiLHQpLGkmJmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoZSl9dmFyIGFkZHJlc3NiYXJDb2xvcj17aW5zdGFsbDpmdW5jdGlvbih0KXt2YXIgZT10LiRxLGk9KHQuVnVlLHQuY2ZnKTt0aGlzLnNldD0haXNTU1ImJlBsYXRmb3JtLmlzLm1vYmlsZSYmKFBsYXRmb3JtLmlzLmNvcmRvdmF8fFBsYXRmb3JtLmlzLndpbnBob25lfHxQbGF0Zm9ybS5pcy5zYWZhcml8fFBsYXRmb3JtLmlzLndlYmtpdHx8UGxhdGZvcm0uaXMudml2YWxkaSk/ZnVuY3Rpb24odCl7dmFyIGU9dHx8Z2V0QnJhbmQoXCJwcmltYXJ5XCIpO1BsYXRmb3JtLmlzLmNvcmRvdmEmJndpbmRvdy5TdGF0dXNCYXI/d2luZG93LlN0YXR1c0Jhci5iYWNrZ3JvdW5kQ29sb3JCeUhleFN0cmluZyhlKTpzZXRDb2xvcihlKX06ZnVuY3Rpb24oKXt9LGUuYWRkcmVzc2JhckNvbG9yPXRoaXMsaS5hZGRyZXNzYmFyQ29sb3ImJnRoaXMuc2V0KGkuYWRkcmVzc2JhckNvbG9yKX19LHByZWZpeGVzPXt9LGFwcEZ1bGxzY3JlZW49e2lzQ2FwYWJsZTohMSxpc0FjdGl2ZTohMSxyZXF1ZXN0OmZ1bmN0aW9uKHQpe3RoaXMuaXNDYXBhYmxlJiYhdGhpcy5pc0FjdGl2ZSYmKHQ9dHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KVtwcmVmaXhlcy5yZXF1ZXN0XSgpfSxleGl0OmZ1bmN0aW9uKCl7dGhpcy5pc0NhcGFibGUmJnRoaXMuaXNBY3RpdmUmJmRvY3VtZW50W3ByZWZpeGVzLmV4aXRdKCl9LHRvZ2dsZTpmdW5jdGlvbih0KXt0aGlzLmlzQWN0aXZlP3RoaXMuZXhpdCgpOnRoaXMucmVxdWVzdCh0KX0saW5zdGFsbDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dC4kcSxzPXQuVnVlO2kuZnVsbHNjcmVlbj10aGlzLGlzU1NSfHwocHJlZml4ZXMucmVxdWVzdD1bXCJyZXF1ZXN0RnVsbHNjcmVlblwiLFwibXNSZXF1ZXN0RnVsbHNjcmVlblwiLFwibW96UmVxdWVzdEZ1bGxTY3JlZW5cIixcIndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuXCJdLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFt0XX0pLHRoaXMuaXNDYXBhYmxlPXZvaWQgMCE9PXByZWZpeGVzLnJlcXVlc3QsdGhpcy5pc0NhcGFibGUmJihwcmVmaXhlcy5leGl0PVtcImV4aXRGdWxsc2NyZWVuXCIsXCJtc0V4aXRGdWxsc2NyZWVuXCIsXCJtb3pDYW5jZWxGdWxsU2NyZWVuXCIsXCJ3ZWJraXRFeGl0RnVsbHNjcmVlblwiXS5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiBkb2N1bWVudFt0XX0pLHRoaXMuaXNBY3RpdmU9ISEoZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnR8fGRvY3VtZW50Lm1vekZ1bGxTY3JlZW5FbGVtZW50fHxkb2N1bWVudC53ZWJraXRGdWxsc2NyZWVuRWxlbWVudHx8ZG9jdW1lbnQubXNGdWxsc2NyZWVuRWxlbWVudCksW1wib25mdWxsc2NyZWVuY2hhbmdlXCIsXCJvbm1zZnVsbHNjcmVlbmNoYW5nZVwiLFwib25tb3pmdWxsc2NyZWVuY2hhbmdlXCIsXCJvbndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2VcIl0uZm9yRWFjaChmdW5jdGlvbih0KXtkb2N1bWVudFt0XT1mdW5jdGlvbigpe2UuaXNBY3RpdmU9IWUuaXNBY3RpdmV9fSkscy51dGlsLmRlZmluZVJlYWN0aXZlKHRoaXMsXCJpc0FjdGl2ZVwiLHRoaXMuaXNBY3RpdmUpKSl9fSxhcHBWaXNpYmlsaXR5PXthcHBWaXNpYmxlOiExLGluc3RhbGw6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxpPXQuJHEscz10LlZ1ZTtpZihpc1NTUil0aGlzLmFwcFZpc2libGU9aS5hcHBWaXNpYmxlPSEwO2Vsc2V7dmFyIG4sbzt2b2lkIDAhPT1kb2N1bWVudC5oaWRkZW4/KG49XCJoaWRkZW5cIixvPVwidmlzaWJpbGl0eWNoYW5nZVwiKTp2b2lkIDAhPT1kb2N1bWVudC5tc0hpZGRlbj8obj1cIm1zSGlkZGVuXCIsbz1cIm1zdmlzaWJpbGl0eWNoYW5nZVwiKTp2b2lkIDAhPT1kb2N1bWVudC53ZWJraXRIaWRkZW4mJihuPVwid2Via2l0SGlkZGVuXCIsbz1cIndlYmtpdHZpc2liaWxpdHljaGFuZ2VcIik7dmFyIHI9ZnVuY3Rpb24oKXtlLmFwcFZpc2libGU9aS5hcHBWaXNpYmxlPSFkb2N1bWVudFtuXX07cigpLG8mJnZvaWQgMCE9PWRvY3VtZW50W25dJiYocy51dGlsLmRlZmluZVJlYWN0aXZlKGksXCJhcHBWaXNpYmxlXCIsdGhpcy5hcHBWaXNpYmxlKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKG8sciwhMSkpfX19O2Z1bmN0aW9uIGVuY29kZSh0KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHQpfWZ1bmN0aW9uIGRlY29kZSh0KXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHQpfWZ1bmN0aW9uIHN0cmluZ2lmeUNvb2tpZVZhbHVlKHQpe3JldHVybiBlbmNvZGUodD09PU9iamVjdCh0KT9KU09OLnN0cmluZ2lmeSh0KTpcIlwiK3QpfWZ1bmN0aW9uIHJlYWQodCl7aWYoXCJcIj09PXQpcmV0dXJuIHQ7MD09PXQuaW5kZXhPZignXCInKSYmKHQ9dC5zbGljZSgxLC0xKS5yZXBsYWNlKC9cXFxcXCIvZywnXCInKS5yZXBsYWNlKC9cXFxcXFxcXC9nLFwiXFxcXFwiKSksdD1kZWNvZGUodC5yZXBsYWNlKC9cXCsvZyxcIiBcIikpO3RyeXt0PUpTT04ucGFyc2UodCl9Y2F0Y2godCl7fXJldHVybiB0fWZ1bmN0aW9uIHNldCh0LGUsaSxzKXt2YXIgbixvO2lmKHZvaWQgMD09PWkmJihpPXt9KSx2b2lkIDAhPT1pLmV4cGlyZXMpe2lmKG89cGFyc2VJbnQoaS5leHBpcmVzLDEwKSxpc05hTihvKSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKFwiUXVhc2FyIGNvb2tpZTogZXhwaXJlcyBuZWVkcyB0byBiZSBhIG51bWJlclwiKTsobj1uZXcgRGF0ZSkuc2V0TWlsbGlzZWNvbmRzKG4uZ2V0TWlsbGlzZWNvbmRzKCkrODY0ZTUqbyl9dmFyIHI9ZW5jb2RlKHQpK1wiPVwiK3N0cmluZ2lmeUNvb2tpZVZhbHVlKGUpLGE9W3Isdm9pZCAwIT09bj9cIjsgRXhwaXJlcz1cIituLnRvVVRDU3RyaW5nKCk6XCJcIixpLnBhdGg/XCI7IFBhdGg9XCIraS5wYXRoOlwiXCIsaS5kb21haW4/XCI7IERvbWFpbj1cIitpLmRvbWFpbjpcIlwiLGkuaHR0cE9ubHk/XCI7IEh0dHBPbmx5XCI6XCJcIixpLnNlY3VyZT9cIjsgU2VjdXJlXCI6XCJcIl0uam9pbihcIlwiKTtpZihzKXtzLnJlcS5xQ29va2llcz9zLnJlcS5xQ29va2llcy5wdXNoKGEpOnMucmVxLnFDb29raWVzPVthXSxzLnJlcy5zZXRIZWFkZXIoXCJTZXQtQ29va2llXCIscy5yZXEucUNvb2tpZXMpO3ZhciBsPXMucmVxLmhlYWRlcnMuY29va2llfHxcIlwiO2lmKHZvaWQgMCE9PW4mJm88MCl7dmFyIGM9Z2V0KHQscyk7dm9pZCAwIT09YyYmKGw9bC5yZXBsYWNlKHQrXCI9XCIrYytcIjsgXCIsXCJcIikucmVwbGFjZShcIjsgXCIrdCtcIj1cIitjLFwiXCIpLnJlcGxhY2UodCtcIj1cIitjLFwiXCIpKX1lbHNlIGw9bD9yK1wiOyBcIitsOmE7cy5yZXEuaGVhZGVycy5jb29raWU9bH1lbHNlIGRvY3VtZW50LmNvb2tpZT1hfWZ1bmN0aW9uIGdldCh0LGUpe2Zvcih2YXIgaSxzLG4sbz10P3ZvaWQgMDp7fSxyPWU/ZS5yZXEuaGVhZGVyczpkb2N1bWVudCxhPXIuY29va2llP3IuY29va2llLnNwbGl0KFwiOyBcIik6W10sbD0wLGM9YS5sZW5ndGg7bDxjO2wrKylpZihzPWRlY29kZSgoaT1hW2xdLnNwbGl0KFwiPVwiKSkuc2hpZnQoKSksbj1pLmpvaW4oXCI9XCIpLHQpe2lmKHQ9PT1zKXtvPXJlYWQobik7YnJlYWt9fWVsc2Ugb1tzXT1uO3JldHVybiBvfWZ1bmN0aW9uIHJlbW92ZSh0LGUsaSl7c2V0KHQsXCJcIixPYmplY3QuYXNzaWduKHt9LGUse2V4cGlyZXM6LTF9KSxpKX1mdW5jdGlvbiBoYXModCxlKXtyZXR1cm4gdm9pZCAwIT09Z2V0KHQsZSl9ZnVuY3Rpb24gZ2V0T2JqZWN0KHQpe3ZvaWQgMD09PXQmJih0PXt9KTt2YXIgZT10LnNzcjtyZXR1cm57Z2V0OmZ1bmN0aW9uKHQpe3JldHVybiBnZXQodCxlKX0sc2V0OmZ1bmN0aW9uKHQsaSxzKXtyZXR1cm4gc2V0KHQsaSxzLGUpfSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuIGhhcyh0LGUpfSxyZW1vdmU6ZnVuY3Rpb24odCxpKXtyZXR1cm4gcmVtb3ZlKHQsaSxlKX0sYWxsOmZ1bmN0aW9uKCl7cmV0dXJuIGdldChudWxsLGUpfX19dmFyIHZtLHRpbWVvdXQsdXBkYXRlSWQsc3NyVGFrZW92ZXIsY29va2llcz17cGFyc2VTU1I6ZnVuY3Rpb24odCl7cmV0dXJuIHQ/Z2V0T2JqZWN0KHtzc3I6dH0pOnRoaXN9LGluc3RhbGw6ZnVuY3Rpb24odCl7dmFyIGU9dC4kcSxpPXQucXVldWVzO2lzU1NSP2kuc2VydmVyLnB1c2goZnVuY3Rpb24odCxlKXt0LmNvb2tpZXM9Z2V0T2JqZWN0KGUpfSk6KE9iamVjdC5hc3NpZ24odGhpcyxnZXRPYmplY3QoKSksZS5jb29raWVzPXRoaXMpfX0sZGlhbG9nPXtpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXQuJHEsaT10LlZ1ZTt0aGlzLmNyZWF0ZT1lLmRpYWxvZz1tb2RhbEZuKFFEaWFsb2csaSl9fSxsb2FkaW5nQmFyPXtzdGFydDpmdW5jdGlvbigpe30sc3RvcDpmdW5jdGlvbigpe30saW5jcmVtZW50OmZ1bmN0aW9uKCl7fSxpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXQuJHEsaT10LlZ1ZSxzPXQuY2ZnO2lmKGlzU1NSKWUubG9hZGluZ0Jhcj10aGlzO2Vsc2V7dmFyIG49ZS5sb2FkaW5nQmFyPW5ldyBpKHtyZW5kZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQoUUFqYXhCYXIse3JlZjpcImJhclwiLHByb3BzOnMubG9hZGluZ0Jhcn0pfX0pLiRtb3VudCgpLiRyZWZzLmJhcjtPYmplY3QuYXNzaWduKHRoaXMse3N0YXJ0Om4uc3RhcnQsc3RvcDpuLnN0b3AsaW5jcmVtZW50Om4uaW5jcmVtZW50fSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlLmxvYWRpbmdCYXIuJHBhcmVudC4kZWwpfX19LHByb3BzPXt9LGRlZmF1bHRzPXtkZWxheTowLG1lc3NhZ2U6ITEsc3Bpbm5lclNpemU6ODAsc3Bpbm5lckNvbG9yOlwid2hpdGVcIixtZXNzYWdlQ29sb3I6XCJ3aGl0ZVwiLHNwaW5uZXI6UVNwaW5uZXIsY3VzdG9tQ2xhc3M6ITF9LHN0YXRpY0NsYXNzPVwicS1sb2FkaW5nIGFuaW1hdGUtZmFkZSBmdWxsc2NyZWVuIGNvbHVtbiBmbGV4LWNlbnRlciB6LW1heFwiLGxvYWRpbmc9e2lzQWN0aXZlOiExLHNob3c6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpc1NTUnx8KFwic3RyaW5nXCI9PXR5cGVvZihwcm9wcz1PYmplY3QuYXNzaWduKHt9LGRlZmF1bHRzLHQpKS5jdXN0b21DbGFzcyYmKHByb3BzLmN1c3RvbUNsYXNzPXByb3BzLmN1c3RvbUNsYXNzLnRyaW0oKSksdGhpcy5pc0FjdGl2ZT92bSYmdm0uJGZvcmNlVXBkYXRlKCk6KHRpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe3RpbWVvdXQ9bnVsbDt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwid2l0aC1sb2FkaW5nXCIpLHZtPW5ldyBlLl9fVnVlKHtuYW1lOlwiUUxvYWRpbmdcIixlbDp0LHJlbmRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpzdGF0aWNDbGFzcyxjbGFzczpwcm9wcy5jdXN0b21DbGFzc30sW3QocHJvcHMuc3Bpbm5lcix7cHJvcHM6e2NvbG9yOnByb3BzLnNwaW5uZXJDb2xvcixzaXplOnByb3BzLnNwaW5uZXJTaXplfX0pLHByb3BzLm1lc3NhZ2U/dChcImRpdlwiLHtjbGFzczpcInRleHQtXCIrcHJvcHMubWVzc2FnZUNvbG9yLGRvbVByb3BzOntpbm5lckhUTUw6cHJvcHMubWVzc2FnZX19KTpudWxsXSl9fSl9LHByb3BzLmRlbGF5KSx0aGlzLmlzQWN0aXZlPSEwKSl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLmlzQWN0aXZlJiYodGltZW91dD8oY2xlYXJUaW1lb3V0KHRpbWVvdXQpLHRpbWVvdXQ9bnVsbCk6KHZtLiRkZXN0cm95KCksZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKFwid2l0aC1sb2FkaW5nXCIpLHZtLiRlbC5yZW1vdmUoKSx2bT1udWxsKSx0aGlzLmlzQWN0aXZlPSExKX0sc2V0RGVmYXVsdHM6ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbihkZWZhdWx0cyx0KX0sX19WdWU6bnVsbCxpbnN0YWxsOmZ1bmN0aW9uKHQpe3ZhciBlPXQuJHEsaT10LlZ1ZSxzPXQuY2ZnLmxvYWRpbmc7cyYmdGhpcy5zZXREZWZhdWx0cyhzKSxlLmxvYWRpbmc9dGhpcyx0aGlzLl9fVnVlPWl9fTtmdW5jdGlvbiBub3JtYWxpemUodCl7dC50aXRsZSYmKHQudGl0bGU9dC50aXRsZVRlbXBsYXRlP3QudGl0bGVUZW1wbGF0ZSh0LnRpdGxlfHxcIlwiKTp0LnRpdGxlLGRlbGV0ZSB0LnRpdGxlVGVtcGxhdGUpLFtbXCJtZXRhXCIsXCJjb250ZW50XCJdLFtcImxpbmtcIixcImhyZWZcIl1dLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIGk9dFtlWzBdXSxzPWVbMV07Zm9yKHZhciBuIGluIGkpe3ZhciBvPWlbbl07by50ZW1wbGF0ZSYmKDE9PT1PYmplY3Qua2V5cyhvKS5sZW5ndGg/ZGVsZXRlIGlbbl06KG9bc109by50ZW1wbGF0ZShvW3NdfHxcIlwiKSxkZWxldGUgby50ZW1wbGF0ZSkpfX0pfWZ1bmN0aW9uIGNoYW5nZWQodCxlKXtpZihPYmplY3Qua2V5cyh0KS5sZW5ndGghPT1PYmplY3Qua2V5cyhlKS5sZW5ndGgpcmV0dXJuITA7Zm9yKHZhciBpIGluIHQpaWYodFtpXSE9PWVbaV0pcmV0dXJuITB9ZnVuY3Rpb24gYm9keUZpbHRlcih0KXtyZXR1cm4hW1wiY2xhc3NcIixcInN0eWxlXCJdLmluY2x1ZGVzKHQpfWZ1bmN0aW9uIGh0bWxGaWx0ZXIodCl7cmV0dXJuIVtcImxhbmdcIixcImRpclwiXS5pbmNsdWRlcyh0KX1mdW5jdGlvbiBkaWZmKHQsZSl7dmFyIGk9e30scz17fTtyZXR1cm4gdD8odC50aXRsZSE9PWUudGl0bGUmJihpLnRpdGxlPWUudGl0bGUpLFtcIm1ldGFcIixcImxpbmtcIixcInNjcmlwdFwiLFwiaHRtbEF0dHJcIixcImJvZHlBdHRyXCJdLmZvckVhY2goZnVuY3Rpb24obil7dmFyIG89dFtuXSxyPWVbbl07aWYoc1tuXT1bXSxvKXtmb3IodmFyIGEgaW4gaVtuXT17fSxvKXIuaGFzT3duUHJvcGVydHkoYSl8fHNbbl0ucHVzaChhKTtmb3IodmFyIGwgaW4gcilvLmhhc093blByb3BlcnR5KGwpP2NoYW5nZWQob1tsXSxyW2xdKSYmKHNbbl0ucHVzaChsKSxpW25dW2xdPXJbbF0pOmlbbl1bbF09cltsXX1lbHNlIGlbbl09cn0pLHthZGQ6aSxyZW1vdmU6c30pOnthZGQ6ZSxyZW1vdmU6c319ZnVuY3Rpb24gYXBwbHkodCl7dmFyIGU9dC5hZGQsaT10LnJlbW92ZTtlLnRpdGxlJiYoZG9jdW1lbnQudGl0bGU9ZS50aXRsZSksT2JqZWN0LmtleXMoaSkubGVuZ3RoPjAmJihbXCJtZXRhXCIsXCJsaW5rXCIsXCJzY3JpcHRcIl0uZm9yRWFjaChmdW5jdGlvbih0KXtpW3RdLmZvckVhY2goZnVuY3Rpb24oZSl7ZG9jdW1lbnQuaGVhZC5xdWVyeVNlbGVjdG9yKHQrJ1tkYXRhLXFtZXRhPVwiJytlKydcIl0nKS5yZW1vdmUoKX0pfSksaS5odG1sQXR0ci5maWx0ZXIoaHRtbEZpbHRlcikuZm9yRWFjaChmdW5jdGlvbih0KXtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKHQpfSksaS5ib2R5QXR0ci5maWx0ZXIoYm9keUZpbHRlcikuZm9yRWFjaChmdW5jdGlvbih0KXtkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZSh0KX0pKSxbXCJtZXRhXCIsXCJsaW5rXCIsXCJzY3JpcHRcIl0uZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgaT1lW3RdO2Zvcih2YXIgcyBpbiBpKXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KHQpO2Zvcih2YXIgbyBpbiBpW3NdKVwiaW5uZXJIVE1MXCIhPT1vJiZuLnNldEF0dHJpYnV0ZShvLGlbc11bb10pO24uc2V0QXR0cmlidXRlKFwiZGF0YS1xbWV0YVwiLHMpLFwic2NyaXB0XCI9PT10JiYobi5pbm5lckhUTUw9aVtzXS5pbm5lckhUTUx8fFwiXCIpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobil9fSksT2JqZWN0LmtleXMoZS5odG1sQXR0cikuZmlsdGVyKGh0bWxGaWx0ZXIpLmZvckVhY2goZnVuY3Rpb24odCl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNldEF0dHJpYnV0ZSh0LGUuaHRtbEF0dHJbdF18fFwiXCIpfSksT2JqZWN0LmtleXMoZS5ib2R5QXR0cikuZmlsdGVyKGJvZHlGaWx0ZXIpLmZvckVhY2goZnVuY3Rpb24odCl7ZG9jdW1lbnQuYm9keS5zZXRBdHRyaWJ1dGUodCxlLmJvZHlBdHRyW3RdfHxcIlwiKX0pfWZ1bmN0aW9uIHBhcnNlTWV0YSh0LGUpe2lmKCF0Ll9pbmFjdGl2ZSl7dmFyIGk9dC4kb3B0aW9ucy5tZXRhO2kmJihleHRlbmQoITAsZSx0Ll9fcU1ldGEpLGkuc3RvcFByb3BhZ2F0aW9uKXx8dC4kY2hpbGRyZW4mJnQuJGNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24odCl7cGFyc2VNZXRhKHQsZSl9KX19ZnVuY3Rpb24gdXBkYXRlQ2xpZW50KCl7aWYoc3NyVGFrZW92ZXIpcmV0dXJuIHNzclRha2VvdmVyPSExLHRoaXMuJHJvb3QuX19jdXJyZW50TWV0YT13aW5kb3cuX19RX01FVEFfXyx2b2lkIGRvY3VtZW50LmJvZHkucXVlcnlTZWxlY3RvcihcInNjcmlwdFtkYXRhLXFtZXRhLWluaXRdXCIpLnJlbW92ZSgpO3ZhciB0PXt0aXRsZTpcIlwiLHRpdGxlVGVtcGxhdGU6bnVsbCxtZXRhOnt9LGxpbms6e30sc2NyaXB0Ont9LGh0bWxBdHRyOnt9LGJvZHlBdHRyOnt9fTtwYXJzZU1ldGEodGhpcy4kcm9vdCx0KSxub3JtYWxpemUodCksYXBwbHkoZGlmZih0aGlzLiRyb290Ll9fY3VycmVudE1ldGEsdCkpLHRoaXMuJHJvb3QuX19jdXJyZW50TWV0YT10fWZ1bmN0aW9uIGdldEF0dHIodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBpPXRbZV07cmV0dXJuIGUrKHZvaWQgMCE9PWk/Jz1cIicraSsnXCInOlwiXCIpfX1mdW5jdGlvbiBnZXRIZWFkKHQpe3ZhciBlPVwiXCI7cmV0dXJuIHQudGl0bGUmJihlKz1cIjx0aXRsZT5cIit0LnRpdGxlK1wiPC90aXRsZT5cIiksW1wibWV0YVwiLFwibGlua1wiLFwic2NyaXB0XCJdLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIHM9dFtpXTtmb3IodmFyIG4gaW4gcyl7dmFyIG89T2JqZWN0LmtleXMoc1tuXSkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVyblwiaW5uZXJIVE1MXCIhPT10fSkubWFwKGdldEF0dHIoc1tuXSkpO2UrPVwiPFwiK2krXCIgXCIrby5qb2luKFwiIFwiKSsnIGRhdGEtcW1ldGE9XCInK24rJ1wiPicsXCJzY3JpcHRcIj09PWkmJihlKz0oc1tuXS5pbm5lckhUTUx8fFwiXCIpK1wiPFxcL3NjcmlwdD5cIil9fSksZX1mdW5jdGlvbiBnZXRTZXJ2ZXJNZXRhKHQsZSl7dmFyIGk9e3RpdGxlOlwiXCIsdGl0bGVUZW1wbGF0ZTpudWxsLG1ldGE6e30sbGluazp7fSxodG1sQXR0cjp7fSxib2R5QXR0cjp7fSxub3NjcmlwdDp7fX07cGFyc2VNZXRhKHQsaSksbm9ybWFsaXplKGkpO3ZhciBzPXtcIiUlUV9IVE1MX0FUVFJTJSVcIjpPYmplY3Qua2V5cyhpLmh0bWxBdHRyKS5maWx0ZXIoaHRtbEZpbHRlcikubWFwKGdldEF0dHIoaS5odG1sQXR0cikpLmpvaW4oXCIgXCIpLFwiJSVRX0hFQURfVEFHUyUlXCI6Z2V0SGVhZChpKSxcIiUlUV9CT0RZX0FUVFJTJSVcIjpPYmplY3Qua2V5cyhpLmJvZHlBdHRyKS5maWx0ZXIoYm9keUZpbHRlcikubWFwKGdldEF0dHIoaS5ib2R5QXR0cikpLmpvaW4oXCIgXCIpLFwiJSVRX0JPRFlfVEFHUyUlXCI6T2JqZWN0LmtleXMoaS5ub3NjcmlwdCkubWFwKGZ1bmN0aW9uKHQpe3JldHVybic8bm9zY3JpcHQgZGF0YS1xbWV0YT1cIicrdCsnXCI+JytpLm5vc2NyaXB0W3RdK1wiPC9ub3NjcmlwdD5cIn0pLmpvaW4oXCJcIikrXCI8c2NyaXB0IGRhdGEtcW1ldGEtaW5pdD53aW5kb3cuX19RX01FVEFfXz1cIisoZGVsZXRlIGkubm9zY3JpcHQmJkpTT04uc3RyaW5naWZ5KGkpKStcIjxcXC9zY3JpcHQ+XCJ9O3JldHVybiBPYmplY3Qua2V5cyhzKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2U9ZS5yZXBsYWNlKHQsc1t0XSl9KSxlfWZ1bmN0aW9uIGJlZm9yZUNyZWF0ZSgpe3RoaXMuJG9wdGlvbnMubWV0YSYmKFwiZnVuY3Rpb25cIj09dHlwZW9mIHRoaXMuJG9wdGlvbnMubWV0YT8odGhpcy4kb3B0aW9ucy5jb21wdXRlZHx8KHRoaXMuJG9wdGlvbnMuY29tcHV0ZWQ9e30pLHRoaXMuJG9wdGlvbnMuY29tcHV0ZWQuX19xTWV0YT10aGlzLiRvcHRpb25zLm1ldGEpOnRoaXMuX19xTWV0YT10aGlzLiRvcHRpb25zLm1ldGEpfWZ1bmN0aW9uIHRyaWdnZXJNZXRhKCl7dGhpcy4kb3B0aW9ucy5tZXRhJiZ0aGlzLl9fcU1ldGFVcGRhdGUoKX12YXIgbWV0YT17aW5zdGFsbDpmdW5jdGlvbih0KXt2YXIgZT10LnF1ZXVlcyxpPXQuVnVlO2lzU1NSPyhpLnByb3RvdHlwZS4kZ2V0TWV0YUhUTUw9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBnZXRTZXJ2ZXJNZXRhKHQsZSl9fSxpLm1peGluKHtiZWZvcmVDcmVhdGU6YmVmb3JlQ3JlYXRlfSksZS5zZXJ2ZXIucHVzaChmdW5jdGlvbih0LGUpe2Uuc3NyLlFfSFRNTF9BVFRSUys9XCIgJSVRX0hUTUxfQVRUUlMlJVwiLE9iamVjdC5hc3NpZ24oZS5zc3Ise1FfSEVBRF9UQUdTOlwiJSVRX0hFQURfVEFHUyUlXCIsUV9CT0RZX0FUVFJTOlwiJSVRX0JPRFlfQVRUUlMlJVwiLFFfQk9EWV9UQUdTOlwiJSVRX0JPRFlfVEFHUyUlXCJ9KX0pKTooc3NyVGFrZW92ZXI9ZnJvbVNTUixpLm1peGluKHtiZWZvcmVDcmVhdGU6YmVmb3JlQ3JlYXRlLGNyZWF0ZWQ6ZnVuY3Rpb24oKXt0aGlzLiRvcHRpb25zLm1ldGEmJih0aGlzLl9fcU1ldGFVbndhdGNoPXRoaXMuJHdhdGNoKFwiX19xTWV0YVwiLHRoaXMuX19xTWV0YVVwZGF0ZSkpfSxhY3RpdmF0ZWQ6dHJpZ2dlck1ldGEsZGVhY3RpdmF0ZWQ6dHJpZ2dlck1ldGEsYmVmb3JlTW91bnQ6dHJpZ2dlck1ldGEsZGVzdHJveWVkOmZ1bmN0aW9uKCl7dGhpcy4kb3B0aW9ucy5tZXRhJiYodGhpcy5fX3FNZXRhVW53YXRjaCgpLHRoaXMuX19xTWV0YVVwZGF0ZSgpKX0sbWV0aG9kczp7X19xTWV0YVVwZGF0ZTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh1cGRhdGVJZCksdXBkYXRlSWQ9c2V0VGltZW91dCh1cGRhdGVDbGllbnQuYmluZCh0aGlzKSw1MCl9fX0pKX19LGRlZmF1bHRzJDE9e30scG9zaXRpb25MaXN0PVtcInRvcC1sZWZ0XCIsXCJ0b3AtcmlnaHRcIixcImJvdHRvbS1sZWZ0XCIsXCJib3R0b20tcmlnaHRcIixcInRvcFwiLFwiYm90dG9tXCIsXCJsZWZ0XCIsXCJyaWdodFwiLFwiY2VudGVyXCJdO2Z1bmN0aW9uIGluaXQodCl7dmFyIGU9dC5WdWUsaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaSksdGhpcy5fX3ZtPW5ldyBlKHtuYW1lOlwiUU5vdGlmaWNhdGlvbnNcIixkYXRhOntub3RpZnM6e2NlbnRlcjpbXSxsZWZ0OltdLHJpZ2h0OltdLHRvcDpbXSxcInRvcC1sZWZ0XCI6W10sXCJ0b3AtcmlnaHRcIjpbXSxib3R0b206W10sXCJib3R0b20tbGVmdFwiOltdLFwiYm90dG9tLXJpZ2h0XCI6W119fSxtZXRob2RzOnthZGQ6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZighdClyZXR1cm4gY29uc29sZS5lcnJvcihcIk5vdGlmeTogcGFyYW1ldGVyIHJlcXVpcmVkXCIpLCExO3ZhciBpPU9iamVjdC5hc3NpZ24oe30sZGVmYXVsdHMkMSxcInN0cmluZ1wiPT10eXBlb2YgdD97bWVzc2FnZTp0fTpjbG9uZSh0KSk7aWYoaS5wb3NpdGlvbil7aWYoIXBvc2l0aW9uTGlzdC5pbmNsdWRlcyhpLnBvc2l0aW9uKSlyZXR1cm4gY29uc29sZS5lcnJvcihcIk5vdGlmeTogd3JvbmcgcG9zaXRpb246IFwiK2kucG9zaXRpb24pLCExfWVsc2UgaS5wb3NpdGlvbj1cImJvdHRvbVwiO2lmKGkuX191aWQ9dWlkKCksdm9pZCAwPT09aS50aW1lb3V0KWkudGltZW91dD01ZTM7ZWxzZXt2YXIgcz1wYXJzZUludChpLnRpbWVvdXQsMTApO2lmKGlzTmFOKHMpfHxzPDApcmV0dXJuIGNvbnNvbGUuZXJyb3IoXCJOb3RpZnk6IHdyb25nIHRpbWVvdXQ6IFwiK2kudGltZW91dCksITE7aS50aW1lb3V0PXN9dmFyIG49ZnVuY3Rpb24oKXtlLnJlbW92ZShpKX07aWYodC5hY3Rpb25zJiYoaS5hY3Rpb25zPXQuYWN0aW9ucy5tYXAoZnVuY3Rpb24odCl7dmFyIGU9dC5oYW5kbGVyLGk9Y2xvbmUodCk7cmV0dXJuIGkuaGFuZGxlcj1cImZ1bmN0aW9uXCI9PXR5cGVvZiBlP2Z1bmN0aW9uKCl7ZSgpLCF0Lm5vRGlzbWlzcyYmbigpfTpmdW5jdGlvbigpe3JldHVybiBuKCl9LGl9KSksXCJmdW5jdGlvblwiPT10eXBlb2YgdC5vbkRpc21pc3MmJihpLm9uRGlzbWlzcz10Lm9uRGlzbWlzcyksaS5jbG9zZUJ0bil7dmFyIG89W3tjbG9zZUJ0bjohMCxsYWJlbDppLmNsb3NlQnRuLGhhbmRsZXI6bn1dO2kuYWN0aW9ucz1pLmFjdGlvbnM/aS5hY3Rpb25zLmNvbmNhdChvKTpvfWkudGltZW91dD4wJiYoaS5fX3RpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe24oKX0saS50aW1lb3V0KzFlMykpO3ZhciByPWkucG9zaXRpb24uaW5kZXhPZihcInRvcFwiKT4tMT9cInVuc2hpZnRcIjpcInB1c2hcIjtyZXR1cm4gdGhpcy5ub3RpZnNbaS5wb3NpdGlvbl1bcl0oaSksbn0scmVtb3ZlOmZ1bmN0aW9uKHQpe3QuX190aW1lb3V0JiZjbGVhclRpbWVvdXQodC5fX3RpbWVvdXQpO3ZhciBlPXRoaXMubm90aWZzW3QucG9zaXRpb25dLmluZGV4T2YodCk7aWYoLTEhPT1lKXt2YXIgaT10aGlzLiRyZWZzW1wibm90aWZfXCIrdC5fX3VpZF07aWYoaSYmaS4kZWwpe3ZhciBzPWkuJGVsO3Muc3R5bGUubGVmdD1zLm9mZnNldExlZnQrXCJweFwiLHMuc3R5bGUud2lkdGg9Z2V0Q29tcHV0ZWRTdHlsZShzKS53aWR0aH10aGlzLm5vdGlmc1t0LnBvc2l0aW9uXS5zcGxpY2UoZSwxKSxcImZ1bmN0aW9uXCI9PXR5cGVvZiB0Lm9uRGlzbWlzcyYmdC5vbkRpc21pc3MoKX19fSxyZW5kZXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4gdChcImRpdlwiLHtzdGF0aWNDbGFzczpcInEtbm90aWZpY2F0aW9uc1wifSxwb3NpdGlvbkxpc3QubWFwKGZ1bmN0aW9uKGkpe3ZhciBzPVtcImxlZnRcIixcImNlbnRlclwiLFwicmlnaHRcIl0uaW5jbHVkZXMoaSk/XCJjZW50ZXJcIjppLmluZGV4T2YoXCJ0b3BcIik+LTE/XCJ0b3BcIjpcImJvdHRvbVwiLG49aS5pbmRleE9mKFwibGVmdFwiKT4tMT9cInN0YXJ0XCI6aS5pbmRleE9mKFwicmlnaHRcIik+LTE/XCJlbmRcIjpcImNlbnRlclwiLG89W1wibGVmdFwiLFwicmlnaHRcIl0uaW5jbHVkZXMoaSk/XCJpdGVtcy1cIisoXCJsZWZ0XCI9PT1pP1wic3RhcnRcIjpcImVuZFwiKStcIiBqdXN0aWZ5LWNlbnRlclwiOlwiY2VudGVyXCI9PT1pP1wiZmxleC1jZW50ZXJcIjpcIml0ZW1zLVwiK247cmV0dXJuIHQoXCJ0cmFuc2l0aW9uLWdyb3VwXCIse2tleTppLHN0YXRpY0NsYXNzOlwicS1ub3RpZmljYXRpb24tbGlzdCBxLW5vdGlmaWNhdGlvbi1saXN0LVwiK3MrXCIgZml4ZWQgY29sdW1uIFwiK28sdGFnOlwiZGl2XCIscHJvcHM6e25hbWU6XCJxLW5vdGlmaWNhdGlvbi1cIitpLG1vZGU6XCJvdXQtaW5cIn19LGUubm90aWZzW2ldLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gdChRQWxlcnQse3JlZjpcIm5vdGlmX1wiK2UuX191aWQsa2V5OmUuX191aWQsc3RhdGljQ2xhc3M6XCJxLW5vdGlmaWNhdGlvblwiLHByb3BzOmV9LFtlLm1lc3NhZ2VdKX0pKX0pKX19KSx0aGlzLl9fdm0uJG1vdW50KGkpfXZhciBub3RpZnk9e2NyZWF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gaXNTU1I/ZnVuY3Rpb24oKXt9OnRoaXMuX192bS5hZGQodCl9LHNldERlZmF1bHRzOmZ1bmN0aW9uKHQpe09iamVjdC5hc3NpZ24oZGVmYXVsdHMkMSx0KX0saW5zdGFsbDpmdW5jdGlvbih0KXtpZihpc1NTUilyZXR1cm4gdC4kcS5ub3RpZnk9ZnVuY3Rpb24oKXt9LHZvaWQodC4kcS5ub3RpZnkuc2V0RGVmYXVsdHM9ZnVuY3Rpb24oKXt9KTtpbml0LmNhbGwodGhpcyx0KSx0LmNmZy5ub3RpZnkmJnRoaXMuc2V0RGVmYXVsdHModC5jZmcubm90aWZ5KSx0LiRxLm5vdGlmeT10aGlzLmNyZWF0ZS5iaW5kKHRoaXMpLHQuJHEubm90aWZ5LnNldERlZmF1bHRzPXRoaXMuc2V0RGVmYXVsdHN9fSxTSVpFX0xJU1Q9W1wic21cIixcIm1kXCIsXCJsZ1wiLFwieGxcIl0sc2NyZWVuPXt3aWR0aDowLHNpemVzOntzbTo1NzYsbWQ6NzY4LGxnOjk5Mix4bDoxMjAwfSxsdDp7c206ITAsbWQ6ITAsbGc6ITAseGw6ITB9LGd0Ont9LHhzOiEwLHNldFNpemVzOmZ1bmN0aW9uKCl7fSxzZXREZWJvdW5jZTpmdW5jdGlvbigpe30saW5zdGFsbDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLGk9dC4kcSxzPXQucXVldWVzLG49dC5WdWU7aWYoaXNTU1IpaS5zY3JlZW49dGhpcztlbHNle3ZhciBvLHIsYT1mdW5jdGlvbih0KXt2YXIgaT13aW5kb3cuaW5uZXJXaWR0aCxzPWUuc2l6ZXM7dCYmaT09PWUud2lkdGh8fChlLndpZHRoPWksZS5ndC54cz1pPj1zLnNtLGUuZ3Quc209aT49cy5tZCxlLmd0Lm1kPWk+PXMubGcsZS5ndC5sZz1pPj1zLnhsLGUubHQuc209aTxzLnNtLGUubHQubWQ9aTxzLm1kLGUubHQubGc9aTxzLmxnLGUubHQueGw9aTxzLnhsLGUueHM9ZS5sdC5zbSxlLnNtPWUuZ3QueHMmJmUubHQubWQsZS5tZD1lLmd0LnNtJiZlLmx0LmxnLGUubGc9ZS5ndC5tZCYmZS5sdC54bCxlLnhsPWk+cy54bCl9LGw9e307dGhpcy5zZXRTaXplcz1mdW5jdGlvbih0KXtTSVpFX0xJU1QuZm9yRWFjaChmdW5jdGlvbihlKXt0W2VdJiYobFtlXT10W2VdKX0pfSx0aGlzLnNldERlYm91bmNlPWZ1bmN0aW9uKHQpe3I9dH07dmFyIGM9ZnVuY3Rpb24oKXt2YXIgdD1nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpO3QuZ2V0UHJvcGVydHlWYWx1ZShcIi0tcS1zaXplLXNtXCIpJiZTSVpFX0xJU1QuZm9yRWFjaChmdW5jdGlvbihpKXtlLnNpemVzW2ldPXBhcnNlSW50KHQuZ2V0UHJvcGVydHlWYWx1ZShcIi0tcS1zaXplLVwiK2kpLDEwKX0pLGUuc2V0U2l6ZXM9ZnVuY3Rpb24odCl7U0laRV9MSVNULmZvckVhY2goZnVuY3Rpb24oaSl7dFtpXSYmKGUuc2l6ZXNbaV09dFtpXSl9KSxhKCl9LGUuc2V0RGVib3VuY2U9ZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24oKXthKCEwKX07byYmd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIixvLGxpc3Rlbk9wdHMucGFzc2l2ZSksbz10PjA/ZGVib3VuY2UoZSx0KTplLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicmVzaXplXCIsbyxsaXN0ZW5PcHRzLnBhc3NpdmUpfSxlLnNldERlYm91bmNlKHJ8fDEwMCksT2JqZWN0LmtleXMobCkubGVuZ3RoPjA/KGUuc2V0U2l6ZXMobCksbD1udWxsKTphKCl9O2Zyb21TU1I/cy50YWtlb3Zlci5wdXNoKGMpOmMoKSxuLnV0aWwuZGVmaW5lUmVhY3RpdmUoaSxcInNjcmVlblwiLHRoaXMpfX19O2Z1bmN0aW9uIGVuY29kZSQxKHQpe3JldHVyblwiW29iamVjdCBEYXRlXVwiPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpP1wiX19xX2RhdGV8XCIrdC50b1VUQ1N0cmluZygpOlwiW29iamVjdCBSZWdFeHBdXCI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk/XCJfX3FfZXhwcnxcIit0LnNvdXJjZTpcIm51bWJlclwiPT10eXBlb2YgdD9cIl9fcV9udW1ifFwiK3Q6XCJib29sZWFuXCI9PXR5cGVvZiB0P1wiX19xX2Jvb2x8XCIrKHQ/XCIxXCI6XCIwXCIpOlwic3RyaW5nXCI9PXR5cGVvZiB0P1wiX19xX3N0cm58XCIrdDpcImZ1bmN0aW9uXCI9PXR5cGVvZiB0P1wiX19xX3N0cm58XCIrdC50b1N0cmluZygpOnQ9PT1PYmplY3QodCk/XCJfX3Ffb2JqdHxcIitKU09OLnN0cmluZ2lmeSh0KTp0fWZ1bmN0aW9uIGRlY29kZSQxKHQpe3ZhciBlLGk7aWYodC5sZW5ndGg8OSlyZXR1cm4gdDtzd2l0Y2goZT10LnN1YnN0cigwLDgpLGk9dC5zdWJzdHJpbmcoOSksZSl7Y2FzZVwiX19xX2RhdGVcIjpyZXR1cm4gbmV3IERhdGUoaSk7Y2FzZVwiX19xX2V4cHJcIjpyZXR1cm4gbmV3IFJlZ0V4cChpKTtjYXNlXCJfX3FfbnVtYlwiOnJldHVybiBOdW1iZXIoaSk7Y2FzZVwiX19xX2Jvb2xcIjpyZXR1cm4gQm9vbGVhbihcIjFcIj09PWkpO2Nhc2VcIl9fcV9zdHJuXCI6cmV0dXJuXCJcIitpO2Nhc2VcIl9fcV9vYmp0XCI6cmV0dXJuIEpTT04ucGFyc2UoaSk7ZGVmYXVsdDpyZXR1cm4gdH19ZnVuY3Rpb24gZ2V0RW1wdHlTdG9yYWdlKCl7dmFyIHQ9ZnVuY3Rpb24oKXt9O3JldHVybntoYXM6dCxnZXQ6e2xlbmd0aDp0LGl0ZW06dCxpbmRleDp0LGFsbDp0fSxzZXQ6dCxyZW1vdmU6dCxjbGVhcjp0LGlzRW1wdHk6dH19ZnVuY3Rpb24gZ2V0U3RvcmFnZSh0KXt2YXIgZT13aW5kb3dbdCtcIlN0b3JhZ2VcIl0saT1mdW5jdGlvbih0KXt2YXIgaT1lLmdldEl0ZW0odCk7cmV0dXJuIGk/ZGVjb2RlJDEoaSk6bnVsbH07cmV0dXJue2hhczpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9PWUuZ2V0SXRlbSh0KX0sZ2V0OntsZW5ndGg6ZnVuY3Rpb24oKXtyZXR1cm4gZS5sZW5ndGh9LGl0ZW06aSxpbmRleDpmdW5jdGlvbih0KXtpZih0PGUubGVuZ3RoKXJldHVybiBpKGUua2V5KHQpKX0sYWxsOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LHM9e30sbj1lLmxlbmd0aCxvPTA7bzxuO28rKylzW3Q9ZS5rZXkobyldPWkodCk7cmV0dXJuIHN9fSxzZXQ6ZnVuY3Rpb24odCxpKXtlLnNldEl0ZW0odCxlbmNvZGUkMShpKSl9LHJlbW92ZTpmdW5jdGlvbih0KXtlLnJlbW92ZUl0ZW0odCl9LGNsZWFyOmZ1bmN0aW9uKCl7ZS5jbGVhcigpfSxpc0VtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT1lLmxlbmd0aH19fXZhciBsb2NhbFN0b3JhZ2U9e2luc3RhbGw6ZnVuY3Rpb24odCl7dmFyIGU9dC4kcSxpPWlzU1NSfHwhaGFzV2ViU3RvcmFnZT9nZXRFbXB0eVN0b3JhZ2UoKTpnZXRTdG9yYWdlKFwibG9jYWxcIik7ZS5sb2NhbFN0b3JhZ2U9aSxPYmplY3QuYXNzaWduKHRoaXMsaSl9fSxzZXNzaW9uU3RvcmFnZT17aW5zdGFsbDpmdW5jdGlvbih0KXt2YXIgZT10LiRxLGk9aXNTU1J8fCFoYXNXZWJTdG9yYWdlP2dldEVtcHR5U3RvcmFnZSgpOmdldFN0b3JhZ2UoXCJzZXNzaW9uXCIpO2Uuc2Vzc2lvblN0b3JhZ2U9aSxPYmplY3QuYXNzaWduKHRoaXMsaSl9fSxwbHVnaW5zPU9iamVjdC5mcmVlemUoe0FjdGlvblNoZWV0OmFjdGlvblNoZWV0LEFkZHJlc3NiYXJDb2xvcjphZGRyZXNzYmFyQ29sb3IsQXBwRnVsbHNjcmVlbjphcHBGdWxsc2NyZWVuLEFwcFZpc2liaWxpdHk6YXBwVmlzaWJpbGl0eSxDb29raWVzOmNvb2tpZXMsRGlhbG9nOmRpYWxvZyxMb2FkaW5nQmFyOmxvYWRpbmdCYXIsTG9hZGluZzpsb2FkaW5nLE1ldGE6bWV0YSxOb3RpZnk6bm90aWZ5LFBsYXRmb3JtOlBsYXRmb3JtLFNjcmVlbjpzY3JlZW4sTG9jYWxTdG9yYWdlOmxvY2FsU3RvcmFnZSxTZXNzaW9uU3RvcmFnZTpzZXNzaW9uU3RvcmFnZX0pO2Z1bmN0aW9uIG9wZW5VcmwodCxlKXtpZihQbGF0Zm9ybS5pcy5jb3Jkb3ZhJiZuYXZpZ2F0b3ImJm5hdmlnYXRvci5hcHApcmV0dXJuIG5hdmlnYXRvci5hcHAubG9hZFVybCh0LHtvcGVuRXh0ZXJuYWw6ITB9KTt2YXIgaT13aW5kb3cub3Blbih0LFwiX2JsYW5rXCIpO2lmKGkpcmV0dXJuIGkuZm9jdXMoKSxpO2UmJmUoKX1mdW5jdGlvbiBub29wKCl7fXZhciBpbmRleF9lc209T2JqZWN0LmFzc2lnbih7fSxWdWVQbHVnaW4se2luc3RhbGw6ZnVuY3Rpb24odCxlKXtWdWVQbHVnaW4uaW5zdGFsbCh0LE9iamVjdC5hc3NpZ24oe30se2NvbXBvbmVudHM6Y29tcG9uZW50cyQxLGRpcmVjdGl2ZXM6ZGlyZWN0aXZlcyxwbHVnaW5zOnBsdWdpbnN9LGUpKX19KTtleHBvcnQgZGVmYXVsdCBpbmRleF9lc207ZXhwb3J0e1FBY3Rpb25TaGVldCxRQWpheEJhcixRQWxlcnQsUUF1dG9jb21wbGV0ZSxRQnJlYWRjcnVtYnMsUUJyZWFkY3J1bWJzRWwsUUJ0bixRQnRuR3JvdXAsUUJ0bkRyb3Bkb3duLFFCdG5Ub2dnbGUsUUNhcmQsUUNhcmRUaXRsZSxRQ2FyZE1haW4sUUNhcmRBY3Rpb25zLFFDYXJkTWVkaWEsUUNhcmRTZXBhcmF0b3IsUUNhcm91c2VsLFFDYXJvdXNlbFNsaWRlLFFDYXJvdXNlbENvbnRyb2wsUUNoYXRNZXNzYWdlLFFDaGVja2JveCxRQ2hpcCxRQ2hpcHNJbnB1dCxRQ29sbGFwc2libGUsUUNvbG9yLFFDb2xvclBpY2tlcixRQ29udGV4dE1lbnUsUURhdGV0aW1lLFFEYXRldGltZVBpY2tlcixRRGlhbG9nLFFFZGl0b3IsUUZhYixRRmFiQWN0aW9uLFFGaWVsZCxRSWNvbixRSW5maW5pdGVTY3JvbGwsUUlubmVyTG9hZGluZyxRSW5wdXQsUUlucHV0RnJhbWUsUUp1bWJvdHJvbixRS25vYixRTGF5b3V0LFFMYXlvdXREcmF3ZXIsUUxheW91dEZvb3RlcixRTGF5b3V0SGVhZGVyLFFQYWdlLFFQYWdlQ29udGFpbmVyLFFQYWdlU3RpY2t5LFFJdGVtLFFJdGVtU2VwYXJhdG9yLFFJdGVtTWFpbixRSXRlbVNpZGUsUUl0ZW1UaWxlLFFJdGVtV3JhcHBlcixRTGlzdCxRTGlzdEhlYWRlcixRTW9kYWwsUU1vZGFsTGF5b3V0LFFOb1NzcixRUmVzaXplT2JzZXJ2YWJsZSxRU2Nyb2xsT2JzZXJ2YWJsZSxRV2luZG93UmVzaXplT2JzZXJ2YWJsZSxRT3B0aW9uR3JvdXAsUVBhZ2luYXRpb24sUVBhcmFsbGF4LFFQb3BvdmVyLFFQb3B1cEVkaXQsUVByb2dyZXNzLFFQdWxsVG9SZWZyZXNoLFFSYWRpbyxRUmFuZ2UsUVJhdGluZyxRU2Nyb2xsQXJlYSxRU2VhcmNoLFFTZWxlY3QsUVNsaWRlVHJhbnNpdGlvbixRU2xpZGVyLFFTcGlubmVyLFFTcGlubmVyQXVkaW8sUVNwaW5uZXJCYWxsLFFTcGlubmVyQmFycyxRU3Bpbm5lckNpcmNsZXMsUVNwaW5uZXJDb21tZW50LFFTcGlubmVyQ3ViZSxRU3Bpbm5lckRvdHMsUVNwaW5uZXJGYWNlYm9vayxRU3Bpbm5lckdlYXJzLFFTcGlubmVyR3JpZCxRU3Bpbm5lckhlYXJ0cyxRU3Bpbm5lckhvdXJnbGFzcyxRU3Bpbm5lckluZmluaXR5LFFTcGlubmVyX2lvcyBhcyBRU3Bpbm5lcklvcyxEZWZhdWx0U3Bpbm5lciBhcyBRU3Bpbm5lck1hdCxRU3Bpbm5lck92YWwsUVNwaW5uZXJQaWUsUVNwaW5uZXJQdWZmLFFTcGlubmVyUmFkaW8sUVNwaW5uZXJSaW5ncyxRU3Bpbm5lclRhaWwsUVN0ZXAsUVN0ZXBwZXIsUVN0ZXBwZXJOYXZpZ2F0aW9uLFFSb3V0ZVRhYixRVGFiLFFUYWJQYW5lLFFUYWJzLFFUYWJsZSxRVGgsUVRyLFFUZCxRVGFibGVDb2x1bW5zLFFUaW1lbGluZSxRVGltZWxpbmVFbnRyeSxRVG9nZ2xlLFFUb29sYmFyLFFUb29sYmFyVGl0bGUsUVRvb2x0aXAsUVRyZWUsUVVwbG9hZGVyLFFWaWRlbyxiYWNrVG9Ub3AgYXMgQmFja1RvVG9wLGNsb3NlT3ZlcmxheSBhcyBDbG9zZU92ZXJsYXksZ29CYWNrIGFzIEdvQmFjayxSaXBwbGUsc2Nyb2xsRmlyZSBhcyBTY3JvbGxGaXJlLHNjcm9sbCQxIGFzIFNjcm9sbCx0b3VjaEhvbGQgYXMgVG91Y2hIb2xkLFRvdWNoUGFuLFRvdWNoU3dpcGUsYWN0aW9uU2hlZXQgYXMgQWN0aW9uU2hlZXQsYWRkcmVzc2JhckNvbG9yIGFzIEFkZHJlc3NiYXJDb2xvcixhcHBGdWxsc2NyZWVuIGFzIEFwcEZ1bGxzY3JlZW4sYXBwVmlzaWJpbGl0eSBhcyBBcHBWaXNpYmlsaXR5LGNvb2tpZXMgYXMgQ29va2llcyxkaWFsb2cgYXMgRGlhbG9nLGxvYWRpbmdCYXIgYXMgTG9hZGluZ0Jhcixsb2FkaW5nIGFzIExvYWRpbmcsbWV0YSBhcyBNZXRhLG5vdGlmeSBhcyBOb3RpZnksUGxhdGZvcm0sc2NyZWVuIGFzIFNjcmVlbixsb2NhbFN0b3JhZ2UgYXMgTG9jYWxTdG9yYWdlLHNlc3Npb25TdG9yYWdlIGFzIFNlc3Npb25TdG9yYWdlLGFuaW1hdGUsY2xvbmUsY29sb3JzLGRhdGUsZGVib3VuY2UsZG9tLGVhc2luZyxldmVudCxleHRlbmQsZmlsdGVyLGZvcm1hdCxmcmFtZURlYm91bmNlLG5vb3Asb3BlblVybCBhcyBvcGVuVVJMLHNjcm9sbCx0aHJvdHRsZSx1aWR9OyIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vYXBwLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD00ZmJjNzM1YiZzY29wZWQ9dHJ1ZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9hcHAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9hcHAudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5pbXBvcnQgc3R5bGUwIGZyb20gXCIuL2FwcC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00ZmJjNzM1YiZzY29wZWQ9dHJ1ZSZsYW5nPWNzcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIFwiNGZiYzczNWJcIixcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCIvVXNlcnMvc2ViL3dlYi9lbW9qaS1tYXJ0L2Vtb2ppLW1hcnQtdnVlL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzRmYmM3MzViJykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzRmYmM3MzViJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJzRmYmM3MzViJywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9hcHAudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTRmYmM3MzViJnNjb3BlZD10cnVlJlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJzRmYmM3MzViJywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJkb2NzL2FwcC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL0Vtb2ppLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01MzRhZDk0NiZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9FbW9qaS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL0Vtb2ppLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL1VzZXJzL3NlYi93ZWIvZW1vamktbWFydC9lbW9qaS1tYXJ0LXZ1ZS9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanNcIilcbiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpXG4gIGlmIChhcGkuY29tcGF0aWJsZSkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCc1MzRhZDk0NicpKSB7XG4gICAgICBhcGkuY3JlYXRlUmVjb3JkKCc1MzRhZDk0NicsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVsb2FkKCc1MzRhZDk0NicsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcIi4vRW1vamkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTUzNGFkOTQ2JlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJzUzNGFkOTQ2Jywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvY29tcG9uZW50cy9FbW9qaS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL1BpY2tlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZDE2ZTkwODQmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vUGlja2VyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuZXhwb3J0ICogZnJvbSBcIi4vUGlja2VyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL1VzZXJzL3NlYi93ZWIvZW1vamktbWFydC9lbW9qaS1tYXJ0LXZ1ZS9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanNcIilcbiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpXG4gIGlmIChhcGkuY29tcGF0aWJsZSkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCdkMTZlOTA4NCcpKSB7XG4gICAgICBhcGkuY3JlYXRlUmVjb3JkKCdkMTZlOTA4NCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVsb2FkKCdkMTZlOTA4NCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcIi4vUGlja2VyLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kMTZlOTA4NCZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCdkMTZlOTA4NCcsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL2NvbXBvbmVudHMvUGlja2VyLnZ1ZVwiXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vYW5jaG9ycy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTExODgxMDQmXCJcbmltcG9ydCBzY3JpcHQgZnJvbSBcIi4vYW5jaG9ycy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2FuY2hvcnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbFxuICBcbilcblxuLyogaG90IHJlbG9hZCAqL1xuaWYgKG1vZHVsZS5ob3QpIHtcbiAgdmFyIGFwaSA9IHJlcXVpcmUoXCIvVXNlcnMvc2ViL3dlYi9lbW9qaS1tYXJ0L2Vtb2ppLW1hcnQtdnVlL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qc1wiKVxuICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSlcbiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoKVxuICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzUxMTg4MTA0JykpIHtcbiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzUxMTg4MTA0JywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZWxvYWQoJzUxMTg4MTA0JywgY29tcG9uZW50Lm9wdGlvbnMpXG4gICAgfVxuICAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiLi9hbmNob3JzLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD01MTE4ODEwNCZcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgYXBpLnJlcmVuZGVyKCc1MTE4ODEwNCcsIHtcbiAgICAgICAgcmVuZGVyOiByZW5kZXIsXG4gICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cbmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9IFwic3JjL2NvbXBvbmVudHMvYW5jaG9ycy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL2NhdGVnb3J5LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0zNzZjZGEwZSZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9jYXRlZ29yeS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL2NhdGVnb3J5LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL1VzZXJzL3NlYi93ZWIvZW1vamktbWFydC9lbW9qaS1tYXJ0LXZ1ZS9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanNcIilcbiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpXG4gIGlmIChhcGkuY29tcGF0aWJsZSkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCczNzZjZGEwZScpKSB7XG4gICAgICBhcGkuY3JlYXRlUmVjb3JkKCczNzZjZGEwZScsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVsb2FkKCczNzZjZGEwZScsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcIi4vY2F0ZWdvcnkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM3NmNkYTBlJlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJzM3NmNkYTBlJywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvY29tcG9uZW50cy9jYXRlZ29yeS52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL3ByZXZpZXcudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM1MDU2YzMwJlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3ByZXZpZXcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiXG5leHBvcnQgKiBmcm9tIFwiLi9wcmV2aWV3LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL1VzZXJzL3NlYi93ZWIvZW1vamktbWFydC9lbW9qaS1tYXJ0LXZ1ZS9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanNcIilcbiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpXG4gIGlmIChhcGkuY29tcGF0aWJsZSkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCczNTA1NmMzMCcpKSB7XG4gICAgICBhcGkuY3JlYXRlUmVjb3JkKCczNTA1NmMzMCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVsb2FkKCczNTA1NmMzMCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcIi4vcHJldmlldy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MzUwNTZjMzAmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignMzUwNTZjMzAnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy9jb21wb25lbnRzL3ByZXZpZXcudnVlXCJcbmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRzIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9zZWFyY2gudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTRhZDQxYmI4JlwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL3NlYXJjaC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3NlYXJjaC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcblxuXG4vKiBub3JtYWxpemUgY29tcG9uZW50ICovXG5pbXBvcnQgbm9ybWFsaXplciBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanNcIlxudmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoXG4gIHNjcmlwdCxcbiAgcmVuZGVyLFxuICBzdGF0aWNSZW5kZXJGbnMsXG4gIGZhbHNlLFxuICBudWxsLFxuICBudWxsLFxuICBudWxsXG4gIFxuKVxuXG4vKiBob3QgcmVsb2FkICovXG5pZiAobW9kdWxlLmhvdCkge1xuICB2YXIgYXBpID0gcmVxdWlyZShcIi9Vc2Vycy9zZWIvd2ViL2Vtb2ppLW1hcnQvZW1vamktbWFydC12dWUvbm9kZV9tb2R1bGVzL3Z1ZS1ob3QtcmVsb2FkLWFwaS9kaXN0L2luZGV4LmpzXCIpXG4gIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKVxuICBpZiAoYXBpLmNvbXBhdGlibGUpIHtcbiAgICBtb2R1bGUuaG90LmFjY2VwdCgpXG4gICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNGFkNDFiYjgnKSkge1xuICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnNGFkNDFiYjgnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbG9hZCgnNGFkNDFiYjgnLCBjb21wb25lbnQub3B0aW9ucylcbiAgICB9XG4gICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIuL3NlYXJjaC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NGFkNDFiYjgmXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFwaS5yZXJlbmRlcignNGFkNDFiYjgnLCB7XG4gICAgICAgIHJlbmRlcjogcmVuZGVyLFxuICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZuc1xuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5jb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSBcInNyYy9jb21wb25lbnRzL3NlYXJjaC52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IGZyb20gXCIuL3NraW5zLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xYzYxNDg5NCZcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9za2lucy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCJcbmV4cG9ydCAqIGZyb20gXCIuL3NraW5zLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIlxuXG5cbi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi9cbmltcG9ydCBub3JtYWxpemVyIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qc1wiXG52YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcihcbiAgc2NyaXB0LFxuICByZW5kZXIsXG4gIHN0YXRpY1JlbmRlckZucyxcbiAgZmFsc2UsXG4gIG51bGwsXG4gIG51bGwsXG4gIG51bGxcbiAgXG4pXG5cbi8qIGhvdCByZWxvYWQgKi9cbmlmIChtb2R1bGUuaG90KSB7XG4gIHZhciBhcGkgPSByZXF1aXJlKFwiL1VzZXJzL3NlYi93ZWIvZW1vamktbWFydC9lbW9qaS1tYXJ0LXZ1ZS9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanNcIilcbiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpXG4gIGlmIChhcGkuY29tcGF0aWJsZSkge1xuICAgIG1vZHVsZS5ob3QuYWNjZXB0KClcbiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCcxYzYxNDg5NCcpKSB7XG4gICAgICBhcGkuY3JlYXRlUmVjb3JkKCcxYzYxNDg5NCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVsb2FkKCcxYzYxNDg5NCcsIGNvbXBvbmVudC5vcHRpb25zKVxuICAgIH1cbiAgICBtb2R1bGUuaG90LmFjY2VwdChcIi4vc2tpbnMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTFjNjE0ODk0JlwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBhcGkucmVyZW5kZXIoJzFjNjE0ODk0Jywge1xuICAgICAgICByZW5kZXI6IHJlbmRlcixcbiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnNcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxufVxuY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gXCJzcmMvY29tcG9uZW50cy9za2lucy52dWVcIlxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vYXBwLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2FwcC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vRW1vamkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vRW1vamkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1BpY2tlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanMhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9QaWNrZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2FuY2hvcnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vYW5jaG9ycy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vY2F0ZWdvcnkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vY2F0ZWdvcnkudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiaW1wb3J0IG1vZCBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3ByZXZpZXcudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vcHJldmlldy52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vc2VhcmNoLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyZcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcyEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3NlYXJjaC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMmXCIiLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vc2tpbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiOyBleHBvcnQgZGVmYXVsdCBtb2Q7IGV4cG9ydCAqIGZyb20gXCItIS4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vc2tpbnMudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzJlwiIiwiZXhwb3J0ICogZnJvbSBcIi0hLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvdGVtcGxhdGVMb2FkZXIuanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2FwcC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NGZiYzczNWImc2NvcGVkPXRydWUmXCIiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy90ZW1wbGF0ZUxvYWRlci5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vRW1vamkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTUzNGFkOTQ2JlwiIiwiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvdGVtcGxhdGVMb2FkZXIuanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1BpY2tlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9ZDE2ZTkwODQmXCIiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy90ZW1wbGF0ZUxvYWRlci5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vYW5jaG9ycy52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NTExODgxMDQmXCIiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy90ZW1wbGF0ZUxvYWRlci5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vY2F0ZWdvcnkudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM3NmNkYTBlJlwiIiwiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvdGVtcGxhdGVMb2FkZXIuanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3ByZXZpZXcudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTM1MDU2YzMwJlwiIiwiZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvdGVtcGxhdGVMb2FkZXIuanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL3NlYXJjaC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NGFkNDFiYjgmXCIiLCJleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy90ZW1wbGF0ZUxvYWRlci5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vc2tpbnMudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTFjNjE0ODk0JlwiIiwiZXhwb3J0ICogZnJvbSBcIi0hLi4vbm9kZV9tb2R1bGVzL3Z1ZS1zdHlsZS1sb2FkZXIvaW5kZXguanMhLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL2FwcC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD00ZmJjNzM1YiZzY29wZWQ9dHJ1ZSZsYW5nPWNzcyZcIiIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwiZGl2XCIsXG4gICAgeyBzdGF0aWNDbGFzczogXCJhcHBcIiB9LFxuICAgIFtcbiAgICAgIF92bS5fbSgwKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJlbW9qaVwiLCB7XG4gICAgICAgICAgICBhdHRyczogeyBkYXRhOiBfdm0uaW5kZXgsIGVtb2ppOiBcIjpzYW50YTo6c2tpbi10b25lLTM6XCIsIHNpemU6IDMyIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICBfYyhcImVtb2ppXCIsIHtcbiAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgIGRhdGE6IF92bS5pbmRleCxcbiAgICAgICAgICAgICAgZW1vamk6IFwic2FudGFcIixcbiAgICAgICAgICAgICAgc2V0OiBcInR3aXR0ZXJcIixcbiAgICAgICAgICAgICAgc2l6ZTogMzIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoXCJlbW9qaVwiLCB7XG4gICAgICAgICAgICBhdHRyczogeyBkYXRhOiBfdm0uaW5kZXgsIGVtb2ppOiBfdm0uc2FudGFFbW9qaU9iamVjdCwgc2l6ZTogMzIgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgICAgMVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sIFtcbiAgICAgICAgX2MoXCJidXR0b25cIiwgeyBvbjogeyBjbGljazogX3ZtLnRvZ2dsZVZpc2libGUgfSB9LCBbXG4gICAgICAgICAgX3ZtLl92KFwiU2hvdyAvIGhpZGUgdGhlIHBpY2tlclwiKSxcbiAgICAgICAgXSksXG4gICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgIF9jKFwiYnV0dG9uXCIsIHtcbiAgICAgICAgICBkb21Qcm9wczogeyBpbm5lckhUTUw6IF92bS5fcyhfdm0uc21pbGUpIH0sXG4gICAgICAgICAgb246IHsgY2xpY2s6IF92bS50b2dnbGVWaXNpYmxlIH0sXG4gICAgICAgIH0pLFxuICAgICAgXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF92bS5fbChcbiAgICAgICAgICAgIFtcIm5hdGl2ZVwiLCBcImFwcGxlXCIsIFwiZ29vZ2xlXCIsIFwidHdpdHRlclwiLCBcImZhY2Vib29rXCJdLFxuICAgICAgICAgICAgZnVuY3Rpb24gKHNldCkge1xuICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiBzZXQsXG4gICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IGRpc2FibGVkOiBfdm0uYWN0aXZlU2V0ID09IHNldCB9LFxuICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfdm0uYWN0aXZlU2V0ID0gc2V0XG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBbX3ZtLl92KFwiXFxuICAgICAgICBcIiArIF92bS5fcyhzZXQpICsgXCJcXG4gICAgICBcIildXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgICksXG4gICAgICAgIF0sXG4gICAgICAgIDJcbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX3ZtLmlzVmlzaWJsZVxuICAgICAgICA/IF9jKFxuICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSxcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgX2MoXCJwaWNrZXJcIiwge1xuICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICBkYXRhOiBfdm0uaW5kZXgsXG4gICAgICAgICAgICAgICAgICBzZXQ6IF92bS5hY3RpdmVTZXQsXG4gICAgICAgICAgICAgICAgICBuYXRpdmU6IF92bS5uYXRpdmUsXG4gICAgICAgICAgICAgICAgICBlbW9qaTogX3ZtLmVtb2ppLFxuICAgICAgICAgICAgICAgICAgZW1vamlUb29sdGlwOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgdGl0bGU6IF92bS50aXRsZSxcbiAgICAgICAgICAgICAgICAgIGVtb2ppU2l6ZTogMzAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvbjogeyBzZWxlY3Q6IF92bS5zaG93RW1vamkgfSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgMVxuICAgICAgICAgIClcbiAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LFxuICAgICAgICBfdm0uX2woX3ZtLnNlbGVjdGVkRW1vamlzLCBmdW5jdGlvbiAoZW1vKSB7XG4gICAgICAgICAgcmV0dXJuIF9jKFwiZW1vamlcIiwge1xuICAgICAgICAgICAga2V5OiBlbW8sXG4gICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICBkYXRhOiBfdm0uaW5kZXgsXG4gICAgICAgICAgICAgIGVtb2ppOiBlbW8sXG4gICAgICAgICAgICAgIHNldDogX3ZtLmFjdGl2ZVNldCxcbiAgICAgICAgICAgICAgbmF0aXZlOiBfdm0ubmF0aXZlLFxuICAgICAgICAgICAgICBzaXplOiAzMixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgfSksXG4gICAgICAgIDFcbiAgICAgICksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LCBbXG4gICAgICAgIF92bS5fdihcIlxcbiAgICBcIiArIF92bS5fcyhfdm0uZW1vamlzT3V0cHV0KSArIFwiXFxuICBcIiksXG4gICAgICBdKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfdm0uX20oMSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9KSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImgyXCIsIFtfdm0uX3YoXCJRRGlhbG9nIEV4YW1wbGVcIildKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcbiAgICAgICAgXCJkaXZcIixcbiAgICAgICAgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJxLWJ0blwiLCB7XG4gICAgICAgICAgICBhdHRyczogeyBsYWJlbDogXCJPcGVuIFFEaWFsb2dcIiB9LFxuICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBfdm0uZW1vamlQaWNrZXJEaWFsb2cgPSB0cnVlXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICAxXG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwicS1kaWFsb2dcIiwge1xuICAgICAgICBzY29wZWRTbG90czogX3ZtLl91KFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFwiYm9keVwiLFxuICAgICAgICAgICAgZm46IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICBfYyhcInBpY2tlclwiLCB7XG4gICAgICAgICAgICAgICAgICBhdHRyczogeyBkYXRhOiBfdm0uaW5kZXgsIGVtb2ppU2l6ZTogMjQsIG5hdGl2ZTogdHJ1ZSB9LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJveHk6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSksXG4gICAgICAgIG1vZGVsOiB7XG4gICAgICAgICAgdmFsdWU6IF92bS5lbW9qaVBpY2tlckRpYWxvZyxcbiAgICAgICAgICBjYWxsYmFjazogZnVuY3Rpb24gKCQkdikge1xuICAgICAgICAgICAgX3ZtLmVtb2ppUGlja2VyRGlhbG9nID0gJCR2XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleHByZXNzaW9uOiBcImVtb2ppUGlja2VyRGlhbG9nXCIsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiaDJcIiwgW192bS5fdihcIkN1c3RvbSBEaWFsb2cgRXhhbXBsZVwiKV0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSwgW1xuICAgICAgICBfYyhcbiAgICAgICAgICBcImJ1dHRvblwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgX3ZtLmVtb2ppUGlja2VyQ3VzdG9tRGlhbG9nID0gdHJ1ZVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIFtfdm0uX3YoXCJcXG4gICAgICBPcGVuIEN1c3RvbSBEaWFsb2dcXG4gICAgXCIpXVxuICAgICAgICApLFxuICAgICAgXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX3ZtLmVtb2ppUGlja2VyQ3VzdG9tRGlhbG9nXG4gICAgICAgID8gX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJwb3B1cFwiIH0sIFtcbiAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgc3RhdGljQ2xhc3M6IFwicG9wdXAtYm94XCIsXG4gICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIF92bS5lbW9qaVBpY2tlckN1c3RvbURpYWxvZyA9IGZhbHNlXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiBcInBvcHVwLWNvbnRlbnRcIixcbiAgICAgICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInBvcHVwLWNsb3NlXCIgfSwgW1xuICAgICAgICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5lbW9qaVBpY2tlckN1c3RvbURpYWxvZyA9IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBbX3ZtLl92KFwiWFwiKV1cbiAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgICAgICAgX2MoXCJoMlwiLCBbX3ZtLl92KFwiRW1vamkgU2VsZWN0b3JcIildKSxcbiAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgICAgICAgX2MoXCJwaWNrZXJcIiwge1xuICAgICAgICAgICAgICAgICAgICAgIGF0dHJzOiB7IGRhdGE6IF92bS5pbmRleCwgZW1vamlTaXplOiAyNCwgbmF0aXZlOiB0cnVlIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICApLFxuICAgICAgICAgIF0pXG4gICAgICAgIDogX3ZtLl9lKCksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJyb3dcIiB9KSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImgyXCIsIFtfdm0uX3YoXCJDdXN0b20gU2VhcmNoIEFuZCBQcmV2aWV3IFRlbXBsYXRlcyBFeGFtcGxlXCIpXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFwiUGlja2VyXCIsIHtcbiAgICAgICAgICAgIGF0dHJzOiB7IGRhdGE6IF92bS5pbmRleCwgbmF0aXZlOiB0cnVlIH0sXG4gICAgICAgICAgICBzY29wZWRTbG90czogX3ZtLl91KFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogXCJzZWFyY2hUZW1wbGF0ZVwiLFxuICAgICAgICAgICAgICAgIGZuOiBmdW5jdGlvbiAoc2xvdFByb3BzKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICBfYyhcImlucHV0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogc2xvdFByb3BzLmkxOG4uc2VhcmNoLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0OiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzbG90UHJvcHMub25TZWFyY2goJGV2ZW50LnRhcmdldC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogXCJwcmV2aWV3VGVtcGxhdGVcIixcbiAgICAgICAgICAgICAgICBmbjogZnVuY3Rpb24gKHNsb3RQcm9wcykge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXdcIiB9LCBbXG4gICAgICAgICAgICAgICAgICAgICAgX2MoXG4gICAgICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vamlcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICBfYyhcIkVtb2ppXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogc2xvdFByb3BzLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbW9qaTogc2xvdFByb3BzLmVtb2ppXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gc2xvdFByb3BzLmVtb2ppXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJwb2ludF91cFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmF0aXZlOiBzbG90UHJvcHMuZW1vamlQcm9wcy5uYXRpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2luOiBzbG90UHJvcHMuZW1vamlQcm9wcy5za2luLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0OiBzbG90UHJvcHMuZW1vamlQcm9wcy5zZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1kYXRhXCIgfSwgW1xuICAgICAgICAgICAgICAgICAgICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctbmFtZVwiIH0sIFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXFxuICAgICAgICAgICAgICBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uX3MoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3RQcm9wcy5lbW9qaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJ+XCIgKyBzbG90UHJvcHMuZW1vamkubmFtZSArIFwiflwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIkNob29zZS4uLlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1zaG9ydG5hbWVzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fdihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXFxuICAgICAgICAgICAgICBcIiArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5fcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90UHJvcHMuZW1vamkgPyBzbG90UHJvcHMuZW1vamkuY29sb25zIDogXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgICAgMVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiaDJcIiwgW192bS5fdihcIkZpbHRlcmVkIHBpY2tlciBleGFtcGxlXCIpXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHtcbiAgICAgICAgICBkaXJlY3RpdmVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6IFwic2hvd1wiLFxuICAgICAgICAgICAgICByYXdOYW1lOiBcInYtc2hvd1wiLFxuICAgICAgICAgICAgICB2YWx1ZTogX3ZtLmZsYWdzVmlzaWJsZSxcbiAgICAgICAgICAgICAgZXhwcmVzc2lvbjogXCJmbGFnc1Zpc2libGVcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBzdGF0aWNDbGFzczogXCJyb3dcIixcbiAgICAgICAgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFwiUGlja2VyXCIsIHtcbiAgICAgICAgICAgIHJlZjogXCJmbGFnc1wiLFxuICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgbmF0aXZlOiB0cnVlLFxuICAgICAgICAgICAgICBlbW9qaTogXCJmbGFnLXRmXCIsXG4gICAgICAgICAgICAgIGVtb2ppU2l6ZTogMTgsXG4gICAgICAgICAgICAgIGRhdGE6IF92bS5pbmRleEZpbHRlcmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgICAgMVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sIFtcbiAgICAgICAgX2MoXCJidXR0b25cIiwgeyBvbjogeyBjbGljazogX3ZtLnRvZ2dsZUZsYWdzVmlzaWJsZSB9IH0sIFtcbiAgICAgICAgICBfdm0uX3YoXCJcXG4gICAgICBTaG93IC8gaGlkZSB0aGUgZmxhZ3MgcGlja2VyICh3aXRoIHYtc2hvdylcXG4gICAgXCIpLFxuICAgICAgICBdKSxcbiAgICAgIF0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXCJoMlwiLCBbX3ZtLl92KFwiSTE4biBwaWNrZXIgZXhhbXBsZVwiKV0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcIlBpY2tlclwiLCB7XG4gICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICBlbW9qaTogXCJkZXBhcnRtZW50X3N0b3JlXCIsXG4gICAgICAgICAgICAgIGRhdGE6IF92bS5pbmRleEkxOG4sXG4gICAgICAgICAgICAgIGkxOG46IF92bS5pMThuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgICAgMVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiaDJcIiwgW192bS5fdihcIkN1c3RvbSBvcmRlciBleGFtcGxlXCIpXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHsgc3RhdGljQ2xhc3M6IFwicm93XCIgfSxcbiAgICAgICAgW19jKFwiUGlja2VyXCIsIHsgYXR0cnM6IHsgZGF0YTogX3ZtLmluZGV4SW5jbHVkZSB9IH0pXSxcbiAgICAgICAgMVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0pLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFwiaDJcIiwgW192bS5fdihcIlNtYWxsIHBpY2tlciBleGFtcGxlXCIpXSksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX2MoXG4gICAgICAgIFwiZGl2XCIsXG4gICAgICAgIHsgc3RhdGljQ2xhc3M6IFwicm93IHJvdy1zbWFsbC1waWNrZXJcIiB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJQaWNrZXJcIiwge1xuICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgZGF0YTogX3ZtLmluZGV4LFxuICAgICAgICAgICAgICBuYXRpdmU6IF92bS5uYXRpdmUsXG4gICAgICAgICAgICAgIHNldDogX3ZtLmFjdGl2ZVNldCxcbiAgICAgICAgICAgICAgZW1vamlTaXplOiAxMixcbiAgICAgICAgICAgICAgcGVyTGluZTogNSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICAgIDFcbiAgICAgICksXG4gICAgXSxcbiAgICAxXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXG4gIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgX3ZtID0gdGhpc1xuICAgIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICAgIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICAgIHJldHVybiBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcInJvd1wiIH0sIFtcbiAgICAgIF9jKFwiaDFcIiwgW192bS5fdihcIkVtb2ppIE1hcnQgVnVlIPCfj6xcIildKSxcbiAgICBdKVxuICB9LFxuICBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIF92bSA9IHRoaXNcbiAgICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgICByZXR1cm4gX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJyb3ctc21hbGxcIiB9LCBbXG4gICAgICBfYyhcImlmcmFtZVwiLCB7XG4gICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgc3JjOiBcImh0dHBzOi8vZ2hidG5zLmNvbS9naXRodWItYnRuLmh0bWw/dXNlcj1zZXJlYnJvdiZyZXBvPWVtb2ppLW1hcnQtdnVlJnR5cGU9c3RhciZjb3VudD10cnVlXCIsXG4gICAgICAgICAgZnJhbWVCb3JkZXI6IFwiMFwiLFxuICAgICAgICAgIHNjcm9sbGluZzogXCIwXCIsXG4gICAgICAgICAgd2lkdGg6IFwiOTBweFwiLFxuICAgICAgICAgIGhlaWdodDogXCIyMHB4XCIsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICBdKVxuICB9LFxuXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfdm0udmlldy5jYW5SZW5kZXJcbiAgICA/IF9jKFxuICAgICAgICBfdm0udGFnLFxuICAgICAgICB7XG4gICAgICAgICAgdGFnOiBcImNvbXBvbmVudFwiLFxuICAgICAgICAgIHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtZW1vamlcIixcbiAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgdGl0bGU6IF92bS52aWV3LnRpdGxlLFxuICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IF92bS52aWV3LmFyaWFMYWJlbCxcbiAgICAgICAgICAgIFwiZGF0YS10aXRsZVwiOiBfdm0udGl0bGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgbW91c2VlbnRlcjogX3ZtLm9uTW91c2VFbnRlcixcbiAgICAgICAgICAgIG1vdXNlbGVhdmU6IF92bS5vbk1vdXNlTGVhdmUsXG4gICAgICAgICAgICBjbGljazogX3ZtLm9uQ2xpY2ssXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFwic3BhblwiLCB7IGNsYXNzOiBfdm0udmlldy5jc3NDbGFzcywgc3R5bGU6IF92bS52aWV3LmNzc1N0eWxlIH0sIFtcbiAgICAgICAgICAgIF92bS5fdihfdm0uX3MoX3ZtLnZpZXcuY29udGVudCkpLFxuICAgICAgICAgIF0pLFxuICAgICAgICBdXG4gICAgICApXG4gICAgOiBfdm0uX2UoKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwic2VjdGlvblwiLFxuICAgIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydCBlbW9qaS1tYXJ0LXN0YXRpY1wiLCBzdHlsZTogX3ZtLmN1c3RvbVN0eWxlcyB9LFxuICAgIFtcbiAgICAgIF92bS5zaG93Q2F0ZWdvcmllc1xuICAgICAgICA/IF9jKFxuICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1iYXIgZW1vamktbWFydC1iYXItYW5jaG9yc1wiIH0sXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgIF9jKFwiYW5jaG9yc1wiLCB7XG4gICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgIGRhdGE6IF92bS5kYXRhLFxuICAgICAgICAgICAgICAgICAgaTE4bjogX3ZtLm1lcmdlZEkxOG4sXG4gICAgICAgICAgICAgICAgICBjb2xvcjogX3ZtLmNvbG9yLFxuICAgICAgICAgICAgICAgICAgY2F0ZWdvcmllczogX3ZtLnZpZXcuYWxsQ2F0ZWdvcmllcyxcbiAgICAgICAgICAgICAgICAgIFwiYWN0aXZlLWNhdGVnb3J5XCI6IF92bS52aWV3LmFjdGl2ZUNhdGVnb3J5LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgb246IHsgY2xpY2s6IF92bS5vbkFuY2hvckNsaWNrIH0sXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIDFcbiAgICAgICAgICApXG4gICAgICAgIDogX3ZtLl9lKCksXG4gICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgX3ZtLl90KFxuICAgICAgICBcInNlYXJjaFRlbXBsYXRlXCIsXG4gICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgX3ZtLnNob3dTZWFyY2hcbiAgICAgICAgICAgICAgPyBfYyhcInNlYXJjaFwiLCB7XG4gICAgICAgICAgICAgICAgICByZWY6IFwic2VhcmNoXCIsXG4gICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBfdm0uZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgaTE4bjogX3ZtLm1lcmdlZEkxOG4sXG4gICAgICAgICAgICAgICAgICAgIFwiYXV0by1mb2N1c1wiOiBfdm0uYXV0b0ZvY3VzLFxuICAgICAgICAgICAgICAgICAgICBcIm9uLXNlYXJjaFwiOiBfdm0ub25TZWFyY2gsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoOiBfdm0ub25TZWFyY2gsXG4gICAgICAgICAgICAgICAgICAgIGFycm93TGVmdDogX3ZtLm9uQXJyb3dMZWZ0LFxuICAgICAgICAgICAgICAgICAgICBhcnJvd1JpZ2h0OiBfdm0ub25BcnJvd1JpZ2h0LFxuICAgICAgICAgICAgICAgICAgICBhcnJvd0Rvd246IF92bS5vbkFycm93RG93bixcbiAgICAgICAgICAgICAgICAgICAgYXJyb3dVcDogX3ZtLm9uQXJyb3dVcCxcbiAgICAgICAgICAgICAgICAgICAgZW50ZXI6IF92bS5vbkVudGVyLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICA6IF92bS5fZSgpLFxuICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGRhdGE6IF92bS5kYXRhLFxuICAgICAgICAgIGkxOG46IF92bS5pMThuLFxuICAgICAgICAgIGF1dG9Gb2N1czogX3ZtLmF1dG9Gb2N1cyxcbiAgICAgICAgICBvblNlYXJjaDogX3ZtLm9uU2VhcmNoLFxuICAgICAgICB9XG4gICAgICApLFxuICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgIF9jKFxuICAgICAgICBcImRpdlwiLFxuICAgICAgICB7XG4gICAgICAgICAgcmVmOiBcInNjcm9sbFwiLFxuICAgICAgICAgIHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtc2Nyb2xsXCIsXG4gICAgICAgICAgYXR0cnM6IHsgcm9sZTogXCJ0YWJwYW5lbFwiIH0sXG4gICAgICAgICAgb246IHsgc2Nyb2xsOiBfdm0ub25TY3JvbGwgfSxcbiAgICAgICAgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFxuICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcmVmOiBcInNjcm9sbENvbnRlbnRcIixcbiAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICBpZDogXCJlbW9qaS1tYXJ0LWxpc3RcIixcbiAgICAgICAgICAgICAgICByb2xlOiBcImxpc3Rib3hcIixcbiAgICAgICAgICAgICAgICBcImFyaWEtZXhwYW5kZWRcIjogXCJ0cnVlXCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3ZtLl9sKF92bS52aWV3LmZpbHRlcmVkQ2F0ZWdvcmllcywgZnVuY3Rpb24gKGNhdGVnb3J5LCBpZHgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIF9jKFwiY2F0ZWdvcnlcIiwge1xuICAgICAgICAgICAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJzaG93XCIsXG4gICAgICAgICAgICAgICAgICAgIHJhd05hbWU6IFwidi1zaG93XCIsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOlxuICAgICAgICAgICAgICAgICAgICAgIF92bS5pbmZpbml0ZVNjcm9sbCB8fCBjYXRlZ29yeSA9PSBfdm0udmlldy5hY3RpdmVDYXRlZ29yeSxcbiAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjpcbiAgICAgICAgICAgICAgICAgICAgICBcImluZmluaXRlU2Nyb2xsIHx8IGNhdGVnb3J5ID09IHZpZXcuYWN0aXZlQ2F0ZWdvcnlcIixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICBrZXk6IGNhdGVnb3J5LmlkLFxuICAgICAgICAgICAgICAgIHJlZjogXCJjYXRlZ29yaWVzX1wiICsgaWR4LFxuICAgICAgICAgICAgICAgIHJlZkluRm9yOiB0cnVlLFxuICAgICAgICAgICAgICAgIGF0dHJzOiB7XG4gICAgICAgICAgICAgICAgICBkYXRhOiBfdm0uZGF0YSxcbiAgICAgICAgICAgICAgICAgIGkxOG46IF92bS5tZXJnZWRJMThuLFxuICAgICAgICAgICAgICAgICAgaWQ6IGNhdGVnb3J5LmlkLFxuICAgICAgICAgICAgICAgICAgbmFtZTogY2F0ZWdvcnkubmFtZSxcbiAgICAgICAgICAgICAgICAgIGVtb2ppczogY2F0ZWdvcnkuZW1vamlzLFxuICAgICAgICAgICAgICAgICAgXCJlbW9qaS1wcm9wc1wiOiBfdm0uZW1vamlQcm9wcyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAxXG4gICAgICAgICAgKSxcbiAgICAgICAgXVxuICAgICAgKSxcbiAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICBfdm0uX3QoXG4gICAgICAgIFwicHJldmlld1RlbXBsYXRlXCIsXG4gICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgX3ZtLnNob3dQcmV2aWV3XG4gICAgICAgICAgICAgID8gX2MoXG4gICAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LWJhciBlbW9qaS1tYXJ0LWJhci1wcmV2aWV3XCIgfSxcbiAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgX2MoXCJwcmV2aWV3XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogX3ZtLmRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogX3ZtLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW1vamk6IF92bS52aWV3LnByZXZpZXdFbW9qaSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiaWRsZS1lbW9qaVwiOiBfdm0uaWRsZUVtb2ppLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzaG93LXNraW4tdG9uZXNcIjogX3ZtLnNob3dTa2luVG9uZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBcImVtb2ppLXByb3BzXCI6IF92bS5lbW9qaVByb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJza2luLXByb3BzXCI6IF92bS5za2luUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm9uLXNraW4tY2hhbmdlXCI6IF92bS5vblNraW5DaGFuZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICBdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBkYXRhOiBfdm0uZGF0YSxcbiAgICAgICAgICB0aXRsZTogX3ZtLnRpdGxlLFxuICAgICAgICAgIGVtb2ppOiBfdm0udmlldy5wcmV2aWV3RW1vamksXG4gICAgICAgICAgaWRsZUVtb2ppOiBfdm0uaWRsZUVtb2ppLFxuICAgICAgICAgIHNob3dTa2luVG9uZXM6IF92bS5zaG93U2tpblRvbmVzLFxuICAgICAgICAgIGVtb2ppUHJvcHM6IF92bS5lbW9qaVByb3BzLFxuICAgICAgICAgIHNraW5Qcm9wczogX3ZtLnNraW5Qcm9wcyxcbiAgICAgICAgICBvblNraW5DaGFuZ2U6IF92bS5vblNraW5DaGFuZ2UsXG4gICAgICAgIH1cbiAgICAgICksXG4gICAgXSxcbiAgICAyXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcbiAgICBcImRpdlwiLFxuICAgIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1hbmNob3JzXCIsIGF0dHJzOiB7IHJvbGU6IFwidGFibGlzdFwiIH0gfSxcbiAgICBfdm0uX2woX3ZtLmNhdGVnb3JpZXMsIGZ1bmN0aW9uIChjYXRlZ29yeSkge1xuICAgICAgcmV0dXJuIF9jKFxuICAgICAgICBcImJ1dHRvblwiLFxuICAgICAgICB7XG4gICAgICAgICAga2V5OiBjYXRlZ29yeS5pZCxcbiAgICAgICAgICBjbGFzczoge1xuICAgICAgICAgICAgXCJlbW9qaS1tYXJ0LWFuY2hvclwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbW9qaS1tYXJ0LWFuY2hvci1zZWxlY3RlZFwiOiBjYXRlZ29yeS5pZCA9PSBfdm0uYWN0aXZlQ2F0ZWdvcnkuaWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgY29sb3I6IGNhdGVnb3J5LmlkID09IF92bS5hY3RpdmVDYXRlZ29yeS5pZCA/IF92bS5jb2xvciA6IFwiXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgcm9sZTogXCJ0YWJcIixcbiAgICAgICAgICAgIHR5cGU6IFwiYnV0dG9uXCIsXG4gICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogY2F0ZWdvcnkubmFtZSxcbiAgICAgICAgICAgIFwiYXJpYS1zZWxlY3RlZFwiOiBjYXRlZ29yeS5pZCA9PSBfdm0uYWN0aXZlQ2F0ZWdvcnkuaWQsXG4gICAgICAgICAgICBcImRhdGEtdGl0bGVcIjogX3ZtLmkxOG4uY2F0ZWdvcmllc1tjYXRlZ29yeS5pZF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIF92bS4kZW1pdChcImNsaWNrXCIsIGNhdGVnb3J5KVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBbXG4gICAgICAgICAgX2MoXCJkaXZcIiwge1xuICAgICAgICAgICAgYXR0cnM6IHsgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIiB9LFxuICAgICAgICAgICAgZG9tUHJvcHM6IHsgaW5uZXJIVE1MOiBfdm0uX3MoX3ZtLnN2Z3NbY2F0ZWdvcnkuaWRdKSB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgX2MoXCJzcGFuXCIsIHtcbiAgICAgICAgICAgIHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtYW5jaG9yLWJhclwiLFxuICAgICAgICAgICAgc3R5bGU6IHsgYmFja2dyb3VuZENvbG9yOiBfdm0uY29sb3IgfSxcbiAgICAgICAgICAgIGF0dHJzOiB7IFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXVxuICAgICAgKVxuICAgIH0pLFxuICAgIDBcbiAgKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF92bS5pc1Zpc2libGUgJiYgKF92bS5pc1NlYXJjaCB8fCBfdm0uaGFzUmVzdWx0cylcbiAgICA/IF9jKFxuICAgICAgICBcInNlY3Rpb25cIixcbiAgICAgICAge1xuICAgICAgICAgIGNsYXNzOiB7XG4gICAgICAgICAgICBcImVtb2ppLW1hcnQtY2F0ZWdvcnlcIjogdHJ1ZSxcbiAgICAgICAgICAgIFwiZW1vamktbWFydC1uby1yZXN1bHRzXCI6ICFfdm0uaGFzUmVzdWx0cyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGF0dHJzOiB7IFwiYXJpYS1sYWJlbFwiOiBfdm0uaTE4bi5jYXRlZ29yaWVzW192bS5pZF0gfSxcbiAgICAgICAgfSxcbiAgICAgICAgW1xuICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1jYXRlZ29yeS1sYWJlbFwiIH0sIFtcbiAgICAgICAgICAgIF9jKFwiaDNcIiwgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LWNhdGVnb3J5LWxhYmVsXCIgfSwgW1xuICAgICAgICAgICAgICBfdm0uX3YoX3ZtLl9zKF92bS5pMThuLmNhdGVnb3JpZXNbX3ZtLmlkXSkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgXSksXG4gICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICBfdm0uX2woX3ZtLmVtb2ppT2JqZWN0cywgZnVuY3Rpb24gKHJlZikge1xuICAgICAgICAgICAgdmFyIGVtb2ppT2JqZWN0ID0gcmVmLmVtb2ppT2JqZWN0XG4gICAgICAgICAgICB2YXIgZW1vamlWaWV3ID0gcmVmLmVtb2ppVmlld1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgZW1vamlWaWV3LmNhblJlbmRlclxuICAgICAgICAgICAgICAgID8gX2MoXG4gICAgICAgICAgICAgICAgICAgIFwiYnV0dG9uXCIsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6IGVtb2ppT2JqZWN0LmlkLFxuICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtZW1vamlcIixcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzczogX3ZtLmFjdGl2ZUNsYXNzKGVtb2ppT2JqZWN0KSxcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IGVtb2ppVmlldy5hcmlhTGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICByb2xlOiBcIm9wdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJhcmlhLXNlbGVjdGVkXCI6IFwiZmFsc2VcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXJpYS1wb3NpbnNldFwiOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiYXJpYS1zZXRzaXplXCI6IFwiMTgxMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGF0YS10aXRsZVwiOiBlbW9qaU9iamVjdC5zaG9ydF9uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGVtb2ppVmlldy50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb3VzZWVudGVyOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5lbW9qaVByb3BzLm9uRW50ZXIoZW1vamlWaWV3LmdldEVtb2ppKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VsZWF2ZTogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uZW1vamlQcm9wcy5vbkxlYXZlKGVtb2ppVmlldy5nZXRFbW9qaSgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5lbW9qaVByb3BzLm9uQ2xpY2soZW1vamlWaWV3LmdldEVtb2ppKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIFwic3BhblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogZW1vamlWaWV3LmNzc0NsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogZW1vamlWaWV3LmNzc1N0eWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtfdm0uX3YoX3ZtLl9zKGVtb2ppVmlldy5jb250ZW50KSldXG4gICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogX3ZtLl9lKCksXG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSksXG4gICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAhX3ZtLmhhc1Jlc3VsdHNcbiAgICAgICAgICAgID8gX2MoXG4gICAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICBfYyhcImVtb2ppXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgYXR0cnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBfdm0uZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICBlbW9qaTogXCJzbGV1dGhfb3Jfc3B5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgbmF0aXZlOiBfdm0uZW1vamlQcm9wcy5uYXRpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgc2tpbjogX3ZtLmVtb2ppUHJvcHMuc2tpbixcbiAgICAgICAgICAgICAgICAgICAgICBzZXQ6IF92bS5lbW9qaVByb3BzLnNldCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgICAgICAgIF9jKFwiZGl2XCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1uby1yZXN1bHRzLWxhYmVsXCIgfSwgW1xuICAgICAgICAgICAgICAgICAgICBfdm0uX3YoX3ZtLl9zKF92bS5pMThuLm5vdGZvdW5kKSksXG4gICAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgXSxcbiAgICAgICAgMlxuICAgICAgKVxuICAgIDogX3ZtLl9lKClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gKCkge1xuICB2YXIgX3ZtID0gdGhpc1xuICB2YXIgX2ggPSBfdm0uJGNyZWF0ZUVsZW1lbnRcbiAgdmFyIF9jID0gX3ZtLl9zZWxmLl9jIHx8IF9oXG4gIHJldHVybiBfYyhcbiAgICBcImRpdlwiLFxuICAgIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC1wcmV2aWV3XCIgfSxcbiAgICBbXG4gICAgICBfdm0uZW1vamlcbiAgICAgICAgPyBbXG4gICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vamlcIiB9LFxuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgX2MoXCJlbW9qaVwiLCB7XG4gICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBfdm0uZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgZW1vamk6IF92bS5lbW9qaSxcbiAgICAgICAgICAgICAgICAgICAgbmF0aXZlOiBfdm0uZW1vamlQcm9wcy5uYXRpdmUsXG4gICAgICAgICAgICAgICAgICAgIHNraW46IF92bS5lbW9qaVByb3BzLnNraW4sXG4gICAgICAgICAgICAgICAgICAgIHNldDogX3ZtLmVtb2ppUHJvcHMuc2V0LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1kYXRhXCIgfSwgW1xuICAgICAgICAgICAgICBfYyhcImRpdlwiLCB7IHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1uYW1lXCIgfSwgW1xuICAgICAgICAgICAgICAgIF92bS5fdihfdm0uX3MoX3ZtLmVtb2ppLm5hbWUpKSxcbiAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lc1wiIH0sXG4gICAgICAgICAgICAgICAgX3ZtLl9sKF92bS5lbW9qaVNob3J0TmFtZXMsIGZ1bmN0aW9uIChzaG9ydE5hbWUpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBfYyhcbiAgICAgICAgICAgICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6IHNob3J0TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctc2hvcnRuYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIFtfdm0uX3YoXCI6XCIgKyBfdm0uX3Moc2hvcnROYW1lKSArIFwiOlwiKV1cbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAwXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIF92bS5fdihcIiBcIiksXG4gICAgICAgICAgICAgIF9jKFxuICAgICAgICAgICAgICAgIFwiZGl2XCIsXG4gICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vdGljb25zXCIgfSxcbiAgICAgICAgICAgICAgICBfdm0uX2woX3ZtLmVtb2ppRW1vdGljb25zLCBmdW5jdGlvbiAoZW1vdGljb24pIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBfYyhcbiAgICAgICAgICAgICAgICAgICAgXCJzcGFuXCIsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6IGVtb3RpY29uLFxuICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY0NsYXNzOiBcImVtb2ppLW1hcnQtcHJldmlldy1lbW90aWNvblwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBbX3ZtLl92KF92bS5fcyhlbW90aWNvbikpXVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIDBcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXG4gICAgICAgICAgICBfYyhcbiAgICAgICAgICAgICAgXCJkaXZcIixcbiAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctZW1vamlcIiB9LFxuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgX2MoXCJlbW9qaVwiLCB7XG4gICAgICAgICAgICAgICAgICBhdHRyczoge1xuICAgICAgICAgICAgICAgICAgICBkYXRhOiBfdm0uZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgZW1vamk6IF92bS5pZGxlRW1vamksXG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZTogX3ZtLmVtb2ppUHJvcHMubmF0aXZlLFxuICAgICAgICAgICAgICAgICAgICBza2luOiBfdm0uZW1vamlQcm9wcy5za2luLFxuICAgICAgICAgICAgICAgICAgICBzZXQ6IF92bS5lbW9qaVByb3BzLnNldCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBfdm0uX3YoXCIgXCIpLFxuICAgICAgICAgICAgX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctZGF0YVwiIH0sIFtcbiAgICAgICAgICAgICAgX2MoXCJzcGFuXCIsIHsgc3RhdGljQ2xhc3M6IFwiZW1vamktbWFydC10aXRsZS1sYWJlbFwiIH0sIFtcbiAgICAgICAgICAgICAgICBfdm0uX3YoX3ZtLl9zKF92bS50aXRsZSkpLFxuICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgX3ZtLl92KFwiIFwiKSxcbiAgICAgICAgICAgIF92bS5zaG93U2tpblRvbmVzXG4gICAgICAgICAgICAgID8gX2MoXG4gICAgICAgICAgICAgICAgICBcImRpdlwiLFxuICAgICAgICAgICAgICAgICAgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXByZXZpZXctc2tpbnNcIiB9LFxuICAgICAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgICAgICBfYyhcInNraW5zXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyczogeyBza2luOiBfdm0uc2tpblByb3BzLnNraW4gfSxcbiAgICAgICAgICAgICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlOiBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfdm0ub25Ta2luQ2hhbmdlKCRldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBfdm0uX2UoKSxcbiAgICAgICAgICBdLFxuICAgIF0sXG4gICAgMlxuICApXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cbnJlbmRlci5fd2l0aFN0cmlwcGVkID0gdHJ1ZVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwidmFyIHJlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIF92bSA9IHRoaXNcbiAgdmFyIF9oID0gX3ZtLiRjcmVhdGVFbGVtZW50XG4gIHZhciBfYyA9IF92bS5fc2VsZi5fYyB8fCBfaFxuICByZXR1cm4gX2MoXCJkaXZcIiwgeyBzdGF0aWNDbGFzczogXCJlbW9qaS1tYXJ0LXNlYXJjaFwiIH0sIFtcbiAgICBfYyhcImlucHV0XCIsIHtcbiAgICAgIGRpcmVjdGl2ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwibW9kZWxcIixcbiAgICAgICAgICByYXdOYW1lOiBcInYtbW9kZWxcIixcbiAgICAgICAgICB2YWx1ZTogX3ZtLnZhbHVlLFxuICAgICAgICAgIGV4cHJlc3Npb246IFwidmFsdWVcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBhdHRyczoge1xuICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgcGxhY2Vob2xkZXI6IF92bS5pMThuLnNlYXJjaCxcbiAgICAgICAgcm9sZTogXCJ0ZXh0Ym94XCIsXG4gICAgICAgIFwiYXJpYS1hdXRvY29tcGxldGVcIjogXCJsaXN0XCIsXG4gICAgICAgIFwiYXJpYS1vd25zXCI6IFwiZW1vamktbWFydC1saXN0XCIsXG4gICAgICAgIFwiYXJpYS1sYWJlbFwiOiBcIlNlYXJjaCBmb3IgYW4gZW1vamlcIixcbiAgICAgICAgXCJhcmlhLWRlc2NyaWJlZGJ5XCI6IFwiZW1vamktbWFydC1zZWFyY2gtZGVzY3JpcHRpb25cIixcbiAgICAgIH0sXG4gICAgICBkb21Qcm9wczogeyB2YWx1ZTogX3ZtLnZhbHVlIH0sXG4gICAgICBvbjoge1xuICAgICAgICBrZXlkb3duOiBbXG4gICAgICAgICAgZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAhJGV2ZW50LnR5cGUuaW5kZXhPZihcImtleVwiKSAmJlxuICAgICAgICAgICAgICBfdm0uX2soJGV2ZW50LmtleUNvZGUsIFwibGVmdFwiLCAzNywgJGV2ZW50LmtleSwgW1xuICAgICAgICAgICAgICAgIFwiTGVmdFwiLFxuICAgICAgICAgICAgICAgIFwiQXJyb3dMZWZ0XCIsXG4gICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChcImJ1dHRvblwiIGluICRldmVudCAmJiAkZXZlbnQuYnV0dG9uICE9PSAwKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICByZXR1cm4gX3ZtLiRlbWl0KFwiYXJyb3dMZWZ0XCIsICRldmVudClcbiAgICAgICAgICAgIH0uYXBwbHkobnVsbCwgYXJndW1lbnRzKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAhJGV2ZW50LnR5cGUuaW5kZXhPZihcImtleVwiKSAmJlxuICAgICAgICAgICAgICBfdm0uX2soJGV2ZW50LmtleUNvZGUsIFwicmlnaHRcIiwgMzksICRldmVudC5rZXksIFtcbiAgICAgICAgICAgICAgICBcIlJpZ2h0XCIsXG4gICAgICAgICAgICAgICAgXCJBcnJvd1JpZ2h0XCIsXG4gICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChcImJ1dHRvblwiIGluICRldmVudCAmJiAkZXZlbnQuYnV0dG9uICE9PSAyKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICByZXR1cm4gX3ZtLiRlbWl0KFwiYXJyb3dSaWdodFwiKVxuICAgICAgICAgICAgfS5hcHBseShudWxsLCBhcmd1bWVudHMpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICEkZXZlbnQudHlwZS5pbmRleE9mKFwia2V5XCIpICYmXG4gICAgICAgICAgICAgIF92bS5faygkZXZlbnQua2V5Q29kZSwgXCJkb3duXCIsIDQwLCAkZXZlbnQua2V5LCBbXG4gICAgICAgICAgICAgICAgXCJEb3duXCIsXG4gICAgICAgICAgICAgICAgXCJBcnJvd0Rvd25cIixcbiAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIF92bS4kZW1pdChcImFycm93RG93blwiKVxuICAgICAgICAgICAgfS5hcHBseShudWxsLCBhcmd1bWVudHMpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmdW5jdGlvbiAoJGV2ZW50KSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICEkZXZlbnQudHlwZS5pbmRleE9mKFwia2V5XCIpICYmXG4gICAgICAgICAgICAgIF92bS5faygkZXZlbnQua2V5Q29kZSwgXCJ1cFwiLCAzOCwgJGV2ZW50LmtleSwgW1wiVXBcIiwgXCJBcnJvd1VwXCJdKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICByZXR1cm4gX3ZtLiRlbWl0KFwiYXJyb3dVcFwiLCAkZXZlbnQpXG4gICAgICAgICAgICB9LmFwcGx5KG51bGwsIGFyZ3VtZW50cylcbiAgICAgICAgICB9LFxuICAgICAgICAgIGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgISRldmVudC50eXBlLmluZGV4T2YoXCJrZXlcIikgJiZcbiAgICAgICAgICAgICAgX3ZtLl9rKCRldmVudC5rZXlDb2RlLCBcImVudGVyXCIsIDEzLCAkZXZlbnQua2V5LCBcIkVudGVyXCIpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBfdm0uJGVtaXQoXCJlbnRlclwiKVxuICAgICAgICAgICAgfS5hcHBseShudWxsLCBhcmd1bWVudHMpXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgaW5wdXQ6IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICBpZiAoJGV2ZW50LnRhcmdldC5jb21wb3NpbmcpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgICBfdm0udmFsdWUgPSAkZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIF92bS5fdihcIiBcIiksXG4gICAgX2MoXG4gICAgICBcInNwYW5cIixcbiAgICAgIHtcbiAgICAgICAgc3RhdGljQ2xhc3M6IFwiaGlkZGVuXCIsXG4gICAgICAgIGF0dHJzOiB7IGlkOiBcImVtb2ppLXBpY2tlci1zZWFyY2gtZGVzY3JpcHRpb25cIiB9LFxuICAgICAgfSxcbiAgICAgIFtcbiAgICAgICAgX3ZtLl92KFxuICAgICAgICAgIFwiVXNlIHRoZSBsZWZ0LCByaWdodCwgdXAgYW5kIGRvd24gYXJyb3cga2V5cyB0byBuYXZpZ2F0ZSB0aGUgZW1vamkgc2VhcmNoXFxuICAgIHJlc3VsdHMuXCJcbiAgICAgICAgKSxcbiAgICAgIF1cbiAgICApLFxuICBdKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5yZW5kZXIuX3dpdGhTdHJpcHBlZCA9IHRydWVcblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsInZhciByZW5kZXIgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBfdm0gPSB0aGlzXG4gIHZhciBfaCA9IF92bS4kY3JlYXRlRWxlbWVudFxuICB2YXIgX2MgPSBfdm0uX3NlbGYuX2MgfHwgX2hcbiAgcmV0dXJuIF9jKFxuICAgIFwiZGl2XCIsXG4gICAge1xuICAgICAgY2xhc3M6IHtcbiAgICAgICAgXCJlbW9qaS1tYXJ0LXNraW4tc3dhdGNoZXNcIjogdHJ1ZSxcbiAgICAgICAgXCJlbW9qaS1tYXJ0LXNraW4tc3dhdGNoZXMtb3BlbmVkXCI6IF92bS5vcGVuZWQsXG4gICAgICB9LFxuICAgIH0sXG4gICAgX3ZtLl9sKDYsIGZ1bmN0aW9uIChza2luVG9uZSkge1xuICAgICAgcmV0dXJuIF9jKFxuICAgICAgICBcInNwYW5cIixcbiAgICAgICAge1xuICAgICAgICAgIGtleTogc2tpblRvbmUsXG4gICAgICAgICAgY2xhc3M6IHtcbiAgICAgICAgICAgIFwiZW1vamktbWFydC1za2luLXN3YXRjaFwiOiB0cnVlLFxuICAgICAgICAgICAgXCJlbW9qaS1tYXJ0LXNraW4tc3dhdGNoLXNlbGVjdGVkXCI6IF92bS5za2luID09IHNraW5Ub25lLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFtcbiAgICAgICAgICBfYyhcInNwYW5cIiwge1xuICAgICAgICAgICAgY2xhc3M6IFwiZW1vamktbWFydC1za2luIGVtb2ppLW1hcnQtc2tpbi10b25lLVwiICsgc2tpblRvbmUsXG4gICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24gKCRldmVudCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfdm0ub25DbGljayhza2luVG9uZSlcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIF1cbiAgICAgIClcbiAgICB9KSxcbiAgICAwXG4gIClcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxucmVuZGVyLl93aXRoU3RyaXBwZWQgPSB0cnVlXG5cbmV4cG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCIvKiBnbG9iYWxzIF9fVlVFX1NTUl9DT05URVhUX18gKi9cblxuLy8gSU1QT1JUQU5UOiBEbyBOT1QgdXNlIEVTMjAxNSBmZWF0dXJlcyBpbiB0aGlzIGZpbGUgKGV4Y2VwdCBmb3IgbW9kdWxlcykuXG4vLyBUaGlzIG1vZHVsZSBpcyBhIHJ1bnRpbWUgdXRpbGl0eSBmb3IgY2xlYW5lciBjb21wb25lbnQgbW9kdWxlIG91dHB1dCBhbmQgd2lsbFxuLy8gYmUgaW5jbHVkZWQgaW4gdGhlIGZpbmFsIHdlYnBhY2sgdXNlciBidW5kbGUuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG5vcm1hbGl6ZUNvbXBvbmVudCAoXG4gIHNjcmlwdEV4cG9ydHMsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmdW5jdGlvbmFsVGVtcGxhdGUsXG4gIGluamVjdFN0eWxlcyxcbiAgc2NvcGVJZCxcbiAgbW9kdWxlSWRlbnRpZmllciwgLyogc2VydmVyIG9ubHkgKi9cbiAgc2hhZG93TW9kZSAvKiB2dWUtY2xpIG9ubHkgKi9cbikge1xuICAvLyBWdWUuZXh0ZW5kIGNvbnN0cnVjdG9yIGV4cG9ydCBpbnRlcm9wXG4gIHZhciBvcHRpb25zID0gdHlwZW9mIHNjcmlwdEV4cG9ydHMgPT09ICdmdW5jdGlvbidcbiAgICA/IHNjcmlwdEV4cG9ydHMub3B0aW9uc1xuICAgIDogc2NyaXB0RXhwb3J0c1xuXG4gIC8vIHJlbmRlciBmdW5jdGlvbnNcbiAgaWYgKHJlbmRlcikge1xuICAgIG9wdGlvbnMucmVuZGVyID0gcmVuZGVyXG4gICAgb3B0aW9ucy5zdGF0aWNSZW5kZXJGbnMgPSBzdGF0aWNSZW5kZXJGbnNcbiAgICBvcHRpb25zLl9jb21waWxlZCA9IHRydWVcbiAgfVxuXG4gIC8vIGZ1bmN0aW9uYWwgdGVtcGxhdGVcbiAgaWYgKGZ1bmN0aW9uYWxUZW1wbGF0ZSkge1xuICAgIG9wdGlvbnMuZnVuY3Rpb25hbCA9IHRydWVcbiAgfVxuXG4gIC8vIHNjb3BlZElkXG4gIGlmIChzY29wZUlkKSB7XG4gICAgb3B0aW9ucy5fc2NvcGVJZCA9ICdkYXRhLXYtJyArIHNjb3BlSWRcbiAgfVxuXG4gIHZhciBob29rXG4gIGlmIChtb2R1bGVJZGVudGlmaWVyKSB7IC8vIHNlcnZlciBidWlsZFxuICAgIGhvb2sgPSBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgLy8gMi4zIGluamVjdGlvblxuICAgICAgY29udGV4dCA9XG4gICAgICAgIGNvbnRleHQgfHwgLy8gY2FjaGVkIGNhbGxcbiAgICAgICAgKHRoaXMuJHZub2RlICYmIHRoaXMuJHZub2RlLnNzckNvbnRleHQpIHx8IC8vIHN0YXRlZnVsXG4gICAgICAgICh0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC4kdm5vZGUgJiYgdGhpcy5wYXJlbnQuJHZub2RlLnNzckNvbnRleHQpIC8vIGZ1bmN0aW9uYWxcbiAgICAgIC8vIDIuMiB3aXRoIHJ1bkluTmV3Q29udGV4dDogdHJ1ZVxuICAgICAgaWYgKCFjb250ZXh0ICYmIHR5cGVvZiBfX1ZVRV9TU1JfQ09OVEVYVF9fICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjb250ZXh0ID0gX19WVUVfU1NSX0NPTlRFWFRfX1xuICAgICAgfVxuICAgICAgLy8gaW5qZWN0IGNvbXBvbmVudCBzdHlsZXNcbiAgICAgIGlmIChpbmplY3RTdHlsZXMpIHtcbiAgICAgICAgaW5qZWN0U3R5bGVzLmNhbGwodGhpcywgY29udGV4dClcbiAgICAgIH1cbiAgICAgIC8vIHJlZ2lzdGVyIGNvbXBvbmVudCBtb2R1bGUgaWRlbnRpZmllciBmb3IgYXN5bmMgY2h1bmsgaW5mZXJyZW5jZVxuICAgICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC5fcmVnaXN0ZXJlZENvbXBvbmVudHMpIHtcbiAgICAgICAgY29udGV4dC5fcmVnaXN0ZXJlZENvbXBvbmVudHMuYWRkKG1vZHVsZUlkZW50aWZpZXIpXG4gICAgICB9XG4gICAgfVxuICAgIC8vIHVzZWQgYnkgc3NyIGluIGNhc2UgY29tcG9uZW50IGlzIGNhY2hlZCBhbmQgYmVmb3JlQ3JlYXRlXG4gICAgLy8gbmV2ZXIgZ2V0cyBjYWxsZWRcbiAgICBvcHRpb25zLl9zc3JSZWdpc3RlciA9IGhvb2tcbiAgfSBlbHNlIGlmIChpbmplY3RTdHlsZXMpIHtcbiAgICBob29rID0gc2hhZG93TW9kZVxuICAgICAgPyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGluamVjdFN0eWxlcy5jYWxsKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgKG9wdGlvbnMuZnVuY3Rpb25hbCA/IHRoaXMucGFyZW50IDogdGhpcykuJHJvb3QuJG9wdGlvbnMuc2hhZG93Um9vdFxuICAgICAgICApXG4gICAgICB9XG4gICAgICA6IGluamVjdFN0eWxlc1xuICB9XG5cbiAgaWYgKGhvb2spIHtcbiAgICBpZiAob3B0aW9ucy5mdW5jdGlvbmFsKSB7XG4gICAgICAvLyBmb3IgdGVtcGxhdGUtb25seSBob3QtcmVsb2FkIGJlY2F1c2UgaW4gdGhhdCBjYXNlIHRoZSByZW5kZXIgZm4gZG9lc24ndFxuICAgICAgLy8gZ28gdGhyb3VnaCB0aGUgbm9ybWFsaXplclxuICAgICAgb3B0aW9ucy5faW5qZWN0U3R5bGVzID0gaG9va1xuICAgICAgLy8gcmVnaXN0ZXIgZm9yIGZ1bmN0aW9uYWwgY29tcG9uZW50IGluIHZ1ZSBmaWxlXG4gICAgICB2YXIgb3JpZ2luYWxSZW5kZXIgPSBvcHRpb25zLnJlbmRlclxuICAgICAgb3B0aW9ucy5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXJXaXRoU3R5bGVJbmplY3Rpb24gKGgsIGNvbnRleHQpIHtcbiAgICAgICAgaG9vay5jYWxsKGNvbnRleHQpXG4gICAgICAgIHJldHVybiBvcmlnaW5hbFJlbmRlcihoLCBjb250ZXh0KVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpbmplY3QgY29tcG9uZW50IHJlZ2lzdHJhdGlvbiBhcyBiZWZvcmVDcmVhdGUgaG9va1xuICAgICAgdmFyIGV4aXN0aW5nID0gb3B0aW9ucy5iZWZvcmVDcmVhdGVcbiAgICAgIG9wdGlvbnMuYmVmb3JlQ3JlYXRlID0gZXhpc3RpbmdcbiAgICAgICAgPyBbXS5jb25jYXQoZXhpc3RpbmcsIGhvb2spXG4gICAgICAgIDogW2hvb2tdXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBleHBvcnRzOiBzY3JpcHRFeHBvcnRzLFxuICAgIG9wdGlvbnM6IG9wdGlvbnNcbiAgfVxufVxuIiwiLy8gc3R5bGUtbG9hZGVyOiBBZGRzIHNvbWUgY3NzIHRvIHRoZSBET00gYnkgYWRkaW5nIGEgPHN0eWxlPiB0YWdcblxuLy8gbG9hZCB0aGUgc3R5bGVzXG52YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL25vZGVfbW9kdWxlcy9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2Vtb2ppLW1hcnQuY3NzXCIpO1xuaWYoY29udGVudC5fX2VzTW9kdWxlKSBjb250ZW50ID0gY29udGVudC5kZWZhdWx0O1xuaWYodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2Fscztcbi8vIGFkZCB0aGUgc3R5bGVzIHRvIHRoZSBET01cbnZhciBhZGQgPSByZXF1aXJlKFwiIS4uL25vZGVfbW9kdWxlcy92dWUtc3R5bGUtbG9hZGVyL2xpYi9hZGRTdHlsZXNDbGllbnQuanNcIikuZGVmYXVsdFxudmFyIHVwZGF0ZSA9IGFkZChcIjA0OTdjYTYxXCIsIGNvbnRlbnQsIGZhbHNlLCB7fSk7XG4vLyBIb3QgTW9kdWxlIFJlcGxhY2VtZW50XG5pZihtb2R1bGUuaG90KSB7XG4gLy8gV2hlbiB0aGUgc3R5bGVzIGNoYW5nZSwgdXBkYXRlIHRoZSA8c3R5bGU+IHRhZ3NcbiBpZighY29udGVudC5sb2NhbHMpIHtcbiAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiISEuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanMhLi9lbW9qaS1tYXJ0LmNzc1wiLCBmdW5jdGlvbigpIHtcbiAgICAgdmFyIG5ld0NvbnRlbnQgPSByZXF1aXJlKFwiISEuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanMhLi9lbW9qaS1tYXJ0LmNzc1wiKTtcbiAgICAgaWYobmV3Q29udGVudC5fX2VzTW9kdWxlKSBuZXdDb250ZW50ID0gbmV3Q29udGVudC5kZWZhdWx0O1xuICAgICBpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcbiAgICAgdXBkYXRlKG5ld0NvbnRlbnQpO1xuICAgfSk7XG4gfVxuIC8vIFdoZW4gdGhlIG1vZHVsZSBpcyBkaXNwb3NlZCwgcmVtb3ZlIHRoZSA8c3R5bGU+IHRhZ3NcbiBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn0iLCIvLyBzdHlsZS1sb2FkZXI6IEFkZHMgc29tZSBjc3MgdG8gdGhlIERPTSBieSBhZGRpbmcgYSA8c3R5bGU+IHRhZ1xuXG4vLyBsb2FkIHRoZSBzdHlsZXNcbnZhciBjb250ZW50ID0gcmVxdWlyZShcIiEhLi4vLi4vLi4vY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi9wb3N0Y3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3F1YXNhci5tYXQuY3NzXCIpO1xuaWYoY29udGVudC5fX2VzTW9kdWxlKSBjb250ZW50ID0gY29udGVudC5kZWZhdWx0O1xuaWYodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2Fscztcbi8vIGFkZCB0aGUgc3R5bGVzIHRvIHRoZSBET01cbnZhciBhZGQgPSByZXF1aXJlKFwiIS4uLy4uLy4uL3Z1ZS1zdHlsZS1sb2FkZXIvbGliL2FkZFN0eWxlc0NsaWVudC5qc1wiKS5kZWZhdWx0XG52YXIgdXBkYXRlID0gYWRkKFwiODNjZWM3ZWFcIiwgY29udGVudCwgZmFsc2UsIHt9KTtcbi8vIEhvdCBNb2R1bGUgUmVwbGFjZW1lbnRcbmlmKG1vZHVsZS5ob3QpIHtcbiAvLyBXaGVuIHRoZSBzdHlsZXMgY2hhbmdlLCB1cGRhdGUgdGhlIDxzdHlsZT4gdGFnc1xuIGlmKCFjb250ZW50LmxvY2Fscykge1xuICAgbW9kdWxlLmhvdC5hY2NlcHQoXCIhIS4uLy4uLy4uL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanMhLi9xdWFzYXIubWF0LmNzc1wiLCBmdW5jdGlvbigpIHtcbiAgICAgdmFyIG5ld0NvbnRlbnQgPSByZXF1aXJlKFwiISEuLi8uLi8uLi9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vcXVhc2FyLm1hdC5jc3NcIik7XG4gICAgIGlmKG5ld0NvbnRlbnQuX19lc01vZHVsZSkgbmV3Q29udGVudCA9IG5ld0NvbnRlbnQuZGVmYXVsdDtcbiAgICAgaWYodHlwZW9mIG5ld0NvbnRlbnQgPT09ICdzdHJpbmcnKSBuZXdDb250ZW50ID0gW1ttb2R1bGUuaWQsIG5ld0NvbnRlbnQsICcnXV07XG4gICAgIHVwZGF0ZShuZXdDb250ZW50KTtcbiAgIH0pO1xuIH1cbiAvLyBXaGVuIHRoZSBtb2R1bGUgaXMgZGlzcG9zZWQsIHJlbW92ZSB0aGUgPHN0eWxlPiB0YWdzXG4gbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uKCkgeyB1cGRhdGUoKTsgfSk7XG59IiwiLy8gc3R5bGUtbG9hZGVyOiBBZGRzIHNvbWUgY3NzIHRvIHRoZSBET00gYnkgYWRkaW5nIGEgPHN0eWxlPiB0YWdcblxuLy8gbG9hZCB0aGUgc3R5bGVzXG52YXIgY29udGVudCA9IHJlcXVpcmUoXCIhIS4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9sb2FkZXJzL3N0eWxlUG9zdExvYWRlci5qcyEuLi9ub2RlX21vZHVsZXMvcG9zdGNzcy1sb2FkZXIvZGlzdC9janMuanMhLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9hcHAudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NGZiYzczNWImc2NvcGVkPXRydWUmbGFuZz1jc3MmXCIpO1xuaWYoY29udGVudC5fX2VzTW9kdWxlKSBjb250ZW50ID0gY29udGVudC5kZWZhdWx0O1xuaWYodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSBjb250ZW50ID0gW1ttb2R1bGUuaWQsIGNvbnRlbnQsICcnXV07XG5pZihjb250ZW50LmxvY2FscykgbW9kdWxlLmV4cG9ydHMgPSBjb250ZW50LmxvY2Fscztcbi8vIGFkZCB0aGUgc3R5bGVzIHRvIHRoZSBET01cbnZhciBhZGQgPSByZXF1aXJlKFwiIS4uL25vZGVfbW9kdWxlcy92dWUtc3R5bGUtbG9hZGVyL2xpYi9hZGRTdHlsZXNDbGllbnQuanNcIikuZGVmYXVsdFxudmFyIHVwZGF0ZSA9IGFkZChcIjIzZjBlODg4XCIsIGNvbnRlbnQsIGZhbHNlLCB7fSk7XG4vLyBIb3QgTW9kdWxlIFJlcGxhY2VtZW50XG5pZihtb2R1bGUuaG90KSB7XG4gLy8gV2hlbiB0aGUgc3R5bGVzIGNoYW5nZSwgdXBkYXRlIHRoZSA8c3R5bGU+IHRhZ3NcbiBpZighY29udGVudC5sb2NhbHMpIHtcbiAgIG1vZHVsZS5ob3QuYWNjZXB0KFwiISEuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vYXBwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTRmYmM3MzViJnNjb3BlZD10cnVlJmxhbmc9Y3NzJlwiLCBmdW5jdGlvbigpIHtcbiAgICAgdmFyIG5ld0NvbnRlbnQgPSByZXF1aXJlKFwiISEuLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvbG9hZGVycy9zdHlsZVBvc3RMb2FkZXIuanMhLi4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vYXBwLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTRmYmM3MzViJnNjb3BlZD10cnVlJmxhbmc9Y3NzJlwiKTtcbiAgICAgaWYobmV3Q29udGVudC5fX2VzTW9kdWxlKSBuZXdDb250ZW50ID0gbmV3Q29udGVudC5kZWZhdWx0O1xuICAgICBpZih0eXBlb2YgbmV3Q29udGVudCA9PT0gJ3N0cmluZycpIG5ld0NvbnRlbnQgPSBbW21vZHVsZS5pZCwgbmV3Q29udGVudCwgJyddXTtcbiAgICAgdXBkYXRlKG5ld0NvbnRlbnQpO1xuICAgfSk7XG4gfVxuIC8vIFdoZW4gdGhlIG1vZHVsZSBpcyBkaXNwb3NlZCwgcmVtb3ZlIHRoZSA8c3R5bGU+IHRhZ3NcbiBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24oKSB7IHVwZGF0ZSgpOyB9KTtcbn0iLCIvKlxuICBNSVQgTGljZW5zZSBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocFxuICBBdXRob3IgVG9iaWFzIEtvcHBlcnMgQHNva3JhXG4gIE1vZGlmaWVkIGJ5IEV2YW4gWW91IEB5eXg5OTA4MDNcbiovXG5cbmltcG9ydCBsaXN0VG9TdHlsZXMgZnJvbSAnLi9saXN0VG9TdHlsZXMnXG5cbnZhciBoYXNEb2N1bWVudCA9IHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCdcblxuaWYgKHR5cGVvZiBERUJVRyAhPT0gJ3VuZGVmaW5lZCcgJiYgREVCVUcpIHtcbiAgaWYgKCFoYXNEb2N1bWVudCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAndnVlLXN0eWxlLWxvYWRlciBjYW5ub3QgYmUgdXNlZCBpbiBhIG5vbi1icm93c2VyIGVudmlyb25tZW50LiAnICtcbiAgICBcIlVzZSB7IHRhcmdldDogJ25vZGUnIH0gaW4geW91ciBXZWJwYWNrIGNvbmZpZyB0byBpbmRpY2F0ZSBhIHNlcnZlci1yZW5kZXJpbmcgZW52aXJvbm1lbnQuXCJcbiAgKSB9XG59XG5cbi8qXG50eXBlIFN0eWxlT2JqZWN0ID0ge1xuICBpZDogbnVtYmVyO1xuICBwYXJ0czogQXJyYXk8U3R5bGVPYmplY3RQYXJ0PlxufVxuXG50eXBlIFN0eWxlT2JqZWN0UGFydCA9IHtcbiAgY3NzOiBzdHJpbmc7XG4gIG1lZGlhOiBzdHJpbmc7XG4gIHNvdXJjZU1hcDogP3N0cmluZ1xufVxuKi9cblxudmFyIHN0eWxlc0luRG9tID0gey8qXG4gIFtpZDogbnVtYmVyXToge1xuICAgIGlkOiBudW1iZXIsXG4gICAgcmVmczogbnVtYmVyLFxuICAgIHBhcnRzOiBBcnJheTwob2JqPzogU3R5bGVPYmplY3RQYXJ0KSA9PiB2b2lkPlxuICB9XG4qL31cblxudmFyIGhlYWQgPSBoYXNEb2N1bWVudCAmJiAoZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdKVxudmFyIHNpbmdsZXRvbkVsZW1lbnQgPSBudWxsXG52YXIgc2luZ2xldG9uQ291bnRlciA9IDBcbnZhciBpc1Byb2R1Y3Rpb24gPSBmYWxzZVxudmFyIG5vb3AgPSBmdW5jdGlvbiAoKSB7fVxudmFyIG9wdGlvbnMgPSBudWxsXG52YXIgc3NySWRLZXkgPSAnZGF0YS12dWUtc3NyLWlkJ1xuXG4vLyBGb3JjZSBzaW5nbGUtdGFnIHNvbHV0aW9uIG9uIElFNi05LCB3aGljaCBoYXMgYSBoYXJkIGxpbWl0IG9uIHRoZSAjIG9mIDxzdHlsZT5cbi8vIHRhZ3MgaXQgd2lsbCBhbGxvdyBvbiBhIHBhZ2VcbnZhciBpc09sZElFID0gdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgL21zaWUgWzYtOV1cXGIvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRTdHlsZXNDbGllbnQgKHBhcmVudElkLCBsaXN0LCBfaXNQcm9kdWN0aW9uLCBfb3B0aW9ucykge1xuICBpc1Byb2R1Y3Rpb24gPSBfaXNQcm9kdWN0aW9uXG5cbiAgb3B0aW9ucyA9IF9vcHRpb25zIHx8IHt9XG5cbiAgdmFyIHN0eWxlcyA9IGxpc3RUb1N0eWxlcyhwYXJlbnRJZCwgbGlzdClcbiAgYWRkU3R5bGVzVG9Eb20oc3R5bGVzKVxuXG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGUgKG5ld0xpc3QpIHtcbiAgICB2YXIgbWF5UmVtb3ZlID0gW11cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGl0ZW0gPSBzdHlsZXNbaV1cbiAgICAgIHZhciBkb21TdHlsZSA9IHN0eWxlc0luRG9tW2l0ZW0uaWRdXG4gICAgICBkb21TdHlsZS5yZWZzLS1cbiAgICAgIG1heVJlbW92ZS5wdXNoKGRvbVN0eWxlKVxuICAgIH1cbiAgICBpZiAobmV3TGlzdCkge1xuICAgICAgc3R5bGVzID0gbGlzdFRvU3R5bGVzKHBhcmVudElkLCBuZXdMaXN0KVxuICAgICAgYWRkU3R5bGVzVG9Eb20oc3R5bGVzKVxuICAgIH0gZWxzZSB7XG4gICAgICBzdHlsZXMgPSBbXVxuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1heVJlbW92ZS5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGRvbVN0eWxlID0gbWF5UmVtb3ZlW2ldXG4gICAgICBpZiAoZG9tU3R5bGUucmVmcyA9PT0gMCkge1xuICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGRvbVN0eWxlLnBhcnRzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgZG9tU3R5bGUucGFydHNbal0oKVxuICAgICAgICB9XG4gICAgICAgIGRlbGV0ZSBzdHlsZXNJbkRvbVtkb21TdHlsZS5pZF1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkU3R5bGVzVG9Eb20gKHN0eWxlcyAvKiBBcnJheTxTdHlsZU9iamVjdD4gKi8pIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IHN0eWxlc1tpXVxuICAgIHZhciBkb21TdHlsZSA9IHN0eWxlc0luRG9tW2l0ZW0uaWRdXG4gICAgaWYgKGRvbVN0eWxlKSB7XG4gICAgICBkb21TdHlsZS5yZWZzKytcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgZG9tU3R5bGUucGFydHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgZG9tU3R5bGUucGFydHNbal0oaXRlbS5wYXJ0c1tqXSlcbiAgICAgIH1cbiAgICAgIGZvciAoOyBqIDwgaXRlbS5wYXJ0cy5sZW5ndGg7IGorKykge1xuICAgICAgICBkb21TdHlsZS5wYXJ0cy5wdXNoKGFkZFN0eWxlKGl0ZW0ucGFydHNbal0pKVxuICAgICAgfVxuICAgICAgaWYgKGRvbVN0eWxlLnBhcnRzLmxlbmd0aCA+IGl0ZW0ucGFydHMubGVuZ3RoKSB7XG4gICAgICAgIGRvbVN0eWxlLnBhcnRzLmxlbmd0aCA9IGl0ZW0ucGFydHMubGVuZ3RoXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBwYXJ0cyA9IFtdXG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGl0ZW0ucGFydHMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgcGFydHMucHVzaChhZGRTdHlsZShpdGVtLnBhcnRzW2pdKSlcbiAgICAgIH1cbiAgICAgIHN0eWxlc0luRG9tW2l0ZW0uaWRdID0geyBpZDogaXRlbS5pZCwgcmVmczogMSwgcGFydHM6IHBhcnRzIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlU3R5bGVFbGVtZW50ICgpIHtcbiAgdmFyIHN0eWxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJylcbiAgc3R5bGVFbGVtZW50LnR5cGUgPSAndGV4dC9jc3MnXG4gIGhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVFbGVtZW50KVxuICByZXR1cm4gc3R5bGVFbGVtZW50XG59XG5cbmZ1bmN0aW9uIGFkZFN0eWxlIChvYmogLyogU3R5bGVPYmplY3RQYXJ0ICovKSB7XG4gIHZhciB1cGRhdGUsIHJlbW92ZVxuICB2YXIgc3R5bGVFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc3R5bGVbJyArIHNzcklkS2V5ICsgJ349XCInICsgb2JqLmlkICsgJ1wiXScpXG5cbiAgaWYgKHN0eWxlRWxlbWVudCkge1xuICAgIGlmIChpc1Byb2R1Y3Rpb24pIHtcbiAgICAgIC8vIGhhcyBTU1Igc3R5bGVzIGFuZCBpbiBwcm9kdWN0aW9uIG1vZGUuXG4gICAgICAvLyBzaW1wbHkgZG8gbm90aGluZy5cbiAgICAgIHJldHVybiBub29wXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGhhcyBTU1Igc3R5bGVzIGJ1dCBpbiBkZXYgbW9kZS5cbiAgICAgIC8vIGZvciBzb21lIHJlYXNvbiBDaHJvbWUgY2FuJ3QgaGFuZGxlIHNvdXJjZSBtYXAgaW4gc2VydmVyLXJlbmRlcmVkXG4gICAgICAvLyBzdHlsZSB0YWdzIC0gc291cmNlIG1hcHMgaW4gPHN0eWxlPiBvbmx5IHdvcmtzIGlmIHRoZSBzdHlsZSB0YWcgaXNcbiAgICAgIC8vIGNyZWF0ZWQgYW5kIGluc2VydGVkIGR5bmFtaWNhbGx5LiBTbyB3ZSByZW1vdmUgdGhlIHNlcnZlciByZW5kZXJlZFxuICAgICAgLy8gc3R5bGVzIGFuZCBpbmplY3QgbmV3IG9uZXMuXG4gICAgICBzdHlsZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdHlsZUVsZW1lbnQpXG4gICAgfVxuICB9XG5cbiAgaWYgKGlzT2xkSUUpIHtcbiAgICAvLyB1c2Ugc2luZ2xldG9uIG1vZGUgZm9yIElFOS5cbiAgICB2YXIgc3R5bGVJbmRleCA9IHNpbmdsZXRvbkNvdW50ZXIrK1xuICAgIHN0eWxlRWxlbWVudCA9IHNpbmdsZXRvbkVsZW1lbnQgfHwgKHNpbmdsZXRvbkVsZW1lbnQgPSBjcmVhdGVTdHlsZUVsZW1lbnQoKSlcbiAgICB1cGRhdGUgPSBhcHBseVRvU2luZ2xldG9uVGFnLmJpbmQobnVsbCwgc3R5bGVFbGVtZW50LCBzdHlsZUluZGV4LCBmYWxzZSlcbiAgICByZW1vdmUgPSBhcHBseVRvU2luZ2xldG9uVGFnLmJpbmQobnVsbCwgc3R5bGVFbGVtZW50LCBzdHlsZUluZGV4LCB0cnVlKVxuICB9IGVsc2Uge1xuICAgIC8vIHVzZSBtdWx0aS1zdHlsZS10YWcgbW9kZSBpbiBhbGwgb3RoZXIgY2FzZXNcbiAgICBzdHlsZUVsZW1lbnQgPSBjcmVhdGVTdHlsZUVsZW1lbnQoKVxuICAgIHVwZGF0ZSA9IGFwcGx5VG9UYWcuYmluZChudWxsLCBzdHlsZUVsZW1lbnQpXG4gICAgcmVtb3ZlID0gZnVuY3Rpb24gKCkge1xuICAgICAgc3R5bGVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50KVxuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZShvYmopXG5cbiAgcmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZVN0eWxlIChuZXdPYmogLyogU3R5bGVPYmplY3RQYXJ0ICovKSB7XG4gICAgaWYgKG5ld09iaikge1xuICAgICAgaWYgKG5ld09iai5jc3MgPT09IG9iai5jc3MgJiZcbiAgICAgICAgICBuZXdPYmoubWVkaWEgPT09IG9iai5tZWRpYSAmJlxuICAgICAgICAgIG5ld09iai5zb3VyY2VNYXAgPT09IG9iai5zb3VyY2VNYXApIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICB1cGRhdGUob2JqID0gbmV3T2JqKVxuICAgIH0gZWxzZSB7XG4gICAgICByZW1vdmUoKVxuICAgIH1cbiAgfVxufVxuXG52YXIgcmVwbGFjZVRleHQgPSAoZnVuY3Rpb24gKCkge1xuICB2YXIgdGV4dFN0b3JlID0gW11cblxuICByZXR1cm4gZnVuY3Rpb24gKGluZGV4LCByZXBsYWNlbWVudCkge1xuICAgIHRleHRTdG9yZVtpbmRleF0gPSByZXBsYWNlbWVudFxuICAgIHJldHVybiB0ZXh0U3RvcmUuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJ1xcbicpXG4gIH1cbn0pKClcblxuZnVuY3Rpb24gYXBwbHlUb1NpbmdsZXRvblRhZyAoc3R5bGVFbGVtZW50LCBpbmRleCwgcmVtb3ZlLCBvYmopIHtcbiAgdmFyIGNzcyA9IHJlbW92ZSA/ICcnIDogb2JqLmNzc1xuXG4gIGlmIChzdHlsZUVsZW1lbnQuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0LmNzc1RleHQgPSByZXBsYWNlVGV4dChpbmRleCwgY3NzKVxuICB9IGVsc2Uge1xuICAgIHZhciBjc3NOb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKVxuICAgIHZhciBjaGlsZE5vZGVzID0gc3R5bGVFbGVtZW50LmNoaWxkTm9kZXNcbiAgICBpZiAoY2hpbGROb2Rlc1tpbmRleF0pIHN0eWxlRWxlbWVudC5yZW1vdmVDaGlsZChjaGlsZE5vZGVzW2luZGV4XSlcbiAgICBpZiAoY2hpbGROb2Rlcy5sZW5ndGgpIHtcbiAgICAgIHN0eWxlRWxlbWVudC5pbnNlcnRCZWZvcmUoY3NzTm9kZSwgY2hpbGROb2Rlc1tpbmRleF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHN0eWxlRWxlbWVudC5hcHBlbmRDaGlsZChjc3NOb2RlKVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBhcHBseVRvVGFnIChzdHlsZUVsZW1lbnQsIG9iaikge1xuICB2YXIgY3NzID0gb2JqLmNzc1xuICB2YXIgbWVkaWEgPSBvYmoubWVkaWFcbiAgdmFyIHNvdXJjZU1hcCA9IG9iai5zb3VyY2VNYXBcblxuICBpZiAobWVkaWEpIHtcbiAgICBzdHlsZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdtZWRpYScsIG1lZGlhKVxuICB9XG4gIGlmIChvcHRpb25zLnNzcklkKSB7XG4gICAgc3R5bGVFbGVtZW50LnNldEF0dHJpYnV0ZShzc3JJZEtleSwgb2JqLmlkKVxuICB9XG5cbiAgaWYgKHNvdXJjZU1hcCkge1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmNocm9tZS5jb20vZGV2dG9vbHMvZG9jcy9qYXZhc2NyaXB0LWRlYnVnZ2luZ1xuICAgIC8vIHRoaXMgbWFrZXMgc291cmNlIG1hcHMgaW5zaWRlIHN0eWxlIHRhZ3Mgd29yayBwcm9wZXJseSBpbiBDaHJvbWVcbiAgICBjc3MgKz0gJ1xcbi8qIyBzb3VyY2VVUkw9JyArIHNvdXJjZU1hcC5zb3VyY2VzWzBdICsgJyAqLydcbiAgICAvLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yNjYwMzg3NVxuICAgIGNzcyArPSAnXFxuLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCwnICsgYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKSArICcgKi8nXG4gIH1cblxuICBpZiAoc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZUVsZW1lbnQuc3R5bGVTaGVldC5jc3NUZXh0ID0gY3NzXG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKSB7XG4gICAgICBzdHlsZUVsZW1lbnQucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpXG4gICAgfVxuICAgIHN0eWxlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKVxuICB9XG59XG4iLCIvKipcbiAqIFRyYW5zbGF0ZXMgdGhlIGxpc3QgZm9ybWF0IHByb2R1Y2VkIGJ5IGNzcy1sb2FkZXIgaW50byBzb21ldGhpbmdcbiAqIGVhc2llciB0byBtYW5pcHVsYXRlLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBsaXN0VG9TdHlsZXMgKHBhcmVudElkLCBsaXN0KSB7XG4gIHZhciBzdHlsZXMgPSBbXVxuICB2YXIgbmV3U3R5bGVzID0ge31cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBsaXN0W2ldXG4gICAgdmFyIGlkID0gaXRlbVswXVxuICAgIHZhciBjc3MgPSBpdGVtWzFdXG4gICAgdmFyIG1lZGlhID0gaXRlbVsyXVxuICAgIHZhciBzb3VyY2VNYXAgPSBpdGVtWzNdXG4gICAgdmFyIHBhcnQgPSB7XG4gICAgICBpZDogcGFyZW50SWQgKyAnOicgKyBpLFxuICAgICAgY3NzOiBjc3MsXG4gICAgICBtZWRpYTogbWVkaWEsXG4gICAgICBzb3VyY2VNYXA6IHNvdXJjZU1hcFxuICAgIH1cbiAgICBpZiAoIW5ld1N0eWxlc1tpZF0pIHtcbiAgICAgIHN0eWxlcy5wdXNoKG5ld1N0eWxlc1tpZF0gPSB7IGlkOiBpZCwgcGFydHM6IFtwYXJ0XSB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBuZXdTdHlsZXNbaWRdLnBhcnRzLnB1c2gocGFydClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0eWxlc1xufVxuIiwiLyohXG4gKiBWdWUuanMgdjIuNi4xNFxuICogKGMpIDIwMTQtMjAyMSBFdmFuIFlvdVxuICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLlxuICovXG4vKiAgKi9cblxudmFyIGVtcHR5T2JqZWN0ID0gT2JqZWN0LmZyZWV6ZSh7fSk7XG5cbi8vIFRoZXNlIGhlbHBlcnMgcHJvZHVjZSBiZXR0ZXIgVk0gY29kZSBpbiBKUyBlbmdpbmVzIGR1ZSB0byB0aGVpclxuLy8gZXhwbGljaXRuZXNzIGFuZCBmdW5jdGlvbiBpbmxpbmluZy5cbmZ1bmN0aW9uIGlzVW5kZWYgKHYpIHtcbiAgcmV0dXJuIHYgPT09IHVuZGVmaW5lZCB8fCB2ID09PSBudWxsXG59XG5cbmZ1bmN0aW9uIGlzRGVmICh2KSB7XG4gIHJldHVybiB2ICE9PSB1bmRlZmluZWQgJiYgdiAhPT0gbnVsbFxufVxuXG5mdW5jdGlvbiBpc1RydWUgKHYpIHtcbiAgcmV0dXJuIHYgPT09IHRydWVcbn1cblxuZnVuY3Rpb24gaXNGYWxzZSAodikge1xuICByZXR1cm4gdiA9PT0gZmFsc2Vcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB2YWx1ZSBpcyBwcmltaXRpdmUuXG4gKi9cbmZ1bmN0aW9uIGlzUHJpbWl0aXZlICh2YWx1ZSkge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHxcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8XG4gICAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gICAgdHlwZW9mIHZhbHVlID09PSAnc3ltYm9sJyB8fFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nXG4gIClcbn1cblxuLyoqXG4gKiBRdWljayBvYmplY3QgY2hlY2sgLSB0aGlzIGlzIHByaW1hcmlseSB1c2VkIHRvIHRlbGxcbiAqIE9iamVjdHMgZnJvbSBwcmltaXRpdmUgdmFsdWVzIHdoZW4gd2Uga25vdyB0aGUgdmFsdWVcbiAqIGlzIGEgSlNPTi1jb21wbGlhbnQgdHlwZS5cbiAqL1xuZnVuY3Rpb24gaXNPYmplY3QgKG9iaikge1xuICByZXR1cm4gb2JqICE9PSBudWxsICYmIHR5cGVvZiBvYmogPT09ICdvYmplY3QnXG59XG5cbi8qKlxuICogR2V0IHRoZSByYXcgdHlwZSBzdHJpbmcgb2YgYSB2YWx1ZSwgZS5nLiwgW29iamVjdCBPYmplY3RdLlxuICovXG52YXIgX3RvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuZnVuY3Rpb24gdG9SYXdUeXBlICh2YWx1ZSkge1xuICByZXR1cm4gX3RvU3RyaW5nLmNhbGwodmFsdWUpLnNsaWNlKDgsIC0xKVxufVxuXG4vKipcbiAqIFN0cmljdCBvYmplY3QgdHlwZSBjaGVjay4gT25seSByZXR1cm5zIHRydWVcbiAqIGZvciBwbGFpbiBKYXZhU2NyaXB0IG9iamVjdHMuXG4gKi9cbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QgKG9iaikge1xuICByZXR1cm4gX3RvU3RyaW5nLmNhbGwob2JqKSA9PT0gJ1tvYmplY3QgT2JqZWN0XSdcbn1cblxuZnVuY3Rpb24gaXNSZWdFeHAgKHYpIHtcbiAgcmV0dXJuIF90b1N0cmluZy5jYWxsKHYpID09PSAnW29iamVjdCBSZWdFeHBdJ1xufVxuXG4vKipcbiAqIENoZWNrIGlmIHZhbCBpcyBhIHZhbGlkIGFycmF5IGluZGV4LlxuICovXG5mdW5jdGlvbiBpc1ZhbGlkQXJyYXlJbmRleCAodmFsKSB7XG4gIHZhciBuID0gcGFyc2VGbG9hdChTdHJpbmcodmFsKSk7XG4gIHJldHVybiBuID49IDAgJiYgTWF0aC5mbG9vcihuKSA9PT0gbiAmJiBpc0Zpbml0ZSh2YWwpXG59XG5cbmZ1bmN0aW9uIGlzUHJvbWlzZSAodmFsKSB7XG4gIHJldHVybiAoXG4gICAgaXNEZWYodmFsKSAmJlxuICAgIHR5cGVvZiB2YWwudGhlbiA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIHR5cGVvZiB2YWwuY2F0Y2ggPT09ICdmdW5jdGlvbidcbiAgKVxufVxuXG4vKipcbiAqIENvbnZlcnQgYSB2YWx1ZSB0byBhIHN0cmluZyB0aGF0IGlzIGFjdHVhbGx5IHJlbmRlcmVkLlxuICovXG5mdW5jdGlvbiB0b1N0cmluZyAodmFsKSB7XG4gIHJldHVybiB2YWwgPT0gbnVsbFxuICAgID8gJydcbiAgICA6IEFycmF5LmlzQXJyYXkodmFsKSB8fCAoaXNQbGFpbk9iamVjdCh2YWwpICYmIHZhbC50b1N0cmluZyA9PT0gX3RvU3RyaW5nKVxuICAgICAgPyBKU09OLnN0cmluZ2lmeSh2YWwsIG51bGwsIDIpXG4gICAgICA6IFN0cmluZyh2YWwpXG59XG5cbi8qKlxuICogQ29udmVydCBhbiBpbnB1dCB2YWx1ZSB0byBhIG51bWJlciBmb3IgcGVyc2lzdGVuY2UuXG4gKiBJZiB0aGUgY29udmVyc2lvbiBmYWlscywgcmV0dXJuIG9yaWdpbmFsIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gdG9OdW1iZXIgKHZhbCkge1xuICB2YXIgbiA9IHBhcnNlRmxvYXQodmFsKTtcbiAgcmV0dXJuIGlzTmFOKG4pID8gdmFsIDogblxufVxuXG4vKipcbiAqIE1ha2UgYSBtYXAgYW5kIHJldHVybiBhIGZ1bmN0aW9uIGZvciBjaGVja2luZyBpZiBhIGtleVxuICogaXMgaW4gdGhhdCBtYXAuXG4gKi9cbmZ1bmN0aW9uIG1ha2VNYXAgKFxuICBzdHIsXG4gIGV4cGVjdHNMb3dlckNhc2Vcbikge1xuICB2YXIgbWFwID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgdmFyIGxpc3QgPSBzdHIuc3BsaXQoJywnKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgbWFwW2xpc3RbaV1dID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZXhwZWN0c0xvd2VyQ2FzZVxuICAgID8gZnVuY3Rpb24gKHZhbCkgeyByZXR1cm4gbWFwW3ZhbC50b0xvd2VyQ2FzZSgpXTsgfVxuICAgIDogZnVuY3Rpb24gKHZhbCkgeyByZXR1cm4gbWFwW3ZhbF07IH1cbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIHRhZyBpcyBhIGJ1aWx0LWluIHRhZy5cbiAqL1xudmFyIGlzQnVpbHRJblRhZyA9IG1ha2VNYXAoJ3Nsb3QsY29tcG9uZW50JywgdHJ1ZSk7XG5cbi8qKlxuICogQ2hlY2sgaWYgYW4gYXR0cmlidXRlIGlzIGEgcmVzZXJ2ZWQgYXR0cmlidXRlLlxuICovXG52YXIgaXNSZXNlcnZlZEF0dHJpYnV0ZSA9IG1ha2VNYXAoJ2tleSxyZWYsc2xvdCxzbG90LXNjb3BlLGlzJyk7XG5cbi8qKlxuICogUmVtb3ZlIGFuIGl0ZW0gZnJvbSBhbiBhcnJheS5cbiAqL1xuZnVuY3Rpb24gcmVtb3ZlIChhcnIsIGl0ZW0pIHtcbiAgaWYgKGFyci5sZW5ndGgpIHtcbiAgICB2YXIgaW5kZXggPSBhcnIuaW5kZXhPZihpdGVtKTtcbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgcmV0dXJuIGFyci5zcGxpY2UoaW5kZXgsIDEpXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciBhbiBvYmplY3QgaGFzIHRoZSBwcm9wZXJ0eS5cbiAqL1xudmFyIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtcbmZ1bmN0aW9uIGhhc093biAob2JqLCBrZXkpIHtcbiAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpXG59XG5cbi8qKlxuICogQ3JlYXRlIGEgY2FjaGVkIHZlcnNpb24gb2YgYSBwdXJlIGZ1bmN0aW9uLlxuICovXG5mdW5jdGlvbiBjYWNoZWQgKGZuKSB7XG4gIHZhciBjYWNoZSA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIHJldHVybiAoZnVuY3Rpb24gY2FjaGVkRm4gKHN0cikge1xuICAgIHZhciBoaXQgPSBjYWNoZVtzdHJdO1xuICAgIHJldHVybiBoaXQgfHwgKGNhY2hlW3N0cl0gPSBmbihzdHIpKVxuICB9KVxufVxuXG4vKipcbiAqIENhbWVsaXplIGEgaHlwaGVuLWRlbGltaXRlZCBzdHJpbmcuXG4gKi9cbnZhciBjYW1lbGl6ZVJFID0gLy0oXFx3KS9nO1xudmFyIGNhbWVsaXplID0gY2FjaGVkKGZ1bmN0aW9uIChzdHIpIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKGNhbWVsaXplUkUsIGZ1bmN0aW9uIChfLCBjKSB7IHJldHVybiBjID8gYy50b1VwcGVyQ2FzZSgpIDogJyc7IH0pXG59KTtcblxuLyoqXG4gKiBDYXBpdGFsaXplIGEgc3RyaW5nLlxuICovXG52YXIgY2FwaXRhbGl6ZSA9IGNhY2hlZChmdW5jdGlvbiAoc3RyKSB7XG4gIHJldHVybiBzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSlcbn0pO1xuXG4vKipcbiAqIEh5cGhlbmF0ZSBhIGNhbWVsQ2FzZSBzdHJpbmcuXG4gKi9cbnZhciBoeXBoZW5hdGVSRSA9IC9cXEIoW0EtWl0pL2c7XG52YXIgaHlwaGVuYXRlID0gY2FjaGVkKGZ1bmN0aW9uIChzdHIpIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKGh5cGhlbmF0ZVJFLCAnLSQxJykudG9Mb3dlckNhc2UoKVxufSk7XG5cbi8qKlxuICogU2ltcGxlIGJpbmQgcG9seWZpbGwgZm9yIGVudmlyb25tZW50cyB0aGF0IGRvIG5vdCBzdXBwb3J0IGl0LFxuICogZS5nLiwgUGhhbnRvbUpTIDEueC4gVGVjaG5pY2FsbHksIHdlIGRvbid0IG5lZWQgdGhpcyBhbnltb3JlXG4gKiBzaW5jZSBuYXRpdmUgYmluZCBpcyBub3cgcGVyZm9ybWFudCBlbm91Z2ggaW4gbW9zdCBicm93c2Vycy5cbiAqIEJ1dCByZW1vdmluZyBpdCB3b3VsZCBtZWFuIGJyZWFraW5nIGNvZGUgdGhhdCB3YXMgYWJsZSB0byBydW4gaW5cbiAqIFBoYW50b21KUyAxLngsIHNvIHRoaXMgbXVzdCBiZSBrZXB0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICovXG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5mdW5jdGlvbiBwb2x5ZmlsbEJpbmQgKGZuLCBjdHgpIHtcbiAgZnVuY3Rpb24gYm91bmRGbiAoYSkge1xuICAgIHZhciBsID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICByZXR1cm4gbFxuICAgICAgPyBsID4gMVxuICAgICAgICA/IGZuLmFwcGx5KGN0eCwgYXJndW1lbnRzKVxuICAgICAgICA6IGZuLmNhbGwoY3R4LCBhKVxuICAgICAgOiBmbi5jYWxsKGN0eClcbiAgfVxuXG4gIGJvdW5kRm4uX2xlbmd0aCA9IGZuLmxlbmd0aDtcbiAgcmV0dXJuIGJvdW5kRm5cbn1cblxuZnVuY3Rpb24gbmF0aXZlQmluZCAoZm4sIGN0eCkge1xuICByZXR1cm4gZm4uYmluZChjdHgpXG59XG5cbnZhciBiaW5kID0gRnVuY3Rpb24ucHJvdG90eXBlLmJpbmRcbiAgPyBuYXRpdmVCaW5kXG4gIDogcG9seWZpbGxCaW5kO1xuXG4vKipcbiAqIENvbnZlcnQgYW4gQXJyYXktbGlrZSBvYmplY3QgdG8gYSByZWFsIEFycmF5LlxuICovXG5mdW5jdGlvbiB0b0FycmF5IChsaXN0LCBzdGFydCkge1xuICBzdGFydCA9IHN0YXJ0IHx8IDA7XG4gIHZhciBpID0gbGlzdC5sZW5ndGggLSBzdGFydDtcbiAgdmFyIHJldCA9IG5ldyBBcnJheShpKTtcbiAgd2hpbGUgKGktLSkge1xuICAgIHJldFtpXSA9IGxpc3RbaSArIHN0YXJ0XTtcbiAgfVxuICByZXR1cm4gcmV0XG59XG5cbi8qKlxuICogTWl4IHByb3BlcnRpZXMgaW50byB0YXJnZXQgb2JqZWN0LlxuICovXG5mdW5jdGlvbiBleHRlbmQgKHRvLCBfZnJvbSkge1xuICBmb3IgKHZhciBrZXkgaW4gX2Zyb20pIHtcbiAgICB0b1trZXldID0gX2Zyb21ba2V5XTtcbiAgfVxuICByZXR1cm4gdG9cbn1cblxuLyoqXG4gKiBNZXJnZSBhbiBBcnJheSBvZiBPYmplY3RzIGludG8gYSBzaW5nbGUgT2JqZWN0LlxuICovXG5mdW5jdGlvbiB0b09iamVjdCAoYXJyKSB7XG4gIHZhciByZXMgPSB7fTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoYXJyW2ldKSB7XG4gICAgICBleHRlbmQocmVzLCBhcnJbaV0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG5cbi8qKlxuICogUGVyZm9ybSBubyBvcGVyYXRpb24uXG4gKiBTdHViYmluZyBhcmdzIHRvIG1ha2UgRmxvdyBoYXBweSB3aXRob3V0IGxlYXZpbmcgdXNlbGVzcyB0cmFuc3BpbGVkIGNvZGVcbiAqIHdpdGggLi4ucmVzdCAoaHR0cHM6Ly9mbG93Lm9yZy9ibG9nLzIwMTcvMDUvMDcvU3RyaWN0LUZ1bmN0aW9uLUNhbGwtQXJpdHkvKS5cbiAqL1xuZnVuY3Rpb24gbm9vcCAoYSwgYiwgYykge31cblxuLyoqXG4gKiBBbHdheXMgcmV0dXJuIGZhbHNlLlxuICovXG52YXIgbm8gPSBmdW5jdGlvbiAoYSwgYiwgYykgeyByZXR1cm4gZmFsc2U7IH07XG5cbi8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLXZhcnMgKi9cblxuLyoqXG4gKiBSZXR1cm4gdGhlIHNhbWUgdmFsdWUuXG4gKi9cbnZhciBpZGVudGl0eSA9IGZ1bmN0aW9uIChfKSB7IHJldHVybiBfOyB9O1xuXG4vKipcbiAqIENoZWNrIGlmIHR3byB2YWx1ZXMgYXJlIGxvb3NlbHkgZXF1YWwgLSB0aGF0IGlzLFxuICogaWYgdGhleSBhcmUgcGxhaW4gb2JqZWN0cywgZG8gdGhleSBoYXZlIHRoZSBzYW1lIHNoYXBlP1xuICovXG5mdW5jdGlvbiBsb29zZUVxdWFsIChhLCBiKSB7XG4gIGlmIChhID09PSBiKSB7IHJldHVybiB0cnVlIH1cbiAgdmFyIGlzT2JqZWN0QSA9IGlzT2JqZWN0KGEpO1xuICB2YXIgaXNPYmplY3RCID0gaXNPYmplY3QoYik7XG4gIGlmIChpc09iamVjdEEgJiYgaXNPYmplY3RCKSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBpc0FycmF5QSA9IEFycmF5LmlzQXJyYXkoYSk7XG4gICAgICB2YXIgaXNBcnJheUIgPSBBcnJheS5pc0FycmF5KGIpO1xuICAgICAgaWYgKGlzQXJyYXlBICYmIGlzQXJyYXlCKSB7XG4gICAgICAgIHJldHVybiBhLmxlbmd0aCA9PT0gYi5sZW5ndGggJiYgYS5ldmVyeShmdW5jdGlvbiAoZSwgaSkge1xuICAgICAgICAgIHJldHVybiBsb29zZUVxdWFsKGUsIGJbaV0pXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKGEgaW5zdGFuY2VvZiBEYXRlICYmIGIgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIHJldHVybiBhLmdldFRpbWUoKSA9PT0gYi5nZXRUaW1lKClcbiAgICAgIH0gZWxzZSBpZiAoIWlzQXJyYXlBICYmICFpc0FycmF5Qikge1xuICAgICAgICB2YXIga2V5c0EgPSBPYmplY3Qua2V5cyhhKTtcbiAgICAgICAgdmFyIGtleXNCID0gT2JqZWN0LmtleXMoYik7XG4gICAgICAgIHJldHVybiBrZXlzQS5sZW5ndGggPT09IGtleXNCLmxlbmd0aCAmJiBrZXlzQS5ldmVyeShmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgICAgcmV0dXJuIGxvb3NlRXF1YWwoYVtrZXldLCBiW2tleV0pXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9IGVsc2UgaWYgKCFpc09iamVjdEEgJiYgIWlzT2JqZWN0Qikge1xuICAgIHJldHVybiBTdHJpbmcoYSkgPT09IFN0cmluZyhiKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBmaXJzdCBpbmRleCBhdCB3aGljaCBhIGxvb3NlbHkgZXF1YWwgdmFsdWUgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgYXJyYXkgKGlmIHZhbHVlIGlzIGEgcGxhaW4gb2JqZWN0LCB0aGUgYXJyYXkgbXVzdFxuICogY29udGFpbiBhbiBvYmplY3Qgb2YgdGhlIHNhbWUgc2hhcGUpLCBvciAtMSBpZiBpdCBpcyBub3QgcHJlc2VudC5cbiAqL1xuZnVuY3Rpb24gbG9vc2VJbmRleE9mIChhcnIsIHZhbCkge1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgIGlmIChsb29zZUVxdWFsKGFycltpXSwgdmFsKSkgeyByZXR1cm4gaSB9XG4gIH1cbiAgcmV0dXJuIC0xXG59XG5cbi8qKlxuICogRW5zdXJlIGEgZnVuY3Rpb24gaXMgY2FsbGVkIG9ubHkgb25jZS5cbiAqL1xuZnVuY3Rpb24gb25jZSAoZm4pIHtcbiAgdmFyIGNhbGxlZCA9IGZhbHNlO1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIGlmICghY2FsbGVkKSB7XG4gICAgICBjYWxsZWQgPSB0cnVlO1xuICAgICAgZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIFNTUl9BVFRSID0gJ2RhdGEtc2VydmVyLXJlbmRlcmVkJztcblxudmFyIEFTU0VUX1RZUEVTID0gW1xuICAnY29tcG9uZW50JyxcbiAgJ2RpcmVjdGl2ZScsXG4gICdmaWx0ZXInXG5dO1xuXG52YXIgTElGRUNZQ0xFX0hPT0tTID0gW1xuICAnYmVmb3JlQ3JlYXRlJyxcbiAgJ2NyZWF0ZWQnLFxuICAnYmVmb3JlTW91bnQnLFxuICAnbW91bnRlZCcsXG4gICdiZWZvcmVVcGRhdGUnLFxuICAndXBkYXRlZCcsXG4gICdiZWZvcmVEZXN0cm95JyxcbiAgJ2Rlc3Ryb3llZCcsXG4gICdhY3RpdmF0ZWQnLFxuICAnZGVhY3RpdmF0ZWQnLFxuICAnZXJyb3JDYXB0dXJlZCcsXG4gICdzZXJ2ZXJQcmVmZXRjaCdcbl07XG5cbi8qICAqL1xuXG5cblxudmFyIGNvbmZpZyA9ICh7XG4gIC8qKlxuICAgKiBPcHRpb24gbWVyZ2Ugc3RyYXRlZ2llcyAodXNlZCBpbiBjb3JlL3V0aWwvb3B0aW9ucylcbiAgICovXG4gIC8vICRmbG93LWRpc2FibGUtbGluZVxuICBvcHRpb25NZXJnZVN0cmF0ZWdpZXM6IE9iamVjdC5jcmVhdGUobnVsbCksXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc3VwcHJlc3Mgd2FybmluZ3MuXG4gICAqL1xuICBzaWxlbnQ6IGZhbHNlLFxuXG4gIC8qKlxuICAgKiBTaG93IHByb2R1Y3Rpb24gbW9kZSB0aXAgbWVzc2FnZSBvbiBib290P1xuICAgKi9cbiAgcHJvZHVjdGlvblRpcDogcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyxcblxuICAvKipcbiAgICogV2hldGhlciB0byBlbmFibGUgZGV2dG9vbHNcbiAgICovXG4gIGRldnRvb2xzOiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nLFxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJlY29yZCBwZXJmXG4gICAqL1xuICBwZXJmb3JtYW5jZTogZmFsc2UsXG5cbiAgLyoqXG4gICAqIEVycm9yIGhhbmRsZXIgZm9yIHdhdGNoZXIgZXJyb3JzXG4gICAqL1xuICBlcnJvckhhbmRsZXI6IG51bGwsXG5cbiAgLyoqXG4gICAqIFdhcm4gaGFuZGxlciBmb3Igd2F0Y2hlciB3YXJuc1xuICAgKi9cbiAgd2FybkhhbmRsZXI6IG51bGwsXG5cbiAgLyoqXG4gICAqIElnbm9yZSBjZXJ0YWluIGN1c3RvbSBlbGVtZW50c1xuICAgKi9cbiAgaWdub3JlZEVsZW1lbnRzOiBbXSxcblxuICAvKipcbiAgICogQ3VzdG9tIHVzZXIga2V5IGFsaWFzZXMgZm9yIHYtb25cbiAgICovXG4gIC8vICRmbG93LWRpc2FibGUtbGluZVxuICBrZXlDb2RlczogT2JqZWN0LmNyZWF0ZShudWxsKSxcblxuICAvKipcbiAgICogQ2hlY2sgaWYgYSB0YWcgaXMgcmVzZXJ2ZWQgc28gdGhhdCBpdCBjYW5ub3QgYmUgcmVnaXN0ZXJlZCBhcyBhXG4gICAqIGNvbXBvbmVudC4gVGhpcyBpcyBwbGF0Zm9ybS1kZXBlbmRlbnQgYW5kIG1heSBiZSBvdmVyd3JpdHRlbi5cbiAgICovXG4gIGlzUmVzZXJ2ZWRUYWc6IG5vLFxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhbiBhdHRyaWJ1dGUgaXMgcmVzZXJ2ZWQgc28gdGhhdCBpdCBjYW5ub3QgYmUgdXNlZCBhcyBhIGNvbXBvbmVudFxuICAgKiBwcm9wLiBUaGlzIGlzIHBsYXRmb3JtLWRlcGVuZGVudCBhbmQgbWF5IGJlIG92ZXJ3cml0dGVuLlxuICAgKi9cbiAgaXNSZXNlcnZlZEF0dHI6IG5vLFxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIHRhZyBpcyBhbiB1bmtub3duIGVsZW1lbnQuXG4gICAqIFBsYXRmb3JtLWRlcGVuZGVudC5cbiAgICovXG4gIGlzVW5rbm93bkVsZW1lbnQ6IG5vLFxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG5hbWVzcGFjZSBvZiBhbiBlbGVtZW50XG4gICAqL1xuICBnZXRUYWdOYW1lc3BhY2U6IG5vb3AsXG5cbiAgLyoqXG4gICAqIFBhcnNlIHRoZSByZWFsIHRhZyBuYW1lIGZvciB0aGUgc3BlY2lmaWMgcGxhdGZvcm0uXG4gICAqL1xuICBwYXJzZVBsYXRmb3JtVGFnTmFtZTogaWRlbnRpdHksXG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIGF0dHJpYnV0ZSBtdXN0IGJlIGJvdW5kIHVzaW5nIHByb3BlcnR5LCBlLmcuIHZhbHVlXG4gICAqIFBsYXRmb3JtLWRlcGVuZGVudC5cbiAgICovXG4gIG11c3RVc2VQcm9wOiBubyxcblxuICAvKipcbiAgICogUGVyZm9ybSB1cGRhdGVzIGFzeW5jaHJvbm91c2x5LiBJbnRlbmRlZCB0byBiZSB1c2VkIGJ5IFZ1ZSBUZXN0IFV0aWxzXG4gICAqIFRoaXMgd2lsbCBzaWduaWZpY2FudGx5IHJlZHVjZSBwZXJmb3JtYW5jZSBpZiBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBhc3luYzogdHJ1ZSxcblxuICAvKipcbiAgICogRXhwb3NlZCBmb3IgbGVnYWN5IHJlYXNvbnNcbiAgICovXG4gIF9saWZlY3ljbGVIb29rczogTElGRUNZQ0xFX0hPT0tTXG59KTtcblxuLyogICovXG5cbi8qKlxuICogdW5pY29kZSBsZXR0ZXJzIHVzZWQgZm9yIHBhcnNpbmcgaHRtbCB0YWdzLCBjb21wb25lbnQgbmFtZXMgYW5kIHByb3BlcnR5IHBhdGhzLlxuICogdXNpbmcgaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1My9zZW1hbnRpY3Mtc2NyaXB0aW5nLmh0bWwjcG90ZW50aWFsY3VzdG9tZWxlbWVudG5hbWVcbiAqIHNraXBwaW5nIFxcdTEwMDAwLVxcdUVGRkZGIGR1ZSB0byBpdCBmcmVlemluZyB1cCBQaGFudG9tSlNcbiAqL1xudmFyIHVuaWNvZGVSZWdFeHAgPSAvYS16QS1aXFx1MDBCN1xcdTAwQzAtXFx1MDBENlxcdTAwRDgtXFx1MDBGNlxcdTAwRjgtXFx1MDM3RFxcdTAzN0YtXFx1MUZGRlxcdTIwMEMtXFx1MjAwRFxcdTIwM0YtXFx1MjA0MFxcdTIwNzAtXFx1MjE4RlxcdTJDMDAtXFx1MkZFRlxcdTMwMDEtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZGRC87XG5cbi8qKlxuICogQ2hlY2sgaWYgYSBzdHJpbmcgc3RhcnRzIHdpdGggJCBvciBfXG4gKi9cbmZ1bmN0aW9uIGlzUmVzZXJ2ZWQgKHN0cikge1xuICB2YXIgYyA9IChzdHIgKyAnJykuY2hhckNvZGVBdCgwKTtcbiAgcmV0dXJuIGMgPT09IDB4MjQgfHwgYyA9PT0gMHg1RlxufVxuXG4vKipcbiAqIERlZmluZSBhIHByb3BlcnR5LlxuICovXG5mdW5jdGlvbiBkZWYgKG9iaiwga2V5LCB2YWwsIGVudW1lcmFibGUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgdmFsdWU6IHZhbCxcbiAgICBlbnVtZXJhYmxlOiAhIWVudW1lcmFibGUsXG4gICAgd3JpdGFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pO1xufVxuXG4vKipcbiAqIFBhcnNlIHNpbXBsZSBwYXRoLlxuICovXG52YXIgYmFpbFJFID0gbmV3IFJlZ0V4cCgoXCJbXlwiICsgKHVuaWNvZGVSZWdFeHAuc291cmNlKSArIFwiLiRfXFxcXGRdXCIpKTtcbmZ1bmN0aW9uIHBhcnNlUGF0aCAocGF0aCkge1xuICBpZiAoYmFpbFJFLnRlc3QocGF0aCkpIHtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIgc2VnbWVudHMgPSBwYXRoLnNwbGl0KCcuJyk7XG4gIHJldHVybiBmdW5jdGlvbiAob2JqKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWdtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCFvYmopIHsgcmV0dXJuIH1cbiAgICAgIG9iaiA9IG9ialtzZWdtZW50c1tpXV07XG4gICAgfVxuICAgIHJldHVybiBvYmpcbiAgfVxufVxuXG4vKiAgKi9cblxuLy8gY2FuIHdlIHVzZSBfX3Byb3RvX18/XG52YXIgaGFzUHJvdG8gPSAnX19wcm90b19fJyBpbiB7fTtcblxuLy8gQnJvd3NlciBlbnZpcm9ubWVudCBzbmlmZmluZ1xudmFyIGluQnJvd3NlciA9IHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnO1xudmFyIGluV2VleCA9IHR5cGVvZiBXWEVudmlyb25tZW50ICE9PSAndW5kZWZpbmVkJyAmJiAhIVdYRW52aXJvbm1lbnQucGxhdGZvcm07XG52YXIgd2VleFBsYXRmb3JtID0gaW5XZWV4ICYmIFdYRW52aXJvbm1lbnQucGxhdGZvcm0udG9Mb3dlckNhc2UoKTtcbnZhciBVQSA9IGluQnJvd3NlciAmJiB3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO1xudmFyIGlzSUUgPSBVQSAmJiAvbXNpZXx0cmlkZW50Ly50ZXN0KFVBKTtcbnZhciBpc0lFOSA9IFVBICYmIFVBLmluZGV4T2YoJ21zaWUgOS4wJykgPiAwO1xudmFyIGlzRWRnZSA9IFVBICYmIFVBLmluZGV4T2YoJ2VkZ2UvJykgPiAwO1xudmFyIGlzQW5kcm9pZCA9IChVQSAmJiBVQS5pbmRleE9mKCdhbmRyb2lkJykgPiAwKSB8fCAod2VleFBsYXRmb3JtID09PSAnYW5kcm9pZCcpO1xudmFyIGlzSU9TID0gKFVBICYmIC9pcGhvbmV8aXBhZHxpcG9kfGlvcy8udGVzdChVQSkpIHx8ICh3ZWV4UGxhdGZvcm0gPT09ICdpb3MnKTtcbnZhciBpc0Nocm9tZSA9IFVBICYmIC9jaHJvbWVcXC9cXGQrLy50ZXN0KFVBKSAmJiAhaXNFZGdlO1xudmFyIGlzUGhhbnRvbUpTID0gVUEgJiYgL3BoYW50b21qcy8udGVzdChVQSk7XG52YXIgaXNGRiA9IFVBICYmIFVBLm1hdGNoKC9maXJlZm94XFwvKFxcZCspLyk7XG5cbi8vIEZpcmVmb3ggaGFzIGEgXCJ3YXRjaFwiIGZ1bmN0aW9uIG9uIE9iamVjdC5wcm90b3R5cGUuLi5cbnZhciBuYXRpdmVXYXRjaCA9ICh7fSkud2F0Y2g7XG5cbnZhciBzdXBwb3J0c1Bhc3NpdmUgPSBmYWxzZTtcbmlmIChpbkJyb3dzZXIpIHtcbiAgdHJ5IHtcbiAgICB2YXIgb3B0cyA9IHt9O1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvcHRzLCAncGFzc2l2ZScsICh7XG4gICAgICBnZXQ6IGZ1bmN0aW9uIGdldCAoKSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIHN1cHBvcnRzUGFzc2l2ZSA9IHRydWU7XG4gICAgICB9XG4gICAgfSkpOyAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svZmxvdy9pc3N1ZXMvMjg1XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Rlc3QtcGFzc2l2ZScsIG51bGwsIG9wdHMpO1xuICB9IGNhdGNoIChlKSB7fVxufVxuXG4vLyB0aGlzIG5lZWRzIHRvIGJlIGxhenktZXZhbGVkIGJlY2F1c2UgdnVlIG1heSBiZSByZXF1aXJlZCBiZWZvcmVcbi8vIHZ1ZS1zZXJ2ZXItcmVuZGVyZXIgY2FuIHNldCBWVUVfRU5WXG52YXIgX2lzU2VydmVyO1xudmFyIGlzU2VydmVyUmVuZGVyaW5nID0gZnVuY3Rpb24gKCkge1xuICBpZiAoX2lzU2VydmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIWluQnJvd3NlciAmJiAhaW5XZWV4ICYmIHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAvLyBkZXRlY3QgcHJlc2VuY2Ugb2YgdnVlLXNlcnZlci1yZW5kZXJlciBhbmQgYXZvaWRcbiAgICAgIC8vIFdlYnBhY2sgc2hpbW1pbmcgdGhlIHByb2Nlc3NcbiAgICAgIF9pc1NlcnZlciA9IGdsb2JhbFsncHJvY2VzcyddICYmIGdsb2JhbFsncHJvY2VzcyddLmVudi5WVUVfRU5WID09PSAnc2VydmVyJztcbiAgICB9IGVsc2Uge1xuICAgICAgX2lzU2VydmVyID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiBfaXNTZXJ2ZXJcbn07XG5cbi8vIGRldGVjdCBkZXZ0b29sc1xudmFyIGRldnRvb2xzID0gaW5Ccm93c2VyICYmIHdpbmRvdy5fX1ZVRV9ERVZUT09MU19HTE9CQUxfSE9PS19fO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuZnVuY3Rpb24gaXNOYXRpdmUgKEN0b3IpIHtcbiAgcmV0dXJuIHR5cGVvZiBDdG9yID09PSAnZnVuY3Rpb24nICYmIC9uYXRpdmUgY29kZS8udGVzdChDdG9yLnRvU3RyaW5nKCkpXG59XG5cbnZhciBoYXNTeW1ib2wgPVxuICB0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBpc05hdGl2ZShTeW1ib2wpICYmXG4gIHR5cGVvZiBSZWZsZWN0ICE9PSAndW5kZWZpbmVkJyAmJiBpc05hdGl2ZShSZWZsZWN0Lm93bktleXMpO1xuXG52YXIgX1NldDtcbi8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqLyAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbmlmICh0eXBlb2YgU2V0ICE9PSAndW5kZWZpbmVkJyAmJiBpc05hdGl2ZShTZXQpKSB7XG4gIC8vIHVzZSBuYXRpdmUgU2V0IHdoZW4gYXZhaWxhYmxlLlxuICBfU2V0ID0gU2V0O1xufSBlbHNlIHtcbiAgLy8gYSBub24tc3RhbmRhcmQgU2V0IHBvbHlmaWxsIHRoYXQgb25seSB3b3JrcyB3aXRoIHByaW1pdGl2ZSBrZXlzLlxuICBfU2V0ID0gLypAX19QVVJFX18qLyhmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gU2V0ICgpIHtcbiAgICAgIHRoaXMuc2V0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB9XG4gICAgU2V0LnByb3RvdHlwZS5oYXMgPSBmdW5jdGlvbiBoYXMgKGtleSkge1xuICAgICAgcmV0dXJuIHRoaXMuc2V0W2tleV0gPT09IHRydWVcbiAgICB9O1xuICAgIFNldC5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24gYWRkIChrZXkpIHtcbiAgICAgIHRoaXMuc2V0W2tleV0gPSB0cnVlO1xuICAgIH07XG4gICAgU2V0LnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uIGNsZWFyICgpIHtcbiAgICAgIHRoaXMuc2V0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFNldDtcbiAgfSgpKTtcbn1cblxuLyogICovXG5cbnZhciB3YXJuID0gbm9vcDtcbnZhciB0aXAgPSBub29wO1xudmFyIGdlbmVyYXRlQ29tcG9uZW50VHJhY2UgPSAobm9vcCk7IC8vIHdvcmsgYXJvdW5kIGZsb3cgY2hlY2tcbnZhciBmb3JtYXRDb21wb25lbnROYW1lID0gKG5vb3ApO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICB2YXIgaGFzQ29uc29sZSA9IHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJztcbiAgdmFyIGNsYXNzaWZ5UkUgPSAvKD86XnxbLV9dKShcXHcpL2c7XG4gIHZhciBjbGFzc2lmeSA9IGZ1bmN0aW9uIChzdHIpIHsgcmV0dXJuIHN0clxuICAgIC5yZXBsYWNlKGNsYXNzaWZ5UkUsIGZ1bmN0aW9uIChjKSB7IHJldHVybiBjLnRvVXBwZXJDYXNlKCk7IH0pXG4gICAgLnJlcGxhY2UoL1stX10vZywgJycpOyB9O1xuXG4gIHdhcm4gPSBmdW5jdGlvbiAobXNnLCB2bSkge1xuICAgIHZhciB0cmFjZSA9IHZtID8gZ2VuZXJhdGVDb21wb25lbnRUcmFjZSh2bSkgOiAnJztcblxuICAgIGlmIChjb25maWcud2FybkhhbmRsZXIpIHtcbiAgICAgIGNvbmZpZy53YXJuSGFuZGxlci5jYWxsKG51bGwsIG1zZywgdm0sIHRyYWNlKTtcbiAgICB9IGVsc2UgaWYgKGhhc0NvbnNvbGUgJiYgKCFjb25maWcuc2lsZW50KSkge1xuICAgICAgY29uc29sZS5lcnJvcigoXCJbVnVlIHdhcm5dOiBcIiArIG1zZyArIHRyYWNlKSk7XG4gICAgfVxuICB9O1xuXG4gIHRpcCA9IGZ1bmN0aW9uIChtc2csIHZtKSB7XG4gICAgaWYgKGhhc0NvbnNvbGUgJiYgKCFjb25maWcuc2lsZW50KSkge1xuICAgICAgY29uc29sZS53YXJuKFwiW1Z1ZSB0aXBdOiBcIiArIG1zZyArIChcbiAgICAgICAgdm0gPyBnZW5lcmF0ZUNvbXBvbmVudFRyYWNlKHZtKSA6ICcnXG4gICAgICApKTtcbiAgICB9XG4gIH07XG5cbiAgZm9ybWF0Q29tcG9uZW50TmFtZSA9IGZ1bmN0aW9uICh2bSwgaW5jbHVkZUZpbGUpIHtcbiAgICBpZiAodm0uJHJvb3QgPT09IHZtKSB7XG4gICAgICByZXR1cm4gJzxSb290PidcbiAgICB9XG4gICAgdmFyIG9wdGlvbnMgPSB0eXBlb2Ygdm0gPT09ICdmdW5jdGlvbicgJiYgdm0uY2lkICE9IG51bGxcbiAgICAgID8gdm0ub3B0aW9uc1xuICAgICAgOiB2bS5faXNWdWVcbiAgICAgICAgPyB2bS4kb3B0aW9ucyB8fCB2bS5jb25zdHJ1Y3Rvci5vcHRpb25zXG4gICAgICAgIDogdm07XG4gICAgdmFyIG5hbWUgPSBvcHRpb25zLm5hbWUgfHwgb3B0aW9ucy5fY29tcG9uZW50VGFnO1xuICAgIHZhciBmaWxlID0gb3B0aW9ucy5fX2ZpbGU7XG4gICAgaWYgKCFuYW1lICYmIGZpbGUpIHtcbiAgICAgIHZhciBtYXRjaCA9IGZpbGUubWF0Y2goLyhbXi9cXFxcXSspXFwudnVlJC8pO1xuICAgICAgbmFtZSA9IG1hdGNoICYmIG1hdGNoWzFdO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAobmFtZSA/IChcIjxcIiArIChjbGFzc2lmeShuYW1lKSkgKyBcIj5cIikgOiBcIjxBbm9ueW1vdXM+XCIpICtcbiAgICAgIChmaWxlICYmIGluY2x1ZGVGaWxlICE9PSBmYWxzZSA/IChcIiBhdCBcIiArIGZpbGUpIDogJycpXG4gICAgKVxuICB9O1xuXG4gIHZhciByZXBlYXQgPSBmdW5jdGlvbiAoc3RyLCBuKSB7XG4gICAgdmFyIHJlcyA9ICcnO1xuICAgIHdoaWxlIChuKSB7XG4gICAgICBpZiAobiAlIDIgPT09IDEpIHsgcmVzICs9IHN0cjsgfVxuICAgICAgaWYgKG4gPiAxKSB7IHN0ciArPSBzdHI7IH1cbiAgICAgIG4gPj49IDE7XG4gICAgfVxuICAgIHJldHVybiByZXNcbiAgfTtcblxuICBnZW5lcmF0ZUNvbXBvbmVudFRyYWNlID0gZnVuY3Rpb24gKHZtKSB7XG4gICAgaWYgKHZtLl9pc1Z1ZSAmJiB2bS4kcGFyZW50KSB7XG4gICAgICB2YXIgdHJlZSA9IFtdO1xuICAgICAgdmFyIGN1cnJlbnRSZWN1cnNpdmVTZXF1ZW5jZSA9IDA7XG4gICAgICB3aGlsZSAodm0pIHtcbiAgICAgICAgaWYgKHRyZWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHZhciBsYXN0ID0gdHJlZVt0cmVlLmxlbmd0aCAtIDFdO1xuICAgICAgICAgIGlmIChsYXN0LmNvbnN0cnVjdG9yID09PSB2bS5jb25zdHJ1Y3Rvcikge1xuICAgICAgICAgICAgY3VycmVudFJlY3Vyc2l2ZVNlcXVlbmNlKys7XG4gICAgICAgICAgICB2bSA9IHZtLiRwYXJlbnQ7XG4gICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudFJlY3Vyc2l2ZVNlcXVlbmNlID4gMCkge1xuICAgICAgICAgICAgdHJlZVt0cmVlLmxlbmd0aCAtIDFdID0gW2xhc3QsIGN1cnJlbnRSZWN1cnNpdmVTZXF1ZW5jZV07XG4gICAgICAgICAgICBjdXJyZW50UmVjdXJzaXZlU2VxdWVuY2UgPSAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0cmVlLnB1c2godm0pO1xuICAgICAgICB2bSA9IHZtLiRwYXJlbnQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gJ1xcblxcbmZvdW5kIGluXFxuXFxuJyArIHRyZWVcbiAgICAgICAgLm1hcChmdW5jdGlvbiAodm0sIGkpIHsgcmV0dXJuIChcIlwiICsgKGkgPT09IDAgPyAnLS0tPiAnIDogcmVwZWF0KCcgJywgNSArIGkgKiAyKSkgKyAoQXJyYXkuaXNBcnJheSh2bSlcbiAgICAgICAgICAgID8gKChmb3JtYXRDb21wb25lbnROYW1lKHZtWzBdKSkgKyBcIi4uLiAoXCIgKyAodm1bMV0pICsgXCIgcmVjdXJzaXZlIGNhbGxzKVwiKVxuICAgICAgICAgICAgOiBmb3JtYXRDb21wb25lbnROYW1lKHZtKSkpOyB9KVxuICAgICAgICAuam9pbignXFxuJylcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIChcIlxcblxcbihmb3VuZCBpbiBcIiArIChmb3JtYXRDb21wb25lbnROYW1lKHZtKSkgKyBcIilcIilcbiAgICB9XG4gIH07XG59XG5cbi8qICAqL1xuXG52YXIgdWlkID0gMDtcblxuLyoqXG4gKiBBIGRlcCBpcyBhbiBvYnNlcnZhYmxlIHRoYXQgY2FuIGhhdmUgbXVsdGlwbGVcbiAqIGRpcmVjdGl2ZXMgc3Vic2NyaWJpbmcgdG8gaXQuXG4gKi9cbnZhciBEZXAgPSBmdW5jdGlvbiBEZXAgKCkge1xuICB0aGlzLmlkID0gdWlkKys7XG4gIHRoaXMuc3VicyA9IFtdO1xufTtcblxuRGVwLnByb3RvdHlwZS5hZGRTdWIgPSBmdW5jdGlvbiBhZGRTdWIgKHN1Yikge1xuICB0aGlzLnN1YnMucHVzaChzdWIpO1xufTtcblxuRGVwLnByb3RvdHlwZS5yZW1vdmVTdWIgPSBmdW5jdGlvbiByZW1vdmVTdWIgKHN1Yikge1xuICByZW1vdmUodGhpcy5zdWJzLCBzdWIpO1xufTtcblxuRGVwLnByb3RvdHlwZS5kZXBlbmQgPSBmdW5jdGlvbiBkZXBlbmQgKCkge1xuICBpZiAoRGVwLnRhcmdldCkge1xuICAgIERlcC50YXJnZXQuYWRkRGVwKHRoaXMpO1xuICB9XG59O1xuXG5EZXAucHJvdG90eXBlLm5vdGlmeSA9IGZ1bmN0aW9uIG5vdGlmeSAoKSB7XG4gIC8vIHN0YWJpbGl6ZSB0aGUgc3Vic2NyaWJlciBsaXN0IGZpcnN0XG4gIHZhciBzdWJzID0gdGhpcy5zdWJzLnNsaWNlKCk7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmICFjb25maWcuYXN5bmMpIHtcbiAgICAvLyBzdWJzIGFyZW4ndCBzb3J0ZWQgaW4gc2NoZWR1bGVyIGlmIG5vdCBydW5uaW5nIGFzeW5jXG4gICAgLy8gd2UgbmVlZCB0byBzb3J0IHRoZW0gbm93IHRvIG1ha2Ugc3VyZSB0aGV5IGZpcmUgaW4gY29ycmVjdFxuICAgIC8vIG9yZGVyXG4gICAgc3Vicy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhLmlkIC0gYi5pZDsgfSk7XG4gIH1cbiAgZm9yICh2YXIgaSA9IDAsIGwgPSBzdWJzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIHN1YnNbaV0udXBkYXRlKCk7XG4gIH1cbn07XG5cbi8vIFRoZSBjdXJyZW50IHRhcmdldCB3YXRjaGVyIGJlaW5nIGV2YWx1YXRlZC5cbi8vIFRoaXMgaXMgZ2xvYmFsbHkgdW5pcXVlIGJlY2F1c2Ugb25seSBvbmUgd2F0Y2hlclxuLy8gY2FuIGJlIGV2YWx1YXRlZCBhdCBhIHRpbWUuXG5EZXAudGFyZ2V0ID0gbnVsbDtcbnZhciB0YXJnZXRTdGFjayA9IFtdO1xuXG5mdW5jdGlvbiBwdXNoVGFyZ2V0ICh0YXJnZXQpIHtcbiAgdGFyZ2V0U3RhY2sucHVzaCh0YXJnZXQpO1xuICBEZXAudGFyZ2V0ID0gdGFyZ2V0O1xufVxuXG5mdW5jdGlvbiBwb3BUYXJnZXQgKCkge1xuICB0YXJnZXRTdGFjay5wb3AoKTtcbiAgRGVwLnRhcmdldCA9IHRhcmdldFN0YWNrW3RhcmdldFN0YWNrLmxlbmd0aCAtIDFdO1xufVxuXG4vKiAgKi9cblxudmFyIFZOb2RlID0gZnVuY3Rpb24gVk5vZGUgKFxuICB0YWcsXG4gIGRhdGEsXG4gIGNoaWxkcmVuLFxuICB0ZXh0LFxuICBlbG0sXG4gIGNvbnRleHQsXG4gIGNvbXBvbmVudE9wdGlvbnMsXG4gIGFzeW5jRmFjdG9yeVxuKSB7XG4gIHRoaXMudGFnID0gdGFnO1xuICB0aGlzLmRhdGEgPSBkYXRhO1xuICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XG4gIHRoaXMudGV4dCA9IHRleHQ7XG4gIHRoaXMuZWxtID0gZWxtO1xuICB0aGlzLm5zID0gdW5kZWZpbmVkO1xuICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICB0aGlzLmZuQ29udGV4dCA9IHVuZGVmaW5lZDtcbiAgdGhpcy5mbk9wdGlvbnMgPSB1bmRlZmluZWQ7XG4gIHRoaXMuZm5TY29wZUlkID0gdW5kZWZpbmVkO1xuICB0aGlzLmtleSA9IGRhdGEgJiYgZGF0YS5rZXk7XG4gIHRoaXMuY29tcG9uZW50T3B0aW9ucyA9IGNvbXBvbmVudE9wdGlvbnM7XG4gIHRoaXMuY29tcG9uZW50SW5zdGFuY2UgPSB1bmRlZmluZWQ7XG4gIHRoaXMucGFyZW50ID0gdW5kZWZpbmVkO1xuICB0aGlzLnJhdyA9IGZhbHNlO1xuICB0aGlzLmlzU3RhdGljID0gZmFsc2U7XG4gIHRoaXMuaXNSb290SW5zZXJ0ID0gdHJ1ZTtcbiAgdGhpcy5pc0NvbW1lbnQgPSBmYWxzZTtcbiAgdGhpcy5pc0Nsb25lZCA9IGZhbHNlO1xuICB0aGlzLmlzT25jZSA9IGZhbHNlO1xuICB0aGlzLmFzeW5jRmFjdG9yeSA9IGFzeW5jRmFjdG9yeTtcbiAgdGhpcy5hc3luY01ldGEgPSB1bmRlZmluZWQ7XG4gIHRoaXMuaXNBc3luY1BsYWNlaG9sZGVyID0gZmFsc2U7XG59O1xuXG52YXIgcHJvdG90eXBlQWNjZXNzb3JzID0geyBjaGlsZDogeyBjb25maWd1cmFibGU6IHRydWUgfSB9O1xuXG4vLyBERVBSRUNBVEVEOiBhbGlhcyBmb3IgY29tcG9uZW50SW5zdGFuY2UgZm9yIGJhY2t3YXJkcyBjb21wYXQuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xucHJvdG90eXBlQWNjZXNzb3JzLmNoaWxkLmdldCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIHRoaXMuY29tcG9uZW50SW5zdGFuY2Vcbn07XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKCBWTm9kZS5wcm90b3R5cGUsIHByb3RvdHlwZUFjY2Vzc29ycyApO1xuXG52YXIgY3JlYXRlRW1wdHlWTm9kZSA9IGZ1bmN0aW9uICh0ZXh0KSB7XG4gIGlmICggdGV4dCA9PT0gdm9pZCAwICkgdGV4dCA9ICcnO1xuXG4gIHZhciBub2RlID0gbmV3IFZOb2RlKCk7XG4gIG5vZGUudGV4dCA9IHRleHQ7XG4gIG5vZGUuaXNDb21tZW50ID0gdHJ1ZTtcbiAgcmV0dXJuIG5vZGVcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZVRleHRWTm9kZSAodmFsKSB7XG4gIHJldHVybiBuZXcgVk5vZGUodW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgU3RyaW5nKHZhbCkpXG59XG5cbi8vIG9wdGltaXplZCBzaGFsbG93IGNsb25lXG4vLyB1c2VkIGZvciBzdGF0aWMgbm9kZXMgYW5kIHNsb3Qgbm9kZXMgYmVjYXVzZSB0aGV5IG1heSBiZSByZXVzZWQgYWNyb3NzXG4vLyBtdWx0aXBsZSByZW5kZXJzLCBjbG9uaW5nIHRoZW0gYXZvaWRzIGVycm9ycyB3aGVuIERPTSBtYW5pcHVsYXRpb25zIHJlbHlcbi8vIG9uIHRoZWlyIGVsbSByZWZlcmVuY2UuXG5mdW5jdGlvbiBjbG9uZVZOb2RlICh2bm9kZSkge1xuICB2YXIgY2xvbmVkID0gbmV3IFZOb2RlKFxuICAgIHZub2RlLnRhZyxcbiAgICB2bm9kZS5kYXRhLFxuICAgIC8vICM3OTc1XG4gICAgLy8gY2xvbmUgY2hpbGRyZW4gYXJyYXkgdG8gYXZvaWQgbXV0YXRpbmcgb3JpZ2luYWwgaW4gY2FzZSBvZiBjbG9uaW5nXG4gICAgLy8gYSBjaGlsZC5cbiAgICB2bm9kZS5jaGlsZHJlbiAmJiB2bm9kZS5jaGlsZHJlbi5zbGljZSgpLFxuICAgIHZub2RlLnRleHQsXG4gICAgdm5vZGUuZWxtLFxuICAgIHZub2RlLmNvbnRleHQsXG4gICAgdm5vZGUuY29tcG9uZW50T3B0aW9ucyxcbiAgICB2bm9kZS5hc3luY0ZhY3RvcnlcbiAgKTtcbiAgY2xvbmVkLm5zID0gdm5vZGUubnM7XG4gIGNsb25lZC5pc1N0YXRpYyA9IHZub2RlLmlzU3RhdGljO1xuICBjbG9uZWQua2V5ID0gdm5vZGUua2V5O1xuICBjbG9uZWQuaXNDb21tZW50ID0gdm5vZGUuaXNDb21tZW50O1xuICBjbG9uZWQuZm5Db250ZXh0ID0gdm5vZGUuZm5Db250ZXh0O1xuICBjbG9uZWQuZm5PcHRpb25zID0gdm5vZGUuZm5PcHRpb25zO1xuICBjbG9uZWQuZm5TY29wZUlkID0gdm5vZGUuZm5TY29wZUlkO1xuICBjbG9uZWQuYXN5bmNNZXRhID0gdm5vZGUuYXN5bmNNZXRhO1xuICBjbG9uZWQuaXNDbG9uZWQgPSB0cnVlO1xuICByZXR1cm4gY2xvbmVkXG59XG5cbi8qXG4gKiBub3QgdHlwZSBjaGVja2luZyB0aGlzIGZpbGUgYmVjYXVzZSBmbG93IGRvZXNuJ3QgcGxheSB3ZWxsIHdpdGhcbiAqIGR5bmFtaWNhbGx5IGFjY2Vzc2luZyBtZXRob2RzIG9uIEFycmF5IHByb3RvdHlwZVxuICovXG5cbnZhciBhcnJheVByb3RvID0gQXJyYXkucHJvdG90eXBlO1xudmFyIGFycmF5TWV0aG9kcyA9IE9iamVjdC5jcmVhdGUoYXJyYXlQcm90byk7XG5cbnZhciBtZXRob2RzVG9QYXRjaCA9IFtcbiAgJ3B1c2gnLFxuICAncG9wJyxcbiAgJ3NoaWZ0JyxcbiAgJ3Vuc2hpZnQnLFxuICAnc3BsaWNlJyxcbiAgJ3NvcnQnLFxuICAncmV2ZXJzZSdcbl07XG5cbi8qKlxuICogSW50ZXJjZXB0IG11dGF0aW5nIG1ldGhvZHMgYW5kIGVtaXQgZXZlbnRzXG4gKi9cbm1ldGhvZHNUb1BhdGNoLmZvckVhY2goZnVuY3Rpb24gKG1ldGhvZCkge1xuICAvLyBjYWNoZSBvcmlnaW5hbCBtZXRob2RcbiAgdmFyIG9yaWdpbmFsID0gYXJyYXlQcm90b1ttZXRob2RdO1xuICBkZWYoYXJyYXlNZXRob2RzLCBtZXRob2QsIGZ1bmN0aW9uIG11dGF0b3IgKCkge1xuICAgIHZhciBhcmdzID0gW10sIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgd2hpbGUgKCBsZW4tLSApIGFyZ3NbIGxlbiBdID0gYXJndW1lbnRzWyBsZW4gXTtcblxuICAgIHZhciByZXN1bHQgPSBvcmlnaW5hbC5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB2YXIgb2IgPSB0aGlzLl9fb2JfXztcbiAgICB2YXIgaW5zZXJ0ZWQ7XG4gICAgc3dpdGNoIChtZXRob2QpIHtcbiAgICAgIGNhc2UgJ3B1c2gnOlxuICAgICAgY2FzZSAndW5zaGlmdCc6XG4gICAgICAgIGluc2VydGVkID0gYXJncztcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ3NwbGljZSc6XG4gICAgICAgIGluc2VydGVkID0gYXJncy5zbGljZSgyKTtcbiAgICAgICAgYnJlYWtcbiAgICB9XG4gICAgaWYgKGluc2VydGVkKSB7IG9iLm9ic2VydmVBcnJheShpbnNlcnRlZCk7IH1cbiAgICAvLyBub3RpZnkgY2hhbmdlXG4gICAgb2IuZGVwLm5vdGlmeSgpO1xuICAgIHJldHVybiByZXN1bHRcbiAgfSk7XG59KTtcblxuLyogICovXG5cbnZhciBhcnJheUtleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhhcnJheU1ldGhvZHMpO1xuXG4vKipcbiAqIEluIHNvbWUgY2FzZXMgd2UgbWF5IHdhbnQgdG8gZGlzYWJsZSBvYnNlcnZhdGlvbiBpbnNpZGUgYSBjb21wb25lbnQnc1xuICogdXBkYXRlIGNvbXB1dGF0aW9uLlxuICovXG52YXIgc2hvdWxkT2JzZXJ2ZSA9IHRydWU7XG5cbmZ1bmN0aW9uIHRvZ2dsZU9ic2VydmluZyAodmFsdWUpIHtcbiAgc2hvdWxkT2JzZXJ2ZSA9IHZhbHVlO1xufVxuXG4vKipcbiAqIE9ic2VydmVyIGNsYXNzIHRoYXQgaXMgYXR0YWNoZWQgdG8gZWFjaCBvYnNlcnZlZFxuICogb2JqZWN0LiBPbmNlIGF0dGFjaGVkLCB0aGUgb2JzZXJ2ZXIgY29udmVydHMgdGhlIHRhcmdldFxuICogb2JqZWN0J3MgcHJvcGVydHkga2V5cyBpbnRvIGdldHRlci9zZXR0ZXJzIHRoYXRcbiAqIGNvbGxlY3QgZGVwZW5kZW5jaWVzIGFuZCBkaXNwYXRjaCB1cGRhdGVzLlxuICovXG52YXIgT2JzZXJ2ZXIgPSBmdW5jdGlvbiBPYnNlcnZlciAodmFsdWUpIHtcbiAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB0aGlzLmRlcCA9IG5ldyBEZXAoKTtcbiAgdGhpcy52bUNvdW50ID0gMDtcbiAgZGVmKHZhbHVlLCAnX19vYl9fJywgdGhpcyk7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIGlmIChoYXNQcm90bykge1xuICAgICAgcHJvdG9BdWdtZW50KHZhbHVlLCBhcnJheU1ldGhvZHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb3B5QXVnbWVudCh2YWx1ZSwgYXJyYXlNZXRob2RzLCBhcnJheUtleXMpO1xuICAgIH1cbiAgICB0aGlzLm9ic2VydmVBcnJheSh2YWx1ZSk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy53YWxrKHZhbHVlKTtcbiAgfVxufTtcblxuLyoqXG4gKiBXYWxrIHRocm91Z2ggYWxsIHByb3BlcnRpZXMgYW5kIGNvbnZlcnQgdGhlbSBpbnRvXG4gKiBnZXR0ZXIvc2V0dGVycy4gVGhpcyBtZXRob2Qgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIHdoZW5cbiAqIHZhbHVlIHR5cGUgaXMgT2JqZWN0LlxuICovXG5PYnNlcnZlci5wcm90b3R5cGUud2FsayA9IGZ1bmN0aW9uIHdhbGsgKG9iaikge1xuICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKG9iaik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgIGRlZmluZVJlYWN0aXZlJCQxKG9iaiwga2V5c1tpXSk7XG4gIH1cbn07XG5cbi8qKlxuICogT2JzZXJ2ZSBhIGxpc3Qgb2YgQXJyYXkgaXRlbXMuXG4gKi9cbk9ic2VydmVyLnByb3RvdHlwZS5vYnNlcnZlQXJyYXkgPSBmdW5jdGlvbiBvYnNlcnZlQXJyYXkgKGl0ZW1zKSB7XG4gIGZvciAodmFyIGkgPSAwLCBsID0gaXRlbXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgb2JzZXJ2ZShpdGVtc1tpXSk7XG4gIH1cbn07XG5cbi8vIGhlbHBlcnNcblxuLyoqXG4gKiBBdWdtZW50IGEgdGFyZ2V0IE9iamVjdCBvciBBcnJheSBieSBpbnRlcmNlcHRpbmdcbiAqIHRoZSBwcm90b3R5cGUgY2hhaW4gdXNpbmcgX19wcm90b19fXG4gKi9cbmZ1bmN0aW9uIHByb3RvQXVnbWVudCAodGFyZ2V0LCBzcmMpIHtcbiAgLyogZXNsaW50LWRpc2FibGUgbm8tcHJvdG8gKi9cbiAgdGFyZ2V0Ll9fcHJvdG9fXyA9IHNyYztcbiAgLyogZXNsaW50LWVuYWJsZSBuby1wcm90byAqL1xufVxuXG4vKipcbiAqIEF1Z21lbnQgYSB0YXJnZXQgT2JqZWN0IG9yIEFycmF5IGJ5IGRlZmluaW5nXG4gKiBoaWRkZW4gcHJvcGVydGllcy5cbiAqL1xuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmZ1bmN0aW9uIGNvcHlBdWdtZW50ICh0YXJnZXQsIHNyYywga2V5cykge1xuICBmb3IgKHZhciBpID0gMCwgbCA9IGtleXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgZGVmKHRhcmdldCwga2V5LCBzcmNba2V5XSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBdHRlbXB0IHRvIGNyZWF0ZSBhbiBvYnNlcnZlciBpbnN0YW5jZSBmb3IgYSB2YWx1ZSxcbiAqIHJldHVybnMgdGhlIG5ldyBvYnNlcnZlciBpZiBzdWNjZXNzZnVsbHkgb2JzZXJ2ZWQsXG4gKiBvciB0aGUgZXhpc3Rpbmcgb2JzZXJ2ZXIgaWYgdGhlIHZhbHVlIGFscmVhZHkgaGFzIG9uZS5cbiAqL1xuZnVuY3Rpb24gb2JzZXJ2ZSAodmFsdWUsIGFzUm9vdERhdGEpIHtcbiAgaWYgKCFpc09iamVjdCh2YWx1ZSkgfHwgdmFsdWUgaW5zdGFuY2VvZiBWTm9kZSkge1xuICAgIHJldHVyblxuICB9XG4gIHZhciBvYjtcbiAgaWYgKGhhc093bih2YWx1ZSwgJ19fb2JfXycpICYmIHZhbHVlLl9fb2JfXyBpbnN0YW5jZW9mIE9ic2VydmVyKSB7XG4gICAgb2IgPSB2YWx1ZS5fX29iX187XG4gIH0gZWxzZSBpZiAoXG4gICAgc2hvdWxkT2JzZXJ2ZSAmJlxuICAgICFpc1NlcnZlclJlbmRlcmluZygpICYmXG4gICAgKEFycmF5LmlzQXJyYXkodmFsdWUpIHx8IGlzUGxhaW5PYmplY3QodmFsdWUpKSAmJlxuICAgIE9iamVjdC5pc0V4dGVuc2libGUodmFsdWUpICYmXG4gICAgIXZhbHVlLl9pc1Z1ZVxuICApIHtcbiAgICBvYiA9IG5ldyBPYnNlcnZlcih2YWx1ZSk7XG4gIH1cbiAgaWYgKGFzUm9vdERhdGEgJiYgb2IpIHtcbiAgICBvYi52bUNvdW50Kys7XG4gIH1cbiAgcmV0dXJuIG9iXG59XG5cbi8qKlxuICogRGVmaW5lIGEgcmVhY3RpdmUgcHJvcGVydHkgb24gYW4gT2JqZWN0LlxuICovXG5mdW5jdGlvbiBkZWZpbmVSZWFjdGl2ZSQkMSAoXG4gIG9iaixcbiAga2V5LFxuICB2YWwsXG4gIGN1c3RvbVNldHRlcixcbiAgc2hhbGxvd1xuKSB7XG4gIHZhciBkZXAgPSBuZXcgRGVwKCk7XG5cbiAgdmFyIHByb3BlcnR5ID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIGtleSk7XG4gIGlmIChwcm9wZXJ0eSAmJiBwcm9wZXJ0eS5jb25maWd1cmFibGUgPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICAvLyBjYXRlciBmb3IgcHJlLWRlZmluZWQgZ2V0dGVyL3NldHRlcnNcbiAgdmFyIGdldHRlciA9IHByb3BlcnR5ICYmIHByb3BlcnR5LmdldDtcbiAgdmFyIHNldHRlciA9IHByb3BlcnR5ICYmIHByb3BlcnR5LnNldDtcbiAgaWYgKCghZ2V0dGVyIHx8IHNldHRlcikgJiYgYXJndW1lbnRzLmxlbmd0aCA9PT0gMikge1xuICAgIHZhbCA9IG9ialtrZXldO1xuICB9XG5cbiAgdmFyIGNoaWxkT2IgPSAhc2hhbGxvdyAmJiBvYnNlcnZlKHZhbCk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gcmVhY3RpdmVHZXR0ZXIgKCkge1xuICAgICAgdmFyIHZhbHVlID0gZ2V0dGVyID8gZ2V0dGVyLmNhbGwob2JqKSA6IHZhbDtcbiAgICAgIGlmIChEZXAudGFyZ2V0KSB7XG4gICAgICAgIGRlcC5kZXBlbmQoKTtcbiAgICAgICAgaWYgKGNoaWxkT2IpIHtcbiAgICAgICAgICBjaGlsZE9iLmRlcC5kZXBlbmQoKTtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIGRlcGVuZEFycmF5KHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZVxuICAgIH0sXG4gICAgc2V0OiBmdW5jdGlvbiByZWFjdGl2ZVNldHRlciAobmV3VmFsKSB7XG4gICAgICB2YXIgdmFsdWUgPSBnZXR0ZXIgPyBnZXR0ZXIuY2FsbChvYmopIDogdmFsO1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgbm8tc2VsZi1jb21wYXJlICovXG4gICAgICBpZiAobmV3VmFsID09PSB2YWx1ZSB8fCAobmV3VmFsICE9PSBuZXdWYWwgJiYgdmFsdWUgIT09IHZhbHVlKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIC8qIGVzbGludC1lbmFibGUgbm8tc2VsZi1jb21wYXJlICovXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBjdXN0b21TZXR0ZXIpIHtcbiAgICAgICAgY3VzdG9tU2V0dGVyKCk7XG4gICAgICB9XG4gICAgICAvLyAjNzk4MTogZm9yIGFjY2Vzc29yIHByb3BlcnRpZXMgd2l0aG91dCBzZXR0ZXJcbiAgICAgIGlmIChnZXR0ZXIgJiYgIXNldHRlcikgeyByZXR1cm4gfVxuICAgICAgaWYgKHNldHRlcikge1xuICAgICAgICBzZXR0ZXIuY2FsbChvYmosIG5ld1ZhbCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YWwgPSBuZXdWYWw7XG4gICAgICB9XG4gICAgICBjaGlsZE9iID0gIXNoYWxsb3cgJiYgb2JzZXJ2ZShuZXdWYWwpO1xuICAgICAgZGVwLm5vdGlmeSgpO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogU2V0IGEgcHJvcGVydHkgb24gYW4gb2JqZWN0LiBBZGRzIHRoZSBuZXcgcHJvcGVydHkgYW5kXG4gKiB0cmlnZ2VycyBjaGFuZ2Ugbm90aWZpY2F0aW9uIGlmIHRoZSBwcm9wZXJ0eSBkb2Vzbid0XG4gKiBhbHJlYWR5IGV4aXN0LlxuICovXG5mdW5jdGlvbiBzZXQgKHRhcmdldCwga2V5LCB2YWwpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAoaXNVbmRlZih0YXJnZXQpIHx8IGlzUHJpbWl0aXZlKHRhcmdldCkpXG4gICkge1xuICAgIHdhcm4oKFwiQ2Fubm90IHNldCByZWFjdGl2ZSBwcm9wZXJ0eSBvbiB1bmRlZmluZWQsIG51bGwsIG9yIHByaW1pdGl2ZSB2YWx1ZTogXCIgKyAoKHRhcmdldCkpKSk7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0KSAmJiBpc1ZhbGlkQXJyYXlJbmRleChrZXkpKSB7XG4gICAgdGFyZ2V0Lmxlbmd0aCA9IE1hdGgubWF4KHRhcmdldC5sZW5ndGgsIGtleSk7XG4gICAgdGFyZ2V0LnNwbGljZShrZXksIDEsIHZhbCk7XG4gICAgcmV0dXJuIHZhbFxuICB9XG4gIGlmIChrZXkgaW4gdGFyZ2V0ICYmICEoa2V5IGluIE9iamVjdC5wcm90b3R5cGUpKSB7XG4gICAgdGFyZ2V0W2tleV0gPSB2YWw7XG4gICAgcmV0dXJuIHZhbFxuICB9XG4gIHZhciBvYiA9ICh0YXJnZXQpLl9fb2JfXztcbiAgaWYgKHRhcmdldC5faXNWdWUgfHwgKG9iICYmIG9iLnZtQ291bnQpKSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuKFxuICAgICAgJ0F2b2lkIGFkZGluZyByZWFjdGl2ZSBwcm9wZXJ0aWVzIHRvIGEgVnVlIGluc3RhbmNlIG9yIGl0cyByb290ICRkYXRhICcgK1xuICAgICAgJ2F0IHJ1bnRpbWUgLSBkZWNsYXJlIGl0IHVwZnJvbnQgaW4gdGhlIGRhdGEgb3B0aW9uLidcbiAgICApO1xuICAgIHJldHVybiB2YWxcbiAgfVxuICBpZiAoIW9iKSB7XG4gICAgdGFyZ2V0W2tleV0gPSB2YWw7XG4gICAgcmV0dXJuIHZhbFxuICB9XG4gIGRlZmluZVJlYWN0aXZlJCQxKG9iLnZhbHVlLCBrZXksIHZhbCk7XG4gIG9iLmRlcC5ub3RpZnkoKTtcbiAgcmV0dXJuIHZhbFxufVxuXG4vKipcbiAqIERlbGV0ZSBhIHByb3BlcnR5IGFuZCB0cmlnZ2VyIGNoYW5nZSBpZiBuZWNlc3NhcnkuXG4gKi9cbmZ1bmN0aW9uIGRlbCAodGFyZ2V0LCBrZXkpIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAoaXNVbmRlZih0YXJnZXQpIHx8IGlzUHJpbWl0aXZlKHRhcmdldCkpXG4gICkge1xuICAgIHdhcm4oKFwiQ2Fubm90IGRlbGV0ZSByZWFjdGl2ZSBwcm9wZXJ0eSBvbiB1bmRlZmluZWQsIG51bGwsIG9yIHByaW1pdGl2ZSB2YWx1ZTogXCIgKyAoKHRhcmdldCkpKSk7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0KSAmJiBpc1ZhbGlkQXJyYXlJbmRleChrZXkpKSB7XG4gICAgdGFyZ2V0LnNwbGljZShrZXksIDEpO1xuICAgIHJldHVyblxuICB9XG4gIHZhciBvYiA9ICh0YXJnZXQpLl9fb2JfXztcbiAgaWYgKHRhcmdldC5faXNWdWUgfHwgKG9iICYmIG9iLnZtQ291bnQpKSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuKFxuICAgICAgJ0F2b2lkIGRlbGV0aW5nIHByb3BlcnRpZXMgb24gYSBWdWUgaW5zdGFuY2Ugb3IgaXRzIHJvb3QgJGRhdGEgJyArXG4gICAgICAnLSBqdXN0IHNldCBpdCB0byBudWxsLidcbiAgICApO1xuICAgIHJldHVyblxuICB9XG4gIGlmICghaGFzT3duKHRhcmdldCwga2V5KSkge1xuICAgIHJldHVyblxuICB9XG4gIGRlbGV0ZSB0YXJnZXRba2V5XTtcbiAgaWYgKCFvYikge1xuICAgIHJldHVyblxuICB9XG4gIG9iLmRlcC5ub3RpZnkoKTtcbn1cblxuLyoqXG4gKiBDb2xsZWN0IGRlcGVuZGVuY2llcyBvbiBhcnJheSBlbGVtZW50cyB3aGVuIHRoZSBhcnJheSBpcyB0b3VjaGVkLCBzaW5jZVxuICogd2UgY2Fubm90IGludGVyY2VwdCBhcnJheSBlbGVtZW50IGFjY2VzcyBsaWtlIHByb3BlcnR5IGdldHRlcnMuXG4gKi9cbmZ1bmN0aW9uIGRlcGVuZEFycmF5ICh2YWx1ZSkge1xuICBmb3IgKHZhciBlID0gKHZvaWQgMCksIGkgPSAwLCBsID0gdmFsdWUubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgZSA9IHZhbHVlW2ldO1xuICAgIGUgJiYgZS5fX29iX18gJiYgZS5fX29iX18uZGVwLmRlcGVuZCgpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGUpKSB7XG4gICAgICBkZXBlbmRBcnJheShlKTtcbiAgICB9XG4gIH1cbn1cblxuLyogICovXG5cbi8qKlxuICogT3B0aW9uIG92ZXJ3cml0aW5nIHN0cmF0ZWdpZXMgYXJlIGZ1bmN0aW9ucyB0aGF0IGhhbmRsZVxuICogaG93IHRvIG1lcmdlIGEgcGFyZW50IG9wdGlvbiB2YWx1ZSBhbmQgYSBjaGlsZCBvcHRpb25cbiAqIHZhbHVlIGludG8gdGhlIGZpbmFsIHZhbHVlLlxuICovXG52YXIgc3RyYXRzID0gY29uZmlnLm9wdGlvbk1lcmdlU3RyYXRlZ2llcztcblxuLyoqXG4gKiBPcHRpb25zIHdpdGggcmVzdHJpY3Rpb25zXG4gKi9cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHN0cmF0cy5lbCA9IHN0cmF0cy5wcm9wc0RhdGEgPSBmdW5jdGlvbiAocGFyZW50LCBjaGlsZCwgdm0sIGtleSkge1xuICAgIGlmICghdm0pIHtcbiAgICAgIHdhcm4oXG4gICAgICAgIFwib3B0aW9uIFxcXCJcIiArIGtleSArIFwiXFxcIiBjYW4gb25seSBiZSB1c2VkIGR1cmluZyBpbnN0YW5jZSBcIiArXG4gICAgICAgICdjcmVhdGlvbiB3aXRoIHRoZSBgbmV3YCBrZXl3b3JkLidcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBkZWZhdWx0U3RyYXQocGFyZW50LCBjaGlsZClcbiAgfTtcbn1cblxuLyoqXG4gKiBIZWxwZXIgdGhhdCByZWN1cnNpdmVseSBtZXJnZXMgdHdvIGRhdGEgb2JqZWN0cyB0b2dldGhlci5cbiAqL1xuZnVuY3Rpb24gbWVyZ2VEYXRhICh0bywgZnJvbSkge1xuICBpZiAoIWZyb20pIHsgcmV0dXJuIHRvIH1cbiAgdmFyIGtleSwgdG9WYWwsIGZyb21WYWw7XG5cbiAgdmFyIGtleXMgPSBoYXNTeW1ib2xcbiAgICA/IFJlZmxlY3Qub3duS2V5cyhmcm9tKVxuICAgIDogT2JqZWN0LmtleXMoZnJvbSk7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAga2V5ID0ga2V5c1tpXTtcbiAgICAvLyBpbiBjYXNlIHRoZSBvYmplY3QgaXMgYWxyZWFkeSBvYnNlcnZlZC4uLlxuICAgIGlmIChrZXkgPT09ICdfX29iX18nKSB7IGNvbnRpbnVlIH1cbiAgICB0b1ZhbCA9IHRvW2tleV07XG4gICAgZnJvbVZhbCA9IGZyb21ba2V5XTtcbiAgICBpZiAoIWhhc093bih0bywga2V5KSkge1xuICAgICAgc2V0KHRvLCBrZXksIGZyb21WYWwpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0b1ZhbCAhPT0gZnJvbVZhbCAmJlxuICAgICAgaXNQbGFpbk9iamVjdCh0b1ZhbCkgJiZcbiAgICAgIGlzUGxhaW5PYmplY3QoZnJvbVZhbClcbiAgICApIHtcbiAgICAgIG1lcmdlRGF0YSh0b1ZhbCwgZnJvbVZhbCk7XG4gICAgfVxuICB9XG4gIHJldHVybiB0b1xufVxuXG4vKipcbiAqIERhdGFcbiAqL1xuZnVuY3Rpb24gbWVyZ2VEYXRhT3JGbiAoXG4gIHBhcmVudFZhbCxcbiAgY2hpbGRWYWwsXG4gIHZtXG4pIHtcbiAgaWYgKCF2bSkge1xuICAgIC8vIGluIGEgVnVlLmV4dGVuZCBtZXJnZSwgYm90aCBzaG91bGQgYmUgZnVuY3Rpb25zXG4gICAgaWYgKCFjaGlsZFZhbCkge1xuICAgICAgcmV0dXJuIHBhcmVudFZhbFxuICAgIH1cbiAgICBpZiAoIXBhcmVudFZhbCkge1xuICAgICAgcmV0dXJuIGNoaWxkVmFsXG4gICAgfVxuICAgIC8vIHdoZW4gcGFyZW50VmFsICYgY2hpbGRWYWwgYXJlIGJvdGggcHJlc2VudCxcbiAgICAvLyB3ZSBuZWVkIHRvIHJldHVybiBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGVcbiAgICAvLyBtZXJnZWQgcmVzdWx0IG9mIGJvdGggZnVuY3Rpb25zLi4uIG5vIG5lZWQgdG9cbiAgICAvLyBjaGVjayBpZiBwYXJlbnRWYWwgaXMgYSBmdW5jdGlvbiBoZXJlIGJlY2F1c2VcbiAgICAvLyBpdCBoYXMgdG8gYmUgYSBmdW5jdGlvbiB0byBwYXNzIHByZXZpb3VzIG1lcmdlcy5cbiAgICByZXR1cm4gZnVuY3Rpb24gbWVyZ2VkRGF0YUZuICgpIHtcbiAgICAgIHJldHVybiBtZXJnZURhdGEoXG4gICAgICAgIHR5cGVvZiBjaGlsZFZhbCA9PT0gJ2Z1bmN0aW9uJyA/IGNoaWxkVmFsLmNhbGwodGhpcywgdGhpcykgOiBjaGlsZFZhbCxcbiAgICAgICAgdHlwZW9mIHBhcmVudFZhbCA9PT0gJ2Z1bmN0aW9uJyA/IHBhcmVudFZhbC5jYWxsKHRoaXMsIHRoaXMpIDogcGFyZW50VmFsXG4gICAgICApXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBmdW5jdGlvbiBtZXJnZWRJbnN0YW5jZURhdGFGbiAoKSB7XG4gICAgICAvLyBpbnN0YW5jZSBtZXJnZVxuICAgICAgdmFyIGluc3RhbmNlRGF0YSA9IHR5cGVvZiBjaGlsZFZhbCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICA/IGNoaWxkVmFsLmNhbGwodm0sIHZtKVxuICAgICAgICA6IGNoaWxkVmFsO1xuICAgICAgdmFyIGRlZmF1bHREYXRhID0gdHlwZW9mIHBhcmVudFZhbCA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICA/IHBhcmVudFZhbC5jYWxsKHZtLCB2bSlcbiAgICAgICAgOiBwYXJlbnRWYWw7XG4gICAgICBpZiAoaW5zdGFuY2VEYXRhKSB7XG4gICAgICAgIHJldHVybiBtZXJnZURhdGEoaW5zdGFuY2VEYXRhLCBkZWZhdWx0RGF0YSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0RGF0YVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5zdHJhdHMuZGF0YSA9IGZ1bmN0aW9uIChcbiAgcGFyZW50VmFsLFxuICBjaGlsZFZhbCxcbiAgdm1cbikge1xuICBpZiAoIXZtKSB7XG4gICAgaWYgKGNoaWxkVmFsICYmIHR5cGVvZiBjaGlsZFZhbCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuKFxuICAgICAgICAnVGhlIFwiZGF0YVwiIG9wdGlvbiBzaG91bGQgYmUgYSBmdW5jdGlvbiAnICtcbiAgICAgICAgJ3RoYXQgcmV0dXJucyBhIHBlci1pbnN0YW5jZSB2YWx1ZSBpbiBjb21wb25lbnQgJyArXG4gICAgICAgICdkZWZpbml0aW9ucy4nLFxuICAgICAgICB2bVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIHBhcmVudFZhbFxuICAgIH1cbiAgICByZXR1cm4gbWVyZ2VEYXRhT3JGbihwYXJlbnRWYWwsIGNoaWxkVmFsKVxuICB9XG5cbiAgcmV0dXJuIG1lcmdlRGF0YU9yRm4ocGFyZW50VmFsLCBjaGlsZFZhbCwgdm0pXG59O1xuXG4vKipcbiAqIEhvb2tzIGFuZCBwcm9wcyBhcmUgbWVyZ2VkIGFzIGFycmF5cy5cbiAqL1xuZnVuY3Rpb24gbWVyZ2VIb29rIChcbiAgcGFyZW50VmFsLFxuICBjaGlsZFZhbFxuKSB7XG4gIHZhciByZXMgPSBjaGlsZFZhbFxuICAgID8gcGFyZW50VmFsXG4gICAgICA/IHBhcmVudFZhbC5jb25jYXQoY2hpbGRWYWwpXG4gICAgICA6IEFycmF5LmlzQXJyYXkoY2hpbGRWYWwpXG4gICAgICAgID8gY2hpbGRWYWxcbiAgICAgICAgOiBbY2hpbGRWYWxdXG4gICAgOiBwYXJlbnRWYWw7XG4gIHJldHVybiByZXNcbiAgICA/IGRlZHVwZUhvb2tzKHJlcylcbiAgICA6IHJlc1xufVxuXG5mdW5jdGlvbiBkZWR1cGVIb29rcyAoaG9va3MpIHtcbiAgdmFyIHJlcyA9IFtdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGhvb2tzLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHJlcy5pbmRleE9mKGhvb2tzW2ldKSA9PT0gLTEpIHtcbiAgICAgIHJlcy5wdXNoKGhvb2tzW2ldKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5MSUZFQ1lDTEVfSE9PS1MuZm9yRWFjaChmdW5jdGlvbiAoaG9vaykge1xuICBzdHJhdHNbaG9va10gPSBtZXJnZUhvb2s7XG59KTtcblxuLyoqXG4gKiBBc3NldHNcbiAqXG4gKiBXaGVuIGEgdm0gaXMgcHJlc2VudCAoaW5zdGFuY2UgY3JlYXRpb24pLCB3ZSBuZWVkIHRvIGRvXG4gKiBhIHRocmVlLXdheSBtZXJnZSBiZXR3ZWVuIGNvbnN0cnVjdG9yIG9wdGlvbnMsIGluc3RhbmNlXG4gKiBvcHRpb25zIGFuZCBwYXJlbnQgb3B0aW9ucy5cbiAqL1xuZnVuY3Rpb24gbWVyZ2VBc3NldHMgKFxuICBwYXJlbnRWYWwsXG4gIGNoaWxkVmFsLFxuICB2bSxcbiAga2V5XG4pIHtcbiAgdmFyIHJlcyA9IE9iamVjdC5jcmVhdGUocGFyZW50VmFsIHx8IG51bGwpO1xuICBpZiAoY2hpbGRWYWwpIHtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGFzc2VydE9iamVjdFR5cGUoa2V5LCBjaGlsZFZhbCwgdm0pO1xuICAgIHJldHVybiBleHRlbmQocmVzLCBjaGlsZFZhbClcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gcmVzXG4gIH1cbn1cblxuQVNTRVRfVFlQRVMuZm9yRWFjaChmdW5jdGlvbiAodHlwZSkge1xuICBzdHJhdHNbdHlwZSArICdzJ10gPSBtZXJnZUFzc2V0cztcbn0pO1xuXG4vKipcbiAqIFdhdGNoZXJzLlxuICpcbiAqIFdhdGNoZXJzIGhhc2hlcyBzaG91bGQgbm90IG92ZXJ3cml0ZSBvbmVcbiAqIGFub3RoZXIsIHNvIHdlIG1lcmdlIHRoZW0gYXMgYXJyYXlzLlxuICovXG5zdHJhdHMud2F0Y2ggPSBmdW5jdGlvbiAoXG4gIHBhcmVudFZhbCxcbiAgY2hpbGRWYWwsXG4gIHZtLFxuICBrZXlcbikge1xuICAvLyB3b3JrIGFyb3VuZCBGaXJlZm94J3MgT2JqZWN0LnByb3RvdHlwZS53YXRjaC4uLlxuICBpZiAocGFyZW50VmFsID09PSBuYXRpdmVXYXRjaCkgeyBwYXJlbnRWYWwgPSB1bmRlZmluZWQ7IH1cbiAgaWYgKGNoaWxkVmFsID09PSBuYXRpdmVXYXRjaCkgeyBjaGlsZFZhbCA9IHVuZGVmaW5lZDsgfVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKCFjaGlsZFZhbCkgeyByZXR1cm4gT2JqZWN0LmNyZWF0ZShwYXJlbnRWYWwgfHwgbnVsbCkgfVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGFzc2VydE9iamVjdFR5cGUoa2V5LCBjaGlsZFZhbCwgdm0pO1xuICB9XG4gIGlmICghcGFyZW50VmFsKSB7IHJldHVybiBjaGlsZFZhbCB9XG4gIHZhciByZXQgPSB7fTtcbiAgZXh0ZW5kKHJldCwgcGFyZW50VmFsKTtcbiAgZm9yICh2YXIga2V5JDEgaW4gY2hpbGRWYWwpIHtcbiAgICB2YXIgcGFyZW50ID0gcmV0W2tleSQxXTtcbiAgICB2YXIgY2hpbGQgPSBjaGlsZFZhbFtrZXkkMV07XG4gICAgaWYgKHBhcmVudCAmJiAhQXJyYXkuaXNBcnJheShwYXJlbnQpKSB7XG4gICAgICBwYXJlbnQgPSBbcGFyZW50XTtcbiAgICB9XG4gICAgcmV0W2tleSQxXSA9IHBhcmVudFxuICAgICAgPyBwYXJlbnQuY29uY2F0KGNoaWxkKVxuICAgICAgOiBBcnJheS5pc0FycmF5KGNoaWxkKSA/IGNoaWxkIDogW2NoaWxkXTtcbiAgfVxuICByZXR1cm4gcmV0XG59O1xuXG4vKipcbiAqIE90aGVyIG9iamVjdCBoYXNoZXMuXG4gKi9cbnN0cmF0cy5wcm9wcyA9XG5zdHJhdHMubWV0aG9kcyA9XG5zdHJhdHMuaW5qZWN0ID1cbnN0cmF0cy5jb21wdXRlZCA9IGZ1bmN0aW9uIChcbiAgcGFyZW50VmFsLFxuICBjaGlsZFZhbCxcbiAgdm0sXG4gIGtleVxuKSB7XG4gIGlmIChjaGlsZFZhbCAmJiBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgYXNzZXJ0T2JqZWN0VHlwZShrZXksIGNoaWxkVmFsLCB2bSk7XG4gIH1cbiAgaWYgKCFwYXJlbnRWYWwpIHsgcmV0dXJuIGNoaWxkVmFsIH1cbiAgdmFyIHJldCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gIGV4dGVuZChyZXQsIHBhcmVudFZhbCk7XG4gIGlmIChjaGlsZFZhbCkgeyBleHRlbmQocmV0LCBjaGlsZFZhbCk7IH1cbiAgcmV0dXJuIHJldFxufTtcbnN0cmF0cy5wcm92aWRlID0gbWVyZ2VEYXRhT3JGbjtcblxuLyoqXG4gKiBEZWZhdWx0IHN0cmF0ZWd5LlxuICovXG52YXIgZGVmYXVsdFN0cmF0ID0gZnVuY3Rpb24gKHBhcmVudFZhbCwgY2hpbGRWYWwpIHtcbiAgcmV0dXJuIGNoaWxkVmFsID09PSB1bmRlZmluZWRcbiAgICA/IHBhcmVudFZhbFxuICAgIDogY2hpbGRWYWxcbn07XG5cbi8qKlxuICogVmFsaWRhdGUgY29tcG9uZW50IG5hbWVzXG4gKi9cbmZ1bmN0aW9uIGNoZWNrQ29tcG9uZW50cyAob3B0aW9ucykge1xuICBmb3IgKHZhciBrZXkgaW4gb3B0aW9ucy5jb21wb25lbnRzKSB7XG4gICAgdmFsaWRhdGVDb21wb25lbnROYW1lKGtleSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gdmFsaWRhdGVDb21wb25lbnROYW1lIChuYW1lKSB7XG4gIGlmICghbmV3IFJlZ0V4cCgoXCJeW2EtekEtWl1bXFxcXC1cXFxcLjAtOV9cIiArICh1bmljb2RlUmVnRXhwLnNvdXJjZSkgKyBcIl0qJFwiKSkudGVzdChuYW1lKSkge1xuICAgIHdhcm4oXG4gICAgICAnSW52YWxpZCBjb21wb25lbnQgbmFtZTogXCInICsgbmFtZSArICdcIi4gQ29tcG9uZW50IG5hbWVzICcgK1xuICAgICAgJ3Nob3VsZCBjb25mb3JtIHRvIHZhbGlkIGN1c3RvbSBlbGVtZW50IG5hbWUgaW4gaHRtbDUgc3BlY2lmaWNhdGlvbi4nXG4gICAgKTtcbiAgfVxuICBpZiAoaXNCdWlsdEluVGFnKG5hbWUpIHx8IGNvbmZpZy5pc1Jlc2VydmVkVGFnKG5hbWUpKSB7XG4gICAgd2FybihcbiAgICAgICdEbyBub3QgdXNlIGJ1aWx0LWluIG9yIHJlc2VydmVkIEhUTUwgZWxlbWVudHMgYXMgY29tcG9uZW50ICcgK1xuICAgICAgJ2lkOiAnICsgbmFtZVxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBFbnN1cmUgYWxsIHByb3BzIG9wdGlvbiBzeW50YXggYXJlIG5vcm1hbGl6ZWQgaW50byB0aGVcbiAqIE9iamVjdC1iYXNlZCBmb3JtYXQuXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVByb3BzIChvcHRpb25zLCB2bSkge1xuICB2YXIgcHJvcHMgPSBvcHRpb25zLnByb3BzO1xuICBpZiAoIXByb3BzKSB7IHJldHVybiB9XG4gIHZhciByZXMgPSB7fTtcbiAgdmFyIGksIHZhbCwgbmFtZTtcbiAgaWYgKEFycmF5LmlzQXJyYXkocHJvcHMpKSB7XG4gICAgaSA9IHByb3BzLmxlbmd0aDtcbiAgICB3aGlsZSAoaS0tKSB7XG4gICAgICB2YWwgPSBwcm9wc1tpXTtcbiAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xuICAgICAgICBuYW1lID0gY2FtZWxpemUodmFsKTtcbiAgICAgICAgcmVzW25hbWVdID0geyB0eXBlOiBudWxsIH07XG4gICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgd2FybigncHJvcHMgbXVzdCBiZSBzdHJpbmdzIHdoZW4gdXNpbmcgYXJyYXkgc3ludGF4LicpO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIGlmIChpc1BsYWluT2JqZWN0KHByb3BzKSkge1xuICAgIGZvciAodmFyIGtleSBpbiBwcm9wcykge1xuICAgICAgdmFsID0gcHJvcHNba2V5XTtcbiAgICAgIG5hbWUgPSBjYW1lbGl6ZShrZXkpO1xuICAgICAgcmVzW25hbWVdID0gaXNQbGFpbk9iamVjdCh2YWwpXG4gICAgICAgID8gdmFsXG4gICAgICAgIDogeyB0eXBlOiB2YWwgfTtcbiAgICB9XG4gIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHdhcm4oXG4gICAgICBcIkludmFsaWQgdmFsdWUgZm9yIG9wdGlvbiBcXFwicHJvcHNcXFwiOiBleHBlY3RlZCBhbiBBcnJheSBvciBhbiBPYmplY3QsIFwiICtcbiAgICAgIFwiYnV0IGdvdCBcIiArICh0b1Jhd1R5cGUocHJvcHMpKSArIFwiLlwiLFxuICAgICAgdm1cbiAgICApO1xuICB9XG4gIG9wdGlvbnMucHJvcHMgPSByZXM7XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGFsbCBpbmplY3Rpb25zIGludG8gT2JqZWN0LWJhc2VkIGZvcm1hdFxuICovXG5mdW5jdGlvbiBub3JtYWxpemVJbmplY3QgKG9wdGlvbnMsIHZtKSB7XG4gIHZhciBpbmplY3QgPSBvcHRpb25zLmluamVjdDtcbiAgaWYgKCFpbmplY3QpIHsgcmV0dXJuIH1cbiAgdmFyIG5vcm1hbGl6ZWQgPSBvcHRpb25zLmluamVjdCA9IHt9O1xuICBpZiAoQXJyYXkuaXNBcnJheShpbmplY3QpKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbmplY3QubGVuZ3RoOyBpKyspIHtcbiAgICAgIG5vcm1hbGl6ZWRbaW5qZWN0W2ldXSA9IHsgZnJvbTogaW5qZWN0W2ldIH07XG4gICAgfVxuICB9IGVsc2UgaWYgKGlzUGxhaW5PYmplY3QoaW5qZWN0KSkge1xuICAgIGZvciAodmFyIGtleSBpbiBpbmplY3QpIHtcbiAgICAgIHZhciB2YWwgPSBpbmplY3Rba2V5XTtcbiAgICAgIG5vcm1hbGl6ZWRba2V5XSA9IGlzUGxhaW5PYmplY3QodmFsKVxuICAgICAgICA/IGV4dGVuZCh7IGZyb206IGtleSB9LCB2YWwpXG4gICAgICAgIDogeyBmcm9tOiB2YWwgfTtcbiAgICB9XG4gIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIHdhcm4oXG4gICAgICBcIkludmFsaWQgdmFsdWUgZm9yIG9wdGlvbiBcXFwiaW5qZWN0XFxcIjogZXhwZWN0ZWQgYW4gQXJyYXkgb3IgYW4gT2JqZWN0LCBcIiArXG4gICAgICBcImJ1dCBnb3QgXCIgKyAodG9SYXdUeXBlKGluamVjdCkpICsgXCIuXCIsXG4gICAgICB2bVxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBOb3JtYWxpemUgcmF3IGZ1bmN0aW9uIGRpcmVjdGl2ZXMgaW50byBvYmplY3QgZm9ybWF0LlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVEaXJlY3RpdmVzIChvcHRpb25zKSB7XG4gIHZhciBkaXJzID0gb3B0aW9ucy5kaXJlY3RpdmVzO1xuICBpZiAoZGlycykge1xuICAgIGZvciAodmFyIGtleSBpbiBkaXJzKSB7XG4gICAgICB2YXIgZGVmJCQxID0gZGlyc1trZXldO1xuICAgICAgaWYgKHR5cGVvZiBkZWYkJDEgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgZGlyc1trZXldID0geyBiaW5kOiBkZWYkJDEsIHVwZGF0ZTogZGVmJCQxIH07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGFzc2VydE9iamVjdFR5cGUgKG5hbWUsIHZhbHVlLCB2bSkge1xuICBpZiAoIWlzUGxhaW5PYmplY3QodmFsdWUpKSB7XG4gICAgd2FybihcbiAgICAgIFwiSW52YWxpZCB2YWx1ZSBmb3Igb3B0aW9uIFxcXCJcIiArIG5hbWUgKyBcIlxcXCI6IGV4cGVjdGVkIGFuIE9iamVjdCwgXCIgK1xuICAgICAgXCJidXQgZ290IFwiICsgKHRvUmF3VHlwZSh2YWx1ZSkpICsgXCIuXCIsXG4gICAgICB2bVxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBNZXJnZSB0d28gb3B0aW9uIG9iamVjdHMgaW50byBhIG5ldyBvbmUuXG4gKiBDb3JlIHV0aWxpdHkgdXNlZCBpbiBib3RoIGluc3RhbnRpYXRpb24gYW5kIGluaGVyaXRhbmNlLlxuICovXG5mdW5jdGlvbiBtZXJnZU9wdGlvbnMgKFxuICBwYXJlbnQsXG4gIGNoaWxkLFxuICB2bVxuKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgY2hlY2tDb21wb25lbnRzKGNoaWxkKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgY2hpbGQgPT09ICdmdW5jdGlvbicpIHtcbiAgICBjaGlsZCA9IGNoaWxkLm9wdGlvbnM7XG4gIH1cblxuICBub3JtYWxpemVQcm9wcyhjaGlsZCwgdm0pO1xuICBub3JtYWxpemVJbmplY3QoY2hpbGQsIHZtKTtcbiAgbm9ybWFsaXplRGlyZWN0aXZlcyhjaGlsZCk7XG5cbiAgLy8gQXBwbHkgZXh0ZW5kcyBhbmQgbWl4aW5zIG9uIHRoZSBjaGlsZCBvcHRpb25zLFxuICAvLyBidXQgb25seSBpZiBpdCBpcyBhIHJhdyBvcHRpb25zIG9iamVjdCB0aGF0IGlzbid0XG4gIC8vIHRoZSByZXN1bHQgb2YgYW5vdGhlciBtZXJnZU9wdGlvbnMgY2FsbC5cbiAgLy8gT25seSBtZXJnZWQgb3B0aW9ucyBoYXMgdGhlIF9iYXNlIHByb3BlcnR5LlxuICBpZiAoIWNoaWxkLl9iYXNlKSB7XG4gICAgaWYgKGNoaWxkLmV4dGVuZHMpIHtcbiAgICAgIHBhcmVudCA9IG1lcmdlT3B0aW9ucyhwYXJlbnQsIGNoaWxkLmV4dGVuZHMsIHZtKTtcbiAgICB9XG4gICAgaWYgKGNoaWxkLm1peGlucykge1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBjaGlsZC5taXhpbnMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIHBhcmVudCA9IG1lcmdlT3B0aW9ucyhwYXJlbnQsIGNoaWxkLm1peGluc1tpXSwgdm0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBvcHRpb25zID0ge307XG4gIHZhciBrZXk7XG4gIGZvciAoa2V5IGluIHBhcmVudCkge1xuICAgIG1lcmdlRmllbGQoa2V5KTtcbiAgfVxuICBmb3IgKGtleSBpbiBjaGlsZCkge1xuICAgIGlmICghaGFzT3duKHBhcmVudCwga2V5KSkge1xuICAgICAgbWVyZ2VGaWVsZChrZXkpO1xuICAgIH1cbiAgfVxuICBmdW5jdGlvbiBtZXJnZUZpZWxkIChrZXkpIHtcbiAgICB2YXIgc3RyYXQgPSBzdHJhdHNba2V5XSB8fCBkZWZhdWx0U3RyYXQ7XG4gICAgb3B0aW9uc1trZXldID0gc3RyYXQocGFyZW50W2tleV0sIGNoaWxkW2tleV0sIHZtLCBrZXkpO1xuICB9XG4gIHJldHVybiBvcHRpb25zXG59XG5cbi8qKlxuICogUmVzb2x2ZSBhbiBhc3NldC5cbiAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBiZWNhdXNlIGNoaWxkIGluc3RhbmNlcyBuZWVkIGFjY2Vzc1xuICogdG8gYXNzZXRzIGRlZmluZWQgaW4gaXRzIGFuY2VzdG9yIGNoYWluLlxuICovXG5mdW5jdGlvbiByZXNvbHZlQXNzZXQgKFxuICBvcHRpb25zLFxuICB0eXBlLFxuICBpZCxcbiAgd2Fybk1pc3Npbmdcbikge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKHR5cGVvZiBpZCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIgYXNzZXRzID0gb3B0aW9uc1t0eXBlXTtcbiAgLy8gY2hlY2sgbG9jYWwgcmVnaXN0cmF0aW9uIHZhcmlhdGlvbnMgZmlyc3RcbiAgaWYgKGhhc093bihhc3NldHMsIGlkKSkgeyByZXR1cm4gYXNzZXRzW2lkXSB9XG4gIHZhciBjYW1lbGl6ZWRJZCA9IGNhbWVsaXplKGlkKTtcbiAgaWYgKGhhc093bihhc3NldHMsIGNhbWVsaXplZElkKSkgeyByZXR1cm4gYXNzZXRzW2NhbWVsaXplZElkXSB9XG4gIHZhciBQYXNjYWxDYXNlSWQgPSBjYXBpdGFsaXplKGNhbWVsaXplZElkKTtcbiAgaWYgKGhhc093bihhc3NldHMsIFBhc2NhbENhc2VJZCkpIHsgcmV0dXJuIGFzc2V0c1tQYXNjYWxDYXNlSWRdIH1cbiAgLy8gZmFsbGJhY2sgdG8gcHJvdG90eXBlIGNoYWluXG4gIHZhciByZXMgPSBhc3NldHNbaWRdIHx8IGFzc2V0c1tjYW1lbGl6ZWRJZF0gfHwgYXNzZXRzW1Bhc2NhbENhc2VJZF07XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm5NaXNzaW5nICYmICFyZXMpIHtcbiAgICB3YXJuKFxuICAgICAgJ0ZhaWxlZCB0byByZXNvbHZlICcgKyB0eXBlLnNsaWNlKDAsIC0xKSArICc6ICcgKyBpZCxcbiAgICAgIG9wdGlvbnNcbiAgICApO1xuICB9XG4gIHJldHVybiByZXNcbn1cblxuLyogICovXG5cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZVByb3AgKFxuICBrZXksXG4gIHByb3BPcHRpb25zLFxuICBwcm9wc0RhdGEsXG4gIHZtXG4pIHtcbiAgdmFyIHByb3AgPSBwcm9wT3B0aW9uc1trZXldO1xuICB2YXIgYWJzZW50ID0gIWhhc093bihwcm9wc0RhdGEsIGtleSk7XG4gIHZhciB2YWx1ZSA9IHByb3BzRGF0YVtrZXldO1xuICAvLyBib29sZWFuIGNhc3RpbmdcbiAgdmFyIGJvb2xlYW5JbmRleCA9IGdldFR5cGVJbmRleChCb29sZWFuLCBwcm9wLnR5cGUpO1xuICBpZiAoYm9vbGVhbkluZGV4ID4gLTEpIHtcbiAgICBpZiAoYWJzZW50ICYmICFoYXNPd24ocHJvcCwgJ2RlZmF1bHQnKSkge1xuICAgICAgdmFsdWUgPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gaHlwaGVuYXRlKGtleSkpIHtcbiAgICAgIC8vIG9ubHkgY2FzdCBlbXB0eSBzdHJpbmcgLyBzYW1lIG5hbWUgdG8gYm9vbGVhbiBpZlxuICAgICAgLy8gYm9vbGVhbiBoYXMgaGlnaGVyIHByaW9yaXR5XG4gICAgICB2YXIgc3RyaW5nSW5kZXggPSBnZXRUeXBlSW5kZXgoU3RyaW5nLCBwcm9wLnR5cGUpO1xuICAgICAgaWYgKHN0cmluZ0luZGV4IDwgMCB8fCBib29sZWFuSW5kZXggPCBzdHJpbmdJbmRleCkge1xuICAgICAgICB2YWx1ZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIGNoZWNrIGRlZmF1bHQgdmFsdWVcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICB2YWx1ZSA9IGdldFByb3BEZWZhdWx0VmFsdWUodm0sIHByb3AsIGtleSk7XG4gICAgLy8gc2luY2UgdGhlIGRlZmF1bHQgdmFsdWUgaXMgYSBmcmVzaCBjb3B5LFxuICAgIC8vIG1ha2Ugc3VyZSB0byBvYnNlcnZlIGl0LlxuICAgIHZhciBwcmV2U2hvdWxkT2JzZXJ2ZSA9IHNob3VsZE9ic2VydmU7XG4gICAgdG9nZ2xlT2JzZXJ2aW5nKHRydWUpO1xuICAgIG9ic2VydmUodmFsdWUpO1xuICAgIHRvZ2dsZU9ic2VydmluZyhwcmV2U2hvdWxkT2JzZXJ2ZSk7XG4gIH1cbiAgaWYgKFxuICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiZcbiAgICAvLyBza2lwIHZhbGlkYXRpb24gZm9yIHdlZXggcmVjeWNsZS1saXN0IGNoaWxkIGNvbXBvbmVudCBwcm9wc1xuICAgICEoZmFsc2UpXG4gICkge1xuICAgIGFzc2VydFByb3AocHJvcCwga2V5LCB2YWx1ZSwgdm0sIGFic2VudCk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlXG59XG5cbi8qKlxuICogR2V0IHRoZSBkZWZhdWx0IHZhbHVlIG9mIGEgcHJvcC5cbiAqL1xuZnVuY3Rpb24gZ2V0UHJvcERlZmF1bHRWYWx1ZSAodm0sIHByb3AsIGtleSkge1xuICAvLyBubyBkZWZhdWx0LCByZXR1cm4gdW5kZWZpbmVkXG4gIGlmICghaGFzT3duKHByb3AsICdkZWZhdWx0JykpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cbiAgdmFyIGRlZiA9IHByb3AuZGVmYXVsdDtcbiAgLy8gd2FybiBhZ2FpbnN0IG5vbi1mYWN0b3J5IGRlZmF1bHRzIGZvciBPYmplY3QgJiBBcnJheVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBpc09iamVjdChkZWYpKSB7XG4gICAgd2FybihcbiAgICAgICdJbnZhbGlkIGRlZmF1bHQgdmFsdWUgZm9yIHByb3AgXCInICsga2V5ICsgJ1wiOiAnICtcbiAgICAgICdQcm9wcyB3aXRoIHR5cGUgT2JqZWN0L0FycmF5IG11c3QgdXNlIGEgZmFjdG9yeSBmdW5jdGlvbiAnICtcbiAgICAgICd0byByZXR1cm4gdGhlIGRlZmF1bHQgdmFsdWUuJyxcbiAgICAgIHZtXG4gICAgKTtcbiAgfVxuICAvLyB0aGUgcmF3IHByb3AgdmFsdWUgd2FzIGFsc28gdW5kZWZpbmVkIGZyb20gcHJldmlvdXMgcmVuZGVyLFxuICAvLyByZXR1cm4gcHJldmlvdXMgZGVmYXVsdCB2YWx1ZSB0byBhdm9pZCB1bm5lY2Vzc2FyeSB3YXRjaGVyIHRyaWdnZXJcbiAgaWYgKHZtICYmIHZtLiRvcHRpb25zLnByb3BzRGF0YSAmJlxuICAgIHZtLiRvcHRpb25zLnByb3BzRGF0YVtrZXldID09PSB1bmRlZmluZWQgJiZcbiAgICB2bS5fcHJvcHNba2V5XSAhPT0gdW5kZWZpbmVkXG4gICkge1xuICAgIHJldHVybiB2bS5fcHJvcHNba2V5XVxuICB9XG4gIC8vIGNhbGwgZmFjdG9yeSBmdW5jdGlvbiBmb3Igbm9uLUZ1bmN0aW9uIHR5cGVzXG4gIC8vIGEgdmFsdWUgaXMgRnVuY3Rpb24gaWYgaXRzIHByb3RvdHlwZSBpcyBmdW5jdGlvbiBldmVuIGFjcm9zcyBkaWZmZXJlbnQgZXhlY3V0aW9uIGNvbnRleHRcbiAgcmV0dXJuIHR5cGVvZiBkZWYgPT09ICdmdW5jdGlvbicgJiYgZ2V0VHlwZShwcm9wLnR5cGUpICE9PSAnRnVuY3Rpb24nXG4gICAgPyBkZWYuY2FsbCh2bSlcbiAgICA6IGRlZlxufVxuXG4vKipcbiAqIEFzc2VydCB3aGV0aGVyIGEgcHJvcCBpcyB2YWxpZC5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0UHJvcCAoXG4gIHByb3AsXG4gIG5hbWUsXG4gIHZhbHVlLFxuICB2bSxcbiAgYWJzZW50XG4pIHtcbiAgaWYgKHByb3AucmVxdWlyZWQgJiYgYWJzZW50KSB7XG4gICAgd2FybihcbiAgICAgICdNaXNzaW5nIHJlcXVpcmVkIHByb3A6IFwiJyArIG5hbWUgKyAnXCInLFxuICAgICAgdm1cbiAgICApO1xuICAgIHJldHVyblxuICB9XG4gIGlmICh2YWx1ZSA9PSBudWxsICYmICFwcm9wLnJlcXVpcmVkKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIHR5cGUgPSBwcm9wLnR5cGU7XG4gIHZhciB2YWxpZCA9ICF0eXBlIHx8IHR5cGUgPT09IHRydWU7XG4gIHZhciBleHBlY3RlZFR5cGVzID0gW107XG4gIGlmICh0eXBlKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHR5cGUpKSB7XG4gICAgICB0eXBlID0gW3R5cGVdO1xuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR5cGUubGVuZ3RoICYmICF2YWxpZDsgaSsrKSB7XG4gICAgICB2YXIgYXNzZXJ0ZWRUeXBlID0gYXNzZXJ0VHlwZSh2YWx1ZSwgdHlwZVtpXSwgdm0pO1xuICAgICAgZXhwZWN0ZWRUeXBlcy5wdXNoKGFzc2VydGVkVHlwZS5leHBlY3RlZFR5cGUgfHwgJycpO1xuICAgICAgdmFsaWQgPSBhc3NlcnRlZFR5cGUudmFsaWQ7XG4gICAgfVxuICB9XG5cbiAgdmFyIGhhdmVFeHBlY3RlZFR5cGVzID0gZXhwZWN0ZWRUeXBlcy5zb21lKGZ1bmN0aW9uICh0KSB7IHJldHVybiB0OyB9KTtcbiAgaWYgKCF2YWxpZCAmJiBoYXZlRXhwZWN0ZWRUeXBlcykge1xuICAgIHdhcm4oXG4gICAgICBnZXRJbnZhbGlkVHlwZU1lc3NhZ2UobmFtZSwgdmFsdWUsIGV4cGVjdGVkVHlwZXMpLFxuICAgICAgdm1cbiAgICApO1xuICAgIHJldHVyblxuICB9XG4gIHZhciB2YWxpZGF0b3IgPSBwcm9wLnZhbGlkYXRvcjtcbiAgaWYgKHZhbGlkYXRvcikge1xuICAgIGlmICghdmFsaWRhdG9yKHZhbHVlKSkge1xuICAgICAgd2FybihcbiAgICAgICAgJ0ludmFsaWQgcHJvcDogY3VzdG9tIHZhbGlkYXRvciBjaGVjayBmYWlsZWQgZm9yIHByb3AgXCInICsgbmFtZSArICdcIi4nLFxuICAgICAgICB2bVxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIHNpbXBsZUNoZWNrUkUgPSAvXihTdHJpbmd8TnVtYmVyfEJvb2xlYW58RnVuY3Rpb258U3ltYm9sfEJpZ0ludCkkLztcblxuZnVuY3Rpb24gYXNzZXJ0VHlwZSAodmFsdWUsIHR5cGUsIHZtKSB7XG4gIHZhciB2YWxpZDtcbiAgdmFyIGV4cGVjdGVkVHlwZSA9IGdldFR5cGUodHlwZSk7XG4gIGlmIChzaW1wbGVDaGVja1JFLnRlc3QoZXhwZWN0ZWRUeXBlKSkge1xuICAgIHZhciB0ID0gdHlwZW9mIHZhbHVlO1xuICAgIHZhbGlkID0gdCA9PT0gZXhwZWN0ZWRUeXBlLnRvTG93ZXJDYXNlKCk7XG4gICAgLy8gZm9yIHByaW1pdGl2ZSB3cmFwcGVyIG9iamVjdHNcbiAgICBpZiAoIXZhbGlkICYmIHQgPT09ICdvYmplY3QnKSB7XG4gICAgICB2YWxpZCA9IHZhbHVlIGluc3RhbmNlb2YgdHlwZTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoZXhwZWN0ZWRUeXBlID09PSAnT2JqZWN0Jykge1xuICAgIHZhbGlkID0gaXNQbGFpbk9iamVjdCh2YWx1ZSk7XG4gIH0gZWxzZSBpZiAoZXhwZWN0ZWRUeXBlID09PSAnQXJyYXknKSB7XG4gICAgdmFsaWQgPSBBcnJheS5pc0FycmF5KHZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgdmFsaWQgPSB2YWx1ZSBpbnN0YW5jZW9mIHR5cGU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgd2FybignSW52YWxpZCBwcm9wIHR5cGU6IFwiJyArIFN0cmluZyh0eXBlKSArICdcIiBpcyBub3QgYSBjb25zdHJ1Y3RvcicsIHZtKTtcbiAgICAgIHZhbGlkID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgdmFsaWQ6IHZhbGlkLFxuICAgIGV4cGVjdGVkVHlwZTogZXhwZWN0ZWRUeXBlXG4gIH1cbn1cblxudmFyIGZ1bmN0aW9uVHlwZUNoZWNrUkUgPSAvXlxccypmdW5jdGlvbiAoXFx3KykvO1xuXG4vKipcbiAqIFVzZSBmdW5jdGlvbiBzdHJpbmcgbmFtZSB0byBjaGVjayBidWlsdC1pbiB0eXBlcyxcbiAqIGJlY2F1c2UgYSBzaW1wbGUgZXF1YWxpdHkgY2hlY2sgd2lsbCBmYWlsIHdoZW4gcnVubmluZ1xuICogYWNyb3NzIGRpZmZlcmVudCB2bXMgLyBpZnJhbWVzLlxuICovXG5mdW5jdGlvbiBnZXRUeXBlIChmbikge1xuICB2YXIgbWF0Y2ggPSBmbiAmJiBmbi50b1N0cmluZygpLm1hdGNoKGZ1bmN0aW9uVHlwZUNoZWNrUkUpO1xuICByZXR1cm4gbWF0Y2ggPyBtYXRjaFsxXSA6ICcnXG59XG5cbmZ1bmN0aW9uIGlzU2FtZVR5cGUgKGEsIGIpIHtcbiAgcmV0dXJuIGdldFR5cGUoYSkgPT09IGdldFR5cGUoYilcbn1cblxuZnVuY3Rpb24gZ2V0VHlwZUluZGV4ICh0eXBlLCBleHBlY3RlZFR5cGVzKSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShleHBlY3RlZFR5cGVzKSkge1xuICAgIHJldHVybiBpc1NhbWVUeXBlKGV4cGVjdGVkVHlwZXMsIHR5cGUpID8gMCA6IC0xXG4gIH1cbiAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGV4cGVjdGVkVHlwZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICBpZiAoaXNTYW1lVHlwZShleHBlY3RlZFR5cGVzW2ldLCB0eXBlKSkge1xuICAgICAgcmV0dXJuIGlcbiAgICB9XG4gIH1cbiAgcmV0dXJuIC0xXG59XG5cbmZ1bmN0aW9uIGdldEludmFsaWRUeXBlTWVzc2FnZSAobmFtZSwgdmFsdWUsIGV4cGVjdGVkVHlwZXMpIHtcbiAgdmFyIG1lc3NhZ2UgPSBcIkludmFsaWQgcHJvcDogdHlwZSBjaGVjayBmYWlsZWQgZm9yIHByb3AgXFxcIlwiICsgbmFtZSArIFwiXFxcIi5cIiArXG4gICAgXCIgRXhwZWN0ZWQgXCIgKyAoZXhwZWN0ZWRUeXBlcy5tYXAoY2FwaXRhbGl6ZSkuam9pbignLCAnKSk7XG4gIHZhciBleHBlY3RlZFR5cGUgPSBleHBlY3RlZFR5cGVzWzBdO1xuICB2YXIgcmVjZWl2ZWRUeXBlID0gdG9SYXdUeXBlKHZhbHVlKTtcbiAgLy8gY2hlY2sgaWYgd2UgbmVlZCB0byBzcGVjaWZ5IGV4cGVjdGVkIHZhbHVlXG4gIGlmIChcbiAgICBleHBlY3RlZFR5cGVzLmxlbmd0aCA9PT0gMSAmJlxuICAgIGlzRXhwbGljYWJsZShleHBlY3RlZFR5cGUpICYmXG4gICAgaXNFeHBsaWNhYmxlKHR5cGVvZiB2YWx1ZSkgJiZcbiAgICAhaXNCb29sZWFuKGV4cGVjdGVkVHlwZSwgcmVjZWl2ZWRUeXBlKVxuICApIHtcbiAgICBtZXNzYWdlICs9IFwiIHdpdGggdmFsdWUgXCIgKyAoc3R5bGVWYWx1ZSh2YWx1ZSwgZXhwZWN0ZWRUeXBlKSk7XG4gIH1cbiAgbWVzc2FnZSArPSBcIiwgZ290IFwiICsgcmVjZWl2ZWRUeXBlICsgXCIgXCI7XG4gIC8vIGNoZWNrIGlmIHdlIG5lZWQgdG8gc3BlY2lmeSByZWNlaXZlZCB2YWx1ZVxuICBpZiAoaXNFeHBsaWNhYmxlKHJlY2VpdmVkVHlwZSkpIHtcbiAgICBtZXNzYWdlICs9IFwid2l0aCB2YWx1ZSBcIiArIChzdHlsZVZhbHVlKHZhbHVlLCByZWNlaXZlZFR5cGUpKSArIFwiLlwiO1xuICB9XG4gIHJldHVybiBtZXNzYWdlXG59XG5cbmZ1bmN0aW9uIHN0eWxlVmFsdWUgKHZhbHVlLCB0eXBlKSB7XG4gIGlmICh0eXBlID09PSAnU3RyaW5nJykge1xuICAgIHJldHVybiAoXCJcXFwiXCIgKyB2YWx1ZSArIFwiXFxcIlwiKVxuICB9IGVsc2UgaWYgKHR5cGUgPT09ICdOdW1iZXInKSB7XG4gICAgcmV0dXJuIChcIlwiICsgKE51bWJlcih2YWx1ZSkpKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiAoXCJcIiArIHZhbHVlKVxuICB9XG59XG5cbnZhciBFWFBMSUNBQkxFX1RZUEVTID0gWydzdHJpbmcnLCAnbnVtYmVyJywgJ2Jvb2xlYW4nXTtcbmZ1bmN0aW9uIGlzRXhwbGljYWJsZSAodmFsdWUpIHtcbiAgcmV0dXJuIEVYUExJQ0FCTEVfVFlQRVMuc29tZShmdW5jdGlvbiAoZWxlbSkgeyByZXR1cm4gdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gZWxlbTsgfSlcbn1cblxuZnVuY3Rpb24gaXNCb29sZWFuICgpIHtcbiAgdmFyIGFyZ3MgPSBbXSwgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgd2hpbGUgKCBsZW4tLSApIGFyZ3NbIGxlbiBdID0gYXJndW1lbnRzWyBsZW4gXTtcblxuICByZXR1cm4gYXJncy5zb21lKGZ1bmN0aW9uIChlbGVtKSB7IHJldHVybiBlbGVtLnRvTG93ZXJDYXNlKCkgPT09ICdib29sZWFuJzsgfSlcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGhhbmRsZUVycm9yIChlcnIsIHZtLCBpbmZvKSB7XG4gIC8vIERlYWN0aXZhdGUgZGVwcyB0cmFja2luZyB3aGlsZSBwcm9jZXNzaW5nIGVycm9yIGhhbmRsZXIgdG8gYXZvaWQgcG9zc2libGUgaW5maW5pdGUgcmVuZGVyaW5nLlxuICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS92dWVqcy92dWV4L2lzc3Vlcy8xNTA1XG4gIHB1c2hUYXJnZXQoKTtcbiAgdHJ5IHtcbiAgICBpZiAodm0pIHtcbiAgICAgIHZhciBjdXIgPSB2bTtcbiAgICAgIHdoaWxlICgoY3VyID0gY3VyLiRwYXJlbnQpKSB7XG4gICAgICAgIHZhciBob29rcyA9IGN1ci4kb3B0aW9ucy5lcnJvckNhcHR1cmVkO1xuICAgICAgICBpZiAoaG9va3MpIHtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGhvb2tzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB2YXIgY2FwdHVyZSA9IGhvb2tzW2ldLmNhbGwoY3VyLCBlcnIsIHZtLCBpbmZvKSA9PT0gZmFsc2U7XG4gICAgICAgICAgICAgIGlmIChjYXB0dXJlKSB7IHJldHVybiB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIGdsb2JhbEhhbmRsZUVycm9yKGUsIGN1ciwgJ2Vycm9yQ2FwdHVyZWQgaG9vaycpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBnbG9iYWxIYW5kbGVFcnJvcihlcnIsIHZtLCBpbmZvKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBwb3BUYXJnZXQoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbnZva2VXaXRoRXJyb3JIYW5kbGluZyAoXG4gIGhhbmRsZXIsXG4gIGNvbnRleHQsXG4gIGFyZ3MsXG4gIHZtLFxuICBpbmZvXG4pIHtcbiAgdmFyIHJlcztcbiAgdHJ5IHtcbiAgICByZXMgPSBhcmdzID8gaGFuZGxlci5hcHBseShjb250ZXh0LCBhcmdzKSA6IGhhbmRsZXIuY2FsbChjb250ZXh0KTtcbiAgICBpZiAocmVzICYmICFyZXMuX2lzVnVlICYmIGlzUHJvbWlzZShyZXMpICYmICFyZXMuX2hhbmRsZWQpIHtcbiAgICAgIHJlcy5jYXRjaChmdW5jdGlvbiAoZSkgeyByZXR1cm4gaGFuZGxlRXJyb3IoZSwgdm0sIGluZm8gKyBcIiAoUHJvbWlzZS9hc3luYylcIik7IH0pO1xuICAgICAgLy8gaXNzdWUgIzk1MTFcbiAgICAgIC8vIGF2b2lkIGNhdGNoIHRyaWdnZXJpbmcgbXVsdGlwbGUgdGltZXMgd2hlbiBuZXN0ZWQgY2FsbHNcbiAgICAgIHJlcy5faGFuZGxlZCA9IHRydWU7XG4gICAgfVxuICB9IGNhdGNoIChlKSB7XG4gICAgaGFuZGxlRXJyb3IoZSwgdm0sIGluZm8pO1xuICB9XG4gIHJldHVybiByZXNcbn1cblxuZnVuY3Rpb24gZ2xvYmFsSGFuZGxlRXJyb3IgKGVyciwgdm0sIGluZm8pIHtcbiAgaWYgKGNvbmZpZy5lcnJvckhhbmRsZXIpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGNvbmZpZy5lcnJvckhhbmRsZXIuY2FsbChudWxsLCBlcnIsIHZtLCBpbmZvKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIGlmIHRoZSB1c2VyIGludGVudGlvbmFsbHkgdGhyb3dzIHRoZSBvcmlnaW5hbCBlcnJvciBpbiB0aGUgaGFuZGxlcixcbiAgICAgIC8vIGRvIG5vdCBsb2cgaXQgdHdpY2VcbiAgICAgIGlmIChlICE9PSBlcnIpIHtcbiAgICAgICAgbG9nRXJyb3IoZSwgbnVsbCwgJ2NvbmZpZy5lcnJvckhhbmRsZXInKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgbG9nRXJyb3IoZXJyLCB2bSwgaW5mbyk7XG59XG5cbmZ1bmN0aW9uIGxvZ0Vycm9yIChlcnIsIHZtLCBpbmZvKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgd2FybigoXCJFcnJvciBpbiBcIiArIGluZm8gKyBcIjogXFxcIlwiICsgKGVyci50b1N0cmluZygpKSArIFwiXFxcIlwiKSwgdm0pO1xuICB9XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmICgoaW5Ccm93c2VyIHx8IGluV2VleCkgJiYgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IGVyclxuICB9XG59XG5cbi8qICAqL1xuXG52YXIgaXNVc2luZ01pY3JvVGFzayA9IGZhbHNlO1xuXG52YXIgY2FsbGJhY2tzID0gW107XG52YXIgcGVuZGluZyA9IGZhbHNlO1xuXG5mdW5jdGlvbiBmbHVzaENhbGxiYWNrcyAoKSB7XG4gIHBlbmRpbmcgPSBmYWxzZTtcbiAgdmFyIGNvcGllcyA9IGNhbGxiYWNrcy5zbGljZSgwKTtcbiAgY2FsbGJhY2tzLmxlbmd0aCA9IDA7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgY29waWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29waWVzW2ldKCk7XG4gIH1cbn1cblxuLy8gSGVyZSB3ZSBoYXZlIGFzeW5jIGRlZmVycmluZyB3cmFwcGVycyB1c2luZyBtaWNyb3Rhc2tzLlxuLy8gSW4gMi41IHdlIHVzZWQgKG1hY3JvKSB0YXNrcyAoaW4gY29tYmluYXRpb24gd2l0aCBtaWNyb3Rhc2tzKS5cbi8vIEhvd2V2ZXIsIGl0IGhhcyBzdWJ0bGUgcHJvYmxlbXMgd2hlbiBzdGF0ZSBpcyBjaGFuZ2VkIHJpZ2h0IGJlZm9yZSByZXBhaW50XG4vLyAoZS5nLiAjNjgxMywgb3V0LWluIHRyYW5zaXRpb25zKS5cbi8vIEFsc28sIHVzaW5nIChtYWNybykgdGFza3MgaW4gZXZlbnQgaGFuZGxlciB3b3VsZCBjYXVzZSBzb21lIHdlaXJkIGJlaGF2aW9yc1xuLy8gdGhhdCBjYW5ub3QgYmUgY2lyY3VtdmVudGVkIChlLmcuICM3MTA5LCAjNzE1MywgIzc1NDYsICM3ODM0LCAjODEwOSkuXG4vLyBTbyB3ZSBub3cgdXNlIG1pY3JvdGFza3MgZXZlcnl3aGVyZSwgYWdhaW4uXG4vLyBBIG1ham9yIGRyYXdiYWNrIG9mIHRoaXMgdHJhZGVvZmYgaXMgdGhhdCB0aGVyZSBhcmUgc29tZSBzY2VuYXJpb3Ncbi8vIHdoZXJlIG1pY3JvdGFza3MgaGF2ZSB0b28gaGlnaCBhIHByaW9yaXR5IGFuZCBmaXJlIGluIGJldHdlZW4gc3VwcG9zZWRseVxuLy8gc2VxdWVudGlhbCBldmVudHMgKGUuZy4gIzQ1MjEsICM2NjkwLCB3aGljaCBoYXZlIHdvcmthcm91bmRzKVxuLy8gb3IgZXZlbiBiZXR3ZWVuIGJ1YmJsaW5nIG9mIHRoZSBzYW1lIGV2ZW50ICgjNjU2NikuXG52YXIgdGltZXJGdW5jO1xuXG4vLyBUaGUgbmV4dFRpY2sgYmVoYXZpb3IgbGV2ZXJhZ2VzIHRoZSBtaWNyb3Rhc2sgcXVldWUsIHdoaWNoIGNhbiBiZSBhY2Nlc3NlZFxuLy8gdmlhIGVpdGhlciBuYXRpdmUgUHJvbWlzZS50aGVuIG9yIE11dGF0aW9uT2JzZXJ2ZXIuXG4vLyBNdXRhdGlvbk9ic2VydmVyIGhhcyB3aWRlciBzdXBwb3J0LCBob3dldmVyIGl0IGlzIHNlcmlvdXNseSBidWdnZWQgaW5cbi8vIFVJV2ViVmlldyBpbiBpT1MgPj0gOS4zLjMgd2hlbiB0cmlnZ2VyZWQgaW4gdG91Y2ggZXZlbnQgaGFuZGxlcnMuIEl0XG4vLyBjb21wbGV0ZWx5IHN0b3BzIHdvcmtpbmcgYWZ0ZXIgdHJpZ2dlcmluZyBhIGZldyB0aW1lcy4uLiBzbywgaWYgbmF0aXZlXG4vLyBQcm9taXNlIGlzIGF2YWlsYWJsZSwgd2Ugd2lsbCB1c2UgaXQ6XG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCwgJGZsb3ctZGlzYWJsZS1saW5lICovXG5pZiAodHlwZW9mIFByb21pc2UgIT09ICd1bmRlZmluZWQnICYmIGlzTmF0aXZlKFByb21pc2UpKSB7XG4gIHZhciBwID0gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIHRpbWVyRnVuYyA9IGZ1bmN0aW9uICgpIHtcbiAgICBwLnRoZW4oZmx1c2hDYWxsYmFja3MpO1xuICAgIC8vIEluIHByb2JsZW1hdGljIFVJV2ViVmlld3MsIFByb21pc2UudGhlbiBkb2Vzbid0IGNvbXBsZXRlbHkgYnJlYWssIGJ1dFxuICAgIC8vIGl0IGNhbiBnZXQgc3R1Y2sgaW4gYSB3ZWlyZCBzdGF0ZSB3aGVyZSBjYWxsYmFja3MgYXJlIHB1c2hlZCBpbnRvIHRoZVxuICAgIC8vIG1pY3JvdGFzayBxdWV1ZSBidXQgdGhlIHF1ZXVlIGlzbid0IGJlaW5nIGZsdXNoZWQsIHVudGlsIHRoZSBicm93c2VyXG4gICAgLy8gbmVlZHMgdG8gZG8gc29tZSBvdGhlciB3b3JrLCBlLmcuIGhhbmRsZSBhIHRpbWVyLiBUaGVyZWZvcmUgd2UgY2FuXG4gICAgLy8gXCJmb3JjZVwiIHRoZSBtaWNyb3Rhc2sgcXVldWUgdG8gYmUgZmx1c2hlZCBieSBhZGRpbmcgYW4gZW1wdHkgdGltZXIuXG4gICAgaWYgKGlzSU9TKSB7IHNldFRpbWVvdXQobm9vcCk7IH1cbiAgfTtcbiAgaXNVc2luZ01pY3JvVGFzayA9IHRydWU7XG59IGVsc2UgaWYgKCFpc0lFICYmIHR5cGVvZiBNdXRhdGlvbk9ic2VydmVyICE9PSAndW5kZWZpbmVkJyAmJiAoXG4gIGlzTmF0aXZlKE11dGF0aW9uT2JzZXJ2ZXIpIHx8XG4gIC8vIFBoYW50b21KUyBhbmQgaU9TIDcueFxuICBNdXRhdGlvbk9ic2VydmVyLnRvU3RyaW5nKCkgPT09ICdbb2JqZWN0IE11dGF0aW9uT2JzZXJ2ZXJDb25zdHJ1Y3Rvcl0nXG4pKSB7XG4gIC8vIFVzZSBNdXRhdGlvbk9ic2VydmVyIHdoZXJlIG5hdGl2ZSBQcm9taXNlIGlzIG5vdCBhdmFpbGFibGUsXG4gIC8vIGUuZy4gUGhhbnRvbUpTLCBpT1M3LCBBbmRyb2lkIDQuNFxuICAvLyAoIzY0NjYgTXV0YXRpb25PYnNlcnZlciBpcyB1bnJlbGlhYmxlIGluIElFMTEpXG4gIHZhciBjb3VudGVyID0gMTtcbiAgdmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZmx1c2hDYWxsYmFja3MpO1xuICB2YXIgdGV4dE5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoY291bnRlcikpO1xuICBvYnNlcnZlci5vYnNlcnZlKHRleHROb2RlLCB7XG4gICAgY2hhcmFjdGVyRGF0YTogdHJ1ZVxuICB9KTtcbiAgdGltZXJGdW5jID0gZnVuY3Rpb24gKCkge1xuICAgIGNvdW50ZXIgPSAoY291bnRlciArIDEpICUgMjtcbiAgICB0ZXh0Tm9kZS5kYXRhID0gU3RyaW5nKGNvdW50ZXIpO1xuICB9O1xuICBpc1VzaW5nTWljcm9UYXNrID0gdHJ1ZTtcbn0gZWxzZSBpZiAodHlwZW9mIHNldEltbWVkaWF0ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgaXNOYXRpdmUoc2V0SW1tZWRpYXRlKSkge1xuICAvLyBGYWxsYmFjayB0byBzZXRJbW1lZGlhdGUuXG4gIC8vIFRlY2huaWNhbGx5IGl0IGxldmVyYWdlcyB0aGUgKG1hY3JvKSB0YXNrIHF1ZXVlLFxuICAvLyBidXQgaXQgaXMgc3RpbGwgYSBiZXR0ZXIgY2hvaWNlIHRoYW4gc2V0VGltZW91dC5cbiAgdGltZXJGdW5jID0gZnVuY3Rpb24gKCkge1xuICAgIHNldEltbWVkaWF0ZShmbHVzaENhbGxiYWNrcyk7XG4gIH07XG59IGVsc2Uge1xuICAvLyBGYWxsYmFjayB0byBzZXRUaW1lb3V0LlxuICB0aW1lckZ1bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgc2V0VGltZW91dChmbHVzaENhbGxiYWNrcywgMCk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIG5leHRUaWNrIChjYiwgY3R4KSB7XG4gIHZhciBfcmVzb2x2ZTtcbiAgY2FsbGJhY2tzLnB1c2goZnVuY3Rpb24gKCkge1xuICAgIGlmIChjYikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY2IuY2FsbChjdHgpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBoYW5kbGVFcnJvcihlLCBjdHgsICduZXh0VGljaycpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoX3Jlc29sdmUpIHtcbiAgICAgIF9yZXNvbHZlKGN0eCk7XG4gICAgfVxuICB9KTtcbiAgaWYgKCFwZW5kaW5nKSB7XG4gICAgcGVuZGluZyA9IHRydWU7XG4gICAgdGltZXJGdW5jKCk7XG4gIH1cbiAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gIGlmICghY2IgJiYgdHlwZW9mIFByb21pc2UgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgICBfcmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgfSlcbiAgfVxufVxuXG4vKiAgKi9cblxuLyogbm90IHR5cGUgY2hlY2tpbmcgdGhpcyBmaWxlIGJlY2F1c2UgZmxvdyBkb2Vzbid0IHBsYXkgd2VsbCB3aXRoIFByb3h5ICovXG5cbnZhciBpbml0UHJveHk7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBhbGxvd2VkR2xvYmFscyA9IG1ha2VNYXAoXG4gICAgJ0luZmluaXR5LHVuZGVmaW5lZCxOYU4saXNGaW5pdGUsaXNOYU4sJyArXG4gICAgJ3BhcnNlRmxvYXQscGFyc2VJbnQsZGVjb2RlVVJJLGRlY29kZVVSSUNvbXBvbmVudCxlbmNvZGVVUkksZW5jb2RlVVJJQ29tcG9uZW50LCcgK1xuICAgICdNYXRoLE51bWJlcixEYXRlLEFycmF5LE9iamVjdCxCb29sZWFuLFN0cmluZyxSZWdFeHAsTWFwLFNldCxKU09OLEludGwsQmlnSW50LCcgK1xuICAgICdyZXF1aXJlJyAvLyBmb3IgV2VicGFjay9Ccm93c2VyaWZ5XG4gICk7XG5cbiAgdmFyIHdhcm5Ob25QcmVzZW50ID0gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7XG4gICAgd2FybihcbiAgICAgIFwiUHJvcGVydHkgb3IgbWV0aG9kIFxcXCJcIiArIGtleSArIFwiXFxcIiBpcyBub3QgZGVmaW5lZCBvbiB0aGUgaW5zdGFuY2UgYnV0IFwiICtcbiAgICAgICdyZWZlcmVuY2VkIGR1cmluZyByZW5kZXIuIE1ha2Ugc3VyZSB0aGF0IHRoaXMgcHJvcGVydHkgaXMgcmVhY3RpdmUsICcgK1xuICAgICAgJ2VpdGhlciBpbiB0aGUgZGF0YSBvcHRpb24sIG9yIGZvciBjbGFzcy1iYXNlZCBjb21wb25lbnRzLCBieSAnICtcbiAgICAgICdpbml0aWFsaXppbmcgdGhlIHByb3BlcnR5LiAnICtcbiAgICAgICdTZWU6IGh0dHBzOi8vdnVlanMub3JnL3YyL2d1aWRlL3JlYWN0aXZpdHkuaHRtbCNEZWNsYXJpbmctUmVhY3RpdmUtUHJvcGVydGllcy4nLFxuICAgICAgdGFyZ2V0XG4gICAgKTtcbiAgfTtcblxuICB2YXIgd2FyblJlc2VydmVkUHJlZml4ID0gZnVuY3Rpb24gKHRhcmdldCwga2V5KSB7XG4gICAgd2FybihcbiAgICAgIFwiUHJvcGVydHkgXFxcIlwiICsga2V5ICsgXCJcXFwiIG11c3QgYmUgYWNjZXNzZWQgd2l0aCBcXFwiJGRhdGEuXCIgKyBrZXkgKyBcIlxcXCIgYmVjYXVzZSBcIiArXG4gICAgICAncHJvcGVydGllcyBzdGFydGluZyB3aXRoIFwiJFwiIG9yIFwiX1wiIGFyZSBub3QgcHJveGllZCBpbiB0aGUgVnVlIGluc3RhbmNlIHRvICcgK1xuICAgICAgJ3ByZXZlbnQgY29uZmxpY3RzIHdpdGggVnVlIGludGVybmFscy4gJyArXG4gICAgICAnU2VlOiBodHRwczovL3Z1ZWpzLm9yZy92Mi9hcGkvI2RhdGEnLFxuICAgICAgdGFyZ2V0XG4gICAgKTtcbiAgfTtcblxuICB2YXIgaGFzUHJveHkgPVxuICAgIHR5cGVvZiBQcm94eSAhPT0gJ3VuZGVmaW5lZCcgJiYgaXNOYXRpdmUoUHJveHkpO1xuXG4gIGlmIChoYXNQcm94eSkge1xuICAgIHZhciBpc0J1aWx0SW5Nb2RpZmllciA9IG1ha2VNYXAoJ3N0b3AscHJldmVudCxzZWxmLGN0cmwsc2hpZnQsYWx0LG1ldGEsZXhhY3QnKTtcbiAgICBjb25maWcua2V5Q29kZXMgPSBuZXcgUHJveHkoY29uZmlnLmtleUNvZGVzLCB7XG4gICAgICBzZXQ6IGZ1bmN0aW9uIHNldCAodGFyZ2V0LCBrZXksIHZhbHVlKSB7XG4gICAgICAgIGlmIChpc0J1aWx0SW5Nb2RpZmllcihrZXkpKSB7XG4gICAgICAgICAgd2FybigoXCJBdm9pZCBvdmVyd3JpdGluZyBidWlsdC1pbiBtb2RpZmllciBpbiBjb25maWcua2V5Q29kZXM6IC5cIiArIGtleSkpO1xuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhcmdldFtrZXldID0gdmFsdWU7XG4gICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgdmFyIGhhc0hhbmRsZXIgPSB7XG4gICAgaGFzOiBmdW5jdGlvbiBoYXMgKHRhcmdldCwga2V5KSB7XG4gICAgICB2YXIgaGFzID0ga2V5IGluIHRhcmdldDtcbiAgICAgIHZhciBpc0FsbG93ZWQgPSBhbGxvd2VkR2xvYmFscyhrZXkpIHx8XG4gICAgICAgICh0eXBlb2Yga2V5ID09PSAnc3RyaW5nJyAmJiBrZXkuY2hhckF0KDApID09PSAnXycgJiYgIShrZXkgaW4gdGFyZ2V0LiRkYXRhKSk7XG4gICAgICBpZiAoIWhhcyAmJiAhaXNBbGxvd2VkKSB7XG4gICAgICAgIGlmIChrZXkgaW4gdGFyZ2V0LiRkYXRhKSB7IHdhcm5SZXNlcnZlZFByZWZpeCh0YXJnZXQsIGtleSk7IH1cbiAgICAgICAgZWxzZSB7IHdhcm5Ob25QcmVzZW50KHRhcmdldCwga2V5KTsgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGhhcyB8fCAhaXNBbGxvd2VkXG4gICAgfVxuICB9O1xuXG4gIHZhciBnZXRIYW5kbGVyID0ge1xuICAgIGdldDogZnVuY3Rpb24gZ2V0ICh0YXJnZXQsIGtleSkge1xuICAgICAgaWYgKHR5cGVvZiBrZXkgPT09ICdzdHJpbmcnICYmICEoa2V5IGluIHRhcmdldCkpIHtcbiAgICAgICAgaWYgKGtleSBpbiB0YXJnZXQuJGRhdGEpIHsgd2FyblJlc2VydmVkUHJlZml4KHRhcmdldCwga2V5KTsgfVxuICAgICAgICBlbHNlIHsgd2Fybk5vblByZXNlbnQodGFyZ2V0LCBrZXkpOyB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdGFyZ2V0W2tleV1cbiAgICB9XG4gIH07XG5cbiAgaW5pdFByb3h5ID0gZnVuY3Rpb24gaW5pdFByb3h5ICh2bSkge1xuICAgIGlmIChoYXNQcm94eSkge1xuICAgICAgLy8gZGV0ZXJtaW5lIHdoaWNoIHByb3h5IGhhbmRsZXIgdG8gdXNlXG4gICAgICB2YXIgb3B0aW9ucyA9IHZtLiRvcHRpb25zO1xuICAgICAgdmFyIGhhbmRsZXJzID0gb3B0aW9ucy5yZW5kZXIgJiYgb3B0aW9ucy5yZW5kZXIuX3dpdGhTdHJpcHBlZFxuICAgICAgICA/IGdldEhhbmRsZXJcbiAgICAgICAgOiBoYXNIYW5kbGVyO1xuICAgICAgdm0uX3JlbmRlclByb3h5ID0gbmV3IFByb3h5KHZtLCBoYW5kbGVycyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZtLl9yZW5kZXJQcm94eSA9IHZtO1xuICAgIH1cbiAgfTtcbn1cblxuLyogICovXG5cbnZhciBzZWVuT2JqZWN0cyA9IG5ldyBfU2V0KCk7XG5cbi8qKlxuICogUmVjdXJzaXZlbHkgdHJhdmVyc2UgYW4gb2JqZWN0IHRvIGV2b2tlIGFsbCBjb252ZXJ0ZWRcbiAqIGdldHRlcnMsIHNvIHRoYXQgZXZlcnkgbmVzdGVkIHByb3BlcnR5IGluc2lkZSB0aGUgb2JqZWN0XG4gKiBpcyBjb2xsZWN0ZWQgYXMgYSBcImRlZXBcIiBkZXBlbmRlbmN5LlxuICovXG5mdW5jdGlvbiB0cmF2ZXJzZSAodmFsKSB7XG4gIF90cmF2ZXJzZSh2YWwsIHNlZW5PYmplY3RzKTtcbiAgc2Vlbk9iamVjdHMuY2xlYXIoKTtcbn1cblxuZnVuY3Rpb24gX3RyYXZlcnNlICh2YWwsIHNlZW4pIHtcbiAgdmFyIGksIGtleXM7XG4gIHZhciBpc0EgPSBBcnJheS5pc0FycmF5KHZhbCk7XG4gIGlmICgoIWlzQSAmJiAhaXNPYmplY3QodmFsKSkgfHwgT2JqZWN0LmlzRnJvemVuKHZhbCkgfHwgdmFsIGluc3RhbmNlb2YgVk5vZGUpIHtcbiAgICByZXR1cm5cbiAgfVxuICBpZiAodmFsLl9fb2JfXykge1xuICAgIHZhciBkZXBJZCA9IHZhbC5fX29iX18uZGVwLmlkO1xuICAgIGlmIChzZWVuLmhhcyhkZXBJZCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZWVuLmFkZChkZXBJZCk7XG4gIH1cbiAgaWYgKGlzQSkge1xuICAgIGkgPSB2YWwubGVuZ3RoO1xuICAgIHdoaWxlIChpLS0pIHsgX3RyYXZlcnNlKHZhbFtpXSwgc2Vlbik7IH1cbiAgfSBlbHNlIHtcbiAgICBrZXlzID0gT2JqZWN0LmtleXModmFsKTtcbiAgICBpID0ga2V5cy5sZW5ndGg7XG4gICAgd2hpbGUgKGktLSkgeyBfdHJhdmVyc2UodmFsW2tleXNbaV1dLCBzZWVuKTsgfVxuICB9XG59XG5cbnZhciBtYXJrO1xudmFyIG1lYXN1cmU7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIHZhciBwZXJmID0gaW5Ccm93c2VyICYmIHdpbmRvdy5wZXJmb3JtYW5jZTtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChcbiAgICBwZXJmICYmXG4gICAgcGVyZi5tYXJrICYmXG4gICAgcGVyZi5tZWFzdXJlICYmXG4gICAgcGVyZi5jbGVhck1hcmtzICYmXG4gICAgcGVyZi5jbGVhck1lYXN1cmVzXG4gICkge1xuICAgIG1hcmsgPSBmdW5jdGlvbiAodGFnKSB7IHJldHVybiBwZXJmLm1hcmsodGFnKTsgfTtcbiAgICBtZWFzdXJlID0gZnVuY3Rpb24gKG5hbWUsIHN0YXJ0VGFnLCBlbmRUYWcpIHtcbiAgICAgIHBlcmYubWVhc3VyZShuYW1lLCBzdGFydFRhZywgZW5kVGFnKTtcbiAgICAgIHBlcmYuY2xlYXJNYXJrcyhzdGFydFRhZyk7XG4gICAgICBwZXJmLmNsZWFyTWFya3MoZW5kVGFnKTtcbiAgICAgIC8vIHBlcmYuY2xlYXJNZWFzdXJlcyhuYW1lKVxuICAgIH07XG4gIH1cbn1cblxuLyogICovXG5cbnZhciBub3JtYWxpemVFdmVudCA9IGNhY2hlZChmdW5jdGlvbiAobmFtZSkge1xuICB2YXIgcGFzc2l2ZSA9IG5hbWUuY2hhckF0KDApID09PSAnJic7XG4gIG5hbWUgPSBwYXNzaXZlID8gbmFtZS5zbGljZSgxKSA6IG5hbWU7XG4gIHZhciBvbmNlJCQxID0gbmFtZS5jaGFyQXQoMCkgPT09ICd+JzsgLy8gUHJlZml4ZWQgbGFzdCwgY2hlY2tlZCBmaXJzdFxuICBuYW1lID0gb25jZSQkMSA/IG5hbWUuc2xpY2UoMSkgOiBuYW1lO1xuICB2YXIgY2FwdHVyZSA9IG5hbWUuY2hhckF0KDApID09PSAnISc7XG4gIG5hbWUgPSBjYXB0dXJlID8gbmFtZS5zbGljZSgxKSA6IG5hbWU7XG4gIHJldHVybiB7XG4gICAgbmFtZTogbmFtZSxcbiAgICBvbmNlOiBvbmNlJCQxLFxuICAgIGNhcHR1cmU6IGNhcHR1cmUsXG4gICAgcGFzc2l2ZTogcGFzc2l2ZVxuICB9XG59KTtcblxuZnVuY3Rpb24gY3JlYXRlRm5JbnZva2VyIChmbnMsIHZtKSB7XG4gIGZ1bmN0aW9uIGludm9rZXIgKCkge1xuICAgIHZhciBhcmd1bWVudHMkMSA9IGFyZ3VtZW50cztcblxuICAgIHZhciBmbnMgPSBpbnZva2VyLmZucztcbiAgICBpZiAoQXJyYXkuaXNBcnJheShmbnMpKSB7XG4gICAgICB2YXIgY2xvbmVkID0gZm5zLnNsaWNlKCk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNsb25lZC5sZW5ndGg7IGkrKykge1xuICAgICAgICBpbnZva2VXaXRoRXJyb3JIYW5kbGluZyhjbG9uZWRbaV0sIG51bGwsIGFyZ3VtZW50cyQxLCB2bSwgXCJ2LW9uIGhhbmRsZXJcIik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHJldHVybiBoYW5kbGVyIHJldHVybiB2YWx1ZSBmb3Igc2luZ2xlIGhhbmRsZXJzXG4gICAgICByZXR1cm4gaW52b2tlV2l0aEVycm9ySGFuZGxpbmcoZm5zLCBudWxsLCBhcmd1bWVudHMsIHZtLCBcInYtb24gaGFuZGxlclwiKVxuICAgIH1cbiAgfVxuICBpbnZva2VyLmZucyA9IGZucztcbiAgcmV0dXJuIGludm9rZXJcbn1cblxuZnVuY3Rpb24gdXBkYXRlTGlzdGVuZXJzIChcbiAgb24sXG4gIG9sZE9uLFxuICBhZGQsXG4gIHJlbW92ZSQkMSxcbiAgY3JlYXRlT25jZUhhbmRsZXIsXG4gIHZtXG4pIHtcbiAgdmFyIG5hbWUsIGRlZiQkMSwgY3VyLCBvbGQsIGV2ZW50O1xuICBmb3IgKG5hbWUgaW4gb24pIHtcbiAgICBkZWYkJDEgPSBjdXIgPSBvbltuYW1lXTtcbiAgICBvbGQgPSBvbGRPbltuYW1lXTtcbiAgICBldmVudCA9IG5vcm1hbGl6ZUV2ZW50KG5hbWUpO1xuICAgIGlmIChpc1VuZGVmKGN1cikpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgICAgXCJJbnZhbGlkIGhhbmRsZXIgZm9yIGV2ZW50IFxcXCJcIiArIChldmVudC5uYW1lKSArIFwiXFxcIjogZ290IFwiICsgU3RyaW5nKGN1ciksXG4gICAgICAgIHZtXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoaXNVbmRlZihvbGQpKSB7XG4gICAgICBpZiAoaXNVbmRlZihjdXIuZm5zKSkge1xuICAgICAgICBjdXIgPSBvbltuYW1lXSA9IGNyZWF0ZUZuSW52b2tlcihjdXIsIHZtKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1RydWUoZXZlbnQub25jZSkpIHtcbiAgICAgICAgY3VyID0gb25bbmFtZV0gPSBjcmVhdGVPbmNlSGFuZGxlcihldmVudC5uYW1lLCBjdXIsIGV2ZW50LmNhcHR1cmUpO1xuICAgICAgfVxuICAgICAgYWRkKGV2ZW50Lm5hbWUsIGN1ciwgZXZlbnQuY2FwdHVyZSwgZXZlbnQucGFzc2l2ZSwgZXZlbnQucGFyYW1zKTtcbiAgICB9IGVsc2UgaWYgKGN1ciAhPT0gb2xkKSB7XG4gICAgICBvbGQuZm5zID0gY3VyO1xuICAgICAgb25bbmFtZV0gPSBvbGQ7XG4gICAgfVxuICB9XG4gIGZvciAobmFtZSBpbiBvbGRPbikge1xuICAgIGlmIChpc1VuZGVmKG9uW25hbWVdKSkge1xuICAgICAgZXZlbnQgPSBub3JtYWxpemVFdmVudChuYW1lKTtcbiAgICAgIHJlbW92ZSQkMShldmVudC5uYW1lLCBvbGRPbltuYW1lXSwgZXZlbnQuY2FwdHVyZSk7XG4gICAgfVxuICB9XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBtZXJnZVZOb2RlSG9vayAoZGVmLCBob29rS2V5LCBob29rKSB7XG4gIGlmIChkZWYgaW5zdGFuY2VvZiBWTm9kZSkge1xuICAgIGRlZiA9IGRlZi5kYXRhLmhvb2sgfHwgKGRlZi5kYXRhLmhvb2sgPSB7fSk7XG4gIH1cbiAgdmFyIGludm9rZXI7XG4gIHZhciBvbGRIb29rID0gZGVmW2hvb2tLZXldO1xuXG4gIGZ1bmN0aW9uIHdyYXBwZWRIb29rICgpIHtcbiAgICBob29rLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgLy8gaW1wb3J0YW50OiByZW1vdmUgbWVyZ2VkIGhvb2sgdG8gZW5zdXJlIGl0J3MgY2FsbGVkIG9ubHkgb25jZVxuICAgIC8vIGFuZCBwcmV2ZW50IG1lbW9yeSBsZWFrXG4gICAgcmVtb3ZlKGludm9rZXIuZm5zLCB3cmFwcGVkSG9vayk7XG4gIH1cblxuICBpZiAoaXNVbmRlZihvbGRIb29rKSkge1xuICAgIC8vIG5vIGV4aXN0aW5nIGhvb2tcbiAgICBpbnZva2VyID0gY3JlYXRlRm5JbnZva2VyKFt3cmFwcGVkSG9va10pO1xuICB9IGVsc2Uge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChpc0RlZihvbGRIb29rLmZucykgJiYgaXNUcnVlKG9sZEhvb2subWVyZ2VkKSkge1xuICAgICAgLy8gYWxyZWFkeSBhIG1lcmdlZCBpbnZva2VyXG4gICAgICBpbnZva2VyID0gb2xkSG9vaztcbiAgICAgIGludm9rZXIuZm5zLnB1c2god3JhcHBlZEhvb2spO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBleGlzdGluZyBwbGFpbiBob29rXG4gICAgICBpbnZva2VyID0gY3JlYXRlRm5JbnZva2VyKFtvbGRIb29rLCB3cmFwcGVkSG9va10pO1xuICAgIH1cbiAgfVxuXG4gIGludm9rZXIubWVyZ2VkID0gdHJ1ZTtcbiAgZGVmW2hvb2tLZXldID0gaW52b2tlcjtcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGV4dHJhY3RQcm9wc0Zyb21WTm9kZURhdGEgKFxuICBkYXRhLFxuICBDdG9yLFxuICB0YWdcbikge1xuICAvLyB3ZSBhcmUgb25seSBleHRyYWN0aW5nIHJhdyB2YWx1ZXMgaGVyZS5cbiAgLy8gdmFsaWRhdGlvbiBhbmQgZGVmYXVsdCB2YWx1ZXMgYXJlIGhhbmRsZWQgaW4gdGhlIGNoaWxkXG4gIC8vIGNvbXBvbmVudCBpdHNlbGYuXG4gIHZhciBwcm9wT3B0aW9ucyA9IEN0b3Iub3B0aW9ucy5wcm9wcztcbiAgaWYgKGlzVW5kZWYocHJvcE9wdGlvbnMpKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIHJlcyA9IHt9O1xuICB2YXIgYXR0cnMgPSBkYXRhLmF0dHJzO1xuICB2YXIgcHJvcHMgPSBkYXRhLnByb3BzO1xuICBpZiAoaXNEZWYoYXR0cnMpIHx8IGlzRGVmKHByb3BzKSkge1xuICAgIGZvciAodmFyIGtleSBpbiBwcm9wT3B0aW9ucykge1xuICAgICAgdmFyIGFsdEtleSA9IGh5cGhlbmF0ZShrZXkpO1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgdmFyIGtleUluTG93ZXJDYXNlID0ga2V5LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBrZXkgIT09IGtleUluTG93ZXJDYXNlICYmXG4gICAgICAgICAgYXR0cnMgJiYgaGFzT3duKGF0dHJzLCBrZXlJbkxvd2VyQ2FzZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGlwKFxuICAgICAgICAgICAgXCJQcm9wIFxcXCJcIiArIGtleUluTG93ZXJDYXNlICsgXCJcXFwiIGlzIHBhc3NlZCB0byBjb21wb25lbnQgXCIgK1xuICAgICAgICAgICAgKGZvcm1hdENvbXBvbmVudE5hbWUodGFnIHx8IEN0b3IpKSArIFwiLCBidXQgdGhlIGRlY2xhcmVkIHByb3AgbmFtZSBpc1wiICtcbiAgICAgICAgICAgIFwiIFxcXCJcIiArIGtleSArIFwiXFxcIi4gXCIgK1xuICAgICAgICAgICAgXCJOb3RlIHRoYXQgSFRNTCBhdHRyaWJ1dGVzIGFyZSBjYXNlLWluc2Vuc2l0aXZlIGFuZCBjYW1lbENhc2VkIFwiICtcbiAgICAgICAgICAgIFwicHJvcHMgbmVlZCB0byB1c2UgdGhlaXIga2ViYWItY2FzZSBlcXVpdmFsZW50cyB3aGVuIHVzaW5nIGluLURPTSBcIiArXG4gICAgICAgICAgICBcInRlbXBsYXRlcy4gWW91IHNob3VsZCBwcm9iYWJseSB1c2UgXFxcIlwiICsgYWx0S2V5ICsgXCJcXFwiIGluc3RlYWQgb2YgXFxcIlwiICsga2V5ICsgXCJcXFwiLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY2hlY2tQcm9wKHJlcywgcHJvcHMsIGtleSwgYWx0S2V5LCB0cnVlKSB8fFxuICAgICAgY2hlY2tQcm9wKHJlcywgYXR0cnMsIGtleSwgYWx0S2V5LCBmYWxzZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXNcbn1cblxuZnVuY3Rpb24gY2hlY2tQcm9wIChcbiAgcmVzLFxuICBoYXNoLFxuICBrZXksXG4gIGFsdEtleSxcbiAgcHJlc2VydmVcbikge1xuICBpZiAoaXNEZWYoaGFzaCkpIHtcbiAgICBpZiAoaGFzT3duKGhhc2gsIGtleSkpIHtcbiAgICAgIHJlc1trZXldID0gaGFzaFtrZXldO1xuICAgICAgaWYgKCFwcmVzZXJ2ZSkge1xuICAgICAgICBkZWxldGUgaGFzaFtrZXldO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9IGVsc2UgaWYgKGhhc093bihoYXNoLCBhbHRLZXkpKSB7XG4gICAgICByZXNba2V5XSA9IGhhc2hbYWx0S2V5XTtcbiAgICAgIGlmICghcHJlc2VydmUpIHtcbiAgICAgICAgZGVsZXRlIGhhc2hbYWx0S2V5XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG4vKiAgKi9cblxuLy8gVGhlIHRlbXBsYXRlIGNvbXBpbGVyIGF0dGVtcHRzIHRvIG1pbmltaXplIHRoZSBuZWVkIGZvciBub3JtYWxpemF0aW9uIGJ5XG4vLyBzdGF0aWNhbGx5IGFuYWx5emluZyB0aGUgdGVtcGxhdGUgYXQgY29tcGlsZSB0aW1lLlxuLy9cbi8vIEZvciBwbGFpbiBIVE1MIG1hcmt1cCwgbm9ybWFsaXphdGlvbiBjYW4gYmUgY29tcGxldGVseSBza2lwcGVkIGJlY2F1c2UgdGhlXG4vLyBnZW5lcmF0ZWQgcmVuZGVyIGZ1bmN0aW9uIGlzIGd1YXJhbnRlZWQgdG8gcmV0dXJuIEFycmF5PFZOb2RlPi4gVGhlcmUgYXJlXG4vLyB0d28gY2FzZXMgd2hlcmUgZXh0cmEgbm9ybWFsaXphdGlvbiBpcyBuZWVkZWQ6XG5cbi8vIDEuIFdoZW4gdGhlIGNoaWxkcmVuIGNvbnRhaW5zIGNvbXBvbmVudHMgLSBiZWNhdXNlIGEgZnVuY3Rpb25hbCBjb21wb25lbnRcbi8vIG1heSByZXR1cm4gYW4gQXJyYXkgaW5zdGVhZCBvZiBhIHNpbmdsZSByb290LiBJbiB0aGlzIGNhc2UsIGp1c3QgYSBzaW1wbGVcbi8vIG5vcm1hbGl6YXRpb24gaXMgbmVlZGVkIC0gaWYgYW55IGNoaWxkIGlzIGFuIEFycmF5LCB3ZSBmbGF0dGVuIHRoZSB3aG9sZVxuLy8gdGhpbmcgd2l0aCBBcnJheS5wcm90b3R5cGUuY29uY2F0LiBJdCBpcyBndWFyYW50ZWVkIHRvIGJlIG9ubHkgMS1sZXZlbCBkZWVwXG4vLyBiZWNhdXNlIGZ1bmN0aW9uYWwgY29tcG9uZW50cyBhbHJlYWR5IG5vcm1hbGl6ZSB0aGVpciBvd24gY2hpbGRyZW4uXG5mdW5jdGlvbiBzaW1wbGVOb3JtYWxpemVDaGlsZHJlbiAoY2hpbGRyZW4pIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuW2ldKSkge1xuICAgICAgcmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sIGNoaWxkcmVuKVxuICAgIH1cbiAgfVxuICByZXR1cm4gY2hpbGRyZW5cbn1cblxuLy8gMi4gV2hlbiB0aGUgY2hpbGRyZW4gY29udGFpbnMgY29uc3RydWN0cyB0aGF0IGFsd2F5cyBnZW5lcmF0ZWQgbmVzdGVkIEFycmF5cyxcbi8vIGUuZy4gPHRlbXBsYXRlPiwgPHNsb3Q+LCB2LWZvciwgb3Igd2hlbiB0aGUgY2hpbGRyZW4gaXMgcHJvdmlkZWQgYnkgdXNlclxuLy8gd2l0aCBoYW5kLXdyaXR0ZW4gcmVuZGVyIGZ1bmN0aW9ucyAvIEpTWC4gSW4gc3VjaCBjYXNlcyBhIGZ1bGwgbm9ybWFsaXphdGlvblxuLy8gaXMgbmVlZGVkIHRvIGNhdGVyIHRvIGFsbCBwb3NzaWJsZSB0eXBlcyBvZiBjaGlsZHJlbiB2YWx1ZXMuXG5mdW5jdGlvbiBub3JtYWxpemVDaGlsZHJlbiAoY2hpbGRyZW4pIHtcbiAgcmV0dXJuIGlzUHJpbWl0aXZlKGNoaWxkcmVuKVxuICAgID8gW2NyZWF0ZVRleHRWTm9kZShjaGlsZHJlbildXG4gICAgOiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKVxuICAgICAgPyBub3JtYWxpemVBcnJheUNoaWxkcmVuKGNoaWxkcmVuKVxuICAgICAgOiB1bmRlZmluZWRcbn1cblxuZnVuY3Rpb24gaXNUZXh0Tm9kZSAobm9kZSkge1xuICByZXR1cm4gaXNEZWYobm9kZSkgJiYgaXNEZWYobm9kZS50ZXh0KSAmJiBpc0ZhbHNlKG5vZGUuaXNDb21tZW50KVxufVxuXG5mdW5jdGlvbiBub3JtYWxpemVBcnJheUNoaWxkcmVuIChjaGlsZHJlbiwgbmVzdGVkSW5kZXgpIHtcbiAgdmFyIHJlcyA9IFtdO1xuICB2YXIgaSwgYywgbGFzdEluZGV4LCBsYXN0O1xuICBmb3IgKGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICBjID0gY2hpbGRyZW5baV07XG4gICAgaWYgKGlzVW5kZWYoYykgfHwgdHlwZW9mIGMgPT09ICdib29sZWFuJykgeyBjb250aW51ZSB9XG4gICAgbGFzdEluZGV4ID0gcmVzLmxlbmd0aCAtIDE7XG4gICAgbGFzdCA9IHJlc1tsYXN0SW5kZXhdO1xuICAgIC8vICBuZXN0ZWRcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjKSkge1xuICAgICAgaWYgKGMubGVuZ3RoID4gMCkge1xuICAgICAgICBjID0gbm9ybWFsaXplQXJyYXlDaGlsZHJlbihjLCAoKG5lc3RlZEluZGV4IHx8ICcnKSArIFwiX1wiICsgaSkpO1xuICAgICAgICAvLyBtZXJnZSBhZGphY2VudCB0ZXh0IG5vZGVzXG4gICAgICAgIGlmIChpc1RleHROb2RlKGNbMF0pICYmIGlzVGV4dE5vZGUobGFzdCkpIHtcbiAgICAgICAgICByZXNbbGFzdEluZGV4XSA9IGNyZWF0ZVRleHRWTm9kZShsYXN0LnRleHQgKyAoY1swXSkudGV4dCk7XG4gICAgICAgICAgYy5zaGlmdCgpO1xuICAgICAgICB9XG4gICAgICAgIHJlcy5wdXNoLmFwcGx5KHJlcywgYyk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc1ByaW1pdGl2ZShjKSkge1xuICAgICAgaWYgKGlzVGV4dE5vZGUobGFzdCkpIHtcbiAgICAgICAgLy8gbWVyZ2UgYWRqYWNlbnQgdGV4dCBub2Rlc1xuICAgICAgICAvLyB0aGlzIGlzIG5lY2Vzc2FyeSBmb3IgU1NSIGh5ZHJhdGlvbiBiZWNhdXNlIHRleHQgbm9kZXMgYXJlXG4gICAgICAgIC8vIGVzc2VudGlhbGx5IG1lcmdlZCB3aGVuIHJlbmRlcmVkIHRvIEhUTUwgc3RyaW5nc1xuICAgICAgICByZXNbbGFzdEluZGV4XSA9IGNyZWF0ZVRleHRWTm9kZShsYXN0LnRleHQgKyBjKTtcbiAgICAgIH0gZWxzZSBpZiAoYyAhPT0gJycpIHtcbiAgICAgICAgLy8gY29udmVydCBwcmltaXRpdmUgdG8gdm5vZGVcbiAgICAgICAgcmVzLnB1c2goY3JlYXRlVGV4dFZOb2RlKGMpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGlzVGV4dE5vZGUoYykgJiYgaXNUZXh0Tm9kZShsYXN0KSkge1xuICAgICAgICAvLyBtZXJnZSBhZGphY2VudCB0ZXh0IG5vZGVzXG4gICAgICAgIHJlc1tsYXN0SW5kZXhdID0gY3JlYXRlVGV4dFZOb2RlKGxhc3QudGV4dCArIGMudGV4dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBkZWZhdWx0IGtleSBmb3IgbmVzdGVkIGFycmF5IGNoaWxkcmVuIChsaWtlbHkgZ2VuZXJhdGVkIGJ5IHYtZm9yKVxuICAgICAgICBpZiAoaXNUcnVlKGNoaWxkcmVuLl9pc1ZMaXN0KSAmJlxuICAgICAgICAgIGlzRGVmKGMudGFnKSAmJlxuICAgICAgICAgIGlzVW5kZWYoYy5rZXkpICYmXG4gICAgICAgICAgaXNEZWYobmVzdGVkSW5kZXgpKSB7XG4gICAgICAgICAgYy5rZXkgPSBcIl9fdmxpc3RcIiArIG5lc3RlZEluZGV4ICsgXCJfXCIgKyBpICsgXCJfX1wiO1xuICAgICAgICB9XG4gICAgICAgIHJlcy5wdXNoKGMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpbml0UHJvdmlkZSAodm0pIHtcbiAgdmFyIHByb3ZpZGUgPSB2bS4kb3B0aW9ucy5wcm92aWRlO1xuICBpZiAocHJvdmlkZSkge1xuICAgIHZtLl9wcm92aWRlZCA9IHR5cGVvZiBwcm92aWRlID09PSAnZnVuY3Rpb24nXG4gICAgICA/IHByb3ZpZGUuY2FsbCh2bSlcbiAgICAgIDogcHJvdmlkZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbml0SW5qZWN0aW9ucyAodm0pIHtcbiAgdmFyIHJlc3VsdCA9IHJlc29sdmVJbmplY3Qodm0uJG9wdGlvbnMuaW5qZWN0LCB2bSk7XG4gIGlmIChyZXN1bHQpIHtcbiAgICB0b2dnbGVPYnNlcnZpbmcoZmFsc2UpO1xuICAgIE9iamVjdC5rZXlzKHJlc3VsdCkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgZGVmaW5lUmVhY3RpdmUkJDEodm0sIGtleSwgcmVzdWx0W2tleV0sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB3YXJuKFxuICAgICAgICAgICAgXCJBdm9pZCBtdXRhdGluZyBhbiBpbmplY3RlZCB2YWx1ZSBkaXJlY3RseSBzaW5jZSB0aGUgY2hhbmdlcyB3aWxsIGJlIFwiICtcbiAgICAgICAgICAgIFwib3ZlcndyaXR0ZW4gd2hlbmV2ZXIgdGhlIHByb3ZpZGVkIGNvbXBvbmVudCByZS1yZW5kZXJzLiBcIiArXG4gICAgICAgICAgICBcImluamVjdGlvbiBiZWluZyBtdXRhdGVkOiBcXFwiXCIgKyBrZXkgKyBcIlxcXCJcIixcbiAgICAgICAgICAgIHZtXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWZpbmVSZWFjdGl2ZSQkMSh2bSwga2V5LCByZXN1bHRba2V5XSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdG9nZ2xlT2JzZXJ2aW5nKHRydWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVJbmplY3QgKGluamVjdCwgdm0pIHtcbiAgaWYgKGluamVjdCkge1xuICAgIC8vIGluamVjdCBpcyA6YW55IGJlY2F1c2UgZmxvdyBpcyBub3Qgc21hcnQgZW5vdWdoIHRvIGZpZ3VyZSBvdXQgY2FjaGVkXG4gICAgdmFyIHJlc3VsdCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdmFyIGtleXMgPSBoYXNTeW1ib2xcbiAgICAgID8gUmVmbGVjdC5vd25LZXlzKGluamVjdClcbiAgICAgIDogT2JqZWN0LmtleXMoaW5qZWN0KTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgICAvLyAjNjU3NCBpbiBjYXNlIHRoZSBpbmplY3Qgb2JqZWN0IGlzIG9ic2VydmVkLi4uXG4gICAgICBpZiAoa2V5ID09PSAnX19vYl9fJykgeyBjb250aW51ZSB9XG4gICAgICB2YXIgcHJvdmlkZUtleSA9IGluamVjdFtrZXldLmZyb207XG4gICAgICB2YXIgc291cmNlID0gdm07XG4gICAgICB3aGlsZSAoc291cmNlKSB7XG4gICAgICAgIGlmIChzb3VyY2UuX3Byb3ZpZGVkICYmIGhhc093bihzb3VyY2UuX3Byb3ZpZGVkLCBwcm92aWRlS2V5KSkge1xuICAgICAgICAgIHJlc3VsdFtrZXldID0gc291cmNlLl9wcm92aWRlZFtwcm92aWRlS2V5XTtcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIHNvdXJjZSA9IHNvdXJjZS4kcGFyZW50O1xuICAgICAgfVxuICAgICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgICAgaWYgKCdkZWZhdWx0JyBpbiBpbmplY3Rba2V5XSkge1xuICAgICAgICAgIHZhciBwcm92aWRlRGVmYXVsdCA9IGluamVjdFtrZXldLmRlZmF1bHQ7XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSB0eXBlb2YgcHJvdmlkZURlZmF1bHQgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gcHJvdmlkZURlZmF1bHQuY2FsbCh2bSlcbiAgICAgICAgICAgIDogcHJvdmlkZURlZmF1bHQ7XG4gICAgICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIHdhcm4oKFwiSW5qZWN0aW9uIFxcXCJcIiArIGtleSArIFwiXFxcIiBub3QgZm91bmRcIiksIHZtKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cbn1cblxuLyogICovXG5cblxuXG4vKipcbiAqIFJ1bnRpbWUgaGVscGVyIGZvciByZXNvbHZpbmcgcmF3IGNoaWxkcmVuIFZOb2RlcyBpbnRvIGEgc2xvdCBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVTbG90cyAoXG4gIGNoaWxkcmVuLFxuICBjb250ZXh0XG4pIHtcbiAgaWYgKCFjaGlsZHJlbiB8fCAhY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHt9XG4gIH1cbiAgdmFyIHNsb3RzID0ge307XG4gIGZvciAodmFyIGkgPSAwLCBsID0gY2hpbGRyZW4ubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgdmFyIGNoaWxkID0gY2hpbGRyZW5baV07XG4gICAgdmFyIGRhdGEgPSBjaGlsZC5kYXRhO1xuICAgIC8vIHJlbW92ZSBzbG90IGF0dHJpYnV0ZSBpZiB0aGUgbm9kZSBpcyByZXNvbHZlZCBhcyBhIFZ1ZSBzbG90IG5vZGVcbiAgICBpZiAoZGF0YSAmJiBkYXRhLmF0dHJzICYmIGRhdGEuYXR0cnMuc2xvdCkge1xuICAgICAgZGVsZXRlIGRhdGEuYXR0cnMuc2xvdDtcbiAgICB9XG4gICAgLy8gbmFtZWQgc2xvdHMgc2hvdWxkIG9ubHkgYmUgcmVzcGVjdGVkIGlmIHRoZSB2bm9kZSB3YXMgcmVuZGVyZWQgaW4gdGhlXG4gICAgLy8gc2FtZSBjb250ZXh0LlxuICAgIGlmICgoY2hpbGQuY29udGV4dCA9PT0gY29udGV4dCB8fCBjaGlsZC5mbkNvbnRleHQgPT09IGNvbnRleHQpICYmXG4gICAgICBkYXRhICYmIGRhdGEuc2xvdCAhPSBudWxsXG4gICAgKSB7XG4gICAgICB2YXIgbmFtZSA9IGRhdGEuc2xvdDtcbiAgICAgIHZhciBzbG90ID0gKHNsb3RzW25hbWVdIHx8IChzbG90c1tuYW1lXSA9IFtdKSk7XG4gICAgICBpZiAoY2hpbGQudGFnID09PSAndGVtcGxhdGUnKSB7XG4gICAgICAgIHNsb3QucHVzaC5hcHBseShzbG90LCBjaGlsZC5jaGlsZHJlbiB8fCBbXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzbG90LnB1c2goY2hpbGQpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAoc2xvdHMuZGVmYXVsdCB8fCAoc2xvdHMuZGVmYXVsdCA9IFtdKSkucHVzaChjaGlsZCk7XG4gICAgfVxuICB9XG4gIC8vIGlnbm9yZSBzbG90cyB0aGF0IGNvbnRhaW5zIG9ubHkgd2hpdGVzcGFjZVxuICBmb3IgKHZhciBuYW1lJDEgaW4gc2xvdHMpIHtcbiAgICBpZiAoc2xvdHNbbmFtZSQxXS5ldmVyeShpc1doaXRlc3BhY2UpKSB7XG4gICAgICBkZWxldGUgc2xvdHNbbmFtZSQxXTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNsb3RzXG59XG5cbmZ1bmN0aW9uIGlzV2hpdGVzcGFjZSAobm9kZSkge1xuICByZXR1cm4gKG5vZGUuaXNDb21tZW50ICYmICFub2RlLmFzeW5jRmFjdG9yeSkgfHwgbm9kZS50ZXh0ID09PSAnICdcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGlzQXN5bmNQbGFjZWhvbGRlciAobm9kZSkge1xuICByZXR1cm4gbm9kZS5pc0NvbW1lbnQgJiYgbm9kZS5hc3luY0ZhY3Rvcnlcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVNjb3BlZFNsb3RzIChcbiAgc2xvdHMsXG4gIG5vcm1hbFNsb3RzLFxuICBwcmV2U2xvdHNcbikge1xuICB2YXIgcmVzO1xuICB2YXIgaGFzTm9ybWFsU2xvdHMgPSBPYmplY3Qua2V5cyhub3JtYWxTbG90cykubGVuZ3RoID4gMDtcbiAgdmFyIGlzU3RhYmxlID0gc2xvdHMgPyAhIXNsb3RzLiRzdGFibGUgOiAhaGFzTm9ybWFsU2xvdHM7XG4gIHZhciBrZXkgPSBzbG90cyAmJiBzbG90cy4ka2V5O1xuICBpZiAoIXNsb3RzKSB7XG4gICAgcmVzID0ge307XG4gIH0gZWxzZSBpZiAoc2xvdHMuX25vcm1hbGl6ZWQpIHtcbiAgICAvLyBmYXN0IHBhdGggMTogY2hpbGQgY29tcG9uZW50IHJlLXJlbmRlciBvbmx5LCBwYXJlbnQgZGlkIG5vdCBjaGFuZ2VcbiAgICByZXR1cm4gc2xvdHMuX25vcm1hbGl6ZWRcbiAgfSBlbHNlIGlmIChcbiAgICBpc1N0YWJsZSAmJlxuICAgIHByZXZTbG90cyAmJlxuICAgIHByZXZTbG90cyAhPT0gZW1wdHlPYmplY3QgJiZcbiAgICBrZXkgPT09IHByZXZTbG90cy4ka2V5ICYmXG4gICAgIWhhc05vcm1hbFNsb3RzICYmXG4gICAgIXByZXZTbG90cy4kaGFzTm9ybWFsXG4gICkge1xuICAgIC8vIGZhc3QgcGF0aCAyOiBzdGFibGUgc2NvcGVkIHNsb3RzIHcvIG5vIG5vcm1hbCBzbG90cyB0byBwcm94eSxcbiAgICAvLyBvbmx5IG5lZWQgdG8gbm9ybWFsaXplIG9uY2VcbiAgICByZXR1cm4gcHJldlNsb3RzXG4gIH0gZWxzZSB7XG4gICAgcmVzID0ge307XG4gICAgZm9yICh2YXIga2V5JDEgaW4gc2xvdHMpIHtcbiAgICAgIGlmIChzbG90c1trZXkkMV0gJiYga2V5JDFbMF0gIT09ICckJykge1xuICAgICAgICByZXNba2V5JDFdID0gbm9ybWFsaXplU2NvcGVkU2xvdChub3JtYWxTbG90cywga2V5JDEsIHNsb3RzW2tleSQxXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC8vIGV4cG9zZSBub3JtYWwgc2xvdHMgb24gc2NvcGVkU2xvdHNcbiAgZm9yICh2YXIga2V5JDIgaW4gbm9ybWFsU2xvdHMpIHtcbiAgICBpZiAoIShrZXkkMiBpbiByZXMpKSB7XG4gICAgICByZXNba2V5JDJdID0gcHJveHlOb3JtYWxTbG90KG5vcm1hbFNsb3RzLCBrZXkkMik7XG4gICAgfVxuICB9XG4gIC8vIGF2b3JpYXogc2VlbXMgdG8gbW9jayBhIG5vbi1leHRlbnNpYmxlICRzY29wZWRTbG90cyBvYmplY3RcbiAgLy8gYW5kIHdoZW4gdGhhdCBpcyBwYXNzZWQgZG93biB0aGlzIHdvdWxkIGNhdXNlIGFuIGVycm9yXG4gIGlmIChzbG90cyAmJiBPYmplY3QuaXNFeHRlbnNpYmxlKHNsb3RzKSkge1xuICAgIChzbG90cykuX25vcm1hbGl6ZWQgPSByZXM7XG4gIH1cbiAgZGVmKHJlcywgJyRzdGFibGUnLCBpc1N0YWJsZSk7XG4gIGRlZihyZXMsICcka2V5Jywga2V5KTtcbiAgZGVmKHJlcywgJyRoYXNOb3JtYWwnLCBoYXNOb3JtYWxTbG90cyk7XG4gIHJldHVybiByZXNcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplU2NvcGVkU2xvdChub3JtYWxTbG90cywga2V5LCBmbikge1xuICB2YXIgbm9ybWFsaXplZCA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcmVzID0gYXJndW1lbnRzLmxlbmd0aCA/IGZuLmFwcGx5KG51bGwsIGFyZ3VtZW50cykgOiBmbih7fSk7XG4gICAgcmVzID0gcmVzICYmIHR5cGVvZiByZXMgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHJlcylcbiAgICAgID8gW3Jlc10gLy8gc2luZ2xlIHZub2RlXG4gICAgICA6IG5vcm1hbGl6ZUNoaWxkcmVuKHJlcyk7XG4gICAgdmFyIHZub2RlID0gcmVzICYmIHJlc1swXTtcbiAgICByZXR1cm4gcmVzICYmIChcbiAgICAgICF2bm9kZSB8fFxuICAgICAgKHJlcy5sZW5ndGggPT09IDEgJiYgdm5vZGUuaXNDb21tZW50ICYmICFpc0FzeW5jUGxhY2Vob2xkZXIodm5vZGUpKSAvLyAjOTY1OCwgIzEwMzkxXG4gICAgKSA/IHVuZGVmaW5lZFxuICAgICAgOiByZXNcbiAgfTtcbiAgLy8gdGhpcyBpcyBhIHNsb3QgdXNpbmcgdGhlIG5ldyB2LXNsb3Qgc3ludGF4IHdpdGhvdXQgc2NvcGUuIGFsdGhvdWdoIGl0IGlzXG4gIC8vIGNvbXBpbGVkIGFzIGEgc2NvcGVkIHNsb3QsIHJlbmRlciBmbiB1c2VycyB3b3VsZCBleHBlY3QgaXQgdG8gYmUgcHJlc2VudFxuICAvLyBvbiB0aGlzLiRzbG90cyBiZWNhdXNlIHRoZSB1c2FnZSBpcyBzZW1hbnRpY2FsbHkgYSBub3JtYWwgc2xvdC5cbiAgaWYgKGZuLnByb3h5KSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5vcm1hbFNsb3RzLCBrZXksIHtcbiAgICAgIGdldDogbm9ybWFsaXplZCxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplZFxufVxuXG5mdW5jdGlvbiBwcm94eU5vcm1hbFNsb3Qoc2xvdHMsIGtleSkge1xuICByZXR1cm4gZnVuY3Rpb24gKCkgeyByZXR1cm4gc2xvdHNba2V5XTsgfVxufVxuXG4vKiAgKi9cblxuLyoqXG4gKiBSdW50aW1lIGhlbHBlciBmb3IgcmVuZGVyaW5nIHYtZm9yIGxpc3RzLlxuICovXG5mdW5jdGlvbiByZW5kZXJMaXN0IChcbiAgdmFsLFxuICByZW5kZXJcbikge1xuICB2YXIgcmV0LCBpLCBsLCBrZXlzLCBrZXk7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbCkgfHwgdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXQgPSBuZXcgQXJyYXkodmFsLmxlbmd0aCk7XG4gICAgZm9yIChpID0gMCwgbCA9IHZhbC5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIHJldFtpXSA9IHJlbmRlcih2YWxbaV0sIGkpO1xuICAgIH1cbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgIHJldCA9IG5ldyBBcnJheSh2YWwpO1xuICAgIGZvciAoaSA9IDA7IGkgPCB2YWw7IGkrKykge1xuICAgICAgcmV0W2ldID0gcmVuZGVyKGkgKyAxLCBpKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNPYmplY3QodmFsKSkge1xuICAgIGlmIChoYXNTeW1ib2wgJiYgdmFsW1N5bWJvbC5pdGVyYXRvcl0pIHtcbiAgICAgIHJldCA9IFtdO1xuICAgICAgdmFyIGl0ZXJhdG9yID0gdmFsW1N5bWJvbC5pdGVyYXRvcl0oKTtcbiAgICAgIHZhciByZXN1bHQgPSBpdGVyYXRvci5uZXh0KCk7XG4gICAgICB3aGlsZSAoIXJlc3VsdC5kb25lKSB7XG4gICAgICAgIHJldC5wdXNoKHJlbmRlcihyZXN1bHQudmFsdWUsIHJldC5sZW5ndGgpKTtcbiAgICAgICAgcmVzdWx0ID0gaXRlcmF0b3IubmV4dCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBrZXlzID0gT2JqZWN0LmtleXModmFsKTtcbiAgICAgIHJldCA9IG5ldyBBcnJheShrZXlzLmxlbmd0aCk7XG4gICAgICBmb3IgKGkgPSAwLCBsID0ga2V5cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgcmV0W2ldID0gcmVuZGVyKHZhbFtrZXldLCBrZXksIGkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoIWlzRGVmKHJldCkpIHtcbiAgICByZXQgPSBbXTtcbiAgfVxuICAocmV0KS5faXNWTGlzdCA9IHRydWU7XG4gIHJldHVybiByZXRcbn1cblxuLyogICovXG5cbi8qKlxuICogUnVudGltZSBoZWxwZXIgZm9yIHJlbmRlcmluZyA8c2xvdD5cbiAqL1xuZnVuY3Rpb24gcmVuZGVyU2xvdCAoXG4gIG5hbWUsXG4gIGZhbGxiYWNrUmVuZGVyLFxuICBwcm9wcyxcbiAgYmluZE9iamVjdFxuKSB7XG4gIHZhciBzY29wZWRTbG90Rm4gPSB0aGlzLiRzY29wZWRTbG90c1tuYW1lXTtcbiAgdmFyIG5vZGVzO1xuICBpZiAoc2NvcGVkU2xvdEZuKSB7XG4gICAgLy8gc2NvcGVkIHNsb3RcbiAgICBwcm9wcyA9IHByb3BzIHx8IHt9O1xuICAgIGlmIChiaW5kT2JqZWN0KSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhaXNPYmplY3QoYmluZE9iamVjdCkpIHtcbiAgICAgICAgd2Fybignc2xvdCB2LWJpbmQgd2l0aG91dCBhcmd1bWVudCBleHBlY3RzIGFuIE9iamVjdCcsIHRoaXMpO1xuICAgICAgfVxuICAgICAgcHJvcHMgPSBleHRlbmQoZXh0ZW5kKHt9LCBiaW5kT2JqZWN0KSwgcHJvcHMpO1xuICAgIH1cbiAgICBub2RlcyA9XG4gICAgICBzY29wZWRTbG90Rm4ocHJvcHMpIHx8XG4gICAgICAodHlwZW9mIGZhbGxiYWNrUmVuZGVyID09PSAnZnVuY3Rpb24nID8gZmFsbGJhY2tSZW5kZXIoKSA6IGZhbGxiYWNrUmVuZGVyKTtcbiAgfSBlbHNlIHtcbiAgICBub2RlcyA9XG4gICAgICB0aGlzLiRzbG90c1tuYW1lXSB8fFxuICAgICAgKHR5cGVvZiBmYWxsYmFja1JlbmRlciA9PT0gJ2Z1bmN0aW9uJyA/IGZhbGxiYWNrUmVuZGVyKCkgOiBmYWxsYmFja1JlbmRlcik7XG4gIH1cblxuICB2YXIgdGFyZ2V0ID0gcHJvcHMgJiYgcHJvcHMuc2xvdDtcbiAgaWYgKHRhcmdldCkge1xuICAgIHJldHVybiB0aGlzLiRjcmVhdGVFbGVtZW50KCd0ZW1wbGF0ZScsIHsgc2xvdDogdGFyZ2V0IH0sIG5vZGVzKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiBub2Rlc1xuICB9XG59XG5cbi8qICAqL1xuXG4vKipcbiAqIFJ1bnRpbWUgaGVscGVyIGZvciByZXNvbHZpbmcgZmlsdGVyc1xuICovXG5mdW5jdGlvbiByZXNvbHZlRmlsdGVyIChpZCkge1xuICByZXR1cm4gcmVzb2x2ZUFzc2V0KHRoaXMuJG9wdGlvbnMsICdmaWx0ZXJzJywgaWQsIHRydWUpIHx8IGlkZW50aXR5XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpc0tleU5vdE1hdGNoIChleHBlY3QsIGFjdHVhbCkge1xuICBpZiAoQXJyYXkuaXNBcnJheShleHBlY3QpKSB7XG4gICAgcmV0dXJuIGV4cGVjdC5pbmRleE9mKGFjdHVhbCkgPT09IC0xXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGV4cGVjdCAhPT0gYWN0dWFsXG4gIH1cbn1cblxuLyoqXG4gKiBSdW50aW1lIGhlbHBlciBmb3IgY2hlY2tpbmcga2V5Q29kZXMgZnJvbSBjb25maWcuXG4gKiBleHBvc2VkIGFzIFZ1ZS5wcm90b3R5cGUuX2tcbiAqIHBhc3NpbmcgaW4gZXZlbnRLZXlOYW1lIGFzIGxhc3QgYXJndW1lbnQgc2VwYXJhdGVseSBmb3IgYmFja3dhcmRzIGNvbXBhdFxuICovXG5mdW5jdGlvbiBjaGVja0tleUNvZGVzIChcbiAgZXZlbnRLZXlDb2RlLFxuICBrZXksXG4gIGJ1aWx0SW5LZXlDb2RlLFxuICBldmVudEtleU5hbWUsXG4gIGJ1aWx0SW5LZXlOYW1lXG4pIHtcbiAgdmFyIG1hcHBlZEtleUNvZGUgPSBjb25maWcua2V5Q29kZXNba2V5XSB8fCBidWlsdEluS2V5Q29kZTtcbiAgaWYgKGJ1aWx0SW5LZXlOYW1lICYmIGV2ZW50S2V5TmFtZSAmJiAhY29uZmlnLmtleUNvZGVzW2tleV0pIHtcbiAgICByZXR1cm4gaXNLZXlOb3RNYXRjaChidWlsdEluS2V5TmFtZSwgZXZlbnRLZXlOYW1lKVxuICB9IGVsc2UgaWYgKG1hcHBlZEtleUNvZGUpIHtcbiAgICByZXR1cm4gaXNLZXlOb3RNYXRjaChtYXBwZWRLZXlDb2RlLCBldmVudEtleUNvZGUpXG4gIH0gZWxzZSBpZiAoZXZlbnRLZXlOYW1lKSB7XG4gICAgcmV0dXJuIGh5cGhlbmF0ZShldmVudEtleU5hbWUpICE9PSBrZXlcbiAgfVxuICByZXR1cm4gZXZlbnRLZXlDb2RlID09PSB1bmRlZmluZWRcbn1cblxuLyogICovXG5cbi8qKlxuICogUnVudGltZSBoZWxwZXIgZm9yIG1lcmdpbmcgdi1iaW5kPVwib2JqZWN0XCIgaW50byBhIFZOb2RlJ3MgZGF0YS5cbiAqL1xuZnVuY3Rpb24gYmluZE9iamVjdFByb3BzIChcbiAgZGF0YSxcbiAgdGFnLFxuICB2YWx1ZSxcbiAgYXNQcm9wLFxuICBpc1N5bmNcbikge1xuICBpZiAodmFsdWUpIHtcbiAgICBpZiAoIWlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuKFxuICAgICAgICAndi1iaW5kIHdpdGhvdXQgYXJndW1lbnQgZXhwZWN0cyBhbiBPYmplY3Qgb3IgQXJyYXkgdmFsdWUnLFxuICAgICAgICB0aGlzXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgdmFsdWUgPSB0b09iamVjdCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICB2YXIgaGFzaDtcbiAgICAgIHZhciBsb29wID0gZnVuY3Rpb24gKCBrZXkgKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBrZXkgPT09ICdjbGFzcycgfHxcbiAgICAgICAgICBrZXkgPT09ICdzdHlsZScgfHxcbiAgICAgICAgICBpc1Jlc2VydmVkQXR0cmlidXRlKGtleSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgaGFzaCA9IGRhdGE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFyIHR5cGUgPSBkYXRhLmF0dHJzICYmIGRhdGEuYXR0cnMudHlwZTtcbiAgICAgICAgICBoYXNoID0gYXNQcm9wIHx8IGNvbmZpZy5tdXN0VXNlUHJvcCh0YWcsIHR5cGUsIGtleSlcbiAgICAgICAgICAgID8gZGF0YS5kb21Qcm9wcyB8fCAoZGF0YS5kb21Qcm9wcyA9IHt9KVxuICAgICAgICAgICAgOiBkYXRhLmF0dHJzIHx8IChkYXRhLmF0dHJzID0ge30pO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjYW1lbGl6ZWRLZXkgPSBjYW1lbGl6ZShrZXkpO1xuICAgICAgICB2YXIgaHlwaGVuYXRlZEtleSA9IGh5cGhlbmF0ZShrZXkpO1xuICAgICAgICBpZiAoIShjYW1lbGl6ZWRLZXkgaW4gaGFzaCkgJiYgIShoeXBoZW5hdGVkS2V5IGluIGhhc2gpKSB7XG4gICAgICAgICAgaGFzaFtrZXldID0gdmFsdWVba2V5XTtcblxuICAgICAgICAgIGlmIChpc1N5bmMpIHtcbiAgICAgICAgICAgIHZhciBvbiA9IGRhdGEub24gfHwgKGRhdGEub24gPSB7fSk7XG4gICAgICAgICAgICBvblsoXCJ1cGRhdGU6XCIgKyBrZXkpXSA9IGZ1bmN0aW9uICgkZXZlbnQpIHtcbiAgICAgICAgICAgICAgdmFsdWVba2V5XSA9ICRldmVudDtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBmb3IgKHZhciBrZXkgaW4gdmFsdWUpIGxvb3AoIGtleSApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZGF0YVxufVxuXG4vKiAgKi9cblxuLyoqXG4gKiBSdW50aW1lIGhlbHBlciBmb3IgcmVuZGVyaW5nIHN0YXRpYyB0cmVlcy5cbiAqL1xuZnVuY3Rpb24gcmVuZGVyU3RhdGljIChcbiAgaW5kZXgsXG4gIGlzSW5Gb3Jcbikge1xuICB2YXIgY2FjaGVkID0gdGhpcy5fc3RhdGljVHJlZXMgfHwgKHRoaXMuX3N0YXRpY1RyZWVzID0gW10pO1xuICB2YXIgdHJlZSA9IGNhY2hlZFtpbmRleF07XG4gIC8vIGlmIGhhcyBhbHJlYWR5LXJlbmRlcmVkIHN0YXRpYyB0cmVlIGFuZCBub3QgaW5zaWRlIHYtZm9yLFxuICAvLyB3ZSBjYW4gcmV1c2UgdGhlIHNhbWUgdHJlZS5cbiAgaWYgKHRyZWUgJiYgIWlzSW5Gb3IpIHtcbiAgICByZXR1cm4gdHJlZVxuICB9XG4gIC8vIG90aGVyd2lzZSwgcmVuZGVyIGEgZnJlc2ggdHJlZS5cbiAgdHJlZSA9IGNhY2hlZFtpbmRleF0gPSB0aGlzLiRvcHRpb25zLnN0YXRpY1JlbmRlckZuc1tpbmRleF0uY2FsbChcbiAgICB0aGlzLl9yZW5kZXJQcm94eSxcbiAgICBudWxsLFxuICAgIHRoaXMgLy8gZm9yIHJlbmRlciBmbnMgZ2VuZXJhdGVkIGZvciBmdW5jdGlvbmFsIGNvbXBvbmVudCB0ZW1wbGF0ZXNcbiAgKTtcbiAgbWFya1N0YXRpYyh0cmVlLCAoXCJfX3N0YXRpY19fXCIgKyBpbmRleCksIGZhbHNlKTtcbiAgcmV0dXJuIHRyZWVcbn1cblxuLyoqXG4gKiBSdW50aW1lIGhlbHBlciBmb3Igdi1vbmNlLlxuICogRWZmZWN0aXZlbHkgaXQgbWVhbnMgbWFya2luZyB0aGUgbm9kZSBhcyBzdGF0aWMgd2l0aCBhIHVuaXF1ZSBrZXkuXG4gKi9cbmZ1bmN0aW9uIG1hcmtPbmNlIChcbiAgdHJlZSxcbiAgaW5kZXgsXG4gIGtleVxuKSB7XG4gIG1hcmtTdGF0aWModHJlZSwgKFwiX19vbmNlX19cIiArIGluZGV4ICsgKGtleSA/IChcIl9cIiArIGtleSkgOiBcIlwiKSksIHRydWUpO1xuICByZXR1cm4gdHJlZVxufVxuXG5mdW5jdGlvbiBtYXJrU3RhdGljIChcbiAgdHJlZSxcbiAga2V5LFxuICBpc09uY2Vcbikge1xuICBpZiAoQXJyYXkuaXNBcnJheSh0cmVlKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHJlZS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHRyZWVbaV0gJiYgdHlwZW9mIHRyZWVbaV0gIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG1hcmtTdGF0aWNOb2RlKHRyZWVbaV0sIChrZXkgKyBcIl9cIiArIGkpLCBpc09uY2UpO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBtYXJrU3RhdGljTm9kZSh0cmVlLCBrZXksIGlzT25jZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFya1N0YXRpY05vZGUgKG5vZGUsIGtleSwgaXNPbmNlKSB7XG4gIG5vZGUuaXNTdGF0aWMgPSB0cnVlO1xuICBub2RlLmtleSA9IGtleTtcbiAgbm9kZS5pc09uY2UgPSBpc09uY2U7XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBiaW5kT2JqZWN0TGlzdGVuZXJzIChkYXRhLCB2YWx1ZSkge1xuICBpZiAodmFsdWUpIHtcbiAgICBpZiAoIWlzUGxhaW5PYmplY3QodmFsdWUpKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAgICd2LW9uIHdpdGhvdXQgYXJndW1lbnQgZXhwZWN0cyBhbiBPYmplY3QgdmFsdWUnLFxuICAgICAgICB0aGlzXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgb24gPSBkYXRhLm9uID0gZGF0YS5vbiA/IGV4dGVuZCh7fSwgZGF0YS5vbikgOiB7fTtcbiAgICAgIGZvciAodmFyIGtleSBpbiB2YWx1ZSkge1xuICAgICAgICB2YXIgZXhpc3RpbmcgPSBvbltrZXldO1xuICAgICAgICB2YXIgb3VycyA9IHZhbHVlW2tleV07XG4gICAgICAgIG9uW2tleV0gPSBleGlzdGluZyA/IFtdLmNvbmNhdChleGlzdGluZywgb3VycykgOiBvdXJzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZGF0YVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gcmVzb2x2ZVNjb3BlZFNsb3RzIChcbiAgZm5zLCAvLyBzZWUgZmxvdy92bm9kZVxuICByZXMsXG4gIC8vIHRoZSBmb2xsb3dpbmcgYXJlIGFkZGVkIGluIDIuNlxuICBoYXNEeW5hbWljS2V5cyxcbiAgY29udGVudEhhc2hLZXlcbikge1xuICByZXMgPSByZXMgfHwgeyAkc3RhYmxlOiAhaGFzRHluYW1pY0tleXMgfTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBmbnMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgc2xvdCA9IGZuc1tpXTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShzbG90KSkge1xuICAgICAgcmVzb2x2ZVNjb3BlZFNsb3RzKHNsb3QsIHJlcywgaGFzRHluYW1pY0tleXMpO1xuICAgIH0gZWxzZSBpZiAoc2xvdCkge1xuICAgICAgLy8gbWFya2VyIGZvciByZXZlcnNlIHByb3h5aW5nIHYtc2xvdCB3aXRob3V0IHNjb3BlIG9uIHRoaXMuJHNsb3RzXG4gICAgICBpZiAoc2xvdC5wcm94eSkge1xuICAgICAgICBzbG90LmZuLnByb3h5ID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJlc1tzbG90LmtleV0gPSBzbG90LmZuO1xuICAgIH1cbiAgfVxuICBpZiAoY29udGVudEhhc2hLZXkpIHtcbiAgICAocmVzKS4ka2V5ID0gY29udGVudEhhc2hLZXk7XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gYmluZER5bmFtaWNLZXlzIChiYXNlT2JqLCB2YWx1ZXMpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB2YWx1ZXMubGVuZ3RoOyBpICs9IDIpIHtcbiAgICB2YXIga2V5ID0gdmFsdWVzW2ldO1xuICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3RyaW5nJyAmJiBrZXkpIHtcbiAgICAgIGJhc2VPYmpbdmFsdWVzW2ldXSA9IHZhbHVlc1tpICsgMV07XG4gICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGtleSAhPT0gJycgJiYga2V5ICE9PSBudWxsKSB7XG4gICAgICAvLyBudWxsIGlzIGEgc3BlY2lhbCB2YWx1ZSBmb3IgZXhwbGljaXRseSByZW1vdmluZyBhIGJpbmRpbmdcbiAgICAgIHdhcm4oXG4gICAgICAgIChcIkludmFsaWQgdmFsdWUgZm9yIGR5bmFtaWMgZGlyZWN0aXZlIGFyZ3VtZW50IChleHBlY3RlZCBzdHJpbmcgb3IgbnVsbCk6IFwiICsga2V5KSxcbiAgICAgICAgdGhpc1xuICAgICAgKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGJhc2VPYmpcbn1cblxuLy8gaGVscGVyIHRvIGR5bmFtaWNhbGx5IGFwcGVuZCBtb2RpZmllciBydW50aW1lIG1hcmtlcnMgdG8gZXZlbnQgbmFtZXMuXG4vLyBlbnN1cmUgb25seSBhcHBlbmQgd2hlbiB2YWx1ZSBpcyBhbHJlYWR5IHN0cmluZywgb3RoZXJ3aXNlIGl0IHdpbGwgYmUgY2FzdFxuLy8gdG8gc3RyaW5nIGFuZCBjYXVzZSB0aGUgdHlwZSBjaGVjayB0byBtaXNzLlxuZnVuY3Rpb24gcHJlcGVuZE1vZGlmaWVyICh2YWx1ZSwgc3ltYm9sKSB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gc3ltYm9sICsgdmFsdWUgOiB2YWx1ZVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gaW5zdGFsbFJlbmRlckhlbHBlcnMgKHRhcmdldCkge1xuICB0YXJnZXQuX28gPSBtYXJrT25jZTtcbiAgdGFyZ2V0Ll9uID0gdG9OdW1iZXI7XG4gIHRhcmdldC5fcyA9IHRvU3RyaW5nO1xuICB0YXJnZXQuX2wgPSByZW5kZXJMaXN0O1xuICB0YXJnZXQuX3QgPSByZW5kZXJTbG90O1xuICB0YXJnZXQuX3EgPSBsb29zZUVxdWFsO1xuICB0YXJnZXQuX2kgPSBsb29zZUluZGV4T2Y7XG4gIHRhcmdldC5fbSA9IHJlbmRlclN0YXRpYztcbiAgdGFyZ2V0Ll9mID0gcmVzb2x2ZUZpbHRlcjtcbiAgdGFyZ2V0Ll9rID0gY2hlY2tLZXlDb2RlcztcbiAgdGFyZ2V0Ll9iID0gYmluZE9iamVjdFByb3BzO1xuICB0YXJnZXQuX3YgPSBjcmVhdGVUZXh0Vk5vZGU7XG4gIHRhcmdldC5fZSA9IGNyZWF0ZUVtcHR5Vk5vZGU7XG4gIHRhcmdldC5fdSA9IHJlc29sdmVTY29wZWRTbG90cztcbiAgdGFyZ2V0Ll9nID0gYmluZE9iamVjdExpc3RlbmVycztcbiAgdGFyZ2V0Ll9kID0gYmluZER5bmFtaWNLZXlzO1xuICB0YXJnZXQuX3AgPSBwcmVwZW5kTW9kaWZpZXI7XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBGdW5jdGlvbmFsUmVuZGVyQ29udGV4dCAoXG4gIGRhdGEsXG4gIHByb3BzLFxuICBjaGlsZHJlbixcbiAgcGFyZW50LFxuICBDdG9yXG4pIHtcbiAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cbiAgdmFyIG9wdGlvbnMgPSBDdG9yLm9wdGlvbnM7XG4gIC8vIGVuc3VyZSB0aGUgY3JlYXRlRWxlbWVudCBmdW5jdGlvbiBpbiBmdW5jdGlvbmFsIGNvbXBvbmVudHNcbiAgLy8gZ2V0cyBhIHVuaXF1ZSBjb250ZXh0IC0gdGhpcyBpcyBuZWNlc3NhcnkgZm9yIGNvcnJlY3QgbmFtZWQgc2xvdCBjaGVja1xuICB2YXIgY29udGV4dFZtO1xuICBpZiAoaGFzT3duKHBhcmVudCwgJ191aWQnKSkge1xuICAgIGNvbnRleHRWbSA9IE9iamVjdC5jcmVhdGUocGFyZW50KTtcbiAgICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgICBjb250ZXh0Vm0uX29yaWdpbmFsID0gcGFyZW50O1xuICB9IGVsc2Uge1xuICAgIC8vIHRoZSBjb250ZXh0IHZtIHBhc3NlZCBpbiBpcyBhIGZ1bmN0aW9uYWwgY29udGV4dCBhcyB3ZWxsLlxuICAgIC8vIGluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB3ZSBhcmUgYWJsZSB0byBnZXQgYSBob2xkIHRvIHRoZVxuICAgIC8vIHJlYWwgY29udGV4dCBpbnN0YW5jZS5cbiAgICBjb250ZXh0Vm0gPSBwYXJlbnQ7XG4gICAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gICAgcGFyZW50ID0gcGFyZW50Ll9vcmlnaW5hbDtcbiAgfVxuICB2YXIgaXNDb21waWxlZCA9IGlzVHJ1ZShvcHRpb25zLl9jb21waWxlZCk7XG4gIHZhciBuZWVkTm9ybWFsaXphdGlvbiA9ICFpc0NvbXBpbGVkO1xuXG4gIHRoaXMuZGF0YSA9IGRhdGE7XG4gIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgdGhpcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICB0aGlzLnBhcmVudCA9IHBhcmVudDtcbiAgdGhpcy5saXN0ZW5lcnMgPSBkYXRhLm9uIHx8IGVtcHR5T2JqZWN0O1xuICB0aGlzLmluamVjdGlvbnMgPSByZXNvbHZlSW5qZWN0KG9wdGlvbnMuaW5qZWN0LCBwYXJlbnQpO1xuICB0aGlzLnNsb3RzID0gZnVuY3Rpb24gKCkge1xuICAgIGlmICghdGhpcyQxLiRzbG90cykge1xuICAgICAgbm9ybWFsaXplU2NvcGVkU2xvdHMoXG4gICAgICAgIGRhdGEuc2NvcGVkU2xvdHMsXG4gICAgICAgIHRoaXMkMS4kc2xvdHMgPSByZXNvbHZlU2xvdHMoY2hpbGRyZW4sIHBhcmVudClcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzJDEuJHNsb3RzXG4gIH07XG5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdzY29wZWRTbG90cycsICh7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uIGdldCAoKSB7XG4gICAgICByZXR1cm4gbm9ybWFsaXplU2NvcGVkU2xvdHMoZGF0YS5zY29wZWRTbG90cywgdGhpcy5zbG90cygpKVxuICAgIH1cbiAgfSkpO1xuXG4gIC8vIHN1cHBvcnQgZm9yIGNvbXBpbGVkIGZ1bmN0aW9uYWwgdGVtcGxhdGVcbiAgaWYgKGlzQ29tcGlsZWQpIHtcbiAgICAvLyBleHBvc2luZyAkb3B0aW9ucyBmb3IgcmVuZGVyU3RhdGljKClcbiAgICB0aGlzLiRvcHRpb25zID0gb3B0aW9ucztcbiAgICAvLyBwcmUtcmVzb2x2ZSBzbG90cyBmb3IgcmVuZGVyU2xvdCgpXG4gICAgdGhpcy4kc2xvdHMgPSB0aGlzLnNsb3RzKCk7XG4gICAgdGhpcy4kc2NvcGVkU2xvdHMgPSBub3JtYWxpemVTY29wZWRTbG90cyhkYXRhLnNjb3BlZFNsb3RzLCB0aGlzLiRzbG90cyk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5fc2NvcGVJZCkge1xuICAgIHRoaXMuX2MgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCkge1xuICAgICAgdmFyIHZub2RlID0gY3JlYXRlRWxlbWVudChjb250ZXh0Vm0sIGEsIGIsIGMsIGQsIG5lZWROb3JtYWxpemF0aW9uKTtcbiAgICAgIGlmICh2bm9kZSAmJiAhQXJyYXkuaXNBcnJheSh2bm9kZSkpIHtcbiAgICAgICAgdm5vZGUuZm5TY29wZUlkID0gb3B0aW9ucy5fc2NvcGVJZDtcbiAgICAgICAgdm5vZGUuZm5Db250ZXh0ID0gcGFyZW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZub2RlXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLl9jID0gZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHsgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoY29udGV4dFZtLCBhLCBiLCBjLCBkLCBuZWVkTm9ybWFsaXphdGlvbik7IH07XG4gIH1cbn1cblxuaW5zdGFsbFJlbmRlckhlbHBlcnMoRnVuY3Rpb25hbFJlbmRlckNvbnRleHQucHJvdG90eXBlKTtcblxuZnVuY3Rpb24gY3JlYXRlRnVuY3Rpb25hbENvbXBvbmVudCAoXG4gIEN0b3IsXG4gIHByb3BzRGF0YSxcbiAgZGF0YSxcbiAgY29udGV4dFZtLFxuICBjaGlsZHJlblxuKSB7XG4gIHZhciBvcHRpb25zID0gQ3Rvci5vcHRpb25zO1xuICB2YXIgcHJvcHMgPSB7fTtcbiAgdmFyIHByb3BPcHRpb25zID0gb3B0aW9ucy5wcm9wcztcbiAgaWYgKGlzRGVmKHByb3BPcHRpb25zKSkge1xuICAgIGZvciAodmFyIGtleSBpbiBwcm9wT3B0aW9ucykge1xuICAgICAgcHJvcHNba2V5XSA9IHZhbGlkYXRlUHJvcChrZXksIHByb3BPcHRpb25zLCBwcm9wc0RhdGEgfHwgZW1wdHlPYmplY3QpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBpZiAoaXNEZWYoZGF0YS5hdHRycykpIHsgbWVyZ2VQcm9wcyhwcm9wcywgZGF0YS5hdHRycyk7IH1cbiAgICBpZiAoaXNEZWYoZGF0YS5wcm9wcykpIHsgbWVyZ2VQcm9wcyhwcm9wcywgZGF0YS5wcm9wcyk7IH1cbiAgfVxuXG4gIHZhciByZW5kZXJDb250ZXh0ID0gbmV3IEZ1bmN0aW9uYWxSZW5kZXJDb250ZXh0KFxuICAgIGRhdGEsXG4gICAgcHJvcHMsXG4gICAgY2hpbGRyZW4sXG4gICAgY29udGV4dFZtLFxuICAgIEN0b3JcbiAgKTtcblxuICB2YXIgdm5vZGUgPSBvcHRpb25zLnJlbmRlci5jYWxsKG51bGwsIHJlbmRlckNvbnRleHQuX2MsIHJlbmRlckNvbnRleHQpO1xuXG4gIGlmICh2bm9kZSBpbnN0YW5jZW9mIFZOb2RlKSB7XG4gICAgcmV0dXJuIGNsb25lQW5kTWFya0Z1bmN0aW9uYWxSZXN1bHQodm5vZGUsIGRhdGEsIHJlbmRlckNvbnRleHQucGFyZW50LCBvcHRpb25zLCByZW5kZXJDb250ZXh0KVxuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodm5vZGUpKSB7XG4gICAgdmFyIHZub2RlcyA9IG5vcm1hbGl6ZUNoaWxkcmVuKHZub2RlKSB8fCBbXTtcbiAgICB2YXIgcmVzID0gbmV3IEFycmF5KHZub2Rlcy5sZW5ndGgpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdm5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICByZXNbaV0gPSBjbG9uZUFuZE1hcmtGdW5jdGlvbmFsUmVzdWx0KHZub2Rlc1tpXSwgZGF0YSwgcmVuZGVyQ29udGV4dC5wYXJlbnQsIG9wdGlvbnMsIHJlbmRlckNvbnRleHQpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzXG4gIH1cbn1cblxuZnVuY3Rpb24gY2xvbmVBbmRNYXJrRnVuY3Rpb25hbFJlc3VsdCAodm5vZGUsIGRhdGEsIGNvbnRleHRWbSwgb3B0aW9ucywgcmVuZGVyQ29udGV4dCkge1xuICAvLyAjNzgxNyBjbG9uZSBub2RlIGJlZm9yZSBzZXR0aW5nIGZuQ29udGV4dCwgb3RoZXJ3aXNlIGlmIHRoZSBub2RlIGlzIHJldXNlZFxuICAvLyAoZS5nLiBpdCB3YXMgZnJvbSBhIGNhY2hlZCBub3JtYWwgc2xvdCkgdGhlIGZuQ29udGV4dCBjYXVzZXMgbmFtZWQgc2xvdHNcbiAgLy8gdGhhdCBzaG91bGQgbm90IGJlIG1hdGNoZWQgdG8gbWF0Y2guXG4gIHZhciBjbG9uZSA9IGNsb25lVk5vZGUodm5vZGUpO1xuICBjbG9uZS5mbkNvbnRleHQgPSBjb250ZXh0Vm07XG4gIGNsb25lLmZuT3B0aW9ucyA9IG9wdGlvbnM7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgKGNsb25lLmRldnRvb2xzTWV0YSA9IGNsb25lLmRldnRvb2xzTWV0YSB8fCB7fSkucmVuZGVyQ29udGV4dCA9IHJlbmRlckNvbnRleHQ7XG4gIH1cbiAgaWYgKGRhdGEuc2xvdCkge1xuICAgIChjbG9uZS5kYXRhIHx8IChjbG9uZS5kYXRhID0ge30pKS5zbG90ID0gZGF0YS5zbG90O1xuICB9XG4gIHJldHVybiBjbG9uZVxufVxuXG5mdW5jdGlvbiBtZXJnZVByb3BzICh0bywgZnJvbSkge1xuICBmb3IgKHZhciBrZXkgaW4gZnJvbSkge1xuICAgIHRvW2NhbWVsaXplKGtleSldID0gZnJvbVtrZXldO1xuICB9XG59XG5cbi8qICAqL1xuXG4vKiAgKi9cblxuLyogICovXG5cbi8qICAqL1xuXG4vLyBpbmxpbmUgaG9va3MgdG8gYmUgaW52b2tlZCBvbiBjb21wb25lbnQgVk5vZGVzIGR1cmluZyBwYXRjaFxudmFyIGNvbXBvbmVudFZOb2RlSG9va3MgPSB7XG4gIGluaXQ6IGZ1bmN0aW9uIGluaXQgKHZub2RlLCBoeWRyYXRpbmcpIHtcbiAgICBpZiAoXG4gICAgICB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSAmJlxuICAgICAgIXZub2RlLmNvbXBvbmVudEluc3RhbmNlLl9pc0Rlc3Ryb3llZCAmJlxuICAgICAgdm5vZGUuZGF0YS5rZWVwQWxpdmVcbiAgICApIHtcbiAgICAgIC8vIGtlcHQtYWxpdmUgY29tcG9uZW50cywgdHJlYXQgYXMgYSBwYXRjaFxuICAgICAgdmFyIG1vdW50ZWROb2RlID0gdm5vZGU7IC8vIHdvcmsgYXJvdW5kIGZsb3dcbiAgICAgIGNvbXBvbmVudFZOb2RlSG9va3MucHJlcGF0Y2gobW91bnRlZE5vZGUsIG1vdW50ZWROb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGNoaWxkID0gdm5vZGUuY29tcG9uZW50SW5zdGFuY2UgPSBjcmVhdGVDb21wb25lbnRJbnN0YW5jZUZvclZub2RlKFxuICAgICAgICB2bm9kZSxcbiAgICAgICAgYWN0aXZlSW5zdGFuY2VcbiAgICAgICk7XG4gICAgICBjaGlsZC4kbW91bnQoaHlkcmF0aW5nID8gdm5vZGUuZWxtIDogdW5kZWZpbmVkLCBoeWRyYXRpbmcpO1xuICAgIH1cbiAgfSxcblxuICBwcmVwYXRjaDogZnVuY3Rpb24gcHJlcGF0Y2ggKG9sZFZub2RlLCB2bm9kZSkge1xuICAgIHZhciBvcHRpb25zID0gdm5vZGUuY29tcG9uZW50T3B0aW9ucztcbiAgICB2YXIgY2hpbGQgPSB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSA9IG9sZFZub2RlLmNvbXBvbmVudEluc3RhbmNlO1xuICAgIHVwZGF0ZUNoaWxkQ29tcG9uZW50KFxuICAgICAgY2hpbGQsXG4gICAgICBvcHRpb25zLnByb3BzRGF0YSwgLy8gdXBkYXRlZCBwcm9wc1xuICAgICAgb3B0aW9ucy5saXN0ZW5lcnMsIC8vIHVwZGF0ZWQgbGlzdGVuZXJzXG4gICAgICB2bm9kZSwgLy8gbmV3IHBhcmVudCB2bm9kZVxuICAgICAgb3B0aW9ucy5jaGlsZHJlbiAvLyBuZXcgY2hpbGRyZW5cbiAgICApO1xuICB9LFxuXG4gIGluc2VydDogZnVuY3Rpb24gaW5zZXJ0ICh2bm9kZSkge1xuICAgIHZhciBjb250ZXh0ID0gdm5vZGUuY29udGV4dDtcbiAgICB2YXIgY29tcG9uZW50SW5zdGFuY2UgPSB2bm9kZS5jb21wb25lbnRJbnN0YW5jZTtcbiAgICBpZiAoIWNvbXBvbmVudEluc3RhbmNlLl9pc01vdW50ZWQpIHtcbiAgICAgIGNvbXBvbmVudEluc3RhbmNlLl9pc01vdW50ZWQgPSB0cnVlO1xuICAgICAgY2FsbEhvb2soY29tcG9uZW50SW5zdGFuY2UsICdtb3VudGVkJyk7XG4gICAgfVxuICAgIGlmICh2bm9kZS5kYXRhLmtlZXBBbGl2ZSkge1xuICAgICAgaWYgKGNvbnRleHQuX2lzTW91bnRlZCkge1xuICAgICAgICAvLyB2dWUtcm91dGVyIzEyMTJcbiAgICAgICAgLy8gRHVyaW5nIHVwZGF0ZXMsIGEga2VwdC1hbGl2ZSBjb21wb25lbnQncyBjaGlsZCBjb21wb25lbnRzIG1heVxuICAgICAgICAvLyBjaGFuZ2UsIHNvIGRpcmVjdGx5IHdhbGtpbmcgdGhlIHRyZWUgaGVyZSBtYXkgY2FsbCBhY3RpdmF0ZWQgaG9va3NcbiAgICAgICAgLy8gb24gaW5jb3JyZWN0IGNoaWxkcmVuLiBJbnN0ZWFkIHdlIHB1c2ggdGhlbSBpbnRvIGEgcXVldWUgd2hpY2ggd2lsbFxuICAgICAgICAvLyBiZSBwcm9jZXNzZWQgYWZ0ZXIgdGhlIHdob2xlIHBhdGNoIHByb2Nlc3MgZW5kZWQuXG4gICAgICAgIHF1ZXVlQWN0aXZhdGVkQ29tcG9uZW50KGNvbXBvbmVudEluc3RhbmNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFjdGl2YXRlQ2hpbGRDb21wb25lbnQoY29tcG9uZW50SW5zdGFuY2UsIHRydWUgLyogZGlyZWN0ICovKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgZGVzdHJveTogZnVuY3Rpb24gZGVzdHJveSAodm5vZGUpIHtcbiAgICB2YXIgY29tcG9uZW50SW5zdGFuY2UgPSB2bm9kZS5jb21wb25lbnRJbnN0YW5jZTtcbiAgICBpZiAoIWNvbXBvbmVudEluc3RhbmNlLl9pc0Rlc3Ryb3llZCkge1xuICAgICAgaWYgKCF2bm9kZS5kYXRhLmtlZXBBbGl2ZSkge1xuICAgICAgICBjb21wb25lbnRJbnN0YW5jZS4kZGVzdHJveSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVhY3RpdmF0ZUNoaWxkQ29tcG9uZW50KGNvbXBvbmVudEluc3RhbmNlLCB0cnVlIC8qIGRpcmVjdCAqLyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG52YXIgaG9va3NUb01lcmdlID0gT2JqZWN0LmtleXMoY29tcG9uZW50Vk5vZGVIb29rcyk7XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbXBvbmVudCAoXG4gIEN0b3IsXG4gIGRhdGEsXG4gIGNvbnRleHQsXG4gIGNoaWxkcmVuLFxuICB0YWdcbikge1xuICBpZiAoaXNVbmRlZihDdG9yKSkge1xuICAgIHJldHVyblxuICB9XG5cbiAgdmFyIGJhc2VDdG9yID0gY29udGV4dC4kb3B0aW9ucy5fYmFzZTtcblxuICAvLyBwbGFpbiBvcHRpb25zIG9iamVjdDogdHVybiBpdCBpbnRvIGEgY29uc3RydWN0b3JcbiAgaWYgKGlzT2JqZWN0KEN0b3IpKSB7XG4gICAgQ3RvciA9IGJhc2VDdG9yLmV4dGVuZChDdG9yKTtcbiAgfVxuXG4gIC8vIGlmIGF0IHRoaXMgc3RhZ2UgaXQncyBub3QgYSBjb25zdHJ1Y3RvciBvciBhbiBhc3luYyBjb21wb25lbnQgZmFjdG9yeSxcbiAgLy8gcmVqZWN0LlxuICBpZiAodHlwZW9mIEN0b3IgIT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgd2FybigoXCJJbnZhbGlkIENvbXBvbmVudCBkZWZpbml0aW9uOiBcIiArIChTdHJpbmcoQ3RvcikpKSwgY29udGV4dCk7XG4gICAgfVxuICAgIHJldHVyblxuICB9XG5cbiAgLy8gYXN5bmMgY29tcG9uZW50XG4gIHZhciBhc3luY0ZhY3Rvcnk7XG4gIGlmIChpc1VuZGVmKEN0b3IuY2lkKSkge1xuICAgIGFzeW5jRmFjdG9yeSA9IEN0b3I7XG4gICAgQ3RvciA9IHJlc29sdmVBc3luY0NvbXBvbmVudChhc3luY0ZhY3RvcnksIGJhc2VDdG9yKTtcbiAgICBpZiAoQ3RvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyByZXR1cm4gYSBwbGFjZWhvbGRlciBub2RlIGZvciBhc3luYyBjb21wb25lbnQsIHdoaWNoIGlzIHJlbmRlcmVkXG4gICAgICAvLyBhcyBhIGNvbW1lbnQgbm9kZSBidXQgcHJlc2VydmVzIGFsbCB0aGUgcmF3IGluZm9ybWF0aW9uIGZvciB0aGUgbm9kZS5cbiAgICAgIC8vIHRoZSBpbmZvcm1hdGlvbiB3aWxsIGJlIHVzZWQgZm9yIGFzeW5jIHNlcnZlci1yZW5kZXJpbmcgYW5kIGh5ZHJhdGlvbi5cbiAgICAgIHJldHVybiBjcmVhdGVBc3luY1BsYWNlaG9sZGVyKFxuICAgICAgICBhc3luY0ZhY3RvcnksXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGNoaWxkcmVuLFxuICAgICAgICB0YWdcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBkYXRhID0gZGF0YSB8fCB7fTtcblxuICAvLyByZXNvbHZlIGNvbnN0cnVjdG9yIG9wdGlvbnMgaW4gY2FzZSBnbG9iYWwgbWl4aW5zIGFyZSBhcHBsaWVkIGFmdGVyXG4gIC8vIGNvbXBvbmVudCBjb25zdHJ1Y3RvciBjcmVhdGlvblxuICByZXNvbHZlQ29uc3RydWN0b3JPcHRpb25zKEN0b3IpO1xuXG4gIC8vIHRyYW5zZm9ybSBjb21wb25lbnQgdi1tb2RlbCBkYXRhIGludG8gcHJvcHMgJiBldmVudHNcbiAgaWYgKGlzRGVmKGRhdGEubW9kZWwpKSB7XG4gICAgdHJhbnNmb3JtTW9kZWwoQ3Rvci5vcHRpb25zLCBkYXRhKTtcbiAgfVxuXG4gIC8vIGV4dHJhY3QgcHJvcHNcbiAgdmFyIHByb3BzRGF0YSA9IGV4dHJhY3RQcm9wc0Zyb21WTm9kZURhdGEoZGF0YSwgQ3RvciwgdGFnKTtcblxuICAvLyBmdW5jdGlvbmFsIGNvbXBvbmVudFxuICBpZiAoaXNUcnVlKEN0b3Iub3B0aW9ucy5mdW5jdGlvbmFsKSkge1xuICAgIHJldHVybiBjcmVhdGVGdW5jdGlvbmFsQ29tcG9uZW50KEN0b3IsIHByb3BzRGF0YSwgZGF0YSwgY29udGV4dCwgY2hpbGRyZW4pXG4gIH1cblxuICAvLyBleHRyYWN0IGxpc3RlbmVycywgc2luY2UgdGhlc2UgbmVlZHMgdG8gYmUgdHJlYXRlZCBhc1xuICAvLyBjaGlsZCBjb21wb25lbnQgbGlzdGVuZXJzIGluc3RlYWQgb2YgRE9NIGxpc3RlbmVyc1xuICB2YXIgbGlzdGVuZXJzID0gZGF0YS5vbjtcbiAgLy8gcmVwbGFjZSB3aXRoIGxpc3RlbmVycyB3aXRoIC5uYXRpdmUgbW9kaWZpZXJcbiAgLy8gc28gaXQgZ2V0cyBwcm9jZXNzZWQgZHVyaW5nIHBhcmVudCBjb21wb25lbnQgcGF0Y2guXG4gIGRhdGEub24gPSBkYXRhLm5hdGl2ZU9uO1xuXG4gIGlmIChpc1RydWUoQ3Rvci5vcHRpb25zLmFic3RyYWN0KSkge1xuICAgIC8vIGFic3RyYWN0IGNvbXBvbmVudHMgZG8gbm90IGtlZXAgYW55dGhpbmdcbiAgICAvLyBvdGhlciB0aGFuIHByb3BzICYgbGlzdGVuZXJzICYgc2xvdFxuXG4gICAgLy8gd29yayBhcm91bmQgZmxvd1xuICAgIHZhciBzbG90ID0gZGF0YS5zbG90O1xuICAgIGRhdGEgPSB7fTtcbiAgICBpZiAoc2xvdCkge1xuICAgICAgZGF0YS5zbG90ID0gc2xvdDtcbiAgICB9XG4gIH1cblxuICAvLyBpbnN0YWxsIGNvbXBvbmVudCBtYW5hZ2VtZW50IGhvb2tzIG9udG8gdGhlIHBsYWNlaG9sZGVyIG5vZGVcbiAgaW5zdGFsbENvbXBvbmVudEhvb2tzKGRhdGEpO1xuXG4gIC8vIHJldHVybiBhIHBsYWNlaG9sZGVyIHZub2RlXG4gIHZhciBuYW1lID0gQ3Rvci5vcHRpb25zLm5hbWUgfHwgdGFnO1xuICB2YXIgdm5vZGUgPSBuZXcgVk5vZGUoXG4gICAgKFwidnVlLWNvbXBvbmVudC1cIiArIChDdG9yLmNpZCkgKyAobmFtZSA/IChcIi1cIiArIG5hbWUpIDogJycpKSxcbiAgICBkYXRhLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBjb250ZXh0LFxuICAgIHsgQ3RvcjogQ3RvciwgcHJvcHNEYXRhOiBwcm9wc0RhdGEsIGxpc3RlbmVyczogbGlzdGVuZXJzLCB0YWc6IHRhZywgY2hpbGRyZW46IGNoaWxkcmVuIH0sXG4gICAgYXN5bmNGYWN0b3J5XG4gICk7XG5cbiAgcmV0dXJuIHZub2RlXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNvbXBvbmVudEluc3RhbmNlRm9yVm5vZGUgKFxuICAvLyB3ZSBrbm93IGl0J3MgTW91bnRlZENvbXBvbmVudFZOb2RlIGJ1dCBmbG93IGRvZXNuJ3RcbiAgdm5vZGUsXG4gIC8vIGFjdGl2ZUluc3RhbmNlIGluIGxpZmVjeWNsZSBzdGF0ZVxuICBwYXJlbnRcbikge1xuICB2YXIgb3B0aW9ucyA9IHtcbiAgICBfaXNDb21wb25lbnQ6IHRydWUsXG4gICAgX3BhcmVudFZub2RlOiB2bm9kZSxcbiAgICBwYXJlbnQ6IHBhcmVudFxuICB9O1xuICAvLyBjaGVjayBpbmxpbmUtdGVtcGxhdGUgcmVuZGVyIGZ1bmN0aW9uc1xuICB2YXIgaW5saW5lVGVtcGxhdGUgPSB2bm9kZS5kYXRhLmlubGluZVRlbXBsYXRlO1xuICBpZiAoaXNEZWYoaW5saW5lVGVtcGxhdGUpKSB7XG4gICAgb3B0aW9ucy5yZW5kZXIgPSBpbmxpbmVUZW1wbGF0ZS5yZW5kZXI7XG4gICAgb3B0aW9ucy5zdGF0aWNSZW5kZXJGbnMgPSBpbmxpbmVUZW1wbGF0ZS5zdGF0aWNSZW5kZXJGbnM7XG4gIH1cbiAgcmV0dXJuIG5ldyB2bm9kZS5jb21wb25lbnRPcHRpb25zLkN0b3Iob3B0aW9ucylcbn1cblxuZnVuY3Rpb24gaW5zdGFsbENvbXBvbmVudEhvb2tzIChkYXRhKSB7XG4gIHZhciBob29rcyA9IGRhdGEuaG9vayB8fCAoZGF0YS5ob29rID0ge30pO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGhvb2tzVG9NZXJnZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBrZXkgPSBob29rc1RvTWVyZ2VbaV07XG4gICAgdmFyIGV4aXN0aW5nID0gaG9va3Nba2V5XTtcbiAgICB2YXIgdG9NZXJnZSA9IGNvbXBvbmVudFZOb2RlSG9va3Nba2V5XTtcbiAgICBpZiAoZXhpc3RpbmcgIT09IHRvTWVyZ2UgJiYgIShleGlzdGluZyAmJiBleGlzdGluZy5fbWVyZ2VkKSkge1xuICAgICAgaG9va3Nba2V5XSA9IGV4aXN0aW5nID8gbWVyZ2VIb29rJDEodG9NZXJnZSwgZXhpc3RpbmcpIDogdG9NZXJnZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbWVyZ2VIb29rJDEgKGYxLCBmMikge1xuICB2YXIgbWVyZ2VkID0gZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAvLyBmbG93IGNvbXBsYWlucyBhYm91dCBleHRyYSBhcmdzIHdoaWNoIGlzIHdoeSB3ZSB1c2UgYW55XG4gICAgZjEoYSwgYik7XG4gICAgZjIoYSwgYik7XG4gIH07XG4gIG1lcmdlZC5fbWVyZ2VkID0gdHJ1ZTtcbiAgcmV0dXJuIG1lcmdlZFxufVxuXG4vLyB0cmFuc2Zvcm0gY29tcG9uZW50IHYtbW9kZWwgaW5mbyAodmFsdWUgYW5kIGNhbGxiYWNrKSBpbnRvXG4vLyBwcm9wIGFuZCBldmVudCBoYW5kbGVyIHJlc3BlY3RpdmVseS5cbmZ1bmN0aW9uIHRyYW5zZm9ybU1vZGVsIChvcHRpb25zLCBkYXRhKSB7XG4gIHZhciBwcm9wID0gKG9wdGlvbnMubW9kZWwgJiYgb3B0aW9ucy5tb2RlbC5wcm9wKSB8fCAndmFsdWUnO1xuICB2YXIgZXZlbnQgPSAob3B0aW9ucy5tb2RlbCAmJiBvcHRpb25zLm1vZGVsLmV2ZW50KSB8fCAnaW5wdXQnXG4gIDsoZGF0YS5hdHRycyB8fCAoZGF0YS5hdHRycyA9IHt9KSlbcHJvcF0gPSBkYXRhLm1vZGVsLnZhbHVlO1xuICB2YXIgb24gPSBkYXRhLm9uIHx8IChkYXRhLm9uID0ge30pO1xuICB2YXIgZXhpc3RpbmcgPSBvbltldmVudF07XG4gIHZhciBjYWxsYmFjayA9IGRhdGEubW9kZWwuY2FsbGJhY2s7XG4gIGlmIChpc0RlZihleGlzdGluZykpIHtcbiAgICBpZiAoXG4gICAgICBBcnJheS5pc0FycmF5KGV4aXN0aW5nKVxuICAgICAgICA/IGV4aXN0aW5nLmluZGV4T2YoY2FsbGJhY2spID09PSAtMVxuICAgICAgICA6IGV4aXN0aW5nICE9PSBjYWxsYmFja1xuICAgICkge1xuICAgICAgb25bZXZlbnRdID0gW2NhbGxiYWNrXS5jb25jYXQoZXhpc3RpbmcpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBvbltldmVudF0gPSBjYWxsYmFjaztcbiAgfVxufVxuXG4vKiAgKi9cblxudmFyIFNJTVBMRV9OT1JNQUxJWkUgPSAxO1xudmFyIEFMV0FZU19OT1JNQUxJWkUgPSAyO1xuXG4vLyB3cmFwcGVyIGZ1bmN0aW9uIGZvciBwcm92aWRpbmcgYSBtb3JlIGZsZXhpYmxlIGludGVyZmFjZVxuLy8gd2l0aG91dCBnZXR0aW5nIHllbGxlZCBhdCBieSBmbG93XG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50IChcbiAgY29udGV4dCxcbiAgdGFnLFxuICBkYXRhLFxuICBjaGlsZHJlbixcbiAgbm9ybWFsaXphdGlvblR5cGUsXG4gIGFsd2F5c05vcm1hbGl6ZVxuKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGRhdGEpIHx8IGlzUHJpbWl0aXZlKGRhdGEpKSB7XG4gICAgbm9ybWFsaXphdGlvblR5cGUgPSBjaGlsZHJlbjtcbiAgICBjaGlsZHJlbiA9IGRhdGE7XG4gICAgZGF0YSA9IHVuZGVmaW5lZDtcbiAgfVxuICBpZiAoaXNUcnVlKGFsd2F5c05vcm1hbGl6ZSkpIHtcbiAgICBub3JtYWxpemF0aW9uVHlwZSA9IEFMV0FZU19OT1JNQUxJWkU7XG4gIH1cbiAgcmV0dXJuIF9jcmVhdGVFbGVtZW50KGNvbnRleHQsIHRhZywgZGF0YSwgY2hpbGRyZW4sIG5vcm1hbGl6YXRpb25UeXBlKVxufVxuXG5mdW5jdGlvbiBfY3JlYXRlRWxlbWVudCAoXG4gIGNvbnRleHQsXG4gIHRhZyxcbiAgZGF0YSxcbiAgY2hpbGRyZW4sXG4gIG5vcm1hbGl6YXRpb25UeXBlXG4pIHtcbiAgaWYgKGlzRGVmKGRhdGEpICYmIGlzRGVmKChkYXRhKS5fX29iX18pKSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuKFxuICAgICAgXCJBdm9pZCB1c2luZyBvYnNlcnZlZCBkYXRhIG9iamVjdCBhcyB2bm9kZSBkYXRhOiBcIiArIChKU09OLnN0cmluZ2lmeShkYXRhKSkgKyBcIlxcblwiICtcbiAgICAgICdBbHdheXMgY3JlYXRlIGZyZXNoIHZub2RlIGRhdGEgb2JqZWN0cyBpbiBlYWNoIHJlbmRlciEnLFxuICAgICAgY29udGV4dFxuICAgICk7XG4gICAgcmV0dXJuIGNyZWF0ZUVtcHR5Vk5vZGUoKVxuICB9XG4gIC8vIG9iamVjdCBzeW50YXggaW4gdi1iaW5kXG4gIGlmIChpc0RlZihkYXRhKSAmJiBpc0RlZihkYXRhLmlzKSkge1xuICAgIHRhZyA9IGRhdGEuaXM7XG4gIH1cbiAgaWYgKCF0YWcpIHtcbiAgICAvLyBpbiBjYXNlIG9mIGNvbXBvbmVudCA6aXMgc2V0IHRvIGZhbHN5IHZhbHVlXG4gICAgcmV0dXJuIGNyZWF0ZUVtcHR5Vk5vZGUoKVxuICB9XG4gIC8vIHdhcm4gYWdhaW5zdCBub24tcHJpbWl0aXZlIGtleVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgIGlzRGVmKGRhdGEpICYmIGlzRGVmKGRhdGEua2V5KSAmJiAhaXNQcmltaXRpdmUoZGF0YS5rZXkpXG4gICkge1xuICAgIHtcbiAgICAgIHdhcm4oXG4gICAgICAgICdBdm9pZCB1c2luZyBub24tcHJpbWl0aXZlIHZhbHVlIGFzIGtleSwgJyArXG4gICAgICAgICd1c2Ugc3RyaW5nL251bWJlciB2YWx1ZSBpbnN0ZWFkLicsXG4gICAgICAgIGNvbnRleHRcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIC8vIHN1cHBvcnQgc2luZ2xlIGZ1bmN0aW9uIGNoaWxkcmVuIGFzIGRlZmF1bHQgc2NvcGVkIHNsb3RcbiAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pICYmXG4gICAgdHlwZW9mIGNoaWxkcmVuWzBdID09PSAnZnVuY3Rpb24nXG4gICkge1xuICAgIGRhdGEgPSBkYXRhIHx8IHt9O1xuICAgIGRhdGEuc2NvcGVkU2xvdHMgPSB7IGRlZmF1bHQ6IGNoaWxkcmVuWzBdIH07XG4gICAgY2hpbGRyZW4ubGVuZ3RoID0gMDtcbiAgfVxuICBpZiAobm9ybWFsaXphdGlvblR5cGUgPT09IEFMV0FZU19OT1JNQUxJWkUpIHtcbiAgICBjaGlsZHJlbiA9IG5vcm1hbGl6ZUNoaWxkcmVuKGNoaWxkcmVuKTtcbiAgfSBlbHNlIGlmIChub3JtYWxpemF0aW9uVHlwZSA9PT0gU0lNUExFX05PUk1BTElaRSkge1xuICAgIGNoaWxkcmVuID0gc2ltcGxlTm9ybWFsaXplQ2hpbGRyZW4oY2hpbGRyZW4pO1xuICB9XG4gIHZhciB2bm9kZSwgbnM7XG4gIGlmICh0eXBlb2YgdGFnID09PSAnc3RyaW5nJykge1xuICAgIHZhciBDdG9yO1xuICAgIG5zID0gKGNvbnRleHQuJHZub2RlICYmIGNvbnRleHQuJHZub2RlLm5zKSB8fCBjb25maWcuZ2V0VGFnTmFtZXNwYWNlKHRhZyk7XG4gICAgaWYgKGNvbmZpZy5pc1Jlc2VydmVkVGFnKHRhZykpIHtcbiAgICAgIC8vIHBsYXRmb3JtIGJ1aWx0LWluIGVsZW1lbnRzXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBpc0RlZihkYXRhKSAmJiBpc0RlZihkYXRhLm5hdGl2ZU9uKSAmJiBkYXRhLnRhZyAhPT0gJ2NvbXBvbmVudCcpIHtcbiAgICAgICAgd2FybihcbiAgICAgICAgICAoXCJUaGUgLm5hdGl2ZSBtb2RpZmllciBmb3Igdi1vbiBpcyBvbmx5IHZhbGlkIG9uIGNvbXBvbmVudHMgYnV0IGl0IHdhcyB1c2VkIG9uIDxcIiArIHRhZyArIFwiPi5cIiksXG4gICAgICAgICAgY29udGV4dFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdm5vZGUgPSBuZXcgVk5vZGUoXG4gICAgICAgIGNvbmZpZy5wYXJzZVBsYXRmb3JtVGFnTmFtZSh0YWcpLCBkYXRhLCBjaGlsZHJlbixcbiAgICAgICAgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbnRleHRcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICgoIWRhdGEgfHwgIWRhdGEucHJlKSAmJiBpc0RlZihDdG9yID0gcmVzb2x2ZUFzc2V0KGNvbnRleHQuJG9wdGlvbnMsICdjb21wb25lbnRzJywgdGFnKSkpIHtcbiAgICAgIC8vIGNvbXBvbmVudFxuICAgICAgdm5vZGUgPSBjcmVhdGVDb21wb25lbnQoQ3RvciwgZGF0YSwgY29udGV4dCwgY2hpbGRyZW4sIHRhZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHVua25vd24gb3IgdW5saXN0ZWQgbmFtZXNwYWNlZCBlbGVtZW50c1xuICAgICAgLy8gY2hlY2sgYXQgcnVudGltZSBiZWNhdXNlIGl0IG1heSBnZXQgYXNzaWduZWQgYSBuYW1lc3BhY2Ugd2hlbiBpdHNcbiAgICAgIC8vIHBhcmVudCBub3JtYWxpemVzIGNoaWxkcmVuXG4gICAgICB2bm9kZSA9IG5ldyBWTm9kZShcbiAgICAgICAgdGFnLCBkYXRhLCBjaGlsZHJlbixcbiAgICAgICAgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbnRleHRcbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIGRpcmVjdCBjb21wb25lbnQgb3B0aW9ucyAvIGNvbnN0cnVjdG9yXG4gICAgdm5vZGUgPSBjcmVhdGVDb21wb25lbnQodGFnLCBkYXRhLCBjb250ZXh0LCBjaGlsZHJlbik7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkodm5vZGUpKSB7XG4gICAgcmV0dXJuIHZub2RlXG4gIH0gZWxzZSBpZiAoaXNEZWYodm5vZGUpKSB7XG4gICAgaWYgKGlzRGVmKG5zKSkgeyBhcHBseU5TKHZub2RlLCBucyk7IH1cbiAgICBpZiAoaXNEZWYoZGF0YSkpIHsgcmVnaXN0ZXJEZWVwQmluZGluZ3MoZGF0YSk7IH1cbiAgICByZXR1cm4gdm5vZGVcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY3JlYXRlRW1wdHlWTm9kZSgpXG4gIH1cbn1cblxuZnVuY3Rpb24gYXBwbHlOUyAodm5vZGUsIG5zLCBmb3JjZSkge1xuICB2bm9kZS5ucyA9IG5zO1xuICBpZiAodm5vZGUudGFnID09PSAnZm9yZWlnbk9iamVjdCcpIHtcbiAgICAvLyB1c2UgZGVmYXVsdCBuYW1lc3BhY2UgaW5zaWRlIGZvcmVpZ25PYmplY3RcbiAgICBucyA9IHVuZGVmaW5lZDtcbiAgICBmb3JjZSA9IHRydWU7XG4gIH1cbiAgaWYgKGlzRGVmKHZub2RlLmNoaWxkcmVuKSkge1xuICAgIGZvciAodmFyIGkgPSAwLCBsID0gdm5vZGUuY2hpbGRyZW4ubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICB2YXIgY2hpbGQgPSB2bm9kZS5jaGlsZHJlbltpXTtcbiAgICAgIGlmIChpc0RlZihjaGlsZC50YWcpICYmIChcbiAgICAgICAgaXNVbmRlZihjaGlsZC5ucykgfHwgKGlzVHJ1ZShmb3JjZSkgJiYgY2hpbGQudGFnICE9PSAnc3ZnJykpKSB7XG4gICAgICAgIGFwcGx5TlMoY2hpbGQsIG5zLCBmb3JjZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIHJlZiAjNTMxOFxuLy8gbmVjZXNzYXJ5IHRvIGVuc3VyZSBwYXJlbnQgcmUtcmVuZGVyIHdoZW4gZGVlcCBiaW5kaW5ncyBsaWtlIDpzdHlsZSBhbmRcbi8vIDpjbGFzcyBhcmUgdXNlZCBvbiBzbG90IG5vZGVzXG5mdW5jdGlvbiByZWdpc3RlckRlZXBCaW5kaW5ncyAoZGF0YSkge1xuICBpZiAoaXNPYmplY3QoZGF0YS5zdHlsZSkpIHtcbiAgICB0cmF2ZXJzZShkYXRhLnN0eWxlKTtcbiAgfVxuICBpZiAoaXNPYmplY3QoZGF0YS5jbGFzcykpIHtcbiAgICB0cmF2ZXJzZShkYXRhLmNsYXNzKTtcbiAgfVxufVxuXG4vKiAgKi9cblxuZnVuY3Rpb24gaW5pdFJlbmRlciAodm0pIHtcbiAgdm0uX3Zub2RlID0gbnVsbDsgLy8gdGhlIHJvb3Qgb2YgdGhlIGNoaWxkIHRyZWVcbiAgdm0uX3N0YXRpY1RyZWVzID0gbnVsbDsgLy8gdi1vbmNlIGNhY2hlZCB0cmVlc1xuICB2YXIgb3B0aW9ucyA9IHZtLiRvcHRpb25zO1xuICB2YXIgcGFyZW50Vm5vZGUgPSB2bS4kdm5vZGUgPSBvcHRpb25zLl9wYXJlbnRWbm9kZTsgLy8gdGhlIHBsYWNlaG9sZGVyIG5vZGUgaW4gcGFyZW50IHRyZWVcbiAgdmFyIHJlbmRlckNvbnRleHQgPSBwYXJlbnRWbm9kZSAmJiBwYXJlbnRWbm9kZS5jb250ZXh0O1xuICB2bS4kc2xvdHMgPSByZXNvbHZlU2xvdHMob3B0aW9ucy5fcmVuZGVyQ2hpbGRyZW4sIHJlbmRlckNvbnRleHQpO1xuICB2bS4kc2NvcGVkU2xvdHMgPSBlbXB0eU9iamVjdDtcbiAgLy8gYmluZCB0aGUgY3JlYXRlRWxlbWVudCBmbiB0byB0aGlzIGluc3RhbmNlXG4gIC8vIHNvIHRoYXQgd2UgZ2V0IHByb3BlciByZW5kZXIgY29udGV4dCBpbnNpZGUgaXQuXG4gIC8vIGFyZ3Mgb3JkZXI6IHRhZywgZGF0YSwgY2hpbGRyZW4sIG5vcm1hbGl6YXRpb25UeXBlLCBhbHdheXNOb3JtYWxpemVcbiAgLy8gaW50ZXJuYWwgdmVyc2lvbiBpcyB1c2VkIGJ5IHJlbmRlciBmdW5jdGlvbnMgY29tcGlsZWQgZnJvbSB0ZW1wbGF0ZXNcbiAgdm0uX2MgPSBmdW5jdGlvbiAoYSwgYiwgYywgZCkgeyByZXR1cm4gY3JlYXRlRWxlbWVudCh2bSwgYSwgYiwgYywgZCwgZmFsc2UpOyB9O1xuICAvLyBub3JtYWxpemF0aW9uIGlzIGFsd2F5cyBhcHBsaWVkIGZvciB0aGUgcHVibGljIHZlcnNpb24sIHVzZWQgaW5cbiAgLy8gdXNlci13cml0dGVuIHJlbmRlciBmdW5jdGlvbnMuXG4gIHZtLiRjcmVhdGVFbGVtZW50ID0gZnVuY3Rpb24gKGEsIGIsIGMsIGQpIHsgcmV0dXJuIGNyZWF0ZUVsZW1lbnQodm0sIGEsIGIsIGMsIGQsIHRydWUpOyB9O1xuXG4gIC8vICRhdHRycyAmICRsaXN0ZW5lcnMgYXJlIGV4cG9zZWQgZm9yIGVhc2llciBIT0MgY3JlYXRpb24uXG4gIC8vIHRoZXkgbmVlZCB0byBiZSByZWFjdGl2ZSBzbyB0aGF0IEhPQ3MgdXNpbmcgdGhlbSBhcmUgYWx3YXlzIHVwZGF0ZWRcbiAgdmFyIHBhcmVudERhdGEgPSBwYXJlbnRWbm9kZSAmJiBwYXJlbnRWbm9kZS5kYXRhO1xuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgZGVmaW5lUmVhY3RpdmUkJDEodm0sICckYXR0cnMnLCBwYXJlbnREYXRhICYmIHBhcmVudERhdGEuYXR0cnMgfHwgZW1wdHlPYmplY3QsIGZ1bmN0aW9uICgpIHtcbiAgICAgICFpc1VwZGF0aW5nQ2hpbGRDb21wb25lbnQgJiYgd2FybihcIiRhdHRycyBpcyByZWFkb25seS5cIiwgdm0pO1xuICAgIH0sIHRydWUpO1xuICAgIGRlZmluZVJlYWN0aXZlJCQxKHZtLCAnJGxpc3RlbmVycycsIG9wdGlvbnMuX3BhcmVudExpc3RlbmVycyB8fCBlbXB0eU9iamVjdCwgZnVuY3Rpb24gKCkge1xuICAgICAgIWlzVXBkYXRpbmdDaGlsZENvbXBvbmVudCAmJiB3YXJuKFwiJGxpc3RlbmVycyBpcyByZWFkb25seS5cIiwgdm0pO1xuICAgIH0sIHRydWUpO1xuICB9IGVsc2Uge1xuICAgIGRlZmluZVJlYWN0aXZlJCQxKHZtLCAnJGF0dHJzJywgcGFyZW50RGF0YSAmJiBwYXJlbnREYXRhLmF0dHJzIHx8IGVtcHR5T2JqZWN0LCBudWxsLCB0cnVlKTtcbiAgICBkZWZpbmVSZWFjdGl2ZSQkMSh2bSwgJyRsaXN0ZW5lcnMnLCBvcHRpb25zLl9wYXJlbnRMaXN0ZW5lcnMgfHwgZW1wdHlPYmplY3QsIG51bGwsIHRydWUpO1xuICB9XG59XG5cbnZhciBjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2UgPSBudWxsO1xuXG5mdW5jdGlvbiByZW5kZXJNaXhpbiAoVnVlKSB7XG4gIC8vIGluc3RhbGwgcnVudGltZSBjb252ZW5pZW5jZSBoZWxwZXJzXG4gIGluc3RhbGxSZW5kZXJIZWxwZXJzKFZ1ZS5wcm90b3R5cGUpO1xuXG4gIFZ1ZS5wcm90b3R5cGUuJG5leHRUaWNrID0gZnVuY3Rpb24gKGZuKSB7XG4gICAgcmV0dXJuIG5leHRUaWNrKGZuLCB0aGlzKVxuICB9O1xuXG4gIFZ1ZS5wcm90b3R5cGUuX3JlbmRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgdm0gPSB0aGlzO1xuICAgIHZhciByZWYgPSB2bS4kb3B0aW9ucztcbiAgICB2YXIgcmVuZGVyID0gcmVmLnJlbmRlcjtcbiAgICB2YXIgX3BhcmVudFZub2RlID0gcmVmLl9wYXJlbnRWbm9kZTtcblxuICAgIGlmIChfcGFyZW50Vm5vZGUpIHtcbiAgICAgIHZtLiRzY29wZWRTbG90cyA9IG5vcm1hbGl6ZVNjb3BlZFNsb3RzKFxuICAgICAgICBfcGFyZW50Vm5vZGUuZGF0YS5zY29wZWRTbG90cyxcbiAgICAgICAgdm0uJHNsb3RzLFxuICAgICAgICB2bS4kc2NvcGVkU2xvdHNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gc2V0IHBhcmVudCB2bm9kZS4gdGhpcyBhbGxvd3MgcmVuZGVyIGZ1bmN0aW9ucyB0byBoYXZlIGFjY2Vzc1xuICAgIC8vIHRvIHRoZSBkYXRhIG9uIHRoZSBwbGFjZWhvbGRlciBub2RlLlxuICAgIHZtLiR2bm9kZSA9IF9wYXJlbnRWbm9kZTtcbiAgICAvLyByZW5kZXIgc2VsZlxuICAgIHZhciB2bm9kZTtcbiAgICB0cnkge1xuICAgICAgLy8gVGhlcmUncyBubyBuZWVkIHRvIG1haW50YWluIGEgc3RhY2sgYmVjYXVzZSBhbGwgcmVuZGVyIGZucyBhcmUgY2FsbGVkXG4gICAgICAvLyBzZXBhcmF0ZWx5IGZyb20gb25lIGFub3RoZXIuIE5lc3RlZCBjb21wb25lbnQncyByZW5kZXIgZm5zIGFyZSBjYWxsZWRcbiAgICAgIC8vIHdoZW4gcGFyZW50IGNvbXBvbmVudCBpcyBwYXRjaGVkLlxuICAgICAgY3VycmVudFJlbmRlcmluZ0luc3RhbmNlID0gdm07XG4gICAgICB2bm9kZSA9IHJlbmRlci5jYWxsKHZtLl9yZW5kZXJQcm94eSwgdm0uJGNyZWF0ZUVsZW1lbnQpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGhhbmRsZUVycm9yKGUsIHZtLCBcInJlbmRlclwiKTtcbiAgICAgIC8vIHJldHVybiBlcnJvciByZW5kZXIgcmVzdWx0LFxuICAgICAgLy8gb3IgcHJldmlvdXMgdm5vZGUgdG8gcHJldmVudCByZW5kZXIgZXJyb3IgY2F1c2luZyBibGFuayBjb21wb25lbnRcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB2bS4kb3B0aW9ucy5yZW5kZXJFcnJvcikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHZub2RlID0gdm0uJG9wdGlvbnMucmVuZGVyRXJyb3IuY2FsbCh2bS5fcmVuZGVyUHJveHksIHZtLiRjcmVhdGVFbGVtZW50LCBlKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGhhbmRsZUVycm9yKGUsIHZtLCBcInJlbmRlckVycm9yXCIpO1xuICAgICAgICAgIHZub2RlID0gdm0uX3Zub2RlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2bm9kZSA9IHZtLl92bm9kZTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgY3VycmVudFJlbmRlcmluZ0luc3RhbmNlID0gbnVsbDtcbiAgICB9XG4gICAgLy8gaWYgdGhlIHJldHVybmVkIGFycmF5IGNvbnRhaW5zIG9ubHkgYSBzaW5nbGUgbm9kZSwgYWxsb3cgaXRcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2bm9kZSkgJiYgdm5vZGUubGVuZ3RoID09PSAxKSB7XG4gICAgICB2bm9kZSA9IHZub2RlWzBdO1xuICAgIH1cbiAgICAvLyByZXR1cm4gZW1wdHkgdm5vZGUgaW4gY2FzZSB0aGUgcmVuZGVyIGZ1bmN0aW9uIGVycm9yZWQgb3V0XG4gICAgaWYgKCEodm5vZGUgaW5zdGFuY2VvZiBWTm9kZSkpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIEFycmF5LmlzQXJyYXkodm5vZGUpKSB7XG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgJ011bHRpcGxlIHJvb3Qgbm9kZXMgcmV0dXJuZWQgZnJvbSByZW5kZXIgZnVuY3Rpb24uIFJlbmRlciBmdW5jdGlvbiAnICtcbiAgICAgICAgICAnc2hvdWxkIHJldHVybiBhIHNpbmdsZSByb290IG5vZGUuJyxcbiAgICAgICAgICB2bVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdm5vZGUgPSBjcmVhdGVFbXB0eVZOb2RlKCk7XG4gICAgfVxuICAgIC8vIHNldCBwYXJlbnRcbiAgICB2bm9kZS5wYXJlbnQgPSBfcGFyZW50Vm5vZGU7XG4gICAgcmV0dXJuIHZub2RlXG4gIH07XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBlbnN1cmVDdG9yIChjb21wLCBiYXNlKSB7XG4gIGlmIChcbiAgICBjb21wLl9fZXNNb2R1bGUgfHxcbiAgICAoaGFzU3ltYm9sICYmIGNvbXBbU3ltYm9sLnRvU3RyaW5nVGFnXSA9PT0gJ01vZHVsZScpXG4gICkge1xuICAgIGNvbXAgPSBjb21wLmRlZmF1bHQ7XG4gIH1cbiAgcmV0dXJuIGlzT2JqZWN0KGNvbXApXG4gICAgPyBiYXNlLmV4dGVuZChjb21wKVxuICAgIDogY29tcFxufVxuXG5mdW5jdGlvbiBjcmVhdGVBc3luY1BsYWNlaG9sZGVyIChcbiAgZmFjdG9yeSxcbiAgZGF0YSxcbiAgY29udGV4dCxcbiAgY2hpbGRyZW4sXG4gIHRhZ1xuKSB7XG4gIHZhciBub2RlID0gY3JlYXRlRW1wdHlWTm9kZSgpO1xuICBub2RlLmFzeW5jRmFjdG9yeSA9IGZhY3Rvcnk7XG4gIG5vZGUuYXN5bmNNZXRhID0geyBkYXRhOiBkYXRhLCBjb250ZXh0OiBjb250ZXh0LCBjaGlsZHJlbjogY2hpbGRyZW4sIHRhZzogdGFnIH07XG4gIHJldHVybiBub2RlXG59XG5cbmZ1bmN0aW9uIHJlc29sdmVBc3luY0NvbXBvbmVudCAoXG4gIGZhY3RvcnksXG4gIGJhc2VDdG9yXG4pIHtcbiAgaWYgKGlzVHJ1ZShmYWN0b3J5LmVycm9yKSAmJiBpc0RlZihmYWN0b3J5LmVycm9yQ29tcCkpIHtcbiAgICByZXR1cm4gZmFjdG9yeS5lcnJvckNvbXBcbiAgfVxuXG4gIGlmIChpc0RlZihmYWN0b3J5LnJlc29sdmVkKSkge1xuICAgIHJldHVybiBmYWN0b3J5LnJlc29sdmVkXG4gIH1cblxuICB2YXIgb3duZXIgPSBjdXJyZW50UmVuZGVyaW5nSW5zdGFuY2U7XG4gIGlmIChvd25lciAmJiBpc0RlZihmYWN0b3J5Lm93bmVycykgJiYgZmFjdG9yeS5vd25lcnMuaW5kZXhPZihvd25lcikgPT09IC0xKSB7XG4gICAgLy8gYWxyZWFkeSBwZW5kaW5nXG4gICAgZmFjdG9yeS5vd25lcnMucHVzaChvd25lcik7XG4gIH1cblxuICBpZiAoaXNUcnVlKGZhY3RvcnkubG9hZGluZykgJiYgaXNEZWYoZmFjdG9yeS5sb2FkaW5nQ29tcCkpIHtcbiAgICByZXR1cm4gZmFjdG9yeS5sb2FkaW5nQ29tcFxuICB9XG5cbiAgaWYgKG93bmVyICYmICFpc0RlZihmYWN0b3J5Lm93bmVycykpIHtcbiAgICB2YXIgb3duZXJzID0gZmFjdG9yeS5vd25lcnMgPSBbb3duZXJdO1xuICAgIHZhciBzeW5jID0gdHJ1ZTtcbiAgICB2YXIgdGltZXJMb2FkaW5nID0gbnVsbDtcbiAgICB2YXIgdGltZXJUaW1lb3V0ID0gbnVsbFxuXG4gICAgOyhvd25lcikuJG9uKCdob29rOmRlc3Ryb3llZCcsIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlbW92ZShvd25lcnMsIG93bmVyKTsgfSk7XG5cbiAgICB2YXIgZm9yY2VSZW5kZXIgPSBmdW5jdGlvbiAocmVuZGVyQ29tcGxldGVkKSB7XG4gICAgICBmb3IgKHZhciBpID0gMCwgbCA9IG93bmVycy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgKG93bmVyc1tpXSkuJGZvcmNlVXBkYXRlKCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZW5kZXJDb21wbGV0ZWQpIHtcbiAgICAgICAgb3duZXJzLmxlbmd0aCA9IDA7XG4gICAgICAgIGlmICh0aW1lckxvYWRpbmcgIT09IG51bGwpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXJMb2FkaW5nKTtcbiAgICAgICAgICB0aW1lckxvYWRpbmcgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aW1lclRpbWVvdXQgIT09IG51bGwpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXJUaW1lb3V0KTtcbiAgICAgICAgICB0aW1lclRpbWVvdXQgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIHZhciByZXNvbHZlID0gb25jZShmdW5jdGlvbiAocmVzKSB7XG4gICAgICAvLyBjYWNoZSByZXNvbHZlZFxuICAgICAgZmFjdG9yeS5yZXNvbHZlZCA9IGVuc3VyZUN0b3IocmVzLCBiYXNlQ3Rvcik7XG4gICAgICAvLyBpbnZva2UgY2FsbGJhY2tzIG9ubHkgaWYgdGhpcyBpcyBub3QgYSBzeW5jaHJvbm91cyByZXNvbHZlXG4gICAgICAvLyAoYXN5bmMgcmVzb2x2ZXMgYXJlIHNoaW1tZWQgYXMgc3luY2hyb25vdXMgZHVyaW5nIFNTUilcbiAgICAgIGlmICghc3luYykge1xuICAgICAgICBmb3JjZVJlbmRlcih0cnVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG93bmVycy5sZW5ndGggPSAwO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdmFyIHJlamVjdCA9IG9uY2UoZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuKFxuICAgICAgICBcIkZhaWxlZCB0byByZXNvbHZlIGFzeW5jIGNvbXBvbmVudDogXCIgKyAoU3RyaW5nKGZhY3RvcnkpKSArXG4gICAgICAgIChyZWFzb24gPyAoXCJcXG5SZWFzb246IFwiICsgcmVhc29uKSA6ICcnKVxuICAgICAgKTtcbiAgICAgIGlmIChpc0RlZihmYWN0b3J5LmVycm9yQ29tcCkpIHtcbiAgICAgICAgZmFjdG9yeS5lcnJvciA9IHRydWU7XG4gICAgICAgIGZvcmNlUmVuZGVyKHRydWUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdmFyIHJlcyA9IGZhY3RvcnkocmVzb2x2ZSwgcmVqZWN0KTtcblxuICAgIGlmIChpc09iamVjdChyZXMpKSB7XG4gICAgICBpZiAoaXNQcm9taXNlKHJlcykpIHtcbiAgICAgICAgLy8gKCkgPT4gUHJvbWlzZVxuICAgICAgICBpZiAoaXNVbmRlZihmYWN0b3J5LnJlc29sdmVkKSkge1xuICAgICAgICAgIHJlcy50aGVuKHJlc29sdmUsIHJlamVjdCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNQcm9taXNlKHJlcy5jb21wb25lbnQpKSB7XG4gICAgICAgIHJlcy5jb21wb25lbnQudGhlbihyZXNvbHZlLCByZWplY3QpO1xuXG4gICAgICAgIGlmIChpc0RlZihyZXMuZXJyb3IpKSB7XG4gICAgICAgICAgZmFjdG9yeS5lcnJvckNvbXAgPSBlbnN1cmVDdG9yKHJlcy5lcnJvciwgYmFzZUN0b3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzRGVmKHJlcy5sb2FkaW5nKSkge1xuICAgICAgICAgIGZhY3RvcnkubG9hZGluZ0NvbXAgPSBlbnN1cmVDdG9yKHJlcy5sb2FkaW5nLCBiYXNlQ3Rvcik7XG4gICAgICAgICAgaWYgKHJlcy5kZWxheSA9PT0gMCkge1xuICAgICAgICAgICAgZmFjdG9yeS5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGltZXJMb2FkaW5nID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHRpbWVyTG9hZGluZyA9IG51bGw7XG4gICAgICAgICAgICAgIGlmIChpc1VuZGVmKGZhY3RvcnkucmVzb2x2ZWQpICYmIGlzVW5kZWYoZmFjdG9yeS5lcnJvcikpIHtcbiAgICAgICAgICAgICAgICBmYWN0b3J5LmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGZvcmNlUmVuZGVyKGZhbHNlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgcmVzLmRlbGF5IHx8IDIwMCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzRGVmKHJlcy50aW1lb3V0KSkge1xuICAgICAgICAgIHRpbWVyVGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGltZXJUaW1lb3V0ID0gbnVsbDtcbiAgICAgICAgICAgIGlmIChpc1VuZGVmKGZhY3RvcnkucmVzb2x2ZWQpKSB7XG4gICAgICAgICAgICAgIHJlamVjdChcbiAgICAgICAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nXG4gICAgICAgICAgICAgICAgICA/IChcInRpbWVvdXQgKFwiICsgKHJlcy50aW1lb3V0KSArIFwibXMpXCIpXG4gICAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCByZXMudGltZW91dCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzeW5jID0gZmFsc2U7XG4gICAgLy8gcmV0dXJuIGluIGNhc2UgcmVzb2x2ZWQgc3luY2hyb25vdXNseVxuICAgIHJldHVybiBmYWN0b3J5LmxvYWRpbmdcbiAgICAgID8gZmFjdG9yeS5sb2FkaW5nQ29tcFxuICAgICAgOiBmYWN0b3J5LnJlc29sdmVkXG4gIH1cbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGdldEZpcnN0Q29tcG9uZW50Q2hpbGQgKGNoaWxkcmVuKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBjID0gY2hpbGRyZW5baV07XG4gICAgICBpZiAoaXNEZWYoYykgJiYgKGlzRGVmKGMuY29tcG9uZW50T3B0aW9ucykgfHwgaXNBc3luY1BsYWNlaG9sZGVyKGMpKSkge1xuICAgICAgICByZXR1cm4gY1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKiAgKi9cblxuLyogICovXG5cbmZ1bmN0aW9uIGluaXRFdmVudHMgKHZtKSB7XG4gIHZtLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICB2bS5faGFzSG9va0V2ZW50ID0gZmFsc2U7XG4gIC8vIGluaXQgcGFyZW50IGF0dGFjaGVkIGV2ZW50c1xuICB2YXIgbGlzdGVuZXJzID0gdm0uJG9wdGlvbnMuX3BhcmVudExpc3RlbmVycztcbiAgaWYgKGxpc3RlbmVycykge1xuICAgIHVwZGF0ZUNvbXBvbmVudExpc3RlbmVycyh2bSwgbGlzdGVuZXJzKTtcbiAgfVxufVxuXG52YXIgdGFyZ2V0O1xuXG5mdW5jdGlvbiBhZGQgKGV2ZW50LCBmbikge1xuICB0YXJnZXQuJG9uKGV2ZW50LCBmbik7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZSQxIChldmVudCwgZm4pIHtcbiAgdGFyZ2V0LiRvZmYoZXZlbnQsIGZuKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlT25jZUhhbmRsZXIgKGV2ZW50LCBmbikge1xuICB2YXIgX3RhcmdldCA9IHRhcmdldDtcbiAgcmV0dXJuIGZ1bmN0aW9uIG9uY2VIYW5kbGVyICgpIHtcbiAgICB2YXIgcmVzID0gZm4uYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICBpZiAocmVzICE9PSBudWxsKSB7XG4gICAgICBfdGFyZ2V0LiRvZmYoZXZlbnQsIG9uY2VIYW5kbGVyKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdXBkYXRlQ29tcG9uZW50TGlzdGVuZXJzIChcbiAgdm0sXG4gIGxpc3RlbmVycyxcbiAgb2xkTGlzdGVuZXJzXG4pIHtcbiAgdGFyZ2V0ID0gdm07XG4gIHVwZGF0ZUxpc3RlbmVycyhsaXN0ZW5lcnMsIG9sZExpc3RlbmVycyB8fCB7fSwgYWRkLCByZW1vdmUkMSwgY3JlYXRlT25jZUhhbmRsZXIsIHZtKTtcbiAgdGFyZ2V0ID0gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBldmVudHNNaXhpbiAoVnVlKSB7XG4gIHZhciBob29rUkUgPSAvXmhvb2s6LztcbiAgVnVlLnByb3RvdHlwZS4kb24gPSBmdW5jdGlvbiAoZXZlbnQsIGZuKSB7XG4gICAgdmFyIHZtID0gdGhpcztcbiAgICBpZiAoQXJyYXkuaXNBcnJheShldmVudCkpIHtcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gZXZlbnQubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIHZtLiRvbihldmVudFtpXSwgZm4pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAodm0uX2V2ZW50c1tldmVudF0gfHwgKHZtLl9ldmVudHNbZXZlbnRdID0gW10pKS5wdXNoKGZuKTtcbiAgICAgIC8vIG9wdGltaXplIGhvb2s6ZXZlbnQgY29zdCBieSB1c2luZyBhIGJvb2xlYW4gZmxhZyBtYXJrZWQgYXQgcmVnaXN0cmF0aW9uXG4gICAgICAvLyBpbnN0ZWFkIG9mIGEgaGFzaCBsb29rdXBcbiAgICAgIGlmIChob29rUkUudGVzdChldmVudCkpIHtcbiAgICAgICAgdm0uX2hhc0hvb2tFdmVudCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2bVxuICB9O1xuXG4gIFZ1ZS5wcm90b3R5cGUuJG9uY2UgPSBmdW5jdGlvbiAoZXZlbnQsIGZuKSB7XG4gICAgdmFyIHZtID0gdGhpcztcbiAgICBmdW5jdGlvbiBvbiAoKSB7XG4gICAgICB2bS4kb2ZmKGV2ZW50LCBvbik7XG4gICAgICBmbi5hcHBseSh2bSwgYXJndW1lbnRzKTtcbiAgICB9XG4gICAgb24uZm4gPSBmbjtcbiAgICB2bS4kb24oZXZlbnQsIG9uKTtcbiAgICByZXR1cm4gdm1cbiAgfTtcblxuICBWdWUucHJvdG90eXBlLiRvZmYgPSBmdW5jdGlvbiAoZXZlbnQsIGZuKSB7XG4gICAgdmFyIHZtID0gdGhpcztcbiAgICAvLyBhbGxcbiAgICBpZiAoIWFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgIHZtLl9ldmVudHMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgcmV0dXJuIHZtXG4gICAgfVxuICAgIC8vIGFycmF5IG9mIGV2ZW50c1xuICAgIGlmIChBcnJheS5pc0FycmF5KGV2ZW50KSkge1xuICAgICAgZm9yICh2YXIgaSQxID0gMCwgbCA9IGV2ZW50Lmxlbmd0aDsgaSQxIDwgbDsgaSQxKyspIHtcbiAgICAgICAgdm0uJG9mZihldmVudFtpJDFdLCBmbik7XG4gICAgICB9XG4gICAgICByZXR1cm4gdm1cbiAgICB9XG4gICAgLy8gc3BlY2lmaWMgZXZlbnRcbiAgICB2YXIgY2JzID0gdm0uX2V2ZW50c1tldmVudF07XG4gICAgaWYgKCFjYnMpIHtcbiAgICAgIHJldHVybiB2bVxuICAgIH1cbiAgICBpZiAoIWZuKSB7XG4gICAgICB2bS5fZXZlbnRzW2V2ZW50XSA9IG51bGw7XG4gICAgICByZXR1cm4gdm1cbiAgICB9XG4gICAgLy8gc3BlY2lmaWMgaGFuZGxlclxuICAgIHZhciBjYjtcbiAgICB2YXIgaSA9IGNicy5sZW5ndGg7XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgY2IgPSBjYnNbaV07XG4gICAgICBpZiAoY2IgPT09IGZuIHx8IGNiLmZuID09PSBmbikge1xuICAgICAgICBjYnMuc3BsaWNlKGksIDEpO1xuICAgICAgICBicmVha1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdm1cbiAgfTtcblxuICBWdWUucHJvdG90eXBlLiRlbWl0ID0gZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgdmFyIHZtID0gdGhpcztcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgdmFyIGxvd2VyQ2FzZUV2ZW50ID0gZXZlbnQudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmIChsb3dlckNhc2VFdmVudCAhPT0gZXZlbnQgJiYgdm0uX2V2ZW50c1tsb3dlckNhc2VFdmVudF0pIHtcbiAgICAgICAgdGlwKFxuICAgICAgICAgIFwiRXZlbnQgXFxcIlwiICsgbG93ZXJDYXNlRXZlbnQgKyBcIlxcXCIgaXMgZW1pdHRlZCBpbiBjb21wb25lbnQgXCIgK1xuICAgICAgICAgIChmb3JtYXRDb21wb25lbnROYW1lKHZtKSkgKyBcIiBidXQgdGhlIGhhbmRsZXIgaXMgcmVnaXN0ZXJlZCBmb3IgXFxcIlwiICsgZXZlbnQgKyBcIlxcXCIuIFwiICtcbiAgICAgICAgICBcIk5vdGUgdGhhdCBIVE1MIGF0dHJpYnV0ZXMgYXJlIGNhc2UtaW5zZW5zaXRpdmUgYW5kIHlvdSBjYW5ub3QgdXNlIFwiICtcbiAgICAgICAgICBcInYtb24gdG8gbGlzdGVuIHRvIGNhbWVsQ2FzZSBldmVudHMgd2hlbiB1c2luZyBpbi1ET00gdGVtcGxhdGVzLiBcIiArXG4gICAgICAgICAgXCJZb3Ugc2hvdWxkIHByb2JhYmx5IHVzZSBcXFwiXCIgKyAoaHlwaGVuYXRlKGV2ZW50KSkgKyBcIlxcXCIgaW5zdGVhZCBvZiBcXFwiXCIgKyBldmVudCArIFwiXFxcIi5cIlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICB2YXIgY2JzID0gdm0uX2V2ZW50c1tldmVudF07XG4gICAgaWYgKGNicykge1xuICAgICAgY2JzID0gY2JzLmxlbmd0aCA+IDEgPyB0b0FycmF5KGNicykgOiBjYnM7XG4gICAgICB2YXIgYXJncyA9IHRvQXJyYXkoYXJndW1lbnRzLCAxKTtcbiAgICAgIHZhciBpbmZvID0gXCJldmVudCBoYW5kbGVyIGZvciBcXFwiXCIgKyBldmVudCArIFwiXFxcIlwiO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSBjYnMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIGludm9rZVdpdGhFcnJvckhhbmRsaW5nKGNic1tpXSwgdm0sIGFyZ3MsIHZtLCBpbmZvKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZtXG4gIH07XG59XG5cbi8qICAqL1xuXG52YXIgYWN0aXZlSW5zdGFuY2UgPSBudWxsO1xudmFyIGlzVXBkYXRpbmdDaGlsZENvbXBvbmVudCA9IGZhbHNlO1xuXG5mdW5jdGlvbiBzZXRBY3RpdmVJbnN0YW5jZSh2bSkge1xuICB2YXIgcHJldkFjdGl2ZUluc3RhbmNlID0gYWN0aXZlSW5zdGFuY2U7XG4gIGFjdGl2ZUluc3RhbmNlID0gdm07XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgYWN0aXZlSW5zdGFuY2UgPSBwcmV2QWN0aXZlSW5zdGFuY2U7XG4gIH1cbn1cblxuZnVuY3Rpb24gaW5pdExpZmVjeWNsZSAodm0pIHtcbiAgdmFyIG9wdGlvbnMgPSB2bS4kb3B0aW9ucztcblxuICAvLyBsb2NhdGUgZmlyc3Qgbm9uLWFic3RyYWN0IHBhcmVudFxuICB2YXIgcGFyZW50ID0gb3B0aW9ucy5wYXJlbnQ7XG4gIGlmIChwYXJlbnQgJiYgIW9wdGlvbnMuYWJzdHJhY3QpIHtcbiAgICB3aGlsZSAocGFyZW50LiRvcHRpb25zLmFic3RyYWN0ICYmIHBhcmVudC4kcGFyZW50KSB7XG4gICAgICBwYXJlbnQgPSBwYXJlbnQuJHBhcmVudDtcbiAgICB9XG4gICAgcGFyZW50LiRjaGlsZHJlbi5wdXNoKHZtKTtcbiAgfVxuXG4gIHZtLiRwYXJlbnQgPSBwYXJlbnQ7XG4gIHZtLiRyb290ID0gcGFyZW50ID8gcGFyZW50LiRyb290IDogdm07XG5cbiAgdm0uJGNoaWxkcmVuID0gW107XG4gIHZtLiRyZWZzID0ge307XG5cbiAgdm0uX3dhdGNoZXIgPSBudWxsO1xuICB2bS5faW5hY3RpdmUgPSBudWxsO1xuICB2bS5fZGlyZWN0SW5hY3RpdmUgPSBmYWxzZTtcbiAgdm0uX2lzTW91bnRlZCA9IGZhbHNlO1xuICB2bS5faXNEZXN0cm95ZWQgPSBmYWxzZTtcbiAgdm0uX2lzQmVpbmdEZXN0cm95ZWQgPSBmYWxzZTtcbn1cblxuZnVuY3Rpb24gbGlmZWN5Y2xlTWl4aW4gKFZ1ZSkge1xuICBWdWUucHJvdG90eXBlLl91cGRhdGUgPSBmdW5jdGlvbiAodm5vZGUsIGh5ZHJhdGluZykge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgdmFyIHByZXZFbCA9IHZtLiRlbDtcbiAgICB2YXIgcHJldlZub2RlID0gdm0uX3Zub2RlO1xuICAgIHZhciByZXN0b3JlQWN0aXZlSW5zdGFuY2UgPSBzZXRBY3RpdmVJbnN0YW5jZSh2bSk7XG4gICAgdm0uX3Zub2RlID0gdm5vZGU7XG4gICAgLy8gVnVlLnByb3RvdHlwZS5fX3BhdGNoX18gaXMgaW5qZWN0ZWQgaW4gZW50cnkgcG9pbnRzXG4gICAgLy8gYmFzZWQgb24gdGhlIHJlbmRlcmluZyBiYWNrZW5kIHVzZWQuXG4gICAgaWYgKCFwcmV2Vm5vZGUpIHtcbiAgICAgIC8vIGluaXRpYWwgcmVuZGVyXG4gICAgICB2bS4kZWwgPSB2bS5fX3BhdGNoX18odm0uJGVsLCB2bm9kZSwgaHlkcmF0aW5nLCBmYWxzZSAvKiByZW1vdmVPbmx5ICovKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gdXBkYXRlc1xuICAgICAgdm0uJGVsID0gdm0uX19wYXRjaF9fKHByZXZWbm9kZSwgdm5vZGUpO1xuICAgIH1cbiAgICByZXN0b3JlQWN0aXZlSW5zdGFuY2UoKTtcbiAgICAvLyB1cGRhdGUgX192dWVfXyByZWZlcmVuY2VcbiAgICBpZiAocHJldkVsKSB7XG4gICAgICBwcmV2RWwuX192dWVfXyA9IG51bGw7XG4gICAgfVxuICAgIGlmICh2bS4kZWwpIHtcbiAgICAgIHZtLiRlbC5fX3Z1ZV9fID0gdm07XG4gICAgfVxuICAgIC8vIGlmIHBhcmVudCBpcyBhbiBIT0MsIHVwZGF0ZSBpdHMgJGVsIGFzIHdlbGxcbiAgICBpZiAodm0uJHZub2RlICYmIHZtLiRwYXJlbnQgJiYgdm0uJHZub2RlID09PSB2bS4kcGFyZW50Ll92bm9kZSkge1xuICAgICAgdm0uJHBhcmVudC4kZWwgPSB2bS4kZWw7XG4gICAgfVxuICAgIC8vIHVwZGF0ZWQgaG9vayBpcyBjYWxsZWQgYnkgdGhlIHNjaGVkdWxlciB0byBlbnN1cmUgdGhhdCBjaGlsZHJlbiBhcmVcbiAgICAvLyB1cGRhdGVkIGluIGEgcGFyZW50J3MgdXBkYXRlZCBob29rLlxuICB9O1xuXG4gIFZ1ZS5wcm90b3R5cGUuJGZvcmNlVXBkYXRlID0gZnVuY3Rpb24gKCkge1xuICAgIHZhciB2bSA9IHRoaXM7XG4gICAgaWYgKHZtLl93YXRjaGVyKSB7XG4gICAgICB2bS5fd2F0Y2hlci51cGRhdGUoKTtcbiAgICB9XG4gIH07XG5cbiAgVnVlLnByb3RvdHlwZS4kZGVzdHJveSA9IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgdm0gPSB0aGlzO1xuICAgIGlmICh2bS5faXNCZWluZ0Rlc3Ryb3llZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNhbGxIb29rKHZtLCAnYmVmb3JlRGVzdHJveScpO1xuICAgIHZtLl9pc0JlaW5nRGVzdHJveWVkID0gdHJ1ZTtcbiAgICAvLyByZW1vdmUgc2VsZiBmcm9tIHBhcmVudFxuICAgIHZhciBwYXJlbnQgPSB2bS4kcGFyZW50O1xuICAgIGlmIChwYXJlbnQgJiYgIXBhcmVudC5faXNCZWluZ0Rlc3Ryb3llZCAmJiAhdm0uJG9wdGlvbnMuYWJzdHJhY3QpIHtcbiAgICAgIHJlbW92ZShwYXJlbnQuJGNoaWxkcmVuLCB2bSk7XG4gICAgfVxuICAgIC8vIHRlYXJkb3duIHdhdGNoZXJzXG4gICAgaWYgKHZtLl93YXRjaGVyKSB7XG4gICAgICB2bS5fd2F0Y2hlci50ZWFyZG93bigpO1xuICAgIH1cbiAgICB2YXIgaSA9IHZtLl93YXRjaGVycy5sZW5ndGg7XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgdm0uX3dhdGNoZXJzW2ldLnRlYXJkb3duKCk7XG4gICAgfVxuICAgIC8vIHJlbW92ZSByZWZlcmVuY2UgZnJvbSBkYXRhIG9iXG4gICAgLy8gZnJvemVuIG9iamVjdCBtYXkgbm90IGhhdmUgb2JzZXJ2ZXIuXG4gICAgaWYgKHZtLl9kYXRhLl9fb2JfXykge1xuICAgICAgdm0uX2RhdGEuX19vYl9fLnZtQ291bnQtLTtcbiAgICB9XG4gICAgLy8gY2FsbCB0aGUgbGFzdCBob29rLi4uXG4gICAgdm0uX2lzRGVzdHJveWVkID0gdHJ1ZTtcbiAgICAvLyBpbnZva2UgZGVzdHJveSBob29rcyBvbiBjdXJyZW50IHJlbmRlcmVkIHRyZWVcbiAgICB2bS5fX3BhdGNoX18odm0uX3Zub2RlLCBudWxsKTtcbiAgICAvLyBmaXJlIGRlc3Ryb3llZCBob29rXG4gICAgY2FsbEhvb2sodm0sICdkZXN0cm95ZWQnKTtcbiAgICAvLyB0dXJuIG9mZiBhbGwgaW5zdGFuY2UgbGlzdGVuZXJzLlxuICAgIHZtLiRvZmYoKTtcbiAgICAvLyByZW1vdmUgX192dWVfXyByZWZlcmVuY2VcbiAgICBpZiAodm0uJGVsKSB7XG4gICAgICB2bS4kZWwuX192dWVfXyA9IG51bGw7XG4gICAgfVxuICAgIC8vIHJlbGVhc2UgY2lyY3VsYXIgcmVmZXJlbmNlICgjNjc1OSlcbiAgICBpZiAodm0uJHZub2RlKSB7XG4gICAgICB2bS4kdm5vZGUucGFyZW50ID0gbnVsbDtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIG1vdW50Q29tcG9uZW50IChcbiAgdm0sXG4gIGVsLFxuICBoeWRyYXRpbmdcbikge1xuICB2bS4kZWwgPSBlbDtcbiAgaWYgKCF2bS4kb3B0aW9ucy5yZW5kZXIpIHtcbiAgICB2bS4kb3B0aW9ucy5yZW5kZXIgPSBjcmVhdGVFbXB0eVZOb2RlO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmICgodm0uJG9wdGlvbnMudGVtcGxhdGUgJiYgdm0uJG9wdGlvbnMudGVtcGxhdGUuY2hhckF0KDApICE9PSAnIycpIHx8XG4gICAgICAgIHZtLiRvcHRpb25zLmVsIHx8IGVsKSB7XG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgJ1lvdSBhcmUgdXNpbmcgdGhlIHJ1bnRpbWUtb25seSBidWlsZCBvZiBWdWUgd2hlcmUgdGhlIHRlbXBsYXRlICcgK1xuICAgICAgICAgICdjb21waWxlciBpcyBub3QgYXZhaWxhYmxlLiBFaXRoZXIgcHJlLWNvbXBpbGUgdGhlIHRlbXBsYXRlcyBpbnRvICcgK1xuICAgICAgICAgICdyZW5kZXIgZnVuY3Rpb25zLCBvciB1c2UgdGhlIGNvbXBpbGVyLWluY2x1ZGVkIGJ1aWxkLicsXG4gICAgICAgICAgdm1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgJ0ZhaWxlZCB0byBtb3VudCBjb21wb25lbnQ6IHRlbXBsYXRlIG9yIHJlbmRlciBmdW5jdGlvbiBub3QgZGVmaW5lZC4nLFxuICAgICAgICAgIHZtXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNhbGxIb29rKHZtLCAnYmVmb3JlTW91bnQnKTtcblxuICB2YXIgdXBkYXRlQ29tcG9uZW50O1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgY29uZmlnLnBlcmZvcm1hbmNlICYmIG1hcmspIHtcbiAgICB1cGRhdGVDb21wb25lbnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgbmFtZSA9IHZtLl9uYW1lO1xuICAgICAgdmFyIGlkID0gdm0uX3VpZDtcbiAgICAgIHZhciBzdGFydFRhZyA9IFwidnVlLXBlcmYtc3RhcnQ6XCIgKyBpZDtcbiAgICAgIHZhciBlbmRUYWcgPSBcInZ1ZS1wZXJmLWVuZDpcIiArIGlkO1xuXG4gICAgICBtYXJrKHN0YXJ0VGFnKTtcbiAgICAgIHZhciB2bm9kZSA9IHZtLl9yZW5kZXIoKTtcbiAgICAgIG1hcmsoZW5kVGFnKTtcbiAgICAgIG1lYXN1cmUoKFwidnVlIFwiICsgbmFtZSArIFwiIHJlbmRlclwiKSwgc3RhcnRUYWcsIGVuZFRhZyk7XG5cbiAgICAgIG1hcmsoc3RhcnRUYWcpO1xuICAgICAgdm0uX3VwZGF0ZSh2bm9kZSwgaHlkcmF0aW5nKTtcbiAgICAgIG1hcmsoZW5kVGFnKTtcbiAgICAgIG1lYXN1cmUoKFwidnVlIFwiICsgbmFtZSArIFwiIHBhdGNoXCIpLCBzdGFydFRhZywgZW5kVGFnKTtcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHVwZGF0ZUNvbXBvbmVudCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZtLl91cGRhdGUodm0uX3JlbmRlcigpLCBoeWRyYXRpbmcpO1xuICAgIH07XG4gIH1cblxuICAvLyB3ZSBzZXQgdGhpcyB0byB2bS5fd2F0Y2hlciBpbnNpZGUgdGhlIHdhdGNoZXIncyBjb25zdHJ1Y3RvclxuICAvLyBzaW5jZSB0aGUgd2F0Y2hlcidzIGluaXRpYWwgcGF0Y2ggbWF5IGNhbGwgJGZvcmNlVXBkYXRlIChlLmcuIGluc2lkZSBjaGlsZFxuICAvLyBjb21wb25lbnQncyBtb3VudGVkIGhvb2spLCB3aGljaCByZWxpZXMgb24gdm0uX3dhdGNoZXIgYmVpbmcgYWxyZWFkeSBkZWZpbmVkXG4gIG5ldyBXYXRjaGVyKHZtLCB1cGRhdGVDb21wb25lbnQsIG5vb3AsIHtcbiAgICBiZWZvcmU6IGZ1bmN0aW9uIGJlZm9yZSAoKSB7XG4gICAgICBpZiAodm0uX2lzTW91bnRlZCAmJiAhdm0uX2lzRGVzdHJveWVkKSB7XG4gICAgICAgIGNhbGxIb29rKHZtLCAnYmVmb3JlVXBkYXRlJyk7XG4gICAgICB9XG4gICAgfVxuICB9LCB0cnVlIC8qIGlzUmVuZGVyV2F0Y2hlciAqLyk7XG4gIGh5ZHJhdGluZyA9IGZhbHNlO1xuXG4gIC8vIG1hbnVhbGx5IG1vdW50ZWQgaW5zdGFuY2UsIGNhbGwgbW91bnRlZCBvbiBzZWxmXG4gIC8vIG1vdW50ZWQgaXMgY2FsbGVkIGZvciByZW5kZXItY3JlYXRlZCBjaGlsZCBjb21wb25lbnRzIGluIGl0cyBpbnNlcnRlZCBob29rXG4gIGlmICh2bS4kdm5vZGUgPT0gbnVsbCkge1xuICAgIHZtLl9pc01vdW50ZWQgPSB0cnVlO1xuICAgIGNhbGxIb29rKHZtLCAnbW91bnRlZCcpO1xuICB9XG4gIHJldHVybiB2bVxufVxuXG5mdW5jdGlvbiB1cGRhdGVDaGlsZENvbXBvbmVudCAoXG4gIHZtLFxuICBwcm9wc0RhdGEsXG4gIGxpc3RlbmVycyxcbiAgcGFyZW50Vm5vZGUsXG4gIHJlbmRlckNoaWxkcmVuXG4pIHtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpc1VwZGF0aW5nQ2hpbGRDb21wb25lbnQgPSB0cnVlO1xuICB9XG5cbiAgLy8gZGV0ZXJtaW5lIHdoZXRoZXIgY29tcG9uZW50IGhhcyBzbG90IGNoaWxkcmVuXG4gIC8vIHdlIG5lZWQgdG8gZG8gdGhpcyBiZWZvcmUgb3ZlcndyaXRpbmcgJG9wdGlvbnMuX3JlbmRlckNoaWxkcmVuLlxuXG4gIC8vIGNoZWNrIGlmIHRoZXJlIGFyZSBkeW5hbWljIHNjb3BlZFNsb3RzIChoYW5kLXdyaXR0ZW4gb3IgY29tcGlsZWQgYnV0IHdpdGhcbiAgLy8gZHluYW1pYyBzbG90IG5hbWVzKS4gU3RhdGljIHNjb3BlZCBzbG90cyBjb21waWxlZCBmcm9tIHRlbXBsYXRlIGhhcyB0aGVcbiAgLy8gXCIkc3RhYmxlXCIgbWFya2VyLlxuICB2YXIgbmV3U2NvcGVkU2xvdHMgPSBwYXJlbnRWbm9kZS5kYXRhLnNjb3BlZFNsb3RzO1xuICB2YXIgb2xkU2NvcGVkU2xvdHMgPSB2bS4kc2NvcGVkU2xvdHM7XG4gIHZhciBoYXNEeW5hbWljU2NvcGVkU2xvdCA9ICEhKFxuICAgIChuZXdTY29wZWRTbG90cyAmJiAhbmV3U2NvcGVkU2xvdHMuJHN0YWJsZSkgfHxcbiAgICAob2xkU2NvcGVkU2xvdHMgIT09IGVtcHR5T2JqZWN0ICYmICFvbGRTY29wZWRTbG90cy4kc3RhYmxlKSB8fFxuICAgIChuZXdTY29wZWRTbG90cyAmJiB2bS4kc2NvcGVkU2xvdHMuJGtleSAhPT0gbmV3U2NvcGVkU2xvdHMuJGtleSkgfHxcbiAgICAoIW5ld1Njb3BlZFNsb3RzICYmIHZtLiRzY29wZWRTbG90cy4ka2V5KVxuICApO1xuXG4gIC8vIEFueSBzdGF0aWMgc2xvdCBjaGlsZHJlbiBmcm9tIHRoZSBwYXJlbnQgbWF5IGhhdmUgY2hhbmdlZCBkdXJpbmcgcGFyZW50J3NcbiAgLy8gdXBkYXRlLiBEeW5hbWljIHNjb3BlZCBzbG90cyBtYXkgYWxzbyBoYXZlIGNoYW5nZWQuIEluIHN1Y2ggY2FzZXMsIGEgZm9yY2VkXG4gIC8vIHVwZGF0ZSBpcyBuZWNlc3NhcnkgdG8gZW5zdXJlIGNvcnJlY3RuZXNzLlxuICB2YXIgbmVlZHNGb3JjZVVwZGF0ZSA9ICEhKFxuICAgIHJlbmRlckNoaWxkcmVuIHx8ICAgICAgICAgICAgICAgLy8gaGFzIG5ldyBzdGF0aWMgc2xvdHNcbiAgICB2bS4kb3B0aW9ucy5fcmVuZGVyQ2hpbGRyZW4gfHwgIC8vIGhhcyBvbGQgc3RhdGljIHNsb3RzXG4gICAgaGFzRHluYW1pY1Njb3BlZFNsb3RcbiAgKTtcblxuICB2bS4kb3B0aW9ucy5fcGFyZW50Vm5vZGUgPSBwYXJlbnRWbm9kZTtcbiAgdm0uJHZub2RlID0gcGFyZW50Vm5vZGU7IC8vIHVwZGF0ZSB2bSdzIHBsYWNlaG9sZGVyIG5vZGUgd2l0aG91dCByZS1yZW5kZXJcblxuICBpZiAodm0uX3Zub2RlKSB7IC8vIHVwZGF0ZSBjaGlsZCB0cmVlJ3MgcGFyZW50XG4gICAgdm0uX3Zub2RlLnBhcmVudCA9IHBhcmVudFZub2RlO1xuICB9XG4gIHZtLiRvcHRpb25zLl9yZW5kZXJDaGlsZHJlbiA9IHJlbmRlckNoaWxkcmVuO1xuXG4gIC8vIHVwZGF0ZSAkYXR0cnMgYW5kICRsaXN0ZW5lcnMgaGFzaFxuICAvLyB0aGVzZSBhcmUgYWxzbyByZWFjdGl2ZSBzbyB0aGV5IG1heSB0cmlnZ2VyIGNoaWxkIHVwZGF0ZSBpZiB0aGUgY2hpbGRcbiAgLy8gdXNlZCB0aGVtIGR1cmluZyByZW5kZXJcbiAgdm0uJGF0dHJzID0gcGFyZW50Vm5vZGUuZGF0YS5hdHRycyB8fCBlbXB0eU9iamVjdDtcbiAgdm0uJGxpc3RlbmVycyA9IGxpc3RlbmVycyB8fCBlbXB0eU9iamVjdDtcblxuICAvLyB1cGRhdGUgcHJvcHNcbiAgaWYgKHByb3BzRGF0YSAmJiB2bS4kb3B0aW9ucy5wcm9wcykge1xuICAgIHRvZ2dsZU9ic2VydmluZyhmYWxzZSk7XG4gICAgdmFyIHByb3BzID0gdm0uX3Byb3BzO1xuICAgIHZhciBwcm9wS2V5cyA9IHZtLiRvcHRpb25zLl9wcm9wS2V5cyB8fCBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BLZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIga2V5ID0gcHJvcEtleXNbaV07XG4gICAgICB2YXIgcHJvcE9wdGlvbnMgPSB2bS4kb3B0aW9ucy5wcm9wczsgLy8gd3RmIGZsb3c/XG4gICAgICBwcm9wc1trZXldID0gdmFsaWRhdGVQcm9wKGtleSwgcHJvcE9wdGlvbnMsIHByb3BzRGF0YSwgdm0pO1xuICAgIH1cbiAgICB0b2dnbGVPYnNlcnZpbmcodHJ1ZSk7XG4gICAgLy8ga2VlcCBhIGNvcHkgb2YgcmF3IHByb3BzRGF0YVxuICAgIHZtLiRvcHRpb25zLnByb3BzRGF0YSA9IHByb3BzRGF0YTtcbiAgfVxuXG4gIC8vIHVwZGF0ZSBsaXN0ZW5lcnNcbiAgbGlzdGVuZXJzID0gbGlzdGVuZXJzIHx8IGVtcHR5T2JqZWN0O1xuICB2YXIgb2xkTGlzdGVuZXJzID0gdm0uJG9wdGlvbnMuX3BhcmVudExpc3RlbmVycztcbiAgdm0uJG9wdGlvbnMuX3BhcmVudExpc3RlbmVycyA9IGxpc3RlbmVycztcbiAgdXBkYXRlQ29tcG9uZW50TGlzdGVuZXJzKHZtLCBsaXN0ZW5lcnMsIG9sZExpc3RlbmVycyk7XG5cbiAgLy8gcmVzb2x2ZSBzbG90cyArIGZvcmNlIHVwZGF0ZSBpZiBoYXMgY2hpbGRyZW5cbiAgaWYgKG5lZWRzRm9yY2VVcGRhdGUpIHtcbiAgICB2bS4kc2xvdHMgPSByZXNvbHZlU2xvdHMocmVuZGVyQ2hpbGRyZW4sIHBhcmVudFZub2RlLmNvbnRleHQpO1xuICAgIHZtLiRmb3JjZVVwZGF0ZSgpO1xuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpc1VwZGF0aW5nQ2hpbGRDb21wb25lbnQgPSBmYWxzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc0luSW5hY3RpdmVUcmVlICh2bSkge1xuICB3aGlsZSAodm0gJiYgKHZtID0gdm0uJHBhcmVudCkpIHtcbiAgICBpZiAodm0uX2luYWN0aXZlKSB7IHJldHVybiB0cnVlIH1cbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuZnVuY3Rpb24gYWN0aXZhdGVDaGlsZENvbXBvbmVudCAodm0sIGRpcmVjdCkge1xuICBpZiAoZGlyZWN0KSB7XG4gICAgdm0uX2RpcmVjdEluYWN0aXZlID0gZmFsc2U7XG4gICAgaWYgKGlzSW5JbmFjdGl2ZVRyZWUodm0pKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gIH0gZWxzZSBpZiAodm0uX2RpcmVjdEluYWN0aXZlKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgaWYgKHZtLl9pbmFjdGl2ZSB8fCB2bS5faW5hY3RpdmUgPT09IG51bGwpIHtcbiAgICB2bS5faW5hY3RpdmUgPSBmYWxzZTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZtLiRjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgYWN0aXZhdGVDaGlsZENvbXBvbmVudCh2bS4kY2hpbGRyZW5baV0pO1xuICAgIH1cbiAgICBjYWxsSG9vayh2bSwgJ2FjdGl2YXRlZCcpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGRlYWN0aXZhdGVDaGlsZENvbXBvbmVudCAodm0sIGRpcmVjdCkge1xuICBpZiAoZGlyZWN0KSB7XG4gICAgdm0uX2RpcmVjdEluYWN0aXZlID0gdHJ1ZTtcbiAgICBpZiAoaXNJbkluYWN0aXZlVHJlZSh2bSkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfVxuICBpZiAoIXZtLl9pbmFjdGl2ZSkge1xuICAgIHZtLl9pbmFjdGl2ZSA9IHRydWU7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB2bS4kY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGRlYWN0aXZhdGVDaGlsZENvbXBvbmVudCh2bS4kY2hpbGRyZW5baV0pO1xuICAgIH1cbiAgICBjYWxsSG9vayh2bSwgJ2RlYWN0aXZhdGVkJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FsbEhvb2sgKHZtLCBob29rKSB7XG4gIC8vICM3NTczIGRpc2FibGUgZGVwIGNvbGxlY3Rpb24gd2hlbiBpbnZva2luZyBsaWZlY3ljbGUgaG9va3NcbiAgcHVzaFRhcmdldCgpO1xuICB2YXIgaGFuZGxlcnMgPSB2bS4kb3B0aW9uc1tob29rXTtcbiAgdmFyIGluZm8gPSBob29rICsgXCIgaG9va1wiO1xuICBpZiAoaGFuZGxlcnMpIHtcbiAgICBmb3IgKHZhciBpID0gMCwgaiA9IGhhbmRsZXJzLmxlbmd0aDsgaSA8IGo7IGkrKykge1xuICAgICAgaW52b2tlV2l0aEVycm9ySGFuZGxpbmcoaGFuZGxlcnNbaV0sIHZtLCBudWxsLCB2bSwgaW5mbyk7XG4gICAgfVxuICB9XG4gIGlmICh2bS5faGFzSG9va0V2ZW50KSB7XG4gICAgdm0uJGVtaXQoJ2hvb2s6JyArIGhvb2spO1xuICB9XG4gIHBvcFRhcmdldCgpO1xufVxuXG4vKiAgKi9cblxudmFyIE1BWF9VUERBVEVfQ09VTlQgPSAxMDA7XG5cbnZhciBxdWV1ZSA9IFtdO1xudmFyIGFjdGl2YXRlZENoaWxkcmVuID0gW107XG52YXIgaGFzID0ge307XG52YXIgY2lyY3VsYXIgPSB7fTtcbnZhciB3YWl0aW5nID0gZmFsc2U7XG52YXIgZmx1c2hpbmcgPSBmYWxzZTtcbnZhciBpbmRleCA9IDA7XG5cbi8qKlxuICogUmVzZXQgdGhlIHNjaGVkdWxlcidzIHN0YXRlLlxuICovXG5mdW5jdGlvbiByZXNldFNjaGVkdWxlclN0YXRlICgpIHtcbiAgaW5kZXggPSBxdWV1ZS5sZW5ndGggPSBhY3RpdmF0ZWRDaGlsZHJlbi5sZW5ndGggPSAwO1xuICBoYXMgPSB7fTtcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBjaXJjdWxhciA9IHt9O1xuICB9XG4gIHdhaXRpbmcgPSBmbHVzaGluZyA9IGZhbHNlO1xufVxuXG4vLyBBc3luYyBlZGdlIGNhc2UgIzY1NjYgcmVxdWlyZXMgc2F2aW5nIHRoZSB0aW1lc3RhbXAgd2hlbiBldmVudCBsaXN0ZW5lcnMgYXJlXG4vLyBhdHRhY2hlZC4gSG93ZXZlciwgY2FsbGluZyBwZXJmb3JtYW5jZS5ub3coKSBoYXMgYSBwZXJmIG92ZXJoZWFkIGVzcGVjaWFsbHlcbi8vIGlmIHRoZSBwYWdlIGhhcyB0aG91c2FuZHMgb2YgZXZlbnQgbGlzdGVuZXJzLiBJbnN0ZWFkLCB3ZSB0YWtlIGEgdGltZXN0YW1wXG4vLyBldmVyeSB0aW1lIHRoZSBzY2hlZHVsZXIgZmx1c2hlcyBhbmQgdXNlIHRoYXQgZm9yIGFsbCBldmVudCBsaXN0ZW5lcnNcbi8vIGF0dGFjaGVkIGR1cmluZyB0aGF0IGZsdXNoLlxudmFyIGN1cnJlbnRGbHVzaFRpbWVzdGFtcCA9IDA7XG5cbi8vIEFzeW5jIGVkZ2UgY2FzZSBmaXggcmVxdWlyZXMgc3RvcmluZyBhbiBldmVudCBsaXN0ZW5lcidzIGF0dGFjaCB0aW1lc3RhbXAuXG52YXIgZ2V0Tm93ID0gRGF0ZS5ub3c7XG5cbi8vIERldGVybWluZSB3aGF0IGV2ZW50IHRpbWVzdGFtcCB0aGUgYnJvd3NlciBpcyB1c2luZy4gQW5ub3lpbmdseSwgdGhlXG4vLyB0aW1lc3RhbXAgY2FuIGVpdGhlciBiZSBoaS1yZXMgKHJlbGF0aXZlIHRvIHBhZ2UgbG9hZCkgb3IgbG93LXJlc1xuLy8gKHJlbGF0aXZlIHRvIFVOSVggZXBvY2gpLCBzbyBpbiBvcmRlciB0byBjb21wYXJlIHRpbWUgd2UgaGF2ZSB0byB1c2UgdGhlXG4vLyBzYW1lIHRpbWVzdGFtcCB0eXBlIHdoZW4gc2F2aW5nIHRoZSBmbHVzaCB0aW1lc3RhbXAuXG4vLyBBbGwgSUUgdmVyc2lvbnMgdXNlIGxvdy1yZXMgZXZlbnQgdGltZXN0YW1wcywgYW5kIGhhdmUgcHJvYmxlbWF0aWMgY2xvY2tcbi8vIGltcGxlbWVudGF0aW9ucyAoIzk2MzIpXG5pZiAoaW5Ccm93c2VyICYmICFpc0lFKSB7XG4gIHZhciBwZXJmb3JtYW5jZSA9IHdpbmRvdy5wZXJmb3JtYW5jZTtcbiAgaWYgKFxuICAgIHBlcmZvcm1hbmNlICYmXG4gICAgdHlwZW9mIHBlcmZvcm1hbmNlLm5vdyA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIGdldE5vdygpID4gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0V2ZW50JykudGltZVN0YW1wXG4gICkge1xuICAgIC8vIGlmIHRoZSBldmVudCB0aW1lc3RhbXAsIGFsdGhvdWdoIGV2YWx1YXRlZCBBRlRFUiB0aGUgRGF0ZS5ub3coKSwgaXNcbiAgICAvLyBzbWFsbGVyIHRoYW4gaXQsIGl0IG1lYW5zIHRoZSBldmVudCBpcyB1c2luZyBhIGhpLXJlcyB0aW1lc3RhbXAsXG4gICAgLy8gYW5kIHdlIG5lZWQgdG8gdXNlIHRoZSBoaS1yZXMgdmVyc2lvbiBmb3IgZXZlbnQgbGlzdGVuZXIgdGltZXN0YW1wcyBhc1xuICAgIC8vIHdlbGwuXG4gICAgZ2V0Tm93ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gcGVyZm9ybWFuY2Uubm93KCk7IH07XG4gIH1cbn1cblxuLyoqXG4gKiBGbHVzaCBib3RoIHF1ZXVlcyBhbmQgcnVuIHRoZSB3YXRjaGVycy5cbiAqL1xuZnVuY3Rpb24gZmx1c2hTY2hlZHVsZXJRdWV1ZSAoKSB7XG4gIGN1cnJlbnRGbHVzaFRpbWVzdGFtcCA9IGdldE5vdygpO1xuICBmbHVzaGluZyA9IHRydWU7XG4gIHZhciB3YXRjaGVyLCBpZDtcblxuICAvLyBTb3J0IHF1ZXVlIGJlZm9yZSBmbHVzaC5cbiAgLy8gVGhpcyBlbnN1cmVzIHRoYXQ6XG4gIC8vIDEuIENvbXBvbmVudHMgYXJlIHVwZGF0ZWQgZnJvbSBwYXJlbnQgdG8gY2hpbGQuIChiZWNhdXNlIHBhcmVudCBpcyBhbHdheXNcbiAgLy8gICAgY3JlYXRlZCBiZWZvcmUgdGhlIGNoaWxkKVxuICAvLyAyLiBBIGNvbXBvbmVudCdzIHVzZXIgd2F0Y2hlcnMgYXJlIHJ1biBiZWZvcmUgaXRzIHJlbmRlciB3YXRjaGVyIChiZWNhdXNlXG4gIC8vICAgIHVzZXIgd2F0Y2hlcnMgYXJlIGNyZWF0ZWQgYmVmb3JlIHRoZSByZW5kZXIgd2F0Y2hlcilcbiAgLy8gMy4gSWYgYSBjb21wb25lbnQgaXMgZGVzdHJveWVkIGR1cmluZyBhIHBhcmVudCBjb21wb25lbnQncyB3YXRjaGVyIHJ1bixcbiAgLy8gICAgaXRzIHdhdGNoZXJzIGNhbiBiZSBza2lwcGVkLlxuICBxdWV1ZS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhLmlkIC0gYi5pZDsgfSk7XG5cbiAgLy8gZG8gbm90IGNhY2hlIGxlbmd0aCBiZWNhdXNlIG1vcmUgd2F0Y2hlcnMgbWlnaHQgYmUgcHVzaGVkXG4gIC8vIGFzIHdlIHJ1biBleGlzdGluZyB3YXRjaGVyc1xuICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBxdWV1ZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICB3YXRjaGVyID0gcXVldWVbaW5kZXhdO1xuICAgIGlmICh3YXRjaGVyLmJlZm9yZSkge1xuICAgICAgd2F0Y2hlci5iZWZvcmUoKTtcbiAgICB9XG4gICAgaWQgPSB3YXRjaGVyLmlkO1xuICAgIGhhc1tpZF0gPSBudWxsO1xuICAgIHdhdGNoZXIucnVuKCk7XG4gICAgLy8gaW4gZGV2IGJ1aWxkLCBjaGVjayBhbmQgc3RvcCBjaXJjdWxhciB1cGRhdGVzLlxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGhhc1tpZF0gIT0gbnVsbCkge1xuICAgICAgY2lyY3VsYXJbaWRdID0gKGNpcmN1bGFyW2lkXSB8fCAwKSArIDE7XG4gICAgICBpZiAoY2lyY3VsYXJbaWRdID4gTUFYX1VQREFURV9DT1VOVCkge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgICdZb3UgbWF5IGhhdmUgYW4gaW5maW5pdGUgdXBkYXRlIGxvb3AgJyArIChcbiAgICAgICAgICAgIHdhdGNoZXIudXNlclxuICAgICAgICAgICAgICA/IChcImluIHdhdGNoZXIgd2l0aCBleHByZXNzaW9uIFxcXCJcIiArICh3YXRjaGVyLmV4cHJlc3Npb24pICsgXCJcXFwiXCIpXG4gICAgICAgICAgICAgIDogXCJpbiBhIGNvbXBvbmVudCByZW5kZXIgZnVuY3Rpb24uXCJcbiAgICAgICAgICApLFxuICAgICAgICAgIHdhdGNoZXIudm1cbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBrZWVwIGNvcGllcyBvZiBwb3N0IHF1ZXVlcyBiZWZvcmUgcmVzZXR0aW5nIHN0YXRlXG4gIHZhciBhY3RpdmF0ZWRRdWV1ZSA9IGFjdGl2YXRlZENoaWxkcmVuLnNsaWNlKCk7XG4gIHZhciB1cGRhdGVkUXVldWUgPSBxdWV1ZS5zbGljZSgpO1xuXG4gIHJlc2V0U2NoZWR1bGVyU3RhdGUoKTtcblxuICAvLyBjYWxsIGNvbXBvbmVudCB1cGRhdGVkIGFuZCBhY3RpdmF0ZWQgaG9va3NcbiAgY2FsbEFjdGl2YXRlZEhvb2tzKGFjdGl2YXRlZFF1ZXVlKTtcbiAgY2FsbFVwZGF0ZWRIb29rcyh1cGRhdGVkUXVldWUpO1xuXG4gIC8vIGRldnRvb2wgaG9va1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKGRldnRvb2xzICYmIGNvbmZpZy5kZXZ0b29scykge1xuICAgIGRldnRvb2xzLmVtaXQoJ2ZsdXNoJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2FsbFVwZGF0ZWRIb29rcyAocXVldWUpIHtcbiAgdmFyIGkgPSBxdWV1ZS5sZW5ndGg7XG4gIHdoaWxlIChpLS0pIHtcbiAgICB2YXIgd2F0Y2hlciA9IHF1ZXVlW2ldO1xuICAgIHZhciB2bSA9IHdhdGNoZXIudm07XG4gICAgaWYgKHZtLl93YXRjaGVyID09PSB3YXRjaGVyICYmIHZtLl9pc01vdW50ZWQgJiYgIXZtLl9pc0Rlc3Ryb3llZCkge1xuICAgICAgY2FsbEhvb2sodm0sICd1cGRhdGVkJyk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUXVldWUgYSBrZXB0LWFsaXZlIGNvbXBvbmVudCB0aGF0IHdhcyBhY3RpdmF0ZWQgZHVyaW5nIHBhdGNoLlxuICogVGhlIHF1ZXVlIHdpbGwgYmUgcHJvY2Vzc2VkIGFmdGVyIHRoZSBlbnRpcmUgdHJlZSBoYXMgYmVlbiBwYXRjaGVkLlxuICovXG5mdW5jdGlvbiBxdWV1ZUFjdGl2YXRlZENvbXBvbmVudCAodm0pIHtcbiAgLy8gc2V0dGluZyBfaW5hY3RpdmUgdG8gZmFsc2UgaGVyZSBzbyB0aGF0IGEgcmVuZGVyIGZ1bmN0aW9uIGNhblxuICAvLyByZWx5IG9uIGNoZWNraW5nIHdoZXRoZXIgaXQncyBpbiBhbiBpbmFjdGl2ZSB0cmVlIChlLmcuIHJvdXRlci12aWV3KVxuICB2bS5faW5hY3RpdmUgPSBmYWxzZTtcbiAgYWN0aXZhdGVkQ2hpbGRyZW4ucHVzaCh2bSk7XG59XG5cbmZ1bmN0aW9uIGNhbGxBY3RpdmF0ZWRIb29rcyAocXVldWUpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWV1ZS5sZW5ndGg7IGkrKykge1xuICAgIHF1ZXVlW2ldLl9pbmFjdGl2ZSA9IHRydWU7XG4gICAgYWN0aXZhdGVDaGlsZENvbXBvbmVudChxdWV1ZVtpXSwgdHJ1ZSAvKiB0cnVlICovKTtcbiAgfVxufVxuXG4vKipcbiAqIFB1c2ggYSB3YXRjaGVyIGludG8gdGhlIHdhdGNoZXIgcXVldWUuXG4gKiBKb2JzIHdpdGggZHVwbGljYXRlIElEcyB3aWxsIGJlIHNraXBwZWQgdW5sZXNzIGl0J3NcbiAqIHB1c2hlZCB3aGVuIHRoZSBxdWV1ZSBpcyBiZWluZyBmbHVzaGVkLlxuICovXG5mdW5jdGlvbiBxdWV1ZVdhdGNoZXIgKHdhdGNoZXIpIHtcbiAgdmFyIGlkID0gd2F0Y2hlci5pZDtcbiAgaWYgKGhhc1tpZF0gPT0gbnVsbCkge1xuICAgIGhhc1tpZF0gPSB0cnVlO1xuICAgIGlmICghZmx1c2hpbmcpIHtcbiAgICAgIHF1ZXVlLnB1c2god2F0Y2hlcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGlmIGFscmVhZHkgZmx1c2hpbmcsIHNwbGljZSB0aGUgd2F0Y2hlciBiYXNlZCBvbiBpdHMgaWRcbiAgICAgIC8vIGlmIGFscmVhZHkgcGFzdCBpdHMgaWQsIGl0IHdpbGwgYmUgcnVuIG5leHQgaW1tZWRpYXRlbHkuXG4gICAgICB2YXIgaSA9IHF1ZXVlLmxlbmd0aCAtIDE7XG4gICAgICB3aGlsZSAoaSA+IGluZGV4ICYmIHF1ZXVlW2ldLmlkID4gd2F0Y2hlci5pZCkge1xuICAgICAgICBpLS07XG4gICAgICB9XG4gICAgICBxdWV1ZS5zcGxpY2UoaSArIDEsIDAsIHdhdGNoZXIpO1xuICAgIH1cbiAgICAvLyBxdWV1ZSB0aGUgZmx1c2hcbiAgICBpZiAoIXdhaXRpbmcpIHtcbiAgICAgIHdhaXRpbmcgPSB0cnVlO1xuXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiAhY29uZmlnLmFzeW5jKSB7XG4gICAgICAgIGZsdXNoU2NoZWR1bGVyUXVldWUoKTtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBuZXh0VGljayhmbHVzaFNjaGVkdWxlclF1ZXVlKTtcbiAgICB9XG4gIH1cbn1cblxuLyogICovXG5cblxuXG52YXIgdWlkJDIgPSAwO1xuXG4vKipcbiAqIEEgd2F0Y2hlciBwYXJzZXMgYW4gZXhwcmVzc2lvbiwgY29sbGVjdHMgZGVwZW5kZW5jaWVzLFxuICogYW5kIGZpcmVzIGNhbGxiYWNrIHdoZW4gdGhlIGV4cHJlc3Npb24gdmFsdWUgY2hhbmdlcy5cbiAqIFRoaXMgaXMgdXNlZCBmb3IgYm90aCB0aGUgJHdhdGNoKCkgYXBpIGFuZCBkaXJlY3RpdmVzLlxuICovXG52YXIgV2F0Y2hlciA9IGZ1bmN0aW9uIFdhdGNoZXIgKFxuICB2bSxcbiAgZXhwT3JGbixcbiAgY2IsXG4gIG9wdGlvbnMsXG4gIGlzUmVuZGVyV2F0Y2hlclxuKSB7XG4gIHRoaXMudm0gPSB2bTtcbiAgaWYgKGlzUmVuZGVyV2F0Y2hlcikge1xuICAgIHZtLl93YXRjaGVyID0gdGhpcztcbiAgfVxuICB2bS5fd2F0Y2hlcnMucHVzaCh0aGlzKTtcbiAgLy8gb3B0aW9uc1xuICBpZiAob3B0aW9ucykge1xuICAgIHRoaXMuZGVlcCA9ICEhb3B0aW9ucy5kZWVwO1xuICAgIHRoaXMudXNlciA9ICEhb3B0aW9ucy51c2VyO1xuICAgIHRoaXMubGF6eSA9ICEhb3B0aW9ucy5sYXp5O1xuICAgIHRoaXMuc3luYyA9ICEhb3B0aW9ucy5zeW5jO1xuICAgIHRoaXMuYmVmb3JlID0gb3B0aW9ucy5iZWZvcmU7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5kZWVwID0gdGhpcy51c2VyID0gdGhpcy5sYXp5ID0gdGhpcy5zeW5jID0gZmFsc2U7XG4gIH1cbiAgdGhpcy5jYiA9IGNiO1xuICB0aGlzLmlkID0gKyt1aWQkMjsgLy8gdWlkIGZvciBiYXRjaGluZ1xuICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gIHRoaXMuZGlydHkgPSB0aGlzLmxhenk7IC8vIGZvciBsYXp5IHdhdGNoZXJzXG4gIHRoaXMuZGVwcyA9IFtdO1xuICB0aGlzLm5ld0RlcHMgPSBbXTtcbiAgdGhpcy5kZXBJZHMgPSBuZXcgX1NldCgpO1xuICB0aGlzLm5ld0RlcElkcyA9IG5ldyBfU2V0KCk7XG4gIHRoaXMuZXhwcmVzc2lvbiA9IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbidcbiAgICA/IGV4cE9yRm4udG9TdHJpbmcoKVxuICAgIDogJyc7XG4gIC8vIHBhcnNlIGV4cHJlc3Npb24gZm9yIGdldHRlclxuICBpZiAodHlwZW9mIGV4cE9yRm4gPT09ICdmdW5jdGlvbicpIHtcbiAgICB0aGlzLmdldHRlciA9IGV4cE9yRm47XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5nZXR0ZXIgPSBwYXJzZVBhdGgoZXhwT3JGbik7XG4gICAgaWYgKCF0aGlzLmdldHRlcikge1xuICAgICAgdGhpcy5nZXR0ZXIgPSBub29wO1xuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuKFxuICAgICAgICBcIkZhaWxlZCB3YXRjaGluZyBwYXRoOiBcXFwiXCIgKyBleHBPckZuICsgXCJcXFwiIFwiICtcbiAgICAgICAgJ1dhdGNoZXIgb25seSBhY2NlcHRzIHNpbXBsZSBkb3QtZGVsaW1pdGVkIHBhdGhzLiAnICtcbiAgICAgICAgJ0ZvciBmdWxsIGNvbnRyb2wsIHVzZSBhIGZ1bmN0aW9uIGluc3RlYWQuJyxcbiAgICAgICAgdm1cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHRoaXMudmFsdWUgPSB0aGlzLmxhenlcbiAgICA/IHVuZGVmaW5lZFxuICAgIDogdGhpcy5nZXQoKTtcbn07XG5cbi8qKlxuICogRXZhbHVhdGUgdGhlIGdldHRlciwgYW5kIHJlLWNvbGxlY3QgZGVwZW5kZW5jaWVzLlxuICovXG5XYXRjaGVyLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiBnZXQgKCkge1xuICBwdXNoVGFyZ2V0KHRoaXMpO1xuICB2YXIgdmFsdWU7XG4gIHZhciB2bSA9IHRoaXMudm07XG4gIHRyeSB7XG4gICAgdmFsdWUgPSB0aGlzLmdldHRlci5jYWxsKHZtLCB2bSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAodGhpcy51c2VyKSB7XG4gICAgICBoYW5kbGVFcnJvcihlLCB2bSwgKFwiZ2V0dGVyIGZvciB3YXRjaGVyIFxcXCJcIiArICh0aGlzLmV4cHJlc3Npb24pICsgXCJcXFwiXCIpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgZVxuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICAvLyBcInRvdWNoXCIgZXZlcnkgcHJvcGVydHkgc28gdGhleSBhcmUgYWxsIHRyYWNrZWQgYXNcbiAgICAvLyBkZXBlbmRlbmNpZXMgZm9yIGRlZXAgd2F0Y2hpbmdcbiAgICBpZiAodGhpcy5kZWVwKSB7XG4gICAgICB0cmF2ZXJzZSh2YWx1ZSk7XG4gICAgfVxuICAgIHBvcFRhcmdldCgpO1xuICAgIHRoaXMuY2xlYW51cERlcHMoKTtcbiAgfVxuICByZXR1cm4gdmFsdWVcbn07XG5cbi8qKlxuICogQWRkIGEgZGVwZW5kZW5jeSB0byB0aGlzIGRpcmVjdGl2ZS5cbiAqL1xuV2F0Y2hlci5wcm90b3R5cGUuYWRkRGVwID0gZnVuY3Rpb24gYWRkRGVwIChkZXApIHtcbiAgdmFyIGlkID0gZGVwLmlkO1xuICBpZiAoIXRoaXMubmV3RGVwSWRzLmhhcyhpZCkpIHtcbiAgICB0aGlzLm5ld0RlcElkcy5hZGQoaWQpO1xuICAgIHRoaXMubmV3RGVwcy5wdXNoKGRlcCk7XG4gICAgaWYgKCF0aGlzLmRlcElkcy5oYXMoaWQpKSB7XG4gICAgICBkZXAuYWRkU3ViKHRoaXMpO1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBDbGVhbiB1cCBmb3IgZGVwZW5kZW5jeSBjb2xsZWN0aW9uLlxuICovXG5XYXRjaGVyLnByb3RvdHlwZS5jbGVhbnVwRGVwcyA9IGZ1bmN0aW9uIGNsZWFudXBEZXBzICgpIHtcbiAgdmFyIGkgPSB0aGlzLmRlcHMubGVuZ3RoO1xuICB3aGlsZSAoaS0tKSB7XG4gICAgdmFyIGRlcCA9IHRoaXMuZGVwc1tpXTtcbiAgICBpZiAoIXRoaXMubmV3RGVwSWRzLmhhcyhkZXAuaWQpKSB7XG4gICAgICBkZXAucmVtb3ZlU3ViKHRoaXMpO1xuICAgIH1cbiAgfVxuICB2YXIgdG1wID0gdGhpcy5kZXBJZHM7XG4gIHRoaXMuZGVwSWRzID0gdGhpcy5uZXdEZXBJZHM7XG4gIHRoaXMubmV3RGVwSWRzID0gdG1wO1xuICB0aGlzLm5ld0RlcElkcy5jbGVhcigpO1xuICB0bXAgPSB0aGlzLmRlcHM7XG4gIHRoaXMuZGVwcyA9IHRoaXMubmV3RGVwcztcbiAgdGhpcy5uZXdEZXBzID0gdG1wO1xuICB0aGlzLm5ld0RlcHMubGVuZ3RoID0gMDtcbn07XG5cbi8qKlxuICogU3Vic2NyaWJlciBpbnRlcmZhY2UuXG4gKiBXaWxsIGJlIGNhbGxlZCB3aGVuIGEgZGVwZW5kZW5jeSBjaGFuZ2VzLlxuICovXG5XYXRjaGVyLnByb3RvdHlwZS51cGRhdGUgPSBmdW5jdGlvbiB1cGRhdGUgKCkge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICBpZiAodGhpcy5sYXp5KSB7XG4gICAgdGhpcy5kaXJ0eSA9IHRydWU7XG4gIH0gZWxzZSBpZiAodGhpcy5zeW5jKSB7XG4gICAgdGhpcy5ydW4oKTtcbiAgfSBlbHNlIHtcbiAgICBxdWV1ZVdhdGNoZXIodGhpcyk7XG4gIH1cbn07XG5cbi8qKlxuICogU2NoZWR1bGVyIGpvYiBpbnRlcmZhY2UuXG4gKiBXaWxsIGJlIGNhbGxlZCBieSB0aGUgc2NoZWR1bGVyLlxuICovXG5XYXRjaGVyLnByb3RvdHlwZS5ydW4gPSBmdW5jdGlvbiBydW4gKCkge1xuICBpZiAodGhpcy5hY3RpdmUpIHtcbiAgICB2YXIgdmFsdWUgPSB0aGlzLmdldCgpO1xuICAgIGlmIChcbiAgICAgIHZhbHVlICE9PSB0aGlzLnZhbHVlIHx8XG4gICAgICAvLyBEZWVwIHdhdGNoZXJzIGFuZCB3YXRjaGVycyBvbiBPYmplY3QvQXJyYXlzIHNob3VsZCBmaXJlIGV2ZW5cbiAgICAgIC8vIHdoZW4gdGhlIHZhbHVlIGlzIHRoZSBzYW1lLCBiZWNhdXNlIHRoZSB2YWx1ZSBtYXlcbiAgICAgIC8vIGhhdmUgbXV0YXRlZC5cbiAgICAgIGlzT2JqZWN0KHZhbHVlKSB8fFxuICAgICAgdGhpcy5kZWVwXG4gICAgKSB7XG4gICAgICAvLyBzZXQgbmV3IHZhbHVlXG4gICAgICB2YXIgb2xkVmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgaWYgKHRoaXMudXNlcikge1xuICAgICAgICB2YXIgaW5mbyA9IFwiY2FsbGJhY2sgZm9yIHdhdGNoZXIgXFxcIlwiICsgKHRoaXMuZXhwcmVzc2lvbikgKyBcIlxcXCJcIjtcbiAgICAgICAgaW52b2tlV2l0aEVycm9ySGFuZGxpbmcodGhpcy5jYiwgdGhpcy52bSwgW3ZhbHVlLCBvbGRWYWx1ZV0sIHRoaXMudm0sIGluZm8pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jYi5jYWxsKHRoaXMudm0sIHZhbHVlLCBvbGRWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIEV2YWx1YXRlIHRoZSB2YWx1ZSBvZiB0aGUgd2F0Y2hlci5cbiAqIFRoaXMgb25seSBnZXRzIGNhbGxlZCBmb3IgbGF6eSB3YXRjaGVycy5cbiAqL1xuV2F0Y2hlci5wcm90b3R5cGUuZXZhbHVhdGUgPSBmdW5jdGlvbiBldmFsdWF0ZSAoKSB7XG4gIHRoaXMudmFsdWUgPSB0aGlzLmdldCgpO1xuICB0aGlzLmRpcnR5ID0gZmFsc2U7XG59O1xuXG4vKipcbiAqIERlcGVuZCBvbiBhbGwgZGVwcyBjb2xsZWN0ZWQgYnkgdGhpcyB3YXRjaGVyLlxuICovXG5XYXRjaGVyLnByb3RvdHlwZS5kZXBlbmQgPSBmdW5jdGlvbiBkZXBlbmQgKCkge1xuICB2YXIgaSA9IHRoaXMuZGVwcy5sZW5ndGg7XG4gIHdoaWxlIChpLS0pIHtcbiAgICB0aGlzLmRlcHNbaV0uZGVwZW5kKCk7XG4gIH1cbn07XG5cbi8qKlxuICogUmVtb3ZlIHNlbGYgZnJvbSBhbGwgZGVwZW5kZW5jaWVzJyBzdWJzY3JpYmVyIGxpc3QuXG4gKi9cbldhdGNoZXIucHJvdG90eXBlLnRlYXJkb3duID0gZnVuY3Rpb24gdGVhcmRvd24gKCkge1xuICBpZiAodGhpcy5hY3RpdmUpIHtcbiAgICAvLyByZW1vdmUgc2VsZiBmcm9tIHZtJ3Mgd2F0Y2hlciBsaXN0XG4gICAgLy8gdGhpcyBpcyBhIHNvbWV3aGF0IGV4cGVuc2l2ZSBvcGVyYXRpb24gc28gd2Ugc2tpcCBpdFxuICAgIC8vIGlmIHRoZSB2bSBpcyBiZWluZyBkZXN0cm95ZWQuXG4gICAgaWYgKCF0aGlzLnZtLl9pc0JlaW5nRGVzdHJveWVkKSB7XG4gICAgICByZW1vdmUodGhpcy52bS5fd2F0Y2hlcnMsIHRoaXMpO1xuICAgIH1cbiAgICB2YXIgaSA9IHRoaXMuZGVwcy5sZW5ndGg7XG4gICAgd2hpbGUgKGktLSkge1xuICAgICAgdGhpcy5kZXBzW2ldLnJlbW92ZVN1Yih0aGlzKTtcbiAgICB9XG4gICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgfVxufTtcblxuLyogICovXG5cbnZhciBzaGFyZWRQcm9wZXJ0eURlZmluaXRpb24gPSB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBub29wLFxuICBzZXQ6IG5vb3Bcbn07XG5cbmZ1bmN0aW9uIHByb3h5ICh0YXJnZXQsIHNvdXJjZUtleSwga2V5KSB7XG4gIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbi5nZXQgPSBmdW5jdGlvbiBwcm94eUdldHRlciAoKSB7XG4gICAgcmV0dXJuIHRoaXNbc291cmNlS2V5XVtrZXldXG4gIH07XG4gIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbi5zZXQgPSBmdW5jdGlvbiBwcm94eVNldHRlciAodmFsKSB7XG4gICAgdGhpc1tzb3VyY2VLZXldW2tleV0gPSB2YWw7XG4gIH07XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uKTtcbn1cblxuZnVuY3Rpb24gaW5pdFN0YXRlICh2bSkge1xuICB2bS5fd2F0Y2hlcnMgPSBbXTtcbiAgdmFyIG9wdHMgPSB2bS4kb3B0aW9ucztcbiAgaWYgKG9wdHMucHJvcHMpIHsgaW5pdFByb3BzKHZtLCBvcHRzLnByb3BzKTsgfVxuICBpZiAob3B0cy5tZXRob2RzKSB7IGluaXRNZXRob2RzKHZtLCBvcHRzLm1ldGhvZHMpOyB9XG4gIGlmIChvcHRzLmRhdGEpIHtcbiAgICBpbml0RGF0YSh2bSk7XG4gIH0gZWxzZSB7XG4gICAgb2JzZXJ2ZSh2bS5fZGF0YSA9IHt9LCB0cnVlIC8qIGFzUm9vdERhdGEgKi8pO1xuICB9XG4gIGlmIChvcHRzLmNvbXB1dGVkKSB7IGluaXRDb21wdXRlZCh2bSwgb3B0cy5jb21wdXRlZCk7IH1cbiAgaWYgKG9wdHMud2F0Y2ggJiYgb3B0cy53YXRjaCAhPT0gbmF0aXZlV2F0Y2gpIHtcbiAgICBpbml0V2F0Y2godm0sIG9wdHMud2F0Y2gpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGluaXRQcm9wcyAodm0sIHByb3BzT3B0aW9ucykge1xuICB2YXIgcHJvcHNEYXRhID0gdm0uJG9wdGlvbnMucHJvcHNEYXRhIHx8IHt9O1xuICB2YXIgcHJvcHMgPSB2bS5fcHJvcHMgPSB7fTtcbiAgLy8gY2FjaGUgcHJvcCBrZXlzIHNvIHRoYXQgZnV0dXJlIHByb3BzIHVwZGF0ZXMgY2FuIGl0ZXJhdGUgdXNpbmcgQXJyYXlcbiAgLy8gaW5zdGVhZCBvZiBkeW5hbWljIG9iamVjdCBrZXkgZW51bWVyYXRpb24uXG4gIHZhciBrZXlzID0gdm0uJG9wdGlvbnMuX3Byb3BLZXlzID0gW107XG4gIHZhciBpc1Jvb3QgPSAhdm0uJHBhcmVudDtcbiAgLy8gcm9vdCBpbnN0YW5jZSBwcm9wcyBzaG91bGQgYmUgY29udmVydGVkXG4gIGlmICghaXNSb290KSB7XG4gICAgdG9nZ2xlT2JzZXJ2aW5nKGZhbHNlKTtcbiAgfVxuICB2YXIgbG9vcCA9IGZ1bmN0aW9uICgga2V5ICkge1xuICAgIGtleXMucHVzaChrZXkpO1xuICAgIHZhciB2YWx1ZSA9IHZhbGlkYXRlUHJvcChrZXksIHByb3BzT3B0aW9ucywgcHJvcHNEYXRhLCB2bSk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgdmFyIGh5cGhlbmF0ZWRLZXkgPSBoeXBoZW5hdGUoa2V5KTtcbiAgICAgIGlmIChpc1Jlc2VydmVkQXR0cmlidXRlKGh5cGhlbmF0ZWRLZXkpIHx8XG4gICAgICAgICAgY29uZmlnLmlzUmVzZXJ2ZWRBdHRyKGh5cGhlbmF0ZWRLZXkpKSB7XG4gICAgICAgIHdhcm4oXG4gICAgICAgICAgKFwiXFxcIlwiICsgaHlwaGVuYXRlZEtleSArIFwiXFxcIiBpcyBhIHJlc2VydmVkIGF0dHJpYnV0ZSBhbmQgY2Fubm90IGJlIHVzZWQgYXMgY29tcG9uZW50IHByb3AuXCIpLFxuICAgICAgICAgIHZtXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBkZWZpbmVSZWFjdGl2ZSQkMShwcm9wcywga2V5LCB2YWx1ZSwgZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIWlzUm9vdCAmJiAhaXNVcGRhdGluZ0NoaWxkQ29tcG9uZW50KSB7XG4gICAgICAgICAgd2FybihcbiAgICAgICAgICAgIFwiQXZvaWQgbXV0YXRpbmcgYSBwcm9wIGRpcmVjdGx5IHNpbmNlIHRoZSB2YWx1ZSB3aWxsIGJlIFwiICtcbiAgICAgICAgICAgIFwib3ZlcndyaXR0ZW4gd2hlbmV2ZXIgdGhlIHBhcmVudCBjb21wb25lbnQgcmUtcmVuZGVycy4gXCIgK1xuICAgICAgICAgICAgXCJJbnN0ZWFkLCB1c2UgYSBkYXRhIG9yIGNvbXB1dGVkIHByb3BlcnR5IGJhc2VkIG9uIHRoZSBwcm9wJ3MgXCIgK1xuICAgICAgICAgICAgXCJ2YWx1ZS4gUHJvcCBiZWluZyBtdXRhdGVkOiBcXFwiXCIgKyBrZXkgKyBcIlxcXCJcIixcbiAgICAgICAgICAgIHZtXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlZmluZVJlYWN0aXZlJCQxKHByb3BzLCBrZXksIHZhbHVlKTtcbiAgICB9XG4gICAgLy8gc3RhdGljIHByb3BzIGFyZSBhbHJlYWR5IHByb3hpZWQgb24gdGhlIGNvbXBvbmVudCdzIHByb3RvdHlwZVxuICAgIC8vIGR1cmluZyBWdWUuZXh0ZW5kKCkuIFdlIG9ubHkgbmVlZCB0byBwcm94eSBwcm9wcyBkZWZpbmVkIGF0XG4gICAgLy8gaW5zdGFudGlhdGlvbiBoZXJlLlxuICAgIGlmICghKGtleSBpbiB2bSkpIHtcbiAgICAgIHByb3h5KHZtLCBcIl9wcm9wc1wiLCBrZXkpO1xuICAgIH1cbiAgfTtcblxuICBmb3IgKHZhciBrZXkgaW4gcHJvcHNPcHRpb25zKSBsb29wKCBrZXkgKTtcbiAgdG9nZ2xlT2JzZXJ2aW5nKHRydWUpO1xufVxuXG5mdW5jdGlvbiBpbml0RGF0YSAodm0pIHtcbiAgdmFyIGRhdGEgPSB2bS4kb3B0aW9ucy5kYXRhO1xuICBkYXRhID0gdm0uX2RhdGEgPSB0eXBlb2YgZGF0YSA9PT0gJ2Z1bmN0aW9uJ1xuICAgID8gZ2V0RGF0YShkYXRhLCB2bSlcbiAgICA6IGRhdGEgfHwge307XG4gIGlmICghaXNQbGFpbk9iamVjdChkYXRhKSkge1xuICAgIGRhdGEgPSB7fTtcbiAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAnZGF0YSBmdW5jdGlvbnMgc2hvdWxkIHJldHVybiBhbiBvYmplY3Q6XFxuJyArXG4gICAgICAnaHR0cHM6Ly92dWVqcy5vcmcvdjIvZ3VpZGUvY29tcG9uZW50cy5odG1sI2RhdGEtTXVzdC1CZS1hLUZ1bmN0aW9uJyxcbiAgICAgIHZtXG4gICAgKTtcbiAgfVxuICAvLyBwcm94eSBkYXRhIG9uIGluc3RhbmNlXG4gIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZGF0YSk7XG4gIHZhciBwcm9wcyA9IHZtLiRvcHRpb25zLnByb3BzO1xuICB2YXIgbWV0aG9kcyA9IHZtLiRvcHRpb25zLm1ldGhvZHM7XG4gIHZhciBpID0ga2V5cy5sZW5ndGg7XG4gIHdoaWxlIChpLS0pIHtcbiAgICB2YXIga2V5ID0ga2V5c1tpXTtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKG1ldGhvZHMgJiYgaGFzT3duKG1ldGhvZHMsIGtleSkpIHtcbiAgICAgICAgd2FybihcbiAgICAgICAgICAoXCJNZXRob2QgXFxcIlwiICsga2V5ICsgXCJcXFwiIGhhcyBhbHJlYWR5IGJlZW4gZGVmaW5lZCBhcyBhIGRhdGEgcHJvcGVydHkuXCIpLFxuICAgICAgICAgIHZtXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wcyAmJiBoYXNPd24ocHJvcHMsIGtleSkpIHtcbiAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgd2FybihcbiAgICAgICAgXCJUaGUgZGF0YSBwcm9wZXJ0eSBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgaXMgYWxyZWFkeSBkZWNsYXJlZCBhcyBhIHByb3AuIFwiICtcbiAgICAgICAgXCJVc2UgcHJvcCBkZWZhdWx0IHZhbHVlIGluc3RlYWQuXCIsXG4gICAgICAgIHZtXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoIWlzUmVzZXJ2ZWQoa2V5KSkge1xuICAgICAgcHJveHkodm0sIFwiX2RhdGFcIiwga2V5KTtcbiAgICB9XG4gIH1cbiAgLy8gb2JzZXJ2ZSBkYXRhXG4gIG9ic2VydmUoZGF0YSwgdHJ1ZSAvKiBhc1Jvb3REYXRhICovKTtcbn1cblxuZnVuY3Rpb24gZ2V0RGF0YSAoZGF0YSwgdm0pIHtcbiAgLy8gIzc1NzMgZGlzYWJsZSBkZXAgY29sbGVjdGlvbiB3aGVuIGludm9raW5nIGRhdGEgZ2V0dGVyc1xuICBwdXNoVGFyZ2V0KCk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGRhdGEuY2FsbCh2bSwgdm0pXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBoYW5kbGVFcnJvcihlLCB2bSwgXCJkYXRhKClcIik7XG4gICAgcmV0dXJuIHt9XG4gIH0gZmluYWxseSB7XG4gICAgcG9wVGFyZ2V0KCk7XG4gIH1cbn1cblxudmFyIGNvbXB1dGVkV2F0Y2hlck9wdGlvbnMgPSB7IGxhenk6IHRydWUgfTtcblxuZnVuY3Rpb24gaW5pdENvbXB1dGVkICh2bSwgY29tcHV0ZWQpIHtcbiAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gIHZhciB3YXRjaGVycyA9IHZtLl9jb21wdXRlZFdhdGNoZXJzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgLy8gY29tcHV0ZWQgcHJvcGVydGllcyBhcmUganVzdCBnZXR0ZXJzIGR1cmluZyBTU1JcbiAgdmFyIGlzU1NSID0gaXNTZXJ2ZXJSZW5kZXJpbmcoKTtcblxuICBmb3IgKHZhciBrZXkgaW4gY29tcHV0ZWQpIHtcbiAgICB2YXIgdXNlckRlZiA9IGNvbXB1dGVkW2tleV07XG4gICAgdmFyIGdldHRlciA9IHR5cGVvZiB1c2VyRGVmID09PSAnZnVuY3Rpb24nID8gdXNlckRlZiA6IHVzZXJEZWYuZ2V0O1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGdldHRlciA9PSBudWxsKSB7XG4gICAgICB3YXJuKFxuICAgICAgICAoXCJHZXR0ZXIgaXMgbWlzc2luZyBmb3IgY29tcHV0ZWQgcHJvcGVydHkgXFxcIlwiICsga2V5ICsgXCJcXFwiLlwiKSxcbiAgICAgICAgdm1cbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1NTUikge1xuICAgICAgLy8gY3JlYXRlIGludGVybmFsIHdhdGNoZXIgZm9yIHRoZSBjb21wdXRlZCBwcm9wZXJ0eS5cbiAgICAgIHdhdGNoZXJzW2tleV0gPSBuZXcgV2F0Y2hlcihcbiAgICAgICAgdm0sXG4gICAgICAgIGdldHRlciB8fCBub29wLFxuICAgICAgICBub29wLFxuICAgICAgICBjb21wdXRlZFdhdGNoZXJPcHRpb25zXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIGNvbXBvbmVudC1kZWZpbmVkIGNvbXB1dGVkIHByb3BlcnRpZXMgYXJlIGFscmVhZHkgZGVmaW5lZCBvbiB0aGVcbiAgICAvLyBjb21wb25lbnQgcHJvdG90eXBlLiBXZSBvbmx5IG5lZWQgdG8gZGVmaW5lIGNvbXB1dGVkIHByb3BlcnRpZXMgZGVmaW5lZFxuICAgIC8vIGF0IGluc3RhbnRpYXRpb24gaGVyZS5cbiAgICBpZiAoIShrZXkgaW4gdm0pKSB7XG4gICAgICBkZWZpbmVDb21wdXRlZCh2bSwga2V5LCB1c2VyRGVmKTtcbiAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmIChrZXkgaW4gdm0uJGRhdGEpIHtcbiAgICAgICAgd2FybigoXCJUaGUgY29tcHV0ZWQgcHJvcGVydHkgXFxcIlwiICsga2V5ICsgXCJcXFwiIGlzIGFscmVhZHkgZGVmaW5lZCBpbiBkYXRhLlwiKSwgdm0pO1xuICAgICAgfSBlbHNlIGlmICh2bS4kb3B0aW9ucy5wcm9wcyAmJiBrZXkgaW4gdm0uJG9wdGlvbnMucHJvcHMpIHtcbiAgICAgICAgd2FybigoXCJUaGUgY29tcHV0ZWQgcHJvcGVydHkgXFxcIlwiICsga2V5ICsgXCJcXFwiIGlzIGFscmVhZHkgZGVmaW5lZCBhcyBhIHByb3AuXCIpLCB2bSk7XG4gICAgICB9IGVsc2UgaWYgKHZtLiRvcHRpb25zLm1ldGhvZHMgJiYga2V5IGluIHZtLiRvcHRpb25zLm1ldGhvZHMpIHtcbiAgICAgICAgd2FybigoXCJUaGUgY29tcHV0ZWQgcHJvcGVydHkgXFxcIlwiICsga2V5ICsgXCJcXFwiIGlzIGFscmVhZHkgZGVmaW5lZCBhcyBhIG1ldGhvZC5cIiksIHZtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZGVmaW5lQ29tcHV0ZWQgKFxuICB0YXJnZXQsXG4gIGtleSxcbiAgdXNlckRlZlxuKSB7XG4gIHZhciBzaG91bGRDYWNoZSA9ICFpc1NlcnZlclJlbmRlcmluZygpO1xuICBpZiAodHlwZW9mIHVzZXJEZWYgPT09ICdmdW5jdGlvbicpIHtcbiAgICBzaGFyZWRQcm9wZXJ0eURlZmluaXRpb24uZ2V0ID0gc2hvdWxkQ2FjaGVcbiAgICAgID8gY3JlYXRlQ29tcHV0ZWRHZXR0ZXIoa2V5KVxuICAgICAgOiBjcmVhdGVHZXR0ZXJJbnZva2VyKHVzZXJEZWYpO1xuICAgIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbi5zZXQgPSBub29wO1xuICB9IGVsc2Uge1xuICAgIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbi5nZXQgPSB1c2VyRGVmLmdldFxuICAgICAgPyBzaG91bGRDYWNoZSAmJiB1c2VyRGVmLmNhY2hlICE9PSBmYWxzZVxuICAgICAgICA/IGNyZWF0ZUNvbXB1dGVkR2V0dGVyKGtleSlcbiAgICAgICAgOiBjcmVhdGVHZXR0ZXJJbnZva2VyKHVzZXJEZWYuZ2V0KVxuICAgICAgOiBub29wO1xuICAgIHNoYXJlZFByb3BlcnR5RGVmaW5pdGlvbi5zZXQgPSB1c2VyRGVmLnNldCB8fCBub29wO1xuICB9XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgICBzaGFyZWRQcm9wZXJ0eURlZmluaXRpb24uc2V0ID09PSBub29wKSB7XG4gICAgc2hhcmVkUHJvcGVydHlEZWZpbml0aW9uLnNldCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHdhcm4oXG4gICAgICAgIChcIkNvbXB1dGVkIHByb3BlcnR5IFxcXCJcIiArIGtleSArIFwiXFxcIiB3YXMgYXNzaWduZWQgdG8gYnV0IGl0IGhhcyBubyBzZXR0ZXIuXCIpLFxuICAgICAgICB0aGlzXG4gICAgICApO1xuICAgIH07XG4gIH1cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCBzaGFyZWRQcm9wZXJ0eURlZmluaXRpb24pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDb21wdXRlZEdldHRlciAoa2V5KSB7XG4gIHJldHVybiBmdW5jdGlvbiBjb21wdXRlZEdldHRlciAoKSB7XG4gICAgdmFyIHdhdGNoZXIgPSB0aGlzLl9jb21wdXRlZFdhdGNoZXJzICYmIHRoaXMuX2NvbXB1dGVkV2F0Y2hlcnNba2V5XTtcbiAgICBpZiAod2F0Y2hlcikge1xuICAgICAgaWYgKHdhdGNoZXIuZGlydHkpIHtcbiAgICAgICAgd2F0Y2hlci5ldmFsdWF0ZSgpO1xuICAgICAgfVxuICAgICAgaWYgKERlcC50YXJnZXQpIHtcbiAgICAgICAgd2F0Y2hlci5kZXBlbmQoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB3YXRjaGVyLnZhbHVlXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUdldHRlckludm9rZXIoZm4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNvbXB1dGVkR2V0dGVyICgpIHtcbiAgICByZXR1cm4gZm4uY2FsbCh0aGlzLCB0aGlzKVxuICB9XG59XG5cbmZ1bmN0aW9uIGluaXRNZXRob2RzICh2bSwgbWV0aG9kcykge1xuICB2YXIgcHJvcHMgPSB2bS4kb3B0aW9ucy5wcm9wcztcbiAgZm9yICh2YXIga2V5IGluIG1ldGhvZHMpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKHR5cGVvZiBtZXRob2RzW2tleV0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgd2FybihcbiAgICAgICAgICBcIk1ldGhvZCBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgaGFzIHR5cGUgXFxcIlwiICsgKHR5cGVvZiBtZXRob2RzW2tleV0pICsgXCJcXFwiIGluIHRoZSBjb21wb25lbnQgZGVmaW5pdGlvbi4gXCIgK1xuICAgICAgICAgIFwiRGlkIHlvdSByZWZlcmVuY2UgdGhlIGZ1bmN0aW9uIGNvcnJlY3RseT9cIixcbiAgICAgICAgICB2bVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKHByb3BzICYmIGhhc093bihwcm9wcywga2V5KSkge1xuICAgICAgICB3YXJuKFxuICAgICAgICAgIChcIk1ldGhvZCBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgaGFzIGFscmVhZHkgYmVlbiBkZWZpbmVkIGFzIGEgcHJvcC5cIiksXG4gICAgICAgICAgdm1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICgoa2V5IGluIHZtKSAmJiBpc1Jlc2VydmVkKGtleSkpIHtcbiAgICAgICAgd2FybihcbiAgICAgICAgICBcIk1ldGhvZCBcXFwiXCIgKyBrZXkgKyBcIlxcXCIgY29uZmxpY3RzIHdpdGggYW4gZXhpc3RpbmcgVnVlIGluc3RhbmNlIG1ldGhvZC4gXCIgK1xuICAgICAgICAgIFwiQXZvaWQgZGVmaW5pbmcgY29tcG9uZW50IG1ldGhvZHMgdGhhdCBzdGFydCB3aXRoIF8gb3IgJC5cIlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICB2bVtrZXldID0gdHlwZW9mIG1ldGhvZHNba2V5XSAhPT0gJ2Z1bmN0aW9uJyA/IG5vb3AgOiBiaW5kKG1ldGhvZHNba2V5XSwgdm0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGluaXRXYXRjaCAodm0sIHdhdGNoKSB7XG4gIGZvciAodmFyIGtleSBpbiB3YXRjaCkge1xuICAgIHZhciBoYW5kbGVyID0gd2F0Y2hba2V5XTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShoYW5kbGVyKSkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBoYW5kbGVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNyZWF0ZVdhdGNoZXIodm0sIGtleSwgaGFuZGxlcltpXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNyZWF0ZVdhdGNoZXIodm0sIGtleSwgaGFuZGxlcik7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVdhdGNoZXIgKFxuICB2bSxcbiAgZXhwT3JGbixcbiAgaGFuZGxlcixcbiAgb3B0aW9uc1xuKSB7XG4gIGlmIChpc1BsYWluT2JqZWN0KGhhbmRsZXIpKSB7XG4gICAgb3B0aW9ucyA9IGhhbmRsZXI7XG4gICAgaGFuZGxlciA9IGhhbmRsZXIuaGFuZGxlcjtcbiAgfVxuICBpZiAodHlwZW9mIGhhbmRsZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgaGFuZGxlciA9IHZtW2hhbmRsZXJdO1xuICB9XG4gIHJldHVybiB2bS4kd2F0Y2goZXhwT3JGbiwgaGFuZGxlciwgb3B0aW9ucylcbn1cblxuZnVuY3Rpb24gc3RhdGVNaXhpbiAoVnVlKSB7XG4gIC8vIGZsb3cgc29tZWhvdyBoYXMgcHJvYmxlbXMgd2l0aCBkaXJlY3RseSBkZWNsYXJlZCBkZWZpbml0aW9uIG9iamVjdFxuICAvLyB3aGVuIHVzaW5nIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSwgc28gd2UgaGF2ZSB0byBwcm9jZWR1cmFsbHkgYnVpbGQgdXBcbiAgLy8gdGhlIG9iamVjdCBoZXJlLlxuICB2YXIgZGF0YURlZiA9IHt9O1xuICBkYXRhRGVmLmdldCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX2RhdGEgfTtcbiAgdmFyIHByb3BzRGVmID0ge307XG4gIHByb3BzRGVmLmdldCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuX3Byb3BzIH07XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgZGF0YURlZi5zZXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB3YXJuKFxuICAgICAgICAnQXZvaWQgcmVwbGFjaW5nIGluc3RhbmNlIHJvb3QgJGRhdGEuICcgK1xuICAgICAgICAnVXNlIG5lc3RlZCBkYXRhIHByb3BlcnRpZXMgaW5zdGVhZC4nLFxuICAgICAgICB0aGlzXG4gICAgICApO1xuICAgIH07XG4gICAgcHJvcHNEZWYuc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgd2FybihcIiRwcm9wcyBpcyByZWFkb25seS5cIiwgdGhpcyk7XG4gICAgfTtcbiAgfVxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVnVlLnByb3RvdHlwZSwgJyRkYXRhJywgZGF0YURlZik7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShWdWUucHJvdG90eXBlLCAnJHByb3BzJywgcHJvcHNEZWYpO1xuXG4gIFZ1ZS5wcm90b3R5cGUuJHNldCA9IHNldDtcbiAgVnVlLnByb3RvdHlwZS4kZGVsZXRlID0gZGVsO1xuXG4gIFZ1ZS5wcm90b3R5cGUuJHdhdGNoID0gZnVuY3Rpb24gKFxuICAgIGV4cE9yRm4sXG4gICAgY2IsXG4gICAgb3B0aW9uc1xuICApIHtcbiAgICB2YXIgdm0gPSB0aGlzO1xuICAgIGlmIChpc1BsYWluT2JqZWN0KGNiKSkge1xuICAgICAgcmV0dXJuIGNyZWF0ZVdhdGNoZXIodm0sIGV4cE9yRm4sIGNiLCBvcHRpb25zKVxuICAgIH1cbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICBvcHRpb25zLnVzZXIgPSB0cnVlO1xuICAgIHZhciB3YXRjaGVyID0gbmV3IFdhdGNoZXIodm0sIGV4cE9yRm4sIGNiLCBvcHRpb25zKTtcbiAgICBpZiAob3B0aW9ucy5pbW1lZGlhdGUpIHtcbiAgICAgIHZhciBpbmZvID0gXCJjYWxsYmFjayBmb3IgaW1tZWRpYXRlIHdhdGNoZXIgXFxcIlwiICsgKHdhdGNoZXIuZXhwcmVzc2lvbikgKyBcIlxcXCJcIjtcbiAgICAgIHB1c2hUYXJnZXQoKTtcbiAgICAgIGludm9rZVdpdGhFcnJvckhhbmRsaW5nKGNiLCB2bSwgW3dhdGNoZXIudmFsdWVdLCB2bSwgaW5mbyk7XG4gICAgICBwb3BUYXJnZXQoKTtcbiAgICB9XG4gICAgcmV0dXJuIGZ1bmN0aW9uIHVud2F0Y2hGbiAoKSB7XG4gICAgICB3YXRjaGVyLnRlYXJkb3duKCk7XG4gICAgfVxuICB9O1xufVxuXG4vKiAgKi9cblxudmFyIHVpZCQzID0gMDtcblxuZnVuY3Rpb24gaW5pdE1peGluIChWdWUpIHtcbiAgVnVlLnByb3RvdHlwZS5faW5pdCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgdmFyIHZtID0gdGhpcztcbiAgICAvLyBhIHVpZFxuICAgIHZtLl91aWQgPSB1aWQkMysrO1xuXG4gICAgdmFyIHN0YXJ0VGFnLCBlbmRUYWc7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgY29uZmlnLnBlcmZvcm1hbmNlICYmIG1hcmspIHtcbiAgICAgIHN0YXJ0VGFnID0gXCJ2dWUtcGVyZi1zdGFydDpcIiArICh2bS5fdWlkKTtcbiAgICAgIGVuZFRhZyA9IFwidnVlLXBlcmYtZW5kOlwiICsgKHZtLl91aWQpO1xuICAgICAgbWFyayhzdGFydFRhZyk7XG4gICAgfVxuXG4gICAgLy8gYSBmbGFnIHRvIGF2b2lkIHRoaXMgYmVpbmcgb2JzZXJ2ZWRcbiAgICB2bS5faXNWdWUgPSB0cnVlO1xuICAgIC8vIG1lcmdlIG9wdGlvbnNcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLl9pc0NvbXBvbmVudCkge1xuICAgICAgLy8gb3B0aW1pemUgaW50ZXJuYWwgY29tcG9uZW50IGluc3RhbnRpYXRpb25cbiAgICAgIC8vIHNpbmNlIGR5bmFtaWMgb3B0aW9ucyBtZXJnaW5nIGlzIHByZXR0eSBzbG93LCBhbmQgbm9uZSBvZiB0aGVcbiAgICAgIC8vIGludGVybmFsIGNvbXBvbmVudCBvcHRpb25zIG5lZWRzIHNwZWNpYWwgdHJlYXRtZW50LlxuICAgICAgaW5pdEludGVybmFsQ29tcG9uZW50KHZtLCBvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdm0uJG9wdGlvbnMgPSBtZXJnZU9wdGlvbnMoXG4gICAgICAgIHJlc29sdmVDb25zdHJ1Y3Rvck9wdGlvbnModm0uY29uc3RydWN0b3IpLFxuICAgICAgICBvcHRpb25zIHx8IHt9LFxuICAgICAgICB2bVxuICAgICAgKTtcbiAgICB9XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaW5pdFByb3h5KHZtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdm0uX3JlbmRlclByb3h5ID0gdm07XG4gICAgfVxuICAgIC8vIGV4cG9zZSByZWFsIHNlbGZcbiAgICB2bS5fc2VsZiA9IHZtO1xuICAgIGluaXRMaWZlY3ljbGUodm0pO1xuICAgIGluaXRFdmVudHModm0pO1xuICAgIGluaXRSZW5kZXIodm0pO1xuICAgIGNhbGxIb29rKHZtLCAnYmVmb3JlQ3JlYXRlJyk7XG4gICAgaW5pdEluamVjdGlvbnModm0pOyAvLyByZXNvbHZlIGluamVjdGlvbnMgYmVmb3JlIGRhdGEvcHJvcHNcbiAgICBpbml0U3RhdGUodm0pO1xuICAgIGluaXRQcm92aWRlKHZtKTsgLy8gcmVzb2x2ZSBwcm92aWRlIGFmdGVyIGRhdGEvcHJvcHNcbiAgICBjYWxsSG9vayh2bSwgJ2NyZWF0ZWQnKTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIGNvbmZpZy5wZXJmb3JtYW5jZSAmJiBtYXJrKSB7XG4gICAgICB2bS5fbmFtZSA9IGZvcm1hdENvbXBvbmVudE5hbWUodm0sIGZhbHNlKTtcbiAgICAgIG1hcmsoZW5kVGFnKTtcbiAgICAgIG1lYXN1cmUoKFwidnVlIFwiICsgKHZtLl9uYW1lKSArIFwiIGluaXRcIiksIHN0YXJ0VGFnLCBlbmRUYWcpO1xuICAgIH1cblxuICAgIGlmICh2bS4kb3B0aW9ucy5lbCkge1xuICAgICAgdm0uJG1vdW50KHZtLiRvcHRpb25zLmVsKTtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGluaXRJbnRlcm5hbENvbXBvbmVudCAodm0sIG9wdGlvbnMpIHtcbiAgdmFyIG9wdHMgPSB2bS4kb3B0aW9ucyA9IE9iamVjdC5jcmVhdGUodm0uY29uc3RydWN0b3Iub3B0aW9ucyk7XG4gIC8vIGRvaW5nIHRoaXMgYmVjYXVzZSBpdCdzIGZhc3RlciB0aGFuIGR5bmFtaWMgZW51bWVyYXRpb24uXG4gIHZhciBwYXJlbnRWbm9kZSA9IG9wdGlvbnMuX3BhcmVudFZub2RlO1xuICBvcHRzLnBhcmVudCA9IG9wdGlvbnMucGFyZW50O1xuICBvcHRzLl9wYXJlbnRWbm9kZSA9IHBhcmVudFZub2RlO1xuXG4gIHZhciB2bm9kZUNvbXBvbmVudE9wdGlvbnMgPSBwYXJlbnRWbm9kZS5jb21wb25lbnRPcHRpb25zO1xuICBvcHRzLnByb3BzRGF0YSA9IHZub2RlQ29tcG9uZW50T3B0aW9ucy5wcm9wc0RhdGE7XG4gIG9wdHMuX3BhcmVudExpc3RlbmVycyA9IHZub2RlQ29tcG9uZW50T3B0aW9ucy5saXN0ZW5lcnM7XG4gIG9wdHMuX3JlbmRlckNoaWxkcmVuID0gdm5vZGVDb21wb25lbnRPcHRpb25zLmNoaWxkcmVuO1xuICBvcHRzLl9jb21wb25lbnRUYWcgPSB2bm9kZUNvbXBvbmVudE9wdGlvbnMudGFnO1xuXG4gIGlmIChvcHRpb25zLnJlbmRlcikge1xuICAgIG9wdHMucmVuZGVyID0gb3B0aW9ucy5yZW5kZXI7XG4gICAgb3B0cy5zdGF0aWNSZW5kZXJGbnMgPSBvcHRpb25zLnN0YXRpY1JlbmRlckZucztcbiAgfVxufVxuXG5mdW5jdGlvbiByZXNvbHZlQ29uc3RydWN0b3JPcHRpb25zIChDdG9yKSB7XG4gIHZhciBvcHRpb25zID0gQ3Rvci5vcHRpb25zO1xuICBpZiAoQ3Rvci5zdXBlcikge1xuICAgIHZhciBzdXBlck9wdGlvbnMgPSByZXNvbHZlQ29uc3RydWN0b3JPcHRpb25zKEN0b3Iuc3VwZXIpO1xuICAgIHZhciBjYWNoZWRTdXBlck9wdGlvbnMgPSBDdG9yLnN1cGVyT3B0aW9ucztcbiAgICBpZiAoc3VwZXJPcHRpb25zICE9PSBjYWNoZWRTdXBlck9wdGlvbnMpIHtcbiAgICAgIC8vIHN1cGVyIG9wdGlvbiBjaGFuZ2VkLFxuICAgICAgLy8gbmVlZCB0byByZXNvbHZlIG5ldyBvcHRpb25zLlxuICAgICAgQ3Rvci5zdXBlck9wdGlvbnMgPSBzdXBlck9wdGlvbnM7XG4gICAgICAvLyBjaGVjayBpZiB0aGVyZSBhcmUgYW55IGxhdGUtbW9kaWZpZWQvYXR0YWNoZWQgb3B0aW9ucyAoIzQ5NzYpXG4gICAgICB2YXIgbW9kaWZpZWRPcHRpb25zID0gcmVzb2x2ZU1vZGlmaWVkT3B0aW9ucyhDdG9yKTtcbiAgICAgIC8vIHVwZGF0ZSBiYXNlIGV4dGVuZCBvcHRpb25zXG4gICAgICBpZiAobW9kaWZpZWRPcHRpb25zKSB7XG4gICAgICAgIGV4dGVuZChDdG9yLmV4dGVuZE9wdGlvbnMsIG1vZGlmaWVkT3B0aW9ucyk7XG4gICAgICB9XG4gICAgICBvcHRpb25zID0gQ3Rvci5vcHRpb25zID0gbWVyZ2VPcHRpb25zKHN1cGVyT3B0aW9ucywgQ3Rvci5leHRlbmRPcHRpb25zKTtcbiAgICAgIGlmIChvcHRpb25zLm5hbWUpIHtcbiAgICAgICAgb3B0aW9ucy5jb21wb25lbnRzW29wdGlvbnMubmFtZV0gPSBDdG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gb3B0aW9uc1xufVxuXG5mdW5jdGlvbiByZXNvbHZlTW9kaWZpZWRPcHRpb25zIChDdG9yKSB7XG4gIHZhciBtb2RpZmllZDtcbiAgdmFyIGxhdGVzdCA9IEN0b3Iub3B0aW9ucztcbiAgdmFyIHNlYWxlZCA9IEN0b3Iuc2VhbGVkT3B0aW9ucztcbiAgZm9yICh2YXIga2V5IGluIGxhdGVzdCkge1xuICAgIGlmIChsYXRlc3Rba2V5XSAhPT0gc2VhbGVkW2tleV0pIHtcbiAgICAgIGlmICghbW9kaWZpZWQpIHsgbW9kaWZpZWQgPSB7fTsgfVxuICAgICAgbW9kaWZpZWRba2V5XSA9IGxhdGVzdFtrZXldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbW9kaWZpZWRcbn1cblxuZnVuY3Rpb24gVnVlIChvcHRpb25zKSB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgISh0aGlzIGluc3RhbmNlb2YgVnVlKVxuICApIHtcbiAgICB3YXJuKCdWdWUgaXMgYSBjb25zdHJ1Y3RvciBhbmQgc2hvdWxkIGJlIGNhbGxlZCB3aXRoIHRoZSBgbmV3YCBrZXl3b3JkJyk7XG4gIH1cbiAgdGhpcy5faW5pdChvcHRpb25zKTtcbn1cblxuaW5pdE1peGluKFZ1ZSk7XG5zdGF0ZU1peGluKFZ1ZSk7XG5ldmVudHNNaXhpbihWdWUpO1xubGlmZWN5Y2xlTWl4aW4oVnVlKTtcbnJlbmRlck1peGluKFZ1ZSk7XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpbml0VXNlIChWdWUpIHtcbiAgVnVlLnVzZSA9IGZ1bmN0aW9uIChwbHVnaW4pIHtcbiAgICB2YXIgaW5zdGFsbGVkUGx1Z2lucyA9ICh0aGlzLl9pbnN0YWxsZWRQbHVnaW5zIHx8ICh0aGlzLl9pbnN0YWxsZWRQbHVnaW5zID0gW10pKTtcbiAgICBpZiAoaW5zdGFsbGVkUGx1Z2lucy5pbmRleE9mKHBsdWdpbikgPiAtMSkge1xuICAgICAgcmV0dXJuIHRoaXNcbiAgICB9XG5cbiAgICAvLyBhZGRpdGlvbmFsIHBhcmFtZXRlcnNcbiAgICB2YXIgYXJncyA9IHRvQXJyYXkoYXJndW1lbnRzLCAxKTtcbiAgICBhcmdzLnVuc2hpZnQodGhpcyk7XG4gICAgaWYgKHR5cGVvZiBwbHVnaW4uaW5zdGFsbCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcGx1Z2luLmluc3RhbGwuYXBwbHkocGx1Z2luLCBhcmdzKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBwbHVnaW4gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHBsdWdpbi5hcHBseShudWxsLCBhcmdzKTtcbiAgICB9XG4gICAgaW5zdGFsbGVkUGx1Z2lucy5wdXNoKHBsdWdpbik7XG4gICAgcmV0dXJuIHRoaXNcbiAgfTtcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGluaXRNaXhpbiQxIChWdWUpIHtcbiAgVnVlLm1peGluID0gZnVuY3Rpb24gKG1peGluKSB7XG4gICAgdGhpcy5vcHRpb25zID0gbWVyZ2VPcHRpb25zKHRoaXMub3B0aW9ucywgbWl4aW4pO1xuICAgIHJldHVybiB0aGlzXG4gIH07XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBpbml0RXh0ZW5kIChWdWUpIHtcbiAgLyoqXG4gICAqIEVhY2ggaW5zdGFuY2UgY29uc3RydWN0b3IsIGluY2x1ZGluZyBWdWUsIGhhcyBhIHVuaXF1ZVxuICAgKiBjaWQuIFRoaXMgZW5hYmxlcyB1cyB0byBjcmVhdGUgd3JhcHBlZCBcImNoaWxkXG4gICAqIGNvbnN0cnVjdG9yc1wiIGZvciBwcm90b3R5cGFsIGluaGVyaXRhbmNlIGFuZCBjYWNoZSB0aGVtLlxuICAgKi9cbiAgVnVlLmNpZCA9IDA7XG4gIHZhciBjaWQgPSAxO1xuXG4gIC8qKlxuICAgKiBDbGFzcyBpbmhlcml0YW5jZVxuICAgKi9cbiAgVnVlLmV4dGVuZCA9IGZ1bmN0aW9uIChleHRlbmRPcHRpb25zKSB7XG4gICAgZXh0ZW5kT3B0aW9ucyA9IGV4dGVuZE9wdGlvbnMgfHwge307XG4gICAgdmFyIFN1cGVyID0gdGhpcztcbiAgICB2YXIgU3VwZXJJZCA9IFN1cGVyLmNpZDtcbiAgICB2YXIgY2FjaGVkQ3RvcnMgPSBleHRlbmRPcHRpb25zLl9DdG9yIHx8IChleHRlbmRPcHRpb25zLl9DdG9yID0ge30pO1xuICAgIGlmIChjYWNoZWRDdG9yc1tTdXBlcklkXSkge1xuICAgICAgcmV0dXJuIGNhY2hlZEN0b3JzW1N1cGVySWRdXG4gICAgfVxuXG4gICAgdmFyIG5hbWUgPSBleHRlbmRPcHRpb25zLm5hbWUgfHwgU3VwZXIub3B0aW9ucy5uYW1lO1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIG5hbWUpIHtcbiAgICAgIHZhbGlkYXRlQ29tcG9uZW50TmFtZShuYW1lKTtcbiAgICB9XG5cbiAgICB2YXIgU3ViID0gZnVuY3Rpb24gVnVlQ29tcG9uZW50IChvcHRpb25zKSB7XG4gICAgICB0aGlzLl9pbml0KG9wdGlvbnMpO1xuICAgIH07XG4gICAgU3ViLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoU3VwZXIucHJvdG90eXBlKTtcbiAgICBTdWIucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gU3ViO1xuICAgIFN1Yi5jaWQgPSBjaWQrKztcbiAgICBTdWIub3B0aW9ucyA9IG1lcmdlT3B0aW9ucyhcbiAgICAgIFN1cGVyLm9wdGlvbnMsXG4gICAgICBleHRlbmRPcHRpb25zXG4gICAgKTtcbiAgICBTdWJbJ3N1cGVyJ10gPSBTdXBlcjtcblxuICAgIC8vIEZvciBwcm9wcyBhbmQgY29tcHV0ZWQgcHJvcGVydGllcywgd2UgZGVmaW5lIHRoZSBwcm94eSBnZXR0ZXJzIG9uXG4gICAgLy8gdGhlIFZ1ZSBpbnN0YW5jZXMgYXQgZXh0ZW5zaW9uIHRpbWUsIG9uIHRoZSBleHRlbmRlZCBwcm90b3R5cGUuIFRoaXNcbiAgICAvLyBhdm9pZHMgT2JqZWN0LmRlZmluZVByb3BlcnR5IGNhbGxzIGZvciBlYWNoIGluc3RhbmNlIGNyZWF0ZWQuXG4gICAgaWYgKFN1Yi5vcHRpb25zLnByb3BzKSB7XG4gICAgICBpbml0UHJvcHMkMShTdWIpO1xuICAgIH1cbiAgICBpZiAoU3ViLm9wdGlvbnMuY29tcHV0ZWQpIHtcbiAgICAgIGluaXRDb21wdXRlZCQxKFN1Yik7XG4gICAgfVxuXG4gICAgLy8gYWxsb3cgZnVydGhlciBleHRlbnNpb24vbWl4aW4vcGx1Z2luIHVzYWdlXG4gICAgU3ViLmV4dGVuZCA9IFN1cGVyLmV4dGVuZDtcbiAgICBTdWIubWl4aW4gPSBTdXBlci5taXhpbjtcbiAgICBTdWIudXNlID0gU3VwZXIudXNlO1xuXG4gICAgLy8gY3JlYXRlIGFzc2V0IHJlZ2lzdGVycywgc28gZXh0ZW5kZWQgY2xhc3Nlc1xuICAgIC8vIGNhbiBoYXZlIHRoZWlyIHByaXZhdGUgYXNzZXRzIHRvby5cbiAgICBBU1NFVF9UWVBFUy5mb3JFYWNoKGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgICBTdWJbdHlwZV0gPSBTdXBlclt0eXBlXTtcbiAgICB9KTtcbiAgICAvLyBlbmFibGUgcmVjdXJzaXZlIHNlbGYtbG9va3VwXG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIFN1Yi5vcHRpb25zLmNvbXBvbmVudHNbbmFtZV0gPSBTdWI7XG4gICAgfVxuXG4gICAgLy8ga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgc3VwZXIgb3B0aW9ucyBhdCBleHRlbnNpb24gdGltZS5cbiAgICAvLyBsYXRlciBhdCBpbnN0YW50aWF0aW9uIHdlIGNhbiBjaGVjayBpZiBTdXBlcidzIG9wdGlvbnMgaGF2ZVxuICAgIC8vIGJlZW4gdXBkYXRlZC5cbiAgICBTdWIuc3VwZXJPcHRpb25zID0gU3VwZXIub3B0aW9ucztcbiAgICBTdWIuZXh0ZW5kT3B0aW9ucyA9IGV4dGVuZE9wdGlvbnM7XG4gICAgU3ViLnNlYWxlZE9wdGlvbnMgPSBleHRlbmQoe30sIFN1Yi5vcHRpb25zKTtcblxuICAgIC8vIGNhY2hlIGNvbnN0cnVjdG9yXG4gICAgY2FjaGVkQ3RvcnNbU3VwZXJJZF0gPSBTdWI7XG4gICAgcmV0dXJuIFN1YlxuICB9O1xufVxuXG5mdW5jdGlvbiBpbml0UHJvcHMkMSAoQ29tcCkge1xuICB2YXIgcHJvcHMgPSBDb21wLm9wdGlvbnMucHJvcHM7XG4gIGZvciAodmFyIGtleSBpbiBwcm9wcykge1xuICAgIHByb3h5KENvbXAucHJvdG90eXBlLCBcIl9wcm9wc1wiLCBrZXkpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGluaXRDb21wdXRlZCQxIChDb21wKSB7XG4gIHZhciBjb21wdXRlZCA9IENvbXAub3B0aW9ucy5jb21wdXRlZDtcbiAgZm9yICh2YXIga2V5IGluIGNvbXB1dGVkKSB7XG4gICAgZGVmaW5lQ29tcHV0ZWQoQ29tcC5wcm90b3R5cGUsIGtleSwgY29tcHV0ZWRba2V5XSk7XG4gIH1cbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGluaXRBc3NldFJlZ2lzdGVycyAoVnVlKSB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYXNzZXQgcmVnaXN0cmF0aW9uIG1ldGhvZHMuXG4gICAqL1xuICBBU1NFVF9UWVBFUy5mb3JFYWNoKGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgVnVlW3R5cGVdID0gZnVuY3Rpb24gKFxuICAgICAgaWQsXG4gICAgICBkZWZpbml0aW9uXG4gICAgKSB7XG4gICAgICBpZiAoIWRlZmluaXRpb24pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9uc1t0eXBlICsgJ3MnXVtpZF1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB0eXBlID09PSAnY29tcG9uZW50Jykge1xuICAgICAgICAgIHZhbGlkYXRlQ29tcG9uZW50TmFtZShpZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGUgPT09ICdjb21wb25lbnQnICYmIGlzUGxhaW5PYmplY3QoZGVmaW5pdGlvbikpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLm5hbWUgPSBkZWZpbml0aW9uLm5hbWUgfHwgaWQ7XG4gICAgICAgICAgZGVmaW5pdGlvbiA9IHRoaXMub3B0aW9ucy5fYmFzZS5leHRlbmQoZGVmaW5pdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGUgPT09ICdkaXJlY3RpdmUnICYmIHR5cGVvZiBkZWZpbml0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgZGVmaW5pdGlvbiA9IHsgYmluZDogZGVmaW5pdGlvbiwgdXBkYXRlOiBkZWZpbml0aW9uIH07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vcHRpb25zW3R5cGUgKyAncyddW2lkXSA9IGRlZmluaXRpb247XG4gICAgICAgIHJldHVybiBkZWZpbml0aW9uXG4gICAgICB9XG4gICAgfTtcbiAgfSk7XG59XG5cbi8qICAqL1xuXG5cblxuXG5cbmZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWUgKG9wdHMpIHtcbiAgcmV0dXJuIG9wdHMgJiYgKG9wdHMuQ3Rvci5vcHRpb25zLm5hbWUgfHwgb3B0cy50YWcpXG59XG5cbmZ1bmN0aW9uIG1hdGNoZXMgKHBhdHRlcm4sIG5hbWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkocGF0dGVybikpIHtcbiAgICByZXR1cm4gcGF0dGVybi5pbmRleE9mKG5hbWUpID4gLTFcbiAgfSBlbHNlIGlmICh0eXBlb2YgcGF0dGVybiA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gcGF0dGVybi5zcGxpdCgnLCcpLmluZGV4T2YobmFtZSkgPiAtMVxuICB9IGVsc2UgaWYgKGlzUmVnRXhwKHBhdHRlcm4pKSB7XG4gICAgcmV0dXJuIHBhdHRlcm4udGVzdChuYW1lKVxuICB9XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHJldHVybiBmYWxzZVxufVxuXG5mdW5jdGlvbiBwcnVuZUNhY2hlIChrZWVwQWxpdmVJbnN0YW5jZSwgZmlsdGVyKSB7XG4gIHZhciBjYWNoZSA9IGtlZXBBbGl2ZUluc3RhbmNlLmNhY2hlO1xuICB2YXIga2V5cyA9IGtlZXBBbGl2ZUluc3RhbmNlLmtleXM7XG4gIHZhciBfdm5vZGUgPSBrZWVwQWxpdmVJbnN0YW5jZS5fdm5vZGU7XG4gIGZvciAodmFyIGtleSBpbiBjYWNoZSkge1xuICAgIHZhciBlbnRyeSA9IGNhY2hlW2tleV07XG4gICAgaWYgKGVudHJ5KSB7XG4gICAgICB2YXIgbmFtZSA9IGVudHJ5Lm5hbWU7XG4gICAgICBpZiAobmFtZSAmJiAhZmlsdGVyKG5hbWUpKSB7XG4gICAgICAgIHBydW5lQ2FjaGVFbnRyeShjYWNoZSwga2V5LCBrZXlzLCBfdm5vZGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBwcnVuZUNhY2hlRW50cnkgKFxuICBjYWNoZSxcbiAga2V5LFxuICBrZXlzLFxuICBjdXJyZW50XG4pIHtcbiAgdmFyIGVudHJ5ID0gY2FjaGVba2V5XTtcbiAgaWYgKGVudHJ5ICYmICghY3VycmVudCB8fCBlbnRyeS50YWcgIT09IGN1cnJlbnQudGFnKSkge1xuICAgIGVudHJ5LmNvbXBvbmVudEluc3RhbmNlLiRkZXN0cm95KCk7XG4gIH1cbiAgY2FjaGVba2V5XSA9IG51bGw7XG4gIHJlbW92ZShrZXlzLCBrZXkpO1xufVxuXG52YXIgcGF0dGVyblR5cGVzID0gW1N0cmluZywgUmVnRXhwLCBBcnJheV07XG5cbnZhciBLZWVwQWxpdmUgPSB7XG4gIG5hbWU6ICdrZWVwLWFsaXZlJyxcbiAgYWJzdHJhY3Q6IHRydWUsXG5cbiAgcHJvcHM6IHtcbiAgICBpbmNsdWRlOiBwYXR0ZXJuVHlwZXMsXG4gICAgZXhjbHVkZTogcGF0dGVyblR5cGVzLFxuICAgIG1heDogW1N0cmluZywgTnVtYmVyXVxuICB9LFxuXG4gIG1ldGhvZHM6IHtcbiAgICBjYWNoZVZOb2RlOiBmdW5jdGlvbiBjYWNoZVZOb2RlKCkge1xuICAgICAgdmFyIHJlZiA9IHRoaXM7XG4gICAgICB2YXIgY2FjaGUgPSByZWYuY2FjaGU7XG4gICAgICB2YXIga2V5cyA9IHJlZi5rZXlzO1xuICAgICAgdmFyIHZub2RlVG9DYWNoZSA9IHJlZi52bm9kZVRvQ2FjaGU7XG4gICAgICB2YXIga2V5VG9DYWNoZSA9IHJlZi5rZXlUb0NhY2hlO1xuICAgICAgaWYgKHZub2RlVG9DYWNoZSkge1xuICAgICAgICB2YXIgdGFnID0gdm5vZGVUb0NhY2hlLnRhZztcbiAgICAgICAgdmFyIGNvbXBvbmVudEluc3RhbmNlID0gdm5vZGVUb0NhY2hlLmNvbXBvbmVudEluc3RhbmNlO1xuICAgICAgICB2YXIgY29tcG9uZW50T3B0aW9ucyA9IHZub2RlVG9DYWNoZS5jb21wb25lbnRPcHRpb25zO1xuICAgICAgICBjYWNoZVtrZXlUb0NhY2hlXSA9IHtcbiAgICAgICAgICBuYW1lOiBnZXRDb21wb25lbnROYW1lKGNvbXBvbmVudE9wdGlvbnMpLFxuICAgICAgICAgIHRhZzogdGFnLFxuICAgICAgICAgIGNvbXBvbmVudEluc3RhbmNlOiBjb21wb25lbnRJbnN0YW5jZSxcbiAgICAgICAgfTtcbiAgICAgICAga2V5cy5wdXNoKGtleVRvQ2FjaGUpO1xuICAgICAgICAvLyBwcnVuZSBvbGRlc3QgZW50cnlcbiAgICAgICAgaWYgKHRoaXMubWF4ICYmIGtleXMubGVuZ3RoID4gcGFyc2VJbnQodGhpcy5tYXgpKSB7XG4gICAgICAgICAgcHJ1bmVDYWNoZUVudHJ5KGNhY2hlLCBrZXlzWzBdLCBrZXlzLCB0aGlzLl92bm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52bm9kZVRvQ2FjaGUgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfSxcblxuICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkICgpIHtcbiAgICB0aGlzLmNhY2hlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICB0aGlzLmtleXMgPSBbXTtcbiAgfSxcblxuICBkZXN0cm95ZWQ6IGZ1bmN0aW9uIGRlc3Ryb3llZCAoKSB7XG4gICAgZm9yICh2YXIga2V5IGluIHRoaXMuY2FjaGUpIHtcbiAgICAgIHBydW5lQ2FjaGVFbnRyeSh0aGlzLmNhY2hlLCBrZXksIHRoaXMua2V5cyk7XG4gICAgfVxuICB9LFxuXG4gIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQgKCkge1xuICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG4gICAgdGhpcy5jYWNoZVZOb2RlKCk7XG4gICAgdGhpcy4kd2F0Y2goJ2luY2x1ZGUnLCBmdW5jdGlvbiAodmFsKSB7XG4gICAgICBwcnVuZUNhY2hlKHRoaXMkMSwgZnVuY3Rpb24gKG5hbWUpIHsgcmV0dXJuIG1hdGNoZXModmFsLCBuYW1lKTsgfSk7XG4gICAgfSk7XG4gICAgdGhpcy4kd2F0Y2goJ2V4Y2x1ZGUnLCBmdW5jdGlvbiAodmFsKSB7XG4gICAgICBwcnVuZUNhY2hlKHRoaXMkMSwgZnVuY3Rpb24gKG5hbWUpIHsgcmV0dXJuICFtYXRjaGVzKHZhbCwgbmFtZSk7IH0pO1xuICAgIH0pO1xuICB9LFxuXG4gIHVwZGF0ZWQ6IGZ1bmN0aW9uIHVwZGF0ZWQgKCkge1xuICAgIHRoaXMuY2FjaGVWTm9kZSgpO1xuICB9LFxuXG4gIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyICgpIHtcbiAgICB2YXIgc2xvdCA9IHRoaXMuJHNsb3RzLmRlZmF1bHQ7XG4gICAgdmFyIHZub2RlID0gZ2V0Rmlyc3RDb21wb25lbnRDaGlsZChzbG90KTtcbiAgICB2YXIgY29tcG9uZW50T3B0aW9ucyA9IHZub2RlICYmIHZub2RlLmNvbXBvbmVudE9wdGlvbnM7XG4gICAgaWYgKGNvbXBvbmVudE9wdGlvbnMpIHtcbiAgICAgIC8vIGNoZWNrIHBhdHRlcm5cbiAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZShjb21wb25lbnRPcHRpb25zKTtcbiAgICAgIHZhciByZWYgPSB0aGlzO1xuICAgICAgdmFyIGluY2x1ZGUgPSByZWYuaW5jbHVkZTtcbiAgICAgIHZhciBleGNsdWRlID0gcmVmLmV4Y2x1ZGU7XG4gICAgICBpZiAoXG4gICAgICAgIC8vIG5vdCBpbmNsdWRlZFxuICAgICAgICAoaW5jbHVkZSAmJiAoIW5hbWUgfHwgIW1hdGNoZXMoaW5jbHVkZSwgbmFtZSkpKSB8fFxuICAgICAgICAvLyBleGNsdWRlZFxuICAgICAgICAoZXhjbHVkZSAmJiBuYW1lICYmIG1hdGNoZXMoZXhjbHVkZSwgbmFtZSkpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHZub2RlXG4gICAgICB9XG5cbiAgICAgIHZhciByZWYkMSA9IHRoaXM7XG4gICAgICB2YXIgY2FjaGUgPSByZWYkMS5jYWNoZTtcbiAgICAgIHZhciBrZXlzID0gcmVmJDEua2V5cztcbiAgICAgIHZhciBrZXkgPSB2bm9kZS5rZXkgPT0gbnVsbFxuICAgICAgICAvLyBzYW1lIGNvbnN0cnVjdG9yIG1heSBnZXQgcmVnaXN0ZXJlZCBhcyBkaWZmZXJlbnQgbG9jYWwgY29tcG9uZW50c1xuICAgICAgICAvLyBzbyBjaWQgYWxvbmUgaXMgbm90IGVub3VnaCAoIzMyNjkpXG4gICAgICAgID8gY29tcG9uZW50T3B0aW9ucy5DdG9yLmNpZCArIChjb21wb25lbnRPcHRpb25zLnRhZyA/IChcIjo6XCIgKyAoY29tcG9uZW50T3B0aW9ucy50YWcpKSA6ICcnKVxuICAgICAgICA6IHZub2RlLmtleTtcbiAgICAgIGlmIChjYWNoZVtrZXldKSB7XG4gICAgICAgIHZub2RlLmNvbXBvbmVudEluc3RhbmNlID0gY2FjaGVba2V5XS5jb21wb25lbnRJbnN0YW5jZTtcbiAgICAgICAgLy8gbWFrZSBjdXJyZW50IGtleSBmcmVzaGVzdFxuICAgICAgICByZW1vdmUoa2V5cywga2V5KTtcbiAgICAgICAga2V5cy5wdXNoKGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBkZWxheSBzZXR0aW5nIHRoZSBjYWNoZSB1bnRpbCB1cGRhdGVcbiAgICAgICAgdGhpcy52bm9kZVRvQ2FjaGUgPSB2bm9kZTtcbiAgICAgICAgdGhpcy5rZXlUb0NhY2hlID0ga2V5O1xuICAgICAgfVxuXG4gICAgICB2bm9kZS5kYXRhLmtlZXBBbGl2ZSA9IHRydWU7XG4gICAgfVxuICAgIHJldHVybiB2bm9kZSB8fCAoc2xvdCAmJiBzbG90WzBdKVxuICB9XG59O1xuXG52YXIgYnVpbHRJbkNvbXBvbmVudHMgPSB7XG4gIEtlZXBBbGl2ZTogS2VlcEFsaXZlXG59O1xuXG4vKiAgKi9cblxuZnVuY3Rpb24gaW5pdEdsb2JhbEFQSSAoVnVlKSB7XG4gIC8vIGNvbmZpZ1xuICB2YXIgY29uZmlnRGVmID0ge307XG4gIGNvbmZpZ0RlZi5nZXQgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBjb25maWc7IH07XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgY29uZmlnRGVmLnNldCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHdhcm4oXG4gICAgICAgICdEbyBub3QgcmVwbGFjZSB0aGUgVnVlLmNvbmZpZyBvYmplY3QsIHNldCBpbmRpdmlkdWFsIGZpZWxkcyBpbnN0ZWFkLidcbiAgICAgICk7XG4gICAgfTtcbiAgfVxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVnVlLCAnY29uZmlnJywgY29uZmlnRGVmKTtcblxuICAvLyBleHBvc2VkIHV0aWwgbWV0aG9kcy5cbiAgLy8gTk9URTogdGhlc2UgYXJlIG5vdCBjb25zaWRlcmVkIHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkgLSBhdm9pZCByZWx5aW5nIG9uXG4gIC8vIHRoZW0gdW5sZXNzIHlvdSBhcmUgYXdhcmUgb2YgdGhlIHJpc2suXG4gIFZ1ZS51dGlsID0ge1xuICAgIHdhcm46IHdhcm4sXG4gICAgZXh0ZW5kOiBleHRlbmQsXG4gICAgbWVyZ2VPcHRpb25zOiBtZXJnZU9wdGlvbnMsXG4gICAgZGVmaW5lUmVhY3RpdmU6IGRlZmluZVJlYWN0aXZlJCQxXG4gIH07XG5cbiAgVnVlLnNldCA9IHNldDtcbiAgVnVlLmRlbGV0ZSA9IGRlbDtcbiAgVnVlLm5leHRUaWNrID0gbmV4dFRpY2s7XG5cbiAgLy8gMi42IGV4cGxpY2l0IG9ic2VydmFibGUgQVBJXG4gIFZ1ZS5vYnNlcnZhYmxlID0gZnVuY3Rpb24gKG9iaikge1xuICAgIG9ic2VydmUob2JqKTtcbiAgICByZXR1cm4gb2JqXG4gIH07XG5cbiAgVnVlLm9wdGlvbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBBU1NFVF9UWVBFUy5mb3JFYWNoKGZ1bmN0aW9uICh0eXBlKSB7XG4gICAgVnVlLm9wdGlvbnNbdHlwZSArICdzJ10gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICB9KTtcblxuICAvLyB0aGlzIGlzIHVzZWQgdG8gaWRlbnRpZnkgdGhlIFwiYmFzZVwiIGNvbnN0cnVjdG9yIHRvIGV4dGVuZCBhbGwgcGxhaW4tb2JqZWN0XG4gIC8vIGNvbXBvbmVudHMgd2l0aCBpbiBXZWV4J3MgbXVsdGktaW5zdGFuY2Ugc2NlbmFyaW9zLlxuICBWdWUub3B0aW9ucy5fYmFzZSA9IFZ1ZTtcblxuICBleHRlbmQoVnVlLm9wdGlvbnMuY29tcG9uZW50cywgYnVpbHRJbkNvbXBvbmVudHMpO1xuXG4gIGluaXRVc2UoVnVlKTtcbiAgaW5pdE1peGluJDEoVnVlKTtcbiAgaW5pdEV4dGVuZChWdWUpO1xuICBpbml0QXNzZXRSZWdpc3RlcnMoVnVlKTtcbn1cblxuaW5pdEdsb2JhbEFQSShWdWUpO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoVnVlLnByb3RvdHlwZSwgJyRpc1NlcnZlcicsIHtcbiAgZ2V0OiBpc1NlcnZlclJlbmRlcmluZ1xufSk7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShWdWUucHJvdG90eXBlLCAnJHNzckNvbnRleHQnLCB7XG4gIGdldDogZnVuY3Rpb24gZ2V0ICgpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiB0aGlzLiR2bm9kZSAmJiB0aGlzLiR2bm9kZS5zc3JDb250ZXh0XG4gIH1cbn0pO1xuXG4vLyBleHBvc2UgRnVuY3Rpb25hbFJlbmRlckNvbnRleHQgZm9yIHNzciBydW50aW1lIGhlbHBlciBpbnN0YWxsYXRpb25cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShWdWUsICdGdW5jdGlvbmFsUmVuZGVyQ29udGV4dCcsIHtcbiAgdmFsdWU6IEZ1bmN0aW9uYWxSZW5kZXJDb250ZXh0XG59KTtcblxuVnVlLnZlcnNpb24gPSAnMi42LjE0JztcblxuLyogICovXG5cbi8vIHRoZXNlIGFyZSByZXNlcnZlZCBmb3Igd2ViIGJlY2F1c2UgdGhleSBhcmUgZGlyZWN0bHkgY29tcGlsZWQgYXdheVxuLy8gZHVyaW5nIHRlbXBsYXRlIGNvbXBpbGF0aW9uXG52YXIgaXNSZXNlcnZlZEF0dHIgPSBtYWtlTWFwKCdzdHlsZSxjbGFzcycpO1xuXG4vLyBhdHRyaWJ1dGVzIHRoYXQgc2hvdWxkIGJlIHVzaW5nIHByb3BzIGZvciBiaW5kaW5nXG52YXIgYWNjZXB0VmFsdWUgPSBtYWtlTWFwKCdpbnB1dCx0ZXh0YXJlYSxvcHRpb24sc2VsZWN0LHByb2dyZXNzJyk7XG52YXIgbXVzdFVzZVByb3AgPSBmdW5jdGlvbiAodGFnLCB0eXBlLCBhdHRyKSB7XG4gIHJldHVybiAoXG4gICAgKGF0dHIgPT09ICd2YWx1ZScgJiYgYWNjZXB0VmFsdWUodGFnKSkgJiYgdHlwZSAhPT0gJ2J1dHRvbicgfHxcbiAgICAoYXR0ciA9PT0gJ3NlbGVjdGVkJyAmJiB0YWcgPT09ICdvcHRpb24nKSB8fFxuICAgIChhdHRyID09PSAnY2hlY2tlZCcgJiYgdGFnID09PSAnaW5wdXQnKSB8fFxuICAgIChhdHRyID09PSAnbXV0ZWQnICYmIHRhZyA9PT0gJ3ZpZGVvJylcbiAgKVxufTtcblxudmFyIGlzRW51bWVyYXRlZEF0dHIgPSBtYWtlTWFwKCdjb250ZW50ZWRpdGFibGUsZHJhZ2dhYmxlLHNwZWxsY2hlY2snKTtcblxudmFyIGlzVmFsaWRDb250ZW50RWRpdGFibGVWYWx1ZSA9IG1ha2VNYXAoJ2V2ZW50cyxjYXJldCx0eXBpbmcscGxhaW50ZXh0LW9ubHknKTtcblxudmFyIGNvbnZlcnRFbnVtZXJhdGVkVmFsdWUgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICByZXR1cm4gaXNGYWxzeUF0dHJWYWx1ZSh2YWx1ZSkgfHwgdmFsdWUgPT09ICdmYWxzZSdcbiAgICA/ICdmYWxzZSdcbiAgICAvLyBhbGxvdyBhcmJpdHJhcnkgc3RyaW5nIHZhbHVlIGZvciBjb250ZW50ZWRpdGFibGVcbiAgICA6IGtleSA9PT0gJ2NvbnRlbnRlZGl0YWJsZScgJiYgaXNWYWxpZENvbnRlbnRFZGl0YWJsZVZhbHVlKHZhbHVlKVxuICAgICAgPyB2YWx1ZVxuICAgICAgOiAndHJ1ZSdcbn07XG5cbnZhciBpc0Jvb2xlYW5BdHRyID0gbWFrZU1hcChcbiAgJ2FsbG93ZnVsbHNjcmVlbixhc3luYyxhdXRvZm9jdXMsYXV0b3BsYXksY2hlY2tlZCxjb21wYWN0LGNvbnRyb2xzLGRlY2xhcmUsJyArXG4gICdkZWZhdWx0LGRlZmF1bHRjaGVja2VkLGRlZmF1bHRtdXRlZCxkZWZhdWx0c2VsZWN0ZWQsZGVmZXIsZGlzYWJsZWQsJyArXG4gICdlbmFibGVkLGZvcm1ub3ZhbGlkYXRlLGhpZGRlbixpbmRldGVybWluYXRlLGluZXJ0LGlzbWFwLGl0ZW1zY29wZSxsb29wLG11bHRpcGxlLCcgK1xuICAnbXV0ZWQsbm9ocmVmLG5vcmVzaXplLG5vc2hhZGUsbm92YWxpZGF0ZSxub3dyYXAsb3BlbixwYXVzZW9uZXhpdCxyZWFkb25seSwnICtcbiAgJ3JlcXVpcmVkLHJldmVyc2VkLHNjb3BlZCxzZWFtbGVzcyxzZWxlY3RlZCxzb3J0YWJsZSwnICtcbiAgJ3RydWVzcGVlZCx0eXBlbXVzdG1hdGNoLHZpc2libGUnXG4pO1xuXG52YXIgeGxpbmtOUyA9ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJztcblxudmFyIGlzWGxpbmsgPSBmdW5jdGlvbiAobmFtZSkge1xuICByZXR1cm4gbmFtZS5jaGFyQXQoNSkgPT09ICc6JyAmJiBuYW1lLnNsaWNlKDAsIDUpID09PSAneGxpbmsnXG59O1xuXG52YXIgZ2V0WGxpbmtQcm9wID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgcmV0dXJuIGlzWGxpbmsobmFtZSkgPyBuYW1lLnNsaWNlKDYsIG5hbWUubGVuZ3RoKSA6ICcnXG59O1xuXG52YXIgaXNGYWxzeUF0dHJWYWx1ZSA9IGZ1bmN0aW9uICh2YWwpIHtcbiAgcmV0dXJuIHZhbCA9PSBudWxsIHx8IHZhbCA9PT0gZmFsc2Vcbn07XG5cbi8qICAqL1xuXG5mdW5jdGlvbiBnZW5DbGFzc0ZvclZub2RlICh2bm9kZSkge1xuICB2YXIgZGF0YSA9IHZub2RlLmRhdGE7XG4gIHZhciBwYXJlbnROb2RlID0gdm5vZGU7XG4gIHZhciBjaGlsZE5vZGUgPSB2bm9kZTtcbiAgd2hpbGUgKGlzRGVmKGNoaWxkTm9kZS5jb21wb25lbnRJbnN0YW5jZSkpIHtcbiAgICBjaGlsZE5vZGUgPSBjaGlsZE5vZGUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlO1xuICAgIGlmIChjaGlsZE5vZGUgJiYgY2hpbGROb2RlLmRhdGEpIHtcbiAgICAgIGRhdGEgPSBtZXJnZUNsYXNzRGF0YShjaGlsZE5vZGUuZGF0YSwgZGF0YSk7XG4gICAgfVxuICB9XG4gIHdoaWxlIChpc0RlZihwYXJlbnROb2RlID0gcGFyZW50Tm9kZS5wYXJlbnQpKSB7XG4gICAgaWYgKHBhcmVudE5vZGUgJiYgcGFyZW50Tm9kZS5kYXRhKSB7XG4gICAgICBkYXRhID0gbWVyZ2VDbGFzc0RhdGEoZGF0YSwgcGFyZW50Tm9kZS5kYXRhKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlbmRlckNsYXNzKGRhdGEuc3RhdGljQ2xhc3MsIGRhdGEuY2xhc3MpXG59XG5cbmZ1bmN0aW9uIG1lcmdlQ2xhc3NEYXRhIChjaGlsZCwgcGFyZW50KSB7XG4gIHJldHVybiB7XG4gICAgc3RhdGljQ2xhc3M6IGNvbmNhdChjaGlsZC5zdGF0aWNDbGFzcywgcGFyZW50LnN0YXRpY0NsYXNzKSxcbiAgICBjbGFzczogaXNEZWYoY2hpbGQuY2xhc3MpXG4gICAgICA/IFtjaGlsZC5jbGFzcywgcGFyZW50LmNsYXNzXVxuICAgICAgOiBwYXJlbnQuY2xhc3NcbiAgfVxufVxuXG5mdW5jdGlvbiByZW5kZXJDbGFzcyAoXG4gIHN0YXRpY0NsYXNzLFxuICBkeW5hbWljQ2xhc3Ncbikge1xuICBpZiAoaXNEZWYoc3RhdGljQ2xhc3MpIHx8IGlzRGVmKGR5bmFtaWNDbGFzcykpIHtcbiAgICByZXR1cm4gY29uY2F0KHN0YXRpY0NsYXNzLCBzdHJpbmdpZnlDbGFzcyhkeW5hbWljQ2xhc3MpKVxuICB9XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHJldHVybiAnJ1xufVxuXG5mdW5jdGlvbiBjb25jYXQgKGEsIGIpIHtcbiAgcmV0dXJuIGEgPyBiID8gKGEgKyAnICcgKyBiKSA6IGEgOiAoYiB8fCAnJylcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5Q2xhc3MgKHZhbHVlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiBzdHJpbmdpZnlBcnJheSh2YWx1ZSlcbiAgfVxuICBpZiAoaXNPYmplY3QodmFsdWUpKSB7XG4gICAgcmV0dXJuIHN0cmluZ2lmeU9iamVjdCh2YWx1ZSlcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB2YWx1ZVxuICB9XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHJldHVybiAnJ1xufVxuXG5mdW5jdGlvbiBzdHJpbmdpZnlBcnJheSAodmFsdWUpIHtcbiAgdmFyIHJlcyA9ICcnO1xuICB2YXIgc3RyaW5naWZpZWQ7XG4gIGZvciAodmFyIGkgPSAwLCBsID0gdmFsdWUubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgaWYgKGlzRGVmKHN0cmluZ2lmaWVkID0gc3RyaW5naWZ5Q2xhc3ModmFsdWVbaV0pKSAmJiBzdHJpbmdpZmllZCAhPT0gJycpIHtcbiAgICAgIGlmIChyZXMpIHsgcmVzICs9ICcgJzsgfVxuICAgICAgcmVzICs9IHN0cmluZ2lmaWVkO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeU9iamVjdCAodmFsdWUpIHtcbiAgdmFyIHJlcyA9ICcnO1xuICBmb3IgKHZhciBrZXkgaW4gdmFsdWUpIHtcbiAgICBpZiAodmFsdWVba2V5XSkge1xuICAgICAgaWYgKHJlcykgeyByZXMgKz0gJyAnOyB9XG4gICAgICByZXMgKz0ga2V5O1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzXG59XG5cbi8qICAqL1xuXG52YXIgbmFtZXNwYWNlTWFwID0ge1xuICBzdmc6ICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsXG4gIG1hdGg6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MJ1xufTtcblxudmFyIGlzSFRNTFRhZyA9IG1ha2VNYXAoXG4gICdodG1sLGJvZHksYmFzZSxoZWFkLGxpbmssbWV0YSxzdHlsZSx0aXRsZSwnICtcbiAgJ2FkZHJlc3MsYXJ0aWNsZSxhc2lkZSxmb290ZXIsaGVhZGVyLGgxLGgyLGgzLGg0LGg1LGg2LGhncm91cCxuYXYsc2VjdGlvbiwnICtcbiAgJ2RpdixkZCxkbCxkdCxmaWdjYXB0aW9uLGZpZ3VyZSxwaWN0dXJlLGhyLGltZyxsaSxtYWluLG9sLHAscHJlLHVsLCcgK1xuICAnYSxiLGFiYnIsYmRpLGJkbyxicixjaXRlLGNvZGUsZGF0YSxkZm4sZW0saSxrYmQsbWFyayxxLHJwLHJ0LHJ0YyxydWJ5LCcgK1xuICAncyxzYW1wLHNtYWxsLHNwYW4sc3Ryb25nLHN1YixzdXAsdGltZSx1LHZhcix3YnIsYXJlYSxhdWRpbyxtYXAsdHJhY2ssdmlkZW8sJyArXG4gICdlbWJlZCxvYmplY3QscGFyYW0sc291cmNlLGNhbnZhcyxzY3JpcHQsbm9zY3JpcHQsZGVsLGlucywnICtcbiAgJ2NhcHRpb24sY29sLGNvbGdyb3VwLHRhYmxlLHRoZWFkLHRib2R5LHRkLHRoLHRyLCcgK1xuICAnYnV0dG9uLGRhdGFsaXN0LGZpZWxkc2V0LGZvcm0saW5wdXQsbGFiZWwsbGVnZW5kLG1ldGVyLG9wdGdyb3VwLG9wdGlvbiwnICtcbiAgJ291dHB1dCxwcm9ncmVzcyxzZWxlY3QsdGV4dGFyZWEsJyArXG4gICdkZXRhaWxzLGRpYWxvZyxtZW51LG1lbnVpdGVtLHN1bW1hcnksJyArXG4gICdjb250ZW50LGVsZW1lbnQsc2hhZG93LHRlbXBsYXRlLGJsb2NrcXVvdGUsaWZyYW1lLHRmb290J1xuKTtcblxuLy8gdGhpcyBtYXAgaXMgaW50ZW50aW9uYWxseSBzZWxlY3RpdmUsIG9ubHkgY292ZXJpbmcgU1ZHIGVsZW1lbnRzIHRoYXQgbWF5XG4vLyBjb250YWluIGNoaWxkIGVsZW1lbnRzLlxudmFyIGlzU1ZHID0gbWFrZU1hcChcbiAgJ3N2ZyxhbmltYXRlLGNpcmNsZSxjbGlwcGF0aCxjdXJzb3IsZGVmcyxkZXNjLGVsbGlwc2UsZmlsdGVyLGZvbnQtZmFjZSwnICtcbiAgJ2ZvcmVpZ25vYmplY3QsZyxnbHlwaCxpbWFnZSxsaW5lLG1hcmtlcixtYXNrLG1pc3NpbmctZ2x5cGgscGF0aCxwYXR0ZXJuLCcgK1xuICAncG9seWdvbixwb2x5bGluZSxyZWN0LHN3aXRjaCxzeW1ib2wsdGV4dCx0ZXh0cGF0aCx0c3Bhbix1c2UsdmlldycsXG4gIHRydWVcbik7XG5cbnZhciBpc1Jlc2VydmVkVGFnID0gZnVuY3Rpb24gKHRhZykge1xuICByZXR1cm4gaXNIVE1MVGFnKHRhZykgfHwgaXNTVkcodGFnKVxufTtcblxuZnVuY3Rpb24gZ2V0VGFnTmFtZXNwYWNlICh0YWcpIHtcbiAgaWYgKGlzU1ZHKHRhZykpIHtcbiAgICByZXR1cm4gJ3N2ZydcbiAgfVxuICAvLyBiYXNpYyBzdXBwb3J0IGZvciBNYXRoTUxcbiAgLy8gbm90ZSBpdCBkb2Vzbid0IHN1cHBvcnQgb3RoZXIgTWF0aE1MIGVsZW1lbnRzIGJlaW5nIGNvbXBvbmVudCByb290c1xuICBpZiAodGFnID09PSAnbWF0aCcpIHtcbiAgICByZXR1cm4gJ21hdGgnXG4gIH1cbn1cblxudmFyIHVua25vd25FbGVtZW50Q2FjaGUgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuZnVuY3Rpb24gaXNVbmtub3duRWxlbWVudCAodGFnKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoIWluQnJvd3Nlcikge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgaWYgKGlzUmVzZXJ2ZWRUYWcodGFnKSkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIHRhZyA9IHRhZy50b0xvd2VyQ2FzZSgpO1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKHVua25vd25FbGVtZW50Q2FjaGVbdGFnXSAhPSBudWxsKSB7XG4gICAgcmV0dXJuIHVua25vd25FbGVtZW50Q2FjaGVbdGFnXVxuICB9XG4gIHZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnKTtcbiAgaWYgKHRhZy5pbmRleE9mKCctJykgPiAtMSkge1xuICAgIC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzI4MjEwMzY0LzEwNzAyNDRcbiAgICByZXR1cm4gKHVua25vd25FbGVtZW50Q2FjaGVbdGFnXSA9IChcbiAgICAgIGVsLmNvbnN0cnVjdG9yID09PSB3aW5kb3cuSFRNTFVua25vd25FbGVtZW50IHx8XG4gICAgICBlbC5jb25zdHJ1Y3RvciA9PT0gd2luZG93LkhUTUxFbGVtZW50XG4gICAgKSlcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gKHVua25vd25FbGVtZW50Q2FjaGVbdGFnXSA9IC9IVE1MVW5rbm93bkVsZW1lbnQvLnRlc3QoZWwudG9TdHJpbmcoKSkpXG4gIH1cbn1cblxudmFyIGlzVGV4dElucHV0VHlwZSA9IG1ha2VNYXAoJ3RleHQsbnVtYmVyLHBhc3N3b3JkLHNlYXJjaCxlbWFpbCx0ZWwsdXJsJyk7XG5cbi8qICAqL1xuXG4vKipcbiAqIFF1ZXJ5IGFuIGVsZW1lbnQgc2VsZWN0b3IgaWYgaXQncyBub3QgYW4gZWxlbWVudCBhbHJlYWR5LlxuICovXG5mdW5jdGlvbiBxdWVyeSAoZWwpIHtcbiAgaWYgKHR5cGVvZiBlbCA9PT0gJ3N0cmluZycpIHtcbiAgICB2YXIgc2VsZWN0ZWQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGVsKTtcbiAgICBpZiAoIXNlbGVjdGVkKSB7XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmIHdhcm4oXG4gICAgICAgICdDYW5ub3QgZmluZCBlbGVtZW50OiAnICsgZWxcbiAgICAgICk7XG4gICAgICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICB9XG4gICAgcmV0dXJuIHNlbGVjdGVkXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGVsXG4gIH1cbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnQkMSAodGFnTmFtZSwgdm5vZGUpIHtcbiAgdmFyIGVsbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGFnTmFtZSk7XG4gIGlmICh0YWdOYW1lICE9PSAnc2VsZWN0Jykge1xuICAgIHJldHVybiBlbG1cbiAgfVxuICAvLyBmYWxzZSBvciBudWxsIHdpbGwgcmVtb3ZlIHRoZSBhdHRyaWJ1dGUgYnV0IHVuZGVmaW5lZCB3aWxsIG5vdFxuICBpZiAodm5vZGUuZGF0YSAmJiB2bm9kZS5kYXRhLmF0dHJzICYmIHZub2RlLmRhdGEuYXR0cnMubXVsdGlwbGUgIT09IHVuZGVmaW5lZCkge1xuICAgIGVsbS5zZXRBdHRyaWJ1dGUoJ211bHRpcGxlJywgJ211bHRpcGxlJyk7XG4gIH1cbiAgcmV0dXJuIGVsbVxufVxuXG5mdW5jdGlvbiBjcmVhdGVFbGVtZW50TlMgKG5hbWVzcGFjZSwgdGFnTmFtZSkge1xuICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG5hbWVzcGFjZU1hcFtuYW1lc3BhY2VdLCB0YWdOYW1lKVxufVxuXG5mdW5jdGlvbiBjcmVhdGVUZXh0Tm9kZSAodGV4dCkge1xuICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dClcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ29tbWVudCAodGV4dCkge1xuICByZXR1cm4gZG9jdW1lbnQuY3JlYXRlQ29tbWVudCh0ZXh0KVxufVxuXG5mdW5jdGlvbiBpbnNlcnRCZWZvcmUgKHBhcmVudE5vZGUsIG5ld05vZGUsIHJlZmVyZW5jZU5vZGUpIHtcbiAgcGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobmV3Tm9kZSwgcmVmZXJlbmNlTm9kZSk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUNoaWxkIChub2RlLCBjaGlsZCkge1xuICBub2RlLnJlbW92ZUNoaWxkKGNoaWxkKTtcbn1cblxuZnVuY3Rpb24gYXBwZW5kQ2hpbGQgKG5vZGUsIGNoaWxkKSB7XG4gIG5vZGUuYXBwZW5kQ2hpbGQoY2hpbGQpO1xufVxuXG5mdW5jdGlvbiBwYXJlbnROb2RlIChub2RlKSB7XG4gIHJldHVybiBub2RlLnBhcmVudE5vZGVcbn1cblxuZnVuY3Rpb24gbmV4dFNpYmxpbmcgKG5vZGUpIHtcbiAgcmV0dXJuIG5vZGUubmV4dFNpYmxpbmdcbn1cblxuZnVuY3Rpb24gdGFnTmFtZSAobm9kZSkge1xuICByZXR1cm4gbm9kZS50YWdOYW1lXG59XG5cbmZ1bmN0aW9uIHNldFRleHRDb250ZW50IChub2RlLCB0ZXh0KSB7XG4gIG5vZGUudGV4dENvbnRlbnQgPSB0ZXh0O1xufVxuXG5mdW5jdGlvbiBzZXRTdHlsZVNjb3BlIChub2RlLCBzY29wZUlkKSB7XG4gIG5vZGUuc2V0QXR0cmlidXRlKHNjb3BlSWQsICcnKTtcbn1cblxudmFyIG5vZGVPcHMgPSAvKiNfX1BVUkVfXyovT2JqZWN0LmZyZWV6ZSh7XG4gIGNyZWF0ZUVsZW1lbnQ6IGNyZWF0ZUVsZW1lbnQkMSxcbiAgY3JlYXRlRWxlbWVudE5TOiBjcmVhdGVFbGVtZW50TlMsXG4gIGNyZWF0ZVRleHROb2RlOiBjcmVhdGVUZXh0Tm9kZSxcbiAgY3JlYXRlQ29tbWVudDogY3JlYXRlQ29tbWVudCxcbiAgaW5zZXJ0QmVmb3JlOiBpbnNlcnRCZWZvcmUsXG4gIHJlbW92ZUNoaWxkOiByZW1vdmVDaGlsZCxcbiAgYXBwZW5kQ2hpbGQ6IGFwcGVuZENoaWxkLFxuICBwYXJlbnROb2RlOiBwYXJlbnROb2RlLFxuICBuZXh0U2libGluZzogbmV4dFNpYmxpbmcsXG4gIHRhZ05hbWU6IHRhZ05hbWUsXG4gIHNldFRleHRDb250ZW50OiBzZXRUZXh0Q29udGVudCxcbiAgc2V0U3R5bGVTY29wZTogc2V0U3R5bGVTY29wZVxufSk7XG5cbi8qICAqL1xuXG52YXIgcmVmID0ge1xuICBjcmVhdGU6IGZ1bmN0aW9uIGNyZWF0ZSAoXywgdm5vZGUpIHtcbiAgICByZWdpc3RlclJlZih2bm9kZSk7XG4gIH0sXG4gIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlIChvbGRWbm9kZSwgdm5vZGUpIHtcbiAgICBpZiAob2xkVm5vZGUuZGF0YS5yZWYgIT09IHZub2RlLmRhdGEucmVmKSB7XG4gICAgICByZWdpc3RlclJlZihvbGRWbm9kZSwgdHJ1ZSk7XG4gICAgICByZWdpc3RlclJlZih2bm9kZSk7XG4gICAgfVxuICB9LFxuICBkZXN0cm95OiBmdW5jdGlvbiBkZXN0cm95ICh2bm9kZSkge1xuICAgIHJlZ2lzdGVyUmVmKHZub2RlLCB0cnVlKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gcmVnaXN0ZXJSZWYgKHZub2RlLCBpc1JlbW92YWwpIHtcbiAgdmFyIGtleSA9IHZub2RlLmRhdGEucmVmO1xuICBpZiAoIWlzRGVmKGtleSkpIHsgcmV0dXJuIH1cblxuICB2YXIgdm0gPSB2bm9kZS5jb250ZXh0O1xuICB2YXIgcmVmID0gdm5vZGUuY29tcG9uZW50SW5zdGFuY2UgfHwgdm5vZGUuZWxtO1xuICB2YXIgcmVmcyA9IHZtLiRyZWZzO1xuICBpZiAoaXNSZW1vdmFsKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocmVmc1trZXldKSkge1xuICAgICAgcmVtb3ZlKHJlZnNba2V5XSwgcmVmKTtcbiAgICB9IGVsc2UgaWYgKHJlZnNba2V5XSA9PT0gcmVmKSB7XG4gICAgICByZWZzW2tleV0gPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGlmICh2bm9kZS5kYXRhLnJlZkluRm9yKSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkocmVmc1trZXldKSkge1xuICAgICAgICByZWZzW2tleV0gPSBbcmVmXTtcbiAgICAgIH0gZWxzZSBpZiAocmVmc1trZXldLmluZGV4T2YocmVmKSA8IDApIHtcbiAgICAgICAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gICAgICAgIHJlZnNba2V5XS5wdXNoKHJlZik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlZnNba2V5XSA9IHJlZjtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBWaXJ0dWFsIERPTSBwYXRjaGluZyBhbGdvcml0aG0gYmFzZWQgb24gU25hYmJkb20gYnlcbiAqIFNpbW9uIEZyaWlzIFZpbmR1bSAoQHBhbGRlcGluZClcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZVxuICogaHR0cHM6Ly9naXRodWIuY29tL3BhbGRlcGluZC9zbmFiYmRvbS9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKlxuICogbW9kaWZpZWQgYnkgRXZhbiBZb3UgKEB5eXg5OTA4MDMpXG4gKlxuICogTm90IHR5cGUtY2hlY2tpbmcgdGhpcyBiZWNhdXNlIHRoaXMgZmlsZSBpcyBwZXJmLWNyaXRpY2FsIGFuZCB0aGUgY29zdFxuICogb2YgbWFraW5nIGZsb3cgdW5kZXJzdGFuZCBpdCBpcyBub3Qgd29ydGggaXQuXG4gKi9cblxudmFyIGVtcHR5Tm9kZSA9IG5ldyBWTm9kZSgnJywge30sIFtdKTtcblxudmFyIGhvb2tzID0gWydjcmVhdGUnLCAnYWN0aXZhdGUnLCAndXBkYXRlJywgJ3JlbW92ZScsICdkZXN0cm95J107XG5cbmZ1bmN0aW9uIHNhbWVWbm9kZSAoYSwgYikge1xuICByZXR1cm4gKFxuICAgIGEua2V5ID09PSBiLmtleSAmJlxuICAgIGEuYXN5bmNGYWN0b3J5ID09PSBiLmFzeW5jRmFjdG9yeSAmJiAoXG4gICAgICAoXG4gICAgICAgIGEudGFnID09PSBiLnRhZyAmJlxuICAgICAgICBhLmlzQ29tbWVudCA9PT0gYi5pc0NvbW1lbnQgJiZcbiAgICAgICAgaXNEZWYoYS5kYXRhKSA9PT0gaXNEZWYoYi5kYXRhKSAmJlxuICAgICAgICBzYW1lSW5wdXRUeXBlKGEsIGIpXG4gICAgICApIHx8IChcbiAgICAgICAgaXNUcnVlKGEuaXNBc3luY1BsYWNlaG9sZGVyKSAmJlxuICAgICAgICBpc1VuZGVmKGIuYXN5bmNGYWN0b3J5LmVycm9yKVxuICAgICAgKVxuICAgIClcbiAgKVxufVxuXG5mdW5jdGlvbiBzYW1lSW5wdXRUeXBlIChhLCBiKSB7XG4gIGlmIChhLnRhZyAhPT0gJ2lucHV0JykgeyByZXR1cm4gdHJ1ZSB9XG4gIHZhciBpO1xuICB2YXIgdHlwZUEgPSBpc0RlZihpID0gYS5kYXRhKSAmJiBpc0RlZihpID0gaS5hdHRycykgJiYgaS50eXBlO1xuICB2YXIgdHlwZUIgPSBpc0RlZihpID0gYi5kYXRhKSAmJiBpc0RlZihpID0gaS5hdHRycykgJiYgaS50eXBlO1xuICByZXR1cm4gdHlwZUEgPT09IHR5cGVCIHx8IGlzVGV4dElucHV0VHlwZSh0eXBlQSkgJiYgaXNUZXh0SW5wdXRUeXBlKHR5cGVCKVxufVxuXG5mdW5jdGlvbiBjcmVhdGVLZXlUb09sZElkeCAoY2hpbGRyZW4sIGJlZ2luSWR4LCBlbmRJZHgpIHtcbiAgdmFyIGksIGtleTtcbiAgdmFyIG1hcCA9IHt9O1xuICBmb3IgKGkgPSBiZWdpbklkeDsgaSA8PSBlbmRJZHg7ICsraSkge1xuICAgIGtleSA9IGNoaWxkcmVuW2ldLmtleTtcbiAgICBpZiAoaXNEZWYoa2V5KSkgeyBtYXBba2V5XSA9IGk7IH1cbiAgfVxuICByZXR1cm4gbWFwXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBhdGNoRnVuY3Rpb24gKGJhY2tlbmQpIHtcbiAgdmFyIGksIGo7XG4gIHZhciBjYnMgPSB7fTtcblxuICB2YXIgbW9kdWxlcyA9IGJhY2tlbmQubW9kdWxlcztcbiAgdmFyIG5vZGVPcHMgPSBiYWNrZW5kLm5vZGVPcHM7XG5cbiAgZm9yIChpID0gMDsgaSA8IGhvb2tzLmxlbmd0aDsgKytpKSB7XG4gICAgY2JzW2hvb2tzW2ldXSA9IFtdO1xuICAgIGZvciAoaiA9IDA7IGogPCBtb2R1bGVzLmxlbmd0aDsgKytqKSB7XG4gICAgICBpZiAoaXNEZWYobW9kdWxlc1tqXVtob29rc1tpXV0pKSB7XG4gICAgICAgIGNic1tob29rc1tpXV0ucHVzaChtb2R1bGVzW2pdW2hvb2tzW2ldXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZW1wdHlOb2RlQXQgKGVsbSkge1xuICAgIHJldHVybiBuZXcgVk5vZGUobm9kZU9wcy50YWdOYW1lKGVsbSkudG9Mb3dlckNhc2UoKSwge30sIFtdLCB1bmRlZmluZWQsIGVsbSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVJtQ2IgKGNoaWxkRWxtLCBsaXN0ZW5lcnMpIHtcbiAgICBmdW5jdGlvbiByZW1vdmUkJDEgKCkge1xuICAgICAgaWYgKC0tcmVtb3ZlJCQxLmxpc3RlbmVycyA9PT0gMCkge1xuICAgICAgICByZW1vdmVOb2RlKGNoaWxkRWxtKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVtb3ZlJCQxLmxpc3RlbmVycyA9IGxpc3RlbmVycztcbiAgICByZXR1cm4gcmVtb3ZlJCQxXG4gIH1cblxuICBmdW5jdGlvbiByZW1vdmVOb2RlIChlbCkge1xuICAgIHZhciBwYXJlbnQgPSBub2RlT3BzLnBhcmVudE5vZGUoZWwpO1xuICAgIC8vIGVsZW1lbnQgbWF5IGhhdmUgYWxyZWFkeSBiZWVuIHJlbW92ZWQgZHVlIHRvIHYtaHRtbCAvIHYtdGV4dFxuICAgIGlmIChpc0RlZihwYXJlbnQpKSB7XG4gICAgICBub2RlT3BzLnJlbW92ZUNoaWxkKHBhcmVudCwgZWwpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGlzVW5rbm93bkVsZW1lbnQkJDEgKHZub2RlLCBpblZQcmUpIHtcbiAgICByZXR1cm4gKFxuICAgICAgIWluVlByZSAmJlxuICAgICAgIXZub2RlLm5zICYmXG4gICAgICAhKFxuICAgICAgICBjb25maWcuaWdub3JlZEVsZW1lbnRzLmxlbmd0aCAmJlxuICAgICAgICBjb25maWcuaWdub3JlZEVsZW1lbnRzLnNvbWUoZnVuY3Rpb24gKGlnbm9yZSkge1xuICAgICAgICAgIHJldHVybiBpc1JlZ0V4cChpZ25vcmUpXG4gICAgICAgICAgICA/IGlnbm9yZS50ZXN0KHZub2RlLnRhZylcbiAgICAgICAgICAgIDogaWdub3JlID09PSB2bm9kZS50YWdcbiAgICAgICAgfSlcbiAgICAgICkgJiZcbiAgICAgIGNvbmZpZy5pc1Vua25vd25FbGVtZW50KHZub2RlLnRhZylcbiAgICApXG4gIH1cblxuICB2YXIgY3JlYXRpbmdFbG1JblZQcmUgPSAwO1xuXG4gIGZ1bmN0aW9uIGNyZWF0ZUVsbSAoXG4gICAgdm5vZGUsXG4gICAgaW5zZXJ0ZWRWbm9kZVF1ZXVlLFxuICAgIHBhcmVudEVsbSxcbiAgICByZWZFbG0sXG4gICAgbmVzdGVkLFxuICAgIG93bmVyQXJyYXksXG4gICAgaW5kZXhcbiAgKSB7XG4gICAgaWYgKGlzRGVmKHZub2RlLmVsbSkgJiYgaXNEZWYob3duZXJBcnJheSkpIHtcbiAgICAgIC8vIFRoaXMgdm5vZGUgd2FzIHVzZWQgaW4gYSBwcmV2aW91cyByZW5kZXIhXG4gICAgICAvLyBub3cgaXQncyB1c2VkIGFzIGEgbmV3IG5vZGUsIG92ZXJ3cml0aW5nIGl0cyBlbG0gd291bGQgY2F1c2VcbiAgICAgIC8vIHBvdGVudGlhbCBwYXRjaCBlcnJvcnMgZG93biB0aGUgcm9hZCB3aGVuIGl0J3MgdXNlZCBhcyBhbiBpbnNlcnRpb25cbiAgICAgIC8vIHJlZmVyZW5jZSBub2RlLiBJbnN0ZWFkLCB3ZSBjbG9uZSB0aGUgbm9kZSBvbi1kZW1hbmQgYmVmb3JlIGNyZWF0aW5nXG4gICAgICAvLyBhc3NvY2lhdGVkIERPTSBlbGVtZW50IGZvciBpdC5cbiAgICAgIHZub2RlID0gb3duZXJBcnJheVtpbmRleF0gPSBjbG9uZVZOb2RlKHZub2RlKTtcbiAgICB9XG5cbiAgICB2bm9kZS5pc1Jvb3RJbnNlcnQgPSAhbmVzdGVkOyAvLyBmb3IgdHJhbnNpdGlvbiBlbnRlciBjaGVja1xuICAgIGlmIChjcmVhdGVDb21wb25lbnQodm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgcGFyZW50RWxtLCByZWZFbG0pKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB2YXIgZGF0YSA9IHZub2RlLmRhdGE7XG4gICAgdmFyIGNoaWxkcmVuID0gdm5vZGUuY2hpbGRyZW47XG4gICAgdmFyIHRhZyA9IHZub2RlLnRhZztcbiAgICBpZiAoaXNEZWYodGFnKSkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5wcmUpIHtcbiAgICAgICAgICBjcmVhdGluZ0VsbUluVlByZSsrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1Vua25vd25FbGVtZW50JCQxKHZub2RlLCBjcmVhdGluZ0VsbUluVlByZSkpIHtcbiAgICAgICAgICB3YXJuKFxuICAgICAgICAgICAgJ1Vua25vd24gY3VzdG9tIGVsZW1lbnQ6IDwnICsgdGFnICsgJz4gLSBkaWQgeW91ICcgK1xuICAgICAgICAgICAgJ3JlZ2lzdGVyIHRoZSBjb21wb25lbnQgY29ycmVjdGx5PyBGb3IgcmVjdXJzaXZlIGNvbXBvbmVudHMsICcgK1xuICAgICAgICAgICAgJ21ha2Ugc3VyZSB0byBwcm92aWRlIHRoZSBcIm5hbWVcIiBvcHRpb24uJyxcbiAgICAgICAgICAgIHZub2RlLmNvbnRleHRcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHZub2RlLmVsbSA9IHZub2RlLm5zXG4gICAgICAgID8gbm9kZU9wcy5jcmVhdGVFbGVtZW50TlModm5vZGUubnMsIHRhZylcbiAgICAgICAgOiBub2RlT3BzLmNyZWF0ZUVsZW1lbnQodGFnLCB2bm9kZSk7XG4gICAgICBzZXRTY29wZSh2bm9kZSk7XG5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAge1xuICAgICAgICBjcmVhdGVDaGlsZHJlbih2bm9kZSwgY2hpbGRyZW4sIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgICAgIGlmIChpc0RlZihkYXRhKSkge1xuICAgICAgICAgIGludm9rZUNyZWF0ZUhvb2tzKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUpO1xuICAgICAgICB9XG4gICAgICAgIGluc2VydChwYXJlbnRFbG0sIHZub2RlLmVsbSwgcmVmRWxtKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgJiYgZGF0YSAmJiBkYXRhLnByZSkge1xuICAgICAgICBjcmVhdGluZ0VsbUluVlByZS0tO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXNUcnVlKHZub2RlLmlzQ29tbWVudCkpIHtcbiAgICAgIHZub2RlLmVsbSA9IG5vZGVPcHMuY3JlYXRlQ29tbWVudCh2bm9kZS50ZXh0KTtcbiAgICAgIGluc2VydChwYXJlbnRFbG0sIHZub2RlLmVsbSwgcmVmRWxtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdm5vZGUuZWxtID0gbm9kZU9wcy5jcmVhdGVUZXh0Tm9kZSh2bm9kZS50ZXh0KTtcbiAgICAgIGluc2VydChwYXJlbnRFbG0sIHZub2RlLmVsbSwgcmVmRWxtKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVDb21wb25lbnQgKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIHBhcmVudEVsbSwgcmVmRWxtKSB7XG4gICAgdmFyIGkgPSB2bm9kZS5kYXRhO1xuICAgIGlmIChpc0RlZihpKSkge1xuICAgICAgdmFyIGlzUmVhY3RpdmF0ZWQgPSBpc0RlZih2bm9kZS5jb21wb25lbnRJbnN0YW5jZSkgJiYgaS5rZWVwQWxpdmU7XG4gICAgICBpZiAoaXNEZWYoaSA9IGkuaG9vaykgJiYgaXNEZWYoaSA9IGkuaW5pdCkpIHtcbiAgICAgICAgaSh2bm9kZSwgZmFsc2UgLyogaHlkcmF0aW5nICovKTtcbiAgICAgIH1cbiAgICAgIC8vIGFmdGVyIGNhbGxpbmcgdGhlIGluaXQgaG9vaywgaWYgdGhlIHZub2RlIGlzIGEgY2hpbGQgY29tcG9uZW50XG4gICAgICAvLyBpdCBzaG91bGQndmUgY3JlYXRlZCBhIGNoaWxkIGluc3RhbmNlIGFuZCBtb3VudGVkIGl0LiB0aGUgY2hpbGRcbiAgICAgIC8vIGNvbXBvbmVudCBhbHNvIGhhcyBzZXQgdGhlIHBsYWNlaG9sZGVyIHZub2RlJ3MgZWxtLlxuICAgICAgLy8gaW4gdGhhdCBjYXNlIHdlIGNhbiBqdXN0IHJldHVybiB0aGUgZWxlbWVudCBhbmQgYmUgZG9uZS5cbiAgICAgIGlmIChpc0RlZih2bm9kZS5jb21wb25lbnRJbnN0YW5jZSkpIHtcbiAgICAgICAgaW5pdENvbXBvbmVudCh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICAgICAgaW5zZXJ0KHBhcmVudEVsbSwgdm5vZGUuZWxtLCByZWZFbG0pO1xuICAgICAgICBpZiAoaXNUcnVlKGlzUmVhY3RpdmF0ZWQpKSB7XG4gICAgICAgICAgcmVhY3RpdmF0ZUNvbXBvbmVudCh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBwYXJlbnRFbG0sIHJlZkVsbSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBpbml0Q29tcG9uZW50ICh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKSB7XG4gICAgaWYgKGlzRGVmKHZub2RlLmRhdGEucGVuZGluZ0luc2VydCkpIHtcbiAgICAgIGluc2VydGVkVm5vZGVRdWV1ZS5wdXNoLmFwcGx5KGluc2VydGVkVm5vZGVRdWV1ZSwgdm5vZGUuZGF0YS5wZW5kaW5nSW5zZXJ0KTtcbiAgICAgIHZub2RlLmRhdGEucGVuZGluZ0luc2VydCA9IG51bGw7XG4gICAgfVxuICAgIHZub2RlLmVsbSA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlLiRlbDtcbiAgICBpZiAoaXNQYXRjaGFibGUodm5vZGUpKSB7XG4gICAgICBpbnZva2VDcmVhdGVIb29rcyh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKTtcbiAgICAgIHNldFNjb3BlKHZub2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZW1wdHkgY29tcG9uZW50IHJvb3QuXG4gICAgICAvLyBza2lwIGFsbCBlbGVtZW50LXJlbGF0ZWQgbW9kdWxlcyBleGNlcHQgZm9yIHJlZiAoIzM0NTUpXG4gICAgICByZWdpc3RlclJlZih2bm9kZSk7XG4gICAgICAvLyBtYWtlIHN1cmUgdG8gaW52b2tlIHRoZSBpbnNlcnQgaG9va1xuICAgICAgaW5zZXJ0ZWRWbm9kZVF1ZXVlLnB1c2godm5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIHJlYWN0aXZhdGVDb21wb25lbnQgKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIHBhcmVudEVsbSwgcmVmRWxtKSB7XG4gICAgdmFyIGk7XG4gICAgLy8gaGFjayBmb3IgIzQzMzk6IGEgcmVhY3RpdmF0ZWQgY29tcG9uZW50IHdpdGggaW5uZXIgdHJhbnNpdGlvblxuICAgIC8vIGRvZXMgbm90IHRyaWdnZXIgYmVjYXVzZSB0aGUgaW5uZXIgbm9kZSdzIGNyZWF0ZWQgaG9va3MgYXJlIG5vdCBjYWxsZWRcbiAgICAvLyBhZ2Fpbi4gSXQncyBub3QgaWRlYWwgdG8gaW52b2x2ZSBtb2R1bGUtc3BlY2lmaWMgbG9naWMgaW4gaGVyZSBidXRcbiAgICAvLyB0aGVyZSBkb2Vzbid0IHNlZW0gdG8gYmUgYSBiZXR0ZXIgd2F5IHRvIGRvIGl0LlxuICAgIHZhciBpbm5lck5vZGUgPSB2bm9kZTtcbiAgICB3aGlsZSAoaW5uZXJOb2RlLmNvbXBvbmVudEluc3RhbmNlKSB7XG4gICAgICBpbm5lck5vZGUgPSBpbm5lck5vZGUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlO1xuICAgICAgaWYgKGlzRGVmKGkgPSBpbm5lck5vZGUuZGF0YSkgJiYgaXNEZWYoaSA9IGkudHJhbnNpdGlvbikpIHtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGNicy5hY3RpdmF0ZS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgIGNicy5hY3RpdmF0ZVtpXShlbXB0eU5vZGUsIGlubmVyTm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgaW5zZXJ0ZWRWbm9kZVF1ZXVlLnB1c2goaW5uZXJOb2RlKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gdW5saWtlIGEgbmV3bHkgY3JlYXRlZCBjb21wb25lbnQsXG4gICAgLy8gYSByZWFjdGl2YXRlZCBrZWVwLWFsaXZlIGNvbXBvbmVudCBkb2Vzbid0IGluc2VydCBpdHNlbGZcbiAgICBpbnNlcnQocGFyZW50RWxtLCB2bm9kZS5lbG0sIHJlZkVsbSk7XG4gIH1cblxuICBmdW5jdGlvbiBpbnNlcnQgKHBhcmVudCwgZWxtLCByZWYkJDEpIHtcbiAgICBpZiAoaXNEZWYocGFyZW50KSkge1xuICAgICAgaWYgKGlzRGVmKHJlZiQkMSkpIHtcbiAgICAgICAgaWYgKG5vZGVPcHMucGFyZW50Tm9kZShyZWYkJDEpID09PSBwYXJlbnQpIHtcbiAgICAgICAgICBub2RlT3BzLmluc2VydEJlZm9yZShwYXJlbnQsIGVsbSwgcmVmJCQxKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbm9kZU9wcy5hcHBlbmRDaGlsZChwYXJlbnQsIGVsbSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlQ2hpbGRyZW4gKHZub2RlLCBjaGlsZHJlbiwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBjaGVja0R1cGxpY2F0ZUtleXMoY2hpbGRyZW4pO1xuICAgICAgfVxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7ICsraSkge1xuICAgICAgICBjcmVhdGVFbG0oY2hpbGRyZW5baV0sIGluc2VydGVkVm5vZGVRdWV1ZSwgdm5vZGUuZWxtLCBudWxsLCB0cnVlLCBjaGlsZHJlbiwgaSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc1ByaW1pdGl2ZSh2bm9kZS50ZXh0KSkge1xuICAgICAgbm9kZU9wcy5hcHBlbmRDaGlsZCh2bm9kZS5lbG0sIG5vZGVPcHMuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKHZub2RlLnRleHQpKSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gaXNQYXRjaGFibGUgKHZub2RlKSB7XG4gICAgd2hpbGUgKHZub2RlLmNvbXBvbmVudEluc3RhbmNlKSB7XG4gICAgICB2bm9kZSA9IHZub2RlLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGVmKHZub2RlLnRhZylcbiAgfVxuXG4gIGZ1bmN0aW9uIGludm9rZUNyZWF0ZUhvb2tzICh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlKSB7XG4gICAgZm9yICh2YXIgaSQxID0gMDsgaSQxIDwgY2JzLmNyZWF0ZS5sZW5ndGg7ICsraSQxKSB7XG4gICAgICBjYnMuY3JlYXRlW2kkMV0oZW1wdHlOb2RlLCB2bm9kZSk7XG4gICAgfVxuICAgIGkgPSB2bm9kZS5kYXRhLmhvb2s7IC8vIFJldXNlIHZhcmlhYmxlXG4gICAgaWYgKGlzRGVmKGkpKSB7XG4gICAgICBpZiAoaXNEZWYoaS5jcmVhdGUpKSB7IGkuY3JlYXRlKGVtcHR5Tm9kZSwgdm5vZGUpOyB9XG4gICAgICBpZiAoaXNEZWYoaS5pbnNlcnQpKSB7IGluc2VydGVkVm5vZGVRdWV1ZS5wdXNoKHZub2RlKTsgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHNldCBzY29wZSBpZCBhdHRyaWJ1dGUgZm9yIHNjb3BlZCBDU1MuXG4gIC8vIHRoaXMgaXMgaW1wbGVtZW50ZWQgYXMgYSBzcGVjaWFsIGNhc2UgdG8gYXZvaWQgdGhlIG92ZXJoZWFkXG4gIC8vIG9mIGdvaW5nIHRocm91Z2ggdGhlIG5vcm1hbCBhdHRyaWJ1dGUgcGF0Y2hpbmcgcHJvY2Vzcy5cbiAgZnVuY3Rpb24gc2V0U2NvcGUgKHZub2RlKSB7XG4gICAgdmFyIGk7XG4gICAgaWYgKGlzRGVmKGkgPSB2bm9kZS5mblNjb3BlSWQpKSB7XG4gICAgICBub2RlT3BzLnNldFN0eWxlU2NvcGUodm5vZGUuZWxtLCBpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGFuY2VzdG9yID0gdm5vZGU7XG4gICAgICB3aGlsZSAoYW5jZXN0b3IpIHtcbiAgICAgICAgaWYgKGlzRGVmKGkgPSBhbmNlc3Rvci5jb250ZXh0KSAmJiBpc0RlZihpID0gaS4kb3B0aW9ucy5fc2NvcGVJZCkpIHtcbiAgICAgICAgICBub2RlT3BzLnNldFN0eWxlU2NvcGUodm5vZGUuZWxtLCBpKTtcbiAgICAgICAgfVxuICAgICAgICBhbmNlc3RvciA9IGFuY2VzdG9yLnBhcmVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gZm9yIHNsb3QgY29udGVudCB0aGV5IHNob3VsZCBhbHNvIGdldCB0aGUgc2NvcGVJZCBmcm9tIHRoZSBob3N0IGluc3RhbmNlLlxuICAgIGlmIChpc0RlZihpID0gYWN0aXZlSW5zdGFuY2UpICYmXG4gICAgICBpICE9PSB2bm9kZS5jb250ZXh0ICYmXG4gICAgICBpICE9PSB2bm9kZS5mbkNvbnRleHQgJiZcbiAgICAgIGlzRGVmKGkgPSBpLiRvcHRpb25zLl9zY29wZUlkKVxuICAgICkge1xuICAgICAgbm9kZU9wcy5zZXRTdHlsZVNjb3BlKHZub2RlLmVsbSwgaSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gYWRkVm5vZGVzIChwYXJlbnRFbG0sIHJlZkVsbSwgdm5vZGVzLCBzdGFydElkeCwgZW5kSWR4LCBpbnNlcnRlZFZub2RlUXVldWUpIHtcbiAgICBmb3IgKDsgc3RhcnRJZHggPD0gZW5kSWR4OyArK3N0YXJ0SWR4KSB7XG4gICAgICBjcmVhdGVFbG0odm5vZGVzW3N0YXJ0SWR4XSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBwYXJlbnRFbG0sIHJlZkVsbSwgZmFsc2UsIHZub2Rlcywgc3RhcnRJZHgpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGludm9rZURlc3Ryb3lIb29rICh2bm9kZSkge1xuICAgIHZhciBpLCBqO1xuICAgIHZhciBkYXRhID0gdm5vZGUuZGF0YTtcbiAgICBpZiAoaXNEZWYoZGF0YSkpIHtcbiAgICAgIGlmIChpc0RlZihpID0gZGF0YS5ob29rKSAmJiBpc0RlZihpID0gaS5kZXN0cm95KSkgeyBpKHZub2RlKTsgfVxuICAgICAgZm9yIChpID0gMDsgaSA8IGNicy5kZXN0cm95Lmxlbmd0aDsgKytpKSB7IGNicy5kZXN0cm95W2ldKHZub2RlKTsgfVxuICAgIH1cbiAgICBpZiAoaXNEZWYoaSA9IHZub2RlLmNoaWxkcmVuKSkge1xuICAgICAgZm9yIChqID0gMDsgaiA8IHZub2RlLmNoaWxkcmVuLmxlbmd0aDsgKytqKSB7XG4gICAgICAgIGludm9rZURlc3Ryb3lIb29rKHZub2RlLmNoaWxkcmVuW2pdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiByZW1vdmVWbm9kZXMgKHZub2Rlcywgc3RhcnRJZHgsIGVuZElkeCkge1xuICAgIGZvciAoOyBzdGFydElkeCA8PSBlbmRJZHg7ICsrc3RhcnRJZHgpIHtcbiAgICAgIHZhciBjaCA9IHZub2Rlc1tzdGFydElkeF07XG4gICAgICBpZiAoaXNEZWYoY2gpKSB7XG4gICAgICAgIGlmIChpc0RlZihjaC50YWcpKSB7XG4gICAgICAgICAgcmVtb3ZlQW5kSW52b2tlUmVtb3ZlSG9vayhjaCk7XG4gICAgICAgICAgaW52b2tlRGVzdHJveUhvb2soY2gpO1xuICAgICAgICB9IGVsc2UgeyAvLyBUZXh0IG5vZGVcbiAgICAgICAgICByZW1vdmVOb2RlKGNoLmVsbSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiByZW1vdmVBbmRJbnZva2VSZW1vdmVIb29rICh2bm9kZSwgcm0pIHtcbiAgICBpZiAoaXNEZWYocm0pIHx8IGlzRGVmKHZub2RlLmRhdGEpKSB7XG4gICAgICB2YXIgaTtcbiAgICAgIHZhciBsaXN0ZW5lcnMgPSBjYnMucmVtb3ZlLmxlbmd0aCArIDE7XG4gICAgICBpZiAoaXNEZWYocm0pKSB7XG4gICAgICAgIC8vIHdlIGhhdmUgYSByZWN1cnNpdmVseSBwYXNzZWQgZG93biBybSBjYWxsYmFja1xuICAgICAgICAvLyBpbmNyZWFzZSB0aGUgbGlzdGVuZXJzIGNvdW50XG4gICAgICAgIHJtLmxpc3RlbmVycyArPSBsaXN0ZW5lcnM7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBkaXJlY3RseSByZW1vdmluZ1xuICAgICAgICBybSA9IGNyZWF0ZVJtQ2Iodm5vZGUuZWxtLCBsaXN0ZW5lcnMpO1xuICAgICAgfVxuICAgICAgLy8gcmVjdXJzaXZlbHkgaW52b2tlIGhvb2tzIG9uIGNoaWxkIGNvbXBvbmVudCByb290IG5vZGVcbiAgICAgIGlmIChpc0RlZihpID0gdm5vZGUuY29tcG9uZW50SW5zdGFuY2UpICYmIGlzRGVmKGkgPSBpLl92bm9kZSkgJiYgaXNEZWYoaS5kYXRhKSkge1xuICAgICAgICByZW1vdmVBbmRJbnZva2VSZW1vdmVIb29rKGksIHJtKTtcbiAgICAgIH1cbiAgICAgIGZvciAoaSA9IDA7IGkgPCBjYnMucmVtb3ZlLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIGNicy5yZW1vdmVbaV0odm5vZGUsIHJtKTtcbiAgICAgIH1cbiAgICAgIGlmIChpc0RlZihpID0gdm5vZGUuZGF0YS5ob29rKSAmJiBpc0RlZihpID0gaS5yZW1vdmUpKSB7XG4gICAgICAgIGkodm5vZGUsIHJtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJtKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbW92ZU5vZGUodm5vZGUuZWxtKTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiB1cGRhdGVDaGlsZHJlbiAocGFyZW50RWxtLCBvbGRDaCwgbmV3Q2gsIGluc2VydGVkVm5vZGVRdWV1ZSwgcmVtb3ZlT25seSkge1xuICAgIHZhciBvbGRTdGFydElkeCA9IDA7XG4gICAgdmFyIG5ld1N0YXJ0SWR4ID0gMDtcbiAgICB2YXIgb2xkRW5kSWR4ID0gb2xkQ2gubGVuZ3RoIC0gMTtcbiAgICB2YXIgb2xkU3RhcnRWbm9kZSA9IG9sZENoWzBdO1xuICAgIHZhciBvbGRFbmRWbm9kZSA9IG9sZENoW29sZEVuZElkeF07XG4gICAgdmFyIG5ld0VuZElkeCA9IG5ld0NoLmxlbmd0aCAtIDE7XG4gICAgdmFyIG5ld1N0YXJ0Vm5vZGUgPSBuZXdDaFswXTtcbiAgICB2YXIgbmV3RW5kVm5vZGUgPSBuZXdDaFtuZXdFbmRJZHhdO1xuICAgIHZhciBvbGRLZXlUb0lkeCwgaWR4SW5PbGQsIHZub2RlVG9Nb3ZlLCByZWZFbG07XG5cbiAgICAvLyByZW1vdmVPbmx5IGlzIGEgc3BlY2lhbCBmbGFnIHVzZWQgb25seSBieSA8dHJhbnNpdGlvbi1ncm91cD5cbiAgICAvLyB0byBlbnN1cmUgcmVtb3ZlZCBlbGVtZW50cyBzdGF5IGluIGNvcnJlY3QgcmVsYXRpdmUgcG9zaXRpb25zXG4gICAgLy8gZHVyaW5nIGxlYXZpbmcgdHJhbnNpdGlvbnNcbiAgICB2YXIgY2FuTW92ZSA9ICFyZW1vdmVPbmx5O1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNoZWNrRHVwbGljYXRlS2V5cyhuZXdDaCk7XG4gICAgfVxuXG4gICAgd2hpbGUgKG9sZFN0YXJ0SWR4IDw9IG9sZEVuZElkeCAmJiBuZXdTdGFydElkeCA8PSBuZXdFbmRJZHgpIHtcbiAgICAgIGlmIChpc1VuZGVmKG9sZFN0YXJ0Vm5vZGUpKSB7XG4gICAgICAgIG9sZFN0YXJ0Vm5vZGUgPSBvbGRDaFsrK29sZFN0YXJ0SWR4XTsgLy8gVm5vZGUgaGFzIGJlZW4gbW92ZWQgbGVmdFxuICAgICAgfSBlbHNlIGlmIChpc1VuZGVmKG9sZEVuZFZub2RlKSkge1xuICAgICAgICBvbGRFbmRWbm9kZSA9IG9sZENoWy0tb2xkRW5kSWR4XTtcbiAgICAgIH0gZWxzZSBpZiAoc2FtZVZub2RlKG9sZFN0YXJ0Vm5vZGUsIG5ld1N0YXJ0Vm5vZGUpKSB7XG4gICAgICAgIHBhdGNoVm5vZGUob2xkU3RhcnRWbm9kZSwgbmV3U3RhcnRWbm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBuZXdDaCwgbmV3U3RhcnRJZHgpO1xuICAgICAgICBvbGRTdGFydFZub2RlID0gb2xkQ2hbKytvbGRTdGFydElkeF07XG4gICAgICAgIG5ld1N0YXJ0Vm5vZGUgPSBuZXdDaFsrK25ld1N0YXJ0SWR4XTtcbiAgICAgIH0gZWxzZSBpZiAoc2FtZVZub2RlKG9sZEVuZFZub2RlLCBuZXdFbmRWbm9kZSkpIHtcbiAgICAgICAgcGF0Y2hWbm9kZShvbGRFbmRWbm9kZSwgbmV3RW5kVm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgbmV3Q2gsIG5ld0VuZElkeCk7XG4gICAgICAgIG9sZEVuZFZub2RlID0gb2xkQ2hbLS1vbGRFbmRJZHhdO1xuICAgICAgICBuZXdFbmRWbm9kZSA9IG5ld0NoWy0tbmV3RW5kSWR4XTtcbiAgICAgIH0gZWxzZSBpZiAoc2FtZVZub2RlKG9sZFN0YXJ0Vm5vZGUsIG5ld0VuZFZub2RlKSkgeyAvLyBWbm9kZSBtb3ZlZCByaWdodFxuICAgICAgICBwYXRjaFZub2RlKG9sZFN0YXJ0Vm5vZGUsIG5ld0VuZFZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIG5ld0NoLCBuZXdFbmRJZHgpO1xuICAgICAgICBjYW5Nb3ZlICYmIG5vZGVPcHMuaW5zZXJ0QmVmb3JlKHBhcmVudEVsbSwgb2xkU3RhcnRWbm9kZS5lbG0sIG5vZGVPcHMubmV4dFNpYmxpbmcob2xkRW5kVm5vZGUuZWxtKSk7XG4gICAgICAgIG9sZFN0YXJ0Vm5vZGUgPSBvbGRDaFsrK29sZFN0YXJ0SWR4XTtcbiAgICAgICAgbmV3RW5kVm5vZGUgPSBuZXdDaFstLW5ld0VuZElkeF07XG4gICAgICB9IGVsc2UgaWYgKHNhbWVWbm9kZShvbGRFbmRWbm9kZSwgbmV3U3RhcnRWbm9kZSkpIHsgLy8gVm5vZGUgbW92ZWQgbGVmdFxuICAgICAgICBwYXRjaFZub2RlKG9sZEVuZFZub2RlLCBuZXdTdGFydFZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUsIG5ld0NoLCBuZXdTdGFydElkeCk7XG4gICAgICAgIGNhbk1vdmUgJiYgbm9kZU9wcy5pbnNlcnRCZWZvcmUocGFyZW50RWxtLCBvbGRFbmRWbm9kZS5lbG0sIG9sZFN0YXJ0Vm5vZGUuZWxtKTtcbiAgICAgICAgb2xkRW5kVm5vZGUgPSBvbGRDaFstLW9sZEVuZElkeF07XG4gICAgICAgIG5ld1N0YXJ0Vm5vZGUgPSBuZXdDaFsrK25ld1N0YXJ0SWR4XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChpc1VuZGVmKG9sZEtleVRvSWR4KSkgeyBvbGRLZXlUb0lkeCA9IGNyZWF0ZUtleVRvT2xkSWR4KG9sZENoLCBvbGRTdGFydElkeCwgb2xkRW5kSWR4KTsgfVxuICAgICAgICBpZHhJbk9sZCA9IGlzRGVmKG5ld1N0YXJ0Vm5vZGUua2V5KVxuICAgICAgICAgID8gb2xkS2V5VG9JZHhbbmV3U3RhcnRWbm9kZS5rZXldXG4gICAgICAgICAgOiBmaW5kSWR4SW5PbGQobmV3U3RhcnRWbm9kZSwgb2xkQ2gsIG9sZFN0YXJ0SWR4LCBvbGRFbmRJZHgpO1xuICAgICAgICBpZiAoaXNVbmRlZihpZHhJbk9sZCkpIHsgLy8gTmV3IGVsZW1lbnRcbiAgICAgICAgICBjcmVhdGVFbG0obmV3U3RhcnRWbm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBwYXJlbnRFbG0sIG9sZFN0YXJ0Vm5vZGUuZWxtLCBmYWxzZSwgbmV3Q2gsIG5ld1N0YXJ0SWR4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2bm9kZVRvTW92ZSA9IG9sZENoW2lkeEluT2xkXTtcbiAgICAgICAgICBpZiAoc2FtZVZub2RlKHZub2RlVG9Nb3ZlLCBuZXdTdGFydFZub2RlKSkge1xuICAgICAgICAgICAgcGF0Y2hWbm9kZSh2bm9kZVRvTW92ZSwgbmV3U3RhcnRWbm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBuZXdDaCwgbmV3U3RhcnRJZHgpO1xuICAgICAgICAgICAgb2xkQ2hbaWR4SW5PbGRdID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgY2FuTW92ZSAmJiBub2RlT3BzLmluc2VydEJlZm9yZShwYXJlbnRFbG0sIHZub2RlVG9Nb3ZlLmVsbSwgb2xkU3RhcnRWbm9kZS5lbG0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBzYW1lIGtleSBidXQgZGlmZmVyZW50IGVsZW1lbnQuIHRyZWF0IGFzIG5ldyBlbGVtZW50XG4gICAgICAgICAgICBjcmVhdGVFbG0obmV3U3RhcnRWbm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBwYXJlbnRFbG0sIG9sZFN0YXJ0Vm5vZGUuZWxtLCBmYWxzZSwgbmV3Q2gsIG5ld1N0YXJ0SWR4KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbmV3U3RhcnRWbm9kZSA9IG5ld0NoWysrbmV3U3RhcnRJZHhdO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAob2xkU3RhcnRJZHggPiBvbGRFbmRJZHgpIHtcbiAgICAgIHJlZkVsbSA9IGlzVW5kZWYobmV3Q2hbbmV3RW5kSWR4ICsgMV0pID8gbnVsbCA6IG5ld0NoW25ld0VuZElkeCArIDFdLmVsbTtcbiAgICAgIGFkZFZub2RlcyhwYXJlbnRFbG0sIHJlZkVsbSwgbmV3Q2gsIG5ld1N0YXJ0SWR4LCBuZXdFbmRJZHgsIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgfSBlbHNlIGlmIChuZXdTdGFydElkeCA+IG5ld0VuZElkeCkge1xuICAgICAgcmVtb3ZlVm5vZGVzKG9sZENoLCBvbGRTdGFydElkeCwgb2xkRW5kSWR4KTtcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBjaGVja0R1cGxpY2F0ZUtleXMgKGNoaWxkcmVuKSB7XG4gICAgdmFyIHNlZW5LZXlzID0ge307XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHZub2RlID0gY2hpbGRyZW5baV07XG4gICAgICB2YXIga2V5ID0gdm5vZGUua2V5O1xuICAgICAgaWYgKGlzRGVmKGtleSkpIHtcbiAgICAgICAgaWYgKHNlZW5LZXlzW2tleV0pIHtcbiAgICAgICAgICB3YXJuKFxuICAgICAgICAgICAgKFwiRHVwbGljYXRlIGtleXMgZGV0ZWN0ZWQ6ICdcIiArIGtleSArIFwiJy4gVGhpcyBtYXkgY2F1c2UgYW4gdXBkYXRlIGVycm9yLlwiKSxcbiAgICAgICAgICAgIHZub2RlLmNvbnRleHRcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNlZW5LZXlzW2tleV0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZmluZElkeEluT2xkIChub2RlLCBvbGRDaCwgc3RhcnQsIGVuZCkge1xuICAgIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgICB2YXIgYyA9IG9sZENoW2ldO1xuICAgICAgaWYgKGlzRGVmKGMpICYmIHNhbWVWbm9kZShub2RlLCBjKSkgeyByZXR1cm4gaSB9XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gcGF0Y2hWbm9kZSAoXG4gICAgb2xkVm5vZGUsXG4gICAgdm5vZGUsXG4gICAgaW5zZXJ0ZWRWbm9kZVF1ZXVlLFxuICAgIG93bmVyQXJyYXksXG4gICAgaW5kZXgsXG4gICAgcmVtb3ZlT25seVxuICApIHtcbiAgICBpZiAob2xkVm5vZGUgPT09IHZub2RlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoaXNEZWYodm5vZGUuZWxtKSAmJiBpc0RlZihvd25lckFycmF5KSkge1xuICAgICAgLy8gY2xvbmUgcmV1c2VkIHZub2RlXG4gICAgICB2bm9kZSA9IG93bmVyQXJyYXlbaW5kZXhdID0gY2xvbmVWTm9kZSh2bm9kZSk7XG4gICAgfVxuXG4gICAgdmFyIGVsbSA9IHZub2RlLmVsbSA9IG9sZFZub2RlLmVsbTtcblxuICAgIGlmIChpc1RydWUob2xkVm5vZGUuaXNBc3luY1BsYWNlaG9sZGVyKSkge1xuICAgICAgaWYgKGlzRGVmKHZub2RlLmFzeW5jRmFjdG9yeS5yZXNvbHZlZCkpIHtcbiAgICAgICAgaHlkcmF0ZShvbGRWbm9kZS5lbG0sIHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdm5vZGUuaXNBc3luY1BsYWNlaG9sZGVyID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIHJldXNlIGVsZW1lbnQgZm9yIHN0YXRpYyB0cmVlcy5cbiAgICAvLyBub3RlIHdlIG9ubHkgZG8gdGhpcyBpZiB0aGUgdm5vZGUgaXMgY2xvbmVkIC1cbiAgICAvLyBpZiB0aGUgbmV3IG5vZGUgaXMgbm90IGNsb25lZCBpdCBtZWFucyB0aGUgcmVuZGVyIGZ1bmN0aW9ucyBoYXZlIGJlZW5cbiAgICAvLyByZXNldCBieSB0aGUgaG90LXJlbG9hZC1hcGkgYW5kIHdlIG5lZWQgdG8gZG8gYSBwcm9wZXIgcmUtcmVuZGVyLlxuICAgIGlmIChpc1RydWUodm5vZGUuaXNTdGF0aWMpICYmXG4gICAgICBpc1RydWUob2xkVm5vZGUuaXNTdGF0aWMpICYmXG4gICAgICB2bm9kZS5rZXkgPT09IG9sZFZub2RlLmtleSAmJlxuICAgICAgKGlzVHJ1ZSh2bm9kZS5pc0Nsb25lZCkgfHwgaXNUcnVlKHZub2RlLmlzT25jZSkpXG4gICAgKSB7XG4gICAgICB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSA9IG9sZFZub2RlLmNvbXBvbmVudEluc3RhbmNlO1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdmFyIGk7XG4gICAgdmFyIGRhdGEgPSB2bm9kZS5kYXRhO1xuICAgIGlmIChpc0RlZihkYXRhKSAmJiBpc0RlZihpID0gZGF0YS5ob29rKSAmJiBpc0RlZihpID0gaS5wcmVwYXRjaCkpIHtcbiAgICAgIGkob2xkVm5vZGUsIHZub2RlKTtcbiAgICB9XG5cbiAgICB2YXIgb2xkQ2ggPSBvbGRWbm9kZS5jaGlsZHJlbjtcbiAgICB2YXIgY2ggPSB2bm9kZS5jaGlsZHJlbjtcbiAgICBpZiAoaXNEZWYoZGF0YSkgJiYgaXNQYXRjaGFibGUodm5vZGUpKSB7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgY2JzLnVwZGF0ZS5sZW5ndGg7ICsraSkgeyBjYnMudXBkYXRlW2ldKG9sZFZub2RlLCB2bm9kZSk7IH1cbiAgICAgIGlmIChpc0RlZihpID0gZGF0YS5ob29rKSAmJiBpc0RlZihpID0gaS51cGRhdGUpKSB7IGkob2xkVm5vZGUsIHZub2RlKTsgfVxuICAgIH1cbiAgICBpZiAoaXNVbmRlZih2bm9kZS50ZXh0KSkge1xuICAgICAgaWYgKGlzRGVmKG9sZENoKSAmJiBpc0RlZihjaCkpIHtcbiAgICAgICAgaWYgKG9sZENoICE9PSBjaCkgeyB1cGRhdGVDaGlsZHJlbihlbG0sIG9sZENoLCBjaCwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCByZW1vdmVPbmx5KTsgfVxuICAgICAgfSBlbHNlIGlmIChpc0RlZihjaCkpIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICBjaGVja0R1cGxpY2F0ZUtleXMoY2gpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0RlZihvbGRWbm9kZS50ZXh0KSkgeyBub2RlT3BzLnNldFRleHRDb250ZW50KGVsbSwgJycpOyB9XG4gICAgICAgIGFkZFZub2RlcyhlbG0sIG51bGwsIGNoLCAwLCBjaC5sZW5ndGggLSAxLCBpbnNlcnRlZFZub2RlUXVldWUpO1xuICAgICAgfSBlbHNlIGlmIChpc0RlZihvbGRDaCkpIHtcbiAgICAgICAgcmVtb3ZlVm5vZGVzKG9sZENoLCAwLCBvbGRDaC5sZW5ndGggLSAxKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNEZWYob2xkVm5vZGUudGV4dCkpIHtcbiAgICAgICAgbm9kZU9wcy5zZXRUZXh0Q29udGVudChlbG0sICcnKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG9sZFZub2RlLnRleHQgIT09IHZub2RlLnRleHQpIHtcbiAgICAgIG5vZGVPcHMuc2V0VGV4dENvbnRlbnQoZWxtLCB2bm9kZS50ZXh0KTtcbiAgICB9XG4gICAgaWYgKGlzRGVmKGRhdGEpKSB7XG4gICAgICBpZiAoaXNEZWYoaSA9IGRhdGEuaG9vaykgJiYgaXNEZWYoaSA9IGkucG9zdHBhdGNoKSkgeyBpKG9sZFZub2RlLCB2bm9kZSk7IH1cbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBpbnZva2VJbnNlcnRIb29rICh2bm9kZSwgcXVldWUsIGluaXRpYWwpIHtcbiAgICAvLyBkZWxheSBpbnNlcnQgaG9va3MgZm9yIGNvbXBvbmVudCByb290IG5vZGVzLCBpbnZva2UgdGhlbSBhZnRlciB0aGVcbiAgICAvLyBlbGVtZW50IGlzIHJlYWxseSBpbnNlcnRlZFxuICAgIGlmIChpc1RydWUoaW5pdGlhbCkgJiYgaXNEZWYodm5vZGUucGFyZW50KSkge1xuICAgICAgdm5vZGUucGFyZW50LmRhdGEucGVuZGluZ0luc2VydCA9IHF1ZXVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHF1ZXVlLmxlbmd0aDsgKytpKSB7XG4gICAgICAgIHF1ZXVlW2ldLmRhdGEuaG9vay5pbnNlcnQocXVldWVbaV0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBoeWRyYXRpb25CYWlsZWQgPSBmYWxzZTtcbiAgLy8gbGlzdCBvZiBtb2R1bGVzIHRoYXQgY2FuIHNraXAgY3JlYXRlIGhvb2sgZHVyaW5nIGh5ZHJhdGlvbiBiZWNhdXNlIHRoZXlcbiAgLy8gYXJlIGFscmVhZHkgcmVuZGVyZWQgb24gdGhlIGNsaWVudCBvciBoYXMgbm8gbmVlZCBmb3IgaW5pdGlhbGl6YXRpb25cbiAgLy8gTm90ZTogc3R5bGUgaXMgZXhjbHVkZWQgYmVjYXVzZSBpdCByZWxpZXMgb24gaW5pdGlhbCBjbG9uZSBmb3IgZnV0dXJlXG4gIC8vIGRlZXAgdXBkYXRlcyAoIzcwNjMpLlxuICB2YXIgaXNSZW5kZXJlZE1vZHVsZSA9IG1ha2VNYXAoJ2F0dHJzLGNsYXNzLHN0YXRpY0NsYXNzLHN0YXRpY1N0eWxlLGtleScpO1xuXG4gIC8vIE5vdGU6IHRoaXMgaXMgYSBicm93c2VyLW9ubHkgZnVuY3Rpb24gc28gd2UgY2FuIGFzc3VtZSBlbG1zIGFyZSBET00gbm9kZXMuXG4gIGZ1bmN0aW9uIGh5ZHJhdGUgKGVsbSwgdm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgaW5WUHJlKSB7XG4gICAgdmFyIGk7XG4gICAgdmFyIHRhZyA9IHZub2RlLnRhZztcbiAgICB2YXIgZGF0YSA9IHZub2RlLmRhdGE7XG4gICAgdmFyIGNoaWxkcmVuID0gdm5vZGUuY2hpbGRyZW47XG4gICAgaW5WUHJlID0gaW5WUHJlIHx8IChkYXRhICYmIGRhdGEucHJlKTtcbiAgICB2bm9kZS5lbG0gPSBlbG07XG5cbiAgICBpZiAoaXNUcnVlKHZub2RlLmlzQ29tbWVudCkgJiYgaXNEZWYodm5vZGUuYXN5bmNGYWN0b3J5KSkge1xuICAgICAgdm5vZGUuaXNBc3luY1BsYWNlaG9sZGVyID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIC8vIGFzc2VydCBub2RlIG1hdGNoXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmICghYXNzZXJ0Tm9kZU1hdGNoKGVsbSwgdm5vZGUsIGluVlByZSkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpc0RlZihkYXRhKSkge1xuICAgICAgaWYgKGlzRGVmKGkgPSBkYXRhLmhvb2spICYmIGlzRGVmKGkgPSBpLmluaXQpKSB7IGkodm5vZGUsIHRydWUgLyogaHlkcmF0aW5nICovKTsgfVxuICAgICAgaWYgKGlzRGVmKGkgPSB2bm9kZS5jb21wb25lbnRJbnN0YW5jZSkpIHtcbiAgICAgICAgLy8gY2hpbGQgY29tcG9uZW50LiBpdCBzaG91bGQgaGF2ZSBoeWRyYXRlZCBpdHMgb3duIHRyZWUuXG4gICAgICAgIGluaXRDb21wb25lbnQodm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChpc0RlZih0YWcpKSB7XG4gICAgICBpZiAoaXNEZWYoY2hpbGRyZW4pKSB7XG4gICAgICAgIC8vIGVtcHR5IGVsZW1lbnQsIGFsbG93IGNsaWVudCB0byBwaWNrIHVwIGFuZCBwb3B1bGF0ZSBjaGlsZHJlblxuICAgICAgICBpZiAoIWVsbS5oYXNDaGlsZE5vZGVzKCkpIHtcbiAgICAgICAgICBjcmVhdGVDaGlsZHJlbih2bm9kZSwgY2hpbGRyZW4sIGluc2VydGVkVm5vZGVRdWV1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gdi1odG1sIGFuZCBkb21Qcm9wczogaW5uZXJIVE1MXG4gICAgICAgICAgaWYgKGlzRGVmKGkgPSBkYXRhKSAmJiBpc0RlZihpID0gaS5kb21Qcm9wcykgJiYgaXNEZWYoaSA9IGkuaW5uZXJIVE1MKSkge1xuICAgICAgICAgICAgaWYgKGkgIT09IGVsbS5pbm5lckhUTUwpIHtcbiAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgICAgICAgICAgICAgdHlwZW9mIGNvbnNvbGUgIT09ICd1bmRlZmluZWQnICYmXG4gICAgICAgICAgICAgICAgIWh5ZHJhdGlvbkJhaWxlZFxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBoeWRyYXRpb25CYWlsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignUGFyZW50OiAnLCBlbG0pO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybignc2VydmVyIGlubmVySFRNTDogJywgaSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdjbGllbnQgaW5uZXJIVE1MOiAnLCBlbG0uaW5uZXJIVE1MKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gaXRlcmF0ZSBhbmQgY29tcGFyZSBjaGlsZHJlbiBsaXN0c1xuICAgICAgICAgICAgdmFyIGNoaWxkcmVuTWF0Y2ggPSB0cnVlO1xuICAgICAgICAgICAgdmFyIGNoaWxkTm9kZSA9IGVsbS5maXJzdENoaWxkO1xuICAgICAgICAgICAgZm9yICh2YXIgaSQxID0gMDsgaSQxIDwgY2hpbGRyZW4ubGVuZ3RoOyBpJDErKykge1xuICAgICAgICAgICAgICBpZiAoIWNoaWxkTm9kZSB8fCAhaHlkcmF0ZShjaGlsZE5vZGUsIGNoaWxkcmVuW2kkMV0sIGluc2VydGVkVm5vZGVRdWV1ZSwgaW5WUHJlKSkge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuTWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNoaWxkTm9kZSA9IGNoaWxkTm9kZS5uZXh0U2libGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGlmIGNoaWxkTm9kZSBpcyBub3QgbnVsbCwgaXQgbWVhbnMgdGhlIGFjdHVhbCBjaGlsZE5vZGVzIGxpc3QgaXNcbiAgICAgICAgICAgIC8vIGxvbmdlciB0aGFuIHRoZSB2aXJ0dWFsIGNoaWxkcmVuIGxpc3QuXG4gICAgICAgICAgICBpZiAoIWNoaWxkcmVuTWF0Y2ggfHwgY2hpbGROb2RlKSB7XG4gICAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJlxuICAgICAgICAgICAgICAgIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICAgICAgICAgICFoeWRyYXRpb25CYWlsZWRcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgaHlkcmF0aW9uQmFpbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ1BhcmVudDogJywgZWxtKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ01pc21hdGNoaW5nIGNoaWxkTm9kZXMgdnMuIFZOb2RlczogJywgZWxtLmNoaWxkTm9kZXMsIGNoaWxkcmVuKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChpc0RlZihkYXRhKSkge1xuICAgICAgICB2YXIgZnVsbEludm9rZSA9IGZhbHNlO1xuICAgICAgICBmb3IgKHZhciBrZXkgaW4gZGF0YSkge1xuICAgICAgICAgIGlmICghaXNSZW5kZXJlZE1vZHVsZShrZXkpKSB7XG4gICAgICAgICAgICBmdWxsSW52b2tlID0gdHJ1ZTtcbiAgICAgICAgICAgIGludm9rZUNyZWF0ZUhvb2tzKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUpO1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFmdWxsSW52b2tlICYmIGRhdGFbJ2NsYXNzJ10pIHtcbiAgICAgICAgICAvLyBlbnN1cmUgY29sbGVjdGluZyBkZXBzIGZvciBkZWVwIGNsYXNzIGJpbmRpbmdzIGZvciBmdXR1cmUgdXBkYXRlc1xuICAgICAgICAgIHRyYXZlcnNlKGRhdGFbJ2NsYXNzJ10pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChlbG0uZGF0YSAhPT0gdm5vZGUudGV4dCkge1xuICAgICAgZWxtLmRhdGEgPSB2bm9kZS50ZXh0O1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgZnVuY3Rpb24gYXNzZXJ0Tm9kZU1hdGNoIChub2RlLCB2bm9kZSwgaW5WUHJlKSB7XG4gICAgaWYgKGlzRGVmKHZub2RlLnRhZykpIHtcbiAgICAgIHJldHVybiB2bm9kZS50YWcuaW5kZXhPZigndnVlLWNvbXBvbmVudCcpID09PSAwIHx8IChcbiAgICAgICAgIWlzVW5rbm93bkVsZW1lbnQkJDEodm5vZGUsIGluVlByZSkgJiZcbiAgICAgICAgdm5vZGUudGFnLnRvTG93ZXJDYXNlKCkgPT09IChub2RlLnRhZ05hbWUgJiYgbm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKCkpXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBub2RlLm5vZGVUeXBlID09PSAodm5vZGUuaXNDb21tZW50ID8gOCA6IDMpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIHBhdGNoIChvbGRWbm9kZSwgdm5vZGUsIGh5ZHJhdGluZywgcmVtb3ZlT25seSkge1xuICAgIGlmIChpc1VuZGVmKHZub2RlKSkge1xuICAgICAgaWYgKGlzRGVmKG9sZFZub2RlKSkgeyBpbnZva2VEZXN0cm95SG9vayhvbGRWbm9kZSk7IH1cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHZhciBpc0luaXRpYWxQYXRjaCA9IGZhbHNlO1xuICAgIHZhciBpbnNlcnRlZFZub2RlUXVldWUgPSBbXTtcblxuICAgIGlmIChpc1VuZGVmKG9sZFZub2RlKSkge1xuICAgICAgLy8gZW1wdHkgbW91bnQgKGxpa2VseSBhcyBjb21wb25lbnQpLCBjcmVhdGUgbmV3IHJvb3QgZWxlbWVudFxuICAgICAgaXNJbml0aWFsUGF0Y2ggPSB0cnVlO1xuICAgICAgY3JlYXRlRWxtKHZub2RlLCBpbnNlcnRlZFZub2RlUXVldWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgaXNSZWFsRWxlbWVudCA9IGlzRGVmKG9sZFZub2RlLm5vZGVUeXBlKTtcbiAgICAgIGlmICghaXNSZWFsRWxlbWVudCAmJiBzYW1lVm5vZGUob2xkVm5vZGUsIHZub2RlKSkge1xuICAgICAgICAvLyBwYXRjaCBleGlzdGluZyByb290IG5vZGVcbiAgICAgICAgcGF0Y2hWbm9kZShvbGRWbm9kZSwgdm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSwgbnVsbCwgbnVsbCwgcmVtb3ZlT25seSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXNSZWFsRWxlbWVudCkge1xuICAgICAgICAgIC8vIG1vdW50aW5nIHRvIGEgcmVhbCBlbGVtZW50XG4gICAgICAgICAgLy8gY2hlY2sgaWYgdGhpcyBpcyBzZXJ2ZXItcmVuZGVyZWQgY29udGVudCBhbmQgaWYgd2UgY2FuIHBlcmZvcm1cbiAgICAgICAgICAvLyBhIHN1Y2Nlc3NmdWwgaHlkcmF0aW9uLlxuICAgICAgICAgIGlmIChvbGRWbm9kZS5ub2RlVHlwZSA9PT0gMSAmJiBvbGRWbm9kZS5oYXNBdHRyaWJ1dGUoU1NSX0FUVFIpKSB7XG4gICAgICAgICAgICBvbGRWbm9kZS5yZW1vdmVBdHRyaWJ1dGUoU1NSX0FUVFIpO1xuICAgICAgICAgICAgaHlkcmF0aW5nID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzVHJ1ZShoeWRyYXRpbmcpKSB7XG4gICAgICAgICAgICBpZiAoaHlkcmF0ZShvbGRWbm9kZSwgdm5vZGUsIGluc2VydGVkVm5vZGVRdWV1ZSkpIHtcbiAgICAgICAgICAgICAgaW52b2tlSW5zZXJ0SG9vayh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCB0cnVlKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG9sZFZub2RlXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgICAgd2FybihcbiAgICAgICAgICAgICAgICAnVGhlIGNsaWVudC1zaWRlIHJlbmRlcmVkIHZpcnR1YWwgRE9NIHRyZWUgaXMgbm90IG1hdGNoaW5nICcgK1xuICAgICAgICAgICAgICAgICdzZXJ2ZXItcmVuZGVyZWQgY29udGVudC4gVGhpcyBpcyBsaWtlbHkgY2F1c2VkIGJ5IGluY29ycmVjdCAnICtcbiAgICAgICAgICAgICAgICAnSFRNTCBtYXJrdXAsIGZvciBleGFtcGxlIG5lc3RpbmcgYmxvY2stbGV2ZWwgZWxlbWVudHMgaW5zaWRlICcgK1xuICAgICAgICAgICAgICAgICc8cD4sIG9yIG1pc3NpbmcgPHRib2R5Pi4gQmFpbGluZyBoeWRyYXRpb24gYW5kIHBlcmZvcm1pbmcgJyArXG4gICAgICAgICAgICAgICAgJ2Z1bGwgY2xpZW50LXNpZGUgcmVuZGVyLidcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gZWl0aGVyIG5vdCBzZXJ2ZXItcmVuZGVyZWQsIG9yIGh5ZHJhdGlvbiBmYWlsZWQuXG4gICAgICAgICAgLy8gY3JlYXRlIGFuIGVtcHR5IG5vZGUgYW5kIHJlcGxhY2UgaXRcbiAgICAgICAgICBvbGRWbm9kZSA9IGVtcHR5Tm9kZUF0KG9sZFZub2RlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJlcGxhY2luZyBleGlzdGluZyBlbGVtZW50XG4gICAgICAgIHZhciBvbGRFbG0gPSBvbGRWbm9kZS5lbG07XG4gICAgICAgIHZhciBwYXJlbnRFbG0gPSBub2RlT3BzLnBhcmVudE5vZGUob2xkRWxtKTtcblxuICAgICAgICAvLyBjcmVhdGUgbmV3IG5vZGVcbiAgICAgICAgY3JlYXRlRWxtKFxuICAgICAgICAgIHZub2RlLFxuICAgICAgICAgIGluc2VydGVkVm5vZGVRdWV1ZSxcbiAgICAgICAgICAvLyBleHRyZW1lbHkgcmFyZSBlZGdlIGNhc2U6IGRvIG5vdCBpbnNlcnQgaWYgb2xkIGVsZW1lbnQgaXMgaW4gYVxuICAgICAgICAgIC8vIGxlYXZpbmcgdHJhbnNpdGlvbi4gT25seSBoYXBwZW5zIHdoZW4gY29tYmluaW5nIHRyYW5zaXRpb24gK1xuICAgICAgICAgIC8vIGtlZXAtYWxpdmUgKyBIT0NzLiAoIzQ1OTApXG4gICAgICAgICAgb2xkRWxtLl9sZWF2ZUNiID8gbnVsbCA6IHBhcmVudEVsbSxcbiAgICAgICAgICBub2RlT3BzLm5leHRTaWJsaW5nKG9sZEVsbSlcbiAgICAgICAgKTtcblxuICAgICAgICAvLyB1cGRhdGUgcGFyZW50IHBsYWNlaG9sZGVyIG5vZGUgZWxlbWVudCwgcmVjdXJzaXZlbHlcbiAgICAgICAgaWYgKGlzRGVmKHZub2RlLnBhcmVudCkpIHtcbiAgICAgICAgICB2YXIgYW5jZXN0b3IgPSB2bm9kZS5wYXJlbnQ7XG4gICAgICAgICAgdmFyIHBhdGNoYWJsZSA9IGlzUGF0Y2hhYmxlKHZub2RlKTtcbiAgICAgICAgICB3aGlsZSAoYW5jZXN0b3IpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2JzLmRlc3Ryb3kubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgY2JzLmRlc3Ryb3lbaV0oYW5jZXN0b3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYW5jZXN0b3IuZWxtID0gdm5vZGUuZWxtO1xuICAgICAgICAgICAgaWYgKHBhdGNoYWJsZSkge1xuICAgICAgICAgICAgICBmb3IgKHZhciBpJDEgPSAwOyBpJDEgPCBjYnMuY3JlYXRlLmxlbmd0aDsgKytpJDEpIHtcbiAgICAgICAgICAgICAgICBjYnMuY3JlYXRlW2kkMV0oZW1wdHlOb2RlLCBhbmNlc3Rvcik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLy8gIzY1MTNcbiAgICAgICAgICAgICAgLy8gaW52b2tlIGluc2VydCBob29rcyB0aGF0IG1heSBoYXZlIGJlZW4gbWVyZ2VkIGJ5IGNyZWF0ZSBob29rcy5cbiAgICAgICAgICAgICAgLy8gZS5nLiBmb3IgZGlyZWN0aXZlcyB0aGF0IHVzZXMgdGhlIFwiaW5zZXJ0ZWRcIiBob29rLlxuICAgICAgICAgICAgICB2YXIgaW5zZXJ0ID0gYW5jZXN0b3IuZGF0YS5ob29rLmluc2VydDtcbiAgICAgICAgICAgICAgaWYgKGluc2VydC5tZXJnZWQpIHtcbiAgICAgICAgICAgICAgICAvLyBzdGFydCBhdCBpbmRleCAxIHRvIGF2b2lkIHJlLWludm9raW5nIGNvbXBvbmVudCBtb3VudGVkIGhvb2tcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpJDIgPSAxOyBpJDIgPCBpbnNlcnQuZm5zLmxlbmd0aDsgaSQyKyspIHtcbiAgICAgICAgICAgICAgICAgIGluc2VydC5mbnNbaSQyXSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVnaXN0ZXJSZWYoYW5jZXN0b3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYW5jZXN0b3IgPSBhbmNlc3Rvci5wYXJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gZGVzdHJveSBvbGQgbm9kZVxuICAgICAgICBpZiAoaXNEZWYocGFyZW50RWxtKSkge1xuICAgICAgICAgIHJlbW92ZVZub2Rlcyhbb2xkVm5vZGVdLCAwLCAwKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0RlZihvbGRWbm9kZS50YWcpKSB7XG4gICAgICAgICAgaW52b2tlRGVzdHJveUhvb2sob2xkVm5vZGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW52b2tlSW5zZXJ0SG9vayh2bm9kZSwgaW5zZXJ0ZWRWbm9kZVF1ZXVlLCBpc0luaXRpYWxQYXRjaCk7XG4gICAgcmV0dXJuIHZub2RlLmVsbVxuICB9XG59XG5cbi8qICAqL1xuXG52YXIgZGlyZWN0aXZlcyA9IHtcbiAgY3JlYXRlOiB1cGRhdGVEaXJlY3RpdmVzLFxuICB1cGRhdGU6IHVwZGF0ZURpcmVjdGl2ZXMsXG4gIGRlc3Ryb3k6IGZ1bmN0aW9uIHVuYmluZERpcmVjdGl2ZXMgKHZub2RlKSB7XG4gICAgdXBkYXRlRGlyZWN0aXZlcyh2bm9kZSwgZW1wdHlOb2RlKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gdXBkYXRlRGlyZWN0aXZlcyAob2xkVm5vZGUsIHZub2RlKSB7XG4gIGlmIChvbGRWbm9kZS5kYXRhLmRpcmVjdGl2ZXMgfHwgdm5vZGUuZGF0YS5kaXJlY3RpdmVzKSB7XG4gICAgX3VwZGF0ZShvbGRWbm9kZSwgdm5vZGUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIF91cGRhdGUgKG9sZFZub2RlLCB2bm9kZSkge1xuICB2YXIgaXNDcmVhdGUgPSBvbGRWbm9kZSA9PT0gZW1wdHlOb2RlO1xuICB2YXIgaXNEZXN0cm95ID0gdm5vZGUgPT09IGVtcHR5Tm9kZTtcbiAgdmFyIG9sZERpcnMgPSBub3JtYWxpemVEaXJlY3RpdmVzJDEob2xkVm5vZGUuZGF0YS5kaXJlY3RpdmVzLCBvbGRWbm9kZS5jb250ZXh0KTtcbiAgdmFyIG5ld0RpcnMgPSBub3JtYWxpemVEaXJlY3RpdmVzJDEodm5vZGUuZGF0YS5kaXJlY3RpdmVzLCB2bm9kZS5jb250ZXh0KTtcblxuICB2YXIgZGlyc1dpdGhJbnNlcnQgPSBbXTtcbiAgdmFyIGRpcnNXaXRoUG9zdHBhdGNoID0gW107XG5cbiAgdmFyIGtleSwgb2xkRGlyLCBkaXI7XG4gIGZvciAoa2V5IGluIG5ld0RpcnMpIHtcbiAgICBvbGREaXIgPSBvbGREaXJzW2tleV07XG4gICAgZGlyID0gbmV3RGlyc1trZXldO1xuICAgIGlmICghb2xkRGlyKSB7XG4gICAgICAvLyBuZXcgZGlyZWN0aXZlLCBiaW5kXG4gICAgICBjYWxsSG9vayQxKGRpciwgJ2JpbmQnLCB2bm9kZSwgb2xkVm5vZGUpO1xuICAgICAgaWYgKGRpci5kZWYgJiYgZGlyLmRlZi5pbnNlcnRlZCkge1xuICAgICAgICBkaXJzV2l0aEluc2VydC5wdXNoKGRpcik7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGV4aXN0aW5nIGRpcmVjdGl2ZSwgdXBkYXRlXG4gICAgICBkaXIub2xkVmFsdWUgPSBvbGREaXIudmFsdWU7XG4gICAgICBkaXIub2xkQXJnID0gb2xkRGlyLmFyZztcbiAgICAgIGNhbGxIb29rJDEoZGlyLCAndXBkYXRlJywgdm5vZGUsIG9sZFZub2RlKTtcbiAgICAgIGlmIChkaXIuZGVmICYmIGRpci5kZWYuY29tcG9uZW50VXBkYXRlZCkge1xuICAgICAgICBkaXJzV2l0aFBvc3RwYXRjaC5wdXNoKGRpcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKGRpcnNXaXRoSW5zZXJ0Lmxlbmd0aCkge1xuICAgIHZhciBjYWxsSW5zZXJ0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXJzV2l0aEluc2VydC5sZW5ndGg7IGkrKykge1xuICAgICAgICBjYWxsSG9vayQxKGRpcnNXaXRoSW5zZXJ0W2ldLCAnaW5zZXJ0ZWQnLCB2bm9kZSwgb2xkVm5vZGUpO1xuICAgICAgfVxuICAgIH07XG4gICAgaWYgKGlzQ3JlYXRlKSB7XG4gICAgICBtZXJnZVZOb2RlSG9vayh2bm9kZSwgJ2luc2VydCcsIGNhbGxJbnNlcnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYWxsSW5zZXJ0KCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGRpcnNXaXRoUG9zdHBhdGNoLmxlbmd0aCkge1xuICAgIG1lcmdlVk5vZGVIb29rKHZub2RlLCAncG9zdHBhdGNoJywgZnVuY3Rpb24gKCkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXJzV2l0aFBvc3RwYXRjaC5sZW5ndGg7IGkrKykge1xuICAgICAgICBjYWxsSG9vayQxKGRpcnNXaXRoUG9zdHBhdGNoW2ldLCAnY29tcG9uZW50VXBkYXRlZCcsIHZub2RlLCBvbGRWbm9kZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBpZiAoIWlzQ3JlYXRlKSB7XG4gICAgZm9yIChrZXkgaW4gb2xkRGlycykge1xuICAgICAgaWYgKCFuZXdEaXJzW2tleV0pIHtcbiAgICAgICAgLy8gbm8gbG9uZ2VyIHByZXNlbnQsIHVuYmluZFxuICAgICAgICBjYWxsSG9vayQxKG9sZERpcnNba2V5XSwgJ3VuYmluZCcsIG9sZFZub2RlLCBvbGRWbm9kZSwgaXNEZXN0cm95KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxudmFyIGVtcHR5TW9kaWZpZXJzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblxuZnVuY3Rpb24gbm9ybWFsaXplRGlyZWN0aXZlcyQxIChcbiAgZGlycyxcbiAgdm1cbikge1xuICB2YXIgcmVzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgaWYgKCFkaXJzKSB7XG4gICAgLy8gJGZsb3ctZGlzYWJsZS1saW5lXG4gICAgcmV0dXJuIHJlc1xuICB9XG4gIHZhciBpLCBkaXI7XG4gIGZvciAoaSA9IDA7IGkgPCBkaXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgZGlyID0gZGlyc1tpXTtcbiAgICBpZiAoIWRpci5tb2RpZmllcnMpIHtcbiAgICAgIC8vICRmbG93LWRpc2FibGUtbGluZVxuICAgICAgZGlyLm1vZGlmaWVycyA9IGVtcHR5TW9kaWZpZXJzO1xuICAgIH1cbiAgICByZXNbZ2V0UmF3RGlyTmFtZShkaXIpXSA9IGRpcjtcbiAgICBkaXIuZGVmID0gcmVzb2x2ZUFzc2V0KHZtLiRvcHRpb25zLCAnZGlyZWN0aXZlcycsIGRpci5uYW1lLCB0cnVlKTtcbiAgfVxuICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgcmV0dXJuIHJlc1xufVxuXG5mdW5jdGlvbiBnZXRSYXdEaXJOYW1lIChkaXIpIHtcbiAgcmV0dXJuIGRpci5yYXdOYW1lIHx8ICgoZGlyLm5hbWUpICsgXCIuXCIgKyAoT2JqZWN0LmtleXMoZGlyLm1vZGlmaWVycyB8fCB7fSkuam9pbignLicpKSlcbn1cblxuZnVuY3Rpb24gY2FsbEhvb2skMSAoZGlyLCBob29rLCB2bm9kZSwgb2xkVm5vZGUsIGlzRGVzdHJveSkge1xuICB2YXIgZm4gPSBkaXIuZGVmICYmIGRpci5kZWZbaG9va107XG4gIGlmIChmbikge1xuICAgIHRyeSB7XG4gICAgICBmbih2bm9kZS5lbG0sIGRpciwgdm5vZGUsIG9sZFZub2RlLCBpc0Rlc3Ryb3kpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGhhbmRsZUVycm9yKGUsIHZub2RlLmNvbnRleHQsIChcImRpcmVjdGl2ZSBcIiArIChkaXIubmFtZSkgKyBcIiBcIiArIGhvb2sgKyBcIiBob29rXCIpKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIGJhc2VNb2R1bGVzID0gW1xuICByZWYsXG4gIGRpcmVjdGl2ZXNcbl07XG5cbi8qICAqL1xuXG5mdW5jdGlvbiB1cGRhdGVBdHRycyAob2xkVm5vZGUsIHZub2RlKSB7XG4gIHZhciBvcHRzID0gdm5vZGUuY29tcG9uZW50T3B0aW9ucztcbiAgaWYgKGlzRGVmKG9wdHMpICYmIG9wdHMuQ3Rvci5vcHRpb25zLmluaGVyaXRBdHRycyA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm5cbiAgfVxuICBpZiAoaXNVbmRlZihvbGRWbm9kZS5kYXRhLmF0dHJzKSAmJiBpc1VuZGVmKHZub2RlLmRhdGEuYXR0cnMpKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgdmFyIGtleSwgY3VyLCBvbGQ7XG4gIHZhciBlbG0gPSB2bm9kZS5lbG07XG4gIHZhciBvbGRBdHRycyA9IG9sZFZub2RlLmRhdGEuYXR0cnMgfHwge307XG4gIHZhciBhdHRycyA9IHZub2RlLmRhdGEuYXR0cnMgfHwge307XG4gIC8vIGNsb25lIG9ic2VydmVkIG9iamVjdHMsIGFzIHRoZSB1c2VyIHByb2JhYmx5IHdhbnRzIHRvIG11dGF0ZSBpdFxuICBpZiAoaXNEZWYoYXR0cnMuX19vYl9fKSkge1xuICAgIGF0dHJzID0gdm5vZGUuZGF0YS5hdHRycyA9IGV4dGVuZCh7fSwgYXR0cnMpO1xuICB9XG5cbiAgZm9yIChrZXkgaW4gYXR0cnMpIHtcbiAgICBjdXIgPSBhdHRyc1trZXldO1xuICAgIG9sZCA9IG9sZEF0dHJzW2tleV07XG4gICAgaWYgKG9sZCAhPT0gY3VyKSB7XG4gICAgICBzZXRBdHRyKGVsbSwga2V5LCBjdXIsIHZub2RlLmRhdGEucHJlKTtcbiAgICB9XG4gIH1cbiAgLy8gIzQzOTE6IGluIElFOSwgc2V0dGluZyB0eXBlIGNhbiByZXNldCB2YWx1ZSBmb3IgaW5wdXRbdHlwZT1yYWRpb11cbiAgLy8gIzY2NjY6IElFL0VkZ2UgZm9yY2VzIHByb2dyZXNzIHZhbHVlIGRvd24gdG8gMSBiZWZvcmUgc2V0dGluZyBhIG1heFxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKChpc0lFIHx8IGlzRWRnZSkgJiYgYXR0cnMudmFsdWUgIT09IG9sZEF0dHJzLnZhbHVlKSB7XG4gICAgc2V0QXR0cihlbG0sICd2YWx1ZScsIGF0dHJzLnZhbHVlKTtcbiAgfVxuICBmb3IgKGtleSBpbiBvbGRBdHRycykge1xuICAgIGlmIChpc1VuZGVmKGF0dHJzW2tleV0pKSB7XG4gICAgICBpZiAoaXNYbGluayhrZXkpKSB7XG4gICAgICAgIGVsbS5yZW1vdmVBdHRyaWJ1dGVOUyh4bGlua05TLCBnZXRYbGlua1Byb3Aoa2V5KSk7XG4gICAgICB9IGVsc2UgaWYgKCFpc0VudW1lcmF0ZWRBdHRyKGtleSkpIHtcbiAgICAgICAgZWxtLnJlbW92ZUF0dHJpYnV0ZShrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBzZXRBdHRyIChlbCwga2V5LCB2YWx1ZSwgaXNJblByZSkge1xuICBpZiAoaXNJblByZSB8fCBlbC50YWdOYW1lLmluZGV4T2YoJy0nKSA+IC0xKSB7XG4gICAgYmFzZVNldEF0dHIoZWwsIGtleSwgdmFsdWUpO1xuICB9IGVsc2UgaWYgKGlzQm9vbGVhbkF0dHIoa2V5KSkge1xuICAgIC8vIHNldCBhdHRyaWJ1dGUgZm9yIGJsYW5rIHZhbHVlXG4gICAgLy8gZS5nLiA8b3B0aW9uIGRpc2FibGVkPlNlbGVjdCBvbmU8L29wdGlvbj5cbiAgICBpZiAoaXNGYWxzeUF0dHJWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgIGVsLnJlbW92ZUF0dHJpYnV0ZShrZXkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyB0ZWNobmljYWxseSBhbGxvd2Z1bGxzY3JlZW4gaXMgYSBib29sZWFuIGF0dHJpYnV0ZSBmb3IgPGlmcmFtZT4sXG4gICAgICAvLyBidXQgRmxhc2ggZXhwZWN0cyBhIHZhbHVlIG9mIFwidHJ1ZVwiIHdoZW4gdXNlZCBvbiA8ZW1iZWQ+IHRhZ1xuICAgICAgdmFsdWUgPSBrZXkgPT09ICdhbGxvd2Z1bGxzY3JlZW4nICYmIGVsLnRhZ05hbWUgPT09ICdFTUJFRCdcbiAgICAgICAgPyAndHJ1ZSdcbiAgICAgICAgOiBrZXk7XG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoa2V5LCB2YWx1ZSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGlzRW51bWVyYXRlZEF0dHIoa2V5KSkge1xuICAgIGVsLnNldEF0dHJpYnV0ZShrZXksIGNvbnZlcnRFbnVtZXJhdGVkVmFsdWUoa2V5LCB2YWx1ZSkpO1xuICB9IGVsc2UgaWYgKGlzWGxpbmsoa2V5KSkge1xuICAgIGlmIChpc0ZhbHN5QXR0clZhbHVlKHZhbHVlKSkge1xuICAgICAgZWwucmVtb3ZlQXR0cmlidXRlTlMoeGxpbmtOUywgZ2V0WGxpbmtQcm9wKGtleSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbC5zZXRBdHRyaWJ1dGVOUyh4bGlua05TLCBrZXksIHZhbHVlKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgYmFzZVNldEF0dHIoZWwsIGtleSwgdmFsdWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJhc2VTZXRBdHRyIChlbCwga2V5LCB2YWx1ZSkge1xuICBpZiAoaXNGYWxzeUF0dHJWYWx1ZSh2YWx1ZSkpIHtcbiAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoa2V5KTtcbiAgfSBlbHNlIHtcbiAgICAvLyAjNzEzODogSUUxMCAmIDExIGZpcmVzIGlucHV0IGV2ZW50IHdoZW4gc2V0dGluZyBwbGFjZWhvbGRlciBvblxuICAgIC8vIDx0ZXh0YXJlYT4uLi4gYmxvY2sgdGhlIGZpcnN0IGlucHV0IGV2ZW50IGFuZCByZW1vdmUgdGhlIGJsb2NrZXJcbiAgICAvLyBpbW1lZGlhdGVseS5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoXG4gICAgICBpc0lFICYmICFpc0lFOSAmJlxuICAgICAgZWwudGFnTmFtZSA9PT0gJ1RFWFRBUkVBJyAmJlxuICAgICAga2V5ID09PSAncGxhY2Vob2xkZXInICYmIHZhbHVlICE9PSAnJyAmJiAhZWwuX19pZXBoXG4gICAgKSB7XG4gICAgICB2YXIgYmxvY2tlciA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2lucHV0JywgYmxvY2tlcik7XG4gICAgICB9O1xuICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBibG9ja2VyKTtcbiAgICAgIC8vICRmbG93LWRpc2FibGUtbGluZVxuICAgICAgZWwuX19pZXBoID0gdHJ1ZTsgLyogSUUgcGxhY2Vob2xkZXIgcGF0Y2hlZCAqL1xuICAgIH1cbiAgICBlbC5zZXRBdHRyaWJ1dGUoa2V5LCB2YWx1ZSk7XG4gIH1cbn1cblxudmFyIGF0dHJzID0ge1xuICBjcmVhdGU6IHVwZGF0ZUF0dHJzLFxuICB1cGRhdGU6IHVwZGF0ZUF0dHJzXG59O1xuXG4vKiAgKi9cblxuZnVuY3Rpb24gdXBkYXRlQ2xhc3MgKG9sZFZub2RlLCB2bm9kZSkge1xuICB2YXIgZWwgPSB2bm9kZS5lbG07XG4gIHZhciBkYXRhID0gdm5vZGUuZGF0YTtcbiAgdmFyIG9sZERhdGEgPSBvbGRWbm9kZS5kYXRhO1xuICBpZiAoXG4gICAgaXNVbmRlZihkYXRhLnN0YXRpY0NsYXNzKSAmJlxuICAgIGlzVW5kZWYoZGF0YS5jbGFzcykgJiYgKFxuICAgICAgaXNVbmRlZihvbGREYXRhKSB8fCAoXG4gICAgICAgIGlzVW5kZWYob2xkRGF0YS5zdGF0aWNDbGFzcykgJiZcbiAgICAgICAgaXNVbmRlZihvbGREYXRhLmNsYXNzKVxuICAgICAgKVxuICAgIClcbiAgKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICB2YXIgY2xzID0gZ2VuQ2xhc3NGb3JWbm9kZSh2bm9kZSk7XG5cbiAgLy8gaGFuZGxlIHRyYW5zaXRpb24gY2xhc3Nlc1xuICB2YXIgdHJhbnNpdGlvbkNsYXNzID0gZWwuX3RyYW5zaXRpb25DbGFzc2VzO1xuICBpZiAoaXNEZWYodHJhbnNpdGlvbkNsYXNzKSkge1xuICAgIGNscyA9IGNvbmNhdChjbHMsIHN0cmluZ2lmeUNsYXNzKHRyYW5zaXRpb25DbGFzcykpO1xuICB9XG5cbiAgLy8gc2V0IHRoZSBjbGFzc1xuICBpZiAoY2xzICE9PSBlbC5fcHJldkNsYXNzKSB7XG4gICAgZWwuc2V0QXR0cmlidXRlKCdjbGFzcycsIGNscyk7XG4gICAgZWwuX3ByZXZDbGFzcyA9IGNscztcbiAgfVxufVxuXG52YXIga2xhc3MgPSB7XG4gIGNyZWF0ZTogdXBkYXRlQ2xhc3MsXG4gIHVwZGF0ZTogdXBkYXRlQ2xhc3Ncbn07XG5cbi8qICAqL1xuXG4vKiAgKi9cblxuLyogICovXG5cbi8qICAqL1xuXG4vLyBpbiBzb21lIGNhc2VzLCB0aGUgZXZlbnQgdXNlZCBoYXMgdG8gYmUgZGV0ZXJtaW5lZCBhdCBydW50aW1lXG4vLyBzbyB3ZSB1c2VkIHNvbWUgcmVzZXJ2ZWQgdG9rZW5zIGR1cmluZyBjb21waWxlLlxudmFyIFJBTkdFX1RPS0VOID0gJ19fcic7XG52YXIgQ0hFQ0tCT1hfUkFESU9fVE9LRU4gPSAnX19jJztcblxuLyogICovXG5cbi8vIG5vcm1hbGl6ZSB2LW1vZGVsIGV2ZW50IHRva2VucyB0aGF0IGNhbiBvbmx5IGJlIGRldGVybWluZWQgYXQgcnVudGltZS5cbi8vIGl0J3MgaW1wb3J0YW50IHRvIHBsYWNlIHRoZSBldmVudCBhcyB0aGUgZmlyc3QgaW4gdGhlIGFycmF5IGJlY2F1c2Vcbi8vIHRoZSB3aG9sZSBwb2ludCBpcyBlbnN1cmluZyB0aGUgdi1tb2RlbCBjYWxsYmFjayBnZXRzIGNhbGxlZCBiZWZvcmVcbi8vIHVzZXItYXR0YWNoZWQgaGFuZGxlcnMuXG5mdW5jdGlvbiBub3JtYWxpemVFdmVudHMgKG9uKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoaXNEZWYob25bUkFOR0VfVE9LRU5dKSkge1xuICAgIC8vIElFIGlucHV0W3R5cGU9cmFuZ2VdIG9ubHkgc3VwcG9ydHMgYGNoYW5nZWAgZXZlbnRcbiAgICB2YXIgZXZlbnQgPSBpc0lFID8gJ2NoYW5nZScgOiAnaW5wdXQnO1xuICAgIG9uW2V2ZW50XSA9IFtdLmNvbmNhdChvbltSQU5HRV9UT0tFTl0sIG9uW2V2ZW50XSB8fCBbXSk7XG4gICAgZGVsZXRlIG9uW1JBTkdFX1RPS0VOXTtcbiAgfVxuICAvLyBUaGlzIHdhcyBvcmlnaW5hbGx5IGludGVuZGVkIHRvIGZpeCAjNDUyMSBidXQgbm8gbG9uZ2VyIG5lY2Vzc2FyeVxuICAvLyBhZnRlciAyLjUuIEtlZXBpbmcgaXQgZm9yIGJhY2t3YXJkcyBjb21wYXQgd2l0aCBnZW5lcmF0ZWQgY29kZSBmcm9tIDwgMi40XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoaXNEZWYob25bQ0hFQ0tCT1hfUkFESU9fVE9LRU5dKSkge1xuICAgIG9uLmNoYW5nZSA9IFtdLmNvbmNhdChvbltDSEVDS0JPWF9SQURJT19UT0tFTl0sIG9uLmNoYW5nZSB8fCBbXSk7XG4gICAgZGVsZXRlIG9uW0NIRUNLQk9YX1JBRElPX1RPS0VOXTtcbiAgfVxufVxuXG52YXIgdGFyZ2V0JDE7XG5cbmZ1bmN0aW9uIGNyZWF0ZU9uY2VIYW5kbGVyJDEgKGV2ZW50LCBoYW5kbGVyLCBjYXB0dXJlKSB7XG4gIHZhciBfdGFyZ2V0ID0gdGFyZ2V0JDE7IC8vIHNhdmUgY3VycmVudCB0YXJnZXQgZWxlbWVudCBpbiBjbG9zdXJlXG4gIHJldHVybiBmdW5jdGlvbiBvbmNlSGFuZGxlciAoKSB7XG4gICAgdmFyIHJlcyA9IGhhbmRsZXIuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICBpZiAocmVzICE9PSBudWxsKSB7XG4gICAgICByZW1vdmUkMihldmVudCwgb25jZUhhbmRsZXIsIGNhcHR1cmUsIF90YXJnZXQpO1xuICAgIH1cbiAgfVxufVxuXG4vLyAjOTQ0NjogRmlyZWZveCA8PSA1MyAoaW4gcGFydGljdWxhciwgRVNSIDUyKSBoYXMgaW5jb3JyZWN0IEV2ZW50LnRpbWVTdGFtcFxuLy8gaW1wbGVtZW50YXRpb24gYW5kIGRvZXMgbm90IGZpcmUgbWljcm90YXNrcyBpbiBiZXR3ZWVuIGV2ZW50IHByb3BhZ2F0aW9uLCBzb1xuLy8gc2FmZSB0byBleGNsdWRlLlxudmFyIHVzZU1pY3JvdGFza0ZpeCA9IGlzVXNpbmdNaWNyb1Rhc2sgJiYgIShpc0ZGICYmIE51bWJlcihpc0ZGWzFdKSA8PSA1Myk7XG5cbmZ1bmN0aW9uIGFkZCQxIChcbiAgbmFtZSxcbiAgaGFuZGxlcixcbiAgY2FwdHVyZSxcbiAgcGFzc2l2ZVxuKSB7XG4gIC8vIGFzeW5jIGVkZ2UgY2FzZSAjNjU2NjogaW5uZXIgY2xpY2sgZXZlbnQgdHJpZ2dlcnMgcGF0Y2gsIGV2ZW50IGhhbmRsZXJcbiAgLy8gYXR0YWNoZWQgdG8gb3V0ZXIgZWxlbWVudCBkdXJpbmcgcGF0Y2gsIGFuZCB0cmlnZ2VyZWQgYWdhaW4uIFRoaXNcbiAgLy8gaGFwcGVucyBiZWNhdXNlIGJyb3dzZXJzIGZpcmUgbWljcm90YXNrIHRpY2tzIGJldHdlZW4gZXZlbnQgcHJvcGFnYXRpb24uXG4gIC8vIHRoZSBzb2x1dGlvbiBpcyBzaW1wbGU6IHdlIHNhdmUgdGhlIHRpbWVzdGFtcCB3aGVuIGEgaGFuZGxlciBpcyBhdHRhY2hlZCxcbiAgLy8gYW5kIHRoZSBoYW5kbGVyIHdvdWxkIG9ubHkgZmlyZSBpZiB0aGUgZXZlbnQgcGFzc2VkIHRvIGl0IHdhcyBmaXJlZFxuICAvLyBBRlRFUiBpdCB3YXMgYXR0YWNoZWQuXG4gIGlmICh1c2VNaWNyb3Rhc2tGaXgpIHtcbiAgICB2YXIgYXR0YWNoZWRUaW1lc3RhbXAgPSBjdXJyZW50Rmx1c2hUaW1lc3RhbXA7XG4gICAgdmFyIG9yaWdpbmFsID0gaGFuZGxlcjtcbiAgICBoYW5kbGVyID0gb3JpZ2luYWwuX3dyYXBwZXIgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgaWYgKFxuICAgICAgICAvLyBubyBidWJibGluZywgc2hvdWxkIGFsd2F5cyBmaXJlLlxuICAgICAgICAvLyB0aGlzIGlzIGp1c3QgYSBzYWZldHkgbmV0IGluIGNhc2UgZXZlbnQudGltZVN0YW1wIGlzIHVucmVsaWFibGUgaW5cbiAgICAgICAgLy8gY2VydGFpbiB3ZWlyZCBlbnZpcm9ubWVudHMuLi5cbiAgICAgICAgZS50YXJnZXQgPT09IGUuY3VycmVudFRhcmdldCB8fFxuICAgICAgICAvLyBldmVudCBpcyBmaXJlZCBhZnRlciBoYW5kbGVyIGF0dGFjaG1lbnRcbiAgICAgICAgZS50aW1lU3RhbXAgPj0gYXR0YWNoZWRUaW1lc3RhbXAgfHxcbiAgICAgICAgLy8gYmFpbCBmb3IgZW52aXJvbm1lbnRzIHRoYXQgaGF2ZSBidWdneSBldmVudC50aW1lU3RhbXAgaW1wbGVtZW50YXRpb25zXG4gICAgICAgIC8vICM5NDYyIGlPUyA5IGJ1ZzogZXZlbnQudGltZVN0YW1wIGlzIDAgYWZ0ZXIgaGlzdG9yeS5wdXNoU3RhdGVcbiAgICAgICAgLy8gIzk2ODEgUXRXZWJFbmdpbmUgZXZlbnQudGltZVN0YW1wIGlzIG5lZ2F0aXZlIHZhbHVlXG4gICAgICAgIGUudGltZVN0YW1wIDw9IDAgfHxcbiAgICAgICAgLy8gIzk0NDggYmFpbCBpZiBldmVudCBpcyBmaXJlZCBpbiBhbm90aGVyIGRvY3VtZW50IGluIGEgbXVsdGktcGFnZVxuICAgICAgICAvLyBlbGVjdHJvbi9udy5qcyBhcHAsIHNpbmNlIGV2ZW50LnRpbWVTdGFtcCB3aWxsIGJlIHVzaW5nIGEgZGlmZmVyZW50XG4gICAgICAgIC8vIHN0YXJ0aW5nIHJlZmVyZW5jZVxuICAgICAgICBlLnRhcmdldC5vd25lckRvY3VtZW50ICE9PSBkb2N1bWVudFxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBvcmlnaW5hbC5hcHBseSh0aGlzLCBhcmd1bWVudHMpXG4gICAgICB9XG4gICAgfTtcbiAgfVxuICB0YXJnZXQkMS5hZGRFdmVudExpc3RlbmVyKFxuICAgIG5hbWUsXG4gICAgaGFuZGxlcixcbiAgICBzdXBwb3J0c1Bhc3NpdmVcbiAgICAgID8geyBjYXB0dXJlOiBjYXB0dXJlLCBwYXNzaXZlOiBwYXNzaXZlIH1cbiAgICAgIDogY2FwdHVyZVxuICApO1xufVxuXG5mdW5jdGlvbiByZW1vdmUkMiAoXG4gIG5hbWUsXG4gIGhhbmRsZXIsXG4gIGNhcHR1cmUsXG4gIF90YXJnZXRcbikge1xuICAoX3RhcmdldCB8fCB0YXJnZXQkMSkucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICBuYW1lLFxuICAgIGhhbmRsZXIuX3dyYXBwZXIgfHwgaGFuZGxlcixcbiAgICBjYXB0dXJlXG4gICk7XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZURPTUxpc3RlbmVycyAob2xkVm5vZGUsIHZub2RlKSB7XG4gIGlmIChpc1VuZGVmKG9sZFZub2RlLmRhdGEub24pICYmIGlzVW5kZWYodm5vZGUuZGF0YS5vbikpIHtcbiAgICByZXR1cm5cbiAgfVxuICB2YXIgb24gPSB2bm9kZS5kYXRhLm9uIHx8IHt9O1xuICB2YXIgb2xkT24gPSBvbGRWbm9kZS5kYXRhLm9uIHx8IHt9O1xuICB0YXJnZXQkMSA9IHZub2RlLmVsbTtcbiAgbm9ybWFsaXplRXZlbnRzKG9uKTtcbiAgdXBkYXRlTGlzdGVuZXJzKG9uLCBvbGRPbiwgYWRkJDEsIHJlbW92ZSQyLCBjcmVhdGVPbmNlSGFuZGxlciQxLCB2bm9kZS5jb250ZXh0KTtcbiAgdGFyZ2V0JDEgPSB1bmRlZmluZWQ7XG59XG5cbnZhciBldmVudHMgPSB7XG4gIGNyZWF0ZTogdXBkYXRlRE9NTGlzdGVuZXJzLFxuICB1cGRhdGU6IHVwZGF0ZURPTUxpc3RlbmVyc1xufTtcblxuLyogICovXG5cbnZhciBzdmdDb250YWluZXI7XG5cbmZ1bmN0aW9uIHVwZGF0ZURPTVByb3BzIChvbGRWbm9kZSwgdm5vZGUpIHtcbiAgaWYgKGlzVW5kZWYob2xkVm5vZGUuZGF0YS5kb21Qcm9wcykgJiYgaXNVbmRlZih2bm9kZS5kYXRhLmRvbVByb3BzKSkge1xuICAgIHJldHVyblxuICB9XG4gIHZhciBrZXksIGN1cjtcbiAgdmFyIGVsbSA9IHZub2RlLmVsbTtcbiAgdmFyIG9sZFByb3BzID0gb2xkVm5vZGUuZGF0YS5kb21Qcm9wcyB8fCB7fTtcbiAgdmFyIHByb3BzID0gdm5vZGUuZGF0YS5kb21Qcm9wcyB8fCB7fTtcbiAgLy8gY2xvbmUgb2JzZXJ2ZWQgb2JqZWN0cywgYXMgdGhlIHVzZXIgcHJvYmFibHkgd2FudHMgdG8gbXV0YXRlIGl0XG4gIGlmIChpc0RlZihwcm9wcy5fX29iX18pKSB7XG4gICAgcHJvcHMgPSB2bm9kZS5kYXRhLmRvbVByb3BzID0gZXh0ZW5kKHt9LCBwcm9wcyk7XG4gIH1cblxuICBmb3IgKGtleSBpbiBvbGRQcm9wcykge1xuICAgIGlmICghKGtleSBpbiBwcm9wcykpIHtcbiAgICAgIGVsbVtrZXldID0gJyc7XG4gICAgfVxuICB9XG5cbiAgZm9yIChrZXkgaW4gcHJvcHMpIHtcbiAgICBjdXIgPSBwcm9wc1trZXldO1xuICAgIC8vIGlnbm9yZSBjaGlsZHJlbiBpZiB0aGUgbm9kZSBoYXMgdGV4dENvbnRlbnQgb3IgaW5uZXJIVE1MLFxuICAgIC8vIGFzIHRoZXNlIHdpbGwgdGhyb3cgYXdheSBleGlzdGluZyBET00gbm9kZXMgYW5kIGNhdXNlIHJlbW92YWwgZXJyb3JzXG4gICAgLy8gb24gc3Vic2VxdWVudCBwYXRjaGVzICgjMzM2MClcbiAgICBpZiAoa2V5ID09PSAndGV4dENvbnRlbnQnIHx8IGtleSA9PT0gJ2lubmVySFRNTCcpIHtcbiAgICAgIGlmICh2bm9kZS5jaGlsZHJlbikgeyB2bm9kZS5jaGlsZHJlbi5sZW5ndGggPSAwOyB9XG4gICAgICBpZiAoY3VyID09PSBvbGRQcm9wc1trZXldKSB7IGNvbnRpbnVlIH1cbiAgICAgIC8vICM2NjAxIHdvcmsgYXJvdW5kIENocm9tZSB2ZXJzaW9uIDw9IDU1IGJ1ZyB3aGVyZSBzaW5nbGUgdGV4dE5vZGVcbiAgICAgIC8vIHJlcGxhY2VkIGJ5IGlubmVySFRNTC90ZXh0Q29udGVudCByZXRhaW5zIGl0cyBwYXJlbnROb2RlIHByb3BlcnR5XG4gICAgICBpZiAoZWxtLmNoaWxkTm9kZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIGVsbS5yZW1vdmVDaGlsZChlbG0uY2hpbGROb2Rlc1swXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGtleSA9PT0gJ3ZhbHVlJyAmJiBlbG0udGFnTmFtZSAhPT0gJ1BST0dSRVNTJykge1xuICAgICAgLy8gc3RvcmUgdmFsdWUgYXMgX3ZhbHVlIGFzIHdlbGwgc2luY2VcbiAgICAgIC8vIG5vbi1zdHJpbmcgdmFsdWVzIHdpbGwgYmUgc3RyaW5naWZpZWRcbiAgICAgIGVsbS5fdmFsdWUgPSBjdXI7XG4gICAgICAvLyBhdm9pZCByZXNldHRpbmcgY3Vyc29yIHBvc2l0aW9uIHdoZW4gdmFsdWUgaXMgdGhlIHNhbWVcbiAgICAgIHZhciBzdHJDdXIgPSBpc1VuZGVmKGN1cikgPyAnJyA6IFN0cmluZyhjdXIpO1xuICAgICAgaWYgKHNob3VsZFVwZGF0ZVZhbHVlKGVsbSwgc3RyQ3VyKSkge1xuICAgICAgICBlbG0udmFsdWUgPSBzdHJDdXI7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdpbm5lckhUTUwnICYmIGlzU1ZHKGVsbS50YWdOYW1lKSAmJiBpc1VuZGVmKGVsbS5pbm5lckhUTUwpKSB7XG4gICAgICAvLyBJRSBkb2Vzbid0IHN1cHBvcnQgaW5uZXJIVE1MIGZvciBTVkcgZWxlbWVudHNcbiAgICAgIHN2Z0NvbnRhaW5lciA9IHN2Z0NvbnRhaW5lciB8fCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHN2Z0NvbnRhaW5lci5pbm5lckhUTUwgPSBcIjxzdmc+XCIgKyBjdXIgKyBcIjwvc3ZnPlwiO1xuICAgICAgdmFyIHN2ZyA9IHN2Z0NvbnRhaW5lci5maXJzdENoaWxkO1xuICAgICAgd2hpbGUgKGVsbS5maXJzdENoaWxkKSB7XG4gICAgICAgIGVsbS5yZW1vdmVDaGlsZChlbG0uZmlyc3RDaGlsZCk7XG4gICAgICB9XG4gICAgICB3aGlsZSAoc3ZnLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgZWxtLmFwcGVuZENoaWxkKHN2Zy5maXJzdENoaWxkKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKFxuICAgICAgLy8gc2tpcCB0aGUgdXBkYXRlIGlmIG9sZCBhbmQgbmV3IFZET00gc3RhdGUgaXMgdGhlIHNhbWUuXG4gICAgICAvLyBgdmFsdWVgIGlzIGhhbmRsZWQgc2VwYXJhdGVseSBiZWNhdXNlIHRoZSBET00gdmFsdWUgbWF5IGJlIHRlbXBvcmFyaWx5XG4gICAgICAvLyBvdXQgb2Ygc3luYyB3aXRoIFZET00gc3RhdGUgZHVlIHRvIGZvY3VzLCBjb21wb3NpdGlvbiBhbmQgbW9kaWZpZXJzLlxuICAgICAgLy8gVGhpcyAgIzQ1MjEgYnkgc2tpcHBpbmcgdGhlIHVubmVjZXNzYXJ5IGBjaGVja2VkYCB1cGRhdGUuXG4gICAgICBjdXIgIT09IG9sZFByb3BzW2tleV1cbiAgICApIHtcbiAgICAgIC8vIHNvbWUgcHJvcGVydHkgdXBkYXRlcyBjYW4gdGhyb3dcbiAgICAgIC8vIGUuZy4gYHZhbHVlYCBvbiA8cHJvZ3Jlc3M+IHcvIG5vbi1maW5pdGUgdmFsdWVcbiAgICAgIHRyeSB7XG4gICAgICAgIGVsbVtrZXldID0gY3VyO1xuICAgICAgfSBjYXRjaCAoZSkge31cbiAgICB9XG4gIH1cbn1cblxuLy8gY2hlY2sgcGxhdGZvcm1zL3dlYi91dGlsL2F0dHJzLmpzIGFjY2VwdFZhbHVlXG5cblxuZnVuY3Rpb24gc2hvdWxkVXBkYXRlVmFsdWUgKGVsbSwgY2hlY2tWYWwpIHtcbiAgcmV0dXJuICghZWxtLmNvbXBvc2luZyAmJiAoXG4gICAgZWxtLnRhZ05hbWUgPT09ICdPUFRJT04nIHx8XG4gICAgaXNOb3RJbkZvY3VzQW5kRGlydHkoZWxtLCBjaGVja1ZhbCkgfHxcbiAgICBpc0RpcnR5V2l0aE1vZGlmaWVycyhlbG0sIGNoZWNrVmFsKVxuICApKVxufVxuXG5mdW5jdGlvbiBpc05vdEluRm9jdXNBbmREaXJ0eSAoZWxtLCBjaGVja1ZhbCkge1xuICAvLyByZXR1cm4gdHJ1ZSB3aGVuIHRleHRib3ggKC5udW1iZXIgYW5kIC50cmltKSBsb3NlcyBmb2N1cyBhbmQgaXRzIHZhbHVlIGlzXG4gIC8vIG5vdCBlcXVhbCB0byB0aGUgdXBkYXRlZCB2YWx1ZVxuICB2YXIgbm90SW5Gb2N1cyA9IHRydWU7XG4gIC8vICM2MTU3XG4gIC8vIHdvcmsgYXJvdW5kIElFIGJ1ZyB3aGVuIGFjY2Vzc2luZyBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGluIGFuIGlmcmFtZVxuICB0cnkgeyBub3RJbkZvY3VzID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAhPT0gZWxtOyB9IGNhdGNoIChlKSB7fVxuICByZXR1cm4gbm90SW5Gb2N1cyAmJiBlbG0udmFsdWUgIT09IGNoZWNrVmFsXG59XG5cbmZ1bmN0aW9uIGlzRGlydHlXaXRoTW9kaWZpZXJzIChlbG0sIG5ld1ZhbCkge1xuICB2YXIgdmFsdWUgPSBlbG0udmFsdWU7XG4gIHZhciBtb2RpZmllcnMgPSBlbG0uX3ZNb2RpZmllcnM7IC8vIGluamVjdGVkIGJ5IHYtbW9kZWwgcnVudGltZVxuICBpZiAoaXNEZWYobW9kaWZpZXJzKSkge1xuICAgIGlmIChtb2RpZmllcnMubnVtYmVyKSB7XG4gICAgICByZXR1cm4gdG9OdW1iZXIodmFsdWUpICE9PSB0b051bWJlcihuZXdWYWwpXG4gICAgfVxuICAgIGlmIChtb2RpZmllcnMudHJpbSkge1xuICAgICAgcmV0dXJuIHZhbHVlLnRyaW0oKSAhPT0gbmV3VmFsLnRyaW0oKVxuICAgIH1cbiAgfVxuICByZXR1cm4gdmFsdWUgIT09IG5ld1ZhbFxufVxuXG52YXIgZG9tUHJvcHMgPSB7XG4gIGNyZWF0ZTogdXBkYXRlRE9NUHJvcHMsXG4gIHVwZGF0ZTogdXBkYXRlRE9NUHJvcHNcbn07XG5cbi8qICAqL1xuXG52YXIgcGFyc2VTdHlsZVRleHQgPSBjYWNoZWQoZnVuY3Rpb24gKGNzc1RleHQpIHtcbiAgdmFyIHJlcyA9IHt9O1xuICB2YXIgbGlzdERlbGltaXRlciA9IC87KD8hW14oXSpcXCkpL2c7XG4gIHZhciBwcm9wZXJ0eURlbGltaXRlciA9IC86KC4rKS87XG4gIGNzc1RleHQuc3BsaXQobGlzdERlbGltaXRlcikuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkge1xuICAgIGlmIChpdGVtKSB7XG4gICAgICB2YXIgdG1wID0gaXRlbS5zcGxpdChwcm9wZXJ0eURlbGltaXRlcik7XG4gICAgICB0bXAubGVuZ3RoID4gMSAmJiAocmVzW3RtcFswXS50cmltKCldID0gdG1wWzFdLnRyaW0oKSk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHJlc1xufSk7XG5cbi8vIG1lcmdlIHN0YXRpYyBhbmQgZHluYW1pYyBzdHlsZSBkYXRhIG9uIHRoZSBzYW1lIHZub2RlXG5mdW5jdGlvbiBub3JtYWxpemVTdHlsZURhdGEgKGRhdGEpIHtcbiAgdmFyIHN0eWxlID0gbm9ybWFsaXplU3R5bGVCaW5kaW5nKGRhdGEuc3R5bGUpO1xuICAvLyBzdGF0aWMgc3R5bGUgaXMgcHJlLXByb2Nlc3NlZCBpbnRvIGFuIG9iamVjdCBkdXJpbmcgY29tcGlsYXRpb25cbiAgLy8gYW5kIGlzIGFsd2F5cyBhIGZyZXNoIG9iamVjdCwgc28gaXQncyBzYWZlIHRvIG1lcmdlIGludG8gaXRcbiAgcmV0dXJuIGRhdGEuc3RhdGljU3R5bGVcbiAgICA/IGV4dGVuZChkYXRhLnN0YXRpY1N0eWxlLCBzdHlsZSlcbiAgICA6IHN0eWxlXG59XG5cbi8vIG5vcm1hbGl6ZSBwb3NzaWJsZSBhcnJheSAvIHN0cmluZyB2YWx1ZXMgaW50byBPYmplY3RcbmZ1bmN0aW9uIG5vcm1hbGl6ZVN0eWxlQmluZGluZyAoYmluZGluZ1N0eWxlKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGJpbmRpbmdTdHlsZSkpIHtcbiAgICByZXR1cm4gdG9PYmplY3QoYmluZGluZ1N0eWxlKVxuICB9XG4gIGlmICh0eXBlb2YgYmluZGluZ1N0eWxlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwYXJzZVN0eWxlVGV4dChiaW5kaW5nU3R5bGUpXG4gIH1cbiAgcmV0dXJuIGJpbmRpbmdTdHlsZVxufVxuXG4vKipcbiAqIHBhcmVudCBjb21wb25lbnQgc3R5bGUgc2hvdWxkIGJlIGFmdGVyIGNoaWxkJ3NcbiAqIHNvIHRoYXQgcGFyZW50IGNvbXBvbmVudCdzIHN0eWxlIGNvdWxkIG92ZXJyaWRlIGl0XG4gKi9cbmZ1bmN0aW9uIGdldFN0eWxlICh2bm9kZSwgY2hlY2tDaGlsZCkge1xuICB2YXIgcmVzID0ge307XG4gIHZhciBzdHlsZURhdGE7XG5cbiAgaWYgKGNoZWNrQ2hpbGQpIHtcbiAgICB2YXIgY2hpbGROb2RlID0gdm5vZGU7XG4gICAgd2hpbGUgKGNoaWxkTm9kZS5jb21wb25lbnRJbnN0YW5jZSkge1xuICAgICAgY2hpbGROb2RlID0gY2hpbGROb2RlLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZTtcbiAgICAgIGlmIChcbiAgICAgICAgY2hpbGROb2RlICYmIGNoaWxkTm9kZS5kYXRhICYmXG4gICAgICAgIChzdHlsZURhdGEgPSBub3JtYWxpemVTdHlsZURhdGEoY2hpbGROb2RlLmRhdGEpKVxuICAgICAgKSB7XG4gICAgICAgIGV4dGVuZChyZXMsIHN0eWxlRGF0YSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKChzdHlsZURhdGEgPSBub3JtYWxpemVTdHlsZURhdGEodm5vZGUuZGF0YSkpKSB7XG4gICAgZXh0ZW5kKHJlcywgc3R5bGVEYXRhKTtcbiAgfVxuXG4gIHZhciBwYXJlbnROb2RlID0gdm5vZGU7XG4gIHdoaWxlICgocGFyZW50Tm9kZSA9IHBhcmVudE5vZGUucGFyZW50KSkge1xuICAgIGlmIChwYXJlbnROb2RlLmRhdGEgJiYgKHN0eWxlRGF0YSA9IG5vcm1hbGl6ZVN0eWxlRGF0YShwYXJlbnROb2RlLmRhdGEpKSkge1xuICAgICAgZXh0ZW5kKHJlcywgc3R5bGVEYXRhKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG4vKiAgKi9cblxudmFyIGNzc1ZhclJFID0gL14tLS87XG52YXIgaW1wb3J0YW50UkUgPSAvXFxzKiFpbXBvcnRhbnQkLztcbnZhciBzZXRQcm9wID0gZnVuY3Rpb24gKGVsLCBuYW1lLCB2YWwpIHtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChjc3NWYXJSRS50ZXN0KG5hbWUpKSB7XG4gICAgZWwuc3R5bGUuc2V0UHJvcGVydHkobmFtZSwgdmFsKTtcbiAgfSBlbHNlIGlmIChpbXBvcnRhbnRSRS50ZXN0KHZhbCkpIHtcbiAgICBlbC5zdHlsZS5zZXRQcm9wZXJ0eShoeXBoZW5hdGUobmFtZSksIHZhbC5yZXBsYWNlKGltcG9ydGFudFJFLCAnJyksICdpbXBvcnRhbnQnKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemUobmFtZSk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgLy8gU3VwcG9ydCB2YWx1ZXMgYXJyYXkgY3JlYXRlZCBieSBhdXRvcHJlZml4ZXIsIGUuZy5cbiAgICAgIC8vIHtkaXNwbGF5OiBbXCItd2Via2l0LWJveFwiLCBcIi1tcy1mbGV4Ym94XCIsIFwiZmxleFwiXX1cbiAgICAgIC8vIFNldCB0aGVtIG9uZSBieSBvbmUsIGFuZCB0aGUgYnJvd3NlciB3aWxsIG9ubHkgc2V0IHRob3NlIGl0IGNhbiByZWNvZ25pemVcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSB2YWwubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgZWwuc3R5bGVbbm9ybWFsaXplZE5hbWVdID0gdmFsW2ldO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBlbC5zdHlsZVtub3JtYWxpemVkTmFtZV0gPSB2YWw7XG4gICAgfVxuICB9XG59O1xuXG52YXIgdmVuZG9yTmFtZXMgPSBbJ1dlYmtpdCcsICdNb3onLCAnbXMnXTtcblxudmFyIGVtcHR5U3R5bGU7XG52YXIgbm9ybWFsaXplID0gY2FjaGVkKGZ1bmN0aW9uIChwcm9wKSB7XG4gIGVtcHR5U3R5bGUgPSBlbXB0eVN0eWxlIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLnN0eWxlO1xuICBwcm9wID0gY2FtZWxpemUocHJvcCk7XG4gIGlmIChwcm9wICE9PSAnZmlsdGVyJyAmJiAocHJvcCBpbiBlbXB0eVN0eWxlKSkge1xuICAgIHJldHVybiBwcm9wXG4gIH1cbiAgdmFyIGNhcE5hbWUgPSBwcm9wLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcHJvcC5zbGljZSgxKTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB2ZW5kb3JOYW1lcy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBuYW1lID0gdmVuZG9yTmFtZXNbaV0gKyBjYXBOYW1lO1xuICAgIGlmIChuYW1lIGluIGVtcHR5U3R5bGUpIHtcbiAgICAgIHJldHVybiBuYW1lXG4gICAgfVxuICB9XG59KTtcblxuZnVuY3Rpb24gdXBkYXRlU3R5bGUgKG9sZFZub2RlLCB2bm9kZSkge1xuICB2YXIgZGF0YSA9IHZub2RlLmRhdGE7XG4gIHZhciBvbGREYXRhID0gb2xkVm5vZGUuZGF0YTtcblxuICBpZiAoaXNVbmRlZihkYXRhLnN0YXRpY1N0eWxlKSAmJiBpc1VuZGVmKGRhdGEuc3R5bGUpICYmXG4gICAgaXNVbmRlZihvbGREYXRhLnN0YXRpY1N0eWxlKSAmJiBpc1VuZGVmKG9sZERhdGEuc3R5bGUpXG4gICkge1xuICAgIHJldHVyblxuICB9XG5cbiAgdmFyIGN1ciwgbmFtZTtcbiAgdmFyIGVsID0gdm5vZGUuZWxtO1xuICB2YXIgb2xkU3RhdGljU3R5bGUgPSBvbGREYXRhLnN0YXRpY1N0eWxlO1xuICB2YXIgb2xkU3R5bGVCaW5kaW5nID0gb2xkRGF0YS5ub3JtYWxpemVkU3R5bGUgfHwgb2xkRGF0YS5zdHlsZSB8fCB7fTtcblxuICAvLyBpZiBzdGF0aWMgc3R5bGUgZXhpc3RzLCBzdHlsZWJpbmRpbmcgYWxyZWFkeSBtZXJnZWQgaW50byBpdCB3aGVuIGRvaW5nIG5vcm1hbGl6ZVN0eWxlRGF0YVxuICB2YXIgb2xkU3R5bGUgPSBvbGRTdGF0aWNTdHlsZSB8fCBvbGRTdHlsZUJpbmRpbmc7XG5cbiAgdmFyIHN0eWxlID0gbm9ybWFsaXplU3R5bGVCaW5kaW5nKHZub2RlLmRhdGEuc3R5bGUpIHx8IHt9O1xuXG4gIC8vIHN0b3JlIG5vcm1hbGl6ZWQgc3R5bGUgdW5kZXIgYSBkaWZmZXJlbnQga2V5IGZvciBuZXh0IGRpZmZcbiAgLy8gbWFrZSBzdXJlIHRvIGNsb25lIGl0IGlmIGl0J3MgcmVhY3RpdmUsIHNpbmNlIHRoZSB1c2VyIGxpa2VseSB3YW50c1xuICAvLyB0byBtdXRhdGUgaXQuXG4gIHZub2RlLmRhdGEubm9ybWFsaXplZFN0eWxlID0gaXNEZWYoc3R5bGUuX19vYl9fKVxuICAgID8gZXh0ZW5kKHt9LCBzdHlsZSlcbiAgICA6IHN0eWxlO1xuXG4gIHZhciBuZXdTdHlsZSA9IGdldFN0eWxlKHZub2RlLCB0cnVlKTtcblxuICBmb3IgKG5hbWUgaW4gb2xkU3R5bGUpIHtcbiAgICBpZiAoaXNVbmRlZihuZXdTdHlsZVtuYW1lXSkpIHtcbiAgICAgIHNldFByb3AoZWwsIG5hbWUsICcnKTtcbiAgICB9XG4gIH1cbiAgZm9yIChuYW1lIGluIG5ld1N0eWxlKSB7XG4gICAgY3VyID0gbmV3U3R5bGVbbmFtZV07XG4gICAgaWYgKGN1ciAhPT0gb2xkU3R5bGVbbmFtZV0pIHtcbiAgICAgIC8vIGllOSBzZXR0aW5nIHRvIG51bGwgaGFzIG5vIGVmZmVjdCwgbXVzdCB1c2UgZW1wdHkgc3RyaW5nXG4gICAgICBzZXRQcm9wKGVsLCBuYW1lLCBjdXIgPT0gbnVsbCA/ICcnIDogY3VyKTtcbiAgICB9XG4gIH1cbn1cblxudmFyIHN0eWxlID0ge1xuICBjcmVhdGU6IHVwZGF0ZVN0eWxlLFxuICB1cGRhdGU6IHVwZGF0ZVN0eWxlXG59O1xuXG4vKiAgKi9cblxudmFyIHdoaXRlc3BhY2VSRSA9IC9cXHMrLztcblxuLyoqXG4gKiBBZGQgY2xhc3Mgd2l0aCBjb21wYXRpYmlsaXR5IGZvciBTVkcgc2luY2UgY2xhc3NMaXN0IGlzIG5vdCBzdXBwb3J0ZWQgb25cbiAqIFNWRyBlbGVtZW50cyBpbiBJRVxuICovXG5mdW5jdGlvbiBhZGRDbGFzcyAoZWwsIGNscykge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKCFjbHMgfHwgIShjbHMgPSBjbHMudHJpbSgpKSkge1xuICAgIHJldHVyblxuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKGVsLmNsYXNzTGlzdCkge1xuICAgIGlmIChjbHMuaW5kZXhPZignICcpID4gLTEpIHtcbiAgICAgIGNscy5zcGxpdCh3aGl0ZXNwYWNlUkUpLmZvckVhY2goZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGVsLmNsYXNzTGlzdC5hZGQoYyk7IH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbC5jbGFzc0xpc3QuYWRkKGNscyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHZhciBjdXIgPSBcIiBcIiArIChlbC5nZXRBdHRyaWJ1dGUoJ2NsYXNzJykgfHwgJycpICsgXCIgXCI7XG4gICAgaWYgKGN1ci5pbmRleE9mKCcgJyArIGNscyArICcgJykgPCAwKSB7XG4gICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgKGN1ciArIGNscykudHJpbSgpKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBSZW1vdmUgY2xhc3Mgd2l0aCBjb21wYXRpYmlsaXR5IGZvciBTVkcgc2luY2UgY2xhc3NMaXN0IGlzIG5vdCBzdXBwb3J0ZWQgb25cbiAqIFNWRyBlbGVtZW50cyBpbiBJRVxuICovXG5mdW5jdGlvbiByZW1vdmVDbGFzcyAoZWwsIGNscykge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKCFjbHMgfHwgIShjbHMgPSBjbHMudHJpbSgpKSkge1xuICAgIHJldHVyblxuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKGVsLmNsYXNzTGlzdCkge1xuICAgIGlmIChjbHMuaW5kZXhPZignICcpID4gLTEpIHtcbiAgICAgIGNscy5zcGxpdCh3aGl0ZXNwYWNlUkUpLmZvckVhY2goZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGVsLmNsYXNzTGlzdC5yZW1vdmUoYyk7IH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbC5jbGFzc0xpc3QucmVtb3ZlKGNscyk7XG4gICAgfVxuICAgIGlmICghZWwuY2xhc3NMaXN0Lmxlbmd0aCkge1xuICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKCdjbGFzcycpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgY3VyID0gXCIgXCIgKyAoZWwuZ2V0QXR0cmlidXRlKCdjbGFzcycpIHx8ICcnKSArIFwiIFwiO1xuICAgIHZhciB0YXIgPSAnICcgKyBjbHMgKyAnICc7XG4gICAgd2hpbGUgKGN1ci5pbmRleE9mKHRhcikgPj0gMCkge1xuICAgICAgY3VyID0gY3VyLnJlcGxhY2UodGFyLCAnICcpO1xuICAgIH1cbiAgICBjdXIgPSBjdXIudHJpbSgpO1xuICAgIGlmIChjdXIpIHtcbiAgICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCBjdXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoJ2NsYXNzJyk7XG4gICAgfVxuICB9XG59XG5cbi8qICAqL1xuXG5mdW5jdGlvbiByZXNvbHZlVHJhbnNpdGlvbiAoZGVmJCQxKSB7XG4gIGlmICghZGVmJCQxKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgaWYgKHR5cGVvZiBkZWYkJDEgPT09ICdvYmplY3QnKSB7XG4gICAgdmFyIHJlcyA9IHt9O1xuICAgIGlmIChkZWYkJDEuY3NzICE9PSBmYWxzZSkge1xuICAgICAgZXh0ZW5kKHJlcywgYXV0b0Nzc1RyYW5zaXRpb24oZGVmJCQxLm5hbWUgfHwgJ3YnKSk7XG4gICAgfVxuICAgIGV4dGVuZChyZXMsIGRlZiQkMSk7XG4gICAgcmV0dXJuIHJlc1xuICB9IGVsc2UgaWYgKHR5cGVvZiBkZWYkJDEgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGF1dG9Dc3NUcmFuc2l0aW9uKGRlZiQkMSlcbiAgfVxufVxuXG52YXIgYXV0b0Nzc1RyYW5zaXRpb24gPSBjYWNoZWQoZnVuY3Rpb24gKG5hbWUpIHtcbiAgcmV0dXJuIHtcbiAgICBlbnRlckNsYXNzOiAobmFtZSArIFwiLWVudGVyXCIpLFxuICAgIGVudGVyVG9DbGFzczogKG5hbWUgKyBcIi1lbnRlci10b1wiKSxcbiAgICBlbnRlckFjdGl2ZUNsYXNzOiAobmFtZSArIFwiLWVudGVyLWFjdGl2ZVwiKSxcbiAgICBsZWF2ZUNsYXNzOiAobmFtZSArIFwiLWxlYXZlXCIpLFxuICAgIGxlYXZlVG9DbGFzczogKG5hbWUgKyBcIi1sZWF2ZS10b1wiKSxcbiAgICBsZWF2ZUFjdGl2ZUNsYXNzOiAobmFtZSArIFwiLWxlYXZlLWFjdGl2ZVwiKVxuICB9XG59KTtcblxudmFyIGhhc1RyYW5zaXRpb24gPSBpbkJyb3dzZXIgJiYgIWlzSUU5O1xudmFyIFRSQU5TSVRJT04gPSAndHJhbnNpdGlvbic7XG52YXIgQU5JTUFUSU9OID0gJ2FuaW1hdGlvbic7XG5cbi8vIFRyYW5zaXRpb24gcHJvcGVydHkvZXZlbnQgc25pZmZpbmdcbnZhciB0cmFuc2l0aW9uUHJvcCA9ICd0cmFuc2l0aW9uJztcbnZhciB0cmFuc2l0aW9uRW5kRXZlbnQgPSAndHJhbnNpdGlvbmVuZCc7XG52YXIgYW5pbWF0aW9uUHJvcCA9ICdhbmltYXRpb24nO1xudmFyIGFuaW1hdGlvbkVuZEV2ZW50ID0gJ2FuaW1hdGlvbmVuZCc7XG5pZiAoaGFzVHJhbnNpdGlvbikge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKHdpbmRvdy5vbnRyYW5zaXRpb25lbmQgPT09IHVuZGVmaW5lZCAmJlxuICAgIHdpbmRvdy5vbndlYmtpdHRyYW5zaXRpb25lbmQgIT09IHVuZGVmaW5lZFxuICApIHtcbiAgICB0cmFuc2l0aW9uUHJvcCA9ICdXZWJraXRUcmFuc2l0aW9uJztcbiAgICB0cmFuc2l0aW9uRW5kRXZlbnQgPSAnd2Via2l0VHJhbnNpdGlvbkVuZCc7XG4gIH1cbiAgaWYgKHdpbmRvdy5vbmFuaW1hdGlvbmVuZCA9PT0gdW5kZWZpbmVkICYmXG4gICAgd2luZG93Lm9ud2Via2l0YW5pbWF0aW9uZW5kICE9PSB1bmRlZmluZWRcbiAgKSB7XG4gICAgYW5pbWF0aW9uUHJvcCA9ICdXZWJraXRBbmltYXRpb24nO1xuICAgIGFuaW1hdGlvbkVuZEV2ZW50ID0gJ3dlYmtpdEFuaW1hdGlvbkVuZCc7XG4gIH1cbn1cblxuLy8gYmluZGluZyB0byB3aW5kb3cgaXMgbmVjZXNzYXJ5IHRvIG1ha2UgaG90IHJlbG9hZCB3b3JrIGluIElFIGluIHN0cmljdCBtb2RlXG52YXIgcmFmID0gaW5Ccm93c2VyXG4gID8gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZVxuICAgID8gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdylcbiAgICA6IHNldFRpbWVvdXRcbiAgOiAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBmdW5jdGlvbiAoZm4pIHsgcmV0dXJuIGZuKCk7IH07XG5cbmZ1bmN0aW9uIG5leHRGcmFtZSAoZm4pIHtcbiAgcmFmKGZ1bmN0aW9uICgpIHtcbiAgICByYWYoZm4pO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gYWRkVHJhbnNpdGlvbkNsYXNzIChlbCwgY2xzKSB7XG4gIHZhciB0cmFuc2l0aW9uQ2xhc3NlcyA9IGVsLl90cmFuc2l0aW9uQ2xhc3NlcyB8fCAoZWwuX3RyYW5zaXRpb25DbGFzc2VzID0gW10pO1xuICBpZiAodHJhbnNpdGlvbkNsYXNzZXMuaW5kZXhPZihjbHMpIDwgMCkge1xuICAgIHRyYW5zaXRpb25DbGFzc2VzLnB1c2goY2xzKTtcbiAgICBhZGRDbGFzcyhlbCwgY2xzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZW1vdmVUcmFuc2l0aW9uQ2xhc3MgKGVsLCBjbHMpIHtcbiAgaWYgKGVsLl90cmFuc2l0aW9uQ2xhc3Nlcykge1xuICAgIHJlbW92ZShlbC5fdHJhbnNpdGlvbkNsYXNzZXMsIGNscyk7XG4gIH1cbiAgcmVtb3ZlQ2xhc3MoZWwsIGNscyk7XG59XG5cbmZ1bmN0aW9uIHdoZW5UcmFuc2l0aW9uRW5kcyAoXG4gIGVsLFxuICBleHBlY3RlZFR5cGUsXG4gIGNiXG4pIHtcbiAgdmFyIHJlZiA9IGdldFRyYW5zaXRpb25JbmZvKGVsLCBleHBlY3RlZFR5cGUpO1xuICB2YXIgdHlwZSA9IHJlZi50eXBlO1xuICB2YXIgdGltZW91dCA9IHJlZi50aW1lb3V0O1xuICB2YXIgcHJvcENvdW50ID0gcmVmLnByb3BDb3VudDtcbiAgaWYgKCF0eXBlKSB7IHJldHVybiBjYigpIH1cbiAgdmFyIGV2ZW50ID0gdHlwZSA9PT0gVFJBTlNJVElPTiA/IHRyYW5zaXRpb25FbmRFdmVudCA6IGFuaW1hdGlvbkVuZEV2ZW50O1xuICB2YXIgZW5kZWQgPSAwO1xuICB2YXIgZW5kID0gZnVuY3Rpb24gKCkge1xuICAgIGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIG9uRW5kKTtcbiAgICBjYigpO1xuICB9O1xuICB2YXIgb25FbmQgPSBmdW5jdGlvbiAoZSkge1xuICAgIGlmIChlLnRhcmdldCA9PT0gZWwpIHtcbiAgICAgIGlmICgrK2VuZGVkID49IHByb3BDb3VudCkge1xuICAgICAgICBlbmQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgIGlmIChlbmRlZCA8IHByb3BDb3VudCkge1xuICAgICAgZW5kKCk7XG4gICAgfVxuICB9LCB0aW1lb3V0ICsgMSk7XG4gIGVsLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIG9uRW5kKTtcbn1cblxudmFyIHRyYW5zZm9ybVJFID0gL1xcYih0cmFuc2Zvcm18YWxsKSgsfCQpLztcblxuZnVuY3Rpb24gZ2V0VHJhbnNpdGlvbkluZm8gKGVsLCBleHBlY3RlZFR5cGUpIHtcbiAgdmFyIHN0eWxlcyA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsKTtcbiAgLy8gSlNET00gbWF5IHJldHVybiB1bmRlZmluZWQgZm9yIHRyYW5zaXRpb24gcHJvcGVydGllc1xuICB2YXIgdHJhbnNpdGlvbkRlbGF5cyA9IChzdHlsZXNbdHJhbnNpdGlvblByb3AgKyAnRGVsYXknXSB8fCAnJykuc3BsaXQoJywgJyk7XG4gIHZhciB0cmFuc2l0aW9uRHVyYXRpb25zID0gKHN0eWxlc1t0cmFuc2l0aW9uUHJvcCArICdEdXJhdGlvbiddIHx8ICcnKS5zcGxpdCgnLCAnKTtcbiAgdmFyIHRyYW5zaXRpb25UaW1lb3V0ID0gZ2V0VGltZW91dCh0cmFuc2l0aW9uRGVsYXlzLCB0cmFuc2l0aW9uRHVyYXRpb25zKTtcbiAgdmFyIGFuaW1hdGlvbkRlbGF5cyA9IChzdHlsZXNbYW5pbWF0aW9uUHJvcCArICdEZWxheSddIHx8ICcnKS5zcGxpdCgnLCAnKTtcbiAgdmFyIGFuaW1hdGlvbkR1cmF0aW9ucyA9IChzdHlsZXNbYW5pbWF0aW9uUHJvcCArICdEdXJhdGlvbiddIHx8ICcnKS5zcGxpdCgnLCAnKTtcbiAgdmFyIGFuaW1hdGlvblRpbWVvdXQgPSBnZXRUaW1lb3V0KGFuaW1hdGlvbkRlbGF5cywgYW5pbWF0aW9uRHVyYXRpb25zKTtcblxuICB2YXIgdHlwZTtcbiAgdmFyIHRpbWVvdXQgPSAwO1xuICB2YXIgcHJvcENvdW50ID0gMDtcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gIGlmIChleHBlY3RlZFR5cGUgPT09IFRSQU5TSVRJT04pIHtcbiAgICBpZiAodHJhbnNpdGlvblRpbWVvdXQgPiAwKSB7XG4gICAgICB0eXBlID0gVFJBTlNJVElPTjtcbiAgICAgIHRpbWVvdXQgPSB0cmFuc2l0aW9uVGltZW91dDtcbiAgICAgIHByb3BDb3VudCA9IHRyYW5zaXRpb25EdXJhdGlvbnMubGVuZ3RoO1xuICAgIH1cbiAgfSBlbHNlIGlmIChleHBlY3RlZFR5cGUgPT09IEFOSU1BVElPTikge1xuICAgIGlmIChhbmltYXRpb25UaW1lb3V0ID4gMCkge1xuICAgICAgdHlwZSA9IEFOSU1BVElPTjtcbiAgICAgIHRpbWVvdXQgPSBhbmltYXRpb25UaW1lb3V0O1xuICAgICAgcHJvcENvdW50ID0gYW5pbWF0aW9uRHVyYXRpb25zLmxlbmd0aDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdGltZW91dCA9IE1hdGgubWF4KHRyYW5zaXRpb25UaW1lb3V0LCBhbmltYXRpb25UaW1lb3V0KTtcbiAgICB0eXBlID0gdGltZW91dCA+IDBcbiAgICAgID8gdHJhbnNpdGlvblRpbWVvdXQgPiBhbmltYXRpb25UaW1lb3V0XG4gICAgICAgID8gVFJBTlNJVElPTlxuICAgICAgICA6IEFOSU1BVElPTlxuICAgICAgOiBudWxsO1xuICAgIHByb3BDb3VudCA9IHR5cGVcbiAgICAgID8gdHlwZSA9PT0gVFJBTlNJVElPTlxuICAgICAgICA/IHRyYW5zaXRpb25EdXJhdGlvbnMubGVuZ3RoXG4gICAgICAgIDogYW5pbWF0aW9uRHVyYXRpb25zLmxlbmd0aFxuICAgICAgOiAwO1xuICB9XG4gIHZhciBoYXNUcmFuc2Zvcm0gPVxuICAgIHR5cGUgPT09IFRSQU5TSVRJT04gJiZcbiAgICB0cmFuc2Zvcm1SRS50ZXN0KHN0eWxlc1t0cmFuc2l0aW9uUHJvcCArICdQcm9wZXJ0eSddKTtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiB0eXBlLFxuICAgIHRpbWVvdXQ6IHRpbWVvdXQsXG4gICAgcHJvcENvdW50OiBwcm9wQ291bnQsXG4gICAgaGFzVHJhbnNmb3JtOiBoYXNUcmFuc2Zvcm1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRUaW1lb3V0IChkZWxheXMsIGR1cmF0aW9ucykge1xuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICB3aGlsZSAoZGVsYXlzLmxlbmd0aCA8IGR1cmF0aW9ucy5sZW5ndGgpIHtcbiAgICBkZWxheXMgPSBkZWxheXMuY29uY2F0KGRlbGF5cyk7XG4gIH1cblxuICByZXR1cm4gTWF0aC5tYXguYXBwbHkobnVsbCwgZHVyYXRpb25zLm1hcChmdW5jdGlvbiAoZCwgaSkge1xuICAgIHJldHVybiB0b01zKGQpICsgdG9NcyhkZWxheXNbaV0pXG4gIH0pKVxufVxuXG4vLyBPbGQgdmVyc2lvbnMgb2YgQ2hyb21pdW0gKGJlbG93IDYxLjAuMzE2My4xMDApIGZvcm1hdHMgZmxvYXRpbmcgcG9pbnRlciBudW1iZXJzXG4vLyBpbiBhIGxvY2FsZS1kZXBlbmRlbnQgd2F5LCB1c2luZyBhIGNvbW1hIGluc3RlYWQgb2YgYSBkb3QuXG4vLyBJZiBjb21tYSBpcyBub3QgcmVwbGFjZWQgd2l0aCBhIGRvdCwgdGhlIGlucHV0IHdpbGwgYmUgcm91bmRlZCBkb3duIChpLmUuIGFjdGluZ1xuLy8gYXMgYSBmbG9vciBmdW5jdGlvbikgY2F1c2luZyB1bmV4cGVjdGVkIGJlaGF2aW9yc1xuZnVuY3Rpb24gdG9NcyAocykge1xuICByZXR1cm4gTnVtYmVyKHMuc2xpY2UoMCwgLTEpLnJlcGxhY2UoJywnLCAnLicpKSAqIDEwMDBcbn1cblxuLyogICovXG5cbmZ1bmN0aW9uIGVudGVyICh2bm9kZSwgdG9nZ2xlRGlzcGxheSkge1xuICB2YXIgZWwgPSB2bm9kZS5lbG07XG5cbiAgLy8gY2FsbCBsZWF2ZSBjYWxsYmFjayBub3dcbiAgaWYgKGlzRGVmKGVsLl9sZWF2ZUNiKSkge1xuICAgIGVsLl9sZWF2ZUNiLmNhbmNlbGxlZCA9IHRydWU7XG4gICAgZWwuX2xlYXZlQ2IoKTtcbiAgfVxuXG4gIHZhciBkYXRhID0gcmVzb2x2ZVRyYW5zaXRpb24odm5vZGUuZGF0YS50cmFuc2l0aW9uKTtcbiAgaWYgKGlzVW5kZWYoZGF0YSkpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoaXNEZWYoZWwuX2VudGVyQ2IpIHx8IGVsLm5vZGVUeXBlICE9PSAxKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICB2YXIgY3NzID0gZGF0YS5jc3M7XG4gIHZhciB0eXBlID0gZGF0YS50eXBlO1xuICB2YXIgZW50ZXJDbGFzcyA9IGRhdGEuZW50ZXJDbGFzcztcbiAgdmFyIGVudGVyVG9DbGFzcyA9IGRhdGEuZW50ZXJUb0NsYXNzO1xuICB2YXIgZW50ZXJBY3RpdmVDbGFzcyA9IGRhdGEuZW50ZXJBY3RpdmVDbGFzcztcbiAgdmFyIGFwcGVhckNsYXNzID0gZGF0YS5hcHBlYXJDbGFzcztcbiAgdmFyIGFwcGVhclRvQ2xhc3MgPSBkYXRhLmFwcGVhclRvQ2xhc3M7XG4gIHZhciBhcHBlYXJBY3RpdmVDbGFzcyA9IGRhdGEuYXBwZWFyQWN0aXZlQ2xhc3M7XG4gIHZhciBiZWZvcmVFbnRlciA9IGRhdGEuYmVmb3JlRW50ZXI7XG4gIHZhciBlbnRlciA9IGRhdGEuZW50ZXI7XG4gIHZhciBhZnRlckVudGVyID0gZGF0YS5hZnRlckVudGVyO1xuICB2YXIgZW50ZXJDYW5jZWxsZWQgPSBkYXRhLmVudGVyQ2FuY2VsbGVkO1xuICB2YXIgYmVmb3JlQXBwZWFyID0gZGF0YS5iZWZvcmVBcHBlYXI7XG4gIHZhciBhcHBlYXIgPSBkYXRhLmFwcGVhcjtcbiAgdmFyIGFmdGVyQXBwZWFyID0gZGF0YS5hZnRlckFwcGVhcjtcbiAgdmFyIGFwcGVhckNhbmNlbGxlZCA9IGRhdGEuYXBwZWFyQ2FuY2VsbGVkO1xuICB2YXIgZHVyYXRpb24gPSBkYXRhLmR1cmF0aW9uO1xuXG4gIC8vIGFjdGl2ZUluc3RhbmNlIHdpbGwgYWx3YXlzIGJlIHRoZSA8dHJhbnNpdGlvbj4gY29tcG9uZW50IG1hbmFnaW5nIHRoaXNcbiAgLy8gdHJhbnNpdGlvbi4gT25lIGVkZ2UgY2FzZSB0byBjaGVjayBpcyB3aGVuIHRoZSA8dHJhbnNpdGlvbj4gaXMgcGxhY2VkXG4gIC8vIGFzIHRoZSByb290IG5vZGUgb2YgYSBjaGlsZCBjb21wb25lbnQuIEluIHRoYXQgY2FzZSB3ZSBuZWVkIHRvIGNoZWNrXG4gIC8vIDx0cmFuc2l0aW9uPidzIHBhcmVudCBmb3IgYXBwZWFyIGNoZWNrLlxuICB2YXIgY29udGV4dCA9IGFjdGl2ZUluc3RhbmNlO1xuICB2YXIgdHJhbnNpdGlvbk5vZGUgPSBhY3RpdmVJbnN0YW5jZS4kdm5vZGU7XG4gIHdoaWxlICh0cmFuc2l0aW9uTm9kZSAmJiB0cmFuc2l0aW9uTm9kZS5wYXJlbnQpIHtcbiAgICBjb250ZXh0ID0gdHJhbnNpdGlvbk5vZGUuY29udGV4dDtcbiAgICB0cmFuc2l0aW9uTm9kZSA9IHRyYW5zaXRpb25Ob2RlLnBhcmVudDtcbiAgfVxuXG4gIHZhciBpc0FwcGVhciA9ICFjb250ZXh0Ll9pc01vdW50ZWQgfHwgIXZub2RlLmlzUm9vdEluc2VydDtcblxuICBpZiAoaXNBcHBlYXIgJiYgIWFwcGVhciAmJiBhcHBlYXIgIT09ICcnKSB7XG4gICAgcmV0dXJuXG4gIH1cblxuICB2YXIgc3RhcnRDbGFzcyA9IGlzQXBwZWFyICYmIGFwcGVhckNsYXNzXG4gICAgPyBhcHBlYXJDbGFzc1xuICAgIDogZW50ZXJDbGFzcztcbiAgdmFyIGFjdGl2ZUNsYXNzID0gaXNBcHBlYXIgJiYgYXBwZWFyQWN0aXZlQ2xhc3NcbiAgICA/IGFwcGVhckFjdGl2ZUNsYXNzXG4gICAgOiBlbnRlckFjdGl2ZUNsYXNzO1xuICB2YXIgdG9DbGFzcyA9IGlzQXBwZWFyICYmIGFwcGVhclRvQ2xhc3NcbiAgICA/IGFwcGVhclRvQ2xhc3NcbiAgICA6IGVudGVyVG9DbGFzcztcblxuICB2YXIgYmVmb3JlRW50ZXJIb29rID0gaXNBcHBlYXJcbiAgICA/IChiZWZvcmVBcHBlYXIgfHwgYmVmb3JlRW50ZXIpXG4gICAgOiBiZWZvcmVFbnRlcjtcbiAgdmFyIGVudGVySG9vayA9IGlzQXBwZWFyXG4gICAgPyAodHlwZW9mIGFwcGVhciA9PT0gJ2Z1bmN0aW9uJyA/IGFwcGVhciA6IGVudGVyKVxuICAgIDogZW50ZXI7XG4gIHZhciBhZnRlckVudGVySG9vayA9IGlzQXBwZWFyXG4gICAgPyAoYWZ0ZXJBcHBlYXIgfHwgYWZ0ZXJFbnRlcilcbiAgICA6IGFmdGVyRW50ZXI7XG4gIHZhciBlbnRlckNhbmNlbGxlZEhvb2sgPSBpc0FwcGVhclxuICAgID8gKGFwcGVhckNhbmNlbGxlZCB8fCBlbnRlckNhbmNlbGxlZClcbiAgICA6IGVudGVyQ2FuY2VsbGVkO1xuXG4gIHZhciBleHBsaWNpdEVudGVyRHVyYXRpb24gPSB0b051bWJlcihcbiAgICBpc09iamVjdChkdXJhdGlvbilcbiAgICAgID8gZHVyYXRpb24uZW50ZXJcbiAgICAgIDogZHVyYXRpb25cbiAgKTtcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBleHBsaWNpdEVudGVyRHVyYXRpb24gIT0gbnVsbCkge1xuICAgIGNoZWNrRHVyYXRpb24oZXhwbGljaXRFbnRlckR1cmF0aW9uLCAnZW50ZXInLCB2bm9kZSk7XG4gIH1cblxuICB2YXIgZXhwZWN0c0NTUyA9IGNzcyAhPT0gZmFsc2UgJiYgIWlzSUU5O1xuICB2YXIgdXNlcldhbnRzQ29udHJvbCA9IGdldEhvb2tBcmd1bWVudHNMZW5ndGgoZW50ZXJIb29rKTtcblxuICB2YXIgY2IgPSBlbC5fZW50ZXJDYiA9IG9uY2UoZnVuY3Rpb24gKCkge1xuICAgIGlmIChleHBlY3RzQ1NTKSB7XG4gICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoZWwsIHRvQ2xhc3MpO1xuICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBhY3RpdmVDbGFzcyk7XG4gICAgfVxuICAgIGlmIChjYi5jYW5jZWxsZWQpIHtcbiAgICAgIGlmIChleHBlY3RzQ1NTKSB7XG4gICAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgc3RhcnRDbGFzcyk7XG4gICAgICB9XG4gICAgICBlbnRlckNhbmNlbGxlZEhvb2sgJiYgZW50ZXJDYW5jZWxsZWRIb29rKGVsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYWZ0ZXJFbnRlckhvb2sgJiYgYWZ0ZXJFbnRlckhvb2soZWwpO1xuICAgIH1cbiAgICBlbC5fZW50ZXJDYiA9IG51bGw7XG4gIH0pO1xuXG4gIGlmICghdm5vZGUuZGF0YS5zaG93KSB7XG4gICAgLy8gcmVtb3ZlIHBlbmRpbmcgbGVhdmUgZWxlbWVudCBvbiBlbnRlciBieSBpbmplY3RpbmcgYW4gaW5zZXJ0IGhvb2tcbiAgICBtZXJnZVZOb2RlSG9vayh2bm9kZSwgJ2luc2VydCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBwYXJlbnQgPSBlbC5wYXJlbnROb2RlO1xuICAgICAgdmFyIHBlbmRpbmdOb2RlID0gcGFyZW50ICYmIHBhcmVudC5fcGVuZGluZyAmJiBwYXJlbnQuX3BlbmRpbmdbdm5vZGUua2V5XTtcbiAgICAgIGlmIChwZW5kaW5nTm9kZSAmJlxuICAgICAgICBwZW5kaW5nTm9kZS50YWcgPT09IHZub2RlLnRhZyAmJlxuICAgICAgICBwZW5kaW5nTm9kZS5lbG0uX2xlYXZlQ2JcbiAgICAgICkge1xuICAgICAgICBwZW5kaW5nTm9kZS5lbG0uX2xlYXZlQ2IoKTtcbiAgICAgIH1cbiAgICAgIGVudGVySG9vayAmJiBlbnRlckhvb2soZWwsIGNiKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIHN0YXJ0IGVudGVyIHRyYW5zaXRpb25cbiAgYmVmb3JlRW50ZXJIb29rICYmIGJlZm9yZUVudGVySG9vayhlbCk7XG4gIGlmIChleHBlY3RzQ1NTKSB7XG4gICAgYWRkVHJhbnNpdGlvbkNsYXNzKGVsLCBzdGFydENsYXNzKTtcbiAgICBhZGRUcmFuc2l0aW9uQ2xhc3MoZWwsIGFjdGl2ZUNsYXNzKTtcbiAgICBuZXh0RnJhbWUoZnVuY3Rpb24gKCkge1xuICAgICAgcmVtb3ZlVHJhbnNpdGlvbkNsYXNzKGVsLCBzdGFydENsYXNzKTtcbiAgICAgIGlmICghY2IuY2FuY2VsbGVkKSB7XG4gICAgICAgIGFkZFRyYW5zaXRpb25DbGFzcyhlbCwgdG9DbGFzcyk7XG4gICAgICAgIGlmICghdXNlcldhbnRzQ29udHJvbCkge1xuICAgICAgICAgIGlmIChpc1ZhbGlkRHVyYXRpb24oZXhwbGljaXRFbnRlckR1cmF0aW9uKSkge1xuICAgICAgICAgICAgc2V0VGltZW91dChjYiwgZXhwbGljaXRFbnRlckR1cmF0aW9uKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd2hlblRyYW5zaXRpb25FbmRzKGVsLCB0eXBlLCBjYik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBpZiAodm5vZGUuZGF0YS5zaG93KSB7XG4gICAgdG9nZ2xlRGlzcGxheSAmJiB0b2dnbGVEaXNwbGF5KCk7XG4gICAgZW50ZXJIb29rICYmIGVudGVySG9vayhlbCwgY2IpO1xuICB9XG5cbiAgaWYgKCFleHBlY3RzQ1NTICYmICF1c2VyV2FudHNDb250cm9sKSB7XG4gICAgY2IoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBsZWF2ZSAodm5vZGUsIHJtKSB7XG4gIHZhciBlbCA9IHZub2RlLmVsbTtcblxuICAvLyBjYWxsIGVudGVyIGNhbGxiYWNrIG5vd1xuICBpZiAoaXNEZWYoZWwuX2VudGVyQ2IpKSB7XG4gICAgZWwuX2VudGVyQ2IuY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICBlbC5fZW50ZXJDYigpO1xuICB9XG5cbiAgdmFyIGRhdGEgPSByZXNvbHZlVHJhbnNpdGlvbih2bm9kZS5kYXRhLnRyYW5zaXRpb24pO1xuICBpZiAoaXNVbmRlZihkYXRhKSB8fCBlbC5ub2RlVHlwZSAhPT0gMSkge1xuICAgIHJldHVybiBybSgpXG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKGlzRGVmKGVsLl9sZWF2ZUNiKSkge1xuICAgIHJldHVyblxuICB9XG5cbiAgdmFyIGNzcyA9IGRhdGEuY3NzO1xuICB2YXIgdHlwZSA9IGRhdGEudHlwZTtcbiAgdmFyIGxlYXZlQ2xhc3MgPSBkYXRhLmxlYXZlQ2xhc3M7XG4gIHZhciBsZWF2ZVRvQ2xhc3MgPSBkYXRhLmxlYXZlVG9DbGFzcztcbiAgdmFyIGxlYXZlQWN0aXZlQ2xhc3MgPSBkYXRhLmxlYXZlQWN0aXZlQ2xhc3M7XG4gIHZhciBiZWZvcmVMZWF2ZSA9IGRhdGEuYmVmb3JlTGVhdmU7XG4gIHZhciBsZWF2ZSA9IGRhdGEubGVhdmU7XG4gIHZhciBhZnRlckxlYXZlID0gZGF0YS5hZnRlckxlYXZlO1xuICB2YXIgbGVhdmVDYW5jZWxsZWQgPSBkYXRhLmxlYXZlQ2FuY2VsbGVkO1xuICB2YXIgZGVsYXlMZWF2ZSA9IGRhdGEuZGVsYXlMZWF2ZTtcbiAgdmFyIGR1cmF0aW9uID0gZGF0YS5kdXJhdGlvbjtcblxuICB2YXIgZXhwZWN0c0NTUyA9IGNzcyAhPT0gZmFsc2UgJiYgIWlzSUU5O1xuICB2YXIgdXNlcldhbnRzQ29udHJvbCA9IGdldEhvb2tBcmd1bWVudHNMZW5ndGgobGVhdmUpO1xuXG4gIHZhciBleHBsaWNpdExlYXZlRHVyYXRpb24gPSB0b051bWJlcihcbiAgICBpc09iamVjdChkdXJhdGlvbilcbiAgICAgID8gZHVyYXRpb24ubGVhdmVcbiAgICAgIDogZHVyYXRpb25cbiAgKTtcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBpc0RlZihleHBsaWNpdExlYXZlRHVyYXRpb24pKSB7XG4gICAgY2hlY2tEdXJhdGlvbihleHBsaWNpdExlYXZlRHVyYXRpb24sICdsZWF2ZScsIHZub2RlKTtcbiAgfVxuXG4gIHZhciBjYiA9IGVsLl9sZWF2ZUNiID0gb25jZShmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGVsLnBhcmVudE5vZGUgJiYgZWwucGFyZW50Tm9kZS5fcGVuZGluZykge1xuICAgICAgZWwucGFyZW50Tm9kZS5fcGVuZGluZ1t2bm9kZS5rZXldID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKGV4cGVjdHNDU1MpIHtcbiAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgbGVhdmVUb0NsYXNzKTtcbiAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgbGVhdmVBY3RpdmVDbGFzcyk7XG4gICAgfVxuICAgIGlmIChjYi5jYW5jZWxsZWQpIHtcbiAgICAgIGlmIChleHBlY3RzQ1NTKSB7XG4gICAgICAgIHJlbW92ZVRyYW5zaXRpb25DbGFzcyhlbCwgbGVhdmVDbGFzcyk7XG4gICAgICB9XG4gICAgICBsZWF2ZUNhbmNlbGxlZCAmJiBsZWF2ZUNhbmNlbGxlZChlbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJtKCk7XG4gICAgICBhZnRlckxlYXZlICYmIGFmdGVyTGVhdmUoZWwpO1xuICAgIH1cbiAgICBlbC5fbGVhdmVDYiA9IG51bGw7XG4gIH0pO1xuXG4gIGlmIChkZWxheUxlYXZlKSB7XG4gICAgZGVsYXlMZWF2ZShwZXJmb3JtTGVhdmUpO1xuICB9IGVsc2Uge1xuICAgIHBlcmZvcm1MZWF2ZSgpO1xuICB9XG5cbiAgZnVuY3Rpb24gcGVyZm9ybUxlYXZlICgpIHtcbiAgICAvLyB0aGUgZGVsYXllZCBsZWF2ZSBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gY2FuY2VsbGVkXG4gICAgaWYgKGNiLmNhbmNlbGxlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIC8vIHJlY29yZCBsZWF2aW5nIGVsZW1lbnRcbiAgICBpZiAoIXZub2RlLmRhdGEuc2hvdyAmJiBlbC5wYXJlbnROb2RlKSB7XG4gICAgICAoZWwucGFyZW50Tm9kZS5fcGVuZGluZyB8fCAoZWwucGFyZW50Tm9kZS5fcGVuZGluZyA9IHt9KSlbKHZub2RlLmtleSldID0gdm5vZGU7XG4gICAgfVxuICAgIGJlZm9yZUxlYXZlICYmIGJlZm9yZUxlYXZlKGVsKTtcbiAgICBpZiAoZXhwZWN0c0NTUykge1xuICAgICAgYWRkVHJhbnNpdGlvbkNsYXNzKGVsLCBsZWF2ZUNsYXNzKTtcbiAgICAgIGFkZFRyYW5zaXRpb25DbGFzcyhlbCwgbGVhdmVBY3RpdmVDbGFzcyk7XG4gICAgICBuZXh0RnJhbWUoZnVuY3Rpb24gKCkge1xuICAgICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoZWwsIGxlYXZlQ2xhc3MpO1xuICAgICAgICBpZiAoIWNiLmNhbmNlbGxlZCkge1xuICAgICAgICAgIGFkZFRyYW5zaXRpb25DbGFzcyhlbCwgbGVhdmVUb0NsYXNzKTtcbiAgICAgICAgICBpZiAoIXVzZXJXYW50c0NvbnRyb2wpIHtcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkRHVyYXRpb24oZXhwbGljaXRMZWF2ZUR1cmF0aW9uKSkge1xuICAgICAgICAgICAgICBzZXRUaW1lb3V0KGNiLCBleHBsaWNpdExlYXZlRHVyYXRpb24pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgd2hlblRyYW5zaXRpb25FbmRzKGVsLCB0eXBlLCBjYik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgbGVhdmUgJiYgbGVhdmUoZWwsIGNiKTtcbiAgICBpZiAoIWV4cGVjdHNDU1MgJiYgIXVzZXJXYW50c0NvbnRyb2wpIHtcbiAgICAgIGNiKCk7XG4gICAgfVxuICB9XG59XG5cbi8vIG9ubHkgdXNlZCBpbiBkZXYgbW9kZVxuZnVuY3Rpb24gY2hlY2tEdXJhdGlvbiAodmFsLCBuYW1lLCB2bm9kZSkge1xuICBpZiAodHlwZW9mIHZhbCAhPT0gJ251bWJlcicpIHtcbiAgICB3YXJuKFxuICAgICAgXCI8dHJhbnNpdGlvbj4gZXhwbGljaXQgXCIgKyBuYW1lICsgXCIgZHVyYXRpb24gaXMgbm90IGEgdmFsaWQgbnVtYmVyIC0gXCIgK1xuICAgICAgXCJnb3QgXCIgKyAoSlNPTi5zdHJpbmdpZnkodmFsKSkgKyBcIi5cIixcbiAgICAgIHZub2RlLmNvbnRleHRcbiAgICApO1xuICB9IGVsc2UgaWYgKGlzTmFOKHZhbCkpIHtcbiAgICB3YXJuKFxuICAgICAgXCI8dHJhbnNpdGlvbj4gZXhwbGljaXQgXCIgKyBuYW1lICsgXCIgZHVyYXRpb24gaXMgTmFOIC0gXCIgK1xuICAgICAgJ3RoZSBkdXJhdGlvbiBleHByZXNzaW9uIG1pZ2h0IGJlIGluY29ycmVjdC4nLFxuICAgICAgdm5vZGUuY29udGV4dFxuICAgICk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNWYWxpZER1cmF0aW9uICh2YWwpIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICdudW1iZXInICYmICFpc05hTih2YWwpXG59XG5cbi8qKlxuICogTm9ybWFsaXplIGEgdHJhbnNpdGlvbiBob29rJ3MgYXJndW1lbnQgbGVuZ3RoLiBUaGUgaG9vayBtYXkgYmU6XG4gKiAtIGEgbWVyZ2VkIGhvb2sgKGludm9rZXIpIHdpdGggdGhlIG9yaWdpbmFsIGluIC5mbnNcbiAqIC0gYSB3cmFwcGVkIGNvbXBvbmVudCBtZXRob2QgKGNoZWNrIC5fbGVuZ3RoKVxuICogLSBhIHBsYWluIGZ1bmN0aW9uICgubGVuZ3RoKVxuICovXG5mdW5jdGlvbiBnZXRIb29rQXJndW1lbnRzTGVuZ3RoIChmbikge1xuICBpZiAoaXNVbmRlZihmbikpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICB2YXIgaW52b2tlckZucyA9IGZuLmZucztcbiAgaWYgKGlzRGVmKGludm9rZXJGbnMpKSB7XG4gICAgLy8gaW52b2tlclxuICAgIHJldHVybiBnZXRIb29rQXJndW1lbnRzTGVuZ3RoKFxuICAgICAgQXJyYXkuaXNBcnJheShpbnZva2VyRm5zKVxuICAgICAgICA/IGludm9rZXJGbnNbMF1cbiAgICAgICAgOiBpbnZva2VyRm5zXG4gICAgKVxuICB9IGVsc2Uge1xuICAgIHJldHVybiAoZm4uX2xlbmd0aCB8fCBmbi5sZW5ndGgpID4gMVxuICB9XG59XG5cbmZ1bmN0aW9uIF9lbnRlciAoXywgdm5vZGUpIHtcbiAgaWYgKHZub2RlLmRhdGEuc2hvdyAhPT0gdHJ1ZSkge1xuICAgIGVudGVyKHZub2RlKTtcbiAgfVxufVxuXG52YXIgdHJhbnNpdGlvbiA9IGluQnJvd3NlciA/IHtcbiAgY3JlYXRlOiBfZW50ZXIsXG4gIGFjdGl2YXRlOiBfZW50ZXIsXG4gIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlJCQxICh2bm9kZSwgcm0pIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh2bm9kZS5kYXRhLnNob3cgIT09IHRydWUpIHtcbiAgICAgIGxlYXZlKHZub2RlLCBybSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJtKCk7XG4gICAgfVxuICB9XG59IDoge307XG5cbnZhciBwbGF0Zm9ybU1vZHVsZXMgPSBbXG4gIGF0dHJzLFxuICBrbGFzcyxcbiAgZXZlbnRzLFxuICBkb21Qcm9wcyxcbiAgc3R5bGUsXG4gIHRyYW5zaXRpb25cbl07XG5cbi8qICAqL1xuXG4vLyB0aGUgZGlyZWN0aXZlIG1vZHVsZSBzaG91bGQgYmUgYXBwbGllZCBsYXN0LCBhZnRlciBhbGxcbi8vIGJ1aWx0LWluIG1vZHVsZXMgaGF2ZSBiZWVuIGFwcGxpZWQuXG52YXIgbW9kdWxlcyA9IHBsYXRmb3JtTW9kdWxlcy5jb25jYXQoYmFzZU1vZHVsZXMpO1xuXG52YXIgcGF0Y2ggPSBjcmVhdGVQYXRjaEZ1bmN0aW9uKHsgbm9kZU9wczogbm9kZU9wcywgbW9kdWxlczogbW9kdWxlcyB9KTtcblxuLyoqXG4gKiBOb3QgdHlwZSBjaGVja2luZyB0aGlzIGZpbGUgYmVjYXVzZSBmbG93IGRvZXNuJ3QgbGlrZSBhdHRhY2hpbmdcbiAqIHByb3BlcnRpZXMgdG8gRWxlbWVudHMuXG4gKi9cblxuLyogaXN0YW5idWwgaWdub3JlIGlmICovXG5pZiAoaXNJRTkpIHtcbiAgLy8gaHR0cDovL3d3dy5tYXR0czQxMS5jb20vcG9zdC9pbnRlcm5ldC1leHBsb3Jlci05LW9uaW5wdXQvXG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdGlvbmNoYW5nZScsIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZWwgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgIGlmIChlbCAmJiBlbC52bW9kZWwpIHtcbiAgICAgIHRyaWdnZXIoZWwsICdpbnB1dCcpO1xuICAgIH1cbiAgfSk7XG59XG5cbnZhciBkaXJlY3RpdmUgPSB7XG4gIGluc2VydGVkOiBmdW5jdGlvbiBpbnNlcnRlZCAoZWwsIGJpbmRpbmcsIHZub2RlLCBvbGRWbm9kZSkge1xuICAgIGlmICh2bm9kZS50YWcgPT09ICdzZWxlY3QnKSB7XG4gICAgICAvLyAjNjkwM1xuICAgICAgaWYgKG9sZFZub2RlLmVsbSAmJiAhb2xkVm5vZGUuZWxtLl92T3B0aW9ucykge1xuICAgICAgICBtZXJnZVZOb2RlSG9vayh2bm9kZSwgJ3Bvc3RwYXRjaCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBkaXJlY3RpdmUuY29tcG9uZW50VXBkYXRlZChlbCwgYmluZGluZywgdm5vZGUpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFNlbGVjdGVkKGVsLCBiaW5kaW5nLCB2bm9kZS5jb250ZXh0KTtcbiAgICAgIH1cbiAgICAgIGVsLl92T3B0aW9ucyA9IFtdLm1hcC5jYWxsKGVsLm9wdGlvbnMsIGdldFZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHZub2RlLnRhZyA9PT0gJ3RleHRhcmVhJyB8fCBpc1RleHRJbnB1dFR5cGUoZWwudHlwZSkpIHtcbiAgICAgIGVsLl92TW9kaWZpZXJzID0gYmluZGluZy5tb2RpZmllcnM7XG4gICAgICBpZiAoIWJpbmRpbmcubW9kaWZpZXJzLmxhenkpIHtcbiAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignY29tcG9zaXRpb25zdGFydCcsIG9uQ29tcG9zaXRpb25TdGFydCk7XG4gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NvbXBvc2l0aW9uZW5kJywgb25Db21wb3NpdGlvbkVuZCk7XG4gICAgICAgIC8vIFNhZmFyaSA8IDEwLjIgJiBVSVdlYlZpZXcgZG9lc24ndCBmaXJlIGNvbXBvc2l0aW9uZW5kIHdoZW5cbiAgICAgICAgLy8gc3dpdGNoaW5nIGZvY3VzIGJlZm9yZSBjb25maXJtaW5nIGNvbXBvc2l0aW9uIGNob2ljZVxuICAgICAgICAvLyB0aGlzIGFsc28gZml4ZXMgdGhlIGlzc3VlIHdoZXJlIHNvbWUgYnJvd3NlcnMgZS5nLiBpT1MgQ2hyb21lXG4gICAgICAgIC8vIGZpcmVzIFwiY2hhbmdlXCIgaW5zdGVhZCBvZiBcImlucHV0XCIgb24gYXV0b2NvbXBsZXRlLlxuICAgICAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBvbkNvbXBvc2l0aW9uRW5kKTtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICAgIGlmIChpc0lFOSkge1xuICAgICAgICAgIGVsLnZtb2RlbCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0sXG5cbiAgY29tcG9uZW50VXBkYXRlZDogZnVuY3Rpb24gY29tcG9uZW50VXBkYXRlZCAoZWwsIGJpbmRpbmcsIHZub2RlKSB7XG4gICAgaWYgKHZub2RlLnRhZyA9PT0gJ3NlbGVjdCcpIHtcbiAgICAgIHNldFNlbGVjdGVkKGVsLCBiaW5kaW5nLCB2bm9kZS5jb250ZXh0KTtcbiAgICAgIC8vIGluIGNhc2UgdGhlIG9wdGlvbnMgcmVuZGVyZWQgYnkgdi1mb3IgaGF2ZSBjaGFuZ2VkLFxuICAgICAgLy8gaXQncyBwb3NzaWJsZSB0aGF0IHRoZSB2YWx1ZSBpcyBvdXQtb2Ytc3luYyB3aXRoIHRoZSByZW5kZXJlZCBvcHRpb25zLlxuICAgICAgLy8gZGV0ZWN0IHN1Y2ggY2FzZXMgYW5kIGZpbHRlciBvdXQgdmFsdWVzIHRoYXQgbm8gbG9uZ2VyIGhhcyBhIG1hdGNoaW5nXG4gICAgICAvLyBvcHRpb24gaW4gdGhlIERPTS5cbiAgICAgIHZhciBwcmV2T3B0aW9ucyA9IGVsLl92T3B0aW9ucztcbiAgICAgIHZhciBjdXJPcHRpb25zID0gZWwuX3ZPcHRpb25zID0gW10ubWFwLmNhbGwoZWwub3B0aW9ucywgZ2V0VmFsdWUpO1xuICAgICAgaWYgKGN1ck9wdGlvbnMuc29tZShmdW5jdGlvbiAobywgaSkgeyByZXR1cm4gIWxvb3NlRXF1YWwobywgcHJldk9wdGlvbnNbaV0pOyB9KSkge1xuICAgICAgICAvLyB0cmlnZ2VyIGNoYW5nZSBldmVudCBpZlxuICAgICAgICAvLyBubyBtYXRjaGluZyBvcHRpb24gZm91bmQgZm9yIGF0IGxlYXN0IG9uZSB2YWx1ZVxuICAgICAgICB2YXIgbmVlZFJlc2V0ID0gZWwubXVsdGlwbGVcbiAgICAgICAgICA/IGJpbmRpbmcudmFsdWUuc29tZShmdW5jdGlvbiAodikgeyByZXR1cm4gaGFzTm9NYXRjaGluZ09wdGlvbih2LCBjdXJPcHRpb25zKTsgfSlcbiAgICAgICAgICA6IGJpbmRpbmcudmFsdWUgIT09IGJpbmRpbmcub2xkVmFsdWUgJiYgaGFzTm9NYXRjaGluZ09wdGlvbihiaW5kaW5nLnZhbHVlLCBjdXJPcHRpb25zKTtcbiAgICAgICAgaWYgKG5lZWRSZXNldCkge1xuICAgICAgICAgIHRyaWdnZXIoZWwsICdjaGFuZ2UnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gc2V0U2VsZWN0ZWQgKGVsLCBiaW5kaW5nLCB2bSkge1xuICBhY3R1YWxseVNldFNlbGVjdGVkKGVsLCBiaW5kaW5nLCB2bSk7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoaXNJRSB8fCBpc0VkZ2UpIHtcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGFjdHVhbGx5U2V0U2VsZWN0ZWQoZWwsIGJpbmRpbmcsIHZtKTtcbiAgICB9LCAwKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBhY3R1YWxseVNldFNlbGVjdGVkIChlbCwgYmluZGluZywgdm0pIHtcbiAgdmFyIHZhbHVlID0gYmluZGluZy52YWx1ZTtcbiAgdmFyIGlzTXVsdGlwbGUgPSBlbC5tdWx0aXBsZTtcbiAgaWYgKGlzTXVsdGlwbGUgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiB3YXJuKFxuICAgICAgXCI8c2VsZWN0IG11bHRpcGxlIHYtbW9kZWw9XFxcIlwiICsgKGJpbmRpbmcuZXhwcmVzc2lvbikgKyBcIlxcXCI+IFwiICtcbiAgICAgIFwiZXhwZWN0cyBhbiBBcnJheSB2YWx1ZSBmb3IgaXRzIGJpbmRpbmcsIGJ1dCBnb3QgXCIgKyAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKS5zbGljZSg4LCAtMSkpLFxuICAgICAgdm1cbiAgICApO1xuICAgIHJldHVyblxuICB9XG4gIHZhciBzZWxlY3RlZCwgb3B0aW9uO1xuICBmb3IgKHZhciBpID0gMCwgbCA9IGVsLm9wdGlvbnMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgb3B0aW9uID0gZWwub3B0aW9uc1tpXTtcbiAgICBpZiAoaXNNdWx0aXBsZSkge1xuICAgICAgc2VsZWN0ZWQgPSBsb29zZUluZGV4T2YodmFsdWUsIGdldFZhbHVlKG9wdGlvbikpID4gLTE7XG4gICAgICBpZiAob3B0aW9uLnNlbGVjdGVkICE9PSBzZWxlY3RlZCkge1xuICAgICAgICBvcHRpb24uc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGxvb3NlRXF1YWwoZ2V0VmFsdWUob3B0aW9uKSwgdmFsdWUpKSB7XG4gICAgICAgIGlmIChlbC5zZWxlY3RlZEluZGV4ICE9PSBpKSB7XG4gICAgICAgICAgZWwuc2VsZWN0ZWRJbmRleCA9IGk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmICghaXNNdWx0aXBsZSkge1xuICAgIGVsLnNlbGVjdGVkSW5kZXggPSAtMTtcbiAgfVxufVxuXG5mdW5jdGlvbiBoYXNOb01hdGNoaW5nT3B0aW9uICh2YWx1ZSwgb3B0aW9ucykge1xuICByZXR1cm4gb3B0aW9ucy5ldmVyeShmdW5jdGlvbiAobykgeyByZXR1cm4gIWxvb3NlRXF1YWwobywgdmFsdWUpOyB9KVxufVxuXG5mdW5jdGlvbiBnZXRWYWx1ZSAob3B0aW9uKSB7XG4gIHJldHVybiAnX3ZhbHVlJyBpbiBvcHRpb25cbiAgICA/IG9wdGlvbi5fdmFsdWVcbiAgICA6IG9wdGlvbi52YWx1ZVxufVxuXG5mdW5jdGlvbiBvbkNvbXBvc2l0aW9uU3RhcnQgKGUpIHtcbiAgZS50YXJnZXQuY29tcG9zaW5nID0gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gb25Db21wb3NpdGlvbkVuZCAoZSkge1xuICAvLyBwcmV2ZW50IHRyaWdnZXJpbmcgYW4gaW5wdXQgZXZlbnQgZm9yIG5vIHJlYXNvblxuICBpZiAoIWUudGFyZ2V0LmNvbXBvc2luZykgeyByZXR1cm4gfVxuICBlLnRhcmdldC5jb21wb3NpbmcgPSBmYWxzZTtcbiAgdHJpZ2dlcihlLnRhcmdldCwgJ2lucHV0Jyk7XG59XG5cbmZ1bmN0aW9uIHRyaWdnZXIgKGVsLCB0eXBlKSB7XG4gIHZhciBlID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0hUTUxFdmVudHMnKTtcbiAgZS5pbml0RXZlbnQodHlwZSwgdHJ1ZSwgdHJ1ZSk7XG4gIGVsLmRpc3BhdGNoRXZlbnQoZSk7XG59XG5cbi8qICAqL1xuXG4vLyByZWN1cnNpdmVseSBzZWFyY2ggZm9yIHBvc3NpYmxlIHRyYW5zaXRpb24gZGVmaW5lZCBpbnNpZGUgdGhlIGNvbXBvbmVudCByb290XG5mdW5jdGlvbiBsb2NhdGVOb2RlICh2bm9kZSkge1xuICByZXR1cm4gdm5vZGUuY29tcG9uZW50SW5zdGFuY2UgJiYgKCF2bm9kZS5kYXRhIHx8ICF2bm9kZS5kYXRhLnRyYW5zaXRpb24pXG4gICAgPyBsb2NhdGVOb2RlKHZub2RlLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZSlcbiAgICA6IHZub2RlXG59XG5cbnZhciBzaG93ID0ge1xuICBiaW5kOiBmdW5jdGlvbiBiaW5kIChlbCwgcmVmLCB2bm9kZSkge1xuICAgIHZhciB2YWx1ZSA9IHJlZi52YWx1ZTtcblxuICAgIHZub2RlID0gbG9jYXRlTm9kZSh2bm9kZSk7XG4gICAgdmFyIHRyYW5zaXRpb24kJDEgPSB2bm9kZS5kYXRhICYmIHZub2RlLmRhdGEudHJhbnNpdGlvbjtcbiAgICB2YXIgb3JpZ2luYWxEaXNwbGF5ID0gZWwuX192T3JpZ2luYWxEaXNwbGF5ID1cbiAgICAgIGVsLnN0eWxlLmRpc3BsYXkgPT09ICdub25lJyA/ICcnIDogZWwuc3R5bGUuZGlzcGxheTtcbiAgICBpZiAodmFsdWUgJiYgdHJhbnNpdGlvbiQkMSkge1xuICAgICAgdm5vZGUuZGF0YS5zaG93ID0gdHJ1ZTtcbiAgICAgIGVudGVyKHZub2RlLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGVsLnN0eWxlLmRpc3BsYXkgPSBvcmlnaW5hbERpc3BsYXk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZWwuc3R5bGUuZGlzcGxheSA9IHZhbHVlID8gb3JpZ2luYWxEaXNwbGF5IDogJ25vbmUnO1xuICAgIH1cbiAgfSxcblxuICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZSAoZWwsIHJlZiwgdm5vZGUpIHtcbiAgICB2YXIgdmFsdWUgPSByZWYudmFsdWU7XG4gICAgdmFyIG9sZFZhbHVlID0gcmVmLm9sZFZhbHVlO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKCF2YWx1ZSA9PT0gIW9sZFZhbHVlKSB7IHJldHVybiB9XG4gICAgdm5vZGUgPSBsb2NhdGVOb2RlKHZub2RlKTtcbiAgICB2YXIgdHJhbnNpdGlvbiQkMSA9IHZub2RlLmRhdGEgJiYgdm5vZGUuZGF0YS50cmFuc2l0aW9uO1xuICAgIGlmICh0cmFuc2l0aW9uJCQxKSB7XG4gICAgICB2bm9kZS5kYXRhLnNob3cgPSB0cnVlO1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIGVudGVyKHZub2RlLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgZWwuc3R5bGUuZGlzcGxheSA9IGVsLl9fdk9yaWdpbmFsRGlzcGxheTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsZWF2ZSh2bm9kZSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGVsLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gdmFsdWUgPyBlbC5fX3ZPcmlnaW5hbERpc3BsYXkgOiAnbm9uZSc7XG4gICAgfVxuICB9LFxuXG4gIHVuYmluZDogZnVuY3Rpb24gdW5iaW5kIChcbiAgICBlbCxcbiAgICBiaW5kaW5nLFxuICAgIHZub2RlLFxuICAgIG9sZFZub2RlLFxuICAgIGlzRGVzdHJveVxuICApIHtcbiAgICBpZiAoIWlzRGVzdHJveSkge1xuICAgICAgZWwuc3R5bGUuZGlzcGxheSA9IGVsLl9fdk9yaWdpbmFsRGlzcGxheTtcbiAgICB9XG4gIH1cbn07XG5cbnZhciBwbGF0Zm9ybURpcmVjdGl2ZXMgPSB7XG4gIG1vZGVsOiBkaXJlY3RpdmUsXG4gIHNob3c6IHNob3dcbn07XG5cbi8qICAqL1xuXG52YXIgdHJhbnNpdGlvblByb3BzID0ge1xuICBuYW1lOiBTdHJpbmcsXG4gIGFwcGVhcjogQm9vbGVhbixcbiAgY3NzOiBCb29sZWFuLFxuICBtb2RlOiBTdHJpbmcsXG4gIHR5cGU6IFN0cmluZyxcbiAgZW50ZXJDbGFzczogU3RyaW5nLFxuICBsZWF2ZUNsYXNzOiBTdHJpbmcsXG4gIGVudGVyVG9DbGFzczogU3RyaW5nLFxuICBsZWF2ZVRvQ2xhc3M6IFN0cmluZyxcbiAgZW50ZXJBY3RpdmVDbGFzczogU3RyaW5nLFxuICBsZWF2ZUFjdGl2ZUNsYXNzOiBTdHJpbmcsXG4gIGFwcGVhckNsYXNzOiBTdHJpbmcsXG4gIGFwcGVhckFjdGl2ZUNsYXNzOiBTdHJpbmcsXG4gIGFwcGVhclRvQ2xhc3M6IFN0cmluZyxcbiAgZHVyYXRpb246IFtOdW1iZXIsIFN0cmluZywgT2JqZWN0XVxufTtcblxuLy8gaW4gY2FzZSB0aGUgY2hpbGQgaXMgYWxzbyBhbiBhYnN0cmFjdCBjb21wb25lbnQsIGUuZy4gPGtlZXAtYWxpdmU+XG4vLyB3ZSB3YW50IHRvIHJlY3Vyc2l2ZWx5IHJldHJpZXZlIHRoZSByZWFsIGNvbXBvbmVudCB0byBiZSByZW5kZXJlZFxuZnVuY3Rpb24gZ2V0UmVhbENoaWxkICh2bm9kZSkge1xuICB2YXIgY29tcE9wdGlvbnMgPSB2bm9kZSAmJiB2bm9kZS5jb21wb25lbnRPcHRpb25zO1xuICBpZiAoY29tcE9wdGlvbnMgJiYgY29tcE9wdGlvbnMuQ3Rvci5vcHRpb25zLmFic3RyYWN0KSB7XG4gICAgcmV0dXJuIGdldFJlYWxDaGlsZChnZXRGaXJzdENvbXBvbmVudENoaWxkKGNvbXBPcHRpb25zLmNoaWxkcmVuKSlcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gdm5vZGVcbiAgfVxufVxuXG5mdW5jdGlvbiBleHRyYWN0VHJhbnNpdGlvbkRhdGEgKGNvbXApIHtcbiAgdmFyIGRhdGEgPSB7fTtcbiAgdmFyIG9wdGlvbnMgPSBjb21wLiRvcHRpb25zO1xuICAvLyBwcm9wc1xuICBmb3IgKHZhciBrZXkgaW4gb3B0aW9ucy5wcm9wc0RhdGEpIHtcbiAgICBkYXRhW2tleV0gPSBjb21wW2tleV07XG4gIH1cbiAgLy8gZXZlbnRzLlxuICAvLyBleHRyYWN0IGxpc3RlbmVycyBhbmQgcGFzcyB0aGVtIGRpcmVjdGx5IHRvIHRoZSB0cmFuc2l0aW9uIG1ldGhvZHNcbiAgdmFyIGxpc3RlbmVycyA9IG9wdGlvbnMuX3BhcmVudExpc3RlbmVycztcbiAgZm9yICh2YXIga2V5JDEgaW4gbGlzdGVuZXJzKSB7XG4gICAgZGF0YVtjYW1lbGl6ZShrZXkkMSldID0gbGlzdGVuZXJzW2tleSQxXTtcbiAgfVxuICByZXR1cm4gZGF0YVxufVxuXG5mdW5jdGlvbiBwbGFjZWhvbGRlciAoaCwgcmF3Q2hpbGQpIHtcbiAgaWYgKC9cXGQta2VlcC1hbGl2ZSQvLnRlc3QocmF3Q2hpbGQudGFnKSkge1xuICAgIHJldHVybiBoKCdrZWVwLWFsaXZlJywge1xuICAgICAgcHJvcHM6IHJhd0NoaWxkLmNvbXBvbmVudE9wdGlvbnMucHJvcHNEYXRhXG4gICAgfSlcbiAgfVxufVxuXG5mdW5jdGlvbiBoYXNQYXJlbnRUcmFuc2l0aW9uICh2bm9kZSkge1xuICB3aGlsZSAoKHZub2RlID0gdm5vZGUucGFyZW50KSkge1xuICAgIGlmICh2bm9kZS5kYXRhLnRyYW5zaXRpb24pIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGlzU2FtZUNoaWxkIChjaGlsZCwgb2xkQ2hpbGQpIHtcbiAgcmV0dXJuIG9sZENoaWxkLmtleSA9PT0gY2hpbGQua2V5ICYmIG9sZENoaWxkLnRhZyA9PT0gY2hpbGQudGFnXG59XG5cbnZhciBpc05vdFRleHROb2RlID0gZnVuY3Rpb24gKGMpIHsgcmV0dXJuIGMudGFnIHx8IGlzQXN5bmNQbGFjZWhvbGRlcihjKTsgfTtcblxudmFyIGlzVlNob3dEaXJlY3RpdmUgPSBmdW5jdGlvbiAoZCkgeyByZXR1cm4gZC5uYW1lID09PSAnc2hvdyc7IH07XG5cbnZhciBUcmFuc2l0aW9uID0ge1xuICBuYW1lOiAndHJhbnNpdGlvbicsXG4gIHByb3BzOiB0cmFuc2l0aW9uUHJvcHMsXG4gIGFic3RyYWN0OiB0cnVlLFxuXG4gIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyIChoKSB7XG4gICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cbiAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLiRzbG90cy5kZWZhdWx0O1xuICAgIGlmICghY2hpbGRyZW4pIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIGZpbHRlciBvdXQgdGV4dCBub2RlcyAocG9zc2libGUgd2hpdGVzcGFjZXMpXG4gICAgY2hpbGRyZW4gPSBjaGlsZHJlbi5maWx0ZXIoaXNOb3RUZXh0Tm9kZSk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKCFjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIHdhcm4gbXVsdGlwbGUgZWxlbWVudHNcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyAmJiBjaGlsZHJlbi5sZW5ndGggPiAxKSB7XG4gICAgICB3YXJuKFxuICAgICAgICAnPHRyYW5zaXRpb24+IGNhbiBvbmx5IGJlIHVzZWQgb24gYSBzaW5nbGUgZWxlbWVudC4gVXNlICcgK1xuICAgICAgICAnPHRyYW5zaXRpb24tZ3JvdXA+IGZvciBsaXN0cy4nLFxuICAgICAgICB0aGlzLiRwYXJlbnRcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdmFyIG1vZGUgPSB0aGlzLm1vZGU7XG5cbiAgICAvLyB3YXJuIGludmFsaWQgbW9kZVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgICBtb2RlICYmIG1vZGUgIT09ICdpbi1vdXQnICYmIG1vZGUgIT09ICdvdXQtaW4nXG4gICAgKSB7XG4gICAgICB3YXJuKFxuICAgICAgICAnaW52YWxpZCA8dHJhbnNpdGlvbj4gbW9kZTogJyArIG1vZGUsXG4gICAgICAgIHRoaXMuJHBhcmVudFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB2YXIgcmF3Q2hpbGQgPSBjaGlsZHJlblswXTtcblxuICAgIC8vIGlmIHRoaXMgaXMgYSBjb21wb25lbnQgcm9vdCBub2RlIGFuZCB0aGUgY29tcG9uZW50J3NcbiAgICAvLyBwYXJlbnQgY29udGFpbmVyIG5vZGUgYWxzbyBoYXMgdHJhbnNpdGlvbiwgc2tpcC5cbiAgICBpZiAoaGFzUGFyZW50VHJhbnNpdGlvbih0aGlzLiR2bm9kZSkpIHtcbiAgICAgIHJldHVybiByYXdDaGlsZFxuICAgIH1cblxuICAgIC8vIGFwcGx5IHRyYW5zaXRpb24gZGF0YSB0byBjaGlsZFxuICAgIC8vIHVzZSBnZXRSZWFsQ2hpbGQoKSB0byBpZ25vcmUgYWJzdHJhY3QgY29tcG9uZW50cyBlLmcuIGtlZXAtYWxpdmVcbiAgICB2YXIgY2hpbGQgPSBnZXRSZWFsQ2hpbGQocmF3Q2hpbGQpO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghY2hpbGQpIHtcbiAgICAgIHJldHVybiByYXdDaGlsZFxuICAgIH1cblxuICAgIGlmICh0aGlzLl9sZWF2aW5nKSB7XG4gICAgICByZXR1cm4gcGxhY2Vob2xkZXIoaCwgcmF3Q2hpbGQpXG4gICAgfVxuXG4gICAgLy8gZW5zdXJlIGEga2V5IHRoYXQgaXMgdW5pcXVlIHRvIHRoZSB2bm9kZSB0eXBlIGFuZCB0byB0aGlzIHRyYW5zaXRpb25cbiAgICAvLyBjb21wb25lbnQgaW5zdGFuY2UuIFRoaXMga2V5IHdpbGwgYmUgdXNlZCB0byByZW1vdmUgcGVuZGluZyBsZWF2aW5nIG5vZGVzXG4gICAgLy8gZHVyaW5nIGVudGVyaW5nLlxuICAgIHZhciBpZCA9IFwiX190cmFuc2l0aW9uLVwiICsgKHRoaXMuX3VpZCkgKyBcIi1cIjtcbiAgICBjaGlsZC5rZXkgPSBjaGlsZC5rZXkgPT0gbnVsbFxuICAgICAgPyBjaGlsZC5pc0NvbW1lbnRcbiAgICAgICAgPyBpZCArICdjb21tZW50J1xuICAgICAgICA6IGlkICsgY2hpbGQudGFnXG4gICAgICA6IGlzUHJpbWl0aXZlKGNoaWxkLmtleSlcbiAgICAgICAgPyAoU3RyaW5nKGNoaWxkLmtleSkuaW5kZXhPZihpZCkgPT09IDAgPyBjaGlsZC5rZXkgOiBpZCArIGNoaWxkLmtleSlcbiAgICAgICAgOiBjaGlsZC5rZXk7XG5cbiAgICB2YXIgZGF0YSA9IChjaGlsZC5kYXRhIHx8IChjaGlsZC5kYXRhID0ge30pKS50cmFuc2l0aW9uID0gZXh0cmFjdFRyYW5zaXRpb25EYXRhKHRoaXMpO1xuICAgIHZhciBvbGRSYXdDaGlsZCA9IHRoaXMuX3Zub2RlO1xuICAgIHZhciBvbGRDaGlsZCA9IGdldFJlYWxDaGlsZChvbGRSYXdDaGlsZCk7XG5cbiAgICAvLyBtYXJrIHYtc2hvd1xuICAgIC8vIHNvIHRoYXQgdGhlIHRyYW5zaXRpb24gbW9kdWxlIGNhbiBoYW5kIG92ZXIgdGhlIGNvbnRyb2wgdG8gdGhlIGRpcmVjdGl2ZVxuICAgIGlmIChjaGlsZC5kYXRhLmRpcmVjdGl2ZXMgJiYgY2hpbGQuZGF0YS5kaXJlY3RpdmVzLnNvbWUoaXNWU2hvd0RpcmVjdGl2ZSkpIHtcbiAgICAgIGNoaWxkLmRhdGEuc2hvdyA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgb2xkQ2hpbGQgJiZcbiAgICAgIG9sZENoaWxkLmRhdGEgJiZcbiAgICAgICFpc1NhbWVDaGlsZChjaGlsZCwgb2xkQ2hpbGQpICYmXG4gICAgICAhaXNBc3luY1BsYWNlaG9sZGVyKG9sZENoaWxkKSAmJlxuICAgICAgLy8gIzY2ODcgY29tcG9uZW50IHJvb3QgaXMgYSBjb21tZW50IG5vZGVcbiAgICAgICEob2xkQ2hpbGQuY29tcG9uZW50SW5zdGFuY2UgJiYgb2xkQ2hpbGQuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlLmlzQ29tbWVudClcbiAgICApIHtcbiAgICAgIC8vIHJlcGxhY2Ugb2xkIGNoaWxkIHRyYW5zaXRpb24gZGF0YSB3aXRoIGZyZXNoIG9uZVxuICAgICAgLy8gaW1wb3J0YW50IGZvciBkeW5hbWljIHRyYW5zaXRpb25zIVxuICAgICAgdmFyIG9sZERhdGEgPSBvbGRDaGlsZC5kYXRhLnRyYW5zaXRpb24gPSBleHRlbmQoe30sIGRhdGEpO1xuICAgICAgLy8gaGFuZGxlIHRyYW5zaXRpb24gbW9kZVxuICAgICAgaWYgKG1vZGUgPT09ICdvdXQtaW4nKSB7XG4gICAgICAgIC8vIHJldHVybiBwbGFjZWhvbGRlciBub2RlIGFuZCBxdWV1ZSB1cGRhdGUgd2hlbiBsZWF2ZSBmaW5pc2hlc1xuICAgICAgICB0aGlzLl9sZWF2aW5nID0gdHJ1ZTtcbiAgICAgICAgbWVyZ2VWTm9kZUhvb2sob2xkRGF0YSwgJ2FmdGVyTGVhdmUnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdGhpcyQxLl9sZWF2aW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcyQxLiRmb3JjZVVwZGF0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHBsYWNlaG9sZGVyKGgsIHJhd0NoaWxkKVxuICAgICAgfSBlbHNlIGlmIChtb2RlID09PSAnaW4tb3V0Jykge1xuICAgICAgICBpZiAoaXNBc3luY1BsYWNlaG9sZGVyKGNoaWxkKSkge1xuICAgICAgICAgIHJldHVybiBvbGRSYXdDaGlsZFxuICAgICAgICB9XG4gICAgICAgIHZhciBkZWxheWVkTGVhdmU7XG4gICAgICAgIHZhciBwZXJmb3JtTGVhdmUgPSBmdW5jdGlvbiAoKSB7IGRlbGF5ZWRMZWF2ZSgpOyB9O1xuICAgICAgICBtZXJnZVZOb2RlSG9vayhkYXRhLCAnYWZ0ZXJFbnRlcicsIHBlcmZvcm1MZWF2ZSk7XG4gICAgICAgIG1lcmdlVk5vZGVIb29rKGRhdGEsICdlbnRlckNhbmNlbGxlZCcsIHBlcmZvcm1MZWF2ZSk7XG4gICAgICAgIG1lcmdlVk5vZGVIb29rKG9sZERhdGEsICdkZWxheUxlYXZlJywgZnVuY3Rpb24gKGxlYXZlKSB7IGRlbGF5ZWRMZWF2ZSA9IGxlYXZlOyB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmF3Q2hpbGRcbiAgfVxufTtcblxuLyogICovXG5cbnZhciBwcm9wcyA9IGV4dGVuZCh7XG4gIHRhZzogU3RyaW5nLFxuICBtb3ZlQ2xhc3M6IFN0cmluZ1xufSwgdHJhbnNpdGlvblByb3BzKTtcblxuZGVsZXRlIHByb3BzLm1vZGU7XG5cbnZhciBUcmFuc2l0aW9uR3JvdXAgPSB7XG4gIHByb3BzOiBwcm9wcyxcblxuICBiZWZvcmVNb3VudDogZnVuY3Rpb24gYmVmb3JlTW91bnQgKCkge1xuICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG4gICAgdmFyIHVwZGF0ZSA9IHRoaXMuX3VwZGF0ZTtcbiAgICB0aGlzLl91cGRhdGUgPSBmdW5jdGlvbiAodm5vZGUsIGh5ZHJhdGluZykge1xuICAgICAgdmFyIHJlc3RvcmVBY3RpdmVJbnN0YW5jZSA9IHNldEFjdGl2ZUluc3RhbmNlKHRoaXMkMSk7XG4gICAgICAvLyBmb3JjZSByZW1vdmluZyBwYXNzXG4gICAgICB0aGlzJDEuX19wYXRjaF9fKFxuICAgICAgICB0aGlzJDEuX3Zub2RlLFxuICAgICAgICB0aGlzJDEua2VwdCxcbiAgICAgICAgZmFsc2UsIC8vIGh5ZHJhdGluZ1xuICAgICAgICB0cnVlIC8vIHJlbW92ZU9ubHkgKCFpbXBvcnRhbnQsIGF2b2lkcyB1bm5lY2Vzc2FyeSBtb3ZlcylcbiAgICAgICk7XG4gICAgICB0aGlzJDEuX3Zub2RlID0gdGhpcyQxLmtlcHQ7XG4gICAgICByZXN0b3JlQWN0aXZlSW5zdGFuY2UoKTtcbiAgICAgIHVwZGF0ZS5jYWxsKHRoaXMkMSwgdm5vZGUsIGh5ZHJhdGluZyk7XG4gICAgfTtcbiAgfSxcblxuICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlciAoaCkge1xuICAgIHZhciB0YWcgPSB0aGlzLnRhZyB8fCB0aGlzLiR2bm9kZS5kYXRhLnRhZyB8fCAnc3Bhbic7XG4gICAgdmFyIG1hcCA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4gICAgdmFyIHByZXZDaGlsZHJlbiA9IHRoaXMucHJldkNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbjtcbiAgICB2YXIgcmF3Q2hpbGRyZW4gPSB0aGlzLiRzbG90cy5kZWZhdWx0IHx8IFtdO1xuICAgIHZhciBjaGlsZHJlbiA9IHRoaXMuY2hpbGRyZW4gPSBbXTtcbiAgICB2YXIgdHJhbnNpdGlvbkRhdGEgPSBleHRyYWN0VHJhbnNpdGlvbkRhdGEodGhpcyk7XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJhd0NoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgYyA9IHJhd0NoaWxkcmVuW2ldO1xuICAgICAgaWYgKGMudGFnKSB7XG4gICAgICAgIGlmIChjLmtleSAhPSBudWxsICYmIFN0cmluZyhjLmtleSkuaW5kZXhPZignX192bGlzdCcpICE9PSAwKSB7XG4gICAgICAgICAgY2hpbGRyZW4ucHVzaChjKTtcbiAgICAgICAgICBtYXBbYy5rZXldID0gY1xuICAgICAgICAgIDsoYy5kYXRhIHx8IChjLmRhdGEgPSB7fSkpLnRyYW5zaXRpb24gPSB0cmFuc2l0aW9uRGF0YTtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgdmFyIG9wdHMgPSBjLmNvbXBvbmVudE9wdGlvbnM7XG4gICAgICAgICAgdmFyIG5hbWUgPSBvcHRzID8gKG9wdHMuQ3Rvci5vcHRpb25zLm5hbWUgfHwgb3B0cy50YWcgfHwgJycpIDogYy50YWc7XG4gICAgICAgICAgd2FybigoXCI8dHJhbnNpdGlvbi1ncm91cD4gY2hpbGRyZW4gbXVzdCBiZSBrZXllZDogPFwiICsgbmFtZSArIFwiPlwiKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocHJldkNoaWxkcmVuKSB7XG4gICAgICB2YXIga2VwdCA9IFtdO1xuICAgICAgdmFyIHJlbW92ZWQgPSBbXTtcbiAgICAgIGZvciAodmFyIGkkMSA9IDA7IGkkMSA8IHByZXZDaGlsZHJlbi5sZW5ndGg7IGkkMSsrKSB7XG4gICAgICAgIHZhciBjJDEgPSBwcmV2Q2hpbGRyZW5baSQxXTtcbiAgICAgICAgYyQxLmRhdGEudHJhbnNpdGlvbiA9IHRyYW5zaXRpb25EYXRhO1xuICAgICAgICBjJDEuZGF0YS5wb3MgPSBjJDEuZWxtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBpZiAobWFwW2MkMS5rZXldKSB7XG4gICAgICAgICAga2VwdC5wdXNoKGMkMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVtb3ZlZC5wdXNoKGMkMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMua2VwdCA9IGgodGFnLCBudWxsLCBrZXB0KTtcbiAgICAgIHRoaXMucmVtb3ZlZCA9IHJlbW92ZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGgodGFnLCBudWxsLCBjaGlsZHJlbilcbiAgfSxcblxuICB1cGRhdGVkOiBmdW5jdGlvbiB1cGRhdGVkICgpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLnByZXZDaGlsZHJlbjtcbiAgICB2YXIgbW92ZUNsYXNzID0gdGhpcy5tb3ZlQ2xhc3MgfHwgKCh0aGlzLm5hbWUgfHwgJ3YnKSArICctbW92ZScpO1xuICAgIGlmICghY2hpbGRyZW4ubGVuZ3RoIHx8ICF0aGlzLmhhc01vdmUoY2hpbGRyZW5bMF0uZWxtLCBtb3ZlQ2xhc3MpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyB3ZSBkaXZpZGUgdGhlIHdvcmsgaW50byB0aHJlZSBsb29wcyB0byBhdm9pZCBtaXhpbmcgRE9NIHJlYWRzIGFuZCB3cml0ZXNcbiAgICAvLyBpbiBlYWNoIGl0ZXJhdGlvbiAtIHdoaWNoIGhlbHBzIHByZXZlbnQgbGF5b3V0IHRocmFzaGluZy5cbiAgICBjaGlsZHJlbi5mb3JFYWNoKGNhbGxQZW5kaW5nQ2JzKTtcbiAgICBjaGlsZHJlbi5mb3JFYWNoKHJlY29yZFBvc2l0aW9uKTtcbiAgICBjaGlsZHJlbi5mb3JFYWNoKGFwcGx5VHJhbnNsYXRpb24pO1xuXG4gICAgLy8gZm9yY2UgcmVmbG93IHRvIHB1dCBldmVyeXRoaW5nIGluIHBvc2l0aW9uXG4gICAgLy8gYXNzaWduIHRvIHRoaXMgdG8gYXZvaWQgYmVpbmcgcmVtb3ZlZCBpbiB0cmVlLXNoYWtpbmdcbiAgICAvLyAkZmxvdy1kaXNhYmxlLWxpbmVcbiAgICB0aGlzLl9yZWZsb3cgPSBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDtcblxuICAgIGNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGMpIHtcbiAgICAgIGlmIChjLmRhdGEubW92ZWQpIHtcbiAgICAgICAgdmFyIGVsID0gYy5lbG07XG4gICAgICAgIHZhciBzID0gZWwuc3R5bGU7XG4gICAgICAgIGFkZFRyYW5zaXRpb25DbGFzcyhlbCwgbW92ZUNsYXNzKTtcbiAgICAgICAgcy50cmFuc2Zvcm0gPSBzLldlYmtpdFRyYW5zZm9ybSA9IHMudHJhbnNpdGlvbkR1cmF0aW9uID0gJyc7XG4gICAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIodHJhbnNpdGlvbkVuZEV2ZW50LCBlbC5fbW92ZUNiID0gZnVuY3Rpb24gY2IgKGUpIHtcbiAgICAgICAgICBpZiAoZSAmJiBlLnRhcmdldCAhPT0gZWwpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIWUgfHwgL3RyYW5zZm9ybSQvLnRlc3QoZS5wcm9wZXJ0eU5hbWUpKSB7XG4gICAgICAgICAgICBlbC5yZW1vdmVFdmVudExpc3RlbmVyKHRyYW5zaXRpb25FbmRFdmVudCwgY2IpO1xuICAgICAgICAgICAgZWwuX21vdmVDYiA9IG51bGw7XG4gICAgICAgICAgICByZW1vdmVUcmFuc2l0aW9uQ2xhc3MoZWwsIG1vdmVDbGFzcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSxcblxuICBtZXRob2RzOiB7XG4gICAgaGFzTW92ZTogZnVuY3Rpb24gaGFzTW92ZSAoZWwsIG1vdmVDbGFzcykge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgICBpZiAoIWhhc1RyYW5zaXRpb24pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICAgIGlmICh0aGlzLl9oYXNNb3ZlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNNb3ZlXG4gICAgICB9XG4gICAgICAvLyBEZXRlY3Qgd2hldGhlciBhbiBlbGVtZW50IHdpdGggdGhlIG1vdmUgY2xhc3MgYXBwbGllZCBoYXNcbiAgICAgIC8vIENTUyB0cmFuc2l0aW9ucy4gU2luY2UgdGhlIGVsZW1lbnQgbWF5IGJlIGluc2lkZSBhbiBlbnRlcmluZ1xuICAgICAgLy8gdHJhbnNpdGlvbiBhdCB0aGlzIHZlcnkgbW9tZW50LCB3ZSBtYWtlIGEgY2xvbmUgb2YgaXQgYW5kIHJlbW92ZVxuICAgICAgLy8gYWxsIG90aGVyIHRyYW5zaXRpb24gY2xhc3NlcyBhcHBsaWVkIHRvIGVuc3VyZSBvbmx5IHRoZSBtb3ZlIGNsYXNzXG4gICAgICAvLyBpcyBhcHBsaWVkLlxuICAgICAgdmFyIGNsb25lID0gZWwuY2xvbmVOb2RlKCk7XG4gICAgICBpZiAoZWwuX3RyYW5zaXRpb25DbGFzc2VzKSB7XG4gICAgICAgIGVsLl90cmFuc2l0aW9uQ2xhc3Nlcy5mb3JFYWNoKGZ1bmN0aW9uIChjbHMpIHsgcmVtb3ZlQ2xhc3MoY2xvbmUsIGNscyk7IH0pO1xuICAgICAgfVxuICAgICAgYWRkQ2xhc3MoY2xvbmUsIG1vdmVDbGFzcyk7XG4gICAgICBjbG9uZS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgdGhpcy4kZWwuYXBwZW5kQ2hpbGQoY2xvbmUpO1xuICAgICAgdmFyIGluZm8gPSBnZXRUcmFuc2l0aW9uSW5mbyhjbG9uZSk7XG4gICAgICB0aGlzLiRlbC5yZW1vdmVDaGlsZChjbG9uZSk7XG4gICAgICByZXR1cm4gKHRoaXMuX2hhc01vdmUgPSBpbmZvLmhhc1RyYW5zZm9ybSlcbiAgICB9XG4gIH1cbn07XG5cbmZ1bmN0aW9uIGNhbGxQZW5kaW5nQ2JzIChjKSB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICBpZiAoYy5lbG0uX21vdmVDYikge1xuICAgIGMuZWxtLl9tb3ZlQ2IoKTtcbiAgfVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgaWYgKGMuZWxtLl9lbnRlckNiKSB7XG4gICAgYy5lbG0uX2VudGVyQ2IoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZWNvcmRQb3NpdGlvbiAoYykge1xuICBjLmRhdGEubmV3UG9zID0gYy5lbG0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG59XG5cbmZ1bmN0aW9uIGFwcGx5VHJhbnNsYXRpb24gKGMpIHtcbiAgdmFyIG9sZFBvcyA9IGMuZGF0YS5wb3M7XG4gIHZhciBuZXdQb3MgPSBjLmRhdGEubmV3UG9zO1xuICB2YXIgZHggPSBvbGRQb3MubGVmdCAtIG5ld1Bvcy5sZWZ0O1xuICB2YXIgZHkgPSBvbGRQb3MudG9wIC0gbmV3UG9zLnRvcDtcbiAgaWYgKGR4IHx8IGR5KSB7XG4gICAgYy5kYXRhLm1vdmVkID0gdHJ1ZTtcbiAgICB2YXIgcyA9IGMuZWxtLnN0eWxlO1xuICAgIHMudHJhbnNmb3JtID0gcy5XZWJraXRUcmFuc2Zvcm0gPSBcInRyYW5zbGF0ZShcIiArIGR4ICsgXCJweCxcIiArIGR5ICsgXCJweClcIjtcbiAgICBzLnRyYW5zaXRpb25EdXJhdGlvbiA9ICcwcyc7XG4gIH1cbn1cblxudmFyIHBsYXRmb3JtQ29tcG9uZW50cyA9IHtcbiAgVHJhbnNpdGlvbjogVHJhbnNpdGlvbixcbiAgVHJhbnNpdGlvbkdyb3VwOiBUcmFuc2l0aW9uR3JvdXBcbn07XG5cbi8qICAqL1xuXG4vLyBpbnN0YWxsIHBsYXRmb3JtIHNwZWNpZmljIHV0aWxzXG5WdWUuY29uZmlnLm11c3RVc2VQcm9wID0gbXVzdFVzZVByb3A7XG5WdWUuY29uZmlnLmlzUmVzZXJ2ZWRUYWcgPSBpc1Jlc2VydmVkVGFnO1xuVnVlLmNvbmZpZy5pc1Jlc2VydmVkQXR0ciA9IGlzUmVzZXJ2ZWRBdHRyO1xuVnVlLmNvbmZpZy5nZXRUYWdOYW1lc3BhY2UgPSBnZXRUYWdOYW1lc3BhY2U7XG5WdWUuY29uZmlnLmlzVW5rbm93bkVsZW1lbnQgPSBpc1Vua25vd25FbGVtZW50O1xuXG4vLyBpbnN0YWxsIHBsYXRmb3JtIHJ1bnRpbWUgZGlyZWN0aXZlcyAmIGNvbXBvbmVudHNcbmV4dGVuZChWdWUub3B0aW9ucy5kaXJlY3RpdmVzLCBwbGF0Zm9ybURpcmVjdGl2ZXMpO1xuZXh0ZW5kKFZ1ZS5vcHRpb25zLmNvbXBvbmVudHMsIHBsYXRmb3JtQ29tcG9uZW50cyk7XG5cbi8vIGluc3RhbGwgcGxhdGZvcm0gcGF0Y2ggZnVuY3Rpb25cblZ1ZS5wcm90b3R5cGUuX19wYXRjaF9fID0gaW5Ccm93c2VyID8gcGF0Y2ggOiBub29wO1xuXG4vLyBwdWJsaWMgbW91bnQgbWV0aG9kXG5WdWUucHJvdG90eXBlLiRtb3VudCA9IGZ1bmN0aW9uIChcbiAgZWwsXG4gIGh5ZHJhdGluZ1xuKSB7XG4gIGVsID0gZWwgJiYgaW5Ccm93c2VyID8gcXVlcnkoZWwpIDogdW5kZWZpbmVkO1xuICByZXR1cm4gbW91bnRDb21wb25lbnQodGhpcywgZWwsIGh5ZHJhdGluZylcbn07XG5cbi8vIGRldnRvb2xzIGdsb2JhbCBob29rXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuaWYgKGluQnJvd3Nlcikge1xuICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoY29uZmlnLmRldnRvb2xzKSB7XG4gICAgICBpZiAoZGV2dG9vbHMpIHtcbiAgICAgICAgZGV2dG9vbHMuZW1pdCgnaW5pdCcsIFZ1ZSk7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAndGVzdCdcbiAgICAgICkge1xuICAgICAgICBjb25zb2xlW2NvbnNvbGUuaW5mbyA/ICdpbmZvJyA6ICdsb2cnXShcbiAgICAgICAgICAnRG93bmxvYWQgdGhlIFZ1ZSBEZXZ0b29scyBleHRlbnNpb24gZm9yIGEgYmV0dGVyIGRldmVsb3BtZW50IGV4cGVyaWVuY2U6XFxuJyArXG4gICAgICAgICAgJ2h0dHBzOi8vZ2l0aHViLmNvbS92dWVqcy92dWUtZGV2dG9vbHMnXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Rlc3QnICYmXG4gICAgICBjb25maWcucHJvZHVjdGlvblRpcCAhPT0gZmFsc2UgJiZcbiAgICAgIHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJ1xuICAgICkge1xuICAgICAgY29uc29sZVtjb25zb2xlLmluZm8gPyAnaW5mbycgOiAnbG9nJ10oXG4gICAgICAgIFwiWW91IGFyZSBydW5uaW5nIFZ1ZSBpbiBkZXZlbG9wbWVudCBtb2RlLlxcblwiICtcbiAgICAgICAgXCJNYWtlIHN1cmUgdG8gdHVybiBvbiBwcm9kdWN0aW9uIG1vZGUgd2hlbiBkZXBsb3lpbmcgZm9yIHByb2R1Y3Rpb24uXFxuXCIgK1xuICAgICAgICBcIlNlZSBtb3JlIHRpcHMgYXQgaHR0cHM6Ly92dWVqcy5vcmcvZ3VpZGUvZGVwbG95bWVudC5odG1sXCJcbiAgICAgICk7XG4gICAgfVxuICB9LCAwKTtcbn1cblxuLyogICovXG5cbmV4cG9ydCBkZWZhdWx0IFZ1ZTtcbiIsImV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7XG4gIGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoO1xuXG4gIGZvciAodmFyIGkgPSAwLCBhcnIyID0gbmV3IEFycmF5KGxlbik7IGkgPCBsZW47IGkrKykge1xuICAgIGFycjJbaV0gPSBhcnJbaV07XG4gIH1cblxuICByZXR1cm4gYXJyMjtcbn0iLCJpbXBvcnQgYXJyYXlMaWtlVG9BcnJheSBmcm9tIFwiLi9hcnJheUxpa2VUb0FycmF5LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGFycikpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KGFycik7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG4gIH1cbn0iLCJmdW5jdGlvbiBfZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldO1xuICAgIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZTtcbiAgICBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7XG4gICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX2NyZWF0ZUNsYXNzKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykge1xuICBpZiAocHJvdG9Qcm9wcykgX2RlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKTtcbiAgaWYgKHN0YXRpY1Byb3BzKSBfZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29uc3RydWN0b3IsIFwicHJvdG90eXBlXCIsIHtcbiAgICB3cml0YWJsZTogZmFsc2VcbiAgfSk7XG4gIHJldHVybiBDb25zdHJ1Y3Rvcjtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfZGVmaW5lUHJvcGVydHkob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn0iLCJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5KGl0ZXIpIHtcbiAgaWYgKHR5cGVvZiBTeW1ib2wgIT09IFwidW5kZWZpbmVkXCIgJiYgaXRlcltTeW1ib2wuaXRlcmF0b3JdICE9IG51bGwgfHwgaXRlcltcIkBAaXRlcmF0b3JcIl0gIT0gbnVsbCkgcmV0dXJuIEFycmF5LmZyb20oaXRlcik7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX25vbkl0ZXJhYmxlU3ByZWFkKCkge1xuICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXFxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLlwiKTtcbn0iLCJpbXBvcnQgYXJyYXlXaXRob3V0SG9sZXMgZnJvbSBcIi4vYXJyYXlXaXRob3V0SG9sZXMuanNcIjtcbmltcG9ydCBpdGVyYWJsZVRvQXJyYXkgZnJvbSBcIi4vaXRlcmFibGVUb0FycmF5LmpzXCI7XG5pbXBvcnQgdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkgZnJvbSBcIi4vdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkuanNcIjtcbmltcG9ydCBub25JdGVyYWJsZVNwcmVhZCBmcm9tIFwiLi9ub25JdGVyYWJsZVNwcmVhZC5qc1wiO1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3RvQ29uc3VtYWJsZUFycmF5KGFycikge1xuICByZXR1cm4gYXJyYXlXaXRob3V0SG9sZXMoYXJyKSB8fCBpdGVyYWJsZVRvQXJyYXkoYXJyKSB8fCB1bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheShhcnIpIHx8IG5vbkl0ZXJhYmxlU3ByZWFkKCk7XG59IiwiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gX3R5cGVvZihvYmopIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIHJldHVybiBfdHlwZW9mID0gXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgXCJzeW1ib2xcIiA9PSB0eXBlb2YgU3ltYm9sLml0ZXJhdG9yID8gZnVuY3Rpb24gKG9iaikge1xuICAgIHJldHVybiB0eXBlb2Ygb2JqO1xuICB9IDogZnVuY3Rpb24gKG9iaikge1xuICAgIHJldHVybiBvYmogJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgb2JqLmNvbnN0cnVjdG9yID09PSBTeW1ib2wgJiYgb2JqICE9PSBTeW1ib2wucHJvdG90eXBlID8gXCJzeW1ib2xcIiA6IHR5cGVvZiBvYmo7XG4gIH0sIF90eXBlb2Yob2JqKTtcbn0iLCJpbXBvcnQgYXJyYXlMaWtlVG9BcnJheSBmcm9tIFwiLi9hcnJheUxpa2VUb0FycmF5LmpzXCI7XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkobywgbWluTGVuKSB7XG4gIGlmICghbykgcmV0dXJuO1xuICBpZiAodHlwZW9mIG8gPT09IFwic3RyaW5nXCIpIHJldHVybiBhcnJheUxpa2VUb0FycmF5KG8sIG1pbkxlbik7XG4gIHZhciBuID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTtcbiAgaWYgKG4gPT09IFwiT2JqZWN0XCIgJiYgby5jb25zdHJ1Y3RvcikgbiA9IG8uY29uc3RydWN0b3IubmFtZTtcbiAgaWYgKG4gPT09IFwiTWFwXCIgfHwgbiA9PT0gXCJTZXRcIikgcmV0dXJuIEFycmF5LmZyb20obyk7XG4gIGlmIChuID09PSBcIkFyZ3VtZW50c1wiIHx8IC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KG4pKSByZXR1cm4gYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pO1xufSIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0aWQ6IG1vZHVsZUlkLFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4vLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuX193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHRmdW5jdGlvbigpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcblx0XHRmdW5jdGlvbigpIHsgcmV0dXJuIG1vZHVsZTsgfTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIGRlZmluaXRpb24pIHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSBmdW5jdGlvbihvYmosIHByb3ApIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApOyB9IiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gZnVuY3Rpb24oZXhwb3J0cykge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmIgPSBkb2N1bWVudC5iYXNlVVJJIHx8IHNlbGYubG9jYXRpb24uaHJlZjtcblxuLy8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBhbmQgbG9hZGluZyBjaHVua3Ncbi8vIHVuZGVmaW5lZCA9IGNodW5rIG5vdCBsb2FkZWQsIG51bGwgPSBjaHVuayBwcmVsb2FkZWQvcHJlZmV0Y2hlZFxuLy8gW3Jlc29sdmUsIHJlamVjdCwgUHJvbWlzZV0gPSBjaHVuayBsb2FkaW5nLCAwID0gY2h1bmsgbG9hZGVkXG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHRcIm1haW5cIjogMFxufTtcblxuLy8gbm8gY2h1bmsgb24gZGVtYW5kIGxvYWRpbmdcblxuLy8gbm8gcHJlZmV0Y2hpbmdcblxuLy8gbm8gcHJlbG9hZGVkXG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3RcblxuLy8gbm8gb24gY2h1bmtzIGxvYWRlZFxuXG4vLyBubyBqc29ucCBmdW5jdGlvbiIsImltcG9ydCBWdWUgZnJvbSAndnVlJ1xuaW1wb3J0IEFwcCBmcm9tICcuL2FwcCdcblxuLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9xdWFzYXJmcmFtZXdvcmsvcXVhc2FyL2lzc3Vlcy8xNTc2XG4vLyBmb3IgdGhlIGluZm9ybWF0aW9uIGFib3V0IFF1YXNhciBpbnRlZ3JhdGlvbiBpbnRvIGV4aXN0aW5nIGFwcC5cbmltcG9ydCAncXVhc2FyLWZyYW1ld29yay9kaXN0L3VtZC9xdWFzYXIubWF0LmNzcydcbmltcG9ydCBRdWFzYXIgZnJvbSAncXVhc2FyLWZyYW1ld29yay9kaXN0L3F1YXNhci5tYXQuZXNtJ1xuVnVlLnVzZShRdWFzYXIpXG5cbm5ldyBWdWUoe1xuXHRlbDogJyNhcHAnLFxuXHRyZW5kZXI6IChoKSA9PiBoKEFwcCksXG59KVxuIl0sIm5hbWVzIjpbIm5hbWUiLCJzaG9ydF9uYW1lcyIsImtleXdvcmRzIiwiaW1hZ2VVcmwiLCJjdXN0b20iLCJlbW9qaXNUb1Nob3dGaWx0ZXIiLCJjYXRlZ29yaWVzIiwic2VhcmNoIiwicmVjZW50Iiwic21pbGV5cyIsInBlb3BsZSIsIm5hdHVyZSIsImZvb2RzIiwiYWN0aXZpdHkiLCJwbGFjZXMiLCJvYmplY3RzIiwic3ltYm9scyIsImZsYWdzIiwiZXhjbHVkZSIsImluY2x1ZGUiLCJkYXRhIiwiaW5kZXgiLCJpbmRleEZpbHRlcmVkIiwiaW5kZXhJbmNsdWRlIiwiaW5kZXhJMThuIiwiaTE4biIsImFjdGl2ZVNldCIsImVtb2ppIiwidGl0bGUiLCJpc1Zpc2libGUiLCJlbW9qaVBpY2tlckRpYWxvZyIsImVtb2ppUGlja2VyQ3VzdG9tRGlhbG9nIiwiZW1vamlzT3V0cHV0Iiwic2VsZWN0ZWRFbW9qaXMiLCJmbGFnc1Zpc2libGUiLCJjb21wdXRlZCIsIm5hdGl2ZSIsInNtaWxlIiwic2FudGFFbW9qaU9iamVjdCIsIm1ldGhvZHMiLCJ0b2dnbGVWaXNpYmxlIiwidG9nZ2xlRmxhZ3NWaXNpYmxlIiwic2hvd0Vtb2ppIiwiY29tcG9uZW50cyIsIlBpY2tlciIsIkVtb2ppIiwiUUJ0biIsIlFEaWFsb2ciLCJwcm9wcyIsIkVtb2ppUHJvcHMiLCJ0eXBlIiwicmVxdWlyZWQiLCJ2aWV3Iiwic2FuaXRpemVkRGF0YSIsImVtb2ppT2JqZWN0IiwiY3JlYXRlZCIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJvbk1vdXNlTGVhdmUiLCJub3Rmb3VuZCIsIlBpY2tlclByb3BzIiwiYWN0aXZlU2tpbiIsImN1c3RvbVN0eWxlcyIsIndpZHRoIiwiZW1vamlQcm9wcyIsInNraW4iLCJzZXQiLCJlbW9qaVRvb2x0aXAiLCJlbW9qaVNpemUiLCJzZWxlY3RlZEVtb2ppIiwic2VsZWN0ZWRFbW9qaUNhdGVnb3J5Iiwib25FbnRlciIsIm9uTGVhdmUiLCJza2luUHJvcHMiLCJjYWxjdWxhdGVXaWR0aCIsImZpbHRlcmVkQ2F0ZWdvcmllcyIsIm1lcmdlZEkxOG4iLCJpZGxlRW1vamkiLCJjb25zb2xlIiwib25TY3JvbGwiLCJ3aW5kb3ciLCJvblNjcm9sbFBhaW50Iiwib25BbmNob3JDbGljayIsImNhdGVnb3J5Iiwib25TZWFyY2giLCJ2YWx1ZSIsIm9uRW1vamlFbnRlciIsIm9uRW1vamlMZWF2ZSIsIm9uQXJyb3dMZWZ0IiwiJGV2ZW50Iiwib25BcnJvd1JpZ2h0Iiwib25BcnJvd0Rvd24iLCJvbkFycm93VXAiLCJmcmVxdWVudGx5Iiwib25FbW9qaUNsaWNrIiwib25Ta2luQ2hhbmdlIiwic3RvcmUiLCJnZXRDYXRlZ29yeUNvbXBvbmVudCIsIkFuY2hvcnMiLCJDYXRlZ29yeSIsIlByZXZpZXciLCJTZWFyY2giLCJjb2xvciIsImFjdGl2ZUNhdGVnb3J5IiwiZGVmYXVsdCIsImlkIiwiZW1vamlzIiwiYWN0aXZlQ2xhc3MiLCJpc1NlYXJjaCIsImhhc1Jlc3VsdHMiLCJlbW9qaU9iamVjdHMiLCJlbW9qaVZpZXciLCJzaG93U2tpblRvbmVzIiwiZW1vamlEYXRhIiwiZW1vamlTaG9ydE5hbWVzIiwiZW1vamlFbW90aWNvbnMiLCJTa2lucyIsImF1dG9Gb2N1cyIsImVtb2ppSW5kZXgiLCJ3YXRjaCIsImNsZWFyIiwibW91bnRlZCIsIiRpbnB1dCIsIm9wZW5lZCIsInNraW5Ub25lIiwidW5jb21wcmVzcyIsIkVtb2ppSW5kZXgiLCJFbW9qaVZpZXciLCJFbW9qaURhdGEiLCJzYW5pdGl6ZSIsIl9TdHJpbmciLCJTdHJpbmciLCJmcm9tQ29kZVBvaW50Iiwic3RyaW5nRnJvbUNvZGVQb2ludCIsIk1BWF9TSVpFIiwiY29kZVVuaXRzIiwiaGlnaFN1cnJvZ2F0ZSIsImxvd1N1cnJvZ2F0ZSIsImxlbmd0aCIsImFyZ3VtZW50cyIsInJlc3VsdCIsImNvZGVQb2ludCIsIk51bWJlciIsImlzRmluaXRlIiwiTWF0aCIsImZsb29yIiwiUmFuZ2VFcnJvciIsInB1c2giLCJmcm9tQ2hhckNvZGUiLCJhcHBseSIsIlNWR3MiLCJtYXBwaW5nIiwidW5pZmllZCIsIm5vbl9xdWFsaWZpZWQiLCJoYXNfaW1nX2FwcGxlIiwiaGFzX2ltZ19nb29nbGUiLCJoYXNfaW1nX3R3aXR0ZXIiLCJoYXNfaW1nX2ZhY2Vib29rIiwic2hlZXQiLCJlbW90aWNvbnMiLCJ0ZXh0IiwiYWRkZWRfaW4iLCJidWlsZFNlYXJjaCIsImFkZFRvU2VhcmNoIiwic3RyaW5ncyIsInNwbGl0IiwiQXJyYXkiLCJpc0FycmF5IiwiZm9yRWFjaCIsInN0cmluZyIsInMiLCJ0b0xvd2VyQ2FzZSIsImluZGV4T2YiLCJqb2luIiwiZGVlcEZyZWV6ZSIsIm9iamVjdCIsInByb3BOYW1lcyIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJmcmVlemUiLCJjb21wcmVzc2VkIiwia2V5IiwidW5zaGlmdCIsInNoZWV0X3giLCJzaGVldF95IiwidG9GaXhlZCIsImludGVyc2VjdCIsInVuaWZpZWRUb05hdGl2ZSIsIlNIRUVUX0NPTFVNTlMiLCJDT0xPTlNfUkVHRVgiLCJTS0lOUyIsInJlY2VudExlbmd0aCIsIl9kYXRhIiwiX2Vtb2ppc0ZpbHRlciIsIl9pbmNsdWRlIiwiX2V4Y2x1ZGUiLCJfY3VzdG9tIiwiX3JlY2VudCIsImdldCIsIl9lbW9qaXMiLCJfbmF0aXZlRW1vamlzIiwiX2Vtb3RpY29ucyIsIl9jYXRlZ29yaWVzIiwiX3JlY2VudENhdGVnb3J5IiwiX2N1c3RvbUNhdGVnb3J5IiwiX3NlYXJjaEluZGV4IiwiYnVpbGRJbmRleCIsImFsbENhdGVnb3JpZXMiLCJmaWx0ZXIiLCJpdGVtIiwiaW5jbHVkZXMiLCJzb3J0IiwiYSIsImIiLCJpbmRleEEiLCJpbmRleEIiLCJjYXRlZ29yeURhdGEiLCJpc0NhdGVnb3J5TmVlZGVkIiwiZW1vamlJZCIsImFkZEVtb2ppIiwiY3VzdG9tRW1vamkiLCJhZGRDdXN0b21FbW9qaSIsIm1hcCIsImhhc0Vtb2ppIiwibWF0Y2hlcyIsIm1hdGNoIiwicGFyc2VJbnQiLCJhbGlhc2VzIiwiaGFzT3duUHJvcGVydHkiLCJnZXRTa2luIiwiRXJyb3IiLCJrZXlzIiwidW5pY29kZUVtb2ppIiwibWF4UmVzdWx0cyIsInZhbHVlcyIsImFsbFJlc3VsdHMiLCJjdXJyZW50SW5kZXgiLCJjaGFySW5kZXgiLCJjaGFyIiwicmVzdWx0cyIsInNjb3JlcyIsInN1YiIsInN1YnN0ciIsInN1YkluZGV4Iiwic2NvcmUiLCJhU2NvcmUiLCJiU2NvcmUiLCJzbGljZSIsImFzc2lnbiIsImlzRW1vamlOZWVkZWQiLCJfc2tpbnMiLCJpZHgiLCJlbW90aWNvbiIsImNhdGVnb3J5X2lkIiwiaXNJbmNsdWRlZCIsImlzRXhjbHVkZWQiLCJza2luX3ZhcmlhdGlvbnMiLCJza2luSWR4Iiwic2tpbktleSIsInZhcmlhdGlvbkRhdGEiLCJza2luRGF0YSIsImsiLCJfc2FuaXRpemVkIiwic2hvcnRfbmFtZSIsImFkanVzdGVkQ29sdW1ucyIsIngiLCJ5IiwiY29uY2F0IiwiQm9vbGVhbiIsImZhbGxiYWNrIiwiX2Vtb2ppIiwiX25hdGl2ZSIsIl9za2luIiwiX3NldCIsIl9mYWxsYmFjayIsImNhblJlbmRlciIsIl9jYW5SZW5kZXIiLCJjc3NDbGFzcyIsIl9jc3NDbGFzcyIsImNzc1N0eWxlIiwiX2Nzc1N0eWxlIiwiY29udGVudCIsIl9jb250ZW50IiwiYXJpYUxhYmVsIiwiX2lzQ3VzdG9tIiwiX2lzTmF0aXZlIiwiX2hhc0Vtb2ppIiwiX2Vtb2ppVHlwZSIsImJhY2tncm91bmRJbWFnZSIsImdldEVtb2ppIiwiYmFja2dyb3VuZFNpemUiLCJoZWlnaHQiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJnZXRQb3NpdGlvbiIsImZvbnRTaXplIiwicm91bmQiLCJoYXNJbWFnZSIsInVuZGVmaW5lZCIsInNraW5fdG9uZSIsImNvbG9ucyIsIkRFRkFVTFRTIiwiaW5pdGlhbGl6ZWQiLCJkZWZhdWx0cyIsImluaXQiLCJhZGQiLCJtYXhOdW1iZXIiLCJkZWZhdWx0TGVuZ3RoIiwibWluIiwiaSIsInF1YW50aXR5IiwiZnJlcXVlbnRseUtleXMiLCJzb3J0ZWQiLCJyZXZlcnNlIiwic2xpY2VkIiwibGFzdCIsInBvcCIsInVuaWNvZGVzIiwiY29kZVBvaW50cyIsInUiLCJ1bmlxIiwiYXJyIiwicmVkdWNlIiwiYWNjIiwidW5pcUEiLCJ1bmlxQiIsImRlZXBNZXJnZSIsIm8iLCJvcmlnaW5hbFZhbHVlIiwibWVhc3VyZVNjcm9sbGJhciIsImRvY3VtZW50IiwiZGl2IiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwib3ZlcmZsb3ciLCJwb3NpdGlvbiIsInRvcCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsInNjcm9sbGJhcldpZHRoIiwib2Zmc2V0V2lkdGgiLCJjbGllbnRXaWR0aCIsInJlbW92ZUNoaWxkIiwiUGlja2VyVmlldyIsInBpY2tlckNvbXBvbmVudCIsIl92bSIsIl9wZXJMaW5lIiwicGVyTGluZSIsImZpcnN0Iiwic2VhcmNoRW1vamlzIiwicHJldmlld0Vtb2ppIiwicHJldmlld0Vtb2ppQ2F0ZWdvcnlJZHgiLCJwcmV2aWV3RW1vamlJZHgiLCJzY3JvbGxFbGVtZW50IiwiJHJlZnMiLCJzY3JvbGwiLCJzY3JvbGxUb3AiLCJsIiwiY29tcG9uZW50IiwiJGVsIiwib2Zmc2V0VG9wIiwiaGFzRW1vamlzIiwic2Nyb2xsVG9Db21wb25lbnQiLCJpbmZpbml0ZVNjcm9sbCIsIm1heFNlYXJjaFJlc3VsdHMiLCJ1cGRhdGVQcmV2aWV3RW1vamkiLCJlbW9qaXNMZW5ndGgiLCJjYXRlZ29yeUxlbmd0aCIsImRpZmYiLCJwcmV2Q2F0ZWdvcnlMYXN0Um93TGVuZ3RoIiwiJG5leHRUaWNrIiwic2Nyb2xsRWwiLCJlbW9qaUVsIiwicXVlcnlTZWxlY3RvciIsInNjcm9sbEhlaWdodCIsIm9mZnNldEhlaWdodCIsImNhdGVnb3J5SWR4IiwidG9vbHRpcCIsIkZ1bmN0aW9uIiwic2l6ZSIsInRhZyIsImRlZmF1bHRTa2luIiwic2hvd1ByZXZpZXciLCJzaG93U2VhcmNoIiwic2hvd0NhdGVnb3JpZXMiLCJwaWNrZXJTdHlsZXMiLCJOQU1FU1BBQ0UiLCJfSlNPTiIsIkpTT04iLCJpc0xvY2FsU3RvcmFnZVN1cHBvcnRlZCIsImdldHRlciIsInNldHRlciIsInNldEhhbmRsZXJzIiwiaGFuZGxlcnMiLCJzZXROYW1lc3BhY2UiLCJuYW1lc3BhY2UiLCJ1cGRhdGUiLCJzdGF0ZSIsImxvY2FsU3RvcmFnZSIsInN0cmluZ2lmeSIsImUiLCJwYXJzZSIsImlzV2luZG93QXZhaWxhYmxlIiwibGFzdFRpbWUiLCJ2ZW5kb3JzIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJjYWxsYmFjayIsImVsZW1lbnQiLCJjdXJyVGltZSIsIkRhdGUiLCJnZXRUaW1lIiwidGltZVRvQ2FsbCIsIm1heCIsInNldFRpbWVvdXQiLCJjbGVhclRpbWVvdXQiLCJWdWUiLCJBcHAiLCJRdWFzYXIiLCJ1c2UiLCJlbCIsInJlbmRlciIsImgiXSwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file