From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v2 2/3] drm/dp: Adjust i2c-over-aux retry count based on message size and i2c bus speed Date: Wed, 02 Sep 2015 16:21:02 +0300 Message-ID: <87h9nd2c01.fsf@intel.com> References: <1440514590-30837-1-git-send-email-ville.syrjala@linux.intel.com> <1440618907-11169-1-git-send-email-ville.syrjala@linux.intel.com> <1440618907-11169-2-git-send-email-ville.syrjala@linux.intel.com> <20150901091443.GJ1367@phenom.ffwll.local> <20150901111301.GE29811@intel.com> <20150901151145.GR1367@phenom.ffwll.local> <20150901151339.GS1367@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id AB40C6E0C6 for ; Wed, 2 Sep 2015 06:17:56 -0700 (PDT) In-Reply-To: <20150901151339.GS1367@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter , Ville =?utf-8?B?U3lyasOkbMOk?= Cc: moosotc@gmail.com, Simon Farnsworth , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCAwMSBTZXAgMjAxNSwgRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90 ZToKPiBPbiBUdWUsIFNlcCAwMSwgMjAxNSBhdCAwNToxMTo0NVBNICswMjAwLCBEYW5pZWwgVmV0 dGVyIHdyb3RlOgo+PiBPbiBUdWUsIFNlcCAwMSwgMjAxNSBhdCAwMjoxMzowMVBNICswMzAwLCBW aWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4+ID4gT24gVHVlLCBTZXAgMDEsIDIwMTUgYXQgMTE6MTQ6 NDNBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPj4gPiA+IE9uIFdlZCwgQXVnIDI2LCAy MDE1IGF0IDEwOjU1OjA2UE0gKzAzMDAsIHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tIHdy b3RlOgo+PiA+ID4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgo+PiA+ID4gPiAKPj4gPiA+ID4gQ2FsY3VsYXRlIHRoZSBudW1iZXIgb2YgcmV0 cmllcyB3ZSBzaG91bGQgZG8gZm9yIGVhY2ggaTJjLW92ZXItYXV4Cj4+ID4gPiA+IG1lc3NhZ2Ug YmFzZWQgb24gdGhlIHRpbWUgaXQgdGFrZXMgdG8gcGVyZm9ybSB0aGUgaTJjIHRyYW5zZmVyIHZz LiB0aGUKPj4gPiA+ID4gYXV4IHRyYW5zZmVyLiBXZSBhc3N1bWUgdGhlIHNob3J0ZXN0IHBvc3Np YmxlIGxlbmd0aCBmb3IgdGhlIGF1eAo+PiA+ID4gPiB0cmFuc2ZlciwgYW5kIHRoZSBsb25nZXN0 IHBvc3NpYmxlIChleGx1ZGluZyBjbG9jayBzdHJldGNoaW5nKSBmb3IgdGhlCj4+ID4gPiA+IGky YyB0cmFuc2Zlci4KPj4gPiA+ID4gCj4+ID4gPiA+IFRoZSBEUCBzcGVjIGhhcyBzb21lIGV4YW1w bGVzIG9uIGhvdyB0byBjYWxjdWxhdGUgdGhpcywgYnV0IHdlIGRvbid0Cj4+ID4gPiA+IGNhbGN1 bGF0ZSB0aGluZ3MgcXVpdGUgdGhlIHNhbWUgd2F5LiBUaGUgc3BlYyBkb2Vzbid0IGFjY291bnQg Zm9yIHRoZQo+PiA+ID4gPiByZXRyeSBpbnRlcnZhbCAoYXNzdW1lcyBpbW1lZGlhdGUgcmV0cnkg b24gZGVmZXIpLCBhbmQgZG9lc24ndCBhc3N1bWUKPj4gPiA+ID4gdGhlIGJlc3Qvd29yc3QgY2Fz ZSBiZWhhdmlvdXIgYXMgd2UgZG8uCj4+ID4gPiA+IAo+PiA+ID4gPiBOb3RlIHRoYXQgY3VycmVu dGx5IHdlIGFzc3VtZSAxMCBrSHogc3BlZWQgZm9yIHRoZSBpMmMgYnVzLiBTb21lIHJlYWwKPj4g PiA+ID4gd29ybGQgZGV2aWNlcyAoZWcuIHNvbWUgQXBwbGUgRFAtPlZHQSBkb25nbGUpIGZhaWxz IHdpdGggbGVzcyB0aGFuIDE2Cj4+ID4gPiA+IHJldHJpZXMuIGFuZCB0aGF0IHdvdWxkIGNvcnJl c3BvbmQgdG8gc29tZXRoaW5nIGNsb3NlIHRvIDE1IGtIeiAod2l0aAo+PiA+ID4gPiBvdXIgbWV0 aG9kIG9mIGNhbGN1bGF0aW5nIHRoaW5ncykgQnV0IGxldCdzIGp1c3QgZ28gZm9yIDEwIGtIeiB0 byBiZQo+PiA+ID4gPiBvbiB0aGUgc2FmZSBzaWRlLiBJZGVhbGx5IHdlIHNob3VsZCBxdWVyeS9z ZXQgdGhlIGkyYyBidXMgc3BlZWQgdmlhCj4+ID4gPiA+IERQQ0QgYnV0IGZvciBub3cgdGhpcyBz aG91bGQgYXQgbGVhYXN0IHJlbW92ZSB0aGUgcmVncmVzc2lvbiBmcm9tIHRoZQo+PiA+ID4gPiAx LT4xNiBieXRlIHRyYXNuZmVyIHNpemUgY2hhbmdlLiBBbmQgb2YgY291cnNlIGlmIHRoZSBzaW5r IGNvbXBsZXRlcwo+PiA+ID4gPiB0aGUgdHJhbnNmZXIgcXVpY2tlciB0aGlzIHNob3VsZG4ndCBz bG93IHRoaW5ncyBkb3duIHNpbmNlIHdlIGRvbid0Cj4+ID4gPiA+IGNoYW5nZSB0aGUgaW50ZXJ2 YWwgYmV0d2VlbiByZXRyaWVzLgo+PiA+ID4gPiAKPj4gPiA+ID4gSSBkaWQgYSBmZXcgZXhwZXJp bWVudHMgd2l0aCBhIERQLT5EVkkgZG9uZ2xlIEkgaGF2ZSB0aGF0IGFsbG93cyB5b3UKPj4gPiA+ ID4gdG8gY2hhbmdlIHRoZSBpMmMgYnVzIHNwZWVkLiBIZXJlIGFyZSB0aGUgcmVzdWx0cyBvZiBt ZSBjaGFuZ2luZyB0aGUKPj4gPiA+ID4gYWN0dWFsIGJ1cyBzcGVlZCBhbmQgdGhlIGFzc3VtZWQg YnVzIHNwZWVkIGFuZCBzZWVpbmcgd2hlbiB3ZSBzdGFydAo+PiA+ID4gPiB0byBmYWlsIHRoZSBv cGVyYXRpb246Cj4+ID4gPiA+IAo+PiA+ID4gPiBhY3R1YWwgaTJjIGtoeiAgICAgICAgICBhc3N1 bWVkIGkyYyBraHogICAgICAgICBtYXggcmV0cmllcwo+PiA+ID4gPiAxICAgICAgICAgICAgICAg ICAgICAgICAxIG9rIC0+IDIgZmFpbCAgICAgICAgICAyMTEgb2sgLT4gMTA2IGZhaWwKPj4gPiA+ ID4gNSAgICAgICAgICAgICAgICAgICAgICAgOCBvayAtPiA5IGZhaWwgICAgICAgICAgMjcgb2sg LT4gMjQgZmFpbAo+PiA+ID4gPiAxMCAgICAgICAgICAgICAgICAgICAgICAxNyBvayAtPiAxOCBm YWlsICAgICAgICAxMyBvayAtPiAxMiBmYWlsCj4+ID4gPiA+IDEwMCAgICAgICAgICAgICAgICAg ICAgIDIxMCBvayAtPiAyMTEgZmFpbCAgICAgIDIgb2sgLT4gMSBmYWlsCj4+ID4gPiA+IAo+PiA+ ID4gPiBTbyBiYXNlZCBvbiB0aGF0IHdlIGhhdmUgYSBmYWlybHkgZGVjZW50IHNhZmV0eSBtYXJn aW4gYmFrZWQgaW50bwo+PiA+ID4gPiB0aGUgZm9ybXVsYSB0byBjYWxjdWxhdGUgdGhlIG1heCBu dW1iZXIgb2YgcmV0cmllcy4KPj4gPiA+ID4gCj4+ID4gPiA+IEZpeGVzIGEgcmVncmVzc2lvbiB3 aXRoIHNvbWUgRFAgZG9uZ2xlcyBmcm9tOgo+PiA+ID4gPiBjb21taXQgMWQwMDJmYTcyMDczOGJj ZDBiZGRiOTE3OGU5ZWEwNzczMjg4ZTFkZAo+PiA+ID4gPiBBdXRob3I6IFNpbW9uIEZhcm5zd29y dGggPHNpbW9uLmZhcm5zd29ydGhAb25lbGFuLmNvLnVrPgo+PiA+ID4gPiBEYXRlOiAgIFR1ZSBG ZWIgMTAgMTg6Mzg6MDggMjAxNSArMDAwMAo+PiA+ID4gPiAKPj4gPiA+ID4gICAgIGRybS9kcDog VXNlIGxhcmdlIHRyYW5zYWN0aW9ucyBmb3IgSTJDIG92ZXIgQVVYCj4+ID4gPiA+IAo+PiA+ID4g PiB2MjogVXNlIGJlc3QgY2FzZSBmb3IgQVVYIGFuZCB3b3JzdCBjYXNlIGZvciBpMmMgKFNpbW9u IEZhcm5zd29ydGgpCj4+ID4gPiA+ICAgICBBZGQgYSBkZWZpbmUgb3VyIEFVWCByZXRyeSBpbnRl cnZhbCBhbmQgYWNjb3VudCBmb3IgaXQKPj4gPiA+ID4gCj4+ID4gPiA+IENjOiBTaW1vbiBGYXJu c3dvcnRoIDxzaW1vbi5mYXJuc3dvcnRoQG9uZWxhbi5jb20+Cj4+ID4gPiA+IENjOiBtb29zb3Rj QGdtYWlsLmNvbQo+PiA+ID4gPiBUZXN0ZWQtYnk6IG1vb3NvdGNAZ21haWwuY29tCj4+ID4gPiA+ IEJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD05 MTQ1MQo+PiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgo+PiA+ID4gPiAtLS0KPj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9kcm1fZHBfaGVscGVyLmMgfCA4MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLQo+PiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCj4+ID4gPiA+IAo+PiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9kcF9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMKPj4gPiA+ ID4gaW5kZXggNzA2OWU1NC4uMjNiOWZjYyAxMDA2NDQKPj4gPiA+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9kcF9oZWxwZXIuYwo+PiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2RwX2hlbHBlci5jCj4+ID4gPiA+IEBAIC00MjQsNiArNDI0LDc4IEBAIHN0YXRpYyB1MzIgZHJt X2RwX2kyY19mdW5jdGlvbmFsaXR5KHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcikKPj4gPiA+ ID4gIAkgICAgICAgSTJDX0ZVTkNfMTBCSVRfQUREUjsKPj4gPiA+ID4gIH0KPj4gPiA+ID4gIAo+ PiA+ID4gPiArI2RlZmluZSBBVVhfUFJFQ0hBUkdFX0xFTiAxMCAvKiAxMCB0byAxNiAqLwo+PiA+ ID4gPiArI2RlZmluZSBBVVhfU1lOQ19MRU4gKDE2ICsgNCkgLyogcHJlYW1ibGUgKyBBVVhfU1lO Q19FTkQgKi8KPj4gPiA+ID4gKyNkZWZpbmUgQVVYX1NUT1BfTEVOIDQKPj4gPiA+ID4gKyNkZWZp bmUgQVVYX0NNRF9MRU4gNAo+PiA+ID4gPiArI2RlZmluZSBBVVhfQUREUkVTU19MRU4gMjAKPj4g PiA+ID4gKyNkZWZpbmUgQVVYX1JFUExZX1BBRF9MRU4gNAo+PiA+ID4gPiArI2RlZmluZSBBVVhf TEVOR1RIX0xFTiA4Cj4+ID4gPiA+ICsKPj4gPiA+ID4gKy8qCj4+ID4gPiA+ICsgKiBDYWxjdWxh dGUgdGhlIGxlbmd0aCBvZiB0aGUgQVVYIHJlcXVlc3QvcmVwbHkuIEdpdmVzIHRoZSAiYmVzdCIK Pj4gPiA+ID4gKyAqIGNhc2UgZXN0aW1hdGUsIGllLiBzdWNjZXNzZnVsIHdoaWxlIGFzIHNob3J0 IGFzIHBvc3NpYmxlLgo+PiA+ID4gPiArICovCj4+ID4gPiA+ICtzdGF0aWMgaW50IGRybV9kcF9h dXhfcmVxX2xlbihjb25zdCBzdHJ1Y3QgZHJtX2RwX2F1eF9tc2cgKm1zZykKPj4gPiA+ID4gK3sK Pj4gPiA+ID4gKwlpbnQgbGVuID0gQVVYX1BSRUNIQVJHRV9MRU4gKyBBVVhfU1lOQ19MRU4gKyBB VVhfU1RPUF9MRU4gKwo+PiA+ID4gPiArCQlBVVhfQ01EX0xFTiArIEFVWF9BRERSRVNTX0xFTiAr IEFVWF9MRU5HVEhfTEVOOwo+PiA+ID4gPiArCj4+ID4gPiA+ICsJaWYgKChtc2ctPnJlcXVlc3Qg JiBEUF9BVVhfSTJDX1JFQUQpID09IDApCj4+ID4gPiA+ICsJCWxlbiArPSBtc2ctPnNpemUgKiA4 Owo+PiA+ID4gPiArCj4+ID4gPiA+ICsJcmV0dXJuIGxlbjsKPj4gPiA+ID4gK30KPj4gPiA+ID4g Kwo+PiA+ID4gPiArc3RhdGljIGludCBkcm1fZHBfYXV4X3JlcGx5X2xlbihjb25zdCBzdHJ1Y3Qg ZHJtX2RwX2F1eF9tc2cgKm1zZykKPj4gPiA+ID4gK3sKPj4gPiA+ID4gKwlpbnQgbGVuID0gQVVY X1BSRUNIQVJHRV9MRU4gKyBBVVhfU1lOQ19MRU4gKyBBVVhfU1RPUF9MRU4gKwo+PiA+ID4gPiAr CQlBVVhfQ01EX0xFTiArIEFVWF9SRVBMWV9QQURfTEVOOwo+PiA+ID4gPiArCj4+ID4gPiA+ICsJ LyoKPj4gPiA+ID4gKwkgKiBGb3IgcmVhZCB3ZSBleHBlY3Qgd2hhdCB3YXMgYXNrZWQuIEZvciB3 cml0ZXMgdGhlcmUgd2lsbAo+PiA+ID4gPiArCSAqIGJlIDAgb3IgMSBkYXRhIGJ5dGVzLiBBc3N1 bWUgMCBmb3IgdGhlICJiZXN0IiBjYXNlLgo+PiA+ID4gPiArCSAqLwo+PiA+ID4gPiArCWlmICht c2ctPnJlcXVlc3QgJiBEUF9BVVhfSTJDX1JFQUQpCj4+ID4gPiA+ICsJCWxlbiArPSBtc2ctPnNp emUgKiA4Owo+PiA+ID4gPiArCj4+ID4gPiA+ICsJcmV0dXJuIGxlbjsKPj4gPiA+ID4gK30KPj4g PiA+ID4gKwo+PiA+ID4gPiArI2RlZmluZSBJMkNfU1RBUlRfTEVOIDEKPj4gPiA+ID4gKyNkZWZp bmUgSTJDX1NUT1BfTEVOIDEKPj4gPiA+ID4gKyNkZWZpbmUgSTJDX0FERFJfTEVOIDkgLyogQURE UkVTUyArIFIvVyArIEFDSy9OQUNLICovCj4+ID4gPiA+ICsjZGVmaW5lIEkyQ19EQVRBX0xFTiA5 IC8qIERBVEEgKyBBQ0svTkFDSyAqLwo+PiA+ID4gPiArCj4+ID4gPiA+ICsvKgo+PiA+ID4gPiAr ICogQ2FsY3VsYXRlIHRoZSBsZW5ndGggb2YgdGhlIGkyYyB0cmFuc2ZlciAoaW4gQVVYIGNsb2Nr cykKPj4gPiA+ID4gKyAqIGFzc3VtaW5nIHRoZSBpMmMgYnVzIHNwZWVkIGlzIGFzIHNwZWNpZmll ZC4gR2l2ZXMgdGhlIHRoZQo+PiA+ID4gPiArICogIndvcnN0IiBjYXNlIGVzdGltYXRlLCBpZS4g c3VjY2Vzc2Z1bCB3aGlsZSBhcyBsb25nIGFzIHBvc3NpYmxlLgo+PiA+ID4gPiArICogRG9lc24n dCBhY2NvdW50IHRoZSB0aGUgIk1PVCIgYml0LCBhbmQgaW5zdGVhZCBhc3N1bWVzIGVhY2gKPj4g PiA+ID4gKyAqIG1lc3NhZ2UgaW5jbHVkZXMgYSBTVEFSVCwgQUREUkVTUyBhbmQgU1RPUC4gTmVp dGhlciBkb2VzIGl0Cj4+ID4gPiA+ICsgKiBhY2NvdW50IGZvciBhZGRpdGlvbmFsIHJhbmRvbSB2 YXJpYWJsZXMgc3VjaCBhcyBjbG9jayBzdHJldGNoaW5nLgo+PiA+ID4gPiArICovCj4+ID4gPiA+ ICtzdGF0aWMgaW50IGRybV9kcF9pMmNfbXNnX2xlbihjb25zdCBzdHJ1Y3QgZHJtX2RwX2F1eF9t c2cgKm1zZywKPj4gPiA+ID4gKwkJCSAgICAgIGludCBpMmNfc3BlZWRfa2h6KQo+PiA+ID4gPiAr ewo+PiA+ID4gPiArCXJldHVybiAoSTJDX1NUQVJUX0xFTiArIEkyQ19BRERSX0xFTiArIG1zZy0+ c2l6ZSAqIEkyQ19EQVRBX0xFTiArCj4+ID4gPiA+ICsJCUkyQ19TVE9QX0xFTikgKiAxMDAwIC8g aTJjX3NwZWVkX2toejsKPj4gPiA+IAo+PiA+ID4gVGhpcyBkb2Vzbid0IHNlZW0gdG8gY29tcHV0 ZSB0aGUgbGVuZ2h0LCBidXQgdGhlIHRpbWUgYSB0cmFuc2ZlciB0YWtlcywgaW4KPj4gPiA+IHVz ZWMgKGlmIEkgaGF2ZW4ndCBzY3Jld2VkIHVwIG15IG51bWJlcnMgLi4uKS4gQWxzbyBESVZfUk9V TkRfRE9XTiB0byBtYWtlCj4+ID4gPiB0aGUgZGVmZW5zaXZlbmVzcyBjbGVhcj8KPj4gPiAKPj4g PiBXZWxsIGl0IHN0YXJ0ZWQgb3V0IGFzIGxlbmd0aCwgYW5kIHRoZW4gSSBmaWd1cmVkIEknbGwg anVzdCBzaG92ZSB0aGUKPj4gPiBpMmMtPmF1eCB1bml0IGNvbnZlcnNpb24gaW4gaGVyZS4gSXQn cyBhIGxlbmd0aCBpbiB0aW1lIGlmIHlvdSB3aWxsIDspCj4+ID4gCj4+ID4gQW5kIGl0IHNob3Vs ZCByYXRoZXIgYmUgRElWX1JPVU5EX1VQKCkgc2luY2Ugd2Ugd2FudCB0aGUgIm1heGltdW0iIGhl cmUuCj4+IAo+PiBIbSByaWdodCwgbWl4ZWQgdGhhdCB1cC4KPj4gCj4+ID4gPiA+ICt9Cj4+ID4g PiA+ICsKPj4gPiA+ID4gKy8qCj4+ID4gPiA+ICsgKiBEZXRlcmluZSBob3cgbWFueSByZXRyaWVz IHNob3VsZCBiZSBhdHRlbXB0ZWQgdG8gc3VjY2Vzc2Z1bGx5IHRyYW5zZmVyCj4+ID4gPiAKPj4g PiA+IERldGVyaV9tX2UuCj4+ID4gPiAKPj4gPiA+ID4gKyAqIHRoZSBzcGVjaWZpZWQgbWVzc2Fn ZSwgYmFzZWQgb24gdGhlIGVzdGltYXRlZCBkdXJhdGlvbnMgb2YgdGhlCj4+ID4gPiA+ICsgKiBp MmMgYW5kIEFVWCB0cmFuc2ZlcnMuCj4+ID4gPiA+ICsgKi8KPj4gPiA+ID4gK3N0YXRpYyBpbnQg ZHJtX2RwX2kyY19yZXRyeV9jb3VudChjb25zdCBzdHJ1Y3QgZHJtX2RwX2F1eF9tc2cgKm1zZywK Pj4gPiA+ID4gKwkJCSAgICAgIGludCBpMmNfc3BlZWRfa2h6KQo+PiA+ID4gPiArewo+PiA+ID4g PiArCWludCBhdXhfbGVuID0gZHJtX2RwX2F1eF9yZXFfbGVuKG1zZykgKyBkcm1fZHBfYXV4X3Jl cGx5X2xlbihtc2cpOwo+PiA+ID4gPiArCWludCBpMmNfbGVuID0gZHJtX2RwX2kyY19tc2dfbGVu KG1zZywgaTJjX3NwZWVkX2toeik7Cj4+ID4gPiA+ICsKPj4gPiA+ID4gKwlyZXR1cm4gRElWX1JP VU5EX1VQKGkyY19sZW4sIGF1eF9sZW4gKyBBVVhfUkVUUllfSU5URVJWQUwpOwo+PiA+ID4gCj4+ ID4gPiBTbyBhc3N1bWluZyBJIGdldCB0aGluZ3MgcmlnaHQgaTJjX2xlbiBpcyBhY3R1YWxseSBp MmNfdGltZV91cywgYnV0Cj4+ID4gPiBhdXhfbGVuIGlzIHN0aWxsIGp1c3QgYSBsZW5ndGggKGFu ZCBzaW5jZSB0aGUgYnVzIHJ1bnMgYXQgMk1IeiBpdCBkb2Vzbid0Cj4+ID4gPiBzZWVtIHRvIGp1 c3QgYWRkIHVwIGNvcnJlY3RseSkuCj4+ID4gCj4+ID4gQVVYIGJpdHJhdGUgaXMgMU1Iego+PiAK Pj4gUmlnaHQgSSByZW1lbWJlcmVkIG9ubHkgdGhhdCB3ZSBuZWVkIHRvIHB1dCBpbiB0aGUgY2xv Y2sgZGl2aWRlciBmb3IgMk1Iego+PiBmb3IgaW50ZWwgZHAgYXV4IHRyYW5zZmVycyBhbmQgZ290 IGNvbmZ1c2VkIGJ5IHRoYXQgaHcgcmVxdWlyZW1lbnQuCj4+IAo+PiBTdGlsbCBhIGNvbW1lbnQg dGhhdCB0aGUgYXV4IGNsb2NrIGlzIDFNSHogcGx1cyByZW5hbWluZyBhdXhfbGVuIHRvCj4+IGF1 eF90aW1lX3VzZWNzIHdvdWxkIGJlIGdyZWF0IGZvciBjbGFyaXR5Lgo+Cj4gRm9yZ290IHRvIGFk ZDogUmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+IGZv ciB0aGUKPiBlbnRpcmUgc2VyaWVzIGlmIHlvdSByZW5hbWUgdGhlIGZ1bmN0aW9ucy92YXJpYWJs ZXMgd2hlcmUgYXBwcm9yaWF0ZSB0bwo+IG1ha2UgaXQgY2xlYXIgdGhhdCB5b3UgY29tcHV0ZSB1 c2VjcyBhbmQgYWRkIGEgY29tbWVudCBhYm91dCB0aGUgMU1IeiBhdXgKPiBjbG9jayBhcyByZW1p bmRlciBmb3IgcGVvcGxlIGxpa2UgbWUgaGVyZSBpbiB0aGlzIHBhdGNoLgoKVGhlIHNlcmllcyBw dXNoZWQgdG8gdG9waWMvZHJtLWZpeGVzLCB0aGFua3MgZm9yIHRoZSBwYXRjaGVzIGFuZCByZXZp ZXcuCgpCUiwKSmFuaS4KCgoKCj4gLURhbmllbAo+IC0tIAo+IERhbmllbCBWZXR0ZXIKPiBTb2Z0 d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRl dmVsIG1haWxpbmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgotLSAK SmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==