From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mslow2.mail.gandi.net (mslow2.mail.gandi.net [217.70.178.242]) by gabe.freedesktop.org (Postfix) with ESMTPS id CA6646E029 for ; Thu, 4 Apr 2019 12:30:53 +0000 (UTC) Received: from relay7-d.mail.gandi.net (unknown [217.70.183.200]) by mslow2.mail.gandi.net (Postfix) with ESMTP id 257C43AD486 for ; Thu, 4 Apr 2019 12:14:29 +0000 (UTC) Message-ID: From: Paul Kocialkowski Date: Thu, 04 Apr 2019 14:14:05 +0200 In-Reply-To: <20190402191247.26247-2-maarten.lankhorst@linux.intel.com> References: <20190402191247.26247-1-maarten.lankhorst@linux.intel.com> <20190402191247.26247-2-maarten.lankhorst@linux.intel.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t 2/2] tests/kms_chamelium: Fix *-cmp-random and *-crc-random tests. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Maarten Lankhorst , igt-dev@lists.freedesktop.org List-ID: SGksCgpMZSBtYXJkaSAwMiBhdnJpbCAyMDE5IMOgIDIxOjEyICswMjAwLCBNYWFydGVuIExhbmto b3JzdCBhIMOpY3JpdCA6Cj4gVGhlIHJhbmRvbSB0ZXN0cyBhbGxvd2VkIHBvdGVudGlhbGx5IGlu dmFsaWQgdGhpbmdzOgo+IC0gMXgxIGZiJ3MgdG8gYmUgY3JlYXRlZC4gRm9yY2UgYSBtaW5pbXVt IG9mIDMyIHNvIGEgc2NhbGVkCj4gICBwbGFuZSB3aWxsIGJlIGF0IGxlYXN0IDE2eDE2LiBUaGlz IHdpbGwgZml4IHNjYWxlZC9wbGFuYXIgZm9ybWF0Cj4gICBzdXBwb3J0IGluIGk5MTUgYW5kIGF2 b2lkIGEgZGl2IGJ5IHplcm8gd2hlbiBjYWxjdWxhdGluZyBhIHZhbHVlCj4gICBtb2R1bG8gaC8y IGFuZCB3LzIuCj4gLSBEb3duc2NhbGluZyB0byBhbnkgYW1vdW50LCByZXN0cmljdCBpdCB0byAy eCB0byBtYWtlIHRoZSB0ZXN0IHBhc3MuCj4gLSBTb21lIGh3IG1heSBub3QgYWxsb3cgc2NhbGlu ZywgaW4gdGhvc2UgY2FzZXMgd2Ugc2hvdWxkIGZhbGxiYWNrCj4gICB0byBubyBzY2FsaW5nIGF0 IGFsbC4KPiAtIEF0dGVtcHRpbmcgdG8gY29uZmlndXJlIGEgbWluaW11bSBvZiA0IHBsYW5lcywg aW5zdGVhZCBvZiBhIG1heGltdW0uCj4gICBUaGlzIGZhaWxzIHdpdGggYSBudWxsIHBvaW50ZXIg ZGVyZWYgaWYgdGhlIGh3IGRvZXNuJ3QgaGF2ZSA0Cj4gICBjb25maWd1cmFibGUgb3ZlcmxheSBw bGFuZXMuCgpUaGFua3MgZm9yIHlvdXIgd29yaywgaXQncyBuaWNlIHRvIHNlZSBpbXByb3ZlbWVu dHMgYW5kIGZpeGVzIGZvciB0aGUKc2hvcnRjb21pbmdzIG9mIG15IGluaXRpYWwgaW1wbGVtZW50 YXRpb24uIE1vc3Qgb2YgaXQgbG9va3MgZ29vZCB0byBtZSwKYnV0IEkgaGF2ZSBzb21lIHJlc2Vy dmF0aW9ucyBhYm91dCBob3cgd2Ugc2hvdWxkIGhhbmRsZSBody1zcGVjaWZpYwpsaW1pdHMsIHNl ZSBjb21tZW50cyBiZWxvdy4KCj4gQ2M6IFBhdWwgS29jaWFsa293c2tpIDxwYXVsLmtvY2lhbGtv d3NraUBib290bGluLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFh cnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICB0ZXN0cy9rbXNfY2hhbWVs aXVtLmMgfCAxOTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4g IDEgZmlsZSBjaGFuZ2VkLCAxMzEgaW5zZXJ0aW9ucygrKSwgNjQgZGVsZXRpb25zKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19jaGFtZWxpdW0uYyBiL3Rlc3RzL2ttc19jaGFtZWxpdW0u Ywo+IGluZGV4IDJkYzEwNDlkMmRkYS4uNWU1YzY4Y2NmODc5IDEwMDY0NAo+IC0tLSBhL3Rlc3Rz L2ttc19jaGFtZWxpdW0uYwo+ICsrKyBiL3Rlc3RzL2ttc19jaGFtZWxpdW0uYwo+IEBAIC03OTIs MjYgKzc5Miw1MyBAQCBzdGF0aWMgdm9pZCByYW5kb21pemVfcGxhbmVfZm9ybWF0X3N0cmlkZShp Z3RfcGxhbmVfdCAqcGxhbmUsCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIHJhbmRvbWl6ZV9wbGFu ZV9kaW1lbnNpb25zKGRybU1vZGVNb2RlSW5mbyAqbW9kZSwKPiAtCQkJCSAgICAgICB1aW50MzJf dCAqd2lkdGgsIHVpbnQzMl90ICpoZWlnaHQsCj4gLQkJCQkgICAgICAgdWludDMyX3QgKnNyY193 LCB1aW50MzJfdCAqc3JjX2gsCj4gLQkJCQkgICAgICAgdWludDMyX3QgKnNyY194LCB1aW50MzJf dCAqc3JjX3ksCj4gLQkJCQkgICAgICAgdWludDMyX3QgKmNydGNfdywgdWludDMyX3QgKmNydGNf aCwKPiAtCQkJCSAgICAgICBpbnQzMl90ICpjcnRjX3gsIGludDMyX3QgKmNydGNfeSwKPiAtCQkJ CSAgICAgICBib29sIGFsbG93X3NjYWxpbmcpCj4gKwkJCQkgICAgICAgdWludDMyX3QgKndpZHRo LCB1aW50MzJfdCAqaGVpZ2h0KQo+ICB7Cj4gLQlkb3VibGUgcmF0aW87Cj4gKwkvKgo+ICsJICog UmFuZG9taXplIHdpZHRoIGFuZCBoZWlnaHQgaW4gdGhlIG1vZGUgZGltZW5zaW9ucyByYW5nZS4K PiArCSAqCj4gKwkgKiBSZXN0cmljdCB0byBhIG1pbiBvZiAzMiwgdGhpcyB3YXkgc3JjX3cvaCBh cmUgYWx3YXlzIGF0IGxlYXN0IDE2LAo+ICsJICogdGhlIG1pbmltdW0gZm9yIHNjYWxlZCBwbGFu YXIgWVVWIG9uIGk5MTUuCj4gKwkgKi8KCk1oaCwgSSBkb24ndCByZWFsbHkgbGlrZSB0aGUgaWRl YSBvZiBjb25zdHJhaW5pbmcgdGhlIHRlc3RzIHRvIGF2b2lkCmhpdHRpbmcgaGFyZHdhcmUtc3Bl Y2lmaWMgbGltaXRhdGlvbnMuIFNpbmNlIHRoZSB0ZXN0IGlzIG5vdCBzdXBwb3NlZAp0byBiZSB0 aWVkIHRvIGEgZHJpdmVyIGluIHBhcnRpY3VsYXIsIHRyeWluZyB0byBoYW5kbGUgdGhlc2UgbGlt aXRzCmV4cGxpY2l0bHkgZmVlbHMgbGlrZSBhIHNsaXBwZXJ5IHNsb3BlLiBJIGJlbGlldmUgaXQg c2hvdWxkIGJlIHVwIHRvCnRoZSBrZXJuZWwgdG8gcmVwb3J0IHRoZXNlIGxpbWl0cywgbm90IGZv ciB1c2Vyc3BhY2UgdG8gaGF2ZSB0aGVtCmhhcmRjb2RlZC4gKEFsdGhvdWdoIEkgd291bGQgYmUg bHlpbmcgaWYgSSBzYWlkIHRoYXQgSSBkaWRuJ3QgdGFpbG9yCnRoZSB0ZXN0IGV4cGxpY2l0bHkg Zm9yIG15IHVzZSBjYXNlICh3aXRoIFZDNCkuKQoKU28gaGVyZSBpcyBhIHByb3Bvc2FsOiBsZXQn cyBoYXZlIGFuIGluaXRpYWwgZnVuY3Rpb24gdGhhdCBwcm9iZXMgd2hhdAp0aGUgaGFyZHdhcmUg Y2FuIGFuZCBjYW4ndCBkbyBpbiB0ZXJtcyBvZiBwbGFuZSBtaW4vbWF4IHNpemUgYW5kCnVwL2Rv d24gc2NhbGluZy4gSSB3b3VsZCBleHBlY3QgdGhhdCBpOTE1IHJlamVjdHMgY29tbWl0cyB3aGVy ZSB0aGUKcGxhbmUgZGltZW5zaW9ucyBhbmQgc3VjaCBhcmUgb2ZmLWxpbWl0cyAobWF5YmUgaXQn cyBhbHNvIGluIHRoZSBwcm9wcwpyYW5nZXMgZGlyZWN0bHkpLCBzbyB3ZSBjYW4gdGVzdCBqdXN0 IHRoYXQgZWFybHkgYW5kIGNvbnN0cmFpbiB0aGUgdGVzdApiYXNlZCBvbiB0aGF0IGluZm8gbGF0 ZXIgb24sIHNvIHdlIGtlZXAgdGhlIGNvZGUgZ2VuZXJpYyBhbmQgYXZvaWQKY29tbWVudHMgYWJv dXQgd2h5IGRyaXZlci9oYXJkd2FyZSB4L3kgbmVlZHMgdG8gZG8gdGhpcyBvciB0aGF0LgoKV2hh dCBkbyB5b3UgdGhpbms/Cgo+ICsJKndpZHRoID0gbWF4KChyYW5kKCkgJSBtb2RlLT5oZGlzcGxh eSkgKyAxLCAzMik7Cj4gKwkqaGVpZ2h0ID0gbWF4KChyYW5kKCkgJSBtb2RlLT52ZGlzcGxheSkg KyAxLCAzMik7CgpUZXN0aW5nIGEgc21hbGwgcGxhbmUgZmVlbHMgbGlrZSBhIGNhc2Ugd2Ugc2hv dWxkIGNvbnNpZGVyIGlmIHRoZQpoYXJkd2FyZSBpcyBzdXBwb3NlZCB0byBiZSBhYmxlIHRvIGRv IGl0LgoKSSdtIG5vdCBvcHBvc2VkIHRvIGhhdmluZyAicmVhc29uYWJsZSIgbGltaXRzIHRob3Vn aCAobm9ib2R5IG5lZWRzIGEKMXgxIHBsYW5lIGZvciBhbnl0aGluZyksIGJ1dCBtYXliZSB0aGF0 IHNob3VsZCBiZSBlLmcuIDh4OCByYXRoZXIgdGhhbgozMngzMi4KCj4gK30KPiArCj4gK3N0YXRp YyB2b2lkIGNvbmZpZ3VyZV9wbGFuZShpZ3RfcGxhbmVfdCAqcGxhbmUsIHVpbnQzMl90IHNyY193 LCB1aW50MzJfdCBzcmNfaCwKPiArCQkJICAgIHVpbnQzMl90IHNyY194LCB1aW50MzJfdCBzcmNf eSwgdWludDMyX3QgY3J0Y193LAo+ICsJCQkgICAgdWludDMyX3QgY3J0Y19oLCBpbnQzMl90IGNy dGNfeCwgaW50MzJfdCBjcnRjX3ksCj4gKwkJCSAgICBzdHJ1Y3QgaWd0X2ZiICpmYikKPiArewo+ ICsJaWd0X3BsYW5lX3NldF9mYihwbGFuZSwgZmIpOwo+ICAKPiAtCS8qIFJhbmRvbWl6ZSB3aWR0 aCBhbmQgaGVpZ2h0IGluIHRoZSBtb2RlIGRpbWVuc2lvbnMgcmFuZ2UuICovCj4gLQkqd2lkdGgg PSAocmFuZCgpICUgbW9kZS0+aGRpc3BsYXkpICsgMTsKPiAtCSpoZWlnaHQgPSAocmFuZCgpICUg bW9kZS0+dmRpc3BsYXkpICsgMTsKPiArCWlndF9wbGFuZV9zZXRfcG9zaXRpb24ocGxhbmUsIGNy dGNfeCwgY3J0Y195KTsKPiArCWlndF9wbGFuZV9zZXRfc2l6ZShwbGFuZSwgY3J0Y193LCBjcnRj X2gpOwo+ICsKPiArCWlndF9mYl9zZXRfcG9zaXRpb24oZmIsIHBsYW5lLCBzcmNfeCwgc3JjX3kp Owo+ICsJaWd0X2ZiX3NldF9zaXplKGZiLCBwbGFuZSwgc3JjX3csIHNyY19oKTsKPiArfQo+ICsK PiArc3RhdGljIHZvaWQgcmFuZG9taXplX3BsYW5lX2Nvb3JkaW5hdGVzKGRhdGFfdCAqZGF0YSwg aWd0X3BsYW5lX3QgKnBsYW5lLAo+ICsJCQkJCWRybU1vZGVNb2RlSW5mbyAqbW9kZSwKPiArCQkJ CQlzdHJ1Y3QgaWd0X2ZiICpmYiwKPiArCQkJCQl1aW50MzJfdCAqc3JjX3csIHVpbnQzMl90ICpz cmNfaCwKPiArCQkJCQl1aW50MzJfdCAqc3JjX3gsIHVpbnQzMl90ICpzcmNfeSwKPiArCQkJCQl1 aW50MzJfdCAqY3J0Y193LCB1aW50MzJfdCAqY3J0Y19oLAo+ICsJCQkJCWludDMyX3QgKmNydGNf eCwgaW50MzJfdCAqY3J0Y195LAo+ICsJCQkJCWJvb2wgYWxsb3dfc2NhbGluZykKPiArewo+ICsJ Ym9vbCBpc195dXYgPSBpZ3RfZm9ybWF0X2lzX3l1dihmYi0+ZHJtX2Zvcm1hdCk7Cj4gKwl1aW50 MzJfdCB3aWR0aCA9IGZiLT53aWR0aCwgaGVpZ2h0ID0gZmItPmhlaWdodDsKPiArCWRvdWJsZSBy YXRpbzsKPiArCWludCByZXQ7Cj4gIAo+ICAJLyogUmFuZG9taXplIHNvdXJjZSBvZmZzZXQgaW4g dGhlIGZpcnN0IGhhbGYgb2YgdGhlIG9yaWdpbmFsIHNpemUuICovCj4gLQkqc3JjX3ggPSByYW5k KCkgJSAoKndpZHRoIC8gMik7Cj4gLQkqc3JjX3kgPSByYW5kKCkgJSAoKmhlaWdodCAvIDIpOwo+ ICsJKnNyY194ID0gcmFuZCgpICUgKHdpZHRoIC8gMik7Cj4gKwkqc3JjX3kgPSByYW5kKCkgJSAo aGVpZ2h0IC8gMik7Cj4gIAo+ICAJLyogVGhlIHNvdXJjZSBzaXplIG9ubHkgaW5jbHVkZXMgdGhl IGFjdGl2ZSBzb3VyY2UgYXJlYS4gKi8KPiAtCSpzcmNfdyA9ICp3aWR0aCAtICpzcmNfeDsKPiAt CSpzcmNfaCA9ICpoZWlnaHQgLSAqc3JjX3k7Cj4gKwkqc3JjX3cgPSB3aWR0aCAtICpzcmNfeDsK PiArCSpzcmNfaCA9IGhlaWdodCAtICpzcmNfeTsKPiAgCj4gIAlpZiAoYWxsb3dfc2NhbGluZykg ewo+ICAJCSpjcnRjX3cgPSAocmFuZCgpICUgbW9kZS0+aGRpc3BsYXkpICsgMTsKPiBAQCAtODIx LDE3ICs4NDgsMjIgQEAgc3RhdGljIHZvaWQgcmFuZG9taXplX3BsYW5lX2RpbWVuc2lvbnMoZHJt TW9kZU1vZGVJbmZvICptb2RlLAo+ICAJCSAqIERvbid0IGJvdGhlciB3aXRoIHNjYWxpbmcgaWYg ZGltZW5zaW9ucyBhcmUgcXVpdGUgY2xvc2UgaW4KPiAgCQkgKiBvcmRlciB0byBnZXQgbm9uLXNj YWxpbmcgY2FzZXMgbW9yZSBmcmVxdWVudGx5LiBBbHNvIGxpbWl0Cj4gIAkJICogc2NhbGluZyB0 byAzeCB0byBhdm9pZCBhZ3Jlc3NpdmUgZmlsdGVyaW5nIHRoYXQgbWFrZXMKPiAtCQkgKiBjb21w YXJpc29uIGxlc3MgcmVsaWFibGUuCj4gKwkJICogY29tcGFyaXNvbiBsZXNzIHJlbGlhYmxlLCBh bmQgZG9uJ3QgZ28gYWJvdmUgMnggZG93bnNhbXBsaW5nCj4gKwkJICogdG8gYXZvaWQgcG9zc2li bGUgaHcgbGltaXRhdGlvbnMuCj4gIAkJICovCgpTYW1lIGNvbW1lbnQgYXMgYWJvdmUgYWJvdXQg aHcgbGltaXRzLCBhbHRob3VnaCAyeCBkb3duc2FtcGxpbmcgZG9lcwpmZWVsIGxpa2UgYSByZWFz b25hYmxlIGdlbmVyYWwgbGltaXQgdG9vLgoKPiAgCj4gIAkJcmF0aW8gPSAoKGRvdWJsZSkgKmNy dGNfdyAvICpzcmNfdyk7Cj4gLQkJaWYgKHJhdGlvID4gMC44ICYmIHJhdGlvIDwgMS4yKQo+ICsJ CWlmIChyYXRpbyA8IDAuNSkKPiArCQkJKnNyY193ID0gKmNydGNfdyAqIDI7Cj4gKwkJZWxzZSBp ZiAocmF0aW8gPiAwLjggJiYgcmF0aW8gPCAxLjIpCj4gIAkJCSpjcnRjX3cgPSAqc3JjX3c7Cj4g IAkJZWxzZSBpZiAocmF0aW8gPiAzLjApCj4gIAkJCSpjcnRjX3cgPSAqc3JjX3cgKiAzOwo+ICAK PiAgCQlyYXRpbyA9ICgoZG91YmxlKSAqY3J0Y19oIC8gKnNyY19oKTsKPiAtCQlpZiAocmF0aW8g PiAwLjggJiYgcmF0aW8gPCAxLjIpCj4gKwkJaWYgKHJhdGlvIDwgMC41KQo+ICsJCQkqc3JjX2gg PSAqY3J0Y19oICogMjsKPiArCQllbHNlIGlmIChyYXRpbyA+IDAuOCAmJiByYXRpbyA8IDEuMikK PiAgCQkJKmNydGNfaCA9ICpzcmNfaDsKPiAgCQllbHNlIGlmIChyYXRpbyA+IDMuMCkKPiAgCQkJ KmNydGNfaCA9ICpzcmNfaCAqIDM7Cj4gQEAgLTg0Niw4ICs4NzgsMTUgQEAgc3RhdGljIHZvaWQg cmFuZG9taXplX3BsYW5lX2RpbWVuc2lvbnMoZHJtTW9kZU1vZGVJbmZvICptb2RlLAo+ICAJCSAq IHNjYWxlZCBjbGlwcGluZyBtYXkgcmVzdWx0IGluIGRlY2ltYWwgZGltZW5zaW9ucywgdGhhdCBt b3N0Cj4gIAkJICogZHJpdmVycyBkb24ndCBzdXBwb3J0Lgo+ICAJCSAqLwo+IC0JCSpjcnRjX3gg PSByYW5kKCkgJSAobW9kZS0+aGRpc3BsYXkgLSAqY3J0Y193KTsKPiAtCQkqY3J0Y195ID0gcmFu ZCgpICUgKG1vZGUtPnZkaXNwbGF5IC0gKmNydGNfaCk7Cj4gKwkJaWYgKCpjcnRjX3cgPCBtb2Rl LT5oZGlzcGxheSkKPiArCQkJKmNydGNfeCA9IHJhbmQoKSAlIChtb2RlLT5oZGlzcGxheSAtICpj cnRjX3cpOwo+ICsJCWVsc2UKPiArCQkJKmNydGNfeCA9IDA7Cj4gKwo+ICsJCWlmICgqY3J0Y19o IDwgbW9kZS0+dmRpc3BsYXkpCj4gKwkJCSpjcnRjX3kgPSByYW5kKCkgJSAobW9kZS0+dmRpc3Bs YXkgLSAqY3J0Y19oKTsKPiArCQllbHNlCj4gKwkJCSpjcnRjX3kgPSAwOwo+ICAJfSBlbHNlIHsK PiAgCQkvKgo+ICAJCSAqIFJhbmRvbWl6ZSB0aGUgb24tY3J0YyBwb3NpdGlvbiBhbmQgYWxsb3cg dGhlIHBsYW5lIHRvIGdvCj4gQEAgLTg1Niw2ICs4OTUsNTAgQEAgc3RhdGljIHZvaWQgcmFuZG9t aXplX3BsYW5lX2RpbWVuc2lvbnMoZHJtTW9kZU1vZGVJbmZvICptb2RlLAo+ICAJCSpjcnRjX3gg PSAocmFuZCgpICUgbW9kZS0+aGRpc3BsYXkpIC0gKmNydGNfdyAvIDI7Cj4gIAkJKmNydGNfeSA9 IChyYW5kKCkgJSBtb2RlLT52ZGlzcGxheSkgLSAqY3J0Y19oIC8gMjsKPiAgCX0KPiArCj4gKwlj b25maWd1cmVfcGxhbmUocGxhbmUsICpzcmNfdywgKnNyY19oLCAqc3JjX3gsICpzcmNfeSwKPiAr CQkJKmNydGNfdywgKmNydGNfaCwgKmNydGNfeCwgKmNydGNfeSwgZmIpOwo+ICsJcmV0ID0gaWd0 X2Rpc3BsYXlfdHJ5X2NvbW1pdF9hdG9taWMoJmRhdGEtPmRpc3BsYXksCj4gKwkJCQkJICAgIERS TV9NT0RFX0FUT01JQ19URVNUX09OTFkgfAo+ICsJCQkJCSAgICBEUk1fTU9ERV9BVE9NSUNfQUxM T1dfTU9ERVNFVCwKPiArCQkJCQkgICAgTlVMTCk7Cj4gKwlpZiAoIXJldCkKPiArCQlyZXR1cm47 Cj4gKwo+ICsJLyogQ29vcmRpbmF0ZXMgYXJlIGxvZ2dlZCBpbiB0aGUgZHVtcGVkIGRlYnVnIGxv Zywgc28gb25seSByZXBvcnQgdy9oIG9uIGZhaWx1cmUgaGVyZSAqLwoKTWF5YmUgYWRkIGEgdHJh aWxpbmcgIi4iIGhlcmUuCgo+ICsJaWd0X2Fzc2VydF9mKHJldCAhPSAtRU5PU1BDLCAiRmFpbHVy ZSBpbiB0ZXN0Y2FzZSwgaW52YWxpZCBjb29yZGluYXRlcyBvbiBhICV1eCV1IGZiXG4iLCB3aWR0 aCwgaGVpZ2h0KTsKPiArCj4gKwkvKiBNYWtlIFlVViBjb29yZGluYXRlcyBhIG11bHRpcGxlIG9m IDIgYW5kIHJldHJ5IHRoZSBtYXRoLi4gKi8KCk1heWJlIHJlbW92ZSBhIHRyYWlsaW5nICIuIiBo ZXJlLgoKPiArCWlmIChpc195dXYpIHsKPiArCQkqc3JjX3ggJj0gfjE7Cj4gKwkJKnNyY195ICY9 IH4xOwo+ICsJCSpzcmNfdyAmPSB+MTsKPiArCQkqc3JjX2ggJj0gfjE7Cj4gKwkJLyogVG8gaGFu ZGxlIDE6MSBzY2FsaW5nLCBjbGVhciBjcnRjX3cvaCB0b28gKi8KPiArCQkqY3J0Y193ICY9IH4x Owo+ICsJCSpjcnRjX2ggJj0gfjE7Cj4gKwkJY29uZmlndXJlX3BsYW5lKHBsYW5lLCAqc3JjX3cs ICpzcmNfaCwgKnNyY194LCAqc3JjX3ksICpjcnRjX3csCj4gKwkJCQkqY3J0Y19oLCAqY3J0Y194 LCAqY3J0Y195LCBmYik7Cj4gKwkJcmV0ID0gaWd0X2Rpc3BsYXlfdHJ5X2NvbW1pdF9hdG9taWMo JmRhdGEtPmRpc3BsYXksCj4gKwkJCQkJCURSTV9NT0RFX0FUT01JQ19URVNUX09OTFkgfAo+ICsJ CQkJCQlEUk1fTU9ERV9BVE9NSUNfQUxMT1dfTU9ERVNFVCwKPiArCQkJCQkJTlVMTCk7Cj4gKwkJ aWYgKCFyZXQpCj4gKwkJCXJldHVybjsKPiArCX0KPiArCj4gKwlpZ3RfYXNzZXJ0KCFyZXQgfHwg YWxsb3dfc2NhbGluZyk7Cj4gKwlpZ3RfaW5mbygiU2NhbGluZyByYXRpbyAlZyAvICVnIGZhaWxl ZCwgdHJ5aW5nIHdpdGhvdXQgc2NhbGluZy5cbiIsCj4gKwkJICAoKGRvdWJsZSkgKmNydGNfdyAv ICpzcmNfdyksICgoZG91YmxlKSAqY3J0Y19oIC8gKnNyY19oKSk7Cj4gKwo+ICsJKmNydGNfdyA9 ICpzcmNfdzsKPiArCSpjcnRjX2ggPSAqc3JjX2g7Cj4gKwo+ICsJY29uZmlndXJlX3BsYW5lKHBs YW5lLCAqc3JjX3csICpzcmNfaCwgKnNyY194LCAqc3JjX3ksICpjcnRjX3csCj4gKwkJCSpjcnRj X2gsICpjcnRjX3gsICpjcnRjX3ksIGZiKTsKPiArCWlndF9kaXNwbGF5X2NvbW1pdF9hdG9taWMo JmRhdGEtPmRpc3BsYXksCj4gKwkJCQkgIERSTV9NT0RFX0FUT01JQ19URVNUX09OTFkgfAo+ICsJ CQkJICBEUk1fTU9ERV9BVE9NSUNfQUxMT1dfTU9ERVNFVCwgTlVMTCk7CgpJIGRvbid0IHVuZGVy c3RhbmQgdGhlIHB1cnBvc2Ugb2YgdGhpcyB0cmFpbGluZyBjYWxsLgoKPiAgfQo+ICAKPiAgc3Rh dGljIHZvaWQgYmxpdF9wbGFuZV9jYWlybyhkYXRhX3QgKmRhdGEsIGNhaXJvX3N1cmZhY2VfdCAq cmVzdWx0LAo+IEBAIC05MTQsMjAgKzk5Nyw2IEBAIHN0YXRpYyB2b2lkIGJsaXRfcGxhbmVfY2Fp cm8oZGF0YV90ICpkYXRhLCBjYWlyb19zdXJmYWNlX3QgKnJlc3VsdCwKPiAgCWNhaXJvX2Rlc3Ry b3koY3IpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBjb25maWd1cmVfcGxhbmUoaWd0X3BsYW5l X3QgKnBsYW5lLCB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gsCj4gLQkJCSAgICB1aW50 MzJfdCBzcmNfeCwgdWludDMyX3Qgc3JjX3ksIHVpbnQzMl90IGNydGNfdywKPiAtCQkJICAgIHVp bnQzMl90IGNydGNfaCwgaW50MzJfdCBjcnRjX3gsIGludDMyX3QgY3J0Y195LAo+IC0JCQkgICAg c3RydWN0IGlndF9mYiAqZmIpCj4gLXsKPiAtCWlndF9wbGFuZV9zZXRfZmIocGxhbmUsIGZiKTsK PiAtCj4gLQlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKHBsYW5lLCBjcnRjX3gsIGNydGNfeSk7Cj4g LQlpZ3RfcGxhbmVfc2V0X3NpemUocGxhbmUsIGNydGNfdywgY3J0Y19oKTsKPiAtCj4gLQlpZ3Rf ZmJfc2V0X3Bvc2l0aW9uKGZiLCBwbGFuZSwgc3JjX3gsIHNyY195KTsKPiAtCWlndF9mYl9zZXRf c2l6ZShmYiwgcGxhbmUsIHNyY193LCBzcmNfaCk7Cj4gLX0KPiAtCj4gIHN0YXRpYyB2b2lkIHBy ZXBhcmVfcmFuZG9taXplZF9wbGFuZShkYXRhX3QgKmRhdGEsCj4gIAkJCQkgICAgIGRybU1vZGVN b2RlSW5mbyAqbW9kZSwKPiAgCQkJCSAgICAgaWd0X3BsYW5lX3QgKnBsYW5lLAo+IEBAIC05NDcs MjQgKzEwMTYsMTIgQEAgc3RhdGljIHZvaWQgcHJlcGFyZV9yYW5kb21pemVkX3BsYW5lKGRhdGFf dCAqZGF0YSwKPiAgCXNpemVfdCBzdHJpZGU7Cj4gIAlib29sIHRpbGVkOwo+ICAJaW50IGZiX2lk Owo+ICsJdWludDMyX3QgdGlsZV93LCB0aWxlX2g7Cj4gIAo+IC0JcmFuZG9taXplX3BsYW5lX2Rp bWVuc2lvbnMobW9kZSwgJm92ZXJsYXlfZmJfdywgJm92ZXJsYXlfZmJfaCwKPiAtCQkJCSAgICZv dmVybGF5X3NyY193LCAmb3ZlcmxheV9zcmNfaCwKPiAtCQkJCSAgICZvdmVybGF5X3NyY194LCAm b3ZlcmxheV9zcmNfeSwKPiAtCQkJCSAgICZvdmVybGF5X2NydGNfdywgJm92ZXJsYXlfY3J0Y19o LAo+IC0JCQkJICAgJm92ZXJsYXlfY3J0Y194LCAmb3ZlcmxheV9jcnRjX3ksCj4gLQkJCQkgICBh bGxvd19zY2FsaW5nKTsKPiArCXJhbmRvbWl6ZV9wbGFuZV9kaW1lbnNpb25zKG1vZGUsICZvdmVy bGF5X2ZiX3csICZvdmVybGF5X2ZiX2gpOwo+ICAKPiAgCWlndF9kZWJ1ZygiUGxhbmUgJWQ6IGZy YW1lYnVmZmVyIHNpemUgJWR4JWRcbiIsIGluZGV4LAo+ICAJCSAgb3ZlcmxheV9mYl93LCBvdmVy bGF5X2ZiX2gpOwo+IC0JaWd0X2RlYnVnKCJQbGFuZSAlZDogb24tY3J0YyBzaXplICVkeCVkXG4i LCBpbmRleCwKPiAtCQkgIG92ZXJsYXlfY3J0Y193LCBvdmVybGF5X2NydGNfaCk7Cj4gLQlpZ3Rf ZGVidWcoIlBsYW5lICVkOiBvbi1jcnRjIHBvc2l0aW9uICVkeCVkXG4iLCBpbmRleCwKPiAtCQkg IG92ZXJsYXlfY3J0Y194LCBvdmVybGF5X2NydGNfeSk7Cj4gLQlpZ3RfZGVidWcoIlBsYW5lICVk OiBpbi1mcmFtZWJ1ZmZlciBzaXplICVkeCVkXG4iLCBpbmRleCwKPiAtCQkgIG92ZXJsYXlfc3Jj X3csIG92ZXJsYXlfc3JjX2gpOwo+IC0JaWd0X2RlYnVnKCJQbGFuZSAlZDogaW4tZnJhbWVidWZm ZXIgcG9zaXRpb24gJWR4JWRcbiIsIGluZGV4LAo+IC0JCSAgb3ZlcmxheV9zcmNfeCwgb3Zlcmxh eV9zcmNfeSk7Cj4gIAo+ICAJLyogR2V0IGEgcGF0dGVybiBmcmFtZWJ1ZmZlciBmb3IgdGhlIG92 ZXJsYXkgcGxhbmUuICovCj4gIAlmYl9pZCA9IGNoYW1lbGl1bV9nZXRfcGF0dGVybl9mYihkYXRh LCBvdmVybGF5X2ZiX3csIG92ZXJsYXlfZmJfaCwKPiBAQCAtOTc2LDIzICsxMDMzLDQyIEBAIHN0 YXRpYyB2b2lkIHByZXBhcmVfcmFuZG9taXplZF9wbGFuZShkYXRhX3QgKmRhdGEsCj4gIAo+ICAJ dGlsZWQgPSAobW9kaWZpZXIgIT0gTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSk7Cj4gIAo+ICsJ aWd0X2dldF9mYl90aWxlX3NpemUoZGF0YS0+ZGlzcGxheS5kcm1fZmQsIG1vZGlmaWVyLAo+ICsJ CQkgICAgIGlndF9kcm1fZm9ybWF0X3RvX2JwcChmb3JtYXQpLAo+ICsJCQkgICAgICZ0aWxlX3cs ICZ0aWxlX2gpOwo+ICsKPiArCS8qIE1ha2Ugc3VyZSBzdHJpZGUgaXMgYSBtdWx0aXBsZSBvZiB0 aWxlIHNpemUgKi8KPiArCXN0cmlkZSA9IERJVl9ST1VORF9VUChzdHJpZGUsIHRpbGVfdykgKiB0 aWxlX3c7Cj4gKwo+ICAJaWd0X2RlYnVnKCJQbGFuZSAlZDogJXMgZm9ybWF0ICglcykgd2l0aCBz dHJpZGUgJWxkXG4iLCBpbmRleCwKPiAgCQkgIGlndF9mb3JtYXRfc3RyKGZvcm1hdCksIHRpbGVk ID8gInRpbGVkIiA6ICJsaW5lYXIiLCBzdHJpZGUpOwo+ICAKPiArCj4gIAlmYl9pZCA9IGlndF9m Yl9jb252ZXJ0X3dpdGhfc3RyaWRlKG92ZXJsYXlfZmIsICZwYXR0ZXJuX2ZiLCBmb3JtYXQsCj4g IAkJCQkJICAgbW9kaWZpZXIsIHN0cmlkZSk7Cj4gIAlpZ3RfYXNzZXJ0KGZiX2lkID4gMCk7Cj4g IAo+ICsJcmFuZG9taXplX3BsYW5lX2Nvb3JkaW5hdGVzKGRhdGEsIHBsYW5lLCBtb2RlLCBvdmVy bGF5X2ZiLAo+ICsJCQkJICAgICZvdmVybGF5X3NyY193LCAmb3ZlcmxheV9zcmNfaCwKPiArCQkJ CSAgICAmb3ZlcmxheV9zcmNfeCwgJm92ZXJsYXlfc3JjX3ksCj4gKwkJCQkgICAgJm92ZXJsYXlf Y3J0Y193LCAmb3ZlcmxheV9jcnRjX2gsCj4gKwkJCQkgICAgJm92ZXJsYXlfY3J0Y194LCAmb3Zl cmxheV9jcnRjX3ksCj4gKwkJCQkgICAgYWxsb3dfc2NhbGluZyk7Cj4gKwo+ICsJaWd0X2RlYnVn KCJQbGFuZSAlZDogaW4tZnJhbWVidWZmZXIgc2l6ZSAlZHglZFxuIiwgaW5kZXgsCj4gKwkJICBv dmVybGF5X3NyY193LCBvdmVybGF5X3NyY19oKTsKPiArCWlndF9kZWJ1ZygiUGxhbmUgJWQ6IGlu LWZyYW1lYnVmZmVyIHBvc2l0aW9uICVkeCVkXG4iLCBpbmRleCwKPiArCQkgIG92ZXJsYXlfc3Jj X3gsIG92ZXJsYXlfc3JjX3kpOwo+ICsJaWd0X2RlYnVnKCJQbGFuZSAlZDogb24tY3J0YyBzaXpl ICVkeCVkXG4iLCBpbmRleCwKPiArCQkgIG92ZXJsYXlfY3J0Y193LCBvdmVybGF5X2NydGNfaCk7 Cj4gKwlpZ3RfZGVidWcoIlBsYW5lICVkOiBvbi1jcnRjIHBvc2l0aW9uICVkeCVkXG4iLCBpbmRl eCwKPiArCQkgIG92ZXJsYXlfY3J0Y194LCBvdmVybGF5X2NydGNfeSk7Cj4gKwo+ICAJYmxpdF9w bGFuZV9jYWlybyhkYXRhLCByZXN1bHRfc3VyZmFjZSwgb3ZlcmxheV9zcmNfdywgb3ZlcmxheV9z cmNfaCwKPiAgCQkJIG92ZXJsYXlfc3JjX3gsIG92ZXJsYXlfc3JjX3ksCj4gIAkJCSBvdmVybGF5 X2NydGNfdywgb3ZlcmxheV9jcnRjX2gsCj4gIAkJCSBvdmVybGF5X2NydGNfeCwgb3ZlcmxheV9j cnRjX3ksICZwYXR0ZXJuX2ZiKTsKPiAgCj4gLQljb25maWd1cmVfcGxhbmUocGxhbmUsIG92ZXJs YXlfc3JjX3csIG92ZXJsYXlfc3JjX2gsCj4gLQkJCW92ZXJsYXlfc3JjX3gsIG92ZXJsYXlfc3Jj X3ksCj4gLQkJCW92ZXJsYXlfY3J0Y193LCBvdmVybGF5X2NydGNfaCwKPiAtCQkJb3ZlcmxheV9j cnRjX3gsIG92ZXJsYXlfY3J0Y195LCBvdmVybGF5X2ZiKTsKPiAtCj4gIAkvKiBSZW1vdmUgdGhl IG9yaWdpbmFsIHBhdHRlcm4gZnJhbWVidWZmZXIuICovCj4gIAlpZ3RfcmVtb3ZlX2ZiKGRhdGEt PmRybV9mZCwgJnBhdHRlcm5fZmIpOwo+ICB9Cj4gQEAgLTEwNjgsNyArMTE0NCw3IEBAIHN0YXRp YyB2b2lkIHRlc3RfZGlzcGxheV9wbGFuZXNfcmFuZG9tKGRhdGFfdCAqZGF0YSwKPiAgCQlpZ3Rf b3V0cHV0X2NvdW50X3BsYW5lX3R5cGUob3V0cHV0LCBEUk1fUExBTkVfVFlQRV9PVkVSTEFZKTsK PiAgCj4gIAkvKiBMaW1pdCB0aGUgbnVtYmVyIG9mIHBsYW5lcyB0byBhIHJlYXNvbmFibGUgc2Nl bmUuICovCj4gLQlvdmVybGF5X3BsYW5lc19tYXggPSBtYXgob3ZlcmxheV9wbGFuZXNfbWF4LCA0 KTsKPiArCW92ZXJsYXlfcGxhbmVzX21heCA9IG1pbihvdmVybGF5X3BsYW5lc19tYXgsIDQpOwo+ ICAKPiAgCW92ZXJsYXlfcGxhbmVzX2NvdW50ID0gKHJhbmQoKSAlIG92ZXJsYXlfcGxhbmVzX21h eCkgKyAxOwo+ICAJaWd0X2RlYnVnKCJVc2luZyAlZCBvdmVybGF5IHBsYW5lc1xuIiwgb3Zlcmxh eV9wbGFuZXNfY291bnQpOwo+IEBAIC0xMTIxLDE3ICsxMTk3LDggQEAgc3RhdGljIHZvaWQgdGVz dF9kaXNwbGF5X3BsYW5lc19yYW5kb20oZGF0YV90ICpkYXRhLAo+ICAJCWNoYW1lbGl1bV9kZXN0 cm95X2ZyYW1lX2R1bXAoZHVtcCk7Cj4gIAl9Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8IG92ZXJs YXlfcGxhbmVzX2NvdW50OyBpKyspIHsKPiAtCQlzdHJ1Y3QgaWd0X2ZiICpvdmVybGF5X2ZiID0g Jm92ZXJsYXlfZmJzW2ldOwo+IC0JCWlndF9wbGFuZV90ICpwbGFuZTsKPiAtCj4gLQkJcGxhbmUg PSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlX2luZGV4KG91dHB1dCwKPiAtCQkJCQkJCURSTV9Q TEFORV9UWVBFX09WRVJMQVksCj4gLQkJCQkJCQlpKTsKPiAtCQlpZ3RfYXNzZXJ0KHBsYW5lKTsK PiAtCj4gLQkJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsIG92ZXJsYXlfZmIpOwo+IC0JfQo+ ICsJZm9yIChpID0gMDsgaSA8IG92ZXJsYXlfcGxhbmVzX2NvdW50OyBpKyspCj4gKwkJaWd0X3Jl bW92ZV9mYihkYXRhLT5kcm1fZmQsICZvdmVybGF5X2Zic1tpXSk7Cj4gIAo+ICAJZnJlZShvdmVy bGF5X2Zicyk7Cj4gIAotLSAKUGF1bCBLb2NpYWxrb3dza2ksIEJvb3RsaW4KRW1iZWRkZWQgTGlu dXggYW5kIGtlcm5lbCBlbmdpbmVlcmluZwpodHRwczovL2Jvb3RsaW4uY29tCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlz dAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=