From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH RFC] drm: Add a new connector atomic property for link status Date: Wed, 23 Nov 2016 17:52:16 +0200 Message-ID: <87polmurbj.fsf@intel.com> References: <1479864621-8105-1-git-send-email-manasi.d.navare@intel.com> <20161123080928.ywu4njrdk6s4xlsc@phenom.ffwll.local> <87shqiut0x.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sean Paul Cc: Manasi Navare , Daniel Vetter , Intel Graphics Development , dri-devel List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMyBOb3YgMjAxNiwgU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+IHdy b3RlOgo+IE9uIFdlZCwgTm92IDIzLCAyMDE2IGF0IDEwOjE1IEFNLCBKYW5pIE5pa3VsYQo+IDxq YW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+IHdyb3RlOgo+PiBPbiBXZWQsIDIzIE5vdiAyMDE2 LCBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4gd3JvdGU6Cj4+PiBPbiBXZWQsIE5v diAyMywgMjAxNiBhdCAzOjA5IEFNLCBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+IHdy b3RlOgo+Pj4+IE9uIFR1ZSwgTm92IDIyLCAyMDE2IGF0IDA5OjI3OjM1UE0gLTA1MDAsIFNlYW4g UGF1bCB3cm90ZToKPj4+Pj4gT24gVHVlLCBOb3YgMjIsIDIwMTYgYXQgODozMCBQTSwgTWFuYXNp IE5hdmFyZQo+Pj4+PiA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4gd3JvdGU6Cj4+Pj4+ID4g VGhpcyBpcyBSRkMgcGF0Y2ggZm9yIGFkZGluZyBhIGNvbm5lY3RvciBsaW5rLXN0YXR1cyBwcm9w ZXJ0eQo+Pj4+PiA+IGFuZCBtYWtpbmcgaXQgYXRvbWljIGJ5IGFkZGluZyBpdCB0byB0aGUgZHJt X2Nvbm5lY3Rvcl9zdGF0ZS4KPj4+Pj4gPiBUaGlzIGlzIHRvIG1ha2Ugc3VyZSBpdHMgd2lyZWQg cHJvcGVybHkgaW4gZHJtX2F0b21pY19jb25uZWN0b3Jfc2V0X3Byb3BlcnR5Cj4+Pj4+ID4gYW5k IGRybV9hdG9taWNfY29ubmVjdG9yX2dldF9wcm9wZXJ0eSBmdW5jdGlvbnMuCj4+Pj4+ID4KPj4+ Pj4KPj4+Pj4gVGhhbmtzIGZvciBzZW5kaW5nIHRoaXMuIFdlIHJhbiBpbnRvIHNvbWUgcmUtdHJh aW5pbmcgYXdrd2FyZG5lc3MKPj4+Pj4gcmVjZW50bHksIGFuZCBJCj4+Pj4+IHdhcyBob3Bpbmcg Zm9yIHN1Y2ggYSBwYXRjaC4KPj4+Pj4KPj4+Pj4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlr dWxhQGxpbnV4LmludGVsLmNvbT4KPj4+Pj4gPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZl dHRlckBpbnRlbC5jb20+Cj4+Pj4+ID4gQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgo+Pj4+PiA+IENjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdp bHNvbi5jby51az4KPj4+Pj4gPiBTaWduZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2ku ZC5uYXZhcmVAaW50ZWwuY29tPgo+Pj4+PiA+IC0tLQo+Pj4+PiA+ICBkcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pYy5jICAgIHwgIDUgKysrKwo+Pj4+PiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2Nv bm5lY3Rvci5jIHwgNjUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0K Pj4+Pj4gPiAgaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAgICB8IDEyICsrKysrKystCj4+ Pj4+ID4gIGluY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oICAgfCAgNSArKysrCj4+Pj4+ID4g IGluY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCAgICAgfCAgNCArKysKPj4+Pj4gPiAgNSBmaWxl cyBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+Pj4+PiA+Cj4+Pj4+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pYy5jCj4+Pj4+ID4gaW5kZXggODk3MzdlNC4uNjQ0ZDE5ZiAxMDA2NDQK Pj4+Pj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4+Pj4+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+Pj4+PiA+IEBAIC0xMDg3LDYgKzEwODcsOSBA QCBpbnQgZHJtX2F0b21pY19jb25uZWN0b3Jfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IsCj4+Pj4+ID4gICAgICAgICAgICAgICAgICAqIG5vdz8pIGF0b21pYyB3 cml0ZXMgdG8gRFBNUyBwcm9wZXJ0eToKPj4+Pj4gPiAgICAgICAgICAgICAgICAgICovCj4+Pj4+ ID4gICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+Pj4+PiA+ICsgICAgICAgfSBlbHNl IGlmIChwcm9wZXJ0eSA9PSBjb25maWctPmxpbmtfc3RhdHVzX3Byb3BlcnR5KSB7Cj4+Pj4+ID4g KyAgICAgICAgICAgICAgIHN0YXRlLT5saW5rX3N0YXR1cyA9IHZhbDsKPj4+Pgo+Pj4+IEkgdGhp bmsgd2Ugc2hvdWxkIGhhdmUgYSBjaGVjayBoZXJlIHRvIG1ha2Ugc3VyZSB1c2Vyc3BhY2UgbmV2 ZXIgdHJpZXMgdG8KPj4+PiBzZXQgdGhpcyBmcm9tICJHT09EIiB0byAiQkFEIi4gIkJBRCIgdG8g IkJBRCIgd2UgbmVlZCB0byBhbGxvdywgc2luY2Ugd2l0aAo+Pj4+IGF0b21pYyB1c2Vyc3BhY2Ug aXMgc3VwcG9zZWQgdG8gYmUgYWJsZSB0byBqdXN0IHJlc3RvcmUgZXZlcnl0aGluZyB0byB3aGF0 Cj4+Pj4gaXQgd2FzLgo+Pj4+Cj4+Pj4gSSBkb24ndCB0aGluayB0cnlpbmcgdG8gc2V0IGl0IHRv ICJCQUQiIHNob3VsZCBjYXVzZSBhbiBlcnJvciB0aG91Z2gsIGp1c3QKPj4+PiBzaWxlbnRseSBr ZWVwIHRoZSBsaW5rIHN0YXR1cyBhdCAiR09PRyIuIFNvOgo+Pj4+Cj4+Pj4gICAgICAgICAvKiBO ZXZlciBkb3duZ3JhZGUgZnJvbSBHT09EIHRvIEJBRCBvbiB1c2Vyc3BhY2UncyByZXF1ZXN0IGhl cmUsCj4+Pj4gICAgICAgICAgKiBvbmx5IGh3IGlzc3VlcyBjYW4gZG8gdGhhdC4gKi8KPj4+PiAg ICAgICAgIGlmIChzdGF0ZS0+bGlua19zdGF0dXMgPT0gR09PRCkKPj4+PiAgICAgICAgICAgICAg ICAgcmV0dXJuIDA7Cj4+Pgo+Pj4gQ2FuIHdlIHJldHVybiBhbiBlcnJvciBpZiB0aGUgdHJhbnNp dGlvbiBpcyBpbnZhbGlkPwo+Pj4KPj4+PiAgICAgICAgIHN0YXRlLT5saW5rX3N0YXR1cyA9IHZh bDsKPj4+PiAgICAgICAgIHJldHVybiAwOwo+Pj4+Cj4+Pj4+ID4gKyAgICAgICAgICAgICAgIHJl dHVybiAwOwo+Pj4+PiA+ICAgICAgICAgfSBlbHNlIGlmIChjb25uZWN0b3ItPmZ1bmNzLT5hdG9t aWNfc2V0X3Byb3BlcnR5KSB7Cj4+Pj4+ID4gICAgICAgICAgICAgICAgIHJldHVybiBjb25uZWN0 b3ItPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KGNvbm5lY3RvciwKPj4+Pj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKPj4+Pj4gPiBA QCAtMTEzNSw2ICsxMTM4LDggQEAgc3RhdGljIHZvaWQgZHJtX2F0b21pY19jb25uZWN0b3JfcHJp bnRfc3RhdGUoc3RydWN0IGRybV9wcmludGVyICpwLAo+Pj4+PiA+ICAgICAgICAgICAgICAgICAq dmFsID0gKHN0YXRlLT5jcnRjKSA/IHN0YXRlLT5jcnRjLT5iYXNlLmlkIDogMDsKPj4+Pj4gPiAg ICAgICAgIH0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5kcG1zX3Byb3BlcnR5KSB7Cj4+ Pj4+ID4gICAgICAgICAgICAgICAgICp2YWwgPSBjb25uZWN0b3ItPmRwbXM7Cj4+Pj4+ID4gKyAg ICAgICB9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+bGlua19zdGF0dXNfcHJvcGVydHkp IHsKPj4+Pj4gPiArICAgICAgICAgICAgICAgKnZhbCA9IHN0YXRlLT5saW5rX3N0YXR1czsKPj4+ Pj4gPiAgICAgICAgIH0gZWxzZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+YXRvbWljX2dldF9wcm9w ZXJ0eSkgewo+Pj4+PiA+ICAgICAgICAgICAgICAgICByZXR1cm4gY29ubmVjdG9yLT5mdW5jcy0+ YXRvbWljX2dldF9wcm9wZXJ0eShjb25uZWN0b3IsCj4+Pj4+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdGF0ZSwgcHJvcGVydHksIHZhbCk7Cj4+Pj4+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nv bm5lY3Rvci5jCj4+Pj4+ID4gaW5kZXggNWE0NTI2Mi4uNDU3NmM5ZiAxMDA2NDQKPj4+Pj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4+Pj4+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+Pj4+PiA+IEBAIC0yNDMsNiArMjQzLDEwIEBAIGlu dCBkcm1fY29ubmVjdG9yX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4+Pj4gPiAgICAg ICAgIGRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCj4+Pj4+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWctPmRwbXNfcHJvcGVy dHksIDApOwo+Pj4+PiA+Cj4+Pj4+ID4gKyAgICAgICBkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0 eSgmY29ubmVjdG9yLT5iYXNlLAo+Pj4+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uZmlnLT5saW5rX3N0YXR1c19wcm9wZXJ0eSwKPj4+Pj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDApOwo+Pj4+PiA+ICsKPj4+Pj4gPiAgICAgICAgIGlmIChk cm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX0FUT01JQykpIHsKPj4+Pj4gPiAgICAg ICAgICAgICAgICAgZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwg Y29uZmlnLT5wcm9wX2NydGNfaWQsIDApOwo+Pj4+PiA+ICAgICAgICAgfQo+Pj4+PiA+IEBAIC01 MDYsNiArNTEwLDEyIEBAIGNvbnN0IGNoYXIgKmRybV9nZXRfc3VicGl4ZWxfb3JkZXJfbmFtZShl bnVtIHN1YnBpeGVsX29yZGVyIG9yZGVyKQo+Pj4+PiA+ICB9Owo+Pj4+PiA+ICBEUk1fRU5VTV9O QU1FX0ZOKGRybV9nZXRfZHBtc19uYW1lLCBkcm1fZHBtc19lbnVtX2xpc3QpCj4+Pj4+ID4KPj4+ Pj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgZHJtX2xpbmtfc3Rh dHVzX2VudW1fbGlzdFtdID0gewo+Pj4+PiA+ICsgICAgICAgeyBEUk1fTU9ERV9MSU5LX1NUQVRV U19HT09ELCAiR29vZCIgfSwKPj4+Pj4gPiArICAgICAgIHsgRFJNX01PREVfTElOS19TVEFUVVNf QkFELCAiQmFkIiB9LAo+Pj4+PiA+ICt9Owo+Pj4+PiA+ICtEUk1fRU5VTV9OQU1FX0ZOKGRybV9n ZXRfbGlua19zdGF0dXNfbmFtZSwgZHJtX2xpbmtfc3RhdHVzX2VudW1fbGlzdCkKPj4+Pj4gPiAr Cj4+Pj4+ID4gIC8qKgo+Pj4+PiA+ICAgKiBkcm1fZGlzcGxheV9pbmZvX3NldF9idXNfZm9ybWF0 cyAtIHNldCB0aGUgc3VwcG9ydGVkIGJ1cyBmb3JtYXRzCj4+Pj4+ID4gICAqIEBpbmZvOiBkaXNw bGF5IGluZm8gdG8gc3RvcmUgYnVzIGZvcm1hdHMgaW4KPj4+Pj4gPiBAQCAtNjE2LDcgKzYyNiw3 IEBAIGludCBkcm1fZGlzcGxheV9pbmZvX3NldF9idXNfZm9ybWF0cyhzdHJ1Y3QgZHJtX2Rpc3Bs YXlfaW5mbyAqaW5mbywKPj4+Pj4gPiAgICogICAgIHBhdGggcHJvcGVydHkgdGhlIE1TVCBtYW5h Z2VyIGNyZWF0ZWQuIFVzZXJzcGFjZSBjYW5ub3QgY2hhbmdlIHRoaXMKPj4+Pj4gPiAgICogICAg IHByb3BlcnR5Lgo+Pj4+PiA+ICAgKiBUSUxFOgo+Pj4+PiA+IC0gKiAgICAgQ29ubmVjdG9yIHRp bGUgZ3JvdXAgcHJvcGVydHkgdG8gaW5kaWNhdGUgaG93IGEgc2V0IG9mIERSTSBjb25uZWN0b3IK Pj4+Pj4gPiArICogICAgICBDb25uZWN0b3IgdGlsZSBncm91cCBwcm9wZXJ0eSB0byBpbmRpY2F0 ZSBob3cgYSBzZXQgb2YgRFJNIGNvbm5lY3Rvcgo+Pj4+Pgo+Pj4+PiBrZXlib2FyZCBzbGlwIGhl cmUKPj4+Pj4KPj4+Pj4gPiAgICogICAgIGNvbXBvc2UgdG9nZXRoZXIgaW50byBvbmUgbG9naWNh bCBzY3JlZW4uIFRoaXMgaXMgdXNlZCBieSBib3RoIGhpZ2gtcmVzCj4+Pj4+ID4gICAqICAgICBl eHRlcm5hbCBzY3JlZW5zIChvZnRlbiBvbmx5IHVzaW5nIGEgc2luZ2xlIGNhYmxlLCBidXQgZXhw b3NpbmcgbXVsdGlwbGUKPj4+Pj4gPiAgICogICAgIERQIE1TVCBzaW5rcyksIG9yIGhpZ2gtcmVz IGludGVncmF0ZWQgcGFuZWxzIChsaWtlIGR1YWwtbGluayBEU0kpIHdoaWNoCj4+Pj4+ID4gQEAg LTYyNSw3ICs2MzUsMTQgQEAgaW50IGRybV9kaXNwbGF5X2luZm9fc2V0X2J1c19mb3JtYXRzKHN0 cnVjdCBkcm1fZGlzcGxheV9pbmZvICppbmZvLAo+Pj4+PiA+ICAgKiAgICAgdGlsaW5nIGFuZCB2 aXJ0dWFsaXplIGJvdGggJmRybV9jcnRjIGFuZCAmZHJtX3BsYW5lIGlmIG5lZWRlZC4gRHJpdmVy cwo+Pj4+PiA+ICAgKiAgICAgc2hvdWxkIHVwZGF0ZSB0aGlzIHZhbHVlIHVzaW5nIGRybV9tb2Rl X2Nvbm5lY3Rvcl9zZXRfdGlsZV9wcm9wZXJ0eSgpLgo+Pj4+PiA+ICAgKiAgICAgVXNlcnNwYWNl IGNhbm5vdCBjaGFuZ2UgdGhpcyBwcm9wZXJ0eS4KPj4+Pj4gPiAtICoKPj4+Pj4gPiArICogbGlu ay1zdGF0dXM6Cj4+Pj4+ID4gKyAqICAgICAgQ29ubmVjdG9yIGxpbmstc3RhdHVzIHByb3BlcnR5 IHRvIGluZGljYXRlIHRoZSBzdGF0dXMgb2YgbGluayBkdXJpbmcKPj4+Pj4gPiArICogICAgICB0 aGUgbW9kZXNldC4gVGhlIGRlZmF1bHQgdmFsdWUgb2YgbGluay1zdGF0dXMgaXMgIkdPT0QiLiBJ ZiBzb21ldGhpbmcKPj4+Pj4gPiArICogICAgICBmYWlscyBkdXJpbmcgbW9kZXNldCwgdGhlIGtl cm5lbCBkcml2ZXIgY2FuIHNldCB0aGlzIHRvICJCQUQiLCBwcnVuZQo+Pj4+PiA+ICsgKiAgICAg IHRoZSBtb2RlIGxpc3QgYmFzZWQgb24gbmV3IGxpbmsgcGFyYW1ldGVycyBhbmQgc2VuZCBhIGhv dHBsdWcgdWV2ZW50Cj4+Pj4+ID4gKyAqICAgICAgdG8gbm90aWZ5IHVzZXJzcGFjZSB0byByZS1j aGVjayB0aGUgdmFsaWQgbW9kZXMgdGhyb3VnaCBHRVRfQ09OTkVDVE9SCj4+Pj4+ID4gKyAqICAg ICAgSU9DVEwgYW5kIHJlZG8gYSBtb2Rlc2V0LiBEcml2ZXJzIHNob3VsZCB1cGRhdGUgdGhpcyB2 YWx1ZSB1c2luZwo+Pj4+PiA+ICsgKiAgICAgIGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfbGlua19z dGF0dXNfcHJvcGVydHkoKS4KPj4+Pj4gPiAgICogQ29ubmVjdG9ycyBhbHNvIGhhdmUgb25lIHN0 YW5kYXJkaXplZCBhdG9taWMgcHJvcGVydHk6Cj4+Pj4+ID4gICAqCj4+Pj4+ID4gICAqIENSVENf SUQ6Cj4+Pj4+ID4gQEAgLTY2Niw2ICs2ODMsMTMgQEAgaW50IGRybV9jb25uZWN0b3JfY3JlYXRl X3N0YW5kYXJkX3Byb3BlcnRpZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4+Pj4gPiAgICAg ICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4+Pj4+ID4gICAgICAgICBkZXYtPm1vZGVfY29u ZmlnLnRpbGVfcHJvcGVydHkgPSBwcm9wOwo+Pj4+PiA+Cj4+Pj4+ID4gKyAgICAgICBwcm9wID0g ZHJtX3Byb3BlcnR5X2NyZWF0ZV9lbnVtKGRldiwgRFJNX01PREVfUFJPUF9BVE9NSUMsICJsaW5r LXN0YXR1cyIsCj4+Pj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRybV9saW5rX3N0YXR1c19lbnVtX2xpc3QsCj4+Pj4+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEFSUkFZX1NJWkUoZHJtX2xpbmtfc3RhdHVzX2VudW1fbGlzdCkp Owo+Pj4+PiA+ICsgICAgICAgaWYgKCFwcm9wKQo+Pj4+PiA+ICsgICAgICAgICAgICAgICByZXR1 cm4gLUVOT01FTTsKPj4+Pj4gPiArICAgICAgIGRldi0+bW9kZV9jb25maWcubGlua19zdGF0dXNf cHJvcGVydHkgPSBwcm9wOwo+Pj4+PiA+ICsKPj4+Pj4gPiAgICAgICAgIHJldHVybiAwOwo+Pj4+ PiA+ICB9Cj4+Pj4+ID4KPj4+Pj4gPiBAQCAtOTk1LDYgKzEwMTksNDMgQEAgaW50IGRybV9tb2Rl X2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLAo+Pj4+PiA+ICB9Cj4+Pj4+ID4gIEVYUE9SVF9TWU1CT0woZHJtX21vZGVfY29ubmVj dG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KTsKPj4+Pj4gPgo+Pj4+PiA+ICsvKioKPj4+Pj4gPiAr ICogZHJtX21vZGVfY29ubmVjdG9yX3NldF9saW5rX3N0YXR1c19wcm9wZXJ0eSAtIFNldCBsaW5r IHN0YXR1cyBwcm9wZXJ0eSBvZiBhIGNvbm5lY3Rvcgo+Pj4+PiA+ICsgKiBAY29ubmVjdG9yOiBk cm0gY29ubmVjdG9yCj4+Pj4+ID4gKyAqIEBsaW5rX3N0YXR1czogbmV3IHZhbHVlIG9mIGxpbmsg c3RhdHVzIHByb3BlcnR5ICgwOiBHb29kLCAxOiBCYWQpCj4+Pj4+ID4gKyAqCj4+Pj4+ID4gKyAq IEluIHVzdWFsIHdvcmtpbmcgc2NlbmFyaW8sIHRoaXMgbGluayBzdGF0dXMgcHJvcGVydHkgd2ls bCBhbHdheXMgYmUgc2V0IHRvCj4+Pj4+ID4gKyAqICJHT09EIi4gSWYgc29tZXRoaW5nIGZhaWxz IGR1cmluZyBvciBhZnRlciBhIG1vZGUgc2V0LCB0aGUga2VybmVsIGRyaXZlciBzaG91bGQKPj4+ Pj4gPiArICogc2V0IHRoaXMgbGluayBzdGF0dXMgcHJvcGVydHkgdG8gIkJBRCIgYW5kIHBydW5l IHRoZSBtb2RlIGxpc3QgYmFzZWQgb24gbmV3Cj4+Pj4+Cj4+Pj4+IERvZXMgdGhlIG1vZGUgbGlz dCByZWFsbHkgKm5lZWQqIHRvIGJlIHBydW5lZD8gSW4gdGhlIGNhc2Ugb2YgbmVlZGluZwo+Pj4+ PiB0byByZS10cmFpbiBhIERQIGxpbmssCj4+Pj4+IGl0IHNlZW1zIGxpa2Ugd2Ugc2hvdWxkIGJl IGFibGUgdG8gc2V0IHRoaXMgQkFEIGFuZCBrZWVwIHRoZSBtb2RlbGlzdAo+Pj4+PiBhcy1pcyAo c2luY2UgdGhlIHNpbmsKPj4+Pj4gaGFzbid0IGNoYW5nZWQpCj4+Pj4KPj4+PiBXZWxsLCBpZiB5 b3UgcHJ1bmUgaXQgd2l0aCB0aGUgc2FtZSBjb25zdHJhaW50cyBhcyBiZWZvcmUsIG5vIGFkZGl0 aW9uYWwKPj4+PiBtb2RlcyB3aWxsIGJlIHJlbW92ZWQgYW5kIHRoZSBzYW1lIGxpc3QgaXMgdGhl cmUuIFBydW5pbmcgaGVyZSByZWZlcnMgdG8KPj4+PiB0aGUgLT5tb2RlX3ZhbGlkIHN0ZXAgYXMg ZG9uZSBpbiBlLmcuIGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2Rlcy4KPj4+ Pgo+Pj4+IFdlIG1pZ2h0IHdhbnQgdG8gYmUgYSBiaXQgbW9yZSBleHBsaWNpdCBoZXJlIHBlcmhh cHM/IEhhdmUgc29tZSBnb29kCj4+Pj4gcHJvcG9zYWwgdGV4dCB0byBpbnNlcnQ/Cj4+Pgo+Pj4g QWgsIGhtbSwgSSBoYWRuJ3QgZXF1YXRlZCB0aGlzIHBydW5lIHRvIHRoZSBub3JtYWwgZHJtX2Nv bm5lY3Rvcgo+Pj4gcHJ1bmVfaW52YWxpZC4gSSBzdXBwb3NlIHRoZSAiYmFzZWQgb24gbmV3IGlu Zm9ybWF0aW9uIiBpcyB3aGF0IGRpZAo+Pj4gaXQuIEl0IHNlZW1zIGxpa2UgdGhlIG1vZGVfdmFs aWQgcHJ1bmluZyB3aWxsIGhhcHBlbiBhdXRvbWFnaWNhbGx5Cj4+PiB3aGVuIHVzZXJzcGFjZSBy ZWFsaXplcyB0aGUgY29ubmVjdGlvbiBpcyBCQUQgYW5kIGFza3MgZm9yIGEgbmV3IG1vZGUKPj4+ IGxpc3QuIFNvIGlzIGl0IHdvcnRoIGV2ZW4gbWVudGlvbmluZyBwcnVuaW5nIHRoZSBtb2RlIGxp c3Q/Cj4+Pgo+Pj4+Pgo+Pj4+PiA+ICsgKiBpbmZvcm1hdGlvbi4gVGhlIGNhbGxlciB0aGVuIG5l ZWRzIHRvIHNlbmQgYSBob3RwbHVnIHVldmVudCBmb3IgdXNlcnNwYWNlIHRvCj4+Pj4+ID4gKyAq ICByZS1jaGVjayB0aGUgdmFsaWQgbW9kZXMgdGhyb3VnaCBHRVRfQ09OTkVDVE9SX0lPQ1RMIGFu ZCByZXRyeSBtb2Rlc2V0Lgo+Pj4+Pgo+Pj4+PiBleHRyYSBzcGFjZQo+Pj4+Pgo+Pj4+PiA+ICsg Kgo+Pj4+PiA+ICsgKiBOb3RlIHRoYXQgYSBsb3Qgb2YgZXhpc3RpbmcgdXNlcnNwYWNlIGRvIG5v dCBoYW5kbGUgdGhpcyBwcm9wZXJ0eS4KPj4+Pj4gPiArICogRHJpdmVycyBjYW4gdGhlcmVmb3Jl IG5vdCByZWx5IG9uIHVzZXJzcGFjZSB0byBmaXggdXAgZXZlcnl0aGluZyBhbmQKPj4+Pj4gPiAr ICogc2hvdWxkIHRyeSB0byBoYW5kbGUgaXNzdWVzIChsaWtlIGp1c3QgcmUtdHJhaW5pbmcgYSBs aW5rKSB3aXRob3V0Cj4+Pj4+ID4gKyAqIHVzZXJzcGFjZSdzIGludGVydmVudGlvbi4gVGhpcyBz aG91bGQgb25seSBiZSB1c2VkIHdoZW4gdGhlIGN1cnJlbnQgbW9kZQo+Pj4+PiA+ICsgKiBmYWls cyBhbmQgdXNlcnNwYWNlIG11c3Qgc2VsZWN0IGEgZGlmZmVyZW50IGRpc3BsYXkgbW9kZS4KPj4+ Pj4KPj4+Pj4gSG1tLCBJIHN1cHBvc2UgdGhpcyBhbnN3ZXJzIG15IGxhc3QgcXVlc3Rpb24uIEl0 J3MgdG9vIGJhZCB3ZSBjYW4ndAo+Pj4+PiByZWx5IG9uIHRoaXMsIHNpbmNlIHdlJ2xsCj4+Pj4+ IGp1c3QgZW5kIHVwIHdpdGggZWFjaCBkcml2ZXIgcm9sbGluZyB0aGVpciBvd24gcmUtdHJhaW5p bmcgbG9naWMgb24KPj4+Pj4gdG9wIG9mIHBvc3NpYmx5IHN1cHBvcnRpbmcKPj4+Pj4gdGhpcyAo YnV0IHByb2JhYmx5IG5vdCwgc2luY2UgaXQncyByZWFsbHkganVzdCBvdmVyaGVhZCkuIFBlcmhh cHMgdGhpcwo+Pj4+PiBpcyBhbiBvdmVybHkgcGVzc2ltaXN0aWMKPj4+Pj4gdmlldz8KPj4+Pgo+ Pj4+IFlvdSBjYW4gZm9yZ28gYW55IHJlLXRyYWluaW5nIG9mIGNvdXJzZSwgdGhhdCBzaG91bGQg d29yayB0b28uIEl0J3MganVzdAo+Pj4+IHRoYXQgRFAgc3BlYyBhbmQgZXZlcnlvbmUgZWxzZSBz ZWVtIHRvIHJlY29tbWVuZCB0byBhdCBsZWFzdCBkbyBzb21lCj4+Pj4gbWluaW1hbCBlZmZvcnQg KG9yIG1heWJlIGV2ZW4gdXBmcm9udCBsaW5rIHRyYWluaW5nKSBoZXJlLiBCdXQgdG90YWxseSBu b3QKPj4+PiBkb2luZyBhbnl0aGluZyBpZiB0aGUgbGluayBpcyBiYWQgc2hvdWxkIGJlIG9rIHRv byAoYW5kIHByb2JhYmx5IHJlYWxseQo+Pj4+IHNpbXBsZSB0byBpbXBsZW1lbnQgZm9yIGRyaXZl cnMsIG1heWJlIGV2ZW4gd2l0aCBhIGRwX2hwZF9oYW5kbGVyKCkgaGVscGVyCj4+Pj4gZnVuY3Rp b24gd2hpY2ggY2hlY2tzIGxpbmsgc3RhdHVzIGFuZCBzZXQgbGluay1zdGF0dXMgdG8gYmFkJmZp cmVzIG9mZiB0aGUKPj4+PiB1ZXZlbnQgaWYgbmVlZGVkLgo+Pj4+Cj4+Pj4gQWdhaW4sIGRvIHlv dSBoYXZlIHNvbWUgc2FtcGxlIHByb3NlIHRvIGFkZCBoZXJlIHRvIGNsYXJpZnkgdGhpcz8KPj4+ Pgo+Pj4KPj4+IEkgZG9uJ3QgdGhpbmsgaXQncyBtZXJlbHkgYSBtYXR0ZXIgb2YgY2xhcmlmeWlu ZyB0aGUgY29tbWVudCwgdGJoLgo+Pj4gV2l0aG91dCByZWx5aW5nIG9uIHVzZXJzcGFjZSB0byBm aXggdXMsIHRoZXJlJ3Mgbm90IG11Y2ggcG9pbnQgaW4KPj4+IGV4cG9zaW5nIHRoZSBwcm9wZXJ0 eSBpbiB0aGUgZmlyc3QgcGxhY2UuCj4+Pgo+Pj4gQXMgYSBkcml2ZXIgYXV0aG9yLCBJIG5lZWQg dG8gZGVjaWRlIHdoZXRoZXIgSSB3YW50IHJlLXRyYWluaW5nIHRvCj4+PiB3b3JrIHByb3Blcmx5 LiBJZiBJIGRvLCBJIG5lZWQgdG8gaGFuZHJvbGwgaXQgaW4gbXkgZHJpdmVyIHNpbmNlIEkKPj4+ IGNhbid0IHJlbHkgb24gdXNlcnNwYWNlLCBhdCB3aGljaCBwb2ludCwgaW1wbGVtZW50aW5nIHRo ZSBwcm9wZXJ0eQo+Pj4gaXNuJ3QgbWVhbmluZ2Z1bC4gSWYgSSBkb24ndCBjYXJlIGFib3V0IGl0 IGJlaW5nIGJ1bGxldHByb29mLCBJIGNhbgo+Pj4gZXhwb3NlIHRoZSBwcm9wZXJ0eSBhbmQgbGV0 IHVzZXJzcGFjZSBmaXggbWUgaWYgdGhleSBrbm93IGhvdy4KPj4+Cj4+PiBTbyBJJ2QgcHJlZmVy IHRvIGhhdmUgdGhlIGhlbHBlciBiZSBhIGh5YnJpZCBiZXR3ZWVuIHRoaXMgcGF0Y2ggYW5kCj4+ PiB0aGUgcHJldmlvdXMgb25lIHRoYXQgZGlkIGEgZnVsbCBtb2Rlc2V0IHVuZGVyIHRoZSBjb3Zl cnMgKHBlcmhhcHMKPj4+IHdpdGggYSBjbGllbnQgY2FwIG9yIHNpbWlsYXIgdG8gbGV0IHVzIGtu b3cgd2hpY2ggcGF0aCB0byB0cnVzdCkuIFRoYXQKPj4+IHdheSBJIGNhbiBjYWxsIHRoZSBoZWxw ZXIgZnJvbSBteSBkcml2ZXIgYW5kIGtub3cgdGhhdCBJJ20gZ29pbmcgdG8gYmUKPj4+IHJlLXRy YWluZWQgZWl0aGVyIHdheS4KPj4KPj4gSWYgeW91ciBkcml2ZXIgaXMgYWJsZSB0byBoYW5kbGUg ZXZlcnl0aGluZyBpbiBrZXJuZWwsIHRoZW4gZG8gc28gYnkgYWxsCj4+IG1lYW5zLiBJZiBpdCBj YW4ndCwgZGVmZXIgdG8gdXNlcnNwYWNlLCB3aGljaCBtYXkgb3IgbWF5IG5vdCBmaXggc3R1ZmYs Cj4+IGRlcGVuZGluZyBvbiB3aGV0aGVyIGl0IGxvb2tzIGF0IHRoZSBwcm9wZXJ0eS4gSWYgdGhl IHVzZXJzcGFjZSBkb2Vzbid0Cj4+IGRvIGFueXRoaW5nLCB0aGluZ3Mgd2lsbCBiZSBqdXN0IGFz IGdvb2Qgb3IgYmFkIGFzIHRoZXkgYXJlIGN1cnJlbnRseSwKPj4gYmVmb3JlIHRoaXMgcHJvcGVy dHkuCj4+Cj4+IFRoaXMgYWxsb3dzIHRoZSBkcml2ZXJzIHRvIGNob29zZSBob3cgbXVjaCB0aGV5 IGNhbi93YW50IHRvIGRvIGluCj4+IGtlcm5lbCwgYW5kIHdoYXQgdGhleSBkZWZlciB0byB1c2Vy c3BhY2UuCj4+Cj4KPiBKdXN0IGJlY2F1c2UgSSBjYW4sIGRvZXNuJ3QgbWVhbiBJIHdhbnQgdG8g OikKCkFuZCBqdXN0IGJlY2F1c2UgSSB3YW50IHRvLCBkb2Vzbid0IG1lYW4gSSBjYW4hIDspCgo+ IFRha2UgdGhlIENETiBEUCBkcml2ZXIgaW4gcm9ja2NoaXAgZm9yIGV4YW1wbGUgKHBvc3RlZCB5 ZXN0ZXJkYXkpLgo+IFRoZXJlJ3MgYSB3b3JrZXIgaW4gdGhlIGRyaXZlciB0aGF0IGlzIHJlc3Bv bnNpYmxlIGZvciBoYW5kbGluZwo+IGhwZC9leHRjb24gZXZlbnRzIGZyb20gdGhlIFVTQi1DIHBv cnQuIElkZWFsbHksIHRoaXMgd29ya2VyIHNob3VsZAo+IGp1c3QgYmUgYSB0aGluIHNoZWxsIGFy b3VuZCBhIGttcyB1ZXZlbnQgdGhhdCBsZXRzIHVzZXJzcGFjZSBrbm93Cj4gdGhlcmUncyBiZWVu IGEgY2hhbmdlLiBVbmZvcnR1bmF0ZWx5IHNpbmNlIHdlIG5lZWQgdG8gbWFrZSByZS10cmFpbmlu Zwo+IHdvcmsgKC9tZSBncnVtYmxlcyBhYm91dCBwcm9kdWN0aXphdGlvbikgc2VhbWxlc3NseSwg d2UgbmVlZCB0byBhZGQgYQo+IGJ1bmNoIG9mIGdvbyBpbnRvIHRoZSB3b3JrZXIgdG8gaGFuZGxl IHJlLXRyYWluaW5nLiBTaW5jZSB3ZSBuZWVkIHRvCj4gaGFuZGxlIHJlLXRyYWluaW5nIHRoZXJl IGFuZCBpbiBtb2Rlc2V0LCB3ZSBuZWVkIHRvIHByb3Blcmx5Cj4gc3luY2hyb25pemUgdGhpbmdz LiBTbyB3ZSBlbmQgdXAgd2l0aCBhIGJ1bmNoIG9mIGNvZGUgdGhhdCBkb2Vzbid0Cj4gKnJlYWxs eSogbmVlZCB0byBiZSB0aGVyZS4KPgo+IFNvIGlzIHRoZSBjb3JyZWN0IHBhdGggZm9yd2FyZCB0 byBhZGQgR09PRC9CQUQgY29ubmVjdGlvbiBoYW5kbGluZyB0bwo+IENocm9tZS9kcm1faHdjCgpJ IHRoaW5rIHNvLgoKPiBhbmQgcmlwIHJlLXRyYWluaW5nIG91dCBvZiB0aGUgdmFyaW91cyBrZXJu ZWwgZHJpdmVycz8KCklNTyBpZiBpdCB3b3JrcywgZG9uJ3QgY2hhbmdlIGl0LCBhdCBsZWFzdCBu b3QgaW4gYSBydXNoLiBJdCBhbHNvCmRlcGVuZHMgb24gdGhlIGhhcmR3YXJlIGFuZCB0aGUgZHJp dmVyOyB0aGUgYW1vdW50IG9mIGNvZGUgcmVxdWlyZWQgbWF5CmJlIHZhc3RseSBkaWZmZXJlbnQg Zm9yIHZhcmlvdXMgZHJpdmVycy4KClBlcnNvbmFsbHksIEkgdGhpbmsgaW4gdGhlIGxvbmcgcnVu IGxldHRpbmcgdXNlcnNwYWNlIGhlbHAgaGVyZSBsZWFkcyB0bwphIHNpbXBsZXIgZGVzaWduIGFu ZCBtb3JlIGVmZmljaWVudCBoYXBweSBkYXkgc2NlbmFyaW8gaGFuZGxpbmcsIGFuZAp1c2Vyc3Bh Y2Uga25vd3Mgd2hhdCdzIGdvaW5nIG9uLgoKQlIsCkphbmkuCgo+Cj4gU2Vhbgo+Cj4KPj4gQlIs Cj4+IEphbmkuCj4+Cj4+Cj4+Cj4+Pgo+Pj4gU2Vhbgo+Pj4KPj4+Cj4+Pj4gVGhhbmtzIGZvciB0 YWtpbmcgYSBsb29rIGF0IHRoaXMuCj4+Pj4KPj4+PiBDaGVlcnMsIERhbmllbAo+Pj4+Cj4+Pj4+ ID4gKyAqIFRoZSBEUk0gZHJpdmVyIGNhbiBjaG9zZSB0byBub3QgbW9kaWZ5IHByb3BlcnR5IGFu ZCBrZWVwIGxpbmsgc3RhdHVzCj4+Pj4+ID4gKyAqIGFzICJHT09EIiBhbHdheXMgdG8ga2VlcCB0 aGUgdXNlciBleHBlcmllbmNlIHNhbWUgYXMgaXQgY3VycmVudGx5IGlzLgo+Pj4+PiA+ICsgKgo+ Pj4+PiA+ICsgKiBUaGUgcmVhc29uIGZvciBhZGRpbmcgdGhpcyBwcm9wZXJ0eSBpcyB0byBoYW5k bGUgbGluayB0cmFpbmluZyBmYWlsdXJlcywgYnV0Cj4+Pj4+ID4gKyAqIGl0IGlzIG5vdCBsaW1p dGVkIHRvIERQIG9yIGxpbmsgdHJhaW5pbmcuIEZvciBleGFtcGxlLCBpZiB3ZSBpbXBsZW1lbnQK Pj4+Pj4gPiArICogYXN5bmNocm9ub3VzIHNldGNydGMsIHRoaXMgcHJvcGVydHkgY2FuIGJlIHVz ZWQgdG8gcmVwb3J0IGFueSBmYWlsdXJlcyBpbiB0aGF0Lgo+Pj4+PiA+ICsgKi8KPj4+Pj4gPiAr dm9pZCBkcm1fbW9kZV9jb25uZWN0b3Jfc2V0X2xpbmtfc3RhdHVzX3Byb3BlcnR5KHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4+Pj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxpbmtfc3RhdHVzKQo+Pj4+PiA+ICt7 Cj4+Pj4+ID4gKyAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7 Cj4+Pj4+ID4gKwo+Pj4+PiA+ICsgICAgICAgLyogTWFrZSBzdXJlIHRoZSBtdXRleCBpcyBncmFi YmVkICovCj4+Pj4+ID4gKyAgICAgICBsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXYtPm1vZGVfY29u ZmlnLm11dGV4KTsKPj4+Pj4gPiArICAgICAgIGNvbm5lY3Rvci0+bGlua19zdGF0dXMgPSBsaW5r X3N0YXR1czsKPj4+Pj4gPiArICAgICAgIGRybV9vYmplY3RfcHJvcGVydHlfc2V0X3ZhbHVlKCZj b25uZWN0b3ItPmJhc2UsCj4+Pj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkZXYtPm1vZGVfY29uZmlnLmxpbmtfc3RhdHVzX3Byb3BlcnR5LAo+Pj4+PiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua19zdGF0dXMpOwo+Pj4+PiA+ICt9 Cj4+Pj4+ID4gK0VYUE9SVF9TWU1CT0woZHJtX21vZGVfY29ubmVjdG9yX3NldF9saW5rX3N0YXR1 c19wcm9wZXJ0eSk7Cj4+Pj4+ID4gKwo+Pj4+PiA+ICBpbnQgZHJtX21vZGVfY29ubmVjdG9yX3Nl dF9vYmpfcHJvcChzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmosCj4+Pj4+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHks Cj4+Pj4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgdmFs dWUpCj4+Pj4+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCBiL2lu Y2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+Pj4+PiA+IGluZGV4IDM0Zjk3NDEuLjNkNTEzYWIg MTAwNjQ0Cj4+Pj4+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4+Pj4+ID4g KysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4+Pj4+ID4gQEAgLTIxMyw2ICsyMTMs OSBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSB7Cj4+Pj4+ID4KPj4+Pj4gPiAgICAgICAg IHN0cnVjdCBkcm1fZW5jb2RlciAqYmVzdF9lbmNvZGVyOwo+Pj4+PiA+Cj4+Pj4+ID4gKyAgICAg ICAvKiBDb25uZWN0b3IgTGluayBzdGF0dXMgKi8KPj4+Pj4gPiArICAgICAgIHVuc2lnbmVkIGlu dCBsaW5rX3N0YXR1czsKPj4+Pj4gPiArCj4+Pj4+ID4gICAgICAgICBzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGU7Cj4+Pj4+ID4gIH07Cj4+Pj4+ID4KPj4+Pj4gPiBAQCAtNjk1LDYgKzY5 OCwxMiBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciB7Cj4+Pj4+ID4gICAgICAgICB1aW50OF90IG51 bV9oX3RpbGUsIG51bV92X3RpbGU7Cj4+Pj4+ID4gICAgICAgICB1aW50OF90IHRpbGVfaF9sb2Ms IHRpbGVfdl9sb2M7Cj4+Pj4+ID4gICAgICAgICB1aW50MTZfdCB0aWxlX2hfc2l6ZSwgdGlsZV92 X3NpemU7Cj4+Pj4+ID4gKwo+Pj4+PiA+ICsgICAgICAgLyogQ29ubmVjdG9yIExpbmsgc3RhdHVz Cj4+Pj4+ID4gKyAgICAgICAgKiAwOiBJZiB0aGUgbGluayBpcyBHb29kCj4+Pj4+ID4gKyAgICAg ICAgKiAxOiBJZiB0aGUgbGluayBpcyBCYWQKPj4+Pj4gPiArICAgICAgICAqLwo+Pj4+PiA+ICsg ICAgICAgaW50IGxpbmtfc3RhdHVzOwo+Pj4+PiA+ICB9Owo+Pj4+PiA+Cj4+Pj4+ID4gICNkZWZp bmUgb2JqX3RvX2Nvbm5lY3Rvcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGRybV9jb25uZWN0 b3IsIGJhc2UpCj4+Pj4+ID4gQEAgLTc2NywxMiArNzc2LDEzIEBAIGludCBkcm1fbW9kZV9jcmVh dGVfdHZfcHJvcGVydGllcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+Pj4+PiA+ICBpbnQgZHJt X21vZGVfY3JlYXRlX3NjYWxpbmdfbW9kZV9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KTsKPj4+Pj4gPiAgaW50IGRybV9tb2RlX2NyZWF0ZV9hc3BlY3RfcmF0aW9fcHJvcGVydHkoc3Ry dWN0IGRybV9kZXZpY2UgKmRldik7Cj4+Pj4+ID4gIGludCBkcm1fbW9kZV9jcmVhdGVfc3VnZ2Vz dGVkX29mZnNldF9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+Pj4+PiA+IC0K Pj4+Pj4KPj4+Pj4gbG9zdCBhIGxpbmUgaGVyZQo+Pj4+Pgo+Pj4+PiA+ICBpbnQgZHJtX21vZGVf Y29ubmVjdG9yX3NldF9wYXRoX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCj4+Pj4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBjaGFyICpwYXRoKTsKPj4+Pj4gPiAgaW50IGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfdGlsZV9w cm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPj4+Pj4gPiAgaW50IGRy bV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLAo+Pj4+PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IGVkaWQgKmVkaWQpOwo+Pj4+PiA+ICt2b2lkIGRybV9tb2Rl X2Nvbm5lY3Rvcl9zZXRfbGlua19zdGF0dXNfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwKPj4+Pj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdWludDY0X3QgbGlua19zdGF0dXMpOwo+Pj4+PiA+Cj4+Pj4+ID4gIC8qKgo+ Pj4+PiA+ICAgKiBzdHJ1Y3QgZHJtX3RpbGVfZ3JvdXAgLSBUaWxlIGdyb3VwIG1ldGFkYXRhCj4+ Pj4+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oIGIvaW5jbHVk ZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKPj4+Pj4gPiBpbmRleCBiZjk5OTFiLi44NmZhZWU0IDEw MDY0NAo+Pj4+PiA+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCj4+Pj4+ID4g KysrIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKPj4+Pj4gPiBAQCAtNDMxLDYgKzQz MSwxMSBAQCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnIHsKPj4+Pj4gPiAgICAgICAgICAqLwo+Pj4+ PiA+ICAgICAgICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqdGlsZV9wcm9wZXJ0eTsKPj4+Pj4gPiAg ICAgICAgIC8qKgo+Pj4+PiA+ICsgICAgICAgICogQGxpbmtfc3RhdHVzX3Byb3BlcnR5OiBEZWZh dWx0IGNvbm5lY3RvciBwcm9wZXJ0eSBmb3IgbGluayBzdGF0dXMKPj4+Pj4gPiArICAgICAgICAq IG9mIGEgY29ubmVjdG9yCj4+Pj4+ID4gKyAgICAgICAgKi8KPj4+Pj4gPiArICAgICAgIHN0cnVj dCBkcm1fcHJvcGVydHkgKmxpbmtfc3RhdHVzX3Byb3BlcnR5Owo+Pj4+PiA+ICsgICAgICAgLyoq Cj4+Pj4+ID4gICAgICAgICAgKiBAcGxhbmVfdHlwZV9wcm9wZXJ0eTogRGVmYXVsdCBwbGFuZSBw cm9wZXJ0eSB0byBkaWZmZXJlbnRpYXRlCj4+Pj4+ID4gICAgICAgICAgKiBDVVJTT1IsIFBSSU1B UlkgYW5kIE9WRVJMQVkgbGVnYWN5IHVzZXMgb2YgcGxhbmVzLgo+Pj4+PiA+ICAgICAgICAgICov Cj4+Pj4+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCBiL2luY2x1 ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAo+Pj4+PiA+IGluZGV4IDcyODc5MGIuLjMwOWM0NzggMTAw NjQ0Cj4+Pj4+ID4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCj4+Pj4+ID4gKysr IGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCj4+Pj4+ID4gQEAgLTEyMyw2ICsxMjMsMTAg QEAKPj4+Pj4gPiAgI2RlZmluZSBEUk1fTU9ERV9ESVJUWV9PTiAgICAgICAxCj4+Pj4+ID4gICNk ZWZpbmUgRFJNX01PREVfRElSVFlfQU5OT1RBVEUgMgo+Pj4+PiA+Cj4+Pj4+ID4gKy8qIExpbmsg U3RhdHVzIG9wdGlvbnMgKi8KPj4+Pj4gPiArI2RlZmluZSBEUk1fTU9ERV9MSU5LX1NUQVRVU19H T09EICAgICAgMAo+Pj4+PiA+ICsjZGVmaW5lIERSTV9NT0RFX0xJTktfU1RBVFVTX0JBRCAgICAg ICAxCj4+Pj4+ID4gKwo+Pj4+PiA+ICBzdHJ1Y3QgZHJtX21vZGVfbW9kZWluZm8gewo+Pj4+PiA+ ICAgICAgICAgX191MzIgY2xvY2s7Cj4+Pj4+ID4gICAgICAgICBfX3UxNiBoZGlzcGxheTsKPj4+ Pj4gPiAtLQo+Pj4+PiA+IDEuOS4xCj4+Pj4+ID4KPj4+Pj4gPiBfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4+PiA+IGRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKPj4+Pj4gPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+Pj4+ID4gaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPj4+Pj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+Pj4gZHJp LWRldmVsIG1haWxpbmcgbGlzdAo+Pj4+PiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cj4+Pj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCj4+Pj4KPj4+PiAtLQo+Pj4+IERhbmllbCBWZXR0ZXIKPj4+PiBTb2Z0d2FyZSBFbmdp bmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPj4+PiBodHRwOi8vYmxvZy5mZndsbC5jaAo+Pj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+IGRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKPj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCj4+ Cj4+IC0tCj4+IEphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRl cgoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK