igniteui-angular 17.0.0 → 17.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/combo/combo-dropdown.component.mjs +2 -1
- package/esm2022/lib/directives/for-of/for_of.directive.mjs +14 -5
- package/esm2022/lib/drop-down/drop-down.component.mjs +5 -4
- package/esm2022/lib/grids/common/grid.interface.mjs +1 -1
- package/esm2022/lib/grids/grid-base.directive.mjs +1 -1
- package/esm2022/lib/grids/state.directive.mjs +3 -2
- package/esm2022/lib/simple-combo/simple-combo.component.mjs +7 -18
- package/esm2022/public_api.mjs +2 -2
- package/fesm2022/igniteui-angular.mjs +26 -25
- package/fesm2022/igniteui-angular.mjs.map +1 -1
- package/lib/core/styles/components/chip/_chip-theme.scss +26 -8
- package/lib/directives/for-of/for_of.directive.d.ts +18 -2
- package/lib/drop-down/drop-down.component.d.ts +2 -2
- package/lib/grids/common/grid.interface.d.ts +21 -0
- package/lib/grids/grid-base.directive.d.ts +2 -19
- package/lib/grids/state.directive.d.ts +1 -0
- package/lib/simple-combo/simple-combo.component.d.ts +0 -3
- package/package.json +1 -1
- package/public_api.d.ts +1 -1
- package/schematics/tsconfig.tsbuildinfo +1 -1
- package/styles/igniteui-angular-dark.css +1 -1
- package/styles/igniteui-angular.css +1 -1
- package/styles/igniteui-bootstrap-dark.css +1 -1
- package/styles/igniteui-bootstrap-light.css +1 -1
- package/styles/igniteui-dark-green.css +1 -1
- package/styles/igniteui-fluent-dark-excel.css +1 -1
- package/styles/igniteui-fluent-dark-word.css +1 -1
- package/styles/igniteui-fluent-dark.css +1 -1
- package/styles/igniteui-fluent-light-excel.css +1 -1
- package/styles/igniteui-fluent-light-word.css +1 -1
- package/styles/igniteui-fluent-light.css +1 -1
- package/styles/igniteui-indigo-dark.css +1 -1
- package/styles/igniteui-indigo-light.css +1 -1
- package/styles/maps/igniteui-angular-dark.css.map +1 -1
- package/styles/maps/igniteui-angular.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
- package/styles/maps/igniteui-dark-green.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-light.css.map +1 -1
- package/styles/maps/igniteui-indigo-dark.css.map +1 -1
- package/styles/maps/igniteui-indigo-light.css.map +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
export const IGX_GRID_BASE = /*@__PURE__*/ new InjectionToken('IgxGridBaseToken');
|
|
3
3
|
export const IGX_GRID_SERVICE_BASE = /*@__PURE__*/ new InjectionToken('IgxGridServiceBaseToken');
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL2dyaWQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBK0MsY0FBYyxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQTZCdEksTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQSxJQUFJLGNBQWMsQ0FBVyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLGFBQWEsQ0FBQSxJQUFJLGNBQWMsQ0FBa0IseUJBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbHVtblBpbm5pbmdQb3NpdGlvbiwgRmlsdGVyTW9kZSwgR3JpZFBhZ2luZ01vZGUsIEdyaWRTZWxlY3Rpb25Nb2RlLCBHcmlkU3VtbWFyeUNhbGN1bGF0aW9uTW9kZSwgR3JpZFN1bW1hcnlQb3NpdGlvbiwgR3JpZFZhbGlkYXRpb25UcmlnZ2VyLCBSb3dQaW5uaW5nUG9zaXRpb24gfSBmcm9tICcuL2VudW1zJztcbmltcG9ydCB7XG4gICAgSVNlYXJjaEluZm8sIElHcmlkQ2VsbEV2ZW50QXJncywgSVJvd1NlbGVjdGlvbkV2ZW50QXJncywgSUNvbHVtblNlbGVjdGlvbkV2ZW50QXJncywgSUdyaWRFZGl0RXZlbnRBcmdzLFxuICAgIElQaW5Db2x1bW5DYW5jZWxsYWJsZUV2ZW50QXJncywgSUNvbHVtblZpc2liaWxpdHlDaGFuZ2VkRXZlbnRBcmdzLCBJQ29sdW1uVmlzaWJpbGl0eUNoYW5naW5nRXZlbnRBcmdzLFxuICAgIElSb3dEcmFnRW5kRXZlbnRBcmdzLCBJQ29sdW1uTW92aW5nU3RhcnRFdmVudEFyZ3MsIElDb2x1bW5Nb3ZpbmdFbmRFdmVudEFyZ3MsXG4gICAgSUdyaWRFZGl0RG9uZUV2ZW50QXJncywgSVJvd0RhdGFFdmVudEFyZ3MsIElHcmlkS2V5ZG93bkV2ZW50QXJncywgSVJvd0RyYWdTdGFydEV2ZW50QXJncyxcbiAgICBJQ29sdW1uTW92aW5nRXZlbnRBcmdzLCBJUGluQ29sdW1uRXZlbnRBcmdzLFxuICAgIElBY3RpdmVOb2RlQ2hhbmdlRXZlbnRBcmdzLFxuICAgIElDZWxsUG9zaXRpb24sIElGaWx0ZXJpbmdFdmVudEFyZ3MsIElDb2x1bW5SZXNpemVFdmVudEFyZ3MsIElSb3dUb2dnbGVFdmVudEFyZ3MsIElHcmlkVG9vbGJhckV4cG9ydEV2ZW50QXJncywgSVBpblJvd0V2ZW50QXJnc1xufSBmcm9tICcuLi9jb21tb24vZXZlbnRzJztcbmltcG9ydCB7IERpc3BsYXlEZW5zaXR5LCBJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9jb3JlL2RlbnNpdHknO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0aW9uVG9rZW4sIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSwgSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctZXhwcmVzc2lvbnMtdHJlZSc7XG5pbXBvcnQgeyBJR3JpZFJlc291cmNlU3RyaW5ncyB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi9ncmlkLXJlc291cmNlcyc7XG5pbXBvcnQgeyBJR3JvdXBpbmdFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElHcm91cEJ5UmVjb3JkIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwYnktcmVjb3JkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJR3JvdXBCeUV4cGFuZFN0YXRlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwYnktZXhwYW5kLXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJZ3hQYWdpbmF0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hDZWxsLCBJZ3hFZGl0Um93IH0gZnJvbSAnLi9jcnVkLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JpZFNlbGVjdGlvblJhbmdlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBGaWx0ZXJpbmdMb2dpYyB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctZXhwcmVzc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUZpbHRlcmluZ1N0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1zdHJhdGVneSc7XG5pbXBvcnQgeyBEcm9wUG9zaXRpb24sIElneENvbHVtbk1vdmluZ1NlcnZpY2UgfSBmcm9tICcuLi9tb3ZpbmcvbW92aW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWd4T3ZlcmxheU91dGxldERpcmVjdGl2ZSwgSWd4VG9nZ2xlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy90b2dnbGUvdG9nZ2xlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJVHJlZUdyaWRSZWNvcmQgfSBmcm9tICcuLi90cmVlLWdyaWQvdHJlZS1ncmlkLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgU3RhdGUsIFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBEYXRhVHlwZSwgR3JpZENvbHVtbkRhdGFUeXBlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2RhdGEtdXRpbCc7XG5pbXBvcnQgeyBJZ3hGaWx0ZXJpbmdPcGVyYW5kIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1jb25kaXRpb24nO1xuaW1wb3J0IHsgSUNvbHVtblBpcGVBcmdzLCBJRmllbGRQaXBlQXJncywgSVNvcnRpbmdPcHRpb25zLCBNUkxSZXNpemVDb2x1bW5JbmZvIH0gZnJvbSAnLi4vY29sdW1ucy9pbnRlcmZhY2VzJztcbmltcG9ydCB7IElneFN1bW1hcnlSZXN1bHQgfSBmcm9tICcuLi9zdW1tYXJpZXMvZ3JpZC1zdW1tYXJ5JztcbmltcG9ydCB7IElTb3J0aW5nRXhwcmVzc2lvbiwgSVNvcnRpbmdTdHJhdGVneSwgU29ydGluZ0RpcmVjdGlvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9zb3J0aW5nLXN0cmF0ZWd5JztcbmltcG9ydCB7IElHcmlkR3JvdXBpbmdTdHJhdGVneSwgSUdyaWRTb3J0aW5nU3RyYXRlZ3kgfSBmcm9tICcuL3N0cmF0ZWd5JztcbmltcG9ydCB7IElGb3JPZlN0YXRlLCBJZ3hHcmlkRm9yT2ZEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2Zvci1vZi9mb3Jfb2YuZGlyZWN0aXZlJztcbmltcG9ydCB7IE92ZXJsYXlTZXR0aW5ncyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL292ZXJsYXkvdXRpbGl0aWVzJztcbmltcG9ydCB7IElEaW1lbnNpb25zQ2hhbmdlLCBJUGl2b3RDb25maWd1cmF0aW9uLCBJUGl2b3REaW1lbnNpb24sIElQaXZvdEtleXMsIElQaXZvdFZhbHVlLCBJVmFsdWVzQ2hhbmdlLCBQaXZvdERpbWVuc2lvblR5cGUgfSBmcm9tICcuLi9waXZvdC1ncmlkL3Bpdm90LWdyaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElEYXRhQ2xvbmVTdHJhdGVneSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9kYXRhLWNsb25lLXN0cmF0ZWd5JztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJZ3hHcmlkVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9ncmlkL2dyaWQtdmFsaWRhdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IElHWF9HUklEX0JBU0UgPSAvKkBfX1BVUkVfXyovbmV3IEluamVjdGlvblRva2VuPEdyaWRUeXBlPignSWd4R3JpZEJhc2VUb2tlbicpO1xuZXhwb3J0IGNvbnN0IElHWF9HUklEX1NFUlZJQ0VfQkFTRSA9IC8qQF9fUFVSRV9fKi9uZXcgSW5qZWN0aW9uVG9rZW48R3JpZFNlcnZpY2VUeXBlPignSWd4R3JpZFNlcnZpY2VCYXNlVG9rZW4nKTtcblxuLyoqIEludGVyZmFjZSByZXByZXNlbnRpbmcgYSBzZWdtZW50IG9mIGEgcGF0aCBpbiBhIGhpZXJhcmNoaWNhbCBncmlkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUGF0aFNlZ21lbnQge1xuICAgIC8qKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHJvdyB3aXRoaW4gdGhlIHNlZ21lbnQuICovXG4gICAgcm93SUQ6IGFueTtcbiAgICAvKiogVGhlIGtleSByZXByZXNlbnRpbmcgdGhlIHJvdydzICdoaWVyYXJjaGljYWwgbGV2ZWwuICovXG4gICAgcm93SXNsYW5kS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWREYXRhQmluZGFibGUge1xuICAgIGRhdGE6IGFueVtdIHwgbnVsbDtcbiAgICBnZXQgZmlsdGVyZWREYXRhKCk6IGFueVtdO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgYSBjZWxsIGluIHRoZSBncmlkLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgY2VsbCBvYmplY3QuXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGNlbGxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZWxsVHlwZSB7XG4gICAgLyoqIFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBjZWxsLiAqL1xuICAgIHZhbHVlOiBhbnk7XG4gICAgLyoqIFRoZSB2YWx1ZSB0byBkaXNwbGF5IHdoZW4gdGhlIGNlbGwgaXMgaW4gZWRpdCBtb2RlLiAqL1xuICAgIGVkaXRWYWx1ZTogYW55O1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQuIEl0IGlzIGZhbHNlLCBpZiB0aGUgc2VsbCBpcyBub3Qgc2VsZWN0ZWQsIGFuZCB0cnVlLCBpZiBpdCBpcy4gKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNlbGwgaXMgY3VycmVudGx5IGFjdGl2ZSAoZm9jdXNlZCkuICovXG4gICAgYWN0aXZlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBjYW4gYmUgZWRpdGVkLiAqL1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBpcyBjdXJyZW50bHkgaW4gZWRpdCBtb2RlLiAqL1xuICAgIGVkaXRNb2RlOiBib29sZWFuO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBuYXRpdmUgSFRNTCBlbGVtZW50IG9mIHRoZSBjZWxsIGl0c2VsZiAqL1xuICAgIG5hdGl2ZUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgY29sdW1uIHRoYXQgdGhlIGNlbGwgYmVsb25ncyB0by4gKi9cbiAgICBjb2x1bW46IENvbHVtblR5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHJvdyB0aGF0IHRoZSBjZWxsIGJlbG9uZ3MgdG8gKi9cbiAgICByb3c6IFJvd1R5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGdyaWQgaW5zdGFuY2UgY29udGFpbmluZyB0aGUgY2VsbCAqL1xuICAgIGdyaWQ6IEdyaWRUeXBlO1xuICAgIC8qKiBPcHRpb25hbDsgQW4gb2JqZWN0IGlkZW50aWZ5aW5nIHRoZSBjZWxsLiBJdCBjb250YWlucyByb3dJRCwgY29sdW1uSUQsIGFuZCByb3dJbmRleCBvZiB0aGUgY2VsbC4gKi9cbiAgICBpZD86IHsgcm93SUQ6IGFueTsgY29sdW1uSUQ6IG51bWJlcjsgcm93SW5kZXg6IG51bWJlciB9O1xuICAgIC8qKiBPcHRpb25hbDsgVGhlIGBjZWxsSURgIGlzIHRoZSB1bmlxdWUga2V5LCB1c2VkIHRvIGlkZW50aWZ5IHRoZSBjZWxsICovXG4gICAgY2VsbElEPzogYW55O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsOyBBbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSB2YWxpZGF0aW9uIHN0YXRlIG9mIHRoZSBjZWxsLlxuICAgICAqIFdoZXRoZXIgaXQncyB2YWxpZCBvciBpbnZhbGlkLCBhbmQgaWYgaXQgaGFzIGVycm9yc1xuICAgICAqL1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb24/OiBJR3JpZFZhbGlkYXRpb25TdGF0ZTtcbiAgICByZWFkb25seT86IGJvb2xlYW47XG4gICAgLyoqIEFuIG9wdGlvbmFsIHRpdGxlIHRvIGRpc3BsYXkgZm9yIHRoZSBjZWxsICovXG4gICAgdGl0bGU/OiBhbnk7XG4gICAgLyoqIFRoZSBDU1Mgd2lkdGggb2YgdGhlIGNlbGwgYXMgYSBzdHJpbmcuICovXG4gICAgd2lkdGg6IHN0cmluZztcbiAgICAvKiogVGhlIGluZGV4IG9mIHRoZSBjb2x1bW4gdGhhdCB0aGUgY2VsbCBiZWxvbmdzIHRvLiBJdCBjb3VudHMgb25seSB0aGUgdmlzaWJsZSAobm90IGhpZGRlbikgY29sdW1ucyAqL1xuICAgIHZpc2libGVDb2x1bW5JbmRleD86IG51bWJlcjtcbiAgICAvKiogQSBtZXRob2QgZGVmaW5pdGlvbiB0byB1cGRhdGUgdGhlIHZhbHVlIG9mIHRoZSBjZWxsLiAqL1xuICAgIHVwZGF0ZTogKHZhbHVlOiBhbnkpID0+IHZvaWQ7XG4gICAgLyoqIEEgbWV0aG9kIGRlZmluaXRpb24gdG8gc3RhcnQgb3IgZW5kIHRoZSBlZGl0IG1vZGUgb2YgdGhlIGNlbGwuIEl0IHRha2VzIGEgYm9vbGVhbiB2YWx1ZSBhcyBhbiBhcmd1bWVudCovXG4gICAgc2V0RWRpdE1vZGU/KHZhbHVlOiBib29sZWFuKTogdm9pZDtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbDtcbiAgICAgKiBBIG1ldGhvZCBkZWZpbml0aW9uIHRvIGNhbGN1bGF0ZSB0aGUgc2l6ZSBvZiB0aGUgY2VsbCB0byBmaXQgdGhlIGNvbnRlbnRcbiAgICAgKiBUaGUgbWV0aG9kIGNhbiBiZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgc2l6ZSBvZiB0aGUgY2VsbCB3aXRoIHRoZSBsb25nZXN0IGNvbnRlbnQgYW5kIHJlc2l6ZSBhbGwgY2VsbHMgdG8gdGhhdCBzaXplXG4gICAgICovXG4gICAgY2FsY3VsYXRlU2l6ZVRvRml0PyhyYW5nZTogYW55KTogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gYWN0aXZhdGUgdGhlIGNlbGwuXG4gICAgICogSXQgdGFrZXMgYSBmb2N1cyBvciBrZXlib2FyZCBldmVudCBhcyBhbiBhcmd1bWVudFxuICAgICAqL1xuICAgIGFjdGl2YXRlPyhldmVudDogRm9jdXNFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIGRvdWJsZS1jbGljayBldmVudHMgb24gdGhlIGNlbGxcbiAgICAgKiBJdCB0YWtlcyBhIG1vdXNlIGV2ZW50IGFzIGFuIGFyZ3VtZW50XG4gICAgICovXG4gICAgb25Eb3VibGVDbGljaz8oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIGNsaWNrIGV2ZW50cyBvbiB0aGUgY2VsbFxuICAgICAqIEl0IHRha2VzIGEgbW91c2UgZXZlbnQgYXMgYW4gYXJndW1lbnRcbiAgICAgKi9cbiAgICBvbkNsaWNrPyhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyBhIGhlYWRlciBjZWxsIGluIHRoZSBncmlkLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgaGVhZGVyIGNlbGwgb2JqZWN0LlxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcywgcmVsZXZhbnQgdG8gdGhlIGhlYWRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlclR5cGUge1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBuYXRpdmUgSFRNTCBlbGVtZW50IG9mIHRoZSBjZWxsIGl0c2VsZiAqL1xuICAgIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIC8qKiBUaGUgY29sdW1uIHRoYXQgdGhlIGhlYWRlciBjZWxsIHJlcHJlc2VudHMuICovXG4gICAgY29sdW1uOiBDb2x1bW5UeXBlO1xuICAgIGRlbnNpdHk6IERpc3BsYXlEZW5zaXR5O1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY29sdW1uIGlzIGN1cnJlbnRseSBzb3J0ZWQuICovXG4gICAgc29ydGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBjYW4gYmUgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvbHVtbiBoZWFkZXIgaXMgYSB0aXRsZSBjZWxsLiAqL1xuICAgIHRpdGxlOiBib29sZWFuO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBzb3J0aW5nIGRpcmVjdGlvbiBvZiB0aGUgY29sdW1uIChhc2NlbmRpbmcsIGRlc2NlbmRpbmcgb3Igbm9uZSkuICovXG4gICAgc29ydERpcmVjdGlvbjogU29ydGluZ0RpcmVjdGlvbjtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIGEgcm93IGluIHRoZSBncmlkLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgcm93IG9iamVjdC5cbiAqIENvbnRhaW5zIGRlZmluaXRpb25zIG9mIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsIHJlbGV2YW50IHRvIGEgcm93XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm93VHlwZSB7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIG5hdGl2ZSBIVE1MIGVsZW1lbnQgb2YgdGhlIHJvdyBpdHNlbGYgKi9cbiAgICBuYXRpdmVFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gICAgLyoqIFRoZSBpbmRleCBvZiB0aGUgcm93IHdpdGhpbiB0aGUgZ3JpZCAqL1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgdmlld0luZGV4OiBudW1iZXI7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSByb3cgaXMgZ3JvdXBlZC4gKi9cbiAgICBpc0dyb3VwQnlSb3c/OiBib29sZWFuO1xuICAgIGlzU3VtbWFyeVJvdz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1hcCBvZiBjb2x1bW4gZmllbGQgbmFtZXMgdG8gdGhlIHN1bW1hcnkgcmVzdWx0cyBmb3IgdGhlIHJvdy5cbiAgICAgKi9cbiAgICBzdW1tYXJpZXM/OiBNYXA8c3RyaW5nLCBJZ3hTdW1tYXJ5UmVzdWx0W10+O1xuICAgIGdyb3VwUm93PzogSUdyb3VwQnlSZWNvcmQ7XG4gICAga2V5PzogYW55O1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb24/OiBJR3JpZFZhbGlkYXRpb25TdGF0ZTtcbiAgICBkYXRhPzogYW55O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBsaXN0IG9yIGFuIGFycmF5IG9mIGNlbGxzLCB0aGF0IGJlbG9uZyB0byB0aGUgcm93XG4gICAgICovXG4gICAgY2VsbHM/OiBRdWVyeUxpc3Q8Q2VsbFR5cGU+IHwgQ2VsbFR5cGVbXTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IHJvdyBpcyBkaXNhYmxlZFxuICAgICAqL1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFZpcnR1YWxpemF0aW9uIHN0YXRlIG9mIGRhdGEgcmVjb3JkIGFkZGVkIGZyb20gY2FjaGVcbiAgICAgKi9cbiAgICB2aXJ0RGlyUm93PzogSWd4R3JpZEZvck9mRGlyZWN0aXZlPENvbHVtblR5cGUsIENvbHVtblR5cGVbXT47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCByb3cgaXMgcGlubmVkLlxuICAgICAqL1xuICAgIHBpbm5lZD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCByb3cgaXMgc2VsZWN0ZWRcbiAgICAgKi9cbiAgICBzZWxlY3RlZD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCByb3cgaXMgZXhwYW5kZWQuXG4gICAgICogVGhlIHZhbHVlIGlzIHRydWUsIGlmIHRoZSByb3cgaXMgZXhwYW5kZWQgYW5kIGZhbHNlLCBpZiBpdCBpcyBjb2xsYXBzZWRcbiAgICAgKi9cbiAgICBleHBhbmRlZD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2FkZXMgd2hldGhlciB0aGUgcm93IGlzIG1hcmtlZCBmb3IgZGVsZXRpb24uXG4gICAgICovXG4gICAgZGVsZXRlZD86IGJvb2xlYW47XG4gICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogSW5kaWNhZGVzIHdoZXRoZXIgdGhlIHJvdyBpcyBjdXJyZW50bHkgYmVpbmcgZWRpdGVkLlxuICAgICAqL1xuICAgIGluRWRpdE1vZGU/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQ29udGFpbnMgdGhlIGNoaWxkIHJvd3Mgb2YgdGhlIGN1cnJlbnQgcm93LCBpZiB0aGVyZSBhcmUgYW55LlxuICAgICAqL1xuICAgIGNoaWxkcmVuPzogUm93VHlwZVtdO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQ29udGFpbnMgdGhlIHBhcmVudCByb3cgb2YgdGhlIGN1cnJlbnQgcm93LCBpZiBpdCBoYXMgb25lLlxuICAgICAqIElmIHRoZSBwYXJlbnQgcm93IGV4aXN0LCBpdCBtZWFucyB0aGF0IHRoZSBjdXJyZW50IHJvdyBpcyBhIGNoaWxkIHJvd1xuICAgICAqL1xuICAgIHBhcmVudD86IFJvd1R5cGU7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2FkZXMgd2hldGhlciB0aGUgY3VycmVudCByb3cgaGFzIGFueSBjaGlsZCByb3dzXG4gICAgICovXG4gICAgaGFzQ2hpbGRyZW4/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogUmVwcmVzZW50cyB0aGUgaGllcmFyY2hpY2FsIHJlY29yZCBhc3NvY2lhdGVkIHdpdGggdGhlIHJvdyAoZm9yIHRyZWUgZ3JpZHMpLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgSVRyZWVHcmlkUmVjb3JkLCB3aGljaCBjb250YWlucyB0aGUgZGF0YSwgY2hpbGRyZW4sIHRoZSBoaWVyYXJjaGljYWwgbGV2ZWwsIGV0Yy5cbiAgICAgKi9cbiAgICB0cmVlUm93PzogSVRyZWVHcmlkUmVjb3JkO1xuICAgIGFkZFJvd1VJPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYWRlcyB3aGV0aGVyIHRoZSByb3cgaXMgY3VycmVudGx5IGZvY3VzZWQuXG4gICAgICovXG4gICAgZm9jdXNlZD86IGJvb2xlYW47XG4gICAgLyoqIFJlcHJlc2VudCB0aGUgZ3JpZCBpbnN0YW5jZSwgdGhlIHJvdyBiZWxvbmdzIHRvICovXG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgb25Sb3dTZWxlY3RvckNsaWNrPzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIGNsaWNrIGV2ZW50IG9uIHRoZSByb3dcbiAgICAgKiBJdCB0YWtlcyBhIGBNb3VzZUV2ZW50YCBhcyBhbiBhcmd1bWVudFxuICAgICAqL1xuICAgIG9uQ2xpY2s/OiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1ldGhvZCB0byBoYW5kbGUgYWRkaW5nIGEgbmV3IHJvd1xuICAgICAqL1xuICAgIGJlZ2luQWRkUm93PzogKCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEEgbWV0aG9kIHRvIGhhbmRsZSBjaGFuZ2luZyB0aGUgdmFsdWUgb2YgZWxlbWVudHMgb2YgdGhlIHJvd1xuICAgICAqIEl0IHRha2VzIHRoZSBuZXcgdmFsdWUgYXMgYW4gYXJndW1lbnRcbiAgICAgKi9cbiAgICB1cGRhdGU/OiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEEgbWV0aG9kIHRvIGhhbmRsZSBkZWxldGluZyByb3dzXG4gICAgICovXG4gICAgZGVsZXRlPzogKCkgPT4gYW55O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIHBpbm5pbmcgYSByb3dcbiAgICAgKi9cbiAgICBwaW4/OiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIHVucGlubmluZyBhIHJvdywgdGhhdCBoYXMgYmVlbiBwaW5uZWRcbiAgICAgKi9cbiAgICB1bnBpbj86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRUeXBlIHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBmaWVsZDogc3RyaW5nO1xuICAgIGhlYWRlcj86IHN0cmluZztcbiAgICBkYXRhVHlwZTogRGF0YVR5cGU7XG4gICAgZmlsdGVyczogSWd4RmlsdGVyaW5nT3BlcmFuZDtcbiAgICBwaXBlQXJnczogSUZpZWxkUGlwZUFyZ3M7XG4gICAgZGVmYXVsdFRpbWVGb3JtYXQ6IHN0cmluZztcbiAgICBkZWZhdWx0RGF0ZVRpbWVGb3JtYXQ6IHN0cmluZztcblxuICAgIGZvcm1hdHRlcih2YWx1ZTogYW55LCByb3dEYXRhPzogYW55KTogYW55O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb2x1bW4gaW4gdGhlIGBHcmlkVHlwZWAuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSBjb2x1bW4gb2JqZWN0LlxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcyBhbmQgbWV0aG9kcywgcmVsZXZhbnQgdG8gYSBjb2x1bW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5UeXBlIGV4dGVuZHMgRmllbGRUeXBlIHtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgaW5jdGFuY2Ugb2YgdGhlIHBhcmVudCBgR3JpZFR5cGVgIHRoYXQgY29udGFpbnMgdGhpcyBjb2x1bW4uICovXG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgLyoqIEEgbGlzdCwgY29udGFpbmluZyBhbGwgdGhlIGNoaWxkIGNvbHVtbnMgdW5kZXIgdGhpcyBjb2x1bW4gKGlmIGFueSkuICovXG4gICAgY2hpbGRyZW46IFF1ZXJ5TGlzdDxDb2x1bW5UeXBlPjtcbiAgICAvKiogQW4gYXJyYXksIGNvbnRhaW5pbmcgYWxsIHRoZSBjaGlsZCBjb2x1bW5zLCBpbmNsdWRpbmcgbmVzdGVkIGNoaWxkcmVuLiAqL1xuICAgIGFsbENoaWxkcmVuOiBDb2x1bW5UeXBlW107XG4gICAgLyoqXG4gICAgICogVGhlIGhlYWRlciBncm91cCBjb21wb25lbnQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29sdW1uLlxuICAgICAqIENvdWxkIGJlIG9mIGFueSB0eXBlXG4gICAgKi9cbiAgICAvLyBUWVBFXG4gICAgaGVhZGVyR3JvdXA6IGFueTtcbiAgICAvKipcbiAgICAgKiBUaGUgaGVhZGVyIGNlbGwgY29tcG9uZW50IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbHVtbi5cbiAgICAgKiBDb3VsZCBiZSBvZiBhbnkgdHlwZVxuICAgICAqL1xuICAgIC8vIFRZUEVcbiAgICBoZWFkZXJDZWxsOiBhbnk7XG4gICAgdmFsaWRhdG9yczogYW55W107XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgcmVmZXJlbmNlIGZvciB0aGUgY3VzdG9tIGhlYWRlciBvZiB0aGUgY29sdW1uXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yIHRoZSBjb2xsYXBzaWJsZSBpbmRpY2F0b3Igb2YgdGhlIGNvbHVtbi5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgY29sbGFwc2libGVJbmRpY2F0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqIFJlcHJlc2VudHMgY3VzdG9tIENTUyBjbGFzc2VzIGFwcGxpZWQgdG8gdGhlIGhlYWRlciBlbGVtZW50LiBXaGVuIGFkZGVkLCB0aGV5IHRha2UgZGlmZmVyZW50IHN0eWxpbmcgKi9cbiAgICBoZWFkZXJDbGFzc2VzOiBhbnk7XG4gICAgLyoqIFJlcHJlc2VudHMgY3VzdG9tIENTUyBzdHlsZXMgYXBwbGllZCB0byB0aGUgaGVhZGVyIGVsZW1lbnQuIFdoZW4gYWRkZWQsIHRoZXkgdGFrZSBkaWZmZXJlbnQgc3R5bGluZyAqL1xuICAgIGhlYWRlclN0eWxlczogYW55O1xuICAgICAvKiogUmVwcmVzZW50cyBjdXN0b20gQ1NTIGNsYXNzZXMgYXBwbGllZCB0byB0aGUgaGVhZGVyIGdyb3VwLiBXaGVuIGFkZGVkLCB0aGV5IHRha2UgZGlmZmVyZW50IHN0eWxpbmcgKi9cbiAgICBoZWFkZXJHcm91cENsYXNzZXM6IGFueTtcbiAgICAgLyoqIFJlcHJlc2VudHMgY3VzdG9tIENTUyBzdHlsZXMgYXBwbGllZCB0byB0aGUgaGVhZGVyIGdyb3VwLiBXaGVuIGFkZGVkLCB0aGV5IHRha2UgZGlmZmVyZW50IHN0eWxpbmcgKi9cbiAgICBoZWFkZXJHcm91cFN0eWxlczogYW55O1xuXG4gICAgLyoqIFxuICAgICAqIEN1c3RvbSBDU1Mgc3R5bGluZywgYXBwcGxpZWQgdG8gZXZlcnkgY29sdW1uIFxuICAgICAqIGNhbGNXaWR0aCwgbWluV2lkdGhQeCwgbWF4V2lkdGhQeCwgbWluV2lkdGgsIG1heFdpZHRoLCBtaW5XaWR0aFBlcmNlbnQsIG1heFdpZHRoUGVyY2VudCwgcmVzb2x2ZWRXaWR0aFxuICAgICAqL1xuICAgIGNhbGNXaWR0aDogYW55O1xuICAgIG1pbldpZHRoUHg6IG51bWJlcjtcbiAgICBtYXhXaWR0aFB4OiBudW1iZXI7XG4gICAgbWluV2lkdGg6IHN0cmluZztcbiAgICBtYXhXaWR0aDogc3RyaW5nO1xuICAgIG1pbldpZHRoUGVyY2VudDogbnVtYmVyO1xuICAgIG1heFdpZHRoUGVyY2VudDogbnVtYmVyO1xuICAgIHJlc29sdmVkV2lkdGg6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogUmVwcmVzZW50cyB0aGUgaGVhZGVyIHRleHQgb2YgdGhlIGNvbHVtblxuICAgICAqL1xuICAgIGhlYWRlcj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgaW5kZXggb2YgdGhlIGNvbHVtbiB3aXRoaW4gdGhlIGdyaWQuXG4gICAgICogSW5jbHVkZXMgdGhlIGhpZGRlbiBjb2x1bW5zIHdoZW4gY291bnRpbmdcbiAgICAgKi9cbiAgICBpbmRleDogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIHR5cGUgb2YgZGF0YSBmb3IgdGhlIGNvbHVtbjpcbiAgICAgKiBzdHJpbmcsIG51bWJlciwgYnV1bGVhbiwgY3VycmVuY3ksIGRhdGUsIHRpbWUsIGV0Yy5cbiAgICAgKi9cbiAgICBkYXRhVHlwZTogR3JpZENvbHVtbkRhdGFUeXBlO1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yIHRoZSBjdXN0b20gaW5saW5lIGVkaXRvciBvZiB0aGUgY29sdW1uXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGlubGluZUVkaXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKlxuICAgICAqIFRoZSBpbmRleCBvZiB0aGUgY29sdW1uIHdpdGhpbiB0aGUgZ3JpZC5cbiAgICAgKiBEb2VzIG5vdCBpbmNsdWRlIHRoZSBoaWRkZW4gY29sdW1ucyB3aGVuIGNvdW50aW5nXG4gICAgICovXG4gICAgdmlzaWJsZUluZGV4OiBudW1iZXI7XG4gICAgLyoqIE9wdGlvbmFsXG4gICAgICogSW5kaWNhdGVkIHdoZXRoZXIgdGhlIGNvbHVtbiBjYW4gYmUgY29sbGFwc2VkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW4gYmUgY29sbGFwc2VkXG4gICAgICogSXQgaXMgdXNlZCBpbiB0cmVlIGdyaWQgYW5kIGZvciBuYXZpZ2F0aW9uXG4gICAgICovXG4gICAgY29sbGFwc2libGU/OiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZWQgd2hldGhlciB0aGUgY29sdW1uIGNhbiBiZSBlZGl0ZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGNhbiBiZSBlZGl0ZWQgKi9cbiAgICBlZGl0YWJsZTogYm9vbGVhbjtcbiAgICAvKiogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGNvbHVtbiBjYW4gYmUgcmVzaXplZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gY2FuIGJlIHJlc2l6ZWQgKi9cbiAgICByZXNpemFibGU6IGJvb2xlYW47XG4gICAgLyoqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBkYXRhIG9mIHRoZSBjb2x1bW4gY2FuIGJlIHNlYXJjaGVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBkYXRhIGNhbiBiZSBzZWFyY2hlZCAqL1xuICAgIHNlYXJjaGFibGU6IGJvb2xlYW47XG4gICAgLyoqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBjb2x1bW4gYmVsb25ncyB0byBhIGdyb3VwIG9mIGNvbHVtbnMuICovXG4gICAgY29sdW1uR3JvdXA6IGJvb2xlYW47XG4gICAgLyoqIEBkZXByZWNhdGVkIGluIHZlcnNpb24gMTMuMS4wLiBVc2UgYElneEdyaWRDb21wb25lbnQubW92aW5nYCBpbnN0ZWFkLiovXG4gICAgbW92YWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhZGVzIHdoZXRoZXIgYSBjb2x1bW4gY2FuIGJlIHB1dCBpbiBhIGdyb3VwLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW4gYmUgcHV0IGluIGEgZ3JvdXAgKi9cbiAgICBncm91cGFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYWRlcyB3aGV0aGVyIGEgY29sdW1uIGNhbiBiZSBzb3J0ZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGNhbiBiZSBzb3J0ZWQuICovXG4gICAgc29ydGFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYWRlcyB3aGV0aGVyIGEgY29sdW1uIGNhbiBiZSBmaWx0ZXJlZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gY2FuIGJlIGZpbHRlcmVkICovXG4gICAgZmlsdGVyYWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhZGVzIHdoZXRoZXIgYSBjb2x1bW4gaXMgY3VycmVudGx5IGhpZGRlbiAobm90IHZpc2libGUpLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBpcyBub3QgdmlzaWJsZSAqL1xuICAgIGhpZGRlbjogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhZGVzIHdoZXRoZXIgYSBjb2x1bW4gY2FuIGJlIHBpbm5lZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gY2Fubm90IGJlIHBpbm5lZCAqL1xuICAgIGRpc2FibGVQaW5uaW5nOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2FkZXMgd2hldGhlciBhIGNvbHVtbiBjYW4gYmUgaGlkZGVuLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW5ub3QgYmUgaGlkZGVuICovXG4gICAgZGlzYWJsZUhpZGluZzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgc29ydGluZyBzdHJhdGVneSB1c2VkIGZvciBzb3J0aW5nIHRoaXMgY29sdW1uLlxuICAgICAqIFRoZSBpbnRlcmZhY2UgY29udGFpbnMgYSBtZXRob2Qgc29ydCB0aGF0IHNvcnRzIHRoZSBwcm92aWRlZCBkYXRhIGJhc2VkIG9uIHRoZSBnaXZlbiBzb3J0aW5nIGV4cHJlc3Npb25zXG4gICAgICovXG4gICAgc29ydFN0cmF0ZWd5OiBJU29ydGluZ1N0cmF0ZWd5O1xuICAgICAvKipcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgc2VhcmNoIHNob3VsZCBtYXRjaCByZXN1bHRzLCBubyBtYXR0ZXIgdGhlIGNhc2Ugb2YgdGhlIGxldHRlcnMgKHVwcGVyIGFuZCBsb3dlcilcbiAgICAgKiBJZiB0aGUgdmFsdWUgaXMgZmFsc2UsIHRoZSByZXN1bHQgd2lsbCBkZXBlbmQgb24gdGhlIGNhc2UgKGV4YW1wbGU6IGBFYCB3aWxsIG5vdCBtYXRjaCBgZWApXG4gICAgICogSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSByZXN1bHQgd2lsbCBub3QgZGVwZW5kIG9uIHRoZSBjYXNlIChleGFtcGxlOiBgRWAgd2lsbCBtYXRjaCBgZWApXG4gICAgICovXG4gICAgc29ydGluZ0lnbm9yZUNhc2U6IGJvb2xlYW47XG4gICAgZmlsdGVyQ2VsbDogYW55O1xuICAgIGZpbHRlcmluZ0lnbm9yZUNhc2U6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVGhlIGZpbHRlcmluZyBleHByZXNzaW9ucyBmb3IgdGhlIGNvbHVtbi5cbiAgICAgKiBUaGUgdHlwZSBjb250YWlucyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIGZvciBmaWx0ZXJpbmc6IGZpbHRlcmluZ09wZXJhbmRzLCBvcGVyYXRvciAobG9naWMpLCBmaWVsZE5hbWUsIGV0Yy5cbiAgICAgKi9cbiAgICBmaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU6IEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTtcbiAgICBoYXNTdW1tYXJ5OiBib29sZWFuO1xuICAgIHN1bW1hcmllczogYW55O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yIGEgc3VtbWFyeSBvZiB0aGUgY29sdW1uXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIHN1bW1hcnlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBjb2x1bW4gaXMgY3VycmVudGx5IHBpbm5lZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gaXMgcGlubmVkICovXG4gICAgcGlubmVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbHVtbiBpcyBjdXJyZW50bHkgZXhwYW5kZWQgb3IgY29sbGFwc2VkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBpcyBleHBhbmRlZCAqL1xuICAgIGV4cGFuZGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbHVtbiBpcyBjdXJyZW50bHkgc2VsZWN0ZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGlzIHNlbGVjdGVkICovXG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgY29sdW1uIGNhbiBiZSBzZWxlY3RlZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gY2FuIGJlIHNlbGVjdGVkICovXG4gICAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICBjb2x1bW5MYXlvdXQ6IGJvb2xlYW47XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGhpZXJhcmNoaWNhbCBsZXZlbCBvZiB0aGUgY29sdW1uIGluIHRoZSBjb2x1bW4gbGF5b3V0ICovXG4gICAgbGV2ZWw6IG51bWJlcjtcbiAgICByb3dTdGFydDogbnVtYmVyO1xuICAgIHJvd0VuZDogbnVtYmVyO1xuICAgIGNvbFN0YXJ0OiBudW1iZXI7XG4gICAgY29sRW5kOiBudW1iZXI7XG4gICAgZ3JpZFJvd1NwYW46IG51bWJlcjtcbiAgICBncmlkQ29sdW1uU3BhbjogbnVtYmVyO1xuICAgIGNvbHVtbkxheW91dENoaWxkOiBib29sZWFuO1xuICAgIHdpZHRoOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBUaGUgcm9vdCBwYXJlbnQgb2YgdGhpcyBjb2x1bW4gKGlmIGFueSkuXG4gICAgICogSWYgdGhlcmUgaXMgbm8gcm9vdCBwYXJlbnQsIHRoYXQgbWVhbnMgdGhlIGN1cnJlbnQgc29sdW5tIGlzIHRoZSByb290IHBhcmVudFxuICAgICAqL1xuICAgIHRvcExldmVsUGFyZW50PzogQ29sdW1uVHlwZTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFRoZSBpbW1lZGlhdGUgcGFyZW50IChyaWdodCBhYm92ZSkgY29sdW1uIG9mIHRoaXMgY29sdW1uIChpZiBhbnkpLlxuICAgICAqIElmIHRoZXJlIGlzIG5vIHBhcmVudCwgdGhhdCBtZWFucyB0aGUgY3VycmVudCBzb2x1bm0gaXMgdGhlIHJvb3QgcGFyZW50XG4gICAgICovXG4gICAgcGFyZW50PzogQ29sdW1uVHlwZTtcbiAgICBwaXBlQXJnczogSUNvbHVtblBpcGVBcmdzO1xuICAgIGhhc05lc3RlZFBhdGg6IGJvb2xlYW47XG4gICAgYWRkaXRpb25hbFRlbXBsYXRlQ29udGV4dDogYW55O1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCBjb2x1bW4gaXMgdGhlIGxhc3QgdG8gYmUgcGlubmVkLlxuICAgICAqIElmIHRoZSB2YWx1ZSBpcyBmYWxzZSwgdGhlcmUgYXJlIGNvbHVtbnMsIHRoYXQgaGF2ZSBiZWVuIHBpbm5lZCBhZnRlciB0aGUgY3VycmVudCAqL1xuICAgIGlzTGFzdFBpbm5lZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGN1cnJlbnQgY29sdW1uIGlzIHRoZSBmaXJzdCBmb3IgdGhlIGdyaWQgdG8gYmUgcGlubmVkLlxuICAgICAqIElmIHRoZSB2YWx1ZSBpcyBmYWxzZSwgdGhlcmUgYXJlIGNvbHVtbnMsIHRoYXQgaGF2ZSBiZWVuIHBpbm5lZCBiZWZvcmUgdGhlIGN1cnJlbnQgKi9cbiAgICBpc0ZpcnN0UGlubmVkOiBib29sZWFuO1xuICAgIGFwcGx5U2VsZWN0YWJsZUNsYXNzOiBib29sZWFuO1xuICAgIC8qKiBUaGUgdGl0bGUgb2YgdGhlIGNvbHVtbiwgdXNlZCBmb3IgYWNjZXNzaWJpbGl0eSBwdXJwb3NlcyAqL1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2Qgd2l0aCBjdXN0b20gZ3JvdXBpbmcgY29tcGFyYXRvciB0byBkZXRlcm1pbmUgdGhlIG1lbWJlcnMgb2YgdGhlIGdyb3VwLiAqL1xuICAgIGdyb3VwaW5nQ29tcGFyZXI6IChhOiBhbnksIGI6IGFueSkgPT4gbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhIGN1c3RvbSB0ZW1wbGF0ZSBmb3IgZmlsdGVyaW5nXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGZpbHRlckNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIEEgbWV0aG9kIGRlZmluaXRpb24gdG8gbW92ZSB0aGUgY29sdW1uIHRvIHRoZSBzcGVjaWZpZWQgaW5kZXguXG4gICAgICogSXQgdGFrZXMgdGhlIGluZGV4IG9mIHR5cGUgbnVtYmVyIGFzIGEgcGFyYW1ldGVyXG4gICAgKi9cbiAgICBtb3ZlKGluZGV4OiBudW1iZXIpOiB2b2lkO1xuICAgIC8qKiBBIG1ldGhvZCBkZWZpbml0aW9uIHRvIHJldHJpZXZlIHRoZSBzZXQgQ1NTIHNpemUgKi9cbiAgICBnZXRBdXRvU2l6ZSgpOiBzdHJpbmc7XG4gICAgZ2V0UmVzaXphYmxlQ29sVW5kZXJFbmQoKTogTVJMUmVzaXplQ29sdW1uSW5mb1tdO1xuICAgIC8qKiBBIG1ldGhvZCBkZWZpbml0aW9uIHRvIHJldHJpZXZlIHRoZSBzZXQgQ1NTIHdpZHRoIG9mIHRoZSBjZWxscyB1bmRlciB0aGUgY29sdW1uICovXG4gICAgZ2V0Q2VsbFdpZHRoKCk6IHN0cmluZztcbiAgICBnZXRHcmlkVGVtcGxhdGUoaXNSb3c6IGJvb2xlYW4pOiBzdHJpbmc7XG4gICAgLyoqIEEgbWV0aG9kIGRlZmluaXRpb24gdG8gdG9nZ2xlIGNvbHVtbiB2aWJpc2lsaXR5IChoaWRkZW4gb3IgdmlzaWJsZSkgKi9cbiAgICB0b2dnbGVWaXNpYmlsaXR5KHZhbHVlPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgcG9wdWxhdGVWaXNpYmxlSW5kZXhlcz8oKTogdm9pZDtcbiAgICAvKiogUGlucyB0aGUgY29sdW1uIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXggKGlmIG5vdCBhbHJlYWR5IHBpbm5lZCkuICovXG4gICAgcGluKGluZGV4PzogbnVtYmVyKTogYm9vbGVhbjtcbiAgICAvKiogVW5waW5zIHRoZSBjb2x1bW4gYXQgdGhlIHNwZWNpZmllZCBpbmRleCAoaWYgbm90IGFscmVhZHkgdW5waW5uZWQpLiAqL1xuICAgIHVucGluKGluZGV4PzogbnVtYmVyKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIHRoZSBldmVudCBhcmd1bWVudHMgd2hlbiBhIGZvcm0gZ3JvdXAgaXMgY3JlYXRlZCBpbiB0aGUgZ3JpZC5cbiAqIC0gZm9ybUdyb3VwOiBUaGUgZm9ybSBncm91cCB0aGF0IGlzIGNyZWF0ZWQuXG4gKiAtIG93bmVyOiBUaGUgZ3JpZCBpbnN0YW5jZSB0aGF0IG93bnMgdGhlIGZvcm0gZ3JvdXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRGb3JtR3JvdXBDcmVhdGVkRXZlbnRBcmdzIHtcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cCxcbiAgICBvd25lcjogR3JpZFR5cGVcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIHRoZSBldmVudCBhcmd1bWVudHMgZm9yIHRoZSBncmlkIHZhbGlkYXRpb24gc3RhdHVzIGNoYW5nZSBldmVudC5cbiAqIC0gc3RhdHVzOiBUaGUgdmFsaWRhdGlvbiBzdGF0dXMgKCdWQUxJRCcgb3IgJ0lOVkFMSUQnKS5cbiAqIC0gb3duZXI6IFRoZSBncmlkIGluc3RhbmNlIHRoYXQgb3ducyB0aGUgdmFsaWRhdGlvbiBzdGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJR3JpZFZhbGlkYXRpb25TdGF0dXNFdmVudEFyZ3Mge1xuICAgIHN0YXR1czogVmFsaWRhdGlvblN0YXR1cyxcbiAgICBvd25lcjogR3JpZFR5cGVcbn1cblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgdmFsaWRhdGlvbiBzdGF0dXMuXG4gKiAtICdWQUxJRCc6IFRoZSB2YWxpZGF0aW9uIHN0YXR1cyBpcyB2YWxpZC5cbiAqIC0gJ0lOVkFMSUQnOiBUaGUgdmFsaWRhdGlvbiBzdGF0dXMgaXMgaW52YWxpZC5cbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblN0YXR1cyA9ICdWQUxJRCcgfCAnSU5WQUxJRCc7XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyB0aGUgdmFsaWRhdGlvbiBzdGF0ZSBvZiBhIGdyaWQuXG4gKiAtIHN0YXR1czogVGhlIHZhbGlkYXRpb24gc3RhdHVzICgnVkFMSUQnIG9yICdJTlZBTElEJykuXG4gKiAtIGVycm9yczogVGhlIHZhbGlkYXRpb24gZXJyb3JzIGlmIGFueS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJR3JpZFZhbGlkYXRpb25TdGF0ZSB7XG4gICAgcmVhZG9ubHkgc3RhdHVzOiBWYWxpZGF0aW9uU3RhdHVzO1xuICAgIHJlYWRvbmx5IGVycm9ycz86IFZhbGlkYXRpb25FcnJvcnM7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyB0aGUgdmFsaWRhdGlvbiBzdGF0ZSBvZiBhIHJlY29yZCBpbiB0aGUgZ3JpZC5cbiAqIC0gYGtleWA6IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcmVjb3JkLlxuICogLSBgZmllbGRzYDogQW4gYXJyYXkgb2YgdGhlIHZhbGlkYXRpb24gc3RhdGUgb2YgaW5kaXZpZHVhbCBmaWVsZHMgaW4gdGhlIHJlY29yZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUmVjb3JkVmFsaWRhdGlvblN0YXRlIGV4dGVuZHMgSUdyaWRWYWxpZGF0aW9uU3RhdGUge1xuICAgIGtleTogYW55O1xuICAgIGZpZWxkczogSUZpZWxkVmFsaWRhdGlvblN0YXRlW107XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyB0aGUgdmFsaWRhdGlvbiBzdGF0ZSBvZiBhIGZpZWxkIGluIHRoZSBncmlkLlxuICogLWBmaWVsZGA6IFRoZSBuYW1lIG9mIHRoZSBmaWVsZCAocHJvcGVydHkpIGJlaW5nIHZhbGlkYXRlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRmllbGRWYWxpZGF0aW9uU3RhdGUgZXh0ZW5kcyBJR3JpZFZhbGlkYXRpb25TdGF0ZSB7XG4gICAgZmllbGQ6IHN0cmluZ1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHNlcnZpY2UgaW50ZXJmYWNlIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBncmlkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRTZXJ2aWNlVHlwZSB7XG5cbiAgICAvKiogVGhlIHJlZmVyZW5jZSB0byB0aGUgcGFyZW50IGBHcmlkVHlwZWAgdGhhdCBjb250YWlucyB0aGUgc2VydmljZS4gKi9cbiAgICBncmlkOiBHcmlkVHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgdHlwZSBvZiB0aGUgQ1JVRCBzZXJ2aWNlIChDcmVhdGUsIFJlYWQsIFVwZGF0ZSwgRGVsZXRlKSBvcGVyYXRpb25zIG9uIHRoZSBncmlkIGRhdGEuICovXG4gICAgY3J1ZFNlcnZpY2U6IGFueTtcbiAgICAvKiogQSBzZXJ2aWNlIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyBjb2x1bW4gbW92aW5nIHdpdGhpbiB0aGUgZ3JpZC4gSXQgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIGNvbHVtbiwgaXRzIGljb24sIGFuZCBpbmRpY2F0b3IgZm9yIGNhbmNlbGF0aW9uLiAqL1xuICAgIGNtczogSWd4Q29sdW1uTW92aW5nU2VydmljZTtcblxuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSBkYXRhIHVzZWQgaW4gdGhlIGdyaWQuIFRoZSByZXR1cm5lZCB2YWx1ZXMgY291bGQgYmUgb2YgYW55IHR5cGUgKi9cbiAgICBnZXRfZGF0YSgpOiBhbnlbXTtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIGFsbCB0aGUgZGF0YSBhdmFpbGFibGUgaW4gdGhlIGdyaWQsIGluY2x1ZGluZyBhbnkgdHJhbnNhY3Rpb25hbCBkYXRhLlxuICAgICAqIGBpbmNsdWRlVHJhbnNhY3Rpb25zYDogT3B0aW9uYWwgcGFyYW1ldGVyLiBTcGVjaWZpZXMgd2hldGhlciB0byBpbmNsdWRlIHRyYW5zYWN0aW9uYWwgZGF0YSBpZiBwcmVzZW50LlxuICAgICAqIFJldHVybnMgYW4gYXJyYXkgY29udGFpbmluZyBhbGwgdGhlIGRhdGEgYXZhaWxhYmxlIGluIHRoZSBncmlkLlxuICAgICAqL1xuICAgIGdldF9hbGxfZGF0YShpbmNsdWRlVHJhbnNhY3Rpb25zPzogYm9vbGVhbik6IGFueVtdO1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIGEgY29sdW1uIG9iamVjdCBieSBpdHMgbmFtZSwgdGFrZW4gYXMgYSBwYXJhbWV0ZXIuICovXG4gICAgZ2V0X2NvbHVtbl9ieV9uYW1lKG5hbWU6IHN0cmluZyk6IENvbHVtblR5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgcm93IGJ5IGl0cyB1bmlxdWUgaWRlbnRpZmllciAob2YgYW55IHR5cGUsIHRha2VuIGFzIGEgcGFyYW1ldGVyKS4gKi9cbiAgICBnZXRSb3dEYXRhKGlkOiBhbnkpOiBhbnk7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgcmVjb3JkIGJ5IGl0cyB1bmlxdWUgaWRlbnRpZmllciAob2YgYW55IHR5cGUsIHRha2VuIGFzIGEgcGFyYW1ldGVyKS4gKi9cbiAgICBnZXRfcmVjX2J5X2lkKGlkOiBhbnkpOiBhbnk7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIGEgc3BlY2lmaWMgcm93IGJ5IGl0cyBkYXRhLiAqL1xuICAgIGdldF9yb3dfaWQocm93RGF0YTogYW55KTogYW55O1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSByb3cgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIGluZGV4ICh0YWtlbiBhcyBhIHBhcmFtZXRlcikgaW4gdGhlIGdyaWQgKi9cbiAgICBnZXRfcm93X2J5X2luZGV4KHJvd1NlbGVjdG9yOiBhbnkpOiBSb3dUeXBlO1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSByb3cgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIGtleSAodGFrZW4gYXMgYSBwYXJhbWV0ZXIpIGluIHRoZSBncmlkICovXG4gICAgZ2V0X3Jvd19ieV9rZXkocm93U2VsZWN0b3I6IGFueSk6IFJvd1R5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIGluZGV4IG9mIGEgcmVjb3JkIGluIHRoZSBncmlkJ3MgZGF0YSBjb2xsZWN0aW9uIHVzaW5nIGl0cyB1bmlxdWUgaWRlbnRpZmllci4gKi9cbiAgICBnZXRfcmVjX2luZGV4X2J5X2lkKHBrOiBzdHJpbmcgfCBudW1iZXIsIGRhdGFDb2xsZWN0aW9uPzogYW55W10pOiBudW1iZXI7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIGluZGV4IG9mIGEgcmVjb3JkIGluIHRoZSBncmlkJ3MgZGF0YSBjb2xsZWN0aW9uIHVzaW5nIGl0cyBpbmRleC4gKi9cbiAgICBnZXRfcmVjX2lkX2J5X2luZGV4KGluZGV4OiBudW1iZXIsIGRhdGFDb2xsZWN0aW9uPzogYW55W10pOiBhbnk7XG4gICAgZ2V0X3Jvd19pbmRleF9pbl9kYXRhKHJvd0lEOiBhbnksIGRhdGFDb2xsZWN0aW9uPzogYW55W10pOiBudW1iZXI7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIGNlbGwgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIHJvdyBhbmQgY29sdW1uIGluIHRoZSBncmlkLiAqL1xuICAgIGdldF9jZWxsX2J5X2tleShyb3dTZWxlY3RvcjogYW55LCBmaWVsZDogc3RyaW5nKTogQ2VsbFR5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIGNlbGwgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIHJvdyBhbmQgY29sdW1uIHVzaW5nIHRoZWlyIGluZGV4ZXMuICovXG4gICAgZ2V0X2NlbGxfYnlfaW5kZXgocm93SW5kZXg6IG51bWJlciwgY29sdW1uSUQ6IG51bWJlciB8IHN0cmluZyk6IENlbGxUeXBlO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIGNlbGwgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIHJvdyBhbmQgY29sdW1uIHVzaW5nIHRoZWlyIGluZGV4ZXMuXG4gICAgICogSXQgY291bnRzIG9ubHkgdGhlIGluZGV4ZXMgb2YgdGhlIHZpc2libGUgY29sdW1ucyBhbmQgcm93c1xuICAgICAqL1xuICAgIGdldF9jZWxsX2J5X3Zpc2libGVfaW5kZXgocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gdGhhdCBzZXRzIHRoZSBleHBhbnNpb24gc3RhdGUgb2YgYSBncm91cCByb3cgKHVzZWQgZm9yIHRyZWUgZ3JpZHMpXG4gICAgICogSXQgdGFrZXMgdGhlIHZhbHVlIGZvciB0aGUgZXhwYW50aW9uIGFzIGEgcGFyYW1ldGVyIChleHBhbmRlZCBvciBjb2xsYXBzZWQpXG4gICAgICovXG4gICAgc2V0X2dyb3Vwcm93X2V4cGFuc2lvbl9zdGF0ZT8oZ3JvdXBSb3c6IElHcm91cEJ5UmVjb3JkLCB2YWx1ZTogYm9vbGVhbik6IHZvaWQ7XG4gICAgcm93X2RlbGV0ZWRfdHJhbnNhY3Rpb24oaWQ6IGFueSk6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgYWRkaW5nIGEgbmV3IHJvdyB0byB0aGUgZ3JpZC5cbiAgICAgKiBJdCB0YWtlcyB0aGUgcm93J3MgZGF0YSBhbmQgdGhlIGlkZW50aWZpZXIgb2YgdGhlIHBhcmVudCByb3cgaWYgYXBwbGljYWJsZSAodXNlZCBmb3IgdHJlZSBncmlkcylcbiAgICAgKi9cbiAgICBhZGRSb3dUb0RhdGEocm93RGF0YTogYW55LCBwYXJlbnRJRD86IGFueSk6IHZvaWQ7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIGRlbGV0aW5nIGEgcm93LCBzcGVjaWZpZWQgYnkgaXQncyBpZGVudGlkaWVyICh0YWtlbiBhcyBhIHBhcmFtZXRlcikgKi9cbiAgICBkZWxldGVSb3dCeUlkKGlkOiBhbnkpOiBhbnk7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIHJvdydzIGN1cnJlbnQgc3RhdGUgb2YgZXhwYW50aW9uICh1c2VkIGZvciB0cmVlIGdyaWRzKSovXG4gICAgZ2V0X3Jvd19leHBhbnNpb25fc3RhdGUoaWQ6IGFueSk6IGJvb2xlYW47XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHNldHRpbmcgYSBuZXcgZXhwYW50aW9uIHN0YXRlLiBJdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGFuIGV2ZW50ICovXG4gICAgc2V0X3Jvd19leHBhbnNpb25fc3RhdGUoaWQ6IGFueSwgZXhwYW5kZWQ6IGJvb2xlYW4sIGV2ZW50PzogRXZlbnQpOiB2b2lkO1xuICAgIGdldF9zdW1tYXJ5X2RhdGEoKTogYW55W107XG5cbiAgICBwcmVwYXJlX3NvcnRpbmdfZXhwcmVzc2lvbihzdGF0ZUNvbGxlY3Rpb25zOiBBcnJheTxBcnJheTxhbnk+PiwgZXhwcmVzc2lvbjogSVNvcnRpbmdFeHByZXNzaW9uKTogdm9pZDtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciBzb3J0aW5nIGJ5IG9ubHkgb25lIGV4cHJlc3Npb25cbiAgICAgKiBUaGUgZXhwcmVzc2lvbiBjb250YWlucyBmaWVsZE5hbWUsIHNvcnRpbmcgZGlyZWN0b3J5LCB3aGV0aGVyIGNhc2Ugc2hvdWxkIGJlIGlnbm9yZWQgYW5kIG9wdGlvbmFsIHNvcnRpbmcgc3RyYXRlZ3lcbiAgICAgKi9cbiAgICBzb3J0KGV4cHJlc3Npb246IElTb3J0aW5nRXhwcmVzc2lvbik6IHZvaWQ7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3Igc29ydGluZyBieSBtdWx0aXBsZSBleHByZXNzaW9uc1xuICAgICAqIFRoZSBleHByZXNzaW9ucyBjb250YWlucyBmaWVsZE5hbWUsIHNvcnRpbmcgZGlyZWN0b3J5LCB3aGV0aGVyIGNhc2Ugc2hvdWxkIGJlIGlnbm9yZWQgYW5kIG9wdGlvbmFsIHNvcnRpbmcgc3RyYXRlZ3lcbiAgICAgKi9cbiAgICBzb3J0X211bHRpcGxlKGV4cHJlc3Npb25zOiBJU29ydGluZ0V4cHJlc3Npb25bXSk6IHZvaWQ7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJlc2V0aW5nIHRoZSBzb3J0aW5nICovXG4gICAgY2xlYXJfc29ydChmaWVsZE5hbWU6IHN0cmluZyk6IHZvaWQ7XG5cbiAgICAvKiogUmVwcmVzZW50cyBhbiBldmVudCwgdHJpZ2dlcmVkIHdoZW4gdGhlIHBpbiBzdGF0ZSBpcyBjaGFuZ2VkICovXG4gICAgZ2V0X3Bpbl9yb3dfZXZlbnRfYXJncyhyb3dJRDogYW55LCBpbmRleD86IG51bWJlciwgcm93PzogUm93VHlwZSwgcGlubmVkPzogYm9vbGVhbik6IElQaW5Sb3dFdmVudEFyZ3M7XG5cbiAgICBmaWx0ZXJEYXRhQnlFeHByZXNzaW9ucyhleHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUpOiBhbnlbXTtcbiAgICBzb3J0RGF0YUJ5RXhwcmVzc2lvbnMoZGF0YTogYW55W10sIGV4cHJlc3Npb25zOiBJU29ydGluZ0V4cHJlc3Npb25bXSk6IGFueVtdO1xuXG4gICAgdXBkYXRlX2NlbGwoY2VsbDogSWd4Q2VsbCk6IElHcmlkRWRpdEV2ZW50QXJncztcbiAgICB1cGRhdGVfcm93KHJvdzogSWd4RWRpdFJvdywgdmFsdWU6IGFueSwgZXZlbnQ/OiBFdmVudCk6IElHcmlkRWRpdEV2ZW50QXJncztcblxuICAgIGV4cGFuZF9wYXRoX3RvX3JlY29yZD8ocmVjb3JkOiBJVHJlZUdyaWRSZWNvcmQpOiB2b2lkO1xuICAgIGdldF9zZWxlY3RlZF9jaGlsZHJlbj8ocmVjb3JkOiBJVHJlZUdyaWRSZWNvcmQsIHNlbGVjdGVkUm93SURzOiBhbnlbXSk6IHZvaWQ7XG4gICAgZ2V0X2dyb3VwQnlfcmVjb3JkX2lkPyhnUm93OiBJR3JvdXBCeVJlY29yZCk6IHN0cmluZztcbiAgICByZW1vdmVfZ3JvdXBpbmdfZXhwcmVzc2lvbj8oZmllbGROYW1lOiBzdHJpbmcpOiB2b2lkO1xuICAgIGNsZWFyX2dyb3VwYnk/KGZpZWxkOiBzdHJpbmcgfCBhbnkpOiB2b2lkO1xuICAgIGdldFBhcmVudFJvd0lkPyhjaGlsZDogR3JpZFR5cGUpOiBhbnk7XG4gICAgZ2V0Q2hpbGRHcmlkcz8oaW5EZXB0aD86IGJvb2xlYW4pOiBHcmlkVHlwZVtdO1xuICAgIGdldENoaWxkR3JpZD8ocGF0aDogSVBhdGhTZWdtZW50W10pOiBHcmlkVHlwZTtcblxuICAgIHVuc2V0Q2hpbGRSb3dJc2xhbmQ/KHJvd0lzbGFuZDogR3JpZFR5cGUpOiB2b2lkO1xuICAgIHJlZ2lzdGVyQ2hpbGRSb3dJc2xhbmQ/KHJvd0lzbGFuZDogR3JpZFR5cGUpOiB2b2lkO1xufVxuXG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyBhIGdyaWQgdHlwZS4gSXQgaXMgZXNzZW50aWFsbHkgdGhlIGJsdWVwcmludCB0byBhIGdyaWQgb2JqZWN0LlxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcyBhbmQgbWV0aG9kcywgcmVsZXZhbnQgdG8gYSBncmlkXG4gKiBFeHRlbmRzIGBJR3JpZERhdGFCaW5kYWJsZWBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmlkVHlwZSBleHRlbmRzIElHcmlkRGF0YUJpbmRhYmxlIHtcbiAgICAvKiogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAxNi4xLnguIFBsZWFzZSB1c2UgdGhlIGAtLWlnLXNpemVgIENTUyBjdXN0b20gcHJvcGVydHkuICovXG4gICAgZGlzcGxheURlbnNpdHk6IERpc3BsYXlEZW5zaXR5O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBsb2NhbGUgb2YgdGhlIGRyaWc6IGBVU0RgLCBgRVVSYCwgYEdCUGAsIGBDTllgLCBgSlBZYCwgZXRjLiAqL1xuICAgIGxvY2FsZTogc3RyaW5nO1xuICAgIHJlc291cmNlU3RyaW5nczogSUdyaWRSZXNvdXJjZVN0cmluZ3M7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIG5hdGl2ZSBIVE1MIGVsZW1lbnQgaXRzZWxmICovXG4gICAgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHJvd3MgaW4gdGhlIGdyaWQgYXJlIGVkaXRhYmxlLiBJZiB0ZSB2YWx1ZSBpcyB0cnVlLCB0aGUgcm93cyBjYW4gYmUgZWRpdGVkICovXG4gICAgcm93RWRpdGFibGU6IGJvb2xlYW47XG4gICAgcm9vdFN1bW1hcmllc0VuYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIGZpbHRlcmluZyBpbiB0aGUgZ3JpZCBpcyBlbmFibGVkLiBJZiB0ZSB2YWx1ZSBpcyB0cnVlLCB0aGUgZ3JpZCBjYW4gYmUgZmlsdGVyZWQgKi9cbiAgICBhbGxvd0ZpbHRlcmluZzogYm9vbGVhbjtcbiAgICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHJvd3MgaW4gdGhlIGdyaWQgY2FuIGJlIGRyYWdnZWQuIElmIHRlIHZhbHVlIGlzIHRydWUsIHRoZSByb3dzIGNhbiBiZSBkcmFnZ2VkICovXG4gICAgcm93RHJhZ2dhYmxlOiBib29sZWFuO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSB1bmlxdWUgcHJpbWFyeSBrZXkgdXNlZCBmb3IgaWRlbnRpZnlpbmcgcm93cyBpbiB0aGUgZ3JpZCAqL1xuICAgIHByaW1hcnlLZXk6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGdyaWQuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhlIGhlaWdodCBvZiB0aGUgdmlzaWJsZSByb3dzIGluIHRoZSBncmlkLiAqL1xuICAgIHJlbmRlcmVkUm93SGVpZ2h0OiBudW1iZXI7XG4gICAgcGlwZVRyaWdnZXI6IG51bWJlcjtcbiAgICBzdW1tYXJ5UGlwZVRyaWdnZXI6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBncm91cGFibGVQaXBlVHJpZ2dlcjogbnVtYmVyO1xuICAgIGZpbHRlcmluZ1BpcGVUcmlnZ2VyOiBudW1iZXI7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGFzQ29sdW1uTGF5b3V0czogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGdyaWQgaXMgY3VycmVudGx5IGluIGEgbW92aW5nIHN0YXRlLiAqL1xuICAgIG1vdmluZzogYm9vbGVhbjtcbiAgICBpc0xvYWRpbmc6IGJvb2xlYW47XG5cbiAgICAvKiogU3RyYXRlZ3ksIHVzZWQgZm9yIGNsb25pbmcgdGhlIHByb3ZpZGVkIGRhdGEuIFRoZSB0eXBlIGhhcyBvbmUgbWV0aG9kLCB0aGF0IHRha2VzIGFueSB0eXBlIG9mIGRhdGEgKi9cbiAgICBkYXRhQ2xvbmVTdHJhdGVneTogSURhdGFDbG9uZVN0cmF0ZWd5O1xuXG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGdyaWQgc2VydmljZSB0eXBlIHByb3ZpZGluZyBBUEkgbWV0aG9kcyBmb3IgdGhlIGdyaWQgKi9cbiAgICByZWFkb25seSBncmlkQVBJOiBHcmlkU2VydmljZVR5cGU7XG5cbiAgICAvKiogVGhlIGZpbHRlciBtb2RlIGZvciB0aGUgZ3JpZC4gSXQgY2FuIGJlIHF1aWNrIGZpbHRlciBvZiBleGNlbC1zdHlsZSBmaWx0ZXIgKi9cbiAgICBmaWx0ZXJNb2RlOiBGaWx0ZXJNb2RlO1xuXG4gICAgLy8gVFlQRVxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHRoZWFkUm93OiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZ3JvdXBBcmVhOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZmlsdGVyQ2VsbExpc3Q6IGFueVtdO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGZpbHRlcmluZ1JvdzogYW55O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGFjdGlvblN0cmlwOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcmVzaXplTGluZTogYW55O1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgdGZvb3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBhZ2luYXRvcjogSWd4UGFnaW5hdG9yQ29tcG9uZW50O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBhZ2luYXRvckxpc3Q/OiBRdWVyeUxpc3Q8SWd4UGFnaW5hdG9yQ29tcG9uZW50PjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBjcnVkU2VydmljZTogYW55O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHN1bW1hcnlTZXJ2aWNlOiBhbnk7XG5cblxuXG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIHZpcnR1YWxpemF0aW9uIGZvciB0aGUgZ3JpZC4gSXQgaGFzIGFuIG93bmVyLCBzdGFydCBpbmRleCBhbmQgY2h1bmsgc2l6ZSAqL1xuICAgIHZpcnR1YWxpemF0aW9uU3RhdGU6IElGb3JPZlN0YXRlO1xuICAgIC8vIFRZUEVcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICAvKiogVGhlIHNlcnZpY2UgaGFuZGxpbmcgc2VsZWN0aW9uIGluIHRoZSBncmlkLiBTZWxlY3RpbmcsIGRlc2VsZWN0aW5nIGVsZW1lbnRzICovXG4gICAgc2VsZWN0aW9uU2VydmljZTogYW55O1xuICAgIG5hdmlnYXRpb246IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBmaWx0ZXJpbmdTZXJ2aWNlOiBhbnk7XG4gICAgb3V0bGV0OiBhbnk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBncmlkIGhhcyBjb2x1bW5zIHRoYXQgY2FuIGJlIG1vdmVkICovXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGFzTW92YWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBncmlkJ3Mgcm93cyBjYW4gYmUgc2VsZWN0ZWQgKi9cbiAgICBpc1Jvd1NlbGVjdGFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBzZWxlY3RvcnMgb2YgdGhlIHJvd3MgYXJlIHZpc2libGUgKi9cbiAgICBzaG93Um93U2VsZWN0b3JzOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZ3JpZCdzIGVsZW1lbnQgaXMgcGlubmVkIHRvIHRoZSBzdGFydCBvZiB0aGUgZ3JpZCAqL1xuICAgIGlzUGlubmluZ1RvU3RhcnQ6IGJvb2xlYW47XG4gICAgLyoqIElkaWNhdGVzIGlmIHRoZSBjb2x1bW4gb2YgdGhlIGdyaWQgaXMgaW4gZHJhZyBtb2RlICovXG4gICAgY29sdW1uSW5EcmFnOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgLyoqIFRoZSB3aWR0aCBvZiBwaW5uZWQgZWxlbWVudCAqL1xuICAgIHBpbm5lZFdpZHRoOiBudW1iZXI7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgLyoqIFRoZSB3aWR0aCBvZiB1bnBpbm5lZCBlbGVtZW50ICovXG4gICAgdW5waW5uZWRXaWR0aDogbnVtYmVyO1xuICAgIC8qKiBUaGUgQ1NTIG1hcmdpbiBvZiB0aGUgc3VtbWFyaWVzICovXG4gICAgc3VtbWFyaWVzTWFyZ2luOiBudW1iZXI7XG4gICAgaGVhZFNlbGVjdG9yQmFzZUFyaWFMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBncmlkIGhhcyBjb2x1bW5zIHRoYXQgYXJlIHNob3duICovXG4gICAgaGFzVmlzaWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZ3JpZCBoYXMgZXhwYW5kYWJsZSBjaGlsZHJlbiAoaGllcmFyY2hpY2FsIGFuZCB0cmVlIGdyaWQpXG4gICAgICovXG4gICAgaGFzRXhwYW5kYWJsZUNoaWxkcmVuPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIGNvbGxhcHNlZCBncmlkIGVsZW1lbnRzIHNob3VsZCBiZSBleHBhbmRlZFxuICAgICAqL1xuICAgIHNob3dFeHBhbmRBbGw/OiBib29sZWFuO1xuXG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGNvdW50IG9mIG9ubHkgdGhlIGhpZGRlbiAobm90IHZpc2libGUpIGNvbHVtbnMgKi9cbiAgICBoaWRkZW5Db2x1bW5zQ291bnQ6IG51bWJlcjtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgY291bnQgb2Ygb25seSB0aGUgcGlubmVkIGNvbHVtbnMgKi9cbiAgICBwaW5uZWRDb2x1bW5zQ291bnQ6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBncmlkIGljb25zLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBpY29uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBncm91cC1ieSByb3dzLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBncm91cFJvd1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8SWd4R3JvdXBCeVJvd1RlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIHRoZSBncm91cCByb3cgc2VsZWN0b3IuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGdyb3VwQnlSb3dTZWxlY3RvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8SWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3Igcm93IGxvYWRpbmcgaW5kaWNhdG9ycy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgcm93TG9hZGluZ0luZGljYXRvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgc2VsZWN0b3IuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGhlYWRTZWxlY3RvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hIZWFkU2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3Igcm93IHNlbGVjdG9ycy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgcm93U2VsZWN0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3Igc29ydCBoZWFkZXIgaWNvbnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIHNvcnRIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRIZWFkZXJUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgYXNjZW5kaW5nIHNvcnQgaGVhZGVyIGljb25zLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBzb3J0QXNjZW5kaW5nSGVhZGVySWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkSGVhZGVyVGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGRlc2NlbmRpbmcgc29ydCBoZWFkZXIgaWNvbnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIHNvcnREZXNjZW5kaW5nSGVhZGVySWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkSGVhZGVyVGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGhlYWRlciBjb2xsYXBzZWQgaW5kaWNhdG9ycy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgaGVhZGVyQ29sbGFwc2VkSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgaGVhZGVyIGV4cGFuZGVkIGluZGljYXRvcnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGhlYWRlckV4cGFuZGVkSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKiBUaGUgdGVtcGxhdGUgZm9yIGRyYWcgaW5kaWNhdG9yIGljb25zLiBDb3VsZCBiZSBvZiBhbnkgdHlwZSAqL1xuICAgIGRyYWdJbmRpY2F0b3JJY29uVGVtcGxhdGU6IGFueTtcbiAgICAvKiogVGhlIGJhc2UgZHJhZyBpbmRpY2F0b3IgaWNvbi4gQ291bGQgYmUgb2YgYW55IHR5cGUgKi9cbiAgICBkcmFnSW5kaWNhdG9ySWNvbkJhc2U6IGFueTtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdHJhbnNpdGlvbnMgYXJlIGRpc2FibGVkIGZvciB0aGUgZ3JpZC4gKi9cbiAgICBkaXNhYmxlVHJhbnNpdGlvbnM6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW5jeSBzeW1ib2wgaXMgcG9zaXRpb25lZCB0byB0aGUgbGVmdCBvZiB2YWx1ZXMuICovXG4gICAgY3VycmVuY3lQb3NpdGlvbkxlZnQ6IGJvb2xlYW47XG5cbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gaXMgc2V0IGJ5IHRoZSB1c2VyLCBvciBpcyBjb25maWd1cmVkIGF1dG9tYXRpY2FsbHkuICovXG4gICAgY29sdW1uV2lkdGhTZXRCeVVzZXI6IGJvb2xlYW47XG4gICAgaGVhZGVyRmVhdHVyZXNXaWR0aDogbnVtYmVyO1xuICAgIC8qKiBDU1Mgc3R5bGluZyBjYWxjdWxhdGVkIGZvciBhbiBlbGVtZW50OiBjYWxjSGVpZ2h0LCBjYWxjV2lkdGgsIG91dGVyV2lkdGggKi9cbiAgICBjYWxjSGVpZ2h0OiBudW1iZXI7XG4gICAgY2FsY1dpZHRoOiBudW1iZXI7XG4gICAgb3V0ZXJXaWR0aDogbnVtYmVyO1xuICAgIC8qKiBUaGUgaGVpZ2h0IG9mIGVhY2ggcm93IGluIHRoZSBncmlkLiBTZXR0aW5nIGEgY29uc3RhbnQgaGVpZ2h0IGNhbiBzb2x2ZSBwcm9ibGVtcyB3aXRoIG5vdCBzaG93aW5nIGFsbCBhbGVtZW50cyB3aGVuIHNjcm9sbGluZyAqL1xuICAgIHJvd0hlaWdodDogbnVtYmVyO1xuICAgIG11bHRpUm93TGF5b3V0Um93U2l6ZTogbnVtYmVyO1xuICAgIC8qKiBNaW5pbWFsIHdpZHRoIGZvciBoZWFkZXJzICovXG4gICAgZGVmYXVsdEhlYWRlckdyb3VwTWluV2lkdGg6IGFueTtcbiAgICBtYXhMZXZlbEhlYWRlckRlcHRoOiBudW1iZXI7XG4gICAgZGVmYXVsdFJvd0hlaWdodDogbnVtYmVyO1xuICAgIC8qKiBUaGUgZGVmYXVsdCBmb250IHNpemUsIGNhbGN1bGF0ZWQgZm9yIGVhY2ggZWxlbWVudCAqL1xuICAgIF9iYXNlRm9udFNpemU/OiBudW1iZXI7XG4gICAgc2Nyb2xsU2l6ZTogbnVtYmVyO1xuXG4gICAgLyoqIFRoZSB0cmlnZ2VyIGZvciBncmlkIHZhbGlkYXRpb24uIEl0J3MgdmFsdWUgY2FuIGVpZ2h0ZXIgYmUgYGNoYW5nZWAgb3IgYGJsdXJgICovXG4gICAgdmFsaWRhdGlvblRyaWdnZXI6IEdyaWRWYWxpZGF0aW9uVHJpZ2dlcjtcbiAgICAvKipcbiAgICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgY29sdW1ucyBhbmQgcm93cyBwaW5uaW5nIGluIHRoZSBncmlkXG4gICAgICogSXQncyBvZiB0eXBlIElQaW5uaW5nQ29uZmlnLCB3aGljaCBjYW4gaGF2ZSB2YWx1ZSBmb3IgY29sdW1ucyAoc3RhcnQsIGVuZCkgYW5kIGZvciByb3dzICh0b3AsIGJvdHRvbSlcbiAgICAqL1xuICAgIHBpbm5pbmc6IElQaW5uaW5nQ29uZmlnO1xuICAgIGV4cGFuc2lvblN0YXRlczogTWFwPGFueSwgYm9vbGVhbj47XG4gICAgcGFyZW50VmlydERpcjogYW55O1xuICAgIHRib2R5OiBhbnk7XG4gICAgdmVydGljYWxTY3JvbGxDb250YWluZXI6IGFueTtcbiAgICBkYXRhUm93TGlzdDogYW55O1xuICAgIHJvd0xpc3Q6IGFueTtcbiAgICAvKiogQW4gdW5tb2RpZmlhYmxlIGxpc3QsIGNvbnRhaW5pbmcgYWxsIHRoZSBjb2x1bW5zIG9mIHRoZSBncmlkLiAqL1xuICAgIGNvbHVtbkxpc3Q6IFF1ZXJ5TGlzdDxDb2x1bW5UeXBlPjtcbiAgICBjb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgLyoqIEFuIGFycmF5IG9mIGNvbHVtbnMsIGJ1dCBpdCBjb3VudHMgb25seSB0aGUgb25lcyB2aXNpYmxlIChub3QgaGlkZGVuKSBpbiB0aGUgdmlldyAqL1xuICAgIHZpc2libGVDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgLyoqIEFuIGFycmF5IG9mIGNvbHVtbnMsIGJ1dCBpdCBjb3VudHMgb25seSB0aGUgb25lcyB0aGF0IGFyZSBub3QgcGlubmVkICovXG4gICAgdW5waW5uZWRDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgLyoqIEFuIGFycmF5IG9mIGNvbHVtbnMsIGJ1dCBpdCBjb3VudHMgb25seSB0aGUgb25lcyB0aGF0IGFyZSBwaW5uZWQgKi9cbiAgICBwaW5uZWRDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgLyoqIHJlcHJlc2VudHMgYW4gYXJyYXkgb2YgdGhlIGhlYWRlcnMgb2YgdGhlIGNvbHVtbnMgKi9cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoZWFkZXJDZWxsTGlzdDogYW55W107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGVhZGVyR3JvdXBzOiBhbnlbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoZWFkZXJHcm91cHNMaXN0OiBhbnlbXTtcbiAgICBzdW1tYXJpZXNSb3dMaXN0OiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGVhZGVyQ29udGFpbmVyOiBhbnk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIGNlbGxzIGFyZSBzZWxlY3RhYmxlIGluIHRoZSBncmlkICovXG4gICAgaXNDZWxsU2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgaXQgaXMgYWxsb3dlZCB0byBzZWxlY3QgbW9yZSB0aGFuIG9uZSByb3cgaW4gdGhlIGdyaWQgKi9cbiAgICBpc011bHRpUm93U2VsZWN0aW9uRW5hYmxlZDogYm9vbGVhbjtcbiAgICBoYXNQaW5uZWRSZWNvcmRzOiBib29sZWFuO1xuICAgIHBpbm5lZFJlY29yZHNDb3VudDogbnVtYmVyO1xuICAgIHBpbm5lZFJlY29yZHM6IGFueVtdO1xuICAgIHVucGlubmVkUmVjb3JkczogYW55W107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGlubmVkRGF0YVZpZXc6IGFueVtdO1xuICAgIHBpbm5lZFJvd3M6IGFueVtdO1xuICAgIGRhdGFWaWV3OiBhbnlbXTtcbiAgICBfZmlsdGVyZWRVbnBpbm5lZERhdGE6IGFueVtdO1xuICAgIF9maWx0ZXJlZFNvcnRlZFVucGlubmVkRGF0YTogYW55W107XG4gICAgZmlsdGVyZWRTb3J0ZWREYXRhOiBhbnlbXTtcbiAgICBkYXRhV2l0aEFkZGVkSW5UcmFuc2FjdGlvblJvd3M6IGFueVtdO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSB0cmFuc2FjdGlvbiBzZXJ2aWNlIGZvciB0aGUgZ3JpZC4gKi9cbiAgICByZWFkb25seSB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uU2VydmljZTxUcmFuc2FjdGlvbiwgU3RhdGU+O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSB2YWxpZGF0aW9uIHNlcnZpY2UgZm9yIHRoZSBncmlkLiBUaGUgdHlwZSBjb250YWlucyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIChsb2dpYykgZm9yIHZhbGlkYXRpbmcgcmVjb3JkcyAqL1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb246IElneEdyaWRWYWxpZGF0aW9uU2VydmljZTtcbiAgICBkZWZhdWx0U3VtbWFyeUhlaWdodDogbnVtYmVyO1xuICAgIHN1bW1hcnlSb3dIZWlnaHQ6IG51bWJlcjtcbiAgICByb3dFZGl0aW5nT3ZlcmxheTogSWd4VG9nZ2xlRGlyZWN0aXZlO1xuICAgIHRvdGFsUm93c0NvdW50QWZ0ZXJGaWx0ZXI6IG51bWJlcjtcbiAgICBfdG90YWxSZWNvcmRzOiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgcGFnaW5nIG9mIHRoZSBncmlkLiBJdCBjYW4gYmUgZWlnaHRlciAnTG9jYWwnIG9yICdSZW1vdGUnXG4gICAgICogLSBMb2NhbDogRGVmYXVsdCB2YWx1ZTsgVGhlIGdyaWQgd2lsbCBwYWdpbmF0ZSB0aGUgZGF0YSBzb3VyY2UgYmFzZWQgb24gdGhlIHBhZ2VcbiAgICAgKi9cbiAgICBwYWdpbmdNb2RlOiBHcmlkUGFnaW5nTW9kZTtcbiAgICAvKiogVGhlIHBhZ2luZyBzdGF0ZSBmb3IgdGhlIGdyaWQ7IFVzZWQgdG8gY29uZmlndXJlIGhvdyBwYWdpbmcgc2hvdWxkIGJlIGFwcGxpZWQgLSB3aGljaCBpcyB0aGUgY3VycmVudCBwYWdlLCByZWNvcmRzIHBlciBwYWdlICovXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwYWdpbmdTdGF0ZTogYW55O1xuXG4gICAgcm93RWRpdFRhYnM6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgbGFzdCBzZWFyY2ggaW4gdGhlIGdyaWRcbiAgICAgKiBJdCBjb250YWlucyB0aGUgc2VhcmNoIHRleHQgKHRoZSB1c2VyIGhhcyBlbnRlcmVkKSwgdGhlIG1hdGNoIGFuZCBzb21lIHNldHRpbmdzIGZvciB0aGUgc2VhcmNoXG4gICAgICovXG4gICAgbGFzdFNlYXJjaEluZm86IElTZWFyY2hJbmZvO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBhZ2U6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwZXJQYWdlOiBudW1iZXI7XG4gICAgLyoqIFRoZSBJRCBvZiB0aGUgcm93IGN1cnJlbnRseSBiZWluZyBkcmFnZ2VkIGluIHRoZSBncmlkLiAqL1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGRyYWdSb3dJRDogYW55O1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciBhIHJvdyBpcyBjdXJyZW50bHkgYmVpbmcgZHJhZ2dlZCAqL1xuICAgIHJvd0RyYWdnaW5nOiBib29sZWFuO1xuXG4gICAgZmlyc3RFZGl0YWJsZUNvbHVtbkluZGV4OiBudW1iZXI7XG4gICAgbGFzdEVkaXRhYmxlQ29sdW1uSW5kZXg6IG51bWJlcjtcbiAgICBpc1Jvd1Bpbm5pbmdUb1RvcDogYm9vbGVhbjtcbiAgICBoYXNEZXRhaWxzOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhhc1N1bW1hcml6ZWRDb2x1bW5zOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhhc0NvbHVtbkdyb3VwczogYm9vbGVhbjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoYXNFZGl0YWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgLyoqIFByb3BlcnR5LCB0aGF0IHByb3ZpZGVzIGEgY2FsbGJhY2sgZm9yIGxvYWRpbmcgdW5pcXVlIGNvbHVtbiB2YWx1ZXMgb24gZGVtYW5kLlxuICAgICAqIElmIHRoaXMgcHJvcGVydHkgaXMgcHJvdmlkZWQsIHRoZSB1bmlxdWUgdmFsdWVzIGl0IGdlbmVyYXRlcyB3aWxsIGJlIHVzZWQgYnkgdGhlIEV4Y2VsIFN0eWxlIEZpbHRlcmluZyAgKi9cbiAgICB1bmlxdWVDb2x1bW5WYWx1ZXNTdHJhdGVneTogKGNvbHVtbjogQ29sdW1uVHlwZSwgdHJlZTogRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlLCBkb25lOiAodmFsdWVzOiBhbnlbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICAvKiogUHJvcGVydHksIHRoYXQgZ2V0cyB0aGUgaGVhZGVyIGNlbGwgaW5uZXIgd2lkdGggZm9yIGF1dG8tc2l6aW5nLiAqL1xuICAgIGdldEhlYWRlckNlbGxXaWR0aDogKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiBJU2l6ZUluZm87XG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBjaGFuZ2UgZGV0ZWN0aW9uIGZ1bmN0aW9uYWxpdHkuXG4gICAgICogQSBjaGFuZ2UtZGV0ZWN0aW9uIHRyZWUgY29sbGVjdHMgYWxsIHZpZXdzIHRoYXQgYXJlIHRvIGJlIGNoZWNrZWQgZm9yIGNoYW5nZXMuXG4gICAgICogVGhlIHByb3BlcnR5IGNhbm5vdCBiZSBjaGFuZ2VkIChyZWFkb25seSkgKi9cbiAgICByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGRvY3VtZW50OiBEb2N1bWVudDtcbiAgICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBleHBhbmRlZCByb3cgaW5kaWNhdG9ycy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgcm93RXhwYW5kZWRJbmRpY2F0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZFJvd1RlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBjb2xsYXBzZWQgcm93IGluZGljYXRvcnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIHJvd0NvbGxhcHNlZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkUm93VGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGhlYWRlciBpY29uXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGV4Y2VsU3R5bGVIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRIZWFkZXJUZW1wbGF0ZUNvbnRleHQ+O1xuXG4gICAgc2VsZWN0Um93T25DbGljazogYm9vbGVhbjtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgc2VsZWN0aW9uIG1vZGUgZm9yIGNlbGxzOiAnbm9uZScsJ3NpbmdsZScsICdtdWx0aXBsZScsICdtdWx0aXBsZUNhc2NhZGUnICovXG4gICAgY2VsbFNlbGVjdGlvbjogR3JpZFNlbGVjdGlvbk1vZGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHNlbGVjdGlvbiBtb2RlIGZvciByb3dzOiAnbm9uZScsJ3NpbmdsZScsICdtdWx0aXBsZScsICdtdWx0aXBsZUNhc2NhZGUnICovXG4gICAgcm93U2VsZWN0aW9uOiBHcmlkU2VsZWN0aW9uTW9kZTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgc2VsZWN0aW9uIG1vZGUgZm9yIGNvbHVtbnM6ICdub25lJywnc2luZ2xlJywgJ211bHRpcGxlJywgJ211bHRpcGxlQ2FzY2FkZScgKi9cbiAgICBjb2x1bW5TZWxlY3Rpb246IEdyaWRTZWxlY3Rpb25Nb2RlO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBjYWxjdWxhdGlvbiBtb2RlIGZvciBzdW1tYXJpZXM6ICdyb290TGV2ZWxPbmx5JywgJ2NoaWxkTGV2ZWxzT25seScsICdyb290QW5kQ2hpbGRMZXZlbHMnICovXG4gICAgc3VtbWFyeUNhbGN1bGF0aW9uTW9kZTogR3JpZFN1bW1hcnlDYWxjdWxhdGlvbk1vZGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHBvc2l0aW9uIG9mIHN1bW1hcmllczogJ3RvcCcsICdib3R0b20nICovXG4gICAgc3VtbWFyeVBvc2l0aW9uOiBHcmlkU3VtbWFyeVBvc2l0aW9uO1xuXG4gICAgLy8gWFhYOiBXb3JrIGFyb3VuZCB0aWxsIHdlIGZpeGVkIHRoZSBpbmplY3Rpb24gdG9rZW5zXG4gICAgbGFzdENoaWxkR3JpZD86IEdyaWRUeXBlO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHRvb2xiYXJPdXRsZXQ/OiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBhZ2luYXRvck91dGxldD86IFZpZXdDb250YWluZXJSZWY7XG4gICAgZmxhdERhdGE/OiBhbnlbXSB8IG51bGw7XG4gICAgY2hpbGRSb3c/OiBhbnk7XG4gICAgZXhwYW5zaW9uRGVwdGg/OiBudW1iZXI7XG4gICAgY2hpbGREYXRhS2V5PzogYW55O1xuICAgIGZvcmVpZ25LZXk/OiBhbnk7XG4gICAgY2FzY2FkZU9uRGVsZXRlPzogYm9vbGVhbjtcbiAgICBsb2FkQ2hpbGRyZW5PbkRlbWFuZD86IChwYXJlbnRJRDogYW55LCBkb25lOiAoY2hpbGRyZW46IGFueVtdKSA9PiB2b2lkKSA9PiB2b2lkO1xuICAgIGhhc0NoaWxkcmVuS2V5PzogYW55O1xuICAgIGxvYWRpbmdSb3dzPzogU2V0PGFueT47XG4gICAgcGFyZW50PzogR3JpZFR5cGU7XG4gICAgaGlnaGxpZ2h0ZWRSb3dJRD86IGFueTtcbiAgICB1cGRhdGVPblJlbmRlcj86IGJvb2xlYW47XG4gICAgY2hpbGRMYXlvdXRLZXlzPzogYW55W107XG4gICAgY2hpbGRMYXlvdXRMaXN0PzogUXVlcnlMaXN0PGFueT47XG4gICAgcm9vdEdyaWQ/OiBHcmlkVHlwZTtcbiAgICBwcm9jZXNzZWRSb290UmVjb3Jkcz86IElUcmVlR3JpZFJlY29yZFtdO1xuICAgIHJvb3RSZWNvcmRzPzogSVRyZWVHcmlkUmVjb3JkW107XG4gICAgcmVjb3Jkcz86IE1hcDxhbnksIElUcmVlR3JpZFJlY29yZD47XG4gICAgcHJvY2Vzc2VkRXhwYW5kZWRGbGF0RGF0YT86IGFueVtdIHwgbnVsbDtcbiAgICBwcm9jZXNzZWRSZWNvcmRzPzogTWFwPGFueSwgSVRyZWVHcmlkUmVjb3JkPjtcbiAgICB0cmVlR3JvdXBBcmVhPzogYW55O1xuXG4gICAgYWN0aXZlTm9kZUNoYW5nZTogRXZlbnRFbWl0dGVyPElBY3RpdmVOb2RlQ2hhbmdlRXZlbnRBcmdzPjtcbiAgICBncmlkS2V5ZG93bjogRXZlbnRFbWl0dGVyPElHcmlkS2V5ZG93bkV2ZW50QXJncz47XG4gICAgY2VsbENsaWNrOiBFdmVudEVtaXR0ZXI8SUdyaWRDZWxsRXZlbnRBcmdzPjtcbiAgICBkb3VibGVDbGljazogRXZlbnRFbWl0dGVyPElHcmlkQ2VsbEV2ZW50QXJncz47XG4gICAgY29udGV4dE1lbnU6IEV2ZW50RW1pdHRlcjxJR3JpZENlbGxFdmVudEFyZ3M+O1xuICAgIHNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8SUdyaWRDZWxsRXZlbnRBcmdzPjtcbiAgICByYW5nZVNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8R3JpZFNlbGVjdGlvblJhbmdlPjtcbiAgICByb3dTZWxlY3Rpb25DaGFuZ2luZzogRXZlbnRFbWl0dGVyPElSb3dTZWxlY3Rpb25FdmVudEFyZ3M+O1xuICAgIGxvY2FsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuICAgIGZpbHRlcmluZzogRXZlbnRFbWl0dGVyPElGaWx0ZXJpbmdFdmVudEFyZ3M+O1xuICAgIGZpbHRlcmluZ0RvbmU6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlPjtcbiAgICBjb2x1bW5QaW5uZWQ6IEV2ZW50RW1pdHRlcjxJUGluQ29sdW1uRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5SZXNpemVkOiBFdmVudEVtaXR0ZXI8SUNvbHVtblJlc2l6ZUV2ZW50QXJncz47XG4gICAgY29sdW1uTW92aW5nRW5kOiBFdmVudEVtaXR0ZXI8SUNvbHVtbk1vdmluZ0VuZEV2ZW50QXJncz47XG4gICAgY29sdW1uU2VsZWN0aW9uQ2hhbmdpbmc6IEV2ZW50RW1pdHRlcjxJQ29sdW1uU2VsZWN0aW9uRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5Nb3Zpbmc6IEV2ZW50RW1pdHRlcjxJQ29sdW1uTW92aW5nRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5Nb3ZpbmdTdGFydDogRXZlbnRFbWl0dGVyPElDb2x1bW5Nb3ZpbmdTdGFydEV2ZW50QXJncz47XG4gICAgY29sdW1uUGluOiBFdmVudEVtaXR0ZXI8SVBpbkNvbHVtbkNhbmNlbGxhYmxlRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5WaXNpYmlsaXR5Q2hhbmdpbmc6IEV2ZW50RW1pdHRlcjxJQ29sdW1uVmlzaWJpbGl0eUNoYW5naW5nRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5WaXNpYmlsaXR5Q2hhbmdlZDogRXZlbnRFbWl0dGVyPElDb2x1bW5WaXNpYmlsaXR5Q2hhbmdlZEV2ZW50QXJncz47XG4gICAgYmF0Y2hFZGl0aW5nQ2hhbmdlPzogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuICAgIGRlbnNpdHlDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8SURlbnNpdHlDaGFuZ2VkRXZlbnRBcmdzPjtcbiAgICByb3dBZGQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIHJvd0FkZGVkOiBFdmVudEVtaXR0ZXI8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIHJvd0FkZGVkTm90aWZpZXI6IFN1YmplY3Q8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIHJvd0RlbGV0ZWQ6IEV2ZW50RW1pdHRlcjxJUm93RGF0YUV2ZW50QXJncz47XG4gICAgcm93RGVsZXRlZE5vdGlmaWVyOiBTdWJqZWN0PElSb3dEYXRhRXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdEVudGVyOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdDogRXZlbnRFbWl0dGVyPElHcmlkRWRpdEV2ZW50QXJncz47XG4gICAgY2VsbEVkaXREb25lOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgY2VsbEVkaXRFeGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgcm93RWRpdEVudGVyOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICByb3dFZGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICByb3dFZGl0RG9uZTogRXZlbnRFbWl0dGVyPElHcmlkRWRpdERvbmVFdmVudEFyZ3M+O1xuICAgIHJvd0VkaXRFeGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgcm93RHJhZ1N0YXJ0OiBFdmVudEVtaXR0ZXI8SVJvd0RyYWdTdGFydEV2ZW50QXJncz47XG4gICAgcm93RHJhZ0VuZDogRXZlbnRFbWl0dGVyPElSb3dEcmFnRW5kRXZlbnRBcmdzPjtcbiAgICByb3dUb2dnbGU6IEV2ZW50RW1pdHRlcjxJUm93VG9nZ2xlRXZlbnRBcmdzPjtcbiAgICBmb3JtR3JvdXBDcmVhdGVkOiBFdmVudEVtaXR0ZXI8SUdyaWRGb3JtR3JvdXBDcmVhdGVkRXZlbnRBcmdzPjtcbiAgICB2YWxpZGF0aW9uU3RhdHVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUdyaWRWYWxpZGF0aW9uU3RhdHVzRXZlbnRBcmdzPjtcblxuICAgIHRvb2xiYXJFeHBvcnRpbmc6IEV2ZW50RW1pdHRlcjxJR3JpZFRvb2xiYXJFeHBvcnRFdmVudEFyZ3M+O1xuICAgIHJlbmRlcmVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICByZXNpemVOb3RpZnk6IFN1YmplY3Q8dm9pZD47XG5cbiAgICBzb3J0U3RyYXRlZ3k6IElHcmlkU29ydGluZ1N0cmF0ZWd5O1xuICAgIGdyb3VwU3RyYXRlZ3k/OiBJR3JpZEdyb3VwaW5nU3RyYXRlZ3k7XG4gICAgZmlsdGVyaW5nTG9naWM6IEZpbHRlcmluZ0xvZ2ljO1xuICAgIGZpbHRlclN0cmF0ZWd5OiBJRmlsdGVyaW5nU3RyYXRlZ3k7XG4gICAgYWxsb3dBZHZhbmNlZEZpbHRlcmluZzogYm9vbGVhbjtcbiAgICBzb3J0aW5nRXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdO1xuICAgIHNvcnRpbmdFeHByZXNzaW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPElTb3J0aW5nRXhwcmVzc2lvbltdPjtcbiAgICBmaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU7XG4gICAgZmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZT47XG4gICAgYWR2YW5jZWRGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU7XG4gICAgYWR2YW5jZWRGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlPjtcbiAgICBzb3J0aW5nT3B0aW9uczogSVNvcnRpbmdPcHRpb25zO1xuXG4gICAgYmF0Y2hFZGl0aW5nOiBib29sZWFuO1xuICAgIGdyb3VwaW5nRXhwYW5zaW9uU3RhdGU/OiBJR3JvdXBCeUV4cGFuZFN0YXRlW107XG4gICAgZ3JvdXBpbmdFeHByZXNzaW9ucz86IElHcm91cGluZ0V4cHJlc3Npb25bXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zQ2hhbmdlPzogRXZlbnRFbWl0dGVyPElHcm91cGluZ0V4cHJlc3Npb25bXT47XG4gICAgZ3JvdXBzRXhwYW5kZWQ/OiBib29sZWFuO1xuICAgIHJlYWRvbmx5IGdyb3Vwc1JlY29yZHM/OiBJR3JvdXBCeVJlY29yZFtdO1xuICAgIGdyb3VwaW5nRmxhdFJlc3VsdD86IGFueVtdO1xuICAgIGdyb3VwaW5nUmVzdWx0PzogYW55W107XG4gICAgZ3JvdXBpbmdNZXRhZGF0YT86IGFueVtdO1xuICAgIHNlbGVjdGVkQ2VsbHM/OiBDZWxsVHlwZVtdO1xuICAgIHNlbGVjdGVkUm93czogYW55W107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgYWN0aXZlRGVzY2VuZGFudD86IHN0cmluZztcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBpc1Bpdm90PzogYm9vbGVhbjtcblxuICAgIHRvZ2dsZUdyb3VwPyhncm91cFJvdzogSUdyb3VwQnlSZWNvcmQpOiB2b2lkO1xuICAgIGNsZWFyR3JvdXBpbmc/KGZpZWxkOiBzdHJpbmcpOiB2b2lkO1xuICAgIGdyb3VwQnk/KGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24gfCBBcnJheTxJR3JvdXBpbmdFeHByZXNzaW9uPik6IHZvaWQ7XG4gICAgcmVzb2x2ZU91dGxldD8oKTogSWd4T3ZlcmxheU91dGxldERpcmVjdGl2ZTtcbiAgICB1cGRhdGVDb2x1bW5zKGNvbHVtbnM6IENvbHVtblR5cGVbXSk6IHZvaWQ7XG4gICAgZ2V0U2VsZWN0ZWRSYW5nZXMoKTogR3JpZFNlbGVjdGlvblJhbmdlW107XG4gICAgZGVzZWxlY3RBbGxDb2x1bW5zKCk6IHZvaWQ7XG4gICAgZGVzZWxlY3RDb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdIHwgQ29sdW1uVHlwZVtdKTogdm9pZDtcbiAgICBzZWxlY3RDb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdIHwgQ29sdW1uVHlwZVtdKTogdm9pZDtcbiAgICBzZWxlY3RlZENvbHVtbnMoKTogQ29sdW1uVHlwZVtdO1xuICAgIHJlZnJlc2hTZWFyY2goKTogdm9pZDtcbiAgICBnZXREZWZhdWx0RXhwYW5kU3RhdGUocmVjb3JkOiBhbnkpOiBib29sZWFuO1xuICAgIHRyYWNrQ29sdW1uQ2hhbmdlcyhpbmRleDogbnVtYmVyLCBjb2x1bW46IGFueSk6IGFueTtcbiAgICBnZXRQb3NzaWJsZUNvbHVtbldpZHRoKCk6IHN0cmluZztcbiAgICByZXNldEhvcml6b250YWxWaXJ0dWFsaXphdGlvbigpOiB2b2lkO1xuICAgIGhhc1ZlcnRpY2FsU2Nyb2xsKCk6IGJvb2xlYW47XG4gICAgZ2V0VmlzaWJsZUNvbnRlbnRIZWlnaHQoKTogbnVtYmVyO1xuICAgIGdldERyYWdHaG9zdEN1c3RvbVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICAgIG9wZW5Sb3dPdmVybGF5KGlkOiBhbnkpOiB2b2lkO1xuICAgIG9wZW5BZHZhbmNlZEZpbHRlcmluZ0RpYWxvZygpOiB2b2lkO1xuICAgIHNob3dTbmFja2JhckZvcihpbmRleDogbnVtYmVyKTogdm9pZDtcbiAgICBnZXRDb2x1bW5CeU5hbWUobmFtZTogc3RyaW5nKTogYW55O1xuICAgIGdldENvbHVtbkJ5VmlzaWJsZUluZGV4KGluZGV4OiBudW1iZXIpOiBDb2x1bW5UeXBlO1xuICAgIGdldEhlYWRlckdyb3VwV2lkdGgoY29sdW1uOiBDb2x1bW5UeXBlKTogc3RyaW5nO1xuICAgIGdldFJvd0J5S2V5PyhrZXk6IGFueSk6IFJvd1R5cGU7XG4gICAgZ2V0Um93QnlJbmRleD8oaW5kZXg6IG51bWJlcik6IFJvd1R5cGU7XG4gICAgc2V0RmlsdGVyZWREYXRhKGRhdGE6IGFueSwgcGlubmVkOiBib29sZWFuKTogdm9pZDtcbiAgICBzZXRGaWx0ZXJlZFNvcnRlZERhdGEoZGF0YTogYW55LCBwaW5uZWQ6IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNvcnQoZXhwcmVzc2lvbjogSVNvcnRpbmdFeHByZXNzaW9uIHwgSVNvcnRpbmdFeHByZXNzaW9uW10pOiB2b2lkO1xuICAgIGNsZWFyU29ydChuYW1lPzogc3RyaW5nKTogdm9pZDtcbiAgICBwaW5Sb3coaWQ6IGFueSwgaW5kZXg/OiBudW1iZXIsIHJvdz86IFJvd1R5cGUpOiBib29sZWFuO1xuICAgIHVucGluUm93KGlkOiBhbnksIHJvdz86IFJvd1R5cGUpOiBib29sZWFuO1xuICAgIGdldFVucGlubmVkSW5kZXhCeUlkKGlkOiBhbnkpOiBudW1iZXI7XG4gICAgZ2V0RW1wdHlSZWNvcmRPYmplY3RGb3IoaW5Sb3c6IFJvd1R5cGUpOiBhbnk7XG4gICAgaXNTdW1tYXJ5Um93KHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc1JlY29yZFBpbm5lZChyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgZ2V0SW5pdGlhbFBpbm5lZEluZGV4KHJlYzogYW55KTogbnVtYmVyO1xuICAgIGlzUmVjb3JkUGlubmVkQnlWaWV3SW5kZXgocm93SW5kZXg6IG51bWJlcik6IGJvb2xlYW47XG4gICAgaXNDb2x1bW5Hcm91cGVkKGZpZWxkTmFtZTogc3RyaW5nKTogYm9vbGVhbjtcbiAgICBpc0RldGFpbFJlY29yZChyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgaXNHcm91cEJ5UmVjb3JkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc0dob3N0UmVjb3JkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc1RyZWVSb3c/KHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc0NoaWxkR3JpZFJlY29yZD8ocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGdldENoaWxkR3JpZHM/KGluRGVwdGg/OiBib29sZWFuKTogYW55W107XG4gICAgaXNIaWVyYXJjaGljYWxSZWNvcmQ/KHJlY29yZDogYW55KTogYm9vbGVhbjtcbiAgICBjb2x1bW5Ub1Zpc2libGVJbmRleChrZXk6IHN0cmluZyB8IG51bWJlcik6IG51bWJlcjtcbiAgICBtb3ZlQ29sdW1uKGNvbHVtbjogQ29sdW1uVHlwZSwgdGFyZ2V0OiBDb2x1bW5UeXBlLCBwb3M6IERyb3BQb3NpdGlvbik6IHZvaWQ7XG4gICAgbmF2aWdhdGVUbyhyb3dJbmRleDogbnVtYmVyLCB2aXNpYmxlQ29sdW1uSW5kZXg6IG51bWJlciwgY2FsbGJhY2s/OiAoZTogYW55KSA9PiBhbnkpOiB2b2lkO1xuICAgIGdldFByZXZpb3VzQ2VsbChjdXJyUm93SW5kZXg6IG51bWJlciwgY3VyVmlzaWJsZUNvbEluZGV4OiBudW1iZXIsIGNhbGxiYWNrOiAoYzogQ29sdW1uVHlwZSkgPT4gYm9vbGVhbik6IElDZWxsUG9zaXRpb247XG4gICAgZ2V0TmV4dENlbGwoY3VyclJvd0luZGV4OiBudW1iZXIsIGN1clZpc2libGVDb2xJbmRleDogbnVtYmVyLCBjYWxsYmFjazogKGM6IENvbHVtblR5cGUpID0+IGJvb2xlYW4pOiBJQ2VsbFBvc2l0aW9uO1xuICAgIGNsZWFyQ2VsbFNlbGVjdGlvbigpOiB2b2lkO1xuICAgIHNlbGVjdFJhbmdlKHJhbmdlOiBHcmlkU2VsZWN0aW9uUmFuZ2UgfCBHcmlkU2VsZWN0aW9uUmFuZ2VbXSk6IHZvaWQ7XG4gICAgc2VsZWN0Um93cyhyb3dJRHM6IGFueVtdLCBjbGVhckN1cnJlbnRTZWxlY3Rpb24/OiBib29sZWFuKTogdm9pZDtcbiAgICBkZXNlbGVjdFJvd3Mocm93SURzOiBhbnlbXSk6IHZvaWQ7XG4gICAgc2VsZWN0QWxsUm93cyhvbmx5RmlsdGVyRGF0YT86IGJvb2xlYW4pOiB2b2lkO1xuICAgIGRlc2VsZWN0QWxsUm93cyhvbmx5RmlsdGVyRGF0YT86IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNldFVwUGFnaW5hdG9yKCk6IHZvaWQ7XG4gICAgY3JlYXRlRmlsdGVyRHJvcGRvd24oY29sdW1uOiBDb2x1bW5UeXBlLCBvcHRpb25zOiBPdmVybGF5U2V0dGluZ3MpOiBhbnk7XG4gICAgdXBkYXRlQ2VsbCh2YWx1ZTogYW55LCByb3dTZWxlY3RvcjogYW55LCBjb2x1bW46IHN0cmluZyk6IHZvaWQ7XG4gICAgLy8gVHlwZSB0byBSb3dUeXBlXG4gICAgY3JlYXRlUm93PyhpbmRleDogbnVtYmVyLCBkYXRhPzogYW55KTogUm93VHlwZTtcbiAgICBkZWxldGVSb3coaWQ6IGFueSk6IGFueTtcbiAgICBkZWxldGVSb3dCeUlkKGlkOiBhbnkpOiBhbnk7XG4gICAgdXBkYXRlUm93KHZhbHVlOiBhbnksIHJvd1NlbGVjdG9yOiBhbnkpOiB2b2lkO1xuICAgIGNvbGxhcHNlUm93KGlkOiBhbnkpOiB2b2lkO1xuICAgIG5vdGlmeUNoYW5nZXMocmVwYWludD86IGJvb2xlYW4pOiB2b2lkO1xuICAgIHJlc2V0Q29sdW1uQ29sbGVjdGlvbnMoKTogdm9pZDtcbiAgICB0cmlnZ2VyUGlwZXMoKTogdm9pZDtcbiAgICByZXBvc2l0aW9uUm93RWRpdGluZ092ZXJsYXkocm93OiBSb3dUeXBlKTogdm9pZDtcbiAgICBjbG9zZVJvd0VkaXRpbmdPdmVybGF5KCk6IHZvaWQ7XG4gICAgcmVmbG93KCk6IHZvaWQ7XG5cbiAgICAvLyBUT0RPOiBNYXliZSBtb3ZlIHRoZW0gdG8gRmxhdEdyaWRUeXBlLCBidXQgdGhlbiB3aWxsIHdlIG5lZWQgYW5vdGhlciB0b2tlbj9cbiAgICBpc0V4cGFuZGVkR3JvdXAoZ3JvdXA6IElHcm91cEJ5UmVjb3JkKTogYm9vbGVhbjtcbiAgICBjcmVhdGVDb2x1bW5zTGlzdD8oY29sczogQ29sdW1uVHlwZVtdKTogdm9pZDtcbiAgICB0b2dnbGVBbGxHcm91cFJvd3M/KCk6IHZvaWQ7XG4gICAgdG9nZ2xlQWxsPygpOiB2b2lkO1xuICAgIGdlbmVyYXRlUm93UGF0aD8ocm93SWQ6IGFueSk6IGFueVtdO1xuICAgIHByZXZlbnRIZWFkZXJTY3JvbGw/KGFyZ3M6IGFueSk6IHZvaWQ7XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBGbGF0IEdyaWQgdHlwZS4gSXQgaXMgZXNzZW50aWFsbHkgdGhlIGJsdWVwcmludCB0byBhIGdyaWQga2luZFxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcyBhbmQgbWV0aG9kcywgcmVsZXZhbnQgdG8gYSBncmlkIGtpbmRcbiAqIEV4dGVuZHMgZnJvbSBgR3JpZFR5cGVgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmxhdEdyaWRUeXBlIGV4dGVuZHMgR3JpZFR5cGUge1xuICAgIGdyb3VwaW5nRXhwYW5zaW9uU3RhdGU6IElHcm91cEJ5RXhwYW5kU3RhdGVbXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zOiBJR3JvdXBpbmdFeHByZXNzaW9uW107XG4gICAgZ3JvdXBpbmdFeHByZXNzaW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPElHcm91cGluZ0V4cHJlc3Npb25bXT47XG5cbiAgICB0b2dnbGVHcm91cChncm91cFJvdzogSUdyb3VwQnlSZWNvcmQpOiB2b2lkO1xuICAgIGNsZWFyR3JvdXBpbmcoZmllbGQ6IHN0cmluZyk6IHZvaWQ7XG4gICAgZ3JvdXBCeShleHByZXNzaW9uOiBJR3JvdXBpbmdFeHByZXNzaW9uIHwgQXJyYXk8SUdyb3VwaW5nRXhwcmVzc2lvbj4pOiB2b2lkO1xufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIGEgVHJlZSBHcmlkIHR5cGUuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSBncmlkIGtpbmRcbiAqIENvbnRhaW5zIGRlZmluaXRpb25zIG9mIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsIHJlbGV2YW50IHRvIGEgZ3JpZCBraW5kXG4gKiBFeHRlbmRzIGZyb20gYEdyaWRUeXBlYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVHcmlkVHlwZSBleHRlbmRzIEdyaWRUeXBlIHtcbiAgICByZWNvcmRzOiBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+O1xuICAgIGlzVHJlZVJvdyhyZWM6IGFueSk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBIaWVyYXJjaGljYWwgR3JpZCB0eXBlLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgZ3JpZCBraW5kXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGdyaWQga2luZFxuICogRXh0ZW5kcyBmcm9tIGBHcmlkVHlwZWBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIaWVyYXJjaGljYWxHcmlkVHlwZSBleHRlbmRzIEdyaWRUeXBlIHtcbiAgICBjaGlsZExheW91dEtleXM6IGFueVtdO1xufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIGEgUGl2b3QgR3JpZCB0eXBlLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgZ3JpZCBraW5kXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGdyaWQga2luZFxuICogRXh0ZW5kcyBmcm9tIGBHcmlkVHlwZWBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXZvdEdyaWRUeXBlIGV4dGVuZHMgR3JpZFR5cGUge1xuICAgIC8qKlxuICAgICAqIFRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciB0aGUgcGl2b3QgZ3JpZC5cbiAgICAgKiBpdCBpbmNsdWRlcyBkaW1lbnRpb24gc3RyYXRlZ3kgZm9yIHJvd3MgYW5kIGNvbHVtbnMsIGZpbHRlcnMgYW5kIGRhdGEga2V5c1xuICAgICAqL1xuICAgIHBpdm90Q29uZmlndXJhdGlvbjogSVBpdm90Q29uZmlndXJhdGlvbjtcbiAgICAvKipcbiAgICAgKiBBbiBhcnJheSBvZiBhbGwgZGltZW5zaW9ucyAocm93cyBhbmQgY29sdW1ucykgaW4gdGhlIHBpdm90IGdyaWQuXG4gICAgICogaXQgaW5jbHVkZXMgaGllcmFyY2hpY2FsIGxldmVsLCBmaWx0ZXJzIGFuZCBzb3J0aW5nLCBkaW1lbnRpb25hbCBsZXZlbCwgZXRjLlxuICAgICAqL1xuICAgIGFsbERpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdLFxuICAgIC8qKiBTcGVjaWZpZXMgd2hldGhlciB0byBzaG93IHRoZSBwaXZvdCBjb25maWd1cmF0aW9uIFVJIGluIHRoZSBncmlkLiAqL1xuICAgIHNob3dQaXZvdENvbmZpZ3VyYXRpb25VSTogYm9vbGVhbjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBjb2x1bW5EaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICByb3dEaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXTtcbiAgICByb3dEaW1lbnNpb25SZXNpemluZzogYm9vbGVhbjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICB2YWx1ZXM6IElQaXZvdFZhbHVlW107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZmlsdGVyRGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZGltZW5zaW9uRGF0YUNvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICBwaXZvdFJvd1dpZHRoczogbnVtYmVyO1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciBzZXRpbmcgdXAgdGhlIGNvbHVtbnMgZm9yIHRoZSBwaXZvdCBncmlkIGJhc2VkIG9uIHRoZSBwaXZvdCBjb25maWd1cmF0aW9uICovXG4gICAgc2V0dXBDb2x1bW5zKCk6IHZvaWQ7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gdGhhdCBhbGxvd3MgdG9nZ2xlIG9mIGV4cGFuc2lvbiBzdGF0ZSBvZiBhIHJvdyAodGFrZW4gYXMgYSBwYXJhbWV0ZXIpIGluIHRoZSBwaXZvdCBncmlkICovXG4gICAgdG9nZ2xlUm93KHJvd0lEOiBhbnkpOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJlc29sdmluZyB0aGUgZGF0YSB0eXBlIGZvciBhIHNwZWNpZmljIGZpZWxkIChjb2x1bW4pLlxuICAgICAqIEl0IHRha2VzIHRoZSBmaWVsZCBhcyBhIHBhcmFtZXRlciBhbmQgcmV0dXJucyBpdCdzIHR5cGVcbiAgICAgKi9cbiAgICByZXNvbHZlRGF0YVR5cGVzKGZpZWxkOiBhbnkpOiBHcmlkQ29sdW1uRGF0YVR5cGU7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgbW92aW5nIGRpbWVuc2lvbiBmcm9tIGl0cyBjdXJyZW50bHkgY29sbGVjdGlvbiB0byB0aGUgc3BlY2lmaWVkIHRhcmdldCBjb2xsZWN0aW9uXG4gICAgICogYnkgdHlwZSAoUm93LCBDb2x1bW4gb3IgRmlsdGVyKSBhdCBzcGVjaWZpZWQgaW5kZXggb3IgYXQgdGhlIGNvbGxlY3Rpb24ncyBlbmRcbiAgICAgKi9cbiAgICBtb3ZlRGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uLCB0YXJnZXRDb2xsZWN0aW9uVHlwZTogUGl2b3REaW1lbnNpb25UeXBlLCBpbmRleD86IG51bWJlcik7XG4gICAgZ2V0RGltZW5zaW9uc0J5VHlwZShkaW1lbnNpb246IFBpdm90RGltZW5zaW9uVHlwZSk7XG4gICAgLyoqIFRvZ2dsZXMgdGhlIGRpbWVuc2lvbidzIGVuYWJsZWQgc3RhdGUgb24gb3Igb2ZmLiBUaGUgZGltZW5zaW9uIHJlbWFpbnMgaW4gaXRzIGN1cnJlbnQgY29sbGVjdGlvbiAqL1xuICAgIHRvZ2dsZURpbWVuc2lvbihkaW1lbnNpb246IElQaXZvdERpbWVuc2lvbik7XG4gICAgLyoqIFNvcnQgdGhlIGRpbWVuc2lvbiBhbmQgaXRzIGNoaWxkcmVuIGluIHRoZSBwcm92aWRlZCBkaXJlY3Rpb24gKGFzY2VuZGluZywgZGVzY2VuZGluZyBvciBub25lKS4gKi9cbiAgICBzb3J0RGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uLCBzb3J0RGlyZWN0aW9uOiBTb3J0aW5nRGlyZWN0aW9uKTtcbiAgICAvKiogVG9nZ2xlcyB0aGUgdmFsdWUncyBlbmFibGVkIHN0YXRlIG9uIG9yIG9mZi4gVGhlIHZhbHVlIHJlbWFpbnMgaW4gaXRzIGN1cnJlbnQgY29sbGVjdGlvbi4gKi9cbiAgICB0b2dnbGVWYWx1ZSh2YWx1ZTogSVBpdm90VmFsdWUpO1xuICAgIC8qKiBNb3ZlIHZhbHVlIGZyb20gaXRzIGN1cnJlbnRseSBhdCBzcGVjaWZpZWQgaW5kZXggb3IgYXQgdGhlIGVuZC5cbiAgICAgKiBJZiB0aGUgcGFyYW1ldGVyIGlzIG5vdCBzZXQsIGl0IHdpbGwgYWRkIGl0IHRvIHRoZSBlbmQgb2YgdGhlIGNvbGxlY3Rpb24uICovXG4gICAgbW92ZVZhbHVlKHZhbHVlOiBJUGl2b3RWYWx1ZSwgaW5kZXg/OiBudW1iZXIpO1xuICAgIHJvd0RpbWVuc2lvbldpZHRoVG9QaXhlbHMoZGltOiBJUGl2b3REaW1lbnNpb24pOiBudW1iZXI7XG4gICAgLyoqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIGRpbWVuc2lvbnMgaW4gdGhlIHBpdm90IGdyaWQgY2hhbmdlLiAqL1xuICAgIGRpbWVuc2lvbnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRGltZW5zaW9uc0NoYW5nZT47XG4gICAgLyoqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIHZhbHVlcyBpbiB0aGUgcGl2b3QgZ3JpZCBjaGFuZ2UuICovXG4gICAgdmFsdWVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVZhbHVlc0NoYW5nZT47XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGl2b3RLZXlzOiBJUGl2b3RLZXlzO1xuICAgIGhhc011bHRpcGxlVmFsdWVzOiBib29sZWFuO1xuICAgIGV4Y2VsU3R5bGVGaWx0ZXJNYXhIZWlnaHQ6IHN0cmluZztcbiAgICBleGNlbFN0eWxlRmlsdGVyTWluSGVpZ2h0OiBzdHJpbmc7XG4gICAgdmFsdWVDaGlwVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZFNWR0ljb24ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTaXplSW5mbyB7XG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBwYWRkaW5nOiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkTWFzdGVyRGV0YWlsQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBhbnk7XG4gICAgaW5kZXg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcm91cEJ5Um93VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IElHcm91cEJ5UmVjb3JkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogR3JpZFR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkUm93VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IFJvd1R5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkUm93RHJhZ0dob3N0Q29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBhbnksIC8vIHRoaXMgaXMgdGhlIHJvdyBkYXRhXG4gICAgZGF0YTogYW55LCAvLyB0aGlzIGlzIGFsc28gdGhlIHJvdyBkYXRhIGZvciBzb21lIHJlYXNvbi5cbiAgICBncmlkOiBHcmlkVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRFbXB0eVRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkUm93RWRpdFRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiB1bmRlZmluZWQsXG4gICAgcm93Q2hhbmdlc0NvdW50OiBudW1iZXIsXG4gICAgZW5kRWRpdDogKGNvbW1pdDogYm9vbGVhbiwgZXZlbnQ/OiBFdmVudCkgPT4gdm9pZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRSb3dFZGl0VGV4dFRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkUm93RWRpdEFjdGlvbnNUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogKGNvbW1pdDogYm9vbGVhbiwgZXZlbnQ/OiBFdmVudCkgPT4gdm9pZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRIZWFkZXJUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogSGVhZGVyVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneENvbHVtblRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBDb2x1bW5UeXBlLFxuICAgIGNvbHVtbjogQ29sdW1uVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneENlbGxUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogYW55LFxuICAgIGFkZGl0aW9uYWxUZW1wbGF0ZUNvbnRleHQ6IGFueSxcbiAgICBmb3JtQ29udHJvbD86IEZvcm1Db250cm9sPGFueT4sXG4gICAgZGVmYXVsdEVycm9yVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIGNlbGw6IENlbGxUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4Um93U2VsZWN0b3JUZW1wbGF0ZURldGFpbHMge1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgLyoqIEBkZXByZWNhdGVkIFVzZSBga2V5YCAqL1xuICAgIHJvd0lEOiBhbnk7XG4gICAga2V5OiBhbnk7XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgc2VsZWN0PzogKCkgPT4gdm9pZDtcbiAgICBkZXNlbGVjdD86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogSWd4Um93U2VsZWN0b3JUZW1wbGF0ZURldGFpbHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVEZXRhaWxzIHtcbiAgICBzZWxlY3RlZENvdW50OiBudW1iZXI7XG4gICAgdG90YWxDb3VudDogbnVtYmVyO1xuICAgIGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IElneEdyb3VwQnlSb3dTZWxlY3RvclRlbXBsYXRlRGV0YWlscztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hIZWFkU2VsZWN0b3JUZW1wbGF0ZURldGFpbHMge1xuICAgIHNlbGVjdGVkQ291bnQ6IG51bWJlcjtcbiAgICB0b3RhbENvdW50OiBudW1iZXI7XG4gICAgc2VsZWN0QWxsPzogKCkgPT4gdm9pZDtcbiAgICBkZXNlbGVjdEFsbD86ICgpID0+IHZvaWQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIElneEhlYWRTZWxlY3RvclRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBJZ3hIZWFkU2VsZWN0b3JUZW1wbGF0ZURldGFpbHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4U3VtbWFyeVRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBJZ3hTdW1tYXJ5UmVzdWx0W11cbn1cblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZGVzY3JpYmluZyBzZXR0aW5ncyBmb3Igcm93L2NvbHVtbiBwaW5uaW5nIHBvc2l0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElQaW5uaW5nQ29uZmlnIHtcbiAgICBjb2x1bW5zPzogQ29sdW1uUGlubmluZ1Bvc2l0aW9uO1xuICAgIHJvd3M/OiBSb3dQaW5uaW5nUG9zaXRpb247XG59XG4iXX0=
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL2dyaWQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBK0MsY0FBYyxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQTZCdEksTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQSxJQUFJLGNBQWMsQ0FBVyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzNGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLGFBQWEsQ0FBQSxJQUFJLGNBQWMsQ0FBa0IseUJBQXlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbHVtblBpbm5pbmdQb3NpdGlvbiwgRmlsdGVyTW9kZSwgR3JpZFBhZ2luZ01vZGUsIEdyaWRTZWxlY3Rpb25Nb2RlLCBHcmlkU3VtbWFyeUNhbGN1bGF0aW9uTW9kZSwgR3JpZFN1bW1hcnlQb3NpdGlvbiwgR3JpZFZhbGlkYXRpb25UcmlnZ2VyLCBSb3dQaW5uaW5nUG9zaXRpb24gfSBmcm9tICcuL2VudW1zJztcbmltcG9ydCB7XG4gICAgSVNlYXJjaEluZm8sIElHcmlkQ2VsbEV2ZW50QXJncywgSVJvd1NlbGVjdGlvbkV2ZW50QXJncywgSUNvbHVtblNlbGVjdGlvbkV2ZW50QXJncywgSUdyaWRFZGl0RXZlbnRBcmdzLFxuICAgIElQaW5Db2x1bW5DYW5jZWxsYWJsZUV2ZW50QXJncywgSUNvbHVtblZpc2liaWxpdHlDaGFuZ2VkRXZlbnRBcmdzLCBJQ29sdW1uVmlzaWJpbGl0eUNoYW5naW5nRXZlbnRBcmdzLFxuICAgIElSb3dEcmFnRW5kRXZlbnRBcmdzLCBJQ29sdW1uTW92aW5nU3RhcnRFdmVudEFyZ3MsIElDb2x1bW5Nb3ZpbmdFbmRFdmVudEFyZ3MsXG4gICAgSUdyaWRFZGl0RG9uZUV2ZW50QXJncywgSVJvd0RhdGFFdmVudEFyZ3MsIElHcmlkS2V5ZG93bkV2ZW50QXJncywgSVJvd0RyYWdTdGFydEV2ZW50QXJncyxcbiAgICBJQ29sdW1uTW92aW5nRXZlbnRBcmdzLCBJUGluQ29sdW1uRXZlbnRBcmdzLFxuICAgIElBY3RpdmVOb2RlQ2hhbmdlRXZlbnRBcmdzLFxuICAgIElDZWxsUG9zaXRpb24sIElGaWx0ZXJpbmdFdmVudEFyZ3MsIElDb2x1bW5SZXNpemVFdmVudEFyZ3MsIElSb3dUb2dnbGVFdmVudEFyZ3MsIElHcmlkVG9vbGJhckV4cG9ydEV2ZW50QXJncywgSVBpblJvd0V2ZW50QXJnc1xufSBmcm9tICcuLi9jb21tb24vZXZlbnRzJztcbmltcG9ydCB7IERpc3BsYXlEZW5zaXR5LCBJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9jb3JlL2RlbnNpdHknO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0aW9uVG9rZW4sIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSwgSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctZXhwcmVzc2lvbnMtdHJlZSc7XG5pbXBvcnQgeyBJR3JpZFJlc291cmNlU3RyaW5ncyB9IGZyb20gJy4uLy4uL2NvcmUvaTE4bi9ncmlkLXJlc291cmNlcyc7XG5pbXBvcnQgeyBJR3JvdXBpbmdFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElHcm91cEJ5UmVjb3JkIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwYnktcmVjb3JkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJR3JvdXBCeUV4cGFuZFN0YXRlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2dyb3VwYnktZXhwYW5kLXN0YXRlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJZ3hQYWdpbmF0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9wYWdpbmF0b3IvcGFnaW5hdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hDZWxsLCBJZ3hFZGl0Um93IH0gZnJvbSAnLi9jcnVkLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JpZFNlbGVjdGlvblJhbmdlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBGaWx0ZXJpbmdMb2dpYyB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctZXhwcmVzc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUZpbHRlcmluZ1N0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1zdHJhdGVneSc7XG5pbXBvcnQgeyBEcm9wUG9zaXRpb24sIElneENvbHVtbk1vdmluZ1NlcnZpY2UgfSBmcm9tICcuLi9tb3ZpbmcvbW92aW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWd4T3ZlcmxheU91dGxldERpcmVjdGl2ZSwgSWd4VG9nZ2xlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy90b2dnbGUvdG9nZ2xlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJVHJlZUdyaWRSZWNvcmQgfSBmcm9tICcuLi90cmVlLWdyaWQvdHJlZS1ncmlkLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgU3RhdGUsIFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBEYXRhVHlwZSwgR3JpZENvbHVtbkRhdGFUeXBlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2RhdGEtdXRpbCc7XG5pbXBvcnQgeyBJZ3hGaWx0ZXJpbmdPcGVyYW5kIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1jb25kaXRpb24nO1xuaW1wb3J0IHsgSUNvbHVtblBpcGVBcmdzLCBJRmllbGRQaXBlQXJncywgSVNvcnRpbmdPcHRpb25zLCBNUkxSZXNpemVDb2x1bW5JbmZvIH0gZnJvbSAnLi4vY29sdW1ucy9pbnRlcmZhY2VzJztcbmltcG9ydCB7IElneFN1bW1hcnlSZXN1bHQgfSBmcm9tICcuLi9zdW1tYXJpZXMvZ3JpZC1zdW1tYXJ5JztcbmltcG9ydCB7IElTb3J0aW5nRXhwcmVzc2lvbiwgSVNvcnRpbmdTdHJhdGVneSwgU29ydGluZ0RpcmVjdGlvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9zb3J0aW5nLXN0cmF0ZWd5JztcbmltcG9ydCB7IElHcmlkR3JvdXBpbmdTdHJhdGVneSwgSUdyaWRTb3J0aW5nU3RyYXRlZ3kgfSBmcm9tICcuL3N0cmF0ZWd5JztcbmltcG9ydCB7IElGb3JPZlN0YXRlLCBJZ3hHcmlkRm9yT2ZEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2Zvci1vZi9mb3Jfb2YuZGlyZWN0aXZlJztcbmltcG9ydCB7IE92ZXJsYXlTZXR0aW5ncyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL292ZXJsYXkvdXRpbGl0aWVzJztcbmltcG9ydCB7IElEaW1lbnNpb25zQ2hhbmdlLCBJUGl2b3RDb25maWd1cmF0aW9uLCBJUGl2b3REaW1lbnNpb24sIElQaXZvdEtleXMsIElQaXZvdFZhbHVlLCBJVmFsdWVzQ2hhbmdlLCBQaXZvdERpbWVuc2lvblR5cGUgfSBmcm9tICcuLi9waXZvdC1ncmlkL3Bpdm90LWdyaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElEYXRhQ2xvbmVTdHJhdGVneSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9kYXRhLWNsb25lLXN0cmF0ZWd5JztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJZ3hHcmlkVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9ncmlkL2dyaWQtdmFsaWRhdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IElHWF9HUklEX0JBU0UgPSAvKkBfX1BVUkVfXyovbmV3IEluamVjdGlvblRva2VuPEdyaWRUeXBlPignSWd4R3JpZEJhc2VUb2tlbicpO1xuZXhwb3J0IGNvbnN0IElHWF9HUklEX1NFUlZJQ0VfQkFTRSA9IC8qQF9fUFVSRV9fKi9uZXcgSW5qZWN0aW9uVG9rZW48R3JpZFNlcnZpY2VUeXBlPignSWd4R3JpZFNlcnZpY2VCYXNlVG9rZW4nKTtcblxuLyoqIEludGVyZmFjZSByZXByZXNlbnRpbmcgYSBzZWdtZW50IG9mIGEgcGF0aCBpbiBhIGhpZXJhcmNoaWNhbCBncmlkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUGF0aFNlZ21lbnQge1xuICAgIC8qKiBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHJvdyB3aXRoaW4gdGhlIHNlZ21lbnQuICovXG4gICAgcm93SUQ6IGFueTtcbiAgICAvKiogVGhlIGtleSByZXByZXNlbnRpbmcgdGhlIHJvdydzICdoaWVyYXJjaGljYWwgbGV2ZWwuICovXG4gICAgcm93SXNsYW5kS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWREYXRhQmluZGFibGUge1xuICAgIGRhdGE6IGFueVtdIHwgbnVsbDtcbiAgICBnZXQgZmlsdGVyZWREYXRhKCk6IGFueVtdO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgYSBjZWxsIGluIHRoZSBncmlkLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgY2VsbCBvYmplY3QuXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGNlbGxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZWxsVHlwZSB7XG4gICAgLyoqIFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBjZWxsLiAqL1xuICAgIHZhbHVlOiBhbnk7XG4gICAgLyoqIFRoZSB2YWx1ZSB0byBkaXNwbGF5IHdoZW4gdGhlIGNlbGwgaXMgaW4gZWRpdCBtb2RlLiAqL1xuICAgIGVkaXRWYWx1ZTogYW55O1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQuIEl0IGlzIGZhbHNlLCBpZiB0aGUgc2VsbCBpcyBub3Qgc2VsZWN0ZWQsIGFuZCB0cnVlLCBpZiBpdCBpcy4gKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNlbGwgaXMgY3VycmVudGx5IGFjdGl2ZSAoZm9jdXNlZCkuICovXG4gICAgYWN0aXZlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBjYW4gYmUgZWRpdGVkLiAqL1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBpcyBjdXJyZW50bHkgaW4gZWRpdCBtb2RlLiAqL1xuICAgIGVkaXRNb2RlOiBib29sZWFuO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBuYXRpdmUgSFRNTCBlbGVtZW50IG9mIHRoZSBjZWxsIGl0c2VsZiAqL1xuICAgIG5hdGl2ZUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgY29sdW1uIHRoYXQgdGhlIGNlbGwgYmVsb25ncyB0by4gKi9cbiAgICBjb2x1bW46IENvbHVtblR5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHJvdyB0aGF0IHRoZSBjZWxsIGJlbG9uZ3MgdG8gKi9cbiAgICByb3c6IFJvd1R5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGdyaWQgaW5zdGFuY2UgY29udGFpbmluZyB0aGUgY2VsbCAqL1xuICAgIGdyaWQ6IEdyaWRUeXBlO1xuICAgIC8qKiBPcHRpb25hbDsgQW4gb2JqZWN0IGlkZW50aWZ5aW5nIHRoZSBjZWxsLiBJdCBjb250YWlucyByb3dJRCwgY29sdW1uSUQsIGFuZCByb3dJbmRleCBvZiB0aGUgY2VsbC4gKi9cbiAgICBpZD86IHsgcm93SUQ6IGFueTsgY29sdW1uSUQ6IG51bWJlcjsgcm93SW5kZXg6IG51bWJlciB9O1xuICAgIC8qKiBPcHRpb25hbDsgVGhlIGBjZWxsSURgIGlzIHRoZSB1bmlxdWUga2V5LCB1c2VkIHRvIGlkZW50aWZ5IHRoZSBjZWxsICovXG4gICAgY2VsbElEPzogYW55O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsOyBBbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSB2YWxpZGF0aW9uIHN0YXRlIG9mIHRoZSBjZWxsLlxuICAgICAqIFdoZXRoZXIgaXQncyB2YWxpZCBvciBpbnZhbGlkLCBhbmQgaWYgaXQgaGFzIGVycm9yc1xuICAgICAqL1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb24/OiBJR3JpZFZhbGlkYXRpb25TdGF0ZTtcbiAgICByZWFkb25seT86IGJvb2xlYW47XG4gICAgLyoqIEFuIG9wdGlvbmFsIHRpdGxlIHRvIGRpc3BsYXkgZm9yIHRoZSBjZWxsICovXG4gICAgdGl0bGU/OiBhbnk7XG4gICAgLyoqIFRoZSBDU1Mgd2lkdGggb2YgdGhlIGNlbGwgYXMgYSBzdHJpbmcuICovXG4gICAgd2lkdGg6IHN0cmluZztcbiAgICAvKiogVGhlIGluZGV4IG9mIHRoZSBjb2x1bW4gdGhhdCB0aGUgY2VsbCBiZWxvbmdzIHRvLiBJdCBjb3VudHMgb25seSB0aGUgdmlzaWJsZSAobm90IGhpZGRlbikgY29sdW1ucyAqL1xuICAgIHZpc2libGVDb2x1bW5JbmRleD86IG51bWJlcjtcbiAgICAvKiogQSBtZXRob2QgZGVmaW5pdGlvbiB0byB1cGRhdGUgdGhlIHZhbHVlIG9mIHRoZSBjZWxsLiAqL1xuICAgIHVwZGF0ZTogKHZhbHVlOiBhbnkpID0+IHZvaWQ7XG4gICAgLyoqIEEgbWV0aG9kIGRlZmluaXRpb24gdG8gc3RhcnQgb3IgZW5kIHRoZSBlZGl0IG1vZGUgb2YgdGhlIGNlbGwuIEl0IHRha2VzIGEgYm9vbGVhbiB2YWx1ZSBhcyBhbiBhcmd1bWVudCovXG4gICAgc2V0RWRpdE1vZGU/KHZhbHVlOiBib29sZWFuKTogdm9pZDtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbDtcbiAgICAgKiBBIG1ldGhvZCBkZWZpbml0aW9uIHRvIGNhbGN1bGF0ZSB0aGUgc2l6ZSBvZiB0aGUgY2VsbCB0byBmaXQgdGhlIGNvbnRlbnRcbiAgICAgKiBUaGUgbWV0aG9kIGNhbiBiZSB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgc2l6ZSBvZiB0aGUgY2VsbCB3aXRoIHRoZSBsb25nZXN0IGNvbnRlbnQgYW5kIHJlc2l6ZSBhbGwgY2VsbHMgdG8gdGhhdCBzaXplXG4gICAgICovXG4gICAgY2FsY3VsYXRlU2l6ZVRvRml0PyhyYW5nZTogYW55KTogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gYWN0aXZhdGUgdGhlIGNlbGwuXG4gICAgICogSXQgdGFrZXMgYSBmb2N1cyBvciBrZXlib2FyZCBldmVudCBhcyBhbiBhcmd1bWVudFxuICAgICAqL1xuICAgIGFjdGl2YXRlPyhldmVudDogRm9jdXNFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIGRvdWJsZS1jbGljayBldmVudHMgb24gdGhlIGNlbGxcbiAgICAgKiBJdCB0YWtlcyBhIG1vdXNlIGV2ZW50IGFzIGFuIGFyZ3VtZW50XG4gICAgICovXG4gICAgb25Eb3VibGVDbGljaz8oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIGNsaWNrIGV2ZW50cyBvbiB0aGUgY2VsbFxuICAgICAqIEl0IHRha2VzIGEgbW91c2UgZXZlbnQgYXMgYW4gYXJndW1lbnRcbiAgICAgKi9cbiAgICBvbkNsaWNrPyhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyBhIGhlYWRlciBjZWxsIGluIHRoZSBncmlkLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgaGVhZGVyIGNlbGwgb2JqZWN0LlxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcywgcmVsZXZhbnQgdG8gdGhlIGhlYWRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlclR5cGUge1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBuYXRpdmUgSFRNTCBlbGVtZW50IG9mIHRoZSBjZWxsIGl0c2VsZiAqL1xuICAgIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIC8qKiBUaGUgY29sdW1uIHRoYXQgdGhlIGhlYWRlciBjZWxsIHJlcHJlc2VudHMuICovXG4gICAgY29sdW1uOiBDb2x1bW5UeXBlO1xuICAgIGRlbnNpdHk6IERpc3BsYXlEZW5zaXR5O1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY29sdW1uIGlzIGN1cnJlbnRseSBzb3J0ZWQuICovXG4gICAgc29ydGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBjYW4gYmUgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RhYmxlOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY2VsbCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGNvbHVtbiBoZWFkZXIgaXMgYSB0aXRsZSBjZWxsLiAqL1xuICAgIHRpdGxlOiBib29sZWFuO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBzb3J0aW5nIGRpcmVjdGlvbiBvZiB0aGUgY29sdW1uIChhc2NlbmRpbmcsIGRlc2NlbmRpbmcgb3Igbm9uZSkuICovXG4gICAgc29ydERpcmVjdGlvbjogU29ydGluZ0RpcmVjdGlvbjtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIGEgcm93IGluIHRoZSBncmlkLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgcm93IG9iamVjdC5cbiAqIENvbnRhaW5zIGRlZmluaXRpb25zIG9mIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsIHJlbGV2YW50IHRvIGEgcm93XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm93VHlwZSB7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIG5hdGl2ZSBIVE1MIGVsZW1lbnQgb2YgdGhlIHJvdyBpdHNlbGYgKi9cbiAgICBuYXRpdmVFbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gICAgLyoqIFRoZSBpbmRleCBvZiB0aGUgcm93IHdpdGhpbiB0aGUgZ3JpZCAqL1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgdmlld0luZGV4OiBudW1iZXI7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSByb3cgaXMgZ3JvdXBlZC4gKi9cbiAgICBpc0dyb3VwQnlSb3c/OiBib29sZWFuO1xuICAgIGlzU3VtbWFyeVJvdz86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1hcCBvZiBjb2x1bW4gZmllbGQgbmFtZXMgdG8gdGhlIHN1bW1hcnkgcmVzdWx0cyBmb3IgdGhlIHJvdy5cbiAgICAgKi9cbiAgICBzdW1tYXJpZXM/OiBNYXA8c3RyaW5nLCBJZ3hTdW1tYXJ5UmVzdWx0W10+O1xuICAgIGdyb3VwUm93PzogSUdyb3VwQnlSZWNvcmQ7XG4gICAga2V5PzogYW55O1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb24/OiBJR3JpZFZhbGlkYXRpb25TdGF0ZTtcbiAgICBkYXRhPzogYW55O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBsaXN0IG9yIGFuIGFycmF5IG9mIGNlbGxzLCB0aGF0IGJlbG9uZyB0byB0aGUgcm93XG4gICAgICovXG4gICAgY2VsbHM/OiBRdWVyeUxpc3Q8Q2VsbFR5cGU+IHwgQ2VsbFR5cGVbXTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IHJvdyBpcyBkaXNhYmxlZFxuICAgICAqL1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFZpcnR1YWxpemF0aW9uIHN0YXRlIG9mIGRhdGEgcmVjb3JkIGFkZGVkIGZyb20gY2FjaGVcbiAgICAgKi9cbiAgICB2aXJ0RGlyUm93PzogSWd4R3JpZEZvck9mRGlyZWN0aXZlPENvbHVtblR5cGUsIENvbHVtblR5cGVbXT47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCByb3cgaXMgcGlubmVkLlxuICAgICAqL1xuICAgIHBpbm5lZD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCByb3cgaXMgc2VsZWN0ZWRcbiAgICAgKi9cbiAgICBzZWxlY3RlZD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCByb3cgaXMgZXhwYW5kZWQuXG4gICAgICogVGhlIHZhbHVlIGlzIHRydWUsIGlmIHRoZSByb3cgaXMgZXhwYW5kZWQgYW5kIGZhbHNlLCBpZiBpdCBpcyBjb2xsYXBzZWRcbiAgICAgKi9cbiAgICBleHBhbmRlZD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2FkZXMgd2hldGhlciB0aGUgcm93IGlzIG1hcmtlZCBmb3IgZGVsZXRpb24uXG4gICAgICovXG4gICAgZGVsZXRlZD86IGJvb2xlYW47XG4gICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogSW5kaWNhZGVzIHdoZXRoZXIgdGhlIHJvdyBpcyBjdXJyZW50bHkgYmVpbmcgZWRpdGVkLlxuICAgICAqL1xuICAgIGluRWRpdE1vZGU/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQ29udGFpbnMgdGhlIGNoaWxkIHJvd3Mgb2YgdGhlIGN1cnJlbnQgcm93LCBpZiB0aGVyZSBhcmUgYW55LlxuICAgICAqL1xuICAgIGNoaWxkcmVuPzogUm93VHlwZVtdO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQ29udGFpbnMgdGhlIHBhcmVudCByb3cgb2YgdGhlIGN1cnJlbnQgcm93LCBpZiBpdCBoYXMgb25lLlxuICAgICAqIElmIHRoZSBwYXJlbnQgcm93IGV4aXN0LCBpdCBtZWFucyB0aGF0IHRoZSBjdXJyZW50IHJvdyBpcyBhIGNoaWxkIHJvd1xuICAgICAqL1xuICAgIHBhcmVudD86IFJvd1R5cGU7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2FkZXMgd2hldGhlciB0aGUgY3VycmVudCByb3cgaGFzIGFueSBjaGlsZCByb3dzXG4gICAgICovXG4gICAgaGFzQ2hpbGRyZW4/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogUmVwcmVzZW50cyB0aGUgaGllcmFyY2hpY2FsIHJlY29yZCBhc3NvY2lhdGVkIHdpdGggdGhlIHJvdyAoZm9yIHRyZWUgZ3JpZHMpLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgSVRyZWVHcmlkUmVjb3JkLCB3aGljaCBjb250YWlucyB0aGUgZGF0YSwgY2hpbGRyZW4sIHRoZSBoaWVyYXJjaGljYWwgbGV2ZWwsIGV0Yy5cbiAgICAgKi9cbiAgICB0cmVlUm93PzogSVRyZWVHcmlkUmVjb3JkO1xuICAgIGFkZFJvd1VJPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYWRlcyB3aGV0aGVyIHRoZSByb3cgaXMgY3VycmVudGx5IGZvY3VzZWQuXG4gICAgICovXG4gICAgZm9jdXNlZD86IGJvb2xlYW47XG4gICAgLyoqIFJlcHJlc2VudCB0aGUgZ3JpZCBpbnN0YW5jZSwgdGhlIHJvdyBiZWxvbmdzIHRvICovXG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgb25Sb3dTZWxlY3RvckNsaWNrPzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIGNsaWNrIGV2ZW50IG9uIHRoZSByb3dcbiAgICAgKiBJdCB0YWtlcyBhIGBNb3VzZUV2ZW50YCBhcyBhbiBhcmd1bWVudFxuICAgICAqL1xuICAgIG9uQ2xpY2s/OiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBBIG1ldGhvZCB0byBoYW5kbGUgYWRkaW5nIGEgbmV3IHJvd1xuICAgICAqL1xuICAgIGJlZ2luQWRkUm93PzogKCkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEEgbWV0aG9kIHRvIGhhbmRsZSBjaGFuZ2luZyB0aGUgdmFsdWUgb2YgZWxlbWVudHMgb2YgdGhlIHJvd1xuICAgICAqIEl0IHRha2VzIHRoZSBuZXcgdmFsdWUgYXMgYW4gYXJndW1lbnRcbiAgICAgKi9cbiAgICB1cGRhdGU/OiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEEgbWV0aG9kIHRvIGhhbmRsZSBkZWxldGluZyByb3dzXG4gICAgICovXG4gICAgZGVsZXRlPzogKCkgPT4gYW55O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIHBpbm5pbmcgYSByb3dcbiAgICAgKi9cbiAgICBwaW4/OiAoKSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogQSBtZXRob2QgdG8gaGFuZGxlIHVucGlubmluZyBhIHJvdywgdGhhdCBoYXMgYmVlbiBwaW5uZWRcbiAgICAgKi9cbiAgICB1bnBpbj86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRUeXBlIHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBmaWVsZDogc3RyaW5nO1xuICAgIGhlYWRlcj86IHN0cmluZztcbiAgICBkYXRhVHlwZTogRGF0YVR5cGU7XG4gICAgZmlsdGVyczogSWd4RmlsdGVyaW5nT3BlcmFuZDtcbiAgICBwaXBlQXJnczogSUZpZWxkUGlwZUFyZ3M7XG4gICAgZGVmYXVsdFRpbWVGb3JtYXQ6IHN0cmluZztcbiAgICBkZWZhdWx0RGF0ZVRpbWVGb3JtYXQ6IHN0cmluZztcblxuICAgIGZvcm1hdHRlcih2YWx1ZTogYW55LCByb3dEYXRhPzogYW55KTogYW55O1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb2x1bW4gaW4gdGhlIGBHcmlkVHlwZWAuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSBjb2x1bW4gb2JqZWN0LlxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcyBhbmQgbWV0aG9kcywgcmVsZXZhbnQgdG8gYSBjb2x1bW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5UeXBlIGV4dGVuZHMgRmllbGRUeXBlIHtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgaW5jdGFuY2Ugb2YgdGhlIHBhcmVudCBgR3JpZFR5cGVgIHRoYXQgY29udGFpbnMgdGhpcyBjb2x1bW4uICovXG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgLyoqIEEgbGlzdCwgY29udGFpbmluZyBhbGwgdGhlIGNoaWxkIGNvbHVtbnMgdW5kZXIgdGhpcyBjb2x1bW4gKGlmIGFueSkuICovXG4gICAgY2hpbGRyZW46IFF1ZXJ5TGlzdDxDb2x1bW5UeXBlPjtcbiAgICAvKiogQW4gYXJyYXksIGNvbnRhaW5pbmcgYWxsIHRoZSBjaGlsZCBjb2x1bW5zLCBpbmNsdWRpbmcgbmVzdGVkIGNoaWxkcmVuLiAqL1xuICAgIGFsbENoaWxkcmVuOiBDb2x1bW5UeXBlW107XG4gICAgLyoqXG4gICAgICogVGhlIGhlYWRlciBncm91cCBjb21wb25lbnQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29sdW1uLlxuICAgICAqIENvdWxkIGJlIG9mIGFueSB0eXBlXG4gICAgKi9cbiAgICAvLyBUWVBFXG4gICAgaGVhZGVyR3JvdXA6IGFueTtcbiAgICAvKipcbiAgICAgKiBUaGUgaGVhZGVyIGNlbGwgY29tcG9uZW50IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbHVtbi5cbiAgICAgKiBDb3VsZCBiZSBvZiBhbnkgdHlwZVxuICAgICAqL1xuICAgIC8vIFRZUEVcbiAgICBoZWFkZXJDZWxsOiBhbnk7XG4gICAgdmFsaWRhdG9yczogYW55W107XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgcmVmZXJlbmNlIGZvciB0aGUgY3VzdG9tIGhlYWRlciBvZiB0aGUgY29sdW1uXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yIHRoZSBjb2xsYXBzaWJsZSBpbmRpY2F0b3Igb2YgdGhlIGNvbHVtbi5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgY29sbGFwc2libGVJbmRpY2F0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgLyoqIFJlcHJlc2VudHMgY3VzdG9tIENTUyBjbGFzc2VzIGFwcGxpZWQgdG8gdGhlIGhlYWRlciBlbGVtZW50LiBXaGVuIGFkZGVkLCB0aGV5IHRha2UgZGlmZmVyZW50IHN0eWxpbmcgKi9cbiAgICBoZWFkZXJDbGFzc2VzOiBhbnk7XG4gICAgLyoqIFJlcHJlc2VudHMgY3VzdG9tIENTUyBzdHlsZXMgYXBwbGllZCB0byB0aGUgaGVhZGVyIGVsZW1lbnQuIFdoZW4gYWRkZWQsIHRoZXkgdGFrZSBkaWZmZXJlbnQgc3R5bGluZyAqL1xuICAgIGhlYWRlclN0eWxlczogYW55O1xuICAgICAvKiogUmVwcmVzZW50cyBjdXN0b20gQ1NTIGNsYXNzZXMgYXBwbGllZCB0byB0aGUgaGVhZGVyIGdyb3VwLiBXaGVuIGFkZGVkLCB0aGV5IHRha2UgZGlmZmVyZW50IHN0eWxpbmcgKi9cbiAgICBoZWFkZXJHcm91cENsYXNzZXM6IGFueTtcbiAgICAgLyoqIFJlcHJlc2VudHMgY3VzdG9tIENTUyBzdHlsZXMgYXBwbGllZCB0byB0aGUgaGVhZGVyIGdyb3VwLiBXaGVuIGFkZGVkLCB0aGV5IHRha2UgZGlmZmVyZW50IHN0eWxpbmcgKi9cbiAgICBoZWFkZXJHcm91cFN0eWxlczogYW55O1xuXG4gICAgLyoqIFxuICAgICAqIEN1c3RvbSBDU1Mgc3R5bGluZywgYXBwcGxpZWQgdG8gZXZlcnkgY29sdW1uIFxuICAgICAqIGNhbGNXaWR0aCwgbWluV2lkdGhQeCwgbWF4V2lkdGhQeCwgbWluV2lkdGgsIG1heFdpZHRoLCBtaW5XaWR0aFBlcmNlbnQsIG1heFdpZHRoUGVyY2VudCwgcmVzb2x2ZWRXaWR0aFxuICAgICAqL1xuICAgIGNhbGNXaWR0aDogYW55O1xuICAgIG1pbldpZHRoUHg6IG51bWJlcjtcbiAgICBtYXhXaWR0aFB4OiBudW1iZXI7XG4gICAgbWluV2lkdGg6IHN0cmluZztcbiAgICBtYXhXaWR0aDogc3RyaW5nO1xuICAgIG1pbldpZHRoUGVyY2VudDogbnVtYmVyO1xuICAgIG1heFdpZHRoUGVyY2VudDogbnVtYmVyO1xuICAgIHJlc29sdmVkV2lkdGg6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogUmVwcmVzZW50cyB0aGUgaGVhZGVyIHRleHQgb2YgdGhlIGNvbHVtblxuICAgICAqL1xuICAgIGhlYWRlcj86IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgaW5kZXggb2YgdGhlIGNvbHVtbiB3aXRoaW4gdGhlIGdyaWQuXG4gICAgICogSW5jbHVkZXMgdGhlIGhpZGRlbiBjb2x1bW5zIHdoZW4gY291bnRpbmdcbiAgICAgKi9cbiAgICBpbmRleDogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgdGhlIHR5cGUgb2YgZGF0YSBmb3IgdGhlIGNvbHVtbjpcbiAgICAgKiBzdHJpbmcsIG51bWJlciwgYnV1bGVhbiwgY3VycmVuY3ksIGRhdGUsIHRpbWUsIGV0Yy5cbiAgICAgKi9cbiAgICBkYXRhVHlwZTogR3JpZENvbHVtbkRhdGFUeXBlO1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yIHRoZSBjdXN0b20gaW5saW5lIGVkaXRvciBvZiB0aGUgY29sdW1uXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGlubGluZUVkaXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKlxuICAgICAqIFRoZSBpbmRleCBvZiB0aGUgY29sdW1uIHdpdGhpbiB0aGUgZ3JpZC5cbiAgICAgKiBEb2VzIG5vdCBpbmNsdWRlIHRoZSBoaWRkZW4gY29sdW1ucyB3aGVuIGNvdW50aW5nXG4gICAgICovXG4gICAgdmlzaWJsZUluZGV4OiBudW1iZXI7XG4gICAgLyoqIE9wdGlvbmFsXG4gICAgICogSW5kaWNhdGVkIHdoZXRoZXIgdGhlIGNvbHVtbiBjYW4gYmUgY29sbGFwc2VkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW4gYmUgY29sbGFwc2VkXG4gICAgICogSXQgaXMgdXNlZCBpbiB0cmVlIGdyaWQgYW5kIGZvciBuYXZpZ2F0aW9uXG4gICAgICovXG4gICAgY29sbGFwc2libGU/OiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZWQgd2hldGhlciB0aGUgY29sdW1uIGNhbiBiZSBlZGl0ZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGNhbiBiZSBlZGl0ZWQgKi9cbiAgICBlZGl0YWJsZTogYm9vbGVhbjtcbiAgICAvKiogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGNvbHVtbiBjYW4gYmUgcmVzaXplZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gY2FuIGJlIHJlc2l6ZWQgKi9cbiAgICByZXNpemFibGU6IGJvb2xlYW47XG4gICAgLyoqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBkYXRhIG9mIHRoZSBjb2x1bW4gY2FuIGJlIHNlYXJjaGVkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBkYXRhIGNhbiBiZSBzZWFyY2hlZCAqL1xuICAgIHNlYXJjaGFibGU6IGJvb2xlYW47XG4gICAgLyoqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBjb2x1bW4gYmVsb25ncyB0byBhIGdyb3VwIG9mIGNvbHVtbnMuICovXG4gICAgY29sdW1uR3JvdXA6IGJvb2xlYW47XG4gICAgLyoqIEBkZXByZWNhdGVkIGluIHZlcnNpb24gMTMuMS4wLiBVc2UgYElneEdyaWRDb21wb25lbnQubW92aW5nYCBpbnN0ZWFkLiovXG4gICAgbW92YWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhZGVzIHdoZXRoZXIgYSBjb2x1bW4gY2FuIGJlIHB1dCBpbiBhIGdyb3VwLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW4gYmUgcHV0IGluIGEgZ3JvdXAgKi9cbiAgICBncm91cGFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYWRlcyB3aGV0aGVyIGEgY29sdW1uIGNhbiBiZSBzb3J0ZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGNhbiBiZSBzb3J0ZWQuICovXG4gICAgc29ydGFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYWRlcyB3aGV0aGVyIGEgY29sdW1uIGNhbiBiZSBmaWx0ZXJlZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gY2FuIGJlIGZpbHRlcmVkICovXG4gICAgZmlsdGVyYWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhZGVzIHdoZXRoZXIgYSBjb2x1bW4gaXMgY3VycmVudGx5IGhpZGRlbiAobm90IHZpc2libGUpLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBpcyBub3QgdmlzaWJsZSAqL1xuICAgIGhpZGRlbjogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhZGVzIHdoZXRoZXIgYSBjb2x1bW4gY2FuIGJlIHBpbm5lZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gY2Fubm90IGJlIHBpbm5lZCAqL1xuICAgIGRpc2FibGVQaW5uaW5nOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2FkZXMgd2hldGhlciBhIGNvbHVtbiBjYW4gYmUgaGlkZGVuLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBjYW5ub3QgYmUgaGlkZGVuICovXG4gICAgZGlzYWJsZUhpZGluZzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgc29ydGluZyBzdHJhdGVneSB1c2VkIGZvciBzb3J0aW5nIHRoaXMgY29sdW1uLlxuICAgICAqIFRoZSBpbnRlcmZhY2UgY29udGFpbnMgYSBtZXRob2Qgc29ydCB0aGF0IHNvcnRzIHRoZSBwcm92aWRlZCBkYXRhIGJhc2VkIG9uIHRoZSBnaXZlbiBzb3J0aW5nIGV4cHJlc3Npb25zXG4gICAgICovXG4gICAgc29ydFN0cmF0ZWd5OiBJU29ydGluZ1N0cmF0ZWd5O1xuICAgICAvKipcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgc2VhcmNoIHNob3VsZCBtYXRjaCByZXN1bHRzLCBubyBtYXR0ZXIgdGhlIGNhc2Ugb2YgdGhlIGxldHRlcnMgKHVwcGVyIGFuZCBsb3dlcilcbiAgICAgKiBJZiB0aGUgdmFsdWUgaXMgZmFsc2UsIHRoZSByZXN1bHQgd2lsbCBkZXBlbmQgb24gdGhlIGNhc2UgKGV4YW1wbGU6IGBFYCB3aWxsIG5vdCBtYXRjaCBgZWApXG4gICAgICogSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSByZXN1bHQgd2lsbCBub3QgZGVwZW5kIG9uIHRoZSBjYXNlIChleGFtcGxlOiBgRWAgd2lsbCBtYXRjaCBgZWApXG4gICAgICovXG4gICAgc29ydGluZ0lnbm9yZUNhc2U6IGJvb2xlYW47XG4gICAgZmlsdGVyQ2VsbDogYW55O1xuICAgIGZpbHRlcmluZ0lnbm9yZUNhc2U6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVGhlIGZpbHRlcmluZyBleHByZXNzaW9ucyBmb3IgdGhlIGNvbHVtbi5cbiAgICAgKiBUaGUgdHlwZSBjb250YWlucyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIGZvciBmaWx0ZXJpbmc6IGZpbHRlcmluZ09wZXJhbmRzLCBvcGVyYXRvciAobG9naWMpLCBmaWVsZE5hbWUsIGV0Yy5cbiAgICAgKi9cbiAgICBmaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU6IEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTtcbiAgICBoYXNTdW1tYXJ5OiBib29sZWFuO1xuICAgIHN1bW1hcmllczogYW55O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSByZWZlcmVuY2UgZm9yIGEgc3VtbWFyeSBvZiB0aGUgY29sdW1uXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIHN1bW1hcnlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBjb2x1bW4gaXMgY3VycmVudGx5IHBpbm5lZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gaXMgcGlubmVkICovXG4gICAgcGlubmVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbHVtbiBpcyBjdXJyZW50bHkgZXhwYW5kZWQgb3IgY29sbGFwc2VkLiBJZiB0aGUgdmFsdWUgaXMgdHJ1ZSwgdGhlIGNvbHVtbiBpcyBleHBhbmRlZCAqL1xuICAgIGV4cGFuZGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvbHVtbiBpcyBjdXJyZW50bHkgc2VsZWN0ZWQuIElmIHRoZSB2YWx1ZSBpcyB0cnVlLCB0aGUgY29sdW1uIGlzIHNlbGVjdGVkICovXG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgY29sdW1uIGNhbiBiZSBzZWxlY3RlZC4gSWYgdGhlIHZhbHVlIGlzIHRydWUsIHRoZSBjb2x1bW4gY2FuIGJlIHNlbGVjdGVkICovXG4gICAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICBjb2x1bW5MYXlvdXQ6IGJvb2xlYW47XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGhpZXJhcmNoaWNhbCBsZXZlbCBvZiB0aGUgY29sdW1uIGluIHRoZSBjb2x1bW4gbGF5b3V0ICovXG4gICAgbGV2ZWw6IG51bWJlcjtcbiAgICByb3dTdGFydDogbnVtYmVyO1xuICAgIHJvd0VuZDogbnVtYmVyO1xuICAgIGNvbFN0YXJ0OiBudW1iZXI7XG4gICAgY29sRW5kOiBudW1iZXI7XG4gICAgZ3JpZFJvd1NwYW46IG51bWJlcjtcbiAgICBncmlkQ29sdW1uU3BhbjogbnVtYmVyO1xuICAgIGNvbHVtbkxheW91dENoaWxkOiBib29sZWFuO1xuICAgIHdpZHRoOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBUaGUgcm9vdCBwYXJlbnQgb2YgdGhpcyBjb2x1bW4gKGlmIGFueSkuXG4gICAgICogSWYgdGhlcmUgaXMgbm8gcm9vdCBwYXJlbnQsIHRoYXQgbWVhbnMgdGhlIGN1cnJlbnQgc29sdW5tIGlzIHRoZSByb290IHBhcmVudFxuICAgICAqL1xuICAgIHRvcExldmVsUGFyZW50PzogQ29sdW1uVHlwZTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFRoZSBpbW1lZGlhdGUgcGFyZW50IChyaWdodCBhYm92ZSkgY29sdW1uIG9mIHRoaXMgY29sdW1uIChpZiBhbnkpLlxuICAgICAqIElmIHRoZXJlIGlzIG5vIHBhcmVudCwgdGhhdCBtZWFucyB0aGUgY3VycmVudCBzb2x1bm0gaXMgdGhlIHJvb3QgcGFyZW50XG4gICAgICovXG4gICAgcGFyZW50PzogQ29sdW1uVHlwZTtcbiAgICBwaXBlQXJnczogSUNvbHVtblBpcGVBcmdzO1xuICAgIGhhc05lc3RlZFBhdGg6IGJvb2xlYW47XG4gICAgYWRkaXRpb25hbFRlbXBsYXRlQ29udGV4dDogYW55O1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCBjb2x1bW4gaXMgdGhlIGxhc3QgdG8gYmUgcGlubmVkLlxuICAgICAqIElmIHRoZSB2YWx1ZSBpcyBmYWxzZSwgdGhlcmUgYXJlIGNvbHVtbnMsIHRoYXQgaGF2ZSBiZWVuIHBpbm5lZCBhZnRlciB0aGUgY3VycmVudCAqL1xuICAgIGlzTGFzdFBpbm5lZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGN1cnJlbnQgY29sdW1uIGlzIHRoZSBmaXJzdCBmb3IgdGhlIGdyaWQgdG8gYmUgcGlubmVkLlxuICAgICAqIElmIHRoZSB2YWx1ZSBpcyBmYWxzZSwgdGhlcmUgYXJlIGNvbHVtbnMsIHRoYXQgaGF2ZSBiZWVuIHBpbm5lZCBiZWZvcmUgdGhlIGN1cnJlbnQgKi9cbiAgICBpc0ZpcnN0UGlubmVkOiBib29sZWFuO1xuICAgIGFwcGx5U2VsZWN0YWJsZUNsYXNzOiBib29sZWFuO1xuICAgIC8qKiBUaGUgdGl0bGUgb2YgdGhlIGNvbHVtbiwgdXNlZCBmb3IgYWNjZXNzaWJpbGl0eSBwdXJwb3NlcyAqL1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2Qgd2l0aCBjdXN0b20gZ3JvdXBpbmcgY29tcGFyYXRvciB0byBkZXRlcm1pbmUgdGhlIG1lbWJlcnMgb2YgdGhlIGdyb3VwLiAqL1xuICAgIGdyb3VwaW5nQ29tcGFyZXI6IChhOiBhbnksIGI6IGFueSkgPT4gbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhIGN1c3RvbSB0ZW1wbGF0ZSBmb3IgZmlsdGVyaW5nXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGZpbHRlckNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIEEgbWV0aG9kIGRlZmluaXRpb24gdG8gbW92ZSB0aGUgY29sdW1uIHRvIHRoZSBzcGVjaWZpZWQgaW5kZXguXG4gICAgICogSXQgdGFrZXMgdGhlIGluZGV4IG9mIHR5cGUgbnVtYmVyIGFzIGEgcGFyYW1ldGVyXG4gICAgKi9cbiAgICBtb3ZlKGluZGV4OiBudW1iZXIpOiB2b2lkO1xuICAgIC8qKiBBIG1ldGhvZCBkZWZpbml0aW9uIHRvIHJldHJpZXZlIHRoZSBzZXQgQ1NTIHNpemUgKi9cbiAgICBnZXRBdXRvU2l6ZSgpOiBzdHJpbmc7XG4gICAgZ2V0UmVzaXphYmxlQ29sVW5kZXJFbmQoKTogTVJMUmVzaXplQ29sdW1uSW5mb1tdO1xuICAgIC8qKiBBIG1ldGhvZCBkZWZpbml0aW9uIHRvIHJldHJpZXZlIHRoZSBzZXQgQ1NTIHdpZHRoIG9mIHRoZSBjZWxscyB1bmRlciB0aGUgY29sdW1uICovXG4gICAgZ2V0Q2VsbFdpZHRoKCk6IHN0cmluZztcbiAgICBnZXRHcmlkVGVtcGxhdGUoaXNSb3c6IGJvb2xlYW4pOiBzdHJpbmc7XG4gICAgLyoqIEEgbWV0aG9kIGRlZmluaXRpb24gdG8gdG9nZ2xlIGNvbHVtbiB2aWJpc2lsaXR5IChoaWRkZW4gb3IgdmlzaWJsZSkgKi9cbiAgICB0b2dnbGVWaXNpYmlsaXR5KHZhbHVlPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgcG9wdWxhdGVWaXNpYmxlSW5kZXhlcz8oKTogdm9pZDtcbiAgICAvKiogUGlucyB0aGUgY29sdW1uIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXggKGlmIG5vdCBhbHJlYWR5IHBpbm5lZCkuICovXG4gICAgcGluKGluZGV4PzogbnVtYmVyKTogYm9vbGVhbjtcbiAgICAvKiogVW5waW5zIHRoZSBjb2x1bW4gYXQgdGhlIHNwZWNpZmllZCBpbmRleCAoaWYgbm90IGFscmVhZHkgdW5waW5uZWQpLiAqL1xuICAgIHVucGluKGluZGV4PzogbnVtYmVyKTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIHRoZSBldmVudCBhcmd1bWVudHMgd2hlbiBhIGZvcm0gZ3JvdXAgaXMgY3JlYXRlZCBpbiB0aGUgZ3JpZC5cbiAqIC0gZm9ybUdyb3VwOiBUaGUgZm9ybSBncm91cCB0aGF0IGlzIGNyZWF0ZWQuXG4gKiAtIG93bmVyOiBUaGUgZ3JpZCBpbnN0YW5jZSB0aGF0IG93bnMgdGhlIGZvcm0gZ3JvdXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRGb3JtR3JvdXBDcmVhdGVkRXZlbnRBcmdzIHtcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cCxcbiAgICBvd25lcjogR3JpZFR5cGVcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgcmVwcmVzZW50aW5nIHRoZSBldmVudCBhcmd1bWVudHMgZm9yIHRoZSBncmlkIHZhbGlkYXRpb24gc3RhdHVzIGNoYW5nZSBldmVudC5cbiAqIC0gc3RhdHVzOiBUaGUgdmFsaWRhdGlvbiBzdGF0dXMgKCdWQUxJRCcgb3IgJ0lOVkFMSUQnKS5cbiAqIC0gb3duZXI6IFRoZSBncmlkIGluc3RhbmNlIHRoYXQgb3ducyB0aGUgdmFsaWRhdGlvbiBzdGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJR3JpZFZhbGlkYXRpb25TdGF0dXNFdmVudEFyZ3Mge1xuICAgIHN0YXR1czogVmFsaWRhdGlvblN0YXR1cyxcbiAgICBvd25lcjogR3JpZFR5cGVcbn1cblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgdmFsaWRhdGlvbiBzdGF0dXMuXG4gKiAtICdWQUxJRCc6IFRoZSB2YWxpZGF0aW9uIHN0YXR1cyBpcyB2YWxpZC5cbiAqIC0gJ0lOVkFMSUQnOiBUaGUgdmFsaWRhdGlvbiBzdGF0dXMgaXMgaW52YWxpZC5cbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblN0YXR1cyA9ICdWQUxJRCcgfCAnSU5WQUxJRCc7XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyB0aGUgdmFsaWRhdGlvbiBzdGF0ZSBvZiBhIGdyaWQuXG4gKiAtIHN0YXR1czogVGhlIHZhbGlkYXRpb24gc3RhdHVzICgnVkFMSUQnIG9yICdJTlZBTElEJykuXG4gKiAtIGVycm9yczogVGhlIHZhbGlkYXRpb24gZXJyb3JzIGlmIGFueS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJR3JpZFZhbGlkYXRpb25TdGF0ZSB7XG4gICAgcmVhZG9ubHkgc3RhdHVzOiBWYWxpZGF0aW9uU3RhdHVzO1xuICAgIHJlYWRvbmx5IGVycm9ycz86IFZhbGlkYXRpb25FcnJvcnM7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyB0aGUgdmFsaWRhdGlvbiBzdGF0ZSBvZiBhIHJlY29yZCBpbiB0aGUgZ3JpZC5cbiAqIC0gYGtleWA6IFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcmVjb3JkLlxuICogLSBgZmllbGRzYDogQW4gYXJyYXkgb2YgdGhlIHZhbGlkYXRpb24gc3RhdGUgb2YgaW5kaXZpZHVhbCBmaWVsZHMgaW4gdGhlIHJlY29yZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUmVjb3JkVmFsaWRhdGlvblN0YXRlIGV4dGVuZHMgSUdyaWRWYWxpZGF0aW9uU3RhdGUge1xuICAgIGtleTogYW55O1xuICAgIGZpZWxkczogSUZpZWxkVmFsaWRhdGlvblN0YXRlW107XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyB0aGUgdmFsaWRhdGlvbiBzdGF0ZSBvZiBhIGZpZWxkIGluIHRoZSBncmlkLlxuICogLWBmaWVsZGA6IFRoZSBuYW1lIG9mIHRoZSBmaWVsZCAocHJvcGVydHkpIGJlaW5nIHZhbGlkYXRlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRmllbGRWYWxpZGF0aW9uU3RhdGUgZXh0ZW5kcyBJR3JpZFZhbGlkYXRpb25TdGF0ZSB7XG4gICAgZmllbGQ6IHN0cmluZ1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHNlcnZpY2UgaW50ZXJmYWNlIGZvciBpbnRlcmFjdGluZyB3aXRoIHRoZSBncmlkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRTZXJ2aWNlVHlwZSB7XG5cbiAgICAvKiogVGhlIHJlZmVyZW5jZSB0byB0aGUgcGFyZW50IGBHcmlkVHlwZWAgdGhhdCBjb250YWlucyB0aGUgc2VydmljZS4gKi9cbiAgICBncmlkOiBHcmlkVHlwZTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgdHlwZSBvZiB0aGUgQ1JVRCBzZXJ2aWNlIChDcmVhdGUsIFJlYWQsIFVwZGF0ZSwgRGVsZXRlKSBvcGVyYXRpb25zIG9uIHRoZSBncmlkIGRhdGEuICovXG4gICAgY3J1ZFNlcnZpY2U6IGFueTtcbiAgICAvKiogQSBzZXJ2aWNlIHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZyBjb2x1bW4gbW92aW5nIHdpdGhpbiB0aGUgZ3JpZC4gSXQgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIGNvbHVtbiwgaXRzIGljb24sIGFuZCBpbmRpY2F0b3IgZm9yIGNhbmNlbGF0aW9uLiAqL1xuICAgIGNtczogSWd4Q29sdW1uTW92aW5nU2VydmljZTtcblxuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSBkYXRhIHVzZWQgaW4gdGhlIGdyaWQuIFRoZSByZXR1cm5lZCB2YWx1ZXMgY291bGQgYmUgb2YgYW55IHR5cGUgKi9cbiAgICBnZXRfZGF0YSgpOiBhbnlbXTtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIGFsbCB0aGUgZGF0YSBhdmFpbGFibGUgaW4gdGhlIGdyaWQsIGluY2x1ZGluZyBhbnkgdHJhbnNhY3Rpb25hbCBkYXRhLlxuICAgICAqIGBpbmNsdWRlVHJhbnNhY3Rpb25zYDogT3B0aW9uYWwgcGFyYW1ldGVyLiBTcGVjaWZpZXMgd2hldGhlciB0byBpbmNsdWRlIHRyYW5zYWN0aW9uYWwgZGF0YSBpZiBwcmVzZW50LlxuICAgICAqIFJldHVybnMgYW4gYXJyYXkgY29udGFpbmluZyBhbGwgdGhlIGRhdGEgYXZhaWxhYmxlIGluIHRoZSBncmlkLlxuICAgICAqL1xuICAgIGdldF9hbGxfZGF0YShpbmNsdWRlVHJhbnNhY3Rpb25zPzogYm9vbGVhbik6IGFueVtdO1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIGEgY29sdW1uIG9iamVjdCBieSBpdHMgbmFtZSwgdGFrZW4gYXMgYSBwYXJhbWV0ZXIuICovXG4gICAgZ2V0X2NvbHVtbl9ieV9uYW1lKG5hbWU6IHN0cmluZyk6IENvbHVtblR5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgcm93IGJ5IGl0cyB1bmlxdWUgaWRlbnRpZmllciAob2YgYW55IHR5cGUsIHRha2VuIGFzIGEgcGFyYW1ldGVyKS4gKi9cbiAgICBnZXRSb3dEYXRhKGlkOiBhbnkpOiBhbnk7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgcmVjb3JkIGJ5IGl0cyB1bmlxdWUgaWRlbnRpZmllciAob2YgYW55IHR5cGUsIHRha2VuIGFzIGEgcGFyYW1ldGVyKS4gKi9cbiAgICBnZXRfcmVjX2J5X2lkKGlkOiBhbnkpOiBhbnk7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIGEgc3BlY2lmaWMgcm93IGJ5IGl0cyBkYXRhLiAqL1xuICAgIGdldF9yb3dfaWQocm93RGF0YTogYW55KTogYW55O1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSByb3cgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIGluZGV4ICh0YWtlbiBhcyBhIHBhcmFtZXRlcikgaW4gdGhlIGdyaWQgKi9cbiAgICBnZXRfcm93X2J5X2luZGV4KHJvd1NlbGVjdG9yOiBhbnkpOiBSb3dUeXBlO1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciByZXRyaWV2aW5nIHRoZSByb3cgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIGtleSAodGFrZW4gYXMgYSBwYXJhbWV0ZXIpIGluIHRoZSBncmlkICovXG4gICAgZ2V0X3Jvd19ieV9rZXkocm93U2VsZWN0b3I6IGFueSk6IFJvd1R5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIGluZGV4IG9mIGEgcmVjb3JkIGluIHRoZSBncmlkJ3MgZGF0YSBjb2xsZWN0aW9uIHVzaW5nIGl0cyB1bmlxdWUgaWRlbnRpZmllci4gKi9cbiAgICBnZXRfcmVjX2luZGV4X2J5X2lkKHBrOiBzdHJpbmcgfCBudW1iZXIsIGRhdGFDb2xsZWN0aW9uPzogYW55W10pOiBudW1iZXI7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIGluZGV4IG9mIGEgcmVjb3JkIGluIHRoZSBncmlkJ3MgZGF0YSBjb2xsZWN0aW9uIHVzaW5nIGl0cyBpbmRleC4gKi9cbiAgICBnZXRfcmVjX2lkX2J5X2luZGV4KGluZGV4OiBudW1iZXIsIGRhdGFDb2xsZWN0aW9uPzogYW55W10pOiBhbnk7XG4gICAgZ2V0X3Jvd19pbmRleF9pbl9kYXRhKHJvd0lEOiBhbnksIGRhdGFDb2xsZWN0aW9uPzogYW55W10pOiBudW1iZXI7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIGNlbGwgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIHJvdyBhbmQgY29sdW1uIGluIHRoZSBncmlkLiAqL1xuICAgIGdldF9jZWxsX2J5X2tleShyb3dTZWxlY3RvcjogYW55LCBmaWVsZDogc3RyaW5nKTogQ2VsbFR5cGU7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIGNlbGwgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIHJvdyBhbmQgY29sdW1uIHVzaW5nIHRoZWlyIGluZGV4ZXMuICovXG4gICAgZ2V0X2NlbGxfYnlfaW5kZXgocm93SW5kZXg6IG51bWJlciwgY29sdW1uSUQ6IG51bWJlciB8IHN0cmluZyk6IENlbGxUeXBlO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIGNlbGwgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIHJvdyBhbmQgY29sdW1uIHVzaW5nIHRoZWlyIGluZGV4ZXMuXG4gICAgICogSXQgY291bnRzIG9ubHkgdGhlIGluZGV4ZXMgb2YgdGhlIHZpc2libGUgY29sdW1ucyBhbmQgcm93c1xuICAgICAqL1xuICAgIGdldF9jZWxsX2J5X3Zpc2libGVfaW5kZXgocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gdGhhdCBzZXRzIHRoZSBleHBhbnNpb24gc3RhdGUgb2YgYSBncm91cCByb3cgKHVzZWQgZm9yIHRyZWUgZ3JpZHMpXG4gICAgICogSXQgdGFrZXMgdGhlIHZhbHVlIGZvciB0aGUgZXhwYW50aW9uIGFzIGEgcGFyYW1ldGVyIChleHBhbmRlZCBvciBjb2xsYXBzZWQpXG4gICAgICovXG4gICAgc2V0X2dyb3Vwcm93X2V4cGFuc2lvbl9zdGF0ZT8oZ3JvdXBSb3c6IElHcm91cEJ5UmVjb3JkLCB2YWx1ZTogYm9vbGVhbik6IHZvaWQ7XG4gICAgcm93X2RlbGV0ZWRfdHJhbnNhY3Rpb24oaWQ6IGFueSk6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgYWRkaW5nIGEgbmV3IHJvdyB0byB0aGUgZ3JpZC5cbiAgICAgKiBJdCB0YWtlcyB0aGUgcm93J3MgZGF0YSBhbmQgdGhlIGlkZW50aWZpZXIgb2YgdGhlIHBhcmVudCByb3cgaWYgYXBwbGljYWJsZSAodXNlZCBmb3IgdHJlZSBncmlkcylcbiAgICAgKi9cbiAgICBhZGRSb3dUb0RhdGEocm93RGF0YTogYW55LCBwYXJlbnRJRD86IGFueSk6IHZvaWQ7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIGRlbGV0aW5nIGEgcm93LCBzcGVjaWZpZWQgYnkgaXQncyBpZGVudGlkaWVyICh0YWtlbiBhcyBhIHBhcmFtZXRlcikgKi9cbiAgICBkZWxldGVSb3dCeUlkKGlkOiBhbnkpOiBhbnk7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJldHJpZXZpbmcgdGhlIHJvdydzIGN1cnJlbnQgc3RhdGUgb2YgZXhwYW50aW9uICh1c2VkIGZvciB0cmVlIGdyaWRzKSovXG4gICAgZ2V0X3Jvd19leHBhbnNpb25fc3RhdGUoaWQ6IGFueSk6IGJvb2xlYW47XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHNldHRpbmcgYSBuZXcgZXhwYW50aW9uIHN0YXRlLiBJdCBjYW4gYmUgdHJpZ2dlcmVkIGJ5IGFuIGV2ZW50ICovXG4gICAgc2V0X3Jvd19leHBhbnNpb25fc3RhdGUoaWQ6IGFueSwgZXhwYW5kZWQ6IGJvb2xlYW4sIGV2ZW50PzogRXZlbnQpOiB2b2lkO1xuICAgIGdldF9zdW1tYXJ5X2RhdGEoKTogYW55W107XG5cbiAgICBwcmVwYXJlX3NvcnRpbmdfZXhwcmVzc2lvbihzdGF0ZUNvbGxlY3Rpb25zOiBBcnJheTxBcnJheTxhbnk+PiwgZXhwcmVzc2lvbjogSVNvcnRpbmdFeHByZXNzaW9uKTogdm9pZDtcbiAgICAvKipcbiAgICAgKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciBzb3J0aW5nIGJ5IG9ubHkgb25lIGV4cHJlc3Npb25cbiAgICAgKiBUaGUgZXhwcmVzc2lvbiBjb250YWlucyBmaWVsZE5hbWUsIHNvcnRpbmcgZGlyZWN0b3J5LCB3aGV0aGVyIGNhc2Ugc2hvdWxkIGJlIGlnbm9yZWQgYW5kIG9wdGlvbmFsIHNvcnRpbmcgc3RyYXRlZ3lcbiAgICAgKi9cbiAgICBzb3J0KGV4cHJlc3Npb246IElTb3J0aW5nRXhwcmVzc2lvbik6IHZvaWQ7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3Igc29ydGluZyBieSBtdWx0aXBsZSBleHByZXNzaW9uc1xuICAgICAqIFRoZSBleHByZXNzaW9ucyBjb250YWlucyBmaWVsZE5hbWUsIHNvcnRpbmcgZGlyZWN0b3J5LCB3aGV0aGVyIGNhc2Ugc2hvdWxkIGJlIGlnbm9yZWQgYW5kIG9wdGlvbmFsIHNvcnRpbmcgc3RyYXRlZ3lcbiAgICAgKi9cbiAgICBzb3J0X211bHRpcGxlKGV4cHJlc3Npb25zOiBJU29ydGluZ0V4cHJlc3Npb25bXSk6IHZvaWQ7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJlc2V0aW5nIHRoZSBzb3J0aW5nICovXG4gICAgY2xlYXJfc29ydChmaWVsZE5hbWU6IHN0cmluZyk6IHZvaWQ7XG5cbiAgICAvKiogUmVwcmVzZW50cyBhbiBldmVudCwgdHJpZ2dlcmVkIHdoZW4gdGhlIHBpbiBzdGF0ZSBpcyBjaGFuZ2VkICovXG4gICAgZ2V0X3Bpbl9yb3dfZXZlbnRfYXJncyhyb3dJRDogYW55LCBpbmRleD86IG51bWJlciwgcm93PzogUm93VHlwZSwgcGlubmVkPzogYm9vbGVhbik6IElQaW5Sb3dFdmVudEFyZ3M7XG5cbiAgICBmaWx0ZXJEYXRhQnlFeHByZXNzaW9ucyhleHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUpOiBhbnlbXTtcbiAgICBzb3J0RGF0YUJ5RXhwcmVzc2lvbnMoZGF0YTogYW55W10sIGV4cHJlc3Npb25zOiBJU29ydGluZ0V4cHJlc3Npb25bXSk6IGFueVtdO1xuXG4gICAgdXBkYXRlX2NlbGwoY2VsbDogSWd4Q2VsbCk6IElHcmlkRWRpdEV2ZW50QXJncztcbiAgICB1cGRhdGVfcm93KHJvdzogSWd4RWRpdFJvdywgdmFsdWU6IGFueSwgZXZlbnQ/OiBFdmVudCk6IElHcmlkRWRpdEV2ZW50QXJncztcblxuICAgIGV4cGFuZF9wYXRoX3RvX3JlY29yZD8ocmVjb3JkOiBJVHJlZUdyaWRSZWNvcmQpOiB2b2lkO1xuICAgIGdldF9zZWxlY3RlZF9jaGlsZHJlbj8ocmVjb3JkOiBJVHJlZUdyaWRSZWNvcmQsIHNlbGVjdGVkUm93SURzOiBhbnlbXSk6IHZvaWQ7XG4gICAgZ2V0X2dyb3VwQnlfcmVjb3JkX2lkPyhnUm93OiBJR3JvdXBCeVJlY29yZCk6IHN0cmluZztcbiAgICByZW1vdmVfZ3JvdXBpbmdfZXhwcmVzc2lvbj8oZmllbGROYW1lOiBzdHJpbmcpOiB2b2lkO1xuICAgIGNsZWFyX2dyb3VwYnk/KGZpZWxkOiBzdHJpbmcgfCBhbnkpOiB2b2lkO1xuICAgIGdldFBhcmVudFJvd0lkPyhjaGlsZDogR3JpZFR5cGUpOiBhbnk7XG4gICAgZ2V0Q2hpbGRHcmlkcz8oaW5EZXB0aD86IGJvb2xlYW4pOiBHcmlkVHlwZVtdO1xuICAgIGdldENoaWxkR3JpZD8ocGF0aDogSVBhdGhTZWdtZW50W10pOiBHcmlkVHlwZTtcblxuICAgIHVuc2V0Q2hpbGRSb3dJc2xhbmQ/KHJvd0lzbGFuZDogR3JpZFR5cGUpOiB2b2lkO1xuICAgIHJlZ2lzdGVyQ2hpbGRSb3dJc2xhbmQ/KHJvd0lzbGFuZDogR3JpZFR5cGUpOiB2b2lkO1xufVxuXG5cbi8qKlxuICogSW50ZXJmYWNlIHJlcHJlc2VudGluZyBhIGdyaWQgdHlwZS4gSXQgaXMgZXNzZW50aWFsbHkgdGhlIGJsdWVwcmludCB0byBhIGdyaWQgb2JqZWN0LlxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcyBhbmQgbWV0aG9kcywgcmVsZXZhbnQgdG8gYSBncmlkXG4gKiBFeHRlbmRzIGBJR3JpZERhdGFCaW5kYWJsZWBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmlkVHlwZSBleHRlbmRzIElHcmlkRGF0YUJpbmRhYmxlIHtcbiAgICAvKiogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAxNi4xLnguIFBsZWFzZSB1c2UgdGhlIGAtLWlnLXNpemVgIENTUyBjdXN0b20gcHJvcGVydHkuICovXG4gICAgZGlzcGxheURlbnNpdHk6IERpc3BsYXlEZW5zaXR5O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBsb2NhbGUgb2YgdGhlIGRyaWc6IGBVU0RgLCBgRVVSYCwgYEdCUGAsIGBDTllgLCBgSlBZYCwgZXRjLiAqL1xuICAgIGxvY2FsZTogc3RyaW5nO1xuICAgIHJlc291cmNlU3RyaW5nczogSUdyaWRSZXNvdXJjZVN0cmluZ3M7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIG5hdGl2ZSBIVE1MIGVsZW1lbnQgaXRzZWxmICovXG4gICAgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHJvd3MgaW4gdGhlIGdyaWQgYXJlIGVkaXRhYmxlLiBJZiB0ZSB2YWx1ZSBpcyB0cnVlLCB0aGUgcm93cyBjYW4gYmUgZWRpdGVkICovXG4gICAgcm93RWRpdGFibGU6IGJvb2xlYW47XG4gICAgcm9vdFN1bW1hcmllc0VuYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIGZpbHRlcmluZyBpbiB0aGUgZ3JpZCBpcyBlbmFibGVkLiBJZiB0ZSB2YWx1ZSBpcyB0cnVlLCB0aGUgZ3JpZCBjYW4gYmUgZmlsdGVyZWQgKi9cbiAgICBhbGxvd0ZpbHRlcmluZzogYm9vbGVhbjtcbiAgICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHJvd3MgaW4gdGhlIGdyaWQgY2FuIGJlIGRyYWdnZWQuIElmIHRlIHZhbHVlIGlzIHRydWUsIHRoZSByb3dzIGNhbiBiZSBkcmFnZ2VkICovXG4gICAgcm93RHJhZ2dhYmxlOiBib29sZWFuO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSB1bmlxdWUgcHJpbWFyeSBrZXkgdXNlZCBmb3IgaWRlbnRpZnlpbmcgcm93cyBpbiB0aGUgZ3JpZCAqL1xuICAgIHByaW1hcnlLZXk6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGdyaWQuICovXG4gICAgaWQ6IHN0cmluZztcbiAgICAvKiogVGhlIGhlaWdodCBvZiB0aGUgdmlzaWJsZSByb3dzIGluIHRoZSBncmlkLiAqL1xuICAgIHJlbmRlcmVkUm93SGVpZ2h0OiBudW1iZXI7XG4gICAgcGlwZVRyaWdnZXI6IG51bWJlcjtcbiAgICBzdW1tYXJ5UGlwZVRyaWdnZXI6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBncm91cGFibGVQaXBlVHJpZ2dlcjogbnVtYmVyO1xuICAgIGZpbHRlcmluZ1BpcGVUcmlnZ2VyOiBudW1iZXI7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGFzQ29sdW1uTGF5b3V0czogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGdyaWQgaXMgY3VycmVudGx5IGluIGEgbW92aW5nIHN0YXRlLiAqL1xuICAgIG1vdmluZzogYm9vbGVhbjtcbiAgICBpc0xvYWRpbmc6IGJvb2xlYW47XG5cbiAgICAvKiogU3RyYXRlZ3ksIHVzZWQgZm9yIGNsb25pbmcgdGhlIHByb3ZpZGVkIGRhdGEuIFRoZSB0eXBlIGhhcyBvbmUgbWV0aG9kLCB0aGF0IHRha2VzIGFueSB0eXBlIG9mIGRhdGEgKi9cbiAgICBkYXRhQ2xvbmVTdHJhdGVneTogSURhdGFDbG9uZVN0cmF0ZWd5O1xuXG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGdyaWQgc2VydmljZSB0eXBlIHByb3ZpZGluZyBBUEkgbWV0aG9kcyBmb3IgdGhlIGdyaWQgKi9cbiAgICByZWFkb25seSBncmlkQVBJOiBHcmlkU2VydmljZVR5cGU7XG5cbiAgICAvKiogVGhlIGZpbHRlciBtb2RlIGZvciB0aGUgZ3JpZC4gSXQgY2FuIGJlIHF1aWNrIGZpbHRlciBvZiBleGNlbC1zdHlsZSBmaWx0ZXIgKi9cbiAgICBmaWx0ZXJNb2RlOiBGaWx0ZXJNb2RlO1xuXG4gICAgLy8gVFlQRVxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHRoZWFkUm93OiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZ3JvdXBBcmVhOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZmlsdGVyQ2VsbExpc3Q6IGFueVtdO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGZpbHRlcmluZ1JvdzogYW55O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGFjdGlvblN0cmlwOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcmVzaXplTGluZTogYW55O1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgdGZvb3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBhZ2luYXRvcjogSWd4UGFnaW5hdG9yQ29tcG9uZW50O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBhZ2luYXRvckxpc3Q/OiBRdWVyeUxpc3Q8SWd4UGFnaW5hdG9yQ29tcG9uZW50PjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBjcnVkU2VydmljZTogYW55O1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHN1bW1hcnlTZXJ2aWNlOiBhbnk7XG5cblxuXG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIHZpcnR1YWxpemF0aW9uIGZvciB0aGUgZ3JpZC4gSXQgaGFzIGFuIG93bmVyLCBzdGFydCBpbmRleCBhbmQgY2h1bmsgc2l6ZSAqL1xuICAgIHZpcnR1YWxpemF0aW9uU3RhdGU6IElGb3JPZlN0YXRlO1xuICAgIC8vIFRZUEVcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICAvKiogVGhlIHNlcnZpY2UgaGFuZGxpbmcgc2VsZWN0aW9uIGluIHRoZSBncmlkLiBTZWxlY3RpbmcsIGRlc2VsZWN0aW5nIGVsZW1lbnRzICovXG4gICAgc2VsZWN0aW9uU2VydmljZTogYW55O1xuICAgIG5hdmlnYXRpb246IGFueTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBmaWx0ZXJpbmdTZXJ2aWNlOiBhbnk7XG4gICAgb3V0bGV0OiBhbnk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBncmlkIGhhcyBjb2x1bW5zIHRoYXQgY2FuIGJlIG1vdmVkICovXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGFzTW92YWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBncmlkJ3Mgcm93cyBjYW4gYmUgc2VsZWN0ZWQgKi9cbiAgICBpc1Jvd1NlbGVjdGFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBzZWxlY3RvcnMgb2YgdGhlIHJvd3MgYXJlIHZpc2libGUgKi9cbiAgICBzaG93Um93U2VsZWN0b3JzOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZ3JpZCdzIGVsZW1lbnQgaXMgcGlubmVkIHRvIHRoZSBzdGFydCBvZiB0aGUgZ3JpZCAqL1xuICAgIGlzUGlubmluZ1RvU3RhcnQ6IGJvb2xlYW47XG4gICAgLyoqIElkaWNhdGVzIGlmIHRoZSBjb2x1bW4gb2YgdGhlIGdyaWQgaXMgaW4gZHJhZyBtb2RlICovXG4gICAgY29sdW1uSW5EcmFnOiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgLyoqIFRoZSB3aWR0aCBvZiBwaW5uZWQgZWxlbWVudCAqL1xuICAgIHBpbm5lZFdpZHRoOiBudW1iZXI7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgLyoqIFRoZSB3aWR0aCBvZiB1bnBpbm5lZCBlbGVtZW50ICovXG4gICAgdW5waW5uZWRXaWR0aDogbnVtYmVyO1xuICAgIC8qKiBUaGUgQ1NTIG1hcmdpbiBvZiB0aGUgc3VtbWFyaWVzICovXG4gICAgc3VtbWFyaWVzTWFyZ2luOiBudW1iZXI7XG4gICAgaGVhZFNlbGVjdG9yQmFzZUFyaWFMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBncmlkIGhhcyBjb2x1bW5zIHRoYXQgYXJlIHNob3duICovXG4gICAgaGFzVmlzaWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZ3JpZCBoYXMgZXhwYW5kYWJsZSBjaGlsZHJlbiAoaGllcmFyY2hpY2FsIGFuZCB0cmVlIGdyaWQpXG4gICAgICovXG4gICAgaGFzRXhwYW5kYWJsZUNoaWxkcmVuPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIGNvbGxhcHNlZCBncmlkIGVsZW1lbnRzIHNob3VsZCBiZSBleHBhbmRlZFxuICAgICAqL1xuICAgIHNob3dFeHBhbmRBbGw/OiBib29sZWFuO1xuXG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIGNvdW50IG9mIG9ubHkgdGhlIGhpZGRlbiAobm90IHZpc2libGUpIGNvbHVtbnMgKi9cbiAgICBoaWRkZW5Db2x1bW5zQ291bnQ6IG51bWJlcjtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgY291bnQgb2Ygb25seSB0aGUgcGlubmVkIGNvbHVtbnMgKi9cbiAgICBwaW5uZWRDb2x1bW5zQ291bnQ6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBncmlkIGljb25zLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBpY29uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBncm91cC1ieSByb3dzLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBncm91cFJvd1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8SWd4R3JvdXBCeVJvd1RlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWxcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIHRoZSBncm91cCByb3cgc2VsZWN0b3IuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGdyb3VwQnlSb3dTZWxlY3RvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8SWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbFxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3Igcm93IGxvYWRpbmcgaW5kaWNhdG9ycy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgcm93TG9hZGluZ0luZGljYXRvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIHRoZSBoZWFkZXIgc2VsZWN0b3IuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGhlYWRTZWxlY3RvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hIZWFkU2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3Igcm93IHNlbGVjdG9ycy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgcm93U2VsZWN0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3Igc29ydCBoZWFkZXIgaWNvbnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIHNvcnRIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRIZWFkZXJUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgYXNjZW5kaW5nIHNvcnQgaGVhZGVyIGljb25zLlxuICAgICAqIEl0IGlzIG9mIHR5cGUgVGVtcGxhdGVSZWYsIHdoaWNoIHJlcHJlc2VudHMgYW4gZW1iZWRkZWQgdGVtcGxhdGUsIHVzZWQgdG8gaW5zdGFuY2lhdGUgZW1iZWRkZWQgdmlld3NcbiAgICAgKi9cbiAgICBzb3J0QXNjZW5kaW5nSGVhZGVySWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkSGVhZGVyVGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGRlc2NlbmRpbmcgc29ydCBoZWFkZXIgaWNvbnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIHNvcnREZXNjZW5kaW5nSGVhZGVySWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkSGVhZGVyVGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGhlYWRlciBjb2xsYXBzZWQgaW5kaWNhdG9ycy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgaGVhZGVyQ29sbGFwc2VkSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZW1wbGF0ZSBmb3IgaGVhZGVyIGV4cGFuZGVkIGluZGljYXRvcnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGhlYWRlckV4cGFuZGVkSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIC8qKiBUaGUgdGVtcGxhdGUgZm9yIGRyYWcgaW5kaWNhdG9yIGljb25zLiBDb3VsZCBiZSBvZiBhbnkgdHlwZSAqL1xuICAgIGRyYWdJbmRpY2F0b3JJY29uVGVtcGxhdGU6IGFueTtcbiAgICAvKiogVGhlIGJhc2UgZHJhZyBpbmRpY2F0b3IgaWNvbi4gQ291bGQgYmUgb2YgYW55IHR5cGUgKi9cbiAgICBkcmFnSW5kaWNhdG9ySWNvbkJhc2U6IGFueTtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdHJhbnNpdGlvbnMgYXJlIGRpc2FibGVkIGZvciB0aGUgZ3JpZC4gKi9cbiAgICBkaXNhYmxlVHJhbnNpdGlvbnM6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW5jeSBzeW1ib2wgaXMgcG9zaXRpb25lZCB0byB0aGUgbGVmdCBvZiB2YWx1ZXMuICovXG4gICAgY3VycmVuY3lQb3NpdGlvbkxlZnQ6IGJvb2xlYW47XG5cbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4gaXMgc2V0IGJ5IHRoZSB1c2VyLCBvciBpcyBjb25maWd1cmVkIGF1dG9tYXRpY2FsbHkuICovXG4gICAgY29sdW1uV2lkdGhTZXRCeVVzZXI6IGJvb2xlYW47XG4gICAgaGVhZGVyRmVhdHVyZXNXaWR0aDogbnVtYmVyO1xuICAgIC8qKiBDU1Mgc3R5bGluZyBjYWxjdWxhdGVkIGZvciBhbiBlbGVtZW50OiBjYWxjSGVpZ2h0LCBjYWxjV2lkdGgsIG91dGVyV2lkdGggKi9cbiAgICBjYWxjSGVpZ2h0OiBudW1iZXI7XG4gICAgY2FsY1dpZHRoOiBudW1iZXI7XG4gICAgb3V0ZXJXaWR0aDogbnVtYmVyO1xuICAgIC8qKiBUaGUgaGVpZ2h0IG9mIGVhY2ggcm93IGluIHRoZSBncmlkLiBTZXR0aW5nIGEgY29uc3RhbnQgaGVpZ2h0IGNhbiBzb2x2ZSBwcm9ibGVtcyB3aXRoIG5vdCBzaG93aW5nIGFsbCBhbGVtZW50cyB3aGVuIHNjcm9sbGluZyAqL1xuICAgIHJvd0hlaWdodDogbnVtYmVyO1xuICAgIG11bHRpUm93TGF5b3V0Um93U2l6ZTogbnVtYmVyO1xuICAgIC8qKiBNaW5pbWFsIHdpZHRoIGZvciBoZWFkZXJzICovXG4gICAgZGVmYXVsdEhlYWRlckdyb3VwTWluV2lkdGg6IGFueTtcbiAgICBtYXhMZXZlbEhlYWRlckRlcHRoOiBudW1iZXI7XG4gICAgZGVmYXVsdFJvd0hlaWdodDogbnVtYmVyO1xuICAgIC8qKiBUaGUgZGVmYXVsdCBmb250IHNpemUsIGNhbGN1bGF0ZWQgZm9yIGVhY2ggZWxlbWVudCAqL1xuICAgIF9iYXNlRm9udFNpemU/OiBudW1iZXI7XG4gICAgc2Nyb2xsU2l6ZTogbnVtYmVyO1xuXG4gICAgLyoqIFRoZSB0cmlnZ2VyIGZvciBncmlkIHZhbGlkYXRpb24uIEl0J3MgdmFsdWUgY2FuIGVpZ2h0ZXIgYmUgYGNoYW5nZWAgb3IgYGJsdXJgICovXG4gICAgdmFsaWRhdGlvblRyaWdnZXI6IEdyaWRWYWxpZGF0aW9uVHJpZ2dlcjtcbiAgICAvKipcbiAgICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgY29sdW1ucyBhbmQgcm93cyBwaW5uaW5nIGluIHRoZSBncmlkXG4gICAgICogSXQncyBvZiB0eXBlIElQaW5uaW5nQ29uZmlnLCB3aGljaCBjYW4gaGF2ZSB2YWx1ZSBmb3IgY29sdW1ucyAoc3RhcnQsIGVuZCkgYW5kIGZvciByb3dzICh0b3AsIGJvdHRvbSlcbiAgICAqL1xuICAgIHBpbm5pbmc6IElQaW5uaW5nQ29uZmlnO1xuICAgIGV4cGFuc2lvblN0YXRlczogTWFwPGFueSwgYm9vbGVhbj47XG4gICAgcGFyZW50VmlydERpcjogYW55O1xuICAgIHRib2R5OiBhbnk7XG4gICAgdmVydGljYWxTY3JvbGxDb250YWluZXI6IGFueTtcbiAgICBkYXRhUm93TGlzdDogYW55O1xuICAgIHJvd0xpc3Q6IGFueTtcbiAgICAvKiogQW4gdW5tb2RpZmlhYmxlIGxpc3QsIGNvbnRhaW5pbmcgYWxsIHRoZSBjb2x1bW5zIG9mIHRoZSBncmlkLiAqL1xuICAgIGNvbHVtbkxpc3Q6IFF1ZXJ5TGlzdDxDb2x1bW5UeXBlPjtcbiAgICBjb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgLyoqIEFuIGFycmF5IG9mIGNvbHVtbnMsIGJ1dCBpdCBjb3VudHMgb25seSB0aGUgb25lcyB2aXNpYmxlIChub3QgaGlkZGVuKSBpbiB0aGUgdmlldyAqL1xuICAgIHZpc2libGVDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgLyoqIEFuIGFycmF5IG9mIGNvbHVtbnMsIGJ1dCBpdCBjb3VudHMgb25seSB0aGUgb25lcyB0aGF0IGFyZSBub3QgcGlubmVkICovXG4gICAgdW5waW5uZWRDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgLyoqIEFuIGFycmF5IG9mIGNvbHVtbnMsIGJ1dCBpdCBjb3VudHMgb25seSB0aGUgb25lcyB0aGF0IGFyZSBwaW5uZWQgKi9cbiAgICBwaW5uZWRDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgLyoqIHJlcHJlc2VudHMgYW4gYXJyYXkgb2YgdGhlIGhlYWRlcnMgb2YgdGhlIGNvbHVtbnMgKi9cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoZWFkZXJDZWxsTGlzdDogYW55W107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGVhZGVyR3JvdXBzOiBhbnlbXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoZWFkZXJHcm91cHNMaXN0OiBhbnlbXTtcbiAgICBzdW1tYXJpZXNSb3dMaXN0OiBhbnk7XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgaGVhZGVyQ29udGFpbmVyOiBhbnk7XG4gICAgLyoqIEluZGljYXRlcyB3aGV0aGVyIGNlbGxzIGFyZSBzZWxlY3RhYmxlIGluIHRoZSBncmlkICovXG4gICAgaXNDZWxsU2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHdoZXRoZXIgaXQgaXMgYWxsb3dlZCB0byBzZWxlY3QgbW9yZSB0aGFuIG9uZSByb3cgaW4gdGhlIGdyaWQgKi9cbiAgICBpc011bHRpUm93U2VsZWN0aW9uRW5hYmxlZDogYm9vbGVhbjtcbiAgICBoYXNQaW5uZWRSZWNvcmRzOiBib29sZWFuO1xuICAgIHBpbm5lZFJlY29yZHNDb3VudDogbnVtYmVyO1xuICAgIHBpbm5lZFJlY29yZHM6IGFueVtdO1xuICAgIHVucGlubmVkUmVjb3JkczogYW55W107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGlubmVkRGF0YVZpZXc6IGFueVtdO1xuICAgIHBpbm5lZFJvd3M6IGFueVtdO1xuICAgIGRhdGFWaWV3OiBhbnlbXTtcbiAgICBfZmlsdGVyZWRVbnBpbm5lZERhdGE6IGFueVtdO1xuICAgIF9maWx0ZXJlZFNvcnRlZFVucGlubmVkRGF0YTogYW55W107XG4gICAgZmlsdGVyZWRTb3J0ZWREYXRhOiBhbnlbXTtcbiAgICBkYXRhV2l0aEFkZGVkSW5UcmFuc2FjdGlvblJvd3M6IGFueVtdO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSB0cmFuc2FjdGlvbiBzZXJ2aWNlIGZvciB0aGUgZ3JpZC4gKi9cbiAgICByZWFkb25seSB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uU2VydmljZTxUcmFuc2FjdGlvbiwgU3RhdGU+O1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSB2YWxpZGF0aW9uIHNlcnZpY2UgZm9yIHRoZSBncmlkLiBUaGUgdHlwZSBjb250YWlucyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIChsb2dpYykgZm9yIHZhbGlkYXRpbmcgcmVjb3JkcyAqL1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb246IElneEdyaWRWYWxpZGF0aW9uU2VydmljZTtcbiAgICBkZWZhdWx0U3VtbWFyeUhlaWdodDogbnVtYmVyO1xuICAgIHN1bW1hcnlSb3dIZWlnaHQ6IG51bWJlcjtcbiAgICByb3dFZGl0aW5nT3ZlcmxheTogSWd4VG9nZ2xlRGlyZWN0aXZlO1xuICAgIHRvdGFsUm93c0NvdW50QWZ0ZXJGaWx0ZXI6IG51bWJlcjtcbiAgICBfdG90YWxSZWNvcmRzOiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyB0aGUgcGFnaW5nIG9mIHRoZSBncmlkLiBJdCBjYW4gYmUgZWlnaHRlciAnTG9jYWwnIG9yICdSZW1vdGUnXG4gICAgICogLSBMb2NhbDogRGVmYXVsdCB2YWx1ZTsgVGhlIGdyaWQgd2lsbCBwYWdpbmF0ZSB0aGUgZGF0YSBzb3VyY2UgYmFzZWQgb24gdGhlIHBhZ2VcbiAgICAgKi9cbiAgICBwYWdpbmdNb2RlOiBHcmlkUGFnaW5nTW9kZTtcbiAgICAvKiogVGhlIHBhZ2luZyBzdGF0ZSBmb3IgdGhlIGdyaWQ7IFVzZWQgdG8gY29uZmlndXJlIGhvdyBwYWdpbmcgc2hvdWxkIGJlIGFwcGxpZWQgLSB3aGljaCBpcyB0aGUgY3VycmVudCBwYWdlLCByZWNvcmRzIHBlciBwYWdlICovXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwYWdpbmdTdGF0ZTogYW55O1xuXG4gICAgcm93RWRpdFRhYnM6IGFueTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgbGFzdCBzZWFyY2ggaW4gdGhlIGdyaWRcbiAgICAgKiBJdCBjb250YWlucyB0aGUgc2VhcmNoIHRleHQgKHRoZSB1c2VyIGhhcyBlbnRlcmVkKSwgdGhlIG1hdGNoIGFuZCBzb21lIHNldHRpbmdzIGZvciB0aGUgc2VhcmNoXG4gICAgICovXG4gICAgbGFzdFNlYXJjaEluZm86IElTZWFyY2hJbmZvO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBhZ2U6IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwZXJQYWdlOiBudW1iZXI7XG4gICAgLyoqIFRoZSBJRCBvZiB0aGUgcm93IGN1cnJlbnRseSBiZWluZyBkcmFnZ2VkIGluIHRoZSBncmlkLiAqL1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGRyYWdSb3dJRDogYW55O1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hldGhlciBhIHJvdyBpcyBjdXJyZW50bHkgYmVpbmcgZHJhZ2dlZCAqL1xuICAgIHJvd0RyYWdnaW5nOiBib29sZWFuO1xuXG4gICAgZmlyc3RFZGl0YWJsZUNvbHVtbkluZGV4OiBudW1iZXI7XG4gICAgbGFzdEVkaXRhYmxlQ29sdW1uSW5kZXg6IG51bWJlcjtcbiAgICBpc1Jvd1Bpbm5pbmdUb1RvcDogYm9vbGVhbjtcbiAgICBoYXNEZXRhaWxzOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhhc1N1bW1hcml6ZWRDb2x1bW5zOiBib29sZWFuO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGhhc0NvbHVtbkdyb3VwczogYm9vbGVhbjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBoYXNFZGl0YWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgLyoqIFByb3BlcnR5LCB0aGF0IHByb3ZpZGVzIGEgY2FsbGJhY2sgZm9yIGxvYWRpbmcgdW5pcXVlIGNvbHVtbiB2YWx1ZXMgb24gZGVtYW5kLlxuICAgICAqIElmIHRoaXMgcHJvcGVydHkgaXMgcHJvdmlkZWQsIHRoZSB1bmlxdWUgdmFsdWVzIGl0IGdlbmVyYXRlcyB3aWxsIGJlIHVzZWQgYnkgdGhlIEV4Y2VsIFN0eWxlIEZpbHRlcmluZyAgKi9cbiAgICB1bmlxdWVDb2x1bW5WYWx1ZXNTdHJhdGVneTogKGNvbHVtbjogQ29sdW1uVHlwZSwgdHJlZTogRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlLCBkb25lOiAodmFsdWVzOiBhbnlbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICAvKiogUHJvcGVydHksIHRoYXQgZ2V0cyB0aGUgaGVhZGVyIGNlbGwgaW5uZXIgd2lkdGggZm9yIGF1dG8tc2l6aW5nLiAqL1xuICAgIGdldEhlYWRlckNlbGxXaWR0aDogKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiBJU2l6ZUluZm87XG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBjaGFuZ2UgZGV0ZWN0aW9uIGZ1bmN0aW9uYWxpdHkuXG4gICAgICogQSBjaGFuZ2UtZGV0ZWN0aW9uIHRyZWUgY29sbGVjdHMgYWxsIHZpZXdzIHRoYXQgYXJlIHRvIGJlIGNoZWNrZWQgZm9yIGNoYW5nZXMuXG4gICAgICogVGhlIHByb3BlcnR5IGNhbm5vdCBiZSBjaGFuZ2VkIChyZWFkb25seSkgKi9cbiAgICByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIGRvY3VtZW50OiBEb2N1bWVudDtcbiAgICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBleHBhbmRlZCByb3cgaW5kaWNhdG9ycy5cbiAgICAgKiBJdCBpcyBvZiB0eXBlIFRlbXBsYXRlUmVmLCB3aGljaCByZXByZXNlbnRzIGFuIGVtYmVkZGVkIHRlbXBsYXRlLCB1c2VkIHRvIGluc3RhbmNpYXRlIGVtYmVkZGVkIHZpZXdzXG4gICAgICovXG4gICAgcm93RXhwYW5kZWRJbmRpY2F0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZFJvd1RlbXBsYXRlQ29udGV4dD47XG4gICAgLyoqXG4gICAgICogVGhlIHRlbXBsYXRlIGZvciBjb2xsYXBzZWQgcm93IGluZGljYXRvcnMuXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIHJvd0NvbGxhcHNlZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkUm93VGVtcGxhdGVDb250ZXh0PjtcbiAgICAvKipcbiAgICAgKiBUaGUgdGVtcGxhdGUgZm9yIGhlYWRlciBpY29uXG4gICAgICogSXQgaXMgb2YgdHlwZSBUZW1wbGF0ZVJlZiwgd2hpY2ggcmVwcmVzZW50cyBhbiBlbWJlZGRlZCB0ZW1wbGF0ZSwgdXNlZCB0byBpbnN0YW5jaWF0ZSBlbWJlZGRlZCB2aWV3c1xuICAgICAqL1xuICAgIGV4Y2VsU3R5bGVIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRIZWFkZXJUZW1wbGF0ZUNvbnRleHQ+O1xuXG4gICAgc2VsZWN0Um93T25DbGljazogYm9vbGVhbjtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgc2VsZWN0aW9uIG1vZGUgZm9yIGNlbGxzOiAnbm9uZScsJ3NpbmdsZScsICdtdWx0aXBsZScsICdtdWx0aXBsZUNhc2NhZGUnICovXG4gICAgY2VsbFNlbGVjdGlvbjogR3JpZFNlbGVjdGlvbk1vZGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHNlbGVjdGlvbiBtb2RlIGZvciByb3dzOiAnbm9uZScsJ3NpbmdsZScsICdtdWx0aXBsZScsICdtdWx0aXBsZUNhc2NhZGUnICovXG4gICAgcm93U2VsZWN0aW9uOiBHcmlkU2VsZWN0aW9uTW9kZTtcbiAgICAvKiogUmVwcmVzZW50cyB0aGUgc2VsZWN0aW9uIG1vZGUgZm9yIGNvbHVtbnM6ICdub25lJywnc2luZ2xlJywgJ211bHRpcGxlJywgJ211bHRpcGxlQ2FzY2FkZScgKi9cbiAgICBjb2x1bW5TZWxlY3Rpb246IEdyaWRTZWxlY3Rpb25Nb2RlO1xuICAgIC8qKiBSZXByZXNlbnRzIHRoZSBjYWxjdWxhdGlvbiBtb2RlIGZvciBzdW1tYXJpZXM6ICdyb290TGV2ZWxPbmx5JywgJ2NoaWxkTGV2ZWxzT25seScsICdyb290QW5kQ2hpbGRMZXZlbHMnICovXG4gICAgc3VtbWFyeUNhbGN1bGF0aW9uTW9kZTogR3JpZFN1bW1hcnlDYWxjdWxhdGlvbk1vZGU7XG4gICAgLyoqIFJlcHJlc2VudHMgdGhlIHBvc2l0aW9uIG9mIHN1bW1hcmllczogJ3RvcCcsICdib3R0b20nICovXG4gICAgc3VtbWFyeVBvc2l0aW9uOiBHcmlkU3VtbWFyeVBvc2l0aW9uO1xuXG4gICAgLy8gWFhYOiBXb3JrIGFyb3VuZCB0aWxsIHdlIGZpeGVkIHRoZSBpbmplY3Rpb24gdG9rZW5zXG4gICAgbGFzdENoaWxkR3JpZD86IEdyaWRUeXBlO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHRvb2xiYXJPdXRsZXQ/OiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHBhZ2luYXRvck91dGxldD86IFZpZXdDb250YWluZXJSZWY7XG4gICAgZmxhdERhdGE/OiBhbnlbXSB8IG51bGw7XG4gICAgY2hpbGRSb3c/OiBhbnk7XG4gICAgZXhwYW5zaW9uRGVwdGg/OiBudW1iZXI7XG4gICAgY2hpbGREYXRhS2V5PzogYW55O1xuICAgIGZvcmVpZ25LZXk/OiBhbnk7XG4gICAgY2FzY2FkZU9uRGVsZXRlPzogYm9vbGVhbjtcbiAgICBsb2FkQ2hpbGRyZW5PbkRlbWFuZD86IChwYXJlbnRJRDogYW55LCBkb25lOiAoY2hpbGRyZW46IGFueVtdKSA9PiB2b2lkKSA9PiB2b2lkO1xuICAgIGhhc0NoaWxkcmVuS2V5PzogYW55O1xuICAgIGxvYWRpbmdSb3dzPzogU2V0PGFueT47XG4gICAgcGFyZW50PzogR3JpZFR5cGU7XG4gICAgaGlnaGxpZ2h0ZWRSb3dJRD86IGFueTtcbiAgICB1cGRhdGVPblJlbmRlcj86IGJvb2xlYW47XG4gICAgY2hpbGRMYXlvdXRLZXlzPzogYW55W107XG4gICAgY2hpbGRMYXlvdXRMaXN0PzogUXVlcnlMaXN0PGFueT47XG4gICAgcm9vdEdyaWQ/OiBHcmlkVHlwZTtcbiAgICBwcm9jZXNzZWRSb290UmVjb3Jkcz86IElUcmVlR3JpZFJlY29yZFtdO1xuICAgIHJvb3RSZWNvcmRzPzogSVRyZWVHcmlkUmVjb3JkW107XG4gICAgcmVjb3Jkcz86IE1hcDxhbnksIElUcmVlR3JpZFJlY29yZD47XG4gICAgcHJvY2Vzc2VkRXhwYW5kZWRGbGF0RGF0YT86IGFueVtdIHwgbnVsbDtcbiAgICBwcm9jZXNzZWRSZWNvcmRzPzogTWFwPGFueSwgSVRyZWVHcmlkUmVjb3JkPjtcbiAgICB0cmVlR3JvdXBBcmVhPzogYW55O1xuXG4gICAgYWN0aXZlTm9kZUNoYW5nZTogRXZlbnRFbWl0dGVyPElBY3RpdmVOb2RlQ2hhbmdlRXZlbnRBcmdzPjtcbiAgICBncmlkS2V5ZG93bjogRXZlbnRFbWl0dGVyPElHcmlkS2V5ZG93bkV2ZW50QXJncz47XG4gICAgY2VsbENsaWNrOiBFdmVudEVtaXR0ZXI8SUdyaWRDZWxsRXZlbnRBcmdzPjtcbiAgICBkb3VibGVDbGljazogRXZlbnRFbWl0dGVyPElHcmlkQ2VsbEV2ZW50QXJncz47XG4gICAgY29udGV4dE1lbnU6IEV2ZW50RW1pdHRlcjxJR3JpZENlbGxFdmVudEFyZ3M+O1xuICAgIHNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8SUdyaWRDZWxsRXZlbnRBcmdzPjtcbiAgICByYW5nZVNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8R3JpZFNlbGVjdGlvblJhbmdlPjtcbiAgICByb3dTZWxlY3Rpb25DaGFuZ2luZzogRXZlbnRFbWl0dGVyPElSb3dTZWxlY3Rpb25FdmVudEFyZ3M+O1xuICAgIGxvY2FsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuICAgIGZpbHRlcmluZzogRXZlbnRFbWl0dGVyPElGaWx0ZXJpbmdFdmVudEFyZ3M+O1xuICAgIGZpbHRlcmluZ0RvbmU6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlPjtcbiAgICBjb2x1bW5QaW5uZWQ6IEV2ZW50RW1pdHRlcjxJUGluQ29sdW1uRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5SZXNpemVkOiBFdmVudEVtaXR0ZXI8SUNvbHVtblJlc2l6ZUV2ZW50QXJncz47XG4gICAgY29sdW1uTW92aW5nRW5kOiBFdmVudEVtaXR0ZXI8SUNvbHVtbk1vdmluZ0VuZEV2ZW50QXJncz47XG4gICAgY29sdW1uU2VsZWN0aW9uQ2hhbmdpbmc6IEV2ZW50RW1pdHRlcjxJQ29sdW1uU2VsZWN0aW9uRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5Nb3Zpbmc6IEV2ZW50RW1pdHRlcjxJQ29sdW1uTW92aW5nRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5Nb3ZpbmdTdGFydDogRXZlbnRFbWl0dGVyPElDb2x1bW5Nb3ZpbmdTdGFydEV2ZW50QXJncz47XG4gICAgY29sdW1uUGluOiBFdmVudEVtaXR0ZXI8SVBpbkNvbHVtbkNhbmNlbGxhYmxlRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5WaXNpYmlsaXR5Q2hhbmdpbmc6IEV2ZW50RW1pdHRlcjxJQ29sdW1uVmlzaWJpbGl0eUNoYW5naW5nRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5WaXNpYmlsaXR5Q2hhbmdlZDogRXZlbnRFbWl0dGVyPElDb2x1bW5WaXNpYmlsaXR5Q2hhbmdlZEV2ZW50QXJncz47XG4gICAgYmF0Y2hFZGl0aW5nQ2hhbmdlPzogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuICAgIGRlbnNpdHlDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8SURlbnNpdHlDaGFuZ2VkRXZlbnRBcmdzPjtcbiAgICByb3dBZGQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIHJvd0FkZGVkOiBFdmVudEVtaXR0ZXI8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIHJvd0FkZGVkTm90aWZpZXI6IFN1YmplY3Q8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIHJvd0RlbGV0ZWQ6IEV2ZW50RW1pdHRlcjxJUm93RGF0YUV2ZW50QXJncz47XG4gICAgcm93RGVsZXRlZE5vdGlmaWVyOiBTdWJqZWN0PElSb3dEYXRhRXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdEVudGVyOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdDogRXZlbnRFbWl0dGVyPElHcmlkRWRpdEV2ZW50QXJncz47XG4gICAgY2VsbEVkaXREb25lOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgY2VsbEVkaXRFeGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgcm93RWRpdEVudGVyOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICByb3dFZGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICByb3dFZGl0RG9uZTogRXZlbnRFbWl0dGVyPElHcmlkRWRpdERvbmVFdmVudEFyZ3M+O1xuICAgIHJvd0VkaXRFeGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgcm93RHJhZ1N0YXJ0OiBFdmVudEVtaXR0ZXI8SVJvd0RyYWdTdGFydEV2ZW50QXJncz47XG4gICAgcm93RHJhZ0VuZDogRXZlbnRFbWl0dGVyPElSb3dEcmFnRW5kRXZlbnRBcmdzPjtcbiAgICByb3dUb2dnbGU6IEV2ZW50RW1pdHRlcjxJUm93VG9nZ2xlRXZlbnRBcmdzPjtcbiAgICBmb3JtR3JvdXBDcmVhdGVkOiBFdmVudEVtaXR0ZXI8SUdyaWRGb3JtR3JvdXBDcmVhdGVkRXZlbnRBcmdzPjtcbiAgICB2YWxpZGF0aW9uU3RhdHVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUdyaWRWYWxpZGF0aW9uU3RhdHVzRXZlbnRBcmdzPjtcblxuICAgIHRvb2xiYXJFeHBvcnRpbmc6IEV2ZW50RW1pdHRlcjxJR3JpZFRvb2xiYXJFeHBvcnRFdmVudEFyZ3M+O1xuICAgIHJlbmRlcmVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICByZXNpemVOb3RpZnk6IFN1YmplY3Q8dm9pZD47XG5cbiAgICBzb3J0U3RyYXRlZ3k6IElHcmlkU29ydGluZ1N0cmF0ZWd5O1xuICAgIGdyb3VwU3RyYXRlZ3k/OiBJR3JpZEdyb3VwaW5nU3RyYXRlZ3k7XG4gICAgZmlsdGVyaW5nTG9naWM6IEZpbHRlcmluZ0xvZ2ljO1xuICAgIGZpbHRlclN0cmF0ZWd5OiBJRmlsdGVyaW5nU3RyYXRlZ3k7XG4gICAgYWxsb3dBZHZhbmNlZEZpbHRlcmluZzogYm9vbGVhbjtcbiAgICBzb3J0aW5nRXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdO1xuICAgIHNvcnRpbmdFeHByZXNzaW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPElTb3J0aW5nRXhwcmVzc2lvbltdPjtcbiAgICBmaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU7XG4gICAgZmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZT47XG4gICAgYWR2YW5jZWRGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU7XG4gICAgYWR2YW5jZWRGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlPjtcbiAgICBzb3J0aW5nT3B0aW9uczogSVNvcnRpbmdPcHRpb25zO1xuXG4gICAgYmF0Y2hFZGl0aW5nOiBib29sZWFuO1xuICAgIGdyb3VwaW5nRXhwYW5zaW9uU3RhdGU/OiBJR3JvdXBCeUV4cGFuZFN0YXRlW107XG4gICAgZ3JvdXBpbmdFeHByZXNzaW9ucz86IElHcm91cGluZ0V4cHJlc3Npb25bXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zQ2hhbmdlPzogRXZlbnRFbWl0dGVyPElHcm91cGluZ0V4cHJlc3Npb25bXT47XG4gICAgZ3JvdXBzRXhwYW5kZWQ/OiBib29sZWFuO1xuICAgIHJlYWRvbmx5IGdyb3Vwc1JlY29yZHM/OiBJR3JvdXBCeVJlY29yZFtdO1xuICAgIGdyb3VwaW5nRmxhdFJlc3VsdD86IGFueVtdO1xuICAgIGdyb3VwaW5nUmVzdWx0PzogYW55W107XG4gICAgZ3JvdXBpbmdNZXRhZGF0YT86IGFueVtdO1xuICAgIHNlbGVjdGVkQ2VsbHM/OiBDZWxsVHlwZVtdO1xuICAgIHNlbGVjdGVkUm93czogYW55W107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgYWN0aXZlRGVzY2VuZGFudD86IHN0cmluZztcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBpc1Bpdm90PzogYm9vbGVhbjtcblxuICAgIHRvZ2dsZUdyb3VwPyhncm91cFJvdzogSUdyb3VwQnlSZWNvcmQpOiB2b2lkO1xuICAgIGNsZWFyR3JvdXBpbmc/KGZpZWxkOiBzdHJpbmcpOiB2b2lkO1xuICAgIGdyb3VwQnk/KGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24gfCBBcnJheTxJR3JvdXBpbmdFeHByZXNzaW9uPik6IHZvaWQ7XG4gICAgcmVzb2x2ZU91dGxldD8oKTogSWd4T3ZlcmxheU91dGxldERpcmVjdGl2ZTtcbiAgICB1cGRhdGVDb2x1bW5zKGNvbHVtbnM6IENvbHVtblR5cGVbXSk6IHZvaWQ7XG4gICAgZ2V0U2VsZWN0ZWRSYW5nZXMoKTogR3JpZFNlbGVjdGlvblJhbmdlW107XG4gICAgZGVzZWxlY3RBbGxDb2x1bW5zKCk6IHZvaWQ7XG4gICAgZGVzZWxlY3RDb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdIHwgQ29sdW1uVHlwZVtdKTogdm9pZDtcbiAgICBzZWxlY3RDb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdIHwgQ29sdW1uVHlwZVtdKTogdm9pZDtcbiAgICBzZWxlY3RlZENvbHVtbnMoKTogQ29sdW1uVHlwZVtdO1xuICAgIHJlZnJlc2hTZWFyY2goKTogdm9pZDtcbiAgICBnZXREZWZhdWx0RXhwYW5kU3RhdGUocmVjb3JkOiBhbnkpOiBib29sZWFuO1xuICAgIHRyYWNrQ29sdW1uQ2hhbmdlcyhpbmRleDogbnVtYmVyLCBjb2x1bW46IGFueSk6IGFueTtcbiAgICBnZXRQb3NzaWJsZUNvbHVtbldpZHRoKCk6IHN0cmluZztcbiAgICByZXNldEhvcml6b250YWxWaXJ0dWFsaXphdGlvbigpOiB2b2lkO1xuICAgIGhhc1ZlcnRpY2FsU2Nyb2xsKCk6IGJvb2xlYW47XG4gICAgZ2V0VmlzaWJsZUNvbnRlbnRIZWlnaHQoKTogbnVtYmVyO1xuICAgIGdldERyYWdHaG9zdEN1c3RvbVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICAgIG9wZW5Sb3dPdmVybGF5KGlkOiBhbnkpOiB2b2lkO1xuICAgIG9wZW5BZHZhbmNlZEZpbHRlcmluZ0RpYWxvZygpOiB2b2lkO1xuICAgIHNob3dTbmFja2JhckZvcihpbmRleDogbnVtYmVyKTogdm9pZDtcbiAgICBnZXRDb2x1bW5CeU5hbWUobmFtZTogc3RyaW5nKTogYW55O1xuICAgIGdldENvbHVtbkJ5VmlzaWJsZUluZGV4KGluZGV4OiBudW1iZXIpOiBDb2x1bW5UeXBlO1xuICAgIGdldEhlYWRlckdyb3VwV2lkdGgoY29sdW1uOiBDb2x1bW5UeXBlKTogc3RyaW5nO1xuICAgIGdldFJvd0J5S2V5PyhrZXk6IGFueSk6IFJvd1R5cGU7XG4gICAgZ2V0Um93QnlJbmRleD8oaW5kZXg6IG51bWJlcik6IFJvd1R5cGU7XG4gICAgc2V0RmlsdGVyZWREYXRhKGRhdGE6IGFueSwgcGlubmVkOiBib29sZWFuKTogdm9pZDtcbiAgICBzZXRGaWx0ZXJlZFNvcnRlZERhdGEoZGF0YTogYW55LCBwaW5uZWQ6IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNvcnQoZXhwcmVzc2lvbjogSVNvcnRpbmdFeHByZXNzaW9uIHwgSVNvcnRpbmdFeHByZXNzaW9uW10pOiB2b2lkO1xuICAgIGNsZWFyU29ydChuYW1lPzogc3RyaW5nKTogdm9pZDtcbiAgICBwaW5Sb3coaWQ6IGFueSwgaW5kZXg/OiBudW1iZXIsIHJvdz86IFJvd1R5cGUpOiBib29sZWFuO1xuICAgIHVucGluUm93KGlkOiBhbnksIHJvdz86IFJvd1R5cGUpOiBib29sZWFuO1xuICAgIGdldFVucGlubmVkSW5kZXhCeUlkKGlkOiBhbnkpOiBudW1iZXI7XG4gICAgZ2V0RW1wdHlSZWNvcmRPYmplY3RGb3IoaW5Sb3c6IFJvd1R5cGUpOiBhbnk7XG4gICAgaXNTdW1tYXJ5Um93KHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc1JlY29yZFBpbm5lZChyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgZ2V0SW5pdGlhbFBpbm5lZEluZGV4KHJlYzogYW55KTogbnVtYmVyO1xuICAgIGlzUmVjb3JkUGlubmVkQnlWaWV3SW5kZXgocm93SW5kZXg6IG51bWJlcik6IGJvb2xlYW47XG4gICAgaXNDb2x1bW5Hcm91cGVkKGZpZWxkTmFtZTogc3RyaW5nKTogYm9vbGVhbjtcbiAgICBpc0RldGFpbFJlY29yZChyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgaXNHcm91cEJ5UmVjb3JkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc0dob3N0UmVjb3JkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc1RyZWVSb3c/KHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc0NoaWxkR3JpZFJlY29yZD8ocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGdldENoaWxkR3JpZHM/KGluRGVwdGg/OiBib29sZWFuKTogYW55W107XG4gICAgaXNIaWVyYXJjaGljYWxSZWNvcmQ/KHJlY29yZDogYW55KTogYm9vbGVhbjtcbiAgICBjb2x1bW5Ub1Zpc2libGVJbmRleChrZXk6IHN0cmluZyB8IG51bWJlcik6IG51bWJlcjtcbiAgICBtb3ZlQ29sdW1uKGNvbHVtbjogQ29sdW1uVHlwZSwgdGFyZ2V0OiBDb2x1bW5UeXBlLCBwb3M6IERyb3BQb3NpdGlvbik6IHZvaWQ7XG4gICAgbmF2aWdhdGVUbyhyb3dJbmRleDogbnVtYmVyLCB2aXNpYmxlQ29sdW1uSW5kZXg6IG51bWJlciwgY2FsbGJhY2s/OiAoZTogYW55KSA9PiBhbnkpOiB2b2lkO1xuICAgIGdldFByZXZpb3VzQ2VsbChjdXJyUm93SW5kZXg6IG51bWJlciwgY3VyVmlzaWJsZUNvbEluZGV4OiBudW1iZXIsIGNhbGxiYWNrOiAoYzogQ29sdW1uVHlwZSkgPT4gYm9vbGVhbik6IElDZWxsUG9zaXRpb247XG4gICAgZ2V0TmV4dENlbGwoY3VyclJvd0luZGV4OiBudW1iZXIsIGN1clZpc2libGVDb2xJbmRleDogbnVtYmVyLCBjYWxsYmFjazogKGM6IENvbHVtblR5cGUpID0+IGJvb2xlYW4pOiBJQ2VsbFBvc2l0aW9uO1xuICAgIGNsZWFyQ2VsbFNlbGVjdGlvbigpOiB2b2lkO1xuICAgIHNlbGVjdFJhbmdlKHJhbmdlOiBHcmlkU2VsZWN0aW9uUmFuZ2UgfCBHcmlkU2VsZWN0aW9uUmFuZ2VbXSk6IHZvaWQ7XG4gICAgc2VsZWN0Um93cyhyb3dJRHM6IGFueVtdLCBjbGVhckN1cnJlbnRTZWxlY3Rpb24/OiBib29sZWFuKTogdm9pZDtcbiAgICBkZXNlbGVjdFJvd3Mocm93SURzOiBhbnlbXSk6IHZvaWQ7XG4gICAgc2VsZWN0QWxsUm93cyhvbmx5RmlsdGVyRGF0YT86IGJvb2xlYW4pOiB2b2lkO1xuICAgIGRlc2VsZWN0QWxsUm93cyhvbmx5RmlsdGVyRGF0YT86IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNldFVwUGFnaW5hdG9yKCk6IHZvaWQ7XG4gICAgY3JlYXRlRmlsdGVyRHJvcGRvd24oY29sdW1uOiBDb2x1bW5UeXBlLCBvcHRpb25zOiBPdmVybGF5U2V0dGluZ3MpOiBhbnk7XG4gICAgdXBkYXRlQ2VsbCh2YWx1ZTogYW55LCByb3dTZWxlY3RvcjogYW55LCBjb2x1bW46IHN0cmluZyk6IHZvaWQ7XG4gICAgLy8gVHlwZSB0byBSb3dUeXBlXG4gICAgY3JlYXRlUm93PyhpbmRleDogbnVtYmVyLCBkYXRhPzogYW55KTogUm93VHlwZTtcbiAgICBkZWxldGVSb3coaWQ6IGFueSk6IGFueTtcbiAgICBkZWxldGVSb3dCeUlkKGlkOiBhbnkpOiBhbnk7XG4gICAgdXBkYXRlUm93KHZhbHVlOiBhbnksIHJvd1NlbGVjdG9yOiBhbnkpOiB2b2lkO1xuICAgIGNvbGxhcHNlUm93KGlkOiBhbnkpOiB2b2lkO1xuICAgIG5vdGlmeUNoYW5nZXMocmVwYWludD86IGJvb2xlYW4pOiB2b2lkO1xuICAgIHJlc2V0Q29sdW1uQ29sbGVjdGlvbnMoKTogdm9pZDtcbiAgICB0cmlnZ2VyUGlwZXMoKTogdm9pZDtcbiAgICByZXBvc2l0aW9uUm93RWRpdGluZ092ZXJsYXkocm93OiBSb3dUeXBlKTogdm9pZDtcbiAgICBjbG9zZVJvd0VkaXRpbmdPdmVybGF5KCk6IHZvaWQ7XG4gICAgcmVmbG93KCk6IHZvaWQ7XG5cbiAgICAvLyBUT0RPOiBNYXliZSBtb3ZlIHRoZW0gdG8gRmxhdEdyaWRUeXBlLCBidXQgdGhlbiB3aWxsIHdlIG5lZWQgYW5vdGhlciB0b2tlbj9cbiAgICBpc0V4cGFuZGVkR3JvdXAoZ3JvdXA6IElHcm91cEJ5UmVjb3JkKTogYm9vbGVhbjtcbiAgICBjcmVhdGVDb2x1bW5zTGlzdD8oY29sczogQ29sdW1uVHlwZVtdKTogdm9pZDtcbiAgICB0b2dnbGVBbGxHcm91cFJvd3M/KCk6IHZvaWQ7XG4gICAgdG9nZ2xlQWxsPygpOiB2b2lkO1xuICAgIGdlbmVyYXRlUm93UGF0aD8ocm93SWQ6IGFueSk6IGFueVtdO1xuICAgIHByZXZlbnRIZWFkZXJTY3JvbGw/KGFyZ3M6IGFueSk6IHZvaWQ7XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBGbGF0IEdyaWQgdHlwZS4gSXQgaXMgZXNzZW50aWFsbHkgdGhlIGJsdWVwcmludCB0byBhIGdyaWQga2luZFxuICogQ29udGFpbnMgZGVmaW5pdGlvbnMgb2YgcHJvcGVydGllcyBhbmQgbWV0aG9kcywgcmVsZXZhbnQgdG8gYSBncmlkIGtpbmRcbiAqIEV4dGVuZHMgZnJvbSBgR3JpZFR5cGVgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmxhdEdyaWRUeXBlIGV4dGVuZHMgR3JpZFR5cGUge1xuICAgIGdyb3VwaW5nRXhwYW5zaW9uU3RhdGU6IElHcm91cEJ5RXhwYW5kU3RhdGVbXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zOiBJR3JvdXBpbmdFeHByZXNzaW9uW107XG4gICAgZ3JvdXBpbmdFeHByZXNzaW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPElHcm91cGluZ0V4cHJlc3Npb25bXT47XG5cbiAgICB0b2dnbGVHcm91cChncm91cFJvdzogSUdyb3VwQnlSZWNvcmQpOiB2b2lkO1xuICAgIGNsZWFyR3JvdXBpbmcoZmllbGQ6IHN0cmluZyk6IHZvaWQ7XG4gICAgZ3JvdXBCeShleHByZXNzaW9uOiBJR3JvdXBpbmdFeHByZXNzaW9uIHwgQXJyYXk8SUdyb3VwaW5nRXhwcmVzc2lvbj4pOiB2b2lkO1xufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIGEgVHJlZSBHcmlkIHR5cGUuIEl0IGlzIGVzc2VudGlhbGx5IHRoZSBibHVlcHJpbnQgdG8gYSBncmlkIGtpbmRcbiAqIENvbnRhaW5zIGRlZmluaXRpb25zIG9mIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMsIHJlbGV2YW50IHRvIGEgZ3JpZCBraW5kXG4gKiBFeHRlbmRzIGZyb20gYEdyaWRUeXBlYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVHcmlkVHlwZSBleHRlbmRzIEdyaWRUeXBlIHtcbiAgICByZWNvcmRzOiBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+O1xuICAgIGlzVHJlZVJvdyhyZWM6IGFueSk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBIaWVyYXJjaGljYWwgR3JpZCB0eXBlLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgZ3JpZCBraW5kXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGdyaWQga2luZFxuICogRXh0ZW5kcyBmcm9tIGBHcmlkVHlwZWBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIaWVyYXJjaGljYWxHcmlkVHlwZSBleHRlbmRzIEdyaWRUeXBlIHtcbiAgICBjaGlsZExheW91dEtleXM6IGFueVtdO1xufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIGEgUGl2b3QgR3JpZCB0eXBlLiBJdCBpcyBlc3NlbnRpYWxseSB0aGUgYmx1ZXByaW50IHRvIGEgZ3JpZCBraW5kXG4gKiBDb250YWlucyBkZWZpbml0aW9ucyBvZiBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCByZWxldmFudCB0byBhIGdyaWQga2luZFxuICogRXh0ZW5kcyBmcm9tIGBHcmlkVHlwZWBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXZvdEdyaWRUeXBlIGV4dGVuZHMgR3JpZFR5cGUge1xuICAgIC8qKlxuICAgICAqIFRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciB0aGUgcGl2b3QgZ3JpZC5cbiAgICAgKiBpdCBpbmNsdWRlcyBkaW1lbnRpb24gc3RyYXRlZ3kgZm9yIHJvd3MgYW5kIGNvbHVtbnMsIGZpbHRlcnMgYW5kIGRhdGEga2V5c1xuICAgICAqL1xuICAgIHBpdm90Q29uZmlndXJhdGlvbjogSVBpdm90Q29uZmlndXJhdGlvbjtcbiAgICAvKipcbiAgICAgKiBBbiBhcnJheSBvZiBhbGwgZGltZW5zaW9ucyAocm93cyBhbmQgY29sdW1ucykgaW4gdGhlIHBpdm90IGdyaWQuXG4gICAgICogaXQgaW5jbHVkZXMgaGllcmFyY2hpY2FsIGxldmVsLCBmaWx0ZXJzIGFuZCBzb3J0aW5nLCBkaW1lbnRpb25hbCBsZXZlbCwgZXRjLlxuICAgICAqL1xuICAgIGFsbERpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdLFxuICAgIC8qKiBTcGVjaWZpZXMgd2hldGhlciB0byBzaG93IHRoZSBwaXZvdCBjb25maWd1cmF0aW9uIFVJIGluIHRoZSBncmlkLiAqL1xuICAgIHNob3dQaXZvdENvbmZpZ3VyYXRpb25VSTogYm9vbGVhbjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBjb2x1bW5EaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXTtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICByb3dEaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXTtcbiAgICByb3dEaW1lbnNpb25SZXNpemluZzogYm9vbGVhbjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICB2YWx1ZXM6IElQaXZvdFZhbHVlW107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZmlsdGVyRGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW107XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgZGltZW5zaW9uRGF0YUNvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICBwaXZvdFJvd1dpZHRoczogbnVtYmVyO1xuICAgIC8qKiBSZXByZXNlbnRzIGEgbWV0aG9kIGRlY2xhcmF0aW9uIGZvciBzZXRpbmcgdXAgdGhlIGNvbHVtbnMgZm9yIHRoZSBwaXZvdCBncmlkIGJhc2VkIG9uIHRoZSBwaXZvdCBjb25maWd1cmF0aW9uICovXG4gICAgc2V0dXBDb2x1bW5zKCk6IHZvaWQ7XG4gICAgLyoqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gdGhhdCBhbGxvd3MgdG9nZ2xlIG9mIGV4cGFuc2lvbiBzdGF0ZSBvZiBhIHJvdyAodGFrZW4gYXMgYSBwYXJhbWV0ZXIpIGluIHRoZSBwaXZvdCBncmlkICovXG4gICAgdG9nZ2xlUm93KHJvd0lEOiBhbnkpOiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFJlcHJlc2VudHMgYSBtZXRob2QgZGVjbGFyYXRpb24gZm9yIHJlc29sdmluZyB0aGUgZGF0YSB0eXBlIGZvciBhIHNwZWNpZmljIGZpZWxkIChjb2x1bW4pLlxuICAgICAqIEl0IHRha2VzIHRoZSBmaWVsZCBhcyBhIHBhcmFtZXRlciBhbmQgcmV0dXJucyBpdCdzIHR5cGVcbiAgICAgKi9cbiAgICByZXNvbHZlRGF0YVR5cGVzKGZpZWxkOiBhbnkpOiBHcmlkQ29sdW1uRGF0YVR5cGU7XG4gICAgLyoqXG4gICAgICogUmVwcmVzZW50cyBhIG1ldGhvZCBkZWNsYXJhdGlvbiBmb3IgbW92aW5nIGRpbWVuc2lvbiBmcm9tIGl0cyBjdXJyZW50bHkgY29sbGVjdGlvbiB0byB0aGUgc3BlY2lmaWVkIHRhcmdldCBjb2xsZWN0aW9uXG4gICAgICogYnkgdHlwZSAoUm93LCBDb2x1bW4gb3IgRmlsdGVyKSBhdCBzcGVjaWZpZWQgaW5kZXggb3IgYXQgdGhlIGNvbGxlY3Rpb24ncyBlbmRcbiAgICAgKi9cbiAgICBtb3ZlRGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uLCB0YXJnZXRDb2xsZWN0aW9uVHlwZTogUGl2b3REaW1lbnNpb25UeXBlLCBpbmRleD86IG51bWJlcik7XG4gICAgZ2V0RGltZW5zaW9uc0J5VHlwZShkaW1lbnNpb246IFBpdm90RGltZW5zaW9uVHlwZSk7XG4gICAgLyoqIFRvZ2dsZXMgdGhlIGRpbWVuc2lvbidzIGVuYWJsZWQgc3RhdGUgb24gb3Igb2ZmLiBUaGUgZGltZW5zaW9uIHJlbWFpbnMgaW4gaXRzIGN1cnJlbnQgY29sbGVjdGlvbiAqL1xuICAgIHRvZ2dsZURpbWVuc2lvbihkaW1lbnNpb246IElQaXZvdERpbWVuc2lvbik7XG4gICAgLyoqIFNvcnQgdGhlIGRpbWVuc2lvbiBhbmQgaXRzIGNoaWxkcmVuIGluIHRoZSBwcm92aWRlZCBkaXJlY3Rpb24gKGFzY2VuZGluZywgZGVzY2VuZGluZyBvciBub25lKS4gKi9cbiAgICBzb3J0RGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uLCBzb3J0RGlyZWN0aW9uOiBTb3J0aW5nRGlyZWN0aW9uKTtcbiAgICAvKiogVG9nZ2xlcyB0aGUgdmFsdWUncyBlbmFibGVkIHN0YXRlIG9uIG9yIG9mZi4gVGhlIHZhbHVlIHJlbWFpbnMgaW4gaXRzIGN1cnJlbnQgY29sbGVjdGlvbi4gKi9cbiAgICB0b2dnbGVWYWx1ZSh2YWx1ZTogSVBpdm90VmFsdWUpO1xuICAgIC8qKiBNb3ZlIHZhbHVlIGZyb20gaXRzIGN1cnJlbnRseSBhdCBzcGVjaWZpZWQgaW5kZXggb3IgYXQgdGhlIGVuZC5cbiAgICAgKiBJZiB0aGUgcGFyYW1ldGVyIGlzIG5vdCBzZXQsIGl0IHdpbGwgYWRkIGl0IHRvIHRoZSBlbmQgb2YgdGhlIGNvbGxlY3Rpb24uICovXG4gICAgbW92ZVZhbHVlKHZhbHVlOiBJUGl2b3RWYWx1ZSwgaW5kZXg/OiBudW1iZXIpO1xuICAgIHJvd0RpbWVuc2lvbldpZHRoVG9QaXhlbHMoZGltOiBJUGl2b3REaW1lbnNpb24pOiBudW1iZXI7XG4gICAgLyoqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIGRpbWVuc2lvbnMgaW4gdGhlIHBpdm90IGdyaWQgY2hhbmdlLiAqL1xuICAgIGRpbWVuc2lvbnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRGltZW5zaW9uc0NoYW5nZT47XG4gICAgLyoqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIHZhbHVlcyBpbiB0aGUgcGl2b3QgZ3JpZCBjaGFuZ2UuICovXG4gICAgdmFsdWVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVZhbHVlc0NoYW5nZT47XG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcGl2b3RLZXlzOiBJUGl2b3RLZXlzO1xuICAgIGhhc011bHRpcGxlVmFsdWVzOiBib29sZWFuO1xuICAgIGV4Y2VsU3R5bGVGaWx0ZXJNYXhIZWlnaHQ6IHN0cmluZztcbiAgICBleGNlbFN0eWxlRmlsdGVyTWluSGVpZ2h0OiBzdHJpbmc7XG4gICAgdmFsdWVDaGlwVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZFNWR0ljb24ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTaXplSW5mbyB7XG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBwYWRkaW5nOiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkTWFzdGVyRGV0YWlsQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBhbnk7XG4gICAgaW5kZXg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcm91cEJ5Um93VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IElHcm91cEJ5UmVjb3JkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogR3JpZFR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkUm93VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IFJvd1R5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkUm93RHJhZ0dob3N0Q29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBhbnksIC8vIHRoaXMgaXMgdGhlIHJvdyBkYXRhXG4gICAgZGF0YTogYW55LCAvLyB0aGlzIGlzIGFsc28gdGhlIHJvdyBkYXRhIGZvciBzb21lIHJlYXNvbi5cbiAgICBncmlkOiBHcmlkVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRFbXB0eVRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkUm93RWRpdFRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiB1bmRlZmluZWQsXG4gICAgcm93Q2hhbmdlc0NvdW50OiBudW1iZXIsXG4gICAgZW5kRWRpdDogKGNvbW1pdDogYm9vbGVhbiwgZXZlbnQ/OiBFdmVudCkgPT4gdm9pZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRSb3dFZGl0VGV4dFRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkUm93RWRpdEFjdGlvbnNUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogKGNvbW1pdDogYm9vbGVhbiwgZXZlbnQ/OiBFdmVudCkgPT4gdm9pZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRIZWFkZXJUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogSGVhZGVyVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneENvbHVtblRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBDb2x1bW5UeXBlLFxuICAgIGNvbHVtbjogQ29sdW1uVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneENlbGxUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogYW55LFxuICAgIGFkZGl0aW9uYWxUZW1wbGF0ZUNvbnRleHQ6IGFueSxcbiAgICBmb3JtQ29udHJvbD86IEZvcm1Db250cm9sPGFueT4sXG4gICAgZGVmYXVsdEVycm9yVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIGNlbGw6IENlbGxUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4Um93U2VsZWN0b3JUZW1wbGF0ZURldGFpbHMge1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgLyoqIEBkZXByZWNhdGVkIFVzZSBga2V5YCAqL1xuICAgIHJvd0lEOiBhbnk7XG4gICAga2V5OiBhbnk7XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgc2VsZWN0PzogKCkgPT4gdm9pZDtcbiAgICBkZXNlbGVjdD86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogSWd4Um93U2VsZWN0b3JUZW1wbGF0ZURldGFpbHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVEZXRhaWxzIHtcbiAgICBzZWxlY3RlZENvdW50OiBudW1iZXI7XG4gICAgdG90YWxDb3VudDogbnVtYmVyO1xuICAgIGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IElneEdyb3VwQnlSb3dTZWxlY3RvclRlbXBsYXRlRGV0YWlscztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hIZWFkU2VsZWN0b3JUZW1wbGF0ZURldGFpbHMge1xuICAgIHNlbGVjdGVkQ291bnQ6IG51bWJlcjtcbiAgICB0b3RhbENvdW50OiBudW1iZXI7XG4gICAgc2VsZWN0QWxsPzogKCkgPT4gdm9pZDtcbiAgICBkZXNlbGVjdEFsbD86ICgpID0+IHZvaWQ7XG59XG5leHBvcnQgaW50ZXJmYWNlIElneEhlYWRTZWxlY3RvclRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBJZ3hIZWFkU2VsZWN0b3JUZW1wbGF0ZURldGFpbHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4U3VtbWFyeVRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBJZ3hTdW1tYXJ5UmVzdWx0W11cbn1cblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZGVzY3JpYmluZyBzZXR0aW5ncyBmb3Igcm93L2NvbHVtbiBwaW5uaW5nIHBvc2l0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElQaW5uaW5nQ29uZmlnIHtcbiAgICBjb2x1bW5zPzogQ29sdW1uUGlubmluZ1Bvc2l0aW9uO1xuICAgIHJvd3M/OiBSb3dQaW5uaW5nUG9zaXRpb247XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgc2V0dGluZ3MgZm9yIGNsaXBib2FyZCBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaXBib2FyZE9wdGlvbnMge1xuICAgIC8qKlxuICAgICAqIEVuYWJsZXMvZGlzYWJsZXMgdGhlIGNvcHkgYmVoYXZpb3JcbiAgICAgKi9cbiAgICBlbmFibGVkOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEluY2x1ZGUgdGhlIGNvbHVtbnMgaGVhZGVycyBpbiB0aGUgY2xpcGJvYXJkIG91dHB1dC5cbiAgICAgKi9cbiAgICBjb3B5SGVhZGVyczogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBBcHBseSB0aGUgY29sdW1ucyBmb3JtYXR0ZXJzIChpZiBhbnkpIG9uIHRoZSBkYXRhIGluIHRoZSBjbGlwYm9hcmQgb3V0cHV0LlxuICAgICAqL1xuICAgIGNvcHlGb3JtYXR0ZXJzOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoZSBzZXBhcmF0b3IgdXNlZCBmb3IgZm9ybWF0dGluZyB0aGUgY29weSBvdXRwdXQuIERlZmF1bHRzIHRvIGBcXHRgLlxuICAgICAqL1xuICAgIHNlcGFyYXRvcjogc3RyaW5nO1xufVxuIl19
|