RG8gdGhlIHN0aXJyaW5nIHZhbmVzIHJlYWxseSBleHRlbmQgYWxsIHRoZSB3YXkgdG8gdGhlIGlu bmVyIHdhbGwgb2YgdGhlCnZlc3NlbCwgb3ZlciB0aGUgZW50aXJlIGhlaWdodCBvZiB0aGUgdmVz c2VsPyBJIGZpbmQgaXQgaGFyZCB0byBiZWxpZXZlCnRoYXQgeW91IGNvdWxkbid0IGhhdmUgYSB0 ZW1wIHNlbnNvciBtb3VudGVkIHRocm91Z2ggdGhlIHZlc3NlbCB3YWxsIHdoaWNoCnN0aWNrcyBv dXQgYSBmZXcgbWlsbGltZXRlcnMgaW50byB0aGUgZmx1aWQuCgpPbiBNYXIgMjMsIDIwMTggMTA6 MTEgUE0sICJLIFMiIDxrcmVzaG9AZ21haWwuY29tPiB3cm90ZToKCj4gID4gU2xpcCByaW5ncyB3 b3VsZCBiZSB2ZXJ5IG5vaXN5IHRob3VnaC4geW91IGNvdWxkIGNyZWF0ZSBhIGJvYXJkIHRoYXQK PiBzcGlucyB3aXRoIHRoZSBzaGFmdCAoYWZ0ZXIgdGhlIHNsaXAgcmluZ3MpIHRvIGNvbnZlcnQg dGhlIHRlbXBlcmF0dXJlIHRvCj4gZGlnaXRhbCBzaWduYWwKPgo+IFRoaW5raW5nIGZ1cnRoZXIg YWJvdXQgdGhpcywgYSBzaW5nbGUgYnJ1c2ggYXJyYW5nZW1lbnQgY291bGQgcHJvYmFibHkgZG8K PiBhcyB0aGUgc2hhZnQgaXRzZWxmIGNvdWxkIGJlIG9uZSBjb25kdWN0b3IuIFBvd2VyIGFuZCBk YXRhIG92ZXIgMSB3aXJlCj4gc2hvdWxkIGJlIGVhc3kuCj4KPiBOb3cgdG8gZmluZCBzb21ldGhp bmcgc3VpdGFibGUuCj4KPiBPbiBTYXQsIE1hciAyNCwgMjAxOCBhdCAxMjozNyBQTSwgSyBTIDxr cmVzaG9AZ21haWwuY29tPiB3cm90ZToKPgo+ID4gPiBTbGlwIHJpbmdzIHdvdWxkIGJlIHZlcnkg bm9pc3kgdGhvdWdoLiB5b3UgY291bGQgY3JlYXRlIGEgYm9hcmQgdGhhdAo+ID4gc3BpbnMgd2l0 aCB0aGUgc2hhZnQgKGFmdGVyIHRoZSBzbGlwIHJpbmdzKSB0byBjb252ZXJ0IHRoZSB0ZW1wZXJh dHVyZSB0bwo+ID4gZGlnaXRhbCBzaWduYWwKPiA+Cj4gPiBZZXMgdGhpcyBpcyBsb29raW5nIGxp a2UgYSByZWFsIHBvc3NpYmlsaXR5IGFuZCBwcmVmZXJyZWQgdG8gYSB3aXJlbGVzcwo+ID4gc29s dXRpb24gc2luY2UgaXQgZWxpbWluYXRlcyB0aGUgbmVlZCBmb3IgYmF0dGVyaWVzLgo+ID4KPiA+ Cj4gPiBPbiBTYXQsIE1hciAyNCwgMjAxOCBhdCAxMjoxMSBQTSwgSXNhYWMgTS4gQmF2YXJlc2Nv IDwKPiA+IGlzYWFjYmF2YXJlc2NvQGdtYWlsLmNvbT4gd3JvdGU6Cj4gPgo+ID4+IEVtIDIzLzAz LzIwMTggMjE6NDAsIEsgUyBlc2NyZXZldToKPiA+PiA+PiBJcyB5b3VyIG1peGluZyBwYWRkbGUn cyBzaGFmdCBob2xsb3c/IE9yIGNhbiB5b3UgbWFrZSBpdCBob2xsb3c/IElmCj4gPj4geWVzLAo+ ID4+ID4geW91IGNvdWxkIGluc2VydCBhIHRlbXBlcmF0dXJlIHByb2JlIGluc2lkZSB0aGUgc2hh ZnQuCj4gPj4gPgo+ID4+ID4gTm8gdGhlIHBhZGRsZSBzaGFmdCBpcyBub3QgaG9sbG93IHRob3Vn aCBJJ3ZlIGNvbnNpZGVyZWQgZ2V0dGluZyB0aGUKPiA+PiBjZW50cmUKPiA+PiA+IGRyaWxsZWQv bWFjaGluZWQgYW5kIGdvaW5nIGluc2lkZSBpdCwgYnV0IHRoZSB0b3AgZW5kIGlzIGNvdXBsZWQg dG8KPiB0aGUKPiA+PiA+IG1vdG9yIHNoYWZ0IGFuZCBJIGNhbid0IHNlZSBhIHdheSB0byBnZXQg YW55IGZpeGVkIHdpcmVzIGluIHRoZXJlLgo+ID4+Cj4gPj4gSWYgeW91IGNhbiBjaGFuZ2UgdGhl IG1vdG9yIGNvdXBsaW5nIHRvIHB1bGxleXMgYW5kIGJlbHQgdGhlbiBpdCB3b3VsZAo+ID4+IGJl IHBvc3NpYmxlIHRvIGhvbGxvdyBvdXQgdGhlIHNoYWZ0IGFuZCBoYXZlIGFjY2VzcyB0byBpdHMg YXhpYWwgdG9wIGVuZAo+ID4+IG9wZW5pbmcuCj4gPj4KPiA+PiA+IEkndmUgYWxzbyBjb25zaWRl cmVkIHNsaXAgcmluZ3MgYnV0IHdvdWxkIG5lZWQgc29tZXRoaW5nIHRoYXQgY2FuIHNsaXAKPiA+ PiBvdmVyCj4gPj4gPiBhbmQgZ3JpcCBvbnRvIHRoZSBwYWRkbGUgc2hhZnQgIChkaWEgfjI1bW0p LiBBbiBvcHRpb24gaXMgaGVyZToKPiA+PiA+Cj4gPj4gPiBodHRwczovL3d3dy5lY3Z2LmNvbS9w cm9kdWN0LzQxMjkwOTguaHRtbAo+ID4+ID4gaHR0cHM6Ly93d3cuZGhnYXRlLmNvbS9wcm9kdWN0 LzI1LTQtaW5uZXItaG9sZS10aHJvdWdoLWJvcmUtCj4gPj4gc2xpcC1yaW5nLXJvdGFyeS8xNjE3 MjYzNDUuaHRtbAo+ID4+ID4KPiA+PiA+IHRob3VnaCB0aGVzZSBzZWVtIHRvIGJlIGRpZmZpY3Vs dCB0byBvYnRhaW4gYW5kIEknbSB1bmVhc3kgYWJvdXQgdGhlaXIKPiA+PiA+IGxvbmdldml0eSBp biBzdWNoIGhhcnNoIGNvbmRpdGlvbnMuCj4gPj4KPiA+PiAyNSBtbSBpcyB0b3RhbGx5IGRvYWJs ZSB3aXRoIHNsaXAgcmluZ3MuIFNsaXAgcmluZ3Mgd291bGQgYmUgdmVyeSBub2lzeQo+ID4+IHRo b3VnaC4KPiA+PiB5b3UgY291bGQgY3JlYXRlIGEgYm9hcmQgdGhhdCBzcGlucyB3aXRoIHRoZSBz aGFmdCAoYWZ0ZXIgdGhlIHNsaXAKPiA+PiByaW5ncykgdG8gY29udmVydCB0aGUgdGVtcGVyYXR1 cmUgdG8gZGlnaXRhbCBzaWduYWwgYW5kIHNlbmQgdGhlCj4gPj4gZGlnaXRpemVkIHNpZ25hbCBi YWNrIHRocm91Z2ggdGhlIHNsaXAgcmluZ3MuIFRoZSBkaWdpdGl6ZWQgc2lnbmFsIGNhbgo+ID4+ IGJlIG1hZGUgcmVsaWFibGUgZW5vdWdoIHRvIHN1cnZpdmUgcGFzc2luZyB0aHJvdWdoIHRoZSBz bGlwIHJpbmdzLgo+ID4+Cj4gPj4gQWx0ZXJuYXRpdmVseSB5b3UgY291bGQgdXNlIHRoZSBzbGlw IHJpbmdzIG9ubHkgZm9yIHRoZSBwb3dlciBhbmQgc2VuZAo+ID4+IHRoZSBkYXRhIHRocm91Z2gg YW4gb3B0aWNhbCBjb3VwbGVyIHdpdGggYm90aCB0cmFuc21pdHRlciBhbmQgcmVjZWl2ZXIKPiA+ PiByb3RhdGluZyBpbmRlcGVuZGVudGx5Lgo+ID4+Cj4gPj4gRXZlbiB0aGUgcG93ZXIgY2FuIGJl IHRyYW5zbWl0dGVkIHRocm91Z2ggYSB0cmFuc2Zvcm1lciB3aXRoIHByaW1hcnkgYW5kCj4gPj4g c2Vjb25kYXJ5IHdpdGhvdXQgY29udGFjdC4gSXQgd291bGQgbm90IGJlIHZlcnkgZWZmaWNpZW50 IGJ1dCB0aGUgcG93ZXIKPiA+PiBuZWVkZWQgd291bGQgYmUgdmVyeSBsb3cuCj4gPj4KPiA+PiBD aGVlcnMsCj4gPj4gSXNhYWMKPiA+Pgo+ID4+Cj4gPj4gLS0tCj4gPj4gRXN0ZSBlbWFpbCBmb2kg ZXNjYW5lYWRvIHBlbG8gQXZhc3QgYW50aXbDrXJ1cy4KPiA+PiBodHRwczovL3d3dy5hdmFzdC5j b20vYW50aXZpcnVzCj4gPj4KPiA+Pgo+ID4+IC0tCj4gPj4gaHR0cDovL3d3dy5waWNsaXN0LmNv bS90ZWNocmVmL3BpY2xpc3QgUElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQo+ID4+IFZpZXcvY2hh bmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0Cj4gPj4gaHR0cDovL21haWxtYW4ubWl0LmVk dS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QKPiA+Pgo+ID4KPiA+Cj4gLS0KPiBodHRwOi8vd3d3 LnBpY2xpc3QuY29tL3RlY2hyZWYvcGljbGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlCj4g Vmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKPiBodHRwOi8vbWFpbG1hbi5t aXQuZWR1L21haWxtYW4vbGlzdGluZm8vcGljbGlzdAo+Ci0tIApodHRwOi8vd3d3LnBpY2xpc3Qu Y29tL3RlY2hyZWYvcGljbGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlClZpZXcvY2hhbmdl IHlvdXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0Cmh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFpbG1h bi9saXN0aW5mby9waWNsaXN0Cg== .