From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: Re: [PATCH i-g-t v3 4/4] chamelium: Dump obtained and reference frames to png on crc error Date: Wed, 05 Jul 2017 17:44:15 -0400 Message-ID: <1499291055.20388.13.camel@redhat.com> References: <20170705080435.26789-1-paul.kocialkowski@linux.intel.com> <20170705080435.26789-4-paul.kocialkowski@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6399D6E529 for ; Wed, 5 Jul 2017 21:44:17 +0000 (UTC) In-Reply-To: <20170705080435.26789-4-paul.kocialkowski@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paul Kocialkowski , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMDE3LTA3LTA1IGF0IDExOjA0ICswMzAwLCBQYXVsIEtvY2lhbGtvd3NraSB3cm90 ZToKPiBXaGVuIGEgQ1JDIGNvbXBhcmlzb24gZXJyb3Igb2NjdXJzLCBpdCBpcyBxdWl0ZSB1c2Vm dWwgdG8gZ2V0IGEgZHVtcAo+IG9mIGJvdGggdGhlIGZyYW1lIG9idGFpbmVkIGZyb20gdGhlIGNo YW1lbGl1bSBhbmQgdGhlIHJlZmVyZW5jZSBpbgo+IG9yZGVyCj4gdG8gY29tcGFyZSB0aGVtLgo+ IAo+IFRoaXMgaW1wbGVtZW50cyB0aGUgZnJhbWUgZHVtcCwgd2l0aCBhIGNvbmZpZ3VyYWJsZSBw YXRoIHRoYXQgZW5hYmxlcwo+IHRoZSB1c2Ugb2YgdGhpcyBmZWF0dXJlLgo+IAo+IFNpZ25lZC1v ZmYtYnk6IFBhdWwgS29jaWFsa293c2tpIDxwYXVsLmtvY2lhbGtvd3NraUBsaW51eC5pbnRlbC5j b20+Cj4gLS0tCj4gwqBsaWIvaWd0X2NoYW1lbGl1bS5jIHzCoMKgMjEgKysrKysrKysrKysKPiDC oGxpYi9pZ3RfY2hhbWVsaXVtLmggfMKgwqDCoDEgKwo+IMKgbGliL2lndF9kZWJ1Z2ZzLmPCoMKg wqB8wqDCoDIwICsrKysrKysrKysKPiDCoGxpYi9pZ3RfZGVidWdmcy5owqDCoMKgfMKgwqDCoDEg Kwo+IMKgdGVzdHMvY2hhbWVsaXVtLmPCoMKgwqB8IDEwNCArKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tLS0tCj4gwqA1IGZpbGVzIGNoYW5nZWQsIDgy IGluc2VydGlvbnMoKyksIDY1IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9saWIvaWd0 X2NoYW1lbGl1bS5jIGIvbGliL2lndF9jaGFtZWxpdW0uYwo+IGluZGV4IGVmNTFlZjY4Li45YWNh Njg0MiAxMDA2NDQKPiAtLS0gYS9saWIvaWd0X2NoYW1lbGl1bS5jCj4gKysrIGIvbGliL2lndF9j aGFtZWxpdW0uYwo+IEBAIC01Nyw2ICs1Nyw3IEBACj4gwqAgKiB8WzwhLS0gbGFuZ3VhZ2U9InBs YWluIiAtLT4KPiDCoCAqCVtDaGFtZWxpdW1dCj4gwqAgKglVUkw9aHR0cDovL2NoYW1lbGVvbjo5 OTkyICMgVGhlIFVSTCB1c2VkIGZvciBjb25uZWN0aW5nIHRvCj4gdGhlIENoYW1lbGl1bSdzIFJQ QyBzZXJ2ZXIKPiArICoJRnJhbWVEdW1wUGF0aD0vdG1wICMgVGhlIHBhdGggdG8gZHVtcCBmcmFt ZXMgdGhhdCBmYWlsCj4gY29tcGFyaXNvbiBjaGVja3MKV2hpbGUgbm8gb25lIGVsc2UgcmVhbGx5 IGNhcmVzIGFib3V0IGNyZWF0aW5nIGZyYW1lIGR1bXBzIHlldCwgaXQncwpwb3NzaWJsZSBzb21l b25lIGVsc2UgbWF5IGluIHRoZSBmdXR1cmUgaWYgd2UgZXZlciBlbmQgdXAgdGFraW5nIG1vcmUK YWR2YW50YWdlIG9mIGF1dG9tYXRlZCB0ZXN0aW5nIHN5c3RlbXMgbGlrZSB0aGlzLiBTbyBJJ2Qg c3RpY2sgdGhpcyBpbgp0aGUgZ2VuZXJpYyBub24tY2hhbWVsaXVtIHNwZWNpZmljIHNlY3Rpb24g aW4gdGhlIGNvbmZpZyBmaWxlCgo+IMKgICoKPiDCoCAqCSMgVGhlIHJlc3Qgb2YgdGhlIHNlY3Rp b25zIGFyZSB1c2VkIGZvciBkZWZpbmluZyBjb25uZWN0b3IKPiBtYXBwaW5ncy4KPiDCoCAqCSMg VGhpcyBpcyByZXF1aXJlZCBzbyBhbnkgdGVzdHMgdXNpbmcgdGhlIENoYW1lbGl1bSBrbm93Cj4g d2hpY2ggY29ubmVjdG9yCj4gQEAgLTExNSwxMSArMTE2LDI2IEBAIHN0cnVjdCBjaGFtZWxpdW0g ewo+IMKgCXN0cnVjdCBjaGFtZWxpdW1fZWRpZCAqZWRpZHM7Cj4gwqAJc3RydWN0IGNoYW1lbGl1 bV9wb3J0ICpwb3J0czsKPiDCoAlpbnQgcG9ydF9jb3VudDsKPiArCj4gKwljaGFyICpmcmFtZV9k dW1wX3BhdGg7Cj4gwqB9Owo+IMKgCj4gwqBzdGF0aWMgc3RydWN0IGNoYW1lbGl1bSAqY2xlYW51 cF9pbnN0YW5jZTsKPiDCoAo+IMKgLyoqCj4gKyAqIGNoYW1lbGl1bV9nZXRfZnJhbWVfZHVtcF9w YXRoOgo+ICsgKiBAY2hhbWVsaXVtOiBUaGUgQ2hhbWVsaXVtIGluc3RhbmNlIHRvIHVzZQo+ICsg Kgo+ICsgKiBSZXRyaWV2ZXMgdGhlIHBhdGggdG8gZHVtcCBmcmFtZXMgdG8uCj4gKyAqCj4gKyAq IFJldHVybnM6IGEgc3RyaW5nIHdpdGggdGhlIGZyYW1lIGR1bXAgcGF0aAo+ICsgKi8KPiArY2hh ciAqY2hhbWVsaXVtX2dldF9mcmFtZV9kdW1wX3BhdGgoc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVs aXVtKQo+ICt7Cj4gKwlyZXR1cm4gY2hhbWVsaXVtLT5mcmFtZV9kdW1wX3BhdGg7Cj4gK30KPiAr Cj4gKy8qKgo+IMKgICogY2hhbWVsaXVtX2dldF9wb3J0czoKPiDCoCAqIEBjaGFtZWxpdW06IFRo ZSBDaGFtZWxpdW0gaW5zdGFuY2UgdG8gdXNlCj4gwqAgKiBAY291bnQ6IFdoZXJlIHRvIHN0b3Jl IHRoZSBudW1iZXIgb2YgcG9ydHMKPiBAQCAtMTMzOCw2ICsxMzU0LDExIEBAIHN0YXRpYyBib29s IGNoYW1lbGl1bV9yZWFkX2NvbmZpZyhzdHJ1Y3QKPiBjaGFtZWxpdW0gKmNoYW1lbGl1bSwgaW50 IGRybV9mZCkKPiDCoAkJcmV0dXJuIGZhbHNlOwo+IMKgCX0KPiDCoAo+ICsJY2hhbWVsaXVtLT5m cmFtZV9kdW1wX3BhdGggPQo+IGdfa2V5X2ZpbGVfZ2V0X3N0cmluZyhpZ3Rfa2V5X2ZpbGUsCj4g KwkJCQkJCQnCoMKgwqAiQ2hhbWVsaXUKPiBtIiwKPiArCQkJCQkJCcKgwqDCoCJGcmFtZUR1bQo+ IHBQYXRoIiwKPiArCQkJCQkJCcKgwqDCoMKgJmVycm9yKTsKPiArCj4gwqAJcmV0dXJuIGNoYW1l bGl1bV9yZWFkX3BvcnRfbWFwcGluZ3MoY2hhbWVsaXVtLCBkcm1fZmQpOwo+IMKgfQo+IMKgCj4g ZGlmZiAtLWdpdCBhL2xpYi9pZ3RfY2hhbWVsaXVtLmggYi9saWIvaWd0X2NoYW1lbGl1bS5oCj4g aW5kZXggOTA4ZTAzZDEuLmFhODgxOTcxIDEwMDY0NAo+IC0tLSBhL2xpYi9pZ3RfY2hhbWVsaXVt LmgKPiArKysgYi9saWIvaWd0X2NoYW1lbGl1bS5oCj4gQEAgLTQyLDYgKzQyLDcgQEAgc3RydWN0 IGNoYW1lbGl1bSAqY2hhbWVsaXVtX2luaXQoaW50IGRybV9mZCk7Cj4gwqB2b2lkIGNoYW1lbGl1 bV9kZWluaXQoc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVsaXVtKTsKPiDCoHZvaWQgY2hhbWVsaXVt X3Jlc2V0KHN0cnVjdCBjaGFtZWxpdW0gKmNoYW1lbGl1bSk7Cj4gwqAKPiArY2hhciAqY2hhbWVs aXVtX2dldF9mcmFtZV9kdW1wX3BhdGgoc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVsaXVtKTsKPiDC oHN0cnVjdCBjaGFtZWxpdW1fcG9ydCAqKmNoYW1lbGl1bV9nZXRfcG9ydHMoc3RydWN0IGNoYW1l bGl1bQo+ICpjaGFtZWxpdW0sCj4gwqAJCQkJCcKgwqDCoMKgaW50ICpjb3VudCk7Cj4gwqB1bnNp Z25lZCBpbnQgY2hhbWVsaXVtX3BvcnRfZ2V0X3R5cGUoY29uc3Qgc3RydWN0IGNoYW1lbGl1bV9w b3J0Cj4gKnBvcnQpOwo+IGRpZmYgLS1naXQgYS9saWIvaWd0X2RlYnVnZnMuYyBiL2xpYi9pZ3Rf ZGVidWdmcy5jCj4gaW5kZXggODBmMjVjNjEuLmRjYjRlMGE3IDEwMDY0NAo+IC0tLSBhL2xpYi9p Z3RfZGVidWdmcy5jCj4gKysrIGIvbGliL2lndF9kZWJ1Z2ZzLmMKPiBAQCAtMjgyLDYgKzI4Miwy NiBAQCBib29sIGlndF9kZWJ1Z2ZzX3NlYXJjaChpbnQgZGV2aWNlLCBjb25zdCBjaGFyCj4gKmZp bGVuYW1lLCBjb25zdCBjaGFyICpzdWJzdHJpbmcpCj4gwqAgKi8KPiDCoAo+IMKgLyoqCj4gKyAq IGlndF9jaGVja19jcmNfZXF1YWw6Cj4gKyAqIEBhOiBmaXJzdCBwaXBlIENSQyB2YWx1ZQo+ICsg KiBAYjogc2Vjb25kIHBpcGUgQ1JDIHZhbHVlCj4gKyAqCj4gKyAqIENvbXBhcmVzIHR3byBDUkMg dmFsdWVzIGFuZCByZXR1cm4gd2hldGhlciB0aGV5IG1hdGNoLgo+ICsgKgo+ICsgKiBSZXR1cm5z OiBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBDUkMgdmFsdWVzIG1hdGNoCj4gKyAq Lwo+ICtib29sIGlndF9jaGVja19jcmNfZXF1YWwoY29uc3QgaWd0X2NyY190ICphLCBjb25zdCBp Z3RfY3JjX3QgKmIpCj4gK3sKPiArCWludCBpOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBhLT5u X3dvcmRzOyBpKyspCj4gKwkJaWYgKGEtPmNyY1tpXSAhPSBiLT5jcmNbaV0pCj4gKwkJCXJldHVy biBmYWxzZTsKPiArCj4gKwlyZXR1cm4gdHJ1ZTsKPiArfQo+ICsKTWFrZSB0aGlzIGEgc2VwYXJh dGUgcGF0Y2gsIGFuZCBpbnN0ZWFkIG9mIGhhdmluZyBhbm90aGVyIGZ1bmN0aW9uIGRvCnRoZSBD UkMgY2FsY3VsYXRpb25zIGp1c3QgaGF2ZSBzb21ldGhpbmcgbGlrZSB0aGlzOgoKICogc3RhdGlj IGludCBpZ3RfZmluZF9jcmNfbWlzbWF0Y2goY29uc3QgaWd0X2NyY190ICphLCBjb25zdCBpZ3Rf Y3JjX3QKICAgKmIpOiByZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgQ1JDIG1pc21hdGNo LCAwIGlmIG5vbmUgd2FzCiAgIGZvdW5kCiAqIGJvb2wgaWd0X2NoZWNrX2NyY19lcXVhbCgpOiB1 c2VzIGlndF9maW5kX2NyY19taXNtYXRjaCgpIHRvIGZpZ3VyZQogICBvdXQgaWYgYW55dGhpbmcg bWlzbWF0Y2hlZCwgYW5kIHJldHVybiB0cnVlIGlmIHNvbWV0aGluZyBkaWQgKGFzCiAgIHdlbGws IGFsc28gc3BpdCBvdXQgc29tZSBkZWJ1Z2dpbmcgaW5mbyBtZW50aW9uaW5nIHRoZXJlIHdhcyBh CiAgIG1pc21hdGNoKQogKiB2b2lkIGlndF9hc3NlcnRfY3JjX2VxdWFsKCk6IHVzZXMgaWd0X2Zp bmRfY3JjX21pc21hdGNoKCkgdG8gZmlndXJlCiAgIG91dCBpZiBhbnl0aGluZyBtaXNtYXRjaGVk LiBJZiB0aGUgYXNzZXJ0aW9uIGZhaWxzLCB1c2UKICAgaWd0X2Fzc2VydF9lcSgpIG9uIHRoZSBt aXNtYXRjaGVkIGNyYyBzbyB3ZSBzdGlsbCBnZXQgYSB1c2VmdWwgZXJyb3IKICAgbWVzc2FnZSBv biBDUkMgZmFpbHVyZXMuCgpUaGVyZSBpc24ndCBtdWNoIGNvZGUgcmVxdWlyZWQgdG8gYWN0dWFs bHkgY29tcGFyZSBDUkNzLCBob3dldmVyIEknZApzdGlsbCBwcmVmZXIgb25seSBoYXZpbmcgb25l IGZ1bmN0aW9uIGRvaW5nIHRoZSBhY3R1YWwgY29tcGFyaXNvbiBsb2dpYwpoZXJlIHNvIHdlIG9u bHkgaGF2ZSBvbmUgcGllY2Ugb2YgY29kZSB0byB1cGRhdGUgaWYgd2UgbmVlZCB0byBtYWtlCmNo YW5nZXMgdG8gaXQgaW4gdGhlIGZ1dHVyZS4KCk11cHVmLCB5b3VyIG9waW5pb24gb24gdGhpcz8g XgoKPiArLyoqCj4gwqAgKiBpZ3RfYXNzZXJ0X2NyY19lcXVhbDoKPiDCoCAqIEBhOiBmaXJzdCBw aXBlIENSQyB2YWx1ZQo+IMKgICogQGI6IHNlY29uZCBwaXBlIENSQyB2YWx1ZQo+IGRpZmYgLS1n aXQgYS9saWIvaWd0X2RlYnVnZnMuaCBiL2xpYi9pZ3RfZGVidWdmcy5oCj4gaW5kZXggN2I4NDZh ODMuLjI2OTVjYmRhIDEwMDY0NAo+IC0tLSBhL2xpYi9pZ3RfZGVidWdmcy5oCj4gKysrIGIvbGli L2lndF9kZWJ1Z2ZzLmgKPiBAQCAtMTEzLDYgKzExMyw3IEBAIGVudW0gaW50ZWxfcGlwZV9jcmNf c291cmNlIHsKPiDCoMKgwqDCoMKgwqDCoMKgwqBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfTUFYLAo+ IMKgfTsKPiDCoAo+ICtib29sIGlndF9jaGVja19jcmNfZXF1YWwoY29uc3QgaWd0X2NyY190ICph LCBjb25zdCBpZ3RfY3JjX3QgKmIpOwo+IMKgdm9pZCBpZ3RfYXNzZXJ0X2NyY19lcXVhbChjb25z dCBpZ3RfY3JjX3QgKmEsIGNvbnN0IGlndF9jcmNfdCAqYik7Cj4gwqBjaGFyICppZ3RfY3JjX3Rv X3N0cmluZyhpZ3RfY3JjX3QgKmNyYyk7Cj4gwqAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvY2hhbWVs aXVtLmMgYi90ZXN0cy9jaGFtZWxpdW0uYwo+IGluZGV4IDVjZjhiM2FmLi4zZDk1YzA1YyAxMDA2 NDQKPiAtLS0gYS90ZXN0cy9jaGFtZWxpdW0uYwo+ICsrKyBiL3Rlc3RzL2NoYW1lbGl1bS5jCj4g QEAgLTM4MSw3ICszODEsNyBAQCBkaXNhYmxlX291dHB1dChkYXRhX3QgKmRhdGEsCj4gwqB9Cj4g wqAKPiDCoHN0YXRpYyB2b2lkCj4gLXRlc3RfZGlzcGxheV9jcmNfc2luZ2xlKGRhdGFfdCAqZGF0 YSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0KQo+ICt0ZXN0X2Rpc3BsYXlfY3JjKGRhdGFf dCAqZGF0YSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0LCBpbnQKPiBjb3VudCkKPiDCoHsK PiDCoAlpZ3RfZGlzcGxheV90IGRpc3BsYXk7Cj4gwqAJaWd0X291dHB1dF90ICpvdXRwdXQ7Cj4g QEAgLTM5MCw5ICszOTAsMTQgQEAgdGVzdF9kaXNwbGF5X2NyY19zaW5nbGUoZGF0YV90ICpkYXRh LCBzdHJ1Y3QKPiBjaGFtZWxpdW1fcG9ydCAqcG9ydCkKPiDCoAlpZ3RfY3JjX3QgKmV4cGVjdGVk X2NyYzsKPiDCoAlzdHJ1Y3QgY2hhbWVsaXVtX2ZiX2NyYyAqZmJfY3JjOwo+IMKgCXN0cnVjdCBp Z3RfZmIgZmI7Cj4gKwlzdHJ1Y3QgY2hhbWVsaXVtX2ZyYW1lX2R1bXAgKmZyYW1lOwo+IMKgCWRy bU1vZGVNb2RlSW5mbyAqbW9kZTsKPiDCoAlkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3I7Cj4g LQlpbnQgZmJfaWQsIGk7Cj4gKwlpbnQgZmJfaWQsIGksIGosIGNhcHR1cmVkX2ZyYW1lX2NvdW50 Owo+ICsJY29uc3QgY2hhciAqY29ubmVjdG9yX25hbWU7Cj4gKwljaGFyICpmcmFtZV9kdW1wX3Bh dGg7Cj4gKwljaGFyIHBhdGhbUEFUSF9NQVhdOwo+ICsJYm9vbCBlcTsKPiDCoAo+IMKgCXJlc2V0 X3N0YXRlKGRhdGEsIHBvcnQpOwo+IMKgCj4gQEAgLTQwMSw2ICs0MDYsOSBAQCB0ZXN0X2Rpc3Bs YXlfY3JjX3NpbmdsZShkYXRhX3QgKmRhdGEsIHN0cnVjdAo+IGNoYW1lbGl1bV9wb3J0ICpwb3J0 KQo+IMKgCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKG91dHB1dCwKPiBEUk1f UExBTkVfVFlQRV9QUklNQVJZKTsKPiDCoAlpZ3RfYXNzZXJ0KHByaW1hcnkpOwo+IMKgCj4gKwlj b25uZWN0b3JfbmFtZSA9IGttc3Rlc3RfY29ubmVjdG9yX3R5cGVfc3RyKGNvbm5lY3Rvci0KPiA+ Y29ubmVjdG9yX3R5cGUpOwo+ICsJZnJhbWVfZHVtcF9wYXRoID0gY2hhbWVsaXVtX2dldF9mcmFt ZV9kdW1wX3BhdGgoZGF0YS0KPiA+Y2hhbWVsaXVtKTsKPiArCj4gwqAJZm9yIChpID0gMDsgaSA8 IGNvbm5lY3Rvci0+Y291bnRfbW9kZXM7IGkrKykgewo+IMKgCQltb2RlID0gJmNvbm5lY3Rvci0+ bW9kZXNbaV07Cj4gwqAJCWZiX2lkID0gaWd0X2NyZWF0ZV9jb2xvcl9wYXR0ZXJuX2ZiKGRhdGEt PmRybV9mZCwKPiBAQCAtNDE1LDc0ICs0MjMsNDAgQEAgdGVzdF9kaXNwbGF5X2NyY19zaW5nbGUo ZGF0YV90ICpkYXRhLCBzdHJ1Y3QKPiBjaGFtZWxpdW1fcG9ydCAqcG9ydCkKPiDCoAo+IMKgCQll bmFibGVfb3V0cHV0KGRhdGEsIHBvcnQsIG91dHB1dCwgbW9kZSwgJmZiKTsKPiDCoAo+IC0JCWln dF9kZWJ1ZygiVGVzdGluZyBzaW5nbGUgQ1JDIGZldGNoXG4iKTsKPiAtCj4gLQkJY3JjID0gY2hh bWVsaXVtX2dldF9jcmNfZm9yX2FyZWEoZGF0YS0+Y2hhbWVsaXVtLAo+IHBvcnQsCj4gLQkJCQkJ CcKgMCwgMCwgMCwgMCk7Cj4gLQo+IC0JCWV4cGVjdGVkX2NyYyA9Cj4gY2hhbWVsaXVtX2NhbGN1 bGF0ZV9mYl9jcmNfcmVzdWx0KGZiX2NyYyk7Cj4gLQo+IC0JCWlndF9hc3NlcnRfY3JjX2VxdWFs KGNyYywgZXhwZWN0ZWRfY3JjKTsKPiAtCQlmcmVlKGV4cGVjdGVkX2NyYyk7Cj4gLQkJZnJlZShj cmMpOwo+IC0KPiAtCQlkaXNhYmxlX291dHB1dChkYXRhLCBwb3J0LCBvdXRwdXQpOwo+IC0JCWln dF9yZW1vdmVfZmIoZGF0YS0+ZHJtX2ZkLCAmZmIpOwo+IC0JfQo+IC0KPiAtCWRybU1vZGVGcmVl Q29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gLQlpZ3RfZGlzcGxheV9maW5pKCZkaXNwbGF5KTsKPiAt fQo+IC0KPiAtc3RhdGljIHZvaWQKPiAtdGVzdF9kaXNwbGF5X2NyY19tdWx0aXBsZShkYXRhX3Qg KmRhdGEsIHN0cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydCkKPiAtewo+IC0JaWd0X2Rpc3BsYXlf dCBkaXNwbGF5Owo+IC0JaWd0X291dHB1dF90ICpvdXRwdXQ7Cj4gLQlpZ3RfcGxhbmVfdCAqcHJp bWFyeTsKPiAtCWlndF9jcmNfdCAqY3JjOwo+IC0JaWd0X2NyY190ICpleHBlY3RlZF9jcmM7Cj4g LQlzdHJ1Y3QgY2hhbWVsaXVtX2ZiX2NyYyAqZmJfY3JjOwo+IC0Jc3RydWN0IGlndF9mYiBmYjsK PiAtCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsKPiAtCWRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3Rv cjsKPiAtCWludCBmYl9pZCwgaSwgaiwgY2FwdHVyZWRfZnJhbWVfY291bnQ7Cj4gKwkJY2hhbWVs aXVtX2NhcHR1cmUoZGF0YS0+Y2hhbWVsaXVtLCBwb3J0LCAwLCAwLCAwLCAwLAo+IGNvdW50KTsK PiArCQljcmMgPSBjaGFtZWxpdW1fcmVhZF9jYXB0dXJlZF9jcmNzKGRhdGEtPmNoYW1lbGl1bSwK PiArCQkJCQkJwqDCoMKgJmNhcHR1cmVkX2ZyYW1lX2MKPiBvdW50KTsKPiDCoAo+IC0JcmVzZXRf c3RhdGUoZGF0YSwgcG9ydCk7Cj4gKwkJaWd0X2Fzc2VydChjYXB0dXJlZF9mcmFtZV9jb3VudCA9 PSBjb3VudCk7Cj4gwqAKPiAtCW91dHB1dCA9IHByZXBhcmVfb3V0cHV0KGRhdGEsICZkaXNwbGF5 LCBwb3J0KTsKPiAtCWNvbm5lY3RvciA9IGNoYW1lbGl1bV9wb3J0X2dldF9jb25uZWN0b3IoZGF0 YS0+Y2hhbWVsaXVtLAo+IHBvcnQsIGZhbHNlKTsKPiAtCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dl dF9wbGFuZV90eXBlKG91dHB1dCwKPiBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKPiAtCWlndF9h c3NlcnQocHJpbWFyeSk7Cj4gKwkJaWd0X2RlYnVnKCJDYXB0dXJlZCAlZCBmcmFtZXNcbiIsCj4g Y2FwdHVyZWRfZnJhbWVfY291bnQpOwo+IMKgCj4gLQlmb3IgKGkgPSAwOyBpIDwgY29ubmVjdG9y LT5jb3VudF9tb2RlczsgaSsrKSB7Cj4gLQkJbW9kZSA9ICZjb25uZWN0b3ItPm1vZGVzW2ldOwo+ IC0JCWZiX2lkID0gaWd0X2NyZWF0ZV9jb2xvcl9wYXR0ZXJuX2ZiKGRhdGEtPmRybV9mZCwKPiAt CQkJCQkJwqDCoMKgwqBtb2RlLT5oZGlzcGxheSwKPiAtCQkJCQkJwqDCoMKgwqBtb2RlLT52ZGlz cGxheSwKPiAtCQkJCQkJwqDCoMKgwqBEUk1fRk9STUFUX1hSR0I4Cj4gODg4LAo+IC0JCQkJCQnC oMKgwqDCoExPQ0FMX0RSTV9GT1JNQVQKPiBfTU9EX05PTkUsCj4gLQkJCQkJCcKgwqDCoMKgMCwg MCwgMCwgJmZiKTsKPiAtCQlpZ3RfYXNzZXJ0KGZiX2lkID4gMCk7Cj4gKwkJZXhwZWN0ZWRfY3Jj ID0KPiBjaGFtZWxpdW1fY2FsY3VsYXRlX2ZiX2NyY19yZXN1bHQoZmJfY3JjKTsKPiDCoAo+IC0J CWZiX2NyYyA9IGNoYW1lbGl1bV9jYWxjdWxhdGVfZmJfY3JjX2xhdW5jaChkYXRhLQo+ID5kcm1f ZmQsICZmYik7Cj4gKwkJZm9yIChqID0gMDsgaiA8IGNhcHR1cmVkX2ZyYW1lX2NvdW50OyBqKysp IHsKPiArCQkJZXEgPSBpZ3RfY2hlY2tfY3JjX2VxdWFsKCZjcmNbal0sCj4gZXhwZWN0ZWRfY3Jj KTsKPiArCQkJaWYgKCFlcSAmJiBmcmFtZV9kdW1wX3BhdGgpIHsKPiArCQkJCWZyYW1lID0KPiBj aGFtZWxpdW1fcmVhZF9jYXB0dXJlZF9mcmFtZShkYXRhLT5jaGFtZWxpdW0sCj4gKwkJCQkJCQkJ wqDCoMKgwqAKPiDCoMKgaik7Cj4gwqAKPiAtCQllbmFibGVfb3V0cHV0KGRhdGEsIHBvcnQsIG91 dHB1dCwgbW9kZSwgJmZiKTsKPiArCQkJCWlndF9kZWJ1ZygiRHVtcGluZyByZWZlcmVuY2UgYW5k Cj4gY2hhbWVsaXVtIGZyYW1lcyB0byAlcy4uLlxuIiwKPiArCQkJCQnCoMKgZnJhbWVfZHVtcF9w YXRoKTsKPiDCoAo+IC0JCS8qIFdlIHdhbnQgdG8ga2VlcCB0aGUgZGlzcGxheSBydW5uaW5nIGZv ciBhIGxpdHRsZQo+IGJpdCwgc2luY2UKPiAtCQnCoCogdGhlcmUncyBhbHdheXMgdGhlIHBvdGVu dGlhbCB0aGUgZHJpdmVyIGlzbid0Cj4gYWJsZSB0byBrZWVwCj4gLQkJwqAqIHRoZSBkaXNwbGF5 IHJ1bm5pbmcgcHJvcGVybHkgZm9yIHZlcnkgbG9uZwo+IC0JCcKgKi8KPiAtCQljaGFtZWxpdW1f Y2FwdHVyZShkYXRhLT5jaGFtZWxpdW0sIHBvcnQsIDAsIDAsIDAsIDAsCj4gMyk7Cj4gLQkJY3Jj ID0gY2hhbWVsaXVtX3JlYWRfY2FwdHVyZWRfY3JjcyhkYXRhLT5jaGFtZWxpdW0sCj4gLQkJCQkJ CcKgwqDCoCZjYXB0dXJlZF9mcmFtZV9jCj4gb3VudCk7Cj4gKwkJCQlzbnByaW50ZihwYXRoLCBQ QVRIX01BWCwgIiVzL2ZyYW1lLQo+IHJlZmVyZW5jZS0lcy5wbmciLAo+ICsJCQkJCcKgZnJhbWVf ZHVtcF9wYXRoLAo+IGNvbm5lY3Rvcl9uYW1lKTsKPiArCQkJCWlndF93cml0ZV9mYl90b19wbmco ZGF0YS0+ZHJtX2ZkLAo+ICZmYiwgcGF0aCk7Cj4gwqAKPiAtCQlpZ3RfZGVidWcoIkNhcHR1cmVk ICVkIGZyYW1lc1xuIiwKPiBjYXB0dXJlZF9mcmFtZV9jb3VudCk7Cj4gKwkJCQlzbnByaW50Zihw YXRoLCBQQVRIX01BWCwgIiVzL2ZyYW1lLQo+IGNoYW1lbGl1bS0lcy5wbmciLAo+ICsJCQkJCcKg ZnJhbWVfZHVtcF9wYXRoLAo+IGNvbm5lY3Rvcl9uYW1lKTsKPiArCQkJCWNoYW1lbGl1bV93cml0 ZV9mcmFtZV90b19wbmcoZGF0YS0KPiA+Y2hhbWVsaXVtLAo+ICsJCQkJCQkJwqDCoMKgwqDCoGZy YW1lLAo+IHBhdGgpOwo+IMKgCj4gLQkJZXhwZWN0ZWRfY3JjID0KPiBjaGFtZWxpdW1fY2FsY3Vs YXRlX2ZiX2NyY19yZXN1bHQoZmJfY3JjKTsKPiArCQkJCWNoYW1lbGl1bV9kZXN0cm95X2ZyYW1l X2R1bXAoZnJhbWUpOwo+ICsJCQl9Cj4gwqAKPiAtCQlmb3IgKGogPSAwOyBqIDwgY2FwdHVyZWRf ZnJhbWVfY291bnQ7IGorKykKPiAtCQkJaWd0X2Fzc2VydF9jcmNfZXF1YWwoJmNyY1tqXSwgZXhw ZWN0ZWRfY3JjKTsKPiArCQkJaWd0X2ZhaWxfb25fZighZXEsCj4gKwkJCQnCoMKgwqDCoMKgwqAi Q2hhbWVsaXVtIGZyYW1lIENSQyBtaXNtYXRjaAo+IHdpdGggcmVmZXJlbmNlXG4iKTsKPiArCQl9 ClRoZXJlJ3MgbG90cyBvZiBwb3RlbnRpYWwgaGVyZSBmb3IgY29weSBwYXN0YSB0byBmb3JtIGlu IHRoZSBmdXR1cmUsCnNpbmNlIHRoZSBBUEkgaGVyZSBwdXRzIGEgbG90IG9mIHdvcmsgb24gdGhl IGNhbGxlciB0byBzZXQgdGhpbmdzIHVwCmZvciBmcmFtZSBkdW1waW5nLiBJTU8sIGl0IHdvdWxk IGJlIHdvcnRoIGl0IHRvIHRlYWNoIHRoZSBDUkMgY2hlY2tpbmcKZnVuY3Rpb25zIHRvIGF1dG9t YXRpY2FsbHkgZG8gZnJhbWUgZHVtcHMgb24gbWlzbWF0Y2ggaWYgdGhlIENSQyBzb3VyY2UKc3Vw cG9ydHMgaXQuIFRoaXMgd2lsbCBzYXZlIHVzIGZyb20gaGF2aW5nIHRvIGhhdmUgc2VwYXJhdGUg ZnJhbWUgZHVtcApBUElzIGluIHRoZSBmdXR1cmUgaWYgd2UgZXZlciBlbmQgdXAgYWRkaW5nIHN1 cHBvcnQgZm9yIG90aGVyIGtpbmRzIG9mCmF1dG9tYXRlZCB0ZXN0IGVxdWlwbWVudC4KCkFzIHdl bGwsIEkgbGlrZSBob3cgeW91IHJlbW92ZWQgdGhlIHJlZHVuZGFuY3kgYmV0d2Vlbgp0ZXN0X2Rp c3BsYXlfY3JjX3NpbmdsZSgpIGFuZCB0ZXN0X2Rpc3BsYXlfY3JjX211bHRpcGxlKCkuIEhvd2V2 ZXIKc2luY2UgdGhvc2UgYXJlIHNvbWV3aGF0IHVucmVsYXRlZCBjaGFuZ2VzIHRvIHRoZSBjb2Rl IHBhdGggZm9yIHRoZXNlCnRlc3RzIGl0IHdvdWxkIGJlIGJldHRlciB0byBoYXZlIHRoYXQgcmUt ZmFjdG9yaW5nIGFzIGEgc2VwYXJhdGUgcGF0Y2gKc28gYXMgdG8gbWFrZSBpdCBlYXNpZXIgZm9y IGFueW9uZSB3aG8gbWlnaHQgbmVlZCB0byBiaXNlY3QgdGhpcyBjb2RlCmluIHRoZSBmdXR1cmUu Cgo+IMKgCj4gwqAJCWZyZWUoZXhwZWN0ZWRfY3JjKTsKPiDCoAkJZnJlZShjcmMpOwo+IEBAIC02 NDQsMTAgKzYxOCwxMCBAQCBpZ3RfbWFpbgo+IMKgCQkJCQkJCWVkaWRfaWQsCj4gYWx0X2VkaWRf aWQpOwo+IMKgCj4gwqAJCWNvbm5lY3Rvcl9zdWJ0ZXN0KCJkcC1jcmMtc2luZ2xlIiwgRGlzcGxh eVBvcnQpCj4gLQkJCXRlc3RfZGlzcGxheV9jcmNfc2luZ2xlKCZkYXRhLCBwb3J0KTsKPiArCQkJ dGVzdF9kaXNwbGF5X2NyYygmZGF0YSwgcG9ydCwgMSk7Cj4gwqAKPiDCoAkJY29ubmVjdG9yX3N1 YnRlc3QoImRwLWNyYy1tdWx0aXBsZSIsIERpc3BsYXlQb3J0KQo+IC0JCQl0ZXN0X2Rpc3BsYXlf Y3JjX211bHRpcGxlKCZkYXRhLCBwb3J0KTsKPiArCQkJdGVzdF9kaXNwbGF5X2NyYygmZGF0YSwg cG9ydCwgMyk7Cj4gwqAJfQo+IMKgCj4gwqAJaWd0X3N1YnRlc3RfZ3JvdXAgewo+IEBAIC02OTgs MTAgKzY3MiwxMCBAQCBpZ3RfbWFpbgo+IMKgCQkJCQkJCWVkaWRfaWQsCj4gYWx0X2VkaWRfaWQp Owo+IMKgCj4gwqAJCWNvbm5lY3Rvcl9zdWJ0ZXN0KCJoZG1pLWNyYy1zaW5nbGUiLCBIRE1JQSkK PiAtCQkJdGVzdF9kaXNwbGF5X2NyY19zaW5nbGUoJmRhdGEsIHBvcnQpOwo+ICsJCQl0ZXN0X2Rp c3BsYXlfY3JjKCZkYXRhLCBwb3J0LCAxKTsKPiDCoAo+IMKgCQljb25uZWN0b3Jfc3VidGVzdCgi aGRtaS1jcmMtbXVsdGlwbGUiLCBIRE1JQSkKPiAtCQkJdGVzdF9kaXNwbGF5X2NyY19tdWx0aXBs ZSgmZGF0YSwgcG9ydCk7Cj4gKwkJCXRlc3RfZGlzcGxheV9jcmMoJmRhdGEsIHBvcnQsIDMpOwo+ IMKgCX0KPiDCoAo+IMKgCWlndF9zdWJ0ZXN0X2dyb3VwIHsKLS0gCkNoZWVycywKCUx5dWRlCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=