QWN0dWFsbHkgaXQgY2FuIGJlIGF1dG9tYXRlZCwgYW5kIHdpdGhvdXQgYSBtYWNoaW5lLiBJdCdz IGNhbGxlZCBmcmVpZ2h0CmZvcndhcmRpbmcgYW5kIGZyZWlnaHQgY29uc29saWRhdGlvbi4gVGhl IGdvb2RzIGhhdmUgYWxyZWFkeSBiZWVuIGNsZWFyZAp0aHJvdWdoIHRoZSBkZXN0aW5hdGlvbiBi ZWZvcmUgdGhleSBldmVuIHNoaXAsIGV4Y2VwdCBvZiBjb3Vyc2UgZm9yCmluc3BlY3Rpb24gd2hl biBhbmQgaWYgdGhhdCBpcyByZXF1aXJlZC4gSWYgeW91IHNoaXAgdG8gb3IgZnJvbSB0aGUgc2Ft ZQpjb3VudHJ5IHJlZ3VsYXJseSBpdCBpcyB2ZXJ5IHdlbGwgd29ydGggeW91ciB0aW1lIHRvIGVz dGFibGlzaCBzdWNoCnJlbGF0aW9uc2hpcHMuCgp+UmlCCuGQpwoKUmVnYXJkcy9Sb2dlciwgaW4g QmFuZ2tvawoKUFM6ICBtZXJjaWVzQGNzY29tcy5jb20sIHJvZ2VyQGtzYy50aC5jb20gYW5kIHJv Z2VyQHBhY2lmaWMubmV0LnRoIGVtYWlsCmFkZHJlc3NlcyBhcmUgbm8gbG9uZ2VyIHZhbGlkIC4u LiBwbGVhc2UgZGVsZXRlIHRoZW0gZnJvbSB5b3VyIGFkZHJlc3MgYm9vawo6LSkKCk9uIFNhdCwg Tm92IDI5LCAyMDE0IGF0IDY6NTYgQU0sIHNtcGx4IDxzbXBseEBhbGxvdHJvcGUubmV0PiB3cm90 ZToKCj4KPgo+IE9uIEZyaSwgMjggTm92IDIwMTQsIEpvaG4gR2FyZG5lciB3cm90ZToKPgo+ID4g Li4uSSB0aGluayB0aGV5IHNpbXBseSBkbyBub3Qgd2FudCB0byBzaGlwIGRpcmVjdGx5IGludGVy bmF0aW9uYWx5Li4uCj4gPgo+ID4gT2Z0ZW4gdGhlIGNhc2Ugd2l0aCBzbWFsbCBvcmRlcnMuIENv bXBseWluZyB3aXRoIFVTIGV4cG9ydCBjb24tCj4gPiB0cm9scyBvbiAidGVjaG5vbG9neSIgcHJv ZHVjdHMgaXMgbmVpdGhlciB0cml2aWFsIG5vciBmcmVlIG9mIGxpYWJpbGl0eS4KPgo+IElmIG9u bHkgdGhlcmUgd2VyZSBzb21lIG1hY2hpbmUgdGhhdCBjb3VsZCBiZSB1c2VkIHRvIGF1dG9tYXRl IHRoZSBwcm9jZXNzCj4gOy0pCj4KPiBCdXQgc2VyaW91c2x5LCBkb24ndCB5b3UganVzdCBsb3Zl IGl0IHdoZW4gc29tZW9uZSB0aGF0IGhhcyBhIGJ1aXNuZXNzCj4gbW9kZWwgYmFzZWQgb24gaW50 ZXJuZXQgc2FsZXMgY29tcGxhaW5zIHRoYXQgaXQgY29zdHMgdG9vIG11Y2ggdG8gcHJvY2Vzcwo+ IGFuIG9yZGVyPwo+Cj4gSSBtZWVuLCBJIGNvdWxkIHVuZGVyc3RhbmQgaXQgaWYgc2FpZCBidXNp bmVzcyBoYWQgbm8gcGVyc29ubmVsIGRlZGljYXRlZAo+IHRvIHByb2Nlc3Npbmcgb3JkZXJzIChp LmUuIHRha2Ugc29tZW9uZSBvZmYgd3JpdGluZyBzb2Z0d2FyZSB0byBkZWFsIHdpdGgKPiBhbiBv cmRlciksIGJ1dCBpbiBjYXNlcyB3aGVyZSBwZXJzb25uZWwgYXJlIGFjdHVhbGx5IGVtcGxveWVk IHNwZWNpZmljYWxseQo+IHRvIHByb2Nlc3Mgb3JkZXJzPz8/Pwo+Cj4gUmVnYXJkcwo+IFNlcmdp byBNYXNjaQo+IC0tCj4gaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVmL3BpY2xpc3QgUElD L1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQo+IFZpZXcvY2hhbmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRp b25zIGF0Cj4gaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QK PgotLSAKaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVmL3BpY2xpc3QgUElDL1NYIEZBUSAm IGxpc3QgYXJjaGl2ZQpWaWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBhdApodHRw Oi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4vbGlzdGluZm8vcGljbGlzdAo= .