@smartbit4all/ng-client 4.0.89 → 4.0.91

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.
Files changed (47) hide show
  1. package/esm2022/lib/smart-client/smart-component-api-client.mjs +47 -8
  2. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +2 -1
  3. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +1 -1
  4. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +2 -1
  5. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +1 -1
  6. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +46 -11
  7. package/esm2022/lib/smart-form/api/api/api.mjs +1 -1
  8. package/esm2022/lib/smart-form/api/api/default.service.mjs +1 -1
  9. package/esm2022/lib/smart-form/api/api.module.mjs +1 -1
  10. package/esm2022/lib/smart-form/api/configuration.mjs +1 -1
  11. package/esm2022/lib/smart-form/api/encoder.mjs +1 -1
  12. package/esm2022/lib/smart-form/api/index.mjs +1 -1
  13. package/esm2022/lib/smart-form/api/model/models.mjs +1 -1
  14. package/esm2022/lib/smart-form/api/model/propertyMapping.mjs +1 -1
  15. package/esm2022/lib/smart-form/api/model/selectionDefinition.mjs +1 -1
  16. package/esm2022/lib/smart-form/api/model/smartFormInputMode.mjs +1 -1
  17. package/esm2022/lib/smart-form/api/model/smartFormWidgetDirection.mjs +1 -1
  18. package/esm2022/lib/smart-form/api/model/smartFormWidgetType.mjs +2 -1
  19. package/esm2022/lib/smart-form/api/model/smartLayoutDefinition.mjs +1 -1
  20. package/esm2022/lib/smart-form/api/model/smartMatrixModel.mjs +1 -1
  21. package/esm2022/lib/smart-form/api/model/smartWidgetDefinition.mjs +1 -1
  22. package/esm2022/lib/smart-form/api/model/smartWidgetHint.mjs +1 -1
  23. package/esm2022/lib/smart-form/api/model/valueChangeMode.mjs +1 -1
  24. package/esm2022/lib/smart-form/api/param.mjs +1 -1
  25. package/esm2022/lib/smart-form/api/variables.mjs +1 -1
  26. package/esm2022/lib/smart-form/services/smartform.layout-definition.service.mjs +67 -3
  27. package/esm2022/lib/smart-form/smartform.form-model.mjs +1 -1
  28. package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +73 -24
  29. package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +3 -3
  30. package/esm2022/lib/view-context/utility/smart-object-utility.mjs +15 -1
  31. package/fesm2022/smartbit4all-ng-client.mjs +245 -44
  32. package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
  33. package/lib/smart-client/smart-component-api-client.d.ts +3 -0
  34. package/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.d.ts +1 -0
  35. package/lib/smart-filter/api/filter/model/filterExpressionOperandData.d.ts +1 -0
  36. package/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.d.ts +1 -0
  37. package/lib/smart-filter-editor/api/model/filterExpressionOperandData.d.ts +1 -0
  38. package/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.d.ts +2 -0
  39. package/lib/smart-form/api/model/smartFormWidgetType.d.ts +1 -0
  40. package/lib/smart-form/api/model/smartWidgetDefinition.d.ts +12 -0
  41. package/lib/smart-form/services/smartform.layout-definition.service.d.ts +1 -0
  42. package/lib/smart-form/smartform.form-model.d.ts +82 -1
  43. package/lib/smart-form/widgets/smartformwidget/smartformwidget.component.d.ts +2 -0
  44. package/lib/view-context/utility/smart-object-utility.d.ts +1 -0
  45. package/package.json +1 -1
  46. package/smartbit4all-ng-client-4.0.91.tgz +0 -0
  47. package/smartbit4all-ng-client-4.0.89.tgz +0 -0
@@ -17,4 +17,4 @@ export var ValueChangeMode;
17
17
  ValueChangeMode["NONE"] = "NONE";
18
18
  ValueChangeMode["IMMEDIATE_ACTION"] = "IMMEDIATE_ACTION";
19
19
  })(ValueChangeMode || (ValueChangeMode = {}));
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVDaGFuZ2VNb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS9hcGkvbW9kZWwvdmFsdWVDaGFuZ2VNb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFHSDs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDdkIsZ0NBQWEsQ0FBQTtJQUNiLHdEQUFxQyxDQUFBO0FBQ3pDLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBGb3JtIGxheW91dCBkZWZpbml0aW9uXHJcbiAqIENvbnRhaW5zIGZvcm0gbGF5b3V0IGRlZmluaXRpb24gb2JqZWN0cy5cclxuICpcclxuICogVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDEuMC4wXHJcbiAqIENvbnRhY3Q6IGluZm9AaXQ0YWxsLmh1XHJcbiAqXHJcbiAqIE5PVEU6IFRoaXMgY2xhc3MgaXMgYXV0byBnZW5lcmF0ZWQgYnkgT3BlbkFQSSBHZW5lcmF0b3IgKGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaCkuXHJcbiAqIGh0dHBzOi8vb3BlbmFwaS1nZW5lcmF0b3IudGVjaFxyXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXHJcbiAqL1xyXG5cclxuXHJcbi8qKlxyXG4gKiBUaGlzIGVudW0gZGVmaW5lcyB0aGUgdmFsdWUgY2hhbmdlIGhhbmRsaW5nIHN0cmF0ZWd5LiBDdXJyZW50bHkgb25seSBvbmUgbWV0aG9kIGlzIHN1cHBvcnRlZCwgSU1NRURJQVRFX0FDVElPTiwgd2hpY2ggd2lsbCB0cmlnZ2VyIGFuIGV4ZWN1dGVVaUFjdGlvbiB3aGVuIHRoZSB2YWx1ZSBpcyBjaGFuZ2VkLiBcclxuICovXHJcbmV4cG9ydCBlbnVtIFZhbHVlQ2hhbmdlTW9kZSB7XHJcbiAgICBOT05FID0gJ05PTkUnLFxyXG4gICAgSU1NRURJQVRFX0FDVElPTiA9ICdJTU1FRElBVEVfQUNUSU9OJ1xyXG59XHJcblxyXG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVDaGFuZ2VNb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS9hcGkvbW9kZWwvdmFsdWVDaGFuZ2VNb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFHSDs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDdkIsZ0NBQWEsQ0FBQTtJQUNiLHdEQUFxQyxDQUFBO0FBQ3pDLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm9ybSBsYXlvdXQgZGVmaW5pdGlvblxuICogQ29udGFpbnMgZm9ybSBsYXlvdXQgZGVmaW5pdGlvbiBvYmplY3RzLlxuICpcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBPcGVuQVBJIGRvY3VtZW50OiAxLjAuMFxuICogQ29udGFjdDogaW5mb0BpdDRhbGwuaHVcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpLlxuICogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cblxuXG4vKipcbiAqIFRoaXMgZW51bSBkZWZpbmVzIHRoZSB2YWx1ZSBjaGFuZ2UgaGFuZGxpbmcgc3RyYXRlZ3kuIEN1cnJlbnRseSBvbmx5IG9uZSBtZXRob2QgaXMgc3VwcG9ydGVkLCBJTU1FRElBVEVfQUNUSU9OLCB3aGljaCB3aWxsIHRyaWdnZXIgYW4gZXhlY3V0ZVVpQWN0aW9uIHdoZW4gdGhlIHZhbHVlIGlzIGNoYW5nZWQuIFxuICovXG5leHBvcnQgZW51bSBWYWx1ZUNoYW5nZU1vZGUge1xuICAgIE5PTkUgPSAnTk9ORScsXG4gICAgSU1NRURJQVRFX0FDVElPTiA9ICdJTU1FRElBVEVfQUNUSU9OJ1xufVxuXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL2FwaS9wYXJhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFN0YW5kYXJkIHBhcmFtZXRlciBzdHlsZXMgZGVmaW5lZCBieSBPcGVuQVBJIHNwZWNcclxuICovXHJcbmV4cG9ydCB0eXBlIFN0YW5kYXJkUGFyYW1TdHlsZSA9XHJcbiAgfCAnbWF0cml4J1xyXG4gIHwgJ2xhYmVsJ1xyXG4gIHwgJ2Zvcm0nXHJcbiAgfCAnc2ltcGxlJ1xyXG4gIHwgJ3NwYWNlRGVsaW1pdGVkJ1xyXG4gIHwgJ3BpcGVEZWxpbWl0ZWQnXHJcbiAgfCAnZGVlcE9iamVjdCdcclxuICA7XHJcblxyXG4vKipcclxuICogVGhlIE9wZW5BUEkgc3RhbmRhcmQge0BsaW5rIFN0YW5kYXJkUGFyYW1TdHlsZX1zIG1heSBiZSBleHRlbmRlZCBieSBjdXN0b20gc3R5bGVzIGJ5IHRoZSB1c2VyLlxyXG4gKi9cclxuZXhwb3J0IHR5cGUgUGFyYW1TdHlsZSA9IFN0YW5kYXJkUGFyYW1TdHlsZSB8IHN0cmluZztcclxuXHJcbi8qKlxyXG4gKiBTdGFuZGFyZCBwYXJhbWV0ZXIgbG9jYXRpb25zIGRlZmluZWQgYnkgT3BlbkFQSSBzcGVjXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBQYXJhbUxvY2F0aW9uID0gJ3F1ZXJ5JyB8ICdoZWFkZXInIHwgJ3BhdGgnIHwgJ2Nvb2tpZSc7XHJcblxyXG4vKipcclxuICogU3RhbmRhcmQgdHlwZXMgYXMgZGVmaW5lZCBpbiA8YSBocmVmPVwiaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vI2RhdGEtdHlwZXNcIj5PcGVuQVBJIFNwZWNpZmljYXRpb246IERhdGEgVHlwZXM8L2E+XHJcbiAqL1xyXG5leHBvcnQgdHlwZSBTdGFuZGFyZERhdGFUeXBlID1cclxuICB8IFwiaW50ZWdlclwiXHJcbiAgfCBcIm51bWJlclwiXHJcbiAgfCBcImJvb2xlYW5cIlxyXG4gIHwgXCJzdHJpbmdcIlxyXG4gIHwgXCJvYmplY3RcIlxyXG4gIHwgXCJhcnJheVwiXHJcbiAgO1xyXG5cclxuLyoqXHJcbiAqIFN0YW5kYXJkIHtAbGluayBEYXRhVHlwZX1zIHBsdXMgeW91ciBvd24gdHlwZXMvY2xhc3Nlcy5cclxuICovXHJcbmV4cG9ydCB0eXBlIERhdGFUeXBlID0gU3RhbmRhcmREYXRhVHlwZSB8IHN0cmluZztcclxuXHJcbi8qKlxyXG4gKiBTdGFuZGFyZCBmb3JtYXRzIGFzIGRlZmluZWQgaW4gPGEgaHJlZj1cImh0dHBzOi8vc3dhZ2dlci5pby9zcGVjaWZpY2F0aW9uLyNkYXRhLXR5cGVzXCI+T3BlbkFQSSBTcGVjaWZpY2F0aW9uOiBEYXRhIFR5cGVzPC9hPlxyXG4gKi9cclxuZXhwb3J0IHR5cGUgU3RhbmRhcmREYXRhRm9ybWF0ID1cclxuICB8IFwiaW50MzJcIlxyXG4gIHwgXCJpbnQ2NFwiXHJcbiAgfCBcImZsb2F0XCJcclxuICB8IFwiZG91YmxlXCJcclxuICB8IFwiYnl0ZVwiXHJcbiAgfCBcImJpbmFyeVwiXHJcbiAgfCBcImRhdGVcIlxyXG4gIHwgXCJkYXRlLXRpbWVcIlxyXG4gIHwgXCJwYXNzd29yZFwiXHJcbiAgO1xyXG5cclxuZXhwb3J0IHR5cGUgRGF0YUZvcm1hdCA9IFN0YW5kYXJkRGF0YUZvcm1hdCB8IHN0cmluZztcclxuXHJcbi8qKlxyXG4gKiBUaGUgcGFyYW1ldGVyIHRvIGVuY29kZS5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW0ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB2YWx1ZTogdW5rbm93bjtcclxuICBpbjogUGFyYW1Mb2NhdGlvbjtcclxuICBzdHlsZTogUGFyYW1TdHlsZSxcclxuICBleHBsb2RlOiBib29sZWFuO1xyXG4gIGRhdGFUeXBlOiBEYXRhVHlwZTtcclxuICBkYXRhRm9ybWF0OiBEYXRhRm9ybWF0IHwgdW5kZWZpbmVkO1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL2FwaS9wYXJhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTdGFuZGFyZCBwYXJhbWV0ZXIgc3R5bGVzIGRlZmluZWQgYnkgT3BlbkFQSSBzcGVjXG4gKi9cbmV4cG9ydCB0eXBlIFN0YW5kYXJkUGFyYW1TdHlsZSA9XG4gIHwgJ21hdHJpeCdcbiAgfCAnbGFiZWwnXG4gIHwgJ2Zvcm0nXG4gIHwgJ3NpbXBsZSdcbiAgfCAnc3BhY2VEZWxpbWl0ZWQnXG4gIHwgJ3BpcGVEZWxpbWl0ZWQnXG4gIHwgJ2RlZXBPYmplY3QnXG4gIDtcblxuLyoqXG4gKiBUaGUgT3BlbkFQSSBzdGFuZGFyZCB7QGxpbmsgU3RhbmRhcmRQYXJhbVN0eWxlfXMgbWF5IGJlIGV4dGVuZGVkIGJ5IGN1c3RvbSBzdHlsZXMgYnkgdGhlIHVzZXIuXG4gKi9cbmV4cG9ydCB0eXBlIFBhcmFtU3R5bGUgPSBTdGFuZGFyZFBhcmFtU3R5bGUgfCBzdHJpbmc7XG5cbi8qKlxuICogU3RhbmRhcmQgcGFyYW1ldGVyIGxvY2F0aW9ucyBkZWZpbmVkIGJ5IE9wZW5BUEkgc3BlY1xuICovXG5leHBvcnQgdHlwZSBQYXJhbUxvY2F0aW9uID0gJ3F1ZXJ5JyB8ICdoZWFkZXInIHwgJ3BhdGgnIHwgJ2Nvb2tpZSc7XG5cbi8qKlxuICogU3RhbmRhcmQgdHlwZXMgYXMgZGVmaW5lZCBpbiA8YSBocmVmPVwiaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vI2RhdGEtdHlwZXNcIj5PcGVuQVBJIFNwZWNpZmljYXRpb246IERhdGEgVHlwZXM8L2E+XG4gKi9cbmV4cG9ydCB0eXBlIFN0YW5kYXJkRGF0YVR5cGUgPVxuICB8IFwiaW50ZWdlclwiXG4gIHwgXCJudW1iZXJcIlxuICB8IFwiYm9vbGVhblwiXG4gIHwgXCJzdHJpbmdcIlxuICB8IFwib2JqZWN0XCJcbiAgfCBcImFycmF5XCJcbiAgO1xuXG4vKipcbiAqIFN0YW5kYXJkIHtAbGluayBEYXRhVHlwZX1zIHBsdXMgeW91ciBvd24gdHlwZXMvY2xhc3Nlcy5cbiAqL1xuZXhwb3J0IHR5cGUgRGF0YVR5cGUgPSBTdGFuZGFyZERhdGFUeXBlIHwgc3RyaW5nO1xuXG4vKipcbiAqIFN0YW5kYXJkIGZvcm1hdHMgYXMgZGVmaW5lZCBpbiA8YSBocmVmPVwiaHR0cHM6Ly9zd2FnZ2VyLmlvL3NwZWNpZmljYXRpb24vI2RhdGEtdHlwZXNcIj5PcGVuQVBJIFNwZWNpZmljYXRpb246IERhdGEgVHlwZXM8L2E+XG4gKi9cbmV4cG9ydCB0eXBlIFN0YW5kYXJkRGF0YUZvcm1hdCA9XG4gIHwgXCJpbnQzMlwiXG4gIHwgXCJpbnQ2NFwiXG4gIHwgXCJmbG9hdFwiXG4gIHwgXCJkb3VibGVcIlxuICB8IFwiYnl0ZVwiXG4gIHwgXCJiaW5hcnlcIlxuICB8IFwiZGF0ZVwiXG4gIHwgXCJkYXRlLXRpbWVcIlxuICB8IFwicGFzc3dvcmRcIlxuICA7XG5cbmV4cG9ydCB0eXBlIERhdGFGb3JtYXQgPSBTdGFuZGFyZERhdGFGb3JtYXQgfCBzdHJpbmc7XG5cbi8qKlxuICogVGhlIHBhcmFtZXRlciB0byBlbmNvZGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiB1bmtub3duO1xuICBpbjogUGFyYW1Mb2NhdGlvbjtcbiAgc3R5bGU6IFBhcmFtU3R5bGUsXG4gIGV4cGxvZGU6IGJvb2xlYW47XG4gIGRhdGFUeXBlOiBEYXRhVHlwZTtcbiAgZGF0YUZvcm1hdDogRGF0YUZvcm1hdCB8IHVuZGVmaW5lZDtcbn1cbiJdfQ==
@@ -6,4 +6,4 @@ export const COLLECTION_FORMATS = {
6
6
  'ssv': ' ',
7
7
  'pipes': '|'
8
8
  };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS9hcGkvdmFyaWFibGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksY0FBYyxDQUFTLFVBQVUsQ0FBQyxDQUFDO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQzlCLEtBQUssRUFBRSxHQUFHO0lBQ1YsS0FBSyxFQUFFLEtBQUs7SUFDWixLQUFLLEVBQUUsR0FBRztJQUNWLE9BQU8sRUFBRSxHQUFHO0NBQ2YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgY29uc3QgQkFTRV9QQVRIID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ2Jhc2VQYXRoJyk7XHJcbmV4cG9ydCBjb25zdCBDT0xMRUNUSU9OX0ZPUk1BVFMgPSB7XHJcbiAgICAnY3N2JzogJywnLFxyXG4gICAgJ3Rzdic6ICcgICAnLFxyXG4gICAgJ3Nzdic6ICcgJyxcclxuICAgICdwaXBlcyc6ICd8J1xyXG59XHJcbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZm9ybS9hcGkvdmFyaWFibGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksY0FBYyxDQUFTLFVBQVUsQ0FBQyxDQUFDO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQzlCLEtBQUssRUFBRSxHQUFHO0lBQ1YsS0FBSyxFQUFFLEtBQUs7SUFDWixLQUFLLEVBQUUsR0FBRztJQUNWLE9BQU8sRUFBRSxHQUFHO0NBQ2YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBCQVNFX1BBVEggPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignYmFzZVBhdGgnKTtcbmV4cG9ydCBjb25zdCBDT0xMRUNUSU9OX0ZPUk1BVFMgPSB7XG4gICAgJ2Nzdic6ICcsJyxcbiAgICAndHN2JzogJyAgICcsXG4gICAgJ3Nzdic6ICcgJyxcbiAgICAncGlwZXMnOiAnfCdcbn1cbiJdfQ==
@@ -39,8 +39,8 @@ export class SmartformLayoutDefinitionService {
39
39
  return this.createTextFieldChips(config.layoutDefinition);
40
40
  case SmartFormWidgetType.TEXT_FIELD_NUMBER:
41
41
  return this.createTextFieldNumber(config.layoutDefinition);
42
- case SmartFormWidgetType.TEXT_FIELD:
43
- return this.createTextField(config.layoutDefinition);
42
+ case SmartFormWidgetType.TEXT_FIELD_LOOKUP:
43
+ return this.createTextFieldLookup(config.layoutDefinition);
44
44
  case SmartFormWidgetType.TEXT_BOX:
45
45
  return this.createTextBox(config.layoutDefinition);
46
46
  case SmartFormWidgetType.TOGGLE:
@@ -90,6 +90,9 @@ export class SmartformLayoutDefinitionService {
90
90
  type: SmartFormWidgetType.MONTH_PICKER,
91
91
  label: layoutDefinition.label,
92
92
  showLabel: layoutDefinition.showLabel,
93
+ serverErrorMessage: layoutDefinition.errorMessage,
94
+ serverErrorIcon: layoutDefinition.errorIcon,
95
+ serverErrorColor: layoutDefinition.errorColor,
93
96
  };
94
97
  return widget;
95
98
  }
@@ -102,6 +105,9 @@ export class SmartformLayoutDefinitionService {
102
105
  showLabel: layoutDefinition.showLabel,
103
106
  isMultiple: layoutDefinition.matrix?.multiSelect,
104
107
  value: layoutDefinition.matrix,
108
+ serverErrorMessage: layoutDefinition.errorMessage,
109
+ serverErrorIcon: layoutDefinition.errorIcon,
110
+ serverErrorColor: layoutDefinition.errorColor,
105
111
  };
106
112
  return widget;
107
113
  }
@@ -112,6 +118,9 @@ export class SmartformLayoutDefinitionService {
112
118
  label: layoutDefinition.label,
113
119
  showLabel: layoutDefinition.showLabel,
114
120
  type: SmartFormWidgetType.SORTABLE,
121
+ serverErrorMessage: layoutDefinition.errorMessage,
122
+ serverErrorIcon: layoutDefinition.errorIcon,
123
+ serverErrorColor: layoutDefinition.errorColor,
115
124
  };
116
125
  return widget;
117
126
  }
@@ -168,6 +177,9 @@ export class SmartformLayoutDefinitionService {
168
177
  isPassword: layoutDefinition.isPassword,
169
178
  selection: layoutDefinition.selection,
170
179
  filterErrorMessage: layoutDefinition.filterErrorMessage,
180
+ serverErrorMessage: layoutDefinition.errorMessage,
181
+ serverErrorIcon: layoutDefinition.errorIcon,
182
+ serverErrorColor: layoutDefinition.errorColor,
171
183
  hint: layoutDefinition.hint,
172
184
  maxLength: layoutDefinition.maxLength,
173
185
  showCharacterLimitSuffix: layoutDefinition.showCharacterLimitSuffix,
@@ -189,6 +201,9 @@ export class SmartformLayoutDefinitionService {
189
201
  style: layoutDefinition.style,
190
202
  labelStyle: layoutDefinition.labelStyle,
191
203
  valueList: [],
204
+ serverErrorMessage: layoutDefinition.errorMessage,
205
+ serverErrorIcon: layoutDefinition.errorIcon,
206
+ serverErrorColor: layoutDefinition.errorColor,
192
207
  };
193
208
  if (layoutDefinition.values) {
194
209
  widget.valueList = layoutDefinition.values.map((value) => {
@@ -202,6 +217,25 @@ export class SmartformLayoutDefinitionService {
202
217
  }
203
218
  return widget;
204
219
  }
220
+ createTextFieldLookup(layoutDefinition) {
221
+ let widget = {
222
+ type: SmartFormWidgetType.TEXT_FIELD_LOOKUP,
223
+ key: layoutDefinition.key,
224
+ valueChangeMode: layoutDefinition.valueChangeMode,
225
+ label: layoutDefinition.label,
226
+ placeholder: layoutDefinition.placeholder,
227
+ showLabel: layoutDefinition.showLabel,
228
+ cssClass: layoutDefinition.cssClass,
229
+ cssLabelClass: layoutDefinition.cssLabelClass,
230
+ style: layoutDefinition.style,
231
+ labelStyle: layoutDefinition.labelStyle,
232
+ toolbarId: layoutDefinition.toolbarId,
233
+ serverErrorMessage: layoutDefinition.errorMessage,
234
+ serverErrorIcon: layoutDefinition.errorIcon,
235
+ serverErrorColor: layoutDefinition.errorColor,
236
+ };
237
+ return widget;
238
+ }
205
239
  createTextFieldNumber(layoutDefinition) {
206
240
  let widget = {
207
241
  type: SmartFormWidgetType.TEXT_FIELD_NUMBER,
@@ -219,6 +253,9 @@ export class SmartformLayoutDefinitionService {
219
253
  style: layoutDefinition.style,
220
254
  labelStyle: layoutDefinition.labelStyle,
221
255
  hint: layoutDefinition.hint,
256
+ serverErrorMessage: layoutDefinition.errorMessage,
257
+ serverErrorIcon: layoutDefinition.errorIcon,
258
+ serverErrorColor: layoutDefinition.errorColor,
222
259
  };
223
260
  return widget;
224
261
  }
@@ -237,6 +274,9 @@ export class SmartformLayoutDefinitionService {
237
274
  hint: layoutDefinition.hint,
238
275
  maxLength: layoutDefinition.maxLength,
239
276
  showCharacterLimitSuffix: layoutDefinition.showCharacterLimitSuffix,
277
+ serverErrorMessage: layoutDefinition.errorMessage,
278
+ serverErrorIcon: layoutDefinition.errorIcon,
279
+ serverErrorColor: layoutDefinition.errorColor,
240
280
  };
241
281
  return widget;
242
282
  }
@@ -262,6 +302,9 @@ export class SmartformLayoutDefinitionService {
262
302
  quillModules,
263
303
  maxLength: layoutDefinition.maxLength,
264
304
  showCharacterLimitSuffix: layoutDefinition.showCharacterLimitSuffix,
305
+ serverErrorMessage: layoutDefinition.errorMessage,
306
+ serverErrorIcon: layoutDefinition.errorIcon,
307
+ serverErrorColor: layoutDefinition.errorColor,
265
308
  };
266
309
  return widget;
267
310
  }
@@ -277,6 +320,9 @@ export class SmartformLayoutDefinitionService {
277
320
  style: layoutDefinition.style,
278
321
  labelStyle: layoutDefinition.labelStyle,
279
322
  hint: layoutDefinition.hint,
323
+ serverErrorMessage: layoutDefinition.errorMessage,
324
+ serverErrorIcon: layoutDefinition.errorIcon,
325
+ serverErrorColor: layoutDefinition.errorColor,
280
326
  };
281
327
  return widget;
282
328
  }
@@ -294,6 +340,9 @@ export class SmartformLayoutDefinitionService {
294
340
  valueList: [],
295
341
  selection: layoutDefinition.selection,
296
342
  hint: layoutDefinition.hint,
343
+ serverErrorMessage: layoutDefinition.errorMessage,
344
+ serverErrorIcon: layoutDefinition.errorIcon,
345
+ serverErrorColor: layoutDefinition.errorColor,
297
346
  };
298
347
  if (layoutDefinition.values) {
299
348
  widget.valueList = layoutDefinition.values.map((value) => {
@@ -321,6 +370,9 @@ export class SmartformLayoutDefinitionService {
321
370
  valueList: [],
322
371
  selection: layoutDefinition.selection,
323
372
  hint: layoutDefinition.hint,
373
+ serverErrorMessage: layoutDefinition.errorMessage,
374
+ serverErrorIcon: layoutDefinition.errorIcon,
375
+ serverErrorColor: layoutDefinition.errorColor,
324
376
  };
325
377
  if (layoutDefinition.values) {
326
378
  widget.valueList = layoutDefinition.values.map((value) => {
@@ -348,6 +400,9 @@ export class SmartformLayoutDefinitionService {
348
400
  valueList: [],
349
401
  selection: layoutDefinition.selection,
350
402
  hint: layoutDefinition.hint,
403
+ serverErrorMessage: layoutDefinition.errorMessage,
404
+ serverErrorIcon: layoutDefinition.errorIcon,
405
+ serverErrorColor: layoutDefinition.errorColor,
351
406
  };
352
407
  if (layoutDefinition.values) {
353
408
  widget.valueList = layoutDefinition.values.map((value) => {
@@ -375,6 +430,9 @@ export class SmartformLayoutDefinitionService {
375
430
  valueList: [],
376
431
  selection: layoutDefinition.selection,
377
432
  hint: layoutDefinition.hint,
433
+ serverErrorMessage: layoutDefinition.errorMessage,
434
+ serverErrorIcon: layoutDefinition.errorIcon,
435
+ serverErrorColor: layoutDefinition.errorColor,
378
436
  };
379
437
  if (layoutDefinition.values) {
380
438
  widget.valueList = layoutDefinition.values.map((value) => {
@@ -400,6 +458,9 @@ export class SmartformLayoutDefinitionService {
400
458
  style: layoutDefinition.style,
401
459
  labelStyle: layoutDefinition.labelStyle,
402
460
  hint: layoutDefinition.hint,
461
+ serverErrorMessage: layoutDefinition.errorMessage,
462
+ serverErrorIcon: layoutDefinition.errorIcon,
463
+ serverErrorColor: layoutDefinition.errorColor,
403
464
  };
404
465
  return widget;
405
466
  }
@@ -415,6 +476,9 @@ export class SmartformLayoutDefinitionService {
415
476
  style: layoutDefinition.style,
416
477
  labelStyle: layoutDefinition.labelStyle,
417
478
  hint: layoutDefinition.hint,
479
+ serverErrorMessage: layoutDefinition.errorMessage,
480
+ serverErrorIcon: layoutDefinition.errorIcon,
481
+ serverErrorColor: layoutDefinition.errorColor,
418
482
  };
419
483
  return widget;
420
484
  }
@@ -540,4 +604,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
540
604
  providedIn: 'root',
541
605
  }]
542
606
  }], ctorParameters: () => [] });
543
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLmxheW91dC1kZWZpbml0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NlcnZpY2VzL3NtYXJ0Zm9ybS5sYXlvdXQtZGVmaW5pdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixFQUF5QixNQUFNLFFBQVEsQ0FBQzs7QUFrQjlGLE1BQU0sT0FBTyxnQ0FBZ0M7YUFDbkIsMEJBQXFCLEdBQWlCO1FBQzVELE9BQU8sRUFBRTtZQUNQLFNBQVMsRUFBRTtnQkFDVCxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUM7Z0JBQ2pELENBQUMsWUFBWSxDQUFDO2dCQUNkLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzlCLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQ3pDLENBQUMsT0FBTyxDQUFDO2FBQ1Y7U0FDRjtLQUNGLEFBVjRDLENBVTNDO0lBQ0YsZ0JBQWUsQ0FBQztJQUVULE1BQU0sQ0FBQyxNQUF5QztRQUNyRCxJQUFJLE9BQU8sR0FBMkIsRUFBRSxDQUFDO1FBRXpDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxnQkFBdUMsRUFBRSxFQUFFO1lBQzVFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7Z0JBQzdCLEdBQUcsTUFBTTtnQkFDVCxnQkFBZ0I7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxNQUFN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QUFDLEVBQUUsQ0FBQztZQUN4QixVQUFVLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBcUIsQ0FBQztRQUN2RCxDQUFDO1FBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLGdCQUF1QyxFQUFFLElBQVk7UUFDOUUsT0FBTyxDQUFDLEtBQUssQ0FDWCxhQUFhLElBQUkscUNBQXFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUN6RixDQUFDO0lBQ0osQ0FBQzsrR0FuakJVLGdDQUFnQzttSEFBaEMsZ0NBQWdDLGNBRi9CLE1BQU07OzRGQUVQLGdDQUFnQztrQkFINUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbiwgU21hcnRGb3JtV2lkZ2V0VHlwZSwgU21hcnRXaWRnZXREZWZpbml0aW9uIH0gZnJvbSAnLi4vYXBpJztcclxuaW1wb3J0IHsgU21hcnRGaWxlVXBsb2FkZXIsIFNtYXJ0Rm9ybVdpZGdldCB9IGZyb20gJy4uL3NtYXJ0Zm9ybS5mb3JtLW1vZGVsJztcclxuaW1wb3J0IHsgVmFsdWUgfSBmcm9tICcuLi9zbWFydGZvcm0ubW9kZWwnO1xyXG5pbXBvcnQgeyBRdWlsbE1vZHVsZXMgfSBmcm9tICduZ3gtcXVpbGwnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydGZvcm1MYXlvdXRDcmVhdGVXaWRnZXRDb25maWcge1xyXG4gIGxheW91dERlZmluaXRpb25zPzogU21hcnRXaWRnZXREZWZpbml0aW9uW107XHJcbiAgbGF5b3V0RGVmaW5pdGlvbj86IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbjtcclxuICB1cGxvYWRDYWxsYmFjaz86IChrZXk6IHN0cmluZywgZmlsZXM6IGFueVtdKSA9PiB2b2lkO1xyXG4gIGJ1dHRvbkNhbGxiYWNrPzogKCh1aUFjdGlvbjogYW55KSA9PiB2b2lkKSB8ICgoa2V5OiBzdHJpbmcpID0+IHZvaWQpO1xyXG4gIHVpQWN0aW9ucz86IGFueVtdO1xyXG4gIHVpQWN0aW9uRGVzY3JpcHRvcnM/OiAodWlBY3Rpb246IGFueSkgPT4gYW55O1xyXG4gIG1vZGVsPzogYW55O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU21hcnRmb3JtTGF5b3V0RGVmaW5pdGlvblNlcnZpY2Uge1xyXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfUVVJTExfTU9EVUxFUzogUXVpbGxNb2R1bGVzID0ge1xyXG4gICAgdG9vbGJhcjoge1xyXG4gICAgICBjb250YWluZXI6IFtcclxuICAgICAgICBbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZScsICdzdHJpa2UnLCAnbGluayddLFxyXG4gICAgICAgIFsnY29kZS1ibG9jayddLFxyXG4gICAgICAgIFt7IGhlYWRlcjogMSB9LCB7IGhlYWRlcjogMiB9XSxcclxuICAgICAgICBbeyBsaXN0OiAnb3JkZXJlZCcgfSwgeyBsaXN0OiAnYnVsbGV0JyB9XSxcclxuICAgICAgICBbJ2NsZWFuJ10sXHJcbiAgICAgIF0sXHJcbiAgICB9LFxyXG4gIH07XHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBwdWJsaWMgcmVuZGVyKGNvbmZpZzogU21hcnRmb3JtTGF5b3V0Q3JlYXRlV2lkZ2V0Q29uZmlnKTogU21hcnRGb3JtV2lkZ2V0PGFueT5bXSB7XHJcbiAgICBsZXQgd2lkZ2V0czogU21hcnRGb3JtV2lkZ2V0PGFueT5bXSA9IFtdO1xyXG5cclxuICAgIGNvbmZpZy5sYXlvdXREZWZpbml0aW9ucz8uZm9yRWFjaCgobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKSA9PiB7XHJcbiAgICAgIGxldCB3aWRnZXQgPSB0aGlzLmNyZWF0ZVdpZGdldCh7XHJcbiAgICAgICAgLi4uY29uZmlnLFxyXG4gICAgICAgIGxheW91dERlZmluaXRpb24sXHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAod2lkZ2V0KSB7XHJcbiAgICAgICAgd2lkZ2V0cy5wdXNoKHdpZGdldCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB3aWRnZXRzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVXaWRnZXQoXHJcbiAgICBjb25maWc6IFNtYXJ0Zm9ybUxheW91dENyZWF0ZVdpZGdldENvbmZpZ1xyXG4gICk6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHwgdW5kZWZpbmVkIHtcclxuICAgIHN3aXRjaCAoY29uZmlnLmxheW91dERlZmluaXRpb24/LnR5cGUpIHtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLkNPTlRBSU5FUjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVDb250YWluZXIoY29uZmlnLCBjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5MQUJFTDpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVMYWJlbChjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRleHRGaWVsZChjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEX0NISVBTOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRleHRGaWVsZENoaXBzKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTERfTlVNQkVSOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRleHRGaWVsZE51bWJlcihjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRleHRGaWVsZChjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0JPWDpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVUZXh0Qm94KGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlRPR0dMRTpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVUb2dnbGUoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuUkFESU9fQlVUVE9OOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVJhZGlvQnV0dG9uKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLkNIRUNLX0JPWDpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVDaGVja0JveChjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5TRUxFQ1Q6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlU2VsZWN0KGNvbmZpZy5sYXlvdXREZWZpbml0aW9uLCBjb25maWcubW9kZWwpO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNUX01VTFRJUExFOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNlbGVjdE11bHRpcGxlKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLkRBVEVfUElDS0VSOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGVQaWNrZXIoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuREFURV9USU1FX1BJQ0tFUjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEYXRlVGltZVBpY2tlcihjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5JTUFHRTpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVJbWFnZShjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5TVkc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlU3ZnKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLkJVVFRPTjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVCdXR0b24oY29uZmlnKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLkRJVklERVI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGl2aWRlcihjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5SSUNIX1RFWFQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlUmljaFRleHQoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuRklMRV9VUExPQURFUjpcclxuICAgICAgICBpZiAoIShjb25maWcubGF5b3V0RGVmaW5pdGlvbiBhcyBTbWFydEZpbGVVcGxvYWRlcikudXBsb2FkQ2FsbGJhY2spIHtcclxuICAgICAgICAgIHRocm93IEVycm9yKCdObyB1cGxvYWQgZnVuY3Rpb24gaW5qZWN0ZWQuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUZpbGVVcGxvYWRlcihjb25maWcubGF5b3V0RGVmaW5pdGlvbiBhcyBTbWFydEZpbGVVcGxvYWRlcik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5NQVRSSVg6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlTWF0cml4KGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlNPUlRBQkxFOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNvcnRhYmxlKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLk1PTlRIX1BJQ0tFUjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVNb250aFBpY2tlcihjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5ZT1VUVUJFX1BMQVlFUjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVZb3V0dWJlUGxheWVyKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlTW9udGhQaWNrZXIobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTU9OVEhfUElDS0VSLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVNYXRyaXgobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTUFUUklYLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgaXNNdWx0aXBsZTogbGF5b3V0RGVmaW5pdGlvbi5tYXRyaXg/Lm11bHRpU2VsZWN0LFxyXG4gICAgICB2YWx1ZTogbGF5b3V0RGVmaW5pdGlvbi5tYXRyaXgsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlU29ydGFibGUobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKSB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU09SVEFCTEUsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlTGFiZWwobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTEFCRUwsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICB3aWRnZXREZXNjcmlwdGlvbjogbGF5b3V0RGVmaW5pdGlvbi53aWRnZXREZXNjcmlwdGlvbixcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUNvbnRhaW5lcihcclxuICAgIGNvbmZpZzogU21hcnRmb3JtTGF5b3V0Q3JlYXRlV2lkZ2V0Q29uZmlnLFxyXG4gICAgbGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uXHJcbiAgKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHZhbHVlTGlzdDogU21hcnRGb3JtV2lkZ2V0PGFueT5bXSA9IFtdO1xyXG5cclxuICAgIGxheW91dERlZmluaXRpb24uY2hpbGRyZW5Db21wb25lbnRzPy5mb3JFYWNoKChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pID0+IHtcclxuICAgICAgbGV0IHdpZGdldCA9IHRoaXMuY3JlYXRlV2lkZ2V0KHtcclxuICAgICAgICAuLi5jb25maWcsXHJcbiAgICAgICAgbGF5b3V0RGVmaW5pdGlvbixcclxuICAgICAgfSk7XHJcbiAgICAgIGlmICh3aWRnZXQpIHtcclxuICAgICAgICB2YWx1ZUxpc3QucHVzaCh3aWRnZXQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5DT05UQUlORVIsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgZGlyZWN0aW9uOiBsYXlvdXREZWZpbml0aW9uLmRpcmVjdGlvbiA/PyBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24uQ09MLFxyXG4gICAgICB2YWx1ZUxpc3QsXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVRleHRGaWVsZChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxELFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgcGxhY2Vob2xkZXI6IGxheW91dERlZmluaXRpb24ucGxhY2Vob2xkZXIsXHJcbiAgICAgIHByZWZpeDogbGF5b3V0RGVmaW5pdGlvbi5wcmVmaXgsXHJcbiAgICAgIHN1ZmZpeDogbGF5b3V0RGVmaW5pdGlvbi5zdWZmaXgsXHJcbiAgICAgIG1hc2s6IGxheW91dERlZmluaXRpb24ubWFzayxcclxuICAgICAgaWNvbjogbGF5b3V0RGVmaW5pdGlvbi5pY29uLFxyXG4gICAgICBpY29uQ29sb3I6IGxheW91dERlZmluaXRpb24uaWNvbkNvbG9yLFxyXG4gICAgICBpY29uUG9zaXRpb246IGxheW91dERlZmluaXRpb24uaWNvblBvc2l0aW9uLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICBpc1Bhc3N3b3JkOiBsYXlvdXREZWZpbml0aW9uLmlzUGFzc3dvcmQsXHJcbiAgICAgIHNlbGVjdGlvbjogbGF5b3V0RGVmaW5pdGlvbi5zZWxlY3Rpb24sXHJcbiAgICAgIGZpbHRlckVycm9yTWVzc2FnZTogbGF5b3V0RGVmaW5pdGlvbi5maWx0ZXJFcnJvck1lc3NhZ2UsXHJcbiAgICAgIGhpbnQ6IGxheW91dERlZmluaXRpb24uaGludCxcclxuICAgICAgbWF4TGVuZ3RoOiBsYXlvdXREZWZpbml0aW9uLm1heExlbmd0aCxcclxuICAgICAgc2hvd0NoYXJhY3RlckxpbWl0U3VmZml4OiBsYXlvdXREZWZpbml0aW9uLnNob3dDaGFyYWN0ZXJMaW1pdFN1ZmZpeCxcclxuICAgICAgdG9vbGJhcklkOiBsYXlvdXREZWZpbml0aW9uLnRvb2xiYXJJZCxcclxuICAgICAgaW5wdXRNb2RlOiBsYXlvdXREZWZpbml0aW9uLmlucHV0TW9kZSxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZVRleHRGaWVsZENoaXBzKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTERfQ0hJUFMsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBwbGFjZWhvbGRlcjogbGF5b3V0RGVmaW5pdGlvbi5wbGFjZWhvbGRlcixcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgICAgdmFsdWVMaXN0OiBbXSxcclxuICAgIH07XHJcbiAgICBpZiAobGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMpIHtcclxuICAgICAgd2lkZ2V0LnZhbHVlTGlzdCA9IGxheW91dERlZmluaXRpb24udmFsdWVzLm1hcCgodmFsdWU6IFZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGtleTogdmFsdWUuY29kZSEsXHJcbiAgICAgICAgICBsYWJlbDogdmFsdWUuZGlzcGxheVZhbHVlLFxyXG4gICAgICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNLFxyXG4gICAgICAgICAgdmFsdWU6IHZhbHVlLmNvZGUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZVRleHRGaWVsZE51bWJlcihsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEX05VTUJFUixcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBsYXlvdXREZWZpbml0aW9uLnBsYWNlaG9sZGVyLFxyXG4gICAgICBwcmVmaXg6IGxheW91dERlZmluaXRpb24ucHJlZml4LFxyXG4gICAgICBzdWZmaXg6IGxheW91dERlZmluaXRpb24uc3VmZml4LFxyXG4gICAgICBpY29uOiBsYXlvdXREZWZpbml0aW9uLmljb24sXHJcbiAgICAgIGljb25Db2xvcjogbGF5b3V0RGVmaW5pdGlvbi5pY29uQ29sb3IsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsU3R5bGUsXHJcbiAgICAgIGhpbnQ6IGxheW91dERlZmluaXRpb24uaGludCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZVRleHRCb3gobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9CT1gsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBwbGFjZWhvbGRlcjogbGF5b3V0RGVmaW5pdGlvbi5wbGFjZWhvbGRlcixcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgICBtYXhMZW5ndGg6IGxheW91dERlZmluaXRpb24ubWF4TGVuZ3RoLFxyXG4gICAgICBzaG93Q2hhcmFjdGVyTGltaXRTdWZmaXg6IGxheW91dERlZmluaXRpb24uc2hvd0NoYXJhY3RlckxpbWl0U3VmZml4LFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlUmljaFRleHQobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHF1aWxsTW9kdWxlczogUXVpbGxNb2R1bGVzO1xyXG4gICAgaWYgKGxheW91dERlZmluaXRpb24ucHJvcGVydGllcyAmJiBsYXlvdXREZWZpbml0aW9uLnByb3BlcnRpZXNbJ3F1aWxsTW9kdWxlcyddKSB7XHJcbiAgICAgIHF1aWxsTW9kdWxlcyA9IGxheW91dERlZmluaXRpb24ucHJvcGVydGllc1sncXVpbGxNb2R1bGVzJ10gYXMgUXVpbGxNb2R1bGVzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcXVpbGxNb2R1bGVzID0gU21hcnRmb3JtTGF5b3V0RGVmaW5pdGlvblNlcnZpY2UuREVGQVVMVF9RVUlMTF9NT0RVTEVTO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlJJQ0hfVEVYVCxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBsYXlvdXREZWZpbml0aW9uLnBsYWNlaG9sZGVyLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICBxdWlsbE1vZHVsZXMsXHJcbiAgICAgIG1heExlbmd0aDogbGF5b3V0RGVmaW5pdGlvbi5tYXhMZW5ndGgsXHJcbiAgICAgIHNob3dDaGFyYWN0ZXJMaW1pdFN1ZmZpeDogbGF5b3V0RGVmaW5pdGlvbi5zaG93Q2hhcmFjdGVyTGltaXRTdWZmaXgsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVUb2dnbGUobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVE9HR0xFLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlUmFkaW9CdXR0b24obGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuUkFESU9fQlVUVE9OLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgICAgdmFsdWVMaXN0OiBbXSxcclxuICAgICAgc2VsZWN0aW9uOiBsYXlvdXREZWZpbml0aW9uLnNlbGVjdGlvbixcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAobGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMpIHtcclxuICAgICAgd2lkZ2V0LnZhbHVlTGlzdCA9IGxheW91dERlZmluaXRpb24udmFsdWVzLm1hcCgodmFsdWU6IFZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGtleTogdmFsdWUuY29kZSEsXHJcbiAgICAgICAgICBsYWJlbDogdmFsdWUuZGlzcGxheVZhbHVlLFxyXG4gICAgICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNLFxyXG4gICAgICAgICAgdmFsdWU6IHZhbHVlLmNvZGUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZUNoZWNrQm94KGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkNIRUNLX0JPWF8yLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgICAgdmFsdWVMaXN0OiBbXSxcclxuICAgICAgc2VsZWN0aW9uOiBsYXlvdXREZWZpbml0aW9uLnNlbGVjdGlvbixcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgfTtcclxuICAgIGlmIChsYXlvdXREZWZpbml0aW9uLnZhbHVlcykge1xyXG4gICAgICB3aWRnZXQudmFsdWVMaXN0ID0gbGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMubWFwKCh2YWx1ZTogVmFsdWUpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAga2V5OiB2YWx1ZS5jb2RlISxcclxuICAgICAgICAgIGxhYmVsOiB2YWx1ZS5kaXNwbGF5VmFsdWUsXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICB2YWx1ZTogZmFsc2UsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZVNlbGVjdChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24sIG1vZGVsPzogYW55KTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNULFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgICAgdmFsdWVMaXN0OiBbXSxcclxuICAgICAgc2VsZWN0aW9uOiBsYXlvdXREZWZpbml0aW9uLnNlbGVjdGlvbixcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAobGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMpIHtcclxuICAgICAgd2lkZ2V0LnZhbHVlTGlzdCA9IGxheW91dERlZmluaXRpb24udmFsdWVzLm1hcCgodmFsdWU6IFZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGtleTogdmFsdWUuY29kZSEsXHJcbiAgICAgICAgICBsYWJlbDogdmFsdWUuZGlzcGxheVZhbHVlLFxyXG4gICAgICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNLFxyXG4gICAgICAgICAgdmFsdWU6IHZhbHVlLmNvZGUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZVNlbGVjdE11bHRpcGxlKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNFTEVDVF9NVUxUSVBMRSxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsU3R5bGUsXHJcbiAgICAgIHZhbHVlTGlzdDogW10sXHJcbiAgICAgIHNlbGVjdGlvbjogbGF5b3V0RGVmaW5pdGlvbi5zZWxlY3Rpb24sXHJcbiAgICAgIGhpbnQ6IGxheW91dERlZmluaXRpb24uaGludCxcclxuICAgIH07XHJcbiAgICBpZiAobGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMpIHtcclxuICAgICAgd2lkZ2V0LnZhbHVlTGlzdCA9IGxheW91dERlZmluaXRpb24udmFsdWVzLm1hcCgodmFsdWU6IFZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGtleTogdmFsdWUuY29kZSEsXHJcbiAgICAgICAgICBsYWJlbDogdmFsdWUuZGlzcGxheVZhbHVlLFxyXG4gICAgICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNLFxyXG4gICAgICAgICAgdmFsdWU6IHZhbHVlLmNvZGUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZURhdGVQaWNrZXIobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuREFURV9QSUNLRVIsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVEYXRlVGltZVBpY2tlcihsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5EQVRFX1RJTUVfUElDS0VSLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlSW1hZ2UobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSU1BR0UsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlU3ZnKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNWRyxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsU3R5bGUsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQnV0dG9uKGNvbmZpZzogU21hcnRmb3JtTGF5b3V0Q3JlYXRlV2lkZ2V0Q29uZmlnKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHVpQWN0aW9uOiBhbnkgPSBjb25maWcudWlBY3Rpb25zPy5maW5kKFxyXG4gICAgICAodWlBY3Rpb246IGFueSkgPT4gdWlBY3Rpb24uY29kZSA9PT0gY29uZmlnLmxheW91dERlZmluaXRpb24/LmtleVxyXG4gICAgKTtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkJVVFRPTixcclxuICAgICAga2V5OiBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8ua2V5ISxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogY29uZmlnLmxheW91dERlZmluaXRpb24/LmxhYmVsISxcclxuICAgICAgc2hvd0xhYmVsOiBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogY29uZmlnLmxheW91dERlZmluaXRpb24/LmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGNvbmZpZy5sYXlvdXREZWZpbml0aW9uPy5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogY29uZmlnLmxheW91dERlZmluaXRpb24/LmxhYmVsU3R5bGUsXHJcbiAgICAgIGNhbGxiYWNrOiBjb25maWcuYnV0dG9uQ2FsbGJhY2shLFxyXG4gICAgICB1aUFjdGlvbixcclxuICAgICAgdWlBY3Rpb25EZXNjcmlwdG9yOiBjb25maWcudWlBY3Rpb25EZXNjcmlwdG9ycyEodWlBY3Rpb24pLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlRGl2aWRlcihsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5ESVZJREVSLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZUZpbGVVcGxvYWRlcihsYXlvdXREZWZpbml0aW9uOiBTbWFydEZpbGVVcGxvYWRlcik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0RmlsZVVwbG9hZGVyID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkZJTEVfVVBMT0FERVIsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICB1cGxvYWRDYWxsYmFjazogbGF5b3V0RGVmaW5pdGlvbi51cGxvYWRDYWxsYmFjayxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZVlvdXR1YmVQbGF5ZXIobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgY29uc3QgeyBsaW5rLCBzdGFydFNlY29uZHMsIGVuZFNlY29uZHMgfSA9IHRoaXMuZXh0cmFjdFlvdXR1YmVQbGF5ZXJQcm9wcyhsYXlvdXREZWZpbml0aW9uKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuWU9VVFVCRV9QTEFZRVIsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsU3R5bGUsXHJcbiAgICAgIGxpbmssXHJcbiAgICAgIHN0YXJ0U2Vjb25kcyxcclxuICAgICAgZW5kU2Vjb25kcyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV4dHJhY3RZb3V0dWJlUGxheWVyUHJvcHMobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKToge1xyXG4gICAgbGluazogc3RyaW5nO1xyXG4gICAgc3RhcnRTZWNvbmRzOiBudW1iZXI7XHJcbiAgICBlbmRTZWNvbmRzPzogbnVtYmVyO1xyXG4gIH0ge1xyXG4gICAgY29uc3QgcHJvcHMgPSBsYXlvdXREZWZpbml0aW9uLnByb3BlcnRpZXM7XHJcbiAgICBpZiAoIXByb3BzKSB7XHJcbiAgICAgIHRoaXMubG9nTWlzc2luZ1Byb3BlcnR5KGxheW91dERlZmluaXRpb24sICdwcm9wZXJ0aWVzJyk7XHJcbiAgICAgIHJldHVybiB7IGxpbms6ICcnLCBzdGFydFNlY29uZHM6IDAgfTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBsaW5rID0gKHByb3BzWydsaW5rJ10gPyAocHJvcHNbJ2xpbmsnXSBhcyBTdHJpbmcpIDogJycpIGFzIHN0cmluZztcclxuICAgIGlmICghbGluayB8fCBsaW5rLmxlbmd0aCA8IDEpIHtcclxuICAgICAgdGhpcy5sb2dNaXNzaW5nUHJvcGVydHkobGF5b3V0RGVmaW5pdGlvbiwgJ2xpbmsnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzdGFydFNlY29uZHMgPSAocHJvcHNbJ3N0YXJ0U2Vjb25kcyddID8gKHByb3BzWydzdGFydFNlY29uZHMnXSBhcyBOdW1iZXIpIDogMCkgYXMgbnVtYmVyO1xyXG4gICAgbGV0IGVuZFNlY29uZHM6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxuICAgIGlmIChwcm9wc1snZW5kU2Vjb25kcyddKSB7XHJcbiAgICAgIGVuZFNlY29uZHMgPSBwcm9wc1snZW5kU2Vjb25kcyddIGFzIE51bWJlciBhcyBudW1iZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHsgbGluaywgc3RhcnRTZWNvbmRzLCBlbmRTZWNvbmRzIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvZ01pc3NpbmdQcm9wZXJ0eShsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24sIHByb3A6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc29sZS5lcnJvcihcclxuICAgICAgYFByb3BlcnR5IDwke3Byb3B9PiBtaXNzaW5nIGZyb20gbGF5b3V0IGRlZmluaXRpb246ICR7SlNPTi5zdHJpbmdpZnkobGF5b3V0RGVmaW5pdGlvbil9YFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
607
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLmxheW91dC1kZWZpbml0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NlcnZpY2VzL3NtYXJ0Zm9ybS5sYXlvdXQtZGVmaW5pdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLG1CQUFtQixFQUF5QixNQUFNLFFBQVEsQ0FBQzs7QUFrQjlGLE1BQU0sT0FBTyxnQ0FBZ0M7YUFDbkIsMEJBQXFCLEdBQWlCO1FBQzVELE9BQU8sRUFBRTtZQUNQLFNBQVMsRUFBRTtnQkFDVCxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUM7Z0JBQ2pELENBQUMsWUFBWSxDQUFDO2dCQUNkLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzlCLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQ3pDLENBQUMsT0FBTyxDQUFDO2FBQ1Y7U0FDRjtLQUNGLEFBVjRDLENBVTNDO0lBQ0YsZ0JBQWUsQ0FBQztJQUVULE1BQU0sQ0FBQyxNQUF5QztRQUNyRCxJQUFJLE9BQU8sR0FBMkIsRUFBRSxDQUFDO1FBRXpDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxnQkFBdUMsRUFBRSxFQUFFO1lBQzVFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7Z0JBQzdCLEdBQUcsTUFBTTtnQkFDVCxnQkFBZ0I7YUFDakIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxNQUFN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QUFXLENBQUM7UUFDeEUsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFFLEtBQUssQ0FBQyxjQUFjLENBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFXLENBQUM7UUFDL0YsSUFBSSxVQUFVLEdBQXVCLFNBQVMsQ0FBQztRQUMvQyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ3hCLFVBQVUsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFxQixDQUFDO1FBQ3ZELENBQUM7UUFFRCxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsZ0JBQXVDLEVBQUUsSUFBWTtRQUM5RSxPQUFPLENBQUMsS0FBSyxDQUNYLGFBQWEsSUFBSSxxQ0FBcUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQ3pGLENBQUM7SUFDSixDQUFDOytHQW5uQlUsZ0NBQWdDO21IQUFoQyxnQ0FBZ0MsY0FGL0IsTUFBTTs7NEZBRVAsZ0NBQWdDO2tCQUg1QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uLCBTbWFydEZvcm1XaWRnZXRUeXBlLCBTbWFydFdpZGdldERlZmluaXRpb24gfSBmcm9tICcuLi9hcGknO1xyXG5pbXBvcnQgeyBTbWFydEZpbGVVcGxvYWRlciwgU21hcnRGb3JtV2lkZ2V0IH0gZnJvbSAnLi4vc21hcnRmb3JtLmZvcm0tbW9kZWwnO1xyXG5pbXBvcnQgeyBWYWx1ZSB9IGZyb20gJy4uL3NtYXJ0Zm9ybS5tb2RlbCc7XHJcbmltcG9ydCB7IFF1aWxsTW9kdWxlcyB9IGZyb20gJ25neC1xdWlsbCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0Zm9ybUxheW91dENyZWF0ZVdpZGdldENvbmZpZyB7XHJcbiAgbGF5b3V0RGVmaW5pdGlvbnM/OiBTbWFydFdpZGdldERlZmluaXRpb25bXTtcclxuICBsYXlvdXREZWZpbml0aW9uPzogU21hcnRXaWRnZXREZWZpbml0aW9uO1xyXG4gIHVwbG9hZENhbGxiYWNrPzogKGtleTogc3RyaW5nLCBmaWxlczogYW55W10pID0+IHZvaWQ7XHJcbiAgYnV0dG9uQ2FsbGJhY2s/OiAoKHVpQWN0aW9uOiBhbnkpID0+IHZvaWQpIHwgKChrZXk6IHN0cmluZykgPT4gdm9pZCk7XHJcbiAgdWlBY3Rpb25zPzogYW55W107XHJcbiAgdWlBY3Rpb25EZXNjcmlwdG9ycz86ICh1aUFjdGlvbjogYW55KSA9PiBhbnk7XHJcbiAgbW9kZWw/OiBhbnk7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbWFydGZvcm1MYXlvdXREZWZpbml0aW9uU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9RVUlMTF9NT0RVTEVTOiBRdWlsbE1vZHVsZXMgPSB7XHJcbiAgICB0b29sYmFyOiB7XHJcbiAgICAgIGNvbnRhaW5lcjogW1xyXG4gICAgICAgIFsnYm9sZCcsICdpdGFsaWMnLCAndW5kZXJsaW5lJywgJ3N0cmlrZScsICdsaW5rJ10sXHJcbiAgICAgICAgWydjb2RlLWJsb2NrJ10sXHJcbiAgICAgICAgW3sgaGVhZGVyOiAxIH0sIHsgaGVhZGVyOiAyIH1dLFxyXG4gICAgICAgIFt7IGxpc3Q6ICdvcmRlcmVkJyB9LCB7IGxpc3Q6ICdidWxsZXQnIH1dLFxyXG4gICAgICAgIFsnY2xlYW4nXSxcclxuICAgICAgXSxcclxuICAgIH0sXHJcbiAgfTtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIHB1YmxpYyByZW5kZXIoY29uZmlnOiBTbWFydGZvcm1MYXlvdXRDcmVhdGVXaWRnZXRDb25maWcpOiBTbWFydEZvcm1XaWRnZXQ8YW55PltdIHtcclxuICAgIGxldCB3aWRnZXRzOiBTbWFydEZvcm1XaWRnZXQ8YW55PltdID0gW107XHJcblxyXG4gICAgY29uZmlnLmxheW91dERlZmluaXRpb25zPy5mb3JFYWNoKChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pID0+IHtcclxuICAgICAgbGV0IHdpZGdldCA9IHRoaXMuY3JlYXRlV2lkZ2V0KHtcclxuICAgICAgICAuLi5jb25maWcsXHJcbiAgICAgICAgbGF5b3V0RGVmaW5pdGlvbixcclxuICAgICAgfSk7XHJcbiAgICAgIGlmICh3aWRnZXQpIHtcclxuICAgICAgICB3aWRnZXRzLnB1c2god2lkZ2V0KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHdpZGdldHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVdpZGdldChcclxuICAgIGNvbmZpZzogU21hcnRmb3JtTGF5b3V0Q3JlYXRlV2lkZ2V0Q29uZmlnXHJcbiAgKTogU21hcnRGb3JtV2lkZ2V0PGFueT4gfCB1bmRlZmluZWQge1xyXG4gICAgc3dpdGNoIChjb25maWcubGF5b3V0RGVmaW5pdGlvbj8udHlwZSkge1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ09OVEFJTkVSOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNvbnRhaW5lcihjb25maWcsIGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLkxBQkVMOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUxhYmVsKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTEQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGV4dEZpZWxkKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTERfQ0hJUFM6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGV4dEZpZWxkQ2hpcHMoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRF9OVU1CRVI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlVGV4dEZpZWxkTnVtYmVyKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTERfTE9PS1VQOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVRleHRGaWVsZExvb2t1cChjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0JPWDpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVUZXh0Qm94KGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlRPR0dMRTpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVUb2dnbGUoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuUkFESU9fQlVUVE9OOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVJhZGlvQnV0dG9uKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLkNIRUNLX0JPWDpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVDaGVja0JveChjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5TRUxFQ1Q6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlU2VsZWN0KGNvbmZpZy5sYXlvdXREZWZpbml0aW9uLCBjb25maWcubW9kZWwpO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuU0VMRUNUX01VTFRJUExFOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNlbGVjdE11bHRpcGxlKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLkRBVEVfUElDS0VSOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURhdGVQaWNrZXIoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuREFURV9USU1FX1BJQ0tFUjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEYXRlVGltZVBpY2tlcihjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5JTUFHRTpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVJbWFnZShjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5TVkc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlU3ZnKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLkJVVFRPTjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVCdXR0b24oY29uZmlnKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLkRJVklERVI6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGl2aWRlcihjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5SSUNIX1RFWFQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlUmljaFRleHQoY29uZmlnLmxheW91dERlZmluaXRpb24pO1xyXG4gICAgICBjYXNlIFNtYXJ0Rm9ybVdpZGdldFR5cGUuRklMRV9VUExPQURFUjpcclxuICAgICAgICBpZiAoIShjb25maWcubGF5b3V0RGVmaW5pdGlvbiBhcyBTbWFydEZpbGVVcGxvYWRlcikudXBsb2FkQ2FsbGJhY2spIHtcclxuICAgICAgICAgIHRocm93IEVycm9yKCdObyB1cGxvYWQgZnVuY3Rpb24gaW5qZWN0ZWQuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUZpbGVVcGxvYWRlcihjb25maWcubGF5b3V0RGVmaW5pdGlvbiBhcyBTbWFydEZpbGVVcGxvYWRlcik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5NQVRSSVg6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlTWF0cml4KGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLlNPUlRBQkxFOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVNvcnRhYmxlKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgICAgY2FzZSBTbWFydEZvcm1XaWRnZXRUeXBlLk1PTlRIX1BJQ0tFUjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVNb250aFBpY2tlcihjb25maWcubGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICAgIGNhc2UgU21hcnRGb3JtV2lkZ2V0VHlwZS5ZT1VUVUJFX1BMQVlFUjpcclxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVZb3V0dWJlUGxheWVyKGNvbmZpZy5sYXlvdXREZWZpbml0aW9uKTtcclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlTW9udGhQaWNrZXIobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTU9OVEhfUElDS0VSLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgc2VydmVyRXJyb3JNZXNzYWdlOiBsYXlvdXREZWZpbml0aW9uLmVycm9yTWVzc2FnZSxcclxuICAgICAgc2VydmVyRXJyb3JJY29uOiBsYXlvdXREZWZpbml0aW9uLmVycm9ySWNvbixcclxuICAgICAgc2VydmVyRXJyb3JDb2xvcjogbGF5b3V0RGVmaW5pdGlvbi5lcnJvckNvbG9yLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZU1hdHJpeChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5NQVRSSVgsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBpc011bHRpcGxlOiBsYXlvdXREZWZpbml0aW9uLm1hdHJpeD8ubXVsdGlTZWxlY3QsXHJcbiAgICAgIHZhbHVlOiBsYXlvdXREZWZpbml0aW9uLm1hdHJpeCxcclxuICAgICAgc2VydmVyRXJyb3JNZXNzYWdlOiBsYXlvdXREZWZpbml0aW9uLmVycm9yTWVzc2FnZSxcclxuICAgICAgc2VydmVyRXJyb3JJY29uOiBsYXlvdXREZWZpbml0aW9uLmVycm9ySWNvbixcclxuICAgICAgc2VydmVyRXJyb3JDb2xvcjogbGF5b3V0RGVmaW5pdGlvbi5lcnJvckNvbG9yLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVNvcnRhYmxlKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbikge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNPUlRBQkxFLFxyXG4gICAgICBzZXJ2ZXJFcnJvck1lc3NhZ2U6IGxheW91dERlZmluaXRpb24uZXJyb3JNZXNzYWdlLFxyXG4gICAgICBzZXJ2ZXJFcnJvckljb246IGxheW91dERlZmluaXRpb24uZXJyb3JJY29uLFxyXG4gICAgICBzZXJ2ZXJFcnJvckNvbG9yOiBsYXlvdXREZWZpbml0aW9uLmVycm9yQ29sb3IsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlTGFiZWwobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTEFCRUwsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICB3aWRnZXREZXNjcmlwdGlvbjogbGF5b3V0RGVmaW5pdGlvbi53aWRnZXREZXNjcmlwdGlvbixcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUNvbnRhaW5lcihcclxuICAgIGNvbmZpZzogU21hcnRmb3JtTGF5b3V0Q3JlYXRlV2lkZ2V0Q29uZmlnLFxyXG4gICAgbGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uXHJcbiAgKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHZhbHVlTGlzdDogU21hcnRGb3JtV2lkZ2V0PGFueT5bXSA9IFtdO1xyXG5cclxuICAgIGxheW91dERlZmluaXRpb24uY2hpbGRyZW5Db21wb25lbnRzPy5mb3JFYWNoKChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pID0+IHtcclxuICAgICAgbGV0IHdpZGdldCA9IHRoaXMuY3JlYXRlV2lkZ2V0KHtcclxuICAgICAgICAuLi5jb25maWcsXHJcbiAgICAgICAgbGF5b3V0RGVmaW5pdGlvbixcclxuICAgICAgfSk7XHJcbiAgICAgIGlmICh3aWRnZXQpIHtcclxuICAgICAgICB2YWx1ZUxpc3QucHVzaCh3aWRnZXQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5DT05UQUlORVIsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgZGlyZWN0aW9uOiBsYXlvdXREZWZpbml0aW9uLmRpcmVjdGlvbiA/PyBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24uQ09MLFxyXG4gICAgICB2YWx1ZUxpc3QsXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVRleHRGaWVsZChsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxELFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgcGxhY2Vob2xkZXI6IGxheW91dERlZmluaXRpb24ucGxhY2Vob2xkZXIsXHJcbiAgICAgIHByZWZpeDogbGF5b3V0RGVmaW5pdGlvbi5wcmVmaXgsXHJcbiAgICAgIHN1ZmZpeDogbGF5b3V0RGVmaW5pdGlvbi5zdWZmaXgsXHJcbiAgICAgIG1hc2s6IGxheW91dERlZmluaXRpb24ubWFzayxcclxuICAgICAgaWNvbjogbGF5b3V0RGVmaW5pdGlvbi5pY29uLFxyXG4gICAgICBpY29uQ29sb3I6IGxheW91dERlZmluaXRpb24uaWNvbkNvbG9yLFxyXG4gICAgICBpY29uUG9zaXRpb246IGxheW91dERlZmluaXRpb24uaWNvblBvc2l0aW9uLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICBpc1Bhc3N3b3JkOiBsYXlvdXREZWZpbml0aW9uLmlzUGFzc3dvcmQsXHJcbiAgICAgIHNlbGVjdGlvbjogbGF5b3V0RGVmaW5pdGlvbi5zZWxlY3Rpb24sXHJcbiAgICAgIGZpbHRlckVycm9yTWVzc2FnZTogbGF5b3V0RGVmaW5pdGlvbi5maWx0ZXJFcnJvck1lc3NhZ2UsXHJcbiAgICAgIHNlcnZlckVycm9yTWVzc2FnZTogbGF5b3V0RGVmaW5pdGlvbi5lcnJvck1lc3NhZ2UsXHJcbiAgICAgIHNlcnZlckVycm9ySWNvbjogbGF5b3V0RGVmaW5pdGlvbi5lcnJvckljb24sXHJcbiAgICAgIHNlcnZlckVycm9yQ29sb3I6IGxheW91dERlZmluaXRpb24uZXJyb3JDb2xvcixcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgICBtYXhMZW5ndGg6IGxheW91dERlZmluaXRpb24ubWF4TGVuZ3RoLFxyXG4gICAgICBzaG93Q2hhcmFjdGVyTGltaXRTdWZmaXg6IGxheW91dERlZmluaXRpb24uc2hvd0NoYXJhY3RlckxpbWl0U3VmZml4LFxyXG4gICAgICB0b29sYmFySWQ6IGxheW91dERlZmluaXRpb24udG9vbGJhcklkLFxyXG4gICAgICBpbnB1dE1vZGU6IGxheW91dERlZmluaXRpb24uaW5wdXRNb2RlLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlVGV4dEZpZWxkQ2hpcHMobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRF9DSElQUyxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBsYXlvdXREZWZpbml0aW9uLnBsYWNlaG9sZGVyLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICB2YWx1ZUxpc3Q6IFtdLFxyXG4gICAgICBzZXJ2ZXJFcnJvck1lc3NhZ2U6IGxheW91dERlZmluaXRpb24uZXJyb3JNZXNzYWdlLFxyXG4gICAgICBzZXJ2ZXJFcnJvckljb246IGxheW91dERlZmluaXRpb24uZXJyb3JJY29uLFxyXG4gICAgICBzZXJ2ZXJFcnJvckNvbG9yOiBsYXlvdXREZWZpbml0aW9uLmVycm9yQ29sb3IsXHJcbiAgICB9O1xyXG4gICAgaWYgKGxheW91dERlZmluaXRpb24udmFsdWVzKSB7XHJcbiAgICAgIHdpZGdldC52YWx1ZUxpc3QgPSBsYXlvdXREZWZpbml0aW9uLnZhbHVlcy5tYXAoKHZhbHVlOiBWYWx1ZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBrZXk6IHZhbHVlLmNvZGUhLFxyXG4gICAgICAgICAgbGFiZWw6IHZhbHVlLmRpc3BsYXlWYWx1ZSxcclxuICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSVRFTSxcclxuICAgICAgICAgIHZhbHVlOiB2YWx1ZS5jb2RlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVUZXh0RmllbGRMb29rdXAobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVEVYVF9GSUVMRF9MT09LVVAsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBwbGFjZWhvbGRlcjogbGF5b3V0RGVmaW5pdGlvbi5wbGFjZWhvbGRlcixcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgICAgdG9vbGJhcklkOiBsYXlvdXREZWZpbml0aW9uLnRvb2xiYXJJZCxcclxuICAgICAgc2VydmVyRXJyb3JNZXNzYWdlOiBsYXlvdXREZWZpbml0aW9uLmVycm9yTWVzc2FnZSxcclxuICAgICAgc2VydmVyRXJyb3JJY29uOiBsYXlvdXREZWZpbml0aW9uLmVycm9ySWNvbixcclxuICAgICAgc2VydmVyRXJyb3JDb2xvcjogbGF5b3V0RGVmaW5pdGlvbi5lcnJvckNvbG9yLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlVGV4dEZpZWxkTnVtYmVyKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTERfTlVNQkVSLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgcGxhY2Vob2xkZXI6IGxheW91dERlZmluaXRpb24ucGxhY2Vob2xkZXIsXHJcbiAgICAgIHByZWZpeDogbGF5b3V0RGVmaW5pdGlvbi5wcmVmaXgsXHJcbiAgICAgIHN1ZmZpeDogbGF5b3V0RGVmaW5pdGlvbi5zdWZmaXgsXHJcbiAgICAgIGljb246IGxheW91dERlZmluaXRpb24uaWNvbixcclxuICAgICAgaWNvbkNvbG9yOiBsYXlvdXREZWZpbml0aW9uLmljb25Db2xvcixcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgICBzZXJ2ZXJFcnJvck1lc3NhZ2U6IGxheW91dERlZmluaXRpb24uZXJyb3JNZXNzYWdlLFxyXG4gICAgICBzZXJ2ZXJFcnJvckljb246IGxheW91dERlZmluaXRpb24uZXJyb3JJY29uLFxyXG4gICAgICBzZXJ2ZXJFcnJvckNvbG9yOiBsYXlvdXREZWZpbml0aW9uLmVycm9yQ29sb3IsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVUZXh0Qm94KGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfQk9YLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgcGxhY2Vob2xkZXI6IGxheW91dERlZmluaXRpb24ucGxhY2Vob2xkZXIsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsU3R5bGUsXHJcbiAgICAgIGhpbnQ6IGxheW91dERlZmluaXRpb24uaGludCxcclxuICAgICAgbWF4TGVuZ3RoOiBsYXlvdXREZWZpbml0aW9uLm1heExlbmd0aCxcclxuICAgICAgc2hvd0NoYXJhY3RlckxpbWl0U3VmZml4OiBsYXlvdXREZWZpbml0aW9uLnNob3dDaGFyYWN0ZXJMaW1pdFN1ZmZpeCxcclxuICAgICAgc2VydmVyRXJyb3JNZXNzYWdlOiBsYXlvdXREZWZpbml0aW9uLmVycm9yTWVzc2FnZSxcclxuICAgICAgc2VydmVyRXJyb3JJY29uOiBsYXlvdXREZWZpbml0aW9uLmVycm9ySWNvbixcclxuICAgICAgc2VydmVyRXJyb3JDb2xvcjogbGF5b3V0RGVmaW5pdGlvbi5lcnJvckNvbG9yLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlUmljaFRleHQobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHF1aWxsTW9kdWxlczogUXVpbGxNb2R1bGVzO1xyXG4gICAgaWYgKGxheW91dERlZmluaXRpb24ucHJvcGVydGllcyAmJiBsYXlvdXREZWZpbml0aW9uLnByb3BlcnRpZXNbJ3F1aWxsTW9kdWxlcyddKSB7XHJcbiAgICAgIHF1aWxsTW9kdWxlcyA9IGxheW91dERlZmluaXRpb24ucHJvcGVydGllc1sncXVpbGxNb2R1bGVzJ10gYXMgUXVpbGxNb2R1bGVzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcXVpbGxNb2R1bGVzID0gU21hcnRmb3JtTGF5b3V0RGVmaW5pdGlvblNlcnZpY2UuREVGQVVMVF9RVUlMTF9NT0RVTEVTO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlJJQ0hfVEVYVCxcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHBsYWNlaG9sZGVyOiBsYXlvdXREZWZpbml0aW9uLnBsYWNlaG9sZGVyLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICBxdWlsbE1vZHVsZXMsXHJcbiAgICAgIG1heExlbmd0aDogbGF5b3V0RGVmaW5pdGlvbi5tYXhMZW5ndGgsXHJcbiAgICAgIHNob3dDaGFyYWN0ZXJMaW1pdFN1ZmZpeDogbGF5b3V0RGVmaW5pdGlvbi5zaG93Q2hhcmFjdGVyTGltaXRTdWZmaXgsXHJcbiAgICAgIHNlcnZlckVycm9yTWVzc2FnZTogbGF5b3V0RGVmaW5pdGlvbi5lcnJvck1lc3NhZ2UsXHJcbiAgICAgIHNlcnZlckVycm9ySWNvbjogbGF5b3V0RGVmaW5pdGlvbi5lcnJvckljb24sXHJcbiAgICAgIHNlcnZlckVycm9yQ29sb3I6IGxheW91dERlZmluaXRpb24uZXJyb3JDb2xvcixcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZVRvZ2dsZShsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5UT0dHTEUsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICAgIHNlcnZlckVycm9yTWVzc2FnZTogbGF5b3V0RGVmaW5pdGlvbi5lcnJvck1lc3NhZ2UsXHJcbiAgICAgIHNlcnZlckVycm9ySWNvbjogbGF5b3V0RGVmaW5pdGlvbi5lcnJvckljb24sXHJcbiAgICAgIHNlcnZlckVycm9yQ29sb3I6IGxheW91dERlZmluaXRpb24uZXJyb3JDb2xvcixcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZVJhZGlvQnV0dG9uKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlJBRElPX0JVVFRPTixcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsU3R5bGUsXHJcbiAgICAgIHZhbHVlTGlzdDogW10sXHJcbiAgICAgIHNlbGVjdGlvbjogbGF5b3V0RGVmaW5pdGlvbi5zZWxlY3Rpb24sXHJcbiAgICAgIGhpbnQ6IGxheW91dERlZmluaXRpb24uaGludCxcclxuICAgICAgc2VydmVyRXJyb3JNZXNzYWdlOiBsYXlvdXREZWZpbml0aW9uLmVycm9yTWVzc2FnZSxcclxuICAgICAgc2VydmVyRXJyb3JJY29uOiBsYXlvdXREZWZpbml0aW9uLmVycm9ySWNvbixcclxuICAgICAgc2VydmVyRXJyb3JDb2xvcjogbGF5b3V0RGVmaW5pdGlvbi5lcnJvckNvbG9yLFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAobGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMpIHtcclxuICAgICAgd2lkZ2V0LnZhbHVlTGlzdCA9IGxheW91dERlZmluaXRpb24udmFsdWVzLm1hcCgodmFsdWU6IFZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGtleTogdmFsdWUuY29kZSEsXHJcbiAgICAgICAgICBsYWJlbDogdmFsdWUuZGlzcGxheVZhbHVlLFxyXG4gICAgICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNLFxyXG4gICAgICAgICAgdmFsdWU6IHZhbHVlLmNvZGUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZUNoZWNrQm94KGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkNIRUNLX0JPWF8yLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgICAgdmFsdWVMaXN0OiBbXSxcclxuICAgICAgc2VsZWN0aW9uOiBsYXlvdXREZWZpbml0aW9uLnNlbGVjdGlvbixcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgICBzZXJ2ZXJFcnJvck1lc3NhZ2U6IGxheW91dERlZmluaXRpb24uZXJyb3JNZXNzYWdlLFxyXG4gICAgICBzZXJ2ZXJFcnJvckljb246IGxheW91dERlZmluaXRpb24uZXJyb3JJY29uLFxyXG4gICAgICBzZXJ2ZXJFcnJvckNvbG9yOiBsYXlvdXREZWZpbml0aW9uLmVycm9yQ29sb3IsXHJcbiAgICB9O1xyXG4gICAgaWYgKGxheW91dERlZmluaXRpb24udmFsdWVzKSB7XHJcbiAgICAgIHdpZGdldC52YWx1ZUxpc3QgPSBsYXlvdXREZWZpbml0aW9uLnZhbHVlcy5tYXAoKHZhbHVlOiBWYWx1ZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBrZXk6IHZhbHVlLmNvZGUhLFxyXG4gICAgICAgICAgbGFiZWw6IHZhbHVlLmRpc3BsYXlWYWx1ZSxcclxuICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSVRFTSxcclxuICAgICAgICAgIHZhbHVlOiBmYWxzZSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgY3JlYXRlU2VsZWN0KGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbiwgbW9kZWw/OiBhbnkpOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TRUxFQ1QsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICB2YWx1ZUxpc3Q6IFtdLFxyXG4gICAgICBzZWxlY3Rpb246IGxheW91dERlZmluaXRpb24uc2VsZWN0aW9uLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICAgIHNlcnZlckVycm9yTWVzc2FnZTogbGF5b3V0RGVmaW5pdGlvbi5lcnJvck1lc3NhZ2UsXHJcbiAgICAgIHNlcnZlckVycm9ySWNvbjogbGF5b3V0RGVmaW5pdGlvbi5lcnJvckljb24sXHJcbiAgICAgIHNlcnZlckVycm9yQ29sb3I6IGxheW91dERlZmluaXRpb24uZXJyb3JDb2xvcixcclxuICAgIH07XHJcblxyXG4gICAgaWYgKGxheW91dERlZmluaXRpb24udmFsdWVzKSB7XHJcbiAgICAgIHdpZGdldC52YWx1ZUxpc3QgPSBsYXlvdXREZWZpbml0aW9uLnZhbHVlcy5tYXAoKHZhbHVlOiBWYWx1ZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBrZXk6IHZhbHVlLmNvZGUhLFxyXG4gICAgICAgICAgbGFiZWw6IHZhbHVlLmRpc3BsYXlWYWx1ZSxcclxuICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSVRFTSxcclxuICAgICAgICAgIHZhbHVlOiB2YWx1ZS5jb2RlLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVTZWxlY3RNdWx0aXBsZShsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TRUxFQ1RfTVVMVElQTEUsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICB2YWx1ZUxpc3Q6IFtdLFxyXG4gICAgICBzZWxlY3Rpb246IGxheW91dERlZmluaXRpb24uc2VsZWN0aW9uLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICAgIHNlcnZlckVycm9yTWVzc2FnZTogbGF5b3V0RGVmaW5pdGlvbi5lcnJvck1lc3NhZ2UsXHJcbiAgICAgIHNlcnZlckVycm9ySWNvbjogbGF5b3V0RGVmaW5pdGlvbi5lcnJvckljb24sXHJcbiAgICAgIHNlcnZlckVycm9yQ29sb3I6IGxheW91dERlZmluaXRpb24uZXJyb3JDb2xvcixcclxuICAgIH07XHJcbiAgICBpZiAobGF5b3V0RGVmaW5pdGlvbi52YWx1ZXMpIHtcclxuICAgICAgd2lkZ2V0LnZhbHVlTGlzdCA9IGxheW91dERlZmluaXRpb24udmFsdWVzLm1hcCgodmFsdWU6IFZhbHVlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGtleTogdmFsdWUuY29kZSEsXHJcbiAgICAgICAgICBsYWJlbDogdmFsdWUuZGlzcGxheVZhbHVlLFxyXG4gICAgICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNLFxyXG4gICAgICAgICAgdmFsdWU6IHZhbHVlLmNvZGUsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZURhdGVQaWNrZXIobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuREFURV9QSUNLRVIsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICAgIHNlcnZlckVycm9yTWVzc2FnZTogbGF5b3V0RGVmaW5pdGlvbi5lcnJvck1lc3NhZ2UsXHJcbiAgICAgIHNlcnZlckVycm9ySWNvbjogbGF5b3V0RGVmaW5pdGlvbi5lcnJvckljb24sXHJcbiAgICAgIHNlcnZlckVycm9yQ29sb3I6IGxheW91dERlZmluaXRpb24uZXJyb3JDb2xvcixcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZURhdGVUaW1lUGlja2VyKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkRBVEVfVElNRV9QSUNLRVIsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICBoaW50OiBsYXlvdXREZWZpbml0aW9uLmhpbnQsXHJcbiAgICAgIHNlcnZlckVycm9yTWVzc2FnZTogbGF5b3V0RGVmaW5pdGlvbi5lcnJvck1lc3NhZ2UsXHJcbiAgICAgIHNlcnZlckVycm9ySWNvbjogbGF5b3V0RGVmaW5pdGlvbi5lcnJvckljb24sXHJcbiAgICAgIHNlcnZlckVycm9yQ29sb3I6IGxheW91dERlZmluaXRpb24uZXJyb3JDb2xvcixcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZUltYWdlKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB3aWRnZXQ6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+ID0ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklNQUdFLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZVN2ZyhsYXlvdXREZWZpbml0aW9uOiBTbWFydFdpZGdldERlZmluaXRpb24pOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TVkcsXHJcbiAgICAgIGtleTogbGF5b3V0RGVmaW5pdGlvbi5rZXksXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogbGF5b3V0RGVmaW5pdGlvbi52YWx1ZUNoYW5nZU1vZGUsXHJcbiAgICAgIGxhYmVsOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgfTtcclxuICAgIHJldHVybiB3aWRnZXQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUJ1dHRvbihjb25maWc6IFNtYXJ0Zm9ybUxheW91dENyZWF0ZVdpZGdldENvbmZpZyk6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGxldCB1aUFjdGlvbjogYW55ID0gY29uZmlnLnVpQWN0aW9ucz8uZmluZChcclxuICAgICAgKHVpQWN0aW9uOiBhbnkpID0+IHVpQWN0aW9uLmNvZGUgPT09IGNvbmZpZy5sYXlvdXREZWZpbml0aW9uPy5rZXlcclxuICAgICk7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55PiA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5CVVRUT04sXHJcbiAgICAgIGtleTogY29uZmlnLmxheW91dERlZmluaXRpb24/LmtleSEsXHJcbiAgICAgIHZhbHVlQ2hhbmdlTW9kZTogY29uZmlnLmxheW91dERlZmluaXRpb24/LnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGNvbmZpZy5sYXlvdXREZWZpbml0aW9uPy5sYWJlbCEsXHJcbiAgICAgIHNob3dMYWJlbDogY29uZmlnLmxheW91dERlZmluaXRpb24/LnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGNvbmZpZy5sYXlvdXREZWZpbml0aW9uPy5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogY29uZmlnLmxheW91dERlZmluaXRpb24/LmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBjb25maWcubGF5b3V0RGVmaW5pdGlvbj8uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGNvbmZpZy5sYXlvdXREZWZpbml0aW9uPy5sYWJlbFN0eWxlLFxyXG4gICAgICBjYWxsYmFjazogY29uZmlnLmJ1dHRvbkNhbGxiYWNrISxcclxuICAgICAgdWlBY3Rpb24sXHJcbiAgICAgIHVpQWN0aW9uRGVzY3JpcHRvcjogY29uZmlnLnVpQWN0aW9uRGVzY3JpcHRvcnMhKHVpQWN0aW9uKSxcclxuICAgIH07XHJcbiAgICByZXR1cm4gd2lkZ2V0O1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZURpdmlkZXIobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uKTogU21hcnRGb3JtV2lkZ2V0PGFueT4ge1xyXG4gICAgbGV0IHdpZGdldDogU21hcnRGb3JtV2lkZ2V0PGFueT4gPSB7XHJcbiAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuRElWSURFUixcclxuICAgICAga2V5OiBsYXlvdXREZWZpbml0aW9uLmtleSxcclxuICAgICAgdmFsdWVDaGFuZ2VNb2RlOiBsYXlvdXREZWZpbml0aW9uLnZhbHVlQ2hhbmdlTW9kZSxcclxuICAgICAgbGFiZWw6IGxheW91dERlZmluaXRpb24ubGFiZWwsXHJcbiAgICAgIHNob3dMYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5zaG93TGFiZWwsXHJcbiAgICAgIGNzc0NsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0NsYXNzLFxyXG4gICAgICBjc3NMYWJlbENsYXNzOiBsYXlvdXREZWZpbml0aW9uLmNzc0xhYmVsQ2xhc3MsXHJcbiAgICAgIHN0eWxlOiBsYXlvdXREZWZpbml0aW9uLnN0eWxlLFxyXG4gICAgICBsYWJlbFN0eWxlOiBsYXlvdXREZWZpbml0aW9uLmxhYmVsU3R5bGUsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVGaWxlVXBsb2FkZXIobGF5b3V0RGVmaW5pdGlvbjogU21hcnRGaWxlVXBsb2FkZXIpOiBTbWFydEZvcm1XaWRnZXQ8YW55PiB7XHJcbiAgICBsZXQgd2lkZ2V0OiBTbWFydEZpbGVVcGxvYWRlciA9IHtcclxuICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5GSUxFX1VQTE9BREVSLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgc2hvd0xhYmVsOiBsYXlvdXREZWZpbml0aW9uLnNob3dMYWJlbCxcclxuICAgICAgY3NzQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzQ2xhc3MsXHJcbiAgICAgIGNzc0xhYmVsQ2xhc3M6IGxheW91dERlZmluaXRpb24uY3NzTGFiZWxDbGFzcyxcclxuICAgICAgc3R5bGU6IGxheW91dERlZmluaXRpb24uc3R5bGUsXHJcbiAgICAgIGxhYmVsU3R5bGU6IGxheW91dERlZmluaXRpb24ubGFiZWxTdHlsZSxcclxuICAgICAgdXBsb2FkQ2FsbGJhY2s6IGxheW91dERlZmluaXRpb24udXBsb2FkQ2FsbGJhY2ssXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHdpZGdldDtcclxuICB9XHJcbiAgcHJpdmF0ZSBjcmVhdGVZb3V0dWJlUGxheWVyKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IFNtYXJ0Rm9ybVdpZGdldDxhbnk+IHtcclxuICAgIGNvbnN0IHsgbGluaywgc3RhcnRTZWNvbmRzLCBlbmRTZWNvbmRzIH0gPSB0aGlzLmV4dHJhY3RZb3V0dWJlUGxheWVyUHJvcHMobGF5b3V0RGVmaW5pdGlvbik7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLllPVVRVQkVfUExBWUVSLFxyXG4gICAgICBrZXk6IGxheW91dERlZmluaXRpb24ua2V5LFxyXG4gICAgICBsYWJlbDogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbCxcclxuICAgICAgaGludDogbGF5b3V0RGVmaW5pdGlvbi5oaW50LFxyXG4gICAgICB2YWx1ZUNoYW5nZU1vZGU6IGxheW91dERlZmluaXRpb24udmFsdWVDaGFuZ2VNb2RlLFxyXG4gICAgICBzaG93TGFiZWw6IGxheW91dERlZmluaXRpb24uc2hvd0xhYmVsLFxyXG4gICAgICBjc3NDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NDbGFzcyxcclxuICAgICAgY3NzTGFiZWxDbGFzczogbGF5b3V0RGVmaW5pdGlvbi5jc3NMYWJlbENsYXNzLFxyXG4gICAgICBzdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5zdHlsZSxcclxuICAgICAgbGFiZWxTdHlsZTogbGF5b3V0RGVmaW5pdGlvbi5sYWJlbFN0eWxlLFxyXG4gICAgICBsaW5rLFxyXG4gICAgICBzdGFydFNlY29uZHMsXHJcbiAgICAgIGVuZFNlY29uZHMsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleHRyYWN0WW91dHViZVBsYXllclByb3BzKGxheW91dERlZmluaXRpb246IFNtYXJ0V2lkZ2V0RGVmaW5pdGlvbik6IHtcclxuICAgIGxpbms6IHN0cmluZztcclxuICAgIHN0YXJ0U2Vjb25kczogbnVtYmVyO1xyXG4gICAgZW5kU2Vjb25kcz86IG51bWJlcjtcclxuICB9IHtcclxuICAgIGNvbnN0IHByb3BzID0gbGF5b3V0RGVmaW5pdGlvbi5wcm9wZXJ0aWVzO1xyXG4gICAgaWYgKCFwcm9wcykge1xyXG4gICAgICB0aGlzLmxvZ01pc3NpbmdQcm9wZXJ0eShsYXlvdXREZWZpbml0aW9uLCAncHJvcGVydGllcycpO1xyXG4gICAgICByZXR1cm4geyBsaW5rOiAnJywgc3RhcnRTZWNvbmRzOiAwIH07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbGluayA9IChwcm9wc1snbGluayddID8gKHByb3BzWydsaW5rJ10gYXMgU3RyaW5nKSA6ICcnKSBhcyBzdHJpbmc7XHJcbiAgICBpZiAoIWxpbmsgfHwgbGluay5sZW5ndGggPCAxKSB7XHJcbiAgICAgIHRoaXMubG9nTWlzc2luZ1Byb3BlcnR5KGxheW91dERlZmluaXRpb24sICdsaW5rJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc3RhcnRTZWNvbmRzID0gKHByb3BzWydzdGFydFNlY29uZHMnXSA/IChwcm9wc1snc3RhcnRTZWNvbmRzJ10gYXMgTnVtYmVyKSA6IDApIGFzIG51bWJlcjtcclxuICAgIGxldCBlbmRTZWNvbmRzOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgICBpZiAocHJvcHNbJ2VuZFNlY29uZHMnXSkge1xyXG4gICAgICBlbmRTZWNvbmRzID0gcHJvcHNbJ2VuZFNlY29uZHMnXSBhcyBOdW1iZXIgYXMgbnVtYmVyO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7IGxpbmssIHN0YXJ0U2Vjb25kcywgZW5kU2Vjb25kcyB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2dNaXNzaW5nUHJvcGVydHkobGF5b3V0RGVmaW5pdGlvbjogU21hcnRXaWRnZXREZWZpbml0aW9uLCBwcm9wOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUuZXJyb3IoXHJcbiAgICAgIGBQcm9wZXJ0eSA8JHtwcm9wfT4gbWlzc2luZyBmcm9tIGxheW91dCBkZWZpbml0aW9uOiAke0pTT04uc3RyaW5naWZ5KGxheW91dERlZmluaXRpb24pfWBcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLmZvcm0tbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NtYXJ0Zm9ybS5mb3JtLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWlsbE1vZHVsZXMgfSBmcm9tICduZ3gtcXVpbGwnO1xyXG5pbXBvcnQge1xyXG4gIFNlbGVjdGlvbkRlZmluaXRpb24sXHJcbiAgU21hcnRGb3JtSW5wdXRNb2RlLFxyXG4gIFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbixcclxuICBTbWFydEZvcm1XaWRnZXRUeXBlLFxyXG4gIFNtYXJ0V2lkZ2V0SGludCxcclxuICBWYWx1ZUNoYW5nZU1vZGUsXHJcbn0gZnJvbSAnLi9hcGknO1xyXG5pbXBvcnQge1xyXG4gIFNtYXJ0Rm9ybVRleHRGaWVsZEJ1dHRvbixcclxuICBTbWFydEZvcm1XaWRnZXRXaWR0aCxcclxuICBTbWFydEluZGljYXRvcixcclxuICBTbWFydFZhbGlkYXRvcixcclxuICBUb2dnbGVMYWJlbFBvc2l0aW9uLFxyXG59IGZyb20gJy4vc21hcnRmb3JtLm1vZGVsJztcclxuaW1wb3J0IHsgU3R5bGUgfSBmcm9tICcuLi92aWV3LWNvbnRleHQvYXBpJztcclxuXHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgU21hcnRGb3JtV2lkZ2V0PFQ+ID1cclxuICB8IFNtYXJ0VGV4dEZpZWxkPFQ+XHJcbiAgfCBTbWFydFRleHRGaWVsZE51bWJlcjxUPlxyXG4gIHwgU21hcnRUZXh0RmllbGRDaGlwczxUPlxyXG4gIHwgU21hcnRUZXh0Qm94PFQ+XHJcbiAgfCBTbWFydFNlbGVjdDxUPlxyXG4gIHwgU21hcnRTZWxlY3RNdWx0aXBsZTxUPlxyXG4gIHwgU21hcnRDaGVja0JveDxUPlxyXG4gIHwgU21hcnRDaGVja0JveDI8VD5cclxuICB8IFNtYXJ0UmFkaW9CdXR0b248VD5cclxuICB8IFNtYXJ0RGF0ZVBpY2tlcjxUPlxyXG4gIHwgU21hcnREYXRlVGltZVBpY2tlcjxUPlxyXG4gIHwgU21hcnRDb250YWluZXI8VD5cclxuICB8IFNtYXJ0TGFiZWxcclxuICB8IFNtYXJ0VGltZTxUPlxyXG4gIHwgU21hcnRUb2dnbGU8VD5cclxuICB8IFNtYXJ0SW5kaWNhdG9ySXRlbVxyXG4gIHwgU21hcnRGaWxlVXBsb2FkZXJcclxuICB8IFNtYXJ0SW1hZ2VcclxuICB8IFNtYXJ0RGl2aWRlclxyXG4gIHwgU21hcnRCdXR0b25cclxuICB8IFNtYXJ0Rm9ybUlubGluZUNvbXBvbmVudFxyXG4gIHwgU21hcnRSaWNoVGV4dFxyXG4gIHwgU21hcnRTb3J0YWJsZTxUPlxyXG4gIHwgU21hcnRNYXRyaXhcclxuICB8IFNtYXJ0WW91dHViZVBsYXllclxyXG4gIHwgU21hcnRNb250aFBpY2tlclxyXG4gIHwgU21hcnRTdmc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGV4dEZpZWxkPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTEQ7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBvcmlnaW5hbFBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXIgfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgcHJlZml4Pzogc3RyaW5nO1xyXG4gIHN1ZmZpeD86IHN0cmluZztcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzUGFzc3dvcmQ/OiBib29sZWFuO1xyXG4gIHRleHRGaWVsZEJ1dHRvbj86IFNtYXJ0Rm9ybVRleHRGaWVsZEJ1dHRvbjtcclxuICBjYXBzTG9ja1dhcm5pbmc/OiBzdHJpbmc7XHJcbiAgY2Fwc0xvY2tXYXJuaW5nSWNvbj86IHN0cmluZztcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIG1hc2s/OiBzdHJpbmc7XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBpY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgaWNvblBvc2l0aW9uPzogJ1BSRScgfCAnUE9TVCc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbHVlTGlzdD86IFNtYXJ0SXRlbTxUPltdO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbkRlZmluaXRpb247XHJcbiAgZmlsdGVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gIHNob3dDaGFyYWN0ZXJMaW1pdFN1ZmZpeD86IGJvb2xlYW47XHJcbiAgdG9vbGJhcklkPzogc3RyaW5nO1xyXG4gIGlucHV0TW9kZT86IFNtYXJ0Rm9ybUlucHV0TW9kZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRleHRGaWVsZE51bWJlcjxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEX05VTUJFUjtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG9yaWdpbmFsUGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlciB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICBwcmVmaXg/OiBzdHJpbmc7XHJcbiAgc3VmZml4Pzogc3RyaW5nO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgdGV4dEZpZWxkQnV0dG9uPzogU21hcnRGb3JtVGV4dEZpZWxkQnV0dG9uO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgbWluVmFsdWVzPzogbnVtYmVyO1xyXG4gIG1heFZhbHVlcz86IG51bWJlcjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGljb25Db2xvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRleHRGaWVsZENoaXBzPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTERfQ0hJUFM7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBvcmlnaW5hbFBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXIgfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICB2YWx1ZUxpc3Q6IFNtYXJ0SXRlbTxUPltdO1xyXG4gIG1pblZhbHVlcz86IG51bWJlcjtcclxuICBtYXhWYWx1ZXM/OiBudW1iZXI7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGV4dEJveDxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0JPWDtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG9yaWdpbmFsUGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gIHNob3dDaGFyYWN0ZXJMaW1pdFN1ZmZpeD86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFNlbGVjdDxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TRUxFQ1Q7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIHZhbHVlPzogVDtcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsdWVMaXN0OiBTbWFydEl0ZW1zPFQ+W107XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uRGVmaW5pdGlvbjtcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG4gIGNvbXBhcmVXaXRoPzogKG8xOiBhbnksIG8yOiBhbnkpID0+IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFNlbGVjdE11bHRpcGxlPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNFTEVDVF9NVUxUSVBMRTtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICB2YWx1ZUxpc3Q6IFNtYXJ0SXRlbXM8VD5bXTtcclxuICBzZWxlY3Rpb24/OiBTZWxlY3Rpb25EZWZpbml0aW9uO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbiAgY29tcGFyZVdpdGg/OiAobzE6IGFueSwgbzI6IGFueSkgPT4gYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0Q2hlY2tCb3g8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ0hFQ0tfQk9YO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbHVlTGlzdDogU21hcnRJdGVtPFQ+W107XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uRGVmaW5pdGlvbjtcclxuICBkaXJlY3Rpb24/OiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb247XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0Q2hlY2tCb3gyPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkNIRUNLX0JPWF8yO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbHVlTGlzdDogU21hcnRJdGVtPFQ+W107XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uRGVmaW5pdGlvbjtcclxuICBkaXJlY3Rpb24/OiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb247XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0UmFkaW9CdXR0b248VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuUkFESU9fQlVUVE9OO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbHVlTGlzdDogU21hcnRJdGVtPFQ+W107XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uRGVmaW5pdGlvbjtcclxuICBkaXJlY3Rpb24/OiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb247XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0RGF0ZVBpY2tlcjxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5EQVRFX1BJQ0tFUjtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBkYXRlRm9ybWF0SGludD86IHN0cmluZztcclxuICBtaW5EYXRlPzogRGF0ZTtcclxuICBtYXhEYXRlPzogRGF0ZTtcclxuICBmaWx0ZXI/OiAoZDogRGF0ZSB8IG51bGwpID0+IGJvb2xlYW47XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0RGF0ZVRpbWVQaWNrZXI8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuREFURV9USU1FX1BJQ0tFUjtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBkYXRlRm9ybWF0SGludD86IHN0cmluZztcclxuICBmaWx0ZXI/OiAoZDogRGF0ZSB8IG51bGwpID0+IGJvb2xlYW47XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0Q29udGFpbmVyPFQ+IHtcclxuICBrZXk/OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuQ09OVEFJTkVSO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgdmFsdWVMaXN0OiBTbWFydEZvcm1XaWRnZXQ8VD5bXTtcclxuICBkaXJlY3Rpb24/OiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb247XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0TGFiZWwge1xyXG4gIGtleT86IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5MQUJFTDtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICB3aWRnZXREZXNjcmlwdGlvbj86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIG1hcmtBc1JlcXVpcmVkPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGltZTxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5USU1FO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRvZ2dsZTxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5UT0dHTEU7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdG9nZ2xlTGFiZWxQb3NpdGlvbj86IFRvZ2dsZUxhYmVsUG9zaXRpb247XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEluZGljYXRvckl0ZW0ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSU5ESUNBVE9SO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpbmRpY2F0b3I6IFNtYXJ0SW5kaWNhdG9yO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBTbWFydEl0ZW1zPFQ+ID0gU21hcnRJdGVtPFQ+IHwgU21hcnRJdGVtR3JvdXA8VD47XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0SXRlbTxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICB2YWx1ZT86IFQ7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBpY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgaW1hZ2VVcmw/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEl0ZW1Hcm91cDxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNX0dST1VQO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICB2YWx1ZUxpc3Q6IFNtYXJ0SXRlbTxUPltdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0RmlsZVVwbG9hZGVyIHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkZJTEVfVVBMT0FERVI7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICB1cGxvYWRDYWxsYmFjazogKGtleTogc3RyaW5nLCBmaWxlczogYW55W10pID0+IHZvaWQ7XHJcbiAgZmlsZUZvcm1hdHM/OiBzdHJpbmdbXTtcclxuICBtYXhTaXplTWI/OiBudW1iZXI7XHJcbiAgaTE4bj86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEltYWdlIHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklNQUdFO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgaW1hZ2VDc3M/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnREaXZpZGVyIHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkRJVklERVI7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICB2YWx1ZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEJ1dHRvbiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5CVVRUT047XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICB2YWx1ZT86IHN0cmluZztcclxuICB1aUFjdGlvbj86IGFueTtcclxuICB1aUFjdGlvbkRlc2NyaXB0b3I6IGFueTtcclxuICBjYWxsYmFjazogKCh1aUFjdGlvbjogYW55KSA9PiB2b2lkKSB8ICgoa2V5OiBzdHJpbmcpID0+IHZvaWQpO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRGb3JtSW5saW5lQ29tcG9uZW50IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkNPTVBPTkVOVDtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGNvbXBvbmVudDogYW55O1xyXG4gIGlucHV0OiBNYXA8c3RyaW5nLCBhbnk+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0UmljaFRleHQge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuUklDSF9URVhUO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBxdWlsbE1vZHVsZXM6IFF1aWxsTW9kdWxlcztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICBtYXhMZW5ndGg/OiBudW1iZXI7XHJcbiAgc2hvd0NoYXJhY3RlckxpbWl0U3VmZml4PzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFNvcnRhYmxlPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNPUlRBQkxFO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIHZhbHVlTGlzdD86IFNtYXJ0SXRlbTxUPltdO1xyXG4gIGlzTXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRNYXRyaXgge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTUFUUklYO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHZhbHVlPzogYW55O1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGlzTXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbiAgYnV0dG9uPzogU21hcnRNYXRyaXhCdXR0b247XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRNYXRyaXhCdXR0b24ge1xyXG4gIGljb25Db2RlPzogc3RyaW5nO1xyXG4gIGNhbGxiYWNrOiAod2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55Piwgcm93OiBhbnkpID0+IGFueTtcclxuICBjb2xvcj86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFlvdXR1YmVQbGF5ZXIge1xyXG4gIGtleT86IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5ZT1VUVUJFX1BMQVlFUjtcclxuICBsaW5rPzogc3RyaW5nO1xyXG4gIHZpZGVvSWQ/OiBzdHJpbmc7XHJcbiAgaGVpZ2h0PzogbnVtYmVyO1xyXG4gIHdpZHRoPzogbnVtYmVyO1xyXG4gIHN0YXJ0U2Vjb25kcz86IG51bWJlciB8IDA7XHJcbiAgZW5kU2Vjb25kcz86IG51bWJlcjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0TW9udGhQaWNrZXIge1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLk1PTlRIX1BJQ0tFUjtcclxuICB2YWx1ZT86IHN0cmluZztcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFN2ZyB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TVkc7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICB2YWx1ZT86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmb3JtLmZvcm0tbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1mb3JtL3NtYXJ0Zm9ybS5mb3JtLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWlsbE1vZHVsZXMgfSBmcm9tICduZ3gtcXVpbGwnO1xyXG5pbXBvcnQge1xyXG4gIFNlbGVjdGlvbkRlZmluaXRpb24sXHJcbiAgU21hcnRGb3JtSW5wdXRNb2RlLFxyXG4gIFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbixcclxuICBTbWFydEZvcm1XaWRnZXRUeXBlLFxyXG4gIFNtYXJ0V2lkZ2V0SGludCxcclxuICBWYWx1ZUNoYW5nZU1vZGUsXHJcbn0gZnJvbSAnLi9hcGknO1xyXG5pbXBvcnQge1xyXG4gIFNtYXJ0Rm9ybVRleHRGaWVsZEJ1dHRvbixcclxuICBTbWFydEZvcm1XaWRnZXRXaWR0aCxcclxuICBTbWFydEluZGljYXRvcixcclxuICBTbWFydFZhbGlkYXRvcixcclxuICBUb2dnbGVMYWJlbFBvc2l0aW9uLFxyXG59IGZyb20gJy4vc21hcnRmb3JtLm1vZGVsJztcclxuaW1wb3J0IHsgU3R5bGUgfSBmcm9tICcuLi92aWV3LWNvbnRleHQvYXBpJztcclxuXHJcbmV4cG9ydCBkZWNsYXJlIHR5cGUgU21hcnRGb3JtV2lkZ2V0PFQ+ID1cclxuICB8IFNtYXJ0VGV4dEZpZWxkPFQ+XHJcbiAgfCBTbWFydFRleHRGaWVsZE51bWJlcjxUPlxyXG4gIHwgU21hcnRUZXh0RmllbGRDaGlwczxUPlxyXG4gIHwgU21hcnRUZXh0RmllbGRMb29rdXA8VD5cclxuICB8IFNtYXJ0VGV4dEJveDxUPlxyXG4gIHwgU21hcnRTZWxlY3Q8VD5cclxuICB8IFNtYXJ0U2VsZWN0TXVsdGlwbGU8VD5cclxuICB8IFNtYXJ0Q2hlY2tCb3g8VD5cclxuICB8IFNtYXJ0Q2hlY2tCb3gyPFQ+XHJcbiAgfCBTbWFydFJhZGlvQnV0dG9uPFQ+XHJcbiAgfCBTbWFydERhdGVQaWNrZXI8VD5cclxuICB8IFNtYXJ0RGF0ZVRpbWVQaWNrZXI8VD5cclxuICB8IFNtYXJ0Q29udGFpbmVyPFQ+XHJcbiAgfCBTbWFydExhYmVsXHJcbiAgfCBTbWFydFRpbWU8VD5cclxuICB8IFNtYXJ0VG9nZ2xlPFQ+XHJcbiAgfCBTbWFydEluZGljYXRvckl0ZW1cclxuICB8IFNtYXJ0RmlsZVVwbG9hZGVyXHJcbiAgfCBTbWFydEltYWdlXHJcbiAgfCBTbWFydERpdmlkZXJcclxuICB8IFNtYXJ0QnV0dG9uXHJcbiAgfCBTbWFydEZvcm1JbmxpbmVDb21wb25lbnRcclxuICB8IFNtYXJ0UmljaFRleHRcclxuICB8IFNtYXJ0U29ydGFibGU8VD5cclxuICB8IFNtYXJ0TWF0cml4XHJcbiAgfCBTbWFydFlvdXR1YmVQbGF5ZXJcclxuICB8IFNtYXJ0TW9udGhQaWNrZXJcclxuICB8IFNtYXJ0U3ZnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRleHRGaWVsZDxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHByZWZpeD86IHN0cmluZztcclxuICBzdWZmaXg/OiBzdHJpbmc7XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc1Bhc3N3b3JkPzogYm9vbGVhbjtcclxuICB0ZXh0RmllbGRCdXR0b24/OiBTbWFydEZvcm1UZXh0RmllbGRCdXR0b247XHJcbiAgY2Fwc0xvY2tXYXJuaW5nPzogc3RyaW5nO1xyXG4gIGNhcHNMb2NrV2FybmluZ0ljb24/OiBzdHJpbmc7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBtYXNrPzogc3RyaW5nO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgaWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIGljb25Qb3NpdGlvbj86ICdQUkUnIHwgJ1BPU1QnO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsdWVMaXN0PzogU21hcnRJdGVtPFQ+W107XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uRGVmaW5pdGlvbjtcclxuICBmaWx0ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICBtYXhMZW5ndGg/OiBudW1iZXI7XHJcbiAgc2hvd0NoYXJhY3RlckxpbWl0U3VmZml4PzogYm9vbGVhbjtcclxuICB0b29sYmFySWQ/OiBzdHJpbmc7XHJcbiAgaW5wdXRNb2RlPzogU21hcnRGb3JtSW5wdXRNb2RlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGV4dEZpZWxkTnVtYmVyPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTERfTlVNQkVSO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHByZWZpeD86IHN0cmluZztcclxuICBzdWZmaXg/OiBzdHJpbmc7XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICB0ZXh0RmllbGRCdXR0b24/OiBTbWFydEZvcm1UZXh0RmllbGRCdXR0b247XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBtaW5WYWx1ZXM/OiBudW1iZXI7XHJcbiAgbWF4VmFsdWVzPzogbnVtYmVyO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgaWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRleHRGaWVsZENoaXBzPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfRklFTERfQ0hJUFM7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBvcmlnaW5hbFBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXIgfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsdWVMaXN0OiBTbWFydEl0ZW08VD5bXTtcclxuICBtaW5WYWx1ZXM/OiBudW1iZXI7XHJcbiAgbWF4VmFsdWVzPzogbnVtYmVyO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRleHRGaWVsZExvb2t1cDxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5URVhUX0ZJRUxEX0xPT0tVUDtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG9yaWdpbmFsUGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlciB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcclxuICBtaW5WYWx1ZXM/OiBudW1iZXI7XHJcbiAgbWF4VmFsdWVzPzogbnVtYmVyO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbiAgdG9vbGJhcklkPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUZXh0Qm94PFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRFWFRfQk9YO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gIHNob3dDaGFyYWN0ZXJMaW1pdFN1ZmZpeD86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFNlbGVjdDxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TRUxFQ1Q7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIHZhbHVlPzogVDtcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbHVlTGlzdDogU21hcnRJdGVtczxUPltdO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbkRlZmluaXRpb247XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICBjb21wYXJlV2l0aD86IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRTZWxlY3RNdWx0aXBsZTxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TRUxFQ1RfTVVMVElQTEU7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbHVlTGlzdDogU21hcnRJdGVtczxUPltdO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbkRlZmluaXRpb247XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICBjb21wYXJlV2l0aD86IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRDaGVja0JveDxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5DSEVDS19CT1g7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIHZhbHVlPzogVDtcclxuICBtaW5XaWR0aD86IFNtYXJ0Rm9ybVdpZGdldFdpZHRoIHwgbnVtYmVyO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbHVlTGlzdDogU21hcnRJdGVtPFQ+W107XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uRGVmaW5pdGlvbjtcclxuICBkaXJlY3Rpb24/OiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb247XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0Q2hlY2tCb3gyPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkNIRUNLX0JPWF8yO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcclxuICB2YWx1ZUxpc3Q6IFNtYXJ0SXRlbTxUPltdO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbkRlZmluaXRpb247XHJcbiAgZGlyZWN0aW9uPzogU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFJhZGlvQnV0dG9uPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlJBRElPX0JVVFRPTjtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsdWVMaXN0OiBTbWFydEl0ZW08VD5bXTtcclxuICBzZWxlY3Rpb24/OiBTZWxlY3Rpb25EZWZpbml0aW9uO1xyXG4gIGRpcmVjdGlvbj86IFNtYXJ0Rm9ybVdpZGdldERpcmVjdGlvbjtcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnREYXRlUGlja2VyPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkRBVEVfUElDS0VSO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IFQ7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcclxuICBkYXRlRm9ybWF0SGludD86IHN0cmluZztcclxuICBtaW5EYXRlPzogRGF0ZTtcclxuICBtYXhEYXRlPzogRGF0ZTtcclxuICBmaWx0ZXI/OiAoZDogRGF0ZSB8IG51bGwpID0+IGJvb2xlYW47XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0RGF0ZVRpbWVQaWNrZXI8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuREFURV9USU1FX1BJQ0tFUjtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgdmFsdWU/OiBUO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaXNSZWFkb25seT86IGJvb2xlYW47XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgZGF0ZUZvcm1hdEhpbnQ/OiBzdHJpbmc7XHJcbiAgZmlsdGVyPzogKGQ6IERhdGUgfCBudWxsKSA9PiBib29sZWFuO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydENvbnRhaW5lcjxUPiB7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkNPTlRBSU5FUjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIHZhbHVlTGlzdDogU21hcnRGb3JtV2lkZ2V0PFQ+W107XHJcbiAgZGlyZWN0aW9uPzogU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydExhYmVsIHtcclxuICBrZXk/OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuTEFCRUw7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgd2lkZ2V0RGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxuICBtYXJrQXNSZXF1aXJlZD86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRpbWU8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuVElNRTtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgdmFsdWU/OiBUO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIG1pbldpZHRoPzogU21hcnRGb3JtV2lkZ2V0V2lkdGggfCBudW1iZXI7XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VG9nZ2xlPFQ+IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlRPR0dMRTtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgdmFsdWU/OiBUO1xyXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB0b2dnbGVMYWJlbFBvc2l0aW9uPzogVG9nZ2xlTGFiZWxQb3NpdGlvbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEluZGljYXRvckl0ZW0ge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSU5ESUNBVE9SO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpbmRpY2F0b3I6IFNtYXJ0SW5kaWNhdG9yO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBTbWFydEl0ZW1zPFQ+ID0gU21hcnRJdGVtPFQ+IHwgU21hcnRJdGVtR3JvdXA8VD47XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0SXRlbTxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICB2YWx1ZT86IFQ7XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBpY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgaW1hZ2VVcmw/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEl0ZW1Hcm91cDxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNX0dST1VQO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICB2YWx1ZUxpc3Q6IFNtYXJ0SXRlbTxUPltdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0RmlsZVVwbG9hZGVyIHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkZJTEVfVVBMT0FERVI7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICB1cGxvYWRDYWxsYmFjazogKGtleTogc3RyaW5nLCBmaWxlczogYW55W10pID0+IHZvaWQ7XHJcbiAgZmlsZUZvcm1hdHM/OiBzdHJpbmdbXTtcclxuICBtYXhTaXplTWI/OiBudW1iZXI7XHJcbiAgaTE4bj86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEltYWdlIHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklNQUdFO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgaW1hZ2VDc3M/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnREaXZpZGVyIHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkRJVklERVI7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICB2YWx1ZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydEJ1dHRvbiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5CVVRUT047XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICB2YWx1ZT86IHN0cmluZztcclxuICB1aUFjdGlvbj86IGFueTtcclxuICB1aUFjdGlvbkRlc2NyaXB0b3I6IGFueTtcclxuICBjYWxsYmFjazogKCh1aUFjdGlvbjogYW55KSA9PiB2b2lkKSB8ICgoa2V5OiBzdHJpbmcpID0+IHZvaWQpO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRGb3JtSW5saW5lQ29tcG9uZW50IHtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLkNPTVBPTkVOVDtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGNvbXBvbmVudDogYW55O1xyXG4gIGlucHV0OiBNYXA8c3RyaW5nLCBhbnk+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0UmljaFRleHQge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuUklDSF9URVhUO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHZhbHVlPzogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgb3JpZ2luYWxQbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBxdWlsbE1vZHVsZXM6IFF1aWxsTW9kdWxlcztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gIHNob3dDaGFyYWN0ZXJMaW1pdFN1ZmZpeD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRTb3J0YWJsZTxUPiB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TT1JUQUJMRTtcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB2YWx1ZT86IHN0cmluZztcclxuICBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgaXNWaXNpYmxlPzogYm9vbGVhbjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGlzUmVhZG9ubHk/OiBib29sZWFuO1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbj86IHN0cmluZztcclxuICBlcnJvckljb25Db2xvcj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvck1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yQ29sb3I/OiBzdHJpbmc7XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgdmFsdWVMaXN0PzogU21hcnRJdGVtPFQ+W107XHJcbiAgaXNNdWx0aXBsZT86IGJvb2xlYW47XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydE1hdHJpeCB7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5NQVRSSVg7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdmFsdWVDaGFuZ2VNb2RlPzogVmFsdWVDaGFuZ2VNb2RlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgdmFsdWU/OiBhbnk7XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgY3NzTGFiZWxDbGFzcz86IHN0cmluZztcclxuICBzdHlsZT86IFN0eWxlO1xyXG4gIGxhYmVsU3R5bGU/OiBTdHlsZTtcclxuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcclxuICBpc1JlYWRvbmx5PzogYm9vbGVhbjtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBlcnJvckljb24/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uQ29sb3I/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9ySWNvbj86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckNvbG9yPzogc3RyaW5nO1xyXG4gIHZhbGlkYXRvcnM/OiBTbWFydFZhbGlkYXRvcltdO1xyXG4gIGlzTXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIGhpbnQ/OiBTbWFydFdpZGdldEhpbnQ7XHJcbiAgYnV0dG9uPzogU21hcnRNYXRyaXhCdXR0b247XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRNYXRyaXhCdXR0b24ge1xyXG4gIGljb25Db2RlPzogc3RyaW5nO1xyXG4gIGNhbGxiYWNrOiAod2lkZ2V0OiBTbWFydEZvcm1XaWRnZXQ8YW55Piwgcm93OiBhbnkpID0+IGFueTtcclxuICBjb2xvcj86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFlvdXR1YmVQbGF5ZXIge1xyXG4gIGtleT86IHN0cmluZztcclxuICB2YWx1ZUNoYW5nZU1vZGU/OiBWYWx1ZUNoYW5nZU1vZGU7XHJcbiAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5ZT1VUVUJFX1BMQVlFUjtcclxuICBsaW5rPzogc3RyaW5nO1xyXG4gIHZpZGVvSWQ/OiBzdHJpbmc7XHJcbiAgaGVpZ2h0PzogbnVtYmVyO1xyXG4gIHdpZHRoPzogbnVtYmVyO1xyXG4gIHN0YXJ0U2Vjb25kcz86IG51bWJlciB8IDA7XHJcbiAgZW5kU2Vjb25kcz86IG51bWJlcjtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgdmFsaWRhdG9ycz86IFNtYXJ0VmFsaWRhdG9yW107XHJcbiAgaGludD86IFNtYXJ0V2lkZ2V0SGludDtcclxuICBzaG93TGFiZWw/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0TW9udGhQaWNrZXIge1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLk1PTlRIX1BJQ0tFUjtcclxuICB2YWx1ZT86IHN0cmluZztcclxuICB2YWxpZGF0b3JzPzogU21hcnRWYWxpZGF0b3JbXTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHNob3dMYWJlbD86IGJvb2xlYW47XHJcbiAgZXJyb3I/OiBzdHJpbmc7XHJcbiAgZXJyb3JJY29uPzogc3RyaW5nO1xyXG4gIGVycm9ySWNvbkNvbG9yPzogc3RyaW5nO1xyXG4gIHNlcnZlckVycm9yTWVzc2FnZT86IHN0cmluZztcclxuICBzZXJ2ZXJFcnJvckljb24/OiBzdHJpbmc7XHJcbiAgc2VydmVyRXJyb3JDb2xvcj86IHN0cmluZztcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxuICBjc3NMYWJlbENsYXNzPzogc3RyaW5nO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbiAgbGFiZWxTdHlsZT86IFN0eWxlO1xyXG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XHJcbiAgaXNEaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgb3JpZ2luYWxMYWJlbD86IHN0cmluZztcclxuICBoaW50PzogU21hcnRXaWRnZXRIaW50O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRTdmcge1xyXG4gIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuU1ZHO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlQ2hhbmdlTW9kZT86IFZhbHVlQ2hhbmdlTW9kZTtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIG9yaWdpbmFsTGFiZWw/OiBzdHJpbmc7XHJcbiAgc2hvd0xhYmVsPzogYm9vbGVhbjtcclxuICBpc1Zpc2libGU/OiBib29sZWFuO1xyXG4gIGNzc0NsYXNzPzogc3RyaW5nO1xyXG4gIGNzc0xhYmVsQ2xhc3M/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxuICBsYWJlbFN0eWxlPzogU3R5bGU7XHJcbiAgdmFsdWU/OiBzdHJpbmc7XHJcbiAgbWluV2lkdGg/OiBTbWFydEZvcm1XaWRnZXRXaWR0aCB8IG51bWJlcjtcclxufVxyXG4iXX0=