IwojICAgUGFydHMgb2YgdGhlIGRldmVsb3BtZW50IGVmZm9ydCBmb3IgdGhpcyBwcm9qZWN0IGhhdmUgYmVlbgojICAgc3BvbnNvcmVkIGJ5IFNJRU1FTlMgQUcsIEF1c3RyaWEuIFRoYW5rcyB0byBTSUVNRU5TIGZvcgojICAgc3VwcG9ydGluZyBhbiBPcGVuIFNvdXJjZSBwcm9qZWN0IQojCiMKIyAgIFRoaXMgaXMgYXQgbGVhc3QgYSBwYXJ0aWFsIGNyZWRpdHMtZmlsZSBvZiBpbmRpdmlkdWFsIHBlb3BsZSB0aGF0CiMgICBoYXZlIGNvbnRyaWJ1dGVkIHRvIHRoZSBVLUJvb3QgcHJvamVjdC4gSXQgaXMgc29ydGVkIGJ5IG5hbWUgYW5kCiMgICBmb3JtYXR0ZWQgdG8gYWxsb3cgZWFzeSBncmVwcGluZyBhbmQgYmVhdXRpZmljYXRpb24gYnkgc2NyaXB0cy4KIyAgIFRoZSBmaWVsZHMgYXJlOiBuYW1lIChOKSwgZW1haWwgKEUpLCB3ZWItYWRkcmVzcyAoVyksIFBHUCBrZXkgSUQKIyAgIGFuZCBmaW5nZXJwcmludCAoUCksIGRlc2NyaXB0aW9uIChEKSwgYW5kIHNuYWlsLW1haWwgYWRkcmVzcyAoUykuCiMgICBUaGFua3MsCiMKIyAgICAgICAgICAgICAgICAgICAgICAgV29sZmdhbmcgRGVuawojLS0tLS0tLS0tLQoKTjogRHIuIEJydW5vIEFjaGF1ZXIKRTogYnJ1bm9AZXhldC1hZy5kZQpEOiBTdXBwb3J0IGZvciBOZXRCU0QgKGJvdGggYXMgaG9zdCBhbmQgdGFyZ2V0IHN5c3RlbSkKCk46IEd1aWxsYXVtZSBBbGV4YW5kcmUKRTogZ3VpbGxhdW1lLmFsZXhhbmRyZUBnZXNwYWMuY2gKRDogQWRkIFBDSVBQQzYgY29uZmlndXJhdGlvbgoKTjogU3dlbiBBbmRlcnNvbgpFOiBzYW5kQHBlcHBlcmNvbi5kZQpEOiBFUklDIFN1cHBvcnQKCk46IFBhbnRlbGlzIEFudG9uaW91CkU6IHBhbnRvQGludHJhY29tLmdyCkQ6IE5FVFZJQSAmIE5FVFBIT05FIGJvYXJkIHN1cHBvcnQsIEFSVE9TIHN1cHBvcnQuCkQ6IFN1cHBvcnQgZm9yIFNpbGljb24gVHVybmtleSBlWHByZXNzIFhUYwoKTjogUGllcnJlIEF1YmVydApFOiA8cC5hdWJlcnRAc3RhdWJsaS5jb20+CkQ6IFN1cHBvcnQgZm9yIFJQWENsYXNzaWMgYm9hcmQKCk46IFl1bGkgQmFyY29oZW4KRTogeXVsaUBhcmFiZWxsYXN3LmNvbQpEOiBVbmlmaWVkIHN1cHBvcnQgZm9yIE1vdG9yb2xhIE1QQzgyNnhBRFMvTVBDODI3MkFEUy9QUTJGQURTIGJvYXJkcy4KRDogU3VwcG9ydCBmb3IgWmVwaHlyIEVuZ2luZWVyaW5nIFpQQy4xOTAwIGJvYXJkLgpEOiBTdXBwb3J0IGZvciBJbnRlcnBoYXNlIGlTUEFOIGJvYXJkcy4KRDogU3VwcG9ydCBmb3IgQW5hbG9ndWUmTWljcm8gQWRkZXIgYm9hcmRzLgpEOiBTdXBwb3J0IGZvciBBbmFsb2d1ZSZNaWNybyBSYXR0bGVyIGJvYXJkcy4KVzogaHR0cDovL3d3dy5hcmFiZWxsYXN3LmNvbQoKTjogSmVycnkgdmFuIEJhcmVuCkU6IDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEOiBCZWRCdWcgcG9ydCB0byA2MDNlIGNvcmUgKE1QQzgyeHgpLiBDb2RlIGZvciBlbmhhbmNlZCBtZW1vcnkgdGVzdC4KCk46IFBhdmVsIEJhcnR1c2VrCkU6IDxwYmFAc3lzZ28uY29tPgpEOiBSZWlzZXJmcyBzdXBwb3J0Clc6IGh0dHA6Ly93d3cuZWxpbm9zLmNvbQoKTjogQW5kcmUgQmVhdWRpbgpFOiA8YW5kcmUuYmVhdWRpbkBjb2x1YnJpcy5jb20+CkQ6IFBDTUNJQSwgRXRoZXJuZXQsIFRGVFAKCk46IEpvbiBCZW5lZGlrdHNzb24KRTogam9uYkBtYXJlbC5pcwpEOiBTdXBwb3J0IGZvciBNYXJlbCBWMzcgYm9hcmQKCk46IFJhcGhhZWwgQm9zc2VrCkU6IHJhcGhhZWwuYm9zc2VrQHNvbHV0aW9uczRsaW51eC5kZQpEOiA4eHhyb20tMC4zLjAKCk46IENsaWZmIEJyYWtlCkU6IGNsaWZmLmJyYWtlQGdtYWlsLmNvbQpEOiBQb3J0IHRvIFZpYnJlbiBQWEEyNTUgSURQIHBsYXRmb3JtClc6IGh0dHA6Ly93d3cudmlicmVuLmNvbQpXOiBodHRwOi8vYmVjLXN5c3RlbXMuY29tCgpOOiBSaWNrIEJyb25zb24KRTogcmlja0BlZm4ub3JnCkQ6IEF0bWVsIEFUOTFSTTkyMDBESyBhbmQgTkFORCBzdXBwb3J0CgpOOiBEYXZpZCBCcm93bgpFOiBEQnJvd24wM0BoYXJyaXMuY29tCkQ6IEV4dGVuc2lvbnMgdG8gOHh4cm9tLTAuMy4wCgpOOiBPbGl2ZXIgQnJvd24KRTogb2Jyb3duQGFkdmVudG5ldHdvcmtzLmNvbQpEOiBQb3J0IHRvIHRoZSBndzgyNjAgYm9hcmQKCk46IEN1cnQgQnJ1bmUKRTogY3VydEBjdWN5LmNvbQpEOiBBZGRlZCBzdXBwb3J0IGZvciBTYW1zdW5nIFMzQzQ1MTBCIENQVSAoQVJNN3RkbWkgYmFzZWQgU29DKQpEOiBBZGRlZCBzdXBwb3J0IGZvciBFU1BELUluYy4gRVZCNDUxMCBCb2FyZApXOiBodHRwOi8vd3d3LmN1Y3kuY29tCgpOOiBKb25hdGhhbiBEZSBCcnV5bmUKRTogam9uYXRoYW4uZGVicnV5bmVAc2llbWVucy5hdGVhLmJlCkQ6IFBvcnQgdG8gU2llbWVucyBJQUQyMTAgYm9hcmQKCk46IEtlbiBDaG91CkU6IGtjaG91QGllZWUub3JnCkQ6IFN1cHBvcnQgZm9yIEEzMDAwIFNCQyBib2FyZAoKTjogQ29ubiBDbGFyawpFOiBjbGFya0Blc3RlZW0uY29tCkQ6IEVTVEVFTTE5MkUgc3VwcG9ydAoKTjogTWFnbnVzIERhbW0KRTogZGFtbUBvcGVuc291cmNlLnNlCkQ6IDh4eHJvbQoKTjogUmljaGFyZCBEYW50ZXIKRTogcmljaGFyZC5kYW50ZXJAd2luZHJpdmVyLmNvbQpEOiBTdXBwb3J0IGZvciBXaW5kIFJpdmVyIFBQTUMgN3h4Lzc0eHggYm9hcmRzCgpOOiBHZW9yZ2UgRy4gRGF2aXMKRTogZ2RhdmlzQG12aXN0YS5jb20KRDogQm9hcmQgcG9ydHMgZm9yIEFEUyBHcmFwaGljc0NsaWVudCsgYW5kIEludGVsIEFzc2FiZXQKCk46IEFydW4gRGhhcmFua2FyCkU6IEFEaGFyYW5rYXJAQVRUQkkuQ29tCkQ6IHRocmVhZHMgLyBzY2hlZHVsZXIgZXhhbXBsZSBjb2RlCgpOOiBL4XJpIERhdu3wc3NvbgpFOiBrZEBmbGFnYS5pcwpEOiBGTEFHQSBETSBTdXBwb3J0CgpOOiBXb2xmZ2FuZyBEZW5rCkU6IHdkQGRlbnguZGUKRDogVS1Cb290IGluaXRpYWwgdmVyc2lvbiwgY29udGludWluZyBtYWludGVuYW5jZSwgQVJNQm9vdCBtZXJnZQpXOiBodHRwOi8vd3d3LmRlbnguZGUKCk46IERhbiBBLiBEaWNrZXkKRTogZGRpY2tleUBjaGFydGVyLm5ldApEOiBGQURTIFN1cHBvcnQKCk46IEphbWVzIEYuIERvdWdoZXJ0eQpFOiBqZmRAR2lnYWJpdE5ldHdvcmtzLkNPTQpEOiBQb3J0IHRvIHRoZSBNT1VTU0UgYm9hcmQKCk46IERhdmUgRWxsaXMKRTogREdFQHNpeG5ldGlvLmNvbQpEOiBFRVBST00gU3BlZWR1cCwgU1hOSTg1NVQgcG9ydAoKTjogVGhvbWFzIEVsc3RlCkU6IGluZm9AZWxzdGUub3JnCkQ6IFBvcnQgZm9yIHRoZSBNb2RORVQ1MCBCb2FyZCwgTkVUKzUwIENQVSBQb3J0Clc6IGh0dHA6Ly93d3cuaW1tcy5kZQoKTjogRGFuaWVsIEVuZ3N0cvZtCkU6IGRhbmllbEBvbWljcm9uLnNlCkQ6IHg4NiBwb3J0LCBTdXBwb3J0IGZvciBzYzUyMF9jZHAgYm9hcmQKCk46IERyLiBXb2xmZ2FuZyBHcmFuZGVnZ2VyCkU6IHdnQGRlbnguZGUKRDogU3VwcG9ydCBmb3IgSW50ZXJwaGFzZSA0NTM5IFQxL0UxL0oxIFBNQywgUE42MiwgQ0NNLCBTQ00gYm9hcmRzClc6IHd3dy5kZW54LmRlCgpOOiBQZXRlciBGaWd1bGkKRTogcGVwb3NoQGV0Yy5zawpEOiBTdXBwb3J0IGZvciBXRVAgRVAyNTAgKFBYQSkgYm9hcmQKCk46IFRob21hcyBGcmllZGVuCkU6IFRob21hc0ZAaHlwZXJpb24tZW50ZXJ0YWlubWVudC5jb20KRDogU3VwcG9ydCBmb3IgQW1pZ2FPbmUKCk46IEZyYW5rIEdvdHRzY2hsaW5nCkU6IGZnb3R0c2NobGluZ0BlbHRlYy5kZQpEOiBTdXBwb3J0IGZvciBFTFRFQyBNSFBDL0JBQjd4eC9FTFBQQyBib2FyZHMsIGNmYi1jb25zb2xlLCBpODA0MiwgU01JIEx5bnhFTQpXOiB3d3cuZWx0ZWMuZGUKCk46IE1hcml1cyBHcm9lZ2VyCkU6IG1ncm9lZ2VyQHN5c2dvLmRlCkQ6IE1CWCBTdXBwb3J0LCBib2FyZCBzcGVjaWZpYyBmdW5jdGlvbiBpbnRlcmZhY2UsIEVTVCBTQkM4MjYwIHN1cHBvcnQ7IGluaXRpYWwgc3VwcG9ydCBmb3IgU3Ryb25nQVJNIChMQVJUKSwgQVJNNzIwVERNSSAoaW1wbGVtZW50YSBBNykKVzogd3d3LmVsaW5vcy5jb20KCk46IEtpcmsgSGFkZXJsaWUKRToga2hhZGVybGllQHZpdmlkaW1hZ2UuY29tCkQ6IEFkZGVkIFRGVFAgdG8gOHh4cm9tICgtPiAwLjMuMSkKCk46IENocmlzIEhhbGxpbmFuCkU6IGNsaEBuZXQxcGx1cy5jb20KRDogREhDUCBTdXBwb3J0CgpOOiBBbm5lLVNvcGhpZSBIYXJub2lzCkU6IEFubmUtU29waGllLkhhcm5vaXNAbmV4dHJlYW0uZnIKRDogUG9ydCB0byBXYWxudXQ0MDUgYm9hcmQKCk46IEFuZHJlYXMgSGVwcGVsCkU6IGFoZXBwZWxAc3lzZ28uZGUKRDogQ1BVIFN1cHBvcnQgZm9yIE1QQyA3NXg7IGJvYXJkIHN1cHBvcnQgZm9yIEVsdGVjIEJBQjc1MCBbb2Jzb2xldGUhXQoKTjogQXVndXN0IEhvZXJhZW5kbApFOiBhdWd1c3QuaG9lcmFuZGxAZ214LmF0CkQ6IFN1cHBvcnQgZm9yIHRoZSBsb2dvZGwgYm9hcmQgKFBYQTJ4eCkKCk46IEpvc2ggSHViZXIKRTogaHViZXJAYWx1bS53cGkuZWR1CkQ6IFBvcnQgdG8gdGhlIEdhbGlsZW8gRXZhbHVhdGlvbiBCb2FyZCwgYW5kIHRoZSBNUEM3NHh4IGNwdSBzZXJpZXMuClc6IGh0dHA6Ly93d3cubWNseC5jb20vCgpIOiBTdHVhcnQgSHVnaGVzCkU6IHN0dWFydGhAbGluZW8uY29tCkQ6IFBvcnQgdG8gTVBDODI2MEFEUyBib2FyZAoKSDogUmljaCBJcmVsYW5kCkU6IHIuaXJlbGFuZEBjb21wdXRlci5vcmcKRDogRlBHQSBkZXZpY2UgY29uZmlndXJhdGlvbiBkcml2ZXIKCk46IEdhcnkgSmVubmVqb2huCkU6IGdhcnlqQGplbm5lam9obi5vcmcsIGdqQGRlbnguZGUKRDogU3VwcG9ydCBmb3IgU2Ftc3VuZyBBUk05MjBUIFMzQzI0MDBYLCBBUk05MjBUICJUUkFCIgpXOiB3d3cuZGVueC5kZQoKTjogTXVycmF5IEplbnNlbgpFOiBNdXJyYXkuSmVuc2VuQGNzaXJvLmF1CkQ6IEluaXRpYWwgODI2MCBzdXBwb3J0OyBHREIgc3VwcG9ydApEOiBQb3J0IHRvIENvZ2VudCtIeW1vZCBib2FyZHM7IEh5bW9kIEJvYXJkIERhdGFiYXNlCgpOOiBZb28uIEpvbmdob29uCkU6IHlvb3RoQGlwb25lLmNvLmtyCkQ6IEFkZGVkIHBvcnQgdG8gdGhlIFJQWGxpdGUgYm9hcmQKCk46IE1hcmsgSm9uYXMKRTogbWFyay5qb25hc0BmcmVlc2NhbGUuY29tCkQ6IFN1cHBvcnQgZm9yIEZyZWVzY2FsZSBUb3RhbDUyMDAgcGxhdGZvcm0KVzogaHR0cDovL3d3dy5tb2JpbGVndC5jb20vCgpOOiBTYW0gU29uZwpFOiBzYW1zb25nc2h1QHlhaG9vLmNvbS5jbgpEOiBQb3J0IHRvIHRoZSBSUFhsaXRlX0RXIGJvYXJkCgpOOiBCcmFkIEtlbXAKRTogQnJhZC5LZW1wQHNlcmFub2EuY29tCkQ6IFBvcnQgdG8gV2luZHJpdmVyIHBwbWM4MjYwIGJvYXJkCgpOOiBTYW5nbW9vbiBLaW0KRTogZG9nb2lsQGV0aW5zeXMuY29tCkQ6IFN1cHBvcnQgZm9yIGRlYnJpcyBib2FyZAoKTjogRnJlZGVyaWNrIFcuIEtsYXR0CkU6IGZyZWQua2xhdHRAd2luZHJpdmVyLmNvbQpEOiBTdXBwb3J0IGZvciBXaW5kIFJpdmVyIFNCQzg1NDAvU0JDODU2MCBib2FyZHMKCk46IFRob21hcyBLb2VsbGVyCkU6IHRrb2VsbGVyQGdteC5uZXQKRDogUG9ydCB0byBNb3Rvcm9sYSBTYW5kcG9pbnQgMyAoTVBDODI0MCkKCk46IFJhZ2h1IEtyaXNobmFwcmFzYWQKRTogUmFnaHUuS3Jpc2huYXByYXNhZEBmY2kuY29tCkQ6IFN1cHBvcnQgZm9yIEFkZGVyLUlJIE1QQzg1MlQgZXZhbHVhdGlvbiBib2FyZApXOiBodHRwOi8vd3d3LmZvcmNlY29tcHV0ZXJzLmNvbQoKTjogQmVybmhhcmQgS3VobgpFOiBia3VobkBtZXRyb3dlcmtzLmNvbQpEIFN1cHBvcnQgZm9yIENvbGRmaXJlIENQVTsgU3VwcG9ydCBmb3IgTW90b3JvbGEgTTUyNzJDMyBhbmQgTTUyODJFVkIgYm9hcmRzCgpOOiBQcmFrYXNoIEt1bWFyCkU6IHByYWthc2hAZW1iZWR4LmNvbQpEICBTdXBwb3J0IGZvciBJbnRyaW5zeWMgQ0VSRiBQWEEyNTAgYm9hcmQuCgpOOiBUaG9tYXMgTGFuZ2UKRTogdGhvbWFzQGNvcmVsYXR1cy5zZQpEOiBTdXBwb3J0IGZvciBHVEgsIEdUSDIgYW5kIGRiYXUxeDAwIGJvYXJkczsgbG90cyBvZiBQQ01DSUEgZml4ZXMKCk46IE1hcmMgTGVlbWFuCkU6IG1hcmMubGVlbWFuQGJhcmNvLmNvbQpEOiBTdXBwb3J0IGZvciBCYXJjbyBTdHJlYW1pbmcgVmlkZW8gQ2FyZCAoU1ZDKSBhbmQgU2FtcGxlIENvbXByZXNzIE5ldHdvcmsgKFNDTikKVzogd3d3LmJhcmNvLmNvbQoKTjogVGhlIExFT1ggdGVhbQpFOiB0ZWFtQGxlb3gub3JnCkQ6IFN1cHBvcnQgZm9yIExFT1ggYm9hcmRzLCBEUzE2NHggUlRDClc6IGh0dHA6Ly93d3cubGVveC5vcmcKCk46IExlaWYgTGluZGhvbG0KRTogbGVpZi5saW5kaG9sbUBpM21pY3JvLmNvbQpEOiBTdXBwb3J0IGZvciBBTUQgZGJhdTE1NTAgYm9hcmQuCgpOOiBTdGVwaGFuIExpbnoKRTogbGluekBsaS1wcm8ubmV0CkQ6IFN1cHBvcnQgZm9yIE5pb3MgU3RyYXRpeCBEZXZlbG9wbWVudCBLaXQgKERLLTFTMTApCkQ6IFN1cHBvcnQgZm9yIFNTViBBRE5QL0VTQzEgKE5pb3MgQ3ljbG9uZSkKVzogaHR0cDovL3d3dy5saS1wcm8ubmV0CgpOOiBSYXltb25kIExvCkU6IGxvQHJvdXRlZnJlZS5jb20KRDogU3VwcG9ydCBmb3IgRE9TIHBhcnRpdGlvbnMKCk46IERhbiBNYWxlawpFOiBkYW5AZW1iZWRkZWRhbGxleS5jb20KRDogRkFEU1JPTSwgdGhlIGdyYW5kZmF0aGVyIG9mIGFsbCBvZiB0aGlzCkQ6IFN1cHBvcnQgZm9yIFNpbGljb24gVHVybmtleSBlWHByZXNzIFhUYwoKTjogQW5kcmVhICJsbGFuZHJlIiBNYXJzb24KRTogYW5kcmVhLm1hcnNvbkBkYXZlLXRlY2guaXQKRDogUG9ydCB0byBQUENoYW1lbGVvbkVWQiBib2FyZApXOiB3d3cuZGF2ZS10ZWNoLml0CgpOOiBSZWluaGFyZCBNZXllcgpFOiByLm1leWVyQGVtay1lbGVrdHJvbmlrLmRlCkQ6IFBvcnQgdG8gRU1LIFRPUDg2MCBNb2R1bGUKCk46IEpheSBNb25rbWFuCkU6IGp0bUBzbW9vdGhzbW9vdGhpZS5jb20KRDogRVNUIFNCQzgyNjAgc3VwcG9ydAoKTjogRnJhbmsgTW9yYXVmCkU6IGZyYW5rLm1vcmF1ZkBzYWx6YnJlbm5lci5jb20KRDogU3VwcG9ydCBmb3IgRW1iZWRkZWQgUGxhbmV0IFJQWCBTdXBlciBCb2FyZAoKTjogRGF2aWQgTfxsbGVyCkU6IGQubXVlbGxlckBlbHNvZnQuY2gKRDogU3VwcG9ydCBmb3IgU2Ftc3VuZyBBUk05MjBUIFNNREsyNDEwIGV2YWwgYm9hcmQKCk46IFNjb3R0IE1jTnV0dApFOiBzbWNudXR0QHBzeWVudC5jb20KRDogU3VwcG9ydCBmb3IgQWx0ZXJhIE5pb3MtMzIgQ1BVCkQ6IFN1cHBvcnQgZm9yIEFsdGVyYSBOaW9zLUlJIENQVQpEOiBTdXBwb3J0IGZvciBOaW9zIEN5Y2xvbmUgRGV2ZWxvcG1lbnQgS2l0IChESy0xQzIwKQpXOiBodHRwOi8vd3d3LnBzeWVudC5jb20KCk46IFJvbGYgT2ZmZXJtYW5ucwpFOiByb2ZAc3lzZ28uZGUKRDogSW5pdGlhbCBzdXBwb3J0IGZvciBTU1YtRE5QMTExMCwgU01DOTExMTEgZHJpdmVyClc6IHd3dy5lbGlub3MuY29tCgpOOiBKb2huIE90a2VuCkU6IGpvdGtlbkBzb2Z0YWR2YW5jZXMuY29tCkQ6IFN1cHBvcnQgZm9yIEFNQ0MgTHVhbiA0NDBTUCBib2FyZAoKTjogVG9sdW5heSBPcmt1bgpFOiB0b3JrdW5AbmV4dGlvLmNvbQpEOiBTdXBwb3J0IGZvciBDb2dlbnQgQ1NCMjcyICYgQ1NCNDcyIGJvYXJkcwoKTjogS2VpdGggT3V0d2F0ZXIKRToga2VpdGhfb3V0d2F0ZXJAbXZpcy5jb20KRDogU3VwcG9ydCBmb3IgZ2VuZXJpYy9jdXN0b20gTVBDODYwVCBib2FyZHMgKEdFTjg2MFQsIEdFTjg2MFRfU0MpCgpOOiBGcmFuayBQYW5ubwpFOiBmcGFubm9AZGVscGhpbnRlY2guY29tCkQ6IFN1cHBvcnQgZm9yIEVtYmVkZGVkIFBsYW5ldCBFUDgyNjAgQm9hcmQKCk46IERlbmlzIFBldGVyCkU6IGQucGV0ZXJAbXBsLmNoCkQ6IFN1cHBvcnQgZm9yIDR4eCBTQ1NJLCBmbG9wcHksIENEUk9NLCBDVDY5MDAwIHZpZGVvLCAuLi4KRDogU3VwcG9ydCBmb3IgUElQNDA1IGJvYXJkCkQ6IFN1cHBvcnQgZm9yIE1JUDQwNSBib2FyZAoKTjogRGF2ZSBQZXZlcmxleQpFOiBkcGV2ZXJsZXlAbXBjLWRhdGEuY28udWsKVzogaHR0cDovL3d3dy5tcGMtZGF0YS5jby51awpEOiBPTUFQNzMwIFAyIGJvYXJkIHN1cHBvcnQKCk46IEJpbGwgUGl0dHMKRTogd2xwQG1pbmRzcHJpbmcuY29tCkQ6IEJlZEJ1ZyBlbWJlZGRlZCBkZWJ1Z2dlciBjb2RlCgpOOiBEYW5pZWwgUG9pcm90CkU6IGRhbi5wb2lyb3RAd2luZHJpdmVyLmNvbQpEOiBTdXBwb3J0IGZvciB0aGUgV2luZCBSaXZlciBzYmM0MDUsIHNiYzgyNDAgYm9hcmQKVzogaHR0cDovL3d3dy53aW5kcml2ZXIuY29tCgpOOiBTdGVmYW4gUm9lc2UKRTogc3RlZmFuLnJvZXNlQGVzZC1lbGVjdHJvbmljcy5jb20KRDogQU1DQyBQUEM0MDEvNDAzLzQwNUdQIFN1cHBvcnQ7IFdpbmRvd3MgZW52aXJvbm1lbnQgc3VwcG9ydAoKTjogRXJ3aW4gUm9sCkU6IGVyd2luQG11ZmZpbi5vcmcKRDogYm9vdCBzdXBwb3J0IGZvciBSVEVNUwoKTjogUGF1bCBSdWhsYW5kCkU6IHBydWhsYW5kQHJvY2hlc3Rlci5yci5jb20KRDogUG9ydCB0byBMb2dpYyBab29tIExIN0E0MHggU0RLIGJvYXJkKHMpCgpOOiBOZWlsIFJ1c3NlbGwKRTogY2FyZXRAYy1zaWRlLmNvbQpEOiBBdXRob3Igb2YgTGlNb24tMS40LjIsIHdoaWNoIGNvbnRyaWJ1dGVkIHNvbWUgaWRlYXMKCk46IFRyYXZpcyBCLiBTYXd5ZXIKRTogdHJhdmlzLnNhd3llckBzYW5kYnVyc3QuY29tCkQ6IFN1cHBvcnQgZm9yIEFNQ0MgUFBDNDQwR1gsIFhFUyBYUGVkaXRlMTAwMCA0NDBHWCBQclBNQyBib2FyZC4gIEFNQ0MgNDQwZ3ggUmVmIFBsYXRmb3JtIChPY290ZWEpCgpOOiBQYW9sbyBTY2FmZmFyZGkKRTogYXJzZW5pb0B0aW4uaXQKRDogRkFEUzgyMyBjb25maWd1cmF0aW9uLCBNUEM4MjMgdmlkZW8gc3VwcG9ydCwgSTJDLCB3aXJlbGVzcyBrZXlib2FyZCwgbG90cyBtb3JlCgpOOiBSb2JlcnQgU2Nod2ViZWwKRTogci5zY2h3ZWJlbEBwZW5ndXRyb25peC5kZQpEOiBTdXBwb3J0IGZvciBjc2IyMjYsIGxvZ29kbCBhbmQgaW5ub2tvbSBib2FyZHMgKFBYQTJ4eCkKCk46IEFydCBTaGlwa293c2tpCkU6IGFydEB2aWRlb24tY2VudHJhbC5jb20KRDogU3VwcG9ydCBmb3IgTmV0U2lsaWNvbiBOUzc1MjAKCk46IFlhc3VzaGkgU2hvamkKRTogeWFzaGlAYXRtYXJrLXRlY2huby5jb20KRDogU3VwcG9ydCBmb3IgWGlsaW54IE1pY3JvQmxhemUsIGZvciBBdG1hcmsgVGVjaG5vIFNVWkFLVSBGUEdBIGJvYXJkCgpOOiBLdXJ0IFN0cmVtZXJjaApFOiBrdXJ0QGV4eXMuYmUKRDogU3VwcG9ydCBmb3IgRXh5cyBYU0VuZ2luZSBib2FyZAoKTjogQW5kcmVhIFNjaWFuCkU6IGFuZHJlYS5zY2lhbkBkYXZlLXRlY2guaXQKRDogUG9ydCB0byBCMiBib2FyZApXOiB3d3cuZGF2ZS10ZWNoLml0CgpOOiBSb2IgVGF5bG9yCkU6IHJvYnRAZmx5aW5ncGlnLmNvbQpEOiBQb3J0IHRvIE1CWDg2MFQgYW5kIFNhbmRwb2ludDgyNDAKCk46IEVyaWsgVGhlaXNlbgpFOiBldGhlaXNlbkBtaW5kc3ByaW5nLmNvbQpEOiBNQlg4eHggYW5kIG1hbnkgb3RoZXIgcGF0Y2hlcwoKTjogSmltIFRob21wc29uCkU6IGppbUBtdXNlbmtpLmNvbQpEOiBTdXBwb3J0IGZvciBNVVNFTktJIGJvYXJkCgpOOiBSdW5lIFRvcmdlcnNlbgpFOiA8cnVuZXRAaW5ub3ZzeXMuY29tPgpEOiBTdXBwb3J0IGZvciBNb3Rvcm9sYSBNUEM4MjY2QURTIGJvYXJkCgpOOiBHcmVnIFVuZ2VyZXIKRTogZ3JlZy51bmdlcmVyQG9wZW5nZWFyLmNvbQpEOiBTdXBwb3J0IGZvciBrczg2OTUgQ1BVLCBhbmQgT3BlbkdlYXIgY21YWFhYIGJvYXJkcwoKTjogRGF2aWQgVXBkZWdyYWZmCkU6IGRhdmVAY3JheS5jb20KRDogUG9ydCB0byBDcmF5IEwxIGJvYXJkOyBESENQIHZlbmRvciBleHRlbnNpb25zCgpOOiBDaHJpc3RpYW4gVmVqbGJvCkU6IGNocmlzdGlhbi52ZWpsYm9AdGVsbGFicy5jb20KRDogRkFEUzg2MFQgZXRoZXJuZXQgc3VwcG9ydAoKTjogUm9iZXJ0IFdoYWxleQpFOiByd2hhbGV5QGFwcGxpZWRkYXRhLm5ldApEOiBQb3J0IHRvIEFSTSBQWEEyN3ggYWRzdml4IFNCQwoKTjogTWFydGluIFdpbmlzdG9lcmZlcgpFOiBtYXJ0aW53aW5pc3RvZXJmZXJAZ214LmNoCkQ6IFBvcnQgdG8gTVBDNTU1LzU1NiBtaWNyb2NvbnRyb2xsZXJzIGFuZCBzdXBwb3J0IGZvciBjbWkgYm9hcmQKCk46IE1pbmctTGVuIFd1CkU6IG1pbmdsZW5fd3VAdGVjaHdhcmUuY29tLnR3CkQ6IE1vdG9yb2xhIE1YMUFEUyBib2FyZCBzdXBwb3J0Clc6IGh0dHA6Ly93d3cudGVjaHdhcmUuY29tLnR3LwoKTjogWGlhbmdodWEgWGlhbwpFOiB4LnhpYW9AbW90b3JvbGEuY29tCkQ6IFN1cHBvcnQgZm9yIE1vdG9yb2xhIDg1eHgoUG93ZXJRVUlDQyBJSUkpIGNoaXAsIE1QQzg1NDBBRFMgYW5kIE1QQzg1NjBBRFMgYm9hcmRzLgoKTjogSm9obiBaaGFuCkU6IHpoYW56QHNpbm92ZWUuY29tCkQ6IFN1cHBvcnQgZm9yIFNpbm9WZWUgTWljcm9zeXN0ZW1zIFNDOHh4IFNCQwoKTjogQWxleCBadWVwa2UKRTogYXp1QHN5c2dvLmRlCkQ6IE92ZXJhbGwgaW1wcm92ZW1lbnRzIG9uIFN0cm9uZ0FSTSwgQVJNNzIwVERNSTsgU3VwcG9ydCBmb3IgVHV4c2NyZWVuOyBpbml0aWFsIFBDTUNJQSBzdXBwb3J0IGZvciBBUk0KVzogd3d3LmVsaW5vcy5jb20KCk46IEphbWVzIE1hY0F1bGF5CkU6IGphbWVzLm1hY2F1bGF5QGFtaXJpeC5jb20KRDogU3VwcHBvcnQgZm9yIEFtaXJpeCBBUDEwMDAKVzogd3d3LmFtaXJpeC5jb20K