From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC 1/3] drm: Add DAMAGE_CLIPS property to plane Date: Thu, 5 Apr 2018 15:47:31 +0200 Message-ID: <20180405134731.GW3881@phenom.ffwll.local> References: <1522885748-67122-1-git-send-email-drawat@vmware.com> <1522885748-67122-2-git-send-email-drawat@vmware.com> <20180405073525.GP3881@phenom.ffwll.local> <20180405100319.GT3881@phenom.ffwll.local> <810f02ce-02fa-076e-43ff-4c43455f07bb@shipmail.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x22b.google.com (mail-wm0-x22b.google.com [IPv6:2a00:1450:400c:c09::22b]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3248B6E5DA for ; Thu, 5 Apr 2018 13:47:36 +0000 (UTC) Received: by mail-wm0-x22b.google.com with SMTP id b127so5903190wmf.5 for ; Thu, 05 Apr 2018 06:47:36 -0700 (PDT) Content-Disposition: inline In-Reply-To: <810f02ce-02fa-076e-43ff-4c43455f07bb@shipmail.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thomas Hellstrom Cc: Thomas Hellstrom , airlied@linux.ie, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-graphics-maintainer@vmware.com, lukasz.spintzyk@displaylink.com, Deepak Rawat List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBBcHIgMDUsIDIwMTggYXQgMDE6MzU6MjVQTSArMDIwMCwgVGhvbWFzIEhlbGxzdHJv bSB3cm90ZToKPiBPbiAwNC8wNS8yMDE4IDEyOjAzIFBNLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ ID4gT24gVGh1LCBBcHIgMDUsIDIwMTggYXQgMTE6MDA6MTVBTSArMDIwMCwgVGhvbWFzIEhlbGxz dHJvbSB3cm90ZToKPiA+ID4gT24gMDQvMDUvMjAxOCAwOTozNSBBTSwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiA+ID4gPiBPbiBXZWQsIEFwciAwNCwgMjAxOCBhdCAwNDo0OTowNlBNIC0wNzAwLCBE ZWVwYWsgUmF3YXQgd3JvdGU6Cj4gPiA+ID4gPiBGcm9tOiBMdWthc3ogU3BpbnR6eWsgPGx1a2Fz ei5zcGludHp5a0BkaXNwbGF5bGluay5jb20+Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IE9wdGlvbmFs IHBsYW5lIHByb3BlcnR5IHRvIG1hcmsgZGFtYWdlZCByZWdpb25zIG9uIHRoZSBwbGFuZSBpbgo+ ID4gPiA+ID4gZnJhbWVidWZmZXIgY29vcmRpbmF0ZXMgb2YgdGhlIGZyYW1lYnVmZmVyIGF0dGFj aGVkIHRvIHRoZSBwbGFuZS4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gVGhlIGxheW91dCBvZiBibG9i IGRhdGEgaXMgc2ltcGx5IGFuIGFycmF5IG9mIGRybV9tb2RlX3JlY3Qgd2l0aCBtYXhpbXVtCj4g PiA+ID4gPiBhcnJheSBzaXplIGxpbWl0ZWQgYnkgRFJNX01PREVfRkJfRElSVFlfTUFYX0NMSVBT LiBVbmxpa2UgcGxhbmUgc3JjCj4gPiA+ID4gPiBjb29yZGluYXRlcywgZGFtYWdlIGNsaXBzIGFy ZSBub3QgaW4gMTYuMTYgZml4ZWQgcG9pbnQuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IERhbWFnZSBj bGlwcyBhcmUgYSBoaW50IHRvIGtlcm5lbCBhcyB3aGljaCBhcmVhIG9mIGZyYW1lYnVmZmVyIGhh cwo+ID4gPiA+ID4gY2hhbmdlZCBzaW5jZSBsYXN0IHBhZ2UtZmxpcC4gVGhpcyBzaG91bGQgYmUg aGVscGZ1bCBmb3Igc29tZSBkcml2ZXJzCj4gPiA+ID4gPiBlc3BlY2lhbGx5IGZvciB2aXJ0dWFs IGRldmljZXMgd2hlcmUgZWFjaCBmcmFtZWJ1ZmZlciBjaGFuZ2UgbmVlZHMgdG8KPiA+ID4gPiA+ IGJlIHRyYW5zbWl0dGVkIG92ZXIgbmV0d29yaywgdXNiLCBldGMuCj4gPiA+ID4gPiAKPiA+ID4g PiA+IERyaXZlciB3aGljaCBhcmUgaW50ZXJlc3RlZCBpbiBlbmFibGluZyBEQU1BR0VfQ0xJUFMg cHJvcGVydHkgZm9yIGEKPiA+ID4gPiA+IHBsYW5lIHNob3VsZCBlbmFibGUgdGhpcyBwcm9wZXJ0 eSB1c2luZyBkcm1fcGxhbmVfZW5hYmxlX2RhbWFnZV9jbGlwcy4KPiA+ID4gPiA+IAo+ID4gPiA+ ID4gU2lnbmVkLW9mZi1ieTogTHVrYXN6IFNwaW50enlrIDxsdWthc3ouc3BpbnR6eWtAZGlzcGxh eWxpbmsuY29tPgo+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogRGVlcGFrIFJhd2F0IDxkcmF3YXRA dm13YXJlLmNvbT4KPiA+ID4gPiBUaGUgcHJvcGVydHkgdWFwaSBzZWN0aW9uIGlzIG1pc3Npbmcs IHNlZToKPiA+ID4gPiAKPiA+ID4gPiBodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20v djIvdXJsP3U9aHR0cHMtM0FfX2RyaS5mcmVlZGVza3RvcC5vcmdfZG9jc19kcm1fZ3B1X2RybS0y RGttcy5odG1sLTIzcGxhbmUtMkRjb21wb3NpdGlvbi0yRHByb3BlcnRpZXMmZD1Ed0lCQWcmYz11 aWxhSzkwRDRUT1ZvSDU4Sk5YUmdRJnI9d25TbGdPQ3FmcE5TNGQwMnZQNjhfRTlxMkJOTUN3ZkQy T1pfNmRDRlZRUSZtPUozMVlOVjF1ejNJVlJhb3JNLWVvNDhtc2k5X19zUXVycVJacmlnMlVFMXMm cz12enN1cXVGMWFnYk93NTRIU0NfMThLazJrOWo4M204UnVzbURDdFBBRldRJmU9Cj4gPiA+ID4g Cj4gPiA+ID4gUGxhbmUgY29tcG9zaXRpb24gZmVlbHMgbGlrZSB0aGUgYmVzdCBwbGFjZSB0byBw dXQgdGhpcy4gUGxlYXNlIHVzZSB0aGF0Cj4gPiA+ID4gc2VjdGlvbiB0byB0aWUgYWxsIHRoZSB2 YXJpb3VzIGJpdHMgdG9nZXRoZXIsIGluY2x1ZGluZyB0aGUgaGVscGVycyB5b3UncmUKPiA+ID4g PiBhZGRpbmcgaW4gdGhlIGZvbGxvd2luZyBwYXRjaGVzIGZvciBkcml2ZXJzIHRvIHVzZS4KPiA+ ID4gPiAKPiA+ID4gPiBCdW5jaCBvZiBuaXRwaWNrcyBiZWxvdywgYnV0IG92ZXJhbGwgSSdtIGFn cmVlaW5nIG5vdyB3aXRoIGp1c3QgZ29pbmcgd2l0aAo+ID4gPiA+IGZiIGNvb3JkaW5hdGUgZGFt YWdlIHJlY3RzLgo+ID4gPiA+IAo+ID4gPiA+IExpa2UgeW91IHNheSwgdGhlIHRoaW5nIG5lZWRl ZCBoZXJlIG5vdyBpcyB1c2Vyc3BhY2UgKyBkcml2ZXIgYWN0dWFsbHkKPiA+ID4gPiBpbXBsZW1l bnRpbmcgdGhpcy4gSSdkIGFsc28gc2F5IHRoZSBjb21wYXQgaGVscGVyIHRvIG1hcCB0aGUgbGVn YWN5Cj4gPiA+ID4gZmItPmRpcnR5IHRvIHRoaXMgbmV3IGF0b21pYyB3YXkgb2YgZG9pbmcgdGhp bmdzIHNob3VsZCBiZSBpbmNsdWRlZCBoZXJlCj4gPiA+ID4gKGdpdmVzIHVzIGEgbG90IG1vcmUg dGVzdGluZyBmb3IgdGhlc2UgbmV3IHBhdGhzKS4KPiA+ID4gPiAKPiA+ID4gPiBJY2luZyBvbiB0 aGUgY2FrZSB3b3VsZCBiZSBhbiBpZ3QgdG8gbWFrZSBzdXJlIGtlcm5lbCByZWplY3RzIGludmFs aWQgY2xpcAo+ID4gPiA+IHJlY3RzIGNvcnJlY3RseS4KPiA+ID4gPiAKPiA+ID4gPiA+IC0tLQo+ ID4gPiA+ID4gICAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICAgICAgfCA0MiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiA+ID4gPiAgICBkcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyB8ICA0ICsrKysKPiA+ID4gPiA+ICAgIGRyaXZlcnMv Z3B1L2RybS9kcm1fbW9kZV9jb25maWcuYyAgIHwgIDUgKysrKysKPiA+ID4gPiA+ICAgIGRyaXZl cnMvZ3B1L2RybS9kcm1fcGxhbmUuYyAgICAgICAgIHwgMTIgKysrKysrKysrKysKPiA+ID4gPiA+ ICAgIGluY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oICAgICAgIHwgMTUgKysrKysrKysrKysr Kwo+ID4gPiA+ID4gICAgaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmggICAgICAgICAgICAgfCAxNiAr KysrKysrKysrKysrKwo+ID4gPiA+ID4gICAgaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oICAg ICAgICAgfCAxNSArKysrKysrKysrKysrCj4gPiA+ID4gPiAgICA3IGZpbGVzIGNoYW5nZWQsIDEw OSBpbnNlcnRpb25zKCspCj4gPiA+ID4gPiAKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ID4g PiA+ID4gaW5kZXggN2QyNWM0Mi4uOTIyNmQyNCAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljLmMKPiA+ID4gPiA+IEBAIC02NjksNiArNjY5LDQwIEBAIHN0YXRpYyB2b2lkIGRy bV9hdG9taWNfY3J0Y19wcmludF9zdGF0ZShzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsCj4gPiA+ID4g PiAgICB9Cj4gPiA+ID4gPiAgICAvKioKPiA+ID4gPiA+ICsgKiBkcm1fYXRvbWljX3NldF9kYW1h Z2VfZm9yX3BsYW5lIC0gc2V0cyB0aGUgZGFtYWdlIGNsaXBzIHByb3BlcnR5IHRvIHBsYW5lCj4g PiA+ID4gPiArICogQHN0YXRlOiBwbGFuZSBzdGF0ZQo+ID4gPiA+ID4gKyAqIEBibG9iOiBkYW1h Z2UgY2xpcHMgaW4gZnJhbWVidWZmZXIgY29vcmRpbmF0ZXMKPiA+ID4gPiA+ICsgKgo+ID4gPiA+ ID4gKyAqIFJldHVybnM6Cj4gPiA+ID4gPiArICoKPiA+ID4gPiA+ICsgKiBaZXJvIG9uIHN1Y2Nl c3MsIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiA+ID4gPiA+ICsgKi8KPiA+ID4gPiA+ICtzdGF0 aWMgaW50IGRybV9hdG9taWNfc2V0X2RhbWFnZV9mb3JfcGxhbmUoc3RydWN0IGRybV9wbGFuZV9z dGF0ZSAqc3RhdGUsCj4gPiA+ID4gPiArCQkJCQkgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2Ig KmJsb2IpCj4gPiA+ID4gPiArewo+ID4gPiA+ID4gKwlpZiAoYmxvYiA9PSBzdGF0ZS0+ZGFtYWdl X2NsaXBzKQo+ID4gPiA+ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCWRy bV9wcm9wZXJ0eV9ibG9iX3B1dChzdGF0ZS0+ZGFtYWdlX2NsaXBzKTsKPiA+ID4gPiA+ICsJc3Rh dGUtPmRhbWFnZV9jbGlwcyA9IE5VTEw7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCWlmIChibG9i KSB7Cj4gPiA+ID4gPiArCQl1aW50MzJfdCBjb3VudCA9IGJsb2ItPmxlbmd0aC9zaXplb2Yoc3Ry dWN0IGRybV9yZWN0KTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJCWlmIChjb3VudCA+IERSTV9N T0RFX0ZCX0RJUlRZX01BWF9DTElQUykKPiA+ID4gPiA+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiA+ ID4gPiA+ICsKPiA+ID4gPiA+ICsJCXN0YXRlLT5kYW1hZ2VfY2xpcHMgPSBkcm1fcHJvcGVydHlf YmxvYl9nZXQoYmxvYik7Cj4gPiA+ID4gPiArCQlzdGF0ZS0+bnVtX2NsaXBzID0gY291bnQ7Cj4g PiA+ID4gPiArCX0gZWxzZSB7Cj4gPiA+ID4gPiArCQlzdGF0ZS0+ZGFtYWdlX2NsaXBzID0gTlVM TDsKPiA+ID4gPiA+ICsJCXN0YXRlLT5udW1fY2xpcHMgPSAwOwo+ID4gPiA+ID4gKwl9Cj4gPiA+ ID4gPiArCj4gPiA+ID4gPiArCXJldHVybiAwOwo+ID4gPiA+ID4gK30KPiA+ID4gPiA+ICsKPiA+ ID4gPiA+ICsvKioKPiA+ID4gPiA+ICAgICAqIGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlIC0g Z2V0IHBsYW5lIHN0YXRlCj4gPiA+ID4gPiAgICAgKiBAc3RhdGU6IGdsb2JhbCBhdG9taWMgc3Rh dGUgb2JqZWN0Cj4gPiA+ID4gPiAgICAgKiBAcGxhbmU6IHBsYW5lIHRvIGdldCBzdGF0ZSBvYmpl Y3QgZm9yCj4gPiA+ID4gPiBAQCAtNzkzLDYgKzgyNywxMiBAQCBzdGF0aWMgaW50IGRybV9hdG9t aWNfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gPiA+ID4g ICAgCQlzdGF0ZS0+Y29sb3JfZW5jb2RpbmcgPSB2YWw7Cj4gPiA+ID4gPiAgICAJfSBlbHNlIGlm IChwcm9wZXJ0eSA9PSBwbGFuZS0+Y29sb3JfcmFuZ2VfcHJvcGVydHkpIHsKPiA+ID4gPiA+ICAg IAkJc3RhdGUtPmNvbG9yX3JhbmdlID0gdmFsOwo+ID4gPiA+ID4gKwl9IGVsc2UgaWYgKHByb3Bl cnR5ID09IGNvbmZpZy0+cHJvcF9kYW1hZ2VfY2xpcHMpIHsKPiA+ID4gPiA+ICsJCXN0cnVjdCBk cm1fcHJvcGVydHlfYmxvYiAqYmxvYiA9Cj4gPiA+ID4gPiArCQkJZHJtX3Byb3BlcnR5X2xvb2t1 cF9ibG9iKGRldiwgdmFsKTsKPiA+ID4gPiA+ICsJCWludCByZXQgPSBkcm1fYXRvbWljX3NldF9k YW1hZ2VfZm9yX3BsYW5lKHN0YXRlLCBibG9iKTsKPiA+ID4gPiBUaGVyZSdzIGFscmVhZHkgYSBo ZWxwZXIgd2l0aCBzaXplLWNoZWNraW5nIGJ1aWx0LWluLCBzZWUKPiA+ID4gPiBkcm1fYXRvbWlj X3JlcGxhY2VfcHJvcGVydHlfYmxvYl9mcm9tX2lkKCkuIFdydCBjb21wdXRpbmcgbnVtX2NsaXBz IEknZAo+ID4gPiA+IGp1c3QgcHJvdmlkZSBhIGxpdHRsZSBpbmxpbmUgaGVscGVyIHRoYXQgZG9l cyB0aGUKPiA+ID4gPiBibG9iLT5sZW5ndGgvc2l6ZW9mKGRybV9yZWN0KSBjb252ZXJzaW9uIChp dCdzIGp1c3QgYSBzaGlmdCwgc28gZmFzdCkuCj4gPiA+ID4gCj4gPiA+ID4gPiArCQlkcm1fcHJv cGVydHlfYmxvYl9wdXQoYmxvYik7Cj4gPiA+ID4gPiArCQlyZXR1cm4gcmV0Owo+ID4gPiA+ID4g ICAgCX0gZWxzZSBpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KSB7Cj4gPiA+ ID4gPiAgICAJCXJldHVybiBwbGFuZS0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkocGxhbmUs IHN0YXRlLAo+ID4gPiA+ID4gICAgCQkJCXByb3BlcnR5LCB2YWwpOwo+ID4gPiA+ID4gQEAgLTg1 Niw2ICs4OTYsOCBAQCBkcm1fYXRvbWljX3BsYW5lX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKPiA+ID4gPiA+ICAgIAkJKnZhbCA9IHN0YXRlLT5jb2xvcl9lbmNvZGluZzsK PiA+ID4gPiA+ICAgIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT5jb2xvcl9yYW5nZV9w cm9wZXJ0eSkgewo+ID4gPiA+ID4gICAgCQkqdmFsID0gc3RhdGUtPmNvbG9yX3JhbmdlOwo+ID4g PiA+ID4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cHJvcF9kYW1hZ2VfY2xpcHMp IHsKPiA+ID4gPiA+ICsJCSp2YWwgPSAoc3RhdGUtPmRhbWFnZV9jbGlwcykgPyBzdGF0ZS0+ZGFt YWdlX2NsaXBzLT5iYXNlLmlkIDogMDsKPiA+ID4gPiA+ICAgIAl9IGVsc2UgaWYgKHBsYW5lLT5m dW5jcy0+YXRvbWljX2dldF9wcm9wZXJ0eSkgewo+ID4gPiA+ID4gICAgCQlyZXR1cm4gcGxhbmUt PmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5KHBsYW5lLCBzdGF0ZSwgcHJvcGVydHksIHZhbCk7 Cj4gPiA+ID4gPiAgICAJfSBlbHNlIHsKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jCj4gPiA+ID4gPiBpbmRleCBjMzU2NTQ1Li41NWI0NGUzIDEwMDY0NAo+ID4gPiA+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiA+ID4gPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gPiA+ID4gPiBAQCAtMzUwNiw2 ICszNTA2LDggQEAgdm9pZCBfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0 ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ID4gPiA+ICAgIAlzdGF0ZS0+ZmVuY2UgPSBO VUxMOwo+ID4gPiA+ID4gICAgCXN0YXRlLT5jb21taXQgPSBOVUxMOwo+ID4gPiA+ID4gKwlzdGF0 ZS0+ZGFtYWdlX2NsaXBzID0gTlVMTDsKPiA+ID4gPiA+ICsJc3RhdGUtPm51bV9jbGlwcyA9IDA7 Cj4gPiA+ID4gPiAgICB9Cj4gPiA+ID4gPiAgICBFWFBPUlRfU1lNQk9MKF9fZHJtX2F0b21pY19o ZWxwZXJfcGxhbmVfZHVwbGljYXRlX3N0YXRlKTsKPiA+ID4gPiA+IEBAIC0zNTUwLDYgKzM1NTIs OCBAQCB2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZGVzdHJveV9zdGF0ZShzdHJ1Y3Qg ZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKPiA+ID4gPiA+ICAgIAlpZiAoc3RhdGUtPmNvbW1pdCkK PiA+ID4gPiA+ICAgIAkJZHJtX2NydGNfY29tbWl0X3B1dChzdGF0ZS0+Y29tbWl0KTsKPiA+ID4g PiA+ICsKPiA+ID4gPiA+ICsJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KHN0YXRlLT5kYW1hZ2VfY2xp cHMpOwo+ID4gPiA+ID4gICAgfQo+ID4gPiA+ID4gICAgRVhQT1JUX1NZTUJPTChfX2RybV9hdG9t aWNfaGVscGVyX3BsYW5lX2Rlc3Ryb3lfc3RhdGUpOwo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9jb25maWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9k ZV9jb25maWcuYwo+ID4gPiA+ID4gaW5kZXggZTVjNjUzMy4uZTkzYjEyNyAxMDA2NDQKPiA+ID4g PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9jb25maWcuYwo+ID4gPiA+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX2NvbmZpZy5jCj4gPiA+ID4gPiBAQCAtMjkzLDYg KzI5MywxMSBAQCBzdGF0aWMgaW50IGRybV9tb2RlX2NyZWF0ZV9zdGFuZGFyZF9wcm9wZXJ0aWVz KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiA+ID4gPiAgICAJCXJldHVybiAtRU5PTUVNOwo+ ID4gPiA+ID4gICAgCWRldi0+bW9kZV9jb25maWcucHJvcF9jcnRjX2lkID0gcHJvcDsKPiA+ID4g PiA+ICsJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGUoZGV2LCBEUk1fTU9ERV9QUk9QX0JMT0Is ICJEQU1BR0VfQ0xJUFMiLCAwKTsKPiA+ID4gPiBCaXQgYSBiaWtlc2hlZCwgYnV0IHNpbmNlIHRo ZSBjb29yZGluYXRlcyBhcmUgaW4gZmIgcGl4ZWxzLCBub3QgcGxhbmUKPiA+ID4gPiBwaXhlbHMs IEknZCBjYWxsIHRoaXMgIkZCX0RBTUFHRV9DTElQUyIuCj4gPiA+ID4gCj4gPiA+ID4gPiArCWlm ICghcHJvcCkKPiA+ID4gPiA+ICsJCXJldHVybiAtRU5PTUVNOwo+ID4gPiA+ID4gKwlkZXYtPm1v ZGVfY29uZmlnLnByb3BfZGFtYWdlX2NsaXBzID0gcHJvcDsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ ICAgIAlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9ib29sKGRldiwgRFJNX01PREVfUFJPUF9B VE9NSUMsCj4gPiA+ID4gPiAgICAJCQkiQUNUSVZFIik7Cj4gPiA+ID4gPiAgICAJaWYgKCFwcm9w KQo+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYwo+ID4gPiA+ID4gaW5kZXggNmQyYTZlNC4uMDcxMjIx YiAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYwo+ID4g PiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jCj4gPiA+ID4gPiBAQCAtMTEw MSwzICsxMTAxLDE1IEBAIGludCBkcm1fbW9kZV9wYWdlX2ZsaXBfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiA+ID4gPiA+ICAgIAlyZXR1cm4gcmV0Owo+ID4gPiA+ID4gICAgfQo+ID4g PiA+ID4gKwo+ID4gPiA+ID4gKy8qKgo+ID4gPiA+ID4gKyAqIGRybV9wbGFuZV9lbmFibGVfZGFt YWdlX2NsaXBzIC0gZW5hYmxlIGRhbWFnZSBjbGlwcyBwcm9wZXJ0eQo+ID4gPiA+ID4gKyAqIEBw bGFuZTogcGxhbmUgb24gd2hpY2ggdGhpcyBwcm9wZXJ0eSB0byBlbmFibGUuCj4gPiA+ID4gPiAr ICovCj4gPiA+ID4gPiArdm9pZCBkcm1fcGxhbmVfZW5hYmxlX2RhbWFnZV9jbGlwcyhzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSkKPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBwbGFuZS0+ZGV2Owo+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJtX21vZGVfY29uZmln ICpjb25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJZHJt X29iamVjdF9hdHRhY2hfcHJvcGVydHkoJnBsYW5lLT5iYXNlLCBjb25maWctPnByb3BfZGFtYWdl X2NsaXBzLCAwKTsKPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vZHJtX21vZGVfY29uZmlnLmggYi9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaAo+ID4g PiA+ID4gaW5kZXggNzU2OWYyMi4uZDg3NjdkYSAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2luY2x1 ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCj4gPiA+ID4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1f bW9kZV9jb25maWcuaAo+ID4gPiA+ID4gQEAgLTYyOCw2ICs2MjgsMjEgQEAgc3RydWN0IGRybV9t b2RlX2NvbmZpZyB7Cj4gPiA+ID4gPiAgICAJICovCj4gPiA+ID4gPiAgICAJc3RydWN0IGRybV9w cm9wZXJ0eSAqcHJvcF9jcnRjX2lkOwo+ID4gPiA+ID4gICAgCS8qKgo+ID4gPiA+ID4gKwkgKiBA cHJvcF9kYW1hZ2VfY2xpcHM6IE9wdGlvbmFsIHBsYW5lIHByb3BlcnR5IHRvIG1hcmsgZGFtYWdl ZCByZWdpb25zCj4gPiA+ID4gPiArCSAqIG9uIHRoZSBwbGFuZSBpbiBmcmFtZWJ1ZmZlciBjb29y ZGluYXRlcyBvZiB0aGUgZnJhbWVidWZmZXIgYXR0YWNoZWQKPiA+ID4gPiA+ICsJICogdG8gdGhl IHBsYW5lLgo+ID4gPiA+IFdoeSBzaG91bGQgd2UgbWFrZSB0aGlzIG9wdGlvbmFsPyBMb29rcyBs aWtlIGp1c3QgYW5vdGhlciB0aGluZyBkcml2ZXJzCj4gPiA+ID4gbWlnaHQgc2NyZXcgdXAsIHNp bmNlIHdlIGhhdmUgbXVsdGlwbGUgY2FsbGJhY2tzIGFuZCB0aGluZ3MgdG8gc2V0IHVwIGZvcgo+ ID4gPiA+IHByb3BlciBkaXJ0eSB0cmFja2luZy4KPiA+ID4gPiAKPiA+ID4gPiBPbmUgb3B0aW9u IEknbSBzZWVpbmcgaXMgdGhhdCBpZiB0aGlzIGlzIHNldCwgYW5kIGl0J3MgYW4gYXRvbWljIGRy aXZlciwKPiA+ID4gPiB0aGVuIHdlIGp1c3QgZGlyZWN0bHkgY2FsbCBpbnRvIHRoZSBkZWZhdWx0 IGF0b21pYyBmYi0+ZGlydHkKPiA+ID4gPiBpbXBsZW1lbnRhdGlvbi4gVGhhdCB3YXkgdGhlcmUn cyBvbmx5IDEgdGhpbmcgZHJpdmVycyBuZWVkIHRvIGRvIHRvIHNldCB1cAo+ID4gPiA+IGRpcnR5 IHJlY3QgdHJhY2tpbmcsIGFuZCB0aGV5J2xsIGdldCBhbGwgb2YgaXQuCj4gPiA+ID4gCj4gPiA+ ID4gPiArCSAqCj4gPiA+ID4gPiArCSAqIFRoZSBsYXlvdXQgb2YgYmxvYiBkYXRhIGlzIHNpbXBs eSBhbiBhcnJheSBvZiBkcm1fbW9kZV9yZWN0IHdpdGgKPiA+ID4gPiA+ICsJICogbWF4aW11bSBh cnJheSBzaXplIGxpbWl0ZWQgYnkgRFJNX01PREVfRkJfRElSVFlfTUFYX0NMSVBTLiBVbmxpa2UK PiA+ID4gPiA+ICsJICogcGxhbmUgc3JjIGNvb3JkaW5hdGVzLCBkYW1hZ2UgY2xpcHMgYXJlIG5v dCBpbiAxNi4xNiBmaXhlZCBwb2ludC4KPiA+ID4gPiBJIGhvbmVzdGx5IGhhdmUgbm8gaWRlYSB3 aGVyZSB0aGlzIGxpbWl0IGlzIGZyb20uIFdvcnRoIGtlZXBpbmc/IEkgY2FuCj4gPiA+ID4gZWFz aWx5IGltYWdpbmUgdGhhdCB1c2Vyc3BhY2UgY291bGQgdHJpcCBvdmVyIHRoaXMgLSBpdCdzIGZh aXJseSBoaWdoLCBidXQKPiA+ID4gPiBub3QgdW5saW1pdGVkLgo+ID4gPiA+IAo+ID4gPiA+ID4g KwkgKgo+ID4gPiA+ID4gKwkgKiBEYW1hZ2UgY2xpcHMgYXJlIGEgaGludCB0byBrZXJuZWwgYXMg d2hpY2ggYXJlYSBvZiBmcmFtZWJ1ZmZlciBoYXMKPiA+ID4gPiA+ICsJICogY2hhbmdlZCBzaW5j ZSBsYXN0IHBhZ2UtZmxpcC4gVGhpcyBzaG91bGQgYmUgaGVscGZ1bAo+ID4gPiA+ID4gKwkgKiBm b3Igc29tZSBkcml2ZXJzIGVzcGVjaWFsbHkgZm9yIHZpcnR1YWwgZGV2aWNlcyB3aGVyZSBlYWNo Cj4gPiA+ID4gPiArCSAqIGZyYW1lYnVmZmVyIGNoYW5nZSBuZWVkcyB0byBiZSB0cmFuc21pdHRl ZCBvdmVyIG5ldHdvcmssIHVzYiwgZXRjLgo+ID4gPiA+IEknZCBhbHNvIGNsYXJpZnkgdGhhdCB1 c2Vyc3BhY2Ugc3RpbGwgbXVzdCByZW5kZXIgdGhlIGVudGlyZSBzY3JlZW4sIGkuZS4KPiA+ID4g PiBtYWtlIGl0IG1vcmUgY2xlYXIgdGhhdCBpdCdzIHJlYWxseSBqdXN0IGEgaGludCBhbmQgbm90 IG1hbmRhdG9yeSB0byBvbmx5Cj4gPiA+ID4gc2NhbiBvdXQgdGhlIGRhbWFnZWQgcGFydHMuCj4g PiA+ID4gCj4gPiA+ID4gPiArCSAqLwo+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpw cm9wX2RhbWFnZV9jbGlwczsKPiA+ID4gPiA+ICsJLyoqCj4gPiA+ID4gPiAgICAJICogQHByb3Bf YWN0aXZlOiBEZWZhdWx0IGF0b21pYyBDUlRDIHByb3BlcnR5IHRvIGNvbnRyb2wgdGhlIGFjdGl2 ZQo+ID4gPiA+ID4gICAgCSAqIHN0YXRlLCB3aGljaCBpcyB0aGUgc2ltcGxpZmllZCBpbXBsZW1l bnRhdGlvbiBmb3IgRFBNUyBpbiBhdG9taWMKPiA+ID4gPiA+ICAgIAkgKiBkcml2ZXJzLgo+ID4g PiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oIGIvaW5jbHVkZS9kcm0v ZHJtX3BsYW5lLmgKPiA+ID4gPiA+IGluZGV4IGY3YmY0YTQuLjlmMjQ1NDggMTAwNjQ0Cj4gPiA+ ID4gPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+ID4gPiA+ID4gKysrIGIvaW5jbHVk ZS9kcm0vZHJtX3BsYW5lLmgKPiA+ID4gPiA+IEBAIC0xNDYsNiArMTQ2LDIxIEBAIHN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgewo+ID4gPiA+ID4gICAgCSAqLwo+ID4gPiA+ID4gICAgCXN0cnVjdCBk cm1fY3J0Y19jb21taXQgKmNvbW1pdDsKPiA+ID4gPiA+ICsJLyoKPiA+ID4gPiA+ICsJICogQGRh bWFnZV9jbGlwcwo+ID4gPiA+ID4gKwkgKgo+ID4gPiA+ID4gKwkgKiBibG9iIHByb3BlcnR5IHdp dGggZGFtYWdlIGFzIGFycmF5IG9mIGRybV9yZWN0IGluIGZyYW1lYnVmZmVyCj4gPiA+ID4gJmRy bV9yZWN0IGdpdmVzIHlvdSBhIG5pY2UgaHlwZXJsaW5rIGluIHRoZSBnZW5lcmF0ZWQgZG9jcy4K PiA+ID4gPiAKPiA+ID4gPiA+ICsJICogY29vZGluYXRlcy4KPiA+ID4gPiA+ICsJICovCj4gPiA+ ID4gPiArCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZGFtYWdlX2NsaXBzOwo+ID4gPiA+ID4g Kwo+ID4gPiA+ID4gKwkvKgo+ID4gPiA+ID4gKwkgKiBAbnVtX2NsaXBzCj4gPiA+ID4gPiArCSAq Cj4gPiA+ID4gPiArCSAqIE51bWJlciBvZiBkcm1fcmVjdCBpbiBAZGFtYWdlX2NsaXBzLgo+ID4g PiA+ID4gKwkgKi8KPiA+ID4gPiA+ICsJdWludDMyX3QgbnVtX2NsaXBzOwo+ID4gPiA+ID4gKwo+ ID4gPiA+ID4gICAgCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiA+ID4gPiA+ICAg IH07Cj4gPiA+ID4gPiBAQCAtNjExLDYgKzYyNiw3IEBAIGludCBkcm1fcGxhbmVfaW5pdChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gPiA+ID4gICAgCQkgICBjb25zdCB1aW50MzJfdCAqZm9y bWF0cywgdW5zaWduZWQgaW50IGZvcm1hdF9jb3VudCwKPiA+ID4gPiA+ICAgIAkJICAgYm9vbCBp c19wcmltYXJ5KTsKPiA+ID4gPiA+ICAgIHZvaWQgZHJtX3BsYW5lX2NsZWFudXAoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUpOwo+ID4gPiA+ID4gK3ZvaWQgZHJtX3BsYW5lX2VuYWJsZV9kYW1hZ2Vf Y2xpcHMoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpOwo+ID4gPiA+ID4gICAgLyoqCj4gPiA+ID4g PiAgICAgKiBkcm1fcGxhbmVfaW5kZXggLSBmaW5kIHRoZSBpbmRleCBvZiBhIHJlZ2lzdGVyZWQg cGxhbmUKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgg Yi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKPiA+ID4gPiA+IGluZGV4IDUwYmNmNDIuLjBh ZDBkNWIgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgK PiA+ID4gPiA+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAo+ID4gPiA+ID4gQEAg LTg3Myw2ICs4NzMsMjEgQEAgc3RydWN0IGRybV9tb2RlX3Jldm9rZV9sZWFzZSB7Cj4gPiA+ID4g PiAgICAJX191MzIgbGVzc2VlX2lkOwo+ID4gPiA+ID4gICAgfTsKPiA+ID4gPiA+ICsvKioKPiA+ ID4gPiA+ICsgKiBzdHJ1Y3QgZHJtX21vZGVfcmVjdCAtIHR3byBkaW1lbnNpb25hbCByZWN0YW5n bGUgZHJtX3JlY3QgZXhwb3J0ZWQgdG8KPiA+ID4gPiA+ICsgKiB1c2VyLXNwYWNlLgo+ID4gPiA+ ID4gKyAqIEB4MTogaG9yaXpvbnRhbCBzdGFydGluZyBjb29yZGluYXRlIChpbmNsdXNpdmUpCj4g PiA+ID4gPiArICogQHkxOiB2ZXJ0aWNhbCBzdGFydGluZyBjb29yZGluYXRlIChpbmNsdXNpdmUp Cj4gPiA+ID4gPiArICogQHgyOiBob3Jpem9udGFsIGVuZGluZyBjb29yZGluYXRlIChleGNsdXNp dmUpCj4gPiA+ID4gPiArICogQHkyOiB2ZXJ0aWNhbCBlbmRpbmcgY29vcmRpbmF0ZSAoZXhjbHVz aXZlKQo+ID4gPiA+ID4gKyAqLwo+ID4gPiA+ID4gK3N0cnVjdCBkcm1fbW9kZV9yZWN0IHsKPiA+ ID4gPiA+ICsJX19zMzIgeDE7Cj4gPiA+ID4gPiArCV9fczMyIHkxOwo+ID4gPiA+ID4gKwlfX3Mz MiB4MjsKPiA+ID4gPiA+ICsJX19zMzIgeTI7Cj4gPiA+ID4gV2h5IHNpZ25lZD8gTmVnYXRpdmUg ZGFtYWdlIHJlY3RzIG9uIGFuIGZiIGRvbid0IG1ha2Ugc2Vuc2UgdG8gbWUuIEFsc28sCj4gPiA+ ID4gcGxlYXNlIHNwZWNpZnkgd2hhdCB0aGlzIGlzIGV4YWN0bHkgKHRvIGF2b2lkIGNvbmZ1c2lv biB3aXRoIHRoZSAxNi4xNgo+ID4gPiA+IGZpeGVkIHBvaW50IHNyYyByZWN0cyksIGFuZCBtYXli ZSBtZW50aW9uIGluIHRoZSBjb21taXQgbWVzc2FnZSB3aHkgd2UncmUKPiA+ID4gPiBub3QgdXNp bmcgZHJtX2NsaXBfcmVjdCAoZ29pbmcgdG8gcHJvcGVyIHVhcGkgdHlwZXMgYW5kIDMyYml0IG1h a2VzIHNlbnNlCj4gPiA+ID4gdG8gbWUpLgo+ID4gPiBJTU8sIHdoaWxlIHdlIGRvbid0IGV4cGVj dCBuZWdhdGl2ZSBkYW1hZ2UgY29vcmRpbmF0ZXMsCj4gPiA+IHRvIGF2b2lkIHlldCBhbm90aGVy IGRybSB1YXBpIHJlY3QgaW4gdGhlIGZ1dHVyZSB3aGVuIHdlIGFjdHVhbGx5IG5lZWQKPiA+ID4g bmVnYXRpdmUgbnVtYmVycyBzaWduZWQgaXMgYSBnb29kIGNob2ljZS4uLgo+ID4gTWFrZXMgc2Vu c2UuIEFub3RoZXIgdGhpbmcgSSByZWFsaXplZDogU2luY2Ugc3JjIHJlY3QgYXJlIDE2LjE2IGZp eGVkCj4gPiBwb2ludCwgZG8gd2UgcmVhbGx5IG5lZWQgczMyPyBkcm1fY2xpcF9yZWN0IGlzIGEg Yml0IG1laCwgYnV0IGl0IGdpdmVzIHVzCj4gPiBzMTYgYWxyZWFkeS4gVGhhdCB3b3VsZCBhdm9p ZCBoYXZpbmcgdG8gc3ByaW5rbGUgdGhlIGNvZGUgd2l0aCB0b25zIG9mCj4gPiBvdmVyZmxvdyBj aGVja3MgZm9yIGlucHV0IHZhbGlkYXRpb24uCj4gCj4gSU1ITywgc29vbmVyIG9yIGxhdGVyIHdl J3JlIGdvaW5nIHRvIHJ1biBpbnRvIHRoZSBzMTYgbGltaXRhdGlvbiwgYW5kIEkKPiB0aGluayB3 ZSBzaG91bGQgc3RhcnQKPiBtYWtpbmcgdXNlci1zcGFjZSBBUElzID4gMTUgYml0IGNvb3JkaW5h dGUgc2FmZS4gSSBhZ3JlZSB0aGlzIGNvdWxkIGxlYWQgdG8KPiBzb21lIHZhbGlkYXRpb24KPiBn cmllZiBpbiB0aGUgc2hvcnQgcnVuLCBidXQgbGVzcyB0byBmaXggdXAgbGF0ZXIuCgpJZiBhbGwg dGhlIGNvcm5lci1jYXNlIHZhbGlkYXRpb24gY29tZXMgd2l0aCBzZWxmdGVzdHMgSSdtIGhhcHB5 IHRvIHJldmlldwp0aGVtIGZvciBjb21wbGV0ZW5lc3MuIEknbSBub3QgZ29vZCBlbm91Z2ggdG8g ZmlndXJlIG91dCB3aGV0aGVyIHRoZXJlJ3MKbWlzc2luZyBzdHVmZiBieSBqdXN0IGxvb2tpbmcg YXQgdGhlIHZhbGlkYXRpb24gY29kZSBnZW5lcmFsbHkuCgo+IEhvdyBkaWZmaWN1bHQgaXMgaXQg dG8gbWFrZSB0aGUga2VybmVsLWludGVybmFsIDE2LjE2IGZpeGVkIHBvaW50IDQ4LjE2PwoKU2lu Y2Ugd2UgcmFuZ2UtbGltaXQgcHJvcGVydGllcyBpdCBzaG91bGQgd29yayBvdXQuIEJ1dCB0aGF0 IG1lYW5zIGVhc3kKYml0c2hpZnRpbmcgd2lsbCBtdWNoIG1vcmUgbGlrZWx5IG92ZXJmbG93LCBh bmQgSSBraW5kYSBkb24ndCB3YW50IHRvCmF1ZGl0IGFsbCB0aG9zZSBwbGFjZXMgZm9yIHNvbWV0 aGluZyB3ZSBkb24ndCB5ZXQgbmVlZC4gRXZlbiA4ayBpcyBzdGlsbCBhCmJpdCBvZmYgZnJvbSB0 aGUgbGltaXQuCgpPbmNlIHdlIGhhdmUgaHcgdGhhdCBjYW4gc2NhbiBvdXQgMzJrIGJ1ZmZlcnMg d2UnbGwgcHJvYmFibHkgaGF2ZSB0byBmaXgKdXAgZXZlcnl0aGluZyA6LS8KLURhbmllbAo+IAo+ IC9UaG9tYXMKPiAKPiAKPiA+IAo+ID4gT24gdGhlIHRvcGljIG9mIGlucHV0IHZhbGlkYXRpb246 IFNob3VsZCB0aGUga2VybmVsIGNoZWNrIGluIHNoYXJlZCBjb2RlCj4gPiB0aGF0IGFsbCB0aGUg Y2xpcCByZWN0cyBhcmUgc2Vuc2libGUsIGkuZS4gd2l0aGluIHRoZSBkaW1lbnNpb25zIG9mIHRo ZQo+ID4gZmI/IFJlbHlpbmcgb24gZHJpdmVycyBmb3IgdGhhdCBzZWVtcyBsaWtlIGEgYmFkIGlk ZWEuCj4gPiAKPiA+IFRoYXQgY291bGQgYmUgZG9uZSBpbiBjb3JlIGNvZGUgaW4gZHJtX2F0b21p Y19wbGFuZV9jaGVjaygpLgo+ID4gLURhbmllbAo+ID4gPiAvVGhvbWFzCj4gPiA+IAo+ID4gPiAK PiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ ID4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+ID4gPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCj4gPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCj4gCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50 ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==