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: Thu, 06 Jul 2017 18:23:41 -0400 Message-ID: <1499379821.20388.29.camel@redhat.com> References: <20170705080435.26789-1-paul.kocialkowski@linux.intel.com> <20170705080435.26789-4-paul.kocialkowski@linux.intel.com> <1499291055.20388.13.camel@redhat.com> <1f7bfa6c-9546-53d9-93f1-791883d9146d@linux.intel.com> <1499340920.1379.10.camel@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 407286E642 for ; Thu, 6 Jul 2017 22:23:43 +0000 (UTC) In-Reply-To: <1499340920.1379.10.camel@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 , Martin Peres , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMDE3LTA3LTA2IGF0IDE0OjM1ICswMzAwLCBQYXVsIEtvY2lhbGtvd3NraSB3cm90 ZToKPiBPbiBUaHUsIDIwMTctMDctMDYgYXQgMTA6NDEgKzAzMDAsIE1hcnRpbiBQZXJlcyB3cm90 ZToKPiA+IE9uIDA2LzA3LzE3IDAwOjQ0LCBMeXVkZSBQYXVsIHdyb3RlOgo+ID4gPiBPbiBXZWQs IDIwMTctMDctMDUgYXQgMTE6MDQgKzAzMDAsIFBhdWwgS29jaWFsa293c2tpIHdyb3RlOgo+ID4g PiA+IFdoZW4gYSBDUkMgY29tcGFyaXNvbiBlcnJvciBvY2N1cnMsIGl0IGlzIHF1aXRlIHVzZWZ1 bCB0byBnZXQgYQo+ID4gPiA+IGR1bXAKPiA+ID4gPiBvZiBib3RoIHRoZSBmcmFtZSBvYnRhaW5l ZCBmcm9tIHRoZSBjaGFtZWxpdW0gYW5kIHRoZSByZWZlcmVuY2UKPiA+ID4gPiBpbgo+ID4gPiA+ IG9yZGVyCj4gPiA+ID4gdG8gY29tcGFyZSB0aGVtLgo+ID4gPiA+IAo+ID4gPiA+IFRoaXMgaW1w bGVtZW50cyB0aGUgZnJhbWUgZHVtcCwgd2l0aCBhIGNvbmZpZ3VyYWJsZSBwYXRoIHRoYXQKPiA+ ID4gPiBlbmFibGVzCj4gPiA+ID4gdGhlIHVzZSBvZiB0aGlzIGZlYXR1cmUuCj4gPiA+ID4gCj4g PiA+ID4gU2lnbmVkLW9mZi1ieTogUGF1bCBLb2NpYWxrb3dza2kgPHBhdWwua29jaWFsa293c2tp QGxpbnV4LmludGVsCj4gPiA+ID4gLmNvbT4KPiA+ID4gPiAtLS0KPiA+ID4gPiDCoCBsaWIvaWd0 X2NoYW1lbGl1bS5jIHzCoMKgMjEgKysrKysrKysrKysKPiA+ID4gPiDCoCBsaWIvaWd0X2NoYW1l bGl1bS5oIHzCoMKgwqAxICsKPiA+ID4gPiDCoCBsaWIvaWd0X2RlYnVnZnMuY8KgwqDCoHzCoMKg MjAgKysrKysrKysrKwo+ID4gPiA+IMKgIGxpYi9pZ3RfZGVidWdmcy5owqDCoMKgfMKgwqDCoDEg Kwo+ID4gPiA+IMKgIHRlc3RzL2NoYW1lbGl1bS5jwqDCoMKgfCAxMDQgKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiAtLS0tLQo+ID4gPiA+IC0tLS0tLS0tLS0tLQo+ ID4gPiA+IMKgIDUgZmlsZXMgY2hhbmdlZCwgODIgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25z KC0pCj4gPiA+ID4gCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfY2hhbWVsaXVtLmMgYi9s aWIvaWd0X2NoYW1lbGl1bS5jCj4gPiA+ID4gaW5kZXggZWY1MWVmNjguLjlhY2E2ODQyIDEwMDY0 NAo+ID4gPiA+IC0tLSBhL2xpYi9pZ3RfY2hhbWVsaXVtLmMKPiA+ID4gPiArKysgYi9saWIvaWd0 X2NoYW1lbGl1bS5jCj4gPiA+ID4gQEAgLTU3LDYgKzU3LDcgQEAKPiA+ID4gPiDCoMKgwqAqIHxb PCEtLSBsYW5ndWFnZT0icGxhaW4iIC0tPgo+ID4gPiA+IMKgwqDCoCoJW0NoYW1lbGl1bV0KPiA+ ID4gPiDCoMKgwqAqCVVSTD1odHRwOi8vY2hhbWVsZW9uOjk5OTIgIyBUaGUgVVJMIHVzZWQgZm9y Cj4gPiA+ID4gY29ubmVjdGluZyB0bwo+ID4gPiA+IHRoZSBDaGFtZWxpdW0ncyBSUEMgc2VydmVy Cj4gPiA+ID4gKyAqCUZyYW1lRHVtcFBhdGg9L3RtcCAjIFRoZSBwYXRoIHRvIGR1bXAgZnJhbWVz IHRoYXQKPiA+ID4gPiBmYWlsCj4gPiA+ID4gY29tcGFyaXNvbiBjaGVja3MKPiA+ID4gCj4gPiA+ IFdoaWxlIG5vIG9uZSBlbHNlIHJlYWxseSBjYXJlcyBhYm91dCBjcmVhdGluZyBmcmFtZSBkdW1w cyB5ZXQsCj4gPiA+IGl0J3MKPiA+ID4gcG9zc2libGUgc29tZW9uZSBlbHNlIG1heSBpbiB0aGUg ZnV0dXJlIGlmIHdlIGV2ZXIgZW5kIHVwIHRha2luZwo+ID4gPiBtb3JlCj4gPiA+IGFkdmFudGFn ZSBvZiBhdXRvbWF0ZWQgdGVzdGluZyBzeXN0ZW1zIGxpa2UgdGhpcy4gU28gSSdkIHN0aWNrCj4g PiA+IHRoaXMgaW4KPiA+ID4gdGhlIGdlbmVyaWMgbm9uLWNoYW1lbGl1bSBzcGVjaWZpYyBzZWN0 aW9uIGluIHRoZSBjb25maWcgZmlsZQo+ID4gPiAKPiA+ID4gPiDCoMKgwqAqCj4gPiA+ID4gwqDC oMKgKgkjIFRoZSByZXN0IG9mIHRoZSBzZWN0aW9ucyBhcmUgdXNlZCBmb3IgZGVmaW5pbmcKPiA+ ID4gPiBjb25uZWN0b3IKPiA+ID4gPiBtYXBwaW5ncy4KPiA+ID4gPiDCoMKgwqAqCSMgVGhpcyBp cyByZXF1aXJlZCBzbyBhbnkgdGVzdHMgdXNpbmcgdGhlIENoYW1lbGl1bQo+ID4gPiA+IGtub3cK PiA+ID4gPiB3aGljaCBjb25uZWN0b3IKPiA+ID4gPiBAQCAtMTE1LDExICsxMTYsMjYgQEAgc3Ry dWN0IGNoYW1lbGl1bSB7Cj4gPiA+ID4gwqDCoAlzdHJ1Y3QgY2hhbWVsaXVtX2VkaWQgKmVkaWRz Owo+ID4gPiA+IMKgwqAJc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0czsKPiA+ID4gPiDCoMKg CWludCBwb3J0X2NvdW50Owo+ID4gPiA+ICsKPiA+ID4gPiArCWNoYXIgKmZyYW1lX2R1bXBfcGF0 aDsKPiA+ID4gPiDCoCB9Owo+ID4gPiA+IMKgwqAKPiA+ID4gPiDCoCBzdGF0aWMgc3RydWN0IGNo YW1lbGl1bSAqY2xlYW51cF9pbnN0YW5jZTsKPiA+ID4gPiDCoMKgCj4gPiA+ID4gwqAgLyoqCj4g PiA+ID4gKyAqIGNoYW1lbGl1bV9nZXRfZnJhbWVfZHVtcF9wYXRoOgo+ID4gPiA+ICsgKiBAY2hh bWVsaXVtOiBUaGUgQ2hhbWVsaXVtIGluc3RhbmNlIHRvIHVzZQo+ID4gPiA+ICsgKgo+ID4gPiA+ ICsgKiBSZXRyaWV2ZXMgdGhlIHBhdGggdG8gZHVtcCBmcmFtZXMgdG8uCj4gPiA+ID4gKyAqCj4g PiA+ID4gKyAqIFJldHVybnM6IGEgc3RyaW5nIHdpdGggdGhlIGZyYW1lIGR1bXAgcGF0aAo+ID4g PiA+ICsgKi8KPiA+ID4gPiArY2hhciAqY2hhbWVsaXVtX2dldF9mcmFtZV9kdW1wX3BhdGgoc3Ry dWN0IGNoYW1lbGl1bQo+ID4gPiA+ICpjaGFtZWxpdW0pCj4gPiA+ID4gK3sKPiA+ID4gPiArCXJl dHVybiBjaGFtZWxpdW0tPmZyYW1lX2R1bXBfcGF0aDsKPiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ ID4gPiArLyoqCj4gPiA+ID4gwqDCoMKgKiBjaGFtZWxpdW1fZ2V0X3BvcnRzOgo+ID4gPiA+IMKg wqDCoCogQGNoYW1lbGl1bTogVGhlIENoYW1lbGl1bSBpbnN0YW5jZSB0byB1c2UKPiA+ID4gPiDC oMKgwqAqIEBjb3VudDogV2hlcmUgdG8gc3RvcmUgdGhlIG51bWJlciBvZiBwb3J0cwo+ID4gPiA+ IEBAIC0xMzM4LDYgKzEzNTQsMTEgQEAgc3RhdGljIGJvb2wgY2hhbWVsaXVtX3JlYWRfY29uZmln KHN0cnVjdAo+ID4gPiA+IGNoYW1lbGl1bSAqY2hhbWVsaXVtLCBpbnQgZHJtX2ZkKQo+ID4gPiA+ IMKgwqAJCXJldHVybiBmYWxzZTsKPiA+ID4gPiDCoMKgCX0KPiA+ID4gPiDCoMKgCj4gPiA+ID4g KwljaGFtZWxpdW0tPmZyYW1lX2R1bXBfcGF0aCA9Cj4gPiA+ID4gZ19rZXlfZmlsZV9nZXRfc3Ry aW5nKGlndF9rZXlfZmlsZSwKPiA+ID4gPiArCQkJCQkJCcKgwqDCoCJDaAo+ID4gPiA+IGFtZWxp dQo+ID4gPiA+IG0iLAo+ID4gPiA+ICsJCQkJCQkJwqDCoMKgIkZyCj4gPiA+ID4gYW1lRHVtCj4g PiA+ID4gcFBhdGgiLAo+ID4gPiA+ICsJCQkJCQkJwqDCoMKgwqAmZQo+ID4gPiA+IHJyb3IpOwo+ ID4gPiA+ICsKPiA+ID4gPiDCoMKgCXJldHVybiBjaGFtZWxpdW1fcmVhZF9wb3J0X21hcHBpbmdz KGNoYW1lbGl1bSwKPiA+ID4gPiBkcm1fZmQpOwo+ID4gPiA+IMKgIH0KPiA+ID4gPiDCoMKgCj4g PiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfY2hhbWVsaXVtLmggYi9saWIvaWd0X2NoYW1lbGl1 bS5oCj4gPiA+ID4gaW5kZXggOTA4ZTAzZDEuLmFhODgxOTcxIDEwMDY0NAo+ID4gPiA+IC0tLSBh L2xpYi9pZ3RfY2hhbWVsaXVtLmgKPiA+ID4gPiArKysgYi9saWIvaWd0X2NoYW1lbGl1bS5oCj4g PiA+ID4gQEAgLTQyLDYgKzQyLDcgQEAgc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVsaXVtX2luaXQo aW50IGRybV9mZCk7Cj4gPiA+ID4gwqAgdm9pZCBjaGFtZWxpdW1fZGVpbml0KHN0cnVjdCBjaGFt ZWxpdW0gKmNoYW1lbGl1bSk7Cj4gPiA+ID4gwqAgdm9pZCBjaGFtZWxpdW1fcmVzZXQoc3RydWN0 IGNoYW1lbGl1bSAqY2hhbWVsaXVtKTsKPiA+ID4gPiDCoMKgCj4gPiA+ID4gK2NoYXIgKmNoYW1l bGl1bV9nZXRfZnJhbWVfZHVtcF9wYXRoKHN0cnVjdCBjaGFtZWxpdW0KPiA+ID4gPiAqY2hhbWVs aXVtKTsKPiA+ID4gPiDCoCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKipjaGFtZWxpdW1fZ2V0X3Bv cnRzKHN0cnVjdCBjaGFtZWxpdW0KPiA+ID4gPiAqY2hhbWVsaXVtLAo+ID4gPiA+IMKgwqAJCQkJ CcKgwqDCoMKgaW50ICpjb3VudCk7Cj4gPiA+ID4gwqAgdW5zaWduZWQgaW50IGNoYW1lbGl1bV9w b3J0X2dldF90eXBlKGNvbnN0IHN0cnVjdAo+ID4gPiA+IGNoYW1lbGl1bV9wb3J0Cj4gPiA+ID4g KnBvcnQpOwo+ID4gPiA+IGRpZmYgLS1naXQgYS9saWIvaWd0X2RlYnVnZnMuYyBiL2xpYi9pZ3Rf ZGVidWdmcy5jCj4gPiA+ID4gaW5kZXggODBmMjVjNjEuLmRjYjRlMGE3IDEwMDY0NAo+ID4gPiA+ IC0tLSBhL2xpYi9pZ3RfZGVidWdmcy5jCj4gPiA+ID4gKysrIGIvbGliL2lndF9kZWJ1Z2ZzLmMK PiA+ID4gPiBAQCAtMjgyLDYgKzI4MiwyNiBAQCBib29sIGlndF9kZWJ1Z2ZzX3NlYXJjaChpbnQg ZGV2aWNlLCBjb25zdAo+ID4gPiA+IGNoYXIKPiA+ID4gPiAqZmlsZW5hbWUsIGNvbnN0IGNoYXIg KnN1YnN0cmluZykKPiA+ID4gPiDCoMKgwqAqLwo+ID4gPiA+IMKgwqAKPiA+ID4gPiDCoCAvKioK PiA+ID4gPiArICogaWd0X2NoZWNrX2NyY19lcXVhbDoKPiA+ID4gPiArICogQGE6IGZpcnN0IHBp cGUgQ1JDIHZhbHVlCj4gPiA+ID4gKyAqIEBiOiBzZWNvbmQgcGlwZSBDUkMgdmFsdWUKPiA+ID4g PiArICoKPiA+ID4gPiArICogQ29tcGFyZXMgdHdvIENSQyB2YWx1ZXMgYW5kIHJldHVybiB3aGV0 aGVyIHRoZXkgbWF0Y2guCj4gPiA+ID4gKyAqCj4gPiA+ID4gKyAqIFJldHVybnM6IEEgYm9vbGVh biBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIENSQyB2YWx1ZXMgbWF0Y2gKPiA+ID4gPiArICovCj4g PiA+ID4gK2Jvb2wgaWd0X2NoZWNrX2NyY19lcXVhbChjb25zdCBpZ3RfY3JjX3QgKmEsIGNvbnN0 IGlndF9jcmNfdAo+ID4gPiA+ICpiKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKwlpbnQgaTsKPiA+IAo+ ID4gSSB3b3VsZCBsaWtlIHRvIHNlZToKPiA+IAo+ID4gaWYgKGEtPm5fd29yZHMgIT0gYi0+bl93 b3JkcykKPiA+IMKgwqDCoMKgwqByZXR1cm4gZmFsc2U7Cj4gCj4gVmVyeSBnb29kIHN1Z2dlc3Rp b24hIEknbGwgdGFrZSB0aGF0IGluIGluIHRoZSBuZXh0IHJldmlzaW9uLgo+IAo+ID4gPiA+ICsK PiA+ID4gPiArCWZvciAoaSA9IDA7IGkgPCBhLT5uX3dvcmRzOyBpKyspCj4gPiA+ID4gKwkJaWYg KGEtPmNyY1tpXSAhPSBiLT5jcmNbaV0pCj4gPiA+ID4gKwkJCXJldHVybiBmYWxzZTsKPiA+ID4g PiArCj4gPiA+ID4gKwlyZXR1cm4gdHJ1ZTsKPiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ID4gCj4g PiA+IE1ha2UgdGhpcyBhIHNlcGFyYXRlIHBhdGNoLCBhbmQgaW5zdGVhZCBvZiBoYXZpbmcgYW5v dGhlcgo+ID4gPiBmdW5jdGlvbiBkbwo+ID4gPiB0aGUgQ1JDIGNhbGN1bGF0aW9ucyBqdXN0IGhh dmUgc29tZXRoaW5nIGxpa2UgdGhpczoKPiA+ID4gCj4gPiA+IMKgICogc3RhdGljIGludCBpZ3Rf ZmluZF9jcmNfbWlzbWF0Y2goY29uc3QgaWd0X2NyY190ICphLCBjb25zdAo+ID4gPiBpZ3RfY3Jj X3QKPiA+ID4gwqDCoMKgwqAqYik6IHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBDUkMg bWlzbWF0Y2gsIDAgaWYgbm9uZQo+ID4gPiB3YXMKPiA+ID4gwqDCoMKgwqBmb3VuZAo+ID4gCj4g PiBTb3VuZHMgZ29vZCwgYnV0IG5vIGVycm9yIHNob3VsZCByZXR1cm4gLTEsIGFzIHRvIGRpZmZl cmVudGlhdGUgaWYKPiA+IHRoZcKgCj4gPiBmaXJzdCB3b3JkIHdhcyBhbHJlYWR5IGRpZmZlcmVu dC4KPiAKPiBJIGRvbid0IHVuZGVyc3RhbmQgdGhlIHBvaW50IG9mIGdldHRpbmcgdGhlIGluZGV4 IG9mIHRoZSBDUkMgbWlzbWF0Y2gKPiBhdCBhbGwuCj4gVGhlIG9ubHkgcmVsZXZhbnQgaW5mb3Jt YXRpb24gaGVyZSBzaG91bGQgYmUgd2hldGhlciBpdCBtYXRjaGVzIG9yCj4gbm90ICh3aGljaAo+ IHdvdWxkIGJlIGNvdmVyZWQgYnkgaWd0X2NoZWNrX2NyY19lcXVhbCkuIENhbiB5b3UgZWxsYWJv cmF0ZSBvbiB0aGlzPwpJdCdzIGp1c3Qgc28gdGhhdCB3ZSBjYW4gcHJpbnQgbW9yZSBkZXRhaWxl ZCBkZWJ1Z2dpbmcgaW5mbyB0aGF0CmFjdHVhbGx5IG5vdGVzIHdoaWNoIHBhcnQgb2YgdGhlIENS QyBkaWRuJ3QgbWF0Y2guIFRoaXMgc291bmRzIGEgbGl0dGxlCnVzZWxlc3MsIGJ1dCBzb21ldGlt ZXMgeW91IGNhbiBhY3R1YWxseSB0ZWxsIHdoYXQncyBnb2luZyBvbiBieSBsb29raW5nCmF0IGhv dyBtdWNoIG9mIHRoZSBDUkMgZGlkbid0IG1hdGNoLgoKRm9yIGluc3RhbmNlLCB3aGVuIEkgd2Fz IHRyeWluZyB0byBmaWd1cmUgb3V0IHRoZSAoSSBkaWRuJ3Qga25vdyB0aGlzCndhcyB0aGUgY2F1 c2UgYXQgdGhlIHRpbWUpIEVTRCBpc3N1ZXMgSSB3YXMgaGl0dGluZyB3aXRoIERpc3BsYXlQb3J0 IG9uCnRoZSBjaGFtZWxpdW0sIHRoZSBjaHJvbWVvcyBndXlzIHdlcmUgaW1tZWRpYXRlbHkgYWJs ZSB0byB0ZWxsIGl0IHdhcwpvbmx5IGEgc2luZ2xlIHBpeGVsIHRoYXQgd2FzIG9mZiBiZWNhdXNl IG9ubHkgb25lIHNlY3Rpb24gb2YgdGhlIENSQwpkaWRuJ3QgbWF0Y2gsIHdoaWxlIHRoZSByZXN0 IG9mIGl0IGRpZC4KPiAKPiA+ID4gwqAgKiBib29sIGlndF9jaGVja19jcmNfZXF1YWwoKTogdXNl cyBpZ3RfZmluZF9jcmNfbWlzbWF0Y2goKSB0bwo+ID4gPiBmaWd1cmUKPiA+ID4gwqDCoMKgwqBv dXQgaWYgYW55dGhpbmcgbWlzbWF0Y2hlZCwgYW5kIHJldHVybiB0cnVlIGlmIHNvbWV0aGluZyBk aWQKPiA+ID4gKGFzCj4gPiA+IMKgwqDCoMKgd2VsbCwgYWxzbyBzcGl0IG91dCBzb21lIGRlYnVn Z2luZyBpbmZvIG1lbnRpb25pbmcgdGhlcmUgd2FzCj4gPiA+IGEKPiA+ID4gwqDCoMKgwqBtaXNt YXRjaCkKPiA+ID4gwqAgKiB2b2lkIGlndF9hc3NlcnRfY3JjX2VxdWFsKCk6IHVzZXMgaWd0X2Zp bmRfY3JjX21pc21hdGNoKCkgdG8KPiA+ID4gZmlndXJlCj4gPiA+IMKgwqDCoMKgb3V0IGlmIGFu eXRoaW5nIG1pc21hdGNoZWQuIElmIHRoZSBhc3NlcnRpb24gZmFpbHMsIHVzZQo+ID4gPiDCoMKg wqDCoGlndF9hc3NlcnRfZXEoKSBvbiB0aGUgbWlzbWF0Y2hlZCBjcmMgc28gd2Ugc3RpbGwgZ2V0 IGEKPiA+ID4gdXNlZnVsIGVycm9yCj4gPiA+IMKgwqDCoMKgbWVzc2FnZSBvbiBDUkMgZmFpbHVy ZXMuCj4gPiA+IAo+ID4gPiBUaGVyZSBpc24ndCBtdWNoIGNvZGUgcmVxdWlyZWQgdG8gYWN0dWFs bHkgY29tcGFyZSBDUkNzLCBob3dldmVyCj4gPiA+IEknZAo+ID4gPiBzdGlsbCBwcmVmZXIgb25s eSBoYXZpbmcgb25lIGZ1bmN0aW9uIGRvaW5nIHRoZSBhY3R1YWwgY29tcGFyaXNvbgo+ID4gPiBs b2dpYwo+ID4gPiBoZXJlIHNvIHdlIG9ubHkgaGF2ZSBvbmUgcGllY2Ugb2YgY29kZSB0byB1cGRh dGUgaWYgd2UgbmVlZCB0bwo+ID4gPiBtYWtlCj4gPiA+IGNoYW5nZXMgdG8gaXQgaW4gdGhlIGZ1 dHVyZS4KPiA+ID4gCj4gPiA+IE11cHVmLCB5b3VyIG9waW5pb24gb24gdGhpcz8gXgo+ID4gPiAK PiA+ID4gPiArLyoqCj4gPiA+ID4gwqDCoMKgKiBpZ3RfYXNzZXJ0X2NyY19lcXVhbDoKPiA+ID4g PiDCoMKgwqAqIEBhOiBmaXJzdCBwaXBlIENSQyB2YWx1ZQo+ID4gPiA+IMKgwqDCoCogQGI6IHNl Y29uZCBwaXBlIENSQyB2YWx1ZQo+ID4gPiA+IGRpZmYgLS1naXQgYS9saWIvaWd0X2RlYnVnZnMu aCBiL2xpYi9pZ3RfZGVidWdmcy5oCj4gPiA+ID4gaW5kZXggN2I4NDZhODMuLjI2OTVjYmRhIDEw MDY0NAo+ID4gPiA+IC0tLSBhL2xpYi9pZ3RfZGVidWdmcy5oCj4gPiA+ID4gKysrIGIvbGliL2ln dF9kZWJ1Z2ZzLmgKPiA+ID4gPiBAQCAtMTEzLDYgKzExMyw3IEBAIGVudW0gaW50ZWxfcGlwZV9j cmNfc291cmNlIHsKPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoElOVEVMX1BJUEVfQ1JDX1NP VVJDRV9NQVgsCj4gPiA+ID4gwqAgfTsKPiA+ID4gPiDCoMKgCj4gPiA+ID4gK2Jvb2wgaWd0X2No ZWNrX2NyY19lcXVhbChjb25zdCBpZ3RfY3JjX3QgKmEsIGNvbnN0IGlndF9jcmNfdAo+ID4gPiA+ ICpiKTsKPiA+ID4gPiDCoCB2b2lkIGlndF9hc3NlcnRfY3JjX2VxdWFsKGNvbnN0IGlndF9jcmNf dCAqYSwgY29uc3QgaWd0X2NyY190Cj4gPiA+ID4gKmIpOwo+ID4gPiA+IMKgIGNoYXIgKmlndF9j cmNfdG9fc3RyaW5nKGlndF9jcmNfdCAqY3JjKTsKPiA+ID4gPiDCoMKgCj4gPiA+ID4gZGlmZiAt LWdpdCBhL3Rlc3RzL2NoYW1lbGl1bS5jIGIvdGVzdHMvY2hhbWVsaXVtLmMKPiA+ID4gPiBpbmRl eCA1Y2Y4YjNhZi4uM2Q5NWMwNWMgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvdGVzdHMvY2hhbWVsaXVt LmMKPiA+ID4gPiArKysgYi90ZXN0cy9jaGFtZWxpdW0uYwo+ID4gPiA+IEBAIC0zODEsNyArMzgx LDcgQEAgZGlzYWJsZV9vdXRwdXQoZGF0YV90ICpkYXRhLAo+ID4gPiA+IMKgIH0KPiA+ID4gPiDC oMKgCj4gPiA+ID4gwqAgc3RhdGljIHZvaWQKPiA+ID4gPiAtdGVzdF9kaXNwbGF5X2NyY19zaW5n bGUoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQKPiA+ID4gPiAqcG9ydCkKPiA+ ID4gPiArdGVzdF9kaXNwbGF5X2NyYyhkYXRhX3QgKmRhdGEsIHN0cnVjdCBjaGFtZWxpdW1fcG9y dCAqcG9ydCwKPiA+ID4gPiBpbnQKPiA+ID4gPiBjb3VudCkKPiA+ID4gPiDCoCB7Cj4gPiA+ID4g wqDCoAlpZ3RfZGlzcGxheV90IGRpc3BsYXk7Cj4gPiA+ID4gwqDCoAlpZ3Rfb3V0cHV0X3QgKm91 dHB1dDsKPiA+ID4gPiBAQCAtMzkwLDkgKzM5MCwxNCBAQCB0ZXN0X2Rpc3BsYXlfY3JjX3Npbmds ZShkYXRhX3QgKmRhdGEsCj4gPiA+ID4gc3RydWN0Cj4gPiA+ID4gY2hhbWVsaXVtX3BvcnQgKnBv cnQpCj4gPiA+ID4gwqDCoAlpZ3RfY3JjX3QgKmV4cGVjdGVkX2NyYzsKPiA+ID4gPiDCoMKgCXN0 cnVjdCBjaGFtZWxpdW1fZmJfY3JjICpmYl9jcmM7Cj4gPiA+ID4gwqDCoAlzdHJ1Y3QgaWd0X2Zi IGZiOwo+ID4gPiA+ICsJc3RydWN0IGNoYW1lbGl1bV9mcmFtZV9kdW1wICpmcmFtZTsKPiA+ID4g PiDCoMKgCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsKPiA+ID4gPiDCoMKgCWRybU1vZGVDb25uZWN0 b3IgKmNvbm5lY3RvcjsKPiA+ID4gPiAtCWludCBmYl9pZCwgaTsKPiA+ID4gPiArCWludCBmYl9p ZCwgaSwgaiwgY2FwdHVyZWRfZnJhbWVfY291bnQ7Cj4gPiA+ID4gKwljb25zdCBjaGFyICpjb25u ZWN0b3JfbmFtZTsKPiA+ID4gPiArCWNoYXIgKmZyYW1lX2R1bXBfcGF0aDsKPiA+ID4gPiArCWNo YXIgcGF0aFtQQVRIX01BWF07Cj4gPiA+ID4gKwlib29sIGVxOwo+ID4gPiA+IMKgwqAKPiA+ID4g PiDCoMKgCXJlc2V0X3N0YXRlKGRhdGEsIHBvcnQpOwo+ID4gPiA+IMKgwqAKPiA+ID4gPiBAQCAt NDAxLDYgKzQwNiw5IEBAIHRlc3RfZGlzcGxheV9jcmNfc2luZ2xlKGRhdGFfdCAqZGF0YSwKPiA+ ID4gPiBzdHJ1Y3QKPiA+ID4gPiBjaGFtZWxpdW1fcG9ydCAqcG9ydCkKPiA+ID4gPiDCoMKgCXBy aW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKG91dHB1dCwKPiA+ID4gPiBEUk1fUExB TkVfVFlQRV9QUklNQVJZKTsKPiA+ID4gPiDCoMKgCWlndF9hc3NlcnQocHJpbWFyeSk7Cj4gPiA+ ID4gwqDCoAo+ID4gPiA+ICsJY29ubmVjdG9yX25hbWUgPSBrbXN0ZXN0X2Nvbm5lY3Rvcl90eXBl X3N0cihjb25uZWN0b3ItCj4gPiA+ID4gPiBjb25uZWN0b3JfdHlwZSk7Cj4gPiA+ID4gCj4gPiA+ ID4gKwlmcmFtZV9kdW1wX3BhdGggPSBjaGFtZWxpdW1fZ2V0X2ZyYW1lX2R1bXBfcGF0aChkYXRh LQo+ID4gPiA+ID4gY2hhbWVsaXVtKTsKPiA+ID4gPiAKPiA+ID4gPiArCj4gPiA+ID4gwqDCoAlm b3IgKGkgPSAwOyBpIDwgY29ubmVjdG9yLT5jb3VudF9tb2RlczsgaSsrKSB7Cj4gPiA+ID4gwqDC oAkJbW9kZSA9ICZjb25uZWN0b3ItPm1vZGVzW2ldOwo+ID4gPiA+IMKgwqAJCWZiX2lkID0gaWd0 X2NyZWF0ZV9jb2xvcl9wYXR0ZXJuX2ZiKGRhdGEtCj4gPiA+ID4gPmRybV9mZCwKPiA+ID4gPiBA QCAtNDE1LDc0ICs0MjMsNDAgQEAgdGVzdF9kaXNwbGF5X2NyY19zaW5nbGUoZGF0YV90ICpkYXRh LAo+ID4gPiA+IHN0cnVjdAo+ID4gPiA+IGNoYW1lbGl1bV9wb3J0ICpwb3J0KQo+ID4gPiA+IMKg wqAKPiA+ID4gPiDCoMKgCQllbmFibGVfb3V0cHV0KGRhdGEsIHBvcnQsIG91dHB1dCwgbW9kZSwg JmZiKTsKPiA+ID4gPiDCoMKgCj4gPiA+ID4gLQkJaWd0X2RlYnVnKCJUZXN0aW5nIHNpbmdsZSBD UkMgZmV0Y2hcbiIpOwo+ID4gPiA+IC0KPiA+ID4gPiAtCQljcmMgPSBjaGFtZWxpdW1fZ2V0X2Ny Y19mb3JfYXJlYShkYXRhLQo+ID4gPiA+ID5jaGFtZWxpdW0sCj4gPiA+ID4gcG9ydCwKPiA+ID4g PiAtCQkJCQkJwqAwLCAwLCAwLCAwKTsKPiA+ID4gPiAtCj4gPiA+ID4gLQkJZXhwZWN0ZWRfY3Jj ID0KPiA+ID4gPiBjaGFtZWxpdW1fY2FsY3VsYXRlX2ZiX2NyY19yZXN1bHQoZmJfY3JjKTsKPiA+ ID4gPiAtCj4gPiA+ID4gLQkJaWd0X2Fzc2VydF9jcmNfZXF1YWwoY3JjLCBleHBlY3RlZF9jcmMp Owo+ID4gPiA+IC0JCWZyZWUoZXhwZWN0ZWRfY3JjKTsKPiA+ID4gPiAtCQlmcmVlKGNyYyk7Cj4g PiA+ID4gLQo+ID4gPiA+IC0JCWRpc2FibGVfb3V0cHV0KGRhdGEsIHBvcnQsIG91dHB1dCk7Cj4g PiA+ID4gLQkJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsICZmYik7Cj4gPiA+ID4gLQl9Cj4g PiA+ID4gLQo+ID4gPiA+IC0JZHJtTW9kZUZyZWVDb25uZWN0b3IoY29ubmVjdG9yKTsKPiA+ID4g PiAtCWlndF9kaXNwbGF5X2ZpbmkoJmRpc3BsYXkpOwo+ID4gPiA+IC19Cj4gPiA+ID4gLQo+ID4g PiA+IC1zdGF0aWMgdm9pZAo+ID4gPiA+IC10ZXN0X2Rpc3BsYXlfY3JjX211bHRpcGxlKGRhdGFf dCAqZGF0YSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0Cj4gPiA+ID4gKnBvcnQpCj4gPiA+ID4gLXsK PiA+ID4gPiAtCWlndF9kaXNwbGF5X3QgZGlzcGxheTsKPiA+ID4gPiAtCWlndF9vdXRwdXRfdCAq b3V0cHV0Owo+ID4gPiA+IC0JaWd0X3BsYW5lX3QgKnByaW1hcnk7Cj4gPiA+ID4gLQlpZ3RfY3Jj X3QgKmNyYzsKPiA+ID4gPiAtCWlndF9jcmNfdCAqZXhwZWN0ZWRfY3JjOwo+ID4gPiA+IC0Jc3Ry dWN0IGNoYW1lbGl1bV9mYl9jcmMgKmZiX2NyYzsKPiA+ID4gPiAtCXN0cnVjdCBpZ3RfZmIgZmI7 Cj4gPiA+ID4gLQlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7Cj4gPiA+ID4gLQlkcm1Nb2RlQ29ubmVj dG9yICpjb25uZWN0b3I7Cj4gPiA+ID4gLQlpbnQgZmJfaWQsIGksIGosIGNhcHR1cmVkX2ZyYW1l X2NvdW50Owo+ID4gPiA+ICsJCWNoYW1lbGl1bV9jYXB0dXJlKGRhdGEtPmNoYW1lbGl1bSwgcG9y dCwgMCwgMCwKPiA+ID4gPiAwLCAwLAo+ID4gPiA+IGNvdW50KTsKPiA+ID4gPiArCQljcmMgPSBj aGFtZWxpdW1fcmVhZF9jYXB0dXJlZF9jcmNzKGRhdGEtCj4gPiA+ID4gPmNoYW1lbGl1bSwKPiA+ ID4gPiArCQkJCQkJwqDCoMKgJmNhcHR1cmVkX2YKPiA+ID4gPiByYW1lX2MKPiA+ID4gPiBvdW50 KTsKPiA+ID4gPiDCoMKgCj4gPiA+ID4gLQlyZXNldF9zdGF0ZShkYXRhLCBwb3J0KTsKPiA+ID4g PiArCQlpZ3RfYXNzZXJ0KGNhcHR1cmVkX2ZyYW1lX2NvdW50ID09IGNvdW50KTsKPiA+ID4gPiDC oMKgCj4gPiA+ID4gLQlvdXRwdXQgPSBwcmVwYXJlX291dHB1dChkYXRhLCAmZGlzcGxheSwgcG9y dCk7Cj4gPiA+ID4gLQljb25uZWN0b3IgPSBjaGFtZWxpdW1fcG9ydF9nZXRfY29ubmVjdG9yKGRh dGEtCj4gPiA+ID4gPmNoYW1lbGl1bSwKPiA+ID4gPiBwb3J0LCBmYWxzZSk7Cj4gPiA+ID4gLQlw cmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShvdXRwdXQsCj4gPiA+ID4gRFJNX1BM QU5FX1RZUEVfUFJJTUFSWSk7Cj4gPiA+ID4gLQlpZ3RfYXNzZXJ0KHByaW1hcnkpOwo+ID4gPiA+ ICsJCWlndF9kZWJ1ZygiQ2FwdHVyZWQgJWQgZnJhbWVzXG4iLAo+ID4gPiA+IGNhcHR1cmVkX2Zy YW1lX2NvdW50KTsKPiA+ID4gPiDCoMKgCj4gPiA+ID4gLQlmb3IgKGkgPSAwOyBpIDwgY29ubmVj dG9yLT5jb3VudF9tb2RlczsgaSsrKSB7Cj4gPiA+ID4gLQkJbW9kZSA9ICZjb25uZWN0b3ItPm1v ZGVzW2ldOwo+ID4gPiA+IC0JCWZiX2lkID0gaWd0X2NyZWF0ZV9jb2xvcl9wYXR0ZXJuX2ZiKGRh dGEtCj4gPiA+ID4gPmRybV9mZCwKPiA+ID4gPiAtCQkJCQkJwqDCoMKgwqBtb2RlLQo+ID4gPiA+ ID5oZGlzcGxheSwKPiA+ID4gPiAtCQkJCQkJwqDCoMKgwqBtb2RlLQo+ID4gPiA+ID52ZGlzcGxh eSwKPiA+ID4gPiAtCQkJCQkJwqDCoMKgwqBEUk1fRk9STUFUCj4gPiA+ID4gX1hSR0I4Cj4gPiA+ ID4gODg4LAo+ID4gPiA+IC0JCQkJCQnCoMKgwqDCoExPQ0FMX0RSTV8KPiA+ID4gPiBGT1JNQVQK PiA+ID4gPiBfTU9EX05PTkUsCj4gPiA+ID4gLQkJCQkJCcKgwqDCoMKgMCwgMCwgMCwKPiA+ID4g PiAmZmIpOwo+ID4gPiA+IC0JCWlndF9hc3NlcnQoZmJfaWQgPiAwKTsKPiA+ID4gPiArCQlleHBl Y3RlZF9jcmMgPQo+ID4gPiA+IGNoYW1lbGl1bV9jYWxjdWxhdGVfZmJfY3JjX3Jlc3VsdChmYl9j cmMpOwo+ID4gPiA+IMKgwqAKPiA+ID4gPiAtCQlmYl9jcmMgPQo+ID4gPiA+IGNoYW1lbGl1bV9j YWxjdWxhdGVfZmJfY3JjX2xhdW5jaChkYXRhLQo+ID4gPiA+ID4gZHJtX2ZkLCAmZmIpOwo+ID4g PiA+IAo+ID4gPiA+ICsJCWZvciAoaiA9IDA7IGogPCBjYXB0dXJlZF9mcmFtZV9jb3VudDsgaisr KSB7Cj4gPiA+ID4gKwkJCWVxID0gaWd0X2NoZWNrX2NyY19lcXVhbCgmY3JjW2pdLAo+ID4gPiA+ IGV4cGVjdGVkX2NyYyk7Cj4gPiA+ID4gKwkJCWlmICghZXEgJiYgZnJhbWVfZHVtcF9wYXRoKSB7 Cj4gPiA+ID4gKwkJCQlmcmFtZSA9Cj4gPiA+ID4gY2hhbWVsaXVtX3JlYWRfY2FwdHVyZWRfZnJh bWUoZGF0YS0+Y2hhbWVsaXVtLAo+ID4gPiA+ICsJCQkJCQkJCQo+ID4gPiA+IMKgwqDCoGopOwo+ ID4gPiA+IMKgwqAKPiA+ID4gPiAtCQllbmFibGVfb3V0cHV0KGRhdGEsIHBvcnQsIG91dHB1dCwg bW9kZSwgJmZiKTsKPiA+ID4gPiArCQkJCWlndF9kZWJ1ZygiRHVtcGluZyByZWZlcmVuY2UKPiA+ ID4gPiBhbmQKPiA+ID4gPiBjaGFtZWxpdW0gZnJhbWVzIHRvICVzLi4uXG4iLAo+ID4gPiA+ICsJ CQkJCcKgwqBmcmFtZV9kdW1wX3BhdGgpOwo+ID4gPiA+IMKgwqAKPiA+ID4gPiAtCQkvKiBXZSB3 YW50IHRvIGtlZXAgdGhlIGRpc3BsYXkgcnVubmluZyBmb3IgYQo+ID4gPiA+IGxpdHRsZQo+ID4g PiA+IGJpdCwgc2luY2UKPiA+ID4gPiAtCQnCoCogdGhlcmUncyBhbHdheXMgdGhlIHBvdGVudGlh bCB0aGUgZHJpdmVyCj4gPiA+ID4gaXNuJ3QKPiA+ID4gPiBhYmxlIHRvIGtlZXAKPiA+ID4gPiAt CQnCoCogdGhlIGRpc3BsYXkgcnVubmluZyBwcm9wZXJseSBmb3IgdmVyeSBsb25nCj4gPiA+ID4g LQkJwqAqLwo+ID4gPiA+IC0JCWNoYW1lbGl1bV9jYXB0dXJlKGRhdGEtPmNoYW1lbGl1bSwgcG9y dCwgMCwgMCwKPiA+ID4gPiAwLCAwLAo+ID4gPiA+IDMpOwo+ID4gPiA+IC0JCWNyYyA9IGNoYW1l bGl1bV9yZWFkX2NhcHR1cmVkX2NyY3MoZGF0YS0KPiA+ID4gPiA+Y2hhbWVsaXVtLAo+ID4gPiA+ IC0JCQkJCQnCoMKgwqAmY2FwdHVyZWRfZgo+ID4gPiA+IHJhbWVfYwo+ID4gPiA+IG91bnQpOwo+ ID4gPiA+ICsJCQkJc25wcmludGYocGF0aCwgUEFUSF9NQVgsCj4gPiA+ID4gIiVzL2ZyYW1lLQo+ ID4gPiA+IHJlZmVyZW5jZS0lcy5wbmciLAo+ID4gPiA+ICsJCQkJCcKgZnJhbWVfZHVtcF9wYXRo LAo+ID4gPiA+IGNvbm5lY3Rvcl9uYW1lKTsKPiA+ID4gPiArCQkJCWlndF93cml0ZV9mYl90b19w bmcoZGF0YS0KPiA+ID4gPiA+ZHJtX2ZkLAo+ID4gPiA+ICZmYiwgcGF0aCk7Cj4gPiA+ID4gwqDC oAo+ID4gPiA+IC0JCWlndF9kZWJ1ZygiQ2FwdHVyZWQgJWQgZnJhbWVzXG4iLAo+ID4gPiA+IGNh cHR1cmVkX2ZyYW1lX2NvdW50KTsKPiA+ID4gPiArCQkJCXNucHJpbnRmKHBhdGgsIFBBVEhfTUFY LAo+ID4gPiA+ICIlcy9mcmFtZS0KPiA+ID4gPiBjaGFtZWxpdW0tJXMucG5nIiwKPiA+ID4gPiAr CQkJCQnCoGZyYW1lX2R1bXBfcGF0aCwKPiA+ID4gPiBjb25uZWN0b3JfbmFtZSk7Cj4gPiA+ID4g KwkJCQljaGFtZWxpdW1fd3JpdGVfZnJhbWVfdG9fcG5nKGQKPiA+ID4gPiBhdGEtCj4gPiA+ID4g PiBjaGFtZWxpdW0sCj4gPiA+ID4gCj4gPiA+ID4gKwkJCQkJCQnCoMKgwqDCoMKgZgo+ID4gPiA+ IHJhbWUsCj4gPiA+ID4gcGF0aCk7Cj4gPiA+ID4gwqDCoAo+ID4gPiA+IC0JCWV4cGVjdGVkX2Ny YyA9Cj4gPiA+ID4gY2hhbWVsaXVtX2NhbGN1bGF0ZV9mYl9jcmNfcmVzdWx0KGZiX2NyYyk7Cj4g PiA+ID4gKwkJCQljaGFtZWxpdW1fZGVzdHJveV9mcmFtZV9kdW1wKGYKPiA+ID4gPiByYW1lKTsK PiA+ID4gPiArCQkJfQo+ID4gPiA+IMKgwqAKPiA+ID4gPiAtCQlmb3IgKGogPSAwOyBqIDwgY2Fw dHVyZWRfZnJhbWVfY291bnQ7IGorKykKPiA+ID4gPiAtCQkJaWd0X2Fzc2VydF9jcmNfZXF1YWwo JmNyY1tqXSwKPiA+ID4gPiBleHBlY3RlZF9jcmMpOwo+ID4gPiA+ICsJCQlpZ3RfZmFpbF9vbl9m KCFlcSwKPiA+ID4gPiArCQkJCcKgwqDCoMKgwqDCoCJDaGFtZWxpdW0gZnJhbWUgQ1JDCj4gPiA+ ID4gbWlzbWF0Y2gKPiA+ID4gPiB3aXRoIHJlZmVyZW5jZVxuIik7Cj4gPiA+ID4gKwkJfQo+ID4g PiAKPiA+ID4gVGhlcmUncyBsb3RzIG9mIHBvdGVudGlhbCBoZXJlIGZvciBjb3B5IHBhc3RhIHRv IGZvcm0gaW4gdGhlCj4gPiA+IGZ1dHVyZSwKPiA+ID4gc2luY2UgdGhlIEFQSSBoZXJlIHB1dHMg YSBsb3Qgb2Ygd29yayBvbiB0aGUgY2FsbGVyIHRvIHNldCB0aGluZ3MKPiA+ID4gdXAKPiA+ID4g Zm9yIGZyYW1lIGR1bXBpbmcuIElNTywgaXQgd291bGQgYmUgd29ydGggaXQgdG8gdGVhY2ggdGhl IENSQwo+ID4gPiBjaGVja2luZwo+ID4gPiBmdW5jdGlvbnMgdG8gYXV0b21hdGljYWxseSBkbyBm cmFtZSBkdW1wcyBvbiBtaXNtYXRjaCBpZiB0aGUgQ1JDCj4gPiA+IHNvdXJjZQo+ID4gPiBzdXBw b3J0cyBpdC4gVGhpcyB3aWxsIHNhdmUgdXMgZnJvbSBoYXZpbmcgdG8gaGF2ZSBzZXBhcmF0ZSBm cmFtZQo+ID4gPiBkdW1wCj4gPiA+IEFQSXMgaW4gdGhlIGZ1dHVyZSBpZiB3ZSBldmVyIGVuZCB1 cCBhZGRpbmcgc3VwcG9ydCBmb3Igb3RoZXIKPiA+ID4ga2luZHMgb2YKPiA+ID4gYXV0b21hdGVk IHRlc3QgZXF1aXBtZW50Lgo+ID4gPiAKPiA+ID4gQXMgd2VsbCwgSSBsaWtlIGhvdyB5b3UgcmVt b3ZlZCB0aGUgcmVkdW5kYW5jeSBiZXR3ZWVuCj4gPiA+IHRlc3RfZGlzcGxheV9jcmNfc2luZ2xl KCkgYW5kIHRlc3RfZGlzcGxheV9jcmNfbXVsdGlwbGUoKS4KPiA+ID4gSG93ZXZlcgo+ID4gPiBz aW5jZSB0aG9zZSBhcmUgc29tZXdoYXQgdW5yZWxhdGVkIGNoYW5nZXMgdG8gdGhlIGNvZGUgcGF0 aCBmb3IKPiA+ID4gdGhlc2UKPiA+ID4gdGVzdHMgaXQgd291bGQgYmUgYmV0dGVyIHRvIGhhdmUg dGhhdCByZS1mYWN0b3JpbmcgYXMgYSBzZXBhcmF0ZQo+ID4gPiBwYXRjaAo+ID4gPiBzbyBhcyB0 byBtYWtlIGl0IGVhc2llciBmb3IgYW55b25lIHdobyBtaWdodCBuZWVkIHRvIGJpc2VjdCB0aGlz Cj4gPiA+IGNvZGUKPiA+ID4gaW4gdGhlIGZ1dHVyZS4KPiA+ID4gCj4gPiA+ID4gwqDCoAo+ID4g PiA+IMKgwqAJCWZyZWUoZXhwZWN0ZWRfY3JjKTsKPiA+ID4gPiDCoMKgCQlmcmVlKGNyYyk7Cj4g PiA+ID4gQEAgLTY0NCwxMCArNjE4LDEwIEBAIGlndF9tYWluCj4gPiA+ID4gwqDCoAkJCQkJCQll ZGlkXwo+ID4gPiA+IGlkLAo+ID4gPiA+IGFsdF9lZGlkX2lkKTsKPiA+ID4gPiDCoMKgCj4gPiA+ ID4gwqDCoAkJY29ubmVjdG9yX3N1YnRlc3QoImRwLWNyYy1zaW5nbGUiLAo+ID4gPiA+IERpc3Bs YXlQb3J0KQo+ID4gPiA+IC0JCQl0ZXN0X2Rpc3BsYXlfY3JjX3NpbmdsZSgmZGF0YSwgcG9ydCk7 Cj4gPiA+ID4gKwkJCXRlc3RfZGlzcGxheV9jcmMoJmRhdGEsIHBvcnQsIDEpOwo+ID4gPiA+IMKg wqAKPiA+ID4gPiDCoMKgCQljb25uZWN0b3Jfc3VidGVzdCgiZHAtY3JjLW11bHRpcGxlIiwKPiA+ ID4gPiBEaXNwbGF5UG9ydCkKPiA+ID4gPiAtCQkJdGVzdF9kaXNwbGF5X2NyY19tdWx0aXBsZSgm ZGF0YSwKPiA+ID4gPiBwb3J0KTsKPiA+ID4gPiArCQkJdGVzdF9kaXNwbGF5X2NyYygmZGF0YSwg cG9ydCwgMyk7Cj4gPiA+ID4gwqDCoAl9Cj4gPiA+ID4gwqDCoAo+ID4gPiA+IMKgwqAJaWd0X3N1 YnRlc3RfZ3JvdXAgewo+ID4gPiA+IEBAIC02OTgsMTAgKzY3MiwxMCBAQCBpZ3RfbWFpbgo+ID4g PiA+IMKgwqAJCQkJCQkJZWRpZF8KPiA+ID4gPiBpZCwKPiA+ID4gPiBhbHRfZWRpZF9pZCk7Cj4g PiA+ID4gwqDCoAo+ID4gPiA+IMKgwqAJCWNvbm5lY3Rvcl9zdWJ0ZXN0KCJoZG1pLWNyYy1zaW5n bGUiLCBIRE1JQSkKPiA+ID4gPiAtCQkJdGVzdF9kaXNwbGF5X2NyY19zaW5nbGUoJmRhdGEsIHBv cnQpOwo+ID4gPiA+ICsJCQl0ZXN0X2Rpc3BsYXlfY3JjKCZkYXRhLCBwb3J0LCAxKTsKPiA+ID4g PiDCoMKgCj4gPiA+ID4gwqDCoAkJY29ubmVjdG9yX3N1YnRlc3QoImhkbWktY3JjLW11bHRpcGxl IiwgSERNSUEpCj4gPiA+ID4gLQkJCXRlc3RfZGlzcGxheV9jcmNfbXVsdGlwbGUoJmRhdGEsCj4g PiA+ID4gcG9ydCk7Cj4gPiA+ID4gKwkJCXRlc3RfZGlzcGxheV9jcmMoJmRhdGEsIHBvcnQsIDMp Owo+ID4gPiA+IMKgwqAJfQo+ID4gPiA+IMKgwqAKPiA+ID4gPiDCoMKgCWlndF9zdWJ0ZXN0X2dy b3VwIHsKLS0gCkNoZWVycywKCUx5dWRlCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=