From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oded Gabbay Subject: Re: [PATCH 08/19] drm/amdkfd: Fix goto usage Date: Sat, 12 Aug 2017 16:21:24 +0300 Message-ID: References: <1502488589-30272-1-git-send-email-Felix.Kuehling@amd.com> <1502488589-30272-9-git-send-email-Felix.Kuehling@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1502488589-30272-9-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Felix Kuehling Cc: Kent Russell , amd-gfx list T24gU2F0LCBBdWcgMTIsIDIwMTcgYXQgMTI6NTYgQU0sIEZlbGl4IEt1ZWhsaW5nIDxGZWxpeC5L dWVobGluZ0BhbWQuY29tPiB3cm90ZToKPiBGcm9tOiBLZW50IFJ1c3NlbGwgPGtlbnQucnVzc2Vs bEBhbWQuY29tPgo+Cj4gUmVtb3ZlIGdvdG9zIHRoYXQgZG8gbm90IGZlYXR1cmUgYW55IGNvbW1v biBjbGVhbnVwLCBhbmQgdXNlIGdvdG9zCj4gaW5zdGVhZCBvZiByZXBlYXRpbmcgY2xlYW51cCBj b21tYW5kcy4KPgo+IEFjY29yZGluZyB0byBrZXJuZWwub3JnOiAiVGhlIGdvdG8gc3RhdGVtZW50 IGNvbWVzIGluIGhhbmR5IHdoZW4gYQo+IGZ1bmN0aW9uIGV4aXRzIGZyb20gbXVsdGlwbGUgbG9j YXRpb25zIGFuZCBzb21lIGNvbW1vbiB3b3JrIHN1Y2ggYXMKPiBjbGVhbnVwIGhhcyB0byBiZSBk b25lLiBJZiB0aGVyZSBpcyBubyBjbGVhbnVwIG5lZWRlZCB0aGVuIGp1c3QgcmV0dXJuCj4gZGly ZWN0bHkuIgo+Cj4gU2lnbmVkLW9mZi1ieTogS2VudCBSdXNzZWxsIDxrZW50LnJ1c3NlbGxAYW1k LmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBGZWxpeCBLdWVobGluZyA8RmVsaXguS3VlaGxpbmdAYW1k LmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2NoYXJkZXYuYyAg ICAgICAgICAgfCAgMTUgKy0tCj4gIC4uLi9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9x dWV1ZV9tYW5hZ2VyLmMgIHwgMTAyICsrKysrKysrKystLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGtmZC9rZmRfbW9kdWxlLmMgICAgICAgICAgICB8ICAgMyArLQo+ICBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcGFja2V0X21hbmFnZXIuYyAgICB8ICAxNCArLS0K PiAgLi4uL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJvY2Vzc19xdWV1ZV9tYW5hZ2VyLmMgfCAg MTQgKy0tCj4gIDUgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwgODMgZGVsZXRpb25z KC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2NoYXJk ZXYuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9jaGFyZGV2LmMKPiBpbmRleCBj MjI0MDFlLi43ZDc4MTE5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2Zk L2tmZF9jaGFyZGV2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfY2hh cmRldi5jCj4gQEAgLTQ2MCw5ICs0NjAsOCBAQCBzdGF0aWMgaW50IGtmZF9pb2N0bF9kYmdfcmVn aXN0ZXIoc3RydWN0IGZpbGUgKmZpbGVwLAo+ICAgICAgICAgICovCj4gICAgICAgICBwZGQgPSBr ZmRfYmluZF9wcm9jZXNzX3RvX2RldmljZShkZXYsIHApOwo+ICAgICAgICAgaWYgKElTX0VSUihw ZGQpKSB7Cj4gLSAgICAgICAgICAgICAgIG11dGV4X3VubG9jayhrZmRfZ2V0X2RiZ21ncl9tdXRl eCgpKTsKPiAtICAgICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZwLT5tdXRleCk7Cj4gLSAgICAg ICAgICAgICAgIHJldHVybiBQVFJfRVJSKHBkZCk7Cj4gKyAgICAgICAgICAgICAgIHN0YXR1cyA9 IFBUUl9FUlIocGRkKTsKPiArICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gICAgICAgICB9Cj4K PiAgICAgICAgIGlmICghZGV2LT5kYmdtZ3IpIHsKPiBAQCAtNDgwLDYgKzQ3OSw3IEBAIHN0YXRp YyBpbnQga2ZkX2lvY3RsX2RiZ19yZWdpc3RlcihzdHJ1Y3QgZmlsZSAqZmlsZXAsCj4gICAgICAg ICAgICAgICAgIHN0YXR1cyA9IC1FSU5WQUw7Cj4gICAgICAgICB9Cj4KPiArb3V0Ogo+ICAgICAg ICAgbXV0ZXhfdW5sb2NrKGtmZF9nZXRfZGJnbWdyX211dGV4KCkpOwo+ICAgICAgICAgbXV0ZXhf dW5sb2NrKCZwLT5tdXRleCk7Cj4KPiBAQCAtNTgwLDggKzU4MCw4IEBAIHN0YXRpYyBpbnQga2Zk X2lvY3RsX2RiZ19hZGRyZXNzX3dhdGNoKHN0cnVjdCBmaWxlICpmaWxlcCwKPiAgICAgICAgIGFy Z3NfaWR4ICs9IHNpemVvZihhd19pbmZvLndhdGNoX2FkZHJlc3MpICogYXdfaW5mby5udW1fd2F0 Y2hfcG9pbnRzOwo+Cj4gICAgICAgICBpZiAoYXJnc19pZHggPj0gYXJncy0+YnVmX3NpemVfaW5f Ynl0ZXMgLSBzaXplb2YoKmFyZ3MpKSB7Cj4gLSAgICAgICAgICAgICAgIGtmcmVlKGFyZ3NfYnVm Zik7Cj4gLSAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ICsgICAgICAgICAgICAgICBz dGF0dXMgPSAtRUlOVkFMOwo+ICsgICAgICAgICAgICAgICBnb3RvIG91dDsKPiAgICAgICAgIH0K Pgo+ICAgICAgICAgd2F0Y2hfbWFza192YWx1ZSA9ICh1aW50NjRfdCkgYXJnc19idWZmW2FyZ3Nf aWR4XTsKPiBAQCAtNjA0LDggKzYwNCw4IEBAIHN0YXRpYyBpbnQga2ZkX2lvY3RsX2RiZ19hZGRy ZXNzX3dhdGNoKHN0cnVjdCBmaWxlICpmaWxlcCwKPiAgICAgICAgIH0KPgo+ICAgICAgICAgaWYg KGFyZ3NfaWR4ID49IGFyZ3MtPmJ1Zl9zaXplX2luX2J5dGVzIC0gc2l6ZW9mKGFyZ3MpKSB7Cj4g LSAgICAgICAgICAgICAgIGtmcmVlKGFyZ3NfYnVmZik7Cj4gLSAgICAgICAgICAgICAgIHJldHVy biAtRUlOVkFMOwo+ICsgICAgICAgICAgICAgICBzdGF0dXMgPSAtRUlOVkFMOwo+ICsgICAgICAg ICAgICAgICBnb3RvIG91dDsKPiAgICAgICAgIH0KPgo+ICAgICAgICAgLyogQ3VycmVudGx5IEhT QSBFdmVudCBpcyBub3Qgc3VwcG9ydGVkIGZvciBEQkcgKi8KPiBAQCAtNjE3LDYgKzYxNyw3IEBA IHN0YXRpYyBpbnQga2ZkX2lvY3RsX2RiZ19hZGRyZXNzX3dhdGNoKHN0cnVjdCBmaWxlICpmaWxl cCwKPgo+ICAgICAgICAgbXV0ZXhfdW5sb2NrKGtmZF9nZXRfZGJnbWdyX211dGV4KCkpOwo+Cj4g K291dDoKPiAgICAgICAgIGtmcmVlKGFyZ3NfYnVmZik7Cj4KPiAgICAgICAgIHJldHVybiBzdGF0 dXM7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2Vf cXVldWVfbWFuYWdlci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9x dWV1ZV9tYW5hZ2VyLmMKPiBpbmRleCBkZjkzNTMxLi4yMDAzYTdlIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdlci5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyLmMK PiBAQCAtMTUwLDcgKzE1MCw3IEBAIHN0YXRpYyBpbnQgY3JlYXRlX3F1ZXVlX25vY3BzY2goc3Ry dWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgcWNtX3Byb2Nlc3NfZGV2aWNlICpxcGQsCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQgKmFsbG9jYXRlZF92bWlkKQo+ICB7Cj4gLSAgICAgICBpbnQg cmV0dmFsOwo+ICsgICAgICAgaW50IHJldHZhbCA9IDA7ClRoaXMgaXMgcmVkdW5kYW50LiByZXR2 YWwgd2lsbCAqYWx3YXlzKiBiZSBpbml0aWFsaXplZCBieSBjYWxsaW5nCmNyZWF0ZV8qX3F1ZXVl X25vY3BzY2goKSBmdW5jdGlvbiBsYXRlci4KCj4KPiAgICAgICAgIEJVR19PTighZHFtIHx8ICFx IHx8ICFxcGQgfHwgIWFsbG9jYXRlZF92bWlkKTsKPgo+IEBAIC0xNjEsMjMgKzE2MSwyMSBAQCBz dGF0aWMgaW50IGNyZWF0ZV9xdWV1ZV9ub2Nwc2NoKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdl ciAqZHFtLAo+ICAgICAgICAgaWYgKGRxbS0+dG90YWxfcXVldWVfY291bnQgPj0gbWF4X251bV9v Zl9xdWV1ZXNfcGVyX2RldmljZSkgewo+ICAgICAgICAgICAgICAgICBwcl93YXJuKCJDYW4ndCBj cmVhdGUgbmV3IHVzZXJtb2RlIHF1ZXVlIGJlY2F1c2UgJWQgcXVldWVzIHdlcmUgYWxyZWFkeSBj cmVhdGVkXG4iLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHFtLT50b3RhbF9x dWV1ZV9jb3VudCk7Cj4gLSAgICAgICAgICAgICAgIG11dGV4X3VubG9jaygmZHFtLT5sb2NrKTsK PiAtICAgICAgICAgICAgICAgcmV0dXJuIC1FUEVSTTsKPiArICAgICAgICAgICAgICAgcmV0dmFs ID0gLUVQRVJNOwo+ICsgICAgICAgICAgICAgICBnb3RvIG91dF91bmxvY2s7Cj4gICAgICAgICB9 Cj4KPiAgICAgICAgIGlmIChsaXN0X2VtcHR5KCZxcGQtPnF1ZXVlc19saXN0KSkgewo+ICAgICAg ICAgICAgICAgICByZXR2YWwgPSBhbGxvY2F0ZV92bWlkKGRxbSwgcXBkLCBxKTsKPiAtICAgICAg ICAgICAgICAgaWYgKHJldHZhbCkgewo+IC0gICAgICAgICAgICAgICAgICAgICAgIG11dGV4X3Vu bG9jaygmZHFtLT5sb2NrKTsKPiAtICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0dmFs Owo+IC0gICAgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgICAgIGlmIChyZXR2YWwpCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgZ290byBvdXRfdW5sb2NrOwo+ICAgICAgICAgfQo+ICAgICAg ICAgKmFsbG9jYXRlZF92bWlkID0gcXBkLT52bWlkOwo+ICAgICAgICAgcS0+cHJvcGVydGllcy52 bWlkID0gcXBkLT52bWlkOwo+Cj4gICAgICAgICBpZiAocS0+cHJvcGVydGllcy50eXBlID09IEtG RF9RVUVVRV9UWVBFX0NPTVBVVEUpCj4gICAgICAgICAgICAgICAgIHJldHZhbCA9IGNyZWF0ZV9j b21wdXRlX3F1ZXVlX25vY3BzY2goZHFtLCBxLCBxcGQpOwo+IC0gICAgICAgaWYgKHEtPnByb3Bl cnRpZXMudHlwZSA9PSBLRkRfUVVFVUVfVFlQRV9TRE1BKQo+ICsgICAgICAgZWxzZSBpZiAocS0+ cHJvcGVydGllcy50eXBlID09IEtGRF9RVUVVRV9UWVBFX1NETUEpCj4gICAgICAgICAgICAgICAg IHJldHZhbCA9IGNyZWF0ZV9zZG1hX3F1ZXVlX25vY3BzY2goZHFtLCBxLCBxcGQpOwpKdXN0IGZv ciBjb21wbGV0ZW5lc3MgKGFsdGhvdWdoIGl0IHNob3VsZCBuZXZlciBvY2N1cikgLCBJIHRoaW5r IHdlIHNob3VsZCBhZGQgOgoKZWxzZQogICAgICByZXR2YWwgPSAtRUlOVkFMOwoKPgo+ICAgICAg ICAgaWYgKHJldHZhbCkgewo+IEBAIC0xODUsOCArMTgzLDcgQEAgc3RhdGljIGludCBjcmVhdGVf cXVldWVfbm9jcHNjaChzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwKPiAgICAgICAg ICAgICAgICAgICAgICAgICBkZWFsbG9jYXRlX3ZtaWQoZHFtLCBxcGQsIHEpOwo+ICAgICAgICAg ICAgICAgICAgICAgICAgICphbGxvY2F0ZWRfdm1pZCA9IDA7Cj4gICAgICAgICAgICAgICAgIH0K PiAtICAgICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZkcW0tPmxvY2spOwo+IC0gICAgICAgICAg ICAgICByZXR1cm4gcmV0dmFsOwo+ICsgICAgICAgICAgICAgICBnb3RvIG91dF91bmxvY2s7Cj4g ICAgICAgICB9Cj4KPiAgICAgICAgIGxpc3RfYWRkKCZxLT5saXN0LCAmcXBkLT5xdWV1ZXNfbGlz dCk7Cj4gQEAgLTIwNCw4ICsyMDEsOSBAQCBzdGF0aWMgaW50IGNyZWF0ZV9xdWV1ZV9ub2Nwc2No KHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLAo+ICAgICAgICAgcHJfZGVidWcoIlRv dGFsIG9mICVkIHF1ZXVlcyBhcmUgYWNjb3VudGFibGUgc28gZmFyXG4iLAo+ICAgICAgICAgICAg ICAgICAgICAgICAgIGRxbS0+dG90YWxfcXVldWVfY291bnQpOwo+Cj4gK291dF91bmxvY2s6Cj4g ICAgICAgICBtdXRleF91bmxvY2soJmRxbS0+bG9jayk7Cj4gLSAgICAgICByZXR1cm4gMDsKPiAr ICAgICAgIHJldHVybiByZXR2YWw7Cj4gIH0KPgo+ICBzdGF0aWMgaW50IGFsbG9jYXRlX2hxZChz dHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwgc3RydWN0IHF1ZXVlICpxKQo+IEBAIC0y NzEsMjMgKzI2OSwyNSBAQCBzdGF0aWMgaW50IGNyZWF0ZV9jb21wdXRlX3F1ZXVlX25vY3BzY2go c3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sCj4KPiAgICAgICAgIHJldHZhbCA9IG1x ZC0+aW5pdF9tcWQobXFkLCAmcS0+bXFkLCAmcS0+bXFkX21lbV9vYmosCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmcS0+Z2FydF9tcWRfYWRkciwgJnEtPnByb3BlcnRpZXMpOwo+ IC0gICAgICAgaWYgKHJldHZhbCkgewo+IC0gICAgICAgICAgICAgICBkZWFsbG9jYXRlX2hxZChk cW0sIHEpOwo+IC0gICAgICAgICAgICAgICByZXR1cm4gcmV0dmFsOwo+IC0gICAgICAgfQo+ICsg ICAgICAgaWYgKHJldHZhbCkKPiArICAgICAgICAgICAgICAgZ290byBvdXRfZGVhbGxvY2F0ZV9o cWQ7Cj4KPiAgICAgICAgIHByX2RlYnVnKCJMb2FkaW5nIG1xZCB0byBocWQgb24gcGlwZSAlZCwg cXVldWUgJWRcbiIsCj4gICAgICAgICAgICAgICAgICAgICAgICAgcS0+cGlwZSwgcS0+cXVldWUp Owo+Cj4gICAgICAgICByZXR2YWwgPSBtcWQtPmxvYWRfbXFkKG1xZCwgcS0+bXFkLCBxLT5waXBl LAo+ICAgICAgICAgICAgICAgICAgICAgICAgIHEtPnF1ZXVlLCAodWludDMyX3QgX191c2VyICop IHEtPnByb3BlcnRpZXMud3JpdGVfcHRyKTsKPiAtICAgICAgIGlmIChyZXR2YWwpIHsKPiAtICAg ICAgICAgICAgICAgZGVhbGxvY2F0ZV9ocWQoZHFtLCBxKTsKPiAtICAgICAgICAgICAgICAgbXFk LT51bmluaXRfbXFkKG1xZCwgcS0+bXFkLCBxLT5tcWRfbWVtX29iaik7Cj4gLSAgICAgICAgICAg ICAgIHJldHVybiByZXR2YWw7Cj4gLSAgICAgICB9Cj4gKyAgICAgICBpZiAocmV0dmFsKQo+ICsg ICAgICAgICAgICAgICBnb3RvIG91dF91bmluaXRfbXFkOwo+Cj4gICAgICAgICByZXR1cm4gMDsK PiArCj4gK291dF91bmluaXRfbXFkOgo+ICsgICAgICAgbXFkLT51bmluaXRfbXFkKG1xZCwgcS0+ bXFkLCBxLT5tcWRfbWVtX29iaik7Cj4gK291dF9kZWFsbG9jYXRlX2hxZDoKPiArICAgICAgIGRl YWxsb2NhdGVfaHFkKGRxbSwgcSk7Cj4gKwo+ICsgICAgICAgcmV0dXJuIHJldHZhbDsKPiAgfQo+ Cj4gIHN0YXRpYyBpbnQgZGVzdHJveV9xdWV1ZV9ub2Nwc2NoKHN0cnVjdCBkZXZpY2VfcXVldWVf bWFuYWdlciAqZHFtLAo+IEBAIC0zNjYsOCArMzY2LDggQEAgc3RhdGljIGludCB1cGRhdGVfcXVl dWUoc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sIHN0cnVjdCBxdWV1ZSAqcSkKPiAg ICAgICAgIG1xZCA9IGRxbS0+b3BzLmdldF9tcWRfbWFuYWdlcihkcW0sCj4gICAgICAgICAgICAg ICAgICAgICAgICAgZ2V0X21xZF90eXBlX2Zyb21fcXVldWVfdHlwZShxLT5wcm9wZXJ0aWVzLnR5 cGUpKTsKPiAgICAgICAgIGlmICghbXFkKSB7Cj4gLSAgICAgICAgICAgICAgIG11dGV4X3VubG9j aygmZHFtLT5sb2NrKTsKPiAtICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gKyAgICAg ICAgICAgICAgIHJldHZhbCA9IC1FTk9NRU07Cj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0X3Vu bG9jazsKPiAgICAgICAgIH0KPgo+ICAgICAgICAgaWYgKHEtPnByb3BlcnRpZXMuaXNfYWN0aXZl KQo+IEBAIC0zODcsNiArMzg3LDcgQEAgc3RhdGljIGludCB1cGRhdGVfcXVldWUoc3RydWN0IGRl dmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sIHN0cnVjdCBxdWV1ZSAqcSkKPiAgICAgICAgIGlmIChz Y2hlZF9wb2xpY3kgIT0gS0ZEX1NDSEVEX1BPTElDWV9OT19IV1MpCj4gICAgICAgICAgICAgICAg IHJldHZhbCA9IGV4ZWN1dGVfcXVldWVzX2Nwc2NoKGRxbSwgZmFsc2UpOwo+Cj4gK291dF91bmxv Y2s6Cj4gICAgICAgICBtdXRleF91bmxvY2soJmRxbS0+bG9jayk7Cj4gICAgICAgICByZXR1cm4g cmV0dmFsOwo+ICB9Cj4gQEAgLTUwMCwxNiArNTAxLDE1IEBAIHN0YXRpYyBpbnQgaW5pdGlhbGl6 ZV9ub2Nwc2NoKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtKQo+Cj4gICAgICAgICBw cl9kZWJ1ZygibnVtIG9mIHBpcGVzOiAlZFxuIiwgZ2V0X3BpcGVzX3Blcl9tZWMoZHFtKSk7Cj4K PiArICAgICAgIGRxbS0+YWxsb2NhdGVkX3F1ZXVlcyA9IGtjYWxsb2MoZ2V0X3BpcGVzX3Blcl9t ZWMoZHFtKSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9m KHVuc2lnbmVkIGludCksIEdGUF9LRVJORUwpOwo+ICsgICAgICAgaWYgKCFkcW0tPmFsbG9jYXRl ZF9xdWV1ZXMpCj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ICsKPiAgICAgICAg IG11dGV4X2luaXQoJmRxbS0+bG9jayk7Cj4gICAgICAgICBJTklUX0xJU1RfSEVBRCgmZHFtLT5x dWV1ZXMpOwo+ICAgICAgICAgZHFtLT5xdWV1ZV9jb3VudCA9IGRxbS0+bmV4dF9waXBlX3RvX2Fs bG9jYXRlID0gMDsKPiAgICAgICAgIGRxbS0+c2RtYV9xdWV1ZV9jb3VudCA9IDA7Cj4gLSAgICAg ICBkcW0tPmFsbG9jYXRlZF9xdWV1ZXMgPSBrY2FsbG9jKGdldF9waXBlc19wZXJfbWVjKGRxbSks Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih1bnNpZ25l ZCBpbnQpLCBHRlBfS0VSTkVMKTsKPiAtICAgICAgIGlmICghZHFtLT5hbGxvY2F0ZWRfcXVldWVz KSB7Cj4gLSAgICAgICAgICAgICAgIG11dGV4X2Rlc3Ryb3koJmRxbS0+bG9jayk7Cj4gLSAgICAg ICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+IC0gICAgICAgfQo+Cj4gICAgICAgICBmb3IgKHBp cGUgPSAwOyBwaXBlIDwgZ2V0X3BpcGVzX3Blcl9tZWMoZHFtKTsgcGlwZSsrKSB7Cj4gICAgICAg ICAgICAgICAgIGludCBwaXBlX29mZnNldCA9IHBpcGUgKiBnZXRfcXVldWVzX3Blcl9waXBlKGRx bSk7Cj4gQEAgLTYwMiwyMCArNjAyLDIyIEBAIHN0YXRpYyBpbnQgY3JlYXRlX3NkbWFfcXVldWVf bm9jcHNjaChzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwKPiAgICAgICAgIGRxbS0+ b3BzX2FzaWNfc3BlY2lmaWMuaW5pdF9zZG1hX3ZtKGRxbSwgcSwgcXBkKTsKPiAgICAgICAgIHJl dHZhbCA9IG1xZC0+aW5pdF9tcWQobXFkLCAmcS0+bXFkLCAmcS0+bXFkX21lbV9vYmosCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcS0+Z2FydF9tcWRfYWRkciwgJnEtPnByb3Bl cnRpZXMpOwo+IC0gICAgICAgaWYgKHJldHZhbCkgewo+IC0gICAgICAgICAgICAgICBkZWFsbG9j YXRlX3NkbWFfcXVldWUoZHFtLCBxLT5zZG1hX2lkKTsKPiAtICAgICAgICAgICAgICAgcmV0dXJu IHJldHZhbDsKPiAtICAgICAgIH0KPiArICAgICAgIGlmIChyZXR2YWwpCj4gKyAgICAgICAgICAg ICAgIGdvdG8gb3V0X2RlYWxsb2NhdGVfc2RtYV9xdWV1ZTsKPgo+ICAgICAgICAgcmV0dmFsID0g bXFkLT5sb2FkX21xZChtcWQsIHEtPm1xZCwgMCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDAsIE5VTEwpOwo+IC0gICAgICAgaWYgKHJldHZhbCkgewo+IC0gICAgICAgICAgICAg ICBkZWFsbG9jYXRlX3NkbWFfcXVldWUoZHFtLCBxLT5zZG1hX2lkKTsKPiAtICAgICAgICAgICAg ICAgbXFkLT51bmluaXRfbXFkKG1xZCwgcS0+bXFkLCBxLT5tcWRfbWVtX29iaik7Cj4gLSAgICAg ICAgICAgICAgIHJldHVybiByZXR2YWw7Cj4gLSAgICAgICB9Cj4gKyAgICAgICBpZiAocmV0dmFs KQo+ICsgICAgICAgICAgICAgICBnb3RvIG91dF91bmluaXRfbXFkOwo+Cj4gICAgICAgICByZXR1 cm4gMDsKPiArCj4gK291dF91bmluaXRfbXFkOgo+ICsgICAgICAgbXFkLT51bmluaXRfbXFkKG1x ZCwgcS0+bXFkLCBxLT5tcWRfbWVtX29iaik7Cj4gK291dF9kZWFsbG9jYXRlX3NkbWFfcXVldWU6 Cj4gKyAgICAgICBkZWFsbG9jYXRlX3NkbWFfcXVldWUoZHFtLCBxLT5zZG1hX2lkKTsKPiArCj4g KyAgICAgICByZXR1cm4gcmV0dmFsOwo+ICB9Cj4KPiAgLyoKPiBAQCAtNjgxLDEyICs2ODMsOCBA QCBzdGF0aWMgaW50IGluaXRpYWxpemVfY3BzY2goc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2Vy ICpkcW0pCj4gICAgICAgICBkcW0tPmFjdGl2ZV9ydW5saXN0ID0gZmFsc2U7Cj4gICAgICAgICBy ZXR2YWwgPSBkcW0tPm9wc19hc2ljX3NwZWNpZmljLmluaXRpYWxpemUoZHFtKTsKPiAgICAgICAg IGlmIChyZXR2YWwpCj4gLSAgICAgICAgICAgICAgIGdvdG8gZmFpbF9pbml0X3BpcGVsaW5lczsK PiAtCj4gLSAgICAgICByZXR1cm4gMDsKPiArICAgICAgICAgICAgICAgbXV0ZXhfZGVzdHJveSgm ZHFtLT5sb2NrKTsKPgo+IC1mYWlsX2luaXRfcGlwZWxpbmVzOgo+IC0gICAgICAgbXV0ZXhfZGVz dHJveSgmZHFtLT5sb2NrKTsKPiAgICAgICAgIHJldHVybiByZXR2YWw7Cj4gIH0KPgo+IEBAIC04 NDYsOCArODQ0LDggQEAgc3RhdGljIGludCBjcmVhdGVfcXVldWVfY3BzY2goc3RydWN0IGRldmlj ZV9xdWV1ZV9tYW5hZ2VyICpkcW0sIHN0cnVjdCBxdWV1ZSAqcSwKPiAgICAgICAgICAgICAgICAg ICAgICAgICBnZXRfbXFkX3R5cGVfZnJvbV9xdWV1ZV90eXBlKHEtPnByb3BlcnRpZXMudHlwZSkp Owo+Cj4gICAgICAgICBpZiAoIW1xZCkgewo+IC0gICAgICAgICAgICAgICBtdXRleF91bmxvY2so JmRxbS0+bG9jayk7Cj4gLSAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ICsgICAgICAg ICAgICAgICByZXR2YWwgPSAtRU5PTUVNOwo+ICsgICAgICAgICAgICAgICBnb3RvIG91dDsKPiAg ICAgICAgIH0KPgo+ICAgICAgICAgZHFtLT5vcHNfYXNpY19zcGVjaWZpYy5pbml0X3NkbWFfdm0o ZHFtLCBxLCBxcGQpOwo+IEBAIC0xMDk3LDE0ICsxMDk1LDExIEBAIHN0YXRpYyBib29sIHNldF9j YWNoZV9tZW1vcnlfcG9saWN5KHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLAo+ICAg ICAgICAgICAgICAgICB1aW50NjRfdCBiYXNlID0gKHVpbnRwdHJfdClhbHRlcm5hdGVfYXBlcnR1 cmVfYmFzZTsKPiAgICAgICAgICAgICAgICAgdWludDY0X3QgbGltaXQgPSBiYXNlICsgYWx0ZXJu YXRlX2FwZXJ0dXJlX3NpemUgLSAxOwo+Cj4gLSAgICAgICAgICAgICAgIGlmIChsaW1pdCA8PSBi YXNlKQo+IC0gICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+IC0KPiAtICAgICAgICAg ICAgICAgaWYgKChiYXNlICYgQVBFMV9GSVhFRF9CSVRTX01BU0spICE9IDApCj4gLSAgICAgICAg ICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gLQo+IC0gICAgICAgICAgICAgICBpZiAoKGxpbWl0 ICYgQVBFMV9GSVhFRF9CSVRTX01BU0spICE9IEFQRTFfTElNSVRfQUxJR05NRU5UKQo+ICsgICAg ICAgICAgICAgICBpZiAobGltaXQgPD0gYmFzZSB8fCAoYmFzZSAmIEFQRTFfRklYRURfQklUU19N QVNLKSAhPSAwIHx8Cj4gKyAgICAgICAgICAgICAgICAgIChsaW1pdCAmIEFQRTFfRklYRURfQklU U19NQVNLKSAhPSBBUEUxX0xJTUlUX0FMSUdOTUVOVCkgewo+ICsgICAgICAgICAgICAgICAgICAg ICAgIHJldHZhbCA9IGZhbHNlOwo+ICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ ICsgICAgICAgICAgICAgICB9Cj4KPiAgICAgICAgICAgICAgICAgcXBkLT5zaF9tZW1fYXBlMV9i YXNlID0gYmFzZSA+PiAxNjsKPiAgICAgICAgICAgICAgICAgcXBkLT5zaF9tZW1fYXBlMV9saW1p dCA9IGxpbWl0ID4+IDE2Owo+IEBAIC0xMTI1LDEyICsxMTIwLDkgQEAgc3RhdGljIGJvb2wgc2V0 X2NhY2hlX21lbW9yeV9wb2xpY3koc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sCj4g ICAgICAgICAgICAgICAgIHFwZC0+c2hfbWVtX2NvbmZpZywgcXBkLT5zaF9tZW1fYXBlMV9iYXNl LAo+ICAgICAgICAgICAgICAgICBxcGQtPnNoX21lbV9hcGUxX2xpbWl0KTsKPgo+IC0gICAgICAg bXV0ZXhfdW5sb2NrKCZkcW0tPmxvY2spOwo+IC0gICAgICAgcmV0dXJuIHJldHZhbDsKPiAtCj4g IG91dDoKPiAgICAgICAgIG11dGV4X3VubG9jaygmZHFtLT5sb2NrKTsKPiAtICAgICAgIHJldHVy biBmYWxzZTsKPiArICAgICAgIHJldHVybiByZXR2YWw7Cj4gIH0KPgo+ICBzdHJ1Y3QgZGV2aWNl X3F1ZXVlX21hbmFnZXIgKmRldmljZV9xdWV1ZV9tYW5hZ2VyX2luaXQoc3RydWN0IGtmZF9kZXYg KmRldikKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21vZHVs ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21vZHVsZS5jCj4gaW5kZXggODE5 YTQ0Mi4uMGQ3M2JlYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9r ZmRfbW9kdWxlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbW9kdWxl LmMKPiBAQCAtMTA1LDcgKzEwNSw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGtmZF9tb2R1bGVfaW5p dCh2b2lkKQo+Cj4gICAgICAgICBlcnIgPSBrZmRfcGFzaWRfaW5pdCgpOwo+ICAgICAgICAgaWYg KGVyciA8IDApCj4gLSAgICAgICAgICAgICAgIGdvdG8gZXJyX3Bhc2lkOwo+ICsgICAgICAgICAg ICAgICByZXR1cm4gZXJyOwo+Cj4gICAgICAgICBlcnIgPSBrZmRfY2hhcmRldl9pbml0KCk7Cj4g ICAgICAgICBpZiAoZXJyIDwgMCkKPiBAQCAtMTI3LDcgKzEyNyw2IEBAIHN0YXRpYyBpbnQgX19p bml0IGtmZF9tb2R1bGVfaW5pdCh2b2lkKQo+ICAgICAgICAga2ZkX2NoYXJkZXZfZXhpdCgpOwo+ ICBlcnJfaW9jdGw6Cj4gICAgICAgICBrZmRfcGFzaWRfZXhpdCgpOwo+IC1lcnJfcGFzaWQ6Cj4g ICAgICAgICByZXR1cm4gZXJyOwo+ICB9Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRrZmQva2ZkX3BhY2tldF9tYW5hZ2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGtmZC9rZmRfcGFja2V0X21hbmFnZXIuYwo+IGluZGV4IGYzYjhjYzguLmM0MDMwYjMgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3BhY2tldF9tYW5hZ2VyLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcGFja2V0X21hbmFnZXIuYwo+ IEBAIC00NDIsNiArNDQyLDcgQEAgaW50IHBtX3NlbmRfc2V0X3Jlc291cmNlcyhzdHJ1Y3QgcGFj a2V0X21hbmFnZXIgKnBtLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHNjaGVkdWxpbmdfcmVzb3VyY2VzICpyZXMpCj4gIHsKPiAgICAgICAgIHN0cnVjdCBwbTRfc2V0 X3Jlc291cmNlcyAqcGFja2V0Owo+ICsgICAgICAgaW50IHJldHZhbCA9IDA7Cj4KPiAgICAgICAg IEJVR19PTighcG0gfHwgIXJlcyk7Cj4KPiBAQCAtNDUwLDkgKzQ1MSw5IEBAIGludCBwbV9zZW5k X3NldF9yZXNvdXJjZXMoc3RydWN0IHBhY2tldF9tYW5hZ2VyICpwbSwKPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKCpwYWNrZXQpIC8gc2l6ZW9mKHVpbnQz Ml90KSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVk IGludCAqKikmcGFja2V0KTsKPiAgICAgICAgIGlmICghcGFja2V0KSB7Cj4gLSAgICAgICAgICAg ICAgIG11dGV4X3VubG9jaygmcG0tPmxvY2spOwo+ICAgICAgICAgICAgICAgICBwcl9lcnIoIkZh aWxlZCB0byBhbGxvY2F0ZSBidWZmZXIgb24ga2VybmVsIHF1ZXVlXG4iKTsKPiAtICAgICAgICAg ICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gKyAgICAgICAgICAgICAgIHJldHZhbCA9IC1FTk9NRU07 Cj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ICAgICAgICAgfQo+Cj4gICAgICAgICBtZW1z ZXQocGFja2V0LCAwLCBzaXplb2Yoc3RydWN0IHBtNF9zZXRfcmVzb3VyY2VzKSk7Cj4gQEAgLTQ3 NSw5ICs0NzYsMTAgQEAgaW50IHBtX3NlbmRfc2V0X3Jlc291cmNlcyhzdHJ1Y3QgcGFja2V0X21h bmFnZXIgKnBtLAo+Cj4gICAgICAgICBwbS0+cHJpdl9xdWV1ZS0+b3BzLnN1Ym1pdF9wYWNrZXQo cG0tPnByaXZfcXVldWUpOwo+Cj4gK291dDoKPiAgICAgICAgIG11dGV4X3VubG9jaygmcG0tPmxv Y2spOwo+Cj4gLSAgICAgICByZXR1cm4gMDsKPiArICAgICAgIHJldHVybiByZXR2YWw7Cj4gIH0K Pgo+ICBpbnQgcG1fc2VuZF9ydW5saXN0KHN0cnVjdCBwYWNrZXRfbWFuYWdlciAqcG0sIHN0cnVj dCBsaXN0X2hlYWQgKmRxbV9xdWV1ZXMpCj4gQEAgLTU1NSw5ICs1NTcsNiBAQCBpbnQgcG1fc2Vu ZF9xdWVyeV9zdGF0dXMoc3RydWN0IHBhY2tldF9tYW5hZ2VyICpwbSwgdWludDY0X3QgZmVuY2Vf YWRkcmVzcywKPiAgICAgICAgIHBhY2tldC0+ZGF0YV9sbyA9IGxvd2VyXzMyX2JpdHMoKHVpbnQ2 NF90KWZlbmNlX3ZhbHVlKTsKPgo+ICAgICAgICAgcG0tPnByaXZfcXVldWUtPm9wcy5zdWJtaXRf cGFja2V0KHBtLT5wcml2X3F1ZXVlKTsKPiAtICAgICAgIG11dGV4X3VubG9jaygmcG0tPmxvY2sp Owo+IC0KPiAtICAgICAgIHJldHVybiAwOwo+Cj4gIGZhaWxfYWNxdWlyZV9wYWNrZXRfYnVmZmVy Ogo+ICAgICAgICAgbXV0ZXhfdW5sb2NrKCZwbS0+bG9jayk7Cj4gQEAgLTYzOSw5ICs2MzgsNiBA QCBpbnQgcG1fc2VuZF91bm1hcF9xdWV1ZShzdHJ1Y3QgcGFja2V0X21hbmFnZXIgKnBtLCBlbnVt IGtmZF9xdWV1ZV90eXBlIHR5cGUsCj4KPiAgICAgICAgIHBtLT5wcml2X3F1ZXVlLT5vcHMuc3Vi bWl0X3BhY2tldChwbS0+cHJpdl9xdWV1ZSk7Cj4KPiAtICAgICAgIG11dGV4X3VubG9jaygmcG0t PmxvY2spOwo+IC0gICAgICAgcmV0dXJuIDA7Cj4gLQo+ICBlcnJfYWNxdWlyZV9wYWNrZXRfYnVm ZmVyOgo+ICAgICAgICAgbXV0ZXhfdW5sb2NrKCZwbS0+bG9jayk7Cj4gICAgICAgICByZXR1cm4g cmV0dmFsOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJv Y2Vzc19xdWV1ZV9tYW5hZ2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJv Y2Vzc19xdWV1ZV9tYW5hZ2VyLmMKPiBpbmRleCBkNGY4YmFlLi44NDMyZjVmIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wcm9jZXNzX3F1ZXVlX21hbmFnZXIu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wcm9jZXNzX3F1ZXVlX21h bmFnZXIuYwo+IEBAIC0zNSw5ICszNSw4IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHByb2Nlc3Nf cXVldWVfbm9kZSAqZ2V0X3F1ZXVlX2J5X3FpZCgKPiAgICAgICAgIEJVR19PTighcHFtKTsKPgo+ ICAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShwcW4sICZwcW0tPnF1ZXVlcywgcHJvY2Vzc19x dWV1ZV9saXN0KSB7Cj4gLSAgICAgICAgICAgICAgIGlmIChwcW4tPnEgJiYgcHFuLT5xLT5wcm9w ZXJ0aWVzLnF1ZXVlX2lkID09IHFpZCkKPiAtICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g cHFuOwo+IC0gICAgICAgICAgICAgICBpZiAocHFuLT5rcSAmJiBwcW4tPmtxLT5xdWV1ZS0+cHJv cGVydGllcy5xdWV1ZV9pZCA9PSBxaWQpCj4gKyAgICAgICAgICAgICAgIGlmICgocHFuLT5xICYm IHBxbi0+cS0+cHJvcGVydGllcy5xdWV1ZV9pZCA9PSBxaWQpIHx8Cj4gKyAgICAgICAgICAgICAg ICAgICAocHFuLT5rcSAmJiBwcW4tPmtxLT5xdWV1ZS0+cHJvcGVydGllcy5xdWV1ZV9pZCA9PSBx aWQpKQo+ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcW47Cj4gICAgICAgICB9Cj4K PiBAQCAtMTEzLDggKzExMiw2IEBAIHN0YXRpYyBpbnQgY3JlYXRlX2NwX3F1ZXVlKHN0cnVjdCBw cm9jZXNzX3F1ZXVlX21hbmFnZXIgKnBxbSwKPiAgewo+ICAgICAgICAgaW50IHJldHZhbDsKPgo+ IC0gICAgICAgcmV0dmFsID0gMDsKPiAtCj4gICAgICAgICAvKiBEb29yYmVsbCBpbml0aWFsaXpl ZCBpbiB1c2VyIHNwYWNlKi8KPiAgICAgICAgIHFfcHJvcGVydGllcy0+ZG9vcmJlbGxfcHRyID0g TlVMTDsKPgo+IEBAIC0xMjcsNyArMTI0LDcgQEAgc3RhdGljIGludCBjcmVhdGVfY3BfcXVldWUo c3RydWN0IHByb2Nlc3NfcXVldWVfbWFuYWdlciAqcHFtLAo+Cj4gICAgICAgICByZXR2YWwgPSBp bml0X3F1ZXVlKHEsIHFfcHJvcGVydGllcyk7Cj4gICAgICAgICBpZiAocmV0dmFsICE9IDApCj4g LSAgICAgICAgICAgICAgIGdvdG8gZXJyX2luaXRfcXVldWU7Cj4gKyAgICAgICAgICAgICAgIHJl dHVybiByZXR2YWw7Cj4KPiAgICAgICAgICgqcSktPmRldmljZSA9IGRldjsKPiAgICAgICAgICgq cSktPnByb2Nlc3MgPSBwcW0tPnByb2Nlc3M7Cj4gQEAgLTEzNSw5ICsxMzIsNiBAQCBzdGF0aWMg aW50IGNyZWF0ZV9jcF9xdWV1ZShzdHJ1Y3QgcHJvY2Vzc19xdWV1ZV9tYW5hZ2VyICpwcW0sCj4g ICAgICAgICBwcl9kZWJ1ZygiUFFNIEFmdGVyIGluaXQgcXVldWUiKTsKPgo+ICAgICAgICAgcmV0 dXJuIHJldHZhbDsKPiAtCj4gLWVycl9pbml0X3F1ZXVlOgo+IC0gICAgICAgcmV0dXJuIHJldHZh bDsKPiAgfQo+Cj4gIGludCBwcW1fY3JlYXRlX3F1ZXVlKHN0cnVjdCBwcm9jZXNzX3F1ZXVlX21h bmFnZXIgKnBxbSwKPiBAQCAtMTgxLDcgKzE3NSw3IEBAIGludCBwcW1fY3JlYXRlX3F1ZXVlKHN0 cnVjdCBwcm9jZXNzX3F1ZXVlX21hbmFnZXIgKnBxbSwKPiAgICAgICAgICAgICAgICAgbGlzdF9m b3JfZWFjaF9lbnRyeShjdXIsICZwZGQtPnFwZC5xdWV1ZXNfbGlzdCwgbGlzdCkKPiAgICAgICAg ICAgICAgICAgICAgICAgICBudW1fcXVldWVzKys7Cj4gICAgICAgICAgICAgICAgIGlmIChudW1f cXVldWVzID49IGRldi0+ZGV2aWNlX2luZm8tPm1heF9ub19vZl9ocWQvMikKPiAtICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gKC1FTk9TUEMpOwo+ICsgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiAtRU5PU1BDOwo+ICAgICAgICAgfQo+Cj4gICAgICAgICByZXR2YWwgPSBmaW5kX2F2 YWlsYWJsZV9xdWV1ZV9zbG90KHBxbSwgcWlkKTsKPiAtLQo+IDIuNy40Cj4KCkV4Y2VsbGVudCBj bGVhbnVwIQpXaXRoIHRoZSBhYm92ZSBjb21tZW50cyBmaXhlZCwgdGhpcyBwYXRjaCBpczoKUmV2 aWV3ZWQtYnk6IE9kZWQgR2FiYmF5IDxvZGVkLmdhYmJheUBnbWFpbC5jb20+Cl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0 CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=