From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [Intel-gfx] [PATCH v6 5/6] drm/i915: enable scrambling Date: Fri, 03 Mar 2017 15:01:18 +0200 Message-ID: <1488546078.4567.16.camel@gmail.com> References: <1488522587-1657-1-git-send-email-shashank.sharma@intel.com> <1488522587-1657-6-git-send-email-shashank.sharma@intel.com> <1488534727.4567.3.camel@gmail.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: "Sharma, Shashank" , dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, ville.syrjala@linux.intel.com Cc: jose.abreu@synopsys.com, daniel.vetter@intel.com, treding@nvidia.com List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE3LTAzLTAzIGF0IDE3OjMzICswNTMwLCBTaGFybWEsIFNoYXNoYW5rIHdyb3Rl Ogo+IFRoYW5rcyBmb3IgdGhlIHJldmlldyBBbmRlci4gTXkgY29tbWVudHMgaW5saW5lLgo+IAo+ IFNoYXNoYW5rCj4gCj4gT24gMy8zLzIwMTcgMzoyMiBQTSwgQW5kZXIgQ29uc2VsdmFuIERlIE9s aXZlaXJhIHdyb3RlOgo+ID4gT24gRnJpLCAyMDE3LTAzLTAzIGF0IDExOjU5ICswNTMwLCBTaGFz aGFuayBTaGFybWEgd3JvdGU6Cj4gPiA+IEdlbWluaWxha2UgcGxhdGZvcm0gc3BvcnRzIGEgbmF0 aXZlIEhETUkgMi4wIGNvbnRyb2xsZXIsIGFuZCBpcwo+ID4gPiBjYXBhYmxlIG9mIGRyaXZpbmcg cGl4ZWwtY2xvY2tzIHVwdG8gNTk0TWh6LiBIRE1JIDIuMCBzcGVjCj4gPiA+IG1lbmRhdGVzIHNj cmFtYmxpbmcgZm9yIHRoZXNlIGhpZ2hlciBjbG9ja3MsIGZvciByZWR1Y2VkIFJGIGZvb3Rwcmlu dC4KPiA+ID4gCj4gPiA+IFRoaXMgcGF0Y2ggY2hlY2tzIGlmIHRoZSBtb25pdG9yIHN1cHBvcnRz IHNjcmFtYmxpbmcsIGFuZCBpZiByZXF1aXJlZCwKPiA+ID4gZW5hYmxlcyBpdCBkdXJpbmcgdGhl IG1vZGVzZXQuCj4gPiA+IAo+ID4gPiBWMjogQWRkcmVzc2VkIHJldmlldyBjb21tZW50cyBmcm9t IFZpbGxlOgo+ID4gPiAtIERvIG5vdCB0cmFjayBzY3JhbWJsaW5nIHN0YXR1cyBpbiBEUk0gbGF5 ZXIsIHRyYWNrIHNvbWV3aGVyZSBpbgo+ID4gPiAgICBkcml2ZXIgbGlrZSBpbiBpbnRlbF9jcnRj X3N0YXRlLgo+ID4gPiAtIERvbid0IHRhbGsgdG8gbW9uaXRvciBhdCBzdWNoIGEgbG93IGxheWVy LCBzZXQgbW9uaXRvciBzY3JhbWJsaW5nCj4gPiA+ICAgIGluIGludGVsX2VuYWJsZV9kZGkoKSBi ZWZvcmUgZW5hYmxpbmcgdGhlIHBvcnQuCj4gPiA+IAo+ID4gPiBWMzogQWRkcmVzc2VkIHJldmll dyBjb21tZW50cyBmcm9tIEphbmkKPiA+ID4gICAtIEluIGNvbW1lbnRzLCBmdW5jdGlvbiBuYW1l cywgdXNlICJzaW5rIiBpbnN0ZWFkIG9mICJtb25pdG9yIiwKPiA+ID4gICAgIHNvIHRoYXQgdGhl IGltcGxlbWVudGF0aW9uIGNvdWxkIGJlIGNsb3NlIHRvIHRoZSBsYW5ndWFnZSBvZgo+ID4gPiAg ICAgSERNSSBzcGVjLgo+ID4gPiAKPiA+ID4gVjQ6IEFkZHJlc3NlZCByZXZpZXcgY29tbWVudCBm cm9tIE1hYXJ0ZW4KPiA+ID4gICAtIHNjcmFtYmxpbmcgLT4gaGRtaV9zY3JhbWJsaW5nCj4gPiA+ ICAgICBoaWdoX3RtZHNfY2xvY2tfcmF0aW8gLT4gaGRtaV9oaWdoX3RtZHNfY2xvY2tfcmF0aW8K PiA+ID4gCj4gPiA+IFY1OiBBZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRzIGZyb20gVmlsbGUgYW5k IEFuZGVyCj4gPiA+ICAgLSBEbyBub3QgbW9kaWZpeSB0aGUgY3J0Y19zdGF0ZSBhZnRlciBjb21w dXRlX2NvbmZpZy4gTW92ZSBhbGwKPiA+ID4gICAgIHNjcmFtYmxpbmcgYW5kIHRtZHNfY2xvY2tf cmF0aW8gY2FsY3V0YXRpb25zIHRvIGNvbXB1dGVfY29uZmlnLgo+ID4gPiAgIC0gV2hpbGUgc2V0 dGluZyBzY3JhbWJsaW5nIGZvciBzb3VyY2Uvc2luaywgZG8gbm90IGNoZWNrIHRoZQo+ID4gPiAg ICAgY29uZGl0aW9ucyBhZ2FpbiwganVzdCBnbyBieSB0aGUgY3J0Y19zdGF0ZSBmbGFncy4gVGhp cyB3aWxsCj4gPiA+ICAgICBzaW1wbHlmeSB0aGUgY29uZGl0aW9uIGNoZWNrcy4KPiA+ID4gCj4g PiA+IFY2OiBBZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRzIGZyb20gVmlsbGUKPiA+ID4gICAtIERv IG5vdCBhZGQgSVNfR0xLIGNoZWNrIGluIGRpc2FibGUvZW5hYmxlIGZ1bmN0aW9uLCBpbnN0ZWFk IGFkZCBpdAo+ID4gPiAgICAgaW4gY29tcHV0ZV9jb25maWcsIHdoaWxlIHNldHRpbmcgc3RhdGUg ZmxhZ3MuCj4gPiA+ICAgLSBSZW1vdmUgdW5uZWNlc3NhcnkgcGFyYW50aGVzaXMuCj4gPiA+ICAg LSBTaW1wbHlmeSBoYW5kbGVfc2lua19zY3JhbWJsaW5nIGZ1bmN0aW9uIGFzIHN1Z2dlc3RlZC4K PiA+ID4gICAtIEFkZCByZWFkb3V0IGNvZGUgZm9yIHNjcmFtYmxpbmcgc3RhdHVzIGluIGdldF9k ZGlfY29uZmlnIGFuZCBhZGQgYQo+ID4gPiAgICAgY2hlY2sgZm9yIHRoZSBzYW1lIGluIHBpcGVf Y29uZmlnX2NvbXBhcmUuCj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBTaGFzaGFuayBTaGFy bWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICB8ICA3ICsrKysKPiA+ID4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgfCAzMyArKysrKysrKysrKysrKysrCj4gPiA+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDUgKysrCj4gPiA+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgMTQgKysrKysrKwo+ID4gPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyAgICB8IDc0ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwo+ID4gPiAgIDUgZmlsZXMgY2hhbmdlZCwgMTMzIGluc2VydGlv bnMoKykKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiBpbmRleCA0OTA2 Y2U0ZC4uZjc4OTFhYyAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZWcuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+ IEBAIC03ODI0LDcgKzc4MjQsMTQgQEAgZW51bSB7Cj4gPiA+ICAgI2RlZmluZSAgVFJBTlNfRERJ X0VEUF9JTlBVVF9CX09OT0ZGCSg1PDwxMikKPiA+ID4gICAjZGVmaW5lICBUUkFOU19ERElfRURQ X0lOUFVUX0NfT05PRkYJKDY8PDEyKQo+ID4gPiAgICNkZWZpbmUgIFRSQU5TX0RESV9EUF9WQ19Q QVlMT0FEX0FMTE9DCSgxPDw4KQo+ID4gPiArI2RlZmluZSAgVFJBTlNfRERJX0hETUlfU0NSQU1C TEVSX0NUU19FTkFCTEUgKDE8PDcpCj4gPiA+ICsjZGVmaW5lICBUUkFOU19ERElfSERNSV9TQ1JB TUJMRVJfUkVTRVRfRlJFUSAoMTw8NikKPiA+ID4gICAjZGVmaW5lICBUUkFOU19ERElfQkZJX0VO QUJMRQkJKDE8PDQpCj4gPiA+ICsjZGVmaW5lICBUUkFOU19ERElfSElHSF9UTURTX0NIQVJfUkFU RQkoMTw8NCkKPiA+ID4gKyNkZWZpbmUgIFRSQU5TX0RESV9IRE1JX1NDUkFNQkxJTkcJKDE8PDAp Cj4gPiA+ICsjZGVmaW5lICBUUkFOU19ERElfSERNSV9TQ1JBTUJMSU5HX01BU0sgKFRSQU5TX0RE SV9IRE1JX1NDUkFNQkxFUl9DVFNfRU5BQkxFIFwKPiA+ID4gKwkJCQkJfCBUUkFOU19ERElfSERN SV9TQ1JBTUJMRVJfUkVTRVRfRlJFUSBcCj4gPiA+ICsJCQkJCQl8IFRSQU5TX0RESV9IRE1JX1ND UkFNQkxJTkcpCj4gPiAKPiA+IExhc3QgbGluZSBpcyBtaXNhbGlnbmVkLgo+IAo+IE9rLgo+ID4g PiAgIAo+ID4gPiAgIC8qIERpc3BsYXlQb3J0IFRyYW5zcG9ydCBDb250cm9sICovCj4gPiA+ICAg I2RlZmluZSBfRFBfVFBfQ1RMX0EJCQkweDY0MDQwCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rk aS5jCj4gPiA+IGluZGV4IGE3YzA4ZDcuLmQwYzY5MjcgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RkaS5jCj4gPiA+IEBAIC0xMzExLDYgKzEzMTEsMTEgQEAgdm9pZCBpbnRlbF9k ZGlfZW5hYmxlX3RyYW5zY29kZXJfZnVuYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gPiA+ICAg CQkJdGVtcCB8PSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfSERNSTsKPiA+ID4gICAJCWVsc2UKPiA+ ID4gICAJCQl0ZW1wIHw9IFRSQU5TX0RESV9NT0RFX1NFTEVDVF9EVkk7Cj4gPiA+ICsKPiA+ID4g KwkJaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKQo+ID4gPiArCQkJdGVtcCA9IGludGVsX2hk bWlfaGFuZGxlX3NvdXJjZV9zY3JhbWJsaW5nKAo+ID4gPiArCQkJCWludGVsX2VuY29kZXIsCj4g PiA+ICsJCQkJaW50ZWxfY3J0Yy0+Y29uZmlnLCB0ZW1wKTsKPiA+IAo+ID4gVGhpcyB3aG9sZSBo dW5rIGNvdWxkIGp1c3QgYmU6Cj4gPiAKPiA+ICsJaWYgKGNvbmZpZy0+aGRtaV9zY3JhbWJsaW5n KQo+ID4gKwkJaGRtaV9jb25maWcgfD0gVFJBTlNfRERJX0hETUlfU0NSQU1CTElOR19NQVNLOwo+ ID4gKwo+ID4gKwlpZiAoY29uZmlnLT5oZG1pX2hpZ2hfdG1kc19jbG9ja19yYXRpbykKPiA+ICsJ CWhkbWlfY29uZmlnIHw9IFRSQU5TX0RESV9ISUdIX1RNRFNfQ0hBUl9SQVRFOwo+ID4gCj4gPiBO byBuZWVkIHRvIGNoZWNrIGZvciBHTEsgaGVyZSwgc2luY2UgdGhlIGNvbXB1dGUgY29uZmlnIGNv ZGUgYWxyZWFkeSBkaWQuCj4gCj4gQXMgSSB3YXMgZW1waGFzaXppbmcgaW4gdGhlIHByZXZpb3Vz IHJldmlldyBjb21tZW50cywgaGF2aW5nIHR3byAKPiBzZXBhcmF0ZSBmdW5jdGlvbnMsIG9uZSB0 byBzZXQgc291cmNlX3NjcmFtYmxpbmcgYW5kCj4gb3RoZXIgdG8gc2V0IHNpbmtfc2NyYW1ibGlu ZyBtYWtlcyBpdCBlYXN5IHRvIGZvbGxvdyB1cCwgZHVlIHRvIGRlc2lnbiAKPiBzeW1tZXRyeSwg YW5kIGluIHRoYXQgY2FzZSB5b3UgbmVlZCBub3QgdG8gcmVmZXIKPiB0byBic3BlYyB0byBmaW5k IG91dCB3aGljaCBhbGwgcmVnaXN0ZXJzIGJlIGRlYWxpbmcgd2l0aCBzY3JhbWJsaW5nICwgCj4g anVzdCBjaGVjayBmb3Igc2NyYW1ibGluZyBjb250cm9sIGZ1bmN0aW9ucy4gU28gSSB3YXMgaW5z aXN0aW5nCj4gb24ga2VlcGluZyB0aGVtLgoKQnV0IHRoYXQgZGVzaWduIGNyZWF0ZXMgYW4gYXN5 bW1ldHJ5IHdoZW4gaXQgY29tZXMgdG8gY2hlY2tpbmcgYWxsIGJpdHMgdGhhdCBhcmUKZW5hYmxl ZCBpbiBUUkFOU19ERElfRlVOQ19DVEwoKSB0aGF0IGludm9sdmVzIGZ1bmN0aW9uLWhvcHBpbmcu IE1heWJlIGl0IGlzIGp1c3QKYSBtYXR0ZXIgb2YgZGlmZmVyZW50IHRhc3RlLiBCdXQgZm9yIHRo ZSBtb3JlIHByYWN0aWNhbCBwcm9ibGVtIG9mIGZpbmRpbmcgd2hhdApiaXRzIGFyZSBpbnZvbHZl ZCBpbiBlbmFibGluZyBzY3JhbWJsaW5nLCBJIHRoaW5rCgogICAgZ2l0IGdyZXAgaGRtaV9zY3Jh bWJsaW5nCgp3aWxsIGRvIGEgZ29vZCBlbm91Z2ggam9iLgoKPiAKPiBCdXQgYW55d2F5cywgYm90 aCB5b3UgYW5kIFZpbGxlIGFyZSBpbnNpc3Rpbmcgb24ga2VlcGluZyBpdCBpbmxpbmUsIHNvIAo+ IGxldHMga2VlcCBpdCB0aGF0IHdheS4KPiA+ID4gICAJfSBlbHNlIGlmICh0eXBlID09IElOVEVM X09VVFBVVF9BTkFMT0cpIHsKPiA+ID4gICAJCXRlbXAgfD0gVFJBTlNfRERJX01PREVfU0VMRUNU X0ZESTsKPiA+ID4gICAJCXRlbXAgfD0gKGludGVsX2NydGMtPmNvbmZpZy0+ZmRpX2xhbmVzIC0g MSkgPDwgMTsKPiA+ID4gQEAgLTE4ODUsNiArMTg5MCwyMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9l bmFibGVfZGRpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ID4gPiAgIAkJ c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQo+ID4gPiAgIAkJCWVu Y190b19kaWdfcG9ydChlbmNvZGVyKTsKPiA+ID4gICAKPiA+ID4gKwkJaWYgKElTX0dFTUlOSUxB S0UoZGV2X3ByaXYpKSB7Cj4gPiA+ICsJCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7Cj4gPiA+ICsJCQkvKgo+ID4gPiArCQkJICogR0xLIHNw b3J0cyBhIG5hdGl2ZSBIRE1JIDIuMCBjb250cm9sbGVyLiBJZiByZXF1aXJlZAo+ID4gPiArCQkJ ICogY2xvY2sgcmF0ZSBpcyA+IDM0MCBNaHogJiYgc2NyYW1ibGluZyBpcyBzdXBwb3J0ZWQKPiA+ ID4gKwkJCSAqIGJ5IHNpbmssIGVuYWJsZSBzY3JhbWJsaW5nIGJlZm9yZSBlbmFibGluZyB0aGUK PiA+ID4gKwkJCSAqIEhETUkgMi4wIHBvcnQuIFRoZSBzaW5rIGNhbiBjaG9vc2UgdG8gZGlzYWJs ZSB0aGUKPiA+ID4gKwkJCSAqIHNjcmFtYmxpbmcgaWYgaXQgZG9lc24ndCBkZXRlY3QgYSBzY3Jh bWJsZWQgd2l0aGluCj4gPiA+ICsJCQkgKiAxMDAgbXMuCj4gPiA+ICsJCQkgKi8KPiA+ID4gKwkJ CWludGVsX2hkbWlfaGFuZGxlX3Npbmtfc2NyYW1ibGluZyhpbnRlbF9lbmNvZGVyLAo+ID4gPiAr CQkJCQkJY29ubl9zdGF0ZS0+Y29ubmVjdG9yLAo+ID4gPiArCQkJCQkJY3J0Yy0+Y29uZmlnLCB0 cnVlKTsKPiA+IAo+ID4gVGhpcyBmdW5jdGlvbiByZWNlaXZlcyBhIHBpcGVfY29uZmlnIHBvaW50 ZXIgYXMgYXJndW1lbnQuIFVzZSB0aGF0IGluc3RlYWQgb2YKPiA+IGNydGMtPmNvbmZpZy4KPiAK PiBPay4KPiA+ID4gKwkJfQo+ID4gPiArCj4gPiA+ICAgCQkvKiBJbiBIRE1JL0RWSSBtb2RlLCB0 aGUgcG9ydCB3aWR0aCwgYW5kIHN3aW5nL2VtcGhhc2lzIHZhbHVlcwo+ID4gPiAgIAkJICogYXJl IGlnbm9yZWQgc28gbm90aGluZyBzcGVjaWFsIG5lZWRzIHRvIGJlIGRvbmUgYmVzaWRlcwo+ID4g PiAgIAkJICogZW5hYmxpbmcgdGhlIHBvcnQuCj4gPiA+IEBAIC0xOTE3LDYgKzE5MzcsMTQgQEAg c3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9kZGkoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVs X2VuY29kZXIsCj4gPiA+ICAgCWlmIChvbGRfY3J0Y19zdGF0ZS0+aGFzX2F1ZGlvKQo+ID4gPiAg IAkJaW50ZWxfYXVkaW9fY29kZWNfZGlzYWJsZShpbnRlbF9lbmNvZGVyKTsKPiA+ID4gICAKPiA+ ID4gKwlpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSkgewo+ID4gPiArCQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7Cj4gPiA+ ICsKPiA+ID4gKwkJaW50ZWxfaGRtaV9oYW5kbGVfc2lua19zY3JhbWJsaW5nKGludGVsX2VuY29k ZXIsCj4gPiA+ICsJCQkJCW9sZF9jb25uX3N0YXRlLT5jb25uZWN0b3IsCj4gPiA+ICsJCQkJCWlu dGVsX2NydGMtPmNvbmZpZywgZmFsc2UpOwo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiAgIAlpZiAo dHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKSB7Cj4gPiA+ICAgCQlzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGVuY29kZXIpOwo+ID4gPiAgIAo+ID4gPiBAQCAtMjA0 NCw2ICsyMDcyLDExIEBAIHZvaWQgaW50ZWxfZGRpX2dldF9jb25maWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gPiA+ICAgCj4gPiA+ICAgCQlpZiAoaW50ZWxfaGRtaS0+aW5mb2Zy YW1lX2VuYWJsZWQoJmVuY29kZXItPmJhc2UsIHBpcGVfY29uZmlnKSkKPiA+ID4gICAJCQlwaXBl X2NvbmZpZy0+aGFzX2luZm9mcmFtZSA9IHRydWU7Cj4gPiA+ICsKPiA+ID4gKwkJaWYgKHRlbXAg JiBUUkFOU19ERElfSERNSV9TQ1JBTUJMSU5HX01BU0spCgpJIG1pc3NlZCB0aGlzIHRoZSBmaXJz dCB0aW1lLCBidXQgd2Ugc2F5IGhkbWlfc2NyYW1ibGluZyBpcyBlbmFibGVkIGlmIGFueSBvZgp0 aG9zZSBiaXRzIGluIHRoZSBtYXNrIGlzIHNldC4gSXMgdGhhdCByZWFsbHkgd2hhdCB3ZSB3YW50 PyBPciBzaG91bGQgdGhpcyBjaGVjawpzcGVjaWZpY2FsbHkgZm9yIHRoZSBUUkFOU19ERElfSERN SV9TQ1JBTUJMSU5HIGJpdCBvciBhbGwgdGhlIGJpdHMgc2V0PwoKPiA+ID4gKwkJCXBpcGVfY29u ZmlnLT5oZG1pX3NjcmFtYmxpbmcgPSB0cnVlOwo+ID4gPiArCQlpZiAodGVtcCAmIFRSQU5TX0RE SV9ISUdIX1RNRFNfQ0hBUl9SQVRFKQo+ID4gPiArCQkJcGlwZV9jb25maWctPmhkbWlfaGlnaF90 bWRzX2Nsb2NrX3JhdGlvID0gdHJ1ZTsKPiA+IAo+ID4gSG1tLCB3ZSBtaWdodCBuZWVkIGEgSVNf R0xLIGhlcmUsIHNpbmNlIHRoZXNlIGJpdHMgb25seSBleGlzdCBpbiB0aGF0IHBsYXRmb3JtLgo+ ID4gSSBiZWxpZXZlIHRoZXkgc2hvdWxkIHJlYWQgemVybyB0aG91Z2gsIHNpbmNlIHRoZXkgYXJl IGxpc3RlZCBhcmUgcmVzZXJ2ZWQuCj4gPiBEdW5uby4KPiAKPiBIbW0sIEkgZG9udCB0aGluayB0 aGVyZSB3b3VsZCBiZSBhIHdheSB0byBzZXQgdGhlIHJlc2VydmVkIGJpdHMgdGhvdWdoLCAKPiBz byB3ZSBjYW4ga2VlcCBpdC4gSW4gdGhpcyB3YXkgdGhlCj4gb25seSBwbGFjZSB3ZSBhcmUgY2hl Y2tpbmcgYW5kIHNldHRpbmcgdGhlIHBsYXRmb3JtIGlzIGNvbXB1dGVfY29uZmlnLgoKWWVhaCwg d2l0aCB0aGUgY2hhbmdlIHRvIGNoZWNrIHRoZSBzdGF0ZSBmb3Igbm9uLUdMSyB0b28sIHdlIGdl dCBhIFdBUk4gaWYgdGhpcwpmYWlscywgc28gc2VlbXMgb2suCgo+ID4gPiAgIAkJLyogZmFsbCB0 aHJvdWdoICovCj4gPiA+ICAgCWNhc2UgVFJBTlNfRERJX01PREVfU0VMRUNUX0RWSToKPiA+ID4g ICAJCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0gNDsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+ID4gPiBpbmRleCA5OWU4ZDljLi5jMDE3ZWQzIDEwMDY0NAo+ID4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+IEBAIC0xMTY2Miw2ICsxMTY2 MiwxMSBAQCBzdGF0aWMgdm9pZCBfX3ByaW50ZigzLCA0KQo+ID4gPiAgIAlpZiAoKElOVEVMX0dF TihkZXZfcHJpdikgPCA4ICYmICFJU19IQVNXRUxMKGRldl9wcml2KSkgfHwKPiA+ID4gICAJICAg IElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ID4g PiAgIAkJUElQRV9DT05GX0NIRUNLX0kobGltaXRlZF9jb2xvcl9yYW5nZSk7Cj4gPiA+ICsJaWYg KElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Cj4gPiAKPiA+IE5vIG5lZWQgdG8gY2hlY2sgZm9y IEdMSyBoZXJlLiBUaGUgY29uZmlndXJhdGlvbiBzaG91bGQgbmV2ZXIgYmUgc2V0IGZvciBvdGhl cgo+ID4gcGxhdGZvcm1zLiBJZiBpdCBpcyBzZXQsIHRoYXQncyBhIGJ1ZyBhbmQgd2Ugd2FudCB2 ZXJpZnlfY3J0Y19zdGF0ZSgpIHRvIHRlbGxzCj4gPiB1cyBhYm91dCBpdC4KPiAKPiBBZ3JlZSwg d2lsbCByZW1vdmUgdGhpcy4KPiA+IAo+ID4gPiArCQlQSVBFX0NPTkZfQ0hFQ0tfSShoZG1pX3Nj cmFtYmxpbmcpOwo+ID4gPiArCQlQSVBFX0NPTkZfQ0hFQ0tfSShoZG1pX2hpZ2hfdG1kc19jbG9j a19yYXRpbyk7Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICAgCVBJUEVfQ09ORl9DSEVDS19JKGhh c19pbmZvZnJhbWUpOwo+ID4gPiAgIAo+ID4gPiAgIAlQSVBFX0NPTkZfQ0hFQ0tfSShoYXNfYXVk aW8pOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiBpbmRleCBlNmZiYmVlLi5i YWVmYmFhIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiBAQCAt Njk1LDYgKzY5NSwxMiBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7Cj4gPiA+ICAgCj4gPiA+ ICAgCS8qIEdhbW1hIG1vZGUgcHJvZ3JhbW1lZCBvbiB0aGUgcGlwZSAqLwo+ID4gPiAgIAl1aW50 MzJfdCBnYW1tYV9tb2RlOwo+ID4gPiArCj4gPiA+ICsJLyogSERNSSBzY3JhbWJsaW5nIHN0YXR1 cyAoc2luaykgKi8KPiA+ID4gKwlib29sIGhkbWlfc2NyYW1ibGluZzsKPiA+ID4gKwo+ID4gPiAr CS8qIEhETUkgSGlnaCBUTURTIGNoYXIgcmF0ZSByYXRpbyAoc2luaykgKi8KPiA+ID4gKwlib29s IGhkbWlfaGlnaF90bWRzX2Nsb2NrX3JhdGlvOwo+ID4gPiAgIH07Cj4gPiA+ICAgCj4gPiA+ICAg c3RydWN0IHZsdl93bV9zdGF0ZSB7Cj4gPiA+IEBAIC0xNjI2LDYgKzE2MzIsMTQgQEAgdm9pZCBp bnRlbF9oZG1pX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVs X2RpZ19wb3J0LAo+ID4gPiAgIGJvb2wgaW50ZWxfaGRtaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gICAJCQkgICAgICAgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ID4gPiAgIAkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSk7Cj4gPiA+ICt1aW50MzJfdAo+ID4gPiAraW50ZWxfaGRt aV9oYW5kbGVfc291cmNlX3NjcmFtYmxpbmcoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2Vu Y29kZXIsCj4gPiA+ICsJCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWcsCj4gPiA+ ICsJCQkJCXVpbnQzMl90IGhkbWlfY29uZmlnKTsKPiA+ID4gK3ZvaWQgaW50ZWxfaGRtaV9oYW5k bGVfc2lua19zY3JhbWJsaW5nKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ ID4gPiArCQkJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gPiArCQkJCQlz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnLAo+ID4gPiArCQkJCQlib29sIGVuYWJsZSk7 Cj4gPiA+ICAgdm9pZCBpbnRlbF9kcF9kdWFsX21vZGVfc2V0X3RtZHNfb3V0cHV0KHN0cnVjdCBp bnRlbF9oZG1pICpoZG1pLCBib29sIGVuYWJsZSk7Cj4gPiA+ICAgCj4gPiA+ICAgCj4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+ID4gaW5kZXggYzIxODRmNy4uMGExYWUwMyAxMDA2 NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4gPiBAQCAtMzQsNiArMzQs NyBAQAo+ID4gPiAgICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KPiA+ID4gICAj aW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+Cj4gPiA+ICAgI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5o Pgo+ID4gPiArI2luY2x1ZGUgPGRybS9kcm1fc2NkY19oZWxwZXIuaD4KPiA+ID4gICAjaW5jbHVk ZSAiaW50ZWxfZHJ2LmgiCj4gPiA+ICAgI2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgo+ID4gPiAg ICNpbmNsdWRlIDxkcm0vaW50ZWxfbHBlX2F1ZGlvLmg+Cj4gPiA+IEBAIC0xMzE2LDYgKzEzMTcs NyBAQCBib29sIGludGVsX2hkbWlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4gPiA+ICAgCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3Rv X2ludGVsX2hkbWkoJmVuY29kZXItPmJhc2UpOwo+ID4gPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+ID4gICAJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZTsKPiA+ID4gKwlzdHJ1Y3QgZHJtX3NjZGMgKnNjZGMgPSAmY29ubl9zdGF0 ZS0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGRtaS5zY2RjOwo+ID4gPiAgIAlpbnQgY2xvY2tf OGJwYyA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKPiA+ID4g ICAJaW50IGNsb2NrXzEyYnBjID0gY2xvY2tfOGJwYyAqIDMgLyAyOwo+ID4gPiAgIAlpbnQgZGVz aXJlZF9icHA7Cj4gPiA+IEBAIC0xMzg1LDYgKzEzODcsMTYgQEAgYm9vbCBpbnRlbF9oZG1pX2Nv bXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiAgIAo+ID4g PiAgIAlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9IDQ7Cj4gPiA+ICAgCj4gPiA+ICsJaWYgKHNj ZGMtPnNjcmFtYmxpbmcuc3VwcG9ydGVkICYmIElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Cj4g PiA+ICsJCWlmIChzY2RjLT5zY3JhbWJsaW5nLmxvd19yYXRlcykKPiA+ID4gKwkJCXBpcGVfY29u ZmlnLT5oZG1pX3NjcmFtYmxpbmcgPSB0cnVlOwo+ID4gPiArCj4gPiA+ICsJCWlmIChwaXBlX2Nv bmZpZy0+cG9ydF9jbG9jayA+IDM0MDAwMCkgewo+ID4gPiArCQkJcGlwZV9jb25maWctPmhkbWlf c2NyYW1ibGluZyA9IHRydWU7Cj4gPiA+ICsJCQlwaXBlX2NvbmZpZy0+aGRtaV9oaWdoX3RtZHNf Y2xvY2tfcmF0aW8gPSB0cnVlOwo+ID4gPiArCQl9Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICAg CXJldHVybiB0cnVlOwo+ID4gPiAgIH0KPiA+ID4gICAKPiA+ID4gQEAgLTE3OTQsNiArMTgwNiw2 OCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX2Rlc3Ryb3koc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcikKPiA+ID4gICAJaW50ZWxfaGRtaS0+YXNwZWN0X3JhdGlvID0gSERNSV9QSUNU VVJFX0FTUEVDVF9OT05FOwo+ID4gPiAgIH0KPiA+ID4gICAKPiA+ID4gK3ZvaWQgaW50ZWxfaGRt aV9oYW5kbGVfc2lua19zY3JhbWJsaW5nKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNv ZGVyLAo+ID4gPiArCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ ID4gPiArCQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnLAo+ID4gPiAr CQkJCSAgICAgICBib29sIGVuYWJsZSkKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfaGRt aSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZpbnRlbF9lbmNvZGVyLT5iYXNlKTsK PiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjb25uZWN0b3ItPmRl di0+ZGV2X3ByaXZhdGU7Cj4gPiA+ICsJc3RydWN0IGRybV9zY3JhbWJsaW5nICpzY3JhbWJsaW5n ID0KPiA+ID4gKwkJCQkmY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGRtaS5zY2RjLnNjcmFtYmxp bmc7Cj4gPiA+ICsJc3RydWN0IGkyY19hZGFwdGVyICphZHB0ciA9IGludGVsX2dtYnVzX2dldF9h ZGFwdGVyKGRldl9wcml2LAo+ID4gPiArCQkJCQkJCSAgaW50ZWxfaGRtaS0+ZGRjX2J1cyk7Cj4g PiA+ICsJYm9vbCByZXQ7Cj4gPiA+ICsKPiA+ID4gKwlpZiAoIXNjcmFtYmxpbmctPnN1cHBvcnRl ZCkKPiA+ID4gKwkJcmV0dXJuOwo+ID4gPiArCj4gPiA+ICsJRFJNX0RFQlVHX0tNUygiU2V0dGlu ZyBzaW5rIHNjcmFtYmxpbmcgZm9yIGVuYzolcyBjb25uZWN0b3I6JXNcbiIsCj4gPiA+ICsJCQlp bnRlbF9lbmNvZGVyLT5iYXNlLm5hbWUsIGNvbm5lY3Rvci0+bmFtZSk7Cj4gPiA+ICsKPiA+ID4g KwlpZiAoY29uZmlnLT5oZG1pX2hpZ2hfdG1kc19jbG9ja19yYXRpbykgewo+ID4gPiArCQkvKiBT ZXQgVE1EUyBiaXQgY2xvY2sgcmF0aW8gdG8gMS80MCBvciAxLzEwICovCj4gPiA+ICsJCXJldCA9 IGRybV9zY2RjX3NldF9oaWdoX3RtZHNfY2xvY2tfcmF0aW8oYWRwdHIsIGVuYWJsZSk7Cj4gPiA+ ICsJCWlmICghcmV0KSB7Cj4gPiA+ICsJCQlEUk1fRVJST1IoIlNldCBUTURTIHJhdGlvIGZhaWxl ZFxuIik7Cj4gPiA+ICsJCQlyZXR1cm47Cj4gPiA+ICsJCX0KPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ ID4gKwlpZiAoY29uZmlnLT5oZG1pX3NjcmFtYmxpbmcpIHsKPiA+ID4gKwkJLyogRW5hYmxlL2Rp c2FibGUgc2luayBzY3JhbWJsaW5nICovCj4gPiA+ICsJCXJldCA9IGRybV9zY2RjX3NldF9zY3Jh bWJsaW5nKGFkcHRyLCBlbmFibGUpOwo+ID4gPiArCQlpZiAoIXJldCkgewo+ID4gPiArCQkJRFJN X0VSUk9SKCJTZXQgc2luayBzY3JhbWJsaW5nIGZhaWxlZFxuIik7Cj4gPiA+ICsJCQlyZXR1cm47 Cj4gPiA+ICsJCX0KPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwlEUk1fREVCVUdfS01TKCJzaW5r IHNjcmFtYmxpbmcgaGFuZGxlZFxuIik7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3VpbnQzMl90 Cj4gPiA+ICtpbnRlbF9oZG1pX2hhbmRsZV9zb3VyY2Vfc2NyYW1ibGluZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPiA+ID4gKwkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjb25maWcsIHVpbnQzMl90IGhkbWlfY29uZmlnKQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBp bnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmludGVsX2VuY29kZXIt PmJhc2UpOwo+ID4gPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmaW50ZWxf aGRtaS0+YXR0YWNoZWRfY29ubmVjdG9yLT5iYXNlOwo+ID4gPiArCj4gPiA+ICsJRFJNX0RFQlVH X0tNUygiU2V0dGluZyBzY3JhbWJsaW5nIGZvciBlbmM6JXMgY29ubmVjdG9yOiVzXG4iLAo+ID4g PiArCQkJaW50ZWxfZW5jb2Rlci0+YmFzZS5uYW1lLCBjb25uZWN0b3ItPm5hbWUpOwo+ID4gCj4g PiBJbnN0ZWFkIG9mIGRlYnVnZ2luZyBoZXJlLCBwcmludCB0aGUgaGRtaSBzY3JhbWJsaW5nIHZh bHVlcyBpbgo+ID4gaW50ZWxfZHVtcF9waXBlX2NvbmZpZygpLgo+IAo+IEkgYW0gYWxzbyBpbnRl cmVzdGVkIGluIHdoaWNoIGVuY29kZXIgYW5kIGNvbm5lY3RvciBhcmUgd2Ugc2V0dGluZyB0aGUg Cj4gdmFsdWVzIGZvciwgaXMgaXQgdGhhdCBiYWQgOikgPwoKVGhlIGRlYnVnIGZvciB0aGUgbW9k ZXNldCBzaG91bGQgdGVsbCB5b3UgdGhhdCwgYnV0IElNTyBpdCB3b3VsZCBiZSBvayB0byBsZWF2 ZQp0aGlzIGV4dHJhIGRlYnVnIG1lc3NhZ2UgaWYgdGhlIGZ1bmN0aW9uIHdvdWxkIHN0aWxsIGV4 aXN0LgoKQW5kZXIKCj4gPiAKPiA+ID4gKwloZG1pX2NvbmZpZyAmPSB+KFRSQU5TX0RESV9IRE1J X1NDUkFNQkxJTkdfTUFTSyB8Cj4gPiA+ICsJCVRSQU5TX0RESV9ISUdIX1RNRFNfQ0hBUl9SQVRF KTsKPiA+IAo+ID4gVGhpcyBpcyB1bm5lY2Vzc2FyeS4gVGhlIGh1bmsgYmVsb3cgYmVsb25ncyBp bgo+ID4gaW50ZWxfZGRpX2VuYWJsZV90cmFuc2NvZGVyX2Z1bmMoKSBhbmQgdGhhdCBmdW5jdGlv biBkb2VzIG5vdCBkbyByZWFkLW1vZGlmeS0KPiA+IHdyaXRlLiBBbnkgYml0IHRoYXQgaXMgbm90 IGV4cGxpY2l0bHkgc2V0IGlzIHplcm8uIEkgdGhpbmsgdGhpbmdzIGFyZSBqdXN0Cj4gPiBzaW1w bGVyIGlmIHRoaXMgZnVuY3Rpb24gZG9lc24ndCBleGlzdC4KPiAKPiBZZWFoLCB3aWxsIGRvIHRo YXQuCj4gPiBBbmRlcgo+ID4gCj4gPiA+ICsJaWYgKGNvbmZpZy0+aGRtaV9zY3JhbWJsaW5nKQo+ ID4gPiArCQloZG1pX2NvbmZpZyB8PSBUUkFOU19ERElfSERNSV9TQ1JBTUJMSU5HX01BU0s7Cj4g PiA+ICsKPiA+ID4gKwlpZiAoY29uZmlnLT5oZG1pX2hpZ2hfdG1kc19jbG9ja19yYXRpbykKPiA+ ID4gKwkJaGRtaV9jb25maWcgfD0gVFJBTlNfRERJX0hJR0hfVE1EU19DSEFSX1JBVEU7Cj4gPiA+ ICsKPiA+ID4gKwlyZXR1cm4gaGRtaV9jb25maWc7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gICBz dGF0aWMgdTggaW50ZWxfaGRtaV9kZGNfcGluKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiA+ID4gICAJCQkgICAgIGVudW0gcG9ydCBwb3J0KQo+ID4gPiAgIHsKPiAKPiAKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==