From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v8 07/19] drm/i915/dp: Compute DSC pipe config in atomic check Date: Tue, 6 Nov 2018 12:37:59 -0800 Message-ID: <20181106203759.GF26420@intel.com> References: <20181102213138.301-1-manasi.d.navare@intel.com> <20181102213138.301-8-manasi.d.navare@intel.com> <20181103020902.GA11271@intel.com> <20181106144256.GX9144@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20181106144256.GX9144@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org, Anusha Srivatsa , dri-devel@lists.freedesktop.org, Gaurav K Singh List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBOb3YgMDYsIDIwMTggYXQgMDQ6NDI6NTZQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIEZyaSwgTm92IDAyLCAyMDE4IGF0IDA3OjA5OjAzUE0gLTA3MDAsIE1hbmFz aSBOYXZhcmUgd3JvdGU6Cj4gPiBPbiBGcmksIE5vdiAwMiwgMjAxOCBhdCAwMjozMToyNlBNIC0w NzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOgo+ID4gPiBEU0MgcGFyYW1zIGxpa2UgdGhlIGVuYWJs ZSwgY29tcHJlc3NlZCBicHAsIHNsaWNlIGNvdW50IGFuZAo+ID4gPiBkc2Nfc3BsaXQgYXJlIGFk ZGVkIHRvIHRoZSBpbnRlbF9jcnRjX3N0YXRlLiBUaGVzZSBwYXJhbWV0ZXJzCj4gPiA+IGFyZSBz ZXQgYmFzZWQgb24gdGhlIHJlcXVlc3RlZCBtb2RlIGFuZCBhdmFpbGFibGUgbGluayBwYXJhbWV0 ZXJzCj4gPiA+IGR1cmluZyB0aGUgcGlwZSBjb25maWd1cmF0aW9uIGluIGF0b21pYyBjaGVjayBw aGFzZS4KPiA+ID4gVGhlc2UgdmFsdWVzIGFyZSB0aGVuIGxhdGVyIHVzZWQgdG8gcG9wdWxhdGUg dGhlIHJlbWFpbmluZyBEU0MKPiA+ID4gYW5kIFJDIHBhcmFtZXRlcnMgYmVmb3JlIGVuYmFsaW5n IERTQyBpbiBhdG9taWMgY29tbWl0Lgo+ID4gPiAKPiA+ID4gdjExOgo+ID4gPiAqIENvbnN0IGNy dGNfc3RhdGUsIHJlamVjdCBEU0Mgb24gRFAgd2l0aG91dCBGRUMgKFZpbGxlKQo+ID4gPiAqIERv bnQgc2V0IGRzY19zcGxpdCB0byBmYWxzZSAoVmlsbGUpCj4gPiA+IHYxMDoKPiA+ID4gKiBBZGQg YSBoZWxwZXIgZm9yIGRwX2RzYyBzdXBwb3J0IChWaWxsZSkKPiA+ID4gKiBTZXQgcGlwZV9jb25m aWcgdG8gbWF4IGJwcCwgbGluayBwYXJhbXMgZm9yIERTQyBmb3Igbm93IChWaWxsZSkKPiA+ID4g KiBDb21wdXRlIGJwcCAtIHVzZSBkcCBkc2Mgc3VwcG9ydCBoZWxwZXIgKFZpbGxlKQo+ID4gPiB2 OToKPiA+ID4gKiBSZWJhc2Ugb24gdG9wIG9mIGRybS10aXAgdGhhdCBub3cgdXNlcyBmYXN0X25h cnJvdyBjb25maWcKPiA+ID4gZm9yIGVkcCAoTWFuYXNpKQo+ID4gPiB2ODoKPiA+ID4gKiBDaGVj ayBmb3IgRFNDIGJwYyBub3QgMCAobWFuYXNpKQo+ID4gPiAKPiA+ID4gdjc6Cj4gPiA+ICogRml4 IGluZGVudGF0aW9uIGluIGNvbXB1dGVfbV9uIChNYW5hc2kpCj4gPiA+IAo+ID4gPiB2NiAoRnJv bSBHYXVyYXYpOgo+ID4gPiAqIFJlbW92ZSBmdW5jdGlvbiBjYWxsIG9mIGludGVsX2RwX2NvbXB1 dGVfZHNjX3BhcmFtcygpIGFuZAo+ID4gPiBpbnZva2UgaW50ZWxfZHBfY29tcHV0ZV9kc2NfcGFy YW1zKCkgaW4gdGhlIHBhdGNoIHdoZXJlCj4gPiA+IGl0IGlzIGRlZmluZWQgdG8gZml4IGNvbXBp bGF0aW9uIHdhcm5pbmcgKEdhdXJhdikKPiA+ID4gCj4gPiA+IHY1Ogo+ID4gPiBBZGQgZHJtX2Rz Y19jZmcgaW4gaW50ZWxfY3J0Y19zdGF0ZSAoTWFuYXNpKQo+ID4gPiAKPiA+ID4gdjQ6Cj4gPiA+ ICogUmViYXNlIG9uIHJlZmFjdG9yaW5nIG9mIGludGVsX2RwX2NvbXB1dGVfY29uZmlnIG9uIHRp cCAoTWFuYXNpKQo+ID4gPiAqIEFkZCBhIGNvbW1lbnQgd2h5IHdlIG5lZWQgdG8gY2hlY2sgUFNS IHdoaWxlIGVuYWJsaW5nIERTQyAoR2F1cmF2KQo+ID4gPiAKPiA+ID4gdjM6Cj4gPiA+ICogQ2hl Y2sgUFBSID4gbWF4X2NkY2xvY2sgdG8gdXNlIDIgVkRTQyBpbnN0YW5jZXMgKFZpbGxlKQo+ID4g PiAKPiA+ID4gdjI6Cj4gPiA+ICogQWRkIGlmLWVsc2UgZm9yIGVEUC9EUCAoR2F1cmF2KQo+ID4g PiAKPiA+ID4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+Cj4g PiA+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ ID4gQ2M6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KPiA+ID4g Q2M6IEdhdXJhdiBLIFNpbmdoIDxnYXVyYXYuay5zaW5naEBpbnRlbC5jb20+Cj4gPiA+IFNpZ25l ZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gPiA+ IFJldmlld2VkLWJ5OiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+ Cj4gPiA+IEFja2VkLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29t Pgo+ID4gPiAtLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8 ICAyMCArKystCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmggfCAg IDMgKy0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8IDE2NyAr KysrKysrKysrKysrKysrKysrKysrKystLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwX21zdC5jICB8ICAgMiArLQo+ID4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAxNjYgaW5zZXJ0 aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4gPiA+IGluZGV4IGIyMTlkNTg1ODE2MC4uNDc3ZTUzYzM3MzUzIDEwMDY0 NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+IEBAIC02NDQy LDcgKzY0NDIsNyBAQCBzdGF0aWMgaW50IGlyb25sYWtlX2ZkaV9jb21wdXRlX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiA+ID4gIAo+ID4gPiAgCXBpcGVfY29uZmlnLT5m ZGlfbGFuZXMgPSBsYW5lOwo+ID4gPiAgCj4gPiA+IC0JaW50ZWxfbGlua19jb21wdXRlX21fbihw aXBlX2NvbmZpZy0+cGlwZV9icHAsIGxhbmUsIGZkaV9kb3RjbG9jaywKPiA+ID4gKwlpbnRlbF9s aW5rX2NvbXB1dGVfbV9uKHBpcGVfY29uZmlnLT5waXBlX2JwcCwgMCwgbGFuZSwgZmRpX2RvdGNs b2NrLAo+ID4gPiAgCQkJICAgICAgIGxpbmtfYncsICZwaXBlX2NvbmZpZy0+ZmRpX21fbiwgZmFs c2UpOwo+ID4gPiAgCj4gPiA+ICAJcmV0ID0gaXJvbmxha2VfY2hlY2tfZmRpX2xhbmVzKGRldiwg aW50ZWxfY3J0Yy0+cGlwZSwgcGlwZV9jb25maWcpOwo+ID4gPiBAQCAtNjY3OSwxNyArNjY3OSwy NSBAQCBzdGF0aWMgdm9pZCBjb21wdXRlX21fbih1bnNpZ25lZCBpbnQgbSwgdW5zaWduZWQgaW50 IG4sCj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gIHZvaWQKPiA+ID4gLWludGVsX2xpbmtfY29tcHV0 ZV9tX24oaW50IGJpdHNfcGVyX3BpeGVsLCBpbnQgbmxhbmVzLAo+ID4gPiAraW50ZWxfbGlua19j b21wdXRlX21fbihpbnQgYml0c19wZXJfcGl4ZWwsIHVpbnQxNl90IGNvbXByZXNzZWRfYnBwLAo+ ID4gPiArCQkgICAgICAgaW50IG5sYW5lcywKPiA+ID4gIAkJICAgICAgIGludCBwaXhlbF9jbG9j aywgaW50IGxpbmtfY2xvY2ssCj4gPiA+ICAJCSAgICAgICBzdHJ1Y3QgaW50ZWxfbGlua19tX24g Km1fbiwKPiA+ID4gIAkJICAgICAgIGJvb2wgY29uc3RhbnRfbikKPiA+ID4gIHsKPiA+ID4gIAlt X24tPnR1ID0gNjQ7Cj4gPiA+ICAKPiA+ID4gLQljb21wdXRlX21fbihiaXRzX3Blcl9waXhlbCAq IHBpeGVsX2Nsb2NrLAo+ID4gPiAtCQkgICAgbGlua19jbG9jayAqIG5sYW5lcyAqIDgsCj4gPiA+ IC0JCSAgICAmbV9uLT5nbWNoX20sICZtX24tPmdtY2hfbiwKPiA+ID4gLQkJICAgIGNvbnN0YW50 X24pOwo+ID4gPiArCS8qIEZvciBEU0MsIERhdGEgTS9OIGNhbGN1bGF0aW9uIHVzZXMgY29tcHJl c3NlZCBCUFAgKi8KPiA+ID4gKwlpZiAoY29tcHJlc3NlZF9icHApCj4gPiA+ICsJCWNvbXB1dGVf bV9uKGNvbXByZXNzZWRfYnBwICogcGl4ZWxfY2xvY2ssCj4gPiA+ICsJCQkgICAgbGlua19jbG9j ayAqIG5sYW5lcyAqIDgsCj4gPiA+ICsJCQkgICAgJm1fbi0+Z21jaF9tLCAmbV9uLT5nbWNoX24s Cj4gPiA+ICsJCQkgICAgY29uc3RhbnRfbik7Cj4gPiA+ICsJZWxzZQo+ID4gPiArCQljb21wdXRl X21fbihiaXRzX3Blcl9waXhlbCAqIHBpeGVsX2Nsb2NrLAo+ID4gPiArCQkJICAgIGxpbmtfY2xv Y2sgKiBubGFuZXMgKiA4LAo+ID4gPiArCQkJICAgICZtX24tPmdtY2hfbSwgJm1fbi0+Z21jaF9u LAo+ID4gPiArCQkJICAgIGNvbnN0YW50X24pOwo+ID4gPiAgCj4gPiA+ICAJY29tcHV0ZV9tX24o cGl4ZWxfY2xvY2ssIGxpbmtfY2xvY2ssCj4gPiA+ICAJCSAgICAmbV9uLT5saW5rX20sICZtX24t PmxpbmtfbiwKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAo+ID4gPiBpbmRl eCA1ZDUwZGVjYmNiYjUuLmIwYjIzZTFlOTM5MiAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuaAo+ID4gPiBAQCAtNDA3LDcgKzQwNyw4IEBAIHN0cnVjdCBpbnRl bF9saW5rX21fbiB7Cj4gPiA+ICAJICAgICAoX19pKSsrKSBcCj4gPiA+ICAJCWZvcl9lYWNoX2lm KHBsYW5lKQo+ID4gPiAgCj4gPiA+IC12b2lkIGludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50IGJw cCwgaW50IG5sYW5lcywKPiA+ID4gK3ZvaWQgaW50ZWxfbGlua19jb21wdXRlX21fbihpbnQgYnBw LCB1aW50MTZfdCBjb21wcmVzc2VkX2JwcCwKPiA+ID4gKwkJCSAgICBpbnQgbmxhbmVzLAo+ID4g PiAgCQkJICAgIGludCBwaXhlbF9jbG9jaywgaW50IGxpbmtfY2xvY2ssCj4gPiA+ICAJCQkgICAg c3RydWN0IGludGVsX2xpbmtfbV9uICptX24sCj4gPiA+ICAJCQkgICAgYm9vbCBjb25zdGFudF9u KTsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+IGluZGV4IGIzOWI0YmRhOGU0MC4u NTgzMjZmYzlkOTM1IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4g QEAgLTQ3LDYgKzQ3LDggQEAKPiA+ID4gIAo+ID4gPiAgLyogRFAgRFNDIHNtYWxsIGpvaW5lciBo YXMgMiBGSUZPcyBlYWNoIG9mIDY0MCB4IDYgYnl0ZXMgKi8KPiA+ID4gICNkZWZpbmUgRFBfRFND X01BWF9TTUFMTF9KT0lORVJfUkFNX0JVRkZFUgk2MTQ0MAo+ID4gPiArI2RlZmluZSBEUF9EU0Nf TUlOX1NVUFBPUlRFRF9CUEMJCTgKPiA+ID4gKyNkZWZpbmUgRFBfRFNDX01BWF9TVVBQT1JURURf QlBDCQkxMAo+ID4gPiAgCj4gPiA+ICAvKiBEUCBEU0MgdGhyb3VnaHB1dCB2YWx1ZXMgdXNlZCBm b3Igc2xpY2UgY291bnQgY2FsY3VsYXRpb25zIEtQaXhlbHMvcyAqLwo+ID4gPiAgI2RlZmluZSBE UF9EU0NfUEVBS19QSVhFTF9SQVRFCQkJMjcyMDAwMAo+ID4gPiBAQCAtMTg0MCw2ICsxODQyLDI5 IEBAIHN0cnVjdCBsaW5rX2NvbmZpZ19saW1pdHMgewo+ID4gPiAgCWludCBtaW5fYnBwLCBtYXhf YnBwOwo+ID4gPiAgfTsKPiA+ID4gIAo+ID4gPiArc3RhdGljIGJvb2wgaW50ZWxfZHBfc291cmNl X3N1cHBvcnRzX2RzYyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gPiArCQkJCQkgY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ID4gPiArewo+ID4gPiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHAp Owo+ID4gPiArCj4gPiA+ICsJLyogRklYTUU6IEZFQyBuZWVkZWQgZm9yIGV4dGVybmFsIERQIHVu dGlsIHRoZW4gcmVqZWN0IERTQyBvbiBEUCAqLwo+ID4gPiArCWlmICghaW50ZWxfZHBfaXNfZWRw KGludGVsX2RwKSkKPiA+ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4gPiArCj4gPiA+ICsJcmV0dXJu IElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTAgJiYKPiA+ID4gKwkJcGlwZV9jb25maWctPmNwdV90 cmFuc2NvZGVyICE9IFRSQU5TQ09ERVJfQTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiArc3RhdGlj IGJvb2wgaW50ZWxfZHBfc3VwcG9ydHNfZHNjKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4g PiA+ICsJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4g PiA+ICt7Cj4gPiA+ICsJaWYgKCFpbnRlbF9kcF9zb3VyY2Vfc3VwcG9ydHNfZHNjKGludGVsX2Rw LCBwaXBlX2NvbmZpZykgfHwKPiA+ID4gKwkgICAgIWRybV9kcF9zaW5rX3N1cHBvcnRzX2RzYyhp bnRlbF9kcC0+ZHNjX2RwY2QpKQo+ID4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ICsKPiA+ID4g KwlyZXR1cm4gdHJ1ZTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgc3RhdGljIGludCBpbnRlbF9k cF9jb21wdXRlX2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gPiAgCQkJCXN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiA+ID4gIHsKPiA+ID4gQEAgLTE4NjMs NiArMTg4OCwxNSBAQCBzdGF0aWMgaW50IGludGVsX2RwX2NvbXB1dGVfYnBwKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAsCj4gPiA+ICAJCX0KPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gKwkvKiBJ ZiBEU0MgaXMgc3VwcG9ydGVkLCB1c2UgdGhlIG1heCB2YWx1ZSByZXBvcnRlZCBieSBwYW5lbCAq Lwo+ID4gPiArCWlmIChpbnRlbF9kcF9zdXBwb3J0c19kc2MoaW50ZWxfZHAsIHBpcGVfY29uZmln KSkgewo+ID4gPiArCQlicGMgPSBtaW5fdCh1OCwKPiA+ID4gKwkJCSAgICBkcm1fZHBfZHNjX3Np bmtfbWF4X2NvbG9yX2RlcHRoKGludGVsX2RwLT5kc2NfZHBjZCksCj4gPiA+ICsJCQkgICAgRFBf RFNDX01BWF9TVVBQT1JURURfQlBDKTsKPiA+ID4gKwkJaWYgKGJwYykKPiA+ID4gKwkJCWJwcCA9 IG1pbihicHAsIDMqYnBjKTsKPiA+IAo+ID4gVmlsbGUsIHRoZSBwcm9ibGVtIHdpdGggY2hvc2lu ZyB0aGUgbWluIGJldHdlZW4gZXhpc3RpbmcgYnBwIGFuZCAzICogYnBjIChjb21wdXRlZCBmcm9t IERTQyBkcGNkKSBpcyB0aGF0IEVESUQgYmFzZWQgYnBjCj4gPiBtaWdodCBiZSBsb3dlciBhbmQg aW4gY2FzZSBEU0MgaXMgc3VwcG9ydGVkLCB0aGUgYnBjIHZhbHVlIHNob3VsZCBiZSBiYXNlZCBv biB0aGUgZHNjIGNvbG9yIGRlcHRoIGFuZCB0aGF0IHNob3VsZAo+ID4gb3ZlcnJpZGUgdGhlIHZh bHVlIG9idGFpbmVkIGZyb20gRURJRC4gIFRoaXMgd2FzIGNvbmZpcm1lZCBmcm9tIHRoZSBWRFND IHByb2dyYW1taW5nIGRvY3VtZW50cyBvYnRhaW5lZCBmcm9tCj4gPiBIVyBhcmNoaXRlY3R1cmUg Zm9sa3MKPiA+IAo+ID4gU28gaSB0aGluayBpdCBzaG91bGQgc3RpbGwgYmUgaWYgRFNDIHN1cHBv cnRlZCB1c2UgdGhlIGJwYyBkaXJlY3RseSBmcm9tIG1pbl90KHU4LCBkcm1fZHBfZHNjX3Npbmtf bWF4X2NvbG9yX2RlcHRoKGludGVsX2RwLT5kc2NfZHBjZCksRFBfRFNDX01BWF9TVVBQT1JURURf QlBDKTsKPiAKPiBNYXliZQo+IAo+IGJwY19taW4gPSBzb21ldGhpbmc7Cj4gYnBjX21heCA9IHNv bWV0aGluZ19lbHNlOwoKU28gdGhpcyBicGNfbWF4IHdpbGwgY29tZSBmcm9tIGludGVsX2RwX2Nv bXB1dGVfYnBwKCkgYW5kIHRoZXJlIGl0IHdpbGwganVzdCByZXR1cm4gYnBjIGZyb20gRFNDIERQ Q0QgY29sb3IgZGVwdGggaWYgRFNDIHN1cHBvcnRlZC4KU28gdGhlbiBpbiB0aGF0IGZ1bmN0aW9u IHdlIGRvbnQgbmVlZCBtaW4oYnBwLCAzKmJwYyk7IHJpZ2h0PwoKPiBicHAgPSBjbGFtcChicHAs IGJwY19taW4qMywgYnBjX21heCozKTsKCkFuZCB0aGVuIHdlIGNsYW1wIHRoZSBwaXBlX2JwcCBi ZXR3ZWVuIG1pbiBicGMgYW5kIG1heCBicGMsIHJpZ2h0PwoKTWFuYXNpCgoKPiAKPiBFaXRoZXIg dGhhdCBvciB3ZSBqdXN0IHJldHVybiBhbiBlcnJvciBvZiB0aGUgcmVxdWVzdGVkIGJwcCBpcyBi ZWxvdyB0aGUKPiBkc2MgbWluaW11bS4KPiAKPiA+IAo+ID4gTWFuYXNpCj4gPiAKPiA+ID4gKwl9 Cj4gPiA+ICsKPiA+ID4gIAlyZXR1cm4gYnBwOwo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+IEBAIC0x OTc0LDYgKzIwMDgsODAgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0KHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiA+ICAJcmV0dXJuIGZhbHNlOwo+ID4gPiAgfQo+ID4g PiAgCj4gPiA+ICtzdGF0aWMgYm9vbCBpbnRlbF9kcF9kc2NfY29tcHV0ZV9jb25maWcoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwKPiA+ID4gKwkJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnLAo+ID4gPiArCQkJCQljb25zdCBzdHJ1Y3QgbGlua19jb25maWdfbGltaXRz ICpsaW1pdHMpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGln X3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gPiA+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Cj4g PiA+ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25m aWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiA+ID4gKwl1MTYgZHNjX21heF9vdXRwdXRfYnBwID0g MDsKPiA+ID4gKwl1OCBkc2NfZHBfc2xpY2VfY291bnQgPSAwOwo+ID4gPiArCj4gPiA+ICsJaWYg KCFpbnRlbF9kcF9zdXBwb3J0c19kc2MoaW50ZWxfZHAsIHBpcGVfY29uZmlnKSkKPiA+ID4gKwkJ cmV0dXJuIGZhbHNlOwo+ID4gPiArCj4gPiA+ICsJLyogRFNDIG5vdCBzdXBwb3J0ZWQgZm9yIERT QyBzaW5rIEJQQyA8IDggKi8KPiA+ID4gKwlpZiAobGltaXRzLT5tYXhfYnBwIDwgMyAqIERQX0RT Q19NSU5fU1VQUE9SVEVEX0JQQykgewo+ID4gPiArCQlEUk1fREVCVUdfS01TKCJObyBEU0Mgc3Vw cG9ydCBmb3IgbGVzcyB0aGFuIDhicGNcbiIpOwo+ID4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ ICsJfQo+ID4gPiArCj4gPiA+ICsJLyoKPiA+ID4gKwkgKiBGb3Igbm93IGVuYWJsZSBEU0MgZm9y IG1heCBicHAsIG1heCBsaW5rIHJhdGUsIG1heCBsYW5lIGNvdW50Lgo+ID4gPiArCSAqIE9wdGlt aXplIHRoaXMgbGF0ZXIgZm9yIHRoZSBtaW5pbXVtIHBvc3NpYmxlIGxpbmsgcmF0ZS9sYW5lIGNv dW50Cj4gPiA+ICsJICogd2l0aCBEU0MgZW5hYmxlZCBmb3IgdGhlIHJlcXVlc3RlZCBtb2RlLgo+ ID4gPiArCSAqLwo+ID4gPiArCXBpcGVfY29uZmlnLT5waXBlX2JwcCA9IGxpbWl0cy0+bWF4X2Jw cDsKPiA+ID4gKwlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGludGVsX2RwLT5jb21tb25fcmF0 ZXNbbGltaXRzLT5tYXhfY2xvY2tdOwo+ID4gPiArCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0g bGltaXRzLT5tYXhfbGFuZV9jb3VudDsKPiA+ID4gKwo+ID4gPiArCWlmIChpbnRlbF9kcF9pc19l ZHAoaW50ZWxfZHApKSB7Cj4gPiA+ICsJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNz ZWRfYnBwID0KPiA+ID4gKwkJCWRybV9lZHBfZHNjX3Npbmtfb3V0cHV0X2JwcChpbnRlbF9kcC0+ ZHNjX2RwY2QpID4+IDQ7Cj4gPiA+ICsJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLnNsaWNlX2Nv dW50ID0KPiA+ID4gKwkJCWRybV9kcF9kc2Nfc2lua19tYXhfc2xpY2VfY291bnQoaW50ZWxfZHAt PmRzY19kcGNkLAo+ID4gPiArCQkJCQkJCXRydWUpOwo+ID4gPiArCX0gZWxzZSB7Cj4gPiA+ICsJ CWRzY19tYXhfb3V0cHV0X2JwcCA9Cj4gPiA+ICsJCQlpbnRlbF9kcF9kc2NfZ2V0X291dHB1dF9i cHAocGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gPiA+ICsJCQkJCQkgICAgcGlwZV9jb25maWct PmxhbmVfY291bnQsCj4gPiA+ICsJCQkJCQkgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywK PiA+ID4gKwkJCQkJCSAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5KTsKPiA+ID4gKwkJ ZHNjX2RwX3NsaWNlX2NvdW50ID0KPiA+ID4gKwkJCWludGVsX2RwX2RzY19nZXRfc2xpY2VfY291 bnQoaW50ZWxfZHAsCj4gPiA+ICsJCQkJCQkgICAgIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ss Cj4gPiA+ICsJCQkJCQkgICAgIGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkpOwo+ID4gPiAr CQlpZiAoIShkc2NfbWF4X291dHB1dF9icHAgJiYgZHNjX2RwX3NsaWNlX2NvdW50KSkgewo+ID4g PiArCQkJRFJNX0RFQlVHX0tNUygiQ29tcHJlc3NlZCBCUFAvU2xpY2UgQ291bnQgbm90IHN1cHBv cnRlZFxuIik7Cj4gPiA+ICsJCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ICsJCX0KPiA+ID4gKwkJcGlw ZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHAgPSBkc2NfbWF4X291dHB1dF9icHAg Pj4gNDsKPiA+ID4gKwkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xpY2VfY291bnQgPSBkc2Nf ZHBfc2xpY2VfY291bnQ7Cj4gPiA+ICsJfQo+ID4gPiArCS8qCj4gPiA+ICsJICogVkRTQyBlbmdp bmUgb3BlcmF0ZXMgYXQgMSBQaXhlbCBwZXIgY2xvY2ssIHNvIGlmIHBlYWsgcGl4ZWwgcmF0ZQo+ ID4gPiArCSAqIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSBDZGNsb2NrIGFuZCBpZiBzbGlj ZSBjb3VudCBpcyBldmVuCj4gPiA+ICsJICogdGhlbiB3ZSBuZWVkIHRvIHVzZSAyIFZEU0MgaW5z dGFuY2VzLgo+ID4gPiArCSAqLwo+ID4gPiArCWlmIChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2Nr ID4gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxKSB7Cj4gPiA+ICsJCWlmIChwaXBlX2NvbmZpZy0+ ZHNjX3BhcmFtcy5zbGljZV9jb3VudCA+IDEpIHsKPiA+ID4gKwkJCXBpcGVfY29uZmlnLT5kc2Nf cGFyYW1zLmRzY19zcGxpdCA9IHRydWU7Cj4gPiA+ICsJCX0gZWxzZSB7Cj4gPiA+ICsJCQlEUk1f REVCVUdfS01TKCJDYW5ub3Qgc3BsaXQgc3RyZWFtIHRvIHVzZSAyIFZEU0MgaW5zdGFuY2VzXG4i KTsKPiA+ID4gKwkJCXJldHVybiBmYWxzZTsKPiA+ID4gKwkJfQo+ID4gPiArCX0KPiA+ID4gKwlw aXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2lvbl9lbmFibGUgPSB0cnVlOwo+ID4gPiAr CURSTV9ERUJVR19LTVMoIkRQIERTQyBjb21wdXRlZCB3aXRoIElucHV0IEJwcCA9ICVkICIKPiA+ ID4gKwkJICAgICAgIkNvbXByZXNzZWQgQnBwID0gJWQgU2xpY2UgQ291bnQgPSAlZFxuIiwKPiA+ ID4gKwkJICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwLAo+ID4gPiArCQkgICAgICBwaXBlX2Nv bmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCwKPiA+ID4gKwkJICAgICAgcGlwZV9jb25m aWctPmRzY19wYXJhbXMuc2xpY2VfY291bnQpOwo+ID4gPiArCj4gPiA+ICsJcmV0dXJuIHRydWU7 Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gIHN0YXRpYyBib29sCj4gPiA+ICBpbnRlbF9kcF9jb21w dXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiAgCQkJ ICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gPiA+IEBAIC0xOTgy LDYgKzIwOTAsNyBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ID4gPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNf dG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ID4gPiAgCXN0cnVjdCBsaW5rX2NvbmZpZ19s aW1pdHMgbGltaXRzOwo+ID4gPiAgCWludCBjb21tb25fbGVuOwo+ID4gPiArCWJvb2wgcmV0ID0g ZmFsc2U7Cj4gPiA+ICAKPiA+ID4gIAljb21tb25fbGVuID0gaW50ZWxfZHBfY29tbW9uX2xlbl9y YXRlX2xpbWl0KGludGVsX2RwLAo+ID4gPiAgCQkJCQkJICAgIGludGVsX2RwLT5tYXhfbGlua19y YXRlKTsKPiA+ID4gQEAgLTE5OTUsOCArMjEwNCwxMiBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtf Y29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiAgCWxpbWl0cy5taW5f bGFuZV9jb3VudCA9IDE7Cj4gPiA+ICAJbGltaXRzLm1heF9sYW5lX2NvdW50ID0gaW50ZWxfZHBf bWF4X2xhbmVfY291bnQoaW50ZWxfZHApOwo+ID4gPiAgCj4gPiA+IC0JbGltaXRzLm1pbl9icHAg PSA2ICogMzsKPiA+ID4gIAlsaW1pdHMubWF4X2JwcCA9IGludGVsX2RwX2NvbXB1dGVfYnBwKGlu dGVsX2RwLCBwaXBlX2NvbmZpZyk7Cj4gPiA+ICsJaWYgKGludGVsX2RwX3N1cHBvcnRzX2RzYyhp bnRlbF9kcCwgcGlwZV9jb25maWcpICYmCj4gPiA+ICsJICAgIGxpbWl0cy5tYXhfYnBwID49IERQ X0RTQ19NSU5fU1VQUE9SVEVEX0JQQyozKQo+ID4gPiArCQlsaW1pdHMubWluX2JwcCA9IERQX0RT Q19NSU5fU1VQUE9SVEVEX0JQQyAqIDM7Cj4gPiA+ICsJZWxzZQo+ID4gPiArCQlsaW1pdHMubWlu X2JwcCA9IDYgKiAzOwo+ID4gPiAgCj4gPiA+ICAJaWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9k cCkgJiYgaW50ZWxfZHAtPmVkcF9kcGNkWzBdIDwgRFBfRURQXzE0KSB7Cj4gPiA+ICAJCS8qCj4g PiA+IEBAIC0yMDIwLDcgKzIxMzMsNyBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiAgCQkgICAgICBpbnRlbF9kcC0+Y29t bW9uX3JhdGVzW2xpbWl0cy5tYXhfY2xvY2tdLAo+ID4gPiAgCQkgICAgICBsaW1pdHMubWF4X2Jw cCwgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jayk7Cj4gPiA+ICAKPiA+ID4gLQlpZiAoaW50ZWxf ZHBfaXNfZWRwKGludGVsX2RwKSkgewo+ID4gPiArCWlmIChpbnRlbF9kcF9pc19lZHAoaW50ZWxf ZHApKQo+ID4gPiAgCQkvKgo+ID4gPiAgCQkgKiBPcHRpbWl6ZSBmb3IgZmFzdCBhbmQgbmFycm93 LiBlRFAgMS4zIHNlY3Rpb24gMy4zIGFuZCBlRFAgMS40Cj4gPiA+ICAJCSAqIHNlY3Rpb24gQS4x OiAiSXQgaXMgcmVjb21tZW5kZWQgdGhhdCB0aGUgbWluaW11bSBudW1iZXIgb2YKPiA+ID4gQEAg LTIwMzAsMjYgKzIxNDMsNDIgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gIAkJICogTm90ZSB0aGF0IHdlIHVzZSB0aGUg bWF4IGNsb2NrIGFuZCBsYW5lIGNvdW50IGZvciBlRFAgMS4zIGFuZAo+ID4gPiAgCQkgKiBlYXJs aWVyLCBhbmQgZmFzdCB2cy4gd2lkZSBpcyBpcnJlbGV2YW50Lgo+ID4gPiAgCQkgKi8KPiA+ID4g LQkJaWYgKCFpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX2Zhc3QoaW50ZWxfZHAsIHBpcGVf Y29uZmlnLAo+ID4gPiAtCQkJCQkJICAgICAgICZsaW1pdHMpKQo+ID4gPiAtCQkJcmV0dXJuIGZh bHNlOwo+ID4gPiAtCX0gZWxzZSB7Cj4gPiA+ICsJCXJldCA9IGludGVsX2RwX2NvbXB1dGVfbGlu a19jb25maWdfZmFzdChpbnRlbF9kcCwgcGlwZV9jb25maWcsCj4gPiA+ICsJCQkJCQkJJmxpbWl0 cyk7Cj4gPiA+ICsJZWxzZQo+ID4gPiAgCQkvKiBPcHRpbWl6ZSBmb3Igc2xvdyBhbmQgd2lkZS4g Ki8KPiA+ID4gLQkJaWYgKCFpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUoaW50ZWxf ZHAsIHBpcGVfY29uZmlnLAo+ID4gPiAtCQkJCQkJICAgICAgICZsaW1pdHMpKQo+ID4gPiArCQly ZXQgPSBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUoaW50ZWxfZHAsIHBpcGVfY29u ZmlnLAo+ID4gPiArCQkJCQkJCSZsaW1pdHMpOwo+ID4gPiArCj4gPiA+ICsJLyogZW5hYmxlIGNv bXByZXNzaW9uIGlmIHRoZSBtb2RlIGRvZXNuJ3QgZml0IGF2YWlsYWJsZSBCVyAqLwo+ID4gPiAr CWlmICghcmV0KSB7Cj4gPiA+ICsJCWlmICghaW50ZWxfZHBfZHNjX2NvbXB1dGVfY29uZmlnKGlu dGVsX2RwLCBwaXBlX2NvbmZpZywKPiA+ID4gKwkJCQkJCSAmbGltaXRzKSkKPiA+ID4gIAkJCXJl dHVybiBmYWxzZTsKPiA+ID4gIAl9Cj4gPiA+ICAKPiA+ID4gLQlEUk1fREVCVUdfS01TKCJEUCBs YW5lIGNvdW50ICVkIGNsb2NrICVkIGJwcCAlZFxuIiwKPiA+ID4gLQkJICAgICAgcGlwZV9jb25m aWctPmxhbmVfY291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4gPiAtCQkgICAgICBw aXBlX2NvbmZpZy0+cGlwZV9icHApOwo+ID4gPiArCWlmIChwaXBlX2NvbmZpZy0+ZHNjX3BhcmFt cy5jb21wcmVzc2lvbl9lbmFibGUpIHsKPiA+ID4gKwkJRFJNX0RFQlVHX0tNUygiRFAgbGFuZSBj b3VudCAlZCBjbG9jayAlZCBJbnB1dCBicHAgJWQgQ29tcHJlc3NlZCBicHAgJWRcbiIsCj4gPiA+ ICsJCQkgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xv Y2ssCj4gPiA+ICsJCQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHAsCj4gPiA+ICsJCQkgICAg ICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCk7Cj4gPiA+ICAKPiA+ID4g LQlEUk1fREVCVUdfS01TKCJEUCBsaW5rIHJhdGUgcmVxdWlyZWQgJWkgYXZhaWxhYmxlICVpXG4i LAo+ID4gPiAtCQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNy dGNfY2xvY2ssCj4gPiA+IC0JCQkJCSAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKSwKPiA+ID4g LQkJICAgICAgaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywK PiA+ID4gLQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCkpOwo+ID4gPiArCQlEUk1f REVCVUdfS01TKCJEUCBsaW5rIHJhdGUgcmVxdWlyZWQgJWkgYXZhaWxhYmxlICVpXG4iLAo+ID4g PiArCQkJICAgICAgaW50ZWxfZHBfbGlua19yZXF1aXJlZChhZGp1c3RlZF9tb2RlLT5jcnRjX2Ns b2NrLAo+ID4gPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2Vk X2JwcCksCj4gPiA+ICsJCQkgICAgICBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29uZmln LT5wb3J0X2Nsb2NrLAo+ID4gPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCkp Owo+ID4gPiArCX0gZWxzZSB7Cj4gPiA+ICsJCURSTV9ERUJVR19LTVMoIkRQIGxhbmUgY291bnQg JWQgY2xvY2sgJWQgYnBwICVkXG4iLAo+ID4gPiArCQkJICAgICAgcGlwZV9jb25maWctPmxhbmVf Y291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4gPiArCQkJICAgICAgcGlwZV9jb25m aWctPnBpcGVfYnBwKTsKPiA+ID4gIAo+ID4gPiArCQlEUk1fREVCVUdfS01TKCJEUCBsaW5rIHJh dGUgcmVxdWlyZWQgJWkgYXZhaWxhYmxlICVpXG4iLAo+ID4gPiArCQkJICAgICAgaW50ZWxfZHBf bGlua19yZXF1aXJlZChhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ID4gPiArCQkJCQkJICAg ICBwaXBlX2NvbmZpZy0+cGlwZV9icHApLAo+ID4gPiArCQkJICAgICAgaW50ZWxfZHBfbWF4X2Rh dGFfcmF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiA+ID4gKwkJCQkJCSAgICAgcGlwZV9j b25maWctPmxhbmVfY291bnQpKTsKPiA+ID4gKwl9Cj4gPiA+ICAJcmV0dXJuIHRydWU7Cj4gPiA+ ICB9Cj4gPiA+ICAKPiA+ID4gQEAgLTIxMzMsNyArMjI2Miw5IEBAIGludGVsX2RwX2NvbXB1dGVf Y29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiAgCQkJaW50ZWxfY29u bl9zdGF0ZS0+YnJvYWRjYXN0X3JnYiA9PSBJTlRFTF9CUk9BRENBU1RfUkdCX0xJTUlURUQ7Cj4g PiA+ICAJfQo+ID4gPiAgCj4gPiA+IC0JaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZp Zy0+cGlwZV9icHAsIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAo+ID4gPiArCWludGVsX2xpbmtf Y29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLAo+ID4gPiArCQkJICAgICAgIHBpcGVf Y29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwLAo+ID4gPiArCQkJICAgICAgIHBpcGVf Y29uZmlnLT5sYW5lX2NvdW50LAo+ID4gPiAgCQkJICAgICAgIGFkanVzdGVkX21vZGUtPmNydGNf Y2xvY2ssCj4gPiA+ICAJCQkgICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gPiA+ICAJ CQkgICAgICAgJnBpcGVfY29uZmlnLT5kcF9tX24sCj4gPiA+IEBAIC0yMTQyLDcgKzIyNzMsNyBA QCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiA+ID4gIAlpZiAoaW50ZWxfY29ubmVjdG9yLT5wYW5lbC5kb3duY2xvY2tfbW9kZSAhPSBOVUxM ICYmCj4gPiA+ICAJCWRldl9wcml2LT5kcnJzLnR5cGUgPT0gU0VBTUxFU1NfRFJSU19TVVBQT1JU KSB7Cj4gPiA+ICAJCQlwaXBlX2NvbmZpZy0+aGFzX2RycnMgPSB0cnVlOwo+ID4gPiAtCQkJaW50 ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAsCj4gPiA+ICsJCQlpbnRl bF9saW5rX2NvbXB1dGVfbV9uKHBpcGVfY29uZmlnLT5waXBlX2JwcCwgMCwKPiA+ID4gIAkJCQkJ ICAgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAo+ID4gPiAgCQkJCQkgICAgICAgaW50ZWxf Y29ubmVjdG9yLT5wYW5lbC5kb3duY2xvY2tfbW9kZS0+Y2xvY2ssCj4gPiA+ICAJCQkJCSAgICAg ICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwX21zdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBf bXN0LmMKPiA+ID4gaW5kZXggOGI3MWQ2NGViZDlkLi5lMDJjYWVkZDQ0M2MgMTAwNjQ0Cj4gPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gPiA+IEBAIC05MCw3ICs5MCw3IEBA IHN0YXRpYyBib29sIGludGVsX2RwX21zdF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiA+ID4gIAkJfQo+ID4gPiAgCX0KPiA+ID4gIAo+ID4gPiAtCWludGVs X2xpbmtfY29tcHV0ZV9tX24oYnBwLCBsYW5lX2NvdW50LAo+ID4gPiArCWludGVsX2xpbmtfY29t cHV0ZV9tX24oYnBwLCAwLCBsYW5lX2NvdW50LAo+ID4gPiAgCQkJICAgICAgIGFkanVzdGVkX21v ZGUtPmNydGNfY2xvY2ssCj4gPiA+ICAJCQkgICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ss Cj4gPiA+ICAJCQkgICAgICAgJnBpcGVfY29uZmlnLT5kcF9tX24sCj4gPiA+IC0tIAo+ID4gPiAy LjE4LjAKPiA+ID4gCj4gCj4gLS0gCj4gVmlsbGUgU3lyasOkbMOkCj4gSW50ZWwKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==