From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0B4E66E122 for ; Wed, 28 Nov 2018 23:01:29 +0000 (UTC) References: <20181126153624.3690-1-lukasz.kalamarz@intel.com> <20181126153624.3690-3-lukasz.kalamarz@intel.com> From: Daniele Ceraolo Spurio Message-ID: <45bde27e-ace0-a89c-010e-c581afc3dae9@intel.com> Date: Wed, 28 Nov 2018 15:01:22 -0800 MIME-Version: 1.0 In-Reply-To: <20181126153624.3690-3-lukasz.kalamarz@intel.com> Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t v3 3/3] lib: Use drm_get_param where it is applicable List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Lukasz Kalamarz , igt-dev@lists.freedesktop.org List-ID: CgpPbiAyNi8xMS8yMDE4IDA3OjM2LCBMdWthc3ogS2FsYW1hcnogd3JvdGU6Cj4gV2l0aCB1c2Fn ZSBvZiBpbXBsZW1lbnRlZCBkcm1fZ2V0X3BhcmFtIGhlbHBlciBmdW5jdGlvbiwgd2UgY2FuCj4g cmVtb3ZlIHNvbWUgZHVwbGljYXRlZCBjb2RlIGxpbmVzIGFjcm9zcyBmZXcgbGlicy4KPiAKPiB2 MjogRml4IHR5cG9zIGFuZCBtaXNzaW5nIGluY2x1ZGUKPiB2MzogRHJvcCB1bm5lY2Vzc2FyeSBn ZXRwYXJhbSBzdHJ1Y3R1cmUgaW4gb25lIGZ1bmN0aW9uCj4gCj4gU2lnbmVkLW9mZi1ieTogTHVr YXN6IEthbGFtYXJ6IDxsdWthc3oua2FsYW1hcnpAaW50ZWwuY29tPgo+IAo+IENjOiBNaWNoYWwg V2luaWFyc2tpIDxtaWNoYWwud2luaWFyc2tpQGludGVsLmNvbT4KPiBDYzogS2F0YXJ6eW5hIERl YyA8a2F0YXJ6eW5hLmRlY0BpbnRlbC5jb20+Cj4gQ2M6IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8g PGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+Cj4gLS0tCj4gICBsaWIvZHJtdGVzdC5j ICAgICAgICAgICAgIHwgIDcgKystLS0KPiAgIGxpYi9pOTE1L2dlbV9zY2hlZHVsZXIuYyAgfCAg OCArLS0tLQo+ICAgbGliL2k5MTUvZ2VtX3N1Ym1pc3Npb24uYyB8IDEwICsrKy0tLQo+ICAgbGli L2lndF9ndC5jICAgICAgICAgICAgICB8ICA3ICsrLS0tCj4gICBsaWIvaW50ZWxfY2hpcHNldC5j ICAgICAgIHwgIDcgKystLS0KPiAgIGxpYi9pb2N0bF93cmFwcGVycy5jICAgICAgfCA2NiArKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgIDYgZmlsZXMgY2hhbmdlZCwg MjIgaW5zZXJ0aW9ucygrKSwgODMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2xpYi9k cm10ZXN0LmMgYi9saWIvZHJtdGVzdC5jCj4gaW5kZXggZmVlOWQzM2EuLjgxMzgzZmQ0IDEwMDY0 NAo+IC0tLSBhL2xpYi9kcm10ZXN0LmMKPiArKysgYi9saWIvZHJtdGVzdC5jCj4gQEAgLTEwNywx NCArMTA3LDExIEBAIGJvb2wgaXNfaTkxNV9kZXZpY2UoaW50IGZkKQo+ICAgCj4gICBzdGF0aWMg Ym9vbCBoYXNfa25vd25faW50ZWxfY2hpcHNldChpbnQgZmQpCj4gICB7Cj4gLQlzdHJ1Y3QgZHJt X2k5MTVfZ2V0cGFyYW0gZ3A7Cj4gICAJaW50IGRldmlkID0gMDsKPiAgIAo+IC0JbWVtc2V0KCZn cCwgMCwgc2l6ZW9mKGdwKSk7Cj4gLQlncC5wYXJhbSA9IEk5MTVfUEFSQU1fQ0hJUFNFVF9JRDsK PiAtCWdwLnZhbHVlID0gJmRldmlkOwo+ICsJZGV2aWQgPSBkcm1fZ2V0X3BhcmFtKGZkLCBJOTE1 X1BBUkFNX0NISVBTRVRfSUQpOwo+ICAgCj4gLQlpZiAoaW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1 X0dFVFBBUkFNLCAmZ3AsIHNpemVvZihncCkpKQo+ICsJaWYgKGRldmlkIDw9IDApCj4gICAJCXJl dHVybiBmYWxzZTsKPiAgIAo+ICAgCWlmICghaW50ZWxfZ2VuKGRldmlkKSkKCllvdSBjYW4gbm93 IHBvdGVudGlhbGx5IHNpbXBsaWZ5IHRoaXMgZnVuY3Rpb24gd2l0aCBzb21ldGhpbmcgbGlrZToK CnN0YXRpYyBib29sIGhhc19rbm93bl9pbnRlbF9jaGlwc2V0KGludCBmZCkKewoJaW50IGRldmlk ID0gMDsKCWRldmlkID0gZHJtX2dldF9wYXJhbShmZCwgSTkxNV9QQVJBTV9DSElQU0VUX0lEKTsK CXJldHVybiBkZXZpZCA+IDAgJiYgaW50ZWxfZ2VuKGRldmlkKTsKfQoKPiBkaWZmIC0tZ2l0IGEv bGliL2k5MTUvZ2VtX3NjaGVkdWxlci5jIGIvbGliL2k5MTUvZ2VtX3NjaGVkdWxlci5jCj4gaW5k ZXggYWQxNTYzMDYuLjA3OTU1OWEyIDEwMDY0NAo+IC0tLSBhL2xpYi9pOTE1L2dlbV9zY2hlZHVs ZXIuYwo+ICsrKyBiL2xpYi9pOTE1L2dlbV9zY2hlZHVsZXIuYwo+IEBAIC01MiwxNCArNTIsOCBA QCB1bnNpZ25lZCBnZW1fc2NoZWR1bGVyX2NhcGFiaWxpdHkoaW50IGZkKQo+ICAgCXN0YXRpYyBp bnQgY2FwcyA9IC0xOwo+ICAgCj4gICAJaWYgKGNhcHMgPCAwKSB7Cj4gLQkJc3RydWN0IGRybV9p OTE1X2dldHBhcmFtIGdwOwo+IC0KPiAtCQltZW1zZXQoJmdwLCAwLCBzaXplb2YoZ3ApKTsKPiAt CQlncC5wYXJhbSA9IExPQ0FMX0k5MTVfUEFSQU1fSEFTX1NDSEVEVUxFUjsKPiAtCQlncC52YWx1 ZSA9ICZjYXBzOwo+IC0KPiAgIAkJY2FwcyA9IDA7Cj4gLQkJaW9jdGwoZmQsIERSTV9JT0NUTF9J OTE1X0dFVFBBUkFNLCAmZ3AsIHNpemVvZihncCkpOwo+ICsJCWNhcHMgPSBkcm1fZ2V0X3BhcmFt KGZkLCBMT0NBTF9JOTE1X1BBUkFNX0hBU19TQ0hFRFVMRVIpOwoKTm93IGNhcHMgY2FuIGJlIDwg MCBvbiBlcnJvciwgd2hpY2ggd2lsbCBicmVhayB0aGUgbG9naWMuIEkgZ3Vlc3MgeW91IHdhbnQ6 CgoJY2FwcyA9IGRybV9nZXRfcGFyYW0oZmQsIExPQ0FMX0k5MTVfUEFSQU1fSEFTX1NDSEVEVUxF Uik7CglpZiAoY2FwcyA8IDApCgkJY2FwcyA9IDA7Cgo+ICAgCQllcnJubyA9IDA7Cj4gICAJfQo+ ICAgCj4gZGlmZiAtLWdpdCBhL2xpYi9pOTE1L2dlbV9zdWJtaXNzaW9uLmMgYi9saWIvaTkxNS9n ZW1fc3VibWlzc2lvbi5jCj4gaW5kZXggMmZkNDYwZDUuLjU4M2JiMTMzIDEwMDY0NAo+IC0tLSBh L2xpYi9pOTE1L2dlbV9zdWJtaXNzaW9uLmMKPiArKysgYi9saWIvaTkxNS9nZW1fc3VibWlzc2lv bi5jCj4gQEAgLTUzLDEyICs1MywxMiBAQAo+ICAgc3RhdGljIGJvb2wgaGFzX3NlbWFwaG9yZXMo aW50IGZkLCBpbnQgZGlyKQo+ICAgewo+ICAgCWludCB2YWwgPSAwOwo+IC0Jc3RydWN0IGRybV9p OTE1X2dldHBhcmFtIGdwID0gewo+IC0JCWdwLnBhcmFtID0gSTkxNV9QQVJBTV9IQVNfU0VNQVBI T1JFUywKPiAtCQlncC52YWx1ZSA9ICZ2YWwsCj4gLQl9Owo+IC0JaWYgKGlvY3RsKGZkLCBEUk1f SU9DVExfSTkxNV9HRVRQQVJBTSwgJmdwKSA8IDApCj4gKwo+ICsJdmFsID0gZHJtX2dldF9wYXJh bShmZCwgSTkxNV9QQVJBTV9IQVNfU0VNQVBIT1JFUyk7Cj4gKwo+ICsJaWYgKHZhbCA8IDApCj4g ICAJCXZhbCA9IGlndF9zeXNmc19nZXRfYm9vbGVhbihkaXIsICJzZW1hcGhvcmVzIik7Cj4gKwo+ ICAgCXJldHVybiB2YWw7Cj4gICB9Cj4gICAKPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9ndC5jIGIv bGliL2lndF9ndC5jCj4gaW5kZXggYTIwNjE5MjQuLjE4Y2Q5MjJiIDEwMDY0NAo+IC0tLSBhL2xp Yi9pZ3RfZ3QuYwo+ICsrKyBiL2xpYi9pZ3RfZ3QuYwo+IEBAIC01NywxNCArNTcsMTEgQEAgc3Rh dGljIGJvb2wgaGFzX2dwdV9yZXNldChpbnQgZmQpCj4gICB7Cj4gICAJc3RhdGljIGludCBvbmNl ID0gLTE7Cj4gICAJaWYgKG9uY2UgPCAwKSB7Cj4gLQkJc3RydWN0IGRybV9pOTE1X2dldHBhcmFt IGdwOwo+ICAgCQlpbnQgdmFsID0gMDsKPiAgIAo+IC0JCW1lbXNldCgmZ3AsIDAsIHNpemVvZihn cCkpOwo+IC0JCWdwLnBhcmFtID0gMzU7IC8qIEhBU19HUFVfUkVTRVQgKi8KPiAtCQlncC52YWx1 ZSA9ICZ2YWw7Cj4gKwkJdmFsID0gZHJtX2dldF9wYXJhbShmZCwgMzUpOyAvKiBIQVNfR1BVX1JF U0VUICovCj4gICAKPiAtCQlpZiAoaW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFVFBBUkFNLCAm Z3ApKQo+ICsJCWlmICh2YWwgPiAwKQoKVGhpcyBjaGVjayBpcyB0aGUgd3Jvbmcgd2F5IGFyb3Vu ZCwgeW91IHdhbnQgdmFsIDwgMCBoZXJlIChpdCdzIHRoZSAKZmFpbHVyZSBjYXNlKQoKPiAgIAkJ CW9uY2UgPSBpbnRlbF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChmZCkpID49IDU7Cj4gICAJCWVs c2UKPiAgIAkJCW9uY2UgPSB2YWwgPiAwOwo+IGRpZmYgLS1naXQgYS9saWIvaW50ZWxfY2hpcHNl dC5jIGIvbGliL2ludGVsX2NoaXBzZXQuYwo+IGluZGV4IDQ3NDhhM2ZiLi5kYTM1NGZiNiAxMDA2 NDQKPiAtLS0gYS9saWIvaW50ZWxfY2hpcHNldC5jCj4gKysrIGIvbGliL2ludGVsX2NoaXBzZXQu Ywo+IEBAIC00MSw2ICs0MSw3IEBACj4gICAjaW5jbHVkZSAiZHJtdGVzdC5oIgo+ICAgI2luY2x1 ZGUgImludGVsX2NoaXBzZXQuaCIKPiAgICNpbmNsdWRlICJpZ3RfY29yZS5oIgo+ICsjaW5jbHVk ZSAiaW9jdGxfd3JhcHBlcnMuaCIKPiAgIAo+ICAgLyoqCj4gICAgKiBTRUNUSU9OOmludGVsX2No aXBzZXQKPiBAQCAtMTI1LDcgKzEyNiw2IEBAIGludGVsX2dldF9wY2lfZGV2aWNlKHZvaWQpCj4g ICB1aW50MzJfdAo+ICAgaW50ZWxfZ2V0X2RybV9kZXZpZChpbnQgZmQpCj4gICB7Cj4gLQlzdHJ1 Y3QgZHJtX2k5MTVfZ2V0cGFyYW0gZ3A7Cj4gICAJY29uc3QgY2hhciAqb3ZlcnJpZGU7Cj4gICAJ aW50IGRldmlkID0gMDsKPiAgIAo+IEBAIC0xMzUsMTAgKzEzNSw3IEBAIGludGVsX2dldF9kcm1f ZGV2aWQoaW50IGZkKQo+ICAgCWlmIChvdmVycmlkZSkKPiAgIAkJcmV0dXJuIHN0cnRvbChvdmVy cmlkZSwgTlVMTCwgMCk7Cj4gICAKPiAtCW1lbXNldCgmZ3AsIDAsIHNpemVvZihncCkpOwo+IC0J Z3AucGFyYW0gPSBJOTE1X1BBUkFNX0NISVBTRVRfSUQ7Cj4gLQlncC52YWx1ZSA9ICZkZXZpZDsK PiAtCWlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRVRQQVJBTSwgJmdwLCBzaXplb2YoZ3ApKTsK PiArCWRldmlkID0gZHJtX2dldF9wYXJhbShmZCwgSTkxNV9QQVJBTV9DSElQU0VUX0lEKTsKPiAg IAo+ICAgCXJldHVybiBkZXZpZDsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEvbGliL2lvY3RsX3dyYXBw ZXJzLmMgYi9saWIvaW9jdGxfd3JhcHBlcnMuYwo+IGluZGV4IGFlYzRmMTVlLi5kMTU2MTAzYiAx MDA2NDQKPiAtLS0gYS9saWIvaW9jdGxfd3JhcHBlcnMuYwo+ICsrKyBiL2xpYi9pb2N0bF93cmFw cGVycy5jCj4gQEAgLTQ5NCwxNiArNDk0LDEyIEBAIGludCBkcm1fZ2V0X3BhcmFtKGludCBmZCwg dWludDMyX3QgcGFyYW0pCj4gICBib29sIGdlbV9jcmVhdGVfX2hhc19zdG9sZW5fc3VwcG9ydChp bnQgZmQpCj4gICB7Cj4gICAJc3RhdGljIGludCBoYXNfc3RvbGVuX3N1cHBvcnQgPSAtMTsKPiAt CXN0cnVjdCBkcm1faTkxNV9nZXRwYXJhbSBncDsKPiAgIAlpbnQgdmFsID0gLTE7Cj4gICAKPiAg IAlpZiAoaGFzX3N0b2xlbl9zdXBwb3J0IDwgMCkgewo+IC0JCW1lbXNldCgmZ3AsIDAsIHNpemVv ZihncCkpOwo+IC0JCWdwLnBhcmFtID0gMzg7IC8qIENSRUFURV9WRVJTSU9OICovCj4gLQkJZ3Au dmFsdWUgPSAmdmFsOwo+ICsJCXZhbCA9IGRybV9nZXRfcGFyYW0oZmQsIDM4KTsgLyogQ1JFQVRF X1ZFUlNJT04gKi8KPiAgIAo+ICAgCQkvKiBEbyB3ZSBoYXZlIHRoZSBleHRlbmRlZCBnZW1fY3Jl YXRlX2lvY3RsPyAqLwo+IC0JCWlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRVRQQVJBTSwgJmdw KTsKPiAgIAkJaGFzX3N0b2xlbl9zdXBwb3J0ID0gdmFsID49IDI7Cj4gICAJfQo+ICAgCj4gQEAg LTcyMywyMSArNzE5LDEzIEBAIGJvb2wgZ2VtX21tYXBfX2hhc193YyhpbnQgZmQpCj4gICAJc3Rh dGljIGludCBoYXNfd2MgPSAtMTsKPiAgIAo+ICAgCWlmIChoYXNfd2MgPT0gLTEpIHsKPiAtCQlz dHJ1Y3QgZHJtX2k5MTVfZ2V0cGFyYW0gZ3A7Cj4gICAJCWludCBtbWFwX3ZlcnNpb24gPSAtMTsK PiAgIAkJaW50IGd0dF92ZXJzaW9uID0gLTE7Cj4gICAKPiAgIAkJaGFzX3djID0gMDsKPiAgIAo+ IC0JCW1lbXNldCgmZ3AsIDAsIHNpemVvZihncCkpOwo+IC0JCWdwLnBhcmFtID0gNDA7IC8qIE1N QVBfR1RUX1ZFUlNJT04gKi8KPiAtCQlncC52YWx1ZSA9ICZndHRfdmVyc2lvbjsKPiAtCQlpb2N0 bChmZCwgRFJNX0lPQ1RMX0k5MTVfR0VUUEFSQU0sICZncCk7Cj4gLQo+IC0JCW1lbXNldCgmZ3As IDAsIHNpemVvZihncCkpOwo+IC0JCWdwLnBhcmFtID0gMzA7IC8qIE1NQVBfVkVSU0lPTiAqLwo+ IC0JCWdwLnZhbHVlID0gJm1tYXBfdmVyc2lvbjsKPiAtCQlpb2N0bChmZCwgRFJNX0lPQ1RMX0k5 MTVfR0VUUEFSQU0sICZncCk7Cj4gKwkJZ3R0X3ZlcnNpb24gPSBkcm1fZ2V0X3BhcmFtKGZkLCA0 MCk7IC8qIE1NQVBfR1RUX1ZFUlNJT04gKi8KPiArCQltbWFwX3ZlcnNpb24gPSBkcm1fZ2V0X3Bh cmFtKGZkLCAzMCk7IC8qIE1NQVBfVkVSU0lPTiAqLwo+ICAgCj4gICAJCS8qIERvIHdlIGhhdmUg dGhlIG5ldyBtbWFwX2lvY3RsIHdpdGggRE9NQUlOX1dDPyAqLwo+ICAgCQlpZiAobW1hcF92ZXJz aW9uID49IDEgJiYgZ3R0X3ZlcnNpb24gPj0gMikgewo+IEBAIC05ODIsMTcgKzk3MCwxMSBAQCBi b29sIGdlbV9ib19idXN5KGludCBmZCwgdWludDMyX3QgaGFuZGxlKQo+ICAgICovCj4gICBzdGF0 aWMgaW50IGdlbV9ndHRfdHlwZShpbnQgZmQpCj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfZ2V0 cGFyYW0gZ3A7Cj4gICAJaW50IHZhbCA9IDA7Cj4gICAKPiAtCW1lbXNldCgmZ3AsIDAsIHNpemVv ZihncCkpOwo+IC0JZ3AucGFyYW0gPSAxODsgLyogSEFTX0FMSUFTSU5HX1BQR1RUICovCj4gLQln cC52YWx1ZSA9ICZ2YWw7Cj4gLQo+IC0JaWYgKGlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRVRQ QVJBTSwgJmdwLCBzaXplb2YoZ3ApKSkKPiAtCQlyZXR1cm4gMDsKPiAtCj4gKwl2YWwgPSBkcm1f Z2V0X3BhcmFtKGZkLCAxOCk7IC8qIEhBU19BTElBU0lOR19QUEdUVCAqLwoKWW91J3ZlIGxvc3Qg dGhlIGVycm9yIGNhc2UKCmlmICh2YWwgPCAwKQoJcmV0dXJuIDAKCk9yIHVwZGF0ZSB0aGUgZG9j cyB0byBzYXkgd2UgcmV0dXJuIGEgbmVnYXRpdmUgdmFsIG9uIGVycm9yLCB3ZSBhbHdheXMgCmNo ZWNrIHRoZSByZXR1cm4gb2YgdGhpcyBmdW5jIHdpdGggYSA+IHNvIHRoYXQnZCB3b3JrIGFueXdh eQoKPiAgIAllcnJubyA9IDA7Cj4gKwo+ICAgCXJldHVybiB2YWw7Cj4gICB9Cj4gICAKPiBAQCAt MTAzNiwxMyArMTAxOCw5IEBAIGJvb2wgZ2VtX3VzZXNfZnVsbF9wcGd0dChpbnQgZmQpCj4gICAg Ki8KPiAgIGludCBnZW1fZ3B1X3Jlc2V0X3R5cGUoaW50IGZkKQo+ICAgewo+IC0Jc3RydWN0IGRy bV9pOTE1X2dldHBhcmFtIGdwOwo+ICAgCWludCBncHVfcmVzZXRfdHlwZSA9IC0xOwo+ICAgCj4g LQltZW1zZXQoJmdwLCAwLCBzaXplb2YoZ3ApKTsKPiAtCWdwLnBhcmFtID0gSTkxNV9QQVJBTV9I QVNfR1BVX1JFU0VUOwo+IC0JZ3AudmFsdWUgPSAmZ3B1X3Jlc2V0X3R5cGU7Cj4gLQlkcm1Jb2N0 bChmZCwgRFJNX0lPQ1RMX0k5MTVfR0VUUEFSQU0sICZncCk7Cj4gKwlncHVfcmVzZXRfdHlwZSA9 IGRybV9nZXRfcGFyYW0oZmQsIEk5MTVfUEFSQU1fSEFTX0dQVV9SRVNFVCk7Cj4gICAKPiAgIAly ZXR1cm4gZ3B1X3Jlc2V0X3R5cGU7Cj4gICB9Cj4gQEAgLTEwOTAsMTQgKzEwNjgsOCBAQCBpbnQg Z2VtX2F2YWlsYWJsZV9mZW5jZXMoaW50IGZkKQo+ICAgCXN0YXRpYyBpbnQgbnVtX2ZlbmNlcyA9 IC0xOwo+ICAgCj4gICAJaWYgKG51bV9mZW5jZXMgPCAwKSB7Cj4gLQkJc3RydWN0IGRybV9pOTE1 X2dldHBhcmFtIGdwOwo+IC0KPiAtCQltZW1zZXQoJmdwLCAwLCBzaXplb2YoZ3ApKTsKPiAtCQln cC5wYXJhbSA9IEk5MTVfUEFSQU1fTlVNX0ZFTkNFU19BVkFJTDsKPiAtCQlncC52YWx1ZSA9ICZu dW1fZmVuY2VzOwo+IC0KPiAgIAkJbnVtX2ZlbmNlcyA9IDA7Cj4gLQkJaW9jdGwoZmQsIERSTV9J T0NUTF9JOTE1X0dFVFBBUkFNLCAmZ3AsIHNpemVvZihncCkpOwo+ICsJCW51bV9mZW5jZXMgPSBk cm1fZ2V0X3BhcmFtKGZkLCBJOTE1X1BBUkFNX05VTV9GRU5DRVNfQVZBSUwpOwoKWW91J3ZlIGxv c3QgdGhlIGFzc3VtcHRpb24gdGhhdCBpZiB0aGUga2VybmVsIGRvZXNuJ3Qga25vdyAKSTkxNV9Q QVJBTV9OVU1fRkVOQ0VTX0FWQUlMIG51bV9mZW5jZXMgc3RheXMgMC4KCj4gICAJCWVycm5vID0g MDsKPiAgIAl9Cj4gICAKPiBAQCAtMTEwOSwxNCArMTA4MSw4IEBAIGJvb2wgZ2VtX2hhc19sbGMo aW50IGZkKQo+ICAgCXN0YXRpYyBpbnQgaGFzX2xsYyA9IC0xOwo+ICAgCj4gICAJaWYgKGhhc19s bGMgPCAwKSB7Cj4gLQkJc3RydWN0IGRybV9pOTE1X2dldHBhcmFtIGdwOwo+IC0KPiAtCQltZW1z ZXQoJmdwLCAwLCBzaXplb2YoZ3ApKTsKPiAtCQlncC5wYXJhbSA9IEk5MTVfUEFSQU1fSEFTX0xM QzsKPiAtCQlncC52YWx1ZSA9ICZoYXNfbGxjOwo+IC0KPiAgIAkJaGFzX2xsYyA9IDA7Cj4gLQkJ aW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFVFBBUkFNLCAmZ3AsIHNpemVvZihncCkpOwo+ICsJ CWhhc19sbGMgPSBkcm1fZ2V0X3BhcmFtKGZkLCBJOTE1X1BBUkFNX0hBU19MTEMpOwoKc2FtZSBh cyBhYm92ZS4gU2luY2UgdGhpcyBpcyBhIGJvb2xlYW4sIHdpdGggdGhlIHdyYXBwZXIgSSd2ZSBz dWdnZXN0ZWQgCmluIHRoZSBvdGhlciBwYXRjaCB0aGlzIGNvdWxkIGJlY29tZToKCgloYXNfbGxj ID0gaTkxNV9oYXNfZmVhdHVyZShmZCwgSTkxNV9QQVJBTV9IQVNfTExDKTsKCldoaWNoIHNob3Vs ZCBzZXQgaGFzX2xsYyB0byAwIG9uIGlvY3RsIGZhaWx1cmUKCj4gICAJCWVycm5vID0gMDsKPiAg IAl9Cj4gICAKPiBAQCAtMTM2NiwxNCArMTMzMiw4IEBAIGJvb2wgZ2VtX2hhc19zb2Z0cGluKGlu dCBmZCkKPiAgIAlzdGF0aWMgaW50IGhhc19zb2Z0cGluID0gLTE7Cj4gICAKPiAgIAlpZiAoaGFz X3NvZnRwaW4gPCAwKSB7Cj4gLQkJc3RydWN0IGRybV9pOTE1X2dldHBhcmFtIGdwOwo+IC0KPiAt CQltZW1zZXQoJmdwLCAwLCBzaXplb2YoZ3ApKTsKPiAtCQlncC5wYXJhbSA9IEk5MTVfUEFSQU1f SEFTX0VYRUNfU09GVFBJTjsKPiAtCQlncC52YWx1ZSA9ICZoYXNfc29mdHBpbjsKPiAtCj4gICAJ CWhhc19zb2Z0cGluID0gMDsKPiAtCQlpb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfR0VUUEFSQU0s ICZncCwgc2l6ZW9mKGdwKSk7Cj4gKwkJaGFzX3NvZnRwaW4gPSBkcm1fZ2V0X3BhcmFtKGZkLCBJ OTE1X1BBUkFNX0hBU19FWEVDX1NPRlRQSU4pOwoKc2FtZSBhcyBhYm92ZQoKPiAgIAkJZXJybm8g PSAwOwo+ICAgCX0KPiAgIAo+IEBAIC0xMzk0LDE0ICsxMzU0LDggQEAgYm9vbCBnZW1faGFzX2V4 ZWNfZmVuY2UoaW50IGZkKQo+ICAgCXN0YXRpYyBpbnQgaGFzX2V4ZWNfZmVuY2UgPSAtMTsKPiAg IAo+ICAgCWlmIChoYXNfZXhlY19mZW5jZSA8IDApIHsKPiAtCQlzdHJ1Y3QgZHJtX2k5MTVfZ2V0 cGFyYW0gZ3A7Cj4gLQo+IC0JCW1lbXNldCgmZ3AsIDAsIHNpemVvZihncCkpOwo+IC0JCWdwLnBh cmFtID0gSTkxNV9QQVJBTV9IQVNfRVhFQ19GRU5DRTsKPiAtCQlncC52YWx1ZSA9ICZoYXNfZXhl Y19mZW5jZTsKPiAtCj4gICAJCWhhc19leGVjX2ZlbmNlID0gMDsKPiAtCQlpb2N0bChmZCwgRFJN X0lPQ1RMX0k5MTVfR0VUUEFSQU0sICZncCwgc2l6ZW9mKGdwKSk7Cj4gKwkJaGFzX2V4ZWNfZmVu Y2UgPSBkcm1fZ2V0X3BhcmFtKGZkLCBJOTE1X1BBUkFNX0hBU19FWEVDX0ZFTkNFKTsKClNhbWUg YWdhaW4uCgpEYW5pZWxlCgo+ICAgCQllcnJubyA9IDA7Cj4gICAJfQo+ICAgCj4gCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBs aXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=