@lowcodeunit/applications-flow-common 1.34.61-lets-get-social-ish → 1.34.64-krakyn-app
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/controls/dfs-modifiers-form/dfs-modifiers-form.component.mjs +2 -4
- package/esm2020/lib/controls/processor-details-form/processor-details-form.component.mjs +3 -3
- package/esm2020/lib/dialogs/build-pipeline-dialog/build-pipeline-dialog.component.mjs +9 -9
- package/esm2020/lib/dialogs/source-control-dialog/source-control-dialog.component.mjs +12 -12
- package/esm2020/lib/elements/main-feed-card/main-feed-card.component.mjs +4 -3
- package/esm2020/lib/elements/projects/controls/project-items/project-items.component.mjs +2 -4
- package/esm2020/lib/elements/projects/controls/tabs/devops/devops.component.mjs +6 -4
- package/esm2020/lib/elements/projects/controls/tabs/dfs-modifiers/dfs-modifiers.component.mjs +2 -4
- package/esm2020/lib/services/applications-flow.service.mjs +2 -22
- package/esm2020/lib/services/eac.service.mjs +53 -13
- package/esm2020/lib/services/project.service.mjs +1 -81
- package/fesm2015/lowcodeunit-applications-flow-common.mjs +87 -150
- package/fesm2015/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/fesm2020/lowcodeunit-applications-flow-common.mjs +85 -148
- package/fesm2020/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/lib/dialogs/source-control-dialog/source-control-dialog.component.d.ts +2 -1
- package/lib/elements/main-feed-card/main-feed-card.component.d.ts +1 -1
- package/lib/services/applications-flow.service.d.ts +0 -4
- package/lib/services/eac.service.d.ts +5 -4
- package/lib/services/project.service.d.ts +0 -4
- package/package.json +1 -1
|
@@ -104,9 +104,7 @@ export class DFSModifiersFormComponent {
|
|
|
104
104
|
this.SetEditingModifier(Guid.CreateRaw());
|
|
105
105
|
}
|
|
106
106
|
DeleteModifier(modifierLookup, modifierName) {
|
|
107
|
-
|
|
108
|
-
this.eacSvc.DeleteSourceControl(modifierLookup);
|
|
109
|
-
}
|
|
107
|
+
this.eacSvc.DeleteModifier(modifierLookup, modifierName).then();
|
|
110
108
|
}
|
|
111
109
|
SaveModifierForAllProjects(projectLookups) {
|
|
112
110
|
const saveMdfrReq = {
|
|
@@ -274,4 +272,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
|
|
|
274
272
|
type: Input,
|
|
275
273
|
args: ['level']
|
|
276
274
|
}] } });
|
|
277
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZzLW1vZGlmaWVycy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2NvbnRyb2xzL2Rmcy1tb2RpZmllcnMtZm9ybS9kZnMtbW9kaWZpZXJzLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvZGZzLW1vZGlmaWVycy1mb3JtL2Rmcy1tb2RpZmllcnMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBSUwsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFPeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVduQyxNQUFNLE9BQU8seUJBQXlCO0lBOEhwQyxnQkFBZ0I7SUFDaEIsWUFDWSxRQUFxQixFQUNyQixXQUFvQyxFQUNwQyxNQUFrQjtRQUZsQixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBRTVCLHFDQUFxQztJQUN2QyxDQUFDO0lBbkdELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUztZQUN2QixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUM7WUFDNUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUVULElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMs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bmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUdyb3VwLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5cbmltcG9ydCB7XG4gIEVhQ0RGU01vZGlmaWVyLFxuICBFYUNQcm9qZWN0QXNDb2RlLFxufSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgR3VpZCB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBFYUNTZXJ2aWNlLCBTYXZlREZTTW9kaWZpZXJFdmVudFJlcXVlc3QgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcGxpY2F0aW9ucy1mbG93LnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25zRmxvd1N0YXRlIH0gZnJvbSAnLi4vLi4vc3RhdGUvYXBwbGljYXRpb25zLWZsb3cuc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsY3UtZGZzLW1vZGlmaWVyLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGZzLW1vZGlmaWVycy1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGZzLW1vZGlmaWVycy1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERGU01vZGlmaWVyc0Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyAgRmllbGRzXG5cbiAgLy8gIFByb3BlcnRpZXNcbiAgcHVibGljIEN1cnJlbnRUeXBlOiBzdHJpbmc7XG5cbiAgLy8gQElucHV0KCdkYXRhJylcbiAgLy8gcHVibGljIERhdGE6IHtcbiAgLy8gICBNb2RpZmllcnM6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDREZTTW9kaWZpZXIgfTtcbiAgLy8gICBQcm9qZWN0OiBFYUNQcm9qZWN0QXNDb2RlO1xuICAvLyAgIFByb2plY3RMb29rdXA6IHN0cmluZztcbiAgLy8gfTtcblxuICBASW5wdXQoJ2VkaXRpbmctbW9kaWZpZXItbG9va3VwJylcbiAgcHVibGljIEVkaXRpbmdNb2RpZmllckxvb2t1cDogc3RyaW5nO1xuXG4gIC8qKlNwZWNpZmljIE1vZGlmaWVycyBmb3IgZWl0aGVyIHRoZSBwcm9qZWN0IG9yIGFwcGxpYWN0aW9uICovXG5cbiAgLy8gQElucHV0KCdtb2RpZmllcnMnKVxuICAvLyBwdWJsaWMgTW9kaWZpZXJzOiAgeyBbbG9va3VwOiBzdHJpbmddOiBFYUNERlNNb2RpZmllciB9O1xuXG4gIEBJbnB1dCgnYXBwbGljYXRpb24tbG9va3VwJylcbiAgICBwdWJsaWMgQXBwbGljYXRpb25Mb29rdXA6IHN0cmluZztcblxuICBASW5wdXQoJ3Byb2plY3QnKVxuICBwdWJsaWMgUHJvamVjdDogRWFDUHJvamVjdEFzQ29kZTtcblxuICBASW5wdXQoJ3Byb2plY3QtbG9va3VwJylcbiAgcHVibGljIFByb2plY3RMb29rdXA6IHN0cmluZztcblxuICAvKip3aGljaCBsZXZlbCBpcyB0aGUgZGZzIG1vZGlmaWVyIGJlaW5nIGVkaXRlZCBlbnQgcHJvamVjdCBvciBhcHAgKi9cbiAgQElucHV0KCdsZXZlbCcpXG4gIHB1YmxpYyBMZXZlbDogc3RyaW5nO1xuXG4gIHB1YmxpYyBnZXQgRGV0YWlsc0Zvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXA/LmNvbnRyb2xzLmRldGFpbHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IEVkaXRpbmdNb2RpZmllcigpOiBFYUNERlNNb2RpZmllciB7XG4gICAgbGV0IG1kZnIgPSB0aGlzLk1vZGlmaWVyc1xuICAgICAgPyB0aGlzLk1vZGlmaWVyc1t0aGlzLkVkaXRpbmdNb2RpZmllckxvb2t1cF1cbiAgICAgIDogbnVsbDtcblxuICAgIGlmIChtZGZyID09IG51bGwgJiYgdGhpcy5FZGl0aW5nTW9kaWZpZXJMb29rdXApIHtcbiAgICAgIG1kZnIgPSB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWRmcjtcbiAgfVxuXG4gIC8vIHB1YmxpYyBFZGl0aW5nTW9kaWZpZXJMb29rdXA6IHN0cmluZztcblxuICBwdWJsaWMgZ2V0IEVuYWJsZWRGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwPy5jb250cm9scy5lbmFibGVkO1xuICB9XG5cblxuICBwdWJsaWMgZ2V0IEVudGVycHJpc2VzTW9kaWZpZXJMb29rdXBzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLk1vZGlmaWVycyB8fCB7fSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IExvY2F0aW9uRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Nb2RpZmllckZvcm1Hcm91cD8uY29udHJvbHMubG9jYXRpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IE1vZGlmaWVycygpOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0RGU01vZGlmaWVyIH0ge1xuICAgIHJldHVybiB0aGlzLlN0YXRlPy5FYUM/Lk1vZGlmaWVycztcbiAgfVxuXG5cbiAgcHVibGljIGdldCBNb2RpZmllckxvb2t1cHMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgaWYodGhpcy5Qcm9qZWN0TG9va3VwKXtcbiAgICAgIHJldHVybiB0aGlzLlN0YXRlPy5FYUM/LlByb2plY3RzW3RoaXMuUHJvamVjdExvb2t1cF0/Lk1vZGlmaWVyTG9va3VwcztcbiAgICB9XG4gICAgZWxzZSBpZih0aGlzLkFwcGxpY2F0aW9uTG9va3VwKXtcbiAgICAgIHJldHVybiB0aGlzLlN0YXRlLkVhQz8uQXBwbGljYXRpb25zW3RoaXMuQXBwbGljYXRpb25Mb29rdXBdPy5Nb2RpZmllckxvb2t1cHM7XG4gICAgfVxuICAgIGVsc2V7XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5Nb2RpZmllcnMgfHwge30pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgTXVsdGlTZWxlY3RGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLk1vZGlmaWVyU2VsZWN0Rm9ybUdyb3VwPy5jb250cm9scy5tdWx0aVNlbGVjdDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgTmFtZUZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXA/LmNvbnRyb2xzLm5hbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IFBhdGhGaWx0ZXJGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwPy5jb250cm9scy5wYXRoRmlsdGVyO1xuICB9XG5cbiAgcHVibGljIGdldCBQcmlvcml0eUZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXA/LmNvbnRyb2xzLnByaW9yaXR5O1xuICB9XG5cbiAgLy8gcHVibGljIGdldCBQcm9qZWN0KCk6IEVhQ1Byb2plY3RBc0NvZGUge1xuICAvLyAgIHJldHVybiB0aGlzLkRhdGEuUHJvamVjdCB8fCB7fTtcbiAgLy8gfVxuXG4gIHB1YmxpYyBnZXQgU2NyaXB0Rm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Nb2RpZmllckZvcm1Hcm91cD8uY29udHJvbHMuc2NyaXB0O1xuICB9XG5cbiAgcHVibGljIGdldCBTY3JpcHRJREZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXA/LmNvbnRyb2xzLnNjcmlwdElkO1xuICB9XG5cbiAgcHVibGljIGdldCBTdGF0ZURhdGFUb2tlbkZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXA/LmNvbnRyb2xzLnN0YXRlRGF0YVRva2VuO1xuICB9XG5cbiAgcHVibGljIGdldCBTdGF0ZSgpOiBBcHBsaWNhdGlvbnNGbG93U3RhdGV7XG4gICAgcmV0dXJuIHRoaXMuZWFjU3ZjLlN0YXRlO1xuICB9XG5cbiAgcHVibGljIGdldCBUeXBlRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Nb2RpZmllckZvcm1Hcm91cD8uY29udHJvbHMudHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBNb2RpZmllckZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBNb2RpZmllclNlbGVjdEZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8vICBDb25zdHJ1Y3RvcnNcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGZvcm1CbGRyOiBGb3JtQnVpbGRlcixcbiAgICBwcm90ZWN0ZWQgYXBwc0Zsb3dTdmM6IEFwcGxpY2F0aW9uc0Zsb3dTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBlYWNTdmM6IEVhQ1NlcnZpY2VcbiAgKSB7XG4gICAgLy8gdGhpcy5FZGl0aW5nTW9kaWZpZXJMb29rdXAgPSBudWxsO1xuICB9XG5cbiAgLy8gIExpZmUgQ3ljbGVcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gICAgaWYodGhpcy5MZXZlbCA9PT0gXCJlbnRlcnByaXNlXCIgJiYgIXRoaXMuRWRpdGluZ01vZGlmaWVyTG9va3VwKXtcbiAgICAgIHRoaXMuQ3JlYXRlTmV3TW9kaWZpZXIoKTtcbiAgICB9XG4gICAgXG4gICAgZWxzZSBpZih0aGlzLkVkaXRpbmdNb2RpZmllckxvb2t1cCl7XG4gICAgICB0aGlzLnNldHVwTW9kaWZpZXJGb3JtKCk7XG4gICAgfVxuXG4gICAgZWxzZXtcbiAgICAgIHRoaXMuc2V0dXBNb2RpZmllclNlbGVjdEZvcm0oKTtcbiAgICB9XG4gICAgXG4gIH1cblxuICAvLyAgQVBJIE1ldGhvZHNcbiAgcHVibGljIENyZWF0ZU5ld01vZGlmaWVyKCk6IHZvaWQge1xuICAgIHRoaXMuU2V0RWRpdGluZ01vZGlmaWVyKEd1aWQuQ3JlYXRlUmF3KCkpO1xuICB9XG5cbiAgcHVibGljIERlbGV0ZU1vZGlmaWVyKG1vZGlmaWVyTG9va3VwOiBzdHJpbmcsIG1vZGlmaWVyTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgY29uZmlybShgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBtb2RpZmllciAnJHttb2RpZmllck5hbWV9Jz9gKVxuICAgICkge1xuICAgICAgdGhpcy5lYWNTdmMuRGVsZXRlU291cmNlQ29udHJvbChtb2RpZmllckxvb2t1cCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIFNhdmVNb2RpZmllckZvckFsbFByb2plY3RzKHByb2plY3RMb29rdXBzOiBBcnJheTxzdHJpbmc+KXtcbiAgICBjb25zdCBzYXZlTWRmclJlcTogU2F2ZURGU01vZGlmaWVyRXZlbnRSZXF1ZXN0ID0ge1xuICAgICAgTW9kaWZpZXI6IHtcbiAgICAgICAgLi4udGhpcy5FZGl0aW5nTW9kaWZpZXIsXG4gICAgICAgIE5hbWU6IHRoaXMuTmFtZUZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICBFbmFibGVkOiB0aGlzLkVuYWJsZWRGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgUGF0aEZpbHRlclJlZ2V4OiB0aGlzLlBhdGhGaWx0ZXJGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgUHJpb3JpdHk6IHRoaXMuUHJpb3JpdHlGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgVHlwZTogdGhpcy5DdXJyZW50VHlwZSxcbiAgICAgIH0sXG4gICAgICBNb2RpZmllckxvb2t1cHM6IFt0aGlzLkVkaXRpbmdNb2RpZmllckxvb2t1cF0sXG4gICAgICBQcm9qZWN0TG9va3VwczogcHJvamVjdExvb2t1cHMsXG4gICAgfTtcblxuICAgIGxldCBkZXRhaWxzID0gdGhpcy5nZXREZXRhaWxzKCk7XG5cbiAgICBzYXZlTWRmclJlcS5Nb2RpZmllci5EZXRhaWxzID0gSlNPTi5zdHJpbmdpZnkoZGV0YWlscyk7XG5cbiAgICB0aGlzLmVhY1N2Yy5TYXZlREZTTW9kaWZpZXIoc2F2ZU1kZnJSZXEpO1xuICB9XG5cbiAgcHVibGljIFNhdmVNb2RpZmllckZvckFwcGxpY2F0aW9uKGFwcGxpY2F0aW9uTG9va3VwOiBzdHJpbmcpOiB2b2lke1xuICAgIGlmKHRoaXMuTW9kaWZpZXJGb3JtR3JvdXApe1xuICAgIGNvbnN0IHNhdmVNZGZyUmVxOiBTYXZlREZTTW9kaWZpZXJFdmVudFJlcXVlc3QgPSB7XG4gICAgICBNb2RpZmllcjoge1xuICAgICAgICAuLi50aGlzLkVkaXRpbmdNb2RpZmllcixcbiAgICAgICAgTmFtZTogdGhpcy5OYW1lRm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgIEVuYWJsZWQ6IHRoaXMuRW5hYmxlZEZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICBQYXRoRmlsdGVyUmVnZXg6IHRoaXMuUGF0aEZpbHRlckZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICBQcmlvcml0eTogdGhpcy5Qcmlvcml0eUZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICBUeXBlOiB0aGlzLkN1cnJlbnRUeXBlLFxuICAgICAgfSxcbiAgICAgIE1vZGlmaWVyTG9va3VwczogW3RoaXMuRWRpdGluZ01vZGlmaWVyTG9va3VwXSxcbiAgICAgIEFwcGxpY2F0aW9uTG9va3VwOiBhcHBsaWNhdGlvbkxvb2t1cCxcbiAgICB9O1xuXG4gICAgbGV0IGRldGFpbHMgPSB0aGlzLmdldERldGFpbHMoKTtcblxuICAgIHNhdmVNZGZyUmVxLk1vZGlmaWVyLkRldGFpbHMgPSBKU09OLnN0cmluZ2lmeShkZXRhaWxzKTtcblxuICAgIHRoaXMuZWFjU3ZjLlNhdmVERlNNb2RpZmllcihzYXZlTWRmclJlcSk7XG4gIH1cbiAgZWxzZSBpZih0aGlzLk1vZGlmaWVyU2VsZWN0Rm9ybUdyb3VwKXtcbiAgICBjb25zdCBzYXZlTWRmclJlcTogU2F2ZURGU01vZGlmaWVyRXZlbnRSZXF1ZXN0ID0ge1xuICAgICAgXG4gICAgICBNb2RpZmllckxvb2t1cHM6IHRoaXMuTXVsdGlTZWxlY3RGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgIEFwcGxpY2F0aW9uTG9va3VwOiBhcHBsaWNhdGlvbkxvb2t1cCxcbiAgICB9O1xuICAgIHRoaXMuZWFjU3ZjLlNhdmVERlNNb2RpZmllcihzYXZlTWRmclJlcSk7XG5cbiAgfVxuICB9XG5cbi8qKlxuICogXG4gKiBTYXZlcyBhIG1vZGlmaWVyLCBzYXZlcyBhIG1vZGlmaWVyIHRvIGEgcHJvamVjdFxuICovXG4gIHB1YmxpYyBTYXZlTW9kaWZpZXIocHJvamVjdExvb2t1cDogc3RyaW5nID0gbnVsbCk6IHZvaWQge1xuICAgIGlmKHRoaXMuTW9kaWZpZXJGb3JtR3JvdXApe1xuICAgICAgY29uc3Qgc2F2ZU1kZnJSZXE6IFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdCA9IHtcbiAgICAgICAgTW9kaWZpZXI6IHtcbiAgICAgICAgICAuLi50aGlzLkVkaXRpbmdNb2RpZmllcixcbiAgICAgICAgICBOYW1lOiB0aGlzLk5hbWVGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICBFbmFibGVkOiB0aGlzLkVuYWJsZWRGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICBQYXRoRmlsdGVyUmVnZXg6IHRoaXMuUGF0aEZpbHRlckZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgIFByaW9yaXR5OiB0aGlzLlByaW9yaXR5Rm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgICAgVHlwZTogdGhpcy5DdXJyZW50VHlwZSxcbiAgICAgICAgfSxcbiAgICAgICAgTW9kaWZpZXJMb29rdXBzOiBbdGhpcy5FZGl0aW5nTW9kaWZpZXJMb29rdXBdLFxuICAgICAgICBQcm9qZWN0TG9va3VwczogW3Byb2plY3RMb29rdXBdLFxuICAgICAgfTtcblxuICAgICAgbGV0IGRldGFpbHMgPSB0aGlzLmdldERldGFpbHMoKTtcblxuICAgICAgc2F2ZU1kZnJSZXEuTW9kaWZpZXIuRGV0YWlscyA9IEpTT04uc3RyaW5naWZ5KGRldGFpbHMpO1xuICAgIFxuXG4gICAgICB0aGlzLmVhY1N2Yy5TYXZlREZTTW9kaWZpZXIoc2F2ZU1kZnJSZXEpO1xuICAgIH1cbiAgICBlbHNlIGlmKHRoaXMuTW9kaWZpZXJTZWxlY3RGb3JtR3JvdXApe1xuICAgICAgY29uc3Qgc2F2ZU1kZnJSZXE6IFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdCA9IHtcbiAgICAgICAgXG4gICAgICAgIE1vZGlmaWVyTG9va3VwczogdGhpcy5NdWx0aVNlbGVjdEZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICBQcm9qZWN0TG9va3VwczogW3Byb2plY3RMb29rdXBdLFxuICAgICAgfTtcbiAgICAgIHRoaXMuZWFjU3ZjLlNhdmVERlNNb2RpZmllcihzYXZlTWRmclJlcSk7XG5cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgU2V0RWRpdGluZ01vZGlmaWVyKG1vZGlmaWVyTG9va3VwOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLkVkaXRpbmdNb2RpZmllckxvb2t1cCA9IG1vZGlmaWVyTG9va3VwO1xuXG4gICAgdGhpcy5zZXR1cE1vZGlmaWVyRm9ybSgpO1xuICB9XG5cbiAgcHVibGljIFNldFVzZUZvclByb2plY3QoXG4gICAgbW9kaWZpZXJMb29rdXA6IHN0cmluZyxcbiAgICBjaGFuZ2U6IE1hdFNsaWRlVG9nZ2xlQ2hhbmdlXG4gICk6IHZvaWQge1xuICAgIHRoaXMuU2V0RWRpdGluZ01vZGlmaWVyKG1vZGlmaWVyTG9va3VwKTtcblxuICAgIHRoaXMuU2F2ZU1vZGlmaWVyKHRoaXMuUHJvamVjdExvb2t1cCk7XG4gIH1cblxuICBwdWJsaWMgVHlwZUNoYW5nZWQoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSk6IHZvaWQge1xuICAgIHRoaXMuQ3VycmVudFR5cGUgPSBldmVudC52YWx1ZTtcblxuICAgIHRoaXMuc2V0dXBUeXBlRm9ybSgpO1xuICB9XG5cbiAgLy8gIEhlbHBlcnNcblxuICBwcm90ZWN0ZWQgZ2V0RGV0YWlscygpOiBhbnl7XG4gICAgY29uc3QgZGV0YWlscyA9IHt9O1xuXG4gICAgc3dpdGNoICh0aGlzLkN1cnJlbnRUeXBlKSB7XG4gICAgICBjYXNlICdMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLkhUTUxCYXNlREZTTW9kaWZpZXJNYW5hZ2VyLCBMQ1UuUnVudGltZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwnOlxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnTENVLlJ1bnRpbWUuQXBwbGljYXRpb25zLk1vZGlmaWVycy5MQ1VSZWdERlNNb2RpZmllck1hbmFnZXIsIExDVS5SdW50aW1lLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbCc6XG4gICAgICAgIGRldGFpbHNbJ1N0YXRlRGF0YVRva2VuJ10gPSB0aGlzLlN0YXRlRGF0YVRva2VuRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLlRoaXJkUGFydHlMaWJyYXJ5REZTTW9kaWZpZXJNYW5hZ2VyLCBMQ1UuUnVudGltZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwnOlxuICAgICAgICBkZXRhaWxzWydMb2NhdGlvbiddID0gdGhpcy5Mb2NhdGlvbkZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgIGRldGFpbHNbJ1NjcmlwdCddID0gdGhpcy5TY3JpcHRGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICBkZXRhaWxzWydTY3JpcHRJRCddID0gdGhpcy5TY3JpcHRJREZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIGRldGFpbHM7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0dXBNb2RpZmllclNlbGVjdEZvcm0oKXtcbiAgICB0aGlzLk1vZGlmaWVyU2VsZWN0Rm9ybUdyb3VwID0gdGhpcy5mb3JtQmxkci5ncm91cCh7XG4gICAgICBtdWx0aVNlbGVjdDogW3RoaXMuTW9kaWZpZXJMb29rdXBzID8gdGhpcy5Nb2RpZmllckxvb2t1cHMgOiBbXV1cbiAgICB9KTtcblxuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwTW9kaWZpZXJGb3JtKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLkVkaXRpbmdNb2RpZmllciAhPSBudWxsKSB7XG4gICAgICB0aGlzLkN1cnJlbnRUeXBlID0gdGhpcy5FZGl0aW5nTW9kaWZpZXI/LlR5cGU7XG5cbiAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAgPSB0aGlzLmZvcm1CbGRyLmdyb3VwKHtcbiAgICAgICAgbmFtZTogW3RoaXMuRWRpdGluZ01vZGlmaWVyPy5OYW1lLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgdHlwZTogW3RoaXMuQ3VycmVudFR5cGUsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICBwcmlvcml0eTogW3RoaXMuRWRpdGluZ01vZGlmaWVyPy5Qcmlvcml0eSA/IHRoaXMuRWRpdGluZ01vZGlmaWVyPy5Qcmlvcml0eSA6IDkwMDAsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICBlbmFibGVkOiBbdGhpcy5FZGl0aW5nTW9kaWZpZXI/LkVuYWJsZWQsIFtdXSxcbiAgICAgICAgcGF0aEZpbHRlcjogW1xuICAgICAgICAgIHRoaXMuRWRpdGluZ01vZGlmaWVyPy5QYXRoRmlsdGVyUmVnZXggPyB0aGlzLkVkaXRpbmdNb2RpZmllcj8uUGF0aEZpbHRlclJlZ2V4IDogXCIqaW5kZXguaHRtbFwiICxcbiAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuc2V0dXBUeXBlRm9ybSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZXR1cFR5cGVGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnc3RhdGVEYXRhVG9rZW4nKTtcblxuICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnbG9jYXRpb24nKTtcbiAgICB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ3NjcmlwdCcpO1xuICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnc2NyaXB0SWQnKTtcblxuICAgIGNvbnN0IGRldGFpbHMgPSBKU09OLnBhcnNlKHRoaXMuRWRpdGluZ01vZGlmaWVyPy5EZXRhaWxzIHx8ICd7fScpO1xuXG4gICAgc3dpdGNoICh0aGlzLkN1cnJlbnRUeXBlKSB7XG4gICAgICBjYXNlICdMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLkhUTUxCYXNlREZTTW9kaWZpZXJNYW5hZ2VyLCBMQ1UuUnVudGltZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwnOlxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnTENVLlJ1bnRpbWUuQXBwbGljYXRpb25zLk1vZGlmaWVycy5MQ1VSZWdERlNNb2RpZmllck1hbmFnZXIsIExDVS5SdW50aW1lLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbCc6XG4gICAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAnc3RhdGVEYXRhVG9rZW4nLFxuICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChkZXRhaWxzPy5TdGF0ZURhdGFUb2tlbiB8fCAnbGN1LXN0YXRlLWNvbmZpZycsIFtcbiAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgXSlcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0xDVS5SdW50aW1lLkFwcGxpY2F0aW9ucy5Nb2RpZmllcnMuVGhpcmRQYXJ0eUxpYnJhcnlERlNNb2RpZmllck1hbmFnZXIsIExDVS5SdW50aW1lLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbCc6XG4gICAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAnbG9jYXRpb24nLFxuICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChkZXRhaWxzPy5Mb2NhdGlvbiB8fCAnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAnc2NyaXB0JyxcbiAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woZGV0YWlscz8uU2NyaXB0IHx8ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5Nb2RpZmllckZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICdzY3JpcHRJZCcsXG4gICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKGRldGFpbHM/LlNjcmlwdElEIHx8ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIFxuICBcblxuICBcblxuXG59XG4iLCI8ZGl2PlxuICA8Zm9ybVxuICAgIFtmb3JtR3JvdXBdPVwiTW9kaWZpZXJGb3JtR3JvdXBcIlxuICAgIChuZ1N1Ym1pdCk9XCJTYXZlTW9kaWZpZXIoKVwiXG4gICAgKm5nSWY9XCJFZGl0aW5nTW9kaWZpZXJcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tY2FyZFwiPlxuICAgICAgPCEtLSA8bWF0LWNhcmQgY2xhc3M9XCJzcHJlYWRcIj4gLS0+XG4gICAgICAgIDwhLS0gPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgICAgICA8bWF0LWNhcmQtdGl0bGU+IERGUyBNb2RpZmllciA8L21hdC1jYXJkLXRpdGxlPlxuXG4gICAgICAgICAgPGRpdiBmeEZsZXg+PC9kaXY+XG5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkNvbmZpZ3VyZSBtb2RpZmllcnMgZm9yIHlvdXIgREZTIGZpbGVzLlwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgaW5mb19vdXRsaW5lXG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+IC0tPlxuXG4gICAgICAgIDwhLS0gPG1hdC1jYXJkLWNvbnRlbnQ+IC0tPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0eXBlXCJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJERlMgTW9kaWZpZXIgVHlwZVwiXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiVHlwZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgdmFsdWU9XCJMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLkhUTUxCYXNlREZTTW9kaWZpZXJNYW5hZ2VyLCBMQ1UuUnVudGltZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgSFRNTCBCYXNlIE1vZGZpZXJcbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuXG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgdmFsdWU9XCJMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLkxDVVJlZ0RGU01vZGlmaWVyTWFuYWdlciwgTENVLlJ1bnRpbWUsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIExDVSBSZWcgTW9kZmllclxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICB2YWx1ZT1cIkxDVS5SdW50aW1lLkFwcGxpY2F0aW9ucy5Nb2RpZmllcnMuVGhpcmRQYXJ0eUxpYnJhcnlERlNNb2RpZmllck1hbmFnZXIsIExDVS5SdW50aW1lLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBUaHJpZCBQYXJ0eSBMaWJyYXJ5IE1vZGlmaWVyXG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTmFtZVwiXG4gICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByaW9yaXR5XCJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJQcmlvcml0eVwiXG4gICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhdGhGaWx0ZXJcIlxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlBhdGggRmlsdGVyIChyZWdleClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgXG5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBDdXJyZW50VHlwZSA9PVxuICAgICAgICAgICAgICAnTENVLlJ1bnRpbWUuQXBwbGljYXRpb25zLk1vZGlmaWVycy5MQ1VSZWdERlNNb2RpZmllck1hbmFnZXIsIExDVS5SdW50aW1lLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbCdcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdGF0ZURhdGFUb2tlblwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTdGF0ZSBEYXRhIFRva2VuXCJcbiAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIEN1cnJlbnRUeXBlID09XG4gICAgICAgICAgICAgICdMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLlRoaXJkUGFydHlMaWJyYXJ5REZTTW9kaWZpZXJNYW5hZ2VyLCBMQ1UuUnVudGltZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibG9jYXRpb25cIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTG9jYXRpb25cIlxuICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNjcmlwdElkXCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNjcmlwdCBJRFwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2NyaXB0XCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNjcmlwdFwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cblxuICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlICpuZ0lmPVwiUHJvamVjdExvb2t1cFwiIGNsYXNzPVwic3ByZWFkXCIgZm9ybUNvbnRyb2xOYW1lPVwiZW5hYmxlZFwiPlxuICAgICAgICAgICAgSXMgRW5hYmxlZD9cbiAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDwhLS0gPC9tYXQtY2FyZC1jb250ZW50PiAtLT5cbiAgICAgIDwhLS0gPC9tYXQtY2FyZD4gLS0+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJzcHJlYWRcIj5cbiAgICAgIDxkaXYgZnhGbGV4PjwvZGl2PlxuXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJTZXRFZGl0aW5nTW9kaWZpZXIobnVsbClcIj5cbiAgICAgICAgPG1hdC1pY29uPmNhbmNlbDwvbWF0LWljb24+IENhbmNlbFxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxkaXYgZnhGbGV4PjwvZGl2PlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIU1vZGlmaWVyRm9ybUdyb3VwLnZhbGlkIHx8ICFNb2RpZmllckZvcm1Hcm91cC5kaXJ0eVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj4gU2F2ZSBERlMgTW9kaWZpZXJcbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8ZGl2IGZ4RmxleD48L2Rpdj5cbiAgICA8L2Rpdj4gLS0+XG4gIDwvZm9ybT5cblxuICA8Zm9ybVxuICAgICAgICAgIFtmb3JtR3JvdXBdPVwiTW9kaWZpZXJTZWxlY3RGb3JtR3JvdXBcIlxuICAgICAgICAgICpuZ0lmPVwiIUVkaXRpbmdNb2RpZmllclwiXG4gID5cblxuICAgIDxkaXYgY2xhc3M9XCJzcHJlYWRcIiAqbmdJZj1cIiFFZGl0aW5nTW9kaWZpZXJcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYXBwcy1hY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwiQ3JlYXRlTmV3TW9kaWZpZXIoKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIj5hZGQ8L21hdC1pY29uPiBDcmVhdGUgTmV3XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9zcGFuPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic3ByZWFkXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJFbnRlcnByaXNlc01vZGlmaWVyTG9va3Vwcz8ubGVuZ3RoIDw9IDBcIj5cbiAgICAgICAgICA8aDI+Tm8gREZTIG1vZGlmaWVycyBjcmVhdGVkLCBjcmVhdGUgeW91ciBmaXJzdCBERlMgbW9kaWZpZXIuPC9oMj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkVudGVycHJpc2VzTW9kaWZpZXJMb29rdXBzPy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgPCEtLSA8aDI+REZTIE1vZGlmaWVyczwvaDI+IC0tPlxuICAgICAgICAgIFxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD5Nb2RpZmllcnM8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cIm11bHRpU2VsZWN0XCIgbXVsdGlwbGU+XG4gICAgICAgICAgICAgIDxtYXQtc2VsZWN0LXRyaWdnZXI+XG4gICAgICAgICAgICAgICAge3tNdWx0aVNlbGVjdEZvcm1Db250cm9sPy52YWx1ZSA/IE11bHRpU2VsZWN0Rm9ybUNvbnRyb2w/LnZhbHVlWzBdIDogJyd9fVxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiTXVsdGlTZWxlY3RGb3JtQ29udHJvbD8udmFsdWU/Lmxlbmd0aCA+IDFcIiBjbGFzcz1cIm1vZGlmaWVyLXNlbGVjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgKCt7e011bHRpU2VsZWN0Rm9ybUNvbnRyb2w/LnZhbHVlPy5sZW5ndGggLSAxfX0ge3tNdWx0aVNlbGVjdEZvcm1Db250cm9sPy52YWx1ZT8ubGVuZ3RoID09PSAyID8gJ290aGVyJyA6ICdvdGhlcnMnfX0pXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbW9kaWZpZXJMb29rdXAgb2YgRW50ZXJwcmlzZXNNb2RpZmllckxvb2t1cHNcIj5cbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJNb2RpZmllcnNbbW9kaWZpZXJMb29rdXBdOyBsZXQgbW9kaWZpZXJcIiBbdmFsdWVdPVwibW9kaWZpZXJMb29rdXBcIj57e21vZGlmaWVyPy5OYW1lfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICA8IS0tIDxkaXYgZnhMYXlvdXQ9XCJyb3cgd3JhcFwiIGZ4TGF5b3V0Lmx0LW1kPVwiY29sdW1uXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGZ4RmxleC5sdC1tZD1cIjEwMCVcIlxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbW9kaWZpZXJMb29rdXAgb2YgTW9kaWZpZXJMb29rdXBzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiTW9kaWZpZXJzW21vZGlmaWVyTG9va3VwXTsgbGV0IG1vZGlmaWVyXCI+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtc3ViaGVhZGluZy0yXCJcbiAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwibW9kaWZpZXIuTmFtZVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IG1vZGlmaWVyLk5hbWUgfHwgbW9kaWZpZXIuTG9va3VwIH19XG5cblxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ByZWFkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3Q/Lk1vZGlmaWVyTG9va3Vwcy5pbmRleE9mKG1vZGlmaWVyTG9va3VwKSA+PSAwXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIlNldFVzZUZvclByb2plY3QobW9kaWZpZXJMb29rdXAsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidVc2UgZm9yICcgKyBMZXZlbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGEtYXBwLWFjdGlvbnNcIj5cblxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJTZXRFZGl0aW5nTW9kaWZpZXIobW9kaWZpZXJMb29rdXApXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRUb29sdGlwPVwiRWRpdCBERlMgTW9kaWZpZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzXG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIkRlbGV0ZU1vZGlmaWVyKG1vZGlmaWVyTG9va3VwLCBtb2RpZmllci5OYW1lKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0VG9vbHRpcD1cIkRlbGV0ZSB7eyBtb2RpZmllci5OYW1lIH19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGVfZm9yZXZlclxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9kaXY+XG4iXX0=
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGZzLW1vZGlmaWVycy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2NvbnRyb2xzL2Rmcy1tb2RpZmllcnMtZm9ybS9kZnMtbW9kaWZpZXJzLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvZGZzLW1vZGlmaWVycy1mb3JtL2Rmcy1tb2RpZmllcnMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBSUwsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFPeEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVduQyxNQUFNLE9BQU8seUJBQXlCO0lBOEhwQyxnQkFBZ0I7SUFDaEIsWUFDWSxRQUFxQixFQUNyQixXQUFvQyxFQUNwQyxNQUFrQjtRQUZsQixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBRTVCLHFDQUFxQztJQUN2QyxDQUFDO0lBbkdELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUztZQUN2QixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUM7WUFDNUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUVULElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMs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SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUdyb3VwLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5cbmltcG9ydCB7XG4gIEVhQ0RGU01vZGlmaWVyLFxuICBFYUNQcm9qZWN0QXNDb2RlLFxufSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgR3VpZCB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBFYUNTZXJ2aWNlLCBTYXZlREZTTW9kaWZpZXJFdmVudFJlcXVlc3QgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FwcGxpY2F0aW9ucy1mbG93LnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25zRmxvd1N0YXRlIH0gZnJvbSAnLi4vLi4vc3RhdGUvYXBwbGljYXRpb25zLWZsb3cuc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsY3UtZGZzLW1vZGlmaWVyLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGZzLW1vZGlmaWVycy1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGZzLW1vZGlmaWVycy1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIERGU01vZGlmaWVyc0Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyAgRmllbGRzXG5cbiAgLy8gIFByb3BlcnRpZXNcbiAgcHVibGljIEN1cnJlbnRUeXBlOiBzdHJpbmc7XG5cbiAgLy8gQElucHV0KCdkYXRhJylcbiAgLy8gcHVibGljIERhdGE6IHtcbiAgLy8gICBNb2RpZmllcnM6IHsgW2xvb2t1cDogc3RyaW5nXTogRWFDREZTTW9kaWZpZXIgfTtcbiAgLy8gICBQcm9qZWN0OiBFYUNQcm9qZWN0QXNDb2RlO1xuICAvLyAgIFByb2plY3RMb29rdXA6IHN0cmluZztcbiAgLy8gfTtcblxuICBASW5wdXQoJ2VkaXRpbmctbW9kaWZpZXItbG9va3VwJylcbiAgcHVibGljIEVkaXRpbmdNb2RpZmllckxvb2t1cDogc3RyaW5nO1xuXG4gIC8qKlNwZWNpZmljIE1vZGlmaWVycyBmb3IgZWl0aGVyIHRoZSBwcm9qZWN0IG9yIGFwcGxpYWN0aW9uICovXG5cbiAgLy8gQElucHV0KCdtb2RpZmllcnMnKVxuICAvLyBwdWJsaWMgTW9kaWZpZXJzOiAgeyBbbG9va3VwOiBzdHJpbmddOiBFYUNERlNNb2RpZmllciB9O1xuXG4gIEBJbnB1dCgnYXBwbGljYXRpb24tbG9va3VwJylcbiAgICBwdWJsaWMgQXBwbGljYXRpb25Mb29rdXA6IHN0cmluZztcblxuICBASW5wdXQoJ3Byb2plY3QnKVxuICBwdWJsaWMgUHJvamVjdDogRWFDUHJvamVjdEFzQ29kZTtcblxuICBASW5wdXQoJ3Byb2plY3QtbG9va3VwJylcbiAgcHVibGljIFByb2plY3RMb29rdXA6IHN0cmluZztcblxuICAvKip3aGljaCBsZXZlbCBpcyB0aGUgZGZzIG1vZGlmaWVyIGJlaW5nIGVkaXRlZCBlbnQgcHJvamVjdCBvciBhcHAgKi9cbiAgQElucHV0KCdsZXZlbCcpXG4gIHB1YmxpYyBMZXZlbDogc3RyaW5nO1xuXG4gIHB1YmxpYyBnZXQgRGV0YWlsc0Zvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXA/LmNvbnRyb2xzLmRldGFpbHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IEVkaXRpbmdNb2RpZmllcigpOiBFYUNERlNNb2RpZmllciB7XG4gICAgbGV0IG1kZnIgPSB0aGlzLk1vZGlmaWVyc1xuICAgICAgPyB0aGlzLk1vZGlmaWVyc1t0aGlzLkVkaXRpbmdNb2RpZmllckxvb2t1cF1cbiAgICAgIDogbnVsbDtcblxuICAgIGlmIChtZGZyID09IG51bGwgJiYgdGhpcy5FZGl0aW5nTW9kaWZpZXJMb29rdXApIHtcbiAgICAgIG1kZnIgPSB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWRmcjtcbiAgfVxuXG4gIC8vIHB1YmxpYyBFZGl0aW5nTW9kaWZpZXJMb29rdXA6IHN0cmluZztcblxuICBwdWJsaWMgZ2V0IEVuYWJsZWRGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwPy5jb250cm9scy5lbmFibGVkO1xuICB9XG5cblxuICBwdWJsaWMgZ2V0IEVudGVycHJpc2VzTW9kaWZpZXJMb29rdXBzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLk1vZGlmaWVycyB8fCB7fSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IExvY2F0aW9uRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Nb2RpZmllckZvcm1Hcm91cD8uY29udHJvbHMubG9jYXRpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IE1vZGlmaWVycygpOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0RGU01vZGlmaWVyIH0ge1xuICAgIHJldHVybiB0aGlzLlN0YXRlPy5FYUM/Lk1vZGlmaWVycztcbiAgfVxuXG5cbiAgcHVibGljIGdldCBNb2RpZmllckxvb2t1cHMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgaWYodGhpcy5Qcm9qZWN0TG9va3VwKXtcbiAgICAgIHJldHVybiB0aGlzLlN0YXRlPy5FYUM/LlByb2plY3RzW3RoaXMuUHJvamVjdExvb2t1cF0/Lk1vZGlmaWVyTG9va3VwcztcbiAgICB9XG4gICAgZWxzZSBpZih0aGlzLkFwcGxpY2F0aW9uTG9va3VwKXtcbiAgICAgIHJldHVybiB0aGlzLlN0YXRlLkVhQz8uQXBwbGljYXRpb25zW3RoaXMuQXBwbGljYXRpb25Mb29rdXBdPy5Nb2RpZmllckxvb2t1cHM7XG4gICAgfVxuICAgIGVsc2V7XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5Nb2RpZmllcnMgfHwge30pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgTXVsdGlTZWxlY3RGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLk1vZGlmaWVyU2VsZWN0Rm9ybUdyb3VwPy5jb250cm9scy5tdWx0aVNlbGVjdDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgTmFtZUZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXA/LmNvbnRyb2xzLm5hbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IFBhdGhGaWx0ZXJGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwPy5jb250cm9scy5wYXRoRmlsdGVyO1xuICB9XG5cbiAgcHVibGljIGdldCBQcmlvcml0eUZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXA/LmNvbnRyb2xzLnByaW9yaXR5O1xuICB9XG5cbiAgLy8gcHVibGljIGdldCBQcm9qZWN0KCk6IEVhQ1Byb2plY3RBc0NvZGUge1xuICAvLyAgIHJldHVybiB0aGlzLkRhdGEuUHJvamVjdCB8fCB7fTtcbiAgLy8gfVxuXG4gIHB1YmxpYyBnZXQgU2NyaXB0Rm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Nb2RpZmllckZvcm1Hcm91cD8uY29udHJvbHMuc2NyaXB0O1xuICB9XG5cbiAgcHVibGljIGdldCBTY3JpcHRJREZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXA/LmNvbnRyb2xzLnNjcmlwdElkO1xuICB9XG5cbiAgcHVibGljIGdldCBTdGF0ZURhdGFUb2tlbkZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXA/LmNvbnRyb2xzLnN0YXRlRGF0YVRva2VuO1xuICB9XG5cbiAgcHVibGljIGdldCBTdGF0ZSgpOiBBcHBsaWNhdGlvbnNGbG93U3RhdGV7XG4gICAgcmV0dXJuIHRoaXMuZWFjU3ZjLlN0YXRlO1xuICB9XG5cbiAgcHVibGljIGdldCBUeXBlRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5Nb2RpZmllckZvcm1Hcm91cD8uY29udHJvbHMudHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBNb2RpZmllckZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBNb2RpZmllclNlbGVjdEZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8vICBDb25zdHJ1Y3RvcnNcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGZvcm1CbGRyOiBGb3JtQnVpbGRlcixcbiAgICBwcm90ZWN0ZWQgYXBwc0Zsb3dTdmM6IEFwcGxpY2F0aW9uc0Zsb3dTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBlYWNTdmM6IEVhQ1NlcnZpY2VcbiAgKSB7XG4gICAgLy8gdGhpcy5FZGl0aW5nTW9kaWZpZXJMb29rdXAgPSBudWxsO1xuICB9XG5cbiAgLy8gIExpZmUgQ3ljbGVcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gICAgaWYodGhpcy5MZXZlbCA9PT0gXCJlbnRlcnByaXNlXCIgJiYgIXRoaXMuRWRpdGluZ01vZGlmaWVyTG9va3VwKXtcbiAgICAgIHRoaXMuQ3JlYXRlTmV3TW9kaWZpZXIoKTtcbiAgICB9XG4gICAgXG4gICAgZWxzZSBpZih0aGlzLkVkaXRpbmdNb2RpZmllckxvb2t1cCl7XG4gICAgICB0aGlzLnNldHVwTW9kaWZpZXJGb3JtKCk7XG4gICAgfVxuXG4gICAgZWxzZXtcbiAgICAgIHRoaXMuc2V0dXBNb2RpZmllclNlbGVjdEZvcm0oKTtcbiAgICB9XG4gICAgXG4gIH1cblxuICAvLyAgQVBJIE1ldGhvZHNcbiAgcHVibGljIENyZWF0ZU5ld01vZGlmaWVyKCk6IHZvaWQge1xuICAgIHRoaXMuU2V0RWRpdGluZ01vZGlmaWVyKEd1aWQuQ3JlYXRlUmF3KCkpO1xuICB9XG5cbiAgcHVibGljIERlbGV0ZU1vZGlmaWVyKG1vZGlmaWVyTG9va3VwOiBzdHJpbmcsIG1vZGlmaWVyTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5lYWNTdmMuRGVsZXRlTW9kaWZpZXIobW9kaWZpZXJMb29rdXAsIG1vZGlmaWVyTmFtZSkudGhlbigpO1xuICB9XG5cbiAgcHVibGljIFNhdmVNb2RpZmllckZvckFsbFByb2plY3RzKHByb2plY3RMb29rdXBzOiBBcnJheTxzdHJpbmc+KXtcbiAgICBjb25zdCBzYXZlTWRmclJlcTogU2F2ZURGU01vZGlmaWVyRXZlbnRSZXF1ZXN0ID0ge1xuICAgICAgTW9kaWZpZXI6IHtcbiAgICAgICAgLi4udGhpcy5FZGl0aW5nTW9kaWZpZXIsXG4gICAgICAgIE5hbWU6IHRoaXMuTmFtZUZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICBFbmFibGVkOiB0aGlzLkVuYWJsZWRGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgUGF0aEZpbHRlclJlZ2V4OiB0aGlzLlBhdGhGaWx0ZXJGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgUHJpb3JpdHk6IHRoaXMuUHJpb3JpdHlGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgVHlwZTogdGhpcy5DdXJyZW50VHlwZSxcbiAgICAgIH0sXG4gICAgICBNb2RpZmllckxvb2t1cHM6IFt0aGlzLkVkaXRpbmdNb2RpZmllckxvb2t1cF0sXG4gICAgICBQcm9qZWN0TG9va3VwczogcHJvamVjdExvb2t1cHMsXG4gICAgfTtcblxuICAgIGxldCBkZXRhaWxzID0gdGhpcy5nZXREZXRhaWxzKCk7XG5cbiAgICBzYXZlTWRmclJlcS5Nb2RpZmllci5EZXRhaWxzID0gSlNPTi5zdHJpbmdpZnkoZGV0YWlscyk7XG5cbiAgICB0aGlzLmVhY1N2Yy5TYXZlREZTTW9kaWZpZXIoc2F2ZU1kZnJSZXEpO1xuICB9XG5cbiAgcHVibGljIFNhdmVNb2RpZmllckZvckFwcGxpY2F0aW9uKGFwcGxpY2F0aW9uTG9va3VwOiBzdHJpbmcpOiB2b2lke1xuICAgIGlmKHRoaXMuTW9kaWZpZXJGb3JtR3JvdXApe1xuICAgIGNvbnN0IHNhdmVNZGZyUmVxOiBTYXZlREZTTW9kaWZpZXJFdmVudFJlcXVlc3QgPSB7XG4gICAgICBNb2RpZmllcjoge1xuICAgICAgICAuLi50aGlzLkVkaXRpbmdNb2RpZmllcixcbiAgICAgICAgTmFtZTogdGhpcy5OYW1lRm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgIEVuYWJsZWQ6IHRoaXMuRW5hYmxlZEZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICBQYXRoRmlsdGVyUmVnZXg6IHRoaXMuUGF0aEZpbHRlckZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICBQcmlvcml0eTogdGhpcy5Qcmlvcml0eUZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICBUeXBlOiB0aGlzLkN1cnJlbnRUeXBlLFxuICAgICAgfSxcbiAgICAgIE1vZGlmaWVyTG9va3VwczogW3RoaXMuRWRpdGluZ01vZGlmaWVyTG9va3VwXSxcbiAgICAgIEFwcGxpY2F0aW9uTG9va3VwOiBhcHBsaWNhdGlvbkxvb2t1cCxcbiAgICB9O1xuXG4gICAgbGV0IGRldGFpbHMgPSB0aGlzLmdldERldGFpbHMoKTtcblxuICAgIHNhdmVNZGZyUmVxLk1vZGlmaWVyLkRldGFpbHMgPSBKU09OLnN0cmluZ2lmeShkZXRhaWxzKTtcblxuICAgIHRoaXMuZWFjU3ZjLlNhdmVERlNNb2RpZmllcihzYXZlTWRmclJlcSk7XG4gIH1cbiAgZWxzZSBpZih0aGlzLk1vZGlmaWVyU2VsZWN0Rm9ybUdyb3VwKXtcbiAgICBjb25zdCBzYXZlTWRmclJlcTogU2F2ZURGU01vZGlmaWVyRXZlbnRSZXF1ZXN0ID0ge1xuICAgICAgXG4gICAgICBNb2RpZmllckxvb2t1cHM6IHRoaXMuTXVsdGlTZWxlY3RGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgIEFwcGxpY2F0aW9uTG9va3VwOiBhcHBsaWNhdGlvbkxvb2t1cCxcbiAgICB9O1xuICAgIHRoaXMuZWFjU3ZjLlNhdmVERlNNb2RpZmllcihzYXZlTWRmclJlcSk7XG5cbiAgfVxuICB9XG5cbi8qKlxuICogXG4gKiBTYXZlcyBhIG1vZGlmaWVyLCBzYXZlcyBhIG1vZGlmaWVyIHRvIGEgcHJvamVjdFxuICovXG4gIHB1YmxpYyBTYXZlTW9kaWZpZXIocHJvamVjdExvb2t1cDogc3RyaW5nID0gbnVsbCk6IHZvaWQge1xuICAgIGlmKHRoaXMuTW9kaWZpZXJGb3JtR3JvdXApe1xuICAgICAgY29uc3Qgc2F2ZU1kZnJSZXE6IFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdCA9IHtcbiAgICAgICAgTW9kaWZpZXI6IHtcbiAgICAgICAgICAuLi50aGlzLkVkaXRpbmdNb2RpZmllcixcbiAgICAgICAgICBOYW1lOiB0aGlzLk5hbWVGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICBFbmFibGVkOiB0aGlzLkVuYWJsZWRGb3JtQ29udHJvbC52YWx1ZSxcbiAgICAgICAgICBQYXRoRmlsdGVyUmVnZXg6IHRoaXMuUGF0aEZpbHRlckZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICAgIFByaW9yaXR5OiB0aGlzLlByaW9yaXR5Rm9ybUNvbnRyb2wudmFsdWUsXG4gICAgICAgICAgVHlwZTogdGhpcy5DdXJyZW50VHlwZSxcbiAgICAgICAgfSxcbiAgICAgICAgTW9kaWZpZXJMb29rdXBzOiBbdGhpcy5FZGl0aW5nTW9kaWZpZXJMb29rdXBdLFxuICAgICAgICBQcm9qZWN0TG9va3VwczogW3Byb2plY3RMb29rdXBdLFxuICAgICAgfTtcblxuICAgICAgbGV0IGRldGFpbHMgPSB0aGlzLmdldERldGFpbHMoKTtcblxuICAgICAgc2F2ZU1kZnJSZXEuTW9kaWZpZXIuRGV0YWlscyA9IEpTT04uc3RyaW5naWZ5KGRldGFpbHMpO1xuICAgIFxuXG4gICAgICB0aGlzLmVhY1N2Yy5TYXZlREZTTW9kaWZpZXIoc2F2ZU1kZnJSZXEpO1xuICAgIH1cbiAgICBlbHNlIGlmKHRoaXMuTW9kaWZpZXJTZWxlY3RGb3JtR3JvdXApe1xuICAgICAgY29uc3Qgc2F2ZU1kZnJSZXE6IFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdCA9IHtcbiAgICAgICAgXG4gICAgICAgIE1vZGlmaWVyTG9va3VwczogdGhpcy5NdWx0aVNlbGVjdEZvcm1Db250cm9sLnZhbHVlLFxuICAgICAgICBQcm9qZWN0TG9va3VwczogW3Byb2plY3RMb29rdXBdLFxuICAgICAgfTtcbiAgICAgIHRoaXMuZWFjU3ZjLlNhdmVERlNNb2RpZmllcihzYXZlTWRmclJlcSk7XG5cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgU2V0RWRpdGluZ01vZGlmaWVyKG1vZGlmaWVyTG9va3VwOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLkVkaXRpbmdNb2RpZmllckxvb2t1cCA9IG1vZGlmaWVyTG9va3VwO1xuXG4gICAgdGhpcy5zZXR1cE1vZGlmaWVyRm9ybSgpO1xuICB9XG5cbiAgcHVibGljIFNldFVzZUZvclByb2plY3QoXG4gICAgbW9kaWZpZXJMb29rdXA6IHN0cmluZyxcbiAgICBjaGFuZ2U6IE1hdFNsaWRlVG9nZ2xlQ2hhbmdlXG4gICk6IHZvaWQge1xuICAgIHRoaXMuU2V0RWRpdGluZ01vZGlmaWVyKG1vZGlmaWVyTG9va3VwKTtcblxuICAgIHRoaXMuU2F2ZU1vZGlmaWVyKHRoaXMuUHJvamVjdExvb2t1cCk7XG4gIH1cblxuICBwdWJsaWMgVHlwZUNoYW5nZWQoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSk6IHZvaWQge1xuICAgIHRoaXMuQ3VycmVudFR5cGUgPSBldmVudC52YWx1ZTtcblxuICAgIHRoaXMuc2V0dXBUeXBlRm9ybSgpO1xuICB9XG5cbiAgLy8gIEhlbHBlcnNcblxuICBwcm90ZWN0ZWQgZ2V0RGV0YWlscygpOiBhbnl7XG4gICAgY29uc3QgZGV0YWlscyA9IHt9O1xuXG4gICAgc3dpdGNoICh0aGlzLkN1cnJlbnRUeXBlKSB7XG4gICAgICBjYXNlICdMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLkhUTUxCYXNlREZTTW9kaWZpZXJNYW5hZ2VyLCBMQ1UuUnVudGltZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwnOlxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnTENVLlJ1bnRpbWUuQXBwbGljYXRpb25zLk1vZGlmaWVycy5MQ1VSZWdERlNNb2RpZmllck1hbmFnZXIsIExDVS5SdW50aW1lLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbCc6XG4gICAgICAgIGRldGFpbHNbJ1N0YXRlRGF0YVRva2VuJ10gPSB0aGlzLlN0YXRlRGF0YVRva2VuRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLlRoaXJkUGFydHlMaWJyYXJ5REZTTW9kaWZpZXJNYW5hZ2VyLCBMQ1UuUnVudGltZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwnOlxuICAgICAgICBkZXRhaWxzWydMb2NhdGlvbiddID0gdGhpcy5Mb2NhdGlvbkZvcm1Db250cm9sLnZhbHVlO1xuXG4gICAgICAgIGRldGFpbHNbJ1NjcmlwdCddID0gdGhpcy5TY3JpcHRGb3JtQ29udHJvbC52YWx1ZTtcblxuICAgICAgICBkZXRhaWxzWydTY3JpcHRJRCddID0gdGhpcy5TY3JpcHRJREZvcm1Db250cm9sLnZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIGRldGFpbHM7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0dXBNb2RpZmllclNlbGVjdEZvcm0oKXtcbiAgICB0aGlzLk1vZGlmaWVyU2VsZWN0Rm9ybUdyb3VwID0gdGhpcy5mb3JtQmxkci5ncm91cCh7XG4gICAgICBtdWx0aVNlbGVjdDogW3RoaXMuTW9kaWZpZXJMb29rdXBzID8gdGhpcy5Nb2RpZmllckxvb2t1cHMgOiBbXV1cbiAgICB9KTtcblxuICB9XG5cbiAgcHJvdGVjdGVkIHNldHVwTW9kaWZpZXJGb3JtKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLkVkaXRpbmdNb2RpZmllciAhPSBudWxsKSB7XG4gICAgICB0aGlzLkN1cnJlbnRUeXBlID0gdGhpcy5FZGl0aW5nTW9kaWZpZXI/LlR5cGU7XG5cbiAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAgPSB0aGlzLmZvcm1CbGRyLmdyb3VwKHtcbiAgICAgICAgbmFtZTogW3RoaXMuRWRpdGluZ01vZGlmaWVyPy5OYW1lLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgdHlwZTogW3RoaXMuQ3VycmVudFR5cGUsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICBwcmlvcml0eTogW3RoaXMuRWRpdGluZ01vZGlmaWVyPy5Qcmlvcml0eSA/IHRoaXMuRWRpdGluZ01vZGlmaWVyPy5Qcmlvcml0eSA6IDkwMDAsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICBlbmFibGVkOiBbdGhpcy5FZGl0aW5nTW9kaWZpZXI/LkVuYWJsZWQsIFtdXSxcbiAgICAgICAgcGF0aEZpbHRlcjogW1xuICAgICAgICAgIHRoaXMuRWRpdGluZ01vZGlmaWVyPy5QYXRoRmlsdGVyUmVnZXggPyB0aGlzLkVkaXRpbmdNb2RpZmllcj8uUGF0aEZpbHRlclJlZ2V4IDogXCIqaW5kZXguaHRtbFwiICxcbiAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuc2V0dXBUeXBlRm9ybSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZXR1cFR5cGVGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnc3RhdGVEYXRhVG9rZW4nKTtcblxuICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnbG9jYXRpb24nKTtcbiAgICB0aGlzLk1vZGlmaWVyRm9ybUdyb3VwLnJlbW92ZUNvbnRyb2woJ3NjcmlwdCcpO1xuICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAucmVtb3ZlQ29udHJvbCgnc2NyaXB0SWQnKTtcblxuICAgIGNvbnN0IGRldGFpbHMgPSBKU09OLnBhcnNlKHRoaXMuRWRpdGluZ01vZGlmaWVyPy5EZXRhaWxzIHx8ICd7fScpO1xuXG4gICAgc3dpdGNoICh0aGlzLkN1cnJlbnRUeXBlKSB7XG4gICAgICBjYXNlICdMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLkhUTUxCYXNlREZTTW9kaWZpZXJNYW5hZ2VyLCBMQ1UuUnVudGltZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwnOlxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnTENVLlJ1bnRpbWUuQXBwbGljYXRpb25zLk1vZGlmaWVycy5MQ1VSZWdERlNNb2RpZmllck1hbmFnZXIsIExDVS5SdW50aW1lLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbCc6XG4gICAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAnc3RhdGVEYXRhVG9rZW4nLFxuICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChkZXRhaWxzPy5TdGF0ZURhdGFUb2tlbiB8fCAnbGN1LXN0YXRlLWNvbmZpZycsIFtcbiAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgXSlcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0xDVS5SdW50aW1lLkFwcGxpY2F0aW9ucy5Nb2RpZmllcnMuVGhpcmRQYXJ0eUxpYnJhcnlERlNNb2RpZmllck1hbmFnZXIsIExDVS5SdW50aW1lLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbCc6XG4gICAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAnbG9jYXRpb24nLFxuICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChkZXRhaWxzPy5Mb2NhdGlvbiB8fCAnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuTW9kaWZpZXJGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAnc2NyaXB0JyxcbiAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woZGV0YWlscz8uU2NyaXB0IHx8ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5Nb2RpZmllckZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICdzY3JpcHRJZCcsXG4gICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKGRldGFpbHM/LlNjcmlwdElEIHx8ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIFxuICBcblxuICBcblxuXG59XG4iLCI8ZGl2PlxuICA8Zm9ybVxuICAgIFtmb3JtR3JvdXBdPVwiTW9kaWZpZXJGb3JtR3JvdXBcIlxuICAgIChuZ1N1Ym1pdCk9XCJTYXZlTW9kaWZpZXIoKVwiXG4gICAgKm5nSWY9XCJFZGl0aW5nTW9kaWZpZXJcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tY2FyZFwiPlxuICAgICAgPCEtLSA8bWF0LWNhcmQgY2xhc3M9XCJzcHJlYWRcIj4gLS0+XG4gICAgICAgIDwhLS0gPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgICAgICA8bWF0LWNhcmQtdGl0bGU+IERGUyBNb2RpZmllciA8L21hdC1jYXJkLXRpdGxlPlxuXG4gICAgICAgICAgPGRpdiBmeEZsZXg+PC9kaXY+XG5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkNvbmZpZ3VyZSBtb2RpZmllcnMgZm9yIHlvdXIgREZTIGZpbGVzLlwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgaW5mb19vdXRsaW5lXG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+IC0tPlxuXG4gICAgICAgIDwhLS0gPG1hdC1jYXJkLWNvbnRlbnQ+IC0tPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0eXBlXCJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJERlMgTW9kaWZpZXIgVHlwZVwiXG4gICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwiVHlwZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgdmFsdWU9XCJMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLkhUTUxCYXNlREZTTW9kaWZpZXJNYW5hZ2VyLCBMQ1UuUnVudGltZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGxcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgSFRNTCBCYXNlIE1vZGZpZXJcbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuXG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgdmFsdWU9XCJMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLkxDVVJlZ0RGU01vZGlmaWVyTWFuYWdlciwgTENVLlJ1bnRpbWUsIFZlcnNpb249MS4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIExDVSBSZWcgTW9kZmllclxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICB2YWx1ZT1cIkxDVS5SdW50aW1lLkFwcGxpY2F0aW9ucy5Nb2RpZmllcnMuVGhpcmRQYXJ0eUxpYnJhcnlERlNNb2RpZmllck1hbmFnZXIsIExDVS5SdW50aW1lLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBUaHJpZCBQYXJ0eSBMaWJyYXJ5IE1vZGlmaWVyXG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTmFtZVwiXG4gICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInByaW9yaXR5XCJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJQcmlvcml0eVwiXG4gICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhdGhGaWx0ZXJcIlxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlBhdGggRmlsdGVyIChyZWdleClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgXG5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBDdXJyZW50VHlwZSA9PVxuICAgICAgICAgICAgICAnTENVLlJ1bnRpbWUuQXBwbGljYXRpb25zLk1vZGlmaWVycy5MQ1VSZWdERlNNb2RpZmllck1hbmFnZXIsIExDVS5SdW50aW1lLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbCdcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdGF0ZURhdGFUb2tlblwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTdGF0ZSBEYXRhIFRva2VuXCJcbiAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIEN1cnJlbnRUeXBlID09XG4gICAgICAgICAgICAgICdMQ1UuUnVudGltZS5BcHBsaWNhdGlvbnMuTW9kaWZpZXJzLlRoaXJkUGFydHlMaWJyYXJ5REZTTW9kaWZpZXJNYW5hZ2VyLCBMQ1UuUnVudGltZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibG9jYXRpb25cIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTG9jYXRpb25cIlxuICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNjcmlwdElkXCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNjcmlwdCBJRFwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2NyaXB0XCJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNjcmlwdFwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cblxuICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlICpuZ0lmPVwiUHJvamVjdExvb2t1cFwiIGNsYXNzPVwic3ByZWFkXCIgZm9ybUNvbnRyb2xOYW1lPVwiZW5hYmxlZFwiPlxuICAgICAgICAgICAgSXMgRW5hYmxlZD9cbiAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgIDwhLS0gPC9tYXQtY2FyZC1jb250ZW50PiAtLT5cbiAgICAgIDwhLS0gPC9tYXQtY2FyZD4gLS0+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJzcHJlYWRcIj5cbiAgICAgIDxkaXYgZnhGbGV4PjwvZGl2PlxuXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJTZXRFZGl0aW5nTW9kaWZpZXIobnVsbClcIj5cbiAgICAgICAgPG1hdC1pY29uPmNhbmNlbDwvbWF0LWljb24+IENhbmNlbFxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxkaXYgZnhGbGV4PjwvZGl2PlxuXG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIU1vZGlmaWVyRm9ybUdyb3VwLnZhbGlkIHx8ICFNb2RpZmllckZvcm1Hcm91cC5kaXJ0eVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj4gU2F2ZSBERlMgTW9kaWZpZXJcbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8ZGl2IGZ4RmxleD48L2Rpdj5cbiAgICA8L2Rpdj4gLS0+XG4gIDwvZm9ybT5cblxuICA8Zm9ybVxuICAgICAgICAgIFtmb3JtR3JvdXBdPVwiTW9kaWZpZXJTZWxlY3RGb3JtR3JvdXBcIlxuICAgICAgICAgICpuZ0lmPVwiIUVkaXRpbmdNb2RpZmllclwiXG4gID5cblxuICAgIDxkaXYgY2xhc3M9XCJzcHJlYWRcIiAqbmdJZj1cIiFFZGl0aW5nTW9kaWZpZXJcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiYXBwcy1hY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwiQ3JlYXRlTmV3TW9kaWZpZXIoKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIj5hZGQ8L21hdC1pY29uPiBDcmVhdGUgTmV3XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9zcGFuPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic3ByZWFkXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJFbnRlcnByaXNlc01vZGlmaWVyTG9va3Vwcz8ubGVuZ3RoIDw9IDBcIj5cbiAgICAgICAgICA8aDI+Tm8gREZTIG1vZGlmaWVycyBjcmVhdGVkLCBjcmVhdGUgeW91ciBmaXJzdCBERlMgbW9kaWZpZXIuPC9oMj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkVudGVycHJpc2VzTW9kaWZpZXJMb29rdXBzPy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgPCEtLSA8aDI+REZTIE1vZGlmaWVyczwvaDI+IC0tPlxuICAgICAgICAgIFxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD5Nb2RpZmllcnM8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cIm11bHRpU2VsZWN0XCIgbXVsdGlwbGU+XG4gICAgICAgICAgICAgIDxtYXQtc2VsZWN0LXRyaWdnZXI+XG4gICAgICAgICAgICAgICAge3tNdWx0aVNlbGVjdEZvcm1Db250cm9sPy52YWx1ZSA/IE11bHRpU2VsZWN0Rm9ybUNvbnRyb2w/LnZhbHVlWzBdIDogJyd9fVxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiTXVsdGlTZWxlY3RGb3JtQ29udHJvbD8udmFsdWU/Lmxlbmd0aCA+IDFcIiBjbGFzcz1cIm1vZGlmaWVyLXNlbGVjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgKCt7e011bHRpU2VsZWN0Rm9ybUNvbnRyb2w/LnZhbHVlPy5sZW5ndGggLSAxfX0ge3tNdWx0aVNlbGVjdEZvcm1Db250cm9sPy52YWx1ZT8ubGVuZ3RoID09PSAyID8gJ290aGVyJyA6ICdvdGhlcnMnfX0pXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbW9kaWZpZXJMb29rdXAgb2YgRW50ZXJwcmlzZXNNb2RpZmllckxvb2t1cHNcIj5cbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJNb2RpZmllcnNbbW9kaWZpZXJMb29rdXBdOyBsZXQgbW9kaWZpZXJcIiBbdmFsdWVdPVwibW9kaWZpZXJMb29rdXBcIj57e21vZGlmaWVyPy5OYW1lfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICA8IS0tIDxkaXYgZnhMYXlvdXQ9XCJyb3cgd3JhcFwiIGZ4TGF5b3V0Lmx0LW1kPVwiY29sdW1uXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGZ4RmxleC5sdC1tZD1cIjEwMCVcIlxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbW9kaWZpZXJMb29rdXAgb2YgTW9kaWZpZXJMb29rdXBzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiTW9kaWZpZXJzW21vZGlmaWVyTG9va3VwXTsgbGV0IG1vZGlmaWVyXCI+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtc3ViaGVhZGluZy0yXCJcbiAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwibW9kaWZpZXIuTmFtZVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IG1vZGlmaWVyLk5hbWUgfHwgbW9kaWZpZXIuTG9va3VwIH19XG5cblxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3ByZWFkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFByb2plY3Q/Lk1vZGlmaWVyTG9va3Vwcy5pbmRleE9mKG1vZGlmaWVyTG9va3VwKSA+PSAwXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIlNldFVzZUZvclByb2plY3QobW9kaWZpZXJMb29rdXAsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidVc2UgZm9yICcgKyBMZXZlbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGEtYXBwLWFjdGlvbnNcIj5cblxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJTZXRFZGl0aW5nTW9kaWZpZXIobW9kaWZpZXJMb29rdXApXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRUb29sdGlwPVwiRWRpdCBERlMgTW9kaWZpZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzXG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIkRlbGV0ZU1vZGlmaWVyKG1vZGlmaWVyTG9va3VwLCBtb2RpZmllci5OYW1lKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0VG9vbHRpcD1cIkRlbGV0ZSB7eyBtb2RpZmllci5OYW1lIH19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGVfZm9yZXZlclxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9kaXY+XG4iXX0=
|