From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: [PATCH 4/6] drm: scrambling support in drm layer Date: Thu, 2 Feb 2017 11:08:22 +0530 Message-ID: <6bd29f50-aac5-3fbd-ab1b-c6f4b79e99f9@intel.com> References: <1485953081-7630-1-git-send-email-shashank.sharma@intel.com> <1485953081-7630-5-git-send-email-shashank.sharma@intel.com> <20170201163201.GC18725@ulmo.ba.sec> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170201163201.GC18725@ulmo.ba.sec> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding Cc: jose.abreu@synopsys.com, =daniel.vetter@intel.com, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org UmVnYXJkcwoKU2hhc2hhbmsKCgpPbiAyLzEvMjAxNyAxMDowMiBQTSwgVGhpZXJyeSBSZWRpbmcg d3JvdGU6Cj4gT24gV2VkLCBGZWIgMDEsIDIwMTcgYXQgMDY6MTQ6MzlQTSArMDUzMCwgU2hhc2hh bmsgU2hhcm1hIHdyb3RlOgo+PiBIRE1JIDIuMCBzcGVjIG1hbmRhdGVzIHNjcmFtYmxpbmcgZm9y IG1vZGVzIHdpdGggcGl4ZWwgY2xvY2sgaGlnaGVyCj4+IHRoYW4gMzQwTWh6LiBUaGlzIHBhdGNo IGFkZHMgZmV3IG5ldyBmdW5jdGlvbnMgaW4gZHJtIGxheWVyIGZvcgo+PiBjb3JlIGRyaXZlcnMg dG8gZW5hYmxlL2Rpc2FibGUgc2NyYW1ibGluZy4KPj4KPj4gVGhpcyBwYXRjaCBhZGRzOgo+PiAt IEEgZnVuY3Rpb24gdG8gZGV0ZWN0IHNjcmFtYmxpbmcgc3VwcG9ydCBwYXJzaW5nIEhGLVZTREIK Pj4gLSBBIGZ1bmN0aW9uIHRvIGNoZWNrIHNjcmFtYmxpbmcgc3RhdHVzIHJ1bnRpbWUgdXNpbmcg U0NEQyByZWFkLgo+PiAtIFR3byBmdW5jdGlvbnMgdG8gZW5hYmxlL2Rpc2FibGUgc2NyYW1ibGlu ZyB1c2luZyBTQ0RDIHJlYWQvd3JpdGUuCj4+IC0gRmV3IG5ldyBib29scyB0byByZWZsZWN0IHNj cmFtYmxpbmcgc3VwcG9ydCBhbmQgc3RhdHVzLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBTaGFzaGFu ayBTaGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+Cj4+IC0tLQo+PiAgIGRyaXZlcnMv Z3B1L2RybS9kcm1fZWRpZC5jICB8IDEzMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLQo+PiAgIGluY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCB8ICAyNCArKysr KysrKwo+PiAgIGluY2x1ZGUvZHJtL2RybV9lZGlkLmggICAgICB8ICAgNiArLQo+PiAgIDMgZmls ZXMgY2hhbmdlZCwgMTU5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZWRpZC5jCj4+IGluZGV4IDM3OTAyZTUuLmYwZDk0MGEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fZWRpZC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCj4+ IEBAIC0zNyw2ICszNyw3IEBACj4+ICAgI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgo+PiAgICNp bmNsdWRlIDxkcm0vZHJtX2VuY29kZXIuaD4KPj4gICAjaW5jbHVkZSA8ZHJtL2RybV9kaXNwbGF5 aWQuaD4KPj4gKyNpbmNsdWRlIDxkcm0vZHJtX3NjZGNfaGVscGVyLmg+Cj4+ICAgCj4+ICAgI2Rl ZmluZSB2ZXJzaW9uX2dyZWF0ZXIoZWRpZCwgbWFqLCBtaW4pIFwKPj4gICAJKCgoZWRpZCktPnZl cnNpb24gPiAobWFqKSkgfHwgXAo+PiBAQCAtMzgxNCw2ICszODE1LDEzMiBAQCBzdGF0aWMgdm9p ZCBkcm1fZGV0ZWN0X2hkbWlfc2NkYyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ PiAgIAl9Cj4+ICAgfQo+PiAgIAo+PiArc3RhdGljIHZvaWQgZHJtX2RldGVjdF9oZG1pX3NjcmFt Ymxpbmcoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPj4gKwkJCQkgY29uc3QgdTgg KmhmX3ZzZGIpCj4+ICt7Cj4+ICsJc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmRpc3BsYXkgPSAm Y29ubmVjdG9yLT5kaXNwbGF5X2luZm87Cj4+ICsJc3RydWN0IGRybV9oZG1pX2luZm8gKmhkbWkg PSAmZGlzcGxheS0+aGRtaV9pbmZvOwo+PiArCj4+ICsJLyoKPj4gKwkgKiBBbGwgSERNSSAyLjAg bW9uaXRvcnMgbXVzdCBzdXBwb3J0IHNjcmFtYmxpbmcgYXQgcmF0ZXMgPiAzNDBNLgo+IEluIGNv bW1lbnRzIGJlbG93IHlvdSB1c2UgTWh6IGFzIHRoZSBhYmJyZXZpYXRpb25zLiBUaGlzIHNob3Vs ZCBiZQo+IGNvbnNpc3RlbnQuIEFsc28gSSB0aGluayAiTUh6IiBpcyBhY3R1YWxseSB0aGUgY29y cmVjdCBzcGVsbGluZy4KQWdyZWUuCj4+ICsJICogQW5kIGFzIHBlciB0aGUgc3BlYywgdGhyZWUg ZmFjdG9ycyBjb25maXJtIHRoaXM6Cj4+ICsJICogKiBBdmFpbGFiaWxpdHkgb2YgYSBIRi1WU0RC IGJsb2NrIGluIEVESUQgKGNoZWNrKQo+PiArCSAqICogTm9uIHplcm8gTWF4X1RNRFNfQ2hhcl9S YXRlIGZpbGVkIGluIEhGLVZTREIKPj4gKwkgKiAqIFNDREMgc3VwcG9ydCBhdmFpbGFibGUKPj4g KwkgKiBMZXRzIGNoZWNrIGl0IG91dC4KPj4gKwkgKi8KPj4gKwo+PiArCWlmIChoZl92c2RiWzVd KSB7Cj4+ICsJCWRpc3BsYXktPm1heF90bWRzX2Nsb2NrID0gaGZfdnNkYls1XSAqIDUwMDA7Cj4+ ICsJCURSTV9ERUJVR19LTVMoIkhGLVZTREI6IG1heCBUTURTIGNsb2NrICVkIGtIelxuIiwKPj4g KwkJCWRpc3BsYXktPm1heF90bWRzX2Nsb2NrKTsKPj4gKwo+PiArCQlpZiAoaGRtaS0+c2NkY19z dXBwb3J0ZWQpIHsKPj4gKwkJCWhkbWktPnNjcl9pbmZvLnN1cHBvcnRlZCA9IHRydWU7Cj4+ICsK Pj4gKwkJCS8qIEZldyBzaW5rcyBzdXBwb3J0IHNjcmFtYmxpbmcgZm9yIGNsb2tzIDwgMzQwTSAq Lwo+PiArCQkJaWYgKChoZl92c2RiWzZdICYgMHg4KSkKPj4gKwkJCQloZG1pLT5zY3JfaW5mby5s b3dfY2xvY2tzID0gdHJ1ZTsKPj4gKwkJfQo+PiArCX0KPj4gK30KPj4gKwo+PiArLyoqCj4+ICsg KiBkcm1fY2hlY2tfc2NyYW1ibGluZ19zdGF0dXMgLSB3aGF0IGlzIHN0YXR1cyBvZiBzY3JhbWJs aW5nPwo+PiArICogQGFkYXB0ZXI6IGkyYyBhZGFwdGVyIGZvciBTQ0RDIGNoYW5uZWwKPiAiSTJD Iiwgc2FtZSBpbiBvdGhlciBwYXJ0cyBvZiB0aGlzIHBhdGNoLgpHb3QgaXQuCj4+ICsgKgo+PiAr ICogUmVhZCB0aGUgc2NyYW1ibGVyIHN0YXR1cyBvdmVyIFNDREMgY2hhbm5lbCwgYW5kIGNoZWNr IHRoZQo+PiArICogc2NyYW1ibGluZyBzdGF0dXMuCj4+ICsgKgo+PiArICogUmV0dXJuOiBUcnVl IGlmIHRoZSBzY3JhbWJsaW5nIGlzIGVuYWJsZWQsIGZhbHNlIG90aGVyd2lzZS4KPiBJIHRoaW5r IHRoZSByZXN0IG9mIERSTS9LTVMga2VybmVsZG9jIHRyaWVzIHRvIHVzZSAiUmV0dXJuczpcbiIg YXMgYQo+IHN0YW5kYXJkIHdheSB0byBkb2N1bWVudCByZXR1cm4gdmFsdWVzLgpPay4KPj4gKyAq Lwo+PiArCj4+ICtib29sIGRybV9jaGVja19zY3JhbWJsaW5nX3N0YXR1cyhzdHJ1Y3QgaTJjX2Fk YXB0ZXIgKmFkYXB0ZXIpCj4gTWF5YmUgdXNlIGEgZHJtX3NjZGNfKigpIHByZWZpeCBmb3IgdGhp cyB0byBtYWtlIGl0IG1vcmUgY29uc2lzdGVudCB3aXRoCj4gb3RoZXIgU0NEQyBBUEkuCj4KPiBX aGlsZSBhdCBpdCwgd291bGQgdGhpcyBub3QgYmUgYmV0dGVyIGxvY2F0ZWQgaW4gZHJtX3NjZGMu YyBhbG9uZyB3aXRoCj4gdGhlIG90aGVyIGhlbHBlcnM/IGRybV9lZGlkLmMgaXMgbW9yZSBmb2N1 c3NlZCBvbiB0aGUgcGFyc2luZyBhc3BlY3RzIG9mCj4gYWxsIHRoaW5ncyBFRElELgpZZWFoLCB0 aGUgc2FtZSBpcyBtZW50aW9uZWQgYnkgVmlsbGUgdG9vLCB3aWxsIGRvIHRoYXQuCj4+ICt7Cj4+ ICsJdTggc3RhdHVzOwo+PiArCj4+ICsJaWYgKGRybV9zY2RjX3JlYWRiKGFkYXB0ZXIsIFNDRENf U0NSQU1CTEVSX1NUQVRVUywgJnN0YXR1cykgPCAwKSB7Cj4gSG93IGFib3V0IHN0b3JpbmcgdGhl IGVycm9yIGNvZGUuLi4KPgo+PiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byByZWFkIHNjcmFtYmxp bmcgc3RhdHVzXG4iKTsKPiAuLi4gYW5kIG1ha2luZyBpdCBwYXJ0IG9mIHRoZSBlcnJvciBtZXNz YWdlPyBTb21ldGltZXMgaXRzIHVzZWZ1bCB0bwo+IGtub3cgd2hhdCBleGFjdCBlcnJvciB0cmln Z2VyZWQgdGhpcyBiZWNhdXNlIGl0IGhlbHBzIG5hcnJvd2luZyBkb3duCj4gd2hlcmUgdGhpbmdz IHdlbnQgd3JvbmcuCkFncmVlLCBpbiBmYWN0IHdoaWxlIGRlYnVnZ2luZyBhbmQgdGVzdGluZyB0 aGlzIHBhdGNoIHNlcmllcywgSSBoYWQgdG8gCnByaW50IGl0IGV4cGxpY2l0bHkuCj4KPj4gKwkJ cmV0dXJuIGZhbHNlOwo+PiArCX0KPj4gKwo+PiArCXN0YXR1cyAmPSBTQ0RDX1NDUkFNQkxJTkdf U1RBVFVTOwo+PiArCXJldHVybiBzdGF0dXMgIT0gMDsKPiBNYXliZSBtYWtlIHRoaXMgYSBzaW5n bGUgbGluZToKPgo+IAlyZXR1cm4gKHN0YXR1cyAmIFNDRENfU0NSQU1CTElOR19TVEFUVVMpICE9 IDA7CkdvdCBpdC4KPgo+PiArfQo+PiArCj4+ICsvKioKPj4gKyAqIGRybV9lbmFibGVfc2NyYW1i bGluZyAtIGVuYWJsZSBzY3JhbWJsaW5nCj4+ICsgKiBAY29ubmVjdG9yOiB0YXJnZXQgZHJtX2Nv bm5lY3Rvcgo+ICJ0YXJnZXQgRFJNIGNvbm5lY3RvciI/CkdvdCBpdC4KPj4gKyAqIEBhZGFwdGVy OiBpMmMgYWRhcHRlciBmb3IgU0NEQyBjaGFubmVsCj4+ICsgKiBAZm9yY2U6IGVuYWJsZSBzY3Jh bWJsaW5nLCBldmVuIGlmIGl0cyBhbHJlYWR5IGVuYWJsZWQKPj4gKyAqCj4+ICsgKiBXcml0ZSB0 aGUgVE1EUyBjb25maWcgb3ZlciBTQ0RDIGNoYW5uZWwsIGFuZCBlbmFibGUgc2NyYW1ibGluZwo+ PiArICogUmV0dXJuOiBUcnVlIGlmIHNjcmFtYmxpbmcgaXMgc3VjY2Vzc2Z1bGx5IGVuYWJsZWQs IGZhbHNlIG90aGVyd2lzZS4KPj4gKyAqLwo+PiArCj4+ICtib29sIGRybV9lbmFibGVfc2NyYW1i bGluZyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+PiArCQkJCQlzdHJ1Y3QgaTJj X2FkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgZm9yY2UpCj4gSSB0aGluayBJJ2QgbW92ZSB0aGlzIHRv IGRybV9zY2RjLmMgYXMgd2VsbCBiZWNhdXNlIGl0IHByaW1hcmlseQo+IG9wZXJhdGVzIG9uIFND REMuIElmIHlvdSBkbyBzbywgbWlnaHQgYmUgd29ydGggbWFraW5nIGFkYXB0ZXIgdGhlIGZpcnN0 Cj4gYXJndW1lbnQgZm9yIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgU0NEQyBBUEkuCkFncmVlLCB3 aWxsIG1vdmUgaXQuCj4+ICt7Cj4+ICsJdTggY29uZmlnOwo+PiArCXN0cnVjdCBkcm1faGRtaV9p bmZvICpoZG1pX2luZm8gPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGRtaV9pbmZvOwo+PiAr Cj4+ICsJaWYgKGhkbWlfaW5mby0+c2NyX2luZm8uc3RhdHVzICYmICFmb3JjZSkgewo+PiArCQlE Uk1fREVCVUdfS01TKCJTY3JhbWJsaW5nIGFscmVhZHkgZW5hYmxlZFxuIik7Cj4+ICsJCXJldHVy biB0cnVlOwo+PiArCX0KPj4gKwo+PiArCWlmIChkcm1fc2NkY19yZWFkYihhZGFwdGVyLCBTQ0RD X1RNRFNfQ09ORklHLCAmY29uZmlnKSA8IDApIHsKPj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8g cmVhZCB0bWRzIGNvbmZpZ1xuIik7Cj4gTWF5YmUgYWxzbyBwcmludCB0aGUgZXJyb3IgY29kZT8K T2suCj4+ICsJCXJldHVybiBmYWxzZTsKPj4gKwl9Cj4+ICsKPj4gKwljb25maWcgfD0gU0NEQ19T Q1JBTUJMSU5HX0VOQUJMRTsKPj4gKwo+PiArCWlmIChkcm1fc2NkY193cml0ZWIoYWRhcHRlciwg U0NEQ19UTURTX0NPTkZJRywgY29uZmlnKSA8IDApIHsKPj4gKwkJRFJNX0VSUk9SKCJGYWlsZWQg dG8gZW5hYmxlIHNjcmFtYmxpbmcsIHdyaXRlIGVycm9yXG4iKTsKPiBTYW1lIGhlcmUuCk9rCj4+ ICsJCXJldHVybiBmYWxzZTsKPj4gKwl9Cj4+ICsKPj4gKwloZG1pX2luZm8tPnNjcl9pbmZvLnN0 YXR1cyA9IGRybV9jaGVja19zY3JhbWJsaW5nX3N0YXR1cyhhZGFwdGVyKTsKPj4gKwlyZXR1cm4g aGRtaV9pbmZvLT5zY3JfaW5mby5zdGF0dXM7Cj4+ICt9Cj4+ICsKPj4gKy8qKgo+PiArICogZHJt X2Rpc2FibGVfc2NyYW1ibGluZyAtIGRpc2FibGUgc2NyYW1ibGluZwo+PiArICogQGNvbm5lY3Rv cjogdGFyZ2V0IGRybV9jb25uZWN0b3IKPj4gKyAqIEBhZGFwdGVyOiBpMmMgYWRhcHRlciBmb3Ig U0NEQyBjaGFubmVsCj4+ICsgKiBAZm9yY2U6IGRpc2FibGUgc2NyYW1ibGluZywgZXZlbiBpZiBp dHMgYWxyZWFkeSBkaXNhYmxlZAo+PiArICoKPj4gKyAqIFdyaXRlIHRoZSBUTURTIGNvbmZpZyBv dmVyIFNDREMgY2hhbm5lbCwgYW5kIGRpc2FibGUgc2NyYW1ibGluZwo+PiArICogUmV0dXJuOiBU cnVlIGlmIHNjcmFtYmxpbmcgaXMgc3VjY2Vzc2Z1bGx5IGRpc2FibGVkLCBmYWxzZSBvdGhlcndp c2UuCj4+ICsgKi8KPj4gK2Jvb2wgZHJtX2Rpc2FibGVfc2NyYW1ibGluZyhzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAo+PiArCQkJCQlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIs IGJvb2wgZm9yY2UpCj4+ICt7Cj4+ICsJdTggY29uZmlnOwo+PiArCXN0cnVjdCBkcm1faGRtaV9p bmZvICpoZG1pX2luZm8gPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGRtaV9pbmZvOwo+PiAr Cj4+ICsJaWYgKCFoZG1pX2luZm8tPnNjcl9pbmZvLnN0YXR1cyAmJiAhZm9yY2UpIHsKPj4gKwkJ RFJNX0RFQlVHX0tNUygiU2NyYW1ibGluZyBhbHJlYWR5IGRpc2FibGVkXG4iKTsKPj4gKwkJcmV0 dXJuIHRydWU7Cj4+ICsJfQo+PiArCj4+ICsJaWYgKGRybV9zY2RjX3JlYWRiKGFkYXB0ZXIsIFND RENfVE1EU19DT05GSUcsICZjb25maWcpIDwgMCkgewo+PiArCQlEUk1fRVJST1IoIkZhaWxlZCB0 byByZWFkIHRtZHMgY29uZmlnXG4iKTsKPj4gKwkJcmV0dXJuIGZhbHNlOwo+PiArCX0KPj4gKwo+ PiArCWNvbmZpZyAmPSB+U0NEQ19TQ1JBTUJMSU5HX0VOQUJMRTsKPj4gKwo+PiArCWlmIChkcm1f c2NkY193cml0ZWIoYWRhcHRlciwgU0NEQ19UTURTX0NPTkZJRywgY29uZmlnKSA8IDApIHsKPj4g KwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZW5hYmxlIHNjcmFtYmxpbmcsIHdyaXRlIGVycm9yXG4i KTsKPj4gKwkJcmV0dXJuIGZhbHNlOwo+PiArCX0KPj4gKwo+PiArCWhkbWlfaW5mby0+c2NyX2lu Zm8uc3RhdHVzID0gZHJtX2NoZWNrX3NjcmFtYmxpbmdfc3RhdHVzKGFkYXB0ZXIpOwo+PiArCXJl dHVybiAhaGRtaV9pbmZvLT5zY3JfaW5mby5zdGF0dXM7Cj4+ICt9Cj4gU2FtZSBjb21tZW50cyBh cyBmb3IgZHJtX2VuYWJsZV9zY3JhbWJsaW5nKCkuCkdvdCBpdC4KPj4gQEAgLTM5MjgsOCArNDA1 NSwxMCBAQCBzdGF0aWMgdm9pZCBkcm1fcGFyc2VfY2VhX2V4dChzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLAo+PiAgIAo+PiAgIAkJaWYgKGNlYV9kYl9pc19oZG1pX3ZzZGIoZGIpKQo+ PiAgIAkJCWRybV9wYXJzZV9oZG1pX3ZzZGJfdmlkZW8oY29ubmVjdG9yLCBkYik7Cj4+IC0JCWlm IChjZWFfZGJfaXNfaGRtaV9mb3J1bV92c2RiKGRiKSkKPj4gKwkJaWYgKGNlYV9kYl9pc19oZG1p X2ZvcnVtX3ZzZGIoZGIpKSB7Cj4+ICAgCQkJZHJtX2RldGVjdF9oZG1pX3NjZGMoY29ubmVjdG9y LCBkYik7Cj4+ICsJCQlkcm1fZGV0ZWN0X2hkbWlfc2NyYW1ibGluZyhjb25uZWN0b3IsIGRiKTsK Pj4gKwkJfQo+PiAgIAl9Cj4+ICAgfQo+PiAgIAo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX2Nvbm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4+IGluZGV4IDI0 MzU1OTguLmI5NzM1YmQgMTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3Iu aAo+PiArKysgYi9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKPj4gQEAgLTkwLDYgKzkwLDI2 IEBAIGVudW0gc3VicGl4ZWxfb3JkZXIgewo+PiAgIAo+PiAgIH07Cj4+ICAgCj4+ICsKPj4gKy8q Kgo+PiArICogc3RydWN0IHNjcmFtYmxpbmc6IHNpbmsncyBzY3JhbWJsaW5nIHN1cHBvcnQuCj4+ ICsgKi8KPj4gK3N0cnVjdCBzY3JhbWJsaW5nIHsKPj4gKwkvKioKPj4gKwkgKiBAc3VwcG9ydGVk OiBzY3JhbWJsaW5nIHN1cHBvcnRlZCBmb3IgcmF0ZXMgPiAzNDBNaHouCj4gSSB0aGluayBpdCdz IGNvbW1vbiB0byBzZXBhcmF0ZSBudW1iZXIgYW5kIHVuaXQgYnkgYSBzcGFjZSwgc28gIjM0MAo+ IE1IeiIuCkdvdCBpdC4KPj4gKwkgKi8KPj4gKwlib29sIHN1cHBvcnRlZDsKPj4gKwkvKioKPj4g KwkgKiBAbG93X2Nsb2Nrczogc2NyYW1ibGluZyBzdXBwb3J0ZWQgZm9yIHJhdGVzIDw9IDM0ME1o ei4KPj4gKwkgKi8KPj4gKwlib29sIGxvd19jbG9ja3M7Cj4gTWF5YmUgImxvd19yYXRlcyIgYmVj YXVzZSBhIGNsb2NrIGlzIHRlY2huaWNhbGx5IHRoZSBzb3VyY2Ugb2YgYSBzaWduYWwKPiB0aGF0 IG9zY2lsbGF0ZXMgYXQgdGhlIGdpdmVuIHJhdGUuCkFncmVlLCB3aWxsIGNoYW5nZSBpdC4KPj4g KwkvKioKPj4gKwkgKiBAc3RhdHVzOiBzY3JhbWJsaW5nIGVuYWJsZWQvZGlzYWJsZWQgPwo+PiAr CSAqLwo+PiArCWJvb2wgc3RhdHVzOwo+PiArfTsKPj4gKwo+PiArCj4+ICAgLyoqCj4+ICAgICog c3RydWN0IGRybV9oZG1pX2luZm8gLSBydW50aW1lIGRhdGEgYWJvdXQgdGhlIGNvbm5lY3RlZCBz aW5rCj4+ICAgICoKPj4gQEAgLTEwOCw2ICsxMjgsMTAgQEAgc3RydWN0IGRybV9oZG1pX2luZm8g ewo+PiAgIAkgKiBAc2NkY19ycjogc2luayBpcyBjYXBhYmxlIG9mIGdlbmVyYXRpbmcgc2NkYyBy ZWFkIHJlcXVlc3QuCj4+ICAgCSAqLwo+PiAgIAlib29sIHNjZGNfcnI7Cj4+ICsJLyoqCj4+ICsJ ICogc2NyX2luZm86IHNpbmsncyBzY3JhbWJsaW5nIHN1cHBvcnQgYW5kIGNhcGFiaWxpdGllcy4K Pj4gKwkgKi8KPj4gKwlzdHJ1Y3Qgc2NyYW1ibGluZyBzY3JfaW5mbzsKPiBBZ2FpbiwgSSB0aGlu ayBJJ2QgZHJvcCBfaW5mbyBhbmQgaW5zdGVhZCBzcGVsbCBvdXQgInNjcmFtYmxpbmciIHRvIG1h a2UKPiB0aGlzIGVhc2llciB0byByZW1lbWJlci4KU3VyZSwgY2FuIGJlIGRvbmUuCj4KPiBBbHNv IEknbSB3b25kZXJpbmcgd2h5IHNjZGNfc3VwcG9ydGVkIGFuZCBzY2RjX3JyIGFyZSBub3QgaW4g YSBzdHJ1Y3R1cmUKPiBpZiBzY3JhbWJsaW5nIGluZm8gaXMuIEFsc28gc2luY2Ugc2NyYW1ibGlu ZyBkZXBlbmRzIG9uIFNDREMsIHdvdWxkIGl0Cj4gbWFrZSBzZW5zZSB0byBlbWJlZCBpdCBpbiBh IHN0cnVjdCBkcm1faGRtaV9zY2RjX2luZm8/Ck15IG9waW5pb24gd2hpbGUgZGVzaWduaW5nIHdh czoKLSBTQ0RDIHJyIHN1cHBvcnQgaXMgcGxhdGZvcm0gc3BlY2lmaWMsIGFuZCBhIHBsYXRmb3Jt IGNhbiBjaG9vc2Ugbm90IHRvIApzdXBwb3J0IHJlYWRfcmVxIGJ1dCBqdXN0IGFsbG93CiAgIHNj cmFtYmxpbmcgdXNpbmcgc2NkYyByZWFkIGFuZCB3cml0ZSwgaGVuY2Uga2VwdCB0aGF0IHNlcGFy YXRlCi0gWW91IG5lZWQgdG8gbG9vayBpbnRvIHRoaXMgaW50ZXJuYWwgc3RydWN0dXJlLCBvbmx5 IGlmIHNjZGMgaXMgc3VwcG9ydGVkLgotIEFsc28sIFNDREMgcmVnaXN0ZXJzIGNhbiBiZSB1c2Vk IGJleW9uZCBzY3JhbWJsaW5nIHRvbywgbGlrZSBmb3IgZXJyb3IgCmRldGVjdGlvbiwgYW5kIG90 aGVyIGNhc2VzLCBzbyBJIHRob3VnaHQKICAgaXQgd291bGQgYmUgYmV0dGVyIHRvIGtlZXAgaXQg aW5kZXBlbmRlbnQuCgpEb2VzIGl0IG1ha2Ugc2Vuc2UgPwoKLVNoYXNoYW5rCj4KPiAJc3RydWN0 IGRybV9oZG1pX3NjZGNfc2NyYW1ibGluZ19pbmZvIHsKPiAJCWJvb2wgc3VwcG9ydGVkOwo+IAkJ Ym9vbCBsb3dfcmF0ZXM7Cj4gCQlib29sIHN0YXR1czsKPiAJfTsKPgo+IAlzdHJ1Y3QgZHJtX2hk bWlfc2NkY19pbmZvIHsKPiAJCWJvb2wgc3VwcG9ydGVkOwo+IAkJYm9vbCByZWFkX3JlcXVlc3Q7 Cj4KPiAJCXN0cnVjdCBkcm1faGRtaV9zY2RjX3NjcmFtYmxpbmdfaW5mbyBzY3JhbWJsaW5nOwo+ IAl9Owo+Cj4gVGhpZXJyeQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==