From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9D5156EE52 for ; Wed, 23 Jan 2019 05:30:49 +0000 (UTC) Message-ID: From: Dhinakaran Pandiyan Date: Tue, 22 Jan 2019 21:30:44 -0800 In-Reply-To: <20190123010950.25867-2-jose.souza@intel.com> References: <20190123010950.25867-1-jose.souza@intel.com> <20190123010950.25867-2-jose.souza@intel.com> Mime-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t v3 2/2] test: Add PSR2 selective update tests 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: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: =?ISO-8859-1?Q?Jos=E9?= Roberto de Souza , igt-dev@lists.freedesktop.org Cc: Rodrigo Vivi List-ID: T24gVHVlLCAyMDE5LTAxLTIyIGF0IDE3OjA5IC0wODAwLCBKb3PDqSBSb2JlcnRvIGRlIFNvdXph IHdyb3RlOgo+IFRoaXMgdGVzdHMgY2hlY2tzIGlmIGhhcmR3YXJlIGlzIGFibGUgdG8gZG8gc2Vs ZWN0aXZlIHVwZGF0ZSB3aGVuCj4gc2NyZWVuIGNoYW5nZXMuCj4gUFNSMiBkb24ndCB0cmlnZ2Vy IGludGVycnVwdGlvbnMgYW5kIHRoZSAnUFNSMiBTVSBzdGF0dXMnIHJlZ2lzdGVyCj4gaXMgbm90 IGtlcHQgbG9hZGVkIGFsbCB0aGUgdGltZXMsIHNvIGl0IGlzIG5lY2Vzc2FyeSBrZWVwIHBvbGxp bmcKPiBQU1Igc3RhdHVzIGRlYnVnZnMgdW50aWwgdGhvc2UgdmFsdWVzIGFyZSBsb2FkZWQuCj4g Cj4gQWxzbyBmcm9tIERFRVBfU0xFRVAgc3RhdGUgSFcgd2lsbCBub3QgZG8gYSBzZWxldGl2ZSB1 cGRhdGUsIGFzCj4gbW9zdCBvZiB0aGUgbWVtb3J5L2NvbnRleHQgaXMgbG9zdCBpbiBkZWVwIHNs ZWVwIHN0YXRlIGhhcmR3YXJlIHdpbGwKPiBuZWVkIHRvIGV4aXQgUFNSIG1vZGUgdGhlbiB3YWl0 IGEgY29uZmlndXJlZCBudW1iZXIgb2YgZnJhbWVzIHRvCj4gYWN0aXZhdGUgUFNSIGFnYWluIHRv IHRoZW4gc3RhcnQgZG9pbmcgc2VsZXRpdmUgdXBkYXRlcywgdGhhdCBpcyB3aHkKPiBqdXN0IG9u ZSBzY3JlZW4gY2hhbmdlIGlzIG5vdCBlbm91Z2ggdG8gcGFzcyB0aGlzIHRlc3RzLgoKSG93IGRv IHlvdSBlbnN1cmUgdGhlIGhhcmR3YXJlIGhhc24ndCBnb25lIHRvIGRlZXAgc2xlZXA/IENhbiB3 ZSBtYWtlCnRoZSB0ZXN0IGZhaWwgaWYgdGhlIHRlc3QgY29uZmlndXJhdGlvbiBhbGxvd2VkIERF RVBfU0xFRVA/IAo+IAo+IFdoZW4gYSBzZWxlY3RpdmUgdXBkYXRlIGhhcHBlbnMgYW5kIHRoZSB2 YWx1ZXMgYXJlIGxvYWRlZCBhbmQgcmVhZAo+IGZyb20gZGVidWdmcyBpdCBpcyBjb21wYXJlZCB3 aXRoIHRoZSBleHBlY3RlZCB2YWx1ZSBvZiBzZWxldGl2ZQo+IHVwZGF0ZSBibG9ja3MsIGlmIG1h dGNoZXMgdGhlIHBvbGxpbmcgaXMgc3RvcHBlZCBhbmQgdGhlIHRlc3QgcGFzc2VkCj4gb3RoZXJ3 aXNlIGl0IHdpbGwgd2FpdCB1bnRpbCBpdCByZWFjaHMgYSBtYXhpbXVtIG51bWJlciBvIHNjcmVl bgo+IGNoYW5nZXMgdG8gZmFpbCB0aGUgdGVzdC4KPiAKPiB2MjogVXNpbmcgbmV3IFNVIGJsb2Nr cyBkZWJ1Z2ZzIG91dHB1dAo+IAo+IHYzOgo+IC0gcmVtb3ZlZCB0aGUgdGltZXJmZCB0byBmYWls IHRoZSB0ZXN0LCBub3cgZmFpbGluZyBiYXNlZCBpbiBhCj4gbWF4aW11bSBudW1iZXIgb2Ygc2Ny ZWVuIGNoYW5nZXMKPiAtIHJlbW92aW5nIHRocmVhZCB0byByZWFkIGRlYnVnZnMsIHJlYWQgZnJv bSBtYWluIHRocmVhZCBpcyBlbm91Z2gKPiAtIGltcHJvdmVkIGNvbW1pdCBtZXNzYWdlCj4gCj4g Q2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiBDYzogRGhpbmFrYXJh biBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1i eTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+Cj4gLS0tCj4g IGxpYi9pZ3RfcHNyLmMgICAgICAgICAgfCAgMjkgKysrKwo+ICBsaWIvaWd0X3Bzci5oICAgICAg ICAgIHwgICAxICsKPiAgdGVzdHMvTWFrZWZpbGUuc291cmNlcyB8ICAgMSArCj4gIHRlc3RzL2tt c19wc3IyX3N1LmMgICAgfCAzMDIKPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwo+ICB0ZXN0cy9tZXNvbi5idWlsZCAgICAgIHwgICAxICsKPiAgNSBmaWxlcyBjaGFu Z2VkLCAzMzQgaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21zX3Bz cjJfc3UuYwo+IAo+IGRpZmYgLS1naXQgYS9saWIvaWd0X3Bzci5jIGIvbGliL2lndF9wc3IuYwo+ IGluZGV4IGQ3MjZmYWQ1Li44YzBmMDVlOCAxMDA2NDQKPiAtLS0gYS9saWIvaWd0X3Bzci5jCj4g KysrIGIvbGliL2lndF9wc3IuYwo+IEBAIC0xNzgsMyArMTc4LDMyIEBAIGJvb2wgcHNyX3Npbmtf c3VwcG9ydChpbnQgZGVidWdmc19mZCwgZW51bQo+IHBzcl9tb2RlIG1vZGUpCj4gIAkJICovCj4g IAkJcmV0dXJuIHN0cnN0cihidWYsICJTaW5rIHN1cHBvcnQ6IHllcyBbMHgwM10iKTsKPiAgfQo+ ICsKPiArI2RlZmluZSBQU1IyX1NVX0JMT0NLX1NUUl9MT09LVVAgIlBTUjIgU1UgYmxvY2tzOlxu MFx0Igo+ICsKPiArc3RhdGljIGJvb2wKPiArcHNyMl9yZWFkX2xhc3RfbnVtX3N1X2Jsb2Nrc192 YWwoaW50IGRlYnVnZnNfZmQsIHVpbnQxNl90Cj4gKm51bV9zdV9ibG9ja3MpCj4gK3sKPiArCWNo YXIgYnVmW1BTUl9TVEFUVVNfTUFYX0xFTl07Cj4gKwljaGFyICpzdHI7Cj4gKwlpbnQgcmV0Owo+ ICsKPiArCXJldCA9IGlndF9kZWJ1Z2ZzX3NpbXBsZV9yZWFkKGRlYnVnZnNfZmQsCj4gImk5MTVf ZWRwX3Bzcl9zdGF0dXMiLCBidWYsCj4gKwkJCQkgICAgICBzaXplb2YoYnVmKSk7Cj4gKwlpZiAo cmV0IDwgMCkKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwo+ICsJc3RyID0gc3Ryc3RyKGJ1ZiwgUFNS Ml9TVV9CTE9DS19TVFJfTE9PS1VQKTsKPiArCWlmICghc3RyKQo+ICsJCXJldHVybiBmYWxzZTsK PiArCj4gKwlzdHIgPSAmc3RyW3N0cmxlbihQU1IyX1NVX0JMT0NLX1NUUl9MT09LVVApXTsKPiAr CSpudW1fc3VfYmxvY2tzID0gKHVpbnQxNl90KXN0cnRvbChzdHIsIE5VTEwsIDEwKTsKPiArCj4g KwlyZXR1cm4gdHJ1ZTsKPiArfQo+ICsKPiArYm9vbCBwc3IyX3dhaXRfc3UoaW50IGRlYnVnZnNf ZmQsIHVpbnQxNl90ICpudW1fc3VfYmxvY2tzKQo+ICt7Cj4gKwlyZXR1cm4gaWd0X3dhaXQocHNy Ml9yZWFkX2xhc3RfbnVtX3N1X2Jsb2Nrc192YWwoZGVidWdmc19mZCwKPiBudW1fc3VfYmxvY2tz KSwgNDAsIDEpOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfcHNyLmggYi9saWIvaWd0X3Bz ci5oCj4gaW5kZXggN2U3MDE3YmYuLjQ5NTk5Y2Y4IDEwMDY0NAo+IC0tLSBhL2xpYi9pZ3RfcHNy LmgKPiArKysgYi9saWIvaWd0X3Bzci5oCj4gQEAgLTQwLDUgKzQwLDYgQEAgYm9vbCBwc3Jfd2Fp dF91cGRhdGUoaW50IGRlYnVnZnNfZmQsIGVudW0gcHNyX21vZGUKPiBtb2RlKTsKPiAgYm9vbCBw c3JfZW5hYmxlKGludCBkZWJ1Z2ZzX2ZkLCBlbnVtIHBzcl9tb2RlKTsKPiAgYm9vbCBwc3JfZGlz YWJsZShpbnQgZGVidWdmc19mZCk7Cj4gIGJvb2wgcHNyX3Npbmtfc3VwcG9ydChpbnQgZGVidWdm c19mZCwgZW51bSBwc3JfbW9kZSk7Cj4gK2Jvb2wgcHNyMl93YWl0X3N1KGludCBkZWJ1Z2ZzX2Zk LCB1aW50MTZfdCAqbnVtX3N1X2Jsb2Nrcyk7Cj4gIAo+ICAjZW5kaWYKPiBkaWZmIC0tZ2l0IGEv dGVzdHMvTWFrZWZpbGUuc291cmNlcyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKPiBpbmRleCA1 MTllYWM3OS4uOTE3NGFlY2MgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+ ICsrKyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKPiBAQCAtODAsNiArODAsNyBAQCBURVNUU19w cm9ncyA9IFwKPiAgCWttc19wbGFuZV9zY2FsaW5nIFwKPiAgCWttc19wcm9wZXJ0aWVzIFwKPiAg CWttc19wc3IgXAo+ICsJa21zX3BzcjJfc3UgXAo+ICAJa21zX3B3cml0ZV9jcmMgXAo+ICAJa21z X3JtZmIgXAo+ICAJa21zX3JvdGF0aW9uX2NyYyBcCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19w c3IyX3N1LmMgYi90ZXN0cy9rbXNfcHNyMl9zdS5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBp bmRleCAwMDAwMDAwMC4uZjZlODVhMmYKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvdGVzdHMva21z X3BzcjJfc3UuYwo+IEBAIC0wLDAgKzEsMzAyIEBACj4gKy8qCj4gKyAqIENvcHlyaWdodCDCqSAy MDE5IEludGVsIENvcnBvcmF0aW9uCj4gKyAqCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uCj4gb2J0YWluaW5nIGEKPiArICog Y29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMg KHRoZQo+ICJTb2Z0d2FyZSIpLAo+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0 IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dAo+IGxpbWl0YXRpb24KPiArICogdGhlIHJp Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsCj4g c3VibGljZW5zZSwKPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5k IHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20KPiB0aGUKPiArICogU29mdHdhcmUgaXMgZnVybmlz aGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcKPiBjb25kaXRpb25zOgo+ICsg Kgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v dGljZSAoaW5jbHVkaW5nCj4gdGhlIG5leHQKPiArICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNs dWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsCj4gcG9ydGlvbnMgb2YgdGhlCj4gKyAq IFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwg V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKPiBFWFBSRVNTIE9SCj4gKyAqIElNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKPiBNRVJDSEFO VEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J TkZSSU5HRU1FTlQuICBJTiBOTwo+IEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBBVVRIT1JTIE9SIENP UFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTCj4gT1IgT1RI RVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9S VCBPUiBPVEhFUldJU0UsCj4gQVJJU0lORwo+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD VElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCj4gT1RIRVIgREVBTElOR1MKPiAr ICogSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlICJpZ3QuaCIK PiArI2luY2x1ZGUgImlndF9zeXNmcy5oIgo+ICsjaW5jbHVkZSAiaWd0X3Bzci5oIgo+ICsjaW5j bHVkZSA8ZXJybm8uaD4KPiArI2luY2x1ZGUgPHBvbGwuaD4KPiArI2luY2x1ZGUgPHN0ZGJvb2wu aD4KPiArI2luY2x1ZGUgPHN0ZGlvLmg+Cj4gKyNpbmNsdWRlIDxzdHJpbmcuaD4KPiArI2luY2x1 ZGUgPHN5cy90aW1lcmZkLmg+Cj4gKyNpbmNsdWRlICJpbnRlbF9idWZtZ3IuaCIKPiArCj4gK0lH VF9URVNUX0RFU0NSSVBUSU9OKCJUZXN0IFBTUjIgc2VsZWN0aXZlIHVwZGF0ZSIpOwo+ICsKPiAr I2RlZmluZSBTUVVBUkVfU0laRSAxMDAKPiArLyogZWFjaCBzZWxlY3RpdmUgdXBkYXRlIGJsb2Nr IGlzIDQgbGluZXMgdGFsbCAqLwo+ICsjZGVmaW5lIEVYUEVDVEVEX05VTV9TVV9CTE9DS1MgKChT UVVBUkVfU0laRSAvIDQpICsgKFNRVUFSRV9TSVpFICUgNAo+ID8gMSA6IDApKQo+ICsKPiArLyoK PiArICogTWluaW11bSBpcyAxNSBhcyB0aGUgbnVtYmVyIG9mIGZyYW1lcyB0byBhY3RpdmUgUFNS MiBjb3VsZCBiZQo+IGNvbmZpZ3VyZWQKPiArICogdG8gMTUgZnJhbWVzIHBsdXMgYSBmZXcgbW9y ZSBpbiBjYXNlIHdlIG1pc3MgYSBzZWxlY3RpdmUgdXBkYXRlCj4gYmV0d2Vlbgo+ICsgKiBkZWJ1 Z2ZzIHJlYWRzLgo+ICsgKi8KPiArI2RlZmluZSBNQVhfU0NSRUVOX0NIQU5HRVMgMjAKPiArCj4g K2VudW0gb3BlcmF0aW9ucyB7Cj4gKwlQQUdFX0ZMSVAsCj4gKwlGUk9OVEJVRkZFUiwKPiArCUxB U1QKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBjaGFyICpvcF9zdHIoZW51bSBvcGVyYXRpb25z IG9wKQo+ICt7Cj4gKwlzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG5hbWVbXSA9IHsKPiArCQlb UEFHRV9GTElQXSA9ICJwYWdlX2ZsaXAiLAo+ICsJCVtGUk9OVEJVRkZFUl0gPSAiZnJvbnRidWZm ZXIiCj4gKwl9Owo+ICsKPiArCXJldHVybiBuYW1lW29wXTsKPiArfQo+ICsKPiArdHlwZWRlZiBz dHJ1Y3Qgewo+ICsJaW50IGRybV9mZDsKPiArCWludCBkZWJ1Z2ZzX2ZkOwo+ICsJaWd0X2Rpc3Bs YXlfdCBkaXNwbGF5Owo+ICsJZHJtX2ludGVsX2J1Zm1nciAqYnVmbWdyOwo+ICsJZHJtTW9kZU1v ZGVJbmZvICptb2RlOwo+ICsJaWd0X291dHB1dF90ICpvdXRwdXQ7Cj4gKwlzdHJ1Y3QgaWd0X2Zi IGZiWzJdOwo+ICsJc3RydWN0IHBvbGxmZCBwb2xsZmRzWzFdOwoKPiArCWVudW0gb3BlcmF0aW9u cyBvcDsKPiArCWludCBjaGFuZ2Vfc2NyZWVuX3RpbWVyZmQ7Cj4gKwl1aW50MzJfdCBzY3JlZW5f Y2hhbmdlczsKPiArCWJvb2wgc3VjY2VzczsKPiArCj4gK30gZGF0YV90Owo+ICsKPiArc3RhdGlj IHZvaWQgc2V0dXBfb3V0cHV0KGRhdGFfdCAqZGF0YSkKPiArewo+ICsJaWd0X2Rpc3BsYXlfdCAq ZGlzcGxheSA9ICZkYXRhLT5kaXNwbGF5Owo+ICsJaWd0X291dHB1dF90ICpvdXRwdXQ7Cj4gKwll bnVtIHBpcGUgcGlwZTsKPiArCj4gKwlmb3JfZWFjaF9waXBlX3dpdGhfdmFsaWRfb3V0cHV0KGRp c3BsYXksIHBpcGUsIG91dHB1dCkgewo+ICsJCWRybU1vZGVDb25uZWN0b3JQdHIgYyA9IG91dHB1 dC0+Y29uZmlnLmNvbm5lY3RvcjsKPiArCj4gKwkJaWYgKGMtPmNvbm5lY3Rvcl90eXBlICE9IERS TV9NT0RFX0NPTk5FQ1RPUl9lRFApCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQlpZ3Rfb3V0cHV0 X3NldF9waXBlKG91dHB1dCwgcGlwZSk7Cj4gKwkJZGF0YS0+b3V0cHV0ID0gb3V0cHV0Owo+ICsJ CWRhdGEtPm1vZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCk7Cj4gKwo+ICsJCXJldHVy bjsKPiArCX0KPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZGlzcGxheV9pbml0KGRhdGFfdCAqZGF0 YSkKPiArewo+ICsJaWd0X2Rpc3BsYXlfcmVxdWlyZSgmZGF0YS0+ZGlzcGxheSwgZGF0YS0+ZHJt X2ZkKTsKPiArCXNldHVwX291dHB1dChkYXRhKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZGlz cGxheV9maW5pKGRhdGFfdCAqZGF0YSkKPiArewo+ICsJaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS0+ ZGlzcGxheSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHByZXBhcmUoZGF0YV90ICpkYXRhKQo+ ICt7Cj4gKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKPiArCj4gKwkvKiBhbGwgZ3JlZW4gZnJhbWUg Ki8KPiArCWlndF9jcmVhdGVfY29sb3JfZmIoZGF0YS0+ZHJtX2ZkLAo+ICsJCQkgICAgZGF0YS0+ bW9kZS0+aGRpc3BsYXksIGRhdGEtPm1vZGUtPnZkaXNwbGF5LAo+ICsJCQkgICAgRFJNX0ZPUk1B VF9YUkdCODg4OCwKPiArCQkJICAgIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsCj4gKwkJCSAg ICAwLjAsIDEuMCwgMC4wLAo+ICsJCQkgICAgJmRhdGEtPmZiWzBdKTsKPiArCj4gKwlpZiAoZGF0 YS0+b3AgPT0gUEFHRV9GTElQKSB7Cj4gKwkJY2Fpcm9fdCAqY3I7Cj4gKwo+ICsJCWlndF9jcmVh dGVfY29sb3JfZmIoZGF0YS0+ZHJtX2ZkLAo+ICsJCQkJICAgIGRhdGEtPm1vZGUtPmhkaXNwbGF5 LCBkYXRhLT5tb2RlLQo+ID52ZGlzcGxheSwKPiArCQkJCSAgICBEUk1fRk9STUFUX1hSR0I4ODg4 LAo+ICsJCQkJICAgIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsCj4gKwkJCQkgICAgMC4wLCAx LjAsIDAuMCwKPiArCQkJCSAgICAmZGF0YS0+ZmJbMV0pOwo+ICsKPiArCQljciA9IGlndF9nZXRf Y2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiWzFdKTsKPiArCQkvKiBwYWludCBhIHdo aXRlIHNxdWFyZSAqLwo+ICsJCWlndF9wYWludF9jb2xvcl9hbHBoYShjciwgMCwgMCwgU1FVQVJF X1NJWkUsCj4gU1FVQVJFX1NJWkUsCj4gKwkJCQkgICAgICAxLjAsIDEuMCwgMS4wLCAxLjApOwo+ ICsJCWlndF9wdXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgICZkYXRhLT5mYlsxXSwgY3IpOwo+ ICsJfQo+ICsKPiArCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGRhdGEtPm91 dHB1dCwKPiArCQkJCQkgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7Cj4gKwlpZ3RfcGxhbmVf c2V0X2ZiKHByaW1hcnksIE5VTEwpOwo+ICsKPiArCWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ ZGlzcGxheSk7Cj4gKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZkYXRhLT5mYlswXSk7Cj4g KwlpZ3RfZGlzcGxheV9jb21taXQoJmRhdGEtPmRpc3BsYXkpOwo+ICsKPiArCWlndF9hc3NlcnQo cHNyX3dhaXRfZW50cnkoZGF0YS0+ZGVidWdmc19mZCwgUFNSX01PREVfMikpOwo+ICsKPiArCWRh dGEtPnN1Y2Nlc3MgPSBmYWxzZTsKPiArCWRhdGEtPnNjcmVlbl9jaGFuZ2VzID0gMDsKPiArfQo+ ICsKPiArc3RhdGljIHZvaWQgdXBkYXRlX3NjcmVlbl9hbmRfdGVzdChkYXRhX3QgKmRhdGEpCj4g K3sKPiArCXVpbnQxNl90IHN1X2Jsb2NrczsKPiArCj4gKwlkYXRhLT5zY3JlZW5fY2hhbmdlcysr Owo+ICsKPiArCXN3aXRjaCAoZGF0YS0+b3ApIHsKPiArCWNhc2UgUEFHRV9GTElQOiB7Cj4gKwkJ aWd0X3BsYW5lX3QgKnByaW1hcnk7Cj4gKwo+ICsJCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9w bGFuZV90eXBlKGRhdGEtPm91dHB1dCwKPiArCQkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BSSU0K PiBBUlkpOwo+ICsKPiArCQlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZkYXRhLT5mYltkYXRh LQo+ID5zY3JlZW5fY2hhbmdlcyAmIDFdKTsKPiArCQlpZ3RfZGlzcGxheV9jb21taXQoJmRhdGEt PmRpc3BsYXkpOwo+ICsJCWJyZWFrOwo+ICsJfQo+ICsJY2FzZSBGUk9OVEJVRkZFUjogewo+ICsJ CWRybU1vZGVDbGlwIGNsaXA7Cj4gKwkJY2Fpcm9fdCAqY3I7Cj4gKwkJaW50IHI7Cj4gKwo+ICsJ CWNsaXAueDEgPSBjbGlwLnkxID0gMDsKPiArCQljbGlwLngyID0gY2xpcC55MiA9IFNRVUFSRV9T SVpFOwo+ICsKPiArCQljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEt PmZiWzBdKTsKSSdtIG5vdCBmYW1pbGlhciB3aXRoIGNhaXJvIHVzYWdlLCBsb29rcyBsaWtlIGln dF9wdXRfY2Fpcm9fY3R4KCkgaXMKbWlzc2luZy4gQW5kIGRvIHlvdSBuZWVkIGEgZ2V0IGFuZCBw dXQgZm9yIGVhY2ggdXBkYXRlPyBJIGFzc3VtZSB5b3UKY291bGQgZG8gYSBnZXQgYXQgdGhlIGJl Z2lubmluZyBvZiB0aGUgdGVzdC4KCj4gKwo+ICsJCWlmIChkYXRhLT5zY3JlZW5fY2hhbmdlcyAm IDEpIHsKPiArCQkJLyogZ28gYmFjayB0byBhbGwgZ3JlZW4gZnJhbWUgd2l0aCB3aXRoIHNxdWFy ZQo+ICovCj4gKwkJCWlndF9wYWludF9jb2xvcl9hbHBoYShjciwgMCwgMCwgU1FVQVJFX1NJWkUs Cj4gKwkJCQkJICAgICAgU1FVQVJFX1NJWkUsIDEuMCwgMS4wLAo+IDEuMCwgMS4wKTsKPiArCQl9 IGVsc2Ugewo+ICsJCQkvKiBnbyBiYWNrIHRvIGFsbCBncmVlbiBmcmFtZSAqLwo+ICsJCQlpZ3Rf cGFpbnRfY29sb3JfYWxwaGEoY3IsIDAsIDAsIFNRVUFSRV9TSVpFLAo+ICsJCQkJCSAgICAgIFNR VUFSRV9TSVpFLCAwLCAxLjAsIDAsCj4gMS4wKTsKPiArCQl9Cj4gKwo+ICsJCXIgPSBkcm1Nb2Rl RGlydHlGQihkYXRhLT5kcm1fZmQsIGRhdGEtPmZiWzBdLmZiX2lkLAo+ICZjbGlwLCAxKTsKPiAr CQlpZ3RfYXNzZXJ0KHIgPT0gMCB8fCByID09IC1FTk9TWVMpOwo+ICsJCWJyZWFrOwo+ICsJfQo+ ICsJZGVmYXVsdDoKPiArCQlpZ3RfYXNzZXJ0X2YoZGF0YS0+b3AsICJPcGVyYXRpb24gbm90IGhh bmRsZWRcbiIpOwo+ICsJfQo+ICsKPiArCWlmIChwc3IyX3dhaXRfc3UoZGF0YS0+ZGVidWdmc19m ZCwgJnN1X2Jsb2NrcykpCj4gKwkJZGF0YS0+c3VjY2VzcyA9IHN1X2Jsb2NrcyA9PSBFWFBFQ1RF RF9OVU1fU1VfQkxPQ0tTOwoKTG9va3MgZ29vZCBvdmVyYWxsLCBJIGhhdmVuJ3QgcmV2aWV3ZWQg dGhlIGRldGFpbHMgeWV0LiBOb3cgdGhhdAp0aGVyZSdzIG9ubHkgb25lIHRocmVhZCwgcmV0dXJu IGJvb2wgYW5kIGtpbGwgZGF0YS0+c3VjY2Vzcz8KCj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHJ1 bihkYXRhX3QgKmRhdGEpCj4gK3sKPiArCXdoaWxlIChkYXRhLT5zY3JlZW5fY2hhbmdlcyA8IE1B WF9TQ1JFRU5fQ0hBTkdFUyAmJiAhZGF0YS0KPiA+c3VjY2Vzcykgewo+ICsJCXVpbnQ2NF90IGV4 cDsKPiArCQlpbnQgcjsKPiArCj4gKwkJciA9IHBvbGwoZGF0YS0+cG9sbGZkcywKPiArCQkJIHNp emVvZihkYXRhLT5wb2xsZmRzKSAvIHNpemVvZihkYXRhLQo+ID5wb2xsZmRzWzBdKSwgLTEpOwo+ ICsJCWlmIChyIDwgMCkKPiArCQkJYnJlYWs7Cj4gKwo+ICsJCWlmIChkYXRhLT5wb2xsZmRzWzBd LnJldmVudHMgJiBQT0xMSU4pIHsKPiArCQkJciA9IHJlYWQoZGF0YS0+cG9sbGZkc1swXS5mZCwg JmV4cCwKPiBzaXplb2YoZXhwKSk7Cj4gKwo+ICsJCQlpZiAociAhPSBzaXplb2YodWludDY0X3Qp KSB7Cj4gKwkJCQlpZ3Rfd2FybigicmVhZCBhIG5vdCBleHBlY3RlZCBudW1iZXIgb2YKPiBieXRl cyBmcm9tIGNoYW5nZV9zY3JlZW5fdGltZXJmZDogJWlcbiIsIHIpOwo+ICsJCQl9IGVsc2UgaWYg KGV4cCkKPiArCQkJCXVwZGF0ZV9zY3JlZW5fYW5kX3Rlc3QoZGF0YSk7Cj4gKwkJfQo+ICsJfQo+ ICsKPiArCWlndF9kZWJ1ZygiU2NyZWVuIGNoYW5nZXM6ICV1XG4iLCBkYXRhLT5zY3JlZW5fY2hh bmdlcyk7Cj4gKwlpZ3RfYXNzZXJ0KGRhdGEtPnN1Y2Nlc3MpOwpDb25zaWRlciB1c2luZyBhc3Nl cnRfZigpIHRvIGFkZCBzb21lIGRlYnVnIGluZm9ybWF0aW9uIHdoZW4gdGhlIHRlc3QKZmFpbHMu Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGNsZWFudXAoZGF0YV90ICpkYXRhKQo+ICt7Cj4gKwlp Z3RfcGxhbmVfdCAqcHJpbWFyeTsKPiArCj4gKwlwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxh bmVfdHlwZShkYXRhLT5vdXRwdXQsCj4gKwkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlkp Owo+ICsJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCBOVUxMKTsKPiArCWlndF9kaXNwbGF5X2Nv bW1pdCgmZGF0YS0+ZGlzcGxheSk7Cj4gKwo+ICsJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQs ICZkYXRhLT5mYlswXSk7Cj4gKwlpZiAoZGF0YS0+b3AgPT0gUEFHRV9GTElQKQo+ICsJCWlndF9y ZW1vdmVfZmIoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJbMV0pOwo+ICt9Cj4gKwo+ICtpbnQgbWFp bihpbnQgYXJnYywgY2hhciAqYXJndltdKQo+ICt7Cj4gKwlkYXRhX3QgZGF0YSA9IHt9Owo+ICsK PiArCWlndF9zdWJ0ZXN0X2luaXRfcGFyc2Vfb3B0cygmYXJnYywgYXJndiwgIiIsIE5VTEwsCj4g KwkJCQkgICAgTlVMTCwgTlVMTCwgTlVMTCk7Cj4gKwlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7 Cj4gKwo+ICsJaWd0X2ZpeHR1cmUgewo+ICsJCXN0cnVjdCBpdGltZXJzcGVjIGludGVydmFsOwo+ ICsJCWludCByOwo+ICsKPiArCQlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIo RFJJVkVSX0lOVEVMKTsKPiArCQlkYXRhLmRlYnVnZnNfZmQgPSBpZ3RfZGVidWdmc19kaXIoZGF0 YS5kcm1fZmQpOwo+ICsJCWttc3Rlc3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsKPiArCj4gKwkJ aWd0X3JlcXVpcmVfZihwc3Jfc2lua19zdXBwb3J0KGRhdGEuZGVidWdmc19mZCwKPiBQU1JfTU9E RV8yKSwKPiArCQkJICAgICAgIlNpbmsgZG9lcyBub3Qgc3VwcG9ydCBQU1IyXG4iKTsKPiArCj4g KwkJZGF0YS5idWZtZ3IgPSBkcm1faW50ZWxfYnVmbWdyX2dlbV9pbml0KGRhdGEuZHJtX2ZkLAo+ IDQwOTYpOwo+ICsJCWlndF9hc3NlcnQoZGF0YS5idWZtZ3IpOwo+ICsJCWRybV9pbnRlbF9idWZt Z3JfZ2VtX2VuYWJsZV9yZXVzZShkYXRhLmJ1Zm1ncik7Cj4gKwo+ICsJCWRpc3BsYXlfaW5pdCgm ZGF0YSk7Cj4gKwo+ICsJCWlndF9yZXF1aXJlKHBzcl9lbmFibGUoZGF0YS5kZWJ1Z2ZzX2ZkLCBQ U1JfTU9ERV8yKSk7Cj4gKwkJaWd0X3JlcXVpcmUocHNyX3dhaXRfZW50cnkoZGF0YS5kZWJ1Z2Zz X2ZkLAo+IFBTUl9NT0RFXzIpKTsKPiArCj4gKwkJZGF0YS5jaGFuZ2Vfc2NyZWVuX3RpbWVyZmQg PQo+IHRpbWVyZmRfY3JlYXRlKENMT0NLX01PTk9UT05JQywKPiArCQkJCQkJCSAgICBURkRfTk9O QkxPQwo+IEspOwpEb2VzIHRoaXMgbmVlZCB0byBiZSBub24tYmxvY2tpbmcsIGNhbid0IHdlIGFs bG93IHJlYWQoKSB0byBibG9jayB1bnRpbAp0aGUgdGltZXIgZXhwaXJlcyBhbmQgdGhlbiBkbyBh IHNjcmVlbiB1cGRhdGU/Cgo+ICsJCWlndF9yZXF1aXJlKGRhdGEuY2hhbmdlX3NjcmVlbl90aW1l cmZkICE9IC0xKTsKPiArCQkvKiBDaGFuZ2luZyBzY3JlZW4gYXQgMzBoeiB0byBzdXBwb3J0IDMw aHogcGFuZWxzICovCj4gKwkJaW50ZXJ2YWwuaXRfdmFsdWUudHZfbnNlYyA9IE5TRUNfUEVSX1NF QyAvIDMwOwo+ICsJCWludGVydmFsLml0X3ZhbHVlLnR2X3NlYyA9IDA7Cj4gKwkJaW50ZXJ2YWwu aXRfaW50ZXJ2YWwudHZfbnNlYyA9Cj4gaW50ZXJ2YWwuaXRfdmFsdWUudHZfbnNlYzsKPiArCQlp bnRlcnZhbC5pdF9pbnRlcnZhbC50dl9zZWMgPSBpbnRlcnZhbC5pdF92YWx1ZS50dl9zZWM7Cj4g KwkJciA9IHRpbWVyZmRfc2V0dGltZShkYXRhLmNoYW5nZV9zY3JlZW5fdGltZXJmZCwgMCwKPiAm aW50ZXJ2YWwsIE5VTEwpOwo+ICsJCWlndF9yZXF1aXJlX2YociAhPSAtMSwgIkVycm9yIHNldHRp bmcgdGltZXJmZFxuIik7Cj4gKwo+ICsJCWRhdGEucG9sbGZkc1swXS5mZCA9IGRhdGEuY2hhbmdl X3NjcmVlbl90aW1lcmZkOwo+ICsJCWRhdGEucG9sbGZkc1swXS5ldmVudHMgPSBQT0xMSU47Cj4g KwkJZGF0YS5wb2xsZmRzWzBdLnJldmVudHMgPSAwOwo+ICsJfQo+ICsKPiArCWZvciAoZGF0YS5v cCA9IFBBR0VfRkxJUDsgZGF0YS5vcCA8IExBU1Q7IGRhdGEub3ArKykgewo+ICsJCWlndF9zdWJ0 ZXN0X2YoIiVzIiwgb3Bfc3RyKGRhdGEub3ApKSB7Cj4gKwkJCXByZXBhcmUoJmRhdGEpOwo+ICsJ CQlydW4oJmRhdGEpOwo+ICsJCQljbGVhbnVwKCZkYXRhKTsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJ aWd0X2ZpeHR1cmUgewo+ICsJCWNsb3NlKGRhdGEuZGVidWdmc19mZCk7Cj4gKwkJZHJtX2ludGVs X2J1Zm1ncl9kZXN0cm95KGRhdGEuYnVmbWdyKTsKPiArCQlkaXNwbGF5X2ZpbmkoJmRhdGEpOwo+ ICsJfQo+ICsKPiArCWlndF9leGl0KCk7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvdGVzdHMvbWVzb24u YnVpbGQgYi90ZXN0cy9tZXNvbi5idWlsZAo+IGluZGV4IGUxNGFiMmI0Li42ODJjYTkzOSAxMDA2 NDQKPiAtLS0gYS90ZXN0cy9tZXNvbi5idWlsZAo+ICsrKyBiL3Rlc3RzL21lc29uLmJ1aWxkCj4g QEAgLTUwLDYgKzUwLDcgQEAgdGVzdF9wcm9ncyA9IFsKPiAgCSdrbXNfcGxhbmVfc2NhbGluZycs Cj4gIAkna21zX3Byb3BlcnRpZXMnLAo+ICAJJ2ttc19wc3InLAo+ICsJJ2ttc19wc3IyX3N1JywK UGxlYXNlIHNlbmQgYSBoYWNrIHBhdGNoIHRvIGluY2x1ZGUgdGhpcyBpbiBCQVQgc28gdGhhdCB3 ZSBjYW4gc2VlIHRoZQpyZXN1bHRzLgoKPiAgCSdrbXNfcHdyaXRlX2NyYycsCj4gIAkna21zX3Jt ZmInLAo+ICAJJ2ttc19yb3RhdGlvbl9jcmMnLAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pZ3QtZGV2Cg==