T24gVGh1LCBNYXIgNSwgMjAxNSBhdCAxMjo1NiBBTSwgSmFyb3NsYXcgU3RhbmllayA8c3Rhbmll a0BrZGUub3JnPiB3cm90ZToKPiBOaWNlIHRoYW5rcy4KPiBJIHNlZSAyOCUgb2YgY2hhbmdlcyBh cmUgbm9uLXdoaXRlc3BhY2UuCj4gRm9yY2luZyB7fSBmb3IgaWYvZWxzZSBpcyBnb29kLgo+Cj4g Q291bGQgd2UgcGxlYXNlIGV4Y2x1ZGUgZGlycyB0aGF0IGNvbnRhaW4gZm9ya2VkIGNvZGUgdGhh dCB3b3VsZCBiZQo+IGNvbXBhcmVkIHRvIGV4dGVybmFsIGNvcGllcz8KPiBPbmUgY29tZXMgdG8g bXkgbWluZDoga2V4aS9taWdyYXRpb24vbWRiL3NyYy9tZGJ0b29scy8uIEFueXRoaW5nIGVsc2U/ Cj4KPiBGb3IgdGhlIGZ1dHVyZSBJJ2QgdXNlIHRoZSB0b29sIGFzIGEgbG9jYWwgcHJlLWNvbW1p dCBob29rLgo+Cj4gRm9yIHN0YXRzIEkgcmVjb21tZW5kIHVzaW5nIHRoZSBmb2xsb3dpbmcgYXV0 aG9yIGluIHRoaXMgY29tbWl0LCBJCj4gaG9wZSB0aGVyZSBhcmUgY29tbWl0IHJpZ2h0czoKPiBh c3R5bGUta2RlbGlicyA8c2NyaXB0eUBrZGUub3JnPgoKUGxlYXNlIGRvbid0IGFidXNlIHNjcmlw dHkgZm9yIHRoaXMuClNpbXBseSBjb21taXQgdGhlIHJlLXN0eWxpbmcgb2YgdGhlIGNvZGUgYXMg eW91cnNlbGYsIGl0IHdvbid0IHBvc2UgYW55IGlzc3VlLgoKPgo+IEBCZW4/Cj4KPiBTaW1pbGFy IGZvciBvdGhlciBzY3JpcHRzLgoKUmVnYXJkcywKQmVuCgo+Cj4gT24gNCBNYXJjaCAyMDE1IGF0 IDEyOjIzLCBGcmllZHJpY2ggVy4gSC4gS29zc2ViYXUgPGtvc3NlYmF1QGtkZS5vcmc+IHdyb3Rl Ogo+PiBBbSBNaXR0d29jaCwgNC4gTcOkcnogMjAxNSwgMDA6MTA6Mjggc2NocmllYiBGcmllZHJp Y2ggVy4gSC4gS29zc2ViYXU6Cj4+PiBBbSBEaWVuc3RhZywgMy4gTcOkcnogMjAxNSwgMjM6Mzc6 MDIgc2NocmllYiBKYXJvc2xhdyBTdGFuaWVrOgo+Pj4gPiBGaXJzdCBsZXQncyB2ZXJpZnkgaWYg YXN0eWxlLWtkZWxpYnMgY2hhbmdlcyBvbmx5IHdoaXRlc3BhY2UuCj4+Pgo+Pj4gT2theSwgSSBw cm9wb3NlIHRoYXQgd2Ugd2FpdCB3aXRoIHRoZSBwb3J0aW5nIHN0YXJ0IHVudGlsIHRoaXMgZ290 IHNvcnRlZAo+Pj4gb3V0Lgo+Pj4KPj4+IE5vIHByZXNzaW5nIG5lZWQgdG8gcmVhbGx5IHN0YXJ0 IHBvcnRpbmcgdG9kYXksIDItMyBtb3JlIGRheXMgZG9uJ3QgaHVydAo+Pj4gaGVyZSwgYW5kIHRo ZXJlIGFyZSBlbm91Z2ggYnVncyB0byBmaXggZm9yIDIuOS4gQmV0dGVyIGhhdmUgYWxsIG1haW50 YWluZXJzCj4+PiBhbGlnbmVkIGluIHRoZSBnb2Fscy4KPj4+IE1vc3QgcGVvcGxlIGhhdmUgbW9y ZSB0aW1lIG9ubHkgYXQgdGhlIFdFIGFueXdheSA6KQo+Pj4KPj4+IEtpY2tlZCBvZmYgYSBxdDUg YnVpbGQgZm9yIHRoZSBuaWdodCB0byBob3BlZnVsbHkgZ2V0IHRoYXQgIm5vcm1hbGl6ZSIgdG9v bCwKPj4+IG1pZ2h0IGdpdmUgYSBkaWZmIHNvbWUgdGVzdGluZyB0b21vcnJvdyBhZnRlcm5vb24u Cj4+Cj4+IEkgZm91bmQgbWVhbndoaWxlIHRoYXQgdGhlIG5vcm1hbGl6ZSB0b29sIGNhbiBiZSBj b21waWxlZCBvbiBpdHMgb3duLCBpcyBub3QKPj4gcGFydCBvZiB0aGUgYWN0dWFsIFF0IGJ1aWxk LiBTbyBJIGRpZCwgYW5kIHdpdGggdGhlIHBhdGNoZWQgYXN0eWxlIHJhbiBhc3R5bGUtCj4+IGtk ZWxpYnMgb24gdGhpcyBtb3JuaW5nJ3MgQ2FsbGlncmEgbWFzdGVyLgo+Pgo+PiBQbGVhc2Ugc2Vl IHRoZSByZXN1bHQgY29tbWl0dGVkIGFzIGJyYW5jaCBmb3IgcHJldmlldyB0byB0aGUgY2VudHJh bCByZXBvLAo+PiB3aXRoIDNyZC1wYXJ0eSwgbGlicy97ZGIsa29yZXBvcnQsa29wcm9wZXJ0eX0s IHBsdWdpbnMvcmVwb3J0aW5nIG5vdCB0b3VjaGVkLAo+PiAoYmVjYXVzZSBlaXRoZXIgZ29pbmcg dG8gYmUgcmVtb3ZlZCBvciAzcmQtcGFydHkpOgo+Pgo+PiBhc3R5bGUta2RlbGlicy1yZXN1bHQt MjAxNS0wMy0wNC1rb3NzZWJhdQo+Pgo+PiBXb3VsZCB0aG9zZSBjaGFuZ2VzIHdvcmsgZm9yIGV2 ZXJ5b25lPyBQbGVhc2UgZ2l2ZSBmZWVkYmFjayBhcyBxdWlja2x5IGFzCj4+IHBvc3NpYmxlLCBz byB5b3UgYXJlIGhlYXJkLgo+PiAoVGhlIGJyYW5jaCB3aWxsIGJlIGRlbGV0ZWQgbGF0ZXIgb24s IGp1c3QgdXNlZCBmb3IgY29udmVuaWVuY2UgdG8gaGF2ZQo+PiBldmVyeW9uZSBzZWUgdGhlIHBv c3NpYmxlIGNoYW5nZXMuKQo+Pgo+PiBDaGVlcnMKPj4gRnJpZWRyaWNoCj4+Cj4+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IEtleGktZGV2ZWwgbWFp bGluZyBsaXN0Cj4+IEtleGktZGV2ZWxAa2RlLm9yZwo+PiBodHRwczovL21haWwua2RlLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2tleGktZGV2ZWwKPgo+Cj4KPiAtLQo+IHJlZ2FyZHMsIEphcm9zbGF3 IFN0YW5pZWsKPgo+IEtERToKPiA6IEEgd29ybGQtd2lkZSBuZXR3b3JrIG9mIHNvZnR3YXJlIGVu Z2luZWVycywgYXJ0aXN0cywgd3JpdGVycywgdHJhbnNsYXRvcnMKPiA6IGFuZCBmYWNpbGl0YXRv cnMgY29tbWl0dGVkIHRvIEZyZWUgU29mdHdhcmUgZGV2ZWxvcG1lbnQgLSBodHRwOi8va2RlLm9y Zwo+IENhbGxpZ3JhIFN1aXRlOgo+IDogQSBncmFwaGljIGFydCBhbmQgb2ZmaWNlIHN1aXRlIC0g aHR0cDovL2NhbGxpZ3JhLm9yZwo+IEtleGk6Cj4gOiBBIHZpc3VhbCBkYXRhYmFzZSBhcHBzIGJ1 aWxkZXIgLSBodHRwOi8vY2FsbGlncmEub3JnL2tleGkKPiBRdCBDZXJ0aWZpZWQgU3BlY2lhbGlz dDoKPiA6IGh0dHA6Ly93d3cubGlua2VkaW4uY29tL2luL2pzdGFuaWVrCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCktyaXRhIG1haWxpbmcgbGlzdApraW1h Z2VzaG9wQGtkZS5vcmcKaHR0cHM6Ly9tYWlsLmtkZS5vcmcvbWFpbG1hbi9saXN0aW5mby9raW1h Z2VzaG9wCg==