From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 05/26] drm/dp_mst: Add sideband down request tracing + selftests Date: Tue, 13 Aug 2019 16:50:48 +0200 Message-ID: <20190813145048.GV7444@phenom.ffwll.local> References: <20190718014329.8107-1-lyude@redhat.com> <20190718014329.8107-6-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x543.google.com (mail-ed1-x543.google.com [IPv6:2a00:1450:4864:20::543]) by gabe.freedesktop.org (Postfix) with ESMTPS id 319336E169 for ; Tue, 13 Aug 2019 14:50:53 +0000 (UTC) Received: by mail-ed1-x543.google.com with SMTP id x19so101247169eda.12 for ; Tue, 13 Aug 2019 07:50:53 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20190718014329.8107-6-lyude@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Lyude Paul Cc: Thomas Hellstrom , Maxime Ripard , Sean Paul , Alexandru Gheorghe , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, David Airlie , Juston Li , Deepak Rawat , Harry Wentland List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBKdWwgMTcsIDIwMTkgYXQgMDk6NDI6MjhQTSAtMDQwMCwgTHl1ZGUgUGF1bCB3cm90 ZToKPiBVbmZvcnR1bmF0ZWx5IHRoZSBEUCBNU1QgaGVscGVycyBkbyBub3QgaGF2ZSBtdWNoIGlu IHRoZSB3YXkgb2YKPiBkZWJ1Z2dpbmcgdXRpbGl0aWVzLiBTbywgbGV0J3MgYWRkIHNvbWUhCj4g Cj4gVGhpcyBhZGRzIGJhc2ljIGRlYnVnZ2luZyBvdXRwdXQgZm9yIGRvd24gc2lkZWJhbmQgcmVx dWVzdHMgdGhhdCB3ZSBzZW5kCj4gZnJvbSB0aGUgZHJpdmVyLCBzbyB0aGF0IHdlIGNhbiBhY3R1 YWxseSBkaXNjZXJuIHdoYXQncyBoYXBwZW5pbmcgd2hlbgo+IHNpZGViYW5kIHJlcXVlc3RzIHRp bWVvdXQuIE5vdGUgdGhhdCB3aXRoIHRoaXMgY29tbWl0LCB3ZSdsbCBiZSBkdW1waW5nCj4gb3V0 IHNpZGViYW5kIHJlcXVlc3RzIHVuZGVyIGJvdGggb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z Ogo+IAo+IC0gV2hlbiB0aGUgdXNlciBoYXMgZW5hYmxlZCBEUk1fVVRfRFAgb3V0cHV0LCBvZiBj b3Vyc2UuCj4gLSBXaGVuIHRoZSB1c2VyIGhhcyBlbmFibGVkIERSTV9VVF9LTVMgb3IgRFJNX1VU X0RQLCBhbmQgYSBzaWRlYmFuZAo+ICAgcmVxdWVzdCBoYXMgZmFpbGVkIGluIHNvbWUgd2F5LiBU aGlzIHdpbGwgYWxsb3cgZm9yIGRldmVsb3BlcnMgdG8gZ2V0Cj4gICBhIGJhc2ljIGlkZWEgb2Yg d2hhdCdzIGFjdHVhbGx5IGhhcHBlbmluZyB3aXRoIGZhaWxlZCBtb2Rlc2V0cyBvbiBNU1QsCj4g ICB3aXRob3V0IG5lZWRpbmcgdG8gaGF2ZSBEUk1fVVRfRFAgZXhwbGljaXRseSBlbmFibGVkLgo+ IAo+IFNpbmNlIHRoZXJlIHdhc24ndCByZWFsbHkgYSBnb29kIHdheSBvZiB0ZXN0aW5nIHRoYXQg YW55IG9mIHRoaXMgd29ya2VkLAo+IEkgZW5kZWQgdXAgd3JpdGluZyBzaW1wbGUgc2VsZnRlc3Rz IHRoYXQgbGlnaHRseSB0ZXN0IHNpZGViYW5kIG1lc3NhZ2UKPiBlbmNvZGluZyBhbmQgZGVjb2Rp bmcgYXMgd2VsbC4gRW5qb3khCj4gCj4gQ2M6IEp1c3RvbiBMaSA8anVzdG9uLmxpQGludGVsLmNv bT4KPiBDYzogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgo+IENjOiBWaWxsZSBTeXJq w6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IENjOiBIYXJyeSBXZW50bGFu ZCA8aHdlbnRsYW5AYW1kLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBMeXVkZSBQYXVsIDxseXVkZUBy ZWRoYXQuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5j ICAgICAgICAgfCAzMDggKysrKysrKysrKysrKysrKystCj4gIC4uLi9ncHUvZHJtL2RybV9kcF9t c3RfdG9wb2xvZ3lfaW50ZXJuYWwuaCAgICB8ICAyNCArKwo+ICAuLi4vZ3B1L2RybS9zZWxmdGVz dHMvZHJtX21vZGVzZXRfc2VsZnRlc3RzLmggfCAgIDEgKwo+ICAuLi4vZHJtL3NlbGZ0ZXN0cy90 ZXN0LWRybV9kcF9tc3RfaGVscGVyLmMgICAgfCAyMTIgKysrKysrKysrKysrCj4gIC4uLi9kcm0v c2VsZnRlc3RzL3Rlc3QtZHJtX21vZGVzZXRfY29tbW9uLmggICB8ICAgMSArCj4gIGluY2x1ZGUv ZHJtL2RybV9kcF9tc3RfaGVscGVyLmggICAgICAgICAgICAgICB8ICAgMiArLQo+ICA2IGZpbGVz IGNoYW5nZWQsIDU0MyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3lfaW50ZXJuYWwuaAo+ IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYwo+IGluZGV4IDllMzgyMTE3ODk2 ZC4uZGVmYzVlMDlmYjlhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0 X3RvcG9sb2d5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90b3BvbG9neS5j Cj4gQEAgLTM2LDYgKzM2LDggQEAKPiAgI2luY2x1ZGUgPGRybS9kcm1fcHJpbnQuaD4KPiAgI2lu Y2x1ZGUgPGRybS9kcm1fcHJvYmVfaGVscGVyLmg+Cj4gIAo+ICsjaW5jbHVkZSAiZHJtX2RwX21z dF90b3BvbG9neV9pbnRlcm5hbC5oIgo+ICsKPiAgLyoqCj4gICAqIERPQzogZHAgbXN0IGhlbHBl cgo+ICAgKgo+IEBAIC02OCw2ICs3MCw4IEBAIHN0YXRpYyBpbnQgZHJtX2RwX21zdF9yZWdpc3Rl cl9pMmNfYnVzKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgpOwo+ICBzdGF0aWMgdm9pZCBkcm1fZHBf bXN0X3VucmVnaXN0ZXJfaTJjX2J1cyhzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4KTsKPiAgc3RhdGlj IHZvaWQgZHJtX2RwX21zdF9raWNrX3R4KHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAq bWdyKTsKPiAgCj4gKyNkZWZpbmUgREJHX1BSRUZJWCAiW2RwX21zdF0iCj4gKwo+ICAjZGVmaW5l IERQX1NUUih4KSBbRFBfICMjIHhdID0gI3gKPiAgCj4gIHN0YXRpYyBjb25zdCBjaGFyICpkcm1f ZHBfbXN0X3JlcV90eXBlX3N0cih1OCByZXFfdHlwZSkKPiBAQCAtMTI0LDYgKzEyOCw0MyBAQCBz dGF0aWMgY29uc3QgY2hhciAqZHJtX2RwX21zdF9uYWtfcmVhc29uX3N0cih1OCBuYWtfcmVhc29u KQo+ICB9Cj4gIAo+ICAjdW5kZWYgRFBfU1RSCj4gKyNkZWZpbmUgRFBfU1RSKHgpIFtEUk1fRFBf U0lERUJBTkRfVFhfICMjIHhdID0gI3gKPiArCj4gK3N0YXRpYyBjb25zdCBjaGFyICpkcm1fZHBf bXN0X3NpZGViYW5kX3R4X3N0YXRlX3N0cihpbnQgc3RhdGUpCj4gK3sKPiArCXN0YXRpYyBjb25z dCBjaGFyICogY29uc3Qgc2lkZWJhbmRfcmVhc29uX3N0cltdID0gewo+ICsJCURQX1NUUihRVUVV RUQpLAo+ICsJCURQX1NUUihTVEFSVF9TRU5EKSwKPiArCQlEUF9TVFIoU0VOVCksCj4gKwkJRFBf U1RSKFJYKSwKPiArCQlEUF9TVFIoVElNRU9VVCksCj4gKwl9Owo+ICsKPiArCWlmIChzdGF0ZSA+ PSBBUlJBWV9TSVpFKHNpZGViYW5kX3JlYXNvbl9zdHIpIHx8Cj4gKwkgICAgIXNpZGViYW5kX3Jl YXNvbl9zdHJbc3RhdGVdKQo+ICsJCXJldHVybiAidW5rbm93biI7Cj4gKwo+ICsJcmV0dXJuIHNp ZGViYW5kX3JlYXNvbl9zdHJbc3RhdGVdOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50Cj4gK2RybV9k cF9tc3RfcmFkX3RvX3N0cihjb25zdCB1OCByYWRbOF0sIHU4IGxjdCwgY2hhciAqb3V0LCBzaXpl X3QgbGVuKQo+ICt7Cj4gKwlpbnQgaTsKPiArCXU4IHVucGFja2VkX3JhZFsxNl07Cj4gKwo+ICsJ Zm9yIChpID0gMDsgaSA8IGxjdDsgaSsrKSB7Cj4gKwkJaWYgKGkgJSAyKQo+ICsJCQl1bnBhY2tl ZF9yYWRbaV0gPSByYWRbaSAvIDJdID4+IDQ7Cj4gKwkJZWxzZQo+ICsJCQl1bnBhY2tlZF9yYWRb aV0gPSByYWRbaSAvIDJdICYgQklUX01BU0soNCk7Cj4gKwl9Cj4gKwo+ICsJLyogVE9ETzogRXZl bnR1YWxseSBhZGQgc29tZXRoaW5nIHRvIHByaW50ayBzbyB3ZSBjYW4gZm9ybWF0IHRoZSByYWQK PiArCSAqIGxpa2UgdGhpczogMS4yLjMKPiArCSAqLwoKCWxjdCAqPTI7CgptaXNzaW5nIGhlcmU/ IEFuZCB5ZWFoIHRoZSB0b2RvIHdvdWxkIGJlIHN3ZWV0LCBidXQgcXVpdGUgYSBiaXQgbW9yZQp0 eXBpbmcgSSBndWVzcy4KCj4gKwlyZXR1cm4gc25wcmludGYob3V0LCBsZW4sICIlKnBoQyIsIGxj dCwgdW5wYWNrZWRfcmFkKTsKPiArfQo+ICAKPiAgLyogc2lkZWJhbmQgbXNnIGhhbmRsaW5nICov Cj4gIHN0YXRpYyB1OCBkcm1fZHBfbXNnX2hlYWRlcl9jcmM0KGNvbnN0IHVpbnQ4X3QgKmRhdGEs IHNpemVfdCBudW1fbmliYmxlcykKPiBAQCAtMjU2LDggKzI5Nyw5IEBAIHN0YXRpYyBib29sIGRy bV9kcF9kZWNvZGVfc2lkZWJhbmRfbXNnX2hkcihzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ19o ZHIgKmhkciwKPiAgCXJldHVybiB0cnVlOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBkcm1fZHBf ZW5jb2RlX3NpZGViYW5kX3JlcShzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ19yZXFfYm9keSAq cmVxLAo+IC0JCQkJICAgICAgIHN0cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3R4ICpyYXcpCj4g K3ZvaWQKPiArZHJtX2RwX2VuY29kZV9zaWRlYmFuZF9yZXEoY29uc3Qgc3RydWN0IGRybV9kcF9z aWRlYmFuZF9tc2dfcmVxX2JvZHkgKnJlcSwKPiArCQkJICAgc3RydWN0IGRybV9kcF9zaWRlYmFu ZF9tc2dfdHggKnJhdykKPiAgewo+ICAJaW50IGlkeCA9IDA7Cj4gIAlpbnQgaTsKPiBAQCAtMzYy LDYgKzQwNCwyNDkgQEAgc3RhdGljIHZvaWQgZHJtX2RwX2VuY29kZV9zaWRlYmFuZF9yZXEoc3Ry dWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfcmVxX2JvZHkgKnJlcSwKPiAgCX0KPiAgCXJhdy0+Y3Vy X2xlbiA9IGlkeDsKPiAgfQo+ICtFWFBPUlRfU1lNQk9MX0ZPUl9URVNUU19PTkxZKGRybV9kcF9l bmNvZGVfc2lkZWJhbmRfcmVxKTsKPiArCj4gKy8qIERlY29kZSBhIHNpZGViYW5kIHJlcXVlc3Qg d2UndmUgZW5jb2RlZCwgbWFpbmx5IHVzZWQgZm9yIGRlYnVnZ2luZyAqLwo+ICtpbnQKPiArZHJt X2RwX2RlY29kZV9zaWRlYmFuZF9yZXEoY29uc3Qgc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2df dHggKnJhdywKPiArCQkJICAgc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfcmVxX2JvZHkgKnJl cSkKPiArewo+ICsJY29uc3QgdTggKmJ1ZiA9IHJhdy0+bXNnOwo+ICsJaW50IGksIGlkeCA9IDA7 Cj4gKwo+ICsJcmVxLT5yZXFfdHlwZSA9IGJ1ZltpZHgrK10gJiAweDdmOwo+ICsJc3dpdGNoIChy ZXEtPnJlcV90eXBlKSB7Cj4gKwljYXNlIERQX0VOVU1fUEFUSF9SRVNPVVJDRVM6Cj4gKwljYXNl IERQX1BPV0VSX0RPV05fUEhZOgo+ICsJY2FzZSBEUF9QT1dFUl9VUF9QSFk6CgpPQ0Qgd2Fybmlu ZzogdGhlIGVudW0gaXNuJ3Qgb3JkZXJlZCB0aGUgc2FtZSB3YXkgaGVyZSBhbmQgaW4KZHJtX2Rw X2VuY29kZV9zaWRlYmFuZF9yZXEoKS4KCj4gKwkJcmVxLT51LnBvcnRfbnVtLnBvcnRfbnVtYmVy ID0gKGJ1ZltpZHhdID4+IDQpICYgMHhmOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBEUF9BTExPQ0FU RV9QQVlMT0FEOgo+ICsJCXsKPiArCQkJc3RydWN0IGRybV9kcF9hbGxvY2F0ZV9wYXlsb2FkICph ID0KPiArCQkJCSZyZXEtPnUuYWxsb2NhdGVfcGF5bG9hZDsKPiArCj4gKwkJCWEtPm51bWJlcl9z ZHBfc3RyZWFtcyA9IGJ1ZltpZHhdICYgMHhmOwo+ICsJCQlhLT5wb3J0X251bWJlciA9IChidWZb aWR4XSA+PiA0KSAmIDB4ZjsKPiArCj4gKwkJCWEtPnZjcGkgPSBidWZbKytpZHhdICYgMHg3ZjsK CkNvbXBsYWluIGhlcmUgaWYgMHg4MCBpcyBzZXQ/Cgo+ICsKPiArCQkJYS0+cGJuID0gYnVmWysr aWR4XSA8PCA4Owo+ICsJCQlhLT5wYm4gfD0gYnVmWysraWR4XTsKPiArCj4gKwkJCWlkeCsrOwo+ ICsJCQlmb3IgKGkgPSAwOyBpIDwgYS0+bnVtYmVyX3NkcF9zdHJlYW1zOyBpKyspIHsKPiArCQkJ CWEtPnNkcF9zdHJlYW1fc2lua1tpXSA9Cj4gKwkJCQkJKGJ1ZltpZHggKyAoaSAvIDIpXSA+PiAo KGkgJSAyKSA/IDAgOiA0KSkgJiAweGY7Cj4gKwkJCX0KPiArCQl9Cj4gKwkJYnJlYWs7Cj4gKwlj YXNlIERQX1FVRVJZX1BBWUxPQUQ6Cj4gKwkJcmVxLT51LnF1ZXJ5X3BheWxvYWQucG9ydF9udW1i ZXIgPSAoYnVmW2lkeF0gPj4gNCkgJiAweGY7Cj4gKwkJcmVxLT51LnF1ZXJ5X3BheWxvYWQudmNw aSA9IGJ1ZlsrK2lkeF0gJiAweDdmOwoKU2FtZSBoZXJlIGZvciB0aGUgaGlnaGVzdCBiaXQ/Cgo+ ICsJCWJyZWFrOwo+ICsJY2FzZSBEUF9SRU1PVEVfRFBDRF9SRUFEOgo+ICsJCXsKPiArCQkJc3Ry dWN0IGRybV9kcF9yZW1vdGVfZHBjZF9yZWFkICpyID0gJnJlcS0+dS5kcGNkX3JlYWQ7Cj4gKwo+ ICsJCQlyLT5wb3J0X251bWJlciA9IChidWZbaWR4XSA+PiA0KSAmIDB4ZjsKPiArCj4gKwkJCXIt PmRwY2RfYWRkcmVzcyA9IChidWZbaWR4XSA8PCAxNikgJiAweGYwMDAwOwo+ICsJCQlyLT5kcGNk X2FkZHJlc3MgfD0gKGJ1ZlsrK2lkeF0gPDwgOCkgJiAweGZmMDA7Cj4gKwkJCXItPmRwY2RfYWRk cmVzcyB8PSBidWZbKytpZHhdICYgMHhmZjsKPiArCj4gKwkJCXItPm51bV9ieXRlcyA9IGJ1Zlsr K2lkeF07Cj4gKwkJfQo+ICsJCWJyZWFrOwo+ICsJY2FzZSBEUF9SRU1PVEVfRFBDRF9XUklURToK PiArCQl7Cj4gKwkJCXN0cnVjdCBkcm1fZHBfcmVtb3RlX2RwY2Rfd3JpdGUgKncgPQo+ICsJCQkJ JnJlcS0+dS5kcGNkX3dyaXRlOwo+ICsKPiArCQkJdy0+cG9ydF9udW1iZXIgPSAoYnVmW2lkeF0g Pj4gNCkgJiAweGY7Cj4gKwo+ICsJCQl3LT5kcGNkX2FkZHJlc3MgPSAoYnVmW2lkeF0gPDwgMTYp ICYgMHhmMDAwMDsKPiArCQkJdy0+ZHBjZF9hZGRyZXNzIHw9IChidWZbKytpZHhdIDw8IDgpICYg MHhmZjAwOwo+ICsJCQl3LT5kcGNkX2FkZHJlc3MgfD0gYnVmWysraWR4XSAmIDB4ZmY7Cj4gKwo+ ICsJCQl3LT5udW1fYnl0ZXMgPSBidWZbKytpZHhdOwo+ICsKPiArCQkJdy0+Ynl0ZXMgPSBrbWVt ZHVwKCZidWZbKytpZHhdLCB3LT5udW1fYnl0ZXMsCj4gKwkJCQkJICAgR0ZQX0tFUk5FTCk7CgpC dXQgaWYgd2UgZ28gcmVhbGx5IHN0cmljdCBvbiB2YWxpZGF0aW9uIHdlJ2QgbmVlZCB0byBtYWtl IHN1cmUgd2UgZG9uJ3QKd2FsayBwYXN0IHJhdy0+Y3VyX2xlbiAuLi4gcHJvYmFibHkgbm90IHdv cnRoIGl0PwoKPiArCQkJaWYgKCF3LT5ieXRlcykKPiArCQkJCXJldHVybiAtRU5PTUVNOwo+ICsJ CX0KPiArCQlicmVhazsKPiArCWNhc2UgRFBfUkVNT1RFX0kyQ19SRUFEOgo+ICsJCXsKPiArCQkJ c3RydWN0IGRybV9kcF9yZW1vdGVfaTJjX3JlYWQgKnIgPSAmcmVxLT51LmkyY19yZWFkOwo+ICsJ CQlzdHJ1Y3QgZHJtX2RwX3JlbW90ZV9pMmNfcmVhZF90eCAqdHg7Cj4gKwkJCWJvb2wgZmFpbGVk ID0gZmFsc2U7Cj4gKwo+ICsJCQlyLT5udW1fdHJhbnNhY3Rpb25zID0gYnVmW2lkeF0gJiAweDM7 Cj4gKwkJCXItPnBvcnRfbnVtYmVyID0gKGJ1ZltpZHhdID4+IDQpICYgMHhmOwo+ICsJCQlmb3Ig KGkgPSAwOyBpIDwgci0+bnVtX3RyYW5zYWN0aW9uczsgaSsrKSB7Cj4gKwkJCQl0eCA9ICZyLT50 cmFuc2FjdGlvbnNbaV07Cj4gKwo+ICsJCQkJdHgtPmkyY19kZXZfaWQgPSBidWZbKytpZHhdICYg MHg3ZjsKPiArCQkJCXR4LT5udW1fYnl0ZXMgPSBidWZbKytpZHhdOwo+ICsJCQkJdHgtPmJ5dGVz ID0ga21lbWR1cCgmYnVmWysraWR4XSwKPiArCQkJCQkJICAgIHR4LT5udW1fYnl0ZXMsCj4gKwkJ CQkJCSAgICBHRlBfS0VSTkVMKTsKPiArCQkJCWlmICghdHgtPmJ5dGVzKSB7Cj4gKwkJCQkJZmFp bGVkID0gdHJ1ZTsKPiArCQkJCQlicmVhazsKPiArCQkJCX0KPiArCQkJCWlkeCArPSB0eC0+bnVt X2J5dGVzOwo+ICsJCQkJdHgtPm5vX3N0b3BfYml0ID0gKGJ1ZltpZHhdID4+IDUpICYgMHgxOwo+ ICsJCQkJdHgtPmkyY190cmFuc2FjdGlvbl9kZWxheSA9IGJ1ZltpZHhdICYgMHhmOwo+ICsJCQl9 Cj4gKwo+ICsJCQlpZiAoZmFpbGVkKSB7Cj4gKwkJCQlmb3IgKGkgPSAwOyBpIDwgci0+bnVtX3Ry YW5zYWN0aW9uczsgaSsrKQo+ICsJCQkJCWtmcmVlKHR4LT5ieXRlcyk7Cj4gKwkJCQlyZXR1cm4g LUVOT01FTTsKPiArCQkJfQo+ICsKPiArCQkJci0+cmVhZF9pMmNfZGV2aWNlX2lkID0gYnVmWysr aWR4XSAmIDB4N2Y7Cj4gKwkJCXItPm51bV9ieXRlc19yZWFkID0gYnVmWysraWR4XTsKPiArCQl9 Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIERQX1JFTU9URV9JMkNfV1JJVEU6Cj4gKwkJewo+ICsJCQlz dHJ1Y3QgZHJtX2RwX3JlbW90ZV9pMmNfd3JpdGUgKncgPSAmcmVxLT51LmkyY193cml0ZTsKPiAr Cj4gKwkJCXctPnBvcnRfbnVtYmVyID0gKGJ1ZltpZHhdID4+IDQpICYgMHhmOwo+ICsJCQl3LT53 cml0ZV9pMmNfZGV2aWNlX2lkID0gYnVmWysraWR4XSAmIDB4N2Y7Cj4gKwkJCXctPm51bV9ieXRl cyA9IGJ1ZlsrK2lkeF07Cj4gKwkJCXctPmJ5dGVzID0ga21lbWR1cCgmYnVmWysraWR4XSwgdy0+ bnVtX2J5dGVzLAo+ICsJCQkJCSAgIEdGUF9LRVJORUwpOwo+ICsJCQlpZiAoIXctPmJ5dGVzKQo+ ICsJCQkJcmV0dXJuIC1FTk9NRU07Cj4gKwkJfQo+ICsJCWJyZWFrOwo+ICsJfQoKRm9yIHNhZmV0 eTogU2hvdWxkIHdlIHZhbGlkYXRlIGN1cl9sZW4gaGVyZT8gT3IgcmV0dXJuIGl0LCBhbmQgbGV0 IHRoZQpjYWxsZXIgZGVhbCB3aXRoIGFueSBtaXNtYXRjaGVzLgoKQnV0IEknbSBraW5kYSBsZWFu aW5nIHRvd2FyZHMgbm8gc2FmZXR5IGhlcmUsIHNpbmNlIGl0J3Mgbm90IGRlYWxpbmcgd2l0aAph bnkgcmVwbGllcyB3ZSBnZXQgZnJvbSB0aGUgaHcvZXh0ZXJuYWxseSwgd2hpY2ggbWlnaHQgYmUg dXNlZCBmb3IKYXR0YWNraW5nIHVzLiBJZiB3ZSBsYXRlciBvbiBoYXZlIHRoZSBzYW1lIHRoaW5n IGJ1dCBmb3IKZHJtX2RwX3NpZGViYW5kX3BhcnNlX3JlcGx5KCkgdGhlbiBhIGxvdCBtb3JlIGZ1 bi4KCj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArRVhQT1JUX1NZTUJPTF9GT1JfVEVTVFNfT05M WShkcm1fZHBfZGVjb2RlX3NpZGViYW5kX3JlcSk7Cj4gKwo+ICt2b2lkCj4gK2RybV9kcF9kdW1w X3NpZGViYW5kX21zZ19yZXFfYm9keShjb25zdCBzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ19y ZXFfYm9keSAqcmVxLAo+ICsJCQkJICBpbnQgaW5kZW50LCBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnBy aW50ZXIpCj4gK3sKPiArCWludCBpOwo+ICsKPiArI2RlZmluZSBQKGYsIC4uLikgZHJtX3ByaW50 Zl9pbmRlbnQocHJpbnRlciwgaW5kZW50LCBmLCAjI19fVkFfQVJHU19fKQo+ICsJaWYgKHJlcS0+ cmVxX3R5cGUgPT0gRFBfTElOS19BRERSRVNTKSB7Cj4gKwkJLyogTm8gY29udGVudHMgdG8gcHJp bnQgKi8KPiArCQlQKCJ0eXBlPSVzXG4iLCBkcm1fZHBfbXN0X3JlcV90eXBlX3N0cihyZXEtPnJl cV90eXBlKSk7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsKPiArCVAoInR5cGU9JXMgY29udGVudHM6 XG4iLCBkcm1fZHBfbXN0X3JlcV90eXBlX3N0cihyZXEtPnJlcV90eXBlKSk7Cj4gKwlpbmRlbnQr KzsKPiArCj4gKwlzd2l0Y2ggKHJlcS0+cmVxX3R5cGUpIHsKPiArCWNhc2UgRFBfRU5VTV9QQVRI X1JFU09VUkNFUzoKPiArCWNhc2UgRFBfUE9XRVJfRE9XTl9QSFk6Cj4gKwljYXNlIERQX1BPV0VS X1VQX1BIWToKPiArCQlQKCJwb3J0PSVkXG4iLCByZXEtPnUucG9ydF9udW0ucG9ydF9udW1iZXIp Owo+ICsJCWJyZWFrOwo+ICsJY2FzZSBEUF9BTExPQ0FURV9QQVlMT0FEOgo+ICsJCVAoInBvcnQ9 JWQgdmNwaT0lZCBwYm49JWQgc2RwX3N0cmVhbXM9JWQgJSpwaFxuIiwKPiArCQkgIHJlcS0+dS5h bGxvY2F0ZV9wYXlsb2FkLnBvcnRfbnVtYmVyLAo+ICsJCSAgcmVxLT51LmFsbG9jYXRlX3BheWxv YWQudmNwaSwgcmVxLT51LmFsbG9jYXRlX3BheWxvYWQucGJuLAo+ICsJCSAgcmVxLT51LmFsbG9j YXRlX3BheWxvYWQubnVtYmVyX3NkcF9zdHJlYW1zLAo+ICsJCSAgcmVxLT51LmFsbG9jYXRlX3Bh eWxvYWQubnVtYmVyX3NkcF9zdHJlYW1zLAo+ICsJCSAgcmVxLT51LmFsbG9jYXRlX3BheWxvYWQu c2RwX3N0cmVhbV9zaW5rKTsKPiArCQlicmVhazsKPiArCWNhc2UgRFBfUVVFUllfUEFZTE9BRDoK PiArCQlQKCJwb3J0PSVkIHZjcGk9JWRcbiIsCj4gKwkJICByZXEtPnUucXVlcnlfcGF5bG9hZC5w b3J0X251bWJlciwKPiArCQkgIHJlcS0+dS5xdWVyeV9wYXlsb2FkLnZjcGkpOwo+ICsJCWJyZWFr Owo+ICsJY2FzZSBEUF9SRU1PVEVfRFBDRF9SRUFEOgo+ICsJCVAoInBvcnQ9JWQgZHBjZF9hZGRy PSUwNXggbGVuPSVkXG4iLAo+ICsJCSAgcmVxLT51LmRwY2RfcmVhZC5wb3J0X251bWJlciwgcmVx LT51LmRwY2RfcmVhZC5kcGNkX2FkZHJlc3MsCj4gKwkJICByZXEtPnUuZHBjZF9yZWFkLm51bV9i eXRlcyk7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIERQX1JFTU9URV9EUENEX1dSSVRFOgo+ICsJCVAo InBvcnQ9JWQgYWRkcj0lMDV4IGxlbj0lZDogJSpwaFxuIiwKPiArCQkgIHJlcS0+dS5kcGNkX3dy aXRlLnBvcnRfbnVtYmVyLAo+ICsJCSAgcmVxLT51LmRwY2Rfd3JpdGUuZHBjZF9hZGRyZXNzLAo+ ICsJCSAgcmVxLT51LmRwY2Rfd3JpdGUubnVtX2J5dGVzLCByZXEtPnUuZHBjZF93cml0ZS5udW1f Ynl0ZXMsCj4gKwkJICByZXEtPnUuZHBjZF93cml0ZS5ieXRlcyk7Cj4gKwkJYnJlYWs7Cj4gKwlj YXNlIERQX1JFTU9URV9JMkNfUkVBRDoKPiArCQlQKCJwb3J0PSVkIG51bV90eD0lZCBpZD0lZCBz aXplPSVkOlxuIiwKPiArCQkgIHJlcS0+dS5pMmNfcmVhZC5wb3J0X251bWJlciwKPiArCQkgIHJl cS0+dS5pMmNfcmVhZC5udW1fdHJhbnNhY3Rpb25zLAo+ICsJCSAgcmVxLT51LmkyY19yZWFkLnJl YWRfaTJjX2RldmljZV9pZCwKPiArCQkgIHJlcS0+dS5pMmNfcmVhZC5udW1fYnl0ZXNfcmVhZCk7 Cj4gKwo+ICsJCWluZGVudCsrOwo+ICsJCWZvciAoaSA9IDA7IGkgPCByZXEtPnUuaTJjX3JlYWQu bnVtX3RyYW5zYWN0aW9uczsgaSsrKSB7Cj4gKwkJCWNvbnN0IHN0cnVjdCBkcm1fZHBfcmVtb3Rl X2kyY19yZWFkX3R4ICpydHggPQo+ICsJCQkJJnJlcS0+dS5pMmNfcmVhZC50cmFuc2FjdGlvbnNb aV07Cj4gKwo+ICsJCQlQKCIlZDogaWQ9JTAzZCBzaXplPSUwM2Qgbm9fc3RvcF9iaXQ9JWQgdHhf ZGVsYXk9JTAzZDogJSpwaFxuIiwKPiArCQkJICBpLCBydHgtPmkyY19kZXZfaWQsIHJ0eC0+bnVt X2J5dGVzLAo+ICsJCQkgIHJ0eC0+bm9fc3RvcF9iaXQsIHJ0eC0+aTJjX3RyYW5zYWN0aW9uX2Rl bGF5LAo+ICsJCQkgIHJ0eC0+bnVtX2J5dGVzLCBydHgtPmJ5dGVzKTsKPiArCQl9Cj4gKwkJYnJl YWs7Cj4gKwljYXNlIERQX1JFTU9URV9JMkNfV1JJVEU6Cj4gKwkJUCgicG9ydD0lZCBpZD0lZCBz aXplPSVkOiAlKnBoXG4iLAo+ICsJCSAgcmVxLT51LmkyY193cml0ZS5wb3J0X251bWJlciwKPiAr CQkgIHJlcS0+dS5pMmNfd3JpdGUud3JpdGVfaTJjX2RldmljZV9pZCwKPiArCQkgIHJlcS0+dS5p MmNfd3JpdGUubnVtX2J5dGVzLCByZXEtPnUuaTJjX3dyaXRlLm51bV9ieXRlcywKPiArCQkgIHJl cS0+dS5pMmNfd3JpdGUuYnl0ZXMpOwo+ICsJCWJyZWFrOwo+ICsJZGVmYXVsdDoKPiArCQlQKCI/ Pz9cbiIpOwo+ICsJCWJyZWFrOwo+ICsJfQo+ICsjdW5kZWYgUAo+ICt9Cj4gK0VYUE9SVF9TWU1C T0xfRk9SX1RFU1RTX09OTFkoZHJtX2RwX2R1bXBfc2lkZWJhbmRfbXNnX3JlcV9ib2R5KTsKPiAr Cj4gK3N0YXRpYyBpbmxpbmUgdm9pZAo+ICtkcm1fZHBfbXN0X2R1bXBfc2lkZWJhbmRfbXNnX3R4 KHN0cnVjdCBkcm1fcHJpbnRlciAqcCwKPiArCQkJCWNvbnN0IHN0cnVjdCBkcm1fZHBfc2lkZWJh bmRfbXNnX3R4ICp0eG1zZykKPiArewo+ICsJc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfcmVx X2JvZHkgcmVxOwo+ICsJY2hhciBidWZbNjRdOwo+ICsJaW50IHJldDsKPiArCWludCBpOwo+ICsK PiArCWRybV9kcF9tc3RfcmFkX3RvX3N0cih0eG1zZy0+ZHN0LT5yYWQsIHR4bXNnLT5kc3QtPmxj dCwgYnVmLAo+ICsJCQkgICAgICBzaXplb2YoYnVmKSk7Cj4gKwlkcm1fcHJpbnRmKHAsICJ0eG1z ZyBjdXJfb2Zmc2V0PSV4IGN1cl9sZW49JXggc2Vxbm89JXggc3RhdGU9JXMgcGF0aF9tc2c9JWQg ZHN0PSVzXG4iLAo+ICsJCSAgIHR4bXNnLT5jdXJfb2Zmc2V0LCB0eG1zZy0+Y3VyX2xlbiwgdHht c2ctPnNlcW5vLAo+ICsJCSAgIGRybV9kcF9tc3Rfc2lkZWJhbmRfdHhfc3RhdGVfc3RyKHR4bXNn LT5zdGF0ZSksCj4gKwkJICAgdHhtc2ctPnBhdGhfbXNnLCBidWYpOwo+ICsKPiArCXJldCA9IGRy bV9kcF9kZWNvZGVfc2lkZWJhbmRfcmVxKHR4bXNnLCAmcmVxKTsKPiArCWlmIChyZXQpIHsKPiAr CQlkcm1fcHJpbnRmKHAsICI8ZmFpbGVkIHRvIGRlY29kZSBzaWRlYmFuZCByZXE6ICVkPlxuIiwg cmV0KTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwlkcm1fZHBfZHVtcF9zaWRlYmFuZF9tc2dfcmVx X2JvZHkoJnJlcSwgMSwgcCk7Cj4gKwo+ICsJc3dpdGNoIChyZXEucmVxX3R5cGUpIHsKPiArCWNh c2UgRFBfUkVNT1RFX0RQQ0RfV1JJVEU6Cj4gKwkJa2ZyZWUocmVxLnUuZHBjZF93cml0ZS5ieXRl cyk7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIERQX1JFTU9URV9JMkNfUkVBRDoKPiArCQlmb3IgKGkg PSAwOyBpIDwgcmVxLnUuaTJjX3JlYWQubnVtX3RyYW5zYWN0aW9uczsgaSsrKQo+ICsJCQlrZnJl ZShyZXEudS5pMmNfcmVhZC50cmFuc2FjdGlvbnNbaV0uYnl0ZXMpOwo+ICsJCWJyZWFrOwo+ICsJ Y2FzZSBEUF9SRU1PVEVfSTJDX1dSSVRFOgo+ICsJCWtmcmVlKHJlcS51LmkyY193cml0ZS5ieXRl cyk7Cj4gKwkJYnJlYWs7Cj4gKwl9Cj4gK30KPiAgCj4gIHN0YXRpYyB2b2lkIGRybV9kcF9jcmNf c2lkZWJhbmRfY2h1bmtfcmVxKHU4ICptc2csIHU4IGxlbikKPiAgewo+IEBAIC04OTMsNiArMTE3 OCwxMSBAQCBzdGF0aWMgaW50IGRybV9kcF9tc3Rfd2FpdF90eF9yZXBseShzdHJ1Y3QgZHJtX2Rw X21zdF9icmFuY2ggKm1zdGIsCj4gIAkJfQo+ICAJfQo+ICBvdXQ6Cj4gKwlpZiAodW5saWtlbHko cmV0ID09IC1FSU8gJiYgZHJtX2RlYnVnICYgKERSTV9VVF9EUCB8IERSTV9VVF9LTVMpKSkgewoK SG0gSSdkIG9ubHkgY2hlY2sgZm9yIERSTV9VVF9EUCBoZXJlLgoKPiArCQlzdHJ1Y3QgZHJtX3By aW50ZXIgcCA9IGRybV9kZWJ1Z19wcmludGVyKERCR19QUkVGSVgpOwo+ICsKPiArCQlkcm1fZHBf bXN0X2R1bXBfc2lkZWJhbmRfbXNnX3R4KCZwLCB0eG1zZyk7Cj4gKwl9Cj4gIAltdXRleF91bmxv Y2soJm1nci0+cWxvY2spOwo+ICAKPiAgCXJldHVybiByZXQ7Cj4gQEAgLTE5MjcsOCArMjIxNywx MSBAQCBzdGF0aWMgaW50IHByb2Nlc3Nfc2luZ2xlX3R4X3Fsb2NrKHN0cnVjdCBkcm1fZHBfbXN0 X3RvcG9sb2d5X21nciAqbWdyLAo+ICAJaWR4ICs9IHRvc2VuZCArIDE7Cj4gIAo+ICAJcmV0ID0g ZHJtX2RwX3NlbmRfc2lkZWJhbmRfbXNnKG1nciwgdXAsIGNodW5rLCBpZHgpOwo+IC0JaWYgKHJl dCkgewo+IC0JCURSTV9ERUJVR19LTVMoInNpZGViYW5kIG1zZyBmYWlsZWQgdG8gc2VuZFxuIik7 Cj4gKwlpZiAocmV0ICYmIHVubGlrZWx5KGRybV9kZWJ1ZyAmIChEUk1fVVRfRFAgfCBEUk1fVVRf S01TKSkpIHsKClNhbWUuCgo+ICsJCXN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX2RlYnVnX3By aW50ZXIoREJHX1BSRUZJWCk7Cj4gKwo+ICsJCWRybV9wcmludGYoJnAsICJzaWRlYmFuZCBtc2cg ZmFpbGVkIHRvIHNlbmRcbiIpOwo+ICsJCWRybV9kcF9tc3RfZHVtcF9zaWRlYmFuZF9tc2dfdHgo JnAsIHR4bXNnKTsKPiAgCQlyZXR1cm4gcmV0Owo+ICAJfQo+ICAKPiBAQCAtMTk5MCw2ICsyMjgz LDEzIEBAIHN0YXRpYyB2b2lkIGRybV9kcF9xdWV1ZV9kb3duX3R4KHN0cnVjdCBkcm1fZHBfbXN0 X3RvcG9sb2d5X21nciAqbWdyLAo+ICB7Cj4gIAltdXRleF9sb2NrKCZtZ3ItPnFsb2NrKTsKPiAg CWxpc3RfYWRkX3RhaWwoJnR4bXNnLT5uZXh0LCAmbWdyLT50eF9tc2dfZG93bnEpOwo+ICsKPiAr CWlmICh1bmxpa2VseShkcm1fZGVidWcgJiBEUk1fVVRfRFApKSB7CgpMaWtlIHlvdSBkbyBoZXJl LgoKPiArCQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9kZWJ1Z19wcmludGVyKERCR19QUkVG SVgpOwo+ICsKPiArCQlkcm1fZHBfbXN0X2R1bXBfc2lkZWJhbmRfbXNnX3R4KCZwLCB0eG1zZyk7 Cj4gKwl9Cj4gKwo+ICAJaWYgKGxpc3RfaXNfc2luZ3VsYXIoJm1nci0+dHhfbXNnX2Rvd25xKSkK PiAgCQlwcm9jZXNzX3NpbmdsZV9kb3duX3R4X3Fsb2NrKG1ncik7Cj4gIAltdXRleF91bmxvY2so Jm1nci0+cWxvY2spOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX21zdF90 b3BvbG9neV9pbnRlcm5hbC5oIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3lf aW50ZXJuYWwuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi5l ZWRhOWE2MWM2NTcKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9k cF9tc3RfdG9wb2xvZ3lfaW50ZXJuYWwuaAo+IEBAIC0wLDAgKzEsMjQgQEAKPiArLyogU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQo+ICsgKgo+ICsgKiBEZWNsYXJhdGlvbnMg Zm9yIERQIE1TVCByZWxhdGVkIGZ1bmN0aW9ucyB3aGljaCBhcmUgb25seSB1c2VkIGluIHNlbGZ0 ZXN0cwo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAxOCBSZWQgSGF0Cj4gKyAqIEF1dGhvcnM6 Cj4gKyAqICAgICBMeXVkZSBQYXVsIDxseXVkZUByZWRoYXQuY29tPgo+ICsgKi8KPiArCj4gKyNp Zm5kZWYgX0RSTV9EUF9NU1RfSEVMUEVSX0lOVEVSTkFMX0hfCj4gKyNkZWZpbmUgX0RSTV9EUF9N U1RfSEVMUEVSX0lOVEVSTkFMX0hfCj4gKwo+ICsjaW5jbHVkZSA8ZHJtL2RybV9kcF9tc3RfaGVs cGVyLmg+Cj4gKwo+ICt2b2lkCj4gK2RybV9kcF9lbmNvZGVfc2lkZWJhbmRfcmVxKGNvbnN0IHN0 cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3JlcV9ib2R5ICpyZXEsCj4gKwkJCSAgIHN0cnVjdCBk cm1fZHBfc2lkZWJhbmRfbXNnX3R4ICpyYXcpOwo+ICtpbnQgZHJtX2RwX2RlY29kZV9zaWRlYmFu ZF9yZXEoY29uc3Qgc3RydWN0IGRybV9kcF9zaWRlYmFuZF9tc2dfdHggKnJhdywKPiArCQkJICAg ICAgIHN0cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3JlcV9ib2R5ICpyZXEpOwo+ICt2b2lkCj4g K2RybV9kcF9kdW1wX3NpZGViYW5kX21zZ19yZXFfYm9keShjb25zdCBzdHJ1Y3QgZHJtX2RwX3Np ZGViYW5kX21zZ19yZXFfYm9keSAqcmVxLAo+ICsJCQkJICBpbnQgaW5kZW50LCBzdHJ1Y3QgZHJt X3ByaW50ZXIgKnByaW50ZXIpOwo+ICsKPiArI2VuZGlmIC8qICFfRFJNX0RQX01TVF9IRUxQRVJf SU5URVJOQUxfSF8gKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy9k cm1fbW9kZXNldF9zZWxmdGVzdHMuaCBiL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvZHJtX21v ZGVzZXRfc2VsZnRlc3RzLmgKPiBpbmRleCBkZWMzZWUzZWM5NmYuLjE4OThkZTBiNGE0ZCAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL2RybV9tb2Rlc2V0X3NlbGZ0ZXN0 cy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy9kcm1fbW9kZXNldF9zZWxmdGVz dHMuaAo+IEBAIC0zMywzICszMyw0IEBAIHNlbGZ0ZXN0KGRhbWFnZV9pdGVyX2RhbWFnZV9vbmVf b3V0c2lkZSwgaWd0X2RhbWFnZV9pdGVyX2RhbWFnZV9vbmVfb3V0c2lkZSkKPiAgc2VsZnRlc3Qo ZGFtYWdlX2l0ZXJfZGFtYWdlX3NyY19tb3ZlZCwgaWd0X2RhbWFnZV9pdGVyX2RhbWFnZV9zcmNf bW92ZWQpCj4gIHNlbGZ0ZXN0KGRhbWFnZV9pdGVyX2RhbWFnZV9ub3RfdmlzaWJsZSwgaWd0X2Rh bWFnZV9pdGVyX2RhbWFnZV9ub3RfdmlzaWJsZSkKPiAgc2VsZnRlc3QoZHBfbXN0X2NhbGNfcGJu X21vZGUsIGlndF9kcF9tc3RfY2FsY19wYm5fbW9kZSkKPiArc2VsZnRlc3QoZHBfbXN0X3NpZGVi YW5kX21zZ19yZXFfZGVjb2RlLCBpZ3RfZHBfbXN0X3NpZGViYW5kX21zZ19yZXFfZGVjb2RlKQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX2RwX21zdF9o ZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvdGVzdC1kcm1fZHBfbXN0X2hlbHBl ci5jCj4gaW5kZXggNTFiMjQ4NmVjOTE3Li5jZWNhODliYWJkNjUgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9kcF9tc3RfaGVscGVyLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX2RwX21zdF9oZWxwZXIuYwo+IEBAIC04 LDYgKzgsNyBAQAo+ICAjaW5jbHVkZSA8ZHJtL2RybV9kcF9tc3RfaGVscGVyLmg+Cj4gICNpbmNs dWRlIDxkcm0vZHJtX3ByaW50Lmg+Cj4gIAo+ICsjaW5jbHVkZSAiLi4vZHJtX2RwX21zdF90b3Bv bG9neV9pbnRlcm5hbC5oIgo+ICAjaW5jbHVkZSAidGVzdC1kcm1fbW9kZXNldF9jb21tb24uaCIK PiAgCj4gIGludCBpZ3RfZHBfbXN0X2NhbGNfcGJuX21vZGUodm9pZCAqaWdub3JlZCkKPiBAQCAt MzQsMyArMzUsMjE0IEBAIGludCBpZ3RfZHBfbXN0X2NhbGNfcGJuX21vZGUodm9pZCAqaWdub3Jl ZCkKPiAgCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICsKPiArc3RhdGljIGJvb2wKPiArc2lkZWJhbmRf bXNnX3JlcV9lcXVhbChjb25zdCBzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ19yZXFfYm9keSAq aW4sCj4gKwkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3JlcV9ib2R5 ICpvdXQpCj4gK3sKPiArCWNvbnN0IHN0cnVjdCBkcm1fZHBfcmVtb3RlX2kyY19yZWFkX3R4ICp0 eGluLCAqdHhvdXQ7Cj4gKwlpbnQgaTsKPiArCj4gKwlpZiAoaW4tPnJlcV90eXBlICE9IG91dC0+ cmVxX3R5cGUpCj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsKPiArCXN3aXRjaCAoaW4tPnJlcV90eXBl KSB7Cj4gKwljYXNlIERQX0VOVU1fUEFUSF9SRVNPVVJDRVM6Cj4gKwljYXNlIERQX1BPV0VSX1VQ X1BIWToKPiArCWNhc2UgRFBfUE9XRVJfRE9XTl9QSFk6Cj4gKwljYXNlIERQX0FMTE9DQVRFX1BB WUxPQUQ6Cj4gKwljYXNlIERQX1FVRVJZX1BBWUxPQUQ6Cj4gKwljYXNlIERQX1JFTU9URV9EUENE X1JFQUQ6Cj4gKwkJcmV0dXJuIG1lbWNtcChpbiwgb3V0LCBzaXplb2YoKmluKSkgPT0gMDsKCkp1 c3QgbWVtY21wIHRoZSBlbnRpcmUgdGhpbmcgZm9yIGV2ZXJ5cm9uZSAod2UgYXNzdW1lIGt6YWxs b2MgYW55d2F5KSwgYW5kCnRoZW4gb25seSBoYXZlIHRoZSBhZGRpdGlvbmFsIGNoZWNrcyBmb3Ig dGhlIGZldyBjYXNlcyB3ZSBuZWVkIGl0PyBXb3VsZApzbGlnaHRseSByZWR1Y2UgdGhlIGNvZGUu Cgo+ICsKPiArCWNhc2UgRFBfUkVNT1RFX0kyQ19SRUFEOgo+ICsjZGVmaW5lIElOIGluLT51Lmky Y19yZWFkCj4gKyNkZWZpbmUgT1VUIG91dC0+dS5pMmNfcmVhZAo+ICsJCWlmIChJTi5udW1fYnl0 ZXNfcmVhZCAhPSBPVVQubnVtX2J5dGVzX3JlYWQgfHwKPiArCQkgICAgSU4ubnVtX3RyYW5zYWN0 aW9ucyAhPSBPVVQubnVtX3RyYW5zYWN0aW9ucyB8fAo+ICsJCSAgICBJTi5wb3J0X251bWJlciAh PSBPVVQucG9ydF9udW1iZXIgfHwKPiArCQkgICAgSU4ucmVhZF9pMmNfZGV2aWNlX2lkICE9IE9V VC5yZWFkX2kyY19kZXZpY2VfaWQpCj4gKwkJCXJldHVybiBmYWxzZTsKPiArCj4gKwkJZm9yIChp ID0gMDsgaSA8IElOLm51bV90cmFuc2FjdGlvbnM7IGkrKykgewo+ICsJCQl0eGluID0gJklOLnRy YW5zYWN0aW9uc1tpXTsKPiArCQkJdHhvdXQgPSAmT1VULnRyYW5zYWN0aW9uc1tpXTsKPiArCj4g KwkJCWlmICh0eGluLT5pMmNfZGV2X2lkICE9IHR4b3V0LT5pMmNfZGV2X2lkIHx8Cj4gKwkJCSAg ICB0eGluLT5ub19zdG9wX2JpdCAhPSB0eG91dC0+bm9fc3RvcF9iaXQgfHwKPiArCQkJICAgIHR4 aW4tPm51bV9ieXRlcyAhPSB0eG91dC0+bnVtX2J5dGVzIHx8Cj4gKwkJCSAgICB0eGluLT5pMmNf dHJhbnNhY3Rpb25fZGVsYXkgIT0KPiArCQkJICAgIHR4b3V0LT5pMmNfdHJhbnNhY3Rpb25fZGVs YXkpCj4gKwkJCQlyZXR1cm4gZmFsc2U7Cj4gKwo+ICsJCQlpZiAobWVtY21wKHR4aW4tPmJ5dGVz LCB0eG91dC0+Ynl0ZXMsCj4gKwkJCQkgICB0eGluLT5udW1fYnl0ZXMpICE9IDApCj4gKwkJCQly ZXR1cm4gZmFsc2U7Cj4gKwkJfQo+ICsJCWJyZWFrOwo+ICsjdW5kZWYgSU4KPiArI3VuZGVmIE9V VAo+ICsKPiArCWNhc2UgRFBfUkVNT1RFX0RQQ0RfV1JJVEU6Cj4gKyNkZWZpbmUgSU4gaW4tPnUu ZHBjZF93cml0ZQo+ICsjZGVmaW5lIE9VVCBvdXQtPnUuZHBjZF93cml0ZQo+ICsJCWlmIChJTi5k cGNkX2FkZHJlc3MgIT0gT1VULmRwY2RfYWRkcmVzcyB8fAo+ICsJCSAgICBJTi5udW1fYnl0ZXMg IT0gT1VULm51bV9ieXRlcyB8fAo+ICsJCSAgICBJTi5wb3J0X251bWJlciAhPSBPVVQucG9ydF9u dW1iZXIpCj4gKwkJCXJldHVybiBmYWxzZTsKPiArCj4gKwkJcmV0dXJuIG1lbWNtcChJTi5ieXRl cywgT1VULmJ5dGVzLCBJTi5udW1fYnl0ZXMpID09IDA7Cj4gKyN1bmRlZiBJTgo+ICsjdW5kZWYg T1VUCj4gKwo+ICsJY2FzZSBEUF9SRU1PVEVfSTJDX1dSSVRFOgo+ICsjZGVmaW5lIElOIGluLT51 LmkyY193cml0ZQo+ICsjZGVmaW5lIE9VVCBvdXQtPnUuaTJjX3dyaXRlCj4gKwkJaWYgKElOLnBv cnRfbnVtYmVyICE9IE9VVC5wb3J0X251bWJlciB8fAo+ICsJCSAgICBJTi53cml0ZV9pMmNfZGV2 aWNlX2lkICE9IE9VVC53cml0ZV9pMmNfZGV2aWNlX2lkIHx8Cj4gKwkJICAgIElOLm51bV9ieXRl cyAhPSBPVVQubnVtX2J5dGVzKQo+ICsJCQlyZXR1cm4gZmFsc2U7Cj4gKwo+ICsJCXJldHVybiBt ZW1jbXAoSU4uYnl0ZXMsIE9VVC5ieXRlcywgSU4ubnVtX2J5dGVzKSA9PSAwOwo+ICsjdW5kZWYg SU4KPiArI3VuZGVmIE9VVAo+ICsJfQo+ICsKPiArCXJldHVybiB0cnVlOwo+ICt9Cj4gKwo+ICtz dGF0aWMgaW50Cj4gK19fc2lkZWJhbmRfbXNnX3JlcV9lbmNvZGVfZGVjb2RlKGludCBsaW5lLAo+ ICsJCQkJIHN0cnVjdCBkcm1fZHBfc2lkZWJhbmRfbXNnX3JlcV9ib2R5ICppbiwKPiArCQkJCSBz dHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ19yZXFfYm9keSAqb3V0KQo+ICt7Cj4gKwlzdHJ1Y3Qg ZHJtX3ByaW50ZXIgcCA9IGRybV9lcnJfcHJpbnRlcihwcl9mbXQoKSk7Cj4gKwlzdHJ1Y3QgZHJt X2RwX3NpZGViYW5kX21zZ190eCB0eG1zZzsKPiArCWludCBpLCByZXQ7Cj4gKwlib29sIGVxOwo+ ICsKPiArCWRybV9kcF9lbmNvZGVfc2lkZWJhbmRfcmVxKGluLCAmdHhtc2cpOwo+ICsJcmV0ID0g ZHJtX2RwX2RlY29kZV9zaWRlYmFuZF9yZXEoJnR4bXNnLCBvdXQpOwo+ICsJaWYgKHJldCA8IDAp IHsKPiArCQlwcl9lcnIocHJfZm10KCJGYWlsZWQgdG8gZGVjb2RlIHNpZGViYW5kIHJlcXVlc3Qg QCBsaW5lICVkOiAlZFxuIiksCj4gKwkJICAgICAgIGxpbmUsIHJldCk7Cj4gKwkJcmV0dXJuIHJl dDsKPiArCX0KPiArCj4gKwllcSA9IHNpZGViYW5kX21zZ19yZXFfZXF1YWwoaW4sIG91dCk7Cj4g KwlpZiAoIWVxKSB7Cj4gKwkJcHJfZXJyKHByX2ZtdCgiRW5jb2RlL2RlY29kZSBAIGxpbmUgJWQg ZmFpbGVkLCBleHBlY3RlZDpcbiIpLAo+ICsJCSAgICAgICBsaW5lKTsKPiArCQlkcm1fZHBfZHVt cF9zaWRlYmFuZF9tc2dfcmVxX2JvZHkoaW4sIDEsICZwKTsKPiArCQlwcl9lcnIocHJfZm10KCJH b3Q6XG4iKSk7Cj4gKwkJZHJtX2RwX2R1bXBfc2lkZWJhbmRfbXNnX3JlcV9ib2R5KG91dCwgMSwg JnApOwo+ICsJfQo+ICsKPiArCXN3aXRjaCAoaW4tPnJlcV90eXBlKSB7Cj4gKwljYXNlIERQX1JF TU9URV9EUENEX1dSSVRFOgo+ICsJCWtmcmVlKG91dC0+dS5kcGNkX3dyaXRlLmJ5dGVzKTsKPiAr CQlicmVhazsKPiArCWNhc2UgRFBfUkVNT1RFX0kyQ19SRUFEOgo+ICsJCWZvciAoaSA9IDA7IGkg PCBvdXQtPnUuaTJjX3JlYWQubnVtX3RyYW5zYWN0aW9uczsgaSsrKQo+ICsJCQlrZnJlZShvdXQt PnUuaTJjX3JlYWQudHJhbnNhY3Rpb25zW2ldLmJ5dGVzKTsKPiArCQlicmVhazsKPiArCWNhc2Ug RFBfUkVNT1RFX0kyQ19XUklURToKPiArCQlrZnJlZShvdXQtPnUuaTJjX3dyaXRlLmJ5dGVzKTsK PiArCQlicmVhazsKPiArCX0KPiArCj4gKwkvKiBDbGVhciBldmVyeXRoaW5nIGJ1dCB0aGUgcmVx X3R5cGUgZm9yIHRoZSBpbnB1dCAqLwo+ICsJbWVtc2V0KCZpbi0+dSwgMCwgc2l6ZW9mKGluLT51 KSk7Cj4gKwo+ICsJLyogQ2xlYXIgdGhlIG91dHB1dCBlbnRpcmVseSAqLwo+ICsJbWVtc2V0KG91 dCwgMCwgc2l6ZW9mKCpvdXQpKTsKPiArCj4gKwlyZXR1cm4gZXEgPyAwIDogLUVJTlZBTDsKPiAr fQo+ICsKPiAraW50IGlndF9kcF9tc3Rfc2lkZWJhbmRfbXNnX3JlcV9kZWNvZGUodm9pZCAqdW51 c2VkKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2RwX3NpZGViYW5kX21zZ19yZXFfYm9keSBpbiA9IHsg MCB9LCBvdXQgPSB7IDAgfTsKPiArCXU4IGRhdGFbXSA9IHsgMHhmZiwgMHgwLCAweGRkIH07Cj4g KwlpbnQgaTsKPiArCj4gKyNkZWZpbmUgRE9fVEVTVCgpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiArCWRvIHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKwkJ aWYgKF9fc2lkZWJhbmRfbXNnX3JlcV9lbmNvZGVfZGVjb2RlKF9fTElORV9fLCAmaW4sICZvdXQp KSBcCj4gKwkJCXJldHVybiAtRUlOVkFMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKPiArCX0gd2hpbGUgKDApCgpJIGhhZCBhIHRpbnkgd3RmIG1vbWVudCBoZXJlIHVudGls IEkgcmVhbGl6ZWQgdGhpcyBpcyBhIG1hY3JvIC4uLiBtYXliZQpwdXQgdGhlIGRvIG9uIHRoZSBm aXJzdCBsaW5lIGFuZCBpbmRlbnQgZXZlcnl0aGluZz8gUHVyZSBiaWtlc2hlZCB0byBoZWxwCnRo ZSBibGluZCAuLi4KCj4gKwo+ICsJaW4ucmVxX3R5cGUgPSBEUF9FTlVNX1BBVEhfUkVTT1VSQ0VT Owo+ICsJaW4udS5wb3J0X251bS5wb3J0X251bWJlciA9IDU7Cj4gKwlET19URVNUKCk7Cj4gKwo+ ICsJaW4ucmVxX3R5cGUgPSBEUF9QT1dFUl9VUF9QSFk7Cj4gKwlpbi51LnBvcnRfbnVtLnBvcnRf bnVtYmVyID0gNTsKPiArCURPX1RFU1QoKTsKPiArCj4gKwlpbi5yZXFfdHlwZSA9IERQX1BPV0VS X0RPV05fUEhZOwo+ICsJaW4udS5wb3J0X251bS5wb3J0X251bWJlciA9IDU7Cj4gKwlET19URVNU KCk7Cj4gKwo+ICsJaW4ucmVxX3R5cGUgPSBEUF9BTExPQ0FURV9QQVlMT0FEOwo+ICsJaW4udS5h bGxvY2F0ZV9wYXlsb2FkLm51bWJlcl9zZHBfc3RyZWFtcyA9IDM7Cj4gKwlmb3IgKGkgPSAwOyBp IDwgaW4udS5hbGxvY2F0ZV9wYXlsb2FkLm51bWJlcl9zZHBfc3RyZWFtczsgaSsrKQo+ICsJCWlu LnUuYWxsb2NhdGVfcGF5bG9hZC5zZHBfc3RyZWFtX3NpbmtbaV0gPSBpICsgMTsKPiArCURPX1RF U1QoKTsKPiArCWluLnUuYWxsb2NhdGVfcGF5bG9hZC5wb3J0X251bWJlciA9IDB4ZjsKPiArCURP X1RFU1QoKTsKPiArCWluLnUuYWxsb2NhdGVfcGF5bG9hZC52Y3BpID0gMHg3ZjsKPiArCURPX1RF U1QoKTsKPiArCWluLnUuYWxsb2NhdGVfcGF5bG9hZC5wYm4gPSBVMTZfTUFYOwo+ICsJRE9fVEVT VCgpOwo+ICsKPiArCWluLnJlcV90eXBlID0gRFBfUVVFUllfUEFZTE9BRDsKPiArCWluLnUucXVl cnlfcGF5bG9hZC5wb3J0X251bWJlciA9IDB4ZjsKPiArCURPX1RFU1QoKTsKPiArCWluLnUucXVl cnlfcGF5bG9hZC52Y3BpID0gMHg3ZjsKPiArCURPX1RFU1QoKTsKPiArCj4gKwlpbi5yZXFfdHlw ZSA9IERQX1JFTU9URV9EUENEX1JFQUQ7Cj4gKwlpbi51LmRwY2RfcmVhZC5wb3J0X251bWJlciA9 IDB4ZjsKPiArCURPX1RFU1QoKTsKPiArCWluLnUuZHBjZF9yZWFkLmRwY2RfYWRkcmVzcyA9IDB4 ZmVkY2I7Cj4gKwlET19URVNUKCk7Cj4gKwlpbi51LmRwY2RfcmVhZC5udW1fYnl0ZXMgPSBVOF9N QVg7Cj4gKwlET19URVNUKCk7Cj4gKwo+ICsJaW4ucmVxX3R5cGUgPSBEUF9SRU1PVEVfRFBDRF9X UklURTsKPiArCWluLnUuZHBjZF93cml0ZS5wb3J0X251bWJlciA9IDB4ZjsKPiArCURPX1RFU1Qo KTsKPiArCWluLnUuZHBjZF93cml0ZS5kcGNkX2FkZHJlc3MgPSAweGZlZGNiOwo+ICsJRE9fVEVT VCgpOwo+ICsJaW4udS5kcGNkX3dyaXRlLm51bV9ieXRlcyA9IEFSUkFZX1NJWkUoZGF0YSk7Cj4g Kwlpbi51LmRwY2Rfd3JpdGUuYnl0ZXMgPSBkYXRhOwo+ICsJRE9fVEVTVCgpOwo+ICsKPiArCWlu LnJlcV90eXBlID0gRFBfUkVNT1RFX0kyQ19SRUFEOwo+ICsJaW4udS5pMmNfcmVhZC5wb3J0X251 bWJlciA9IDB4ZjsKPiArCURPX1RFU1QoKTsKPiArCWluLnUuaTJjX3JlYWQucmVhZF9pMmNfZGV2 aWNlX2lkID0gMHg3ZjsKPiArCURPX1RFU1QoKTsKPiArCWluLnUuaTJjX3JlYWQubnVtX3RyYW5z YWN0aW9ucyA9IDM7Cj4gKwlpbi51LmkyY19yZWFkLm51bV9ieXRlc19yZWFkID0gQVJSQVlfU0la RShkYXRhKSAqIDM7Cj4gKwlmb3IgKGkgPSAwOyBpIDwgaW4udS5pMmNfcmVhZC5udW1fdHJhbnNh Y3Rpb25zOyBpKyspIHsKPiArCQlpbi51LmkyY19yZWFkLnRyYW5zYWN0aW9uc1tpXS5ieXRlcyA9 IGRhdGE7Cj4gKwkJaW4udS5pMmNfcmVhZC50cmFuc2FjdGlvbnNbaV0ubnVtX2J5dGVzID0gQVJS QVlfU0laRShkYXRhKTsKPiArCQlpbi51LmkyY19yZWFkLnRyYW5zYWN0aW9uc1tpXS5pMmNfZGV2 X2lkID0gMHg3ZiAmIH5pOwo+ICsJCWluLnUuaTJjX3JlYWQudHJhbnNhY3Rpb25zW2ldLmkyY190 cmFuc2FjdGlvbl9kZWxheSA9IDB4ZiAmIH5pOwo+ICsJfQo+ICsJRE9fVEVTVCgpOwo+ICsKPiAr CWluLnJlcV90eXBlID0gRFBfUkVNT1RFX0kyQ19XUklURTsKPiArCWluLnUuaTJjX3dyaXRlLnBv cnRfbnVtYmVyID0gMHhmOwo+ICsJRE9fVEVTVCgpOwo+ICsJaW4udS5pMmNfd3JpdGUud3JpdGVf aTJjX2RldmljZV9pZCA9IDB4N2Y7Cj4gKwlET19URVNUKCk7Cj4gKwlpbi51LmkyY193cml0ZS5u dW1fYnl0ZXMgPSBBUlJBWV9TSVpFKGRhdGEpOwo+ICsJaW4udS5pMmNfd3JpdGUuYnl0ZXMgPSBk YXRhOwo+ICsJRE9fVEVTVCgpOwo+ICsKPiArI3VuZGVmIERPX1RFU1QKPiArCXJldHVybiAwOwo+ ICt9CgpFeHRyZW1lbHkgbmljZSwgbW9yZSB1bml0IHRlc3RzIGZ0dyEKCldpdGggdGhlIG5pdHMg c29tZWhvdyBmaWd1cmVkIG91dDogUmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52 ZXR0ZXJAZmZ3bGwuY2g+Cgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3Rz L3Rlc3QtZHJtX21vZGVzZXRfY29tbW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rl c3QtZHJtX21vZGVzZXRfY29tbW9uLmgKPiBpbmRleCA1OTBiZGEzNWE2ODMuLjBmY2I4YmJjNmEx YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX21vZGVz ZXRfY29tbW9uLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX21v ZGVzZXRfY29tbW9uLmgKPiBAQCAtNDAsNSArNDAsNiBAQCBpbnQgaWd0X2RhbWFnZV9pdGVyX2Rh bWFnZV9vbmVfb3V0c2lkZSh2b2lkICppZ25vcmVkKTsKPiAgaW50IGlndF9kYW1hZ2VfaXRlcl9k YW1hZ2Vfc3JjX21vdmVkKHZvaWQgKmlnbm9yZWQpOwo+ICBpbnQgaWd0X2RhbWFnZV9pdGVyX2Rh bWFnZV9ub3RfdmlzaWJsZSh2b2lkICppZ25vcmVkKTsKPiAgaW50IGlndF9kcF9tc3RfY2FsY19w Ym5fbW9kZSh2b2lkICppZ25vcmVkKTsKPiAraW50IGlndF9kcF9tc3Rfc2lkZWJhbmRfbXNnX3Jl cV9kZWNvZGUodm9pZCAqaWdub3JlZCk7Cj4gIAo+ICAjZW5kaWYKPiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vZHJtX2RwX21zdF9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVs cGVyLmgKPiBpbmRleCBjMDFmM2VhNzI3NTYuLjRjOGQxNzdlODNlNSAxMDA2NDQKPiAtLS0gYS9p bmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Rw X21zdF9oZWxwZXIuaAo+IEBAIC0yOTMsNyArMjkzLDcgQEAgc3RydWN0IGRybV9kcF9yZW1vdGVf ZHBjZF93cml0ZSB7Cj4gIHN0cnVjdCBkcm1fZHBfcmVtb3RlX2kyY19yZWFkIHsKPiAgCXU4IG51 bV90cmFuc2FjdGlvbnM7Cj4gIAl1OCBwb3J0X251bWJlcjsKPiAtCXN0cnVjdCB7Cj4gKwlzdHJ1 Y3QgZHJtX2RwX3JlbW90ZV9pMmNfcmVhZF90eCB7Cj4gIAkJdTggaTJjX2Rldl9pZDsKPiAgCQl1 OCBudW1fYnl0ZXM7Cj4gIAkJdTggKmJ5dGVzOwo+IC0tIAo+IDIuMjEuMAo+IAoKLS0gCkRhbmll bCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9n LmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==