From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jindal, Sonika" Subject: Re: [PATCH 2/2] kms_rotation_crc: Adding test for 90/270 rotation Date: Wed, 22 Apr 2015 10:21:58 +0530 Message-ID: <553728EE.8090203@intel.com> References: <1428395344-12303-1-git-send-email-sonika.jindal@intel.com> <1428395344-12303-2-git-send-email-sonika.jindal@intel.com> <55363A92.3090408@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 23BED6E656 for ; Tue, 21 Apr 2015 21:52:01 -0700 (PDT) In-Reply-To: <55363A92.3090408@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: Tvrtko Ursulin , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiA0LzIxLzIwMTUgNToyNCBQTSwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4KPiBIaSwKPgo+ IE9uIDA0LzA3LzIwMTUgMDk6MjkgQU0sIFNvbmlrYSBKaW5kYWwgd3JvdGU6Cj4+IEFkZGluZyA5 MC8yNzAgcm90YXRpb24gdGVzdGNhc2UgZm9yIHByaW1hcnkgYW5kIHNwcml0ZSBwbGFuZXMuCj4+ Cj4+IHYyOiBBZGRlZCBwb3NpdGlvbiB0ZXN0IGZvciBzcHJpdGUuIENoZWNraW5nIGZvciBnZW4g PiA5IGZvciA5MC8yNzAuCj4+IFNvbWUgY2xlYW51cCBhbmQgcmViYXNlLgo+PiB2MzogQWRkZWQg dGVzdCBmb3IgdW5zdXBwb3J0ZWQgdGlsaW5nIGFuZCB1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQg Zm9yCj4+IDkwLzI3MAo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBTb25pa2EgSmluZGFsIDxzb25pa2Eu amluZGFsQGludGVsLmNvbT4KPj4gLS0tCj4+ICAgdGVzdHMva21zX3JvdGF0aW9uX2NyYy5jIHwg IDI0OAo+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCj4+ ICAgMSBmaWxlIGNoYW5nZWQsIDIxNSBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKPj4K Pj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19yb3RhdGlvbl9jcmMuYyBiL3Rlc3RzL2ttc19yb3Rh dGlvbl9jcmMuYwo+PiBpbmRleCBlMTFkN2E5Li40OGFmYWExIDEwMDY0NAo+PiAtLS0gYS90ZXN0 cy9rbXNfcm90YXRpb25fY3JjLmMKPj4gKysrIGIvdGVzdHMva21zX3JvdGF0aW9uX2NyYy5jCj4+ IEBAIC0yOCwxNCArMjgsMjEgQEAKPj4gICAjaW5jbHVkZSAiaWd0X2RlYnVnZnMuaCIKPj4gICAj aW5jbHVkZSAiaWd0X2ttcy5oIgo+PiAgICNpbmNsdWRlICJpZ3RfY29yZS5oIgo+PiArI2luY2x1 ZGUgImludGVsX2NoaXBzZXQuaCIKPj4KPj4gICB0eXBlZGVmIHN0cnVjdCB7Cj4+ICAgICAgIGlu dCBnZnhfZmQ7Cj4+ICAgICAgIGlndF9kaXNwbGF5X3QgZGlzcGxheTsKPj4gICAgICAgc3RydWN0 IGlndF9mYiBmYjsKPj4gICAgICAgc3RydWN0IGlndF9mYiBmYl9jdXJzb3I7Cj4+ICsgICAgc3Ry dWN0IGlndF9mYiBmYl9mdWxsOwo+PiArICAgIHN0cnVjdCBpZ3RfZmIgZmJfNTY1Owo+PiArICAg IHN0cnVjdCBpZ3RfZmIgZmJfdGlsaW5nOwo+Cj4gQ291bGQgeW91IGRvIHdpdGgganVzdCBmYiBh bmQgbm90IGhhdmluZyBmYl81NjUgYW5kIGZiX3RpbGluZyBzaW5jZSBJCj4gdGhpbmsgeW91IG9u bHkgdXNlIG9uZSBhdCBhIHRpbWU/Cj4KWWVzIEkgY2FuLCBidXQgdGhlbiBJJ2wgaGF2ZSB0byBj cmVhdGUgYW5kIHJlbW92ZSBmYiBkdXJpbmcgdGhlIHRlc3QuIApTaW5jZSB0aGlzIGlzIGp1c3Qg b25lIG5lZ2F0aXZlIHRlc3QgKGZvciA1NjUgZm9ybWF0IGFuZCB0aWxpbmcpIEkgCndhbnRlZCB0 byBhZGQsIEkgdGhvdWdodCBpdCB3aWxsIGxvb2sgYmV0dGVyIHRoaXMgd2F5LgoKPj4gICAgICAg aWd0X2NyY190IHJlZl9jcmM7Cj4+ICAgICAgIGlndF9waXBlX2NyY190ICpwaXBlX2NyYzsKPj4g KyAgICBpZ3Rfcm90YXRpb25fdCByb3RhdGlvbjsKPj4gKyAgICBpbnQgcG9zX3g7Cj4+ICsgICAg aW50IHBvc195Owo+PiAgIH0gZGF0YV90Owo+Pgo+PiAgIHN0YXRpYyB2b2lkCj4+IEBAIC02Mywx OCArNzAsNDYgQEAgcGFpbnRfc3F1YXJlcyhkYXRhX3QgKmRhdGEsIHN0cnVjdCBpZ3RfZmIgKmZi LAo+PiBkcm1Nb2RlTW9kZUluZm8gKm1vZGUsCj4+ICAgICAgICAgICB3ID0gbW9kZS0+aGRpc3Bs YXk7Cj4+ICAgICAgICAgICBoID0gbW9kZS0+dmRpc3BsYXk7Cj4+Cj4+IC0gICAgICAgIGNyID0g aWd0X2dldF9jYWlyb19jdHgoZGF0YS0+Z2Z4X2ZkLCAmZGF0YS0+ZmIpOwo+PiArICAgICAgICBj ciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmdmeF9mZCwgZmIpOwo+Pgo+PiAgICAgICAgICAg aWYgKHJvdGF0aW9uID09IElHVF9ST1RBVElPTl8xODApIHsKPj4gICAgICAgICAgICAgICBjYWly b190cmFuc2xhdGUoY3IsIHcsIGgpOwo+PiAgICAgICAgICAgICAgIGNhaXJvX3JvdGF0ZShjciwg TV9QSSk7Cj4+ICAgICAgICAgICB9Cj4+Cj4+IC0gICAgICAgIC8qIFBhaW50IHdpdGggNCBzcXVh cmVzIG9mIFJlZCwgR3JlZW4sIFdoaXRlLCBCbHVlIENsb2Nrd2lzZSAqLwo+PiAtICAgICAgICBp Z3RfcGFpbnRfY29sb3IoY3IsIDAsIDAsIHcgLyAyLCBoIC8gMiwgMS4wLCAwLjAsIDAuMCk7Cj4+ IC0gICAgICAgIGlndF9wYWludF9jb2xvcihjciwgdyAvIDIsIDAsIHcgLyAyLCBoIC8gMiwgMC4w LCAxLjAsIDAuMCk7Cj4+IC0gICAgICAgIGlndF9wYWludF9jb2xvcihjciwgMCwgaCAvIDIsIHcg LyAyLCBoIC8gMiwgMC4wLCAwLjAsIDEuMCk7Cj4+IC0gICAgICAgIGlndF9wYWludF9jb2xvcihj ciwgdyAvIDIsIGggLyAyLCB3IC8gMiwgaCAvIDIsIDEuMCwgMS4wLCAxLjApOwo+PiArICAgICAg ICAvKgo+PiArICAgICAgICAgKiAicm90YXRpb24iIGlzIHVzZWQgZm9yIGNyZWF0aW5nIHJlZiBy b3RhdGVkIGZiIGFuZAo+PiArICAgICAgICAgKiAiZGF0YS0+cm90YXRpb24iIGlzIHVzZWQgdG8g ZGV0ZXJtaW5lIHRoZSByZXF1aXJlZCBzaXplCj4+ICsgICAgICAgICAqIHdoaWxlIGNyZWF0aW5n IHVucm90YXRlZCBmYi4KPj4gKyAgICAgICAgICovCj4KPiBUaGlzIGNvbW1lbnQgYW5kIHRoZSBz ZXR1cCBiZWxvdyBpcyBub3QgdGhlIG1vc3Qgc3RyYWlnaHRmb3J3YXJkIHRvCj4gdW5kZXJzdGFu ZC4KPgo+IElmIEkgZ290IGl0IHJpZ2h0IHlvdSB3YW50IHJvdGF0aW9uIHRvIGRyYXcgYSByb3Rh dGVkIGltYWdlLCBhbmQKPiBlZmZlY3RpdmVseSBhIGZsYWcgdG8gc2F5IHdoZXRoZXIgdGhlIGRy YXduIGltYWdlIGlzIHRvIGJlIG92ZXIgZnVsbCBmYgo+IG9yIGluIGEgc3F1YXJlLgo+Cj4gVGhl biB3aGF0IGFib3V0IGhhdmluZyBzb21ldGhpbmcgbGlrZSBhICJzcXVhcmVfaW1hZ2UiIGJvb2xl YW4gZmxhZwo+IGluc3RlYWQgb2YgdHdvIHJvdGF0aW9uIHBhcmFtZXRlcnM/CmRhdGEtPnJvdGF0 aW9uIGhhcyB0aGUgcm90YXRpb24gdmFsdWUgd2hpY2ggd2Ugd2FudCBvdXIgdGVzdCB0byByb3Rh dGUgCnRoZSBmYiB3aXRoLgpOb3cgcGFpbnRfc3F1YXJlcyBnZXRzIGNhbGxlZCB0d28gdGltZXMg aW4gYSB0ZXN0CiogRmlyc3QgdG8gcGFpbnQgdGhlIHJvdGF0ZWQgcmVmZXJlbmNlIGZiIHRvIGNv bGxlY3QgdGhlIHN3IHJvdGF0ZWQgY3JjLiAKRm9yIHRoaXMgd2Ugc2V0IHRoZSBhcHByb3ByaWF0 ZSByb3RhdGlvbiBpbiB0aGUgcm90YXRpb24gcGFyYW1ldGVyIHRvIApwYWludF9zcXVhcmVzLiAo U3RlcCAxIGluIHRoZSB0ZXN0KQoqIE5leHQgaXQgaXMgY2FsbGVkIHRvIHBhaW50IGFuIHVucm90 YXRlZCBmYiBmb3IgdGhlIEhXIHRvIHJvdGF0ZSBpdCAKdXNpbmcgc2V0X3Byb3BlcnR5LiBUbyBk cmF3IHVucm90YXRlZCBmYiwgd2UgcGFzcyBJR1RfUk9UQVRJT05fMCBpbiAKcm90YXRpb24gcGFy YW1ldGVyIHRvIHBhaW50X3NxdWFyZXMuKFN0ZXAgMiBpbiB0aGUgdGVzdCkuCgpPbmx5IGZvciA5 MC8yNzAsIEkgc3RhcnRlZCB1c2luZyBkYXRhLT5yb3RhdGlvbiBpbnNpZGUgdGhpcyBmdW5jdGlv bi4gCk90aGVyd2lzZSB3ZSB3ZXJlIG5vdCB1c2luZyBpdC4KVGhpcyBmdW5jdGlvbiBpcyBqdXN0 IHRvIHBhaW50IHRoZSBmYiBiYXNlZCB1cG9uIHRoZSByb3RhdGlvbi4KCj4KPj4gKyAgICAgICAg aWYgKHJvdGF0aW9uID09IElHVF9ST1RBVElPTl85MCkgewo+PiArICAgICAgICAgICAgLyogUGFp bnQgNCBzcXVhcmVzIHdpdGggd2lkdGggPT0gaGVpZ2h0IGluIEJsdWUsIFJlZCwKPj4gKyAgICAg ICAgICAgIEdyZWVuLCBXaGl0ZSBDbG9ja3dpc2Ugb3JkZXIgdG8gbG9vayBsaWtlIDkwIGRlZ3Jl ZQo+PiByb3RhdGVkKi8KPj4gKyAgICAgICAgICAgIHcgPSBoID0gbW9kZS0+dmRpc3BsYXk7Cj4+ ICsgICAgICAgICAgICBpZ3RfcGFpbnRfY29sb3IoY3IsIDAsIDAsIHcgLyAyLCBoIC8gMiwgMC4w LCAwLjAsIDEuMCk7Cj4+ICsgICAgICAgICAgICBpZ3RfcGFpbnRfY29sb3IoY3IsIHcgLyAyLCAw LCB3IC8gMiwgaCAvIDIsIDEuMCwgMC4wLCAwLjApOwo+PiArICAgICAgICAgICAgaWd0X3BhaW50 X2NvbG9yKGNyLCAwLCBoIC8gMiwgdyAvIDIsIGggLyAyLCAxLjAsIDEuMCwgMS4wKTsKPj4gKyAg ICAgICAgICAgIGlndF9wYWludF9jb2xvcihjciwgdyAvIDIsIGggLyAyLCB3IC8gMiwgaCAvIDIs IDAuMCwgMS4wLAo+PiAwLjApOwo+PiArCj4+ICsgICAgICAgIH0gZWxzZSBpZiAocm90YXRpb24g PT0gSUdUX1JPVEFUSU9OXzI3MCkgewo+PiArICAgICAgICAgICAgLyogUGFpbnQgNCBzcXVhcmVz IHdpdGggd2lkdGggPT0gaGVpZ2h0IGluIEdyZWVuLCBXaGl0ZSwKPj4gKyAgICAgICAgICAgIEJs dWUsIFJlZCBDbG9ja3dpc2Ugb3JkZXIgdG8gbG9vayBsaWtlIDI3MCBkZWdyZWUgcm90YXRlZCov Cj4+ICsgICAgICAgICAgICB3ID0gaCA9IG1vZGUtPnZkaXNwbGF5Owo+PiArICAgICAgICAgICAg aWd0X3BhaW50X2NvbG9yKGNyLCAwLCAwLCB3IC8gMiwgaCAvIDIsIDAuMCwgMS4wLCAwLjApOwo+ PiArICAgICAgICAgICAgaWd0X3BhaW50X2NvbG9yKGNyLCB3IC8gMiwgMCwgdyAvIDIsIGggLyAy LCAxLjAsIDEuMCwgMS4wKTsKPj4gKyAgICAgICAgICAgIGlndF9wYWludF9jb2xvcihjciwgMCwg aCAvIDIsIHcgLyAyLCBoIC8gMiwgMS4wLCAwLjAsIDAuMCk7Cj4+ICsgICAgICAgICAgICBpZ3Rf cGFpbnRfY29sb3IoY3IsIHcgLyAyLCBoIC8gMiwgdyAvIDIsIGggLyAyLCAwLjAsIDAuMCwKPj4g MS4wKTsKPj4gKwo+PiArICAgICAgICB9IGVsc2Ugewo+PiArICAgICAgICAgICAgaWYgKGRhdGEt PnJvdGF0aW9uID09IElHVF9ST1RBVElPTl85MCB8fAo+PiArICAgICAgICAgICAgICAgIGRhdGEt PnJvdGF0aW9uID09IElHVF9ST1RBVElPTl8yNzApCj4+ICsgICAgICAgICAgICAgICAgdyA9IGgg PSBtb2RlLT52ZGlzcGxheTsKPj4gKyAgICAgICAgICAgIC8qIFBhaW50IHdpdGggNCBzcXVhcmVz IG9mIFJlZCwgR3JlZW4sIFdoaXRlLCBCbHVlCj4+IENsb2Nrd2lzZSAqLwo+PiArICAgICAgICAg ICAgaWd0X3BhaW50X2NvbG9yKGNyLCAwLCAwLCB3IC8gMiwgaCAvIDIsIDEuMCwgMC4wLCAwLjAp Owo+PiArICAgICAgICAgICAgaWd0X3BhaW50X2NvbG9yKGNyLCB3IC8gMiwgMCwgdyAvIDIsIGgg LyAyLCAwLjAsIDEuMCwgMC4wKTsKPj4gKyAgICAgICAgICAgIGlndF9wYWludF9jb2xvcihjciwg MCwgaCAvIDIsIHcgLyAyLCBoIC8gMiwgMC4wLCAwLjAsIDEuMCk7Cj4+ICsgICAgICAgICAgICBp Z3RfcGFpbnRfY29sb3IoY3IsIHcgLyAyLCBoIC8gMiwgdyAvIDIsIGggLyAyLCAxLjAsIDEuMCwK Pj4gMS4wKTsKPj4gKyAgICAgICAgfQo+PiAgICAgICB9Cj4+ICAgICAgIGNhaXJvX2Rlc3Ryb3ko Y3IpOwo+PiAgIH0KPj4gQEAgLTg0LDcgKzExOSwxMiBAQCBzdGF0aWMgdm9pZCBwcmVwYXJlX2Ny dGMoZGF0YV90ICpkYXRhLAo+PiBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgZW51bSBwaXBlIHBpcGUs Cj4+ICAgewo+PiAgICAgICBkcm1Nb2RlTW9kZUluZm8gKm1vZGU7Cj4+ICAgICAgIGlndF9kaXNw bGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKPj4gLSAgICBpbnQgZmJfaWQsIGZiX2N1 cnNvcl9pZDsKPj4gKyAgICBpbnQgZmJfaWQsIGZiX2N1cnNvcl9pZCwgZmJfZnVsbF9pZDsKPj4g KyAgICBpbnQgdywgaDsKPj4gKyAgICB1aW50NjRfdCB0aWxpbmcgPSBMT0NBTF9EUk1fRk9STUFU X01PRF9OT05FOwo+PiArICAgIGVudW0gaWd0X2NvbW1pdF9zdHlsZSBjb21taXQgPSBDT01NSVRf TEVHQUNZOwo+PiArICAgIGludCBvbGRfcm90YXRpb247Cj4+ICsgICAgaWd0X3BsYW5lX3QgKnBy aW1hcnk7Cj4+Cj4+ICAgICAgIGlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsKPj4K Pj4gQEAgLTk0LDEwICsxMzQsNDUgQEAgc3RhdGljIHZvaWQgcHJlcGFyZV9jcnRjKGRhdGFfdCAq ZGF0YSwKPj4gaWd0X291dHB1dF90ICpvdXRwdXQsIGVudW0gcGlwZSBwaXBlLAo+Pgo+PiAgICAg ICBtb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQpOwo+Pgo+PiArICAgIHcgPSBtb2Rl LT5oZGlzcGxheTsKPj4gKyAgICBoID0gbW9kZS0+dmRpc3BsYXk7Cj4+ICsKPj4gKyAgICBmYl9m dWxsX2lkID0gaWd0X2NyZWF0ZV9mYihkYXRhLT5nZnhfZmQsCj4+ICsgICAgICAgICAgICB3LCBo LAo+PiArICAgICAgICAgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwKPj4gKyAgICAgICAgICAgIHRp bGluZywKPj4gKyAgICAgICAgICAgICZkYXRhLT5mYl9mdWxsKTsKPj4gKyAgICBpZ3RfYXNzZXJ0 KGZiX2Z1bGxfaWQpOwo+PiArCj4+ICsgICAgLyoKPj4gKyAgICAgKiBXaXRoIGlndF9kaXNwbGF5 X2NvbW1pdDIgYW5kIENPTU1JVF9VTklWRVJTQUwsIHdlIGNhbGwganVzdCB0aGUKPj4gKyAgICAg KiBzZXRwbGFuZSB3aXRob3V0IGEgbW9kZXNldC4gU28sIHRvIGJlIGFibGUgdG8gY2FsbAo+PiAr ICAgICAqIGlndF9kaXNwbGF5X2NvbW1pdCBhbmQgdWx0aW1hdGVseSBzZXRjcnRjIHRvIGRvIHRo ZSBmaXJzdAo+PiBtb2Rlc2V0LAo+PiArICAgICAqIHdlIGNyZWF0ZSBhbiBmYiBjb3ZlcmluZyB0 aGUgY3J0YyBhbmQgY2FsbCBjb21taXQKPj4gKyAgICAgKi8KPj4gKwo+PiArICAgIG9sZF9yb3Rh dGlvbiA9IGRhdGEtPnJvdGF0aW9uOwo+PiArICAgIGRhdGEtPnJvdGF0aW9uID0gSUdUX1JPVEFU SU9OXzA7Cj4+ICsgICAgcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lKG91dHB1dCwgSUdU X1BMQU5FX1BSSU1BUlkpOwo+PiArICAgIHBhaW50X3NxdWFyZXMoZGF0YSwgJmRhdGEtPmZiX2Z1 bGwsIG1vZGUsIElHVF9ST1RBVElPTl8wLCBwcmltYXJ5KTsKPj4gKyAgICBpZ3RfcGxhbmVfc2V0 X2ZiKHByaW1hcnksICZkYXRhLT5mYl9mdWxsKTsKPj4gKyAgICBpZ3RfZGlzcGxheV9jb21taXQo ZGlzcGxheSk7Cj4+ICsgICAgZGF0YS0+cm90YXRpb24gPSBvbGRfcm90YXRpb247Cj4+ICsKPj4g KyAgICAvKgo+PiArICAgICAqIEZvciA5MC8yNzAsIHdlIHdpbGwgdXNlIGNyZWF0ZSBzbWFsbGVy IGZiIHNvIHRoYXQgdGhlIHJvdGF0ZWQKPj4gKyAgICAgKiBmcmFtZSBjYW4gZml0IGluCj4+ICsg ICAgICovCj4+ICsgICAgaWYgKGRhdGEtPnJvdGF0aW9uID09IElHVF9ST1RBVElPTl85MCB8fAo+ PiArICAgICAgICBkYXRhLT5yb3RhdGlvbiA9PSBJR1RfUk9UQVRJT05fMjcwKSB7Cj4+ICsgICAg ICAgIHRpbGluZyA9IExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZX1RJTEVEOwo+PiArICAgICAgICB3 ID0gaCA9ICBtb2RlLT52ZGlzcGxheTsKPj4gKyAgICB9Cj4+ICsKPj4gICAgICAgZmJfaWQgPSBp Z3RfY3JlYXRlX2ZiKGRhdGEtPmdmeF9mZCwKPj4gLSAgICAgICAgICAgIG1vZGUtPmhkaXNwbGF5 LCBtb2RlLT52ZGlzcGxheSwKPj4gKyAgICAgICAgICAgIHcsIGgsCj4+ICAgICAgICAgICAgICAg RFJNX0ZPUk1BVF9YUkdCODg4OCwKPj4gLSAgICAgICAgICAgIExPQ0FMX0RSTV9GT1JNQVRfTU9E X05PTkUsCj4+ICsgICAgICAgICAgICB0aWxpbmcsCj4+ICAgICAgICAgICAgICAgJmRhdGEtPmZi KTsKPj4gICAgICAgaWd0X2Fzc2VydChmYl9pZCk7Cj4+Cj4+IEBAIC0xMTAsMjcgKzE4NSwyMCBA QCBzdGF0aWMgdm9pZCBwcmVwYXJlX2NydGMoZGF0YV90ICpkYXRhLAo+PiBpZ3Rfb3V0cHV0X3Qg Km91dHB1dCwgZW51bSBwaXBlIHBpcGUsCj4+Cj4+ICAgICAgIC8qIFN0ZXAgMTogY3JlYXRlIGEg cmVmZXJlbmNlIENSQyBmb3IgYSBzb2Z0d2FyZS1yb3RhdGVkIGZiICovCj4+Cj4+IC0gICAgLyoK Pj4gLSAgICAgKiBYWFg6IFdlIGFsd2F5cyBzZXQgdGhlIHByaW1hcnkgcGxhbmUgdG8gYWN0dWFs bHkgZW5hYmxlIHRoZQo+PiBwaXBlIGFzCj4+IC0gICAgICogdGhlcmUncyBubyB3YXkgKHRoYXQg d29ya3MpIHRvIGxpZ2h0IHVwIGEgcGlwZSB3aXRoIG9ubHkgYSBzcHJpdGUKPj4gLSAgICAgKiBw bGFuZSBlbmFibGVkIGF0IHRoZSBtb21lbnQuCj4+IC0gICAgICovCj4+IC0gICAgaWYgKCFwbGFu ZS0+aXNfcHJpbWFyeSkgewo+PiAtICAgICAgICBpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKPj4gLQo+ PiAtICAgICAgICBwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmUob3V0cHV0LCBJR1RfUExB TkVfUFJJTUFSWSk7Cj4+IC0gICAgICAgIHBhaW50X3NxdWFyZXMoZGF0YSwgJmRhdGEtPmZiLCBt b2RlLCBJR1RfUk9UQVRJT05fMTgwLCBwcmltYXJ5KTsKPj4gLSAgICAgICAgaWd0X3BsYW5lX3Nl dF9mYihwcmltYXJ5LCAmZGF0YS0+ZmIpOwo+PiAtICAgIH0KPj4gLQo+PiAgICAgICBpZiAocGxh bmUtPmlzX2N1cnNvcikgewo+PiAtICAgICAgICBwYWludF9zcXVhcmVzKGRhdGEsICZkYXRhLT5m Yl9jdXJzb3IsIG1vZGUsIElHVF9ST1RBVElPTl8xODAsCj4+IHBsYW5lKTsKPj4gKyAgICAgICAg cGFpbnRfc3F1YXJlcyhkYXRhLCAmZGF0YS0+ZmJfY3Vyc29yLCBtb2RlLCBkYXRhLT5yb3RhdGlv biwKPj4gcGxhbmUpOwo+PiAgICAgICAgICAgaWd0X3BsYW5lX3NldF9mYihwbGFuZSwgJmRhdGEt PmZiX2N1cnNvcik7Cj4+ICAgICAgIH0gZWxzZSB7Cj4+IC0gICAgICAgIHBhaW50X3NxdWFyZXMo ZGF0YSwgJmRhdGEtPmZiLCBtb2RlLCBJR1RfUk9UQVRJT05fMTgwLCBwbGFuZSk7Cj4+ICsgICAg ICAgIHBhaW50X3NxdWFyZXMoZGF0YSwgJmRhdGEtPmZiLCBtb2RlLCBkYXRhLT5yb3RhdGlvbiwg cGxhbmUpOwo+PiAgICAgICAgICAgaWd0X3BsYW5lX3NldF9mYihwbGFuZSwgJmRhdGEtPmZiKTsK Pj4gKyAgICAgICAgaWd0X3BsYW5lX3NldF9wb3NpdGlvbihwbGFuZSwgZGF0YS0+cG9zX3gsIGRh dGEtPnBvc195KTsKPj4gICAgICAgfQo+PiAtICAgIGlndF9kaXNwbGF5X2NvbW1pdChkaXNwbGF5 KTsKPj4gKyAgICBpZiAocGxhbmUtPmlzX3ByaW1hcnkgfHwgcGxhbmUtPmlzX2N1cnNvcikgewo+ PiArICAgICAgICBpZ3RfcmVxdWlyZShkYXRhLT5kaXNwbGF5Lmhhc191bml2ZXJzYWxfcGxhbmVz KTsKPj4gKyAgICAgICAgY29tbWl0ID0gQ09NTUlUX1VOSVZFUlNBTDsKPj4gKyAgICB9Cj4+ICsK Pj4gKyAgICBpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIGNvbW1pdCk7Cj4+ICAgICAgIGln dF9waXBlX2NyY19jb2xsZWN0X2NyYyhkYXRhLT5waXBlX2NyYywgJmRhdGEtPnJlZl9jcmMpOwo+ Pgo+PiAgICAgICAvKgo+PiBAQCAtMTU1LDYgKzIyMyw3IEBAIHN0YXRpYyB2b2lkIGNsZWFudXBf Y3J0YyhkYXRhX3QgKmRhdGEsCj4+IGlndF9vdXRwdXRfdCAqb3V0cHV0LCBpZ3RfcGxhbmVfdCAq cGxhbmUpCj4+Cj4+ICAgICAgIGlndF9yZW1vdmVfZmIoZGF0YS0+Z2Z4X2ZkLCAmZGF0YS0+ZmIp Owo+PiAgICAgICBpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmdmeF9mZCwgJmRhdGEtPmZiX2N1cnNvcik7 Cj4+ICsgICAgaWd0X3JlbW92ZV9mYihkYXRhLT5nZnhfZmQsICZkYXRhLT5mYl9mdWxsKTsKPj4K Pj4gICAgICAgLyogWFhYOiBzZWUgdGhlIG5vdGUgaW4gcHJlcGFyZV9jcnRjKCkgKi8KPj4gICAg ICAgaWYgKCFwbGFuZS0+aXNfcHJpbWFyeSkgewo+PiBAQCAtMTcwLDYgKzIzOSw2OSBAQCBzdGF0 aWMgdm9pZCBjbGVhbnVwX2NydGMoZGF0YV90ICpkYXRhLAo+PiBpZ3Rfb3V0cHV0X3QgKm91dHB1 dCwgaWd0X3BsYW5lX3QgKnBsYW5lKQo+PiAgICAgICBpZ3RfZGlzcGxheV9jb21taXQoZGlzcGxh eSk7Cj4+ICAgfQo+Pgo+PiArc3RhdGljIHZvaWQgdGVzdF91bnN1cHBvcnRlZF90aWxpbmdfcGl4 ZWxfZm9ybWF0KGRhdGFfdCAqZGF0YSwgZW51bQo+PiBpZ3RfcGxhbmUgcGxhbmVfdHlwZSkKPj4g K3sKPgo+IElmIHRoZSBmdW5jdGlvbiBib2R5IGhlcmUgaXMgZXNzZW50aWFsbHkgdGhlIHNhbWUg YXMKPiB0ZXN0X3BsYW5lX3JvdGF0aW9uLCBjb3VsZCB5b3UgYXZvaWQgYWRkaW5nIGR1cGxpY2F0 aW5nIGNvZGUgYnkgcGFzc2luZwo+IGluIHRpbGluZyBhbmQgcGl4ZWwgZm9ybWF0IHRvIHRlc3Rf cGxhbmVfcm90YXRpb24gKG1heWJlIHZpYSBkYXRhKT8gV2l0aAo+IGEgImV4cGVjdCBmYWlsIiBm bGFnLCBvciBldmVuIGp1c3QgZW1iZWRkaW5nIHRoZSBrbm93bGVkZ2Ugd291bGQgd29yay4KPgpU aGV5IGFyZSBub3Qgc2FtZS4gV2UgZG9uJ3QgbmVlZCBmZXcgdGhpbmdzIGZyb20gdGVzdF9wbGFu ZV9yb3RhdGlvbiBpbiAKdGhpcyBvbmUgbGlrZSBwcmVwYXJlX2NydGMuIFNvLCBpbnN0ZWFkIG9m IHVzaW5nIGlmL2Vsc2UgYXQgbXVsdGlwbGUgCnBsYWNlcywgSSBmaW5kIGl0IGNsZWFuZXIgdG8g aGF2ZSBhIGRpZmZlcmVudCBmdW5jdGlvbiBmb3IgbmVnYXRpdmUgdGVzdHMuCgpSZWdhcmRzLApT b25pa2EKPiBSZWdhcmRzLAo+Cj4gVHZydGtvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==