XGJlZ2lue2ZsdXNobGVmdH0KCntcYmZzZXJpZXMgU3BlY2lmaWNhdGlvbjogSkFYLVJTIC0gSmF2YVx0ZXh0dHJhZGVtYXJrXCBBUEkgZm9yIFJFU1RmdWwgV2ViIFNlcnZpY2VzIChcbHFcbHEgU3BlY2lmaWNhdGlvblxycVxycSlcXApWZXJzaW9uOiAxLjEtZWRpdG9ycy1kcmFmdFxcClN0YXR1czogUHJlLUZDUyBQdWJsaWMgUmVsZWFzZVxcClJlbGVhc2U6IFx0b2RheVxcCkNvcHlyaWdodCAyMDA3IFN1biBNaWNyb3N5c3RlbXMsIEluYy5cXAo0MTUwIE5ldHdvcmsgQ2lyY2xlLCBTYW50YSBDbGFyYSwgQ2FsaWZvcm5pYSA5NTA1NCwgVS5TLkFcXAoxODAsIEF2ZW51ZSBkZSBMJ0V1cm9wZSwgMzgzMzAgTW9udGJvbm5vdCBTYWludCBNYXJ0aW4sIEZyYW5jZVxcCkFsbCByaWdodHMgcmVzZXJ2ZWQuCn0KCntcYmZzZXJpZXMgTk9USUNFfQoKVGhlIFNwZWNpZmljYXRpb24gaXMgcHJvdGVjdGVkIGJ5IGNvcHlyaWdodCBhbmQgdGhlIGluZm9ybWF0aW9uIGRlc2NyaWJlZCB0aGVyZWluIG1heSBiZSBwcm90ZWN0ZWQgYnkgb25lIG9yIG1vcmUgVS5TLiBwYXRlbnRzLCBmb3JlaWduIHBhdGVudHMsIG9yIHBlbmRpbmcgYXBwbGljYXRpb25zLiAgRXhjZXB0IGFzIHByb3ZpZGVkIHVuZGVyIHRoZSBmb2xsb3dpbmcgbGljZW5zZSwgbm8gcGFydCBvZiB0aGUgU3BlY2lmaWNhdGlvbiBtYXkgYmUgcmVwcm9kdWNlZCBpbiBhbnkgZm9ybSBieSBhbnkgbWVhbnMgd2l0aG91dCB0aGUgcHJpb3Igd3JpdHRlbiBhdXRob3JpemF0aW9uIG9mIFN1biBNaWNyb3N5c3RlbXMsIEluYy4gKFxscVxscSBTdW5ccnFccnEpIGFuZCBpdHMgbGljZW5zb3JzLCBpZiBhbnkuICBBbnkgdXNlIG9mIHRoZSBTcGVjaWZpY2F0aW9uIGFuZCB0aGUgaW5mb3JtYXRpb24gZGVzY3JpYmVkIHRoZXJlaW4gd2lsbCBiZSBnb3Zlcm5lZCBieSB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQuIAoKU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcyBsaWNlbnNlLCBpbmNsdWRpbmcgeW91ciBjb21wbGlhbmNlIHdpdGggUGFyYWdyYXBocyAxIGFuZCAyIGJlbG93LCBTdW4gaGVyZWJ5IGdyYW50cyB5b3UgYSBmdWxseS1wYWlkLCBub24tZXhjbHVzaXZlLCBub24tdHJhbnNmZXJhYmxlLCBsaW1pdGVkIGxpY2Vuc2UgKHdpdGhvdXQgdGhlIHJpZ2h0IHRvIHN1YmxpY2Vuc2UpIHVuZGVyIFN1bidzIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgdG86CgpcYmVnaW57ZW51bWVyYXRlfQpcaXRlbSBSZXZpZXcgdGhlIFNwZWNpZmljYXRpb24gZm9yIHRoZSBwdXJwb3NlcyBvZiBldmFsdWF0aW9uLiBUaGlzIGluY2x1ZGVzOiAKKGkpIGRldmVsb3BpbmcgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBTcGVjaWZpY2F0aW9uIGZvciB5b3VyIGludGVybmFsLCBub24tY29tbWVyY2lhbCB1c2U7CihpaSkgZGlzY3Vzc2luZyB0aGUgU3BlY2lmaWNhdGlvbiB3aXRoIGFueSB0aGlyZCBwYXJ0eTsgYW5kIAooaWlpKSBleGNlcnB0aW5nIGJyaWVmIHBvcnRpb25zIG9mIHRoZSBTcGVjaWZpY2F0aW9uIGluIG9yYWwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9ucyB3aGljaCBkaXNjdXNzIHRoZSBTcGVjaWZpY2F0aW9uIHByb3ZpZGVkIHRoYXQgc3VjaCBleGNlcnB0cyBkbyBub3QgaW4gdGhlIGFnZ3JlZ2F0ZSBjb25zdGl0dXRlIGEgc2lnbmlmaWNhbnQgcG9ydGlvbiBvZiB0aGUgVGVjaG5vbG9neS4KClxpdGVtIERpc3RyaWJ1dGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBTcGVjaWZpY2F0aW9uIHRvIHRoaXJkIHBhcnRpZXMgZm9yIHRoZWlyIHRlc3RpbmcgYW5kIGV2YWx1YXRpb24gdXNlLCBwcm92aWRlZCB0aGF0IGFueSBzdWNoIGltcGxlbWVudGF0aW9uOgooaSkgZG9lcyBub3QgbW9kaWZ5LCBzdWJzZXQsIHN1cGVyc2V0IG9yIG90aGVyd2lzZSBleHRlbmQgdGhlIExpY2Vuc29yIE5hbWUgU3BhY2UsIG9yIGluY2x1ZGUgYW55IHB1YmxpYyBvciBwcm90ZWN0ZWQgcGFja2FnZXMsIGNsYXNzZXMsIEphdmEgaW50ZXJmYWNlcywgZmllbGRzIG9yIG1ldGhvZHMgd2l0aGluIHRoZSBMaWNlbnNvciBOYW1lIFNwYWNlIG90aGVyIHRoYW4gdGhvc2UgcmVxdWlyZWQvYXV0aG9yaXplZCBieSB0aGUgU3BlY2lmaWNhdGlvbiBvciBTcGVjaWZpY2F0aW9ucyBiZWluZyBpbXBsZW1lbnRlZDsKKGlpKSBpcyBjbGVhcmx5IGFuZCBwcm9taW5lbnRseSBtYXJrZWQgd2l0aCB0aGUgd29yZCBcbHFcbHEgVU5URVNURURccnFccnFcIG9yIFxscVxscSBFQVJMWSBBQ0NFU1NccnFccnFcIG9yIFxscVxscSBJTkNPTVBBVElCTEVccnFccnFcICBvciBcbHFcbHEgVU5TVEFCTEVccnFccnFcIG9yIFxscVxscSBCRVRBXHJxXHJxXCBpbiBhbnkgbGlzdCBvZiBhdmFpbGFibGUgYnVpbGRzIGFuZCBpbiBwcm94aW1pdHkgdG8gZXZlcnkgbGluayBpbml0aWF0aW5nIGl0cyBkb3dubG9hZCwgd2hlcmUgdGhlIGxpc3Qgb3IgbGluayBpcyB1bmRlciBMaWNlbnNlZdVzIGNvbnRyb2w7IGFuZAooaWlpKSBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIG5vdGljZToKXGxxXGxxIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgYW4gZWFybHktZHJhZnQgc3BlY2lmaWNhdGlvbiBkZXZlbG9wZWQgdW5kZXIgdGhlIEphdmEgQ29tbXVuaXR5IFByb2Nlc3MgKEpDUCkgYW5kIGlzIG1hZGUgYXZhaWxhYmxlIGZvciB0ZXN0aW5nIGFuZCBldmFsdWF0aW9uIHB1cnBvc2VzIG9ubHkuIFRoZSBjb2RlIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggYW55IHNwZWNpZmljYXRpb24gb2YgdGhlIEpDUC5ccnFccnFcClxlbmR7ZW51bWVyYXRlfQoKVGhlIGdyYW50IHNldCBmb3J0aCBhYm92ZSBjb25jZXJuaW5nIHlvdXIgZGlzdHJpYnV0aW9uIG9mIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgc3BlY2lmaWNhdGlvbiBpcyBjb250aW5nZW50IHVwb24geW91ciBhZ3JlZW1lbnQgdG8gdGVybWluYXRlIGRldmVsb3BtZW50IGFuZCBkaXN0cmlidXRpb24gb2YgeW91ciDSZWFybHkgZHJhZnTTIGltcGxlbWVudGF0aW9uIGFzIHNvb24gYXMgZmVhc2libGUgZm9sbG93aW5nIGZpbmFsIGNvbXBsZXRpb24gb2YgdGhlIHNwZWNpZmljYXRpb24uICBJZiB5b3UgZmFpbCB0byBkbyBzbywgdGhlIGZvcmVnb2luZyBncmFudCBzaGFsbCBiZSBjb25zaWRlcmVkIG51bGwgYW5kIHZvaWQuIAogCk5vIHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBzaGFsbCBiZSB1bmRlcnN0b29kIHRvIHJlc3RyaWN0IHlvdXIgYWJpbGl0eSB0byBtYWtlIGFuZCBkaXN0cmlidXRlIHRvIHRoaXJkIHBhcnRpZXMgYXBwbGljYXRpb25zIHdyaXR0ZW4gdG8gdGhlIFNwZWNpZmljYXRpb24uCk90aGVyIHRoYW4gdGhpcyBsaW1pdGVkIGxpY2Vuc2UsIHlvdSBhY3F1aXJlIG5vIHJpZ2h0LCB0aXRsZSBvciBpbnRlcmVzdCBpbiBvciB0byB0aGUgU3BlY2lmaWNhdGlvbiBvciBhbnkgb3RoZXIgU3VuIGludGVsbGVjdHVhbCBwcm9wZXJ0eSwgYW5kIHRoZSBTcGVjaWZpY2F0aW9uIG1heSBvbmx5IGJlIHVzZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBsaWNlbnNlIHRlcm1zIHNldCBmb3J0aCBoZXJlaW4uIFRoaXMgbGljZW5zZSB3aWxsIGV4cGlyZSBvbiB0aGUgZWFybGllciBvZjogKGEpIHR3byAoMikgeWVhcnMgZnJvbSB0aGUgZGF0ZSBvZiBSZWxlYXNlIGxpc3RlZCBhYm92ZTsgKGIpIHRoZSBkYXRlIG9uIHdoaWNoIHRoZSBmaW5hbCB2ZXJzaW9uIG9mIHRoZSBTcGVjaWZpY2F0aW9uIGlzIHB1YmxpY2x5IHJlbGVhc2VkOyBvciAoYykgdGhlIGRhdGUgb24gd2hpY2ggdGhlIEphdmEgU3BlY2lmaWNhdGlvbiBSZXF1ZXN0IChKU1IpIHRvIHdoaWNoIHRoZSBTcGVjaWZpY2F0aW9uIGNvcnJlc3BvbmRzIGlzIHdpdGhkcmF3bi4gIEluIGFkZGl0aW9uLCB0aGlzIGxpY2Vuc2Ugd2lsbCB0ZXJtaW5hdGUgaW1tZWRpYXRlbHkgd2l0aG91dCBub3RpY2UgZnJvbSBTdW4gaWYgeW91IGZhaWwgdG8gY29tcGx5IHdpdGggYW55IHByb3Zpc2lvbiBvZiB0aGlzIGxpY2Vuc2UuICBVcG9uIHRlcm1pbmF0aW9uLCB5b3UgbXVzdCBjZWFzZSB1c2Ugb2Ygb3IgZGVzdHJveSB0aGUgU3BlY2lmaWNhdGlvbi4KIApcbHFcbHEgTGljZW5zb3IgTmFtZSBTcGFjZVxycVxycVwgbWVhbnMgdGhlIHB1YmxpYyBjbGFzcyBvciBpbnRlcmZhY2UgZGVjbGFyYXRpb25zIHdob3NlIG5hbWVzIGJlZ2luIHdpdGggXGxxXGxxIGphdmFccnFccnFcICwgXGxxXGxxIGphdmF4XHJxXHJxXCAsIFxscVxscSBjb20uc3VuXHJxXHJxXCAgb3IgdGhlaXIgZXF1aXZhbGVudHMgaW4gYW55IHN1YnNlcXVlbnQgbmFtaW5nIGNvbnZlbnRpb24gYWRvcHRlZCBieSBTdW4gdGhyb3VnaCB0aGUgSmF2YSBDb21tdW5pdHkgUHJvY2Vzcywgb3IgYW55IHJlY29nbml6ZWQgc3VjY2Vzc29ycyBvciByZXBsYWNlbWVudHMgdGhlcmVvZgoKCntcYmZzZXJpZXMgVFJBREVNQVJLU30KCk5vIHJpZ2h0LCB0aXRsZSwgb3IgaW50ZXJlc3QgaW4gb3IgdG8gYW55IHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHRyYWRlIG5hbWVzIG9mIFN1biBvciBTdW4ncyBsaWNlbnNvcnMgaXMgZ3JhbnRlZCBoZXJldW5kZXIuICBTdW4sIFN1biBNaWNyb3N5c3RlbXMsIHRoZSBTdW4gbG9nbywgSmF2YSwgIGFyZSB0cmFkZW1hcmtzIG9yIHJlZ2lzdGVyZWQgdHJhZGVtYXJrcyBvZiBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuIGluIHRoZQpVLlMuIGFuZCBvdGhlciBjb3VudHJpZXMuCgp7XGJmc2VyaWVzIERJU0NMQUlNRVIgT0YgV0FSUkFOVElFU30KClRIRSBTUEVDSUZJQ0FUSU9OIElTIFBST1ZJREVEICJBUyBJUyIgQU5EIElTIEVYUEVSSU1FTlRBTCBBTkQgTUFZIENPTlRBSU4gREVGRUNUUyBPUiBERUZJQ0lFTkNJRVMgV0hJQ0ggQ0FOTk9UIE9SIFdJTEwgTk9UIEJFIENPUlJFQ1RFRCBCWSBTVU4uICBTVU4gTUFLRVMgTk8gUkVQUkVTRU5UQVRJT05TIE9SIFdBUlJBTlRJRVMsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8sIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSwgT1IgTk9OLUlORlJJTkdFTUVOVCBUSEFUIFRIRSBDT05URU5UUyBPRiBUSEUgU1BFQ0lGSUNBVElPTiBBUkUKU1VJVEFCTEUgRk9SIEFOWSBQVVJQT1NFIE9SIFRIQVQgQU5ZIFBSQUNUSUNFIE9SIElNUExFTUVOVEFUSU9OIE9GIFNVQ0ggQ09OVEVOVFMgV0lMTCBOT1QgSU5GUklOR0UgQU5ZIFRISVJEIFBBUlRZIFBBVEVOVFMsIENPUFlSSUdIVFMsIFRSQURFIFNFQ1JFVFMgT1IgT1RIRVIgUklHSFRTLiAgVGhpcyBkb2N1bWVudCBkb2VzIG5vdCByZXByZXNlbnQgYW55IGNvbW1pdG1lbnQgdG8gcmVsZWFzZSBvciBpbXBsZW1lbnQgYW55IHBvcnRpb24gb2YgdGhlIFNwZWNpZmljYXRpb24gaW4gYW55IHByb2R1Y3QuCgpUSEUgU1BFQ0lGSUNBVElPTiBDT1VMRCBJTkNMVURFIFRFQ0hOSUNBTCBJTkFDQ1VSQUNJRVMgT1IgVFlQT0dSQVBISUNBTCBFUlJPUlMuICBDSEFOR0VTIEFSRSBQRVJJT0RJQ0FMTFkgQURERUQgVE8gVEhFIElORk9STUFUSU9OIFRIRVJFSU47IFRIRVNFIENIQU5HRVMgV0lMTCBCRSBJTkNPUlBPUkFURUQgSU5UTyBORVcgVkVSU0lPTlMgT0YgVEhFIFNQRUNJRklDQVRJT04sIElGIEFOWS4gIFNVTiBNQVkgTUFLRSBJTVBST1ZFTUVOVFMgQU5EL09SIENIQU5HRVMgVE8gVEhFIFBST0RVQ1QoUykgQU5EL09SIFRIRSBQUk9HUkFNKFMpIERFU0NSSUJFRCBJTiBUSEUgU1BFQ0lGSUNBVElPTiBBVCBBTlkgVElNRS4gIEFueSB1c2Ugb2Ygc3VjaCBjaGFuZ2VzIGluIHRoZSBTcGVjaWZpY2F0aW9uIHdpbGwgYmUgZ292ZXJuZWQgYnkgdGhlIHRoZW4tY3VycmVudCBsaWNlbnNlIGZvciB0aGUgYXBwbGljYWJsZSB2ZXJzaW9uIG9mIHRoZSBTcGVjaWZpY2F0aW9uLgoKe1xiZnNlcmllcyBMSU1JVEFUSU9OIE9GIExJQUJJTElUWX0KClRPIFRIRSBFWFRFTlQgTk9UIFBST0hJQklURUQgQlkgTEFXLCBJTiBOTyBFVkVOVCBXSUxMIFNVTiBPUiBJVFMgTElDRU5TT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERBTUFHRVMsIElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04sIExPU1QgUkVWRU5VRSwgUFJPRklUUyBPUiBEQVRBLCBPUiBGT1IgU1BFQ0lBTCwgSU5ESVJFQ1QsIENPTlNFUVVFTlRJQUwsIElOQ0lERU5UQUwgT1IgUFVOSVRJVkUgREFNQUdFUywgSE9XRVZFUiBDQVVTRUQgQU5EIFJFR0FSRExFU1MgT0YgVEhFIFRIRU9SWSBPRiBMSUFCSUxJVFksIEFSSVNJTkcgT1VUIE9GIE9SIFJFTEFURUQgVE8gQU5ZIEZVUk5JU0hJTkcsIFBSQUNUSUNJTkcsIE1PRElGWUlORyBPUiBBTlkgVVNFIE9GIFRIRSBTUEVDSUZJQ0FUSU9OLCBFVkVOIElGIFNVTiBBTkQvT1IgSVRTIExJQ0VOU09SUyBIQVZFIEJFRU4gQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgoKWW91IHdpbGwgaG9sZCBTdW4gKGFuZCBpdHMgbGljZW5zb3JzKSBoYXJtbGVzcyBmcm9tIGFueSBjbGFpbXMgYmFzZWQgb24geW91ciB1c2Ugb2YgdGhlIFNwZWNpZmljYXRpb24gZm9yIGFueSBwdXJwb3NlcyBvdGhlciB0aGFuIHRoZSBsaW1pdGVkIHJpZ2h0IG9mIGV2YWx1YXRpb24gYXMgZGVzY3JpYmVkIGFib3ZlLCBhbmQgZnJvbSBhbnkgY2xhaW1zIHRoYXQgbGF0ZXIgdmVyc2lvbnMgb3IgcmVsZWFzZXMgb2YgYW55IFNwZWNpZmljYXRpb24gZnVybmlzaGVkIHRvIHlvdSBhcmUgaW5jb21wYXRpYmxlIHdpdGggdGhlIFNwZWNpZmljYXRpb24gcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoaXMgbGljZW5zZS4KCntcYmZzZXJpZXMgUkVTVFJJQ1RFRCBSSUdIVFMgTEVHRU5EfQoKSWYgdGhpcyBTb2Z0d2FyZSBpcyBiZWluZyBhY3F1aXJlZCBieSBvciBvbiBiZWhhbGYgb2YgdGhlIFUuUy4gR292ZXJubWVudCBvciBieSBhIFUuUy4gR292ZXJubWVudCBwcmltZSBjb250cmFjdG9yIG9yIHN1YmNvbnRyYWN0b3IgKGF0IGFueSB0aWVyKSwgdGhlbiB0aGUgR292ZXJubWVudCdzIHJpZ2h0cyBpbiB0aGUgU29mdHdhcmUgYW5kIGFjY29tcGFueWluZyBkb2N1bWVudGF0aW9uIHNoYWxsIGJlIG9ubHkgYXMgc2V0IGZvcnRoIGluIHRoaXMgbGljZW5zZTsgdGhpcyBpcyBpbiBhY2NvcmRhbmNlIHdpdGggNDggQy5GLlIuIDIyNy43MjAxIHRocm91Z2ggMjI3LjcyMDItNCAoZm9yIERlcGFydG1lbnQgb2YgRGVmZW5zZSAoRG9EKSBhY3F1aXNpdGlvbnMpIGFuZCB3aXRoIDQ4IEMuRi5SLiAyLjEwMSBhbmQgMTIuMjEyIChmb3Igbm9uLURvRCBhY3F1aXNpdGlvbnMpLgoKe1xiZnNlcmllcyBSRVBPUlR9CgpZb3UgbWF5IHdpc2ggdG8gcmVwb3J0IGFueSBhbWJpZ3VpdGllcywgaW5jb25zaXN0ZW5jaWVzIG9yIGluYWNjdXJhY2llcyB5b3UgbWF5IGZpbmQgaW4gY29ubmVjdGlvbiB3aXRoIHlvdXIgZXZhbHVhdGlvbiBvZiB0aGUgU3BlY2lmaWNhdGlvbiAoXGxxXGxxIEZlZWRiYWNrXHJxXHJxKS4gIFRvIHRoZSBleHRlbnQgdGhhdCB5b3UgcHJvdmlkZSBTdW4gd2l0aCBhbnkgRmVlZGJhY2ssIHlvdSBoZXJlYnk6IChpKSBhZ3JlZSB0aGF0IHN1Y2ggRmVlZGJhY2sgaXMgcHJvdmlkZWQgb24gYSBub24tcHJvcHJpZXRhcnkgYW5kIG5vbi1jb25maWRlbnRpYWwgYmFzaXMsIGFuZCAoaWkpIGdyYW50IFN1biBhIHBlcnBldHVhbCwgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCBmdWxseSBwYWlkLXVwLCBpcnJldm9jYWJsZSBsaWNlbnNlLCB3aXRoIHRoZSByaWdodCB0byBzdWJsaWNlbnNlIHRocm91Z2ggbXVsdGlwbGUgbGV2ZWxzIG9mIHN1YmxpY2Vuc2VlcywgdG8gaW5jb3Jwb3JhdGUsIGRpc2Nsb3NlLCBhbmQgdXNlIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgRmVlZGJhY2sgZm9yIGFueSBwdXJwb3NlIHJlbGF0ZWQgdG8gdGhlIFNwZWNpZmljYXRpb24gYW5kIGZ1dHVyZSB2ZXJzaW9ucywgaW1wbGVtZW50YXRpb25zLCBhbmQgdGVzdCBzdWl0ZXMgdGhlcmVvZi4KCntcYmZzZXJpZXMgR0VORVJBTCBURVJNU30KCkFueSBhY3Rpb24gcmVsYXRlZCB0byB0aGlzIEFncmVlbWVudCB3aWxsIGJlIGdvdmVybmVkIGJ5IENhbGlmb3JuaWEgbGF3IGFuZCBjb250cm9sbGluZyBVLlMuIGZlZGVyYWwgbGF3LiBUaGUgVS5OLiBDb252ZW50aW9uIGZvciB0aGUgSW50ZXJuYXRpb25hbCBTYWxlIG9mIEdvb2RzIGFuZCB0aGUgY2hvaWNlIG9mIGxhdyBydWxlcyBvZiBhbnkganVyaXNkaWN0aW9uIHdpbGwgbm90IGFwcGx5LgoKVGhlIFNwZWNpZmljYXRpb24gaXMgc3ViamVjdCB0byBVLlMuIGV4cG9ydCBjb250cm9sIGxhd3MgYW5kIG1heSBiZSBzdWJqZWN0IHRvIGV4cG9ydCBvciBpbXBvcnQgcmVndWxhdGlvbnMgaW4gb3RoZXIgY291bnRyaWVzLiBMaWNlbnNlZSBhZ3JlZXMgdG8gY29tcGx5IHN0cmljdGx5IHdpdGggYWxsIHN1Y2ggbGF3cyBhbmQgcmVndWxhdGlvbnMgYW5kIGFja25vd2xlZGdlcyB0aGF0IGl0IGhhcyB0aGUgcmVzcG9uc2liaWxpdHkgdG8gb2J0YWluIHN1Y2ggbGljZW5zZXMgdG8gZXhwb3J0LCByZS1leHBvcnQgb3IgaW1wb3J0IGFzIG1heSBiZSByZXF1aXJlZCBhZnRlciBkZWxpdmVyeSB0byBMaWNlbnNlZS4KClRoaXMgQWdyZWVtZW50IGlzIHRoZSBwYXJ0aWVzJyBlbnRpcmUgYWdyZWVtZW50IHJlbGF0aW5nIHRvIGl0cyBzdWJqZWN0IG1hdHRlci4gSXQgc3VwZXJzZWRlcyBhbGwgcHJpb3Igb3IgY29udGVtcG9yYW5lb3VzIG9yYWwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9ucywgcHJvcG9zYWxzLCBjb25kaXRpb25zLCByZXByZXNlbnRhdGlvbnMgYW5kIHdhcnJhbnRpZXMgYW5kIHByZXZhaWxzIG92ZXIgYW55IGNvbmZsaWN0aW5nIG9yIGFkZGl0aW9uYWwgdGVybXMgb2YgYW55IHF1b3RlLCBvcmRlciwgYWNrbm93bGVkZ21lbnQsIG9yIG90aGVyIGNvbW11bmljYXRpb24gYmV0d2VlbiB0aGUgcGFydGllcyByZWxhdGluZyB0byBpdHMgc3ViamVjdCBtYXR0ZXIgZHVyaW5nIHRoZSB0ZXJtIG9mIHRoaXMgQWdyZWVtZW50LiBObyBtb2RpZmljYXRpb24gdG8gdGhpcyBBZ3JlZW1lbnQgd2lsbCBiZSBiaW5kaW5nLCB1bmxlc3MgaW4gd3JpdGluZyBhbmQgc2lnbmVkIGJ5IGFuIGF1dGhvcml6ZWQgcmVwcmVzZW50YXRpdmUgb2YgZWFjaCBwYXJ0eS4KXGVuZHtmbHVzaGxlZnR9