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 56C596E2AB for ; Thu, 14 Feb 2019 00:21:50 +0000 (UTC) Message-ID: Date: Wed, 13 Feb 2019 16:21:45 -0800 In-Reply-To: <20190208005305.6599-1-jose.souza@intel.com> References: <20190208005305.6599-1-jose.souza@intel.com> Mime-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t v6 1/4] test: Add PSR2 selective update tests List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Dhinakaran Pandiyan via igt-dev 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: T24gVGh1LCAyMDE5LTAyLTA3IGF0IDE2OjUzIC0wODAwLCBKb3PDqSBSb2JlcnRvIGRlIFNvdXph IHdyb3RlOgo+IFRoaXMgdGVzdHMgY2hlY2tzIGlmIGhhcmR3YXJlIGlzIGFibGUgdG8gZG8gc2Vs ZWN0aXZlIHVwZGF0ZSB3aGVuCj4gc2NyZWVuIGNoYW5nZXMuCj4gUFNSMiBkb24ndCB0cmlnZ2Vy IGludGVycnVwdGlvbnMgYW5kIHRoZSAnUFNSMiBTVSBzdGF0dXMnIHJlZ2lzdGVyCj4gaXMgbm90 IGtlcHQgbG9hZGVkIGFsbCB0aGUgdGltZXMsIHNvIGl0IGlzIG5lY2Vzc2FyeSBrZWVwIHBvbGxp bmcKPiBQU1Igc3RhdHVzIGRlYnVnZnMgdW50aWwgdGhvc2UgdmFsdWVzIGFyZSBsb2FkZWQuCj4g Cj4gQWxzbyBmcm9tIERFRVBfU0xFRVAgc3RhdGUgSFcgd2lsbCBub3QgZG8gYSBzZWxldGl2ZSB1 cGRhdGUsIGFzCj4gbW9zdCBvZiB0aGUgbWVtb3J5L2NvbnRleHQgaXMgbG9zdCBpbiBkZWVwIHNs ZWVwIHN0YXRlIGhhcmR3YXJlIHdpbGwKPiBuZWVkIHRvIGV4aXQgUFNSIG1vZGUgdGhlbiB3YWl0 IGEgY29uZmlndXJlZCBudW1iZXIgb2YgZnJhbWVzIHRvCj4gYWN0aXZhdGUgUFNSIGFnYWluIHRv IHRoZW4gc3RhcnQgZG9pbmcgc2VsZXRpdmUgdXBkYXRlcywgdGhhdCBpcyB3aHkKPiBqdXN0IG9u ZSBzY3JlZW4gY2hhbmdlIGlzIG5vdCBlbm91Z2ggdG8gcGFzcyB0aGlzIHRlc3RzLgo+IAo+IFdo ZW4gYSBzZWxlY3RpdmUgdXBkYXRlIGhhcHBlbnMgYW5kIHRoZSB2YWx1ZXMgYXJlIGxvYWRlZCBh bmQgcmVhZAo+IGZyb20gZGVidWdmcyBpdCBpcyBjb21wYXJlZCB3aXRoIHRoZSBleHBlY3RlZCB2 YWx1ZSBvZiBzZWxldGl2ZQo+IHVwZGF0ZSBibG9ja3MsIGlmIG1hdGNoZXMgdGhlIHBvbGxpbmcg aXMgc3RvcHBlZCBhbmQgdGhlIHRlc3QgcGFzc2VkCj4gb3RoZXJ3aXNlIGl0IHdpbGwgd2FpdCB1 bnRpbCBpdCByZWFjaHMgYSBtYXhpbXVtIG51bWJlciBvIHNjcmVlbgo+IGNoYW5nZXMgdG8gZmFp bCB0aGUgdGVzdC4KPiAKPiB2MjogVXNpbmcgbmV3IFNVIGJsb2NrcyBkZWJ1Z2ZzIG91dHB1dAo+ IAo+IHYzOgo+IC0gcmVtb3ZlZCB0aGUgdGltZXJmZCB0byBmYWlsIHRoZSB0ZXN0LCBub3cgZmFp bGluZyBiYXNlZCBpbiBhCj4gbWF4aW11bSBudW1iZXIgb2Ygc2NyZWVuIGNoYW5nZXMKPiAtIHJl bW92aW5nIHRocmVhZCB0byByZWFkIGRlYnVnZnMsIHJlYWQgZnJvbSBtYWluIHRocmVhZCBpcyBl bm91Z2gKPiAtIGltcHJvdmVkIGNvbW1pdCBtZXNzYWdlCj4gCj4gdjQ6Cj4gLSBnZXR0aW5nIGNh aXJvIGNvbnRleHQgZm9yIGZyb250YnVmZmVyIHRlc3QgaW4gcHJlcGFyZSgpCj4gLSBkcm9wcG9p bmcgcG9sbCgpLCB1c2luZyBibG9ja2luZyB0aW1lcmZkIGluc3RlYWQKPiAKPiB2NToKPiAtIERv aW5nIGEgbW9kZXNldCBiZWZvcmUgdHJ5aW5nIHRvIGVuYWJsZSBQU1IyCj4gCj4gdjY6Cj4gLSBk b2luZyBhdG9taWMgY29tbWl0cyB0byBmaXgobGVnYWN5IGNvbW1pdCBpcyB0YWtpbmcgbW9yZSB0 aW1lIGluCj4gcmVjZW50IGtlcm5lbHMgY2F1c2luZyB1cyB0byBtaXNzIHRoZSBTVSB3aGVuIHJl YWRpbmcgZGVidWdmcykgYW5kCj4gc3BlZWR1cCB0ZXN0Cj4gLSBmaXhlZCBjb2RlIHRvIHNraXAg dGVzdCB3aGVuIFBTUjIgaXMgbm90IHBvc3NpbGUKClRoYW5rcyBmb3IgbWFraW5nIHRoZXNlIGNo YW5nZXMuCgo+IAo+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4g Q2M6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPgo+ IFNpZ25lZC1vZmYtYnk6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwu Y29tPgo+IC0tLQo+ICBsaWIvaWd0X3Bzci5jICAgICAgICAgIHwgIDI5ICsrKysKPiAgbGliL2ln dF9wc3IuaCAgICAgICAgICB8ICAgMSArCj4gIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgfCAgIDEg Kwo+ICB0ZXN0cy9rbXNfcHNyMl9zdS5jICAgIHwgMjk0Cj4gKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKPiAgdGVzdHMvbWVzb24uYnVpbGQgICAgICB8ICAgMSArCj4g IDUgZmlsZXMgY2hhbmdlZCwgMzI2IGluc2VydGlvbnMoKykKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IHRlc3RzL2ttc19wc3IyX3N1LmMKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9wc3IuYyBiL2xp Yi9pZ3RfcHNyLmMKPiBpbmRleCA2YWQyYzUyMi4uYjU4NDdiZmQgMTAwNjQ0Cj4gLS0tIGEvbGli L2lndF9wc3IuYwo+ICsrKyBiL2xpYi9pZ3RfcHNyLmMKPiBAQCAtMTc4LDMgKzE3OCwzMiBAQCBi b29sIHBzcl9zaW5rX3N1cHBvcnQoaW50IGRlYnVnZnNfZmQsIGVudW0KPiBwc3JfbW9kZSBtb2Rl KQo+ICAJCSAqLwo+ICAJCXJldHVybiBzdHJzdHIoYnVmLCAiU2luayBzdXBwb3J0OiB5ZXMgWzB4 MDNdIik7Cj4gIH0KPiArCj4gKyNkZWZpbmUgUFNSMl9TVV9CTE9DS19TVFJfTE9PS1VQICJQU1Iy IFNVIGJsb2NrczpcbjBcdCIKPiArCj4gK3N0YXRpYyBib29sCj4gK3BzcjJfcmVhZF9sYXN0X251 bV9zdV9ibG9ja3NfdmFsKGludCBkZWJ1Z2ZzX2ZkLCB1aW50MTZfdAo+ICpudW1fc3VfYmxvY2tz KQo+ICt7Cj4gKwljaGFyIGJ1ZltQU1JfU1RBVFVTX01BWF9MRU5dOwo+ICsJY2hhciAqc3RyOwo+ ICsJaW50IHJldDsKPiArCj4gKwlyZXQgPSBpZ3RfZGVidWdmc19zaW1wbGVfcmVhZChkZWJ1Z2Zz X2ZkLAo+ICJpOTE1X2VkcF9wc3Jfc3RhdHVzIiwgYnVmLAo+ICsJCQkJICAgICAgc2l6ZW9mKGJ1 ZikpOwo+ICsJaWYgKHJldCA8IDApCj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsKPiArCXN0ciA9IHN0 cnN0cihidWYsIFBTUjJfU1VfQkxPQ0tfU1RSX0xPT0tVUCk7Cj4gKwlpZiAoIXN0cikKPiArCQly ZXR1cm4gZmFsc2U7Cj4gKwo+ICsJc3RyID0gJnN0cltzdHJsZW4oUFNSMl9TVV9CTE9DS19TVFJf TE9PS1VQKV07Cj4gKwkqbnVtX3N1X2Jsb2NrcyA9ICh1aW50MTZfdClzdHJ0b2woc3RyLCBOVUxM LCAxMCk7Cj4gKwo+ICsJcmV0dXJuIHRydWU7Cj4gK30KPiArCj4gK2Jvb2wgcHNyMl93YWl0X3N1 KGludCBkZWJ1Z2ZzX2ZkLCB1aW50MTZfdCAqbnVtX3N1X2Jsb2NrcykKPiArewo+ICsJcmV0dXJu IGlndF93YWl0KHBzcjJfcmVhZF9sYXN0X251bV9zdV9ibG9ja3NfdmFsKGRlYnVnZnNfZmQsCj4g bnVtX3N1X2Jsb2NrcyksIDQwLCAxKTsKPiArfQo+IGRpZmYgLS1naXQgYS9saWIvaWd0X3Bzci5o IGIvbGliL2lndF9wc3IuaAo+IGluZGV4IDdlNzAxN2JmLi40OTU5OWNmOCAxMDA2NDQKPiAtLS0g YS9saWIvaWd0X3Bzci5oCj4gKysrIGIvbGliL2lndF9wc3IuaAo+IEBAIC00MCw1ICs0MCw2IEBA IGJvb2wgcHNyX3dhaXRfdXBkYXRlKGludCBkZWJ1Z2ZzX2ZkLCBlbnVtIHBzcl9tb2RlCj4gbW9k ZSk7Cj4gIGJvb2wgcHNyX2VuYWJsZShpbnQgZGVidWdmc19mZCwgZW51bSBwc3JfbW9kZSk7Cj4g IGJvb2wgcHNyX2Rpc2FibGUoaW50IGRlYnVnZnNfZmQpOwo+ICBib29sIHBzcl9zaW5rX3N1cHBv cnQoaW50IGRlYnVnZnNfZmQsIGVudW0gcHNyX21vZGUpOwo+ICtib29sIHBzcjJfd2FpdF9zdShp bnQgZGVidWdmc19mZCwgdWludDE2X3QgKm51bV9zdV9ibG9ja3MpOwo+ICAKPiAgI2VuZGlmCj4g ZGlmZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0cy9NYWtlZmlsZS5zb3Vy Y2VzCj4gaW5kZXggYTIzNGZhNWQuLmQyYzRmOWZlIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL01ha2Vm aWxlLnNvdXJjZXMKPiArKysgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCj4gQEAgLTYyLDYgKzYy LDcgQEAgVEVTVFNfcHJvZ3MgPSBcCj4gIAlrbXNfcGxhbmVfc2NhbGluZyBcCj4gIAlrbXNfcHJv cGVydGllcyBcCj4gIAlrbXNfcHNyIFwKPiArCWttc19wc3IyX3N1IFwKPiAgCWttc19wd3JpdGVf Y3JjIFwKPiAgCWttc19ybWZiIFwKPiAgCWttc19yb3RhdGlvbl9jcmMgXAo+IGRpZmYgLS1naXQg YS90ZXN0cy9rbXNfcHNyMl9zdS5jIGIvdGVzdHMva21zX3BzcjJfc3UuYwo+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLjJjNzViODViCj4gLS0tIC9kZXYvbnVsbAo+ICsr KyBiL3Rlc3RzL2ttc19wc3IyX3N1LmMKPiBAQCAtMCwwICsxLDI5NCBAQAo+ICsvKgo+ICsgKiBD b3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9u IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgo+IG9idGFp bmluZyBhCj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVu dGF0aW9uIGZpbGVzICh0aGUKPiAiU29mdHdhcmUiKSwKPiArICogdG8gZGVhbCBpbiB0aGUgU29m dHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQKPiBsaW1pdGF0aW9u Cj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBk aXN0cmlidXRlLAo+IHN1YmxpY2Vuc2UsCj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUg U29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tCj4gdGhlCj4gKyAqIFNvZnR3 YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nCj4gY29u ZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg cGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZwo+IHRoZSBuZXh0Cj4gKyAqIHBhcmFncmFwaCkg c2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbAo+IHBvcnRpb25z IG9mIHRoZQo+ICsgKiBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJ REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCj4gRVhQUkVTUyBPUgo+ ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT IE9GCj4gTUVSQ0hBTlRBQklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8KPiBFVkVOVCBTSEFMTAo+ICsgKiBUSEUg QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFN QUdFUwo+IE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg Q09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAo+IEFSSVNJTkcKPiArICogRlJPTSwgT1VUIE9G IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgo+IE9USEVS IERFQUxJTkdTCj4gKyAqIElOIFRIRSBTT0ZUV0FSRS4KPiArICoKPiArICovCj4gKwo+ICsjaW5j bHVkZSAiaWd0LmgiCj4gKyNpbmNsdWRlICJpZ3Rfc3lzZnMuaCIKPiArI2luY2x1ZGUgImlndF9w c3IuaCIKPiArI2luY2x1ZGUgPGVycm5vLmg+Cj4gKyNpbmNsdWRlIDxzdGRib29sLmg+Cj4gKyNp bmNsdWRlIDxzdGRpby5oPgo+ICsjaW5jbHVkZSA8c3RyaW5nLmg+Cj4gKyNpbmNsdWRlIDxzeXMv dGltZXJmZC5oPgo+ICsjaW5jbHVkZSAiaW50ZWxfYnVmbWdyLmgiCj4gKwo+ICtJR1RfVEVTVF9E RVNDUklQVElPTigiVGVzdCBQU1IyIHNlbGVjdGl2ZSB1cGRhdGUiKTsKPiArCj4gKyNkZWZpbmUg U1FVQVJFX1NJWkUgMTAwCj4gKy8qIGVhY2ggc2VsZWN0aXZlIHVwZGF0ZSBibG9jayBpcyA0IGxp bmVzIHRhbGwgKi8KPiArI2RlZmluZSBFWFBFQ1RFRF9OVU1fU1VfQkxPQ0tTICgoU1FVQVJFX1NJ WkUgLyA0KSArIChTUVVBUkVfU0laRSAlIDQKPiA/IDEgOiAwKSkKPiArCj4gKy8qCj4gKyAqIE1p bmltdW0gaXMgMTUgYXMgdGhlIG51bWJlciBvZiBmcmFtZXMgdG8gYWN0aXZlIFBTUjIgY291bGQg YmUKPiBjb25maWd1cmVkCj4gKyAqIHRvIDE1IGZyYW1lcyBwbHVzIGEgZmV3IG1vcmUgaW4gY2Fz ZSB3ZSBtaXNzIGEgc2VsZWN0aXZlIHVwZGF0ZQo+IGJldHdlZW4KPiArICogZGVidWdmcyByZWFk cy4KPiArICovCj4gKyNkZWZpbmUgTUFYX1NDUkVFTl9DSEFOR0VTIDIwCj4gKwo+ICtlbnVtIG9w ZXJhdGlvbnMgewo+ICsJUEFHRV9GTElQLAo+ICsJRlJPTlRCVUZGRVIsCj4gKwlMQVNUClNvbWV0 aGluZyBsaWtlICJJTlZBTElEIiB3b3VsZCBoYXZlIG1hZGUgaXQgbW9yZSBvYnZpb3VzPwoKCj4g K307Cj4gKwo+ICtzdGF0aWMgY29uc3QgY2hhciAqb3Bfc3RyKGVudW0gb3BlcmF0aW9ucyBvcCkK PiArewo+ICsJc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBuYW1lW10gPSB7Cj4gKwkJW1BBR0Vf RkxJUF0gPSAicGFnZV9mbGlwIiwKPiArCQlbRlJPTlRCVUZGRVJdID0gImZyb250YnVmZmVyIgo+ ICsJfTsKPiArCj4gKwlyZXR1cm4gbmFtZVtvcF07Cj4gK30KPiArCj4gK3R5cGVkZWYgc3RydWN0 IHsKPiArCWludCBkcm1fZmQ7Cj4gKwlpbnQgZGVidWdmc19mZDsKPiArCWlndF9kaXNwbGF5X3Qg ZGlzcGxheTsKPiArCWRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1ncjsKPiArCWRybU1vZGVNb2RlSW5m byAqbW9kZTsKPiArCWlndF9vdXRwdXRfdCAqb3V0cHV0Owo+ICsJc3RydWN0IGlndF9mYiBmYlsy XTsKPiArCWVudW0gb3BlcmF0aW9ucyBvcDsKPiArCWNhaXJvX3QgKmNyOwo+ICsJaW50IGNoYW5n ZV9zY3JlZW5fdGltZXJmZDsKPiArCXVpbnQzMl90IHNjcmVlbl9jaGFuZ2VzOwo+ICt9IGRhdGFf dDsKPiArCj4gK3N0YXRpYyB2b2lkIHNldHVwX291dHB1dChkYXRhX3QgKmRhdGEpCj4gK3sKPiAr CWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKPiArCWlndF9vdXRwdXRf dCAqb3V0cHV0Owo+ICsJZW51bSBwaXBlIHBpcGU7Cj4gKwo+ICsJZm9yX2VhY2hfcGlwZV93aXRo X3ZhbGlkX291dHB1dChkaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKPiArCQlkcm1Nb2RlQ29ubmVj dG9yUHRyIGMgPSBvdXRwdXQtPmNvbmZpZy5jb25uZWN0b3I7Cj4gKwo+ICsJCWlmIChjLT5jb25u ZWN0b3JfdHlwZSAhPSBEUk1fTU9ERV9DT05ORUNUT1JfZURQKQo+ICsJCQljb250aW51ZTsKPiAr Cj4gKwkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUpOwo+ICsJCWRhdGEtPm91dHB1 dCA9IG91dHB1dDsKPiArCQlkYXRhLT5tb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQp Owo+ICsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGRpc3BsYXlf aW5pdChkYXRhX3QgKmRhdGEpCj4gK3sKPiArCWlndF9kaXNwbGF5X3JlcXVpcmUoJmRhdGEtPmRp c3BsYXksIGRhdGEtPmRybV9mZCk7Cj4gKwlzZXR1cF9vdXRwdXQoZGF0YSk7Cj4gK30KPiArCj4g K3N0YXRpYyB2b2lkIGRpc3BsYXlfZmluaShkYXRhX3QgKmRhdGEpCj4gK3sKPiArCWlndF9kaXNw bGF5X2ZpbmkoJmRhdGEtPmRpc3BsYXkpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBwcmVwYXJl KGRhdGFfdCAqZGF0YSkKPiArewo+ICsJaWd0X3BsYW5lX3QgKnByaW1hcnk7Cj4gKwo+ICsJLyog YWxsIGdyZWVuIGZyYW1lICovCj4gKwlpZ3RfY3JlYXRlX2NvbG9yX2ZiKGRhdGEtPmRybV9mZCwK PiArCQkJICAgIGRhdGEtPm1vZGUtPmhkaXNwbGF5LCBkYXRhLT5tb2RlLT52ZGlzcGxheSwKPiAr CQkJICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsCj4gKwkJCSAgICBMT0NBTF9EUk1fRk9STUFUX01P RF9OT05FLAo+ICsJCQkgICAgMC4wLCAxLjAsIDAuMCwKPiArCQkJICAgICZkYXRhLT5mYlswXSk7 Cj4gKwo+ICsJaWYgKGRhdGEtPm9wID09IFBBR0VfRkxJUCkgewo+ICsJCWNhaXJvX3QgKmNyOwo+ ICsKPiArCQlpZ3RfY3JlYXRlX2NvbG9yX2ZiKGRhdGEtPmRybV9mZCwKPiArCQkJCSAgICBkYXRh LT5tb2RlLT5oZGlzcGxheSwgZGF0YS0+bW9kZS0KPiA+dmRpc3BsYXksCj4gKwkJCQkgICAgRFJN X0ZPUk1BVF9YUkdCODg4OCwKPiArCQkJCSAgICBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FLAo+ ICsJCQkJICAgIDAuMCwgMS4wLCAwLjAsCj4gKwkJCQkgICAgJmRhdGEtPmZiWzFdKTsKPiArCj4g KwkJY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5mYlsxXSk7Cj4g KwkJLyogcGFpbnQgYSB3aGl0ZSBzcXVhcmUgKi8KPiArCQlpZ3RfcGFpbnRfY29sb3JfYWxwaGEo Y3IsIDAsIDAsIFNRVUFSRV9TSVpFLAo+IFNRVUFSRV9TSVpFLAo+ICsJCQkJICAgICAgMS4wLCAx LjAsIDEuMCwgMS4wKTsKPiArCQlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICAmZGF0 YS0+ZmJbMV0sIGNyKTsKPiArCX0gZWxzZSBpZiAoZGF0YS0+b3AgPT0gRlJPTlRCVUZGRVIpIHsK PiArCQlkYXRhLT5jciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtCj4g PmZiWzBdKTsKPiArCX0KPiArCj4gKwlwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlw ZShkYXRhLT5vdXRwdXQsCj4gKwkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ICsK PiArCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgJmRhdGEtPmZiWzBdKTsKPiArCWlndF9kaXNw bGF5X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXksIENPTU1JVF9BVE9NSUMpOwo+ICsKPiArCWRhdGEt PnNjcmVlbl9jaGFuZ2VzID0gMDsKPiArfQo+ICsKPiArc3RhdGljIGJvb2wgdXBkYXRlX3NjcmVl bl9hbmRfdGVzdChkYXRhX3QgKmRhdGEpCj4gK3sKPiArCXVpbnQxNl90IHN1X2Jsb2NrczsKPiAr CWJvb2wgcmV0ID0gZmFsc2U7Cj4gKwo+ICsJZGF0YS0+c2NyZWVuX2NoYW5nZXMrKzsKPiArCj4g Kwlzd2l0Y2ggKGRhdGEtPm9wKSB7Cj4gKwljYXNlIFBBR0VfRkxJUDogewo+ICsJCWlndF9wbGFu ZV90ICpwcmltYXJ5Owo+ICsKPiArCQlwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlw ZShkYXRhLT5vdXRwdXQsCj4gKwkJCQkJCSAgICBEUk1fUExBTkVfVFlQRV9QUklNCj4gQVJZKTsK PiArCj4gKwkJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAmZGF0YS0+ZmJbZGF0YS0KPiA+c2Ny ZWVuX2NoYW5nZXMgJiAxXSk7Cj4gKwkJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxh eSwgQ09NTUlUX0FUT01JQyk7Cj4gKwkJYnJlYWs7Cj4gKwl9Cj4gKwljYXNlIEZST05UQlVGRkVS OiB7Cj4gKwkJZHJtTW9kZUNsaXAgY2xpcDsKPiArCj4gKwkJY2xpcC54MSA9IGNsaXAueTEgPSAw Owo+ICsJCWNsaXAueDIgPSBjbGlwLnkyID0gU1FVQVJFX1NJWkU7Cj4gKwo+ICsJCWlmIChkYXRh LT5zY3JlZW5fY2hhbmdlcyAmIDEpIHsKPiArCQkJLyogZ28gYmFjayB0byBhbGwgZ3JlZW4gZnJh bWUgd2l0aCBhIHNxdWFyZSAqLwo+ICsJCQlpZ3RfcGFpbnRfY29sb3JfYWxwaGEoZGF0YS0+Y3Is IDAsIDAsCj4gU1FVQVJFX1NJWkUsCj4gKwkJCQkJICAgICAgU1FVQVJFX1NJWkUsIDEuMCwgMS4w LAo+IDEuMCwgMS4wKTsKPiArCQl9IGVsc2Ugewo+ICsJCQkvKiBnbyBiYWNrIHRvIGFsbCBncmVl biBmcmFtZSAqLwo+ICsJCQlpZ3RfcGFpbnRfY29sb3JfYWxwaGEoZGF0YS0+Y3IsIDAsIDAsCj4g U1FVQVJFX1NJWkUsCj4gKwkJCQkJICAgICAgU1FVQVJFX1NJWkUsIDAsIDEuMCwgMCwKPiAxLjAp Owo+ICsJCX0KPiArCj4gKwkJZHJtTW9kZURpcnR5RkIoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5mYlsw XS5mYl9pZCwgJmNsaXAsCj4gMSk7Cj4gKwkJYnJlYWs7Cj4gKwl9Cj4gKwlkZWZhdWx0Ogo+ICsJ CWlndF9hc3NlcnRfZihkYXRhLT5vcCwgIk9wZXJhdGlvbiBub3QgaGFuZGxlZFxuIik7Cj4gKwl9 Cj4gKwo+ICsJaWYgKHBzcjJfd2FpdF9zdShkYXRhLT5kZWJ1Z2ZzX2ZkLCAmc3VfYmxvY2tzKSkK PiArCQlyZXQgPSBzdV9ibG9ja3MgPT0gRVhQRUNURURfTlVNX1NVX0JMT0NLUzsKPiArCj4gKwly ZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBydW4oZGF0YV90ICpkYXRhKQo+ICt7 Cj4gKwlib29sIHJlc3VsdCA9IGZhbHNlOwo+ICsKPiArCWlndF9hc3NlcnQocHNyX3dhaXRfZW50 cnkoZGF0YS0+ZGVidWdmc19mZCwgUFNSX01PREVfMikpOwo+ICsKPiArCXdoaWxlIChkYXRhLT5z Y3JlZW5fY2hhbmdlcyA8IE1BWF9TQ1JFRU5fQ0hBTkdFUyAmJiAhcmVzdWx0KSB7CgpuaXRwaWNr OiBVcGRhdGluZyBkYXRhLT5zY3JlZW5fY2hhbmdlcyBoZXJlIHdvdWxkIGhhdmUgbWFkZSBpdCBj bGVhcgp0aGF0IHdlIGluY3JlbWVudCBpdCBldmVyeSBpdGVyYXRpb24uCgpXaXRoIG9yIHdpdGhv dXQgYWJvdmUgY2hhbmdlcywgClJldmlld2VkLWJ5OiBEaGluYWthcmFuIFBhbmRpeWFuIDwKZGhp bmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Ck9uIElDTCwgClRlc3RlZC1ieTogRGhpbmFrYXJh biBQYW5kaXlhbiA8CmRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPgoKPiArCQl1aW50NjRf dCBleHA7Cj4gKwkJaW50IHI7Cj4gKwo+ICsJCXIgPSByZWFkKGRhdGEtPmNoYW5nZV9zY3JlZW5f dGltZXJmZCwgJmV4cCwKPiBzaXplb2YoZXhwKSk7Cj4gKwkJaWYgKHIgPT0gc2l6ZW9mKHVpbnQ2 NF90KSAmJiBleHApCj4gKwkJCXJlc3VsdCA9IHVwZGF0ZV9zY3JlZW5fYW5kX3Rlc3QoZGF0YSk7 Cj4gKwl9Cj4gKwo+ICsJaWd0X2RlYnVnKCJTY3JlZW4gY2hhbmdlczogJXVcbiIsIGRhdGEtPnNj cmVlbl9jaGFuZ2VzKTsKPiArCWlndF9hc3NlcnRfZihyZXN1bHQsCj4gKwkJICAgICAiTm8gbWF0 Y2hpbmcgc2VsZWN0aXZlIHVwZGF0ZSBibG9ja3MgcmVhZCBmcm9tCj4gZGVidWdmc1xuIik7Cj4g K30KPiArCj4gK3N0YXRpYyB2b2lkIGNsZWFudXAoZGF0YV90ICpkYXRhKQo+ICt7Cj4gKwlpZ3Rf cGxhbmVfdCAqcHJpbWFyeTsKPiArCj4gKwlwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVf dHlwZShkYXRhLT5vdXRwdXQsCj4gKwkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ ICsJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCBOVUxMKTsKPiArCWlndF9kaXNwbGF5X2NvbW1p dDIoJmRhdGEtPmRpc3BsYXksIENPTU1JVF9BVE9NSUMpOwo+ICsKPiArCWlmIChkYXRhLT5vcCA9 PSBQQUdFX0ZMSVApCj4gKwkJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsICZkYXRhLT5mYlsx XSk7Cj4gKwllbHNlIGlmIChkYXRhLT5vcCA9PSBGUk9OVEJVRkZFUikKPiArCQlpZ3RfcHV0X2Nh aXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5mYlswXSwgZGF0YS0KPiA+Y3IpOwo+ICsKPiAr CWlndF9yZW1vdmVfZmIoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJbMF0pOwo+ICt9Cj4gKwo+ICtp bnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQo+ICt7Cj4gKwlkYXRhX3QgZGF0YSA9IHt9 Owo+ICsKPiArCWlndF9zdWJ0ZXN0X2luaXRfcGFyc2Vfb3B0cygmYXJnYywgYXJndiwgIiIsIE5V TEwsCj4gKwkJCQkgICAgTlVMTCwgTlVMTCwgTlVMTCk7Cj4gKwlpZ3Rfc2tpcF9vbl9zaW11bGF0 aW9uKCk7Cj4gKwo+ICsJaWd0X2ZpeHR1cmUgewo+ICsJCXN0cnVjdCBpdGltZXJzcGVjIGludGVy dmFsOwo+ICsJCWludCByOwo+ICsKPiArCQlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2RyaXZlcl9t YXN0ZXIoRFJJVkVSX0lOVEVMKTsKPiArCQlkYXRhLmRlYnVnZnNfZmQgPSBpZ3RfZGVidWdmc19k aXIoZGF0YS5kcm1fZmQpOwo+ICsJCWttc3Rlc3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsKPiAr Cj4gKwkJaWd0X3JlcXVpcmVfZihwc3Jfc2lua19zdXBwb3J0KGRhdGEuZGVidWdmc19mZCwKPiBQ U1JfTU9ERV8yKSwKPiArCQkJICAgICAgIlNpbmsgZG9lcyBub3Qgc3VwcG9ydCBQU1IyXG4iKTsK PiArCj4gKwkJZGF0YS5idWZtZ3IgPSBkcm1faW50ZWxfYnVmbWdyX2dlbV9pbml0KGRhdGEuZHJt X2ZkLAo+IDQwOTYpOwo+ICsJCWlndF9hc3NlcnQoZGF0YS5idWZtZ3IpOwo+ICsJCWRybV9pbnRl bF9idWZtZ3JfZ2VtX2VuYWJsZV9yZXVzZShkYXRhLmJ1Zm1ncik7Cj4gKwo+ICsJCWRpc3BsYXlf aW5pdCgmZGF0YSk7Cj4gKwo+ICsJCS8qIFRlc3QgaWYgUFNSMiBjYW4gYmUgZW5hYmxlZCAqLwo+ ICsJCWlndF9yZXF1aXJlX2YocHNyX2VuYWJsZShkYXRhLmRlYnVnZnNfZmQsIFBTUl9NT0RFXzIp LAo+ICsJCQkgICAgICAiRXJyb3IgZW5hYmxpbmcgUFNSMlxuIik7Cj4gKwkJZGF0YS5vcCA9IEZS T05UQlVGRkVSOwo+ICsJCXByZXBhcmUoJmRhdGEpOwo+ICsJCXIgPSBwc3Jfd2FpdF9lbnRyeShk YXRhLmRlYnVnZnNfZmQsIFBTUl9NT0RFXzIpOwpJIHdvdWxkIHJlbmFtZSB0aGlzICJyIiB0byBz b21ldGhpbmcgbW9yZSBpbnR1aXRpdmUgYXMgYXNzZXJ0aW9ucyBnZXQKZGVidWcgbG9nZ2VkLgoK Cgo+ICsJCWNsZWFudXAoJmRhdGEpOwo+ICsJCWlndF9yZXF1aXJlX2YociwgIlBTUjIgY2FuIG5v dCBiZSBlbmFibGVkXG4iKTsKPiArCj4gKwkJLyogYmxvY2tpbmcgdGltZXJmZCAqLwo+ICsJCWRh dGEuY2hhbmdlX3NjcmVlbl90aW1lcmZkID0KPiB0aW1lcmZkX2NyZWF0ZShDTE9DS19NT05PVE9O SUMsIDApOwo+ICsJCWlndF9yZXF1aXJlKGRhdGEuY2hhbmdlX3NjcmVlbl90aW1lcmZkICE9IC0x KTsKPiArCQkvKiBDaGFuZ2luZyBzY3JlZW4gYXQgMzBoeiB0byBzdXBwb3J0IDMwaHogcGFuZWxz ICovCj4gKwkJaW50ZXJ2YWwuaXRfdmFsdWUudHZfbnNlYyA9IE5TRUNfUEVSX1NFQyAvIDMwOwo+ ICsJCWludGVydmFsLml0X3ZhbHVlLnR2X3NlYyA9IDA7Cj4gKwkJaW50ZXJ2YWwuaXRfaW50ZXJ2 YWwudHZfbnNlYyA9Cj4gaW50ZXJ2YWwuaXRfdmFsdWUudHZfbnNlYzsKPiArCQlpbnRlcnZhbC5p dF9pbnRlcnZhbC50dl9zZWMgPSBpbnRlcnZhbC5pdF92YWx1ZS50dl9zZWM7Cj4gKwkJciA9IHRp bWVyZmRfc2V0dGltZShkYXRhLmNoYW5nZV9zY3JlZW5fdGltZXJmZCwgMCwKPiAmaW50ZXJ2YWws IE5VTEwpOwo+ICsJCWlndF9yZXF1aXJlX2YociAhPSAtMSwgIkVycm9yIHNldHRpbmcgdGltZXJm ZFxuIik7Cj4gKwl9Cj4gKwo+ICsJZm9yIChkYXRhLm9wID0gUEFHRV9GTElQOyBkYXRhLm9wIDwg TEFTVDsgZGF0YS5vcCsrKSB7Cj4gKwkJaWd0X3N1YnRlc3RfZigiJXMiLCBvcF9zdHIoZGF0YS5v cCkpIHsKPiArCQkJcHJlcGFyZSgmZGF0YSk7Cj4gKwkJCXJ1bigmZGF0YSk7Cj4gKwkJCWNsZWFu dXAoJmRhdGEpOwo+ICsJCX0KPiArCX0KPiArCj4gKwlpZ3RfZml4dHVyZSB7Cj4gKwkJY2xvc2Uo ZGF0YS5kZWJ1Z2ZzX2ZkKTsKPiArCQlkcm1faW50ZWxfYnVmbWdyX2Rlc3Ryb3koZGF0YS5idWZt Z3IpOwo+ICsJCWRpc3BsYXlfZmluaSgmZGF0YSk7Cj4gKwl9Cj4gKwo+ICsJaWd0X2V4aXQoKTsK PiArfQo+IGRpZmYgLS1naXQgYS90ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxk Cj4gaW5kZXggMGYxMmRmMjYuLmVjOTgwNjUxIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL21lc29uLmJ1 aWxkCj4gKysrIGIvdGVzdHMvbWVzb24uYnVpbGQKPiBAQCAtNDksNiArNDksNyBAQCB0ZXN0X3By b2dzID0gWwo+ICAJJ2ttc19wbGFuZV9zY2FsaW5nJywKPiAgCSdrbXNfcHJvcGVydGllcycsCj4g IAkna21zX3BzcicsCj4gKwkna21zX3BzcjJfc3UnLAo+ICAJJ2ttc19wd3JpdGVfY3JjJywKPiAg CSdrbXNfcm1mYicsCj4gIAkna21zX3JvdGF0aW9uX2NyYycsCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2lndC1kZXY=