T24gV2VkLCBGZWIgMiwgMjAxMSBhdCAxMToxMiBQTSwgRm9ycmVzdCBXIENocmlzdGlhbiA8Zm9y cmVzdGNAaW1hY2guY29tPiB3cm90ZToKPiBJJ3ZlIGJlZW4gdXNpbmcgYSBEZXdhbHQgNS40Q0ZN IDE1IGdhbGxvbiBhaXIgY29tcHJlc3NvciBpbiB0aGUKPiAnYXNzZW1ibHkgZmFjaWxpdHknIGZv ciBwcm92aWRpbmcgc2hvcCBhaXIgZm9yIHRoaW5ncyBsaWtlIGZsdXggc3RvbmUKPiBhaXIgaW4g dGhlIHdhdmUgc29sZGVyIG1hY2hpbmUuIMKgSSBjaG9zZSB0aGlzIG9uZSBpbiBwYXJ0aWN1bGFy IGJlY2F1c2UKPiBpdCB3YXMgJ29pbCBmcmVlJyAtIHRoYXQgaXMsIEkgZGlkbid0IGhhdmUgdG8g d29ycnkgYWJvdXQgdGhlIGNvbXByZXNzb3IKPiBvaWwgbGVha2luZyBhcm91bmQgdGhlIHBpc3Rv biByaW5ncyBhbmQgbWFraW5nIGl0IGludG8gdGhlIGZsdXggYW5kIHRoZQo+IGxpa2UuCj4KPiBJ dCBsb29rcyBsaWtlIHdpdGggdGhlIG5lYXItdGVybSBhZGRpdGlvbiBvZiBzb21lIGFkZGl0aW9u YWwgZXF1aXBtZW50Cj4gd2hpY2ggYWxzbyBuZWVkcyBzaG9wIGFpciwgSSdtIHJ1bm5pbmcgb3V0 IG9mIGNhcGFjaXR5IG9uIHRoaXMgdW5pdCwgc28KPiBJJ20gcHJvYmFibHkgaW4gdGhlIG1hcmtl dCBmb3IgYSBuZXcsIGhpZ2hlci1jYXBhY2l0eSBjb21wcmVzc29yLgo+IFVuZm9ydHVuYXRlbHks IGl0IGxvb2tzIGxpa2UgbXkgY2hvaWNlcyBhcmUgb2lsLCBvaWwgb3Igb2lsIGJhc2VkCj4gY29t cHJlc3NvcnMuLi4gwqB3aGljaCBsZWFkcyBtZSB0byBteSBxdWVzdGlvbi4KPgo+IEhvdyBiaWcg b2YgYSBwcm9ibGVtIGlzIHRoZSAnbGVha2FnZScgb2YgY29tcHJlc3NvciBvaWwgZm9yIHNob3Ag YWlyIGluCj4gZWxlY3Ryb25pYyBhc3NlbWJseT8gwqAgSXMgdGhlIG5vcm1hbCBvaWwgZmlsdGVy L3RyYXBzIGVub3VnaCB0byBwcmV2ZW50Cj4gbWFudWZhY3R1cmluZyBpc3N1ZXMgZ2VuZXJhbGx5 PyDCoE9yIGlzIHNvbWV0aGluZyBtb3JlIGV4dHJlbWUgbmVlZGVkPwo+IE9yIG9uIHRoZSBvdGhl ciBoYW5kIGlzIHRoaXMgbm90IGEgcHJvYmxlbSBhdCBhbGwsIGFuZCBJJ20ganVzdCBiZWluZwo+ IG92ZXJjYXV0aW91cz8KPgo+IENvbXByZXNzb3IgcmVjb21tZW5kYXRpb25zIGluIHRoZSBvdmVy IDUuNENGTSByZWFsbSB3b3VsZCBhbHNvIGJlIHVzZWZ1bC4KPgo+IC1mb3JyZXN0Cj4gLS0KPiBo dHRwOi8vd3d3LnBpY2xpc3QuY29tIFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKPiBWaWV3L2No YW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBhdAo+IGh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUv bWFpbG1hbi9saXN0aW5mby9waWNsaXN0Cj4KCgpBIHNlcGFyYXRvciAvIHRyYXAgZm9sbG93ZWQg YnkgYSBmaWx0ZXIgZm9sbG93ZWQgYnkgZGVzaWNjYW50IGZpbHRlcnMKc2hvdWxkIGdpdmUgeW91 IG5pY2UgY2xlYW4gZHJ5IGFpciB0byBkZWFsIHdpdGguIFRoZSB0cmFwIGFuZCBmaWx0ZXIKd2ls bCBnZXQgcmlkIG9mIGFueSBvaWwgYW5kIHRoZSBkZXNpY2NhbnQgd2lsbCBnZXQgcmlkIG9mIGFu eSB3YXRlcgphbmQgcmVzaWR1YWwgb2lsIHNob3VsZCBzb21lICBnZXQgdGhyb3VnaC4KCi0tIApN YXJ0aW4gSy4KCi0tIApodHRwOi8vd3d3LnBpY2xpc3QuY29tIFBJQy9TWCBGQVEgJiBsaXN0IGFy Y2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21haWxt YW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QK .