From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [igt-dev] [PATCH i-g-t 2/3] tests/gem_eio: Speed up test execution Date: Thu, 22 Mar 2018 12:36:58 +0000 Message-ID: <499c5ae6-900f-0958-149e-036ba0d9de7a@linux.intel.com> References: <20180322111712.9056-1-tvrtko.ursulin@linux.intel.com> <20180322111712.9056-2-tvrtko.ursulin@linux.intel.com> <152171875518.23562.12227602056261860847@mail.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <152171875518.23562.12227602056261860847@mail.alporthouse.com> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , Tvrtko Ursulin , igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDIyLzAzLzIwMTggMTE6MzksIENocmlzIFdpbHNvbiB3cm90ZToKPiBRdW90aW5nIFR2cnRr byBVcnN1bGluICgyMDE4LTAzLTIyIDExOjE3OjExKQo+PiBGcm9tOiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+Pgo+PiBJZiB3ZSBzdG9wIHJlbHlpbmcgb24gcmVn dWxhciBHUFUgaGFuZ3MgdG8gYmUgZGV0ZWN0ZWQsIGJ1dCB0cmlnZ2VyIHRoZW0KPj4gbWFudWFs bHkgYXMgc29vbiBhcyB3ZSBrbm93IG91ciBiYXRjaCBvZiBpbnRlcmVzdCBpcyBhY3R1YWxseSBl eGVjdXRpbmcKPj4gb24gdGhlIEdQVSwgd2UgY2FuIGRyYW1hdGljYWxseSBzcGVlZCB1cCB2YXJp b3VzIHN1YnRlc3RzLgo+Pgo+PiBUaGlzIGlzIGVuYWJsZWQgYnkgdGhlIHBvbGxhYmxlIHNwaW4g YmF0Y2ggYWRkZWQgaW4gdGhlIHByZXZpb3VzIHBhdGNoLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBU dnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+PiBTdWdnZXN0ZWQtYnk6 IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+PiBDYzogQW50b25pbyBB cmdlbnppYW5vIDxhbnRvbmlvLmFyZ2Vuemlhbm9AaW50ZWwuY29tPgo+PiAtLS0KPj4gTm90ZSB0 aGF0IHRoZSAnd2FpdCcgc3VidGVzdCBpcyBteXN0ZXJpb3VzbHkgaGFuZ2luZyBmb3IgbWUgaW4g dGhlIG5vLW9wCj4+IGJhdGNoIHNlbmQgYnkgZ2VtX3Rlc3RfZW5naW5lcywgYnV0IG9ubHkgb24g UkNTIGVuZ2luZS4gVEJEIHdoaWxlIEkgYW0KPj4gZ2V0dGluZyBzb21lIENJIHJlc3VsdHMuCj4+ IC0tLQo+PiAgIGxpYi50YXIgICAgICAgICB8IEJpbiAwIC0+IDEwMjQwMCBieXRlcwo+PiAgIHRl c3RzL2dlbV9laW8uYyB8ICA5NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLQo+PiAgIDIgZmlsZXMgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygr KSwgMjcgZGVsZXRpb25zKC0pCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi50YXIKPj4KPj4g ZGlmZiAtLWdpdCBhL2xpYi50YXIgYi9saWIudGFyCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+ IGluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhMDRmYWQy MTlhODdmMmU5NzU4NTI5ODk1MjZmOGRhNGM5YjdkNmQKPj4gR0lUIGJpbmFyeSBwYXRjaAo+PiBs aXRlcmFsIDEwMjQwMAo+PiB6Y21lSHc+dmtKUWxCV01zUGY9IXtrd0o9Z1VBa01BSmMzQTIha1By UUFTQVdNPDVMRiYzTTU3I2ZXfTNYK1Y7SDkKPiAKPiBMb29rcyBjb3JyZWN0LgoKSnVzdCBiYWNr aW5nIHVwIGluIHRoZSBjbG91ZC4gOikpCgo+PiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX2Vpby5j IGIvdGVzdHMvZ2VtX2Vpby5jCj4+IGluZGV4IDRiY2M1OTM3ZGIzOS4uOTM0MDAwNTYxMjRiIDEw MDY0NAo+PiAtLS0gYS90ZXN0cy9nZW1fZWlvLmMKPj4gKysrIGIvdGVzdHMvZ2VtX2Vpby5jCj4+ IEBAIC03MSwyNiArNzEsMjMgQEAgc3RhdGljIHZvaWQgdHJpZ2dlcl9yZXNldChpbnQgZmQpCj4+ ICAgICAgICAgIGdlbV9xdWllc2NlbnRfZ3B1KGZkKTsKPj4gICB9Cj4+ICAgCj4+IC1zdGF0aWMg dm9pZCB3ZWRnZV9ncHUoaW50IGZkKQo+PiArc3RhdGljIHZvaWQgbWFudWFsX2hhbmcoaW50IGRy bV9mZCkKPj4gICB7Cj4+IC0gICAgICAgLyogRmlyc3QgaWRsZSB0aGUgR1BVIHRoZW4gZGlzYWJs ZSBHUFUgcmVzZXRzIGJlZm9yZSBpbmplY3RpbmcgYSBoYW5nICovCj4+IC0gICAgICAgZ2VtX3F1 aWVzY2VudF9ncHUoZmQpOwo+PiAtCj4+IC0gICAgICAgaWd0X3JlcXVpcmUoaTkxNV9yZXNldF9j b250cm9sKGZhbHNlKSk7Cj4+ICsgICAgICAgaW50IGRpciA9IGlndF9kZWJ1Z2ZzX2Rpcihkcm1f ZmQpOwo+PiAgIAo+PiAtICAgICAgIGlndF9kZWJ1ZygiV2VkZ2luZyBHUFUgYnkgaW5qZWN0aW5n IGhhbmdcbiIpOwo+PiAtICAgICAgIGlndF9wb3N0X2hhbmdfcmluZyhmZCwgaWd0X2hhbmdfcmlu ZyhmZCwgSTkxNV9FWEVDX0RFRkFVTFQpKTsKPj4gKyAgICAgICBpZ3Rfc3lzZnNfc2V0KGRpciwg Imk5MTVfd2VkZ2VkIiwgIi0xIik7Cj4+ICAgCj4+IC0gICAgICAgaWd0X2Fzc2VydChpOTE1X3Jl c2V0X2NvbnRyb2wodHJ1ZSkpOwo+PiArICAgICAgIGNsb3NlKGRpcik7Cj4+ICAgfQo+IAo+IE9r Lgo+IAo+PiAtc3RhdGljIHZvaWQgd2VkZ2VtZShpbnQgZHJtX2ZkKQo+PiArc3RhdGljIHZvaWQg d2VkZ2VfZ3B1KGludCBmZCkKPj4gICB7Cj4+IC0gICAgICAgaW50IGRpciA9IGlndF9kZWJ1Z2Zz X2Rpcihkcm1fZmQpOwo+PiAtCj4+IC0gICAgICAgaWd0X3N5c2ZzX3NldChkaXIsICJpOTE1X3dl ZGdlZCIsICItMSIpOwo+PiArICAgICAgIC8qIEZpcnN0IGlkbGUgdGhlIEdQVSB0aGVuIGRpc2Fi bGUgR1BVIHJlc2V0cyBiZWZvcmUgaW5qZWN0aW5nIGEgaGFuZyAqLwo+PiArICAgICAgIGdlbV9x dWllc2NlbnRfZ3B1KGZkKTsKPj4gICAKPj4gLSAgICAgICBjbG9zZShkaXIpOwo+PiArICAgICAg IGlndF9yZXF1aXJlKGk5MTVfcmVzZXRfY29udHJvbChmYWxzZSkpOwo+PiArICAgICAgIG1hbnVh bF9oYW5nKGZkKTsKPj4gKyAgICAgICBpZ3RfYXNzZXJ0KGk5MTVfcmVzZXRfY29udHJvbCh0cnVl KSk7Cj4+ICAgfQo+IAo+IE9rLgoKV2VsbCBkb25lIHJlYWRpbmcgdGhhdCBhd2Z1bCBkaWZmIQoK Pj4gICAKPj4gICBzdGF0aWMgaW50IF9fZ2VtX3Rocm90dGxlKGludCBmZCkKPj4gQEAgLTE0OSwy OSArMTQ2LDY2IEBAIHN0YXRpYyBpbnQgX19nZW1fd2FpdChpbnQgZmQsIHVpbnQzMl90IGhhbmRs ZSwgaW50NjRfdCB0aW1lb3V0KQo+PiAgICAgICAgICByZXR1cm4gZXJyOwo+PiAgIH0KPj4gICAK Pj4gK3N0YXRpYyBpZ3Rfc3Bpbl90ICogX19zcGluX3BvbGwoaW50IGZkLCB1aW50MzJfdCBjdHgs IHVuc2lnbmVkIGxvbmcgZmxhZ3MpCj4+ICt7Cj4+ICsgICAgICAgaWYgKGdlbV9jYW5fc3RvcmVf ZHdvcmQoZmQsIGZsYWdzKSkKPj4gKyAgICAgICAgICAgICAgIHJldHVybiBfX2lndF9zcGluX2Jh dGNoX25ld19wb2xsKGZkLCBjdHgsIGZsYWdzKTsKPj4gKyAgICAgICBlbHNlCj4+ICsgICAgICAg ICAgICAgICByZXR1cm4gX19pZ3Rfc3Bpbl9iYXRjaF9uZXcoZmQsIGN0eCwgZmxhZ3MsIDApOwo+ PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBfX3NwaW5fd2FpdChpbnQgZmQsIGlndF9zcGluX3Qg KnNwaW4pCj4+ICt7Cj4+ICsgICAgICAgaWYgKHNwaW4tPnJ1bm5pbmcpIHsKPj4gKyAgICAgICAg ICAgICAgIHdoaWxlICghKigodm9sYXRpbGUgYm9vbCAqKXNwaW4tPnJ1bm5pbmcpKQo+PiArICAg ICAgICAgICAgICAgICAgICAgICA7Cj4+ICsgICAgICAgfSBlbHNlIHsKPj4gKyAgICAgICAgICAg ICAgIGlndF9kZWJ1ZygiX19zcGluX3dhaXQgLSB1c2xlZXAgbW9kZVxuIik7Cj4+ICsgICAgICAg ICAgICAgICB1c2xlZXAoNTAwZTMpOyAvKiBCZXR0ZXIgdGhhbiBub3RoaW5nISAqLwo+PiArICAg ICAgIH0KPj4gK30KPj4gKwo+PiArLyoKPj4gKyAqIFdlZGdlIHRoZSBHUFUgd2hlbiB3ZSBrbm93 IG91ciBiYXRjaCBpcyBydW5uaW5nLgo+PiArICovCj4+ICtzdGF0aWMgdm9pZCB3ZWRnZV9hZnRl cl9ydW5uaW5nKGludCBmZCwgaWd0X3NwaW5fdCAqc3BpbikKPj4gK3sKPj4gKyAgICAgICBfX3Nw aW5fd2FpdChmZCwgc3Bpbik7Cj4+ICsgICAgICAgbWFudWFsX2hhbmcoZmQpOwo+PiArfQo+PiAr Cj4+ICAgc3RhdGljIHZvaWQgdGVzdF93YWl0KGludCBmZCkKPj4gICB7Cj4+IC0gICAgICAgaWd0 X2hhbmdfdCBoYW5nOwo+PiArICAgICAgIHN0cnVjdCB0aW1lc3BlYyB0cyA9IHsgfTsKPj4gKyAg ICAgICBpZ3Rfc3Bpbl90ICpoYW5nOwo+PiAgIAo+PiAgICAgICAgICBpZ3RfcmVxdWlyZV9nZW0o ZmQpOwo+PiAgIAo+PiArICAgICAgIGlndF9uc2VjX2VsYXBzZWQoJnRzKTsKPj4gKwo+PiAgICAg ICAgICAvKiBJZiB0aGUgcmVxdWVzdCB3ZSB3YWl0IG9uIGNvbXBsZXRlcyBkdWUgdG8gYSBoYW5n IChldmVuIGZvcgo+PiAgICAgICAgICAgKiB0aGF0IHJlcXVlc3QpLCB0aGUgdXNlciBleHBlY3Rz IHRoZSByZXR1cm4gdmFsdWUgdG8gMCAoc3VjY2VzcykuCj4+ICAgICAgICAgICAqLwo+PiAtICAg ICAgIGhhbmcgPSBpZ3RfaGFuZ19yaW5nKGZkLCBJOTE1X0VYRUNfREVGQVVMVCk7Cj4+IC0gICAg ICAgaWd0X2Fzc2VydF9lcShfX2dlbV93YWl0KGZkLCBoYW5nLmhhbmRsZSwgLTEpLCAwKTsKPj4g LSAgICAgICBpZ3RfcG9zdF9oYW5nX3JpbmcoZmQsIGhhbmcpOwo+PiArICAgICAgIGlndF9yZXF1 aXJlKGk5MTVfcmVzZXRfY29udHJvbCh0cnVlKSk7Cj4+ICsgICAgICAgaGFuZyA9IF9fc3Bpbl9w b2xsKGZkLCAwLCBJOTE1X0VYRUNfREVGQVVMVCk7Cj4+ICsgICAgICAgd2VkZ2VfYWZ0ZXJfcnVu bmluZyhmZCwgaGFuZyk7Cj4+ICsgICAgICAgaWd0X2Fzc2VydF9lcShfX2dlbV93YWl0KGZkLCBo YW5nLT5oYW5kbGUsIC0xKSwgMCk7Cj4+ICsgICAgICAgaWd0X3NwaW5fYmF0Y2hfZnJlZShmZCwg aGFuZyk7Cj4gCj4+ICAgCj4+ICAgICAgICAgIC8qIElmIHRoZSBHUFUgaXMgd2VkZ2VkIGR1cmlu ZyB0aGUgd2FpdCwgYWdhaW4gd2UgZXhwZWN0IHRoZSByZXR1cm4KPj4gICAgICAgICAgICogdmFs dWUgdG8gYmUgMCAoc3VjY2VzcykuCj4+ICAgICAgICAgICAqLwo+PiAgICAgICAgICBpZ3RfcmVx dWlyZShpOTE1X3Jlc2V0X2NvbnRyb2woZmFsc2UpKTsKPj4gLSAgICAgICBoYW5nID0gaWd0X2hh bmdfcmluZyhmZCwgSTkxNV9FWEVDX0RFRkFVTFQpOwo+PiAtICAgICAgIGlndF9hc3NlcnRfZXEo X19nZW1fd2FpdChmZCwgaGFuZy5oYW5kbGUsIC0xKSwgMCk7Cj4+IC0gICAgICAgaWd0X3Bvc3Rf aGFuZ19yaW5nKGZkLCBoYW5nKTsKPj4gKyAgICAgICBoYW5nID0gX19zcGluX3BvbGwoZmQsIDAs IEk5MTVfRVhFQ19ERUZBVUxUKTsKPj4gKyAgICAgICB3ZWRnZV9hZnRlcl9ydW5uaW5nKGZkLCBo YW5nKTsKPj4gKyAgICAgICBpZ3RfYXNzZXJ0X2VxKF9fZ2VtX3dhaXQoZmQsIGhhbmctPmhhbmRs ZSwgLTEpLCAwKTsKPj4gKyAgICAgICBpZ3Rfc3Bpbl9iYXRjaF9mcmVlKGZkLCBoYW5nKTsKPj4g ICAgICAgICAgaWd0X3JlcXVpcmUoaTkxNV9yZXNldF9jb250cm9sKHRydWUpKTsKPiAKPiBIbW0u IFRoZXNlIGFyZSBub3QgZXF1aXZhbGVudCB0byB0aGUgb3JpZ2luYWwgdGVzdC4gVGhlIHRlc3Rz Cj4gcmVxdWlyZXMgaGFuZ2NoZWNrIHRvIGtpY2sgaW4gd2hpbGUgdGhlIHRlc3QgaXMgYmxvY2tl ZCBvbiBpZ3Rfd2FpdC4KPiBUbyBkbyBhIGZhc3QgZXF1aXZhbGVudCwgd2UgbmVlZCB0byBraWNr IG9mZiBhIHRpbWVyLiAoSGVyZSB3ZSBhcmUganVzdAo+IGFza2luZyBpZiBhIHdhaXQgb24gYW4g YWxyZWFkeSBjb21wbGV0ZWQgcmVxdWVzdCBkb2Vzbid0IGJsb2NrLCBub3QgaG93Cj4gd2UgaGFu ZGxlIHRoZSByZXNldCBpbiB0aGUgbWlkZGxlIG9mIGEgd2FpdC4gU2VlbXMgYSByZWFzb25hYmxl IGFkZGl0aW9uCj4gdGhvdWdoLikKPiAKPiBJIHRoaW5rIHRoYXQncyBhIGdlbmVyYWwgcGF0dGVy biB3b3J0aCByZXBlYXRpbmcgZm9yIHRoZSByZXN0IG9mIHRlc3RzOgo+IGRvbid0IGltbWVkaWF0 ZWx5IGluamVjdCB0aGUgaGFuZywgYnV0IGxlYXZlIGl0IGEgZmV3IG1pbGxpc2Vjb25kcyB0bwo+ IGFsbG93IHVzIHRvIGJsb2NrIG9uIHRoZSBzdWJzZXF1ZW50IHdhaXQuIEkgd291bGQgZXZlbiBy ZXBlYXQgdGhlIHRlc3RzCj4gYSBmZXcgdGltZXMgd2l0aCBkaWZmZXJlbnQgdGltZW91dHM7IDAs IDF1cywgMTBtcyAodGhpbmtpbmcgb2YgdGhlCj4gZGlmZmVyZW50IHBoYXNlcyBmb3IgaTkxNV9y ZXF1ZXN0X3dhaXQpLgoKVHJ1ZSwgaXQncyBub3QgdGhlIHNhbWUuCgpNYWtlcyBzZW5zZSB0byB0 ZXN0IHdpdGggZGlmZmVyZW50IHRpbWVvdXRzLiBXaWxsIGRvLgoKPiAKPj4gICAgICAgICAgdHJp Z2dlcl9yZXNldChmZCk7Cj4+ICsKPj4gKyAgICAgICAvKiBIQUNLIGZvciBDSSAqLwo+PiArICAg ICAgIGlndF9hc3NlcnQoaWd0X25zZWNfZWxhcHNlZCgmdHMpIDwgNWU5KTsKPiAKPiBpZ3Rfc2Vj b25kc19lbGFwc2VkKCkgdGhlIGFwcHJveGltYXRpb24gaXMgd29ydGggdGhlIHJlYWRhYmlsaXR5 Lgo+IAo+IEluIHRoaXMgY2FzZSB5b3UgbWlnaHQgbGlrZSB0byB0cnkgaWd0X3NldF90aW1lb3V0 KCksIGFzIEkgdGhpbmsgZWFjaAo+IHN1YnRlc3QgYW5kIGV4aXRoYW5kbGVycyBhcmUgaW4gcGxh Y2UgdG8gbWFrZSB0aGVtIHJvYnVzdCBhZ2FpbnN0Cj4gcHJlbWF0dXJlIGZhaWx1cmVzLgoKV2Vs bCB0aGlzIHdhcyBqdXN0IHRvIHNlZSB0aGF0IHdpbGwgaGFwcGVuIG9uIHRoZSBzaGFyZHMgaGVy ZS4gQXMgCm1lbnRpb25lZCBpbiB0aGUgY29tbWl0IEkgZ2V0IHRoYXQgeWV0IHVuZXhwbGFpbmVk IEdQVSBoYW5nIGF0IHN1YnRlc3QgCmV4aXQgaGVyZS4gU28gdGhlIGFzc2VydCBhYm92ZSBpcyBq dXN0IHRvIG5vdGljZSBpZiB0aGUgc2FtZSBoYXBwZW5zIG9uIApzaGFyZHMuCgpSZWdhcmRzLAoK VHZydGtvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: References: <20180322111712.9056-1-tvrtko.ursulin@linux.intel.com> <20180322111712.9056-2-tvrtko.ursulin@linux.intel.com> <152171875518.23562.12227602056261860847@mail.alporthouse.com> From: Tvrtko Ursulin Message-ID: <499c5ae6-900f-0958-149e-036ba0d9de7a@linux.intel.com> Date: Thu, 22 Mar 2018 12:36:58 +0000 MIME-Version: 1.0 In-Reply-To: <152171875518.23562.12227602056261860847@mail.alporthouse.com> Content-Language: en-GB Subject: Re: [igt-dev] [PATCH i-g-t 2/3] tests/gem_eio: Speed up test execution List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Chris Wilson , Tvrtko Ursulin , igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin List-ID: Ck9uIDIyLzAzLzIwMTggMTE6MzksIENocmlzIFdpbHNvbiB3cm90ZToKPiBRdW90aW5nIFR2cnRr byBVcnN1bGluICgyMDE4LTAzLTIyIDExOjE3OjExKQo+PiBGcm9tOiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+Pgo+PiBJZiB3ZSBzdG9wIHJlbHlpbmcgb24gcmVn dWxhciBHUFUgaGFuZ3MgdG8gYmUgZGV0ZWN0ZWQsIGJ1dCB0cmlnZ2VyIHRoZW0KPj4gbWFudWFs bHkgYXMgc29vbiBhcyB3ZSBrbm93IG91ciBiYXRjaCBvZiBpbnRlcmVzdCBpcyBhY3R1YWxseSBl eGVjdXRpbmcKPj4gb24gdGhlIEdQVSwgd2UgY2FuIGRyYW1hdGljYWxseSBzcGVlZCB1cCB2YXJp b3VzIHN1YnRlc3RzLgo+Pgo+PiBUaGlzIGlzIGVuYWJsZWQgYnkgdGhlIHBvbGxhYmxlIHNwaW4g YmF0Y2ggYWRkZWQgaW4gdGhlIHByZXZpb3VzIHBhdGNoLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBU dnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+PiBTdWdnZXN0ZWQtYnk6 IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+PiBDYzogQW50b25pbyBB cmdlbnppYW5vIDxhbnRvbmlvLmFyZ2Vuemlhbm9AaW50ZWwuY29tPgo+PiAtLS0KPj4gTm90ZSB0 aGF0IHRoZSAnd2FpdCcgc3VidGVzdCBpcyBteXN0ZXJpb3VzbHkgaGFuZ2luZyBmb3IgbWUgaW4g dGhlIG5vLW9wCj4+IGJhdGNoIHNlbmQgYnkgZ2VtX3Rlc3RfZW5naW5lcywgYnV0IG9ubHkgb24g UkNTIGVuZ2luZS4gVEJEIHdoaWxlIEkgYW0KPj4gZ2V0dGluZyBzb21lIENJIHJlc3VsdHMuCj4+ IC0tLQo+PiAgIGxpYi50YXIgICAgICAgICB8IEJpbiAwIC0+IDEwMjQwMCBieXRlcwo+PiAgIHRl c3RzL2dlbV9laW8uYyB8ICA5NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLQo+PiAgIDIgZmlsZXMgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygr KSwgMjcgZGVsZXRpb25zKC0pCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi50YXIKPj4KPj4g ZGlmZiAtLWdpdCBhL2xpYi50YXIgYi9saWIudGFyCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+ IGluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhMDRmYWQy MTlhODdmMmU5NzU4NTI5ODk1MjZmOGRhNGM5YjdkNmQKPj4gR0lUIGJpbmFyeSBwYXRjaAo+PiBs aXRlcmFsIDEwMjQwMAo+PiB6Y21lSHc+dmtKUWxCV01zUGY9IXtrd0o9Z1VBa01BSmMzQTIha1By UUFTQVdNPDVMRiYzTTU3I2ZXfTNYK1Y7SDkKPiAKPiBMb29rcyBjb3JyZWN0LgoKSnVzdCBiYWNr aW5nIHVwIGluIHRoZSBjbG91ZC4gOikpCgo+PiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX2Vpby5j IGIvdGVzdHMvZ2VtX2Vpby5jCj4+IGluZGV4IDRiY2M1OTM3ZGIzOS4uOTM0MDAwNTYxMjRiIDEw MDY0NAo+PiAtLS0gYS90ZXN0cy9nZW1fZWlvLmMKPj4gKysrIGIvdGVzdHMvZ2VtX2Vpby5jCj4+ IEBAIC03MSwyNiArNzEsMjMgQEAgc3RhdGljIHZvaWQgdHJpZ2dlcl9yZXNldChpbnQgZmQpCj4+ ICAgICAgICAgIGdlbV9xdWllc2NlbnRfZ3B1KGZkKTsKPj4gICB9Cj4+ICAgCj4+IC1zdGF0aWMg dm9pZCB3ZWRnZV9ncHUoaW50IGZkKQo+PiArc3RhdGljIHZvaWQgbWFudWFsX2hhbmcoaW50IGRy bV9mZCkKPj4gICB7Cj4+IC0gICAgICAgLyogRmlyc3QgaWRsZSB0aGUgR1BVIHRoZW4gZGlzYWJs ZSBHUFUgcmVzZXRzIGJlZm9yZSBpbmplY3RpbmcgYSBoYW5nICovCj4+IC0gICAgICAgZ2VtX3F1 aWVzY2VudF9ncHUoZmQpOwo+PiAtCj4+IC0gICAgICAgaWd0X3JlcXVpcmUoaTkxNV9yZXNldF9j b250cm9sKGZhbHNlKSk7Cj4+ICsgICAgICAgaW50IGRpciA9IGlndF9kZWJ1Z2ZzX2Rpcihkcm1f ZmQpOwo+PiAgIAo+PiAtICAgICAgIGlndF9kZWJ1ZygiV2VkZ2luZyBHUFUgYnkgaW5qZWN0aW5n IGhhbmdcbiIpOwo+PiAtICAgICAgIGlndF9wb3N0X2hhbmdfcmluZyhmZCwgaWd0X2hhbmdfcmlu ZyhmZCwgSTkxNV9FWEVDX0RFRkFVTFQpKTsKPj4gKyAgICAgICBpZ3Rfc3lzZnNfc2V0KGRpciwg Imk5MTVfd2VkZ2VkIiwgIi0xIik7Cj4+ICAgCj4+IC0gICAgICAgaWd0X2Fzc2VydChpOTE1X3Jl c2V0X2NvbnRyb2wodHJ1ZSkpOwo+PiArICAgICAgIGNsb3NlKGRpcik7Cj4+ICAgfQo+IAo+IE9r Lgo+IAo+PiAtc3RhdGljIHZvaWQgd2VkZ2VtZShpbnQgZHJtX2ZkKQo+PiArc3RhdGljIHZvaWQg d2VkZ2VfZ3B1KGludCBmZCkKPj4gICB7Cj4+IC0gICAgICAgaW50IGRpciA9IGlndF9kZWJ1Z2Zz X2Rpcihkcm1fZmQpOwo+PiAtCj4+IC0gICAgICAgaWd0X3N5c2ZzX3NldChkaXIsICJpOTE1X3dl ZGdlZCIsICItMSIpOwo+PiArICAgICAgIC8qIEZpcnN0IGlkbGUgdGhlIEdQVSB0aGVuIGRpc2Fi bGUgR1BVIHJlc2V0cyBiZWZvcmUgaW5qZWN0aW5nIGEgaGFuZyAqLwo+PiArICAgICAgIGdlbV9x dWllc2NlbnRfZ3B1KGZkKTsKPj4gICAKPj4gLSAgICAgICBjbG9zZShkaXIpOwo+PiArICAgICAg IGlndF9yZXF1aXJlKGk5MTVfcmVzZXRfY29udHJvbChmYWxzZSkpOwo+PiArICAgICAgIG1hbnVh bF9oYW5nKGZkKTsKPj4gKyAgICAgICBpZ3RfYXNzZXJ0KGk5MTVfcmVzZXRfY29udHJvbCh0cnVl KSk7Cj4+ICAgfQo+IAo+IE9rLgoKV2VsbCBkb25lIHJlYWRpbmcgdGhhdCBhd2Z1bCBkaWZmIQoK Pj4gICAKPj4gICBzdGF0aWMgaW50IF9fZ2VtX3Rocm90dGxlKGludCBmZCkKPj4gQEAgLTE0OSwy OSArMTQ2LDY2IEBAIHN0YXRpYyBpbnQgX19nZW1fd2FpdChpbnQgZmQsIHVpbnQzMl90IGhhbmRs ZSwgaW50NjRfdCB0aW1lb3V0KQo+PiAgICAgICAgICByZXR1cm4gZXJyOwo+PiAgIH0KPj4gICAK Pj4gK3N0YXRpYyBpZ3Rfc3Bpbl90ICogX19zcGluX3BvbGwoaW50IGZkLCB1aW50MzJfdCBjdHgs IHVuc2lnbmVkIGxvbmcgZmxhZ3MpCj4+ICt7Cj4+ICsgICAgICAgaWYgKGdlbV9jYW5fc3RvcmVf ZHdvcmQoZmQsIGZsYWdzKSkKPj4gKyAgICAgICAgICAgICAgIHJldHVybiBfX2lndF9zcGluX2Jh dGNoX25ld19wb2xsKGZkLCBjdHgsIGZsYWdzKTsKPj4gKyAgICAgICBlbHNlCj4+ICsgICAgICAg ICAgICAgICByZXR1cm4gX19pZ3Rfc3Bpbl9iYXRjaF9uZXcoZmQsIGN0eCwgZmxhZ3MsIDApOwo+ PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBfX3NwaW5fd2FpdChpbnQgZmQsIGlndF9zcGluX3Qg KnNwaW4pCj4+ICt7Cj4+ICsgICAgICAgaWYgKHNwaW4tPnJ1bm5pbmcpIHsKPj4gKyAgICAgICAg ICAgICAgIHdoaWxlICghKigodm9sYXRpbGUgYm9vbCAqKXNwaW4tPnJ1bm5pbmcpKQo+PiArICAg ICAgICAgICAgICAgICAgICAgICA7Cj4+ICsgICAgICAgfSBlbHNlIHsKPj4gKyAgICAgICAgICAg ICAgIGlndF9kZWJ1ZygiX19zcGluX3dhaXQgLSB1c2xlZXAgbW9kZVxuIik7Cj4+ICsgICAgICAg ICAgICAgICB1c2xlZXAoNTAwZTMpOyAvKiBCZXR0ZXIgdGhhbiBub3RoaW5nISAqLwo+PiArICAg ICAgIH0KPj4gK30KPj4gKwo+PiArLyoKPj4gKyAqIFdlZGdlIHRoZSBHUFUgd2hlbiB3ZSBrbm93 IG91ciBiYXRjaCBpcyBydW5uaW5nLgo+PiArICovCj4+ICtzdGF0aWMgdm9pZCB3ZWRnZV9hZnRl cl9ydW5uaW5nKGludCBmZCwgaWd0X3NwaW5fdCAqc3BpbikKPj4gK3sKPj4gKyAgICAgICBfX3Nw aW5fd2FpdChmZCwgc3Bpbik7Cj4+ICsgICAgICAgbWFudWFsX2hhbmcoZmQpOwo+PiArfQo+PiAr Cj4+ICAgc3RhdGljIHZvaWQgdGVzdF93YWl0KGludCBmZCkKPj4gICB7Cj4+IC0gICAgICAgaWd0 X2hhbmdfdCBoYW5nOwo+PiArICAgICAgIHN0cnVjdCB0aW1lc3BlYyB0cyA9IHsgfTsKPj4gKyAg ICAgICBpZ3Rfc3Bpbl90ICpoYW5nOwo+PiAgIAo+PiAgICAgICAgICBpZ3RfcmVxdWlyZV9nZW0o ZmQpOwo+PiAgIAo+PiArICAgICAgIGlndF9uc2VjX2VsYXBzZWQoJnRzKTsKPj4gKwo+PiAgICAg ICAgICAvKiBJZiB0aGUgcmVxdWVzdCB3ZSB3YWl0IG9uIGNvbXBsZXRlcyBkdWUgdG8gYSBoYW5n IChldmVuIGZvcgo+PiAgICAgICAgICAgKiB0aGF0IHJlcXVlc3QpLCB0aGUgdXNlciBleHBlY3Rz IHRoZSByZXR1cm4gdmFsdWUgdG8gMCAoc3VjY2VzcykuCj4+ICAgICAgICAgICAqLwo+PiAtICAg ICAgIGhhbmcgPSBpZ3RfaGFuZ19yaW5nKGZkLCBJOTE1X0VYRUNfREVGQVVMVCk7Cj4+IC0gICAg ICAgaWd0X2Fzc2VydF9lcShfX2dlbV93YWl0KGZkLCBoYW5nLmhhbmRsZSwgLTEpLCAwKTsKPj4g LSAgICAgICBpZ3RfcG9zdF9oYW5nX3JpbmcoZmQsIGhhbmcpOwo+PiArICAgICAgIGlndF9yZXF1 aXJlKGk5MTVfcmVzZXRfY29udHJvbCh0cnVlKSk7Cj4+ICsgICAgICAgaGFuZyA9IF9fc3Bpbl9w b2xsKGZkLCAwLCBJOTE1X0VYRUNfREVGQVVMVCk7Cj4+ICsgICAgICAgd2VkZ2VfYWZ0ZXJfcnVu bmluZyhmZCwgaGFuZyk7Cj4+ICsgICAgICAgaWd0X2Fzc2VydF9lcShfX2dlbV93YWl0KGZkLCBo YW5nLT5oYW5kbGUsIC0xKSwgMCk7Cj4+ICsgICAgICAgaWd0X3NwaW5fYmF0Y2hfZnJlZShmZCwg aGFuZyk7Cj4gCj4+ICAgCj4+ICAgICAgICAgIC8qIElmIHRoZSBHUFUgaXMgd2VkZ2VkIGR1cmlu ZyB0aGUgd2FpdCwgYWdhaW4gd2UgZXhwZWN0IHRoZSByZXR1cm4KPj4gICAgICAgICAgICogdmFs dWUgdG8gYmUgMCAoc3VjY2VzcykuCj4+ICAgICAgICAgICAqLwo+PiAgICAgICAgICBpZ3RfcmVx dWlyZShpOTE1X3Jlc2V0X2NvbnRyb2woZmFsc2UpKTsKPj4gLSAgICAgICBoYW5nID0gaWd0X2hh bmdfcmluZyhmZCwgSTkxNV9FWEVDX0RFRkFVTFQpOwo+PiAtICAgICAgIGlndF9hc3NlcnRfZXEo X19nZW1fd2FpdChmZCwgaGFuZy5oYW5kbGUsIC0xKSwgMCk7Cj4+IC0gICAgICAgaWd0X3Bvc3Rf aGFuZ19yaW5nKGZkLCBoYW5nKTsKPj4gKyAgICAgICBoYW5nID0gX19zcGluX3BvbGwoZmQsIDAs IEk5MTVfRVhFQ19ERUZBVUxUKTsKPj4gKyAgICAgICB3ZWRnZV9hZnRlcl9ydW5uaW5nKGZkLCBo YW5nKTsKPj4gKyAgICAgICBpZ3RfYXNzZXJ0X2VxKF9fZ2VtX3dhaXQoZmQsIGhhbmctPmhhbmRs ZSwgLTEpLCAwKTsKPj4gKyAgICAgICBpZ3Rfc3Bpbl9iYXRjaF9mcmVlKGZkLCBoYW5nKTsKPj4g ICAgICAgICAgaWd0X3JlcXVpcmUoaTkxNV9yZXNldF9jb250cm9sKHRydWUpKTsKPiAKPiBIbW0u IFRoZXNlIGFyZSBub3QgZXF1aXZhbGVudCB0byB0aGUgb3JpZ2luYWwgdGVzdC4gVGhlIHRlc3Rz Cj4gcmVxdWlyZXMgaGFuZ2NoZWNrIHRvIGtpY2sgaW4gd2hpbGUgdGhlIHRlc3QgaXMgYmxvY2tl ZCBvbiBpZ3Rfd2FpdC4KPiBUbyBkbyBhIGZhc3QgZXF1aXZhbGVudCwgd2UgbmVlZCB0byBraWNr IG9mZiBhIHRpbWVyLiAoSGVyZSB3ZSBhcmUganVzdAo+IGFza2luZyBpZiBhIHdhaXQgb24gYW4g YWxyZWFkeSBjb21wbGV0ZWQgcmVxdWVzdCBkb2Vzbid0IGJsb2NrLCBub3QgaG93Cj4gd2UgaGFu ZGxlIHRoZSByZXNldCBpbiB0aGUgbWlkZGxlIG9mIGEgd2FpdC4gU2VlbXMgYSByZWFzb25hYmxl IGFkZGl0aW9uCj4gdGhvdWdoLikKPiAKPiBJIHRoaW5rIHRoYXQncyBhIGdlbmVyYWwgcGF0dGVy biB3b3J0aCByZXBlYXRpbmcgZm9yIHRoZSByZXN0IG9mIHRlc3RzOgo+IGRvbid0IGltbWVkaWF0 ZWx5IGluamVjdCB0aGUgaGFuZywgYnV0IGxlYXZlIGl0IGEgZmV3IG1pbGxpc2Vjb25kcyB0bwo+ IGFsbG93IHVzIHRvIGJsb2NrIG9uIHRoZSBzdWJzZXF1ZW50IHdhaXQuIEkgd291bGQgZXZlbiBy ZXBlYXQgdGhlIHRlc3RzCj4gYSBmZXcgdGltZXMgd2l0aCBkaWZmZXJlbnQgdGltZW91dHM7IDAs IDF1cywgMTBtcyAodGhpbmtpbmcgb2YgdGhlCj4gZGlmZmVyZW50IHBoYXNlcyBmb3IgaTkxNV9y ZXF1ZXN0X3dhaXQpLgoKVHJ1ZSwgaXQncyBub3QgdGhlIHNhbWUuCgpNYWtlcyBzZW5zZSB0byB0 ZXN0IHdpdGggZGlmZmVyZW50IHRpbWVvdXRzLiBXaWxsIGRvLgoKPiAKPj4gICAgICAgICAgdHJp Z2dlcl9yZXNldChmZCk7Cj4+ICsKPj4gKyAgICAgICAvKiBIQUNLIGZvciBDSSAqLwo+PiArICAg ICAgIGlndF9hc3NlcnQoaWd0X25zZWNfZWxhcHNlZCgmdHMpIDwgNWU5KTsKPiAKPiBpZ3Rfc2Vj b25kc19lbGFwc2VkKCkgdGhlIGFwcHJveGltYXRpb24gaXMgd29ydGggdGhlIHJlYWRhYmlsaXR5 Lgo+IAo+IEluIHRoaXMgY2FzZSB5b3UgbWlnaHQgbGlrZSB0byB0cnkgaWd0X3NldF90aW1lb3V0 KCksIGFzIEkgdGhpbmsgZWFjaAo+IHN1YnRlc3QgYW5kIGV4aXRoYW5kbGVycyBhcmUgaW4gcGxh Y2UgdG8gbWFrZSB0aGVtIHJvYnVzdCBhZ2FpbnN0Cj4gcHJlbWF0dXJlIGZhaWx1cmVzLgoKV2Vs bCB0aGlzIHdhcyBqdXN0IHRvIHNlZSB0aGF0IHdpbGwgaGFwcGVuIG9uIHRoZSBzaGFyZHMgaGVy ZS4gQXMgCm1lbnRpb25lZCBpbiB0aGUgY29tbWl0IEkgZ2V0IHRoYXQgeWV0IHVuZXhwbGFpbmVk IEdQVSBoYW5nIGF0IHN1YnRlc3QgCmV4aXQgaGVyZS4gU28gdGhlIGFzc2VydCBhYm92ZSBpcyBq dXN0IHRvIG5vdGljZSBpZiB0aGUgc2FtZSBoYXBwZW5zIG9uIApzaGFyZHMuCgpSZWdhcmRzLAoK VHZydGtvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmln dC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=