CkZvciB0aGUgcmVjb3JkLCBJJ20gc3RpbGwgc29tZXdoYXQgYWdhaW5zdCBhbGwgb2YgdGhlc2Ug UU1MCktDTSBwb3J0cyAuLi4KClF0IFF1aWNrIENvbnRyb2xzIGN1cnJlbnRseToKCi0gSGFzIG5v IGZvcm0gbGF5b3V0cyBhbmQgb3RoZXIgcHJvYmxlbXMgbWFraW5nIGl0IGRpZmZpY3VsdCB0bwog ICBpbXBsZW1lbnQgZ29vZCBjb25maWcgVUlzIChlLmcuIG5vIHdheSB0byBnZXQgdGhlIG1ldHJp Y3MgdG8KICAgZG8gbmljZSBoYW5naW5nIGluZGVudHMpLiBOdW1lcm91cyBRdCBRdWljayBVSXMg d2UgaGF2ZSBhcmUKICAgcmVhbGx5IGJhZGx5IGxhaWQgb3V0IGNvbXBhcmVkIHRvIHRoZWlyIFBs YXNtYSA0IGVxdWl2YWxlbnRzLgoKLSBObyBhdXRvbWF0aWMga2V5Ym9hcmQgYWNjZWxlcmF0b3Ig bWFuYWdlbWVudC4KCi0gV29yc2UgcGVyZm9ybWFuY2UuCgotIEluY29tcGxldGUgUVN0eWxlIHN1 cHBvcnQgYW5kIGFzIGEgcmVzdWx0IHZhcmlvdXMgdmlzdWFsIGFuZAogICBiZWhhdmlvcmFsIGlu dGVncmF0aW9uIGlzc3Vlcy4KCi0gV29yc2UgaGFyZHdhcmUgY29tcGF0aWJpbGl0eSAoUXQgUXVp Y2sgMiByZXF1aXJlcyBPcGVuR0wsIGkuZS4KICAgYWxsIG9mIHRoZXNlIFVJcyBzdG9wIHdvcmtp bmcgaWYgR0wvbGx2bXBpcGUgYnJlYWtzKS4KCkkgYWxzbyBzZWUgbm8gcmVhbCAqYmVuZWZpdCog cmlnaHQgbm93IGJleW9uZCAiUXQgUXVpY2sgQ29udHJvbHMKaXMgdGhlIGZ1dHVyZSIuIEl0IG1h eSB3ZWxsIGJlLCBidXQgd2hhdCBtYXR0ZXJzIGlzIHRoZSBxdWFsaXR5Cm9mIHdoYXQncyBpbiBh bnkgZ2l2ZW4gdGFyYmFsbC4gSSB1bmRlcnN0YW5kIGFtYXNzaW5nIGNvZGUgdXNpbmcKaXQgZ2Vu ZXJhdGVzIHByZXNzdXJlIHRvIGdldCBpdCB0aGVyZSwgYnV0IGRvIHdlIHJlYWxseSB3YW50IHRv CnVzZSB0aGUgc3VmZmVyaW5nIG9mIG91ciB1c2VyYmFzZSBhcyBsZXZlcmFnZT8gSGF2ZSB3ZSBy ZWFsbHkKdHJpZWQgZXZlcnl0aGluZyB3ZSBjYW4gdG8gYWRkcmVzcyB0aGVzZSBwcm9ibGVtcyBi ZWZvcmUgd2UKZXhwb3NlIG1vcmUgdXNlcnMgdG8gdGhlbSB5ZXQ/CgpUaGlzIGlzIGdvaW5nIHRv IGxvd2VyIHRoZSBxdWFsaXR5IG9mIHRoZSBzb2Z0d2FyZSB3ZSBzaGlwIGZvcgphIGdvb2Qgd2hp bGUuIE5vdCB0byB0YWtlIGEgY2hlYXAgc2hvdCwgYnV0IGFueW9uZSByZWFkIGJvdWQncwpyZWNl bnQgYmxvZyBwb3N0PwoKCkNoZWVycywKRWlrZQoKCk9uIDA0LzI3LzIwMTUgMTI6NTQgUE0sIE1h cmNvIE1hcnRpbiB3cm90ZToKPiBNb25kYXkgaGFuZ291dCBub3RlcyBmb3IgMjcgQXByaWwgMjAx NQo+Cj4gQW50b25pcwo+ICogYnVnZml4aW5nCj4gKiB0aGlua2luZyBhYm91dCBwb3J0aW5nIGZv bnRzIG9yIGljb25zIHRvIFFNTAo+Cj4gQmh1c2hhbgo+ICogcmVjZW50IG1lZGlhIGJhY2tlbmQg dG8gUE1DIHRvIGxpa2Uga25vdyB3aGF0IGVwaXNvZGUgeW91IGFyZSBpbiB3aGlsZQo+IHdhdGNo aW5nIGEgdHYgc2hvdwo+Cj4gRGF2aWQgRQo+ICogbG9uZyBidWdmaXhpbmcgd2Vlawo+ICogaGFj ayBxdDQgYXBwcyB0byBjb3JyZWN0bHkgbG9hZCBzdGF0dXNub3RpZmllcnMgaW4gRGViaWFuCj4g KiB3b3JraW5nIHRvIGZpeCBhIGNyYXNoIGluIHFtbCBhbmltYXRpb25zCj4KPiBEYXZpZCBSCj4g KiBCbHVldG9vdGggYXBwbGV0Cj4gKiBjYW4gY29udHJvbCBtZWRpYXBsYXllciBmcm9tIGRldmlj ZSwgc2hvd3MgY3VycmVudCBwbGF5aW5nCj4gKiBidWdmaXhpbmcKPiAqIG5leHQsIG1heWJlIHBv cnRpbmcgaXRzIGtjbXMgdG8gcW1sCj4KPiBKb25hdGhhbjoKPiAqIDUuMyBvdXQgdG9tb3Jyb3cK PiAqIHBsZWFzZSB0YWtlIGEgbG9vayB0byB0aGUgYW5ub3VuY2VtZW50L2VycmF0YSwgY29ycmVj dCBpZiBuZWNlc3NhcnkKPiAqIGh0dHBzOi8vd3d3LmtkZS5vcmcvYW5ub3VuY2VtZW50cy9wbGFz bWEtNS4zLjAucGhwCj4gKiBodHRwczovL2NvbW11bml0eS5rZGUub3JnL1BsYXNtYS81LjNfRXJy YXRhCj4gKiBodHRwczovL3d3dy5rZGUub3JnL2luZm8vcGxhc21hLTUuMy4wLnBocAo+Cj4gTWFy dGluIEcKPiAqIHdvcmtlZCBvbiBtYW5hZ2luZyBtb25pdG9yIGVkaWQKPiAqIGNvZGUgZm9yIG92 ZXJyaWRpbmcgd3JvbmcgaW5mb3JtYXRpb24gZnJvbSBzY3JlZW5zCj4gKiBkaXJlY3QgcmVuZGVy aW5nIG1vZGUgZm9yIGt3aW4sIG1lcmdlZDoga3dpbl93YXlsYW5kIC0tZHJtIC0tbGliaW5wdXQg LS0KPiB4d2F5bGFuZAo+ICogaG90cGx1Z2dpbmcgb2Ygb3V0cHV0cywgYWxyZWFkeSBiZXR0ZXIg dGhhbiBYMTEKPiAqIHdpbGwgY29udGludWUgd29yayBvbiBkcm0gYmFja2VuZAo+Cj4gVGltIFJh bW1zCj4gKiBmaXhlcyBmb3Igbm90aWZpY2F0aW9ucyBhbmQgam9icwo+Cj4gVmlzaGVzaAo+ICog QnVnZml4ZXMgaW4gYmFsb28gYW5kIGtydW5uZXIKPiAqIHdpbGwgbWVyZ2UgbmV3IGluZGV4ZXIg aW4gbWFzdGVyCj4KPiBNYXJjbwo+ICogcW1sIHBvcnQgb2YgbW91c2UgS0NNOiBuZWVkcyBhIHNv bHV0aW9uIHRvIGNvbWJvYm94IGJ1Z3MgdG8gYmUgbWVyZ2VkCj4gKiBicmFuY2ggaW4gbGlicGxh c21hIHRvIHBvcnQgYXdheSBmcm9tIHN5Y29jYTogdGFyZ2V0IGlzIHRvIHN0b3AgaW5zdGFsbGlu Zwo+IGRlc2t0b3AgZmlsZXMgaW4ga3NlcnZpY2VzNQo+ICogbmV4dCB3ZWVrIHdpbGwgY29udGlu dWUgb24gdGhhdAo+ICogd2lsbCBjb250aW51ZSBvbiBidWdmaXhlcwo+Cl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClBsYXNtYS1kZXZlbCBtYWlsaW5nIGxp c3QKUGxhc21hLWRldmVsQGtkZS5vcmcKaHR0cHM6Ly9tYWlsLmtkZS5vcmcvbWFpbG1hbi9saXN0 aW5mby9wbGFzbWEtZGV2ZWwK