SGkgRGFuLAoKVGh4IGZvciB0aGUgZGV0YWlscyEKCnRoZSBvdGhlciBkYXkgSSB0aG91Z2h0IG9m IGEgZGlmZmVyZW50IHNvbHV0aW9uIHRoYXQgd29ya3MgZm9yIG1lIDogZm9yIG5vdwp3aGVuZXZl ciB0aGF0IG9mZmlpY2UzNjUgR2VvRE5TIGp1bmsgaXMgbm90IHdvcmtpbmcsIGkganVzdCBwb2lu dCBhIHdvcmtpbmcKc2VydmVyIHRvIG91dGxvb2sub2ZmaWNlMzY1LmNvbSBkaXJlY3RseSBpbiAv ZXRjL2hvc3RzIHNvIHRoYXQgd2F5IGkgZG9uJ3QKaGF2ZSB0byBjaGFuZ2UgYW55dGhpbmcgaW4g dGhlIEtNYWlsIC8gQWtvbmFkaSBjb25maWcgYW5kIGl0IGFsd2F5cyB0aGlua3MKaXQgaXMgdGFs a2luZyB0byB0aGUgc2FtZSBob3N0bmFtZS4KCm5vdCBhIHZlcnkgaGlwIHNvbHV0aW9uIGJ1dCBp dCAjd29ya3Nmb3JtZS4KCgpDaGVlcnMhClJvbWFpbi4KCgpPbiAxNiBPY3RvYmVyIDIwMTUgYXQg MTY6NDcsIERhbmllbCBWcsOhdGlsIDxkdnJhdGlsQGtkZS5vcmc+IHdyb3RlOgoKPiBPbiDEjXR2 cnRlayAxNS4gxZnDrWpuYSAyMDE1IDIwOjU3OjA4IENFU1QgUm9tYWluIHdyb3RlOgo+ID4gSGks Cj4gPgo+ID4gVGh4IGZvciBnZXR0aW5nIGJhY2shCj4gPgo+ID4gV291bGQgaXQgbWFrZSBzZW5z ZSB0byBoYXZlIGEgZGlhbG9nIHRoYXQgcG9wcyB1cCB3aGVuIHRoZSB1c2VyIGlzCj4gY2hhbmdp bmcKPiA+IHRoZSBVUkwsIGFza2luZyBpZiB0aGF0J3MgcG9pbnRpbmcgdG8gdGhlIGV4YWN0IHNh bWUgZGF0YSA/Cj4gPiBUaGF0IHdvdWxkIGFsbG93IHRvIHNvbHZlIHRoaXMgdXNlIGNhc2Ugd2l0 aG91dCBoYXZpbmcgdG8gdGhyb3cKPiBldmVyeXRoaW5nCj4gPiBhd2F5LCBhbmQgdGhlIHVzZXIg Y2FuIHJlbGlhYmx5IGRlY2lkZSB3aGF0IHRvIGRvLgo+Cj4gVXNlcnMgdGVuZCB0byBvdXQtc21h cnQgYXBwbGljYXRpb25zIHRoaW5raW5nIHRoZXkga25vdyBiZXR0ZXIgYW5kIHRoZW4KPiBib29v bQo+IDopIEFsc28gdXNlcnMgbWlnaHQgbm90IGJlIGF3YXJlIG9mIHNvbWUgdGVjaG5pY2FsIGRl dGFpbHMsIGxpa2UgdGhlIG5ldwo+IFVSTAo+IGFjdHVhbGx5IGJlaW5nIGEgZGlmZmVyZW50IHNl cnZlciB3aXRoIGRpZmZlcmVudCBjb25maWd1cmF0aW9uIG9ubHkKPiBydW5uaW5nIG9uCj4gdG9w IG9mIHRoZSBzYW1lIGRhdGEgZXRjLiBXZSBjYW5ub3QgZXhwZWN0IG91ciB1c2VycyB0byBoYXZl IGVub3VnaAo+IGtub3dsZWRnZQo+IGFib3V0IHRoZSB1bmRlcmx5aW5nIGluZnJhc3RydWN0dXJl LCBJTUFQIGFuZCBBa29uYWRpIGltcGxlbWVudGF0aW9uIHRvIGJlCj4gYWJsZSB0byBjb3JyZWN0 bHkganVkZ2UgdGhlIHNpdHVhdGlvbi4KPgo+ID4gVG8gbWUgaXQgc2VlbXMgdGhhdCBhIHVzZXIg Y2hhbmdpbmcgYSBVUkwgbGlrZWx5IG1lYW5zIGl0J3MgdGhlIHNhbWUKPiBkYXRhLAo+ID4gb3Ro ZXJ3aXNlIGhlIG9yIHNoZSB3b3VsZCBjcmVhdGUgYSBkaWZmZXJlbnQgYWNjb3VudC9yZXNvdXJj ZS4KPgo+IEkgdGhpbmsgdGhhdCBjaGFuZ2luZyBVUkwgdG8gYW5vdGhlciBvbmUgdGhhdCBwb2lu dHMgdG8gdGhlIGV4YWN0bHkgc2FtZQo+IHNlcnZlciBpcyBhIHZlcnkgcmFyZSBjYXNlLiBNb3Jl IHR5cGljYWwgc2l0dWF0aW9uIGlzIHRoYXQgdGhlIGNvbXBhbnkKPiBtaWdyYXRlcyBmcm9tIG1h aWwgc29sdXRpb24gQSB0byBtYWlsIHNvbHV0aW9uIEIsIHRlbGxpbmcgdGhlaXIgZW1wbG95ZWVz Cj4gdGhhdAo+ICJ3ZSBtaWdyYXRlZCBmcm9tIEEgdG8gQiwgbm93IEIgaGFzIGFsbCB5b3VyIGVt YWlscyB0aGF0IHlvdSB1c2VkIHRvIGhhdmUKPiBvbgo+IEEsIGV4Y2VwdCBmb3IgbmV3IGVtYWls cyB3b24ndCBiZSBkZWxpdmVyIHRvIEEgYW55bW9yZS4gUGxlYXNlIGFkanVzdCB5b3VyCj4gZW1h aWwgY2xpZW50cy4iLiBUZWNobmljYWxseSwgQiBoYXMgdGhlIHNhbWUgZGF0YSBhcyBBLCBidXQg aXQgaXMgYW4KPiBpbXBvcnQsCj4gc28gdGhlIGVtYWlscyB3aWxsIGhhdmUgZGlmZmVyZW50IFVJ RHMuCj4KPiBJbiBmYWN0LCB3ZSB3b3VsZCBkZXRlY3QgdGhpcyBwYXJ0aWN1bGFyIGNhc2UganVz dCBmaW5lIGJlY2F1c2UKPiBVSURWQUxJRElUWSBvZgo+IGFsbCBmb2xkZXJzIHdvdWxkIGNoYW5n ZSwgY2F1c2luZyB0aGUgSU1BUCByZXNvdXJjZSB0byByZS1zeW5jIGFsbCBmb2xkZXJzCj4gZnJv bSBzY3JhdGNoLiBXaGljaCBicmluZ3MgYXMgYmFjayB0byBzdGFydDogaWYgY2hhbmdpbmcgVVJM IGZvcmNlcyBmdWxsCj4gcmVzeW5jIGluIGFsbW9zdCBhbGwgY2FzZXMsIHdoeSBldmVuIHN1cHBv cnQgaXQgd2l0aGluIHRoZSByZXNvdXJjZSwgYW5kCj4gbm90Cj4gZm9yY2UgdXNlcnMgdG8gY3Jl YXRlIGEgbmV3IHJlc291cmNlLgo+Cj4KPiBEYW4KPgo+ID4KPiA+IFdoYXQgZG8geW91IHRoaW5r ID8KPgo+ID4gQ2hlZXJzLAo+ID4gUm9tYWluLgo+ID4KPiA+IE9uIDE0IE9jdG9iZXIgMjAxNSBh dCAxMTowNSwgRGFuaWVsIFZyw6F0aWwgPGR2cmF0aWxAa2RlLm9yZz4gd3JvdGU6Cj4gPiA+IE9u IE1vbmRheSwgT2N0b2JlciA1LCAyMDE1IDEwOjI1OjA3IEFNIENFU1QgUm9tYWluIHdyb3RlOgo+ ID4gPiA+IEhpLAo+ID4gPgo+ID4gPiBIaSwKPiA+ID4KPiA+ID4gPiBJJ3ZlIGJlZW4gaGl0IHdp dGggYSB3ZWlyZCBpc3N1ZSB0aGlzIG1vcm5pbmcgOiBteSBjb21wYW55IG1hZGUgdGhlCj4gPiA+ ID4gJ3VuZm9ydHVuYXRlJyBjaG9pY2UgYSBmZXcgeWVhcnMgYWdvIHRvIHN3aXRjaCBmcm9tIEdt YWlsIHRvCj4gPiA+ID4gT2ZmaWNlMzY1Li4uCj4gPiA+ID4gdGhpcyBtb3JuaW5nIHRoZXJlIHdl cmUgc29tZSBETlMgcmVzb2x1dGlvbiBpc3N1ZXMgd2l0aAo+ID4gPiA+IG91dGxvb2sub2ZmaWNl MzY1LmNvbSBub3QgcmVzcG9uZGluZy4KPiA+ID4gPiBJIG5vdGljZWQgb3V0bG9vay1lbWVhc291 dGgub2ZmaWNlMzY1LmNvbSB3YXMgd29ya2luZyBtdWNoIGJldHRlci4gSQo+ID4gPiA+IGNoYW5n ZWQgdGhlIHNlcnZlciBhZGRyZXNzIGluIHRoZSBLTWFpbCAvIGFrb25hZGkgSU1BUCByZXNvdXJj ZQo+IGNvbmZpZwo+ID4gPgo+ID4gPiBidXQKPiA+ID4KPiA+ID4gPiBpdCBzZWVtcyBrbWFpbCBk aWQgbm90IGxpa2UgdGhpcyBhdCBhbGwuIHRoZSByZXNvdXJjZSB3YXMgc3RpbGwKPiB0aGVyZSBp bgo+ID4gPiA+IHRoZSBha29uYWRpIGNvbnNvbGUgYnV0IEtNYWlsIGRpZCBub3Qgc2hvdyBpdCBh bmQgY291bGQgbm90Cj4gYWNjZXNzL3ZpZXcKPiA+ID4KPiA+ID4gYW55Cj4gPiA+Cj4gPiA+ID4g bWFpbHMgZnJvbSBLTWFpbC4gRXZlbiByZXZlcnRpbmcgdG8gb3V0bG9vay5vZmZpY2UzNjUuY29t LAo+IHJlYm9vdGluZywKPiA+ID4gPiBldGMuLi4gZGlkIG5vdCB3b3JrIGVpdGhlci4KPiA+ID4g Pgo+ID4gPiA+IEkgdGhlcmVmb3JlIGhhZCB0byByZW1vdmUgdGhlIHJlc291cmNlIGVudGlyZWx5 IGFuZCBub3cgaXQncyBkb2luZyBhCj4gbmV3Cj4gPiA+ID4gZnVsbCBzeW5jIGZyb20gIHRoZSBz ZXJ2ZXIsIHdoaWNoIGlzIGFubm95aW5nIGJlY2F1c2UgaXQgY29udGFpbnMKPiA+ID4KPiA+ID4g dGhvdXNhbmRzCj4gPiA+Cj4gPiA+ID4gYW5kIHRob3VzYW5kcyBvZiBlbWFpbHMgZnJvbSB3YXkg YmFjaywgYnV0IGl0J3MgZG9uZSBpdCBpbiB0aGUgcGFzdAo+ID4gPgo+ID4gPiB3aXRob3V0Cj4g PiA+Cj4gPiA+ID4gcHJvYmxlbXMgc28gaSdsbCBsZXQgaXQgY29tcGxldGUuCj4gPiA+ID4KPiA+ ID4gPiBBcmUgeW91IGF3YXJlIG9mIHRoaXMgYmVoYXZpb3VyID8gaXMgaXQgImFsbG93ZWQiIC8g ZXhwZWN0ZWQgdG8gYmUKPiBhYmxlCj4gPiA+Cj4gPiA+IHRvCj4gPiA+Cj4gPiA+ID4gY2hhbmdl IHRoZSBJTUFQIHNlcnZlciBhZGRyZXNzID8gd29uZGVyaW5nIGlmIGFrb25hZGkgZG9lcyBub3Qg dXNlCj4gdGhlCj4gPiA+ID4gc2VydmVyIGFkZHJlc3MgYXMgYW4gaWRlbnRpZmllciBzb21ld2hl cmUgYW5kIHdvdWxkIGdldCBjb25mdXNlZCBpZgo+IGl0Cj4gPiA+Cj4gPiA+IGdldHMKPiA+ID4K PiA+ID4gPiBjaGFuZ2VkLgo+ID4gPgo+ID4gPiBOb3JtYWxseSBjaGFuZ2luZyB0aGUgc2VydmVy IFVSTCBzaG91bGQgZm9yY2UgdGhlIHRoZSBJTUFQIHJlc291cmNlIHRvCj4gPiA+IHRocm93Cj4g PiA+IGF3YXkgYWxsIGNhY2hlZCBkYXRhIGFuZCBzeW5jIGV2ZXJ5dGhpbmcgYWdhaW4gKHNvIHlv dSB3b3VsZCBub3QgYXZvaWQKPiBpdAo+ID4gPiBhbnl3YXkpLCBzaW1wbHkgYmVjYXVzZSB0aGVy ZSdzIG5vIDEwMCUgcmVsaWFibGUgd2F5IGZvciB1cyB0byBrbm93Cj4gPiA+IHdoZXRoZXIKPiA+ ID4gdGhlIG5ldyBVUkwgcG9pbnRzIHRvIHRoZSBzYW1lIHNlcnZlciBhbmQgYWNjb3VudCBhcyB0 aGUgb2xkIG9uZSAoYW5kCj4geWVzLAo+ID4gPiB3ZQo+ID4gPiBhbHNvIHVzZSB0aGUgVVJMIGFz IHBhcnQgb2YgcmVtb3RlIGlkZW50aWZpZXJzKS4KPiA+ID4KPiA+ID4gVGhlIGZhY3QgdGhhdCB0 aGUgcmVzb3VyY2UgZ290IHN0dWNrIGZvciB5b3UgaXMgdW5mb3J0dW5hdGUsIHRoaXMgaXMKPiBu b3QKPiA+ID4gdmVyeQo+ID4gPiB3aWRlbHkgdGVzdGVkIGZlYXR1cmUgOi0pIEkgdHJpZWQgd2l0 aCBteSBLb2xhYiAoYmVjYXVzZSB0aGF0J3MgdGhlCj4gb25seQo+ID4gPiBzZXJ2ZXIgdGhhdCBJ IGNhbiBhY2Nlc3MgZnJvbSBtdWx0aXBsZSBVUkxzKSBhbmQgaXQgaW5kZWVkIGdvdCBzdHVjawo+ IGFmdGVyCj4gPiA+IGNoYW5naW5nIHNlcnZlciBVUkwsIGJ1dCBhZnRlciByZXN0YXJ0aW5nIEFr b25hZGkgaXQgc3luY2VkIGNvcnJlY3RseS4KPiA+ID4KPiA+ID4gVGhpbmtpbmcgYWJvdXQgaXQs IGl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8gZGlzYWxsb3cgY2hhbmdpbmcgdGhlIFVSTCBhbmQKPiA+ ID4gdXNlcgo+ID4gPiBuYW1lIGluIHRoZSBJTUFQIHJlc291cmNlIG9uY2UgaXQncyBjb25maWd1 cmVkLCBmb3JjaW5nIHBlb3BsZSB0bwo+IHJlbW92ZQo+ID4gPiB0aGUKPiA+ID4gSU1BUCByZXNv dXJjZSBhbmQgY3JlYXRlIGEgbmV3IG9uZSBpZiB0aGV5IHdhbnQgdG8gY2hhbmdlIHRoZSBzZXJ2 ZXIKPiA+ID4gYW5kL29yCj4gPiA+IHVzZXJuYW1lLCBiZWNhdXNlIHRoZXkgd2lsbCBuZWVkIHRv IHN5bmMgYWxsIHRoZWlyIG1haWwgZnJvbSBzY3JhdGNoCj4gPiA+IGFueXdheQo+ID4gPiBhbmQg d2Uga25vdyB0aGF0IHRoaXMgd2F5IGl0IHdvcmtzIHJhdGhlciByZWxpYWJseS4KPiA+ID4KPiA+ ID4gRGFuCj4gPiA+Cj4gPiA+ID4gVGhhbmtzIGZvciBsZXR0aW5nIG1lIGtub3chCj4gPiA+ID4g Q2hlZXJzLAo+ID4gPiA+IFJvbWFpbi4KPiA+ID4KPiA+ID4gLS0KPiA+ID4gRGFuaWVsIFZyw6F0 aWwKPiA+ID4gRW1haWw6IGR2cmF0aWxAa2RlLm9yZwo+ID4gPiBKYWJiZXI6IGRhbi52cmF0aWxA a2RldGFsay5uZXQKPiA+ID4gSVJDOiBkdnJhdGlsIG9uIEZyZWVub2RlICgja2RlLCAja29udGFj dCwgI2Frb25hZGkpCj4KPiAtLQo+IERhbmllbCBWcsOhdGlsCj4gd3d3LmR2cmF0aWwuY3ogfCBk dnJhdGlsQGtkZS5vcmcKPiBJUkM6IGR2cmF0aWwgb24gRnJlZW5vZGUgKCNrZGUsICNrb250YWN0 LCAjYWtvbmFkaSwgI2ZlZG9yYS1rZGUpCj4KPiBHUEcgS2V5OiAweDRENjk1NTdBRUNCMTM2ODMK PiBGaW5nZXJwcmludDogMEFCRCBGQTU1IEE0RTYgQkVBOSA5QTgzIEVBOTcgNEQ2OSA1NTdBIEVD QjEgMzY4MwoKCgoKLS0gClJvbWFpbi4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KS0RFIFBJTSBtYWlsaW5nIGxpc3Qga2RlLXBpbUBrZGUub3JnCmh0dHBz Oi8vbWFpbC5rZGUub3JnL21haWxtYW4vbGlzdGluZm8va2RlLXBpbQpLREUgUElNIGhvbWUgcGFn ZSBhdCBodHRwOi8vcGltLmtkZS5vcmcv