From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 06/20] drm: add helper to validate YCBCR420 modes Date: Thu, 13 Jul 2017 15:31:04 +0300 Message-ID: <20170713123104.GU12629@intel.com> References: <1499685528-6926-1-git-send-email-shashank.sharma@intel.com> <1499685528-6926-7-git-send-email-shashank.sharma@intel.com> <20170712171801.GO12629@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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Sharma, Shashank" Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBKdWwgMTMsIDIwMTcgYXQgMTE6MDI6MThBTSArMDUzMCwgU2hhcm1hLCBTaGFzaGFu ayB3cm90ZToKPiBSZWdhcmRzCj4gCj4gU2hhc2hhbmsKPiAKPiAKPiBPbiA3LzEyLzIwMTcgMTA6 NDggUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiA+IE9uIE1vbiwgSnVsIDEwLCAyMDE3IGF0 IDA0OjQ4OjM0UE0gKzA1MzAsIFNoYXNoYW5rIFNoYXJtYSB3cm90ZToKPiA+PiBZQ0JDUjQyMCBt b2RlcyBhcmUgc3VwcG9ydGVkIG9ubHkgb24gSERNSSAyLjAgY2FwYWJsZSBzb3VyY2VzLgo+ID4+ IFRoaXMgcGF0Y2ggYWRkczoKPiA+PiAtIEEgZHJtIGhlbHBlciB0byB2YWxpZGF0ZSBZQ0JDUjQy MC1vbmx5IG1vZGUgb24gYSBwYXJ0aWN1bGFyCj4gPj4gICAgY29ubmVjdG9yLiBUaGlzIGZ1bmN0 aW9uIHdpbGwgaGVscCBwcnVuaW5nIHRoZSBZQ0JDUjQyMC1vbmx5Cj4gPj4gICAgbW9kZXMgZnJv bSB0aGUgY29ubmVjdG9yJ3MgbW9kZWxpc3QuCj4gPj4gLSBBIGJvb2wgdmFyaWFibGUgKHljYmNy XzQyMF9hbGxvd2VkKSBpbiB0aGUgZHJtIGNvbm5lY3RvciBzdHJ1Y3R1cmUuCj4gPj4gICAgV2hp bGUgaGFuZGxpbmcgdGhlIEVESUQgZnJvbSBIRE1JIDIuMCBzaW5rcywgaXRzIGltcG9ydGFudCB0 byBrbm93Cj4gPj4gICAgaWYgdGhlIHNvdXJjZSBpcyBjYXBhYmxlIG9mIGhhbmRsaW5nIFlDQkNS NDIwIG91dHB1dCwgc28gdGhhdCBubwo+ID4+ICAgIFlDQkNSIDQyMCBtb2RlcyB3aWxsIGJlIGxp c3RlZCBmb3Igc291cmNlcyB3aGljaCBjYW4ndCBoYW5kbGUgaXQuCj4gPj4gICAgQSBkcml2ZXIg c2hvdWxkIHNldCB0aGlzIHZhcmlhYmxlIGlmIGl0IHdhbnRzIHRvIHNlZSBZQ0JDUjQyMCBtb2Rl cwo+ID4+ICAgIGluIHRoZSBtb2RlZGIuCj4gPj4KPiA+PiBWNTogSW50cm9kdWNlZCB0aGUgcGF0 Y2ggaW4gc2VyaWVzLgo+ID4+IFY1LXJlc2VuZDogU3F1YXNoZWQgdHdvIHBhdGNoZXMgKHZhbGlk YXRlIFlDQkNSNDIwIGFuZCBhZGQgWUNCQ1I0MjAKPiA+PiAJICAgaWRlbnRpZmllcikKPiA+Pgo+ ID4+IFNpZ25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVs LmNvbT4KPiA+PiAtLS0KPiA+PiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jICAgICAgICAg fCAgMyArKy0KPiA+PiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYyAgICAgICAgfCAyOCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPj4gICBkcml2ZXJzL2dwdS9kcm0vZHJtX3By b2JlX2hlbHBlci5jIHwgIDQgKysrKwo+ID4+ICAgaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5o ICAgICAgICB8ICA5ICsrKysrKysrKwo+ID4+ICAgaW5jbHVkZS9kcm0vZHJtX2VkaWQuaCAgICAg ICAgICAgICB8ICAxICsKPiA+PiAgIGluY2x1ZGUvZHJtL2RybV9tb2Rlcy5oICAgICAgICAgICAg fCAgNSArKysrKwo+ID4+ICAgNiBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCj4gPj4KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlk LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwo+ID4+IGluZGV4IDEwZGFiNjIuLjQ0YmUx MjggMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMKPiA+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwo+ID4+IEBAIC0yOTUwLDEwICsyOTUwLDExIEBA IHU4IGRybV9tYXRjaF9jZWFfbW9kZShjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqdG9f bWF0Y2gpCj4gPj4gICB9Cj4gPj4gICBFWFBPUlRfU1lNQk9MKGRybV9tYXRjaF9jZWFfbW9kZSk7 Cj4gPj4gICAKPiA+PiAtc3RhdGljIGJvb2wgZHJtX3ZhbGlkX2NlYV92aWModTggdmljKQo+ID4+ ICtib29sIGRybV92YWxpZF9jZWFfdmljKHU4IHZpYykKPiA+PiAgIHsKPiA+PiAgIAlyZXR1cm4g dmljID4gMCAmJiB2aWMgPCBBUlJBWV9TSVpFKGVkaWRfY2VhX21vZGVzKTsKPiA+PiAgIH0KPiA+ PiArRVhQT1JUX1NZTUJPTChkcm1fdmFsaWRfY2VhX3ZpYyk7Cj4gPj4gICAKPiA+PiAgIC8qKgo+ ID4+ICAgICogZHJtX2dldF9jZWFfYXNwZWN0X3JhdGlvIC0gZ2V0IHRoZSBwaWN0dXJlIGFzcGVj dCByYXRpbyBjb3JyZXNwb25kaW5nIHRvCj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fbW9kZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYwo+ID4+IGluZGV4IGYy NDkzYjkuLjNiNTNjOGUzIDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9k ZXMuYwo+ID4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYwo+ID4+IEBAIC0xMDgz LDYgKzEwODMsMzQgQEAgZHJtX21vZGVfdmFsaWRhdGVfc2l6ZShjb25zdCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZSwKPiA+PiAgIH0KPiA+PiAgIEVYUE9SVF9TWU1CT0woZHJtX21vZGVf dmFsaWRhdGVfc2l6ZSk7Cj4gPj4gICAKPiA+PiArLyoqCj4gPj4gKyAqIGRybV9tb2RlX3ljYmNy NDIwX29ubHkgLSBhZGQgJ3ljYmNyNDIwLW9ubHknIG1vZGVzIG9ubHkgd2hlbiBhbGxvd2VkCj4g Pj4gKyAqIEBtb2RlOiBtb2RlIHRvIGNoZWNrCj4gPj4gKyAqIEBjb25uZWN0b3I6IGRybSBjb25u ZWN0b3IgdW5kZXIgYWN0aW9uCj4gPj4gKyAqCj4gPj4gKyAqIFRoaXMgZnVuY3Rpb24gaXMgYSBo ZWxwZXIgd2hpY2ggY2FuIGJlIHVzZWQgdG8gZmlsdGVyIG91dCBhbnkgWUNCQ1I0MjAKPiA+PiAr ICogb25seSBtb2RlLCB3aGVuIHRoZSBzb3VyY2UgZG9lc24ndCBzdXBwb3J0IGl0Lgo+ID4+ICsg Kgo+ID4+ICsgKiBSZXR1cm5zOgo+ID4+ICsgKiBUaGUgbW9kZSBzdGF0dXMKPiA+PiArICovCj4g Pj4gK2VudW0gZHJtX21vZGVfc3RhdHVzCj4gPj4gK2RybV9tb2RlX3ZhbGlkYXRlX3ljYmNyNDIw KGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAo+ID4+ICsJCQkgICBzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4+ICt7Cj4gPj4gKwl1OCB2aWMgPSBkcm1fbWF0 Y2hfY2VhX21vZGUobW9kZSk7Cj4gPj4gKwllbnVtIGRybV9tb2RlX3N0YXR1cyBzdGF0dXMgPSBN T0RFX09LOwo+ID4+ICsJc3RydWN0IGRybV9oZG1pX2luZm8gKmhkbWkgPSAmY29ubmVjdG9yLT5k aXNwbGF5X2luZm8uaGRtaTsKPiA+PiArCj4gPj4gKwlpZiAoZHJtX3ZhbGlkX2NlYV92aWModmlj KSAmJiB0ZXN0X2JpdCh2aWMsIGhkbWktPnk0MjBfdmRiX21vZGVzKSkgewo+ID4gU3RpbGwgdGhp bmsgdGhlIHZhbGlkIGNoZWNrIGlzIHBvaW50bGVzcy4KPiBJIHN0aWxsIHRoaW5rIHRoYXQgd2Ug c2hvdWxkIG9ubHkgcGFzcyB2YWxpZCBDRUEgVklDIHRvIFZEQiBjaGVjaywgYnV0IAo+IE9rLCBJ IHdpbGwgcmVtb3ZlIHRoYXQuCj4gPiAgIFNraXBwaW5nIHRoYXQgd291bGQgYWxzbyBhdm9pZAo+ ID4gaGF2aW5nIHRvIG1ha2UgdGhlIGZ1bmN0aW9uIG5vbi1zdGF0aWMKPiBPawo+ID4gKHRoZSBF WFBPUlRfU1lNQk9MIHRoZXJlIHNlZW1zCj4gPiB1bm5lY2Vzc2FyeSBlaXRoZXIgd2F5KS4KPiBX aHkgPwoKSXQncyBhbGwgaW4gdGhlIHNhbWUgbW9kdWxlIEFGQUlDUy4KCk9oLCBhbmQgdGhlIHBh dGNoIG9yZGVyaW5nIGhlcmUgc3RpbGwgbG9va3MgcG90ZW50aWFsbHkgcHJvYmxlbWF0aWMuIFdl CnNob3VsZCBhZGQgdGhlIDQyMCBtb2RlIHZhbGlkYXRpb24gYmVmb3JlIHdlIHN0YXJ0IGFkZGlu ZyB0aGUgNDIwIG1vZGVzLgpPdGhlcndpc2UgYW55b25lIGJpc2VjdGluZyB0aHJvdWdoIHRoaXMg bWF5IGdldCBhIGJsYWNrL2NvcnJ1cHRlZCBzY3JlZW4KaWYgdGhleSBoYXZlIGEgbW9uaXRvciB3 aXRoICI0MjAgb25seSIgbW9kZXMuCgo+ID4KPiA+PiArCQlpZiAoIWNvbm5lY3Rvci0+eWNiY3Jf NDIwX2FsbG93ZWQpCj4gPj4gKwkJCXN0YXR1cyA9IE1PREVfTk9fNDIwOwo+ID4+ICsJfQo+ID4+ ICsKPiA+PiArCXJldHVybiBzdGF0dXM7Cj4gPj4gK30KPiA+PiArRVhQT1JUX1NZTUJPTChkcm1f bW9kZV92YWxpZGF0ZV95Y2JjcjQyMCk7Cj4gPj4gKwo+ID4+ICAgI2RlZmluZSBNT0RFX1NUQVRV UyhzdGF0dXMpIFtNT0RFXyAjIyBzdGF0dXMgKyAzXSA9ICNzdGF0dXMKPiA+PiAgIAo+ID4+ICAg c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBkcm1fbW9kZV9zdGF0dXNfbmFtZXNbXSA9IHsKPiA+ IF4KPiA+IFRoaXMgdGhpbmcgbmVlZHMgdG8gYmUgdXBkYXRlZCBhcyB3ZWxsLgo+IE9oIHNvcnJ5 LCBnb29kIGNhdGNoLgo+IC0gU2hhc2hhbmsKPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9wcm9iZV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVy LmMKPiA+PiBpbmRleCAwMGU2ODMyLi45MDQ5NjZjIDEwMDY0NAo+ID4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMKPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X3Byb2JlX2hlbHBlci5jCj4gPj4gQEAgLTUyOCw2ICs1MjgsMTAgQEAgaW50IGRybV9oZWxwZXJf cHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAo+ID4+ICAgCQlpZiAobW9kZS0+c3RhdHVzID09IE1PREVfT0spCj4gPj4gICAJCQltb2Rl LT5zdGF0dXMgPSBkcm1fbW9kZV92YWxpZGF0ZV9waXBlbGluZShtb2RlLAo+ID4+ICAgCQkJCQkJ CQkgIGNvbm5lY3Rvcik7Cj4gPj4gKwo+ID4+ICsJCWlmIChtb2RlLT5zdGF0dXMgPT0gTU9ERV9P SykKPiA+PiArCQkJbW9kZS0+c3RhdHVzID0gZHJtX21vZGVfdmFsaWRhdGVfeWNiY3I0MjAobW9k ZSwKPiA+PiArCQkJCQkJCQkgIGNvbm5lY3Rvcik7Cj4gPj4gICAJfQo+ID4+ICAgCj4gPj4gICBw cnVuZToKPiA+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oIGIvaW5j bHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gPj4gaW5kZXggYjNhZjhlMy4uMjI1ZTA5MiAxMDA2 NDQKPiA+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKPiA+PiArKysgYi9pbmNs dWRlL2RybS9kcm1fY29ubmVjdG9yLmgKPiA+PiBAQCAtNzQ2LDYgKzc0NiwxNSBAQCBzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciB7Cj4gPj4gICAJYm9vbCBpbnRlcmxhY2VfYWxsb3dlZDsKPiA+PiAgIAli b29sIGRvdWJsZXNjYW5fYWxsb3dlZDsKPiA+PiAgIAlib29sIHN0ZXJlb19hbGxvd2VkOwo+ID4+ ICsKPiA+PiArCS8qKgo+ID4+ICsJICogQHljYmNyXzQyMF9hbGxvd2VkIDogVGhpcyBib29sIGlu ZGljYXRlcyBpZiB0aGlzIGNvbm5lY3RvciBpcwo+ID4+ICsJICogY2FwYWJsZSBvZiBoYW5kbGlu ZyBZQ0JDUiA0MjAgb3V0cHV0LiBXaGlsZSBwYXJzaW5nIHRoZSBFRElECj4gPj4gKwkgKiBibG9j a3MsIGl0cyB2ZXJ5IGhlbHBmdWwgdG8ga25vdywgaWYgdGhlIHNvdXJjZSBpcyBjYXBhYmxlIG9m Cj4gPj4gKwkgKiBoYW5kbGluZyBZQ0JDUiA0MjAgb3V0cHV0cy4KPiA+PiArCSAqLwo+ID4+ICsJ Ym9vbCB5Y2Jjcl80MjBfYWxsb3dlZDsKPiA+PiArCj4gPj4gICAJLyoqCj4gPj4gICAJICogQHJl Z2lzdGVyZWQ6IElzIHRoaXMgY29ubmVjdG9yIGV4cG9zZWQgKHJlZ2lzdGVyZWQpIHdpdGggdXNl cnNwYWNlPwo+ID4+ICAgCSAqIFByb3RlY3RlZCBieSBAbXV0ZXguCj4gPj4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL2RybV9lZGlkLmggYi9pbmNsdWRlL2RybS9kcm1fZWRpZC5oCj4gPj4gaW5k ZXggODljMDA2Mi4uYjU1YjJhNyAxMDA2NDQKPiA+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fZWRp ZC5oCj4gPj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2VkaWQuaAo+ID4+IEBAIC00NzcsNCArNDc3 LDUgQEAgdm9pZCBkcm1fZWRpZF9nZXRfbW9uaXRvcl9uYW1lKHN0cnVjdCBlZGlkICplZGlkLCBj aGFyICpuYW1lLAo+ID4+ICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmRybV9tb2RlX2ZpbmRf ZG10KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPj4gICAJCQkJCSAgIGludCBoc2l6ZSwgaW50 IHZzaXplLCBpbnQgZnJlc2gsCj4gPj4gICAJCQkJCSAgIGJvb2wgcmIpOwo+ID4+ICtib29sIGRy bV92YWxpZF9jZWFfdmljKHU4IHZpYyk7Cj4gPj4gICAjZW5kaWYgLyogX19EUk1fRURJRF9IX18g Ki8KPiA+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX21vZGVzLmggYi9pbmNsdWRlL2Ry bS9kcm1fbW9kZXMuaAo+ID4+IGluZGV4IDk0YWM3NzEuLmY4YTEyNjggMTAwNjQ0Cj4gPj4gLS0t IGEvaW5jbHVkZS9kcm0vZHJtX21vZGVzLmgKPiA+PiArKysgYi9pbmNsdWRlL2RybS9kcm1fbW9k ZXMuaAo+ID4+IEBAIC04MCw2ICs4MCw3IEBAIHN0cnVjdCB2aWRlb21vZGU7Cj4gPj4gICAgKiBA TU9ERV9PTkVfU0laRTogb25seSBvbmUgcmVzb2x1dGlvbiBpcyBzdXBwb3J0ZWQKPiA+PiAgICAq IEBNT0RFX05PX1JFRFVDRUQ6IG1vbml0b3IgZG9lc24ndCBhY2NlcHQgcmVkdWNlZCBibGFua2lu Zwo+ID4+ICAgICogQE1PREVfTk9fU1RFUkVPOiBzdGVyZW8gbW9kZXMgbm90IHN1cHBvcnRlZAo+ ID4+ICsgKiBATU9ERV9OT180MjA6IHljYmNyIDQyMCBtb2RlcyBub3Qgc3VwcG9ydGVkCj4gPj4g ICAgKiBATU9ERV9TVEFMRTogbW9kZSBoYXMgYmVjb21lIHN0YWxlCj4gPj4gICAgKiBATU9ERV9C QUQ6IHVuc3BlY2lmaWVkIHJlYXNvbgo+ID4+ICAgICogQE1PREVfRVJST1I6IGVycm9yIGNvbmRp dGlvbgo+ID4+IEBAIC0xMjQsNiArMTI1LDcgQEAgZW51bSBkcm1fbW9kZV9zdGF0dXMgewo+ID4+ ICAgCU1PREVfT05FX1NJWkUsCj4gPj4gICAJTU9ERV9OT19SRURVQ0VELAo+ID4+ICAgCU1PREVf Tk9fU1RFUkVPLAo+ID4+ICsJTU9ERV9OT180MjAsCj4gPj4gICAJTU9ERV9TVEFMRSA9IC0zLAo+ ID4+ICAgCU1PREVfQkFEID0gLTIsCj4gPj4gICAJTU9ERV9FUlJPUiA9IC0xCj4gPj4gQEAgLTQ5 Niw2ICs0OTgsOSBAQCBib29sIGRybV9tb2RlX2VxdWFsX25vX2Nsb2Nrc19ub19zdGVyZW8oY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUxLAo+ID4+ICAgZW51bSBkcm1fbW9kZV9z dGF0dXMgZHJtX21vZGVfdmFsaWRhdGVfYmFzaWMoY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUpOwo+ID4+ICAgZW51bSBkcm1fbW9kZV9zdGF0dXMgZHJtX21vZGVfdmFsaWRhdGVf c2l6ZShjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiA+PiAgIAkJCQkJICAg IGludCBtYXhYLCBpbnQgbWF4WSk7Cj4gPj4gK2VudW0gZHJtX21vZGVfc3RhdHVzCj4gPj4gK2Ry bV9tb2RlX3ZhbGlkYXRlX3ljYmNyNDIwKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2RlLAo+ID4+ICsJCQkgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPiA+PiAg IHZvaWQgZHJtX21vZGVfcHJ1bmVfaW52YWxpZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4+ ICAgCQkJICAgIHN0cnVjdCBsaXN0X2hlYWQgKm1vZGVfbGlzdCwgYm9vbCB2ZXJib3NlKTsKPiA+ PiAgIHZvaWQgZHJtX21vZGVfc29ydChzdHJ1Y3QgbGlzdF9oZWFkICptb2RlX2xpc3QpOwo+ID4+ IC0tIAo+ID4+IDIuNy40Cj4gPj4KPiA+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+ID4+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+PiBkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwg T1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=