igniteui-angular 14.1.0-beta.0 → 14.1.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/esm2020/lib/combo/combo.common.mjs +20 -2
  2. package/esm2020/lib/combo/combo.component.mjs +3 -3
  3. package/esm2020/lib/core/i18n/combo-resources.mjs +4 -0
  4. package/esm2020/lib/core/i18n/resources.mjs +4 -1
  5. package/esm2020/lib/grids/api.service.mjs +1 -1
  6. package/esm2020/lib/grids/columns/column.component.mjs +2 -2
  7. package/esm2020/lib/grids/common/grid.interface.mjs +1 -1
  8. package/esm2020/lib/grids/grid/grid-validation.service.mjs +15 -16
  9. package/esm2020/lib/grids/grid-base.directive.mjs +1 -1
  10. package/esm2020/lib/grids/grid-public-cell.mjs +6 -5
  11. package/esm2020/lib/grids/grid-public-row.mjs +6 -5
  12. package/esm2020/lib/grids/public_api.mjs +1 -1
  13. package/esm2020/lib/simple-combo/simple-combo.component.mjs +3 -3
  14. package/esm2020/public_api.mjs +1 -1
  15. package/fesm2015/igniteui-angular.mjs +53 -30
  16. package/fesm2015/igniteui-angular.mjs.map +1 -1
  17. package/fesm2020/igniteui-angular.mjs +53 -29
  18. package/fesm2020/igniteui-angular.mjs.map +1 -1
  19. package/lib/combo/combo.common.d.ts +11 -1
  20. package/lib/core/i18n/combo-resources.d.ts +4 -0
  21. package/lib/core/i18n/resources.d.ts +3 -1
  22. package/lib/grids/columns/column.component.d.ts +1 -1
  23. package/lib/grids/common/grid.interface.d.ts +13 -13
  24. package/lib/grids/grid/grid-validation.service.d.ts +8 -9
  25. package/lib/grids/grid-base.directive.d.ts +2 -2
  26. package/lib/grids/grid-public-cell.d.ts +5 -5
  27. package/lib/grids/grid-public-row.d.ts +5 -5
  28. package/lib/grids/public_api.d.ts +1 -1
  29. package/package.json +1 -1
  30. package/public_api.d.ts +1 -0
@@ -1,4 +1,4 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  export const IGX_GRID_BASE = new InjectionToken('IgxGridBaseToken');
3
3
  export const IGX_GRID_SERVICE_BASE = new InjectionToken('IgxGridServiceBaseToken');
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL2dyaWQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBK0MsY0FBYyxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQThCdEksTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFXLGtCQUFrQixDQUFDLENBQUM7QUFDOUUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQWtCLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXJNb2RlLCBHcmlkUGFnaW5nTW9kZSwgR3JpZFNlbGVjdGlvbk1vZGUsIEdyaWRTdW1tYXJ5Q2FsY3VsYXRpb25Nb2RlLCBHcmlkU3VtbWFyeVBvc2l0aW9uLCBHcmlkVmFsaWRhdGlvblRyaWdnZXIgfSBmcm9tICcuL2VudW1zJztcbmltcG9ydCB7XG4gICAgSVNlYXJjaEluZm8sIElHcmlkQ2VsbEV2ZW50QXJncywgSVJvd1NlbGVjdGlvbkV2ZW50QXJncywgSUNvbHVtblNlbGVjdGlvbkV2ZW50QXJncywgSUdyaWRFZGl0RXZlbnRBcmdzLFxuICAgIElQaW5Db2x1bW5DYW5jZWxsYWJsZUV2ZW50QXJncywgSUNvbHVtblZpc2liaWxpdHlDaGFuZ2VkRXZlbnRBcmdzLCBJQ29sdW1uVmlzaWJpbGl0eUNoYW5naW5nRXZlbnRBcmdzLFxuICAgIElSb3dEcmFnRW5kRXZlbnRBcmdzLCBJQ29sdW1uTW92aW5nU3RhcnRFdmVudEFyZ3MsIElDb2x1bW5Nb3ZpbmdFbmRFdmVudEFyZ3MsXG4gICAgSUdyaWRFZGl0RG9uZUV2ZW50QXJncywgSVJvd0RhdGFFdmVudEFyZ3MsIElHcmlkS2V5ZG93bkV2ZW50QXJncywgSVJvd0RyYWdTdGFydEV2ZW50QXJncyxcbiAgICBJQ29sdW1uTW92aW5nRXZlbnRBcmdzLCBJUGluQ29sdW1uRXZlbnRBcmdzLFxuICAgIElBY3RpdmVOb2RlQ2hhbmdlRXZlbnRBcmdzLFxuICAgIElDZWxsUG9zaXRpb24sIElGaWx0ZXJpbmdFdmVudEFyZ3MsIElDb2x1bW5SZXNpemVFdmVudEFyZ3MsIElSb3dUb2dnbGVFdmVudEFyZ3MsIElHcmlkVG9vbGJhckV4cG9ydEV2ZW50QXJnc1xufSBmcm9tICcuLi9jb21tb24vZXZlbnRzJztcbmltcG9ydCB7IERpc3BsYXlEZW5zaXR5LCBJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9jb3JlL2Rpc3BsYXlEZW5zaXR5JztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuLCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUsIElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb25zLXRyZWUnO1xuaW1wb3J0IHsgSUdyaWRSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4vZ3JpZC1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgSUdyb3VwaW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJR3JvdXBCeVJlY29yZCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LXJlY29yZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlFeHBhbmRTdGF0ZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LWV4cGFuZC1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4UGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4Q2VsbCwgSWd4RWRpdFJvdyB9IGZyb20gJy4vY3J1ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZWxlY3Rpb25SYW5nZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgRmlsdGVyaW5nTG9naWMgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElGaWx0ZXJpbmdTdHJhdGVneSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgRHJvcFBvc2l0aW9uLCBJZ3hDb2x1bW5Nb3ZpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vbW92aW5nL21vdmluZy5zZXJ2aWNlJztcbmltcG9ydCB7IElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmUsIElneFRvZ2dsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG9nZ2xlL3RvZ2dsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSVRyZWVHcmlkUmVjb3JkIH0gZnJvbSAnLi4vdHJlZS1ncmlkL3RyZWUtZ3JpZC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFN0YXRlLCBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgR3JpZENvbHVtbkRhdGFUeXBlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2RhdGEtdXRpbCc7XG5pbXBvcnQgeyBJZ3hGaWx0ZXJpbmdPcGVyYW5kIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1jb25kaXRpb24nO1xuaW1wb3J0IHsgSUNvbHVtblBpcGVBcmdzLCBJU29ydGluZ09wdGlvbnMsIE1STFJlc2l6ZUNvbHVtbkluZm8gfSBmcm9tICcuLi9jb2x1bW5zL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSWd4U3VtbWFyeVJlc3VsdCB9IGZyb20gJy4uL3N1bW1hcmllcy9ncmlkLXN1bW1hcnknO1xuaW1wb3J0IHsgSVNvcnRpbmdFeHByZXNzaW9uLCBJU29ydGluZ1N0cmF0ZWd5LCBTb3J0aW5nRGlyZWN0aW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL3NvcnRpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgSUdyaWRHcm91cGluZ1N0cmF0ZWd5LCBJR3JpZFNvcnRpbmdTdHJhdGVneSB9IGZyb20gJy4vc3RyYXRlZ3knO1xuaW1wb3J0IHsgSUZvck9mU3RhdGUsIElneEdyaWRGb3JPZkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9yLW9mL2Zvcl9vZi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT3ZlcmxheVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3ZlcmxheS91dGlsaXRpZXMnO1xuaW1wb3J0IHsgSVBpbm5pbmdDb25maWcgfSBmcm9tICcuLi9ncmlkLmNvbW1vbic7XG5pbXBvcnQgeyBJRGltZW5zaW9uc0NoYW5nZSwgSVBpdm90Q29uZmlndXJhdGlvbiwgSVBpdm90RGltZW5zaW9uLCBJUGl2b3RLZXlzLCBJUGl2b3RWYWx1ZSwgSVZhbHVlc0NoYW5nZSwgUGl2b3REaW1lbnNpb25UeXBlIH0gZnJvbSAnLi4vcGl2b3QtZ3JpZC9waXZvdC1ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRGF0YUNsb25lU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS1jbG9uZS1zdHJhdGVneSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJZ3hHcmlkVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9ncmlkL2dyaWQtdmFsaWRhdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IElHWF9HUklEX0JBU0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48R3JpZFR5cGU+KCdJZ3hHcmlkQmFzZVRva2VuJyk7XG5leHBvcnQgY29uc3QgSUdYX0dSSURfU0VSVklDRV9CQVNFID0gbmV3IEluamVjdGlvblRva2VuPEdyaWRTZXJ2aWNlVHlwZT4oJ0lneEdyaWRTZXJ2aWNlQmFzZVRva2VuJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBhdGhTZWdtZW50IHtcbiAgICByb3dJRDogYW55O1xuICAgIHJvd0lzbGFuZEtleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkRGF0YUJpbmRhYmxlIHtcbiAgICBkYXRhOiBhbnlbXSB8IG51bGw7XG4gICAgZmlsdGVyZWREYXRhOiBhbnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZWxsVHlwZSB7XG4gICAgdmFsdWU6IGFueTtcbiAgICBlZGl0VmFsdWU6IGFueTtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICBhY3RpdmU6IGJvb2xlYW47XG4gICAgZWRpdGFibGU6IGJvb2xlYW47XG4gICAgZWRpdE1vZGU6IGJvb2xlYW47XG4gICAgbmF0aXZlRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICAgIGNvbHVtbjogQ29sdW1uVHlwZTtcbiAgICByb3c6IFJvd1R5cGU7XG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgaWQ/OiB7IHJvd0lEOiBhbnk7IGNvbHVtbklEOiBudW1iZXI7IHJvd0luZGV4OiBudW1iZXIgfTtcbiAgICBjZWxsSUQ/OiBhbnk7XG4gICAgcmVhZG9ubHkgZXJyb3JzPzogVmFsaWRhdGlvbkVycm9ycztcbiAgICByZWFkb25seT86IGJvb2xlYW47XG4gICAgdGl0bGU/OiBhbnk7XG4gICAgd2lkdGg6IHN0cmluZztcbiAgICB2aXNpYmxlQ29sdW1uSW5kZXg/OiBudW1iZXI7XG4gICAgdXBkYXRlOiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgICBzZXRFZGl0TW9kZT8odmFsdWU6IGJvb2xlYW4pOiB2b2lkO1xuICAgIGNhbGN1bGF0ZVNpemVUb0ZpdD8ocmFuZ2U6IGFueSk6IG51bWJlcjtcbiAgICBhY3RpdmF0ZT8oZXZlbnQ6IEZvY3VzRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZDtcbiAgICBvbkRvdWJsZUNsaWNrPyhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG4gICAgb25DbGljaz8oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvd1R5cGUge1xuICAgIG5hdGl2ZUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIHZpZXdJbmRleDogbnVtYmVyO1xuICAgIGlzR3JvdXBCeVJvdz86IGJvb2xlYW47XG4gICAgaXNTdW1tYXJ5Um93PzogYm9vbGVhbjtcbiAgICBzdW1tYXJpZXM/OiBNYXA8c3RyaW5nLCBJZ3hTdW1tYXJ5UmVzdWx0W10+O1xuICAgIGdyb3VwUm93PzogSUdyb3VwQnlSZWNvcmQ7XG4gICAga2V5PzogYW55O1xuICAgIHJlYWRvbmx5IGVycm9ycz86IFZhbGlkYXRpb25FcnJvcnM7XG4gICAgZGF0YT86IGFueTtcbiAgICBjZWxscz86IFF1ZXJ5TGlzdDxDZWxsVHlwZT4gfCBDZWxsVHlwZVtdO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICB2aXJ0RGlyUm93PzogSWd4R3JpZEZvck9mRGlyZWN0aXZlPGFueT47XG4gICAgcGlubmVkPzogYm9vbGVhbjtcbiAgICBzZWxlY3RlZD86IGJvb2xlYW47XG4gICAgZXhwYW5kZWQ/OiBib29sZWFuO1xuICAgIGRlbGV0ZWQ/OiBib29sZWFuO1xuICAgIGluRWRpdE1vZGU/OiBib29sZWFuO1xuICAgIGNoaWxkcmVuPzogUm93VHlwZVtdO1xuICAgIHBhcmVudD86IFJvd1R5cGU7XG4gICAgaGFzQ2hpbGRyZW4/OiBib29sZWFuO1xuICAgIHRyZWVSb3c/OiBJVHJlZUdyaWRSZWNvcmQ7XG4gICAgYWRkUm93VUk/OiBib29sZWFuO1xuICAgIGZvY3VzZWQ/OiBib29sZWFuO1xuICAgIGdyaWQ6IEdyaWRUeXBlO1xuICAgIG9uUm93U2VsZWN0b3JDbGljaz86IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgICBvbkNsaWNrPzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIGJlZ2luQWRkUm93PzogKCkgPT4gdm9pZDtcbiAgICB1cGRhdGU/OiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgICBkZWxldGU/OiAoKSA9PiBhbnk7XG4gICAgcGluPzogKCkgPT4gdm9pZDtcbiAgICB1bnBpbj86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uVHlwZSB7XG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgY2hpbGRyZW46IFF1ZXJ5TGlzdDxDb2x1bW5UeXBlPjtcbiAgICBhbGxDaGlsZHJlbjogQ29sdW1uVHlwZVtdO1xuICAgIC8vIFRZUEVcbiAgICBoZWFkZXJHcm91cDogYW55O1xuICAgIC8vIFRZUEVcbiAgICBoZWFkZXJDZWxsOiBhbnk7XG4gICAgdmFsaWRhdG9yczogYW55W107XG5cbiAgICBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBjb2xsYXBzaWJsZUluZGljYXRvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBoZWFkZXJDbGFzc2VzOiBhbnk7XG4gICAgaGVhZGVyU3R5bGVzOiBhbnk7XG4gICAgaGVhZGVyR3JvdXBDbGFzc2VzOiBhbnk7XG4gICAgaGVhZGVyR3JvdXBTdHlsZXM6IGFueTtcblxuICAgIGNhbGNXaWR0aDogYW55O1xuICAgIG1pbldpZHRoUHg6IG51bWJlcjtcbiAgICBtYXhXaWR0aFB4OiBudW1iZXI7XG4gICAgbWluV2lkdGg6IHN0cmluZztcbiAgICBtYXhXaWR0aDogc3RyaW5nO1xuICAgIG1pbldpZHRoUGVyY2VudDogbnVtYmVyO1xuICAgIG1heFdpZHRoUGVyY2VudDogbnVtYmVyO1xuXG4gICAgZmllbGQ6IHN0cmluZztcbiAgICBoZWFkZXI/OiBzdHJpbmc7XG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICBkYXRhVHlwZTogR3JpZENvbHVtbkRhdGFUeXBlO1xuICAgIGlubGluZUVkaXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHZpc2libGVJbmRleDogbnVtYmVyO1xuICAgIGNvbGxhcHNpYmxlPzogYm9vbGVhbjtcbiAgICBlZGl0YWJsZTogYm9vbGVhbjtcbiAgICByZXNpemFibGU6IGJvb2xlYW47XG4gICAgc2VhcmNoYWJsZTogYm9vbGVhbjtcbiAgICBjb2x1bW5Hcm91cDogYm9vbGVhbjtcbiAgICAvKiogQGRlcHJlY2F0ZWQgaW4gdmVyc2lvbiAxMy4xLjAuIFVzZSBgSWd4R3JpZENvbXBvbmVudC5tb3ZpbmdgIGluc3RlYWQuKi9cbiAgICBtb3ZhYmxlOiBib29sZWFuO1xuICAgIGdyb3VwYWJsZTogYm9vbGVhbjtcbiAgICBzb3J0YWJsZTogYm9vbGVhbjtcbiAgICBmaWx0ZXJhYmxlOiBib29sZWFuO1xuICAgIGhpZGRlbjogYm9vbGVhbjtcbiAgICBkaXNhYmxlUGlubmluZzogYm9vbGVhbjtcbiAgICBkaXNhYmxlSGlkaW5nOiBib29sZWFuO1xuICAgIHNvcnRTdHJhdGVneTogSVNvcnRpbmdTdHJhdGVneTtcbiAgICBzb3J0aW5nSWdub3JlQ2FzZTogYm9vbGVhbjtcbiAgICBmaWx0ZXJDZWxsOiBhbnk7XG4gICAgZmlsdGVyczogSWd4RmlsdGVyaW5nT3BlcmFuZDtcbiAgICBmaWx0ZXJpbmdJZ25vcmVDYXNlOiBib29sZWFuO1xuICAgIGZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTogRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlO1xuICAgIGhhc1N1bW1hcnk6IGJvb2xlYW47XG4gICAgc3VtbWFyaWVzOiBhbnk7XG4gICAgc3VtbWFyeVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHBpbm5lZDogYm9vbGVhbjtcbiAgICBleHBhbmRlZDogYm9vbGVhbjtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICBzZWxlY3RhYmxlOiBib29sZWFuO1xuICAgIGNvbHVtbkxheW91dDogYm9vbGVhbjtcbiAgICBsZXZlbDogbnVtYmVyO1xuICAgIHJvd1N0YXJ0OiBudW1iZXI7XG4gICAgcm93RW5kOiBudW1iZXI7XG4gICAgY29sU3RhcnQ6IG51bWJlcjtcbiAgICBjb2xFbmQ6IG51bWJlcjtcbiAgICBncmlkUm93U3BhbjogbnVtYmVyO1xuICAgIGdyaWRDb2x1bW5TcGFuOiBudW1iZXI7XG4gICAgY29sdW1uTGF5b3V0Q2hpbGQ6IGJvb2xlYW47XG4gICAgd2lkdGg6IHN0cmluZztcbiAgICB0b3BMZXZlbFBhcmVudD86IENvbHVtblR5cGU7XG4gICAgcGFyZW50PzogQ29sdW1uVHlwZTtcbiAgICBwaXBlQXJnczogSUNvbHVtblBpcGVBcmdzO1xuICAgIGhhc05lc3RlZFBhdGg6IGJvb2xlYW47XG4gICAgZGVmYXVsdFRpbWVGb3JtYXQ6IHN0cmluZztcbiAgICBkZWZhdWx0RGF0ZVRpbWVGb3JtYXQ6IHN0cmluZztcbiAgICBhZGRpdGlvbmFsVGVtcGxhdGVDb250ZXh0OiBhbnk7XG4gICAgaXNMYXN0UGlubmVkOiBib29sZWFuO1xuICAgIGlzRmlyc3RQaW5uZWQ6IGJvb2xlYW47XG4gICAgYXBwbHlTZWxlY3RhYmxlQ2xhc3M6IGJvb2xlYW47XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBncm91cGluZ0NvbXBhcmVyOiAoYTogYW55LCBiOiBhbnkpID0+IG51bWJlcjtcblxuICAgIGZpbHRlckNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIG1vdmUoaW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gICAgZ2V0QXV0b1NpemUoKTogc3RyaW5nO1xuICAgIGdldFJlc2l6YWJsZUNvbFVuZGVyRW5kKCk6IE1STFJlc2l6ZUNvbHVtbkluZm9bXTtcbiAgICBnZXRDZWxsV2lkdGgoKTogc3RyaW5nO1xuICAgIGdldEdyaWRUZW1wbGF0ZShpc1JvdzogYm9vbGVhbik6IHN0cmluZztcbiAgICB0b2dnbGVWaXNpYmlsaXR5KHZhbHVlPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgZm9ybWF0dGVyKHZhbHVlOiBhbnksIHJvd0RhdGE/OiBhbnkpOiBhbnk7XG4gICAgcG9wdWxhdGVWaXNpYmxlSW5kZXhlcz8oKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JpZEZvcm1Hcm91cENyZWF0ZWRFdmVudEFyZ3Mge1xuICAgIGZvcm1Hcm91cDogRm9ybUdyb3VwLFxuICAgIG93bmVyOiBHcmlkVHlwZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkVmFsaWRpdHlTdGF0dXNFdmVudEFyZ3Mge1xuICAgIHN0YXR1czogVmFsaWRpdHlTdGF0dXMsXG4gICAgb3duZXI6IEdyaWRUeXBlXG59XG5cbmV4cG9ydCB0eXBlIFZhbGlkaXR5U3RhdHVzID0gJ1ZBTElEJyB8ICdJTlZBTElEJztcblxuZXhwb3J0IGludGVyZmFjZSBJUmVjb3JkVmFsaWRhdGlvblN0YXRlIHtcbiAgICBrZXk6IGFueTtcbiAgICB2YWxpZDogYm9vbGVhbjtcbiAgICBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnM7XG4gICAgY2VsbHM6IElGaWVsZFZhbGlkYXRpb25TdGF0ZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZFZhbGlkYXRpb25TdGF0ZSB7XG4gICAgZmllbGQ6IHN0cmluZyxcbiAgICB2YWxpZDogYm9vbGVhbixcbiAgICBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnNcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcmlkU2VydmljZVR5cGUge1xuXG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgY3J1ZFNlcnZpY2U6IGFueTtcbiAgICBjbXM6IElneENvbHVtbk1vdmluZ1NlcnZpY2U7XG5cbiAgICBnZXRfZGF0YSgpOiBhbnlbXTtcbiAgICBnZXRfYWxsX2RhdGEoaW5jbHVkZVRyYW5zYWN0aW9ucz86IGJvb2xlYW4pOiBhbnlbXTtcbiAgICBnZXRfY29sdW1uX2J5X25hbWUobmFtZTogc3RyaW5nKTogQ29sdW1uVHlwZTtcbiAgICBnZXRSb3dEYXRhKGlkOiBhbnkpOiBhbnk7XG4gICAgZ2V0X3JlY19ieV9pZChpZDogYW55KTogYW55O1xuICAgIGdldF9yb3dfaWQocm93RGF0YTogYW55KTogYW55O1xuICAgIGdldF9yb3dfYnlfaW5kZXgocm93U2VsZWN0b3I6IGFueSk6IFJvd1R5cGU7XG4gICAgZ2V0X3Jvd19ieV9rZXkocm93U2VsZWN0b3I6IGFueSk6IFJvd1R5cGU7XG4gICAgZ2V0X3JlY19pbmRleF9ieV9pZChwazogc3RyaW5nIHwgbnVtYmVyLCBkYXRhQ29sbGVjdGlvbj86IGFueVtdKTogbnVtYmVyO1xuICAgIGdldF9yZWNfaWRfYnlfaW5kZXgoaW5kZXg6IG51bWJlciwgZGF0YUNvbGxlY3Rpb24/OiBhbnlbXSk6IGFueTtcbiAgICBnZXRfcm93X2luZGV4X2luX2RhdGEocm93SUQ6IGFueSwgZGF0YUNvbGxlY3Rpb24/OiBhbnlbXSk6IG51bWJlcjtcbiAgICBnZXRfY2VsbF9ieV9rZXkocm93U2VsZWN0b3I6IGFueSwgZmllbGQ6IHN0cmluZyk6IENlbGxUeXBlO1xuICAgIGdldF9jZWxsX2J5X2luZGV4KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbklEOiBudW1iZXIgfCBzdHJpbmcpOiBDZWxsVHlwZTtcbiAgICBnZXRfY2VsbF9ieV92aXNpYmxlX2luZGV4KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpO1xuICAgIHNldF9ncm91cHJvd19leHBhbnNpb25fc3RhdGU/KGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZCwgdmFsdWU6IGJvb2xlYW4pOiB2b2lkO1xuICAgIHJvd19kZWxldGVkX3RyYW5zYWN0aW9uKGlkOiBhbnkpOiBib29sZWFuO1xuICAgIGFkZFJvd1RvRGF0YShyb3dEYXRhOiBhbnksIHBhcmVudElEPzogYW55KTogdm9pZDtcbiAgICBkZWxldGVSb3dCeUlkKGlkOiBhbnkpOiBhbnk7XG4gICAgZ2V0X3Jvd19leHBhbnNpb25fc3RhdGUoaWQ6IGFueSk6IGJvb2xlYW47XG4gICAgc2V0X3Jvd19leHBhbnNpb25fc3RhdGUoaWQ6IGFueSwgZXhwYW5kZWQ6IGJvb2xlYW4sIGV2ZW50PzogRXZlbnQpOiB2b2lkO1xuICAgIGdldF9zdW1tYXJ5X2RhdGEoKTogYW55W107XG5cbiAgICBwcmVwYXJlX3NvcnRpbmdfZXhwcmVzc2lvbihzdGF0ZUNvbGxlY3Rpb25zOiBBcnJheTxBcnJheTxhbnk+PiwgZXhwcmVzc2lvbjogSVNvcnRpbmdFeHByZXNzaW9uKTogdm9pZDtcbiAgICBzb3J0KGV4cHJlc3Npb246IElTb3J0aW5nRXhwcmVzc2lvbik6IHZvaWQ7XG4gICAgc29ydF9tdWx0aXBsZShleHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW10pOiB2b2lkO1xuICAgIGNsZWFyX3NvcnQoZmllbGROYW1lOiBzdHJpbmcpOiB2b2lkO1xuXG4gICAgZmlsdGVyRGF0YUJ5RXhwcmVzc2lvbnMoZXhwcmVzc2lvbnNUcmVlOiBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlKTogYW55W107XG4gICAgc29ydERhdGFCeUV4cHJlc3Npb25zKGRhdGE6IGFueVtdLCBleHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW10pOiBhbnlbXTtcblxuICAgIHVwZGF0ZV9jZWxsKGNlbGw6IElneENlbGwpOiBJR3JpZEVkaXRFdmVudEFyZ3M7XG4gICAgdXBkYXRlX3Jvdyhyb3c6IElneEVkaXRSb3csIHZhbHVlOiBhbnksIGV2ZW50PzogRXZlbnQpOiBJR3JpZEVkaXRFdmVudEFyZ3M7XG5cbiAgICBleHBhbmRfcGF0aF90b19yZWNvcmQ/KHJlY29yZDogSVRyZWVHcmlkUmVjb3JkKTogdm9pZDtcbiAgICBnZXRfc2VsZWN0ZWRfY2hpbGRyZW4/KHJlY29yZDogSVRyZWVHcmlkUmVjb3JkLCBzZWxlY3RlZFJvd0lEczogYW55W10pOiB2b2lkO1xuICAgIGdldF9ncm91cEJ5X3JlY29yZF9pZD8oZ1JvdzogSUdyb3VwQnlSZWNvcmQpOiBzdHJpbmc7XG4gICAgcmVtb3ZlX2dyb3VwaW5nX2V4cHJlc3Npb24/KGZpZWxkTmFtZTogc3RyaW5nKTogdm9pZDtcbiAgICBjbGVhcl9ncm91cGJ5PyhmaWVsZDogc3RyaW5nIHwgYW55KTogdm9pZDtcbiAgICBnZXRQYXJlbnRSb3dJZD8oY2hpbGQ6IEdyaWRUeXBlKTogYW55O1xuICAgIGdldENoaWxkR3JpZHM/KGluRGVwdGg/OiBib29sZWFuKTogR3JpZFR5cGVbXTtcbiAgICBnZXRDaGlsZEdyaWQ/KHBhdGg6IElQYXRoU2VnbWVudFtdKTogR3JpZFR5cGU7XG5cbiAgICB1bnNldENoaWxkUm93SXNsYW5kPyhyb3dJc2xhbmQ6IEdyaWRUeXBlKTogdm9pZDtcbiAgICByZWdpc3RlckNoaWxkUm93SXNsYW5kPyhyb3dJc2xhbmQ6IEdyaWRUeXBlKTogdm9pZDtcbn1cblxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIGEgR3JpZCB0eXBlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZFR5cGUgZXh0ZW5kcyBJR3JpZERhdGFCaW5kYWJsZSB7XG4gICAgZGlzcGxheURlbnNpdHk6IERpc3BsYXlEZW5zaXR5O1xuICAgIGxvY2FsZTogc3RyaW5nO1xuICAgIHJlc291cmNlU3RyaW5nczogSUdyaWRSZXNvdXJjZVN0cmluZ3M7XG4gICAgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgcm93RWRpdGFibGU6IGJvb2xlYW47XG4gICAgcm9vdFN1bW1hcmllc0VuYWJsZWQ6IGJvb2xlYW47XG4gICAgYWxsb3dGaWx0ZXJpbmc6IGJvb2xlYW47XG4gICAgcm93RHJhZ2dhYmxlOiBib29sZWFuO1xuICAgIHByaW1hcnlLZXk6IGFueTtcbiAgICBpZDogc3RyaW5nO1xuICAgIHJlbmRlcmVkUm93SGVpZ2h0OiBudW1iZXI7XG4gICAgcGlwZVRyaWdnZXI6IG51bWJlcjtcbiAgICBzdW1tYXJ5UGlwZVRyaWdnZXI6IG51bWJlcjtcbiAgICBmaWx0ZXJpbmdQaXBlVHJpZ2dlcjogbnVtYmVyO1xuICAgIGhhc0NvbHVtbkxheW91dHM6IGJvb2xlYW47XG4gICAgbW92aW5nOiBib29sZWFuO1xuICAgIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgICBkYXRhQ2xvbmVTdHJhdGVneTogSURhdGFDbG9uZVN0cmF0ZWd5O1xuXG4gICAgZ3JpZEFQSTogR3JpZFNlcnZpY2VUeXBlO1xuXG4gICAgZmlsdGVyTW9kZTogRmlsdGVyTW9kZTtcblxuICAgIC8vIFRZUEVcbiAgICB0aGVhZFJvdzogYW55O1xuICAgIGdyb3VwQXJlYTogYW55O1xuICAgIGZpbHRlckNlbGxMaXN0OiBhbnlbXTtcbiAgICBmaWx0ZXJpbmdSb3c6IGFueTtcbiAgICBhY3Rpb25TdHJpcDogYW55O1xuICAgIHJlc2l6ZUxpbmU6IGFueTtcblxuICAgIHRmb290OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBwYWdpbmF0b3I6IElneFBhZ2luYXRvckNvbXBvbmVudDtcbiAgICBwYWdpbmF0b3JMaXN0PzogUXVlcnlMaXN0PElneFBhZ2luYXRvckNvbXBvbmVudD47XG4gICAgY3J1ZFNlcnZpY2U6IGFueTtcbiAgICBzdW1tYXJ5U2VydmljZTogYW55O1xuXG5cblxuICAgIHZpcnR1YWxpemF0aW9uU3RhdGU6IElGb3JPZlN0YXRlO1xuICAgIC8vIFRZUEVcbiAgICBzZWxlY3Rpb25TZXJ2aWNlOiBhbnk7XG4gICAgbmF2aWdhdGlvbjogYW55O1xuICAgIGZpbHRlcmluZ1NlcnZpY2U6IGFueTtcbiAgICBvdXRsZXQ6IGFueTtcbiAgICBoYXNNb3ZhYmxlQ29sdW1uczogYm9vbGVhbjtcbiAgICBpc1Jvd1NlbGVjdGFibGU6IGJvb2xlYW47XG4gICAgc2hvd1Jvd1NlbGVjdG9yczogYm9vbGVhbjtcbiAgICBpc1Bpbm5pbmdUb1N0YXJ0OiBib29sZWFuO1xuICAgIGNvbHVtbkluRHJhZzogYW55O1xuICAgIHBpbm5lZFdpZHRoOiBudW1iZXI7XG4gICAgdW5waW5uZWRXaWR0aDogbnVtYmVyO1xuICAgIHN1bW1hcmllc01hcmdpbjogbnVtYmVyO1xuICAgIGhlYWRTZWxlY3RvckJhc2VBcmlhTGFiZWw6IHN0cmluZztcblxuICAgIGhhc1Zpc2libGVDb2x1bW5zOiBib29sZWFuO1xuICAgIGhhc0V4cGFuZGFibGVDaGlsZHJlbj86IGJvb2xlYW47XG4gICAgc2hvd0V4cGFuZEFsbD86IGJvb2xlYW47XG5cbiAgICBoaWRkZW5Db2x1bW5zQ291bnQ6IG51bWJlcjtcbiAgICBwaW5uZWRDb2x1bW5zQ291bnQ6IG51bWJlcjtcblxuICAgIGljb25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgZ3JvdXBSb3dUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgZ3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHJvd0xvYWRpbmdJbmRpY2F0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgaGVhZFNlbGVjdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcm93U2VsZWN0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBzb3J0SGVhZGVySWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHNvcnRBc2NlbmRpbmdIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgc29ydERlc2NlbmRpbmdIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgaGVhZGVyQ29sbGFwc2VJbmRpY2F0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBoZWFkZXJFeHBhbmRJbmRpY2F0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBkcmFnSW5kaWNhdG9ySWNvblRlbXBsYXRlOiBhbnk7XG4gICAgZHJhZ0luZGljYXRvckljb25CYXNlOiBhbnk7XG4gICAgZGlzYWJsZVRyYW5zaXRpb25zOiBib29sZWFuO1xuICAgIGN1cnJlbmN5UG9zaXRpb25MZWZ0OiBib29sZWFuO1xuXG4gICAgY29sdW1uV2lkdGhTZXRCeVVzZXI6IGJvb2xlYW47XG4gICAgaGVhZGVyRmVhdHVyZXNXaWR0aDogbnVtYmVyO1xuICAgIGNhbGNIZWlnaHQ6IG51bWJlcjtcbiAgICBjYWxjV2lkdGg6IG51bWJlcjtcbiAgICBvdXRlcldpZHRoOiBudW1iZXI7XG4gICAgcm93SGVpZ2h0OiBudW1iZXI7XG4gICAgbXVsdGlSb3dMYXlvdXRSb3dTaXplOiBudW1iZXI7XG4gICAgZGVmYXVsdEhlYWRlckdyb3VwTWluV2lkdGg6IGFueTtcbiAgICBtYXhMZXZlbEhlYWRlckRlcHRoOiBudW1iZXI7XG4gICAgZGVmYXVsdFJvd0hlaWdodDogbnVtYmVyO1xuICAgIF9iYXNlRm9udFNpemU/OiBudW1iZXI7XG4gICAgc2Nyb2xsU2l6ZTogbnVtYmVyO1xuXG4gICAgdmFsaWRhdGlvblRyaWdnZXI6IEdyaWRWYWxpZGF0aW9uVHJpZ2dlcjtcbiAgICBwaW5uaW5nOiBJUGlubmluZ0NvbmZpZztcbiAgICBleHBhbnNpb25TdGF0ZXM6IE1hcDxhbnksIGJvb2xlYW4+O1xuICAgIHBhcmVudFZpcnREaXI6IGFueTtcbiAgICB0Ym9keTogYW55O1xuICAgIHZlcnRpY2FsU2Nyb2xsQ29udGFpbmVyOiBhbnk7XG4gICAgZGF0YVJvd0xpc3Q6IGFueTtcbiAgICByb3dMaXN0OiBhbnk7XG4gICAgY29sdW1uTGlzdDogUXVlcnlMaXN0PENvbHVtblR5cGU+O1xuICAgIGNvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICB2aXNpYmxlQ29sdW1uczogQ29sdW1uVHlwZVtdO1xuICAgIHVucGlubmVkQ29sdW1uczogQ29sdW1uVHlwZVtdO1xuICAgIHBpbm5lZENvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICBoZWFkZXJDZWxsTGlzdDogYW55W107XG4gICAgaGVhZGVyR3JvdXBzOiBhbnlbXTtcbiAgICBoZWFkZXJHcm91cHNMaXN0OiBhbnlbXTtcbiAgICBzdW1tYXJpZXNSb3dMaXN0OiBhbnk7XG4gICAgaGVhZGVyQ29udGFpbmVyOiBhbnk7XG4gICAgaXNDZWxsU2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICBpc011bHRpUm93U2VsZWN0aW9uRW5hYmxlZDogYm9vbGVhbjtcbiAgICBoYXNQaW5uZWRSZWNvcmRzOiBib29sZWFuO1xuICAgIHBpbm5lZFJlY29yZHNDb3VudDogbnVtYmVyO1xuICAgIHBpbm5lZFJlY29yZHM6IGFueVtdO1xuICAgIHVucGlubmVkUmVjb3JkczogYW55W107XG4gICAgcGlubmVkRGF0YVZpZXc6IGFueVtdO1xuICAgIHBpbm5lZFJvd3M6IGFueVtdO1xuICAgIGRhdGFWaWV3OiBhbnlbXTtcbiAgICBfZmlsdGVyZWRVbnBpbm5lZERhdGE6IGFueVtdO1xuICAgIF9maWx0ZXJlZFNvcnRlZFVucGlubmVkRGF0YTogYW55W107XG4gICAgZmlsdGVyZWRTb3J0ZWREYXRhOiBhbnlbXTtcbiAgICBkYXRhV2l0aEFkZGVkSW5UcmFuc2FjdGlvblJvd3M6IGFueVtdO1xuICAgIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25TZXJ2aWNlPFRyYW5zYWN0aW9uLCBTdGF0ZT47XG4gICAgdmFsaWRhdGlvbjogSWd4R3JpZFZhbGlkYXRpb25TZXJ2aWNlO1xuICAgIGRlZmF1bHRTdW1tYXJ5SGVpZ2h0OiBudW1iZXI7XG4gICAgc3VtbWFyeVJvd0hlaWdodDogbnVtYmVyO1xuICAgIHJvd0VkaXRpbmdPdmVybGF5OiBJZ3hUb2dnbGVEaXJlY3RpdmU7XG4gICAgdG90YWxSb3dzQ291bnRBZnRlckZpbHRlcjogbnVtYmVyO1xuICAgIF90b3RhbFJlY29yZHM6IG51bWJlcjtcblxuICAgIHBhZ2luZ01vZGU6IEdyaWRQYWdpbmdNb2RlO1xuICAgIHBhZ2luZ1N0YXRlOiBhbnk7XG5cbiAgICByb3dFZGl0VGFiczogYW55O1xuICAgIGxhc3RTZWFyY2hJbmZvOiBJU2VhcmNoSW5mbztcbiAgICBwYWdlOiBudW1iZXI7XG4gICAgcGVyUGFnZTogbnVtYmVyO1xuICAgIGRyYWdSb3dJRDogYW55O1xuICAgIHJvd0RyYWdnaW5nOiBib29sZWFuO1xuICAgIGV2ZW5Sb3dDU1M6IHN0cmluZztcbiAgICBvZGRSb3dDU1M6IHN0cmluZztcblxuICAgIGZpcnN0RWRpdGFibGVDb2x1bW5JbmRleDogbnVtYmVyO1xuICAgIGxhc3RFZGl0YWJsZUNvbHVtbkluZGV4OiBudW1iZXI7XG4gICAgaXNSb3dQaW5uaW5nVG9Ub3A6IGJvb2xlYW47XG4gICAgaGFzRGV0YWlsczogYm9vbGVhbjtcbiAgICBoYXNTdW1tYXJpemVkQ29sdW1uczogYm9vbGVhbjtcbiAgICBoYXNDb2x1bW5Hcm91cHM6IGJvb2xlYW47XG4gICAgaGFzRWRpdGFibGVDb2x1bW5zOiBib29sZWFuO1xuICAgIHVuaXF1ZUNvbHVtblZhbHVlc1N0cmF0ZWd5OiAoY29sdW1uOiBDb2x1bW5UeXBlLCB0cmVlOiBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUsIGRvbmU6ICh2YWx1ZXM6IGFueVtdKSA9PiB2b2lkKSA9PiB2b2lkO1xuICAgIGdldEhlYWRlckNlbGxXaWR0aDogKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiBJU2l6ZUluZm87XG5cbiAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmO1xuICAgIGRvY3VtZW50OiBEb2N1bWVudDtcbiAgICByb3dFeHBhbmRlZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHJvd0NvbGxhcHNlZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIGV4Y2VsU3R5bGVIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBzZWxlY3RSb3dPbkNsaWNrOiBib29sZWFuO1xuICAgIGNlbGxTZWxlY3Rpb246IEdyaWRTZWxlY3Rpb25Nb2RlO1xuICAgIHJvd1NlbGVjdGlvbjogR3JpZFNlbGVjdGlvbk1vZGU7XG4gICAgY29sdW1uU2VsZWN0aW9uOiBHcmlkU2VsZWN0aW9uTW9kZTtcbiAgICBzdW1tYXJ5Q2FsY3VsYXRpb25Nb2RlOiBHcmlkU3VtbWFyeUNhbGN1bGF0aW9uTW9kZTtcbiAgICBzdW1tYXJ5UG9zaXRpb246IEdyaWRTdW1tYXJ5UG9zaXRpb247XG5cbiAgICAvLyBYWFg6IFdvcmsgYXJvdW5kIHRpbGwgd2UgZml4ZWQgdGhlIGluamVjdGlvbiB0b2tlbnNcbiAgICBsYXN0Q2hpbGRHcmlkPzogR3JpZFR5cGU7XG4gICAgdG9vbGJhck91dGxldD86IFZpZXdDb250YWluZXJSZWY7XG4gICAgcGFnaW5hdG9yT3V0bGV0PzogVmlld0NvbnRhaW5lclJlZjtcbiAgICBmbGF0RGF0YT86IGFueVtdIHwgbnVsbDtcbiAgICBjaGlsZFJvdz86IGFueTtcbiAgICBleHBhbnNpb25EZXB0aD86IG51bWJlcjtcbiAgICBjaGlsZERhdGFLZXk/OiBhbnk7XG4gICAgZm9yZWlnbktleT86IGFueTtcbiAgICBjYXNjYWRlT25EZWxldGU/OiBib29sZWFuO1xuICAgIGxvYWRDaGlsZHJlbk9uRGVtYW5kPzogKHBhcmVudElEOiBhbnksIGRvbmU6IChjaGlsZHJlbjogYW55W10pID0+IHZvaWQpID0+IHZvaWQ7XG4gICAgaGFzQ2hpbGRyZW5LZXk/OiBhbnk7XG4gICAgbG9hZGluZ1Jvd3M/OiBTZXQ8YW55PjtcbiAgICBwYXJlbnQ/OiBHcmlkVHlwZTtcbiAgICBoaWdobGlnaHRlZFJvd0lEPzogYW55O1xuICAgIHVwZGF0ZU9uUmVuZGVyPzogYm9vbGVhbjtcbiAgICBjaGlsZExheW91dEtleXM/OiBhbnlbXTtcbiAgICBjaGlsZExheW91dExpc3Q/OiBRdWVyeUxpc3Q8YW55PjtcbiAgICByb290R3JpZD86IEdyaWRUeXBlO1xuICAgIHByb2Nlc3NlZFJvb3RSZWNvcmRzPzogSVRyZWVHcmlkUmVjb3JkW107XG4gICAgcm9vdFJlY29yZHM/OiBJVHJlZUdyaWRSZWNvcmRbXTtcbiAgICByZWNvcmRzPzogTWFwPGFueSwgSVRyZWVHcmlkUmVjb3JkPjtcbiAgICBwcm9jZXNzZWRFeHBhbmRlZEZsYXREYXRhPzogYW55W10gfCBudWxsO1xuICAgIHByb2Nlc3NlZFJlY29yZHM/OiBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+O1xuICAgIHRyZWVHcm91cEFyZWE/OiBhbnk7XG5cbiAgICBhY3RpdmVOb2RlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUFjdGl2ZU5vZGVDaGFuZ2VFdmVudEFyZ3M+O1xuICAgIGdyaWRLZXlkb3duOiBFdmVudEVtaXR0ZXI8SUdyaWRLZXlkb3duRXZlbnRBcmdzPjtcbiAgICBjZWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxJR3JpZENlbGxFdmVudEFyZ3M+O1xuICAgIGRvdWJsZUNsaWNrOiBFdmVudEVtaXR0ZXI8SUdyaWRDZWxsRXZlbnRBcmdzPjtcbiAgICBjb250ZXh0TWVudTogRXZlbnRFbWl0dGVyPElHcmlkQ2VsbEV2ZW50QXJncz47XG4gICAgc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxJR3JpZENlbGxFdmVudEFyZ3M+O1xuICAgIHJhbmdlU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxHcmlkU2VsZWN0aW9uUmFuZ2U+O1xuICAgIHJvd1NlbGVjdGlvbkNoYW5naW5nOiBFdmVudEVtaXR0ZXI8SVJvd1NlbGVjdGlvbkV2ZW50QXJncz47XG4gICAgbG9jYWxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG4gICAgZmlsdGVyaW5nOiBFdmVudEVtaXR0ZXI8SUZpbHRlcmluZ0V2ZW50QXJncz47XG4gICAgZmlsdGVyaW5nRG9uZTogRXZlbnRFbWl0dGVyPElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU+O1xuICAgIGNvbHVtblBpbm5lZDogRXZlbnRFbWl0dGVyPElQaW5Db2x1bW5FdmVudEFyZ3M+O1xuICAgIGNvbHVtblJlc2l6ZWQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uUmVzaXplRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5Nb3ZpbmdFbmQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uTW92aW5nRW5kRXZlbnRBcmdzPjtcbiAgICBjb2x1bW5TZWxlY3Rpb25DaGFuZ2luZzogRXZlbnRFbWl0dGVyPElDb2x1bW5TZWxlY3Rpb25FdmVudEFyZ3M+O1xuICAgIGNvbHVtbk1vdmluZzogRXZlbnRFbWl0dGVyPElDb2x1bW5Nb3ZpbmdFdmVudEFyZ3M+O1xuICAgIGNvbHVtbk1vdmluZ1N0YXJ0OiBFdmVudEVtaXR0ZXI8SUNvbHVtbk1vdmluZ1N0YXJ0RXZlbnRBcmdzPjtcbiAgICBjb2x1bW5QaW46IEV2ZW50RW1pdHRlcjxJUGluQ29sdW1uQ2FuY2VsbGFibGVFdmVudEFyZ3M+O1xuICAgIGNvbHVtblZpc2liaWxpdHlDaGFuZ2luZzogRXZlbnRFbWl0dGVyPElDb2x1bW5WaXNpYmlsaXR5Q2hhbmdpbmdFdmVudEFyZ3M+O1xuICAgIGNvbHVtblZpc2liaWxpdHlDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8SUNvbHVtblZpc2liaWxpdHlDaGFuZ2VkRXZlbnRBcmdzPjtcbiAgICBiYXRjaEVkaXRpbmdDaGFuZ2U/OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG4gICAgb25EZW5zaXR5Q2hhbmdlZDogRXZlbnRFbWl0dGVyPElEZW5zaXR5Q2hhbmdlZEV2ZW50QXJncz47XG4gICAgcm93QWRkOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICByb3dBZGRlZDogRXZlbnRFbWl0dGVyPElSb3dEYXRhRXZlbnRBcmdzPjtcbiAgICByb3dBZGRlZE5vdGlmaWVyOiBTdWJqZWN0PElSb3dEYXRhRXZlbnRBcmdzPjtcbiAgICByb3dEZWxldGVkOiBFdmVudEVtaXR0ZXI8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIHJvd0RlbGV0ZWROb3RpZmllcjogU3ViamVjdDxJUm93RGF0YUV2ZW50QXJncz47XG4gICAgY2VsbEVkaXRFbnRlcjogRXZlbnRFbWl0dGVyPElHcmlkRWRpdEV2ZW50QXJncz47XG4gICAgY2VsbEVkaXQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIGNlbGxFZGl0RG9uZTogRXZlbnRFbWl0dGVyPElHcmlkRWRpdERvbmVFdmVudEFyZ3M+O1xuICAgIGNlbGxFZGl0RXhpdDogRXZlbnRFbWl0dGVyPElHcmlkRWRpdERvbmVFdmVudEFyZ3M+O1xuICAgIHJvd0VkaXRFbnRlcjogRXZlbnRFbWl0dGVyPElHcmlkRWRpdEV2ZW50QXJncz47XG4gICAgcm93RWRpdDogRXZlbnRFbWl0dGVyPElHcmlkRWRpdEV2ZW50QXJncz47XG4gICAgcm93RWRpdERvbmU6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXREb25lRXZlbnRBcmdzPjtcbiAgICByb3dFZGl0RXhpdDogRXZlbnRFbWl0dGVyPElHcmlkRWRpdERvbmVFdmVudEFyZ3M+O1xuICAgIHJvd0RyYWdTdGFydDogRXZlbnRFbWl0dGVyPElSb3dEcmFnU3RhcnRFdmVudEFyZ3M+O1xuICAgIHJvd0RyYWdFbmQ6IEV2ZW50RW1pdHRlcjxJUm93RHJhZ0VuZEV2ZW50QXJncz47XG4gICAgcm93VG9nZ2xlOiBFdmVudEVtaXR0ZXI8SVJvd1RvZ2dsZUV2ZW50QXJncz47XG4gICAgZm9ybUdyb3VwQ3JlYXRlZDogRXZlbnRFbWl0dGVyPElHcmlkRm9ybUdyb3VwQ3JlYXRlZEV2ZW50QXJncz47XG4gICAgdmFsaWRhdGlvblN0YXR1c0NoYW5nZTogRXZlbnRFbWl0dGVyPElHcmlkVmFsaWRpdHlTdGF0dXNFdmVudEFyZ3M+O1xuXG4gICAgdG9vbGJhckV4cG9ydGluZzogRXZlbnRFbWl0dGVyPElHcmlkVG9vbGJhckV4cG9ydEV2ZW50QXJncz47XG4gICAgcmVuZGVyZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHJlc2l6ZU5vdGlmeTogU3ViamVjdDx2b2lkPjtcblxuICAgIHNvcnRTdHJhdGVneTogSUdyaWRTb3J0aW5nU3RyYXRlZ3k7XG4gICAgZ3JvdXBTdHJhdGVneT86IElHcmlkR3JvdXBpbmdTdHJhdGVneTtcbiAgICBmaWx0ZXJpbmdMb2dpYzogRmlsdGVyaW5nTG9naWM7XG4gICAgZmlsdGVyU3RyYXRlZ3k6IElGaWx0ZXJpbmdTdHJhdGVneTtcbiAgICBhbGxvd0FkdmFuY2VkRmlsdGVyaW5nOiBib29sZWFuO1xuICAgIHNvcnRpbmdFeHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW107XG4gICAgc29ydGluZ0V4cHJlc3Npb25zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVNvcnRpbmdFeHByZXNzaW9uW10+O1xuICAgIGZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTtcbiAgICBmaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlPjtcbiAgICBhZHZhbmNlZEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTtcbiAgICBhZHZhbmNlZEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZUNoYW5nZTogRXZlbnRFbWl0dGVyPElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU+O1xuICAgIHNvcnRpbmdPcHRpb25zOiBJU29ydGluZ09wdGlvbnM7XG5cbiAgICBiYXRjaEVkaXRpbmc6IGJvb2xlYW47XG4gICAgZ3JvdXBpbmdFeHBhbnNpb25TdGF0ZT86IElHcm91cEJ5RXhwYW5kU3RhdGVbXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zPzogSUdyb3VwaW5nRXhwcmVzc2lvbltdO1xuICAgIGdyb3VwaW5nRXhwcmVzc2lvbnNDaGFuZ2U/OiBFdmVudEVtaXR0ZXI8SUdyb3VwaW5nRXhwcmVzc2lvbltdPjtcbiAgICBncm91cHNFeHBhbmRlZD86IGJvb2xlYW47XG4gICAgZ3JvdXBzUmVjb3Jkcz86IElHcm91cEJ5UmVjb3JkW107XG4gICAgZ3JvdXBpbmdGbGF0UmVzdWx0PzogYW55W107XG4gICAgZ3JvdXBpbmdSZXN1bHQ/OiBhbnlbXTtcbiAgICBncm91cGluZ01ldGFkYXRhPzogYW55W107XG4gICAgc2VsZWN0ZWRDZWxscz86IENlbGxUeXBlW107XG4gICAgc2VsZWN0ZWRSb3dzOiBhbnlbXTtcbiAgICBhY3RpdmVEZXNjZW5kYW50Pzogc3RyaW5nO1xuICAgIGlzUGl2b3Q/OiBib29sZWFuO1xuXG4gICAgdG9nZ2xlR3JvdXA/KGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZCk6IHZvaWQ7XG4gICAgY2xlYXJHcm91cGluZz8oZmllbGQ6IHN0cmluZyk6IHZvaWQ7XG4gICAgZ3JvdXBCeT8oZXhwcmVzc2lvbjogSUdyb3VwaW5nRXhwcmVzc2lvbiB8IEFycmF5PElHcm91cGluZ0V4cHJlc3Npb24+KTogdm9pZDtcbiAgICByZXNvbHZlT3V0bGV0PygpOiBJZ3hPdmVybGF5T3V0bGV0RGlyZWN0aXZlO1xuICAgIHVwZGF0ZUNvbHVtbnMoY29sdW1uczogQ29sdW1uVHlwZVtdKTogdm9pZDtcbiAgICBnZXRTZWxlY3RlZFJhbmdlcygpOiBHcmlkU2VsZWN0aW9uUmFuZ2VbXTtcbiAgICBkZXNlbGVjdEFsbENvbHVtbnMoKTogdm9pZDtcbiAgICBkZXNlbGVjdENvbHVtbnMoY29sdW1uczogc3RyaW5nW10gfCBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIHNlbGVjdENvbHVtbnMoY29sdW1uczogc3RyaW5nW10gfCBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIHNlbGVjdGVkQ29sdW1ucygpOiBDb2x1bW5UeXBlW107XG4gICAgcmVmcmVzaFNlYXJjaCgpOiB2b2lkO1xuICAgIGdldERlZmF1bHRFeHBhbmRTdGF0ZShyZWNvcmQ6IGFueSk6IGJvb2xlYW47XG4gICAgdHJhY2tDb2x1bW5DaGFuZ2VzKGluZGV4OiBudW1iZXIsIGNvbHVtbjogYW55KTogYW55O1xuICAgIGdldFBvc3NpYmxlQ29sdW1uV2lkdGgoKTogc3RyaW5nO1xuICAgIHJlc2V0SG9yaXpvbnRhbFZpcnR1YWxpemF0aW9uKCk6IHZvaWQ7XG4gICAgaGFzVmVydGljYWxTY3JvbGwoKTogYm9vbGVhbjtcbiAgICBnZXRWaXNpYmxlQ29udGVudEhlaWdodCgpOiBudW1iZXI7XG4gICAgZ2V0RHJhZ0dob3N0Q3VzdG9tVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB8IG51bGw7XG4gICAgb3BlblJvd092ZXJsYXkoaWQ6IGFueSk6IHZvaWQ7XG4gICAgb3BlbkFkdmFuY2VkRmlsdGVyaW5nRGlhbG9nKCk6IHZvaWQ7XG4gICAgc2hvd1NuYWNrYmFyRm9yKGluZGV4OiBudW1iZXIpOiB2b2lkO1xuICAgIGdldENvbHVtbkJ5TmFtZShuYW1lOiBzdHJpbmcpOiBhbnk7XG4gICAgZ2V0Q29sdW1uQnlWaXNpYmxlSW5kZXgoaW5kZXg6IG51bWJlcik6IENvbHVtblR5cGU7XG4gICAgZ2V0SGVhZGVyR3JvdXBXaWR0aChjb2x1bW46IENvbHVtblR5cGUpOiBzdHJpbmc7XG4gICAgZ2V0Um93QnlLZXk/KGtleTogYW55KTogUm93VHlwZTtcbiAgICBnZXRSb3dCeUluZGV4PyhpbmRleDogbnVtYmVyKTogUm93VHlwZTtcbiAgICBzZXRGaWx0ZXJlZERhdGEoZGF0YTogYW55LCBwaW5uZWQ6IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNldEZpbHRlcmVkU29ydGVkRGF0YShkYXRhOiBhbnksIHBpbm5lZDogYm9vbGVhbik6IHZvaWQ7XG4gICAgc29ydChleHByZXNzaW9uOiBJU29ydGluZ0V4cHJlc3Npb24gfCBJU29ydGluZ0V4cHJlc3Npb25bXSk6IHZvaWQ7XG4gICAgY2xlYXJTb3J0KG5hbWU/OiBzdHJpbmcpOiB2b2lkO1xuICAgIHBpblJvdyhpZDogYW55LCBpbmRleD86IG51bWJlciwgcm93PzogUm93VHlwZSk6IGJvb2xlYW47XG4gICAgdW5waW5Sb3coaWQ6IGFueSwgcm93PzogUm93VHlwZSk6IGJvb2xlYW47XG4gICAgZ2V0VW5waW5uZWRJbmRleEJ5SWQoaWQ6IGFueSk6IG51bWJlcjtcbiAgICBnZXRFbXB0eVJlY29yZE9iamVjdEZvcihpblJvdzogUm93VHlwZSk6IGFueTtcbiAgICBpc1N1bW1hcnlSb3cocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzUmVjb3JkUGlubmVkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBnZXRJbml0aWFsUGlubmVkSW5kZXgocmVjOiBhbnkpOiBudW1iZXI7XG4gICAgaXNSZWNvcmRQaW5uZWRCeVZpZXdJbmRleChyb3dJbmRleDogbnVtYmVyKTogYm9vbGVhbjtcbiAgICBpc0NvbHVtbkdyb3VwZWQoZmllbGROYW1lOiBzdHJpbmcpOiBib29sZWFuO1xuICAgIGlzRGV0YWlsUmVjb3JkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc0dyb3VwQnlSZWNvcmQocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzR2hvc3RSZWNvcmQocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzVHJlZVJvdz8ocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGlzQ2hpbGRHcmlkUmVjb3JkPyhyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgZ2V0Q2hpbGRHcmlkcz8oaW5EZXB0aD86IGJvb2xlYW4pOiBhbnlbXTtcbiAgICBpc0hpZXJhcmNoaWNhbFJlY29yZD8ocmVjb3JkOiBhbnkpOiBib29sZWFuO1xuICAgIGNvbHVtblRvVmlzaWJsZUluZGV4KGtleTogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyO1xuICAgIG1vdmVDb2x1bW4oY29sdW1uOiBDb2x1bW5UeXBlLCB0YXJnZXQ6IENvbHVtblR5cGUsIHBvczogRHJvcFBvc2l0aW9uKTogdm9pZDtcbiAgICBuYXZpZ2F0ZVRvKHJvd0luZGV4OiBudW1iZXIsIHZpc2libGVDb2x1bW5JbmRleDogbnVtYmVyLCBjYWxsYmFjaz86IChlOiBhbnkpID0+IGFueSk6IHZvaWQ7XG4gICAgZ2V0UHJldmlvdXNDZWxsKGN1cnJSb3dJbmRleDogbnVtYmVyLCBjdXJWaXNpYmxlQ29sSW5kZXg6IG51bWJlciwgY2FsbGJhY2s6IChjOiBDb2x1bW5UeXBlKSA9PiBib29sZWFuKTogSUNlbGxQb3NpdGlvbjtcbiAgICBnZXROZXh0Q2VsbChjdXJyUm93SW5kZXg6IG51bWJlciwgY3VyVmlzaWJsZUNvbEluZGV4OiBudW1iZXIsIGNhbGxiYWNrOiAoYzogQ29sdW1uVHlwZSkgPT4gYm9vbGVhbik6IElDZWxsUG9zaXRpb247XG4gICAgY2xlYXJDZWxsU2VsZWN0aW9uKCk6IHZvaWQ7XG4gICAgc2VsZWN0UmFuZ2UocmFuZ2U6IEdyaWRTZWxlY3Rpb25SYW5nZSB8IEdyaWRTZWxlY3Rpb25SYW5nZVtdKTogdm9pZDtcbiAgICBzZWxlY3RSb3dzKHJvd0lEczogYW55W10sIGNsZWFyQ3VycmVudFNlbGVjdGlvbj86IGJvb2xlYW4pOiB2b2lkO1xuICAgIGRlc2VsZWN0Um93cyhyb3dJRHM6IGFueVtdKTogdm9pZDtcbiAgICBzZWxlY3RBbGxSb3dzKG9ubHlGaWx0ZXJEYXRhPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgZGVzZWxlY3RBbGxSb3dzKG9ubHlGaWx0ZXJEYXRhPzogYm9vbGVhbik6IHZvaWQ7XG4gICAgc2V0VXBQYWdpbmF0b3IoKTogdm9pZDtcbiAgICBjcmVhdGVGaWx0ZXJEcm9wZG93bihjb2x1bW46IENvbHVtblR5cGUsIG9wdGlvbnM6IE92ZXJsYXlTZXR0aW5ncyk6IGFueTtcbiAgICAvLyBUeXBlIHRvIFJvd1R5cGVcbiAgICBjcmVhdGVSb3c/KGluZGV4OiBudW1iZXIsIGRhdGE/OiBhbnkpOiBSb3dUeXBlO1xuICAgIGRlbGV0ZVJvdyhpZDogYW55KTogYW55O1xuICAgIGRlbGV0ZVJvd0J5SWQoaWQ6IGFueSk6IGFueTtcbiAgICBjb2xsYXBzZVJvdyhpZDogYW55KTogdm9pZDtcbiAgICBub3RpZnlDaGFuZ2VzKHJlcGFpbnQ/OiBib29sZWFuKTogdm9pZDtcbiAgICByZXNldENvbHVtbkNvbGxlY3Rpb25zKCk6IHZvaWQ7XG4gICAgdHJpZ2dlclBpcGVzKCk6IHZvaWQ7XG4gICAgcmVwb3NpdGlvblJvd0VkaXRpbmdPdmVybGF5KHJvdzogUm93VHlwZSk6IHZvaWQ7XG4gICAgY2xvc2VSb3dFZGl0aW5nT3ZlcmxheSgpOiB2b2lkO1xuICAgIHJlZmxvdygpOiB2b2lkO1xuXG4gICAgLy8gVE9ETzogTWF5YmUgbW92ZSB0aGVtIHRvIEZsYXRHcmlkVHlwZSwgYnV0IHRoZW4gd2lsbCB3ZSBuZWVkIGFub3RoZXIgdG9rZW4/XG4gICAgaXNFeHBhbmRlZEdyb3VwKGdyb3VwOiBJR3JvdXBCeVJlY29yZCk6IGJvb2xlYW47XG4gICAgY3JlYXRlQ29sdW1uc0xpc3Q/KGNvbHM6IENvbHVtblR5cGVbXSk6IHZvaWQ7XG4gICAgdG9nZ2xlQWxsR3JvdXBSb3dzPygpOiB2b2lkO1xuICAgIHRvZ2dsZUFsbD8oKTogdm9pZDtcbiAgICBnZW5lcmF0ZVJvd1BhdGg/KHJvd0lkOiBhbnkpOiBhbnlbXTtcbiAgICBwcmV2ZW50SGVhZGVyU2Nyb2xsPyhhcmdzOiBhbnkpOiB2b2lkO1xuXG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBGbGF0IEdyaWQgdHlwZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZsYXRHcmlkVHlwZSBleHRlbmRzIEdyaWRUeXBlIHtcbiAgICBncm91cGluZ0V4cGFuc2lvblN0YXRlOiBJR3JvdXBCeUV4cGFuZFN0YXRlW107XG4gICAgZ3JvdXBpbmdFeHByZXNzaW9uczogSUdyb3VwaW5nRXhwcmVzc2lvbltdO1xuICAgIGdyb3VwaW5nRXhwcmVzc2lvbnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJR3JvdXBpbmdFeHByZXNzaW9uW10+O1xuXG4gICAgdG9nZ2xlR3JvdXAoZ3JvdXBSb3c6IElHcm91cEJ5UmVjb3JkKTogdm9pZDtcbiAgICBjbGVhckdyb3VwaW5nKGZpZWxkOiBzdHJpbmcpOiB2b2lkO1xuICAgIGdyb3VwQnkoZXhwcmVzc2lvbjogSUdyb3VwaW5nRXhwcmVzc2lvbiB8IEFycmF5PElHcm91cGluZ0V4cHJlc3Npb24+KTogdm9pZDtcbn1cblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZGVzY3JpYmluZyBhIFRyZWUgR3JpZCB0eXBlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZUdyaWRUeXBlIGV4dGVuZHMgR3JpZFR5cGUge1xuICAgIHJlY29yZHM6IE1hcDxhbnksIElUcmVlR3JpZFJlY29yZD47XG4gICAgaXNUcmVlUm93KHJlYzogYW55KTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBbiBpbnRlcmZhY2UgZGVzY3JpYmluZyBhIEhpZXJhcmNoaWNhbCBHcmlkIHR5cGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIaWVyYXJjaGljYWxHcmlkVHlwZSBleHRlbmRzIEdyaWRUeXBlIHtcbiAgICBjaGlsZExheW91dEtleXM6IGFueVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpdm90R3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgcGl2b3RDb25maWd1cmF0aW9uOiBJUGl2b3RDb25maWd1cmF0aW9uO1xuICAgIGFsbERpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdLFxuICAgIHNob3dQaXZvdENvbmZpZ3VyYXRpb25VSTogYm9vbGVhbjtcbiAgICBjb2x1bW5EaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXTtcbiAgICByb3dEaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXTtcbiAgICByb3dEaW1lbnNpb25SZXNpemluZzogYm9vbGVhbjtcbiAgICB2YWx1ZXM6IElQaXZvdFZhbHVlW107XG4gICAgZmlsdGVyRGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW107XG4gICAgZGltZW5zaW9uRGF0YUNvbHVtbnM6IENvbHVtblR5cGVbXTtcbiAgICBwaXZvdFJvd1dpZHRoczogbnVtYmVyO1xuICAgIHNldHVwQ29sdW1ucygpOiB2b2lkO1xuICAgIHRvZ2dsZVJvdyhyb3dJRDogYW55KTogdm9pZDtcbiAgICByZXNvbHZlRGF0YVR5cGVzKGZpZWxkOiBhbnkpOiBHcmlkQ29sdW1uRGF0YVR5cGU7XG4gICAgbW92ZURpbWVuc2lvbihkaW1lbnNpb246IElQaXZvdERpbWVuc2lvbiwgdGFyZ2V0Q29sbGVjdGlvblR5cGU6IFBpdm90RGltZW5zaW9uVHlwZSwgaW5kZXg/IDogbnVtYmVyKTtcbiAgICBnZXREaW1lbnNpb25zQnlUeXBlKGRpbWVuc2lvbjogUGl2b3REaW1lbnNpb25UeXBlKTtcbiAgICB0b2dnbGVEaW1lbnNpb24oZGltZW5zaW9uOiBJUGl2b3REaW1lbnNpb24pO1xuICAgIHNvcnREaW1lbnNpb24oZGltZW5zaW9uOiBJUGl2b3REaW1lbnNpb24sIHNvcnREaXJlY3Rpb246IFNvcnRpbmdEaXJlY3Rpb24pO1xuICAgIHRvZ2dsZVZhbHVlKHZhbHVlOiBJUGl2b3RWYWx1ZSk7XG4gICAgbW92ZVZhbHVlKHZhbHVlOiBJUGl2b3RWYWx1ZSwgaW5kZXg/OiBudW1iZXIpO1xuICAgIHJvd0RpbWVuc2lvbldpZHRoVG9QaXhlbHMoZGltOiBJUGl2b3REaW1lbnNpb24pOiBudW1iZXI7XG4gICAgZGltZW5zaW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPElEaW1lbnNpb25zQ2hhbmdlPjtcbiAgICB2YWx1ZXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJVmFsdWVzQ2hhbmdlPjtcbiAgICBwaXZvdEtleXM6IElQaXZvdEtleXM7XG4gICAgaGFzTXVsdGlwbGVWYWx1ZXM6IGJvb2xlYW47XG4gICAgZXhjZWxTdHlsZUZpbHRlck1heEhlaWdodDogc3RyaW5nO1xuICAgIGV4Y2VsU3R5bGVGaWx0ZXJNaW5IZWlnaHQ6IHN0cmluZztcbiAgICB2YWx1ZUNoaXBUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZFNWR0ljb24ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTaXplSW5mbyB7XG4gICAgd2lkdGg6IG51bWJlcixcbiAgICBwYWRkaW5nOiBudW1iZXJcbn1cbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL2dyaWQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBK0MsY0FBYyxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQThCdEksTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFXLGtCQUFrQixDQUFDLENBQUM7QUFDOUUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQWtCLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXJNb2RlLCBHcmlkUGFnaW5nTW9kZSwgR3JpZFNlbGVjdGlvbk1vZGUsIEdyaWRTdW1tYXJ5Q2FsY3VsYXRpb25Nb2RlLCBHcmlkU3VtbWFyeVBvc2l0aW9uLCBHcmlkVmFsaWRhdGlvblRyaWdnZXIgfSBmcm9tICcuL2VudW1zJztcbmltcG9ydCB7XG4gICAgSVNlYXJjaEluZm8sIElHcmlkQ2VsbEV2ZW50QXJncywgSVJvd1NlbGVjdGlvbkV2ZW50QXJncywgSUNvbHVtblNlbGVjdGlvbkV2ZW50QXJncywgSUdyaWRFZGl0RXZlbnRBcmdzLFxuICAgIElQaW5Db2x1bW5DYW5jZWxsYWJsZUV2ZW50QXJncywgSUNvbHVtblZpc2liaWxpdHlDaGFuZ2VkRXZlbnRBcmdzLCBJQ29sdW1uVmlzaWJpbGl0eUNoYW5naW5nRXZlbnRBcmdzLFxuICAgIElSb3dEcmFnRW5kRXZlbnRBcmdzLCBJQ29sdW1uTW92aW5nU3RhcnRFdmVudEFyZ3MsIElDb2x1bW5Nb3ZpbmdFbmRFdmVudEFyZ3MsXG4gICAgSUdyaWRFZGl0RG9uZUV2ZW50QXJncywgSVJvd0RhdGFFdmVudEFyZ3MsIElHcmlkS2V5ZG93bkV2ZW50QXJncywgSVJvd0RyYWdTdGFydEV2ZW50QXJncyxcbiAgICBJQ29sdW1uTW92aW5nRXZlbnRBcmdzLCBJUGluQ29sdW1uRXZlbnRBcmdzLFxuICAgIElBY3RpdmVOb2RlQ2hhbmdlRXZlbnRBcmdzLFxuICAgIElDZWxsUG9zaXRpb24sIElGaWx0ZXJpbmdFdmVudEFyZ3MsIElDb2x1bW5SZXNpemVFdmVudEFyZ3MsIElSb3dUb2dnbGVFdmVudEFyZ3MsIElHcmlkVG9vbGJhckV4cG9ydEV2ZW50QXJnc1xufSBmcm9tICcuLi9jb21tb24vZXZlbnRzJztcbmltcG9ydCB7IERpc3BsYXlEZW5zaXR5LCBJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9jb3JlL2Rpc3BsYXlEZW5zaXR5JztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuLCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUsIElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb25zLXRyZWUnO1xuaW1wb3J0IHsgSUdyaWRSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4vZ3JpZC1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgSUdyb3VwaW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJR3JvdXBCeVJlY29yZCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LXJlY29yZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlFeHBhbmRTdGF0ZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LWV4cGFuZC1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4UGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4Q2VsbCwgSWd4RWRpdFJvdyB9IGZyb20gJy4vY3J1ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZWxlY3Rpb25SYW5nZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgRmlsdGVyaW5nTG9naWMgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElGaWx0ZXJpbmdTdHJhdGVneSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgRHJvcFBvc2l0aW9uLCBJZ3hDb2x1bW5Nb3ZpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vbW92aW5nL21vdmluZy5zZXJ2aWNlJztcbmltcG9ydCB7IElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmUsIElneFRvZ2dsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG9nZ2xlL3RvZ2dsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSVRyZWVHcmlkUmVjb3JkIH0gZnJvbSAnLi4vdHJlZS1ncmlkL3RyZWUtZ3JpZC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFN0YXRlLCBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgR3JpZENvbHVtbkRhdGFUeXBlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2RhdGEtdXRpbCc7XG5pbXBvcnQgeyBJZ3hGaWx0ZXJpbmdPcGVyYW5kIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1jb25kaXRpb24nO1xuaW1wb3J0IHsgSUNvbHVtblBpcGVBcmdzLCBJU29ydGluZ09wdGlvbnMsIE1STFJlc2l6ZUNvbHVtbkluZm8gfSBmcm9tICcuLi9jb2x1bW5zL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSWd4U3VtbWFyeVJlc3VsdCB9IGZyb20gJy4uL3N1bW1hcmllcy9ncmlkLXN1bW1hcnknO1xuaW1wb3J0IHsgSVNvcnRpbmdFeHByZXNzaW9uLCBJU29ydGluZ1N0cmF0ZWd5LCBTb3J0aW5nRGlyZWN0aW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL3NvcnRpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgSUdyaWRHcm91cGluZ1N0cmF0ZWd5LCBJR3JpZFNvcnRpbmdTdHJhdGVneSB9IGZyb20gJy4vc3RyYXRlZ3knO1xuaW1wb3J0IHsgSUZvck9mU3RhdGUsIElneEdyaWRGb3JPZkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9yLW9mL2Zvcl9vZi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT3ZlcmxheVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3ZlcmxheS91dGlsaXRpZXMnO1xuaW1wb3J0IHsgSVBpbm5pbmdDb25maWcgfSBmcm9tICcuLi9ncmlkLmNvbW1vbic7XG5pbXBvcnQgeyBJRGltZW5zaW9uc0NoYW5nZSwgSVBpdm90Q29uZmlndXJhdGlvbiwgSVBpdm90RGltZW5zaW9uLCBJUGl2b3RLZXlzLCBJUGl2b3RWYWx1ZSwgSVZhbHVlc0NoYW5nZSwgUGl2b3REaW1lbnNpb25UeXBlIH0gZnJvbSAnLi4vcGl2b3QtZ3JpZC9waXZvdC1ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRGF0YUNsb25lU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS1jbG9uZS1zdHJhdGVneSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJZ3hHcmlkVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9ncmlkL2dyaWQtdmFsaWRhdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IElHWF9HUklEX0JBU0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48R3JpZFR5cGU+KCdJZ3hHcmlkQmFzZVRva2VuJyk7XG5leHBvcnQgY29uc3QgSUdYX0dSSURfU0VSVklDRV9CQVNFID0gbmV3IEluamVjdGlvblRva2VuPEdyaWRTZXJ2aWNlVHlwZT4oJ0lneEdyaWRTZXJ2aWNlQmFzZVRva2VuJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBhdGhTZWdtZW50IHtcbiAgICByb3dJRDogYW55O1xuICAgIHJvd0lzbGFuZEtleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkRGF0YUJpbmRhYmxlIHtcbiAgICBkYXRhOiBhbnlbXSB8IG51bGw7XG4gICAgZmlsdGVyZWREYXRhOiBhbnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZWxsVHlwZSB7XG4gICAgdmFsdWU6IGFueTtcbiAgICBlZGl0VmFsdWU6IGFueTtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICBhY3RpdmU6IGJvb2xlYW47XG4gICAgZWRpdGFibGU6IGJvb2xlYW47XG4gICAgZWRpdE1vZGU6IGJvb2xlYW47XG4gICAgbmF0aXZlRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICAgIGNvbHVtbjogQ29sdW1uVHlwZTtcbiAgICByb3c6IFJvd1R5cGU7XG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgaWQ/OiB7IHJvd0lEOiBhbnk7IGNvbHVtbklEOiBudW1iZXI7IHJvd0luZGV4OiBudW1iZXIgfTtcbiAgICBjZWxsSUQ/OiBhbnk7XG4gICAgcmVhZG9ubHkgdmFsaWRhdGlvbj86IElHcmlkVmFsaWRhdGlvblN0YXRlO1xuICAgIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgICB0aXRsZT86IGFueTtcbiAgICB3aWR0aDogc3RyaW5nO1xuICAgIHZpc2libGVDb2x1bW5JbmRleD86IG51bWJlcjtcbiAgICB1cGRhdGU6ICh2YWx1ZTogYW55KSA9PiB2b2lkO1xuICAgIHNldEVkaXRNb2RlPyh2YWx1ZTogYm9vbGVhbik6IHZvaWQ7XG4gICAgY2FsY3VsYXRlU2l6ZVRvRml0PyhyYW5nZTogYW55KTogbnVtYmVyO1xuICAgIGFjdGl2YXRlPyhldmVudDogRm9jdXNFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkO1xuICAgIG9uRG91YmxlQ2xpY2s/KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZDtcbiAgICBvbkNsaWNrPyhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm93VHlwZSB7XG4gICAgbmF0aXZlRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgdmlld0luZGV4OiBudW1iZXI7XG4gICAgaXNHcm91cEJ5Um93PzogYm9vbGVhbjtcbiAgICBpc1N1bW1hcnlSb3c/OiBib29sZWFuO1xuICAgIHN1bW1hcmllcz86IE1hcDxzdHJpbmcsIElneFN1bW1hcnlSZXN1bHRbXT47XG4gICAgZ3JvdXBSb3c/OiBJR3JvdXBCeVJlY29yZDtcbiAgICBrZXk/OiBhbnk7XG4gICAgcmVhZG9ubHkgdmFsaWRhdGlvbj86IElHcmlkVmFsaWRhdGlvblN0YXRlO1xuICAgIGRhdGE/OiBhbnk7XG4gICAgY2VsbHM/OiBRdWVyeUxpc3Q8Q2VsbFR5cGU+IHwgQ2VsbFR5cGVbXTtcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgdmlydERpclJvdz86IElneEdyaWRGb3JPZkRpcmVjdGl2ZTxhbnk+O1xuICAgIHBpbm5lZD86IGJvb2xlYW47XG4gICAgc2VsZWN0ZWQ/OiBib29sZWFuO1xuICAgIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgICBkZWxldGVkPzogYm9vbGVhbjtcbiAgICBpbkVkaXRNb2RlPzogYm9vbGVhbjtcbiAgICBjaGlsZHJlbj86IFJvd1R5cGVbXTtcbiAgICBwYXJlbnQ/OiBSb3dUeXBlO1xuICAgIGhhc0NoaWxkcmVuPzogYm9vbGVhbjtcbiAgICB0cmVlUm93PzogSVRyZWVHcmlkUmVjb3JkO1xuICAgIGFkZFJvd1VJPzogYm9vbGVhbjtcbiAgICBmb2N1c2VkPzogYm9vbGVhbjtcbiAgICBncmlkOiBHcmlkVHlwZTtcbiAgICBvblJvd1NlbGVjdG9yQ2xpY2s/OiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgb25DbGljaz86IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgICBiZWdpbkFkZFJvdz86ICgpID0+IHZvaWQ7XG4gICAgdXBkYXRlPzogKHZhbHVlOiBhbnkpID0+IHZvaWQ7XG4gICAgZGVsZXRlPzogKCkgPT4gYW55O1xuICAgIHBpbj86ICgpID0+IHZvaWQ7XG4gICAgdW5waW4/OiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtblR5cGUge1xuICAgIGdyaWQ6IEdyaWRUeXBlO1xuICAgIGNoaWxkcmVuOiBRdWVyeUxpc3Q8Q29sdW1uVHlwZT47XG4gICAgYWxsQ2hpbGRyZW46IENvbHVtblR5cGVbXTtcbiAgICAvLyBUWVBFXG4gICAgaGVhZGVyR3JvdXA6IGFueTtcbiAgICAvLyBUWVBFXG4gICAgaGVhZGVyQ2VsbDogYW55O1xuICAgIHZhbGlkYXRvcnM6IGFueVtdO1xuXG4gICAgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgY29sbGFwc2libGVJbmRpY2F0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgaGVhZGVyQ2xhc3NlczogYW55O1xuICAgIGhlYWRlclN0eWxlczogYW55O1xuICAgIGhlYWRlckdyb3VwQ2xhc3NlczogYW55O1xuICAgIGhlYWRlckdyb3VwU3R5bGVzOiBhbnk7XG5cbiAgICBjYWxjV2lkdGg6IGFueTtcbiAgICBtaW5XaWR0aFB4OiBudW1iZXI7XG4gICAgbWF4V2lkdGhQeDogbnVtYmVyO1xuICAgIG1pbldpZHRoOiBzdHJpbmc7XG4gICAgbWF4V2lkdGg6IHN0cmluZztcbiAgICBtaW5XaWR0aFBlcmNlbnQ6IG51bWJlcjtcbiAgICBtYXhXaWR0aFBlcmNlbnQ6IG51bWJlcjtcblxuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgaGVhZGVyPzogc3RyaW5nO1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgZGF0YVR5cGU6IEdyaWRDb2x1bW5EYXRhVHlwZTtcbiAgICBpbmxpbmVFZGl0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICB2aXNpYmxlSW5kZXg6IG51bWJlcjtcbiAgICBjb2xsYXBzaWJsZT86IGJvb2xlYW47XG4gICAgZWRpdGFibGU6IGJvb2xlYW47XG4gICAgcmVzaXphYmxlOiBib29sZWFuO1xuICAgIHNlYXJjaGFibGU6IGJvb2xlYW47XG4gICAgY29sdW1uR3JvdXA6IGJvb2xlYW47XG4gICAgLyoqIEBkZXByZWNhdGVkIGluIHZlcnNpb24gMTMuMS4wLiBVc2UgYElneEdyaWRDb21wb25lbnQubW92aW5nYCBpbnN0ZWFkLiovXG4gICAgbW92YWJsZTogYm9vbGVhbjtcbiAgICBncm91cGFibGU6IGJvb2xlYW47XG4gICAgc29ydGFibGU6IGJvb2xlYW47XG4gICAgZmlsdGVyYWJsZTogYm9vbGVhbjtcbiAgICBoaWRkZW46IGJvb2xlYW47XG4gICAgZGlzYWJsZVBpbm5pbmc6IGJvb2xlYW47XG4gICAgZGlzYWJsZUhpZGluZzogYm9vbGVhbjtcbiAgICBzb3J0U3RyYXRlZ3k6IElTb3J0aW5nU3RyYXRlZ3k7XG4gICAgc29ydGluZ0lnbm9yZUNhc2U6IGJvb2xlYW47XG4gICAgZmlsdGVyQ2VsbDogYW55O1xuICAgIGZpbHRlcnM6IElneEZpbHRlcmluZ09wZXJhbmQ7XG4gICAgZmlsdGVyaW5nSWdub3JlQ2FzZTogYm9vbGVhbjtcbiAgICBmaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU6IEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTtcbiAgICBoYXNTdW1tYXJ5OiBib29sZWFuO1xuICAgIHN1bW1hcmllczogYW55O1xuICAgIHN1bW1hcnlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwaW5uZWQ6IGJvb2xlYW47XG4gICAgZXhwYW5kZWQ6IGJvb2xlYW47XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICBjb2x1bW5MYXlvdXQ6IGJvb2xlYW47XG4gICAgbGV2ZWw6IG51bWJlcjtcbiAgICByb3dTdGFydDogbnVtYmVyO1xuICAgIHJvd0VuZDogbnVtYmVyO1xuICAgIGNvbFN0YXJ0OiBudW1iZXI7XG4gICAgY29sRW5kOiBudW1iZXI7XG4gICAgZ3JpZFJvd1NwYW46IG51bWJlcjtcbiAgICBncmlkQ29sdW1uU3BhbjogbnVtYmVyO1xuICAgIGNvbHVtbkxheW91dENoaWxkOiBib29sZWFuO1xuICAgIHdpZHRoOiBzdHJpbmc7XG4gICAgdG9wTGV2ZWxQYXJlbnQ/OiBDb2x1bW5UeXBlO1xuICAgIHBhcmVudD86IENvbHVtblR5cGU7XG4gICAgcGlwZUFyZ3M6IElDb2x1bW5QaXBlQXJncztcbiAgICBoYXNOZXN0ZWRQYXRoOiBib29sZWFuO1xuICAgIGRlZmF1bHRUaW1lRm9ybWF0OiBzdHJpbmc7XG4gICAgZGVmYXVsdERhdGVUaW1lRm9ybWF0OiBzdHJpbmc7XG4gICAgYWRkaXRpb25hbFRlbXBsYXRlQ29udGV4dDogYW55O1xuICAgIGlzTGFzdFBpbm5lZDogYm9vbGVhbjtcbiAgICBpc0ZpcnN0UGlubmVkOiBib29sZWFuO1xuICAgIGFwcGx5U2VsZWN0YWJsZUNsYXNzOiBib29sZWFuO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZ3JvdXBpbmdDb21wYXJlcjogKGE6IGFueSwgYjogYW55KSA9PiBudW1iZXI7XG5cbiAgICBmaWx0ZXJDZWxsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBtb3ZlKGluZGV4OiBudW1iZXIpOiB2b2lkO1xuICAgIGdldEF1dG9TaXplKCk6IHN0cmluZztcbiAgICBnZXRSZXNpemFibGVDb2xVbmRlckVuZCgpOiBNUkxSZXNpemVDb2x1bW5JbmZvW107XG4gICAgZ2V0Q2VsbFdpZHRoKCk6IHN0cmluZztcbiAgICBnZXRHcmlkVGVtcGxhdGUoaXNSb3c6IGJvb2xlYW4pOiBzdHJpbmc7XG4gICAgdG9nZ2xlVmlzaWJpbGl0eSh2YWx1ZT86IGJvb2xlYW4pOiB2b2lkO1xuICAgIGZvcm1hdHRlcih2YWx1ZTogYW55LCByb3dEYXRhPzogYW55KTogYW55O1xuICAgIHBvcHVsYXRlVmlzaWJsZUluZGV4ZXM/KCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRGb3JtR3JvdXBDcmVhdGVkRXZlbnRBcmdzIHtcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cCxcbiAgICBvd25lcjogR3JpZFR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JpZFZhbGlkYXRpb25TdGF0dXNFdmVudEFyZ3Mge1xuICAgIHN0YXR1czogVmFsaWRhdGlvblN0YXR1cyxcbiAgICBvd25lcjogR3JpZFR5cGVcbn1cblxuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblN0YXR1cyA9ICdWQUxJRCcgfCAnSU5WQUxJRCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRWYWxpZGF0aW9uU3RhdGUge1xuICAgIHJlYWRvbmx5IHN0YXR1czogVmFsaWRhdGlvblN0YXR1cztcbiAgICByZWFkb25seSBlcnJvcnM/OiBWYWxpZGF0aW9uRXJyb3JzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElSZWNvcmRWYWxpZGF0aW9uU3RhdGUgZXh0ZW5kcyBJR3JpZFZhbGlkYXRpb25TdGF0ZSB7XG4gICAga2V5OiBhbnk7XG4gICAgZmllbGRzOiBJRmllbGRWYWxpZGF0aW9uU3RhdGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRmllbGRWYWxpZGF0aW9uU3RhdGUgZXh0ZW5kcyBJR3JpZFZhbGlkYXRpb25TdGF0ZSB7XG4gICAgZmllbGQ6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRTZXJ2aWNlVHlwZSB7XG5cbiAgICBncmlkOiBHcmlkVHlwZTtcbiAgICBjcnVkU2VydmljZTogYW55O1xuICAgIGNtczogSWd4Q29sdW1uTW92aW5nU2VydmljZTtcblxuICAgIGdldF9kYXRhKCk6IGFueVtdO1xuICAgIGdldF9hbGxfZGF0YShpbmNsdWRlVHJhbnNhY3Rpb25zPzogYm9vbGVhbik6IGFueVtdO1xuICAgIGdldF9jb2x1bW5fYnlfbmFtZShuYW1lOiBzdHJpbmcpOiBDb2x1bW5UeXBlO1xuICAgIGdldFJvd0RhdGEoaWQ6IGFueSk6IGFueTtcbiAgICBnZXRfcmVjX2J5X2lkKGlkOiBhbnkpOiBhbnk7XG4gICAgZ2V0X3Jvd19pZChyb3dEYXRhOiBhbnkpOiBhbnk7XG4gICAgZ2V0X3Jvd19ieV9pbmRleChyb3dTZWxlY3RvcjogYW55KTogUm93VHlwZTtcbiAgICBnZXRfcm93X2J5X2tleShyb3dTZWxlY3RvcjogYW55KTogUm93VHlwZTtcbiAgICBnZXRfcmVjX2luZGV4X2J5X2lkKHBrOiBzdHJpbmcgfCBudW1iZXIsIGRhdGFDb2xsZWN0aW9uPzogYW55W10pOiBudW1iZXI7XG4gICAgZ2V0X3JlY19pZF9ieV9pbmRleChpbmRleDogbnVtYmVyLCBkYXRhQ29sbGVjdGlvbj86IGFueVtdKTogYW55O1xuICAgIGdldF9yb3dfaW5kZXhfaW5fZGF0YShyb3dJRDogYW55LCBkYXRhQ29sbGVjdGlvbj86IGFueVtdKTogbnVtYmVyO1xuICAgIGdldF9jZWxsX2J5X2tleShyb3dTZWxlY3RvcjogYW55LCBmaWVsZDogc3RyaW5nKTogQ2VsbFR5cGU7XG4gICAgZ2V0X2NlbGxfYnlfaW5kZXgocm93SW5kZXg6IG51bWJlciwgY29sdW1uSUQ6IG51bWJlciB8IHN0cmluZyk6IENlbGxUeXBlO1xuICAgIGdldF9jZWxsX2J5X3Zpc2libGVfaW5kZXgocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik7XG4gICAgc2V0X2dyb3Vwcm93X2V4cGFuc2lvbl9zdGF0ZT8oZ3JvdXBSb3c6IElHcm91cEJ5UmVjb3JkLCB2YWx1ZTogYm9vbGVhbik6IHZvaWQ7XG4gICAgcm93X2RlbGV0ZWRfdHJhbnNhY3Rpb24oaWQ6IGFueSk6IGJvb2xlYW47XG4gICAgYWRkUm93VG9EYXRhKHJvd0RhdGE6IGFueSwgcGFyZW50SUQ/OiBhbnkpOiB2b2lkO1xuICAgIGRlbGV0ZVJvd0J5SWQoaWQ6IGFueSk6IGFueTtcbiAgICBnZXRfcm93X2V4cGFuc2lvbl9zdGF0ZShpZDogYW55KTogYm9vbGVhbjtcbiAgICBzZXRfcm93X2V4cGFuc2lvbl9zdGF0ZShpZDogYW55LCBleHBhbmRlZDogYm9vbGVhbiwgZXZlbnQ/OiBFdmVudCk6IHZvaWQ7XG4gICAgZ2V0X3N1bW1hcnlfZGF0YSgpOiBhbnlbXTtcblxuICAgIHByZXBhcmVfc29ydGluZ19leHByZXNzaW9uKHN0YXRlQ29sbGVjdGlvbnM6IEFycmF5PEFycmF5PGFueT4+LCBleHByZXNzaW9uOiBJU29ydGluZ0V4cHJlc3Npb24pOiB2b2lkO1xuICAgIHNvcnQoZXhwcmVzc2lvbjogSVNvcnRpbmdFeHByZXNzaW9uKTogdm9pZDtcbiAgICBzb3J0X211bHRpcGxlKGV4cHJlc3Npb25zOiBJU29ydGluZ0V4cHJlc3Npb25bXSk6IHZvaWQ7XG4gICAgY2xlYXJfc29ydChmaWVsZE5hbWU6IHN0cmluZyk6IHZvaWQ7XG5cbiAgICBmaWx0ZXJEYXRhQnlFeHByZXNzaW9ucyhleHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUpOiBhbnlbXTtcbiAgICBzb3J0RGF0YUJ5RXhwcmVzc2lvbnMoZGF0YTogYW55W10sIGV4cHJlc3Npb25zOiBJU29ydGluZ0V4cHJlc3Npb25bXSk6IGFueVtdO1xuXG4gICAgdXBkYXRlX2NlbGwoY2VsbDogSWd4Q2VsbCk6IElHcmlkRWRpdEV2ZW50QXJncztcbiAgICB1cGRhdGVfcm93KHJvdzogSWd4RWRpdFJvdywgdmFsdWU6IGFueSwgZXZlbnQ/OiBFdmVudCk6IElHcmlkRWRpdEV2ZW50QXJncztcblxuICAgIGV4cGFuZF9wYXRoX3RvX3JlY29yZD8ocmVjb3JkOiBJVHJlZUdyaWRSZWNvcmQpOiB2b2lkO1xuICAgIGdldF9zZWxlY3RlZF9jaGlsZHJlbj8ocmVjb3JkOiBJVHJlZUdyaWRSZWNvcmQsIHNlbGVjdGVkUm93SURzOiBhbnlbXSk6IHZvaWQ7XG4gICAgZ2V0X2dyb3VwQnlfcmVjb3JkX2lkPyhnUm93OiBJR3JvdXBCeVJlY29yZCk6IHN0cmluZztcbiAgICByZW1vdmVfZ3JvdXBpbmdfZXhwcmVzc2lvbj8oZmllbGROYW1lOiBzdHJpbmcpOiB2b2lkO1xuICAgIGNsZWFyX2dyb3VwYnk/KGZpZWxkOiBzdHJpbmcgfCBhbnkpOiB2b2lkO1xuICAgIGdldFBhcmVudFJvd0lkPyhjaGlsZDogR3JpZFR5cGUpOiBhbnk7XG4gICAgZ2V0Q2hpbGRHcmlkcz8oaW5EZXB0aD86IGJvb2xlYW4pOiBHcmlkVHlwZVtdO1xuICAgIGdldENoaWxkR3JpZD8ocGF0aDogSVBhdGhTZWdtZW50W10pOiBHcmlkVHlwZTtcblxuICAgIHVuc2V0Q2hpbGRSb3dJc2xhbmQ/KHJvd0lzbGFuZDogR3JpZFR5cGUpOiB2b2lkO1xuICAgIHJlZ2lzdGVyQ2hpbGRSb3dJc2xhbmQ/KHJvd0lzbGFuZDogR3JpZFR5cGUpOiB2b2lkO1xufVxuXG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBHcmlkIHR5cGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmlkVHlwZSBleHRlbmRzIElHcmlkRGF0YUJpbmRhYmxlIHtcbiAgICBkaXNwbGF5RGVuc2l0eTogRGlzcGxheURlbnNpdHk7XG4gICAgbG9jYWxlOiBzdHJpbmc7XG4gICAgcmVzb3VyY2VTdHJpbmdzOiBJR3JpZFJlc291cmNlU3RyaW5ncztcbiAgICBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICByb3dFZGl0YWJsZTogYm9vbGVhbjtcbiAgICByb290U3VtbWFyaWVzRW5hYmxlZDogYm9vbGVhbjtcbiAgICBhbGxvd0ZpbHRlcmluZzogYm9vbGVhbjtcbiAgICByb3dEcmFnZ2FibGU6IGJvb2xlYW47XG4gICAgcHJpbWFyeUtleTogYW55O1xuICAgIGlkOiBzdHJpbmc7XG4gICAgcmVuZGVyZWRSb3dIZWlnaHQ6IG51bWJlcjtcbiAgICBwaXBlVHJpZ2dlcjogbnVtYmVyO1xuICAgIHN1bW1hcnlQaXBlVHJpZ2dlcjogbnVtYmVyO1xuICAgIGZpbHRlcmluZ1BpcGVUcmlnZ2VyOiBudW1iZXI7XG4gICAgaGFzQ29sdW1uTGF5b3V0czogYm9vbGVhbjtcbiAgICBtb3Zpbmc6IGJvb2xlYW47XG4gICAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAgIGRhdGFDbG9uZVN0cmF0ZWd5OiBJRGF0YUNsb25lU3RyYXRlZ3k7XG5cbiAgICBncmlkQVBJOiBHcmlkU2VydmljZVR5cGU7XG5cbiAgICBmaWx0ZXJNb2RlOiBGaWx0ZXJNb2RlO1xuXG4gICAgLy8gVFlQRVxuICAgIHRoZWFkUm93OiBhbnk7XG4gICAgZ3JvdXBBcmVhOiBhbnk7XG4gICAgZmlsdGVyQ2VsbExpc3Q6IGFueVtdO1xuICAgIGZpbHRlcmluZ1JvdzogYW55O1xuICAgIGFjdGlvblN0cmlwOiBhbnk7XG4gICAgcmVzaXplTGluZTogYW55O1xuXG4gICAgdGZvb3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIHBhZ2luYXRvcjogSWd4UGFnaW5hdG9yQ29tcG9uZW50O1xuICAgIHBhZ2luYXRvckxpc3Q/OiBRdWVyeUxpc3Q8SWd4UGFnaW5hdG9yQ29tcG9uZW50PjtcbiAgICBjcnVkU2VydmljZTogYW55O1xuICAgIHN1bW1hcnlTZXJ2aWNlOiBhbnk7XG5cblxuXG4gICAgdmlydHVhbGl6YXRpb25TdGF0ZTogSUZvck9mU3RhdGU7XG4gICAgLy8gVFlQRVxuICAgIHNlbGVjdGlvblNlcnZpY2U6IGFueTtcbiAgICBuYXZpZ2F0aW9uOiBhbnk7XG4gICAgZmlsdGVyaW5nU2VydmljZTogYW55O1xuICAgIG91dGxldDogYW55O1xuICAgIGhhc01vdmFibGVDb2x1bW5zOiBib29sZWFuO1xuICAgIGlzUm93U2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICBzaG93Um93U2VsZWN0b3JzOiBib29sZWFuO1xuICAgIGlzUGlubmluZ1RvU3RhcnQ6IGJvb2xlYW47XG4gICAgY29sdW1uSW5EcmFnOiBhbnk7XG4gICAgcGlubmVkV2lkdGg6IG51bWJlcjtcbiAgICB1bnBpbm5lZFdpZHRoOiBudW1iZXI7XG4gICAgc3VtbWFyaWVzTWFyZ2luOiBudW1iZXI7XG4gICAgaGVhZFNlbGVjdG9yQmFzZUFyaWFMYWJlbDogc3RyaW5nO1xuXG4gICAgaGFzVmlzaWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgaGFzRXhwYW5kYWJsZUNoaWxkcmVuPzogYm9vbGVhbjtcbiAgICBzaG93RXhwYW5kQWxsPzogYm9vbGVhbjtcblxuICAgIGhpZGRlbkNvbHVtbnNDb3VudDogbnVtYmVyO1xuICAgIHBpbm5lZENvbHVtbnNDb3VudDogbnVtYmVyO1xuXG4gICAgaWNvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBncm91cFJvd1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBncm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcm93TG9hZGluZ0luZGljYXRvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBoZWFkU2VsZWN0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICByb3dTZWxlY3RvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHNvcnRIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgc29ydEFzY2VuZGluZ0hlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBzb3J0RGVzY2VuZGluZ0hlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBoZWFkZXJDb2xsYXBzZUluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIGhlYWRlckV4cGFuZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIGRyYWdJbmRpY2F0b3JJY29uVGVtcGxhdGU6IGFueTtcbiAgICBkcmFnSW5kaWNhdG9ySWNvbkJhc2U6IGFueTtcbiAgICBkaXNhYmxlVHJhbnNpdGlvbnM6IGJvb2xlYW47XG4gICAgY3VycmVuY3lQb3NpdGlvbkxlZnQ6IGJvb2xlYW47XG5cbiAgICBjb2x1bW5XaWR0aFNldEJ5VXNlcjogYm9vbGVhbjtcbiAgICBoZWFkZXJGZWF0dXJlc1dpZHRoOiBudW1iZXI7XG4gICAgY2FsY0hlaWdodDogbnVtYmVyO1xuICAgIGNhbGNXaWR0aDogbnVtYmVyO1xuICAgIG91dGVyV2lkdGg6IG51bWJlcjtcbiAgICByb3dIZWlnaHQ6IG51bWJlcjtcbiAgICBtdWx0aVJvd0xheW91dFJvd1NpemU6IG51bWJlcjtcbiAgICBkZWZhdWx0SGVhZGVyR3JvdXBNaW5XaWR0aDogYW55O1xuICAgIG1heExldmVsSGVhZGVyRGVwdGg6IG51bWJlcjtcbiAgICBkZWZhdWx0Um93SGVpZ2h0OiBudW1iZXI7XG4gICAgX2Jhc2VGb250U2l6ZT86IG51bWJlcjtcbiAgICBzY3JvbGxTaXplOiBudW1iZXI7XG5cbiAgICB2YWxpZGF0aW9uVHJpZ2dlcjogR3JpZFZhbGlkYXRpb25UcmlnZ2VyO1xuICAgIHBpbm5pbmc6IElQaW5uaW5nQ29uZmlnO1xuICAgIGV4cGFuc2lvblN0YXRlczogTWFwPGFueSwgYm9vbGVhbj47XG4gICAgcGFyZW50VmlydERpcjogYW55O1xuICAgIHRib2R5OiBhbnk7XG4gICAgdmVydGljYWxTY3JvbGxDb250YWluZXI6IGFueTtcbiAgICBkYXRhUm93TGlzdDogYW55O1xuICAgIHJvd0xpc3Q6IGFueTtcbiAgICBjb2x1bW5MaXN0OiBRdWVyeUxpc3Q8Q29sdW1uVHlwZT47XG4gICAgY29sdW1uczogQ29sdW1uVHlwZVtdO1xuICAgIHZpc2libGVDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgdW5waW5uZWRDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgcGlubmVkQ29sdW1uczogQ29sdW1uVHlwZVtdO1xuICAgIGhlYWRlckNlbGxMaXN0OiBhbnlbXTtcbiAgICBoZWFkZXJHcm91cHM6IGFueVtdO1xuICAgIGhlYWRlckdyb3Vwc0xpc3Q6IGFueVtdO1xuICAgIHN1bW1hcmllc1Jvd0xpc3Q6IGFueTtcbiAgICBoZWFkZXJDb250YWluZXI6IGFueTtcbiAgICBpc0NlbGxTZWxlY3RhYmxlOiBib29sZWFuO1xuICAgIGlzTXVsdGlSb3dTZWxlY3Rpb25FbmFibGVkOiBib29sZWFuO1xuICAgIGhhc1Bpbm5lZFJlY29yZHM6IGJvb2xlYW47XG4gICAgcGlubmVkUmVjb3Jkc0NvdW50OiBudW1iZXI7XG4gICAgcGlubmVkUmVjb3JkczogYW55W107XG4gICAgdW5waW5uZWRSZWNvcmRzOiBhbnlbXTtcbiAgICBwaW5uZWREYXRhVmlldzogYW55W107XG4gICAgcGlubmVkUm93czogYW55W107XG4gICAgZGF0YVZpZXc6IGFueVtdO1xuICAgIF9maWx0ZXJlZFVucGlubmVkRGF0YTogYW55W107XG4gICAgX2ZpbHRlcmVkU29ydGVkVW5waW5uZWREYXRhOiBhbnlbXTtcbiAgICBmaWx0ZXJlZFNvcnRlZERhdGE6IGFueVtdO1xuICAgIGRhdGFXaXRoQWRkZWRJblRyYW5zYWN0aW9uUm93czogYW55W107XG4gICAgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvblNlcnZpY2U8VHJhbnNhY3Rpb24sIFN0YXRlPjtcbiAgICB2YWxpZGF0aW9uOiBJZ3hHcmlkVmFsaWRhdGlvblNlcnZpY2U7XG4gICAgZGVmYXVsdFN1bW1hcnlIZWlnaHQ6IG51bWJlcjtcbiAgICBzdW1tYXJ5Um93SGVpZ2h0OiBudW1iZXI7XG4gICAgcm93RWRpdGluZ092ZXJsYXk6IElneFRvZ2dsZURpcmVjdGl2ZTtcbiAgICB0b3RhbFJvd3NDb3VudEFmdGVyRmlsdGVyOiBudW1iZXI7XG4gICAgX3RvdGFsUmVjb3JkczogbnVtYmVyO1xuXG4gICAgcGFnaW5nTW9kZTogR3JpZFBhZ2luZ01vZGU7XG4gICAgcGFnaW5nU3RhdGU6IGFueTtcblxuICAgIHJvd0VkaXRUYWJzOiBhbnk7XG4gICAgbGFzdFNlYXJjaEluZm86IElTZWFyY2hJbmZvO1xuICAgIHBhZ2U6IG51bWJlcjtcbiAgICBwZXJQYWdlOiBudW1iZXI7XG4gICAgZHJhZ1Jvd0lEOiBhbnk7XG4gICAgcm93RHJhZ2dpbmc6IGJvb2xlYW47XG4gICAgZXZlblJvd0NTUzogc3RyaW5nO1xuICAgIG9kZFJvd0NTUzogc3RyaW5nO1xuXG4gICAgZmlyc3RFZGl0YWJsZUNvbHVtbkluZGV4OiBudW1iZXI7XG4gICAgbGFzdEVkaXRhYmxlQ29sdW1uSW5kZXg6IG51bWJlcjtcbiAgICBpc1Jvd1Bpbm5pbmdUb1RvcDogYm9vbGVhbjtcbiAgICBoYXNEZXRhaWxzOiBib29sZWFuO1xuICAgIGhhc1N1bW1hcml6ZWRDb2x1bW5zOiBib29sZWFuO1xuICAgIGhhc0NvbHVtbkdyb3VwczogYm9vbGVhbjtcbiAgICBoYXNFZGl0YWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgdW5pcXVlQ29sdW1uVmFsdWVzU3RyYXRlZ3k6IChjb2x1bW46IENvbHVtblR5cGUsIHRyZWU6IEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSwgZG9uZTogKHZhbHVlczogYW55W10pID0+IHZvaWQpID0+IHZvaWQ7XG4gICAgZ2V0SGVhZGVyQ2VsbFdpZHRoOiAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IElTaXplSW5mbztcblxuICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICAgZG9jdW1lbnQ6IERvY3VtZW50O1xuICAgIHJvd0V4cGFuZGVkSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcm93Q29sbGFwc2VkSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgZXhjZWxTdHlsZUhlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHNlbGVjdFJvd09uQ2xpY2s6IGJvb2xlYW47XG4gICAgY2VsbFNlbGVjdGlvbjogR3JpZFNlbGVjdGlvbk1vZGU7XG4gICAgcm93U2VsZWN0aW9uOiBHcmlkU2VsZWN0aW9uTW9kZTtcbiAgICBjb2x1bW5TZWxlY3Rpb246IEdyaWRTZWxlY3Rpb25Nb2RlO1xuICAgIHN1bW1hcnlDYWxjdWxhdGlvbk1vZGU6IEdyaWRTdW1tYXJ5Q2FsY3VsYXRpb25Nb2RlO1xuICAgIHN1bW1hcnlQb3NpdGlvbjogR3JpZFN1bW1hcnlQb3NpdGlvbjtcblxuICAgIC8vIFhYWDogV29yayBhcm91bmQgdGlsbCB3ZSBmaXhlZCB0aGUgaW5qZWN0aW9uIHRva2Vuc1xuICAgIGxhc3RDaGlsZEdyaWQ/OiBHcmlkVHlwZTtcbiAgICB0b29sYmFyT3V0bGV0PzogVmlld0NvbnRhaW5lclJlZjtcbiAgICBwYWdpbmF0b3JPdXRsZXQ/OiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIGZsYXREYXRhPzogYW55W10gfCBudWxsO1xuICAgIGNoaWxkUm93PzogYW55O1xuICAgIGV4cGFuc2lvbkRlcHRoPzogbnVtYmVyO1xuICAgIGNoaWxkRGF0YUtleT86IGFueTtcbiAgICBmb3JlaWduS2V5PzogYW55O1xuICAgIGNhc2NhZGVPbkRlbGV0ZT86IGJvb2xlYW47XG4gICAgbG9hZENoaWxkcmVuT25EZW1hbmQ/OiAocGFyZW50SUQ6IGFueSwgZG9uZTogKGNoaWxkcmVuOiBhbnlbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICBoYXNDaGlsZHJlbktleT86IGFueTtcbiAgICBsb2FkaW5nUm93cz86IFNldDxhbnk+O1xuICAgIHBhcmVudD86IEdyaWRUeXBlO1xuICAgIGhpZ2hsaWdodGVkUm93SUQ/OiBhbnk7XG4gICAgdXBkYXRlT25SZW5kZXI/OiBib29sZWFuO1xuICAgIGNoaWxkTGF5b3V0S2V5cz86IGFueVtdO1xuICAgIGNoaWxkTGF5b3V0TGlzdD86IFF1ZXJ5TGlzdDxhbnk+O1xuICAgIHJvb3RHcmlkPzogR3JpZFR5cGU7XG4gICAgcHJvY2Vzc2VkUm9vdFJlY29yZHM/OiBJVHJlZUdyaWRSZWNvcmRbXTtcbiAgICByb290UmVjb3Jkcz86IElUcmVlR3JpZFJlY29yZFtdO1xuICAgIHJlY29yZHM/OiBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+O1xuICAgIHByb2Nlc3NlZEV4cGFuZGVkRmxhdERhdGE/OiBhbnlbXSB8IG51bGw7XG4gICAgcHJvY2Vzc2VkUmVjb3Jkcz86IE1hcDxhbnksIElUcmVlR3JpZFJlY29yZD47XG4gICAgdHJlZUdyb3VwQXJlYT86IGFueTtcblxuICAgIGFjdGl2ZU5vZGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJQWN0aXZlTm9kZUNoYW5nZUV2ZW50QXJncz47XG4gICAgZ3JpZEtleWRvd246IEV2ZW50RW1pdHRlcjxJR3JpZEtleWRvd25FdmVudEFyZ3M+O1xuICAgIGNlbGxDbGljazogRXZlbnRFbWl0dGVyPElHcmlkQ2VsbEV2ZW50QXJncz47XG4gICAgZG91YmxlQ2xpY2s6IEV2ZW50RW1pdHRlcjxJR3JpZENlbGxFdmVudEFyZ3M+O1xuICAgIGNvbnRleHRNZW51OiBFdmVudEVtaXR0ZXI8SUdyaWRDZWxsRXZlbnRBcmdzPjtcbiAgICBzZWxlY3RlZDogRXZlbnRFbWl0dGVyPElHcmlkQ2VsbEV2ZW50QXJncz47XG4gICAgcmFuZ2VTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEdyaWRTZWxlY3Rpb25SYW5nZT47XG4gICAgcm93U2VsZWN0aW9uQ2hhbmdpbmc6IEV2ZW50RW1pdHRlcjxJUm93U2VsZWN0aW9uRXZlbnRBcmdzPjtcbiAgICBsb2NhbGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcbiAgICBmaWx0ZXJpbmc6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXZlbnRBcmdzPjtcbiAgICBmaWx0ZXJpbmdEb25lOiBFdmVudEVtaXR0ZXI8SUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZT47XG4gICAgY29sdW1uUGlubmVkOiBFdmVudEVtaXR0ZXI8SVBpbkNvbHVtbkV2ZW50QXJncz47XG4gICAgY29sdW1uUmVzaXplZDogRXZlbnRFbWl0dGVyPElDb2x1bW5SZXNpemVFdmVudEFyZ3M+O1xuICAgIGNvbHVtbk1vdmluZ0VuZDogRXZlbnRFbWl0dGVyPElDb2x1bW5Nb3ZpbmdFbmRFdmVudEFyZ3M+O1xuICAgIGNvbHVtblNlbGVjdGlvbkNoYW5naW5nOiBFdmVudEVtaXR0ZXI8SUNvbHVtblNlbGVjdGlvbkV2ZW50QXJncz47XG4gICAgY29sdW1uTW92aW5nOiBFdmVudEVtaXR0ZXI8SUNvbHVtbk1vdmluZ0V2ZW50QXJncz47XG4gICAgY29sdW1uTW92aW5nU3RhcnQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uTW92aW5nU3RhcnRFdmVudEFyZ3M+O1xuICAgIGNvbHVtblBpbjogRXZlbnRFbWl0dGVyPElQaW5Db2x1bW5DYW5jZWxsYWJsZUV2ZW50QXJncz47XG4gICAgY29sdW1uVmlzaWJpbGl0eUNoYW5naW5nOiBFdmVudEVtaXR0ZXI8SUNvbHVtblZpc2liaWxpdHlDaGFuZ2luZ0V2ZW50QXJncz47XG4gICAgY29sdW1uVmlzaWJpbGl0eUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uVmlzaWJpbGl0eUNoYW5nZWRFdmVudEFyZ3M+O1xuICAgIGJhdGNoRWRpdGluZ0NoYW5nZT86IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcbiAgICBvbkRlbnNpdHlDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8SURlbnNpdHlDaGFuZ2VkRXZlbnRBcmdzPjtcbiAgICByb3dBZGQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIHJvd0FkZGVkOiBFdmVudEVtaXR0ZXI8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIHJvd0FkZGVkTm90aWZpZXI6IFN1YmplY3Q8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIHJvd0RlbGV0ZWQ6IEV2ZW50RW1pdHRlcjxJUm93RGF0YUV2ZW50QXJncz47XG4gICAgcm93RGVsZXRlZE5vdGlmaWVyOiBTdWJqZWN0PElSb3dEYXRhRXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdEVudGVyOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdDogRXZlbnRFbWl0dGVyPElHcmlkRWRpdEV2ZW50QXJncz47XG4gICAgY2VsbEVkaXREb25lOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgY2VsbEVkaXRFeGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgcm93RWRpdEVudGVyOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICByb3dFZGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICByb3dFZGl0RG9uZTogRXZlbnRFbWl0dGVyPElHcmlkRWRpdERvbmVFdmVudEFyZ3M+O1xuICAgIHJvd0VkaXRFeGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgcm93RHJhZ1N0YXJ0OiBFdmVudEVtaXR0ZXI8SVJvd0RyYWdTdGFydEV2ZW50QXJncz47XG4gICAgcm93RHJhZ0VuZDogRXZlbnRFbWl0dGVyPElSb3dEcmFnRW5kRXZlbnRBcmdzPjtcbiAgICByb3dUb2dnbGU6IEV2ZW50RW1pdHRlcjxJUm93VG9nZ2xlRXZlbnRBcmdzPjtcbiAgICBmb3JtR3JvdXBDcmVhdGVkOiBFdmVudEVtaXR0ZXI8SUdyaWRGb3JtR3JvdXBDcmVhdGVkRXZlbnRBcmdzPjtcbiAgICB2YWxpZGF0aW9uU3RhdHVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUdyaWRWYWxpZGF0aW9uU3RhdHVzRXZlbnRBcmdzPjtcblxuICAgIHRvb2xiYXJFeHBvcnRpbmc6IEV2ZW50RW1pdHRlcjxJR3JpZFRvb2xiYXJFeHBvcnRFdmVudEFyZ3M+O1xuICAgIHJlbmRlcmVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICByZXNpemVOb3RpZnk6IFN1YmplY3Q8dm9pZD47XG5cbiAgICBzb3J0U3RyYXRlZ3k6IElHcmlkU29ydGluZ1N0cmF0ZWd5O1xuICAgIGdyb3VwU3RyYXRlZ3k/OiBJR3JpZEdyb3VwaW5nU3RyYXRlZ3k7XG4gICAgZmlsdGVyaW5nTG9naWM6IEZpbHRlcmluZ0xvZ2ljO1xuICAgIGZpbHRlclN0cmF0ZWd5OiBJRmlsdGVyaW5nU3RyYXRlZ3k7XG4gICAgYWxsb3dBZHZhbmNlZEZpbHRlcmluZzogYm9vbGVhbjtcbiAgICBzb3J0aW5nRXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdO1xuICAgIHNvcnRpbmdFeHByZXNzaW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPElTb3J0aW5nRXhwcmVzc2lvbltdPjtcbiAgICBmaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU7XG4gICAgZmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZT47XG4gICAgYWR2YW5jZWRGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU7XG4gICAgYWR2YW5jZWRGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlPjtcbiAgICBzb3J0aW5nT3B0aW9uczogSVNvcnRpbmdPcHRpb25zO1xuXG4gICAgYmF0Y2hFZGl0aW5nOiBib29sZWFuO1xuICAgIGdyb3VwaW5nRXhwYW5zaW9uU3RhdGU/OiBJR3JvdXBCeUV4cGFuZFN0YXRlW107XG4gICAgZ3JvdXBpbmdFeHByZXNzaW9ucz86IElHcm91cGluZ0V4cHJlc3Npb25bXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zQ2hhbmdlPzogRXZlbnRFbWl0dGVyPElHcm91cGluZ0V4cHJlc3Npb25bXT47XG4gICAgZ3JvdXBzRXhwYW5kZWQ/OiBib29sZWFuO1xuICAgIGdyb3Vwc1JlY29yZHM/OiBJR3JvdXBCeVJlY29yZFtdO1xuICAgIGdyb3VwaW5nRmxhdFJlc3VsdD86IGFueVtdO1xuICAgIGdyb3VwaW5nUmVzdWx0PzogYW55W107XG4gICAgZ3JvdXBpbmdNZXRhZGF0YT86IGFueVtdO1xuICAgIHNlbGVjdGVkQ2VsbHM/OiBDZWxsVHlwZVtdO1xuICAgIHNlbGVjdGVkUm93czogYW55W107XG4gICAgYWN0aXZlRGVzY2VuZGFudD86IHN0cmluZztcbiAgICBpc1Bpdm90PzogYm9vbGVhbjtcblxuICAgIHRvZ2dsZUdyb3VwPyhncm91cFJvdzogSUdyb3VwQnlSZWNvcmQpOiB2b2lkO1xuICAgIGNsZWFyR3JvdXBpbmc/KGZpZWxkOiBzdHJpbmcpOiB2b2lkO1xuICAgIGdyb3VwQnk/KGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24gfCBBcnJheTxJR3JvdXBpbmdFeHByZXNzaW9uPik6IHZvaWQ7XG4gICAgcmVzb2x2ZU91dGxldD8oKTogSWd4T3ZlcmxheU91dGxldERpcmVjdGl2ZTtcbiAgICB1cGRhdGVDb2x1bW5zKGNvbHVtbnM6IENvbHVtblR5cGVbXSk6IHZvaWQ7XG4gICAgZ2V0U2VsZWN0ZWRSYW5nZXMoKTogR3JpZFNlbGVjdGlvblJhbmdlW107XG4gICAgZGVzZWxlY3RBbGxDb2x1bW5zKCk6IHZvaWQ7XG4gICAgZGVzZWxlY3RDb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdIHwgQ29sdW1uVHlwZVtdKTogdm9pZDtcbiAgICBzZWxlY3RDb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdIHwgQ29sdW1uVHlwZVtdKTogdm9pZDtcbiAgICBzZWxlY3RlZENvbHVtbnMoKTogQ29sdW1uVHlwZVtdO1xuICAgIHJlZnJlc2hTZWFyY2goKTogdm9pZDtcbiAgICBnZXREZWZhdWx0RXhwYW5kU3RhdGUocmVjb3JkOiBhbnkpOiBib29sZWFuO1xuICAgIHRyYWNrQ29sdW1uQ2hhbmdlcyhpbmRleDogbnVtYmVyLCBjb2x1bW46IGFueSk6IGFueTtcbiAgICBnZXRQb3NzaWJsZUNvbHVtbldpZHRoKCk6IHN0cmluZztcbiAgICByZXNldEhvcml6b250YWxWaXJ0dWFsaXphdGlvbigpOiB2b2lkO1xuICAgIGhhc1ZlcnRpY2FsU2Nyb2xsKCk6IGJvb2xlYW47XG4gICAgZ2V0VmlzaWJsZUNvbnRlbnRIZWlnaHQoKTogbnVtYmVyO1xuICAgIGdldERyYWdHaG9zdEN1c3RvbVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICAgIG9wZW5Sb3dPdmVybGF5KGlkOiBhbnkpOiB2b2lkO1xuICAgIG9wZW5BZHZhbmNlZEZpbHRlcmluZ0RpYWxvZygpOiB2b2lkO1xuICAgIHNob3dTbmFja2JhckZvcihpbmRleDogbnVtYmVyKTogdm9pZDtcbiAgICBnZXRDb2x1bW5CeU5hbWUobmFtZTogc3RyaW5nKTogYW55O1xuICAgIGdldENvbHVtbkJ5VmlzaWJsZUluZGV4KGluZGV4OiBudW1iZXIpOiBDb2x1bW5UeXBlO1xuICAgIGdldEhlYWRlckdyb3VwV2lkdGgoY29sdW1uOiBDb2x1bW5UeXBlKTogc3RyaW5nO1xuICAgIGdldFJvd0J5S2V5PyhrZXk6IGFueSk6IFJvd1R5cGU7XG4gICAgZ2V0Um93QnlJbmRleD8oaW5kZXg6IG51bWJlcik6IFJvd1R5cGU7XG4gICAgc2V0RmlsdGVyZWREYXRhKGRhdGE6IGFueSwgcGlubmVkOiBib29sZWFuKTogdm9pZDtcbiAgICBzZXRGaWx0ZXJlZFNvcnRlZERhdGEoZGF0YTogYW55LCBwaW5uZWQ6IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNvcnQoZXhwcmVzc2lvbjogSVNvcnRpbmdFeHByZXNzaW9uIHwgSVNvcnRpbmdFeHByZXNzaW9uW10pOiB2b2lkO1xuICAgIGNsZWFyU29ydChuYW1lPzogc3RyaW5nKTogdm9pZDtcbiAgICBwaW5Sb3coaWQ6IGFueSwgaW5kZXg/OiBudW1iZXIsIHJvdz86IFJvd1R5cGUpOiBib29sZWFuO1xuICAgIHVucGluUm93KGlkOiBhbnksIHJvdz86IFJvd1R5cGUpOiBib29sZWFuO1xuICAgIGdldFVucGlubmVkSW5kZXhCeUlkKGlkOiBhbnkpOiBudW1iZXI7XG4gICAgZ2V0RW1wdHlSZWNvcmRPYmplY3RGb3IoaW5Sb3c6IFJvd1R5cGUpOiBhbnk7XG4gICAgaXNTdW1tYXJ5Um93KHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc1JlY29yZFBpbm5lZChyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgZ2V0SW5pdGlhbFBpbm5lZEluZGV4KHJlYzogYW55KTogbnVtYmVyO1xuICAgIGlzUmVjb3JkUGlubmVkQnlWaWV3SW5kZXgocm93SW5kZXg6IG51bWJlcik6IGJvb2xlYW47XG4gICAgaXNDb2x1bW5Hcm91cGVkKGZpZWxkTmFtZTogc3RyaW5nKTogYm9vbGVhbjtcbiAgICBpc0RldGFpbFJlY29yZChyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgaXNHcm91cEJ5UmVjb3JkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc0dob3N0UmVjb3JkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc1RyZWVSb3c/KHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc0NoaWxkR3JpZFJlY29yZD8ocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGdldENoaWxkR3JpZHM/KGluRGVwdGg/OiBib29sZWFuKTogYW55W107XG4gICAgaXNIaWVyYXJjaGljYWxSZWNvcmQ/KHJlY29yZDogYW55KTogYm9vbGVhbjtcbiAgICBjb2x1bW5Ub1Zpc2libGVJbmRleChrZXk6IHN0cmluZyB8IG51bWJlcik6IG51bWJlcjtcbiAgICBtb3ZlQ29sdW1uKGNvbHVtbjogQ29sdW1uVHlwZSwgdGFyZ2V0OiBDb2x1bW5UeXBlLCBwb3M6IERyb3BQb3NpdGlvbik6IHZvaWQ7XG4gICAgbmF2aWdhdGVUbyhyb3dJbmRleDogbnVtYmVyLCB2aXNpYmxlQ29sdW1uSW5kZXg6IG51bWJlciwgY2FsbGJhY2s/OiAoZTogYW55KSA9PiBhbnkpOiB2b2lkO1xuICAgIGdldFByZXZpb3VzQ2VsbChjdXJyUm93SW5kZXg6IG51bWJlciwgY3VyVmlzaWJsZUNvbEluZGV4OiBudW1iZXIsIGNhbGxiYWNrOiAoYzogQ29sdW1uVHlwZSkgPT4gYm9vbGVhbik6IElDZWxsUG9zaXRpb247XG4gICAgZ2V0TmV4dENlbGwoY3VyclJvd0luZGV4OiBudW1iZXIsIGN1clZpc2libGVDb2xJbmRleDogbnVtYmVyLCBjYWxsYmFjazogKGM6IENvbHVtblR5cGUpID0+IGJvb2xlYW4pOiBJQ2VsbFBvc2l0aW9uO1xuICAgIGNsZWFyQ2VsbFNlbGVjdGlvbigpOiB2b2lkO1xuICAgIHNlbGVjdFJhbmdlKHJhbmdlOiBHcmlkU2VsZWN0aW9uUmFuZ2UgfCBHcmlkU2VsZWN0aW9uUmFuZ2VbXSk6IHZvaWQ7XG4gICAgc2VsZWN0Um93cyhyb3dJRHM6IGFueVtdLCBjbGVhckN1cnJlbnRTZWxlY3Rpb24/OiBib29sZWFuKTogdm9pZDtcbiAgICBkZXNlbGVjdFJvd3Mocm93SURzOiBhbnlbXSk6IHZvaWQ7XG4gICAgc2VsZWN0QWxsUm93cyhvbmx5RmlsdGVyRGF0YT86IGJvb2xlYW4pOiB2b2lkO1xuICAgIGRlc2VsZWN0QWxsUm93cyhvbmx5RmlsdGVyRGF0YT86IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNldFVwUGFnaW5hdG9yKCk6IHZvaWQ7XG4gICAgY3JlYXRlRmlsdGVyRHJvcGRvd24oY29sdW1uOiBDb2x1bW5UeXBlLCBvcHRpb25zOiBPdmVybGF5U2V0dGluZ3MpOiBhbnk7XG4gICAgLy8gVHlwZSB0byBSb3dUeXBlXG4gICAgY3JlYXRlUm93PyhpbmRleDogbnVtYmVyLCBkYXRhPzogYW55KTogUm93VHlwZTtcbiAgICBkZWxldGVSb3coaWQ6IGFueSk6IGFueTtcbiAgICBkZWxldGVSb3dCeUlkKGlkOiBhbnkpOiBhbnk7XG4gICAgY29sbGFwc2VSb3coaWQ6IGFueSk6IHZvaWQ7XG4gICAgbm90aWZ5Q2hhbmdlcyhyZXBhaW50PzogYm9vbGVhbik6IHZvaWQ7XG4gICAgcmVzZXRDb2x1bW5Db2xsZWN0aW9ucygpOiB2b2lkO1xuICAgIHRyaWdnZXJQaXBlcygpOiB2b2lkO1xuICAgIHJlcG9zaXRpb25Sb3dFZGl0aW5nT3ZlcmxheShyb3c6IFJvd1R5cGUpOiB2b2lkO1xuICAgIGNsb3NlUm93RWRpdGluZ092ZXJsYXkoKTogdm9pZDtcbiAgICByZWZsb3coKTogdm9pZDtcblxuICAgIC8vIFRPRE86IE1heWJlIG1vdmUgdGhlbSB0byBGbGF0R3JpZFR5cGUsIGJ1dCB0aGVuIHdpbGwgd2UgbmVlZCBhbm90aGVyIHRva2VuP1xuICAgIGlzRXhwYW5kZWRHcm91cChncm91cDogSUdyb3VwQnlSZWNvcmQpOiBib29sZWFuO1xuICAgIGNyZWF0ZUNvbHVtbnNMaXN0Pyhjb2xzOiBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIHRvZ2dsZUFsbEdyb3VwUm93cz8oKTogdm9pZDtcbiAgICB0b2dnbGVBbGw/KCk6IHZvaWQ7XG4gICAgZ2VuZXJhdGVSb3dQYXRoPyhyb3dJZDogYW55KTogYW55W107XG4gICAgcHJldmVudEhlYWRlclNjcm9sbD8oYXJnczogYW55KTogdm9pZDtcblxufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIGEgRmxhdCBHcmlkIHR5cGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbGF0R3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgZ3JvdXBpbmdFeHBhbnNpb25TdGF0ZTogSUdyb3VwQnlFeHBhbmRTdGF0ZVtdO1xuICAgIGdyb3VwaW5nRXhwcmVzc2lvbnM6IElHcm91cGluZ0V4cHJlc3Npb25bXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUdyb3VwaW5nRXhwcmVzc2lvbltdPjtcblxuICAgIHRvZ2dsZUdyb3VwKGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZCk6IHZvaWQ7XG4gICAgY2xlYXJHcm91cGluZyhmaWVsZDogc3RyaW5nKTogdm9pZDtcbiAgICBncm91cEJ5KGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24gfCBBcnJheTxJR3JvdXBpbmdFeHByZXNzaW9uPik6IHZvaWQ7XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBUcmVlIEdyaWQgdHlwZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVHcmlkVHlwZSBleHRlbmRzIEdyaWRUeXBlIHtcbiAgICByZWNvcmRzOiBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+O1xuICAgIGlzVHJlZVJvdyhyZWM6IGFueSk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBIaWVyYXJjaGljYWwgR3JpZCB0eXBlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGllcmFyY2hpY2FsR3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgY2hpbGRMYXlvdXRLZXlzOiBhbnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaXZvdEdyaWRUeXBlIGV4dGVuZHMgR3JpZFR5cGUge1xuICAgIHBpdm90Q29uZmlndXJhdGlvbjogSVBpdm90Q29uZmlndXJhdGlvbjtcbiAgICBhbGxEaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXSxcbiAgICBzaG93UGl2b3RDb25maWd1cmF0aW9uVUk6IGJvb2xlYW47XG4gICAgY29sdW1uRGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW107XG4gICAgcm93RGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW107XG4gICAgcm93RGltZW5zaW9uUmVzaXppbmc6IGJvb2xlYW47XG4gICAgdmFsdWVzOiBJUGl2b3RWYWx1ZVtdO1xuICAgIGZpbHRlckRpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdO1xuICAgIGRpbWVuc2lvbkRhdGFDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgcGl2b3RSb3dXaWR0aHM6IG51bWJlcjtcbiAgICBzZXR1cENvbHVtbnMoKTogdm9pZDtcbiAgICB0b2dnbGVSb3cocm93SUQ6IGFueSk6IHZvaWQ7XG4gICAgcmVzb2x2ZURhdGFUeXBlcyhmaWVsZDogYW55KTogR3JpZENvbHVtbkRhdGFUeXBlO1xuICAgIG1vdmVEaW1lbnNpb24oZGltZW5zaW9uOiBJUGl2b3REaW1lbnNpb24sIHRhcmdldENvbGxlY3Rpb25UeXBlOiBQaXZvdERpbWVuc2lvblR5cGUsIGluZGV4PyA6IG51bWJlcik7XG4gICAgZ2V0RGltZW5zaW9uc0J5VHlwZShkaW1lbnNpb246IFBpdm90RGltZW5zaW9uVHlwZSk7XG4gICAgdG9nZ2xlRGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uKTtcbiAgICBzb3J0RGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uLCBzb3J0RGlyZWN0aW9uOiBTb3J0aW5nRGlyZWN0aW9uKTtcbiAgICB0b2dnbGVWYWx1ZSh2YWx1ZTogSVBpdm90VmFsdWUpO1xuICAgIG1vdmVWYWx1ZSh2YWx1ZTogSVBpdm90VmFsdWUsIGluZGV4PzogbnVtYmVyKTtcbiAgICByb3dEaW1lbnNpb25XaWR0aFRvUGl4ZWxzKGRpbTogSVBpdm90RGltZW5zaW9uKTogbnVtYmVyO1xuICAgIGRpbWVuc2lvbnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRGltZW5zaW9uc0NoYW5nZT47XG4gICAgdmFsdWVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVZhbHVlc0NoYW5nZT47XG4gICAgcGl2b3RLZXlzOiBJUGl2b3RLZXlzO1xuICAgIGhhc011bHRpcGxlVmFsdWVzOiBib29sZWFuO1xuICAgIGV4Y2VsU3R5bGVGaWx0ZXJNYXhIZWlnaHQ6IHN0cmluZztcbiAgICBleGNlbFN0eWxlRmlsdGVyTWluSGVpZ2h0OiBzdHJpbmc7XG4gICAgdmFsdWVDaGlwVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG59XG5leHBvcnQgaW50ZXJmYWNlIEdyaWRTVkdJY29uIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2l6ZUluZm8ge1xuICAgIHdpZHRoOiBudW1iZXIsXG4gICAgcGFkZGluZzogbnVtYmVyXG59XG4iXX0=
@@ -88,19 +88,19 @@ export class IgxGridValidationService {
88
88
  const colKey = this.getFieldKey(col.field);
89
89
  const control = formGroup.get(colKey);
90
90
  if (control) {
91
- state.push({ field: colKey, valid: control.valid, errors: control.errors });
91
+ state.push({ field: colKey, status: control.status, errors: control.errors });
92
92
  }
93
93
  }
94
- states.push({ key: key, valid: formGroup.valid, cells: state, errors: formGroup.errors });
94
+ states.push({ key: key, status: formGroup.status, fields: state, errors: formGroup.errors });
95
95
  });
96
96
  return states;
97
97
  }
98
- /** Returns all invalid record states.
99
- * @returns Array of IRecordValidationState.
100
- */
98
+ /**
99
+ * Returns all invalid record states.
100
+ */
101
101
  getInvalid() {
102
102
  const validity = this.getValidity();
103
- return validity.filter(x => !x.valid);
103
+ return validity.filter(x => x.status === 'INVALID');
104
104
  }
105
105
  /**
106
106
  * @hidden
@@ -121,11 +121,11 @@ export class IgxGridValidationService {
121
121
  this.updateStatus();
122
122
  }
123
123
  /** Marks the associated record or field as touched.
124
- * @param id The id of the record that will be marked as touched.
124
+ * @param key The id of the record that will be marked as touched.
125
125
  * @param field Optional. The field from the record that will be marked as touched. If not provided all fields will be touched.
126
126
  */
127
- markAsTouched(rowId, field) {
128
- const rowGroup = this.getFormGroup(rowId);
127
+ markAsTouched(key, field) {
128
+ const rowGroup = this.getFormGroup(key);
129
129
  if (!rowGroup)
130
130
  return;
131
131
  rowGroup.markAsTouched();
@@ -146,13 +146,12 @@ export class IgxGridValidationService {
146
146
  this.grid.validationStatusChange.emit({ status: this.valid ? 'VALID' : 'INVALID', owner: this.grid });
147
147
  }
148
148
  }
149
- /** Clears validity state by id or clears all states if no id is passed.
150
- * @param id The id of the record for which to clear state.
151
- * @returns Array of IRecordValidationState.
149
+ /** Clears validation state by key or all states if none is provided.
150
+ * @param key Optional. The key of the record for which to clear state.
152
151
  */
153
- clear(rowId) {
154
- if (rowId !== undefined) {
155
- this._validityStates.delete(rowId);
152
+ clear(key) {
153
+ if (key !== undefined) {
154
+ this._validityStates.delete(key);
156
155
  }
157
156
  else {
158
157
  this._validityStates.clear();
@@ -165,4 +164,4 @@ IgxGridValidationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0
165
164
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: IgxGridValidationService, decorators: [{
166
165
  type: Injectable
167
166
  }] });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC12YWxpZGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZ3JpZC9ncmlkLXZhbGlkYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBSXJELE1BQU0sT0FBTyx3QkFBd0I7SUFEckM7UUFPWSxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQzVDLFdBQU0sR0FBRyxJQUFJLENBQUM7S0FxS3pCO0lBbEtHO01BQ0U7SUFDRixJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSTtRQUNyQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDWixTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDakMsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcs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MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyByZXNvbHZlTmVzdGVkUGF0aCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgR3JpZFR5cGUsIElGaWVsZFZhbGlkYXRpb25TdGF0ZSwgSUdyaWRGb3JtR3JvdXBDcmVhdGVkRXZlbnRBcmdzLCBJUmVjb3JkVmFsaWRhdGlvblN0YXRlIH0gZnJvbSAnLi4vY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElneEdyaWRWYWxpZGF0aW9uU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBncmlkOiBHcmlkVHlwZTtcbiAgICBwcml2YXRlIF92YWxpZGl0eVN0YXRlcyA9IG5ldyBNYXA8YW55LCBGb3JtR3JvdXA+KCk7XG4gICAgcHJpdmF0ZSBfdmFsaWQgPSB0cnVlO1xuXG5cbiAgICAvKiogR2V0cyB3aGV0aGVyIHN0YXRlIGlzIHZhbGlkLlxuICAgICovXG4gICAgcHVibGljIGdldCB2YWxpZCgpIDogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWxpZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZShyb3dJZCwgZGF0YSkge1xuICAgICAgICBsZXQgZm9ybUdyb3VwID0gdGhpcy5nZXRGb3JtR3JvdXAocm93SWQpO1xuICAgICAgICBpZiAoIWZvcm1Hcm91cCkge1xuICAgICAgICAgICAgZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbCBvZiB0aGlzLmdyaWQuY29sdW1ucykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcmVzb2x2ZU5lc3RlZFBhdGgoZGF0YSB8fCB7fSwgY29sLmZpZWxkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZ2V0RmllbGRLZXkoY29sLmZpZWxkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gbmV3IEZvcm1Db250cm9sKHZhbHVlLCB7IHVwZGF0ZU9uOiB0aGlzLmdyaWQudmFsaWRhdGlvblRyaWdnZXIgfSk7XG4gICAgICAgICAgICAgICAgY29udHJvbC5hZGRWYWxpZGF0b3JzKGNvbC52YWxpZGF0b3JzKTtcbiAgICAgICAgICAgICAgICBmb3JtR3JvdXAuYWRkQ29udHJvbChmaWVsZCwgY29udHJvbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBhcmdzOiBJR3JpZEZvcm1Hcm91cENyZWF0ZWRFdmVudEFyZ3MgPSB7XG4gICAgICAgICAgICAgICAgZm9ybUdyb3VwLFxuICAgICAgICAgICAgICAgIG93bmVyOiB0aGlzLmdyaWRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLmdyaWQuZm9ybUdyb3VwQ3JlYXRlZC5lbWl0KGFyZ3MpO1xuICAgICAgICAgICAgdGhpcy5hZGQocm93SWQsIGZvcm1Hcm91cCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyByZXNldCB0byBwcmlzdGluZS5cbiAgICAgICAgICAgIGZvciAoY29uc3QgY29sIG9mIHRoaXMuZ3JpZC5jb2x1bW5zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGNvbC5maWVsZCk7XG4gICAgICAgICAgICAgICAgaWYgKGZvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICByZXR1cm4gZm9ybUdyb3VwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldEZpZWxkS2V5KHBhdGg6IHN0cmluZykge1xuICAgICAgICBjb25zdCBwYXJ0cyA9IHBhdGg/LnNwbGl0KCcuJykgPz8gW107XG4gICAgICAgIHJldHVybiBwYXJ0cy5qb2luKCdfJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRGb3JtR3JvdXAoaWQ6IGFueSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsaWRpdHlTdGF0ZXMuZ2V0KGlkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldEZvcm1Db250cm9sKHJvd0lkOiBhbnksIGNvbHVtbktleTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5nZXRGb3JtR3JvdXAocm93SWQpO1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZ2V0RmllbGRLZXkoY29sdW1uS2V5KTtcbiAgICAgICAgcmV0dXJuIGZvcm1Db250cm9sPy5nZXQoZmllbGQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkKHJvd0lkOiBhbnksIGZvcm06IEZvcm1Hcm91cCkge1xuICAgICAgICB0aGlzLl92YWxpZGl0eVN0YXRlcy5zZXQocm93SWQsIGZvcm0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFZhbGlkaXR5KCk6IElSZWNvcmRWYWxpZGF0aW9uU3RhdGVbXSB7XG4gICAgICAgIGNvbnN0IHN0YXRlczogSVJlY29yZFZhbGlkYXRpb25TdGF0ZVtdID0gW107XG4gICAgICAgIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmZvckVhY2goKGZvcm1Hcm91cCwga2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZTogSUZpZWxkVmFsaWRhdGlvblN0YXRlW10gPSBbXTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY29sIG9mIHRoaXMuZ3JpZC5jb2x1bW5zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sS2V5ID0gdGhpcy5nZXRGaWVsZEtleShjb2wuZmllbGQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGNvbEtleSk7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUucHVzaCh7IGZpZWxkOiBjb2xLZXksIHZhbGlkOiBjb250cm9sLnZhbGlkLCBlcnJvcnM6IGNvbnRyb2wuZXJyb3JzIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3RhdGVzLnB1c2goeyBrZXk6IGtleSwgdmFsaWQ6IGZvcm1Hcm91cC52YWxpZCwgY2VsbHM6IHN0YXRlLCBlcnJvcnM6IGZvcm1Hcm91cC5lcnJvcnMgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gc3RhdGVzO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIGFsbCBpbnZhbGlkIHJlY29yZCBzdGF0ZXMuXG4gICAgKiBAcmV0dXJucyBBcnJheSBvZiBJUmVjb3JkVmFsaWRhdGlvblN0YXRlLlxuICAgICovXG4gICAgcHVibGljIGdldEludmFsaWQoKTogSVJlY29yZFZhbGlkYXRpb25TdGF0ZVtdIHtcbiAgICAgICAgY29uc3QgdmFsaWRpdHkgPSB0aGlzLmdldFZhbGlkaXR5KCk7XG4gICAgICAgIHJldHVybiB2YWxpZGl0eS5maWx0ZXIoeCA9PiAheC52YWxpZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGUocm93SWQ6IGFueSwgcm93RGF0YTogYW55KSB7XG4gICAgICAgIGlmICghcm93RGF0YSkgcmV0dXJuO1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMocm93RGF0YSk7XG4gICAgICAgIGNvbnN0IHJvd0dyb3VwID0gdGhpcy5nZXRGb3JtR3JvdXAocm93SWQpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICAgICAgICBjb25zdCBjb2xLZXkgPSB0aGlzLmdldEZpZWxkS2V5KGtleSk7XG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gcm93R3JvdXA/LmdldChjb2xLZXkpO1xuICAgICAgICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKHJvd0RhdGFba2V5XSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVTdGF0dXMoKTtcbiAgICB9XG5cbiAgICAvKiogTWFya3MgdGhlIGFzc29jaWF0ZWQgcmVjb3JkIG9yIGZpZWxkIGFzIHRvdWNoZWQuXG4gICAgICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgcmVjb3JkIHRoYXQgd2lsbCBiZSBtYXJrZWQgYXMgdG91Y2hlZC5cbiAgICAgKiBAcGFyYW0gZmllbGQgT3B0aW9uYWwuIFRoZSBmaWVsZCBmcm9tIHRoZSByZWNvcmQgdGhhdCB3aWxsIGJlIG1hcmtlZCBhcyB0b3VjaGVkLiBJZiBub3QgcHJvdmlkZWQgYWxsIGZpZWxkcyB3aWxsIGJlIHRvdWNoZWQuXG4gICAgKi9cbiAgICBwdWJsaWMgbWFya0FzVG91Y2hlZChyb3dJZDogYW55LCBmaWVsZD86IHN0cmluZykge1xuICAgICAgICBjb25zdCByb3dHcm91cCA9IHRoaXMuZ2V0Rm9ybUdyb3VwKHJvd0lkKTtcbiAgICAgICAgaWYgKCFyb3dHcm91cCkgcmV0dXJuO1xuICAgICAgICByb3dHcm91cC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIGNvbnN0IGZpZWxkcyA9IGZpZWxkID8gW2ZpZWxkXSA6IHRoaXMuZ3JpZC5jb2x1bW5zLm1hcCh4ID0+IHguZmllbGQpO1xuICAgICAgICBmb3IgKGNvbnN0IGN1cnJGaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbEtleSA9IHRoaXMuZ2V0RmllbGRLZXkoY3VyckZpZWxkKTtcbiAgICAgICAgICAgIHJvd0dyb3VwPy5nZXQoY29sS2V5KT8ubWFya0FzVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByaXZhdGUgdXBkYXRlU3RhdHVzKCkge1xuICAgICAgICBjb25zdCBjdXJyZW50VmFsaWQgPSB0aGlzLnZhbGlkO1xuICAgICAgICB0aGlzLl92YWxpZCA9IHRoaXMuZ2V0SW52YWxpZCgpLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgaWYgKHRoaXMudmFsaWQgIT09IGN1cnJlbnRWYWxpZCkge1xuICAgICAgICAgICAgdGhpcy5ncmlkLnZhbGlkYXRpb25TdGF0dXNDaGFuZ2UuZW1pdCh7IHN0YXR1czogdGhpcy52YWxpZCA/ICdWQUxJRCcgOiAnSU5WQUxJRCcsIG93bmVyOiB0aGlzLmdyaWQgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQ2xlYXJzIHZhbGlkaXR5IHN0YXRlIGJ5IGlkIG9yIGNsZWFycyBhbGwgc3RhdGVzIGlmIG5vIGlkIGlzIHBhc3NlZC5cbiAgICAgKiBAcGFyYW0gaWQgVGhlIGlkIG9mIHRoZSByZWNvcmQgZm9yIHdoaWNoIHRvIGNsZWFyIHN0YXRlLlxuICAgICAqIEByZXR1cm5zIEFycmF5IG9mIElSZWNvcmRWYWxpZGF0aW9uU3RhdGUuXG4gICAgKi9cbiAgICBwdWJsaWMgY2xlYXIocm93SWQ/OiBhbnkpIHtcbiAgICAgICAgaWYgKHJvd0lkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmRlbGV0ZShyb3dJZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl92YWxpZGl0eVN0YXRlcy5jbGVhcigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlU3RhdHVzKCk7XG4gICAgfVxuXG59Il19
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC12YWxpZGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZ3JpZC9ncmlkLXZhbGlkYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBSXJELE1BQU0sT0FBTyx3QkFBd0I7SUFEckM7UUFPWSxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQzVDLFdBQU0sR0FBRyxJQUFJLENBQUM7S0FvS3pCO0lBaktHO01BQ0U7SUFDRixJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSTtRQUNyQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDWixTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDakMsTUFBTSxLQUFLLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcs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QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyByZXNvbHZlTmVzdGVkUGF0aCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgR3JpZFR5cGUsIElGaWVsZFZhbGlkYXRpb25TdGF0ZSwgSUdyaWRGb3JtR3JvdXBDcmVhdGVkRXZlbnRBcmdzLCBJUmVjb3JkVmFsaWRhdGlvblN0YXRlLCBWYWxpZGF0aW9uU3RhdHVzIH0gZnJvbSAnLi4vY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElneEdyaWRWYWxpZGF0aW9uU2VydmljZSB7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBncmlkOiBHcmlkVHlwZTtcbiAgICBwcml2YXRlIF92YWxpZGl0eVN0YXRlcyA9IG5ldyBNYXA8YW55LCBGb3JtR3JvdXA+KCk7XG4gICAgcHJpdmF0ZSBfdmFsaWQgPSB0cnVlO1xuXG5cbiAgICAvKiogR2V0cyB3aGV0aGVyIHN0YXRlIGlzIHZhbGlkLlxuICAgICovXG4gICAgcHVibGljIGdldCB2YWxpZCgpIDogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWxpZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGNyZWF0ZShyb3dJZCwgZGF0YSkge1xuICAgICAgICBsZXQgZm9ybUdyb3VwID0gdGhpcy5nZXRGb3JtR3JvdXAocm93SWQpO1xuICAgICAgICBpZiAoIWZvcm1Hcm91cCkge1xuICAgICAgICAgICAgZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbCBvZiB0aGlzLmdyaWQuY29sdW1ucykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcmVzb2x2ZU5lc3RlZFBhdGgoZGF0YSB8fCB7fSwgY29sLmZpZWxkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuZ2V0RmllbGRLZXkoY29sLmZpZWxkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gbmV3IEZvcm1Db250cm9sKHZhbHVlLCB7IHVwZGF0ZU9uOiB0aGlzLmdyaWQudmFsaWRhdGlvblRyaWdnZXIgfSk7XG4gICAgICAgICAgICAgICAgY29udHJvbC5hZGRWYWxpZGF0b3JzKGNvbC52YWxpZGF0b3JzKTtcbiAgICAgICAgICAgICAgICBmb3JtR3JvdXAuYWRkQ29udHJvbChmaWVsZCwgY29udHJvbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBhcmdzOiBJR3JpZEZvcm1Hcm91cENyZWF0ZWRFdmVudEFyZ3MgPSB7XG4gICAgICAgICAgICAgICAgZm9ybUdyb3VwLFxuICAgICAgICAgICAgICAgIG93bmVyOiB0aGlzLmdyaWRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLmdyaWQuZm9ybUdyb3VwQ3JlYXRlZC5lbWl0KGFyZ3MpO1xuICAgICAgICAgICAgdGhpcy5hZGQocm93SWQsIGZvcm1Hcm91cCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyByZXNldCB0byBwcmlzdGluZS5cbiAgICAgICAgICAgIGZvciAoY29uc3QgY29sIG9mIHRoaXMuZ3JpZC5jb2x1bW5zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KGNvbC5maWVsZCk7XG4gICAgICAgICAgICAgICAgaWYgKGZvcm1Db250cm9sKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZvcm1Hcm91cDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRGaWVsZEtleShwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgcGFydHMgPSBwYXRoPy5zcGxpdCgnLicpID8/IFtdO1xuICAgICAgICByZXR1cm4gcGFydHMuam9pbignXycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Rm9ybUdyb3VwKGlkOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkaXR5U3RhdGVzLmdldChpZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRGb3JtQ29udHJvbChyb3dJZDogYW55LCBjb2x1bW5LZXk6IHN0cmluZykge1xuICAgICAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZ2V0Rm9ybUdyb3VwKHJvd0lkKTtcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLmdldEZpZWxkS2V5KGNvbHVtbktleSk7XG4gICAgICAgIHJldHVybiBmb3JtQ29udHJvbD8uZ2V0KGZpZWxkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGFkZChyb3dJZDogYW55LCBmb3JtOiBGb3JtR3JvdXApIHtcbiAgICAgICAgdGhpcy5fdmFsaWRpdHlTdGF0ZXMuc2V0KHJvd0lkLCBmb3JtKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRWYWxpZGl0eSgpOiBJUmVjb3JkVmFsaWRhdGlvblN0YXRlW10ge1xuICAgICAgICBjb25zdCBzdGF0ZXM6IElSZWNvcmRWYWxpZGF0aW9uU3RhdGVbXSA9IFtdO1xuICAgICAgICB0aGlzLl92YWxpZGl0eVN0YXRlcy5mb3JFYWNoKChmb3JtR3JvdXAsIGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGU6IElGaWVsZFZhbGlkYXRpb25TdGF0ZVtdID0gW107XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNvbCBvZiB0aGlzLmdyaWQuY29sdW1ucykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbEtleSA9IHRoaXMuZ2V0RmllbGRLZXkoY29sLmZpZWxkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChjb2xLZXkpO1xuICAgICAgICAgICAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLnB1c2goeyBmaWVsZDogY29sS2V5LCBzdGF0dXM6IGNvbnRyb2wuc3RhdHVzIGFzIFZhbGlkYXRpb25TdGF0dXMsIGVycm9yczogY29udHJvbC5lcnJvcnMgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGF0ZXMucHVzaCh7IGtleToga2V5LCBzdGF0dXM6IGZvcm1Hcm91cC5zdGF0dXMgYXMgVmFsaWRhdGlvblN0YXR1cywgZmllbGRzOiBzdGF0ZSwgZXJyb3JzOiBmb3JtR3JvdXAuZXJyb3JzIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHN0YXRlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFsbCBpbnZhbGlkIHJlY29yZCBzdGF0ZXMuXG4gICAgICovXG4gICAgcHVibGljIGdldEludmFsaWQoKTogSVJlY29yZFZhbGlkYXRpb25TdGF0ZVtdIHtcbiAgICAgICAgY29uc3QgdmFsaWRpdHkgPSB0aGlzLmdldFZhbGlkaXR5KCk7XG4gICAgICAgIHJldHVybiB2YWxpZGl0eS5maWx0ZXIoeCA9PiB4LnN0YXR1cyA9PT0gJ0lOVkFMSUQnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZShyb3dJZDogYW55LCByb3dEYXRhOiBhbnkpIHtcbiAgICAgICAgaWYgKCFyb3dEYXRhKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhyb3dEYXRhKTtcbiAgICAgICAgY29uc3Qgcm93R3JvdXAgPSB0aGlzLmdldEZvcm1Hcm91cChyb3dJZCk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbEtleSA9IHRoaXMuZ2V0RmllbGRLZXkoa2V5KTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSByb3dHcm91cD8uZ2V0KGNvbEtleSk7XG4gICAgICAgICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUocm93RGF0YVtrZXldLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVN0YXR1cygpO1xuICAgIH1cblxuICAgIC8qKiBNYXJrcyB0aGUgYXNzb2NpYXRlZCByZWNvcmQgb3IgZmllbGQgYXMgdG91Y2hlZC5cbiAgICAgKiBAcGFyYW0ga2V5IFRoZSBpZCBvZiB0aGUgcmVjb3JkIHRoYXQgd2lsbCBiZSBtYXJrZWQgYXMgdG91Y2hlZC5cbiAgICAgKiBAcGFyYW0gZmllbGQgT3B0aW9uYWwuIFRoZSBmaWVsZCBmcm9tIHRoZSByZWNvcmQgdGhhdCB3aWxsIGJlIG1hcmtlZCBhcyB0b3VjaGVkLiBJZiBub3QgcHJvdmlkZWQgYWxsIGZpZWxkcyB3aWxsIGJlIHRvdWNoZWQuXG4gICAgKi9cbiAgICBwdWJsaWMgbWFya0FzVG91Y2hlZChrZXk6IGFueSwgZmllbGQ/OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgcm93R3JvdXAgPSB0aGlzLmdldEZvcm1Hcm91cChrZXkpO1xuICAgICAgICBpZiAoIXJvd0dyb3VwKSByZXR1cm47XG4gICAgICAgIHJvd0dyb3VwLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgY29uc3QgZmllbGRzID0gZmllbGQgPyBbZmllbGRdIDogdGhpcy5ncmlkLmNvbHVtbnMubWFwKHggPT4geC5maWVsZCk7XG4gICAgICAgIGZvciAoY29uc3QgY3VyckZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgICAgICAgY29uc3QgY29sS2V5ID0gdGhpcy5nZXRGaWVsZEtleShjdXJyRmllbGQpO1xuICAgICAgICAgICAgcm93R3JvdXA/LmdldChjb2xLZXkpPy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJpdmF0ZSB1cGRhdGVTdGF0dXMoKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWxpZCA9IHRoaXMudmFsaWQ7XG4gICAgICAgIHRoaXMuX3ZhbGlkID0gdGhpcy5nZXRJbnZhbGlkKCkubGVuZ3RoID09PSAwO1xuICAgICAgICBpZiAodGhpcy52YWxpZCAhPT0gY3VycmVudFZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWQudmFsaWRhdGlvblN0YXR1c0NoYW5nZS5lbWl0KHsgc3RhdHVzOiB0aGlzLnZhbGlkID8gJ1ZBTElEJyA6ICdJTlZBTElEJywgb3duZXI6IHRoaXMuZ3JpZCB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBDbGVhcnMgdmFsaWRhdGlvbiBzdGF0ZSBieSBrZXkgb3IgYWxsIHN0YXRlcyBpZiBub25lIGlzIHByb3ZpZGVkLlxuICAgICAqIEBwYXJhbSBrZXkgT3B0aW9uYWwuIFRoZSBrZXkgb2YgdGhlIHJlY29yZCBmb3Igd2hpY2ggdG8gY2xlYXIgc3RhdGUuXG4gICAgKi9cbiAgICBwdWJsaWMgY2xlYXIoa2V5PzogYW55KSB7XG4gICAgICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5fdmFsaWRpdHlTdGF0ZXMuZGVsZXRlKGtleSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl92YWxpZGl0eVN0YXRlcy5jbGVhcigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlU3RhdHVzKCk7XG4gICAgfVxuXG59XG4iXX0=