From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Shankar, Uma" Subject: RE: [Intel-gfx] [v10 1/3] drm: Add HDMI colorspace property Date: Mon, 4 Feb 2019 17:08:40 +0000 Message-ID: References: <1548852866-32349-1-git-send-email-uma.shankar@intel.com> <1548852866-32349-2-git-send-email-uma.shankar@intel.com> <20190201185011.GB20097@intel.com> <20190204152509.GH20097@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190204152509.GH20097@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?iso-8859-1?Q?Ville_Syrj=E4l=E4?= Cc: "intel-gfx@lists.freedesktop.org" , "Syrjala, Ville" , "dri-devel@lists.freedesktop.org" , "Lankhorst, Maarten" List-Id: dri-devel@lists.freedesktop.org Cgo+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPkZyb206IFZpbGxlIFN5cmrDpGzDpCBbbWFp bHRvOnZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tXQo+U2VudDogTW9uZGF5LCBGZWJydWFy eSA0LCAyMDE5IDg6NTUgUE0KPlRvOiBTaGFua2FyLCBVbWEgPHVtYS5zaGFua2FyQGludGVsLmNv bT4KPkNjOiBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBTeXJqYWxhLCBWaWxsZSA8 dmlsbGUuc3lyamFsYUBpbnRlbC5jb20+Owo+TGFua2hvcnN0LCBNYWFydGVuIDxtYWFydGVuLmxh bmtob3JzdEBpbnRlbC5jb20+OyBkcmktCj5kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPlN1 YmplY3Q6IFJlOiBbSW50ZWwtZ2Z4XSBbdjEwIDEvM10gZHJtOiBBZGQgSERNSSBjb2xvcnNwYWNl IHByb3BlcnR5Cj4KPk9uIEZyaSwgRmViIDAxLCAyMDE5IGF0IDA4OjUwOjExUE0gKzAyMDAsIFZp bGxlIFN5cmrDpGzDpCB3cm90ZToKPj4gT24gV2VkLCBKYW4gMzAsIDIwMTkgYXQgMDY6MjQ6MjRQ TSArMDUzMCwgVW1hIFNoYW5rYXIgd3JvdGU6Cj4+ID4gQ3JlYXRlIGEgbmV3IGNvbm5lY3RvciBw cm9wZXJ0eSB0byBwcm9ncmFtIGNvbG9yc3BhY2UgdG8gc2luawo+PiA+IGRldmljZXMuIE1vZGVy biBzaW5rIGRldmljZXMgc3VwcG9ydCBtb3JlIHRoYW4gMSB0eXBlIG9mIGNvbG9yc3BhY2UKPj4g PiBsaWtlIDYwMSwgNzA5LCBCVDIwMjAgZXRjLiBUaGlzIGhlbHBzIHRvIHN3aXRjaCBiYXNlZCBv biBjb250ZW50Cj4+ID4gdHlwZSB3aGljaCBpcyB0byBiZSBkaXNwbGF5ZWQuIFRoZSBkZWNpc2lv biBsaWVzIHdpdGggY29tcG9zaXRvcnMgYXMKPj4gPiB0byBpbiB3aGljaCBzY2VuYXJpb3MsIGEg cGFydGljdWxhciBjb2xvcnNwYWNlIHdpbGwgYmUgcGlja2VkLgo+PiA+Cj4+ID4gVGhpcyB3aWxs IGJlIGhlbHBmdWwgbW9zdGx5IHRvIHN3aXRjaCB0byBoaWdoZXIgZ2FtdXQgY29sb3JzcGFjZXMK Pj4gPiBsaWtlIEJUMjAyMCB3aGVuIHRoZSBtZWRpYSBjb250ZW50IGlzIGVuY29kZWQgYXMgQlQy MDIwLiBUaGVyZWJ5Cj4+ID4gZ2l2aW5nIGEgZ29vZCB2aXN1YWwgZXhwZXJpZW5jZSB0byB1c2Vy cy4KPj4gPgo+PiA+IFRoZSBleHBlY3RhdGlvbiBmcm9tIHVzZXJzcGFjZSBpcyB0aGF0IGl0IHNo b3VsZCBwYXJzZSB0aGUgRURJRCBhbmQKPj4gPiBnZXQgc3VwcG9ydGVkIGNvbG9yc3BhY2VzLiBV c2UgdGhpcyBwcm9wZXJ0eSBhbmQgc3dpdGNoIHRvIHRoZSBvbmUKPj4gPiBzdXBwb3J0ZWQuIFNp bmsgc3VwcG9ydGVkIGNvbG9yc3BhY2VzIHNob3VsZCBiZSByZXRyaWV2ZWQgYnkKPj4gPiB1c2Vy c3BhY2UgZnJvbSBFRElEIGFuZCBkcml2ZXIgd2lsbCBub3QgZXhwbGljaXRseSBleHBvc2UgdGhl bS4KPj4gPgo+PiA+IEJhc2ljYWxseSB0aGUgZXhwZWN0YXRpb24gZnJvbSB1c2Vyc3BhY2UgaXM6 Cj4+ID4gIC0gU2V0IHVwIENSVEMgREVHQU1NQS9DVE0vR0FNTUEgdG8gY29udmVydCB0byBzb21l IHNpbmsKPj4gPiAgICBjb2xvcnNwYWNlCj4+ID4gIC0gU2V0IHRoaXMgbmV3IHByb3BlcnR5IHRv IGxldCB0aGUgc2luayBrbm93IHdoYXQgaXQKPj4gPiAgICBjb252ZXJ0ZWQgdGhlIENSVEMgb3V0 cHV0IHRvLgo+PiA+Cj4+ID4gdjI6IEFkZHJlc3NlZCBNYWFydGVuIGFuZCBWaWxsZSdzIHJldmll dyBjb21tZW50cy4gRW5oYW5jZWQgdGhlCj4+ID4gY29sb3JzcGFjZSBlbnVtIHRvIGluY29ycG9y YXRlIGJvdGggSERNSSBhbmQgRFAgc3VwcG9ydGVkCj4+ID4gY29sb3JzcGFjZXMuIEFsc28sIGFk ZGVkIGEgZGVmYXVsdCBvcHRpb24gZm9yIGNvbG9yc3BhY2UuCj4+ID4KPj4gPiB2MzogUmVtb3Zl ZCBBZG9iZSByZWZlcmVuY2VzIGZyb20gZW51bSBkZWZpbml0aW9ucyBhcyBwZXIgVmlsbGUsCj4+ ID4gSGFucyBWZXJrdWlsIGFuZCBKb25hcyBLYXJsbWFuIHN1Z2dlc3Rpb25zLiBDaGFuZ2VkIERl ZmF1bHQgdG8gYW4KPj4gPiB1bnNldCBzdGF0ZSB3aGVyZSBkcml2ZXIgd2lsbCBhc3NpZ24gdGhl IGNvbG9yc3BhY2UgaXMgbm90IGNob3NlbiBieQo+PiA+IHVzZXIsIHN1Z2dlc3RlZCBieSBWaWxs ZSBhbmQgTWFhcnRlbi4gQWRkcmVzc2VkIG90aGVyIG1pc2MgcmV2aWV3Cj4+ID4gY29tbWVudHMg ZnJvbSBNYWFydGVuLiBTcGxpdCB0aGUgY2hhbmdlcyB0byBoYXZlIHNlcGFyYXRlIGNvbG9yc3Bh Y2UKPj4gPiBwcm9wZXJ0eSBmb3IgRFAgYW5kIEhETUkuCj4+ID4KPj4gPiB2NDogQWRkcmVzc2Vk IENocmlzIGFuZCBWaWxsZSdzIHJldmlldyBjb21tZW50cywgYW5kIGNyZWF0ZWQgYQo+PiA+IGNv bW1vbiBjb2xvcnNwYWNlIHByb3BlcnR5IGZvciBEUCBhbmQgSERNSSwgZmlsdGVyZWQgdGhlIGxp c3QgYmFzZWQKPj4gPiBvbiB0aGUgY29sb3JzcGFjZXMgc3VwcG9ydGVkIGJ5IHRoZSByZXNwZWN0 aXZlIHByb3RvY29sIHN0YW5kYXJkLgo+PiA+Cj4+ID4gdjU6IE1hZGUgdGhlIHByb3BlcnR5IGNy ZWF0aW9uIGhlbHBlciBhY2NlcHQgZW51bSBsaXN0IGJhc2VkIG9uCj4+ID4gcGxhdGZvcm0gY2Fw YWJpbHRpZXMgYXMgc3VnZ2VzdGVkIGJ5IFNoYXNoYW5rLiBDb25zb2xpZGF0ZWQgSERNSSBhbmQK Pj4gPiBEUCBwcm9wZXJ0eSBjcmVhdGlvbiBpbiB0aGUgY29tbW9uIGhlbHBlci4KPj4gPgo+PiA+ IHY2OiBBZGRyZXNzZWQgU2hhc2hhbmsncyByZXZpZXcgY29tbWVudHMuCj4+ID4KPj4gPiB2Nzog QWRkZWQgZGVmaW5lcyBpbnN0ZWFkIG9mIGVudW0gaW4gdWFwaSBhcyBwZXIgQnJpYW4gU3Rhcmtl eSdzCj4+ID4gc3VnZ2VzdGlvbiBpbiBvcmRlciB0byBnbyB3aXRoIHN0cmluZyBtYXRjaGluZyBh dCB1c2Vyc3BhY2UuIFVwZGF0ZWQKPj4gPiB0aGUgY29tbWl0IG1lc3NhZ2UgdG8gYWRkIG1vcmUg ZGV0YWlscyBhcyB3ZWxsIGtlcm5lbCBkb2NzLgo+PiA+Cj4+ID4gdjg6IEFkZHJlc3NlZCBNYWFy dGVuJ3MgcmV2aWV3IGNvbW1lbnRzLgo+PiA+Cj4+ID4gdjk6IFJlbW92ZWQgbWFjcm8gZGVmaW5l cyBmcm9tIHVhcGkgYXMgcGVyIEJyaWFuIFN0YXJrZXkgYW5kIERhbmllbAo+PiA+IFN0b25lJ3Mg Y29tbWVudHMgYW5kIG1vdmVkIHRvIGRybSBpbmNsdWRlIGZpbGUuIE1vdmVkIGJhY2sgdG8gb2xk ZXIKPj4gPiBkZXNpZ24gd2l0aCBleHBvc2luZyBhbGwgSERNSSBjb2xvcnNwYWNlcyB0byB1c2Vy c3BhY2Ugc2luY2UKPj4gPiBpbmZvZnJhbWUgY2FwYWJpbGl0eSBpcyB0aGVyZSBldmVuIG9uIGxl Z2FjeSBwbGF0Zm9ybXMsIGFzIHBlcgo+PiA+IFZpbGxlJ3MgcmV2aWV3IGNvbW1lbnRzLgo+PiA+ Cj4+ID4gdjEwOiBGaXhlZCBzcGFyc2Ugd2FybmluZ3MsIHVwZGF0ZWQgdGhlIFJCIGZyb20gTWFh cnRlbiBhbmQgSmFuaSdzIGFjay4KPj4gPgo+PiA+IFNpZ25lZC1vZmYtYnk6IFVtYSBTaGFua2Fy IDx1bWEuc2hhbmthckBpbnRlbC5jb20+Cj4+ID4gQWNrZWQtYnk6IEphbmkgTmlrdWxhIDxqYW5p Lm5pa3VsYUBpbnRlbC5jb20+Cj4+ID4gUmV2aWV3ZWQtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hh c2hhbmsuc2hhcm1hQGludGVsLmNvbT4KPj4gPiBSZXZpZXdlZC1ieTogTWFhcnRlbiBMYW5raG9y c3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPj4gPiAtLS0KPj4gPiAgZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jIHwgIDQgKysrCj4+ID4gIGRyaXZlcnMvZ3B1 L2RybS9kcm1fY29ubmVjdG9yLmMgICB8IDc1Cj4rKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKPj4gPiAgaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAgICAgIHwgNDYg KysrKysrKysrKysrKysrKysrKysrKysrCj4+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMTI1IGluc2Vy dGlvbnMoKykKPj4gPgo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y191YXBpLmMKPj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYwo+PiA+IGlu ZGV4IDlhMWY0MWEuLjliNWQ0NGYgMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWNfdWFwaS5jCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFw aS5jCj4+ID4gQEAgLTc0Niw2ICs3NDYsOCBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfY29ubmVj dG9yX3NldF9wcm9wZXJ0eShzdHJ1Y3QKPmRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPj4gPiAg CQkJcmV0dXJuIC1FSU5WQUw7Cj4+ID4gIAkJfQo+PiA+ICAJCXN0YXRlLT5jb250ZW50X3Byb3Rl Y3Rpb24gPSB2YWw7Cj4+ID4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+Y29s b3JzcGFjZV9wcm9wZXJ0eSkgewo+PiA+ICsJCXN0YXRlLT5jb2xvcnNwYWNlID0gdmFsOwo+PiA+ ICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPndyaXRlYmFja19mYl9pZF9wcm9wZXJ0 eSkgewo+PiA+ICAJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gZHJtX2ZyYW1lYnVmZmVy X2xvb2t1cChkZXYsCj5OVUxMLCB2YWwpOwo+PiA+ICAJCWludCByZXQgPSBkcm1fYXRvbWljX3Nl dF93cml0ZWJhY2tfZmJfZm9yX2Nvbm5lY3RvcihzdGF0ZSwKPmZiKTsKPj4gPiBAQCAtODE0LDYg KzgxNiw4IEBAIHN0YXRpYyBpbnQgZHJtX2F0b21pY19jb25uZWN0b3Jfc2V0X3Byb3BlcnR5KHN0 cnVjdAo+ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+PiA+ICAJCSp2YWwgPSBzdGF0ZS0+cGlj dHVyZV9hc3BlY3RfcmF0aW87Cj4+ID4gIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+ Y29udGVudF90eXBlX3Byb3BlcnR5KSB7Cj4+ID4gIAkJKnZhbCA9IHN0YXRlLT5jb250ZW50X3R5 cGU7Cj4+ID4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+Y29sb3JzcGFjZV9w cm9wZXJ0eSkgewo+PiA+ICsJCSp2YWwgPSBzdGF0ZS0+Y29sb3JzcGFjZTsKPj4gPiAgCX0gZWxz ZSBpZiAocHJvcGVydHkgPT0gY29ubmVjdG9yLT5zY2FsaW5nX21vZGVfcHJvcGVydHkpIHsKPj4g PiAgCQkqdmFsID0gc3RhdGUtPnNjYWxpbmdfbW9kZTsKPj4gPiAgCX0gZWxzZSBpZiAocHJvcGVy dHkgPT0gY29ubmVjdG9yLT5jb250ZW50X3Byb3RlY3Rpb25fcHJvcGVydHkpIHsKPj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+PiA+IGIvZHJpdmVycy9n cHUvZHJtL2RybV9jb25uZWN0b3IuYyBpbmRleCA4NDc1Mzk2Li5lZDEwZGQ5IDEwMDY0NAo+PiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4+ID4gQEAgLTgyNiw2ICs4MjYsMzAgQEAgaW50IGRy bV9kaXNwbGF5X2luZm9fc2V0X2J1c19mb3JtYXRzKHN0cnVjdAo+PiA+IGRybV9kaXNwbGF5X2lu Zm8gKmluZm8sICB9Owo+PiA+IERSTV9FTlVNX05BTUVfRk4oZHJtX2dldF9jb250ZW50X3Byb3Rl Y3Rpb25fbmFtZSwKPmRybV9jcF9lbnVtX2xpc3QpCj4+ID4KPj4gPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgaGRtaV9jb2xvcnNwYWNlc1tdID0gewo+PiA+ICsJLyog Rm9yIERlZmF1bHQgY2FzZSwgZHJpdmVyIHdpbGwgc2V0IHRoZSBjb2xvcnNwYWNlICovCj4+ID4g Kwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZX0RFRkFVTFQsICJEZWZhdWx0IiB9LAo+PiA+ICsJLyog U3RhbmRhcmQgRGVmaW5pdGlvbiBDb2xvcmltZXRyeSBiYXNlZCBvbiBDRUEgODYxICovCj4+ID4g Kwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZX0lUVV82MDEsICJJVFVfNjAxIiB9LAo+Pgo+PiBUaGUg c3BlYyBubyBsb25nZXIgaGFzIHRoZSBCVC42MDEgbm90ZSBoZXJlLiBXaGljaCBJIGd1ZXNzIG1h a2VzIHNlbnNlCj4+IHNpbmNlIEJULjYwMSBkaWRuJ3QgZXZlbiBzcGVjaWZ5IGFueSBjb2xvciBw cmltYXJpZXMgaW5pdGlhbGx5LiBMYXRlcgo+PiB2ZXJzaW9ucyBkbyBieSB0aGV5IGhhdmUgZGlz dGluY3QgcHJpbWFyaWVzIGZvciBOVFNDIHZzLiBQQUwuIFRoZSBzcGVjCj4+IGNhbGxzIHRoaXMg anVzdCBTTVBURSAxNzBNIG5vdywgc28gSSB0aGluayB3ZSBzaG91bGQgZG8gdGhlIHNhbWUuCgpP ayBTdXJlLCBXaWxsIHVwZGF0ZSB0aGlzIG5hbWUuIFllYWggdGhpcyB3YXMgYSBsaXR0bGUgY29u ZnVzaW5nIGFzIHRvIHdoYXQgbmFtZSB0bwpnbyB3aXRoLiBXaWxsIHRha2UgdGhlIG9uZSBkZWZp bmVkIG5vdyBpbiBzcGVjIGkuZS4sIFNNUFRFIDE3ME0uCgo+Pgo+PiA+ICsJeyBEUk1fTU9ERV9D T0xPUklNRVRSWV9JVFVfNzA5LCAiSVRVXzcwOSIgfSwKPj4gPiArCS8qIFN0YW5kYXJkIERlZmlu aXRpb24gQ29sb3JpbWV0cnkgYmFzZWQgb24gSUVDIDYxOTY2LTItNCAqLwo+PiA+ICsJeyBEUk1f TU9ERV9DT0xPUklNRVRSWV9YVl9ZQ0NfNjAxLCAiWFZfWUNDXzYwMSIgfSwKPj4gPiArCS8qIEhp Z2ggRGVmaW5pdGlvbiBDb2xvcmltZXRyeSBiYXNlZCBvbiBJRUMgNjE5NjYtMi00ICovCj4+ID4g Kwl7IERSTV9NT0RFX0NPTE9SSU1FVFJZX1hWX1lDQ183MDksICJYVl9ZQ0NfNzA5IiB9LAo+PiA+ ICsJLyogQ29sb3JpbWV0cnkgYmFzZWQgb24gSUVDIDYxOTY2LTItMS9BbWVuZG1lbnQgMSAqLwo+ PiA+ICsJeyBEUk1fTU9ERV9DT0xPUklNRVRSWV9TX1lDQ182MDEsICJTX1lDQ182MDEiIH0sCj4+ ID4gKwkvKiBDb2xvcmltZXRyeSBiYXNlZCBvbiBJRUMgNjE5NjYtMi01IFszM10gKi8KPj4gPiAr CXsgRFJNX01PREVfQ09MT1JJTUVUUllfT1BZQ0NfNjAxLCAib3BZQ0NfNjAxIiB9LAo+Pgo+PiBU aGUgc3BlbGxpbmcgaXMgcmF0aGVyIGluY29uc2lzdGVudCBoZXJlLiBYVl8gdnMuIFNfIHZzLiBv cC4gV2h5IG5vdAo+PiB1c2UgdGhlIHNhbWUgc3BlbGxpbmcgc3R5bGUgZm9yIGFsbD8KClRoaXMg aXMgdGhlIG5hbWVzIGRlZmluZWQgaW4gc3BlYyBhbmQgSSB1c2VkIGFzIGlzLiBJIHdpbGwgbWFr ZSB0aGVtICBhcwpYVllDQywgU1lDQyBhbmQgT1BZQ0MgZm9yIGNvbnNpc3RlbmN5LiBIb3BlIHRo aXMgaXMgb2sgPwoKPj4KPj4gPiArCS8qIENvbG9yaW1ldHJ5IGJhc2VkIG9uIElFQyA2MTk2Ni0y LTUgKi8KPj4gPiArCXsgRFJNX01PREVfQ09MT1JJTUVUUllfT1BSR0IsICJvcFJHQiIgfSwKPj4g PiArCS8qIENvbG9yaW1ldHJ5IGJhc2VkIG9uIElUVS1SIEJULjIwMjAgKi8KPj4gPiArCXsgRFJN X01PREVfQ09MT1JJTUVUUllfQlQyMDIwX1JHQiwgIkJUMjAyMF9SR0IiIH0sCj4+ID4gKwkvKiBD b2xvcmltZXRyeSBiYXNlZCBvbiBJVFUtUiBCVC4yMDIwICovCj4+ID4gKwl7IERSTV9NT0RFX0NP TE9SSU1FVFJZX0JUMjAyMF9ZQ0MsICJCVDIwMjBfWUNDIiB9LAo+PiA+ICsJLyogQ29sb3JpbWV0 cnkgYmFzZWQgb24gSVRVLVIgQlQuMjAyMCAqLwo+PiA+ICsJeyBEUk1fTU9ERV9DT0xPUklNRVRS WV9CVDIwMjBfQ1lDQywgIkJUMjAyMF9DWUNDIiB9LAo+Pgo+PiAiQlQyMDIwIiB2cy4gIklUVV83 MDkiIGlzIHJhdGhlciBpbmNvbnNpc3RlbnQgYXMgd2VsbC4KCk9rLCB3aWxsIHVwZGF0ZSB0aGlz LgoKPj4gV2UgYWxzbyBzZWVtIHRvIGJlIG1pc3NpbmcgdGhlIHR3byBEQ0ktUDMgdGhpbmdzIGhl cmUuCgpZZWFoLCBJIGluaXRpYWxseSBkaWQgYXMgcGVyIDg2MS5GIHdoZXJlIGl0IHdhcyBub3Qg dGhlcmUuIFRoaXMgZ290IGFkZGVkIGluIDg2MS5HLAp3aWxsICBhZGQgdGhpcy4KCj4+ID4gK307 Cj4+ID4gKwo+PiA+ICAvKioKPj4gPiAgICogRE9DOiBzdGFuZGFyZCBjb25uZWN0b3IgcHJvcGVy dGllcwo+PiA+ICAgKgo+PiA+IEBAIC0xNTQ4LDYgKzE1NzIsNTcgQEAgaW50Cj4+ID4gZHJtX21v ZGVfY3JlYXRlX2FzcGVjdF9yYXRpb19wcm9wZXJ0eShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ PiA+IEVYUE9SVF9TWU1CT0woZHJtX21vZGVfY3JlYXRlX2FzcGVjdF9yYXRpb19wcm9wZXJ0eSk7 Cj4+ID4KPj4gPiAgLyoqCj4+ID4gKyAqIERPQzogc3RhbmRhcmQgY29ubmVjdG9yIHByb3BlcnRp ZXMKPj4gPiArICoKPj4gPiArICogQ29sb3JzcGFjZToKPj4gPiArICogICAgIGRybV9tb2RlX2Ny ZWF0ZV9jb2xvcnNwYWNlX3Byb3BlcnR5IC0gY3JlYXRlIGNvbG9yc3BhY2UgcHJvcGVydHkKPj4g PiArICogICAgIFRoaXMgcHJvcGVydHkgaGVscHMgc2VsZWN0IGEgc3VpdGFibGUgY29sb3JzcGFj ZSBiYXNlZCBvbiB0aGUgc2luawo+PiA+ICsgKiAgICAgY2FwYWJpbGl0eS4gTW9kZXJuIHNpbmsg ZGV2aWNlcyBzdXBwb3J0IHdpZGVyIGdhbXV0IGxpa2UgQlQyMDIwLgo+PiA+ICsgKiAgICAgVGhp cyBoZWxwcyBzd2l0Y2ggdG8gQlQyMDIwIG1vZGUgaWYgdGhlIEJUMjAyMCBlbmNvZGVkIHZpZGVv IHN0cmVhbQo+PiA+ICsgKiAgICAgaXMgYmVpbmcgcGxheWVkIGJ5IHRoZSB1c2VyLCBzYW1lIGZv ciBhbnkgb3RoZXIgY29sb3JzcGFjZS4gVGhlcmVieQo+PiA+ICsgKiAgICAgZ2l2aW5nIGEgZ29v ZCB2aXN1YWwgZXhwZXJpZW5jZSB0byB1c2Vycy4KPj4gPiArICoKPj4gPiArICogICAgIFRoZSBl eHBlY3RhdGlvbiBmcm9tIHVzZXJzcGFjZSBpcyB0aGF0IGl0IHNob3VsZCBwYXJzZSB0aGUgRURJ RAo+PiA+ICsgKiAgICAgYW5kIGdldCBzdXBwb3J0ZWQgY29sb3JzcGFjZXMuIFVzZSB0aGlzIHBy b3BlcnR5IGFuZCBzd2l0Y2ggdG8gdGhlCj4+ID4gKyAqICAgICBvbmUgc3VwcG9ydGVkLiBTaW5r IHN1cHBvcnRlZCBjb2xvcnNwYWNlcyBzaG91bGQgYmUgcmV0cmlldmVkIGJ5Cj4+ID4gKyAqICAg ICB1c2Vyc3BhY2UgZnJvbSBFRElEIGFuZCBkcml2ZXIgd2lsbCBub3QgZXhwbGljaXRseSBleHBv c2UgdGhlbS4KPj4gPiArICoKPj4gPiArICogICAgIEJhc2ljYWxseSB0aGUgZXhwZWN0YXRpb24g ZnJvbSB1c2Vyc3BhY2UgaXM6Cj4+ID4gKyAqICAgICAgLSBTZXQgdXAgQ1JUQyBERUdBTU1BL0NU TS9HQU1NQSB0byBjb252ZXJ0IHRvIHNvbWUgc2luawo+PiA+ICsgKiAgICAgICAgY29sb3JzcGFj ZQo+PiA+ICsgKiAgICAgIC0gU2V0IHRoaXMgbmV3IHByb3BlcnR5IHRvIGxldCB0aGUgc2luayBr bm93IHdoYXQgaXQKPj4gPiArICogICAgICAgIGNvbnZlcnRlZCB0aGUgQ1JUQyBvdXRwdXQgdG8u Cj4+ID4gKyAqICAgICAgLSBUaGlzIHByb3BlcnR5IGlzIGp1c3QgdG8gaW5mb3JtIHNpbmsgd2hh dCBjb2xvcnNwYWNlCj4+ID4gKyAqICAgICAgICBzb3VyY2UgaXMgdHJ5aW5nIHRvIGRyaXZlLgo+ PiA+ICsgKgo+PiA+ICsgKiBDYWxsZWQgYnkgYSBkcml2ZXIgdGhlIGZpcnN0IHRpbWUgaXQncyBu ZWVkZWQsIG11c3QgYmUgYXR0YWNoZWQKPj4gPiArdG8gZGVzaXJlZAo+PiA+ICsgKiBjb25uZWN0 b3JzLgo+PiA+ICsgKi8KPj4gPiAraW50IGRybV9tb2RlX2NyZWF0ZV9jb2xvcnNwYWNlX3Byb3Bl cnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yCj4+ID4gKypjb25uZWN0b3IpIHsKPj4gPiArCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmRldjsKPj4gPiArCXN0cnVjdCBkcm1fcHJv cGVydHkgKnByb3A7Cj4+ID4gKwo+PiA+ICsJaWYgKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUg PT0gRFJNX01PREVfQ09OTkVDVE9SX0hETUlBIHx8Cj4+ID4gKwkgICAgY29ubmVjdG9yLT5jb25u ZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfSERNSUIpIHsKPj4gPiArCQlwcm9wID0g ZHJtX3Byb3BlcnR5X2NyZWF0ZV9lbnVtKGRldiwKPkRSTV9NT0RFX1BST1BfRU5VTSwKPj4gPiAr CQkJCQkJIkNvbG9yc3BhY2UiLAo+PiA+ICsJCQkJCQloZG1pX2NvbG9yc3BhY2VzLAo+PiA+ICsK PglBUlJBWV9TSVpFKGhkbWlfY29sb3JzcGFjZXMpKTsKPj4gPiArCQlpZiAoIXByb3ApCj4+ID4g KwkJCXJldHVybiAtRU5PTUVNOwo+PiA+ICsJfSBlbHNlIHsKPj4gPiArCQlEUk1fREVCVUdfS01T KCJDb2xvcnNwYWNlIHByb3BlcnR5IG5vdCBzdXBwb3J0ZWRcbiIpOwo+PiA+ICsJCXJldHVybiAw Owo+PiA+ICsJfQo+PiA+ICsKPj4gPiArCWNvbm5lY3Rvci0+Y29sb3JzcGFjZV9wcm9wZXJ0eSA9 IHByb3A7Cj4+ID4gKwo+PiA+ICsJcmV0dXJuIDA7Cj4+ID4gK30KPj4gPiArRVhQT1JUX1NZTUJP TChkcm1fbW9kZV9jcmVhdGVfY29sb3JzcGFjZV9wcm9wZXJ0eSk7Cj4+ID4gKwo+PiA+ICsvKioK Pj4gPiAgICogZHJtX21vZGVfY3JlYXRlX2NvbnRlbnRfdHlwZV9wcm9wZXJ0eSAtIGNyZWF0ZSBj b250ZW50IHR5cGUgcHJvcGVydHkKPj4gPiAgICogQGRldjogRFJNIGRldmljZQo+PiA+ICAgKgo+ PiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKPj4gPiBiL2luY2x1 ZGUvZHJtL2RybV9jb25uZWN0b3IuaCBpbmRleCA5OTQxNjEzLi4yOTQ5NWIzIDEwMDY0NAo+PiA+ IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+PiA+ICsrKyBiL2luY2x1ZGUvZHJt L2RybV9jb25uZWN0b3IuaAo+PiA+IEBAIC0yNTMsNiArMjUzLDM4IEBAIGVudW0gZHJtX3BhbmVs X29yaWVudGF0aW9uIHsKPj4gPiAgCURSTV9NT0RFX1BBTkVMX09SSUVOVEFUSU9OX1JJR0hUX1VQ LAo+PiA+ICB9Owo+PiA+Cj4+ID4gKy8qCj4+ID4gKyAqIFRoaXMgaXMgYSBjb25zb2xpZGF0ZWQg Y29sb3JpbWV0cnkgbGlzdCBzdXBwb3J0ZWQgYnkgSERNSSBhbmQKPj4gPiArICogRFAgcHJvdG9j b2wgc3RhbmRhcmQuIFRoZSByZXNwZWN0aXZlIGNvbm5lY3RvcnMgd2lsbCByZWdpc3Rlcgo+PiA+ ICsgKiBhIHByb3BlcnR5IHdpdGggdGhlIHN1YnNldCBvZiB0aGlzIGxpc3QgKHN1cHBvcnRlZCBi eSB0aGF0Cj4+ID4gKyAqIHJlc3BlY3RpdmUgcHJvdG9jb2wpLiBVc2Vyc3BhY2Ugd2lsbCBzZXQg dGhlIGNvbG9yc3BhY2UgdGhyb3VnaAo+PiA+ICsgKiBhIGNvbG9yc3BhY2UgcHJvcGVydHkgd2hp Y2ggd2lsbCBiZSBjcmVhdGVkIGFuZCBleHBvc2VkIHRvCj4+ID4gKyAqIHVzZXJzcGFjZS4KPj4g PiArICovCj4+ID4gKwo+PiA+ICsvKiBGb3IgRGVmYXVsdCBjYXNlLCBkcml2ZXIgd2lsbCBzZXQg dGhlIGNvbG9yc3BhY2UgKi8KPj4gPiArI2RlZmluZSBEUk1fTU9ERV9DT0xPUklNRVRSWV9ERUZB VUxUCQkJMAo+PiA+ICsvKiBDRUEgODYxIE5vcm1hbCBDb2xvcmltZXRyeSBvcHRpb25zICovCj4+ ID4gKyNkZWZpbmUgRFJNX01PREVfQ09MT1JJTUVUUllfSVRVXzYwMQkJCTEKPj4gPiArI2RlZmlu ZSBEUk1fTU9ERV9DT0xPUklNRVRSWV9JVFVfNzA5CQkJMgo+PiA+ICsvKiBDRUEgODYxIEV4dGVu ZGVkIENvbG9yaW1ldHJ5IE9wdGlvbnMgKi8KPj4gPiArI2RlZmluZSBEUk1fTU9ERV9DT0xPUklN RVRSWV9YVl9ZQ0NfNjAxCQkJMwo+PiA+ICsjZGVmaW5lIERSTV9NT0RFX0NPTE9SSU1FVFJZX1hW X1lDQ183MDkJCQk0Cj4+ID4gKyNkZWZpbmUgRFJNX01PREVfQ09MT1JJTUVUUllfU19ZQ0NfNjAx CQkJNQo+PiA+ICsjZGVmaW5lIERSTV9NT0RFX0NPTE9SSU1FVFJZX09QWUNDXzYwMQkJCTYKPj4g PiArI2RlZmluZSBEUk1fTU9ERV9DT0xPUklNRVRSWV9PUFJHQgkJCTcKPj4gPiArI2RlZmluZSBE Uk1fTU9ERV9DT0xPUklNRVRSWV9CVDIwMjBfUkdCCQkJOAo+PiA+ICsjZGVmaW5lIERSTV9NT0RF X0NPTE9SSU1FVFJZX0JUMjAyMF9ZQ0MJCQk5Cj4+ID4gKyNkZWZpbmUgRFJNX01PREVfQ09MT1JJ TUVUUllfQlQyMDIwX0NZQ0MJCTEwCj4+ID4gKy8qIERQIE1TQSBDb2xvcmltZXRyeSBPcHRpb25z ICovCj4+ID4gKyNkZWZpbmUgRFJNX01PREVfRFBfQ09MT1JJTUVUUllfWV9DQkNSX0lUVV82MDEJ CTExCj4+ID4gKyNkZWZpbmUgRFJNX01PREVfRFBfQ09MT1JJTUVUUllfWV9DQkNSX0lUVV83MDkJ CTEyCj4+ID4gKyNkZWZpbmUgRFJNX01PREVfRFBfQ09MT1JJTUVUUllfU1JHQgkJCTEzCj4+ID4g KyNkZWZpbmUgRFJNX01PREVfRFBfQ09MT1JJTUVUUllfUkdCX1dJREVfR0FNVVQKPgkxNAo+PiA+ ICsjZGVmaW5lIERSTV9NT0RFX0RQX0NPTE9SSU1FVFJZX1NDUkdCCQkJMTUKPj4gPiArI2RlZmlu ZSBEUk1fTU9ERV9EUF9DT0xPUklNRVRSWV9EQ0lfUDMJCQkxNgo+PiA+ICsjZGVmaW5lIERSTV9N T0RFX0RQX0NPTE9SSU1FVFJZX0NVU1RPTV9DT0xPUl9QUk9GSUxFCj4JMTcKPj4KPj4gSSB0aGlu ayBzb21lIGtpbmQgb2YgbWFjcm8gdG8gZGVmaW5lIHRoZXNlIHdvdWxkIGJlIGdvb2QuIEFzc3Vt aW5nCj4+IHdlJ3JlIHRyeWluZyBkaXJlY3RseSBpbnRlcnByZXQgdGhlc2UgYXMgdGhlIEMvRUMv QUNFIGJpdHMuIEkgY2FuJ3QKPj4gcmVtZW1iZXIgaWYgbXVsdGlwbGUgZW51bSB2YWx1ZXMgY2Fu IGhhdmUgdGhlIHNhbWUgaW50ZWdlciB2YWx1ZS4gSWYKPj4gbm90IHdlJ2QgYWxzbyBuZWVkIGEg WUNiQ3IgdnMuIFJHQiBiaXQgaW4gdGhlcmUgc29tZXdoZXJlLiBBc3N1bWluZyB3ZQo+PiB3YW50 IHRvIGtlZXAgUkdCIGFuZCBZQ2JDciBzZXBhcmF0ZS4gQ3VycmVudGx5IG9ubHkgQlQuMjAyMCBo YXMgYQo+PiBjb25mbGljdCBiZXR3ZWVuIHRoZSB0d28uCj4KPlNvIEkgdGhpbmsgSSdtIGxlYW5p bmcgdG93YXJkcyBoYXZpbmcgc2VwYXJhdGUgWUNiQ3IgdnMuIFJHQiB2YWx1ZXMgKHdoaWNoIGlz Cj53aGF0IHlvdSBoYWQgaGVyZSBhbHJlYWR5LCB3aXRoIEJULjIwMjAgYmVpbmcgdGhlIG9ubHkg Y2FzZSB3aGVyZSB0aGF0IGFjdHVhbGx5Cj5tYXR0ZXJzKS4gVGhhdCB3YXkgc29tZW9uZSBjb3Vs ZCBldmVuIGRvIFlDYkNyIDQ6NDo0IHBhc3N0aHJvdWdoIGJ5IGp1c3QKPnN0dWZmaW5nIFlVViBk YXRhIGludG8gdGhlaXIgUkdCIGZyYW1lYnVmZmVyICh3aXRoIHRoZSBjb21wb25lbnRzIHN3aXp6 bGVkIHRoZQo+cmlnaHQgd2F5KS4KPgo+VGhlIG9uZSB0aGluZyB0aGF0IHJhdGhlciBicmVha3Mg dGhhdCB1c2VjYXNlIGlzIHRoZSBhdXRvbWFnaWMgNGsgWUNiQ3IgNDoyOjAKPmZhbGxiYWNrLiBT byBpbiBpbiBvcmRlciB0byBndWFyYW50ZWUgdGhhdCB0aGluZ3Mgd29yayBjb3JyZWN0bHkgSSBn dWVzcyB3ZSBzdGlsbAo+bmVlZCBleHBsY2l0IGNvbnRyb2wgb3ZlciB0aGUgb3V0cHV0IENTQy4K Pgo+SWUuIHNvbWUga2luZCBvZiBvdXRwdXQgY29sb3IgZW5jb2RpbmcgcHJvcCBsaWtlIHRoaXM6 Cj4JZGVmYXVsdCAvKiBjdXJyZW50IGJlaGF2aW91ciAqLwo+CXljYmNyIEJULjYwMQo+CXljYmNy IEJULjcwOQo+CXljYmNyIEJULjIwMjAKPgkvKiBubyB5Y2JjciA0OjI6MCBmYWxsYmFjayBmb3Ig YmVsb3cgbW9kZXM/ICovCj4JcmdiIDQ6NDo0Cj4JeWNiY3IgNDo0OjQgQlQuNjAxCj4JeWNiY3Ig NDo0OjQgQlQuNzA5Cj4JeWNiY3IgNDo0OjQgQlQuMjAyMAo+CXljYmNyIDQ6MjoyIEJULjYwMQo+ CXljYmNyIDQ6MjoyIEJULjcwOQo+CXljYmNyIDQ6MjoyIEJULjIwMjAKPgl5Y2JjciA0OjI6MCBC VC42MDEKPgl5Y2JjciA0OjI6MCBCVC43MDkKPgl5Y2JjciA0OjI6MCBCVC4yMDIwCj4KPkhtbS4g SW4gZmFjdCB0aGUgYXV0b21hZ2ljIDQ6MjowIGZhbGxiYWNrIHNvcnQgb2YgYnJlYWtzIHRoZSBj b2xvcnNwYWNlIHByb3AKPmFscmVkeSBiZWNhdXNlIGlmIHNvbWVvbmUgc2V0IGFuIFJHQiBjb2xv cnNwYWNlIGJ1dCB3ZSBlbmQgdXAgY29udmVydGluZyB0bwo+WUNiQ3IgNDoyOjAgd2hhdCBzaG91 bGQgd2UgdGVsbCB0aGUgc2luaz8gTWF5YmUgd2UganVzdCByZWplY3QgdGhlIG1vZGVzZXQgaW4K PnRoYXQgY2FzZSBhbmQgdGVsbCB1c2VycyB0aGV5IG5lZWQgdG8gd2FpdCBmb3IgdGhlIG91dHB1 dCBjb2xvciBlbmNvZGluZyBwcm9wIHRvCj5zdXBwb3J0IHRoYXQgdXNlY2FzZT8KCkhpIHllcywg YW4gb3V0cHV0IGVuY29kaW5nIHByb3BlcnR5IHRvIGNvbnRyb2wgdGhpcyBtYWtlIHNlbnNlIGFu ZCB3aWxsIGJlIHVzZWZ1bC4KU28gaWYgYSB1c2VyIGRlY2lkZXMgdG8gaGF2ZSBhIFJHQiBidWZm ZXIgYXQgc291cmNlIG9yIHdhbnRzIHRvIGJsZW5kIG11bHRpcGxlIGxheWVycyBpbiBSR0IsCmFu ZCBzdGlsbCB3YW50IG8vcCBjb252ZXJ0ZWQgdG8gWVVWNDIwIGF0IG8vcCwgaGUgY2FuIHVzZSB0 aGUgY3VycmVudCBjb2xvcnNwYWNlIHByb3BlcnR5IHRvCnNldCB0aGF0IGFuZCBzZW5kIHRvIHNp bmsuIEluIGNhc2UgaGUgZG9lc24ndCBkbyBpdCBleHBsaWNpdGx5IHdlIGNhbiBzdGlsbCBsZXQg dGhlIGNvbnRlbnQgYmUgZHJpdmVuCmJ1dCB3aXRoIHdhcm5pbmdzIG9yIGNob29zZSB0byBmYWls IGhpcyBtb2Rlc2V0IGlmIHRoYXQgc2VlbXMgYmV0dGVyLgoKV2hhdCBkbyB5b3Ugc3VnZ2VzdCwg c2hvdWxkIHdlIGtlZXAgY3VycmVudCBwcm9wZXJ0eSBpbnRlcmZhY2UgbGlrZSB0aGlzIGFuZCBl eHRlbmQgdGhlIHVzYWdlCndpdGggYSBzZXBhcmF0ZSBwcm9wZXJ0eSBvbiB0b3Agb2YgaXQuCgpU aGFua3MgVmlsbGUgZm9yIHlvdXIgcmV2aWV3IGNvbW1lbnRzIGFuZCBzdWdnZXN0aW9ucy4KClJl Z2FyZHMsClVtYSBTaGFua2FyCgo+Cj4+Cj4+ID4gKwo+PiA+ICAvKioKPj4gPiAgICogc3RydWN0 IGRybV9kaXNwbGF5X2luZm8gLSBydW50aW1lIGRhdGEgYWJvdXQgdGhlIGNvbm5lY3RlZCBzaW5r Cj4+ID4gICAqCj4+ID4gQEAgLTUwMyw2ICs1MzUsMTMgQEAgc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgewo+PiA+ICAJdW5zaWduZWQgaW50IGNvbnRlbnRfcHJvdGVjdGlvbjsKPj4gPgo+PiA+ ICAJLyoqCj4+ID4gKwkgKiBAY29sb3JzcGFjZTogU3RhdGUgdmFyaWFibGUgZm9yIENvbm5lY3Rv ciBwcm9wZXJ0eSB0byByZXF1ZXN0Cj4+ID4gKwkgKiBjb2xvcnNwYWNlIGNoYW5nZSBvbiBTaW5r LiBUaGlzIGlzIG1vc3QgY29tbW9ubHkgdXNlZCB0byBzd2l0Y2gKPj4gPiArCSAqIHRvIHdpZGVy IGNvbG9yIGdhbXV0cyBsaWtlIEJUMjAyMC4KPj4gPiArCSAqLwo+PiA+ICsJdTMyIGNvbG9yc3Bh Y2U7Cj4+ID4gKwo+PiA+ICsJLyoqCj4+ID4gIAkgKiBAd3JpdGViYWNrX2pvYjogV3JpdGViYWNr IGpvYiBmb3Igd3JpdGViYWNrIGNvbm5lY3RvcnMKPj4gPiAgCSAqCj4+ID4gIAkgKiBIb2xkcyB0 aGUgZnJhbWVidWZmZXIgYW5kIG91dC1mZW5jZSBmb3IgYSB3cml0ZWJhY2sgY29ubmVjdG9yLgo+ PiA+IEFzIEBAIC05OTUsNiArMTAzNCwxMiBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciB7Cj4+ID4g IAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpjb250ZW50X3Byb3RlY3Rpb25fcHJvcGVydHk7Cj4+ID4K Pj4gPiAgCS8qKgo+PiA+ICsJICogQGNvbG9yc3BhY2VfcHJvcGVydHk6IENvbm5lY3RvciBwcm9w ZXJ0eSB0byBzZXQgdGhlIHN1aXRhYmxlCj4+ID4gKwkgKiBjb2xvcnNwYWNlIHN1cHBvcnRlZCBi eSB0aGUgc2luay4KPj4gPiArCSAqLwo+PiA+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqY29sb3Jz cGFjZV9wcm9wZXJ0eTsKPj4gPiArCj4+ID4gKwkvKioKPj4gPiAgCSAqIEBwYXRoX2Jsb2JfcHRy Ogo+PiA+ICAJICoKPj4gPiAgCSAqIERSTSBibG9iIHByb3BlcnR5IGRhdGEgZm9yIHRoZSBEUCBN U1QgcGF0aCBwcm9wZXJ0eS4gVGhpcwo+PiA+IHNob3VsZCBvbmx5IEBAIC0xMjY5LDYgKzEzMTQs NyBAQCBpbnQKPj4gPiBkcm1fY29ubmVjdG9yX2F0dGFjaF92cnJfY2FwYWJsZV9wcm9wZXJ0eSgK Pj4gPiAgaW50IGRybV9jb25uZWN0b3JfYXR0YWNoX2NvbnRlbnRfcHJvdGVjdGlvbl9wcm9wZXJ0 eSgKPj4gPiAgCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsgIGludAo+PiA+IGRy bV9tb2RlX2NyZWF0ZV9hc3BlY3RfcmF0aW9fcHJvcGVydHkoc3RydWN0IGRybV9kZXZpY2UgKmRl dik7Cj4+ID4gK2ludCBkcm1fbW9kZV9jcmVhdGVfY29sb3JzcGFjZV9wcm9wZXJ0eShzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcgo+PiA+ICsqY29ubmVjdG9yKTsKPj4gPiAgaW50IGRybV9tb2RlX2NyZWF0 ZV9jb250ZW50X3R5cGVfcHJvcGVydHkoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4+ID4gdm9p ZCBkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2NvbnRlbnRfdHlwZShzdHJ1Y3QgaGRtaV9hdmlfaW5m b2ZyYW1lCj4qZnJhbWUsCj4+ID4gIAkJCQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlCj4qY29ubl9zdGF0ZSk7Cj4+ID4gLS0KPj4gPiAxLjkuMQo+PiA+Cj4+ID4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gPiBJbnRlbC1nZnggbWFp bGluZyBsaXN0Cj4+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiA+IGh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4+Cj4+ IC0tCj4+IFZpbGxlIFN5cmrDpGzDpAo+PiBJbnRlbAo+PiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4+IElu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPgo+LS0KPlZpbGxlIFN5cmrDpGzDpAo+ SW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==