From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <1532402766.3356.23.camel@intel.com> From: Dhinakaran Pandiyan Date: Mon, 23 Jul 2018 20:26:06 -0700 In-Reply-To: <1532400764.3356.7.camel@intel.com> References: <20180723182545.19461-1-radhakrishna.sripada@intel.com> <1532400764.3356.7.camel@intel.com> Mime-Version: 1.0 Subject: Re: [Intel-gfx] [igt-dev] [PATCH i-g-t v7] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: dhinakaran.pandiyan@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Radhakrishna Sripada , igt-dev@lists.freedesktop.org Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org List-ID: T24gTW9uLCAyMDE4LTA3LTIzIGF0IDE5OjUyIC0wNzAwLCBEaGluYWthcmFuIFBhbmRpeWFuIHdy b3RlOgo+IE9uIE1vbiwgMjAxOC0wNy0yMyBhdCAxMToyNSAtMDcwMCwgUmFkaGFrcmlzaG5hIFNy aXBhZGEgd3JvdGU6Cj4gPiAKPiA+IEZyb206IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZh dHNhQGludGVsLmNvbT4KPiA+IAo+ID4gQ2xlYW51cCB0aGUgdGVzdGNhc2VzIGJ5IG1vdmluZyB0 aGUgcGxhdGZvcm0gY2hlY2tzIHRvIGEgc2luZ2xlCj4gPiBmdW5jdGlvbi4KPiA+IAo+ID4gVGhl IGVhcmxpZXIgdmVyc2lvbiBvZiB0aGUgcGF0aCBpcyBwb3N0ZWQgaGVyZSBbMV0KPiA+IAo+ID4g djI6IE1ha2UgdXNlIG9mIHRoZSBwcm9wZXJ0eSBlbnVtcyB0byBnZXQgdGhlIHN1cHBvcnRlZCBy b3RhdGlvbnMKPiA+IHYzOiBNb3ZlIGhhcmRjb2RpbmdzIHRvIGEgc2luZ2xlIGZ1bmN0aW9uKFZp bGxlKQo+ID4gdjQ6IEluY2x1ZGUgdGhlIGNoZXJyeXZpZXcgZXhjZXB0aW9uIGZvciByZWZsZWN0 IHN1YnRlc3QoTWFhcnRlbikKPiA+IHY1OiBSZWJhc2UgYW5kIG1vdmUgdGhlIGNoZWNrIGZyb20g Q05MIHRvIElDTCBmb3IgcmVmbGVjdC14IGNhc2UKPiA+IHY2OiBGaXggdGhlIENJIHJlZ3Jlc3Np b24KPiA+IHY3OiByZWJhc2UKPiA+IAo+ID4gWzFdOiBodHRwczovL3BhdGNod29yay5mcmVlZGVz a3RvcC5vcmcvcGF0Y2gvMjA5NjQ3Lwo+ID4gCj4gT2ggd2VsbCwgSSB3cm90ZSBteSBjb21tZW50 cyBiZWxvdyBhbmQgdGhlbiByZWFkIHRoaXMgbGluay4gUGxlYXNlCj4gYWRkCj4gbmV3IHRlc3Qg cmVxdWlyZW1lbnRzIGluIHNlcGFyYXRlIHBhdGNoZXMuIE9ubHkgaGF2ZSB0aGUgY29kZQo+IG1v dmVtZW50Cj4gaGVyZS4KPiAKClF1b3RpbmcgVmlsbGUgZnJvbSBbMV0gYWJvdmUKCiJQZXJoYXBz IHRoZSBiZXN0IHNvbHV0aW9uIHdvdWxkIGJlIHRvIG1ha2UgaXQgYXMgZ2VuZXJpYyBhcyBwb3Nz aWJsZQpieSBjaGVja2luZyB0aGUgcGxhbmUgc3VwcG9ydGVkIHJvdGF0aW9ucywgd2hpbGUgc3Rp bGwga2Vlb2luZyB0aGUKbWFudWFsIGNoZWNrcyBmb3IgdGhlIGZldyBleGNlcHRpb25zIEkgbGlz dGVkIGFib3ZlLiBNaWdodCBldmVuIGJlCm5pY2UgdG8gcHV0IHRoZSBnZW5lcmljIHN0dWZmIGlu dG8gc29tZXRoaW5nIGxpa2UKaWd0X3BsYW5lX2hhc19yb3RhdGlvbigpLiBBbmQgbWF5YmUgdGhl IGV4Y2VwdGlvbnMgc2hvdWxkIGJlIHRoZXJlCmFzIHdlbGw/IgoKSWYgSSBhbSByZWFkaW5nIHRo aXMgY29ycmVjdGx5LCB0aGlzIHBhdGNoIHNob3VsZCBoYXZlIHJldGFpbmVkIHRoZQpwbGFuZSBw cm9wZXJ0eSBjaGVja3MgaW4gYWRkaXRpb24gdG8gZXhjZXB0aW9ucyB5b3UgaGF2ZSBhZGRlZC4K Ci1ESwoKPiA+IAo+ID4gQ2M6IFJhZGhha3Jpc2huYSBTcmlwYWRhIDxyYWRoYWtyaXNobmEuc3Jp cGFkYUBpbnRlbC5jb20+Cj4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVs LmNvbT4KPiA+IENjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXgu aW50ZWwuY29tPgo+ID4gQ2M6IE1pa2EgS2Fob2xhIDxtaWthLmthaG9sYUBpbnRlbC5jb20+Cj4g PiBTaWduZWQtb2ZmLWJ5OiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5j b20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBSYWRoYWtyaXNobmEgU3JpcGFkYSA8cmFkaGFrcmlzaG5h LnNyaXBhZGFAaW50ZWwuY29tCj4gPiA+Cj4gPiAtLS0KPiA+IMKgdGVzdHMva21zX3JvdGF0aW9u X2NyYy5jIHwgMzUgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KPiA+IMKgMSBm aWxlIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBk aWZmIC0tZ2l0IGEvdGVzdHMva21zX3JvdGF0aW9uX2NyYy5jIGIvdGVzdHMva21zX3JvdGF0aW9u X2NyYy5jCj4gPiBpbmRleCA2Y2I1ODU4YWRiMGYuLmYyMGI4YTZkNGJhMSAxMDA2NDQKPiA+IC0t LSBhL3Rlc3RzL2ttc19yb3RhdGlvbl9jcmMuYwo+ID4gKysrIGIvdGVzdHMva21zX3JvdGF0aW9u X2NyYy5jCj4gPiBAQCAtNDMsNiArNDMsNyBAQCB0eXBlZGVmIHN0cnVjdCB7Cj4gPiDCoAl1aW50 MzJfdCBvdmVycmlkZV9mbXQ7Cj4gPiDCoAl1aW50NjRfdCBvdmVycmlkZV90aWxpbmc7Cj4gPiDC oAlpbnQgZGV2aWQ7Cj4gPiArCWludCBnZW47Cj4gPiDCoH0gZGF0YV90Owo+ID4gwqAKPiA+IMKg dHlwZWRlZiBzdHJ1Y3Qgewo+ID4gQEAgLTI4NCw2ICsyODUsMTcgQEAgc3RhdGljIHZvaWQgcHJl cGFyZV9mYnMoZGF0YV90ICpkYXRhLAo+ID4gaWd0X291dHB1dF90ICpvdXRwdXQsCj4gPiDCoAkJ aWd0X3BsYW5lX3NldF9wb3NpdGlvbihwbGFuZSwgZGF0YS0+cG9zX3gsIGRhdGEtCj4gPiA+IAo+ ID4gPiBwb3NfeSk7Cj4gPiDCoH0KPiA+IMKgCj4gPiArc3RhdGljIHZvaWQgaWd0X2NoZWNrX3Jv dGF0aW9uKGRhdGFfdCAqZGF0YSkKPiA+ICt7Cj4gPiArCWlmIChkYXRhLT5yb3RhdGlvbiAmIChJ R1RfUk9UQVRJT05fOTAgfCBJR1RfUk9UQVRJT05fMjcwKSkKPiA+ICsJCWlndF9yZXF1aXJlKGRh dGEtPmdlbiA+PSA5KTsKPiA+ICsJaWYgKGRhdGEtPnJvdGF0aW9uICYgSUdUX1JFRkxFQ1RfWCkK PiA+ICsJCWlndF9yZXF1aXJlKGRhdGEtPmdlbiA+PSAxMSB8fAo+IFRoaXMgY2hlY2sgdXNlZCB0 byBiZcKgaWd0X3JlcXVpcmUoZ2VuID49IDEwCj4gCj4gPiAKPiA+ICsJCQnCoMKgwqDCoChJU19D SEVSUllWSUVXKGRhdGEtPmRldmlkKSAmJiAoZGF0YS0KPiA+ID4gCj4gPiA+IHJvdGF0aW9uICYg SUdUX1JPVEFUSU9OXzApKSk7Cj4gVGhlcmUgd2FzIGFsc28gYSBjaGVjayBmb3IgdGlsaW5nIGZv cm1hdMKgCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoSVNfQ0hFUlJZVklFVyhkYXRhLmRldmlkKSAmJgo+IHJl ZmxlY3RfeC0+cm90ID09IElHVF9ST1RBVElPTl8wCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCYmIHJlZmxl Y3RfeC0+dGlsaW5nID09Cj4gTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQpKTsKPiAKPiAK PiA+IAo+ID4gKwlpZiAoZGF0YS0+cm90YXRpb24gJiBJR1RfUk9UQVRJT05fMTgwKQo+ID4gKwkJ aWd0X3JlcXVpcmUoZGF0YS0+Z2VuID49IDQpOwo+IERvZXNuJ3QgbG9vayBsaWtlIHRoaXMgcmVx dWlyZW1lbnQgd2FzIGlzIGluIHRoZSB0ZXN0IGVhcmxpZXIuCj4gCj4gPiAKPiA+ICt9Cj4gPiAr Cj4gPiDCoHN0YXRpYyB2b2lkIHRlc3Rfc2luZ2xlX2Nhc2UoZGF0YV90ICpkYXRhLCBlbnVtIHBp cGUgcGlwZSwKPiA+IMKgCQkJwqDCoMKgwqDCoGlndF9vdXRwdXRfdCAqb3V0cHV0LCBpZ3RfcGxh bmVfdAo+ID4gKnBsYW5lLAo+ID4gwqAJCQnCoMKgwqDCoMKgZW51bSByZWN0YW5nbGVfdHlwZSBy ZWN0LAo+ID4gQEAgLTM1MiwxNSArMzY0LDE4IEBAIHN0YXRpYyB2b2lkIHRlc3RfcGxhbmVfcm90 YXRpb24oZGF0YV90ICpkYXRhLAo+ID4gaW50IHBsYW5lX3R5cGUsIGJvb2wgdGVzdF9iYWRfZm9y bQo+ID4gwqAKPiA+IMKgCWlndF9kaXNwbGF5X3JlcXVpcmVfb3V0cHV0KGRpc3BsYXkpOwo+ID4g wqAKPiA+ICsJaWd0X2NoZWNrX3JvdGF0aW9uKGRhdGEpOwo+ID4gKwo+ID4gwqAJZm9yX2VhY2hf cGlwZV93aXRoX3ZhbGlkX291dHB1dChkaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKPiA+IMKgCQlp Z3RfcGxhbmVfdCAqcGxhbmU7Cj4gPiDCoAkJaW50IGksIGo7Cj4gPiDCoAo+ID4gLQkJaWYgKElT X0NIRVJSWVZJRVcoZGF0YS0+ZGV2aWQpICYmIHBpcGUgIT0gUElQRV9CKQo+ID4gLQkJCWNvbnRp bnVlOwo+ID4gLQo+ID4gwqAJCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsKPiA+ IMKgCj4gPiArCQlpZiAoSVNfQ0hFUlJZVklFVyhkYXRhLT5kZXZpZCkgJiYgKGRhdGEtPnJvdGF0 aW9uCj4gPiAmCj4gPiBJR1RfUkVGTEVDVF9YKSAmJgo+ID4gKwkJwqDCoMKgwqBwaXBlICE9IGtt c3Rlc3RfcGlwZV90b19pbmRleCgnQicpKQo+ID4gKwkJCWNvbnRpbnVlOwo+ID4gKwo+IFdoeSBk byB0aGlzP8KgCj4gCj4gPiAKPiA+IMKgCQlwbGFuZSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5 cGUob3V0cHV0LAo+ID4gcGxhbmVfdHlwZSk7Cj4gPiDCoAkJaWd0X3JlcXVpcmUoaWd0X3BsYW5l X2hhc19wcm9wKHBsYW5lLAo+ID4gSUdUX1BMQU5FX1JPVEFUSU9OKSk7Cj4gPiDCoAo+ID4gQEAg LTUyMSwxNCArNTM2LDEzIEBAIGlndF9tYWluCj4gPiDCoAl9Owo+ID4gwqAKPiA+IMKgCWRhdGFf dCBkYXRhID0ge307Cj4gPiAtCWludCBnZW4gPSAwOwo+ID4gwqAKPiA+IMKgCWlndF9za2lwX29u X3NpbXVsYXRpb24oKTsKPiA+IMKgCj4gPiDCoAlpZ3RfZml4dHVyZSB7Cj4gPiDCoAkJZGF0YS5n ZnhfZmQgPQo+ID4gZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJfSU5URUwpOwo+ID4gwqAJ CWRhdGEuZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGRhdGEuZ2Z4X2ZkKTsKPiA+IC0JCWdl biA9IGludGVsX2dlbihkYXRhLmRldmlkKTsKPiA+ICsJCWRhdGEuZ2VuID0gaW50ZWxfZ2VuKGRh dGEuZGV2aWQpOwo+ID4gwqAKPiA+IMKgCQlrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2RlKCk7 Cj4gPiDCoAo+ID4gQEAgLTU0MSwxNiArNTU1LDEyIEBAIGlndF9tYWluCj4gPiDCoAkJaWd0X3N1 YnRlc3RfZigiJXMtcm90YXRpb24tJXMiLAo+ID4gwqAJCQnCoMKgwqDCoMKgwqBwbGFuZV90ZXN0 X3N0cihzdWJ0ZXN0LT5wbGFuZSksCj4gPiDCoAkJCcKgwqDCoMKgwqDCoHJvdF90ZXN0X3N0cihz dWJ0ZXN0LT5yb3QpKSB7Cj4gPiAtCQkJaWd0X3JlcXVpcmUoIShzdWJ0ZXN0LT5yb3QgJgo+ID4g LQkJCQnCoMKgwqDCoChJR1RfUk9UQVRJT05fOTAgfAo+ID4gSUdUX1JPVEFUSU9OXzI3MCkpIHx8 Cj4gPiAtCQkJCcKgwqDCoMKgZ2VuID49IDkpOwo+ID4gwqAJCQlkYXRhLnJvdGF0aW9uID0gc3Vi dGVzdC0+cm90Owo+ID4gwqAJCQl0ZXN0X3BsYW5lX3JvdGF0aW9uKCZkYXRhLCBzdWJ0ZXN0LT5w bGFuZSwKPiA+IGZhbHNlKTsKPiA+IMKgCQl9Cj4gPiDCoAl9Cj4gPiDCoAo+ID4gwqAJaWd0X3N1 YnRlc3RfZigic3ByaXRlLXJvdGF0aW9uLTkwLXBvcy0xMDAtMCIpIHsKPiA+IC0JCWlndF9yZXF1 aXJlKGdlbiA+PSA5KTsKPiA+IMKgCQlkYXRhLnJvdGF0aW9uID0gSUdUX1JPVEFUSU9OXzkwOwo+ ID4gwqAJCWRhdGEucG9zX3ggPSAxMDAsCj4gPiDCoAkJZGF0YS5wb3NfeSA9IDA7Cj4gPiBAQCAt NTYwLDcgKzU3MCw2IEBAIGlndF9tYWluCj4gPiDCoAlkYXRhLnBvc195ID0gMDsKPiA+IMKgCj4g PiDCoAlpZ3Rfc3VidGVzdF9mKCJiYWQtcGl4ZWwtZm9ybWF0Iikgewo+ID4gLQkJaWd0X3JlcXVp cmUoZ2VuID49IDkpOwo+ID4gwqAJCWRhdGEucm90YXRpb24gPSBJR1RfUk9UQVRJT05fOTA7Cj4g PiDCoAkJZGF0YS5vdmVycmlkZV9mbXQgPSBEUk1fRk9STUFUX1JHQjU2NTsKPiA+IMKgCQl0ZXN0 X3BsYW5lX3JvdGF0aW9uKCZkYXRhLCBEUk1fUExBTkVfVFlQRV9QUklNQVJZLAo+ID4gdHJ1ZSk7 Cj4gPiBAQCAtNTY4LDcgKzU3Nyw2IEBAIGlndF9tYWluCj4gPiDCoAlkYXRhLm92ZXJyaWRlX2Zt dCA9IDA7Cj4gPiDCoAo+ID4gwqAJaWd0X3N1YnRlc3RfZigiYmFkLXRpbGluZyIpIHsKPiA+IC0J CWlndF9yZXF1aXJlKGdlbiA+PSA5KTsKPiA+IMKgCQlkYXRhLnJvdGF0aW9uID0gSUdUX1JPVEFU SU9OXzkwOwo+ID4gwqAJCWRhdGEub3ZlcnJpZGVfdGlsaW5nID0KPiA+IExPQ0FMX0k5MTVfRk9S TUFUX01PRF9YX1RJTEVEOwo+ID4gwqAJCXRlc3RfcGxhbmVfcm90YXRpb24oJmRhdGEsIERSTV9Q TEFORV9UWVBFX1BSSU1BUlksCj4gPiB0cnVlKTsKPiA+IEBAIC01NzksOSArNTg3LDYgQEAgaWd0 X21haW4KPiA+IMKgCQlpZ3Rfc3VidGVzdF9mKCJwcmltYXJ5LSVzLXJlZmxlY3QteC0lcyIsCj4g PiDCoAkJCcKgwqDCoMKgwqDCoHRpbGluZ190ZXN0X3N0cihyZWZsZWN0X3gtPnRpbGluZyksCj4g PiDCoAkJCcKgwqDCoMKgwqDCoHJvdF90ZXN0X3N0cihyZWZsZWN0X3gtPnJvdCkpIHsKPiA+IC0J CQlpZ3RfcmVxdWlyZShnZW4gPj0gMTAgfHwKPiA+IC0JCQkJwqDCoMKgwqAoSVNfQ0hFUlJZVklF VyhkYXRhLmRldmlkKSAmJgo+ID4gcmVmbGVjdF94LT5yb3QgPT0gSUdUX1JPVEFUSU9OXzAKPiA+ IC0JCQkJwqDCoMKgwqDCoCYmIHJlZmxlY3RfeC0+dGlsaW5nID09Cj4gPiBMT0NBTF9JOTE1X0ZP Uk1BVF9NT0RfWF9USUxFRCkpOwo+ID4gwqAJCQlkYXRhLnJvdGF0aW9uID0gKElHVF9SRUZMRUNU X1ggfAo+ID4gcmVmbGVjdF94LQo+ID4gPiAKPiA+ID4gcm90KTsKPiA+IMKgCQkJZGF0YS5vdmVy cmlkZV90aWxpbmcgPSByZWZsZWN0X3gtPnRpbGluZzsKPiA+IMKgCQkJdGVzdF9wbGFuZV9yb3Rh dGlvbigmZGF0YSwKPiA+IERSTV9QTEFORV9UWVBFX1BSSU1BUlksIGZhbHNlKTsKPiA+IEBAIC01 OTYsNyArNjAxLDcgQEAgaWd0X21haW4KPiA+IMKgCQllbnVtIHBpcGUgcGlwZTsKPiA+IMKgCQlp Z3Rfb3V0cHV0X3QgKm91dHB1dDsKPiA+IMKgCj4gPiAtCQlpZ3RfcmVxdWlyZShnZW4gPj0gOSk7 Cj4gPiArCQlpZ3RfcmVxdWlyZShkYXRhLmdlbiA+PSA5KTsKPiA+IMKgCQlpZ3RfZGlzcGxheV9y ZXF1aXJlX291dHB1dCgmZGF0YS5kaXNwbGF5KTsKPiA+IMKgCj4gPiDCoAkJZm9yX2VhY2hfcGlw ZV93aXRoX3ZhbGlkX291dHB1dCgmZGF0YS5kaXNwbGF5LAo+ID4gcGlwZSwKPiA+IG91dHB1dCkg ewpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: Re: [igt-dev] [PATCH i-g-t v7] tests/kms_rotation_crc: Move platform checks to one place for non exhaust fence cases Date: Mon, 23 Jul 2018 20:26:06 -0700 Message-ID: <1532402766.3356.23.camel@intel.com> References: <20180723182545.19461-1-radhakrishna.sripada@intel.com> <1532400764.3356.7.camel@intel.com> Reply-To: dhinakaran.pandiyan@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1532400764.3356.7.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Radhakrishna Sripada , igt-dev@lists.freedesktop.org Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyMDE4LTA3LTIzIGF0IDE5OjUyIC0wNzAwLCBEaGluYWthcmFuIFBhbmRpeWFuIHdy b3RlOgo+IE9uIE1vbiwgMjAxOC0wNy0yMyBhdCAxMToyNSAtMDcwMCwgUmFkaGFrcmlzaG5hIFNy aXBhZGEgd3JvdGU6Cj4gPiAKPiA+IEZyb206IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZh dHNhQGludGVsLmNvbT4KPiA+IAo+ID4gQ2xlYW51cCB0aGUgdGVzdGNhc2VzIGJ5IG1vdmluZyB0 aGUgcGxhdGZvcm0gY2hlY2tzIHRvIGEgc2luZ2xlCj4gPiBmdW5jdGlvbi4KPiA+IAo+ID4gVGhl IGVhcmxpZXIgdmVyc2lvbiBvZiB0aGUgcGF0aCBpcyBwb3N0ZWQgaGVyZSBbMV0KPiA+IAo+ID4g djI6IE1ha2UgdXNlIG9mIHRoZSBwcm9wZXJ0eSBlbnVtcyB0byBnZXQgdGhlIHN1cHBvcnRlZCBy b3RhdGlvbnMKPiA+IHYzOiBNb3ZlIGhhcmRjb2RpbmdzIHRvIGEgc2luZ2xlIGZ1bmN0aW9uKFZp bGxlKQo+ID4gdjQ6IEluY2x1ZGUgdGhlIGNoZXJyeXZpZXcgZXhjZXB0aW9uIGZvciByZWZsZWN0 IHN1YnRlc3QoTWFhcnRlbikKPiA+IHY1OiBSZWJhc2UgYW5kIG1vdmUgdGhlIGNoZWNrIGZyb20g Q05MIHRvIElDTCBmb3IgcmVmbGVjdC14IGNhc2UKPiA+IHY2OiBGaXggdGhlIENJIHJlZ3Jlc3Np b24KPiA+IHY3OiByZWJhc2UKPiA+IAo+ID4gWzFdOiBodHRwczovL3BhdGNod29yay5mcmVlZGVz a3RvcC5vcmcvcGF0Y2gvMjA5NjQ3Lwo+ID4gCj4gT2ggd2VsbCwgSSB3cm90ZSBteSBjb21tZW50 cyBiZWxvdyBhbmQgdGhlbiByZWFkIHRoaXMgbGluay4gUGxlYXNlCj4gYWRkCj4gbmV3IHRlc3Qg cmVxdWlyZW1lbnRzIGluIHNlcGFyYXRlIHBhdGNoZXMuIE9ubHkgaGF2ZSB0aGUgY29kZQo+IG1v dmVtZW50Cj4gaGVyZS4KPiAKClF1b3RpbmcgVmlsbGUgZnJvbSBbMV0gYWJvdmUKCiJQZXJoYXBz IHRoZSBiZXN0IHNvbHV0aW9uIHdvdWxkIGJlIHRvIG1ha2UgaXQgYXMgZ2VuZXJpYyBhcyBwb3Nz aWJsZQpieSBjaGVja2luZyB0aGUgcGxhbmUgc3VwcG9ydGVkIHJvdGF0aW9ucywgd2hpbGUgc3Rp bGwga2Vlb2luZyB0aGUKbWFudWFsIGNoZWNrcyBmb3IgdGhlIGZldyBleGNlcHRpb25zIEkgbGlz dGVkIGFib3ZlLiBNaWdodCBldmVuIGJlCm5pY2UgdG8gcHV0IHRoZSBnZW5lcmljIHN0dWZmIGlu dG8gc29tZXRoaW5nIGxpa2UKaWd0X3BsYW5lX2hhc19yb3RhdGlvbigpLiBBbmQgbWF5YmUgdGhl IGV4Y2VwdGlvbnMgc2hvdWxkIGJlIHRoZXJlCmFzIHdlbGw/IgoKSWYgSSBhbSByZWFkaW5nIHRo aXMgY29ycmVjdGx5LCB0aGlzIHBhdGNoIHNob3VsZCBoYXZlIHJldGFpbmVkIHRoZQpwbGFuZSBw cm9wZXJ0eSBjaGVja3MgaW4gYWRkaXRpb24gdG8gZXhjZXB0aW9ucyB5b3UgaGF2ZSBhZGRlZC4K Ci1ESwoKPiA+IAo+ID4gQ2M6IFJhZGhha3Jpc2huYSBTcmlwYWRhIDxyYWRoYWtyaXNobmEuc3Jp cGFkYUBpbnRlbC5jb20+Cj4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVs LmNvbT4KPiA+IENjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXgu aW50ZWwuY29tPgo+ID4gQ2M6IE1pa2EgS2Fob2xhIDxtaWthLmthaG9sYUBpbnRlbC5jb20+Cj4g PiBTaWduZWQtb2ZmLWJ5OiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5j b20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBSYWRoYWtyaXNobmEgU3JpcGFkYSA8cmFkaGFrcmlzaG5h LnNyaXBhZGFAaW50ZWwuY29tCj4gPiA+Cj4gPiAtLS0KPiA+IMKgdGVzdHMva21zX3JvdGF0aW9u X2NyYy5jIHwgMzUgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KPiA+IMKgMSBm aWxlIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBk aWZmIC0tZ2l0IGEvdGVzdHMva21zX3JvdGF0aW9uX2NyYy5jIGIvdGVzdHMva21zX3JvdGF0aW9u X2NyYy5jCj4gPiBpbmRleCA2Y2I1ODU4YWRiMGYuLmYyMGI4YTZkNGJhMSAxMDA2NDQKPiA+IC0t LSBhL3Rlc3RzL2ttc19yb3RhdGlvbl9jcmMuYwo+ID4gKysrIGIvdGVzdHMva21zX3JvdGF0aW9u X2NyYy5jCj4gPiBAQCAtNDMsNiArNDMsNyBAQCB0eXBlZGVmIHN0cnVjdCB7Cj4gPiDCoAl1aW50 MzJfdCBvdmVycmlkZV9mbXQ7Cj4gPiDCoAl1aW50NjRfdCBvdmVycmlkZV90aWxpbmc7Cj4gPiDC oAlpbnQgZGV2aWQ7Cj4gPiArCWludCBnZW47Cj4gPiDCoH0gZGF0YV90Owo+ID4gwqAKPiA+IMKg dHlwZWRlZiBzdHJ1Y3Qgewo+ID4gQEAgLTI4NCw2ICsyODUsMTcgQEAgc3RhdGljIHZvaWQgcHJl cGFyZV9mYnMoZGF0YV90ICpkYXRhLAo+ID4gaWd0X291dHB1dF90ICpvdXRwdXQsCj4gPiDCoAkJ aWd0X3BsYW5lX3NldF9wb3NpdGlvbihwbGFuZSwgZGF0YS0+cG9zX3gsIGRhdGEtCj4gPiA+IAo+ ID4gPiBwb3NfeSk7Cj4gPiDCoH0KPiA+IMKgCj4gPiArc3RhdGljIHZvaWQgaWd0X2NoZWNrX3Jv dGF0aW9uKGRhdGFfdCAqZGF0YSkKPiA+ICt7Cj4gPiArCWlmIChkYXRhLT5yb3RhdGlvbiAmIChJ R1RfUk9UQVRJT05fOTAgfCBJR1RfUk9UQVRJT05fMjcwKSkKPiA+ICsJCWlndF9yZXF1aXJlKGRh dGEtPmdlbiA+PSA5KTsKPiA+ICsJaWYgKGRhdGEtPnJvdGF0aW9uICYgSUdUX1JFRkxFQ1RfWCkK PiA+ICsJCWlndF9yZXF1aXJlKGRhdGEtPmdlbiA+PSAxMSB8fAo+IFRoaXMgY2hlY2sgdXNlZCB0 byBiZcKgaWd0X3JlcXVpcmUoZ2VuID49IDEwCj4gCj4gPiAKPiA+ICsJCQnCoMKgwqDCoChJU19D SEVSUllWSUVXKGRhdGEtPmRldmlkKSAmJiAoZGF0YS0KPiA+ID4gCj4gPiA+IHJvdGF0aW9uICYg SUdUX1JPVEFUSU9OXzApKSk7Cj4gVGhlcmUgd2FzIGFsc28gYSBjaGVjayBmb3IgdGlsaW5nIGZv cm1hdMKgCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoSVNfQ0hFUlJZVklFVyhkYXRhLmRldmlkKSAmJgo+IHJl ZmxlY3RfeC0+cm90ID09IElHVF9ST1RBVElPTl8wCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCYmIHJlZmxl Y3RfeC0+dGlsaW5nID09Cj4gTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQpKTsKPiAKPiAK PiA+IAo+ID4gKwlpZiAoZGF0YS0+cm90YXRpb24gJiBJR1RfUk9UQVRJT05fMTgwKQo+ID4gKwkJ aWd0X3JlcXVpcmUoZGF0YS0+Z2VuID49IDQpOwo+IERvZXNuJ3QgbG9vayBsaWtlIHRoaXMgcmVx dWlyZW1lbnQgd2FzIGlzIGluIHRoZSB0ZXN0IGVhcmxpZXIuCj4gCj4gPiAKPiA+ICt9Cj4gPiAr Cj4gPiDCoHN0YXRpYyB2b2lkIHRlc3Rfc2luZ2xlX2Nhc2UoZGF0YV90ICpkYXRhLCBlbnVtIHBp cGUgcGlwZSwKPiA+IMKgCQkJwqDCoMKgwqDCoGlndF9vdXRwdXRfdCAqb3V0cHV0LCBpZ3RfcGxh bmVfdAo+ID4gKnBsYW5lLAo+ID4gwqAJCQnCoMKgwqDCoMKgZW51bSByZWN0YW5nbGVfdHlwZSBy ZWN0LAo+ID4gQEAgLTM1MiwxNSArMzY0LDE4IEBAIHN0YXRpYyB2b2lkIHRlc3RfcGxhbmVfcm90 YXRpb24oZGF0YV90ICpkYXRhLAo+ID4gaW50IHBsYW5lX3R5cGUsIGJvb2wgdGVzdF9iYWRfZm9y bQo+ID4gwqAKPiA+IMKgCWlndF9kaXNwbGF5X3JlcXVpcmVfb3V0cHV0KGRpc3BsYXkpOwo+ID4g wqAKPiA+ICsJaWd0X2NoZWNrX3JvdGF0aW9uKGRhdGEpOwo+ID4gKwo+ID4gwqAJZm9yX2VhY2hf cGlwZV93aXRoX3ZhbGlkX291dHB1dChkaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKPiA+IMKgCQlp Z3RfcGxhbmVfdCAqcGxhbmU7Cj4gPiDCoAkJaW50IGksIGo7Cj4gPiDCoAo+ID4gLQkJaWYgKElT X0NIRVJSWVZJRVcoZGF0YS0+ZGV2aWQpICYmIHBpcGUgIT0gUElQRV9CKQo+ID4gLQkJCWNvbnRp bnVlOwo+ID4gLQo+ID4gwqAJCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsKPiA+ IMKgCj4gPiArCQlpZiAoSVNfQ0hFUlJZVklFVyhkYXRhLT5kZXZpZCkgJiYgKGRhdGEtPnJvdGF0 aW9uCj4gPiAmCj4gPiBJR1RfUkVGTEVDVF9YKSAmJgo+ID4gKwkJwqDCoMKgwqBwaXBlICE9IGtt c3Rlc3RfcGlwZV90b19pbmRleCgnQicpKQo+ID4gKwkJCWNvbnRpbnVlOwo+ID4gKwo+IFdoeSBk byB0aGlzP8KgCj4gCj4gPiAKPiA+IMKgCQlwbGFuZSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5 cGUob3V0cHV0LAo+ID4gcGxhbmVfdHlwZSk7Cj4gPiDCoAkJaWd0X3JlcXVpcmUoaWd0X3BsYW5l X2hhc19wcm9wKHBsYW5lLAo+ID4gSUdUX1BMQU5FX1JPVEFUSU9OKSk7Cj4gPiDCoAo+ID4gQEAg LTUyMSwxNCArNTM2LDEzIEBAIGlndF9tYWluCj4gPiDCoAl9Owo+ID4gwqAKPiA+IMKgCWRhdGFf dCBkYXRhID0ge307Cj4gPiAtCWludCBnZW4gPSAwOwo+ID4gwqAKPiA+IMKgCWlndF9za2lwX29u X3NpbXVsYXRpb24oKTsKPiA+IMKgCj4gPiDCoAlpZ3RfZml4dHVyZSB7Cj4gPiDCoAkJZGF0YS5n ZnhfZmQgPQo+ID4gZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJfSU5URUwpOwo+ID4gwqAJ CWRhdGEuZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGRhdGEuZ2Z4X2ZkKTsKPiA+IC0JCWdl biA9IGludGVsX2dlbihkYXRhLmRldmlkKTsKPiA+ICsJCWRhdGEuZ2VuID0gaW50ZWxfZ2VuKGRh dGEuZGV2aWQpOwo+ID4gwqAKPiA+IMKgCQlrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2RlKCk7 Cj4gPiDCoAo+ID4gQEAgLTU0MSwxNiArNTU1LDEyIEBAIGlndF9tYWluCj4gPiDCoAkJaWd0X3N1 YnRlc3RfZigiJXMtcm90YXRpb24tJXMiLAo+ID4gwqAJCQnCoMKgwqDCoMKgwqBwbGFuZV90ZXN0 X3N0cihzdWJ0ZXN0LT5wbGFuZSksCj4gPiDCoAkJCcKgwqDCoMKgwqDCoHJvdF90ZXN0X3N0cihz dWJ0ZXN0LT5yb3QpKSB7Cj4gPiAtCQkJaWd0X3JlcXVpcmUoIShzdWJ0ZXN0LT5yb3QgJgo+ID4g LQkJCQnCoMKgwqDCoChJR1RfUk9UQVRJT05fOTAgfAo+ID4gSUdUX1JPVEFUSU9OXzI3MCkpIHx8 Cj4gPiAtCQkJCcKgwqDCoMKgZ2VuID49IDkpOwo+ID4gwqAJCQlkYXRhLnJvdGF0aW9uID0gc3Vi dGVzdC0+cm90Owo+ID4gwqAJCQl0ZXN0X3BsYW5lX3JvdGF0aW9uKCZkYXRhLCBzdWJ0ZXN0LT5w bGFuZSwKPiA+IGZhbHNlKTsKPiA+IMKgCQl9Cj4gPiDCoAl9Cj4gPiDCoAo+ID4gwqAJaWd0X3N1 YnRlc3RfZigic3ByaXRlLXJvdGF0aW9uLTkwLXBvcy0xMDAtMCIpIHsKPiA+IC0JCWlndF9yZXF1 aXJlKGdlbiA+PSA5KTsKPiA+IMKgCQlkYXRhLnJvdGF0aW9uID0gSUdUX1JPVEFUSU9OXzkwOwo+ ID4gwqAJCWRhdGEucG9zX3ggPSAxMDAsCj4gPiDCoAkJZGF0YS5wb3NfeSA9IDA7Cj4gPiBAQCAt NTYwLDcgKzU3MCw2IEBAIGlndF9tYWluCj4gPiDCoAlkYXRhLnBvc195ID0gMDsKPiA+IMKgCj4g PiDCoAlpZ3Rfc3VidGVzdF9mKCJiYWQtcGl4ZWwtZm9ybWF0Iikgewo+ID4gLQkJaWd0X3JlcXVp cmUoZ2VuID49IDkpOwo+ID4gwqAJCWRhdGEucm90YXRpb24gPSBJR1RfUk9UQVRJT05fOTA7Cj4g PiDCoAkJZGF0YS5vdmVycmlkZV9mbXQgPSBEUk1fRk9STUFUX1JHQjU2NTsKPiA+IMKgCQl0ZXN0 X3BsYW5lX3JvdGF0aW9uKCZkYXRhLCBEUk1fUExBTkVfVFlQRV9QUklNQVJZLAo+ID4gdHJ1ZSk7 Cj4gPiBAQCAtNTY4LDcgKzU3Nyw2IEBAIGlndF9tYWluCj4gPiDCoAlkYXRhLm92ZXJyaWRlX2Zt dCA9IDA7Cj4gPiDCoAo+ID4gwqAJaWd0X3N1YnRlc3RfZigiYmFkLXRpbGluZyIpIHsKPiA+IC0J CWlndF9yZXF1aXJlKGdlbiA+PSA5KTsKPiA+IMKgCQlkYXRhLnJvdGF0aW9uID0gSUdUX1JPVEFU SU9OXzkwOwo+ID4gwqAJCWRhdGEub3ZlcnJpZGVfdGlsaW5nID0KPiA+IExPQ0FMX0k5MTVfRk9S TUFUX01PRF9YX1RJTEVEOwo+ID4gwqAJCXRlc3RfcGxhbmVfcm90YXRpb24oJmRhdGEsIERSTV9Q TEFORV9UWVBFX1BSSU1BUlksCj4gPiB0cnVlKTsKPiA+IEBAIC01NzksOSArNTg3LDYgQEAgaWd0 X21haW4KPiA+IMKgCQlpZ3Rfc3VidGVzdF9mKCJwcmltYXJ5LSVzLXJlZmxlY3QteC0lcyIsCj4g PiDCoAkJCcKgwqDCoMKgwqDCoHRpbGluZ190ZXN0X3N0cihyZWZsZWN0X3gtPnRpbGluZyksCj4g PiDCoAkJCcKgwqDCoMKgwqDCoHJvdF90ZXN0X3N0cihyZWZsZWN0X3gtPnJvdCkpIHsKPiA+IC0J CQlpZ3RfcmVxdWlyZShnZW4gPj0gMTAgfHwKPiA+IC0JCQkJwqDCoMKgwqAoSVNfQ0hFUlJZVklF VyhkYXRhLmRldmlkKSAmJgo+ID4gcmVmbGVjdF94LT5yb3QgPT0gSUdUX1JPVEFUSU9OXzAKPiA+ IC0JCQkJwqDCoMKgwqDCoCYmIHJlZmxlY3RfeC0+dGlsaW5nID09Cj4gPiBMT0NBTF9JOTE1X0ZP Uk1BVF9NT0RfWF9USUxFRCkpOwo+ID4gwqAJCQlkYXRhLnJvdGF0aW9uID0gKElHVF9SRUZMRUNU X1ggfAo+ID4gcmVmbGVjdF94LQo+ID4gPiAKPiA+ID4gcm90KTsKPiA+IMKgCQkJZGF0YS5vdmVy cmlkZV90aWxpbmcgPSByZWZsZWN0X3gtPnRpbGluZzsKPiA+IMKgCQkJdGVzdF9wbGFuZV9yb3Rh dGlvbigmZGF0YSwKPiA+IERSTV9QTEFORV9UWVBFX1BSSU1BUlksIGZhbHNlKTsKPiA+IEBAIC01 OTYsNyArNjAxLDcgQEAgaWd0X21haW4KPiA+IMKgCQllbnVtIHBpcGUgcGlwZTsKPiA+IMKgCQlp Z3Rfb3V0cHV0X3QgKm91dHB1dDsKPiA+IMKgCj4gPiAtCQlpZ3RfcmVxdWlyZShnZW4gPj0gOSk7 Cj4gPiArCQlpZ3RfcmVxdWlyZShkYXRhLmdlbiA+PSA5KTsKPiA+IMKgCQlpZ3RfZGlzcGxheV9y ZXF1aXJlX291dHB1dCgmZGF0YS5kaXNwbGF5KTsKPiA+IMKgCj4gPiDCoAkJZm9yX2VhY2hfcGlw ZV93aXRoX3ZhbGlkX291dHB1dCgmZGF0YS5kaXNwbGF5LAo+ID4gcGlwZSwKPiA+IG91dHB1dCkg ewpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK