From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arkadiusz Hiler Subject: Re: [PATCH 1/8] drm/i915/guc: Make the GuC fw loading helper functions general. Always initialize action_lock Date: Thu, 24 Nov 2016 11:05:22 +0100 Message-ID: <20161124100522.GC13782@ahiler-desk.igk.intel.com> References: <1479940063-2961-1-git-send-email-anusha.srivatsa@intel.com> <1479940063-2961-2-git-send-email-anusha.srivatsa@intel.com> <20161124082813.GB13782@ahiler-desk.igk.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4A7F26E941 for ; Thu, 24 Nov 2016 10:05:27 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20161124082813.GB13782@ahiler-desk.igk.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Anusha Srivatsa Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBOb3YgMjQsIDIwMTYgYXQgMDk6Mjg6MTRBTSArMDEwMCwgQXJrYWRpdXN6IEhpbGVy IHdyb3RlOgo+IE9uIFdlZCwgTm92IDIzLCAyMDE2IGF0IDAyOjI3OjM2UE0gLTA4MDAsIEFudXNo YSBTcml2YXRzYSB3cm90ZToKPiA+IEZyb206IFBldGVyIEFudG9pbmUgPHBldGVyLmFudG9pbmVA aW50ZWwuY29tPgo+ID4gCj4gPiBSZW5hbWUgc29tZSBvZiB0aGUgR3VDIGZ3IGxvYWRpbmcgY29k ZSB0byBtYWtlIHRoZW0gbW9yZSBnZW5lcmFsLiBXZQo+ID4gd2lsbCB1dGlsaXNlIHRoZW0gZm9y IEh1QyBsb2FkaW5nIGFzIHdlbGwuCj4gPiAgICAgIHMvaW50ZWxfZ3VjX2Z3L2ludGVsX3VjX2Z3 L2cKPiA+ICAgICAgcy9HVUNfRklSTVdBUkUvVUNfRklSTVdBUkUvZwo+ID4gCj4gPiBTdHJ1Y3Qg aW50ZWxfZ3VjX2Z3IGlzIHJlbmFtZWQgdG8gaW50ZWxfdWNfZncuIFByZWZpeCBvZiB0dHMgbWVt YmVycywKPiA+IHN1Y2ggYXMgJ2d1Yycgb3IgJ2d1Y19mdycgZWl0aGVyIGlzIHJlbmFtZWQgdG8g J3VjJyBvciByZW1vdmVkIGZvcgo+ID4gc2FtZSBwdXJwb3NlLgo+ID4gCj4gPiBBY3Rpb24gbG9j ayBpcyBub3QgYmVpbmcgaW5pdGlhbGl6ZWQgaWYgdGhlIEd1QyBzdWJtaXNzaW9uIGlzIGRpc2Fi bGVkCj4gPiAoaS5lLiBpOTE1Lmd1Y19zdWJtaXNzaW9uPTApLgo+ID4gCj4gPiBob3N0Mmd1Y19h Y3Rpb24oKSwgd2hpY2ggdXNlcyB0aGUgYWN0aW9uX2xvY2sgY2FuIGJlIHVzZWQgZm9yCj4gPiBu b24tc3VibWlzc2lvbiBwdXJwb3NlcywgZS5nLiB0cmlnZ2VyaW5nIEh1QyBhdXRoZW50aWNhdGlv bi4KPiA+IAo+ID4gTW92aW5nIGFjdGlvbl9sb2NrIGluaXRpYWxpemF0aW9uIGJlZm9yZSBlbmFi bGVtZW50IGNoZWNrIHdpbGwgYWxsb3cgdXMKPiA+IHRvIHVzZSB0aGUgaG9zdDJndWNfYWN0aW9u IG5vIG1hdHRlciB3aGV0aGVyIHN1Ym1pc3Npb24gaXMgZW5hYmxlZCBvcgo+ID4gbm90Lgo+ID4g Cj4gPiB2MjogcmViYXNlZCBvbiB0b3Agb2YgbmlnaHRseS4KPiA+ICAgICByZWFwcGxpZWQgdGhl IHNlYXJjaC9yZXBsYWNlIGFzIHVwc3RyZWFtIGNvZGUgYXMgY2hhbmdlZC4KPiA+IHYzOiByZWJh c2VkIGFnYWluIG9uIGRybS1uaWdodGx5Lgo+ID4gdjQ6IHJlbW92ZWQgRyBmcm9tIG1lc3NhZ2Vz IGluIHNoYXJlZCBmdyBmZXRjaCBmdW5jdGlvbi4KPiA+IHY1OiByZWJhc2VkLgo+ID4gdjc6IHJl YmFzZWQuCj4gPiB2ODogcmViYXNlZC4KPiA+IHY5OiByZWJhc2VkLgo+ID4gdjEwOiByZWJhc2Vk Lgo+ID4gdjExOiByZWJhc2VkLiBBZGRlZCB0aGUgYWN0aW9uX2xvY2sgaW5pdGlhbGl6YXRpb24g Zml4IHByb3ZpZGVkCj4gPiBieSBBcmljayA8YXJrYWRpdXN6LmhpbGVyQGludGVsLmNvbT4KPiAK PiBJdCdzIEFyZWsuCj4gCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IEFudXNoYSBTcml2YXRzYSA8 YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IEFsZXggRGFpIDx5 dS5kYWlAaW50ZWwuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogUGV0ZXIgQW50b2luZSA8cGV0ZXIu YW50b2luZUBpbnRlbC5jb20+Cj4gPiBSZXZpZXdlZC1ieTogRGF2ZSBHb3Jkb24gPGRhdmlkLnMu Z29yZG9uQGludGVsLmNvbT4KPiA+IFJldmlld2VkLWJ5OiBKZWZmIE1jR2VlIDxqZWZmLm1jZ2Vl QGludGVsLmNvbT4KPiA+IFJldmlld2VkLWJ5OiBDYXJsb3MgU2FudGEgPGNhcmxvcy5zYW50YUBp bnRlbC5jb20+Cj4gPiBUZXN0ZWQtYnk6IENhcmxvcyBTYW50YSA8Y2FybG9zLnNhbnRhQGludGVs LmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IEFya2FkaXVzeiBIaWxlciA8YXJrYWRpdXN6LmhpbGVy QGludGVsLmNvbT4KCkFsc28gd2h5IGRpZCB5b3UgY2FycmllZCBvdmVyIG15IHNpZ24gb2ZmIGZy b20gYSBkaWZmZXJlbnQgcGF0Y2g/Cgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMgICAgICAgIHwgIDEyICstLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyB8ICAgNyArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2d1Yy5oICAgICAgICAgICB8ICAzOCArKystLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jICAgIHwgMTU1ICsrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAxMDggaW5zZXJ0aW9ucygrKSwgMTA0IGRlbGV0 aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4gaW5kZXgg Mzc5OWExMi4uNTMzMDVhNCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu Ywo+ID4gQEAgLTIzNTgsNyArMjM1OCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9sbGMoc3RydWN0IHNl cV9maWxlICptLCB2b2lkICpkYXRhKQo+ID4gIHN0YXRpYyBpbnQgaTkxNV9ndWNfbG9hZF9zdGF0 dXNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gPiAgewo+ID4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBub2RlX3RvX2k5MTUobS0+cHJpdmF0ZSk7 Cj4gPiAtCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19m dzsKPiA+ICsJc3RydWN0IGludGVsX3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNf Znc7Cj4gPiAgCXUzMiB0bXAsIGk7Cj4gPiAgCj4gPiAgCWlmICghSEFTX0dVQ19VQ09ERShkZXZf cHJpdikpCj4gPiBAQCAtMjM2NiwxNSArMjM2NiwxNSBAQCBzdGF0aWMgaW50IGk5MTVfZ3VjX2xv YWRfc3RhdHVzX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ID4gIAo+ID4g IAlzZXFfcHJpbnRmKG0sICJHdUMgZmlybXdhcmUgc3RhdHVzOlxuIik7Cj4gPiAgCXNlcV9wcmlu dGYobSwgIlx0cGF0aDogJXNcbiIsCj4gPiAtCQlndWNfZnctPmd1Y19md19wYXRoKTsKPiA+ICsJ CWd1Y19mdy0+dWNfZndfcGF0aCk7Cj4gPiAgCXNlcV9wcmludGYobSwgIlx0ZmV0Y2g6ICVzXG4i LAo+ID4gLQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0 YXR1cykpOwo+ID4gKwkJaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5mZXRjaF9zdGF0 dXMpKTsKPiA+ICAJc2VxX3ByaW50ZihtLCAiXHRsb2FkOiAlc1xuIiwKPiA+IC0JCWludGVsX2d1 Y19md19zdGF0dXNfcmVwcihndWNfZnctPmd1Y19md19sb2FkX3N0YXR1cykpOwo+ID4gKwkJaW50 ZWxfdWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5sb2FkX3N0YXR1cykpOwo+ID4gIAlzZXFfcHJp bnRmKG0sICJcdHZlcnNpb24gd2FudGVkOiAlZC4lZFxuIiwKPiA+IC0JCWd1Y19mdy0+Z3VjX2Z3 X21ham9yX3dhbnRlZCwgZ3VjX2Z3LT5ndWNfZndfbWlub3Jfd2FudGVkKTsKPiA+ICsJCWd1Y19m dy0+bWFqb3JfdmVyX3dhbnRlZCwgZ3VjX2Z3LT5taW5vcl92ZXJfd2FudGVkKTsKPiA+ICAJc2Vx X3ByaW50ZihtLCAiXHR2ZXJzaW9uIGZvdW5kOiAlZC4lZFxuIiwKPiA+IC0JCWd1Y19mdy0+Z3Vj X2Z3X21ham9yX2ZvdW5kLCBndWNfZnctPmd1Y19md19taW5vcl9mb3VuZCk7Cj4gPiArCQlndWNf ZnctPm1ham9yX3Zlcl9mb3VuZCwgZ3VjX2Z3LT5taW5vcl92ZXJfZm91bmQpOwo+ID4gIAlzZXFf cHJpbnRmKG0sICJcdGhlYWRlcjogb2Zmc2V0IGlzICVkOyBzaXplID0gJWRcbiIsCj4gPiAgCQln dWNfZnctPmhlYWRlcl9vZmZzZXQsIGd1Y19mdy0+aGVhZGVyX3NpemUpOwo+ID4gIAlzZXFfcHJp bnRmKG0sICJcdHVDb2RlOiBvZmZzZXQgaXMgJWQ7IHNpemUgPSAlZFxuIiwKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPiA+IGluZGV4IDQ0NjIxMTIuLjk5 NDdhNmQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJt aXNzaW9uLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Np b24uYwo+ID4gQEAgLTE0ODQsNiArMTQ4NCw4IEBAIGludCBpOTE1X2d1Y19zdWJtaXNzaW9uX2lu aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gIAlzdHJ1Y3QgaW50ZWxf Z3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsKPiA+ICAJc3RydWN0IGk5MTVfdm1hICp2bWE7Cj4g PiAgCj4gPiArCW11dGV4X2luaXQoJmd1Yy0+YWN0aW9uX2xvY2spOwo+ID4gKwo+IAo+IFRoYXQn cyBwcmV0dHkgbXVjaCBhIHNlcGFyYXRlIGNoYW5nZS4KPiBXaHkgeW91IGhhdmUgbWVyZ2VkIGl0 IGludG8gdGhpcyBjb21taXQ/Cj4gCj4gQWxzbyBpdCBtYWtlcyBjb21taXQgdGl0bGUgdW5iZWFy YWJseSBsb25nLgo+IAo+ID4gIAkvKiBXaXBlIGJpdG1hcCAmIGRlbGV0ZSBjbGllbnQgaW4gY2Fz ZSBvZiByZWluaXRpYWxpc2F0aW9uICovCj4gPiAgCWJpdG1hcF9jbGVhcihndWMtPmRvb3JiZWxs X2JpdG1hcCwgMCwgR1VDX01BWF9ET09SQkVMTFMpOwo+ID4gIAlpOTE1X2d1Y19zdWJtaXNzaW9u X2Rpc2FibGUoZGV2X3ByaXYpOwo+ID4gQEAgLTE1MDAsNyArMTUwMiw2IEBAIGludCBpOTE1X2d1 Y19zdWJtaXNzaW9uX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4g IAo+ID4gIAlndWMtPmN0eF9wb29sX3ZtYSA9IHZtYTsKPiA+ICAJaWRhX2luaXQoJmd1Yy0+Y3R4 X2lkcyk7Cj4gPiAtCW11dGV4X2luaXQoJmd1Yy0+YWN0aW9uX2xvY2spOwo+ID4gIAlndWNfbG9n X2NyZWF0ZShndWMpOwo+ID4gIAlndWNfYWRkb25fY3JlYXRlKGd1Yyk7Cj4gPiAgCj4gPiBAQCAt MTU4Myw3ICsxNTg0LDcgQEAgaW50IGludGVsX2d1Y19zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCj4gPiAgCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7Cj4gPiAgCXUzMiBkYXRh WzNdOwo+ID4gIAo+ID4gLQlpZiAoZ3VjLT5ndWNfZncuZ3VjX2Z3X2xvYWRfc3RhdHVzICE9IEdV Q19GSVJNV0FSRV9TVUNDRVNTKQo+ID4gKwlpZiAoZ3VjLT5ndWNfZncubG9hZF9zdGF0dXMgIT0g VUNfRklSTVdBUkVfU1VDQ0VTUykKPiA+ICAJCXJldHVybiAwOwo+ID4gIAo+ID4gIAlnZW45X2Rp c2FibGVfZ3VjX2ludGVycnVwdHMoZGV2X3ByaXYpOwo+ID4gQEAgLTE2MTEsNyArMTYxMiw3IEBA IGludCBpbnRlbF9ndWNfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAgCXN0cnVj dCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7Cj4gPiAgCXUzMiBkYXRhWzNdOwo+ID4gIAo+ID4gLQlp ZiAoZ3VjLT5ndWNfZncuZ3VjX2Z3X2xvYWRfc3RhdHVzICE9IEdVQ19GSVJNV0FSRV9TVUNDRVNT KQo+ID4gKwlpZiAoZ3VjLT5ndWNfZncubG9hZF9zdGF0dXMgIT0gVUNfRklSTVdBUkVfU1VDQ0VT UykKPiA+ICAJCXJldHVybiAwOwo+ID4gIAo+ID4gIAlpZiAoaTkxNS5ndWNfbG9nX2xldmVsID49 IDApCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+ID4gaW5kZXggMDIzMzdhOC4uNmRjMzI4 ZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+ID4gQEAgLTkxLDI4ICs5MSwy OSBAQCBzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50IHsKPiA+ICAJdWludDY0X3Qgc3VibWlzc2lvbnNb STkxNV9OVU1fRU5HSU5FU107Cj4gPiAgfTsKPiA+ICAKPiA+IC1lbnVtIGludGVsX2d1Y19md19z dGF0dXMgewo+ID4gLQlHVUNfRklSTVdBUkVfRkFJTCA9IC0xLAo+ID4gLQlHVUNfRklSTVdBUkVf Tk9ORSA9IDAsCj4gPiAtCUdVQ19GSVJNV0FSRV9QRU5ESU5HLAo+ID4gLQlHVUNfRklSTVdBUkVf U1VDQ0VTUwo+ID4gK2VudW0gaW50ZWxfdWNfZndfc3RhdHVzIHsKPiA+ICsJVUNfRklSTVdBUkVf RkFJTCA9IC0xLAo+ID4gKwlVQ19GSVJNV0FSRV9OT05FID0gMCwKPiA+ICsJVUNfRklSTVdBUkVf UEVORElORywKPiA+ICsJVUNfRklSTVdBUkVfU1VDQ0VTUwo+ID4gIH07Cj4gPiAgCj4gPiAgLyoK PiA+ICAgKiBUaGlzIHN0cnVjdHVyZSBlbmNhcHN1bGF0ZXMgYWxsIHRoZSBkYXRhIG5lZWRlZCBk dXJpbmcgdGhlIHByb2Nlc3MKPiA+ICAgKiBvZiBmZXRjaGluZywgY2FjaGluZywgYW5kIGxvYWRp bmcgdGhlIGZpcm13YXJlIGltYWdlIGludG8gdGhlIEd1Qy4KPiA+ICAgKi8KPiA+IC1zdHJ1Y3Qg aW50ZWxfZ3VjX2Z3IHsKPiA+IC0JY29uc3QgY2hhciAqCQkJZ3VjX2Z3X3BhdGg7Cj4gPiAtCXNp emVfdAkJCQlndWNfZndfc2l6ZTsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgln dWNfZndfb2JqOwo+ID4gLQllbnVtIGludGVsX2d1Y19md19zdGF0dXMJZ3VjX2Z3X2ZldGNoX3N0 YXR1czsKPiA+IC0JZW51bSBpbnRlbF9ndWNfZndfc3RhdHVzCWd1Y19md19sb2FkX3N0YXR1czsK PiA+IC0KPiA+IC0JdWludDE2X3QJCQlndWNfZndfbWFqb3Jfd2FudGVkOwo+ID4gLQl1aW50MTZf dAkJCWd1Y19md19taW5vcl93YW50ZWQ7Cj4gPiAtCXVpbnQxNl90CQkJZ3VjX2Z3X21ham9yX2Zv dW5kOwo+ID4gLQl1aW50MTZfdAkJCWd1Y19md19taW5vcl9mb3VuZDsKPiA+ICtzdHJ1Y3QgaW50 ZWxfdWNfZncgewo+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqdWNfZGV2Owo+ID4gKwljb25zdCBj aGFyICp1Y19md19wYXRoOwo+ID4gKwlzaXplX3QgdWNfZndfc2l6ZTsKPiA+ICsJc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKnVjX2Z3X29iajsKPiA+ICsJZW51bSBpbnRlbF91Y19md19zdGF0 dXMgZmV0Y2hfc3RhdHVzOwo+ID4gKwllbnVtIGludGVsX3VjX2Z3X3N0YXR1cyBsb2FkX3N0YXR1 czsKPiA+ICsKPiA+ICsJdWludDE2X3QgbWFqb3JfdmVyX3dhbnRlZDsKPiA+ICsJdWludDE2X3Qg bWlub3JfdmVyX3dhbnRlZDsKPiA+ICsJdWludDE2X3QgbWFqb3JfdmVyX2ZvdW5kOwo+ID4gKwl1 aW50MTZfdCBtaW5vcl92ZXJfZm91bmQ7Cj4gPiAgCj4gPiAgCXVpbnQzMl90IGhlYWRlcl9zaXpl Owo+ID4gIAl1aW50MzJfdCBoZWFkZXJfb2Zmc2V0Owo+ID4gQEAgLTEzOSw3ICsxNDAsNyBAQCBz dHJ1Y3QgaW50ZWxfZ3VjX2xvZyB7Cj4gPiAgfTsKPiA+ICAKPiA+ICBzdHJ1Y3QgaW50ZWxfZ3Vj IHsKPiA+IC0Jc3RydWN0IGludGVsX2d1Y19mdyBndWNfZnc7Cj4gPiArCXN0cnVjdCBpbnRlbF91 Y19mdyBndWNfZnc7Cj4gPiAgCXN0cnVjdCBpbnRlbF9ndWNfbG9nIGxvZzsKPiA+ICAKPiA+ICAJ LyogR3VDMkhvc3QgaW50ZXJydXB0IHJlbGF0ZWQgc3RhdGUgKi8KPiA+IEBAIC0xNzIsOSArMTcz LDEwIEBAIHN0cnVjdCBpbnRlbF9ndWMgewo+ID4gIGV4dGVybiB2b2lkIGludGVsX2d1Y19pbml0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gIGV4dGVybiBpbnQgaW50ZWxfZ3VjX3NldHVw KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gIGV4dGVybiB2b2lkIGludGVsX2d1Y19maW5p KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gLWV4dGVybiBjb25zdCBjaGFyICppbnRlbF9n dWNfZndfc3RhdHVzX3JlcHIoZW51bSBpbnRlbF9ndWNfZndfc3RhdHVzIHN0YXR1cyk7Cj4gPiAr ZXh0ZXJuIGNvbnN0IGNoYXIgKmludGVsX3VjX2Z3X3N0YXR1c19yZXByKGVudW0gaW50ZWxfdWNf Zndfc3RhdHVzIHN0YXR1cyk7Cj4gPiAgZXh0ZXJuIGludCBpbnRlbF9ndWNfc3VzcGVuZChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KTsKPiA+ICBleHRlcm4gaW50IGludGVsX2d1Y19yZXN1bWUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPiArdm9pZCBpbnRlbF91Y19md19mZXRjaChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfdWNfZncgKnVjX2Z3KTsKPiA+ICAKPiA+ICAv KiBpOTE1X2d1Y19zdWJtaXNzaW9uLmMgKi8KPiA+ICBpbnQgaTkxNV9ndWNfc3VibWlzc2lvbl9p bml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCj4gPiBpbmRleCBlMmQwYmRhLi5jMWI1M2E2IDEwMDY0 NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKPiA+IEBAIC04MSwx NiArODEsMTYgQEAgTU9EVUxFX0ZJUk1XQVJFKEk5MTVfQlhUX0dVQ19VQ09ERSk7Cj4gPiAgTU9E VUxFX0ZJUk1XQVJFKEk5MTVfS0JMX0dVQ19VQ09ERSk7Cj4gPiAgCj4gPiAgLyogVXNlci1mcmll bmRseSByZXByZXNlbnRhdGlvbiBvZiBhbiBlbnVtICovCj4gPiAtY29uc3QgY2hhciAqaW50ZWxf Z3VjX2Z3X3N0YXR1c19yZXByKGVudW0gaW50ZWxfZ3VjX2Z3X3N0YXR1cyBzdGF0dXMpCj4gPiAr Y29uc3QgY2hhciAqaW50ZWxfdWNfZndfc3RhdHVzX3JlcHIoZW51bSBpbnRlbF91Y19md19zdGF0 dXMgc3RhdHVzKQo+ID4gIHsKPiA+ICAJc3dpdGNoIChzdGF0dXMpIHsKPiA+IC0JY2FzZSBHVUNf RklSTVdBUkVfRkFJTDoKPiA+ICsJY2FzZSBVQ19GSVJNV0FSRV9GQUlMOgo+ID4gIAkJcmV0dXJu ICJGQUlMIjsKPiA+IC0JY2FzZSBHVUNfRklSTVdBUkVfTk9ORToKPiA+ICsJY2FzZSBVQ19GSVJN V0FSRV9OT05FOgo+ID4gIAkJcmV0dXJuICJOT05FIjsKPiA+IC0JY2FzZSBHVUNfRklSTVdBUkVf UEVORElORzoKPiA+ICsJY2FzZSBVQ19GSVJNV0FSRV9QRU5ESU5HOgo+ID4gIAkJcmV0dXJuICJQ RU5ESU5HIjsKPiA+IC0JY2FzZSBHVUNfRklSTVdBUkVfU1VDQ0VTUzoKPiA+ICsJY2FzZSBVQ19G SVJNV0FSRV9TVUNDRVNTOgo+ID4gIAkJcmV0dXJuICJTVUNDRVNTIjsKPiA+ICAJZGVmYXVsdDoK PiA+ICAJCXJldHVybiAiVU5LTk9XTiEiOwo+ID4gQEAgLTI3OCw3ICsyNzgsNyBAQCBzdGF0aWMg aW5saW5lIGJvb2wgZ3VjX3Vjb2RlX3Jlc3BvbnNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiA+ICBzdGF0aWMgaW50IGd1Y191Y29kZV94ZmVyX2RtYShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCQkJICAgICAgc3RydWN0IGk5MTVfdm1hICp2bWEp Cj4gPiAgewo+ID4gLQlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1 Yy5ndWNfZnc7Cj4gPiArCXN0cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5n dWMuZ3VjX2Z3Owo+ID4gIAl1bnNpZ25lZCBsb25nIG9mZnNldDsKPiA+ICAJc3RydWN0IHNnX3Rh YmxlICpzZyA9IHZtYS0+cGFnZXM7Cj4gPiAgCXUzMiBzdGF0dXMsIHJzYVtVT1NfUlNBX1NDUkFU Q0hfTUFYX0NPVU5UXTsKPiA+IEBAIC0zNTAsMTcgKzM1MCwxNyBAQCBzdGF0aWMgdTMyIGd1Y193 b3BjbV9zaXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICAgKi8KPiA+ ICBzdGF0aWMgaW50IGd1Y191Y29kZV94ZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiA+ICB7Cj4gPiAtCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdyA9ICZkZXZfcHJp di0+Z3VjLmd1Y19mdzsKPiA+ICsJc3RydWN0IGludGVsX3VjX2Z3ICpndWNfZncgPSAmZGV2X3By aXYtPmd1Yy5ndWNfZnc7Cj4gPiAgCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwo+ID4gIAlpbnQgcmV0 Owo+ID4gIAo+ID4gLQlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9kb21haW4oZ3Vj X2Z3LT5ndWNfZndfb2JqLCBmYWxzZSk7Cj4gPiArCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRf dG9fZ3R0X2RvbWFpbihndWNfZnctPnVjX2Z3X29iaiwgZmFsc2UpOwo+ID4gIAlpZiAocmV0KSB7 Cj4gPiAgCQlEUk1fREVCVUdfRFJJVkVSKCJzZXQtZG9tYWluIGZhaWxlZCAlZFxuIiwgcmV0KTsK PiA+ICAJCXJldHVybiByZXQ7Cj4gPiAgCX0KPiA+ICAKPiA+IC0Jdm1hID0gaTkxNV9nZW1fb2Jq ZWN0X2dndHRfcGluKGd1Y19mdy0+Z3VjX2Z3X29iaiwgTlVMTCwgMCwgMCwgMCk7Cj4gPiArCXZt YSA9IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihndWNfZnctPnVjX2Z3X29iaiwgTlVMTCwgMCwg MCwgMCk7Cj4gPiAgCWlmIChJU19FUlIodm1hKSkgewo+ID4gIAkJRFJNX0RFQlVHX0RSSVZFUigi cGluIGZhaWxlZCAlZFxuIiwgKGludClQVFJfRVJSKHZtYSkpOwo+ID4gIAkJcmV0dXJuIFBUUl9F UlIodm1hKTsKPiA+IEBAIC00NTEsMTQgKzQ1MSwxNCBAQCBzdGF0aWMgaW50IGd1Y19od19yZXNl dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgaW50IGludGVsX2d1Y19z ZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIHsKPiA+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gLQlzdHJ1Y3QgaW50ZWxfZ3Vj X2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNfZnc7Cj4gPiAtCWNvbnN0IGNoYXIgKmZ3 X3BhdGggPSBndWNfZnctPmd1Y19md19wYXRoOwo+ID4gKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1 Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKPiA+ICsJY29uc3QgY2hhciAqZndfcGF0aCA9 IGd1Y19mdy0+dWNfZndfcGF0aDsKPiA+ICAJaW50IHJldHJpZXMsIHJldCwgZXJyOwo+ID4gIAo+ ID4gIAlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgc3RhdHVzOiBwYXRoICVzLCBmZXRjaCAlcywg bG9hZCAlc1xuIiwKPiA+ICAJCWZ3X3BhdGgsCj4gPiAtCQlpbnRlbF9ndWNfZndfc3RhdHVzX3Jl cHIoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzKSwKPiA+IC0JCWludGVsX2d1Y19md19zdGF0 dXNfcmVwcihndWNfZnctPmd1Y19md19sb2FkX3N0YXR1cykpOwo+ID4gKwkJaW50ZWxfdWNfZndf c3RhdHVzX3JlcHIoZ3VjX2Z3LT5mZXRjaF9zdGF0dXMpLAo+ID4gKwkJaW50ZWxfdWNfZndfc3Rh dHVzX3JlcHIoZ3VjX2Z3LT5sb2FkX3N0YXR1cykpOwo+ID4gIAo+ID4gIAkvKiBMb2FkaW5nIGZv cmJpZGRlbiwgb3Igbm8gZmlybXdhcmUgdG8gbG9hZD8gKi8KPiA+ICAJaWYgKCFpOTE1LmVuYWJs ZV9ndWNfbG9hZGluZykgewo+ID4gQEAgLTQ3NiwxMCArNDc2LDEwIEBAIGludCBpbnRlbF9ndWNf c2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICAJfQo+ID4gIAo+ID4gIAkvKiBGZXRj aCBmYWlsZWQsIG9yIGFscmVhZHkgZmV0Y2hlZCBidXQgZmFpbGVkIHRvIGxvYWQ/ICovCj4gPiAt CWlmIChndWNfZnctPmd1Y19md19mZXRjaF9zdGF0dXMgIT0gR1VDX0ZJUk1XQVJFX1NVQ0NFU1Mp IHsKPiA+ICsJaWYgKGd1Y19mdy0+ZmV0Y2hfc3RhdHVzICE9IFVDX0ZJUk1XQVJFX1NVQ0NFU1Mp IHsKPiA+ICAJCWVyciA9IC1FSU87Cj4gPiAgCQlnb3RvIGZhaWw7Cj4gPiAtCX0gZWxzZSBpZiAo Z3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMgPT0gR1VDX0ZJUk1XQVJFX0ZBSUwpIHsKPiA+ICsJ fSBlbHNlIGlmIChndWNfZnctPmxvYWRfc3RhdHVzID09IFVDX0ZJUk1XQVJFX0ZBSUwpIHsKPiA+ ICAJCWVyciA9IC1FTk9FWEVDOwo+ID4gIAkJZ290byBmYWlsOwo+ID4gIAl9Cj4gPiBAQCAtNDg3 LDExICs0ODcsMTEgQEAgaW50IGludGVsX2d1Y19zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ID4gIAlndWNfaW50ZXJydXB0c19yZWxlYXNlKGRldl9wcml2KTsKPiA+ICAJZ2VuOV9yZXNl dF9ndWNfaW50ZXJydXB0cyhkZXZfcHJpdik7Cj4gPiAgCj4gPiAtCWd1Y19mdy0+Z3VjX2Z3X2xv YWRfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX1BFTkRJTkc7Cj4gPiArCWd1Y19mdy0+bG9hZF9zdGF0 dXMgPSBVQ19GSVJNV0FSRV9QRU5ESU5HOwo+ID4gIAo+ID4gIAlEUk1fREVCVUdfRFJJVkVSKCJH dUMgZncgc3RhdHVzOiBmZXRjaCAlcywgbG9hZCAlc1xuIiwKPiA+IC0JCWludGVsX2d1Y19md19z dGF0dXNfcmVwcihndWNfZnctPmd1Y19md19mZXRjaF9zdGF0dXMpLAo+ID4gLQkJaW50ZWxfZ3Vj X2Z3X3N0YXR1c19yZXByKGd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzKSk7Cj4gPiArCQlpbnRl bF91Y19md19zdGF0dXNfcmVwcihndWNfZnctPmZldGNoX3N0YXR1cyksCj4gPiArCQlpbnRlbF91 Y19md19zdGF0dXNfcmVwcihndWNfZnctPmxvYWRfc3RhdHVzKSk7Cj4gPiAgCj4gPiAgCWVyciA9 IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChkZXZfcHJpdik7Cj4gPiAgCWlmIChlcnIpCj4gPiBA QCAtNTIzLDExICs1MjMsMTEgQEAgaW50IGludGVsX2d1Y19zZXR1cChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ID4gIAkJCSAicmV0cnkgJWQgbW9yZSB0aW1lKHMpXG4iLCBlcnIsIHJldHJpZXMp Owo+ID4gIAl9Cj4gPiAgCj4gPiAtCWd1Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzID0gR1VDX0ZJ Uk1XQVJFX1NVQ0NFU1M7Cj4gPiArCWd1Y19mdy0+bG9hZF9zdGF0dXMgPSBVQ19GSVJNV0FSRV9T VUNDRVNTOwo+ID4gIAo+ID4gIAlEUk1fREVCVUdfRFJJVkVSKCJHdUMgZncgc3RhdHVzOiBmZXRj aCAlcywgbG9hZCAlc1xuIiwKPiA+IC0JCWludGVsX2d1Y19md19zdGF0dXNfcmVwcihndWNfZnct Pmd1Y19md19mZXRjaF9zdGF0dXMpLAo+ID4gLQkJaW50ZWxfZ3VjX2Z3X3N0YXR1c19yZXByKGd1 Y19mdy0+Z3VjX2Z3X2xvYWRfc3RhdHVzKSk7Cj4gPiArCQlpbnRlbF91Y19md19zdGF0dXNfcmVw cihndWNfZnctPmZldGNoX3N0YXR1cyksCj4gPiArCQlpbnRlbF91Y19md19zdGF0dXNfcmVwcihn dWNfZnctPmxvYWRfc3RhdHVzKSk7Cj4gPiAgCj4gPiAgCWlmIChpOTE1LmVuYWJsZV9ndWNfc3Vi bWlzc2lvbikgewo+ID4gIAkJaWYgKGk5MTUuZ3VjX2xvZ19sZXZlbCA+PSAwKQo+ID4gQEAgLTU0 Miw4ICs1NDIsOCBAQCBpbnQgaW50ZWxfZ3VjX3NldHVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4gPiAgCXJldHVybiAwOwo+ID4gIAo+ID4gIGZhaWw6Cj4gPiAtCWlmIChndWNfZnctPmd1Y19m d19sb2FkX3N0YXR1cyA9PSBHVUNfRklSTVdBUkVfUEVORElORykKPiA+IC0JCWd1Y19mdy0+Z3Vj X2Z3X2xvYWRfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX0ZBSUw7Cj4gPiArCWlmIChndWNfZnctPmxv YWRfc3RhdHVzID09IFVDX0ZJUk1XQVJFX1BFTkRJTkcpCj4gPiArCQlndWNfZnctPmxvYWRfc3Rh dHVzID0gVUNfRklSTVdBUkVfRkFJTDsKPiA+ICAKPiA+ICAJZ3VjX2ludGVycnVwdHNfcmVsZWFz ZShkZXZfcHJpdik7Cj4gPiAgCWk5MTVfZ3VjX3N1Ym1pc3Npb25fZGlzYWJsZShkZXZfcHJpdik7 Cj4gPiBAQCAtNTg4LDcgKzU4OCw3IEBAIGludCBpbnRlbF9ndWNfc2V0dXAoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKPiA+ICAJcmV0dXJuIHJldDsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZv aWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9ndWNf ZncgKmd1Y19mdykKPiA+ICt2b2lkIGludGVsX3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHN0cnVjdCBpbnRlbF91Y19mdyAqdWNfZncpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgcGNp X2RldiAqcGRldiA9IGRldi0+cGRldjsKPiA+ICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iajsKPiA+IEBAIC01OTcsMTcgKzU5NywxNyBAQCBzdGF0aWMgdm9pZCBndWNfZndfZmV0Y2go c3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQo+ID4g IAlzaXplX3Qgc2l6ZTsKPiA+ICAJaW50IGVycjsKPiA+ICAKPiA+IC0JRFJNX0RFQlVHX0RSSVZF UigiYmVmb3JlIHJlcXVlc3RpbmcgZmlybXdhcmU6IEd1QyBmdyBmZXRjaCBzdGF0dXMgJXNcbiIs Cj4gPiAtCQlpbnRlbF9ndWNfZndfc3RhdHVzX3JlcHIoZ3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3Rh dHVzKSk7Cj4gPiArCURSTV9ERUJVR19EUklWRVIoImJlZm9yZSByZXF1ZXN0aW5nIGZpcm13YXJl OiB1QyBmdyBmZXRjaCBzdGF0dXMgJXNcbiIsCj4gPiArCQlpbnRlbF91Y19md19zdGF0dXNfcmVw cih1Y19mdy0+ZmV0Y2hfc3RhdHVzKSk7Cj4gPiAgCj4gPiAtCWVyciA9IHJlcXVlc3RfZmlybXdh cmUoJmZ3LCBndWNfZnctPmd1Y19md19wYXRoLCAmcGRldi0+ZGV2KTsKPiA+ICsJZXJyID0gcmVx dWVzdF9maXJtd2FyZSgmZncsIHVjX2Z3LT51Y19md19wYXRoLCAmcGRldi0+ZGV2KTsKPiA+ICAJ aWYgKGVycikKPiA+ICAJCWdvdG8gZmFpbDsKPiA+ICAJaWYgKCFmdykKPiA+ICAJCWdvdG8gZmFp bDsKPiA+ICAKPiA+IC0JRFJNX0RFQlVHX0RSSVZFUigiZmV0Y2ggR3VDIGZ3IGZyb20gJXMgc3Vj Y2VlZGVkLCBmdyAlcFxuIiwKPiA+IC0JCWd1Y19mdy0+Z3VjX2Z3X3BhdGgsIGZ3KTsKPiA+ICsJ RFJNX0RFQlVHX0RSSVZFUigiZmV0Y2ggdUMgZncgZnJvbSAlcyBzdWNjZWVkZWQsIGZ3ICVwXG4i LAo+ID4gKwkJdWNfZnctPnVjX2Z3X3BhdGgsIGZ3KTsKPiA+ICAKPiA+ICAJLyogQ2hlY2sgdGhl IHNpemUgb2YgdGhlIGJsb2IgYmVmb3JlIGV4YW1pbmluZyBidWZmZXIgY29udGVudHMgKi8KPiA+ ICAJaWYgKGZ3LT5zaXplIDwgc2l6ZW9mKHN0cnVjdCBndWNfY3NzX2hlYWRlcikpIHsKPiA+IEBA IC02MTgsMzYgKzYxOCwzNiBAQCBzdGF0aWMgdm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQo+ID4gIAljc3MgPSAoc3Ry dWN0IGd1Y19jc3NfaGVhZGVyICopZnctPmRhdGE7Cj4gPiAgCj4gPiAgCS8qIEZpcm13YXJlIGJp dHMgYWx3YXlzIHN0YXJ0IGZyb20gaGVhZGVyICovCj4gPiAtCWd1Y19mdy0+aGVhZGVyX29mZnNl dCA9IDA7Cj4gPiAtCWd1Y19mdy0+aGVhZGVyX3NpemUgPSAoY3NzLT5oZWFkZXJfc2l6ZV9kdyAt IGNzcy0+bW9kdWx1c19zaXplX2R3IC0KPiA+ICsJdWNfZnctPmhlYWRlcl9vZmZzZXQgPSAwOwo+ ID4gKwl1Y19mdy0+aGVhZGVyX3NpemUgPSAoY3NzLT5oZWFkZXJfc2l6ZV9kdyAtIGNzcy0+bW9k dWx1c19zaXplX2R3IC0KPiA+ICAJCWNzcy0+a2V5X3NpemVfZHcgLSBjc3MtPmV4cG9uZW50X3Np emVfZHcpICogc2l6ZW9mKHUzMik7Cj4gPiAgCj4gPiAtCWlmIChndWNfZnctPmhlYWRlcl9zaXpl ICE9IHNpemVvZihzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIpKSB7Cj4gPiArCWlmICh1Y19mdy0+aGVh ZGVyX3NpemUgIT0gc2l6ZW9mKHN0cnVjdCBndWNfY3NzX2hlYWRlcikpIHsKPiA+ICAJCURSTV9O T1RFKCJDU1MgaGVhZGVyIGRlZmluaXRpb24gbWlzbWF0Y2hcbiIpOwo+ID4gIAkJZ290byBmYWls Owo+ID4gIAl9Cj4gPiAgCj4gPiAgCS8qIHRoZW4sIHVDb2RlICovCj4gPiAtCWd1Y19mdy0+dWNv ZGVfb2Zmc2V0ID0gZ3VjX2Z3LT5oZWFkZXJfb2Zmc2V0ICsgZ3VjX2Z3LT5oZWFkZXJfc2l6ZTsK PiA+IC0JZ3VjX2Z3LT51Y29kZV9zaXplID0gKGNzcy0+c2l6ZV9kdyAtIGNzcy0+aGVhZGVyX3Np emVfZHcpICogc2l6ZW9mKHUzMik7Cj4gPiArCXVjX2Z3LT51Y29kZV9vZmZzZXQgPSB1Y19mdy0+ aGVhZGVyX29mZnNldCArIHVjX2Z3LT5oZWFkZXJfc2l6ZTsKPiA+ICsJdWNfZnctPnVjb2RlX3Np emUgPSAoY3NzLT5zaXplX2R3IC0gY3NzLT5oZWFkZXJfc2l6ZV9kdykgKiBzaXplb2YodTMyKTsK PiA+ICAKPiA+ICAJLyogbm93IFJTQSAqLwo+ID4gIAlpZiAoY3NzLT5rZXlfc2l6ZV9kdyAhPSBV T1NfUlNBX1NDUkFUQ0hfTUFYX0NPVU5UKSB7Cj4gPiAgCQlEUk1fTk9URSgiUlNBIGtleSBzaXpl IGlzIGJhZFxuIik7Cj4gPiAgCQlnb3RvIGZhaWw7Cj4gPiAgCX0KPiA+IC0JZ3VjX2Z3LT5yc2Ff b2Zmc2V0ID0gZ3VjX2Z3LT51Y29kZV9vZmZzZXQgKyBndWNfZnctPnVjb2RlX3NpemU7Cj4gPiAt CWd1Y19mdy0+cnNhX3NpemUgPSBjc3MtPmtleV9zaXplX2R3ICogc2l6ZW9mKHUzMik7Cj4gPiAr CXVjX2Z3LT5yc2Ffb2Zmc2V0ID0gdWNfZnctPnVjb2RlX29mZnNldCArIHVjX2Z3LT51Y29kZV9z aXplOwo+ID4gKwl1Y19mdy0+cnNhX3NpemUgPSBjc3MtPmtleV9zaXplX2R3ICogc2l6ZW9mKHUz Mik7Cj4gPiAgCj4gPiAgCS8qIEF0IGxlYXN0LCBpdCBzaG91bGQgaGF2ZSBoZWFkZXIsIHVDb2Rl IGFuZCBSU0EuIFNpemUgb2YgYWxsIHRocmVlLiAqLwo+ID4gLQlzaXplID0gZ3VjX2Z3LT5oZWFk ZXJfc2l6ZSArIGd1Y19mdy0+dWNvZGVfc2l6ZSArIGd1Y19mdy0+cnNhX3NpemU7Cj4gPiArCXNp emUgPSB1Y19mdy0+aGVhZGVyX3NpemUgKyB1Y19mdy0+dWNvZGVfc2l6ZSArIHVjX2Z3LT5yc2Ff c2l6ZTsKPiA+ICAJaWYgKGZ3LT5zaXplIDwgc2l6ZSkgewo+ID4gIAkJRFJNX05PVEUoIk1pc3Np bmcgZmlybXdhcmUgY29tcG9uZW50c1xuIik7Cj4gPiAgCQlnb3RvIGZhaWw7Cj4gPiAgCX0KPiA+ ICAKPiA+ICAJLyogSGVhZGVyIGFuZCB1Q29kZSB3aWxsIGJlIGxvYWRlZCB0byBXT1BDTS4gU2l6 ZSBvZiB0aGUgdHdvLiAqLwo+ID4gLQlzaXplID0gZ3VjX2Z3LT5oZWFkZXJfc2l6ZSArIGd1Y19m dy0+dWNvZGVfc2l6ZTsKPiA+ICsJc2l6ZSA9IHVjX2Z3LT5oZWFkZXJfc2l6ZSArIHVjX2Z3LT51 Y29kZV9zaXplOwo+ID4gIAlpZiAoc2l6ZSA+IGd1Y193b3BjbV9zaXplKHRvX2k5MTUoZGV2KSkp IHsKPiA+ICAJCURSTV9OT1RFKCJGaXJtd2FyZSBpcyB0b28gbGFyZ2UgdG8gZml0IGluIFdPUENN XG4iKTsKPiA+ICAJCWdvdG8gZmFpbDsKPiA+IEBAIC02NTksMjEgKzY1OSwyMSBAQCBzdGF0aWMg dm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2d1 Y19mdyAqZ3VjX2Z3KQo+ID4gIAkgKiBUV08gYnl0ZXMgZWFjaCAoaS5lLiB1MTYpLCBhbHRob3Vn aCBhbGwgcG9pbnRlcnMgYW5kIG9mZnNldHMgYXJlIGRlZmluZWQKPiA+ICAJICogaW4gdGVybXMg b2YgYnl0ZXMgKHU4KS4KPiA+ICAJICovCj4gPiAtCWd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5k ID0gY3NzLT5ndWNfc3dfdmVyc2lvbiA+PiAxNjsKPiA+IC0JZ3VjX2Z3LT5ndWNfZndfbWlub3Jf Zm91bmQgPSBjc3MtPmd1Y19zd192ZXJzaW9uICYgMHhGRkZGOwo+ID4gLQo+ID4gLQlpZiAoZ3Vj X2Z3LT5ndWNfZndfbWFqb3JfZm91bmQgIT0gZ3VjX2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkIHx8 Cj4gPiAtCSAgICBndWNfZnctPmd1Y19md19taW5vcl9mb3VuZCA8IGd1Y19mdy0+Z3VjX2Z3X21p bm9yX3dhbnRlZCkgewo+ID4gLQkJRFJNX05PVEUoIkd1QyBmaXJtd2FyZSB2ZXJzaW9uICVkLiVk LCByZXF1aXJlZCAlZC4lZFxuIiwKPiA+IC0JCQlndWNfZnctPmd1Y19md19tYWpvcl9mb3VuZCwg Z3VjX2Z3LT5ndWNfZndfbWlub3JfZm91bmQsCj4gPiAtCQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jf d2FudGVkLCBndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQpOwo+ID4gKwl1Y19mdy0+bWFqb3Jf dmVyX2ZvdW5kID0gY3NzLT5ndWNfc3dfdmVyc2lvbiA+PiAxNjsKPiA+ICsJdWNfZnctPm1pbm9y X3Zlcl9mb3VuZCA9IGNzcy0+Z3VjX3N3X3ZlcnNpb24gJiAweEZGRkY7Cj4gPiArCj4gPiArCWlm ICh1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kICE9IHVjX2Z3LT5tYWpvcl92ZXJfd2FudGVkIHx8Cj4g PiArCSAgICB1Y19mdy0+bWlub3JfdmVyX2ZvdW5kIDwgdWNfZnctPm1pbm9yX3Zlcl93YW50ZWQp IHsKPiA+ICsJCURSTV9OT1RFKCJ1QyBmaXJtd2FyZSB2ZXJzaW9uICVkLiVkLCByZXF1aXJlZCAl ZC4lZFxuIiwKPiA+ICsJCQl1Y19mdy0+bWFqb3JfdmVyX2ZvdW5kLCB1Y19mdy0+bWlub3JfdmVy X2ZvdW5kLAo+ID4gKwkJCXVjX2Z3LT5tYWpvcl92ZXJfd2FudGVkLCB1Y19mdy0+bWlub3JfdmVy X3dhbnRlZCk7Cj4gPiAgCQllcnIgPSAtRU5PRVhFQzsKPiA+ICAJCWdvdG8gZmFpbDsKPiA+ICAJ fQo+ID4gIAo+ID4gIAlEUk1fREVCVUdfRFJJVkVSKCJmaXJtd2FyZSB2ZXJzaW9uICVkLiVkIE9L IChtaW5pbXVtICVkLiVkKVxuIiwKPiA+IC0JCQlndWNfZnctPmd1Y19md19tYWpvcl9mb3VuZCwg Z3VjX2Z3LT5ndWNfZndfbWlub3JfZm91bmQsCj4gPiAtCQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jf d2FudGVkLCBndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQpOwo+ID4gKwkJCXVjX2Z3LT5tYWpv cl92ZXJfZm91bmQsIHVjX2Z3LT5taW5vcl92ZXJfZm91bmQsCj4gPiArCQkJdWNfZnctPm1ham9y X3Zlcl93YW50ZWQsIHVjX2Z3LT5taW5vcl92ZXJfd2FudGVkKTsKPiA+ICAKPiA+ICAJbXV0ZXhf bG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ID4gIAlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3Jl YXRlX2Zyb21fZGF0YShkZXYsIGZ3LT5kYXRhLCBmdy0+c2l6ZSk7Cj4gPiBAQCAtNjgzLDMxICs2 ODMsMzEgQEAgc3RhdGljIHZvaWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdykKPiA+ICAJCWdvdG8gZmFpbDsKPiA+ICAJfQo+ ID4gIAo+ID4gLQlndWNfZnctPmd1Y19md19vYmogPSBvYmo7Cj4gPiAtCWd1Y19mdy0+Z3VjX2Z3 X3NpemUgPSBmdy0+c2l6ZTsKPiA+ICsJdWNfZnctPnVjX2Z3X29iaiA9IG9iajsKPiA+ICsJdWNf ZnctPnVjX2Z3X3NpemUgPSBmdy0+c2l6ZTsKPiA+ICAKPiA+IC0JRFJNX0RFQlVHX0RSSVZFUigi R3VDIGZ3IGZldGNoIHN0YXR1cyBTVUNDRVNTLCBvYmogJXBcbiIsCj4gPiAtCQkJZ3VjX2Z3LT5n dWNfZndfb2JqKTsKPiA+ICsJRFJNX0RFQlVHX0RSSVZFUigidUMgZncgZmV0Y2ggc3RhdHVzIFNV Q0NFU1MsIG9iaiAlcFxuIiwKPiA+ICsJCQl1Y19mdy0+dWNfZndfb2JqKTsKPiA+ICAKPiA+ICAJ cmVsZWFzZV9maXJtd2FyZShmdyk7Cj4gPiAtCWd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9 IEdVQ19GSVJNV0FSRV9TVUNDRVNTOwo+ID4gKwl1Y19mdy0+ZmV0Y2hfc3RhdHVzID0gVUNfRklS TVdBUkVfU1VDQ0VTUzsKPiA+ICAJcmV0dXJuOwo+ID4gIAo+ID4gIGZhaWw6Cj4gPiAtCURSTV9X QVJOKCJGYWlsZWQgdG8gZmV0Y2ggdmFsaWQgR3VDIGZpcm13YXJlIGZyb20gJXMgKGVycm9yICVk KVxuIiwKPiA+IC0JCSBndWNfZnctPmd1Y19md19wYXRoLCBlcnIpOwo+ID4gLQlEUk1fREVCVUdf RFJJVkVSKCJHdUMgZncgZmV0Y2ggc3RhdHVzIEZBSUw7IGVyciAlZCwgZncgJXAsIG9iaiAlcFxu IiwKPiA+IC0JCWVyciwgZncsIGd1Y19mdy0+Z3VjX2Z3X29iaik7Cj4gPiArCURSTV9XQVJOKCJG YWlsZWQgdG8gZmV0Y2ggdmFsaWQgdUMgZmlybXdhcmUgZnJvbSAlcyAoZXJyb3IgJWQpXG4iLAo+ ID4gKwkJIHVjX2Z3LT51Y19md19wYXRoLCBlcnIpOwo+ID4gKwlEUk1fREVCVUdfRFJJVkVSKCJ1 QyBmdyBmZXRjaCBzdGF0dXMgRkFJTDsgZXJyICVkLCBmdyAlcCwgb2JqICVwXG4iLAo+ID4gKwkJ ZXJyLCBmdywgdWNfZnctPnVjX2Z3X29iaik7Cj4gPiAgCj4gPiAgCW11dGV4X2xvY2soJmRldi0+ c3RydWN0X211dGV4KTsKPiA+IC0Jb2JqID0gZ3VjX2Z3LT5ndWNfZndfb2JqOwo+ID4gKwlvYmog PSB1Y19mdy0+dWNfZndfb2JqOwo+ID4gIAlpZiAob2JqKQo+ID4gIAkJaTkxNV9nZW1fb2JqZWN0 X3B1dChvYmopOwo+ID4gLQlndWNfZnctPmd1Y19md19vYmogPSBOVUxMOwo+ID4gKwl1Y19mdy0+ dWNfZndfb2JqID0gTlVMTDsKPiA+ICAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7 Cj4gPiAgCj4gPiAgCXJlbGVhc2VfZmlybXdhcmUoZncpOwkJLyogT0sgZXZlbiBpZiBmdyBpcyBO VUxMICovCj4gPiAtCWd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9IEdVQ19GSVJNV0FSRV9G QUlMOwo+ID4gKwl1Y19mdy0+ZmV0Y2hfc3RhdHVzID0gVUNfRklSTVdBUkVfRkFJTDsKPiA+ICB9 Cj4gPiAgCj4gPiAgLyoqCj4gPiBAQCAtNzIyLDcgKzcyMiw3IEBAIHN0YXRpYyB2b2lkIGd1Y19m d19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNf ZncpCj4gPiAgdm9pZCBpbnRlbF9ndWNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4g IHsKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYp Owo+ID4gLQlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNf Znc7Cj4gPiArCXN0cnVjdCBpbnRlbF91Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3Vj X2Z3Owo+ID4gIAljb25zdCBjaGFyICpmd19wYXRoOwo+ID4gIAo+ID4gIAlpZiAoIUhBU19HVUMo ZGV2X3ByaXYpKSB7Cj4gPiBAQCAtNzQwLDIzICs3NDAsMjQgQEAgdm9pZCBpbnRlbF9ndWNfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIAkJZndfcGF0aCA9IE5VTEw7Cj4gPiAgCX0g ZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikpIHsKPiA+ICAJCWZ3X3BhdGggPSBJOTE1X1NL TF9HVUNfVUNPREU7Cj4gPiAtCQlndWNfZnctPmd1Y19md19tYWpvcl93YW50ZWQgPSBTS0xfRldf TUFKT1I7Cj4gPiAtCQlndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQgPSBTS0xfRldfTUlOT1I7 Cj4gPiArCQlndWNfZnctPm1ham9yX3Zlcl93YW50ZWQgPSBTS0xfRldfTUFKT1I7Cj4gPiArCQln dWNfZnctPm1pbm9yX3Zlcl93YW50ZWQgPSBTS0xfRldfTUlOT1I7Cj4gPiAgCX0gZWxzZSBpZiAo SVNfQlJPWFRPTihkZXZfcHJpdikpIHsKPiA+ICAJCWZ3X3BhdGggPSBJOTE1X0JYVF9HVUNfVUNP REU7Cj4gPiAtCQlndWNfZnctPmd1Y19md19tYWpvcl93YW50ZWQgPSBCWFRfRldfTUFKT1I7Cj4g PiAtCQlndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQgPSBCWFRfRldfTUlOT1I7Cj4gPiArCQln dWNfZnctPm1ham9yX3Zlcl93YW50ZWQgPSBCWFRfRldfTUFKT1I7Cj4gPiArCQlndWNfZnctPm1p bm9yX3Zlcl93YW50ZWQgPSBCWFRfRldfTUlOT1I7Cj4gPiAgCX0gZWxzZSBpZiAoSVNfS0FCWUxB S0UoZGV2X3ByaXYpKSB7Cj4gPiAgCQlmd19wYXRoID0gSTkxNV9LQkxfR1VDX1VDT0RFOwo+ID4g LQkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkID0gS0JMX0ZXX01BSk9SOwo+ID4gLQkJZ3Vj X2Z3LT5ndWNfZndfbWlub3Jfd2FudGVkID0gS0JMX0ZXX01JTk9SOwo+ID4gKwkJZ3VjX2Z3LT5t YWpvcl92ZXJfd2FudGVkID0gS0JMX0ZXX01BSk9SOwo+ID4gKwkJZ3VjX2Z3LT5taW5vcl92ZXJf d2FudGVkID0gS0JMX0ZXX01JTk9SOwo+ID4gIAl9IGVsc2Ugewo+ID4gIAkJZndfcGF0aCA9ICIi OwkvKiB1bmtub3duIGRldmljZSAqLwo+ID4gIAl9Cj4gPiAgCj4gPiAtCWd1Y19mdy0+Z3VjX2Z3 X3BhdGggPSBmd19wYXRoOwo+ID4gLQlndWNfZnctPmd1Y19md19mZXRjaF9zdGF0dXMgPSBHVUNf RklSTVdBUkVfTk9ORTsKPiA+IC0JZ3VjX2Z3LT5ndWNfZndfbG9hZF9zdGF0dXMgPSBHVUNfRklS TVdBUkVfTk9ORTsKPiA+ICsJZ3VjX2Z3LT51Y19kZXYgPSBkZXY7Cj4gPiArCWd1Y19mdy0+dWNf ZndfcGF0aCA9IGZ3X3BhdGg7Cj4gPiArCWd1Y19mdy0+ZmV0Y2hfc3RhdHVzID0gVUNfRklSTVdB UkVfTk9ORTsKPiA+ICsJZ3VjX2Z3LT5sb2FkX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX05PTkU7Cj4g PiAgCj4gPiAgCS8qIEVhcmx5IChhbmQgc2lsZW50KSByZXR1cm4gaWYgR3VDIGxvYWRpbmcgaXMg ZGlzYWJsZWQgKi8KPiA+ICAJaWYgKCFpOTE1LmVuYWJsZV9ndWNfbG9hZGluZykKPiA+IEBAIC03 NjYsOSArNzY3LDkgQEAgdm9pZCBpbnRlbF9ndWNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ID4gIAlpZiAoKmZ3X3BhdGggPT0gJ1wwJykKPiA+ICAJCXJldHVybjsKPiA+ICAKPiA+IC0J Z3VjX2Z3LT5ndWNfZndfZmV0Y2hfc3RhdHVzID0gR1VDX0ZJUk1XQVJFX1BFTkRJTkc7Cj4gPiAr CWd1Y19mdy0+ZmV0Y2hfc3RhdHVzID0gVUNfRklSTVdBUkVfUEVORElORzsKPiA+ICAJRFJNX0RF QlVHX0RSSVZFUigiR3VDIGZpcm13YXJlIHBlbmRpbmcsIHBhdGggJXNcbiIsIGZ3X3BhdGgpOwo+ ID4gLQlndWNfZndfZmV0Y2goZGV2LCBndWNfZncpOwo+ID4gKwlpbnRlbF91Y19md19mZXRjaChk ZXYsIGd1Y19mdyk7Cj4gPiAgCS8qIHN0YXR1cyBtdXN0IG5vdyBiZSBGQUlMIG9yIFNVQ0NFU1Mg Ki8KPiA+ICB9Cj4gPiAgCj4gPiBAQCAtNzc5LDE3ICs3ODAsMTcgQEAgdm9pZCBpbnRlbF9ndWNf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIHZvaWQgaW50ZWxfZ3VjX2Zpbmkoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiA+IC0Jc3RydWN0IGludGVsX2d1Y19mdyAqZ3Vj X2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3Owo+ID4gKwlzdHJ1Y3QgaW50ZWxfdWNfZncgKmd1 Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKPiA+ICAKPiA+ICAJbXV0ZXhfbG9jaygmZGV2 LT5zdHJ1Y3RfbXV0ZXgpOwo+ID4gIAlndWNfaW50ZXJydXB0c19yZWxlYXNlKGRldl9wcml2KTsK PiA+ICAJaTkxNV9ndWNfc3VibWlzc2lvbl9kaXNhYmxlKGRldl9wcml2KTsKPiA+ICAJaTkxNV9n dWNfc3VibWlzc2lvbl9maW5pKGRldl9wcml2KTsKPiA+ICAKPiA+IC0JaWYgKGd1Y19mdy0+Z3Vj X2Z3X29iaikKPiA+IC0JCWk5MTVfZ2VtX29iamVjdF9wdXQoZ3VjX2Z3LT5ndWNfZndfb2JqKTsK PiA+IC0JZ3VjX2Z3LT5ndWNfZndfb2JqID0gTlVMTDsKPiA+ICsJaWYgKGd1Y19mdy0+dWNfZndf b2JqKQo+ID4gKwkJaTkxNV9nZW1fb2JqZWN0X3B1dChndWNfZnctPnVjX2Z3X29iaik7Cj4gPiAr CWd1Y19mdy0+dWNfZndfb2JqID0gTlVMTDsKPiA+ICAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVj dF9tdXRleCk7Cj4gPiAgCj4gPiAtCWd1Y19mdy0+Z3VjX2Z3X2ZldGNoX3N0YXR1cyA9IEdVQ19G SVJNV0FSRV9OT05FOwo+ID4gKwlndWNfZnctPmZldGNoX3N0YXR1cyA9IFVDX0ZJUk1XQVJFX05P TkU7Cj4gPiAgfQo+ID4gLS0gCj4gPiAyLjcuNAo+IAo+IC0tIAo+IENoZWVycywKPiBBcmVrCj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1n ZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAK Q2hlZXJzLApBcmVrCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=