From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 0/5] Handle Link Training Failure during modeset Date: Fri, 11 Nov 2016 18:43:40 +0200 Message-ID: <20161111164340.GL31595@intel.com> References: <1478752928-17719-1-git-send-email-manasi.d.navare@intel.com> <874m3f5ha4.fsf@intel.com> <20161111140504.GH31595@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Cheng, Tony" Cc: "intel-gfx@lists.freedesktop.org" , "Peres, Martin" , "dri-devel@lists.freedesktop.org" , "Deucher, Alexander" , "Wentland, Harry" List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBOb3YgMTEsIDIwMTYgYXQgMDQ6MjE6NThQTSArMDAwMCwgQ2hlbmcsIFRvbnkgd3Jv dGU6Cj4gRm9yIEhETUksIHlvdSBjYW4geWFuayB0aGUgY2FibGUsIHBsdWcgYmFjayBpbiwgSERN SSB3aWxsIGxpZ2h0IHVwIHdpdGhvdXQgdXNlciBtb2RlIG9yIGtlcm5lbCBtb2RlIGRvaW5nIGFu eXRoaW5nLgo+IAo+IEZvciBEUCB0aGlzIGlzIG5vdCBwb3NzaWJsZSwgc29tZW9uZSB3aWxsIGhh dmUgdG8gcmV0cmFpbiB0aGUgbGluayB3aGVuIHBsdWdnaW5nIGJhY2sgaW4gb3IgRFAgd2lsbCBu b3QgbGlnaHQgdXAuICBXZSBzZWUgdGhhdCBvbiBVYnVudHUgaWYgc29tZW9uZSB1bnBsdWcgZGlz cGxheSBhbmQgcGx1ZyBpdCBiYWNrIGludG8gc2FtZSBjb25uZWN0b3IsIHdlIGRvIG5vdCBnZXQg S01TIHNvIGluIHRoaXMgY2FzZS4gIEl0IGFwcGVhcnMgdGhlcmUgaXMgc29tZSBvcHRpbWl6YXRp b25zIHNvbWV3aGVyZSBpbiB1c2VyIG1vZGUgc3RhY2sgd2hpY2ggSSBhbSBub3QgZmFtaWxpYXIg d2l0aCB5ZXQuICBkYWwgYWRkZWQgd29ya2Fyb3VuZCB0byByZXRyYWluIHRoZSBsaW5rIHRvIGxp Z2h0IGl0IGJhY2sgdXAgKGFmdGVyIHRoZSB0ZXN0IHRyYWluaW5nIGF0IGVuZCBvZiBkZXRlY3Rp b24pLgoKVGhlIGxpbmsgc2hvdWxkIGdldCByZXRyYWluZWQgYXMgdGhlIGRyaXZlciBzaG91bGQg Y2hlY2sgdGhlIGxpbmsKc3RhdGUgb24gSFBEIGFuZCByZXRyYWluIGlmIGl0J3Mgbm90IGdvb2Qu IEF0IGxlYXN0IHRoYXQncyB3aGF0IHdlIGRvIGluCmk5MTUuIE9mIGNvdXJzZSBpZiBpdCdzIG5v dCB0aGUgc2FtZSBkaXNwbGF5IHRoYXQgZ290IHBsdWdnZWQgYmFjaywKdGhlIHJldHJhaW5pbmcg bWlnaHQgZmFpbC4gVGhlIG5ldyBwcm9wZXJ0eSBjYW4gaGVscCB3aXRoIHRoYXQKY2FzZSBhcyB1 c2Vyc3BhY2Ugd291bGQgdGhlbiBhdHRlbXB0IGEgZnVsbCBtb2Rlc2V0IGFmdGVyIHRoZSBmYWls ZWQKbGluayB0cmFpbmluZy4KCj4gCj4gPkZyb20gdXNlciBtb2RlIHBlcnNwZWN0aXZlIEkgdGhp bmsgaXQgbWFrZSBzZW5zZSB0byBrZWVwIENSVEMgcnVubmluZywgc28gdmJsYW5rIGlzIHN0aWxs IGdvaW5nIHNvIFVNRCBpc24ndCBpbXBhY3RlZC4gICBBcyByZWdhcmQgdG8gY29ubmVjdG9yIGFu ZCBlbmNvZGVyIGRvZXMgaXQgbWF0dGVyIGlmIGtlcm5lbCBtb2RlIGNoYW5nZSBzdGF0ZSB3aXRo b3V0IHVzZXIgbW9kZSBrbm93aW5nPyAgSXQgc2VlbXMgdG8gbWUgdGhvc2UgYXJlIG1vcmUgaW5m b3JtYXRpb25hbCB0byBVTUQgYXMgVU1EIGRvZXNuJ3QgYWN0IG9uIHRoZW0uCj4gCj4gd2luZG93 cyBkb2VzIG5vdCBrbm93IGxpbmsgc3RhdGUgYW5kIGFsbCBsaW5rIG1hbmFnZW1lbnQgaXMgaGlk ZGVuIGJlaGluZCBrZXJuZWwgZHJpdmVyLiAgIAoKSWYgdGhlIHVzZXIgdmlzaWJsZSBzdGF0ZSBk b2Vzbid0IGNoYW5nZSBpbiBhbnkgd2F5LCB0aGVuIHRoZSBrZXJuZWwgY291bGQKdHJ5IHRvIG1h bmFnZSBpdCBhbGwgaW50ZXJuYWxseS4KCj4gCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0K PiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgW21haWx0bzp2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbV0gCj4gU2VudDogRnJpZGF5LCBOb3ZlbWJlciAxMSwgMjAxNiA5OjA1IEFNCj4gVG86IENo ZW5nLCBUb255IDxUb255LkNoZW5nQGFtZC5jb20+Cj4gQ2M6IERldWNoZXIsIEFsZXhhbmRlciA8 QWxleGFuZGVyLkRldWNoZXJAYW1kLmNvbT47ICdKYW5pIE5pa3VsYScgPGphbmkubmlrdWxhQGxp bnV4LmludGVsLmNvbT47IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+ OyBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBpbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnOyBXZW50bGFuZCwgSGFycnkgPEhhcnJ5LldlbnRsYW5kQGFtZC5jb20+OyBQZXJl cywgTWFydGluIDxtYXJ0aW4ucGVyZXNAaW50ZWwuY29tPgo+IFN1YmplY3Q6IFJlOiBbSW50ZWwt Z2Z4XSBbUEFUQ0ggMC81XSBIYW5kbGUgTGluayBUcmFpbmluZyBGYWlsdXJlIGR1cmluZyBtb2Rl c2V0Cj4gCj4gT24gVGh1LCBOb3YgMTAsIDIwMTYgYXQgMDY6NTE6NDBQTSArMDAwMCwgQ2hlbmcs IFRvbnkgd3JvdGU6Cj4gPiBBbWRncHUgZGFsIGltcGxlbWVudGF0aW9uIHdpbGwgZG8gYSB0ZXN0 IGxpbmsgdHJhaW5pbmcgYXQgZW5kIG9mIGRldGVjdGlvbiB0byB2ZXJpZnkgd2UgY2FuIGFjaGll dmUgdGhlIGNhcGFiaWxpdHkgcmVwb3J0ZWQgaW4gRFBDRC4gIFdlIHRoZW4gcmVwb3J0IG1vZGUg YmFzZSBvbiByZXN1bHQgb2YgdGVzdCB0cmFpbmluZy4KPiA+IAo+ID4gQU1EIGhhcmR3YXJlIChh dCBsZWFzdCB0aGUgZ2VuZXJhdGlvbnMgc3VwcG9ydGVkIGJ5IGFtZGdwdSkgaXMgYWJsZSB0byBs aW5rIHRyYWluIHdpdGhvdXQgdGltaW5nIGJlaW5nIHNldHVwIChEUCBlbmNvZGVyIGFuZCBDUlRD IGlzIGRlY291cGxlZCkuICBEbyB3ZSBoYXZlIGxpbWl0YXRpb24gZnJvbSBvdGhlciB2ZW5kb3Jz IHdoZXJlIHlvdSBuZWVkIHRpbWluZyB0byBiZSB0aGVyZSBiZWZvcmUgeW91IGNhbiBsaW5rIHRy YWluPwo+IAo+IEkgY2FuJ3QgcmVjYWxsIHRoZSBzcGVjaWZpY3MgZm9yIGFsbCBvZiBvdXIgc3Vw cG9ydGVkIHBsYXRmb3JtcywgYnV0IGF0IGxlYXN0IEkgaGF2ZSB0aGUgcmVjb2xsZWN0aW9uIHRo YXQgaXQgd291bGQgYmUgdGhlIGNhc2UgeWVzLgo+IAo+IFRoZSBvdGhlciBwcm9ibGVtIHdpeWgg dGhpcyBhcHBvcmFjaCBpcyB0aGF0IGV2ZW4gaWYgeW91IGRvbid0IG5lZWQgdGhlIGNydGMsIHlv dSBzdGlsbCBuZWVkIHRoZSBsaW5rIGl0c2VsZi4gV2hhdCBoYXBwZW5zIGlmIHRoZSBsaW5rIGlz IHN0aWxsIGFjdGl2ZSBzaW5jZSB1c2Vyc3BhY2UganVzdCBkaWRuJ3QgYm90aGVyIHRvIHNodXQg aXQgZG93biB3aGVuIHRoZSBjYWJsZSB3YXMgeWFua2VkPyBDYW4geW91IGtlZXAgdGhlIGNydGMg Z29pbmcgYnV0IHN0b3AgaXQgZnJvbSBmZWVkaW5nIHRoZSBsaW5rIGluIGEgd2F5IHRoYXQgdXNl cnNwYWNlIHdvbid0IGJlIGFibGUgdG8gbm90aWNlPyBUaGUga21zIGRlc2lnbiBoYXMgYWx3YXlz IGJlZW4gcHJldHR5IG11Y2ggdGhhdCBwb2xpY3kgaXMgaW4gdXNlcnNwYWNlLCBhbmQgdGh1cyB0 aGUga2VybmVsIHNob3VsZG4ndCBzaHV0IGRvd24gY3J0Y3MgdW5sZXNzIGV4cGxpY2l0bHkgYXNr ZWQgdG8gZG8gc28uCj4gCj4gPiAKPiA+IFdlIGNhbiBhbHNvIHBhc3QgRFAxLjIgbGluayBsYXll ciBjb21wbGlhbmNlIHdpdGggdGhpcyBhcHByb2FjaC4KPiA+IAo+ID4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0KPiA+IEZyb206IERldWNoZXIsIEFsZXhhbmRlcgo+ID4gU2VudDogVGh1cnNk YXksIE5vdmVtYmVyIDEwLCAyMDE2IDE6NDMgUE0KPiA+IFRvOiAnSmFuaSBOaWt1bGEnIDxqYW5p Lm5pa3VsYUBsaW51eC5pbnRlbC5jb20+OyBNYW5hc2kgTmF2YXJlIAo+ID4gPG1hbmFzaS5kLm5h dmFyZUBpbnRlbC5jb20+OyBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyAKPiA+IGlu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IFdlbnRsYW5kLCBIYXJyeSAKPiA+IDxIYXJy eS5XZW50bGFuZEBhbWQuY29tPjsgQ2hlbmcsIFRvbnkgPFRvbnkuQ2hlbmdAYW1kLmNvbT4KPiA+ IENjOiBEYXZlIEFpcmxpZSA8YWlybGllZEBnbWFpbC5jb20+OyBQZXJlcywgTWFydGluIAo+ID4g PG1hcnRpbi5wZXJlc0BpbnRlbC5jb20+Cj4gPiBTdWJqZWN0OiBSRTogW0ludGVsLWdmeF0gW1BB VENIIDAvNV0gSGFuZGxlIExpbmsgVHJhaW5pbmcgRmFpbHVyZSAKPiA+IGR1cmluZyBtb2Rlc2V0 Cj4gPiAKPiA+IEFkZGluZyBIYXJyeSBhbmQgVG9ueSBmcm9tIG91ciBkaXNwbGF5IHRlYW0gdG8g cmV2aWV3Lgo+ID4gCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPiA+IEZyb206 IEphbmkgTmlrdWxhIFttYWlsdG86amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tXQo+ID4gPiBT ZW50OiBUaHVyc2RheSwgTm92ZW1iZXIgMTAsIDIwMTYgMToyMCBQTQo+ID4gPiBUbzogTWFuYXNp IE5hdmFyZTsgZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgaW50ZWwtIAo+ID4gPiBn ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+IENjOiBEYXZlIEFpcmxpZTsgUGVyZXMsIE1h cnRpbjsgRGV1Y2hlciwgQWxleGFuZGVyCj4gPiA+IFN1YmplY3Q6IFJlOiBbSW50ZWwtZ2Z4XSBb UEFUQ0ggMC81XSBIYW5kbGUgTGluayBUcmFpbmluZyBGYWlsdXJlIAo+ID4gPiBkdXJpbmcgbW9k ZXNldAo+ID4gPiAKPiA+ID4gT24gVGh1LCAxMCBOb3YgMjAxNiwgTWFuYXNpIE5hdmFyZSA8bWFu YXNpLmQubmF2YXJlQGludGVsLmNvbT4gd3JvdGU6Cj4gPiA+ID4gTGluayB0cmFpbmluZyBmYWls dXJlIGlzIGhhbmRsZWQgYnkgbG93ZXJpbmcgdGhlIGxpbmsgcmF0ZSBmaXJzdCAKPiA+ID4gPiB1 bnRpbCBpdCByZWFjaGVzIHRoZSBtaW5pbXVtIGFuZCBrZWVwaW5nIHRoZSBsYW5lIGNvdW50IG1h eGltdW0gCj4gPiA+ID4gYW5kIHRoZW4gbG93ZXJpbmcgdGhlIGxhbmUgY291bnQgdW50aWwgaXQg cmVhY2hlcyBtaW5pbWltLiBUaGVzZSAKPiA+ID4gPiBmYWxsYmFjayB2YWx1ZXMgYXJlIHNhdmVk IGFuZCBob3RwbHVnIHVldmVudCBpcyBzZW50IHRvIHRoZSAKPiA+ID4gPiB1c2Vyc3BhY2UgYWZ0 ZXIgc2V0dGluZyB0aGUgY29ubmVjdG9yIGxpbmsgc3RhdHVzIHByb3BlcnR5IHRvIEJBRC4KPiA+ ID4gPiBVc2Vyc3BhY2Ugc2hvdWxkIHRyaWlnZXIgYW5vdGhlciBtb2Rlc2V0IG9uIGEgdWV2ZW50 IGFuZCBpZiBsaW5rIAo+ID4gPiA+IHN0YXR1cyBwcm9wZXJ0eSBpcyBCQUQuIFRoaXMgd2lsbCBy ZXRyYWluIHRoZSBsaW5rIGF0IGZhbGxiYWNrIHZhbHVlcy4KPiA+ID4gPiBUaGlzIGlzIHJlcGVh dGVkIHVudGlsIHRoZSBsaW5rIGlzIHN1Y2Nlc3NmdWxseSB0cmFpbmVkLgo+ID4gPiA+Cj4gPiA+ ID4gVGhpcyBoYXMgYmVlbiB2YWxpZGF0ZWQgdG8gcGFzcyBEUCBjb21wbGlhbmNlLgo+ID4gPiAK PiA+ID4gVGhpcyBjb3ZlciBsZXR0ZXIgYW5kIHRoZSBjb21taXQgbWVzc2FnZXMgZG8gYSBnb29k IGpvYiBvZiAKPiA+ID4gZXhwbGFpbmluZyB3aGF0IHRoZSBwYXRjaGVzIGRvLiBIb3dldmVyLCB5 b3UncmUgbGFja2luZyB0aGUgY3J1Y2lhbCAKPiA+ID4gaW5mb3JtYXRpb24gb2YKPiA+ID4gKndo eSogd2UgbmVlZCB1c2Vyc3BhY2UgY29vcGVyYXRpb24gdG8gaGFuZGxlIGxpbmsgdHJhaW5pbmcg ZmFpbHVyZXMgCj4gPiA+IG9uIERQIG1vZGUgc2V0dGluZywgYW5kICp3aHkqIGEgbmV3IGNvbm5l Y3RvciBwcm9wZXJ0eSBpcyBhIGdvb2QgCj4gPiA+IHNvbHV0aW9uIGZvciB0aGlzLgo+ID4gPiAK PiA+ID4gSGVyZSBnb2VzLCBpbmNsdWRpbmcgc29tZSBhbHRlcm5hdGl2ZSBhcHByb2FjaGVzIHdl J3ZlIGNvbnNpZGVyZWQgCj4gPiA+IChhbmQgZXZlbiB0cmllZCk6Cj4gPiA+IAo+ID4gPiBBdCB0 aGUgdGltZSB1c2Vyc3BhY2UgZG9lcyBzZXRjcnRjLCB3ZSd2ZSBhbHJlYWR5IHByb21pc2VkIHRo ZSBtb2RlIAo+ID4gPiB3b3VsZCB3b3JrLiBUaGUgcHJvbWlzZSBpcyBiYXNlZCBvbiB0aGUgdGhl b3JldGljYWwgY2FwYWJpbGl0aWVzIG9mIAo+ID4gPiB0aGUgbGluaywgYnV0IGl0J3MgcG9zc2li bGUgd2UgY2FuJ3QgcmVhY2ggdGhpcyBpbiBwcmFjdGljZS4gVGhlIERQIAo+ID4gPiBzcGVjIGRl c2NyaWJlcyBob3cgdGhlIGxpbmsgc2hvdWxkIGJlIHJlZHVjZWQsIGJ1dCB3ZSBjYW4ndCByZWR1 Y2UgCj4gPiA+IHRoZSBsaW5rIGJlbG93IHRoZSByZXF1aXJlbWVudHMgb2YgdGhlIG1vZGUuIEJs YWNrIHNjcmVlbiBmb2xsb3dzLgo+ID4gPiAKPiA+ID4gT25lIGlkZWEgd291bGQgYmUgdG8gaGF2 ZSBzZXRjcnRjIHJldHVybiBhIGZhaWx1cmUuIEhvd2V2ZXIsIGl0IGlzIAo+ID4gPiBteSB1bmRl cnN0YW5kaW5nIHRoYXQgaXQgYWxyZWFkeSBzaG91bGQgbm90IGZhaWwgYXMgdGhlIGF0b21pYyAK PiA+ID4gY2hlY2tzIGhhdmUgcGFzc2VkIFtjaXRhdGlvbiBuZWVkZWRdLiBJdCB3b3VsZCBhbHNv IGNvbmZsaWN0IHdpdGggCj4gPiA+IHRoZSBpZGVhIG9mIG1ha2luZyBzZXRjcnRjIGFzeW5jaHJv bm91cyBpbiB0aGUgZnV0dXJlLCByZXR1cm5pbmcgCj4gPiA+IGJlZm9yZSB0aGUgYWN0dWFsIG1v ZGUgc2V0dGluZyBhbmQgbGluayB0cmFpbmluZy4KPiA+ID4gCj4gPiA+IEFub3RoZXIgaWRlYSBp cyB0byB0cmFpbiB0aGUgbGluayAidXBmcm9udCIgYXQgaG90cGx1ZyB0aW1lLCBiZWZvcmUgCj4g PiA+IHBydW5pbmcgdGhlIG1vZGUgbGlzdCwgc28gdGhhdCB3ZSBjYW4gZG8gdGhlIHBydW5pbmcg YmFzZWQgb24gCj4gPiA+IHByYWN0aWNhbCBub3QgdGhlb3JldGljYWwgY2FwYWJpbGl0aWVzLiBI b3dldmVyLCB0aGUgY2hhbmdlcyBmb3IgCj4gPiA+IGxpbmsgdHJhaW5pbmcgYXJlIHByZXR0eSBk cmFzdGljLCBhbGwgZm9yIHRoZSBzYWtlIG9mIGVycm9yIGhhbmRsaW5nIAo+ID4gPiBhbmQgRFAg Y29tcGxpYW5jZSwgd2hlbiB0aGUgbW9zdCBjb21tb24gaGFwcHkgZGF5IHNjZW5hcmlvIGlzIHRo ZSAKPiA+ID4gY3VycmVudCBhcHByb2FjaCBvZiBsaW5rIHRyYWluaW5nIGF0IG1vZGUgc2V0dGlu ZyB0aW1lLCB1c2luZyB0aGUgCj4gPiA+IG9wdGltYWwgcGFyYW1ldGVycyBmb3IgdGhlIG1vZGUu IEl0IGlzIGFsc28gbm90IGNlcnRhaW4gYWxsIGhhcmR3YXJlIAo+ID4gPiBjb3VsZCBkbyB0aGlz IHdpdGhvdXQgdGhlIHBpcGUgb247IG5vdCBldmVuIGFsbCBvdXIgaGFyZHdhcmUgY2FuIGRvIAo+ ID4gPiB0aGlzLiBTb21lIG9mIHRoaXMgY2FuIGJlIHNvbHZlZCwgYnV0IG5vdCB0cml2aWFsbHku Cj4gPiA+IAo+ID4gPiBCb3RoIG9mIHRoZSBhYm92ZSBpZGVhcyBhbHNvIGZhaWwgdG8gYWRkcmVz cyBsaW5rIGRlZ3JhZGF0aW9uIAo+ID4gPiAqZHVyaW5nKiBvcGVyYXRpb24uCj4gPiA+IAo+ID4g PiBTbyB0aGUgaWRlYSBwcmVzZW50ZWQgaW4gdGhlc2UgcGF0Y2hlcyBpcyB0byBkbyB0aGlzIGlu IGEgd2F5IHRoYXQgCj4gPiA+IGEpIGNoYW5nZXMgdGhlIGN1cnJlbnQgaGFwcHkgZGF5IHNjZW5h cmlvIGFzIGxpdHRsZSBhcyBwb3NzaWJsZSwgdG8gCj4gPiA+IGF2b2lkIHJlZ3Jlc3Npb25zLCBi KSBjYW4gYmUgaW1wbGVtZW50ZWQgdGhlIHNhbWUgd2F5IGJ5IGFsbCBkcm0gCj4gPiA+IGRyaXZl cnMsIGMpIGlzIHN0aWxsIG9wdC1pbiBmb3IgdGhlIGRyaXZlcnMgYW5kIHVzZXJzcGFjZSwgYW5k IAo+ID4gPiBvcHRpbmcgb3V0IGRvZXNuJ3QgcmVncmVzcyB0aGUgdXNlciBleHBlcmllbmNlLCBk KSBkb2Vzbid0IHByZXZlbnQgCj4gPiA+IGRyaXZlcnMgZnJvbSBpbXBsZW1lbnRpbmcgYmV0dGVy IG9yIGFsdGVybmF0ZSBhcHByb2FjaGVzLCBwb3NzaWJseSAKPiA+ID4gd2l0aG91dCB1c2Vyc3Bh Y2UgaW52b2x2ZW1lbnQuIEFuZCwgb2YgY291cnNlLCBoYW5kbGVzIGFsbCB0aGUgaXNzdWVzIHBy ZXNlbnRlZC4KPiA+ID4gCj4gPiA+IFRoZSBzb2x1dGlvbiBpcyB0byBhZGQgYSAibGluayBzdGF0 dXMiIGNvbm5lY3RvciBwcm9wZXJ0eS4gSW4gdGhlIAo+ID4gPiB1c3VhbCBoYXBweSBkYXkgc2Nl bmFyaW8sIHRoaXMgaXMgYWx3YXlzICJnb29kIi4gSWYgc29tZXRoaW5nIGZhaWxzIAo+ID4gPiBk dXJpbmcgb3IgYWZ0ZXIgYSBtb2RlIHNldCwgdGhlIGtlcm5lbCBkcml2ZXIgY2FuIHNldCB0aGUg bGluayAKPiA+ID4gc3RhdHVzIHRvICJiYWQiLCBwcnVuZSB0aGUgbW9kZSBsaXN0IGJhc2VkIG9u IG5ldyBpbmZvcm1hdGlvbiBhcyAKPiA+ID4gbmVjZXNzYXJ5LCBhbmQgc2VuZCBhIGhvdHBsdWcg dWV2ZW50IGZvciB1c2Vyc3BhY2UgdG8gaGF2ZSBpdCAKPiA+ID4gcmUtY2hlY2sgdGhlIHZhbGlk IG1vZGVzIHRocm91Z2ggZ2V0Y29ubmVjdG9yLCBhbmQgdHJ5IGFnYWluLiBJZiB0aGUgCj4gPiA+ IHRoZW9yZXRpY2FsIGNhcGFiaWxpdGllcyBvZiB0aGUgbGluayBjYW4ndCBiZSByZWFjaGVkLCB0 aGUgbW9kZSBsaXN0IGlzIHRyaW1tZWQgYmFzZWQgb24gdGhhdC4KPiA+ID4gCj4gPiA+IElmIHRo ZSB1c2Vyc3BhY2UgaXMgbm90IGF3YXJlIG9mIHRoZSBwcm9wZXJ0eSwgdGhlIHVzZXIgZXhwZXJp ZW5jZSAKPiA+ID4gaXMgdGhlIHNhbWUgYXMgaXQgY3VycmVudGx5IGlzLiBJZiB0aGUgdXNlcnNw YWNlIGlzIGF3YXJlIG9mIHRoZSAKPiA+ID4gcHJvcGVydHksIGl0IGhhcyBhIGNoYW5jZSB0byBp bXByb3ZlIHVzZXIgZXhwZXJpZW5jZS4gSWYgYSBkcm0gCj4gPiA+IGRyaXZlciBkb2VzIG5vdCBt b2RpZnkgdGhlIHByb3BlcnR5IChpdCBzdGF5cyAiZ29vZCIpLCB0aGUgdXNlciAKPiA+ID4gZXhw ZXJpZW5jZSBpcyB0aGUgc2FtZSBhcyBpdCBjdXJyZW50bHkgaXMuIEEgZHJtIGRyaXZlciBjYW4g YWxzbyAKPiA+ID4gY2hvb3NlIHRvIHRyeSB0byBoYW5kbGUgbW9yZSBvZiB0aGUgZmFpbHVyZXMg aW4ga2VybmVsLCBoYXJkd2FyZSBub3QgCj4gPiA+IGxpbWl0aW5nLCBvciBpdCBjYW4gY2hvb3Nl IHRvIGludm9sdmUgdXNlcnNwYWNlIG1vcmUuIFVwIHRvIHRoZSBkcml2ZXJzLgo+ID4gPiAKPiA+ ID4gVGhlIHJlYXNvbiBmb3IgYWRkaW5nIHRoZSBwcm9wZXJ0eSBpcyB0byBoYW5kbGUgbGluayB0 cmFpbmluZyAKPiA+ID4gZmFpbHVyZXMsIGJ1dCBpdCBpcyBub3QgbGltaXRlZCB0byBEUCBvciBs aW5rIHRyYWluaW5nLiBGb3IgZXhhbXBsZSwgCj4gPiA+IGlmIHdlIGltcGxlbWVudCBhc3luY2hy b25vdXMgc2V0Y3J0Yywgd2UgY2FuIHVzZSB0aGlzIHRvIHJlcG9ydCBhbnkgCj4gPiA+IGZhaWx1 cmVzIGluIHRoYXQuCj4gPiA+IAo+ID4gPiBGaW5hbGx5LCB3aGlsZSBEUCBDVFMgY29tcGxpYW5j ZSBpcyBhZHZlcnRpemVkICh3aGljaCBpcyBncmVhdCwgYW5kIAo+ID4gPiBjb3VsZCBiZSBtYWRl IHRvIHdvcmsgc2ltaWxhcmx5IGZvciBhbGwgZHJtIGRyaXZlcnMpLCB0aGlzIGNhbiBiZSAKPiA+ ID4gdXNlZCBmb3IgdGhlIG1vcmUgaW1wb3J0YW50IGdvYWwgb2YgaW1wcm92aW5nIHVzZXIgZXhw ZXJpZW5jZSBvbiAKPiA+ID4gbGluayB0cmFpbmluZyBmYWlsdXJlcywgYnkgYXZvaWRpbmcgYmxh Y2sgc2NyZWVucy4KPiA+ID4gCj4gPiA+IAo+ID4gPiBCUiwKPiA+ID4gSmFuaS4KPiA+ID4gCj4g PiA+IAo+ID4gPiA+Cj4gPiA+ID4gTWFuYXNpIE5hdmFyZSAoNSk6Cj4gPiA+ID4gICBkcm06IEFk ZCBhIG5ldyBjb25uZWN0b3IgcHJvcGVydHkgZm9yIGxpbmsgc3RhdHVzCj4gPiA+ID4gICBkcm0v aTkxNTogU2V0IGxpbmsgc3RhdHVzIHByb3BlcnR5IGZvciBEUCBjb25uZWN0b3IKPiA+ID4gPiAg IGRybS9pOTE1OiBVcGRhdGUgQ1JUQyBzdGF0ZSBpZiBjb25uZWN0b3IgbGluayBzdGF0dXMgcHJv cGVydHkgCj4gPiA+ID4gY2hhbmdlZAo+ID4gPiAgICAgXl5eXl5eXl4KPiA+ID4gCj4gPiA+IFRo aXMgaXMgcmVhbGx5IGRybSwgbm90IGk5MTUuCj4gPiA+IAo+ID4gPiAKPiA+ID4gPiAgIGRybS9p OTE1OiBGaW5kIGZhbGxiYWNrIGxpbmsgcmF0ZS9sYW5lIGNvdW50Cj4gPiA+ID4gICBkcm0vaTkx NTogSW1wbGVtZW50IExpbmsgUmF0ZSBmYWxsYmFjayBvbiBMaW5rIHRyYWluaW5nIGZhaWx1cmUK PiA+ID4gPgo+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyAgICAg ICAgICAgfCAgIDcgKysKPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyAg ICAgICAgICAgICAgIHwgIDE3ICsrKysKPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGRpLmMgICAgICAgICAgICAgIHwgIDIxICsrKy0KPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYyAgICAgICAgICAgICAgIHwgMTM4Cj4gPiA+ICsrKysrKysrKysrKysr KysrKysrKysrKystCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtf dHJhaW5pbmcuYyB8ICAxMiArKy0KPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggICAgICAgICAgICAgIHwgIDEyICsrLQo+ID4gPiA+ICBpbmNsdWRlL2RybS9kcm1fY29u bmVjdG9yLmggICAgICAgICAgICAgICAgICAgfCAgIDcgKy0KPiA+ID4gPiAgaW5jbHVkZS9kcm0v ZHJtX2NydGMuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsKPiA+ID4gPiAgaW5jbHVk ZS91YXBpL2RybS9kcm1fbW9kZS5oICAgICAgICAgICAgICAgICAgIHwgICA0ICsKPiA+ID4gPiAg OSBmaWxlcyBjaGFuZ2VkLCAyMTQgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKPiA+ID4g Cj4gPiA+IC0tCj4gPiA+IEphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5 IENlbnRlcgo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cj4gCj4gLS0KPiBWaWxsZSBTeXJqw6Rsw6QKPiBJbnRlbCBPVEMKCi0tIApW aWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=