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 501046EB20 for ; Wed, 30 Jan 2019 11:25:42 +0000 (UTC) References: <1548419427-16597-1-git-send-email-juhapekka.heikkila@gmail.com> From: Juha-Pekka Heikkila Message-ID: <16cb8f0f-1a3d-8e73-5fa9-ef69c2a7d158@gmail.com> Date: Wed, 30 Jan 2019 13:25:31 +0200 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t] tests/kms_available_modes_crc: Fix handling of test comparisons List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: juhapekka.heikkila@gmail.com 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: dhinakaran.pandiyan@intel.com, igt-dev@lists.freedesktop.org List-ID: T24gMzAuMS4yMDE5IDguNDAsIERoaW5ha2FyYW4gUGFuZGl5YW4gd3JvdGU6Cj4gT24gRnJpLCAy MDE5LTAxLTI1IGF0IDE0OjMwICswMjAwLCBKdWhhLVBla2thIEhlaWtraWxhIHdyb3RlOgo+PiBG aXhlZCBoYW5kbGluZyBvZiBzaW5nbGUgcGxhbmUgbW9kZXMgc28gdXNlZCBicHAgbmV2ZXIgZ2V0 IHRvCj4+IGJlIDAuCj4+Cj4+IFJlZHVjZSB2ZXJib3NlbmVzcyBpZiB0aGVyZSdzIG5vIGVycm9y cy4KPj4KPj4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcu Y2dpP2lkPTEwNjcwMQo+PiBTaWduZWQtb2ZmLWJ5OiBKdWhhLVBla2thIEhlaWtraWxhIDxqdWhh cGVra2EuaGVpa2tpbGFAZ21haWwuY29tPgo+PiAtLS0KPj4gICB0ZXN0cy9rbXNfYXZhaWxhYmxl X21vZGVzX2NyYy5jIHwgMTIzICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KPj4gLS0tLS0t LS0tLS0tCj4+ICAgMSBmaWxlIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDYyIGRlbGV0aW9u cygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2F2YWlsYWJsZV9tb2Rlc19jcmMuYwo+ PiBiL3Rlc3RzL2ttc19hdmFpbGFibGVfbW9kZXNfY3JjLmMKPj4gaW5kZXggN2ZmMzg1Zi4uNDMy YzA4NCAxMDA2NDQKPj4gLS0tIGEvdGVzdHMva21zX2F2YWlsYWJsZV9tb2Rlc19jcmMuYwo+PiAr KysgYi90ZXN0cy9rbXNfYXZhaWxhYmxlX21vZGVzX2NyYy5jCj4+IEBAIC01NCw2ICs1NCwxMiBA QCB0eXBlZGVmIHN0cnVjdCB7Cj4+ICAgCj4+ICAgCWlndF9jcmNfdCBjdXJzb3JfY3JjOwo+PiAg IAlpZ3RfY3JjX3QgZnVsbHNjcmVlbl9jcmM7Cj4+ICsKPj4gKwkvKgo+PiArCSAqIElmIHRoZXJl J3MgdW5rbm93biBmb3JtYXQgc2V0dGluZyB1cCBtb2RlIGNhbiBmYWlsCj4+ICsJICogd2l0aG91 dCBmYWlsaW5nIGVudGlyZSB0ZXN0Lgo+PiArCSAqLwo+PiArCWJvb2wgYWxsb3dfZmFpbDsKPj4g ICB9IGRhdGFfdDsKPj4gICAKPj4gICAKPj4gQEAgLTEyMCw3ICsxMjYsNiBAQCBzdGF0aWMgdm9p ZCBnZW5lcmF0ZV9jb21wYXJpc29uX2NyY19saXN0KGRhdGFfdAo+PiAqZGF0YSwgaWd0X291dHB1 dF90ICpvdXRwdXQpCj4+ICAgCj4+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCB7Cj4+ICAgCXVpbnQz Ml90CWZvdXJjYzsKPj4gLQljaGFyCQl6ZXJvcGFkZGluZzsKPj4gICAJZW51bQkJeyBCWVRFU19Q UF8xPTEsCj4+ICAgCQkJCUJZVEVTX1BQXzI9MiwKPj4gICAJCQkJQllURVNfUFBfND00LAo+PiBA QCAtMTI5LDEwICsxMzQsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7Cj4+ICAgCQkJCVNLSVA0 IH0gYnBwOwo+PiAgIAl1aW50MzJfdAl2YWx1ZTsKPj4gICB9IGZpbGxlcnNbXSA9IHsKPj4gLQl7 IERSTV9GT1JNQVRfQzgsIDAsIEJZVEVTX1BQXzEsIDB4ZmZ9LAo+PiAtCXsgRFJNX0ZPUk1BVF9S R0I1NjUsIDAsIEJZVEVTX1BQXzIsIDB4ZmZmZn0sCj4+IC0JeyBEUk1fRk9STUFUX1hSR0I4ODg4 LCAwLCBCWVRFU19QUF80LCAweGZmZmZmZmZmfSwKPj4gLQl7IERSTV9GT1JNQVRfWEJHUjg4ODgs IDAsIEJZVEVTX1BQXzQsIDB4ZmZmZmZmZmZ9LAo+PiArCXsgRFJNX0ZPUk1BVF9DOCwgQllURVNf UFBfMSwgMHhmZn0sCj4+ICsJeyBEUk1fRk9STUFUX1JHQjU2NSwgQllURVNfUFBfMiwgMHhmZmZm fSwKPj4gKwl7IERSTV9GT1JNQVRfWFJHQjg4ODgsIEJZVEVTX1BQXzQsIDB4ZmZmZmZmZmZ9LAo+ PiArCXsgRFJNX0ZPUk1BVF9YQkdSODg4OCwgQllURVNfUFBfNCwgMHhmZmZmZmZmZn0sCj4+ICAg Cj4+ICAgCS8qCj4+ICAgCSAqIGZvbGxvd2luZyB0d28gYXJlIHNraXBwZWQgYmVjYXVzZSBibGVu ZGluZyBzZWVtcyB0byB3b3JrCj4+IEBAIC0xNDAsMzEgKzE0NSwzMSBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHsKPj4gICAJICogVGVzdCBzdGlsbCBjcmVhdGVzIHRoZSBwbGFuZXMsIGp1c3QgZmls bGluZyBwbGFuZQo+PiAgIAkgKiBhbmQgZ2V0dGluZyBjcmMgaXMgc2tpcHBlZC4KPj4gICAJICov Cj4+IC0JeyBEUk1fRk9STUFUX0FSR0I4ODg4LCAwLCBTS0lQNCwgMHhmZmZmZmZmZn0sCj4+IC0J eyBEUk1fRk9STUFUX0FCR1I4ODg4LCAwLCBTS0lQNCwgMHgwMGZmZmZmZn0sCj4+ICsJeyBEUk1f Rk9STUFUX0FSR0I4ODg4LCBTS0lQNCwgMHhmZmZmZmZmZn0sCj4+ICsJeyBEUk1fRk9STUFUX0FC R1I4ODg4LCBTS0lQNCwgMHgwMGZmZmZmZn0sCj4+ICAgCj4+IC0JeyBEUk1fRk9STUFUX1hSR0Iy MTAxMDEwLCAwLCBCWVRFU19QUF80LCAweGZmZmZmZmZmfSwKPj4gLQl7IERSTV9GT1JNQVRfWEJH UjIxMDEwMTAsIDAsIEJZVEVTX1BQXzQsIDB4ZmZmZmZmZmZ9LAo+PiArCXsgRFJNX0ZPUk1BVF9Y UkdCMjEwMTAxMCwgQllURVNfUFBfNCwgMHhmZmZmZmZmZn0sCj4+ICsJeyBEUk1fRk9STUFUX1hC R1IyMTAxMDEwLCBCWVRFU19QUF80LCAweGZmZmZmZmZmfSwKPj4gICAKPj4gLQl7IERSTV9GT1JN QVRfWVVZViwgMCwgQllURVNfUFBfNCwgMHg4MGViODBlYn0sCj4+IC0JeyBEUk1fRk9STUFUX1lW WVUsIDAsIEJZVEVTX1BQXzQsIDB4ODBlYjgwZWJ9LAo+PiAtCXsgRFJNX0ZPUk1BVF9WWVVZLCAw LCBCWVRFU19QUF80LCAweGViODBlYjgwfSwKPj4gLQl7IERSTV9GT1JNQVRfVVlWWSwgMCwgQllU RVNfUFBfNCwgMHhlYjgwZWI4MH0sCj4+ICsJeyBEUk1fRk9STUFUX1lVWVYsIEJZVEVTX1BQXzQs IDB4ODBlYjgwZWJ9LAo+PiArCXsgRFJNX0ZPUk1BVF9ZVllVLCBCWVRFU19QUF80LCAweDgwZWI4 MGVifSwKPj4gKwl7IERSTV9GT1JNQVRfVllVWSwgQllURVNfUFBfNCwgMHhlYjgwZWI4MH0sCj4+ ICsJeyBEUk1fRk9STUFUX1VZVlksIEJZVEVTX1BQXzQsIDB4ZWI4MGViODB9LAo+PiAgIAo+PiAg IAkvKgo+PiAgIAkgKiAoc2VtaS0pcGxhbmFyIGZvcm1hdHMKPj4gICAJICovCj4+IC0JeyBEUk1f Rk9STUFUX05WMTIsIDAsIE5WMTIsIDB4ODBlYn0sCj4+ICsJeyBEUk1fRk9STUFUX05WMTIsIE5W MTIsIDB4ODBlYn0sCj4+ICAgI2lmZGVmIERSTV9GT1JNQVRfUDAxMAo+PiAtCXsgRFJNX0ZPUk1B VF9QMDEwLCAwLCBQMDEwLCAweDgwMDBlYjAwfSwKPj4gKwl7IERSTV9GT1JNQVRfUDAxMCwgUDAx MCwgMHg4MDAwZWIwMH0sCj4+ICAgI2VuZGlmCj4+ICAgI2lmZGVmIERSTV9GT1JNQVRfUDAxMgo+ PiAtCXsgRFJNX0ZPUk1BVF9QMDEyLCAwLCBQMDEwLCAweDgwMDBlYjAwfSwKPj4gKwl7IERSTV9G T1JNQVRfUDAxMiwgUDAxMCwgMHg4MDAwZWIwMH0sCj4+ICAgI2VuZGlmCj4+ICAgI2lmZGVmIERS TV9GT1JNQVRfUDAxNgo+PiAtCXsgRFJNX0ZPUk1BVF9QMDE2LCAwLCBQMDEwLCAweDgwMDBlYjAw fSwKPj4gKwl7IERSTV9GT1JNQVRfUDAxNiwgUDAxMCwgMHg4MDAwZWIwMH0sCj4gCj4gRG9lc24n dCB0aGUgbGlicmFyeSBpbXBsZW1lbnQgdGhpcyBzdHVmZiBhbHJlYWR5PyBJIHNlZSBzaW1pbGFy IGNvZGUgaW4KPiBjcmVhdGVfYm9fZm9yX2ZiKCkuIEV2ZW4gaWYgbmV3IGZvcm1hdHMgYXJlIG5l ZWRlZCwgSSB0aGluayBpdCdzIGJlc3QKPiB0byBwdXQgdGhhdCBpbiB0aGUgbGliL2lndF9mYi4K ClRoZXNlIGRheXMgaWd0X2ZiIGRvZXMgaW1wbGVtZW50IG1vc3Qgb2YgdGhlc2UgbW9kZXMgSSBh Z3JlZS4gVGhpcyB0ZXN0IAp3YXMgd3JpdHRlbiBiYWNrIGluIHRoZSBkYXkgd2hlbiBpZ3Qgc3Vw cG9ydCB3YXMgbGltaXRlZCB0byBSR0I4ODggYW5kIApSR0I1NjUuIElkZWEgb2YgdGhpcyB0ZXN0 IHdhcyBqdXN0IHRvIHRyeSBhbGwgZmIgZm9ybWF0cyBrZXJuZWwgCmFkdmVydGlzZWQgY291bGQg YWN0dWFsbHkgaW5pdGlhbGl6ZS4KCklmIHlvdSBmZWVsIHRoaXMgdGVzdCBpcyBvYnNvbGV0ZSB5 b3UgY291bGQgYXNrIGZvciB2b3RlcyB0byBnZXQgaXQgCnJlbW92ZWQsIEkgdHJpZWQgdGhhdCBi ZWZvcmUgeG1hcyBidXQgbm9ib2R5IHdhcyBpbnRlcmVzdGVkIGluIHJlbW92aW5nIAp0aGlzIHNv IEkgc3RhcnRlZCB0byBmaXggcHJvYmxlbXMgc2VlbiBpbiB0aGlzIHRlc3QuCgpJbiBhbnkgY2Fz ZSB0aGVzZSBkYXlzIG9uZSBjYW5ub3QgaW5jbHVkZSBuZXcgZmIgZm9ybWF0cyBpbnRvIGk5MTUg CndpdGhvdXQgSUdUIHN1cHBvcnQgc28ga21zX3BsYW5lIHRlc3QgZG9lcyB3aGF0IHRoaXMgdGVz dCBkb2VzLgoKPiAKPiAKPj4gICAjZW5kaWYKPj4gLQl7IDAsIDAsIDAsIDAgfQo+PiArCXsgMCwg U0tJUDQsIDAgfQo+PiAgIH07Cj4+ICAgCj4+ICAgLyoKPj4gQEAgLTIzMywxMyArMjM4LDEwIEBA IHN0YXRpYyBib29sIGZpbGxfaW5fZmIoZGF0YV90ICpkYXRhLAo+PiBpZ3Rfb3V0cHV0X3QgKm91 dHB1dCwgaWd0X3BsYW5lX3QgKnBsYW5lLAo+PiAgIAkJCXdyaXRlc2l6ZSA9IGRhdGEtPnNpemU7 Cj4+ICAgCQkJYnJlYWs7Cj4+ICAgCQl9Cj4+IC0JCWlndF9pbmZvKCJGb3JtYXQgJXMgQ1JDIGNv bXBhcmlzb24gc2tpcHBlZCBieQo+PiBkZXNpZ24uXG4iLAo+PiAtCQkJIChjaGFyKikmZmlsbGVy c1tpXS5mb3VyY2MpOwo+PiAtCj4+IC0JCXJldHVybiBmYWxzZTsKPj4gKwkvKiBGYWxsIHRocm91 Z2ggKi8KPj4gICAJZGVmYXVsdDoKPj4gLQkJaWd0X2luZm8oIlVuc3VwcG9ydGVkIG1vZGUgZm9y IHRlc3QgJXNcbiIsCj4+IC0JCQkgKGNoYXIqKSZmaWxsZXJzW2ldLmZvdXJjYyk7Cj4+ICsJCWln dF9pbmZvKCJVbnN1cHBvcnRlZCBtb2RlIGZvciB0ZXN0aW5nIENSQyAlLjRzXG4iLAo+PiArCQkJ IChjaGFyICopJmZvcm1hdCk7Cj4+ICAgCQlyZXR1cm4gZmFsc2U7Cj4+ICAgCX0KPj4gICAKPj4g QEAgLTI2MCw2ICsyNjIsOCBAQCBzdGF0aWMgYm9vbCBzZXR1cF9mYihkYXRhX3QgKmRhdGEsIGln dF9vdXRwdXRfdAo+PiAqb3V0cHV0LCBpZ3RfcGxhbmVfdCAqcGxhbmUsCj4+ICAgCWludCBicHAg PSAwOwo+PiAgIAlpbnQgaTsKPj4gICAKPj4gKwlkYXRhLT5hbGxvd19mYWlsID0gZmFsc2U7Cj4+ ICsKPj4gICAJbW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KTsKPj4gICAJaWYgKHBs YW5lLT50eXBlICE9IERSTV9QTEFORV9UWVBFX0NVUlNPUikgewo+PiAgIAkJdyA9IG1vZGUtPmhk aXNwbGF5Owo+PiBAQCAtMjg4LDYgKzI5Miw4IEBAIHN0YXRpYyBib29sIHNldHVwX2ZiKGRhdGFf dCAqZGF0YSwgaWd0X291dHB1dF90Cj4+ICpvdXRwdXQsIGlndF9wbGFuZV90ICpwbGFuZSwKPj4g ICAJCWJyZWFrOwo+PiAgIAo+PiAgIAljYXNlIFNLSVA0Ogo+PiArCQlkYXRhLT5hbGxvd19mYWls ID0gdHJ1ZTsKPj4gKwkJLyogZmFsbCB0aHJvdWdoICovCj4gV291bGRuJ3QgdGhpcyBwcmV2ZW50 IENSQyB0ZXN0aW5nIGZvcgo+IChmaWxsZXJzW2ldLmZvdXJjYyA9PSBEUk1fRk9STUFUX0FSR0I4 ODg4ICYmIHBsYW5lLT50eXBlID09Cj4gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKSA/CgpUaGVyZSB3 YXMgbGF0ZXIgcGF0Y2ggd2hpY2ggZml4ZWQgdGhpcy4gVGhpcyB2ZXJzaW9uIGRpZG4ndCBwYXNz IENJIHRlc3QgCmJlY2F1c2UgSSBoYWQgZm9yZ290dGVuICJpZ3RfZGlzcGxheV9yZXNldCgmZGF0 YS0+ZGlzcGxheSkiIGNhbGwgYml0IApiZWxvdywgaXQga2lsbGVkIHRlc3Qgb24gS0JMLgoKPiAK PiAKPj4gICAJY2FzZSBCWVRFU19QUF80Ogo+PiAgIAkJYnBwID0gMzI7Cj4+ICAgCQlicmVhazsK Pj4gQEAgLTMyNCw3ICszMzAsNyBAQCBzdGF0aWMgYm9vbCBzZXR1cF9mYihkYXRhX3QgKmRhdGEs IGlndF9vdXRwdXRfdAo+PiAqb3V0cHV0LCBpZ3RfcGxhbmVfdCAqcGxhbmUsCj4+ICAgCj4+ICAg CWlmKHJldCA8IDApIHsKPj4gICAJCWlndF9pbmZvKCJDcmVhdGluZyBmYiBmb3IgZm9ybWF0ICVz IGZhaWxlZCwgcmV0dXJuIGNvZGUKPj4gJWRcbiIsCj4+IC0JCQkgKGNoYXIqKSZkYXRhLT5mb3Jt YXQubmFtZSwgcmV0KTsKPj4gKwkJCSAoY2hhciAqKSZkYXRhLT5mb3JtYXQubmFtZSwgcmV0KTsK Pj4gICAKPj4gICAJCXJldHVybiBmYWxzZTsKPj4gICAJfQo+PiBAQCAtMzg1LDEzICszOTEsMTQg QEAgc3RhdGljIGJvb2wgcHJlcGFyZV9jcnRjKGRhdGFfdCAqZGF0YSwKPj4gaWd0X291dHB1dF90 ICpvdXRwdXQsCj4+ICAgCj4+ICAgCj4+ICAgc3RhdGljIGludAo+PiAtdGVzdF9vbmVfbW9kZShk YXRhX3QqIGRhdGEsIGlndF9vdXRwdXRfdCAqb3V0cHV0LCBpZ3RfcGxhbmVfdCoKPiBTaWRlIG5v dGUgbm90IHJlbGF0ZWQgdG8gdGhlIGNoYW5nZXMgeW91IGFyZSBtYWtpbmcsICJtb2RlIiBpcyBx dWl0ZQo+IG1pc2xlYWRpbmcuIFNob3VsZG4ndCB0aGUgdGVzdCBiZSBjYWxsZWQga21zX3BpeGVs X2Zvcm1hdHNfY3JjIG9yCj4gc29tZXRoaW5nPyBJIHRob3VnaHQgdGhpcyB3YXMgYWJvdXQgdGVz dGluZyBkaWZmZXJlbnQgY29ubmVjdG9yIG1vZGVzLgo+IAo+IAo+PiBwbGFuZSwKPj4gLQkgICAg ICBpbnQgbW9kZSkKPj4gK3Rlc3Rfb25lX21vZGUoZGF0YV90ICpkYXRhLCBpZ3Rfb3V0cHV0X3Qg Km91dHB1dCwgaWd0X3BsYW5lX3QKPj4gKnBsYW5lLAo+PiArCSAgICAgIGVudW0gcGlwZSBwaXBl LCBpbnQgbW9kZSkKPj4gICB7Cj4+ICAgCWlndF9jcmNfdCBjdXJyZW50X2NyYzsKPj4gICAJc2ln bmVkIHJWYWwgPSAwOwo+PiAgIAlib29sIGRvX2NyYzsKPj4gLQljaGFyKiBjcmNjb21wYXJlWzJd Owo+PiArCWNoYXIgKmNyY2NvbXBhcmVbMl07Cj4+ICsJaWd0X2NyY190ICpwX2NyYzsKPj4gICAK Pj4gICAJaWYgKHByZXBhcmVfY3J0YyhkYXRhLCBvdXRwdXQsIHBsYW5lLCBtb2RlKSl7Cj4+ICAg CQkvKgo+PiBAQCAtNDA5LDMyICs0MTYsMzIgQEAgdGVzdF9vbmVfbW9kZShkYXRhX3QqIGRhdGEs IGlndF9vdXRwdXRfdAo+PiAqb3V0cHV0LCBpZ3RfcGxhbmVfdCogcGxhbmUsCj4+ICAgCQlpZiAo ZG9fY3JjKSB7Cj4+ICAgCQkJaWd0X3BpcGVfY3JjX2dldF9jdXJyZW50KGRhdGEtPmdmeF9mZCwg ZGF0YS0KPj4+IHBpcGVfY3JjLCAmY3VycmVudF9jcmMpOwo+PiAgIAo+PiAtCQkJaWYgKHBsYW5l LT50eXBlICE9IERSTV9QTEFORV9UWVBFX0NVUlNPUikgewo+PiAtCQkJCWlmICghaWd0X2NoZWNr X2NyY19lcXVhbCgmY3VycmVudF9jcmMsCj4+IC0JCQkJCSZkYXRhLT5mdWxsc2NyZWVuX2NyYykp IHsKPj4gLQkJCQkJY3JjY29tcGFyZVswXSA9Cj4+IGlndF9jcmNfdG9fc3RyaW5nKCZjdXJyZW50 X2NyYyk7Cj4+IC0JCQkJCWNyY2NvbXBhcmVbMV0gPQo+PiBpZ3RfY3JjX3RvX3N0cmluZygmZGF0 YS0+ZnVsbHNjcmVlbl9jcmMpOwo+PiAtCQkJCQlpZ3Rfd2FybigiY3JjIG1pc21hdGNoLiB0YXJn ZXQKPj4gJS44cywgcmVzdWx0ICUuOHMuXG4iLCBjcmNjb21wYXJlWzBdLCBjcmNjb21wYXJlWzFd KTsKPj4gLQkJCQkJZnJlZShjcmNjb21wYXJlWzBdKTsKPj4gLQkJCQkJZnJlZShjcmNjb21wYXJl WzFdKTsKPj4gLQkJCQkJclZhbCsrOwo+PiAtCQkJCX0KPj4gLQkJCX0gZWxzZSB7Cj4+IC0JCQkJ aWYgKCFpZ3RfY2hlY2tfY3JjX2VxdWFsKCZjdXJyZW50X2NyYywKPj4gLQkJCQkJJmRhdGEtPmN1 cnNvcl9jcmMpKSB7Cj4+IC0JCQkJCWNyY2NvbXBhcmVbMF0gPQo+PiBpZ3RfY3JjX3RvX3N0cmlu ZygmY3VycmVudF9jcmMpOwo+PiAtCQkJCQljcmNjb21wYXJlWzFdID0KPj4gaWd0X2NyY190b19z dHJpbmcoJmRhdGEtPmN1cnNvcl9jcmMpOwo+PiAtCQkJCQlpZ3Rfd2FybigiY3JjIG1pc21hdGNo LiB0YXJnZXQKPj4gJS44cywgcmVzdWx0ICUuOHMuXG4iLCBjcmNjb21wYXJlWzBdLCBjcmNjb21w YXJlWzFdKTsKPj4gLQkJCQkJZnJlZShjcmNjb21wYXJlWzBdKTsKPj4gLQkJCQkJZnJlZShjcmNj b21wYXJlWzFdKTsKPj4gKwkJCWlmIChwbGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQRV9DVVJT T1IpCj4+ICsJCQkJcF9jcmMgPSAmZGF0YS0+ZnVsbHNjcmVlbl9jcmM7Cj4+ICsJCQllbHNlCj4+ ICsJCQkJcF9jcmMgPSAmZGF0YS0+Y3Vyc29yX2NyYzsKPj4gKwo+PiArCQkJaWYgKCFpZ3RfY2hl Y2tfY3JjX2VxdWFsKCZjdXJyZW50X2NyYywgcF9jcmMpKQo+PiB7Cj4+ICsJCQkJY3JjY29tcGFy ZVswXSA9Cj4+IGlndF9jcmNfdG9fc3RyaW5nKCZjdXJyZW50X2NyYyk7Cj4+ICsJCQkJY3JjY29t cGFyZVsxXSA9Cj4+IGlndF9jcmNfdG9fc3RyaW5nKHBfY3JjKTsKPj4gKwkJCQlpZ3Rfd2Fybigi Y3JjIG1pc21hdGNoIG9uICVzIFBJUEUgJXMKPj4gcGxhbmUgJWQgZm9ybWF0ICUuNHMuIHRhcmdl dCAlLjhzLCByZXN1bHQgJS44cy5cbiIsCj4+ICsJCQkJCSBpZ3Rfb3V0cHV0X25hbWUob3V0cHV0 KSwKPj4gKwkJCQkJIGttc3Rlc3RfcGlwZV9uYW1lKHBpcGUpLAo+PiArCQkJCQkgcGxhbmUtPmlu ZGV4LAo+PiArCQkJCQkgKGNoYXIgKikmZGF0YS0+Zm9ybWF0Lm5hbWUsCj4+ICsJCQkJCSBjcmNj b21wYXJlWzBdLAo+PiArCQkJCQkgY3JjY29tcGFyZVsxXSk7Cj4gVGhpcyBpcyB0aGUgb25seSBo dW5rIEkgd2FzIGhvcGluZyB5b3Ugd291bGQgYmUgYWJsZSB0byBzcGxpdCBpbnRvIGEKPiBzZXBh cmF0ZSBwYXRjaC4KPiAKPj4gKwo+PiArCQkJCWZyZWUoY3JjY29tcGFyZVswXSk7Cj4+ICsJCQkJ ZnJlZShjcmNjb21wYXJlWzFdKTsKPj4gKwkJCQlpZiAoIWRhdGEtPmFsbG93X2ZhaWwpCj4gSXMg dGhlcmUgYSBwb2ludCBvZiByZWFkaW5nIENSQ3MgaWYgZmFpbHVyZXMgYXJlIGFsbG93ZWQ/CgpJ dCBpcyBtYXJrZWQgYXMgbW9kZSB3aGljaCBpcyBub3QgbGlzdGVkIGluIHRoaXMgdGVzdCBidXQg aW5pdGlhbGl6YXRpb24gCndvcmtlZCBzbyBkZWZhdWx0IHBhdGhzIGFyZSBmb2xsb3dlZC4gSXQg d2lsbCBwcm9kdWNlIHdhcm5pbmcgd2hpY2ggSSAKdGhpbmsgaXMgdXNlZnVsIGZvciBpbmRpY2F0 aW5nIHRoaXMgdGVzdCBuZWVkIHVwZGF0aW5nIGJ1dCB3aWxsIG5vdCAKcHJvZHVjZSBmYWlsdXJl IHRvIG1hcmsgbmV3bHkgYWRkZWQgZmVhdHVyZXMgY2F1c2VkIHByb2JsZW1zLgoKPiAKPj4gICAJ CQkJCXJWYWwrKzsKPj4gLQkJCQl9Cj4+ICAgCQkJfQo+PiAgIAkJfQo+PiAgIAkJcmVtb3ZlX2Zi KGRhdGEsIG91dHB1dCwgcGxhbmUpOwo+PiAgIAkJcmV0dXJuIHJWYWw7Cj4+ICAgCX0KPj4gLQly ZXR1cm4gMTsKPj4gKwlyZXR1cm4gZGF0YS0+YWxsb3dfZmFpbCA/IDAgOiAxOwo+PiAgIH0KPj4g ICAKPj4gICAKPj4gQEAgLTQ0NSwxMSArNDUyLDExIEBAIHRlc3RfYXZhaWxhYmxlX21vZGVzKGRh dGFfdCogZGF0YSkKPj4gICAJaWd0X3BsYW5lX3QgKnBsYW5lOwo+PiAgIAlpbnQgbW9kZWluZGV4 Owo+PiAgIAllbnVtIHBpcGUgcGlwZTsKPj4gLQlpbnQgaW52YWxpZHMgPSAwOwo+PiArCWludCBm YWlsZWRfY3JjcyA9IDA7Cj4+ICAgCWRybU1vZGVQbGFuZSAqbW9kZVBsYW5lOwo+PiAtCWNoYXIg cGxhbmV0eXBlWzNdWzhdID0geyJPVkVSTEFZXDAiLCAiUFJJTUFSWVwwIiwgIkNVUlNPUlwwIiB9 Owo+PiAgIAo+PiAgIAlmb3JfZWFjaF9waXBlX3dpdGhfdmFsaWRfb3V0cHV0KCZkYXRhLT5kaXNw bGF5LCBwaXBlLCBvdXRwdXQpIHsKPj4gKwkJaWd0X2Rpc3BsYXlfcmVzZXQoJmRhdGEtPmRpc3Bs YXkpOwo+PiAgIAkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUpOwo+PiAgIAkJaWd0 X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgZGF0YS0+Y29tbWl0KTsKPj4gICAKPj4g QEAgLTQ3MiwxNyArNDc5LDkgQEAgdGVzdF9hdmFpbGFibGVfbW9kZXMoZGF0YV90KiBkYXRhKQo+ PiAgIAkJCSAgICAgbW9kZWluZGV4KyspIHsKPj4gICAJCQkJZGF0YS0+Zm9ybWF0LmR3b3JkID0g bW9kZVBsYW5lLQo+Pj4gZm9ybWF0c1ttb2RlaW5kZXhdOwo+PiAgIAo+PiAtCQkJCWlndF9pbmZv KCJUZXN0aW5nIGNvbm5lY3RvciAlcyB1c2luZwo+PiBwaXBlICVzIiBcCj4+IC0JCQkJCSAiIHBs YW5lIGluZGV4ICVkIHR5cGUgJXMgbW9kZQo+PiAlc1xuIiwKPj4gLQkJCQkJIGlndF9vdXRwdXRf bmFtZShvdXRwdXQpLAo+PiAtCQkJCQkga21zdGVzdF9waXBlX25hbWUocGlwZSksCj4+IC0JCQkJ CSBwbGFuZS0+aW5kZXgsCj4+IC0JCQkJCSBwbGFuZXR5cGVbcGxhbmUtPnR5cGVdLAo+PiAtCQkJ CQkgKGNoYXIqKSZkYXRhLT5mb3JtYXQubmFtZSk7Cj4+IC0KPj4gLQkJCQlpbnZhbGlkcyArPSB0 ZXN0X29uZV9tb2RlKGRhdGEsIG91dHB1dCwKPj4gLQkJCQkJCQkgIHBsYW5lLAo+PiAtCQkJCQkJ CSAgbW9kZVBsYW5lLQo+Pj4gZm9ybWF0c1ttb2RlaW5kZXhdKTsKPj4gKwkJCQlmYWlsZWRfY3Jj cyArPSB0ZXN0X29uZV9tb2RlKGRhdGEsCj4+IG91dHB1dCwKPj4gKwkJCQkJCQkgICAgIHBsYW5l LAo+PiBwaXBlLAo+PiArCQkJCQkJCSAgICAgbW9kZVBsYW5lLQo+Pj4gZm9ybWF0c1ttb2RlaW5k ZXhdKTsKPj4gICAJCQl9Cj4+ICAgCQkJZHJtTW9kZUZyZWVQbGFuZShtb2RlUGxhbmUpOwo+PiAg IAkJfQo+PiBAQCAtNDkxLDcgKzQ5MCw3IEBAIHRlc3RfYXZhaWxhYmxlX21vZGVzKGRhdGFfdCog ZGF0YSkKPj4gICAJCWlndF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXksIGRhdGEtPmNv bW1pdCk7Cj4+ICAgCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgUElQRV9OT05FKTsKPj4g ICAJfQo+PiAtCWlndF9hc3NlcnQoaW52YWxpZHMgPT0gMCk7Cj4+ICsJaWd0X2Fzc2VydF9mKChm YWlsZWRfY3JjcyA9PSAwKSwgIlRoZXJlIHdhcyAlZCBtb2RlcyB3aXRoCj4+IGludmFsaWQgY3Jj XG4iLCBmYWlsZWRfY3Jjcyk7Cj4+ICAgfQo+PiAgIAo+PiAgIAo+IAoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0 LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==