VGhhbmsgeW91IGFsbCBmb3IgeW91ciByZXNwb25zZXMuCkkgZXNwZWNpYWxseSBhcHByZWNpYXRl IHRoYXQgdGhlIHJlc3BvbnNlcyB3ZXJlIGNhcmVmdWxseSBjb25zaWRlcmVkLgoKV2hpbGUgUGlj TGlzdCBtYXkgbm90IGJlIHRoZSBiZXN0IHBsYWNlIHRvIGFzayBzdWNoIHF1ZXN0aW9ucywgIHRo ZXJlIGFyZQpmZXcgcGxhY2VzIGZyb20gd2hlcmUgSSB3b3VsZCBiZXR0ZXIgdHJ1c3QgdGhlIHJl c3BvbnNlLgoKSSdsbCBzd2l0Y2ggYmFjayB0byBsdXJraW5nIG1vZGUsIGJ1dCB3aWxsIGdsYWRs eSBqdW1wIGluIGlmIGEgcXVlc3Rpb24KbWF0Y2hlcyBvbmUgb2YgbXkgZmllbGRzIG9mIGV4cGVy aWVuY2UuCgpMeWxlCgpPbiBNb24sIE1heSAyNywgMjAxOSwgNDoyNSBQTSBSaWNoYXJkIFByb3Nz ZXIgPHJocHJvc3NlckBnbWFpbC5jb20+IHdyb3RlOgoKPiBPVE9IIHRoZXkgbWF5IGp1c3QgYmUg YW4gKGFsbW9zdCA/KSBpbm5vY2VudCB2aWN0aW0gb2YgcmhldG9yaWMgJgo+IHN1cHBvc2l0aW9u LiAgIFByb29mIG9mIGJhZCBiZWhhdmlvdXIgc2VlbXMgdG8gYmUgc2VyaW91c2x5IGxhY2tpbmcg YW5kLAo+IGdpdmVuIHRoZSBwdWJsaWNpdHkgaW52b2x2ZWQsIGlmIHRoZXJlIHdhcyBkaXJlY3Qg ZXZpZGVuY2UgdGhlbiBJJ2QgaGF2ZQo+IHRob3VnaHQgaXQgd291bGQgYmUgd2VsbCBwdWJsaWNp c2VkLgo+IE90aGVyIHN1cHBsaWVycyBvZiBuZXR3b3JrIGVxdWlwbWVudCBoYXZlIGJlZW4gY2F1 Z2h0IG91dCBkb2luZyBzaW1pbGFyCj4gdGhpbmdzIGZvciB0aGVpciBnb3Zlcm5tZW50cyBidXQg Li4uLgo+Cj4gUHJvYmFibHkgYSB0b3BpYyBiZXN0IHN0YXllZCBhd2F5IGZyb20gb24gdGhpcyBm b3J1bS4KPiBSUAo+Cj4gT24gVHVlLCAyOCBNYXkgMjAxOSBhdCAwNzozNSwgSmVmZiBTaGVsZG9u IDxqZWZmc2hlbGRvbkBnbWFpbC5jb20+IHdyb3RlOgo+Cj4gPiBJdCBoZWxwcyB0byBmb2xsb3cg SHVhd2VpIG5ld3Mgb3ZlciBhIGxvbmcgcGVyaW9kLiBTb21lIG9mIHRoZSBwdWJsaWMKPiA+IGRl dGFpbHMgaGF2ZSBlbWVyZ2VkIHRocm91Z2ggdGhlaXIgYWN0aW9ucyBpbiBBZnJpY2EsIGluIFBv bGFuZCBhbmQKPiBFYXN0ZXJuCj4gPiBFdXJvcGUsIGFuZCB3aXRoIHRlY2hub2xvZ2llcyByZWxh dGVkIHRvIHNhdGVsbGl0ZSBhbmQgc3VibWFyaW5lIGNhYmxpbmcuCj4gPiBTb21lIG9mIHRob3Nl IHRpZXMgaGF2ZSBiZWVuIGV4cG9zZWQgdGhyb3VnaCB0aGVpciBvd24gZ29vZi11cHMgYW5kCj4g V2VzdGVybgo+ID4gbW9uaXRvcmluZyBvZiBzdXBwbHkgY2hhaW4gYW5kIG5ldHdvcmsgYWN0aXZp dHkuICBUaGlzIGNhbiBleHBhbmQgaW50byBhCj4gPiBtdWNoIGxhcmdlciBjb252ZXJzYXRpb24s IGJ1dCBiZWNhdXNlIHRoZSBwdWJsaWMgb25seSBnZXRzIGJpdHMgYW5kCj4gcGllY2VzLAo+ID4g bXVjaCB3aWxsIGJlIGxhYmVsZWQgYXMgc3BlY3VsYXRpb24gKGJlY2F1c2UgcGVvcGxlIHRoZXNl IGRheXMgbGlrZSB0bwo+ID4gcHJldGVuZCB0aGV5IGNhbiBkZWR1Y2UgYmV0dGVyIHRoYW4gZXZl cnlvbmUgZWxzZSkuCj4gPgo+ID4gQXQgdGhpcyBwb2ludCwgbW9zdCB3ZXN0ZXJuIHBvd2VycyBk b27igJl0IGxpa2UgdGhlIGNsYWltcyB0aGF0IGV2ZW4gc29tZQo+ID4gSHVhd2VpIHRlY2hub2xv Z2llcyBhcmUgc2FmZSB0byB1c2Ug4oCcYmVjYXVzZSB4LCB5LCBhbmQgeuKAnS4gIFRoZWlyCj4g ZXF1aXBtZW50Cj4gPiBwcmV0dHkgbXVjaCBhbnl3aGVyZSBpbiB0aGUgbGluayBvZiBjb21tcyBh Y3Rpdml0eSBhbGxvd3MgZm9yIGFkZGl0aW9uYWwKPiA+IGVxdWlwbWVudCBhbmQgZGF0YSBtYXNz YWdpbmcgd2hpY2ggY2FuIHJlc3VsdCBpbiBnYXRoZXJlZCBpbnRlbGxpZ2VuY2Ugb2YKPiA+IHNv bWUgbmF0dXJlLiBQbHVzLCBhIGZvb3QgaW4gdGhlIGRvb3IgYWx3YXlzIGtlZXBzIHRoZW0gb24g dGhlIHRhYmxlIGZvcgo+ID4gYmlnZ2VyIHByb2plY3RzIHRoYXQgbWlnaHQgbm90IGJlIHdpZGVs eSByZWNvZ25pemVkIGJlZm9yZSBkZWFscyBhcmUKPiBtYWRlLgo+ID4KPiA+Cj4gPiAtSmVmZgo+ ID4KPiA+ID4gT24gTWF5IDI3LCAyMDE5LCBhdCAwNTo0NywgTHlsZSBIYXplbHdvb2QgPGx5bGVo YXplQGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+Cj4gPiA+IEdyZWV0aW5ncyBhbGwsCj4gPiA+Cj4g PiA+IE5vdGFibHkgW09UXSwgYW5kIGhvcGVmdWxseSBhdm9pZGluZyBhbnkgcG9saXRpY2FsLgo+ ID4gPgo+ID4gPiBIdWF3ZWkgaGFzIGJlZW4gYmFubmVkIGZyb20gZG9pbmcgYnVzaW5lc3MgaW4g dGhlIFUuUy4uIEZyb20gaGVyZSwgSQo+ID4gPiBjYW4gZmluZCBvbmx5IHBlcmlwaGVyYWwgcmVh c29ucyB3aHkgdGhpcyBtaWdodCBoYXZlIGhhcHBlbmVkLCBidXQgbm8KPiA+ID4gaGFyZCBjYXVz ZS4KPiA+ID4KPiA+ID4gSSB3YXMgc3VycHJpc2VkIHRvIGZpbmQgdGhlbSB0aGUgc2Vjb25kIGxh cmdlc3QgY2VsbCBwaG9uZSBtYWtlci4KPiA+ID4KPiA+ID4gSSdkIGxpa2UgdG8gdGhpbmsgc29t ZXRoaW5nIGFzIGJpZyBhcyB0aGlzIHdvdWxkIHJlcXVpcmUgc29tZQo+ID4gPiBldmlkZW5jZSwg YnV0IGFsbCBJIGNhbiBmaW5kIGhlcmUgaXMgc3VzcGljaW9uIGFib3V0IHRoZWlyICJ0aWVzIHRv Cj4gPiA+IHRoZSBDaGluZXNlIGdvdmVybm1lbnQiLi4KPiA+ID4KPiA+ID4gU2FkbHksIEknbSBp biBhIGNvdW50cnkgd2hlcmUgYWNjdXJhdGUgaW5mb3JtYXRpb24gaXMgZ2V0dGluZyBoYXJkZXIK PiA+ID4gdG8gZmluZC4gQXJlIHRoZXkgcmVhbGx5IGFzIHNjYXJ5IGFzIG91ciBjdXJyZW50IGdv dmVybm1lbnQgd2FudHMgdXMKPiA+ID4gdG8gYmVsaWV2ZT8KPiA+ID4KPiA+ID4gVGhhbmtzLAo+ ID4gPiBMeWxlCj4gPiA+IC0tCj4gPiA+IGh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9w aWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKPiA+ID4gVmlldy9jaGFuZ2UgeW91ciBt ZW1iZXJzaGlwIG9wdGlvbnMgYXQKPiA+ID4gaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFu L2xpc3RpbmZvL3BpY2xpc3QKPiA+Cj4gPiAtLQo+ID4gaHR0cDovL3d3dy5waWNsaXN0LmNvbS90 ZWNocmVmL3BpY2xpc3QgUElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQo+ID4gVmlldy9jaGFuZ2Ug eW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKPiA+IGh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFp bG1hbi9saXN0aW5mby9waWNsaXN0Cj4gPgo+IC0tCj4gaHR0cDovL3d3dy5waWNsaXN0LmNvbS90 ZWNocmVmL3BpY2xpc3QgUElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQo+IFZpZXcvY2hhbmdlIHlv dXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0Cj4gaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFu L2xpc3RpbmZvL3BpY2xpc3QKPgotLSAKaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVmL3Bp Y2xpc3QgUElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQpWaWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNo aXAgb3B0aW9ucyBhdApodHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4vbGlzdGluZm8vcGlj bGlzdAo= .