From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6D34DC4361B for ; Wed, 16 Dec 2020 02:15:37 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 9D361230FF for ; Wed, 16 Dec 2020 02:15:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9D361230FF Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E1B0A89AC6; Wed, 16 Dec 2020 02:15:35 +0000 (UTC) Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id C581389AC6 for ; Wed, 16 Dec 2020 02:15:34 +0000 (UTC) Received: from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 563F82CF; Wed, 16 Dec 2020 03:15:32 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1608084932; bh=Sqzb46lTrutZJ+Ibg0My2zQ23q1Nu7q+fk3OjE8GP+k=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=t0VcvC+9YiKnjXxbD7I7PXpHQfhbFj8WM+1tIx2kU1s9APKJp0TzGyjpSjG+wZj6C VSQW6LLjJeU+27lxGMnrfSX/AgApSV93TMkiPeWitcwuLSpLKgmS6LSoz+bOT/moFg 8OxmP52EwEdLm240t7c9MLg+dVguMMwdWYkFTJA8= Date: Wed, 16 Dec 2020 04:15:25 +0200 From: Laurent Pinchart To: Christian =?utf-8?B?S8O2bmln?= Subject: Re: [PATCH 2/3] drm: uapi: Use SPDX in DRM drivers uAPI headers Message-ID: References: <20200621020703.864-1-laurent.pinchart+renesas@ideasonboard.com> <20200621020703.864-2-laurent.pinchart+renesas@ideasonboard.com> <1e5f7ae2-8b41-dcda-4306-7751e8fbf02b@amd.com> <20200622092933.GY20149@phenom.ffwll.local> <20200717022716.GA1845@pendragon.ideasonboard.com> <843d7b34-418d-991b-d1d9-0ad5089d20a4@amd.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <843d7b34-418d-991b-d1d9-0ad5089d20a4@amd.com> X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sean Paul , Thomas Hellstrom , Laurent Pinchart , Greg Kroah-Hartman , dri-devel@lists.freedesktop.org, Thierry Reding , VMware Graphics , Ben Skeggs , Alex Deucher , Thomas Gleixner , Gerd Hoffmann Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgQ2hyaXN0aWFuLAoKT24gRnJpLCBKdWwgMTcsIDIwMjAgYXQgMDQ6MDU6NDJQTSArMDIwMCwg Q2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPiBBbSAxNy4wNy4yMCB1bSAwNDoyNyBzY2hyaWViIExh dXJlbnQgUGluY2hhcnQ6Cj4gPiBPbiBNb24sIEp1biAyMiwgMjAyMCBhdCAxMToyOTozM0FNICsw MjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4+IE9uIE1vbiwgSnVuIDIyLCAyMDIwIGF0IDA5 OjU4OjQ0QU0gKzAyMDAsIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4gPj4+IEFtIDIxLjA2LjIw IHVtIDA0OjA3IHNjaHJpZWIgTGF1cmVudCBQaW5jaGFydDoKPiA+Pj4+IE1vc3Qgb2YgdGhlIERS TSBkcml2ZXJzIHVBUEkgaGVhZGVycyBhcmUgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNl LAo+ID4+Pj4gYW5kIGNhcnJ5IGNvcGllcyBvZiB0aGUgbGljZW5zZSB3aXRoIHNsaWdodCB2YXJp YXRpb25zLiBSZXBsYWNlIHRoZW0KPiA+Pj4+IHdpdGggU1BEWCBoZWFkZXJzLgo+ID4+PiBNeSBw ZXJzb25hbCBvcGluaW9uIGlzIHRoYXQgdGhpcyBpcyBhIHJlYWxseSBnb29kIGlkZWEsIGJ1dCBt eSBwcm9mZXNzaW9uYWwKPiA+Pj4gaXMgdGhhdCB3ZSBuZWVkIHRoZSBhY2tub3dsZWRnbWVudCBm cm9tIG91ciBsZWdhbCBkZXBhcnRtZW50IGZvciB0aGlzLgo+ID4+IEkgdGhpbmsgb2ZmaWNpYWwg YWNrIGZyb20gYW1kIG9uIGZpcnN0IHBhdGNoLCBlc3BlY2lhbGx5IHRoZSAucnN0IHNuaXBwZXQs Cj4gPj4gd291bGQgYmUgcmVhbGx5IGdvb2QgaW5kZWVkLgo+ID4gQW55IHVwZGF0ZSBvbiB0aGlz IG9uZSA/Cj4gCj4gU29ycnkgdG90YWxseSBmb3Jnb3QgdG8gZm9yd2FyZCB0aGlzIGJlY2F1c2Ug SSB3YXMgd2FpdGluZyBmb3Igc3BsaXQgdXAgCj4gcGF0Y2hlcy4KPiAKPiBHb2luZyB0byBkbyBz byByaWdodCBub3cuCgpIYXMgdGhlcmUgYmVlbiBhbnkgdXBkYXRlID8gOi0pCgo+ID4+PiBQbGVh c2Ugc2VwYXJhdGUgdGhhdCBjaGFuZ2UgaW50byBvbmUgZm9yIGVhY2ggZHJpdmVyL2NvbXBhbnkv bWFpbnRhaW5lci4KPiA+Pj4gQW1kZ3B1LCByYWRlb24sIHIxMjggY2FuIGJlIG9uZSBmb3IgZXhh bXBsZS4KPiA+Cj4gPiBJJ2xsIGRvIHNvLgo+ID4KPiA+PiBZb3UgY2FuIGxlYXZlIGFsbCB0aGUg b3RoZXIgbGVnYWN5IGRyaXZlcnMgaW4gb25lIHBhdGNoIChtZ2EsIHNhdmFnZSwgc2lzLAo+ID4+ IHZpYSksIHNpbmNlIHRoZXJlJ3MgbGlrZWx5IG5vIG9uZSBhcm91bmQgYW55bW9yZSBhbmQgd2ls bCBqdXN0IGJvaWwgZG93bgo+ID4+IHRvIGRybSBtYWludGFpbmVyIGFjayBmcm9tIERhdmUmbWUu Cj4gPj4KPiA+Pj4+IFNpZ25lZC1vZmYtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGlu Y2hhcnQrcmVuZXNhc0BpZGVhc29uYm9hcmQuY29tPgo+ID4+Pj4gLS0tCj4gPj4+PiAgICBpbmNs dWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0uaCAgfCAxOSArLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+ PiAgICBpbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggICAgfCAyMiArLS0tLS0tLS0tLS0tLS0t LS0tLS0tCj4gPj4+PiAgICBpbmNsdWRlL3VhcGkvZHJtL21nYV9kcm0uaCAgICAgfCAyMCArLS0t LS0tLS0tLS0tLS0tLS0tLQo+ID4+Pj4gICAgaW5jbHVkZS91YXBpL2RybS9tc21fZHJtLmggICAg IHwgMjAgKy0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj4+ICAgIGluY2x1ZGUvdWFwaS9kcm0vbm91 dmVhdV9kcm0uaCB8IDIwICstLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+PiAgICBpbmNsdWRlL3Vh cGkvZHJtL3F4bF9kcm0uaCAgICAgfCAyMCArLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+Pj4gICAg aW5jbHVkZS91YXBpL2RybS9yMTI4X2RybS5oICAgIHwgMjAgKy0tLS0tLS0tLS0tLS0tLS0tLS0K PiA+Pj4+ICAgIGluY2x1ZGUvdWFwaS9kcm0vcmFkZW9uX2RybS5oICB8IDIwICstLS0tLS0tLS0t LS0tLS0tLS0tCj4gPj4+PiAgICBpbmNsdWRlL3VhcGkvZHJtL3NhdmFnZV9kcm0uaCAgfCAyMCAr LS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+Pj4gICAgaW5jbHVkZS91YXBpL2RybS9zaXNfZHJtLmgg ICAgIHwgMjEgKy0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+PiAgICBpbmNsdWRlL3VhcGkvZHJt L3RlZ3JhX2RybS5oICAgfCAxOSArLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+PiAgICBpbmNsdWRl L3VhcGkvZHJtL3YzZF9kcm0uaCAgICAgfCAyMCArLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+Pj4g ICAgaW5jbHVkZS91YXBpL2RybS92YzRfZHJtLmggICAgIHwgMjAgKy0tLS0tLS0tLS0tLS0tLS0t LS0KPiA+Pj4+ICAgIGluY2x1ZGUvdWFwaS9kcm0vdmdlbV9kcm0uaCAgICB8IDIyICstLS0tLS0t LS0tLS0tLS0tLS0tLS0KPiA+Pj4+ICAgIGluY2x1ZGUvdWFwaS9kcm0vdmlhX2RybS5oICAgICB8 IDIwICstLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+PiAgICBpbmNsdWRlL3VhcGkvZHJtL3ZpcnRn cHVfZHJtLmggfCAyMCArLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+Pj4gICAgaW5jbHVkZS91YXBp L2RybS92bXdnZnhfZHJtLmggIHwgMjEgKy0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+PiAgICAx NyBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCAzMjcgZGVsZXRpb25zKC0pCj4gPj4+ Pgo+ID4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oIGIvaW5j bHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmgKPiA+Pj4+IGluZGV4IDRlODczZGNiZTY4Zi4uYzZh ZGRhNzJiZWM3IDEwMDY0NAo+ID4+Pj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJt LmgKPiA+Pj4+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oCj4gPj4+PiBAQCAt MSwzICsxLDQgQEAKPiA+Pj4+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCj4g Pj4+PiAgICAvKiBhbWRncHVfZHJtLmggLS0gUHVibGljIGhlYWRlciBmb3IgdGhlIGFtZGdwdSBk cml2ZXIgLSotIGxpbnV4LWMgLSotCj4gPj4+PiAgICAgKgo+ID4+Pj4gICAgICogQ29weXJpZ2h0 IDIwMDAgUHJlY2lzaW9uIEluc2lnaHQsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgo+ID4+Pj4g QEAgLTUsMjQgKzYsNiBAQAo+ID4+Pj4gICAgICogQ29weXJpZ2h0IDIwMDIgVHVuZ3N0ZW4gR3Jh cGhpY3MsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgo+ID4+Pj4gICAgICogQ29weXJpZ2h0IDIw MTQgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgo+ID4+Pj4gICAgICoKPiA+Pj4+IC0gKiBQ ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv biBvYnRhaW5pbmcgYQo+ID4+Pj4gLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2Np YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4gPj4+PiAtICogdG8g ZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhv dXQgbGltaXRhdGlvbgo+ID4+Pj4gLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ID4+Pj4gLSAqIGFuZC9v ciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3 aG9tIHRoZQo+ID4+Pj4gLSAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj dCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gPj4+PiAtICoKPiA+Pj4+IC0gKiBUaGUg YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBi ZSBpbmNsdWRlZCBpbgo+ID4+Pj4gLSAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv bnMgb2YgdGhlIFNvZnR3YXJlLgo+ID4+Pj4gLSAqCj4gPj4+PiAtICogVEhFIFNPRlRXQVJFIElT IFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Mg T1IKPiA+Pj4+IC0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiA+Pj4+IC0gKiBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwK PiA+Pj4+IC0gKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxF IEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKPiA+Pj4+IC0gKiBPVEhFUiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKPiA+Pj4+ IC0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRX QVJFIE9SIFRIRSBVU0UgT1IKPiA+Pj4+IC0gKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdB UkUuCj4gPj4+PiAtICoKPiA+Pj4+ICAgICAqIEF1dGhvcnM6Cj4gPj4+PiAgICAgKiAgICBLZXZp biBFLiBNYXJ0aW4gPG1hcnRpbkB2YWxpbnV4LmNvbT4KPiA+Pj4+ICAgICAqICAgIEdhcmV0aCBI dWdoZXMgPGdhcmV0aEB2YWxpbnV4LmNvbT4KPiA+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3Vh cGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPiA+Pj4+IGlu ZGV4IDE0YjY3Y2Q2YjU0Yi4uYzI5ZTNhY2IzMDI2IDEwMDY0NAo+ID4+Pj4gLS0tIGEvaW5jbHVk ZS91YXBpL2RybS9pOTE1X2RybS5oCj4gPj4+PiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVf ZHJtLmgKPiA+Pj4+IEBAIC0xLDI3ICsxLDcgQEAKPiA+Pj4+ICsvKiBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogTUlUICovCj4gPj4+PiAgICAvKgo+ID4+Pj4gICAgICogQ29weXJpZ2h0IDIwMDMg VHVuZ3N0ZW4gR3JhcGhpY3MsIEluYy4sIENlZGFyIFBhcmssIFRleGFzLgo+ID4+Pj4gICAgICog QWxsIFJpZ2h0cyBSZXNlcnZlZC4KPiA+Pj4+IC0gKgo+ID4+Pj4gLSAqIFBlcm1pc3Npb24gaXMg aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh Cj4gPj4+PiAtICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50 YXRpb24gZmlsZXMgKHRoZQo+ID4+Pj4gLSAqICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBT b2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKPiA+Pj4+IC0gKiB3aXRob3V0 IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp c2gsCj4gPj4+PiAtICogZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGll cyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwo+ID4+Pj4gLSAqIHBlcm1pdCBwZXJzb25zIHRvIHdo b20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwo+ID4+Pj4g LSAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiA+Pj4+IC0gKgo+ID4+Pj4gLSAqIFRoZSBh Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRp bmcgdGhlCj4gPj4+PiAtICogbmV4dCBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFs bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMKPiA+Pj4+IC0gKiBvZiB0aGUgU29mdHdh cmUuCj4gPj4+PiAtICoKPiA+Pj4+IC0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElT IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUwo+ID4+Pj4gLSAqIE9SIElN UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKPiA+ Pj4+IC0gKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF IEFORCBOT04tSU5GUklOR0VNRU5ULgo+ID4+Pj4gLSAqIElOIE5PIEVWRU5UIFNIQUxMIFRVTkdT VEVOIEdSQVBISUNTIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IKPiA+Pj4+IC0g KiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwKPiA+Pj4+IC0gKiBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBG Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRQo+ID4+Pj4gLSAqIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ID4+Pj4gLSAq Cj4gPj4+PiAgICAgKi8KPiA+Pj4+ICAgICNpZm5kZWYgX1VBUElfSTkxNV9EUk1fSF8KPiA+Pj4+ IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL21nYV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9k cm0vbWdhX2RybS5oCj4gPj4+PiBpbmRleCA4YzQzMzc1NDhhYjUuLjQ0MTVlZmVmZTBjZiAxMDA2 NDQKPiA+Pj4+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vbWdhX2RybS5oCj4gPj4+PiArKysgYi9p bmNsdWRlL3VhcGkvZHJtL21nYV9kcm0uaAo+ID4+Pj4gQEAgLTEsMyArMSw0IEBACj4gPj4+PiAr LyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLwo+ID4+Pj4gICAgLyogbWdhX2RybS5o IC0tIFB1YmxpYyBoZWFkZXIgZm9yIHRoZSBNYXRyb3ggZzIwMC9nNDAwIGRyaXZlciAtKi0gbGlu dXgtYyAtKi0KPiA+Pj4+ICAgICAqIENyZWF0ZWQ6IFR1ZSBKYW4gMjUgMDE6NTA6MDEgMTk5OSBi eSBqaGFydG1hbm5AcHJlY2lzaW9uaW5zaWdodC5jb20KPiA+Pj4+ICAgICAqCj4gPj4+PiBAQCAt NSwyNSArNiw2IEBACj4gPj4+PiAgICAgKiBDb3B5cmlnaHQgMjAwMCBWQSBMaW51eCBTeXN0ZW1z LCBJbmMuLCBTdW5ueXZhbGUsIENhbGlmb3JuaWEuCj4gPj4+PiAgICAgKiBBbGwgcmlnaHRzIHJl c2VydmVkLgo+ID4+Pj4gICAgICoKPiA+Pj4+IC0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ID4+Pj4gLSAq IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz ICh0aGUgIlNvZnR3YXJlIiksCj4gPj4+PiAtICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0 aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ID4+Pj4gLSAq IHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmli dXRlLCBzdWJsaWNlbnNlLAo+ID4+Pj4gLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29m dHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+ID4+Pj4gLSAqIFNvZnR3 YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRp dGlvbnM6Cj4gPj4+PiAtICoKPiA+Pj4+IC0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBh bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4gPj4+PiAtICog cGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFs IHBvcnRpb25zIG9mIHRoZQo+ID4+Pj4gLSAqIFNvZnR3YXJlLgo+ID4+Pj4gLSAqCj4gPj4+PiAt ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiA+Pj4+IC0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiA+Pj4+IC0g KiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAg SU4gTk8gRVZFTlQgU0hBTEwKPiA+Pj4+IC0gKiBWQSBMSU5VWCBTWVNURU1TIEFORC9PUiBJVFMg U1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCj4gPj4+PiAtICog T1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBP UiBPVEhFUldJU0UsCj4gPj4+PiAtICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD VElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCj4gPj4+PiAtICogT1RIRVIgREVB TElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ID4+Pj4gLSAqCj4gPj4+PiAgICAgKiBBdXRob3JzOgo+ ID4+Pj4gICAgICogICAgSmVmZiBIYXJ0bWFubiA8amhhcnRtYW5uQHZhbGludXguY29tPgo+ID4+ Pj4gICAgICogICAgS2VpdGggV2hpdHdlbGwgPGtlaXRoQHR1bmdzdGVuZ3JhcGhpY3MuY29tPgo+ ID4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vbXNtX2RybS5oIGIvaW5jbHVkZS91 YXBpL2RybS9tc21fZHJtLmgKPiA+Pj4+IGluZGV4IDBiODVlZDZhMzcxMC4uMTg5ZDFhN2Y3YTdi IDEwMDY0NAo+ID4+Pj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS9tc21fZHJtLmgKPiA+Pj4+ICsr KyBiL2luY2x1ZGUvdWFwaS9kcm0vbXNtX2RybS5oCj4gPj4+PiBAQCAtMSwyNSArMSw3IEBACj4g Pj4+PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLwo+ID4+Pj4gICAgLyoKPiA+ Pj4+ICAgICAqIENvcHlyaWdodCAoQykgMjAxMyBSZWQgSGF0Cj4gPj4+PiAgICAgKiBBdXRob3I6 IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNvbT4KPiA+Pj4+IC0gKgo+ID4+Pj4gLSAqIFBl cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhCj4gPj4+PiAtICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lh dGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiA+Pj4+IC0gKiB0byBk ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91 dCBsaW1pdGF0aW9uCj4gPj4+PiAtICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwg bWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gPj4+PiAtICogYW5kL29y IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdo b20gdGhlCj4gPj4+PiAtICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0 IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiA+Pj4+IC0gKgo+ID4+Pj4gLSAqIFRoZSBh Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRp bmcgdGhlIG5leHQKPiA+Pj4+IC0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFs bCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4gPj4+PiAtICogU29mdHdh cmUuCj4gPj4+PiAtICoKPiA+Pj4+IC0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElT IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ID4+Pj4gLSAqIElN UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVS Q0hBTlRBQklMSVRZLAo+ID4+Pj4gLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF IEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+ID4+Pj4gLSAqIFRIRSBB VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B R0VTIE9SIE9USEVSCj4gPj4+PiAtICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP RiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKPiA+Pj4+IC0gKiBP VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9U SEVSIERFQUxJTkdTIElOIFRIRQo+ID4+Pj4gLSAqIFNPRlRXQVJFLgo+ID4+Pj4gICAgICovCj4g Pj4+PiAgICAjaWZuZGVmIF9fTVNNX0RSTV9IX18KPiA+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRl L3VhcGkvZHJtL25vdXZlYXVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL25vdXZlYXVfZHJtLmgK PiA+Pj4+IGluZGV4IDg1M2EzMjc0MzNkMy4uNTU1MjgzYjQ5MDgwIDEwMDY0NAo+ID4+Pj4gLS0t IGEvaW5jbHVkZS91YXBpL2RybS9ub3V2ZWF1X2RybS5oCj4gPj4+PiArKysgYi9pbmNsdWRlL3Vh cGkvZHJtL25vdXZlYXVfZHJtLmgKPiA+Pj4+IEBAIC0xLDI1ICsxLDcgQEAKPiA+Pj4+ICsvKiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCj4gPj4+PiAgICAvKgo+ID4+Pj4gICAgICog Q29weXJpZ2h0IDIwMDUgU3RlcGhhbmUgTWFyY2hlc2luLgo+ID4+Pj4gICAgICogQWxsIFJpZ2h0 cyBSZXNlcnZlZC4KPiA+Pj4+IC0gKgo+ID4+Pj4gLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdy YW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4gPj4+PiAt ICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZSAiU29mdHdhcmUiKSwKPiA+Pj4+IC0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3 aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4gPj4+PiAt ICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3Ry aWJ1dGUsIHN1YmxpY2Vuc2UsCj4gPj4+PiAtICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBT b2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4gPj4+PiAtICogU29m dHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29u ZGl0aW9uczoKPiA+Pj4+IC0gKgo+ID4+Pj4gLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPiA+Pj4+IC0g KiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp YWwgcG9ydGlvbnMgb2YgdGhlCj4gPj4+PiAtICogU29mdHdhcmUuCj4gPj4+PiAtICoKPiA+Pj4+ IC0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ID4+Pj4gLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQg Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ID4+Pj4g LSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQu ICBJTiBOTyBFVkVOVCBTSEFMTAo+ID4+Pj4gLSAqIFZBIExJTlVYIFNZU1RFTVMgQU5EL09SIElU UyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKPiA+Pj4+IC0g KiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU IE9SIE9USEVSV0lTRSwKPiA+Pj4+IC0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05O RUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKPiA+Pj4+IC0gKiBPVEhFUiBE RUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gPj4+PiAgICAgKi8KPiA+Pj4+ICAgICNpZm5kZWYg X19OT1VWRUFVX0RSTV9IX18KPiA+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL3F4 bF9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vcXhsX2RybS5oCj4gPj4+PiBpbmRleCA4ODA5OTlk MmQ4NjMuLjlmYmY5N2FkNzI3MiAxMDA2NDQKPiA+Pj4+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0v cXhsX2RybS5oCj4gPj4+PiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL3F4bF9kcm0uaAo+ID4+Pj4g QEAgLTEsMjUgKzEsNyBAQAo+ID4+Pj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQg Ki8KPiA+Pj4+ICAgIC8qCj4gPj4+PiAgICAgKiBDb3B5cmlnaHQgMjAxMyBSZWQgSGF0Cj4gPj4+ PiAgICAgKiBBbGwgUmlnaHRzIFJlc2VydmVkLgo+ID4+Pj4gLSAqCj4gPj4+PiAtICogUGVybWlz c2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0 YWluaW5nIGEKPiA+Pj4+IC0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQg ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ID4+Pj4gLSAqIHRvIGRlYWwg aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp bWl0YXRpb24KPiA+Pj4+IC0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPiA+Pj4+IC0gKiBhbmQvb3Igc2Vs bCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0 aGUKPiA+Pj4+IC0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8g dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ID4+Pj4gLSAqCj4gPj4+PiAtICogVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0 aGUgbmV4dAo+ID4+Pj4gLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNv cGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKPiA+Pj4+IC0gKiBTb2Z0d2FyZS4K PiA+Pj4+IC0gKgo+ID4+Pj4gLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gPj4+PiAtICogSU1QTElF RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFO VEFCSUxJVFksCj4gPj4+PiAtICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E IE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gPj4+PiAtICogVEhFIEFVVEhP UlMgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMg T1IKPiA+Pj4+IC0gKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP TlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKPiA+Pj4+IC0gKiBBUklTSU5HIEZST00sIE9VVCBP RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKPiA+Pj4+ IC0gKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gPj4+PiAgICAgKi8KPiA+Pj4+ ICAgICNpZm5kZWYgUVhMX0RSTV9ICj4gPj4+PiAgICAjZGVmaW5lIFFYTF9EUk1fSAo+ID4+Pj4g ZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vcjEyOF9kcm0uaCBiL2luY2x1ZGUvdWFwaS9k cm0vcjEyOF9kcm0uaAo+ID4+Pj4gaW5kZXggNjkwZTljNjJmNTEwLi5jNDI2ZTZhMWM4NDMgMTAw NjQ0Cj4gPj4+PiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL3IxMjhfZHJtLmgKPiA+Pj4+ICsrKyBi L2luY2x1ZGUvdWFwaS9kcm0vcjEyOF9kcm0uaAo+ID4+Pj4gQEAgLTEsMyArMSw0IEBACj4gPj4+ PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLwo+ID4+Pj4gICAgLyogcjEyOF9k cm0uaCAtLSBQdWJsaWMgaGVhZGVyIGZvciB0aGUgcjEyOCBkcml2ZXIgLSotIGxpbnV4LWMgLSot Cj4gPj4+PiAgICAgKiBDcmVhdGVkOiBXZWQgQXByICA1IDE5OjI0OjE5IDIwMDAgYnkga2V2aW5A cHJlY2lzaW9uaW5zaWdodC5jb20KPiA+Pj4+ICAgICAqLwo+ID4+Pj4gQEAgLTYsMjUgKzcsNiBA QAo+ID4+Pj4gICAgICogQ29weXJpZ2h0IDIwMDAgVkEgTGludXggU3lzdGVtcywgSW5jLiwgU3Vu bnl2YWxlLCBDYWxpZm9ybmlhLgo+ID4+Pj4gICAgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KPiA+ Pj4+ICAgICAqCj4gPj4+PiAtICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBv ZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPiA+Pj4+IC0gKiBjb3B5IG9mIHRo aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0 d2FyZSIpLAo+ID4+Pj4gLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJp Y3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KPiA+Pj4+IC0gKiB0aGUgcmlnaHRz IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGlj ZW5zZSwKPiA+Pj4+IC0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiA+Pj4+IC0gKiBTb2Z0d2FyZSBpcyBmdXJu aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ID4+ Pj4gLSAqCj4gPj4+PiAtICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy bWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+ID4+Pj4gLSAqIHBhcmFncmFwaCkg c2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBv ZiB0aGUKPiA+Pj4+IC0gKiBTb2Z0d2FyZS4KPiA+Pj4+IC0gKgo+ID4+Pj4gLSAqIFRIRSBTT0ZU V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF WFBSRVNTIE9SCj4gPj4+PiAtICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU TyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gPj4+PiAtICogRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5U IFNIQUxMCj4gPj4+PiAtICogUFJFQ0lTSU9OIElOU0lHSFQgQU5EL09SIElUUyBTVVBQTElFUlMg QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKPiA+Pj4+IC0gKiBPVEhFUiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lT RSwKPiA+Pj4+IC0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEgg VEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPiA+Pj4+IC0gKiBERUFMSU5HUyBJTiBU SEUgU09GVFdBUkUuCj4gPj4+PiAtICoKPiA+Pj4+ICAgICAqIEF1dGhvcnM6Cj4gPj4+PiAgICAg KiAgICBHYXJldGggSHVnaGVzIDxnYXJldGhAdmFsaW51eC5jb20+Cj4gPj4+PiAgICAgKiAgICBL ZXZpbiBFLiBNYXJ0aW4gPG1hcnRpbkB2YWxpbnV4LmNvbT4KPiA+Pj4+IGRpZmYgLS1naXQgYS9p bmNsdWRlL3VhcGkvZHJtL3JhZGVvbl9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vcmFkZW9uX2Ry bS5oCj4gPj4+PiBpbmRleCA0OTBhNTljYzQ1MzIuLmI1YzRlZjgxM2E5ZSAxMDA2NDQKPiA+Pj4+ IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vcmFkZW9uX2RybS5oCj4gPj4+PiArKysgYi9pbmNsdWRl L3VhcGkvZHJtL3JhZGVvbl9kcm0uaAo+ID4+Pj4gQEAgLTEsMyArMSw0IEBACj4gPj4+PiArLyog U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLwo+ID4+Pj4gICAgLyogcmFkZW9uX2RybS5o IC0tIFB1YmxpYyBoZWFkZXIgZm9yIHRoZSByYWRlb24gZHJpdmVyIC0qLSBsaW51eC1jIC0qLQo+ ID4+Pj4gICAgICoKPiA+Pj4+ICAgICAqIENvcHlyaWdodCAyMDAwIFByZWNpc2lvbiBJbnNpZ2h0 LCBJbmMuLCBDZWRhciBQYXJrLCBUZXhhcy4KPiA+Pj4+IEBAIC01LDI1ICs2LDYgQEAKPiA+Pj4+ ICAgICAqIENvcHlyaWdodCAyMDAyIFR1bmdzdGVuIEdyYXBoaWNzLCBJbmMuLCBDZWRhciBQYXJr LCBUZXhhcy4KPiA+Pj4+ICAgICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCj4gPj4+PiAgICAgKgo+ ID4+Pj4gLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0 byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4gPj4+PiAtICogY29weSBvZiB0aGlzIHNvZnR3YXJl IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiA+ Pj4+IC0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNs dWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4gPj4+PiAtICogdGhlIHJpZ2h0cyB0byB1c2UsIGNv cHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gPj4+ PiAtICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBw ZXJzb25zIHRvIHdob20gdGhlCj4gPj4+PiAtICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRv IHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiA+Pj4+IC0gKgo+ID4+ Pj4gLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90 aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPiA+Pj4+IC0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGlu Y2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4gPj4+ PiAtICogU29mdHdhcmUuCj4gPj4+PiAtICoKPiA+Pj4+IC0gKiBUSEUgU09GVFdBUkUgSVMgUFJP VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ ID4+Pj4gLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ID4+Pj4gLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+ID4+ Pj4gLSAqIFBSRUNJU0lPTiBJTlNJR0hUIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBG T1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCj4gPj4+PiAtICogT1RIRVIgTElBQklMSVRZLCBXSEVU SEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCj4gPj4+PiAt ICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS RSBPUiBUSEUgVVNFIE9SIE9USEVSCj4gPj4+PiAtICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJF Lgo+ID4+Pj4gLSAqCj4gPj4+PiAgICAgKiBBdXRob3JzOgo+ID4+Pj4gICAgICogICAgS2V2aW4g RS4gTWFydGluIDxtYXJ0aW5AdmFsaW51eC5jb20+Cj4gPj4+PiAgICAgKiAgICBHYXJldGggSHVn aGVzIDxnYXJldGhAdmFsaW51eC5jb20+Cj4gPj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBp L2RybS9zYXZhZ2VfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL3NhdmFnZV9kcm0uaAo+ID4+Pj4g aW5kZXggMGY2ZWRkZWY3NGFhLi5iZDVlNzQzNDhkYjQgMTAwNjQ0Cj4gPj4+PiAtLS0gYS9pbmNs dWRlL3VhcGkvZHJtL3NhdmFnZV9kcm0uaAo+ID4+Pj4gKysrIGIvaW5jbHVkZS91YXBpL2RybS9z YXZhZ2VfZHJtLmgKPiA+Pj4+IEBAIC0xLDI2ICsxLDggQEAKPiA+Pj4+ICsvKiBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogTUlUICovCj4gPj4+PiAgICAvKiBzYXZhZ2VfZHJtLmggLS0gUHVibGlj IGhlYWRlciBmb3IgdGhlIHNhdmFnZSBkcml2ZXIKPiA+Pj4+ICAgICAqCj4gPj4+PiAgICAgKiBD b3B5cmlnaHQgMjAwNCAgRmVsaXggS3VlaGxpbmcKPiA+Pj4+ICAgICAqIEFsbCBSaWdodHMgUmVz ZXJ2ZWQuCj4gPj4+PiAtICoKPiA+Pj4+IC0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ID4+Pj4gLSAqIGNv cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0 aGUgIlNvZnR3YXJlIiksCj4gPj4+PiAtICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91 dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ID4+Pj4gLSAqIHRo ZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRl LCBzdWIgbGljZW5zZSwKPiA+Pj4+IC0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3 YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiA+Pj4+IC0gKiBTb2Z0d2Fy ZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp b25zOgo+ID4+Pj4gLSAqCj4gPj4+PiAtICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUKPiA+Pj4+IC0gKiBuZXh0IHBh cmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw b3J0aW9ucwo+ID4+Pj4gLSAqIG9mIHRoZSBTb2Z0d2FyZS4KPiA+Pj4+IC0gKgo+ID4+Pj4gLSAq IFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFO WSBLSU5ELAo+ID4+Pj4gLSAqIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgo+ID4+Pj4gLSAqIE1FUkNIQU5UQUJJTElUWSwg RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECj4gPj4+PiAtICogTk9OLUlORlJJ TkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgRkVMSVggS1VFSExJTkcgQkUgTElBQkxFIEZPUgo+ ID4+Pj4gLSAqIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQU4gQUNUSU9OIE9GCj4gPj4+PiAtICogQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBB UklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OCj4gPj4+PiAtICogV0lUSCBUSEUg U09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4g Pj4+PiAgICAgKi8KPiA+Pj4+ICAgICNpZm5kZWYgX19TQVZBR0VfRFJNX0hfXwo+ID4+Pj4gZGlm ZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vc2lzX2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9z aXNfZHJtLmgKPiA+Pj4+IGluZGV4IDNlM2Y3ZTk4OWUwYi4uOWY3ZWIxM2IxOTc1IDEwMDY0NAo+ ID4+Pj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS9zaXNfZHJtLmgKPiA+Pj4+ICsrKyBiL2luY2x1 ZGUvdWFwaS9kcm0vc2lzX2RybS5oCj4gPj4+PiBAQCAtMSwyNyArMSw4IEBACj4gPj4+PiArLyog U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLwo+ID4+Pj4gICAgLyogc2lzX2Rydi5oIC0t IFByaXZhdGUgaGVhZGVyIGZvciBzaXMgZHJpdmVyIC0qLSBsaW51eC1jIC0qLSAqLwo+ID4+Pj4g ICAgLyoKPiA+Pj4+ICAgICAqIENvcHlyaWdodCAyMDA1IEVyaWMgQW5ob2x0Cj4gPj4+PiAgICAg KiBBbGwgUmlnaHRzIFJlc2VydmVkLgo+ID4+Pj4gLSAqCj4gPj4+PiAtICogUGVybWlzc2lvbiBp cyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5n IGEKPiA+Pj4+IC0gKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ID4+Pj4gLSAqIHRvIGRlYWwgaW4gdGhl IFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRp b24KPiA+Pj4+IC0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi bGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPiA+Pj4+IC0gKiBhbmQvb3Igc2VsbCBjb3Bp ZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiA+ Pj4+IC0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZv bGxvd2luZyBjb25kaXRpb25zOgo+ID4+Pj4gLSAqCj4gPj4+PiAtICogVGhlIGFib3ZlIGNvcHly aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4 dAo+ID4+Pj4gLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBv ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKPiA+Pj4+IC0gKiBTb2Z0d2FyZS4KPiA+Pj4+ IC0gKgo+ID4+Pj4gLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gPj4+PiAtICogSU1QTElFRCwgSU5D TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ VFksCj4gPj4+PiAtICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO RlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gPj4+PiAtICogVEhFIEFVVEhPUlMgT1Ig Q09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RI RVIKPiA+Pj4+IC0gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAo+ID4+Pj4gLSAqIE9VVCBPRiBPUiBJ TiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElO R1MgSU4gVEhFCj4gPj4+PiAtICogU09GVFdBUkUuCj4gPj4+PiAtICoKPiA+Pj4+ICAgICAqLwo+ ID4+Pj4gICAgI2lmbmRlZiBfX1NJU19EUk1fSF9fCj4gPj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS91YXBpL2RybS90ZWdyYV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vdGVncmFfZHJtLmgKPiA+ Pj4+IGluZGV4IGM0ZGYzYzM2NjhiMy4uOThjMmYxN2FhN2RlIDEwMDY0NAo+ID4+Pj4gLS0tIGEv aW5jbHVkZS91YXBpL2RybS90ZWdyYV9kcm0uaAo+ID4+Pj4gKysrIGIvaW5jbHVkZS91YXBpL2Ry bS90ZWdyYV9kcm0uaAo+ID4+Pj4gQEAgLTEsMjMgKzEsNiBAQAo+ID4+Pj4gKy8qIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBNSVQgKi8KPiA+Pj4+ICAgIC8qCj4gPj4+PiAgICAgKiBDb3B5cmln aHQgKGMpIDIwMTItMjAxMywgTlZJRElBIENPUlBPUkFUSU9OLiAgQWxsIHJpZ2h0cyByZXNlcnZl ZC4KPiA+Pj4+IC0gKgo+ID4+Pj4gLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZy ZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4gPj4+PiAtICogY29weSBv ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAi U29mdHdhcmUiKSwKPiA+Pj4+IC0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJl c3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4gPj4+PiAtICogdGhlIHJp Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1 YmxpY2Vuc2UsCj4gPj4+PiAtICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwg YW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4gPj4+PiAtICogU29mdHdhcmUgaXMg ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK PiA+Pj4+IC0gKgo+ID4+Pj4gLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gPj4+PiAtICogYWxsIGNv cGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCj4gPj4+PiAtICoK PiA+Pj4+IC0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS QU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ID4+Pj4gLSAqIElNUExJRUQsIElOQ0xVRElO RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ ID4+Pj4gLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H RU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+ID4+Pj4gLSAqIFRIRSBDT1BZUklHSFQgSE9MREVS KFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgo+ID4+ Pj4gLSAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs IFRPUlQgT1IgT1RIRVJXSVNFLAo+ID4+Pj4gLSAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElO IENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgo+ID4+Pj4gLSAqIE9U SEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPiA+Pj4+ICAgICAqLwo+ID4+Pj4gICAgI2lm bmRlZiBfVUFQSV9URUdSQV9EUk1fSF8KPiA+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkv ZHJtL3YzZF9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0vdjNkX2RybS5oCj4gPj4+PiBpbmRleCAx Y2U3NDZlMjI4ZDkuLjc4OTVmYjliYzAxOCAxMDA2NDQKPiA+Pj4+IC0tLSBhL2luY2x1ZGUvdWFw aS9kcm0vdjNkX2RybS5oCj4gPj4+PiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL3YzZF9kcm0uaAo+ ID4+Pj4gQEAgLTEsMjQgKzEsNiBAQAo+ID4+Pj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBNSVQgKi8KPiA+Pj4+ICAgIC8qCj4gPj4+PiAgICAgKiBDb3B5cmlnaHQgwqkgMjAxNC0yMDE4 IEJyb2FkY29tCj4gPj4+PiAtICoKPiA+Pj4+IC0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ID4+Pj4gLSAq IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz ICh0aGUgIlNvZnR3YXJlIiksCj4gPj4+PiAtICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0 aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ID4+Pj4gLSAq IHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmli dXRlLCBzdWJsaWNlbnNlLAo+ID4+Pj4gLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29m dHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+ID4+Pj4gLSAqIFNvZnR3 YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRp dGlvbnM6Cj4gPj4+PiAtICoKPiA+Pj4+IC0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBh bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4gPj4+PiAtICog cGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFs IHBvcnRpb25zIG9mIHRoZQo+ID4+Pj4gLSAqIFNvZnR3YXJlLgo+ID4+Pj4gLSAqCj4gPj4+PiAt ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiA+Pj4+IC0gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiA+Pj4+IC0g KiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAg SU4gTk8gRVZFTlQgU0hBTEwKPiA+Pj4+IC0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9M REVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+ID4+Pj4gLSAq IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI RVJXSVNFLCBBUklTSU5HCj4gPj4+PiAtICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwo+ID4+Pj4gLSAq IElOIFRIRSBTT0ZUV0FSRS4KPiA+Pj4+ICAgICAqLwo+ID4+Pj4gICAgI2lmbmRlZiBfVjNEX0RS TV9IXwo+ID4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vdmM0X2RybS5oIGIvaW5j bHVkZS91YXBpL2RybS92YzRfZHJtLmgKPiA+Pj4+IGluZGV4IDJjYWM2Mjc3YTFkNy4uMTRiOWEy MTg2ZWFlIDEwMDY0NAo+ID4+Pj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS92YzRfZHJtLmgKPiA+ Pj4+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vdmM0X2RybS5oCj4gPj4+PiBAQCAtMSwyNCArMSw2 IEBACj4gPj4+PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLwo+ID4+Pj4gICAg LyoKPiA+Pj4+ICAgICAqIENvcHlyaWdodCDCqSAyMDE0LTIwMTUgQnJvYWRjb20KPiA+Pj4+IC0g Kgo+ID4+Pj4gLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdl LCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4gPj4+PiAtICogY29weSBvZiB0aGlzIHNvZnR3 YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwK PiA+Pj4+IC0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBp bmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4gPj4+PiAtICogdGhlIHJpZ2h0cyB0byB1c2Us IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4g Pj4+PiAtICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1p dCBwZXJzb25zIHRvIHdob20gdGhlCj4gPj4+PiAtICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRv IGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiA+Pj4+IC0gKgo+ ID4+Pj4gLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g bm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPiA+Pj4+IC0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJl IGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4g Pj4+PiAtICogU29mdHdhcmUuCj4gPj4+PiAtICoKPiA+Pj4+IC0gKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP Ugo+ID4+Pj4gLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ID4+Pj4gLSAqIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+ ID4+Pj4gLSAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig QU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gPj4+PiAtICogTElBQklMSVRZLCBXSEVUSEVS IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiA+ Pj4+IC0gKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBP UiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCj4gPj4+PiAtICogSU4gVEhFIFNPRlRXQVJFLgo+ ID4+Pj4gICAgICovCj4gPj4+PiAgICAjaWZuZGVmIF9VQVBJX1ZDNF9EUk1fSF8KPiA+Pj4+IGRp ZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL3ZnZW1fZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJt L3ZnZW1fZHJtLmgKPiA+Pj4+IGluZGV4IGJmNjZmNWRiNmRhOC4uOTY1ZTFhZDAwZGNiIDEwMDY0 NAo+ID4+Pj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS92Z2VtX2RybS5oCj4gPj4+PiArKysgYi9p bmNsdWRlL3VhcGkvZHJtL3ZnZW1fZHJtLmgKPiA+Pj4+IEBAIC0xLDI3ICsxLDcgQEAKPiA+Pj4+ ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCj4gPj4+PiAgICAvKgo+ID4+Pj4g ICAgICogQ29weXJpZ2h0IDIwMTYgSW50ZWwgQ29ycG9yYXRpb24KPiA+Pj4+ICAgICAqIEFsbCBS aWdodHMgUmVzZXJ2ZWQuCj4gPj4+PiAtICoKPiA+Pj4+IC0gKiBQZXJtaXNzaW9uIGlzIGhlcmVi eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ID4+ Pj4gLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u IGZpbGVzICh0aGUKPiA+Pj4+IC0gKiAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCj4gPj4+PiAtICogd2l0aG91dCBsaW1p dGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAo+ ID4+Pj4gLSAqIGRpc3RyaWJ1dGUsIHN1YiBsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2Yg dGhlIFNvZnR3YXJlLCBhbmQgdG8KPiA+Pj4+IC0gKiBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo ZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KPiA+Pj4+IC0gKiB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gPj4+PiAtICoKPiA+Pj4+IC0gKiBUaGUgYWJvdmUg Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRo ZQo+ID4+Pj4gLSAqIG5leHQgcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29w aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zCj4gPj4+PiAtICogb2YgdGhlIFNvZnR3YXJlLgo+ ID4+Pj4gLSAqCj4gPj4+PiAtICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKPiA+Pj4+IC0gKiBPUiBJTVBMSUVE LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCj4gPj4+PiAt ICogTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg Tk9OLUlORlJJTkdFTUVOVC4KPiA+Pj4+IC0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUVU5HU1RFTiBH UkFQSElDUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SCj4gPj4+PiAtICogQU5Z IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04g T0YgQ09OVFJBQ1QsCj4gPj4+PiAtICogVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwg T1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUKPiA+Pj4+IC0gKiBTT0ZUV0FSRSBPUiBU SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPiA+Pj4+IC0gKgo+ID4+ Pj4gICAgICovCj4gPj4+PiAgICAjaWZuZGVmIF9VQVBJX1ZHRU1fRFJNX0hfCj4gPj4+PiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS92aWFfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL3Zp YV9kcm0uaAo+ID4+Pj4gaW5kZXggYTFlMTI1ZDQyMjA4Li5kNzdhMjFlN2ViNzAgMTAwNjQ0Cj4g Pj4+PiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL3ZpYV9kcm0uaAo+ID4+Pj4gKysrIGIvaW5jbHVk ZS91YXBpL2RybS92aWFfZHJtLmgKPiA+Pj4+IEBAIC0xLDI1ICsxLDcgQEAKPiA+Pj4+ICsvKiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCj4gPj4+PiAgICAvKgo+ID4+Pj4gICAgICog Q29weXJpZ2h0IDE5OTgtMjAwMyBWSUEgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCBSaWdodHMgUmVz ZXJ2ZWQuCj4gPj4+PiAgICAgKiBDb3B5cmlnaHQgMjAwMS0yMDAzIFMzIEdyYXBoaWNzLCBJbmMu IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCj4gPj4+PiAtICoKPiA+Pj4+IC0gKiBQZXJtaXNzaW9uIGlz IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg YQo+ID4+Pj4gLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVu dGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4gPj4+PiAtICogdG8gZGVhbCBpbiB0aGUg U29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlv bgo+ID4+Pj4gLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs aXNoLCBkaXN0cmlidXRlLCBzdWIgbGljZW5zZSwKPiA+Pj4+IC0gKiBhbmQvb3Igc2VsbCBjb3Bp ZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiA+ Pj4+IC0gKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZv bGxvd2luZyBjb25kaXRpb25zOgo+ID4+Pj4gLSAqCj4gPj4+PiAtICogVGhlIGFib3ZlIGNvcHly aWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUKPiA+ Pj4+IC0gKiBuZXh0IHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBv ciBzdWJzdGFudGlhbCBwb3J0aW9ucwo+ID4+Pj4gLSAqIG9mIHRoZSBTb2Z0d2FyZS4KPiA+Pj4+ IC0gKgo+ID4+Pj4gLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gPj4+PiAtICogSU1QTElFRCwgSU5D TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ VFksCj4gPj4+PiAtICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1J TkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMCj4gPj4+PiAtICogVklBLCBTMyBHUkFQSElD UywgQU5EL09SIElUUyBTVVBQTElFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMg T1IKPiA+Pj4+IC0gKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP TlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKPiA+Pj4+IC0gKiBBUklTSU5HIEZST00sIE9VVCBP RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIK PiA+Pj4+IC0gKiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4gPj4+PiAgICAgKi8KPiA+Pj4+ ICAgICNpZm5kZWYgX1ZJQV9EUk1fSF8KPiA+Pj4+ICAgICNkZWZpbmUgX1ZJQV9EUk1fSF8KPiA+ Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL3ZpcnRncHVfZHJtLmggYi9pbmNsdWRl L3VhcGkvZHJtL3ZpcnRncHVfZHJtLmgKPiA+Pj4+IGluZGV4IGYwNmE3ODlmMzRjZC4uY2VhMDM1 MmJjMzE5IDEwMDY0NAo+ID4+Pj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS92aXJ0Z3B1X2RybS5o Cj4gPj4+PiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL3ZpcnRncHVfZHJtLmgKPiA+Pj4+IEBAIC0x LDI1ICsxLDcgQEAKPiA+Pj4+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUICovCj4g Pj4+PiAgICAvKgo+ID4+Pj4gICAgICogQ29weXJpZ2h0IDIwMTMgUmVkIEhhdAo+ID4+Pj4gICAg ICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KPiA+Pj4+IC0gKgo+ID4+Pj4gLSAqIFBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu ZyBhCj4gPj4+PiAtICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt ZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiA+Pj4+IC0gKiB0byBkZWFsIGluIHRo ZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0 aW9uCj4gPj4+PiAtICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1 Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gPj4+PiAtICogYW5kL29yIHNlbGwgY29w aWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4g Pj4+PiAtICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBm b2xsb3dpbmcgY29uZGl0aW9uczoKPiA+Pj4+IC0gKgo+ID4+Pj4gLSAqIFRoZSBhYm92ZSBjb3B5 cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5l eHQKPiA+Pj4+IC0gKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMg b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4gPj4+PiAtICogU29mdHdhcmUuCj4gPj4+ PiAtICoKPiA+Pj4+IC0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ID4+Pj4gLSAqIElNUExJRUQsIElO Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM SVRZLAo+ID4+Pj4gLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J TkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+ID4+Pj4gLSAqIFRIRSBBVVRIT1JTIEFO RC9PUiBJVFMgU1VQUExJRVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCj4g Pj4+PiAtICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD VCwgVE9SVCBPUiBPVEhFUldJU0UsCj4gPj4+PiAtICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1Ig SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCj4gPj4+PiAtICog T1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ID4+Pj4gICAgICovCj4gPj4+PiAgICAj aWZuZGVmIFZJUlRHUFVfRFJNX0gKPiA+Pj4+ICAgICNkZWZpbmUgVklSVEdQVV9EUk1fSAo+ID4+ Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vdm13Z2Z4X2RybS5oIGIvaW5jbHVkZS91 YXBpL2RybS92bXdnZnhfZHJtLmgKPiA+Pj4+IGluZGV4IDAyZTkxNzUwNzQ3OS4uNzI4ZTQzMmYw OWExIDEwMDY0NAo+ID4+Pj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS92bXdnZnhfZHJtLmgKPiA+ Pj4+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vdm13Z2Z4X2RybS5oCj4gPj4+PiBAQCAtMSwyOCAr MSw5IEBACj4gPj4+PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLwo+ID4+Pj4g ICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCj4gPj4+PiAgICAgKgo+ID4+Pj4gICAgICogQ29weXJpZ2h0 IMKpIDIwMDktMjAxNSBWTXdhcmUsIEluYy4sIFBhbG8gQWx0bywgQ0EuLCBVU0EKPiA+Pj4+ICAg ICAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCj4gPj4+PiAgICAgKgo+ID4+Pj4gLSAqIFBlcm1pc3Np b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp bmluZyBhCj4gPj4+PiAtICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRv Y3VtZW50YXRpb24gZmlsZXMgKHRoZQo+ID4+Pj4gLSAqICJTb2Z0d2FyZSIpLCB0byBkZWFsIGlu IHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKPiA+Pj4+IC0gKiB3 aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us IHB1Ymxpc2gsCj4gPj4+PiAtICogZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFuZC9vciBzZWxs IGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwo+ID4+Pj4gLSAqIHBlcm1pdCBwZXJzb25z IHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwo+ ID4+Pj4gLSAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiA+Pj4+IC0gKgo+ID4+Pj4gLSAq IFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChp bmNsdWRpbmcgdGhlCj4gPj4+PiAtICogbmV4dCBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVk IGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMKPiA+Pj4+IC0gKiBvZiB0aGUg U29mdHdhcmUuCj4gPj4+PiAtICoKPiA+Pj4+IC0gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ID4+Pj4g LSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg T0YgTUVSQ0hBTlRBQklMSVRZLAo+ID4+Pj4gLSAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFIEFORCBOT04tSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTAo+ID4+Pj4gLSAq IFRIRSBDT1BZUklHSFQgSE9MREVSUywgQVVUSE9SUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBM SUFCTEUgRk9SIEFOWSBDTEFJTSwKPiA+Pj4+IC0gKiBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElU WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IKPiA+Pj4+IC0gKiBP VEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUg U09GVFdBUkUgT1IgVEhFCj4gPj4+PiAtICogVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBT T0ZUV0FSRS4KPiA+Pj4+IC0gKgo+ID4+Pj4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwo+ID4+Pj4g ICAgI2lmbmRlZiBfX1ZNV0dGWF9EUk1fSF9fCgotLSAKUmVnYXJkcywKCkxhdXJlbnQgUGluY2hh cnQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==