From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915: prefer for_each_intel_* macros for iteration Date: Wed, 16 Dec 2015 14:41:20 +0200 Message-ID: <87oadqsgzz.fsf@intel.com> References: <1450262896-5325-1-git-send-email-jani.nikula@intel.com> <20151216112201.GK30437@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 4AB5E6E8C3 for ; Wed, 16 Dec 2015 04:41:22 -0800 (PST) In-Reply-To: <20151216112201.GK30437@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAxNiBEZWMgMjAxNSwgRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90 ZToKPiBPbiBXZWQsIERlYyAxNiwgMjAxNSBhdCAxMjo0ODoxNlBNICswMjAwLCBKYW5pIE5pa3Vs YSB3cm90ZToKPj4gVXNlIHRoZSBmb3JfZWFjaF9pbnRlbF8qIG1hY3JvcyBmb3IgaXRlcmF0aW5n IGludGVsX2VuY29kZXIsCj4+IGludGVsX2Nvbm5lY3RvciwgYW5kIGludGVsX2NydGMuIE5vIGZ1 bmN0aW9uYWwgY2hhbmdlcy4KPj4gCj4+IFNpZ25lZC1vZmYtYnk6IEphbmkgTmlrdWxhIDxqYW5p Lm5pa3VsYUBpbnRlbC5jb20+Cj4KPiBUcnVzdGluZyB0aGF0IGdjYyB3aWxsIHNjcmVhbSBhdCB5 b3UgaWYgeW91IGZ1bWJsZWQgdHlwZXM6Cj4KPiBSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8 ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KClB1c2hlZCB0byBkcm0taW50ZWwtbmV4dC1xdWV1ZWQs IHRoYW5rcyBmb3IgdGhlIHJldmlldy4KCkJSLApKYW5pLgoKPgo+PiAtLS0KPj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgfCAxMSArKysrLS0tLS0tLQo+PiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICB8IDEwICsrKy0tLS0tLS0KPj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICAgfCAgOCArKystLS0tLQo+PiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ByZWdpb24uYyB8ICA2ICsrKy0tLQo+PiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYyAgICB8ICA0ICsrLS0KPj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMgICAgICAgfCAgNSArKy0tLQo+PiAgNiBmaWxlcyBjaGFuZ2VkLCAx NyBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKPj4gCj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuYwo+PiBpbmRleCA4ZGRmY2NlOTJjZjEuLjQ0YWQzMDg1Njk1ZiAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5jCj4+IEBAIC01NDMsMTUgKzU0MywxMiBAQCBib29sIGk5MTVfc2VtYXBo b3JlX2lzX2VuYWJsZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gIHN0YXRpYyB2b2lkIGlu dGVsX3N1c3BlbmRfZW5jb2RlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ PiAgewo+PiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+PiAtCXN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKPj4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlcjsKPj4gIAo+PiAgCWRybV9tb2Rlc2V0X2xvY2tfYWxsKGRldik7Cj4+IC0JbGlzdF9mb3Jf ZWFjaF9lbnRyeShlbmNvZGVyLCAmZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVyX2xpc3QsIGhlYWQp IHsKPj4gLQkJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSB0b19pbnRlbF9l bmNvZGVyKGVuY29kZXIpOwo+PiAtCj4+IC0JCWlmIChpbnRlbF9lbmNvZGVyLT5zdXNwZW5kKQo+ PiAtCQkJaW50ZWxfZW5jb2Rlci0+c3VzcGVuZChpbnRlbF9lbmNvZGVyKTsKPj4gLQl9Cj4+ICsJ Zm9yX2VhY2hfaW50ZWxfZW5jb2RlcihkZXYsIGVuY29kZXIpCj4+ICsJCWlmIChlbmNvZGVyLT5z dXNwZW5kKQo+PiArCQkJZW5jb2Rlci0+c3VzcGVuZChlbmNvZGVyKTsKPj4gIAlkcm1fbW9kZXNl dF91bmxvY2tfYWxsKGRldik7Cj4+ICB9Cj4+ICAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+PiBpbmRleCA0NzFmMTIwN2Q0MzguLjA3OWE3YzBlZDU4ZSAxMDA2NDQKPj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiBAQCAtMTU4MjMsNyArMTU4MjMsNyBAQCB2 b2lkIGludGVsX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmlu dGVsX2Nvbm5lY3RvcikKPj4gIHZvaWQgaW50ZWxfbW9kZXNldF9jbGVhbnVwKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4+ICB7Cj4+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPj4gLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y Owo+PiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPj4gIAo+PiAgCWludGVs X2Rpc2FibGVfZ3RfcG93ZXJzYXZlKGRldik7Cj4+ICAKPj4gQEAgLTE1ODUwLDEyICsxNTg1MCw4 IEBAIHZvaWQgaW50ZWxfbW9kZXNldF9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ ICAJZmx1c2hfc2NoZWR1bGVkX3dvcmsoKTsKPj4gIAo+PiAgCS8qIGRlc3Ryb3kgdGhlIGJhY2ts aWdodCBhbmQgc3lzZnMgZmlsZXMgYmVmb3JlIGVuY29kZXJzL2Nvbm5lY3RvcnMgKi8KPj4gLQls aXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9y X2xpc3QsIGhlYWQpIHsKPj4gLQkJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVj dG9yOwo+PiAtCj4+IC0JCWludGVsX2Nvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25u ZWN0b3IpOwo+PiAtCQlpbnRlbF9jb25uZWN0b3ItPnVucmVnaXN0ZXIoaW50ZWxfY29ubmVjdG9y KTsKPj4gLQl9Cj4+ICsJZm9yX2VhY2hfaW50ZWxfY29ubmVjdG9yKGRldiwgY29ubmVjdG9yKQo+ PiArCQljb25uZWN0b3ItPnVucmVnaXN0ZXIoY29ubmVjdG9yKTsKPj4gIAo+PiAgCWRybV9tb2Rl X2NvbmZpZ19jbGVhbnVwKGRldik7Cj4+ICAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+IGlu ZGV4IDMxYmEyNDExNDA2NS4uNzk2ZTNkMzEzY2I5IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMKPj4gQEAgLTM4OSw4ICszODksNyBAQCB2bHZfcG93ZXJfc2VxdWVuY2VyX3BpcGUoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkKPj4gIAkgKiBXZSBkb24ndCBoYXZlIHBvd2VyIHNlcXVl bmNlciBjdXJyZW50bHkuCj4+ICAJICogUGljayBvbmUgdGhhdCdzIG5vdCB1c2VkIGJ5IG90aGVy IHBvcnRzLgo+PiAgCSAqLwo+PiAtCWxpc3RfZm9yX2VhY2hfZW50cnkoZW5jb2RlciwgJmRldi0+ bW9kZV9jb25maWcuZW5jb2Rlcl9saXN0LAo+PiAtCQkJICAgIGJhc2UuaGVhZCkgewo+PiArCWZv cl9lYWNoX2ludGVsX2VuY29kZXIoZGV2LCBlbmNvZGVyKSB7Cj4+ICAJCXN0cnVjdCBpbnRlbF9k cCAqdG1wOwo+PiAgCj4+ICAJCWlmIChlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9FRFAp Cj4+IEBAIC01MzAsNyArNTI5LDcgQEAgdm9pZCB2bHZfcG93ZXJfc2VxdWVuY2VyX3Jlc2V0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gIAkgKiBzaG91bGQgdXNlIHRoZW0g YWx3YXlzLgo+PiAgCSAqLwo+PiAgCj4+IC0JbGlzdF9mb3JfZWFjaF9lbnRyeShlbmNvZGVyLCAm ZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVyX2xpc3QsIGJhc2UuaGVhZCkgewo+PiArCWZvcl9lYWNo X2ludGVsX2VuY29kZXIoZGV2LCBlbmNvZGVyKSB7Cj4+ICAJCXN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHA7Cj4+ICAKPj4gIAkJaWYgKGVuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0VEUCkK Pj4gQEAgLTI4NTAsOCArMjg0OSw3IEBAIHN0YXRpYyB2b2lkIHZsdl9zdGVhbF9wb3dlcl9zZXF1 ZW5jZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gIAlpZiAoV0FSTl9PTihwaXBlICE9IFBJ UEVfQSAmJiBwaXBlICE9IFBJUEVfQikpCj4+ICAJCXJldHVybjsKPj4gIAo+PiAtCWxpc3RfZm9y X2VhY2hfZW50cnkoZW5jb2RlciwgJmRldi0+bW9kZV9jb25maWcuZW5jb2Rlcl9saXN0LAo+PiAt CQkJICAgIGJhc2UuaGVhZCkgewo+PiArCWZvcl9lYWNoX2ludGVsX2VuY29kZXIoZGV2LCBlbmNv ZGVyKSB7Cj4+ICAJCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHA7Cj4+ICAJCWVudW0gcG9ydCBw b3J0Owo+PiAgCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vcHJl Z2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ByZWdpb24uYwo+PiBpbmRleCA1 MzE2NGEwNWZmN2EuLjk2ZGJkNzExMjRhMyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfb3ByZWdpb24uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9vcHJlZ2lvbi5jCj4+IEBAIC00MjIsNyArNDIyLDcgQEAgaW50IGludGVsX29wcmVnaW9uX25v dGlmeV9hZGFwdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHBjaV9wb3dlcl90IHN0YXRlKQo+ PiAgc3RhdGljIHUzMiBhc2xlX3NldF9iYWNrbGlnaHQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dTMyIGJjbHApCj4+ICB7Cj4+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPj4gLQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25u ZWN0b3I7Cj4+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+PiAgCXN0cnVj dCBvcHJlZ2lvbl9hc2xlICphc2xlID0gZGV2X3ByaXYtPm9wcmVnaW9uLmFzbGU7Cj4+ICAKPj4g IAlEUk1fREVCVUdfRFJJVkVSKCJiY2xwID0gMHglMDh4XG4iLCBiY2xwKTsKPj4gQEAgLTQ0Niw4 ICs0NDYsOCBAQCBzdGF0aWMgdTMyIGFzbGVfc2V0X2JhY2tsaWdodChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB1MzIgYmNscCkKPj4gIAkgKiBvbmx5IG9uZSkuCj4+ICAJICovCj4+ICAJRFJNX0RF QlVHX0tNUygidXBkYXRpbmcgb3ByZWdpb24gYmFja2xpZ2h0ICVkLzI1NVxuIiwgYmNscCk7Cj4+ IC0JbGlzdF9mb3JfZWFjaF9lbnRyeShpbnRlbF9jb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmln LmNvbm5lY3Rvcl9saXN0LCBiYXNlLmhlYWQpCj4+IC0JCWludGVsX3BhbmVsX3NldF9iYWNrbGln aHRfYWNwaShpbnRlbF9jb25uZWN0b3IsIGJjbHAsIDI1NSk7Cj4+ICsJZm9yX2VhY2hfaW50ZWxf Y29ubmVjdG9yKGRldiwgY29ubmVjdG9yKQo+PiArCQlpbnRlbF9wYW5lbF9zZXRfYmFja2xpZ2h0 X2FjcGkoY29ubmVjdG9yLCBiY2xwLCAyNTUpOwo+PiAgCWFzbGUtPmNibHYgPSBESVZfUk9VTkRf VVAoYmNscCAqIDEwMCwgMjU1KSB8IEFTTEVfQ0JMVl9WQUxJRDsKPj4gIAo+PiAgCWRybV9tb2Rl c2V0X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4KTsKPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4+IGluZGV4IDcyMTgzYTA1N2M3OS4uZjViNGM5OGRlNjA4 IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKPj4gQEAgLTE4NDUsNyArMTg0 NSw3IEBAIHZvaWQgaW50ZWxfYmFja2xpZ2h0X3JlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4+ICB7Cj4+ICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+PiAgCj4+ IC0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5l Y3Rvcl9saXN0LCBiYXNlLmhlYWQpCj4+ICsJZm9yX2VhY2hfaW50ZWxfY29ubmVjdG9yKGRldiwg Y29ubmVjdG9yKQo+PiAgCQlpbnRlbF9iYWNrbGlnaHRfZGV2aWNlX3JlZ2lzdGVyKGNvbm5lY3Rv cik7Cj4+ICB9Cj4+ICAKPj4gQEAgLTE4NTMsNiArMTg1Myw2IEBAIHZvaWQgaW50ZWxfYmFja2xp Z2h0X3VucmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gIHsKPj4gIAlzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3I7Cj4+ICAKPj4gLQlsaXN0X2Zvcl9lYWNoX2VudHJ5 KGNvbm5lY3RvciwgJmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGJhc2UuaGVhZCkK Pj4gKwlmb3JfZWFjaF9pbnRlbF9jb25uZWN0b3IoZGV2LCBjb25uZWN0b3IpCj4+ICAJCWludGVs X2JhY2tsaWdodF9kZXZpY2VfdW5yZWdpc3Rlcihjb25uZWN0b3IpOwo+PiAgfQo+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMKPj4gaW5kZXggOTlmMjY0MmZkNWRmLi5kMzg1ZDk5OTFlZWQgMTAwNjQ0 Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+PiBAQCAtMzMxNCw3ICszMzE0LDcgQEAgc3RhdGlj IHZvaWQgc2tsX3dyaXRlX3dtX3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4+ICAJc3Ry dWN0IGludGVsX2NydGMgKmNydGM7Cj4+ICAKPj4gLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNydGMs ICZkZXYtPm1vZGVfY29uZmlnLmNydGNfbGlzdCwgYmFzZS5oZWFkKSB7Cj4+ICsJZm9yX2VhY2hf aW50ZWxfY3J0YyhkZXYsIGNydGMpIHsKPj4gIAkJaW50IGksIGxldmVsLCBtYXhfbGV2ZWwgPSBp bGtfd21fbWF4X2xldmVsKGRldik7Cj4+ICAJCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsK Pj4gIAo+PiBAQCAtMzUyMyw4ICszNTIzLDcgQEAgc3RhdGljIHZvaWQgc2tsX3VwZGF0ZV9vdGhl cl9waXBlX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ICAJICogT3RoZXJ3aXNlLCBiZWNh dXNlIG9mIHRoaXNfY3J0YyBiZWluZyBmcmVzaGx5IGVuYWJsZWQvZGlzYWJsZWQsIHRoZQo+PiAg CSAqIG90aGVyIGFjdGl2ZSBwaXBlcyBuZWVkIG5ldyBEREIgYWxsb2NhdGlvbiBhbmQgV00gdmFs dWVzLgo+PiAgCSAqLwo+PiAtCWxpc3RfZm9yX2VhY2hfZW50cnkoaW50ZWxfY3J0YywgJmRldi0+ bW9kZV9jb25maWcuY3J0Y19saXN0LAo+PiAtCQkJCWJhc2UuaGVhZCkgewo+PiArCWZvcl9lYWNo X2ludGVsX2NydGMoZGV2LCBpbnRlbF9jcnRjKSB7Cj4+ICAJCXN0cnVjdCBza2xfcGlwZV93bSBw aXBlX3dtID0ge307Cj4+ICAJCWJvb2wgd21fY2hhbmdlZDsKPj4gIAo+PiAtLSAKPj4gMi4xLjQK Pj4gCj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+ IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y Zwo+PiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVy Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==