From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: Re: [PATCH 1/2] drm/fb_helper: Add drm_fb_helper_output_poll_changed_with_rpm() Date: Thu, 19 Jul 2018 20:17:33 -0400 Message-ID: <28b8b637130be25c3bb7c85e33b2db9baa9ea381.camel@redhat.com> References: <20180718205645.25924-1-lyude@redhat.com> <20180718205645.25924-2-lyude@redhat.com> <20180719074926.GA14303@wunner.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Lukas Wunner Cc: David Airlie , nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Maarten Lankhorst , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Sean Paul , Ben Skeggs , Gustavo Padovan , Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCAyMDE4LTA3LTE5IGF0IDIwOjA4IC0wNDAwLCBMeXVkZSBQYXVsIHdyb3RlOgo+IFtz bmlwXQo+ID4gCj4gPiBBbnl0aGluZyB0aGF0IGhhcHBlbnMgaW4gbm91dmVhdSdzIHBvbGwgd29y a2VyIG5ldmVyIG5lZWRzIHRvIGFjcXVpcmUKPiA+IGEgcnVudGltZSBQTSByZWYgYmVjYXVzZSBw b2xsaW5nIGlzIG9ubHkgZW5hYmxlZCB3aGlsZSBydW50aW1lIGFjdGl2ZSwKPiA+IGFuZCAtPnJ1 bnRpbWVfc3VzcGVuZCB3YWl0cyBmb3IgYW4gb25nb2luZyBwb2xsIHRvIGZpbmlzaC4KPiAKPiBI b3BlZnVsbHkgSSdtIG5vdCBtaXNzaW5nIGFueXRoaW5nIGhlcmUsIGJ1dCB0aGlzIGRvZXNuJ3Qg cmVhbGx5IG1ha2UgYW55Cj4gc2Vuc2UuIEknbSBub3Qgc3VyZSBJIGV4cGxhaW5lZCBteXNlbGYg YXMgd2VsbCBhcyBJIHRob3VnaHQgSSBkaWQuIFRvIGJlCj4gaG9uZXN0LCBJIGhhZCB0byBkb3Vi bGUgY2hlY2sgdGhpcyBhYm91dCBsaXRlcmFsbHkgMjAgdGltZXMgdG8gbWFrZSBzdXJlIEkKPiB3 YXMKPiBhY3R1YWxseSB1bmRlcnN0YW5kaW5nIHRoaXMgaXNzdWUgY29ycmVjdGx5LiBUdXJucyBv dXQgSSB3YXMgbWlzc2luZyBhCj4gY291cGxlCj4gb2YgcGFydHMsIHNvIEknbSBnb2luZyB0byB0 cnkgYWdhaW4gYXQgZXhwbGFpbmluZyB0aGlzIHVzaW5nIGEgZGlhZ3JhbSB0aGF0Cj4gc2hvd3Mg dGhlIHZhcmlvdXMgdGhyZWFkcyBydW5uaW5nIGNvbmN1cnJlbnRseQo+IAo+IFNUQVJUOiBEcml2 ZXIgbG9hZAo+ICAgICAgICB8Cj4gICAgICAgIHwKPiAgICAgICAgfCAgICAgICAgICAgVGhyZWFk IDEKPiAgICAgICAgIC0tLS0tIG91dHB1dF9wb2xsX2V4ZWN1dGUoKQo+ICAgICAgICAgICAgICAg ICAgICAgICAgfAo+ICAgICAgICAgICAgZHJtX2hlbHBlcl9ocGRfaXJxX2V2ZW50KCkKPiAgICAg ICAgICAgICAgICAgICAgICAgIHwKPiAgICAgICAgICAgICAgICAgICAgICAgIHwgIFNjaGVkdWxl cyDihpIgICAgICAgICAgICBUaHJlYWQgMgo+ICAgICAgICAgICAgICAgICAgICAgICAgLS0tLS0t LS0tLS0tLS0tLS0gbm91dmVhdV9kaXNwbGF5X2hwZF93b3JrKCkKPiAgICAgICAgICAgICAgICAg ICAgIEZpbmlzaCAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwbV9ydW50aW1lX2dldF9zeW5jKCkgPC0tLSBrZWVw cwo+IEdQVSBhbGl2ZQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLi4uCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwKPiAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+ICAgICAgICAgICAgICAgICA8c3RpbGwgVGhyZWFkIDI+Cj4gICAgICAgICAg ICAgIGRybV9oZWxwZXJfaHBkX2lycV9ldmVudCgpCj4gICAgICAgICAgICAgICAgICAgICAgICB8 Cj4gICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgU2NoZWR1bGVzIOKGkgo+ICAgICAg ICAgICAgICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIFRocmVhZCAzCj4gRHJv cCBsYXN0IFJQTSByZWYgLXYgICB8ICAgICAgICAgICAgICAgICAgIG91dHB1dF9wb2xsX2V4ZWN1 dGUoKQo+ICAgICAgICAgICAgICBwbV9ydW50aW1lX3B1dF9zeW5jKCkgICAgICAgICAgICAgICAg ICB8CgogICAgICAgICAgICAgICAgICAgICAgXl5eXl5eCkFzIGFuIGFkZGl0aW9uYWwgbm90ZSwg SSByZWFsaXplZCB0aGlzIG1pZ2h0IHNlZW0gd3JvbmcgYnV0IGl0IGlzbid0CgpwbV9ydW50aW1l X3B1dF9zeW5jKCkgY2FsbHMgZG93biB0byBub3V2ZWF1J3MgcnVudGltZSBpZGxlIGNhbGxiYWNr LCB3aGljaApkb2VzIHRoaXM6CgpzdGF0aWMgaW50Cm5vdXZlYXVfcG1vcHNfcnVudGltZV9pZGxl KHN0cnVjdCBkZXZpY2UgKmRldikKewoJaWYgKCFub3V2ZWF1X3Btb3BzX3J1bnRpbWUoKSkgewoJ CXBtX3J1bnRpbWVfZm9yYmlkKGRldik7CgkJcmV0dXJuIC1FQlVTWTsKCX0KCglwbV9ydW50aW1l X21hcmtfbGFzdF9idXN5KGRldik7CglwbV9ydW50aW1lX2F1dG9zdXNwZW5kKGRldik7CgkvKiB3 ZSBkb24ndCB3YW50IHRoZSBtYWluIHJwbV9pZGxlIHRvIGNhbGwgc3VzcGVuZCAtIHdlIHdhbnQg dG8KYXV0b3N1c3BlbmQgKi8KCXJldHVybiAxOwp9CgpTbywgaXQgZG9lc24ndCBhY3R1YWxseSBz eW5jaHJvbm91c2x5IHN1c3BlbmQgdGhlIEdQVSwgaXQganVzdCBzdGFydHMgdXAgdGhlCmF1dG9z dXNwZW5kIHRocmVhZAoKSnVzdCB3YW50ZWQgdG8gbWFrZSBzdXJlIHRoZXJlIHdhc24ndCBhbnkg Y29uZnVzaW9uIDopCgo+ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICBkcm1f ZHBfbXN0X3RvcG9sb2d5X21ncl9zZXRfbXN0KCkKPiAgICAgICAgICAgICAgICAgICAgIEZpbmlz aCAgICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIOKGkCBTY2hlZHVsZXMgICAgICAgICAgfAo+ICAgICAgICAgICAgICAgICAgICAgICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Cj4gICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwKPiAgICAgICAgICAgICAgICAgICAgIFRocmVhZCA0 ICAgICAgICAgICAgICAgICAgICAgICAgfAo+ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8Cj4gICAgICAgICAgIGRybV9kcF9tc3RfbGlua19wcm9i ZV93b3JrKCkgIGRybV9kcF9tc3Rfd2FpdF90eF9yZXBseSgpIDwtLSB0aGVzZQo+IHdhaXQgb24g ZWFjaG90aGVyCj4gICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB0aAo+IGlzIGlzIG5vcm1hbAo+ICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICBTaWRlYmFuZCB0cmFuc2FjdGlvbnMgICB8Cj4gICAgICAgICAg ICAgICAgICAgICAgICB8ICAgIGhhcHBlbiBoZXJlLCB0aGlzIGlzICAgIHwKPiAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgd2hlcmUgdGltZW91dHMgaGFwcGVuICAgfAo+ICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cj4gICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgNSBzZWNvbmRzIGxhdGVyLi4uICAgIHwgYXV0b3N1c3BlbmQgZGVs YXkKPiBraWNrcyBpbgo+ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIC4uLiAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAKPiAgfAo+ICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgVGgKPiByZWFkIDUKPiAgICAgICAgICAgICAgICAgICAgICAgIHwgIENvbW11bmljYXRpb24g Kwo+IHRpbWVvdXRzICB8ICAgICAgICAgICAgICAgICBwbV9ydW50aW1lX3dvcmsKPiAgICAgICAg ICAgICAgICAgICAgICAgIHwgIGFyZSBzdGlsbCBoYXBwZW5pbmcKPiBoZXJlICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfAo+ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICBub3V2ZWF1X3Btb3AKPiBzX3J1bnRpbWVfc3VzcGVu ZCgpCj4gICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgIAo+ICB8Cj4gICAgICAgICAgICAgICAgICAgICAgICB8 ICBTdWNjZXNzISBXZSBjYW4KPiBlbmFibGUgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwK PiAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgIGRpc3BsYXlzCj4gbm93ISAgICAgICB8 ICAgICAgICAgICAgZHJtX2ttc19oZWxwZXJfcG9sbF9kaXNhYmxlKCkKPiAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgCj4gIHwKPiAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICpB dG9taWMgY29tbWl0Cj4gYmVnaW5zKiAgICAgICAgICAgICAgfAo+ICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICA8LS0tLS0tLS0tLQo+IC0t LSAgICAgfAo+ICAgICAgICAgICAgICAgICAgICAgICAgfCBNb3JlIHNpZGViYW5kIHRyYW5zYWN0 aW9ucyB8ICAgICAgIFdhaXRpbmcKPiBvbiAgICAgICB8Cj4gICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgIC4uLi4uLiAgICAgICAgICAgIHwgIG91dHB1dF9wb2xsX2V4ZWN1dGUoKQo+ IHwKPiAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgPC0tLS0tLS0tLS0KPiAtLS0gICAgIHwKPiAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICBwbV9ydW50aW1lX2dldF9zeW5jKCkgICAgICAgICAgICAgCj4gIHwK PiAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgCj4gIHwKPiAgICAgICAgICAgICAgICAgICAgICAgIHwgICAt LS0tLS0tLS0tLS0tLS0tLS0tLT4gICAgfCAgICAgLS0tLS0tLS0tLS0tLQo+ID4gICAgIHwKPiAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgIFdhaXRpbmcgb24gICAgICAgICAgfCAgICAg ICBXYWl0aW5nCj4gb24gICAgICAgfAo+ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgb3V0 cHV0X3BvbGxfZXhlYygpICAgICB8ICAgIHN1c3BlbmQKPiByZXF1ZXN0cyAgICB8Cj4gICAgICAg ICAgICAgICAgICAgICAgICB8ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0+ICAgIHwgICAgIC0tLS0t LS0tLS0tLS0KPiA+ICAgICB8Cj4gICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIAo+ICB8Cj4gICAgICAgICAg ICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+ID58Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFQQo+IERMT0NLCj4gCj4gcGhldy4g dGhhdCB0b29rIGEgTE9ORyB0aW1lIHRvIGNvbWUgdXAgd2l0aC4KPiAKPiBBbnl3YXktdGhhdCdz IHdoeSB5b3VyIGV4cGxhbmF0aW9uIGRvZXNuJ3QgbWFrZSBzZW5zZTogdGhlIGRlYWRsb2NrIGlz Cj4gaGFwcGVuaW5nIGJlY2F1c2Ugd2UncmUgY2FsbGluZyBwbV9ydW50aW1lX2dldF9zeW5jKCku IElmIHdlIHdlcmUgdG8gbWFrZQo+IHRoYXQKPiBjYWxsIGNvbmRpdGlvbmFsIChlLmcuIGRybV9r bXNfaGVscGVyX2lzX3BvbGxfd29ya2VyKCkpLCBhbGwgdGhhdCB3b3VsZCBtZWFuCj4gaXMgdGhh dCB3ZSB3b3VsZG4ndCBncmFiIGFueSBydW50aW1lIHBvd2VyIHJlZmVyZW5jZSBhbmQgdGhlIEdQ VSB3b3VsZAo+IGltbWVkaWF0ZWx5IHN1c3BlbmQgb25jZSB0aGUgYXRvbWljIGNvbW1pdCBmaW5p c2hlZCwgYXMgdGhlIHN1c3BlbmQgcmVxdWVzdAo+IGluCj4gVGhyZWFkIDUgd291bGQgZmluYWxs eSBnZXQgdW5ibG9ja2VkIGFuZCB0aHVzLS0tLXN1c3BlbmQuCj4gCj4gSG9wZWZ1bGx5IEkgZXhw bGFpbmVkIHRoYXQgYmV0dGVyIHRoaXMgdGltZSwgSSdsbCBkZWZpbml0ZWx5IG1ha2Ugc3VyZSB0 bwo+IGFjdHVhbGx5IGluY2x1ZGUgdGhhdCBkaWFncmFtIGluIHRoZSBwYXRjaC4gQXMgZm9yIHdo ZXRoZXIgb3Igbm90IHRoaXMgcGF0Y2gKPiBpcyBldmVuIHRoZSByaWdodCBzb2x1dGlvbiwgSSB3 aWxsIG5lZWQgdG8gY29uZmlybSB0aGF0IHRvbW1vcnJvdyAoaWYgeW91Cj4gZG9uJ3QgdGhpbmsg aXQgaXMgc3RpbGwsIHBsZWFzZSBmZWVsIGZyZWUgdG8gc2F5IHNvISkgYmVjYXVzZSBpdCdzIGdl dHRpbmcKPiBsYXRlIGhlcmUuCj4gCj4gQ2hlZXJzIQo+IAlMeXVkZQo+IAo+ID4gCj4gPiBUaGlu a2luZyBhIGJpdCBtb3JlIGFib3V0IHRoaXMsIG91ciBtaXN0YWtlIGlzIHRvIGFjcXVpcmUgcnVu dGltZSBQTQo+ID4gcmVmcyB0b28gZmFyIGRvd24gaW4gdGhlIGNhbGwgc3RhY2suICBBcyBhIGZp eCB0aGF0IGNhbiBiZSBiYWNrcG9ydGVkCj4gPiB0byBzdGFibGUsIGFkZGluZyBpZiAoIWRybV9r bXNfaGVscGVyX2lzX3BvbGxfd29ya2VyKCkpIGNvbmRpdGlvbmFscwo+ID4gc2VlbXMgZmluZSB0 byBtZSwgYnV0IHRoZSBsb25nIHRlcm0gZml4IGlzIHRvIHB1c2ggYWNxdWlzaXRpb24gb2YgcmVm cwo+ID4gZnVydGhlciB1cCBpbiB0aGUgY2FsbCBzdGFjay4KPiA+IAo+ID4gRS5nLiwgaWYgdGhl IHVzZXIgZm9yY2VzIGNvbm5lY3RvciBwcm9iaW5nIHZpYSBzeXNmcywgYSBydW50aW1lIFBNIHJl Zgo+ID4gc2hvdWxkIGJlIGFjcXVpcmVkIGluIHN0YXR1c19zdG9yZSgpIGluIGRybV9zeXNmcy5j IGJlZm9yZSBpbnZva2luZwo+ID4gY29ubmVjdG9yLT5mdW5jcy0+ZmlsbF9tb2RlcygpLiAgVGhh dCB3YXksIGlmIHRoZSB1c2VyIGZvcmNlcyBjb25uZWN0b3IKPiA+IHByb2Jpbmcgd2hpbGUgdGhl IEdQVSBpcyBwb3dlcmluZyBkb3duLCBycG1fcmVzdW1lKCkgd2lsbCBjb3JyZWN0bHkgd2FpdAo+ ID4gZm9yIHJwbV9zdXNwZW5kKCkgdG8gZmluaXNoIGJlZm9yZSByZXN1bWluZyB0aGUgY2FyZC4g IFNvIGlmIHdlIGFyY2hpdGVjdAo+ID4gaXQgbGlrZSB0aGlzLCB3ZSdyZSBhY3R1YWxseSB1c2lu ZyB0aGUgZnVuY3Rpb25hbGl0eSBwcm92aWRlZCBieSB0aGUKPiA+IFBNIGNvcmUgaW4gdGhlIHdh eSB0aGF0IGl0J3Mgc3VwcG9zZWQgdG8gYmUgdXNlZC4KPiA+IAo+ID4gVGhlIHByb2JsZW0gaXMg dGhhdCBhZGRpbmcgcG1fcnVudGltZV9nZXRfc3luYygpIHRvIHN0YXR1c19zdG9yZSgpCj4gPiBj b25mbGljdHMgd2l0aCB0aGUgZGVzaXJlIHRvIGhhdmUgYSBsaWJyYXJ5IG9mIGdlbmVyaWMgRFJN IGZ1bmN0aW9uczoKPiA+IFNvbWUgR1BVcyBtYXkgYmUgYWJsZSB0byBwcm9iZSBjb25uZWN0b3Jz IHdpdGhvdXQgcmVzdW1pbmcgdG8gcnVudGltZQo+ID4gYWN0aXZlIHN0YXRlLCBvdGhlcnMgZG9u J3QgdXNlIHJ1bnRpbWUgUE0gYXQgYWxsLiAgT25lIHNvbHV0aW9uIHRoYXQKPiA+IGNvbWVzIHRv IG1pbmQgaXMgYSBkcml2ZXJfZmVhdHVyZXMgZmxhZyB3aGljaCB0ZWxscyB0aGUgRFJNIGNvcmUg d2hldGhlcgo+ID4gdG8gYWNxdWlyZSBhIHJ1bnRpbWUgUE0gcmVmIGluIHZhcmlvdXMgcGxhY2Vz Lgo+ID4gCj4gPiBJbiB5b3VyIG9yaWdpbmFsIHBhdGNoZXMgNCBhbmQgNSwgd2hhdCBleGFjdGx5 IHdhcyB0aGUgY2FsbCBzdGFjayB3aGljaAo+ID4gbGVkIHRvIGkyYyBiZWluZyBhY2Nlc3NlZCB3 aGlsZSBydW50aW1lIHN1c3BlbmRlZD8gIFdhcyBpdCBzeXNmcyBhY2Nlc3MKPiA+IHZpYSAvc3lz L2NsYXNzL2kyYy1hZGFwdGVyLyogPyAgSWYgc28sIGFjcXVpc2l0aW9uIG9mIHRoZSBydW50aW1l IFBNIHJlZgo+ID4gbmVlZHMgdG8gbGlrZXdpc2UgaGFwcGVuIGluIHRoYXQgc3lzZnMgZW50cnkg cG9pbnQsIHJhdGhlciB0aGFuIGRlZXAgZG93bgo+ID4gaW4gdGhlIGNhbGwgc3RhY2sgdXBvbiBh Y2Nlc3NpbmcgdGhlIGkyYyBidXMuCj4gPiAKPiA+IFRoYW5rcywKPiA+IAo+ID4gTHVrYXMKPiA+ IAo+ID4gPiAKPiA+ID4gU2FtcGxlOgo+ID4gPiBbICAyNDYuNjY5NjI1XSBJTkZPOiB0YXNrIGt3 b3JrZXIvNDowOjM3IGJsb2NrZWQgZm9yIG1vcmUgdGhhbiAxMjAKPiA+ID4gc2Vjb25kcy4KPiA+ ID4gWyAgMjQ2LjY3MzM5OF0gICAgICAgTm90IHRhaW50ZWQgNC4xOC4wLXJjNUx5dWRlLVRlc3Qr ICMyCj4gPiA+IFsgIDI0Ni42NzUyNzFdICJlY2hvIDAgPiAvcHJvYy9zeXMva2VybmVsL2h1bmdf dGFza190aW1lb3V0X3NlY3MiCj4gPiA+IGRpc2FibGVzCj4gPiA+IHRoaXMgbWVzc2FnZS4KPiA+ ID4gWyAgMjQ2LjY3NjUyN10ga3dvcmtlci80OjAgICAgIEQgICAgMCAgICAzNyAgICAgIDIgMHg4 MDAwMDAwMAo+ID4gPiBbICAyNDYuNjc3NTgwXSBXb3JrcXVldWU6IGV2ZW50cyBvdXRwdXRfcG9s bF9leGVjdXRlIFtkcm1fa21zX2hlbHBlcl0KPiA+ID4gWyAgMjQ2LjY3ODcwNF0gQ2FsbCBUcmFj ZToKPiA+ID4gWyAgMjQ2LjY3OTc1M10gIF9fc2NoZWR1bGUrMHgzMjIvMHhhZjAKPiA+ID4gWyAg MjQ2LjY4MDkxNl0gIHNjaGVkdWxlKzB4MzMvMHg5MAo+ID4gPiBbICAyNDYuNjgxOTI0XSAgc2No ZWR1bGVfcHJlZW1wdF9kaXNhYmxlZCsweDE1LzB4MjAKPiA+ID4gWyAgMjQ2LjY4MzAyM10gIF9f bXV0ZXhfbG9jaysweDU2OS8weDlhMAo+ID4gPiBbICAyNDYuNjg0MDM1XSAgPyBrb2JqZWN0X3Vl dmVudF9lbnYrMHgxMTcvMHg3YjAKPiA+ID4gWyAgMjQ2LjY4NTEzMl0gID8gZHJtX2ZiX2hlbHBl cl9ob3RwbHVnX2V2ZW50LnBhcnQuMjgrMHgyMC8weGIwCj4gPiA+IFtkcm1fa21zX2hlbHBlcl0K PiA+ID4gWyAgMjQ2LjY4NjE3OV0gIG11dGV4X2xvY2tfbmVzdGVkKzB4MWIvMHgyMAo+ID4gPiBb ICAyNDYuNjg3Mjc4XSAgPyBtdXRleF9sb2NrX25lc3RlZCsweDFiLzB4MjAKPiA+ID4gWyAgMjQ2 LjY4ODMwN10gIGRybV9mYl9oZWxwZXJfaG90cGx1Z19ldmVudC5wYXJ0LjI4KzB4MjAvMHhiMAo+ ID4gPiBbZHJtX2ttc19oZWxwZXJdCj4gPiA+IFsgIDI0Ni42ODk0MjBdICBkcm1fZmJfaGVscGVy X291dHB1dF9wb2xsX2NoYW5nZWQrMHgyMy8weDMwCj4gPiA+IFtkcm1fa21zX2hlbHBlcl0KPiA+ ID4gWyAgMjQ2LjY5MDQ2Ml0gIGRybV9rbXNfaGVscGVyX2hvdHBsdWdfZXZlbnQrMHgyYS8weDMw IFtkcm1fa21zX2hlbHBlcl0KPiA+ID4gWyAgMjQ2LjY5MTU3MF0gIG91dHB1dF9wb2xsX2V4ZWN1 dGUrMHgxOTgvMHgxYzAgW2RybV9rbXNfaGVscGVyXQo+ID4gPiBbICAyNDYuNjkyNjExXSAgcHJv Y2Vzc19vbmVfd29yaysweDIzMS8weDYyMAo+ID4gPiBbICAyNDYuNjkzNzI1XSAgd29ya2VyX3Ro cmVhZCsweDIxNC8weDNhMAo+ID4gPiBbICAyNDYuNjk0NzU2XSAga3RocmVhZCsweDEyYi8weDE1 MAo+ID4gPiBbICAyNDYuNjk1ODU2XSAgPyB3cV9wb29sX2lkc19zaG93KzB4MTQwLzB4MTQwCj4g PiA+IFsgIDI0Ni42OTY4ODhdICA/IGt0aHJlYWRfY3JlYXRlX3dvcmtlcl9vbl9jcHUrMHg3MC8w eDcwCj4gPiA+IFsgIDI0Ni42OTc5OThdICByZXRfZnJvbV9mb3JrKzB4M2EvMHg1MAo+ID4gPiBb ICAyNDYuNjk5MDM0XSBJTkZPOiB0YXNrIGt3b3JrZXIvMDoxOjYwIGJsb2NrZWQgZm9yIG1vcmUg dGhhbiAxMjAKPiA+ID4gc2Vjb25kcy4KPiA+ID4gWyAgMjQ2LjcwMDE1M10gICAgICAgTm90IHRh aW50ZWQgNC4xOC4wLXJjNUx5dWRlLVRlc3QrICMyCj4gPiA+IFsgIDI0Ni43MDExODJdICJlY2hv IDAgPiAvcHJvYy9zeXMva2VybmVsL2h1bmdfdGFza190aW1lb3V0X3NlY3MiCj4gPiA+IGRpc2Fi bGVzCj4gPiA+IHRoaXMgbWVzc2FnZS4KPiA+ID4gWyAgMjQ2LjcwMjI3OF0ga3dvcmtlci8wOjEg ICAgIEQgICAgMCAgICA2MCAgICAgIDIgMHg4MDAwMDAwMAo+ID4gPiBbICAyNDYuNzAzMjkzXSBX b3JrcXVldWU6IHBtIHBtX3J1bnRpbWVfd29yawo+ID4gPiBbICAyNDYuNzA0MzkzXSBDYWxsIFRy YWNlOgo+ID4gPiBbICAyNDYuNzA1NDAzXSAgX19zY2hlZHVsZSsweDMyMi8weGFmMAo+ID4gPiBb ICAyNDYuNzA2NDM5XSAgPyB3YWl0X2Zvcl9jb21wbGV0aW9uKzB4MTA0LzB4MTkwCj4gPiA+IFsg IDI0Ni43MDczOTNdICBzY2hlZHVsZSsweDMzLzB4OTAKPiA+ID4gWyAgMjQ2LjcwODM3NV0gIHNj aGVkdWxlX3RpbWVvdXQrMHgzYTUvMHg1OTAKPiA+ID4gWyAgMjQ2LjcwOTI4OV0gID8gbWFya19o ZWxkX2xvY2tzKzB4NTgvMHg4MAo+ID4gPiBbICAyNDYuNzEwMjA4XSAgPyBfcmF3X3NwaW5fdW5s b2NrX2lycSsweDJjLzB4NDAKPiA+ID4gWyAgMjQ2LjcxMTIyMl0gID8gd2FpdF9mb3JfY29tcGxl dGlvbisweDEwNC8weDE5MAo+ID4gPiBbICAyNDYuNzEyMTM0XSAgPyB0cmFjZV9oYXJkaXJxc19v bl9jYWxsZXIrMHhmNC8weDE5MAo+ID4gPiBbICAyNDYuNzEzMDk0XSAgPyB3YWl0X2Zvcl9jb21w bGV0aW9uKzB4MTA0LzB4MTkwCj4gPiA+IFsgIDI0Ni43MTM5NjRdICB3YWl0X2Zvcl9jb21wbGV0 aW9uKzB4MTJjLzB4MTkwCj4gPiA+IFsgIDI0Ni43MTQ4OTVdICA/IHdha2VfdXBfcSsweDgwLzB4 ODAKPiA+ID4gWyAgMjQ2LjcxNTcyN10gID8gZ2V0X3dvcmtfcG9vbCsweDkwLzB4OTAKPiA+ID4g WyAgMjQ2LjcxNjY0OV0gIGZsdXNoX3dvcmsrMHgxYzkvMHgyODAKPiA+ID4gWyAgMjQ2LjcxNzQ4 M10gID8gZmx1c2hfd29ya3F1ZXVlX3ByZXBfcHdxcysweDFiMC8weDFiMAo+ID4gPiBbICAyNDYu NzE4NDQyXSAgX19jYW5jZWxfd29ya190aW1lcisweDE0Ni8weDFkMAo+ID4gPiBbICAyNDYuNzE5 MjQ3XSAgY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKzB4MTMvMHgyMAo+ID4gPiBbICAyNDYuNzIw MDQzXSAgZHJtX2ttc19oZWxwZXJfcG9sbF9kaXNhYmxlKzB4MWYvMHgzMCBbZHJtX2ttc19oZWxw ZXJdCj4gPiA+IFsgIDI0Ni43MjExMjNdICBub3V2ZWF1X3Btb3BzX3J1bnRpbWVfc3VzcGVuZCsw eDNkLzB4YjAgW25vdXZlYXVdCj4gPiA+IFsgIDI0Ni43MjE4OTddICBwY2lfcG1fcnVudGltZV9z dXNwZW5kKzB4NmIvMHgxOTAKPiA+ID4gWyAgMjQ2LjcyMjgyNV0gID8gcGNpX2hhc19sZWdhY3lf cG1fc3VwcG9ydCsweDcwLzB4NzAKPiA+ID4gWyAgMjQ2LjcyMzczN10gIF9fcnBtX2NhbGxiYWNr KzB4N2EvMHgxZDAKPiA+ID4gWyAgMjQ2LjcyNDcyMV0gID8gcGNpX2hhc19sZWdhY3lfcG1fc3Vw cG9ydCsweDcwLzB4NzAKPiA+ID4gWyAgMjQ2LjcyNTYwN10gIHJwbV9jYWxsYmFjaysweDI0LzB4 ODAKPiA+ID4gWyAgMjQ2LjcyNjU1M10gID8gcGNpX2hhc19sZWdhY3lfcG1fc3VwcG9ydCsweDcw LzB4NzAKPiA+ID4gWyAgMjQ2LjcyNzM3Nl0gIHJwbV9zdXNwZW5kKzB4MTQyLzB4NmIwCj4gPiA+ IFsgIDI0Ni43MjgxODVdICBwbV9ydW50aW1lX3dvcmsrMHg5Ny8weGMwCj4gPiA+IFsgIDI0Ni43 Mjg5MzhdICBwcm9jZXNzX29uZV93b3JrKzB4MjMxLzB4NjIwCj4gPiA+IFsgIDI0Ni43Mjk3OTZd ICB3b3JrZXJfdGhyZWFkKzB4NDQvMHgzYTAKPiA+ID4gWyAgMjQ2LjczMDYxNF0gIGt0aHJlYWQr MHgxMmIvMHgxNTAKPiA+ID4gWyAgMjQ2LjczMTM5NV0gID8gd3FfcG9vbF9pZHNfc2hvdysweDE0 MC8weDE0MAo+ID4gPiBbICAyNDYuNzMyMjAyXSAgPyBrdGhyZWFkX2NyZWF0ZV93b3JrZXJfb25f Y3B1KzB4NzAvMHg3MAo+ID4gPiBbICAyNDYuNzMyODc4XSAgcmV0X2Zyb21fZm9yaysweDNhLzB4 NTAKPiA+ID4gWyAgMjQ2LjczMzc2OF0gSU5GTzogdGFzayBrd29ya2VyLzQ6Mjo0MjIgYmxvY2tl ZCBmb3IgbW9yZSB0aGFuIDEyMAo+ID4gPiBzZWNvbmRzLgo+ID4gPiBbICAyNDYuNzM0NTg3XSAg ICAgICBOb3QgdGFpbnRlZCA0LjE4LjAtcmM1THl1ZGUtVGVzdCsgIzIKPiA+ID4gWyAgMjQ2Ljcz NTM5M10gImVjaG8gMCA+IC9wcm9jL3N5cy9rZXJuZWwvaHVuZ190YXNrX3RpbWVvdXRfc2VjcyIK PiA+ID4gZGlzYWJsZXMKPiA+ID4gdGhpcyBtZXNzYWdlLgo+ID4gPiBbICAyNDYuNzM2MTEzXSBr d29ya2VyLzQ6MiAgICAgRCAgICAwICAgNDIyICAgICAgMiAweDgwMDAwMDgwCj4gPiA+IFsgIDI0 Ni43MzY3ODldIFdvcmtxdWV1ZTogZXZlbnRzX2xvbmcgZHJtX2RwX21zdF9saW5rX3Byb2JlX3dv cmsKPiA+ID4gW2RybV9rbXNfaGVscGVyXQo+ID4gPiBbICAyNDYuNzM3NjY1XSBDYWxsIFRyYWNl Ogo+ID4gPiBbICAyNDYuNzM4NDkwXSAgX19zY2hlZHVsZSsweDMyMi8weGFmMAo+ID4gPiBbICAy NDYuNzM5MjUwXSAgc2NoZWR1bGUrMHgzMy8weDkwCj4gPiA+IFsgIDI0Ni43Mzk5MDhdICBycG1f cmVzdW1lKzB4MTljLzB4ODUwCj4gPiA+IFsgIDI0Ni43NDA3NTBdICA/IGZpbmlzaF93YWl0KzB4 OTAvMHg5MAo+ID4gPiBbICAyNDYuNzQxNTQxXSAgX19wbV9ydW50aW1lX3Jlc3VtZSsweDRlLzB4 OTAKPiA+ID4gWyAgMjQ2Ljc0MjM3MF0gIG52NTBfZGlzcF9hdG9taWNfY29tbWl0KzB4MzEvMHgy MTAgW25vdXZlYXVdCj4gPiA+IFsgIDI0Ni43NDMxMjRdICBkcm1fYXRvbWljX2NvbW1pdCsweDRh LzB4NTAgW2RybV0KPiA+ID4gWyAgMjQ2Ljc0Mzc3NV0gIHJlc3RvcmVfZmJkZXZfbW9kZV9hdG9t aWMrMHgxYzgvMHgyNDAgW2RybV9rbXNfaGVscGVyXQo+ID4gPiBbICAyNDYuNzQ0NjAzXSAgcmVz dG9yZV9mYmRldl9tb2RlKzB4MzEvMHgxNDAgW2RybV9rbXNfaGVscGVyXQo+ID4gPiBbICAyNDYu NzQ1MzczXSAgZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2X21vZGVfdW5sb2NrZWQrMHg1NC8w eGIwCj4gPiA+IFtkcm1fa21zX2hlbHBlcl0KPiA+ID4gWyAgMjQ2Ljc0NjIyMF0gIGRybV9mYl9o ZWxwZXJfc2V0X3BhcisweDJkLzB4NTAgW2RybV9rbXNfaGVscGVyXQo+ID4gPiBbICAyNDYuNzQ2 ODg0XSAgZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50LnBhcnQuMjgrMHg5Ni8weGIwCj4gPiA+ IFtkcm1fa21zX2hlbHBlcl0KPiA+ID4gWyAgMjQ2Ljc0NzY3NV0gIGRybV9mYl9oZWxwZXJfb3V0 cHV0X3BvbGxfY2hhbmdlZCsweDIzLzB4MzAKPiA+ID4gW2RybV9rbXNfaGVscGVyXQo+ID4gPiBb ICAyNDYuNzQ4NTQ0XSAgZHJtX2ttc19oZWxwZXJfaG90cGx1Z19ldmVudCsweDJhLzB4MzAgW2Ry bV9rbXNfaGVscGVyXQo+ID4gPiBbICAyNDYuNzQ5NDM5XSAgbnY1MF9tc3RtX2hvdHBsdWcrMHgx NS8weDIwIFtub3V2ZWF1XQo+ID4gPiBbICAyNDYuNzUwMTExXSAgZHJtX2RwX3NlbmRfbGlua19h ZGRyZXNzKzB4MTc3LzB4MWMwIFtkcm1fa21zX2hlbHBlcl0KPiA+ID4gWyAgMjQ2Ljc1MDc2NF0g IGRybV9kcF9jaGVja19hbmRfc2VuZF9saW5rX2FkZHJlc3MrMHhhOC8weGQwCj4gPiA+IFtkcm1f a21zX2hlbHBlcl0KPiA+ID4gWyAgMjQ2Ljc1MTYwMl0gIGRybV9kcF9tc3RfbGlua19wcm9iZV93 b3JrKzB4NTEvMHg5MCBbZHJtX2ttc19oZWxwZXJdCj4gPiA+IFsgIDI0Ni43NTIzMTRdICBwcm9j ZXNzX29uZV93b3JrKzB4MjMxLzB4NjIwCj4gPiA+IFsgIDI0Ni43NTI5NzldICB3b3JrZXJfdGhy ZWFkKzB4NDQvMHgzYTAKPiA+ID4gWyAgMjQ2Ljc1MzgzOF0gIGt0aHJlYWQrMHgxMmIvMHgxNTAK PiA+ID4gWyAgMjQ2Ljc1NDYxOV0gID8gd3FfcG9vbF9pZHNfc2hvdysweDE0MC8weDE0MAo+ID4g PiBbICAyNDYuNzU1Mzg2XSAgPyBrdGhyZWFkX2NyZWF0ZV93b3JrZXJfb25fY3B1KzB4NzAvMHg3 MAo+ID4gPiBbICAyNDYuNzU2MTYyXSAgcmV0X2Zyb21fZm9yaysweDNhLzB4NTAKPiA+ID4gWyAg MjQ2Ljc1Njg0N10KPiA+ID4gICAgICAgICAgICAgICAgU2hvd2luZyBhbGwgbG9ja3MgaGVsZCBp biB0aGUgc3lzdGVtOgo+ID4gPiBbICAyNDYuNzU4MjYxXSAzIGxvY2tzIGhlbGQgYnkga3dvcmtl ci80OjAvMzc6Cj4gPiA+IFsgIDI0Ni43NTkwMTZdICAjMDogMDAwMDAwMDBmOGRmNGQyZCAoKHdx X2NvbXBsZXRpb24pImV2ZW50cyIpeysuKy59LAo+ID4gPiBhdDoKPiA+ID4gcHJvY2Vzc19vbmVf d29yaysweDFiMy8weDYyMAo+ID4gPiBbICAyNDYuNzU5ODU2XSAgIzE6IDAwMDAwMDAwZTYwNjU0 NjEgKCh3b3JrX2NvbXBsZXRpb24pKCYoJmRldi0KPiA+ID4gPiBtb2RlX2NvbmZpZy5vdXRwdXRf cG9sbF93b3JrKS0+d29yaykpeysuKy59LCBhdDoKPiA+ID4gCj4gPiA+IHByb2Nlc3Nfb25lX3dv cmsrMHgxYjMvMHg2MjAKPiA+ID4gWyAgMjQ2Ljc2MDY3MF0gICMyOiAwMDAwMDAwMGNiNjY3MzVm ICgmaGVscGVyLT5sb2NrKXsrLisufSwgYXQ6Cj4gPiA+IGRybV9mYl9oZWxwZXJfaG90cGx1Z19l dmVudC5wYXJ0LjI4KzB4MjAvMHhiMCBbZHJtX2ttc19oZWxwZXJdCj4gPiA+IFsgIDI0Ni43NjE1 MTZdIDIgbG9ja3MgaGVsZCBieSBrd29ya2VyLzA6MS82MDoKPiA+ID4gWyAgMjQ2Ljc2MjI3NF0g ICMwOiAwMDAwMDAwMGZmZjZiZTBmICgod3FfY29tcGxldGlvbikicG0iKXsrLisufSwgYXQ6Cj4g PiA+IHByb2Nlc3Nfb25lX3dvcmsrMHgxYjMvMHg2MjAKPiA+ID4gWyAgMjQ2Ljc2Mjk4Ml0gICMx OiAwMDAwMDAwMDVhYjQ0ZmI0ICgod29ya19jb21wbGV0aW9uKSgmZGV2LQo+ID4gPiA+IHBvd2Vy LndvcmspKXsrLisufSwgYXQ6IHByb2Nlc3Nfb25lX3dvcmsrMHgxYjMvMHg2MjAKPiA+ID4gCj4g PiA+IFsgIDI0Ni43NjM4OTBdIDEgbG9jayBoZWxkIGJ5IGtodW5ndGFza2QvNjQ6Cj4gPiA+IFsg IDI0Ni43NjQ2NjRdICAjMDogMDAwMDAwMDA4Y2I4YjVjMyAocmN1X3JlYWRfbG9jayl7Li4uLn0s IGF0Ogo+ID4gPiBkZWJ1Z19zaG93X2FsbF9sb2NrcysweDIzLzB4MTg1Cj4gPiA+IFsgIDI0Ni43 NjU1ODhdIDUgbG9ja3MgaGVsZCBieSBrd29ya2VyLzQ6Mi80MjI6Cj4gPiA+IFsgIDI0Ni43NjY0 NDBdICAjMDogMDAwMDAwMDAyMzJmMDk1OQo+ID4gPiAoKHdxX2NvbXBsZXRpb24pImV2ZW50c19s b25nIil7Ky4rLn0sCj4gPiA+IGF0OiBwcm9jZXNzX29uZV93b3JrKzB4MWIzLzB4NjIwCj4gPiA+ IFsgIDI0Ni43NjczOTBdICAjMTogMDAwMDAwMDBiYjU5YjEzNCAoKHdvcmtfY29tcGxldGlvbiko Jm1nci0KPiA+ID4gPiB3b3JrKSl7Ky4rLn0sIGF0OiBwcm9jZXNzX29uZV93b3JrKzB4MWIzLzB4 NjIwCj4gPiA+IAo+ID4gPiBbICAyNDYuNzY4MTU0XSAgIzI6IDAwMDAwMDAwY2I2NjczNWYgKCZo ZWxwZXItPmxvY2speysuKy59LCBhdDoKPiA+ID4gZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2ZiZGV2 X21vZGVfdW5sb2NrZWQrMHg0Yy8weGIwIFtkcm1fa21zX2hlbHBlcl0KPiA+ID4gWyAgMjQ2Ljc2 ODk2Nl0gICMzOiAwMDAwMDAwMDRjOGYwYjZiIChjcnRjX3d3X2NsYXNzX2FjcXVpcmUpeysuKy59 LCBhdDoKPiA+ID4gcmVzdG9yZV9mYmRldl9tb2RlX2F0b21pYysweDRiLzB4MjQwIFtkcm1fa21z X2hlbHBlcl0KPiA+ID4gWyAgMjQ2Ljc2OTkyMV0gICM0OiAwMDAwMDAwMDRjMzRhMjk2IChjcnRj X3d3X2NsYXNzX211dGV4KXsrLisufSwgYXQ6Cj4gPiA+IGRybV9tb2Rlc2V0X2JhY2tvZmYrMHg4 YS8weDFiMCBbZHJtXQo+ID4gPiBbICAyNDYuNzcwODM5XSAxIGxvY2sgaGVsZCBieSBkbWVzZy8x MDM4Ogo+ID4gPiBbICAyNDYuNzcxNzM5XSAyIGxvY2tzIGhlbGQgYnkgenNoLzExNzI6Cj4gPiA+ IFsgIDI0Ni43NzI2NTBdICAjMDogMDAwMDAwMDA4MzZkMDQzOCAoJnR0eS0+bGRpc2Nfc2VtKXsr KysrfSwgYXQ6Cj4gPiA+IGxkc2VtX2Rvd25fcmVhZCsweDM3LzB4NDAKPiA+ID4gWyAgMjQ2Ljc3 MzY4MF0gICMxOiAwMDAwMDAwMDFmNGY0ZDQ4ICgmbGRhdGEtPmF0b21pY19yZWFkX2xvY2speysu Ky59LAo+ID4gPiBhdDoKPiA+ID4gbl90dHlfcmVhZCsweGMxLzB4ODcwCj4gPiA+IAo+ID4gPiBb ICAyNDYuNzc1NTIyXSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KPiA+ID4gCj4gPiA+IFNvLCB0byBmaXggdGhpcyAoYW5kIGFueSBvdGhlciBwb3NzaWJsZSBk ZWFkbG9jayBpc3N1ZXMgbGlrZSB0aGlzIHRoYXQKPiA+ID4gY291bGQgb2NjdXIgaW4gdGhlIG91 dHB1dF9wb2xsX2NoYW5nZWQgcGF0Y2gpIHdlIG1ha2Ugc3VyZSB0aGF0Cj4gPiA+IG5vdXZlYXUn cyBvdXRwdXRfcG9sbF9jaGFuZ2VkIGZ1bmN0aW9ucyBncmFiIGEgcnVudGltZSBwb3dlciByZWYg YmVmb3JlCj4gPiA+IHNlbmRpbmcgYW55IGhvdHBsdWcgZXZlbnRzLCBhbmQgaG9sZCBpdCB1bnRp bCB3ZSdyZSBmaW5pc2hlZC4gV2UKPiA+ID4gaW50cm9kdWNlIHRoaXMgdGhyb3VnaCBhZGRpbmcg YSBnZW5lcmljIERSTSBoZWxwZXIgd2hpY2ggb3RoZXIgZHJpdmVycwo+ID4gPiBtYXkgcmV1c2Uu Cj4gPiA+IAo+ID4gPiBUaGlzIGZpeGVzIGRlYWRsb2NrIGlzc3VlcyB3aGVuIGluIGZiY29uIHdp dGggbm91dmVhdSBvbiBteSBQNTAsIGFuZAo+ID4gPiBzaG91bGQgZml4IGl0IGZvciBldmVyeW9u ZSBlbHNlJ3MgYXMgd2VsbCEKPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IEx5dWRlIFBhdWwg PGx5dWRlQHJlZGhhdC5jb20+Cj4gPiA+IFJldmlld2VkLWJ5OiBLYXJvbCBIZXJic3QgPGthcm9s aGVyYnN0QGdtYWlsLmNvbT4KPiA+ID4gQ2M6IEx1a2FzIFd1bm5lciA8bHVrYXNAd3VubmVyLmRl Pgo+ID4gPiBDYzogc3RhYmxlQHZnZXIua2VybmVsLm9yZwo+ID4gPiAtLS0KPiA+ID4gQ2hhbmdl cyBzaW5jZSB2MToKPiA+ID4gIC0gQWRkIGEgZ2VuZXJpYyBoZWxwZXIgZm9yIERSTSB0byBoYW5k bGUgdGhpcwo+ID4gPiAKPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgICAg ICAgICB8IDIzICsrKysrKysrKysrKysrKysrKysrKysrCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9kaXNwbnY1MC9kaXNwLmMgfCAgMiArLQo+ID4gPiAgaW5jbHVkZS9kcm0vZHJtX2Zi X2hlbHBlci5oICAgICAgICAgICAgIHwgIDUgKysrKysKPiA+ID4gIDMgZmlsZXMgY2hhbmdlZCwg MjkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2ZiX2hlbHBlci5jCj4gPiA+IGluZGV4IDJlZTFlYWE2NjE4OC4uMWFiMmYzNjQ2NTI2IDEw MDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCj4gPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiA+ID4gQEAgLTM0LDYgKzM0LDcg QEAKPiA+ID4gICNpbmNsdWRlIDxsaW51eC9zeXNycS5oPgo+ID4gPiAgI2luY2x1ZGUgPGxpbnV4 L3NsYWIuaD4KPiA+ID4gICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiA+ID4gKyNpbmNsdWRl IDxsaW51eC9wbV9ydW50aW1lLmg+Cj4gPiA+ICAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KPiA+ID4g ICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KPiA+ID4gICNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hl bHBlci5oPgo+ID4gPiBAQCAtMjkyOCw2ICsyOTI5LDI4IEBAIHZvaWQgZHJtX2ZiX2hlbHBlcl9v dXRwdXRfcG9sbF9jaGFuZ2VkKHN0cnVjdAo+ID4gPiBkcm1fZGV2aWNlICpkZXYpCj4gPiA+ICB9 Cj4gPiA+ICBFWFBPUlRfU1lNQk9MKGRybV9mYl9oZWxwZXJfb3V0cHV0X3BvbGxfY2hhbmdlZCk7 Cj4gPiA+ICAKPiA+ID4gKy8qKgo+ID4gPiArICogZHJtX2ZiX2hlbHBlcl9vdXRwdXRfcG9sbF9j aGFuZ2VkX3dpdGhfcnBtIC0gRFJNIG1vZGUKPiA+ID4gKyAqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZwo+ID4gPiBcLm91dHB1dF9wb2xsX2NoYW5n ZWQKPiA+ID4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGhlbHBlciBmb3IgZmJkZXYKPiA+ID4gZW11bGF0aW9uCj4gPiA+ICsgKiBAZGV2OiBEUk0gZGV2 aWNlCj4gPiA+ICsgKgo+ID4gPiArICogU2FtZSBhcyBkcm1fZmJfaGVscGVyX291dHB1dF9wb2xs X2NoYW5nZWQsIGV4Y2VwdCB0aGF0IGl0IG1ha2VzIHN1cmUKPiA+ID4gdGhhdAo+ID4gPiArICog dGhlIGRldmljZSBpcyBhY3RpdmUgYnkgc3luY2hyb25vdXNseSBncmFiYmluZyBhIHJ1bnRpbWUg cG93ZXIKPiA+ID4gcmVmZXJlbmNlCj4gPiA+ICsgKiB3aGlsZSBwcm9iaW5nLgo+ID4gPiArICov Cj4gPiA+ICt2b2lkIGRybV9mYl9oZWxwZXJfb3V0cHV0X3BvbGxfY2hhbmdlZF93aXRoX3JwbShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gPiArewo+ID4gPiArCWludCByZXQ7Cj4gPiA+ICsK PiA+ID4gKwlyZXQgPSBwbV9ydW50aW1lX2dldF9zeW5jKGRldi0+ZGV2KTsKPiA+ID4gKwlpZiAo V0FSTl9PTihyZXQgPCAwICYmIHJldCAhPSAtRUFDQ0VTKSkKPiA+ID4gKwkJcmV0dXJuOwo+ID4g PiArCWRybV9mYl9oZWxwZXJfaG90cGx1Z19ldmVudChkZXYtPmZiX2hlbHBlcik7Cj4gPiA+ICsJ cG1fcnVudGltZV9wdXQoZGV2LT5kZXYpOwo+ID4gPiArfQo+ID4gPiArRVhQT1JUX1NZTUJPTChk cm1fZmJfaGVscGVyX291dHB1dF9wb2xsX2NoYW5nZWRfd2l0aF9ycG0pOwo+ID4gPiArCj4gPiA+ ICAvKiBUaGUgS2NvbmZpZyBEUk1fS01TX0hFTFBFUiBzZWxlY3RzIEZSQU1FQlVGRkVSX0NPTlNP TEUgKGlmICFFWFBFUlQpCj4gPiA+ICAgKiBidXQgdGhlIG1vZHVsZSBkb2Vzbid0IGRlcGVuZCBv biBhbnkgZmIgY29uc29sZSBzeW1ib2xzLiAgQXQgbGVhc3QKPiA+ID4gICAqIGF0dGVtcHQgdG8g bG9hZCBmYmNvbiB0byBhdm9pZCBsZWF2aW5nIHRoZSBzeXN0ZW0gd2l0aG91dCBhIHVzYWJsZQo+ ID4gPiBjb25zb2xlLgo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUv ZGlzcG52NTAvZGlzcC5jCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAv ZGlzcC5jCj4gPiA+IGluZGV4IGViM2U0MWE3ODgwNi4uZmEzYWI2MThhMGY5IDEwMDY0NAo+ID4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9kaXNwLmMKPiA+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvZGlzcC5jCj4gPiA+IEBAIC0yMDE1 LDcgKzIwMTUsNyBAQCBudjUwX2Rpc3BfYXRvbWljX3N0YXRlX2FsbG9jKHN0cnVjdCBkcm1fZGV2 aWNlCj4gPiA+ICpkZXYpCj4gPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZp Z19mdW5jcwo+ID4gPiAgbnY1MF9kaXNwX2Z1bmMgPSB7Cj4gPiA+ICAJLmZiX2NyZWF0ZSA9IG5v dXZlYXVfdXNlcl9mcmFtZWJ1ZmZlcl9jcmVhdGUsCj4gPiA+IC0JLm91dHB1dF9wb2xsX2NoYW5n ZWQgPSBkcm1fZmJfaGVscGVyX291dHB1dF9wb2xsX2NoYW5nZWQsCj4gPiA+ICsJLm91dHB1dF9w b2xsX2NoYW5nZWQgPQo+ID4gPiBkcm1fZmJfaGVscGVyX291dHB1dF9wb2xsX2NoYW5nZWRfd2l0 aF9ycG0sCj4gPiA+ICAJLmF0b21pY19jaGVjayA9IG52NTBfZGlzcF9hdG9taWNfY2hlY2ssCj4g PiA+ICAJLmF0b21pY19jb21taXQgPSBudjUwX2Rpc3BfYXRvbWljX2NvbW1pdCwKPiA+ID4gIAku YXRvbWljX3N0YXRlX2FsbG9jID0gbnY1MF9kaXNwX2F0b21pY19zdGF0ZV9hbGxvYywKPiA+ID4g ZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2Ry bV9mYl9oZWxwZXIuaAo+ID4gPiBpbmRleCBiMDY5NDMzZTdmYzEuLmNhODA5YmZiYWViYiAxMDA2 NDQKPiA+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2ZiX2hlbHBlci5oCj4gPiA+ICsrKyBiL2lu Y2x1ZGUvZHJtL2RybV9mYl9oZWxwZXIuaAo+ID4gPiBAQCAtMzMwLDYgKzMzMCw3IEBAIHZvaWQg ZHJtX2ZiX2hlbHBlcl9mYmRldl90ZWFyZG93bihzdHJ1Y3QgZHJtX2RldmljZQo+ID4gPiAqZGV2 KTsKPiA+ID4gIAo+ID4gPiAgdm9pZCBkcm1fZmJfaGVscGVyX2xhc3RjbG9zZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KTsKPiA+ID4gIHZvaWQgZHJtX2ZiX2hlbHBlcl9vdXRwdXRfcG9sbF9jaGFu Z2VkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gPiArdm9pZCBkcm1fZmJfaGVscGVyX291 dHB1dF9wb2xsX2NoYW5nZWRfd2l0aF9ycG0oc3RydWN0IGRybV9kZXZpY2UKPiA+ID4gKmRldik7 Cj4gPiA+ICAjZWxzZQo+ID4gPiAgc3RhdGljIGlubGluZSB2b2lkIGRybV9mYl9oZWxwZXJfcHJl cGFyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gPiAgCQkJCQlzdHJ1Y3QgZHJtX2ZiX2hl bHBlciAqaGVscGVyLAo+ID4gPiBAQCAtNTY0LDYgKzU2NSwxMCBAQCBzdGF0aWMgaW5saW5lIHZv aWQKPiA+ID4gZHJtX2ZiX2hlbHBlcl9vdXRwdXRfcG9sbF9jaGFuZ2VkKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gPiA+ICB7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gK3N0YXRpYyBpbmxpbmUg dm9pZCBkcm1fZmJfaGVscGVyX291dHB1dF9wb2xsX2NoYW5nZWRfd2l0aF9ycG0oc3RydWN0Cj4g PiA+IGRybV9kZXZpY2UgKmRldikKPiA+ID4gK3sKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgI2Vu ZGlmCj4gPiA+ICAKPiA+ID4gIHN0YXRpYyBpbmxpbmUgaW50Cj4gPiA+IC0tIAo+ID4gPiAyLjE3 LjEKPiA+ID4gCi0tIApDaGVlcnMsCglMeXVkZSBQYXVsCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCk5vdXZlYXUgbWFpbGluZyBsaXN0Ck5vdXZlYXVAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vbm91dmVhdQo=