From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 20D88898C0 for ; Thu, 11 Apr 2019 15:36:16 +0000 (UTC) References: <1554476159-25312-1-git-send-email-juhapekka.heikkila@gmail.com> <6525db62bc81dd968bb17da7106354545d3429af.camel@intel.com> <1da26695-4dbb-066d-614a-2df82f7c6140@gmail.com> <66280075669281f749271e533231685aaaf5ca4f.camel@intel.com> From: Juha-Pekka Heikkila Message-ID: <62813fec-a67b-35fb-b103-c4ac90c842a9@gmail.com> Date: Thu, 11 Apr 2019 18:36:12 +0300 MIME-Version: 1.0 In-Reply-To: <66280075669281f749271e533231685aaaf5ca4f.camel@intel.com> Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t] tests/kms_plane_multiple: before going testing check how many planes are allowed 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: "Souza, Jose" , "igt-dev@lists.freedesktop.org" Cc: "Lisovskiy, Stanislav" List-ID: T24gMTAuNC4yMDE5IDIzLjA2LCBTb3V6YSwgSm9zZSB3cm90ZToKPiBPbiBUdWUsIDIwMTktMDQt MDkgYXQgMTQ6NDcgKzAzMDAsIEp1aGEtUGVra2EgSGVpa2tpbGEgd3JvdGU6Cj4+IE9uIDkuNC4y MDE5IDQuMjksIFNvdXphLCBKb3NlIHdyb3RlOgo+Pj4gT24gRnJpLCAyMDE5LTA0LTA1IGF0IDE3 OjU1ICswMzAwLCBKdWhhLVBla2thIEhlaWtraWxhIHdyb3RlOgo+Pj4+IGJlZm9yZSBzdGFydCB0 ZXN0aW5nIHRyeSBvdXQgaG93IG1hbnkgcGxhbmVzIGtlcm5lbCB3aWxsCj4+Pj4gYWxsb3cgc2lt dWx0YW5lb3VzbHkgdG8gYmUgdXNlZC4KPj4+Pgo+Pj4+IHYyIChKb3NlIFNvdXphLCBEYW5pZWwg VmV0dGVyKTogRml4IHJlc291cmNlIGxlYWtzLiBSYW5kb21pemUKPj4+PiB1c2VkIHBsYW5lcy4K Pj4+Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6IEp1aGEtUGVra2EgSGVpa2tpbGEgPGp1aGFwZWtrYS5o ZWlra2lsYUBnbWFpbC5jb20+Cj4+Pj4gLS0tCj4+Pj4gICAgdGVzdHMva21zX3BsYW5lX211bHRp cGxlLmMgfCA4OAo+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0KPj4+PiAgICAxIGZpbGUgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRp b25zKC0pCj4+Pj4KPj4+PiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX3BsYW5lX211bHRpcGxlLmMK Pj4+PiBiL3Rlc3RzL2ttc19wbGFuZV9tdWx0aXBsZS5jCj4+Pj4gaW5kZXggYmZhZWVkZS4uZjI3 MDdkYyAxMDA2NDQKPj4+PiAtLS0gYS90ZXN0cy9rbXNfcGxhbmVfbXVsdGlwbGUuYwo+Pj4+ICsr KyBiL3Rlc3RzL2ttc19wbGFuZV9tdWx0aXBsZS5jCj4+Pj4gQEAgLTgwLDE2ICs4MCw2IEBAIHN0 YXRpYyB2b2lkIHRlc3RfZmluaShkYXRhX3QgKmRhdGEsCj4+Pj4gaWd0X291dHB1dF90Cj4+Pj4g Km91dHB1dCwgaW50IG5fcGxhbmVzKQo+Pj4+ICAgIHsKPj4+PiAgICAJaWd0X3BpcGVfY3JjX3N0 b3AoZGF0YS0+cGlwZV9jcmMpOwo+Pj4+ICAgIAo+Pj4+IC0JZm9yIChpbnQgaSA9IDA7IGkgPCBu X3BsYW5lczsgaSsrKSB7Cj4+Pj4gLQkJaWd0X3BsYW5lX3QgKnBsYW5lID0gZGF0YS0+cGxhbmVb aV07Cj4+Pj4gLQkJaWYgKCFwbGFuZSkKPj4+PiAtCQkJY29udGludWU7Cj4+Pj4gLQkJaWYgKHBs YW5lLT50eXBlID09IERSTV9QTEFORV9UWVBFX1BSSU1BUlkpCj4+Pj4gLQkJCWNvbnRpbnVlOwo+ Pj4+IC0JCWlndF9wbGFuZV9zZXRfZmIocGxhbmUsIE5VTEwpOwo+Pj4+IC0JCWRhdGEtPnBsYW5l W2ldID0gTlVMTDsKPj4+PiAtCX0KPj4+PiAtCj4+Pj4gICAgCS8qIHJlc2V0IHRoZSBjb25zdHJh aW50IG9uIHRoZSBwaXBlICovCj4+Pj4gICAgCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQ SVBFX0FOWSk7Cj4+Pj4gICAgCj4+Pj4gQEAgLTk5LDcgKzg5LDggQEAgc3RhdGljIHZvaWQgdGVz dF9maW5pKGRhdGFfdCAqZGF0YSwKPj4+PiBpZ3Rfb3V0cHV0X3QKPj4+PiAqb3V0cHV0LCBpbnQg bl9wbGFuZXMpCj4+Pj4gICAgCWZyZWUoZGF0YS0+cGxhbmUpOwo+Pj4+ICAgIAlkYXRhLT5wbGFu ZSA9IE5VTEw7Cj4+Pj4gICAgCj4+Pj4gLQlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgZGF0 YS0+ZmIpOwo+Pj4+ICsJZnJlZShkYXRhLT5mYik7Cj4+Pj4gKwlkYXRhLT5mYiA9IE5VTEw7Cj4+ Pj4gICAgCj4+Pj4gICAgCWlndF9kaXNwbGF5X3Jlc2V0KCZkYXRhLT5kaXNwbGF5KTsKPj4+PiAg ICB9Cj4+Pj4gQEAgLTE5NSw2ICsxODYsNyBAQCBwcmVwYXJlX3BsYW5lcyhkYXRhX3QgKmRhdGEs IGVudW0gcGlwZQo+Pj4+IHBpcGVfaWQsCj4+Pj4gY29sb3JfdCAqY29sb3IsCj4+Pj4gICAgCWlu dCAqeTsKPj4+PiAgICAJaW50ICpzaXplOwo+Pj4+ICAgIAlpbnQgaTsKPj4+PiArCWludCogc3Vm ZmxlOwo+Pj4+ICAgIAo+Pj4+ICAgIAlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZV9p ZCk7Cj4+Pj4gICAgCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKG91dHB1dCwK Pj4+PiBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKPj4+PiBAQCAtMjA2LDYgKzE5OCwzNCBAQCBw cmVwYXJlX3BsYW5lcyhkYXRhX3QgKmRhdGEsIGVudW0gcGlwZQo+Pj4+IHBpcGVfaWQsCj4+Pj4g Y29sb3JfdCAqY29sb3IsCj4+Pj4gICAgCWlndF9hc3NlcnRfZih5LCAiRmFpbGVkIHRvIGFsbG9j YXRlICVsZCBieXRlcyBmb3IKPj4+PiB2YXJpYWJsZQo+Pj4+IHlcbiIsIChsb25nIGludCkgKHBp cGUtPm5fcGxhbmVzICogc2l6ZW9mKCp5KSkpOwo+Pj4+ICAgIAlzaXplID0gbWFsbG9jKHBpcGUt Pm5fcGxhbmVzICogc2l6ZW9mKCpzaXplKSk7Cj4+Pj4gICAgCWlndF9hc3NlcnRfZihzaXplLCAi RmFpbGVkIHRvIGFsbG9jYXRlICVsZCBieXRlcyBmb3IKPj4+PiB2YXJpYWJsZQo+Pj4+IHNpemVc biIsIChsb25nIGludCkgKHBpcGUtPm5fcGxhbmVzICogc2l6ZW9mKCpzaXplKSkpOwo+Pj4+ICsJ c3VmZmxlID0gbWFsbG9jKHBpcGUtPm5fcGxhbmVzICogc2l6ZW9mKCpzdWZmbGUpKTsKPj4+PiAr CWlndF9hc3NlcnRfZihzdWZmbGUsICJGYWlsZWQgdG8gYWxsb2NhdGUgJWxkIGJ5dGVzIGZvciB2 YXJpYWJsZQo+Pj4+IHNpemVcbiIsIChsb25nIGludCkgKHBpcGUtPm5fcGxhbmVzICogc2l6ZW9m KCpzdWZmbGUpKSk7Cj4+Pj4gKwo+Pj4+ICsJZm9yIChpID0gMDsgaSA8IHBpcGUtPm5fcGxhbmVz OyBpKyspCj4+Pj4gKwkJc3VmZmxlW2ldID0gaTsKPj4+PiArCj4+Pj4gKwkvKgo+Pj4+ICsJICog c3VmZmxlIHRhYmxlIGZvciBwbGFuZXMuIHVzaW5nIHJhbmQoKSBzaG91bGQga2VlcCBpdAo+Pj4+ ICsJICogJ3JhbmRvbWl6ZWQgaW4gZXhwZWN0ZWQgd2F5Jwo+Pj4+ICsJICovCj4+Pj4gKwlmb3Ig KGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKPj4+Cj4+PiBOb3QgYmVhdXRpZnVsIGF0IGFsbAo+Pj4K Pj4+PiArCQlpbnQgbiwgbTsKPj4+PiArCQlpbnQgYSwgYjsKPj4+PiArCj4+Pj4gKwkJbiA9IHJh bmQoKSAlIChwaXBlLT5uX3BsYW5lcy0xKTsKPj4+PiArCQltID0gcmFuZCgpICUgKHBpcGUtPm5f cGxhbmVzLTEpOwo+Pj4+ICsKPj4+PiArCQkvKgo+Pj4+ICsJCSAqIGtlZXAgcHJpbWFyeSBwbGFu ZSBhdCBpdHMgcGxhY2UgZm9yIHRlc3QncyBzYWtlLgo+Pj4+ICsJCSAqLwo+Pj4+ICsJCWlmKG4g PT0gcHJpbWFyeS0+aW5kZXggfHwgbSA9PSBwcmltYXJ5LT5pbmRleCkKPj4+PiArCQkJY29udGlu dWU7Cj4+Pj4gKwo+Pj4+ICsJCWEgPSBzdWZmbGVbbl07Cj4+Pj4gKwkJYiA9IHN1ZmZsZVttXTsK Pj4+PiArCQlzdWZmbGVbbl0gPSBiOwo+Pj4+ICsJCXN1ZmZsZVttXSA9IGE7Cj4+Pj4gKwl9Cj4+ Pj4gICAgCj4+Pj4gICAgCW1vZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCk7Cj4+Pj4g ICAgCj4+Pj4gQEAgLTIxMyw3ICsyMzMsMTEgQEAgcHJlcGFyZV9wbGFuZXMoZGF0YV90ICpkYXRh LCBlbnVtIHBpcGUKPj4+PiBwaXBlX2lkLAo+Pj4+IGNvbG9yX3QgKmNvbG9yLAo+Pj4+ICAgIAl4 W3ByaW1hcnktPmluZGV4XSA9IDA7Cj4+Pj4gICAgCXlbcHJpbWFyeS0+aW5kZXhdID0gMDsKPj4+ PiAgICAJZm9yIChpID0gMDsgaSA8IG1heF9wbGFuZXM7IGkrKykgewo+Pj4+IC0JCWlndF9wbGFu ZV90ICpwbGFuZSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lKG91dHB1dCwgaSk7Cj4+Pj4gKwkJLyoK Pj4+PiArCQkgKiBIZXJlIGlzIG1hZGUgYXNzdW1wdGlvbiBwcmltYXJ5IHBsYW5lIHdpbGwgaGF2 ZQo+Pj4+ICsJCSAqIGluZGV4IHplcm8uCj4+Pj4gKwkJICovCj4+Pj4gKwkJaWd0X3BsYW5lX3Qg KnBsYW5lID0gaWd0X291dHB1dF9nZXRfcGxhbmUob3V0cHV0LAo+Pj4+IHN1ZmZsZVtpXSk7Cj4+ Pj4gICAgCQl1aW50MzJfdCBwbGFuZV9mb3JtYXQ7Cj4+Pj4gICAgCQl1aW50NjRfdCBwbGFuZV90 aWxpbmc7Cj4+Pj4gICAgCj4+Pj4gQEAgLTI1MSw2ICsyNzUsMTAgQEAgcHJlcGFyZV9wbGFuZXMo ZGF0YV90ICpkYXRhLCBlbnVtIHBpcGUKPj4+PiBwaXBlX2lkLAo+Pj4+IGNvbG9yX3QgKmNvbG9y LAo+Pj4+ICAgIAljcmVhdGVfZmJfZm9yX21vZGVfcG9zaXRpb24oZGF0YSwgb3V0cHV0LCBtb2Rl LCBjb2xvciwKPj4+PiB4LCB5LAo+Pj4+ICAgIAkJCQkgICAgc2l6ZSwgc2l6ZSwgdGlsaW5nLAo+ Pj4+IG1heF9wbGFuZXMpOwo+Pj4+ICAgIAlpZ3RfcGxhbmVfc2V0X2ZiKGRhdGEtPnBsYW5lW3By aW1hcnktPmluZGV4XSwgJmRhdGEtCj4+Pj4+IGZiW3ByaW1hcnktPmluZGV4XSk7Cj4+Pj4gKwlm cmVlKCh2b2lkKil4KTsKPj4+PiArCWZyZWUoKHZvaWQqKXkpOwo+Pj4+ICsJZnJlZSgodm9pZCop c2l6ZSk7Cj4+Pj4gKwlmcmVlKCh2b2lkKilzdWZmbGUpOwo+Pj4+ICAgIH0KPj4+PiAgICAKPj4+ PiAgICBzdGF0aWMgdm9pZAo+Pj4+IEBAIC0yNjAsNyArMjg4LDkgQEAgdGVzdF9wbGFuZV9wb3Np dGlvbl93aXRoX291dHB1dChkYXRhX3QgKmRhdGEsCj4+Pj4gZW51bSBwaXBlIHBpcGUsCj4+Pj4g ICAgewo+Pj4+ICAgIAljb2xvcl90IGJsdWUgID0geyAwLjBmLCAwLjBmLCAxLjBmIH07Cj4+Pj4g ICAgCWlndF9jcmNfdCBjcmM7Cj4+Pj4gKwlpZ3RfcGxhbmVfdCAqcGxhbmU7Cj4+Pj4gICAgCWlu dCBpOwo+Pj4+ICsJaW50IGVyciwgYyA9IDA7Cj4+Pj4gICAgCWludCBpdGVyYXRpb25zID0gb3B0 Lml0ZXJhdGlvbnMgPCAxID8gMSA6Cj4+Pj4gb3B0Lml0ZXJhdGlvbnM7Cj4+Pj4gICAgCWJvb2wg bG9vcF9mb3JldmVyOwo+Pj4+ICAgIAljaGFyIGluZm9bMjU2XTsKPj4+PiBAQCAtMjc0LDIyICsz MDQsNDYgQEAgdGVzdF9wbGFuZV9wb3NpdGlvbl93aXRoX291dHB1dChkYXRhX3QKPj4+PiAqZGF0 YSwKPj4+PiBlbnVtIHBpcGUgcGlwZSwKPj4+PiAgICAJCQlpdGVyYXRpb25zLCBpdGVyYXRpb25z ID4gMSA/Cj4+Pj4gIml0ZXJhdGlvbnMiIDoKPj4+PiAiaXRlcmF0aW9uIik7Cj4+Pj4gICAgCX0K Pj4+PiAgICAKPj4+PiAtCWlndF9pbmZvKCJUZXN0aW5nIGNvbm5lY3RvciAlcyB1c2luZyBwaXBl ICVzIHdpdGggJWQgcGxhbmVzICVzCj4+Pj4gd2l0aCBzZWVkICVkXG4iLAo+Pj4+IC0JCSBpZ3Rf b3V0cHV0X25hbWUob3V0cHV0KSwga21zdGVzdF9waXBlX25hbWUocGlwZSksCj4+Pj4gbl9wbGFu ZXMsCj4+Pj4gLQkJIGluZm8sIG9wdC5zZWVkKTsKPj4+PiAtCj4+Pj4gICAgCXRlc3RfaW5pdChk YXRhLCBwaXBlLCBuX3BsYW5lcyk7Cj4+Pj4gICAgCj4+Pj4gICAgCXRlc3RfZ3JhYl9jcmMoZGF0 YSwgb3V0cHV0LCBwaXBlLCAmYmx1ZSwgdGlsaW5nKTsKPj4+PiAgICAKPj4+PiArCS8qCj4+Pj4g KwkgKiBGaW5kIG91dCBob3cgbWFueSBwbGFuZXMgYXJlIGFsbG93ZWQgc2ltdWx0YW5lb3VzbHkK Pj4+PiArCSAqLwo+Pj4+ICsJZG8gewo+Pj4+ICsJCWMrKzsKPj4+Cj4+PiBBZGRpbmcgb25lIHBs YW5lIGF0IHRpbWUgaXMgYSB3YXN0ZSBvZiBDSSB0aW1lIGluIHBsYXRmb3JtcyB3aXRob3V0Cj4+ PiBhCj4+PiBoaWdoIG51bWJlciBvZiBwbGFuZXMoYW55dGhpbmcgYmVzaWRlcyBJQ0wpLCBiZXR0 ZXIgc3RhcnQgd2l0aCBtYXgKPj4+IGFuZAo+Pj4gZGVjcmVhc2luZyB1bnRpbCBjb21taXQgaXMg YWNjZXB0ZWQuCj4+Pgo+Pgo+PiBJJ2QgcmF0aGVyIG5vdCB0cnkgdG8gaGFtbWVyIGluIGNvbmZp Z3VyYXRpb25zIHdoaWNoIG1heSBub3Qgd29yaywKPj4gdGhhdCdzIG5vdCB3aGF0IHdlJ3JlIHRl c3RpbmcgaGVyZS4gVGltZSBhbnl3YXlzIGlzIGxlc3MgdGhhbiA2Cj4+IGZyYW1lcwo+PiBwZXIg bG9vcCBzbyBJIGRvbid0IHRoaW5rIHdlIGFyZSByZWFsbHkgd2FzdGluZyB0aW1lLgo+IAo+IFBs YXRmb3JtcyB3aXRoIDMgcGxhbmVzIHdpbGwgZG8gMyBpdGVyYXRpb25zIHdpdGggY3VycmVudCBh cHByb2FjaAo+IHdoaWxlIGl0IGNvdWxkIGJlIGRvbmUgd2l0aCBqdXN0IG9uZSBhbmQgSUNMIHdp bGwgd2lsbCBkbyA1Cj4gaXRlcmF0aW9ucyhteSBJQ0wgc2V0dXAgc3VwcG9ydCA1IHBsYW5lcyBh dCB0aGUgc2FtZSB0aW1lKSB3aGlsZSBpdAo+IGNvdWxkIGJlIGRvbmUgaW4gMyBpdGVyYXRpb25z Lgo+IAo+IE5vdyB0YWtlcyB0aGlzIGFkZGl0aW9uYWwgaXRlcmF0aW9ucyAqIDQgdGVzdHMgcGVy IHBpcGUgKiBudW1iZXIgb2YKPiBwaXBlcyBhbmQgeW91IGhhdmUgYSBjb25zaWRlcmFibGUgd2Fz dGUgb2YgQ0kgdGltZS4KCkkgc3RpbGwgZG9uJ3QgdGhpbmsgaXQgdG8gYmUgJ2NvbnNpZGVyYWJs ZSB3YXN0ZSBvZiB0aW1lJyB3aGVuIHRoZSAKZGlmZmVyZW5jZSBpcyBzbWFsbCBlbm91Z2ggdG8g YmUgbG9zdCBpbiBub2lzZS4gT24gbXkgYm94IHdpdGggdGhpcyB0ZXN0IApleGVjdXRpb24gdGlt ZSBmbHVjdHVhdGUgZm9yIG9uZSBzdWJ0ZXN0IGJldHdlZW4gMC41NjFzIC4uIDEuNjcxcyBhcyB0 aGUgCnRlc3QgcmVwb3J0IGl0c2VsZi4gVGhvdWdoLCBJIGFkbWl0IEkgd2FzIHdyb25nIGFib3V0 IGhvdyBsb25nIHRoaXMgbG9vcCAKdGFrZXMsIGl0cyBqdXN0IG9uZSBmcmFtZSwgbm90IG92ZXIg Zml2ZSBmcmFtZXMuCgpUQkggaWYgb25lIGFjdHVhbGx5IHdhcyB0byBjYXJlIGFib3V0IHRpbWUg c3BlbnQgSSdkIGdvIGFmdGVyIHNldHRpbmcgCnRob3NlIGZicyB0byBudWxsIGJ1dCB0aGlzIHBh dGNoIGlzIG5vdCBhYm91dCB0aGF0LiBUaGVuIGFnYWluIEkgZG9uJ3QgCmV2ZW4gdW5kZXJzdGFu ZCB3aHkgYXJlIHlvdSBib3RoZXJpbmcgYWJvdXQgcG9zc2libGUgMC4wOXMgbG9zdCBpbiBDST8K Cj4gCj4gCj4+Cj4+Pj4gKwkJcHJlcGFyZV9wbGFuZXMoZGF0YSwgcGlwZSwgJmJsdWUsIHRpbGlu ZywgYywgb3V0cHV0KTsKPj4+PiArCQllcnIgPSBpZ3RfZGlzcGxheV90cnlfY29tbWl0MigmZGF0 YS0+ZGlzcGxheSwKPj4+PiBDT01NSVRfQVRPTUlDKTsKPj4+Cj4+PiBObyBuZWVkIHRvIGRvIGEg cmVhbCBjb21taXQgaGVyZSwgeW91IGNhbiBvbmx5IHRlc3Qgd2l0aDoKPj4+Cj4+PiBlcnIgPSBp Z3RfZGlzcGxheV90cnlfY29tbWl0X2F0b21pYygmZGF0YS0+ZGlzcGxheSwKPj4+IERSTV9NT0RF X0FUT01JQ19URVNUX09OTFkgfCBEUk1fTU9ERV9BVE9NSUNfQUxMT1dfTU9ERVNFVCwgTlVMTCk7 Cj4+Pgo+Pj4KPj4+IEFsc28gaWYgYSBlcnIgZGlmZmVyZW50IHRoYW4gLUVJTlZBTCBpcyByZXR1 cm5lZCB5b3Ugc2hvdWxkIGhhbmRsZQo+Pj4gbGlrZQo+Pj4gYSBlcnJvci4KPj4+Cj4+Cj4+IFdl J3JlIGp1c3QgZW5hYmxpbmcgcGxhbmVzIGluIHRoZSBjb21taXQsIHdoaWNoIGVycm9yIHdvdWxk IHlvdQo+PiBleHBlY3Q/Cj4gCj4gLUVOT01FTSBpcyBvbmUgZXhhbXBsZSB0aGF0IEkgaGF2ZSB3 aXRob3V0IGxvb2tpbmcgYXQgdGhlIGxpYmRybSBhbmQKPiBrZXJuZWwgY29kZS4KPiAKCllvdSBk byByZWFsaXplIHdlJ2QgYmUgd2FzdGluZyB0aW1lIG9uIGNoZWNraW5nIHRoYXQ/IEFueXdheSBp ZiB5b3UncmUgCmludG8gd2FzdGluZyB0aW1lIGFuZCBjb25zaWRlciB3ZSBnb3QgdGhpcyBmYXIg YW5kIHN1ZGRlbmx5IGdldCBhbnkgCnJhbmRvbSBlcnJvciwgc3RpbGwgd2hhdCdzIHRoZSBwb2lu dCBpbiB3aHkgc2hvdWxkIGhhbmRsaW5nIHRoaXMgZXJyb3IgCmJlIGluY2x1ZGVkIGhlcmU/IFdv dWxkbid0IGl0IGdpdmUgdXMgZmFpbHVyZSBvbiB0aGUgYWN0dWFsIGxvb3AgYW55d2F5IAphbmQg ZmFpbCB0aGlzIHRlc3Q/IFdoeSBtYWtlIGl0IGludGVudGlvbmFsbHkgbW9yZSBjb21wbGV4PwoK Pj4KPj4+PiArCj4+Pj4gKwkJZm9yX2VhY2hfcGxhbmVfb25fcGlwZSgmZGF0YS0+ZGlzcGxheSwg cGlwZSwgcGxhbmUpCj4+Pj4gKwkJCWlndF9wbGFuZV9zZXRfZmIocGxhbmUsIE5VTEwpOwo+Pj4+ ICsKPj4+PiArCQlmb3IgKGludCB4ID0gMDsgeCA8IGM7IHgrKykKPj4+PiArCQkJaWd0X3JlbW92 ZV9mYihkYXRhLT5kcm1fZmQsICZkYXRhLT5mYlt4XSk7Cj4+Pgo+Pj4gVGhpcyBpcyBzdGlsbCBs ZWFraW5nLCBleGFtcGxlOgo+Pj4KPj4+IGMgPSAzCj4+PiBwbGFuZSAwLCBwbGFuZSAxIGFuZCBw bGFuZSAzIGVuYWJsZWQKPj4+Cj4+PiBPdGhlciBsZWFrLCB0aGUgZnJhbWVidWZmZXIgY3JlYXRl ZCBpbiB0ZXN0X2dyYWJfY3JjKCkKPj4+Cj4+Pgo+Pgo+PiBIdWg/IGhtbS4uLiBZb3VyIGNvbW1l bnQgZG9lc24ndCBtYWtlIHNlbnNlLiBNYXliZSB5b3UgaGF2ZSBjb25mdXNlZAo+PiBpZGVhIG9m IHdoYXQgcGxhbmUgdnMgZnJhbWVidWZmZXIgaXMgb3Igc29tZXRoaW5nPwo+IAo+IFllYWgsIEkg Y2hlY2tlZCBhZ2FpbiBhbmQgeW91IGFyZSBub3QgbGVha2luZywgc29ycnkgYWJvdXQgdGhhdC4K PiAKPj4KPj4+PiArCX0gd2hpbGUgKCFlcnIgJiYgYyA8IG5fcGxhbmVzKTsKPj4+PiArCj4+Pj4g KwlpZihlcnIpCj4+Pj4gKwkJYy0tOwo+Pj4+ICsKPj4+PiArCWlndF9pbmZvKCJUZXN0aW5nIGNv bm5lY3RvciAlcyB1c2luZyBwaXBlICVzIHdpdGggJWQgcGxhbmVzICVzCj4+Pj4gd2l0aCBzZWVk ICVkXG4iLAo+Pj4+ICsJCSBpZ3Rfb3V0cHV0X25hbWUob3V0cHV0KSwga21zdGVzdF9waXBlX25h bWUocGlwZSksIGMsCj4+Pj4gKwkJIGluZm8sIG9wdC5zZWVkKTsKPj4+PiArCj4+Pj4gICAgCWkg PSAwOwo+Pj4+ICAgIAl3aGlsZSAoaSA8IGl0ZXJhdGlvbnMgfHwgbG9vcF9mb3JldmVyKSB7Cj4+ Pj4gLQkJcHJlcGFyZV9wbGFuZXMoZGF0YSwgcGlwZSwgJmJsdWUsIHRpbGluZywgbl9wbGFuZXMs Cj4+Pj4gb3V0cHV0KTsKPj4+PiArCQlwcmVwYXJlX3BsYW5lcyhkYXRhLCBwaXBlLCAmYmx1ZSwg dGlsaW5nLCBjLCBvdXRwdXQpOwo+Pj4+ICAgIAo+Pj4+ICAgIAkJaWd0X2Rpc3BsYXlfY29tbWl0 MigmZGF0YS0+ZGlzcGxheSwKPj4+PiBDT01NSVRfQVRPTUlDKTsKPj4+PiAgICAKPj4+PiAgICAJ CWlndF9waXBlX2NyY19nZXRfY3VycmVudChkYXRhLT5kaXNwbGF5LmRybV9mZCwKPj4+PiBkYXRh LQo+Pj4+PiBwaXBlX2NyYywgJmNyYyk7Cj4+Pj4gICAgCj4+Pj4gKwkJZm9yX2VhY2hfcGxhbmVf b25fcGlwZSgmZGF0YS0+ZGlzcGxheSwgcGlwZSwgcGxhbmUpCj4+Pj4gKwkJCWlndF9wbGFuZV9z ZXRfZmIocGxhbmUsIE5VTEwpOwo+Pj4+ICsKPj4+PiArCQlmb3IgKGludCB4ID0gMDsgeCA8IGM7 IHgrKykKPj4+PiArCQkJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsICZkYXRhLT5mYlt4XSk7 Cj4+Pgo+Pj4gbW92ZSB0aGlzIGNsZWFudXAgdG8gZnVuY3Rpb24gYW5kIGNhbGwgaXQgaGVyZSBh bmQgd2hlcmUgeW91IHRlc3QKPj4+IHRoZQo+Pj4gbnVtYmVyIG9mIHBsYW5lcyB0aGF0IGNhbiBi ZSBlbmFibGVkCj4+Pgo+Pj4+ICsKPj4+PiAgICAJCWlndF9hc3NlcnRfY3JjX2VxdWFsKCZkYXRh LT5yZWZfY3JjLCAmY3JjKTsKPj4+PiAgICAKPj4+PiAgICAJCWkrKzsKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0Cmln dC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==