From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 09/60] drm/bridge: Add connector-related bridge operations and data Date: Mon, 26 Aug 2019 19:27:29 +0300 Message-ID: <20190826162729.GI5031@pendragon.ideasonboard.com> References: <20190808193214.GA6055@pendragon.ideasonboard.com> <3d23b62c-2ddb-3a5d-1aa8-7e569b6def71@samsung.com> <20190810224313.GG4788@pendragon.ideasonboard.com> <20190814100403.GC5009@pendragon.ideasonboard.com> <20190814124006.GD7444@phenom.ffwll.local> <50b65a02-e9aa-c97f-6ada-31bcac4da93c@samsung.com> <20190819224502.GW5011@pendragon.ideasonboard.com> <5f7200e4-f231-cd8d-4bd0-c2f7eb8c81b7@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4B0496E268 for ; Mon, 26 Aug 2019 16:27:38 +0000 (UTC) Content-Disposition: inline In-Reply-To: <5f7200e4-f231-cd8d-4bd0-c2f7eb8c81b7@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Andrzej Hajda Cc: Maxime Ripard , Sebastian Reichel , dri-devel@lists.freedesktop.org, Tomi Valkeinen , Sean Paul List-Id: dri-devel@lists.freedesktop.org SGkgQW5kcnplaiwKCk9uIFRodSwgQXVnIDIyLCAyMDE5IGF0IDAyOjE3OjE2UE0gKzAyMDAsIEFu ZHJ6ZWogSGFqZGEgd3JvdGU6Cj4gT24gMjAuMDguMjAxOSAwMDo0NSwgTGF1cmVudCBQaW5jaGFy dCB3cm90ZToKPiA+IE9uIE1vbiwgQXVnIDE5LCAyMDE5IGF0IDEwOjM4OjM1QU0gKzAyMDAsIEFu ZHJ6ZWogSGFqZGEgd3JvdGU6Cj4gPj4gT24gMTQuMDguMjAxOSAxNDo0MCwgRGFuaWVsIFZldHRl ciB3cm90ZToKPiA+Pj4gT24gV2VkLCBBdWcgMTQsIDIwMTkgYXQgMDE6MDQ6MDNQTSArMDMwMCwg TGF1cmVudCBQaW5jaGFydCB3cm90ZToKPiA+Pj4+IE9uIFdlZCwgQXVnIDE0LCAyMDE5IGF0IDA4 OjIzOjEyQU0gKzAyMDAsIEFuZHJ6ZWogSGFqZGEgd3JvdGU6Cj4gPj4+Pj4gT24gMTEuMDguMjAx OSAwMDo0MywgTGF1cmVudCBQaW5jaGFydCB3cm90ZToKPiA+Pj4+Pj4gT24gRnJpLCBBdWcgMDks IDIwMTkgYXQgMDE6NTU6NTNQTSArMDIwMCwgQW5kcnplaiBIYWpkYSB3cm90ZToKPiA+Pj4+Pj4+ IE9uIDA4LjA4LjIwMTkgMjE6MzIsIExhdXJlbnQgUGluY2hhcnQgd3JvdGU6Cj4gPj4+Pj4+Pj4g T24gVHVlLCBKdWwgMTYsIDIwMTkgYXQgMDM6NTc6MjFQTSArMDIwMCwgQW5kcnplaiBIYWpkYSB3 cm90ZToKPiA+Pj4+Pj4+Pj4gT24gMTYuMDcuMjAxOSAxMTowMCwgRGFuaWVsIFZldHRlciB3cm90 ZToKPiA+Pj4+Pj4+Pj4+IE9uIEZyaSwgSnVsIDEyLCAyMDE5IGF0IDExOjAxOjM4QU0gKzAyMDAs IEFuZHJ6ZWogSGFqZGEgd3JvdGU6Cj4gPj4+Pj4+Pj4+Pj4gT24gMTEuMDcuMjAxOSAxNzo1MCwg RGFuaWVsIFZldHRlciB3cm90ZToKPiA+Pj4+Pj4+Pj4+Pj4gT24gVGh1LCBKdWwgMTEsIDIwMTkg YXQgMDU6MTI6MjZQTSArMDIwMCwgQW5kcnplaiBIYWpkYSB3cm90ZToKPiA+Pj4+Pj4+Pj4+Pj4+ IE9uIDExLjA3LjIwMTkgMTU6MTgsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPj4+Pj4+Pj4+Pj4+ Pj4gT24gVGh1LCBKdWwgMTEsIDIwMTkgYXQgMDI6NDE6MDFQTSArMDIwMCwgQW5kcnplaiBIYWpk YSB3cm90ZToKPiA+Pj4+Pj4+Pj4+Pj4+Pj4gT24gMTEuMDcuMjAxOSAwOTozNSwgRGFuaWVsIFZl dHRlciB3cm90ZToKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IE9uIFdlZCwgSnVsIDEwLCAyMDE5IGF0IDAy OjEyOjE0UE0gKzAyMDAsIEFuZHJ6ZWogSGFqZGEgd3JvdGU6Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4g SGkgTGF1cmVudCwKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+IEkgbGlr ZSB0aGUgYXBwcm9hY2gsIGN1cnJlbnQgcHJhY3RpY2Ugd2hlbiBhbG1vc3QgZXZlcnkgYnJpZGdl IHNob3VsZAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+IG9wdGlvbmFsbHkgaW1wbGVtZW50IGNvbm5lY3Rv ciwgb3IgYWx0ZXJuYXRpdmVseSBkb3duc3RyZWFtIGJyaWRnZSBvcgo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+IHBhbmVsIGlzIHZlcnkgcGFpbmZ1bC4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IFllYWggSSB0aGlu ayB0aGlzIGxvb2tzIG1vc3RseSByZWFzb25hYmxlLiBTb21lIGFwaSBkZXNpZ24gY29tbWVudHMg b24gdG9wCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBvZiBBbmRyemVqJywgd2l0aCB0aGUgZmFpciB3YXJu aW5nIHRoYXQgSSBkaWRuJ3QgYm90aGVyIHRvIHJlYWQgdXAgb24gaG93Cj4gPj4+Pj4+Pj4+Pj4+ Pj4+PiBpdCdzIGFsbCB1c2VkIGluIHRoZSBlbmQuIEkgcHJvYmFibHkgc2hvdWxkIGdvIGFuZCBk byB0aGF0LCBhdCBsZWFzdCB0bwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gZ2V0IGEgZmVlbGluZyBmb3Ig d2hhdCB5b3VyIGhwZF9jYiB1c3VhbGx5IGRvZXMuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+IE1vcmUgY29tbWVudHMgaW5saW5lZC4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4+IE9uIDA3LjA3LjIwMTkgMjA6MTgsIExhdXJlbnQgUGluY2hhcnQg d3JvdGU6Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IFRvIHN1cHBvcnQgaW1wbGVtZW50YXRpb24gb2Yg RFJNIGNvbm5lY3RvcnMgb24gdG9wIG9mIERSTSBicmlkZ2VzCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ IGluc3RlYWQgb2YgYnkgYnJpZGdlcywgdGhlIGRybV9icmlkZ2UgbmVlZHMgdG8gZXhwb3NlIG5l dyBvcGVyYXRpb25zIGFuZAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBkYXRhOgo+ID4+Pj4+Pj4+Pj4+ Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAtIE91dHB1dCBkZXRlY3Rpb24sIGhvdC1wbHVn IG5vdGlmaWNhdGlvbiwgbW9kZSByZXRyaWV2YWwgYW5kIEVESUQKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4gICByZXRyaWV2YWwgb3BlcmF0aW9ucwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAtIEJpdG1hc2sg b2Ygc3VwcG9ydGVkIG9wZXJhdGlvbnMKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+PiBXaHkgZG8gd2UgbmVl ZCB0aGVzZSBiaXRtYXNrIGF0IGFsbD8gV2h5IGNhbm5vdCB3ZSByZWx5IG9uIHByZXNlbmNlIG9m Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4gb3BlcmF0aW9uJ3MgY2FsbGJhY2s/Cj4gPj4+Pj4+Pj4+Pj4+ Pj4+PiBZZWFoIGFsc28gbm90IGEgaHVnZSBmYW4gb2YgdGhlc2UgYml0bWFza3MuIFNtZWxscyBs aWtlCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gRFJJVkVSX0dFTXxEUklW RVJfTU9ERVNFVCwgYW5kIEkgcGVyc29uYWxseSByZWFsbHkgaGF0ZSB0aG9zZS4gRWFzeSB0bwo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4gYWRkLCBnZW5lcmFsbHkgZ29vZCBleGN1c2UgdG8gbm90IGhhdmUg dG8gdGhpbmsgdGhyb3VnaCB0aGUgZGVzaWduIGJldHdlZW4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IGRp ZmZlcmVudCBwYXJ0cyBvZiBkcml2ZXJzIC0gImp1c3QiIGFkZCBhbm90aGVyIGZsYWcuCj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAtIEJyaWRnZSBvdXRwdXQgdHlwZQo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBBZGQgYW5kIGRvY3VtZW50 IHRoZXNlLgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBUaHJlZSBu ZXcgYnJpZGdlIGhlbHBlciBmdW5jdGlvbnMgYXJlIGFsc28gYWRkZWQgdG8gaGFuZGxlIGhvdCBw bHVnCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IG5vdGlmaWNhdGlvbiBpbiBhIHdheSB0aGF0IGlzIGFz IHRyYW5zcGFyZW50IGFzIHBvc3NpYmxlIGZvciB0aGUKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gYnJp ZGdlcy4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+PiBEb2N1bWVudGF0aW9uIG9mIG5ldyBvcHNlcyBkb2Vz IG5vdCBleHBsYWluIGhvdyBpdCBzaG91bGQgY29vcGVyYXRlIHdpdGgKPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+PiBicmlkZ2UgY2hhaW5pbmcsIEkgc3VwcG9zZSB0aGV5IHNob3VsZCBiZSBjaGFpbmVkIGV4 cGxpY2l0bHksIGFtIEkKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+PiByaWdodD8gTW9yZSBjb21tZW50cyBh Ym91dCBpdCBsYXRlci4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBT aWduZWQtb2ZmLWJ5OiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlkZWFzb25i b2FyZC5jb20+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IC0tLQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAg ZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYyB8ICA5MiArKysrKysrKysrKysrKysrKysrCj4g Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICBpbmNsdWRlL2RybS9kcm1fYnJpZGdlLmggICAgIHwgMTcwICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAy IGZpbGVzIGNoYW5nZWQsIDI2MSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2JyaWRnZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYwo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiBpbmRleCA1MTk1NzdmMzYzZTMuLjNjMmEyNTVkZjdhZiAxMDA2NDQKPiA+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYwo+ID4+ Pj4+Pj4+Pj4+Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2JyaWRnZS5jCj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+IEBAIC03MCw2ICs3MCw4IEBAIHN0YXRpYyBMSVNUX0hFQUQoYnJpZGdl X2xpc3QpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgICovCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICB2 b2lkIGRybV9icmlkZ2VfYWRkKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+ICB7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJbXV0ZXhfaW5pdCgmYnJpZGdlLT5o cGRfbXV0ZXgpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAJ bXV0ZXhfbG9jaygmYnJpZGdlX2xvY2spOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgCWxpc3RfYWRk X3RhaWwoJmJyaWRnZS0+bGlzdCwgJmJyaWRnZV9saXN0KTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g IAltdXRleF91bmxvY2soJmJyaWRnZV9sb2NrKTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gQEAgLTg2 LDYgKzg4LDggQEAgdm9pZCBkcm1fYnJpZGdlX3JlbW92ZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJp ZGdlKQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgCW11dGV4X2xvY2soJmJyaWRnZV9sb2NrKTsKPiA+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIAlsaXN0X2RlbF9pbml0KCZicmlkZ2UtPmxpc3QpOwo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiAgCW11dGV4X3VubG9jaygmYnJpZGdlX2xvY2spOwo+ID4+Pj4+Pj4+Pj4+ Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJbXV0ZXhfZGVzdHJveSgmYnJpZGdlLT5o cGRfbXV0ZXgpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgfQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAg RVhQT1JUX1NZTUJPTChkcm1fYnJpZGdlX3JlbW92ZSk7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAK PiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gQEAgLTQ2Myw2ICs0NjcsOTQgQEAgdm9pZCBkcm1fYXRvbWlj X2JyaWRnZV9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4gIH0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19i cmlkZ2VfZW5hYmxlKTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ PiArLyoqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKiBkcm1fYnJpZGdlX2hwZF9lbmFibGUgLSBl bmFibGUgaG90IHBsdWcgZGV0ZWN0aW9uIGZvciB0aGUgYnJpZGdlCj4gPj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICsgKiBAYnJpZGdlOiBicmlkZ2UgY29udHJvbCBzdHJ1Y3R1cmUKPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4gKyAqIEBjYjogaG90LXBsdWcgZGV0ZWN0aW9uIGNhbGxiYWNrCj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+ICsgKiBAZGF0YTogZGF0YSB0byBiZSBwYXNzZWQgdG8gdGhlIGhvdC1wbHVnIGRldGVj dGlvbiBjYWxsYmFjawo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArICoKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4gKyAqIENhbGwgJmRybV9icmlkZ2VfZnVuY3MuaHBkX2VuYWJsZSBhbmQgcmVnaXN0ZXIgdGhl IGdpdmVuIEBjYiBhbmQgQGRhdGEgYXMKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqIGhvdCBwbHVn IG5vdGlmaWNhdGlvbiBjYWxsYmFjay4gRnJvbSBub3cgb24gdGhlIEBjYiB3aWxsIGJlIGNhbGxl ZCB3aXRoCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKiBAZGF0YSB3aGVuIGFuIG91dHB1dCBzdGF0 dXMgY2hhbmdlIGlzIGRldGVjdGVkIGJ5IHRoZSBicmlkZ2UsIHVudGlsIGhvdCBwbHVnCj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKiBub3RpZmljYXRpb24gZ2V0cyBkaXNhYmxlZCB3aXRoIGRybV9i cmlkZ2VfaHBkX2Rpc2FibGUoKS4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqCj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+ICsgKiBIb3QgcGx1ZyBkZXRlY3Rpb24gaXMgc3VwcG9ydGVkIG9ubHkgaWYgdGhl IERSTV9CUklER0VfT1BfSFBEIGZsYWcgaXMgc2V0IGluCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsg KiBicmlkZ2UtPm9wcy4gVGhpcyBmdW5jdGlvbiBzaGFsbCBub3QgYmUgY2FsbGVkIHdoZW4gdGhl IGZsYWcgaXMgbm90IHNldC4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqCj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+ICsgKiBPbmx5IG9uZSBob3QgcGx1ZyBkZXRlY3Rpb24gY2FsbGJhY2sgY2FuIGJlIHJl Z2lzdGVyZWQgYXQgYSB0aW1lLCBpdCBpcyBhbgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArICogZXJy b3IgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIHdoZW4gaG90IHBsdWcgZGV0ZWN0aW9uIGlzIGFscmVh ZHkgZW5hYmxlZCBmb3IKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqIHRoZSBicmlkZ2UuCj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKi8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+PiBUbyBzaW1wbGlmeSBhcmNo aXRlY3R1cmUgbWF5YmUgd291bGQgYmUgYmV0dGVyIHRvIGVuYWJsZSBocGQganVzdCBvbgo+ID4+ Pj4+Pj4+Pj4+Pj4+Pj4+IGJyaWRnZSBhdHRhY2g6Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+ Pj4+Pj4+Pj4+Pj4+PiBicmlkZ2UtPmhwZF9jYiA9IGNiOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4g Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gYnJpZGdlLT5ocGRfZGF0YSA9IGRhdGE7Cj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+PiByZXQgPSBkcm1fYnJpZGdlX2F0dGFjaCguLi4pOwo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4gWWVhaCBJIGxpa2UgdGhpcyBtb3JlLiBUaGUgb3RoZXIgcHJvYmxl bSBoZXJlIGlzLCB3aGF0IGlmIHlvdSBuZWVkIG1vcmUKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IHRoYW4g MSBjYWxsYmFjayByZWdpc3RlcnMgb24gdGhlIHNhbWUgYnJpZGdlIGhkcCBzaWduYWw/Cj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+IFRoaXMgd2F5IHdlIGNvdWxkIGF2b2lk IGFkZGluZyBuZXcgY2FsbGJhY2tzIGhwZF8oZW5hYmxlfGRpc2FibGUpCj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4gd2l0aG91dCBiaWcgc2FjcmlmaWNlcy4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+IE9uZSBtb3JlIHRoaW5nOiBIUEQgaW4gRGlzcGxheVBvcnQvSERNSSBiZXNp ZGUgc2lnbmFsbGluZyBwbHVnL3VucGx1ZywKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+PiBub3RpZmllcyBh Ym91dCBzaW5rIHN0YXR1cyBjaGFuZ2UsIGhvdyBpdCB0cmFuc2xhdGVzIHRvIHRoaXMgY2I/Cj4g Pj4+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gK3ZvaWQgZHJtX2JyaWRnZV9o cGRfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ ICsJCQkgICB2b2lkICgqY2IpKHZvaWQgKmRhdGEsCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJCQkJ ICAgICAgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXMpLAo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiArCQkJICAgdm9pZCAqZGF0YSkKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gK3sKPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4gKwlpZiAoIWJyaWRnZSB8fCAhYnJpZGdlLT5mdW5jcy0+aHBkX2VuYWJsZSkK PiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkJcmV0dXJuOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCj4g Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJbXV0ZXhfbG9jaygmYnJpZGdlLT5ocGRfbXV0ZXgpOwo+ID4+ Pj4+Pj4+Pj4+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJaWYgKFdBUk4oYnJpZGdl LT5ocGRfY2IsICJIb3QgcGx1ZyBkZXRlY3Rpb24gYWxyZWFkeSBlbmFibGVkXG4iKSkKPiA+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gKwkJZ290byB1bmxvY2s7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsKPiA+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwlicmlkZ2UtPmhwZF9jYiA9IGNiOwo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiArCWJyaWRnZS0+aHBkX2RhdGEgPSBkYXRhOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCj4g Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJYnJpZGdlLT5mdW5jcy0+aHBkX2VuYWJsZShicmlkZ2UpOwo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICt1bmxvY2s6Cj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICsJbXV0ZXhfdW5sb2NrKCZicmlkZ2UtPmhwZF9tdXRleCk7Cj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICt9Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICtFWFBPUlRfU1lNQk9MX0dQ TChkcm1fYnJpZGdlX2hwZF9lbmFibGUpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCj4gPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+ICsvKioKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqIGRybV9icmlkZ2VfaHBk X2Rpc2FibGUgLSBkaXNhYmxlIGhvdCBwbHVnIGRldGVjdGlvbiBmb3IgdGhlIGJyaWRnZQo+ID4+ Pj4+Pj4+Pj4+Pj4+Pj4+PiArICogQGJyaWRnZTogYnJpZGdlIGNvbnRyb2wgc3RydWN0dXJlCj4g Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArICogQ2FsbCAmZHJt X2JyaWRnZV9mdW5jcy5ocGRfZGlzYWJsZSBhbmQgdW5yZWdpc3RlciB0aGUgaG90IHBsdWcgZGV0 ZWN0aW9uCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKiBjYWxsYmFjayBwcmV2aW91c2x5IHJlZ2lz dGVyZWQgd2l0aCBkcm1fYnJpZGdlX2hwZF9lbmFibGUoKS4gT25jZSB0aGlzCj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+ICsgKiBmdW5jdGlvbiByZXR1cm5zIHRoZSBjYWxsYmFjayB3aWxsIG5vdCBiZSBj YWxsZWQgYnkgdGhlIGJyaWRnZSB3aGVuIGFuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKiBvdXRw dXQgc3RhdHVzIGNoYW5nZSBvY2N1cnMuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKgo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiArICogSG90IHBsdWcgZGV0ZWN0aW9uIGlzIHN1cHBvcnRlZCBvbmx5IGlm IHRoZSBEUk1fQlJJREdFX09QX0hQRCBmbGFnIGlzIHNldCBpbgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ PiArICogYnJpZGdlLT5vcHMuIFRoaXMgZnVuY3Rpb24gc2hhbGwgbm90IGJlIGNhbGxlZCB3aGVu IHRoZSBmbGFnIGlzIG5vdCBzZXQuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKi8KPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4gK3ZvaWQgZHJtX2JyaWRnZV9ocGRfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRn ZSAqYnJpZGdlKQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArewo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAr CWlmICghYnJpZGdlIHx8ICFicmlkZ2UtPmZ1bmNzLT5ocGRfZGlzYWJsZSkKPiA+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4gKwkJcmV0dXJuOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+ICsJbXV0ZXhfbG9jaygmYnJpZGdlLT5ocGRfbXV0ZXgpOwo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiArCWJyaWRnZS0+ZnVuY3MtPmhwZF9kaXNhYmxlKGJyaWRnZSk7Cj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+ICsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwlicmlkZ2UtPmhwZF9jYiA9IE5VTEw7Cj4g Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJYnJpZGdlLT5ocGRfZGF0YSA9IE5VTEw7Cj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+ICsJbXV0ZXhfdW5sb2NrKCZicmlkZ2UtPmhwZF9tdXRleCk7Cj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+ICt9Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICtFWFBPUlRfU1lNQk9MX0dQTChkcm1f YnJpZGdlX2hwZF9kaXNhYmxlKTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwo+ID4+Pj4+Pj4+Pj4+ Pj4+Pj4+PiArLyoqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKiBkcm1fYnJpZGdlX2hwZF9ub3Rp ZnkgLSBub3RpZnkgaG90IHBsdWcgZGV0ZWN0aW9uIGV2ZW50cwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ PiArICogQGJyaWRnZTogYnJpZGdlIGNvbnRyb2wgc3RydWN0dXJlCj4gPj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICsgKiBAc3RhdHVzOiBvdXRwdXQgY29ubmVjdGlvbiBzdGF0dXMKPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4gKyAqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKiBCcmlkZ2UgZHJpdmVycyBzaGFsbCBj YWxsIHRoaXMgZnVuY3Rpb24gdG8gcmVwb3J0IGhvdCBwbHVnIGV2ZW50cyB3aGVuIHRoZXkKPiA+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyAqIGRldGVjdCBhIGNoYW5nZSBpbiB0aGUgb3V0cHV0IHN0YXR1 cywgd2hlbiBob3QgcGx1ZyBkZXRlY3Rpb24gaGFzIGJlZW4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g KyAqIGVuYWJsZWQgYnkgdGhlICZkcm1fYnJpZGdlX2Z1bmNzLmhwZF9lbmFibGUgY2FsbGJhY2su Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsgKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArICogVGhpcyBm dW5jdGlvbiBzaGFsbCBiZSBjYWxsZWQgaW4gYSBjb250ZXh0IHRoYXQgY2FuIHNsZWVwLgo+ID4+ Pj4+Pj4+Pj4+Pj4+Pj4+PiArICovCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICt2b2lkIGRybV9icmlk Z2VfaHBkX25vdGlmeShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiArCQkJICAgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXMpCj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+ICt7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJbXV0ZXhfbG9jaygmYnJpZGdlLT5o cGRfbXV0ZXgpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCWlmIChicmlkZ2UtPmhwZF9jYikKPiA+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkJYnJpZGdlLT5ocGRfY2IoYnJpZGdlLT5ocGRfZGF0YSwgc3Rh dHVzKTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IFNvIHRoaXMgaXNuJ3QgcXVpdGUgd2hhdCBJIGhhZCBp biBtaW5kLiBJbnN0ZWFkIHNvbWV0aGluZyBsaWtlIHRoaXM6Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pgo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4gCS8qIGl0ZXJhdGVzIG92ZXIgYWxsIGJyaWRnZXMgaW4gdGhlIGNo YWluIGNvbnRhaW5pbmcgQGJyaWRnZSAqLwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gCWZvcl9lYWNoX2Jy aWRnZSh0bXBfYnJpZGdlLCBicmlkZ2UpIHsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IAkJaWYgKHRtcF9i cmlkZ2UgPT0gYnJpZGdlKQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gCQkJY29udGludWU7Cj4gPj4+Pj4+ Pj4+Pj4+Pj4+PiAJCWlmIChicmlkZ2UtPmhwZF9ub3RpZnkpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4g CQkJYnJpZGdlLT5ocGRfbm90aWZ5KHRtcF9icmlkZ2UsIGJyaWRnZSwgc3RhdHVzKTsKPiA+Pj4+ Pj4+Pj4+Pj4+Pj4+IAl9Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gCWVu Y29kZXIgPSBlbmNvZGVyX2Zvcl9icmlkZ2UoYnJpZGdlKTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IAlp ZiAoZW5jb2Rlci0+aGVscGVyX3ByaXZhdGUtPmJyaWRnZV9ocGRfbm90aWZ5KQo+ID4+Pj4+Pj4+ Pj4+Pj4+Pj4gCQllbmNvZGVyLT5oZWxwZXJfcHJpdmF0ZS0+YnJpZGdlX2hwZF9ub3RpZnkoZW5j b2RlciwgYnJpZGdlLCBzdGF0dXMpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+IAlkZXYgPSBicmlkZ2UtPmRldgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gCWlmIChkZXYtPm1vZGVf Y29uZmlnLmhlbHBlcl9wcml2YXRlLT5icmlkZ2VfaHBkX25vdGlmeSkKPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+IAkJZGV2LT5tb2RlX2NvbmZpZy5oZWxwZXJfcHJpdmF0ZS0+YnJpZGdlX2hwZF9ub3RpZnko ZGV2LCBicmlkZ2UsIHN0YXR1cykKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+ PiBObyByZWdpc3RlciBjYWxsYmFjayBuZWVkZWQsIG5vIGxvY2tpbmcgbmVlZGVkLCBldmVyeW9u ZSBnZXRzIGV4YWN0bHkgdGhlCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBocGQgdGhleSB3YW50L25lZWQu Cj4gPj4+Pj4+Pj4+Pj4+Pj4+IEFzIEkgdW5kZXJzdGFuZCB5b3Ugd2FudCB0byBub3RpZnkgZXZl cnkgbWVtYmVyIG9mIHRoZSBwaXBlbGluZS4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+ Pj4+Pj4gSSB0aGluayBpdCBzaG91bGQgYmUgZW5vdWdoIHRvIG5vdGlmeSBvbmx5IHRoZSBzb3Vy Y2UsIGFuZCB0aGVuIHNvdXJjZQo+ID4+Pj4+Pj4+Pj4+Pj4+PiBzaG91bGQgZGVjaWRlIGlmL3do ZW4gdGhlIGhwZCBzaG91bGQgYmUgcHJvcGFnYXRlZCB1cHN0cmVhbS4KPiA+Pj4+Pj4+Pj4+Pj4+ Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4gSXQgbG9va3MgbW9yZSBnZW5lcmljIGZvciBtZS4KPiA+Pj4+ Pj4+Pj4+Pj4+PiBJJ20gbm90IHBhcnNpbmcgLi4uIGRvIHlvdSB0aGluayBteSBpZGVhIGlzIG1v cmUgZ2VuZXJpYyBhbmQgdXNlZnVsLCBvcgo+ID4+Pj4+Pj4+Pj4+Pj4+IHRoZSBvbmUgZnJvbSBM YXVyZW50PyBLaW5kYSBjb25mdXNlZCBoZXJlLgo+ID4+Pj4+Pj4+Pj4+Pj4gUmVnYXJkaW5nIGdl bmVyYWwgaWRlYToKPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiAxLiBMYXVyZW50J3Mg YXBwcm9hY2ggaXMgdG8gbm90aWZ5IG9ubHkgY29uc3VtZXIsIEkgZ3Vlc3MgdXN1YWxseSB2aWRl bwo+ID4+Pj4+Pj4+Pj4+Pj4gc291cmNlLgo+ID4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+ IDIuIFlvdXIgaXMgdG8gbm90aWZ5IGFsbCBvdGhlciBicmlkZ2VzIGFuZCBlbmNvZGVyLgo+ID4+ Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IEFuZCBJIHByZWZlciAxc3QgYXBwcm9hY2gsIHdo eToKPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiAtIHRoZSBzb3VyY2UgY2FuIGRlY2lk ZSBpZi93aGVuIGFuZCB0byB3aG8gcHJvcGFnYXRlIHRoZSBzaWduYWwsCj4gPj4+Pj4+Pj4+Pj4+ Pgo+ID4+Pj4+Pj4+Pj4+Pj4gLSBpcyBtb3JlIGdlbmVyaWMsIGZvciBleGFtcGxlIGlmIGJyaWRn ZSBzZW5kIHNpZ25hbCB0byB0d28KPiA+Pj4+Pj4+Pj4+Pj4+IG1vbml0b3JzL3BhbmVscywgaXQg Y2FuIGRlbGF5IGhwZCBwcm9wYWdhdGlvbiB0aWxsIGJvdGggc2lua3MgYXJlIHByZXNlbnQsCj4g Pj4+Pj4+Pj4+Pj4+IFdpdGggTGF1cmVudCdzIGFwcHJvYWNoIHRoZSBicmlkZ2UgY2Fubm90IHNl bmQgdGhlIGhwZCB0byBtb3JlIHRoYW4gb25lCj4gPj4+Pj4+Pj4+Pj4+IGNvbnN1bWVyLiBUaGVy ZSdzIG9ubHkgMSBjYWxsYmFjay4gU28geW91J3JlIGV4YW1wbGUgZG9lc24ndCB3b3JrLgo+ID4+ Pj4+Pj4+Pj4+IElmIHRoZXJlIHdpbGwgYmUgdHdvIGNvbnN1bWVycywgdGhlcmUgd2lsbCBiZSB0 d28gYnJpZGdlIGF0dGFjaG1lbnRzLAo+ID4+Pj4+Pj4+Pj4+IHRodXMgdGhlcmUgd2lsbCBiZSB0 d28gbm90aWZpY2F0aW9ucywgaXQgc2hvdWxkIHdvcmsuCj4gPj4+Pj4+Pj4+PiAyIGNvbnN1bWVy cywgMSBwcm9kdWNlci4gVGhlcmUncyBvbmx5IF9vbmVfIGNhbGxiYWNrIGluIHRoZSBwcm9kdWNl ci4gVGhlCj4gPj4+Pj4+Pj4+PiBjYWxsYmFjayBpcyByZWdpc3RlcmVkIG9uIHRoZSBwcm9kdWNl IGJyaWRnZSwgbm90IG9uIHRoZSBjb25zdW1lciBicmlkZ2UKPiA+Pj4+Pj4+Pj4+IChvciBJJ20g dG90YWxsbHkgbWlzcmVhZGluZyB3aGF0IExhdXJlbnQgZG9lcyBoZXJlKS4KPiA+Pj4+Pj4+Pj4g SSBoYXZlIGFzc3VtZWQgdGhhdCBpZiBkZXZpY2VzIGV4cG9zZXMgdHdvIGhhcmR3YXJlIHNpbmsg aW50ZXJmYWNlcyBpdAo+ID4+Pj4+Pj4+PiB3aWxsIGV4cG9zZSB0d28gc2VwYXJhdGUgYnJpZGdl cyAtIG9mIGNvdXJzZSBpdCB3aWxsIG5vdCB3b3JrIHdpdGgKPiA+Pj4+Pj4+Pj4gImJyaWRnZSBj aGFpbmluZyIgdGhpbmcsIGJ1dCB0aGlzIGlzIGEgZGlmZmVyZW50IHN0b3J5Lgo+ID4+Pj4+Pj4+ IERhbmllbCBpcyByaWdodCB0aGF0IHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9ubHkgYWxs b3dzIG9uZQo+ID4+Pj4+Pj4+IGNvbnN1bWVyLiBUaGlzIGlzIGhvd2V2ZXIgbm90IGEgbGltaXRh dGlvbiBvZiB0aGUgQVBJLCBidXQgb2YgaXRzCj4gPj4+Pj4+Pj4gaW1wbGVtZW50YXRpb24sIGFz IEkgb25seSBuZWVkZWQgYSBzaW5nbGUgY29uc3VtZXIuIFRoZSBoZWxwZXJzIGluIHRoaXMKPiA+ Pj4+Pj4+PiBzZXJpZXMgZW5zdXJlIHRoYXQgbmVpdGhlciB0aGUgY29uc3VtZXIgbm9yIHRoZSBw cm9kdWNlciBwb2tlIGluIHRoZQo+ID4+Pj4+Pj4+IGRybV9icmlkZ2Ugc3RydWN0dXJlIHRvIGNh bGwgYmFjayB0byB0aGUgSFBEIGhhbmRsZXI6Cj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiAtIFRoZSBj b25zdW1lciBjYWxscyBkcm1fYnJpZGdlX2hwZF9lbmFibGUoKSBhbmQKPiA+Pj4+Pj4+PiAgIGRy bV9icmlkZ2VfaHBkX2Rpc2FibGUoKSwgd2hpY2ggY291bGQgb2ZmZXIgYSByZWZlcmVuY2UtY291 bnRlZAo+ID4+Pj4+Pj4+ICAgYmVoYXZpb3VyIGlmIGRlc2lyZWQgd2l0aG91dCBjaGFuZ2VzIHRv IHRoZSBjb25zdW1lci4KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IC0gVGhlIHByb2R1Y2VyIGdldHMg Y29uZmlndXJlZCBieSAuaHBkX2VuYWJsZSgpIGFuZCAuaHBkX2Rpc2FibGUoKSwKPiA+Pj4+Pj4+ PiAgIHdoaWNoIGNvdWxkIGFsc28gZWFzaWx5IGFjY29tbW9kYXRlIHJlZmVyZW5jZS1jb3VudGlu ZyBpbiB0aGUgZHJtCj4gPj4+Pj4+Pj4gICBicmlkZ2UgY29yZSB3aXRob3V0IGNoYW5nZXMgdG8g dGhlIHByb2R1Y2VyLgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gLSBUaGUgcHJvZHVjZXIgbm90aWZp ZXMgSFBEIHdpdGggZHJtX2JyaWRnZV9ocGRfbm90aWZ5KCksIHdoaWNoIGNvdWxkCj4gPj4+Pj4+ Pj4gICBlYXNpbHkgYmUgZXh0ZW5kZWQgdG8gc3VwcG9ydCBtdWx0aXBsZSBjb25zdW1lcnMgd2l0 aG91dCBjaGFuZ2VzIHRvCj4gPj4+Pj4+Pj4gICB0aGUgcHJvZHVjZXIuCj4gPj4+Pj4+Pj4KPiA+ Pj4+Pj4+PiBUaGlzIGlzIGFjdHVhbGx5IG15IHNlY29uZCB2ZXJzaW9uIG9mIHRoZSBIUEQgbWVj aGFuaXNtLiBUaGUgZmlyc3QKPiA+Pj4+Pj4+PiB2ZXJzaW9uIHdhcyBuZXZlciBwb3N0ZWQsIHBv a2VkIGludG8gZHJtX2JyaWRnZSwgYW5kIHJlcXVpcmVkIHRoZQo+ID4+Pj4+Pj4+IHByb2R1Y2Vy IHRvIGJlIGF3YXJlIG9mIHRoZSBjYWxsYmFja3MuIEFmdGVyIGRpc2N1c3NpbmcgdGhpcyBwcml2 YXRlbHkKPiA+Pj4+Pj4+PiB3aXRoIERhbmllbCwgSSBjYW1lIHVwIHdpdGggdGhlIGltcGxlbWVu dGF0aW9uIGluIHRoaXMgc2VyaWVzIHRoYXQsCj4gPj4+Pj4+Pj4gd2hpbGUgbm90IHN1cHBvcnRp bmcgbXVsdGlwbGUgY29uc3VtZXJzIG5vdywgbWFrZXMgaXQgZWFzeSB0byBleHRlbmQKPiA+Pj4+ Pj4+PiBsYXRlciB3aXRob3V0IG1pbmltYWwgZWZmb3J0Lgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4g RGFuaWVsJ3MgcHJvcG9zZWQgaW1wbGVtZW50YXRpb24gYWJvdmUgbG9va3MgcmVhc29uYWJsZSB0 byBtZSwgcHJvdmlkZWQKPiA+Pj4+Pj4+PiB3ZSBjYW4gaXRlcmF0ZSBvdmVyIHRoZSBicmlkZ2Vz IGluIGFuIG9yZGVyIHRoYXQgZG9uJ3QgZGVwZW5kIG9uIHRoZQo+ID4+Pj4+Pj4+IHBvc2l0aW9u IG9mIHRoZSBwcm9kdWNlciBpbiB0aGUgY2hhaW4gKHNob3VsZCBiZSBlYXN5IHRvIHNvbHZlIGJ5 Cj4gPj4+Pj4+Pj4gc3RhcnRpbmcgYXQgdGhlIGVuY29kZXIgZm9yIGluc3RhbmNlKS4gSXQgaG93 ZXZlciBsb29rcyBhIGJpdCBsaWtlIGEKPiA+Pj4+Pj4+PiBtaWRsYXllciB0byBtZSA6LSkgVGhh dCdzIHdoeSBJIGhhdmUgYSBzaW1pbGFyIGltcGxlbWVudGF0aW9uIGluIHRoZQo+ID4+Pj4+Pj4+ IGNvbm5lY3Rvci1icmlkZ2UgaGVscGVyLCB3aGljaCBjb3VsZCBiZSBleHRlbmRlZCB0byBjYWxs Cj4gPj4+Pj4+Pj4gZW5jb2Rlci0+aGVscGVyX3ByaXZhdGUtPmJyaWRnZV9ocGRfbm90aWZ5KCkg YW5kCj4gPj4+Pj4+Pj4gZGV2LT5tb2RlX2NvbmZpZy5oZWxwZXJfcHJpdmF0ZS0+YnJpZGdlX2hw ZF9ub3RpZnkoKSBpbnN0ZWFkIG9mCj4gPj4+Pj4+Pj4gaGFyZGNvZGluZyBkcm1fa21zX2hlbHBl cl9ob3RwbHVnX2V2ZW50KCkuIE1vdmluZyB0aGUgY29kZSB0bwo+ID4+Pj4+Pj4+IGRybV9icmlk Z2VfaHBkX25vdGlmeSgpIHdvdWxkIG9uIHRoZSBvdGhlciBoYW5kIHNldCB0aGUgbm90aWZpY2F0 aW9uCj4gPj4+Pj4+Pj4gc2VxdWVuY2UgdG93YXJkcyB0aGUgZW5jb2RlciBhbmQgZHJpdmVyIGlu IHN0b25lLiBEYW5pZWwsIGRvIHlvdSB0aGluawo+ID4+Pj4+Pj4+IHRoYXQgd291bGQgYmUgYmV0 dGVyID8KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IEkgd291bGQgbGlrZSB0byByZW1pbmQgZXZlcnli b2R5IHRoYXQgdGhpcyBzZXJpZXMgaXNuJ3QgdGhlIGxhc3QgSSB3aWxsCj4gPj4+Pj4+Pj4gZXZl ciBzdWJtaXQsIGFuZCBJIHBsYW4gdG8gZG8gbW9yZSB3b3JrIG9uIGRybV9icmlkZ2UgYW5kIGRy bV9wYW5lbC4gSSdtCj4gPj4+Pj4+Pj4gb3BlbiB0byBzdWdnZXN0aW9ucywgYW5kIGNhbiBhZGRy ZXNzIHByb2JsZW1zIG9uIHRvcCBvZiB0aGVzZSBwYXRjaGVzLAo+ID4+Pj4+Pj4+IHByb3ZpZGVk IG9idmlvdXNseSB0aGF0IHRoaXMgc2VyaWVzIGRvZXNuJ3QgZ28gaW4gdGhlIHdyb25nIGRpcmVj dGlvbi4KPiA+Pj4+Pj4+PiBJJ20gb2YgY291cnNlIGFsc28gd2lsbGluZyB0byByZXdvcmsgdGhp cyBzZXJpZXMsIGJ1dCBnaXZlbiB0aGUgYW1vdW50Cj4gPj4+Pj4+Pj4gb2Ygd29yayB3ZSBoYXZl IGluIHRoZSBkcm1fYnJpZGdlIHJlYWxtLCBJIGNhbid0IGZpeCBldmVyeXRoaW5nIGluIG9uZQo+ ID4+Pj4+Pj4+IGdvIDotKQo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiAtIGl0IHJlc2VtYmxl cyBoYXJkd2FyZSB3aXJlcyA6KQo+ID4+Pj4+Pj4+Pj4+PiBUaGlzIGlzbid0IGZvciB0aGUgaHcg d2lyZXMgYWZhaXVpLiBUaGUgaHcgaHBkIHRlcm1pbmF0ZXMgaW4gdGhlIHNvdXJjZQo+ID4+Pj4+ Pj4+Pj4+PiBicmlkZ2UsIHdoaWNoIHRoZW4gY2FsbHMgZHJtX2JyaWRnZV9ocGRfbm90aWZ5KCkg dG8gaW5mb3JtIGFueW9uZSBlbHNlCj4gPj4+Pj4+Pj4+Pj4+IGludGVyZXN0ZWQgaW4gdGhhdCBo cGQgc2luZ2FsLiBUaGlzIGluY2x1ZGVzOgo+ID4+Pj4+Pj4+Pj4+PiAtIE90aGVyIGJyaWRnZXMs IGUuZy4gaWYgdGhleSBwcm92aWRlIENFQyBzdXBwb3J0Lgo+ID4+Pj4+Pj4+Pj4+PiAtIE90aGVy IGJyaWRnZXMsIG1heWJlIHRoZXkgbmVlZCB0byByZS1ydW4gdGhlIEhEQ1Agc3RhdGUgZW5naW5l Cj4gPj4+Pj4+Pj4+Pj4+IC0gT3ZlcmFsbCBkcml2ZXIsIHNvIGl0IGNhbiB1cGRhdGUgdGhlIG1v ZGVzL2Nvbm5lY3RvciBzdGF0dXMgYW5kIHNlbmQgdGhlCj4gPj4+Pj4+Pj4+Pj4+ICAgdWV2ZW50 IHRvIHRoZSBkcml2ZXIuCj4gPj4+Pj4+Pj4+Pj4+IC0gT3ZlcmFsbCBkaXNwbGF5IHBpcGVsaW5l IGZvciB0aGlzIHNwZWNpZmljIGJyaWRnZSwgbWF5YmUgeW91IG5lZWQgdG8KPiA+Pj4+Pj4+Pj4+ Pj4gICBzaHV0IGRvd24vcmUtZW5hYmxlIHRoZSBwaXBlIGJlY2F1c2UgJHJlYXNvbnMuCj4gPj4+ Pj4+Pj4+Pj4+ICAKPiA+Pj4+Pj4+Pj4+Pj4gVGhhdCdzIGF0IGxlYXN0IG15IHVuZGVyc3RhbmRp bmcgZnJvbSBsb3RzIG9mIGNoYXRzIHdpdGggTGF1cmVudCBhYm91dAo+ID4+Pj4+Pj4+Pj4+PiB3 aGF0IGhlIHdhbnRzIHRvIGRvIGhlcmUuCj4gPj4+Pj4+Pj4gVGhhdCdzIGNvcnJlY3QsIGFuZCB0 aGF0J3Mgd2hhdCBJIHdhcyB0cnlpbmcgdG8gaW1wbGVtZW50IDotKSBUaGUKPiA+Pj4+Pj4+PiBu b3RpZmljYXRpb24sIGluIHRoaXMgcGF0Y2ggc2VyaWVzLCBnb2VzIGZyb20gdGhlIHByb2R1Y2Vy IGJyaWRnZSB0byBhCj4gPj4+Pj4+Pj4gY2VudHJhbCBwbGFjZSAobmFtZWx5IHRoZSBjb25uZWN0 b3IsIHdpdGggYSBoZWxwZXIgaW1wbGVtZW50YXRpb24KPiA+Pj4+Pj4+PiBhdmFpbGFibGUgYXMg cGFydCBvZiB0aGlzIHNlcmllcywgYnV0IGN1c3RvbSBpbXBsZW1lbnRhdGlvbnMgaW4gZGlzcGxh eQo+ID4+Pj4+Pj4+IGRyaXZlcnMgYXJlIGZpbmUgaWYgbmVlZGVkKSB0aGF0IHRoZW4gZGlzcGF0 Y2hlcyB0aGUgbm90aWZpY2F0aW9uIHRvIGFsbAo+ID4+Pj4+Pj4+IGJyaWRnZXMgKHRocm91Z2gg dGhlIC5sb3N0X2hvdHBsdWcoKSBvcGVyYXRpb24sIHdoaWNoIHdlIGNvdWxkIHJlcGxhY2UKPiA+ Pj4+Pj4+PiBieSBhbiAuaHBkX25vdGlmeSgpIG9wZXJhdGlvbikgZm9yIHRoZSBmaXJzdCB0d28g cHVycG9zZXMgbGlzdGVkIGFib3ZlLAo+ID4+Pj4+Pj4+IGFuZCB0aGVuIHRvIHRoZSBvdmVyYWxs IGRyaXZlci4gVGhlIG9ubHkgdGhpbmcgSSBkb24ndCBzdXBwb3J0IHlldCBpcwo+ID4+Pj4+Pj4+ IGRpc3BhdGNoaW5nIHRvIHRoZSBkaXNwbGF5IHBpcGVsaW5lIChpdGVtIDQgaW4gdGhlIGxpc3Qg YWJvdmUpIGFzIEkgaGFkCj4gPj4+Pj4+Pj4gbm8gbmVlZCBmb3IgdGhhdCwgYW5kIGRpZG4ndCB3 YW50IHRvIGRldmVsb3AgYW4gQVBJIHdpdGggbm8gdXNlci4gVGhpcwo+ID4+Pj4+Pj4+IHdvdWxk IGhvd2V2ZXIgbm90IGJlIGRpZmZpY3VsdCB0byBkbyB3aGVuIG5lZWRlZCwgdGhlIG5lZWQgaXMg dGFrZW4gaW50bwo+ID4+Pj4+Pj4+IGFjY291bnQgaW4gdGhlIHByb3Bvc2VkIGltcGxlbWVudGF0 aW9uLgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gSSBkbyBub3Qga25vdyB0aGUgZnVsbCBwaWN0 dXJlLCBidXQgdGhlIHNvbHV0aW9uIHdoZXJlIHBhcnRpY3VsYXIgYnJpZGdlCj4gPj4+Pj4+Pj4+ Pj4gbm90aWZpZXMgZXZlcnl0aGluZyB1bmNvbmRpdGlvbmFsbHkgc2VlbXMgdG8gbWUgbXVjaCBs ZXNzIGZsZXhpYmxlLgo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gSWYgSFBEIHNpZ25hbHMg aXMgcmVjZWl2ZWQgYnkgdGhlIGNvbnN1bWVyLCBpZiB0aGVyZSBhcmUgbm8gb2JzdGFjbGVzIGl0 Cj4gPj4+Pj4+Pj4+Pj4gY2FuIHByb3BhZ2F0ZSBpdCBmdXJ0aGVyLCB1cHN0cmVhbSBicmlkZ2Uv ZW5jb2RlciBvciB0byBkcm0gY29yZSAtIGl0Cj4gPj4+Pj4+Pj4+Pj4gd2lsbCBtaW1pYyB5b3Vy IHNjZW5hcmlvLgo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gQnV0IHRoZXJlIGFyZSBhbHNv IG90aGVyIHNjZW5hcmlvcyB3aGVyZSBicmlkZ2UgZG9lcyBub3Qgd2FudCB0bwo+ID4+Pj4+Pj4+ Pj4+IHByb3BhZ2F0ZSBzaWduYWwsIGJlY2F1c2UgZm9yIGV4YW1wbGU6Cj4gPj4+Pj4+Pj4+Pj4K PiA+Pj4+Pj4+Pj4+PiAtIGl0IHdhbnRzIHRvIHdhaXQgZm9yIG90aGVyIHNpbmtzIHRvIHdha2Ug dXAsCj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+IFRoZSBvdGhlciBzaW5rIGNhbiBqdXN0IGRv IHRoYXQgaW4gdGhlaXIgaHBkIGNhbGxiYWNrLgo+ID4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiAt IGl0IHByb3BhZ2F0ZXMgSFBEIHNpZ25hbCB2aWEgaGFyZHdhcmUgd2lyZSwKPiA+Pj4+Pj4+Pj4+ IEFnYWluLCB0aGUgb3RoZXIgc2luayBjYW4ganVzdCBub3QgbGlzdGVuIHRvIHN3IGhwZCBpbiB0 aGF0IGNhc2UsIGFuZCB1c2UKPiA+Pj4+Pj4+Pj4+IHRoZSB3aXJlL2h3IGhwZCBpbnRlcnJ1cHQu Cj4gPj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBJZiBpdCBzaG91bGQgaWdub3JlIEhQRCwgd2h5IGl0 IHNob3VsZCByZWNlaXZlIGl0IGF0IGFsbCAtIGl0IGlzCj4gPj4+Pj4+Pj4+IHVubmVjZXNzYXJ5 IG5vaXNlLiBBbmQgSSBhbSBhZnJhaWQgd2l0aCBtb3JlIGNvbXBsaWNhdGVkIHBpcGVsaW5lcyBp dAo+ID4+Pj4+Pj4+PiB3aWxsIGJlIGltcG9zc2libGUgZm9yIHBhcnRpY3VsYXIgY29tcG9uZW50 IChicmlkZ2UvZW5jb2Rlci93aGF0ZXZlcikgdG8KPiA+Pj4+Pj4+Pj4gZGlzdGluZ3Vpc2ggaWYg SFBEIG5vdGlmaWNhdGlvbiB3aGljaCBjYW1lIGZyb20gbm9uLWRpcmVjdGx5IGNvbm5lY3RlZAo+ ID4+Pj4+Pj4+PiBjb21wb25lbnQgc2hvdWxkIGJlIGlnbm9yZWQgb3Igbm90Lgo+ID4+Pj4+Pj4+ Pgo+ID4+Pj4+Pj4+Pj4+IC0gZmlyc3QgaXQgd2FudHMgdG8gdmVyaWZ5IGlmIHRoZSBzaW5rIGlz IHZhbGlkL2NvbXBhdGlibGUvYXV0aG9yaXplZAo+ID4+Pj4+Pj4+Pj4+IGRldmljZS4KPiA+Pj4+ Pj4+Pj4+IE5vdyB5b3UgbG9zdCBtZS4gV2h5IHdvdWxkIHNvbWVvbmUgZ2x1ZSBpbmNvbXBhdGli bGUgSVAgaW50byBhIFNvQyBvcgo+ID4+Pj4+Pj4+Pj4gYm9hcmQ/Cj4gPj4+Pj4+Pj4+IEJyaWRn ZSBjYW4gaGF2ZSBleHRlcm5hbCBjb25uZWN0b3JzLCBhbmQgdGhlIHVzZXIgY2FuIGNvbm5lY3Qg dGhlcmUKPiA+Pj4+Pj4+Pj4gYW55dGhpbmcuCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gSW4g Z2VuZXJhbCBIUEQgaXMgaW5wdXQgc2lnbmFsIGZvciBub3RpZnkgb2Ygc3RhdGUgY2hhbmdlcyBv biBwYXJ0aWN1bGFyCj4gPj4+Pj4+Pj4+Pj4gYnVzLCBpbiBjYXNlIG9mIHR5cGljYWwgdmlkZW8g YnJpZGdlIG9uIGl0cyBvdXRwdXQgdmlkZW8gYnVzLgo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+ Pj4gSW4gY2FzZSBvZiBicmlkZ2VzIHRoZXkgaGF2ZSBhbHNvIGlucHV0IHZpZGVvIGJ1c2VzLCBh bmQgdGhleSBjYW4gc2VuZAo+ID4+Pj4+Pj4+Pj4+IEhQRCBzaWduYWwgdmlhIHRoaXMgYnVzLCBi dXQgdGhpcyBpcyBpbmRlZWQgZGlmZmVyZW50IEhQRCBzaWduYWwsIGV2ZW4KPiA+Pj4+Pj4+Pj4+ PiBpZiBmb3IgbW9zdCBjYXNlcyB0aGV5IGxvb2tzIHNpbWlsYXIuCj4gPj4+Pj4+Pj4+PiBBaCwg SSB0aGluayB0aGlzIGlzIGEgcHJvYmxlbSB3ZSB3aWxsIGV2ZW50dWFsbHkgaGF2ZS4gQnV0IGl0 J3Mgbm90Cj4gPj4+Pj4+Pj4+PiBzb21ldGhpbmcgd2UncmUgY3VycmVudGx5IHNvbHZpbmcgaGVy ZSBhdCBhbGwgSSB0aGluay4KPiA+Pj4+Pj4+Pj4gQ3VycmVudGx5IHNpaTg2MjAgZGV2aWNlIGlu IHRtMiBzZW5kcyBocGQgc2lnbmFsIHVwc3RyZWFtIHZpYSBoYXJkd2FyZQo+ID4+Pj4+Pj4+PiBs aW5lLCBzbyB0aGlzIGlzIG5vdCBzb21ldGhpbmcgZnJvbSBmYXIgZnV0dXJlLiBBbmQgSSBndWVz cyB3aXRoIEhQRAo+ID4+Pj4+Pj4+PiBicm9hZGNhc3RpbmcgaXQgY291bGQgYmUgcmFjeS9lcnJv ciBwcm9uZSwgZm9yIGV4YW1wbGUgRURJRCByZWFkaW5nIGNhbgo+ID4+Pj4+Pj4+PiBmYWlsIGR1 ZSB0byBicmlkZ2UgYmVpbmcgbm90IHJlYWR5IChkZGMgb2Ygc2lpODYyMCBpcyBjb25uZWN0ZWQg dG8gaTJjCj4gPj4+Pj4+Pj4+IGNvbnRyb2xsZXIgdmlhIGh3IHdpcmVzIGFsc28pLgo+ID4+Pj4+ Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4gQW5kIHJlZ2FyZGluZyBpbXBsZW1lbnRhdGlvbjoKPiA+Pj4+ Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiAxLiBMYXVyZW50IHByb3Bvc2VzIHRvIHJlZ2lzdGVy IGNhbGxiYWNrIGRybV9icmlkZ2VfaHBkX2VuYWJsZS4KPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+ Pj4+Pj4+PiAyLiBZb3UgcHJvcG9zZSB0byBhZGQgb3BzIGhwZF9ub3RpZnkgaW4gYnJpZGdlcyBh bmQgZW5jb2RlcnMuCj4gPj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4gWW91ciBwcm9wb3Np dGlvbiBpcyBtb3JlIHN0cmFpZ2h0Zm9yd2FyZCwgYnV0IGlmIHdlIHdhbnQgdG8gbm90aWZ5IG9u bHkKPiA+Pj4+Pj4+Pj4+Pj4+IHNvdXJjZSB3ZSBzaG91bGQgbG9jYXRlIGl0IGJ5IHBhcnNpbmcg bm90aWZpY2F0aW9uIGNoYWluICh3aGF0IGFib3V0Cj4gPj4+Pj4+Pj4+Pj4+PiB1bmNoYWluZWQg YnJpZGdlcyksIG9yIHN0b3JlIHBvaW50ZXIgc29tZXdoZXJlIGR1cmluZyBhdHRhY2htZW50Lgo+ ID4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IEl0IHN0aWxsIGxlYXZlcyB1cyB3aXRoIHRo aXMgdWdseSBkdWFsaXNtIC0gc291cmNlIGlzIGVuY29kZXIgb3IgYnJpZGdlLAo+ID4+Pj4+Pj4+ Pj4+Pj4gc2ltaWxhcmx5IHRvIHNpbmsgYXMgYnJpZGdlIG9yIHBhbmVsLCBidXQgZml4aW5nIGl0 IGNhbiBiZSBkb25lIGxhdGVyLgo+ID4+Pj4+Pj4+Pj4+PiBVaCBJIHRoaW5rIHdlJ3JlIG5vdCB0 YWxraW5nIGFib3V0IHRoZSBzYW1lIHRoaW5nIHJlYWxseS4gTXkgdW5kZXJzdGFuZGluZwo+ID4+ Pj4+Pj4+Pj4+PiBpcyB0aGF0IHRoaXMgY2FsbGJhY2sgaXMgaWYgc29tZW9uZSAob3V0c2lkZSBv ZiB0aGlzIGJyaWRnZSkgaXMgaW50ZXJlc3RlZAo+ID4+Pj4+Pj4+Pj4+PiBpbiBhIGhwZCBzaWdu YWwgX2Zyb21fIHRoaXMgYnJpZGdlLiBXaGljaCBtZWFucyB5b3UgY2FuIG9ubHkgZXZlciBoYXZl IDEKPiA+Pj4+Pj4+Pj4+Pj4gbGlzdGVuZXIuCj4gPj4+Pj4+Pj4+Pj4gRG8gd2UgaGF2ZSByZWFs IGxpZmUgZXhhbXBsZXM/Cj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBJIHdhbnQgdG8gZGlz dGluZ3Vpc2ggdHdvIHNpdHVhdGlvbnM6Cj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiAtIGFu b3RoZXIgZGV2aWNlIHdhbnRzIHRvIGtub3cgaWYgaW5wdXQgYnVzIG9mIHRoZSBicmlkZ2UgaGFz IGNoYW5nZWQgc3RhdGUsCj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiAtIGFub3RoZXIgZGV2 aWNlIHdhbnRzIHRvIGtub3cgaWYgb3V0cHV0IGJ1cyBvZiB0aGUgYnJpZGdlIGhhcyBjaGFuZ2Vk Cj4gPj4+Pj4+Pj4+Pj4gc3RhdGUuCj4gPj4+Pj4+Pj4+PiBVaCwgdGhhdCdzIHdoYXQgZHJtX2Jy aWRnZV9zdGF0ZSBpcyBmb3IgKGlmIGl0IGV2ZXIgaGFwcGVucykuIFRoYXQncyBob3cKPiA+Pj4+ Pj4+Pj4+IGJyaWRnZXMgY2FuIGV4Y2hhbmdlIHN0YXRlIGFuZCBpbmZvcm1hdGlvbiBhYm91dCBl YWNoIGFub3RoZXIuIGhwZCBpcwo+ID4+Pj4+Pj4+Pj4gYWJvdXQgdGhlIHBoeXNpY2FsIHdvcmxk LCBpLmUuICJpcyB0aGVyZSBhIGNhYmxlIHBsdWdnZWQgaW50byB0aGUgcG9ydAo+ID4+Pj4+Pj4+ Pj4gSSdtIGRyaXZpbmc/Ii4gV2UncmUgbm90IGdvaW5nIHRvIHVzZSBmYWtlIGhwZCB0byB1cGRh dGUgYnJpZGdlIHN0YXRlIGFuZAo+ID4+Pj4+Pj4+Pj4gZnVuIHN0dWZmIGxpa2UgdGhhdCwgd2Ug aGF2ZSB0aGUgYXRvbWljX2NoZWNrIG1hY2hpbmVyeSBmb3IgdGhpcy4KPiA+Pj4+Pj4+Pj4gTXkg cXVlc3Rpb24gd2FzIGlmIHdlIGhhdmUgcmVhbCBleGFtcGxlcyB0aGF0IHVwc3RyZWFtIGRldmlj ZSByZXF1aXJlcwo+ID4+Pj4+Pj4+PiBrbm93bGVkZ2UgYWJvdXQgc3RhdGUgb2Ygb3V0cHV0IGxp bmUgb2YgdGhlIGJyaWRnZT8KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gVG8gYmUgbW9yZSBwcmVj aXNlLCB3ZSBoYXZlIGZvbGxvd2luZyBkaXNwbGF5IHBpcGVsaW5lOgo+ID4+Pj4+Pj4+Pgo+ID4+ Pj4+Pj4+PiBBLS0+Qi0tPkMKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gQW5kIEMgc2VuZHMgSFBE IHRvIEIgKGllIHNpZ25hbCB0aGF0IHN0YXRlIG9mIGxpbmUgYmV0d2VlbiBCIGFuZCBDCj4gPj4+ Pj4+Pj4+IGNoYW5nZWQpLiBEb2VzIEEgcmVhbGx5IHdhbnRzIHRvIGtub3cgdGhpcyBpbmZvcm1h dGlvbj8gb3IgaXQgc2hvdWxkCj4gPj4+Pj4+Pj4+IGp1c3QgbmVlZCB0byBrbm93IGlmIHN0YXRl IG9mIGxpbmUgQS0tPkIgY2hhbmdlZD8KPiA+Pj4+Pj4+PiBUaGVyZSdzIG9uZSByZWFsIGxpZmUg ZXhhbXBsZSwgd2hlcmUgQSBpcyBhbiBIRE1JIGVuY29kZXIsIEIgaXMgYW4gSERNSQo+ID4+Pj4+ Pj4+IEVTRCBwcm90ZWN0b3IgYW5kIGxldmVsIHNoaWZ0ZXIsIGFuZCBDIGlzIHRoZSBwaHlzaWNh bCBIRE1JIGNvbm5lY3Rvci4KPiA+Pj4+Pj4+PiBXaGVuIHRoZSBIRE1JIGNhYmxlIGlzIHVucGx1 Z2dlZCwgdGhlIENFQyBjb250cm9sbGVyIHBhcnQgb2YgQSBuZWVkcyB0bwo+ID4+Pj4+Pj4+IGJl IG5vdGlmaWVkIGluIG9yZGVyIHRvIHJlc2V0IHRoZSBDRUMgc3RhdGUgbWFjaGluZS4gT25lIGNv dWxkIGhvd2V2ZXIKPiA+Pj4+Pj4+PiBhcmd1ZSB0aGF0IGluIHRoYXQgY2FzZSB0aGUgQS1CIGxp bmsgc3RhdGUgY2hhbmdlcyB0b28sIGJ1dCB0aGUKPiA+Pj4+Pj4+PiBpbXBvcnRhbnQgcGFydCBp cyB0aGF0IEhQRCBkZXRlY3Rpb24gaXMgbm90IHBlcmZvcm1lZCBieSBBLCB3aGlsZSBBCj4gPj4+ Pj4+Pj4gbmVlZHMgdG8gYmUgaW5mb3JtZWQgb2YgbG9zdCBob3RwbHVnLgo+ID4+Pj4+Pj4gSSBo YXZlIG5vIGZ1bGwgcGljdHVyZSBidXQgSSBndWVzcyBpbiB0aGlzIGNhc2UgQyBzZW5kcyBIUEQg dG8gQiB1c2luZwo+ID4+Pj4+Pj4gaGFyZHdhcmUgd2lyZSwgYW5kIHRoZW4gQiBzZW5kcyBIUEQg dG8gQSBhbHNvIHZpYSB3aXJlLCBzbyBJIHdvdWxkbid0Cj4gPj4+Pj4+PiBzYXkgdGhhdCBCIGRv ZXMgbm90IHBhcnRpY2lwYXRlIGluIEhQRCB0cmFuc21pc3Npb24vZm9yd2FyZGluZywKPiA+Pj4+ Pj4gTm8sIGluIHRoaXMgY2FzZSBBIGRvZXNuJ3QgcmVjZWl2ZSBhbnkgaGFyZHdhcmUgSFBEIHNp Z25hbCwgaXQgcmVxdWlyZXMKPiA+Pj4+Pj4gSFBEIG5vdGlmaWNhdGlvbiB0aHJvdWdoIHNvZnR3 YXJlLgo+ID4+Pj4+Pgo+ID4+Pj4+Pj4gc29tZSBzaGlmdGVycyB3aXRoICdhZHZhbmNlZCBwb3dl ciBzYXZpbmcnIGNhbiBldmVuIHBlcmZvcm0gd2FrZS11cCBvZgo+ID4+Pj4+Pj4gdXBzdHJlYW0g cGluIGxvZ2ljIGFmdGVyIHJlY2VpdmluZyBIUEQgb24gZG93bnN0cmVhbSwgc28gSFBEIHNlbnQg ZnJvbSBCCj4gPj4+Pj4+PiB0byBBIGlzIGluZGVlZCBkaWZmZXJlbnQgdGhhbiBIUEQgc2VudCBm cm9tIEMgdG8gQi4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBCdHcsIHdpdGggdGhlIGFib3ZlIGxvZ2lj IG9mIHByb3BhZ2F0aW9uIG9mIEhQRCBjYWxsYmFjayAocHJvcG9zZWQgYnkKPiA+Pj4+Pj4+IERh bmllbCkgSSBndWVzcyBpdCB3aWxsIHdvcmsgdGhpcyB3YXk6Cj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4g LSBBIHdpbGwgcmVjZWl2ZSBIUEQgc2lnbmFsIHZpYSBIVywKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiAt IHRoZW4gQiBhbmQgQyB3aWxsIHJlY2VpdmUgSFBEIGNhbGxiYWNrIHZpYSBmcmFtZXdvcmsuCj4g Pj4+Pj4+Pgo+ID4+Pj4+Pj4gQW0gSSByaWdodD8KPiA+Pj4+Pj4gSXQncyB0aGUgb3RoZXIgd2F5 IGFyb3VuZC4KPiA+Pj4+Pj4KPiA+Pj4+Pj4gSW4gdGhpcyBjYXNlIHRoZSBIUEQgc2lnbmFsIGZy b20gdGhlIGNvbm5lY3RvciAoQykgaXMgcm91dGVkIHRvIGFuIGlucHV0Cj4gPj4+Pj4+IG9mIHRo ZSBFU0QgY2hpcCAoQikuIFRoZSBFU0QgY2hpcCBvdXRwdXRzIGEgc2hpZnRlZCBIUEQgaGFyZHdh cmUgc2lnbmFsCj4gPj4+Pj4+IGNvbm5lY3RlZCB0byBhIEdQSU8gb2YgdGhlIFNvQy4gVGhlIGRy aXZlciBmb3IgKEIpIHRodXMgcmVnaXN0ZXJzIGEgR1BJTwo+ID4+Pj4+PiBJUlEgYW5kIHJlY2Vp dmUgdGhlIGhhcmR3YXJlIEhQRCBub3RpZmljYXRpb24uIFRoZSBkcml2ZXIgZm9yIHRoZSBIRE1J Cj4gPj4+Pj4+IGVuY29kZXIgKEEpIG5lZWRzIHRvIHJlY2VpdmUgSFBEIG5vdGlmaWNhdGlvbiBp biBzb2Z0d2FyZSwgdGhyb3VnaCB0aGUKPiA+Pj4+Pj4gZnJhbWV3b3JrLgo+ID4+Pj4+IElmIHRo aXMgaXMgR1BJTyBJIHdvbmRlciB3aHkgZG8gbm90IHF1ZXJ5IHRoaXMgZ3BpbyBieSBlbmNvZGVy IGRpcmVjdGx5LAo+ID4+Pj4+IHJ1bGVzIG9mIG93bmVyc2hpcCBvZiBzdWNoIGdwaW9zIHNlZW1z IHRvIGJlIGdyZXkgYXJlYSwgc28gaW4gc3VjaCBjYXNlCj4gPj4+Pj4gSSB3b3VsZCBhZHZpc2Ug dG8gcHV0IGl0IGluIHRoZSBkcml2ZXIgd2hvIHJlYWxseSBuZWVkcyBpdC4KPiA+Pj4+Pgo+ID4+ Pj4+IFRoaXMgd2F5IGl0IHdpbGwgYmUgbXVjaCBzaW1wbGVyLgo+ID4+Pj4gRmlyc3QgdG8gZmFs bCwgbXVsdGlwbGUgZHJpdmVycyBtYXkgbmVlZCB0byBiZSBpbmZvcm1lZCBvZiBIUEQgZXZlbnRz Cj4gPj4+PiBjb21pbmcgZnJvbSBhIEdQSU8sIHNvIHdlIHdvdWxkIG5lZWQgdG8gZHVwbGljYXRl IGl0IGluIG11bHRpcGxlIHBsYWNlcywKPiA+Pj4+IGFuZCBJIGRvbid0IHRoaW5rIHRoZSBHUElP IGZyYW1ld29yayBhbGxvd3MgYWNxdWlyaW5nIGEgR1BJTyBtdWx0aXBsZQo+ID4+Pj4gdGltZXMu Cj4gPj4+Pgo+ID4+Pj4gVGhlbiwgdGhlIEdQSU8gaXMgZGVzY3JpYmVkIGluIERULCBhbmQgRFQg ZG9lc24ndCBjYXJlIGFib3V0IHdoaWNoCj4gPj4+PiBkcml2ZXIgbmVlZHMgSFBEIGV2ZW50cy4g RFQgc3BlY2lmaWVzIHRoZSBHUElPIGluIHRoZSBub2RlIG9mIHRoZSBkZXZpY2UKPiA+Pj4+IGl0 IGJlbG9uZ3MgdG8sIHRoaXMgaXMgZGVmaW5lZCBpbiBEVCBiaW5kaW5ncywgYW5kIG11c3QgYmUg dGhlIHNhbWUgb24KPiA+Pj4+IGFsbCBib2FyZHMsIHdoaWxlIGRlcGVuZGluZyBvbiB0aGUgYm9h cmQgZGlmZmVyZW50IGRldmljZXMgbWF5IG5lZWQgdG8KPiA+Pj4+IGJlIGluZm9ybWVkIG9mIEhQ RCBldmVudHMuCj4gPj4+Pgo+ID4+Pj4gRm9yIHRob3NlIHR3byByZWFzb25zIEhQRCBHUElPIGhh bmRsaW5nIGFuZCBjb25zdW1wdGlvbiBvZiBIUEQgZXZlbnRzCj4gPj4+PiBjYW4ndCBhbHdheXMg YmUgZ3JvdXBlZCBpbiB0aGUgc2FtZSBkcml2ZXIuCj4gPj4+Pgo+ID4+Pj4+IEdvaW5nIGJhY2sg dG8gSFBEIG5vdGlmaWNhdGlvbnMsIGFzIEkgc2FpZCBlYXJsaWVyIGJyb2FkY2FzdGluZyBIUEQK PiA+Pj4+PiBub3RpZmljYXRpb24gdW5jb25kaXRpb25hbGx5IHRvIGV2ZXJ5IG1lbWJlciBvZiB0 aGUgY2hhaW4gd2l0aCBob3BlIHRoYXQKPiA+Pj4+PiB0aGUgbWVtYmVyIHdpbGwgYmUgYWJsZSB0 byBmaWx0ZXItb3V0IHVuZGVzaXJlZCBub3RpZmljYXRpb24gc2VlbXMgdG8gbWUKPiA+Pj4+PiBp bmNvcnJlY3QgLSBtYXliZSBpdCBjYW4gc29sdmUgc29tZSBwcm9ibGVtcyBidXQgaXMgbm90IGZs ZXhpYmxlIGVub3VnaAo+ID4+Pj4+IHRvIGJlIHVzYWJsZSBpbiBvdGhlciBzY2VuYXJpb3MuCj4g Pj4+Pj4KPiA+Pj4+PiBJZiBteSBhcmd1bWVudHMgZG8gbm90IGNvbnZpbmNlIHlvdSBwbGVhc2Ug anVzdCBjb250aW51ZSB3aXRoIHlvdXIKPiA+Pj4+PiBpZGVhcywgd2UgY2FuIGFsd2F5cyBhZGQg Tk9fSFBEX0JST0FEQ0FTVCBzb21ld2hlcmUgOikKPiA+Pj4+IDotKSBJIHdvdWxkIGxpa2UgdG8g dW5kZXJzdGFuZCB0aGUgcHJvYmxlbXMgeW91J3JlIHJlZmVycmluZyB0byB0aG91Z2gsCj4gPj4+ PiBhbmQgaG9wZWZ1bGx5IHNvbHZlIHRoZW0uIElmIHlvdSBjb3VsZCBkZXNjcmliZSBvbmUgb2Yg dGhlIHNjZW5hcmlvcwo+ID4+Pj4gd2hlcmUgeW91IHRoaW5rIHRoaXMgbWVjaGFuaXNtIHdvdWxk bid0IGJlIHVzYWJsZSB0aGF0IHdvdWxkIGhlbHAuIEluCj4gPj4+PiB0aGUgbWVhbnRpbWUgSSB3 aWxsIHBvc3QgYSBuZXcgdmVyc2lvbiBvZiB0aGUgc2VyaWVzIHdpdGggdGhlc2UKPiA+Pj4+IG9w ZXJhdGlvbnMga2VwdCBhcy1pcyB0byBnZXQgdGhlIHJlc3Qgb2YgdGhlIHBhdGNoZXMgcmV2aWV3 ZWQuCj4gPj4+IFNlZSBteSBsaXR0bGUgdGhpbmcgYWJvdXQgbWlkbGF5ZXJzLCBJIHRoaW5rIG1p ZGxheWVycyB3aXRoIGxvdHMgb2YgZmxhZ3MKPiA+Pj4gZm9yIGV2ZXJ5dGhpbmcgYXJlbid0IGEg Z29vZCBpZGVhLiBUaGV5IHNob3VsZCBiZSBtb3JlIG9waW5pb25hdGVkIGFib3V0Cj4gPj4+IGhv dyB0aGluZ3Mgd29yay4KPiA+Pj4KPiA+Pj4gU28gaWYgdGhlcmUncyBhIGNhc2Ugd2hlcmUgdGhp cyBicm9hZGNhc3Rpbmcgb2YgdmFyaW91cyB0aGluZ3MgZG9lc24ndAo+ID4+PiB3b3JrLCBsZXQn cyBkaWcgaW50byBpdC4KPiA+Pj4KPiA+PiBPSywgYWxtb3N0IHJlYWwgbGlmZSBleGFtcGxlOgo+ ID4+Cj4gPj4gQSAtPiBCIC0+IEMKPiA+Pgo+ID4+IEEgLSBSR0IvSERNSSBjb252ZXJ0ZXIsCj4g Pj4KPiA+PiBCIC0gSERNSS9NSEwgY29udmVydGVyLAo+ID4+Cj4gPj4gQyAtIHVVU0IgY29udHJv bGxlciAoTVVJQykuCj4gPj4KPiA+Pgo+ID4+IEMgLSBkZXRlY3RzIHByZXNlbmNlIG9mIE1ITCBz aW5rIGFuZCByb3V0ZXMgTUhMIGxpbmVzIHRvIEIgaW4gc3VjaCBjYXNlLgo+ID4+Cj4gPj4gQiAt IGhhcyBubyBoYXJkd2FyZSBsb2dpYyB0byBkZXRlY3QgSFBELCBidXQgaXQncyBmaXJtd2FyZSBj YW4gcmVhZCBFRElECj4gPj4gZnJvbSBkb3duc3RyZWFtIGNvbXBvbmVudCB2aWEgSFcgbGluZXMg YW5kIGl0IGhhcyBoYXJkd2FyZSBsaW5lcyB0bwo+ID4+IHVwc3RyZWFtIGNvbXBvbmVudCB0byBz ZW5kIEVESUQsCj4gPj4KPiA+PiBBIC0gY2FuIHJlYWQgRURJRCBmcm9tIEIgdmlhIGhhcmR3YXJl IGxpbmVzLCBidXQgZG9lcyBub3QgaGF2ZSBoYXJkd2FyZSBIUEQuCj4gPiAKPiA+IEl0IHByb2Jh Ymx5IGRvZXNuJ3QgbWF0dGVyIG11Y2ggZm9yIHRoZSBvdmVyYWxsIGRpc2N1c3Npb24sIGJ1dCBv dXQgb2YKPiA+IGN1cmlvc2l0eSwgZG9lcyBCIGhhdmUgYSBDQlVTIGludGVyZmFjZSB0b3dhcmRz IEMgYW5kIGEgRERDIChJMkMpCj4gPiBpbnRlcmZhY2UgdG93YXJkcyBBID8KPiAKPiBZZXMsIGJ1 dCBDIChNVUlDKSBpcyBub3QgTUhMIGF3YXJlLCBiZXNpZGUgaW5pdGlhbCAxSyByZXNpc3RhbmNl Cj4gZGV0ZWN0aW9uIG9uIElEIHBpbiwgQUZBSUsuCj4gCj4gPiAgQW5kIGRvZXMgQSByZWFkIHRo ZSBFRElEIG9uIEREQyBhbmQgZXhwb3NlIGl0Cj4gPiB0b3dhcmRzIHRoZSBTb0MgdGhyb3VnaCBh IGN1c3RvbSBwcm90b2NvbCAoZm9yIGluc3RhbmNlIGFzIHRoZSBBRFY3NTExCj4gPiBkb2VzKSwg b3IgZG9lcyBpdCBmb3J3YXJkIHRoZSBEREMgbGluZXMgdG8gdGhlIFNvQyA/Cj4gPgo+ID4+IFNv IGhvdyBpdCBzaG91bGQgd29yayAoYWNjb3JkaW5nIHRvIHNwZWNpZmljYXRpb24pOgo+ID4+Cj4g Pj4gMS4gQyBkZXRlY3RzIE1ITCBzaW5rLgo+ID4+Cj4gPj4gMi4gQyBzd2l0Y2hlcyBoaXMgbXV4 IHRvIHJvdXRlIGxpbmVzIHRvIEIuCj4gPj4KPiA+PiAzLiBDIHNlbmRzIEhQRCBub3RpZmljYXRp b24gdG8gQi4KPiA+Pgo+ID4+IDQuIEIgcG93ZXJzIG9uLCBpdHMgZmlybXdhcmUgcmVhZHMgRURJ RCBmcm9tIGRvd25zdHJlYW0gbGluZXMgKHBvc3NpYmx5Cj4gPj4gYWRqdXN0aW5nIGl0KSBhbmQg bWFrZXMgaXQgYXZhaWxhYmxlIHRvIHVwc3RyZWFtIGNvbXBvbmVudCBBLgo+ID4+Cj4gPj4gNS4g QiBzZW5kcyBIUEQgbm90aWZpY2F0aW9uIHRvIEEuCj4gPj4KPiA+Pgo+ID4+IEkgZG8gbm90IGtu b3cgaG93IGl0IGNvdWxkIHdvcmsgd2l0aCBIUEQgYnJvYWRjYXN0aW5nLgo+ID4+Cj4gPj4gSSBn dWVzcyBDIHNob3VsZCBiZSBIUEQgcHJvdmlkZXIsIGJ1dCBpbiBjYXNlIG9mIEhQRCBicm9hZGNh c3RpbmcgQSBhbmQKPiA+PiBCIHdvdWxkIHJlY2VpdmUgbm90aWZpY2F0aW9uIGluIHRoZSBzYW1l IHRpbWUsIGFzIGEgcmVzdWx0IEEgd291bGQgc3RhcnQKPiA+PiByZWFkaW5nIEVESUQgdG9vIGVh cmx5IC0gZmFpbC4KPiA+Cj4gPiBUaGF0J3MgYW4gaW50ZXJlc3RpbmcgY2FzZSBpbmRlZWQuIE5v dyBJIHVuZGVyc3RhbmQgd2hhdCB5b3UgbWVhbnQKPiA+IGVhcmxpZXIuCj4gPgo+ID4gVGhlIEhQ RCBub3RpZmljYXRpb24gZnJvbSBDIHRvIEIgaXMgcHVyZWx5IGludGVybmFsLCBhbmQgc2hvdWxk IG5vdCBiZQo+ID4gdmlzaWJsZSBmcm9tIGEgRFJNL0tNUyBwb2ludCBvZiB2aWV3LiBJdCBqdXN0 IGhhcHBlbnMgdGhhdCB0aGlzIGhhcmR3YXJlCj4gPiBzZXR1cCBoYXMgYSBtb3JlIGNvbXBsZXgg SFBEIHNlcXVlbmNlIHRoYXQgcmVxdWlyZXMgc29mdHdhcmUKPiA+IGludGVydmVudGlvbiBpbiB0 aGUgbWlkZGxlIG9mIHRoZSBzZXF1ZW5jZS4gQXMgc3VjaCwgaWYgd2UgZm9yZ2V0IGFib3V0Cj4g PiB0aGlzIHBhdGNoIHNlcmllcyBmb3IgYSBtaW51dGUsIEMgd291bGQgbmVlZCBhIGN1c3RvbSBB UEkgdG8gc2VuZCBNSEwKPiA+IG5vdGlmaWNhdGlvbiB0byBCLCBhbmQgdGhlIEhQRCBmb3IgRFJN L0tNUyB3b3VsZCBiZSBub3RpZmllZCBieSBCLCByaWdodAo+ID4gPwo+IAo+IEkganVzdCB3YW50 IHRvIGNvbnZpbmNlIHlvdSB0aGF0IG1heWJlIGFsbCBIUEQgc2lnbmFscwo+IChoYXJkd2FyZS9z b2Z0d2FyZSkgYXJlIHB1cmVseSBpbnRlcm5hbCAoaWUgdGhleSBzaG91bGQgYmUgaGFuZGxlZCBv bmx5Cj4gYnkgdXBzdHJlYW0gZGV2aWNlcyksIGFuZCB0aGUgaG90cGx1ZyBldmVudCBzaG91bGQg YmUgc2VudCB0bwo+IHVzZXJzcGFjZS9kcm1fY29yZSBvbmx5IHdoZW4gV0hPTEUgcGlwZWxpbmUg aXMgcmVhZHkgdG8gcXVlcnkgbW9kZXMKPiAoaTJjL3NpZGViYW5kIGNoYW5uZWxzL3doYXRldmVy IGlzIGZ1bmN0aW9uYWwpLgoKSSB0aGluayB0aGF0IG1vc3QgSFBEIGV2ZW50cyBhcmUgbm90IGlu dGVybmFsLCBhbmQgdGhhdCB0aGUgYWJvdmUgY2FzZQppcyBtb3JlIGFuIGV4Y2VwdGlvbiB0aGFu IGEgcnVsZSA6LSkgSXQgc2hvdWxkIGhvd2V2ZXIgYmUgc3VwcG9ydGVkLCBhbmQKSSBhZ3JlZSB0 aGF0IEhQRCBzaG91bGQgYmUgbm90aWZpZWQgdG8gdGhlIERSTSBjb3JlIG9ubHkgd2hlbiBpdCBo YXMKdHJhdmVyc2VkIHRoZSB3aG9sZSBwaXBlbGluZSwgeWVzLgoKSSdkIGxpa2UgdG8ga2VlcCBi cmlkZ2UgZHJpdmVycyBzaW1wbGUgdGhvdWdoLCBhbmQgYXZvaWQgcmVxdWlyaW5nCm1hbnVhbCBI UEQgcHJvcGFnYXRpb24gYXMgSSB0aGluayB0aGF0J3MgdGhlIGNvbW1vbiBjYXNlLiBUaGF0J3Mg d2h5IEkKcHJvcG9zZWQgYmxvY2tpbmcgdGhlIHByb3BhZ2F0aW9uIGJlbG93LiBXaGF0IGRvIHlv dSB0aGluayA/CgpUaGlzIGFsc28gbWVhbnMgdGhhdCwgaWYgd2Ugc3dpdGNoIHRvIGEgbW9kZWwg d2hlcmUgcHJvcGFnYXRpb24gY2FuIGJlCmRpc2FibGVkLCBhIGJyaWRnZSB3aWxsIG9ubHkgbm90 aWZ5IHVwc3RyZWFtIChjbG9zZXIgdG8gdGhlIENSVEMpCmJyaWRnZXMuIElmLCBpbiBhIEEtQi1D IGNoYWluLCBicmlkZ2UgQiByZWNlaXZlcyB0aGUgZXh0ZXJuYWwgSFBEIGV2ZW50LAp0aGVuIGJy aWRnZSBDIHdvdWxkIG5ldmVyIGJlIG5vdGlmaWVkLiBEbyB5b3UgdGhpbmsgdGhhdCBjb3VsZCBi ZSBhbgppc3N1ZSA/Cgo+ID4gSSB0aGluayBpdCdzIHBvc3NpYmxlIHRvIGhhbmRsZSBib3RoIHRo ZSBNSEwgbm90aWZpY2F0aW9uIGFuZCB0aGUKPiA+IHVzZXItdmlzaWJsZSBIUEQgbm90aWZpY2F0 aW9uIHRocm91Z2ggdGhlIHNhbWUgYnJpZGdlIEFQSSwgcHJvdmlkZWQgdGhhdAo+ID4gd2Ugb2Zm ZXIgYSB3YXkgZm9yIGEgYnJpZGdlIHRvIGJsb2NrIGZvcndhcmRpbmcgb2YgdGhlIEhQRCBub3Rp ZmljYXRpb24uCj4gPiBUaGlzIHdpbGwgYWxzbyByZXF1aXJlIGNhbGxpbmcgdGhlIEhQRCBub3Rp ZmllcnMgb24gYnJpZGdlcyBpbiB0aGUgc2luawo+ID4gdG8gc291cmNlIG9yZGVyLiBCb3RoIGFy ZSBkb2FibGUsIHRoZSBicmlkZ2UgSFBEIG5vdGlmaWVyIG9wZXJhdGlvbgo+ID4gY291bGQgcmV0 dXJuIGEgYm9vbCB0aGF0IGJsb2NrcyBwcm9wYWdhdGlvbiBvZiB0aGUgbm90aWZpY2F0aW9uLiBX b3VsZAo+ID4gdGhhdCB3b3JrIGZvciB5b3UgPwo+IAo+IEl0IGNvdWxkIHdvcmssIGluIHRoaXMg Y2FzZS4KPiAKPiBCdXQgaXQgd2lsbCBzdGlsbCBoYXZlIHByb2JsZW1zIHdpdGggbm9uLWxpbmVh ciBwaXBlbGluZXMgLSB3aGVyZSBzdHJlYW0KPiBpcyBzcGxpdCB0byB0d28gb3IgbW9yZSBicmlk Z2VzL3BhbmVscy4KCkkgYWdyZWUsIGJ1dCB0aGF0J3Mgbm90IHN1cHBvcnRlZCBieSB0aGUgYnJp ZGdlIEFQSSBmb3Igbm93LiBJJ20gbm90CnN1cmUgSSdtIGxvb2tpbmcgZm9yd2FyZCB0byBkZWFs aW5nIHdpdGggdGhpcywgYnV0IEkgdGhpbmsgaXQgd2lsbCBiZQpuZWVkZWQgOi0pCgo+ID4+Pj4+ Pj4+Pj4+PiBZb3Ugc2VlbSB0byBoYXZlIHNvbWUgb3RoZXIgaWRlYSBoZXJlLgo+ID4+Pj4+Pj4+ Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCW11dGV4X3VubG9jaygmYnJpZGdlLT5ocGRfbXV0 ZXgpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArfQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArRVhQT1JU X1NZTUJPTF9HUEwoZHJtX2JyaWRnZV9ocGRfbm90aWZ5KTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g Kwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgI2lmZGVmIENPTkZJR19PRgo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiAgLyoqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAgKiBvZl9kcm1fZmluZF9icmlkZ2UgLSBm aW5kIHRoZSBicmlkZ2UgY29ycmVzcG9uZGluZyB0byB0aGUgZGV2aWNlIG5vZGUgaW4KPiA+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9icmlkZ2UuaCBiL2lu Y2x1ZGUvZHJtL2RybV9icmlkZ2UuaAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBpbmRleCAwOGRjMTVm OTNkZWQuLmI5NDQ1YWE1YjFlZiAxMDA2NDQKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gLS0tIGEvaW5j bHVkZS9kcm0vZHJtX2JyaWRnZS5oCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsrKyBiL2luY2x1ZGUv ZHJtL2RybV9icmlkZ2UuaAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBAQCAtMjMsOCArMjMsOSBAQAo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgI2lmbmRlZiBfX0RSTV9CUklER0VfSF9fCj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+ICAjZGVmaW5lIF9fRFJNX0JSSURHRV9IX18KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g IAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAtI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4gICNpbmNsdWRlIDxsaW51eC9jdHlwZS5oPgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ PiArI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKyNpbmNsdWRl IDxsaW51eC9tdXRleC5oPgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgI2luY2x1ZGUgPGRybS9kcm1f bW9kZV9vYmplY3QuaD4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gICNpbmNsdWRlIDxkcm0vZHJtX21v ZGVzLmg+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gQEAgLTMz NCw2ICszMzUsMTEwIEBAIHN0cnVjdCBkcm1fYnJpZGdlX2Z1bmNzIHsKPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4gIAkgKi8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIAl2b2lkICgqYXRvbWljX3Bvc3RfZGlz YWJsZSkoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIAkJ CQkgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4gKwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCS8qKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAq IEBkZXRlY3Q6Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICoKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g KwkgKiBDaGVjayBpZiBhbnl0aGluZyBpcyBhdHRhY2hlZCB0byB0aGUgYnJpZGdlIG91dHB1dC4K PiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIFRoaXMg Y2FsbGJhY2sgaXMgb3B0aW9uYWwsIGlmIG5vdCBpbXBsZW1lbnRlZCB0aGUgYnJpZGdlIHdpbGwg YmUKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBjb25zaWRlcmVkIGFzIGFsd2F5cyBoYXZpbmcg YSBjb21wb25lbnQgYXR0YWNoZWQgdG8gaXRzIG91dHB1dC4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g KwkgKiBCcmlkZ2VzIHRoYXQgaW1wbGVtZW50IHRoaXMgY2FsbGJhY2sgc2hhbGwgc2V0IHRoZQo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIERSTV9CUklER0VfT1BfREVURUNUIGZsYWcgaW4gdGhl aXIgJmRybV9icmlkZ2UtPm9wcy4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKgo+ID4+Pj4+Pj4+ Pj4+Pj4+Pj4+PiArCSAqIFJFVFVSTlM6Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICoKPiA+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBkcm1fY29ubmVjdG9yX3N0YXR1cyBpbmRpY2F0aW5nIHRoZSBi cmlkZ2Ugb3V0cHV0IHN0YXR1cy4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKi8KPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4gKwllbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzICgqZGV0ZWN0KShzdHJ1Y3Qg ZHJtX2JyaWRnZSAqYnJpZGdlKTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwo+ID4+Pj4+Pj4+Pj4+ Pj4+Pj4+PiArCS8qKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIEBnZXRfbW9kZXM6Cj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICoKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBGaWxsIGFsbCBt b2RlcyBjdXJyZW50bHkgdmFsaWQgZm9yIHRoZSBzaW5rIGludG8gdGhlICZkcm1fY29ubmVjdG9y Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogd2l0aCBkcm1fbW9kZV9wcm9iZWRfYWRkKCkuCj4g Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICoKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBUaGUgQGdl dF9tb2RlcyBjYWxsYmFjayBpcyBtb3N0bHkgaW50ZW5kZWQgdG8gc3VwcG9ydCBub24tcHJvYmFi bGUKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBkaXNwbGF5cyBzdWNoIGFzIG1hbnkgZml4ZWQg cGFuZWxzLiBCcmlkZ2VzIHRoYXQgc3VwcG9ydCByZWFkaW5nCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ ICsJICogRURJRCBzaGFsbCBsZWF2ZSBAZ2V0X21vZGVzIHVuaW1wbGVtZW50ZWQgYW5kIGltcGxl bWVudCB0aGUKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiAmZHJtX2JyaWRnZV9mdW5jcy0+Z2V0 X2VkaWQgY2FsbGJhY2sgaW5zdGVhZC4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKgo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiArCSAqIFRoaXMgY2FsbGJhY2sgaXMgb3B0aW9uYWwuIEJyaWRnZXMgdGhh dCBpbXBsZW1lbnQgaXQgc2hhbGwgc2V0IHRoZQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIERS TV9CUklER0VfT1BfTU9ERVMgZmxhZyBpbiB0aGVpciAmZHJtX2JyaWRnZS0+b3BzLgo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiArCSAqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogUkVUVVJOUzoKPiA+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIFRoZSBudW1i ZXIgb2YgbW9kZXMgYWRkZWQgYnkgY2FsbGluZyBkcm1fbW9kZV9wcm9iZWRfYWRkKCkuCj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICovCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJaW50ICgqZ2V0X21v ZGVzKShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCQkJ IHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAr Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJLyoqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogQGdl dF9lZGlkOgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJ ICogUmVhZCBhbmQgcGFyc2UgdGhlIEVESUQgZGF0YSBvZiB0aGUgY29ubmVjdGVkIGRpc3BsYXku Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICoKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBUaGUg QGdldF9lZGlkIGNhbGxiYWNrIGlzIHRoZSBwcmVmZXJyZWQgd2F5IG9mIHJlcG9ydGluZyBtb2Rl Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogaW5mb3JtYXRpb24gZm9yIGEgZGlzcGxheSBjb25u ZWN0ZWQgdG8gdGhlIGJyaWRnZSBvdXRwdXQuIEJyaWRnZXMKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g KwkgKiB0aGF0IHN1cHBvcnQgcmVhZGluZCBFRElEIHNoYWxsIGltcGxlbWVudCB0aGlzIGNhbGxi YWNrIGFuZCBsZWF2ZQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIHRoZSBAZ2V0X21vZGVzIGNh bGxiYWNrIHVuaW1wbGVtZW50ZWQuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICoKPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4gKwkgKiBUaGUgY2FsbGVyIG9mIHRoaXMgb3BlcmF0aW9uIHNoYWxsIGZpcnN0 IHZlcmlmeSB0aGUgb3V0cHV0Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogY29ubmVjdGlvbiBz dGF0dXMgYW5kIHJlZnJhaW4gZnJvbSByZWFkaW5nIEVESUQgZnJvbSBhIGRpc2Nvbm5lY3RlZAo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIG91dHB1dC4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkg Kgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIFRoaXMgY2FsbGJhY2sgaXMgb3B0aW9uYWwuIEJy aWRnZXMgdGhhdCBpbXBsZW1lbnQgaXQgc2hhbGwgc2V0IHRoZQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ PiArCSAqIERSTV9CUklER0VfT1BfRURJRCBmbGFnIGluIHRoZWlyICZkcm1fYnJpZGdlLT5vcHMu Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICoKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBSRVRV Uk5TOgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICog QW4gZWRpZCBzdHJ1Y3R1cmUgbmV3bHkgYWxsb2NhdGVkIHdpdGgga21hbGxvYygpIChvciBzaW1p bGFyKSBvbgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIHN1Y2Nlc3MsIG9yIE5VTEwgb3RoZXJ3 aXNlLiBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBmcmVlaW5nCj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+ICsJICogdGhlIHJldHVybmVkIGVkaWQgc3RydWN0dXJlIHdpdGgga2ZyZWUoKS4KPiA+ Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKi8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwlzdHJ1Y3QgZWRp ZCAqKCpnZXRfZWRpZCkoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4gKwkJCQkgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4gSXQgb3ZlcmxhcHMgd2l0aCBnZXRfbW9kZXMsIEkgZ3Vlc3MgcHJlc2VuY2Ugb2Yg b25lIG9wcyBzaG91bGQgZGlzYWxsb3cKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+PiBwcmVzZW5jZSBvZiBh bm90aGVyIG9uZT8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+IEkgYW0g bm90IHJlYWxseSBjb252aW5jZWQgd2UgbmVlZCB0aGlzIG9wIGF0IGFsbCwgY2Fubm90IHdlIGp1 c3QgYXNzaWduCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4gc29tZSBoZWxwZXIgZnVuY3Rpb24gdG8gLmdl dF9tb2RlcyBjYiwgd2hpY2ggd2lsbCBkbyB0aGUgc2FtZT8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IFBs YW4gQik6IGRpdGNoIC0+Z2V0X2VkaWQsIHJlcXVpcmUgdGhhdCB0aGUgZHJpdmVyIGhhcyAtPmdl dF9tb2RlcyBpbiB0aGF0Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBjYXNlLCBhbmQgcmVxdWlyZSB0aGF0 IGlmIGl0IGhhcyBhbiBlZGlkIGl0IG11c3QgZmlsbCBvdXQgY29ubmVjdG9yLT5pbmZvCj4gPj4+ Pj4+Pj4+Pj4+Pj4+PiBhbmQgY29ubmVjdG9yLT5lZGlkIGNvcnJlY3RseS4KPiA+Pj4+Pj4+Pj4+ Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBCdHcgaWYgYSBocGQgaGFwcGVucywgd2hvJ3MgcmVz cG9uaWJsZSBmb3IgbWFraW5nIHN1cmUgdGhlIGVkaWQvbW9kZSBsaXN0Cj4gPj4+Pj4+Pj4+Pj4+ Pj4+PiBpbiB0aGUgY29ubmVjdG9yIGlzIHVwLXRvLWRhdGU/IFdpdGggeW91ciBjdXJyZW50IGNh bGxiYWNrIGRlc2lnbiB0aGF0J3MKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IHVwIHRvIHRoZSBjYWxsYmFj aywgd2hpY2ggZG9lc24ndCBmZWVsIGdyZWF0LiBNYXliZSAgZHJtX2JyaWRnZV9ocGRfbm90aWZ5 Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBzaG91bGQgZ3VhcmFudGVlIHRoYXQgaXQnbGwgZmlyc3Qgd2Fs ayB0aGUgY29ubmVjdG9ycyB0byB1cGRhdGUgc3RhdHVzIGFuZAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4g ZWRpZC9tb2RlIGxpc3QgZm9yIHRoZSBmaW5hbCBkcm1fY29ubmVjdG9yLiBBbmQgdGhlbiBpbnN0 ZWFkIG9mIGp1c3QKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IHBhc3NpbmcgdGhlIHNpbXBsZSAic3RhdHVz IiwgaXQnbGwgcGFzcyB0aGUgY29ubmVjdG9yLCB3aXRoIGV2ZXJ5dGhpbmcKPiA+Pj4+Pj4+Pj4+ Pj4+Pj4+IGNvcnJlY3RseSB1cGRhdGVkLgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+ Pj4+Pj4+IE90aGVyd2lzZSBldmVyeW9uZSBpbnRlcmVzdGVkIGluIHRoYXQgaHBkIHNpZ25hbCB3 aWxsIGdvIGFuZCByZS1mZXRjaCB0aGUKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IGVkaWQsIHdoaWNoIGlz IG5vdCBzbyBhd2Vzb21lIDotKQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4gKwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCS8qKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAq IEBsb3N0X2hvdHBsdWc6Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICoKPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4gKwkgKiBOb3RpZnkgdGhlIGJyaWRnZSBvZiBkaXNwbGF5IGRpc2Nvbm5lY3Rpb24uCj4g Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICoKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBUaGlzIGNh bGxiYWNrIGlzIG9wdGlvbmFsLCBpdCBtYXkgYmUgaW1wbGVtZW50ZWQgYnkgYnJpZGdlcyB0aGF0 Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogbmVlZCB0byBiZSBub3RpZmllZCBvZiBkaXNwbGF5 IGRpc2Nvbm5lY3Rpb24gZm9yIGludGVybmFsIHJlYXNvbnMuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ ICsJICogT25lIHVzZSBjYXNlIGlzIHRvIHJlc2V0IHRoZSBpbnRlcm5hbCBzdGF0ZSBvZiBDRUMg Y29udHJvbGxlcnMgZm9yCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogSERNSSBicmlkZ2VzLgo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqLwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCXZvaWQgKCps b3N0X2hvdHBsdWcpKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpOwo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiArCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJLyoqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJ ICogQGhwZF9lbmFibGU6Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICoKPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4gKwkgKiBFbmFibGUgaG90IHBsdWcgZGV0ZWN0aW9uLiBGcm9tIG5vdyBvbiB0aGUgYnJp ZGdlIHNoYWxsIGNhbGwKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBkcm1fYnJpZGdlX2hwZF9u b3RpZnkoKSBlYWNoIHRpbWUgYSBjaGFuZ2UgaXMgZGV0ZWN0ZWQgaW4gdGhlIG91dHB1dAo+ID4+ Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIGNvbm5lY3Rpb24gc3RhdHVzLCB1bnRpbCBob3QgcGx1ZyBk ZXRlY3Rpb24gZ2V0cyBkaXNhYmxlZCB3aXRoCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogQGhw ZF9kaXNhYmxlLgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ ICsJICogVGhpcyBjYWxsYmFjayBpcyBvcHRpb25hbCBhbmQgc2hhbGwgb25seSBiZSBpbXBsZW1l bnRlZCBieSBicmlkZ2VzCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogdGhhdCBzdXBwb3J0IGhv dC1wbHVnIG5vdGlmaWNhdGlvbiB3aXRob3V0IHBvbGxpbmcuIEJyaWRnZXMgdGhhdAo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiArCSAqIGltcGxlbWVudCBpdCBzaGFsbCBhbHNvIGltcGxlbWVudCB0aGUg QGhwZF9kaXNhYmxlIGNhbGxiYWNrIGFuZCBzZXQKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiB0 aGUgRFJNX0JSSURHRV9PUF9IUEQgZmxhZyBpbiB0aGVpciAmZHJtX2JyaWRnZS0+b3BzLgo+ID4+ Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqLwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCXZvaWQgKCpocGRf ZW5hYmxlKShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g Kwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCS8qKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIEBo cGRfZGlzYWJsZToKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ PiArCSAqIERpc2FibGUgaG90IHBsdWcgZGV0ZWN0aW9uLiBPbmNlIHRoaXMgZnVuY3Rpb24gcmV0 dXJucyB0aGUgYnJpZGdlCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogc2hhbGwgbm90IGNhbGwg ZHJtX2JyaWRnZV9ocGRfbm90aWZ5KCkgd2hlbiBhIGNoYW5nZSBpbiB0aGUgb3V0cHV0Cj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogY29ubmVjdGlvbiBzdGF0dXMgb2NjdXJzLgo+ID4+Pj4+Pj4+ Pj4+Pj4+Pj4+PiArCSAqCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogVGhpcyBjYWxsYmFjayBp cyBvcHRpb25hbCBhbmQgc2hhbGwgb25seSBiZSBpbXBsZW1lbnRlZCBieSBicmlkZ2VzCj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogdGhhdCBzdXBwb3J0IGhvdC1wbHVnIG5vdGlmaWNhdGlvbiB3 aXRob3V0IHBvbGxpbmcuIEJyaWRnZXMgdGhhdAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIGlt cGxlbWVudCBpdCBzaGFsbCBhbHNvIGltcGxlbWVudCB0aGUgQGhwZF9lbmFibGUgY2FsbGJhY2sg YW5kIHNldAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIHRoZSBEUk1fQlJJREdFX09QX0hQRCBm bGFnIGluIHRoZWlyICZkcm1fYnJpZGdlLT5vcHMuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICov Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJdm9pZCAoKmhwZF9kaXNhYmxlKShzdHJ1Y3QgZHJtX2Jy aWRnZSAqYnJpZGdlKTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIH07Cj4gPj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICAKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIC8qKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBAQCAt MzcyLDYgKzQ3NywzOCBAQCBzdHJ1Y3QgZHJtX2JyaWRnZV90aW1pbmdzIHsKPiA+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4gIAlib29sIGR1YWxfbGluazsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIH07Cj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICAKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKy8qKgo+ID4+Pj4+Pj4+Pj4+ Pj4+Pj4+PiArICogZW51bSBkcm1fYnJpZGdlX29wcyAtIEJpdG1hc2sgb2Ygb3BlcmF0aW9ucyBz dXBwb3J0ZWQgYnkgdGhlIGJyaWRnZQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArICovCj4gPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+ICtlbnVtIGRybV9icmlkZ2Vfb3BzIHsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g KwkvKioKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBARFJNX0JSSURHRV9PUF9ERVRFQ1Q6IFRo ZSBicmlkZ2UgY2FuIGRldGVjdCBkaXNwbGF5cyBjb25uZWN0ZWQgdG8KPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4gKwkgKiBpdHMgb3V0cHV0LiBCcmlkZ2VzIHRoYXQgc2V0IHRoaXMgZmxhZyBzaGFsbCBp bXBsZW1lbnQgdGhlCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogJmRybV9icmlkZ2VfZnVuY3Mt PmRldGVjdCBjYWxsYmFjay4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKi8KPiA+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4gKwlEUk1fQlJJREdFX09QX0RFVEVDVCA9IEJJVCgwKSwKPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4gKwkvKioKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBARFJNX0JSSURHRV9PUF9FRElE OiBUaGUgYnJpZGdlIGNhbiByZXRyaWV2ZSB0aGUgRURJRCBvZiB0aGUgZGlzcGxheQo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiArCSAqIGNvbm5lY3RlZCB0byBpdHMgb3V0cHV0LiBCcmlkZ2VzIHRoYXQg c2V0IHRoaXMgZmxhZyBzaGFsbCBpbXBsZW1lbnQKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiB0 aGUgJmRybV9icmlkZ2VfZnVuY3MtPmdldF9lZGlkIGNhbGxiYWNrLgo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiArCSAqLwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCURSTV9CUklER0VfT1BfRURJRCA9IEJJ VCgxKSwKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkvKioKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkg KiBARFJNX0JSSURHRV9PUF9IUEQ6IFRoZSBicmlkZ2UgY2FuIGRldGVjdCBob3QtcGx1ZyBhbmQg aG90LXVucGx1Zwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIHdpdGhvdXQgcmVxdWlyaW5nIHBv bGxpbmcuIEJyaWRnZXMgdGhhdCBzZXQgdGhpcyBmbGFnIHNoYWxsCj4gPj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICsJICogaW1wbGVtZW50IHRoZSAmZHJtX2JyaWRnZV9mdW5jcy0+aHBkX2VuYWJsZSBhbmQK PiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiAmZHJtX2JyaWRnZV9mdW5jcy0+ZGlzYWJsZV9ocGRf Y2IgY2FsbGJhY2tzLgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqLwo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiArCURSTV9CUklER0VfT1BfSFBEID0gQklUKDIpLAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAr CS8qKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIEBEUk1fQlJJREdFX09QX01PREVTOiBUaGUg YnJpZGdlIGNhbiByZXRyaWV2aW5nIHRoZSBtb2RlcyBzdXBwb3J0ZWQKPiA+Pj4+Pj4+Pj4+Pj4+ Pj4+Pj4gKwkgKiBieSB0aGUgZGlzcGxheSBhdCBpdHMgb3V0cHV0LiBUaGlzIGRvZXMgbm90IGlu Y2x1ZGUgcmVhZGluZCBFRElECj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICogd2hpY2ggaXMgc2Vw YXJhdGVseSBjb3ZlcmVkIGJ5IEBEUk1fQlJJREdFX09QX0VESUQuIEJyaWRnZXMgdGhhdCBzZXQK PiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiB0aGlzIGZsYWcgc2hhbGwgaW1wbGVtZW50IHRoZSAm ZHJtX2JyaWRnZV9mdW5jcy0+Z2V0X21vZGVzIGNhbGxiYWNrLgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+ PiArCSAqLwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCURSTV9CUklER0VfT1BfTU9ERVMgPSBCSVQo MyksCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICt9Owo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCj4gPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+ICAvKioKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gICAqIHN0cnVjdCBkcm1f YnJpZGdlIC0gY2VudHJhbCBEUk0gYnJpZGdlIGNvbnRyb2wgc3RydWN0dXJlCj4gPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+ICAgKi8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gQEAgLTM5OCw2ICs1MzUsMjkgQEAg c3RydWN0IGRybV9icmlkZ2Ugewo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgCWNvbnN0IHN0cnVjdCBk cm1fYnJpZGdlX2Z1bmNzICpmdW5jczsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIAkvKiogQGRyaXZl cl9wcml2YXRlOiBwb2ludGVyIHRvIHRoZSBicmlkZ2UgZHJpdmVyJ3MgaW50ZXJuYWwgY29udGV4 dCAqLwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgCXZvaWQgKmRyaXZlcl9wcml2YXRlOwo+ID4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiArCS8qKiBAb3BzOiBiaXRtYXNrIG9mIG9wZXJhdGlvbnMgc3VwcG9ydGVk IGJ5IHRoZSBicmlkZ2UgKi8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwllbnVtIGRybV9icmlkZ2Vf b3BzIG9wczsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkvKioKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g KwkgKiBAdHlwZTogVHlwZSBvZiB0aGUgY29ubmVjdGlvbiBhdCB0aGUgYnJpZGdlIG91dHB1dAo+ ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIChEUk1fTU9ERV9DT05ORUNUT1JfKikuIEZvciBicmlk Z2VzIGF0IHRoZSBlbmQgb2YgdGhpcyBjaGFpbiB0aGlzCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJ ICogaWRlbnRpZmllcyB0aGUgdHlwZSBvZiBjb25uZWN0ZWQgZGlzcGxheS4KPiA+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4gKwkgKi8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwlpbnQgdHlwZTsKPiA+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4gKwkvKiogcHJpdmF0ZTogKi8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkvKioK PiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKiBAaHBkX211dGV4OiBQcm90ZWN0cyB0aGUgQGhwZF9j YiBhbmQgQGhwZF9kYXRhIGZpZWxkcy4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKi8KPiA+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gKwlzdHJ1Y3QgbXV0ZXggaHBkX211dGV4Owo+ID4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiArCS8qKgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIEBocGRfY2I6IEhvdCBwbHVnIGRl dGVjdGlvbiBjYWxsYmFjaywgcmVnaXN0ZXJlZCB3aXRoCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJ ICogZHJtX2JyaWRnZV9ocGRfZW5hYmxlKCkuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICovCj4g Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJdm9pZCAoKmhwZF9jYikodm9pZCAqZGF0YSwgZW51bSBkcm1f Y29ubmVjdG9yX3N0YXR1cyBzdGF0dXMpOwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCS8qKgo+ID4+ Pj4+Pj4+Pj4+Pj4+Pj4+PiArCSAqIEBocGRfZGF0YTogUHJpdmF0ZSBkYXRhIHBhc3NlZCB0byB0 aGUgSG90IHBsdWcgZGV0ZWN0aW9uIGNhbGxiYWNrCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJICog QGhwZF9jYi4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKwkgKi8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g Kwl2b2lkICpocGRfZGF0YTsKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIH07Cj4gPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+ICAKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIHZvaWQgZHJtX2JyaWRnZV9hZGQoc3RydWN0 IGRybV9icmlkZ2UgKmJyaWRnZSk7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IEBAIC00MjgsNiArNTg4 LDE0IEBAIHZvaWQgZHJtX2F0b21pY19icmlkZ2VfcHJlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRn ZSAqYnJpZGdlLAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgdm9pZCBkcm1fYXRvbWljX2JyaWRnZV9l bmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIAkJ CSAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICAKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gK3ZvaWQgZHJtX2JyaWRnZV9ocGRfZW5hYmxlKHN0 cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJCQkgICB2b2lk ICgqY2IpKHZvaWQgKmRhdGEsCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICsJCQkJICAgICAgZW51bSBk cm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXMpLAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCQkJICAg dm9pZCAqZGF0YSk7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICt2b2lkIGRybV9icmlkZ2VfaHBkX2Rp c2FibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICt2 b2lkIGRybV9icmlkZ2VfaHBkX25vdGlmeShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ID4+ Pj4+Pj4+Pj4+Pj4+Pj4+PiArCQkJICAgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXMp Owo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAjaWZkZWYgQ09O RklHX0RSTV9QQU5FTF9CUklER0UKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gIHN0cnVjdCBkcm1fYnJp ZGdlICpkcm1fcGFuZWxfYnJpZGdlX2FkZChzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCwKPiA+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gIAkJCQkJdTMyIGNvbm5lY3Rvcl90eXBlKTsKCi0tIApSZWdhcmRzLAoK TGF1cmVudCBQaW5jaGFydApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWw=