From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kahola Subject: Re: [PATCH i-g-t v6] tests/kms_plane_multiple: CRC based atomic correctness test Date: Tue, 08 Nov 2016 15:39:12 +0200 Message-ID: <1478612352.26172.34.camel@intel.com> References: <1478606062-6564-1-git-send-email-mika.kahola@intel.com> <7bb64220-4bc7-0e5a-e5cf-ed54bb967d72@linux.intel.com> Reply-To: mika.kahola@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 475016E51D for ; Tue, 8 Nov 2016 13:38:59 +0000 (UTC) In-Reply-To: <7bb64220-4bc7-0e5a-e5cf-ed54bb967d72@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: Maarten Lankhorst , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAyMDE2LTExLTA4IGF0IDE0OjE0ICswMTAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90 ZToKPiBPcCAwOC0xMS0xNiBvbSAxMjo1NCBzY2hyZWVmIE1pa2EgS2Fob2xhOgo+ID4gCj4gPiBU aGlzIGlzIGEgdGVzdGNhc2Ugd2l0aCBtdWx0aXBsZSBwbGFuZXMuIFRoZSBpZGVhIGhlcmUgaXMg dGhlCj4gPiBmb2xsb3dpbmcKPiA+IAo+ID4gwqAtIGRyYXcgYSB1bmlmb3JtIGZyYW1lIHdpdGgg Ymx1ZSBjb2xvcgo+ID4gwqAtIGdyYWIgY3JjIGZvciByZWZlcmVuY2UKPiA+IMKgLSBwdXQgcGxh bmVzIHJhbmRvbWx5IG9uIHRvcCB3aXRoIHRoZSBzYW1lIGJsdWUgY29sb3IKPiA+IMKgLSBwdW5j aCBob2xlcyB3aXRoIGJsYWNrIGNvbG9yIGludG8gdGhlIHByaW1hcnkgZnJhbWVidWZmZXIKPiA+ IMKgLSBpZGVhbGx5IHRoZSBwbGFuZXMgc2hvdWxkIGNvdmVyIHRoZXNlIGhvbGVzIHNvIHRoYXQg dGhlIG91dHB1dAo+ID4gaXMgdGhlCj4gPiDCoMKgwqBpZGVudGljYWwgdG8gcmVmZXJlbmNlIGNy Ywo+ID4gwqAtIGNvbXBvc2l0ZSBhbGwgd2l0aCBvbmUgaW9jdGwgY2FsbAo+ID4gwqAtIGdyYWIg Y3JjIGFuZCB2ZXJpZnkgdGhhdCB0aGUgcmVmZXJlbmNlIGNyYyBpcyBlcXVhbAo+ID4gwqAtIHJl cGVhdCB0aGlzIGZvciBzZXZlcmFsIGl0ZXJhdGlvbnMgdG8gbWF4aW1pemUgY292ZXJhZ2UKPiA+ IAo+ID4gdjY6IFJlbmFtZSB0ZXN0X3BsYW5lcygpIHRvIHByZXBhcmVfcGxhbmVzKCkgKE1hYXJ0 ZW4pCj4gPiDCoMKgwqDCoFdoZW4gZ3JhYmJpbmcgcmVmZXJlbmNlIGNyYywga2VlcCBmcmFtZWJ1 ZmZlciBhbmQgY3JjIGVuYWJsZWQKPiA+IGZvcgo+ID4gwqDCoMKgwqBhdG9taWMgbW9kZSBzZXR0 aW5nLiAoTWFhcnRlbikKPiA+IMKgwqDCoMKgRml4IGNyYyBjb2xsZWN0aW9uIGZvciBsZWdhY3kg bW9kZXNldHRpbmcgKE1hYXJ0ZW4pCj4gPiAKPiA+IHY1OiBSZW1vdmUgbGltaXQgZm9yIG1heCBu dW1iZXIgb2YgaXRlcmF0aW9ucyBhbmQgYWRkIHBvc3NpYmlsaXR5Cj4gPiB0bwo+ID4gwqDCoMKg wqBsb29wIGZvcmV2ZXIgKERhbmllbCkKPiA+IMKgwqDCoMKgUmVtb3ZlIElOX1JBTkdFKCkgbWFj cm8gKE1hYXJ0ZW4pCj4gPiDCoMKgwqDCoFJlbW92ZSBsb2cgZmlsZSBhbmQgc2hvdyByYW5kb20g bnVtYmVyIHNlZWQgb24gc2NyZWVuIGluc3RlYWQKPiA+IChNYWFydGVuKQo+ID4gwqDCoMKgwqBT cGxpdCBsZWdhY3kgYW5kIGF0b21pYyBwbGFuZSB0ZXN0cyBvbiBvd24gZnVuY3Rpb25zIChNYWFy dGVuKQo+ID4gwqDCoMKgwqByZW1vdmUgdGVzdF9hdG9taWMoKSBmdW5jdGlvbiBhbmQgcGFzcyB0 ZXN0IG1vZGUgaW5mbyBhcwo+ID4gwqDCoMKgwqBwYXJhbWV0ZXIgKE1hYXJ0ZW4pCj4gPiDCoMKg wqDCoFVzZSBiaWdnZXIgcmVjdGFuZ2xlIHNpemUgKDI1NngyNTYpIGZvciBub24tY3Vyc29yIHBs YW5lcyBhbmQKPiA+IMKgwqDCoMKgc21hbGxlciAoMTI4eDEyOCkgc2l6ZSBmb3IgY3Vyc29yIHBs YW5lIChNYWFydGVuKQo+ID4gCj4gPiB2NDogRm9yIGF0b21pYyB0ZXN0IGVuYWJsZSBjcmMgY2Fw dHVyaW5nIGJlZm9yZSBlbnRlcmluZyBpbnRvIGEKPiA+IMKgwqDCoMKgaXRlcmF0aW9uIGxvb3Au IEFmdGVyIGVhY2ggaXRlcmF0aW9uLCBjaGVjayB0aGF0IHBhZ2UgZmxpcAo+ID4gwqDCoMKgwqBk aWRuJ3QgdGFrZSBubyBtb3JlIHRoYW4gMSB2YmxhbmssIGZldGNoIGFsbCBjcmMncyBhbmQgY2hl Y2sKPiA+IMKgwqDCoMKgdGhlIHZhbHVlcy4KPiA+IAo+ID4gwqDCoMKgwqBJbnRyb2R1Y2UgbmV3 IGNvbW1hbmQgbGluZSBwYXJhbWV0ZXIgZm9yIHRoZSBudW1iZXIgb2YKPiA+IGl0ZXJhdGlvbnMu Cj4gPiDCoMKgwqDCoFRoZSB0ZXN0IHJ1biBmcm9tIDEgdG8gMjU2IGl0ZXJhdGlvbnMuCj4gPiAK PiA+IHYzOiBDbGVhbnVwIGJ5IHJlbW92aW5nIHNlcGFyYXRlIHBsYW5lIGFycmF5Cj4gPiDCoMKg wqDCoEZvciBhdG9taWMsIHBhc3MgRFJNX01PREVfUEFHRV9GTElQX0VWRU5UCj4gPiDCoMKgwqDC oEdyYWIgY3JjIGJ5IHVzaW5nIGlndF9waXBlX2NyY19nZXRfY3JjIGluc3RlYWQgb2YKPiA+IGln dF9waXBlX2NyY19jb2xsZWN0X2NyYwo+ID4gwqDCoMKgwqBSZW5hbWUgbnBsYW5lcyB2YXJpYWJs ZSB0byBtYXhfcGxhbmVzCj4gPiDCoMKgwqDCoFRvIG9wdGltaXplIHRlc3QgZXhlY3V0aW9uLCBy dW4gaXRlcmF0aW9ucyBhZnRlciB0aGUgbW9kZXNldAo+ID4gCj4gPiB2MjogS2VlcCBhIGxvZ2Zp bGUgb24gcmFuZG9tIG51bWJlciBzZWVkcyBwZXIgc3VidGVzdCB0aGF0IGFyZSBub3QKPiA+IHNr aXBwZWQKPiA+IMKgwqDCoMKgZHVlIHRvIHVubWV0IHRlc3QgcmVxdWlyZW1lbnRzCj4gPiAKPiA+ IFNpZ25lZC1vZmYtYnk6IE1pa2EgS2Fob2xhIDxtaWthLmthaG9sYUBpbnRlbC5jb20+Cj4gPiAt LS0KPiA+IMKgdGVzdHMvTWFrZWZpbGUuc291cmNlc8KgwqDCoMKgwqB8wqDCoMKgMSArCj4gPiDC oHRlc3RzL2ttc19wbGFuZV9tdWx0aXBsZS5jIHwgNTAxCj4gPiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+IMKgMiBmaWxlcyBjaGFuZ2VkLCA1MDIgaW5z ZXJ0aW9ucygrKQo+ID4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21zX3BsYW5lX211bHRp cGxlLmMKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0 cy9NYWtlZmlsZS5zb3VyY2VzCj4gPiBpbmRleCA2ZDA4MWMzLi5mZmQ1OWMxIDEwMDY0NAo+ID4g LS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+ID4gKysrIGIvdGVzdHMvTWFrZWZpbGUuc291 cmNlcwo+ID4gQEAgLTEwNSw2ICsxMDUsNyBAQCBURVNUU19wcm9nc19NID0gXAo+ID4gwqAJa21z X3BpcGVfY29sb3IgXAo+ID4gwqAJa21zX3BpcGVfY3JjX2Jhc2ljIFwKPiA+IMKgCWttc19wbGFu ZSBcCj4gPiArCWttc19wbGFuZV9tdWx0aXBsZSBcCj4gPiDCoAlrbXNfcHJvcGVydGllcyBcCj4g PiDCoAlrbXNfcHNyX3NpbmtfY3JjIFwKPiA+IMKgCWttc19yZW5kZXIgXAo+ID4gZGlmZiAtLWdp dCBhL3Rlc3RzL2ttc19wbGFuZV9tdWx0aXBsZS5jCj4gPiBiL3Rlc3RzL2ttc19wbGFuZV9tdWx0 aXBsZS5jCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAwMDAwMC4uZjMxNjQ4 OAo+ID4gLS0tIC9kZXYvbnVsbAo+ID4gKysrIGIvdGVzdHMva21zX3BsYW5lX211bHRpcGxlLmMK PiA+IEBAIC0wLDAgKzEsNTAxIEBACj4gPiArLyoKPiA+ICsgKiBDb3B5cmlnaHQgwqkgMjAxNiBJ bnRlbCBDb3Jwb3JhdGlvbgo+ID4gKyAqCj4gPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24KPiA+IG9idGFpbmluZyBhCj4gPiAr ICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZQo+ID4gIlNvZnR3YXJlIiksCj4gPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUg d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQKPiA+IGxpbWl0YXRpb24KPiA+ ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlz dHJpYnV0ZSwKPiA+IHN1YmxpY2Vuc2UsCj4gPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRo ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvCj4gPiB3aG9tIHRoZQo+ID4gKyAq IFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5n Cj4gPiBjb25kaXRpb25zOgo+ID4gKyAqCj4gPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UKPiA+IChpbmNsdWRpbmcgdGhlIG5leHQKPiA+ ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh bnRpYWwKPiA+IHBvcnRpb25zIG9mIHRoZQo+ID4gKyAqIFNvZnR3YXJlLgo+ID4gKyAqCj4gPiAr ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsCj4gPiBFWFBSRVNTIE9SCj4gPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBO T1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgo+ID4gTUVSQ0hBTlRBQklMSVRZLAo+ID4g KyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQu wqDCoElOIE5PCj4gPiBFVkVOVCBTSEFMTAo+ID4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdI VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLAo+ID4gREFNQUdFUyBPUiBPVEhFUgo+ ID4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQg T1IgT1RIRVJXSVNFLAo+ID4gQVJJU0lORwo+ID4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05O RUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKPiA+IE9USEVSIERFQUxJTkdT Cj4gPiArICogSU4gVEhFIFNPRlRXQVJFLgo+ID4gKyAqCj4gPiArICovCj4gPiArCj4gPiArI2lu Y2x1ZGUgImlndC5oIgo+ID4gKyNpbmNsdWRlICJkcm10ZXN0LmgiCj4gPiArI2luY2x1ZGUgPGVy cm5vLmg+Cj4gPiArI2luY2x1ZGUgPHN0ZGJvb2wuaD4KPiA+ICsjaW5jbHVkZSA8c3RkaW8uaD4K PiA+ICsjaW5jbHVkZSA8c3RyaW5nLmg+Cj4gPiArI2luY2x1ZGUgPHRpbWUuaD4KPiA+ICsKPiA+ ICtJR1RfVEVTVF9ERVNDUklQVElPTigiVGVzdCBhdG9taWMgbW9kZSBzZXR0aW5nIHdpdGggbXVs dGlwbGUKPiA+IHBsYW5lcyAiKTsKPiA+ICsKPiA+ICsjZGVmaW5lIE1BWF9DUkNTwqDCoMKgwqDC oMKgwqDCoMKgwqAxCj4gPiArI2RlZmluZSBTSVpFX1BMQU5FwqDCoMKgwqDCoMKgMjU2Cj4gPiAr I2RlZmluZSBTSVpFX0NVUlNPUsKgwqDCoMKgwqAxMjgKPiA+ICsjZGVmaW5lIExPT1BfRk9SRVZF UsKgwqDCoMKgwqAtMQo+ID4gKwo+ID4gK3R5cGVkZWYgc3RydWN0IHsKPiA+ICsJZmxvYXQgcmVk Owo+ID4gKwlmbG9hdCBncmVlbjsKPiA+ICsJZmxvYXQgYmx1ZTsKPiA+ICt9IGNvbG9yX3Q7Cj4g PiArCj4gPiArdHlwZWRlZiBzdHJ1Y3Qgewo+ID4gKwlpbnQgZHJtX2ZkOwo+ID4gKwlpZ3RfZGlz cGxheV90IGRpc3BsYXk7Cj4gPiArCWlndF9waXBlX2NyY190ICpwaXBlX2NyYzsKPiA+ICsJaWd0 X3BsYW5lX3QgKnBsYW5lW0lHVF9NQVhfUExBTkVTXTsKPiA+ICsJc3RydWN0IGlndF9mYiBmYltJ R1RfTUFYX1BMQU5FU107Cj4gPiArfSBkYXRhX3Q7Cj4gPiArCj4gPiArdHlwZWRlZiBzdHJ1Y3Qg ewo+ID4gKwlkYXRhX3QgKmRhdGE7Cj4gPiArCWlndF9jcmNfdCByZWZlcmVuY2VfY3JjOwo+ID4g K30gdGVzdF9wb3NpdGlvbl90Owo+ID4gKwo+ID4gKy8qIENvbW1hbmQgbGluZSBwYXJhbWV0ZXJz LiAqLwo+ID4gK3N0cnVjdCB7Cj4gPiArCWludCBpdGVyYXRpb25zOwo+ID4gKwlib29sIHVzZXJf c2VlZDsKPiA+ICsJaW50IHNlZWQ7Cj4gPiArfSBvcHQgPSB7Cj4gPiArCS5pdGVyYXRpb25zID0g NjQsCj4gPiArCS51c2VyX3NlZWQgPSBmYWxzZSwKPiA+ICsJLnNlZWQgPSAxLAo+ID4gK307Cj4g PiArCj4gPiArc3RhdGljIGlubGluZSB1aW50MzJfdCBwaXBlX3NlbGVjdChpbnQgcGlwZSkKPiA+ ICt7Cj4gPiArCWlmIChwaXBlID4gMSkKPiA+ICsJCXJldHVybiBwaXBlIDw8IERSTV9WQkxBTktf SElHSF9DUlRDX1NISUZUOwo+ID4gKwllbHNlIGlmIChwaXBlID4gMCkKPiA+ICsJCXJldHVybiBE Uk1fVkJMQU5LX1NFQ09OREFSWTsKPiA+ICsJZWxzZQo+ID4gKwkJcmV0dXJuIDA7Cj4gPiArfQo+ ID4gKwo+ID4gK3N0YXRpYyB1bnNpZ25lZCBpbnQgZ2V0X3ZibGFuayhpbnQgZmQsIGludCBwaXBl LCB1bnNpZ25lZCBpbnQKPiA+IGZsYWdzKQo+ID4gK3sKPiA+ICsJdW5pb24gZHJtX3dhaXRfdmJs YW5rIHZibDsKPiA+ICsKPiA+ICsJbWVtc2V0KCZ2YmwsIDAsIHNpemVvZih2YmwpKTsKPiA+ICsJ dmJsLnJlcXVlc3QudHlwZSA9IERSTV9WQkxBTktfUkVMQVRJVkUgfCBwaXBlX3NlbGVjdChwaXBl KQo+ID4gfCBmbGFnczsKPiA+ICsJaWYgKGRybUlvY3RsKGZkLCBEUk1fSU9DVExfV0FJVF9WQkxB TkssICZ2YmwpKQo+ID4gKwkJcmV0dXJuIDA7Cj4gPiArCj4gPiArCXJldHVybiB2YmwucmVwbHku c2VxdWVuY2U7Cj4gPiArfQo+ID4gKwo+ID4gKy8qCj4gPiArICogQ29tbW9uIGNvZGUgYWNyb3Nz IGFsbCB0ZXN0cywgYWN0aW5nIG9uIGRhdGFfdAo+ID4gKyAqLwo+ID4gK3N0YXRpYyB2b2lkIHRl c3RfaW5pdChkYXRhX3QgKmRhdGEsIGVudW0gcGlwZSBwaXBlKQo+ID4gK3sKPiA+ICsJZGF0YS0+ cGlwZV9jcmMgPSBpZ3RfcGlwZV9jcmNfbmV3KHBpcGUsCj4gPiBJTlRFTF9QSVBFX0NSQ19TT1VS Q0VfQVVUTyk7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIHRlc3RfZmluaShkYXRhX3Qg KmRhdGEsIGlndF9vdXRwdXRfdCAqb3V0cHV0LCBpbnQKPiA+IG1heF9wbGFuZXMpCj4gPiArewo+ ID4gKwlmb3IgKGludCBpID0gSUdUX1BMQU5FX1BSSU1BUlk7IGkgPD0gbWF4X3BsYW5lczsgaSsr KQo+ID4gKwkJaWd0X3BsYW5lX3NldF9mYihkYXRhLT5wbGFuZVtpXSwgTlVMTCk7Cj4gPiArCj4g PiArCS8qIHJlc2V0IHRoZSBjb25zdHJhaW50IG9uIHRoZSBwaXBlICovCj4gPiArCWlndF9vdXRw dXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX0FOWSk7Cj4gPiArCj4gPiArCWlndF9waXBlX2NyY19m cmVlKGRhdGEtPnBpcGVfY3JjKTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQKPiA+ICt0 ZXN0X2dyYWJfY3JjKGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQsIGVudW0gcGlw ZSBwaXBlLAo+ID4gYm9vbCBhdG9taWMsCj4gPiArCcKgwqDCoMKgwqDCoGNvbG9yX3QgKmNvbG9y LCB1aW50NjRfdCB0aWxpbmcsIGlndF9jcmNfdCAqY3JjIC8qCj4gPiBvdXQgKi8pCj4gPiArewo+ ID4gKwlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7Cj4gPiArCWludCByZXQsIG47Cj4gPiArCj4gPiAr CWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsKPiA+ICsKPiA+ICsJZGF0YS0+cGxh bmVbSUdUX1BMQU5FX1BSSU1BUlldID0KPiA+IGlndF9vdXRwdXRfZ2V0X3BsYW5lKG91dHB1dCwg SUdUX1BMQU5FX1BSSU1BUlkpOwo+ID4gKwo+ID4gKwltb2RlID0gaWd0X291dHB1dF9nZXRfbW9k ZShvdXRwdXQpOwo+ID4gKwo+ID4gKwlpZ3RfY3JlYXRlX2NvbG9yX2ZiKGRhdGEtPmRybV9mZCwg bW9kZS0+aGRpc3BsYXksIG1vZGUtCj4gPiA+dmRpc3BsYXksCj4gPiArCQkJwqDCoMKgwqBEUk1f Rk9STUFUX1hSR0I4ODg4LAo+ID4gKwkJCcKgwqDCoMKgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9O RSwKPiA+ICsJCQnCoMKgwqDCoGNvbG9yLT5yZWQsIGNvbG9yLT5ncmVlbiwgY29sb3ItPmJsdWUs Cj4gPiArCQkJwqDCoMKgwqAmZGF0YS0+ZmJbSUdUX1BMQU5FX1BSSU1BUlldKTsKPiA+ICsKPiA+ ICsJaWd0X3BsYW5lX3NldF9mYihkYXRhLT5wbGFuZVtJR1RfUExBTkVfUFJJTUFSWV0sICZkYXRh LQo+ID4gPmZiW0lHVF9QTEFORV9QUklNQVJZXSk7Cj4gPiArCj4gPiArCXJldCA9IGlndF9kaXNw bGF5X3RyeV9jb21taXQyKCZkYXRhLT5kaXNwbGF5LAo+ID4gKwkJCQnCoMKgwqDCoMKgwqBhdG9t aWMgPyBDT01NSVRfQVRPTUlDIDoKPiA+IENPTU1JVF9MRUdBQ1kpOwo+ID4gKwlpZ3Rfc2tpcF9v bihyZXQgIT0gMCk7Cj4gPiArCj4gPiArCWlndF9waXBlX2NyY19zdGFydChkYXRhLT5waXBlX2Ny Yyk7Cj4gPiArCW4gPSBpZ3RfcGlwZV9jcmNfZ2V0X2NyY3MoZGF0YS0+cGlwZV9jcmMsIDEsICZj cmMpOwo+ID4gKwlpZ3RfYXNzZXJ0X2VxKG4sIDEpOwo+ID4gKwo+ID4gKwlpZiAoIWF0b21pYykg ewo+ID4gKwkJaWd0X3BpcGVfY3JjX3N0b3AoZGF0YS0+cGlwZV9jcmMpOwo+ID4gKwo+ID4gKwkJ aWd0X3BsYW5lX3NldF9mYihkYXRhLT5wbGFuZVtJR1RfUExBTkVfUFJJTUFSWV0sCj4gPiBOVUxM KTsKPiA+ICsKPiA+ICsJCXJldCA9IGlndF9kaXNwbGF5X3RyeV9jb21taXQyKCZkYXRhLT5kaXNw bGF5LAo+ID4gQ09NTUlUX0xFR0FDWSk7Cj4gPiArCQlpZ3Rfc2tpcF9vbihyZXQgIT0gMCk7Cj4g PiArCj4gPiArCQlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtCj4gPiA+ZmJbSUdU X1BMQU5FX1BSSU1BUlldKTsKPiA+ICsJfQo+IF5UaGlzIGNvdWxkIHVzZSBzb21lIGV4cGxhbmF0 aW9uLCB3aHkgZG8gdGhpcyBvbmx5IGZvciBsZWdhY3k/Cj4gCj4gQmVzdCBub3QgbWFrZSB0aGUg YXRvbWljIGFuZCBsZWdhY3kgdGVzdCBkaWZmZXIgdG9vIG11Y2ggaGVyZS4KClRoZSBpZGVhIGhl cmUgd2FzIHRvIGtlZXAgbGVnYWN5IHRlc3QgYXMgc2ltaWxhciBhcyBwb3NzaWJsZSB0byBvdGhl cgpsZWdhY3kgcGxhbmUgaWd0IHRlc3QgY2FzZXMuIE5vIG90aGVyIHJlYXNvbnMuIEkgY2FuIGdl dCByaWQgb2YgdGhpcwpkZXBlbmRlbmN5IHNvIHRoYXQgdGhlIGF0b21pYyBhbmQgbGVnYWN5IHRl c3RzIHdvdWxkbid0IGRpZmZlciB0aGF0Cm11Y2guCgoKCj4gfk1hYXJ0ZW4KLS0gCk1pa2EgS2Fo b2xhIC0gSW50ZWwgT1RDCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK