From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id E9FB089167 for ; Mon, 18 Feb 2019 14:28:46 +0000 (UTC) Date: Mon, 18 Feb 2019 16:28:43 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Message-ID: <20190218142843.GT20097@intel.com> References: <1550499727-25316-1-git-send-email-juhapekka.heikkila@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1550499727-25316-1-git-send-email-juhapekka.heikkila@gmail.com> Subject: Re: [igt-dev] [PATCH i-g-t] tests/kms_available_modes_crc limit tested fb formats List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Juha-Pekka Heikkila Cc: igt-dev@lists.freedesktop.org List-ID: T24gTW9uLCBGZWIgMTgsIDIwMTkgYXQgMDQ6MjI6MDdQTSArMDIwMCwgSnVoYS1QZWtrYSBIZWlr a2lsYSB3cm90ZToKPiBUaGlzIHRlc3QgaXMgY2F1c2luZyB0b28gbXVjaCB1c2VsZXNzIG5vaXNl LiBMaW1pdCB0ZXN0ZWQKPiBmYiBmb3JtYXRzIHRvIERSTV9GT1JNQVRfQzggYW5kIERSTV9GT1JN QVRfWEJHUjIxMDEwMTAgZm9yIG5vdy4KPiBUaGVzZSB0d28gZm9ybWF0cyBhcmUgY3VycmVudGx5 IG5vdCB0ZXN0ZWQgb3RoZXJ3aXNlIHRodXMKPiB0aGV5J3JlIGxlZnQgaGVyZSBmb3Igbm93LiBE Uk1fRk9STUFUX1hCR1IyMTAxMDEwIG5lZWQgdG8gYmUKPiBpbmNsdWRlZCBpbnRvIElHVCBzdXBw b3J0ZWQgZm9ybWF0cyBhbmQgRFJNX0ZPUk1BVF9DOCB0ZXN0IG5lZWQKPiB0byBiZSBtb3ZlZCBl bHNld2hlcmUsIG1heWJlIGludG8ga21zX3BsYW5lLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEp1aGEt UGVra2EgSGVpa2tpbGEgPGp1aGFwZWtrYS5oZWlra2lsYUBnbWFpbC5jb20+CgpBY2tlZC1ieTog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCj4gLS0tCj4g IHRlc3RzL2ttc19hdmFpbGFibGVfbW9kZXNfY3JjLmMgfCAyMTcgKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgODMgaW5zZXJ0aW9ucygr KSwgMTM0IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfYXZhaWxhYmxl X21vZGVzX2NyYy5jIGIvdGVzdHMva21zX2F2YWlsYWJsZV9tb2Rlc19jcmMuYwo+IGluZGV4IDdm ZjM4NWYuLmE1MTAwNmIgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMva21zX2F2YWlsYWJsZV9tb2Rlc19j cmMuYwo+ICsrKyBiL3Rlc3RzL2ttc19hdmFpbGFibGVfbW9kZXNfY3JjLmMKPiBAQCAtMTAxLDE3 ICsxMDEsMTcgQEAgc3RhdGljIHZvaWQgZ2VuZXJhdGVfY29tcGFyaXNvbl9jcmNfbGlzdChkYXRh X3QgKmRhdGEsIGlndF9vdXRwdXRfdCAqb3V0cHV0KQo+ICAJaWd0X3BsYW5lX3NldF9mYihwcmlt YXJ5LCAmZGF0YS0+cHJpbWFyeV9mYik7Cj4gIAlpZ3RfZGlzcGxheV9jb21taXQyKCZkYXRhLT5k aXNwbGF5LCBkYXRhLT5jb21taXQpOwo+ICAKPiArCWlndF9waXBlX2NyY19kcmFpbihkYXRhLT5w aXBlX2NyYyk7Cj4gIAlpZ3RfcGlwZV9jcmNfZ2V0X2N1cnJlbnQoZGF0YS0+Z2Z4X2ZkLCBkYXRh LT5waXBlX2NyYywgJmRhdGEtPmN1cnNvcl9jcmMpOwo+ICAJaWd0X3BsYW5lX3NldF9mYihwcmlt YXJ5LCBOVUxMKTsKPiAgCWlndF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXksIGRhdGEt PmNvbW1pdCk7Cj4gIAo+IC0JaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZGF0YS0+Z2Z4 X2ZkKSkgPCA5ID8KPiAtCQkgIGlndF9wYWludF9jb2xvcihjciwgMCwgMCwgbW9kZS0+aGRpc3Bs YXksIG1vZGUtPnZkaXNwbGF5LCAxLjAsIDEuMCwgMS4wKSA6Cj4gLQkJICBpZ3RfcGFpbnRfY29s b3JfYWxwaGEoY3IsIDAsIDAsIG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwgMS4wLCAx LjAsIDEuMCwgMS4wKTsKPiArCWlndF9wYWludF9jb2xvcihjciwgMCwgMCwgbW9kZS0+aGRpc3Bs YXksIG1vZGUtPnZkaXNwbGF5LCAxLjAsIDEuMCwgMS4wKTsKPiAgCj4gIAlpZ3RfcGxhbmVfc2V0 X2ZiKHByaW1hcnksICZkYXRhLT5wcmltYXJ5X2ZiKTsKPiAgCWlndF9kaXNwbGF5X2NvbW1pdDIo JmRhdGEtPmRpc3BsYXksIGRhdGEtPmNvbW1pdCk7Cj4gIAo+ICsJaWd0X3BpcGVfY3JjX2RyYWlu KGRhdGEtPnBpcGVfY3JjKTsKPiAgCWlndF9waXBlX2NyY19nZXRfY3VycmVudChkYXRhLT5nZnhf ZmQsIGRhdGEtPnBpcGVfY3JjLCAmZGF0YS0+ZnVsbHNjcmVlbl9jcmMpOwo+ICAKPiAgCWNhaXJv X2Rlc3Ryb3koY3IpOwo+IEBAIC0xMjIsNDggKzEyMiwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IHsKPiAgCXVpbnQzMl90CWZvdXJjYzsKPiAgCWNoYXIJCXplcm9wYWRkaW5nOwo+ICAJZW51bQkJ eyBCWVRFU19QUF8xPTEsCj4gLQkJCQlCWVRFU19QUF8yPTIsCj4gLQkJCQlCWVRFU19QUF80PTQs Cj4gLQkJCQlOVjEyLAo+IC0JCQkJUDAxMCwKPiAtCQkJCVNLSVA0IH0gYnBwOwo+ICsJCQkJQllU RVNfUFBfND00fSBicHA7Cj4gIAl1aW50MzJfdAl2YWx1ZTsKPiAgfSBmaWxsZXJzW10gPSB7Cj4g IAl7IERSTV9GT1JNQVRfQzgsIDAsIEJZVEVTX1BQXzEsIDB4ZmZ9LAo+IC0JeyBEUk1fRk9STUFU X1JHQjU2NSwgMCwgQllURVNfUFBfMiwgMHhmZmZmfSwKPiAtCXsgRFJNX0ZPUk1BVF9YUkdCODg4 OCwgMCwgQllURVNfUFBfNCwgMHhmZmZmZmZmZn0sCj4gLQl7IERSTV9GT1JNQVRfWEJHUjg4ODgs IDAsIEJZVEVTX1BQXzQsIDB4ZmZmZmZmZmZ9LAo+IC0KPiAtCS8qCj4gLQkgKiBmb2xsb3dpbmcg dHdvIGFyZSBza2lwcGVkIGJlY2F1c2UgYmxlbmRpbmcgc2VlbXMgdG8gd29yawo+IC0JICogaW5j b3JyZWN0bHkgd2l0aCBleGNlcHRpb24gb2YgQVIyNCBvbiBjdXJzb3IgcGxhbmUuCj4gLQkgKiBU ZXN0IHN0aWxsIGNyZWF0ZXMgdGhlIHBsYW5lcywganVzdCBmaWxsaW5nIHBsYW5lCj4gLQkgKiBh bmQgZ2V0dGluZyBjcmMgaXMgc2tpcHBlZC4KPiAtCSAqLwo+IC0JeyBEUk1fRk9STUFUX0FSR0I4 ODg4LCAwLCBTS0lQNCwgMHhmZmZmZmZmZn0sCj4gLQl7IERSTV9GT1JNQVRfQUJHUjg4ODgsIDAs IFNLSVA0LCAweDAwZmZmZmZmfSwKPiAtCj4gLQl7IERSTV9GT1JNQVRfWFJHQjIxMDEwMTAsIDAs IEJZVEVTX1BQXzQsIDB4ZmZmZmZmZmZ9LAo+ICAJeyBEUk1fRk9STUFUX1hCR1IyMTAxMDEwLCAw LCBCWVRFU19QUF80LCAweGZmZmZmZmZmfSwKPiAtCj4gLQl7IERSTV9GT1JNQVRfWVVZViwgMCwg QllURVNfUFBfNCwgMHg4MGViODBlYn0sCj4gLQl7IERSTV9GT1JNQVRfWVZZVSwgMCwgQllURVNf UFBfNCwgMHg4MGViODBlYn0sCj4gLQl7IERSTV9GT1JNQVRfVllVWSwgMCwgQllURVNfUFBfNCwg MHhlYjgwZWI4MH0sCj4gLQl7IERSTV9GT1JNQVRfVVlWWSwgMCwgQllURVNfUFBfNCwgMHhlYjgw ZWI4MH0sCj4gLQo+IC0JLyoKPiAtCSAqIChzZW1pLSlwbGFuYXIgZm9ybWF0cwo+IC0JICovCj4g LQl7IERSTV9GT1JNQVRfTlYxMiwgMCwgTlYxMiwgMHg4MGVifSwKPiAtI2lmZGVmIERSTV9GT1JN QVRfUDAxMAo+IC0JeyBEUk1fRk9STUFUX1AwMTAsIDAsIFAwMTAsIDB4ODAwMGViMDB9LAo+IC0j ZW5kaWYKPiAtI2lmZGVmIERSTV9GT1JNQVRfUDAxMgo+IC0JeyBEUk1fRk9STUFUX1AwMTIsIDAs IFAwMTAsIDB4ODAwMGViMDB9LAo+IC0jZW5kaWYKPiAtI2lmZGVmIERSTV9GT1JNQVRfUDAxNgo+ IC0JeyBEUk1fRk9STUFUX1AwMTYsIDAsIFAwMTAsIDB4ODAwMGViMDB9LAo+IC0jZW5kaWYKPiAg CXsgMCwgMCwgMCwgMCB9Cj4gIH07Cj4gIAo+IEBAIC0xNzUsMTAgKzEzOCw5IEBAIHN0YXRpYyBi b29sIGZpbGxfaW5fZmIoZGF0YV90ICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgaWd0X3Bs YW5lX3QgKnBsYW5lLAo+ICAJCSAgICAgICB1aW50MzJfdCBmb3JtYXQpCj4gIHsKPiAgCXNpZ25l ZCBpLCBjLCB3cml0ZXNpemU7Cj4gLQl1bnNpZ25lZCBzaG9ydCogcHRlbXBfMTZfYnVmOwo+ICAJ dW5zaWduZWQgaW50KiBwdGVtcF8zMl9idWY7Cj4gIAo+IC0JZm9yKCBpID0gMDsgZmlsbGVyc1tp XS5mb3VyY2MgIT0gMDsgaSsrICkgewo+ICsJZm9yKCBpID0gMDsgaSA8IEFSUkFZX1NJWkUoZmls bGVycyktMTsgaSsrICkgewo+ICAJCWlmKCBmaWxsZXJzW2ldLmZvdXJjYyA9PSBmb3JtYXQgKQo+ ICAJCQlicmVhazsKPiAgCX0KPiBAQCAtMTkwLDUzICsxNTIsMTAgQEAgc3RhdGljIGJvb2wgZmls bF9pbl9mYihkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRfdCAqb3V0cHV0LCBpZ3RfcGxhbmVfdCAq cGxhbmUsCj4gIAkJCXB0ZW1wXzMyX2J1ZltjXSA9IGZpbGxlcnNbaV0udmFsdWU7Cj4gIAkJd3Jp dGVzaXplID0gZGF0YS0+c2l6ZTsKPiAgCQlicmVhazsKPiAtCWNhc2UgQllURVNfUFBfMjoKPiAt CQlwdGVtcF8xNl9idWYgPSAodW5zaWduZWQgc2hvcnQqKWRhdGEtPmJ1ZjsKPiAtCQlmb3IgKGMg PSAwOyBjIDwgZGF0YS0+c2l6ZS8yOyBjKyspCj4gLQkJCXB0ZW1wXzE2X2J1ZltjXSA9ICh1bnNp Z25lZCBzaG9ydClmaWxsZXJzW2ldLnZhbHVlOwo+IC0JCXdyaXRlc2l6ZSA9IGRhdGEtPnNpemU7 Cj4gLQkJYnJlYWs7Cj4gIAljYXNlIEJZVEVTX1BQXzE6Cj4gIAkJbWVtc2V0KCh2b2lkICopZGF0 YS0+YnVmLCBmaWxsZXJzW2ldLnZhbHVlLCBkYXRhLT5zaXplKTsKPiAgCQl3cml0ZXNpemUgPSBk YXRhLT5zaXplOwo+ICAJCWJyZWFrOwo+IC0JY2FzZSBOVjEyOgo+IC0JCW1lbXNldCgodm9pZCAq KWRhdGEtPmJ1ZiwgZmlsbGVyc1tpXS52YWx1ZSYweGZmLAo+IC0JCSAgICAgICBkYXRhLT5mYi5v ZmZzZXRzWzFdKTsKPiAtCj4gLQkJbWVtc2V0KCh2b2lkICopKGRhdGEtPmJ1ZitkYXRhLT5mYi5v ZmZzZXRzWzFdKSwKPiAtCQkgICAgICAgKGZpbGxlcnNbaV0udmFsdWU+PjgpJjB4ZmYsCj4gLQkJ ICAgICAgIGRhdGEtPnNpemUgLSBkYXRhLT5mYi5vZmZzZXRzWzFdKTsKPiAtCj4gLQkJd3JpdGVz aXplID0gZGF0YS0+c2l6ZTsKPiAtCQlicmVhazsKPiAtCWNhc2UgUDAxMDoKPiAtCQlwdGVtcF8x Nl9idWYgPSAodW5zaWduZWQgc2hvcnQqKWRhdGEtPmJ1ZjsKPiAtCQlmb3IgKGMgPSAwOyBjIDwg ZGF0YS0+c2l6ZS8yOyBjKyspCj4gLQkJCXB0ZW1wXzE2X2J1ZltjXSA9ICh1bnNpZ25lZCBzaG9y dClmaWxsZXJzW2ldLnZhbHVlJjB4ZmZmZjsKPiAtCj4gLQkJcHRlbXBfMTZfYnVmID0gKHVuc2ln bmVkIHNob3J0KikoZGF0YS0+YnVmK2RhdGEtPnNpemUpOwo+IC0JCWZvciAoYyA9IDA7IGMgPCBk YXRhLT5zaXplLzI7IGMrKykKPiAtCQkJcHRlbXBfMTZfYnVmW2NdID0gKHVuc2lnbmVkIHNob3J0 KShmaWxsZXJzW2ldLnZhbHVlPj4xNikmMHhmZmZmOwo+IC0KPiAtCQl3cml0ZXNpemUgPSBkYXRh LT5zaXplK2RhdGEtPnNpemUvMjsKPiAtCQlicmVhazsKPiAtCWNhc2UgU0tJUDQ6Cj4gLQkJaWYg KGZpbGxlcnNbaV0uZm91cmNjID09IERSTV9GT1JNQVRfQVJHQjg4ODggJiYKPiAtCQkgICAgcGxh bmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKSB7Cj4gLQkJLyoKPiAtCQkgKiBzcGVj aWFsIGZvciBjdXJzb3IgcGxhbmUgd2hlcmUgYmxlbmRpbmcgd29ya3MgY29ycmVjdGx5Lgo+IC0J CSAqLwo+IC0JCQlwdGVtcF8zMl9idWYgPSAodW5zaWduZWQgaW50KilkYXRhLT5idWY7Cj4gLQkJ CWZvciAoYyA9IDA7IGMgPCBkYXRhLT5zaXplLzQ7IGMrKykKPiAtCQkJCXB0ZW1wXzMyX2J1Zltj XSA9IGZpbGxlcnNbaV0udmFsdWU7Cj4gLQkJCXdyaXRlc2l6ZSA9IGRhdGEtPnNpemU7Cj4gLQkJ CWJyZWFrOwo+IC0JCX0KPiAtCQlpZ3RfaW5mbygiRm9ybWF0ICVzIENSQyBjb21wYXJpc29uIHNr aXBwZWQgYnkgZGVzaWduLlxuIiwKPiAtCQkJIChjaGFyKikmZmlsbGVyc1tpXS5mb3VyY2MpOwo+ IC0KPiAtCQlyZXR1cm4gZmFsc2U7Cj4gIAlkZWZhdWx0Ogo+ICAJCWlndF9pbmZvKCJVbnN1cHBv cnRlZCBtb2RlIGZvciB0ZXN0ICVzXG4iLAo+ICAJCQkgKGNoYXIqKSZmaWxsZXJzW2ldLmZvdXJj Yyk7Cj4gQEAgLTI3MSwyNiArMTkwLDIwIEBAIHN0YXRpYyBib29sIHNldHVwX2ZiKGRhdGFfdCAq ZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQsIGlndF9wbGFuZV90ICpwbGFuZSwKPiAgCQl0aWxp bmcgPSBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FOwo+ICAJfQo+ICAKPiAtCWZvciAoaSA9IDA7 IGZpbGxlcnNbaV0uZm91cmNjICE9IDA7IGkrKykgewo+IC0JCWlmIChmaWxsZXJzW2ldLmZvdXJj YyA9PSBmb3JtYXQpCj4gKwlmb3IoIGkgPSAwOyBpIDwgQVJSQVlfU0laRShmaWxsZXJzKS0xOyBp KysgKSB7Cj4gKwkJaWYoIGZpbGxlcnNbaV0uZm91cmNjID09IGZvcm1hdCApCj4gIAkJCWJyZWFr Owo+ICAJfQo+ICAKPiAgCXN3aXRjaCAoZmlsbGVyc1tpXS5icHApIHsKPiAtCWNhc2UgTlYxMjoK PiAgCWNhc2UgQllURVNfUFBfMToKPiAgCQlicHAgPSA4Owo+ICAJCWJyZWFrOwo+IC0KPiAtCWNh c2UgUDAxMDoKPiAtCWNhc2UgQllURVNfUFBfMjoKPiAtCQlicHAgPSAxNjsKPiAtCQlicmVhazsK PiAtCj4gLQljYXNlIFNLSVA0Ogo+ICAJY2FzZSBCWVRFU19QUF80Ogo+ICAJCWJwcCA9IDMyOwo+ ICAJCWJyZWFrOwo+ICsJZGVmYXVsdDoKPiArCQlyZXR1cm4gZmFsc2U7Cj4gIAl9Cj4gIAo+ICAJ aWd0X2dldF9mYl90aWxlX3NpemUoZGF0YS0+Z2Z4X2ZkLCB0aWxpbmcsIGJwcCwKPiBAQCAtMjk5 LDE3ICsyMTIsNiBAQCBzdGF0aWMgYm9vbCBzZXR1cF9mYihkYXRhX3QgKmRhdGEsIGlndF9vdXRw dXRfdCAqb3V0cHV0LCBpZ3RfcGxhbmVfdCAqcGxhbmUsCj4gIAlkYXRhLT5mYi5zdHJpZGVzWzBd ID0gQUxJR04odyAqIGJwcCAvIDgsIHRpbGVfd2lkdGgpOwo+ICAJZ2Vtc2l6ZSA9IGRhdGEtPnNp emUgPSBkYXRhLT5mYi5zdHJpZGVzWzBdICogQUxJR04oaCwgdGlsZV9oZWlnaHQpOwo+ICAKPiAt CWlmIChmaWxsZXJzW2ldLmJwcCA9PSBQMDEwIHx8IGZpbGxlcnNbaV0uYnBwID09IE5WMTIpIHsK PiAtCQlkYXRhLT5mYi5vZmZzZXRzWzFdID0gZGF0YS0+c2l6ZTsKPiAtCQlkYXRhLT5mYi5zdHJp ZGVzWzFdID0gZGF0YS0+ZmIuc3RyaWRlc1swXTsKPiAtCQlnZW1zaXplID0gZGF0YS0+c2l6ZSAq IDI7Cj4gLQo+IC0JCWlmIChmaWxsZXJzW2ldLmJwcCA9PSBOVjEyKQo+IC0JCQlkYXRhLT5zaXpl ICs9IGRhdGEtPmZiLnN0cmlkZXNbMV0gKiBBTElHTihoLzIsIHRpbGVfaGVpZ2h0KTsKPiAtCj4g LQkJbnVtX3BsYW5lcyA9IDI7Cj4gLQl9Cj4gLQo+ICAJZGF0YS0+Z2VtX2hhbmRsZSA9IGdlbV9j cmVhdGUoZGF0YS0+Z2Z4X2ZkLCBnZW1zaXplKTsKPiAgCXJldCA9IF9fZ2VtX3NldF90aWxpbmco ZGF0YS0+Z2Z4X2ZkLCBkYXRhLT5nZW1faGFuZGxlLAo+ICAJCQkgICAgICAgaWd0X2ZiX21vZF90 b190aWxpbmcodGlsaW5nKSwKPiBAQCAtMzg2LDEyICsyODgsMjMgQEAgc3RhdGljIGJvb2wgcHJl cGFyZV9jcnRjKGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQsCj4gIAo+ICBzdGF0 aWMgaW50Cj4gIHRlc3Rfb25lX21vZGUoZGF0YV90KiBkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1 dCwgaWd0X3BsYW5lX3QqIHBsYW5lLAo+IC0JICAgICAgaW50IG1vZGUpCj4gKwkgICAgICBpbnQg bW9kZSwgZW51bSBwaXBlIHBpcGUpCj4gIHsKPiAgCWlndF9jcmNfdCBjdXJyZW50X2NyYzsKPiAg CXNpZ25lZCByVmFsID0gMDsKPiAgCWJvb2wgZG9fY3JjOwo+IC0JY2hhciogY3JjY29tcGFyZVsy XTsKPiArCWludCBpOwo+ICsKPiArCS8qCj4gKwkgKiBMaW1pdCB0ZXN0cyBvbmx5IHRvIHRob3Nl IGZiIGZvcm1hdHMgbGlzdGVkIGluIGZpbGxlcnMgdGFibGUKPiArCSAqLwo+ICsJZm9yKCBpID0g MDsgaSA8IEFSUkFZX1NJWkUoZmlsbGVycyktMTsgaSsrICkgewo+ICsJCWlmKCBmaWxsZXJzW2ld LmZvdXJjYyA9PSBtb2RlICkKPiArCQkJYnJlYWs7Cj4gKwl9Cj4gKwo+ICsJaWYoZmlsbGVyc1tp XS5icHAgPT0gMCkKPiArCQlyZXR1cm4gZmFsc2U7Cj4gIAo+ICAJaWYgKHByZXBhcmVfY3J0Yyhk YXRhLCBvdXRwdXQsIHBsYW5lLCBtb2RlKSl7Cj4gIAkJLyoKPiBAQCAtNDEyLDI5ICszMjUsMzAg QEAgdGVzdF9vbmVfbW9kZShkYXRhX3QqIGRhdGEsIGlndF9vdXRwdXRfdCAqb3V0cHV0LCBpZ3Rf cGxhbmVfdCogcGxhbmUsCj4gIAkJCWlmIChwbGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQRV9D VVJTT1IpIHsKPiAgCQkJCWlmICghaWd0X2NoZWNrX2NyY19lcXVhbCgmY3VycmVudF9jcmMsCj4g IAkJCQkJJmRhdGEtPmZ1bGxzY3JlZW5fY3JjKSkgewo+IC0JCQkJCWNyY2NvbXBhcmVbMF0gPSBp Z3RfY3JjX3RvX3N0cmluZygmY3VycmVudF9jcmMpOwo+IC0JCQkJCWNyY2NvbXBhcmVbMV0gPSBp Z3RfY3JjX3RvX3N0cmluZygmZGF0YS0+ZnVsbHNjcmVlbl9jcmMpOwo+IC0JCQkJCWlndF93YXJu KCJjcmMgbWlzbWF0Y2guIHRhcmdldCAlLjhzLCByZXN1bHQgJS44cy5cbiIsIGNyY2NvbXBhcmVb MF0sIGNyY2NvbXBhcmVbMV0pOwo+IC0JCQkJCWZyZWUoY3JjY29tcGFyZVswXSk7Cj4gLQkJCQkJ ZnJlZShjcmNjb21wYXJlWzFdKTsKPiArCQkJCQlpZ3Rfd2FybigiY3JjIG1pc21hdGNoLiBjb25u ZWN0b3IgJXMgdXNpbmcgcGlwZSAlcyIgXAo+ICsJCQkJCQkiIHBsYW5lIGluZGV4ICVkIG1vZGUg JS40c1xuIiwKPiArCQkJCQkJaWd0X291dHB1dF9uYW1lKG91dHB1dCksCj4gKwkJCQkJCWttc3Rl c3RfcGlwZV9uYW1lKHBpcGUpLAo+ICsJCQkJCQlwbGFuZS0+aW5kZXgsCj4gKwkJCQkJCShjaGFy KikmbW9kZSk7Cj4gIAkJCQkJclZhbCsrOwo+ICAJCQkJfQo+ICAJCQl9IGVsc2Ugewo+ICAJCQkJ aWYgKCFpZ3RfY2hlY2tfY3JjX2VxdWFsKCZjdXJyZW50X2NyYywKPiAgCQkJCQkmZGF0YS0+Y3Vy c29yX2NyYykpIHsKPiAtCQkJCQljcmNjb21wYXJlWzBdID0gaWd0X2NyY190b19zdHJpbmcoJmN1 cnJlbnRfY3JjKTsKPiAtCQkJCQljcmNjb21wYXJlWzFdID0gaWd0X2NyY190b19zdHJpbmcoJmRh dGEtPmN1cnNvcl9jcmMpOwo+IC0JCQkJCWlndF93YXJuKCJjcmMgbWlzbWF0Y2guIHRhcmdldCAl LjhzLCByZXN1bHQgJS44cy5cbiIsIGNyY2NvbXBhcmVbMF0sIGNyY2NvbXBhcmVbMV0pOwo+IC0J CQkJCWZyZWUoY3JjY29tcGFyZVswXSk7Cj4gLQkJCQkJZnJlZShjcmNjb21wYXJlWzFdKTsKPiAr CQkJCQlpZ3Rfd2FybigiY3JjIG1pc21hdGNoLiBjb25uZWN0b3IgJXMgdXNpbmcgcGlwZSAlcyIg XAo+ICsJCQkJCQkiIHBsYW5lIGluZGV4ICVkIG1vZGUgJS40c1xuIiwKPiArCQkJCQkJaWd0X291 dHB1dF9uYW1lKG91dHB1dCksCj4gKwkJCQkJCWttc3Rlc3RfcGlwZV9uYW1lKHBpcGUpLAo+ICsJ CQkJCQlwbGFuZS0+aW5kZXgsCj4gKwkJCQkJCShjaGFyKikmbW9kZSk7Cj4gIAkJCQkJclZhbCsr Owo+ICAJCQkJfQo+ICAJCQl9Cj4gIAkJfQo+IC0JCXJlbW92ZV9mYihkYXRhLCBvdXRwdXQsIHBs YW5lKTsKPiAtCQlyZXR1cm4gclZhbDsKPiAgCX0KPiAtCXJldHVybiAxOwo+ICsJcmVtb3ZlX2Zi KGRhdGEsIG91dHB1dCwgcGxhbmUpOwo+ICsJcmV0dXJuIHJWYWw7Cj4gIH0KPiAgCj4gIAo+IEBA IC00NDUsMTQgKzM1OSw0NCBAQCB0ZXN0X2F2YWlsYWJsZV9tb2RlcyhkYXRhX3QqIGRhdGEpCj4g IAlpZ3RfcGxhbmVfdCAqcGxhbmU7Cj4gIAlpbnQgbW9kZWluZGV4Owo+ICAJZW51bSBwaXBlIHBp cGU7Cj4gLQlpbnQgaW52YWxpZHMgPSAwOwo+ICsJaW50IGludmFsaWRzID0gMCwgaSwgbHV0X3Np emU7Cj4gIAlkcm1Nb2RlUGxhbmUgKm1vZGVQbGFuZTsKPiAtCWNoYXIgcGxhbmV0eXBlWzNdWzhd ID0geyJPVkVSTEFZXDAiLCAiUFJJTUFSWVwwIiwgIkNVUlNPUlwwIiB9Owo+ICsKPiArCXN0cnVj dCB7Cj4gKwkgICAgdWludDE2X3QgcmVkOwo+ICsJICAgIHVpbnQxNl90IGdyZWVuOwo+ICsJICAg IHVpbnQxNl90IGJsdWU7Cj4gKwkgICAgdWludDE2X3QgcmVzZXJ2ZWQ7Cj4gKwl9ICpsdXQgPSBO VUxMOwo+ICAKPiAgCWZvcl9lYWNoX3BpcGVfd2l0aF92YWxpZF9vdXRwdXQoJmRhdGEtPmRpc3Bs YXksIHBpcGUsIG91dHB1dCkgewo+ICAJCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBl KTsKPiAgCQlpZ3RfZGlzcGxheV9jb21taXQyKCZkYXRhLT5kaXNwbGF5LCBkYXRhLT5jb21taXQp Owo+ICAKPiArCQlpZiAoaWd0X3BpcGVfb2JqX2hhc19wcm9wKCZkYXRhLT5kaXNwbGF5LnBpcGVz W3BpcGVdLCBJR1RfQ1JUQ19HQU1NQV9MVVRfU0laRSkpIHsKPiArCQkJbHV0X3NpemUgPSBpZ3Rf cGlwZV9nZXRfcHJvcCgmZGF0YS0+ZGlzcGxheSwgcGlwZSwKPiArCQkJCQkJICAgICBJR1RfQ1JU Q19HQU1NQV9MVVRfU0laRSk7Cj4gKwo+ICsJCQlsdXQgPSBjYWxsb2Moc2l6ZW9mKCpsdXQpLCBs dXRfc2l6ZSk7Cj4gKwo+ICsJCQlmb3IgKGkgPSAwOyBpIDwgbHV0X3NpemU7IGkrKykgewo+ICsJ CQkJbHV0W2ldLnJlZCA9IChpICogMHhmZmZmIC8gKGx1dF9zaXplIC0gMSkpICYgMHg4MDAwOwo+ ICsJCQkJbHV0W2ldLmdyZWVuID0gKGkgKiAweGZmZmYgLyAobHV0X3NpemUgLSAxKSkgJiAweDgw MDA7Cj4gKwkJCQlsdXRbaV0uYmx1ZSA9IChpICogMHhmZmZmIC8gKGx1dF9zaXplIC0gMSkpICYg MHg4MDAwOwo+ICsJCQl9Cj4gKwo+ICsJCQlpZ3RfcGlwZV9yZXBsYWNlX3Byb3BfYmxvYigmZGF0 YS0+ZGlzcGxheSwgcGlwZSwKPiArCQkJCQkJICAgSUdUX0NSVENfR0FNTUFfTFVULAo+ICsJCQkJ CQkgICBsdXQsIHNpemVvZigqbHV0KSAqIGx1dF9zaXplKTsKPiArCQkJaWd0X2Rpc3BsYXlfY29t bWl0MigmZGF0YS0+ZGlzcGxheSwgZGF0YS0+Y29tbWl0KTsKPiArCj4gKwkJCWZvciAoaSA9IDA7 IGkgPCBsdXRfc2l6ZTsgaSsrKSB7Cj4gKwkJCQlsdXRbaV0ucmVkID0gaSAqIDB4ZmZmZiAvIChs dXRfc2l6ZSAtIDEpOwo+ICsJCQkJbHV0W2ldLmdyZWVuID0gaSAqIDB4ZmZmZiAvIChsdXRfc2l6 ZSAtIDEpOwo+ICsJCQkJbHV0W2ldLmJsdWUgPSBpICogMHhmZmZmIC8gKGx1dF9zaXplIC0gMSk7 Cj4gKwkJCX0KPiArCQl9Cj4gKwo+ICAJCWRhdGEtPnBpcGVfY3JjID0gaWd0X3BpcGVfY3JjX25l dyhkYXRhLT5nZnhfZmQsIHBpcGUsCj4gIAkJCQkJCSAgSU5URUxfUElQRV9DUkNfU09VUkNFX0FV VE8pOwo+ICAKPiBAQCAtNDY3LDI5ICs0MTEsMzQgQEAgdGVzdF9hdmFpbGFibGVfbW9kZXMoZGF0 YV90KiBkYXRhKQo+ICAJCQltb2RlUGxhbmUgPSBkcm1Nb2RlR2V0UGxhbmUoZGF0YS0+Z2Z4X2Zk LAo+ICAJCQkJCQkgICAgcGxhbmUtPmRybV9wbGFuZS0+cGxhbmVfaWQpOwo+ICAKPiArCQkJaWYg KHBsYW5lLT50eXBlID09IERSTV9QTEFORV9UWVBFX0NVUlNPUikKPiArCQkJCWNvbnRpbnVlOwo+ ICsKPiAgCQkJZm9yIChtb2RlaW5kZXggPSAwOwo+ICAJCQkgICAgIG1vZGVpbmRleCA8IG1vZGVQ bGFuZS0+Y291bnRfZm9ybWF0czsKPiAgCQkJICAgICBtb2RlaW5kZXgrKykgewo+ICAJCQkJZGF0 YS0+Zm9ybWF0LmR3b3JkID0gbW9kZVBsYW5lLT5mb3JtYXRzW21vZGVpbmRleF07Cj4gIAo+IC0J CQkJaWd0X2luZm8oIlRlc3RpbmcgY29ubmVjdG9yICVzIHVzaW5nIHBpcGUgJXMiIFwKPiAtCQkJ CQkgIiBwbGFuZSBpbmRleCAlZCB0eXBlICVzIG1vZGUgJXNcbiIsCj4gLQkJCQkJIGlndF9vdXRw dXRfbmFtZShvdXRwdXQpLAo+IC0JCQkJCSBrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSwKPiAtCQkJ CQkgcGxhbmUtPmluZGV4LAo+IC0JCQkJCSBwbGFuZXR5cGVbcGxhbmUtPnR5cGVdLAo+IC0JCQkJ CSAoY2hhciopJmRhdGEtPmZvcm1hdC5uYW1lKTsKPiAtCj4gIAkJCQlpbnZhbGlkcyArPSB0ZXN0 X29uZV9tb2RlKGRhdGEsIG91dHB1dCwKPiAgCQkJCQkJCSAgcGxhbmUsCj4gLQkJCQkJCQkgIG1v ZGVQbGFuZS0+Zm9ybWF0c1ttb2RlaW5kZXhdKTsKPiArCQkJCQkJCSAgbW9kZVBsYW5lLT5mb3Jt YXRzW21vZGVpbmRleF0sCj4gKwkJCQkJCQkgIHBpcGUpOwo+ICAJCQl9Cj4gIAkJCWRybU1vZGVG cmVlUGxhbmUobW9kZVBsYW5lKTsKPiAgCQl9Cj4gIAkJaWd0X3BpcGVfY3JjX3N0b3AoZGF0YS0+ cGlwZV9jcmMpOwo+ICAJCWlndF9waXBlX2NyY19mcmVlKGRhdGEtPnBpcGVfY3JjKTsKPiAtCQlp Z3RfZGlzcGxheV9jb21taXQyKCZkYXRhLT5kaXNwbGF5LCBkYXRhLT5jb21taXQpOwo+ICsKPiAr CQlpZiAobHV0ICE9IE5VTEwpIHsKPiArCQkJaWd0X3BpcGVfcmVwbGFjZV9wcm9wX2Jsb2IoJmRh dGEtPmRpc3BsYXksIHBpcGUsCj4gKwkJCQkJCSAgIElHVF9DUlRDX0dBTU1BX0xVVCwKPiArCQkJ CQkJICAgbHV0LCBzaXplb2YoKmx1dCkgKiBsdXRfc2l6ZSk7Cj4gKwkJCWZyZWUobHV0KTsKPiAr CQkJbHV0ID0gTlVMTDsKPiArCQl9Cj4gKwo+ICAJCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0 LCBQSVBFX05PTkUpOwo+ICsJCWlndF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXksIGRh dGEtPmNvbW1pdCk7Cj4gIAl9Cj4gIAlpZ3RfYXNzZXJ0KGludmFsaWRzID09IDApOwo+ICB9Cj4g LS0gCj4gMi43LjQKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+IGlndC1kZXYgbWFpbGluZyBsaXN0Cj4gaWd0LWRldkBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ln dC1kZXYKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pZ3QtZGV2