From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] tests/kms_addfb: Add support for fb modifiers Date: Fri, 6 Feb 2015 10:33:42 +0100 Message-ID: <20150206093342.GE14009@phenom.ffwll.local> References: <1423068134-12884-1-git-send-email-tvrtko.ursulin@linux.intel.com> <20150205142128.GX14009@phenom.ffwll.local> <54D38321.9020005@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f42.google.com (mail-wg0-f42.google.com [74.125.82.42]) by gabe.freedesktop.org (Postfix) with ESMTP id 9BAFF6E8F6 for ; Fri, 6 Feb 2015 01:32:19 -0800 (PST) Received: by mail-wg0-f42.google.com with SMTP id x13so12426733wgg.1 for ; Fri, 06 Feb 2015 01:32:18 -0800 (PST) Content-Disposition: inline In-Reply-To: <54D38321.9020005@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 Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBGZWIgMDUsIDIwMTUgYXQgMDI6NTA6MDlQTSArMDAwMCwgVHZydGtvIFVyc3VsaW4g d3JvdGU6Cj4gCj4gT24gMDIvMDUvMjAxNSAwMjoyMSBQTSwgRGFuaWVsIFZldHRlciB3cm90ZToK PiA+T24gV2VkLCBGZWIgMDQsIDIwMTUgYXQgMDQ6NDI6MTRQTSArMDAwMCwgVHZydGtvIFVyc3Vs aW4gd3JvdGU6Cj4gPj5Gcm9tOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwu Y29tPgo+ID4+Cj4gPj5KdXN0IGEgZmV3IGJhc2ljIHRlc3RzIHRvIG1ha2Ugc3VyZSBmYiBtb2Rp ZmllcnMgY2FuIGJlIHVzZWQgYW5kCj4gPj5iZWhhdmUgc2FuZWx5IHdoZW4gbWl4ZWQgd2l0aCB0 aGUgb2xkIHNldF90aWxpbmcgQVBJLgo+ID4+Cj4gPj5TaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJz dWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+ID4+LS0tCj4gPj4gIGxpYi9pb2N0bF93 cmFwcGVycy5jIHwgNDUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ PiAgbGliL2lvY3RsX3dyYXBwZXJzLmggfCAzNiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKPiA+PiAgdGVzdHMva21zX2FkZGZiLmMgICAgfCA2MiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPj4gIDMgZmlsZXMgY2hhbmdlZCwgMTQz IGluc2VydGlvbnMoKykKPiA+Pgo+ID4+ZGlmZiAtLWdpdCBhL2xpYi9pb2N0bF93cmFwcGVycy5j IGIvbGliL2lvY3RsX3dyYXBwZXJzLmMKPiA+PmluZGV4IDE5YTQ1N2EuLmJjYTZkMmEgMTAwNjQ0 Cj4gPj4tLS0gYS9saWIvaW9jdGxfd3JhcHBlcnMuYwo+ID4+KysrIGIvbGliL2lvY3RsX3dyYXBw ZXJzLmMKPiA+PkBAIC0xMDkxLDMgKzEwOTEsNDggQEAgaW50IGdlbV9jb250ZXh0X2hhc19wYXJh bShpbnQgZmQsIHVpbnQ2NF90IHBhcmFtKQo+ID4+Cj4gPj4gIAlyZXR1cm4gZ2VtX2NvbnRleHRf Z2V0X3BhcmFtKGZkLCAmcCkgPT0gMDsKPiA+PiAgfQo+ID4+Kwo+ID4KPiA+Z3RrZG9jIGlzIG1p c3NpbmcgaGVyZS4gRWFzaWVzdCB3YXkgdG8gYXZvaWQgaXQgaXMgdG8ganVzdCBtb3ZlIHRoZXNl IHR3bwo+ID53cmFwcGVycyBpbnRvIHRoZSBrbXNfZmIgdGVzdGNhc2UuIFdob21ldmVyIG5lZWRz IHRvIHJldXNlIHRoZXNlIGdldHMgdG8KPiA+d3JpdGUgdGhlIGRvY3MuCj4gCj4gSSdsbCBuZWVk IGl0IHNvIHdpbGwgZml4IG15c2VsZi4KCkEgdGhlbiB3ZSdsbCBuZWVkIHRvIGRvIHNvbWUgcHJv cGVyIGFiaSBwb2xpc2ggSSB0aGluay4KPiAKPiA+PitpbnQgX2RybU1vZGVBZGRGQjIoaW50IGZk LCB1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LAo+ID4+KwkJICAgdWludDMyX3QgcGl4 ZWxfZm9ybWF0LCB1aW50MzJfdCBib19oYW5kbGVzWzRdLAo+ID4+KwkJICAgdWludDMyX3QgcGl0 Y2hlc1s0XSwgdWludDMyX3Qgb2Zmc2V0c1s0XSwKPiA+PisJCSAgIHVpbnQ2NF90IG1vZGlmaWVy WzBdLCB1aW50MzJfdCAqYnVmX2lkLCB1aW50MzJfdCBmbGFncykKCk5vIGNhbWVsY2FzZSBmb3Ig bGlicmFyeSBmdW5jdGlvbnMuIEFsc28gSSB0aGluayB3ZSB3YW50IGEga21zXyBwcmVmaXgKaGVy ZSBmb3IgYSBiaXQgb2YgbmFtZXNwYWNpbmcuIEFuZCBzaW5jZSB5b3VyIHRlc3Qgb25seSBjcmVh dGVzCmZyYW1lYnVmZmVycyB3aXRoIDEgcGxhbmUgSSB0aGluayBzaW1wbGlmeWluZyB0aGUgZnVu Y3Rpb24gaW50ZXJmYWNlIHdvdWxkCmJlIGdvb2QgdG8uIEZpbmFsbHkgd2UgdXNlIGEgX18gcHJl Zml4IGZvciByYXcgZnVuY3Rpb25zIChpLmUuIHRob3NlCnJldHVybmluZyBlcnJubykgaW4gdGhl IGlvY3RsIHdyYXBwZXIgbGlicmFyeS4gQW5kIEknZCBwdXQgdGhlIGJvIGhhbmRsZQpyaWdodCBh ZnRlciB0aGUgZmQgdG8gYmUgbW9yZSBjb25zaXN0ZW50IHdpdGggb3RoZXIgZnVuY3Rpb25zLiBB bmQgdXN1YWxseQp3ZSBwdXQgb3V0LXBhcmFtZXRlcnMgbGFzdC4gU28KCmludCBfX2ttc19hZGRm YihpbnQgZmQsIHVuaW50MzJfdCBoYW5kbGUsCgkJd2lkdGgsIGhlaWdodCwgc3RyaWRlLCBwaXhl bF9mb3JtYXQsIG1vZGlmaWVyLCBmbGFncywKCQl1aW50MzJfdCAqYnVmX2lkKTsKPiA+Pit7Cj4g Pj4rCXN0cnVjdCBsb2NhbF9kcm1fbW9kZV9mYl9jbWQyIGY7Cj4gPj4rCWludCByZXQ7Cj4gPj4r Cj4gPj4rCWYud2lkdGggID0gd2lkdGg7Cj4gPj4rCWYuaGVpZ2h0ID0gaGVpZ2h0Owo+ID4+Kwlm LnBpeGVsX2Zvcm1hdCA9IHBpeGVsX2Zvcm1hdDsKPiA+PisJZi5mbGFncyA9IGZsYWdzOwo+ID4+ Kwo+ID4+KwltZW1jcHkoZi5oYW5kbGVzLCBib19oYW5kbGVzLCA0ICogc2l6ZW9mKGJvX2hhbmRs ZXNbMF0pKTsKPiA+PisJbWVtY3B5KGYucGl0Y2hlcywgcGl0Y2hlcywgNCAqIHNpemVvZihwaXRj aGVzWzBdKSk7Cj4gPj4rCW1lbWNweShmLm9mZnNldHMsIG9mZnNldHMsIDQgKiBzaXplb2Yob2Zm c2V0c1swXSkpOwo+ID4+KwltZW1jcHkoZi5tb2RpZmllciwgbW9kaWZpZXIsIDQgKiBzaXplb2Yo bW9kaWZpZXJbMF0pKTsKPiA+PisKPiA+PisJaWYgKChyZXQgPSBkcm1Jb2N0bChmZCwgTE9DQUxf RFJNX0lPQ1RMX01PREVfQURERkIyLCAmZikpKQo+ID4+KwkJcmV0dXJuIHJldCA8IDAgPyAtZXJy bm8gOiByZXQ7Cj4gPj4rCj4gPj4rCSpidWZfaWQgPSBmLmZiX2lkOwo+ID4+KwlyZXR1cm4gMDsK PiA+Pit9Cj4gPj4rCj4gPj4rdW5zaWduZWQgaW50IGhhc19kcm1fZmJfbW9kaWZpZXJzKGludCBm ZCkKCkNvbW1vbiBwYXR0ZXJpbiBpcyB0byBwdXNodCBoZSByZXF1aXJlIGludG8gdGhpcyBmdW5j dGlvbiBhbmQgdXNlIGEgdm9pZApyZXR1cm4gdmFsdWUuIEFsc28gZHJtIHByZWZpeCBpcyB1c2Vk IGZvciBjb3JlIGRybSBhbmQgbGliZHJtIHN0dWZmLApiZXR0ZXIgdG8gcGljayBrbXNfLiBTbwoK dm9pZCBkcm1fcmVxdWlyZV9mYl9tb2RpZmllcnMoaW50IGZkKTsKCkFsc28gcGxlYXNlIG1ha2Ug c3VyZSB0aGUgbmV3IGttc18gZnVuY3MgYXJlIGdyb3VwZWQgaW50byBhIHNlcGFyYXRlCnNlY3Rp b24sIHNvIHRoYXQgd2UgY2FuIGVhc2lseSBzcGxpdCB0aGVtIG91dC4gSSd2ZSBqdXN0IG5vdGlj ZWQgdGhhdCB0aGUKbmV3IGNvbnRleHQgc3R1ZmYgZGlkbid0IGZvbGxvdyB0aGF0LCBzbyB3aWxs IGZpeCB0aGF0IHVwIGFzYXAuCi1EYW5pZWwKCgo+ID4+K3sKPiA+PisJc3RhdGljIHVuc2lnbmVk IGludCBoYXNfbW9kaWZpZXJzLCBjYXBfbW9kaWZpZXJzX3Rlc3RlZDsKPiA+PisJdWludDY0X3Qg Y2FwX21vZGlmaWVyczsKPiA+PisJaW50IHJldDsKPiA+PisKPiA+PisJaWYgKGNhcF9tb2RpZmll cnNfdGVzdGVkKQo+ID4+KwkJcmV0dXJuIGhhc19tb2RpZmllcnM7Cj4gPj4rCj4gPj4rCXJldCA9 IGRybUdldENhcChmZCwgTE9DQUxfRFJNX0NBUF9BRERGQjJfTU9ESUZJRVJTLCAmY2FwX21vZGlm aWVycyk7Cj4gPj4rCWlndF9hc3NlcnQocmV0ID09IDAgfHwgZXJybm8gPT0gRUlOVkFMKTsKPiA+ PisJaGFzX21vZGlmaWVycyA9IHJldCA9PSAwICYmIGNhcF9tb2RpZmllcnMgPT0gMTsKPiA+PisJ Y2FwX21vZGlmaWVyc190ZXN0ZWQgPSAxOwo+ID4+Kwo+ID4+KwlpZiAoaGFzX21vZGlmaWVycykK PiA+PisJCWlndF9kZWJ1ZygiRFJNX0NBUF9BRERGQjJfTU9ESUZJRVJTXG4iKTsKPiA+PisKPiA+ PisJcmV0dXJuIGhhc19tb2RpZmllcnM7Cj4gPj4rfQo+ID4+ZGlmZiAtLWdpdCBhL2xpYi9pb2N0 bF93cmFwcGVycy5oIGIvbGliL2lvY3RsX3dyYXBwZXJzLmgKPiA+PmluZGV4IDMwYWI4MzYuLmMy NzcwMTIgMTAwNjQ0Cj4gPj4tLS0gYS9saWIvaW9jdGxfd3JhcHBlcnMuaAo+ID4+KysrIGIvbGli L2lvY3RsX3dyYXBwZXJzLmgKPiA+PkBAIC0xMTcsNCArMTE3LDQwIEBAIGludCBnZW1fY29udGV4 dF9oYXNfcGFyYW0oaW50IGZkLCB1aW50NjRfdCBwYXJhbSk7Cj4gPj4gIGludCBnZW1fY29udGV4 dF9nZXRfcGFyYW0oaW50IGZkLCBzdHJ1Y3QgbG9jYWxfaTkxNV9nZW1fY29udGV4dF9wYXJhbSAq cCk7Cj4gPj4gIGludCBnZW1fY29udGV4dF9zZXRfcGFyYW0oaW50IGZkLCBzdHJ1Y3QgbG9jYWxf aTkxNV9nZW1fY29udGV4dF9wYXJhbSAqcCk7Cj4gPj4KPiA+PitzdHJ1Y3QgbG9jYWxfZHJtX21v ZGVfZmJfY21kMiB7Cj4gPj4rCXVpbnQzMl90IGZiX2lkOwo+ID4+Kwl1aW50MzJfdCB3aWR0aCwg aGVpZ2h0Owo+ID4+Kwl1aW50MzJfdCBwaXhlbF9mb3JtYXQ7Cj4gPj4rCXVpbnQzMl90IGZsYWdz Owo+ID4+Kwl1aW50MzJfdCBoYW5kbGVzWzRdOwo+ID4+Kwl1aW50MzJfdCBwaXRjaGVzWzRdOwo+ ID4+Kwl1aW50MzJfdCBvZmZzZXRzWzRdOwo+ID4+Kwl1aW50NjRfdCBtb2RpZmllcls0XTsKPiA+ Pit9Owo+ID4+Kwo+ID4+KyNkZWZpbmUgTE9DQUxfRFJNX01PREVfRkJfTU9ESUZJRVJTCSgxPDwx KQo+ID4+Kwo+ID4+KyNkZWZpbmUgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfVkVORE9SX0lOVEVMICAg MHgwMQo+ID4+Kwo+ID4+KyNkZWZpbmUgbG9jYWxfZm91cmNjX21vZF9jb2RlKHZlbmRvciwgdmFs KSBcCj4gPj4rCSgoKCh1aW50NjRfdClMT0NBTF9EUk1fRk9STUFUX01PRF9WRU5ET1JfIyMgdmVu ZG9yKSA8PCA1NikgfCBcCj4gPj4rCSAgKHZhbCAmIDB4MDBmZmZmZmZmZmZmZmZmZkwpKQo+ID4+ Kwo+ID4+KyNkZWZpbmUgTE9DQUxfSTkxNV9GT1JNQVRfTU9EX05PTkUJbG9jYWxfZm91cmNjX21v ZF9jb2RlKElOVEVMLCBcCj4gPj4rCQkJCQkJCSAgICAgIDB4MDAwMDAwMDAwMDAwMDBMKQo+ID4+ KyNkZWZpbmUgTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQJbG9jYWxfZm91cmNjX21vZF9j b2RlKElOVEVMLCBcCj4gPj4rCQkJCQkJCSAgICAgIDB4MDAwMDAwMDAwMDAwMDFMKQo+ID4+Kwo+ ID4+KyNkZWZpbmUgTE9DQUxfRFJNX0lPQ1RMX01PREVfQURERkIyCURSTV9JT1dSKDB4QjgsIFwK PiA+PisJCQkJCQkgc3RydWN0IGxvY2FsX2RybV9tb2RlX2ZiX2NtZDIpCj4gPj4rCj4gPj4raW50 IF9kcm1Nb2RlQWRkRkIyKGludCBmZCwgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwK PiA+PisJCSAgIHVpbnQzMl90IHBpeGVsX2Zvcm1hdCwgdWludDMyX3QgYm9faGFuZGxlc1s0XSwK PiA+PisJCSAgIHVpbnQzMl90IHBpdGNoZXNbNF0sIHVpbnQzMl90IG9mZnNldHNbNF0sCj4gPj4r CQkgICB1aW50NjRfdCBtb2RpZmllclswXSwgdWludDMyX3QgKmJ1Zl9pZCwgdWludDMyX3QgZmxh Z3MpOwo+ID4+Kwo+ID4+KyNkZWZpbmUgTE9DQUxfRFJNX0NBUF9BRERGQjJfTU9ESUZJRVJTCTB4 MTAKPiA+PisKPiA+Pit1bnNpZ25lZCBpbnQgaGFzX2RybV9mYl9tb2RpZmllcnMoaW50IGZkKTsK PiA+PisKPiA+PiAgI2VuZGlmIC8qIElPQ1RMX1dSQVBQRVJTX0ggKi8KPiA+PmRpZmYgLS1naXQg YS90ZXN0cy9rbXNfYWRkZmIuYyBiL3Rlc3RzL2ttc19hZGRmYi5jCj4gPj5pbmRleCA3NTY1ODll Li45YjBmNzdjIDEwMDY0NAo+ID4+LS0tIGEvdGVzdHMva21zX2FkZGZiLmMKPiA+PisrKyBiL3Rl c3RzL2ttc19hZGRmYi5jCj4gPj5AQCAtMjEzLDYgKzIxMyw2NiBAQCBzdGF0aWMgdm9pZCBzaXpl X3Rlc3RzKGludCBmZCkKPiA+PiAgCX0KPiA+PiAgfQo+ID4+Cj4gPj4rc3RhdGljIHZvaWQgYWRk ZmIyNV90ZXN0cyhpbnQgZmQpCj4gPj4rewo+ID4+KwlzdHJ1Y3QgbG9jYWxfZHJtX21vZGVfZmJf Y21kMiBmID0ge307Cj4gPj4rCj4gPj4rCj4gPj4rCWlndF9yZXF1aXJlKGhhc19kcm1fZmJfbW9k aWZpZXJzKGZkKSk7Cj4gPgo+ID5JbW8gYmV0dGVyIHRvIG1vdmUgdGhlIGlndF9yZXF1aXJlIGlu dCBpZ3RfbWFpbiBzbyB0aGF0IHBwbCBhcmVuJ3QKPiA+c3VwcmlzZWQgdGhhdCB0aGV5J3JlIHRl c3RzIGFyZSBza2lwcGluZyB3aGVuIHRoZXkgYWRkIG1vcmUgYmVsb3cgdGhlIGNhbGwKPiA+dG8g YWRkZmIyNV90ZXN0cy4KPiAKPiBTa2lwcGluZyBpbmRpdmlkdWFsIHRlc3QgY2FzZXMgd2FzIG15 IGludGVudGlvbiwgYnV0IEkgb3Zlcmxvb2tlZCB0aGUgZmFjdAo+IHRoaXMgZnVuY3Rpb24gaXMg bm90IGEgc3VidGVzdC4uLiBJIHN1cHBvc2UgaWd0X3N1YnRlc3QgaW4gaWd0X3N1YnRlc3QgaXMK PiBub3QgcG9zc2libGUuIDopCj4gCj4gPj4rCj4gPj4rCW1lbXNldCgmZiwgMCwgc2l6ZW9mKGYp KTsKPiA+PisKPiA+PisJZi53aWR0aCA9IDEwMjQ7Cj4gPj4rCWYuaGVpZ2h0ID0gMTAyNDsKPiA+ PisJZi5waXhlbF9mb3JtYXQgPSBEUk1fRk9STUFUX1hSR0I4ODg4Owo+ID4+KwlmLnBpdGNoZXNb MF0gPSAxMDI0KjQ7Cj4gPj4rCWYuZmxhZ3MgPSBMT0NBTF9EUk1fTU9ERV9GQl9NT0RJRklFUlM7 Cj4gPj4rCWYubW9kaWZpZXJbMF0gPSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfTk9ORTsKPiA+Cj4g PmM5OSBpbml0aWFsaXplcyBuaWNlbHkgY29tYmluZSB0aGUgbWVtc2V0IHdpdGggdGhlIGV4cGxp Y2l0IHN0cnVjdCBpbml0Lgo+ID5CdXQganVzdCBhIGJpa2VzaGVkLgo+IAo+IEkganVzdCBjb3B5 IHBhc3RlZCBmcm9tIGxpYmRybSwgcHJlc3VtYWJseSBhdCBzb21lIHBvaW50IHNpbWlsYXIgY29k ZSB3aWxsCj4gYXBwZWFyIHRoZXJlIGFuZCB0aGVuIGFmdGVyIHNvbWUgeWVhcnMgdGhpcyBjYW4g YmUgcmVtb3ZlZC4gOikKPiAKPiA+PisKPiA+PisJaWd0X2ZpeHR1cmUgewo+ID4+KwkJZ2VtX2Jv ID0gZ2VtX2NyZWF0ZShmZCwgMTAyNCoxMDI0KjQpOwo+ID4+KwkJaWd0X2Fzc2VydChnZW1fYm8p Owo+ID4+Kwl9Cj4gPj4rCj4gPj4rCWYuaGFuZGxlc1swXSA9IGdlbV9ibzsKPiA+PisKPiA+PisJ aWd0X3N1YnRlc3QoImFkZGZiMjUtWC10aWxlZCIpIHsKPiA+PisJCWYubW9kaWZpZXJbMF0gPSBM T0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDsKPiA+PisJCWlndF9hc3NlcnQoZHJtSW9jdGwo ZmQsIExPQ0FMX0RSTV9JT0NUTF9NT0RFX0FEREZCMiwgJmYpID09IDApOwo+ID4+KwkJaWd0X2Fz c2VydChkcm1Jb2N0bChmZCwgRFJNX0lPQ1RMX01PREVfUk1GQiwgJmYuZmJfaWQpID09IDApOwo+ ID4+KwkJZi5mYl9pZCA9IDA7Cj4gPj4rCX0KPiA+PisKPiA+PisJaWd0X3N1YnRlc3QoImFkZGZi MjUtZnJhbWVidWZmZXItdnMtc2V0LXRpbGluZyIpIHsKPiA+PisJCWlndF9hc3NlcnQoZHJtSW9j dGwoZmQsIExPQ0FMX0RSTV9JT0NUTF9NT0RFX0FEREZCMiwgJmYpID09IDApOwo+ID4+KwkJaWd0 X2Fzc2VydChfX2dlbV9zZXRfdGlsaW5nKGZkLCBnZW1fYm8sIEk5MTVfVElMSU5HX1gsIDUxMio0 KSA9PSAtRUJVU1kpOwo+ID4+KwkJaWd0X2Fzc2VydChfX2dlbV9zZXRfdGlsaW5nKGZkLCBnZW1f Ym8sIEk5MTVfVElMSU5HX1gsIDEwMjQqNCkgPT0gLUVCVVNZKTsKPiA+PisJCWlndF9hc3NlcnQo ZHJtSW9jdGwoZmQsIERSTV9JT0NUTF9NT0RFX1JNRkIsICZmLmZiX2lkKSA9PSAwKTsKPiA+PisJ CWYuZmJfaWQgPSAwOwo+ID4+Kwl9Cj4gPj4rCj4gPj4rCWlndF9maXh0dXJlCj4gPj4rCQlnZW1f c2V0X3RpbGluZyhmZCwgZ2VtX2JvLCBJOTE1X1RJTElOR19YLCAxMDI0KjQpOwo+ID4+KwlmLnBp dGNoZXNbMF0gPSAxMDI0KjQ7Cj4gPj4rCj4gPj4rCWlndF9zdWJ0ZXN0KCJhZGRmYjI1LVgtdGls ZWQtYm90aCIpIHsKPiA+PisJCWYubW9kaWZpZXJbMF0gPSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0Rf WF9USUxFRDsKPiA+PisJCWlndF9hc3NlcnQoZHJtSW9jdGwoZmQsIExPQ0FMX0RSTV9JT0NUTF9N T0RFX0FEREZCMiwgJmYpID09IDApOwo+ID4+KwkJaWd0X2Fzc2VydChkcm1Jb2N0bChmZCwgRFJN X0lPQ1RMX01PREVfUk1GQiwgJmYuZmJfaWQpID09IDApOwo+ID4+KwkJZi5mYl9pZCA9IDA7Cj4g Pj4rCX0KPiA+PisKPiA+PisJaWd0X3N1YnRlc3QoImFkZGZiMjUtWC10aWxlZC1taXNtYXRjaCIp IHsKPiA+PisJCWYubW9kaWZpZXJbMF0gPSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfTk9ORTsKPiA+ PisJCWlndF9hc3NlcnQoZHJtSW9jdGwoZmQsIExPQ0FMX0RSTV9JT0NUTF9NT0RFX0FEREZCMiwg JmYpIDwgMCAmJiBlcnJubyA9PSBFSU5WQUwpOwo+ID4+KwkJZi5mYl9pZCA9IDA7Cj4gPj4rCX0K PiA+Cj4gPkxvb2tzIGdvb2QsIGJ1dCB0d28gYWJ1c2UgY2FzZXMgYXJlIGltbyBtaXNzaW5nOgo+ ID4KPiA+LSBmLmZsYWdzID0gMCBidXQgZi5tb2RpZmllclswXSA9IExPQ0FMX0k5MTVfRk9STUFU X01PRF9YX1RJTEVECj4gPi0gZi5mbGFncyA9IExPQ0FMX0RSTV9NT0RFX0ZCX01PRElGSUVSUyBi dXQgZi5tb2RpZmllclswXSA9IDAKPiA+Cj4gPkp1c3QgdG8gbWFrZSBzdXJlIHdlIGhhdmUgdGhh dCBwYXJ0IG9mIHRoZSBhZGRmYiBleHRlbnNpb24gY292ZXJlZCwgdG9vLgo+IAo+IFRlc3QgY2Fz ZXMgZGlkIGxvb2sgc3VzcGljaW91c2x5IGZldyB0byBtZSB5ZXN0ZXJkYXkgYnV0IG9idmlvdXNs eSB0ZXN0aW5nCj4gbWluZHNldCB3YXNuJ3QgZnVsbHkgb24gLSB5b3UgYXJlIHJpZ2h0IGZvciB0 aG9zZSB0d28uCj4gCj4gVGhhbmtzLAo+IAo+IFR2cnRrbwoKLS0gCkRhbmllbCBWZXR0ZXIKU29m dHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCis0MSAoMCkgNzkgMzY1IDU3IDQ4IC0g aHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK