From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/3] drm: Make sure at least one plane supports the fb format Date: Thu, 15 Mar 2018 20:48:17 +0200 Message-ID: <20180315184817.GC5453@intel.com> References: <20180312204035.31387-1-ville.syrjala@linux.intel.com> <20180312204035.31387-2-ville.syrjala@linux.intel.com> <87woydgrra.fsf@anholt.net> <20180315174802.GZ5453@intel.com> <20180315180344.GA5453@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180315180344.GA5453@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Eric Anholt Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXIgMTUsIDIwMTggYXQgMDg6MDM6NDRQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFRodSwgTWFyIDE1LCAyMDE4IGF0IDA3OjQ4OjAyUE0gKzAyMDAsIFZpbGxl IFN5cmrDpGzDpCB3cm90ZToKPiA+IE9uIFRodSwgTWFyIDE1LCAyMDE4IGF0IDEwOjQyOjE3QU0g LTA3MDAsIEVyaWMgQW5ob2x0IHdyb3RlOgo+ID4gPiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4gd3JpdGVzOgo+ID4gPiAKPiA+ID4gPiBGcm9tOiBWaWxsZSBT eXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gPiA+Cj4gPiA+ID4g VG8gbWFrZSBsaWZlIGVhc2llciBmb3IgZHJpdmVycywgbGV0J3MgaGF2ZSB0aGUgY29yZSBjaGVj ayB0aGF0IHRoZQo+ID4gPiA+IHJlcXVlc3RlZCBwaXhlbCBmb3JtYXQgaXMgc3VwcG9ydGVkIGJ5 IGF0IGxlYXN0IG9uZSBwbGFuZSB3aGVuIGNyZWF0aW5nCj4gPiA+ID4gYSBuZXcgZnJhbWVidWZm ZXIuCj4gPiA+ID4KPiA+ID4gPiBUaGlzIGVhc2VzIHRoZSBidXJkZW4gb24gZHJpdmVycyBieSBt YWtpbmcgc3VyZSB0aGV5J2xsIG5ldmVyIGdldAo+ID4gPiA+IHJlcXVlc3RzIHRvIGNyZWF0ZSBm YnMgd2l0aCB1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXRzLiBUaGFua3MgdG8gdGhlCj4gPiA+ID4g bmV3IC5mYl9tb2RpZmllcigpIGhvb2sgdGhpcyBjaGVjayBjYW4gbm93IGJlIGRvbmUgd2hldGhl ciB0aGUgcmVxdWVzdAo+ID4gPiA+IHNwZWNpZmllcyB0aGUgbW9kaWZpZXIgZGlyZWN0bHkgb3Ig ZHJpdmVyIGhhcyB0byBkZWR1Y2UgaXQgZnJvbSB0aGUKPiA+ID4gPiBnZW0gYm8gdGlsaW5nIChv ciB2aWEgYW55IG90aGVyIG1ldGhvZCByZWFsbHkpLgo+ID4gPiA+Cj4gPiA+ID4gdjA6IEFjY2Vw dCBhbnlmb3JtYXQgaWYgdGhlIGRyaXZlciBkb2Vzbid0IGRvIHBsYW5lcyAoRXJpYykKPiA+ID4g PiAgICAgcy9wbGFuZXNfaGF2ZV9mb3JtYXQvYW55X3BsYW5lX2hhc19mb3JtYXQvIChFcmljKQo+ ID4gPiA+ICAgICBDaGVjayB0aGUgbW9kaWZpZXIgYXMgd2VsbCBzaW5jZSB3ZSBhbHJlYWR5IGhh dmUgYSBmdW5jdGlvbgo+ID4gPiA+ICAgICB0aGF0IGRvZXMgYm90aAo+ID4gPiA+IHYzOiBEb24n dCBkbyB0aGUgY2hlY2sgaW4gdGhlIGNvcmUgc2luY2Ugd2UgbWF5IG5vdCBrbm93IHRoZQo+ID4g PiA+ICAgICBtb2RpZmllciB5ZXQsIGluc3RlYWQgZXhwb3J0IHRoZSBmdW5jdGlvbiBhbmQgbGV0 IGRyaXZlcnMKPiA+ID4gPiAgICAgY2FsbCBpdCB0aGVtc2VsdmVzCj4gPiA+ID4gdjQ6IFVuZXhw b3J0IHRoZSBmdW5jdGlvbmEgYW5kIHB1dCB0aGUgZm9ybWF0X2RlZmF1bHQgY2hlY2sgYmFjawo+ ID4gPiA+ICAgICBzaW5jZSB0aGlzIHdpbGwgYWdhaW4gYmUgY2FsbGVkIGJ5IHRoZSBjb3JlLCBp ZS4gdW5kbyB2MyA7KQo+ID4gPiA+Cj4gPiA+ID4gQ2M6IEVyaWMgQW5ob2x0IDxlcmljQGFuaG9s dC5uZXQ+Cj4gPiA+ID4gVGVzdGNhc2U6IGlndC9rbXNfYWRkZmJfYmFzaWMvZXhwZWN0ZWQtZm9y bWF0cwo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gLS0tCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9k cm1fZnJhbWVidWZmZXIuYyB8IDMwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4g PiA+ICAxIGZpbGUgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKQo+ID4gPiA+Cj4gPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fZnJhbWVidWZmZXIuYwo+ID4gPiA+IGluZGV4IDIxZDNkNTFlYjI2MS4uZTYxOGE2 YjcyOGQ0IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZm ZXIuYwo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwo+ID4g PiA+IEBAIC0xNTIsNiArMTUyLDI2IEBAIHN0YXRpYyBpbnQgZmJfcGxhbmVfaGVpZ2h0KGludCBo ZWlnaHQsCj4gPiA+ID4gIAlyZXR1cm4gRElWX1JPVU5EX1VQKGhlaWdodCwgZm9ybWF0LT52c3Vi KTsKPiA+ID4gPiAgfQo+ID4gPiA+ICAKPiA+ID4gPiArc3RhdGljIGJvb2wgYW55X3BsYW5lX2hh c19mb3JtYXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ID4gPiArCQkJCSB1MzIgZm9ybWF0 LCB1NjQgbW9kaWZpZXIpCj4gPiA+ID4gK3sKPiA+ID4gPiArCXN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lOwo+ID4gPiA+ICsKPiA+ID4gPiArCWRybV9mb3JfZWFjaF9wbGFuZShwbGFuZSwgZGV2KSB7 Cj4gPiA+ID4gKwkJLyoKPiA+ID4gPiArCQkgKiBJbiBjYXNlIHRoZSBkcml2ZXIgZG9lc24ndCBy ZWFsbHkgZG8KPiA+ID4gPiArCQkgKiBwbGFuZXMgd2UgaGF2ZSB0byBhY2NlcHQgYW55IGZvcm1h dCBoZXJlLgo+ID4gPiA+ICsJCSAqLwo+ID4gPiA+ICsJCWlmIChwbGFuZS0+Zm9ybWF0X2RlZmF1 bHQpCj4gPiA+ID4gKwkJCXJldHVybiB0cnVlOwo+ID4gPiA+ICsKPiA+ID4gPiArCQlpZiAoZHJt X3BsYW5lX2NoZWNrX3BpeGVsX2Zvcm1hdChwbGFuZSwgZm9ybWF0LCBtb2RpZmllcikgPT0gMCkK PiA+ID4gPiArCQkJcmV0dXJuIHRydWU7Cj4gPiA+ID4gKwl9Cj4gPiA+ID4gKwo+ID4gPiA+ICsJ cmV0dXJuIGZhbHNlOwo+ID4gPiA+ICt9Cj4gPiA+IAo+ID4gPiBUaGlzIGRybV9wbGFuZV9jaGVj a19waXhlbF9mb3JtYXQoKSB3aWxsIGFsd2F5cyBmYWlsIGZvciBWQzQncyBTQU5ECj4gPiA+IG1v ZGlmaWVycyBvciBWQzUncyBVSUYgbW9kaWZpZXJzLCB3aGVyZSB3ZSdyZSB1c2luZyB0aGUgbWlk ZGxlIDQ4IGJpdHMKPiA+ID4gYXMgYSBiaXQgb2YgbWV0YWRhdGEgKGxpa2UgaG93IHdlIGhhdmUg aG9yaXpvbnRhbCBzdHJpZGUgcGFzc2VkIG91dHNpZGUKPiA+ID4gb2YgdGhlIG1vZGlmaWVyKSBh bmQgeW91IGNhbid0IGxpc3QgYWxsIG9mIHRoZSBwb3NzaWJsZSB2YWx1ZXMgaW4gYW4KPiA+ID4g YXJyYXkgb24gdGhlIHBsYW5lLgo+ID4gCj4gPiBIbW0uIGRybV9hdG9taWNfcGxhbmVfY2hlY2so KSBldGMuIGNhbGwgdGhpcyB0aGluZyBhcyB3ZWxsLiBIb3cgZG9lcwo+ID4gdGhhdCBtYW5hZ2Ug dG8gd29yayBjdXJyZW50bHk/Cj4gCj4gTWF5YmUgaXQgZG9lc24ndC4gSSBhZGRlZCB0aGUgbW9k aWZpZXIgY2hlY2tzIGluCj4gCj4gY29tbWl0IDIzMTYzYTdkNGIwMzI0ODlkMzc1MDk5ZDU2NTcx MzcxYzA0NTY5ODAKPiBBdXRob3I6ICAgICBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgo+IEF1dGhvckRhdGU6IEZyaSBEZWMgMjIgMjE6MjI6MzAgMjAxNyAr MDIwMAo+IENvbW1pdDogICAgIFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+Cj4gQ29tbWl0RGF0ZTogTW9uIEZlYiAyNiAxNjoyOTo0NyAyMDE4ICswMjAwCj4g Cj4gICAgIGRybTogQ2hlY2sgdGhhdCB0aGUgcGxhbmUgc3VwcG9ydHMgdGhlIHJlcXVlc3QgZm9y bWF0K21vZGlmaWVyIGNvbWJvCj4gCj4gTWF5YmUgdGhhdCBicm9rZSB2YzQ/Cj4gCj4gSG1tLiBT byBlaXRoZXIgd2UgbmVlZCB0byBzdG9wIGNoZWNraW5nIGFnYWluc3QgdGhlIG1vZGlmaWVycyBh cnJheSBhbmQKPiByZWx5IHB1cmVseSBvciAuZm9ybWF0X21vZF9zdXBwb3J0ZWQoKSwgb3Igd2Ug bmVlZCB0byBzb21laG93IGdldCB0aGUKPiBkcml2ZXIgdG8gcmVkdWNlIHRoZSBtb2RpZmllciB0 byBpdHMgYmFzZSBmb3JtLiBJIGd1ZXNzIHdlIGNvdWxkIG1ha2UKPiAuZmJfbW9kaWZpZXIoKSBk byB0aGF0IGFuZCBjYWxsIGl0IGFsc28gZm9yIGFkZGZiIHdpdGggbW9kaWZpZXJzLiBBbmQKPiBJ J2QgbmVlZCB0byB1bmRvIHNvbWUgb2YgdGhlIG1vZGlmaWVyWzBdIHZzLiBkZWR1Y2VkIG1vZGlm aWVyIGNoYW5nZXMKPiBJIGRpZCB0byBmcmFtZWJ1ZmZlcl9jaGVjaygpLCBhbmQgd2UnZCBuZWVk IHRvIHByZXNlcnZlIHRoZSBvcmlnaW5hbAo+IG1vZGlmaWVyIGluIHRoZSByZXF1ZXN0IGZvciAu ZmJfY3JlYXRlKCkuIE9oLCBidXQgdGhhdCB3b3VsZG4ndCBhbGxvdwo+IHJldHVybmluZyBhIG5v bi1iYXNlIG1vZGlmaWVyIGZyb20gLmZiX21vZGlmdWVyKCkgZm9yIHRoZSAhbW9kaWZpZXJzCj4g Y2FzZS4gVGhpcyBpcyB0dXJuaW5nIHNsaWdodGx5IG1vcmUgdHJpY2t5IHRoYW4gSSBoYWQgaG9w ZWQuLi4KPiAKPiBJIGd1ZXNzIHJlbHlpbmcgb24gLmZvcm1hdF9tb2Rfc3VwcG9ydGVkKCkgbWln aHQgYmUgd2hhdCB3ZSBuZWVkIHRvIAo+IGRvLiBVbmZvcnR1bmF0ZWx5IGl0IGRvZXMgbWVhbiB0 aGF0IHRoZSAuZm9ybWF0X21vZF9zdXBwb3J0ZWQoKQo+IGltcGxlbWVudGF0aW9ucyBtdXN0IGJl IHByZXBhcmVkIGZvciBtb2RpZmllcnMgdGhhdCB3ZXJlIG5vdAo+IHJlZ2lzdGVyZWQgd2l0aCB0 aGUgcGxhbmUuIFdoaWNoIGRvZXMgZmVlbCBxdWl0ZSBhIGJpdCBtb3JlCj4gZnJhZ2lsZS4KCkFu ZCB0aGF0IGxhc3QgYXBwb3JhY2ggd291bGQgYmUgYW5ub3lpbmcgZm9yIGk5MTUuIFNvIEkgdGhp bmsgdGhlIG90aGVyCmFwcG9yYWNoIGlzIGJldHRlci4KCkZvcnR1bmF0ZWx5IGl0IHNlZW1zIHlv dXIgU0FORCBtb2RpZmllcnMgYXJlbid0IHVwc3RyZWFtIHlldCBzbyBJIGRpZG4ndApicmVhayB0 aGVtIDopIEkgaGFkIGEgcXVpY2sgbG9vayBhdCB5b3VyIGdpdGh1YiBhbmQgaXQgbG9va3MgbGlr ZSB0aGUKZmlyc3QgYXBwb3JhY2ggd291bGQgd29yay4KClNvbWV0aGluZyBsaWtlIHRoaXMgaXMg d2hhdCBJIGhhZCBpbiBtaW5kLiBMb29zayBsaWtlIHlvdSBjb3VsZCBwbHVnIGluCmZvdXJjY19t b2RfYnJvYWRjb21fbW9kKCkgYWxtb3N0IGRpcmVjdGx5IGludG8gLmJhc2VfbW9kaWZpZXIoKS4K CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX3BsYW5lLmMKaW5kZXggYTVkMWZjN2U4YTM3Li4yNTBmNjZkNTFjMmMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X3BsYW5lLmMKQEAgLTU1Miw2ICs1NTIsOCBAQCBpbnQgZHJtX21vZGVfZ2V0cGxhbmUoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIGludCBkcm1fcGxhbmVfY2hlY2tfcGl4ZWxf Zm9ybWF0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJCSB1MzIgZm9ybWF0LCB1NjQgbW9k aWZpZXIpCiB7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7CisJdTY0IGJh c2VfbW9kaWZpZXI7CiAJdW5zaWduZWQgaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgcGxhbmUt PmZvcm1hdF9jb3VudDsgaSsrKSB7CkBAIC01NjQsOCArNTY2LDEzIEBAIGludCBkcm1fcGxhbmVf Y2hlY2tfcGl4ZWxfZm9ybWF0KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCWlmICghcGxhbmUt Pm1vZGlmaWVyX2NvdW50KQogCQlyZXR1cm4gMDsKIAorCWlmIChkZXYtPm1vZGVfY29uZmlnLmZ1 bmNzLT5iYXNlX21vZGlmaWVyKQorCQliYXNlX21vZGlmaWVyID0gZGV2LT5tb2RlX2NvbmZpZy5m dW5jcy0+YmFzZV9tb2RpZmllcihkZXYsIG1vZGlmaWVyKTsKKwllbHNlCisJCWJhc2VfbW9kaWZp ZXIgPSBtb2RpZmllcjsKKwogCWZvciAoaSA9IDA7IGkgPCBwbGFuZS0+bW9kaWZpZXJfY291bnQ7 IGkrKykgewotCQlpZiAobW9kaWZpZXIgPT0gcGxhbmUtPm1vZGlmaWVyc1tpXSkKKwkJaWYgKGJh c2VfbW9kaWZpZXIgPT0gcGxhbmUtPm1vZGlmaWVyc1tpXSkKIAkJCWJyZWFrOwogCX0KIAlpZiAo aSA9PSBwbGFuZS0+bW9kaWZpZXJfY291bnQpCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1f bW9kZV9jb25maWcuaCBiL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCmluZGV4IGM3NGFl ZDI5MmI1OC4uMmZmMjQzODI2M2VmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fbW9kZV9j b25maWcuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaApAQCAtNDUsNiArNDUs MTkgQEAgc3RydWN0IGRybV9kaXNwbGF5X21vZGU7CiAgKiBpbnZvbHZlIGRyaXZlcnMuCiAgKi8K IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVuY3MgeworCS8qKgorCSAqIEBiYXNlX21vZGlmaWVy OgorCSAqCisJICogUmVkdWNlIHRoZSBwYXNzZWQgaW4gbW9kaWZpZXIgdG8gaXRzIGJhc2UgZm9y bS4gVGhpcyBvcHRpb25hbAorCSAqIGhvb2sgbmVlZHMgdG8gYmUgcHJvdmlkZWQgYnkgYW55IGRy aXZlciB0aGF0IGVtYmVkcyBleHRyYQorCSAqIG1ldGFkYXRhIHdpdGhpbiB0aGUgZm9ybWF0IG1v ZGlmaWVyLgorCSAqCisJICogUkVUVVJOUzoKKwkgKiBUaGUgYmFzZSBmb3JtIG9mIHRoZSBtb2Rp ZmllciB3aXRoIGFueSBleHRyYSBtZXRhZGF0YQorCSAqIGNsZWFyZWQgb3V0LgorCSAqLworCXU2 NCAoKmJhc2VfbW9kaWZpZXIpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHU2NCBtb2RpZmllcik7 CisKIAkvKioKIAkgKiBAZmJfbW9kaWZpZXI6CiAJICoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJt L2RybV9wbGFuZS5oIGIvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKaW5kZXggZjdiZjRhNDhiMWMz Li41ZTI2ZDJhNWY2YWIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oCisrKyBi L2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oCkBAIC00ODksOCArNDg5LDYgQEAgZW51bSBkcm1fcGxh bmVfdHlwZSB7CiAgKiBAZm9ybWF0X3R5cGVzOiBhcnJheSBvZiBmb3JtYXRzIHN1cHBvcnRlZCBi eSB0aGlzIHBsYW5lCiAgKiBAZm9ybWF0X2NvdW50OiBudW1iZXIgb2YgZm9ybWF0cyBzdXBwb3J0 ZWQKICAqIEBmb3JtYXRfZGVmYXVsdDogZHJpdmVyIGhhc24ndCBzdXBwbGllZCBzdXBwb3J0ZWQg Zm9ybWF0cyBmb3IgdGhlIHBsYW5lCi0gKiBAbW9kaWZpZXJzOiBhcnJheSBvZiBtb2RpZmllcnMg c3VwcG9ydGVkIGJ5IHRoaXMgcGxhbmUKLSAqIEBtb2RpZmllcl9jb3VudDogbnVtYmVyIG9mIG1v ZGlmaWVycyBzdXBwb3J0ZWQKICAqIEBvbGRfZmI6IFRlbXBvcmFyeSB0cmFja2luZyBvZiB0aGUg b2xkIGZiIHdoaWxlIGEgbW9kZXNldCBpcyBvbmdvaW5nLiBVc2VkIGJ5CiAgKiAJZHJtX21vZGVf c2V0X2NvbmZpZ19pbnRlcm5hbCgpIHRvIGltcGxlbWVudCBjb3JyZWN0IHJlZmNvdW50aW5nLgog ICogQGZ1bmNzOiBoZWxwZXIgZnVuY3Rpb25zCkBAIC01MjQsNyArNTIyLDE1IEBAIHN0cnVjdCBk cm1fcGxhbmUgewogCXVuc2lnbmVkIGludCBmb3JtYXRfY291bnQ7CiAJYm9vbCBmb3JtYXRfZGVm YXVsdDsKIAorCS8qKgorCSAqIEBtb2RpZmllcnM6IEFycmF5IG9mIG1vZGlmaWVycyBzdXBwb3J0 ZWQgYnkgdGhpcyBwbGFuZS4gSWYKKwkgKiB0aGUgZHJpdmVyIGVtYmVkcyBhbnkgZXh0cmEgbWV0 YWRhdGEgd2l0aGluIG1vZGlmaWVycyB0aGVzZQorCSAqIG1vZGlmaWVycyBtdXN0IGJlIGluIHRo ZWlyIGJhc2UgZm9ybS4KKwkgKi8KIAl1aW50NjRfdCAqbW9kaWZpZXJzOworCS8qKgorCSAqIEBt b2RpZmllcl9jb3VudDogbnVtYmVyIG9mIG1vZGlmaWVycyBzdXBwb3J0ZWQKKwkgKi8KIAl1bnNp Z25lZCBpbnQgbW9kaWZpZXJfY291bnQ7CiAKIAkvKioKLS0gCjIuMTYuMQoKLS0gClZpbGxlIFN5 cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==