UmV4IERpZXRlciB3cm90ZToNCg0KPiBEYW1pYW4gSXZhbm92IHdyb3RlOg0KPiANCj4+PkJ1bXBp bmcgUXQgdmVyc2lvbnMgaXMuLi4gYSBmYWlybHkgZGlmZmljdWx0IHByb2Nlc3MgaW4gZmVkb3Jh LA0KPj4+dW5mb3J0dW5hdGVseS4NCj4+IA0KPj4gSW50cm9kdWNpbmcgYSBuZXcgUXQgdmVyc2lv biBjb3VsZCBiZSB2ZXJ5IHNpbXBsZSBJIHRoaW5rOg0KPj4gMSkgQnJhbmNoIGFsbCBRdCByZWxh dGVkIHBhY2thZ2VzIChpdCBzaG91bGQgYmUgd2l0aCBhIG9uZSBsaW5lDQo+PiBjb21tYW5kIG9y IHVzaW5nIGEgd2ViIGludGVyZmFjZSkNCj4+IDIpIEVkaXQgcGFja2FnZSB2ZXJzaW9uIG51bWJl ciAod2l0aCBhIHBlciBwcm9qZWN0IChsaWtlIFF0OjUuMTQuMQ0KPj4gcHJvamVjdCkgbWFjcm8g LSAxIGRpZ2l0IGNoYW5nZWQvb3IgdHdvKQ0KPj4gMykgV2FpdCBmb3IgcGFja2FnZXMgdG8gYmUg cHVibGlzaGVkIGludG8gcmVwbyAoYW5kIHRoYXQgcmVwbyBjb250YWlucw0KPj4gYWxsIHBhY2th Z2VzIC0gd2l0aG91dCBzcGVjIGNoYW5nZSAtIHRoYXQgdXNlIFF0IHByaXYgaGVhZGVycykuDQo+ PiA0KSBGaXggZXZlbnR1YWwgYnVpbGQgZmFpbHVyZXMgZHVlIHRvIHJlIGJhc2VkIHBhdGNoZXMg ZXRjLg0KPj4gNSkgb3B0aW9uYWw6IFByZXNzIHB1c2ggdG8gc3RhcnQgYSByZXF1ZXN0IHRvIGdl dCB0aGlzIG1lcmdlZCBpbnRvIG1haW4NCj4+IHJlcG8uDQo+IA0KPiBCdWlsZGluZyB0aGUgY29y ZSBRdCBwYWNrYWdlcyBpcyB0aGUgZWFzeSBwYXJ0LiAgV2UgaGF2ZSB0aGF0IGxhcmdlbHkNCj4g c2NyaXB0ZWQgYW5kIHNlbWktYXV0b21hdGVkLg0KPiANCj4gVGhlIChtdWNoKSBoYXJkZXIgcGFy dCBpcyBjb29yZGluYXRpbmcgcmVidWlsZHMgb2YgYWxsIHRoZSBvdGhlciBwYWNrYWdlcw0KPiB0 aGF0IGRlcGVuZCBvbiBwcml2YXRlIFF0NSBhcGkncyAgKEkgd2lzaCB0aGVyZSB3ZXJlbid0IHNv IG1hbnkpLg0KDQpJIHN1cHBvc2UgSSBjb3VsZCBqdXN0IG1ha2UgaXQgZWFzaWVyIG9uIG15c2Vs ZiBhbmQganVzdCB1c2UgcnBtZGV2LWJ1bXBzcGVjIA0KdG9vbCBvbiBkZXBlbmRlbmNpZXMgdG9v LiAgSGlzdG9yaWNhbGx5LCBJJ3ZlIHRyaWVkIHRvIG1ha2UgYW4gZWZmb3J0IHRvIA0Ka2VlcCBi cmFuY2hlcyBtZXJnZWQsIGF0IGxlYXN0IGZvciB0aG9zZSBwYWNrYWdlcy9tYWludGFpbmVycyB0 aGF0IHByZWZlciB0byANCmRvIGl0IHRoYXQgd2F5Lg0KDQotLSByZXgNCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRldmVsIG1haWxpbmcgbGlzdCAtLSBk ZXZlbEBsaXN0cy5mZWRvcmFwcm9qZWN0Lm9yZwpUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWls IHRvIGRldmVsLWxlYXZlQGxpc3RzLmZlZG9yYXByb2plY3Qub3JnCkZlZG9yYSBDb2RlIG9mIENv bmR1Y3Q6IGh0dHBzOi8vZG9jcy5mZWRvcmFwcm9qZWN0Lm9yZy9lbi1VUy9wcm9qZWN0L2NvZGUt b2YtY29uZHVjdC8KTGlzdCBHdWlkZWxpbmVzOiBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dp a2kvTWFpbGluZ19saXN0X2d1aWRlbGluZXMKTGlzdCBBcmNoaXZlczogaHR0cHM6Ly9saXN0cy5m ZWRvcmFwcm9qZWN0Lm9yZy9hcmNoaXZlcy9saXN0L2RldmVsQGxpc3RzLmZlZG9yYXByb2plY3Qu b3JnCg==