TG9yZW56IHZpYSBEbmcgLSAwNy4xMi4yMywgMDE6Mjc6MTMgQ0VUOgo+IFNvIGl0IHNlZW1zIGxv Z2ljYWwgdG8gbWUgYXQgdGhhdCBwb2ludCB0byBoYXZlIGVtYWNzIGFzIGEgdXNlciBzZXJ2aWNl Lgo+ID4gQnV0IGFzIG1lbnRpb25lZCBpbiAoNCkgdGhhdCBldmVuIGlmIGkgc2V0IHNlcGVyYXRl IHJ1bnN2ZGlyIHRvIHN0YXJ0Cj4gPiBmb3IgYSB1c2VyIHRoYXQgd291bGQgc3RhcnQgYmVmb3Jl IHRoZSB1c2VyIGxvZ2luLiBTbyBlbWFjcyBjb3VsZCBub3QKPiA+IHVzZWQgZm9yIGV4YW1wbGUg IFhER19SVU5USU1FX0RJUiB0byBjcmVhdGUgYSBwZXIgdXNlciBzb2NrZXQuCj4gPiAKPiA+IFNv IGlzIGl0IHRoYXQgcnVuaXQgZG9lcyBub3Qgc3VwcG9ydCB1c2VyIHNlcnZpY2VzICBpbiBhIG1v cmUKPiA+IGNvbXBsZXRlIGxldmVsIG9yIHRoZXJlIGlzIGEgd2F5IHRvIGhhdmUgdXNlciBzZXJ2 aWNlcyBzdGFydCBwZXIgdXNlcgo+ID4gbG9naW4gZXZlbnQgPwo+IFRoaXMgaXMgdHJ1ZSwgYW5k IEkgdGhpbmsgbm8gb3RoZXIgaW5pdCBzeXN0ZW0gaGFzIGFuIGZlYXR1cmUgZnVsbHkKPiBlcXVp dmFsZW50IHRvIHN5c3RlbWQgLS11c2VyLgoKVGhhdCBpcyBzb21ldGhpbmcgSSBoYWQgYSBnbyBh dCB3aXRoIG15IHVzZXItc2VydmljZXMgYXBwcm9hY2ggcXVpdGUgYSAKd2hpbGUgYWdvLiBIb3dl dmVyIEkgd2FzIG5vdCByZWFsbHkgZW50aXJlbHkgaGFwcHkgd2l0aCB0aGUgYXBwcm9hY2ggc28g SSAKZGlkIG5vdCBjb250aW51ZSBpdC4gSXQgd2FzIG9uIERldnVhbidzIEdpdGxhYiwgYnV0IEkg bm93IGp1c3QgdXBsb2FkZWQgaXQgCnRvIEdpdGVhOgoKaHR0cHM6Ly9naXQuZGV2dWFuLm9yZy9t YXJ0aW4vdXNlci1zZXJ2aWNlcwoKQW55d2F5LCBpdCB3b3JrZWQgd2VsbCBlbm91Z2ggZm9yIHJ1 bm5pbmcgUHVsc2VhdWRpbyBhbmQgUmVkc2hpZnQgYXQgdGhlIAp0aW1lIGl0IHdhcyBub3QgKHll dCkgcnVuIGF1dG9tYXRpY2FsbHkgb24gc3lzdGVtcyB3aXRoIG90aGVyIGluaXQgdGhhbiAKU3lz dGVtZCwgYXQgbGVhc3Qgbm90IHdpdGhpbiBhIEtERSBQbGFzbWEgc2Vzc2lvbi4KCj4gRm9yIG5v dyBJIHN1Z2dlc3QgeW91IHJlbHkgb24gc29tZXRoaW5nIGVsc2UgdG8gY3JlYXRlIHRoZSBsaW5r L2VuYWJsZQo+IHRoZSBuZXN0ZWQgdXNlci1ydW5zdmRpciBvbiB1c2VyIGxvZ2luIGFuZCByZW1v dmUgdGhlIGxpbmsgb24gdXNlcgo+IGxvZ291dC4gRm9yIGV4YW1wbGUgbWFueSBkZXNrdG9wIGhh dmUgc29tZSAic2Vzc2lvbiBjb25maWd1cmUgcGFuZWwiIHRvCj4gc2V0IGNvbXBvbmVudHMgdGhh dCBhcmUgYXV0b21hdGljYWxseSBzdGFydGVkIHdpdGggdGhlIGRlc2t0b3AgYXQKPiBsb2dpbjsg eW91IGNhbiBydW4gYSBzY3JpcHQgdGhhdCBjcmVhdGVzIHRoZSBsaW5rIGZyb20gdGhlcmUuCgpB Ym92ZSBhcHByb2FjaCBqdXN0IGhvb2tzIGludG8gUGxhc21hIGRlc2t0b3Agc3RhcnR1cCwgb3V0 cHV0IGZyb20gdGhlIAppbnN0YWxsIG9yIHVwZ3JhZGUgc2NyaXB0OgoKPiBLREUgUGxhc21hIGRl c2t0b3Agc2Vzc2lvbiBkZXRlY3RlZC4gSW5zdGFsbGluZyB1c2VyIHNlcnZpY2VzCj4gc3RhcnR1 cCBzY3JpcHQgdG8gJ34vLmNvbmZpZy9wbGFzbWEtd29ya3NwYWNlL2VudifigKYKClNvIGlmIHlv dSB1c2Ugc29tZXRoaW5nIGRpZmZlcmVudCB5b3UgbmVlZCB0byB1c2UgYSBkaWZmZXJlbnQgYXBw cm9hY2guIEkgCmJldCB3aGF0IHdvdWxkIGFsd2F5cyB3b3JrIGlzIHRvIHN0dWZmIGl0IGludG8g c29tZSBzaGVsbCBzdGFydHVwIGZpbGUgZm9yIAp0aGUgdXNlciBzZXNzaW9uIGxpa2UgJy5iYXNo cmMnIG9yICcuenNocmMnLiBJbiBjYXNlIHlvdSBsaWtlIHRvIHN0YXJ0IApzb21ldGhpbmcgdGhh dCBkZXBlbmRzIG9uIERCVVMgb3IgU1NIIGFnZW50IGZvciBleGFtcGxlIHlvdSBuZWVkIHRvIG1h a2UgCnN1cmUgdG8gYWRkIGl0IGFmdGVyIHRoZWlyIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUg c2V0IHVwLgoKPiBOb3Qgc3VyZSB0aGVyZSBpcyBhIHByb3BlciB3YXkgdG8gcnVuIGFuIGFjdGlv biBvbiBsb2dvdXQuLgo+IE5vbmUgb2YgdGhlIGFib3ZlIGxvb2tzIHNhdGlzZnlpbmcgdG8gbWUg YnV0IEknbSBhZnJhaWQgdGhlcmUgaXMgbm8KPiBiZXR0ZXIgd2F5IHJpZ2h0IG5vdy4KCkFib3Zl IHVzZXItc2VydmljZXMgYXBwcm9hY2ggd29ya2VkIHdlbGwgZW5vdWdoIGZvciBtZS4gSG93ZXZl cuKApiBJIHN0aWxsIApmZWx0IGl0IHdhcyBhIGJpdCBoYWNraXNoIGFuZCB3YXMgbm90IGVudGly ZWx5IHNhdGlzZmllZCB3aXRoIGl0IChzZWUgCmJlbG93KS4gQXQgdGhlIG1vbWVudCBJIGRvIG5v dCBuZWVkIGl0LCBhcyBQdWxzZWF1ZGlvIG5vd2FkYXlzIGlzIHN0YXJ0ZWQgCmF1dG9tYXRpY2Fs bHkuIEFsc28gdGhlIGZ1bmN0aW9uYWxpdHkgb2YgcmVkc2hpZnQgaXMgaW50ZWdyYXRlZCBpbiBQ bGFzbWEgCm5vd2FkYXlzLgoKQnV0IGFueXdheSwgbWF5YmUgaXQgaXMgYW4gYXBwcm9hY2ggdGhh dCBjYW4gd29yayBmb3IgeW91LCBBbGV4YW5kcm9zLiBJdCAKZXZlbiBoYWQgc29tZSBwcmltaXRp dmUgc2hlbGwgc2NyaXB0ZWQgdXNhYmlsaXR5IGJvaWxlcnBsYXRlIGFzIGV4cGxhaW5lZCAKaW4g dGhlIG1hcmtkb3duIGRvY3VtZW50YXRpb24uCiAKPiBBcyBhIHNpZGUgbm90ZToKPiAqIEkgZG9u J3QgYmVsaWV2ZSB0aGlzIGZlYXR1cmUgYmVsb25ncyB0byBhbiBpbml0IHN5c3RlbSwgYnV0IGl0 IHdvdWxkCj4gYmUgYmV0dGVyIHRvIGJlIGltcGxlbWVudGVkIGFzIGEgc2V0IG9mIGluaXQgaW5k ZXBlbmRlbnQgc2VydmljZXMgdGhhdCAKPiBjYW4gYmUgcnVuIGJ5IGFueSBpbml0IHRoYXQgaXMg Y2FwYWJsZSBvZiBzb21ldGluZyBsaWtlIHJ1bml0J3MgbmVzdGVkIAo+IHJ1bnN2ZGlyCgpBIGtp bmQgb2YgYSB3cmFwcGVyIGZvciBSdW5pdCBhbmQgcHJvYmFiYWx5IG90aGVyIHNlcnZpY2Ugc3Vw ZXJ2aXNvcnMgbGlrZSAKUzY/IEkgdGhvdWdodCBhYm91dCBtYWtpbmcgdXNlci1zZXJ2aWNlcyBn ZW5lcmljIGF0IHNvbWUgdGltZSwgYnV0IGFzIEkgCndhcyBub3QgZW50aXJlbHkgY29udmluY2Vk IGJ5IHRoZSBhcHByb2FjaCBhbmQgdGhlcmUgaGFzIGJlZW4gb3RoZXIgc3R1ZmYgCmdvaW5nIG9u IEkgZGlkIG5vdCBmb2xsb3cgdXAgb24gaXQuIEhlcmUgd2FzIHdoYXQgSSB0aG91Z2h0IGJhY2sg dGhlbjoKCk9uIHRoZSBvdGhlciBoYW5kIEkgdGhvdWdodCBob3cgY29vbCB3b3VsZCBpdCBiZSBo YXZpbmcgcnVuaXQncyBzdiBjb21tYW5kIAp3b3JrIGp1c3QgbGlrZSBpdCBkb2VzIHdpdGggcnVu aXQgc3lzdGVtIHNlcnZpY2VzLiBDb25mdXNlZCBhYm91dCB3aGljaCAKd2hpY2ggYXBwcm9hY2gg dG8gY2hvb3NlIEkgc3RvcHBlZCB3b3JraW5nIGF0IHVzZXItc2VydmljZXMuIEFjY29yZGluZyB0 byAKeW91ciBmZWVkYmFjayBoYXZpbmcgYW4gb3duIGNvbW1hbmQgZm9yIHVzZXIgc2VydmljZXMg dGhhdCBjYW4gaG9vayBpbnRvIApkaWZmZXJlbnQgc2VydmljZSBzdXBlcnZpc29ycyB3b3VsZCBi ZSB0aGUgYXBwcm9hY2ggdG8gY2hvb3NlLiBBbmQgCmNvbnNpZGVyaW5nIGl0IHRvZGF5LCBpdCBk b2VzIG1ha2Ugc29tZSBzZW5zZS4gSGF2aW5nICJzdiIganVzdCB3b3JrIGZvciAKdXNlciBzZXJ2 aWNlcyB3b3VsZCBiZSBhIGJpdCBpbiB0aGUgZGlyZWN0aW9uIG9mIGFuIGludGVncmF0ZWQgYXBw cm9hY2ggYXMgClN5c3RlbWQgaXMgdXNpbmcuIFNvIGhhdmluZyBhIGdlbmVyaWMgd3JhcHBlciBm b3IgdXNlciBzZXJ2aWNlcyBtYXkgYmUgCnByZWZlcmFibGUuCgpDdXJyZW50bHkgdGhlIHVzZXIt c2VydmljZSAiY29tbWFuZCIgaXMganVzdCBhbiBhbGlhcyB0byBzb21lIHNoZWxsIGNvZGUuIApC dXQgb2YgY291cnNlIHRoaXMgY291bGQgYmUgY2hhbmdlZC4KCj4gKiBJIGhhZCBhbiBpZGVhIGFu ZCBzdGFydGVkIHdvcmtpbmcgb24gYSBkcmFmdCBsYXN0IGZlYnJ1YXJ5IGJ1dCB0aGVuCj4gcnVu IG91dCBvZiB0aW1lIGFuZCBzdG9wcGVkLCBzbyBub3RoaW5nIHVzYWJsZSB5ZXQuIEknbGwgd3Jp dGUgb24gdGhpcyAKPiBsaXN0IGFza2luZyBmb3IgdGVzdGVycyBpZi93aGVuIEkgZmluaXNoIHRo YXQuCgpEaWQgeW91IHVwbG9hZCB0aGUgc291cmNlIGFueXdoZXJlPyBXb3VsZCBsaWtlIHRvIHNl ZSB3aGF0IHlvdXIgYXBwcm9hY2ggCndhcy4KCldlbGwgYXQgbGVhc3QgSSByZS11cGxvYWRlZCBt eSB1c2VyLXNlcnZpY2VzIGFwcHJvYWNoLiBNYXliZSBpdCBpcyBoYW5keSAKZm9yIHNvbWUuCgpD aWFvLAotLSAKTWFydGluCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KRG5nIG1haWxpbmcgbGlzdApEbmdAbGlzdHMuZHluZS5vcmcKaHR0cHM6Ly9tYWls aW5nbGlzdHMuZHluZS5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL2RuZwo=