From win-pv-devel-bounces@lists.xenproject.org Fri Jun 02 08:45:17 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Jun 2017 08:45:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dGiCq-0005jq-19; Fri, 02 Jun 2017 08:45:16 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1dGiCp-0005jh-0K
 for win-pv-devel@lists.xenproject.org; Fri, 02 Jun 2017 08:45:15 +0000
Date: Fri, 2 Jun 2017 08:45:15 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <11191418.1.1496393115799.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
In-Reply-To: <30146494.29.1496247288958.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
References: <30146494.29.1496247288958.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_0_386499.1496393115736"
X-Jenkins-Job: XENVIF-8.2
X-Jenkins-Result: FAILURE
Subject: [win-pv-devel] XENVIF-8.2 - Build #10 - Still Failing
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_0_386499.1496393115736
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #10.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENVIF-8.2/10/console to view the results.
------=_Part_0_386499.1496393115736
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_0_386499.1496393115736--


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 02 08:56:50 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Jun 2017 08:56:50 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dGiO2-0006em-Ie; Fri, 02 Jun 2017 08:56:50 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1dGiO0-0006ef-SX
 for win-pv-devel@lists.xenproject.org; Fri, 02 Jun 2017 08:56:48 +0000
Date: Fri, 2 Jun 2017 08:56:50 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <14687839.3.1496393810080.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
In-Reply-To: <11191418.1.1496393115799.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
References: <11191418.1.1496393115799.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_2_4183002.1496393810065"
X-Jenkins-Job: XENVIF-8.2
X-Jenkins-Result: FAILURE
Subject: [win-pv-devel] XENVIF-8.2 - Build #11 - Still Failing
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_2_4183002.1496393810065
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #11.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENVIF-8.2/11/console to view the results.
------=_Part_2_4183002.1496393810065
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_2_4183002.1496393810065--


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 02 09:55:38 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Jun 2017 09:55:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dGjIu-0002C7-V6; Fri, 02 Jun 2017 09:55:36 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=3195373d8=owen.smith@citrix.com>)
 id 1dGjIt-0002C1-Ob
 for win-pv-devel@lists.xenproject.org; Fri, 02 Jun 2017 09:55:36 +0000
Received: from [85.158.143.35] by server-7.bemta-6.messagelabs.com id
 74/CD-03620-61631395; Fri, 02 Jun 2017 09:55:34 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrEIsWRWlGSWpSXmKPExsWyU9JRQlfUzDD
 SYHKfkcWfxYkOjB6HP1xhCWCMYs3MS8qvSGDN2LrtMHtBy0fGir4Xe9gaGJ++Zexi5OSQEAiS
 WLD3ExOIzSagITGjczFLFyMHh4iAt8TtFfwgYWEBZYnGUy+YIcIaEo8XuoOERQT0JC70rWACC
 bMIqEj0f9AHCfMKuEv03X8LNpBRQFbiS+NqZhCbWUBcounLSlaIpQISS/acZ4awRSVePv4HFT
 eQ2Lp0HwtEfa7EvvNz2CBmCkqcnPmEZQIj/ywko2YhKZuFpGwW0EXMApoS63fpQ5QoSkzpfsg
 OYWtItM6ZC2VbSqxauYYFWc0CRo5VjBrFqUVlqUW6hqZ6SUWZ6RkluYmZObqGBmZ6uanFxYnp
 qTmJScV6yfm5mxiBYc8ABDsYvy0LOMQoycGkJMpramwYKcSXlJ9SmZFYnBFfVJqTWnyIUYaDQ
 0mCt9cEKCdYlJqeWpGWmQOMQJi0BAePkghvOEiat7ggMbc4Mx0idYpRUUqcdxpIQgAkkVGaB9
 cGi/pLjLJSwryMQIcI8RSkFuVmlqDKv2IU52BUEua9DDKFJzOvBG76K6DFTECLX2zTB1lckoi
 Qkmpg9P3tHGRk6qai6p28MfVYy42mPa5/dc5cM9Y4sKjhzb3DhXt6J85afinV73r2zP9/VZ9t
 XmPTu/5U3T6hU/+5r5QLVZU6TWY/XGrwcp7kRcattxbGhU/Jmdvz7v5l6y9KJxmMBISW2XKek
 Syc6Zih+FHZdjV3BNttPZ8rz/wmX7jWvuXgIt31qkosxRmJhlrMRcWJAKC3iEr1AgAA
X-Env-Sender: prvs=3195373d8=owen.smith@citrix.com
X-Msg-Ref: server-10.tower-21.messagelabs.com!1496397333!65341665!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.3 required=7.0 tests=HTML_60_70,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28497 invoked from network); 2 Jun 2017 09:55:33 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 2 Jun 2017 09:55:33 -0000
X-IronPort-AV: E=Sophos;i="5.39,284,1493683200"; d="scan'208,217";a="47111832"
From: Owen Smith <owen.smith@citrix.com>
To: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: Introducing PV HID drivers
Thread-Index: AQHS24ZfRWTqt0XU9UmNxffHrCsB2w==
Date: Fri, 2 Jun 2017 09:55:32 +0000
Message-ID: <b8e12cb4f146489381d85e1bfb1dbef2@AMSPEX02CL02.citrite.net>
Accept-Language: en-GB, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Subject: [win-pv-devel] Introducing PV HID drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0634233953792236417=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============0634233953792236417==
Content-Language: en-GB
Content-Type: multipart/alternative;
	boundary="_000_b8e12cb4f146489381d85e1bfb1dbef2AMSPEX02CL02citritenet_"

--_000_b8e12cb4f146489381d85e1bfb1dbef2AMSPEX02CL02citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

DQpJ4oCZdmUgYmVlbiB3b3JraW5nIG9uIGEgcGFpciBvZiBkcml2ZXJzIHRvIHN1cHBvcnQgdGhl
IFBWIG1vdXNlIGFuZCBrZXlib2FyZCBwcm90b2NvbCBleHBvc2VkIGJ5IHRoZSBwdWJsaWMvaW8v
a2JkaWYuaCBoZWFkZXIuDQpXaXRoIHRoZXNlIGRyaXZlcnMsIGl0IGlzIHBvc3NpYmxlIHRvIGRp
c2FibGUgUUVNVeKAmXMgVVNCIHRhYmxldCBkZXZpY2UgYW5kIFVTQiBlbXVsYXRpb24sIHNhdmlu
ZyBhIGxhcmdlIGFtb3VudCBvZiBDUFUgdGltZSB3aGljaCBpcyB1c2VkIHRvIHBvbGwgZW11bGF0
ZWQgVVNCIGRldmljZXMuDQpEdXJpbmcgZGV2ZWxvcG1lbnQsIEkgZGlkIG5vdCBhZGQgdGhlIOKA
nHVzYj10cnVl4oCdIGFuZCDigJx1c2JkZXZpY2U9W+KAmHRhYmxldOKAmV3igJ0gZGlyZWN0aXZl
cyB0byB0aGUgeGwgY29uZmlnIGZpbGVzLCBzbyBiZWZvcmUgdGhlIGRyaXZlcnMgaW5zdGFsbGVk
LCBJIHdhcyB1c2luZyBhbiBlbXVsYXRlZCBwcy8yIGtleWJvYXJkIGFuZCBwcy8yIChyZWxhdGl2
ZSkgbW91c2UsIHdoaWNoIHdvdWxkIGhhdmUgdHJhY2tpbmcgaXNzdWVzIGxlYWRpbmcgdG8gdGhl
IGxvY2FsIG1vdXNlIHBvaW50ZXIgbm90IG1hdGNoaW5nIHRoZSBtb3ZlbWVudHMgb3IgcG9zaXRp
b24gb2YgdGhlIFZNcyBtb3VzZSBwb2ludGVyIGNvcnJlY3RseS4gQWZ0ZXIgdGhlIGRyaXZlcnMg
aW5zdGFsbGVkLCB0aGUgVk1zIG1vdXNlIHBvaW50ZXIgd291bGQgZm9sbG93IHRoZSBsb2NhbCBt
b3VzZSBwb2ludGVyIGNvcnJlY3RseS4NCg0KVGhpcyBzcGxpdHMgaW50byAyIGRyaXZlcnMgYW5k
IGEgc21hbGwgY2hhbmdlIHRvIFFFTVVzIGJhY2tlbmQ6DQoNClhlblZrYmQgKGh0dHBzOi8vZ2l0
aHViLmNvbS9Pd2VuU21pdGgveGVudmtiZCkNCg0KICAqICAgQmluZHMgdG8gYSBkZXZpY2UgZW51
bWVyYXRlZCBieSBYZW5CdXMgd2hlbiB0aGUgYXBwcm9wcmlhdGUgY2hhbmdlcyBhcmUgbWFkZQ0K
ICAgICAqICAg4oCcVktCROKAnSBuZWVkcyB0byBiZSBhZGRlZCB0byB0aGUg4oCcU3VwcG9ydGVk
Q2xhc3Nlc+KAnSBSRUdfTVVMVElfU1osIGVpdGhlciBpbiB0aGUgSU5GIG9yIHBvc3QtaW5zdGFs
bGF0aW9uLg0KDQpUaGVzZSBjaGFuZ2VzIGhhdmUgbm90IGJlZW4gcG9zdGVkIG1hZGUsIHRob3Vn
aCBpdCBpcyBhIG1pbm9yIFhlbkJ1cyBpbmYgZmlsZSBjaGFuZ2Ugd2hlbiB0aGUgZHJpdmVycyBh
cmUgYWNjZXB0ZWQuDQoNCiAgKiAgIEVudW1lcmF0ZXMgYSBQRE8gZm9yIGVhY2ggZW50cnkgbWFk
ZSB1bmRlciB4ZW5zdG9yZSBkZXZpY2UvdmtiZA0KICAgICAqICAgVGhlIFBETyBpbmNsdWRlcyBh
biBpbXBsZW1lbnRhdGlvbiBvZiB0aGUga2JkaWYgaW50ZXJmYWNlLCBhbmQgYWNjZXB0cyByZWxh
dGl2ZSBvciBhYnNvbHV0ZSBtb3VzZSBwb3NpdGlvbiwgbW91c2UgYnV0dG9uIGFuZCBrZXlib2Fy
ZCBrZXlwcmVzcyBldmVudHMuDQogICAgICogICBFeHBvc2VzIGFuIGludGVyZmFjZSB0byBhIGRy
aXZlciBhYm92ZSB0aGF0IGNvbnRhaW5zIHZhcmlvdXMgcXVlcnkgbWV0aG9kcyBhcyB1c2VkIGJ5
IHRoZSBISUQgY2xhc3MgZHJpdmVyLiBUaGUgaW50ZXJmYWNlIGhhcyBtZXRob2RzIHRvIHJldHJp
ZXZlIGRlc2NyaXB0b3JzLCBzdHJpbmdzIGFuZCBkYXRhIHJlcG9ydHMsIGFzIHdlbGwgYXMgYSBj
YWxsYmFjayB0aGF04oCZcyBjYWxsZWQgd2hlbiBuZXcgcmVwb3J0IGRhdGEgaXMgYXZhaWxhYmxl
Lg0KICAgICAqICAgRnV0dXJlIGltcHJvdmVtZW50cyBtYXkgaW5jbHVkZSBhZGRpbmcgYSBtdWx0
aS10b3VjaCBjYXBhYmxlIHRhYmxldC9kaWdpdGl6ZXIgZW5kcG9pbnQgYW5kL29yIG92ZXJyaWRl
cyB0byB0aGUgdmFyaW91cyBkZXNjcmlwdG9ycyAoYW5kIHZrYmQgcHJvdG9jb2wgZXh0ZW5zaW9u
cykgdG8gYWxsb3cgYW55IEhJRCBkZXZpY2UgdG8gYmUgcGFzc2VkIHRocm91Z2guDQpYZW5IaWQg
KGh0dHBzOi8vZ2l0aHViLmNvbS9Pd2VuU21pdGgveGVuaGlkKQ0KDQogICogICBYZW5IaWQgaXMg
aW50ZW50aW9uYWxseSBrZXB0IGFzIHNpbXBsZSBhcyBwb3NzaWJsZS4NCiAgKiAgIEJpbmRzIHRv
IHRoZSBQRE8gb2YgWGVuVmtiZCBhbmQgaW50ZXJmYWNlcyB3aXRoIHRoZSBzdGFuZGFyZCBNaWNy
b3NvZnQgcHJvdmlkZWQgSElELUNsYXNzIGRyaXZlci4NCiAgICAgKiAgIFF1ZXJpZXMgZm9yIHRo
ZSBpbnRlcmZhY2UgZXhwb3NlZCBieSBYZW5Wa2JkLCBhbmQgcGFzc2VzIG1vc3Qgb2YgdGhlIEhJ
RCBjbGFzcyBjYWxscyBkaXJlY3RseSB0byB0aGUgcHJvdG9jb2wgZHJpdmVyLiBUaGUgZXhjZXB0
aW9uIGlzIHRoZSByZWFkIHJlcG9ydCBjYWxsLCB3aGljaCBpcyBxdWV1ZWQgdW50aWwgdGhlIGlu
dGVyZmFjZSBjYWxsYmFjayBpcyBjYWxsZWQsIGR1ZSB0byB0aGUgZGVzaWduIG9mIHRoZSBISUQg
Y2xhc3MgaW50ZXJmYWNlLg0KUUVNVSBQYXRjaA0KDQogICogICBBIHNtYWxsIGNoYW5nZSB0byBR
RU1VcyBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgdmtiZCBiYWNrZW5kIGlzIHJlcXVpcmVkLiBBIHNl
cGFyYXRlIHBhdGNoIHNlcmllcyB3aWxsIGJlIHN1Ym1pdHRlZCB0byBRRU1VLiBJ4oCZdmUgaW5j
bHVkZWQgdGhlIGJhcmUgbWluaW11bSBwYXRjaCB0byB0aGlzIG1haWwsIHRob3VnaCB0aGUgcGF0
Y2ggc2VyaWVzIHN1Ym1pdHRlZCB0byBRRU1VIHdpbGwgbWFrZSB0aGUgc2FtZSBjaGFuZ2VzLCBp
dCB3aWxsIGJlIGNsZWFuZWQgdXAuDQoNCihjb3B5LXBhc3RlIGZyb20gZ2l0IGZvcm1hdC1wYXRj
aCkNCkZyb20gZjQ5Y2U0NzVjNzA2MDRkNWJhZDZiODM0MTJjODVlN2UxZjhiYjEzZSBNb24gU2Vw
IDE3IDAwOjAwOjAwIDIwMDENCkZyb206DQpEYXRlOiBUdWUsIDMwIE1heSAyMDE3IDEwOjQzOjQ0
ICswMDAwDQpTdWJqZWN0OiBbUEFUQ0hdIEZpeCB4ZW5mYiBmb3IgUFYtSElEDQoNClNpZ25lZC1v
ZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCi0tLQ0KaHcvZGlzcGxh
eS94ZW5mYi5jIHwgMzEgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQ0KMSBmaWxlIGNo
YW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEv
aHcvZGlzcGxheS94ZW5mYi5jIGIvaHcvZGlzcGxheS94ZW5mYi5jDQppbmRleCA3YTg3MjdhLi40
MDYwZmIzIDEwMDY0NA0KLS0tIGEvaHcvZGlzcGxheS94ZW5mYi5jDQorKysgYi9ody9kaXNwbGF5
L3hlbmZiLmMNCkBAIC0zMDcsMTggKzMwNywyMiBAQCBzdGF0aWMgdm9pZCB4ZW5mYl9tb3VzZV9l
dmVudCh2b2lkICpvcGFxdWUsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCBkeCwgaW50IGR5LCBpbnQgZHosIGludCBidXR0b25fc3RhdGUp
DQp7DQogICAgIHN0cnVjdCBYZW5JbnB1dCAqeGVuZmIgPSBvcGFxdWU7DQotICAgIERpc3BsYXlT
dXJmYWNlICpzdXJmYWNlID0gcWVtdV9jb25zb2xlX3N1cmZhY2UoeGVuZmItPmMuY29uKTsNCi0g
ICAgaW50IGR3ID0gc3VyZmFjZV93aWR0aChzdXJmYWNlKTsNCi0gICAgaW50IGRoID0gc3VyZmFj
ZV9oZWlnaHQoc3VyZmFjZSk7DQotICAgIGludCBpOw0KKyAgICBpbnQgaSwgeCwgeTsNCisgICAg
aWYgKHhlbmZiLT5jLmNvbikgew0KKyAgICAgICAgRGlzcGxheVN1cmZhY2UgKnN1cmZhY2UgPSBx
ZW11X2NvbnNvbGVfc3VyZmFjZSh4ZW5mYi0+Yy5jb24pOw0KKyAgICAgICAgaW50IGR3ID0gc3Vy
ZmFjZV93aWR0aChzdXJmYWNlKTsNCisgICAgICAgIGludCBkaCA9IHN1cmZhY2VfaGVpZ2h0KHN1
cmZhY2UpOw0KKyAgICAgICAgeCA9IGR4ICogKGRoIC0gMSkgLyAweDdmZmY7DQorICAgICAgICB5
ID0gZHkgKiAoZHcgLSAxKSAvIDB4N2ZmZjsNCisgICAgfSBlbHNlIHsNCisgICAgICAgIHggPSBk
eDsNCisgICAgICAgIHkgPSBkeTsNCisgICAgfQ0KICAgICB0cmFjZV94ZW5mYl9tb3VzZV9ldmVu
dChvcGFxdWUsIGR4LCBkeSwgZHosIGJ1dHRvbl9zdGF0ZSwNCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgeGVuZmItPmFic19wb2ludGVyX3dhbnRlZCk7DQogICAgIGlmICh4ZW5mYi0+YWJz
X3BvaW50ZXJfd2FudGVkKQ0KLSAgICAgICAgICAgICAgeGVuZmJfc2VuZF9wb3NpdGlvbih4ZW5m
YiwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR4
ICogKGR3IC0gMSkgLyAweDdmZmYsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkeSAqIChkaCAtIDEpIC8gMHg3ZmZmLA0KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHopOw0KKyAgICAgICAgICAgICB4
ZW5mYl9zZW5kX3Bvc2l0aW9uKHhlbmZiLCB4LCB5LCBkeik7DQogICAgIGVsc2UNCiAgICAgICAg
ICAgICAgIHhlbmZiX3NlbmRfbW90aW9uKHhlbmZiLCBkeCwgZHksIGR6KTsNCkBAIC0zNDYsMTUg
KzM1MCwxOCBAQCBzdGF0aWMgaW50IGlucHV0X2luaXRpYWxpc2Uoc3RydWN0IFhlbkRldmljZSAq
eGVuZGV2KQ0KICAgICBpbnQgcmM7DQogICAgIGlmICghaW4tPmMuY29uKSB7DQotICAgICAgICB4
ZW5fcHZfcHJpbnRmKHhlbmRldiwgMSwgImRzIG5vdCBzZXQgKHlldClcbiIpOw0KLSAgICAgICAg
cmV0dXJuIC0xOw0KKyAgICAgICAgY2hhciAqdmZiID0geGVuc3RvcmVfcmVhZF9zdHIoTlVMTCwg
ImRldmljZS92ZmIiKTsNCisgICAgICAgIGlmICh2ZmIgIT0gTlVMTCkgew0KKyAgICAgICAgICAg
IGZyZWUodmZiKTsNCisgICAgICAgICAgICB4ZW5fcHZfcHJpbnRmKHhlbmRldiwgMSwgImRzIG5v
dCBzZXQgKHlldClcbiIpOw0KKyAgICAgICAgICAgIHJldHVybiAtMTsNCisgICAgICAgIH0NCiAg
ICAgfQ0KICAgICByYyA9IGNvbW1vbl9iaW5kKCZpbi0+Yyk7DQogICAgIGlmIChyYyAhPSAwKQ0K
ICAgICAgICAgICAgICAgcmV0dXJuIHJjOw0KLSAgICBxZW11X2FkZF9rYmRfZXZlbnRfaGFuZGxl
cih4ZW5mYl9rZXlfZXZlbnQsIGluKTsNCiAgICAgcmV0dXJuIDA7DQp9DQpAQCAtMzY3LDYgKzM3
NCw3IEBAIHN0YXRpYyB2b2lkIGlucHV0X2Nvbm5lY3RlZChzdHJ1Y3QgWGVuRGV2aWNlICp4ZW5k
ZXYpDQogICAgICAgICBpbi0+YWJzX3BvaW50ZXJfd2FudGVkID0gMDsNCiAgICAgfQ0KKyAgICBx
ZW11X2FkZF9rYmRfZXZlbnRfaGFuZGxlcih4ZW5mYl9rZXlfZXZlbnQsIGluKTsNCiAgICAgaWYg
KGluLT5xbW91c2UpIHsNCiAgICAgICAgIHFlbXVfcmVtb3ZlX21vdXNlX2V2ZW50X2hhbmRsZXIo
aW4tPnFtb3VzZSk7DQogICAgIH0NCkBAIC0zNzQsNiArMzgyLDcgQEAgc3RhdGljIHZvaWQgaW5w
dXRfY29ubmVjdGVkKHN0cnVjdCBYZW5EZXZpY2UgKnhlbmRldikNCiAgICAgaW4tPnFtb3VzZSA9
IHFlbXVfYWRkX21vdXNlX2V2ZW50X2hhbmRsZXIoeGVuZmJfbW91c2VfZXZlbnQsIGluLA0KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluLT5hYnNfcG9pbnRlcl93YW50ZWQsDQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIlhlbiBQVkZCIE1vdXNlIik7DQorICAgIHFlbXVfYWN0aXZh
dGVfbW91c2VfZXZlbnRfaGFuZGxlcihpbi0+cW1vdXNlKTsNCn0NCiBzdGF0aWMgdm9pZCBpbnB1
dF9kaXNjb25uZWN0KHN0cnVjdCBYZW5EZXZpY2UgKnhlbmRldikNCi0tDQoyLjEuNA0KDQo=

--_000_b8e12cb4f146489381d85e1bfb1dbef2AMSPEX02CL02citritenet_
Content-Type: text/html; charset="utf-8"
Content-ID: <0A4C0B856CB68D4C8BFE23A9F688BB07@citrix.com>
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4
bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4bWxuczptPSJo
dHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0LzEyL29tbWwiIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4NCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVp
dj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPg0KPG1l
dGEgbmFtZT0iR2VuZXJhdG9yIiBjb250ZW50PSJNaWNyb3NvZnQgV29yZCAxNSAoZmlsdGVyZWQg
bWVkaXVtKSI+DQo8c3R5bGU+PCEtLQ0KLyogRm9udCBEZWZpbml0aW9ucyAqLw0KQGZvbnQtZmFj
ZQ0KCXtmb250LWZhbWlseTpXaW5nZGluZ3M7DQoJcGFub3NlLTE6NSAwIDAgMCAwIDAgMCAwIDAg
MDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiOw0KCXBhbm9zZS0x
OjIgNCA1IDMgNSA0IDYgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxpYnJp
Ow0KCXBhbm9zZS0xOjIgMTUgNSAyIDIgMiA0IDMgMiA0O30NCi8qIFN0eWxlIERlZmluaXRpb25z
ICovDQpwLk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsDQoJe21hcmdpbjow
Y207DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZToxMS4wcHQ7DQoJZm9udC1m
YW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7fQ0KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluaw0K
CXttc28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6IzA1NjNDMTsNCgl0ZXh0LWRlY29yYXRp
b246dW5kZXJsaW5lO30NCmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtGb2xsb3dlZA0KCXtt
c28tc3R5bGUtcHJpb3JpdHk6OTk7DQoJY29sb3I6Izk1NEY3MjsNCgl0ZXh0LWRlY29yYXRpb246
dW5kZXJsaW5lO30NCnAuTXNvTGlzdFBhcmFncmFwaCwgbGkuTXNvTGlzdFBhcmFncmFwaCwgZGl2
Lk1zb0xpc3RQYXJhZ3JhcGgNCgl7bXNvLXN0eWxlLXByaW9yaXR5OjM0Ow0KCW1hcmdpbi10b3A6
MGNtOw0KCW1hcmdpbi1yaWdodDowY207DQoJbWFyZ2luLWJvdHRvbTowY207DQoJbWFyZ2luLWxl
ZnQ6MzYuMHB0Ow0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNpemU6MTEuMHB0Ow0K
CWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30NCi5Nc29DaHBEZWZhdWx0DQoJe21z
by1zdHlsZS10eXBlOmV4cG9ydC1vbmx5O30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0KCXtzaXplOjYx
Mi4wcHQgNzkyLjBwdDsNCgltYXJnaW46NzIuMHB0IDcyLjBwdCA3Mi4wcHQgNzIuMHB0O30NCmRp
di5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLyogTGlzdCBEZWZpbml0aW9u
cyAqLw0KQGxpc3QgbDANCgl7bXNvLWxpc3QtaWQ6MTkxNzc0NDk3NjsNCgltc28tbGlzdC10eXBl
Omh5YnJpZDsNCgltc28tbGlzdC10ZW1wbGF0ZS1pZHM6NDE1NTMxMDYwIC0xIDEzNDgwNzU1NSAx
MzQ4MDc1NTcgMTM0ODA3NTUzIDEzNDgwNzU1NSAxMzQ4MDc1NTcgMTM0ODA3NTUzIDEzNDgwNzU1
NSAxMzQ4MDc1NTc7fQ0KQGxpc3QgbDA6bGV2ZWwxDQoJe21zby1sZXZlbC1zdGFydC1hdDowOw0K
CW1zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpcRjBCNzsN
Cgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxl
ZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7DQoJbXNvLWZh
cmVhc3QtZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7DQoJbXNvLWJpZGktZm9udC1mYW1p
bHk6IlRpbWVzIE5ldyBSb21hbiI7fQ0KQGxpc3QgbDA6bGV2ZWwyDQoJe21zby1sZXZlbC1udW1i
ZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3Rv
cDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDot
MTguMHB0Ow0KCWZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxpc3QgbDA6bGV2ZWwzDQoJ
e21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpcRjBBNzsN
Cgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxl
ZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxp
c3QgbDA6bGV2ZWw0DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2
ZWwtdGV4dDpcRjBCNzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVt
YmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCglmb250LWZhbWlseTpT
eW1ib2w7fQ0KQGxpc3QgbDA6bGV2ZWw1DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxl
dDsNCgltc28tbGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1s
ZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCWZvbnQt
ZmFtaWx5OiJDb3VyaWVyIE5ldyI7fQ0KQGxpc3QgbDA6bGV2ZWw2DQoJe21zby1sZXZlbC1udW1i
ZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpcRjBBNzsNCgltc28tbGV2ZWwtdGFi
LXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRl
bnQ6LTE4LjBwdDsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7fQ0KQGxpc3QgbDA6bGV2ZWw3DQoJ
e21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDpcRjBCNzsN
Cgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxl
ZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3Qg
bDA6bGV2ZWw4DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwt
dGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9z
aXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCWZvbnQtZmFtaWx5OiJDb3VyaWVy
IE5ldyI7fQ0KQGxpc3QgbDA6bGV2ZWw5DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxl
dDsNCgltc28tbGV2ZWwtdGV4dDpcRjBBNzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCglt
c28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCglm
b250LWZhbWlseTpXaW5nZGluZ3M7fQ0Kb2wNCgl7bWFyZ2luLWJvdHRvbTowY207fQ0KdWwNCgl7
bWFyZ2luLWJvdHRvbTowY207fQ0KLS0+PC9zdHlsZT4NCjwvaGVhZD4NCjxib2R5IGxhbmc9IkVO
LUdCIiBsaW5rPSIjMDU2M0MxIiB2bGluaz0iIzk1NEY3MiI+DQo8ZGl2IGNsYXNzPSJXb3JkU2Vj
dGlvbjEiPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj5J4oCZdmUgYmVlbiB3b3JraW5nIG9uIGEgcGFpciBvZiBkcml2ZXJz
IHRvIHN1cHBvcnQgdGhlIFBWIG1vdXNlIGFuZCBrZXlib2FyZCBwcm90b2NvbCBleHBvc2VkIGJ5
IHRoZSBwdWJsaWMvaW8va2JkaWYuaCBoZWFkZXIuPC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
V2l0aCB0aGVzZSBkcml2ZXJzLCBpdCBpcyBwb3NzaWJsZSB0byBkaXNhYmxlIFFFTVXigJlzIFVT
QiB0YWJsZXQgZGV2aWNlIGFuZCBVU0IgZW11bGF0aW9uLCBzYXZpbmcgYSBsYXJnZSBhbW91bnQg
b2YgQ1BVIHRpbWUgd2hpY2ggaXMgdXNlZCB0byBwb2xsIGVtdWxhdGVkIFVTQiBkZXZpY2VzLjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkR1cmluZyBkZXZlbG9wbWVudCwgSSBkaWQgbm90IGFk
ZCB0aGUg4oCcdXNiPXRydWXigJ0gYW5kIOKAnHVzYmRldmljZT1b4oCYdGFibGV04oCZXeKAnSBk
aXJlY3RpdmVzIHRvIHRoZSB4bCBjb25maWcgZmlsZXMsIHNvIGJlZm9yZSB0aGUgZHJpdmVycyBp
bnN0YWxsZWQsIEkgd2FzIHVzaW5nIGFuIGVtdWxhdGVkIHBzLzIga2V5Ym9hcmQgYW5kIHBzLzIg
KHJlbGF0aXZlKSBtb3VzZSwgd2hpY2ggd291bGQgaGF2ZSB0cmFja2luZyBpc3N1ZXMNCiBsZWFk
aW5nIHRvIHRoZSBsb2NhbCBtb3VzZSBwb2ludGVyIG5vdCBtYXRjaGluZyB0aGUgbW92ZW1lbnRz
IG9yIHBvc2l0aW9uIG9mIHRoZSBWTXMgbW91c2UgcG9pbnRlciBjb3JyZWN0bHkuIEFmdGVyIHRo
ZSBkcml2ZXJzIGluc3RhbGxlZCwgdGhlIFZNcyBtb3VzZSBwb2ludGVyIHdvdWxkIGZvbGxvdyB0
aGUgbG9jYWwgbW91c2UgcG9pbnRlciBjb3JyZWN0bHkuPC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5UaGlzIHNwbGl0
cyBpbnRvIDIgZHJpdmVycyBhbmQgYSBzbWFsbCBjaGFuZ2UgdG8gUUVNVXMgYmFja2VuZDo8L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPlhlblZrYmQgKDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9Pd2VuU21pdGgv
eGVudmtiZCI+aHR0cHM6Ly9naXRodWIuY29tL093ZW5TbWl0aC94ZW52a2JkPC9hPikNCjwvcD4N
Cjx1bCBzdHlsZT0ibWFyZ2luLXRvcDowY20iIHR5cGU9ImRpc2MiPg0KPGxpIGNsYXNzPSJNc29M
aXN0UGFyYWdyYXBoIiBzdHlsZT0ibWFyZ2luLWxlZnQ6MGNtO21zby1saXN0OmwwIGxldmVsMSBs
Zm8xIj5CaW5kcyB0byBhIGRldmljZSBlbnVtZXJhdGVkIGJ5IFhlbkJ1cyB3aGVuIHRoZSBhcHBy
b3ByaWF0ZSBjaGFuZ2VzIGFyZSBtYWRlDQo8dWwgc3R5bGU9Im1hcmdpbi10b3A6MGNtIiB0eXBl
PSJjaXJjbGUiPg0KPGxpIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0ibWFyZ2luLWxl
ZnQ6MGNtO21zby1saXN0OmwwIGxldmVsMiBsZm8xIj7igJxWS0JE4oCdIG5lZWRzIHRvIGJlIGFk
ZGVkIHRvIHRoZSDigJxTdXBwb3J0ZWRDbGFzc2Vz4oCdIFJFR19NVUxUSV9TWiwgZWl0aGVyIGlu
IHRoZSBJTkYgb3IgcG9zdC1pbnN0YWxsYXRpb24uPC9saT48L3VsPg0KPC9saT48L3VsPg0KPHAg
Y2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPSJtYXJnaW4tbGVmdDo3Mi4wcHQiPlRoZXNl
IGNoYW5nZXMgaGF2ZSBub3QgYmVlbiBwb3N0ZWQgbWFkZSwgdGhvdWdoIGl0IGlzIGEgbWlub3Ig
WGVuQnVzIGluZiBmaWxlIGNoYW5nZSB3aGVuIHRoZSBkcml2ZXJzIGFyZSBhY2NlcHRlZC48L3A+
DQo8dWwgc3R5bGU9Im1hcmdpbi10b3A6MGNtIiB0eXBlPSJkaXNjIj4NCjxsaSBjbGFzcz0iTXNv
TGlzdFBhcmFncmFwaCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjBjbTttc28tbGlzdDpsMCBsZXZlbDEg
bGZvMSI+RW51bWVyYXRlcyBhIFBETyBmb3IgZWFjaCBlbnRyeSBtYWRlIHVuZGVyIHhlbnN0b3Jl
IGRldmljZS92a2JkDQo8dWwgc3R5bGU9Im1hcmdpbi10b3A6MGNtIiB0eXBlPSJjaXJjbGUiPg0K
PGxpIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0ibWFyZ2luLWxlZnQ6MGNtO21zby1s
aXN0OmwwIGxldmVsMiBsZm8xIj5UaGUgUERPIGluY2x1ZGVzIGFuIGltcGxlbWVudGF0aW9uIG9m
IHRoZSBrYmRpZiBpbnRlcmZhY2UsIGFuZCBhY2NlcHRzIHJlbGF0aXZlIG9yIGFic29sdXRlIG1v
dXNlIHBvc2l0aW9uLCBtb3VzZSBidXR0b24gYW5kIGtleWJvYXJkIGtleXByZXNzIGV2ZW50cy48
L2xpPjxsaSBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgc3R5bGU9Im1hcmdpbi1sZWZ0OjBjbTtt
c28tbGlzdDpsMCBsZXZlbDIgbGZvMSI+RXhwb3NlcyBhbiBpbnRlcmZhY2UgdG8gYSBkcml2ZXIg
YWJvdmUgdGhhdCBjb250YWlucyB2YXJpb3VzIHF1ZXJ5IG1ldGhvZHMgYXMgdXNlZCBieSB0aGUg
SElEIGNsYXNzIGRyaXZlci4gVGhlIGludGVyZmFjZSBoYXMgbWV0aG9kcyB0byByZXRyaWV2ZSBk
ZXNjcmlwdG9ycywgc3RyaW5ncyBhbmQgZGF0YSByZXBvcnRzLA0KIGFzIHdlbGwgYXMgYSBjYWxs
YmFjayB0aGF04oCZcyBjYWxsZWQgd2hlbiBuZXcgcmVwb3J0IGRhdGEgaXMgYXZhaWxhYmxlLjwv
bGk+PGxpIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0ibWFyZ2luLWxlZnQ6MGNtO21z
by1saXN0OmwwIGxldmVsMiBsZm8xIj5GdXR1cmUgaW1wcm92ZW1lbnRzIG1heSBpbmNsdWRlIGFk
ZGluZyBhIG11bHRpLXRvdWNoIGNhcGFibGUgdGFibGV0L2RpZ2l0aXplciBlbmRwb2ludCBhbmQv
b3Igb3ZlcnJpZGVzIHRvIHRoZSB2YXJpb3VzIGRlc2NyaXB0b3JzIChhbmQgdmtiZCBwcm90b2Nv
bCBleHRlbnNpb25zKSB0byBhbGxvdyBhbnkgSElEIGRldmljZQ0KIHRvIGJlIHBhc3NlZCB0aHJv
dWdoLjwvbGk+PC91bD4NCjwvbGk+PC91bD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlhlbkhpZCAo
PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL093ZW5TbWl0aC94ZW5oaWQiPmh0dHBzOi8vZ2l0
aHViLmNvbS9Pd2VuU21pdGgveGVuaGlkPC9hPik8L3A+DQo8dWwgc3R5bGU9Im1hcmdpbi10b3A6
MGNtIiB0eXBlPSJkaXNjIj4NCjxsaSBjbGFzcz0iTXNvTGlzdFBhcmFncmFwaCIgc3R5bGU9Im1h
cmdpbi1sZWZ0OjBjbTttc28tbGlzdDpsMCBsZXZlbDEgbGZvMSI+WGVuSGlkIGlzIGludGVudGlv
bmFsbHkga2VwdCBhcyBzaW1wbGUgYXMgcG9zc2libGUuPC9saT48bGkgY2xhc3M9Ik1zb0xpc3RQ
YXJhZ3JhcGgiIHN0eWxlPSJtYXJnaW4tbGVmdDowY207bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzEi
PkJpbmRzIHRvIHRoZSBQRE8gb2YgWGVuVmtiZCBhbmQgaW50ZXJmYWNlcyB3aXRoIHRoZSBzdGFu
ZGFyZCBNaWNyb3NvZnQgcHJvdmlkZWQgSElELUNsYXNzIGRyaXZlci4NCjx1bCBzdHlsZT0ibWFy
Z2luLXRvcDowY20iIHR5cGU9ImNpcmNsZSI+DQo8bGkgY2xhc3M9Ik1zb0xpc3RQYXJhZ3JhcGgi
IHN0eWxlPSJtYXJnaW4tbGVmdDowY207bXNvLWxpc3Q6bDAgbGV2ZWwyIGxmbzEiPlF1ZXJpZXMg
Zm9yIHRoZSBpbnRlcmZhY2UgZXhwb3NlZCBieSBYZW5Wa2JkLCBhbmQgcGFzc2VzIG1vc3Qgb2Yg
dGhlIEhJRCBjbGFzcyBjYWxscyBkaXJlY3RseSB0byB0aGUgcHJvdG9jb2wgZHJpdmVyLiBUaGUg
ZXhjZXB0aW9uIGlzIHRoZSByZWFkIHJlcG9ydCBjYWxsLCB3aGljaCBpcyBxdWV1ZWQgdW50aWwg
dGhlDQogaW50ZXJmYWNlIGNhbGxiYWNrIGlzIGNhbGxlZCwgZHVlIHRvIHRoZSBkZXNpZ24gb2Yg
dGhlIEhJRCBjbGFzcyBpbnRlcmZhY2UuPC9saT48L3VsPg0KPC9saT48L3VsPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+UUVNVSBQYXRjaDwvcD4NCjx1bCBzdHlsZT0ibWFyZ2luLXRvcDowY20iIHR5
cGU9ImRpc2MiPg0KPGxpIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0ibWFyZ2luLWxl
ZnQ6MGNtO21zby1saXN0OmwwIGxldmVsMSBsZm8xIj5BIHNtYWxsIGNoYW5nZSB0byBRRU1VcyBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgdmtiZCBiYWNrZW5kIGlzIHJlcXVpcmVkLiBBIHNlcGFyYXRl
IHBhdGNoIHNlcmllcyB3aWxsIGJlIHN1Ym1pdHRlZCB0byBRRU1VLiBJ4oCZdmUgaW5jbHVkZWQg
dGhlIGJhcmUgbWluaW11bSBwYXRjaCB0byB0aGlzIG1haWwsIHRob3VnaA0KIHRoZSBwYXRjaCBz
ZXJpZXMgc3VibWl0dGVkIHRvIFFFTVUgd2lsbCBtYWtlIHRoZSBzYW1lIGNoYW5nZXMsIGl0IHdp
bGwgYmUgY2xlYW5lZCB1cC48L2xpPjwvdWw+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZu
YnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPihjb3B5LXBhc3RlIGZyb20gZ2l0
IGZvcm1hdC1wYXRjaCk8L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5Gcm9tIGY0OWNlNDc1Yzcw
NjA0ZDViYWQ2YjgzNDEyYzg1ZTdlMWY4YmIxM2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxPC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+RnJvbTogPC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
RGF0ZTogVHVlLCAzMCBNYXkgMjAxNyAxMDo0Mzo0NCAmIzQzOzAwMDA8L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj5TdWJqZWN0OiBbUEFUQ0hdIEZpeCB4ZW5mYiBmb3IgUFYtSElEPC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj5TaWduZWQtb2ZmLWJ5OiBPd2VuIFNtaXRoICZsdDtvd2VuLnNtaXRoQGNpdHJpeC5jb20m
Z3Q7PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+LS0tPC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+aHcvZGlzcGxheS94ZW5mYi5jIHwgMzEgJiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7
JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYj
NDM7JiM0MzsmIzQzOy0tLS0tLS0tLS0tPC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+MSBmaWxl
IGNoYW5nZWQsIDIwIGluc2VydGlvbnMoJiM0MzspLCAxMSBkZWxldGlvbnMoLSk8L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPmRpZmYgLS1naXQgYS9ody9kaXNwbGF5L3hlbmZiLmMgYi9ody9kaXNwbGF5L3hlbmZiLmM8
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5pbmRleCA3YTg3MjdhLi40MDYwZmIzIDEwMDY0NDwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPi0tLSBhL2h3L2Rpc3BsYXkveGVuZmIuYzwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPiYjNDM7JiM0MzsmIzQzOyBiL2h3L2Rpc3BsYXkveGVuZmIuYzwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkBAIC0zMDcsMTggJiM0MzszMDcsMjIgQEAgc3RhdGlj
IHZvaWQgeGVuZmJfbW91c2VfZXZlbnQodm9pZCAqb3BhcXVlLDwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbnQgZHgsIGludCBkeSwgaW50IGR6
LCBpbnQgYnV0dG9uX3N0YXRlKTwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPns8L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3RydWN0IFhlbklucHV0
ICp4ZW5mYiA9IG9wYXF1ZTs8L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4tJm5ic3A7Jm5ic3A7
Jm5ic3A7IERpc3BsYXlTdXJmYWNlICpzdXJmYWNlID0gcWVtdV9jb25zb2xlX3N1cmZhY2UoeGVu
ZmItJmd0O2MuY29uKTs8L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4tJm5ic3A7Jm5ic3A7Jm5i
c3A7IGludCBkdyA9IHN1cmZhY2Vfd2lkdGgoc3VyZmFjZSk7PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+LSZuYnNwOyZuYnNwOyZuYnNwOyBpbnQgZGggPSBzdXJmYWNlX2hlaWdodChzdXJmYWNl
KTs8L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4tJm5ic3A7Jm5ic3A7Jm5ic3A7IGludCBpOzwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGludCBpLCB4
LCB5OzwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlm
ICh4ZW5mYi0mZ3Q7Yy5jb24pIHs8L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mIzQzOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBEaXNwbGF5U3VyZmFjZSAqc3Vy
ZmFjZSA9IHFlbXVfY29uc29sZV9zdXJmYWNlKHhlbmZiLSZndDtjLmNvbik7PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+JiM0MzsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7aW50IGR3ID0gc3VyZmFjZV93aWR0aChzdXJmYWNlKTs8L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj4mIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBp
bnQgZGggPSBzdXJmYWNlX2hlaWdodChzdXJmYWNlKTs8L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij4mIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB4ID0gZHgg
KiAoZGggLSAxKSAvIDB4N2ZmZjs8L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mIzQzOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB5ID0gZHkgKiAoZHcgLSAxKSAv
IDB4N2ZmZjs8L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mIzQzOyZuYnNwOyZuYnNwOyZuYnNw
OyB9IGVsc2UgezwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiYjNDM7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHggPSBkeDs8L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj4mIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB5ID0g
ZHk7PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+JiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsgfTwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3RyYWNlX3hlbmZiX21vdXNlX2V2ZW50KG9wYXF1ZSwg
ZHgsIGR5LCBkeiwgYnV0dG9uX3N0YXRlLDwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB4ZW5mYi0m
Z3Q7YWJzX3BvaW50ZXJfd2FudGVkKTs8L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsgaWYgKHhlbmZiLSZndDthYnNfcG9pbnRlcl93YW50ZWQpPC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+LSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB4ZW5mYl9zZW5kX3Bv
c2l0aW9uKHhlbmZiLDwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPi0mbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7IGR4ICogKGR3IC0g
MSkgLyAweDdmZmYsPC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+LSZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgZHkgKiAoZGggLSAx
KSAvIDB4N2ZmZiw8L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4tJm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNwOyZuYnNwOyBkeik7PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+JiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgeGVuZmJfc2VuZF9wb3NpdGlv
bih4ZW5mYiwgeCwgeSwgZHopOzwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyBlbHNlPC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7IHhlbmZiX3NlbmRfbW90aW9uKHhlbmZiLCBkeCwgZHksIGR6KTs8L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5AQCAtMzQ2
LDE1ICYjNDM7MzUwLDE4IEBAIHN0YXRpYyBpbnQgaW5wdXRfaW5pdGlhbGlzZShzdHJ1Y3QgWGVu
RGV2aWNlICp4ZW5kZXYpPC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7IGludCByYzs8L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpZiAoIWluLSZndDtj
LmNvbikgezwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPi0mbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsgeGVuX3B2X3ByaW50Zih4ZW5kZXYsIDEsICZxdW90O2RzIG5v
dCBzZXQgKHlldClcbiZxdW90Oyk7PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+LSZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gLTE7PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+JiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsgY2hhciAqdmZiID0geGVuc3RvcmVfcmVhZF9zdHIoTlVMTCwgJnF1b3Q7ZGV2aWNlL3Zm
YiZxdW90Oyk7PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+JiM0MzsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaWYgKHZmYiAhPSBOVUxMKSB7PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+JiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZnJlZSh2ZmIpOzwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPiYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHhlbl9wdl9wcmludGYoeGVuZGV2LCAxLCAmcXVvdDtk
cyBub3Qgc2V0ICh5ZXQpXG4mcXVvdDspOzwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiYjNDM7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7IHJldHVybiAtMTs8L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mIzQzOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB9PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDtyYyA9IGNvbW1vbl9iaW5kKCZhbXA7aW4tJmd0O2MpOzwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAocmMgIT0gMCk8L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuIHJjOzwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPi0mbmJzcDsm
bmJzcDsmbmJzcDsgcWVtdV9hZGRfa2JkX2V2ZW50X2hhbmRsZXIoeGVuZmJfa2V5X2V2ZW50LCBp
bik7PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJl
dHVybiAwOzwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPn08L3A+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5AQCAtMzY3LDYgJiM0MzszNzQsNyBAQCBz
dGF0aWMgdm9pZCBpbnB1dF9jb25uZWN0ZWQoc3RydWN0IFhlbkRldmljZSAqeGVuZGV2KTwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyBpbi0mZ3Q7YWJzX3BvaW50ZXJfd2FudGVkID0gMDs8L3A+DQo8cCBjbGFz
cz0iTXNvTm9ybWFsIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgfTwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiYjNDM7Jm5ic3A7Jm5ic3A7Jm5i
c3A7IHFlbXVfYWRkX2tiZF9ldmVudF9oYW5kbGVyKHhlbmZiX2tleV9ldmVudCwgaW4pOzwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAoaW4tJmd0
O3Ftb3VzZSkgezwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBxZW11X3JlbW92ZV9tb3VzZV9ldmVudF9oYW5k
bGVyKGluLSZndDtxbW91c2UpOzwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyB9PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+QEAgLTM3NCw2ICYjNDM7
MzgyLDcgQEAgc3RhdGljIHZvaWQgaW5wdXRfY29ubmVjdGVkKHN0cnVjdCBYZW5EZXZpY2UgKnhl
bmRldik8L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg
aW4tJmd0O3Ftb3VzZSA9IHFlbXVfYWRkX21vdXNlX2V2ZW50X2hhbmRsZXIoeGVuZmJfbW91c2Vf
ZXZlbnQsIGluLDwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtpbi0mZ3Q7YWJzX3BvaW50ZXJfd2FudGVkLDwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmcXVvdDtYZW4gUFZGQiBNb3VzZSZxdW90Oyk7PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+JiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsgcWVtdV9hY3RpdmF0ZV9tb3Vz
ZV9ldmVudF9oYW5kbGVyKGluLSZndDtxbW91c2UpOzwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
Pn08L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4m
bmJzcDtzdGF0aWMgdm9pZCBpbnB1dF9kaXNjb25uZWN0KHN0cnVjdCBYZW5EZXZpY2UgKnhlbmRl
dik8L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj4tLSA8L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij4yLjEuNDwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0K
PC9kaXY+DQo8L2JvZHk+DQo8L2h0bWw+DQo=

--_000_b8e12cb4f146489381d85e1bfb1dbef2AMSPEX02CL02citritenet_--


--===============0634233953792236417==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============0634233953792236417==--


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 02 10:48:51 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Jun 2017 10:48:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dGk8Q-0005Y1-P6; Fri, 02 Jun 2017 10:48:50 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=319cf0971=Paul.Durrant@citrix.com>)
 id 1dGk8O-0005Xr-GL
 for win-pv-devel@lists.xenproject.org; Fri, 02 Jun 2017 10:48:48 +0000
Received: from [193.109.254.147] by server-2.bemta-6.messagelabs.com id
 72/A6-03058-F8241395; Fri, 02 Jun 2017 10:48:47 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrFIsWRWlGSWpSXmKPExsWyU9JRQrfPyTD
 SYOkJJYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8eTwRaaC+/vYKlbe3cXSwPh2M1sXIyeHhECQ
 RNeqbhYQm01AR2Lp0flMILaIQIHE9/fzmEFsYQF1ifvrfzB2MXIAxTUkHi90hygxkvj98iALS
 JhFQEWi73UASJhXwF3i0r+3YNVCQPbaeW4gYU4BD4k7TyaALWIUkJX40rgabDizgLjErScQSy
 UEBCSW7DnPDGGLSrx8/I8VwjaQ2Lp0HwtEfa7E4elbmCFWCUqcnPmEZQKj4Cwko2YhKZuFpGw
 W0EXMApoS63fpQ5QoSkzpfsgOYWtItM6Zy44svoCRfRWjRnFqUVlqka6RpV5SUWZ6RkluYmaO
 rqGBmV5uanFxYnpqTmJSsV5yfu4mRmA8MADBDsYDiwIPMUpyMCmJ8poaG0YK8SXlp1RmJBZnx
 BeV5qQWH2KU4eBQkuC1dATKCRalpqdWpGXmACMTJi3BwaMkwlsNkuYtLkjMLc5Mh0idYtTl2L
 B6/RcmIZa8/LxUKXHeApAiAZCijNI8uBGwJHGJUVZKmJcR6CghnoLUotzMElT5V4ziHIxKwrx
 CIFN4MvNK4Da9AjqCCeiIF9v0QY4oSURISTUwZnCI9e7LqK9wZuVYKj3/sLD1uRSpv5tZuF44
 ROVODrtv1bkmfKnCqor7i9seR8/UfvKKi8s6h/te2WXtc95P+kWC1r2+0z6ztChb9tfuurdfF
 ome+ZRyo2Txs02/9P9u8w73Llom5hY8Lb5XdkO2y+y1Wpo6/heuMTg2HL9uO/dL3pZ5H65tUW
 Ipzkg01GIuKk4EAArmy1gNAwAA
X-Env-Sender: prvs=319cf0971=Paul.Durrant@citrix.com
X-Msg-Ref: server-16.tower-27.messagelabs.com!1496400526!105441321!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.6 required=7.0 tests=HTML_90_100,HTML_MESSAGE,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 61507 invoked from network); 2 Jun 2017 10:48:46 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 2 Jun 2017 10:48:46 -0000
X-IronPort-AV: E=Sophos;i="5.39,284,1493683200"; d="scan'208,217";a="47113706"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: Introducing PV HID drivers
Thread-Index: AQHS24ZfRWTqt0XU9UmNxffHrCsB26IRYktg
Date: Fri, 2 Jun 2017 10:48:25 +0000
Message-ID: <5270ded43111423db037917729621d46@AMSPEX02CL03.citrite.net>
References: <b8e12cb4f146489381d85e1bfb1dbef2@AMSPEX02CL02.citrite.net>
In-Reply-To: <b8e12cb4f146489381d85e1bfb1dbef2@AMSPEX02CL02.citrite.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Subject: Re: [win-pv-devel] Introducing PV HID drivers
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0243734084568860389=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============0243734084568860389==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_5270ded43111423db037917729621d46AMSPEX02CL03citritenet_"

--_000_5270ded43111423db037917729621d46AMSPEX02CL03citritenet_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

RXhjZWxsZW50ISBJIHdpbGwgcnVuIHNvbWUgdGVzdHMgb24gdGhlc2UgaW1tZWRpYXRlbHkuDQoN
CkNoZWVycywNCg0KICBQYXVsDQoNCkZyb206IHdpbi1wdi1kZXZlbCBbbWFpbHRvOndpbi1wdi1k
ZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXSBPbiBCZWhhbGYgT2YgT3dlbiBTbWl0
aA0KU2VudDogMDIgSnVuZSAyMDE3IDEwOjU2DQpUbzogd2luLXB2LWRldmVsQGxpc3RzLnhlbnBy
b2plY3Qub3JnDQpTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBJbnRyb2R1Y2luZyBQViBISUQgZHJp
dmVycw0KDQoNCknigJl2ZSBiZWVuIHdvcmtpbmcgb24gYSBwYWlyIG9mIGRyaXZlcnMgdG8gc3Vw
cG9ydCB0aGUgUFYgbW91c2UgYW5kIGtleWJvYXJkIHByb3RvY29sIGV4cG9zZWQgYnkgdGhlIHB1
YmxpYy9pby9rYmRpZi5oIGhlYWRlci4NCldpdGggdGhlc2UgZHJpdmVycywgaXQgaXMgcG9zc2li
bGUgdG8gZGlzYWJsZSBRRU1V4oCZcyBVU0IgdGFibGV0IGRldmljZSBhbmQgVVNCIGVtdWxhdGlv
biwgc2F2aW5nIGEgbGFyZ2UgYW1vdW50IG9mIENQVSB0aW1lIHdoaWNoIGlzIHVzZWQgdG8gcG9s
bCBlbXVsYXRlZCBVU0IgZGV2aWNlcy4NCkR1cmluZyBkZXZlbG9wbWVudCwgSSBkaWQgbm90IGFk
ZCB0aGUg4oCcdXNiPXRydWXigJ0gYW5kIOKAnHVzYmRldmljZT1b4oCYdGFibGV04oCZXeKAnSBk
aXJlY3RpdmVzIHRvIHRoZSB4bCBjb25maWcgZmlsZXMsIHNvIGJlZm9yZSB0aGUgZHJpdmVycyBp
bnN0YWxsZWQsIEkgd2FzIHVzaW5nIGFuIGVtdWxhdGVkIHBzLzIga2V5Ym9hcmQgYW5kIHBzLzIg
KHJlbGF0aXZlKSBtb3VzZSwgd2hpY2ggd291bGQgaGF2ZSB0cmFja2luZyBpc3N1ZXMgbGVhZGlu
ZyB0byB0aGUgbG9jYWwgbW91c2UgcG9pbnRlciBub3QgbWF0Y2hpbmcgdGhlIG1vdmVtZW50cyBv
ciBwb3NpdGlvbiBvZiB0aGUgVk1zIG1vdXNlIHBvaW50ZXIgY29ycmVjdGx5LiBBZnRlciB0aGUg
ZHJpdmVycyBpbnN0YWxsZWQsIHRoZSBWTXMgbW91c2UgcG9pbnRlciB3b3VsZCBmb2xsb3cgdGhl
IGxvY2FsIG1vdXNlIHBvaW50ZXIgY29ycmVjdGx5Lg0KDQpUaGlzIHNwbGl0cyBpbnRvIDIgZHJp
dmVycyBhbmQgYSBzbWFsbCBjaGFuZ2UgdG8gUUVNVXMgYmFja2VuZDoNCg0KWGVuVmtiZCAoaHR0
cHM6Ly9naXRodWIuY29tL093ZW5TbWl0aC94ZW52a2JkKQ0KDQogICogICBCaW5kcyB0byBhIGRl
dmljZSBlbnVtZXJhdGVkIGJ5IFhlbkJ1cyB3aGVuIHRoZSBhcHByb3ByaWF0ZSBjaGFuZ2VzIGFy
ZSBtYWRlDQoNCiAgICAgKiAgIOKAnFZLQkTigJ0gbmVlZHMgdG8gYmUgYWRkZWQgdG8gdGhlIOKA
nFN1cHBvcnRlZENsYXNzZXPigJ0gUkVHX01VTFRJX1NaLCBlaXRoZXIgaW4gdGhlIElORiBvciBw
b3N0LWluc3RhbGxhdGlvbi4NCg0KVGhlc2UgY2hhbmdlcyBoYXZlIG5vdCBiZWVuIHBvc3RlZCBt
YWRlLCB0aG91Z2ggaXQgaXMgYSBtaW5vciBYZW5CdXMgaW5mIGZpbGUgY2hhbmdlIHdoZW4gdGhl
IGRyaXZlcnMgYXJlIGFjY2VwdGVkLg0KDQogICogICBFbnVtZXJhdGVzIGEgUERPIGZvciBlYWNo
IGVudHJ5IG1hZGUgdW5kZXIgeGVuc3RvcmUgZGV2aWNlL3ZrYmQNCg0KICAgICAqICAgVGhlIFBE
TyBpbmNsdWRlcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUga2JkaWYgaW50ZXJmYWNlLCBhbmQg
YWNjZXB0cyByZWxhdGl2ZSBvciBhYnNvbHV0ZSBtb3VzZSBwb3NpdGlvbiwgbW91c2UgYnV0dG9u
IGFuZCBrZXlib2FyZCBrZXlwcmVzcyBldmVudHMuDQogICAgICogICBFeHBvc2VzIGFuIGludGVy
ZmFjZSB0byBhIGRyaXZlciBhYm92ZSB0aGF0IGNvbnRhaW5zIHZhcmlvdXMgcXVlcnkgbWV0aG9k
cyBhcyB1c2VkIGJ5IHRoZSBISUQgY2xhc3MgZHJpdmVyLiBUaGUgaW50ZXJmYWNlIGhhcyBtZXRo
b2RzIHRvIHJldHJpZXZlIGRlc2NyaXB0b3JzLCBzdHJpbmdzIGFuZCBkYXRhIHJlcG9ydHMsIGFz
IHdlbGwgYXMgYSBjYWxsYmFjayB0aGF04oCZcyBjYWxsZWQgd2hlbiBuZXcgcmVwb3J0IGRhdGEg
aXMgYXZhaWxhYmxlLg0KICAgICAqICAgRnV0dXJlIGltcHJvdmVtZW50cyBtYXkgaW5jbHVkZSBh
ZGRpbmcgYSBtdWx0aS10b3VjaCBjYXBhYmxlIHRhYmxldC9kaWdpdGl6ZXIgZW5kcG9pbnQgYW5k
L29yIG92ZXJyaWRlcyB0byB0aGUgdmFyaW91cyBkZXNjcmlwdG9ycyAoYW5kIHZrYmQgcHJvdG9j
b2wgZXh0ZW5zaW9ucykgdG8gYWxsb3cgYW55IEhJRCBkZXZpY2UgdG8gYmUgcGFzc2VkIHRocm91
Z2guDQpYZW5IaWQgKGh0dHBzOi8vZ2l0aHViLmNvbS9Pd2VuU21pdGgveGVuaGlkKQ0KDQogICog
ICBYZW5IaWQgaXMgaW50ZW50aW9uYWxseSBrZXB0IGFzIHNpbXBsZSBhcyBwb3NzaWJsZS4NCiAg
KiAgIEJpbmRzIHRvIHRoZSBQRE8gb2YgWGVuVmtiZCBhbmQgaW50ZXJmYWNlcyB3aXRoIHRoZSBz
dGFuZGFyZCBNaWNyb3NvZnQgcHJvdmlkZWQgSElELUNsYXNzIGRyaXZlci4NCg0KICAgICAqICAg
UXVlcmllcyBmb3IgdGhlIGludGVyZmFjZSBleHBvc2VkIGJ5IFhlblZrYmQsIGFuZCBwYXNzZXMg
bW9zdCBvZiB0aGUgSElEIGNsYXNzIGNhbGxzIGRpcmVjdGx5IHRvIHRoZSBwcm90b2NvbCBkcml2
ZXIuIFRoZSBleGNlcHRpb24gaXMgdGhlIHJlYWQgcmVwb3J0IGNhbGwsIHdoaWNoIGlzIHF1ZXVl
ZCB1bnRpbCB0aGUgaW50ZXJmYWNlIGNhbGxiYWNrIGlzIGNhbGxlZCwgZHVlIHRvIHRoZSBkZXNp
Z24gb2YgdGhlIEhJRCBjbGFzcyBpbnRlcmZhY2UuDQpRRU1VIFBhdGNoDQoNCiAgKiAgIEEgc21h
bGwgY2hhbmdlIHRvIFFFTVVzIGltcGxlbWVudGF0aW9uIG9mIHRoZSB2a2JkIGJhY2tlbmQgaXMg
cmVxdWlyZWQuIEEgc2VwYXJhdGUgcGF0Y2ggc2VyaWVzIHdpbGwgYmUgc3VibWl0dGVkIHRvIFFF
TVUuIEnigJl2ZSBpbmNsdWRlZCB0aGUgYmFyZSBtaW5pbXVtIHBhdGNoIHRvIHRoaXMgbWFpbCwg
dGhvdWdoIHRoZSBwYXRjaCBzZXJpZXMgc3VibWl0dGVkIHRvIFFFTVUgd2lsbCBtYWtlIHRoZSBz
YW1lIGNoYW5nZXMsIGl0IHdpbGwgYmUgY2xlYW5lZCB1cC4NCg0KKGNvcHktcGFzdGUgZnJvbSBn
aXQgZm9ybWF0LXBhdGNoKQ0KRnJvbSBmNDljZTQ3NWM3MDYwNGQ1YmFkNmI4MzQxMmM4NWU3ZTFm
OGJiMTNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KRnJvbToNCkRhdGU6IFR1ZSwgMzAgTWF5
IDIwMTcgMTA6NDM6NDQgKzAwMDANClN1YmplY3Q6IFtQQVRDSF0gRml4IHhlbmZiIGZvciBQVi1I
SUQNCg0KU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPG1h
aWx0bzpvd2VuLnNtaXRoQGNpdHJpeC5jb20+Pg0KLS0tDQpody9kaXNwbGF5L3hlbmZiLmMgfCAz
MSArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tDQoxIGZpbGUgY2hhbmdlZCwgMjAgaW5z
ZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9ody9kaXNwbGF5L3hl
bmZiLmMgYi9ody9kaXNwbGF5L3hlbmZiLmMNCmluZGV4IDdhODcyN2EuLjQwNjBmYjMgMTAwNjQ0
DQotLS0gYS9ody9kaXNwbGF5L3hlbmZiLmMNCisrKyBiL2h3L2Rpc3BsYXkveGVuZmIuYw0KQEAg
LTMwNywxOCArMzA3LDIyIEBAIHN0YXRpYyB2b2lkIHhlbmZiX21vdXNlX2V2ZW50KHZvaWQgKm9w
YXF1ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50IGR4LCBpbnQgZHksIGludCBkeiwgaW50IGJ1dHRvbl9zdGF0ZSkNCnsNCiAgICAgc3Ry
dWN0IFhlbklucHV0ICp4ZW5mYiA9IG9wYXF1ZTsNCi0gICAgRGlzcGxheVN1cmZhY2UgKnN1cmZh
Y2UgPSBxZW11X2NvbnNvbGVfc3VyZmFjZSh4ZW5mYi0+Yy5jb24pOw0KLSAgICBpbnQgZHcgPSBz
dXJmYWNlX3dpZHRoKHN1cmZhY2UpOw0KLSAgICBpbnQgZGggPSBzdXJmYWNlX2hlaWdodChzdXJm
YWNlKTsNCi0gICAgaW50IGk7DQorICAgIGludCBpLCB4LCB5Ow0KKyAgICBpZiAoeGVuZmItPmMu
Y29uKSB7DQorICAgICAgICBEaXNwbGF5U3VyZmFjZSAqc3VyZmFjZSA9IHFlbXVfY29uc29sZV9z
dXJmYWNlKHhlbmZiLT5jLmNvbik7DQorICAgICAgICBpbnQgZHcgPSBzdXJmYWNlX3dpZHRoKHN1
cmZhY2UpOw0KKyAgICAgICAgaW50IGRoID0gc3VyZmFjZV9oZWlnaHQoc3VyZmFjZSk7DQorICAg
ICAgICB4ID0gZHggKiAoZGggLSAxKSAvIDB4N2ZmZjsNCisgICAgICAgIHkgPSBkeSAqIChkdyAt
IDEpIC8gMHg3ZmZmOw0KKyAgICB9IGVsc2Ugew0KKyAgICAgICAgeCA9IGR4Ow0KKyAgICAgICAg
eSA9IGR5Ow0KKyAgICB9DQogICAgIHRyYWNlX3hlbmZiX21vdXNlX2V2ZW50KG9wYXF1ZSwgZHgs
IGR5LCBkeiwgYnV0dG9uX3N0YXRlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5m
Yi0+YWJzX3BvaW50ZXJfd2FudGVkKTsNCiAgICAgaWYgKHhlbmZiLT5hYnNfcG9pbnRlcl93YW50
ZWQpDQotICAgICAgICAgICAgICB4ZW5mYl9zZW5kX3Bvc2l0aW9uKHhlbmZiLA0KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHggKiAoZHcgLSAxKSAv
IDB4N2ZmZiwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGR5ICogKGRoIC0gMSkgLyAweDdmZmYsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkeik7DQorICAgICAgICAgICAgIHhlbmZiX3NlbmRfcG9z
aXRpb24oeGVuZmIsIHgsIHksIGR6KTsNCiAgICAgZWxzZQ0KICAgICAgICAgICAgICAgeGVuZmJf
c2VuZF9tb3Rpb24oeGVuZmIsIGR4LCBkeSwgZHopOw0KQEAgLTM0NiwxNSArMzUwLDE4IEBAIHN0
YXRpYyBpbnQgaW5wdXRfaW5pdGlhbGlzZShzdHJ1Y3QgWGVuRGV2aWNlICp4ZW5kZXYpDQogICAg
IGludCByYzsNCiAgICAgaWYgKCFpbi0+Yy5jb24pIHsNCi0gICAgICAgIHhlbl9wdl9wcmludGYo
eGVuZGV2LCAxLCAiZHMgbm90IHNldCAoeWV0KVxuIik7DQotICAgICAgICByZXR1cm4gLTE7DQor
ICAgICAgICBjaGFyICp2ZmIgPSB4ZW5zdG9yZV9yZWFkX3N0cihOVUxMLCAiZGV2aWNlL3ZmYiIp
Ow0KKyAgICAgICAgaWYgKHZmYiAhPSBOVUxMKSB7DQorICAgICAgICAgICAgZnJlZSh2ZmIpOw0K
KyAgICAgICAgICAgIHhlbl9wdl9wcmludGYoeGVuZGV2LCAxLCAiZHMgbm90IHNldCAoeWV0KVxu
Iik7DQorICAgICAgICAgICAgcmV0dXJuIC0xOw0KKyAgICAgICAgfQ0KICAgICB9DQogICAgIHJj
ID0gY29tbW9uX2JpbmQoJmluLT5jKTsNCiAgICAgaWYgKHJjICE9IDApDQogICAgICAgICAgICAg
ICByZXR1cm4gcmM7DQotICAgIHFlbXVfYWRkX2tiZF9ldmVudF9oYW5kbGVyKHhlbmZiX2tleV9l
dmVudCwgaW4pOw0KICAgICByZXR1cm4gMDsNCn0NCkBAIC0zNjcsNiArMzc0LDcgQEAgc3RhdGlj
IHZvaWQgaW5wdXRfY29ubmVjdGVkKHN0cnVjdCBYZW5EZXZpY2UgKnhlbmRldikNCiAgICAgICAg
IGluLT5hYnNfcG9pbnRlcl93YW50ZWQgPSAwOw0KICAgICB9DQorICAgIHFlbXVfYWRkX2tiZF9l
dmVudF9oYW5kbGVyKHhlbmZiX2tleV9ldmVudCwgaW4pOw0KICAgICBpZiAoaW4tPnFtb3VzZSkg
ew0KICAgICAgICAgcWVtdV9yZW1vdmVfbW91c2VfZXZlbnRfaGFuZGxlcihpbi0+cW1vdXNlKTsN
CiAgICAgfQ0KQEAgLTM3NCw2ICszODIsNyBAQCBzdGF0aWMgdm9pZCBpbnB1dF9jb25uZWN0ZWQo
c3RydWN0IFhlbkRldmljZSAqeGVuZGV2KQ0KICAgICBpbi0+cW1vdXNlID0gcWVtdV9hZGRfbW91
c2VfZXZlbnRfaGFuZGxlcih4ZW5mYl9tb3VzZV9ldmVudCwgaW4sDQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4tPmFic19wb2ludGVyX3dhbnRlZCwNCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiWGVuIFBWRkIgTW91c2UiKTsNCisgICAgcWVtdV9hY3RpdmF0ZV9tb3VzZV9ldmVu
dF9oYW5kbGVyKGluLT5xbW91c2UpOw0KfQ0KIHN0YXRpYyB2b2lkIGlucHV0X2Rpc2Nvbm5lY3Qo
c3RydWN0IFhlbkRldmljZSAqeGVuZGV2KQ0KLS0NCjIuMS40DQoNCg==

--_000_5270ded43111423db037917729621d46AMSPEX02CL03citritenet_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IlByb2dJZCIg
Y29udGVudD0iV29yZC5Eb2N1bWVudCI+DQo8bWV0YSBuYW1lPSJHZW5lcmF0b3IiIGNvbnRlbnQ9
Ik1pY3Jvc29mdCBXb3JkIDE1Ij4NCjxtZXRhIG5hbWU9Ik9yaWdpbmF0b3IiIGNvbnRlbnQ9Ik1p
Y3Jvc29mdCBXb3JkIDE1Ij4NCjxsaW5rIHJlbD0iRmlsZS1MaXN0IiBocmVmPSJjaWQ6ZmlsZWxp
c3QueG1sQDAxRDJEQjk2LjI0QURFODQwIj48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOk9m
ZmljZURvY3VtZW50U2V0dGluZ3M+DQo8bzpBbGxvd1BORy8+DQo8bzpEb05vdFJlbHlPbkNTUy8+
DQo8L286T2ZmaWNlRG9jdW1lbnRTZXR0aW5ncz4NCjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYg
Z3RlIG1zbyA5XT48eG1sPg0KPHc6V29yZERvY3VtZW50Pg0KPHc6U3BlbGxpbmdTdGF0ZT5DbGVh
bjwvdzpTcGVsbGluZ1N0YXRlPg0KPHc6VHJhY2tNb3Zlcy8+DQo8dzpUcmFja0Zvcm1hdHRpbmcv
Pg0KPHc6RW52ZWxvcGVWaXMvPg0KPHc6VmFsaWRhdGVBZ2FpbnN0U2NoZW1hcy8+DQo8dzpTYXZl
SWZYTUxJbnZhbGlkPmZhbHNlPC93OlNhdmVJZlhNTEludmFsaWQ+DQo8dzpJZ25vcmVNaXhlZENv
bnRlbnQ+ZmFsc2U8L3c6SWdub3JlTWl4ZWRDb250ZW50Pg0KPHc6QWx3YXlzU2hvd1BsYWNlaG9s
ZGVyVGV4dD5mYWxzZTwvdzpBbHdheXNTaG93UGxhY2Vob2xkZXJUZXh0Pg0KPHc6RG9Ob3RQcm9t
b3RlUUYvPg0KPHc6TGlkVGhlbWVPdGhlcj5FTi1HQjwvdzpMaWRUaGVtZU90aGVyPg0KPHc6TGlk
VGhlbWVBc2lhbj5YLU5PTkU8L3c6TGlkVGhlbWVBc2lhbj4NCjx3OkxpZFRoZW1lQ29tcGxleFNj
cmlwdD5YLU5PTkU8L3c6TGlkVGhlbWVDb21wbGV4U2NyaXB0Pg0KPHc6Q29tcGF0aWJpbGl0eT4N
Cjx3OkRvTm90RXhwYW5kU2hpZnRSZXR1cm4vPg0KPHc6QnJlYWtXcmFwcGVkVGFibGVzLz4NCjx3
OlNwbGl0UGdCcmVha0FuZFBhcmFNYXJrLz4NCjx3OkVuYWJsZU9wZW5UeXBlS2VybmluZy8+DQo8
L3c6Q29tcGF0aWJpbGl0eT4NCjx3OkJyb3dzZXJMZXZlbD5NaWNyb3NvZnRJbnRlcm5ldEV4cGxv
cmVyNDwvdzpCcm93c2VyTGV2ZWw+DQo8bTptYXRoUHI+DQo8bTptYXRoRm9udCBtOnZhbD0iQ2Ft
YnJpYSBNYXRoIi8+DQo8bTpicmtCaW4gbTp2YWw9ImJlZm9yZSIvPg0KPG06YnJrQmluU3ViIG06
dmFsPSImIzQ1Oy0iLz4NCjxtOnNtYWxsRnJhYyBtOnZhbD0ib2ZmIi8+DQo8bTpkaXNwRGVmLz4N
CjxtOmxNYXJnaW4gbTp2YWw9IjAiLz4NCjxtOnJNYXJnaW4gbTp2YWw9IjAiLz4NCjxtOmRlZkpj
IG06dmFsPSJjZW50ZXJHcm91cCIvPg0KPG06d3JhcEluZGVudCBtOnZhbD0iMTQ0MCIvPg0KPG06
aW50TGltIG06dmFsPSJzdWJTdXAiLz4NCjxtOm5hcnlMaW0gbTp2YWw9InVuZE92ciIvPg0KPC9t
Om1hdGhQcj48L3c6V29yZERvY3VtZW50Pg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUg
bXNvIDldPjx4bWw+DQo8dzpMYXRlbnRTdHlsZXMgRGVmTG9ja2VkU3RhdGU9ImZhbHNlIiBEZWZV
bmhpZGVXaGVuVXNlZD0iZmFsc2UiIERlZlNlbWlIaWRkZW49ImZhbHNlIiBEZWZRRm9ybWF0PSJm
YWxzZSIgRGVmUHJpb3JpdHk9Ijk5IiBMYXRlbnRTdHlsZUNvdW50PSIzNzEiPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIwIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJO
b3JtYWwiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgUUZv
cm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjkiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVl
IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9
InRydWUiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgMyIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVu
VXNlZD0idHJ1ZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA0Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFNlbWlIaWRkZW49InRydWUiIFVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFkaW5nIDUiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgU2VtaUhpZGRlbj0idHJ1ZSIg
VW5oaWRlV2hlblVzZWQ9InRydWUiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImhlYWRpbmcgNiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI5IiBTZW1pSGlkZGVuPSJ0
cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iaGVhZGluZyA3
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjkiIFNlbWlIaWRk
ZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJoZWFk
aW5nIDgiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iOSIgU2Vt
aUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIFFGb3JtYXQ9InRydWUiIE5hbWU9
ImhlYWRpbmcgOSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49
InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJpbmRleCAxIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRy
dWUiIE5hbWU9ImluZGV4IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1p
SGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iaW5kZXggMyIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5V
c2VkPSJ0cnVlIiBOYW1lPSJpbmRleCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9ImluZGV4IDUi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhp
ZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iaW5kZXggNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJp
bmRleCA3Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1
ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9ImluZGV4IDgiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIg
TmFtZT0iaW5kZXggOSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSIzOSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9InRvYyAx
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBTZW1pSGlk
ZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0idG9jIDIiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIFNlbWlIaWRkZW49InRydWUiIFVu
aGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJ0b2MgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9
InRydWUiIE5hbWU9InRvYyA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjM5IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0i
dG9jIDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzkiIFNl
bWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJ0b2MgNiIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgU2VtaUhpZGRlbj0idHJ1
ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9InRvYyA3Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjM5IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVu
VXNlZD0idHJ1ZSIgTmFtZT0idG9jIDgiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iMzkiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBO
YW1lPSJ0b2MgOSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49
InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJOb3JtYWwgSW5kZW50Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVz
ZWQ9InRydWUiIE5hbWU9ImZvb3Rub3RlIHRleHQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iYW5u
b3RhdGlvbiB0ZXh0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRl
bj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9ImhlYWRlciIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0
cnVlIiBOYW1lPSJmb290ZXIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1p
SGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iaW5kZXggaGVhZGluZyIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzNSIgU2VtaUhpZGRl
bj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIFFGb3JtYXQ9InRydWUiIE5hbWU9ImNhcHRp
b24iLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBV
bmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0idGFibGUgb2YgZmlndXJlcyIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0
cnVlIiBOYW1lPSJlbnZlbG9wZSBhZGRyZXNzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9ImVudmVs
b3BlIHJldHVybiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49
InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJmb290bm90ZSByZWZlcmVuY2UiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVX
aGVuVXNlZD0idHJ1ZSIgTmFtZT0iYW5ub3RhdGlvbiByZWZlcmVuY2UiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1
ZSIgTmFtZT0ibGluZSBudW1iZXIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBT
ZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0icGFnZSBudW1iZXIi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhp
ZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iZW5kbm90ZSByZWZlcmVuY2UiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1
ZSIgTmFtZT0iZW5kbm90ZSB0ZXh0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
U2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9InRhYmxlIG9mIGF1
dGhvcml0aWVzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0i
dHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Im1hY3JvIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUi
IE5hbWU9InRvYSBoZWFkaW5nIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2Vt
aUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ikxpc3QiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNl
ZD0idHJ1ZSIgTmFtZT0iTGlzdCBCdWxsZXQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iTGlzdCBO
dW1iZXIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVl
IiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iTGlzdCAyIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5h
bWU9Ikxpc3QgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49
InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJMaXN0IDQiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1
ZSIgTmFtZT0iTGlzdCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhp
ZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ikxpc3QgQnVsbGV0IDIiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVX
aGVuVXNlZD0idHJ1ZSIgTmFtZT0iTGlzdCBCdWxsZXQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1l
PSJMaXN0IEJ1bGxldCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhp
ZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ikxpc3QgQnVsbGV0IDUiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVX
aGVuVXNlZD0idHJ1ZSIgTmFtZT0iTGlzdCBOdW1iZXIgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1l
PSJMaXN0IE51bWJlciAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhp
ZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ikxpc3QgTnVtYmVyIDQiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVX
aGVuVXNlZD0idHJ1ZSIgTmFtZT0iTGlzdCBOdW1iZXIgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxMCIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iVGl0bGUiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVX
aGVuVXNlZD0idHJ1ZSIgTmFtZT0iQ2xvc2luZyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJTaWdu
YXR1cmUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMSIgU2Vt
aUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkRlZmF1bHQgUGFyYWdy
YXBoIEZvbnQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0
cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iQm9keSBUZXh0Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRy
dWUiIE5hbWU9IkJvZHkgVGV4dCBJbmRlbnQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iTGlzdCBD
b250aW51ZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRy
dWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJMaXN0IENvbnRpbnVlIDIiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNl
ZD0idHJ1ZSIgTmFtZT0iTGlzdCBDb250aW51ZSAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9Ikxp
c3QgQ29udGludWUgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRk
ZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJMaXN0IENvbnRpbnVlIDUiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVX
aGVuVXNlZD0idHJ1ZSIgTmFtZT0iTWVzc2FnZSBIZWFkZXIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMTEiIFFGb3JtYXQ9InRydWUiIE5hbWU9IlN1YnRpdGxl
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5o
aWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlNhbHV0YXRpb24iLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFt
ZT0iRGF0ZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRy
dWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJCb2R5IFRleHQgRmlyc3QgSW5kZW50Ii8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRl
V2hlblVzZWQ9InRydWUiIE5hbWU9IkJvZHkgVGV4dCBGaXJzdCBJbmRlbnQgMiIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2Vk
PSJ0cnVlIiBOYW1lPSJOb3RlIEhlYWRpbmciLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iQm9keSBU
ZXh0IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVl
IiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iQm9keSBUZXh0IDMiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1
ZSIgTmFtZT0iQm9keSBUZXh0IEluZGVudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkJvZHkg
VGV4dCBJbmRlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRk
ZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJCbG9jayBUZXh0Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVz
ZWQ9InRydWUiIE5hbWU9Ikh5cGVybGluayIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJGb2xsb3dl
ZEh5cGVybGluayIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIy
MiIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3Ryb25nIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjIwIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJFbXBoYXNpcyIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdo
ZW5Vc2VkPSJ0cnVlIiBOYW1lPSJEb2N1bWVudCBNYXAiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0i
UGxhaW4gVGV4dCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49
InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJFLW1haWwgU2lnbmF0dXJlIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hl
blVzZWQ9InRydWUiIE5hbWU9IkhUTUwgVG9wIG9mIEZvcm0iLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFt
ZT0iSFRNTCBCb3R0b20gb2YgRm9ybSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJOb3JtYWwgKFdl
YikiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBV
bmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iSFRNTCBBY3JvbnltIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUi
IE5hbWU9IkhUTUwgQWRkcmVzcyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNl
bWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJIVE1MIENpdGUiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVX
aGVuVXNlZD0idHJ1ZSIgTmFtZT0iSFRNTCBDb2RlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkhU
TUwgRGVmaW5pdGlvbiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRk
ZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJIVE1MIEtleWJvYXJkIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hl
blVzZWQ9InRydWUiIE5hbWU9IkhUTUwgUHJlZm9ybWF0dGVkIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5h
bWU9IkhUTUwgU2FtcGxlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhp
ZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkhUTUwgVHlwZXdyaXRlciIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJIVE1MIFZhcmlhYmxlIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5h
bWU9Ik5vcm1hbCBUYWJsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlI
aWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJhbm5vdGF0aW9uIHN1Ympl
Y3QiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBV
bmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iTm8gTGlzdCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1l
PSJPdXRsaW5lIExpc3QgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlI
aWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJPdXRsaW5lIExpc3QgMiIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJPdXRsaW5lIExpc3QgMyIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBO
YW1lPSJUYWJsZSBTaW1wbGUgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNl
bWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSBTaW1wbGUg
MiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVu
aGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSBTaW1wbGUgMyIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVl
IiBOYW1lPSJUYWJsZSBDbGFzc2ljIDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgQ2xh
c3NpYyAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1
ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIENsYXNzaWMgMyIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdoZW5Vc2Vk
PSJ0cnVlIiBOYW1lPSJUYWJsZSBDbGFzc2ljIDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFi
bGUgQ29sb3JmdWwgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRk
ZW49InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSBDb2xvcmZ1bCAyIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRl
V2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIENvbG9yZnVsIDMiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIg
TmFtZT0iVGFibGUgQ29sdW1ucyAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
U2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIENvbHVt
bnMgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUi
IFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSBDb2x1bW5zIDMiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0i
dHJ1ZSIgTmFtZT0iVGFibGUgQ29sdW1ucyA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxl
IENvbHVtbnMgNSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49
InRydWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSBHcmlkIDEiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNl
ZD0idHJ1ZSIgTmFtZT0iVGFibGUgR3JpZCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxl
IEdyaWQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRy
dWUiIFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSBHcmlkIDQiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0i
dHJ1ZSIgTmFtZT0iVGFibGUgR3JpZCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIEdy
aWQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUi
IFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSBHcmlkIDciLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1
ZSIgTmFtZT0iVGFibGUgR3JpZCA4Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
U2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIExpc3Qg
MSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVu
aGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSBMaXN0IDIiLz4NCjx3OkxzZEV4Y2VwdGlv
biBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIg
TmFtZT0iVGFibGUgTGlzdCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2Vt
aUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIExpc3QgNCIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlk
ZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSBMaXN0IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBM
b2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFt
ZT0iVGFibGUgTGlzdCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhp
ZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIExpc3QgNyIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIFVuaGlkZVdo
ZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSBMaXN0IDgiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0i
VGFibGUgM0QgZWZmZWN0cyAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2Vt
aUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIDNEIGVmZmVj
dHMgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUi
IFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSAzRCBlZmZlY3RzIDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlkZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNl
ZD0idHJ1ZSIgTmFtZT0iVGFibGUgQ29udGVtcG9yYXJ5Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9
IlRhYmxlIEVsZWdhbnQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBTZW1pSGlk
ZGVuPSJ0cnVlIiBVbmhpZGVXaGVuVXNlZD0idHJ1ZSIgTmFtZT0iVGFibGUgUHJvZmVzc2lvbmFs
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5o
aWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIFN1YnRsZSAxIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUi
IE5hbWU9IlRhYmxlIFN1YnRsZSAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
U2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIFdlYiAx
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5o
aWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IlRhYmxlIFdlYiAyIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5h
bWU9IlRhYmxlIFdlYiAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgU2VtaUhp
ZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkJhbGxvb24gVGV4dCIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIgTmFtZT0iVGFibGUg
R3JpZCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUi
IFVuaGlkZVdoZW5Vc2VkPSJ0cnVlIiBOYW1lPSJUYWJsZSBUaGVtZSIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFNlbWlIaWRkZW49InRydWUiIE5hbWU9IlBsYWNlaG9sZGVyIFRl
eHQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMSIgUUZvcm1h
dD0idHJ1ZSIgTmFtZT0iTm8gU3BhY2luZyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI2MCIgTmFtZT0iTGlnaHQgU2hhZGluZyIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgTmFtZT0iTGlnaHQgTGlzdCIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgTmFtZT0iTGlnaHQgR3JpZCIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MyIgTmFtZT0iTWVk
aXVtIFNoYWRpbmcgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI2NCIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2NSIgTmFtZT0iTWVkaXVtIExpc3QgMSIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgTmFtZT0iTWVkaXVtIExpc3QgMiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgTmFtZT0iTWVkaXVt
IEdyaWQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIg
TmFtZT0iTWVkaXVtIEdyaWQgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI2OSIgTmFtZT0iTWVkaXVtIEdyaWQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgTmFtZT0iRGFyayBMaXN0Ii8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBOYW1lPSJDb2xv
cmZ1bCBMaXN0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9Ijcz
IiBOYW1lPSJDb2xvcmZ1bCBHcmlkIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjYwIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBOYW1lPSJMaWdodCBMaXN0IEFjY2Vu
dCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBOYW1l
PSJMaWdodCBHcmlkIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjYzIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCAxIi8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBOYW1lPSJNZWRpdW0gU2hhZGlu
ZyAyIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjY1IiBOYW1lPSJNZWRpdW0gTGlzdCAxIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgU2VtaUhpZGRlbj0idHJ1ZSIgTmFtZT0iUmV2aXNpb24iLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iMzQiIFFGb3JtYXQ9InRydWUiIE5hbWU9
Ikxpc3QgUGFyYWdyYXBoIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjI5IiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJRdW90ZSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMCIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iSW50ZW5zZSBR
dW90ZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NiIgTmFt
ZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI2NyIgTmFtZT0iTWVkaXVtIEdyaWQgMSBBY2NlbnQgMSIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OCIgTmFtZT0iTWVkaXVtIEdyaWQg
MiBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2
OSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgTmFtZT0iRGFyayBMaXN0IEFjY2VudCAxIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcxIiBOYW1lPSJDb2xvcmZ1bCBT
aGFkaW5nIEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjcyIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2VudCAxIi8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBOYW1lPSJDb2xvcmZ1bCBHcmlkIEFjY2VudCAx
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYwIiBOYW1lPSJM
aWdodCBTaGFkaW5nIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjYxIiBOYW1lPSJMaWdodCBMaXN0IEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBOYW1lPSJMaWdodCBHcmlkIEFjY2VudCAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYzIiBOYW1lPSJN
ZWRpdW0gU2hhZGluZyAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjY0IiBOYW1lPSJNZWRpdW0gU2hhZGluZyAyIEFjY2VudCAyIi8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY1IiBOYW1lPSJNZWRpdW0gTGlz
dCAxIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjY2IiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBOYW1lPSJNZWRpdW0gR3JpZCAxIEFjY2VudCAyIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY4IiBOYW1lPSJNZWRp
dW0gR3JpZCAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjY5IiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBOYW1lPSJEYXJrIExpc3QgQWNjZW50IDIi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzEiIE5hbWU9IkNv
bG9yZnVsIFNoYWRpbmcgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNzIiIE5hbWU9IkNvbG9yZnVsIExpc3QgQWNjZW50IDIiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzMiIE5hbWU9IkNvbG9yZnVsIEdyaWQg
QWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAi
IE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNjEiIE5hbWU9IkxpZ2h0IExpc3QgQWNjZW50IDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjIiIE5hbWU9IkxpZ2h0IEdyaWQg
QWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMi
IE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDIgQWNjZW50IDMi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjUiIE5hbWU9Ik1l
ZGl1bSBMaXN0IDEgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNjYiIE5hbWU9Ik1lZGl1bSBMaXN0IDIgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjciIE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNj
ZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjgiIE5h
bWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDMiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNjkiIE5hbWU9Ik1lZGl1bSBHcmlkIDMgQWNjZW50IDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzAiIE5hbWU9IkRhcmsgTGlzdCBB
Y2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIg
TmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgTmFtZT0iQ29sb3JmdWwgTGlzdCBBY2NlbnQgMyIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MyIgTmFtZT0iQ29sb3Jm
dWwgR3JpZCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2MCIgTmFtZT0iTGlnaHQgU2hhZGluZyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9u
IExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MSIgTmFtZT0iTGlnaHQgTGlzdCBBY2NlbnQgNCIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2MiIgTmFtZT0iTGln
aHQgR3JpZCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI2MyIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NCIgTmFtZT0iTWVkaXVtIFNoYWRpbmcgMiBB
Y2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NSIg
TmFtZT0iTWVkaXVtIExpc3QgMSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI2NiIgTmFtZT0iTWVkaXVtIExpc3QgMiBBY2NlbnQgNCIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2NyIgTmFtZT0iTWVkaXVtIEdy
aWQgMSBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI2OCIgTmFtZT0iTWVkaXVtIEdyaWQgMiBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI2OSIgTmFtZT0iTWVkaXVtIEdyaWQgMyBBY2NlbnQgNCIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MCIgTmFtZT0iRGFy
ayBMaXN0IEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjcxIiBOYW1lPSJDb2xvcmZ1bCBTaGFkaW5nIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcyIiBOYW1lPSJDb2xvcmZ1bCBMaXN0IEFjY2Vu
dCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjczIiBOYW1l
PSJDb2xvcmZ1bCBHcmlkIEFjY2VudCA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjYwIiBOYW1lPSJMaWdodCBTaGFkaW5nIEFjY2VudCA1Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYxIiBOYW1lPSJMaWdodCBMaXN0IEFj
Y2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjYyIiBO
YW1lPSJMaWdodCBHcmlkIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjYzIiBOYW1lPSJNZWRpdW0gU2hhZGluZyAxIEFjY2VudCA1Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY0IiBOYW1lPSJNZWRpdW0gU2hh
ZGluZyAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjY1IiBOYW1lPSJNZWRpdW0gTGlzdCAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24g
TG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY2IiBOYW1lPSJNZWRpdW0gTGlzdCAyIEFjY2VudCA1
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY3IiBOYW1lPSJN
ZWRpdW0gR3JpZCAxIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjY4IiBOYW1lPSJNZWRpdW0gR3JpZCAyIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjY5IiBOYW1lPSJNZWRpdW0gR3JpZCAzIEFj
Y2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjcwIiBO
YW1lPSJEYXJrIExpc3QgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNzEiIE5hbWU9IkNvbG9yZnVsIFNoYWRpbmcgQWNjZW50IDUiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNzIiIE5hbWU9IkNvbG9yZnVsIExp
c3QgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0i
NzMiIE5hbWU9IkNvbG9yZnVsIEdyaWQgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjAiIE5hbWU9IkxpZ2h0IFNoYWRpbmcgQWNjZW50IDYiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjEiIE5hbWU9IkxpZ2h0
IExpc3QgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNjIiIE5hbWU9IkxpZ2h0IEdyaWQgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjMiIE5hbWU9Ik1lZGl1bSBTaGFkaW5nIDEgQWNjZW50IDYi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjQiIE5hbWU9Ik1l
ZGl1bSBTaGFkaW5nIDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNjUiIE5hbWU9Ik1lZGl1bSBMaXN0IDEgQWNjZW50IDYiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjYiIE5hbWU9Ik1lZGl1bSBMaXN0IDIg
QWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjci
IE5hbWU9Ik1lZGl1bSBHcmlkIDEgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNjgiIE5hbWU9Ik1lZGl1bSBHcmlkIDIgQWNjZW50IDYiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNjkiIE5hbWU9Ik1lZGl1bSBH
cmlkIDMgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNzAiIE5hbWU9IkRhcmsgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI3MSIgTmFtZT0iQ29sb3JmdWwgU2hhZGluZyBBY2NlbnQgNiIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI3MiIgTmFtZT0iQ29s
b3JmdWwgTGlzdCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI3MyIgTmFtZT0iQ29sb3JmdWwgR3JpZCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0
aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIxOSIgUUZvcm1hdD0idHJ1ZSIgTmFtZT0iU3Vi
dGxlIEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjIxIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJJbnRlbnNlIEVtcGhhc2lzIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjMxIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJT
dWJ0bGUgUmVmZXJlbmNlIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjMyIiBRRm9ybWF0PSJ0cnVlIiBOYW1lPSJJbnRlbnNlIFJlZmVyZW5jZSIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzMyIgUUZvcm1hdD0idHJ1ZSIgTmFt
ZT0iQm9vayBUaXRsZSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSIzNyIgU2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIE5hbWU9IkJpYmxp
b2dyYXBoeSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSIzOSIg
U2VtaUhpZGRlbj0idHJ1ZSIgVW5oaWRlV2hlblVzZWQ9InRydWUiIFFGb3JtYXQ9InRydWUiIE5h
bWU9IlRPQyBIZWFkaW5nIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjQxIiBOYW1lPSJQbGFpbiBUYWJsZSAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjQyIiBOYW1lPSJQbGFpbiBUYWJsZSAyIi8+DQo8dzpMc2RFeGNlcHRp
b24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQzIiBOYW1lPSJQbGFpbiBUYWJsZSAzIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ0IiBOYW1lPSJQbGFpbiBU
YWJsZSA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ1IiBO
YW1lPSJQbGFpbiBUYWJsZSA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjQwIiBOYW1lPSJHcmlkIFRhYmxlIExpZ2h0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9j
a2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ2IiBOYW1lPSJHcmlkIFRhYmxlIDEgTGlnaHQiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDciIE5hbWU9IkdyaWQgVGFi
bGUgMiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0OCIgTmFt
ZT0iR3JpZCBUYWJsZSAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjQ5IiBOYW1lPSJHcmlkIFRhYmxlIDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNTAiIE5hbWU9IkdyaWQgVGFibGUgNSBEYXJrIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUxIiBOYW1lPSJHcmlkIFRhYmxlIDYgQ29s
b3JmdWwiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTIiIE5h
bWU9IkdyaWQgVGFibGUgNyBDb2xvcmZ1bCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI0NiIgTmFtZT0iR3JpZCBUYWJsZSAxIExpZ2h0IEFjY2VudCAxIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ3IiBOYW1lPSJHcmlkIFRh
YmxlIDIgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNDgiIE5hbWU9IkdyaWQgVGFibGUgMyBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0OSIgTmFtZT0iR3JpZCBUYWJsZSA0IEFjY2VudCAxIi8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUwIiBOYW1lPSJHcmlk
IFRhYmxlIDUgRGFyayBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI1MSIgTmFtZT0iR3JpZCBUYWJsZSA2IENvbG9yZnVsIEFjY2VudCAxIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUyIiBOYW1lPSJHcmlkIFRh
YmxlIDcgQ29sb3JmdWwgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNDYiIE5hbWU9IkdyaWQgVGFibGUgMSBMaWdodCBBY2NlbnQgMiIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0NyIgTmFtZT0iR3JpZCBUYWJs
ZSAyIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjQ4IiBOYW1lPSJHcmlkIFRhYmxlIDMgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDkiIE5hbWU9IkdyaWQgVGFibGUgNCBBY2NlbnQgMiIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MCIgTmFtZT0iR3JpZCBU
YWJsZSA1IERhcmsgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQ
cmlvcml0eT0iNTEiIE5hbWU9IkdyaWQgVGFibGUgNiBDb2xvcmZ1bCBBY2NlbnQgMiIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MiIgTmFtZT0iR3JpZCBUYWJs
ZSA3IENvbG9yZnVsIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjQ2IiBOYW1lPSJHcmlkIFRhYmxlIDEgTGlnaHQgQWNjZW50IDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDciIE5hbWU9IkdyaWQgVGFibGUg
MiBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0
OCIgTmFtZT0iR3JpZCBUYWJsZSAzIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjQ5IiBOYW1lPSJHcmlkIFRhYmxlIDQgQWNjZW50IDMiLz4NCjx3
OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTAiIE5hbWU9IkdyaWQgVGFi
bGUgNSBEYXJrIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJp
b3JpdHk9IjUxIiBOYW1lPSJHcmlkIFRhYmxlIDYgQ29sb3JmdWwgQWNjZW50IDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTIiIE5hbWU9IkdyaWQgVGFibGUg
NyBDb2xvcmZ1bCBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFBy
aW9yaXR5PSI0NiIgTmFtZT0iR3JpZCBUYWJsZSAxIExpZ2h0IEFjY2VudCA0Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ3IiBOYW1lPSJHcmlkIFRhYmxlIDIg
QWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDgi
IE5hbWU9IkdyaWQgVGFibGUgMyBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI0OSIgTmFtZT0iR3JpZCBUYWJsZSA0IEFjY2VudCA0Ii8+DQo8dzpM
c2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUwIiBOYW1lPSJHcmlkIFRhYmxl
IDUgRGFyayBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9y
aXR5PSI1MSIgTmFtZT0iR3JpZCBUYWJsZSA2IENvbG9yZnVsIEFjY2VudCA0Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUyIiBOYW1lPSJHcmlkIFRhYmxlIDcg
Q29sb3JmdWwgQWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlv
cml0eT0iNDYiIE5hbWU9IkdyaWQgVGFibGUgMSBMaWdodCBBY2NlbnQgNSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0NyIgTmFtZT0iR3JpZCBUYWJsZSAyIEFj
Y2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ4IiBO
YW1lPSJHcmlkIFRhYmxlIDMgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNDkiIE5hbWU9IkdyaWQgVGFibGUgNCBBY2NlbnQgNSIvPg0KPHc6THNk
RXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MCIgTmFtZT0iR3JpZCBUYWJsZSA1
IERhcmsgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNTEiIE5hbWU9IkdyaWQgVGFibGUgNiBDb2xvcmZ1bCBBY2NlbnQgNSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MiIgTmFtZT0iR3JpZCBUYWJsZSA3IENv
bG9yZnVsIEFjY2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3Jp
dHk9IjQ2IiBOYW1lPSJHcmlkIFRhYmxlIDEgTGlnaHQgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDciIE5hbWU9IkdyaWQgVGFibGUgMiBBY2Nl
bnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0OCIgTmFt
ZT0iR3JpZCBUYWJsZSAzIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjQ5IiBOYW1lPSJHcmlkIFRhYmxlIDQgQWNjZW50IDYiLz4NCjx3OkxzZEV4
Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTAiIE5hbWU9IkdyaWQgVGFibGUgNSBE
YXJrIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjUxIiBOYW1lPSJHcmlkIFRhYmxlIDYgQ29sb3JmdWwgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTIiIE5hbWU9IkdyaWQgVGFibGUgNyBDb2xv
cmZ1bCBBY2NlbnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5
PSI0NiIgTmFtZT0iTGlzdCBUYWJsZSAxIExpZ2h0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjQ3IiBOYW1lPSJMaXN0IFRhYmxlIDIiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDgiIE5hbWU9Ikxpc3QgVGFibGUgMyIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0OSIgTmFtZT0iTGlzdCBU
YWJsZSA0Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUwIiBO
YW1lPSJMaXN0IFRhYmxlIDUgRGFyayIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2Ui
IFByaW9yaXR5PSI1MSIgTmFtZT0iTGlzdCBUYWJsZSA2IENvbG9yZnVsIi8+DQo8dzpMc2RFeGNl
cHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUyIiBOYW1lPSJMaXN0IFRhYmxlIDcgQ29s
b3JmdWwiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDYiIE5h
bWU9Ikxpc3QgVGFibGUgMSBMaWdodCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI0NyIgTmFtZT0iTGlzdCBUYWJsZSAyIEFjY2VudCAxIi8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ4IiBOYW1lPSJMaXN0IFRh
YmxlIDMgQWNjZW50IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0
eT0iNDkiIE5hbWU9Ikxpc3QgVGFibGUgNCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExv
Y2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MCIgTmFtZT0iTGlzdCBUYWJsZSA1IERhcmsgQWNjZW50
IDEiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTEiIE5hbWU9
Ikxpc3QgVGFibGUgNiBDb2xvcmZ1bCBBY2NlbnQgMSIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tl
ZD0iZmFsc2UiIFByaW9yaXR5PSI1MiIgTmFtZT0iTGlzdCBUYWJsZSA3IENvbG9yZnVsIEFjY2Vu
dCAxIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ2IiBOYW1l
PSJMaXN0IFRhYmxlIDEgTGlnaHQgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNDciIE5hbWU9Ikxpc3QgVGFibGUgMiBBY2NlbnQgMiIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0OCIgTmFtZT0iTGlzdCBUYWJs
ZSAzIEFjY2VudCAyIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9
IjQ5IiBOYW1lPSJMaXN0IFRhYmxlIDQgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2Nr
ZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTAiIE5hbWU9Ikxpc3QgVGFibGUgNSBEYXJrIEFjY2VudCAy
Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUxIiBOYW1lPSJM
aXN0IFRhYmxlIDYgQ29sb3JmdWwgQWNjZW50IDIiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9
ImZhbHNlIiBQcmlvcml0eT0iNTIiIE5hbWU9Ikxpc3QgVGFibGUgNyBDb2xvcmZ1bCBBY2NlbnQg
MiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0NiIgTmFtZT0i
TGlzdCBUYWJsZSAxIExpZ2h0IEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjQ3IiBOYW1lPSJMaXN0IFRhYmxlIDIgQWNjZW50IDMiLz4NCjx3Okxz
ZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDgiIE5hbWU9Ikxpc3QgVGFibGUg
MyBBY2NlbnQgMyIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0
OSIgTmFtZT0iTGlzdCBUYWJsZSA0IEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2Vk
PSJmYWxzZSIgUHJpb3JpdHk9IjUwIiBOYW1lPSJMaXN0IFRhYmxlIDUgRGFyayBBY2NlbnQgMyIv
Pg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MSIgTmFtZT0iTGlz
dCBUYWJsZSA2IENvbG9yZnVsIEFjY2VudCAzIi8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJm
YWxzZSIgUHJpb3JpdHk9IjUyIiBOYW1lPSJMaXN0IFRhYmxlIDcgQ29sb3JmdWwgQWNjZW50IDMi
Lz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDYiIE5hbWU9Ikxp
c3QgVGFibGUgMSBMaWdodCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI0NyIgTmFtZT0iTGlzdCBUYWJsZSAyIEFjY2VudCA0Ii8+DQo8dzpMc2RF
eGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ4IiBOYW1lPSJMaXN0IFRhYmxlIDMg
QWNjZW50IDQiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDki
IE5hbWU9Ikxpc3QgVGFibGUgNCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0i
ZmFsc2UiIFByaW9yaXR5PSI1MCIgTmFtZT0iTGlzdCBUYWJsZSA1IERhcmsgQWNjZW50IDQiLz4N
Cjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNTEiIE5hbWU9Ikxpc3Qg
VGFibGUgNiBDb2xvcmZ1bCBBY2NlbnQgNCIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFs
c2UiIFByaW9yaXR5PSI1MiIgTmFtZT0iTGlzdCBUYWJsZSA3IENvbG9yZnVsIEFjY2VudCA0Ii8+
DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ2IiBOYW1lPSJMaXN0
IFRhYmxlIDEgTGlnaHQgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNDciIE5hbWU9Ikxpc3QgVGFibGUgMiBBY2NlbnQgNSIvPg0KPHc6THNkRXhj
ZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0OCIgTmFtZT0iTGlzdCBUYWJsZSAzIEFj
Y2VudCA1Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjQ5IiBO
YW1lPSJMaXN0IFRhYmxlIDQgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZh
bHNlIiBQcmlvcml0eT0iNTAiIE5hbWU9Ikxpc3QgVGFibGUgNSBEYXJrIEFjY2VudCA1Ii8+DQo8
dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIgUHJpb3JpdHk9IjUxIiBOYW1lPSJMaXN0IFRh
YmxlIDYgQ29sb3JmdWwgQWNjZW50IDUiLz4NCjx3OkxzZEV4Y2VwdGlvbiBMb2NrZWQ9ImZhbHNl
IiBQcmlvcml0eT0iNTIiIE5hbWU9Ikxpc3QgVGFibGUgNyBDb2xvcmZ1bCBBY2NlbnQgNSIvPg0K
PHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0NiIgTmFtZT0iTGlzdCBU
YWJsZSAxIExpZ2h0IEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjQ3IiBOYW1lPSJMaXN0IFRhYmxlIDIgQWNjZW50IDYiLz4NCjx3OkxzZEV4Y2Vw
dGlvbiBMb2NrZWQ9ImZhbHNlIiBQcmlvcml0eT0iNDgiIE5hbWU9Ikxpc3QgVGFibGUgMyBBY2Nl
bnQgNiIvPg0KPHc6THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI0OSIgTmFt
ZT0iTGlzdCBUYWJsZSA0IEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxz
ZSIgUHJpb3JpdHk9IjUwIiBOYW1lPSJMaXN0IFRhYmxlIDUgRGFyayBBY2NlbnQgNiIvPg0KPHc6
THNkRXhjZXB0aW9uIExvY2tlZD0iZmFsc2UiIFByaW9yaXR5PSI1MSIgTmFtZT0iTGlzdCBUYWJs
ZSA2IENvbG9yZnVsIEFjY2VudCA2Ii8+DQo8dzpMc2RFeGNlcHRpb24gTG9ja2VkPSJmYWxzZSIg
UHJpb3JpdHk9IjUyIiBOYW1lPSJMaXN0IFRhYmxlIDcgQ29sb3JmdWwgQWNjZW50IDYiLz4NCjwv
dzpMYXRlbnRTdHlsZXM+DQo8L3htbD48IVtlbmRpZl0tLT48c3R5bGU+PCEtLQ0KLyogRm9udCBE
ZWZpbml0aW9ucyAqLw0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpXaW5nZGluZ3M7DQoJcGFu
b3NlLTE6NSAwIDAgMCAwIDAgMCAwIDAgMDsNCgltc28tZm9udC1jaGFyc2V0OjI7DQoJbXNvLWdl
bmVyaWMtZm9udC1mYW1pbHk6YXV0bzsNCgltc28tZm9udC1waXRjaDp2YXJpYWJsZTsNCgltc28t
Zm9udC1zaWduYXR1cmU6MCAyNjg0MzU0NTYgMCAwIC0yMTQ3NDgzNjQ4IDA7fQ0KQGZvbnQtZmFj
ZQ0KCXtmb250LWZhbWlseToiQ2FtYnJpYSBNYXRoIjsNCglwYW5vc2UtMToyIDQgNSAzIDUgNCA2
IDMgMiA0Ow0KCW1zby1mb250LWNoYXJzZXQ6MTsNCgltc28tZ2VuZXJpYy1mb250LWZhbWlseTpy
b21hbjsNCgltc28tZm9udC1waXRjaDp2YXJpYWJsZTsNCgltc28tZm9udC1zaWduYXR1cmU6LTUz
Njg3MDE0NSAxMTA3MzA1NzI3IDAgMCA0MTUgMDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5
OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAyIDQ7DQoJbXNvLWZvbnQtYWx0
OiJBcmlhbCBSb3VuZGVkIE1UIEJvbGQiOw0KCW1zby1mb250LWNoYXJzZXQ6MDsNCgltc28tZ2Vu
ZXJpYy1mb250LWZhbWlseTpzd2lzczsNCgltc28tZm9udC1waXRjaDp2YXJpYWJsZTsNCgltc28t
Zm9udC1zaWduYXR1cmU6LTUzNjg1OTkwNSAtMTA3MzczMjQ4NSA5IDAgNTExIDA7fQ0KLyogU3R5
bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3Jt
YWwNCgl7bXNvLXN0eWxlLXVuaGlkZTpubzsNCgltc28tc3R5bGUtcWZvcm1hdDp5ZXM7DQoJbXNv
LXN0eWxlLXBhcmVudDoiIjsNCgltYXJnaW46MGNtOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsN
Cgltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250
LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgltc28tZmFyZWFzdC1mb250LWZhbWlseTpD
YWxpYnJpO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5
Ojk5Ow0KCWNvbG9yOiMwNTYzQzE7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsNCgl0ZXh0
LXVuZGVybGluZTpzaW5nbGU7fQ0KYTp2aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2Vk
DQoJe21zby1zdHlsZS1ub3Nob3c6eWVzOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xv
cjojOTU0RjcyOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7DQoJdGV4dC11bmRlcmxpbmU6
c2luZ2xlO30NCnAuTXNvTGlzdFBhcmFncmFwaCwgbGkuTXNvTGlzdFBhcmFncmFwaCwgZGl2Lk1z
b0xpc3RQYXJhZ3JhcGgNCgl7bXNvLXN0eWxlLXByaW9yaXR5OjM0Ow0KCW1zby1zdHlsZS11bmhp
ZGU6bm87DQoJbXNvLXN0eWxlLXFmb3JtYXQ6eWVzOw0KCW1hcmdpbi10b3A6MGNtOw0KCW1hcmdp
bi1yaWdodDowY207DQoJbWFyZ2luLWJvdHRvbTowY207DQoJbWFyZ2luLWxlZnQ6MzYuMHB0Ow0K
CW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCgltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47DQoJ
Zm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCglt
c28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJpO30NCnAubXNvbm9ybWFsMCwgbGkubXNvbm9y
bWFsMCwgZGl2Lm1zb25vcm1hbDANCgl7bXNvLXN0eWxlLW5hbWU6bXNvbm9ybWFsOw0KCW1zby1z
dHlsZS11bmhpZGU6bm87DQoJbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87DQoJbWFyZ2luLXJpZ2h0
OjBjbTsNCgltc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsNCgltYXJnaW4tbGVmdDowY207DQoJ
bXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOw0KCWZvbnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1m
YW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsc2VyaWY7DQoJbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6
Q2FsaWJyaTt9DQpzcGFuLkVtYWlsU3R5bGUxOQ0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1y
ZXBseTsNCgltc28tc3R5bGUtbm9zaG93OnllczsNCgltc28tc3R5bGUtdW5oaWRlOm5vOw0KCW1z
by1hbnNpLWZvbnQtc2l6ZToxMS4wcHQ7DQoJbXNvLWJpZGktZm9udC1zaXplOjExLjBwdDsNCglm
b250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgltc28tYXNjaWktZm9udC1mYW1pbHk6
Q2FsaWJyaTsNCgltc28tZmFyZWFzdC1mb250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1oYW5zaS1m
b250LWZhbWlseTpDYWxpYnJpOw0KCW1zby1iaWRpLWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9t
YW4iOw0KCWNvbG9yOiMxRjQ5N0Q7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6
ZXhwb3J0LW9ubHk7DQoJbXNvLWRlZmF1bHQtcHJvcHM6eWVzOw0KCWZvbnQtc2l6ZToxMC4wcHQ7
DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCgltc28tYmlkaS1mb250LXNpemU6MTAuMHB0
O30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0KCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsNCgltYXJnaW46
NzIuMHB0IDcyLjBwdCA3Mi4wcHQgNzIuMHB0Ow0KCW1zby1oZWFkZXItbWFyZ2luOjM2LjBwdDsN
Cgltc28tZm9vdGVyLW1hcmdpbjozNi4wcHQ7DQoJbXNvLXBhcGVyLXNvdXJjZTowO30NCmRpdi5X
b3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLyogTGlzdCBEZWZpbml0aW9ucyAq
Lw0KQGxpc3QgbDANCgl7bXNvLWxpc3QtaWQ6MTY1NDgwOTM0Ow0KCW1zby1saXN0LXRlbXBsYXRl
LWlkczotNjY2OTk3OTYyO30NCkBsaXN0IGwwOmxldmVsMQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZv
cm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDoz
Ni4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0x
OC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7
fQ0KQGxpc3QgbDA6bGV2ZWwyDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCglt
c28tbGV2ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDo3Mi4wcHQ7DQoJbXNvLWxldmVs
LW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2kt
Zm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseToiQ291cmllciBOZXciOw0KCW1zby1iaWRp
LWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iO30NCkBsaXN0IGwwOmxldmVsMw0KCXttc28t
bGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1s
ZXZlbC10YWItc3RvcDoxMDguMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsN
Cgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9u
dC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwwOmxldmVsNA0KCXttc28tbGV2ZWwtbnVtYmVyLWZv
cm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDox
NDQuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDot
MTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9s
O30NCkBsaXN0IGwwOmxldmVsNQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJ
bXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDoxODAuMHB0Ow0KCW1zby1s
ZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1h
bnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwwOmxl
dmVsNg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6
74K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDoyMTYuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9z
aXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZTox
MC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwwOmxldmVsNw0KCXttc28tbGV2
ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZl
bC10YWItc3RvcDoyNTIuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0
ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1m
YW1pbHk6U3ltYm9sO30NCkBsaXN0IGwwOmxldmVsOA0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1h
dDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDoyODgu
MHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTgu
MHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9sO30N
CkBsaXN0IGwwOmxldmVsOQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNv
LWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDozMjQuMHB0Ow0KCW1zby1sZXZl
bC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNp
LWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwxDQoJe21z
by1saXN0LWlkOjE2NzQ4Mzg4NDk7DQoJbXNvLWxpc3QtdGVtcGxhdGUtaWRzOjc0NTAxNDQ5NDt9
DQpAbGlzdCBsMTpsZXZlbDENCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1z
by1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MzYuMHB0Ow0KCW1zby1sZXZl
bC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNp
LWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwxOmxldmVs
Mg0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6bzsN
Cgltc28tbGV2ZWwtdGFiLXN0b3A6NzIuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246
bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7
DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3IjsNCgltc28tYmlkaS1mb250LWZhbWlseToiVGlt
ZXMgTmV3IFJvbWFuIjt9DQpAbGlzdCBsMTpsZXZlbDMNCgl7bXNvLWxldmVsLW51bWJlci1mb3Jt
YXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MTA4
LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4
LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9
DQpAbGlzdCBsMTpsZXZlbDQNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1z
by1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MTQ0LjBwdDsNCgltc28tbGV2
ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5z
aS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMTpsZXZl
bDUNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+C
tzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MTgwLjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0
aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAu
MHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMTpsZXZlbDYNCgl7bXNvLWxldmVs
LW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwt
dGFiLXN0b3A6MjE2LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4
dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFt
aWx5OlN5bWJvbDt9DQpAbGlzdCBsMTpsZXZlbDcNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6
YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6MjUyLjBw
dDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBw
dDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpA
bGlzdCBsMTpsZXZlbDgNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1s
ZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6Mjg4LjBwdDsNCgltc28tbGV2ZWwt
bnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1m
b250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMTpsZXZlbDkN
Cgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsN
Cgltc28tbGV2ZWwtdGFiLXN0b3A6MzI0LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9u
OmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0
Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMg0KCXttc28tbGlzdC1pZDoxODMyMDE1
NjUwOw0KCW1zby1saXN0LXRlbXBsYXRlLWlkczoxMzA2MDQxMDY7fQ0KQGxpc3QgbDI6bGV2ZWwx
DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7
DQoJbXNvLWxldmVsLXRhYi1zdG9wOjM2LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9u
OmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0
Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsMjpsZXZlbDINCgl7bXNvLWxldmVsLW51
bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+CtzsNCgltc28tbGV2ZWwtdGFi
LXN0b3A6NzIuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWlu
ZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6
U3ltYm9sO30NCkBsaXN0IGwyOmxldmVsMw0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxs
ZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDoxMDguMHB0Ow0K
CW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0K
CW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0
IGwyOmxldmVsNA0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVs
LXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDoxNDQuMHB0Ow0KCW1zby1sZXZlbC1udW1i
ZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQt
c2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwyOmxldmVsNQ0KCXtt
c28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1z
by1sZXZlbC10YWItc3RvcDoxODAuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVm
dDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJ
Zm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwyOmxldmVsNg0KCXttc28tbGV2ZWwtbnVtYmVy
LWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3Rv
cDoyMTYuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVu
dDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6U3lt
Ym9sO30NCkBsaXN0IGwyOmxldmVsNw0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7
DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDoyNTIuMHB0Ow0KCW1z
by1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1z
by1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwy
OmxldmVsOA0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRl
eHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDoyODguMHB0Ow0KCW1zby1sZXZlbC1udW1iZXIt
cG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6
ZToxMC4wcHQ7DQoJZm9udC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwyOmxldmVsOQ0KCXttc28t
bGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674K3Ow0KCW1zby1s
ZXZlbC10YWItc3RvcDozMjQuMHB0Ow0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsN
Cgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCW1zby1hbnNpLWZvbnQtc2l6ZToxMC4wcHQ7DQoJZm9u
dC1mYW1pbHk6U3ltYm9sO30NCkBsaXN0IGwzDQoJe21zby1saXN0LWlkOjE5MTc3NDQ5NzY7DQoJ
bXNvLWxpc3QtdHlwZTpoeWJyaWQ7DQoJbXNvLWxpc3QtdGVtcGxhdGUtaWRzOjQxNTUzMTA2MCAt
MSAxMzQ4MDc1NTUgMTM0ODA3NTU3IDEzNDgwNzU1MyAxMzQ4MDc1NTUgMTM0ODA3NTU3IDEzNDgw
NzU1MyAxMzQ4MDc1NTUgMTM0ODA3NTU3O30NCkBsaXN0IGwzOmxldmVsMQ0KCXttc28tbGV2ZWwt
c3RhcnQtYXQ6MDsNCgltc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVs
LXRleHQ674K3Ow0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXIt
cG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCWZvbnQtZmFtaWx5OlN5bWJv
bDsNCgltc28tZmFyZWFzdC1mb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjsNCgltc28tYmlk
aS1mb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjt9DQpAbGlzdCBsMzpsZXZlbDINCgl7bXNv
LWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxl
dmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRl
eHQtaW5kZW50Oi0xOC4wcHQ7DQoJZm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijt9DQpAbGlzdCBs
MzpsZXZlbDMNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10
ZXh0Ou+CpzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBv
c2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCglmb250LWZhbWlseTpXaW5nZGlu
Z3M7fQ0KQGxpc3QgbDM6bGV2ZWw0DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsN
Cgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJbXNvLWxl
dmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJZm9udC1m
YW1pbHk6U3ltYm9sO30NCkBsaXN0IGwzOmxldmVsNQ0KCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1h
dDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ6bzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsN
Cgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsN
Cglmb250LWZhbWlseToiQ291cmllciBOZXciO30NCkBsaXN0IGwzOmxldmVsNg0KCXttc28tbGV2
ZWwtbnVtYmVyLWZvcm1hdDpidWxsZXQ7DQoJbXNvLWxldmVsLXRleHQ674KnOw0KCW1zby1sZXZl
bC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsNCgl0ZXh0
LWluZGVudDotMTguMHB0Ow0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczt9DQpAbGlzdCBsMzpsZXZl
bDcNCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Ou+C
tzsNCgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9u
OmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxp
c3QgbDM6bGV2ZWw4DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2
ZWwtdGV4dDpvOw0KCW1zby1sZXZlbC10YWItc3RvcDpub25lOw0KCW1zby1sZXZlbC1udW1iZXIt
cG9zaXRpb246bGVmdDsNCgl0ZXh0LWluZGVudDotMTguMHB0Ow0KCWZvbnQtZmFtaWx5OiJDb3Vy
aWVyIE5ldyI7fQ0KQGxpc3QgbDM6bGV2ZWw5DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1
bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgqc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7DQoJ
bXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJ
Zm9udC1mYW1pbHk6V2luZ2RpbmdzO30NCkBsaXN0IGw0DQoJe21zby1saXN0LWlkOjIwNDg1Mjgy
MDg7DQoJbXNvLWxpc3QtdGVtcGxhdGUtaWRzOjE2Njg4Mzc2NjA7fQ0KQGxpc3QgbDQ6bGV2ZWwx
DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7
DQoJbXNvLWxldmVsLXRhYi1zdG9wOjM2LjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9u
OmxlZnQ7DQoJdGV4dC1pbmRlbnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0
Ow0KCWZvbnQtZmFtaWx5OlN5bWJvbDt9DQpAbGlzdCBsNDpsZXZlbDINCgl7bXNvLWxldmVsLW51
bWJlci1mb3JtYXQ6YnVsbGV0Ow0KCW1zby1sZXZlbC10ZXh0Om87DQoJbXNvLWxldmVsLXRhYi1z
dG9wOjcyLjBwdDsNCgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7DQoJdGV4dC1pbmRl
bnQ6LTE4LjBwdDsNCgltc28tYW5zaS1mb250LXNpemU6MTAuMHB0Ow0KCWZvbnQtZmFtaWx5OiJD
b3VyaWVyIE5ldyI7DQoJbXNvLWJpZGktZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7fQ0K
QGxpc3QgbDQ6bGV2ZWwzDQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28t
bGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjEwOC4wcHQ7DQoJbXNvLWxldmVs
LW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2kt
Zm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDQ6bGV2ZWw0
DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7
DQoJbXNvLWxldmVsLXRhYi1zdG9wOjE0NC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlv
bjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBw
dDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDQ6bGV2ZWw1DQoJe21zby1sZXZlbC1u
dW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRh
Yi1zdG9wOjE4MC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQt
aW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWls
eTpTeW1ib2w7fQ0KQGxpc3QgbDQ6bGV2ZWw2DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1
bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjIxNi4wcHQ7
DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7
DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxp
c3QgbDQ6bGV2ZWw3DQoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2
ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1zdG9wOjI1Mi4wcHQ7DQoJbXNvLWxldmVsLW51
bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9u
dC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDQ6bGV2ZWw4DQoJ
e21zby1sZXZlbC1udW1iZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJ
bXNvLWxldmVsLXRhYi1zdG9wOjI4OC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjps
ZWZ0Ow0KCXRleHQtaW5kZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsN
Cglmb250LWZhbWlseTpTeW1ib2w7fQ0KQGxpc3QgbDQ6bGV2ZWw5DQoJe21zby1sZXZlbC1udW1i
ZXItZm9ybWF0OmJ1bGxldDsNCgltc28tbGV2ZWwtdGV4dDrvgrc7DQoJbXNvLWxldmVsLXRhYi1z
dG9wOjMyNC4wcHQ7DQoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0Ow0KCXRleHQtaW5k
ZW50Oi0xOC4wcHQ7DQoJbXNvLWFuc2ktZm9udC1zaXplOjEwLjBwdDsNCglmb250LWZhbWlseTpT
eW1ib2w7fQ0Kb2wNCgl7bWFyZ2luLWJvdHRvbTowY207fQ0KdWwNCgl7bWFyZ2luLWJvdHRvbTow
Y207fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gMTBdPjxzdHlsZT4vKiBTdHlsZSBEZWZp
bml0aW9ucyAqLw0KdGFibGUuTXNvTm9ybWFsVGFibGUNCgl7bXNvLXN0eWxlLW5hbWU6IlRhYmxl
IE5vcm1hbCI7DQoJbXNvLXRzdHlsZS1yb3diYW5kLXNpemU6MDsNCgltc28tdHN0eWxlLWNvbGJh
bmQtc2l6ZTowOw0KCW1zby1zdHlsZS1ub3Nob3c6eWVzOw0KCW1zby1zdHlsZS1wcmlvcml0eTo5
OTsNCgltc28tc3R5bGUtcGFyZW50OiIiOw0KCW1zby1wYWRkaW5nLWFsdDowY20gNS40cHQgMGNt
IDUuNHB0Ow0KCW1zby1wYXJhLW1hcmdpbjowY207DQoJbXNvLXBhcmEtbWFyZ2luLWJvdHRvbTou
MDAwMXB0Ow0KCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsNCglmb250LXNpemU6MTAuMHB0
Ow0KCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iLHNlcmlmO30NCjwvc3R5bGU+PCFbZW5k
aWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+DQo8bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PSJl
ZGl0IiBzcGlkbWF4PSIxMDI2IiAvPg0KPC94bWw+PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNv
IDldPjx4bWw+DQo8bzpzaGFwZWxheW91dCB2OmV4dD0iZWRpdCI+DQo8bzppZG1hcCB2OmV4dD0i
ZWRpdCIgZGF0YT0iMSIgLz4NCjwvbzpzaGFwZWxheW91dD48L3htbD48IVtlbmRpZl0tLT4NCjwv
aGVhZD4NCjxib2R5IGxhbmc9IkVOLUdCIiBsaW5rPSIjMDU2M0MxIiB2bGluaz0iIzk1NEY3MiIg
c3R5bGU9InRhYi1pbnRlcnZhbDozNi4wcHQiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNl
PSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDttc28tYXNjaWktZm9udC1m
YW1pbHk6Q2FsaWJyaTttc28taGFuc2ktZm9udC1mYW1pbHk6Q2FsaWJyaTttc28tYmlkaS1mb250
LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RDttc28tZmFy
ZWFzdC1sYW5ndWFnZTpFTi1VUyI+RXhjZWxsZW50ISBJIHdpbGwgcnVuDQogc29tZSB0ZXN0cyBv
biB0aGVzZSBpbW1lZGlhdGVseS48bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGli
cmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O21zby1hc2NpaS1mb250LWZhbWlseTpD
YWxpYnJpO21zby1oYW5zaS1mb250LWZhbWlseTpDYWxpYnJpO21zby1iaWRpLWZvbnQtZmFtaWx5
OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxh
bmd1YWdlOkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGli
cmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O21zby1hc2NpaS1mb250LWZhbWlseTpD
YWxpYnJpO21zby1oYW5zaS1mb250LWZhbWlseTpDYWxpYnJpO21zby1iaWRpLWZvbnQtZmFtaWx5
OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxh
bmd1YWdlOkVOLVVTIj5DaGVlcnMsPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxp
YnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDttc28tYXNjaWktZm9udC1mYW1pbHk6
Q2FsaWJyaTttc28taGFuc2ktZm9udC1mYW1pbHk6Q2FsaWJyaTttc28tYmlkaS1mb250LWZhbWls
eTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1s
YW5ndWFnZTpFTi1VUyI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGNvbG9yPSIjMWY0OTdkIiBmYWNlPSJDYWxp
YnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDttc28tYXNjaWktZm9udC1mYW1pbHk6
Q2FsaWJyaTttc28taGFuc2ktZm9udC1mYW1pbHk6Q2FsaWJyaTttc28tYmlkaS1mb250LWZhbWls
eTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7Y29sb3I6IzFGNDk3RDttc28tZmFyZWFzdC1s
YW5ndWFnZTpFTi1VUyI+PHNwYW4gc3R5bGU9Im1zby1zcGFjZXJ1bjp5ZXMiPiZuYnNwOw0KPC9z
cGFuPlBhdWw8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PGZvbnQgc2l6ZT0iMiIgY29sb3I9IiMxZjQ5N2QiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0O21zby1hc2NpaS1mb250LWZhbWlseTpDYWxpYnJpO21zby1o
YW5zaS1mb250LWZhbWlseTpDYWxpYnJpO21zby1iaWRpLWZvbnQtZmFtaWx5OiZxdW90O1RpbWVz
IE5ldyBSb21hbiZxdW90Oztjb2xvcjojMUY0OTdEO21zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVT
Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVy
Om5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZSAxLjVwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDQu
MHB0Ij4NCjxkaXY+DQo8ZGl2IHN0eWxlPSJib3JkZXI6bm9uZTtib3JkZXItdG9wOnNvbGlkICNF
MUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwY20gMGNtIDBjbSI+DQo8cCBjbGFzcz0iTXNvTm9y
bWFsIj48Yj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBsYW5nPSJFTi1VUyIg
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7bXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6JnF1b3Q7VGlt
ZXMgTmV3IFJvbWFuJnF1b3Q7O21zby1hbnNpLWxhbmd1YWdlOkVOLVVTO2ZvbnQtd2VpZ2h0OmJv
bGQiPkZyb206PC9zcGFuPjwvZm9udD48L2I+PHNwYW4gbGFuZz0iRU4tVVMiIHN0eWxlPSJtc28t
ZmFyZWFzdC1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDs7bXNvLWFuc2kt
bGFuZ3VhZ2U6RU4tVVMiPg0KIHdpbi1wdi1kZXZlbCBbbWFpbHRvOndpbi1wdi1kZXZlbC1ib3Vu
Y2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXSA8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9s
ZCI+T24gQmVoYWxmIE9mDQo8L3NwYW4+PC9iPk93ZW4gU21pdGg8YnI+DQo8Yj48c3BhbiBzdHls
ZT0iZm9udC13ZWlnaHQ6Ym9sZCI+U2VudDo8L3NwYW4+PC9iPiAwMiBKdW5lIDIwMTcgMTA6NTY8
YnI+DQo8Yj48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6Ym9sZCI+VG86PC9zcGFuPjwvYj4gd2lu
LXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnPGJyPg0KPGI+PHNwYW4gc3R5bGU9ImZvbnQt
d2VpZ2h0OmJvbGQiPlN1YmplY3Q6PC9zcGFuPjwvYj4gW3dpbi1wdi1kZXZlbF0gSW50cm9kdWNp
bmcgUFYgSElEIGRyaXZlcnM8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9udD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9m
b250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGli
cmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij5J4oCZdmUgYmVlbiB3b3JraW5nIG9u
IGEgcGFpciBvZiBkcml2ZXJzIHRvIHN1cHBvcnQgdGhlIFBWIG1vdXNlIGFuZCBrZXlib2FyZCBw
cm90b2NvbCBleHBvc2VkIGJ5IHRoZSBwdWJsaWMvaW8va2JkaWYuaCBoZWFkZXIuPG86cD48L286
cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIi
IGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij5XaXRoIHRoZXNl
IGRyaXZlcnMsIGl0IGlzIHBvc3NpYmxlIHRvIGRpc2FibGUgUUVNVeKAmXMgVVNCIHRhYmxldCBk
ZXZpY2UgYW5kIFVTQiBlbXVsYXRpb24sIHNhdmluZyBhIGxhcmdlIGFtb3VudCBvZiBDUFUgdGlt
ZSB3aGljaCBpcyB1c2VkIHRvIHBvbGwgZW11bGF0ZWQgVVNCIGRldmljZXMuPG86cD48L286cD48
L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZh
Y2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij5EdXJpbmcgZGV2ZWxv
cG1lbnQsIEkgZGlkIG5vdCBhZGQgdGhlIOKAnHVzYj10cnVl4oCdIGFuZCDigJx1c2JkZXZpY2U9
W+KAmHRhYmxldOKAmV3igJ0gZGlyZWN0aXZlcyB0byB0aGUgeGwgY29uZmlnIGZpbGVzLCBzbyBi
ZWZvcmUgdGhlIGRyaXZlcnMgaW5zdGFsbGVkLCBJIHdhcyB1c2luZyBhbiBlbXVsYXRlZCBwcy8y
IGtleWJvYXJkDQogYW5kIHBzLzIgKHJlbGF0aXZlKSBtb3VzZSwgd2hpY2ggd291bGQgaGF2ZSB0
cmFja2luZyBpc3N1ZXMgbGVhZGluZyB0byB0aGUgbG9jYWwgbW91c2UgcG9pbnRlciBub3QgbWF0
Y2hpbmcgdGhlIG1vdmVtZW50cyBvciBwb3NpdGlvbiBvZiB0aGUgVk1zIG1vdXNlIHBvaW50ZXIg
Y29ycmVjdGx5LiBBZnRlciB0aGUgZHJpdmVycyBpbnN0YWxsZWQsIHRoZSBWTXMgbW91c2UgcG9p
bnRlciB3b3VsZCBmb2xsb3cgdGhlIGxvY2FsIG1vdXNlIHBvaW50ZXINCiBjb3JyZWN0bHkuPG86
cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNp
emU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij48bzpw
PiZuYnNwOzwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZv
bnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQi
PlRoaXMgc3BsaXRzIGludG8gMiBkcml2ZXJzIGFuZCBhIHNtYWxsIGNoYW5nZSB0byBRRU1VcyBi
YWNrZW5kOjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs
Ij48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEx
LjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0Ij5YZW5Wa2JkICg8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vT3dlblNtaXRo
L3hlbnZrYmQiPmh0dHBzOi8vZ2l0aHViLmNvbS9Pd2VuU21pdGgveGVudmtiZDwvYT4pDQo8bzpw
PjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHVsIHN0eWxlPSJtYXJnaW4tdG9wOjBjbSIgdHlw
ZT0iZGlzYyI+DQo8bGkgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1saXN0OmwzIGxldmVs
MSBsZm8zIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdDttc28tZmFyZWFzdC1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4m
cXVvdDsiPkJpbmRzIHRvIGEgZGV2aWNlIGVudW1lcmF0ZWQgYnkgWGVuQnVzIHdoZW4gdGhlIGFw
cHJvcHJpYXRlIGNoYW5nZXMgYXJlIG1hZGUNCjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L2xp
PjwvdWw+DQo8dWwgc3R5bGU9Im1hcmdpbi10b3A6MGNtIiB0eXBlPSJkaXNjIj4NCjx1bCBzdHls
ZT0ibWFyZ2luLXRvcDowY20iIHR5cGU9ImNpcmNsZSI+DQo8bGkgY2xhc3M9Ik1zb05vcm1hbCIg
c3R5bGU9Im1zby1saXN0OmwzIGxldmVsMiBsZm8zIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxp
YnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDttc28tZmFyZWFzdC1mb250LWZhbWls
eTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPuKAnFZLQkTigJ0gbmVlZHMgdG8gYmUgYWRk
ZWQgdG8gdGhlIOKAnFN1cHBvcnRlZENsYXNzZXPigJ0gUkVHX01VTFRJX1NaLCBlaXRoZXIgaW4g
dGhlIElORiBvciBwb3N0LWluc3RhbGxhdGlvbi48bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9s
aT48L3VsPg0KPC91bD4NCjxwIGNsYXNzPSJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0ibWFyZ2lu
LWxlZnQ6NzIuMHB0Ij48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0i
Zm9udC1zaXplOjExLjBwdCI+VGhlc2UgY2hhbmdlcyBoYXZlIG5vdCBiZWVuIHBvc3RlZCBtYWRl
LCB0aG91Z2ggaXQgaXMgYSBtaW5vciBYZW5CdXMgaW5mIGZpbGUgY2hhbmdlIHdoZW4gdGhlIGRy
aXZlcnMgYXJlIGFjY2VwdGVkLjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8dWwgc3R5
bGU9Im1hcmdpbi10b3A6MGNtIiB0eXBlPSJkaXNjIj4NCjxsaSBjbGFzcz0iTXNvTm9ybWFsIiBz
dHlsZT0ibXNvLWxpc3Q6bDMgbGV2ZWwxIGxmbzMiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGli
cmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O21zby1mYXJlYXN0LWZvbnQtZmFtaWx5
OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+RW51bWVyYXRlcyBhIFBETyBmb3IgZWFjaCBl
bnRyeSBtYWRlIHVuZGVyIHhlbnN0b3JlIGRldmljZS92a2JkDQo8bzpwPjwvbzpwPjwvc3Bhbj48
L2ZvbnQ+PC9saT48L3VsPg0KPHVsIHN0eWxlPSJtYXJnaW4tdG9wOjBjbSIgdHlwZT0iZGlzYyI+
DQo8dWwgc3R5bGU9Im1hcmdpbi10b3A6MGNtIiB0eXBlPSJjaXJjbGUiPg0KPGxpIGNsYXNzPSJN
c29Ob3JtYWwiIHN0eWxlPSJtc28tbGlzdDpsMyBsZXZlbDIgbGZvMyI+PGZvbnQgc2l6ZT0iMiIg
ZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7bXNvLWZhcmVhc3Qt
Zm9udC1mYW1pbHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij5UaGUgUERPIGluY2x1ZGVz
IGFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBrYmRpZiBpbnRlcmZhY2UsIGFuZCBhY2NlcHRzIHJl
bGF0aXZlIG9yIGFic29sdXRlIG1vdXNlIHBvc2l0aW9uLA0KIG1vdXNlIGJ1dHRvbiBhbmQga2V5
Ym9hcmQga2V5cHJlc3MgZXZlbnRzLjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L2xpPjxsaSBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLWxpc3Q6bDMgbGV2ZWwyIGxmbzMiPjxmb250IHNp
emU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O21zby1m
YXJlYXN0LWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+RXhwb3NlcyBh
biBpbnRlcmZhY2UgdG8gYSBkcml2ZXIgYWJvdmUgdGhhdCBjb250YWlucyB2YXJpb3VzIHF1ZXJ5
IG1ldGhvZHMgYXMgdXNlZCBieSB0aGUgSElEIGNsYXNzDQogZHJpdmVyLiBUaGUgaW50ZXJmYWNl
IGhhcyBtZXRob2RzIHRvIHJldHJpZXZlIGRlc2NyaXB0b3JzLCBzdHJpbmdzIGFuZCBkYXRhIHJl
cG9ydHMsIGFzIHdlbGwgYXMgYSBjYWxsYmFjayB0aGF04oCZcyBjYWxsZWQgd2hlbiBuZXcgcmVw
b3J0IGRhdGEgaXMgYXZhaWxhYmxlLjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L2xpPjxsaSBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLWxpc3Q6bDMgbGV2ZWwyIGxmbzMiPjxmb250IHNp
emU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O21zby1m
YXJlYXN0LWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+RnV0dXJlIGlt
cHJvdmVtZW50cyBtYXkgaW5jbHVkZSBhZGRpbmcgYSBtdWx0aS10b3VjaCBjYXBhYmxlIHRhYmxl
dC9kaWdpdGl6ZXIgZW5kcG9pbnQgYW5kL29yIG92ZXJyaWRlcw0KIHRvIHRoZSB2YXJpb3VzIGRl
c2NyaXB0b3JzIChhbmQgdmtiZCBwcm90b2NvbCBleHRlbnNpb25zKSB0byBhbGxvdyBhbnkgSElE
IGRldmljZSB0byBiZSBwYXNzZWQgdGhyb3VnaC48bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9s
aT48L3VsPg0KPC91bD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9
IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij5YZW5IaWQgKDxhIGhyZWY9
Imh0dHBzOi8vZ2l0aHViLmNvbS9Pd2VuU21pdGgveGVuaGlkIj5odHRwczovL2dpdGh1Yi5jb20v
T3dlblNtaXRoL3hlbmhpZDwvYT4pPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjx1bCBz
dHlsZT0ibWFyZ2luLXRvcDowY20iIHR5cGU9ImRpc2MiPg0KPGxpIGNsYXNzPSJNc29Ob3JtYWwi
IHN0eWxlPSJtc28tbGlzdDpsMyBsZXZlbDEgbGZvMyI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2Fs
aWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQ7bXNvLWZhcmVhc3QtZm9udC1mYW1p
bHk6JnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij5YZW5IaWQgaXMgaW50ZW50aW9uYWxseSBr
ZXB0IGFzIHNpbXBsZSBhcyBwb3NzaWJsZS48bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9saT48
bGkgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1saXN0OmwzIGxldmVsMSBsZm8zIj48Zm9u
dCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDtt
c28tZmFyZWFzdC1mb250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPkJpbmRz
IHRvIHRoZSBQRE8gb2YgWGVuVmtiZCBhbmQgaW50ZXJmYWNlcyB3aXRoIHRoZSBzdGFuZGFyZCBN
aWNyb3NvZnQgcHJvdmlkZWQgSElELUNsYXNzIGRyaXZlci4NCjxvOnA+PC9vOnA+PC9zcGFuPjwv
Zm9udD48L2xpPjwvdWw+DQo8dWwgc3R5bGU9Im1hcmdpbi10b3A6MGNtIiB0eXBlPSJkaXNjIj4N
Cjx1bCBzdHlsZT0ibWFyZ2luLXRvcDowY20iIHR5cGU9ImNpcmNsZSI+DQo8bGkgY2xhc3M9Ik1z
b05vcm1hbCIgc3R5bGU9Im1zby1saXN0OmwzIGxldmVsMiBsZm8zIj48Zm9udCBzaXplPSIyIiBm
YWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdDttc28tZmFyZWFzdC1m
b250LWZhbWlseTomcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPlF1ZXJpZXMgZm9yIHRoZSBp
bnRlcmZhY2UgZXhwb3NlZCBieSBYZW5Wa2JkLCBhbmQgcGFzc2VzIG1vc3Qgb2YgdGhlIEhJRCBj
bGFzcyBjYWxscyBkaXJlY3RseSB0byB0aGUNCiBwcm90b2NvbCBkcml2ZXIuIFRoZSBleGNlcHRp
b24gaXMgdGhlIHJlYWQgcmVwb3J0IGNhbGwsIHdoaWNoIGlzIHF1ZXVlZCB1bnRpbCB0aGUgaW50
ZXJmYWNlIGNhbGxiYWNrIGlzIGNhbGxlZCwgZHVlIHRvIHRoZSBkZXNpZ24gb2YgdGhlIEhJRCBj
bGFzcyBpbnRlcmZhY2UuPG86cD48L286cD48L3NwYW4+PC9mb250PjwvbGk+PC91bD4NCjwvdWw+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+UUVNVSBQYXRjaDxvOnA+PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8dWwgc3R5bGU9Im1hcmdpbi10b3A6MGNtIiB0eXBlPSJkaXNjIj4NCjxsaSBj
bGFzcz0iTXNvTm9ybWFsIiBzdHlsZT0ibXNvLWxpc3Q6bDMgbGV2ZWwxIGxmbzMiPjxmb250IHNp
emU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0O21zby1m
YXJlYXN0LWZvbnQtZmFtaWx5OiZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+QSBzbWFsbCBj
aGFuZ2UgdG8gUUVNVXMgaW1wbGVtZW50YXRpb24gb2YgdGhlIHZrYmQgYmFja2VuZCBpcyByZXF1
aXJlZC4gQSBzZXBhcmF0ZSBwYXRjaCBzZXJpZXMgd2lsbA0KIGJlIHN1Ym1pdHRlZCB0byBRRU1V
LiBJ4oCZdmUgaW5jbHVkZWQgdGhlIGJhcmUgbWluaW11bSBwYXRjaCB0byB0aGlzIG1haWwsIHRo
b3VnaCB0aGUgcGF0Y2ggc2VyaWVzIHN1Ym1pdHRlZCB0byBRRU1VIHdpbGwgbWFrZSB0aGUgc2Ft
ZSBjaGFuZ2VzLCBpdCB3aWxsIGJlIGNsZWFuZWQgdXAuPG86cD48L286cD48L3NwYW4+PC9mb250
PjwvbGk+PC91bD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNh
bGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwv
c3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFj
ZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPihjb3B5LXBhc3RlIGZy
b20gZ2l0IGZvcm1hdC1wYXRjaCk8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQiPkZyb20gZjQ5Y2U0NzVjNzA2MDRkNWJhZDZiODM0MTJjODVlN2Ux
ZjhiYjEzZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDE8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCIgc3R5bGU9Im1zby1vdXRsaW5lLWxldmVsOjEiPjxm
b250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
Ij5Gcm9tOg0KPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0Ij5EYXRlOiBUdWUsIDMwIE1heSAyMDE3IDEwOjQzOjQ0ICYjNDM7MDAwMDxvOnA+PC9v
OnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIy
IiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+U3ViamVjdDog
W1BBVENIXSBGaXggeGVuZmIgZm9yIFBWLUhJRDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmki
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij5TaWduZWQtb2ZmLWJ5OiBPd2VuIFNtaXRo
ICZsdDs8YSBocmVmPSJtYWlsdG86b3dlbi5zbWl0aEBjaXRyaXguY29tIj5vd2VuLnNtaXRoQGNp
dHJpeC5jb208L2E+Jmd0OzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdCI+LS0tPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0Ij5ody9kaXNwbGF5L3hlbmZiLmMgfCAzMSAmIzQzOyYjNDM7JiM0Mzsm
IzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0
MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7LS0tLS0tLS0tLS08bzpwPjwvbzpwPjwvc3Bhbj48
L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2Fs
aWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPjEgZmlsZSBjaGFuZ2VkLCAyMCBp
bnNlcnRpb25zKCYjNDM7KSwgMTEgZGVsZXRpb25zKC0pPG86cD48L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmki
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48
L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2Fs
aWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPmRpZmYgLS1naXQgYS9ody9kaXNw
bGF5L3hlbmZiLmMgYi9ody9kaXNwbGF5L3hlbmZiLmM8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPmluZGV4IDdhODcyN2EuLjQwNjBmYjMgMTAw
NjQ0PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxm
b250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
Ij4tLS0gYS9ody9kaXNwbGF5L3hlbmZiLmM8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiYjNDM7JiM0MzsmIzQzOyBiL2h3L2Rpc3BsYXkveGVu
ZmIuYzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBw
dCI+QEAgLTMwNywxOCAmIzQzOzMwNywyMiBAQCBzdGF0aWMgdm9pZCB4ZW5mYl9tb3VzZV9ldmVu
dCh2b2lkICpvcGFxdWUsPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aW50IGR4LCBpbnQgZHks
IGludCBkeiwgaW50IGJ1dHRvbl9zdGF0ZSk8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPns8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBzdHJ1Y3Qg
WGVuSW5wdXQgKnhlbmZiID0gb3BhcXVlOzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdCI+LSZuYnNwOyZuYnNwOyZuYnNwOyBEaXNwbGF5U3VyZmFj
ZSAqc3VyZmFjZSA9IHFlbXVfY29uc29sZV9zdXJmYWNlKHhlbmZiLSZndDtjLmNvbik7PG86cD48
L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9
IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij4tJm5ic3A7
Jm5ic3A7Jm5ic3A7IGludCBkdyA9IHN1cmZhY2Vfd2lkdGgoc3VyZmFjZSk7PG86cD48L286cD48
L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZh
Y2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij4tJm5ic3A7Jm5ic3A7
Jm5ic3A7IGludCBkaCA9IHN1cmZhY2VfaGVpZ2h0KHN1cmZhY2UpOzxvOnA+PC9vOnA+PC9zcGFu
PjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJD
YWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+LSZuYnNwOyZuYnNwOyZuYnNw
OyBpbnQgaTs8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTox
MS4wcHQiPiYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGludCBpLCB4LCB5OzxvOnA+PC9vOnA+PC9z
cGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNl
PSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+JiM0MzsmbmJzcDsmbmJz
cDsmbmJzcDsgaWYgKHhlbmZiLSZndDtjLmNvbikgezxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+JiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsgRGlzcGxheVN1cmZhY2UgKnN1cmZhY2UgPSBxZW11X2NvbnNv
bGVfc3VyZmFjZSh4ZW5mYi0mZ3Q7Yy5jb24pOzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48c3Bh
biBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+JiM0MzsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7aW50IGR3ID0gc3VyZmFjZV93aWR0aChzdXJmYWNlKTs8bzpwPjwv
bzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0i
MiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiYjNDM7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGludCBkaCA9IHN1cmZhY2Vf
aGVpZ2h0KHN1cmZhY2UpOzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0i
TXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9u
dC1zaXplOjExLjBwdCI+JiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsgeCA9IGR4ICogKGRoIC0gMSkgLyAweDdmZmY7PG86cD48L286cD48L3NwYW4+PC9mb250
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmki
PjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij4mIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB5ID0gZHkgKiAoZHcgLSAxKSAvIDB4N2ZmZjs8bzpwPjwv
bzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0i
MiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiYjNDM7Jm5i
c3A7Jm5ic3A7Jm5ic3A7IH0gZWxzZSB7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0Ij4mIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyB4ID0gZHg7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNs
YXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxl
PSJmb250LXNpemU6MTEuMHB0Ij4mIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyB5ID0gZHk7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0Ij4mIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyB9PG86cD48L286cD48L3Nw
YW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9
IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij4mbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDt0cmFjZV94ZW5mYl9tb3VzZV9ldmVudChvcGFxdWUsIGR4LCBkeSwgZHos
IGJ1dHRvbl9zdGF0ZSw8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1z
b05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQt
c2l6ZToxMS4wcHQiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyB4ZW5mYi0mZ3Q7YWJzX3BvaW50ZXJfd2FudGVkKTs8bzpwPjwvbzpwPjwvc3Bh
bj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0i
Q2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyBpZiAoeGVuZmItJmd0O2Fic19wb2ludGVyX3dhbnRlZCk8bzpwPjwvbzpwPjwvc3Bh
bj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0i
Q2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPi0mbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsgeGVuZmJfc2VuZF9wb3NpdGlvbih4ZW5mYiw8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+
PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPi0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsgJm5ic3A7Jm5ic3A7Jm5ic3A7IGR4ICogKGR3IC0gMSkgLyAweDdm
ZmYsPG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxm
b250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0
Ij4tJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyZuYnNw
OyZuYnNwOyBkeSAqIChkaCAtIDEpIC8gMHg3ZmZmLDxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48
L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48
c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+LSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsgZHopOzxvOnA+PC9vOnA+PC9zcGFu
PjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJD
YWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+JiM0MzsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsgeGVuZmJfc2VuZF9wb3NpdGlvbih4ZW5mYiwgeCwgeSwgZHopOzxvOnA+PC9vOnA+PC9zcGFu
PjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJD
YWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7IGVsc2U8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6
ZToxMS4wcHQiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB4ZW5mYl9zZW5kX21vdGlvbih4
ZW5mYiwgZHgsIGR5LCBkeik7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNz
PSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJm
b250LXNpemU6MTEuMHB0Ij5AQCAtMzQ2LDE1ICYjNDM7MzUwLDE4IEBAIHN0YXRpYyBpbnQgaW5w
dXRfaW5pdGlhbGlzZShzdHJ1Y3QgWGVuRGV2aWNlICp4ZW5kZXYpPG86cD48L286cD48L3NwYW4+
PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNh
bGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij4mbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsgaW50IHJjOzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7aWYgKCFpbi0mZ3Q7Yy5j
b24pIHs8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQiPi0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgeGVuX3B2X3By
aW50Zih4ZW5kZXYsIDEsICZxdW90O2RzIG5vdCBzZXQgKHlldClcbiZxdW90Oyk7PG86cD48L286
cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIi
IGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij4tJm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAtMTs8bzpwPjwvbzpwPjwv
c3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFj
ZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiYjNDM7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNoYXIgKnZmYiA9IHhlbnN0b3JlX3Jl
YWRfc3RyKE5VTEwsICZxdW90O2RldmljZS92ZmImcXVvdDspOzxvOnA+PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxp
YnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+JiM0MzsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaWYgKHZmYiAhPSBOVUxMKSB7PG86cD48L286cD48
L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZh
Y2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij4mIzQzOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyBmcmVlKHZmYik7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNp
emU6MTEuMHB0Ij4mIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB4ZW5fcHZfcHJpbnRmKHhlbmRldiwgMSwgJnF1b3Q7
ZHMgbm90IHNldCAoeWV0KVxuJnF1b3Q7KTs8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAtMTs8bzpwPjwv
bzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0i
MiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiYjNDM7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08bzpwPjwvbzpwPjwvc3Bh
bj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0i
Q2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyB9PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6
MTEuMHB0Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyYyA9IGNvbW1vbl9iaW5kKCZh
bXA7aW4tJmd0O2MpOzxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNv
Tm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1z
aXplOjExLjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChyYyAhPSAwKTxvOnA+PC9v
OnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIy
IiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiByYzs8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPi0mbmJzcDsmbmJzcDsmbmJzcDsgcWVtdV9hZGRf
a2JkX2V2ZW50X2hhbmRsZXIoeGVuZmJfa2V5X2V2ZW50LCBpbik7PG86cD48L286cD48L3NwYW4+
PC9mb250PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNh
bGlicmkiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij4mbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsgcmV0dXJuIDA7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0Ij59PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxwIGNsYXNzPSJN
c29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0eWxlPSJmb250
LXNpemU6MTEuMHB0Ij5AQCAtMzY3LDYgJiM0MzszNzQsNyBAQCBzdGF0aWMgdm9pZCBpbnB1dF9j
b25uZWN0ZWQoc3RydWN0IFhlbkRldmljZSAqeGVuZGV2KTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9u
dD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJp
Ij48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGluLSZndDthYnNfcG9pbnRlcl93YW50ZWQgPSAwOzxv
OnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBz
aXplPSIyIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAg
Y2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHFlbXVfYWRkX2ti
ZF9ldmVudF9oYW5kbGVyKHhlbmZiX2tleV9ldmVudCwgaW4pOzxvOnA+PC9vOnA+PC9zcGFuPjwv
Zm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxp
YnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7IGlmIChpbi0mZ3Q7cW1vdXNlKSB7PG86cD48L286cD48L3NwYW4+PC9mb250PjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxzcGFuIHN0
eWxlPSJmb250LXNpemU6MTEuMHB0Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsgcWVtdV9yZW1vdmVfbW91c2VfZXZlbnRfaGFuZGxlcihpbi0mZ3Q7cW1v
dXNlKTs8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB9PG86cD48L286cD48L3NwYW4+PC9mb250Pjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxmb250IHNpemU9IjIiIGZhY2U9IkNhbGlicmkiPjxz
cGFuIHN0eWxlPSJmb250LXNpemU6MTEuMHB0Ij5AQCAtMzc0LDYgJiM0MzszODIsNyBAQCBzdGF0
aWMgdm9pZCBpbnB1dF9jb25uZWN0ZWQoc3RydWN0IFhlbkRldmljZSAqeGVuZGV2KTxvOnA+PC9v
OnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIy
IiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7IGluLSZndDtxbW91c2UgPSBxZW11X2FkZF9tb3VzZV9ldmVudF9oYW5k
bGVyKHhlbmZiX21vdXNlX2V2ZW50LCBpbiw8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4g
c3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDtpbi0mZ3Q7YWJzX3BvaW50ZXJfd2FudGVkLDxvOnA+PC9vOnA+PC9z
cGFuPjwvZm9udD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNl
PSJDYWxpYnJpIj48c3BhbiBzdHlsZT0iZm9udC1zaXplOjExLjBwdCI+Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZxdW90O1hlbiBQVkZCIE1vdXNlJnF1
b3Q7KTs8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+
PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4w
cHQiPiYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHFlbXVfYWN0aXZhdGVfbW91c2VfZXZlbnRfaGFu
ZGxlcihpbi0mZ3Q7cW1vdXNlKTs8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQiPn08bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9wPg0KPHAgY2xh
c3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNwYW4gc3R5bGU9
ImZvbnQtc2l6ZToxMS4wcHQiPiZuYnNwO3N0YXRpYyB2b2lkIGlucHV0X2Rpc2Nvbm5lY3Qoc3Ry
dWN0IFhlbkRldmljZSAqeGVuZGV2KTxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBzdHls
ZT0iZm9udC1zaXplOjExLjBwdCI+LS0NCjxvOnA+PC9vOnA+PC9zcGFuPjwvZm9udD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48Zm9udCBzaXplPSIyIiBmYWNlPSJDYWxpYnJpIj48c3BhbiBz
dHlsZT0iZm9udC1zaXplOjExLjBwdCI+Mi4xLjQ8bzpwPjwvbzpwPjwvc3Bhbj48L2ZvbnQ+PC9w
Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PGZvbnQgc2l6ZT0iMiIgZmFjZT0iQ2FsaWJyaSI+PHNw
YW4gc3R5bGU9ImZvbnQtc2l6ZToxMS4wcHQiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvZm9u
dD48L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K

--_000_5270ded43111423db037917729621d46AMSPEX02CL03citritenet_--


--===============0243734084568860389==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============0243734084568860389==--


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 02 11:50:35 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Jun 2017 11:50:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dGl6A-0002DB-PX; Fri, 02 Jun 2017 11:50:34 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1dGl69-0002Cp-Le
 for win-pv-devel@lists.xenproject.org; Fri, 02 Jun 2017 11:50:33 +0000
Date: Fri, 2 Jun 2017 11:50:34 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <15589397.5.1496404234867.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
In-Reply-To: <14687839.3.1496393810080.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
References: <14687839.3.1496393810080.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_4_33124125.1496404234867"
X-Jenkins-Job: XENVIF-8.2
X-Jenkins-Result: SUCCESS
Subject: [win-pv-devel] XENVIF-8.2 - Build #12 - Fixed
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_4_33124125.1496404234867
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #12.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENVIF-8.2/12/console to view the results.
------=_Part_4_33124125.1496404234867
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_4_33124125.1496404234867--


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 02 13:58:21 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Jun 2017 13:58:21 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dGn5n-0002tO-46; Fri, 02 Jun 2017 13:58:19 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1dGn5l-0002tI-C3
 for win-pv-devel@lists.xenproject.org; Fri, 02 Jun 2017 13:58:17 +0000
Date: Fri, 2 Jun 2017 13:58:18 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <14597534.7.1496411898777.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
In-Reply-To: <33022319.25.1496246665661.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
References: <33022319.25.1496246665661.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_6_22321243.1496411898683"
X-Jenkins-Job: XENVIF-master
X-Jenkins-Result: ABORTED
Subject: [win-pv-devel] XENVIF-master - Build #144 - Aborted
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_6_22321243.1496411898683
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #144.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENVIF-master/144/console to view the results.
------=_Part_6_22321243.1496411898683
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_6_22321243.1496411898683--


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 02 14:17:24 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Jun 2017 14:17:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dGnOF-0004Gz-T7; Fri, 02 Jun 2017 14:17:23 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1dGnOE-0004Gs-Pp
 for win-pv-devel@lists.xenproject.org; Fri, 02 Jun 2017 14:17:22 +0000
Date: Fri, 2 Jun 2017 14:17:23 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <12493918.1.1496413044028.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
In-Reply-To: <14597534.7.1496411898777.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
References: <14597534.7.1496411898777.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_0_12583465.1496413043949"
X-Jenkins-Job: XENVIF-master
X-Jenkins-Result: SUCCESS
Subject: [win-pv-devel] XENVIF-master - Build #145 - Successful
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_0_12583465.1496413043949
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #145.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENVIF-master/145/console to view the results.
------=_Part_0_12583465.1496413043949
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_0_12583465.1496413043949--


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 02 14:28:38 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Jun 2017 14:28:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dGnZ7-0004sN-OH; Fri, 02 Jun 2017 14:28:37 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1dGnZ7-0004sH-A8
 for win-pv-devel@lists.xenproject.org; Fri, 02 Jun 2017 14:28:37 +0000
Date: Fri, 2 Jun 2017 14:28:38 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <29253647.1.1496413723903.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_0_23062620.1496413718419"
X-Jenkins-Job: XENVIF-8.2
X-Jenkins-Result: SUCCESS
Subject: [win-pv-devel] XENVIF-8.2 - Build #13 - Successful
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_0_23062620.1496413718419
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #13.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENVIF-8.2/13/console to view the results.
------=_Part_0_23062620.1496413718419
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_0_23062620.1496413718419--


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 02 14:34:14 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Jun 2017 14:34:14 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dGneY-0005PY-8T; Fri, 02 Jun 2017 14:34:14 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1dGneX-0005PS-GT
 for win-pv-devel@lists.xenproject.org; Fri, 02 Jun 2017 14:34:13 +0000
Date: Fri, 2 Jun 2017 14:34:14 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <6930083.3.1496414060091.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_2_24584574.1496414054919"
X-Jenkins-Job: XENVKBD-master
X-Jenkins-Result: SUCCESS
Subject: [win-pv-devel] XENVKBD-master - Build #1 - Successful
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_2_24584574.1496414054919
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #1.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENVKBD-master/1/console to view the results.
------=_Part_2_24584574.1496414054919
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_2_24584574.1496414054919--


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 02 14:36:20 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Jun 2017 14:36:20 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dGnga-0005Sc-EZ; Fri, 02 Jun 2017 14:36:20 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1dGngZ-0005SU-AM
 for win-pv-devel@lists.xenproject.org; Fri, 02 Jun 2017 14:36:19 +0000
Date: Fri, 2 Jun 2017 14:36:20 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <3805244.5.1496414185903.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_4_29264737.1496414180888"
X-Jenkins-Job: XENHID-master
X-Jenkins-Result: SUCCESS
Subject: [win-pv-devel] XENHID-master - Build #1 - Successful
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_4_29264737.1496414180888
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #1.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENHID-master/1/console to view the results.
------=_Part_4_29264737.1496414180888
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_4_29264737.1496414180888--


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 02 15:03:38 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Jun 2017 15:03:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dGo6y-0007IW-Ld; Fri, 02 Jun 2017 15:03:36 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1dGo6x-0007IQ-8j
 for win-pv-devel@lists.xenproject.org; Fri, 02 Jun 2017 15:03:35 +0000
Date: Fri, 2 Jun 2017 15:03:36 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <31374550.7.1496415821873.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_6_23111958.1496415816451"
X-Jenkins-Job: XENHID-master
X-Jenkins-Result: FAILURE
Subject: [win-pv-devel] XENHID-master - Build #2 - Failure
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_6_23111958.1496415816451
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #2.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENHID-master/2/console to view the results.
------=_Part_6_23111958.1496415816451
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_6_23111958.1496415816451--


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 02 15:05:07 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Jun 2017 15:05:07 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dGo8R-0007La-QC; Fri, 02 Jun 2017 15:05:07 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1dGo8Q-0007Kn-DD
 for win-pv-devel@lists.xenproject.org; Fri, 02 Jun 2017 15:05:06 +0000
Date: Fri, 2 Jun 2017 15:05:07 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <32698267.9.1496415913013.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_8_3738307.1496415907998"
X-Jenkins-Job: XENVKBD-master
X-Jenkins-Result: FAILURE
Subject: [win-pv-devel] XENVKBD-master - Build #2 - Failure
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_8_3738307.1496415907998
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #2.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENVKBD-master/2/console to view the results.
------=_Part_8_3738307.1496415907998
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_8_3738307.1496415907998--


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 02 16:37:34 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Jun 2017 16:37:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dGpZt-00071f-NL; Fri, 02 Jun 2017 16:37:33 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1dGpZt-00070k-63
 for win-pv-devel@lists.xenproject.org; Fri, 02 Jun 2017 16:37:33 +0000
Date: Fri, 2 Jun 2017 16:37:34 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <971856.11.1496421459860.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
In-Reply-To: <31374550.7.1496415821873.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
References: <31374550.7.1496415821873.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_10_2026255.1496421454547"
X-Jenkins-Job: XENHID-master
X-Jenkins-Result: SUCCESS
Subject: [win-pv-devel] XENHID-master - Build #3 - Fixed
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_10_2026255.1496421454547
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #3.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENHID-master/3/console to view the results.
------=_Part_10_2026255.1496421454547
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_10_2026255.1496421454547--


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 02 16:51:43 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 02 Jun 2017 16:51:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dGpnb-0000Po-2c; Fri, 02 Jun 2017 16:51:43 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1dGpnZ-0000Pi-Oq
 for win-pv-devel@lists.xenproject.org; Fri, 02 Jun 2017 16:51:41 +0000
Date: Fri, 2 Jun 2017 16:51:43 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <32042594.13.1496422308454.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
In-Reply-To: <32698267.9.1496415913013.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
References: <32698267.9.1496415913013.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_12_20006521.1496422303220"
X-Jenkins-Job: XENVKBD-master
X-Jenkins-Result: SUCCESS
Subject: [win-pv-devel] XENVKBD-master - Build #3 - Fixed
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_12_20006521.1496422303220
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #3.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENVKBD-master/3/console to view the results.
------=_Part_12_20006521.1496422303220
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_12_20006521.1496422303220--


From win-pv-devel-bounces@lists.xenproject.org Wed Jun 07 15:52:10 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 07 Jun 2017 15:52:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dIdFh-0008Rw-C4; Wed, 07 Jun 2017 15:52:09 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=3245c1b58=owen.smith@citrix.com>)
 id 1dIdFf-0008Ra-9m
 for win-pv-devel@lists.xenproject.org; Wed, 07 Jun 2017 15:52:07 +0000
Received: from [85.158.137.68] by server-11.bemta-3.messagelabs.com id
 32/65-01732-62128395; Wed, 07 Jun 2017 15:52:06 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprIIsWRWlGSWpSXmKPExsXitHRDpK6qokW
 kwZlNJhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y+vECUwFK14xVvxaUdnAuGYaYxcjJ4eEgL/E
 vc5H7CA2m4CsxMeVn5lBbBEBdYl9n7cygdjMAmoS1/d3sYLYwgJWEm0/1oHVswioSHzu7mEBs
 XkFLCTePl/NAjFTTmLy4ktg8zkFLCWOTHsBNlMIqObxuyYWCFtJ4ttiiDivgKDEyZlPWCB2SU
 gcfPGCeQIj7ywkqVlIUgsYmVYxahSnFpWlFukaWeglFWWmZ5TkJmbm6BoaGOvlphYXJ6an5iQ
 mFesl5+duYgQGTz0DA+MOxvYTfocYJTmYlER5H0hbRArxJeWnVGYkFmfEF5XmpBYfYpTh4FCS
 4I1RAMoJFqWmp1akZeYAwxgmLcHBoyTCqy0HlOYtLkjMLc5Mh0idYtTl2LB6/RcmIZa8/LxUK
 XFeN5AZAiBFGaV5cCNgMXWJUVZKmJeRgYFBiKcgtSg3swRV/hWjOAejkjCvMMgUnsy8ErhNr4
 COYAI6gu+SCcgRJYkIKakGRtG/XCvVt+zMEP9vsDajx+yu6NKbT7y9Ts0Pk3nI4RvxjnWC1FN
 nr97fGYXd4X8sX24RWSwVeGfRnY2HDZ/KXpfa771i0tkfS8L5LFcarOVq/X0uZn36nftHncXu
 vjM4r5fD7NvwUdLlFPPFuQti/vXbvTkcXm8/9fvmK+GlBm5Pc3ojhKfpJyuxFGckGmoxFxUnA
 gAurikWpAIAAA==
X-Env-Sender: prvs=3245c1b58=owen.smith@citrix.com
X-Msg-Ref: server-13.tower-31.messagelabs.com!1496850723!103905076!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 35902 invoked from network); 7 Jun 2017 15:52:05 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-13.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 7 Jun 2017 15:52:05 -0000
X-IronPort-AV: E=Sophos;i="5.39,311,1493683200"; d="scan'208";a="426928159"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Wed, 7 Jun 2017 16:51:46 +0100
Message-ID: <20170607155148.376-2-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
In-Reply-To: <20170607155148.376-1-owen.smith@citrix.com>
References: <20170607155148.376-1-owen.smith@citrix.com>
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 2/4] xenvkbd: Move input reports to Ring.c
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKSGFzIHRoZSBiZW5lZml0
IG9mIG5vdCByZXF1aXJpbmcgYW5vdGhlciBzdXNwZW5kIGNhbGxiYWNrIG9yIGRlYnVnCmNhbGxi
YWNrCgpTaWduZWQtb2ZmLWJ5OiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+Ci0t
LQogc3JjL3hlbnZrYmQvaGlkLmMgIHwgNDA2ICsrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMveGVudmtiZC9oaWQuaCAgfCAgMjQgKy0tLQog
c3JjL3hlbnZrYmQvcGRvLmggIHwgIDM1IC0tLS0tCiBzcmMveGVudmtiZC9yaW5nLmMgfCAyNzEg
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIHNyYy94ZW52a2JkL3JpbmcuaCB8
ICAxNCArKwogNSBmaWxlcyBjaGFuZ2VkLCAzMzcgaW5zZXJ0aW9ucygrKSwgNDEzIGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW52a2JkL2hpZC5jIGIvc3JjL3hlbnZrYmQvaGlkLmMK
aW5kZXggNmRiNjYxMy4uMDNmYzFhMiAxMDA2NDQKLS0tIGEvc3JjL3hlbnZrYmQvaGlkLmMKKysr
IGIvc3JjL3hlbnZrYmQvaGlkLmMKQEAgLTQwLDYgKzQwLDcgQEAKIAogI2luY2x1ZGUgInBkby5o
IgogI2luY2x1ZGUgImhpZC5oIgorI2luY2x1ZGUgInJpbmcuaCIKICNpbmNsdWRlICJtcnN3Lmgi
CiAjaW5jbHVkZSAidGhyZWFkLmgiCiAjaW5jbHVkZSAidmtiZC5oIgpAQCAtNTEsMjAgKzUyLDEy
IEBAIHN0cnVjdCBfWEVOVktCRF9ISURfQ09OVEVYVCB7CiAgICAgUFhFTlZLQkRfUERPICAgICAg
ICAgICAgICAgIFBkbzsKICAgICBYRU5WS0JEX01SU1dfTE9DSyAgICAgICAgICAgTG9jazsKICAg
ICBMT05HICAgICAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlczsKKyAgICBQWEVOVktCRF9S
SU5HICAgICAgICAgICAgICAgUmluZzsKICAgICBQWEVOVktCRF9GUk9OVEVORCAgICAgICAgICAg
RnJvbnRlbmQ7CiAgICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgIEVuYWJsZWQ7CiAgICAg
VUxPTkcgICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb247CiAgICAgWEVOSElEX0hJRF9DQUxM
QkFDSyAgICAgICAgIENhbGxiYWNrOwogICAgIFBWT0lEICAgICAgICAgICAgICAgICAgICAgICBB
cmd1bWVudDsKLSAgICBYRU5CVVNfREVCVUdfSU5URVJGQUNFICAgICAgRGVidWdJbnRlcmZhY2U7
Ci0gICAgWEVOQlVTX1NVU1BFTkRfSU5URVJGQUNFICAgIFN1c3BlbmRJbnRlcmZhY2U7Ci0gICAg
UFhFTkJVU19ERUJVR19DQUxMQkFDSyAgICAgIERlYnVnQ2FsbGJhY2s7Ci0gICAgUFhFTkJVU19T
VVNQRU5EX0NBTExCQUNLICAgIFN1c3BlbmRDYWxsYmFja0xhdGU7Ci0KLSAgICBYRU5WS0JEX0hJ
RF9LRVlCT0FSRCAgICAgICAgS2V5Ym9hcmRSZXBvcnQ7Ci0gICAgWEVOVktCRF9ISURfQUJTTU9V
U0UgICAgICAgIEFic01vdXNlUmVwb3J0OwotICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAg
ICBLZXlib2FyZFBlbmRpbmc7Ci0gICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgIEFic01v
dXNlUGVuZGluZzsKIH07CiAKICNkZWZpbmUgWEVOVktCRF9WS0JEX1RBRyAgJ0ZJVicKQEAgLTEw
Nyw2OCArMTAwLDYgQEAgX19IaWRGcmVlKAogICAgIF9fRnJlZVBvb2xXaXRoVGFnKEJ1ZmZlciwg
WEVOVktCRF9WS0JEX1RBRyk7CiB9CiAKLXN0YXRpYyBERUNMU1BFQ19OT0lOTElORSBWT0lECi1I
aWRTdXNwZW5kQ2FsbGJhY2tMYXRlKAotICAgIElOICBQVk9JRCAgICAgICAgICAgICAgIEFyZ3Vt
ZW50Ci0gICAgKQotewotICAgIFBYRU5WS0JEX0hJRF9DT05URVhUICAgIENvbnRleHQgPSBBcmd1
bWVudDsKLSAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICBzdGF0dXM7Ci0KLSAgICBSdGxaZXJv
TWVtb3J5KCZDb250ZXh0LT5LZXlib2FyZFJlcG9ydCwgc2l6ZW9mKFhFTlZLQkRfSElEX0tFWUJP
QVJEKSk7Ci0gICAgUnRsWmVyb01lbW9yeSgmQ29udGV4dC0+QWJzTW91c2VSZXBvcnQsIHNpemVv
ZihYRU5WS0JEX0hJRF9BQlNNT1VTRSkpOwotICAgIENvbnRleHQtPktleWJvYXJkUmVwb3J0LlJl
cG9ydElkID0gMTsKLSAgICBDb250ZXh0LT5BYnNNb3VzZVJlcG9ydC5SZXBvcnRJZCA9IDI7Ci0K
LSAgICBpZiAoIUNvbnRleHQtPkVuYWJsZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIHN0YXR1
cyA9IEZyb250ZW5kU2V0U3RhdGUoQ29udGV4dC0+RnJvbnRlbmQsIEZST05URU5EX0VOQUJMRUQp
OwotICAgIEFTU0VSVChOVF9TVUNDRVNTKHN0YXR1cykpOwotfQotCi1zdGF0aWMgREVDTFNQRUNf
Tk9JTkxJTkUgVk9JRAotSGlkRGVidWdDYWxsYmFjaygKLSAgICBJTiAgUFZPSUQgICAgICAgICAg
ICAgICBBcmd1bWVudCwKLSAgICBJTiAgQk9PTEVBTiAgICAgICAgICAgICBDcmFzaGluZwotICAg
ICkKLXsKLSAgICBQWEVOVktCRF9ISURfQ09OVEVYVCAgICBDb250ZXh0ID0gQXJndW1lbnQ7Ci0K
LSAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKENyYXNoaW5nKTsKLQotICAgIFhFTkJVU19ERUJV
RyhQcmludGYsCi0gICAgICAgICAgICAgICAgICZDb250ZXh0LT5EZWJ1Z0ludGVyZmFjZSwKLSAg
ICAgICAgICAgICAgICAgIiV1IDB4JXAoMHglcCklc1xuIiwKLSAgICAgICAgICAgICAgICAgQ29u
dGV4dC0+VmVyc2lvbiwKLSAgICAgICAgICAgICAgICAgQ29udGV4dC0+Q2FsbGJhY2ssCi0gICAg
ICAgICAgICAgICAgIENvbnRleHQtPkFyZ3VtZW50LAotICAgICAgICAgICAgICAgICBDb250ZXh0
LT5FbmFibGVkID8gIiBFTkFCTEVEIiA6ICIiKTsKLQotICAgIFhFTkJVU19ERUJVRyhQcmludGYs
Ci0gICAgICAgICAgICAgICAgICZDb250ZXh0LT5EZWJ1Z0ludGVyZmFjZSwKLSAgICAgICAgICAg
ICAgICAgIktCRDogJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4JXNcbiIs
Ci0gICAgICAgICAgICAgICAgIENvbnRleHQtPktleWJvYXJkUmVwb3J0LlJlcG9ydElkLAotICAg
ICAgICAgICAgICAgICBDb250ZXh0LT5LZXlib2FyZFJlcG9ydC5Nb2RpZmllcnMsCi0gICAgICAg
ICAgICAgICAgIENvbnRleHQtPktleWJvYXJkUmVwb3J0LktleXNbMF0sCi0gICAgICAgICAgICAg
ICAgIENvbnRleHQtPktleWJvYXJkUmVwb3J0LktleXNbMV0sCi0gICAgICAgICAgICAgICAgIENv
bnRleHQtPktleWJvYXJkUmVwb3J0LktleXNbMl0sCi0gICAgICAgICAgICAgICAgIENvbnRleHQt
PktleWJvYXJkUmVwb3J0LktleXNbM10sCi0gICAgICAgICAgICAgICAgIENvbnRleHQtPktleWJv
YXJkUmVwb3J0LktleXNbNF0sCi0gICAgICAgICAgICAgICAgIENvbnRleHQtPktleWJvYXJkUmVw
b3J0LktleXNbNV0sCi0gICAgICAgICAgICAgICAgIENvbnRleHQtPktleWJvYXJkUGVuZGluZyA/
ICIgUEVORElORyIgOiAiIik7Ci0KLSAgICBYRU5CVVNfREVCVUcoUHJpbnRmLAotICAgICAgICAg
ICAgICAgICAmQ29udGV4dC0+RGVidWdJbnRlcmZhY2UsCi0gICAgICAgICAgICAgICAgICJNT1U6
ICUwMnggJTAyeCAlMDR4ICUwNHggJTAyeCVzXG4iLAotICAgICAgICAgICAgICAgICBDb250ZXh0
LT5BYnNNb3VzZVJlcG9ydC5SZXBvcnRJZCwKLSAgICAgICAgICAgICAgICAgQ29udGV4dC0+QWJz
TW91c2VSZXBvcnQuQnV0dG9ucywKLSAgICAgICAgICAgICAgICAgQ29udGV4dC0+QWJzTW91c2VS
ZXBvcnQuWCwKLSAgICAgICAgICAgICAgICAgQ29udGV4dC0+QWJzTW91c2VSZXBvcnQuWSwKLSAg
ICAgICAgICAgICAgICAgQ29udGV4dC0+QWJzTW91c2VSZXBvcnQuZFosCi0gICAgICAgICAgICAg
ICAgIENvbnRleHQtPkFic01vdXNlUGVuZGluZyA/ICIgUEVORElORyIgOiAiIik7Ci19Ci0KIHN0
YXRpYyBOVFNUQVRVUwogSGlkRW5hYmxlKAogICAgIElOICBQSU5URVJGQUNFICAgICAgICAgIElu
dGVyZmFjZSwKQEAgLTE5NiwzNSArMTI3LDkgQEAgSGlkRW5hYmxlKAogCiAgICAgS2VNZW1vcnlC
YXJyaWVyKCk7CiAKLSAgICBzdGF0dXMgPSBYRU5CVVNfU1VTUEVORChBY3F1aXJlLCAmQ29udGV4
dC0+U3VzcGVuZEludGVyZmFjZSk7Ci0gICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAg
ICAgIGdvdG8gZmFpbDE7Ci0KICAgICBzdGF0dXMgPSBGcm9udGVuZFNldFN0YXRlKENvbnRleHQt
PkZyb250ZW5kLCBGUk9OVEVORF9FTkFCTEVEKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVz
KSkKLSAgICAgICAgZ290byBmYWlsMjsKLQotICAgIHN0YXR1cyA9IFhFTkJVU19TVVNQRU5EKFJl
Z2lzdGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICZDb250ZXh0LT5TdXNwZW5kSW50
ZXJmYWNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNVU1BFTkRfQ0FMTEJBQ0tfTEFU
RSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBIaWRTdXNwZW5kQ2FsbGJhY2tMYXRlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRleHQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJkNvbnRleHQtPlN1c3BlbmRDYWxsYmFja0xhdGUpOwotICAgIGlmICghTlRfU1VD
Q0VTUyhzdGF0dXMpKQotICAgICAgICBnb3RvIGZhaWwzOwotCi0gICAgc3RhdHVzID0gWEVOQlVT
X0RFQlVHKEFjcXVpcmUsICZDb250ZXh0LT5EZWJ1Z0ludGVyZmFjZSk7Ci0gICAgaWYgKCFOVF9T
VUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDQ7Ci0KLSAgICBzdGF0dXMgPSBYRU5C
VVNfREVCVUcoUmVnaXN0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICZDb250ZXh0LT5E
ZWJ1Z0ludGVyZmFjZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgX19NT0RVTEVfXyJ8REVC
VUciLAotICAgICAgICAgICAgICAgICAgICAgICAgICBIaWREZWJ1Z0NhbGxiYWNrLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICBDb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAm
Q29udGV4dC0+RGVidWdDYWxsYmFjayk7Ci0gICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0g
ICAgICAgIGdvdG8gZmFpbDU7CisgICAgICAgIGdvdG8gZmFpbDE7CiAKIGRvbmU6CiAgICAgQVNT
RVJUKEV4Y2x1c2l2ZSk7CkBAIC0yMzQsMzIgKzEzOSw2IEBAIGRvbmU6CiAKICAgICByZXR1cm4g
U1RBVFVTX1NVQ0NFU1M7CiAKLWZhaWw1OgotICAgIEVycm9yKCJmYWlsNVxuIik7Ci0KLSAgICBY
RU5CVVNfREVCVUcoUmVsZWFzZSwgJkNvbnRleHQtPkRlYnVnSW50ZXJmYWNlKTsKLQotZmFpbDQ6
Ci0gICAgRXJyb3IoImZhaWw0XG4iKTsKLQotICAgIFhFTkJVU19TVVNQRU5EKERlcmVnaXN0ZXIs
Ci0gICAgICAgICAgICAgICAgICAgJkNvbnRleHQtPlN1c3BlbmRJbnRlcmZhY2UsCi0gICAgICAg
ICAgICAgICAgICAgQ29udGV4dC0+U3VzcGVuZENhbGxiYWNrTGF0ZSk7Ci0gICAgQ29udGV4dC0+
U3VzcGVuZENhbGxiYWNrTGF0ZSA9IE5VTEw7Ci0KLWZhaWwzOgotICAgIEVycm9yKCJmYWlsM1xu
Iik7Ci0KLSAgICAoVk9JRCkgRnJvbnRlbmRTZXRTdGF0ZShDb250ZXh0LT5Gcm9udGVuZCwgRlJP
TlRFTkRfQ09OTkVDVEVEKTsKLQotICAgIFJlbGVhc2VNcnN3TG9ja0V4Y2x1c2l2ZSgmQ29udGV4
dC0+TG9jaywgSXJxbCwgVFJVRSk7Ci0gICAgRXhjbHVzaXZlID0gRkFMU0U7Ci0KLWZhaWwyOgot
ICAgIEVycm9yKCJmYWlsMlxuIik7Ci0KLSAgICBYRU5CVVNfU1VTUEVORChSZWxlYXNlLCAmQ29u
dGV4dC0+U3VzcGVuZEludGVyZmFjZSk7Ci0KIGZhaWwxOgogICAgIEVycm9yKCJmYWlsMSAoJTA4
eClcbiIsIHN0YXR1cyk7CiAKQEAgLTI5OSwyNCArMTc4LDEwIEBAIEhpZERpc2FibGUoCiAKICAg
ICBLZU1lbW9yeUJhcnJpZXIoKTsKIAotICAgIFhFTkJVU19ERUJVRyhEZXJlZ2lzdGVyLAotICAg
ICAgICAgICAgICAgICAmQ29udGV4dC0+RGVidWdJbnRlcmZhY2UsCi0gICAgICAgICAgICAgICAg
IENvbnRleHQtPkRlYnVnQ2FsbGJhY2spOwotICAgIENvbnRleHQtPkRlYnVnQ2FsbGJhY2sgPSBO
VUxMOwotCi0gICAgWEVOQlVTX0RFQlVHKFJlbGVhc2UsICZDb250ZXh0LT5EZWJ1Z0ludGVyZmFj
ZSk7Ci0KLSAgICBYRU5CVVNfU1VTUEVORChEZXJlZ2lzdGVyLAotICAgICAgICAgICAgICAgICAg
ICZDb250ZXh0LT5TdXNwZW5kSW50ZXJmYWNlLAotICAgICAgICAgICAgICAgICAgIENvbnRleHQt
PlN1c3BlbmRDYWxsYmFja0xhdGUpOwotICAgIENvbnRleHQtPlN1c3BlbmRDYWxsYmFja0xhdGUg
PSBOVUxMOwotCiAgICAgKFZPSUQpIEZyb250ZW5kU2V0U3RhdGUoQ29udGV4dC0+RnJvbnRlbmQs
IEZST05URU5EX0NPTk5FQ1RFRCk7CiAKICAgICBSZWxlYXNlTXJzd0xvY2tFeGNsdXNpdmUoJkNv
bnRleHQtPkxvY2ssIElycWwsIFRSVUUpOwogCi0gICAgWEVOQlVTX1NVU1BFTkQoUmVsZWFzZSwg
JkNvbnRleHQtPlN1c3BlbmRJbnRlcmZhY2UpOwotCiAgICAgQ29udGV4dC0+QXJndW1lbnQgPSBO
VUxMOwogICAgIENvbnRleHQtPkNhbGxiYWNrID0gTlVMTDsKIApAQCAtNDY3LDggKzMzMiwxMyBA
QCBIaWRHZXRJbmRleGVkU3RyaW5nKAogICAgIFRyYWNlKCI9PT09PT5cbiIpOwogICAgIEFjcXVp
cmVNcnN3TG9ja1NoYXJlZCgmQ29udGV4dC0+TG9jayk7CiAKKyAgICBzdGF0dXMgPSBTVEFUVVNf
REVWSUNFX05PVF9SRUFEWTsKKyAgICBpZiAoIUNvbnRleHQtPkVuYWJsZWQpCisgICAgICAgIGdv
dG8gZG9uZTsKKwogICAgIHN0YXR1cyA9IFNUQVRVU19OT1RfU1VQUE9SVEVEOwotICAKKworZG9u
ZToKICAgICBSZWxlYXNlTXJzd0xvY2tTaGFyZWQoJkNvbnRleHQtPkxvY2spOwogICAgIFRyYWNl
KCI8PT09PT1cbiIpOwogCkBAIC00OTQsOCArMzY0LDEzIEBAIEhpZEdldEZlYXR1cmUoCiAgICAg
VHJhY2UoIj09PT09PlxuIik7CiAgICAgQWNxdWlyZU1yc3dMb2NrU2hhcmVkKCZDb250ZXh0LT5M
b2NrKTsKIAorICAgIHN0YXR1cyA9IFNUQVRVU19ERVZJQ0VfTk9UX1JFQURZOworICAgIGlmICgh
Q29udGV4dC0+RW5hYmxlZCkKKyAgICAgICAgZ290byBkb25lOworCiAgICAgc3RhdHVzID0gU1RB
VFVTX05PVF9TVVBQT1JURUQ7Ci0gIAorCitkb25lOgogICAgIFJlbGVhc2VNcnN3TG9ja1NoYXJl
ZCgmQ29udGV4dC0+TG9jayk7CiAgICAgVHJhY2UoIjw9PT09PVxuIik7CiAKQEAgLTUyMCw4ICsz
OTUsMTMgQEAgSGlkU2V0RmVhdHVyZSgKICAgICBUcmFjZSgiPT09PT0+XG4iKTsKICAgICBBY3F1
aXJlTXJzd0xvY2tTaGFyZWQoJkNvbnRleHQtPkxvY2spOwogCisgICAgc3RhdHVzID0gU1RBVFVT
X0RFVklDRV9OT1RfUkVBRFk7CisgICAgaWYgKCFDb250ZXh0LT5FbmFibGVkKQorICAgICAgICBn
b3RvIGRvbmU7CisKICAgICBzdGF0dXMgPSBTVEFUVVNfTk9UX1NVUFBPUlRFRDsKLSAgCisKK2Rv
bmU6CiAgICAgUmVsZWFzZU1yc3dMb2NrU2hhcmVkKCZDb250ZXh0LT5Mb2NrKTsKICAgICBUcmFj
ZSgiPD09PT09XG4iKTsKIApAQCAtNTQ2LDMyICs0MjYsMjAgQEAgSGlkR2V0SW5wdXRSZXBvcnQo
CiAgICAgVHJhY2UoIj09PT09PlxuIik7CiAgICAgQWNxdWlyZU1yc3dMb2NrU2hhcmVkKCZDb250
ZXh0LT5Mb2NrKTsKIAotICAgIHN3aXRjaCAoUmVwb3J0SWQpIHsKLSAgICBjYXNlIDE6Ci0gICAg
ICAgIHN0YXR1cyA9IEhpZENvcHlCdWZmZXIoQnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udGV4
dC0+S2V5Ym9hcmRSZXBvcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9m
KFhFTlZLQkRfSElEX0tFWUJPQVJEKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS
ZXR1cm5lZCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgMjoKLSAgICAgICAgc3RhdHVzID0g
SGlkQ29weUJ1ZmZlcihCdWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVu
Z3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZDb250ZXh0LT5BYnNNb3VzZVJl
cG9ydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoWEVOVktCRF9ISURf
QUJTTU9VU0UpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybmVkKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgc3RhdHVzID0gU1RBVFVTX05PVF9T
VVBQT1JURUQ7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgCisgICAgc3RhdHVzID0gU1RBVFVT
X0RFVklDRV9OT1RfUkVBRFk7CisgICAgaWYgKCFDb250ZXh0LT5FbmFibGVkKQorICAgICAgICBn
b3RvIGRvbmU7CisKKyAgICBzdGF0dXMgPSBSaW5nR2V0SW5wdXRSZXBvcnQoQ29udGV4dC0+Umlu
ZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVwb3J0SWQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgTGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm5lZCk7
CisKK2RvbmU6CiAgICAgUmVsZWFzZU1yc3dMb2NrU2hhcmVkKCZDb250ZXh0LT5Mb2NrKTsKICAg
ICBUcmFjZSgiPD09PT09XG4iKTsKIAotICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoUmVwb3J0
SWQpOwotICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoQnVmZmVyKTsKLSAgICBVTlJFRkVSRU5D
RURfUEFSQU1FVEVSKExlbmd0aCk7CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIApAQCAtNTg5LDgg
KzQ1NywxMyBAQCBIaWRTZXRPdXRwdXRSZXBvcnQoCiAgICAgVHJhY2UoIj09PT09PlxuIik7CiAg
ICAgQWNxdWlyZU1yc3dMb2NrU2hhcmVkKCZDb250ZXh0LT5Mb2NrKTsKIAorICAgIHN0YXR1cyA9
IFNUQVRVU19ERVZJQ0VfTk9UX1JFQURZOworICAgIGlmICghQ29udGV4dC0+RW5hYmxlZCkKKyAg
ICAgICAgZ290byBkb25lOworCiAgICAgc3RhdHVzID0gU1RBVFVTX05PVF9TVVBQT1JURUQ7Ci0g
IAorCitkb25lOgogICAgIFJlbGVhc2VNcnN3TG9ja1NoYXJlZCgmQ29udGV4dC0+TG9jayk7CiAg
ICAgVHJhY2UoIjw9PT09PVxuIik7CiAKQEAgLTYwMCwyMyArNDczLDYgQEAgSGlkU2V0T3V0cHV0
UmVwb3J0KAogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKLXN0YXRpYyBCT09MRUFOCi1IaWRTZW5k
UmVhZFJlcG9ydCgKLSAgICBJTiAgUFhFTlZLQkRfSElEX0NPTlRFWFQgICAgQ29udGV4dCwKLSAg
ICBJTiAgUFZPSUQgICAgICAgICAgICAgICAgICAgQnVmZmVyLAotICAgIElOICBVTE9ORyAgICAg
ICAgICAgICAgICAgICBMZW5ndGgKLSAgICApCi17Ci0gICAgaWYgKCFDb250ZXh0LT5FbmFibGVk
KQotICAgICAgICByZXR1cm4gVFJVRTsgLy8gZmxhZyBhcyBwZW5kaW5nCi0KLSAgICAvLyBDYWxs
YmFjayByZXR1cm5zIFRSVUUgb24gc3VjY2VzcywgRkFMU0Ugd2hlbiBJcnAgY291bGQgbm90IGJl
IGNvbXBsZXRlZAotICAgIC8vIEludmVydCB0aGUgcmVzdWx0IHRvIGluZGljYXRlIFBlbmRpbmcg
c3RhdGUKLSAgICByZXR1cm4gIUNvbnRleHQtPkNhbGxiYWNrKENvbnRleHQtPkFyZ3VtZW50LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTGVuZ3RoKTsKLX0KLQogc3RhdGljIFZPSUQKIEhpZFJlYWRSZXBvcnQoCiAg
ICAgSU4gIFBJTlRFUkZBQ0UgICAgICAgICAgSW50ZXJmYWNlCkBAIC02MjYsMTUgKzQ4Miw4IEBA
IEhpZFJlYWRSZXBvcnQoCiAKICAgICBBY3F1aXJlTXJzd0xvY2tTaGFyZWQoJkNvbnRleHQtPkxv
Y2spOwogCi0gICAgLy8gQ2hlY2sgZm9yIHBlbmRpbmcgcmVwb3J0cywgcHVzaCAxIHBlbmRpbmcg
cmVwb3J0IHRvIHN1YnNjcmliZXIKLSAgICBpZiAoQ29udGV4dC0+S2V5Ym9hcmRQZW5kaW5nKQot
ICAgICAgICBDb250ZXh0LT5LZXlib2FyZFBlbmRpbmcgPSBIaWRTZW5kUmVhZFJlcG9ydChDb250
ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmQ29udGV4dC0+S2V5Ym9hcmRSZXBvcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihYRU5WS0JEX0hJRF9LRVlCT0FSRCkpOwot
ICAgIGVsc2UgaWYgKENvbnRleHQtPkFic01vdXNlUGVuZGluZykKLSAgICAgICAgQ29udGV4dC0+
QWJzTW91c2VQZW5kaW5nID0gSGlkU2VuZFJlYWRSZXBvcnQoQ29udGV4dCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkNvbnRleHQtPkFic01v
dXNlUmVwb3J0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplb2YoWEVOVktCRF9ISURfQUJTTU9VU0UpKTsKKyAgICBpZiAoQ29udGV4dC0+
RW5hYmxlZCkKKyAgICAgICAgUmluZ1JlYWRSZXBvcnQoQ29udGV4dC0+UmluZyk7CiAKICAgICBS
ZWxlYXNlTXJzd0xvY2tTaGFyZWQoJkNvbnRleHQtPkxvY2spOwogfQpAQCAtNjUzLDggKzUwMiwx
MyBAQCBIaWRXcml0ZVJlcG9ydCgKICAgICBUcmFjZSgiPT09PT0+XG4iKTsKICAgICBBY3F1aXJl
TXJzd0xvY2tTaGFyZWQoJkNvbnRleHQtPkxvY2spOwogCisgICAgc3RhdHVzID0gU1RBVFVTX0RF
VklDRV9OT1RfUkVBRFk7CisgICAgaWYgKCFDb250ZXh0LT5FbmFibGVkKQorICAgICAgICBnb3Rv
IGRvbmU7CisKICAgICBzdGF0dXMgPSBTVEFUVVNfTk9UX1NVUFBPUlRFRDsKLSAgCisKK2RvbmU6
CiAgICAgUmVsZWFzZU1yc3dMb2NrU2hhcmVkKCZDb250ZXh0LT5Mb2NrKTsKICAgICBUcmFjZSgi
PD09PT09XG4iKTsKIApAQCAtNjgwLDYgKzUzNCw3IEBAIEhpZEFjcXVpcmUoCiAgICAgVHJhY2Uo
Ij09PT0+XG4iKTsKIAogICAgIENvbnRleHQtPkZyb250ZW5kID0gUGRvR2V0RnJvbnRlbmQoQ29u
dGV4dC0+UGRvKTsKKyAgICBDb250ZXh0LT5SaW5nID0gRnJvbnRlbmRHZXRSaW5nKENvbnRleHQt
PkZyb250ZW5kKTsKICAgICBDb250ZXh0LT5WZXJzaW9uID0gSW50ZXJmYWNlLT5WZXJzaW9uOwog
CiAgICAgVHJhY2UoIjw9PT09XG4iKTsKQEAgLTcwOSw2ICs1NjQsNyBAQCBIaWRSZWxlYXNlKAog
CiAgICAgQ29udGV4dC0+VmVyc2lvbiA9IDA7CiAgICAgQ29udGV4dC0+RnJvbnRlbmQgPSBOVUxM
OworICAgIENvbnRleHQtPlJpbmcgPSBOVUxMOwogCiAgICAgVHJhY2UoIjw9PT09XG4iKTsKIApA
QCAtNzUzLDEyICs2MDksNyBAQCBIaWRJbml0aWFsaXplKAogCiAgICAgSW5pdGlhbGl6ZU1yc3dM
b2NrKCYoKkNvbnRleHQpLT5Mb2NrKTsKIAotICAgIEZkb0dldERlYnVnSW50ZXJmYWNlKFBkb0dl
dEZkbyhQZG8pLCYoKkNvbnRleHQpLT5EZWJ1Z0ludGVyZmFjZSk7Ci0gICAgRmRvR2V0U3VzcGVu
ZEludGVyZmFjZShQZG9HZXRGZG8oUGRvKSwmKCpDb250ZXh0KS0+U3VzcGVuZEludGVyZmFjZSk7
Ci0KICAgICAoKkNvbnRleHQpLT5QZG8gPSBQZG87Ci0gICAgKCpDb250ZXh0KS0+S2V5Ym9hcmRS
ZXBvcnQuUmVwb3J0SWQgPSAxOwotICAgICgqQ29udGV4dCktPkFic01vdXNlUmVwb3J0LlJlcG9y
dElkID0gMjsKIAogICAgIFRyYWNlKCI8PT09PVxuIik7CiAKQEAgLTgxMywxOSArNjY0LDkgQEAg
SGlkVGVhcmRvd24oCiB7CiAgICAgVHJhY2UoIj09PT0+XG4iKTsKIAotICAgIFJ0bFplcm9NZW1v
cnkoJkNvbnRleHQtPktleWJvYXJkUmVwb3J0LCBzaXplb2YoWEVOVktCRF9ISURfS0VZQk9BUkQp
KTsKLSAgICBSdGxaZXJvTWVtb3J5KCZDb250ZXh0LT5BYnNNb3VzZVJlcG9ydCwgc2l6ZW9mKFhF
TlZLQkRfSElEX0FCU01PVVNFKSk7Ci0gICAgQ29udGV4dC0+S2V5Ym9hcmRQZW5kaW5nID0gRkFM
U0U7Ci0gICAgQ29udGV4dC0+QWJzTW91c2VQZW5kaW5nID0gRkFMU0U7Ci0KICAgICBDb250ZXh0
LT5QZG8gPSBOVUxMOwogICAgIENvbnRleHQtPlZlcnNpb24gPSAwOwogCi0gICAgUnRsWmVyb01l
bW9yeSgmQ29udGV4dC0+U3VzcGVuZEludGVyZmFjZSwKLSAgICAgICAgICAgICAgICAgIHNpemVv
ZiAoWEVOQlVTX1NVU1BFTkRfSU5URVJGQUNFKSk7Ci0gICAgUnRsWmVyb01lbW9yeSgmQ29udGV4
dC0+RGVidWdJbnRlcmZhY2UsCi0gICAgICAgICAgICAgICAgICBzaXplb2YgKFhFTkJVU19ERUJV
R19JTlRFUkZBQ0UpKTsKLQogICAgIFJ0bFplcm9NZW1vcnkoJkNvbnRleHQtPkxvY2ssIHNpemVv
ZiAoWEVOVktCRF9NUlNXX0xPQ0spKTsKIAogICAgIEFTU0VSVChJc1plcm9NZW1vcnkoQ29udGV4
dCwgc2l6ZW9mIChYRU5WS0JEX0hJRF9DT05URVhUKSkpOwpAQCAtODM0LDE0OCArNjc1LDE5IEBA
IEhpZFRlYXJkb3duKAogICAgIFRyYWNlKCI8PT09PVxuIik7CiB9CiAKLXN0YXRpYyBGT1JDRUlO
TElORSBMT05HCi1Db25zdHJhaW4oCi0gICAgSU4gIExPTkcgICAgVmFsdWUsCi0gICAgSU4gIExP
TkcgICAgTWluLAotICAgIElOICBMT05HICAgIE1heAotICAgICkKLXsKLSAgICBpZiAoVmFsdWUg
PCBNaW4pCi0gICAgICAgIHJldHVybiBNaW47Ci0gICAgaWYgKFZhbHVlID4gTWF4KQotICAgICAg
ICByZXR1cm4gTWF4OwotICAgIHJldHVybiBWYWx1ZTsKLX0KLQotc3RhdGljIEZPUkNFSU5MSU5F
IFVDSEFSCi1TZXRCaXQoCi0gICAgSU4gIFVDSEFSICAgVmFsdWUsCi0gICAgSU4gIFVDSEFSICAg
Qml0SWR4LAotICAgIElOICBCT09MRUFOIFByZXNzZWQKLSAgICApCi17Ci0gICAgaWYgKFByZXNz
ZWQpIHsKLSAgICAgICAgcmV0dXJuIFZhbHVlIHwgKDEgPDwgQml0SWR4KTsKLSAgICB9IGVsc2Ug
ewotICAgICAgICByZXR1cm4gVmFsdWUgJiB+KDEgPDwgQml0SWR4KTsKLSAgICB9Ci19Ci0KLXN0
YXRpYyBGT1JDRUlOTElORSBWT0lECi1TZXRBcnJheSgKLSAgICBJTiAgUFVDSEFSICBBcnJheSwK
LSAgICBJTiAgVUxPTkcgICBTaXplLAotICAgIElOICBVQ0hBUiAgIFZhbHVlLAotICAgIElOICBC
T09MRUFOIFByZXNzZWQKLSAgICApCi17Ci0gICAgVUxPTkcgICAgICAgSWR4OwotICAgIGlmIChQ
cmVzc2VkKSB7Ci0gICAgICAgIGZvciAoSWR4ID0gMDsgSWR4IDwgU2l6ZTsgKytJZHgpIHsKLSAg
ICAgICAgICAgIGlmIChBcnJheVtJZHhdID09IFZhbHVlKQotICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgaWYgKEFycmF5W0lkeF0gIT0gMCkKLSAgICAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgICAgIEFycmF5W0lkeF0gPSBWYWx1ZTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZm9yIChJZHggPSAwOyBJZHggPCBT
aXplOyArK0lkeCkgewotICAgICAgICAgICAgaWYgKEFycmF5W0lkeF0gPT0gMCkKLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGlmIChBcnJheVtJZHhdICE9IFZhbHVlKQotICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgZm9yICg7IElkeCA8IFNpemUgLSAx
OyArK0lkeCkKLSAgICAgICAgICAgICAgICBBcnJheVtJZHhdID0gQXJyYXlbSWR4ICsgMV07Ci0g
ICAgICAgICAgICBBcnJheVtTaXplIC0gMV0gPSAwOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KLSAgICB9Ci19Ci0KLXN0YXRpYyBGT1JDRUlOTElORSBVU0hPUlQKLUtleUNvZGVUb1Vz
YWdlKAotICAgIElOICBVTE9ORyAgIEtleUNvZGUKLSAgICApCi17Ci0gICAgaWYgKEtleUNvZGUg
PCBzaXplb2YoVmtiZEtleUNvZGVUb1VzYWdlKS9zaXplb2YoVmtiZEtleUNvZGVUb1VzYWdlWzBd
KSkKLSAgICAgICAgcmV0dXJuIFZrYmRLZXlDb2RlVG9Vc2FnZVtLZXlDb2RlXTsKLSAgICByZXR1
cm4gMDsKLX0KLQotVk9JRAotSGlkRXZlbnRNb3Rpb24oCi0gICAgSU4gIFBYRU5WS0JEX0hJRF9D
T05URVhUICAgIENvbnRleHQsCi0gICAgSU4gIExPTkcgICAgICAgICAgICAgICAgICAgIGRYLAot
ICAgIElOICBMT05HICAgICAgICAgICAgICAgICAgICBkWSwKLSAgICBJTiAgTE9ORyAgICAgICAg
ICAgICAgICAgICAgZFoKLSAgICApCi17Ci0gICAgQ29udGV4dC0+QWJzTW91c2VSZXBvcnQuWCA9
IChVU0hPUlQpQ29uc3RyYWluKENvbnRleHQtPkFic01vdXNlUmVwb3J0LlggKyBkWCwgMCwgMzI3
NjcpOwotICAgIENvbnRleHQtPkFic01vdXNlUmVwb3J0LlkgPSAoVVNIT1JUKUNvbnN0cmFpbihD
b250ZXh0LT5BYnNNb3VzZVJlcG9ydC5ZICsgZFksIDAsIDMyNzY3KTsKLSAgICBDb250ZXh0LT5B
YnNNb3VzZVJlcG9ydC5kWiA9IC0oQ0hBUilDb25zdHJhaW4oZFosIC0xMjcsIDEyNyk7Ci0KLSAg
ICBDb250ZXh0LT5BYnNNb3VzZVBlbmRpbmcgPSBIaWRTZW5kUmVhZFJlcG9ydChDb250ZXh0LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZDb250ZXh0
LT5BYnNNb3VzZVJlcG9ydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplb2YoWEVOVktCRF9ISURfQUJTTU9VU0UpKTsKLX0KLQotVk9JRAotSGlk
RXZlbnRLZXlwcmVzcygKLSAgICBJTiAgUFhFTlZLQkRfSElEX0NPTlRFWFQgICAgQ29udGV4dCwK
LSAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICAgICAgS2V5Q29kZSwKLSAgICBJTiAgQk9PTEVB
TiAgICAgICAgICAgICAgICAgUHJlc3NlZAotICAgICkKLXsKLSAgICBpZiAoS2V5Q29kZSA+PSAw
eDExMCAmJiBLZXlDb2RlIDw9IDB4MTE0KSB7Ci0gICAgICAgIC8vIE1vdXNlIEJ1dHRvbnMKLSAg
ICAgICAgQ29udGV4dC0+QWJzTW91c2VSZXBvcnQuQnV0dG9ucyA9IFNldEJpdChDb250ZXh0LT5B
YnNNb3VzZVJlcG9ydC5CdXR0b25zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChVQ0hBUikoS2V5Q29kZSAtIDB4MTEwKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVzc2VkKTsKLQotICAgICAgICBD
b250ZXh0LT5BYnNNb3VzZVBlbmRpbmcgPSBIaWRTZW5kUmVhZFJlcG9ydChDb250ZXh0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZDb250ZXh0
LT5BYnNNb3VzZVJlcG9ydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplb2YoWEVOVktCRF9ISURfQUJTTU9VU0UpKTsKLQotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIC8vIG1hcCBLZXlDb2RlIHRvIFVzYWdlCi0gICAgICAgIFVTSE9SVCAgVXNh
Z2UgPSBLZXlDb2RlVG9Vc2FnZShLZXlDb2RlKTsKLSAgICAgICAgaWYgKFVzYWdlID09IDApCi0g
ICAgICAgICAgICByZXR1cm47IC8vIG5vbi1zdGFuZGFyZCBrZXkKLQotICAgICAgICBpZiAoVXNh
Z2UgPj0gMHhFMCAmJiBVc2FnZSA8PSAweEU3KSB7Ci0gICAgICAgICAgICAvLyBNb2RpZmllcgot
ICAgICAgICAgICAgQ29udGV4dC0+S2V5Ym9hcmRSZXBvcnQuTW9kaWZpZXJzID0gU2V0Qml0KENv
bnRleHQtPktleWJvYXJkUmVwb3J0Lk1vZGlmaWVycywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVUNIQVIpKFVzYWdlIC0gMHhFMCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJl
c3NlZCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvLyBTdGFuZGFyZCBLZXkKLSAg
ICAgICAgICAgIFNldEFycmF5KENvbnRleHQtPktleWJvYXJkUmVwb3J0LktleXMsCi0gICAgICAg
ICAgICAgICAgICAgICA2LAotICAgICAgICAgICAgICAgICAgICAgKFVDSEFSKVVzYWdlLAotICAg
ICAgICAgICAgICAgICAgICAgUHJlc3NlZCk7Ci0gICAgICAgIH0KLSAgICAgICAgQ29udGV4dC0+
S2V5Ym9hcmRQZW5kaW5nID0gSGlkU2VuZFJlYWRSZXBvcnQoQ29udGV4dCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udGV4dC0+S2V5Ym9h
cmRSZXBvcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2l6ZW9mKFhFTlZLQkRfSElEX0tFWUJPQVJEKSk7Ci0KLSAgICB9Ci19Ci0KLVZPSUQK
LUhpZEV2ZW50UG9zaXRpb24oCitCT09MRUFOCitIaWRTZW5kUmVhZFJlcG9ydCgKICAgICBJTiAg
UFhFTlZLQkRfSElEX0NPTlRFWFQgICAgQ29udGV4dCwKLSAgICBJTiAgVUxPTkcgICAgICAgICAg
ICAgICAgICAgWCwKLSAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICAgICAgWSwKLSAgICBJTiAg
TE9ORyAgICAgICAgICAgICAgICAgICAgZFoKKyAgICBJTiAgUFZPSUQgICAgICAgICAgICAgICAg
ICAgQnVmZmVyLAorICAgIElOICBVTE9ORyAgICAgICAgICAgICAgICAgICBMZW5ndGgKICAgICAp
CiB7Ci0gICAgQ29udGV4dC0+QWJzTW91c2VSZXBvcnQuWCA9IChVU0hPUlQpQ29uc3RyYWluKFgs
IDAsIDMyNzY3KTsKLSAgICBDb250ZXh0LT5BYnNNb3VzZVJlcG9ydC5ZID0gKFVTSE9SVClDb25z
dHJhaW4oWSwgMCwgMzI3NjcpOwotICAgIENvbnRleHQtPkFic01vdXNlUmVwb3J0LmRaID0gLShD
SEFSKUNvbnN0cmFpbihkWiwgLTEyNywgMTI3KTsKKyAgICBpZiAoIUNvbnRleHQtPkVuYWJsZWQp
CisgICAgICAgIHJldHVybiBUUlVFOyAvLyBmbGFnIGFzIHBlbmRpbmcKIAotICAgIENvbnRleHQt
PkFic01vdXNlUGVuZGluZyA9IEhpZFNlbmRSZWFkUmVwb3J0KENvbnRleHQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkNvbnRleHQtPkFic01vdXNl
UmVwb3J0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVvZihYRU5WS0JEX0hJRF9BQlNNT1VTRSkpOworICAgIC8vIENhbGxiYWNrIHJldHVybnMg
VFJVRSBvbiBzdWNjZXNzLCBGQUxTRSB3aGVuIElycCBjb3VsZCBub3QgYmUgY29tcGxldGVkCisg
ICAgLy8gSW52ZXJ0IHRoZSByZXN1bHQgdG8gaW5kaWNhdGUgUGVuZGluZyBzdGF0ZQorICAgIHJl
dHVybiAhQ29udGV4dC0+Q2FsbGJhY2soQ29udGV4dC0+QXJndW1lbnQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
ZW5ndGgpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZrYmQvaGlkLmggYi9zcmMveGVudmtiZC9o
aWQuaAppbmRleCBlYzM4ZTI4Li4xMTZmNzQ5IDEwMDY0NAotLS0gYS9zcmMveGVudmtiZC9oaWQu
aAorKysgYi9zcmMveGVudmtiZC9oaWQuaApAQCAtNjIsMjcgKzYyLDExIEBAIEhpZFRlYXJkb3du
KAogCiAvLyBDQUxMQkFDS1MKIAotZXh0ZXJuIFZPSUQKLUhpZEV2ZW50TW90aW9uKAotICAgIElO
ICBQWEVOVktCRF9ISURfQ09OVEVYVCAgICBDb250ZXh0LAotICAgIElOICBMT05HICAgICAgICAg
ICAgICAgICAgICBkWCwKLSAgICBJTiAgTE9ORyAgICAgICAgICAgICAgICAgICAgZFksCi0gICAg
SU4gIExPTkcgICAgICAgICAgICAgICAgICAgIGRaCi0gICAgKTsKLQotZXh0ZXJuIFZPSUQKLUhp
ZEV2ZW50S2V5cHJlc3MoCi0gICAgSU4gIFBYRU5WS0JEX0hJRF9DT05URVhUICAgIENvbnRleHQs
Ci0gICAgSU4gIFVMT05HICAgICAgICAgICAgICAgICAgIEtleUNvZGUsCi0gICAgSU4gIEJPT0xF
QU4gICAgICAgICAgICAgICAgIFByZXNzZWQKLSAgICApOwotCi1leHRlcm4gVk9JRAotSGlkRXZl
bnRQb3NpdGlvbigKK2V4dGVybiBCT09MRUFOCitIaWRTZW5kUmVhZFJlcG9ydCgKICAgICBJTiAg
UFhFTlZLQkRfSElEX0NPTlRFWFQgICAgQ29udGV4dCwKLSAgICBJTiAgVUxPTkcgICAgICAgICAg
ICAgICAgICAgWCwKLSAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICAgICAgWSwKLSAgICBJTiAg
TE9ORyAgICAgICAgICAgICAgICAgICAgZFoKKyAgICBJTiAgUFZPSUQgICAgICAgICAgICAgICAg
ICAgQnVmZmVyLAorICAgIElOICBVTE9ORyAgICAgICAgICAgICAgICAgICBMZW5ndGgKICAgICAp
OwogCiAjZW5kaWYgIC8vIF9YRU5WS0JEX1ZLQkRfSApkaWZmIC0tZ2l0IGEvc3JjL3hlbnZrYmQv
cGRvLmggYi9zcmMveGVudmtiZC9wZG8uaAppbmRleCBhMjM4MTFlLi41ZTY4YTg2IDEwMDY0NAot
LS0gYS9zcmMveGVudmtiZC9wZG8uaAorKysgYi9zcmMveGVudmtiZC9wZG8uaApAQCAtMTQ3LDM2
ICsxNDcsNiBAQCBQZG9HZXRGcm9udGVuZCgKICAgICBJTiAgUFhFTlZLQkRfUERPICAgIFBkbwog
ICAgICk7CiAKLWV4dGVybiBQWEVOQlVTX0VWVENITl9JTlRFUkZBQ0UKLVBkb0dldEV2dGNobklu
dGVyZmFjZSgKLSAgICBJTiAgUFhFTlZLQkRfUERPICAgIFBkbwotICAgICk7Ci0KLWV4dGVybiBQ
WEVOQlVTX0RFQlVHX0lOVEVSRkFDRQotUGRvR2V0RGVidWdJbnRlcmZhY2UoCi0gICAgSU4gIFBY
RU5WS0JEX1BETyAgICBQZG8KLSAgICApOwotCi1leHRlcm4gUFhFTkJVU19TVE9SRV9JTlRFUkZB
Q0UKLVBkb0dldFN0b3JlSW50ZXJmYWNlKAotICAgIElOICBQWEVOVktCRF9QRE8gICAgUGRvCi0g
ICAgKTsKLQotZXh0ZXJuIFBYRU5CVVNfQ0FDSEVfSU5URVJGQUNFCi1QZG9HZXRDYWNoZUludGVy
ZmFjZSgKLSAgICBJTiAgUFhFTlZLQkRfUERPICAgIFBkbwotICAgICk7Ci0KLWV4dGVybiBQWEVO
QlVTX0dOVFRBQl9JTlRFUkZBQ0UKLVBkb0dldEdudHRhYkludGVyZmFjZSgKLSAgICBJTiAgUFhF
TlZLQkRfUERPICAgIFBkbwotICAgICk7Ci0KLWV4dGVybiBQWEVOQlVTX1NVU1BFTkRfSU5URVJG
QUNFCi1QZG9HZXRTdXNwZW5kSW50ZXJmYWNlKAotICAgIElOICBQWEVOVktCRF9QRE8gICAgUGRv
Ci0gICAgKTsKLQogI2luY2x1ZGUgImhpZC5oIgogCiBleHRlcm4gUFhFTlZLQkRfSElEX0NPTlRF
WFQKQEAgLTE4NCwxMSArMTU0LDYgQEAgUGRvR2V0SGlkQ29udGV4dCgKICAgICBJTiAgUFhFTlZL
QkRfUERPICAgIFBkbwogICAgICk7CiAKLWV4dGVybiBQWEVOSElEX0hJRF9JTlRFUkZBQ0UKLVBk
b0dldEhpZEludGVyZmFjZSgKLSAgICBJTiAgUFhFTlZLQkRfUERPICAgIFBkbwotICAgICk7Ci0K
IGV4dGVybiBOVFNUQVRVUwogUGRvRGlzcGF0Y2goCiAgICAgSU4gIFBYRU5WS0JEX1BETyAgICBQ
ZG8sCmRpZmYgLS1naXQgYS9zcmMveGVudmtiZC9yaW5nLmMgYi9zcmMveGVudmtiZC9yaW5nLmMK
aW5kZXggZGQxNTgwNy4uZGExYmQxNyAxMDA2NDQKLS0tIGEvc3JjL3hlbnZrYmQvcmluZy5jCisr
KyBiL3NyYy94ZW52a2JkL3JpbmcuYwpAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgImZyb250
ZW5kLmgiCiAjaW5jbHVkZSAicmluZy5oIgogI2luY2x1ZGUgImhpZC5oIgorI2luY2x1ZGUgInZr
YmQuaCIKICNpbmNsdWRlICJ0aHJlYWQuaCIKICNpbmNsdWRlICJyZWdpc3RyeS5oIgogI2luY2x1
ZGUgImRiZ19wcmludC5oIgpAQCAtNzcsNiArNzgsMTEgQEAgc3RydWN0IF9YRU5WS0JEX1JJTkcg
ewogICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgIENvbm5lY3RlZDsKICAgICBCT09MRUFOICAg
ICAgICAgICAgICAgICBFbmFibGVkOwogICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgIEFic1Bv
aW50ZXI7CisKKyAgICBYRU5WS0JEX0hJRF9LRVlCT0FSRCAgICBLZXlib2FyZFJlcG9ydDsKKyAg
ICBYRU5WS0JEX0hJRF9BQlNNT1VTRSAgICBBYnNNb3VzZVJlcG9ydDsKKyAgICBCT09MRUFOICAg
ICAgICAgICAgICAgICBLZXlib2FyZFBlbmRpbmc7CisgICAgQk9PTEVBTiAgICAgICAgICAgICAg
ICAgQWJzTW91c2VQZW5kaW5nOwogfTsKIAogI2RlZmluZSBYRU5WS0JEX1JJTkdfVEFHICAgICdn
bmlSJwpAQCAtOTcsNiArMTAzLDE3NCBAQCBfX1JpbmdGcmVlKAogICAgIF9fRnJlZVBvb2xXaXRo
VGFnKEJ1ZmZlciwgWEVOVktCRF9SSU5HX1RBRyk7CiB9CiAKK3N0YXRpYyBGT1JDRUlOTElORSBO
VFNUQVRVUworX19SaW5nQ29weUJ1ZmZlcigKKyAgICBJTiAgUFZPSUQgICAgICAgQnVmZmVyLAor
ICAgIElOICBVTE9ORyAgICAgICBMZW5ndGgsCisgICAgSU4gIGNvbnN0IFZPSUQgICpTb3VyY2Us
CisgICAgSU4gIFVMT05HICAgICAgIFNvdXJjZUxlbmd0aCwKKyAgICBPVVQgUFVMT05HICAgICAg
UmV0dXJuZWQKKyAgICApCit7CisgICAgaWYgKEJ1ZmZlciA9PSBOVUxMKQorICAgICAgICByZXR1
cm4gU1RBVFVTX0lOVkFMSURfUEFSQU1FVEVSOworICAgIGlmIChMZW5ndGggPCBTb3VyY2VMZW5n
dGgpCisgICAgICAgIHJldHVybiBTVEFUVVNfTk9fTUVNT1JZOworCisgICAgUnRsQ29weU1lbW9y
eShCdWZmZXIsCisgICAgICAgICAgICAgICAgICBTb3VyY2UsCisgICAgICAgICAgICAgICAgICBT
b3VyY2VMZW5ndGgpOworICAgIGlmIChSZXR1cm5lZCkKKyAgICAgICAgKlJldHVybmVkID0gU291
cmNlTGVuZ3RoOworICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKK30KKworc3RhdGljIEZPUkNF
SU5MSU5FIExPTkcKK0NvbnN0cmFpbigKKyAgICBJTiAgTE9ORyAgICBWYWx1ZSwKKyAgICBJTiAg
TE9ORyAgICBNaW4sCisgICAgSU4gIExPTkcgICAgTWF4CisgICAgKQoreworICAgIGlmIChWYWx1
ZSA8IE1pbikKKyAgICAgICAgcmV0dXJuIE1pbjsKKyAgICBpZiAoVmFsdWUgPiBNYXgpCisgICAg
ICAgIHJldHVybiBNYXg7CisgICAgcmV0dXJuIFZhbHVlOworfQorCitzdGF0aWMgRk9SQ0VJTkxJ
TkUgVUNIQVIKK1NldEJpdCgKKyAgICBJTiAgVUNIQVIgICBWYWx1ZSwKKyAgICBJTiAgVUNIQVIg
ICBCaXRJZHgsCisgICAgSU4gIEJPT0xFQU4gUHJlc3NlZAorICAgICkKK3sKKyAgICBpZiAoUHJl
c3NlZCkgeworICAgICAgICByZXR1cm4gVmFsdWUgfCAoMSA8PCBCaXRJZHgpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIHJldHVybiBWYWx1ZSAmIH4oMSA8PCBCaXRJZHgpOworICAgIH0KK30KKwor
c3RhdGljIEZPUkNFSU5MSU5FIFZPSUQKK1NldEFycmF5KAorICAgIElOICBQVUNIQVIgIEFycmF5
LAorICAgIElOICBVTE9ORyAgIFNpemUsCisgICAgSU4gIFVDSEFSICAgVmFsdWUsCisgICAgSU4g
IEJPT0xFQU4gUHJlc3NlZAorICAgICkKK3sKKyAgICBVTE9ORyAgICAgICBJZHg7CisgICAgaWYg
KFByZXNzZWQpIHsKKyAgICAgICAgZm9yIChJZHggPSAwOyBJZHggPCBTaXplOyArK0lkeCkgewor
ICAgICAgICAgICAgaWYgKEFycmF5W0lkeF0gPT0gVmFsdWUpCisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBpZiAoQXJyYXlbSWR4XSAhPSAwKQorICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgQXJyYXlbSWR4XSA9IFZhbHVlOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBmb3IgKElkeCA9IDA7IElkeCA8
IFNpemU7ICsrSWR4KSB7CisgICAgICAgICAgICBpZiAoQXJyYXlbSWR4XSA9PSAwKQorICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYgKEFycmF5W0lkeF0gIT0gVmFsdWUpCisg
ICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBmb3IgKDsgSWR4IDwgU2l6ZSAt
IDE7ICsrSWR4KQorICAgICAgICAgICAgICAgIEFycmF5W0lkeF0gPSBBcnJheVtJZHggKyAxXTsK
KyAgICAgICAgICAgIEFycmF5W1NpemUgLSAxXSA9IDA7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KK30KKworc3RhdGljIEZPUkNFSU5MSU5FIFVTSE9SVAorS2V5Q29kZVRv
VXNhZ2UoCisgICAgSU4gIFVMT05HICAgS2V5Q29kZQorICAgICkKK3sKKyAgICBpZiAoS2V5Q29k
ZSA8IHNpemVvZihWa2JkS2V5Q29kZVRvVXNhZ2UpL3NpemVvZihWa2JkS2V5Q29kZVRvVXNhZ2Vb
MF0pKQorICAgICAgICByZXR1cm4gVmtiZEtleUNvZGVUb1VzYWdlW0tleUNvZGVdOworICAgIHJl
dHVybiAwOworfQorCitzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAorX19SaW5nRXZlbnRNb3Rpb24o
CisgICAgSU4gIFBYRU5WS0JEX1JJTkcgICBSaW5nLAorICAgIElOICBMT05HICAgICAgICAgICAg
ZFgsCisgICAgSU4gIExPTkcgICAgICAgICAgICBkWSwKKyAgICBJTiAgTE9ORyAgICAgICAgICAg
IGRaCisgICAgKQoreworICAgIFJpbmctPkFic01vdXNlUmVwb3J0LlggPSAoVVNIT1JUKUNvbnN0
cmFpbihSaW5nLT5BYnNNb3VzZVJlcG9ydC5YICsgZFgsIDAsIDMyNzY3KTsKKyAgICBSaW5nLT5B
YnNNb3VzZVJlcG9ydC5ZID0gKFVTSE9SVClDb25zdHJhaW4oUmluZy0+QWJzTW91c2VSZXBvcnQu
WSArIGRZLCAwLCAzMjc2Nyk7CisgICAgUmluZy0+QWJzTW91c2VSZXBvcnQuZFogPSAtKENIQVIp
Q29uc3RyYWluKGRaLCAtMTI3LCAxMjcpOworCisgICAgUmluZy0+QWJzTW91c2VQZW5kaW5nID0g
SGlkU2VuZFJlYWRSZXBvcnQoUmluZy0+SGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZSaW5nLT5BYnNNb3VzZVJlcG9ydCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoWEVOVktCRF9ISURfQUJTTU9V
U0UpKTsKK30KKworc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQKK19fUmluZ0V2ZW50S2V5cHJlc3Mo
CisgICAgSU4gIFBYRU5WS0JEX1JJTkcgICBSaW5nLAorICAgIElOICBVTE9ORyAgICAgICAgICAg
S2V5Q29kZSwKKyAgICBJTiAgQk9PTEVBTiAgICAgICAgIFByZXNzZWQKKyAgICApCit7CisgICAg
aWYgKEtleUNvZGUgPj0gMHgxMTAgJiYgS2V5Q29kZSA8PSAweDExNCkgeworICAgICAgICAvLyBN
b3VzZSBCdXR0b25zCisgICAgICAgIFJpbmctPkFic01vdXNlUmVwb3J0LkJ1dHRvbnMgPSBTZXRC
aXQoUmluZy0+QWJzTW91c2VSZXBvcnQuQnV0dG9ucywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoVUNIQVIpKEtleUNvZGUgLSAweDExMCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlc3NlZCk7CisKKyAgICAg
ICAgUmluZy0+QWJzTW91c2VQZW5kaW5nID0gSGlkU2VuZFJlYWRSZXBvcnQoUmluZy0+SGlkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUmluZy0+
QWJzTW91c2VSZXBvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVvZihYRU5WS0JEX0hJRF9BQlNNT1VTRSkpOworCisgICAgfSBlbHNlIHsK
KyAgICAgICAgLy8gbWFwIEtleUNvZGUgdG8gVXNhZ2UKKyAgICAgICAgVVNIT1JUICBVc2FnZSA9
IEtleUNvZGVUb1VzYWdlKEtleUNvZGUpOworICAgICAgICBpZiAoVXNhZ2UgPT0gMCkKKyAgICAg
ICAgICAgIHJldHVybjsgLy8gbm9uLXN0YW5kYXJkIGtleQorCisgICAgICAgIGlmIChVc2FnZSA+
PSAweEUwICYmIFVzYWdlIDw9IDB4RTcpIHsKKyAgICAgICAgICAgIC8vIE1vZGlmaWVyCisgICAg
ICAgICAgICBSaW5nLT5LZXlib2FyZFJlcG9ydC5Nb2RpZmllcnMgPSBTZXRCaXQoUmluZy0+S2V5
Ym9hcmRSZXBvcnQuTW9kaWZpZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChVQ0hBUikoVXNhZ2UgLSAweEUwKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVzc2VkKTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFN0YW5kYXJkIEtleQorICAgICAgICAgICAgU2V0QXJy
YXkoUmluZy0+S2V5Ym9hcmRSZXBvcnQuS2V5cywKKyAgICAgICAgICAgICAgICAgICAgIDYsCisg
ICAgICAgICAgICAgICAgICAgICAoVUNIQVIpVXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICBQ
cmVzc2VkKTsKKyAgICAgICAgfQorICAgICAgICBSaW5nLT5LZXlib2FyZFBlbmRpbmcgPSBIaWRT
ZW5kUmVhZFJlcG9ydChSaW5nLT5IaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZSaW5nLT5LZXlib2FyZFJlcG9ydCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKFhFTlZLQkRfSElEX0tF
WUJPQVJEKSk7CisKKyAgICB9Cit9CisKK3N0YXRpYyBGT1JDRUlOTElORSBWT0lECitfX1JpbmdF
dmVudFBvc2l0aW9uKAorICAgIElOICBQWEVOVktCRF9SSU5HICAgUmluZywKKyAgICBJTiAgVUxP
TkcgICAgICAgICAgIFgsCisgICAgSU4gIFVMT05HICAgICAgICAgICBZLAorICAgIElOICBMT05H
ICAgICAgICAgICAgZFoKKyAgICApCit7CisgICAgUmluZy0+QWJzTW91c2VSZXBvcnQuWCA9IChV
U0hPUlQpQ29uc3RyYWluKFgsIDAsIDMyNzY3KTsKKyAgICBSaW5nLT5BYnNNb3VzZVJlcG9ydC5Z
ID0gKFVTSE9SVClDb25zdHJhaW4oWSwgMCwgMzI3NjcpOworICAgIFJpbmctPkFic01vdXNlUmVw
b3J0LmRaID0gLShDSEFSKUNvbnN0cmFpbihkWiwgLTEyNywgMTI3KTsKKworICAgIFJpbmctPkFi
c01vdXNlUGVuZGluZyA9IEhpZFNlbmRSZWFkUmVwb3J0KFJpbmctPkhpZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUmluZy0+QWJzTW91c2VSZXBvcnQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKFhF
TlZLQkRfSElEX0FCU01PVVNFKSk7Cit9CisKIF9fZHJ2X2Z1bmN0aW9uQ2xhc3MoS0RFRkVSUkVE
X1JPVVRJTkUpCiBfX2Rydl9tYXhJUlFMKERJU1BBVENIX0xFVkVMKQogX19kcnZfbWluSVJRTChE
SVNQQVRDSF9MRVZFTCkKQEAgLTE0MCwyMSArMzE0LDIxIEBAIFJpbmdEcGMoCiAKICAgICAgICAg
ICAgIHN3aXRjaCAoaW5fZXZ0LT50eXBlKSB7CiAgICAgICAgICAgICBjYXNlIFhFTktCRF9UWVBF
X01PVElPTjoKLSAgICAgICAgICAgICAgICBIaWRFdmVudE1vdGlvbihSaW5nLT5IaWQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5fZXZ0LT5tb3Rpb24ucmVsX3gsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW5fZXZ0LT5tb3Rpb24ucmVsX3ksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW5fZXZ0LT5tb3Rpb24ucmVsX3opOworICAgICAgICAgICAg
ICAgIF9fUmluZ0V2ZW50TW90aW9uKFJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW5fZXZ0LT5tb3Rpb24ucmVsX3gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW5fZXZ0LT5tb3Rpb24ucmVsX3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW5fZXZ0LT5tb3Rpb24ucmVsX3opOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgY2FzZSBYRU5LQkRfVFlQRV9LRVk6Ci0gICAgICAgICAgICAgICAgSGlkRXZlbnRL
ZXlwcmVzcyhSaW5nLT5IaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbl9l
dnQtPmtleS5rZXljb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5fZXZ0
LT5rZXkucHJlc3NlZCk7ICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
X19SaW5nRXZlbnRLZXlwcmVzcyhSaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW5fZXZ0LT5rZXkua2V5Y29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluX2V2dC0+a2V5LnByZXNzZWQpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgY2FzZSBYRU5LQkRfVFlQRV9QT1M6Ci0gICAgICAgICAgICAgICAgSGlkRXZlbnRQ
b3NpdGlvbihSaW5nLT5IaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbl9l
dnQtPnBvcy5hYnNfeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluX2V2dC0+
cG9zLmFic195LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5fZXZ0LT5wb3Mu
cmVsX3opOworICAgICAgICAgICAgICAgIF9fUmluZ0V2ZW50UG9zaXRpb24oUmluZywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluX2V2dC0+cG9zLmFic194LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5fZXZ0LT5wb3MuYWJzX3ksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbl9ldnQtPnBvcy5yZWxfeik7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFhFTktCRF9UWVBFX01UT1VDSDoKICAg
ICAgICAgICAgICAgICBUcmFjZSgiTVRPVUNIOiAldSAldSAldSAldVxuIiwKQEAgLTIzNyw2ICs0
MTEsMjkgQEAgUmluZ0RlYnVnQ2FsbGJhY2soCiAgICAgICAgICAgICAgICAgICIweCVwIFslc11c
biIsCiAgICAgICAgICAgICAgICAgIFJpbmcsCiAgICAgICAgICAgICAgICAgIChSaW5nLT5FbmFi
bGVkKSA/ICJFTkFCTEVEIiA6ICJESVNBQkxFRCIpOworCisgICAgWEVOQlVTX0RFQlVHKFByaW50
ZiwKKyAgICAgICAgICAgICAgICAgJlJpbmctPkRlYnVnSW50ZXJmYWNlLAorICAgICAgICAgICAg
ICAgICAiS0JEOiAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnglc1xuIiwK
KyAgICAgICAgICAgICAgICAgUmluZy0+S2V5Ym9hcmRSZXBvcnQuUmVwb3J0SWQsCisgICAgICAg
ICAgICAgICAgIFJpbmctPktleWJvYXJkUmVwb3J0Lk1vZGlmaWVycywKKyAgICAgICAgICAgICAg
ICAgUmluZy0+S2V5Ym9hcmRSZXBvcnQuS2V5c1swXSwKKyAgICAgICAgICAgICAgICAgUmluZy0+
S2V5Ym9hcmRSZXBvcnQuS2V5c1sxXSwKKyAgICAgICAgICAgICAgICAgUmluZy0+S2V5Ym9hcmRS
ZXBvcnQuS2V5c1syXSwKKyAgICAgICAgICAgICAgICAgUmluZy0+S2V5Ym9hcmRSZXBvcnQuS2V5
c1szXSwKKyAgICAgICAgICAgICAgICAgUmluZy0+S2V5Ym9hcmRSZXBvcnQuS2V5c1s0XSwKKyAg
ICAgICAgICAgICAgICAgUmluZy0+S2V5Ym9hcmRSZXBvcnQuS2V5c1s1XSwKKyAgICAgICAgICAg
ICAgICAgUmluZy0+S2V5Ym9hcmRQZW5kaW5nID8gIiBQRU5ESU5HIiA6ICIiKTsKKworICAgIFhF
TkJVU19ERUJVRyhQcmludGYsCisgICAgICAgICAgICAgICAgICZSaW5nLT5EZWJ1Z0ludGVyZmFj
ZSwKKyAgICAgICAgICAgICAgICAgIk1PVTogJTAyeCAlMDJ4ICUwNHggJTA0eCAlMDJ4JXNcbiIs
CisgICAgICAgICAgICAgICAgIFJpbmctPkFic01vdXNlUmVwb3J0LlJlcG9ydElkLAorICAgICAg
ICAgICAgICAgICBSaW5nLT5BYnNNb3VzZVJlcG9ydC5CdXR0b25zLAorICAgICAgICAgICAgICAg
ICBSaW5nLT5BYnNNb3VzZVJlcG9ydC5YLAorICAgICAgICAgICAgICAgICBSaW5nLT5BYnNNb3Vz
ZVJlcG9ydC5ZLAorICAgICAgICAgICAgICAgICBSaW5nLT5BYnNNb3VzZVJlcG9ydC5kWiwKKyAg
ICAgICAgICAgICAgICAgUmluZy0+QWJzTW91c2VQZW5kaW5nID8gIiBQRU5ESU5HIiA6ICIiKTsK
IH0KIAogTlRTVEFUVVMKQEAgLTM0MSw2ICs1MzgsOCBAQCBSaW5nQ29ubmVjdCgKICAgICBpZiAo
IU5UX1NVQ0NFU1Moc3RhdHVzKSkKICAgICAgICAgZ290byBmYWlsNTsKIAorICAgIFJpbmctPktl
eWJvYXJkUmVwb3J0LlJlcG9ydElkID0gMTsKKyAgICBSaW5nLT5BYnNNb3VzZVJlcG9ydC5SZXBv
cnRJZCA9IDI7CiAgICAgUmluZ1JlYWRGZWF0dXJlcyhSaW5nKTsKIAogICAgIFJpbmctPk1kbCA9
IF9fQWxsb2NhdGVQYWdlKCk7CkBAIC01ODksNiArNzg4LDEzIEBAIFJpbmdEaXNjb25uZWN0KAog
ICAgIF9fRnJlZVBhZ2UoUmluZy0+TWRsKTsKICAgICBSaW5nLT5NZGwgPSBOVUxMOwogCisgICAg
UnRsWmVyb01lbW9yeSgmUmluZy0+S2V5Ym9hcmRSZXBvcnQsCisgICAgICAgICAgICAgICAgICBz
aXplb2YoWEVOVktCRF9ISURfS0VZQk9BUkQpKTsKKyAgICBSdGxaZXJvTWVtb3J5KCZSaW5nLT5B
YnNNb3VzZVJlcG9ydCwKKyAgICAgICAgICAgICAgICAgIHNpemVvZihYRU5WS0JEX0hJRF9BQlNN
T1VTRSkpOworICAgIFJpbmctPktleWJvYXJkUGVuZGluZyA9IEZBTFNFOworICAgIFJpbmctPkFi
c01vdXNlUGVuZGluZyA9IEZBTFNFOworCiAgICAgWEVOQlVTX0dOVFRBQihEZXN0cm95Q2FjaGUs
CiAgICAgICAgICAgICAgICAgICAmUmluZy0+R250dGFiSW50ZXJmYWNlLAogICAgICAgICAgICAg
ICAgICAgUmluZy0+R250dGFiQ2FjaGUpOwpAQCAtNjQ1LDMgKzg1MSw0NiBAQCBSaW5nTm90aWZ5
KAogICAgIGlmIChLZUluc2VydFF1ZXVlRHBjKCZSaW5nLT5EcGMsIE5VTEwsIE5VTEwpKQogICAg
ICAgICBSaW5nLT5EcGNzKys7CiB9CisKK05UU1RBVFVTCitSaW5nR2V0SW5wdXRSZXBvcnQoCisg
ICAgSU4gIFBYRU5WS0JEX1JJTkcgICBSaW5nLAorICAgIElOICBVTE9ORyAgICAgICAgICAgUmVw
b3J0SWQsCisgICAgSU4gIFBWT0lEICAgICAgICAgICBCdWZmZXIsCisgICAgSU4gIFVMT05HICAg
ICAgICAgICBMZW5ndGgsCisgICAgT1VUIFBVTE9ORyAgICAgICAgICBSZXR1cm5lZAorICAgICkK
K3sKKyAgICBzd2l0Y2ggKFJlcG9ydElkKSB7CisgICAgY2FzZSAxOgorICAgICAgICByZXR1cm4g
X19SaW5nQ29weUJ1ZmZlcihCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlJpbmctPktleWJvYXJk
UmVwb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoWEVOVktCRF9I
SURfS0VZQk9BUkQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm5lZCk7
CisgICAgY2FzZSAyOgorICAgICAgICByZXR1cm4gX19SaW5nQ29weUJ1ZmZlcihCdWZmZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJlJpbmctPkFic01vdXNlUmVwb3J0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplb2YoWEVOVktCRF9ISURfQUJTTU9VU0UpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBSZXR1cm5lZCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0
dXJuIFNUQVRVU19OT1RfU1VQUE9SVEVEOworICAgIH0KK30KKworVk9JRAorUmluZ1JlYWRSZXBv
cnQoCisgICAgSU4gIFBYRU5WS0JEX1JJTkcgICBSaW5nCisgICAgKQoreworICAgIC8vIENoZWNr
IGZvciBwZW5kaW5nIHJlcG9ydHMsIHB1c2ggMSBwZW5kaW5nIHJlcG9ydCB0byBzdWJzY3JpYmVy
CisgICAgaWYgKFJpbmctPktleWJvYXJkUGVuZGluZykKKyAgICAgICAgUmluZy0+S2V5Ym9hcmRQ
ZW5kaW5nID0gSGlkU2VuZFJlYWRSZXBvcnQoUmluZy0+SGlkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUmluZy0+S2V5Ym9hcmRSZXBvcnQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihY
RU5WS0JEX0hJRF9LRVlCT0FSRCkpOworICAgIGVsc2UgaWYgKFJpbmctPkFic01vdXNlUGVuZGlu
ZykKKyAgICAgICAgUmluZy0+QWJzTW91c2VQZW5kaW5nID0gSGlkU2VuZFJlYWRSZXBvcnQoUmlu
Zy0+SGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmUmluZy0+QWJzTW91c2VSZXBvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVvZihYRU5WS0JEX0hJRF9BQlNNT1VTRSkpOworfQpkaWZm
IC0tZ2l0IGEvc3JjL3hlbnZrYmQvcmluZy5oIGIvc3JjL3hlbnZrYmQvcmluZy5oCmluZGV4IDA5
ZDFmOGUuLmJmYzZjNGYgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52a2JkL3JpbmcuaAorKysgYi9zcmMv
eGVudmtiZC9yaW5nLmgKQEAgLTgyLDQgKzgyLDE4IEBAIFJpbmdOb3RpZnkoCiAgICAgSU4gIFBY
RU5WS0JEX1JJTkcgICBSaW5nCiAgICAgKTsKIAorZXh0ZXJuIE5UU1RBVFVTCitSaW5nR2V0SW5w
dXRSZXBvcnQoCisgICAgSU4gIFBYRU5WS0JEX1JJTkcgICBSaW5nLAorICAgIElOICBVTE9ORyAg
ICAgICAgICAgUmVwb3J0SWQsCisgICAgSU4gIFBWT0lEICAgICAgICAgICBCdWZmZXIsCisgICAg
SU4gIFVMT05HICAgICAgICAgICBMZW5ndGgsCisgICAgT1VUIFBVTE9ORyAgICAgICAgICBSZXR1
cm5lZAorICAgICk7CisKK2V4dGVybiBWT0lECitSaW5nUmVhZFJlcG9ydCgKKyAgICBJTiAgUFhF
TlZLQkRfUklORyAgIFJpbmcKKyAgICApOworCiAjZW5kaWYgIC8vIF9YRU5WS0JEX1JJTkdfSAot
LSAKMi44LjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
Xwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0
Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5m
by93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed Jun 07 15:52:10 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 07 Jun 2017 15:52:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dIdFi-0008Se-Du; Wed, 07 Jun 2017 15:52:10 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=3245c1b58=owen.smith@citrix.com>)
 id 1dIdFg-0008Rl-LX
 for win-pv-devel@lists.xenproject.org; Wed, 07 Jun 2017 15:52:08 +0000
Received: from [85.158.137.68] by server-12.bemta-3.messagelabs.com id
 04/0B-11537-72128395; Wed, 07 Jun 2017 15:52:07 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrGLMWRWlGSWpSXmKPExsXitHSDva6KokW
 kwfGrWhZ/Fic6MHoc/nCFJYAxijUzLym/IoE149qHGUwF85kqdi6fzdjA+Jmxi5GDQ0LAX2Lr
 5vouRk4ONgFZiY8rPzOD2CIC6hL7Pm9lArGZBdQkru/vYgUpFxawlJj5NhAkzCKgInF+5UWwc
 l4BC4mP/ZtZQGwJATmJyYsvMYLYQgJKEt8Wv4CqEZQ4OfMJC8RICYmDL14wT2DknoUkNQtJag
 Ej0ypGjeLUorLUIl0jS72kosz0jJLcxMwcXUMDY73c1OLixPTUnMSkYr3k/NxNjMAwqGdgYNz
 B2LTX7xCjJAeTkijvA2mLSCG+pPyUyozE4oz4otKc1OJDjDIcHEoSvLfkgXKCRanpqRVpmTnA
 gIRJS3DwKInwassBpXmLCxJzizPTIVKnGHU5mj5s+cIkxJKXn5cqJc57DmSGAEhRRmke3AhYd
 FxilJUS5mVkYGAQ4ilILcrNLEGVf8UozsGoJMx7A2QKT2ZeCdymV0BHMAEdwXfJBOSIkkSElF
 QDo8eZ6B9TFXqX/2V9sTXx18uO28wbbh9ZpDHfx5flVcGq5odb+EKfWXRuaHnUKPF9eivf/e0
 N7lnBSvc9/D2yKs8YReSxWJf7/lSv3Nya+sspSShzmr6J7Y7m+uBvBpfncN/iPLJRXlmqpH2F
 g43PTz7FrExtoVovg85rV1u3tT1yk2Obp3NNiaU4I9FQi7moOBEAoj7dvIkCAAA=
X-Env-Sender: prvs=3245c1b58=owen.smith@citrix.com
X-Msg-Ref: server-5.tower-31.messagelabs.com!1496850723!101311129!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 38139 invoked from network); 7 Jun 2017 15:52:04 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-5.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 7 Jun 2017 15:52:04 -0000
X-IronPort-AV: E=Sophos;i="5.39,311,1493683200"; d="scan'208";a="435496264"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Wed, 7 Jun 2017 16:51:45 +0100
Message-ID: <20170607155148.376-1-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 1/4] xenvkbd: Make msbuild.bat executable
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKU2lnbmVkLW9mZi1ieTog
T3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIG1zYnVpbGQuYmF0IHwgMAog
MSBmaWxlIGNoYW5nZWQsIDAgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKIG1vZGUgY2hh
bmdlIDEwMDY0NCA9PiAxMDA3NTUgbXNidWlsZC5iYXQKCmRpZmYgLS1naXQgYS9tc2J1aWxkLmJh
dCBiL21zYnVpbGQuYmF0Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKLS0gCjIuOC4z
CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2
LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0
cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2
LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Wed Jun 07 15:52:11 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 07 Jun 2017 15:52:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dIdFj-0008TL-Ev; Wed, 07 Jun 2017 15:52:11 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=3245c1b58=owen.smith@citrix.com>)
 id 1dIdFh-0008Ru-O4
 for win-pv-devel@lists.xenproject.org; Wed, 07 Jun 2017 15:52:09 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
 AE/98-23755-82128395; Wed, 07 Jun 2017 15:52:08 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpikeJIrShJLcpLzFFi42JxWrrBXldD0SL
 SYMUSJos/ixMdGD0Of7jCEsAYxZqZl5RfkcCasWmpRMEfs4r+w7fYGxgbVbsYOTkkBPwlZt5f
 zARiswnISnxc+ZkZxBYRUJfY93krWJxZQE3i+v4u1i5GDg5hARuJnq16IGEWARWJya+OgJXwC
 lhIdH7YxQIxUk5i8uJLjCA2p4ClxJFpL8BGCgHVPH7XxAJhK0l8WwwR5xUQlDg58wkLxCoJiY
 MvXjBPYOSdhSQ1C0lqASPTKkaN4tSistQiXSNLvaSizPSMktzEzBxdQwNjvdzU4uLE9NScxKR
 iveT83E2MwLCpZ2Bg3MHYtNfvEKMkB5OSKO8DaYtIIb6k/JTKjMTijPii0pzU4kOMMhwcShK8
 t+SBcoJFqempFWmZOcAAhklLcPAoifBqywGleYsLEnOLM9MhUqcYFaXEec+B9AmAJDJK8+DaY
 FFziVFWSpiXkYGBQYinILUoN7MEVf4VozgHo5Iw7w2QKTyZeSVw018BLWYCWsx3yQRkcUkiQk
 qqgXFZo1DhxeXxzrGbIiYwlB2dJjVViUM0TiYpMcY/7PVem0mnmuttvm/4EX1Y+piLboDThcA
 Zc37tOSEm8+A+w+Umj0v7n0Xcfvnr4cEpsYqT+jbv7OxRXzrNKWBqxueSu7P2tsn3nXi86+Da
 xF9GMgHVc5evPP5yguPfTm/FvRI1/k8rlokmc/1QYinOSDTUYi4qTgQAb4xxB5UCAAA=
X-Env-Sender: prvs=3245c1b58=owen.smith@citrix.com
X-Msg-Ref: server-5.tower-31.messagelabs.com!1496850723!101311129!2
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 38786 invoked from network); 7 Jun 2017 15:52:07 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-5.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 7 Jun 2017 15:52:07 -0000
X-IronPort-AV: E=Sophos;i="5.39,311,1493683200"; d="scan'208";a="435496268"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Wed, 7 Jun 2017 16:51:47 +0100
Message-ID: <20170607155148.376-3-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
In-Reply-To: <20170607155148.376-1-owen.smith@citrix.com>
References: <20170607155148.376-1-owen.smith@citrix.com>
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 3/4] xenvkbd: Read "feature-vkbd-standalone"
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKUmVhZCAiZmVhdHVyZS12
a2JkLXN0YW5kYWxvbmUiIGFuZCBmYWlsIGNvbm5lY3QKaWYgaXQgaXMgbm90IDEuIFdyaXRlcyAi
cmVxdWVzdC12a2JkLXN0YW5kYWxvbmUiIGJlZm9yZQp0cmFuc2l0aW9uaW5nIHRvIENvbm5lY3Rl
ZC4KClNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4KLS0t
CiBzcmMveGVudmtiZC9mcm9udGVuZC5jIHwgMTUgKysrKysrKy0tLS0tLQogc3JjL3hlbnZrYmQv
aGlkLmMgICAgICB8IDE0ICsrKysrLS0tLS0tLS0KIHNyYy94ZW52a2JkL3JpbmcuYyAgICAgfCA1
NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogMyBm
aWxlcyBjaGFuZ2VkLCA1OSBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9zcmMveGVudmtiZC9mcm9udGVuZC5jIGIvc3JjL3hlbnZrYmQvZnJvbnRlbmQuYwppbmRl
eCBlYTg1Y2QyLi4xZDZkMzYwIDEwMDY0NAotLS0gYS9zcmMveGVudmtiZC9mcm9udGVuZC5jCisr
KyBiL3NyYy94ZW52a2JkL2Zyb250ZW5kLmMKQEAgLTc5NSw3ICs3OTUsNyBAQCBGcm9udGVuZFNl
dFN0YXRlKAogICAgIElOICBYRU5WS0JEX0ZST05URU5EX1NUQVRFICBTdGF0ZQogICAgICkKIHsK
LSAgICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgRmFpbGVkOworICAgIE5UU1RBVFVTICAg
ICAgICAgICAgICAgICAgICBzdGF0dXM7CiAgICAgS0lSUUwgICAgICAgICAgICAgICAgICAgICAg
IElycWw7CiAKICAgICBLZUFjcXVpcmVTcGluTG9jaygmRnJvbnRlbmQtPkxvY2ssICZJcnFsKTsK
QEAgLTgwNSwxMCArODA1LDggQEAgRnJvbnRlbmRTZXRTdGF0ZSgKICAgICAgICAgIEZyb250ZW5k
U3RhdGVOYW1lKEZyb250ZW5kLT5TdGF0ZSksCiAgICAgICAgICBGcm9udGVuZFN0YXRlTmFtZShT
dGF0ZSkpOwogCi0gICAgRmFpbGVkID0gRkFMU0U7Ci0gICAgd2hpbGUgKEZyb250ZW5kLT5TdGF0
ZSAhPSBTdGF0ZSAmJiAhRmFpbGVkKSB7Ci0gICAgICAgIE5UU1RBVFVTICAgIHN0YXR1czsKLQor
ICAgIHN0YXR1cyA9IFNUQVRVU19TVUNDRVNTOworICAgIHdoaWxlIChGcm9udGVuZC0+U3RhdGUg
IT0gU3RhdGUgJiYgTlRfU1VDQ0VTUyhzdGF0dXMpKSB7CiAgICAgICAgIHN3aXRjaCAoRnJvbnRl
bmQtPlN0YXRlKSB7CiAgICAgICAgIGNhc2UgRlJPTlRFTkRfVU5LTk9XTjoKICAgICAgICAgICAg
IHN3aXRjaCAoU3RhdGUpIHsKQEAgLTgyMCw4ICs4MTgsNiBAQCBGcm9udGVuZFNldFN0YXRlKAog
ICAgICAgICAgICAgICAgIHN0YXR1cyA9IEZyb250ZW5kQ2xvc2UoRnJvbnRlbmQpOwogICAgICAg
ICAgICAgICAgIGlmIChOVF9TVUNDRVNTKHN0YXR1cykpIHsKICAgICAgICAgICAgICAgICAgICAg
RnJvbnRlbmQtPlN0YXRlID0gRlJPTlRFTkRfQ0xPU0VEOwotICAgICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgIEZhaWxlZCA9IFRSVUU7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIGJyZWFrOwogCkBAIC04NjAsNiArODU2LDkgQEAgRnJvbnRlbmRT
ZXRTdGF0ZSgKICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQtPlN0YXRlID0gRlJPTlRFTkRf
Q0xPU0VEOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgRlJPTlRFTkRfVU5LTk9XTjoKKyAgICAgICAgICAgICAgICBGcm9udGVuZC0+
U3RhdGUgPSBGUk9OVEVORF9VTktOT1dOOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBBU1NFUlQoRkFMU0UpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtOTM1LDcgKzkzNCw3IEBAIEZyb250ZW5kU2V0U3RhdGUoCiAKICAg
ICBJbmZvKCIlczogPD09PT09XG4iLCBfX0Zyb250ZW5kR2V0UGF0aChGcm9udGVuZCkpOwogCi0g
ICAgcmV0dXJuICghRmFpbGVkKSA/IFNUQVRVU19TVUNDRVNTIDogU1RBVFVTX1VOU1VDQ0VTU0ZV
TDsKKyAgICByZXR1cm4gc3RhdHVzOwogfQogCiBzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRApkaWZm
IC0tZ2l0IGEvc3JjL3hlbnZrYmQvaGlkLmMgYi9zcmMveGVudmtiZC9oaWQuYwppbmRleCAwM2Zj
MWEyLi44YTkwZGQxIDEwMDY0NAotLS0gYS9zcmMveGVudmtiZC9oaWQuYworKysgYi9zcmMveGVu
dmtiZC9oaWQuYwpAQCAtMTA5LDEzICsxMDksMTEgQEAgSGlkRW5hYmxlKAogewogICAgIFBYRU5W
S0JEX0hJRF9DT05URVhUICAgIENvbnRleHQgPSBJbnRlcmZhY2UtPkNvbnRleHQ7CiAgICAgS0lS
UUwgICAgICAgICAgICAgICAgICAgSXJxbDsKLSAgICBCT09MRUFOICAgICAgICAgICAgICAgICBF
eGNsdXNpdmU7CiAgICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgc3RhdHVzOwogCiAgICAgVHJh
Y2UoIj09PT0+XG4iKTsKIAogICAgIEFjcXVpcmVNcnN3TG9ja0V4Y2x1c2l2ZSgmQ29udGV4dC0+
TG9jaywgJklycWwpOwotICAgIEV4Y2x1c2l2ZSA9IFRSVUU7CiAKICAgICBpZiAoQ29udGV4dC0+
RW5hYmxlZCkKICAgICAgICAgZ290byBkb25lOwpAQCAtMTI4LDExICsxMjYsMTIgQEAgSGlkRW5h
YmxlKAogICAgIEtlTWVtb3J5QmFycmllcigpOwogCiAgICAgc3RhdHVzID0gRnJvbnRlbmRTZXRT
dGF0ZShDb250ZXh0LT5Gcm9udGVuZCwgRlJPTlRFTkRfRU5BQkxFRCk7Ci0gICAgaWYgKCFOVF9T
VUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDE7CisgICAgaWYgKCFOVF9TVUNDRVNT
KHN0YXR1cykpIHsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBTVEFUVVNfREVWSUNFX05PVF9SRUFE
WSkKKyAgICAgICAgICAgIGdvdG8gZmFpbDE7CisgICAgfQogCiBkb25lOgotICAgIEFTU0VSVChF
eGNsdXNpdmUpOwogICAgIFJlbGVhc2VNcnN3TG9ja0V4Y2x1c2l2ZSgmQ29udGV4dC0+TG9jaywg
SXJxbCwgRkFMU0UpOwogCiAgICAgVHJhY2UoIjw9PT09XG4iKTsKQEAgLTE0OSwxMCArMTQ4LDcg
QEAgZmFpbDE6CiAgICAgQ29udGV4dC0+QXJndW1lbnQgPSBOVUxMOwogICAgIENvbnRleHQtPkNh
bGxiYWNrID0gTlVMTDsKIAotICAgIGlmIChFeGNsdXNpdmUpCi0gICAgICAgIFJlbGVhc2VNcnN3
TG9ja0V4Y2x1c2l2ZSgmQ29udGV4dC0+TG9jaywgSXJxbCwgRkFMU0UpOwotICAgIGVsc2UKLSAg
ICAgICAgUmVsZWFzZU1yc3dMb2NrU2hhcmVkKCZDb250ZXh0LT5Mb2NrKTsKKyAgICBSZWxlYXNl
TXJzd0xvY2tFeGNsdXNpdmUoJkNvbnRleHQtPkxvY2ssIElycWwsIEZBTFNFKTsKIAogICAgIHJl
dHVybiBzdGF0dXM7CiB9CmRpZmYgLS1naXQgYS9zcmMveGVudmtiZC9yaW5nLmMgYi9zcmMveGVu
dmtiZC9yaW5nLmMKaW5kZXggZGExYmQxNy4uOTE0NTIxYyAxMDA2NDQKLS0tIGEvc3JjL3hlbnZr
YmQvcmluZy5jCisrKyBiL3NyYy94ZW52a2JkL3JpbmcuYwpAQCAtNzgsNiArNzgsNyBAQCBzdHJ1
Y3QgX1hFTlZLQkRfUklORyB7CiAgICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgQ29ubmVjdGVk
OwogICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgIEVuYWJsZWQ7CiAgICAgQk9PTEVBTiAgICAg
ICAgICAgICAgICAgQWJzUG9pbnRlcjsKKyAgICBCT09MRUFOICAgICAgICAgICAgICAgICBWa2Jk
U3RhbmRhbG9uZTsKIAogICAgIFhFTlZLQkRfSElEX0tFWUJPQVJEICAgIEtleWJvYXJkUmVwb3J0
OwogICAgIFhFTlZLQkRfSElEX0FCU01PVVNFICAgIEFic01vdXNlUmVwb3J0OwpAQCAtNDk3LDYg
KzQ5OCwyMiBAQCBSaW5nUmVhZEZlYXR1cmVzKAogICAgIH0gZWxzZSB7CiAgICAgICAgIFJpbmct
PkFic1BvaW50ZXIgPSBGQUxTRTsKICAgICB9CisKKyAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUo
UmVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJlJpbmctPlN0b3JlSW50ZXJmYWNlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICBGcm9udGVuZEdldEJhY2tlbmRQYXRoKFJpbmctPkZyb250ZW5kKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgImZlYXR1cmUtdmtiZC1zdGFuZGFsb25lIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgJkJ1ZmZlcik7CisgICAgaWYgKE5UX1NVQ0NFU1Moc3RhdHVzKSkgeworICAgICAg
ICBSaW5nLT5Wa2JkU3RhbmRhbG9uZSA9IChCT09MRUFOKXN0cnRvdWwoQnVmZmVyLCBOVUxMLCAy
KTsKKworICAgICAgICBYRU5CVVNfU1RPUkUoRnJlZSwKKyAgICAgICAgICAgICAgICAgICAgICZS
aW5nLT5TdG9yZUludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcik7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgUmluZy0+VmtiZFN0YW5kYWxvbmUgPSBGQUxTRTsKKyAgICB9CiB9
CiAKIE5UU1RBVFVTCkBAIC01NDIsMTEgKzU1OSwxNSBAQCBSaW5nQ29ubmVjdCgKICAgICBSaW5n
LT5BYnNNb3VzZVJlcG9ydC5SZXBvcnRJZCA9IDI7CiAgICAgUmluZ1JlYWRGZWF0dXJlcyhSaW5n
KTsKIAorICAgIHN0YXR1cyA9IFNUQVRVU19ERVZJQ0VfTk9UX1JFQURZOworICAgIGlmICghUmlu
Zy0+VmtiZFN0YW5kYWxvbmUpCisgICAgICAgIGdvdG8gZmFpbDY7CisKICAgICBSaW5nLT5NZGwg
PSBfX0FsbG9jYXRlUGFnZSgpOwogICAgIAogICAgIHN0YXR1cyA9IFNUQVRVU19OT19NRU1PUlk7
CiAgICAgaWYgKFJpbmctPk1kbCA9PSBOVUxMKQotICAgICAgICBnb3RvIGZhaWw2OworICAgICAg
ICBnb3RvIGZhaWw3OwogCiAgICAgQVNTRVJUKFJpbmctPk1kbC0+TWRsRmxhZ3MgJiBNRExfTUFQ
UEVEX1RPX1NZU1RFTV9WQSk7CiAgICAgUmluZy0+U2hhcmVkID0gUmluZy0+TWRsLT5NYXBwZWRT
eXN0ZW1WYTsKQEAgLTU2Niw3ICs1ODcsNyBAQCBSaW5nQ29ubmVjdCgKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEZBTFNFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJlJpbmctPkVu
dHJ5KTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKLSAgICAgICAgZ290byBmYWlsNzsK
KyAgICAgICAgZ290byBmYWlsODsKIAogICAgIFJpbmctPkNoYW5uZWwgPSBYRU5CVVNfRVZUQ0hO
KE9wZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlJpbmctPkV2dGNobklu
dGVyZmFjZSwKQEAgLTU3OCw3ICs1OTksNyBAQCBSaW5nQ29ubmVjdCgKIAogICAgIHN0YXR1cyA9
IFNUQVRVU19VTlNVQ0NFU1NGVUw7CiAgICAgaWYgKFJpbmctPkNoYW5uZWwgPT0gTlVMTCkKLSAg
ICAgICAgZ290byBmYWlsODsKKyAgICAgICAgZ290byBmYWlsOTsKIAogICAgIFhFTkJVU19FVlRD
SE4oVW5tYXNrLAogICAgICAgICAgICAgICAgICAgJlJpbmctPkV2dGNobkludGVyZmFjZSwKQEAg
LTU5MiwxMyArNjEzLDEzIEBAIFJpbmdDb25uZWN0KAogICAgICAgICAgICAgICAgICAgICAgICAg
ICBSaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAmUmluZy0+RGVidWdDYWxsYmFjayk7
CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDk7CisgICAg
ICAgIGdvdG8gZmFpbDEwOwogCiAgICAgUmluZy0+Q29ubmVjdGVkID0gVFJVRTsKICAgICByZXR1
cm4gU1RBVFVTX1NVQ0NFU1M7CiAKLWZhaWw5OgotICAgIEVycm9yKCJmYWlsOVxuIik7CitmYWls
MTA6CisgICAgRXJyb3IoImZhaWwxMFxuIik7CiAKICAgICBYRU5CVVNfRVZUQ0hOKENsb3NlLAog
ICAgICAgICAgICAgICAgICAgJlJpbmctPkV2dGNobkludGVyZmFjZSwKQEAgLTYwNyw4ICs2Mjgs
OCBAQCBmYWlsOToKIAogICAgIFJpbmctPkV2ZW50cyA9IDA7CiAKLWZhaWw4OgotICAgIEVycm9y
KCJmYWlsOFxuIik7CitmYWlsOToKKyAgICBFcnJvcigiZmFpbDlcbiIpOwogCiAgICAgKFZPSUQp
IFhFTkJVU19HTlRUQUIoUmV2b2tlRm9yZWlnbkFjY2VzcywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAmUmluZy0+R250dGFiSW50ZXJmYWNlLApAQCAtNjE3LDEzICs2MzgsMTYgQEAgZmFpbDg6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgUmluZy0+RW50cnkpOwogICAgIFJpbmctPkVudHJ5
ID0gTlVMTDsKIAotZmFpbDc6Ci0gICAgRXJyb3IoImZhaWw3XG4iKTsKK2ZhaWw4OgorICAgIEVy
cm9yKCJmYWlsOFxuIik7CiAKICAgICBSaW5nLT5TaGFyZWQgPSBOVUxMOwogICAgIF9fRnJlZVBh
Z2UoUmluZy0+TWRsKTsKICAgICBSaW5nLT5NZGwgPSBOVUxMOwogCitmYWlsNzoKKyAgICBFcnJv
cigiZmFpbDdcbiIpOworCiBmYWlsNjoKICAgICBFcnJvcigiZmFpbDZcbiIpOwogCkBAIC03MTUs
OSArNzM5LDIxIEBAIFJpbmdTdG9yZVdyaXRlKAogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMp
KQogICAgICAgICBnb3RvIGZhaWw0OwogCisgICAgc3RhdHVzID0gWEVOQlVTX1NUT1JFKFByaW50
ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJlJpbmctPlN0b3JlSW50ZXJmYWNlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2FjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgRnJvbnRlbmRHZXRQYXRoKFJpbmctPkZyb250ZW5kKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgInJlcXVlc3QtdmtiZC1zdGFuZGFsb25lIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIiV1IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUmluZy0+VmtiZFN0YW5kYWxv
bmUpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWw1Owor
CiAgICAgVHJhY2UoIjw9PT09PVxuIik7CiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCitm
YWlsNToKKyAgICBFcnJvcigiZmFpbDVcbiIpOwogZmFpbDQ6CiAgICAgRXJyb3IoImZhaWw0XG4i
KTsKIGZhaWwzOgpAQCAtODE3LDYgKzg1Myw3IEBAIFJpbmdUZWFyZG93bigKICAgICBSaW5nLT5E
cGNzID0gMDsKIAogICAgIFJpbmctPkFic1BvaW50ZXIgPSBGQUxTRTsKKyAgICBSaW5nLT5Wa2Jk
U3RhbmRhbG9uZSA9IEZBTFNFOwogCiAgICAgUnRsWmVyb01lbW9yeSgmUmluZy0+RHBjLCBzaXpl
b2YgKEtEUEMpKTsKIAotLSAKMi44LjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4v
bWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed Jun 07 15:52:11 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 07 Jun 2017 15:52:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dIdFj-0008Tb-GB; Wed, 07 Jun 2017 15:52:11 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=3245c1b58=owen.smith@citrix.com>)
 id 1dIdFi-0008SE-0l
 for win-pv-devel@lists.xenproject.org; Wed, 07 Jun 2017 15:52:10 +0000
Received: from [85.158.137.68] by server-7.bemta-3.messagelabs.com id
 D8/A6-02196-92128395; Wed, 07 Jun 2017 15:52:09 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkeJIrShJLcpLzFFi42JxWrohUldD0SL
 SYNMGG4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCacarxIGvBBZaKhTs/szQwnmPuYuTgkBDwlzje
 ytrFyMnBJiAr8XHlZ2YQW0RAXWLf561MIDazgJrE9f1dYDXCAmYST1dsZAdpZRFQkbhzLxXE5
 BWwkHjxtxikQkJATmLy4kuMIDangKXEkWkvwCYKAZU8ftfEAmErSXxbDBHnFRCUODnzCQvEJg
 mJgy9eME9g5J2FJDULSWoBI9MqRo3i1KKy1CJdIwu9pKLM9IyS3MTMHF1DA2O93NTi4sT01Jz
 EpGK95PzcTYzAoKlnYGDcwdh+wu8QoyQHk5Io7wNpi0ghvqT8lMqMxOKM+KLSnNTiQ4wyHBxK
 ErwxCkA5waLU9NSKtMwcYPjCpCU4eJREeLXlgNK8xQWJucWZ6RCpU4y6HE0ftnxhEmLJy89Ll
 RLndQOZIQBSlFGaBzcCFkuXGGWlhHkZGRgYhHgKUotyM0tQ5V8xinMwKgnzCoNM4cnMK4Hb9A
 roCCagI/gumYAcUZKIkJJqYFyT8fVoY6zO6Ssi9dl8Ib/i7eNON6/Km+bJd8/m25wb8XWiR3P
 ZDaQczm1e1WDnJZCy+oq+itryaqZD65reX3vluMFi6cS0xzulmySnpezpSFx6zEDcV9D/kIfR
 tH23P4Y+vDFrO/unv00+VVN2bz/d9mTnxnUGS+cUr+YXl+N7fr3yt8X05XlKLMUZiYZazEXFi
 QAC3mKIoAIAAA==
X-Env-Sender: prvs=3245c1b58=owen.smith@citrix.com
X-Msg-Ref: server-13.tower-31.messagelabs.com!1496850723!103905076!2
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 36319 invoked from network); 7 Jun 2017 15:52:08 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-13.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 7 Jun 2017 15:52:08 -0000
X-IronPort-AV: E=Sophos;i="5.39,311,1493683200"; d="scan'208";a="426928181"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Wed, 7 Jun 2017 16:51:48 +0100
Message-ID: <20170607155148.376-4-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
In-Reply-To: <20170607155148.376-1-owen.smith@citrix.com>
References: <20170607155148.376-1-owen.smith@citrix.com>
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 4/4] xenvkbd: Remove old 8.x revisions
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKU2lnbmVkLW9mZi1ieTog
T3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIGluY2x1ZGUvcmV2aXNpb24u
aCB8IDMgLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9p
bmNsdWRlL3JldmlzaW9uLmggYi9pbmNsdWRlL3JldmlzaW9uLmgKaW5kZXggYjMwYWVlNy4uN2U3
N2EyYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9yZXZpc2lvbi5oCisrKyBiL2luY2x1ZGUvcmV2aXNp
b24uaApAQCAtMzcsOSArMzcsNiBAQAogCiAvLyAgICAgICAgICAgICAgICAgICAgUkVWSVNJT04g
ICBICiAjZGVmaW5lIERFRklORV9SRVZJU0lPTl9UQUJMRSAgICAgICAgICAgXAotICAgIERFRklO
RV9SRVZJU0lPTigweDA4MDAwMDBCLCAgMSksICAgIFwKLSAgICBERUZJTkVfUkVWSVNJT04oMHgw
ODAwMDAwQywgIDEpLCAgICBcCi0gICAgREVGSU5FX1JFVklTSU9OKDB4MDgwMDAwMEQsICAxKSwg
ICAgXAogICAgIERFRklORV9SRVZJU0lPTigweDA5MDAwMDAwLCAgMSkKIAogI2VuZGlmICAvLyBf
UkVWSVNJT05fSAotLSAKMi44LjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFp
bG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 12 08:59:00 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 12 Jun 2017 08:59:00 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dKLBa-0001dR-90; Mon, 12 Jun 2017 08:58:58 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=32922000b=Paul.Durrant@citrix.com>)
 id 1dKLBZ-0001dL-LJ
 for win-pv-devel@lists.xenproject.org; Mon, 12 Jun 2017 08:58:57 +0000
Received: from [85.158.139.211] by server-13.bemta-5.messagelabs.com id
 4E/78-01709-0D75E395; Mon, 12 Jun 2017 08:58:56 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrLIsWRWlGSWpSXmKPExsWyU9JRQvdCuF2
 kQedXYYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCasfPtJaaCE5wVE17dYW9g3MHZxcjJISHgJ3G6
 /TA7iM0moCOx9Oh8JhBbRKBA4vv7ecwgNrOAmsT1/V2sILawgI9EQ0c3VI2vxItJF4FsDiDbS
 GLC1kSQMIuAqsS0B0vBWnkF3CUOfFgIZgsJWEg8ftfEAmJzClhKHJn2AizOKCAr8aVxNdQqcY
 lbTyBOkBAQkFiy5zwzhC0q8fLxP1YI20Bi69J9LCBrmQU0Jdbv0odoVZSY0v2QHWKtoMTJmU9
 YJjAKz0IydRZCxywkHbOQdCxgZFnFqFGcWlSWWqRrZKqXVJSZnlGSm5iZo2toYKqXm1pcnJie
 mpOYVKyXnJ+7iREY9PUMDIw7GHe1+x1ilORgUhLl3XLFJlKILyk/pTIjsTgjvqg0J7X4EKMMB
 4eSBG9vmF2kkGBRanpqRVpmDjD+YNISHDxKIrybQNK8xQWJucWZ6RCpU4y6HBtWr//CJMSSl5
 +XKiXOGwtSJABSlFGaBzcClgouMcpKCfMyMjAwCPEUpBblZpagyr9iFOdgVBLm7QKZwpOZVwK
 36RXQEUxAR1wHuZ+3uCQRISXVwBh6mnNv4s3IjcZM/uH/M6cx5YfGTZ83/06kp0tjroXN1Q+y
 pRxsZi0x78/vq33FM1X31J9dfodK+Fw4L/g/UXj9VKTy6HTF46sClBl328lqBsnVzVosNLtb7
 8vkW9pPI481y3WXszY49IbP4MucJbzBKfu95aMI+4V1TKeTXOJWLdzX6KWwWImlOCPRUIu5qD
 gRADqNvnYAAwAA
X-Env-Sender: prvs=32922000b=Paul.Durrant@citrix.com
X-Msg-Ref: server-3.tower-206.messagelabs.com!1497257936!99340088!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 11667 invoked from network); 12 Jun 2017 08:58:56 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-3.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 12 Jun 2017 08:58:56 -0000
X-IronPort-AV: E=Sophos;i="5.39,333,1493683200"; d="scan'208";a="47591128"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 1/4] xenvkbd: Make msbuild.bat executable
Thread-Index: AQHS36YNqVz/ikV330WmKqYF0X2dDaIg9Ncw
Date: Mon, 12 Jun 2017 08:58:55 +0000
Message-ID: <c6f2a057ea314dccb59373c57d7d7a8a@AMSPEX02CL03.citrite.net>
References: <20170607155148.376-1-owen.smith@citrix.com>
In-Reply-To: <20170607155148.376-1-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 1/4] xenvkbd: Make msbuild.bat executable
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAwNyBKdW5lIDIwMTcgMTY6NTINCj4g
VG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8
b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0gg
MS80XSB4ZW52a2JkOiBNYWtlIG1zYnVpbGQuYmF0IGV4ZWN1dGFibGUNCj4gDQo+IEZyb206IE93
ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93
ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFu
dCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBtc2J1aWxkLmJhdCB8IDAN
Cj4gIDEgZmlsZSBjaGFuZ2VkLCAwIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pDQo+ICBt
b2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IG1zYnVpbGQuYmF0DQo+IA0KPiBkaWZmIC0tZ2l0
IGEvbXNidWlsZC5iYXQgYi9tc2J1aWxkLmJhdA0KPiBvbGQgbW9kZSAxMDA2NDQNCj4gbmV3IG1v
ZGUgMTAwNzU1DQo+IC0tDQo+IDIuOC4zDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0K
PiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cHM6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFp
bGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz
LnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 12 09:00:54 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 12 Jun 2017 09:00:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dKLDS-00029f-LE; Mon, 12 Jun 2017 09:00:54 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=32922000b=Paul.Durrant@citrix.com>)
 id 1dKLDR-00029Z-Fo
 for win-pv-devel@lists.xenproject.org; Mon, 12 Jun 2017 09:00:53 +0000
Received: from [193.109.254.147] by server-9.bemta-6.messagelabs.com id
 7D/DF-03557-4485E395; Mon, 12 Jun 2017 09:00:52 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrPIsWRWlGSWpSXmKPExsWyU9JRQtc5wi7
 SYHmvhsWfxYkOjB6HP1xhCWCMYs3MS8qvSGDN+Hf0BEvBq0dMFV/6fjI2MM65x9TFyMkhIeAn
 8bx9KyuIzSagI7H06HywuIhAgcT39/OYQWxmATWJ6/u7wGqEBXwl7p+8DxTnAKrxk7h/hQOi3
 EjizJEFbCA2i4CqxN+9u8DG8Aq4Sxx6dwFsjJBAmsSO3pWMIDangKXEsRcrwEYyCshKfGlcDb
 VKXOLWk/lQpwlILNlznhnCFpV4+fgfK4RtILF16T4WkBOYBTQl1u/Sh2hVlJjS/ZAdYq2gxMm
 ZT1gmMArPQjJ1FkLHLCQds5B0LGBkWcWoUZxaVJZapGtkoJdUlJmeUZKbmJmja2hgppebWlyc
 mJ6ak5hUrJecn7uJERj4DECwg/HXsoBDjJIcTEqivFuu2EQK8SXlp1RmJBZnxBeV5qQWH2KU4
 eBQkuBlDbeLFBIsSk1PrUjLzAHGIExagoNHSYT3Nkiat7ggMbc4Mx0idYpRl2PD6vVfmIRY8v
 LzUqXEeV1AigRAijJK8+BGwNLBJUZZKWFeRqCjhHgKUotyM0tQ5V8xinMwKgnzWoNM4cnMK4H
 b9AroCCagI66D3M9bXJKIkJJqYExfFKehsjRQ8tGzN/NrE+75uEtWfZ98/Onx1irF/A7v4//O
 +KRHTWC6tU1C7/jsm7929kpdLr/6luvwj9O2MWW5Hv23+DzWT9FmtdeNqG93nPRx3fXyJTqyZ
 dOrXxyoYdnF+s5tbnmu4vEFbwVZvnC+3uhYn5j87WXyshPM9ssm6y4s5FjAH67EUpyRaKjFXF
 ScCABdr03UAgMAAA==
X-Env-Sender: prvs=32922000b=Paul.Durrant@citrix.com
X-Msg-Ref: server-10.tower-27.messagelabs.com!1497258051!83976917!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 43031 invoked from network); 12 Jun 2017 09:00:51 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 12 Jun 2017 09:00:51 -0000
X-IronPort-AV: E=Sophos;i="5.39,333,1493683200"; d="scan'208";a="47591271"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 2/4] xenvkbd: Move input reports to Ring.c
Thread-Index: AQHS36YN4FGbvi0TAkaj1mF4tz/Gz6Ig9VCA
Date: Mon, 12 Jun 2017 09:00:50 +0000
Message-ID: <20a343b5b913474998eec56dbf0d54b4@AMSPEX02CL03.citrite.net>
References: <20170607155148.376-1-owen.smith@citrix.com>
 <20170607155148.376-2-owen.smith@citrix.com>
In-Reply-To: <20170607155148.376-2-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 2/4] xenvkbd: Move input reports to Ring.c
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAwNyBKdW5lIDIwMTcgMTY6NTINCj4g
VG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8
b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0gg
Mi80XSB4ZW52a2JkOiBNb3ZlIGlucHV0IHJlcG9ydHMgdG8gUmluZy5jDQo+IA0KPiBGcm9tOiBP
d2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+DQo+IA0KPiBIYXMgdGhlIGJlbmVmaXQg
b2Ygbm90IHJlcXVpcmluZyBhbm90aGVyIHN1c3BlbmQgY2FsbGJhY2sgb3IgZGVidWcNCj4gY2Fs
bGJhY2sNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4
LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+
DQoNCj4gLS0tDQo+ICBzcmMveGVudmtiZC9oaWQuYyAgfCA0MDYgKysrKysrKystLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gIHNyYy94ZW52a2JkL2hpZC5o
ICB8ICAyNCArLS0tDQo+ICBzcmMveGVudmtiZC9wZG8uaCAgfCAgMzUgLS0tLS0NCj4gIHNyYy94
ZW52a2JkL3JpbmcuYyB8IDI3MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQ0K
PiAgc3JjL3hlbnZrYmQvcmluZy5oIHwgIDE0ICsrDQo+ICA1IGZpbGVzIGNoYW5nZWQsIDMzNyBp
bnNlcnRpb25zKCspLCA0MTMgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hl
bnZrYmQvaGlkLmMgYi9zcmMveGVudmtiZC9oaWQuYw0KPiBpbmRleCA2ZGI2NjEzLi4wM2ZjMWEy
IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmtiZC9oaWQuYw0KPiArKysgYi9zcmMveGVudmtiZC9o
aWQuYw0KPiBAQCAtNDAsNiArNDAsNyBAQA0KPiANCj4gICNpbmNsdWRlICJwZG8uaCINCj4gICNp
bmNsdWRlICJoaWQuaCINCj4gKyNpbmNsdWRlICJyaW5nLmgiDQo+ICAjaW5jbHVkZSAibXJzdy5o
Ig0KPiAgI2luY2x1ZGUgInRocmVhZC5oIg0KPiAgI2luY2x1ZGUgInZrYmQuaCINCj4gQEAgLTUx
LDIwICs1MiwxMiBAQCBzdHJ1Y3QgX1hFTlZLQkRfSElEX0NPTlRFWFQgew0KPiAgICAgIFBYRU5W
S0JEX1BETyAgICAgICAgICAgICAgICBQZG87DQo+ICAgICAgWEVOVktCRF9NUlNXX0xPQ0sgICAg
ICAgICAgIExvY2s7DQo+ICAgICAgTE9ORyAgICAgICAgICAgICAgICAgICAgICAgIFJlZmVyZW5j
ZXM7DQo+ICsgICAgUFhFTlZLQkRfUklORyAgICAgICAgICAgICAgIFJpbmc7DQo+ICAgICAgUFhF
TlZLQkRfRlJPTlRFTkQgICAgICAgICAgIEZyb250ZW5kOw0KPiAgICAgIEJPT0xFQU4gICAgICAg
ICAgICAgICAgICAgICBFbmFibGVkOw0KPiAgICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAg
ICBWZXJzaW9uOw0KPiAgICAgIFhFTkhJRF9ISURfQ0FMTEJBQ0sgICAgICAgICBDYWxsYmFjazsN
Cj4gICAgICBQVk9JRCAgICAgICAgICAgICAgICAgICAgICAgQXJndW1lbnQ7DQo+IC0gICAgWEVO
QlVTX0RFQlVHX0lOVEVSRkFDRSAgICAgIERlYnVnSW50ZXJmYWNlOw0KPiAtICAgIFhFTkJVU19T
VVNQRU5EX0lOVEVSRkFDRSAgICBTdXNwZW5kSW50ZXJmYWNlOw0KPiAtICAgIFBYRU5CVVNfREVC
VUdfQ0FMTEJBQ0sgICAgICBEZWJ1Z0NhbGxiYWNrOw0KPiAtICAgIFBYRU5CVVNfU1VTUEVORF9D
QUxMQkFDSyAgICBTdXNwZW5kQ2FsbGJhY2tMYXRlOw0KPiAtDQo+IC0gICAgWEVOVktCRF9ISURf
S0VZQk9BUkQgICAgICAgIEtleWJvYXJkUmVwb3J0Ow0KPiAtICAgIFhFTlZLQkRfSElEX0FCU01P
VVNFICAgICAgICBBYnNNb3VzZVJlcG9ydDsNCj4gLSAgICBCT09MRUFOICAgICAgICAgICAgICAg
ICAgICAgS2V5Ym9hcmRQZW5kaW5nOw0KPiAtICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAg
ICBBYnNNb3VzZVBlbmRpbmc7DQo+ICB9Ow0KPiANCj4gICNkZWZpbmUgWEVOVktCRF9WS0JEX1RB
RyAgJ0ZJVicNCj4gQEAgLTEwNyw2OCArMTAwLDYgQEAgX19IaWRGcmVlKA0KPiAgICAgIF9fRnJl
ZVBvb2xXaXRoVGFnKEJ1ZmZlciwgWEVOVktCRF9WS0JEX1RBRyk7DQo+ICB9DQo+IA0KPiAtc3Rh
dGljIERFQ0xTUEVDX05PSU5MSU5FIFZPSUQNCj4gLUhpZFN1c3BlbmRDYWxsYmFja0xhdGUoDQo+
IC0gICAgSU4gIFBWT0lEICAgICAgICAgICAgICAgQXJndW1lbnQNCj4gLSAgICApDQo+IC17DQo+
IC0gICAgUFhFTlZLQkRfSElEX0NPTlRFWFQgICAgQ29udGV4dCA9IEFyZ3VtZW50Ow0KPiAtICAg
IE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsNCj4gLQ0KPiAtICAgIFJ0bFplcm9NZW1v
cnkoJkNvbnRleHQtPktleWJvYXJkUmVwb3J0LA0KPiBzaXplb2YoWEVOVktCRF9ISURfS0VZQk9B
UkQpKTsNCj4gLSAgICBSdGxaZXJvTWVtb3J5KCZDb250ZXh0LT5BYnNNb3VzZVJlcG9ydCwNCj4g
c2l6ZW9mKFhFTlZLQkRfSElEX0FCU01PVVNFKSk7DQo+IC0gICAgQ29udGV4dC0+S2V5Ym9hcmRS
ZXBvcnQuUmVwb3J0SWQgPSAxOw0KPiAtICAgIENvbnRleHQtPkFic01vdXNlUmVwb3J0LlJlcG9y
dElkID0gMjsNCj4gLQ0KPiAtICAgIGlmICghQ29udGV4dC0+RW5hYmxlZCkNCj4gLSAgICAgICAg
cmV0dXJuOw0KPiAtDQo+IC0gICAgc3RhdHVzID0gRnJvbnRlbmRTZXRTdGF0ZShDb250ZXh0LT5G
cm9udGVuZCwgRlJPTlRFTkRfRU5BQkxFRCk7DQo+IC0gICAgQVNTRVJUKE5UX1NVQ0NFU1Moc3Rh
dHVzKSk7DQo+IC19DQo+IC0NCj4gLXN0YXRpYyBERUNMU1BFQ19OT0lOTElORSBWT0lEDQo+IC1I
aWREZWJ1Z0NhbGxiYWNrKA0KPiAtICAgIElOICBQVk9JRCAgICAgICAgICAgICAgIEFyZ3VtZW50
LA0KPiAtICAgIElOICBCT09MRUFOICAgICAgICAgICAgIENyYXNoaW5nDQo+IC0gICAgKQ0KPiAt
ew0KPiAtICAgIFBYRU5WS0JEX0hJRF9DT05URVhUICAgIENvbnRleHQgPSBBcmd1bWVudDsNCj4g
LQ0KPiAtICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoQ3Jhc2hpbmcpOw0KPiAtDQo+IC0gICAg
WEVOQlVTX0RFQlVHKFByaW50ZiwNCj4gLSAgICAgICAgICAgICAgICAgJkNvbnRleHQtPkRlYnVn
SW50ZXJmYWNlLA0KPiAtICAgICAgICAgICAgICAgICAiJXUgMHglcCgweCVwKSVzXG4iLA0KPiAt
ICAgICAgICAgICAgICAgICBDb250ZXh0LT5WZXJzaW9uLA0KPiAtICAgICAgICAgICAgICAgICBD
b250ZXh0LT5DYWxsYmFjaywNCj4gLSAgICAgICAgICAgICAgICAgQ29udGV4dC0+QXJndW1lbnQs
DQo+IC0gICAgICAgICAgICAgICAgIENvbnRleHQtPkVuYWJsZWQgPyAiIEVOQUJMRUQiIDogIiIp
Ow0KPiAtDQo+IC0gICAgWEVOQlVTX0RFQlVHKFByaW50ZiwNCj4gLSAgICAgICAgICAgICAgICAg
JkNvbnRleHQtPkRlYnVnSW50ZXJmYWNlLA0KPiAtICAgICAgICAgICAgICAgICAiS0JEOiAlMDJ4
ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMnglc1xuIiwNCj4gLSAgICAgICAgICAg
ICAgICAgQ29udGV4dC0+S2V5Ym9hcmRSZXBvcnQuUmVwb3J0SWQsDQo+IC0gICAgICAgICAgICAg
ICAgIENvbnRleHQtPktleWJvYXJkUmVwb3J0Lk1vZGlmaWVycywNCj4gLSAgICAgICAgICAgICAg
ICAgQ29udGV4dC0+S2V5Ym9hcmRSZXBvcnQuS2V5c1swXSwNCj4gLSAgICAgICAgICAgICAgICAg
Q29udGV4dC0+S2V5Ym9hcmRSZXBvcnQuS2V5c1sxXSwNCj4gLSAgICAgICAgICAgICAgICAgQ29u
dGV4dC0+S2V5Ym9hcmRSZXBvcnQuS2V5c1syXSwNCj4gLSAgICAgICAgICAgICAgICAgQ29udGV4
dC0+S2V5Ym9hcmRSZXBvcnQuS2V5c1szXSwNCj4gLSAgICAgICAgICAgICAgICAgQ29udGV4dC0+
S2V5Ym9hcmRSZXBvcnQuS2V5c1s0XSwNCj4gLSAgICAgICAgICAgICAgICAgQ29udGV4dC0+S2V5
Ym9hcmRSZXBvcnQuS2V5c1s1XSwNCj4gLSAgICAgICAgICAgICAgICAgQ29udGV4dC0+S2V5Ym9h
cmRQZW5kaW5nID8gIiBQRU5ESU5HIiA6ICIiKTsNCj4gLQ0KPiAtICAgIFhFTkJVU19ERUJVRyhQ
cmludGYsDQo+IC0gICAgICAgICAgICAgICAgICZDb250ZXh0LT5EZWJ1Z0ludGVyZmFjZSwNCj4g
LSAgICAgICAgICAgICAgICAgIk1PVTogJTAyeCAlMDJ4ICUwNHggJTA0eCAlMDJ4JXNcbiIsDQo+
IC0gICAgICAgICAgICAgICAgIENvbnRleHQtPkFic01vdXNlUmVwb3J0LlJlcG9ydElkLA0KPiAt
ICAgICAgICAgICAgICAgICBDb250ZXh0LT5BYnNNb3VzZVJlcG9ydC5CdXR0b25zLA0KPiAtICAg
ICAgICAgICAgICAgICBDb250ZXh0LT5BYnNNb3VzZVJlcG9ydC5YLA0KPiAtICAgICAgICAgICAg
ICAgICBDb250ZXh0LT5BYnNNb3VzZVJlcG9ydC5ZLA0KPiAtICAgICAgICAgICAgICAgICBDb250
ZXh0LT5BYnNNb3VzZVJlcG9ydC5kWiwNCj4gLSAgICAgICAgICAgICAgICAgQ29udGV4dC0+QWJz
TW91c2VQZW5kaW5nID8gIiBQRU5ESU5HIiA6ICIiKTsNCj4gLX0NCj4gLQ0KPiAgc3RhdGljIE5U
U1RBVFVTDQo+ICBIaWRFbmFibGUoDQo+ICAgICAgSU4gIFBJTlRFUkZBQ0UgICAgICAgICAgSW50
ZXJmYWNlLA0KPiBAQCAtMTk2LDM1ICsxMjcsOSBAQCBIaWRFbmFibGUoDQo+IA0KPiAgICAgIEtl
TWVtb3J5QmFycmllcigpOw0KPiANCj4gLSAgICBzdGF0dXMgPSBYRU5CVVNfU1VTUEVORChBY3F1
aXJlLCAmQ29udGV4dC0+U3VzcGVuZEludGVyZmFjZSk7DQo+IC0gICAgaWYgKCFOVF9TVUNDRVNT
KHN0YXR1cykpDQo+IC0gICAgICAgIGdvdG8gZmFpbDE7DQo+IC0NCj4gICAgICBzdGF0dXMgPSBG
cm9udGVuZFNldFN0YXRlKENvbnRleHQtPkZyb250ZW5kLCBGUk9OVEVORF9FTkFCTEVEKTsNCj4g
ICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4gLSAgICAgICAgZ290byBmYWlsMjsNCj4g
LQ0KPiAtICAgIHN0YXR1cyA9IFhFTkJVU19TVVNQRU5EKFJlZ2lzdGVyLA0KPiAtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZDb250ZXh0LT5TdXNwZW5kSW50ZXJmYWNlLA0KPiAtICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNVU1BFTkRfQ0FMTEJBQ0tfTEFURSwNCj4gLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBIaWRTdXNwZW5kQ2FsbGJhY2tMYXRlLA0KPiAtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIENvbnRleHQsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJkNvbnRleHQtPlN1c3BlbmRDYWxsYmFja0xhdGUpOw0KPiAtICAgIGlmICghTlRfU1VDQ0VT
UyhzdGF0dXMpKQ0KPiAtICAgICAgICBnb3RvIGZhaWwzOw0KPiAtDQo+IC0gICAgc3RhdHVzID0g
WEVOQlVTX0RFQlVHKEFjcXVpcmUsICZDb250ZXh0LT5EZWJ1Z0ludGVyZmFjZSk7DQo+IC0gICAg
aWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+IC0gICAgICAgIGdvdG8gZmFpbDQ7DQo+IC0NCj4g
LSAgICBzdGF0dXMgPSBYRU5CVVNfREVCVUcoUmVnaXN0ZXIsDQo+IC0gICAgICAgICAgICAgICAg
ICAgICAgICAgICZDb250ZXh0LT5EZWJ1Z0ludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgX19NT0RVTEVfXyJ8REVCVUciLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICBIaWREZWJ1Z0NhbGxiYWNrLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICBDb250ZXh0
LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udGV4dC0+RGVidWdDYWxsYmFjayk7
DQo+IC0gICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+IC0gICAgICAgIGdvdG8gZmFpbDU7
DQo+ICsgICAgICAgIGdvdG8gZmFpbDE7DQo+IA0KPiAgZG9uZToNCj4gICAgICBBU1NFUlQoRXhj
bHVzaXZlKTsNCj4gQEAgLTIzNCwzMiArMTM5LDYgQEAgZG9uZToNCj4gDQo+ICAgICAgcmV0dXJu
IFNUQVRVU19TVUNDRVNTOw0KPiANCj4gLWZhaWw1Og0KPiAtICAgIEVycm9yKCJmYWlsNVxuIik7
DQo+IC0NCj4gLSAgICBYRU5CVVNfREVCVUcoUmVsZWFzZSwgJkNvbnRleHQtPkRlYnVnSW50ZXJm
YWNlKTsNCj4gLQ0KPiAtZmFpbDQ6DQo+IC0gICAgRXJyb3IoImZhaWw0XG4iKTsNCj4gLQ0KPiAt
ICAgIFhFTkJVU19TVVNQRU5EKERlcmVnaXN0ZXIsDQo+IC0gICAgICAgICAgICAgICAgICAgJkNv
bnRleHQtPlN1c3BlbmRJbnRlcmZhY2UsDQo+IC0gICAgICAgICAgICAgICAgICAgQ29udGV4dC0+
U3VzcGVuZENhbGxiYWNrTGF0ZSk7DQo+IC0gICAgQ29udGV4dC0+U3VzcGVuZENhbGxiYWNrTGF0
ZSA9IE5VTEw7DQo+IC0NCj4gLWZhaWwzOg0KPiAtICAgIEVycm9yKCJmYWlsM1xuIik7DQo+IC0N
Cj4gLSAgICAoVk9JRCkgRnJvbnRlbmRTZXRTdGF0ZShDb250ZXh0LT5Gcm9udGVuZCwgRlJPTlRF
TkRfQ09OTkVDVEVEKTsNCj4gLQ0KPiAtICAgIFJlbGVhc2VNcnN3TG9ja0V4Y2x1c2l2ZSgmQ29u
dGV4dC0+TG9jaywgSXJxbCwgVFJVRSk7DQo+IC0gICAgRXhjbHVzaXZlID0gRkFMU0U7DQo+IC0N
Cj4gLWZhaWwyOg0KPiAtICAgIEVycm9yKCJmYWlsMlxuIik7DQo+IC0NCj4gLSAgICBYRU5CVVNf
U1VTUEVORChSZWxlYXNlLCAmQ29udGV4dC0+U3VzcGVuZEludGVyZmFjZSk7DQo+IC0NCj4gIGZh
aWwxOg0KPiAgICAgIEVycm9yKCJmYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7DQo+IA0KPiBAQCAt
Mjk5LDI0ICsxNzgsMTAgQEAgSGlkRGlzYWJsZSgNCj4gDQo+ICAgICAgS2VNZW1vcnlCYXJyaWVy
KCk7DQo+IA0KPiAtICAgIFhFTkJVU19ERUJVRyhEZXJlZ2lzdGVyLA0KPiAtICAgICAgICAgICAg
ICAgICAmQ29udGV4dC0+RGVidWdJbnRlcmZhY2UsDQo+IC0gICAgICAgICAgICAgICAgIENvbnRl
eHQtPkRlYnVnQ2FsbGJhY2spOw0KPiAtICAgIENvbnRleHQtPkRlYnVnQ2FsbGJhY2sgPSBOVUxM
Ow0KPiAtDQo+IC0gICAgWEVOQlVTX0RFQlVHKFJlbGVhc2UsICZDb250ZXh0LT5EZWJ1Z0ludGVy
ZmFjZSk7DQo+IC0NCj4gLSAgICBYRU5CVVNfU1VTUEVORChEZXJlZ2lzdGVyLA0KPiAtICAgICAg
ICAgICAgICAgICAgICZDb250ZXh0LT5TdXNwZW5kSW50ZXJmYWNlLA0KPiAtICAgICAgICAgICAg
ICAgICAgIENvbnRleHQtPlN1c3BlbmRDYWxsYmFja0xhdGUpOw0KPiAtICAgIENvbnRleHQtPlN1
c3BlbmRDYWxsYmFja0xhdGUgPSBOVUxMOw0KPiAtDQo+ICAgICAgKFZPSUQpIEZyb250ZW5kU2V0
U3RhdGUoQ29udGV4dC0+RnJvbnRlbmQsIEZST05URU5EX0NPTk5FQ1RFRCk7DQo+IA0KPiAgICAg
IFJlbGVhc2VNcnN3TG9ja0V4Y2x1c2l2ZSgmQ29udGV4dC0+TG9jaywgSXJxbCwgVFJVRSk7DQo+
IA0KPiAtICAgIFhFTkJVU19TVVNQRU5EKFJlbGVhc2UsICZDb250ZXh0LT5TdXNwZW5kSW50ZXJm
YWNlKTsNCj4gLQ0KPiAgICAgIENvbnRleHQtPkFyZ3VtZW50ID0gTlVMTDsNCj4gICAgICBDb250
ZXh0LT5DYWxsYmFjayA9IE5VTEw7DQo+IA0KPiBAQCAtNDY3LDggKzMzMiwxMyBAQCBIaWRHZXRJ
bmRleGVkU3RyaW5nKA0KPiAgICAgIFRyYWNlKCI9PT09PT5cbiIpOw0KPiAgICAgIEFjcXVpcmVN
cnN3TG9ja1NoYXJlZCgmQ29udGV4dC0+TG9jayk7DQo+IA0KPiArICAgIHN0YXR1cyA9IFNUQVRV
U19ERVZJQ0VfTk9UX1JFQURZOw0KPiArICAgIGlmICghQ29udGV4dC0+RW5hYmxlZCkNCj4gKyAg
ICAgICAgZ290byBkb25lOw0KPiArDQo+ICAgICAgc3RhdHVzID0gU1RBVFVTX05PVF9TVVBQT1JU
RUQ7DQo+IC0NCj4gKw0KPiArZG9uZToNCj4gICAgICBSZWxlYXNlTXJzd0xvY2tTaGFyZWQoJkNv
bnRleHQtPkxvY2spOw0KPiAgICAgIFRyYWNlKCI8PT09PT1cbiIpOw0KPiANCj4gQEAgLTQ5NCw4
ICszNjQsMTMgQEAgSGlkR2V0RmVhdHVyZSgNCj4gICAgICBUcmFjZSgiPT09PT0+XG4iKTsNCj4g
ICAgICBBY3F1aXJlTXJzd0xvY2tTaGFyZWQoJkNvbnRleHQtPkxvY2spOw0KPiANCj4gKyAgICBz
dGF0dXMgPSBTVEFUVVNfREVWSUNFX05PVF9SRUFEWTsNCj4gKyAgICBpZiAoIUNvbnRleHQtPkVu
YWJsZWQpDQo+ICsgICAgICAgIGdvdG8gZG9uZTsNCj4gKw0KPiAgICAgIHN0YXR1cyA9IFNUQVRV
U19OT1RfU1VQUE9SVEVEOw0KPiAtDQo+ICsNCj4gK2RvbmU6DQo+ICAgICAgUmVsZWFzZU1yc3dM
b2NrU2hhcmVkKCZDb250ZXh0LT5Mb2NrKTsNCj4gICAgICBUcmFjZSgiPD09PT09XG4iKTsNCj4g
DQo+IEBAIC01MjAsOCArMzk1LDEzIEBAIEhpZFNldEZlYXR1cmUoDQo+ICAgICAgVHJhY2UoIj09
PT09PlxuIik7DQo+ICAgICAgQWNxdWlyZU1yc3dMb2NrU2hhcmVkKCZDb250ZXh0LT5Mb2NrKTsN
Cj4gDQo+ICsgICAgc3RhdHVzID0gU1RBVFVTX0RFVklDRV9OT1RfUkVBRFk7DQo+ICsgICAgaWYg
KCFDb250ZXh0LT5FbmFibGVkKQ0KPiArICAgICAgICBnb3RvIGRvbmU7DQo+ICsNCj4gICAgICBz
dGF0dXMgPSBTVEFUVVNfTk9UX1NVUFBPUlRFRDsNCj4gLQ0KPiArDQo+ICtkb25lOg0KPiAgICAg
IFJlbGVhc2VNcnN3TG9ja1NoYXJlZCgmQ29udGV4dC0+TG9jayk7DQo+ICAgICAgVHJhY2UoIjw9
PT09PVxuIik7DQo+IA0KPiBAQCAtNTQ2LDMyICs0MjYsMjAgQEAgSGlkR2V0SW5wdXRSZXBvcnQo
DQo+ICAgICAgVHJhY2UoIj09PT09PlxuIik7DQo+ICAgICAgQWNxdWlyZU1yc3dMb2NrU2hhcmVk
KCZDb250ZXh0LT5Mb2NrKTsNCj4gDQo+IC0gICAgc3dpdGNoIChSZXBvcnRJZCkgew0KPiAtICAg
IGNhc2UgMToNCj4gLSAgICAgICAgc3RhdHVzID0gSGlkQ29weUJ1ZmZlcihCdWZmZXIsDQo+IC0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoLA0KPiAtICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZDb250ZXh0LT5LZXlib2FyZFJlcG9ydCwNCj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaXplb2YoWEVOVktCRF9ISURfS0VZQk9BUkQpLA0KPiAtICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybmVkKTsNCj4gLSAgICAgICAgYnJlYWs7
DQo+IC0gICAgY2FzZSAyOg0KPiAtICAgICAgICBzdGF0dXMgPSBIaWRDb3B5QnVmZmVyKEJ1ZmZl
ciwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMZW5ndGgsDQo+IC0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJkNvbnRleHQtPkFic01vdXNlUmVwb3J0LA0KPiAtICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihYRU5WS0JEX0hJRF9BQlNNT1VTRSks
DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuZWQpOw0KPiAtICAgICAg
ICBicmVhazsNCj4gLSAgICBkZWZhdWx0Og0KPiAtICAgICAgICBzdGF0dXMgPSBTVEFUVVNfTk9U
X1NVUFBPUlRFRDsNCj4gLSAgICAgICAgYnJlYWs7DQo+IC0gICAgfQ0KPiAtDQo+ICsgICAgc3Rh
dHVzID0gU1RBVFVTX0RFVklDRV9OT1RfUkVBRFk7DQo+ICsgICAgaWYgKCFDb250ZXh0LT5FbmFi
bGVkKQ0KPiArICAgICAgICBnb3RvIGRvbmU7DQo+ICsNCj4gKyAgICBzdGF0dXMgPSBSaW5nR2V0
SW5wdXRSZXBvcnQoQ29udGV4dC0+UmluZywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUmVwb3J0SWQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZl
ciwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoLA0KPiArICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm5lZCk7DQo+ICsNCj4gK2RvbmU6DQo+ICAg
ICAgUmVsZWFzZU1yc3dMb2NrU2hhcmVkKCZDb250ZXh0LT5Mb2NrKTsNCj4gICAgICBUcmFjZSgi
PD09PT09XG4iKTsNCj4gDQo+IC0gICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihSZXBvcnRJZCk7
DQo+IC0gICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihCdWZmZXIpOw0KPiAtICAgIFVOUkVGRVJF
TkNFRF9QQVJBTUVURVIoTGVuZ3RoKTsNCj4gICAgICByZXR1cm4gc3RhdHVzOw0KPiAgfQ0KPiAN
Cj4gQEAgLTU4OSw4ICs0NTcsMTMgQEAgSGlkU2V0T3V0cHV0UmVwb3J0KA0KPiAgICAgIFRyYWNl
KCI9PT09PT5cbiIpOw0KPiAgICAgIEFjcXVpcmVNcnN3TG9ja1NoYXJlZCgmQ29udGV4dC0+TG9j
ayk7DQo+IA0KPiArICAgIHN0YXR1cyA9IFNUQVRVU19ERVZJQ0VfTk9UX1JFQURZOw0KPiArICAg
IGlmICghQ29udGV4dC0+RW5hYmxlZCkNCj4gKyAgICAgICAgZ290byBkb25lOw0KPiArDQo+ICAg
ICAgc3RhdHVzID0gU1RBVFVTX05PVF9TVVBQT1JURUQ7DQo+IC0NCj4gKw0KPiArZG9uZToNCj4g
ICAgICBSZWxlYXNlTXJzd0xvY2tTaGFyZWQoJkNvbnRleHQtPkxvY2spOw0KPiAgICAgIFRyYWNl
KCI8PT09PT1cbiIpOw0KPiANCj4gQEAgLTYwMCwyMyArNDczLDYgQEAgSGlkU2V0T3V0cHV0UmVw
b3J0KA0KPiAgICAgIHJldHVybiBzdGF0dXM7DQo+ICB9DQo+IA0KPiAtc3RhdGljIEJPT0xFQU4N
Cj4gLUhpZFNlbmRSZWFkUmVwb3J0KA0KPiAtICAgIElOICBQWEVOVktCRF9ISURfQ09OVEVYVCAg
ICBDb250ZXh0LA0KPiAtICAgIElOICBQVk9JRCAgICAgICAgICAgICAgICAgICBCdWZmZXIsDQo+
IC0gICAgSU4gIFVMT05HICAgICAgICAgICAgICAgICAgIExlbmd0aA0KPiAtICAgICkNCj4gLXsN
Cj4gLSAgICBpZiAoIUNvbnRleHQtPkVuYWJsZWQpDQo+IC0gICAgICAgIHJldHVybiBUUlVFOyAv
LyBmbGFnIGFzIHBlbmRpbmcNCj4gLQ0KPiAtICAgIC8vIENhbGxiYWNrIHJldHVybnMgVFJVRSBv
biBzdWNjZXNzLCBGQUxTRSB3aGVuIElycCBjb3VsZCBub3QgYmUNCj4gY29tcGxldGVkDQo+IC0g
ICAgLy8gSW52ZXJ0IHRoZSByZXN1bHQgdG8gaW5kaWNhdGUgUGVuZGluZyBzdGF0ZQ0KPiAtICAg
IHJldHVybiAhQ29udGV4dC0+Q2FsbGJhY2soQ29udGV4dC0+QXJndW1lbnQsDQo+IC0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIsDQo+IC0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBMZW5ndGgpOw0KPiAtfQ0KPiAtDQo+ICBzdGF0aWMgVk9JRA0KPiAgSGlkUmVhZFJl
cG9ydCgNCj4gICAgICBJTiAgUElOVEVSRkFDRSAgICAgICAgICBJbnRlcmZhY2UNCj4gQEAgLTYy
NiwxNSArNDgyLDggQEAgSGlkUmVhZFJlcG9ydCgNCj4gDQo+ICAgICAgQWNxdWlyZU1yc3dMb2Nr
U2hhcmVkKCZDb250ZXh0LT5Mb2NrKTsNCj4gDQo+IC0gICAgLy8gQ2hlY2sgZm9yIHBlbmRpbmcg
cmVwb3J0cywgcHVzaCAxIHBlbmRpbmcgcmVwb3J0IHRvIHN1YnNjcmliZXINCj4gLSAgICBpZiAo
Q29udGV4dC0+S2V5Ym9hcmRQZW5kaW5nKQ0KPiAtICAgICAgICBDb250ZXh0LT5LZXlib2FyZFBl
bmRpbmcgPSBIaWRTZW5kUmVhZFJlcG9ydChDb250ZXh0LA0KPiAtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmQ29udGV4dC0+S2V5Ym9hcmRSZXBv
cnQsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVvZihYRU5WS0JEX0hJRF9LRVlCT0FSRCkpOw0KPiAtICAgIGVsc2UgaWYgKENvbnRl
eHQtPkFic01vdXNlUGVuZGluZykNCj4gLSAgICAgICAgQ29udGV4dC0+QWJzTW91c2VQZW5kaW5n
ID0gSGlkU2VuZFJlYWRSZXBvcnQoQ29udGV4dCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkNvbnRleHQtPkFic01vdXNlUmVwb3J0LA0K
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplb2YoWEVOVktCRF9ISURfQUJTTU9VU0UpKTsNCj4gKyAgICBpZiAoQ29udGV4dC0+RW5hYmxl
ZCkNCj4gKyAgICAgICAgUmluZ1JlYWRSZXBvcnQoQ29udGV4dC0+UmluZyk7DQo+IA0KPiAgICAg
IFJlbGVhc2VNcnN3TG9ja1NoYXJlZCgmQ29udGV4dC0+TG9jayk7DQo+ICB9DQo+IEBAIC02NTMs
OCArNTAyLDEzIEBAIEhpZFdyaXRlUmVwb3J0KA0KPiAgICAgIFRyYWNlKCI9PT09PT5cbiIpOw0K
PiAgICAgIEFjcXVpcmVNcnN3TG9ja1NoYXJlZCgmQ29udGV4dC0+TG9jayk7DQo+IA0KPiArICAg
IHN0YXR1cyA9IFNUQVRVU19ERVZJQ0VfTk9UX1JFQURZOw0KPiArICAgIGlmICghQ29udGV4dC0+
RW5hYmxlZCkNCj4gKyAgICAgICAgZ290byBkb25lOw0KPiArDQo+ICAgICAgc3RhdHVzID0gU1RB
VFVTX05PVF9TVVBQT1JURUQ7DQo+IC0NCj4gKw0KPiArZG9uZToNCj4gICAgICBSZWxlYXNlTXJz
d0xvY2tTaGFyZWQoJkNvbnRleHQtPkxvY2spOw0KPiAgICAgIFRyYWNlKCI8PT09PT1cbiIpOw0K
PiANCj4gQEAgLTY4MCw2ICs1MzQsNyBAQCBIaWRBY3F1aXJlKA0KPiAgICAgIFRyYWNlKCI9PT09
PlxuIik7DQo+IA0KPiAgICAgIENvbnRleHQtPkZyb250ZW5kID0gUGRvR2V0RnJvbnRlbmQoQ29u
dGV4dC0+UGRvKTsNCj4gKyAgICBDb250ZXh0LT5SaW5nID0gRnJvbnRlbmRHZXRSaW5nKENvbnRl
eHQtPkZyb250ZW5kKTsNCj4gICAgICBDb250ZXh0LT5WZXJzaW9uID0gSW50ZXJmYWNlLT5WZXJz
aW9uOw0KPiANCj4gICAgICBUcmFjZSgiPD09PT1cbiIpOw0KPiBAQCAtNzA5LDYgKzU2NCw3IEBA
IEhpZFJlbGVhc2UoDQo+IA0KPiAgICAgIENvbnRleHQtPlZlcnNpb24gPSAwOw0KPiAgICAgIENv
bnRleHQtPkZyb250ZW5kID0gTlVMTDsNCj4gKyAgICBDb250ZXh0LT5SaW5nID0gTlVMTDsNCj4g
DQo+ICAgICAgVHJhY2UoIjw9PT09XG4iKTsNCj4gDQo+IEBAIC03NTMsMTIgKzYwOSw3IEBAIEhp
ZEluaXRpYWxpemUoDQo+IA0KPiAgICAgIEluaXRpYWxpemVNcnN3TG9jaygmKCpDb250ZXh0KS0+
TG9jayk7DQo+IA0KPiAtICAgIEZkb0dldERlYnVnSW50ZXJmYWNlKFBkb0dldEZkbyhQZG8pLCYo
KkNvbnRleHQpLT5EZWJ1Z0ludGVyZmFjZSk7DQo+IC0gICAgRmRvR2V0U3VzcGVuZEludGVyZmFj
ZShQZG9HZXRGZG8oUGRvKSwmKCpDb250ZXh0KS0NCj4gPlN1c3BlbmRJbnRlcmZhY2UpOw0KPiAt
DQo+ICAgICAgKCpDb250ZXh0KS0+UGRvID0gUGRvOw0KPiAtICAgICgqQ29udGV4dCktPktleWJv
YXJkUmVwb3J0LlJlcG9ydElkID0gMTsNCj4gLSAgICAoKkNvbnRleHQpLT5BYnNNb3VzZVJlcG9y
dC5SZXBvcnRJZCA9IDI7DQo+IA0KPiAgICAgIFRyYWNlKCI8PT09PVxuIik7DQo+IA0KPiBAQCAt
ODEzLDE5ICs2NjQsOSBAQCBIaWRUZWFyZG93bigNCj4gIHsNCj4gICAgICBUcmFjZSgiPT09PT5c
biIpOw0KPiANCj4gLSAgICBSdGxaZXJvTWVtb3J5KCZDb250ZXh0LT5LZXlib2FyZFJlcG9ydCwN
Cj4gc2l6ZW9mKFhFTlZLQkRfSElEX0tFWUJPQVJEKSk7DQo+IC0gICAgUnRsWmVyb01lbW9yeSgm
Q29udGV4dC0+QWJzTW91c2VSZXBvcnQsDQo+IHNpemVvZihYRU5WS0JEX0hJRF9BQlNNT1VTRSkp
Ow0KPiAtICAgIENvbnRleHQtPktleWJvYXJkUGVuZGluZyA9IEZBTFNFOw0KPiAtICAgIENvbnRl
eHQtPkFic01vdXNlUGVuZGluZyA9IEZBTFNFOw0KPiAtDQo+ICAgICAgQ29udGV4dC0+UGRvID0g
TlVMTDsNCj4gICAgICBDb250ZXh0LT5WZXJzaW9uID0gMDsNCj4gDQo+IC0gICAgUnRsWmVyb01l
bW9yeSgmQ29udGV4dC0+U3VzcGVuZEludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAgIHNp
emVvZiAoWEVOQlVTX1NVU1BFTkRfSU5URVJGQUNFKSk7DQo+IC0gICAgUnRsWmVyb01lbW9yeSgm
Q29udGV4dC0+RGVidWdJbnRlcmZhY2UsDQo+IC0gICAgICAgICAgICAgICAgICBzaXplb2YgKFhF
TkJVU19ERUJVR19JTlRFUkZBQ0UpKTsNCj4gLQ0KPiAgICAgIFJ0bFplcm9NZW1vcnkoJkNvbnRl
eHQtPkxvY2ssIHNpemVvZiAoWEVOVktCRF9NUlNXX0xPQ0spKTsNCj4gDQo+ICAgICAgQVNTRVJU
KElzWmVyb01lbW9yeShDb250ZXh0LCBzaXplb2YgKFhFTlZLQkRfSElEX0NPTlRFWFQpKSk7DQo+
IEBAIC04MzQsMTQ4ICs2NzUsMTkgQEAgSGlkVGVhcmRvd24oDQo+ICAgICAgVHJhY2UoIjw9PT09
XG4iKTsNCj4gIH0NCj4gDQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgTE9ORw0KPiAtQ29uc3RyYWlu
KA0KPiAtICAgIElOICBMT05HICAgIFZhbHVlLA0KPiAtICAgIElOICBMT05HICAgIE1pbiwNCj4g
LSAgICBJTiAgTE9ORyAgICBNYXgNCj4gLSAgICApDQo+IC17DQo+IC0gICAgaWYgKFZhbHVlIDwg
TWluKQ0KPiAtICAgICAgICByZXR1cm4gTWluOw0KPiAtICAgIGlmIChWYWx1ZSA+IE1heCkNCj4g
LSAgICAgICAgcmV0dXJuIE1heDsNCj4gLSAgICByZXR1cm4gVmFsdWU7DQo+IC19DQo+IC0NCj4g
LXN0YXRpYyBGT1JDRUlOTElORSBVQ0hBUg0KPiAtU2V0Qml0KA0KPiAtICAgIElOICBVQ0hBUiAg
IFZhbHVlLA0KPiAtICAgIElOICBVQ0hBUiAgIEJpdElkeCwNCj4gLSAgICBJTiAgQk9PTEVBTiBQ
cmVzc2VkDQo+IC0gICAgKQ0KPiAtew0KPiAtICAgIGlmIChQcmVzc2VkKSB7DQo+IC0gICAgICAg
IHJldHVybiBWYWx1ZSB8ICgxIDw8IEJpdElkeCk7DQo+IC0gICAgfSBlbHNlIHsNCj4gLSAgICAg
ICAgcmV0dXJuIFZhbHVlICYgfigxIDw8IEJpdElkeCk7DQo+IC0gICAgfQ0KPiAtfQ0KPiAtDQo+
IC1zdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRA0KPiAtU2V0QXJyYXkoDQo+IC0gICAgSU4gIFBVQ0hB
UiAgQXJyYXksDQo+IC0gICAgSU4gIFVMT05HICAgU2l6ZSwNCj4gLSAgICBJTiAgVUNIQVIgICBW
YWx1ZSwNCj4gLSAgICBJTiAgQk9PTEVBTiBQcmVzc2VkDQo+IC0gICAgKQ0KPiAtew0KPiAtICAg
IFVMT05HICAgICAgIElkeDsNCj4gLSAgICBpZiAoUHJlc3NlZCkgew0KPiAtICAgICAgICBmb3Ig
KElkeCA9IDA7IElkeCA8IFNpemU7ICsrSWR4KSB7DQo+IC0gICAgICAgICAgICBpZiAoQXJyYXlb
SWR4XSA9PSBWYWx1ZSkNCj4gLSAgICAgICAgICAgICAgICBicmVhazsNCj4gLSAgICAgICAgICAg
IGlmIChBcnJheVtJZHhdICE9IDApDQo+IC0gICAgICAgICAgICAgICAgY29udGludWU7DQo+IC0g
ICAgICAgICAgICBBcnJheVtJZHhdID0gVmFsdWU7DQo+IC0gICAgICAgICAgICBicmVhazsNCj4g
LSAgICAgICAgfQ0KPiAtICAgIH0gZWxzZSB7DQo+IC0gICAgICAgIGZvciAoSWR4ID0gMDsgSWR4
IDwgU2l6ZTsgKytJZHgpIHsNCj4gLSAgICAgICAgICAgIGlmIChBcnJheVtJZHhdID09IDApDQo+
IC0gICAgICAgICAgICAgICAgYnJlYWs7DQo+IC0gICAgICAgICAgICBpZiAoQXJyYXlbSWR4XSAh
PSBWYWx1ZSkNCj4gLSAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gLSAgICAgICAgICAgIGZv
ciAoOyBJZHggPCBTaXplIC0gMTsgKytJZHgpDQo+IC0gICAgICAgICAgICAgICAgQXJyYXlbSWR4
XSA9IEFycmF5W0lkeCArIDFdOw0KPiAtICAgICAgICAgICAgQXJyYXlbU2l6ZSAtIDFdID0gMDsN
Cj4gLSAgICAgICAgICAgIGJyZWFrOw0KPiAtICAgICAgICB9DQo+IC0gICAgfQ0KPiAtfQ0KPiAt
DQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgVVNIT1JUDQo+IC1LZXlDb2RlVG9Vc2FnZSgNCj4gLSAg
ICBJTiAgVUxPTkcgICBLZXlDb2RlDQo+IC0gICAgKQ0KPiAtew0KPiAtICAgIGlmIChLZXlDb2Rl
IDwNCj4gc2l6ZW9mKFZrYmRLZXlDb2RlVG9Vc2FnZSkvc2l6ZW9mKFZrYmRLZXlDb2RlVG9Vc2Fn
ZVswXSkpDQo+IC0gICAgICAgIHJldHVybiBWa2JkS2V5Q29kZVRvVXNhZ2VbS2V5Q29kZV07DQo+
IC0gICAgcmV0dXJuIDA7DQo+IC19DQo+IC0NCj4gLVZPSUQNCj4gLUhpZEV2ZW50TW90aW9uKA0K
PiAtICAgIElOICBQWEVOVktCRF9ISURfQ09OVEVYVCAgICBDb250ZXh0LA0KPiAtICAgIElOICBM
T05HICAgICAgICAgICAgICAgICAgICBkWCwNCj4gLSAgICBJTiAgTE9ORyAgICAgICAgICAgICAg
ICAgICAgZFksDQo+IC0gICAgSU4gIExPTkcgICAgICAgICAgICAgICAgICAgIGRaDQo+IC0gICAg
KQ0KPiAtew0KPiAtICAgIENvbnRleHQtPkFic01vdXNlUmVwb3J0LlggPSAoVVNIT1JUKUNvbnN0
cmFpbihDb250ZXh0LQ0KPiA+QWJzTW91c2VSZXBvcnQuWCArIGRYLCAwLCAzMjc2Nyk7DQo+IC0g
ICAgQ29udGV4dC0+QWJzTW91c2VSZXBvcnQuWSA9IChVU0hPUlQpQ29uc3RyYWluKENvbnRleHQt
DQo+ID5BYnNNb3VzZVJlcG9ydC5ZICsgZFksIDAsIDMyNzY3KTsNCj4gLSAgICBDb250ZXh0LT5B
YnNNb3VzZVJlcG9ydC5kWiA9IC0oQ0hBUilDb25zdHJhaW4oZFosIC0xMjcsIDEyNyk7DQo+IC0N
Cj4gLSAgICBDb250ZXh0LT5BYnNNb3VzZVBlbmRpbmcgPSBIaWRTZW5kUmVhZFJlcG9ydChDb250
ZXh0LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZDb250ZXh0LT5BYnNNb3VzZVJlcG9ydCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoWEVOVktCRF9ISURfQUJTTU9VU0UpKTsNCj4g
LX0NCj4gLQ0KPiAtVk9JRA0KPiAtSGlkRXZlbnRLZXlwcmVzcygNCj4gLSAgICBJTiAgUFhFTlZL
QkRfSElEX0NPTlRFWFQgICAgQ29udGV4dCwNCj4gLSAgICBJTiAgVUxPTkcgICAgICAgICAgICAg
ICAgICAgS2V5Q29kZSwNCj4gLSAgICBJTiAgQk9PTEVBTiAgICAgICAgICAgICAgICAgUHJlc3Nl
ZA0KPiAtICAgICkNCj4gLXsNCj4gLSAgICBpZiAoS2V5Q29kZSA+PSAweDExMCAmJiBLZXlDb2Rl
IDw9IDB4MTE0KSB7DQo+IC0gICAgICAgIC8vIE1vdXNlIEJ1dHRvbnMNCj4gLSAgICAgICAgQ29u
dGV4dC0+QWJzTW91c2VSZXBvcnQuQnV0dG9ucyA9IFNldEJpdChDb250ZXh0LQ0KPiA+QWJzTW91
c2VSZXBvcnQuQnV0dG9ucywNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoVUNIQVIpKEtleUNvZGUgLSAweDExMCksDQo+IC0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlc3NlZCk7DQo+IC0NCj4gLSAg
ICAgICAgQ29udGV4dC0+QWJzTW91c2VQZW5kaW5nID0gSGlkU2VuZFJlYWRSZXBvcnQoQ29udGV4
dCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmQ29udGV4dC0+QWJzTW91c2VSZXBvcnQsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKFhFTlZLQkRfSElEX0FCU01PVVNFKSk7
DQo+IC0NCj4gLSAgICB9IGVsc2Ugew0KPiAtICAgICAgICAvLyBtYXAgS2V5Q29kZSB0byBVc2Fn
ZQ0KPiAtICAgICAgICBVU0hPUlQgIFVzYWdlID0gS2V5Q29kZVRvVXNhZ2UoS2V5Q29kZSk7DQo+
IC0gICAgICAgIGlmIChVc2FnZSA9PSAwKQ0KPiAtICAgICAgICAgICAgcmV0dXJuOyAvLyBub24t
c3RhbmRhcmQga2V5DQo+IC0NCj4gLSAgICAgICAgaWYgKFVzYWdlID49IDB4RTAgJiYgVXNhZ2Ug
PD0gMHhFNykgew0KPiAtICAgICAgICAgICAgLy8gTW9kaWZpZXINCj4gLSAgICAgICAgICAgIENv
bnRleHQtPktleWJvYXJkUmVwb3J0Lk1vZGlmaWVycyA9IFNldEJpdChDb250ZXh0LQ0KPiA+S2V5
Ym9hcmRSZXBvcnQuTW9kaWZpZXJzLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChVQ0hBUikoVXNhZ2UgLSAweEUwKSwNCj4gLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVzc2Vk
KTsNCj4gLSAgICAgICAgfSBlbHNlIHsNCj4gLSAgICAgICAgICAgIC8vIFN0YW5kYXJkIEtleQ0K
PiAtICAgICAgICAgICAgU2V0QXJyYXkoQ29udGV4dC0+S2V5Ym9hcmRSZXBvcnQuS2V5cywNCj4g
LSAgICAgICAgICAgICAgICAgICAgIDYsDQo+IC0gICAgICAgICAgICAgICAgICAgICAoVUNIQVIp
VXNhZ2UsDQo+IC0gICAgICAgICAgICAgICAgICAgICBQcmVzc2VkKTsNCj4gLSAgICAgICAgfQ0K
PiAtICAgICAgICBDb250ZXh0LT5LZXlib2FyZFBlbmRpbmcgPSBIaWRTZW5kUmVhZFJlcG9ydChD
b250ZXh0LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZDb250ZXh0LT5LZXlib2FyZFJlcG9ydCwNCj4gLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoWEVOVktCRF9ISURfS0VZQk9B
UkQpKTsNCj4gLQ0KPiAtICAgIH0NCj4gLX0NCj4gLQ0KPiAtVk9JRA0KPiAtSGlkRXZlbnRQb3Np
dGlvbigNCj4gK0JPT0xFQU4NCj4gK0hpZFNlbmRSZWFkUmVwb3J0KA0KPiAgICAgIElOICBQWEVO
VktCRF9ISURfQ09OVEVYVCAgICBDb250ZXh0LA0KPiAtICAgIElOICBVTE9ORyAgICAgICAgICAg
ICAgICAgICBYLA0KPiAtICAgIElOICBVTE9ORyAgICAgICAgICAgICAgICAgICBZLA0KPiAtICAg
IElOICBMT05HICAgICAgICAgICAgICAgICAgICBkWg0KPiArICAgIElOICBQVk9JRCAgICAgICAg
ICAgICAgICAgICBCdWZmZXIsDQo+ICsgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgICAgIExl
bmd0aA0KPiAgICAgICkNCj4gIHsNCj4gLSAgICBDb250ZXh0LT5BYnNNb3VzZVJlcG9ydC5YID0g
KFVTSE9SVClDb25zdHJhaW4oWCwgMCwgMzI3NjcpOw0KPiAtICAgIENvbnRleHQtPkFic01vdXNl
UmVwb3J0LlkgPSAoVVNIT1JUKUNvbnN0cmFpbihZLCAwLCAzMjc2Nyk7DQo+IC0gICAgQ29udGV4
dC0+QWJzTW91c2VSZXBvcnQuZFogPSAtKENIQVIpQ29uc3RyYWluKGRaLCAtMTI3LCAxMjcpOw0K
PiArICAgIGlmICghQ29udGV4dC0+RW5hYmxlZCkNCj4gKyAgICAgICAgcmV0dXJuIFRSVUU7IC8v
IGZsYWcgYXMgcGVuZGluZw0KPiANCj4gLSAgICBDb250ZXh0LT5BYnNNb3VzZVBlbmRpbmcgPSBI
aWRTZW5kUmVhZFJlcG9ydChDb250ZXh0LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICZDb250ZXh0LT5BYnNNb3VzZVJlcG9ydCwNCj4gLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoWEVOVktC
RF9ISURfQUJTTU9VU0UpKTsNCj4gKyAgICAvLyBDYWxsYmFjayByZXR1cm5zIFRSVUUgb24gc3Vj
Y2VzcywgRkFMU0Ugd2hlbiBJcnAgY291bGQgbm90IGJlDQo+IGNvbXBsZXRlZA0KPiArICAgIC8v
IEludmVydCB0aGUgcmVzdWx0IHRvIGluZGljYXRlIFBlbmRpbmcgc3RhdGUNCj4gKyAgICByZXR1
cm4gIUNvbnRleHQtPkNhbGxiYWNrKENvbnRleHQtPkFyZ3VtZW50LA0KPiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQnVmZmVyLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTGVuZ3RoKTsNCj4gIH0NCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52a2JkL2hpZC5oIGIvc3Jj
L3hlbnZrYmQvaGlkLmgNCj4gaW5kZXggZWMzOGUyOC4uMTE2Zjc0OSAxMDA2NDQNCj4gLS0tIGEv
c3JjL3hlbnZrYmQvaGlkLmgNCj4gKysrIGIvc3JjL3hlbnZrYmQvaGlkLmgNCj4gQEAgLTYyLDI3
ICs2MiwxMSBAQCBIaWRUZWFyZG93bigNCj4gDQo+ICAvLyBDQUxMQkFDS1MNCj4gDQo+IC1leHRl
cm4gVk9JRA0KPiAtSGlkRXZlbnRNb3Rpb24oDQo+IC0gICAgSU4gIFBYRU5WS0JEX0hJRF9DT05U
RVhUICAgIENvbnRleHQsDQo+IC0gICAgSU4gIExPTkcgICAgICAgICAgICAgICAgICAgIGRYLA0K
PiAtICAgIElOICBMT05HICAgICAgICAgICAgICAgICAgICBkWSwNCj4gLSAgICBJTiAgTE9ORyAg
ICAgICAgICAgICAgICAgICAgZFoNCj4gLSAgICApOw0KPiAtDQo+IC1leHRlcm4gVk9JRA0KPiAt
SGlkRXZlbnRLZXlwcmVzcygNCj4gLSAgICBJTiAgUFhFTlZLQkRfSElEX0NPTlRFWFQgICAgQ29u
dGV4dCwNCj4gLSAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICAgICAgS2V5Q29kZSwNCj4gLSAg
ICBJTiAgQk9PTEVBTiAgICAgICAgICAgICAgICAgUHJlc3NlZA0KPiAtICAgICk7DQo+IC0NCj4g
LWV4dGVybiBWT0lEDQo+IC1IaWRFdmVudFBvc2l0aW9uKA0KPiArZXh0ZXJuIEJPT0xFQU4NCj4g
K0hpZFNlbmRSZWFkUmVwb3J0KA0KPiAgICAgIElOICBQWEVOVktCRF9ISURfQ09OVEVYVCAgICBD
b250ZXh0LA0KPiAtICAgIElOICBVTE9ORyAgICAgICAgICAgICAgICAgICBYLA0KPiAtICAgIElO
ICBVTE9ORyAgICAgICAgICAgICAgICAgICBZLA0KPiAtICAgIElOICBMT05HICAgICAgICAgICAg
ICAgICAgICBkWg0KPiArICAgIElOICBQVk9JRCAgICAgICAgICAgICAgICAgICBCdWZmZXIsDQo+
ICsgICAgSU4gIFVMT05HICAgICAgICAgICAgICAgICAgIExlbmd0aA0KPiAgICAgICk7DQo+IA0K
PiAgI2VuZGlmICAvLyBfWEVOVktCRF9WS0JEX0gNCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52a2Jk
L3Bkby5oIGIvc3JjL3hlbnZrYmQvcGRvLmgNCj4gaW5kZXggYTIzODExZS4uNWU2OGE4NiAxMDA2
NDQNCj4gLS0tIGEvc3JjL3hlbnZrYmQvcGRvLmgNCj4gKysrIGIvc3JjL3hlbnZrYmQvcGRvLmgN
Cj4gQEAgLTE0NywzNiArMTQ3LDYgQEAgUGRvR2V0RnJvbnRlbmQoDQo+ICAgICAgSU4gIFBYRU5W
S0JEX1BETyAgICBQZG8NCj4gICAgICApOw0KPiANCj4gLWV4dGVybiBQWEVOQlVTX0VWVENITl9J
TlRFUkZBQ0UNCj4gLVBkb0dldEV2dGNobkludGVyZmFjZSgNCj4gLSAgICBJTiAgUFhFTlZLQkRf
UERPICAgIFBkbw0KPiAtICAgICk7DQo+IC0NCj4gLWV4dGVybiBQWEVOQlVTX0RFQlVHX0lOVEVS
RkFDRQ0KPiAtUGRvR2V0RGVidWdJbnRlcmZhY2UoDQo+IC0gICAgSU4gIFBYRU5WS0JEX1BETyAg
ICBQZG8NCj4gLSAgICApOw0KPiAtDQo+IC1leHRlcm4gUFhFTkJVU19TVE9SRV9JTlRFUkZBQ0UN
Cj4gLVBkb0dldFN0b3JlSW50ZXJmYWNlKA0KPiAtICAgIElOICBQWEVOVktCRF9QRE8gICAgUGRv
DQo+IC0gICAgKTsNCj4gLQ0KPiAtZXh0ZXJuIFBYRU5CVVNfQ0FDSEVfSU5URVJGQUNFDQo+IC1Q
ZG9HZXRDYWNoZUludGVyZmFjZSgNCj4gLSAgICBJTiAgUFhFTlZLQkRfUERPICAgIFBkbw0KPiAt
ICAgICk7DQo+IC0NCj4gLWV4dGVybiBQWEVOQlVTX0dOVFRBQl9JTlRFUkZBQ0UNCj4gLVBkb0dl
dEdudHRhYkludGVyZmFjZSgNCj4gLSAgICBJTiAgUFhFTlZLQkRfUERPICAgIFBkbw0KPiAtICAg
ICk7DQo+IC0NCj4gLWV4dGVybiBQWEVOQlVTX1NVU1BFTkRfSU5URVJGQUNFDQo+IC1QZG9HZXRT
dXNwZW5kSW50ZXJmYWNlKA0KPiAtICAgIElOICBQWEVOVktCRF9QRE8gICAgUGRvDQo+IC0gICAg
KTsNCj4gLQ0KPiAgI2luY2x1ZGUgImhpZC5oIg0KPiANCj4gIGV4dGVybiBQWEVOVktCRF9ISURf
Q09OVEVYVA0KPiBAQCAtMTg0LDExICsxNTQsNiBAQCBQZG9HZXRIaWRDb250ZXh0KA0KPiAgICAg
IElOICBQWEVOVktCRF9QRE8gICAgUGRvDQo+ICAgICAgKTsNCj4gDQo+IC1leHRlcm4gUFhFTkhJ
RF9ISURfSU5URVJGQUNFDQo+IC1QZG9HZXRIaWRJbnRlcmZhY2UoDQo+IC0gICAgSU4gIFBYRU5W
S0JEX1BETyAgICBQZG8NCj4gLSAgICApOw0KPiAtDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIFBk
b0Rpc3BhdGNoKA0KPiAgICAgIElOICBQWEVOVktCRF9QRE8gICAgUGRvLA0KPiBkaWZmIC0tZ2l0
IGEvc3JjL3hlbnZrYmQvcmluZy5jIGIvc3JjL3hlbnZrYmQvcmluZy5jDQo+IGluZGV4IGRkMTU4
MDcuLmRhMWJkMTcgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52a2JkL3JpbmcuYw0KPiArKysgYi9z
cmMveGVudmtiZC9yaW5nLmMNCj4gQEAgLTQ2LDYgKzQ2LDcgQEANCj4gICNpbmNsdWRlICJmcm9u
dGVuZC5oIg0KPiAgI2luY2x1ZGUgInJpbmcuaCINCj4gICNpbmNsdWRlICJoaWQuaCINCj4gKyNp
bmNsdWRlICJ2a2JkLmgiDQo+ICAjaW5jbHVkZSAidGhyZWFkLmgiDQo+ICAjaW5jbHVkZSAicmVn
aXN0cnkuaCINCj4gICNpbmNsdWRlICJkYmdfcHJpbnQuaCINCj4gQEAgLTc3LDYgKzc4LDExIEBA
IHN0cnVjdCBfWEVOVktCRF9SSU5HIHsNCj4gICAgICBCT09MRUFOICAgICAgICAgICAgICAgICBD
b25uZWN0ZWQ7DQo+ICAgICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgRW5hYmxlZDsNCj4gICAg
ICBCT09MRUFOICAgICAgICAgICAgICAgICBBYnNQb2ludGVyOw0KPiArDQo+ICsgICAgWEVOVktC
RF9ISURfS0VZQk9BUkQgICAgS2V5Ym9hcmRSZXBvcnQ7DQo+ICsgICAgWEVOVktCRF9ISURfQUJT
TU9VU0UgICAgQWJzTW91c2VSZXBvcnQ7DQo+ICsgICAgQk9PTEVBTiAgICAgICAgICAgICAgICAg
S2V5Ym9hcmRQZW5kaW5nOw0KPiArICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgIEFic01vdXNl
UGVuZGluZzsNCj4gIH07DQo+IA0KPiAgI2RlZmluZSBYRU5WS0JEX1JJTkdfVEFHICAgICdnbmlS
Jw0KPiBAQCAtOTcsNiArMTAzLDE3NCBAQCBfX1JpbmdGcmVlKA0KPiAgICAgIF9fRnJlZVBvb2xX
aXRoVGFnKEJ1ZmZlciwgWEVOVktCRF9SSU5HX1RBRyk7DQo+ICB9DQo+IA0KPiArc3RhdGljIEZP
UkNFSU5MSU5FIE5UU1RBVFVTDQo+ICtfX1JpbmdDb3B5QnVmZmVyKA0KPiArICAgIElOICBQVk9J
RCAgICAgICBCdWZmZXIsDQo+ICsgICAgSU4gIFVMT05HICAgICAgIExlbmd0aCwNCj4gKyAgICBJ
TiAgY29uc3QgVk9JRCAgKlNvdXJjZSwNCj4gKyAgICBJTiAgVUxPTkcgICAgICAgU291cmNlTGVu
Z3RoLA0KPiArICAgIE9VVCBQVUxPTkcgICAgICBSZXR1cm5lZA0KPiArICAgICkNCj4gK3sNCj4g
KyAgICBpZiAoQnVmZmVyID09IE5VTEwpDQo+ICsgICAgICAgIHJldHVybiBTVEFUVVNfSU5WQUxJ
RF9QQVJBTUVURVI7DQo+ICsgICAgaWYgKExlbmd0aCA8IFNvdXJjZUxlbmd0aCkNCj4gKyAgICAg
ICAgcmV0dXJuIFNUQVRVU19OT19NRU1PUlk7DQo+ICsNCj4gKyAgICBSdGxDb3B5TWVtb3J5KEJ1
ZmZlciwNCj4gKyAgICAgICAgICAgICAgICAgIFNvdXJjZSwNCj4gKyAgICAgICAgICAgICAgICAg
IFNvdXJjZUxlbmd0aCk7DQo+ICsgICAgaWYgKFJldHVybmVkKQ0KPiArICAgICAgICAqUmV0dXJu
ZWQgPSBTb3VyY2VMZW5ndGg7DQo+ICsgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOw0KPiArfQ0K
PiArDQo+ICtzdGF0aWMgRk9SQ0VJTkxJTkUgTE9ORw0KPiArQ29uc3RyYWluKA0KPiArICAgIElO
ICBMT05HICAgIFZhbHVlLA0KPiArICAgIElOICBMT05HICAgIE1pbiwNCj4gKyAgICBJTiAgTE9O
RyAgICBNYXgNCj4gKyAgICApDQo+ICt7DQo+ICsgICAgaWYgKFZhbHVlIDwgTWluKQ0KPiArICAg
ICAgICByZXR1cm4gTWluOw0KPiArICAgIGlmIChWYWx1ZSA+IE1heCkNCj4gKyAgICAgICAgcmV0
dXJuIE1heDsNCj4gKyAgICByZXR1cm4gVmFsdWU7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBGT1JD
RUlOTElORSBVQ0hBUg0KPiArU2V0Qml0KA0KPiArICAgIElOICBVQ0hBUiAgIFZhbHVlLA0KPiAr
ICAgIElOICBVQ0hBUiAgIEJpdElkeCwNCj4gKyAgICBJTiAgQk9PTEVBTiBQcmVzc2VkDQo+ICsg
ICAgKQ0KPiArew0KPiArICAgIGlmIChQcmVzc2VkKSB7DQo+ICsgICAgICAgIHJldHVybiBWYWx1
ZSB8ICgxIDw8IEJpdElkeCk7DQo+ICsgICAgfSBlbHNlIHsNCj4gKyAgICAgICAgcmV0dXJuIFZh
bHVlICYgfigxIDw8IEJpdElkeCk7DQo+ICsgICAgfQ0KPiArfQ0KPiArDQo+ICtzdGF0aWMgRk9S
Q0VJTkxJTkUgVk9JRA0KPiArU2V0QXJyYXkoDQo+ICsgICAgSU4gIFBVQ0hBUiAgQXJyYXksDQo+
ICsgICAgSU4gIFVMT05HICAgU2l6ZSwNCj4gKyAgICBJTiAgVUNIQVIgICBWYWx1ZSwNCj4gKyAg
ICBJTiAgQk9PTEVBTiBQcmVzc2VkDQo+ICsgICAgKQ0KPiArew0KPiArICAgIFVMT05HICAgICAg
IElkeDsNCj4gKyAgICBpZiAoUHJlc3NlZCkgew0KPiArICAgICAgICBmb3IgKElkeCA9IDA7IElk
eCA8IFNpemU7ICsrSWR4KSB7DQo+ICsgICAgICAgICAgICBpZiAoQXJyYXlbSWR4XSA9PSBWYWx1
ZSkNCj4gKyAgICAgICAgICAgICAgICBicmVhazsNCj4gKyAgICAgICAgICAgIGlmIChBcnJheVtJ
ZHhdICE9IDApDQo+ICsgICAgICAgICAgICAgICAgY29udGludWU7DQo+ICsgICAgICAgICAgICBB
cnJheVtJZHhdID0gVmFsdWU7DQo+ICsgICAgICAgICAgICBicmVhazsNCj4gKyAgICAgICAgfQ0K
PiArICAgIH0gZWxzZSB7DQo+ICsgICAgICAgIGZvciAoSWR4ID0gMDsgSWR4IDwgU2l6ZTsgKytJ
ZHgpIHsNCj4gKyAgICAgICAgICAgIGlmIChBcnJheVtJZHhdID09IDApDQo+ICsgICAgICAgICAg
ICAgICAgYnJlYWs7DQo+ICsgICAgICAgICAgICBpZiAoQXJyYXlbSWR4XSAhPSBWYWx1ZSkNCj4g
KyAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gKyAgICAgICAgICAgIGZvciAoOyBJZHggPCBT
aXplIC0gMTsgKytJZHgpDQo+ICsgICAgICAgICAgICAgICAgQXJyYXlbSWR4XSA9IEFycmF5W0lk
eCArIDFdOw0KPiArICAgICAgICAgICAgQXJyYXlbU2l6ZSAtIDFdID0gMDsNCj4gKyAgICAgICAg
ICAgIGJyZWFrOw0KPiArICAgICAgICB9DQo+ICsgICAgfQ0KPiArfQ0KPiArDQo+ICtzdGF0aWMg
Rk9SQ0VJTkxJTkUgVVNIT1JUDQo+ICtLZXlDb2RlVG9Vc2FnZSgNCj4gKyAgICBJTiAgVUxPTkcg
ICBLZXlDb2RlDQo+ICsgICAgKQ0KPiArew0KPiArICAgIGlmIChLZXlDb2RlIDwNCj4gc2l6ZW9m
KFZrYmRLZXlDb2RlVG9Vc2FnZSkvc2l6ZW9mKFZrYmRLZXlDb2RlVG9Vc2FnZVswXSkpDQo+ICsg
ICAgICAgIHJldHVybiBWa2JkS2V5Q29kZVRvVXNhZ2VbS2V5Q29kZV07DQo+ICsgICAgcmV0dXJu
IDA7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBGT1JDRUlOTElORSBWT0lEDQo+ICtfX1JpbmdFdmVu
dE1vdGlvbigNCj4gKyAgICBJTiAgUFhFTlZLQkRfUklORyAgIFJpbmcsDQo+ICsgICAgSU4gIExP
TkcgICAgICAgICAgICBkWCwNCj4gKyAgICBJTiAgTE9ORyAgICAgICAgICAgIGRZLA0KPiArICAg
IElOICBMT05HICAgICAgICAgICAgZFoNCj4gKyAgICApDQo+ICt7DQo+ICsgICAgUmluZy0+QWJz
TW91c2VSZXBvcnQuWCA9IChVU0hPUlQpQ29uc3RyYWluKFJpbmctDQo+ID5BYnNNb3VzZVJlcG9y
dC5YICsgZFgsIDAsIDMyNzY3KTsNCj4gKyAgICBSaW5nLT5BYnNNb3VzZVJlcG9ydC5ZID0gKFVT
SE9SVClDb25zdHJhaW4oUmluZy0NCj4gPkFic01vdXNlUmVwb3J0LlkgKyBkWSwgMCwgMzI3Njcp
Ow0KPiArICAgIFJpbmctPkFic01vdXNlUmVwb3J0LmRaID0gLShDSEFSKUNvbnN0cmFpbihkWiwg
LTEyNywgMTI3KTsNCj4gKw0KPiArICAgIFJpbmctPkFic01vdXNlUGVuZGluZyA9IEhpZFNlbmRS
ZWFkUmVwb3J0KFJpbmctPkhpZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmUmluZy0+QWJzTW91c2VSZXBvcnQsDQo+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKFhFTlZLQkRfSElEX0FCU01PVVNF
KSk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBGT1JDRUlOTElORSBWT0lEDQo+ICtfX1JpbmdFdmVu
dEtleXByZXNzKA0KPiArICAgIElOICBQWEVOVktCRF9SSU5HICAgUmluZywNCj4gKyAgICBJTiAg
VUxPTkcgICAgICAgICAgIEtleUNvZGUsDQo+ICsgICAgSU4gIEJPT0xFQU4gICAgICAgICBQcmVz
c2VkDQo+ICsgICAgKQ0KPiArew0KPiArICAgIGlmIChLZXlDb2RlID49IDB4MTEwICYmIEtleUNv
ZGUgPD0gMHgxMTQpIHsNCj4gKyAgICAgICAgLy8gTW91c2UgQnV0dG9ucw0KPiArICAgICAgICBS
aW5nLT5BYnNNb3VzZVJlcG9ydC5CdXR0b25zID0gU2V0Qml0KFJpbmctDQo+ID5BYnNNb3VzZVJl
cG9ydC5CdXR0b25zLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIChVQ0hBUikoS2V5Q29kZSAtIDB4MTEwKSwNCj4gKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVzc2VkKTsNCj4gKw0KPiArICAgICAgICBSaW5n
LT5BYnNNb3VzZVBlbmRpbmcgPSBIaWRTZW5kUmVhZFJlcG9ydChSaW5nLT5IaWQsDQo+ICsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZSaW5nLT5BYnNN
b3VzZVJlcG9ydCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2l6ZW9mKFhFTlZLQkRfSElEX0FCU01PVVNFKSk7DQo+ICsNCj4gKyAgICB9IGVs
c2Ugew0KPiArICAgICAgICAvLyBtYXAgS2V5Q29kZSB0byBVc2FnZQ0KPiArICAgICAgICBVU0hP
UlQgIFVzYWdlID0gS2V5Q29kZVRvVXNhZ2UoS2V5Q29kZSk7DQo+ICsgICAgICAgIGlmIChVc2Fn
ZSA9PSAwKQ0KPiArICAgICAgICAgICAgcmV0dXJuOyAvLyBub24tc3RhbmRhcmQga2V5DQo+ICsN
Cj4gKyAgICAgICAgaWYgKFVzYWdlID49IDB4RTAgJiYgVXNhZ2UgPD0gMHhFNykgew0KPiArICAg
ICAgICAgICAgLy8gTW9kaWZpZXINCj4gKyAgICAgICAgICAgIFJpbmctPktleWJvYXJkUmVwb3J0
Lk1vZGlmaWVycyA9IFNldEJpdChSaW5nLQ0KPiA+S2V5Ym9hcmRSZXBvcnQuTW9kaWZpZXJzLA0K
PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChV
Q0hBUikoVXNhZ2UgLSAweEUwKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBQcmVzc2VkKTsNCj4gKyAgICAgICAgfSBlbHNlIHsNCj4gKyAg
ICAgICAgICAgIC8vIFN0YW5kYXJkIEtleQ0KPiArICAgICAgICAgICAgU2V0QXJyYXkoUmluZy0+
S2V5Ym9hcmRSZXBvcnQuS2V5cywNCj4gKyAgICAgICAgICAgICAgICAgICAgIDYsDQo+ICsgICAg
ICAgICAgICAgICAgICAgICAoVUNIQVIpVXNhZ2UsDQo+ICsgICAgICAgICAgICAgICAgICAgICBQ
cmVzc2VkKTsNCj4gKyAgICAgICAgfQ0KPiArICAgICAgICBSaW5nLT5LZXlib2FyZFBlbmRpbmcg
PSBIaWRTZW5kUmVhZFJlcG9ydChSaW5nLT5IaWQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZSaW5nLT5LZXlib2FyZFJlcG9ydCwNCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKFhF
TlZLQkRfSElEX0tFWUJPQVJEKSk7DQo+ICsNCj4gKyAgICB9DQo+ICt9DQo+ICsNCj4gK3N0YXRp
YyBGT1JDRUlOTElORSBWT0lEDQo+ICtfX1JpbmdFdmVudFBvc2l0aW9uKA0KPiArICAgIElOICBQ
WEVOVktCRF9SSU5HICAgUmluZywNCj4gKyAgICBJTiAgVUxPTkcgICAgICAgICAgIFgsDQo+ICsg
ICAgSU4gIFVMT05HICAgICAgICAgICBZLA0KPiArICAgIElOICBMT05HICAgICAgICAgICAgZFoN
Cj4gKyAgICApDQo+ICt7DQo+ICsgICAgUmluZy0+QWJzTW91c2VSZXBvcnQuWCA9IChVU0hPUlQp
Q29uc3RyYWluKFgsIDAsIDMyNzY3KTsNCj4gKyAgICBSaW5nLT5BYnNNb3VzZVJlcG9ydC5ZID0g
KFVTSE9SVClDb25zdHJhaW4oWSwgMCwgMzI3NjcpOw0KPiArICAgIFJpbmctPkFic01vdXNlUmVw
b3J0LmRaID0gLShDSEFSKUNvbnN0cmFpbihkWiwgLTEyNywgMTI3KTsNCj4gKw0KPiArICAgIFJp
bmctPkFic01vdXNlUGVuZGluZyA9IEhpZFNlbmRSZWFkUmVwb3J0KFJpbmctPkhpZCwNCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUmluZy0+QWJzTW91
c2VSZXBvcnQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZW9mKFhFTlZLQkRfSElEX0FCU01PVVNFKSk7DQo+ICt9DQo+ICsNCj4gIF9fZHJ2X2Z1
bmN0aW9uQ2xhc3MoS0RFRkVSUkVEX1JPVVRJTkUpDQo+ICBfX2Rydl9tYXhJUlFMKERJU1BBVENI
X0xFVkVMKQ0KPiAgX19kcnZfbWluSVJRTChESVNQQVRDSF9MRVZFTCkNCj4gQEAgLTE0MCwyMSAr
MzE0LDIxIEBAIFJpbmdEcGMoDQo+IA0KPiAgICAgICAgICAgICAgc3dpdGNoIChpbl9ldnQtPnR5
cGUpIHsNCj4gICAgICAgICAgICAgIGNhc2UgWEVOS0JEX1RZUEVfTU9USU9OOg0KPiAtICAgICAg
ICAgICAgICAgIEhpZEV2ZW50TW90aW9uKFJpbmctPkhpZCwNCj4gLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbl9ldnQtPm1vdGlvbi5yZWxfeCwNCj4gLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbl9ldnQtPm1vdGlvbi5yZWxfeSwNCj4gLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbl9ldnQtPm1vdGlvbi5yZWxfeik7DQo+ICsgICAgICAgICAgICAgICAg
X19SaW5nRXZlbnRNb3Rpb24oUmluZywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbl9ldnQtPm1vdGlvbi5yZWxfeCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbl9ldnQtPm1vdGlvbi5yZWxfeSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbl9ldnQtPm1vdGlvbi5yZWxfeik7DQo+ICAgICAgICAgICAgICAgICAgYnJl
YWs7DQo+ICAgICAgICAgICAgICBjYXNlIFhFTktCRF9UWVBFX0tFWToNCj4gLSAgICAgICAgICAg
ICAgICBIaWRFdmVudEtleXByZXNzKFJpbmctPkhpZCwNCj4gLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluX2V2dC0+a2V5LmtleWNvZGUsDQo+IC0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbl9ldnQtPmtleS5wcmVzc2VkKTsNCj4gKyAgICAgICAgICAgICAgICBf
X1JpbmdFdmVudEtleXByZXNzKFJpbmcsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbl9ldnQtPmtleS5rZXljb2RlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW5fZXZ0LT5rZXkucHJlc3NlZCk7DQo+ICAgICAgICAgICAgICAgICAgYnJl
YWs7DQo+ICAgICAgICAgICAgICBjYXNlIFhFTktCRF9UWVBFX1BPUzoNCj4gLSAgICAgICAgICAg
ICAgICBIaWRFdmVudFBvc2l0aW9uKFJpbmctPkhpZCwNCj4gLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluX2V2dC0+cG9zLmFic194LA0KPiAtICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW5fZXZ0LT5wb3MuYWJzX3ksDQo+IC0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbl9ldnQtPnBvcy5yZWxfeik7DQo+ICsgICAgICAgICAgICAgICAgX19SaW5n
RXZlbnRQb3NpdGlvbihSaW5nLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW5fZXZ0LT5wb3MuYWJzX3gsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbl9ldnQtPnBvcy5hYnNfeSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluX2V2dC0+cG9zLnJlbF96KTsNCj4gICAgICAgICAgICAgICAgICBicmVhazsNCj4g
ICAgICAgICAgICAgIGNhc2UgWEVOS0JEX1RZUEVfTVRPVUNIOg0KPiAgICAgICAgICAgICAgICAg
IFRyYWNlKCJNVE9VQ0g6ICV1ICV1ICV1ICV1XG4iLA0KPiBAQCAtMjM3LDYgKzQxMSwyOSBAQCBS
aW5nRGVidWdDYWxsYmFjaygNCj4gICAgICAgICAgICAgICAgICAgIjB4JXAgWyVzXVxuIiwNCj4g
ICAgICAgICAgICAgICAgICAgUmluZywNCj4gICAgICAgICAgICAgICAgICAgKFJpbmctPkVuYWJs
ZWQpID8gIkVOQUJMRUQiIDogIkRJU0FCTEVEIik7DQo+ICsNCj4gKyAgICBYRU5CVVNfREVCVUco
UHJpbnRmLA0KPiArICAgICAgICAgICAgICAgICAmUmluZy0+RGVidWdJbnRlcmZhY2UsDQo+ICsg
ICAgICAgICAgICAgICAgICJLQkQ6ICUwMnggJTAyeCAlMDJ4ICUwMnggJTAyeCAlMDJ4ICUwMngg
JTAyeCVzXG4iLA0KPiArICAgICAgICAgICAgICAgICBSaW5nLT5LZXlib2FyZFJlcG9ydC5SZXBv
cnRJZCwNCj4gKyAgICAgICAgICAgICAgICAgUmluZy0+S2V5Ym9hcmRSZXBvcnQuTW9kaWZpZXJz
LA0KPiArICAgICAgICAgICAgICAgICBSaW5nLT5LZXlib2FyZFJlcG9ydC5LZXlzWzBdLA0KPiAr
ICAgICAgICAgICAgICAgICBSaW5nLT5LZXlib2FyZFJlcG9ydC5LZXlzWzFdLA0KPiArICAgICAg
ICAgICAgICAgICBSaW5nLT5LZXlib2FyZFJlcG9ydC5LZXlzWzJdLA0KPiArICAgICAgICAgICAg
ICAgICBSaW5nLT5LZXlib2FyZFJlcG9ydC5LZXlzWzNdLA0KPiArICAgICAgICAgICAgICAgICBS
aW5nLT5LZXlib2FyZFJlcG9ydC5LZXlzWzRdLA0KPiArICAgICAgICAgICAgICAgICBSaW5nLT5L
ZXlib2FyZFJlcG9ydC5LZXlzWzVdLA0KPiArICAgICAgICAgICAgICAgICBSaW5nLT5LZXlib2Fy
ZFBlbmRpbmcgPyAiIFBFTkRJTkciIDogIiIpOw0KPiArDQo+ICsgICAgWEVOQlVTX0RFQlVHKFBy
aW50ZiwNCj4gKyAgICAgICAgICAgICAgICAgJlJpbmctPkRlYnVnSW50ZXJmYWNlLA0KPiArICAg
ICAgICAgICAgICAgICAiTU9VOiAlMDJ4ICUwMnggJTA0eCAlMDR4ICUwMnglc1xuIiwNCj4gKyAg
ICAgICAgICAgICAgICAgUmluZy0+QWJzTW91c2VSZXBvcnQuUmVwb3J0SWQsDQo+ICsgICAgICAg
ICAgICAgICAgIFJpbmctPkFic01vdXNlUmVwb3J0LkJ1dHRvbnMsDQo+ICsgICAgICAgICAgICAg
ICAgIFJpbmctPkFic01vdXNlUmVwb3J0LlgsDQo+ICsgICAgICAgICAgICAgICAgIFJpbmctPkFi
c01vdXNlUmVwb3J0LlksDQo+ICsgICAgICAgICAgICAgICAgIFJpbmctPkFic01vdXNlUmVwb3J0
LmRaLA0KPiArICAgICAgICAgICAgICAgICBSaW5nLT5BYnNNb3VzZVBlbmRpbmcgPyAiIFBFTkRJ
TkciIDogIiIpOw0KPiAgfQ0KPiANCj4gIE5UU1RBVFVTDQo+IEBAIC0zNDEsNiArNTM4LDggQEAg
UmluZ0Nvbm5lY3QoDQo+ICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ICAgICAgICAg
IGdvdG8gZmFpbDU7DQo+IA0KPiArICAgIFJpbmctPktleWJvYXJkUmVwb3J0LlJlcG9ydElkID0g
MTsNCj4gKyAgICBSaW5nLT5BYnNNb3VzZVJlcG9ydC5SZXBvcnRJZCA9IDI7DQo+ICAgICAgUmlu
Z1JlYWRGZWF0dXJlcyhSaW5nKTsNCj4gDQo+ICAgICAgUmluZy0+TWRsID0gX19BbGxvY2F0ZVBh
Z2UoKTsNCj4gQEAgLTU4OSw2ICs3ODgsMTMgQEAgUmluZ0Rpc2Nvbm5lY3QoDQo+ICAgICAgX19G
cmVlUGFnZShSaW5nLT5NZGwpOw0KPiAgICAgIFJpbmctPk1kbCA9IE5VTEw7DQo+IA0KPiArICAg
IFJ0bFplcm9NZW1vcnkoJlJpbmctPktleWJvYXJkUmVwb3J0LA0KPiArICAgICAgICAgICAgICAg
ICAgc2l6ZW9mKFhFTlZLQkRfSElEX0tFWUJPQVJEKSk7DQo+ICsgICAgUnRsWmVyb01lbW9yeSgm
UmluZy0+QWJzTW91c2VSZXBvcnQsDQo+ICsgICAgICAgICAgICAgICAgICBzaXplb2YoWEVOVktC
RF9ISURfQUJTTU9VU0UpKTsNCj4gKyAgICBSaW5nLT5LZXlib2FyZFBlbmRpbmcgPSBGQUxTRTsN
Cj4gKyAgICBSaW5nLT5BYnNNb3VzZVBlbmRpbmcgPSBGQUxTRTsNCj4gKw0KPiAgICAgIFhFTkJV
U19HTlRUQUIoRGVzdHJveUNhY2hlLA0KPiAgICAgICAgICAgICAgICAgICAgJlJpbmctPkdudHRh
YkludGVyZmFjZSwNCj4gICAgICAgICAgICAgICAgICAgIFJpbmctPkdudHRhYkNhY2hlKTsNCj4g
QEAgLTY0NSwzICs4NTEsNDYgQEAgUmluZ05vdGlmeSgNCj4gICAgICBpZiAoS2VJbnNlcnRRdWV1
ZURwYygmUmluZy0+RHBjLCBOVUxMLCBOVUxMKSkNCj4gICAgICAgICAgUmluZy0+RHBjcysrOw0K
PiAgfQ0KPiArDQo+ICtOVFNUQVRVUw0KPiArUmluZ0dldElucHV0UmVwb3J0KA0KPiArICAgIElO
ICBQWEVOVktCRF9SSU5HICAgUmluZywNCj4gKyAgICBJTiAgVUxPTkcgICAgICAgICAgIFJlcG9y
dElkLA0KPiArICAgIElOICBQVk9JRCAgICAgICAgICAgQnVmZmVyLA0KPiArICAgIElOICBVTE9O
RyAgICAgICAgICAgTGVuZ3RoLA0KPiArICAgIE9VVCBQVUxPTkcgICAgICAgICAgUmV0dXJuZWQN
Cj4gKyAgICApDQo+ICt7DQo+ICsgICAgc3dpdGNoIChSZXBvcnRJZCkgew0KPiArICAgIGNhc2Ug
MToNCj4gKyAgICAgICAgcmV0dXJuIF9fUmluZ0NvcHlCdWZmZXIoQnVmZmVyLA0KPiArICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBMZW5ndGgsDQo+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZSaW5nLT5LZXlib2FyZFJlcG9ydCwNCj4gKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2l6ZW9mKFhFTlZLQkRfSElEX0tFWUJPQVJEKSwNCj4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuZWQpOw0KPiArICAgIGNhc2UgMjoNCj4gKyAg
ICAgICAgcmV0dXJuIF9fUmluZ0NvcHlCdWZmZXIoQnVmZmVyLA0KPiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBMZW5ndGgsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZSaW5nLT5BYnNNb3VzZVJlcG9ydCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2l6ZW9mKFhFTlZLQkRfSElEX0FCU01PVVNFKSwNCj4gKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUmV0dXJuZWQpOw0KPiArICAgIGRlZmF1bHQ6DQo+ICsgICAgICAgIHJl
dHVybiBTVEFUVVNfTk9UX1NVUFBPUlRFRDsNCj4gKyAgICB9DQo+ICt9DQo+ICsNCj4gK1ZPSUQN
Cj4gK1JpbmdSZWFkUmVwb3J0KA0KPiArICAgIElOICBQWEVOVktCRF9SSU5HICAgUmluZw0KPiAr
ICAgICkNCj4gK3sNCj4gKyAgICAvLyBDaGVjayBmb3IgcGVuZGluZyByZXBvcnRzLCBwdXNoIDEg
cGVuZGluZyByZXBvcnQgdG8gc3Vic2NyaWJlcg0KPiArICAgIGlmIChSaW5nLT5LZXlib2FyZFBl
bmRpbmcpDQo+ICsgICAgICAgIFJpbmctPktleWJvYXJkUGVuZGluZyA9IEhpZFNlbmRSZWFkUmVw
b3J0KFJpbmctPkhpZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJlJpbmctPktleWJvYXJkUmVwb3J0LA0KPiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoWEVOVktCRF9ISURfS0VZQk9B
UkQpKTsNCj4gKyAgICBlbHNlIGlmIChSaW5nLT5BYnNNb3VzZVBlbmRpbmcpDQo+ICsgICAgICAg
IFJpbmctPkFic01vdXNlUGVuZGluZyA9IEhpZFNlbmRSZWFkUmVwb3J0KFJpbmctPkhpZCwNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlJpbmct
PkFic01vdXNlUmVwb3J0LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplb2YoWEVOVktCRF9ISURfQUJTTU9VU0UpKTsNCj4gK30NCj4gZGlm
ZiAtLWdpdCBhL3NyYy94ZW52a2JkL3JpbmcuaCBiL3NyYy94ZW52a2JkL3JpbmcuaA0KPiBpbmRl
eCAwOWQxZjhlLi5iZmM2YzRmIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmtiZC9yaW5nLmgNCj4g
KysrIGIvc3JjL3hlbnZrYmQvcmluZy5oDQo+IEBAIC04Miw0ICs4MiwxOCBAQCBSaW5nTm90aWZ5
KA0KPiAgICAgIElOICBQWEVOVktCRF9SSU5HICAgUmluZw0KPiAgICAgICk7DQo+IA0KPiArZXh0
ZXJuIE5UU1RBVFVTDQo+ICtSaW5nR2V0SW5wdXRSZXBvcnQoDQo+ICsgICAgSU4gIFBYRU5WS0JE
X1JJTkcgICBSaW5nLA0KPiArICAgIElOICBVTE9ORyAgICAgICAgICAgUmVwb3J0SWQsDQo+ICsg
ICAgSU4gIFBWT0lEICAgICAgICAgICBCdWZmZXIsDQo+ICsgICAgSU4gIFVMT05HICAgICAgICAg
ICBMZW5ndGgsDQo+ICsgICAgT1VUIFBVTE9ORyAgICAgICAgICBSZXR1cm5lZA0KPiArICAgICk7
DQo+ICsNCj4gK2V4dGVybiBWT0lEDQo+ICtSaW5nUmVhZFJlcG9ydCgNCj4gKyAgICBJTiAgUFhF
TlZLQkRfUklORyAgIFJpbmcNCj4gKyAgICApOw0KPiArDQo+ICAjZW5kaWYgIC8vIF9YRU5WS0JE
X1JJTkdfSA0KPiAtLQ0KPiAyLjguMw0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4g
d2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA0KX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxp
bmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 12 09:01:42 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 12 Jun 2017 09:01:42 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dKLEE-0002CO-Qb; Mon, 12 Jun 2017 09:01:42 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=32922000b=Paul.Durrant@citrix.com>)
 id 1dKLED-0002CI-H2
 for win-pv-devel@lists.xenproject.org; Mon, 12 Jun 2017 09:01:41 +0000
Received: from [193.109.254.147] by server-4.bemta-6.messagelabs.com id
 3F/01-02956-4785E395; Mon, 12 Jun 2017 09:01:40 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrDIsWRWlGSWpSXmKPExsWyU9JRQrckwi7
 SYPULfos/ixMdGD0Of7jCEsAYxZqZl5RfkcCasa9rA3PB6oiKz4eWMjcwzgjvYuTkkBDwk7j5
 ZCMbiM0moCOx9Oh8JhBbRKBA4vv7ecwgNrOAmsT1/V2sILawQIDEv0cXoWoCJR41X2WGsI0kD
 sxrB6rh4GARUJXYOSMUJMwr4C4xrWM+2HghgTSJvdcnsIGUcApYSjz6ZQ0SZhSQlfjSuBpqk7
 jErScQF0gICEgs2XOeGcIWlXj5+B8rhG0gsXXpPhaQMcwCmhLrd+lDtCpKTOl+yA6xVVDi5Mw
 nLBMYhWchmToLoWMWko5ZSDoWMLKsYtQoTi0qSy3SNbTQSyrKTM8oyU3MzNE1NDDTy00tLk5M
 T81JTCrWS87P3cQIDHkGINjBeHNjwCFGSQ4mJVHeLVdsIoX4kvJTKjMSizPii0pzUosPMcpwc
 ChJ8M4Kt4sUEixKTU+tSMvMAUYfTFqCg0dJhPc2SJq3uCAxtzgzHSJ1ilGXY8Pq9V+YhFjy8v
 NSpcR5j4AUCYAUZZTmwY2AJYJLjLJSwryMQEcJ8RSkFuVmlqDKv2IU52BUEubdBDKFJzOvBG7
 TK6AjmICOuA5yP29xSSJCSqqB0Xybir7bkgxrI60vpiW78ickmznFp1ne5zWx2MG7Svj9jwf+
 nJ3myz7evXPkmYuimYJA+Bltoe5VcuuKjiqaf6jw2vLaZdLcdJ7k5v0RwgVc3x76uT/uOuV11
 pX50rbO5fvz2o9ukPE8tHGCy14p06/X3026W3Ety7jJfpHMNXvxkDlsu84VKbEUZyQaajEXFS
 cCAP0S+V7/AgAA
X-Env-Sender: prvs=32922000b=Paul.Durrant@citrix.com
X-Msg-Ref: server-6.tower-27.messagelabs.com!1497258100!107370062!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 65252 invoked from network); 12 Jun 2017 09:01:40 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 12 Jun 2017 09:01:40 -0000
X-IronPort-AV: E=Sophos;i="5.39,333,1493683200"; d="scan'208";a="47591326"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 3/4] xenvkbd: Read
 "feature-vkbd-standalone"
Thread-Index: AQHS36ZfjZ9a0IplFUWRmKPcjvAPZKIg9Zfg
Date: Mon, 12 Jun 2017 09:01:37 +0000
Message-ID: <429529179d2548d89454941ec8c5588a@AMSPEX02CL03.citrite.net>
References: <20170607155148.376-1-owen.smith@citrix.com>
 <20170607155148.376-3-owen.smith@citrix.com>
In-Reply-To: <20170607155148.376-3-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 3/4] xenvkbd: Read
 "feature-vkbd-standalone"
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAwNyBKdW5lIDIwMTcgMTY6NTINCj4g
VG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8
b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0gg
My80XSB4ZW52a2JkOiBSZWFkICJmZWF0dXJlLXZrYmQtDQo+IHN0YW5kYWxvbmUiDQo+IA0KPiBG
cm9tOiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+DQo+IA0KPiBSZWFkICJmZWF0
dXJlLXZrYmQtc3RhbmRhbG9uZSIgYW5kIGZhaWwgY29ubmVjdA0KPiBpZiBpdCBpcyBub3QgMS4g
V3JpdGVzICJyZXF1ZXN0LXZrYmQtc3RhbmRhbG9uZSIgYmVmb3JlDQo+IHRyYW5zaXRpb25pbmcg
dG8gQ29ubmVjdGVkLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0
aEBjaXRyaXguY29tPg0KDQpBY2tlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0
cml4LmNvbT4NCg0KPiAtLS0NCj4gIHNyYy94ZW52a2JkL2Zyb250ZW5kLmMgfCAxNSArKysrKysr
LS0tLS0tDQo+ICBzcmMveGVudmtiZC9oaWQuYyAgICAgIHwgMTQgKysrKystLS0tLS0tLQ0KPiAg
c3JjL3hlbnZrYmQvcmluZy5jICAgICB8IDU3DQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrLS0tLS0tLS0tDQo+ICAzIGZpbGVzIGNoYW5nZWQsIDU5IGluc2VydGlv
bnMoKyksIDI3IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52a2JkL2Zy
b250ZW5kLmMgYi9zcmMveGVudmtiZC9mcm9udGVuZC5jDQo+IGluZGV4IGVhODVjZDIuLjFkNmQz
NjAgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52a2JkL2Zyb250ZW5kLmMNCj4gKysrIGIvc3JjL3hl
bnZrYmQvZnJvbnRlbmQuYw0KPiBAQCAtNzk1LDcgKzc5NSw3IEBAIEZyb250ZW5kU2V0U3RhdGUo
DQo+ICAgICAgSU4gIFhFTlZLQkRfRlJPTlRFTkRfU1RBVEUgIFN0YXRlDQo+ICAgICAgKQ0KPiAg
ew0KPiAtICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICBGYWlsZWQ7DQo+ICsgICAgTlRT
VEFUVVMgICAgICAgICAgICAgICAgICAgIHN0YXR1czsNCj4gICAgICBLSVJRTCAgICAgICAgICAg
ICAgICAgICAgICAgSXJxbDsNCj4gDQo+ICAgICAgS2VBY3F1aXJlU3BpbkxvY2soJkZyb250ZW5k
LT5Mb2NrLCAmSXJxbCk7DQo+IEBAIC04MDUsMTAgKzgwNSw4IEBAIEZyb250ZW5kU2V0U3RhdGUo
DQo+ICAgICAgICAgICBGcm9udGVuZFN0YXRlTmFtZShGcm9udGVuZC0+U3RhdGUpLA0KPiAgICAg
ICAgICAgRnJvbnRlbmRTdGF0ZU5hbWUoU3RhdGUpKTsNCj4gDQo+IC0gICAgRmFpbGVkID0gRkFM
U0U7DQo+IC0gICAgd2hpbGUgKEZyb250ZW5kLT5TdGF0ZSAhPSBTdGF0ZSAmJiAhRmFpbGVkKSB7
DQo+IC0gICAgICAgIE5UU1RBVFVTICAgIHN0YXR1czsNCj4gLQ0KPiArICAgIHN0YXR1cyA9IFNU
QVRVU19TVUNDRVNTOw0KPiArICAgIHdoaWxlIChGcm9udGVuZC0+U3RhdGUgIT0gU3RhdGUgJiYg
TlRfU1VDQ0VTUyhzdGF0dXMpKSB7DQo+ICAgICAgICAgIHN3aXRjaCAoRnJvbnRlbmQtPlN0YXRl
KSB7DQo+ICAgICAgICAgIGNhc2UgRlJPTlRFTkRfVU5LTk9XTjoNCj4gICAgICAgICAgICAgIHN3
aXRjaCAoU3RhdGUpIHsNCj4gQEAgLTgyMCw4ICs4MTgsNiBAQCBGcm9udGVuZFNldFN0YXRlKA0K
PiAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IEZyb250ZW5kQ2xvc2UoRnJvbnRlbmQpOw0KPiAg
ICAgICAgICAgICAgICAgIGlmIChOVF9TVUNDRVNTKHN0YXR1cykpIHsNCj4gICAgICAgICAgICAg
ICAgICAgICAgRnJvbnRlbmQtPlN0YXRlID0gRlJPTlRFTkRfQ0xPU0VEOw0KPiAtICAgICAgICAg
ICAgICAgIH0gZWxzZSB7DQo+IC0gICAgICAgICAgICAgICAgICAgIEZhaWxlZCA9IFRSVUU7DQo+
ICAgICAgICAgICAgICAgICAgfQ0KPiAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiANCj4gQEAg
LTg2MCw2ICs4NTYsOSBAQCBGcm9udGVuZFNldFN0YXRlKA0KPiAgICAgICAgICAgICAgICAgICAg
ICBGcm9udGVuZC0+U3RhdGUgPSBGUk9OVEVORF9DTE9TRUQ7DQo+ICAgICAgICAgICAgICAgICAg
fQ0KPiAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgICAgICAgY2FzZSBGUk9OVEVO
RF9VTktOT1dOOg0KPiArICAgICAgICAgICAgICAgIEZyb250ZW5kLT5TdGF0ZSA9IEZST05URU5E
X1VOS05PV047DQo+ICsgICAgICAgICAgICAgICAgYnJlYWs7DQo+ICAgICAgICAgICAgICBkZWZh
dWx0Og0KPiAgICAgICAgICAgICAgICAgIEFTU0VSVChGQUxTRSk7DQo+ICAgICAgICAgICAgICAg
ICAgYnJlYWs7DQo+IEBAIC05MzUsNyArOTM0LDcgQEAgRnJvbnRlbmRTZXRTdGF0ZSgNCj4gDQo+
ICAgICAgSW5mbygiJXM6IDw9PT09PVxuIiwgX19Gcm9udGVuZEdldFBhdGgoRnJvbnRlbmQpKTsN
Cj4gDQo+IC0gICAgcmV0dXJuICghRmFpbGVkKSA/IFNUQVRVU19TVUNDRVNTIDogU1RBVFVTX1VO
U1VDQ0VTU0ZVTDsNCj4gKyAgICByZXR1cm4gc3RhdHVzOw0KPiAgfQ0KPiANCj4gIHN0YXRpYyBG
T1JDRUlOTElORSBWT0lEDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmtiZC9oaWQuYyBiL3NyYy94
ZW52a2JkL2hpZC5jDQo+IGluZGV4IDAzZmMxYTIuLjhhOTBkZDEgMTAwNjQ0DQo+IC0tLSBhL3Ny
Yy94ZW52a2JkL2hpZC5jDQo+ICsrKyBiL3NyYy94ZW52a2JkL2hpZC5jDQo+IEBAIC0xMDksMTMg
KzEwOSwxMSBAQCBIaWRFbmFibGUoDQo+ICB7DQo+ICAgICAgUFhFTlZLQkRfSElEX0NPTlRFWFQg
ICAgQ29udGV4dCA9IEludGVyZmFjZS0+Q29udGV4dDsNCj4gICAgICBLSVJRTCAgICAgICAgICAg
ICAgICAgICBJcnFsOw0KPiAtICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgIEV4Y2x1c2l2ZTsN
Cj4gICAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICBzdGF0dXM7DQo+IA0KPiAgICAgIFRyYWNl
KCI9PT09PlxuIik7DQo+IA0KPiAgICAgIEFjcXVpcmVNcnN3TG9ja0V4Y2x1c2l2ZSgmQ29udGV4
dC0+TG9jaywgJklycWwpOw0KPiAtICAgIEV4Y2x1c2l2ZSA9IFRSVUU7DQo+IA0KPiAgICAgIGlm
IChDb250ZXh0LT5FbmFibGVkKQ0KPiAgICAgICAgICBnb3RvIGRvbmU7DQo+IEBAIC0xMjgsMTEg
KzEyNiwxMiBAQCBIaWRFbmFibGUoDQo+ICAgICAgS2VNZW1vcnlCYXJyaWVyKCk7DQo+IA0KPiAg
ICAgIHN0YXR1cyA9IEZyb250ZW5kU2V0U3RhdGUoQ29udGV4dC0+RnJvbnRlbmQsIEZST05URU5E
X0VOQUJMRUQpOw0KPiAtICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQ0KPiAtICAgICAgICBn
b3RvIGZhaWwxOw0KPiArICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKSB7DQo+ICsgICAgICAg
IGlmIChzdGF0dXMgIT0gU1RBVFVTX0RFVklDRV9OT1RfUkVBRFkpDQo+ICsgICAgICAgICAgICBn
b3RvIGZhaWwxOw0KPiArICAgIH0NCj4gDQo+ICBkb25lOg0KPiAtICAgIEFTU0VSVChFeGNsdXNp
dmUpOw0KPiAgICAgIFJlbGVhc2VNcnN3TG9ja0V4Y2x1c2l2ZSgmQ29udGV4dC0+TG9jaywgSXJx
bCwgRkFMU0UpOw0KPiANCj4gICAgICBUcmFjZSgiPD09PT1cbiIpOw0KPiBAQCAtMTQ5LDEwICsx
NDgsNyBAQCBmYWlsMToNCj4gICAgICBDb250ZXh0LT5Bcmd1bWVudCA9IE5VTEw7DQo+ICAgICAg
Q29udGV4dC0+Q2FsbGJhY2sgPSBOVUxMOw0KPiANCj4gLSAgICBpZiAoRXhjbHVzaXZlKQ0KPiAt
ICAgICAgICBSZWxlYXNlTXJzd0xvY2tFeGNsdXNpdmUoJkNvbnRleHQtPkxvY2ssIElycWwsIEZB
TFNFKTsNCj4gLSAgICBlbHNlDQo+IC0gICAgICAgIFJlbGVhc2VNcnN3TG9ja1NoYXJlZCgmQ29u
dGV4dC0+TG9jayk7DQo+ICsgICAgUmVsZWFzZU1yc3dMb2NrRXhjbHVzaXZlKCZDb250ZXh0LT5M
b2NrLCBJcnFsLCBGQUxTRSk7DQo+IA0KPiAgICAgIHJldHVybiBzdGF0dXM7DQo+ICB9DQo+IGRp
ZmYgLS1naXQgYS9zcmMveGVudmtiZC9yaW5nLmMgYi9zcmMveGVudmtiZC9yaW5nLmMNCj4gaW5k
ZXggZGExYmQxNy4uOTE0NTIxYyAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZrYmQvcmluZy5jDQo+
ICsrKyBiL3NyYy94ZW52a2JkL3JpbmcuYw0KPiBAQCAtNzgsNiArNzgsNyBAQCBzdHJ1Y3QgX1hF
TlZLQkRfUklORyB7DQo+ICAgICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgQ29ubmVjdGVkOw0K
PiAgICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgIEVuYWJsZWQ7DQo+ICAgICAgQk9PTEVBTiAg
ICAgICAgICAgICAgICAgQWJzUG9pbnRlcjsNCj4gKyAgICBCT09MRUFOICAgICAgICAgICAgICAg
ICBWa2JkU3RhbmRhbG9uZTsNCj4gDQo+ICAgICAgWEVOVktCRF9ISURfS0VZQk9BUkQgICAgS2V5
Ym9hcmRSZXBvcnQ7DQo+ICAgICAgWEVOVktCRF9ISURfQUJTTU9VU0UgICAgQWJzTW91c2VSZXBv
cnQ7DQo+IEBAIC00OTcsNiArNDk4LDIyIEBAIFJpbmdSZWFkRmVhdHVyZXMoDQo+ICAgICAgfSBl
bHNlIHsNCj4gICAgICAgICAgUmluZy0+QWJzUG9pbnRlciA9IEZBTFNFOw0KPiAgICAgIH0NCj4g
Kw0KPiArICAgIHN0YXR1cyA9IFhFTkJVU19TVE9SRShSZWFkLA0KPiArICAgICAgICAgICAgICAg
ICAgICAgICAgICAmUmluZy0+U3RvcmVJbnRlcmZhY2UsDQo+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5VTEwsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kR2V0QmFj
a2VuZFBhdGgoUmluZy0+RnJvbnRlbmQpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZmVhdHVyZS12a2JkLXN0YW5kYWxvbmUiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAm
QnVmZmVyKTsNCj4gKyAgICBpZiAoTlRfU1VDQ0VTUyhzdGF0dXMpKSB7DQo+ICsgICAgICAgIFJp
bmctPlZrYmRTdGFuZGFsb25lID0gKEJPT0xFQU4pc3RydG91bChCdWZmZXIsIE5VTEwsIDIpOw0K
PiArDQo+ICsgICAgICAgIFhFTkJVU19TVE9SRShGcmVlLA0KPiArICAgICAgICAgICAgICAgICAg
ICAgJlJpbmctPlN0b3JlSW50ZXJmYWNlLA0KPiArICAgICAgICAgICAgICAgICAgICAgQnVmZmVy
KTsNCj4gKyAgICB9IGVsc2Ugew0KPiArICAgICAgICBSaW5nLT5Wa2JkU3RhbmRhbG9uZSA9IEZB
TFNFOw0KPiArICAgIH0NCj4gIH0NCj4gDQo+ICBOVFNUQVRVUw0KPiBAQCAtNTQyLDExICs1NTks
MTUgQEAgUmluZ0Nvbm5lY3QoDQo+ICAgICAgUmluZy0+QWJzTW91c2VSZXBvcnQuUmVwb3J0SWQg
PSAyOw0KPiAgICAgIFJpbmdSZWFkRmVhdHVyZXMoUmluZyk7DQo+IA0KPiArICAgIHN0YXR1cyA9
IFNUQVRVU19ERVZJQ0VfTk9UX1JFQURZOw0KPiArICAgIGlmICghUmluZy0+VmtiZFN0YW5kYWxv
bmUpDQo+ICsgICAgICAgIGdvdG8gZmFpbDY7DQo+ICsNCj4gICAgICBSaW5nLT5NZGwgPSBfX0Fs
bG9jYXRlUGFnZSgpOw0KPiANCj4gICAgICBzdGF0dXMgPSBTVEFUVVNfTk9fTUVNT1JZOw0KPiAg
ICAgIGlmIChSaW5nLT5NZGwgPT0gTlVMTCkNCj4gLSAgICAgICAgZ290byBmYWlsNjsNCj4gKyAg
ICAgICAgZ290byBmYWlsNzsNCj4gDQo+ICAgICAgQVNTRVJUKFJpbmctPk1kbC0+TWRsRmxhZ3Mg
JiBNRExfTUFQUEVEX1RPX1NZU1RFTV9WQSk7DQo+ICAgICAgUmluZy0+U2hhcmVkID0gUmluZy0+
TWRsLT5NYXBwZWRTeXN0ZW1WYTsNCj4gQEAgLTU2Niw3ICs1ODcsNyBAQCBSaW5nQ29ubmVjdCgN
Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLA0KPiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJlJpbmctPkVudHJ5KTsNCj4gICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVz
KSkNCj4gLSAgICAgICAgZ290byBmYWlsNzsNCj4gKyAgICAgICAgZ290byBmYWlsODsNCj4gDQo+
ICAgICAgUmluZy0+Q2hhbm5lbCA9IFhFTkJVU19FVlRDSE4oT3BlbiwNCj4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAmUmluZy0+RXZ0Y2huSW50ZXJmYWNlLA0KPiBAQCAtNTc4
LDcgKzU5OSw3IEBAIFJpbmdDb25uZWN0KA0KPiANCj4gICAgICBzdGF0dXMgPSBTVEFUVVNfVU5T
VUNDRVNTRlVMOw0KPiAgICAgIGlmIChSaW5nLT5DaGFubmVsID09IE5VTEwpDQo+IC0gICAgICAg
IGdvdG8gZmFpbDg7DQo+ICsgICAgICAgIGdvdG8gZmFpbDk7DQo+IA0KPiAgICAgIFhFTkJVU19F
VlRDSE4oVW5tYXNrLA0KPiAgICAgICAgICAgICAgICAgICAgJlJpbmctPkV2dGNobkludGVyZmFj
ZSwNCj4gQEAgLTU5MiwxMyArNjEzLDEzIEBAIFJpbmdDb25uZWN0KA0KPiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBSaW5nLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUmluZy0+
RGVidWdDYWxsYmFjayk7DQo+ICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+IC0gICAg
ICAgIGdvdG8gZmFpbDk7DQo+ICsgICAgICAgIGdvdG8gZmFpbDEwOw0KPiANCj4gICAgICBSaW5n
LT5Db25uZWN0ZWQgPSBUUlVFOw0KPiAgICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsNCj4gDQo+
IC1mYWlsOToNCj4gLSAgICBFcnJvcigiZmFpbDlcbiIpOw0KPiArZmFpbDEwOg0KPiArICAgIEVy
cm9yKCJmYWlsMTBcbiIpOw0KPiANCj4gICAgICBYRU5CVVNfRVZUQ0hOKENsb3NlLA0KPiAgICAg
ICAgICAgICAgICAgICAgJlJpbmctPkV2dGNobkludGVyZmFjZSwNCj4gQEAgLTYwNyw4ICs2Mjgs
OCBAQCBmYWlsOToNCj4gDQo+ICAgICAgUmluZy0+RXZlbnRzID0gMDsNCj4gDQo+IC1mYWlsODoN
Cj4gLSAgICBFcnJvcigiZmFpbDhcbiIpOw0KPiArZmFpbDk6DQo+ICsgICAgRXJyb3IoImZhaWw5
XG4iKTsNCj4gDQo+ICAgICAgKFZPSUQpIFhFTkJVU19HTlRUQUIoUmV2b2tlRm9yZWlnbkFjY2Vz
cywNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAmUmluZy0+R250dGFiSW50ZXJmYWNlLA0K
PiBAQCAtNjE3LDEzICs2MzgsMTYgQEAgZmFpbDg6DQo+ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUmluZy0+RW50cnkpOw0KPiAgICAgIFJpbmctPkVudHJ5ID0gTlVMTDsNCj4gDQo+IC1mYWls
NzoNCj4gLSAgICBFcnJvcigiZmFpbDdcbiIpOw0KPiArZmFpbDg6DQo+ICsgICAgRXJyb3IoImZh
aWw4XG4iKTsNCj4gDQo+ICAgICAgUmluZy0+U2hhcmVkID0gTlVMTDsNCj4gICAgICBfX0ZyZWVQ
YWdlKFJpbmctPk1kbCk7DQo+ICAgICAgUmluZy0+TWRsID0gTlVMTDsNCj4gDQo+ICtmYWlsNzoN
Cj4gKyAgICBFcnJvcigiZmFpbDdcbiIpOw0KPiArDQo+ICBmYWlsNjoNCj4gICAgICBFcnJvcigi
ZmFpbDZcbiIpOw0KPiANCj4gQEAgLTcxNSw5ICs3MzksMjEgQEAgUmluZ1N0b3JlV3JpdGUoDQo+
ICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ICAgICAgICAgIGdvdG8gZmFpbDQ7DQo+
IA0KPiArICAgIHN0YXR1cyA9IFhFTkJVU19TVE9SRShQcmludGYsDQo+ICsgICAgICAgICAgICAg
ICAgICAgICAgICAgICZSaW5nLT5TdG9yZUludGVyZmFjZSwNCj4gKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgVHJhbnNhY3Rpb24sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250
ZW5kR2V0UGF0aChSaW5nLT5Gcm9udGVuZCksDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICJyZXF1ZXN0LXZrYmQtc3RhbmRhbG9uZSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICIldSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFJpbmctPlZrYmRTdGFuZGFsb25l
KTsNCj4gKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4gKyAgICAgICAgZ290byBmYWls
NTsNCj4gKw0KPiAgICAgIFRyYWNlKCI8PT09PT1cbiIpOw0KPiAgICAgIHJldHVybiBTVEFUVVNf
U1VDQ0VTUzsNCj4gDQo+ICtmYWlsNToNCj4gKyAgICBFcnJvcigiZmFpbDVcbiIpOw0KPiAgZmFp
bDQ6DQo+ICAgICAgRXJyb3IoImZhaWw0XG4iKTsNCj4gIGZhaWwzOg0KPiBAQCAtODE3LDYgKzg1
Myw3IEBAIFJpbmdUZWFyZG93bigNCj4gICAgICBSaW5nLT5EcGNzID0gMDsNCj4gDQo+ICAgICAg
UmluZy0+QWJzUG9pbnRlciA9IEZBTFNFOw0KPiArICAgIFJpbmctPlZrYmRTdGFuZGFsb25lID0g
RkFMU0U7DQo+IA0KPiAgICAgIFJ0bFplcm9NZW1vcnkoJlJpbmctPkRwYywgc2l6ZW9mIChLRFBD
KSk7DQo+IA0KPiAtLQ0KPiAyLjguMw0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4g
d2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHBzOi8vbGlzdHMueGVucHJv
amVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA0KX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxp
bmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 12 09:02:11 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 12 Jun 2017 09:02:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dKLEg-0002De-So; Mon, 12 Jun 2017 09:02:10 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=32922000b=Paul.Durrant@citrix.com>)
 id 1dKLEf-0002DY-G1
 for win-pv-devel@lists.xenproject.org; Mon, 12 Jun 2017 09:02:09 +0000
Received: from [85.158.139.211] by server-17.bemta-5.messagelabs.com id
 8F/F1-19466-0985E395; Mon, 12 Jun 2017 09:02:08 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrFIsWRWlGSWpSXmKPExsWyU9JRQrc3wi7
 S4Np3Xos/ixMdGD0Of7jCEsAYxZqZl5RfkcCa0brnGltBG2/F5Pl1DYwfeLoYOTkkBPwkpjdM
 YASx2QR0JJYenc8EYosIFEh8fz+PGcRmFlCTuL6/ixXEFhbwlHh8eCsrRI2XxOJfjewQtpHEl
 rM/wWwWAVWJSWuXANkcHLwC7hJdJ+pBwkICaRKrWs6wgYQ5BSwlNi4UAwkzCshKfGlcDbVJXO
 LWE4gLJAQEJJbsOc8MYYtKvHz8jxXCNpDYunQfC8gYZgFNifW79CFaFSWmdD8EO4BXQFDi5Mw
 nLBMYhWchmToLoWMWko5ZSDoWMLKsYlQvTi0qSy3SNdRLKspMzyjJTczM0TU0MNXLTS0uTkxP
 zUlMKtZLzs/dxAgM93oGBsYdjE29zocYJTmYlER5t1yxiRTiS8pPqcxILM6ILyrNSS0+xCjDw
 aEkwfst3C5SSLAoNT21Ii0zBxh5MGkJDh4lEd7bIGne4oLE3OLMdIjUKUZdjg2r139hEmLJy8
 9LlRLnPQJSJABSlFGaBzcClgQuMcpKCfMyMjAwCPEUpBblZpagyr9iFOdgVBLmtQaZwpOZVwK
 36RXQEUxAR1wHuZ+3uCQRISXVwBh8c4ne3Z2WikJb2vgnSx6t2Z8vXcbjynOBIfaYzyJupuj2
 IPlbwcu2nmir38Hwa63tF8VyEb+9RtmqYsfzo2qiD952NNnPG/883q82TlTd9nLR5T+WUWnnL
 E4rvn7WVct1KYHxRKPx16jAaE/95vU1bheVg9Nv9/61etT08Um3YtrbufanlViKMxINtZiLih
 MBaoNxp/0CAAA=
X-Env-Sender: prvs=32922000b=Paul.Durrant@citrix.com
X-Msg-Ref: server-8.tower-206.messagelabs.com!1497258125!102793341!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 44148 invoked from network); 12 Jun 2017 09:02:05 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 12 Jun 2017 09:02:05 -0000
X-IronPort-AV: E=Sophos;i="5.39,333,1493683200"; d="scan'208";a="47591343"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 4/4] xenvkbd: Remove old 8.x revisions
Thread-Index: AQHS36Zf7tn9sysLHECnvnuHm4Far6Ig9bjw
Date: Mon, 12 Jun 2017 09:02:04 +0000
Message-ID: <e1b7c5eb27e849e8ae92206abb8f5c10@AMSPEX02CL03.citrite.net>
References: <20170607155148.376-1-owen.smith@citrix.com>
 <20170607155148.376-4-owen.smith@citrix.com>
In-Reply-To: <20170607155148.376-4-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 4/4] xenvkbd: Remove old 8.x revisions
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAwNyBKdW5lIDIwMTcgMTY6NTINCj4g
VG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8
b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0gg
NC80XSB4ZW52a2JkOiBSZW1vdmUgb2xkIDgueCByZXZpc2lvbnMNCj4gDQo+IEZyb206IE93ZW4g
U21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4g
U21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8
cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBpbmNsdWRlL3JldmlzaW9uLmgg
fCAzIC0tLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDMgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0t
Z2l0IGEvaW5jbHVkZS9yZXZpc2lvbi5oIGIvaW5jbHVkZS9yZXZpc2lvbi5oDQo+IGluZGV4IGIz
MGFlZTcuLjdlNzdhMmEgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvcmV2aXNpb24uaA0KPiArKysg
Yi9pbmNsdWRlL3JldmlzaW9uLmgNCj4gQEAgLTM3LDkgKzM3LDYgQEANCj4gDQo+ICAvLyAgICAg
ICAgICAgICAgICAgICAgUkVWSVNJT04gICBIDQo+ICAjZGVmaW5lIERFRklORV9SRVZJU0lPTl9U
QUJMRSAgICAgICAgICAgXA0KPiAtICAgIERFRklORV9SRVZJU0lPTigweDA4MDAwMDBCLCAgMSks
ICAgIFwNCj4gLSAgICBERUZJTkVfUkVWSVNJT04oMHgwODAwMDAwQywgIDEpLCAgICBcDQo+IC0g
ICAgREVGSU5FX1JFVklTSU9OKDB4MDgwMDAwMEQsICAxKSwgICAgXA0KPiAgICAgIERFRklORV9S
RVZJU0lPTigweDA5MDAwMDAwLCAgMSkNCj4gDQo+ICAjZW5kaWYgIC8vIF9SRVZJU0lPTl9IDQo+
IC0tDQo+IDIuOC4zDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9j
Z2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 12 09:37:36 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 12 Jun 2017 09:37:36 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dKLmy-0004Ka-98; Mon, 12 Jun 2017 09:37:36 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1dKLmx-0004Ix-KT
 for win-pv-devel@lists.xenproject.org; Mon, 12 Jun 2017 09:37:35 +0000
Date: Mon, 12 Jun 2017 09:37:32 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <21775849.15.1497260257923.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_14_13610371.1497260252391"
X-Jenkins-Job: XENVKBD-master
X-Jenkins-Result: FAILURE
Subject: [win-pv-devel] XENVKBD-master - Build #4 - Failure
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_14_13610371.1497260252391
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #4.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENVKBD-master/4/console to view the results.
------=_Part_14_13610371.1497260252391
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_14_13610371.1497260252391--


From win-pv-devel-bounces@lists.xenproject.org Mon Jun 12 10:19:04 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 12 Jun 2017 10:19:04 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dKMR5-0007VU-FY; Mon, 12 Jun 2017 10:19:03 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1dKMR4-0007VB-AQ
 for win-pv-devel@lists.xenproject.org; Mon, 12 Jun 2017 10:19:02 +0000
Date: Mon, 12 Jun 2017 10:18:59 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <23839564.17.1497262744643.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
In-Reply-To: <21775849.15.1497260257923.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
References: <21775849.15.1497260257923.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_16_27067871.1497262739393"
X-Jenkins-Job: XENVKBD-master
X-Jenkins-Result: SUCCESS
Subject: [win-pv-devel] XENVKBD-master - Build #5 - Fixed
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_16_27067871.1497262739393
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #5.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENVKBD-master/5/console to view the results.
------=_Part_16_27067871.1497262739393
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_16_27067871.1497262739393--


From win-pv-devel-bounces@lists.xenproject.org Fri Jun 23 12:50:15 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 23 Jun 2017 12:50:15 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dOO2Q-0001Ga-W5; Fri, 23 Jun 2017 12:50:14 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=340501eb8=owen.smith@citrix.com>)
 id 1dOO2Q-0001GB-2n
 for win-pv-devel@lists.xenproject.org; Fri, 23 Jun 2017 12:50:14 +0000
Received: from [85.158.139.211] by server-2.bemta-5.messagelabs.com id
 4F/B3-02006-58E0D495; Fri, 23 Jun 2017 12:50:13 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpikeJIrShJLcpLzFFi42JxWrohUreFzzf
 S4P0sS4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCace7VGbaC52oVH/57NTD+ke1i5OSQEPCXmLL6
 HwuIzSYgK/Fx5WdmEFtEQF1i3+etTCA2s4CaxPX9XawgtrCAs8Sjd21gcRYBVYnmL5PAbF4BK
 4mNT4+yQ8yUk5i8+BIjiM0pYC2xb8oWoPkcHEJANQtXV4CEhQSUJL4tfsEM0SoocXLmExaIVR
 ISB1+8YJ7AyDsLSWoWktQCRqZVjBrFqUVlqUW6hhZ6SUWZ6RkluYmZObqGBqZ6uanFxYnpqTm
 JScV6yfm5mxiBYcMABDsYm7Z7HmKU5GBSEuWNPeMTKcSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mC
 t4jXN1JIsCg1PbUiLTMHGMAwaQkOHiUR3u0cQGne4oLE3OLMdIjUKUZFKXHeZJA+AZBERmkeX
 Bssai4xykoJ8zICHSLEU5BalJtZgir/ilGcg1FJmDcXZApPZl4J3PRXQIuZgBbPWOMDsrgkES
 El1cBY8+pF19lbZ9uk2pccnSpxhclX1+PtD/N1R4//n7Vh8UYtbfuOh/c5N9alHyjc8+NthBX
 7IeOHOhfKOPPK1V+ePuh23yrhiKl3UYB8lqoAe6lg4hKfuperlDbNSVt0br8PV67wnYIJxVLf
 +As86pd/FV/w1GgNN9/7Nc+PcUdsiJn6RWuXCtscJZbijERDLeai4kQAgEaReZUCAAA=
X-Env-Sender: prvs=340501eb8=owen.smith@citrix.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1498222209!84176866!3
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29096 invoked from network); 23 Jun 2017 12:50:12 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Jun 2017 12:50:12 -0000
X-IronPort-AV: E=Sophos;i="5.39,378,1493683200"; d="scan'208";a="429138136"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Fri, 23 Jun 2017 13:49:10 +0100
Message-ID: <20170623124917.13956-4-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
In-Reply-To: <20170623124917.13956-1-owen.smith@citrix.com>
References: <20170623124917.13956-1-owen.smith@citrix.com>
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 03/10] Pass PXENVBD_SRBEXT,
	not PSCSI_REQUEST_BLOCK
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKU2lnbmVkLW9mZi1ieTog
T3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52YmQvYWRhcHRl
ci5jIHwgMTYgKysrKysrKysrKy0tLS0tLQogc3JjL3hlbnZiZC9hZGFwdGVyLmggfCAgNyArKysr
LS0tCiBzcmMveGVudmJkL3RhcmdldC5jICB8IDE1ICsrKysrKysrLS0tLS0tLQogc3JjL3hlbnZi
ZC90YXJnZXQuaCAgfCAgNSArKy0tLQogNCBmaWxlcyBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCsp
LCAxOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMveGVudmJkL2FkYXB0ZXIuYyBiL3Ny
Yy94ZW52YmQvYWRhcHRlci5jCmluZGV4IGVjNjcxMWEuLmJjOTMwMzcgMTAwNjQ0Ci0tLSBhL3Ny
Yy94ZW52YmQvYWRhcHRlci5jCisrKyBiL3NyYy94ZW52YmQvYWRhcHRlci5jCkBAIC0xMzk2LDEw
ICsxMzk2LDEyIEBAIEFkYXB0ZXJUZWFyZG93bigKIAogVk9JRAogQWRhcHRlckNvbXBsZXRlU3Ji
KAotICAgIElOICBQWEVOVkJEX0FEQVBURVIgICAgIEFkYXB0ZXIsCi0gICAgSU4gIFBTQ1NJX1JF
UVVFU1RfQkxPQ0sgU3JiCisgICAgSU4gIFBYRU5WQkRfQURBUFRFUiBBZGFwdGVyLAorICAgIElO
ICBQWEVOVkJEX1NSQkVYVCAgU3JiRXh0CiAgICAgKQogeworICAgIFBTQ1NJX1JFUVVFU1RfQkxP
Q0sgU3JiID0gU3JiRXh0LT5TcmI7CisKICAgICBBU1NFUlQzVShTcmItPlNyYlN0YXR1cywgIT0s
IFNSQl9TVEFUVVNfUEVORElORyk7CiAKICAgICArK0FkYXB0ZXItPkNvbXBsZXRlZDsKQEAgLTE3
MTcsNiArMTcxOSw3IEBAIEFkYXB0ZXJId0J1aWxkSW8oCiAgICAgKQogewogICAgIFBYRU5WQkRf
QURBUFRFUiAgICAgICAgIEFkYXB0ZXIgPSBEZXZFeHQ7CisgICAgUFhFTlZCRF9TUkJFWFQgICAg
ICAgICAgU3JiRXh0ID0gU3JiLT5TcmJFeHRlbnNpb247CiAKICAgICBJbml0U3JiRXh0KFNyYik7
CiAKQEAgLTE3NDYsNyArMTc0OSw3IEBAIEFkYXB0ZXJId0J1aWxkSW8oCiAgICAgICAgIGJyZWFr
OwogICAgIH0KIAotICAgIEFkYXB0ZXJDb21wbGV0ZVNyYihBZGFwdGVyLCBTcmIpOworICAgIEFk
YXB0ZXJDb21wbGV0ZVNyYihBZGFwdGVyLCBTcmJFeHQpOwogICAgIHJldHVybiBGQUxTRTsKIH0K
IApAQCAtMTc1OSw2ICsxNzYyLDcgQEAgQWRhcHRlckh3U3RhcnRJbygKICAgICApCiB7CiAgICAg
UFhFTlZCRF9BREFQVEVSICAgICAgICAgQWRhcHRlciA9IERldkV4dDsKKyAgICBQWEVOVkJEX1NS
QkVYVCAgICAgICAgICBTcmJFeHQgPSBTcmItPlNyYkV4dGVuc2lvbjsKICAgICBQWEVOVkJEX1RB
UkdFVCAgICAgICAgICBUYXJnZXQ7CiAKICAgICBUYXJnZXQgPSBBZGFwdGVyR2V0VGFyZ2V0KEFk
YXB0ZXIsIFNyYi0+VGFyZ2V0SWQpOwpAQCAtMTc2NiwxNCArMTc3MCwxNCBAQCBBZGFwdGVySHdT
dGFydElvKAogICAgICAgICBnb3RvIGZhaWwxOwogCiAgICAgKytBZGFwdGVyLT5TdGFydElvOwot
ICAgIGlmIChUYXJnZXRTdGFydElvKFRhcmdldCwgU3JiKSkKLSAgICAgICAgQWRhcHRlckNvbXBs
ZXRlU3JiKEFkYXB0ZXIsIFNyYik7CisgICAgaWYgKFRhcmdldFN0YXJ0SW8oVGFyZ2V0LCBTcmJF
eHQpKQorICAgICAgICBBZGFwdGVyQ29tcGxldGVTcmIoQWRhcHRlciwgU3JiRXh0KTsKIAogICAg
IHJldHVybiBUUlVFOwogCiBmYWlsMToKICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNf
SU5WQUxJRF9UQVJHRVRfSUQ7Ci0gICAgQWRhcHRlckNvbXBsZXRlU3JiKEFkYXB0ZXIsIFNyYik7
CisgICAgQWRhcHRlckNvbXBsZXRlU3JiKEFkYXB0ZXIsIFNyYkV4dCk7CiAgICAgcmV0dXJuIFRS
VUU7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvYWRhcHRlci5oIGIvc3JjL3hlbnZiZC9h
ZGFwdGVyLmgKaW5kZXggYjg3MDZmZC4uYTM5OGI3NSAxMDA2NDQKLS0tIGEvc3JjL3hlbnZiZC9h
ZGFwdGVyLmgKKysrIGIvc3JjL3hlbnZiZC9hZGFwdGVyLmgKQEAgLTM2LDEzICszNiwxNCBAQAog
CiB0eXBlZGVmIHN0cnVjdCBfWEVOVkJEX0FEQVBURVIgWEVOVkJEX0FEQVBURVIsICpQWEVOVkJE
X0FEQVBURVI7CiAKLSNpbmNsdWRlIDxzdG9ycG9ydC5oPgogI2luY2x1ZGUgPHN0b3JlX2ludGVy
ZmFjZS5oPgogI2luY2x1ZGUgPGV2dGNobl9pbnRlcmZhY2UuaD4KICNpbmNsdWRlIDxnbnR0YWJf
aW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8ZGVidWdfaW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8c3Vz
cGVuZF9pbnRlcmZhY2UuaD4KIAorI2luY2x1ZGUgInNyYmV4dC5oIgorCiAjZGVmaW5lIEFEQVBU
RVJfR0VUX0lOVEVSRkFDRShfbmFtZSwgX3R5cGUpICAgICBcCiBleHRlcm4gVk9JRCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiBBZGFwdGVyR2V0ICMjIF9uYW1lICMjIElu
dGVyZmFjZSggICAgICAgICAgICAgICBcCkBAIC02Niw4ICs2Nyw4IEBAIEFkYXB0ZXJJc1Rhcmdl
dEVtdWxhdGVkKAogCiBleHRlcm4gVk9JRAogQWRhcHRlckNvbXBsZXRlU3JiKAotICAgIElOICBQ
WEVOVkJEX0FEQVBURVIgICAgIEFkYXB0ZXIsCi0gICAgSU4gIFBTQ1NJX1JFUVVFU1RfQkxPQ0sg
U3JiCisgICAgSU4gIFBYRU5WQkRfQURBUFRFUiBBZGFwdGVyLAorICAgIElOICBQWEVOVkJEX1NS
QkVYVCAgU3JiRXh0CiAgICAgKTsKIAogZXh0ZXJuIFZPSUQKZGlmZiAtLWdpdCBhL3NyYy94ZW52
YmQvdGFyZ2V0LmMgYi9zcmMveGVudmJkL3RhcmdldC5jCmluZGV4IDViYWI0NDAuLjFmNDVhZmIg
MTAwNjQ0Ci0tLSBhL3NyYy94ZW52YmQvdGFyZ2V0LmMKKysrIGIvc3JjL3hlbnZiZC90YXJnZXQu
YwpAQCAtMTI5Nyw3ICsxMjk3LDcgQEAgX19UYXJnZXRQYXVzZURhdGFQYXRoKAogICAgICAgICBW
ZXJib3NlKCJUYXJnZXRbJWRdIDogRnJlc2hTcmIgMHglcCAtPiBTQ1NJX0FCT1JURURcbiIsIFRh
cmdldEdldFRhcmdldElkKFRhcmdldCksIFNyYkV4dC0+U3JiKTsKICAgICAgICAgU3JiRXh0LT5T
cmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfQUJPUlRFRDsKICAgICAgICAgU3JiRXh0LT5TcmIt
PlNjc2lTdGF0dXMgPSAweDQwOyAvLyBTQ1NJX0FCT1JURUQ7Ci0gICAgICAgIEFkYXB0ZXJDb21w
bGV0ZVNyYihUYXJnZXRHZXRBZGFwdGVyKFRhcmdldCksIFNyYkV4dC0+U3JiKTsKKyAgICAgICAg
QWRhcHRlckNvbXBsZXRlU3JiKFRhcmdldEdldEFkYXB0ZXIoVGFyZ2V0KSwgU3JiRXh0KTsKICAg
ICB9CiAKICAgICAvLyBGYWlsIFByZXBhcmVkUmVxcwpAQCAtMTMxNyw3ICsxMzE3LDcgQEAgX19U
YXJnZXRQYXVzZURhdGFQYXRoKAogCiAgICAgICAgIGlmIChJbnRlcmxvY2tlZERlY3JlbWVudCgm
U3JiRXh0LT5Db3VudCkgPT0gMCkgewogICAgICAgICAgICAgU3JiRXh0LT5TcmItPlNjc2lTdGF0
dXMgPSAweDQwOyAvLyBTQ1NJX0FCT1JURUQKLSAgICAgICAgICAgIEFkYXB0ZXJDb21wbGV0ZVNy
YihUYXJnZXRHZXRBZGFwdGVyKFRhcmdldCksIFNyYkV4dC0+U3JiKTsKKyAgICAgICAgICAgIEFk
YXB0ZXJDb21wbGV0ZVNyYihUYXJnZXRHZXRBZGFwdGVyKFRhcmdldCksIFNyYkV4dCk7CiAgICAg
ICAgIH0KICAgICB9CiB9CkBAIC0xNDI5LDcgKzE0MjksNyBAQCBUYXJnZXRDb21wbGV0ZVNodXRk
b3duKAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIFNyYkV4dCA9IENPTlRBSU5JTkdfUkVD
T1JEKEVudHJ5LCBYRU5WQkRfU1JCRVhULCBFbnRyeSk7CiAgICAgICAgIFNyYkV4dC0+U3JiLT5T
cmJTdGF0dXMgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7Ci0gICAgICAgIEFkYXB0ZXJDb21wbGV0ZVNy
YihUYXJnZXRHZXRBZGFwdGVyKFRhcmdldCksIFNyYkV4dC0+U3JiKTsKKyAgICAgICAgQWRhcHRl
ckNvbXBsZXRlU3JiKFRhcmdldEdldEFkYXB0ZXIoVGFyZ2V0KSwgU3JiRXh0KTsKICAgICB9CiB9
CiAKQEAgLTE1MjYsNyArMTUyNiw3IEBAIFRhcmdldENvbXBsZXRlUmVzcG9uc2UoCiAgICAgICAg
ICAgICBTcmItPlNjc2lTdGF0dXMgPSAweDQwOyAvLyBTQ1NJX0FCT1JURUQKICAgICAgICAgfQog
Ci0gICAgICAgIEFkYXB0ZXJDb21wbGV0ZVNyYihUYXJnZXRHZXRBZGFwdGVyKFRhcmdldCksIFNy
Yik7CisgICAgICAgIEFkYXB0ZXJDb21wbGV0ZVNyYihUYXJnZXRHZXRBZGFwdGVyKFRhcmdldCks
IFNyYkV4dCk7CiAgICAgfQogfQogCkBAIC0yMTI5LDEzICsyMTI5LDE0IEBAIF9fVmFsaWRhdGVT
cmJGb3JUYXJnZXQoCiAgICAgcmV0dXJuIFRSVUU7CiB9CiAKLV9fY2hlY2tSZXR1cm4KIEJPT0xF
QU4KIFRhcmdldFN0YXJ0SW8oCi0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBU
YXJnZXQsCi0gICAgX19pbiBQU0NTSV9SRVFVRVNUX0JMT0NLICAgICBTcmIKKyAgICBJTiAgUFhF
TlZCRF9UQVJHRVQgIFRhcmdldCwKKyAgICBJTiAgUFhFTlZCRF9TUkJFWFQgIFNyYkV4dAogICAg
ICkKIHsKKyAgICBQU0NTSV9SRVFVRVNUX0JMT0NLIFNyYiA9IFNyYkV4dC0+U3JiOworCiAgICAg
aWYgKCFfX1ZhbGlkYXRlU3JiRm9yVGFyZ2V0KFRhcmdldCwgU3JiKSkKICAgICAgICAgcmV0dXJu
IFRSVUU7CiAKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvdGFyZ2V0LmggYi9zcmMveGVudmJkL3Rh
cmdldC5oCmluZGV4IDk0NTVkNTYuLjY3YjYzMTkgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52YmQvdGFy
Z2V0LmgKKysrIGIvc3JjL3hlbnZiZC90YXJnZXQuaApAQCAtMTYyLDExICsxNjIsMTAgQEAgVGFy
Z2V0UmVzZXQoCiAgICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQKICAg
ICApOwogCi1fX2NoZWNrUmV0dXJuCiBleHRlcm4gQk9PTEVBTgogVGFyZ2V0U3RhcnRJbygKLSAg
ICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldCwKLSAgICBfX2luIFBTQ1NJ
X1JFUVVFU1RfQkxPQ0sgICAgIFNyYgorICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0LAor
ICAgIElOICBQWEVOVkJEX1NSQkVYVCAgU3JiRXh0CiAgICAgKTsKIAogZXh0ZXJuIFZPSUQKLS0g
CjIuOC4zCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
d2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8v
d2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jun 23 12:50:16 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 23 Jun 2017 12:50:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dOO2S-0001HE-11; Fri, 23 Jun 2017 12:50:16 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=340501eb8=owen.smith@citrix.com>)
 id 1dOO2Q-0001GD-Ev
 for win-pv-devel@lists.xenproject.org; Fri, 23 Jun 2017 12:50:14 +0000
Received: from [193.109.254.147] by server-10.bemta-6.messagelabs.com id
 5E/E2-03613-58E0D495; Fri, 23 Jun 2017 12:50:13 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpkkeJIrShJLcpLzFFi42JxWrohUreVzzf
 SoKdHxOLP4kQHRo/DH66wBDBGsWbmJeVXJLBmrDrwgrngWHjFvruuDYxdNl2MnBwSAv4Szbd3
 sYDYbAKyEh9XfmYGsUUE1CX2fd7KBGIzC6hJXN/fxQpiCwu4SGx6vR3MZhFQldixYRUjiM0rY
 CUxsfk3M8RMOYnJiy+BxTkFrCX2TdkCNJ+DQwioZuHqCpCwkICSxLfFL5ghWgUlTs58wgKxSk
 Li4IsXzBMYeWchSc1CklrAyLSKUb04tagstUjXTC+pKDM9oyQ3MTNH19DATC83tbg4MT01JzG
 pWC85P3cTIzBoGIBgB+O8E/6HGCU5mJREeWPP+EQK8SXlp1RmJBZnxBeV5qQWH2KU4eBQkuC9
 z+MbKSRYlJqeWpGWmQMMX5i0BAePkgjvdg6gNG9xQWJucWY6ROoUo6KUOO97kD4BkERGaR5cG
 yxmLjHKSgnzMgIdIsRTkFqUm1mCKv+KUZyDUUmYN5cXaApPZl4J3PRXQIuZgBbPWOMDsrgkES
 El1cCoYlaX+mnf7sw5ypvrXjFvCzhyeO5+7459XYzxjNc4FH9WlP5v1ObPDThvPjGyaRXLoYb
 eZyufW558GO9j/6s6vTKn/80OzW2zZ7DXdVtN4OdUqTVf1jz1Ze+HdJ81jKevTuZfILvk/TzL
 N9O1NCf7NMdUzfX6ZfA+qOK96wfWrs+N0q4dLv+UWIozEg21mIuKEwEl1nEZlAIAAA==
X-Env-Sender: prvs=340501eb8=owen.smith@citrix.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1498222211!104554461!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 40871 invoked from network); 23 Jun 2017 12:50:13 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Jun 2017 12:50:13 -0000
X-IronPort-AV: E=Sophos;i="5.39,378,1493683200"; d="scan'208";a="429138139"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Fri, 23 Jun 2017 13:49:12 +0100
Message-ID: <20170623124917.13956-6-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
In-Reply-To: <20170623124917.13956-1-owen.smith@citrix.com>
References: <20170623124917.13956-1-owen.smith@citrix.com>
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 05/10] Move scatter gather list parsing to
	adapter.c
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKU2lnbmVkLW9mZi1ieTog
T3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52YmQvYWRhcHRl
ci5jIHwgIDYyICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3hlbnZiZC9hZGFwdGVy
LmggfCAgIDkgKysrKwogc3JjL3hlbnZiZC9zcmJleHQuaCAgfCAgIDQgKysKIHNyYy94ZW52YmQv
dGFyZ2V0LmMgIHwgMTE2ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAxMDQgaW5zZXJ0aW9ucygrKSwgODcgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9hZGFwdGVyLmMgYi9zcmMveGVudmJkL2Fk
YXB0ZXIuYwppbmRleCBiYzkzMDM3Li4xNGU5YWU2IDEwMDY0NAotLS0gYS9zcmMveGVudmJkL2Fk
YXB0ZXIuYworKysgYi9zcmMveGVudmJkL2FkYXB0ZXIuYwpAQCAtMTQzNCw2ICsxNDM0LDY2IEBA
IEFkYXB0ZXJTZXREZXZpY2VRdWV1ZURlcHRoKAogICAgICAgICAgICAgICAgIFRhcmdldElkKTsK
IH0KIAorUEZOX05VTUJFUgorQWRhcHRlckdldE5leHRTR0VudHJ5KAorICAgIElOICBQWEVOVkJE
X0FEQVBURVIgQWRhcHRlciwKKyAgICBJTiAgUFhFTlZCRF9TUkJFWFQgIFNyYkV4dCwKKyAgICBJ
TiAgVUxPTkcgICAgICAgICAgIEV4aXN0aW5nLAorICAgIE9VVCBQVUxPTkcgICAgICAgICAgT2Zm
c2V0LAorICAgIE9VVCBQVUxPTkcgICAgICAgICAgTGVuZ3RoCisgICAgKQoreworICAgIFBTVE9S
X1NDQVRURVJfR0FUSEVSX0xJU1QgICAgICAgU0dMaXN0ID0gU3JiRXh0LT5TR0xpc3Q7CisgICAg
UFNUT1JfU0NBVFRFUl9HQVRIRVJfRUxFTUVOVCAgICBTR0VsZW1lbnQ7CisgICAgU1RPUl9QSFlT
SUNBTF9BRERSRVNTICAgICAgICAgICBQaHlzQWRkcjsKKworICAgIFVOUkVGRVJFTkNFRF9QQVJB
TUVURVIoQWRhcHRlcik7CisKKyAgICBBU1NFUlQzUChTR0xpc3QsICE9LCBOVUxMKTsKKyAgICBB
U1NFUlQzVShTcmJFeHQtPlNHSW5kZXgsIDwsIFNHTGlzdC0+TnVtYmVyT2ZFbGVtZW50cyk7CisK
KyAgICBTR0VsZW1lbnQgPSAmU0dMaXN0LT5MaXN0W1NyYkV4dC0+U0dJbmRleF07CisKKyAgICBQ
aHlzQWRkci5RdWFkUGFydCA9IFNHRWxlbWVudC0+UGh5c2ljYWxBZGRyZXNzLlF1YWRQYXJ0ICsg
U3JiRXh0LT5TR09mZnNldDsKKyAgICAqT2Zmc2V0ICAgICAgICAgICA9IChVTE9ORykoUGh5c0Fk
ZHIuUXVhZFBhcnQgJiAoUEFHRV9TSVpFIC0gMSkpOworICAgICpMZW5ndGggICAgICAgICAgID0g
X19taW4oUEFHRV9TSVpFIC0gKk9mZnNldCAtIEV4aXN0aW5nLCBTR0VsZW1lbnQtPkxlbmd0aCAt
IFNyYkV4dC0+U0dPZmZzZXQpOworCisgICAgQVNTRVJUM1UoKkxlbmd0aCwgPD0sIFBBR0VfU0la
RSk7CisgICAgQVNTRVJUM1UoU3JiRXh0LT5TR09mZnNldCwgPCwgU0dFbGVtZW50LT5MZW5ndGgp
OworCisgICAgU3JiRXh0LT5TR09mZnNldCArPSAqTGVuZ3RoOworICAgIGlmIChTcmJFeHQtPlNH
T2Zmc2V0ID49IFNHRWxlbWVudC0+TGVuZ3RoKSB7CisgICAgICAgIFNyYkV4dC0+U0dJbmRleCsr
OworICAgICAgICBTcmJFeHQtPlNHT2Zmc2V0ID0gMDsKKyAgICB9CisKKyAgICByZXR1cm4gKFBG
Tl9OVU1CRVIpKFBoeXNBZGRyLlF1YWRQYXJ0ID4+IFBBR0VfU0hJRlQpOworfQorCitzdGF0aWMg
Rk9SQ0VJTkxJTkUgVk9JRAorQWRhcHRlclB1bGx1cFNyYigKKyAgICBJTiAgUFhFTlZCRF9BREFQ
VEVSICAgICBBZGFwdGVyLAorICAgIElOICBQU0NTSV9SRVFVRVNUX0JMT0NLIFNyYgorICAgICkK
K3sKKyAgICBQWEVOVkJEX1NSQkVYVCAgICAgICAgICBTcmJFeHQgPSBTcmItPlNyYkV4dGVuc2lv
bjsKKyAgICBVQ0hBUiAgICAgICAgICAgICAgICAgICBPcGVyYXRpb247CisKKyAgICBPcGVyYXRp
b24gPSBDZGJfT3BlcmF0aW9uRXgoU3JiKTsKKyAgICBzd2l0Y2ggKE9wZXJhdGlvbikgeworICAg
IGNhc2UgU0NTSU9QX1JFQUQ6CisgICAgY2FzZSBTQ1NJT1BfV1JJVEU6CisgICAgICAgIFNyYkV4
dC0+U0dMaXN0ID0gU3RvclBvcnRHZXRTY2F0dGVyR2F0aGVyTGlzdChBZGFwdGVyLCBTcmIpOwor
ICAgICAgICBBU1NFUlQzUChTcmJFeHQtPlNHTGlzdCwgIT0sIE5VTEwpOworICAgICAgICBBU1NF
UlQzVSgoKFBTVE9SX1NDQVRURVJfR0FUSEVSX0xJU1QpU3JiRXh0LT5TR0xpc3QpLT5OdW1iZXJP
ZkVsZW1lbnRzLCAhPSwgMCk7CisgICAgICAgIEFTU0VSVDNVKCgoUFNUT1JfU0NBVFRFUl9HQVRI
RVJfTElTVClTcmJFeHQtPlNHTGlzdCktPk51bWJlck9mRWxlbWVudHMsIDw9LCBYRU5WQkRfTUFY
X1BBR0VTX1BFUl9TUkIpOworICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAg
IGJyZWFrOworICAgIH0KK30KKwogc3RhdGljIFZPSUQKIEFkYXB0ZXJVbnBsdWdSZXF1ZXN0KAog
ICAgIElOICBQWEVOVkJEX0FEQVBURVIgQWRhcHRlciwKQEAgLTE3MjUsNiArMTc4NSw4IEBAIEFk
YXB0ZXJId0J1aWxkSW8oCiAKICAgICBzd2l0Y2ggKFNyYi0+RnVuY3Rpb24pIHsKICAgICBjYXNl
IFNSQl9GVU5DVElPTl9FWEVDVVRFX1NDU0k6CisgICAgICAgIEFkYXB0ZXJQdWxsdXBTcmIoQWRh
cHRlciwgU3JiKTsKKyAgICAgICAgLy8gSW50ZW50aW9uYWwgZmFsbCB0aHJvdWdoCiAgICAgY2Fz
ZSBTUkJfRlVOQ1RJT05fUkVTRVRfREVWSUNFOgogICAgIGNhc2UgU1JCX0ZVTkNUSU9OX0ZMVVNI
OgogICAgIGNhc2UgU1JCX0ZVTkNUSU9OX1NIVVRET1dOOgpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZi
ZC9hZGFwdGVyLmggYi9zcmMveGVudmJkL2FkYXB0ZXIuaAppbmRleCBhMzk4Yjc1Li5jZTBjNzk0
IDEwMDY0NAotLS0gYS9zcmMveGVudmJkL2FkYXB0ZXIuaAorKysgYi9zcmMveGVudmJkL2FkYXB0
ZXIuaApAQCAtODIsNiArODIsMTUgQEAgQWRhcHRlclNldERldmljZVF1ZXVlRGVwdGgoCiAgICAg
SU4gIFVMT05HICAgICAgICAgICBUYXJnZXRJZAogICAgICk7CiAKK2V4dGVybiBQRk5fTlVNQkVS
CitBZGFwdGVyR2V0TmV4dFNHRW50cnkoCisgICAgSU4gIFBYRU5WQkRfQURBUFRFUiBBZGFwdGVy
LAorICAgIElOICBQWEVOVkJEX1NSQkVYVCAgU3JiRXh0LAorICAgIElOICBVTE9ORyAgICAgICAg
ICAgRXhpc3RpbmcsCisgICAgT1VUIFBVTE9ORyAgICAgICAgICBPZmZzZXQsCisgICAgT1VUIFBV
TE9ORyAgICAgICAgICBMZW5ndGgKKyAgICApOworCiBleHRlcm4gTlRTVEFUVVMKIEFkYXB0ZXJE
aXNwYXRjaFBucCgKICAgICBJTiAgUFhFTlZCRF9BREFQVEVSIEFkYXB0ZXIsCmRpZmYgLS1naXQg
YS9zcmMveGVudmJkL3NyYmV4dC5oIGIvc3JjL3hlbnZiZC9zcmJleHQuaAppbmRleCA2YjQxNDc1
Li5jNWVjZGI2IDEwMDY0NAotLS0gYS9zcmMveGVudmJkL3NyYmV4dC5oCisrKyBiL3NyYy94ZW52
YmQvc3JiZXh0LmgKQEAgLTkwLDYgKzkwLDEwIEBAIHR5cGVkZWYgc3RydWN0IF9YRU5WQkRfU1JC
RVhUIHsKICAgICBQU0NTSV9SRVFVRVNUX0JMT0NLICAgICBTcmI7CiAgICAgTElTVF9FTlRSWSAg
ICAgICAgICAgICAgRW50cnk7CiAgICAgTE9ORyAgICAgICAgICAgICAgICAgICAgQ291bnQ7CisK
KyAgICBQVk9JRCAgICAgICAgICAgICAgICAgICBTR0xpc3Q7CisgICAgVUxPTkcgICAgICAgICAg
ICAgICAgICAgU0dJbmRleDsKKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBTR09mZnNldDsK
IH0gWEVOVkJEX1NSQkVYVCwgKlBYRU5WQkRfU1JCRVhUOwogCiBGT1JDRUlOTElORSBQWEVOVkJE
X1NSQkVYVApkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC90YXJnZXQuYyBiL3NyYy94ZW52YmQvdGFy
Z2V0LmMKaW5kZXggMGZlODg4OS4uYzljYjgwMyAxMDA2NDQKLS0tIGEvc3JjL3hlbnZiZC90YXJn
ZXQuYworKysgYi9zcmMveGVudmJkL3RhcmdldC5jCkBAIC00OSwxOCArNDksNiBAQAogI2luY2x1
ZGUgPHN1c3BlbmRfaW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAKLXR5cGVkZWYg
c3RydWN0IF9YRU5WQkRfU0dfTElTVCB7Ci0gICAgLy8gU0dMaXN0IGZyb20gU1JCCi0gICAgUFNU
T1JfU0NBVFRFUl9HQVRIRVJfTElTVCAgIFNHTGlzdDsKLSAgICAvLyAiY3VycmVudCIgdmFsdWVz
Ci0gICAgU1RPUl9QSFlTSUNBTF9BRERSRVNTICAgICAgIFBoeXNBZGRyOwotICAgIFVMT05HICAg
ICAgICAgICAgICAgICAgICAgICBQaHlzTGVuOwotICAgIC8vIGl0ZXJhdGlvbgotICAgIFVMT05H
ICAgICAgICAgICAgICAgICAgICAgICBJbmRleDsKLSAgICBVTE9ORyAgICAgICAgICAgICAgICAg
ICAgICAgT2Zmc2V0OwotICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICBMZW5ndGg7Ci19
IFhFTlZCRF9TR19MSVNULCAqUFhFTlZCRF9TR19MSVNUOwotCiAjZGVmaW5lIFRBUkdFVF9TSUdO
QVRVUkUgICAgICAgICAgICdvZHBYJwogCiB0eXBlZGVmIHN0cnVjdCBfWEVOVkJEX0xPT0tBU0lE
RSB7CkBAIC03MzIsMjIgKzcyMCw2IEBAIF9fT3BlcmF0aW9uKAogICAgIH0KIH0KIAotc3RhdGlj
IEZPUkNFSU5MSU5FIFVMT05HCi1fX09mZnNldCgKLSAgICBfX2luIFNUT1JfUEhZU0lDQUxfQURE
UkVTUyAgIFBoeXNBZGRyCi0gICAgKQotewotICAgIHJldHVybiAoVUxPTkcpKFBoeXNBZGRyLlF1
YWRQYXJ0ICYgKFBBR0VfU0laRSAtIDEpKTsKLX0KLQotc3RhdGljIEZPUkNFSU5MSU5FIFBGTl9O
VU1CRVIKLV9fUGh5czJQZm4oCi0gICAgX19pbiBTVE9SX1BIWVNJQ0FMX0FERFJFU1MgICBQaHlz
QWRkcgotICAgICkKLXsKLSAgICByZXR1cm4gKFBGTl9OVU1CRVIpKFBoeXNBZGRyLlF1YWRQYXJ0
ID4+IFBBR0VfU0hJRlQpOwotfQotCiBzdGF0aWMgRk9SQ0VJTkxJTkUgTU1fUEFHRV9QUklPUklU
WQogX19UYXJnZXRQcmlvcml0eSgKICAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAg
IFRhcmdldApAQCAtNzYzLDQyICs3MzUsNiBAQCBfX1RhcmdldFByaW9yaXR5KAogfQogCiBzdGF0
aWMgRk9SQ0VJTkxJTkUgVk9JRAotU0dMaXN0R2V0KAotICAgIElOIE9VVCAgUFhFTlZCRF9TR19M
SVNUICAgICAgICAgU0dMaXN0Ci0gICAgKQotewotICAgIFBTVE9SX1NDQVRURVJfR0FUSEVSX0VM
RU1FTlQgICAgU0dFbGVtZW50OwotCi0gICAgQVNTRVJUM1UoU0dMaXN0LT5JbmRleCwgPCwgU0dM
aXN0LT5TR0xpc3QtPk51bWJlck9mRWxlbWVudHMpOwotCi0gICAgU0dFbGVtZW50ID0gJlNHTGlz
dC0+U0dMaXN0LT5MaXN0W1NHTGlzdC0+SW5kZXhdOwotCi0gICAgU0dMaXN0LT5QaHlzQWRkci5R
dWFkUGFydCA9IFNHRWxlbWVudC0+UGh5c2ljYWxBZGRyZXNzLlF1YWRQYXJ0ICsgU0dMaXN0LT5P
ZmZzZXQ7Ci0gICAgU0dMaXN0LT5QaHlzTGVuICAgICAgICAgICA9IF9fbWluKFBBR0VfU0laRSAt
IF9fT2Zmc2V0KFNHTGlzdC0+UGh5c0FkZHIpIC0gU0dMaXN0LT5MZW5ndGgsIFNHRWxlbWVudC0+
TGVuZ3RoIC0gU0dMaXN0LT5PZmZzZXQpOwotCi0gICAgQVNTRVJUM1UoU0dMaXN0LT5QaHlzTGVu
LCA8PSwgUEFHRV9TSVpFKTsKLSAgICBBU1NFUlQzVShTR0xpc3QtPk9mZnNldCwgPCwgU0dFbGVt
ZW50LT5MZW5ndGgpOwotCi0gICAgU0dMaXN0LT5MZW5ndGggPSBTR0xpc3QtPlBoeXNMZW47IC8v
IGdldHMgcmVzZXQgZXZlcnkgdGltZSBmb3IgR3JhbnRlZCwgZXZlcnkgMW9yMiB0aW1lcyBmb3Ig
Qm91bmNlZAotICAgIFNHTGlzdC0+T2Zmc2V0ID0gU0dMaXN0LT5PZmZzZXQgKyBTR0xpc3QtPlBo
eXNMZW47Ci0gICAgaWYgKFNHTGlzdC0+T2Zmc2V0ID49IFNHRWxlbWVudC0+TGVuZ3RoKSB7Ci0g
ICAgICAgIFNHTGlzdC0+SW5kZXggID0gU0dMaXN0LT5JbmRleCArIDE7Ci0gICAgICAgIFNHTGlz
dC0+T2Zmc2V0ID0gMDsKLSAgICB9Ci19Ci0KLXN0YXRpYyBGT1JDRUlOTElORSBCT09MRUFOCi1T
R0xpc3ROZXh0KAotICAgIElOIE9VVCAgUFhFTlZCRF9TR19MSVNUICAgICAgICAgU0dMaXN0LAot
ICAgIElOICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgQWxpZ25tZW50TWFzawotICAgICkK
LXsKLSAgICBTR0xpc3QtPkxlbmd0aCA9IDA7Ci0gICAgU0dMaXN0R2V0KFNHTGlzdCk7ICAvLyBn
ZXQgbmV4dCBQaHlzQWRkciBhbmQgUGh5c0xlbgotICAgIHJldHVybiAhKChTR0xpc3QtPlBoeXNB
ZGRyLlF1YWRQYXJ0ICYgQWxpZ25tZW50TWFzaykgfHwgKFNHTGlzdC0+UGh5c0xlbiAmIEFsaWdu
bWVudE1hc2spKTsKLX0KLQotc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQKIFJlcXVlc3RDb3B5T3V0
cHV0KAogICAgIF9faW4gUFhFTlZCRF9SRVFVRVNUICAgICAgICAgUmVxdWVzdAogICAgICkKQEAg
LTgyMCwzMyArNzU2LDM5IEBAIFJlcXVlc3RDb3B5T3V0cHV0KAogCiBzdGF0aWMgQk9PTEVBTgog
UHJlcGFyZVNlZ21lbnQoCi0gICAgSU4gIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdl
dCwKKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgICAgICAgICAgVGFyZ2V0LAogICAgIElOICBQWEVO
VkJEX1NFR01FTlQgICAgICAgICBTZWdtZW50LAotICAgIElOICBQWEVOVkJEX1NHX0xJU1QgICAg
ICAgICBTR0xpc3QsCisgICAgSU4gIFBYRU5WQkRfU1JCRVhUICAgICAgICAgIFNyYkV4dCwKICAg
ICBJTiAgQk9PTEVBTiAgICAgICAgICAgICAgICAgUmVhZE9ubHksCiAgICAgSU4gIFVMT05HICAg
ICAgICAgICAgICAgICAgIFNlY3RvcnNMZWZ0LAogICAgIE9VVCBQVUxPTkcgICAgICAgICAgICAg
ICAgICBTZWN0b3JzTm93CiAgICAgKQogewogICAgIFBGTl9OVU1CRVIgICAgICBQZm47CisgICAg
VUxPTkcgICAgICAgICAgIE9mZnNldDsKKyAgICBVTE9ORyAgICAgICAgICAgTGVuZ3RoOwogICAg
IE5UU1RBVFVTICAgICAgICBTdGF0dXM7CiAgICAgUFhFTlZCRF9HUkFOVEVSIEdyYW50ZXIgPSBG
cm9udGVuZEdldEdyYW50ZXIoVGFyZ2V0LT5Gcm9udGVuZCk7CiAgICAgY29uc3QgVUxPTkcgICAg
IFNlY3RvclNpemUgPSBUYXJnZXRTZWN0b3JTaXplKFRhcmdldCk7CiAgICAgY29uc3QgVUxPTkcg
ICAgIFNlY3RvcnNQZXJQYWdlID0gX19TZWN0b3JzUGVyUGFnZShTZWN0b3JTaXplKTsKIAotICAg
IGlmIChTR0xpc3ROZXh0KFNHTGlzdCwgU2VjdG9yU2l6ZSAtIDEpKSB7CisgICAgUGZuID0gQWRh
cHRlckdldE5leHRTR0VudHJ5KFRhcmdldEdldEFkYXB0ZXIoVGFyZ2V0KSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgU3JiRXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmT2Zmc2V0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmTGVuZ3RoKTsKKyAgICBpZiAoKE9mZnNldCAmIChT
ZWN0b3JTaXplIC0gMSkpID09IDAgJiYKKyAgICAgICAgKExlbmd0aCAmIChTZWN0b3JTaXplIC0g
MSkpID09IDApIHsKICAgICAgICAgKytUYXJnZXQtPlNlZ3NHcmFudGVkOwogICAgICAgICAvLyBn
ZXQgZmlyc3Qgc2VjdG9yLCBsYXN0IHNlY3RvciBhbmQgY291bnQKLSAgICAgICAgU2VnbWVudC0+
Rmlyc3RTZWN0b3IgICAgPSAoVUNIQVIpKChfX09mZnNldChTR0xpc3QtPlBoeXNBZGRyKSArIFNl
Y3RvclNpemUgLSAxKSAvIFNlY3RvclNpemUpOworICAgICAgICBTZWdtZW50LT5GaXJzdFNlY3Rv
ciAgICA9IChVQ0hBUikoKE9mZnNldCArIFNlY3RvclNpemUgLSAxKSAvIFNlY3RvclNpemUpOwog
ICAgICAgICAqU2VjdG9yc05vdyAgICAgICAgICAgICA9IF9fbWluKFNlY3RvcnNMZWZ0LCBTZWN0
b3JzUGVyUGFnZSAtIFNlZ21lbnQtPkZpcnN0U2VjdG9yKTsKICAgICAgICAgU2VnbWVudC0+TGFz
dFNlY3RvciAgICAgPSAoVUNIQVIpKFNlZ21lbnQtPkZpcnN0U2VjdG9yICsgKlNlY3RvcnNOb3cg
LSAxKTsKICAgICAgICAgU2VnbWVudC0+QnVmZmVySWQgICAgICAgPSBOVUxMOyAvLyBncmFudGVk
LCBlbnN1cmUgaXRzIG51bGwKICAgICAgICAgU2VnbWVudC0+QnVmZmVyICAgICAgICAgPSBOVUxM
OyAvLyBncmFudGVkLCBlbnN1cmUgaXRzIG51bGwKICAgICAgICAgU2VnbWVudC0+TGVuZ3RoICAg
ICAgICAgPSAwOyAgICAvLyBncmFudGVkLCBlbnN1cmUgaXRzIDAKLSAgICAgICAgUGZuICAgICAg
ICAgICAgICAgICAgICAgPSBfX1BoeXMyUGZuKFNHTGlzdC0+UGh5c0FkZHIpOwogCi0gICAgICAg
IEFTU0VSVDNVKChTR0xpc3QtPlBoeXNMZW4gLyBTZWN0b3JTaXplKSwgPT0sICpTZWN0b3JzTm93
KTsKLSAgICAgICAgQVNTRVJUM1UoKFNHTGlzdC0+UGh5c0xlbiAmIChTZWN0b3JTaXplIC0gMSkp
LCA9PSwgMCk7CisgICAgICAgIEFTU0VSVDNVKChMZW5ndGggLyBTZWN0b3JTaXplKSwgPT0sICpT
ZWN0b3JzTm93KTsKICAgICB9IGVsc2UgewogICAgICAgICBQTURMICAgICAgICBNZGw7CiAKQEAg
LTg2NiwxNSArODA4LDE5IEBAIFByZXBhcmVTZWdtZW50KAogICAgICAgICBNZGwtPlByb2Nlc3Mg
ICAgICAgID0gTlVMTDsKICAgICAgICAgTWRsLT5NYXBwZWRTeXN0ZW1WYSA9IE5VTEw7CiAgICAg
ICAgIE1kbC0+U3RhcnRWYSAgICAgICAgPSBOVUxMOwotICAgICAgICBNZGwtPkJ5dGVDb3VudCAg
ICAgID0gU0dMaXN0LT5QaHlzTGVuOwotICAgICAgICBNZGwtPkJ5dGVPZmZzZXQgICAgID0gX19P
ZmZzZXQoU0dMaXN0LT5QaHlzQWRkcik7Ci0gICAgICAgIFNlZ21lbnQtPlBmblswXSAgICAgPSBf
X1BoeXMyUGZuKFNHTGlzdC0+UGh5c0FkZHIpOwotCi0gICAgICAgIGlmIChTR0xpc3QtPlBoeXNM
ZW4gPCAqU2VjdG9yc05vdyAqIFNlY3RvclNpemUpIHsKLSAgICAgICAgICAgIFNHTGlzdEdldChT
R0xpc3QpOworICAgICAgICBNZGwtPkJ5dGVDb3VudCAgICAgID0gTGVuZ3RoOworICAgICAgICBN
ZGwtPkJ5dGVPZmZzZXQgICAgID0gT2Zmc2V0OworICAgICAgICBTZWdtZW50LT5QZm5bMF0gICAg
ID0gUGZuOworCisgICAgICAgIGlmIChMZW5ndGggPCAqU2VjdG9yc05vdyAqIFNlY3RvclNpemUp
IHsKKyAgICAgICAgICAgIFBmbiA9IEFkYXB0ZXJHZXROZXh0U0dFbnRyeShUYXJnZXRHZXRBZGFw
dGVyKFRhcmdldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Ji
RXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmT2Zmc2V0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZMZW5ndGgpOwogICAgICAgICAgICAgTWRs
LT5TaXplICAgICAgICs9IHNpemVvZihQRk5fTlVNQkVSKTsKLSAgICAgICAgICAgIE1kbC0+Qnl0
ZUNvdW50ICA9IE1kbC0+Qnl0ZUNvdW50ICsgU0dMaXN0LT5QaHlzTGVuOwotICAgICAgICAgICAg
U2VnbWVudC0+UGZuWzFdID0gX19QaHlzMlBmbihTR0xpc3QtPlBoeXNBZGRyKTsKKyAgICAgICAg
ICAgIE1kbC0+Qnl0ZUNvdW50ICA9IE1kbC0+Qnl0ZUNvdW50ICsgTGVuZ3RoOworICAgICAgICAg
ICAgU2VnbWVudC0+UGZuWzFdID0gUGZuOwogICAgICAgICB9CiAjcHJhZ21hIHdhcm5pbmcocG9w
KQogCkBAIC05MjIsOSArODY4LDkgQEAgZmFpbDE6CiAKIHN0YXRpYyBCT09MRUFOCiBQcmVwYXJl
QmxraWZSZWFkV3JpdGUoCi0gICAgSU4gIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdl
dCwKKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgICAgICAgICAgVGFyZ2V0LAogICAgIElOICBQWEVO
VkJEX1JFUVVFU1QgICAgICAgICBSZXF1ZXN0LAotICAgIElOICBQWEVOVkJEX1NHX0xJU1QgICAg
ICAgICBTR0xpc3QsCisgICAgSU4gIFBYRU5WQkRfU1JCRVhUICAgICAgICAgIFNyYkV4dCwKICAg
ICBJTiAgVUxPTkcgICAgICAgICAgICAgICAgICAgTWF4U2VnbWVudHMsCiAgICAgSU4gIFVMT05H
NjQgICAgICAgICAgICAgICAgIFNlY3RvclN0YXJ0LAogICAgIElOICBVTE9ORyAgICAgICAgICAg
ICAgICAgICBTZWN0b3JzTGVmdCwKQEAgLTk1Niw3ICs5MDIsNyBAQCBQcmVwYXJlQmxraWZSZWFk
V3JpdGUoCiAKICAgICAgICAgaWYgKCFQcmVwYXJlU2VnbWVudChUYXJnZXQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU2VnbWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
R0xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3JiRXh0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFJlYWRPbmx5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNl
Y3RvcnNMZWZ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICZTZWN0b3JzTm93KSkKQEAg
LTEwNzUsNyArMTAyMSw2IEBAIFByZXBhcmVSZWFkV3JpdGUoCiAgICAgVUxPTkc2NCAgICAgICAg
IFNlY3RvclN0YXJ0ID0gQ2RiX0xvZ2ljYWxCbG9jayhTcmIpOwogICAgIFVMT05HICAgICAgICAg
ICBTZWN0b3JzTGVmdCA9IENkYl9UcmFuc2ZlckJsb2NrKFNyYik7CiAgICAgTElTVF9FTlRSWSAg
ICAgIExpc3Q7Ci0gICAgWEVOVkJEX1NHX0xJU1QgIFNHTGlzdDsKICAgICBVTE9ORyAgICAgICAg
ICAgRGVidWdDb3VudDsKIAogICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19QRU5ESU5H
OwpAQCAtMTA4Myw5ICsxMDI4LDYgQEAgUHJlcGFyZVJlYWRXcml0ZSgKICAgICBJbml0aWFsaXpl
TGlzdEhlYWQoJkxpc3QpOwogICAgIFNyYkV4dC0+Q291bnQgPSAwOwogCi0gICAgUnRsWmVyb01l
bW9yeSgmU0dMaXN0LCBzaXplb2YoU0dMaXN0KSk7Ci0gICAgU0dMaXN0LlNHTGlzdCA9IFN0b3JQ
b3J0R2V0U2NhdHRlckdhdGhlckxpc3QoVGFyZ2V0R2V0QWRhcHRlcihUYXJnZXQpLCBTcmIpOwot
CiAgICAgd2hpbGUgKFNlY3RvcnNMZWZ0ID4gMCkgewogICAgICAgICBVTE9ORyAgICAgICAgICAg
TWF4U2VnbWVudHM7CiAgICAgICAgIFVMT05HICAgICAgICAgICBTZWN0b3JzRG9uZSA9IDA7CkBA
IC0xMTAyLDcgKzEwNDQsNyBAQCBQcmVwYXJlUmVhZFdyaXRlKAogCiAgICAgICAgIGlmICghUHJl
cGFyZUJsa2lmUmVhZFdyaXRlKFRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlNHTGlz
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3JiRXh0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhTZWdtZW50cywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU2VjdG9yU3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNlY3RvcnNMZWZ0LAotLSAKMi44LjMKCgpfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1w
di1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn
L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Fri Jun 23 12:50:16 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 23 Jun 2017 12:50:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dOO2S-0001HV-2M; Fri, 23 Jun 2017 12:50:16 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=340501eb8=owen.smith@citrix.com>)
 id 1dOO2Q-0001GJ-R1
 for win-pv-devel@lists.xenproject.org; Fri, 23 Jun 2017 12:50:14 +0000
Received: from [85.158.139.211] by server-1.bemta-5.messagelabs.com id
 3D/A8-01992-68E0D495; Fri, 23 Jun 2017 12:50:14 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprKIsWRWlGSWpSXmKPExsXitHRDpG4rn2+
 kwf0tGhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1o2PmBeaCMxEVbZcWsjQwvnPoYuTkkBDwl7j5
 bCsbiM0mICvxceVnZhBbREBdYt/nrUwgNrOAmsT1/V2sILawgI1E46b/YDUsAqoSPSsegMV5B
 awk7qw+zAQxU05i8uJLjCA2p4C1xL4pW1i6GDk4hIBqFq6uAAkLCShJfFv8ghmiVVDi5MwnLB
 CrJCQOvnjBPIGRdxaS1CwkqQWMTKsYNYpTi8pSi3QNLfSSijLTM0pyEzNzdA0NTPVyU4uLE9N
 TcxKTivWS83M3MQIDhwEIdjA2bfc8xCjJwaQkyht7xidSiC8pP6UyI7E4I76oNCe1+BCjDAeH
 kgRvEa9vpJBgUWp6akVaZg4whGHSEhw8SiK82zmA0rzFBYm5xZnpEKlTjMYcG1av/8LE8WfC1
 i9MQix5+XmpUuK8ySCTBEBKM0rz4AbBYusSo6yUMC8j0GlCPAWpRbmZJajyrxjFORiVhHlzQa
 bwZOaVwO17BXQKE9ApM9b4gJxSkoiQkmpgNMi4//ZkVg7f0uYnW8U1N079Hnu6ls3NfNatffO
 +LXjovmNrtk6JvqPvKZYjrdIv9h2unbFjde3vHxZbGaaEiSXWMOxQumSywsBdlitw7Ru59kAP
 jZdzGI4u+dOzumzaX/6d/Le31vnM+tC+mXvJdT/LVWydy37wVnx68jWoP+/22zMzg7fmfFNiK
 c5INNRiLipOBADA90fYqAIAAA==
X-Env-Sender: prvs=340501eb8=owen.smith@citrix.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1498222209!84176866!4
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29187 invoked from network); 23 Jun 2017 12:50:13 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Jun 2017 12:50:13 -0000
X-IronPort-AV: E=Sophos;i="5.39,378,1493683200"; d="scan'208";a="429138140"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Fri, 23 Jun 2017 13:49:15 +0100
Message-ID: <20170623124917.13956-9-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
In-Reply-To: <20170623124917.13956-1-owen.smith@citrix.com>
References: <20170623124917.13956-1-owen.smith@citrix.com>
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 08/10] Scope TargetDebugCallback in target.c
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKU2lnbmVkLW9mZi1ieTog
T3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52YmQvYWRhcHRl
ci5jIHwgIDE5IC0tLS0tCiBzcmMveGVudmJkL3RhcmdldC5jICB8IDE5MyArKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIHNyYy94ZW52YmQvdGFyZ2V0
LmggIHwgIDEwIC0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxMzAgaW5zZXJ0aW9ucygrKSwgOTIgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9hZGFwdGVyLmMgYi9zcmMveGVudmJk
L2FkYXB0ZXIuYwppbmRleCA2NTlkZDIyLi41NWExOTYyIDEwMDY0NAotLS0gYS9zcmMveGVudmJk
L2FkYXB0ZXIuYworKysgYi9zcmMveGVudmJkL2FkYXB0ZXIuYwpAQCAtODgxLDcgKzg4MSw2IEBA
IEFkYXB0ZXJEZWJ1Z0NhbGxiYWNrKAogICAgICkKIHsKICAgICBQWEVOVkJEX0FEQVBURVIgQWRh
cHRlciA9IENvbnRleHQ7Ci0gICAgVUxPTkcgICAgICAgICAgIFRhcmdldElkOwogCiAgICAgWEVO
QlVTX0RFQlVHKFByaW50ZiwKICAgICAgICAgICAgICAgICAgJkFkYXB0ZXItPkRlYnVnSW50ZXJm
YWNlLApAQCAtOTExLDI0ICs5MTAsNiBAQCBBZGFwdGVyRGVidWdDYWxsYmFjaygKICAgICAgICAg
ICAgICAgICAgQWRhcHRlci0+Q29tcGxldGVkKTsKIAogICAgIEJ1ZmZlckRlYnVnQ2FsbGJhY2so
JkFkYXB0ZXItPkRlYnVnSW50ZXJmYWNlKTsKLQotICAgIGZvciAoVGFyZ2V0SWQgPSAwOyBUYXJn
ZXRJZCA8IFhFTlZCRF9NQVhfVEFSR0VUUzsgKytUYXJnZXRJZCkgewotICAgICAgICAvLyBubyBu
ZWVkIHRvIHVzZSBBZGFwdGVyR2V0VGFyZ2V0ICh3aGljaCBpcyBsb2NrZWQgYXQgRElTUEFUQ0gp
IGFzIGNhbGxlZCBhdCBISUdIX0xFVkVMCi0gICAgICAgIFBYRU5WQkRfVEFSR0VUIFRhcmdldCA9
IEFkYXB0ZXItPlRhcmdldExpc3RbVGFyZ2V0SWRdOwotICAgICAgICBpZiAoVGFyZ2V0ID09IE5V
TEwpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBYRU5CVVNfREVCVUcoUHJpbnRm
LCAmQWRhcHRlci0+RGVidWdJbnRlcmZhY2UsCi0gICAgICAgICAgICAgICAgICAgICAiQURBUFRF
UjogPT09PT4gVGFyZ2V0WyUtM2RdICAgIDogMHglcFxuIiwKLSAgICAgICAgICAgICAgICAgICAg
IFRhcmdldElkLCBUYXJnZXQpOwotCi0gICAgICAgIC8vIGNhbGwgVGFyZ2V0J3MgZGVidWcgY2Fs
bGJhY2sgZGlyZWN0bHkKLSAgICAgICAgVGFyZ2V0RGVidWdDYWxsYmFjayhUYXJnZXQsICZBZGFw
dGVyLT5EZWJ1Z0ludGVyZmFjZSk7Ci0KLSAgICAgICAgWEVOQlVTX0RFQlVHKFByaW50ZiwgJkFk
YXB0ZXItPkRlYnVnSW50ZXJmYWNlLAotICAgICAgICAgICAgICAgICAgICAgIkFEQVBURVI6IDw9
PT09IFRhcmdldFslLTNkXSAgICA6IDB4JXBcbiIsCi0gICAgICAgICAgICAgICAgICAgICBUYXJn
ZXRJZCwgVGFyZ2V0KTsKLSAgICB9CiB9CiAKIHN0YXRpYyBOVFNUQVRVUwpkaWZmIC0tZ2l0IGEv
c3JjL3hlbnZiZC90YXJnZXQuYyBiL3NyYy94ZW52YmQvdGFyZ2V0LmMKaW5kZXggNGU1OWU4MC4u
ZTZjYWIzNSAxMDA2NDQKLS0tIGEvc3JjL3hlbnZiZC90YXJnZXQuYworKysgYi9zcmMveGVudmJk
L3RhcmdldC5jCkBAIC03MSw2ICs3MSw4IEBAIHN0cnVjdCBfWEVOVkJEX1RBUkdFVCB7CiAKICAg
ICAvLyBGcm9udGVuZCAoUmluZywgaW5jbHVkZXMgWGVuQnVzIGludGVyZmFjZXMpCiAgICAgUFhF
TlZCRF9GUk9OVEVORCAgICAgICAgICAgIEZyb250ZW5kOworICAgIFhFTkJVU19ERUJVR19JTlRF
UkZBQ0UgICAgICBEZWJ1Z0ludGVyZmFjZTsKKyAgICBQWEVOQlVTX0RFQlVHX0NBTExCQUNLICAg
ICAgRGVidWdDYWxsYmFjazsKIAogICAgIC8vIFN0YXRlCiAgICAgTE9ORyAgICAgICAgICAgICAg
ICAgICAgICAgIFBhdXNlZDsKQEAgLTI0Miw2NiArMjQ0LDYgQEAgX19QbnBTdGF0ZU5hbWUoCiAg
ICAgfQogfQogCi1ERUNMU1BFQ19OT0lOTElORSBWT0lECi1UYXJnZXREZWJ1Z0NhbGxiYWNrKAot
ICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgVGFyZ2V0LAotICAgIF9faW4gUFhFTkJVU19ERUJVR19J
TlRFUkZBQ0UgRGVidWdJbnRlcmZhY2UKLSAgICApCi17Ci0gICAgaWYgKFRhcmdldCA9PSBOVUxM
IHx8IERlYnVnSW50ZXJmYWNlID09IE5VTEwpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoVGFy
Z2V0LT5TaWduYXR1cmUgIT0gVEFSR0VUX1NJR05BVFVSRSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgWEVOQlVTX0RFQlVHKFByaW50ZiwgRGVidWdJbnRlcmZhY2UsCi0gICAgICAgICAgICAgICAg
ICJUQVJHRVQ6IEFkYXB0ZXIgMHglcCBEZXZpY2VPYmplY3QgMHglcFxuIiwKLSAgICAgICAgICAg
ICAgICAgVGFyZ2V0LT5BZGFwdGVyLAotICAgICAgICAgICAgICAgICBUYXJnZXQtPkRldmljZU9i
amVjdCk7Ci0gICAgWEVOQlVTX0RFQlVHKFByaW50ZiwgRGVidWdJbnRlcmZhY2UsCi0gICAgICAg
ICAgICAgICAgICJUQVJHRVQ6IERldmljZVBucFN0YXRlICVzICglcylcbiIsCi0gICAgICAgICAg
ICAgICAgIF9fUG5wU3RhdGVOYW1lKFRhcmdldC0+RGV2aWNlUG5wU3RhdGUpLAotICAgICAgICAg
ICAgICAgICBfX1BucFN0YXRlTmFtZShUYXJnZXQtPlByZXZQbnBTdGF0ZSkpOwotICAgIFhFTkJV
U19ERUJVRyhQcmludGYsIERlYnVnSW50ZXJmYWNlLAotICAgICAgICAgICAgICAgICAiVEFSR0VU
OiBEZXZpY2VQb3dlclN0YXRlICVzXG4iLAotICAgICAgICAgICAgICAgICBQb3dlckRldmljZVN0
YXRlTmFtZShUYXJnZXQtPkRldmljZVBvd2VyU3RhdGUpKTsKLSAgICBYRU5CVVNfREVCVUcoUHJp
bnRmLCBEZWJ1Z0ludGVyZmFjZSwKLSAgICAgICAgICAgICAgICAgIlRBUkdFVDogJXNcbiIsCi0g
ICAgICAgICAgICAgICAgIFRhcmdldC0+TWlzc2luZyA/IFRhcmdldC0+UmVhc29uIDogIk5vdCBN
aXNzaW5nIik7Ci0KLSAgICBYRU5CVVNfREVCVUcoUHJpbnRmLCBEZWJ1Z0ludGVyZmFjZSwKLSAg
ICAgICAgICAgICAgICAgIlRBUkdFVDogQkxLSUZfT1BzOiBSRUFEPSV1IFdSSVRFPSV1XG4iLAot
ICAgICAgICAgICAgICAgICBUYXJnZXQtPkJsa09wUmVhZCwgVGFyZ2V0LT5CbGtPcFdyaXRlKTsK
LSAgICBYRU5CVVNfREVCVUcoUHJpbnRmLCBEZWJ1Z0ludGVyZmFjZSwKLSAgICAgICAgICAgICAg
ICAgIlRBUkdFVDogQkxLSUZfT1BzOiBJTkRJUkVDVF9SRUFEPSV1IElORElSRUNUX1dSSVRFPSV1
XG4iLAotICAgICAgICAgICAgICAgICBUYXJnZXQtPkJsa09wSW5kaXJlY3RSZWFkLCBUYXJnZXQt
PkJsa09wSW5kaXJlY3RXcml0ZSk7Ci0gICAgWEVOQlVTX0RFQlVHKFByaW50ZiwgRGVidWdJbnRl
cmZhY2UsCi0gICAgICAgICAgICAgICAgICJUQVJHRVQ6IEJMS0lGX09QczogQkFSUklFUj0ldSBE
SVNDQVJEPSV1IEZMVVNIPSV1XG4iLAotICAgICAgICAgICAgICAgICBUYXJnZXQtPkJsa09wQmFy
cmllciwgVGFyZ2V0LT5CbGtPcERpc2NhcmQsIFRhcmdldC0+QmxrT3BGbHVzaCk7Ci0gICAgWEVO
QlVTX0RFQlVHKFByaW50ZiwgRGVidWdJbnRlcmZhY2UsCi0gICAgICAgICAgICAgICAgICJUQVJH
RVQ6IEZhaWxlZDogTWFwcz0ldSBCb3VuY2VzPSV1IEdyYW50cz0ldVxuIiwKLSAgICAgICAgICAg
ICAgICAgVGFyZ2V0LT5GYWlsZWRNYXBzLCBUYXJnZXQtPkZhaWxlZEJvdW5jZXMsIFRhcmdldC0+
RmFpbGVkR3JhbnRzKTsKLSAgICBYRU5CVVNfREVCVUcoUHJpbnRmLCBEZWJ1Z0ludGVyZmFjZSwK
LSAgICAgICAgICAgICAgICAgIlRBUkdFVDogU2VnbWVudHMgR3JhbnRlZD0lbGx1IEJvdW5jZWQ9
JWxsdVxuIiwKLSAgICAgICAgICAgICAgICAgVGFyZ2V0LT5TZWdzR3JhbnRlZCwgVGFyZ2V0LT5T
ZWdzQm91bmNlZCk7Ci0KLSAgICBfX0xvb2thc2lkZURlYnVnKCZUYXJnZXQtPlJlcXVlc3RMaXN0
LCBEZWJ1Z0ludGVyZmFjZSwgIlJFUVVFU1RzIik7Ci0gICAgX19Mb29rYXNpZGVEZWJ1ZygmVGFy
Z2V0LT5TZWdtZW50TGlzdCwgRGVidWdJbnRlcmZhY2UsICJTRUdNRU5UcyIpOwotICAgIF9fTG9v
a2FzaWRlRGVidWcoJlRhcmdldC0+SW5kaXJlY3RMaXN0LCBEZWJ1Z0ludGVyZmFjZSwgIklORElS
RUNUcyIpOwotCi0gICAgUXVldWVEZWJ1Z0NhbGxiYWNrKCZUYXJnZXQtPkZyZXNoU3JicywgICAg
IkZyZXNoICAgICIsIERlYnVnSW50ZXJmYWNlKTsKLSAgICBRdWV1ZURlYnVnQ2FsbGJhY2soJlRh
cmdldC0+UHJlcGFyZWRSZXFzLCAiUHJlcGFyZWQgIiwgRGVidWdJbnRlcmZhY2UpOwotICAgIFF1
ZXVlRGVidWdDYWxsYmFjaygmVGFyZ2V0LT5TdWJtaXR0ZWRSZXFzLCAiU3VibWl0dGVkIiwgRGVi
dWdJbnRlcmZhY2UpOwotICAgIFF1ZXVlRGVidWdDYWxsYmFjaygmVGFyZ2V0LT5TaHV0ZG93blNy
YnMsICJTaHV0ZG93biAiLCBEZWJ1Z0ludGVyZmFjZSk7Ci0KLSAgICBGcm9udGVuZERlYnVnQ2Fs
bGJhY2soVGFyZ2V0LT5Gcm9udGVuZCwgRGVidWdJbnRlcmZhY2UpOwotCi0gICAgVGFyZ2V0LT5C
bGtPcFJlYWQgPSBUYXJnZXQtPkJsa09wV3JpdGUgPSAwOwotICAgIFRhcmdldC0+QmxrT3BJbmRp
cmVjdFJlYWQgPSBUYXJnZXQtPkJsa09wSW5kaXJlY3RXcml0ZSA9IDA7Ci0gICAgVGFyZ2V0LT5C
bGtPcEJhcnJpZXIgPSBUYXJnZXQtPkJsa09wRGlzY2FyZCA9IFRhcmdldC0+QmxrT3BGbHVzaCA9
IDA7Ci0gICAgVGFyZ2V0LT5GYWlsZWRNYXBzID0gVGFyZ2V0LT5GYWlsZWRCb3VuY2VzID0gVGFy
Z2V0LT5GYWlsZWRHcmFudHMgPSAwOwotICAgIFRhcmdldC0+U2Vnc0dyYW50ZWQgPSBUYXJnZXQt
PlNlZ3NCb3VuY2VkID0gMDsKLX0KLQogLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gUG93ZXIg
U3RhdGVzCiBfX2NoZWNrUmV0dXJuCkBAIC0yMjczLDYgKzIyMTUsODkgQEAgVGFyZ2V0RGlzcGF0
Y2hQbnAoCiAgICAgcmV0dXJuIERyaXZlckRpc3BhdGNoUG5wKERldmljZU9iamVjdCwgSXJwKTsK
IH0KIAorc3RhdGljIERFQ0xTUEVDX05PSU5MSU5FIFZPSUQKK1RhcmdldERlYnVnQ2FsbGJhY2so
CisgICAgSU4gIFBWT0lEICAgICAgIEFyZ3VtZW50LAorICAgIElOICBCT09MRUFOICAgICBDcmFz
aGluZworICAgICkKK3sKKyAgICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0ID0gQXJndW1lbnQ7CisK
KyAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKENyYXNoaW5nKTsKKworICAgIFhFTkJVU19ERUJV
RyhQcmludGYsCisgICAgICAgICAgICAgICAgICZUYXJnZXQtPkRlYnVnSW50ZXJmYWNlLAorICAg
ICAgICAgICAgICAgICAiVEFSR0VUOiBBZGFwdGVyIDB4JXAgRGV2aWNlT2JqZWN0IDB4JXBcbiIs
CisgICAgICAgICAgICAgICAgIFRhcmdldC0+QWRhcHRlciwKKyAgICAgICAgICAgICAgICAgVGFy
Z2V0LT5EZXZpY2VPYmplY3QpOworICAgIFhFTkJVU19ERUJVRyhQcmludGYsCisgICAgICAgICAg
ICAgICAgICZUYXJnZXQtPkRlYnVnSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAiVEFSR0VU
OiBEZXZpY2VQbnBTdGF0ZSAlcyAoJXMpXG4iLAorICAgICAgICAgICAgICAgICBfX1BucFN0YXRl
TmFtZShUYXJnZXQtPkRldmljZVBucFN0YXRlKSwKKyAgICAgICAgICAgICAgICAgX19QbnBTdGF0
ZU5hbWUoVGFyZ2V0LT5QcmV2UG5wU3RhdGUpKTsKKyAgICBYRU5CVVNfREVCVUcoUHJpbnRmLAor
ICAgICAgICAgICAgICAgICAmVGFyZ2V0LT5EZWJ1Z0ludGVyZmFjZSwKKyAgICAgICAgICAgICAg
ICAgIlRBUkdFVDogRGV2aWNlUG93ZXJTdGF0ZSAlc1xuIiwKKyAgICAgICAgICAgICAgICAgUG93
ZXJEZXZpY2VTdGF0ZU5hbWUoVGFyZ2V0LT5EZXZpY2VQb3dlclN0YXRlKSk7CisgICAgWEVOQlVT
X0RFQlVHKFByaW50ZiwKKyAgICAgICAgICAgICAgICAgJlRhcmdldC0+RGVidWdJbnRlcmZhY2Us
CisgICAgICAgICAgICAgICAgICJUQVJHRVQ6ICVzXG4iLAorICAgICAgICAgICAgICAgICBUYXJn
ZXQtPk1pc3NpbmcgPyBUYXJnZXQtPlJlYXNvbiA6ICJOb3QgTWlzc2luZyIpOworCisgICAgWEVO
QlVTX0RFQlVHKFByaW50ZiwKKyAgICAgICAgICAgICAgICAgJlRhcmdldC0+RGVidWdJbnRlcmZh
Y2UsCisgICAgICAgICAgICAgICAgICJUQVJHRVQ6IEJMS0lGX09QczogUkVBRD0ldSBXUklURT0l
dVxuIiwKKyAgICAgICAgICAgICAgICAgVGFyZ2V0LT5CbGtPcFJlYWQsIFRhcmdldC0+QmxrT3BX
cml0ZSk7CisgICAgWEVOQlVTX0RFQlVHKFByaW50ZiwKKyAgICAgICAgICAgICAgICAgJlRhcmdl
dC0+RGVidWdJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICJUQVJHRVQ6IEJMS0lGX09Qczog
SU5ESVJFQ1RfUkVBRD0ldSBJTkRJUkVDVF9XUklURT0ldVxuIiwKKyAgICAgICAgICAgICAgICAg
VGFyZ2V0LT5CbGtPcEluZGlyZWN0UmVhZCwgVGFyZ2V0LT5CbGtPcEluZGlyZWN0V3JpdGUpOwor
ICAgIFhFTkJVU19ERUJVRyhQcmludGYsCisgICAgICAgICAgICAgICAgICZUYXJnZXQtPkRlYnVn
SW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAiVEFSR0VUOiBCTEtJRl9PUHM6IEJBUlJJRVI9
JXUgRElTQ0FSRD0ldSBGTFVTSD0ldVxuIiwKKyAgICAgICAgICAgICAgICAgVGFyZ2V0LT5CbGtP
cEJhcnJpZXIsIFRhcmdldC0+QmxrT3BEaXNjYXJkLCBUYXJnZXQtPkJsa09wRmx1c2gpOworICAg
IFhFTkJVU19ERUJVRyhQcmludGYsCisgICAgICAgICAgICAgICAgICZUYXJnZXQtPkRlYnVnSW50
ZXJmYWNlLAorICAgICAgICAgICAgICAgICAiVEFSR0VUOiBGYWlsZWQ6IE1hcHM9JXUgQm91bmNl
cz0ldSBHcmFudHM9JXVcbiIsCisgICAgICAgICAgICAgICAgIFRhcmdldC0+RmFpbGVkTWFwcywg
VGFyZ2V0LT5GYWlsZWRCb3VuY2VzLCBUYXJnZXQtPkZhaWxlZEdyYW50cyk7CisgICAgWEVOQlVT
X0RFQlVHKFByaW50ZiwKKyAgICAgICAgICAgICAgICAgJlRhcmdldC0+RGVidWdJbnRlcmZhY2Us
CisgICAgICAgICAgICAgICAgICJUQVJHRVQ6IFNlZ21lbnRzIEdyYW50ZWQ9JWxsdSBCb3VuY2Vk
PSVsbHVcbiIsCisgICAgICAgICAgICAgICAgIFRhcmdldC0+U2Vnc0dyYW50ZWQsIFRhcmdldC0+
U2Vnc0JvdW5jZWQpOworCisgICAgX19Mb29rYXNpZGVEZWJ1ZygmVGFyZ2V0LT5SZXF1ZXN0TGlz
dCwKKyAgICAgICAgICAgICAgICAgICAgICZUYXJnZXQtPkRlYnVnSW50ZXJmYWNlLAorICAgICAg
ICAgICAgICAgICAgICAgIlJFUVVFU1RzIik7CisgICAgX19Mb29rYXNpZGVEZWJ1ZygmVGFyZ2V0
LT5TZWdtZW50TGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICZUYXJnZXQtPkRlYnVnSW50ZXJm
YWNlLAorICAgICAgICAgICAgICAgICAgICAgIlNFR01FTlRzIik7CisgICAgX19Mb29rYXNpZGVE
ZWJ1ZygmVGFyZ2V0LT5JbmRpcmVjdExpc3QsCisgICAgICAgICAgICAgICAgICAgICAmVGFyZ2V0
LT5EZWJ1Z0ludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgICAgICJJTkRJUkVDVHMiKTsKKwor
ICAgIFF1ZXVlRGVidWdDYWxsYmFjaygmVGFyZ2V0LT5GcmVzaFNyYnMsCisgICAgICAgICAgICAg
ICAgICAgICAgICJGcmVzaCAgICAiLAorICAgICAgICAgICAgICAgICAgICAgICAmVGFyZ2V0LT5E
ZWJ1Z0ludGVyZmFjZSk7CisgICAgUXVldWVEZWJ1Z0NhbGxiYWNrKCZUYXJnZXQtPlByZXBhcmVk
UmVxcywKKyAgICAgICAgICAgICAgICAgICAgICAgIlByZXBhcmVkICIsCisgICAgICAgICAgICAg
ICAgICAgICAgICZUYXJnZXQtPkRlYnVnSW50ZXJmYWNlKTsKKyAgICBRdWV1ZURlYnVnQ2FsbGJh
Y2soJlRhcmdldC0+U3VibWl0dGVkUmVxcywKKyAgICAgICAgICAgICAgICAgICAgICAgIlN1Ym1p
dHRlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICZUYXJnZXQtPkRlYnVnSW50ZXJmYWNlKTsK
KyAgICBRdWV1ZURlYnVnQ2FsbGJhY2soJlRhcmdldC0+U2h1dGRvd25TcmJzLAorICAgICAgICAg
ICAgICAgICAgICAgICAiU2h1dGRvd24gIiwKKyAgICAgICAgICAgICAgICAgICAgICAgJlRhcmdl
dC0+RGVidWdJbnRlcmZhY2UpOworCisgICAgRnJvbnRlbmREZWJ1Z0NhbGxiYWNrKFRhcmdldC0+
RnJvbnRlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZUYXJnZXQtPkRlYnVnSW50ZXJm
YWNlKTsKKworICAgIFRhcmdldC0+QmxrT3BSZWFkID0gVGFyZ2V0LT5CbGtPcFdyaXRlID0gMDsK
KyAgICBUYXJnZXQtPkJsa09wSW5kaXJlY3RSZWFkID0gVGFyZ2V0LT5CbGtPcEluZGlyZWN0V3Jp
dGUgPSAwOworICAgIFRhcmdldC0+QmxrT3BCYXJyaWVyID0gVGFyZ2V0LT5CbGtPcERpc2NhcmQg
PSBUYXJnZXQtPkJsa09wRmx1c2ggPSAwOworICAgIFRhcmdldC0+RmFpbGVkTWFwcyA9IFRhcmdl
dC0+RmFpbGVkQm91bmNlcyA9IFRhcmdldC0+RmFpbGVkR3JhbnRzID0gMDsKKyAgICBUYXJnZXQt
PlNlZ3NHcmFudGVkID0gVGFyZ2V0LT5TZWdzQm91bmNlZCA9IDA7Cit9CisKIE5UU1RBVFVTCiBU
YXJnZXREM1RvRDAoCiAgICAgSU4gIFBYRU5WQkRfVEFSR0VUICBUYXJnZXQKQEAgLTIyODYsMjUg
KzIzMTEsNTUgQEAgVGFyZ2V0RDNUb0QwKAogCiAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IEQz
LT5EMFxuIiwgVGFyZ2V0SWQpOwogCi0gICAgc3RhdHVzID0gRnJvbnRlbmREM1RvRDAoVGFyZ2V0
LT5Gcm9udGVuZCk7CisgICAgQWRhcHRlckdldERlYnVnSW50ZXJmYWNlKFRhcmdldEdldEFkYXB0
ZXIoVGFyZ2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlRhcmdldC0+RGVidWdJ
bnRlcmZhY2UpOworCisgICAgc3RhdHVzID0gWEVOQlVTX0RFQlVHKEFjcXVpcmUsICZUYXJnZXQt
PkRlYnVnSW50ZXJmYWNlKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKICAgICAgICAg
Z290byBmYWlsMTsKIAotICAgIHN0YXR1cyA9IEZyb250ZW5kU2V0U3RhdGUoVGFyZ2V0LT5Gcm9u
dGVuZCwgWEVOVkJEX0VOQUJMRUQpOworICAgIHN0YXR1cyA9IFhFTkJVU19ERUJVRyhSZWdpc3Rl
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJlRhcmdldC0+RGVidWdJbnRlcmZhY2UsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIF9fTU9EVUxFX18sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIFRhcmdldERlYnVnQ2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgIFRh
cmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJlRhcmdldC0+RGVidWdDYWxsYmFjayk7
CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCiAgICAgICAgIGdvdG8gZmFpbDI7CiAKKyAg
ICBzdGF0dXMgPSBGcm9udGVuZEQzVG9EMChUYXJnZXQtPkZyb250ZW5kKTsKKyAgICBpZiAoIU5U
X1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgZ290byBmYWlsMzsKKworICAgIHN0YXR1cyA9IEZy
b250ZW5kU2V0U3RhdGUoVGFyZ2V0LT5Gcm9udGVuZCwgWEVOVkJEX0VOQUJMRUQpOworICAgIGlm
ICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICBnb3RvIGZhaWw0OworCiAgICAgX19UYXJn
ZXRVbnBhdXNlRGF0YVBhdGgoVGFyZ2V0KTsKIAogICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsK
IAorZmFpbDQ6CisgICAgRXJyb3IoImZhaWw0XG4iKTsKKyAgICBGcm9udGVuZEQwVG9EMyhUYXJn
ZXQtPkZyb250ZW5kKTsKKworZmFpbDM6CisgICAgRXJyb3IoImZhaWwzXG4iKTsKKyAgICBYRU5C
VVNfREVCVUcoRGVyZWdpc3RlciwKKyAgICAgICAgICAgICAgICAgJlRhcmdldC0+RGVidWdJbnRl
cmZhY2UsCisgICAgICAgICAgICAgICAgIFRhcmdldC0+RGVidWdDYWxsYmFjayk7CisgICAgVGFy
Z2V0LT5EZWJ1Z0NhbGxiYWNrID0gTlVMTDsKKwogZmFpbDI6CiAgICAgRXJyb3IoIkZhaWwyXG4i
KTsKLSAgICBGcm9udGVuZEQwVG9EMyhUYXJnZXQtPkZyb250ZW5kKTsKKyAgICBYRU5CVVNfREVC
VUcoUmVsZWFzZSwKKyAgICAgICAgICAgICAgICAgJlRhcmdldC0+RGVidWdJbnRlcmZhY2UpOwog
CiBmYWlsMToKICAgICBFcnJvcigiRmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOwogCisgICAgUnRs
WmVyb01lbW9yeSgmVGFyZ2V0LT5EZWJ1Z0ludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgIHNp
emVvZihYRU5CVVNfREVCVUdfSU5URVJGQUNFKSk7CiAgICAgVGFyZ2V0LT5EZXZpY2VQb3dlclN0
YXRlID0gUG93ZXJEZXZpY2VEMzsKIAogICAgIHJldHVybiBzdGF0dXM7CkBAIC0yMzIzLDkgKzIz
NzgsMjEgQEAgVGFyZ2V0RDBUb0QzKAogICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBEMC0+RDNc
biIsIFRhcmdldElkKTsKIAogICAgIF9fVGFyZ2V0UGF1c2VEYXRhUGF0aChUYXJnZXQsIEZBTFNF
KTsKKwogICAgIChWT0lEKSBGcm9udGVuZFNldFN0YXRlKFRhcmdldC0+RnJvbnRlbmQsIFhFTlZC
RF9DTE9TRUQpOwogCiAgICAgRnJvbnRlbmREMFRvRDMoVGFyZ2V0LT5Gcm9udGVuZCk7CisKKyAg
ICBYRU5CVVNfREVCVUcoRGVyZWdpc3RlciwKKyAgICAgICAgICAgICAgICAgJlRhcmdldC0+RGVi
dWdJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgIFRhcmdldC0+RGVidWdDYWxsYmFjayk7Cisg
ICAgVGFyZ2V0LT5EZWJ1Z0NhbGxiYWNrID0gTlVMTDsKKworICAgIFhFTkJVU19ERUJVRyhSZWxl
YXNlLAorICAgICAgICAgICAgICAgICAmVGFyZ2V0LT5EZWJ1Z0ludGVyZmFjZSk7CisKKyAgICBS
dGxaZXJvTWVtb3J5KCZUYXJnZXQtPkRlYnVnSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAg
c2l6ZW9mKFhFTkJVU19ERUJVR19JTlRFUkZBQ0UpKTsKIH0KIAogc3RhdGljIEZPUkNFSU5MSU5F
IFVMT05HCmRpZmYgLS1naXQgYS9zcmMveGVudmJkL3RhcmdldC5oIGIvc3JjL3hlbnZiZC90YXJn
ZXQuaAppbmRleCA3ZjY2NGE1Li4zMDczOGZjIDEwMDY0NAotLS0gYS9zcmMveGVudmJkL3Rhcmdl
dC5oCisrKyBiL3NyYy94ZW52YmQvdGFyZ2V0LmgKQEAgLTM2LDEwICszNiw2IEBACiAKIHR5cGVk
ZWYgc3RydWN0IF9YRU5WQkRfVEFSR0VUIFhFTlZCRF9UQVJHRVQsICpQWEVOVkJEX1RBUkdFVDsK
IAotI2luY2x1ZGUgPHN0b3Jwb3J0Lmg+Ci0KLSNpbmNsdWRlIDxkZWJ1Z19pbnRlcmZhY2UuaD4K
LQogI2luY2x1ZGUgImFkYXB0ZXIuaCIKICNpbmNsdWRlICJzcmJleHQuaCIKICNpbmNsdWRlICJ0
eXBlcy5oIgpAQCAtNzksMTIgKzc1LDYgQEAgVGFyZ2V0SXNzdWVEZXZpY2VFamVjdCgKICAgICBJ
TiAgY29uc3QgQ0hBUiAgICAgICpSZWFzb24KICAgICApOwogCi1leHRlcm4gVk9JRAotVGFyZ2V0
RGVidWdDYWxsYmFjaygKLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdl
dCwKLSAgICBfX2luIFBYRU5CVVNfREVCVUdfSU5URVJGQUNFIERlYnVnCi0gICAgKTsKLQogLy8g
UG5QIFN0YXRlcwogZXh0ZXJuIFZPSUQKIFRhcmdldFNldE1pc3NpbmcoCi0tIAoyLjguMwoKCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZl
bCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8v
bGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZl
bA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jun 23 12:50:16 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 23 Jun 2017 12:50:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dOO2S-0001Ho-3g; Fri, 23 Jun 2017 12:50:16 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=340501eb8=owen.smith@citrix.com>)
 id 1dOO2R-0001GM-1u
 for win-pv-devel@lists.xenproject.org; Fri, 23 Jun 2017 12:50:15 +0000
Received: from [85.158.139.211] by server-17.bemta-5.messagelabs.com id
 8A/B4-19466-68E0D495; Fri, 23 Jun 2017 12:50:14 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpkkeJIrShJLcpLzFFi42JxWrohUreZzzf
 S4FmjoMWfxYkOjB6HP1xhCWCMYs3MS8qvSGDN+LPiCVvBFK2KqRuesTUwvpfrYuTgkBDwl7g+
 q6KLkZODTUBW4uPKz8wgtoiAusS+z1uZQGxmATWJ6/u7WEFsYQEriYd7LzKDtLIIqEo8/wXWy
 gsUXtO3BKxVQkBOYvLiS4wgNqeAtcS+KVtYQMqFgGoWrgYrFxJQkvi2+AUzRKugxMmZT1ggNk
 lIHHzxgnkCI+8sJKlZSFILGJlWMWoUpxaVpRbpGlroJRVlpmeU5CZm5ugaGpjq5aYWFyemp+Y
 kJhXrJefnbmIEBg0DEOxgbNrueYhRkoNJSZQ39oxPpBBfUn5KZUZicUZ8UWlOavEhRhkODiUJ
 3iJe30ghwaLU9NSKtMwcYPjCpCU4eJREeLdzAKV5iwsSc4sz0yFSpxgVpcR5k0H6BEASGaV5c
 G2wmLnEKCslzMsIdIgQT0FqUW5mCar8K0ZxDkYlYd5ckCk8mXklcNNfAS1mAlo8Y40PyOKSRI
 SUVAPjyRzL/Xo5It4vDU+e/5UXfqOsQaGs0X6+Wc8RH6PmnWXX975f9OLhv63VH72KujwiLMR
 nFu+2lp3wSmJe3cu+nblf7CwuLw1UPB3Z21dicog7qDDxm/QzppnWCqLP3Jbezi368su27YJZ
 w6L2DzMyRQ7mLNj+WXpT5YKKF7dFt01SWFAU/9ZUiaU4I9FQi7moOBEAfbISTZQCAAA=
X-Env-Sender: prvs=340501eb8=owen.smith@citrix.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1498222209!84176866!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28848 invoked from network); 23 Jun 2017 12:50:11 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Jun 2017 12:50:11 -0000
X-IronPort-AV: E=Sophos;i="5.39,378,1493683200"; d="scan'208";a="429138135"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Fri, 23 Jun 2017 13:49:09 +0100
Message-ID: <20170623124917.13956-3-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
In-Reply-To: <20170623124917.13956-1-owen.smith@citrix.com>
References: <20170623124917.13956-1-owen.smith@citrix.com>
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 02/10] Move StorPort*() calls to adapter.c
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKU2lnbmVkLW9mZi1ieTog
T3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52YmQvYWRhcHRl
ci5jIHwgMzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIHNyYy94ZW52
YmQvYWRhcHRlci5oIHwgMTEgKysrKysrKysrKysKIHNyYy94ZW52YmQvdGFyZ2V0LmMgIHwgMTkg
KysrKysrLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCAx
OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMveGVudmJkL2FkYXB0ZXIuYyBiL3NyYy94
ZW52YmQvYWRhcHRlci5jCmluZGV4IDJlODVmOWYuLmVjNjcxMWEgMTAwNjQ0Ci0tLSBhL3NyYy94
ZW52YmQvYWRhcHRlci5jCisrKyBiL3NyYy94ZW52YmQvYWRhcHRlci5jCkBAIC01OCw3ICs1OCw4
IEBACiAjaW5jbHVkZSAiZGVidWcuaCIKICNpbmNsdWRlICJhc3NlcnQuaCIKIAotI2RlZmluZSBN
QVhOQU1FTEVOICAxMjgKKyNkZWZpbmUgWEVOVkJEX01BWF9RVUVVRV9ERVBUSCAgMjU0CisjZGVm
aW5lIE1BWE5BTUVMRU4gICAgICAgICAgICAgIDEyOAogI2RlZmluZSBBREFQVEVSX1BPT0xfVEFH
ICAgICAgICAnYWRBWCcKIAogc3RydWN0IF9YRU5WQkRfQURBUFRFUiB7CkBAIC00OTgsOSArNDk5
LDcgQEAgX19BZGFwdGVyRW51bWVyYXRlKAogICAgIH0KIAogICAgIGlmIChOZWVkSW52YWxpZGF0
ZSkKLSAgICAgICAgU3RvclBvcnROb3RpZmljYXRpb24oQnVzQ2hhbmdlRGV0ZWN0ZWQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFkYXB0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIE5VTEwpOworICAgICAgICBBZGFwdGVyVGFyZ2V0TGlzdENoYW5nZWQoQWRhcHRlcik7
CiAgICAgaWYgKE5lZWRSZWJvb3QpCiAgICAgICAgIERyaXZlclJlcXVlc3RSZWJvb3QoKTsKIH0K
QEAgLTE0MDgsNiArMTQwNywzMSBAQCBBZGFwdGVyQ29tcGxldGVTcmIoCiAgICAgU3RvclBvcnRO
b3RpZmljYXRpb24oUmVxdWVzdENvbXBsZXRlLCBBZGFwdGVyLCBTcmIpOwogfQogCitWT0lECitB
ZGFwdGVyVGFyZ2V0TGlzdENoYW5nZWQoCisgICAgSU4gIFBYRU5WQkRfQURBUFRFUiBBZGFwdGVy
CisgICAgKQoreworICAgIFN0b3JQb3J0Tm90aWZpY2F0aW9uKEJ1c0NoYW5nZURldGVjdGVkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIEFkYXB0ZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgTlVMTCk7Cit9CisKK1ZPSUQKK0FkYXB0ZXJTZXREZXZpY2VRdWV1ZURlcHRoKAorICAgIElO
ICBQWEVOVkJEX0FEQVBURVIgQWRhcHRlciwKKyAgICBJTiAgVUxPTkcgICAgICAgICAgIFRhcmdl
dElkCisgICAgKQoreworICAgIGlmICghU3RvclBvcnRTZXREZXZpY2VRdWV1ZURlcHRoKEFkYXB0
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoVUNIQVIpVGFyZ2V0SWQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBYRU5WQkRfTUFYX1FVRVVFX0RFUFRIKSkKKyAgICAgICAgVmVyYm9zZSgiVGFyZ2V0
WyVkXSA6IEZhaWxlZCB0byBzZXQgcXVldWUgZGVwdGhcbiIsCisgICAgICAgICAgICAgICAgVGFy
Z2V0SWQpOworfQorCiBzdGF0aWMgVk9JRAogQWRhcHRlclVucGx1Z1JlcXVlc3QoCiAgICAgSU4g
IFBYRU5WQkRfQURBUFRFUiBBZGFwdGVyLApAQCAtMTcxMywxNSArMTczNywxNiBAQCBBZGFwdGVy
SHdCdWlsZElvKAogICAgICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfQUJPUlRfRkFJ
TEVEOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNSQl9GVU5DVElPTl9SRVNFVF9CVVM6Ci0g
ICAgICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19TVUNDRVNTOwogICAgICAgICBBZGFw
dGVySHdSZXNldEJ1cyhBZGFwdGVyLCBTcmItPlBhdGhJZCk7CisgICAgICAgIFNyYi0+U3JiU3Rh
dHVzID0gU1JCX1NUQVRVU19TVUNDRVNTOwogICAgICAgICBicmVhazsKIAogICAgIGRlZmF1bHQ6
CisgICAgICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19JTlZBTElEX1JFUVVFU1Q7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIFN0b3JQb3J0Tm90aWZpY2F0aW9uKFJlcXVlc3RD
b21wbGV0ZSwgQWRhcHRlciwgU3JiKTsKKyAgICBBZGFwdGVyQ29tcGxldGVTcmIoQWRhcHRlciwg
U3JiKTsKICAgICByZXR1cm4gRkFMU0U7CiB9CiAKQEAgLTE3NDcsNiArMTc3Miw3IEBAIEFkYXB0
ZXJId1N0YXJ0SW8oCiAgICAgcmV0dXJuIFRSVUU7CiAKIGZhaWwxOgorICAgIFNyYi0+U3JiU3Rh
dHVzID0gU1JCX1NUQVRVU19JTlZBTElEX1RBUkdFVF9JRDsKICAgICBBZGFwdGVyQ29tcGxldGVT
cmIoQWRhcHRlciwgU3JiKTsKICAgICByZXR1cm4gVFJVRTsKIH0KZGlmZiAtLWdpdCBhL3NyYy94
ZW52YmQvYWRhcHRlci5oIGIvc3JjL3hlbnZiZC9hZGFwdGVyLmgKaW5kZXggNWRkMmU2Mi4uYjg3
MDZmZCAxMDA2NDQKLS0tIGEvc3JjL3hlbnZiZC9hZGFwdGVyLmgKKysrIGIvc3JjL3hlbnZiZC9h
ZGFwdGVyLmgKQEAgLTcwLDYgKzcwLDE3IEBAIEFkYXB0ZXJDb21wbGV0ZVNyYigKICAgICBJTiAg
UFNDU0lfUkVRVUVTVF9CTE9DSyBTcmIKICAgICApOwogCitleHRlcm4gVk9JRAorQWRhcHRlclRh
cmdldExpc3RDaGFuZ2VkKAorICAgIElOICBQWEVOVkJEX0FEQVBURVIgQWRhcHRlcgorICAgICk7
CisKK2V4dGVybiBWT0lECitBZGFwdGVyU2V0RGV2aWNlUXVldWVEZXB0aCgKKyAgICBJTiAgUFhF
TlZCRF9BREFQVEVSIEFkYXB0ZXIsCisgICAgSU4gIFVMT05HICAgICAgICAgICBUYXJnZXRJZAor
ICAgICk7CisKIGV4dGVybiBOVFNUQVRVUwogQWRhcHRlckRpc3BhdGNoUG5wKAogICAgIElOICBQ
WEVOVkJEX0FEQVBURVIgQWRhcHRlciwKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvdGFyZ2V0LmMg
Yi9zcmMveGVudmJkL3RhcmdldC5jCmluZGV4IGM1ZGZmYTkuLjViYWI0NDAgMTAwNjQ0Ci0tLSBh
L3NyYy94ZW52YmQvdGFyZ2V0LmMKKysrIGIvc3JjL3hlbnZiZC90YXJnZXQuYwpAQCAtNDksOCAr
NDksNiBAQAogI2luY2x1ZGUgPHN1c3BlbmRfaW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8c3RkbGli
Lmg+CiAKLSNkZWZpbmUgWEVOVkJEX01BWF9RVUVVRV9ERVBUSCAgICAgICAgICAoMjU0KQotCiB0
eXBlZGVmIHN0cnVjdCBfWEVOVkJEX1NHX0xJU1QgewogICAgIC8vIFNHTGlzdCBmcm9tIFNSQgog
ICAgIFBTVE9SX1NDQVRURVJfR0FUSEVSX0xJU1QgICBTR0xpc3Q7CkBAIC0yMDIxLDEzICsyMDE5
LDggQEAgX19UYXJnZXRFeGVjdXRlU2NzaSgKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFND
U0lPUF9JTlFVSVJZOgotICAgICAgICBpZiAoIVN0b3JQb3J0U2V0RGV2aWNlUXVldWVEZXB0aChU
YXJnZXRHZXRBZGFwdGVyKFRhcmdldCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChV
Q0hBUilUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBYRU5WQkRfTUFYX1FVRVVFX0RFUFRIKSkKLSAgICAgICAgICAgIFZlcmJvc2UoIlRhcmdl
dFslZF0gOiBGYWlsZWQgdG8gc2V0IHF1ZXVlIGRlcHRoXG4iLAotICAgICAgICAgICAgICAgICAg
ICBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpKTsKKyAgICAgICAgQWRhcHRlclNldERldmljZVF1
ZXVlRGVwdGgoVGFyZ2V0R2V0QWRhcHRlcihUYXJnZXQpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpKTsKICAgICAgICAgUGRvSW5x
dWlyeShUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLCBGcm9udGVuZEdldElucXVpcnkoVGFyZ2V0
LT5Gcm9udGVuZCksIFNyYik7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU0NTSU9QX01PREVf
U0VOU0U6CkBAIC0yMzA1LDEzICsyMjk4LDEzIEBAIF9fVGFyZ2V0UmVtb3ZlRGV2aWNlKAogICAg
IGNhc2UgU3VycHJpc2VSZW1vdmVQZW5kaW5nOgogICAgICAgICBUYXJnZXRTZXRNaXNzaW5nKFRh
cmdldCwgIlN1cnByaXNlIFJlbW92ZSIpOwogICAgICAgICBUYXJnZXRTZXREZXZpY2VQbnBTdGF0
ZShUYXJnZXQsIERlbGV0ZWQpOwotICAgICAgICBTdG9yUG9ydE5vdGlmaWNhdGlvbihCdXNDaGFu
Z2VEZXRlY3RlZCwgVGFyZ2V0R2V0QWRhcHRlcihUYXJnZXQpLCAwKTsKKyAgICAgICAgQWRhcHRl
clRhcmdldExpc3RDaGFuZ2VkKFRhcmdldEdldEFkYXB0ZXIoVGFyZ2V0KSk7CiAgICAgICAgIGJy
ZWFrOwogCiAgICAgZGVmYXVsdDoKICAgICAgICAgVGFyZ2V0U2V0TWlzc2luZyhUYXJnZXQsICJS
ZW1vdmVkIik7CiAgICAgICAgIFRhcmdldFNldERldmljZVBucFN0YXRlKFRhcmdldCwgRGVsZXRl
ZCk7Ci0gICAgICAgIFN0b3JQb3J0Tm90aWZpY2F0aW9uKEJ1c0NoYW5nZURldGVjdGVkLCBUYXJn
ZXRHZXRBZGFwdGVyKFRhcmdldCksIDApOworICAgICAgICBBZGFwdGVyVGFyZ2V0TGlzdENoYW5n
ZWQoVGFyZ2V0R2V0QWRhcHRlcihUYXJnZXQpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQpA
QCAtMjMyMyw3ICsyMzE2LDcgQEAgX19UYXJnZXRFamVjdCgKIHsKICAgICBUYXJnZXRTZXRNaXNz
aW5nKFRhcmdldCwgIkVqZWN0ZWQiKTsKICAgICBUYXJnZXRTZXREZXZpY2VQbnBTdGF0ZShUYXJn
ZXQsIERlbGV0ZWQpOwotICAgIFN0b3JQb3J0Tm90aWZpY2F0aW9uKEJ1c0NoYW5nZURldGVjdGVk
LCBUYXJnZXRHZXRBZGFwdGVyKFRhcmdldCksIDApOworICAgIEFkYXB0ZXJUYXJnZXRMaXN0Q2hh
bmdlZChUYXJnZXRHZXRBZGFwdGVyKFRhcmdldCkpOwogfQogCiBfX2NoZWNrUmV0dXJuCkBAIC0y
NDE3LDcgKzI0MTAsNyBAQCBUYXJnZXRJc3N1ZURldmljZUVqZWN0KAogICAgICAgICBJb1JlcXVl
c3REZXZpY2VFamVjdChUYXJnZXQtPkRldmljZU9iamVjdCk7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IFRyaWdnZXJpbmcgQnVzQ2hhbmdlRGV0ZWN0ZWQgdG8g
ZGV0ZWN0IGRldmljZVxuIiwgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSk7Ci0gICAgICAgIFN0
b3JQb3J0Tm90aWZpY2F0aW9uKEJ1c0NoYW5nZURldGVjdGVkLCBUYXJnZXRHZXRBZGFwdGVyKFRh
cmdldCksIDApOworICAgICAgICBBZGFwdGVyVGFyZ2V0TGlzdENoYW5nZWQoVGFyZ2V0R2V0QWRh
cHRlcihUYXJnZXQpKTsKICAgICB9CiB9CiAKLS0gCjIuOC4zCgoKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3
aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0
Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Fri Jun 23 12:50:16 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 23 Jun 2017 12:50:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dOO2S-0001IC-4t; Fri, 23 Jun 2017 12:50:16 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=340501eb8=owen.smith@citrix.com>)
 id 1dOO2R-0001GQ-9A
 for win-pv-devel@lists.xenproject.org; Fri, 23 Jun 2017 12:50:15 +0000
Received: from [85.158.137.68] by server-2.bemta-3.messagelabs.com id
 EC/10-26106-68E0D495; Fri, 23 Jun 2017 12:50:14 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrNLMWRWlGSWpSXmKPExsXitHSDvW4bn2+
 kwYm1jBZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y3HjFbaChZwVHzd/ZW5gPMvexcjJISHgL/Hi
 QyMriM0mICvxceVnZhBbREBdYt/nrUwgNrOAmsT1/V1gNcICehKXVrWBxVkEVCVWz3/OAmLzC
 lhJzFswiRlippzE5MWXGEFsIQEliW+LXzBD1AhKnJz5hAVipoTEwRcvmCcwcs9CkpqFJLWAkW
 kVo3pxalFZapGukV5SUWZ6RkluYmaOrqGBsV5uanFxYnpqTmJSsV5yfu4mRmAg1DMwMO5gPNX
 sfIhRkoNJSZQ39oxPpBBfUn5KZUZicUZ8UWlOavEhRhkODiUJ3iJe30ghwaLU9NSKtMwcYEjC
 pCU4eJREeLdzAKV5iwsSc4sz0yFSpxgVpcR53/MAJQRAEhmleXBtsDi4xCgrJczLyMDAIMRTk
 FqUm1mCKv+KUZyDUUmYNxdkO09mXgnc9FdAi5mAFs9Y4wOyuCQRISXVwHhgwdJvtRNf/FF+fe
 6rQmSd4+er/Mt7DjCYnGqSXH4kY6ft4rXX3CaWt9+5PfV8zU4re5c1txf6ikzj8Sk8rnc0aq/
 SsoZ/6rcvdX11XC4oVrzPlTWw9dvxpLy531cYvL59y/Wd2BwdziDlC1XPpVXUXf3Zy+JFp23k
 m/N4Xo6GZ/oR7o7ckotKLMUZiYZazEXFiQDFQ4bVfgIAAA==
X-Env-Sender: prvs=340501eb8=owen.smith@citrix.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1498222212!68536963!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15016 invoked from network); 23 Jun 2017 12:50:13 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-6.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Jun 2017 12:50:13 -0000
X-IronPort-AV: E=Sophos;i="5.39,378,1493683200"; d="scan'208";a="437621418"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Fri, 23 Jun 2017 13:49:07 +0100
Message-ID: <20170623124917.13956-1-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 00/10] XenVbd refactoring (v2)
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKVGhpcyBzZXJpZXMgaXMg
YmFzZWQgb24gdGhlIG9yaWdpbmFsIHhlbnZiZCByZWZhY3Rvci9pbXByb3ZlbWVudHMgcGF0Y2hl
cywKYW5kIGhhcyBzcGxpdCB0aGUgb3JpZ2luYWwgc2VyaWVzLgpUaGlzIHNlcmllcyBjb250YWlu
cyBtYWlubHkgY29zbWV0aWMvcmVmYWN0b3JpbmcgLSB0aGUgZGF0YSBwYXRoIGhhcyBoYWQgCm9u
bHkgbWlub3IgY2hhbmdlcyByZWxhdGVkIHRvIG1ha2luZyBsYXRlciBkYXRhIHBhdGggY2hhbmdl
cyBlYXNpZXIuIEkndmUgCnJ1biBzb21lIGJhc2ljIElPTWV0ZXIgdGVzdHMgYW5kIGZvdW5kIG5v
IHNpZ25pZmljYW50IGNoYW5nZXMuCgpUaGUgbWFpbiBpbnRlbnRzIG9mIHRoaXMgc2VyaWVzIGlz
IHRvIGlzb2xhdGUsIGFzIG11Y2ggYXMgcG9zc2libGUsIHRoZSAKU3RvclBvcnQgaW50ZXJmYWNl
IGNhbGxzIHRvIGFkYXB0ZXIuYwoKT3dlbiBTbWl0aCAoMTApOgogIFJlbW92ZSB1bnVzZWQgY29k
ZQogIE1vdmUgU3RvclBvcnQqKCkgY2FsbHMgdG8gYWRhcHRlci5jCiAgUGFzcyBQWEVOVkJEX1NS
QkVYVCwgbm90IFBTQ1NJX1JFUVVFU1RfQkxPQ0sKICBJbmxpbmUgTWFwU2VnbWVudEJ1ZmZlcigp
CiAgTW92ZSBzY2F0dGVyIGdhdGhlciBsaXN0IHBhcnNpbmcgdG8gYWRhcHRlci5jCiAgUmVmYWN0
b3IgQnVpbGRJbyBhbmQgU3RhcnRJbyBjYWxscwogIFJlZmFjdG9yIHRhcmdldC5jCiAgU2NvcGUg
VGFyZ2V0RGVidWdDYWxsYmFjayBpbiB0YXJnZXQuYwogIE1vdmUgc3VzcGVuZCBjYWxsYmFjayBp
bnRvIHRhcmdldC5jCiAgVGlkeSB1cCB0YXJnZXQuaAoKIHNyYy94ZW52YmQvYWRhcHRlci5jICB8
ICAyMjIgKysrKysrKy0tCiBzcmMveGVudmJkL2FkYXB0ZXIuaCAgfCAgIDI3ICstCiBzcmMveGVu
dmJkL2Zyb250ZW5kLmMgfCAgICA0ICstCiBzcmMveGVudmJkL2dyYW50ZXIuYyAgfCAgICAxICsK
IHNyYy94ZW52YmQvc3JiZXh0LmggICB8ICAgIDQgKwogc3JjL3hlbnZiZC90YXJnZXQuYyAgIHwg
MTI5OSArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBz
cmMveGVudmJkL3RhcmdldC5oICAgfCAgMTc4ICsrKy0tLS0KIDcgZmlsZXMgY2hhbmdlZCwgODU3
IGluc2VydGlvbnMoKyksIDg3OCBkZWxldGlvbnMoLSkKCi0tIAoyLjguMwoKCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5n
IGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu
cHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jun 23 12:50:16 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 23 Jun 2017 12:50:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dOO2S-0001IU-64; Fri, 23 Jun 2017 12:50:16 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=340501eb8=owen.smith@citrix.com>)
 id 1dOO2R-0001GT-Ag
 for win-pv-devel@lists.xenproject.org; Fri, 23 Jun 2017 12:50:15 +0000
Received: from [193.109.254.147] by server-7.bemta-6.messagelabs.com id
 2D/77-03620-68E0D495; Fri, 23 Jun 2017 12:50:14 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkeJIrShJLcpLzFFi42JxWrohUreNzzf
 SYEYfp8WfxYkOjB6HP1xhCWCMYs3MS8qvSGDN+PLrHVvBZ++KBxeuszQwzrXoYuTkkBDwl3i1
 6hIriM0mICvxceVnZhBbREBdYt/nrUwgNrOAmsT1/V1gNcICVhLLn+9gBLFZBFQlvm1dyNLFy
 MHBK2At8e+bA8RIOYnJiy+BlXAChfdN2QJWIgTUunB1BUhYSEBJ4tviF2CbeAUEJU7OfMICsU
 lC4uCLF8wTGHlnIUnNQpJawMi0ilG9OLWoLLVI10wvqSgzPaMkNzEzR9fQwEwvN7W4ODE9NSc
 xqVgvOT93EyMwaBiAYAfjvBP+hxglOZiURHljz/hECvEl5adUZiQWZ8QXleakFh9ilOHgUJLg
 vc/jGykkWJSanlqRlpkDDF+YtAQHj5II73YOoDRvcUFibnFmOkTqFKMux4bV678wCbHk5eelS
 onzvgeZIQBSlFGaBzcCFkuXGGWlhHkZgY4S4ilILcrNLEGVf8UozsGoJMybyws0hSczrwRu0y
 ugI5iAjpixxgfkiJJEhJRUA6PjPLMrl87JbgkNn2nxV3TH88OXbu2L7K3kanlUuHcvt8AD009
 S/r6du/V5TonnLpRwtPx7Qe3FY8dVoQ/ONbX9f/JKk/Gw1/Son0caKtrbDJdmp7vK8JxZPkHK
 4HB5dVTSqrKc5oVBhVt9fKrMhGtdFdRuLNngcNP/Q/GNNTFl0QtuZKa36yuxFGckGmoxFxUnA
 gCUqmu4oAIAAA==
X-Env-Sender: prvs=340501eb8=owen.smith@citrix.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1498222211!104554461!2
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 41013 invoked from network); 23 Jun 2017 12:50:13 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Jun 2017 12:50:13 -0000
X-IronPort-AV: E=Sophos;i="5.39,378,1493683200"; d="scan'208";a="429138141"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Fri, 23 Jun 2017 13:49:16 +0100
Message-ID: <20170623124917.13956-10-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
In-Reply-To: <20170623124917.13956-1-owen.smith@citrix.com>
References: <20170623124917.13956-1-owen.smith@citrix.com>
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 09/10] Move suspend callback into target.c
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKUmVtb3ZlIGNoYWluZWQg
Y2FsbCBmcm9tIGFkYXB0ZXIuYwoKU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0
aEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52YmQvZnJvbnRlbmQuYyB8ICAgMyAtCiBzcmMveGVu
dmJkL3RhcmdldC5jICAgfCAxOTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIHNyYy94ZW52YmQvdGFyZ2V0LmggICB8ICAxMCAtLS0KIDMgZmlsZXMg
Y2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKyksIDkxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh
L3NyYy94ZW52YmQvZnJvbnRlbmQuYyBiL3NyYy94ZW52YmQvZnJvbnRlbmQuYwppbmRleCBkNTZm
Yzg0Li4xM2FiOWI0IDEwMDY0NAotLS0gYS9zcmMveGVudmJkL2Zyb250ZW5kLmMKKysrIGIvc3Jj
L3hlbnZiZC9mcm9udGVuZC5jCkBAIC0xNDEyLDggKzE0MTIsNiBAQCBGcm9udGVuZFN1c3BlbmRM
YXRlQ2FsbGJhY2soCiAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6ID09PT4gZnJvbSAlc1xuIiwg
RnJvbnRlbmQtPlRhcmdldElkLCBfX1hlbnZiZFN0YXRlTmFtZShGcm9udGVuZC0+U3RhdGUpKTsK
ICAgICBTdGF0ZSA9IEZyb250ZW5kLT5TdGF0ZTsKIAotICAgIFRhcmdldFByZVJlc3VtZShGcm9u
dGVuZC0+VGFyZ2V0KTsKLQogICAgIC8vIGRvbnQgYWNxdWlyZSBzdGF0ZSBsb2NrIC0gY2FsbGVk
IGF0IERJU1BBVENIIG9uIDEgdkNQVSB3aXRoIGludGVycnVwdHMgZW5hYmxlZAogICAgIFN0YXR1
cyA9IF9fRnJvbnRlbmRTZXRTdGF0ZShGcm9udGVuZCwgWEVOVkJEX0NMT1NFRCk7CiAgICAgaWYg
KCFOVF9TVUNDRVNTKFN0YXR1cykpIHsKQEAgLTE0MjgsNyArMTQyNiw2IEBAIEZyb250ZW5kU3Vz
cGVuZExhdGVDYWxsYmFjaygKICAgICAgICAgQVNTRVJUKEZBTFNFKTsKICAgICB9CiAKLSAgICBU
YXJnZXRQb3N0UmVzdW1lKEZyb250ZW5kLT5UYXJnZXQpOwogICAgIE5vdGlmaWVyVHJpZ2dlcihG
cm9udGVuZC0+Tm90aWZpZXIpOwogCiAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IDw9PT0gcmVz
dG9yZWQgJXNcbiIsIEZyb250ZW5kLT5UYXJnZXRJZCwgX19YZW52YmRTdGF0ZU5hbWUoRnJvbnRl
bmQtPlN0YXRlKSk7CmRpZmYgLS1naXQgYS9zcmMveGVudmJkL3RhcmdldC5jIGIvc3JjL3hlbnZi
ZC90YXJnZXQuYwppbmRleCBlNmNhYjM1Li4yNTI3MzYwIDEwMDY0NAotLS0gYS9zcmMveGVudmJk
L3RhcmdldC5jCisrKyBiL3NyYy94ZW52YmQvdGFyZ2V0LmMKQEAgLTcyLDcgKzcyLDkgQEAgc3Ry
dWN0IF9YRU5WQkRfVEFSR0VUIHsKICAgICAvLyBGcm9udGVuZCAoUmluZywgaW5jbHVkZXMgWGVu
QnVzIGludGVyZmFjZXMpCiAgICAgUFhFTlZCRF9GUk9OVEVORCAgICAgICAgICAgIEZyb250ZW5k
OwogICAgIFhFTkJVU19ERUJVR19JTlRFUkZBQ0UgICAgICBEZWJ1Z0ludGVyZmFjZTsKKyAgICBY
RU5CVVNfU1VTUEVORF9JTlRFUkZBQ0UgICAgU3VzcGVuZEludGVyZmFjZTsKICAgICBQWEVOQlVT
X0RFQlVHX0NBTExCQUNLICAgICAgRGVidWdDYWxsYmFjazsKKyAgICBQWEVOQlVTX1NVU1BFTkRf
Q0FMTEJBQ0sgICAgU3VzcGVuZENhbGxiYWNrOwogCiAgICAgLy8gU3RhdGUKICAgICBMT05HICAg
ICAgICAgICAgICAgICAgICAgICAgUGF1c2VkOwpAQCAtMTM1NSw4MSArMTM1Nyw2IEBAIFRhcmdl
dENvbXBsZXRlUmVzcG9uc2UoCiAgICAgfQogfQogCi1WT0lECi1UYXJnZXRQcmVSZXN1bWUoCi0g
ICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQKLSAgICApCi17Ci0gICAg
TElTVF9FTlRSWSAgICAgICAgICBMaXN0OwotCi0gICAgSW5pdGlhbGl6ZUxpc3RIZWFkKCZMaXN0
KTsKLQotICAgIC8vIHBvcCBhbGwgc3VibWl0dGVkIHJlcXVlc3RzLCBjbGVhbnVwIGFuZCBhZGQg
YXNzb2NpYXRlZCBTUkIgdG8gYSBsaXN0Ci0gICAgZm9yICg7OykgewotICAgICAgICBQWEVOVkJE
X1NSQkVYVCAgU3JiRXh0OwotICAgICAgICBQWEVOVkJEX1JFUVVFU1QgUmVxdWVzdDsKLSAgICAg
ICAgUExJU1RfRU5UUlkgICAgIEVudHJ5ID0gUXVldWVQb3AoJlRhcmdldC0+U3VibWl0dGVkUmVx
cyk7Ci0gICAgICAgIGlmIChFbnRyeSA9PSBOVUxMKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIFJlcXVlc3QgPSBDT05UQUlOSU5HX1JFQ09SRChFbnRyeSwgWEVOVkJEX1JFUVVFU1QsIEVu
dHJ5KTsKLSAgICAgICAgU3JiRXh0ID0gR2V0U3JiRXh0KFJlcXVlc3QtPlNyYik7Ci0KLSAgICAg
ICAgVGFyZ2V0UHV0UmVxdWVzdChUYXJnZXQsIFJlcXVlc3QpOwotCi0gICAgICAgIGlmIChJbnRl
cmxvY2tlZERlY3JlbWVudCgmU3JiRXh0LT5Db3VudCkgPT0gMCkgewotICAgICAgICAgICAgSW5z
ZXJ0VGFpbExpc3QoJkxpc3QsICZTcmJFeHQtPkVudHJ5KTsKLSAgICAgICAgfQotICAgIH0KLQot
ICAgIC8vIHBvcCBhbGwgcHJlcGFyZWQgcmVxdWVzdHMsIGNsZWFudXAgYW5kIGFkZCBhc3NvY2lh
dGVkIFNSQiB0byBhIGxpc3QKLSAgICBmb3IgKDs7KSB7Ci0gICAgICAgIFBYRU5WQkRfU1JCRVhU
ICBTcmJFeHQ7Ci0gICAgICAgIFBYRU5WQkRfUkVRVUVTVCBSZXF1ZXN0OwotICAgICAgICBQTElT
VF9FTlRSWSAgICAgRW50cnkgPSBRdWV1ZVBvcCgmVGFyZ2V0LT5QcmVwYXJlZFJlcXMpOwotICAg
ICAgICBpZiAoRW50cnkgPT0gTlVMTCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBSZXF1
ZXN0ID0gQ09OVEFJTklOR19SRUNPUkQoRW50cnksIFhFTlZCRF9SRVFVRVNULCBFbnRyeSk7Ci0g
ICAgICAgIFNyYkV4dCA9IEdldFNyYkV4dChSZXF1ZXN0LT5TcmIpOwotCi0gICAgICAgIFRhcmdl
dFB1dFJlcXVlc3QoVGFyZ2V0LCBSZXF1ZXN0KTsKLQotICAgICAgICBpZiAoSW50ZXJsb2NrZWRE
ZWNyZW1lbnQoJlNyYkV4dC0+Q291bnQpID09IDApIHsKLSAgICAgICAgICAgIEluc2VydFRhaWxM
aXN0KCZMaXN0LCAmU3JiRXh0LT5FbnRyeSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvLyBm
b3JlYWNoIFNSQiBpbiBsaXN0LCBwdXQgb24gc3RhcnQgb2YgRnJlc2hTcmJzCi0gICAgZm9yICg7
OykgewotICAgICAgICBQWEVOVkJEX1NSQkVYVCAgU3JiRXh0OwotICAgICAgICBQTElTVF9FTlRS
WSAgICAgRW50cnkgPSBSZW1vdmVUYWlsTGlzdCgmTGlzdCk7Ci0gICAgICAgIGlmIChFbnRyeSA9
PSAmTGlzdCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBTcmJFeHQgPSBDT05UQUlOSU5H
X1JFQ09SRChFbnRyeSwgWEVOVkJEX1NSQkVYVCwgRW50cnkpOwotCi0gICAgICAgIFF1ZXVlVW5Q
b3AoJlRhcmdldC0+RnJlc2hTcmJzLCAmU3JiRXh0LT5FbnRyeSk7Ci0gICAgfQotCi0gICAgLy8g
bm93IHRoZSBmaXJzdCBzZXQgb2YgcmVxdWVzdHMgcG9wcGVkIG9mZiBzdWJtaXR0ZWQgbGlzdCBp
cyB0aGUgbmV4dCBTUkIKLSAgICAvLyB0byBiZSBwb3BwZWQgb2ZmIHRoZSBmcmVzaCBsaXN0Ci19
Ci0KLVZPSUQKLVRhcmdldFBvc3RSZXN1bWUoCi0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAg
ICAgICAgICBUYXJnZXQKLSAgICApCi17Ci0gICAgS0lSUUwgICBJcnFsOwotCi0gICAgVmVyYm9z
ZSgiVGFyZ2V0WyVkXSA6ICVkIEZyZXNoIFNSQnNcbiIsIFRhcmdldEdldFRhcmdldElkKFRhcmdl
dCksIFF1ZXVlQ291bnQoJlRhcmdldC0+RnJlc2hTcmJzKSk7Ci0KLSAgICAvLyBjbGVhciBtaXNz
aW5nIGZsYWcKLSAgICBLZUFjcXVpcmVTcGluTG9jaygmVGFyZ2V0LT5Mb2NrLCAmSXJxbCk7Ci0g
ICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6ICVzICglcylcbiIsIFRhcmdldEdldFRhcmdldElkKFRh
cmdldCksIFRhcmdldC0+TWlzc2luZyA/ICJNSVNTSU5HIiA6ICJOT1RfTUlTU0lORyIsIFRhcmdl
dC0+UmVhc29uKTsKLSAgICBUYXJnZXQtPk1pc3NpbmcgPSBGQUxTRTsKLSAgICBUYXJnZXQtPlJl
YXNvbiA9IE5VTEw7Ci0gICAgS2VSZWxlYXNlU3BpbkxvY2soJlRhcmdldC0+TG9jaywgSXJxbCk7
Ci19Ci0KIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFNSQnMKIF9fY2hlY2tSZXR1cm4KQEAg
LTIyOTgsNiArMjIyNSw3NiBAQCBUYXJnZXREZWJ1Z0NhbGxiYWNrKAogICAgIFRhcmdldC0+U2Vn
c0dyYW50ZWQgPSBUYXJnZXQtPlNlZ3NCb3VuY2VkID0gMDsKIH0KIAorc3RhdGljIERFQ0xTUEVD
X05PSU5MSU5FIFZPSUQKK1RhcmdldFN1c3BlbmRDYWxsYmFjaygKKyAgICBJTiAgUFZPSUQgICAg
ICAgQXJndW1lbnQKKyAgICApCit7CisgICAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldCA9IEFyZ3Vt
ZW50OworICAgIExJU1RfRU5UUlkgICAgICBMaXN0OworCisgICAgSW5pdGlhbGl6ZUxpc3RIZWFk
KCZMaXN0KTsKKworICAgIC8vIHBvcCBhbGwgc3VibWl0dGVkIHJlcXVlc3RzLCBjbGVhbnVwIGFu
ZCBhZGQgYXNzb2NpYXRlZCBTUkIgdG8gYSBsaXN0CisgICAgZm9yICg7OykgeworICAgICAgICBQ
WEVOVkJEX1NSQkVYVCAgU3JiRXh0OworICAgICAgICBQWEVOVkJEX1JFUVVFU1QgUmVxdWVzdDsK
KyAgICAgICAgUExJU1RfRU5UUlkgICAgIEVudHJ5ID0gUXVldWVQb3AoJlRhcmdldC0+U3VibWl0
dGVkUmVxcyk7CisgICAgICAgIGlmIChFbnRyeSA9PSBOVUxMKQorICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIFJlcXVlc3QgPSBDT05UQUlOSU5HX1JFQ09SRChFbnRyeSwgWEVOVkJEX1JFUVVF
U1QsIEVudHJ5KTsKKyAgICAgICAgU3JiRXh0ID0gR2V0U3JiRXh0KFJlcXVlc3QtPlNyYik7CisK
KyAgICAgICAgVGFyZ2V0UHV0UmVxdWVzdChUYXJnZXQsIFJlcXVlc3QpOworCisgICAgICAgIGlm
IChJbnRlcmxvY2tlZERlY3JlbWVudCgmU3JiRXh0LT5Db3VudCkgPT0gMCkgeworICAgICAgICAg
ICAgSW5zZXJ0VGFpbExpc3QoJkxpc3QsICZTcmJFeHQtPkVudHJ5KTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIC8vIHBvcCBhbGwgcHJlcGFyZWQgcmVxdWVzdHMsIGNsZWFudXAgYW5kIGFkZCBh
c3NvY2lhdGVkIFNSQiB0byBhIGxpc3QKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIFBYRU5WQkRf
U1JCRVhUICBTcmJFeHQ7CisgICAgICAgIFBYRU5WQkRfUkVRVUVTVCBSZXF1ZXN0OworICAgICAg
ICBQTElTVF9FTlRSWSAgICAgRW50cnkgPSBRdWV1ZVBvcCgmVGFyZ2V0LT5QcmVwYXJlZFJlcXMp
OworICAgICAgICBpZiAoRW50cnkgPT0gTlVMTCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBSZXF1ZXN0ID0gQ09OVEFJTklOR19SRUNPUkQoRW50cnksIFhFTlZCRF9SRVFVRVNULCBFbnRy
eSk7CisgICAgICAgIFNyYkV4dCA9IEdldFNyYkV4dChSZXF1ZXN0LT5TcmIpOworCisgICAgICAg
IFRhcmdldFB1dFJlcXVlc3QoVGFyZ2V0LCBSZXF1ZXN0KTsKKworICAgICAgICBpZiAoSW50ZXJs
b2NrZWREZWNyZW1lbnQoJlNyYkV4dC0+Q291bnQpID09IDApIHsKKyAgICAgICAgICAgIEluc2Vy
dFRhaWxMaXN0KCZMaXN0LCAmU3JiRXh0LT5FbnRyeSk7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICAvLyBmb3JlYWNoIFNSQiBpbiBsaXN0LCBwdXQgb24gc3RhcnQgb2YgRnJlc2hTcmJzCisgICAg
Zm9yICg7OykgeworICAgICAgICBQWEVOVkJEX1NSQkVYVCAgU3JiRXh0OworICAgICAgICBQTElT
VF9FTlRSWSAgICAgRW50cnkgPSBSZW1vdmVUYWlsTGlzdCgmTGlzdCk7CisgICAgICAgIGlmIChF
bnRyeSA9PSAmTGlzdCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBTcmJFeHQgPSBDT05U
QUlOSU5HX1JFQ09SRChFbnRyeSwgWEVOVkJEX1NSQkVYVCwgRW50cnkpOworCisgICAgICAgIFF1
ZXVlVW5Qb3AoJlRhcmdldC0+RnJlc2hTcmJzLCAmU3JiRXh0LT5FbnRyeSk7CisgICAgfQorCisg
ICAgLy8gbm93IHRoZSBmaXJzdCBzZXQgb2YgcmVxdWVzdHMgcG9wcGVkIG9mZiBzdWJtaXR0ZWQg
bGlzdCBpcyB0aGUgbmV4dCBTUkIKKyAgICAvLyB0byBiZSBwb3BwZWQgb2ZmIHRoZSBmcmVzaCBs
aXN0CisKKyAgICBWZXJib3NlKCJUYXJnZXRbJWRdIDogJWQgRnJlc2ggU1JCc1xuIiwKKyAgICAg
ICAgICAgIFRhcmdldEdldFRhcmdldElkKFRhcmdldCksCisgICAgICAgICAgICBRdWV1ZUNvdW50
KCZUYXJnZXQtPkZyZXNoU3JicykpOworCisgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6ICVzICgl
cylcbiIsCisgICAgICAgICAgICBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLAorICAgICAgICAg
ICAgVGFyZ2V0LT5NaXNzaW5nID8gIk1JU1NJTkciIDogIk5PVF9NSVNTSU5HIiwKKyAgICAgICAg
ICAgIFRhcmdldC0+UmVhc29uKTsKKyAgICBUYXJnZXQtPk1pc3NpbmcgPSBGQUxTRTsKKyAgICBU
YXJnZXQtPlJlYXNvbiA9IE5VTEw7Cit9CisKIE5UU1RBVFVTCiBUYXJnZXREM1RvRDAoCiAgICAg
SU4gIFBYRU5WQkRfVEFSR0VUICBUYXJnZXQKQEAgLTIzMTMsNiArMjMxMCw4IEBAIFRhcmdldEQz
VG9EMCgKIAogICAgIEFkYXB0ZXJHZXREZWJ1Z0ludGVyZmFjZShUYXJnZXRHZXRBZGFwdGVyKFRh
cmdldCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZUYXJnZXQtPkRlYnVnSW50ZXJm
YWNlKTsKKyAgICBBZGFwdGVyR2V0U3VzcGVuZEludGVyZmFjZShUYXJnZXRHZXRBZGFwdGVyKFRh
cmdldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlRhcmdldC0+U3VzcGVuZElu
dGVyZmFjZSk7CiAKICAgICBzdGF0dXMgPSBYRU5CVVNfREVCVUcoQWNxdWlyZSwgJlRhcmdldC0+
RGVidWdJbnRlcmZhY2UpOwogICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQpAQCAtMjMyNywy
MSArMjMyNiw0NiBAQCBUYXJnZXREM1RvRDAoCiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykp
CiAgICAgICAgIGdvdG8gZmFpbDI7CiAKLSAgICBzdGF0dXMgPSBGcm9udGVuZEQzVG9EMChUYXJn
ZXQtPkZyb250ZW5kKTsKKyAgICBzdGF0dXMgPSBYRU5CVVNfU1VTUEVORChBY3F1aXJlLCAmVGFy
Z2V0LT5TdXNwZW5kSW50ZXJmYWNlKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKICAg
ICAgICAgZ290byBmYWlsMzsKIAotICAgIHN0YXR1cyA9IEZyb250ZW5kU2V0U3RhdGUoVGFyZ2V0
LT5Gcm9udGVuZCwgWEVOVkJEX0VOQUJMRUQpOworICAgIHN0YXR1cyA9IFhFTkJVU19TVVNQRU5E
KFJlZ2lzdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICZUYXJnZXQtPlN1c3BlbmRJ
bnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1VTUEVORF9DQUxMQkFDS19M
QVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldFN1c3BlbmRDYWxsYmFjaywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJlRhcmdldC0+U3VzcGVuZENhbGxiYWNrKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Mo
c3RhdHVzKSkKICAgICAgICAgZ290byBmYWlsNDsKIAorICAgIHN0YXR1cyA9IEZyb250ZW5kRDNU
b0QwKFRhcmdldC0+RnJvbnRlbmQpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAg
ICAgICBnb3RvIGZhaWw1OworCisgICAgc3RhdHVzID0gRnJvbnRlbmRTZXRTdGF0ZShUYXJnZXQt
PkZyb250ZW5kLCBYRU5WQkRfRU5BQkxFRCk7CisgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykp
CisgICAgICAgIGdvdG8gZmFpbDY7CisKICAgICBfX1RhcmdldFVucGF1c2VEYXRhUGF0aChUYXJn
ZXQpOwogCiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCitmYWlsNjoKKyAgICBFcnJvcigi
ZmFpbDZcbiIpOworICAgIEZyb250ZW5kRDBUb0QzKFRhcmdldC0+RnJvbnRlbmQpOworCitmYWls
NToKKyAgICBFcnJvcigiZmFpbDVcbiIpOworICAgIFhFTkJVU19TVVNQRU5EKERlcmVnaXN0ZXIs
CisgICAgICAgICAgICAgICAgICAgJlRhcmdldC0+U3VzcGVuZEludGVyZmFjZSwKKyAgICAgICAg
ICAgICAgICAgICBUYXJnZXQtPlN1c3BlbmRDYWxsYmFjayk7CisgICAgVGFyZ2V0LT5TdXNwZW5k
Q2FsbGJhY2sgPSBOVUxMOworCiBmYWlsNDoKICAgICBFcnJvcigiZmFpbDRcbiIpOwotICAgIEZy
b250ZW5kRDBUb0QzKFRhcmdldC0+RnJvbnRlbmQpOworICAgIFhFTkJVU19TVVNQRU5EKFJlbGVh
c2UsCisgICAgICAgICAgICAgICAgICAgJlRhcmdldC0+U3VzcGVuZEludGVyZmFjZSk7CiAKIGZh
aWwzOgogICAgIEVycm9yKCJmYWlsM1xuIik7CkBAIC0yMzU4LDYgKzIzODIsOCBAQCBmYWlsMjoK
IGZhaWwxOgogICAgIEVycm9yKCJGYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7CiAKKyAgICBSdGxa
ZXJvTWVtb3J5KCZUYXJnZXQtPlN1c3BlbmRJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgICBz
aXplb2YoWEVOQlVTX1NVU1BFTkRfSU5URVJGQUNFKSk7CiAgICAgUnRsWmVyb01lbW9yeSgmVGFy
Z2V0LT5EZWJ1Z0ludGVyZmFjZSwKICAgICAgICAgICAgICAgICAgIHNpemVvZihYRU5CVVNfREVC
VUdfSU5URVJGQUNFKSk7CiAgICAgVGFyZ2V0LT5EZXZpY2VQb3dlclN0YXRlID0gUG93ZXJEZXZp
Y2VEMzsKQEAgLTIzODMsNiArMjQwOSwxNCBAQCBUYXJnZXREMFRvRDMoCiAKICAgICBGcm9udGVu
ZEQwVG9EMyhUYXJnZXQtPkZyb250ZW5kKTsKIAorICAgIFhFTkJVU19TVVNQRU5EKERlcmVnaXN0
ZXIsCisgICAgICAgICAgICAgICAgICAgJlRhcmdldC0+U3VzcGVuZEludGVyZmFjZSwKKyAgICAg
ICAgICAgICAgICAgICBUYXJnZXQtPlN1c3BlbmRDYWxsYmFjayk7CisgICAgVGFyZ2V0LT5TdXNw
ZW5kQ2FsbGJhY2sgPSBOVUxMOworCisgICAgWEVOQlVTX1NVU1BFTkQoUmVsZWFzZSwKKyAgICAg
ICAgICAgICAgICAgICAmVGFyZ2V0LT5TdXNwZW5kSW50ZXJmYWNlKTsKKwogICAgIFhFTkJVU19E
RUJVRyhEZXJlZ2lzdGVyLAogICAgICAgICAgICAgICAgICAmVGFyZ2V0LT5EZWJ1Z0ludGVyZmFj
ZSwKICAgICAgICAgICAgICAgICAgVGFyZ2V0LT5EZWJ1Z0NhbGxiYWNrKTsKQEAgLTIzOTEsNiAr
MjQyNSw4IEBAIFRhcmdldEQwVG9EMygKICAgICBYRU5CVVNfREVCVUcoUmVsZWFzZSwKICAgICAg
ICAgICAgICAgICAgJlRhcmdldC0+RGVidWdJbnRlcmZhY2UpOwogCisgICAgUnRsWmVyb01lbW9y
eSgmVGFyZ2V0LT5TdXNwZW5kSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgc2l6ZW9mKFhF
TkJVU19TVVNQRU5EX0lOVEVSRkFDRSkpOwogICAgIFJ0bFplcm9NZW1vcnkoJlRhcmdldC0+RGVi
dWdJbnRlcmZhY2UsCiAgICAgICAgICAgICAgICAgICBzaXplb2YoWEVOQlVTX0RFQlVHX0lOVEVS
RkFDRSkpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC90YXJnZXQuaCBiL3NyYy94ZW52YmQv
dGFyZ2V0LmgKaW5kZXggMzA3MzhmYy4uYWMxZGUxMSAxMDA2NDQKLS0tIGEvc3JjL3hlbnZiZC90
YXJnZXQuaAorKysgYi9zcmMveGVudmJkL3RhcmdldC5oCkBAIC0xMjYsMTYgKzEyNiw2IEBAIFRh
cmdldENvbXBsZXRlUmVzcG9uc2UoCiAgICAgKTsKIAogZXh0ZXJuIFZPSUQKLVRhcmdldFByZVJl
c3VtZSgKLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldAotICAgICk7
Ci0KLWV4dGVybiBWT0lECi1UYXJnZXRQb3N0UmVzdW1lKAotICAgIF9faW4gUFhFTlZCRF9UQVJH
RVQgICAgICAgICAgICAgVGFyZ2V0Ci0gICAgKTsKLQotZXh0ZXJuIFZPSUQKIFRhcmdldFByZXBh
cmVJbygKICAgICBJTiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldCwKICAgICBJTiAgUFhFTlZCRF9T
UkJFWFQgIFNyYkV4dAotLSAKMi44LjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBs
aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4v
bWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Fri Jun 23 12:50:17 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 23 Jun 2017 12:50:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dOO2T-0001Jx-7t; Fri, 23 Jun 2017 12:50:17 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=340501eb8=owen.smith@citrix.com>)
 id 1dOO2R-0001Gw-Tr
 for win-pv-devel@lists.xenproject.org; Fri, 23 Jun 2017 12:50:16 +0000
Received: from [85.158.139.211] by server-11.bemta-5.messagelabs.com id
 41/66-01733-78E0D495; Fri, 23 Jun 2017 12:50:15 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmplkeJIrShJLcpLzFFi42JxWrohUreNzzf
 S4MJsSYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCacW7WPaaCixsYK872/WFuYJzSxNjFyMkhIeAv
 seTkdDCbTUBW4uPKz8wgtoiAusS+z1uZQGxmATWJ6/u7WEFsYQENiWXNb9hAbBYBVYkdE26wg
 9i8AlYSd48cYYeYKScxefElsJmcAtYS+6ZsYeli5OAQAqpZuLoCJCwkoCTxbfELZohWQYmTM5
 +wQKySkDj44gXzBEbeWUhSs5CkFjAyrWLUKE4tKkst0jW00EsqykzPKMlNzMzRNTQw1ctNLS5
 OTE/NSUwq1kvOz93ECAweBiDYwdi03fMQoyQHk5Iob+wZn0ghvqT8lMqMxOKM+KLSnNTiQ4wy
 HBxKErxFvL6RQoJFqempFWmZOcAwhklLcPAoifBu5wBK8xYXJOYWZ6ZDpE4xKkqJ8yaD9AmAJ
 DJK8+DaYLFziVFWSpiXEegQIZ6C1KLczBJU+VeM4hyMSsK8uSBTeDLzSuCmvwJazAS0eMYaH5
 DFJYkIKakGxkkrov7dU/vx4YPP232Swo4vwjziVHdunLh9hfenb+0HeMOsiwxe61/7c2nd1z0
 MZ7XuKaXq/X7y6kN4l173xYvPbPd4RSy/PJ31T7e30f03n38p//motbXhBNu56/u8On7Udtlm
 7L+d1C+dqt8a7yQQsmC5gmw0k/Zllike1Q2JZkUbN06WCVViKc5INNRiLipOBADLd0VLmAIAA
 A==
X-Env-Sender: prvs=340501eb8=owen.smith@citrix.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1498222209!84176866!5
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29244 invoked from network); 23 Jun 2017 12:50:14 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Jun 2017 12:50:14 -0000
X-IronPort-AV: E=Sophos;i="5.39,378,1493683200"; d="scan'208";a="429138142"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Fri, 23 Jun 2017 13:49:14 +0100
Message-ID: <20170623124917.13956-8-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
In-Reply-To: <20170623124917.13956-1-owen.smith@citrix.com>
References: <20170623124917.13956-1-owen.smith@citrix.com>
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 07/10] Refactor target.c
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKKiBBZGRzIHByb3BlcnR5
IGFjY2Vzc29ycwoqIE1vdmVzIFBOUCBTUkIgaGFuZGxlciB0byBhZGFwdGVyLmMKKiBTdHJlYW1s
aW5lcyBoZWFkZXIKClNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4
LmNvbT4KLS0tCiBzcmMveGVudmJkL2FkYXB0ZXIuYyAgfCAgMjcgKysrLQogc3JjL3hlbnZiZC9m
cm9udGVuZC5jIHwgICAxICsKIHNyYy94ZW52YmQvZ3JhbnRlci5jICB8ICAgMSArCiBzcmMveGVu
dmJkL3RhcmdldC5jICAgfCAzMzggKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIHNyYy94ZW52YmQvdGFyZ2V0LmggICB8IDEwMiArKysrKysrLS0tLS0t
LS0KIDUgZmlsZXMgY2hhbmdlZCwgMjA1IGluc2VydGlvbnMoKyksIDI2NCBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9zcmMveGVudmJkL2FkYXB0ZXIuYyBiL3NyYy94ZW52YmQvYWRhcHRlci5j
CmluZGV4IGIwYTczNjUuLjY1OWRkMjIgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52YmQvYWRhcHRlci5j
CisrKyBiL3NyYy94ZW52YmQvYWRhcHRlci5jCkBAIC0xNzU5LDEzICsxNzU5LDI4IEBAIF9fQWRh
cHRlclNyYlBucCgKICAgICBJTiAgUFNDU0lfUE5QX1JFUVVFU1RfQkxPQ0sgU3JiCiAgICAgKQog
ewotICAgIGlmICghKFNyYi0+U3JiUG5QRmxhZ3MgJiBTUkJfUE5QX0ZMQUdTX0FEQVBURVJfUkVR
VUVTVCkpIHsKLSAgICAgICAgUFhFTlZCRF9UQVJHRVQgICAgICAgICAgVGFyZ2V0OworICAgIFBY
RU5WQkRfVEFSR0VUICAgICAgICAgICAgICBUYXJnZXQ7CiAKLSAgICAgICAgVGFyZ2V0ID0gQWRh
cHRlckdldFRhcmdldChBZGFwdGVyLCBTcmItPlRhcmdldElkKTsKLSAgICAgICAgaWYgKFRhcmdl
dCkgewotICAgICAgICAgICAgVGFyZ2V0U3JiUG5wKFRhcmdldCwgU3JiKTsKLSAgICAgICAgfQor
ICAgIGlmIChTcmItPlNyYlBuUEZsYWdzICYgU1JCX1BOUF9GTEFHU19BREFQVEVSX1JFUVVFU1Qp
CisgICAgICAgIHJldHVybjsKKworICAgIFRhcmdldCA9IEFkYXB0ZXJHZXRUYXJnZXQoQWRhcHRl
ciwgU3JiLT5UYXJnZXRJZCk7CisgICAgaWYgKFRhcmdldCA9PSBOVUxMKQorICAgICAgICByZXR1
cm47CisKKyAgICBzd2l0Y2ggKFNyYi0+UG5QQWN0aW9uKSB7CisgICAgY2FzZSBTdG9yUXVlcnlD
YXBhYmlsaXRpZXM6IHsKKyAgICAgICAgUFNUT1JfREVWSUNFX0NBUEFCSUxJVElFUyBDYXBzID0g
U3JiLT5EYXRhQnVmZmVyOworCisgICAgICAgIENhcHMtPlJlbW92YWJsZSA9IFRhcmdldEdldFJl
bW92YWJsZShUYXJnZXQpOworICAgICAgICBDYXBzLT5FamVjdFN1cHBvcnRlZCA9IFRhcmdldEdl
dFJlbW92YWJsZShUYXJnZXQpOworICAgICAgICBDYXBzLT5TdXJwcmlzZVJlbW92YWxPSyA9IFRh
cmdldEdldFN1cnByaXNlUmVtb3ZhYmxlKFRhcmdldCk7CisgICAgICAgIENhcHMtPlVuaXF1ZUlE
ID0gMTsKKworICAgICAgICB9IGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9zcmMveGVudmJkL2Zyb250ZW5kLmMgYi9zcmMveGVu
dmJkL2Zyb250ZW5kLmMKaW5kZXggNzliOGY4ZC4uZDU2ZmM4NCAxMDA2NDQKLS0tIGEvc3JjL3hl
bnZiZC9mcm9udGVuZC5jCisrKyBiL3NyYy94ZW52YmQvZnJvbnRlbmQuYwpAQCAtNDUsNiArNDUs
NyBAQAogI2luY2x1ZGUgInRocmVhZC5oIgogI2luY2x1ZGUgPHN0b3JlX2ludGVyZmFjZS5oPgog
I2luY2x1ZGUgPHN1c3BlbmRfaW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8bnRzdHJzYWZlLmg+CiAK
ICNpbmNsdWRlIDxzdGRsaWIuaD4KIApkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9ncmFudGVyLmMg
Yi9zcmMveGVudmJkL2dyYW50ZXIuYwppbmRleCBlMmI2NTVlLi5mZjdhNTc1IDEwMDY0NAotLS0g
YS9zcmMveGVudmJkL2dyYW50ZXIuYworKysgYi9zcmMveGVudmJkL2dyYW50ZXIuYwpAQCAtMzYs
NiArMzYsNyBAQAogI2luY2x1ZGUgImRlYnVnLmgiCiAjaW5jbHVkZSAidGhyZWFkLmgiCiAjaW5j
bHVkZSA8Z250dGFiX2ludGVyZmFjZS5oPgorI2luY2x1ZGUgPG50c3Ryc2FmZS5oPgogCiBzdHJ1
Y3QgX1hFTlZCRF9HUkFOVEVSIHsKICAgICBQWEVOVkJEX0ZST05URU5EICAgICAgICAgICAgICAg
IEZyb250ZW5kOwpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC90YXJnZXQuYyBiL3NyYy94ZW52YmQv
dGFyZ2V0LmMKaW5kZXggZGNkODdjOS4uNGU1OWU4MCAxMDA2NDQKLS0tIGEvc3JjL3hlbnZiZC90
YXJnZXQuYworKysgYi9zcmMveGVudmJkL3RhcmdldC5jCkBAIC00MDMsMzYgKzQwMyw2IEBAIF9f
VGFyZ2V0UmVzdG9yZURldmljZVBucFN0YXRlKAogICAgIH0KIH0KIAotLy89PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLy8gUXVlcnkgTWV0aG9kcwotRk9SQ0VJTkxJTkUgVUxPTkcKLVRhcmdldEdldFRh
cmdldElkKAotICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0Ci0gICAg
KQotewotICAgIEFTU0VSVDNQKFRhcmdldCwgIT0sIE5VTEwpOwotICAgIHJldHVybiBGcm9udGVu
ZEdldFRhcmdldElkKFRhcmdldC0+RnJvbnRlbmQpOwotfQotCi1VTE9ORwotVGFyZ2V0R2V0RGV2
aWNlSWQoCi0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQKLSAgICAp
Ci17Ci0gICAgQVNTRVJUM1AoVGFyZ2V0LCAhPSwgTlVMTCk7Ci0gICAgcmV0dXJuIEZyb250ZW5k
R2V0RGV2aWNlSWQoVGFyZ2V0LT5Gcm9udGVuZCk7Ci19Ci0KLV9fY2hlY2tSZXR1cm4KLUZPUkNF
SU5MSU5FIFBERVZJQ0VfT0JKRUNUCi1UYXJnZXRHZXREZXZpY2VPYmplY3QoCi0gICAgX19pbiBQ
WEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQKLSAgICApCi17Ci0gICAgQVNTRVJUM1Ao
VGFyZ2V0LCAhPSwgTlVMTCk7Ci0gICAgcmV0dXJuIFRhcmdldC0+RGV2aWNlT2JqZWN0OwotfQot
CiBGT1JDRUlOTElORSBWT0lECiBUYXJnZXRTZXREZXZpY2VPYmplY3QoCiAgICAgX19pbiBQWEVO
VkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQsCkBAIC00NjEsMTUgKzQzMSw2IEBAIFRhcmdl
dElzUGF1c2VkKAogICAgIHJldHVybiBQYXVzZWQ7CiB9CiAKLV9fY2hlY2tSZXR1cm4KLUZPUkNF
SU5MSU5FIFBYRU5WQkRfQURBUFRFUgotVGFyZ2V0R2V0QWRhcHRlcigKLSAgICBfX2luIFBYRU5W
QkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldAotICAgICkKLXsKLSAgICByZXR1cm4gVGFyZ2V0
LT5BZGFwdGVyOwotfQotCiBzdGF0aWMgRk9SQ0VJTkxJTkUgVUxPTkcKIFRhcmdldFNlY3RvclNp
emUoCiAgICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQKQEAgLTIwOTEs
NDQgKzIwNTIsNTUgQEAgVGFyZ2V0U2h1dGRvd24oCiB9CiAKIFZPSUQKLVRhcmdldFNyYlBucCgK
LSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldCwKLSAgICBfX2luIFBT
Q1NJX1BOUF9SRVFVRVNUX0JMT0NLIFNyYgorVGFyZ2V0SXNzdWVEZXZpY2VFamVjdCgKKyAgICBJ
TiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldCwKKyAgICBJTiAgY29uc3QgQ0hBUiAgICAgICpSZWFz
b24KICAgICApCiB7Ci0gICAgc3dpdGNoIChTcmItPlBuUEFjdGlvbikgewotICAgIGNhc2UgU3Rv
clF1ZXJ5Q2FwYWJpbGl0aWVzOiB7Ci0gICAgICAgIFBTVE9SX0RFVklDRV9DQVBBQklMSVRJRVMg
RGV2aWNlQ2FwcyA9IFNyYi0+RGF0YUJ1ZmZlcjsKLSAgICAgICAgUFhFTlZCRF9DQVBTICAgIENh
cHMgPSBGcm9udGVuZEdldENhcHMoVGFyZ2V0LT5Gcm9udGVuZCk7Ci0KLSAgICAgICAgaWYgKENh
cHMtPlJlbW92YWJsZSkKLSAgICAgICAgICAgIERldmljZUNhcHMtPlJlbW92YWJsZSA9IDE7Ci0g
ICAgICAgIGlmIChDYXBzLT5SZW1vdmFibGUpCi0gICAgICAgICAgICBEZXZpY2VDYXBzLT5FamVj
dFN1cHBvcnRlZCA9IDE7Ci0gICAgICAgIGlmIChDYXBzLT5TdXJwcmlzZVJlbW92YWJsZSkKLSAg
ICAgICAgICAgIERldmljZUNhcHMtPlN1cnByaXNlUmVtb3ZhbE9LID0gMTsKLQotICAgICAgICBE
ZXZpY2VDYXBzLT5VbmlxdWVJRCA9IDE7CisgICAgS0lSUUwgICAgICAgICAgICAgICBJcnFsOwor
ICAgIEJPT0xFQU4gICAgICAgICAgICAgRG9FamVjdCA9IEZBTFNFOwogCi0gICAgICAgIH0gYnJl
YWs7CisgICAgS2VBY3F1aXJlU3BpbkxvY2soJlRhcmdldC0+TG9jaywgJklycWwpOworICAgIGlm
IChUYXJnZXQtPkRldmljZU9iamVjdCkgeworICAgICAgICBEb0VqZWN0ID0gVFJVRTsKKyAgICAg
ICAgVGFyZ2V0LT5FamVjdFJlcXVlc3RlZCA9IFRSVUU7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
VGFyZ2V0LT5FamVjdFBlbmRpbmcgPSBUUlVFOworICAgIH0KKyAgICBLZVJlbGVhc2VTcGluTG9j
aygmVGFyZ2V0LT5Mb2NrLCBJcnFsKTsKIAotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGJyZWFrOwor
ICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBFamVjdGluZyAoJXMgLSAlcylcbiIsCisgICAgICAg
ICAgICBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLAorICAgICAgICAgICAgRG9FamVjdCA/ICJO
b3ciIDogIk5leHQgUG5QIElSUCIsCisgICAgICAgICAgICBSZWFzb24pOworICAgIGlmICghVGFy
Z2V0LT5Xcml0dGVuRWplY3RlZCkgeworICAgICAgICBUYXJnZXQtPldyaXR0ZW5FamVjdGVkID0g
VFJVRTsKKyAgICAgICAgRnJvbnRlbmRTdG9yZVdyaXRlRnJvbnRlbmQoVGFyZ2V0LT5Gcm9udGVu
ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVqZWN0ZWQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMSIpOworICAgIH0KKyAgICBpZiAoRG9FamVj
dCkgeworICAgICAgICBWZXJib3NlKCJUYXJnZXRbJWRdIDogSW9SZXF1ZXN0RGV2aWNlRWplY3Qo
MHglcClcbiIsCisgICAgICAgICAgICAgICAgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwKKyAg
ICAgICAgICAgICAgICBUYXJnZXQtPkRldmljZU9iamVjdCk7CisgICAgICAgIElvUmVxdWVzdERl
dmljZUVqZWN0KFRhcmdldC0+RGV2aWNlT2JqZWN0KTsKKyAgICB9IGVsc2UgeworICAgICAgICBW
ZXJib3NlKCJUYXJnZXRbJWRdIDogVHJpZ2dlcmluZyBCdXNDaGFuZ2VEZXRlY3RlZCB0byBkZXRl
Y3QgZGV2aWNlXG4iLAorICAgICAgICAgICAgICAgIFRhcmdldEdldFRhcmdldElkKFRhcmdldCkp
OworICAgICAgICBBZGFwdGVyVGFyZ2V0TGlzdENoYW5nZWQoVGFyZ2V0R2V0QWRhcHRlcihUYXJn
ZXQpKTsKICAgICB9CiB9CiAKLS8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS8vIFBuUCBIYW5kbGVy
CiBzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAogX19UYXJnZXREZXZpY2VVc2FnZU5vdGlmaWNhdGlv
bigKLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldCwKLSAgICBfX2lu
IFBJUlAgICAgICAgICAgICAgICAgICAgIElycAorICAgIElOICBQWEVOVkJEX1RBUkdFVCAgICAg
ICAgICAgICAgVGFyZ2V0LAorICAgIElOICBQSVJQICAgICAgICAgICAgICAgICAgICAgICAgSXJw
CiAgICAgKQogewotICAgIFBJT19TVEFDS19MT0NBVElPTiAgICAgIFN0YWNrTG9jYXRpb247Ci0g
ICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgVmFsdWU7CisgICAgUElPX1NUQUNLX0xPQ0FUSU9O
ICAgICAgICAgICAgICBTdGFja0xvY2F0aW9uOworICAgIEJPT0xFQU4gICAgICAgICAgICAgICAg
ICAgICAgICAgVmFsdWU7CiAgICAgREVWSUNFX1VTQUdFX05PVElGSUNBVElPTl9UWVBFICBUeXBl
OwotICAgIFBYRU5WQkRfQ0FQUyAgICAgICAgICAgIENhcHMgPSBGcm9udGVuZEdldENhcHMoVGFy
Z2V0LT5Gcm9udGVuZCk7CisgICAgUFhFTlZCRF9DQVBTICAgICAgICAgICAgICAgICAgICBDYXBz
ID0gRnJvbnRlbmRHZXRDYXBzKFRhcmdldC0+RnJvbnRlbmQpOwogCiAgICAgU3RhY2tMb2NhdGlv
biA9IElvR2V0Q3VycmVudElycFN0YWNrTG9jYXRpb24oSXJwKTsKICAgICBWYWx1ZSA9IFN0YWNr
TG9jYXRpb24tPlBhcmFtZXRlcnMuVXNhZ2VOb3RpZmljYXRpb24uSW5QYXRoOwpAQCAtMjE2MSw3
ICsyMTMzLDcgQEAgX19UYXJnZXREZXZpY2VVc2FnZU5vdGlmaWNhdGlvbigKIAogc3RhdGljIEZP
UkNFSU5MSU5FIFZPSUQKIF9fVGFyZ2V0Q2hlY2tFamVjdFBlbmRpbmcoCi0gICAgX19pbiBQWEVO
VkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQKKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgIFRh
cmdldAogICAgICkKIHsKICAgICBLSVJRTCAgICAgICAgICAgICAgIElycWw7CkBAIC0yMTc2LDE0
ICsyMTQ4LDE2IEBAIF9fVGFyZ2V0Q2hlY2tFamVjdFBlbmRpbmcoCiAgICAgS2VSZWxlYXNlU3Bp
bkxvY2soJlRhcmdldC0+TG9jaywgSXJxbCk7CiAKICAgICBpZiAoRWplY3RQZW5kaW5nKSB7Ci0g
ICAgICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBJb1JlcXVlc3REZXZpY2VFamVjdCgweCVwKVxu
IiwgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwgVGFyZ2V0LT5EZXZpY2VPYmplY3QpOworICAg
ICAgICBWZXJib3NlKCJUYXJnZXRbJWRdIDogSW9SZXF1ZXN0RGV2aWNlRWplY3QoMHglcClcbiIs
CisgICAgICAgICAgICAgICAgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwKKyAgICAgICAgICAg
ICAgICBUYXJnZXQtPkRldmljZU9iamVjdCk7CiAgICAgICAgIElvUmVxdWVzdERldmljZUVqZWN0
KFRhcmdldC0+RGV2aWNlT2JqZWN0KTsKICAgICB9CiB9CiAKIHN0YXRpYyBGT1JDRUlOTElORSBW
T0lECiBfX1RhcmdldENoZWNrRWplY3RGYWlsZWQoCi0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAg
ICAgICAgICAgICBUYXJnZXQKKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldAogICAgICkK
IHsKICAgICBLSVJRTCAgICAgICAgICAgICAgIElycWw7CkBAIC0yMTk3LDE0ICsyMTcxLDE3IEBA
IF9fVGFyZ2V0Q2hlY2tFamVjdEZhaWxlZCgKICAgICBLZVJlbGVhc2VTcGluTG9jaygmVGFyZ2V0
LT5Mb2NrLCBJcnFsKTsKIAogICAgIGlmIChFamVjdEZhaWxlZCkgewotICAgICAgICBFcnJvcigi
VGFyZ2V0WyVkXSA6IFVucGx1ZyBmYWlsZWQgZHVlIHRvIG9wZW4gaGFuZGxlKHMpIVxuIiwgVGFy
Z2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSk7Ci0gICAgICAgIEZyb250ZW5kU3RvcmVXcml0ZUZyb250
ZW5kKFRhcmdldC0+RnJvbnRlbmQsICJlcnJvciIsICJVbnBsdWcgZmFpbGVkIGR1ZSB0byBvcGVu
IGhhbmRsZShzKSEiKTsKKyAgICAgICAgRXJyb3IoIlRhcmdldFslZF0gOiBVbnBsdWcgZmFpbGVk
IGR1ZSB0byBvcGVuIGhhbmRsZShzKSFcbiIsCisgICAgICAgICAgICAgIFRhcmdldEdldFRhcmdl
dElkKFRhcmdldCkpOworICAgICAgICBGcm9udGVuZFN0b3JlV3JpdGVGcm9udGVuZChUYXJnZXQt
PkZyb250ZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXJyb3IiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5wbHVnIGZhaWxlZCBkdWUgdG8g
b3BlbiBoYW5kbGUocykhIik7CiAgICAgfQogfQogCiBzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAog
X19UYXJnZXRSZW1vdmVEZXZpY2UoCi0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAg
ICBUYXJnZXQKKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldAogICAgICkKIHsKICAgICBU
YXJnZXREMFRvRDMoVGFyZ2V0KTsKQEAgLTIyMTIsMjEgKzIxODksMjAgQEAgX19UYXJnZXRSZW1v
dmVEZXZpY2UoCiAgICAgc3dpdGNoIChUYXJnZXRHZXREZXZpY2VQbnBTdGF0ZShUYXJnZXQpKSB7
CiAgICAgY2FzZSBTdXJwcmlzZVJlbW92ZVBlbmRpbmc6CiAgICAgICAgIFRhcmdldFNldE1pc3Np
bmcoVGFyZ2V0LCAiU3VycHJpc2UgUmVtb3ZlIik7Ci0gICAgICAgIFRhcmdldFNldERldmljZVBu
cFN0YXRlKFRhcmdldCwgRGVsZXRlZCk7Ci0gICAgICAgIEFkYXB0ZXJUYXJnZXRMaXN0Q2hhbmdl
ZChUYXJnZXRHZXRBZGFwdGVyKFRhcmdldCkpOwogICAgICAgICBicmVhazsKIAogICAgIGRlZmF1
bHQ6CiAgICAgICAgIFRhcmdldFNldE1pc3NpbmcoVGFyZ2V0LCAiUmVtb3ZlZCIpOwotICAgICAg
ICBUYXJnZXRTZXREZXZpY2VQbnBTdGF0ZShUYXJnZXQsIERlbGV0ZWQpOwotICAgICAgICBBZGFw
dGVyVGFyZ2V0TGlzdENoYW5nZWQoVGFyZ2V0R2V0QWRhcHRlcihUYXJnZXQpKTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQorCisgICAgVGFyZ2V0U2V0RGV2aWNlUG5wU3RhdGUoVGFyZ2V0LCBEZWxl
dGVkKTsKKyAgICBBZGFwdGVyVGFyZ2V0TGlzdENoYW5nZWQoVGFyZ2V0R2V0QWRhcHRlcihUYXJn
ZXQpKTsKIH0KIAogc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQKIF9fVGFyZ2V0RWplY3QoCi0gICAg
X19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQKKyAgICBJTiAgUFhFTlZCRF9U
QVJHRVQgIFRhcmdldAogICAgICkKIHsKICAgICBUYXJnZXRTZXRNaXNzaW5nKFRhcmdldCwgIkVq
ZWN0ZWQiKTsKQEAgLTIyMzQsMTkgKzIyMTAsMjAgQEAgX19UYXJnZXRFamVjdCgKICAgICBBZGFw
dGVyVGFyZ2V0TGlzdENoYW5nZWQoVGFyZ2V0R2V0QWRhcHRlcihUYXJnZXQpKTsKIH0KIAotX19j
aGVja1JldHVybgogTlRTVEFUVVMKIFRhcmdldERpc3BhdGNoUG5wKAotICAgIF9faW4gUFhFTlZC
RF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0LAotICAgIF9faW4gUERFVklDRV9PQkpFQ1QgICAg
ICAgICAgRGV2aWNlT2JqZWN0LAotICAgIF9faW4gUElSUCAgICAgICAgICAgICAgICAgICAgSXJw
CisgICAgSU4gIFBYRU5WQkRfVEFSR0VUICBUYXJnZXQsCisgICAgSU4gIFBERVZJQ0VfT0JKRUNU
ICBEZXZpY2VPYmplY3QsCisgICAgSU4gIFBJUlAgICAgICAgICAgICBJcnAKICAgICApCiB7Ci0g
ICAgUElPX1NUQUNLX0xPQ0FUSU9OICBTdGFjayA9IElvR2V0Q3VycmVudElycFN0YWNrTG9jYXRp
b24oSXJwKTsKKyAgICBQSU9fU1RBQ0tfTE9DQVRJT04gIFN0YWNrTG9jYXRpb247CisKKyAgICBT
dGFja0xvY2F0aW9uID0gSW9HZXRDdXJyZW50SXJwU3RhY2tMb2NhdGlvbihJcnApOwogCiAgICAg
X19UYXJnZXRDaGVja0VqZWN0UGVuZGluZyhUYXJnZXQpOwogCi0gICAgc3dpdGNoIChTdGFjay0+
TWlub3JGdW5jdGlvbikgeworICAgIHN3aXRjaCAoU3RhY2tMb2NhdGlvbi0+TWlub3JGdW5jdGlv
bikgewogICAgIGNhc2UgSVJQX01OX1NUQVJUX0RFVklDRToKICAgICAgICAgKFZPSUQpIFRhcmdl
dEQzVG9EMChUYXJnZXQpOwogICAgICAgICBUYXJnZXRTZXREZXZpY2VQbnBTdGF0ZShUYXJnZXQs
IFN0YXJ0ZWQpOwpAQCAtMjI5Niw2NiArMjI3MywyOSBAQCBUYXJnZXREaXNwYXRjaFBucCgKICAg
ICByZXR1cm4gRHJpdmVyRGlzcGF0Y2hQbnAoRGV2aWNlT2JqZWN0LCBJcnApOwogfQogCi1fX2Ry
dl9tYXhJUlFMKERJU1BBVENIX0xFVkVMKQotVk9JRAotVGFyZ2V0SXNzdWVEZXZpY2VFamVjdCgK
LSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldCwKLSAgICBfX2luIF9f
bnVsbHRlcm1pbmF0ZWQgY29uc3QgQ0hBUiogUmVhc29uCi0gICAgKQotewotICAgIEtJUlFMICAg
ICAgIElycWw7Ci0gICAgQk9PTEVBTiAgICAgRG9FamVjdCA9IEZBTFNFOwotCi0gICAgS2VBY3F1
aXJlU3BpbkxvY2soJlRhcmdldC0+TG9jaywgJklycWwpOwotICAgIGlmIChUYXJnZXQtPkRldmlj
ZU9iamVjdCkgewotICAgICAgICBEb0VqZWN0ID0gVFJVRTsKLSAgICAgICAgVGFyZ2V0LT5FamVj
dFJlcXVlc3RlZCA9IFRSVUU7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgVGFyZ2V0LT5FamVjdFBl
bmRpbmcgPSBUUlVFOwotICAgIH0KLSAgICBLZVJlbGVhc2VTcGluTG9jaygmVGFyZ2V0LT5Mb2Nr
LCBJcnFsKTsKLQotICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBFamVjdGluZyAoJXMgLSAlcylc
biIsIFRhcmdldEdldFRhcmdldElkKFRhcmdldCksIERvRWplY3QgPyAiTm93IiA6ICJOZXh0IFBu
UCBJUlAiLCBSZWFzb24pOwotICAgIGlmICghVGFyZ2V0LT5Xcml0dGVuRWplY3RlZCkgewotICAg
ICAgICBUYXJnZXQtPldyaXR0ZW5FamVjdGVkID0gVFJVRTsKLSAgICAgICAgRnJvbnRlbmRTdG9y
ZVdyaXRlRnJvbnRlbmQoVGFyZ2V0LT5Gcm9udGVuZCwgImVqZWN0ZWQiLCAiMSIpOwotICAgIH0K
LSAgICBpZiAoRG9FamVjdCkgewotICAgICAgICBWZXJib3NlKCJUYXJnZXRbJWRdIDogSW9SZXF1
ZXN0RGV2aWNlRWplY3QoMHglcClcbiIsIFRhcmdldEdldFRhcmdldElkKFRhcmdldCksIFRhcmdl
dC0+RGV2aWNlT2JqZWN0KTsKLSAgICAgICAgSW9SZXF1ZXN0RGV2aWNlRWplY3QoVGFyZ2V0LT5E
ZXZpY2VPYmplY3QpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIFZlcmJvc2UoIlRhcmdldFslZF0g
OiBUcmlnZ2VyaW5nIEJ1c0NoYW5nZURldGVjdGVkIHRvIGRldGVjdCBkZXZpY2VcbiIsIFRhcmdl
dEdldFRhcmdldElkKFRhcmdldCkpOwotICAgICAgICBBZGFwdGVyVGFyZ2V0TGlzdENoYW5nZWQo
VGFyZ2V0R2V0QWRhcHRlcihUYXJnZXQpKTsKLSAgICB9Ci19Ci0KLV9fY2hlY2tSZXR1cm4KIE5U
U1RBVFVTCiBUYXJnZXREM1RvRDAoCi0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAg
IFRhcmdldAorICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0CiAgICAgKQogewotICAgIE5U
U1RBVFVTICAgICAgICAgICAgICAgICAgICBTdGF0dXM7Ci0gICAgY29uc3QgVUxPTkcgICAgICAg
ICAgICAgICAgIFRhcmdldElkID0gVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KTsKKyAgICBOVFNU
QVRVUyAgICAgICAgICAgIHN0YXR1czsKKyAgICBjb25zdCBVTE9ORyAgICAgICAgIFRhcmdldElk
ID0gVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KTsKIAogICAgIGlmICghVGFyZ2V0U2V0RGV2aWNl
UG93ZXJTdGF0ZShUYXJnZXQsIFBvd2VyRGV2aWNlRDApKQogICAgICAgICByZXR1cm4gU1RBVFVT
X1NVQ0NFU1M7CiAKLSAgICBUcmFjZSgiVGFyZ2V0WyVkXSBAICglZCkgPT09PT0+XG4iLCBUYXJn
ZXRJZCwgS2VHZXRDdXJyZW50SXJxbCgpKTsKICAgICBWZXJib3NlKCJUYXJnZXRbJWRdIDogRDMt
PkQwXG4iLCBUYXJnZXRJZCk7CiAKLSAgICAvLyBwb3dlciB1cCBmcm9udGVuZAotICAgIFN0YXR1
cyA9IEZyb250ZW5kRDNUb0QwKFRhcmdldC0+RnJvbnRlbmQpOwotICAgIGlmICghTlRfU1VDQ0VT
UyhTdGF0dXMpKQorICAgIHN0YXR1cyA9IEZyb250ZW5kRDNUb0QwKFRhcmdldC0+RnJvbnRlbmQp
OworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQogICAgICAgICBnb3RvIGZhaWwxOwogCi0g
ICAgLy8gY29ubmVjdCBmcm9udGVuZAotICAgIFN0YXR1cyA9IEZyb250ZW5kU2V0U3RhdGUoVGFy
Z2V0LT5Gcm9udGVuZCwgWEVOVkJEX0VOQUJMRUQpOwotICAgIGlmICghTlRfU1VDQ0VTUyhTdGF0
dXMpKQorICAgIHN0YXR1cyA9IEZyb250ZW5kU2V0U3RhdGUoVGFyZ2V0LT5Gcm9udGVuZCwgWEVO
VkJEX0VOQUJMRUQpOworICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQogICAgICAgICBnb3Rv
IGZhaWwyOworCiAgICAgX19UYXJnZXRVbnBhdXNlRGF0YVBhdGgoVGFyZ2V0KTsKIAotICAgIFRy
YWNlKCJUYXJnZXRbJWRdIEAgKCVkKSA8PT09PT1cbiIsIFRhcmdldElkLCBLZUdldEN1cnJlbnRJ
cnFsKCkpOwogICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKIAogZmFpbDI6CkBAIC0yMzYzLDM1
ICsyMzAzLDI5IEBAIGZhaWwyOgogICAgIEZyb250ZW5kRDBUb0QzKFRhcmdldC0+RnJvbnRlbmQp
OwogCiBmYWlsMToKLSAgICBFcnJvcigiRmFpbDEgKCUwOHgpXG4iLCBTdGF0dXMpOworICAgIEVy
cm9yKCJGYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7CiAKICAgICBUYXJnZXQtPkRldmljZVBvd2Vy
U3RhdGUgPSBQb3dlckRldmljZUQzOwogCi0gICAgcmV0dXJuIFN0YXR1czsKKyAgICByZXR1cm4g
c3RhdHVzOwogfQogCiBWT0lECiBUYXJnZXREMFRvRDMoCi0gICAgX19pbiBQWEVOVkJEX1RBUkdF
VCAgICAgICAgICAgIFRhcmdldAorICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0CiAgICAg
KQogewotICAgIGNvbnN0IFVMT05HICAgICAgICAgICAgICAgICBUYXJnZXRJZCA9IFRhcmdldEdl
dFRhcmdldElkKFRhcmdldCk7CisgICAgY29uc3QgVUxPTkcgICAgICAgICBUYXJnZXRJZCA9IFRh
cmdldEdldFRhcmdldElkKFRhcmdldCk7CiAKICAgICBpZiAoIVRhcmdldFNldERldmljZVBvd2Vy
U3RhdGUoVGFyZ2V0LCBQb3dlckRldmljZUQzKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVHJh
Y2UoIlRhcmdldFslZF0gQCAoJWQpID09PT09PlxuIiwgVGFyZ2V0SWQsIEtlR2V0Q3VycmVudEly
cWwoKSk7CiAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IEQwLT5EM1xuIiwgVGFyZ2V0SWQpOwog
Ci0gICAgLy8gY2xvc2UgZnJvbnRlbmQKICAgICBfX1RhcmdldFBhdXNlRGF0YVBhdGgoVGFyZ2V0
LCBGQUxTRSk7CiAgICAgKFZPSUQpIEZyb250ZW5kU2V0U3RhdGUoVGFyZ2V0LT5Gcm9udGVuZCwg
WEVOVkJEX0NMT1NFRCk7Ci0gICAgQVNTRVJUM1UoUXVldWVDb3VudCgmVGFyZ2V0LT5TdWJtaXR0
ZWRSZXFzKSwgPT0sIDApOwogCi0gICAgLy8gcG93ZXIgZG93biBmcm9udGVuZAogICAgIEZyb250
ZW5kRDBUb0QzKFRhcmdldC0+RnJvbnRlbmQpOwotCi0gICAgVHJhY2UoIlRhcmdldFslZF0gQCAo
JWQpIDw9PT09PVxuIiwgVGFyZ2V0SWQsIEtlR2V0Q3VycmVudElycWwoKSk7CiB9CiAKIHN0YXRp
YyBGT1JDRUlOTElORSBVTE9ORwpAQCAtMjM5OSw3ICsyMzMzLDcgQEAgX19QYXJzZVZiZCgKICAg
ICBJTiAgUENIQVIgICBEZXZpY2VJZFN0cgogICAgICkKIHsKLSAgICBVTE9ORyAgIERldmljZUlk
ID0gc3RydG91bChEZXZpY2VJZFN0ciwgTlVMTCwgMTApOworICAgIFVMT05HICAgICAgIERldmlj
ZUlkID0gc3RydG91bChEZXZpY2VJZFN0ciwgTlVMTCwgMTApOwogCiAgICAgQVNTRVJUM1UoKERl
dmljZUlkICYgfigoMSA8PCAyOSkgLSAxKSksID09LCAwKTsKIApAQCAtMjQyMSwxNyArMjM1NSwx
NiBAQCBfX1BhcnNlVmJkKAogICAgIH0KIH0KIAotX19jaGVja1JldHVybgogTlRTVEFUVVMKIFRh
cmdldENyZWF0ZSgKLSAgICBfX2luIFBYRU5WQkRfQURBUFRFUiAgICAgICAgICAgICBBZGFwdGVy
LAotICAgIF9faW4gX19udWxsdGVybWluYXRlZCBQQ0hBUiAgRGV2aWNlSWQsCi0gICAgT1VUIFBY
RU5WQkRfVEFSR0VUKiAgICAgICAgIF9UYXJnZXQKKyAgICBJTiAgUFhFTlZCRF9BREFQVEVSIEFk
YXB0ZXIsCisgICAgSU4gIFBDSEFSICAgICAgICAgICBEZXZpY2VJZCwKKyAgICBPVVQgUFhFTlZC
RF9UQVJHRVQqIF9UYXJnZXQKICAgICApCiB7Ci0gICAgTlRTVEFUVVMgICAgU3RhdHVzOwotICAg
IFBYRU5WQkRfVEFSR0VUIFRhcmdldDsKLSAgICBVTE9ORyAgICAgICAgICAgVGFyZ2V0SWQ7Cisg
ICAgTlRTVEFUVVMgICAgICAgICAgICBzdGF0dXM7CisgICAgUFhFTlZCRF9UQVJHRVQgICAgICBU
YXJnZXQ7CisgICAgVUxPTkcgICAgICAgICAgICAgICBUYXJnZXRJZDsKIAogICAgIFRhcmdldElk
ID0gX19QYXJzZVZiZChEZXZpY2VJZCk7CiAgICAgaWYgKFRhcmdldElkID49IFhFTlZCRF9NQVhf
VEFSR0VUUykKQEAgLTI0NDAsMjAgKzIzNzMsMTggQEAgVGFyZ2V0Q3JlYXRlKAogICAgIGlmIChB
ZGFwdGVySXNUYXJnZXRFbXVsYXRlZChBZGFwdGVyLCBUYXJnZXRJZCkpCiAgICAgICAgIHJldHVy
biBTVEFUVVNfUkVUUlk7CiAKLSAgICBUcmFjZSgiVGFyZ2V0WyVkXSBAICglZCkgPT09PT0+XG4i
LCBUYXJnZXRJZCwgS2VHZXRDdXJyZW50SXJxbCgpKTsKLQotICAgIFN0YXR1cyA9IFNUQVRVU19J
TlNVRkZJQ0lFTlRfUkVTT1VSQ0VTOworICAgIHN0YXR1cyA9IFNUQVRVU19JTlNVRkZJQ0lFTlRf
UkVTT1VSQ0VTOwogI3ByYWdtYSB3YXJuaW5nKHN1cHByZXNzOiA2MDE0KQogICAgIFRhcmdldCA9
IF9fVGFyZ2V0QWxsb2Moc2l6ZW9mKFhFTlZCRF9UQVJHRVQpKTsKICAgICBpZiAoIVRhcmdldCkK
ICAgICAgICAgZ290byBmYWlsMTsKIAogICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBDcmVhdGlu
Z1xuIiwgVGFyZ2V0SWQpOwotICAgIFRhcmdldC0+U2lnbmF0dXJlICAgICAgPSBUQVJHRVRfU0lH
TkFUVVJFOwotICAgIFRhcmdldC0+QWRhcHRlciAgICAgICAgICAgID0gQWRhcHRlcjsKLSAgICBU
YXJnZXQtPkRldmljZU9iamVjdCAgID0gTlVMTDsgLy8gZmlsbGVkIGluIGxhdGVyCi0gICAgVGFy
Z2V0LT5QYXVzZWQgICAgICAgICA9IDE7IC8vIFBhdXNlZCB1bnRpbCBEMy0+RDAgdHJhbnNpdGlv
bgotICAgIFRhcmdldC0+RGV2aWNlUG5wU3RhdGUgPSBQcmVzZW50OworICAgIFRhcmdldC0+U2ln
bmF0dXJlICAgICAgID0gVEFSR0VUX1NJR05BVFVSRTsKKyAgICBUYXJnZXQtPkFkYXB0ZXIgICAg
ICAgICA9IEFkYXB0ZXI7CisgICAgVGFyZ2V0LT5EZXZpY2VPYmplY3QgICAgPSBOVUxMOyAvLyBm
aWxsZWQgaW4gbGF0ZXIKKyAgICBUYXJnZXQtPlBhdXNlZCAgICAgICAgICA9IDE7IC8vIFBhdXNl
ZCB1bnRpbCBEMy0+RDAgdHJhbnNpdGlvbgorICAgIFRhcmdldC0+RGV2aWNlUG5wU3RhdGUgID0g
UHJlc2VudDsKICAgICBUYXJnZXQtPkRldmljZVBvd2VyU3RhdGUgPSBQb3dlckRldmljZUQzOwog
CiAgICAgS2VJbml0aWFsaXplU3BpbkxvY2soJlRhcmdldC0+TG9jayk7CkBAIC0yNDY1LDE4ICsy
Mzk2LDE3IEBAIFRhcmdldENyZWF0ZSgKICAgICBfX0xvb2thc2lkZUluaXQoJlRhcmdldC0+U2Vn
bWVudExpc3QsIHNpemVvZihYRU5WQkRfU0VHTUVOVCksIFNFR01FTlRfUE9PTF9UQUcpOwogICAg
IF9fTG9va2FzaWRlSW5pdCgmVGFyZ2V0LT5JbmRpcmVjdExpc3QsIHNpemVvZihYRU5WQkRfSU5E
SVJFQ1QpLCBJTkRJUkVDVF9QT09MX1RBRyk7CiAKLSAgICBTdGF0dXMgPSBGcm9udGVuZENyZWF0
ZShUYXJnZXQsIERldmljZUlkLCBUYXJnZXRJZCwgJlRhcmdldC0+RnJvbnRlbmQpOwotICAgIGlm
ICghTlRfU1VDQ0VTUyhTdGF0dXMpKQorICAgIHN0YXR1cyA9IEZyb250ZW5kQ3JlYXRlKFRhcmdl
dCwgRGV2aWNlSWQsIFRhcmdldElkLCAmVGFyZ2V0LT5Gcm9udGVuZCk7CisgICAgaWYgKCFOVF9T
VUNDRVNTKHN0YXR1cykpCiAgICAgICAgIGdvdG8gZmFpbDI7CiAKLSAgICBTdGF0dXMgPSBUYXJn
ZXREM1RvRDAoVGFyZ2V0KTsKLSAgICBpZiAoIU5UX1NVQ0NFU1MoU3RhdHVzKSkKKyAgICBzdGF0
dXMgPSBUYXJnZXREM1RvRDAoVGFyZ2V0KTsKKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkK
ICAgICAgICAgZ290byBmYWlsMzsKIAogICAgICpfVGFyZ2V0ID0gVGFyZ2V0OwogCiAgICAgVmVy
Ym9zZSgiVGFyZ2V0WyVkXSA6IENyZWF0ZWQgKCVzKVxuIiwgVGFyZ2V0SWQsIFRhcmdldCk7Ci0g
ICAgVHJhY2UoIlRhcmdldFslZF0gQCAoJWQpIDw9PT09PVxuIiwgVGFyZ2V0SWQsIEtlR2V0Q3Vy
cmVudElycWwoKSk7CiAgICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOwogCiBmYWlsMzoKQEAgLTI0
OTIsNTYgKzI0MjIsMjEgQEAgZmFpbDI6CiAgICAgX19UYXJnZXRGcmVlKFRhcmdldCk7CiAKIGZh
aWwxOgotICAgIEVycm9yKCJGYWlsMSAoJTA4eClcbiIsIFN0YXR1cyk7Ci0gICAgcmV0dXJuIFN0
YXR1czsKKyAgICBFcnJvcigiRmFpbDEgKCUwOHgpXG4iLCBzdGF0dXMpOworICAgIHJldHVybiBz
dGF0dXM7CiB9CiAKIFZPSUQKIFRhcmdldERlc3Ryb3koCi0gICAgX19pbiBQWEVOVkJEX1RBUkdF
VCAgICBUYXJnZXQKKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldAogICAgICkKIHsKICAg
ICBjb25zdCBVTE9ORyAgICAgICAgIFRhcmdldElkID0gVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0
KTsKLSAgICBQVk9JRCAgICAgICAgICAgICAgIE9iamVjdHNbM107Ci0gICAgUEtXQUlUX0JMT0NL
ICAgICAgICBXYWl0QmxvY2s7CiAKLSAgICBUcmFjZSgiVGFyZ2V0WyVkXSBAICglZCkgPT09PT0+
XG4iLCBUYXJnZXRJZCwgS2VHZXRDdXJyZW50SXJxbCgpKTsKICAgICBWZXJib3NlKCJUYXJnZXRb
JWRdIDogRGVzdHJveWluZ1xuIiwgVGFyZ2V0SWQpOwogCi0gICAgQVNTRVJUM1UoVGFyZ2V0LT5T
aWduYXR1cmUsID09LCBUQVJHRVRfU0lHTkFUVVJFKTsKLQogICAgIFRhcmdldEQwVG9EMyhUYXJn
ZXQpOwogCi0gICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IFJlcXVlc3RMaXN0VXNlZCAlZFxuIiwg
VGFyZ2V0SWQsIFRhcmdldC0+UmVxdWVzdExpc3QuVXNlZCk7Ci0gICAgT2JqZWN0c1swXSA9ICZU
YXJnZXQtPlJlcXVlc3RMaXN0LkVtcHR5OwotICAgIE9iamVjdHNbMV0gPSAmVGFyZ2V0LT5TZWdt
ZW50TGlzdC5FbXB0eTsKLSAgICBPYmplY3RzWzJdID0gJlRhcmdldC0+SW5kaXJlY3RMaXN0LkVt
cHR5OwotCi0gICAgV2FpdEJsb2NrID0gKFBLV0FJVF9CTE9DSylfX1RhcmdldEFsbG9jKHNpemVv
ZihLV0FJVF9CTE9DSykgKiBBUlJBWVNJWkUoT2JqZWN0cykpOwotICAgIGlmIChXYWl0QmxvY2sg
PT0gTlVMTCkgewotICAgICAgICBVTE9ORyAgIEluZGV4OwotCi0gICAgICAgIEVycm9yKCJVbmFi
bGUgdG8gYWxsb2NhdGUgcmVzb3VyY2VzIGZvciBLV0FJVF9CTE9DS1xuIik7Ci0KLSAgICAgICAg
Zm9yIChJbmRleCA9IDA7IEluZGV4IDwgQVJSQVlTSVpFKE9iamVjdHMpOyBJbmRleCsrKQotICAg
ICAgICAgICAgS2VXYWl0Rm9yU2luZ2xlT2JqZWN0KE9iamVjdHNbSW5kZXhdLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEV4ZWN1dGl2ZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBLZXJuZWxNb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEZBTFNFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIEtlV2FpdEZvck11bHRpcGxlT2JqZWN0cyhBUlJBWVNJWkUoT2Jq
ZWN0cyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FpdEFsbCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEV4ZWN1dGl2ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEtlcm5lbE1vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXYWl0QmxvY2spOwotI3ByYWdtYSBwcmVmYXN0KHN1cHByZXNzOjYxMDIp
Ci0gICAgICAgIF9fVGFyZ2V0RnJlZShXYWl0QmxvY2spOwotICAgIH0KLQogICAgIEFTU0VSVDNV
KFRhcmdldEdldERldmljZVBucFN0YXRlKFRhcmdldCksID09LCBEZWxldGVkKTsKIAogICAgIEZy
b250ZW5kRGVzdHJveShUYXJnZXQtPkZyb250ZW5kKTsKQEAgLTI1NTEsMTAgKzI0NDYsNTcgQEAg
VGFyZ2V0RGVzdHJveSgKICAgICBfX0xvb2thc2lkZVRlcm0oJlRhcmdldC0+U2VnbWVudExpc3Qp
OwogICAgIF9fTG9va2FzaWRlVGVybSgmVGFyZ2V0LT5SZXF1ZXN0TGlzdCk7CiAKLSAgICBBU1NF
UlQzVShUYXJnZXQtPlNpZ25hdHVyZSwgPT0sIFRBUkdFVF9TSUdOQVRVUkUpOwogICAgIFJ0bFpl
cm9NZW1vcnkoVGFyZ2V0LCBzaXplb2YoWEVOVkJEX1RBUkdFVCkpOwogICAgIF9fVGFyZ2V0RnJl
ZShUYXJnZXQpOwogCiAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IERlc3Ryb3llZFxuIiwgVGFy
Z2V0SWQpOwotICAgIFRyYWNlKCJUYXJnZXRbJWRdIEAgKCVkKSA8PT09PT1cbiIsIFRhcmdldElk
LCBLZUdldEN1cnJlbnRJcnFsKCkpOwogfQorCisjZGVmaW5lIFRBUkdFVF9HRVRfUFJPUEVSVFko
X25hbWUsIF90eXBlKSAgICAgICBcCitfdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCitUYXJnZXRHZXQgIyMgX25hbWUgIyMgKCAgICAgICAgICAgICAgICAg
ICAgICAgICBcCisgICAgSU4gIFBYRU5WQkRfVEFSR0VUICBUYXJnZXQgICAgICAgICAgICAgICAg
ICBcCisgICAgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit7
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0
dXJuIFRhcmdldC0+ICMjIF9uYW1lICMjIDsgICAgICAgICAgICAgICBcCit9CisKK1RBUkdFVF9H
RVRfUFJPUEVSVFkoQWRhcHRlciwgUFhFTlZCRF9BREFQVEVSKQorVEFSR0VUX0dFVF9QUk9QRVJU
WShEZXZpY2VPYmplY3QsIFBERVZJQ0VfT0JKRUNUKQorCisvL1RBUkdFVF9HRVRfUFJPUEVSVFko
VGFyZ2V0SWQsIFVMT05HKQorVUxPTkcKK1RhcmdldEdldFRhcmdldElkKAorICAgIElOICBQWEVO
VkJEX1RBUkdFVCAgVGFyZ2V0CisgICAgKQoreworICAgIHJldHVybiBGcm9udGVuZEdldFRhcmdl
dElkKFRhcmdldC0+RnJvbnRlbmQpOworfQorLy9UQVJHRVRfR0VUX1BST1BFUlRZKERldmljZUlk
LCBVTE9ORykKK1VMT05HCitUYXJnZXRHZXREZXZpY2VJZCgKKyAgICBJTiAgUFhFTlZCRF9UQVJH
RVQgIFRhcmdldAorICAgICkKK3sKKyAgICByZXR1cm4gRnJvbnRlbmRHZXREZXZpY2VJZChUYXJn
ZXQtPkZyb250ZW5kKTsKK30KKworLy9UQVJHRVRfR0VUX1BST1BFUlRZKFJlbW92YWJsZSwgQk9P
TEVBTikKK0JPT0xFQU4KK1RhcmdldEdldFJlbW92YWJsZSgKKyAgICBJTiAgUFhFTlZCRF9UQVJH
RVQgIFRhcmdldAorICAgICkKK3sKKyAgICByZXR1cm4gRnJvbnRlbmRHZXRDYXBzKFRhcmdldC0+
RnJvbnRlbmQpLT5SZW1vdmFibGU7Cit9CisKKy8vVEFSR0VUX0dFVF9QUk9QRVJUWShTdXJwcmlz
ZVJlbW92YWJsZSwgQk9PTEVBTikKK0JPT0xFQU4KK1RhcmdldEdldFN1cnByaXNlUmVtb3ZhYmxl
KAorICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0CisgICAgKQoreworICAgIHJldHVybiBG
cm9udGVuZEdldENhcHMoVGFyZ2V0LT5Gcm9udGVuZCktPlN1cnByaXNlUmVtb3ZhYmxlOworfQor
CisjdW5kZWYgVEFSR0VUX0dFVF9QUk9QRVJUWQpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC90YXJn
ZXQuaCBiL3NyYy94ZW52YmQvdGFyZ2V0LmgKaW5kZXggODgwODQ2MC4uN2Y2NjRhNSAxMDA2NDQK
LS0tIGEvc3JjL3hlbnZiZC90YXJnZXQuaAorKysgYi9zcmMveGVudmJkL3RhcmdldC5oCkBAIC0z
Miw0NSArMzIsNTcgQEAKICNpZm5kZWYgX1hFTlZCRF9UQVJHRVRfSAogI2RlZmluZSBfWEVOVkJE
X1RBUkdFVF9ICiAKKyNpbmNsdWRlIDxudGRkay5oPgorCiB0eXBlZGVmIHN0cnVjdCBfWEVOVkJE
X1RBUkdFVCBYRU5WQkRfVEFSR0VULCAqUFhFTlZCRF9UQVJHRVQ7CiAKLSNpbmNsdWRlIDxudGRk
ay5oPgotI2luY2x1ZGUgPG50c3Ryc2FmZS5oPgotI2luY2x1ZGUgPHhlbnZiZC1zdG9ycG9ydC5o
PgorI2luY2x1ZGUgPHN0b3Jwb3J0Lmg+CisKKyNpbmNsdWRlIDxkZWJ1Z19pbnRlcmZhY2UuaD4K
KwogI2luY2x1ZGUgImFkYXB0ZXIuaCIKICNpbmNsdWRlICJzcmJleHQuaCIKICNpbmNsdWRlICJ0
eXBlcy5oIgotI2luY2x1ZGUgPGRlYnVnX2ludGVyZmFjZS5oPgotCi1leHRlcm4gVk9JRAotVGFy
Z2V0RGVidWdDYWxsYmFjaygKLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRh
cmdldCwKLSAgICBfX2luIFBYRU5CVVNfREVCVUdfSU5URVJGQUNFIERlYnVnCi0gICAgKTsKIAot
Ly8gQ3JlYXRpb24vRGVsZXRpb24KLV9fY2hlY2tSZXR1cm4KIGV4dGVybiBOVFNUQVRVUwogVGFy
Z2V0Q3JlYXRlKAotICAgIF9faW4gUFhFTlZCRF9BREFQVEVSICAgICAgICAgICAgIEFkYXB0ZXIs
Ci0gICAgX19pbiBfX251bGx0ZXJtaW5hdGVkIFBDSEFSICBEZXZpY2VJZCwKLSAgICBPVVQgUFhF
TlZCRF9UQVJHRVQqICAgICAgICAgX1RhcmdldAorICAgIElOICBQWEVOVkJEX0FEQVBURVIgQWRh
cHRlciwKKyAgICBJTiAgUENIQVIgICAgICAgICAgIERldmljZUlkLAorICAgIE9VVCBQWEVOVkJE
X1RBUkdFVCogX1RhcmdldAogICAgICk7CiAKIGV4dGVybiBWT0lECiBUYXJnZXREZXN0cm95KAot
ICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0CisgICAgSU4gIFBYRU5W
QkRfVEFSR0VUICBUYXJnZXQKICAgICApOwogCi1fX2NoZWNrUmV0dXJuCiBleHRlcm4gTlRTVEFU
VVMKIFRhcmdldEQzVG9EMCgKLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRh
cmdldAorICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0CiAgICAgKTsKIAogZXh0ZXJuIFZP
SUQKIFRhcmdldEQwVG9EMygKLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRh
cmdldAorICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0CisgICAgKTsKKworZXh0ZXJuIE5U
U1RBVFVTCitUYXJnZXREaXNwYXRjaFBucCgKKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdl
dCwKKyAgICBJTiAgUERFVklDRV9PQkpFQ1QgIERldmljZU9iamVjdCwKKyAgICBJTiAgUElSUCAg
ICAgICAgICAgIElycAorICAgICk7CisKK2V4dGVybiBWT0lECitUYXJnZXRJc3N1ZURldmljZUVq
ZWN0KAorICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0LAorICAgIElOICBjb25zdCBDSEFS
ICAgICAgKlJlYXNvbgorICAgICk7CisKK2V4dGVybiBWT0lECitUYXJnZXREZWJ1Z0NhbGxiYWNr
KAorICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0LAorICAgIF9faW4g
UFhFTkJVU19ERUJVR19JTlRFUkZBQ0UgRGVidWcKICAgICApOwogCiAvLyBQblAgU3RhdGVzCkBA
IC05OCwyMyArMTEwLDYgQEAgVGFyZ2V0R2V0RGV2aWNlUG5wU3RhdGUoCiAgICAgX19pbiBQWEVO
VkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQKICAgICApOwogCi0vLyBRdWVyeSBNZXRob2Rz
Ci1leHRlcm4gVUxPTkcKLVRhcmdldEdldFRhcmdldElkKAotICAgIF9faW4gUFhFTlZCRF9UQVJH
RVQgICAgICAgICAgICAgVGFyZ2V0Ci0gICAgKTsKLQotZXh0ZXJuIFVMT05HCi1UYXJnZXRHZXRE
ZXZpY2VJZCgKLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldAotICAg
ICk7Ci0KLV9fY2hlY2tSZXR1cm4KLWV4dGVybiBQREVWSUNFX09CSkVDVAotVGFyZ2V0R2V0RGV2
aWNlT2JqZWN0KAotICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0Ci0g
ICAgKTsKLQogZXh0ZXJuIFZPSUQKIFRhcmdldFNldERldmljZU9iamVjdCgKICAgICBfX2luIFBY
RU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldCwKQEAgLTEyNywxMiArMTIyLDYgQEAgVGFy
Z2V0SXNQYXVzZWQoCiAgICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQK
ICAgICApOwogCi1fX2NoZWNrUmV0dXJuCi1leHRlcm4gUFhFTlZCRF9BREFQVEVSCi1UYXJnZXRH
ZXRBZGFwdGVyKAotICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0Ci0g
ICAgKTsKLQogLy8gUXVldWUtUmVsYXRlZAogZXh0ZXJuIFZPSUQKIFRhcmdldFN1Ym1pdFJlcXVl
c3RzKApAQCAtMTg1LDI2ICsxNzQsMTkgQEAgVGFyZ2V0U2h1dGRvd24oCiAgICAgSU4gIFBYRU5W
QkRfU1JCRVhUICBTcmJFeHQKICAgICApOwogCi1leHRlcm4gVk9JRAotVGFyZ2V0U3JiUG5wKAot
ICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0LAotICAgIF9faW4gUFND
U0lfUE5QX1JFUVVFU1RfQkxPQ0sgU3JiCisjZGVmaW5lIFRBUkdFVF9HRVRfUFJPUEVSVFkoX25h
bWUsIF90eXBlKSAgICAgICBcCitleHRlcm4gX3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCitUYXJnZXRHZXQgIyMgX25hbWUgIyMgKCAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgSU4gIFBYRU5WQkRfVEFSR0VUICBUYXJnZXQgICAgICAgICAgICAgICAgICBc
CiAgICAgKTsKIAotLy8gUG5QIEhhbmRsZXIKLV9fY2hlY2tSZXR1cm4KLWV4dGVybiBOVFNUQVRV
UwotVGFyZ2V0RGlzcGF0Y2hQbnAoCi0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAg
ICBUYXJnZXQsCi0gICAgX19pbiBQREVWSUNFX09CSkVDVCAgICAgICAgICBEZXZpY2VPYmplY3Qs
Ci0gICAgX19pbiBQSVJQICAgICAgICAgICAgICAgICAgICBJcnAKLSAgICApOworVEFSR0VUX0dF
VF9QUk9QRVJUWShBZGFwdGVyLCBQWEVOVkJEX0FEQVBURVIpCitUQVJHRVRfR0VUX1BST1BFUlRZ
KERldmljZU9iamVjdCwgUERFVklDRV9PQkpFQ1QpCitUQVJHRVRfR0VUX1BST1BFUlRZKFRhcmdl
dElkLCBVTE9ORykKK1RBUkdFVF9HRVRfUFJPUEVSVFkoRGV2aWNlSWQsIFVMT05HKQorVEFSR0VU
X0dFVF9QUk9QRVJUWShSZW1vdmFibGUsIEJPT0xFQU4pCitUQVJHRVRfR0VUX1BST1BFUlRZKFN1
cnByaXNlUmVtb3ZhYmxlLCBCT09MRUFOKQogCi1fX2Rydl9tYXhJUlFMKERJU1BBVENIX0xFVkVM
KQotZXh0ZXJuIFZPSUQKLVRhcmdldElzc3VlRGV2aWNlRWplY3QoCi0gICAgX19pbiBQWEVOVkJE
X1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQsCi0gICAgX19pbiBfX251bGx0ZXJtaW5hdGVkIGNv
bnN0IENIQVIqIFJlYXNvbgotICAgICk7CisjdW5kZWYgVEFSR0VUX0dFVF9QUk9QRVJUWQogCiAj
ZW5kaWYgLy8gX1hFTlZCRF9UQVJHRVRfSAotLSAKMi44LjMKCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Fri Jun 23 12:50:17 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 23 Jun 2017 12:50:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dOO2T-0001KJ-9N; Fri, 23 Jun 2017 12:50:17 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=340501eb8=owen.smith@citrix.com>)
 id 1dOO2S-0001H2-16
 for win-pv-devel@lists.xenproject.org; Fri, 23 Jun 2017 12:50:16 +0000
Received: from [85.158.137.68] by server-11.bemta-3.messagelabs.com id
 49/F6-01732-78E0D495; Fri, 23 Jun 2017 12:50:15 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupjkeJIrShJLcpLzFFi42JxWrrBXreNzzf
 SYNISQ4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCace7yasaCJcoV57pfMDcw/pTsYuTkkBDwlzj8
 /w0biM0mICvxceVnZhBbREBdYt/nrUwgNrOAmsT1/V2sILawgIFE19nbYHEWAVWJQ5uns4DYv
 AJWEjMfLWOEmCknMXnxJTCbU8BaYt+ULUA1HBxCQDULV1eAhIUElCS+LX7BDNEqKHFy5hMWiF
 USEgdfvGCewMg7C0lqFpLUAkamVYzqxalFZalFukZ6SUWZ6RkluYmZObqGBsZ6uanFxYnpqTm
 JScV6yfm5mxiBYVPPwMC4g/FUs/MhRkkOJiVR3tgzPpFCfEn5KZUZicUZ8UWlOanFhxhlODiU
 JHiLeH0jhQSLUtNTK9Iyc4ABDJOW4OBREuHdzgGU5i0uSMwtzkyHSJ1i1OX4M2HrFyYhlrz8v
 FQpcd73PEBFAiBFGaV5cCNg0XSJUVZKmJeRgYFBiKcgtSg3swRV/hWjOAejkjBvLsglPJl5JX
 CbXgEdwQR0xIw1PiBHlCQipKQaGNVipW/bfPzpN//o0k0nRe9F72ecajDn/PTAD2dfJ8hGfuG
 Y2CA/y5JT4VexVc6awDel93fdMosWEulU2DnVZNKNJ6fUBW28+evYexks5q+1N63Y0/q0M4BV
 4Es5ywyuOn6Tr2fe+C08tGPnt2JF64cvMv6Zmly71j2ncN7vI6+41XfZnXmWEaTEUpyRaKjFX
 FScCAAmPN1joQIAAA==
X-Env-Sender: prvs=340501eb8=owen.smith@citrix.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1498222212!68536963!2
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15146 invoked from network); 23 Jun 2017 12:50:14 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-6.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Jun 2017 12:50:14 -0000
X-IronPort-AV: E=Sophos;i="5.39,378,1493683200"; d="scan'208";a="437621421"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Fri, 23 Jun 2017 13:49:11 +0100
Message-ID: <20170623124917.13956-5-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
In-Reply-To: <20170623124917.13956-1-owen.smith@citrix.com>
References: <20170623124917.13956-1-owen.smith@citrix.com>
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 04/10] Inline MapSegmentBuffer()
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKU2lnbmVkLW9mZi1ieTog
T3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52YmQvdGFyZ2V0
LmMgfCA4OCArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogMSBmaWxlIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDU0IGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvdGFyZ2V0LmMgYi9zcmMveGVudmJkL3RhcmdldC5jCmlu
ZGV4IDFmNDVhZmIuLjBmZTg4ODkgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52YmQvdGFyZ2V0LmMKKysr
IGIvc3JjL3hlbnZiZC90YXJnZXQuYwpAQCAtNzk4LDU5ICs3OTgsNiBAQCBTR0xpc3ROZXh0KAog
ICAgIHJldHVybiAhKChTR0xpc3QtPlBoeXNBZGRyLlF1YWRQYXJ0ICYgQWxpZ25tZW50TWFzaykg
fHwgKFNHTGlzdC0+UGh5c0xlbiAmIEFsaWdubWVudE1hc2spKTsKIH0KIAotc3RhdGljIEZPUkNF
SU5MSU5FIEJPT0xFQU4KLU1hcFNlZ21lbnRCdWZmZXIoCi0gICAgSU4gIFBYRU5WQkRfVEFSR0VU
ICAgICAgICAgICAgIFRhcmdldCwKLSAgICBJTiAgUFhFTlZCRF9TRUdNRU5UICAgICAgICAgU2Vn
bWVudCwKLSAgICBJTiAgUFhFTlZCRF9TR19MSVNUICAgICAgICAgU0dMaXN0LAotICAgIElOICBV
TE9ORyAgICAgICAgICAgICAgICAgICBTZWN0b3JTaXplLAotICAgIElOICBVTE9ORyAgICAgICAg
ICAgICAgICAgICBTZWN0b3JzTm93Ci0gICAgKQotewotICAgIFBNREwgICAgTWRsOwotCi0gICAg
Ly8gbWFwIFBoeXNBZGRyIHRvIDEgb3IgMiBwYWdlcyBhbmQgbG9jayBmb3IgVmlydEFkZHIKLSNw
cmFnbWEgd2FybmluZyhwdXNoKQotI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6MjgxNDUpCi0gICAg
TWRsID0gJlNlZ21lbnQtPk1kbDsKLSAgICBNZGwtPk5leHQgICAgICAgICAgID0gTlVMTDsKLSAg
ICBNZGwtPlNpemUgICAgICAgICAgID0gKFNIT1JUKShzaXplb2YoTURMKSArIHNpemVvZihQRk5f
TlVNQkVSKSk7Ci0gICAgTWRsLT5NZGxGbGFncyAgICAgICA9IE1ETF9QQUdFU19MT0NLRUQ7Ci0g
ICAgTWRsLT5Qcm9jZXNzICAgICAgICA9IE5VTEw7Ci0gICAgTWRsLT5NYXBwZWRTeXN0ZW1WYSA9
IE5VTEw7Ci0gICAgTWRsLT5TdGFydFZhICAgICAgICA9IE5VTEw7Ci0gICAgTWRsLT5CeXRlQ291
bnQgICAgICA9IFNHTGlzdC0+UGh5c0xlbjsKLSAgICBNZGwtPkJ5dGVPZmZzZXQgICAgID0gX19P
ZmZzZXQoU0dMaXN0LT5QaHlzQWRkcik7Ci0gICAgU2VnbWVudC0+UGZuWzBdICAgICA9IF9fUGh5
czJQZm4oU0dMaXN0LT5QaHlzQWRkcik7Ci0KLSAgICBpZiAoU0dMaXN0LT5QaHlzTGVuIDwgU2Vj
dG9yc05vdyAqIFNlY3RvclNpemUpIHsKLSAgICAgICAgU0dMaXN0R2V0KFNHTGlzdCk7Ci0gICAg
ICAgIE1kbC0+U2l6ZSAgICAgICArPSBzaXplb2YoUEZOX05VTUJFUik7Ci0gICAgICAgIE1kbC0+
Qnl0ZUNvdW50ICA9IE1kbC0+Qnl0ZUNvdW50ICsgU0dMaXN0LT5QaHlzTGVuOwotICAgICAgICBT
ZWdtZW50LT5QZm5bMV0gPSBfX1BoeXMyUGZuKFNHTGlzdC0+UGh5c0FkZHIpOwotICAgIH0KLSNw
cmFnbWEgd2FybmluZyhwb3ApCi0KLSAgICBBU1NFUlQoKE1kbC0+Qnl0ZUNvdW50ICYgKFNlY3Rv
clNpemUgLSAxKSkgPT0gMCk7Ci0gICAgQVNTRVJUM1UoTWRsLT5CeXRlQ291bnQsIDw9LCBQQUdF
X1NJWkUpOwotICAgIEFTU0VSVDNVKFNlY3RvcnNOb3csID09LCAoTWRsLT5CeXRlQ291bnQgLyBT
ZWN0b3JTaXplKSk7Ci0KLSAgICBTZWdtZW50LT5MZW5ndGggPSBfX21pbihNZGwtPkJ5dGVDb3Vu
dCwgUEFHRV9TSVpFKTsKLSAgICBTZWdtZW50LT5CdWZmZXIgPSBNbU1hcExvY2tlZFBhZ2VzU3Bl
Y2lmeUNhY2hlKE1kbCwgS2VybmVsTW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBN
bUNhY2hlZCwgTlVMTCwgRkFMU0UsIF9fVGFyZ2V0UHJpb3JpdHkoVGFyZ2V0KSk7Ci0gICAgaWYg
KCFTZWdtZW50LT5CdWZmZXIpIHsKLSAgICAgICAgZ290byBmYWlsOwotICAgIH0KLQotICAgIEFT
U0VSVDNQKE1tR2V0TWRsUGZuQXJyYXkoTWRsKVswXSwgPT0sIFNlZ21lbnQtPlBmblswXSk7Ci0g
ICAgQVNTRVJUM1AoTW1HZXRNZGxQZm5BcnJheShNZGwpWzFdLCA9PSwgU2VnbWVudC0+UGZuWzFd
KTsKLQotICAgIHJldHVybiBUUlVFOwotCi1mYWlsOgotICAgIHJldHVybiBGQUxTRTsKLX0KLQog
c3RhdGljIEZPUkNFSU5MSU5FIFZPSUQKIFJlcXVlc3RDb3B5T3V0cHV0KAogICAgIF9faW4gUFhF
TlZCRF9SRVFVRVNUICAgICAgICAgUmVxdWVzdApAQCAtOTAxLDYgKzg0OCw4IEBAIFByZXBhcmVT
ZWdtZW50KAogICAgICAgICBBU1NFUlQzVSgoU0dMaXN0LT5QaHlzTGVuIC8gU2VjdG9yU2l6ZSks
ID09LCAqU2VjdG9yc05vdyk7CiAgICAgICAgIEFTU0VSVDNVKChTR0xpc3QtPlBoeXNMZW4gJiAo
U2VjdG9yU2l6ZSAtIDEpKSwgPT0sIDApOwogICAgIH0gZWxzZSB7CisgICAgICAgIFBNREwgICAg
ICAgIE1kbDsKKwogICAgICAgICArK1RhcmdldC0+U2Vnc0JvdW5jZWQ7CiAgICAgICAgIC8vIGdl
dCBmaXJzdCBzZWN0b3IsIGxhc3Qgc2VjdG9yIGFuZCBjb3VudAogICAgICAgICBTZWdtZW50LT5G
aXJzdFNlY3RvciAgICA9IDA7CkBAIC05MDgsMTEgKzg1Nyw0MiBAQCBQcmVwYXJlU2VnbWVudCgK
ICAgICAgICAgU2VnbWVudC0+TGFzdFNlY3RvciAgICAgPSAoVUNIQVIpKCpTZWN0b3JzTm93IC0g
MSk7CiAKICAgICAgICAgLy8gbWFwIFNHTGlzdCB0byBWaXJ0dWFsIEFkZHJlc3MuIFBvcHVsYXRl
cyBTZWdtZW50LT5CdWZmZXIgYW5kIFNlZ21lbnQtPkxlbmd0aAotICAgICAgICBpZiAoIU1hcFNl
Z21lbnRCdWZmZXIoVGFyZ2V0LCBTZWdtZW50LCBTR0xpc3QsIFNlY3RvclNpemUsICpTZWN0b3Jz
Tm93KSkgeworI3ByYWdtYSB3YXJuaW5nKHB1c2gpCisjcHJhZ21hIHdhcm5pbmcoZGlzYWJsZToy
ODE0NSkKKyAgICAgICAgTWRsID0gJlNlZ21lbnQtPk1kbDsKKyAgICAgICAgTWRsLT5OZXh0ICAg
ICAgICAgICA9IE5VTEw7CisgICAgICAgIE1kbC0+U2l6ZSAgICAgICAgICAgPSAoU0hPUlQpKHNp
emVvZihNREwpICsgc2l6ZW9mKFBGTl9OVU1CRVIpKTsKKyAgICAgICAgTWRsLT5NZGxGbGFncyAg
ICAgICA9IE1ETF9QQUdFU19MT0NLRUQ7CisgICAgICAgIE1kbC0+UHJvY2VzcyAgICAgICAgPSBO
VUxMOworICAgICAgICBNZGwtPk1hcHBlZFN5c3RlbVZhID0gTlVMTDsKKyAgICAgICAgTWRsLT5T
dGFydFZhICAgICAgICA9IE5VTEw7CisgICAgICAgIE1kbC0+Qnl0ZUNvdW50ICAgICAgPSBTR0xp
c3QtPlBoeXNMZW47CisgICAgICAgIE1kbC0+Qnl0ZU9mZnNldCAgICAgPSBfX09mZnNldChTR0xp
c3QtPlBoeXNBZGRyKTsKKyAgICAgICAgU2VnbWVudC0+UGZuWzBdICAgICA9IF9fUGh5czJQZm4o
U0dMaXN0LT5QaHlzQWRkcik7CisKKyAgICAgICAgaWYgKFNHTGlzdC0+UGh5c0xlbiA8ICpTZWN0
b3JzTm93ICogU2VjdG9yU2l6ZSkgeworICAgICAgICAgICAgU0dMaXN0R2V0KFNHTGlzdCk7Cisg
ICAgICAgICAgICBNZGwtPlNpemUgICAgICAgKz0gc2l6ZW9mKFBGTl9OVU1CRVIpOworICAgICAg
ICAgICAgTWRsLT5CeXRlQ291bnQgID0gTWRsLT5CeXRlQ291bnQgKyBTR0xpc3QtPlBoeXNMZW47
CisgICAgICAgICAgICBTZWdtZW50LT5QZm5bMV0gPSBfX1BoeXMyUGZuKFNHTGlzdC0+UGh5c0Fk
ZHIpOworICAgICAgICB9CisjcHJhZ21hIHdhcm5pbmcocG9wKQorCisgICAgICAgIEFTU0VSVCgo
TWRsLT5CeXRlQ291bnQgJiAoU2VjdG9yU2l6ZSAtIDEpKSA9PSAwKTsKKyAgICAgICAgQVNTRVJU
M1UoTWRsLT5CeXRlQ291bnQsIDw9LCBQQUdFX1NJWkUpOworICAgICAgICBBU1NFUlQzVSgqU2Vj
dG9yc05vdywgPT0sIChNZGwtPkJ5dGVDb3VudCAvIFNlY3RvclNpemUpKTsKKworICAgICAgICBT
ZWdtZW50LT5MZW5ndGggPSBfX21pbihNZGwtPkJ5dGVDb3VudCwgUEFHRV9TSVpFKTsKKyAgICAg
ICAgU2VnbWVudC0+QnVmZmVyID0gTW1NYXBMb2NrZWRQYWdlc1NwZWNpZnlDYWNoZShNZGwsIEtl
cm5lbE1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1tQ2FjaGVkLCBOVUxM
LCBGQUxTRSwgX19UYXJnZXRQcmlvcml0eShUYXJnZXQpKTsKKyAgICAgICAgaWYgKCFTZWdtZW50
LT5CdWZmZXIpIHsKICAgICAgICAgICAgICsrVGFyZ2V0LT5GYWlsZWRNYXBzOwogICAgICAgICAg
ICAgZ290byBmYWlsMTsKICAgICAgICAgfQogCisgICAgICAgIEFTU0VSVDNQKE1tR2V0TWRsUGZu
QXJyYXkoTWRsKVswXSwgPT0sIFNlZ21lbnQtPlBmblswXSk7CisgICAgICAgIEFTU0VSVDNQKE1t
R2V0TWRsUGZuQXJyYXkoTWRsKVsxXSwgPT0sIFNlZ21lbnQtPlBmblsxXSk7CisKICAgICAgICAg
Ly8gZ2V0IGEgYnVmZmVyCiAgICAgICAgIGlmICghQnVmZmVyR2V0KFNlZ21lbnQsICZTZWdtZW50
LT5CdWZmZXJJZCwgJlBmbikpIHsKICAgICAgICAgICAgICsrVGFyZ2V0LT5GYWlsZWRCb3VuY2Vz
OwotLSAKMi44LjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0
aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Fri Jun 23 12:50:17 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 23 Jun 2017 12:50:17 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dOO2T-0001Kc-Ae; Fri, 23 Jun 2017 12:50:17 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=340501eb8=owen.smith@citrix.com>)
 id 1dOO2S-0001HC-5i
 for win-pv-devel@lists.xenproject.org; Fri, 23 Jun 2017 12:50:16 +0000
Received: from [85.158.139.211] by server-9.bemta-5.messagelabs.com id
 8E/5E-01999-78E0D495; Fri, 23 Jun 2017 12:50:15 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpmkeJIrShJLcpLzFFi42JxWrohUreFzzf
 S4Ps9Dos/ixMdGD0Of7jCEsAYxZqZl5RfkcCacfrBfJaCMzIVly8uZG9gvCHaxcjJISHgL3Hm
 7BE2EJtNQFbi48rPzCC2iIC6xL7PW5lAbGYBNYnr+7tYQWxhAU2J7+t+soPYLAKqEpf2zgPr5
 RWwkmi/t4EFYqacxOTFlxhBbE4Ba4l9U7YAxTk4hIBqFq6uAAkLCShJfFv8ghmiVVDi5MwnLB
 CrJCQOvnjBPIGRdxaS1CwkqQWMTKsYNYpTi8pSi3QNLfSSijLTM0pyEzNzdA0NTPVyU4uLE9N
 TcxKTivWS83M3MQIDhwEIdjA2bfc8xCjJwaQkyht7xidSiC8pP6UyI7E4I76oNCe1+BCjDAeH
 kgRvEa9vpJBgUWp6akVaZg4whGHSEhw8SiK82zmA0rzFBYm5xZnpEKlTjIpS4rzJIH0CIImM0
 jy4NljcXGKUlRLmZQQ6RIinILUoN7MEVf4VozgHo5Iwby7IFJ7MvBK46a+AFjMBLZ6xxgdkcU
 kiQkqqgdG0sfL+lCiV8L81MREvNi8M5efZs7l2ya7amF8R33T6T56pzHu/k1E6tbB5jcXPfUV
 v5vsa/pQIWbdx5pW7/e5CW76tvn1xt4XCMdEvu+9tel7DslLnttRxOROB5nUWrUvvxd28/X9q
 atqd3wJdgb5yk3msYz6udGGTm7rQfePCS7HfX5TLq/5VYinOSDTUYi4qTgQAnWUGqJYCAAA=
X-Env-Sender: prvs=340501eb8=owen.smith@citrix.com
X-Msg-Ref: server-2.tower-206.messagelabs.com!1498222209!84176866!2
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28984 invoked from network); 23 Jun 2017 12:50:11 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-2.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Jun 2017 12:50:11 -0000
X-IronPort-AV: E=Sophos;i="5.39,378,1493683200"; d="scan'208";a="429138137"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Fri, 23 Jun 2017 13:49:08 +0100
Message-ID: <20170623124917.13956-2-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
In-Reply-To: <20170623124917.13956-1-owen.smith@citrix.com>
References: <20170623124917.13956-1-owen.smith@citrix.com>
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 01/10] Remove unused code
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKU2lnbmVkLW9mZi1ieTog
T3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52YmQvdGFyZ2V0
LmMgfCA2MSArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogc3JjL3hlbnZiZC90YXJnZXQuaCB8IDIyIC0tLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmls
ZXMgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDgyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh
L3NyYy94ZW52YmQvdGFyZ2V0LmMgYi9zcmMveGVudmJkL3RhcmdldC5jCmluZGV4IDM3NDgyMTAu
LmM1ZGZmYTkgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52YmQvdGFyZ2V0LmMKKysrIGIvc3JjL3hlbnZi
ZC90YXJnZXQuYwpAQCAtMzc4LDIxICszNzgsNiBAQCBUYXJnZXRJc01pc3NpbmcoCiAgICAgcmV0
dXJuIE1pc3Npbmc7CiB9CiAKLUZPUkNFSU5MSU5FIGNvbnN0IENIQVIqCi1UYXJnZXRNaXNzaW5n
UmVhc29uKAotICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICBUYXJnZXQKLSAgICAp
Ci17Ci0gICAgS0lSUUwgICAgICAgSXJxbDsKLSAgICBjb25zdCBDSEFSKiBSZWFzb247Ci0KLSAg
ICBLZUFjcXVpcmVTcGluTG9jaygmVGFyZ2V0LT5Mb2NrLCAmSXJxbCk7Ci0gICAgUmVhc29uID0g
VGFyZ2V0LT5SZWFzb247Ci0gICAgS2VSZWxlYXNlU3BpbkxvY2soJlRhcmdldC0+TG9jaywgSXJx
bCk7Ci0KLSAgICByZXR1cm4gUmVhc29uOwotfQotCiBGT1JDRUlOTElORSBWT0lECiBUYXJnZXRT
ZXREZXZpY2VQbnBTdGF0ZSgKICAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRh
cmdldCwKQEAgLTQ5MSwxNSArNDc2LDYgQEAgVGFyZ2V0SXNQYXVzZWQoCiB9CiAKIF9fY2hlY2tS
ZXR1cm4KLUZPUkNFSU5MSU5FIFVMT05HCi1UYXJnZXRPdXRzdGFuZGluZ1JlcXMoCi0gICAgX19p
biBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQKLSAgICApCi17Ci0gICAgcmV0dXJu
IFF1ZXVlQ291bnQoJlRhcmdldC0+U3VibWl0dGVkUmVxcyk7Ci19Ci0KLV9fY2hlY2tSZXR1cm4K
IEZPUkNFSU5MSU5FIFBYRU5WQkRfQURBUFRFUgogVGFyZ2V0R2V0QWRhcHRlcigKICAgICBfX2lu
IFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldApAQCAtNTA4LDcgKzQ4NCw3IEBAIFRh
cmdldEdldEFkYXB0ZXIoCiAgICAgcmV0dXJuIFRhcmdldC0+QWRhcHRlcjsKIH0KIAotRk9SQ0VJ
TkxJTkUgVUxPTkcKK3N0YXRpYyBGT1JDRUlOTElORSBVTE9ORwogVGFyZ2V0U2VjdG9yU2l6ZSgK
ICAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldAogICAgICkKQEAgLTc3
NCwxNCArNzUwLDYgQEAgX19QaHlzMlBmbigKICAgICByZXR1cm4gKFBGTl9OVU1CRVIpKFBoeXNB
ZGRyLlF1YWRQYXJ0ID4+IFBBR0VfU0hJRlQpOwogfQogCi1zdGF0aWMgRk9SQ0VJTkxJTkUgUEZO
X05VTUJFUgotX19WaXJ0MlBmbigKLSAgICBfX2luIFBWT0lEICAgICAgICAgICAgICAgICAgIFZp
cnRBZGRyCi0gICAgKQotewotICAgIHJldHVybiAoUEZOX05VTUJFUikoTW1HZXRQaHlzaWNhbEFk
ZHJlc3MoVmlydEFkZHIpLlF1YWRQYXJ0ID4+IFBBR0VfU0hJRlQpOwotfQotCiBzdGF0aWMgRk9S
Q0VJTkxJTkUgTU1fUEFHRV9QUklPUklUWQogX19UYXJnZXRQcmlvcml0eSgKICAgICBfX2luIFBY
RU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldApAQCAtMjE5NCwzMyArMjE2Miw2IEBAIFRh
cmdldFN0YXJ0SW8oCiAgICAgfQogfQogCi1zdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAotX19UYXJn
ZXRDbGVhbnVwU3VibWl0dGVkUmVxcygKLSAgICBJTiAgUFhFTlZCRF9UQVJHRVQgICAgICAgICAg
ICAgVGFyZ2V0Ci0gICAgKQotewotICAgIC8vIEZhaWwgUHJlcGFyZWRSZXFzCi0gICAgZm9yICg7
OykgewotICAgICAgICBQWEVOVkJEX1NSQkVYVCAgU3JiRXh0OwotICAgICAgICBQWEVOVkJEX1JF
UVVFU1QgUmVxdWVzdDsKLSAgICAgICAgUExJU1RfRU5UUlkgICAgIEVudHJ5ID0gUXVldWVQb3Ao
JlRhcmdldC0+U3VibWl0dGVkUmVxcyk7Ci0gICAgICAgIGlmIChFbnRyeSA9PSBOVUxMKQotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIFJlcXVlc3QgPSBDT05UQUlOSU5HX1JFQ09SRChFbnRy
eSwgWEVOVkJEX1JFUVVFU1QsIEVudHJ5KTsKLSAgICAgICAgU3JiRXh0ID0gR2V0U3JiRXh0KFJl
cXVlc3QtPlNyYik7Ci0KLSAgICAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IFN1Ym1pdHRlZFJl
cSAweCVwIC0+IEZBSUxFRFxuIiwgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwgUmVxdWVzdCk7
Ci0KLSAgICAgICAgVGFyZ2V0UHV0UmVxdWVzdChUYXJnZXQsIFJlcXVlc3QpOwotCi0gICAgICAg
IGlmIChJbnRlcmxvY2tlZERlY3JlbWVudCgmU3JiRXh0LT5Db3VudCkgPT0gMCkgewotICAgICAg
ICAgICAgU3JiRXh0LT5TcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfQUJPUlRFRDsKLSAgICAg
ICAgICAgIFNyYkV4dC0+U3JiLT5TY3NpU3RhdHVzID0gMHg0MDsgLy8gU0NTSV9BQk9SVEVECi0g
ICAgICAgICAgICBBZGFwdGVyQ29tcGxldGVTcmIoVGFyZ2V0R2V0QWRhcHRlcihUYXJnZXQpLCBT
cmJFeHQtPlNyYik7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KIFZPSUQKIFRhcmdldFJlc2V0KAog
ICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0CmRpZmYgLS1naXQgYS9z
cmMveGVudmJkL3RhcmdldC5oIGIvc3JjL3hlbnZiZC90YXJnZXQuaAppbmRleCBhODlhMzE0Li45
NDU1ZDU2IDEwMDY0NAotLS0gYS9zcmMveGVudmJkL3RhcmdldC5oCisrKyBiL3NyYy94ZW52YmQv
dGFyZ2V0LmgKQEAgLTg2LDE3ICs4Niw2IEBAIFRhcmdldElzTWlzc2luZygKICAgICBfX2luIFBY
RU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldAogICAgICk7CiAKLWV4dGVybiBjb25zdCBD
SEFSKgotVGFyZ2V0TWlzc2luZ1JlYXNvbigKLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAg
ICAgICAgVGFyZ2V0Ci0gICAgKTsKLQotX19jaGVja1JldHVybgotZXh0ZXJuIEJPT0xFQU4KLVRh
cmdldElzRW11bGF0ZWRVbnBsdWdnZWQoCi0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAg
ICAgICBUYXJnZXQKLSAgICApOwotCiBleHRlcm4gVk9JRAogVGFyZ2V0U2V0RGV2aWNlUG5wU3Rh
dGUoCiAgICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQsCkBAIC0xMzks
MjIgKzEyOCwxMSBAQCBUYXJnZXRJc1BhdXNlZCgKICAgICApOwogCiBfX2NoZWNrUmV0dXJuCi1l
eHRlcm4gVUxPTkcKLVRhcmdldE91dHN0YW5kaW5nUmVxcygKLSAgICBfX2luIFBYRU5WQkRfVEFS
R0VUICAgICAgICAgICAgIFRhcmdldAotICAgICk7Ci0KLV9fY2hlY2tSZXR1cm4KIGV4dGVybiBQ
WEVOVkJEX0FEQVBURVIKIFRhcmdldEdldEFkYXB0ZXIoCiAgICAgX19pbiBQWEVOVkJEX1RBUkdF
VCAgICAgICAgICAgICBUYXJnZXQKICAgICApOwogCi1leHRlcm4gVUxPTkcKLVRhcmdldFNlY3Rv
clNpemUoCi0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQKLSAgICAp
OwotCiAvLyBRdWV1ZS1SZWxhdGVkCiBleHRlcm4gVk9JRAogVGFyZ2V0U3VibWl0UmVxdWVzdHMo
Ci0tIAoyLjguMwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2pl
Y3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3Rp
bmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Fri Jun 23 12:50:18 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 23 Jun 2017 12:50:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dOO2U-0001Ld-CX; Fri, 23 Jun 2017 12:50:18 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=340501eb8=owen.smith@citrix.com>)
 id 1dOO2S-0001JJ-UN
 for win-pv-devel@lists.xenproject.org; Fri, 23 Jun 2017 12:50:17 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
 49/37-26749-88E0D495; Fri, 23 Jun 2017 12:50:16 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpikeJIrShJLcpLzFFi42JxWrrBXredzzf
 SYMNxNYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCasfTOTPaCjoKKz6e6mRoYFwV3MXJySAj4Sxzq
 6WQFsdkEZCU+rvzMDGKLCKhL7Pu8lQnEZhZQk7i+vwusRljAUuJxz1FGEJtFQFXix68dYPW8A
 lYSj+4+ZoWYKScxefElsBpOAWuJfVO2sHQxcnAIAdUsXF0BEhYSUJL4tvgFVKugxMmZT1ggVk
 lIHHzxgnkCI+8sJKlZSFILGJlWMaoXpxaVpRbpGuklFWWmZ5TkJmbm6BoaGOvlphYXJ6an5iQ
 mFesl5+duYgSGTT0DA+MOxlPNzocYJTmYlER5Y8/4RArxJeWnVGYkFmfEF5XmpBYfYpTh4FCS
 4C3i9Y0UEixKTU+tSMvMAQYwTFqCg0dJhHc7B1Cat7ggMbc4Mx0idYpRUUqc9z0PUEIAJJFRm
 gfXBouaS4yyUsK8jAwMDEI8BalFuZklqPKvGMU5GJWEeXNBtvNk5pXATX8FtJgJaPGMNT4gi0
 sSEVJSDYy2ebU2P4pT2mrva+atZT/56emy4KPBfEondyXvnuDHOe2C2osXaz6fC3I4FODwtb/
 BcZK3VlnQRv1Nir2pxiHaK/jC0jy7Cvatj/1vLedZ1f2IXaSvSqetp8pJtDaac3fUvsgfxwvm
 WNncent+f1EOXwur0ImKY8tOWXElHM9+u1K8e5eRhxJLcUaioRZzUXEiAJh3jYWVAgAA
X-Env-Sender: prvs=340501eb8=owen.smith@citrix.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1498222212!68536963!3
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 15308 invoked from network); 23 Jun 2017 12:50:15 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-6.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Jun 2017 12:50:15 -0000
X-IronPort-AV: E=Sophos;i="5.39,378,1493683200"; d="scan'208";a="437621424"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Fri, 23 Jun 2017 13:49:13 +0100
Message-ID: <20170623124917.13956-7-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
In-Reply-To: <20170623124917.13956-1-owen.smith@citrix.com>
References: <20170623124917.13956-1-owen.smith@citrix.com>
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 06/10] Refactor BuildIo and StartIo calls
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKU2lnbmVkLW9mZi1ieTog
T3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52YmQvYWRhcHRl
ci5jIHwgIDcwICsrKysrKysrKysrLS0tLQogc3JjL3hlbnZiZC90YXJnZXQuYyAgfCAyMzYgKysr
KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMveGVu
dmJkL3RhcmdldC5oICB8ICAyMyArKysrLQogMyBmaWxlcyBjaGFuZ2VkLCAxODkgaW5zZXJ0aW9u
cygrKSwgMTQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvYWRhcHRlci5j
IGIvc3JjL3hlbnZiZC9hZGFwdGVyLmMKaW5kZXggMTRlOWFlNi4uYjBhNzM2NSAxMDA2NDQKLS0t
IGEvc3JjL3hlbnZiZC9hZGFwdGVyLmMKKysrIGIvc3JjL3hlbnZiZC9hZGFwdGVyLmMKQEAgLTE0
MDQsNyArMTQwNCw3IEBAIEFkYXB0ZXJDb21wbGV0ZVNyYigKIAogICAgIEFTU0VSVDNVKFNyYi0+
U3JiU3RhdHVzLCAhPSwgU1JCX1NUQVRVU19QRU5ESU5HKTsKIAotICAgICsrQWRhcHRlci0+Q29t
cGxldGVkOworICAgIEludGVybG9ja2VkSW5jcmVtZW50KChQTE9ORykmQWRhcHRlci0+Q29tcGxl
dGVkKTsKIAogICAgIFN0b3JQb3J0Tm90aWZpY2F0aW9uKFJlcXVlc3RDb21wbGV0ZSwgQWRhcHRl
ciwgU3JiKTsKIH0KQEAgLTE3NTMsNyArMTc1Myw2IEBAIEFkYXB0ZXJId1Jlc2V0QnVzKAogICAg
IHJldHVybiBUUlVFOwogfQogCi0KIHN0YXRpYyBGT1JDRUlOTElORSBWT0lECiBfX0FkYXB0ZXJT
cmJQbnAoCiAgICAgSU4gIFBYRU5WQkRfQURBUFRFUiAgICAgICAgIEFkYXB0ZXIsCkBAIC0xNzgw
LDI3ICsxNzc5LDQwIEBAIEFkYXB0ZXJId0J1aWxkSW8oCiB7CiAgICAgUFhFTlZCRF9BREFQVEVS
ICAgICAgICAgQWRhcHRlciA9IERldkV4dDsKICAgICBQWEVOVkJEX1NSQkVYVCAgICAgICAgICBT
cmJFeHQgPSBTcmItPlNyYkV4dGVuc2lvbjsKKyAgICBQWEVOVkJEX1RBUkdFVCAgICAgICAgICBU
YXJnZXQ7CiAKICAgICBJbml0U3JiRXh0KFNyYik7CiAKKyAgICBJbnRlcmxvY2tlZEluY3JlbWVu
dCgoUExPTkcpJkFkYXB0ZXItPkJ1aWxkSW8pOwogICAgIHN3aXRjaCAoU3JiLT5GdW5jdGlvbikg
ewogICAgIGNhc2UgU1JCX0ZVTkNUSU9OX0VYRUNVVEVfU0NTSToKICAgICAgICAgQWRhcHRlclB1
bGx1cFNyYihBZGFwdGVyLCBTcmIpOwotICAgICAgICAvLyBJbnRlbnRpb25hbCBmYWxsIHRocm91
Z2gKKyAgICAgICAgVGFyZ2V0ID0gQWRhcHRlckdldFRhcmdldChBZGFwdGVyLCBTcmItPlRhcmdl
dElkKTsKKyAgICAgICAgaWYgKFRhcmdldCA9PSBOVUxMKQorICAgICAgICAgICAgU3JiLT5TcmJT
dGF0dXMgPSBTUkJfU1RBVFVTX05PX0RFVklDRTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
VGFyZ2V0UHJlcGFyZUlvKFRhcmdldCwgU3JiRXh0KTsKKyAgICAgICAgYnJlYWs7CisKICAgICBj
YXNlIFNSQl9GVU5DVElPTl9SRVNFVF9ERVZJQ0U6CiAgICAgY2FzZSBTUkJfRlVOQ1RJT05fRkxV
U0g6CiAgICAgY2FzZSBTUkJfRlVOQ1RJT05fU0hVVERPV046Ci0gICAgICAgICsrQWRhcHRlci0+
QnVpbGRJbzsKLSAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgICAgIFRhcmdldCA9IEFkYXB0ZXJH
ZXRUYXJnZXQoQWRhcHRlciwgU3JiLT5UYXJnZXRJZCk7CisgICAgICAgIGlmIChUYXJnZXQgPT0g
TlVMTCkKKyAgICAgICAgICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19OT19ERVZJQ0U7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19Q
RU5ESU5HOworICAgICAgICBicmVhazsKIAotICAgICAgICAvLyBkb250IHBhc3MgdG8gU3RhcnRJ
bwogICAgIGNhc2UgU1JCX0ZVTkNUSU9OX1BOUDoKICAgICAgICAgX19BZGFwdGVyU3JiUG5wKEFk
YXB0ZXIsIChQU0NTSV9QTlBfUkVRVUVTVF9CTE9DSylTcmIpOwogICAgICAgICBTcmItPlNyYlN0
YXR1cyA9IFNSQl9TVEFUVVNfU1VDQ0VTUzsKICAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIFNS
Ql9GVU5DVElPTl9BQk9SVF9DT01NQU5EOgogICAgICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9T
VEFUVVNfQUJPUlRfRkFJTEVEOwogICAgICAgICBicmVhazsKKwogICAgIGNhc2UgU1JCX0ZVTkNU
SU9OX1JFU0VUX0JVUzoKICAgICAgICAgQWRhcHRlckh3UmVzZXRCdXMoQWRhcHRlciwgU3JiLT5Q
YXRoSWQpOwogICAgICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfU1VDQ0VTUzsKQEAg
LTE4MTEsNiArMTgyMyw5IEBAIEFkYXB0ZXJId0J1aWxkSW8oCiAgICAgICAgIGJyZWFrOwogICAg
IH0KIAorICAgIGlmIChTcmItPlNyYlN0YXR1cyA9PSBTUkJfU1RBVFVTX1BFTkRJTkcpCisgICAg
ICAgIHJldHVybiBUUlVFOworCiAgICAgQWRhcHRlckNvbXBsZXRlU3JiKEFkYXB0ZXIsIFNyYkV4
dCk7CiAgICAgcmV0dXJuIEZBTFNFOwogfQpAQCAtMTgyNSwyMSArMTg0MCw0NiBAQCBBZGFwdGVy
SHdTdGFydElvKAogewogICAgIFBYRU5WQkRfQURBUFRFUiAgICAgICAgIEFkYXB0ZXIgPSBEZXZF
eHQ7CiAgICAgUFhFTlZCRF9TUkJFWFQgICAgICAgICAgU3JiRXh0ID0gU3JiLT5TcmJFeHRlbnNp
b247CisgICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgV2FzUXVldWVkID0gRkFMU0U7CiAgICAg
UFhFTlZCRF9UQVJHRVQgICAgICAgICAgVGFyZ2V0OwogCiAgICAgVGFyZ2V0ID0gQWRhcHRlckdl
dFRhcmdldChBZGFwdGVyLCBTcmItPlRhcmdldElkKTsKLSAgICBpZiAoVGFyZ2V0ID09IE5VTEwp
Ci0gICAgICAgIGdvdG8gZmFpbDE7CisgICAgaWYgKFRhcmdldCA9PSBOVUxMKSB7CisgICAgICAg
IFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19OT19ERVZJQ0U7CisgICAgICAgIGdvdG8gZG9u
ZTsKKyAgICB9CiAKLSAgICArK0FkYXB0ZXItPlN0YXJ0SW87Ci0gICAgaWYgKFRhcmdldFN0YXJ0
SW8oVGFyZ2V0LCBTcmJFeHQpKQotICAgICAgICBBZGFwdGVyQ29tcGxldGVTcmIoQWRhcHRlciwg
U3JiRXh0KTsKKyAgICBzd2l0Y2ggKFNyYi0+RnVuY3Rpb24pIHsKKyAgICBjYXNlIFNSQl9GVU5D
VElPTl9FWEVDVVRFX1NDU0k6CisgICAgICAgIFdhc1F1ZXVlZCA9IFRhcmdldFN0YXJ0SW8oVGFy
Z2V0LCBTcmJFeHQpOworICAgICAgICBicmVhazsKIAotICAgIHJldHVybiBUUlVFOworICAgIGNh
c2UgU1JCX0ZVTkNUSU9OX1JFU0VUX0RFVklDRToKKyAgICAgICAgVGFyZ2V0UmVzZXQoVGFyZ2V0
KTsKKyAgICAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7CisgICAgICAg
IGJyZWFrOwogCi1mYWlsMToKLSAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfSU5WQUxJ
RF9UQVJHRVRfSUQ7Ci0gICAgQWRhcHRlckNvbXBsZXRlU3JiKEFkYXB0ZXIsIFNyYkV4dCk7Cisg
ICAgY2FzZSBTUkJfRlVOQ1RJT05fRkxVU0g6CisgICAgICAgIFRhcmdldEZsdXNoKFRhcmdldCwg
U3JiRXh0KTsKKyAgICAgICAgV2FzUXVldWVkID0gVFJVRTsKKyAgICAgICAgYnJlYWs7CisKKyAg
ICBjYXNlIFNSQl9GVU5DVElPTl9TSFVURE9XTjoKKyAgICAgICAgVGFyZ2V0U2h1dGRvd24oVGFy
Z2V0LCBTcmJFeHQpOworICAgICAgICBXYXNRdWV1ZWQgPSBUUlVFOworICAgICAgICBicmVhazsK
KworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVChGQUxTRSk7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KKworZG9uZToKKyAgICAvLyBpZiBTUkIgV2FzUXVldWVkLCB0aGUgU1JCIHdpbGwgYmUg
Y29tcGxldGVkIHdoZW4gdGhlIFF1ZXVlcyBhcmUgcHJvY2Vzc2VkCisgICAgLy8gTm90ZTogdGhl
cmUgY291bGQgYmUgYSByYWNlIGluIHVwZGF0aW5nIHRoZSBTcmItPlNyYlN0YXR1cyBmaWVsZCBp
ZiB0aGUgCisgICAgLy8gICAgICAgcHJvY2Vzc2luZyBvZiB0aGUgcXVldWUgY29tcGxldGVzIGJl
Zm9yZSByZXR1cm5pbmcgZnJvbSBUYXJnZXRTdGFydElvCisgICAgaWYgKCFXYXNRdWV1ZWQpCisg
ICAgICAgIEFkYXB0ZXJDb21wbGV0ZVNyYihBZGFwdGVyLCBTcmJFeHQpOwogICAgIHJldHVybiBU
UlVFOwogfQogCmRpZmYgLS1naXQgYS9zcmMveGVudmJkL3RhcmdldC5jIGIvc3JjL3hlbnZiZC90
YXJnZXQuYwppbmRleCBjOWNiODAzLi5kY2Q4N2M5IDEwMDY0NAotLS0gYS9zcmMveGVudmJkL3Rh
cmdldC5jCisrKyBiL3NyYy94ZW52YmQvdGFyZ2V0LmMKQEAgLTE5MDYsNjAgKzE5MDYsMTI3IEBA
IFRhcmdldFJlYWRDYXBhY2l0eTE2KAogICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19T
VUNDRVNTOwogfQogCi0vLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0vLyBTdG9yUG9ydCBNZXRob2Rz
Ci1fX2NoZWNrUmV0dXJuCiBzdGF0aWMgRk9SQ0VJTkxJTkUgQk9PTEVBTgotX19UYXJnZXRFeGVj
dXRlU2NzaSgKLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldCwKLSAg
ICBfX2luIFBTQ1NJX1JFUVVFU1RfQkxPQ0sgICAgIFNyYgorX19WYWxpZGF0ZVNyYkZvclRhcmdl
dCgKKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgICAgICBUYXJnZXQsCisgICAgSU4gIFBTQ1NJX1JF
UVVFU1RfQkxPQ0sgU3JiCiAgICAgKQogewotICAgIGNvbnN0IFVDSEFSIE9wZXJhdGlvbiA9IENk
Yl9PcGVyYXRpb25FeChTcmIpOwotICAgIFBYRU5WQkRfRElTS0lORk8gICAgRGlza0luZm8gPSBG
cm9udGVuZEdldERpc2tJbmZvKFRhcmdldC0+RnJvbnRlbmQpOworICAgIGNvbnN0IFVDSEFSICAg
ICAgICAgICAgIE9wZXJhdGlvbiA9IENkYl9PcGVyYXRpb25FeChTcmIpOwogCi0gICAgaWYgKERp
c2tJbmZvLT5EaXNrSW5mbyAmIFZESVNLX1JFQURPTkxZKSB7Ci0gICAgICAgIFRyYWNlKCJUYXJn
ZXRbJWRdIDogKCUwOHgpIFJlYWQtT25seSwgZmFpbCBTUkIgKCUwMng6JXMpXG4iLCBUYXJnZXRH
ZXRUYXJnZXRJZChUYXJnZXQpLAotICAgICAgICAgICAgICAgIERpc2tJbmZvLT5EaXNrSW5mbywg
T3BlcmF0aW9uLCBDZGJfT3BlcmF0aW9uTmFtZShPcGVyYXRpb24pKTsKLSAgICAgICAgU3JiLT5T
Y3NpU3RhdHVzID0gMHg0MDsgLy8gU0NTSV9BQk9SVAotICAgICAgICByZXR1cm4gVFJVRTsKKyAg
ICBpZiAoVGFyZ2V0ID09IE5VTEwpIHsKKyAgICAgICAgRXJyb3IoIkludmFsaWQgVGFyZ2V0KE5V
TEwpICglMDJ4OiVzKVxuIiwKKyAgICAgICAgICAgICAgT3BlcmF0aW9uLAorICAgICAgICAgICAg
ICBDZGJfT3BlcmF0aW9uTmFtZShPcGVyYXRpb24pKTsKKyAgICAgICAgU3JiLT5TcmJTdGF0dXMg
PSBTUkJfU1RBVFVTX0lOVkFMSURfVEFSR0VUX0lEOworICAgICAgICByZXR1cm4gRkFMU0U7Cisg
ICAgfQorCisgICAgaWYgKFNyYi0+UGF0aElkICE9IDApIHsKKyAgICAgICAgRXJyb3IoIlRhcmdl
dFslZF0gOiBJbnZhbGlkIFBhdGhJZCglZCkgKCUwMng6JXMpXG4iLAorICAgICAgICAgICAgICBU
YXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLAorICAgICAgICAgICAgICBTcmItPlBhdGhJZCwKKyAg
ICAgICAgICAgICAgT3BlcmF0aW9uLAorICAgICAgICAgICAgICBDZGJfT3BlcmF0aW9uTmFtZShP
cGVyYXRpb24pKTsKKyAgICAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX0lOVkFMSURf
UEFUSF9JRDsKKyAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgIH0KIAotICAgIC8vIGlkZWE6IGNo
ZWNrIHBkbyBzdGF0ZSBoZXJlLiBzdGlsbCBwdXNoIHRvIGZyZXNoc3JicworICAgIGlmIChTcmIt
Pkx1biAhPSAwKSB7CisgICAgICAgIEVycm9yKCJUYXJnZXRbJWRdIDogSW52YWxpZCBMdW4oJWQp
ICglMDJ4OiVzKVxuIiwKKyAgICAgICAgICAgICAgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwK
KyAgICAgICAgICAgICAgU3JiLT5MdW4sCisgICAgICAgICAgICAgIE9wZXJhdGlvbiwKKyAgICAg
ICAgICAgICAgQ2RiX09wZXJhdGlvbk5hbWUoT3BlcmF0aW9uKSk7CisgICAgICAgIFNyYi0+U3Ji
U3RhdHVzID0gU1JCX1NUQVRVU19JTlZBTElEX0xVTjsKKyAgICAgICAgcmV0dXJuIEZBTFNFOwor
ICAgIH0KKworICAgIGlmIChUYXJnZXRJc01pc3NpbmcoVGFyZ2V0KSkgeworICAgICAgICBFcnJv
cigiVGFyZ2V0WyVkXSA6ICVzICglcykgKCUwMng6JXMpXG4iLAorICAgICAgICAgICAgICBUYXJn
ZXRHZXRUYXJnZXRJZChUYXJnZXQpLAorICAgICAgICAgICAgICBUYXJnZXQtPk1pc3NpbmcgPyAi
TUlTU0lORyIgOiAiTk9UX01JU1NJTkciLAorICAgICAgICAgICAgICBUYXJnZXQtPlJlYXNvbiwK
KyAgICAgICAgICAgICAgT3BlcmF0aW9uLAorICAgICAgICAgICAgICBDZGJfT3BlcmF0aW9uTmFt
ZShPcGVyYXRpb24pKTsKKyAgICAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX05PX0RF
VklDRTsKKyAgICAgICAgcmV0dXJuIEZBTFNFOworICAgIH0KKworICAgIHJldHVybiBUUlVFOwor
fQorCitWT0lECitUYXJnZXRQcmVwYXJlSW8oCisgICAgSU4gIFBYRU5WQkRfVEFSR0VUICBUYXJn
ZXQsCisgICAgSU4gIFBYRU5WQkRfU1JCRVhUICBTcmJFeHQKKyAgICApCit7CisgICAgUFNDU0lf
UkVRVUVTVF9CTE9DSyBTcmIgPSBTcmJFeHQtPlNyYjsKKworICAgIGlmICghX19WYWxpZGF0ZVNy
YkZvclRhcmdldChUYXJnZXQsIFNyYikpCisgICAgICAgIHJldHVybjsKKworICAgIFNyYi0+U3Ji
U3RhdHVzID0gU1JCX1NUQVRVU19QRU5ESU5HOworfQorCitCT09MRUFOCitUYXJnZXRTdGFydElv
KAorICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0LAorICAgIElOICBQWEVOVkJEX1NSQkVY
VCAgU3JiRXh0CisgICAgKQoreworICAgIFBTQ1NJX1JFUVVFU1RfQkxPQ0sgU3JiID0gU3JiRXh0
LT5TcmI7CisgICAgY29uc3QgVUNIQVIgICAgICAgICBPcGVyYXRpb24gPSBDZGJfT3BlcmF0aW9u
RXgoU3JiKTsKKyAgICBCT09MRUFOICAgICAgICAgICAgIFdhc1F1ZXVlZCA9IEZBTFNFOworCisg
ICAgQVNTRVJUKF9fVmFsaWRhdGVTcmJGb3JUYXJnZXQoVGFyZ2V0LCBTcmIpKTsKKwogICAgIHN3
aXRjaCAoT3BlcmF0aW9uKSB7CiAgICAgY2FzZSBTQ1NJT1BfUkVBRDoKICAgICBjYXNlIFNDU0lP
UF9XUklURToKLSAgICAgICAgcmV0dXJuIFRhcmdldFJlYWRXcml0ZShUYXJnZXQsIFNyYik7Cisg
ICAgICAgIGlmICghVGFyZ2V0UmVhZFdyaXRlKFRhcmdldCwgU3JiKSkKKyAgICAgICAgICAgIFdh
c1F1ZXVlZCA9IFRSVUU7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBTQ1NJT1BfU1lOQ0hS
T05JWkVfQ0FDSEU6Ci0gICAgICAgIHJldHVybiBUYXJnZXRTeW5jQ2FjaGUoVGFyZ2V0LCBTcmIp
OworICAgIGNhc2UgU0NTSU9QX1VOTUFQOgorICAgICAgICBpZiAoIVRhcmdldFVubWFwKFRhcmdl
dCwgU3JiKSkKKyAgICAgICAgICAgIFdhc1F1ZXVlZCA9IFRSVUU7CiAgICAgICAgIGJyZWFrOwog
Ci0gICAgY2FzZSBTQ1NJT1BfVU5NQVA6Ci0gICAgICAgIHJldHVybiBUYXJnZXRVbm1hcChUYXJn
ZXQsIFNyYik7CisgICAgY2FzZSBTQ1NJT1BfU1lOQ0hST05JWkVfQ0FDSEU6CisgICAgICAgIGlm
ICghVGFyZ2V0U3luY0NhY2hlKFRhcmdldCwgU3JiKSkKKyAgICAgICAgICAgIFdhc1F1ZXVlZCA9
IFRSVUU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBTQ1NJT1BfSU5RVUlSWToKICAgICAg
ICAgQWRhcHRlclNldERldmljZVF1ZXVlRGVwdGgoVGFyZ2V0R2V0QWRhcHRlcihUYXJnZXQpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRHZXRUYXJnZXRJZChUYXJn
ZXQpKTsKLSAgICAgICAgUGRvSW5xdWlyeShUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLCBGcm9u
dGVuZEdldElucXVpcnkoVGFyZ2V0LT5Gcm9udGVuZCksIFNyYik7CisgICAgICAgIFBkb0lucXVp
cnkoVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwKKyAgICAgICAgICAgICAgICAgICBGcm9udGVu
ZEdldElucXVpcnkoVGFyZ2V0LT5Gcm9udGVuZCksCisgICAgICAgICAgICAgICAgICAgU3JiKTsK
ICAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIFNDU0lPUF9NT0RFX1NFTlNFOgogICAgICAgICBU
YXJnZXRNb2RlU2Vuc2UoVGFyZ2V0LCBTcmIpOwogICAgICAgICBicmVhazsKKwogICAgIGNhc2Ug
U0NTSU9QX1JFUVVFU1RfU0VOU0U6CiAgICAgICAgIFRhcmdldFJlcXVlc3RTZW5zZShUYXJnZXQs
IFNyYik7CiAgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBTQ1NJT1BfUkVQT1JUX0xVTlM6CiAg
ICAgICAgIFRhcmdldFJlcG9ydEx1bnMoVGFyZ2V0LCBTcmIpOwogICAgICAgICBicmVhazsKKwog
ICAgIGNhc2UgU0NTSU9QX1JFQURfQ0FQQUNJVFk6CiAgICAgICAgIFRhcmdldFJlYWRDYXBhY2l0
eShUYXJnZXQsIFNyYik7CiAgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBTQ1NJT1BfUkVBRF9D
QVBBQ0lUWTE2OgogICAgICAgICBUYXJnZXRSZWFkQ2FwYWNpdHkxNihUYXJnZXQsIFNyYik7CiAg
ICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBTQ1NJT1BfTUVESVVNX1JFTU9WQUw6CiAgICAgY2Fz
ZSBTQ1NJT1BfVEVTVF9VTklUX1JFQURZOgogICAgIGNhc2UgU0NTSU9QX1JFU0VSVkVfVU5JVDoK
QEAgLTE5NjgsMTM2ICsyMDM1LDYxIEBAIF9fVGFyZ2V0RXhlY3V0ZVNjc2koCiAgICAgY2FzZSBT
Q1NJT1BfUkVMRUFTRV9VTklUMTA6CiAgICAgY2FzZSBTQ1NJT1BfVkVSSUZZOgogICAgIGNhc2Ug
U0NTSU9QX1ZFUklGWTE2OgotICAgICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfU1VD
Q0VTUzsKLSAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTQ1NJT1BfU1RBUlRfU1RPUF9VTklUOgot
ICAgICAgICBUcmFjZSgiVGFyZ2V0WyVkXSA6IFN0YXJ0L1N0b3AgVW5pdCAoJTAyWClcbiIsIFRh
cmdldEdldFRhcmdldElkKFRhcmdldCksIFNyYi0+Q2RiWzRdKTsKICAgICAgICAgU3JiLT5TcmJT
dGF0dXMgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7CiAgICAgICAgIGJyZWFrOworCiAgICAgZGVmYXVs
dDoKLSAgICAgICAgVHJhY2UoIlRhcmdldFslZF0gOiBVbnN1cHBvcnRlZCBDREIgKCUwMng6JXMp
XG4iLCBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLCBPcGVyYXRpb24sIENkYl9PcGVyYXRpb25O
YW1lKE9wZXJhdGlvbikpOworICAgICAgICBUcmFjZSgiVGFyZ2V0WyVkXSA6IFVuc3VwcG9ydGVk
IENEQiAoJTAyeDolcylcbiIsCisgICAgICAgICAgICAgIFRhcmdldEdldFRhcmdldElkKFRhcmdl
dCksCisgICAgICAgICAgICAgIE9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgQ2RiX09wZXJhdGlv
bk5hbWUoT3BlcmF0aW9uKSk7CisgICAgICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19J
TlZBTElEX1JFUVVFU1Q7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICByZXR1cm4gVFJVRTsK
LX0KLQotc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4KLV9fVGFyZ2V0UXVldWVTaHV0ZG93bigK
LSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldCwKLSAgICBfX2luIFBT
Q1NJX1JFUVVFU1RfQkxPQ0sgICAgIFNyYgotICAgICkKLXsKLSAgICBQWEVOVkJEX1NSQkVYVCAg
ICAgIFNyYkV4dCA9IEdldFNyYkV4dChTcmIpOwotICAgIFBYRU5WQkRfTk9USUZJRVIgICAgTm90
aWZpZXIgPSBGcm9udGVuZEdldE5vdGlmaWVyKFRhcmdldC0+RnJvbnRlbmQpOwotCi0gICAgUXVl
dWVBcHBlbmQoJlRhcmdldC0+U2h1dGRvd25TcmJzLCAmU3JiRXh0LT5FbnRyeSk7Ci0gICAgTm90
aWZpZXJLaWNrKE5vdGlmaWVyKTsKLQotICAgIHJldHVybiBGQUxTRTsKLX0KLQotc3RhdGljIEZP
UkNFSU5MSU5FIEJPT0xFQU4KLV9fVGFyZ2V0UmVzZXQoCi0gICAgX19pbiBQWEVOVkJEX1RBUkdF
VCAgICAgICAgICAgICBUYXJnZXQsCi0gICAgX19pbiBQU0NTSV9SRVFVRVNUX0JMT0NLICAgICBT
cmIKLSAgICApCi17Ci0gICAgVmVyYm9zZSgiVGFyZ2V0WyV1XSA9PT09PlxuIiwgVGFyZ2V0R2V0
VGFyZ2V0SWQoVGFyZ2V0KSk7Ci0KLSAgICBUYXJnZXRSZXNldChUYXJnZXQpOwotICAgIFNyYi0+
U3JiU3RhdHVzID0gU1JCX1NUQVRVU19TVUNDRVNTOwotCi0gICAgVmVyYm9zZSgiVGFyZ2V0WyV1
XSA8PT09PVxuIiwgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSk7Ci0gICAgcmV0dXJuIFRSVUU7
CisgICAgcmV0dXJuIFdhc1F1ZXVlZDsKIH0KIAotX19jaGVja1JldHVybgotc3RhdGljIEZPUkNF
SU5MSU5FIEJPT0xFQU4KLV9fVmFsaWRhdGVTcmJGb3JUYXJnZXQoCi0gICAgX19pbiBQWEVOVkJE
X1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQsCi0gICAgX19pbiBQU0NTSV9SRVFVRVNUX0JMT0NL
ICAgICBTcmIKK1ZPSUQKK1RhcmdldFJlc2V0KAorICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFy
Z2V0CiAgICAgKQogewotICAgIGNvbnN0IFVDSEFSIE9wZXJhdGlvbiA9IENkYl9PcGVyYXRpb25F
eChTcmIpOwotCi0gICAgaWYgKFRhcmdldCA9PSBOVUxMKSB7Ci0gICAgICAgIEVycm9yKCJJbnZh
bGlkIFRhcmdldChOVUxMKSAoJTAyeDolcylcbiIsCi0gICAgICAgICAgICAgICAgT3BlcmF0aW9u
LCBDZGJfT3BlcmF0aW9uTmFtZShPcGVyYXRpb24pKTsKLSAgICAgICAgU3JiLT5TcmJTdGF0dXMg
PSBTUkJfU1RBVFVTX0lOVkFMSURfVEFSR0VUX0lEOwotICAgICAgICByZXR1cm4gRkFMU0U7Ci0g
ICAgfQorICAgIFZlcmJvc2UoIlsldV0gPT09PT0+XG4iLCBUYXJnZXRHZXRUYXJnZXRJZChUYXJn
ZXQpKTsKIAotICAgIGlmIChTcmItPlBhdGhJZCAhPSAwKSB7Ci0gICAgICAgIEVycm9yKCJUYXJn
ZXRbJWRdIDogSW52YWxpZCBQYXRoSWQoJWQpICglMDJ4OiVzKVxuIiwKLSAgICAgICAgICAgICAg
ICBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLCBTcmItPlBhdGhJZCwgT3BlcmF0aW9uLCBDZGJf
T3BlcmF0aW9uTmFtZShPcGVyYXRpb24pKTsKLSAgICAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJf
U1RBVFVTX0lOVkFMSURfUEFUSF9JRDsKLSAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgIH0KKyAg
ICBfX1RhcmdldFBhdXNlRGF0YVBhdGgoVGFyZ2V0LCBUUlVFKTsKIAotICAgIGlmIChTcmItPkx1
biAhPSAwKSB7Ci0gICAgICAgIEVycm9yKCJUYXJnZXRbJWRdIDogSW52YWxpZCBMdW4oJWQpICgl
MDJ4OiVzKVxuIiwKLSAgICAgICAgICAgICAgICBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLCBT
cmItPkx1biwgT3BlcmF0aW9uLCBDZGJfT3BlcmF0aW9uTmFtZShPcGVyYXRpb24pKTsKLSAgICAg
ICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX0lOVkFMSURfTFVOOwotICAgICAgICByZXR1
cm4gRkFMU0U7CisgICAgaWYgKFF1ZXVlQ291bnQoJlRhcmdldC0+U3VibWl0dGVkUmVxcykpIHsK
KyAgICAgICAgRXJyb3IoIlRhcmdldFslZF0gOiBiYWNrZW5kIGhhcyAldSBvdXRzdGFuZGluZyBy
ZXF1ZXN0cyBhZnRlciBhIFRhcmdldFJlc2V0XG4iLAorICAgICAgICAgICAgICBUYXJnZXRHZXRU
YXJnZXRJZChUYXJnZXQpLAorICAgICAgICAgICAgICBRdWV1ZUNvdW50KCZUYXJnZXQtPlN1Ym1p
dHRlZFJlcXMpKTsKICAgICB9CiAKLSAgICBpZiAoVGFyZ2V0SXNNaXNzaW5nKFRhcmdldCkpIHsK
LSAgICAgICAgRXJyb3IoIlRhcmdldFslZF0gOiAlcyAoJXMpICglMDJ4OiVzKVxuIiwKLSAgICAg
ICAgICAgICAgICBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLCBUYXJnZXQtPk1pc3NpbmcgPyAi
TUlTU0lORyIgOiAiTk9UX01JU1NJTkciLCBUYXJnZXQtPlJlYXNvbiwgT3BlcmF0aW9uLCBDZGJf
T3BlcmF0aW9uTmFtZShPcGVyYXRpb24pKTsKLSAgICAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJf
U1RBVFVTX05PX0RFVklDRTsKLSAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgIH0KKyAgICBfX1Rh
cmdldFVucGF1c2VEYXRhUGF0aChUYXJnZXQpOwogCi0gICAgcmV0dXJuIFRSVUU7CisgICAgVmVy
Ym9zZSgiWyV1XSA8PT09PT1cbiIsIFRhcmdldEdldFRhcmdldElkKFRhcmdldCkpOwogfQogCi1C
T09MRUFOCi1UYXJnZXRTdGFydElvKAorVk9JRAorVGFyZ2V0Rmx1c2goCiAgICAgSU4gIFBYRU5W
QkRfVEFSR0VUICBUYXJnZXQsCiAgICAgSU4gIFBYRU5WQkRfU1JCRVhUICBTcmJFeHQKICAgICAp
CiB7Ci0gICAgUFNDU0lfUkVRVUVTVF9CTE9DSyBTcmIgPSBTcmJFeHQtPlNyYjsKLQotICAgIGlm
ICghX19WYWxpZGF0ZVNyYkZvclRhcmdldChUYXJnZXQsIFNyYikpCi0gICAgICAgIHJldHVybiBU
UlVFOwotCi0gICAgc3dpdGNoIChTcmItPkZ1bmN0aW9uKSB7Ci0gICAgY2FzZSBTUkJfRlVOQ1RJ
T05fRVhFQ1VURV9TQ1NJOgotICAgICAgICByZXR1cm4gX19UYXJnZXRFeGVjdXRlU2NzaShUYXJn
ZXQsIFNyYik7Ci0KLSAgICBjYXNlIFNSQl9GVU5DVElPTl9SRVNFVF9ERVZJQ0U6Ci0gICAgICAg
IHJldHVybiBfX1RhcmdldFJlc2V0KFRhcmdldCwgU3JiKTsKLQotICAgIGNhc2UgU1JCX0ZVTkNU
SU9OX0ZMVVNIOgotICAgIGNhc2UgU1JCX0ZVTkNUSU9OX1NIVVRET1dOOgotICAgICAgICByZXR1
cm4gX19UYXJnZXRRdWV1ZVNodXRkb3duKFRhcmdldCwgU3JiKTsKLQotICAgIGRlZmF1bHQ6Ci0g
ICAgICAgIHJldHVybiBUUlVFOwotICAgIH0KKyAgICBRdWV1ZUFwcGVuZCgmVGFyZ2V0LT5TaHV0
ZG93blNyYnMsICZTcmJFeHQtPkVudHJ5KTsKKyAgICBOb3RpZmllcktpY2soRnJvbnRlbmRHZXRO
b3RpZmllcihUYXJnZXQtPkZyb250ZW5kKSk7CiB9CiAKIFZPSUQKLVRhcmdldFJlc2V0KAotICAg
IF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0CitUYXJnZXRTaHV0ZG93bigK
KyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldCwKKyAgICBJTiAgUFhFTlZCRF9TUkJFWFQg
IFNyYkV4dAogICAgICkKIHsKLSAgICBUcmFjZSgiVGFyZ2V0WyVkXSA9PT09PiAoSXJxbD0lZClc
biIsIFRhcmdldEdldFRhcmdldElkKFRhcmdldCksIEtlR2V0Q3VycmVudElycWwoKSk7Ci0KLSAg
ICBfX1RhcmdldFBhdXNlRGF0YVBhdGgoVGFyZ2V0LCBUUlVFKTsKLQotICAgIGlmIChRdWV1ZUNv
dW50KCZUYXJnZXQtPlN1Ym1pdHRlZFJlcXMpKSB7Ci0gICAgICAgIEVycm9yKCJUYXJnZXRbJWRd
IDogYmFja2VuZCBoYXMgJXUgb3V0c3RhbmRpbmcgcmVxdWVzdHMgYWZ0ZXIgYSBUYXJnZXRSZXNl
dFxuIiwKLSAgICAgICAgICAgICAgICBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLCBRdWV1ZUNv
dW50KCZUYXJnZXQtPlN1Ym1pdHRlZFJlcXMpKTsKLSAgICB9Ci0KLSAgICBfX1RhcmdldFVucGF1
c2VEYXRhUGF0aChUYXJnZXQpOwotCi0gICAgVHJhY2UoIlRhcmdldFslZF0gPD09PT0gKElycWw9
JWQpXG4iLCBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLCBLZUdldEN1cnJlbnRJcnFsKCkpOwor
ICAgIFF1ZXVlQXBwZW5kKCZUYXJnZXQtPlNodXRkb3duU3JicywgJlNyYkV4dC0+RW50cnkpOwor
ICAgIE5vdGlmaWVyS2ljayhGcm9udGVuZEdldE5vdGlmaWVyKFRhcmdldC0+RnJvbnRlbmQpKTsK
IH0KIAotCiBWT0lECiBUYXJnZXRTcmJQbnAoCiAgICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAg
ICAgICAgICBUYXJnZXQsCmRpZmYgLS1naXQgYS9zcmMveGVudmJkL3RhcmdldC5oIGIvc3JjL3hl
bnZiZC90YXJnZXQuaAppbmRleCA2N2I2MzE5Li44ODA4NDYwIDEwMDY0NAotLS0gYS9zcmMveGVu
dmJkL3RhcmdldC5oCisrKyBiL3NyYy94ZW52YmQvdGFyZ2V0LmgKQEAgLTE1NiwxMCArMTU2LDEw
IEBAIFRhcmdldFBvc3RSZXN1bWUoCiAgICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAg
ICBUYXJnZXQKICAgICApOwogCi0vLyBTdG9yUG9ydCBNZXRob2RzCiBleHRlcm4gVk9JRAotVGFy
Z2V0UmVzZXQoCi0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQKK1Rh
cmdldFByZXBhcmVJbygKKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldCwKKyAgICBJTiAg
UFhFTlZCRF9TUkJFWFQgIFNyYkV4dAogICAgICk7CiAKIGV4dGVybiBCT09MRUFOCkBAIC0xNjks
NiArMTY5LDIzIEBAIFRhcmdldFN0YXJ0SW8oCiAgICAgKTsKIAogZXh0ZXJuIFZPSUQKK1Rhcmdl
dFJlc2V0KAorICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0CisgICAgKTsKKworZXh0ZXJu
IFZPSUQKK1RhcmdldEZsdXNoKAorICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0LAorICAg
IElOICBQWEVOVkJEX1NSQkVYVCAgU3JiRXh0CisgICAgKTsKKworZXh0ZXJuIFZPSUQKK1Rhcmdl
dFNodXRkb3duKAorICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0LAorICAgIElOICBQWEVO
VkJEX1NSQkVYVCAgU3JiRXh0CisgICAgKTsKKworZXh0ZXJuIFZPSUQKIFRhcmdldFNyYlBucCgK
ICAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldCwKICAgICBfX2luIFBT
Q1NJX1BOUF9SRVFVRVNUX0JMT0NLIFNyYgotLSAKMi44LjMKCgpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Fri Jun 23 13:16:26 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Fri, 23 Jun 2017 13:16:26 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dOORl-0003Xa-JH; Fri, 23 Jun 2017 13:16:25 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=340501eb8=owen.smith@citrix.com>)
 id 1dOORk-0003XS-Fz
 for win-pv-devel@lists.xenproject.org; Fri, 23 Jun 2017 13:16:24 +0000
Received: from [193.109.254.147] by server-9.bemta-6.messagelabs.com id
 DF/91-03557-7A41D495; Fri, 23 Jun 2017 13:16:23 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpgkeJIrShJLcpLzFFi42JxWrrBXne5iG+
 kQdc7Zos/ixMdGD0Of7jCEsAYxZqZl5RfkcCacXixUsFNq4pdswwbGDdpdzFycEgI+EucPFbV
 xcjJwSYgK/Fx5WdmEFtEQF1i3+etTCA2s4CaxPX9XawgtjBQ/Nj2lSwgNouAqsSu14fA4rwC1
 hILly4B65UQkJOYvPgSI4jNCRTfN2ULC8gqIQEriYWrK0DCQgJKEt8Wv2CGaBWUODnzCQvEKg
 mJgy9eME9g5J2FJDULSWoBI9MqRo3i1KKy1CJdY2O9pKLM9IyS3MTMHF1DAzO93NTi4sT01Jz
 EpGK95PzcTYzAkGEAgh2MO9cHHmKU5GBSEuWNPeMTKcSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mC
 N1/YN1JIsCg1PbUiLTMHGLwwaQkOHiUR3u0cQGne4oLE3OLMdIjUKUZFKXHeKJA+AZBERmkeX
 BssYi4xykoJ8zICHSLEU5BalJtZgir/ilGcg1FJmDcIZApPZl4J3PRXQIuZgBbPWOMDsrgkES
 El1cA4uysn/tAsefO/uYnLFj+IbGS/mnckwG7TNcGf01JNz1YUdWtqbtZpkHq8Nywyau2lnEd
 rZV+e5mc8czD23uOiwAk2h2+cSX+/+v+J85zXrdtOH47pXNB6/6BImFiVyfe7Z34y9TcLMh38
 f1j4QH+H9fqkfqbYToGvzwuEszJmRu+9y1WdOXm2EktxRqKhFnNRcSIApt/YHZMCAAA=
X-Env-Sender: prvs=340501eb8=owen.smith@citrix.com
X-Msg-Ref: server-16.tower-27.messagelabs.com!1498223779!108834593!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 50239 invoked from network); 23 Jun 2017 13:16:22 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 23 Jun 2017 13:16:22 -0000
X-IronPort-AV: E=Sophos;i="5.39,378,1493683200"; d="scan'208";a="437626518"
From: <owen.smith@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Fri, 23 Jun 2017 13:49:17 +0100
Message-ID: <20170623124917.13956-11-owen.smith@citrix.com>
X-Mailer: git-send-email 2.8.3
In-Reply-To: <20170623124917.13956-1-owen.smith@citrix.com>
References: <20170623124917.13956-1-owen.smith@citrix.com>
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: [win-pv-devel] [PATCH 10/10] Tidy up target.h
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgoKU2lnbmVkLW9mZi1ieTog
T3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52YmQvYWRhcHRl
ci5jIHwgIDIgKy0KIHNyYy94ZW52YmQvdGFyZ2V0LmMgIHwgOTkgKysrKysrKysrKysrKysrKysr
KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjL3hlbnZiZC90YXJnZXQuaCAg
fCA0MiArKysrKysrLS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlv
bnMoKyksIDgzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvYWRhcHRlci5j
IGIvc3JjL3hlbnZiZC9hZGFwdGVyLmMKaW5kZXggNTVhMTk2Mi4uMmY0Y2Y5YyAxMDA2NDQKLS0t
IGEvc3JjL3hlbnZiZC9hZGFwdGVyLmMKKysrIGIvc3JjL3hlbnZiZC9hZGFwdGVyLmMKQEAgLTQ1
MCw3ICs0NTAsNyBAQCBfX0FkYXB0ZXJFbnVtZXJhdGUoCiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KIAotICAgICAgICBpZiAoTWlzc2luZyAmJiAhVGFyZ2V0SXNNaXNzaW5nKFRhcmdldCkpIHsK
KyAgICAgICAgaWYgKE1pc3NpbmcgJiYgIVRhcmdldEdldE1pc3NpbmcoVGFyZ2V0KSkgewogICAg
ICAgICAgICAgVGFyZ2V0U2V0TWlzc2luZyhUYXJnZXQsICJEZXZpY2UgRGlzYXBwZWFyZWQiKTsK
ICAgICAgICAgICAgIGlmIChUYXJnZXRHZXREZXZpY2VQbnBTdGF0ZShUYXJnZXQpID09IFByZXNl
bnQpCiAgICAgICAgICAgICAgICAgVGFyZ2V0U2V0RGV2aWNlUG5wU3RhdGUoVGFyZ2V0LCBEZWxl
dGVkKTsKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvdGFyZ2V0LmMgYi9zcmMveGVudmJkL3Rhcmdl
dC5jCmluZGV4IDI1MjczNjAuLmZmZmZhM2UgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52YmQvdGFyZ2V0
LmMKKysrIGIvc3JjL3hlbnZiZC90YXJnZXQuYwpAQCAtMjQ2LDggKzI0Niw2IEBAIF9fUG5wU3Rh
dGVOYW1lKAogICAgIH0KIH0KIAotLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLy8gUG93ZXIgU3Rh
dGVzCiBfX2NoZWNrUmV0dXJuCiBzdGF0aWMgRk9SQ0VJTkxJTkUgQk9PTEVBTgogVGFyZ2V0U2V0
RGV2aWNlUG93ZXJTdGF0ZSgKQEAgLTI2OSw0OSArMjY3LDM2IEBAIFRhcmdldFNldERldmljZVBv
d2VyU3RhdGUoCiAgICAgcmV0dXJuIENoYW5nZWQ7CiB9CiAKLS8vPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS8vIFBuUCBTdGF0ZXMKLUZPUkNFSU5MSU5FIFZPSUQKK1ZPSUQKIFRhcmdldFNldE1pc3Np
bmcoCi0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQsCi0gICAgX19p
biBfX251bGx0ZXJtaW5hdGVkIGNvbnN0IENIQVIqIFJlYXNvbgorICAgIElOICBQWEVOVkJEX1RB
UkdFVCAgVGFyZ2V0LAorICAgIElOICBjb25zdCBDSEFSICAgICAgKlJlYXNvbgogICAgICkKIHsK
LSAgICBLSVJRTCAgIElycWw7CisgICAgS0lSUUwgICAgICAgICAgICAgICBJcnFsOwogCiAgICAg
QVNTRVJUM1AoUmVhc29uLCAhPSwgTlVMTCk7CiAKICAgICBLZUFjcXVpcmVTcGluTG9jaygmVGFy
Z2V0LT5Mb2NrLCAmSXJxbCk7CiAgICAgaWYgKFRhcmdldC0+TWlzc2luZykgewotICAgICAgICBW
ZXJib3NlKCJUYXJnZXRbJWRdIDogQWxyZWFkeSBNSVNTSU5HICglcykgd2hlbiB0cnlpbmcgdG8g
c2V0ICglcylcbiIsIFRhcmdldEdldFRhcmdldElkKFRhcmdldCksIFRhcmdldC0+UmVhc29uLCBS
ZWFzb24pOworICAgICAgICBWZXJib3NlKCJUYXJnZXRbJWRdIDogQWxyZWFkeSBNSVNTSU5HICgl
cykgd2hlbiB0cnlpbmcgdG8gc2V0ICglcylcbiIsCisgICAgICAgICAgICAgICAgVGFyZ2V0R2V0
VGFyZ2V0SWQoVGFyZ2V0KSwKKyAgICAgICAgICAgICAgICBUYXJnZXQtPlJlYXNvbiwKKyAgICAg
ICAgICAgICAgICBSZWFzb24pOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIFZlcmJvc2UoIlRhcmdl
dFslZF0gOiBNSVNTSU5HICVzXG4iLCBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLCBSZWFzb24p
OworICAgICAgICBWZXJib3NlKCJUYXJnZXRbJWRdIDogTUlTU0lORyAlc1xuIiwKKyAgICAgICAg
ICAgICAgICBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLAorICAgICAgICAgICAgICAgIFJlYXNv
bik7CiAgICAgICAgIFRhcmdldC0+TWlzc2luZyA9IFRSVUU7CiAgICAgICAgIFRhcmdldC0+UmVh
c29uID0gUmVhc29uOwogICAgIH0KICAgICBLZVJlbGVhc2VTcGluTG9jaygmVGFyZ2V0LT5Mb2Nr
LCBJcnFsKTsKIH0KIAotX19jaGVja1JldHVybgotRk9SQ0VJTkxJTkUgQk9PTEVBTgotVGFyZ2V0
SXNNaXNzaW5nKAotICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0Ci0g
ICAgKQotewotICAgIEtJUlFMICAgSXJxbDsKLSAgICBCT09MRUFOIE1pc3Npbmc7Ci0KLSAgICBL
ZUFjcXVpcmVTcGluTG9jaygmVGFyZ2V0LT5Mb2NrLCAmSXJxbCk7Ci0gICAgTWlzc2luZyA9IFRh
cmdldC0+TWlzc2luZzsKLSAgICBLZVJlbGVhc2VTcGluTG9jaygmVGFyZ2V0LT5Mb2NrLCBJcnFs
KTsKLQotICAgIHJldHVybiBNaXNzaW5nOwotfQotCi1GT1JDRUlOTElORSBWT0lECitWT0lECiBU
YXJnZXRTZXREZXZpY2VQbnBTdGF0ZSgKLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAg
ICAgIFRhcmdldCwKLSAgICBfX2luIERFVklDRV9QTlBfU1RBVEUgICAgICAgIFN0YXRlCisgICAg
SU4gIFBYRU5WQkRfVEFSR0VUICAgICAgVGFyZ2V0LAorICAgIElOICBERVZJQ0VfUE5QX1NUQVRF
ICAgIFN0YXRlCiAgICAgKQogewogICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBQTlAgJXMgdG8g
JXNcbiIsCkBAIC0zMjYsMTUgKzMxMSw2IEBAIFRhcmdldFNldERldmljZVBucFN0YXRlKAogICAg
IFRhcmdldC0+RGV2aWNlUG5wU3RhdGUgPSBTdGF0ZTsKIH0KIAotX19jaGVja1JldHVybgotRk9S
Q0VJTkxJTkUgREVWSUNFX1BOUF9TVEFURQotVGFyZ2V0R2V0RGV2aWNlUG5wU3RhdGUoCi0gICAg
X19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQKLSAgICApCi17Ci0gICAgcmV0
dXJuIFRhcmdldC0+RGV2aWNlUG5wU3RhdGU7Ci19Ci0KIHN0YXRpYyBGT1JDRUlOTElORSBWT0lE
CiBfX1RhcmdldFJlc3RvcmVEZXZpY2VQbnBTdGF0ZSgKICAgICBfX2luIFBYRU5WQkRfVEFSR0VU
ICAgICAgICAgICAgIFRhcmdldCwKQEAgLTM0NywyNiArMzIzLDI3IEBAIF9fVGFyZ2V0UmVzdG9y
ZURldmljZVBucFN0YXRlKAogICAgIH0KIH0KIAotRk9SQ0VJTkxJTkUgVk9JRAorVk9JRAogVGFy
Z2V0U2V0RGV2aWNlT2JqZWN0KAotICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAg
VGFyZ2V0LAotICAgIF9faW4gUERFVklDRV9PQkpFQ1QgICAgICAgICAgRGV2aWNlT2JqZWN0Cisg
ICAgSU4gIFBYRU5WQkRfVEFSR0VUICBUYXJnZXQsCisgICAgSU4gIFBERVZJQ0VfT0JKRUNUICBE
ZXZpY2VPYmplY3QKICAgICApCiB7Ci0gICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IFNldHRpbmcg
RGV2aWNlT2JqZWN0ID0gMHglcFxuIiwgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwgRGV2aWNl
T2JqZWN0KTsKKyAgICBWZXJib3NlKCJUYXJnZXRbJWRdIDogU2V0dGluZyBEZXZpY2VPYmplY3Qg
PSAweCVwXG4iLAorICAgICAgICAgICAgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwKKyAgICAg
ICAgICAgIERldmljZU9iamVjdCk7CiAKICAgICBBU1NFUlQzUChUYXJnZXQtPkRldmljZU9iamVj
dCwgPT0sIE5VTEwpOwogICAgIFRhcmdldC0+RGV2aWNlT2JqZWN0ID0gRGV2aWNlT2JqZWN0Owog
fQogCi1fX2NoZWNrUmV0dXJuCi1GT1JDRUlOTElORSBCT09MRUFOCitzdGF0aWMgRk9SQ0VJTkxJ
TkUgQk9PTEVBTgogVGFyZ2V0SXNQYXVzZWQoCi0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAg
ICAgICAgICBUYXJnZXQKKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldAogICAgICkKIHsK
LSAgICBCT09MRUFOIFBhdXNlZDsKLSAgICBLSVJRTCAgIElycWw7CisgICAgQk9PTEVBTiAgICAg
ICAgICAgICBQYXVzZWQ7CisgICAgS0lSUUwgICAgICAgICAgICAgICBJcnFsOwogCiAgICAgS2VB
Y3F1aXJlU3BpbkxvY2soJlRhcmdldC0+TG9jaywgJklycWwpOwogICAgIFBhdXNlZCA9IChUYXJn
ZXQtPlBhdXNlZCA+IDApOwpAQCAtMTI3OSw3ICsxMjU2LDcgQEAgQmxraWZPcGVyYXRpb25OYW1l
KAogCiBWT0lECiBUYXJnZXRTdWJtaXRSZXF1ZXN0cygKLSAgICBfX2luIFBYRU5WQkRfVEFSR0VU
ICAgICAgICAgICAgIFRhcmdldAorICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0CiAgICAg
KQogewogICAgIGZvciAoOzspIHsKQEAgLTEzMDIsOSArMTI3OSw5IEBAIFRhcmdldFN1Ym1pdFJl
cXVlc3RzKAogCiBWT0lECiBUYXJnZXRDb21wbGV0ZVJlc3BvbnNlKAotICAgIF9faW4gUFhFTlZC
RF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0LAotICAgIF9faW4gVUxPTkcgICAgICAgICAgICAg
ICAgICAgVGFnLAotICAgIF9faW4gU0hPUlQgICAgICAgICAgICAgICAgICAgU3RhdHVzCisgICAg
SU4gIFBYRU5WQkRfVEFSR0VUICBUYXJnZXQsCisgICAgSU4gIFVMT05HICAgICAgICAgICBUYWcs
CisgICAgSU4gIFNIT1JUICAgICAgICAgICBTdGF0dXMKICAgICApCiB7CiAgICAgUFhFTlZCRF9S
RVFVRVNUICAgICBSZXF1ZXN0OwpAQCAtMTc3Miw3ICsxNzQ5LDcgQEAgX19WYWxpZGF0ZVNyYkZv
clRhcmdldCgKICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgIH0KIAotICAgIGlmIChUYXJnZXRJ
c01pc3NpbmcoVGFyZ2V0KSkgeworICAgIGlmIChUYXJnZXRHZXRNaXNzaW5nKFRhcmdldCkpIHsK
ICAgICAgICAgRXJyb3IoIlRhcmdldFslZF0gOiAlcyAoJXMpICglMDJ4OiVzKVxuIiwKICAgICAg
ICAgICAgICAgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwKICAgICAgICAgICAgICAgVGFyZ2V0
LT5NaXNzaW5nID8gIk1JU1NJTkciIDogIk5PVF9NSVNTSU5HIiwKQEAgLTI2MDIsNCArMjU3OSwy
MiBAQCBUYXJnZXRHZXRTdXJwcmlzZVJlbW92YWJsZSgKICAgICByZXR1cm4gRnJvbnRlbmRHZXRD
YXBzKFRhcmdldC0+RnJvbnRlbmQpLT5TdXJwcmlzZVJlbW92YWJsZTsKIH0KIAorVEFSR0VUX0dF
VF9QUk9QRVJUWShEZXZpY2VQbnBTdGF0ZSwgREVWSUNFX1BOUF9TVEFURSkKKy8vVEFSR0VUX0dF
VF9QUk9QRVJUWShNaXNzaW5nLCBCT09MRUFOKQorCitCT09MRUFOCitUYXJnZXRHZXRNaXNzaW5n
KAorICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0CisgICAgKQoreworICAgIEtJUlFMICAg
ICAgICAgICAgICAgSXJxbDsKKyAgICBCT09MRUFOICAgICAgICAgICAgIE1pc3Npbmc7CisKKyAg
ICBLZUFjcXVpcmVTcGluTG9jaygmVGFyZ2V0LT5Mb2NrLCAmSXJxbCk7CisgICAgTWlzc2luZyA9
IFRhcmdldC0+TWlzc2luZzsKKyAgICBLZVJlbGVhc2VTcGluTG9jaygmVGFyZ2V0LT5Mb2NrLCBJ
cnFsKTsKKworICAgIHJldHVybiBNaXNzaW5nOworfQorCiAjdW5kZWYgVEFSR0VUX0dFVF9QUk9Q
RVJUWQpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC90YXJnZXQuaCBiL3NyYy94ZW52YmQvdGFyZ2V0
LmgKaW5kZXggYWMxZGUxMS4uMWUyYjNlZCAxMDA2NDQKLS0tIGEvc3JjL3hlbnZiZC90YXJnZXQu
aAorKysgYi9zcmMveGVudmJkL3RhcmdldC5oCkBAIC03NSw1NCArNzUsMzQgQEAgVGFyZ2V0SXNz
dWVEZXZpY2VFamVjdCgKICAgICBJTiAgY29uc3QgQ0hBUiAgICAgICpSZWFzb24KICAgICApOwog
Ci0vLyBQblAgU3RhdGVzCiBleHRlcm4gVk9JRAogVGFyZ2V0U2V0TWlzc2luZygKLSAgICBfX2lu
IFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldCwKLSAgICBfX2luIF9fbnVsbHRlcm1p
bmF0ZWQgY29uc3QgQ0hBUiogUmVhc29uCi0gICAgKTsKLQotX19jaGVja1JldHVybgotZXh0ZXJu
IEJPT0xFQU4KLVRhcmdldElzTWlzc2luZygKLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAg
ICAgICAgIFRhcmdldAorICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0LAorICAgIElOICBj
b25zdCBDSEFSICAgICAgKlJlYXNvbgogICAgICk7CiAKIGV4dGVybiBWT0lECiBUYXJnZXRTZXRE
ZXZpY2VQbnBTdGF0ZSgKLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdl
dCwKLSAgICBfX2luIERFVklDRV9QTlBfU1RBVEUgICAgICAgIFN0YXRlCi0gICAgKTsKLQotX19j
aGVja1JldHVybgotZXh0ZXJuIERFVklDRV9QTlBfU1RBVEUKLVRhcmdldEdldERldmljZVBucFN0
YXRlKAotICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0CisgICAgSU4g
IFBYRU5WQkRfVEFSR0VUICAgICAgVGFyZ2V0LAorICAgIElOICBERVZJQ0VfUE5QX1NUQVRFICAg
IFN0YXRlCiAgICAgKTsKIAogZXh0ZXJuIFZPSUQKIFRhcmdldFNldERldmljZU9iamVjdCgKLSAg
ICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldCwKLSAgICBfX2luIFBERVZJ
Q0VfT0JKRUNUICAgICAgICAgIERldmljZU9iamVjdAotICAgICk7Ci0KLV9fY2hlY2tSZXR1cm4K
LWV4dGVybiBCT09MRUFOCi1UYXJnZXRJc1BhdXNlZCgKLSAgICBfX2luIFBYRU5WQkRfVEFSR0VU
ICAgICAgICAgICAgIFRhcmdldAorICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0LAorICAg
IElOICBQREVWSUNFX09CSkVDVCAgRGV2aWNlT2JqZWN0CiAgICAgKTsKIAotLy8gUXVldWUtUmVs
YXRlZAogZXh0ZXJuIFZPSUQKIFRhcmdldFN1Ym1pdFJlcXVlc3RzKAotICAgIF9faW4gUFhFTlZC
RF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0CisgICAgSU4gIFBYRU5WQkRfVEFSR0VUICBUYXJn
ZXQKICAgICApOwogCiBleHRlcm4gVk9JRAogVGFyZ2V0Q29tcGxldGVSZXNwb25zZSgKLSAgICBf
X2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldCwKLSAgICBfX2luIFVMT05HICAg
ICAgICAgICAgICAgICAgIFRhZywKLSAgICBfX2luIFNIT1JUICAgICAgICAgICAgICAgICAgIFN0
YXR1cworICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0LAorICAgIElOICBVTE9ORyAgICAg
ICAgICAgVGFnLAorICAgIElOICBTSE9SVCAgICAgICAgICAgU3RhdHVzCiAgICAgKTsKIAogZXh0
ZXJuIFZPSUQKQEAgLTE2Niw2ICsxNDYsOCBAQCBUQVJHRVRfR0VUX1BST1BFUlRZKFRhcmdldElk
LCBVTE9ORykKIFRBUkdFVF9HRVRfUFJPUEVSVFkoRGV2aWNlSWQsIFVMT05HKQogVEFSR0VUX0dF
VF9QUk9QRVJUWShSZW1vdmFibGUsIEJPT0xFQU4pCiBUQVJHRVRfR0VUX1BST1BFUlRZKFN1cnBy
aXNlUmVtb3ZhYmxlLCBCT09MRUFOKQorVEFSR0VUX0dFVF9QUk9QRVJUWShEZXZpY2VQbnBTdGF0
ZSwgREVWSUNFX1BOUF9TVEFURSkKK1RBUkdFVF9HRVRfUFJPUEVSVFkoTWlzc2luZywgQk9PTEVB
TikKIAogI3VuZGVmIFRBUkdFVF9HRVRfUFJPUEVSVFkKIAotLSAKMi44LjMKCgpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGlu
ZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl
bnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 26 16:15:24 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 26 Jun 2017 16:15:24 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPWfb-0004OV-Dl; Mon, 26 Jun 2017 16:15:23 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=343eba2e6=Paul.Durrant@citrix.com>)
 id 1dPWfa-0004OP-2B
 for win-pv-devel@lists.xenproject.org; Mon, 26 Jun 2017 16:15:22 +0000
Received: from [85.158.139.211] by server-6.bemta-5.messagelabs.com id
 AD/C4-02180-91331595; Mon, 26 Jun 2017 16:15:21 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrNIsWRWlGSWpSXmKPExsWyU9JRQlfCODD
 S4F2nhMWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNeN/3iaWgx6ii8XttA+MOwy5GTg4JAT+J1oX3
 GUFsNgEdiaVH5zOB2CICBRLf389jBrGZBdQkru/vYgWxhQVsJNbsvcEIUWMrsblhP3sXIweQb
 SSxfVYMSJhFQFXiWWMrC4jNK+AusWj/CbCRQgJZErfnXAdr5RSwlnj76AA7iM0oICvxpXE11C
 pxiVtPIE6QEBCQWLLnPDOELSrx8vE/VgjbQGLr0n0sIGuZBTQl1u/Sh2hVlJjS/ZAdYq2gxMm
 ZT1gmMArPQjJ1FkLHLCQds5B0LGBkWcWoXpxaVJZapGuql1SUmZ5RkpuYmaNraGCql5taXJyY
 npqTmFSsl5yfu4kRGPAMQLCD8Uu/8yFGSQ4mJVFejicBkUJ8SfkplRmJxRnxRaU5qcWHGGU4O
 JQkeP8ZBkYKCRalpqdWpGXmAGMPJi3BwaMkwtulCZTmLS5IzC3OTIdInWLU5diwev0XJiGWvP
 y8VClx3l0gMwRAijJK8+BGwNLAJUZZKWFeRqCjhHgKUotyM0tQ5V8xinMwKgFVGAFN4cnMK4H
 b9AroCCagI1jmBYAcUZKIkJJqYPT+IN/m33g35cOsdY/17uZMmn5G9ePF+ere5isezZt+Zebm
 yyZL9wk8q/JWNBYXjckti65x65opJTdjVw735CzrPq2NlsbLSps3G/zN4zRlf1f3s+rx9AvTP
 z2YfOT1ytV6LqW3Xy1Nmufc/H9+rrqBtFLyo/vcPnF3J/Dl3vO68kJ20U+/4KNKLMUZiYZazE
 XFiQBkcW7R/gIAAA==
X-Env-Sender: prvs=343eba2e6=Paul.Durrant@citrix.com
X-Msg-Ref: server-8.tower-206.messagelabs.com!1498493720!105002651!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 42275 invoked from network); 26 Jun 2017 16:15:20 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 26 Jun 2017 16:15:20 -0000
X-IronPort-AV: E=Sophos;i="5.39,396,1493683200"; d="scan'208";a="48406440"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 01/10] Remove unused code
Thread-Index: AQHS7B9UZYgtLvHBaEmAbL/eAR2IvaI3Vhkw
Date: Mon, 26 Jun 2017 16:14:38 +0000
Message-ID: <dbbb4628dfd04a83a49e4f6a25118e78@AMSPEX02CL03.citrite.net>
References: <20170623124917.13956-1-owen.smith@citrix.com>
 <20170623124917.13956-2-owen.smith@citrix.com>
In-Reply-To: <20170623124917.13956-2-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 01/10] Remove unused code
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAyMyBKdW5lIDIwMTcgMTM6NDkNCj4g
VG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8
b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0gg
MDEvMTBdIFJlbW92ZSB1bnVzZWQgY29kZQ0KPiANCj4gRnJvbTogT3dlbiBTbWl0aCA8b3dlbi5z
bWl0aEBjaXRyaXguY29tPg0KPiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5z
bWl0aEBjaXRyaXguY29tPg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvdGFyZ2V0LmMgfCA2MSArLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgc3Jj
L3hlbnZiZC90YXJnZXQuaCB8IDIyIC0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gIDIgZmlsZXMgY2hh
bmdlZCwgMSBpbnNlcnRpb24oKyksIDgyIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBh
L3NyYy94ZW52YmQvdGFyZ2V0LmMgYi9zcmMveGVudmJkL3RhcmdldC5jDQo+IGluZGV4IDM3NDgy
MTAuLmM1ZGZmYTkgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvdGFyZ2V0LmMNCj4gKysrIGIv
c3JjL3hlbnZiZC90YXJnZXQuYw0KPiBAQCAtMzc4LDIxICszNzgsNiBAQCBUYXJnZXRJc01pc3Np
bmcoDQo+ICAgICAgcmV0dXJuIE1pc3Npbmc7DQo+ICB9DQo+IA0KPiAtRk9SQ0VJTkxJTkUgY29u
c3QgQ0hBUioNCj4gLVRhcmdldE1pc3NpbmdSZWFzb24oDQo+IC0gICAgX19pbiBQWEVOVkJEX1RB
UkdFVCAgICAgICAgICAgIFRhcmdldA0KPiAtICAgICkNCj4gLXsNCj4gLSAgICBLSVJRTCAgICAg
ICBJcnFsOw0KPiAtICAgIGNvbnN0IENIQVIqIFJlYXNvbjsNCj4gLQ0KPiAtICAgIEtlQWNxdWly
ZVNwaW5Mb2NrKCZUYXJnZXQtPkxvY2ssICZJcnFsKTsNCj4gLSAgICBSZWFzb24gPSBUYXJnZXQt
PlJlYXNvbjsNCj4gLSAgICBLZVJlbGVhc2VTcGluTG9jaygmVGFyZ2V0LT5Mb2NrLCBJcnFsKTsN
Cj4gLQ0KPiAtICAgIHJldHVybiBSZWFzb247DQo+IC19DQo+IC0NCj4gIEZPUkNFSU5MSU5FIFZP
SUQNCj4gIFRhcmdldFNldERldmljZVBucFN0YXRlKA0KPiAgICAgIF9faW4gUFhFTlZCRF9UQVJH
RVQgICAgICAgICAgICAgVGFyZ2V0LA0KPiBAQCAtNDkxLDE1ICs0NzYsNiBAQCBUYXJnZXRJc1Bh
dXNlZCgNCj4gIH0NCj4gDQo+ICBfX2NoZWNrUmV0dXJuDQo+IC1GT1JDRUlOTElORSBVTE9ORw0K
PiAtVGFyZ2V0T3V0c3RhbmRpbmdSZXFzKA0KPiAtICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAg
ICAgICAgICAgVGFyZ2V0DQo+IC0gICAgKQ0KPiAtew0KPiAtICAgIHJldHVybiBRdWV1ZUNvdW50
KCZUYXJnZXQtPlN1Ym1pdHRlZFJlcXMpOw0KPiAtfQ0KPiAtDQo+IC1fX2NoZWNrUmV0dXJuDQo+
ICBGT1JDRUlOTElORSBQWEVOVkJEX0FEQVBURVINCj4gIFRhcmdldEdldEFkYXB0ZXIoDQo+ICAg
ICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQNCj4gQEAgLTUwOCw3ICs0
ODQsNyBAQCBUYXJnZXRHZXRBZGFwdGVyKA0KPiAgICAgIHJldHVybiBUYXJnZXQtPkFkYXB0ZXI7
DQo+ICB9DQo+IA0KPiAtRk9SQ0VJTkxJTkUgVUxPTkcNCj4gK3N0YXRpYyBGT1JDRUlOTElORSBV
TE9ORw0KDQpUaGlzIGlzIG5vdCBjb2RlIHJlbW92YWwsIGJ1dCBpcyByZWFzb25hYmxlIGNsZWFu
dXAuDQoNClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29t
Pg0KDQo+ICBUYXJnZXRTZWN0b3JTaXplKA0KPiAgICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAg
ICAgICAgICAgVGFyZ2V0DQo+ICAgICAgKQ0KPiBAQCAtNzc0LDE0ICs3NTAsNiBAQCBfX1BoeXMy
UGZuKA0KPiAgICAgIHJldHVybiAoUEZOX05VTUJFUikoUGh5c0FkZHIuUXVhZFBhcnQgPj4gUEFH
RV9TSElGVCk7DQo+ICB9DQo+IA0KPiAtc3RhdGljIEZPUkNFSU5MSU5FIFBGTl9OVU1CRVINCj4g
LV9fVmlydDJQZm4oDQo+IC0gICAgX19pbiBQVk9JRCAgICAgICAgICAgICAgICAgICBWaXJ0QWRk
cg0KPiAtICAgICkNCj4gLXsNCj4gLSAgICByZXR1cm4gKFBGTl9OVU1CRVIpKE1tR2V0UGh5c2lj
YWxBZGRyZXNzKFZpcnRBZGRyKS5RdWFkUGFydCA+Pg0KPiBQQUdFX1NISUZUKTsNCj4gLX0NCj4g
LQ0KPiAgc3RhdGljIEZPUkNFSU5MSU5FIE1NX1BBR0VfUFJJT1JJVFkNCj4gIF9fVGFyZ2V0UHJp
b3JpdHkoDQo+ICAgICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQNCj4g
QEAgLTIxOTQsMzMgKzIxNjIsNiBAQCBUYXJnZXRTdGFydElvKA0KPiAgICAgIH0NCj4gIH0NCj4g
DQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRA0KPiAtX19UYXJnZXRDbGVhbnVwU3VibWl0dGVk
UmVxcygNCj4gLSAgICBJTiAgUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0DQo+IC0g
ICAgKQ0KPiAtew0KPiAtICAgIC8vIEZhaWwgUHJlcGFyZWRSZXFzDQo+IC0gICAgZm9yICg7Oykg
ew0KPiAtICAgICAgICBQWEVOVkJEX1NSQkVYVCAgU3JiRXh0Ow0KPiAtICAgICAgICBQWEVOVkJE
X1JFUVVFU1QgUmVxdWVzdDsNCj4gLSAgICAgICAgUExJU1RfRU5UUlkgICAgIEVudHJ5ID0gUXVl
dWVQb3AoJlRhcmdldC0+U3VibWl0dGVkUmVxcyk7DQo+IC0gICAgICAgIGlmIChFbnRyeSA9PSBO
VUxMKQ0KPiAtICAgICAgICAgICAgYnJlYWs7DQo+IC0gICAgICAgIFJlcXVlc3QgPSBDT05UQUlO
SU5HX1JFQ09SRChFbnRyeSwgWEVOVkJEX1JFUVVFU1QsIEVudHJ5KTsNCj4gLSAgICAgICAgU3Ji
RXh0ID0gR2V0U3JiRXh0KFJlcXVlc3QtPlNyYik7DQo+IC0NCj4gLSAgICAgICAgVmVyYm9zZSgi
VGFyZ2V0WyVkXSA6IFN1Ym1pdHRlZFJlcSAweCVwIC0+IEZBSUxFRFxuIiwNCj4gVGFyZ2V0R2V0
VGFyZ2V0SWQoVGFyZ2V0KSwgUmVxdWVzdCk7DQo+IC0NCj4gLSAgICAgICAgVGFyZ2V0UHV0UmVx
dWVzdChUYXJnZXQsIFJlcXVlc3QpOw0KPiAtDQo+IC0gICAgICAgIGlmIChJbnRlcmxvY2tlZERl
Y3JlbWVudCgmU3JiRXh0LT5Db3VudCkgPT0gMCkgew0KPiAtICAgICAgICAgICAgU3JiRXh0LT5T
cmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfQUJPUlRFRDsNCj4gLSAgICAgICAgICAgIFNyYkV4
dC0+U3JiLT5TY3NpU3RhdHVzID0gMHg0MDsgLy8gU0NTSV9BQk9SVEVEDQo+IC0gICAgICAgICAg
ICBBZGFwdGVyQ29tcGxldGVTcmIoVGFyZ2V0R2V0QWRhcHRlcihUYXJnZXQpLCBTcmJFeHQtPlNy
Yik7DQo+IC0gICAgICAgIH0NCj4gLSAgICB9DQo+IC19DQo+IC0NCj4gIFZPSUQNCj4gIFRhcmdl
dFJlc2V0KA0KPiAgICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0DQo+
IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL3RhcmdldC5oIGIvc3JjL3hlbnZiZC90YXJnZXQuaA0K
PiBpbmRleCBhODlhMzE0Li45NDU1ZDU2IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3Rhcmdl
dC5oDQo+ICsrKyBiL3NyYy94ZW52YmQvdGFyZ2V0LmgNCj4gQEAgLTg2LDE3ICs4Niw2IEBAIFRh
cmdldElzTWlzc2luZygNCj4gICAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRh
cmdldA0KPiAgICAgICk7DQo+IA0KPiAtZXh0ZXJuIGNvbnN0IENIQVIqDQo+IC1UYXJnZXRNaXNz
aW5nUmVhc29uKA0KPiAtICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICBUYXJnZXQN
Cj4gLSAgICApOw0KPiAtDQo+IC1fX2NoZWNrUmV0dXJuDQo+IC1leHRlcm4gQk9PTEVBTg0KPiAt
VGFyZ2V0SXNFbXVsYXRlZFVucGx1Z2dlZCgNCj4gLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAg
ICAgICAgICAgIFRhcmdldA0KPiAtICAgICk7DQo+IC0NCj4gIGV4dGVybiBWT0lEDQo+ICBUYXJn
ZXRTZXREZXZpY2VQbnBTdGF0ZSgNCj4gICAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAg
ICAgIFRhcmdldCwNCj4gQEAgLTEzOSwyMiArMTI4LDExIEBAIFRhcmdldElzUGF1c2VkKA0KPiAg
ICAgICk7DQo+IA0KPiAgX19jaGVja1JldHVybg0KPiAtZXh0ZXJuIFVMT05HDQo+IC1UYXJnZXRP
dXRzdGFuZGluZ1JlcXMoDQo+IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBU
YXJnZXQNCj4gLSAgICApOw0KPiAtDQo+IC1fX2NoZWNrUmV0dXJuDQo+ICBleHRlcm4gUFhFTlZC
RF9BREFQVEVSDQo+ICBUYXJnZXRHZXRBZGFwdGVyKA0KPiAgICAgIF9faW4gUFhFTlZCRF9UQVJH
RVQgICAgICAgICAgICAgVGFyZ2V0DQo+ICAgICAgKTsNCj4gDQo+IC1leHRlcm4gVUxPTkcNCj4g
LVRhcmdldFNlY3RvclNpemUoDQo+IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAg
ICBUYXJnZXQNCj4gLSAgICApOw0KPiAtDQo+ICAvLyBRdWV1ZS1SZWxhdGVkDQo+ICBleHRlcm4g
Vk9JRA0KPiAgVGFyZ2V0U3VibWl0UmVxdWVzdHMoDQo+IC0tDQo+IDIuOC4zDQo+IA0KPiANCj4g
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gd2luLXB2
LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcN
Cj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8v
d2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0
aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 26 16:21:19 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 26 Jun 2017 16:21:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPWlK-00050i-Qw; Mon, 26 Jun 2017 16:21:18 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=343eba2e6=Paul.Durrant@citrix.com>)
 id 1dPWlJ-00050c-Vs
 for win-pv-devel@lists.xenproject.org; Mon, 26 Jun 2017 16:21:18 +0000
Received: from [85.158.137.68] by server-5.bemta-3.messagelabs.com id
 08/5D-02199-D7431595; Mon, 26 Jun 2017 16:21:17 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrDIsWRWlGSWpSXmKPExsWyU9JRQrfGJDD
 SYPYEKYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8XLHGeaC1y4VHadOsjQw/nDuYuTkkBDwk7jx
 7zsriM0moCOx9Oh8JhBbRKBA4vv7ecwgNrOAmsT1/V1gNcICvhKtrRehavwk7p1+wQxhG0m82
 HwFrIZFQFVi778G9i5GDg5eAXeJ5vUFIGEhgSyJa1Pfs4KEOQWsJVqag0HCjAKyEl8aV0NtEp
 e49QTiAgkBAYkle84zQ9iiEi8f/2OFsA0kti7dxwIyhllAU2L9Ln2IVkWJKd0P2UFsXgFBiZM
 zn7BMYBSehWTqLISOWUg6ZiHpWMDIsopRozi1qCy1SNfIQC+pKDM9oyQ3MTNH19DAWC83tbg4
 MT01JzGpWC85P3cTIzDk6xkYGHcwNp/wO8QoycGkJMrL8SQgUogvKT+lMiOxOCO+qDQntfgQo
 wwHh5IE7zXjwEghwaLU9NSKtMwcYPTBpCU4eJREeLs0gdK8xQWJucWZ6RCpU4y6HBtWr//CJM
 SSl5+XKiXOex1khgBIUUZpHtwIWCK4xCgrJczLyMDAIMRTkFqUm1mCKv+KUZyDUUmYdxnIFJ7
 MvBK4Ta+AjmACOoJlXgDIESWJCCmpBkaOX0a6qgv2RVx+df7yEeksH6H9pgV/0/m85I8sky1K
 1el4o/IiZ+Fj/+6Jl43EmBbdv8czx89rfaS3y68HZYXW1465be/VvCvyQ+d2+a+J8W0P395Z5
 u7F86r7d83LtNQnD1jYd8wrn7Hoykc2Q0fZ4zMXC3N1munNZ+Hi8L8vfkHsIVdptLESS3FGoq
 EWc1FxIgCu8hvz/wIAAA==
X-Env-Sender: prvs=343eba2e6=Paul.Durrant@citrix.com
X-Msg-Ref: server-7.tower-31.messagelabs.com!1498494076!99889584!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 3353 invoked from network); 26 Jun 2017 16:21:16 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-7.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 26 Jun 2017 16:21:16 -0000
X-IronPort-AV: E=Sophos;i="5.39,396,1493683200"; d="scan'208";a="48406769"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 02/10] Move StorPort*() calls to adapter.c
Thread-Index: AQHS7B9JYFp5O3neykyMWEb6X6A1yKI3WCDg
Date: Mon, 26 Jun 2017 16:21:15 +0000
Message-ID: <5ce6c82951f64c509ab11c8086be0fca@AMSPEX02CL03.citrite.net>
References: <20170623124917.13956-1-owen.smith@citrix.com>
 <20170623124917.13956-3-owen.smith@citrix.com>
In-Reply-To: <20170623124917.13956-3-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 02/10] Move StorPort*() calls to adapter.c
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAyMyBKdW5lIDIwMTcgMTM6NDkNCj4g
VG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8
b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0gg
MDIvMTBdIE1vdmUgU3RvclBvcnQqKCkgY2FsbHMgdG8gYWRhcHRlci5jDQo+IA0KPiBGcm9tOiBP
d2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+DQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBP
d2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+DQoNClJldmlld2VkLWJ5OiBQYXVsIER1
cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPg0KDQo+IC0tLQ0KPiAgc3JjL3hlbnZiZC9h
ZGFwdGVyLmMgfCAzOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQ0KPiAg
c3JjL3hlbnZiZC9hZGFwdGVyLmggfCAxMSArKysrKysrKysrKw0KPiAgc3JjL3hlbnZiZC90YXJn
ZXQuYyAgfCAxOSArKysrKystLS0tLS0tLS0tLS0tDQo+ICAzIGZpbGVzIGNoYW5nZWQsIDQ5IGlu
c2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52
YmQvYWRhcHRlci5jIGIvc3JjL3hlbnZiZC9hZGFwdGVyLmMNCj4gaW5kZXggMmU4NWY5Zi4uZWM2
NzExYSAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9hZGFwdGVyLmMNCj4gKysrIGIvc3JjL3hl
bnZiZC9hZGFwdGVyLmMNCj4gQEAgLTU4LDcgKzU4LDggQEANCj4gICNpbmNsdWRlICJkZWJ1Zy5o
Ig0KPiAgI2luY2x1ZGUgImFzc2VydC5oIg0KPiANCj4gLSNkZWZpbmUgTUFYTkFNRUxFTiAgMTI4
DQo+ICsjZGVmaW5lIFhFTlZCRF9NQVhfUVVFVUVfREVQVEggIDI1NA0KPiArI2RlZmluZSBNQVhO
QU1FTEVOICAgICAgICAgICAgICAxMjgNCj4gICNkZWZpbmUgQURBUFRFUl9QT09MX1RBRyAgICAg
ICAgJ2FkQVgnDQo+IA0KPiAgc3RydWN0IF9YRU5WQkRfQURBUFRFUiB7DQo+IEBAIC00OTgsOSAr
NDk5LDcgQEAgX19BZGFwdGVyRW51bWVyYXRlKA0KPiAgICAgIH0NCj4gDQo+ICAgICAgaWYgKE5l
ZWRJbnZhbGlkYXRlKQ0KPiAtICAgICAgICBTdG9yUG9ydE5vdGlmaWNhdGlvbihCdXNDaGFuZ2VE
ZXRlY3RlZCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRhcHRlciwNCj4gLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7DQo+ICsgICAgICAgIEFkYXB0ZXJUYXJn
ZXRMaXN0Q2hhbmdlZChBZGFwdGVyKTsNCj4gICAgICBpZiAoTmVlZFJlYm9vdCkNCj4gICAgICAg
ICAgRHJpdmVyUmVxdWVzdFJlYm9vdCgpOw0KPiAgfQ0KPiBAQCAtMTQwOCw2ICsxNDA3LDMxIEBA
IEFkYXB0ZXJDb21wbGV0ZVNyYigNCj4gICAgICBTdG9yUG9ydE5vdGlmaWNhdGlvbihSZXF1ZXN0
Q29tcGxldGUsIEFkYXB0ZXIsIFNyYik7DQo+ICB9DQo+IA0KPiArVk9JRA0KPiArQWRhcHRlclRh
cmdldExpc3RDaGFuZ2VkKA0KPiArICAgIElOICBQWEVOVkJEX0FEQVBURVIgQWRhcHRlcg0KPiAr
ICAgICkNCj4gK3sNCj4gKyAgICBTdG9yUG9ydE5vdGlmaWNhdGlvbihCdXNDaGFuZ2VEZXRlY3Rl
ZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBBZGFwdGVyLA0KPiArICAgICAgICAgICAg
ICAgICAgICAgICAgIE5VTEwpOw0KPiArfQ0KPiArDQo+ICtWT0lEDQo+ICtBZGFwdGVyU2V0RGV2
aWNlUXVldWVEZXB0aCgNCj4gKyAgICBJTiAgUFhFTlZCRF9BREFQVEVSIEFkYXB0ZXIsDQo+ICsg
ICAgSU4gIFVMT05HICAgICAgICAgICBUYXJnZXRJZA0KPiArICAgICkNCj4gK3sNCj4gKyAgICBp
ZiAoIVN0b3JQb3J0U2V0RGV2aWNlUXVldWVEZXB0aChBZGFwdGVyLA0KPiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDAsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKFVDSEFSKVRhcmdldElkLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDAsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
WEVOVkJEX01BWF9RVUVVRV9ERVBUSCkpDQo+ICsgICAgICAgIFZlcmJvc2UoIlRhcmdldFslZF0g
OiBGYWlsZWQgdG8gc2V0IHF1ZXVlIGRlcHRoXG4iLA0KPiArICAgICAgICAgICAgICAgIFRhcmdl
dElkKTsNCj4gK30NCj4gKw0KPiAgc3RhdGljIFZPSUQNCj4gIEFkYXB0ZXJVbnBsdWdSZXF1ZXN0
KA0KPiAgICAgIElOICBQWEVOVkJEX0FEQVBURVIgQWRhcHRlciwNCj4gQEAgLTE3MTMsMTUgKzE3
MzcsMTYgQEAgQWRhcHRlckh3QnVpbGRJbygNCj4gICAgICAgICAgU3JiLT5TcmJTdGF0dXMgPSBT
UkJfU1RBVFVTX0FCT1JUX0ZBSUxFRDsNCj4gICAgICAgICAgYnJlYWs7DQo+ICAgICAgY2FzZSBT
UkJfRlVOQ1RJT05fUkVTRVRfQlVTOg0KPiAtICAgICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9T
VEFUVVNfU1VDQ0VTUzsNCj4gICAgICAgICAgQWRhcHRlckh3UmVzZXRCdXMoQWRhcHRlciwgU3Ji
LT5QYXRoSWQpOw0KPiArICAgICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfU1VDQ0VT
UzsNCj4gICAgICAgICAgYnJlYWs7DQo+IA0KPiAgICAgIGRlZmF1bHQ6DQo+ICsgICAgICAgIFNy
Yi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19JTlZBTElEX1JFUVVFU1Q7DQo+ICAgICAgICAgIGJy
ZWFrOw0KPiAgICAgIH0NCj4gDQo+IC0gICAgU3RvclBvcnROb3RpZmljYXRpb24oUmVxdWVzdENv
bXBsZXRlLCBBZGFwdGVyLCBTcmIpOw0KPiArICAgIEFkYXB0ZXJDb21wbGV0ZVNyYihBZGFwdGVy
LCBTcmIpOw0KPiAgICAgIHJldHVybiBGQUxTRTsNCj4gIH0NCj4gDQo+IEBAIC0xNzQ3LDYgKzE3
NzIsNyBAQCBBZGFwdGVySHdTdGFydElvKA0KPiAgICAgIHJldHVybiBUUlVFOw0KPiANCj4gIGZh
aWwxOg0KPiArICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19JTlZBTElEX1RBUkdFVF9J
RDsNCj4gICAgICBBZGFwdGVyQ29tcGxldGVTcmIoQWRhcHRlciwgU3JiKTsNCj4gICAgICByZXR1
cm4gVFJVRTsNCj4gIH0NCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvYWRhcHRlci5oIGIvc3Jj
L3hlbnZiZC9hZGFwdGVyLmgNCj4gaW5kZXggNWRkMmU2Mi4uYjg3MDZmZCAxMDA2NDQNCj4gLS0t
IGEvc3JjL3hlbnZiZC9hZGFwdGVyLmgNCj4gKysrIGIvc3JjL3hlbnZiZC9hZGFwdGVyLmgNCj4g
QEAgLTcwLDYgKzcwLDE3IEBAIEFkYXB0ZXJDb21wbGV0ZVNyYigNCj4gICAgICBJTiAgUFNDU0lf
UkVRVUVTVF9CTE9DSyBTcmINCj4gICAgICApOw0KPiANCj4gK2V4dGVybiBWT0lEDQo+ICtBZGFw
dGVyVGFyZ2V0TGlzdENoYW5nZWQoDQo+ICsgICAgSU4gIFBYRU5WQkRfQURBUFRFUiBBZGFwdGVy
DQo+ICsgICAgKTsNCj4gKw0KPiArZXh0ZXJuIFZPSUQNCj4gK0FkYXB0ZXJTZXREZXZpY2VRdWV1
ZURlcHRoKA0KPiArICAgIElOICBQWEVOVkJEX0FEQVBURVIgQWRhcHRlciwNCj4gKyAgICBJTiAg
VUxPTkcgICAgICAgICAgIFRhcmdldElkDQo+ICsgICAgKTsNCj4gKw0KPiAgZXh0ZXJuIE5UU1RB
VFVTDQo+ICBBZGFwdGVyRGlzcGF0Y2hQbnAoDQo+ICAgICAgSU4gIFBYRU5WQkRfQURBUFRFUiBB
ZGFwdGVyLA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC90YXJnZXQuYyBiL3NyYy94ZW52YmQv
dGFyZ2V0LmMNCj4gaW5kZXggYzVkZmZhOS4uNWJhYjQ0MCAxMDA2NDQNCj4gLS0tIGEvc3JjL3hl
bnZiZC90YXJnZXQuYw0KPiArKysgYi9zcmMveGVudmJkL3RhcmdldC5jDQo+IEBAIC00OSw4ICs0
OSw2IEBADQo+ICAjaW5jbHVkZSA8c3VzcGVuZF9pbnRlcmZhY2UuaD4NCj4gICNpbmNsdWRlIDxz
dGRsaWIuaD4NCj4gDQo+IC0jZGVmaW5lIFhFTlZCRF9NQVhfUVVFVUVfREVQVEggICAgICAgICAg
KDI1NCkNCj4gLQ0KPiAgdHlwZWRlZiBzdHJ1Y3QgX1hFTlZCRF9TR19MSVNUIHsNCj4gICAgICAv
LyBTR0xpc3QgZnJvbSBTUkINCj4gICAgICBQU1RPUl9TQ0FUVEVSX0dBVEhFUl9MSVNUICAgU0dM
aXN0Ow0KPiBAQCAtMjAyMSwxMyArMjAxOSw4IEBAIF9fVGFyZ2V0RXhlY3V0ZVNjc2koDQo+ICAg
ICAgICAgIGJyZWFrOw0KPiANCj4gICAgICBjYXNlIFNDU0lPUF9JTlFVSVJZOg0KPiAtICAgICAg
ICBpZiAoIVN0b3JQb3J0U2V0RGV2aWNlUXVldWVEZXB0aChUYXJnZXRHZXRBZGFwdGVyKFRhcmdl
dCksDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsDQo+IC0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVQ0hBUilUYXJnZXRHZXRU
YXJnZXRJZChUYXJnZXQpLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5W
QkRfTUFYX1FVRVVFX0RFUFRIKSkNCj4gLSAgICAgICAgICAgIFZlcmJvc2UoIlRhcmdldFslZF0g
OiBGYWlsZWQgdG8gc2V0IHF1ZXVlIGRlcHRoXG4iLA0KPiAtICAgICAgICAgICAgICAgICAgICBU
YXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpKTsNCj4gKyAgICAgICAgQWRhcHRlclNldERldmljZVF1
ZXVlRGVwdGgoVGFyZ2V0R2V0QWRhcHRlcihUYXJnZXQpLA0KPiArICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpKTsNCj4gICAgICAgICAg
UGRvSW5xdWlyeShUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLCBGcm9udGVuZEdldElucXVpcnko
VGFyZ2V0LQ0KPiA+RnJvbnRlbmQpLCBTcmIpOw0KPiAgICAgICAgICBicmVhazsNCj4gICAgICBj
YXNlIFNDU0lPUF9NT0RFX1NFTlNFOg0KPiBAQCAtMjMwNSwxMyArMjI5OCwxMyBAQCBfX1Rhcmdl
dFJlbW92ZURldmljZSgNCj4gICAgICBjYXNlIFN1cnByaXNlUmVtb3ZlUGVuZGluZzoNCj4gICAg
ICAgICAgVGFyZ2V0U2V0TWlzc2luZyhUYXJnZXQsICJTdXJwcmlzZSBSZW1vdmUiKTsNCj4gICAg
ICAgICAgVGFyZ2V0U2V0RGV2aWNlUG5wU3RhdGUoVGFyZ2V0LCBEZWxldGVkKTsNCj4gLSAgICAg
ICAgU3RvclBvcnROb3RpZmljYXRpb24oQnVzQ2hhbmdlRGV0ZWN0ZWQsIFRhcmdldEdldEFkYXB0
ZXIoVGFyZ2V0KSwNCj4gMCk7DQo+ICsgICAgICAgIEFkYXB0ZXJUYXJnZXRMaXN0Q2hhbmdlZChU
YXJnZXRHZXRBZGFwdGVyKFRhcmdldCkpOw0KPiAgICAgICAgICBicmVhazsNCj4gDQo+ICAgICAg
ZGVmYXVsdDoNCj4gICAgICAgICAgVGFyZ2V0U2V0TWlzc2luZyhUYXJnZXQsICJSZW1vdmVkIik7
DQo+ICAgICAgICAgIFRhcmdldFNldERldmljZVBucFN0YXRlKFRhcmdldCwgRGVsZXRlZCk7DQo+
IC0gICAgICAgIFN0b3JQb3J0Tm90aWZpY2F0aW9uKEJ1c0NoYW5nZURldGVjdGVkLCBUYXJnZXRH
ZXRBZGFwdGVyKFRhcmdldCksDQo+IDApOw0KPiArICAgICAgICBBZGFwdGVyVGFyZ2V0TGlzdENo
YW5nZWQoVGFyZ2V0R2V0QWRhcHRlcihUYXJnZXQpKTsNCj4gICAgICAgICAgYnJlYWs7DQo+ICAg
ICAgfQ0KPiAgfQ0KPiBAQCAtMjMyMyw3ICsyMzE2LDcgQEAgX19UYXJnZXRFamVjdCgNCj4gIHsN
Cj4gICAgICBUYXJnZXRTZXRNaXNzaW5nKFRhcmdldCwgIkVqZWN0ZWQiKTsNCj4gICAgICBUYXJn
ZXRTZXREZXZpY2VQbnBTdGF0ZShUYXJnZXQsIERlbGV0ZWQpOw0KPiAtICAgIFN0b3JQb3J0Tm90
aWZpY2F0aW9uKEJ1c0NoYW5nZURldGVjdGVkLCBUYXJnZXRHZXRBZGFwdGVyKFRhcmdldCksIDAp
Ow0KPiArICAgIEFkYXB0ZXJUYXJnZXRMaXN0Q2hhbmdlZChUYXJnZXRHZXRBZGFwdGVyKFRhcmdl
dCkpOw0KPiAgfQ0KPiANCj4gIF9fY2hlY2tSZXR1cm4NCj4gQEAgLTI0MTcsNyArMjQxMCw3IEBA
IFRhcmdldElzc3VlRGV2aWNlRWplY3QoDQo+ICAgICAgICAgIElvUmVxdWVzdERldmljZUVqZWN0
KFRhcmdldC0+RGV2aWNlT2JqZWN0KTsNCj4gICAgICB9IGVsc2Ugew0KPiAgICAgICAgICBWZXJi
b3NlKCJUYXJnZXRbJWRdIDogVHJpZ2dlcmluZyBCdXNDaGFuZ2VEZXRlY3RlZCB0byBkZXRlY3QN
Cj4gZGV2aWNlXG4iLCBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpKTsNCj4gLSAgICAgICAgU3Rv
clBvcnROb3RpZmljYXRpb24oQnVzQ2hhbmdlRGV0ZWN0ZWQsIFRhcmdldEdldEFkYXB0ZXIoVGFy
Z2V0KSwNCj4gMCk7DQo+ICsgICAgICAgIEFkYXB0ZXJUYXJnZXRMaXN0Q2hhbmdlZChUYXJnZXRH
ZXRBZGFwdGVyKFRhcmdldCkpOw0KPiAgICAgIH0NCj4gIH0NCj4gDQo+IC0tDQo+IDIuOC4zDQo+
IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18N
Cj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJv
amVjdC5vcmcNCj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4v
bGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFp
bG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 26 19:00:55 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 26 Jun 2017 19:00:55 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPZFl-0003m5-Cy; Mon, 26 Jun 2017 19:00:53 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=343a526a5=mackayem@amazon.com>)
 id 1dPZFj-0003lz-6y
 for win-pv-devel@lists.xenproject.org; Mon, 26 Jun 2017 19:00:51 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 05/D0-03058-2E951595; Mon, 26 Jun 2017 19:00:50 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrDKsWRWlGSWpSXmKPExsVyfvUOWd2HkYG
 RBs0XuS3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxrsTM1kKDspVfL3Sw97AeFq6i5GLg0VgA7PE
 +zM7GLsYOTkkBIIlHm85xQySEBJ4zCjRvv0PO4Rzkkli3qWFrBDOXkaJewe2MsI5F7a8hXLWM
 Uoc2vKZGWQYm4CWxJpzR9i6GDk4RAS8JW6v4AcJCwuES3y+c5wFxBYRiJG4NOUcE4StJzFl2g
 Qwm0VAVWL54ufsIK28QK1TuuNBwowCYhLfT60BK2EWEJe49WQ+E8TZAhJL9pxnhrBFJV4+/sc
 KYRtIbF26jwXCVpD4/OkEK0RvnsS//sVgcV4BQYmTM5+wTGAUm4Vk7CwkZbOQlEHEdSQW7P7E
 BmFrSyxb+JoZxj5z4DETsvgCRvZVjBrFqUVlqUW6RhZ6SUWZ6RkluYmZObqGBmZ6uanFxYnpq
 TmJScV6yfm5mxiBMckABDsYz68NPMQoycGkJMq7KjwwUogvKT+lMiOxOCO+qDQntfgQowwHh5
 IE790IoJxgUWp6akVaZg4wOcCkJTh4lER49wYApXmLCxJzizPTIVKnGHU5/kzY+oVJiCUvPy9
 VSpz3PMgMAZCijNI8uBGwRHWJUVZKmJcR6CghnoLUotzMElT5V4ziHIxKwrycIFN4MvNK4Da9
 AjqCCegIlnkBIEeUJCKkpBoYsysdBdq2cSa2vog4k7XoUSir6RLpz5z1z8Qungl5zO9spiEt1
 Op275ue8X4J86e6Idn70tsmPVQy5viwTFG3c3HN7LhdVrauy/MvMl9eMLNJTk2h49C/+9pvb4
 Zuk3f4rb3qvO+pq1YHxH6trOQ8YiTY4Ld03dnOwzGbg6JObON8Ii1QKRasxFKckWioxVxUnAg
 AqL8PJE8DAAA=
X-Env-Sender: prvs=343a526a5=mackayem@amazon.com
X-Msg-Ref: server-6.tower-21.messagelabs.com!1498503647!52688423!1
X-Originating-IP: [207.171.184.29]
X-SpamReason: No, hits=0.3 required=7.0 tests=HTML_60_70,HTML_MESSAGE,
 SUBJECT_RANDOMQ
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 48167 invoked from network); 26 Jun 2017 19:00:48 -0000
Received: from smtp-fw-9102.amazon.com (HELO smtp-fw-9102.amazon.com)
 (207.171.184.29)
 by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 26 Jun 2017 19:00:48 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
 t=1498503648; x=1530039648;
 h=from:to:subject:date:message-id:mime-version;
 bh=AfR+J3Pvl42BHcGOncFgkuMAHvTHhWY33MWrJrvXX3g=;
 b=CnabVVqVhw8PWf90toGPGfbSpLhvNSFpMsc3orFt2POSP9b9r1uiO4N/
 GFgsYGgxUKoGirGpGcsqPFUJDifi8ufD2Gg1jXyXoeuJzjxIDWa2lHzuy
 nFBFutphu4jphYsNCjQXIZssV1L+M1TBfgYWS44v0XJAYt8oDtLJSZq09 s=;
X-IronPort-AV: E=Sophos;i="5.39,396,1493683200"; 
 d="scan'208,217";a="553528297"
Received: from sea19-co-svc-lb5-vlan2.sea.amazon.com (HELO
 email-inbound-relay-25001.iad12.amazon.com) ([10.47.22.162])
 by smtp-border-fw-out-9102.sea19.amazon.com with ESMTP/TLS/DHE-RSA-AES256-SHA;
 26 Jun 2017 19:00:44 +0000
Received: from EX13MTAUWC001.ant.amazon.com
 (iad55-ws-svc-p15-lb9-vlan2.iad.amazon.com [10.40.159.162])
 by email-inbound-relay-25001.iad12.amazon.com (8.14.7/8.14.7) with ESMTP id
 v5QJ0gj5013595
 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL)
 for <win-pv-devel@lists.xenproject.org>; Mon, 26 Jun 2017 19:00:44 GMT
Received: from EX13D12UWC001.ant.amazon.com (10.43.162.78) by
 EX13MTAUWC001.ant.amazon.com (10.43.162.135) with Microsoft SMTP Server (TLS)
 id 15.0.1104.5; Mon, 26 Jun 2017 19:00:43 +0000
Received: from EX13D12UWC004.ant.amazon.com (10.43.162.182) by
 EX13D12UWC001.ant.amazon.com (10.43.162.78) with Microsoft SMTP Server (TLS)
 id 15.0.1104.5; Mon, 26 Jun 2017 19:00:43 +0000
Received: from EX13D12UWC004.ant.amazon.com ([10.43.162.182]) by
 EX13D12UWC004.ant.amazon.com ([10.43.162.182]) with mapi id 15.00.1104.000;
 Mon, 26 Jun 2017 19:00:43 +0000
From: "Mackay, Eric" <mackayem@amazon.com>
To: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: XenVBD bug - IRQL mismatch between AdapterHwFindAdapter and
 AdapterInitialize
Thread-Index: AdLurkIEZQAy54JsTbaqgofI/VxNjQ==
Date: Mon, 26 Jun 2017 19:00:43 +0000
Message-ID: <75c799a108ea4d8998ebf20d7421ba77@EX13D12UWC004.ant.amazon.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.43.162.65]
MIME-Version: 1.0
Subject: [win-pv-devel] XenVBD bug - IRQL mismatch between
 AdapterHwFindAdapter and AdapterInitialize
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============2651508981345805725=="
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

--===============2651508981345805725==
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_75c799a108ea4d8998ebf20d7421ba77EX13D12UWC004antamazonc_"

--_000_75c799a108ea4d8998ebf20d7421ba77EX13D12UWC004antamazonc_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

I've found a bug in XenVBD when trying to port a patch I've made for XenVBD=
 8.2 to XenVBD 9 (patch will be posted soon).

AdapterHwFindAdapter calls AdapterInitialize which asserts the IRQL is at P=
ASSIVE_LEVEL. AdapterInitialize calls functions like ThreadCreate which als=
o require PASSIVE_LEVEL. However, the current code cannot guarantee that Ad=
apterInitialize is called at PASSIVE_LEVEL, because sometimes AdapterHwFind=
Adapter is called at DISPATCH_LEVEL. AdapterHwAdapterControl does not indic=
ate support for ScsiRestartAdapter which can cause AdapterHwFindAdapter to =
be called at DISPATCH_LEVEL. See the Remarks on this page: https://msdn.mic=
rosoft.com/en-us/library/windows/hardware/ff557390(v=3Dvs.85).aspx

Based on commit 160c370db6ad0c6f0ae027c844b2ee035d50891e in XenVBD.

--_000_75c799a108ea4d8998ebf20d7421ba77EX13D12UWC004antamazonc_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri",sans-serif;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"#0563C1" vlink=3D"#954F72">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">I&#8217;ve found a bug in XenVBD when trying to port=
 a patch I&#8217;ve made for XenVBD 8.2 to XenVBD 9 (patch will be posted s=
oon).<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">AdapterHwFindAdapter calls AdapterInitialize which a=
sserts the IRQL is at PASSIVE_LEVEL. AdapterInitialize calls functions like=
 ThreadCreate which also require PASSIVE_LEVEL. However, the current code c=
annot guarantee that AdapterInitialize
 is called at PASSIVE_LEVEL, because sometimes AdapterHwFindAdapter is call=
ed at DISPATCH_LEVEL. AdapterHwAdapterControl does not indicate support for=
 ScsiRestartAdapter which can cause AdapterHwFindAdapter to be called at DI=
SPATCH_LEVEL. See the Remarks on
 this page: <a href=3D"https://msdn.microsoft.com/en-us/library/windows/har=
dware/ff557390(v=3Dvs.85).aspx">
https://msdn.microsoft.com/en-us/library/windows/hardware/ff557390(v=3Dvs.8=
5).aspx</a><o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Based on commit 160c370db6ad0c6f0ae027c844b2ee035d50=
891e in XenVBD.<o:p></o:p></p>
</div>
</body>
</html>

--_000_75c799a108ea4d8998ebf20d7421ba77EX13D12UWC004antamazonc_--


--===============2651508981345805725==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

--===============2651508981345805725==--


From win-pv-devel-bounces@lists.xenproject.org Mon Jun 26 19:10:12 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 26 Jun 2017 19:10:12 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPZOm-0004MT-6A; Mon, 26 Jun 2017 19:10:12 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <miles@atmos.eu>) id 1dPZOl-0004MN-Md
 for win-pv-devel@lists.xenproject.org; Mon, 26 Jun 2017 19:10:11 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
 E1/D9-31580-21C51595; Mon, 26 Jun 2017 19:10:10 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrIIsWRWlGSWpSXmKPExsUSH/ohSVcoJjD
 S4HyHuMWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNWNAzj71gK2fFzXM72BoYb7F3MXJxCAlsZ5RY
 8/84UxcjB4eEgIZEyzpviPgNRomVs24xQTg7GSUmvXvA0sXIySEioCpxbfkxNpAGNiB7zVd9k
 LCwgJ3Ej0MfWEFsfgEriaUnT7GD2LwC1hLz5x5kBLFZgMrfTfnHBmKLCsRIvFnaClUjKHFy5h
 Ow8cwCZhLzNj9khrDlJba/nQNli0vcejKfaQIj/ywkLbOQtMxC0jILScsCRpZVjBrFqUVlqUW
 6RiZ6SUWZ6RkluYmZObqGBsZ6uanFxYnpqTmJScV6yfm5mxiBwVnPwMC4g/HVcb9DjJIcTEqi
 vKvCAyOF+JLyUyozEosz4otKc1KLDzHKcHAoSfAGRwPlBItS01Mr0jJzgHECk5bg4FESgUjzF
 hck5hZnpkOkTjHqcmxYvf4LkxBLXn5eqpQ4rydIkQBIUUZpHtwIWMxeYpSVEuZlZGBgEOIpSC
 3KzSxBlX/FKM7BqCTMuywKaApPZl4J3KZXQEcwAR3BMi8A5IiSRISUVAOj34+pXI46ebPCdH5
 055Q3cuYUOGsuM8m3UFFTPGev/3/Vnavn9/BL2AnZLbPXqd++e76w4efoFw0qD11zpK6Ync1g
 V3vk8bTLK9GW602X623Gw7opIl0Mhs9SuNOP7PzfxWFSpVpr4ScfqS0+/ZB09swZTQGfrvPst
 yhQu6ZxQGLHrkQrLyWW4oxEQy3mouJEAB6EOPPUAgAA
X-Env-Sender: miles@atmos.eu
X-Msg-Ref: server-2.tower-31.messagelabs.com!1498504210!95768235!1
X-Originating-IP: [95.85.240.98]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 56188 invoked from network); 26 Jun 2017 19:10:10 -0000
Received: from fw2.atmos.eu (HELO fw2.atmos.eu) (95.85.240.98)
 by server-2.tower-31.messagelabs.com with SMTP; 26 Jun 2017 19:10:10 -0000
Received: from localhost (localhost [127.0.0.1])
 by fw2.atmos.eu (Postfix) with ESMTP id 1BC3A11C0002
 for <win-pv-devel@lists.xenproject.org>; Mon, 26 Jun 2017 21:10:10 +0200 (CEST)
X-Virus-Scanned: amavisd-new at atmos.eu
Received: from fw2.atmos.eu ([127.0.0.1])
 by localhost (fw2.atmos.eu [127.0.0.1]) (amavisd-new, port 10024)
 with LMTP id 9LSepwUV4cDJ for <win-pv-devel@lists.xenproject.org>;
 Mon, 26 Jun 2017 21:10:08 +0200 (CEST)
Received: from [10.0.128.3] (unknown [10.0.128.3])
 by fw2.atmos.eu (Postfix) with ESMTP id DC85A11C0001
 for <win-pv-devel@lists.xenproject.org>; Mon, 26 Jun 2017 21:10:07 +0200 (CEST)
To: win-pv-devel@lists.xenproject.org
From: Peter Milesson <miles@atmos.eu>
Organization: =?UTF-8?Q?Jaroslav_Canka=c5=99_a_syn_ATMOS?=
Message-ID: <c5fc0e0c-563e-6f3d-3f70-c25b7f3cef61@atmos.eu>
Date: Mon, 26 Jun 2017 21:10:06 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101
 Thunderbird/52.2.1
MIME-Version: 1.0
Content-Language: en-US
Subject: [win-pv-devel] Windows 2008 boot problems with signed pv drivers 8.2
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SGkgZm9sa3MsCgpJIGhhZCB0byBpbnN0YWxsIGEgRG9tVSBXaW5kb3dzIDIwMDggc2VydmVyIHg2
NCBTUDIsIHRvIHJlcGxhY2UgcGFydHMgb2YgCnRoZSBmdW5jdGlvbmFsaXR5IG9mIGEgcGh5c2lj
YWwgc2VydmVyIHRoYXQgc3VkZGVubHkgZGllZC4gSSBrbm93IGl0J3MgCm9sZCBzdHVmZiwgYnV0
IHRoaXMgaXMgbmVlZGVkIGluIHRoZSBtZWFudGltZSwgdW50aWwgSSBnZXQgbmV3IHNlcnZlcnMu
CgpBZnRlciBpbnN0YWxsaW5nIGFsbCB0aGUgV2luZG93cyB1cGRhdGVzIChhcm91bmQgMjMwKSwg
SSBkb3dubG9hZGVkIGFuZCAKaW5zdGFsbGVkIHRoZSBzaWduZWQgV2luZG93cyBQViBkcml2ZXJz
IHZlci4gOC4yLCBzdGFydGluZyB3aXRoIHhlbmJ1cywgCmFuZCBmb2xsb3dpbmcgdXAgd2l0aCB4
ZW5pZiwgeGVudmJkLCB4ZW52aWYsIGFuZCB4ZW5uZXQuIEFmdGVyIHJlYm9vdCBvZiAKdGhlIERv
bVUsIFdpbmRvd3MgQm9vdCBNYW5hZ2VyIHdpbmRvdyBwb3BwZWQgdXAgYWZ0ZXIgYSB3aGlsZSwg
c2F5aW5nOgoKV2luZG93cyBmYWlsZWQgdG8gc3RhcnQuIEEgcmVjZW50IGhhcmR3YXJlIG9yIHNv
ZnR3YXJlIGNoYW5nZSBibGFoLCAKYmxhaCwgYmxhaC4uLgoKSW4gdGhlIGxvd2VyIHBhcnQgb2Yg
dGhlIHNjcmVlbiBpdCBzYXlzOgoKRmlsZTogXFdpbmRvd3Ncc3lzdGVtMzJcRFJJVkVSU1x4ZW5i
dXMuc3lzCgpTdGF0dXM6IDB4YzAwMDA0MjgKCkluZm86IFdpbmRvd3MgY2Fubm90IHZlcmlmeSB0
aGUgZGlnaXRhbCBzaWduYXR1cmUgZm9yIHRoaXMgZmlsZS4KClByZXNzaW5nIEVudGVyIGFuZCBi
b290aW5nIHdpdGggYWR2YW5jZWQgb3B0aW9ucywgSSBjaG9vc2UgRGlzYWJsZSAKRHJpdmVyIFNp
Z25hdHVyZSBFbmZvcmNlbWVudCwgYW5kIHRoZSBPUyBib290cyBub3JtYWxseS4KCkkndmUgdHJp
ZWQgdG8gdXNlIHRoZSBjb21tb24gdHJpY2tzIGZvciB1bnNpZ25lZCwgb3IgdGVzdCBzaWduZWQg
CmRyaXZlcnMsIGJ1dCB0aGF0IGhhcyBnb3Qgbm8gZWZmZWN0IHdoYXRzb2V2ZXIuIEkgdXNlIHRo
ZSBzYW1lIHNpZ25lZCAKZHJpdmVycyBzdWNjZXNzZnVsbHkgd2l0aCBXaW5kb3dzIDcsIGFuZCBX
aW5kb3dzIDEwLgoKQW55Ym9keSBnb3QgYW4gaWRlYSwgaG93IEkgY2FuIGdldCBpdCB0byBib290
IHdpdGhvdXQgbWFudWFsIAppbnRlcnZlbnRpb24gZWFjaCB0aW1lPwoKQmVzdCByZWdhcmRzLAoK
UGV0ZXIKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
d2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8v
d2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Mon Jun 26 19:46:11 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Mon, 26 Jun 2017 19:46:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPZxa-0006hh-12; Mon, 26 Jun 2017 19:46:10 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=343a526a5=mackayem@amazon.com>)
 id 1dPZxY-0006hb-Dn
 for win-pv-devel@lists.xenproject.org; Mon, 26 Jun 2017 19:46:08 +0000
Received: from [85.158.137.68] by server-4.bemta-3.messagelabs.com id
 10/69-31580-E7461595; Mon, 26 Jun 2017 19:46:06 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrKIsWRWlGSWpSXmKPExsXiIXpEUrc2JTD
 S4MtfCYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8e3/VuaCcwcYKxreeTQwvmlh7GLk4mAR2Mws
 0dG2n6mLkZNDQsBf4sqmX2AJIYE7jBI7pzaxQjjHmSTu3PvIBuHsY5Q4OKudHcLZzyix6P0Hs
 H42AXWJs4ufsoPYIkD2vs9bgeIcHMwCqhILWo1A6oUFWhkluh8eYgWpYQGK3/jTxwZi8wo4SS
 y8tJcN4g45iZPHJrNCxAUlTs58wgJiMwtISBx88YIZokZRYk7/ZnYIu0Bi48anzBMYBWchaZm
 FpGUBI9MqRvXi1KKy1CJdE72kosz0jJLcxMwcXUMDY73c1OLixPTUnMSkYr3k/NxNjMAgZQCC
 HYyNX5wOMUpyMCmJ8q4KD4wU4kvKT6nMSCzOiC8qzUktPsQow8GhJMF7IRkoJ1iUmp5akZaZA
 4wXmLQEB4+SCK9bAlCat7ggMbc4Mx0idYpRl+PB/zVfmIRY8vLzUqXEeWeCzBAAKcoozYMbAY
 vdS4yyUsK8jEBHCfEUpBblZpagyr9iFOdgVBLmvZUENIUnM68EbtMroCOYgI5gmRcAckRJIkJ
 KqoGRPevpf/OmWv7P0feSpII3Gl7fpia1UOOMyi5uyQiLY98OzRE7MlH7TrjJlS3Hwlas/MDV
 +7g440v4+d/Kp53Wxf46uPLkJPnw3IQlXwQ6DhyRfuVnuEFa+W2R8Gvph1d0xfY4VWlMjTuwZ
 8pk73tLvnM/5JHn7SuJ2vt3xmtmyZVV567c3Pj4sxJLcUaioRZzUXEiAI0++WbYAgAA
X-Env-Sender: prvs=343a526a5=mackayem@amazon.com
X-Msg-Ref: server-6.tower-31.messagelabs.com!1498506363!68907751!1
X-Originating-IP: [72.21.196.25]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNzIuMjEuMTk2LjI1ID0+IDE4NjQwNA==\n
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 24415 invoked from network); 26 Jun 2017 19:46:05 -0000
Received: from smtp-fw-2101.amazon.com (HELO smtp-fw-2101.amazon.com)
 (72.21.196.25)
 by server-6.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 26 Jun 2017 19:46:05 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
 t=1498506364; x=1530042364;
 h=from:to:cc:subject:date:message-id:mime-version;
 bh=Ij9F5lHH23rd/2Z9pN2w3yqTfs31yvj8NtTpcIkvB8M=;
 b=LK0+ZFpcOliRF1Gu5mQfSny6NNUppWw0oIEB+gsOsAmsRZR19c7UaRwa
 Z7BBJsrwAiQDgCRkDjlVSX+f9FT8POoz9Qovwe6O/XCSDbNLUOqRobCMn
 Y5Hn2Dqmb9/q/udk8IqZrjI3xBJgdxYBm++W7buKLbFl3jl8km43NoJjk c=;
X-IronPort-AV: E=Sophos;i="5.39,397,1493683200"; d="scan'208";a="655099636"
Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO
 email-inbound-relay-6012.iad6.amazon.com) ([10.43.8.2])
 by smtp-border-fw-out-2101.iad2.amazon.com with ESMTP/TLS/DHE-RSA-AES256-SHA;
 26 Jun 2017 19:45:57 +0000
Received: from EX13MTAUWC001.ant.amazon.com
 (iad55-ws-svc-p15-lb9-vlan3.iad.amazon.com [10.40.159.166])
 by email-inbound-relay-6012.iad6.amazon.com (8.14.7/8.14.7) with ESMTP id
 v5QJjqRe004368
 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL)
 for <win-pv-devel@lists.xenproject.org>; Mon, 26 Jun 2017 19:45:57 GMT
Received: from EX13D12UWC004.ant.amazon.com (10.43.162.182) by
 EX13MTAUWC001.ant.amazon.com (10.43.162.135) with Microsoft SMTP Server (TLS)
 id 15.0.1104.5; Mon, 26 Jun 2017 19:45:56 +0000
Received: from SEA-1850024150.sea.amazon.com (10.43.161.175) by
 EX13D12UWC004.ant.amazon.com (10.43.162.182) with Microsoft SMTP Server (TLS)
 id 15.0.1104.5; Mon, 26 Jun 2017 19:45:56 +0000
From: Eric Mackay <mackayem@amazon.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Mon, 26 Jun 2017 12:45:46 -0700
Message-ID: <1498506346-2019-1-git-send-email-mackayem@amazon.com>
X-Mailer: git-send-email 1.9.1
MIME-Version: 1.0
X-Originating-IP: [10.43.161.175]
X-ClientProxiedBy: EX13D13UWB001.ant.amazon.com (10.43.161.156) To
 EX13D12UWC004.ant.amazon.com (10.43.162.182)
Cc: Eric Mackay <mackayem@amazon.com>
Subject: [win-pv-devel] [PATCH] Added a function called from DriverEntry
	where we can safely read registry keys and convert strings at
	PASSIVE_LEVEL
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

VGhlIE1TRE4gZG9jdW1lbnRhdGlvbiBmb3IgdmFyaW91cyByZWdpc3RyeSBrZXkgYWNjZXNzIGFu
ZCBzdHJpbmcKY29udmVyc2lvbiBmdW5jdGlvbnMgcmVxdWlyZXMgdGhlIGNhbGxlciB0byBiZSBh
dApJUlFMID0gUEFTU0lWRV9MRVZFTC4gT25lIG9mIHRoZSByZWFzb25zIGZvciB0aGlzIGlzIHRo
YXQgdGhlIHN0cmluZwpjb252ZXJzaW9uIHRhYmxlcyB1c2VkIGJ5IGZ1bmN0aW9ucyBzdWNoIGFz
ClJ0bEFuc2lTdHJpbmdUb1VuaWNvZGVTdHJpbmcgYXJlIHN0b3JlZCBpbiBwYWdlZCBwb29sIG1l
bW9yeS4gQm90aCB0aGUKcGFnZSBmYXVsdCBoYW5kbGVyIGFuZCB0aGUgcHJvY2VzcyBzY2hlZHVs
ZXIKcnVuIGF0IElSUUwgPSBESVNQQVRDSF9MRVZFTCwgdGhlcmVmb3JlIHlvdSBtdXN0IG5vdCB0
b3VjaCBtZW1vcnkgYXQKRElTUEFUQ0hfTEVWRUwgdGhhdCBjb3VsZCBiZSBwYWdlZCBvdXQuIEEg
cHJvY2VzcwpydW5uaW5nIGF0IERJU1BBVENIX0xFVkVMIGNhbm5vdCBiZSBwcmVlbXB0ZWQgZm9y
IHRoZSBwYWdlIGZhdWx0IGhhbmRsZXIKdG8gcnVuLgoKVG8gYWlkIFN0YXRpYyBEcml2ZXIgVmVy
aWZpZXIgY29kZSBhbmFseXNpcyBhbmQgaW5mb3JtIGRldmVsb3BlcnMsIEkgaGF2ZQphZGRlZCBT
QUwgYW5ub3RhdGlvbnMgdGhhdCBpbmRpY2F0ZQpJUlFMID0gUEFTU0lWRV9MRVZFTCBpcyByZXF1
aXJlZCBvbiBjZXJ0YWluIHJlZ2lzdHJ5IGFjY2VzcyBmdW5jdGlvbnMuCgpTaWduZWQtb2ZmLWJ5
OiBFcmljIE1hY2theSA8bWFja2F5ZW1AYW1hem9uLmNvbT4KLS0tCiBzcmMveGVudmJkL2RyaXZl
ci5jICAgfCAgODYgKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL3hlbnZiZC9kcml2ZXIu
aCAgIHwgIDQ1ICsrKysrKysrKysrKysrCiBzcmMveGVudmJkL2Zyb250ZW5kLmMgfCAxNjkgKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIHNyYy94ZW52
YmQvcmVnaXN0cnkuYyB8ICAyNiArKysrKysrKwogc3JjL3hlbnZiZC9yZWdpc3RyeS5oIHwgIDI1
ICsrKysrKystCiA1IGZpbGVzIGNoYW5nZWQsIDI5NiBpbnNlcnRpb25zKCspLCA1NSBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMveGVudmJkL2RyaXZlci5jIGIvc3JjL3hlbnZiZC9kcml2
ZXIuYwppbmRleCBiYjE5NTRmLi4wYzkyNzViIDEwMDY0NAotLS0gYS9zcmMveGVudmJkL2RyaXZl
ci5jCisrKyBiL3NyYy94ZW52YmQvZHJpdmVyLmMKQEAgLTU4LDYgKzU4LDggQEAgWEVOVkJEX1BB
UkFNRVRFUlMgICBEcml2ZXJQYXJhbWV0ZXJzOwogCiAjZGVmaW5lIFhFTlZCRF9QT09MX1RBRyAg
ICAgJ2RidlgnCiAKK1hFTlZCRF9SRUdJU1RSWV9PVkVSUklERSBEcml2ZXJGZWF0dXJlT3ZlcnJp
ZGVzW051bWJlck9mRmVhdHVyZXNdID0geyAwIH07CisKIHN0YXRpYyBERUNMU1BFQ19OT0lOTElO
RSBWT0lECiBfX0RyaXZlclBhcnNlT3B0aW9uKAogICAgIElOICBjb25zdCBDSEFSICAqS2V5LApA
QCAtMzAxLDYgKzMwMyw4OCBAQCBEcml2ZXJGb3JtYXRGcmVlKAogICAgICAgICBfX0ZyZWVQb29s
V2l0aFRhZyhCdWZmZXIsIFhFTlZCRF9QT09MX1RBRyk7CiB9CiAKK19fZHJ2X3JlcXVpcmVzSVJR
TChQQVNTSVZFX0xFVkVMKQorVk9JRAorRHJpdmVySW5pdGlhbGl6ZU92ZXJyaWRlcygKKyAgICAp
Cit7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlOworICAgIE5UU1RBVFVT
ICAgICAgICAgICAgICAgICAgICBTdGF0dXM7CisgICAgUENIQVIgICAgICAgICAgICAgICAgICAg
ICAgIEZlYXR1cmVOYW1lOworICAgIFhFTlZCRF9GRUFUVVJFICAgICAgICAgICAgICBGZWF0dXJl
OyAKKyAgICAKKyAgICBzdHJ1Y3QgSU5JVF9PVkVSUklERVMgeworICAgICAgICBQQ0hBUiBOYW1l
OworICAgICAgICBYRU5WQkRfRkVBVFVSRSBGZWF0dXJlOworICAgIH0gIEluaXRbXSA9IHsKKyAg
ICAgICAgeyAicmVtb3ZhYmxlIiAsIEZlYXR1cmVSZW1vdmFibGUgfSwKKyAgICAgICAgeyAiZmVh
dHVyZS1wZXJzaXN0ZW50IiwgRmVhdHVyZVBlcnNpc3RlbnQgfSwKKyAgICAgICAgeyAiZmVhdHVy
ZS1tYXgtaW5kaXJlY3Qtc2VnbWVudHMiLCBGZWF0dXJlTWF4SW5kaXJlY3RTZWdtZW50cyB9LAor
ICAgICAgICB7ICJmZWF0dXJlLWJhcnJpZXIiLCBGZWF0dXJlQmFycmllciB9LAorICAgICAgICB7
ICJmZWF0dXJlLWZsdXNoLWNhY2hlIiwgRmVhdHVyZUZsdXNoQ2FjaGUgfSwKKyAgICAgICAgeyAi
ZmVhdHVyZS1kaXNjYXJkIiwgRmVhdHVyZURpc2NhcmQgfSwKKyAgICAgICAgeyAiZGlzY2FyZC1l
bmFibGUiLCBGZWF0dXJlRGlzY2FyZEVuYWJsZSB9LAorICAgICAgICB7ICJkaXNjYXJkLXNlY3Vy
ZSIsIEZlYXR1cmVEaXNjYXJkU2VjdXJlIH0sCisgICAgICAgIHsgImRpc2NhcmQtYWxpZ25tZW50
IiwgRmVhdHVyZURpc2NhcmRBbGlnbm1lbnQgfSwKKyAgICAgICAgeyAiZGlzY2FyZC1ncmFudWxh
cml0eSIsIEZlYXR1cmVEaXNjYXJkR3JhbnVsYXJpdHkgfQorICAgIH07CisKKyAgICBmb3IgKFVM
T05HIEluZGV4ID0gMDsgSW5kZXggPCBBUlJBWVNJWkUoSW5pdCk7IEluZGV4KyspIHsKKyAgICAg
ICAgRmVhdHVyZSA9IEluaXRbSW5kZXhdLkZlYXR1cmU7CisgICAgICAgIEZlYXR1cmVOYW1lID0g
SW5pdFtJbmRleF0uTmFtZTsKKyAgICAgICAgRHJpdmVyRmVhdHVyZU92ZXJyaWRlc1soVUxPTkcp
RmVhdHVyZV0uTmFtZSA9IEZlYXR1cmVOYW1lOworICAgICAgICBEcml2ZXJGZWF0dXJlT3ZlcnJp
ZGVzWyhVTE9ORylGZWF0dXJlXS5WYWx1ZSA9IDA7CisgICAgICAgIERyaXZlckZlYXR1cmVPdmVy
cmlkZXNbKFVMT05HKUZlYXR1cmVdLkZvdW5kID0gRkFMU0U7CisKKyAgICAgICAgU3RhdHVzID0g
UmVnaXN0cnlRdWVyeUR3b3JkVmFsdWUoRHJpdmVyR2V0UGFyYW1ldGVyc0tleSgpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGZWF0dXJlTmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlZhbHVlKTsKKworICAgICAgICBpZiAo
TlRfU1VDQ0VTUyhTdGF0dXMpKSB7CisgICAgICAgICAgICBEcml2ZXJGZWF0dXJlT3ZlcnJpZGVz
WyhVTE9ORylGZWF0dXJlXS5Gb3VuZCA9IFRSVUU7CisgICAgICAgICAgICBEcml2ZXJGZWF0dXJl
T3ZlcnJpZGVzWyhVTE9ORylGZWF0dXJlXS5WYWx1ZSA9IFZhbHVlOworICAgICAgICB9CisgICAg
fQorfQorCisvLyBSZXR1cm4gdmFsdWUgaW5kaWNhdGVzIHdoZXRoZXIgcmVnIGtleSB3YXMgZm91
bmQgYW5kIHN0b3JlZCBpbiBEcml2ZXJGZWF0dXJlT3ZlcnJpZGVzCisvLyBXaWxsIHNldCBWYWx1
ZSB0byB0aGUgY29ycmVzcG9uZGluZyByZWcgdmFsdWUgaWYgZm91bmQsIG90aGVyd2lzZSBpdCB3
aWxsIGxlYXZlIFZhbHVlIHVudG91Y2hlZAorX19jaGVja1JldHVybgorX1N1Y2Nlc3NfKHJldHVy
bikKK0JPT0xFQU4KK0RyaXZlckdldFJlZ092ZXJyaWRlKAorICAgIF9faW4gWEVOVkJEX0ZFQVRV
UkUgICAgICAgICAgICAgIEZlYXR1cmUsCisgICAgX19vdXQgUFVMT05HICAgICAgICAgICAgICAg
ICAgICAgVmFsdWUKKyAgICApCit7CisgICAgQk9PTEVBTiBGb3VuZCA9IEZBTFNFOworCisgICAg
aWYgKChVTE9ORylGZWF0dXJlIDwgKFVMT05HKU51bWJlck9mRmVhdHVyZXMpIHsKKyAgICAgICAg
Rm91bmQgPSBEcml2ZXJGZWF0dXJlT3ZlcnJpZGVzWyhVTE9ORylGZWF0dXJlXS5Gb3VuZDsKKyAg
ICAgICAgKlZhbHVlID0gRHJpdmVyRmVhdHVyZU92ZXJyaWRlc1soVUxPTkcpRmVhdHVyZV0uVmFs
dWU7CisgICAgfQorCisgICAgcmV0dXJuIEZvdW5kOworfQorCisvLyBSZXR1cm4gdmFsdWUgaW5k
aWNhdGVzIHdoZXRoZXIgYSBmZWF0dXJlIGVudW0gdG8gc3RyaW5nIG1hcHBpbmcgd2FzIGZvdW5k
CisvLyBGZWF0dXJlU3RyaW5nIHdpbGwgYmUgc2V0IHRvIHBvaW50IHRvIHRoZSBzdHJpbmcgaWYg
YSBtYXBwaW5nIGlzIGZvdW5kLCBvdGhlcndpc2UKKy8vIGlzIG5vdCBtb2RpZmllZAorX19jaGVj
a1JldHVybgorUENIQVIKK0RyaXZlckdldEZlYXR1cmVOYW1lKAorICAgIF9faW4gWEVOVkJEX0ZF
QVRVUkUgICAgICAgICAgICAgIEZlYXR1cmUKKyAgICApCit7CisgICAgUENIQVIgTmFtZSA9IE5V
TEw7CisKKyAgICBpZiAoKFVMT05HKUZlYXR1cmUgPCAoVUxPTkcpTnVtYmVyT2ZGZWF0dXJlcykg
eworICAgICAgICBOYW1lID0gRHJpdmVyRmVhdHVyZU92ZXJyaWRlc1soVUxPTkcpRmVhdHVyZV0u
TmFtZTsKKyAgICB9CisKKyAgICByZXR1cm4gTmFtZTsKK30KKwogSFdfSU5JVElBTElaRSAgICAg
ICBId0luaXRpYWxpemU7CiAKIEJPT0xFQU4gCkBAIC01NDksNiArNjMzLDggQEAgRHJpdmVyRW50
cnkoCiAKICAgICBSdGxaZXJvTWVtb3J5KCZJbml0RGF0YSwgc2l6ZW9mKEluaXREYXRhKSk7CiAK
KyAgICBEcml2ZXJJbml0aWFsaXplT3ZlcnJpZGVzKCk7CisKICAgICBJbml0RGF0YS5Id0luaXRp
YWxpemF0aW9uRGF0YVNpemUgICA9ICAgc2l6ZW9mKEluaXREYXRhKTsKICAgICBJbml0RGF0YS5B
ZGFwdGVySW50ZXJmYWNlVHlwZSAgICAgICA9ICAgSW50ZXJuYWw7CiAgICAgSW5pdERhdGEuSHdJ
bml0aWFsaXplICAgICAgICAgICAgICAgPSAgIEh3SW5pdGlhbGl6ZTsKZGlmZiAtLWdpdCBhL3Ny
Yy94ZW52YmQvZHJpdmVyLmggYi9zcmMveGVudmJkL2RyaXZlci5oCmluZGV4IGU3NzMwYTkuLjli
ZjAwMzQgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52YmQvZHJpdmVyLmgKKysrIGIvc3JjL3hlbnZiZC9k
cml2ZXIuaApAQCAtNTAsNiArNTAsNTEgQEAKIAogI2RlZmluZSBYRU5WQkRfTUlOX0dSQU5UX1JF
RlMgICAgICAgICAgIChYRU5WQkRfTUFYX1NFR01FTlRTX1BFUl9TUkIpCiAKKy8vIFJlZ2lzdHJ5
IG92ZXJyaWRlcyBmb3IgZHJpdmVyIGZlYXR1cmVzCit0eXBlZGVmIGVudW0gX1hFTlZCRF9GRUFU
VVJFIHsKKyAgICBGZWF0dXJlUmVtb3ZhYmxlID0gMCwKKyAgICBGZWF0dXJlUGVyc2lzdGVudCwK
KyAgICBGZWF0dXJlTWF4SW5kaXJlY3RTZWdtZW50cywKKyAgICBGZWF0dXJlQmFycmllciwKKyAg
ICBGZWF0dXJlRmx1c2hDYWNoZSwKKyAgICBGZWF0dXJlRGlzY2FyZCwKKyAgICBGZWF0dXJlRGlz
Y2FyZEVuYWJsZSwKKyAgICBGZWF0dXJlRGlzY2FyZFNlY3VyZSwKKyAgICBGZWF0dXJlRGlzY2Fy
ZEFsaWdubWVudCwKKyAgICBGZWF0dXJlRGlzY2FyZEdyYW51bGFyaXR5LAorCisgICAgLy8gQWRk
IGFueSBuZXcgZmVhdHVyZXMgYmVmb3JlIHRoaXMgZW51bQorICAgIE51bWJlck9mRmVhdHVyZXMK
K30gWEVOVkJEX0ZFQVRVUkUsICpQWEVOVkJEX0ZFQVRVUkU7CisKKy8vIEZlYXR1cmUgT3ZlcnJp
ZGVzIEZyb20gUmVnaXN0cnkgVmFsdWVzCit0eXBlZGVmIHN0cnVjdCBfWEVOVkJEX1JFR0lTVFJZ
X09WRVJSSURFIHsKKyAgICBQQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgTmFtZTsKKyAgICBV
TE9ORyAgICAgICAgICAgICAgICAgICAgICAgVmFsdWU7CisgICAgQk9PTEVBTiAgICAgICAgICAg
ICAgICAgICAgIEZvdW5kOworfSBYRU5WQkRfUkVHSVNUUllfT1ZFUlJJREUsICpQWEVOVkJEX1JF
R0lTVFJZX09WRVJSSURFOworCitleHRlcm4gWEVOVkJEX1JFR0lTVFJZX09WRVJSSURFIERyaXZl
ckZlYXR1cmVPdmVycmlkZXNbTnVtYmVyT2ZGZWF0dXJlc107CisKKy8vIFJldHVybiB2YWx1ZSBp
bmRpY2F0ZXMgd2hldGhlciByZWcga2V5IHdhcyBmb3VuZCBhbmQgc3RvcmVkIGluIERyaXZlckZl
YXR1cmVPdmVycmlkZXMKKy8vIFdpbGwgc2V0IFZhbHVlIHRvIHRoZSBjb3JyZXNwb25kaW5nIHJl
ZyB2YWx1ZSBpZiBmb3VuZCwgb3RoZXJ3aXNlIGl0IHdpbGwgbGVhdmUgVmFsdWUgdW50b3VjaGVk
CitfX2NoZWNrUmV0dXJuCitfU3VjY2Vzc18ocmV0dXJuKQorZXh0ZXJuIEJPT0xFQU4KK0RyaXZl
ckdldFJlZ092ZXJyaWRlKAorICAgIF9faW4gWEVOVkJEX0ZFQVRVUkUgICAgICAgICAgICAgIE5h
bWUsCisgICAgX19vdXQgUFVMT05HICAgICAgICAgICAgICAgICAgICAgVmFsdWUKKyAgICApOwor
CisvLyBSZXR1cm4gdmFsdWUgaW5kaWNhdGVzIHdoZXRoZXIgYSBmZWF0dXJlIGVudW0gdG8gc3Ry
aW5nIG1hcHBpbmcgd2FzIGZvdW5kCisvLyBGZWF0dXJlU3RyaW5nIHdpbGwgYmUgc2V0IHRvIHBv
aW50IHRvIHRoZSBzdHJpbmcgaWYgYSBtYXBwaW5nIGlzIGZvdW5kLCBvdGhlcndpc2UKKy8vIGlz
IG5vdCBtb2RpZmllZAorX19jaGVja1JldHVybgorZXh0ZXJuIFBDSEFSCitEcml2ZXJHZXRGZWF0
dXJlTmFtZSgKKyAgICBfX2luIFhFTlZCRF9GRUFUVVJFICAgICAgICAgICAgICBGZWF0dXJlCisg
ICAgKTsKKwogdHlwZWRlZiBzdHJ1Y3QgX1hFTlZCRF9QQVJBTUVURVJTIHsKICAgICBCT09MRUFO
ICAgICBTeW50aGVzaXplSW5xdWlyeTsKICAgICBCT09MRUFOICAgICBQVkNEUm9tOwpkaWZmIC0t
Z2l0IGEvc3JjL3hlbnZiZC9mcm9udGVuZC5jIGIvc3JjL3hlbnZiZC9mcm9udGVuZC5jCmluZGV4
IDIyN2I5M2IuLmFhOGVkNjIgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52YmQvZnJvbnRlbmQuYworKysg
Yi9zcmMveGVudmJkL2Zyb250ZW5kLmMKQEAgLTYxOSwzNyArNjE5LDY5IEBAIGFib3J0Ogogc3Rh
dGljIEZPUkNFSU5MSU5FIEJPT0xFQU4KIEZyb250ZW5kUmVhZEZlYXR1cmUoCiAgICAgSU4gIFBY
RU5WQkRfRlJPTlRFTkQgICAgICAgICAgICBGcm9udGVuZCwKLSAgICBJTiAgUENIQVIgICAgICAg
ICAgICAgICAgICAgICAgIE5hbWUsCisgICAgSU4gIFhFTlZCRF9GRUFUVVJFICAgICAgICAgICAg
ICBGZWF0dXJlLAogICAgIElOICBQQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgVmFsdWUKLSAg
ICApCispCiB7CiAgICAgTlRTVEFUVVMgICAgICAgIHN0YXR1czsKICAgICBQQ0hBUiAgICAgICAg
ICAgQnVmZmVyOwogICAgIFVMT05HICAgICAgICAgICBPdmVycmlkZTsKICAgICBCT09MRUFOICAg
ICAgICAgT2xkID0gKlZhbHVlOworICAgIFBDSEFSICAgICAgICAgICBOYW1lOworCisgICAgTmFt
ZSA9IERyaXZlckdldEZlYXR1cmVOYW1lKEZlYXR1cmUpOworICAgIGlmIChOYW1lID09IE5VTEwp
IHsKKyAgICAgICAgVHJhY2UoIlRhcmdldFslZF0gOiBDb3VsZCBub3QgZmluZCBGZWF0dXJlICV1
LlxuIiwgRnJvbnRlbmQtPlRhcmdldElkLCBGZWF0dXJlKTsKKyAgICAgICAgcmV0dXJuIEZBTFNF
OworICAgIH0KKworICAgIC8vIGNoZWNrIHJlZ2lzdHJ5IGZvciBkaXNhYmxlLW92ZXJyaWRlCisg
ICAgaWYgKERyaXZlckdldFJlZ092ZXJyaWRlKEZlYXR1cmUsICZPdmVycmlkZSkpIHsKKyAgICAg
ICAgKlZhbHVlID0gKE92ZXJyaWRlID09IDApID8gRkFMU0UgOiBUUlVFOworICAgIH0gZWxzZSB7
CisKKyAgICAgICAgc3RhdHVzID0gWEVOQlVTX1NUT1JFKFJlYWQsCisgICAgICAgICAgICBGcm9u
dGVuZC0+U3RvcmUsCisgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgRnJvbnRlbmQtPkJh
Y2tlbmRQYXRoLAorICAgICAgICAgICAgTmFtZSwKKyAgICAgICAgICAgICZCdWZmZXIpOworICAg
ICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgICAgIHJldHVybiBGQUxTRTsg
ICAvLyBubyB2YWx1ZSwgdW5jaGFuZ2VkCisKKyAgICAgICAgKlZhbHVlID0gISEoc3RydG91bChC
dWZmZXIsIE5VTEwsIDEwKSk7CisgICAgICAgIFhFTkJVU19TVE9SRShGcmVlLAorICAgICAgICAg
ICAgRnJvbnRlbmQtPlN0b3JlLAorICAgICAgICAgICAgQnVmZmVyKTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gT2xkICE9ICpWYWx1ZTsKK30KKworc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4KK0Zy
b250ZW5kUmVhZERpc2tGZWF0dXJlKAorICAgIElOICBQWEVOVkJEX0ZST05URU5EICAgICAgICAg
ICAgRnJvbnRlbmQsCisgICAgSU4gIFBDSEFSICAgICAgICAgICAgICAgICAgICAgICBOYW1lLAor
ICAgIElOICBQQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgVmFsdWUKKykKK3sKKyAgICBOVFNU
QVRVUyAgICAgICAgc3RhdHVzOworICAgIFBDSEFSICAgICAgICAgICBCdWZmZXI7CisgICAgQk9P
TEVBTiAgICAgICAgIE9sZCA9ICpWYWx1ZTsKIAogICAgIHN0YXR1cyA9IFhFTkJVU19TVE9SRShS
ZWFkLAotICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZC0+U3RvcmUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250
ZW5kLT5CYWNrZW5kUGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgJkJ1ZmZlcik7CisgICAgICAgIEZyb250ZW5kLT5TdG9yZSwK
KyAgICAgICAgTlVMTCwKKyAgICAgICAgRnJvbnRlbmQtPkJhY2tlbmRQYXRoLAorICAgICAgICBO
YW1lLAorICAgICAgICAmQnVmZmVyKTsKICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkKICAg
ICAgICAgcmV0dXJuIEZBTFNFOyAgIC8vIG5vIHZhbHVlLCB1bmNoYW5nZWQKIAogICAgICpWYWx1
ZSA9ICEhKHN0cnRvdWwoQnVmZmVyLCBOVUxMLCAxMCkpOwogICAgIFhFTkJVU19TVE9SRShGcmVl
LAotICAgICAgICAgICAgICAgICAgICBGcm9udGVuZC0+U3RvcmUsCi0gICAgICAgICAgICAgICAg
ICAgIEJ1ZmZlcik7Ci0KLSAgICAvLyBjaGVjayByZWdpc3RyeSBmb3IgZGlzYWJsZS1vdmVycmlk
ZQotICAgIHN0YXR1cyA9IFJlZ2lzdHJ5UXVlcnlEd29yZFZhbHVlKERyaXZlckdldFBhcmFtZXRl
cnNLZXkoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmT3ZlcnJpZGUpOwotICAgIGlmIChOVF9T
VUNDRVNTKHN0YXR1cykpIHsKLSAgICAgICAgaWYgKE92ZXJyaWRlID09IDApCi0gICAgICAgICAg
ICAqVmFsdWUgPSBGQUxTRTsKLSAgICB9CisgICAgICAgIEZyb250ZW5kLT5TdG9yZSwKKyAgICAg
ICAgQnVmZmVyKTsKIAogICAgIHJldHVybiBPbGQgIT0gKlZhbHVlOwogfQpAQCAtNjU3LDM5ICs2
ODksNjkgQEAgRnJvbnRlbmRSZWFkRmVhdHVyZSgKIHN0YXRpYyBGT1JDRUlOTElORSBCT09MRUFO
CiBGcm9udGVuZFJlYWRWYWx1ZTMyKAogICAgIElOICBQWEVOVkJEX0ZST05URU5EICAgICAgICAg
ICAgRnJvbnRlbmQsCi0gICAgSU4gIFBDSEFSICAgICAgICAgICAgICAgICAgICAgICBOYW1lLAor
ICAgIElOICBYRU5WQkRfRkVBVFVSRSAgICAgICAgICAgICAgRmVhdHVyZSwKICAgICBJTiAgQk9P
TEVBTiAgICAgICAgICAgICAgICAgICAgIEFsbG93T3ZlcnJpZGUsCiAgICAgSU4gIFBVTE9ORyAg
ICAgICAgICAgICAgICAgICAgICBWYWx1ZQotICAgICkKKykKIHsKICAgICBOVFNUQVRVUyAgICAg
ICAgc3RhdHVzOwogICAgIFBDSEFSICAgICAgICAgICBCdWZmZXI7CiAgICAgVUxPTkcgICAgICAg
ICAgIE92ZXJyaWRlOwogICAgIFVMT05HICAgICAgICAgICBPbGQgPSAqVmFsdWU7CisgICAgUFNU
UiAgICAgICAgICAgIE5hbWU7CisKKyAgICBOYW1lID0gRHJpdmVyR2V0RmVhdHVyZU5hbWUoRmVh
dHVyZSk7CisgICAgaWYgKE5hbWUgPT0gTlVMTCkgeworICAgICAgICBUcmFjZSgiVGFyZ2V0WyVk
XSA6IENvdWxkIG5vdCBmaW5kIEZlYXR1cmUgJXUuXG4iLCBGcm9udGVuZC0+VGFyZ2V0SWQsIEZl
YXR1cmUpOworICAgICAgICByZXR1cm4gRkFMU0U7CisgICAgfQorCisgICAgLy8gY2hlY2sgcmVn
aXN0cnkgZm9yIGRpc2FibGUtb3ZlcnJpZGUKKyAgICBpZiAoQWxsb3dPdmVycmlkZSAmJiBEcml2
ZXJHZXRSZWdPdmVycmlkZShGZWF0dXJlLCAmT3ZlcnJpZGUpKSB7CisgICAgICAgICpWYWx1ZSA9
IE92ZXJyaWRlOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXR1cyA9IFhFTkJVU19TVE9SRShS
ZWFkLAorICAgICAgICAgICAgRnJvbnRlbmQtPlN0b3JlLAorICAgICAgICAgICAgTlVMTCwKKyAg
ICAgICAgICAgIEZyb250ZW5kLT5CYWNrZW5kUGF0aCwKKyAgICAgICAgICAgIE5hbWUsCisgICAg
ICAgICAgICAmQnVmZmVyKTsKKyAgICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAg
ICAgICAgICByZXR1cm4gRkFMU0U7ICAgLy8gbm8gdmFsdWUsIHVuY2hhbmdlZAorCisgICAgICAg
ICpWYWx1ZSA9IHN0cnRvdWwoQnVmZmVyLCBOVUxMLCAxMCk7CisgICAgICAgIFhFTkJVU19TVE9S
RShGcmVlLAorICAgICAgICAgICAgRnJvbnRlbmQtPlN0b3JlLAorICAgICAgICAgICAgQnVmZmVy
KTsKKyAgICB9CisKKyAgICByZXR1cm4gT2xkICE9ICpWYWx1ZTsKK30KKworc3RhdGljIEZPUkNF
SU5MSU5FIEJPT0xFQU4KK0Zyb250ZW5kUmVhZERpc2tWYWx1ZTMyKAorICAgIElOICBQWEVOVkJE
X0ZST05URU5EICAgICAgICAgICAgRnJvbnRlbmQsCisgICAgSU4gIFBDSEFSICAgICAgICAgICAg
ICAgICAgICAgICBOYW1lLAorICAgIElOICBQVUxPTkcgICAgICAgICAgICAgICAgICAgICAgVmFs
dWUKKykKK3sKKyAgICBOVFNUQVRVUyAgICAgICAgc3RhdHVzOworICAgIFBDSEFSICAgICAgICAg
ICBCdWZmZXI7CisgICAgVUxPTkcgICAgICAgICAgIE9sZCA9ICpWYWx1ZTsKIAogICAgIHN0YXR1
cyA9IFhFTkJVU19TVE9SRShSZWFkLAotICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVu
ZC0+U3RvcmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIEZyb250ZW5kLT5CYWNrZW5kUGF0aCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgTmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJkJ1ZmZlcik7CisgICAgICAg
IEZyb250ZW5kLT5TdG9yZSwKKyAgICAgICAgTlVMTCwKKyAgICAgICAgRnJvbnRlbmQtPkJhY2tl
bmRQYXRoLAorICAgICAgICBOYW1lLAorICAgICAgICAmQnVmZmVyKTsKICAgICBpZiAoIU5UX1NV
Q0NFU1Moc3RhdHVzKSkKICAgICAgICAgcmV0dXJuIEZBTFNFOyAgIC8vIG5vIHZhbHVlLCB1bmNo
YW5nZWQKIAogICAgICpWYWx1ZSA9IHN0cnRvdWwoQnVmZmVyLCBOVUxMLCAxMCk7CiAgICAgWEVO
QlVTX1NUT1JFKEZyZWUsCi0gICAgICAgICAgICAgICAgICAgIEZyb250ZW5kLT5TdG9yZSwKLSAg
ICAgICAgICAgICAgICAgICAgQnVmZmVyKTsKLQotICAgIC8vIGNoZWNrIHJlZ2lzdHJ5IGZvciBk
aXNhYmxlLW92ZXJyaWRlCi0gICAgaWYgKEFsbG93T3ZlcnJpZGUpIHsKLSAgICAgICAgc3RhdHVz
ID0gUmVnaXN0cnlRdWVyeUR3b3JkVmFsdWUoRHJpdmVyR2V0UGFyYW1ldGVyc0tleSgpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJk92ZXJyaWRlKTsKLSAgICAgICAgaWYgKE5UX1NV
Q0NFU1Moc3RhdHVzKSkgewotICAgICAgICAgICAgKlZhbHVlID0gT3ZlcnJpZGU7Ci0gICAgICAg
IH0KLSAgICB9CisgICAgICAgIEZyb250ZW5kLT5TdG9yZSwKKyAgICAgICAgQnVmZmVyKTsKIAog
ICAgIHJldHVybiBPbGQgIT0gKlZhbHVlOwogfQpAQCAtNzUxLDE3ICs4MTMsMTQgQEAgX19SZWFk
RGlza0luZm8oCiB7CiAgICAgQk9PTEVBTiBDaGFuZ2VkID0gRkFMU0U7CiAKLSAgICBDaGFuZ2Vk
IHw9IEZyb250ZW5kUmVhZFZhbHVlMzIoRnJvbnRlbmQsCisgICAgQ2hhbmdlZCB8PSBGcm9udGVu
ZFJlYWREaXNrVmFsdWUzMihGcm9udGVuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiaW5mbyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5EaXNrSW5mby5EaXNr
SW5mbyk7Ci0gICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWRWYWx1ZTMyKEZyb250ZW5kLAorICAg
IENoYW5nZWQgfD0gRnJvbnRlbmRSZWFkRGlza1ZhbHVlMzIoRnJvbnRlbmQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInNlY3Rvci1zaXplIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmRnJvbnRlbmQtPkRpc2tJbmZvLlNlY3RvclNpemUpOwotICAgIENoYW5nZWQgfD0gRnJvbnRl
bmRSZWFkVmFsdWUzMihGcm9udGVuZCwKKyAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZERpc2tW
YWx1ZTMyKEZyb250ZW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwaHlz
aWNhbC1zZWN0b3Itc2l6ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFM
U0UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5EaXNrSW5m
by5QaHlzU2VjdG9yU2l6ZSk7CiAgICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWRWYWx1ZTY0KEZy
b250ZW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWN0b3JzIiwKQEAg
LTgwNSwxNCArODY0LDE0IEBAIEZyb250ZW5kUmVhZEZlYXR1cmVzKAogICAgIEJPT0xFQU4gQ2hh
bmdlZCA9IEZBTFNFOwogCiAgICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWRGZWF0dXJlKEZyb250
ZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVtb3ZhYmxlIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVhdHVyZVJlbW92YWJsZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5DYXBzLlJlbW92YWJsZSk7
CiAgICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWRWYWx1ZTMyKEZyb250ZW5kLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZmVhdHVyZS1tYXgtaW5kaXJlY3Qtc2VnbWVudHMi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGZWF0dXJlTWF4SW5kaXJlY3RT
ZWdtZW50cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5GZWF0dXJlcy5JbmRpcmVj
dCk7CiAgICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWRGZWF0dXJlKEZyb250ZW5kLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmVhdHVyZS1wZXJzaXN0ZW50IiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVhdHVyZVBlcnNpc3RlbnQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RmVhdHVyZXMuUGVyc2lzdGVu
dCk7CiAKICAgICBpZiAoIUNoYW5nZWQpCkBAIC04NDEsMzEgKzkwMCwzMSBAQCBGcm9udGVuZFJl
YWREaXNrSW5mbygKICAgICBCT09MRUFOIERpc2NhcmRFbmFibGUgPSBUUlVFOwogCiAgICAgQ2hh
bmdlZCB8PSBGcm9udGVuZFJlYWRGZWF0dXJlKEZyb250ZW5kLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiZmVhdHVyZS1iYXJyaWVyIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRmVhdHVyZUJhcnJpZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uQmFycmllcik7CiAgICAgQ2hhbmdlZCB8PSBG
cm9udGVuZFJlYWRGZWF0dXJlKEZyb250ZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZmVhdHVyZS1mbHVzaC1jYWNoZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEZlYXR1cmVGbHVzaENhY2hlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmRnJvbnRlbmQtPkRpc2tJbmZvLkZsdXNoQ2FjaGUpOwogCiAgICAgLy8gZGlzY2Fy
ZCByZWxhdGVkCiAgICAgRnJvbnRlbmRSZWFkRmVhdHVyZShGcm9udGVuZCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJmZWF0dXJlLWRpc2NhcmQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
RmVhdHVyZURpc2NhcmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAmRGlzY2FyZEZlYXR1cmUp
OwogICAgIEZyb250ZW5kUmVhZEZlYXR1cmUoRnJvbnRlbmQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAiZGlzY2FyZC1lbmFibGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgRmVhdHVyZURp
c2NhcmRFbmFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAmRGlzY2FyZEVuYWJsZSk7CiAg
ICAgRGlzY2FyZCA9IERpc2NhcmRGZWF0dXJlICYmIERpc2NhcmRFbmFibGU7CiAgICAgQ2hhbmdl
ZCB8PSAoRGlzY2FyZCAhPSBGcm9udGVuZC0+RGlza0luZm8uRGlzY2FyZCk7CiAgICAgRnJvbnRl
bmQtPkRpc2tJbmZvLkRpc2NhcmQgPSBEaXNjYXJkOwogICAgIENoYW5nZWQgfD0gRnJvbnRlbmRS
ZWFkRmVhdHVyZShGcm9udGVuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImRpc2NhcmQtc2VjdXJlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVh
dHVyZURpc2NhcmRTZWN1cmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZG
cm9udGVuZC0+RGlza0luZm8uRGlzY2FyZFNlY3VyZSk7CiAgICAgQ2hhbmdlZCB8PSBGcm9udGVu
ZFJlYWRWYWx1ZTMyKEZyb250ZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZGlzY2FyZC1hbGlnbm1lbnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBGZWF0dXJlRGlzY2FyZEFsaWdubWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVFJVRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5k
LT5EaXNrSW5mby5EaXNjYXJkQWxpZ25tZW50KTsKICAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVh
ZFZhbHVlMzIoRnJvbnRlbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJk
aXNjYXJkLWdyYW51bGFyaXR5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
RmVhdHVyZURpc2NhcmRHcmFudWxhcml0eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVFJVRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5k
LT5EaXNrSW5mby5EaXNjYXJkR3JhbnVsYXJpdHkpOwogCkBAIC0xMjM4LDYgKzEyOTcsOCBAQCBG
cm9udGVuZERpc2FibGUoCiAKIC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIEluaXQvVGVybQor
X0lSUUxfcmVxdWlyZXNfKERJU1BBVENIX0xFVkVMKQorX1JlcXVpcmVzX2xvY2tfaGVsZF8oRnJv
bnRlbmQtPlN0YXRlTG9jaykKIHN0YXRpYyBERUNMU1BFQ19OT0lOTElORSBOVFNUQVRVUwogX19G
cm9udGVuZFNldFN0YXRlKAogICAgIF9faW4gIFBYRU5WQkRfRlJPTlRFTkQgICAgICAgIEZyb250
ZW5kLApAQCAtMTQxMyw2ICsxNDc0LDcgQEAgRnJvbnRlbmRTdXNwZW5kTGF0ZUNhbGxiYWNrKAog
ICAgIFBkb1ByZVJlc3VtZShGcm9udGVuZC0+UGRvKTsKIAogICAgIC8vIGRvbnQgYWNxdWlyZSBz
dGF0ZSBsb2NrIC0gY2FsbGVkIGF0IERJU1BBVENIIG9uIDEgdkNQVSB3aXRoIGludGVycnVwdHMg
ZW5hYmxlZAorI3ByYWdtYSB3YXJuaW5nKHN1cHByZXNzOiAyNjExMCkgLy8gd2FybmluZyBDMjYx
MTA6IENhbGxlciBmYWlsaW5nIHRvIGhvbGQgbG9jayA8bG9jaz4gYmVmb3JlIGNhbGxpbmcgZnVu
Y3Rpb24gPGZ1bmM+LgogICAgIFN0YXR1cyA9IF9fRnJvbnRlbmRTZXRTdGF0ZShGcm9udGVuZCwg
WEVOVkJEX0NMT1NFRCk7CiAgICAgaWYgKCFOVF9TVUNDRVNTKFN0YXR1cykpIHsKICAgICAgICAg
RXJyb3IoIlRhcmdldFslZF0gOiBTZXRTdGF0ZSBDTE9TRUQgKCUwOHgpXG4iLCBGcm9udGVuZC0+
VGFyZ2V0SWQsIFN0YXR1cyk7CkBAIC0xNDIwLDYgKzE0ODIsNyBAQCBGcm9udGVuZFN1c3BlbmRM
YXRlQ2FsbGJhY2soCiAgICAgfQogCiAgICAgLy8gZG9udCBhY3F1aXJlIHN0YXRlIGxvY2sgLSBj
YWxsZWQgYXQgRElTUEFUQ0ggb24gMSB2Q1BVIHdpdGggaW50ZXJydXB0cyBlbmFibGVkCisjcHJh
Z21hIHdhcm5pbmcoc3VwcHJlc3M6IDI2MTEwKSAvLyB3YXJuaW5nIEMyNjExMDogQ2FsbGVyIGZh
aWxpbmcgdG8gaG9sZCBsb2NrIDxsb2NrPiBiZWZvcmUgY2FsbGluZyBmdW5jdGlvbiA8ZnVuYz4u
CiAgICAgU3RhdHVzID0gX19Gcm9udGVuZFNldFN0YXRlKEZyb250ZW5kLCBTdGF0ZSk7CiAgICAg
aWYgKCFOVF9TVUNDRVNTKFN0YXR1cykpIHsKICAgICAgICAgRXJyb3IoIlRhcmdldFslZF0gOiBT
ZXRTdGF0ZSAlcyAoJTA4eClcbiIsIEZyb250ZW5kLT5UYXJnZXRJZCwgX19YZW52YmRTdGF0ZU5h
bWUoU3RhdGUpLCBTdGF0dXMpOwpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9yZWdpc3RyeS5jIGIv
c3JjL3hlbnZiZC9yZWdpc3RyeS5jCmluZGV4IDljZWZmYTUuLjg4NWFiNmQgMTAwNjQ0Ci0tLSBh
L3NyYy94ZW52YmQvcmVnaXN0cnkuYworKysgYi9zcmMveGVudmJkL3JlZ2lzdHJ5LmMKQEAgLTg5
LDYgKzg5LDcgQEAgUmVnaXN0cnlUZWFyZG93bigKICAgICBSZWdpc3RyeVBhdGguTWF4aW11bUxl
bmd0aCA9IFJlZ2lzdHJ5UGF0aC5MZW5ndGggPSAwOwogfQogCitfX2Rydl9yZXF1aXJlc0lSUUwo
UEFTU0lWRV9MRVZFTCkKIE5UU1RBVFVTCiBSZWdpc3RyeU9wZW5LZXkoCiAgICAgSU4gIEhBTkRM
RSAgICAgICAgICBQYXJlbnQsCkBAIC0xMTgsNiArMTE5LDcgQEAgZmFpbDE6CiAgICAgcmV0dXJu
IHN0YXR1czsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBzdGF0aWMg
TlRTVEFUVVMKIFJlZ2lzdHJ5T3BlblJvb3QoCiAgICAgSU4gIFBXQ0hBUiAgICAgICAgICBQYXRo
LApAQCAtMTUxLDYgKzE1Myw3IEBAIGZhaWwxOgogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKK19f
ZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogTlRTVEFUVVMKIFJlZ2lzdHJ5Q3JlYXRl
S2V5KAogICAgIElOICBIQU5ETEUgICAgICAgICAgUm9vdCwKQEAgLTI1MCw2ICsyNTMsNyBAQCBm
YWlsMToKICAgICByZXR1cm4gc3RhdHVzOwogfQogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lW
RV9MRVZFTCkKIE5UU1RBVFVTCiBSZWdpc3RyeU9wZW5TZXJ2aWNlS2V5KAogICAgIElOICBBQ0NF
U1NfTUFTSyAgICAgRGVzaXJlZEFjY2VzcywKQEAgLTI1OSw2ICsyNjMsNyBAQCBSZWdpc3RyeU9w
ZW5TZXJ2aWNlS2V5KAogICAgIHJldHVybiBSZWdpc3RyeU9wZW5LZXkoTlVMTCwgJlJlZ2lzdHJ5
UGF0aCwgRGVzaXJlZEFjY2VzcywgS2V5KTsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJ
VkVfTEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlDcmVhdGVTZXJ2aWNlS2V5KAogICAgIE9VVCBQ
SEFORExFICAgICAgICAgS2V5CkBAIC0yNjcsNiArMjcyLDcgQEAgUmVnaXN0cnlDcmVhdGVTZXJ2
aWNlS2V5KAogICAgIHJldHVybiBSZWdpc3RyeUNyZWF0ZUtleShOVUxMLCAmUmVnaXN0cnlQYXRo
LCBSRUdfT1BUSU9OX05PTl9WT0xBVElMRSwgS2V5KTsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFM
KFBBU1NJVkVfTEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlPcGVuU29mdHdhcmVLZXkoCiAgICAg
SU4gIFBERVZJQ0VfT0JKRUNUICBEZXZpY2VPYmplY3QsCkBAIC0yODksNiArMjk1LDcgQEAgZmFp
bDE6CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVf
TEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlPcGVuSGFyZHdhcmVLZXkoCiAgICAgSU4gIFBERVZJ
Q0VfT0JKRUNUICAgICAgRGV2aWNlT2JqZWN0LApAQCAtMzY2LDYgKzM3Myw3IEBAIGZhaWwxOgog
ICAgIHJldHVybiBzdGF0dXM7CiB9CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVM
KQogTlRTVEFUVVMKIFJlZ2lzdHJ5T3BlblN1YktleSgKICAgICBJTiAgUEhBTkRMRSAgICAgICAg
IEtleSwKQEAgLTM5OSw2ICs0MDcsNyBAQCBmYWlsMToKICAgICByZXR1cm4gc3RhdHVzOwogfQog
CitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIE5UU1RBVFVTCiBSZWdpc3RyeUNy
ZWF0ZVN1YktleSgKICAgICBJTiAgUEhBTkRMRSAgICAgICAgIEtleSwKQEAgLTQzMiw2ICs0NDEs
NyBAQCBmYWlsMToKICAgICByZXR1cm4gc3RhdHVzOwogfQogCitfX2Rydl9yZXF1aXJlc0lSUUwo
UEFTU0lWRV9MRVZFTCkKIE5UU1RBVFVTCiBSZWdpc3RyeURlbGV0ZVN1YktleSgKICAgICBJTiAg
UEhBTkRMRSAgICAgICAgIEtleSwKQEAgLTQ3NSw2ICs0ODUsNyBAQCBmYWlsMToKICAgICByZXR1
cm4gc3RhdHVzOwogfQogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIE5UU1RB
VFVTCiBSZWdpc3RyeUVudW1lcmF0ZVN1YktleXMoCiAgICAgSU4gIEhBTkRMRSAgICAgICAgICAg
ICAgS2V5LApAQCAtNTc5LDYgKzU5MCw3IEBAIGZhaWwxOgogICAgIHJldHVybiBzdGF0dXM7CiB9
CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogTlRTVEFUVVMKIFJlZ2lzdHJ5
RW51bWVyYXRlVmFsdWVzKAogICAgIElOICBIQU5ETEUgICAgICAgICAgICAgICAgICAgICAgS2V5
LApAQCAtNjc3LDYgKzY4OSw3IEBAIGZhaWwxOgogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKK19f
ZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogTlRTVEFUVVMKIFJlZ2lzdHJ5RGVsZXRl
VmFsdWUoCiAgICAgSU4gIFBIQU5ETEUgICAgICAgICBLZXksCkBAIC03MTAsNiArNzIzLDcgQEAg
ZmFpbDE6CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJ
VkVfTEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlRdWVyeUR3b3JkVmFsdWUoCiAgICAgSU4gIEhB
TkRMRSAgICAgICAgICAgICAgICAgICAgICBLZXksCkBAIC03ODAsNiArNzk0LDcgQEAgZmFpbDE6
CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVW
RUwpCiBOVFNUQVRVUwogUmVnaXN0cnlVcGRhdGVEd29yZFZhbHVlKAogICAgIElOICBIQU5ETEUg
ICAgICAgICAgICAgICAgICAgICAgS2V5LApAQCAtODM4LDYgKzg1Myw3IEBAIGZhaWwxOgogICAg
IHJldHVybiBzdGF0dXM7CiB9CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQog
c3RhdGljIFBBTlNJX1NUUklORwogUmVnaXN0cnlTelRvQW5zaSgKICAgICBJTiAgUFdDSEFSICAg
ICAgQnVmZmVyCkBAIC04NzcsNiArODkzLDcgQEAgZmFpbDE6CiAgICAgcmV0dXJuIE5VTEw7CiB9
CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogc3RhdGljIFBBTlNJX1NUUklO
RwogUmVnaXN0cnlNdWx0aVN6VG9BbnNpKAogICAgIElOICBQV0NIQVIgICAgICBCdWZmZXIKQEAg
LTkzOSw2ICs5NTYsNyBAQCBmYWlsMToKICAgICByZXR1cm4gTlVMTDsKIH0KIAorX19kcnZfcmVx
dWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlRdWVyeVN6VmFsdWUo
CiAgICAgSU4gIEhBTkRMRSAgICAgICAgICAgICAgICAgICAgICBLZXksCkBAIC0xMDI2LDYgKzEw
NDQsNyBAQCBmYWlsMToKICAgICByZXR1cm4gc3RhdHVzOwogfQogCitfX2Rydl9yZXF1aXJlc0lS
UUwoUEFTU0lWRV9MRVZFTCkKIE5UU1RBVFVTCiBSZWdpc3RyeVF1ZXJ5QmluYXJ5VmFsdWUoCiAg
ICAgSU4gIEhBTkRMRSAgICAgICAgICAgICAgICAgICAgICBLZXksCkBAIC0xMTExLDYgKzExMzAs
NyBAQCBmYWlsMToKICAgICByZXR1cm4gc3RhdHVzOwogfQogCitfX2Rydl9yZXF1aXJlc0lSUUwo
UEFTU0lWRV9MRVZFTCkKIE5UU1RBVFVTCiBSZWdpc3RyeVVwZGF0ZUJpbmFyeVZhbHVlKAogICAg
IElOICBIQU5ETEUgICAgICAgICAgICAgICAgICAgICAgS2V5LApAQCAtMTE3MCw2ICsxMTkwLDcg
QEAgZmFpbDE6CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFMKFBB
U1NJVkVfTEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlRdWVyeUtleU5hbWUoCiAgICAgSU4gIEhB
TkRMRSAgICAgICAgICAgICAgS2V5LApAQCAtMTIyNSw2ICsxMjQ2LDcgQEAgZmFpbDE6CiAgICAg
cmV0dXJuIHN0YXR1czsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBO
VFNUQVRVUwogUmVnaXN0cnlRdWVyeVN5c3RlbVN0YXJ0T3B0aW9uKAogICAgIElOICBjb25zdCBD
SEFSICAgICAgICAgICAgICAgICAgKlByZWZpeCwKQEAgLTEzMDMsNiArMTMyNSw3IEBAIGZhaWwx
OgogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xF
VkVMKQogc3RhdGljIFBLRVlfVkFMVUVfUEFSVElBTF9JTkZPUk1BVElPTgogUmVnaXN0cnlBbnNp
VG9TeigKICAgICBQQU5TSV9TVFJJTkcgICAgICAgICAgICAgICAgICAgIEFuc2kKQEAgLTEzNDIs
NiArMTM2NSw3IEBAIGZhaWwxOgogICAgIHJldHVybiBOVUxMOwogfQogCitfX2Rydl9yZXF1aXJl
c0lSUUwoUEFTU0lWRV9MRVZFTCkKIHN0YXRpYyBQS0VZX1ZBTFVFX1BBUlRJQUxfSU5GT1JNQVRJ
T04KIFJlZ2lzdHJ5QW5zaVRvTXVsdGlTeigKICAgICBQQU5TSV9TVFJJTkcgICAgICAgICAgICAg
ICAgICAgIEFuc2kKQEAgLTEzOTUsNiArMTQxOSw3IEBAIGZhaWwxOgogICAgIHJldHVybiBOVUxM
OwogfQogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIE5UU1RBVFVTCiBSZWdp
c3RyeVVwZGF0ZVN6VmFsdWUoCiAgICAgSU4gIEhBTkRMRSAgICAgICAgICAgICAgICAgICAgICBL
ZXksCkBAIC0xNDg1LDYgKzE1MTAsNyBAQCBSZWdpc3RyeUZyZWVCaW5hcnlWYWx1ZSgKICAgICBf
X1JlZ2lzdHJ5RnJlZShCdWZmZXIpOwogfQogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9M
RVZFTCkKIFZPSUQKIFJlZ2lzdHJ5Q2xvc2VLZXkoCiAgICAgSU4gIEhBTkRMRSAgS2V5CmRpZmYg
LS1naXQgYS9zcmMveGVudmJkL3JlZ2lzdHJ5LmggYi9zcmMveGVudmJkL3JlZ2lzdHJ5LmgKaW5k
ZXggZDM5ZjAxNi4uOWJmNDkyZSAxMDA2NDQKLS0tIGEvc3JjL3hlbnZiZC9yZWdpc3RyeS5oCisr
KyBiL3NyYy94ZW52YmQvcmVnaXN0cnkuaApAQCAtNDQsNiArNDQsNyBAQCBSZWdpc3RyeVRlYXJk
b3duKAogICAgIFZPSUQKICAgICApOwogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZF
TCkKIGV4dGVybiBOVFNUQVRVUwogUmVnaXN0cnlPcGVuS2V5KAogICAgIElOICBIQU5ETEUgICAg
ICAgICAgUGFyZW50LApAQCAtNTIsNiArNTMsNyBAQCBSZWdpc3RyeU9wZW5LZXkoCiAgICAgT1VU
IFBIQU5ETEUgICAgICAgICBLZXkKICAgICApOwogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lW
RV9MRVZFTCkKIGV4dGVybiBOVFNUQVRVUwogUmVnaXN0cnlDcmVhdGVLZXkoCiAgICAgSU4gIEhB
TkRMRSAgICAgICAgICBQYXJlbnQsCkBAIC02MCwxNyArNjIsMjAgQEAgUmVnaXN0cnlDcmVhdGVL
ZXkoCiAgICAgT1VUIFBIQU5ETEUgICAgICAgICBLZXkKICAgICApOwogCitfX2Rydl9yZXF1aXJl
c0lSUUwoUEFTU0lWRV9MRVZFTCkKIGV4dGVybiBOVFNUQVRVUwogUmVnaXN0cnlPcGVuU2Vydmlj
ZUtleSgKICAgICBJTiAgQUNDRVNTX01BU0sgRGVzaXJlZEFjY2VzcywKICAgICBPVVQgUEhBTkRM
RSAgICAgS2V5CiAgICAgKTsKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBl
eHRlcm4gTlRTVEFUVVMKIFJlZ2lzdHJ5Q3JlYXRlU2VydmljZUtleSgKICAgICBPVVQgUEhBTkRM
RSAgICAgS2V5CiAgICAgKTsKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBl
eHRlcm4gTlRTVEFUVVMKIFJlZ2lzdHJ5T3BlblNvZnR3YXJlS2V5KAogICAgIElOICBQREVWSUNF
X09CSkVDVCAgRGV2aWNlT2JqZWN0LApAQCAtNzgsNiArODMsNyBAQCBSZWdpc3RyeU9wZW5Tb2Z0
d2FyZUtleSgKICAgICBPVVQgUEhBTkRMRSAgICAgICAgIEtleQogICAgICk7CiAKK19fZHJ2X3Jl
cXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3RyeU9wZW5I
YXJkd2FyZUtleSgKICAgICBJTiAgUERFVklDRV9PQkpFQ1QgIERldmljZU9iamVjdCwKQEAgLTg1
LDYgKzkxLDcgQEAgUmVnaXN0cnlPcGVuSGFyZHdhcmVLZXkoCiAgICAgT1VUIFBIQU5ETEUgICAg
ICAgICBLZXkKICAgICApOwogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIGV4
dGVybiBOVFNUQVRVUwogUmVnaXN0cnlPcGVuU3ViS2V5KAogICAgIElOICBIQU5ETEUgICAgICBL
ZXksCkBAIC05Myw2ICsxMDAsNyBAQCBSZWdpc3RyeU9wZW5TdWJLZXkoCiAgICAgT1VUIFBIQU5E
TEUgICAgIFN1YktleQogICAgICk7CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVM
KQogZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3RyeUNyZWF0ZVN1YktleSgKICAgICBJTiAgSEFORExF
ICAgICAgS2V5LApAQCAtMTAxLDEyICsxMDksMTQgQEAgUmVnaXN0cnlDcmVhdGVTdWJLZXkoCiAg
ICAgT1VUIFBIQU5ETEUgICAgIFN1YktleQogICAgICk7CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQ
QVNTSVZFX0xFVkVMKQogZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3RyeURlbGV0ZVN1YktleSgKICAg
ICBJTiAgSEFORExFICAgICAgS2V5LAogICAgIElOICBQQ0hBUiAgICAgICBOYW1lCiAgICAgKTsK
IAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBleHRlcm4gTlRTVEFUVVMKIFJl
Z2lzdHJ5RW51bWVyYXRlU3ViS2V5cygKICAgICBJTiAgSEFORExFICAgICAgS2V5LApAQCAtMTE0
LDYgKzEyNCw3IEBAIFJlZ2lzdHJ5RW51bWVyYXRlU3ViS2V5cygKICAgICBJTiAgUFZPSUQgICAg
ICAgQ29udGV4dAogICAgICk7CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQog
ZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3RyeUVudW1lcmF0ZVZhbHVlcygKICAgICBJTiAgSEFORExF
ICAgICAgS2V5LApAQCAtMTIxLDI2ICsxMzIsMzAgQEAgUmVnaXN0cnlFbnVtZXJhdGVWYWx1ZXMo
CiAgICAgSU4gIFBWT0lEICAgICAgIENvbnRleHQKICAgICApOwogCitfX2Rydl9yZXF1aXJlc0lS
UUwoUEFTU0lWRV9MRVZFTCkKIGV4dGVybiBOVFNUQVRVUwogUmVnaXN0cnlEZWxldGVWYWx1ZSgK
ICAgICBJTiAgSEFORExFICAgICAgS2V5LAogICAgIElOICBQQ0hBUiAgICAgICBOYW1lCiAgICAg
KTsKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBleHRlcm4gTlRTVEFUVVMK
IFJlZ2lzdHJ5UXVlcnlEd29yZFZhbHVlKAogICAgIElOICBIQU5ETEUgICAgICAgICAgS2V5LAog
ICAgIElOICBQQ0hBUiAgICAgICAgICAgTmFtZSwKICAgICBPVVQgUFVMT05HICAgICAgICAgIFZh
bHVlCiAgICAgKTsKLSAgICAKKworX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBl
eHRlcm4gTlRTVEFUVVMKIFJlZ2lzdHJ5VXBkYXRlRHdvcmRWYWx1ZSgKICAgICBJTiAgSEFORExF
ICAgICAgICAgIEtleSwKICAgICBJTiAgUENIQVIgICAgICAgICAgIE5hbWUsCiAgICAgSU4gIFVM
T05HICAgICAgICAgICBWYWx1ZQogICAgICk7Ci0gICAgCisKK19fZHJ2X3JlcXVpcmVzSVJRTChQ
QVNTSVZFX0xFVkVMKQogZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3RyeVF1ZXJ5U3pWYWx1ZSgKICAg
ICBJTiAgSEFORExFICAgICAgICAgIEtleSwKQEAgLTE0OSw2ICsxNjQsNyBAQCBSZWdpc3RyeVF1
ZXJ5U3pWYWx1ZSgKICAgICBPVVQgUEFOU0lfU1RSSU5HICAgICpBcnJheQogICAgICk7CiAKK19f
ZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3Ry
eVF1ZXJ5QmluYXJ5VmFsdWUoCiAgICAgSU4gIEhBTkRMRSAgICAgICAgICBLZXksCkBAIC0xNTcs
NiArMTczLDcgQEAgUmVnaXN0cnlRdWVyeUJpbmFyeVZhbHVlKAogICAgIE9VVCBQVUxPTkcgICAg
ICAgICAgTGVuZ3RoCiAgICAgKTsKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwp
CiBleHRlcm4gTlRTVEFUVVMKIFJlZ2lzdHJ5VXBkYXRlQmluYXJ5VmFsdWUoCiAgICAgSU4gIEhB
TkRMRSAgICAgICAgICBLZXksCkBAIC0xNjUsMTIgKzE4MiwxNCBAQCBSZWdpc3RyeVVwZGF0ZUJp
bmFyeVZhbHVlKAogICAgIElOICBVTE9ORyAgICAgICAgICAgTGVuZ3RoCiAgICAgKTsKIAorX19k
cnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBleHRlcm4gTlRTVEFUVVMKIFJlZ2lzdHJ5
UXVlcnlLZXlOYW1lKAogICAgIElOICBIQU5ETEUgICAgICAgICAgICAgIEtleSwKICAgICBPVVQg
UEFOU0lfU1RSSU5HICAgICAgICAqQXJyYXkKICAgICApOwogCitfX2Rydl9yZXF1aXJlc0lSUUwo
UEFTU0lWRV9MRVZFTCkKIGV4dGVybiBOVFNUQVRVUwogUmVnaXN0cnlRdWVyeVN5c3RlbVN0YXJ0
T3B0aW9uKAogICAgIElOICBjb25zdCBDSEFSICAgICAgKlByZWZpeCwKQEAgLTE4Nyw2ICsyMDYs
NyBAQCBSZWdpc3RyeUZyZWVCaW5hcnlWYWx1ZSgKICAgICBJTiAgUFZPSUQgICAgICAgICAgIEJ1
ZmZlcgogICAgICk7CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogZXh0ZXJu
IE5UU1RBVFVTCiBSZWdpc3RyeVVwZGF0ZVN6VmFsdWUoCiAgICAgSU4gIEhBTkRMRSAgICAgICAg
ICBLZXksCkBAIC0xOTUsNiArMjE1LDcgQEAgUmVnaXN0cnlVcGRhdGVTelZhbHVlKAogICAgIElO
ICBQQU5TSV9TVFJJTkcgICAgQXJyYXkKICAgICApOwogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFT
U0lWRV9MRVZFTCkKIGV4dGVybiBWT0lECiBSZWdpc3RyeUNsb3NlS2V5KAogICAgIElOICBIQU5E
TEUgIEtleQotLSAKMi4xMC4xLndpbmRvd3MuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRl
dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jun 27 10:14:35 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jun 2017 10:14:35 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPnVy-00015o-4z; Tue, 27 Jun 2017 10:14:34 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=3449104f4=Paul.Durrant@citrix.com>)
 id 1dPnVw-00015f-FH
 for win-pv-devel@lists.xenproject.org; Tue, 27 Jun 2017 10:14:32 +0000
Received: from [85.158.137.68] by server-8.bemta-3.messagelabs.com id
 4F/E5-23755-70032595; Tue, 27 Jun 2017 10:14:31 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrEIsWRWlGSWpSXmKPExsWyU9JRQpfdICj
 S4ORmJos/ixMdGD0Of7jCEsAYxZqZl5RfkcCa0b/uNnvBK4mKv3PeMTcwHpDoYuTkkBDwk9j9
 6S8jiM0moCOx9Oh8JhBbRCBf4sfG1WwgtrBAkETvj1ssEPFgiRdHVkPVGEl0H78L1ssioCpx8
 cQRVhCbV8Bd4nxvB1hcSMBaYsenPrBeTgEbifNfnoLFGQVkJb40rmYGsZkFxCVuPYHYKyEgIL
 Fkz3lmCFtU4uXjf6wQtoHE1qX7gOZwANVrSqzfpQ/RqigxpfshO8RaQYmTM5+wTGAUmoVk6iy
 EjllIOmYh6VjAyLKKUaM4tagstUjX2EAvqSgzPaMkNzEzR9fQwFgvN7W4ODE9NScxqVgvOT93
 EyMwvOsZGBh3MHae8DvEKMnBpCTKu1oiKFKILyk/pTIjsTgjvqg0J7X4EKMMB4eSBO9OPaCcY
 FFqempFWmYOMNJg0hIcPEoivGXHAyOFeIsLEnOLM9MhUqcYdTk2rF7/hUmIJS8/L1VKnPcpyA
 wBkKKM0jy4EbCov8QoKyXMy8jAwCDEU5BalJtZgir/ilGcg1FJmNdEF2gKT2ZeCdymV0BHMAE
 dwTIvAOSIkkSElFQDo3HIz6mBialn2M68EXCcoBazqW3xgiNKjwTXr7Dw4o7K7s2eUdxvIVSh
 9cB+7XmTpKPSep/214UtC9VVZNnB8zrr2LslF0RPm7+IevpcqTYk++QyQc7ZEesrevdMOl/Po
 ZO3v/6Ze2DfFfHKpvtvl1ekvzUsXppQeGPbh16/LL6luZdKomMuKbEUZyQaajEXFScCAK3KCO
 D1AgAA
X-Env-Sender: prvs=3449104f4=Paul.Durrant@citrix.com
X-Msg-Ref: server-16.tower-31.messagelabs.com!1498558470!99954938!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 23086 invoked from network); 27 Jun 2017 10:14:31 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-16.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 27 Jun 2017 10:14:31 -0000
X-IronPort-AV: E=Sophos;i="5.39,399,1493683200"; d="scan'208";a="48445441"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: 'Peter Milesson' <miles@atmos.eu>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] Windows 2008 boot problems with signed pv drivers
 8.2
Thread-Index: AQHS7q/bvLDNhCTcQ0Ol8v+02uappKI4faew
Date: Tue, 27 Jun 2017 10:14:29 +0000
Message-ID: <56cf09cdf99c4fd99d096d47cbdff93f@AMSPEX02CL03.citrite.net>
References: <c5fc0e0c-563e-6f3d-3f70-c25b7f3cef61@atmos.eu>
In-Reply-To: <c5fc0e0c-563e-6f3d-3f70-c25b7f3cef61@atmos.eu>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Subject: Re: [win-pv-devel] Windows 2008 boot problems with signed pv
 drivers 8.2
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIFBldGVyIE1pbGVzc29uDQo+IFNlbnQ6IDI2IEp1bmUgMjAxNyAyMDoxMA0KPiBUbzogd2lu
LXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IFN1YmplY3Q6IFt3aW4tcHYtZGV2ZWxd
IFdpbmRvd3MgMjAwOCBib290IHByb2JsZW1zIHdpdGggc2lnbmVkIHB2IGRyaXZlcnMNCj4gOC4y
DQo+IA0KPiBIaSBmb2xrcywNCj4gDQo+IEkgaGFkIHRvIGluc3RhbGwgYSBEb21VIFdpbmRvd3Mg
MjAwOCBzZXJ2ZXIgeDY0IFNQMiwgdG8gcmVwbGFjZSBwYXJ0cyBvZg0KPiB0aGUgZnVuY3Rpb25h
bGl0eSBvZiBhIHBoeXNpY2FsIHNlcnZlciB0aGF0IHN1ZGRlbmx5IGRpZWQuIEkga25vdyBpdCdz
DQo+IG9sZCBzdHVmZiwgYnV0IHRoaXMgaXMgbmVlZGVkIGluIHRoZSBtZWFudGltZSwgdW50aWwg
SSBnZXQgbmV3IHNlcnZlcnMuDQo+IA0KPiBBZnRlciBpbnN0YWxsaW5nIGFsbCB0aGUgV2luZG93
cyB1cGRhdGVzIChhcm91bmQgMjMwKSwgSSBkb3dubG9hZGVkIGFuZA0KPiBpbnN0YWxsZWQgdGhl
IHNpZ25lZCBXaW5kb3dzIFBWIGRyaXZlcnMgdmVyLiA4LjIsIHN0YXJ0aW5nIHdpdGggeGVuYnVz
LA0KPiBhbmQgZm9sbG93aW5nIHVwIHdpdGggeGVuaWYsIHhlbnZiZCwgeGVudmlmLCBhbmQgeGVu
bmV0LiBBZnRlciByZWJvb3Qgb2YNCj4gdGhlIERvbVUsIFdpbmRvd3MgQm9vdCBNYW5hZ2VyIHdp
bmRvdyBwb3BwZWQgdXAgYWZ0ZXIgYSB3aGlsZSwgc2F5aW5nOg0KPiANCj4gV2luZG93cyBmYWls
ZWQgdG8gc3RhcnQuIEEgcmVjZW50IGhhcmR3YXJlIG9yIHNvZnR3YXJlIGNoYW5nZSBibGFoLA0K
PiBibGFoLCBibGFoLi4uDQo+IA0KPiBJbiB0aGUgbG93ZXIgcGFydCBvZiB0aGUgc2NyZWVuIGl0
IHNheXM6DQo+IA0KPiBGaWxlOiBcV2luZG93c1xzeXN0ZW0zMlxEUklWRVJTXHhlbmJ1cy5zeXMN
Cj4gDQo+IFN0YXR1czogMHhjMDAwMDQyOA0KPiANCj4gSW5mbzogV2luZG93cyBjYW5ub3QgdmVy
aWZ5IHRoZSBkaWdpdGFsIHNpZ25hdHVyZSBmb3IgdGhpcyBmaWxlLg0KPiANCj4gUHJlc3Npbmcg
RW50ZXIgYW5kIGJvb3Rpbmcgd2l0aCBhZHZhbmNlZCBvcHRpb25zLCBJIGNob29zZSBEaXNhYmxl
DQo+IERyaXZlciBTaWduYXR1cmUgRW5mb3JjZW1lbnQsIGFuZCB0aGUgT1MgYm9vdHMgbm9ybWFs
bHkuDQo+IA0KPiBJJ3ZlIHRyaWVkIHRvIHVzZSB0aGUgY29tbW9uIHRyaWNrcyBmb3IgdW5zaWdu
ZWQsIG9yIHRlc3Qgc2lnbmVkDQo+IGRyaXZlcnMsIGJ1dCB0aGF0IGhhcyBnb3Qgbm8gZWZmZWN0
IHdoYXRzb2V2ZXIuIEkgdXNlIHRoZSBzYW1lIHNpZ25lZA0KPiBkcml2ZXJzIHN1Y2Nlc3NmdWxs
eSB3aXRoIFdpbmRvd3MgNywgYW5kIFdpbmRvd3MgMTAuDQo+IA0KPiBBbnlib2R5IGdvdCBhbiBp
ZGVhLCBob3cgSSBjYW4gZ2V0IGl0IHRvIGJvb3Qgd2l0aG91dCBtYW51YWwNCj4gaW50ZXJ2ZW50
aW9uIGVhY2ggdGltZT8NCg0KUGV0ZXIsDQoNClVuZm9ydHVuYXRlbHkgdGhpcyBpcyBiZWNhdXNl
IFdpbmRvd3MgU2VydmVyIDIwMDggZG9lcyBub3Qgc3VwcG9ydCBhbnl0aGluZyBvdGhlciB0aGFu
IFNIQS0xIGNvZGUgc2lnbmluZywgYW5kIHRoZSA4LjIgZHJpdmVycyBhcmUgU0hBLTI1NiBzaWdu
ZWQuIChUaGVyZSBhcmUgdmFyaW91cyB3ZWIgcGFnZXMgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCB0
aGlzLi4uIGh0dHBzOi8vd3d3Lmdsb2JhbHNpZ24uY29tL2VuL2Jsb2cvbWljcm9zb2Z0LWFubm91
bmNlcy11cGRhdGVzLXNoYS0xLWNvZGUtc2lnbmluZy1wb2xpY3kvIHNlZW1zIGxpa2UgYSBnb29k
IGV4YW1wbGUpLg0KVG8gd29yayBhcm91bmQgdGhlIHByb2JsZW0geW91IGNvdWxkIHRyeSBlbmFi
bGluZyB0ZXN0LXNpZ25pbmcuLi4gdGhhdCBzaG91bGQgc3RvcCB3aW5kb3dzIHJlcXVpcmluZyBh
IGNoYWluIG9mIHRydXN0IGZvciBib290LXN0YXJ0IGRyaXZlcnMgd2l0aG91dCB5b3UgbmVlZGlu
ZyB0byBtYW51YWxseSBpbnRlcnZlbmUgb24gZWFjaCBib290Lg0KDQogIENoZWVycywNCg0KICAg
IFBhdWwNCg0KPiANCj4gQmVzdCByZWdhcmRzLA0KPiANCj4gUGV0ZXINCj4gDQo+IA0KPiANCj4g
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gd2luLXB2
LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcN
Cj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8v
d2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0
aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue Jun 27 10:26:59 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jun 2017 10:26:59 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPnhz-000222-9H; Tue, 27 Jun 2017 10:26:59 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <miles@atmos.eu>) id 1dPnhy-00021v-LM
 for win-pv-devel@lists.xenproject.org; Tue, 27 Jun 2017 10:26:58 +0000
Received: from [85.158.137.68] by server-3.bemta-3.messagelabs.com id
 51/B6-01987-1F232595; Tue, 27 Jun 2017 10:26:57 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrOIsWRWlGSWpSXmKPExsUSH/ohSfejUVC
 kwYoePos/ixMdGD0Of7jCEsAYxZqZl5RfkcCa0XfvOmPBIpGKhVd62BoY/wp0MXJxCAlsZ5TY
 euECcxcjB4eEgIZEyzpviPgNRomrz04yQziHGSVmbrrK0sXIySEsECQxr2s9I0iDiIC3xO0V/
 CBhIYEKiYaL+9hBwmwCqhJrvuqDhPkFrCSWnjzFDmLzClhLvDh1ngmkhAWoZM8OPpCwqEC4xI
 stf1ghSgQlTs58AraIU8BDYl33dzCbWcBMYt7mh8wQtrzE9rdzoGxxiaYvK1knMArOQtI+C0n
 LLCQts5C0LGBkWcWoUZxaVJZapGtkoZdUlJmeUZKbmJmja2hgrJebWlycmJ6ak5hUrJecn7uJ
 ERjI9QwMjDsY20/4HWKU5GBSEuVdLREUKcSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mCNxcYGUKCR
 anpqRVpmTnAmIJJS3DwKInwlh0PjBTiLS5IzC3OTIdInWLU5diwev0XJiGWvPy8VClx3lCQGQ
 IgRRmleXAjYPF9iVFWSpiXkYGBQYinILUoN7MEVf4VozgHo5Iw70tDoCk8mXklcJteAR3BBHQ
 Ey7wAkCNKEhFSUg2MeRsCT5ty3NsqKf6M09DosuEEC5PClWuOGiva/VQMKww4f+C2y/msYyXL
 XjvbOaXIN/+NnPSE6xNj9ET+5wuuf4g7G3Ljr9CmWWcZ/1TZBoTKWHPwL9r4Svlhg3rCPp6YZ
 XXhR916c7w37vG5baRZvk+MqWGWWrCT4fr55VlNEnMFsnV+7nNUYinOSDTUYi4qTgQAJaeLL+
 oCAAA=
X-Env-Sender: miles@atmos.eu
X-Msg-Ref: server-8.tower-31.messagelabs.com!1498559217!107631247!1
X-Originating-IP: [95.85.240.98]
X-SpamReason: No, hits=0.0 required=7.0 tests=
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 63442 invoked from network); 27 Jun 2017 10:26:57 -0000
Received: from fw2.atmos.eu (HELO fw2.atmos.eu) (95.85.240.98)
 by server-8.tower-31.messagelabs.com with SMTP; 27 Jun 2017 10:26:57 -0000
Received: from localhost (localhost [127.0.0.1])
 by fw2.atmos.eu (Postfix) with ESMTP id 08B1D11C0002
 for <win-pv-devel@lists.xenproject.org>; Tue, 27 Jun 2017 12:26:57 +0200 (CEST)
X-Virus-Scanned: amavisd-new at atmos.eu
Received: from fw2.atmos.eu ([127.0.0.1])
 by localhost (fw2.atmos.eu [127.0.0.1]) (amavisd-new, port 10024)
 with LMTP id 2IFe1cmz-Gat for <win-pv-devel@lists.xenproject.org>;
 Tue, 27 Jun 2017 12:26:54 +0200 (CEST)
Received: from doctest.atmos.local (unknown [172.16.10.128])
 by fw2.atmos.eu (Postfix) with ESMTP id 46F8A11C0001
 for <win-pv-devel@lists.xenproject.org>; Tue, 27 Jun 2017 12:26:53 +0200 (CEST)
To: "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
References: <c5fc0e0c-563e-6f3d-3f70-c25b7f3cef61@atmos.eu>
 <56cf09cdf99c4fd99d096d47cbdff93f@AMSPEX02CL03.citrite.net>
From: Peter Milesson <miles@atmos.eu>
Organization: =?UTF-8?Q?Jaroslav_Canka=c5=99_a_syn_ATMOS?=
Message-ID: <ea9a5ec6-365e-9456-d0b6-0d35fd72b5bd@atmos.eu>
Date: Tue, 27 Jun 2017 12:26:53 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
 Thunderbird/52.1.0
MIME-Version: 1.0
In-Reply-To: <56cf09cdf99c4fd99d096d47cbdff93f@AMSPEX02CL03.citrite.net>
Content-Language: en-GB
Subject: Re: [win-pv-devel] Windows 2008 boot problems with signed pv
 drivers 8.2
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

CgpPbiAwNi8yNy8yMDE3IDEyOjE0IFBNLCBQYXVsIER1cnJhbnQgd3JvdGU6Cj4+IC0tLS0tT3Jp
Z2luYWwgTWVzc2FnZS0tLS0tCj4+IEZyb206IHdpbi1wdi1kZXZlbCBbbWFpbHRvOndpbi1wdi1k
ZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXSBPbgo+PiBCZWhhbGYgT2YgUGV0ZXIg
TWlsZXNzb24KPj4gU2VudDogMjYgSnVuZSAyMDE3IDIwOjEwCj4+IFRvOiB3aW4tcHYtZGV2ZWxA
bGlzdHMueGVucHJvamVjdC5vcmcKPj4gU3ViamVjdDogW3dpbi1wdi1kZXZlbF0gV2luZG93cyAy
MDA4IGJvb3QgcHJvYmxlbXMgd2l0aCBzaWduZWQgcHYgZHJpdmVycwo+PiA4LjIKPj4KPj4gSGkg
Zm9sa3MsCj4+Cj4+IEkgaGFkIHRvIGluc3RhbGwgYSBEb21VIFdpbmRvd3MgMjAwOCBzZXJ2ZXIg
eDY0IFNQMiwgdG8gcmVwbGFjZSBwYXJ0cyBvZgo+PiB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhIHBo
eXNpY2FsIHNlcnZlciB0aGF0IHN1ZGRlbmx5IGRpZWQuIEkga25vdyBpdCdzCj4+IG9sZCBzdHVm
ZiwgYnV0IHRoaXMgaXMgbmVlZGVkIGluIHRoZSBtZWFudGltZSwgdW50aWwgSSBnZXQgbmV3IHNl
cnZlcnMuCj4+Cj4+IEFmdGVyIGluc3RhbGxpbmcgYWxsIHRoZSBXaW5kb3dzIHVwZGF0ZXMgKGFy
b3VuZCAyMzApLCBJIGRvd25sb2FkZWQgYW5kCj4+IGluc3RhbGxlZCB0aGUgc2lnbmVkIFdpbmRv
d3MgUFYgZHJpdmVycyB2ZXIuIDguMiwgc3RhcnRpbmcgd2l0aCB4ZW5idXMsCj4+IGFuZCBmb2xs
b3dpbmcgdXAgd2l0aCB4ZW5pZiwgeGVudmJkLCB4ZW52aWYsIGFuZCB4ZW5uZXQuIEFmdGVyIHJl
Ym9vdCBvZgo+PiB0aGUgRG9tVSwgV2luZG93cyBCb290IE1hbmFnZXIgd2luZG93IHBvcHBlZCB1
cCBhZnRlciBhIHdoaWxlLCBzYXlpbmc6Cj4+Cj4+IFdpbmRvd3MgZmFpbGVkIHRvIHN0YXJ0LiBB
IHJlY2VudCBoYXJkd2FyZSBvciBzb2Z0d2FyZSBjaGFuZ2UgYmxhaCwKPj4gYmxhaCwgYmxhaC4u
Lgo+Pgo+PiBJbiB0aGUgbG93ZXIgcGFydCBvZiB0aGUgc2NyZWVuIGl0IHNheXM6Cj4+Cj4+IEZp
bGU6IFxXaW5kb3dzXHN5c3RlbTMyXERSSVZFUlNceGVuYnVzLnN5cwo+Pgo+PiBTdGF0dXM6IDB4
YzAwMDA0MjgKPj4KPj4gSW5mbzogV2luZG93cyBjYW5ub3QgdmVyaWZ5IHRoZSBkaWdpdGFsIHNp
Z25hdHVyZSBmb3IgdGhpcyBmaWxlLgo+Pgo+PiBQcmVzc2luZyBFbnRlciBhbmQgYm9vdGluZyB3
aXRoIGFkdmFuY2VkIG9wdGlvbnMsIEkgY2hvb3NlIERpc2FibGUKPj4gRHJpdmVyIFNpZ25hdHVy
ZSBFbmZvcmNlbWVudCwgYW5kIHRoZSBPUyBib290cyBub3JtYWxseS4KPj4KPj4gSSd2ZSB0cmll
ZCB0byB1c2UgdGhlIGNvbW1vbiB0cmlja3MgZm9yIHVuc2lnbmVkLCBvciB0ZXN0IHNpZ25lZAo+
PiBkcml2ZXJzLCBidXQgdGhhdCBoYXMgZ290IG5vIGVmZmVjdCB3aGF0c29ldmVyLiBJIHVzZSB0
aGUgc2FtZSBzaWduZWQKPj4gZHJpdmVycyBzdWNjZXNzZnVsbHkgd2l0aCBXaW5kb3dzIDcsIGFu
ZCBXaW5kb3dzIDEwLgo+Pgo+PiBBbnlib2R5IGdvdCBhbiBpZGVhLCBob3cgSSBjYW4gZ2V0IGl0
IHRvIGJvb3Qgd2l0aG91dCBtYW51YWwKPj4gaW50ZXJ2ZW50aW9uIGVhY2ggdGltZT8KPiBQZXRl
ciwKPgo+IFVuZm9ydHVuYXRlbHkgdGhpcyBpcyBiZWNhdXNlIFdpbmRvd3MgU2VydmVyIDIwMDgg
ZG9lcyBub3Qgc3VwcG9ydCBhbnl0aGluZyBvdGhlciB0aGFuIFNIQS0xIGNvZGUgc2lnbmluZywg
YW5kIHRoZSA4LjIgZHJpdmVycyBhcmUgU0hBLTI1NiBzaWduZWQuIChUaGVyZSBhcmUgdmFyaW91
cyB3ZWIgcGFnZXMgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCB0aGlzLi4uIGh0dHBzOi8vd3d3Lmds
b2JhbHNpZ24uY29tL2VuL2Jsb2cvbWljcm9zb2Z0LWFubm91bmNlcy11cGRhdGVzLXNoYS0xLWNv
ZGUtc2lnbmluZy1wb2xpY3kvIHNlZW1zIGxpa2UgYSBnb29kIGV4YW1wbGUpLgo+IFRvIHdvcmsg
YXJvdW5kIHRoZSBwcm9ibGVtIHlvdSBjb3VsZCB0cnkgZW5hYmxpbmcgdGVzdC1zaWduaW5nLi4u
IHRoYXQgc2hvdWxkIHN0b3Agd2luZG93cyByZXF1aXJpbmcgYSBjaGFpbiBvZiB0cnVzdCBmb3Ig
Ym9vdC1zdGFydCBkcml2ZXJzIHdpdGhvdXQgeW91IG5lZWRpbmcgdG8gbWFudWFsbHkgaW50ZXJ2
ZW5lIG9uIGVhY2ggYm9vdC4KPgo+ICAgIENoZWVycywKPgo+ICAgICAgUGF1bApUaGFua3MgZm9y
IHlvdXIgZXhwbGFuYXRpb24gUGF1bC4KCkknbGwgdHJ5IHRvIGluc3RhbGwgdGhlIHRlc3Qgc2ln
bmVkIGRyaXZlcnMgaW5zdGVhZCwgYW5kIHJ1biBpdCBpbiB0ZXN0IApzaWduZWQgbW9kZS4gSXQg
d2lsbCBicmlkZ2UgdGhlIGdhcCB1bnRpbCBJIGdldCBuZXcgaGFyZHdhcmUgaW4gYSBtb250aC4K
Ckkgd2lzaCB5b3UgYSBuaWNlIGRheSwKClBldGVyCgoKPj4gQmVzdCByZWdhcmRzLAo+Pgo+PiBQ
ZXRlcgo+Pgo+Pgo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwo+PiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IHdpbi1wdi1kZXZlbEBsaXN0
cy54ZW5wcm9qZWN0Lm9yZwo+PiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4v
bWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwKCgpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2Nn
aS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue Jun 27 10:36:48 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jun 2017 10:36:48 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPnrU-0002sm-8t; Tue, 27 Jun 2017 10:36:48 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=3449104f4=Paul.Durrant@citrix.com>)
 id 1dPnrT-0002sg-65
 for win-pv-devel@lists.xenproject.org; Tue, 27 Jun 2017 10:36:47 +0000
Received: from [193.109.254.147] by server-3.bemta-6.messagelabs.com id
 60/F5-03044-E3532595; Tue, 27 Jun 2017 10:36:46 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrLIsWRWlGSWpSXmKPExsWyU9JRQtfWNCj
 SoOuMkcWfxYkOjB6HP1xhCWCMYs3MS8qvSGDNaGxeyFYw36Fiz5eDTA2MW+y7GDk5JAT8JP69
 mscMYrMJ6EgsPTqfCcQWESiQ+P4eIs4soCZxfX8XK4gtLBAucXb1WUaImgiJle1vgWo4gGwji
 TlnPEDCLAKqEidWbAdr5RVwl3j4bDVYq5BAlsTbWdPAWjkFrCWaL2wGsxkFZCW+NK6GWiUuce
 sJxAkSAgISS/acZ4awRSVePv7HCmEbSGxduo8FZC2zgKbE+l36EK2KElO6H7JDrBWUODnzCcs
 ERuFZSKbOQuiYhaRjFpKOBYwsqxg1ilOLylKLdA0N9JKKMtMzSnITM3OAPDO93NTi4sT01JzE
 pGK95PzcTYzAoGcAgh2M95YFHGKU5GBSEuVdLREUKcSXlJ9SmZFYnBFfVJqTWnyIUYaDQ0mCN
 9cIKCdYlJqeWpGWmQOMP5i0BAePkghv2fHASCHe4oLE3OLMdIjUKUZdjg2r139hEmLJy89LlR
 LnvQUyQwCkKKM0D24ELBVcYpSVEuZlBDpKiKcgtSg3swRV/hWjOAejkjDvS0OgKTyZeSVwm14
 BHcEEdATLvACQI0oSEVJSDYwKrHKL4zvijFQ+2654f+B+gYdN+5M530wEWidfMbkaoXDy45u+
 V7bCTInTi6qudNqoXiufYT9TozP+vbvv/fK+iN2nDj+7N03u7coJVR5FXuGPDu1iOLWh+rSTd
 tiNWk9Oq8QTJpd6XJK2O7a9XKzEaPyJ/9ulBkdxNh/7y6nLfQx27X36+YISS3FGoqEWc1FxIg
 D7+weKAAMAAA==
X-Env-Sender: prvs=3449104f4=Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-27.messagelabs.com!1498559805!97215078!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32048 invoked from network); 27 Jun 2017 10:36:45 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 27 Jun 2017 10:36:45 -0000
X-IronPort-AV: E=Sophos;i="5.39,399,1493683200"; d="scan'208";a="48446401"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 03/10] Pass PXENVBD_SRBEXT,	not
 PSCSI_REQUEST_BLOCK
Thread-Index: AQHS7B9GbQ7sb+sOJE+AjWbT0zFHV6I4igBw
Date: Tue, 27 Jun 2017 10:36:44 +0000
Message-ID: <90157b83727748debd57a57bb7ea7bd4@AMSPEX02CL03.citrite.net>
References: <20170623124917.13956-1-owen.smith@citrix.com>
 <20170623124917.13956-4-owen.smith@citrix.com>
In-Reply-To: <20170623124917.13956-4-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 03/10] Pass PXENVBD_SRBEXT,
 not PSCSI_REQUEST_BLOCK
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAyMyBKdW5lIDIwMTcgMTM6NDkNCj4g
VG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8
b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0gg
MDMvMTBdIFBhc3MgUFhFTlZCRF9TUkJFWFQsIG5vdA0KPiBQU0NTSV9SRVFVRVNUX0JMT0NLDQo+
IA0KPiBGcm9tOiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+DQoNClJldmlld2Vk
LWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPg0KDQo+IA0KPiBTaWdu
ZWQtb2ZmLWJ5OiBPd2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+DQo+IC0tLQ0KPiAg
c3JjL3hlbnZiZC9hZGFwdGVyLmMgfCAxNiArKysrKysrKysrLS0tLS0tDQo+ICBzcmMveGVudmJk
L2FkYXB0ZXIuaCB8ICA3ICsrKystLS0NCj4gIHNyYy94ZW52YmQvdGFyZ2V0LmMgIHwgMTUgKysr
KysrKystLS0tLS0tDQo+ICBzcmMveGVudmJkL3RhcmdldC5oICB8ICA1ICsrLS0tDQo+ICA0IGZp
bGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlm
ZiAtLWdpdCBhL3NyYy94ZW52YmQvYWRhcHRlci5jIGIvc3JjL3hlbnZiZC9hZGFwdGVyLmMNCj4g
aW5kZXggZWM2NzExYS4uYmM5MzAzNyAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9hZGFwdGVy
LmMNCj4gKysrIGIvc3JjL3hlbnZiZC9hZGFwdGVyLmMNCj4gQEAgLTEzOTYsMTAgKzEzOTYsMTIg
QEAgQWRhcHRlclRlYXJkb3duKA0KPiANCj4gIFZPSUQNCj4gIEFkYXB0ZXJDb21wbGV0ZVNyYigN
Cj4gLSAgICBJTiAgUFhFTlZCRF9BREFQVEVSICAgICBBZGFwdGVyLA0KPiAtICAgIElOICBQU0NT
SV9SRVFVRVNUX0JMT0NLIFNyYg0KPiArICAgIElOICBQWEVOVkJEX0FEQVBURVIgQWRhcHRlciwN
Cj4gKyAgICBJTiAgUFhFTlZCRF9TUkJFWFQgIFNyYkV4dA0KPiAgICAgICkNCj4gIHsNCj4gKyAg
ICBQU0NTSV9SRVFVRVNUX0JMT0NLIFNyYiA9IFNyYkV4dC0+U3JiOw0KPiArDQo+ICAgICAgQVNT
RVJUM1UoU3JiLT5TcmJTdGF0dXMsICE9LCBTUkJfU1RBVFVTX1BFTkRJTkcpOw0KPiANCj4gICAg
ICArK0FkYXB0ZXItPkNvbXBsZXRlZDsNCj4gQEAgLTE3MTcsNiArMTcxOSw3IEBAIEFkYXB0ZXJI
d0J1aWxkSW8oDQo+ICAgICAgKQ0KPiAgew0KPiAgICAgIFBYRU5WQkRfQURBUFRFUiAgICAgICAg
IEFkYXB0ZXIgPSBEZXZFeHQ7DQo+ICsgICAgUFhFTlZCRF9TUkJFWFQgICAgICAgICAgU3JiRXh0
ID0gU3JiLT5TcmJFeHRlbnNpb247DQo+IA0KPiAgICAgIEluaXRTcmJFeHQoU3JiKTsNCj4gDQo+
IEBAIC0xNzQ2LDcgKzE3NDksNyBAQCBBZGFwdGVySHdCdWlsZElvKA0KPiAgICAgICAgICBicmVh
azsNCj4gICAgICB9DQo+IA0KPiAtICAgIEFkYXB0ZXJDb21wbGV0ZVNyYihBZGFwdGVyLCBTcmIp
Ow0KPiArICAgIEFkYXB0ZXJDb21wbGV0ZVNyYihBZGFwdGVyLCBTcmJFeHQpOw0KPiAgICAgIHJl
dHVybiBGQUxTRTsNCj4gIH0NCj4gDQo+IEBAIC0xNzU5LDYgKzE3NjIsNyBAQCBBZGFwdGVySHdT
dGFydElvKA0KPiAgICAgICkNCj4gIHsNCj4gICAgICBQWEVOVkJEX0FEQVBURVIgICAgICAgICBB
ZGFwdGVyID0gRGV2RXh0Ow0KPiArICAgIFBYRU5WQkRfU1JCRVhUICAgICAgICAgIFNyYkV4dCA9
IFNyYi0+U3JiRXh0ZW5zaW9uOw0KPiAgICAgIFBYRU5WQkRfVEFSR0VUICAgICAgICAgIFRhcmdl
dDsNCj4gDQo+ICAgICAgVGFyZ2V0ID0gQWRhcHRlckdldFRhcmdldChBZGFwdGVyLCBTcmItPlRh
cmdldElkKTsNCj4gQEAgLTE3NjYsMTQgKzE3NzAsMTQgQEAgQWRhcHRlckh3U3RhcnRJbygNCj4g
ICAgICAgICAgZ290byBmYWlsMTsNCj4gDQo+ICAgICAgKytBZGFwdGVyLT5TdGFydElvOw0KPiAt
ICAgIGlmIChUYXJnZXRTdGFydElvKFRhcmdldCwgU3JiKSkNCj4gLSAgICAgICAgQWRhcHRlckNv
bXBsZXRlU3JiKEFkYXB0ZXIsIFNyYik7DQo+ICsgICAgaWYgKFRhcmdldFN0YXJ0SW8oVGFyZ2V0
LCBTcmJFeHQpKQ0KPiArICAgICAgICBBZGFwdGVyQ29tcGxldGVTcmIoQWRhcHRlciwgU3JiRXh0
KTsNCj4gDQo+ICAgICAgcmV0dXJuIFRSVUU7DQo+IA0KPiAgZmFpbDE6DQo+ICAgICAgU3JiLT5T
cmJTdGF0dXMgPSBTUkJfU1RBVFVTX0lOVkFMSURfVEFSR0VUX0lEOw0KPiAtICAgIEFkYXB0ZXJD
b21wbGV0ZVNyYihBZGFwdGVyLCBTcmIpOw0KPiArICAgIEFkYXB0ZXJDb21wbGV0ZVNyYihBZGFw
dGVyLCBTcmJFeHQpOw0KPiAgICAgIHJldHVybiBUUlVFOw0KPiAgfQ0KPiANCj4gZGlmZiAtLWdp
dCBhL3NyYy94ZW52YmQvYWRhcHRlci5oIGIvc3JjL3hlbnZiZC9hZGFwdGVyLmgNCj4gaW5kZXgg
Yjg3MDZmZC4uYTM5OGI3NSAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9hZGFwdGVyLmgNCj4g
KysrIGIvc3JjL3hlbnZiZC9hZGFwdGVyLmgNCj4gQEAgLTM2LDEzICszNiwxNCBAQA0KPiANCj4g
IHR5cGVkZWYgc3RydWN0IF9YRU5WQkRfQURBUFRFUiBYRU5WQkRfQURBUFRFUiwNCj4gKlBYRU5W
QkRfQURBUFRFUjsNCj4gDQo+IC0jaW5jbHVkZSA8c3RvcnBvcnQuaD4NCj4gICNpbmNsdWRlIDxz
dG9yZV9pbnRlcmZhY2UuaD4NCj4gICNpbmNsdWRlIDxldnRjaG5faW50ZXJmYWNlLmg+DQo+ICAj
aW5jbHVkZSA8Z250dGFiX2ludGVyZmFjZS5oPg0KPiAgI2luY2x1ZGUgPGRlYnVnX2ludGVyZmFj
ZS5oPg0KPiAgI2luY2x1ZGUgPHN1c3BlbmRfaW50ZXJmYWNlLmg+DQo+IA0KPiArI2luY2x1ZGUg
InNyYmV4dC5oIg0KPiArDQo+ICAjZGVmaW5lIEFEQVBURVJfR0VUX0lOVEVSRkFDRShfbmFtZSwg
X3R5cGUpICAgICBcDQo+ICBleHRlcm4gVk9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBcDQo+ICBBZGFwdGVyR2V0ICMjIF9uYW1lICMjIEludGVyZmFjZSggICAgICAgICAg
ICAgICBcDQo+IEBAIC02Niw4ICs2Nyw4IEBAIEFkYXB0ZXJJc1RhcmdldEVtdWxhdGVkKA0KPiAN
Cj4gIGV4dGVybiBWT0lEDQo+ICBBZGFwdGVyQ29tcGxldGVTcmIoDQo+IC0gICAgSU4gIFBYRU5W
QkRfQURBUFRFUiAgICAgQWRhcHRlciwNCj4gLSAgICBJTiAgUFNDU0lfUkVRVUVTVF9CTE9DSyBT
cmINCj4gKyAgICBJTiAgUFhFTlZCRF9BREFQVEVSIEFkYXB0ZXIsDQo+ICsgICAgSU4gIFBYRU5W
QkRfU1JCRVhUICBTcmJFeHQNCj4gICAgICApOw0KPiANCj4gIGV4dGVybiBWT0lEDQo+IGRpZmYg
LS1naXQgYS9zcmMveGVudmJkL3RhcmdldC5jIGIvc3JjL3hlbnZiZC90YXJnZXQuYw0KPiBpbmRl
eCA1YmFiNDQwLi4xZjQ1YWZiIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3RhcmdldC5jDQo+
ICsrKyBiL3NyYy94ZW52YmQvdGFyZ2V0LmMNCj4gQEAgLTEyOTcsNyArMTI5Nyw3IEBAIF9fVGFy
Z2V0UGF1c2VEYXRhUGF0aCgNCj4gICAgICAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IEZyZXNo
U3JiIDB4JXAgLT4gU0NTSV9BQk9SVEVEXG4iLA0KPiBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQp
LCBTcmJFeHQtPlNyYik7DQo+ICAgICAgICAgIFNyYkV4dC0+U3JiLT5TcmJTdGF0dXMgPSBTUkJf
U1RBVFVTX0FCT1JURUQ7DQo+ICAgICAgICAgIFNyYkV4dC0+U3JiLT5TY3NpU3RhdHVzID0gMHg0
MDsgLy8gU0NTSV9BQk9SVEVEOw0KPiAtICAgICAgICBBZGFwdGVyQ29tcGxldGVTcmIoVGFyZ2V0
R2V0QWRhcHRlcihUYXJnZXQpLCBTcmJFeHQtPlNyYik7DQo+ICsgICAgICAgIEFkYXB0ZXJDb21w
bGV0ZVNyYihUYXJnZXRHZXRBZGFwdGVyKFRhcmdldCksIFNyYkV4dCk7DQo+ICAgICAgfQ0KPiAN
Cj4gICAgICAvLyBGYWlsIFByZXBhcmVkUmVxcw0KPiBAQCAtMTMxNyw3ICsxMzE3LDcgQEAgX19U
YXJnZXRQYXVzZURhdGFQYXRoKA0KPiANCj4gICAgICAgICAgaWYgKEludGVybG9ja2VkRGVjcmVt
ZW50KCZTcmJFeHQtPkNvdW50KSA9PSAwKSB7DQo+ICAgICAgICAgICAgICBTcmJFeHQtPlNyYi0+
U2NzaVN0YXR1cyA9IDB4NDA7IC8vIFNDU0lfQUJPUlRFRA0KPiAtICAgICAgICAgICAgQWRhcHRl
ckNvbXBsZXRlU3JiKFRhcmdldEdldEFkYXB0ZXIoVGFyZ2V0KSwgU3JiRXh0LT5TcmIpOw0KPiAr
ICAgICAgICAgICAgQWRhcHRlckNvbXBsZXRlU3JiKFRhcmdldEdldEFkYXB0ZXIoVGFyZ2V0KSwg
U3JiRXh0KTsNCj4gICAgICAgICAgfQ0KPiAgICAgIH0NCj4gIH0NCj4gQEAgLTE0MjksNyArMTQy
OSw3IEBAIFRhcmdldENvbXBsZXRlU2h1dGRvd24oDQo+ICAgICAgICAgICAgICBicmVhazsNCj4g
ICAgICAgICAgU3JiRXh0ID0gQ09OVEFJTklOR19SRUNPUkQoRW50cnksIFhFTlZCRF9TUkJFWFQs
IEVudHJ5KTsNCj4gICAgICAgICAgU3JiRXh0LT5TcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNf
U1VDQ0VTUzsNCj4gLSAgICAgICAgQWRhcHRlckNvbXBsZXRlU3JiKFRhcmdldEdldEFkYXB0ZXIo
VGFyZ2V0KSwgU3JiRXh0LT5TcmIpOw0KPiArICAgICAgICBBZGFwdGVyQ29tcGxldGVTcmIoVGFy
Z2V0R2V0QWRhcHRlcihUYXJnZXQpLCBTcmJFeHQpOw0KPiAgICAgIH0NCj4gIH0NCj4gDQo+IEBA
IC0xNTI2LDcgKzE1MjYsNyBAQCBUYXJnZXRDb21wbGV0ZVJlc3BvbnNlKA0KPiAgICAgICAgICAg
ICAgU3JiLT5TY3NpU3RhdHVzID0gMHg0MDsgLy8gU0NTSV9BQk9SVEVEDQo+ICAgICAgICAgIH0N
Cj4gDQo+IC0gICAgICAgIEFkYXB0ZXJDb21wbGV0ZVNyYihUYXJnZXRHZXRBZGFwdGVyKFRhcmdl
dCksIFNyYik7DQo+ICsgICAgICAgIEFkYXB0ZXJDb21wbGV0ZVNyYihUYXJnZXRHZXRBZGFwdGVy
KFRhcmdldCksIFNyYkV4dCk7DQo+ICAgICAgfQ0KPiAgfQ0KPiANCj4gQEAgLTIxMjksMTMgKzIx
MjksMTQgQEAgX19WYWxpZGF0ZVNyYkZvclRhcmdldCgNCj4gICAgICByZXR1cm4gVFJVRTsNCj4g
IH0NCj4gDQo+IC1fX2NoZWNrUmV0dXJuDQo+ICBCT09MRUFODQo+ICBUYXJnZXRTdGFydElvKA0K
PiAtICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0LA0KPiAtICAgIF9f
aW4gUFNDU0lfUkVRVUVTVF9CTE9DSyAgICAgU3JiDQo+ICsgICAgSU4gIFBYRU5WQkRfVEFSR0VU
ICBUYXJnZXQsDQo+ICsgICAgSU4gIFBYRU5WQkRfU1JCRVhUICBTcmJFeHQNCj4gICAgICApDQo+
ICB7DQo+ICsgICAgUFNDU0lfUkVRVUVTVF9CTE9DSyBTcmIgPSBTcmJFeHQtPlNyYjsNCj4gKw0K
PiAgICAgIGlmICghX19WYWxpZGF0ZVNyYkZvclRhcmdldChUYXJnZXQsIFNyYikpDQo+ICAgICAg
ICAgIHJldHVybiBUUlVFOw0KPiANCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvdGFyZ2V0Lmgg
Yi9zcmMveGVudmJkL3RhcmdldC5oDQo+IGluZGV4IDk0NTVkNTYuLjY3YjYzMTkgMTAwNjQ0DQo+
IC0tLSBhL3NyYy94ZW52YmQvdGFyZ2V0LmgNCj4gKysrIGIvc3JjL3hlbnZiZC90YXJnZXQuaA0K
PiBAQCAtMTYyLDExICsxNjIsMTAgQEAgVGFyZ2V0UmVzZXQoDQo+ICAgICAgX19pbiBQWEVOVkJE
X1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQNCj4gICAgICApOw0KPiANCj4gLV9fY2hlY2tSZXR1
cm4NCj4gIGV4dGVybiBCT09MRUFODQo+ICBUYXJnZXRTdGFydElvKA0KPiAtICAgIF9faW4gUFhF
TlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0LA0KPiAtICAgIF9faW4gUFNDU0lfUkVRVUVT
VF9CTE9DSyAgICAgU3JiDQo+ICsgICAgSU4gIFBYRU5WQkRfVEFSR0VUICBUYXJnZXQsDQo+ICsg
ICAgSU4gIFBYRU5WQkRfU1JCRVhUICBTcmJFeHQNCj4gICAgICApOw0KPiANCj4gIGV4dGVybiBW
T0lEDQo+IC0tDQo+IDIuOC4zDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4t
cHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0
Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBs
aXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnBy
b2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue Jun 27 10:39:19 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jun 2017 10:39:19 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPntv-0002xj-Fj; Tue, 27 Jun 2017 10:39:19 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=3449104f4=Paul.Durrant@citrix.com>)
 id 1dPntu-0002xc-3H
 for win-pv-devel@lists.xenproject.org; Tue, 27 Jun 2017 10:39:18 +0000
Received: from [85.158.139.211] by server-10.bemta-5.messagelabs.com id
 DD/F4-01734-5D532595; Tue, 27 Jun 2017 10:39:17 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrMIsWRWlGSWpSXmKPExsWyU9JRQveKaVC
 kwd4LxhZ/Fic6MHoc/nCFJYAxijUzLym/IoE1o2f3BbaCt5YVL3ffZmxg7LHsYuTkkBDwk3ix
 qIENxGYT0JFYenQ+E4gtIlAg8f39PGYQm1lATeL6/i5WEFtYwFni0JIV7BA1LhKbJh2DqjeS+
 LxiBVgNi4CqxNpJc8FsXgF3icdbW8DqhQSyJM4+fQpmcwpYS5zdcg5sPqOArMSXxtVQu8Qlbj
 2BuEFCQEBiyZ7zzBC2qMTLx/9YIWwDia1L97F0MXIA1WtKrN+lD9GqKDGl+yE7xFpBiZMzn7B
 MYBSehWTqLISOWUg6ZiHpWMDIsopRvTi1qCy1SNdcL6koMz2jJDcxM0fX0MBULze1uDgxPTUn
 MalYLzk/dxMjMOgZgGAH47HJzocYJTmYlER5V0sERQrxJeWnVGYkFmfEF5XmpBYfYpTh4FCS4
 E0zAcoJFqWmp1akZeYA4w8mLcHBoyTCW3Y8MFKIt7ggMbc4Mx0idYrRmGPD6vVfmDj+TNj6hU
 mIJS8/L1VKnHcyyCQBkNKM0jy4QbC0cIlRVkqYlxHoNCGegtSi3MwSVPlXjOIcjErCvC8Ngab
 wZOaVwO17BXQKE9ApLPMCQE4pSURISTUwxuW47GFeLTV9RzZDX77ArHn5jMGzP//YODm8llN6
 Sq75qufbW7Rq7xQ0blZ65evUt+l7AwPHxOYpSwxPLJ9aG8sSoD/h/F+Dp/cNJ/JKOs9V0EnaF
 zKxXJ/Pw3t3Z69zyA8rQY+3acmKqmcEFsTk3jFNP529cd32Tav3XNlUqsn6T+KT5IIyJZbijE
 RDLeai4kQAqmFxiQYDAAA=
X-Env-Sender: prvs=3449104f4=Paul.Durrant@citrix.com
X-Msg-Ref: server-12.tower-206.messagelabs.com!1498559956!68988478!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27254 invoked from network); 27 Jun 2017 10:39:16 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-12.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 27 Jun 2017 10:39:16 -0000
X-IronPort-AV: E=Sophos;i="5.39,399,1493683200"; d="scan'208";a="48446505"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 04/10] Inline MapSegmentBuffer()
Thread-Index: AQHS7B9Ig45f+hmZWka2k2S74esiw6I4iuDw
Date: Tue, 27 Jun 2017 10:39:14 +0000
Message-ID: <c89d75943e2649f8830d19004321c73b@AMSPEX02CL03.citrite.net>
References: <20170623124917.13956-1-owen.smith@citrix.com>
 <20170623124917.13956-5-owen.smith@citrix.com>
In-Reply-To: <20170623124917.13956-5-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 04/10] Inline MapSegmentBuffer()
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAyMyBKdW5lIDIwMTcgMTM6NDkNCj4g
VG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8
b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0gg
MDQvMTBdIElubGluZSBNYXBTZWdtZW50QnVmZmVyKCkNCj4gDQo+IEZyb206IE93ZW4gU21pdGgg
PG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGgg
PG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCg0KUmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1
bC5kdXJyYW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBzcmMveGVudmJkL3RhcmdldC5jIHwg
ODggKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g
LS0tDQo+ICAxIGZpbGUgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgNTQgZGVsZXRpb25zKC0p
DQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC90YXJnZXQuYyBiL3NyYy94ZW52YmQvdGFy
Z2V0LmMNCj4gaW5kZXggMWY0NWFmYi4uMGZlODg4OSAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZi
ZC90YXJnZXQuYw0KPiArKysgYi9zcmMveGVudmJkL3RhcmdldC5jDQo+IEBAIC03OTgsNTkgKzc5
OCw2IEBAIFNHTGlzdE5leHQoDQo+ICAgICAgcmV0dXJuICEoKFNHTGlzdC0+UGh5c0FkZHIuUXVh
ZFBhcnQgJiBBbGlnbm1lbnRNYXNrKSB8fCAoU0dMaXN0LQ0KPiA+UGh5c0xlbiAmIEFsaWdubWVu
dE1hc2spKTsNCj4gIH0NCj4gDQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgQk9PTEVBTg0KPiAtTWFw
U2VnbWVudEJ1ZmZlcigNCj4gLSAgICBJTiAgUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFy
Z2V0LA0KPiAtICAgIElOICBQWEVOVkJEX1NFR01FTlQgICAgICAgICBTZWdtZW50LA0KPiAtICAg
IElOICBQWEVOVkJEX1NHX0xJU1QgICAgICAgICBTR0xpc3QsDQo+IC0gICAgSU4gIFVMT05HICAg
ICAgICAgICAgICAgICAgIFNlY3RvclNpemUsDQo+IC0gICAgSU4gIFVMT05HICAgICAgICAgICAg
ICAgICAgIFNlY3RvcnNOb3cNCj4gLSAgICApDQo+IC17DQo+IC0gICAgUE1ETCAgICBNZGw7DQo+
IC0NCj4gLSAgICAvLyBtYXAgUGh5c0FkZHIgdG8gMSBvciAyIHBhZ2VzIGFuZCBsb2NrIGZvciBW
aXJ0QWRkcg0KPiAtI3ByYWdtYSB3YXJuaW5nKHB1c2gpDQo+IC0jcHJhZ21hIHdhcm5pbmcoZGlz
YWJsZToyODE0NSkNCj4gLSAgICBNZGwgPSAmU2VnbWVudC0+TWRsOw0KPiAtICAgIE1kbC0+TmV4
dCAgICAgICAgICAgPSBOVUxMOw0KPiAtICAgIE1kbC0+U2l6ZSAgICAgICAgICAgPSAoU0hPUlQp
KHNpemVvZihNREwpICsgc2l6ZW9mKFBGTl9OVU1CRVIpKTsNCj4gLSAgICBNZGwtPk1kbEZsYWdz
ICAgICAgID0gTURMX1BBR0VTX0xPQ0tFRDsNCj4gLSAgICBNZGwtPlByb2Nlc3MgICAgICAgID0g
TlVMTDsNCj4gLSAgICBNZGwtPk1hcHBlZFN5c3RlbVZhID0gTlVMTDsNCj4gLSAgICBNZGwtPlN0
YXJ0VmEgICAgICAgID0gTlVMTDsNCj4gLSAgICBNZGwtPkJ5dGVDb3VudCAgICAgID0gU0dMaXN0
LT5QaHlzTGVuOw0KPiAtICAgIE1kbC0+Qnl0ZU9mZnNldCAgICAgPSBfX09mZnNldChTR0xpc3Qt
PlBoeXNBZGRyKTsNCj4gLSAgICBTZWdtZW50LT5QZm5bMF0gICAgID0gX19QaHlzMlBmbihTR0xp
c3QtPlBoeXNBZGRyKTsNCj4gLQ0KPiAtICAgIGlmIChTR0xpc3QtPlBoeXNMZW4gPCBTZWN0b3Jz
Tm93ICogU2VjdG9yU2l6ZSkgew0KPiAtICAgICAgICBTR0xpc3RHZXQoU0dMaXN0KTsNCj4gLSAg
ICAgICAgTWRsLT5TaXplICAgICAgICs9IHNpemVvZihQRk5fTlVNQkVSKTsNCj4gLSAgICAgICAg
TWRsLT5CeXRlQ291bnQgID0gTWRsLT5CeXRlQ291bnQgKyBTR0xpc3QtPlBoeXNMZW47DQo+IC0g
ICAgICAgIFNlZ21lbnQtPlBmblsxXSA9IF9fUGh5czJQZm4oU0dMaXN0LT5QaHlzQWRkcik7DQo+
IC0gICAgfQ0KPiAtI3ByYWdtYSB3YXJuaW5nKHBvcCkNCj4gLQ0KPiAtICAgIEFTU0VSVCgoTWRs
LT5CeXRlQ291bnQgJiAoU2VjdG9yU2l6ZSAtIDEpKSA9PSAwKTsNCj4gLSAgICBBU1NFUlQzVShN
ZGwtPkJ5dGVDb3VudCwgPD0sIFBBR0VfU0laRSk7DQo+IC0gICAgQVNTRVJUM1UoU2VjdG9yc05v
dywgPT0sIChNZGwtPkJ5dGVDb3VudCAvIFNlY3RvclNpemUpKTsNCj4gLQ0KPiAtICAgIFNlZ21l
bnQtPkxlbmd0aCA9IF9fbWluKE1kbC0+Qnl0ZUNvdW50LCBQQUdFX1NJWkUpOw0KPiAtICAgIFNl
Z21lbnQtPkJ1ZmZlciA9IE1tTWFwTG9ja2VkUGFnZXNTcGVjaWZ5Q2FjaGUoTWRsLCBLZXJuZWxN
b2RlLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1tQ2FjaGVkLCBOVUxMLCBGQUxT
RSwgX19UYXJnZXRQcmlvcml0eShUYXJnZXQpKTsNCj4gLSAgICBpZiAoIVNlZ21lbnQtPkJ1ZmZl
cikgew0KPiAtICAgICAgICBnb3RvIGZhaWw7DQo+IC0gICAgfQ0KPiAtDQo+IC0gICAgQVNTRVJU
M1AoTW1HZXRNZGxQZm5BcnJheShNZGwpWzBdLCA9PSwgU2VnbWVudC0+UGZuWzBdKTsNCj4gLSAg
ICBBU1NFUlQzUChNbUdldE1kbFBmbkFycmF5KE1kbClbMV0sID09LCBTZWdtZW50LT5QZm5bMV0p
Ow0KPiAtDQo+IC0gICAgcmV0dXJuIFRSVUU7DQo+IC0NCj4gLWZhaWw6DQo+IC0gICAgcmV0dXJu
IEZBTFNFOw0KPiAtfQ0KPiAtDQo+ICBzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRA0KPiAgUmVxdWVz
dENvcHlPdXRwdXQoDQo+ICAgICAgX19pbiBQWEVOVkJEX1JFUVVFU1QgICAgICAgICBSZXF1ZXN0
DQo+IEBAIC05MDEsNiArODQ4LDggQEAgUHJlcGFyZVNlZ21lbnQoDQo+ICAgICAgICAgIEFTU0VS
VDNVKChTR0xpc3QtPlBoeXNMZW4gLyBTZWN0b3JTaXplKSwgPT0sICpTZWN0b3JzTm93KTsNCj4g
ICAgICAgICAgQVNTRVJUM1UoKFNHTGlzdC0+UGh5c0xlbiAmIChTZWN0b3JTaXplIC0gMSkpLCA9
PSwgMCk7DQo+ICAgICAgfSBlbHNlIHsNCj4gKyAgICAgICAgUE1ETCAgICAgICAgTWRsOw0KPiAr
DQo+ICAgICAgICAgICsrVGFyZ2V0LT5TZWdzQm91bmNlZDsNCj4gICAgICAgICAgLy8gZ2V0IGZp
cnN0IHNlY3RvciwgbGFzdCBzZWN0b3IgYW5kIGNvdW50DQo+ICAgICAgICAgIFNlZ21lbnQtPkZp
cnN0U2VjdG9yICAgID0gMDsNCj4gQEAgLTkwOCwxMSArODU3LDQyIEBAIFByZXBhcmVTZWdtZW50
KA0KPiAgICAgICAgICBTZWdtZW50LT5MYXN0U2VjdG9yICAgICA9IChVQ0hBUikoKlNlY3RvcnNO
b3cgLSAxKTsNCj4gDQo+ICAgICAgICAgIC8vIG1hcCBTR0xpc3QgdG8gVmlydHVhbCBBZGRyZXNz
LiBQb3B1bGF0ZXMgU2VnbWVudC0+QnVmZmVyIGFuZA0KPiBTZWdtZW50LT5MZW5ndGgNCj4gLSAg
ICAgICAgaWYgKCFNYXBTZWdtZW50QnVmZmVyKFRhcmdldCwgU2VnbWVudCwgU0dMaXN0LCBTZWN0
b3JTaXplLA0KPiAqU2VjdG9yc05vdykpIHsNCj4gKyNwcmFnbWEgd2FybmluZyhwdXNoKQ0KPiAr
I3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6MjgxNDUpDQo+ICsgICAgICAgIE1kbCA9ICZTZWdtZW50
LT5NZGw7DQo+ICsgICAgICAgIE1kbC0+TmV4dCAgICAgICAgICAgPSBOVUxMOw0KPiArICAgICAg
ICBNZGwtPlNpemUgICAgICAgICAgID0gKFNIT1JUKShzaXplb2YoTURMKSArIHNpemVvZihQRk5f
TlVNQkVSKSk7DQo+ICsgICAgICAgIE1kbC0+TWRsRmxhZ3MgICAgICAgPSBNRExfUEFHRVNfTE9D
S0VEOw0KPiArICAgICAgICBNZGwtPlByb2Nlc3MgICAgICAgID0gTlVMTDsNCj4gKyAgICAgICAg
TWRsLT5NYXBwZWRTeXN0ZW1WYSA9IE5VTEw7DQo+ICsgICAgICAgIE1kbC0+U3RhcnRWYSAgICAg
ICAgPSBOVUxMOw0KPiArICAgICAgICBNZGwtPkJ5dGVDb3VudCAgICAgID0gU0dMaXN0LT5QaHlz
TGVuOw0KPiArICAgICAgICBNZGwtPkJ5dGVPZmZzZXQgICAgID0gX19PZmZzZXQoU0dMaXN0LT5Q
aHlzQWRkcik7DQo+ICsgICAgICAgIFNlZ21lbnQtPlBmblswXSAgICAgPSBfX1BoeXMyUGZuKFNH
TGlzdC0+UGh5c0FkZHIpOw0KPiArDQo+ICsgICAgICAgIGlmIChTR0xpc3QtPlBoeXNMZW4gPCAq
U2VjdG9yc05vdyAqIFNlY3RvclNpemUpIHsNCj4gKyAgICAgICAgICAgIFNHTGlzdEdldChTR0xp
c3QpOw0KPiArICAgICAgICAgICAgTWRsLT5TaXplICAgICAgICs9IHNpemVvZihQRk5fTlVNQkVS
KTsNCj4gKyAgICAgICAgICAgIE1kbC0+Qnl0ZUNvdW50ICA9IE1kbC0+Qnl0ZUNvdW50ICsgU0dM
aXN0LT5QaHlzTGVuOw0KPiArICAgICAgICAgICAgU2VnbWVudC0+UGZuWzFdID0gX19QaHlzMlBm
bihTR0xpc3QtPlBoeXNBZGRyKTsNCj4gKyAgICAgICAgfQ0KPiArI3ByYWdtYSB3YXJuaW5nKHBv
cCkNCj4gKw0KPiArICAgICAgICBBU1NFUlQoKE1kbC0+Qnl0ZUNvdW50ICYgKFNlY3RvclNpemUg
LSAxKSkgPT0gMCk7DQo+ICsgICAgICAgIEFTU0VSVDNVKE1kbC0+Qnl0ZUNvdW50LCA8PSwgUEFH
RV9TSVpFKTsNCj4gKyAgICAgICAgQVNTRVJUM1UoKlNlY3RvcnNOb3csID09LCAoTWRsLT5CeXRl
Q291bnQgLyBTZWN0b3JTaXplKSk7DQo+ICsNCj4gKyAgICAgICAgU2VnbWVudC0+TGVuZ3RoID0g
X19taW4oTWRsLT5CeXRlQ291bnQsIFBBR0VfU0laRSk7DQo+ICsgICAgICAgIFNlZ21lbnQtPkJ1
ZmZlciA9IE1tTWFwTG9ja2VkUGFnZXNTcGVjaWZ5Q2FjaGUoTWRsLA0KPiBLZXJuZWxNb2RlLA0K
PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNbUNhY2hlZCwgTlVMTCwgRkFMU0Us
IF9fVGFyZ2V0UHJpb3JpdHkoVGFyZ2V0KSk7DQo+ICsgICAgICAgIGlmICghU2VnbWVudC0+QnVm
ZmVyKSB7DQo+ICAgICAgICAgICAgICArK1RhcmdldC0+RmFpbGVkTWFwczsNCj4gICAgICAgICAg
ICAgIGdvdG8gZmFpbDE7DQo+ICAgICAgICAgIH0NCj4gDQo+ICsgICAgICAgIEFTU0VSVDNQKE1t
R2V0TWRsUGZuQXJyYXkoTWRsKVswXSwgPT0sIFNlZ21lbnQtPlBmblswXSk7DQo+ICsgICAgICAg
IEFTU0VSVDNQKE1tR2V0TWRsUGZuQXJyYXkoTWRsKVsxXSwgPT0sIFNlZ21lbnQtPlBmblsxXSk7
DQo+ICsNCj4gICAgICAgICAgLy8gZ2V0IGEgYnVmZmVyDQo+ICAgICAgICAgIGlmICghQnVmZmVy
R2V0KFNlZ21lbnQsICZTZWdtZW50LT5CdWZmZXJJZCwgJlBmbikpIHsNCj4gICAgICAgICAgICAg
ICsrVGFyZ2V0LT5GYWlsZWRCb3VuY2VzOw0KPiAtLQ0KPiAyLjguMw0KPiANCj4gDQo+IF9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZl
bCBtYWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0
dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1w
di1kZXZlbA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
d2luLXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v
cmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8v
d2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jun 27 10:51:54 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jun 2017 10:51:54 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPo65-0004mN-MK; Tue, 27 Jun 2017 10:51:53 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=3449104f4=Paul.Durrant@citrix.com>)
 id 1dPo63-0004mB-SS
 for win-pv-devel@lists.xenproject.org; Tue, 27 Jun 2017 10:51:52 +0000
Received: from [85.158.143.35] by server-11.bemta-6.messagelabs.com id
 0A/97-03587-7C832595; Tue, 27 Jun 2017 10:51:51 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrAIsWRWlGSWpSXmKPExsWyU9JRQveYRVC
 kwcNn8hZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y+GDO+wFp9oZK3pezWZtYHzRytjFyMkhIeAn
 0fDuIAuIzSagI7H06HwmEFtEoEDi+/t5zCA2s4CaxPX9XawgtrBAhMTZkxcYIWoiJa5fe80GY
 RtJ9KydAWazCKhK7F/czw5i8wq4Syz99xFsvpBAlsT15+vAajgFrCWWNVwBm8koICvxpXE11C
 5xiVtPIG6QEBCQWLLnPDOELSrx8vE/VgjbQGLr0n1AMzmA6jUl1u/Sh2hVlJjS/RBqraDEyZl
 PWCYwCs9CMnUWQscsJB2zkHQsYGRZxahRnFpUllqka2Sil1SUmZ5RkpuYmaNraGCml5taXJyY
 npqTmFSsl5yfu4kRGPoMQLCDcd/HyEOMkhxMSqK8qyWCIoX4kvJTKjMSizPii0pzUosPMcpwc
 ChJ8G4wB8oJFqWmp1akZeYAoxAmLcHBoyTCW3Y8MFKIt7ggMbc4Mx0idYpRl2PD6vVfmIRY8v
 LzUqXEeQNBZgiAFGWU5sGNgCWES4yyUsK8jEBHCfEUpBblZpagyr9iFOdgVBLmvWMGNIUnM68
 EbtMroCOYgI5gmRcAckRJIkJKqoExMP+ezr4f/6NKveschC7e2h1eOmXOVwG75z0n13xkqI07
 GCa66e/i4Kqtkuv7xQVPtErXCD1dwrYvP55poX/u9Jfyva5LIowdD574a+5YI6pQtKDqo0Dev
 sTTBw88D32tzt5w4MWP9MPi7yUF9lpdOztHoXVH0QvVOy+3iZbq/K740L8sN7NOiaU4I9FQi7
 moOBEAQWmWMQMDAAA=
X-Env-Sender: prvs=3449104f4=Paul.Durrant@citrix.com
X-Msg-Ref: server-15.tower-21.messagelabs.com!1498560710!75702809!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6963 invoked from network); 27 Jun 2017 10:51:50 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 27 Jun 2017 10:51:50 -0000
X-IronPort-AV: E=Sophos;i="5.39,399,1493683200"; d="scan'208";a="48446974"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 05/10] Move scatter gather list parsing to
 adapter.c
Thread-Index: AQHS7B9LPUyljj1Qk0+Sna8weN8+6KI4jmfw
Date: Tue, 27 Jun 2017 10:51:49 +0000
Message-ID: <fbafd4109f6d43738bd78cd6552ff4a7@AMSPEX02CL03.citrite.net>
References: <20170623124917.13956-1-owen.smith@citrix.com>
 <20170623124917.13956-6-owen.smith@citrix.com>
In-Reply-To: <20170623124917.13956-6-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 05/10] Move scatter gather list parsing
	to	adapter.c
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAyMyBKdW5lIDIwMTcgMTM6NDkNCj4g
VG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8
b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0gg
MDUvMTBdIE1vdmUgc2NhdHRlciBnYXRoZXIgbGlzdCBwYXJzaW5nIHRvDQo+IGFkYXB0ZXIuYw0K
PiANCj4gRnJvbTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiANCj4gU2ln
bmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KDQpSZXZpZXdl
ZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4NCg0KPiAtLS0NCj4g
IHNyYy94ZW52YmQvYWRhcHRlci5jIHwgIDYyICsrKysrKysrKysrKysrKysrKysrKysrKysrKw0K
PiAgc3JjL3hlbnZiZC9hZGFwdGVyLmggfCAgIDkgKysrKw0KPiAgc3JjL3hlbnZiZC9zcmJleHQu
aCAgfCAgIDQgKysNCj4gIHNyYy94ZW52YmQvdGFyZ2V0LmMgIHwgMTE2ICsrKysrKysrKysrKyst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAgNCBmaWxlcyBjaGFuZ2Vk
LCAxMDQgaW5zZXJ0aW9ucygrKSwgODcgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEv
c3JjL3hlbnZiZC9hZGFwdGVyLmMgYi9zcmMveGVudmJkL2FkYXB0ZXIuYw0KPiBpbmRleCBiYzkz
MDM3Li4xNGU5YWU2IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2FkYXB0ZXIuYw0KPiArKysg
Yi9zcmMveGVudmJkL2FkYXB0ZXIuYw0KPiBAQCAtMTQzNCw2ICsxNDM0LDY2IEBAIEFkYXB0ZXJT
ZXREZXZpY2VRdWV1ZURlcHRoKA0KPiAgICAgICAgICAgICAgICAgIFRhcmdldElkKTsNCj4gIH0N
Cj4gDQo+ICtQRk5fTlVNQkVSDQo+ICtBZGFwdGVyR2V0TmV4dFNHRW50cnkoDQo+ICsgICAgSU4g
IFBYRU5WQkRfQURBUFRFUiBBZGFwdGVyLA0KPiArICAgIElOICBQWEVOVkJEX1NSQkVYVCAgU3Ji
RXh0LA0KPiArICAgIElOICBVTE9ORyAgICAgICAgICAgRXhpc3RpbmcsDQo+ICsgICAgT1VUIFBV
TE9ORyAgICAgICAgICBPZmZzZXQsDQo+ICsgICAgT1VUIFBVTE9ORyAgICAgICAgICBMZW5ndGgN
Cj4gKyAgICApDQo+ICt7DQo+ICsgICAgUFNUT1JfU0NBVFRFUl9HQVRIRVJfTElTVCAgICAgICBT
R0xpc3QgPSBTcmJFeHQtPlNHTGlzdDsNCj4gKyAgICBQU1RPUl9TQ0FUVEVSX0dBVEhFUl9FTEVN
RU5UICAgIFNHRWxlbWVudDsNCj4gKyAgICBTVE9SX1BIWVNJQ0FMX0FERFJFU1MgICAgICAgICAg
IFBoeXNBZGRyOw0KPiArDQo+ICsgICAgVU5SRUZFUkVOQ0VEX1BBUkFNRVRFUihBZGFwdGVyKTsN
Cj4gKw0KPiArICAgIEFTU0VSVDNQKFNHTGlzdCwgIT0sIE5VTEwpOw0KPiArICAgIEFTU0VSVDNV
KFNyYkV4dC0+U0dJbmRleCwgPCwgU0dMaXN0LT5OdW1iZXJPZkVsZW1lbnRzKTsNCj4gKw0KPiAr
ICAgIFNHRWxlbWVudCA9ICZTR0xpc3QtPkxpc3RbU3JiRXh0LT5TR0luZGV4XTsNCj4gKw0KPiAr
ICAgIFBoeXNBZGRyLlF1YWRQYXJ0ID0gU0dFbGVtZW50LT5QaHlzaWNhbEFkZHJlc3MuUXVhZFBh
cnQgKyBTcmJFeHQtDQo+ID5TR09mZnNldDsNCj4gKyAgICAqT2Zmc2V0ICAgICAgICAgICA9IChV
TE9ORykoUGh5c0FkZHIuUXVhZFBhcnQgJiAoUEFHRV9TSVpFIC0gMSkpOw0KPiArICAgICpMZW5n
dGggICAgICAgICAgID0gX19taW4oUEFHRV9TSVpFIC0gKk9mZnNldCAtIEV4aXN0aW5nLCBTR0Vs
ZW1lbnQtPkxlbmd0aA0KPiAtIFNyYkV4dC0+U0dPZmZzZXQpOw0KPiArDQo+ICsgICAgQVNTRVJU
M1UoKkxlbmd0aCwgPD0sIFBBR0VfU0laRSk7DQo+ICsgICAgQVNTRVJUM1UoU3JiRXh0LT5TR09m
ZnNldCwgPCwgU0dFbGVtZW50LT5MZW5ndGgpOw0KPiArDQo+ICsgICAgU3JiRXh0LT5TR09mZnNl
dCArPSAqTGVuZ3RoOw0KPiArICAgIGlmIChTcmJFeHQtPlNHT2Zmc2V0ID49IFNHRWxlbWVudC0+
TGVuZ3RoKSB7DQo+ICsgICAgICAgIFNyYkV4dC0+U0dJbmRleCsrOw0KPiArICAgICAgICBTcmJF
eHQtPlNHT2Zmc2V0ID0gMDsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICByZXR1cm4gKFBGTl9OVU1C
RVIpKFBoeXNBZGRyLlF1YWRQYXJ0ID4+IFBBR0VfU0hJRlQpOw0KPiArfQ0KPiArDQo+ICtzdGF0
aWMgRk9SQ0VJTkxJTkUgVk9JRA0KPiArQWRhcHRlclB1bGx1cFNyYigNCj4gKyAgICBJTiAgUFhF
TlZCRF9BREFQVEVSICAgICBBZGFwdGVyLA0KPiArICAgIElOICBQU0NTSV9SRVFVRVNUX0JMT0NL
IFNyYg0KPiArICAgICkNCj4gK3sNCj4gKyAgICBQWEVOVkJEX1NSQkVYVCAgICAgICAgICBTcmJF
eHQgPSBTcmItPlNyYkV4dGVuc2lvbjsNCj4gKyAgICBVQ0hBUiAgICAgICAgICAgICAgICAgICBP
cGVyYXRpb247DQo+ICsNCj4gKyAgICBPcGVyYXRpb24gPSBDZGJfT3BlcmF0aW9uRXgoU3JiKTsN
Cj4gKyAgICBzd2l0Y2ggKE9wZXJhdGlvbikgew0KPiArICAgIGNhc2UgU0NTSU9QX1JFQUQ6DQo+
ICsgICAgY2FzZSBTQ1NJT1BfV1JJVEU6DQo+ICsgICAgICAgIFNyYkV4dC0+U0dMaXN0ID0gU3Rv
clBvcnRHZXRTY2F0dGVyR2F0aGVyTGlzdChBZGFwdGVyLCBTcmIpOw0KPiArICAgICAgICBBU1NF
UlQzUChTcmJFeHQtPlNHTGlzdCwgIT0sIE5VTEwpOw0KPiArICAgICAgICBBU1NFUlQzVSgoKFBT
VE9SX1NDQVRURVJfR0FUSEVSX0xJU1QpU3JiRXh0LT5TR0xpc3QpLQ0KPiA+TnVtYmVyT2ZFbGVt
ZW50cywgIT0sIDApOw0KPiArICAgICAgICBBU1NFUlQzVSgoKFBTVE9SX1NDQVRURVJfR0FUSEVS
X0xJU1QpU3JiRXh0LT5TR0xpc3QpLQ0KPiA+TnVtYmVyT2ZFbGVtZW50cywgPD0sIFhFTlZCRF9N
QVhfUEFHRVNfUEVSX1NSQik7DQo+ICsgICAgICAgIGJyZWFrOw0KPiArDQo+ICsgICAgZGVmYXVs
dDoNCj4gKyAgICAgICAgYnJlYWs7DQo+ICsgICAgfQ0KPiArfQ0KPiArDQo+ICBzdGF0aWMgVk9J
RA0KPiAgQWRhcHRlclVucGx1Z1JlcXVlc3QoDQo+ICAgICAgSU4gIFBYRU5WQkRfQURBUFRFUiBB
ZGFwdGVyLA0KPiBAQCAtMTcyNSw2ICsxNzg1LDggQEAgQWRhcHRlckh3QnVpbGRJbygNCj4gDQo+
ICAgICAgc3dpdGNoIChTcmItPkZ1bmN0aW9uKSB7DQo+ICAgICAgY2FzZSBTUkJfRlVOQ1RJT05f
RVhFQ1VURV9TQ1NJOg0KPiArICAgICAgICBBZGFwdGVyUHVsbHVwU3JiKEFkYXB0ZXIsIFNyYik7
DQo+ICsgICAgICAgIC8vIEludGVudGlvbmFsIGZhbGwgdGhyb3VnaA0KPiAgICAgIGNhc2UgU1JC
X0ZVTkNUSU9OX1JFU0VUX0RFVklDRToNCj4gICAgICBjYXNlIFNSQl9GVU5DVElPTl9GTFVTSDoN
Cj4gICAgICBjYXNlIFNSQl9GVU5DVElPTl9TSFVURE9XTjoNCj4gZGlmZiAtLWdpdCBhL3NyYy94
ZW52YmQvYWRhcHRlci5oIGIvc3JjL3hlbnZiZC9hZGFwdGVyLmgNCj4gaW5kZXggYTM5OGI3NS4u
Y2UwYzc5NCAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC9hZGFwdGVyLmgNCj4gKysrIGIvc3Jj
L3hlbnZiZC9hZGFwdGVyLmgNCj4gQEAgLTgyLDYgKzgyLDE1IEBAIEFkYXB0ZXJTZXREZXZpY2VR
dWV1ZURlcHRoKA0KPiAgICAgIElOICBVTE9ORyAgICAgICAgICAgVGFyZ2V0SWQNCj4gICAgICAp
Ow0KPiANCj4gK2V4dGVybiBQRk5fTlVNQkVSDQo+ICtBZGFwdGVyR2V0TmV4dFNHRW50cnkoDQo+
ICsgICAgSU4gIFBYRU5WQkRfQURBUFRFUiBBZGFwdGVyLA0KPiArICAgIElOICBQWEVOVkJEX1NS
QkVYVCAgU3JiRXh0LA0KPiArICAgIElOICBVTE9ORyAgICAgICAgICAgRXhpc3RpbmcsDQo+ICsg
ICAgT1VUIFBVTE9ORyAgICAgICAgICBPZmZzZXQsDQo+ICsgICAgT1VUIFBVTE9ORyAgICAgICAg
ICBMZW5ndGgNCj4gKyAgICApOw0KPiArDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIEFkYXB0ZXJE
aXNwYXRjaFBucCgNCj4gICAgICBJTiAgUFhFTlZCRF9BREFQVEVSIEFkYXB0ZXIsDQo+IGRpZmYg
LS1naXQgYS9zcmMveGVudmJkL3NyYmV4dC5oIGIvc3JjL3hlbnZiZC9zcmJleHQuaA0KPiBpbmRl
eCA2YjQxNDc1Li5jNWVjZGI2IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3NyYmV4dC5oDQo+
ICsrKyBiL3NyYy94ZW52YmQvc3JiZXh0LmgNCj4gQEAgLTkwLDYgKzkwLDEwIEBAIHR5cGVkZWYg
c3RydWN0IF9YRU5WQkRfU1JCRVhUIHsNCj4gICAgICBQU0NTSV9SRVFVRVNUX0JMT0NLICAgICBT
cmI7DQo+ICAgICAgTElTVF9FTlRSWSAgICAgICAgICAgICAgRW50cnk7DQo+ICAgICAgTE9ORyAg
ICAgICAgICAgICAgICAgICAgQ291bnQ7DQo+ICsNCj4gKyAgICBQVk9JRCAgICAgICAgICAgICAg
ICAgICBTR0xpc3Q7DQo+ICsgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgU0dJbmRleDsNCj4g
KyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBTR09mZnNldDsNCj4gIH0gWEVOVkJEX1NSQkVY
VCwgKlBYRU5WQkRfU1JCRVhUOw0KPiANCj4gIEZPUkNFSU5MSU5FIFBYRU5WQkRfU1JCRVhUDQo+
IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL3RhcmdldC5jIGIvc3JjL3hlbnZiZC90YXJnZXQuYw0K
PiBpbmRleCAwZmU4ODg5Li5jOWNiODAzIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3Rhcmdl
dC5jDQo+ICsrKyBiL3NyYy94ZW52YmQvdGFyZ2V0LmMNCj4gQEAgLTQ5LDE4ICs0OSw2IEBADQo+
ICAjaW5jbHVkZSA8c3VzcGVuZF9pbnRlcmZhY2UuaD4NCj4gICNpbmNsdWRlIDxzdGRsaWIuaD4N
Cj4gDQo+IC10eXBlZGVmIHN0cnVjdCBfWEVOVkJEX1NHX0xJU1Qgew0KPiAtICAgIC8vIFNHTGlz
dCBmcm9tIFNSQg0KPiAtICAgIFBTVE9SX1NDQVRURVJfR0FUSEVSX0xJU1QgICBTR0xpc3Q7DQo+
IC0gICAgLy8gImN1cnJlbnQiIHZhbHVlcw0KPiAtICAgIFNUT1JfUEhZU0lDQUxfQUREUkVTUyAg
ICAgICBQaHlzQWRkcjsNCj4gLSAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgUGh5c0xl
bjsNCj4gLSAgICAvLyBpdGVyYXRpb24NCj4gLSAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAg
ICAgSW5kZXg7DQo+IC0gICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldDsNCj4g
LSAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoOw0KPiAtfSBYRU5WQkRfU0df
TElTVCwgKlBYRU5WQkRfU0dfTElTVDsNCj4gLQ0KPiAgI2RlZmluZSBUQVJHRVRfU0lHTkFUVVJF
ICAgICAgICAgICAnb2RwWCcNCj4gDQo+ICB0eXBlZGVmIHN0cnVjdCBfWEVOVkJEX0xPT0tBU0lE
RSB7DQo+IEBAIC03MzIsMjIgKzcyMCw2IEBAIF9fT3BlcmF0aW9uKA0KPiAgICAgIH0NCj4gIH0N
Cj4gDQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgVUxPTkcNCj4gLV9fT2Zmc2V0KA0KPiAtICAgIF9f
aW4gU1RPUl9QSFlTSUNBTF9BRERSRVNTICAgUGh5c0FkZHINCj4gLSAgICApDQo+IC17DQo+IC0g
ICAgcmV0dXJuIChVTE9ORykoUGh5c0FkZHIuUXVhZFBhcnQgJiAoUEFHRV9TSVpFIC0gMSkpOw0K
PiAtfQ0KPiAtDQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgUEZOX05VTUJFUg0KPiAtX19QaHlzMlBm
bigNCj4gLSAgICBfX2luIFNUT1JfUEhZU0lDQUxfQUREUkVTUyAgIFBoeXNBZGRyDQo+IC0gICAg
KQ0KPiAtew0KPiAtICAgIHJldHVybiAoUEZOX05VTUJFUikoUGh5c0FkZHIuUXVhZFBhcnQgPj4g
UEFHRV9TSElGVCk7DQo+IC19DQo+IC0NCj4gIHN0YXRpYyBGT1JDRUlOTElORSBNTV9QQUdFX1BS
SU9SSVRZDQo+ICBfX1RhcmdldFByaW9yaXR5KA0KPiAgICAgIF9faW4gUFhFTlZCRF9UQVJHRVQg
ICAgICAgICAgICAgVGFyZ2V0DQo+IEBAIC03NjMsNDIgKzczNSw2IEBAIF9fVGFyZ2V0UHJpb3Jp
dHkoDQo+ICB9DQo+IA0KPiAgc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQNCj4gLVNHTGlzdEdldCgN
Cj4gLSAgICBJTiBPVVQgIFBYRU5WQkRfU0dfTElTVCAgICAgICAgIFNHTGlzdA0KPiAtICAgICkN
Cj4gLXsNCj4gLSAgICBQU1RPUl9TQ0FUVEVSX0dBVEhFUl9FTEVNRU5UICAgIFNHRWxlbWVudDsN
Cj4gLQ0KPiAtICAgIEFTU0VSVDNVKFNHTGlzdC0+SW5kZXgsIDwsIFNHTGlzdC0+U0dMaXN0LT5O
dW1iZXJPZkVsZW1lbnRzKTsNCj4gLQ0KPiAtICAgIFNHRWxlbWVudCA9ICZTR0xpc3QtPlNHTGlz
dC0+TGlzdFtTR0xpc3QtPkluZGV4XTsNCj4gLQ0KPiAtICAgIFNHTGlzdC0+UGh5c0FkZHIuUXVh
ZFBhcnQgPSBTR0VsZW1lbnQtPlBoeXNpY2FsQWRkcmVzcy5RdWFkUGFydCArDQo+IFNHTGlzdC0+
T2Zmc2V0Ow0KPiAtICAgIFNHTGlzdC0+UGh5c0xlbiAgICAgICAgICAgPSBfX21pbihQQUdFX1NJ
WkUgLSBfX09mZnNldChTR0xpc3QtPlBoeXNBZGRyKSAtDQo+IFNHTGlzdC0+TGVuZ3RoLCBTR0Vs
ZW1lbnQtPkxlbmd0aCAtIFNHTGlzdC0+T2Zmc2V0KTsNCj4gLQ0KPiAtICAgIEFTU0VSVDNVKFNH
TGlzdC0+UGh5c0xlbiwgPD0sIFBBR0VfU0laRSk7DQo+IC0gICAgQVNTRVJUM1UoU0dMaXN0LT5P
ZmZzZXQsIDwsIFNHRWxlbWVudC0+TGVuZ3RoKTsNCj4gLQ0KPiAtICAgIFNHTGlzdC0+TGVuZ3Ro
ID0gU0dMaXN0LT5QaHlzTGVuOyAvLyBnZXRzIHJlc2V0IGV2ZXJ5IHRpbWUgZm9yIEdyYW50ZWQs
DQo+IGV2ZXJ5IDFvcjIgdGltZXMgZm9yIEJvdW5jZWQNCj4gLSAgICBTR0xpc3QtPk9mZnNldCA9
IFNHTGlzdC0+T2Zmc2V0ICsgU0dMaXN0LT5QaHlzTGVuOw0KPiAtICAgIGlmIChTR0xpc3QtPk9m
ZnNldCA+PSBTR0VsZW1lbnQtPkxlbmd0aCkgew0KPiAtICAgICAgICBTR0xpc3QtPkluZGV4ICA9
IFNHTGlzdC0+SW5kZXggKyAxOw0KPiAtICAgICAgICBTR0xpc3QtPk9mZnNldCA9IDA7DQo+IC0g
ICAgfQ0KPiAtfQ0KPiAtDQo+IC1zdGF0aWMgRk9SQ0VJTkxJTkUgQk9PTEVBTg0KPiAtU0dMaXN0
TmV4dCgNCj4gLSAgICBJTiBPVVQgIFBYRU5WQkRfU0dfTElTVCAgICAgICAgIFNHTGlzdCwNCj4g
LSAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgIEFsaWdubWVudE1hc2sNCj4gLSAg
ICApDQo+IC17DQo+IC0gICAgU0dMaXN0LT5MZW5ndGggPSAwOw0KPiAtICAgIFNHTGlzdEdldChT
R0xpc3QpOyAgLy8gZ2V0IG5leHQgUGh5c0FkZHIgYW5kIFBoeXNMZW4NCj4gLSAgICByZXR1cm4g
ISgoU0dMaXN0LT5QaHlzQWRkci5RdWFkUGFydCAmIEFsaWdubWVudE1hc2spIHx8IChTR0xpc3Qt
DQo+ID5QaHlzTGVuICYgQWxpZ25tZW50TWFzaykpOw0KPiAtfQ0KPiAtDQo+IC1zdGF0aWMgRk9S
Q0VJTkxJTkUgVk9JRA0KPiAgUmVxdWVzdENvcHlPdXRwdXQoDQo+ICAgICAgX19pbiBQWEVOVkJE
X1JFUVVFU1QgICAgICAgICBSZXF1ZXN0DQo+ICAgICAgKQ0KPiBAQCAtODIwLDMzICs3NTYsMzkg
QEAgUmVxdWVzdENvcHlPdXRwdXQoDQo+IA0KPiAgc3RhdGljIEJPT0xFQU4NCj4gIFByZXBhcmVT
ZWdtZW50KA0KPiAtICAgIElOICBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQsDQo+
ICsgICAgSU4gIFBYRU5WQkRfVEFSR0VUICAgICAgICAgIFRhcmdldCwNCj4gICAgICBJTiAgUFhF
TlZCRF9TRUdNRU5UICAgICAgICAgU2VnbWVudCwNCj4gLSAgICBJTiAgUFhFTlZCRF9TR19MSVNU
ICAgICAgICAgU0dMaXN0LA0KPiArICAgIElOICBQWEVOVkJEX1NSQkVYVCAgICAgICAgICBTcmJF
eHQsDQo+ICAgICAgSU4gIEJPT0xFQU4gICAgICAgICAgICAgICAgIFJlYWRPbmx5LA0KPiAgICAg
IElOICBVTE9ORyAgICAgICAgICAgICAgICAgICBTZWN0b3JzTGVmdCwNCj4gICAgICBPVVQgUFVM
T05HICAgICAgICAgICAgICAgICAgU2VjdG9yc05vdw0KPiAgICAgICkNCj4gIHsNCj4gICAgICBQ
Rk5fTlVNQkVSICAgICAgUGZuOw0KPiArICAgIFVMT05HICAgICAgICAgICBPZmZzZXQ7DQo+ICsg
ICAgVUxPTkcgICAgICAgICAgIExlbmd0aDsNCj4gICAgICBOVFNUQVRVUyAgICAgICAgU3RhdHVz
Ow0KPiAgICAgIFBYRU5WQkRfR1JBTlRFUiBHcmFudGVyID0gRnJvbnRlbmRHZXRHcmFudGVyKFRh
cmdldC0+RnJvbnRlbmQpOw0KPiAgICAgIGNvbnN0IFVMT05HICAgICBTZWN0b3JTaXplID0gVGFy
Z2V0U2VjdG9yU2l6ZShUYXJnZXQpOw0KPiAgICAgIGNvbnN0IFVMT05HICAgICBTZWN0b3JzUGVy
UGFnZSA9IF9fU2VjdG9yc1BlclBhZ2UoU2VjdG9yU2l6ZSk7DQo+IA0KPiAtICAgIGlmIChTR0xp
c3ROZXh0KFNHTGlzdCwgU2VjdG9yU2l6ZSAtIDEpKSB7DQo+ICsgICAgUGZuID0gQWRhcHRlckdl
dE5leHRTR0VudHJ5KFRhcmdldEdldEFkYXB0ZXIoVGFyZ2V0KSwNCj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU3JiRXh0LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmT2Zmc2V0LA0KPiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmTGVuZ3RoKTsNCj4gKyAgICBpZiAoKE9m
ZnNldCAmIChTZWN0b3JTaXplIC0gMSkpID09IDAgJiYNCj4gKyAgICAgICAgKExlbmd0aCAmIChT
ZWN0b3JTaXplIC0gMSkpID09IDApIHsNCj4gICAgICAgICAgKytUYXJnZXQtPlNlZ3NHcmFudGVk
Ow0KPiAgICAgICAgICAvLyBnZXQgZmlyc3Qgc2VjdG9yLCBsYXN0IHNlY3RvciBhbmQgY291bnQN
Cj4gLSAgICAgICAgU2VnbWVudC0+Rmlyc3RTZWN0b3IgICAgPSAoVUNIQVIpKChfX09mZnNldChT
R0xpc3QtPlBoeXNBZGRyKSArDQo+IFNlY3RvclNpemUgLSAxKSAvIFNlY3RvclNpemUpOw0KPiAr
ICAgICAgICBTZWdtZW50LT5GaXJzdFNlY3RvciAgICA9IChVQ0hBUikoKE9mZnNldCArIFNlY3Rv
clNpemUgLSAxKSAvDQo+IFNlY3RvclNpemUpOw0KPiAgICAgICAgICAqU2VjdG9yc05vdyAgICAg
ICAgICAgICA9IF9fbWluKFNlY3RvcnNMZWZ0LCBTZWN0b3JzUGVyUGFnZSAtIFNlZ21lbnQtDQo+
ID5GaXJzdFNlY3Rvcik7DQo+ICAgICAgICAgIFNlZ21lbnQtPkxhc3RTZWN0b3IgICAgID0gKFVD
SEFSKShTZWdtZW50LT5GaXJzdFNlY3RvciArDQo+ICpTZWN0b3JzTm93IC0gMSk7DQo+ICAgICAg
ICAgIFNlZ21lbnQtPkJ1ZmZlcklkICAgICAgID0gTlVMTDsgLy8gZ3JhbnRlZCwgZW5zdXJlIGl0
cyBudWxsDQo+ICAgICAgICAgIFNlZ21lbnQtPkJ1ZmZlciAgICAgICAgID0gTlVMTDsgLy8gZ3Jh
bnRlZCwgZW5zdXJlIGl0cyBudWxsDQo+ICAgICAgICAgIFNlZ21lbnQtPkxlbmd0aCAgICAgICAg
ID0gMDsgICAgLy8gZ3JhbnRlZCwgZW5zdXJlIGl0cyAwDQo+IC0gICAgICAgIFBmbiAgICAgICAg
ICAgICAgICAgICAgID0gX19QaHlzMlBmbihTR0xpc3QtPlBoeXNBZGRyKTsNCj4gDQo+IC0gICAg
ICAgIEFTU0VSVDNVKChTR0xpc3QtPlBoeXNMZW4gLyBTZWN0b3JTaXplKSwgPT0sICpTZWN0b3Jz
Tm93KTsNCj4gLSAgICAgICAgQVNTRVJUM1UoKFNHTGlzdC0+UGh5c0xlbiAmIChTZWN0b3JTaXpl
IC0gMSkpLCA9PSwgMCk7DQo+ICsgICAgICAgIEFTU0VSVDNVKChMZW5ndGggLyBTZWN0b3JTaXpl
KSwgPT0sICpTZWN0b3JzTm93KTsNCj4gICAgICB9IGVsc2Ugew0KPiAgICAgICAgICBQTURMICAg
ICAgICBNZGw7DQo+IA0KPiBAQCAtODY2LDE1ICs4MDgsMTkgQEAgUHJlcGFyZVNlZ21lbnQoDQo+
ICAgICAgICAgIE1kbC0+UHJvY2VzcyAgICAgICAgPSBOVUxMOw0KPiAgICAgICAgICBNZGwtPk1h
cHBlZFN5c3RlbVZhID0gTlVMTDsNCj4gICAgICAgICAgTWRsLT5TdGFydFZhICAgICAgICA9IE5V
TEw7DQo+IC0gICAgICAgIE1kbC0+Qnl0ZUNvdW50ICAgICAgPSBTR0xpc3QtPlBoeXNMZW47DQo+
IC0gICAgICAgIE1kbC0+Qnl0ZU9mZnNldCAgICAgPSBfX09mZnNldChTR0xpc3QtPlBoeXNBZGRy
KTsNCj4gLSAgICAgICAgU2VnbWVudC0+UGZuWzBdICAgICA9IF9fUGh5czJQZm4oU0dMaXN0LT5Q
aHlzQWRkcik7DQo+IC0NCj4gLSAgICAgICAgaWYgKFNHTGlzdC0+UGh5c0xlbiA8ICpTZWN0b3Jz
Tm93ICogU2VjdG9yU2l6ZSkgew0KPiAtICAgICAgICAgICAgU0dMaXN0R2V0KFNHTGlzdCk7DQo+
ICsgICAgICAgIE1kbC0+Qnl0ZUNvdW50ICAgICAgPSBMZW5ndGg7DQo+ICsgICAgICAgIE1kbC0+
Qnl0ZU9mZnNldCAgICAgPSBPZmZzZXQ7DQo+ICsgICAgICAgIFNlZ21lbnQtPlBmblswXSAgICAg
PSBQZm47DQo+ICsNCj4gKyAgICAgICAgaWYgKExlbmd0aCA8ICpTZWN0b3JzTm93ICogU2VjdG9y
U2l6ZSkgew0KPiArICAgICAgICAgICAgUGZuID0gQWRhcHRlckdldE5leHRTR0VudHJ5KFRhcmdl
dEdldEFkYXB0ZXIoVGFyZ2V0KSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTcmJFeHQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTGVuZ3RoLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZP
ZmZzZXQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkxlbmd0
aCk7DQo+ICAgICAgICAgICAgICBNZGwtPlNpemUgICAgICAgKz0gc2l6ZW9mKFBGTl9OVU1CRVIp
Ow0KPiAtICAgICAgICAgICAgTWRsLT5CeXRlQ291bnQgID0gTWRsLT5CeXRlQ291bnQgKyBTR0xp
c3QtPlBoeXNMZW47DQo+IC0gICAgICAgICAgICBTZWdtZW50LT5QZm5bMV0gPSBfX1BoeXMyUGZu
KFNHTGlzdC0+UGh5c0FkZHIpOw0KPiArICAgICAgICAgICAgTWRsLT5CeXRlQ291bnQgID0gTWRs
LT5CeXRlQ291bnQgKyBMZW5ndGg7DQo+ICsgICAgICAgICAgICBTZWdtZW50LT5QZm5bMV0gPSBQ
Zm47DQo+ICAgICAgICAgIH0NCj4gICNwcmFnbWEgd2FybmluZyhwb3ApDQo+IA0KPiBAQCAtOTIy
LDkgKzg2OCw5IEBAIGZhaWwxOg0KPiANCj4gIHN0YXRpYyBCT09MRUFODQo+ICBQcmVwYXJlQmxr
aWZSZWFkV3JpdGUoDQo+IC0gICAgSU4gIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdl
dCwNCj4gKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgICAgICAgICAgVGFyZ2V0LA0KPiAgICAgIElO
ICBQWEVOVkJEX1JFUVVFU1QgICAgICAgICBSZXF1ZXN0LA0KPiAtICAgIElOICBQWEVOVkJEX1NH
X0xJU1QgICAgICAgICBTR0xpc3QsDQo+ICsgICAgSU4gIFBYRU5WQkRfU1JCRVhUICAgICAgICAg
IFNyYkV4dCwNCj4gICAgICBJTiAgVUxPTkcgICAgICAgICAgICAgICAgICAgTWF4U2VnbWVudHMs
DQo+ICAgICAgSU4gIFVMT05HNjQgICAgICAgICAgICAgICAgIFNlY3RvclN0YXJ0LA0KPiAgICAg
IElOICBVTE9ORyAgICAgICAgICAgICAgICAgICBTZWN0b3JzTGVmdCwNCj4gQEAgLTk1Niw3ICs5
MDIsNyBAQCBQcmVwYXJlQmxraWZSZWFkV3JpdGUoDQo+IA0KPiAgICAgICAgICBpZiAoIVByZXBh
cmVTZWdtZW50KFRhcmdldCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWdtZW50
LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNHTGlzdCwNCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBTcmJFeHQsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UmVhZE9ubHksDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VjdG9yc0xlZnQsDQo+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlNlY3RvcnNOb3cpKQ0KPiBAQCAtMTA3NSw3
ICsxMDIxLDYgQEAgUHJlcGFyZVJlYWRXcml0ZSgNCj4gICAgICBVTE9ORzY0ICAgICAgICAgU2Vj
dG9yU3RhcnQgPSBDZGJfTG9naWNhbEJsb2NrKFNyYik7DQo+ICAgICAgVUxPTkcgICAgICAgICAg
IFNlY3RvcnNMZWZ0ID0gQ2RiX1RyYW5zZmVyQmxvY2soU3JiKTsNCj4gICAgICBMSVNUX0VOVFJZ
ICAgICAgTGlzdDsNCj4gLSAgICBYRU5WQkRfU0dfTElTVCAgU0dMaXN0Ow0KPiAgICAgIFVMT05H
ICAgICAgICAgICBEZWJ1Z0NvdW50Ow0KPiANCj4gICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9T
VEFUVVNfUEVORElORzsNCj4gQEAgLTEwODMsOSArMTAyOCw2IEBAIFByZXBhcmVSZWFkV3JpdGUo
DQo+ICAgICAgSW5pdGlhbGl6ZUxpc3RIZWFkKCZMaXN0KTsNCj4gICAgICBTcmJFeHQtPkNvdW50
ID0gMDsNCj4gDQo+IC0gICAgUnRsWmVyb01lbW9yeSgmU0dMaXN0LCBzaXplb2YoU0dMaXN0KSk7
DQo+IC0gICAgU0dMaXN0LlNHTGlzdCA9IFN0b3JQb3J0R2V0U2NhdHRlckdhdGhlckxpc3QoVGFy
Z2V0R2V0QWRhcHRlcihUYXJnZXQpLA0KPiBTcmIpOw0KPiAtDQo+ICAgICAgd2hpbGUgKFNlY3Rv
cnNMZWZ0ID4gMCkgew0KPiAgICAgICAgICBVTE9ORyAgICAgICAgICAgTWF4U2VnbWVudHM7DQo+
ICAgICAgICAgIFVMT05HICAgICAgICAgICBTZWN0b3JzRG9uZSA9IDA7DQo+IEBAIC0xMTAyLDcg
KzEwNDQsNyBAQCBQcmVwYXJlUmVhZFdyaXRlKA0KPiANCj4gICAgICAgICAgaWYgKCFQcmVwYXJl
QmxraWZSZWFkV3JpdGUoVGFyZ2V0LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBSZXF1ZXN0LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmU0dM
aXN0LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTcmJFeHQsDQo+ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heFNlZ21lbnRzLA0KPiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN0b3JTdGFydCwNCj4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU2VjdG9yc0xlZnQsDQo+IC0tDQo+IDIuOC4zDQo+IA0K
PiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4g
d2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVj
dC5vcmcNCj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlz
dGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54
ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1h
bi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue Jun 27 13:47:10 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jun 2017 13:47:10 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPqpg-0004ti-Dn; Tue, 27 Jun 2017 13:47:08 +0000
Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=3449104f4=Paul.Durrant@citrix.com>)
 id 1dPqpe-0004ta-BF
 for win-pv-devel@lists.xenproject.org; Tue, 27 Jun 2017 13:47:06 +0000
Received: from [85.158.139.211] by server-5.bemta-5.messagelabs.com id
 FA/78-02177-9D162595; Tue, 27 Jun 2017 13:47:05 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrHIsWRWlGSWpSXmKPExsWyU9JRQvdGYlC
 kwfNTmhZ/Fic6MHoc/nCFJYAxijUzLym/IoE14+mDdvaCu2sZK97un8XcwLhnNWMXIyeHhICf
 xOU7T1hAbDYBHYmlR+czgdgiAgUS39/PYwaxmQXUJK7v72LtYuTgEBbwkZjTWAVR4itxr+8uE
 0hYRMBI4vohYZAwi4CqxLMlE1hBbF4Bd4mH69eCTRQSyJI4OWU22FZOAWuJT1+vg01nFJCV+N
 K4GmqTuMStJxAXSAgISCzZc54ZwhaVePn4HyuEbSCxdek+FpC1zAKaEut36UO0KkpM6X7IDrF
 WUOLkzCcsExiFZyGZOguhYxaSjllIOhYwsqxi1ChOLSpLLdI1MtRLKspMzyjJTczM0TU0MNXL
 TS0uTkxPzUlMKtZLzs/dxAgM+3oGBsYdjHcn+x1ilORgUhLlXS0RFCnEl5SfUpmRWJwRX1Sak
 1p8iFGGg0NJglcoASgnWJSanlqRlpkDjECYtAQHj5IIb58bUJq3uCAxtzgzHSJ1ilGXY8Pq9V
 +YhFjy8vNSpcR5/UBmCIAUZZTmwY2AJYNLjLJSwryMDAwMQjwFqUW5mSWo8q8YxTkYlYR5LUG
 m8GTmlcBtegV0BBPQESzzAkCOKElESEk1MPrvfvSuZ9Zr+y/rd0yrnPic82RDxZoLz/yaklKP
 Raxff6S+fPLZ00ffbHp+8h9bcJiL+NIdu/nr1X9W/ZFOd75oNcP4wz5vuRy/50n+dbZWc765B
 B3ZbzNPde3F87ruYWvs7E2uzCi2Xh187prkOQfdC5PitO59O3Dfc3thcvSO9R4GnhERMreUWI
 ozEg21mIuKEwF5sKvLAQMAAA==
X-Env-Sender: prvs=3449104f4=Paul.Durrant@citrix.com
X-Msg-Ref: server-14.tower-206.messagelabs.com!1498571224!66479699!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 56599 invoked from network); 27 Jun 2017 13:47:04 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-14.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
 27 Jun 2017 13:47:04 -0000
X-IronPort-AV: E=Sophos;i="5.39,399,1493683200"; d="scan'208";a="48458449"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 06/10] Refactor BuildIo and StartIo calls
Thread-Index: AQHS7B9UbrgtNKzKRE6bwGi8gP/oYKI4v1gg
Date: Tue, 27 Jun 2017 13:47:03 +0000
Message-ID: <ca836ee5d5a94842aca5235376781e85@AMSPEX02CL03.citrite.net>
References: <20170623124917.13956-1-owen.smith@citrix.com>
 <20170623124917.13956-7-owen.smith@citrix.com>
In-Reply-To: <20170623124917.13956-7-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 06/10] Refactor BuildIo and StartIo calls
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAyMyBKdW5lIDIwMTcgMTM6NDkNCj4g
VG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8
b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0gg
MDYvMTBdIFJlZmFjdG9yIEJ1aWxkSW8gYW5kIFN0YXJ0SW8gY2FsbHMNCj4gDQo+IEZyb206IE93
ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93
ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCg0KUmV2aWV3ZWQtYnk6IFBhdWwgRHVy
cmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBzcmMveGVudmJkL2Fk
YXB0ZXIuYyB8ICA3MCArKysrKysrKysrKy0tLS0NCj4gIHNyYy94ZW52YmQvdGFyZ2V0LmMgIHwg
MjM2ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gLS0t
LS0NCj4gIHNyYy94ZW52YmQvdGFyZ2V0LmggIHwgIDIzICsrKystDQo+ICAzIGZpbGVzIGNoYW5n
ZWQsIDE4OSBpbnNlcnRpb25zKCspLCAxNDAgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0
IGEvc3JjL3hlbnZiZC9hZGFwdGVyLmMgYi9zcmMveGVudmJkL2FkYXB0ZXIuYw0KPiBpbmRleCAx
NGU5YWU2Li5iMGE3MzY1IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2FkYXB0ZXIuYw0KPiAr
KysgYi9zcmMveGVudmJkL2FkYXB0ZXIuYw0KPiBAQCAtMTQwNCw3ICsxNDA0LDcgQEAgQWRhcHRl
ckNvbXBsZXRlU3JiKA0KPiANCj4gICAgICBBU1NFUlQzVShTcmItPlNyYlN0YXR1cywgIT0sIFNS
Ql9TVEFUVVNfUEVORElORyk7DQo+IA0KPiAtICAgICsrQWRhcHRlci0+Q29tcGxldGVkOw0KPiAr
ICAgIEludGVybG9ja2VkSW5jcmVtZW50KChQTE9ORykmQWRhcHRlci0+Q29tcGxldGVkKTsNCj4g
DQo+ICAgICAgU3RvclBvcnROb3RpZmljYXRpb24oUmVxdWVzdENvbXBsZXRlLCBBZGFwdGVyLCBT
cmIpOw0KPiAgfQ0KPiBAQCAtMTc1Myw3ICsxNzUzLDYgQEAgQWRhcHRlckh3UmVzZXRCdXMoDQo+
ICAgICAgcmV0dXJuIFRSVUU7DQo+ICB9DQo+IA0KPiAtDQo+ICBzdGF0aWMgRk9SQ0VJTkxJTkUg
Vk9JRA0KPiAgX19BZGFwdGVyU3JiUG5wKA0KPiAgICAgIElOICBQWEVOVkJEX0FEQVBURVIgICAg
ICAgICBBZGFwdGVyLA0KPiBAQCAtMTc4MCwyNyArMTc3OSw0MCBAQCBBZGFwdGVySHdCdWlsZElv
KA0KPiAgew0KPiAgICAgIFBYRU5WQkRfQURBUFRFUiAgICAgICAgIEFkYXB0ZXIgPSBEZXZFeHQ7
DQo+ICAgICAgUFhFTlZCRF9TUkJFWFQgICAgICAgICAgU3JiRXh0ID0gU3JiLT5TcmJFeHRlbnNp
b247DQo+ICsgICAgUFhFTlZCRF9UQVJHRVQgICAgICAgICAgVGFyZ2V0Ow0KPiANCj4gICAgICBJ
bml0U3JiRXh0KFNyYik7DQo+IA0KPiArICAgIEludGVybG9ja2VkSW5jcmVtZW50KChQTE9ORykm
QWRhcHRlci0+QnVpbGRJbyk7DQo+ICAgICAgc3dpdGNoIChTcmItPkZ1bmN0aW9uKSB7DQo+ICAg
ICAgY2FzZSBTUkJfRlVOQ1RJT05fRVhFQ1VURV9TQ1NJOg0KPiAgICAgICAgICBBZGFwdGVyUHVs
bHVwU3JiKEFkYXB0ZXIsIFNyYik7DQo+IC0gICAgICAgIC8vIEludGVudGlvbmFsIGZhbGwgdGhy
b3VnaA0KPiArICAgICAgICBUYXJnZXQgPSBBZGFwdGVyR2V0VGFyZ2V0KEFkYXB0ZXIsIFNyYi0+
VGFyZ2V0SWQpOw0KPiArICAgICAgICBpZiAoVGFyZ2V0ID09IE5VTEwpDQo+ICsgICAgICAgICAg
ICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfTk9fREVWSUNFOw0KPiArICAgICAgICBlbHNl
DQo+ICsgICAgICAgICAgICBUYXJnZXRQcmVwYXJlSW8oVGFyZ2V0LCBTcmJFeHQpOw0KPiArICAg
ICAgICBicmVhazsNCj4gKw0KPiAgICAgIGNhc2UgU1JCX0ZVTkNUSU9OX1JFU0VUX0RFVklDRToN
Cj4gICAgICBjYXNlIFNSQl9GVU5DVElPTl9GTFVTSDoNCj4gICAgICBjYXNlIFNSQl9GVU5DVElP
Tl9TSFVURE9XTjoNCj4gLSAgICAgICAgKytBZGFwdGVyLT5CdWlsZElvOw0KPiAtICAgICAgICBy
ZXR1cm4gVFJVRTsNCj4gKyAgICAgICAgVGFyZ2V0ID0gQWRhcHRlckdldFRhcmdldChBZGFwdGVy
LCBTcmItPlRhcmdldElkKTsNCj4gKyAgICAgICAgaWYgKFRhcmdldCA9PSBOVUxMKQ0KPiArICAg
ICAgICAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX05PX0RFVklDRTsNCj4gKyAgICAg
ICAgZWxzZQ0KPiArICAgICAgICAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1BFTkRJ
Tkc7DQo+ICsgICAgICAgIGJyZWFrOw0KPiANCj4gLSAgICAgICAgLy8gZG9udCBwYXNzIHRvIFN0
YXJ0SW8NCj4gICAgICBjYXNlIFNSQl9GVU5DVElPTl9QTlA6DQo+ICAgICAgICAgIF9fQWRhcHRl
clNyYlBucChBZGFwdGVyLCAoUFNDU0lfUE5QX1JFUVVFU1RfQkxPQ0spU3JiKTsNCj4gICAgICAg
ICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7DQo+ICAgICAgICAgIGJyZWFr
Ow0KPiArDQo+ICAgICAgY2FzZSBTUkJfRlVOQ1RJT05fQUJPUlRfQ09NTUFORDoNCj4gICAgICAg
ICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX0FCT1JUX0ZBSUxFRDsNCj4gICAgICAgICAg
YnJlYWs7DQo+ICsNCj4gICAgICBjYXNlIFNSQl9GVU5DVElPTl9SRVNFVF9CVVM6DQo+ICAgICAg
ICAgIEFkYXB0ZXJId1Jlc2V0QnVzKEFkYXB0ZXIsIFNyYi0+UGF0aElkKTsNCj4gICAgICAgICAg
U3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7DQo+IEBAIC0xODExLDYgKzE4MjMs
OSBAQCBBZGFwdGVySHdCdWlsZElvKA0KPiAgICAgICAgICBicmVhazsNCj4gICAgICB9DQo+IA0K
PiArICAgIGlmIChTcmItPlNyYlN0YXR1cyA9PSBTUkJfU1RBVFVTX1BFTkRJTkcpDQo+ICsgICAg
ICAgIHJldHVybiBUUlVFOw0KPiArDQo+ICAgICAgQWRhcHRlckNvbXBsZXRlU3JiKEFkYXB0ZXIs
IFNyYkV4dCk7DQo+ICAgICAgcmV0dXJuIEZBTFNFOw0KPiAgfQ0KPiBAQCAtMTgyNSwyMSArMTg0
MCw0NiBAQCBBZGFwdGVySHdTdGFydElvKA0KPiAgew0KPiAgICAgIFBYRU5WQkRfQURBUFRFUiAg
ICAgICAgIEFkYXB0ZXIgPSBEZXZFeHQ7DQo+ICAgICAgUFhFTlZCRF9TUkJFWFQgICAgICAgICAg
U3JiRXh0ID0gU3JiLT5TcmJFeHRlbnNpb247DQo+ICsgICAgQk9PTEVBTiAgICAgICAgICAgICAg
ICAgV2FzUXVldWVkID0gRkFMU0U7DQo+ICAgICAgUFhFTlZCRF9UQVJHRVQgICAgICAgICAgVGFy
Z2V0Ow0KPiANCj4gICAgICBUYXJnZXQgPSBBZGFwdGVyR2V0VGFyZ2V0KEFkYXB0ZXIsIFNyYi0+
VGFyZ2V0SWQpOw0KPiAtICAgIGlmIChUYXJnZXQgPT0gTlVMTCkNCj4gLSAgICAgICAgZ290byBm
YWlsMTsNCj4gKyAgICBpZiAoVGFyZ2V0ID09IE5VTEwpIHsNCj4gKyAgICAgICAgU3JiLT5TcmJT
dGF0dXMgPSBTUkJfU1RBVFVTX05PX0RFVklDRTsNCj4gKyAgICAgICAgZ290byBkb25lOw0KPiAr
ICAgIH0NCj4gDQo+IC0gICAgKytBZGFwdGVyLT5TdGFydElvOw0KPiAtICAgIGlmIChUYXJnZXRT
dGFydElvKFRhcmdldCwgU3JiRXh0KSkNCj4gLSAgICAgICAgQWRhcHRlckNvbXBsZXRlU3JiKEFk
YXB0ZXIsIFNyYkV4dCk7DQo+ICsgICAgc3dpdGNoIChTcmItPkZ1bmN0aW9uKSB7DQo+ICsgICAg
Y2FzZSBTUkJfRlVOQ1RJT05fRVhFQ1VURV9TQ1NJOg0KPiArICAgICAgICBXYXNRdWV1ZWQgPSBU
YXJnZXRTdGFydElvKFRhcmdldCwgU3JiRXh0KTsNCj4gKyAgICAgICAgYnJlYWs7DQo+IA0KPiAt
ICAgIHJldHVybiBUUlVFOw0KPiArICAgIGNhc2UgU1JCX0ZVTkNUSU9OX1JFU0VUX0RFVklDRToN
Cj4gKyAgICAgICAgVGFyZ2V0UmVzZXQoVGFyZ2V0KTsNCj4gKyAgICAgICAgU3JiLT5TcmJTdGF0
dXMgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7DQo+ICsgICAgICAgIGJyZWFrOw0KPiANCj4gLWZhaWwx
Og0KPiAtICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19JTlZBTElEX1RBUkdFVF9JRDsN
Cj4gLSAgICBBZGFwdGVyQ29tcGxldGVTcmIoQWRhcHRlciwgU3JiRXh0KTsNCj4gKyAgICBjYXNl
IFNSQl9GVU5DVElPTl9GTFVTSDoNCj4gKyAgICAgICAgVGFyZ2V0Rmx1c2goVGFyZ2V0LCBTcmJF
eHQpOw0KPiArICAgICAgICBXYXNRdWV1ZWQgPSBUUlVFOw0KPiArICAgICAgICBicmVhazsNCj4g
Kw0KPiArICAgIGNhc2UgU1JCX0ZVTkNUSU9OX1NIVVRET1dOOg0KPiArICAgICAgICBUYXJnZXRT
aHV0ZG93bihUYXJnZXQsIFNyYkV4dCk7DQo+ICsgICAgICAgIFdhc1F1ZXVlZCA9IFRSVUU7DQo+
ICsgICAgICAgIGJyZWFrOw0KPiArDQo+ICsgICAgZGVmYXVsdDoNCj4gKyAgICAgICAgQVNTRVJU
KEZBTFNFKTsNCj4gKyAgICAgICAgYnJlYWs7DQo+ICsgICAgfQ0KPiArDQo+ICtkb25lOg0KPiAr
ICAgIC8vIGlmIFNSQiBXYXNRdWV1ZWQsIHRoZSBTUkIgd2lsbCBiZSBjb21wbGV0ZWQgd2hlbiB0
aGUgUXVldWVzIGFyZQ0KPiBwcm9jZXNzZWQNCj4gKyAgICAvLyBOb3RlOiB0aGVyZSBjb3VsZCBi
ZSBhIHJhY2UgaW4gdXBkYXRpbmcgdGhlIFNyYi0+U3JiU3RhdHVzIGZpZWxkIGlmIHRoZQ0KPiAr
ICAgIC8vICAgICAgIHByb2Nlc3Npbmcgb2YgdGhlIHF1ZXVlIGNvbXBsZXRlcyBiZWZvcmUgcmV0
dXJuaW5nIGZyb20NCj4gVGFyZ2V0U3RhcnRJbw0KPiArICAgIGlmICghV2FzUXVldWVkKQ0KPiAr
ICAgICAgICBBZGFwdGVyQ29tcGxldGVTcmIoQWRhcHRlciwgU3JiRXh0KTsNCj4gICAgICByZXR1
cm4gVFJVRTsNCj4gIH0NCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL3RhcmdldC5jIGIv
c3JjL3hlbnZiZC90YXJnZXQuYw0KPiBpbmRleCBjOWNiODAzLi5kY2Q4N2M5IDEwMDY0NA0KPiAt
LS0gYS9zcmMveGVudmJkL3RhcmdldC5jDQo+ICsrKyBiL3NyYy94ZW52YmQvdGFyZ2V0LmMNCj4g
QEAgLTE5MDYsNjAgKzE5MDYsMTI3IEBAIFRhcmdldFJlYWRDYXBhY2l0eTE2KA0KPiAgICAgIFNy
Yi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19TVUNDRVNTOw0KPiAgfQ0KPiANCj4gLQ0KPiAvLz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
PiA9PT09PT09PT09PT09PT09PT09PQ0KPiAtLy8gU3RvclBvcnQgTWV0aG9kcw0KPiAtX19jaGVj
a1JldHVybg0KPiAgc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4NCj4gLV9fVGFyZ2V0RXhlY3V0
ZVNjc2koDQo+IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQsDQo+
IC0gICAgX19pbiBQU0NTSV9SRVFVRVNUX0JMT0NLICAgICBTcmINCj4gK19fVmFsaWRhdGVTcmJG
b3JUYXJnZXQoDQo+ICsgICAgSU4gIFBYRU5WQkRfVEFSR0VUICAgICAgVGFyZ2V0LA0KPiArICAg
IElOICBQU0NTSV9SRVFVRVNUX0JMT0NLIFNyYg0KPiAgICAgICkNCj4gIHsNCj4gLSAgICBjb25z
dCBVQ0hBUiBPcGVyYXRpb24gPSBDZGJfT3BlcmF0aW9uRXgoU3JiKTsNCj4gLSAgICBQWEVOVkJE
X0RJU0tJTkZPICAgIERpc2tJbmZvID0gRnJvbnRlbmRHZXREaXNrSW5mbyhUYXJnZXQtDQo+ID5G
cm9udGVuZCk7DQo+ICsgICAgY29uc3QgVUNIQVIgICAgICAgICAgICAgT3BlcmF0aW9uID0gQ2Ri
X09wZXJhdGlvbkV4KFNyYik7DQo+IA0KPiAtICAgIGlmIChEaXNrSW5mby0+RGlza0luZm8gJiBW
RElTS19SRUFET05MWSkgew0KPiAtICAgICAgICBUcmFjZSgiVGFyZ2V0WyVkXSA6ICglMDh4KSBS
ZWFkLU9ubHksIGZhaWwgU1JCICglMDJ4OiVzKVxuIiwNCj4gVGFyZ2V0R2V0VGFyZ2V0SWQoVGFy
Z2V0KSwNCj4gLSAgICAgICAgICAgICAgICBEaXNrSW5mby0+RGlza0luZm8sIE9wZXJhdGlvbiwg
Q2RiX09wZXJhdGlvbk5hbWUoT3BlcmF0aW9uKSk7DQo+IC0gICAgICAgIFNyYi0+U2NzaVN0YXR1
cyA9IDB4NDA7IC8vIFNDU0lfQUJPUlQNCj4gLSAgICAgICAgcmV0dXJuIFRSVUU7DQo+ICsgICAg
aWYgKFRhcmdldCA9PSBOVUxMKSB7DQo+ICsgICAgICAgIEVycm9yKCJJbnZhbGlkIFRhcmdldChO
VUxMKSAoJTAyeDolcylcbiIsDQo+ICsgICAgICAgICAgICAgIE9wZXJhdGlvbiwNCj4gKyAgICAg
ICAgICAgICAgQ2RiX09wZXJhdGlvbk5hbWUoT3BlcmF0aW9uKSk7DQo+ICsgICAgICAgIFNyYi0+
U3JiU3RhdHVzID0gU1JCX1NUQVRVU19JTlZBTElEX1RBUkdFVF9JRDsNCj4gKyAgICAgICAgcmV0
dXJuIEZBTFNFOw0KPiArICAgIH0NCj4gKw0KPiArICAgIGlmIChTcmItPlBhdGhJZCAhPSAwKSB7
DQo+ICsgICAgICAgIEVycm9yKCJUYXJnZXRbJWRdIDogSW52YWxpZCBQYXRoSWQoJWQpICglMDJ4
OiVzKVxuIiwNCj4gKyAgICAgICAgICAgICAgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwNCj4g
KyAgICAgICAgICAgICAgU3JiLT5QYXRoSWQsDQo+ICsgICAgICAgICAgICAgIE9wZXJhdGlvbiwN
Cj4gKyAgICAgICAgICAgICAgQ2RiX09wZXJhdGlvbk5hbWUoT3BlcmF0aW9uKSk7DQo+ICsgICAg
ICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19JTlZBTElEX1BBVEhfSUQ7DQo+ICsgICAg
ICAgIHJldHVybiBGQUxTRTsNCj4gICAgICB9DQo+IA0KPiAtICAgIC8vIGlkZWE6IGNoZWNrIHBk
byBzdGF0ZSBoZXJlLiBzdGlsbCBwdXNoIHRvIGZyZXNoc3Jicw0KPiArICAgIGlmIChTcmItPkx1
biAhPSAwKSB7DQo+ICsgICAgICAgIEVycm9yKCJUYXJnZXRbJWRdIDogSW52YWxpZCBMdW4oJWQp
ICglMDJ4OiVzKVxuIiwNCj4gKyAgICAgICAgICAgICAgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0
KSwNCj4gKyAgICAgICAgICAgICAgU3JiLT5MdW4sDQo+ICsgICAgICAgICAgICAgIE9wZXJhdGlv
biwNCj4gKyAgICAgICAgICAgICAgQ2RiX09wZXJhdGlvbk5hbWUoT3BlcmF0aW9uKSk7DQo+ICsg
ICAgICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19JTlZBTElEX0xVTjsNCj4gKyAgICAg
ICAgcmV0dXJuIEZBTFNFOw0KPiArICAgIH0NCj4gKw0KPiArICAgIGlmIChUYXJnZXRJc01pc3Np
bmcoVGFyZ2V0KSkgew0KPiArICAgICAgICBFcnJvcigiVGFyZ2V0WyVkXSA6ICVzICglcykgKCUw
Mng6JXMpXG4iLA0KPiArICAgICAgICAgICAgICBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLA0K
PiArICAgICAgICAgICAgICBUYXJnZXQtPk1pc3NpbmcgPyAiTUlTU0lORyIgOiAiTk9UX01JU1NJ
TkciLA0KPiArICAgICAgICAgICAgICBUYXJnZXQtPlJlYXNvbiwNCj4gKyAgICAgICAgICAgICAg
T3BlcmF0aW9uLA0KPiArICAgICAgICAgICAgICBDZGJfT3BlcmF0aW9uTmFtZShPcGVyYXRpb24p
KTsNCj4gKyAgICAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX05PX0RFVklDRTsNCj4g
KyAgICAgICAgcmV0dXJuIEZBTFNFOw0KPiArICAgIH0NCj4gKw0KPiArICAgIHJldHVybiBUUlVF
Ow0KPiArfQ0KPiArDQo+ICtWT0lEDQo+ICtUYXJnZXRQcmVwYXJlSW8oDQo+ICsgICAgSU4gIFBY
RU5WQkRfVEFSR0VUICBUYXJnZXQsDQo+ICsgICAgSU4gIFBYRU5WQkRfU1JCRVhUICBTcmJFeHQN
Cj4gKyAgICApDQo+ICt7DQo+ICsgICAgUFNDU0lfUkVRVUVTVF9CTE9DSyBTcmIgPSBTcmJFeHQt
PlNyYjsNCj4gKw0KPiArICAgIGlmICghX19WYWxpZGF0ZVNyYkZvclRhcmdldChUYXJnZXQsIFNy
YikpDQo+ICsgICAgICAgIHJldHVybjsNCj4gKw0KPiArICAgIFNyYi0+U3JiU3RhdHVzID0gU1JC
X1NUQVRVU19QRU5ESU5HOw0KPiArfQ0KPiArDQo+ICtCT09MRUFODQo+ICtUYXJnZXRTdGFydElv
KA0KPiArICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0LA0KPiArICAgIElOICBQWEVOVkJE
X1NSQkVYVCAgU3JiRXh0DQo+ICsgICAgKQ0KPiArew0KPiArICAgIFBTQ1NJX1JFUVVFU1RfQkxP
Q0sgU3JiID0gU3JiRXh0LT5TcmI7DQo+ICsgICAgY29uc3QgVUNIQVIgICAgICAgICBPcGVyYXRp
b24gPSBDZGJfT3BlcmF0aW9uRXgoU3JiKTsNCj4gKyAgICBCT09MRUFOICAgICAgICAgICAgIFdh
c1F1ZXVlZCA9IEZBTFNFOw0KPiArDQo+ICsgICAgQVNTRVJUKF9fVmFsaWRhdGVTcmJGb3JUYXJn
ZXQoVGFyZ2V0LCBTcmIpKTsNCj4gKw0KPiAgICAgIHN3aXRjaCAoT3BlcmF0aW9uKSB7DQo+ICAg
ICAgY2FzZSBTQ1NJT1BfUkVBRDoNCj4gICAgICBjYXNlIFNDU0lPUF9XUklURToNCj4gLSAgICAg
ICAgcmV0dXJuIFRhcmdldFJlYWRXcml0ZShUYXJnZXQsIFNyYik7DQo+ICsgICAgICAgIGlmICgh
VGFyZ2V0UmVhZFdyaXRlKFRhcmdldCwgU3JiKSkNCj4gKyAgICAgICAgICAgIFdhc1F1ZXVlZCA9
IFRSVUU7DQo+ICAgICAgICAgIGJyZWFrOw0KPiANCj4gLSAgICBjYXNlIFNDU0lPUF9TWU5DSFJP
TklaRV9DQUNIRToNCj4gLSAgICAgICAgcmV0dXJuIFRhcmdldFN5bmNDYWNoZShUYXJnZXQsIFNy
Yik7DQo+ICsgICAgY2FzZSBTQ1NJT1BfVU5NQVA6DQo+ICsgICAgICAgIGlmICghVGFyZ2V0VW5t
YXAoVGFyZ2V0LCBTcmIpKQ0KPiArICAgICAgICAgICAgV2FzUXVldWVkID0gVFJVRTsNCj4gICAg
ICAgICAgYnJlYWs7DQo+IA0KPiAtICAgIGNhc2UgU0NTSU9QX1VOTUFQOg0KPiAtICAgICAgICBy
ZXR1cm4gVGFyZ2V0VW5tYXAoVGFyZ2V0LCBTcmIpOw0KPiArICAgIGNhc2UgU0NTSU9QX1NZTkNI
Uk9OSVpFX0NBQ0hFOg0KPiArICAgICAgICBpZiAoIVRhcmdldFN5bmNDYWNoZShUYXJnZXQsIFNy
YikpDQo+ICsgICAgICAgICAgICBXYXNRdWV1ZWQgPSBUUlVFOw0KPiAgICAgICAgICBicmVhazsN
Cj4gDQo+ICAgICAgY2FzZSBTQ1NJT1BfSU5RVUlSWToNCj4gICAgICAgICAgQWRhcHRlclNldERl
dmljZVF1ZXVlRGVwdGgoVGFyZ2V0R2V0QWRhcHRlcihUYXJnZXQpLA0KPiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpKTsNCj4gLSAg
ICAgICAgUGRvSW5xdWlyeShUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLCBGcm9udGVuZEdldElu
cXVpcnkoVGFyZ2V0LQ0KPiA+RnJvbnRlbmQpLCBTcmIpOw0KPiArICAgICAgICBQZG9JbnF1aXJ5
KFRhcmdldEdldFRhcmdldElkKFRhcmdldCksDQo+ICsgICAgICAgICAgICAgICAgICAgRnJvbnRl
bmRHZXRJbnF1aXJ5KFRhcmdldC0+RnJvbnRlbmQpLA0KPiArICAgICAgICAgICAgICAgICAgIFNy
Yik7DQo+ICAgICAgICAgIGJyZWFrOw0KPiArDQo+ICAgICAgY2FzZSBTQ1NJT1BfTU9ERV9TRU5T
RToNCj4gICAgICAgICAgVGFyZ2V0TW9kZVNlbnNlKFRhcmdldCwgU3JiKTsNCj4gICAgICAgICAg
YnJlYWs7DQo+ICsNCj4gICAgICBjYXNlIFNDU0lPUF9SRVFVRVNUX1NFTlNFOg0KPiAgICAgICAg
ICBUYXJnZXRSZXF1ZXN0U2Vuc2UoVGFyZ2V0LCBTcmIpOw0KPiAgICAgICAgICBicmVhazsNCj4g
Kw0KPiAgICAgIGNhc2UgU0NTSU9QX1JFUE9SVF9MVU5TOg0KPiAgICAgICAgICBUYXJnZXRSZXBv
cnRMdW5zKFRhcmdldCwgU3JiKTsNCj4gICAgICAgICAgYnJlYWs7DQo+ICsNCj4gICAgICBjYXNl
IFNDU0lPUF9SRUFEX0NBUEFDSVRZOg0KPiAgICAgICAgICBUYXJnZXRSZWFkQ2FwYWNpdHkoVGFy
Z2V0LCBTcmIpOw0KPiAgICAgICAgICBicmVhazsNCj4gKw0KPiAgICAgIGNhc2UgU0NTSU9QX1JF
QURfQ0FQQUNJVFkxNjoNCj4gICAgICAgICAgVGFyZ2V0UmVhZENhcGFjaXR5MTYoVGFyZ2V0LCBT
cmIpOw0KPiAgICAgICAgICBicmVhazsNCj4gKw0KPiAgICAgIGNhc2UgU0NTSU9QX01FRElVTV9S
RU1PVkFMOg0KPiAgICAgIGNhc2UgU0NTSU9QX1RFU1RfVU5JVF9SRUFEWToNCj4gICAgICBjYXNl
IFNDU0lPUF9SRVNFUlZFX1VOSVQ6DQo+IEBAIC0xOTY4LDEzNiArMjAzNSw2MSBAQCBfX1Rhcmdl
dEV4ZWN1dGVTY3NpKA0KPiAgICAgIGNhc2UgU0NTSU9QX1JFTEVBU0VfVU5JVDEwOg0KPiAgICAg
IGNhc2UgU0NTSU9QX1ZFUklGWToNCj4gICAgICBjYXNlIFNDU0lPUF9WRVJJRlkxNjoNCj4gLSAg
ICAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX1NVQ0NFU1M7DQo+IC0gICAgICAgIGJy
ZWFrOw0KPiAgICAgIGNhc2UgU0NTSU9QX1NUQVJUX1NUT1BfVU5JVDoNCj4gLSAgICAgICAgVHJh
Y2UoIlRhcmdldFslZF0gOiBTdGFydC9TdG9wIFVuaXQgKCUwMlgpXG4iLA0KPiBUYXJnZXRHZXRU
YXJnZXRJZChUYXJnZXQpLCBTcmItPkNkYls0XSk7DQo+ICAgICAgICAgIFNyYi0+U3JiU3RhdHVz
ID0gU1JCX1NUQVRVU19TVUNDRVNTOw0KPiAgICAgICAgICBicmVhazsNCj4gKw0KPiAgICAgIGRl
ZmF1bHQ6DQo+IC0gICAgICAgIFRyYWNlKCJUYXJnZXRbJWRdIDogVW5zdXBwb3J0ZWQgQ0RCICgl
MDJ4OiVzKVxuIiwNCj4gVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwgT3BlcmF0aW9uLCBDZGJf
T3BlcmF0aW9uTmFtZShPcGVyYXRpb24pKTsNCj4gKyAgICAgICAgVHJhY2UoIlRhcmdldFslZF0g
OiBVbnN1cHBvcnRlZCBDREIgKCUwMng6JXMpXG4iLA0KPiArICAgICAgICAgICAgICBUYXJnZXRH
ZXRUYXJnZXRJZChUYXJnZXQpLA0KPiArICAgICAgICAgICAgICBPcGVyYXRpb24sDQo+ICsgICAg
ICAgICAgICAgIENkYl9PcGVyYXRpb25OYW1lKE9wZXJhdGlvbikpOw0KPiArICAgICAgICBTcmIt
PlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfSU5WQUxJRF9SRVFVRVNUOw0KPiAgICAgICAgICBicmVh
azsNCj4gICAgICB9DQo+IC0gICAgcmV0dXJuIFRSVUU7DQo+IC19DQo+IC0NCj4gLXN0YXRpYyBG
T1JDRUlOTElORSBCT09MRUFODQo+IC1fX1RhcmdldFF1ZXVlU2h1dGRvd24oDQo+IC0gICAgX19p
biBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQsDQo+IC0gICAgX19pbiBQU0NTSV9S
RVFVRVNUX0JMT0NLICAgICBTcmINCj4gLSAgICApDQo+IC17DQo+IC0gICAgUFhFTlZCRF9TUkJF
WFQgICAgICBTcmJFeHQgPSBHZXRTcmJFeHQoU3JiKTsNCj4gLSAgICBQWEVOVkJEX05PVElGSUVS
ICAgIE5vdGlmaWVyID0gRnJvbnRlbmRHZXROb3RpZmllcihUYXJnZXQtPkZyb250ZW5kKTsNCj4g
LQ0KPiAtICAgIFF1ZXVlQXBwZW5kKCZUYXJnZXQtPlNodXRkb3duU3JicywgJlNyYkV4dC0+RW50
cnkpOw0KPiAtICAgIE5vdGlmaWVyS2ljayhOb3RpZmllcik7DQo+IC0NCj4gLSAgICByZXR1cm4g
RkFMU0U7DQo+IC19DQo+IC0NCj4gLXN0YXRpYyBGT1JDRUlOTElORSBCT09MRUFODQo+IC1fX1Rh
cmdldFJlc2V0KA0KPiAtICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0
LA0KPiAtICAgIF9faW4gUFNDU0lfUkVRVUVTVF9CTE9DSyAgICAgU3JiDQo+IC0gICAgKQ0KPiAt
ew0KPiAtICAgIFZlcmJvc2UoIlRhcmdldFsldV0gPT09PT5cbiIsIFRhcmdldEdldFRhcmdldElk
KFRhcmdldCkpOw0KPiAtDQo+IC0gICAgVGFyZ2V0UmVzZXQoVGFyZ2V0KTsNCj4gLSAgICBTcmIt
PlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfU1VDQ0VTUzsNCj4gLQ0KPiAtICAgIFZlcmJvc2UoIlRh
cmdldFsldV0gPD09PT1cbiIsIFRhcmdldEdldFRhcmdldElkKFRhcmdldCkpOw0KPiAtICAgIHJl
dHVybiBUUlVFOw0KPiArICAgIHJldHVybiBXYXNRdWV1ZWQ7DQo+ICB9DQo+IA0KPiAtX19jaGVj
a1JldHVybg0KPiAtc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4NCj4gLV9fVmFsaWRhdGVTcmJG
b3JUYXJnZXQoDQo+IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQs
DQo+IC0gICAgX19pbiBQU0NTSV9SRVFVRVNUX0JMT0NLICAgICBTcmINCj4gK1ZPSUQNCj4gK1Rh
cmdldFJlc2V0KA0KPiArICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0DQo+ICAgICAgKQ0K
PiAgew0KPiAtICAgIGNvbnN0IFVDSEFSIE9wZXJhdGlvbiA9IENkYl9PcGVyYXRpb25FeChTcmIp
Ow0KPiAtDQo+IC0gICAgaWYgKFRhcmdldCA9PSBOVUxMKSB7DQo+IC0gICAgICAgIEVycm9yKCJJ
bnZhbGlkIFRhcmdldChOVUxMKSAoJTAyeDolcylcbiIsDQo+IC0gICAgICAgICAgICAgICAgT3Bl
cmF0aW9uLCBDZGJfT3BlcmF0aW9uTmFtZShPcGVyYXRpb24pKTsNCj4gLSAgICAgICAgU3JiLT5T
cmJTdGF0dXMgPSBTUkJfU1RBVFVTX0lOVkFMSURfVEFSR0VUX0lEOw0KPiAtICAgICAgICByZXR1
cm4gRkFMU0U7DQo+IC0gICAgfQ0KPiArICAgIFZlcmJvc2UoIlsldV0gPT09PT0+XG4iLCBUYXJn
ZXRHZXRUYXJnZXRJZChUYXJnZXQpKTsNCj4gDQo+IC0gICAgaWYgKFNyYi0+UGF0aElkICE9IDAp
IHsNCj4gLSAgICAgICAgRXJyb3IoIlRhcmdldFslZF0gOiBJbnZhbGlkIFBhdGhJZCglZCkgKCUw
Mng6JXMpXG4iLA0KPiAtICAgICAgICAgICAgICAgIFRhcmdldEdldFRhcmdldElkKFRhcmdldCks
IFNyYi0+UGF0aElkLCBPcGVyYXRpb24sDQo+IENkYl9PcGVyYXRpb25OYW1lKE9wZXJhdGlvbikp
Ow0KPiAtICAgICAgICBTcmItPlNyYlN0YXR1cyA9IFNSQl9TVEFUVVNfSU5WQUxJRF9QQVRIX0lE
Ow0KPiAtICAgICAgICByZXR1cm4gRkFMU0U7DQo+IC0gICAgfQ0KPiArICAgIF9fVGFyZ2V0UGF1
c2VEYXRhUGF0aChUYXJnZXQsIFRSVUUpOw0KPiANCj4gLSAgICBpZiAoU3JiLT5MdW4gIT0gMCkg
ew0KPiAtICAgICAgICBFcnJvcigiVGFyZ2V0WyVkXSA6IEludmFsaWQgTHVuKCVkKSAoJTAyeDol
cylcbiIsDQo+IC0gICAgICAgICAgICAgICAgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwgU3Ji
LT5MdW4sIE9wZXJhdGlvbiwNCj4gQ2RiX09wZXJhdGlvbk5hbWUoT3BlcmF0aW9uKSk7DQo+IC0g
ICAgICAgIFNyYi0+U3JiU3RhdHVzID0gU1JCX1NUQVRVU19JTlZBTElEX0xVTjsNCj4gLSAgICAg
ICAgcmV0dXJuIEZBTFNFOw0KPiArICAgIGlmIChRdWV1ZUNvdW50KCZUYXJnZXQtPlN1Ym1pdHRl
ZFJlcXMpKSB7DQo+ICsgICAgICAgIEVycm9yKCJUYXJnZXRbJWRdIDogYmFja2VuZCBoYXMgJXUg
b3V0c3RhbmRpbmcgcmVxdWVzdHMgYWZ0ZXIgYQ0KPiBUYXJnZXRSZXNldFxuIiwNCj4gKyAgICAg
ICAgICAgICAgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwNCj4gKyAgICAgICAgICAgICAgUXVl
dWVDb3VudCgmVGFyZ2V0LT5TdWJtaXR0ZWRSZXFzKSk7DQo+ICAgICAgfQ0KPiANCj4gLSAgICBp
ZiAoVGFyZ2V0SXNNaXNzaW5nKFRhcmdldCkpIHsNCj4gLSAgICAgICAgRXJyb3IoIlRhcmdldFsl
ZF0gOiAlcyAoJXMpICglMDJ4OiVzKVxuIiwNCj4gLSAgICAgICAgICAgICAgICBUYXJnZXRHZXRU
YXJnZXRJZChUYXJnZXQpLCBUYXJnZXQtPk1pc3NpbmcgPyAiTUlTU0lORyIgOg0KPiAiTk9UX01J
U1NJTkciLCBUYXJnZXQtPlJlYXNvbiwgT3BlcmF0aW9uLA0KPiBDZGJfT3BlcmF0aW9uTmFtZShP
cGVyYXRpb24pKTsNCj4gLSAgICAgICAgU3JiLT5TcmJTdGF0dXMgPSBTUkJfU1RBVFVTX05PX0RF
VklDRTsNCj4gLSAgICAgICAgcmV0dXJuIEZBTFNFOw0KPiAtICAgIH0NCj4gKyAgICBfX1Rhcmdl
dFVucGF1c2VEYXRhUGF0aChUYXJnZXQpOw0KPiANCj4gLSAgICByZXR1cm4gVFJVRTsNCj4gKyAg
ICBWZXJib3NlKCJbJXVdIDw9PT09PVxuIiwgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSk7DQo+
ICB9DQo+IA0KPiAtQk9PTEVBTg0KPiAtVGFyZ2V0U3RhcnRJbygNCj4gK1ZPSUQNCj4gK1Rhcmdl
dEZsdXNoKA0KPiAgICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0LA0KPiAgICAgIElOICBQ
WEVOVkJEX1NSQkVYVCAgU3JiRXh0DQo+ICAgICAgKQ0KPiAgew0KPiAtICAgIFBTQ1NJX1JFUVVF
U1RfQkxPQ0sgU3JiID0gU3JiRXh0LT5TcmI7DQo+IC0NCj4gLSAgICBpZiAoIV9fVmFsaWRhdGVT
cmJGb3JUYXJnZXQoVGFyZ2V0LCBTcmIpKQ0KPiAtICAgICAgICByZXR1cm4gVFJVRTsNCj4gLQ0K
PiAtICAgIHN3aXRjaCAoU3JiLT5GdW5jdGlvbikgew0KPiAtICAgIGNhc2UgU1JCX0ZVTkNUSU9O
X0VYRUNVVEVfU0NTSToNCj4gLSAgICAgICAgcmV0dXJuIF9fVGFyZ2V0RXhlY3V0ZVNjc2koVGFy
Z2V0LCBTcmIpOw0KPiAtDQo+IC0gICAgY2FzZSBTUkJfRlVOQ1RJT05fUkVTRVRfREVWSUNFOg0K
PiAtICAgICAgICByZXR1cm4gX19UYXJnZXRSZXNldChUYXJnZXQsIFNyYik7DQo+IC0NCj4gLSAg
ICBjYXNlIFNSQl9GVU5DVElPTl9GTFVTSDoNCj4gLSAgICBjYXNlIFNSQl9GVU5DVElPTl9TSFVU
RE9XTjoNCj4gLSAgICAgICAgcmV0dXJuIF9fVGFyZ2V0UXVldWVTaHV0ZG93bihUYXJnZXQsIFNy
Yik7DQo+IC0NCj4gLSAgICBkZWZhdWx0Og0KPiAtICAgICAgICByZXR1cm4gVFJVRTsNCj4gLSAg
ICB9DQo+ICsgICAgUXVldWVBcHBlbmQoJlRhcmdldC0+U2h1dGRvd25TcmJzLCAmU3JiRXh0LT5F
bnRyeSk7DQo+ICsgICAgTm90aWZpZXJLaWNrKEZyb250ZW5kR2V0Tm90aWZpZXIoVGFyZ2V0LT5G
cm9udGVuZCkpOw0KPiAgfQ0KPiANCj4gIFZPSUQNCj4gLVRhcmdldFJlc2V0KA0KPiAtICAgIF9f
aW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0DQo+ICtUYXJnZXRTaHV0ZG93bigN
Cj4gKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldCwNCj4gKyAgICBJTiAgUFhFTlZCRF9T
UkJFWFQgIFNyYkV4dA0KPiAgICAgICkNCj4gIHsNCj4gLSAgICBUcmFjZSgiVGFyZ2V0WyVkXSA9
PT09PiAoSXJxbD0lZClcbiIsIFRhcmdldEdldFRhcmdldElkKFRhcmdldCksDQo+IEtlR2V0Q3Vy
cmVudElycWwoKSk7DQo+IC0NCj4gLSAgICBfX1RhcmdldFBhdXNlRGF0YVBhdGgoVGFyZ2V0LCBU
UlVFKTsNCj4gLQ0KPiAtICAgIGlmIChRdWV1ZUNvdW50KCZUYXJnZXQtPlN1Ym1pdHRlZFJlcXMp
KSB7DQo+IC0gICAgICAgIEVycm9yKCJUYXJnZXRbJWRdIDogYmFja2VuZCBoYXMgJXUgb3V0c3Rh
bmRpbmcgcmVxdWVzdHMgYWZ0ZXIgYQ0KPiBUYXJnZXRSZXNldFxuIiwNCj4gLSAgICAgICAgICAg
ICAgICBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLCBRdWV1ZUNvdW50KCZUYXJnZXQtDQo+ID5T
dWJtaXR0ZWRSZXFzKSk7DQo+IC0gICAgfQ0KPiAtDQo+IC0gICAgX19UYXJnZXRVbnBhdXNlRGF0
YVBhdGgoVGFyZ2V0KTsNCj4gLQ0KPiAtICAgIFRyYWNlKCJUYXJnZXRbJWRdIDw9PT09IChJcnFs
PSVkKVxuIiwgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwNCj4gS2VHZXRDdXJyZW50SXJxbCgp
KTsNCj4gKyAgICBRdWV1ZUFwcGVuZCgmVGFyZ2V0LT5TaHV0ZG93blNyYnMsICZTcmJFeHQtPkVu
dHJ5KTsNCj4gKyAgICBOb3RpZmllcktpY2soRnJvbnRlbmRHZXROb3RpZmllcihUYXJnZXQtPkZy
b250ZW5kKSk7DQo+ICB9DQo+IA0KPiAtDQo+ICBWT0lEDQo+ICBUYXJnZXRTcmJQbnAoDQo+ICAg
ICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQsDQo+IGRpZmYgLS1naXQg
YS9zcmMveGVudmJkL3RhcmdldC5oIGIvc3JjL3hlbnZiZC90YXJnZXQuaA0KPiBpbmRleCA2N2I2
MzE5Li44ODA4NDYwIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3RhcmdldC5oDQo+ICsrKyBi
L3NyYy94ZW52YmQvdGFyZ2V0LmgNCj4gQEAgLTE1NiwxMCArMTU2LDEwIEBAIFRhcmdldFBvc3RS
ZXN1bWUoDQo+ICAgICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQNCj4g
ICAgICApOw0KPiANCj4gLS8vIFN0b3JQb3J0IE1ldGhvZHMNCj4gIGV4dGVybiBWT0lEDQo+IC1U
YXJnZXRSZXNldCgNCj4gLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdl
dA0KPiArVGFyZ2V0UHJlcGFyZUlvKA0KPiArICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0
LA0KPiArICAgIElOICBQWEVOVkJEX1NSQkVYVCAgU3JiRXh0DQo+ICAgICAgKTsNCj4gDQo+ICBl
eHRlcm4gQk9PTEVBTg0KPiBAQCAtMTY5LDYgKzE2OSwyMyBAQCBUYXJnZXRTdGFydElvKA0KPiAg
ICAgICk7DQo+IA0KPiAgZXh0ZXJuIFZPSUQNCj4gK1RhcmdldFJlc2V0KA0KPiArICAgIElOICBQ
WEVOVkJEX1RBUkdFVCAgVGFyZ2V0DQo+ICsgICAgKTsNCj4gKw0KPiArZXh0ZXJuIFZPSUQNCj4g
K1RhcmdldEZsdXNoKA0KPiArICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0LA0KPiArICAg
IElOICBQWEVOVkJEX1NSQkVYVCAgU3JiRXh0DQo+ICsgICAgKTsNCj4gKw0KPiArZXh0ZXJuIFZP
SUQNCj4gK1RhcmdldFNodXRkb3duKA0KPiArICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0
LA0KPiArICAgIElOICBQWEVOVkJEX1NSQkVYVCAgU3JiRXh0DQo+ICsgICAgKTsNCj4gKw0KPiAr
ZXh0ZXJuIFZPSUQNCj4gIFRhcmdldFNyYlBucCgNCj4gICAgICBfX2luIFBYRU5WQkRfVEFSR0VU
ICAgICAgICAgICAgIFRhcmdldCwNCj4gICAgICBfX2luIFBTQ1NJX1BOUF9SRVFVRVNUX0JMT0NL
IFNyYg0KPiAtLQ0KPiAyLjguMw0KPiANCj4gDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gd2lu
LXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHBzOi8vbGlzdHMueGVucHJvamVj
dC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA0KX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxpbmcg
bGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w
cm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jun 27 13:57:34 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jun 2017 13:57:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPqzm-0005kB-DM; Tue, 27 Jun 2017 13:57:34 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=3449104f4=Paul.Durrant@citrix.com>)
 id 1dPqzk-0005k5-V0
 for win-pv-devel@lists.xenproject.org; Tue, 27 Jun 2017 13:57:33 +0000
Received: from [85.158.143.35] by server-10.bemta-6.messagelabs.com id
 CF/9D-03613-C4462595; Tue, 27 Jun 2017 13:57:32 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrPIsWRWlGSWpSXmKPExsWyU9JRQtcrJSj
 SYPZmA4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCaMevlA7aCk71MFS/efWdtYOzoYupi5OCQEPCT
 WNWb0cXIycEmoCOx9Oh8JhBbRKBA4vv7ecwgNrOAmsT1/V2sILawgLXEr7erWSBqbCTubZ4DV
 W8ksfzpCbB6FgFViZ2d19hBbF4Bd4n1PcsZQWwhgSyJxW8ugsU5geb8ffkVbA6jgKzEl8bVUL
 vEJW49gbhBQkBAYsme88wQtqjEy8f/WCFsA4mtS/exgJzPLKApsX6XPkSrosSU7odQawUlTs5
 8wjKBUXgWkqmzEDpmIemYhaRjASPLKkaN4tSistQiXWNjvaSizPSMktzEzBxdQwMzvdzU4uLE
 9NScxKRiveT83E2MwMBnAIIdjDvXBx5ilORgUhLlXS0RFCnEl5SfUpmRWJwRX1Sak1p8iFGGg
 0NJgvdRElBOsCg1PbUiLTMHGIMwaQkOHiUR3j43oDRvcUFibnFmOkTqFKMux4bV678wCbHk5e
 elSonzGiQDFQmAFGWU5sGNgKWDS4yyUsK8jEBHCfEUpBblZpagyr9iFOdgVBLmvQRyCU9mXgn
 cpldARzABHcEyLwDkiJJEhJRUAyPXm+fykaaG4vJu9VM23azjtf6Q/uyPjr2E+KLzH6sPbV1V
 ukJhCc/0nVw3mBysdXgu2IXp6qz57LNq+f6K4y9shD2f75Iqbm18ui+hTPH3eW0u+cZEp7Ils
 35FB++Tb5LyTVt2ODr+s+m6wGWb3f/FXv2wgEH3WmmVe4tQr66ghX783u4tG5RYijMSDbWYi4
 oTAeO4gzwCAwAA
X-Env-Sender: prvs=3449104f4=Paul.Durrant@citrix.com
X-Msg-Ref: server-5.tower-21.messagelabs.com!1498571849!67894557!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 54534 invoked from network); 27 Jun 2017 13:57:30 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 27 Jun 2017 13:57:30 -0000
X-IronPort-AV: E=Sophos;i="5.39,399,1493683200"; d="scan'208";a="48459233"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 07/10] Refactor target.c
Thread-Index: AQHS7B9zrD5hWqv+pkKEBnIZPG+YhaI4wkVw
Date: Tue, 27 Jun 2017 13:57:28 +0000
Message-ID: <6d6b5cac07d6474dbe6111444c0c5644@AMSPEX02CL03.citrite.net>
References: <20170623124917.13956-1-owen.smith@citrix.com>
 <20170623124917.13956-8-owen.smith@citrix.com>
In-Reply-To: <20170623124917.13956-8-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 07/10] Refactor target.c
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAyMyBKdW5lIDIwMTcgMTM6NDkNCj4g
VG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8
b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0gg
MDcvMTBdIFJlZmFjdG9yIHRhcmdldC5jDQo+IA0KPiBGcm9tOiBPd2VuIFNtaXRoIDxvd2VuLnNt
aXRoQGNpdHJpeC5jb20+DQo+IA0KPiAqIEFkZHMgcHJvcGVydHkgYWNjZXNzb3JzDQo+ICogTW92
ZXMgUE5QIFNSQiBoYW5kbGVyIHRvIGFkYXB0ZXIuYw0KPiAqIFN0cmVhbWxpbmVzIGhlYWRlcg0K
PiANCj4gU2lnbmVkLW9mZi1ieTogT3dlbiBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPg0K
DQpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4NCg0K
PiAtLS0NCj4gIHNyYy94ZW52YmQvYWRhcHRlci5jICB8ICAyNyArKystDQo+ICBzcmMveGVudmJk
L2Zyb250ZW5kLmMgfCAgIDEgKw0KPiAgc3JjL3hlbnZiZC9ncmFudGVyLmMgIHwgICAxICsNCj4g
IHNyYy94ZW52YmQvdGFyZ2V0LmMgICB8IDMzOCArKysrKysrKysrKysrKysrKysrKystLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLS0NCj4gIHNyYy94ZW52YmQvdGFyZ2V0LmggICB8IDEw
MiArKysrKysrLS0tLS0tLS0NCj4gIDUgZmlsZXMgY2hhbmdlZCwgMjA1IGluc2VydGlvbnMoKyks
IDI2NCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2FkYXB0ZXIu
YyBiL3NyYy94ZW52YmQvYWRhcHRlci5jDQo+IGluZGV4IGIwYTczNjUuLjY1OWRkMjIgMTAwNjQ0
DQo+IC0tLSBhL3NyYy94ZW52YmQvYWRhcHRlci5jDQo+ICsrKyBiL3NyYy94ZW52YmQvYWRhcHRl
ci5jDQo+IEBAIC0xNzU5LDEzICsxNzU5LDI4IEBAIF9fQWRhcHRlclNyYlBucCgNCj4gICAgICBJ
TiAgUFNDU0lfUE5QX1JFUVVFU1RfQkxPQ0sgU3JiDQo+ICAgICAgKQ0KPiAgew0KPiAtICAgIGlm
ICghKFNyYi0+U3JiUG5QRmxhZ3MgJiBTUkJfUE5QX0ZMQUdTX0FEQVBURVJfUkVRVUVTVCkpIHsN
Cj4gLSAgICAgICAgUFhFTlZCRF9UQVJHRVQgICAgICAgICAgVGFyZ2V0Ow0KPiArICAgIFBYRU5W
QkRfVEFSR0VUICAgICAgICAgICAgICBUYXJnZXQ7DQo+IA0KPiAtICAgICAgICBUYXJnZXQgPSBB
ZGFwdGVyR2V0VGFyZ2V0KEFkYXB0ZXIsIFNyYi0+VGFyZ2V0SWQpOw0KPiAtICAgICAgICBpZiAo
VGFyZ2V0KSB7DQo+IC0gICAgICAgICAgICBUYXJnZXRTcmJQbnAoVGFyZ2V0LCBTcmIpOw0KPiAt
ICAgICAgICB9DQo+ICsgICAgaWYgKFNyYi0+U3JiUG5QRmxhZ3MgJiBTUkJfUE5QX0ZMQUdTX0FE
QVBURVJfUkVRVUVTVCkNCj4gKyAgICAgICAgcmV0dXJuOw0KPiArDQo+ICsgICAgVGFyZ2V0ID0g
QWRhcHRlckdldFRhcmdldChBZGFwdGVyLCBTcmItPlRhcmdldElkKTsNCj4gKyAgICBpZiAoVGFy
Z2V0ID09IE5VTEwpDQo+ICsgICAgICAgIHJldHVybjsNCj4gKw0KPiArICAgIHN3aXRjaCAoU3Ji
LT5QblBBY3Rpb24pIHsNCj4gKyAgICBjYXNlIFN0b3JRdWVyeUNhcGFiaWxpdGllczogew0KPiAr
ICAgICAgICBQU1RPUl9ERVZJQ0VfQ0FQQUJJTElUSUVTIENhcHMgPSBTcmItPkRhdGFCdWZmZXI7
DQo+ICsNCj4gKyAgICAgICAgQ2Fwcy0+UmVtb3ZhYmxlID0gVGFyZ2V0R2V0UmVtb3ZhYmxlKFRh
cmdldCk7DQo+ICsgICAgICAgIENhcHMtPkVqZWN0U3VwcG9ydGVkID0gVGFyZ2V0R2V0UmVtb3Zh
YmxlKFRhcmdldCk7DQo+ICsgICAgICAgIENhcHMtPlN1cnByaXNlUmVtb3ZhbE9LID0gVGFyZ2V0
R2V0U3VycHJpc2VSZW1vdmFibGUoVGFyZ2V0KTsNCj4gKyAgICAgICAgQ2Fwcy0+VW5pcXVlSUQg
PSAxOw0KPiArDQo+ICsgICAgICAgIH0gYnJlYWs7DQo+ICsNCj4gKyAgICBkZWZhdWx0Og0KPiAr
ICAgICAgICBicmVhazsNCj4gICAgICB9DQo+ICB9DQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hl
bnZiZC9mcm9udGVuZC5jIGIvc3JjL3hlbnZiZC9mcm9udGVuZC5jDQo+IGluZGV4IDc5YjhmOGQu
LmQ1NmZjODQgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvZnJvbnRlbmQuYw0KPiArKysgYi9z
cmMveGVudmJkL2Zyb250ZW5kLmMNCj4gQEAgLTQ1LDYgKzQ1LDcgQEANCj4gICNpbmNsdWRlICJ0
aHJlYWQuaCINCj4gICNpbmNsdWRlIDxzdG9yZV9pbnRlcmZhY2UuaD4NCj4gICNpbmNsdWRlIDxz
dXNwZW5kX2ludGVyZmFjZS5oPg0KPiArI2luY2x1ZGUgPG50c3Ryc2FmZS5oPg0KPiANCj4gICNp
bmNsdWRlIDxzdGRsaWIuaD4NCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2dyYW50ZXIu
YyBiL3NyYy94ZW52YmQvZ3JhbnRlci5jDQo+IGluZGV4IGUyYjY1NWUuLmZmN2E1NzUgMTAwNjQ0
DQo+IC0tLSBhL3NyYy94ZW52YmQvZ3JhbnRlci5jDQo+ICsrKyBiL3NyYy94ZW52YmQvZ3JhbnRl
ci5jDQo+IEBAIC0zNiw2ICszNiw3IEBADQo+ICAjaW5jbHVkZSAiZGVidWcuaCINCj4gICNpbmNs
dWRlICJ0aHJlYWQuaCINCj4gICNpbmNsdWRlIDxnbnR0YWJfaW50ZXJmYWNlLmg+DQo+ICsjaW5j
bHVkZSA8bnRzdHJzYWZlLmg+DQo+IA0KPiAgc3RydWN0IF9YRU5WQkRfR1JBTlRFUiB7DQo+ICAg
ICAgUFhFTlZCRF9GUk9OVEVORCAgICAgICAgICAgICAgICBGcm9udGVuZDsNCj4gZGlmZiAtLWdp
dCBhL3NyYy94ZW52YmQvdGFyZ2V0LmMgYi9zcmMveGVudmJkL3RhcmdldC5jDQo+IGluZGV4IGRj
ZDg3YzkuLjRlNTllODAgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvdGFyZ2V0LmMNCj4gKysr
IGIvc3JjL3hlbnZiZC90YXJnZXQuYw0KPiBAQCAtNDAzLDM2ICs0MDMsNiBAQCBfX1RhcmdldFJl
c3RvcmVEZXZpY2VQbnBTdGF0ZSgNCj4gICAgICB9DQo+ICB9DQo+IA0KPiAtDQo+IC8vPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID09
PT09PT09PT09PT09PT09PT09DQo+IC0vLyBRdWVyeSBNZXRob2RzDQo+IC1GT1JDRUlOTElORSBV
TE9ORw0KPiAtVGFyZ2V0R2V0VGFyZ2V0SWQoDQo+IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAg
ICAgICAgICAgICBUYXJnZXQNCj4gLSAgICApDQo+IC17DQo+IC0gICAgQVNTRVJUM1AoVGFyZ2V0
LCAhPSwgTlVMTCk7DQo+IC0gICAgcmV0dXJuIEZyb250ZW5kR2V0VGFyZ2V0SWQoVGFyZ2V0LT5G
cm9udGVuZCk7DQo+IC19DQo+IC0NCj4gLVVMT05HDQo+IC1UYXJnZXRHZXREZXZpY2VJZCgNCj4g
LSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldA0KPiAtICAgICkNCj4g
LXsNCj4gLSAgICBBU1NFUlQzUChUYXJnZXQsICE9LCBOVUxMKTsNCj4gLSAgICByZXR1cm4gRnJv
bnRlbmRHZXREZXZpY2VJZChUYXJnZXQtPkZyb250ZW5kKTsNCj4gLX0NCj4gLQ0KPiAtX19jaGVj
a1JldHVybg0KPiAtRk9SQ0VJTkxJTkUgUERFVklDRV9PQkpFQ1QNCj4gLVRhcmdldEdldERldmlj
ZU9iamVjdCgNCj4gLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldA0K
PiAtICAgICkNCj4gLXsNCj4gLSAgICBBU1NFUlQzUChUYXJnZXQsICE9LCBOVUxMKTsNCj4gLSAg
ICByZXR1cm4gVGFyZ2V0LT5EZXZpY2VPYmplY3Q7DQo+IC19DQo+IC0NCj4gIEZPUkNFSU5MSU5F
IFZPSUQNCj4gIFRhcmdldFNldERldmljZU9iamVjdCgNCj4gICAgICBfX2luIFBYRU5WQkRfVEFS
R0VUICAgICAgICAgICAgIFRhcmdldCwNCj4gQEAgLTQ2MSwxNSArNDMxLDYgQEAgVGFyZ2V0SXNQ
YXVzZWQoDQo+ICAgICAgcmV0dXJuIFBhdXNlZDsNCj4gIH0NCj4gDQo+IC1fX2NoZWNrUmV0dXJu
DQo+IC1GT1JDRUlOTElORSBQWEVOVkJEX0FEQVBURVINCj4gLVRhcmdldEdldEFkYXB0ZXIoDQo+
IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQNCj4gLSAgICApDQo+
IC17DQo+IC0gICAgcmV0dXJuIFRhcmdldC0+QWRhcHRlcjsNCj4gLX0NCj4gLQ0KPiAgc3RhdGlj
IEZPUkNFSU5MSU5FIFVMT05HDQo+ICBUYXJnZXRTZWN0b3JTaXplKA0KPiAgICAgIF9faW4gUFhF
TlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0DQo+IEBAIC0yMDkxLDQ0ICsyMDUyLDU1IEBA
IFRhcmdldFNodXRkb3duKA0KPiAgfQ0KPiANCj4gIFZPSUQNCj4gLVRhcmdldFNyYlBucCgNCj4g
LSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldCwNCj4gLSAgICBfX2lu
IFBTQ1NJX1BOUF9SRVFVRVNUX0JMT0NLIFNyYg0KPiArVGFyZ2V0SXNzdWVEZXZpY2VFamVjdCgN
Cj4gKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldCwNCj4gKyAgICBJTiAgY29uc3QgQ0hB
UiAgICAgICpSZWFzb24NCj4gICAgICApDQo+ICB7DQo+IC0gICAgc3dpdGNoIChTcmItPlBuUEFj
dGlvbikgew0KPiAtICAgIGNhc2UgU3RvclF1ZXJ5Q2FwYWJpbGl0aWVzOiB7DQo+IC0gICAgICAg
IFBTVE9SX0RFVklDRV9DQVBBQklMSVRJRVMgRGV2aWNlQ2FwcyA9IFNyYi0+RGF0YUJ1ZmZlcjsN
Cj4gLSAgICAgICAgUFhFTlZCRF9DQVBTICAgIENhcHMgPSBGcm9udGVuZEdldENhcHMoVGFyZ2V0
LT5Gcm9udGVuZCk7DQo+IC0NCj4gLSAgICAgICAgaWYgKENhcHMtPlJlbW92YWJsZSkNCj4gLSAg
ICAgICAgICAgIERldmljZUNhcHMtPlJlbW92YWJsZSA9IDE7DQo+IC0gICAgICAgIGlmIChDYXBz
LT5SZW1vdmFibGUpDQo+IC0gICAgICAgICAgICBEZXZpY2VDYXBzLT5FamVjdFN1cHBvcnRlZCA9
IDE7DQo+IC0gICAgICAgIGlmIChDYXBzLT5TdXJwcmlzZVJlbW92YWJsZSkNCj4gLSAgICAgICAg
ICAgIERldmljZUNhcHMtPlN1cnByaXNlUmVtb3ZhbE9LID0gMTsNCj4gLQ0KPiAtICAgICAgICBE
ZXZpY2VDYXBzLT5VbmlxdWVJRCA9IDE7DQo+ICsgICAgS0lSUUwgICAgICAgICAgICAgICBJcnFs
Ow0KPiArICAgIEJPT0xFQU4gICAgICAgICAgICAgRG9FamVjdCA9IEZBTFNFOw0KPiANCj4gLSAg
ICAgICAgfSBicmVhazsNCj4gKyAgICBLZUFjcXVpcmVTcGluTG9jaygmVGFyZ2V0LT5Mb2NrLCAm
SXJxbCk7DQo+ICsgICAgaWYgKFRhcmdldC0+RGV2aWNlT2JqZWN0KSB7DQo+ICsgICAgICAgIERv
RWplY3QgPSBUUlVFOw0KPiArICAgICAgICBUYXJnZXQtPkVqZWN0UmVxdWVzdGVkID0gVFJVRTsN
Cj4gKyAgICB9IGVsc2Ugew0KPiArICAgICAgICBUYXJnZXQtPkVqZWN0UGVuZGluZyA9IFRSVUU7
DQo+ICsgICAgfQ0KPiArICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZUYXJnZXQtPkxvY2ssIElycWwp
Ow0KPiANCj4gLSAgICBkZWZhdWx0Og0KPiAtICAgICAgICBicmVhazsNCj4gKyAgICBWZXJib3Nl
KCJUYXJnZXRbJWRdIDogRWplY3RpbmcgKCVzIC0gJXMpXG4iLA0KPiArICAgICAgICAgICAgVGFy
Z2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwNCj4gKyAgICAgICAgICAgIERvRWplY3QgPyAiTm93IiA6
ICJOZXh0IFBuUCBJUlAiLA0KPiArICAgICAgICAgICAgUmVhc29uKTsNCj4gKyAgICBpZiAoIVRh
cmdldC0+V3JpdHRlbkVqZWN0ZWQpIHsNCj4gKyAgICAgICAgVGFyZ2V0LT5Xcml0dGVuRWplY3Rl
ZCA9IFRSVUU7DQo+ICsgICAgICAgIEZyb250ZW5kU3RvcmVXcml0ZUZyb250ZW5kKFRhcmdldC0+
RnJvbnRlbmQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlamVjdGVk
IiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjEiKTsNCj4gKyAgICB9
DQo+ICsgICAgaWYgKERvRWplY3QpIHsNCj4gKyAgICAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6
IElvUmVxdWVzdERldmljZUVqZWN0KDB4JXApXG4iLA0KPiArICAgICAgICAgICAgICAgIFRhcmdl
dEdldFRhcmdldElkKFRhcmdldCksDQo+ICsgICAgICAgICAgICAgICAgVGFyZ2V0LT5EZXZpY2VP
YmplY3QpOw0KPiArICAgICAgICBJb1JlcXVlc3REZXZpY2VFamVjdChUYXJnZXQtPkRldmljZU9i
amVjdCk7DQo+ICsgICAgfSBlbHNlIHsNCj4gKyAgICAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6
IFRyaWdnZXJpbmcgQnVzQ2hhbmdlRGV0ZWN0ZWQgdG8gZGV0ZWN0DQo+IGRldmljZVxuIiwNCj4g
KyAgICAgICAgICAgICAgICBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpKTsNCj4gKyAgICAgICAg
QWRhcHRlclRhcmdldExpc3RDaGFuZ2VkKFRhcmdldEdldEFkYXB0ZXIoVGFyZ2V0KSk7DQo+ICAg
ICAgfQ0KPiAgfQ0KPiANCj4gLQ0KPiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09PQ0KPiAtLy8g
UG5QIEhhbmRsZXINCj4gIHN0YXRpYyBGT1JDRUlOTElORSBWT0lEDQo+ICBfX1RhcmdldERldmlj
ZVVzYWdlTm90aWZpY2F0aW9uKA0KPiAtICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAg
ICAgVGFyZ2V0LA0KPiAtICAgIF9faW4gUElSUCAgICAgICAgICAgICAgICAgICAgSXJwDQo+ICsg
ICAgSU4gIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgICBUYXJnZXQsDQo+ICsgICAgSU4gIFBJ
UlAgICAgICAgICAgICAgICAgICAgICAgICBJcnANCj4gICAgICApDQo+ICB7DQo+IC0gICAgUElP
X1NUQUNLX0xPQ0FUSU9OICAgICAgU3RhY2tMb2NhdGlvbjsNCj4gLSAgICBCT09MRUFOICAgICAg
ICAgICAgICAgICBWYWx1ZTsNCj4gKyAgICBQSU9fU1RBQ0tfTE9DQVRJT04gICAgICAgICAgICAg
IFN0YWNrTG9jYXRpb247DQo+ICsgICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICBW
YWx1ZTsNCj4gICAgICBERVZJQ0VfVVNBR0VfTk9USUZJQ0FUSU9OX1RZUEUgIFR5cGU7DQo+IC0g
ICAgUFhFTlZCRF9DQVBTICAgICAgICAgICAgQ2FwcyA9IEZyb250ZW5kR2V0Q2FwcyhUYXJnZXQt
PkZyb250ZW5kKTsNCj4gKyAgICBQWEVOVkJEX0NBUFMgICAgICAgICAgICAgICAgICAgIENhcHMg
PSBGcm9udGVuZEdldENhcHMoVGFyZ2V0LT5Gcm9udGVuZCk7DQo+IA0KPiAgICAgIFN0YWNrTG9j
YXRpb24gPSBJb0dldEN1cnJlbnRJcnBTdGFja0xvY2F0aW9uKElycCk7DQo+ICAgICAgVmFsdWUg
PSBTdGFja0xvY2F0aW9uLT5QYXJhbWV0ZXJzLlVzYWdlTm90aWZpY2F0aW9uLkluUGF0aDsNCj4g
QEAgLTIxNjEsNyArMjEzMyw3IEBAIF9fVGFyZ2V0RGV2aWNlVXNhZ2VOb3RpZmljYXRpb24oDQo+
IA0KPiAgc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQNCj4gIF9fVGFyZ2V0Q2hlY2tFamVjdFBlbmRp
bmcoDQo+IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQNCj4gKyAg
ICBJTiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldA0KPiAgICAgICkNCj4gIHsNCj4gICAgICBLSVJR
TCAgICAgICAgICAgICAgIElycWw7DQo+IEBAIC0yMTc2LDE0ICsyMTQ4LDE2IEBAIF9fVGFyZ2V0
Q2hlY2tFamVjdFBlbmRpbmcoDQo+ICAgICAgS2VSZWxlYXNlU3BpbkxvY2soJlRhcmdldC0+TG9j
aywgSXJxbCk7DQo+IA0KPiAgICAgIGlmIChFamVjdFBlbmRpbmcpIHsNCj4gLSAgICAgICAgVmVy
Ym9zZSgiVGFyZ2V0WyVkXSA6IElvUmVxdWVzdERldmljZUVqZWN0KDB4JXApXG4iLA0KPiBUYXJn
ZXRHZXRUYXJnZXRJZChUYXJnZXQpLCBUYXJnZXQtPkRldmljZU9iamVjdCk7DQo+ICsgICAgICAg
IFZlcmJvc2UoIlRhcmdldFslZF0gOiBJb1JlcXVlc3REZXZpY2VFamVjdCgweCVwKVxuIiwNCj4g
KyAgICAgICAgICAgICAgICBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLA0KPiArICAgICAgICAg
ICAgICAgIFRhcmdldC0+RGV2aWNlT2JqZWN0KTsNCj4gICAgICAgICAgSW9SZXF1ZXN0RGV2aWNl
RWplY3QoVGFyZ2V0LT5EZXZpY2VPYmplY3QpOw0KPiAgICAgIH0NCj4gIH0NCj4gDQo+ICBzdGF0
aWMgRk9SQ0VJTkxJTkUgVk9JRA0KPiAgX19UYXJnZXRDaGVja0VqZWN0RmFpbGVkKA0KPiAtICAg
IF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0DQo+ICsgICAgSU4gIFBYRU5W
QkRfVEFSR0VUICBUYXJnZXQNCj4gICAgICApDQo+ICB7DQo+ICAgICAgS0lSUUwgICAgICAgICAg
ICAgICBJcnFsOw0KPiBAQCAtMjE5NywxNCArMjE3MSwxNyBAQCBfX1RhcmdldENoZWNrRWplY3RG
YWlsZWQoDQo+ICAgICAgS2VSZWxlYXNlU3BpbkxvY2soJlRhcmdldC0+TG9jaywgSXJxbCk7DQo+
IA0KPiAgICAgIGlmIChFamVjdEZhaWxlZCkgew0KPiAtICAgICAgICBFcnJvcigiVGFyZ2V0WyVk
XSA6IFVucGx1ZyBmYWlsZWQgZHVlIHRvIG9wZW4gaGFuZGxlKHMpIVxuIiwNCj4gVGFyZ2V0R2V0
VGFyZ2V0SWQoVGFyZ2V0KSk7DQo+IC0gICAgICAgIEZyb250ZW5kU3RvcmVXcml0ZUZyb250ZW5k
KFRhcmdldC0+RnJvbnRlbmQsICJlcnJvciIsICJVbnBsdWcgZmFpbGVkDQo+IGR1ZSB0byBvcGVu
IGhhbmRsZShzKSEiKTsNCj4gKyAgICAgICAgRXJyb3IoIlRhcmdldFslZF0gOiBVbnBsdWcgZmFp
bGVkIGR1ZSB0byBvcGVuIGhhbmRsZShzKSFcbiIsDQo+ICsgICAgICAgICAgICAgIFRhcmdldEdl
dFRhcmdldElkKFRhcmdldCkpOw0KPiArICAgICAgICBGcm9udGVuZFN0b3JlV3JpdGVGcm9udGVu
ZChUYXJnZXQtPkZyb250ZW5kLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZXJyb3IiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5wbHVn
IGZhaWxlZCBkdWUgdG8gb3BlbiBoYW5kbGUocykhIik7DQo+ICAgICAgfQ0KPiAgfQ0KPiANCj4g
IHN0YXRpYyBGT1JDRUlOTElORSBWT0lEDQo+ICBfX1RhcmdldFJlbW92ZURldmljZSgNCj4gLSAg
ICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldA0KPiArICAgIElOICBQWEVO
VkJEX1RBUkdFVCAgVGFyZ2V0DQo+ICAgICAgKQ0KPiAgew0KPiAgICAgIFRhcmdldEQwVG9EMyhU
YXJnZXQpOw0KPiBAQCAtMjIxMiwyMSArMjE4OSwyMCBAQCBfX1RhcmdldFJlbW92ZURldmljZSgN
Cj4gICAgICBzd2l0Y2ggKFRhcmdldEdldERldmljZVBucFN0YXRlKFRhcmdldCkpIHsNCj4gICAg
ICBjYXNlIFN1cnByaXNlUmVtb3ZlUGVuZGluZzoNCj4gICAgICAgICAgVGFyZ2V0U2V0TWlzc2lu
ZyhUYXJnZXQsICJTdXJwcmlzZSBSZW1vdmUiKTsNCj4gLSAgICAgICAgVGFyZ2V0U2V0RGV2aWNl
UG5wU3RhdGUoVGFyZ2V0LCBEZWxldGVkKTsNCj4gLSAgICAgICAgQWRhcHRlclRhcmdldExpc3RD
aGFuZ2VkKFRhcmdldEdldEFkYXB0ZXIoVGFyZ2V0KSk7DQo+ICAgICAgICAgIGJyZWFrOw0KPiAN
Cj4gICAgICBkZWZhdWx0Og0KPiAgICAgICAgICBUYXJnZXRTZXRNaXNzaW5nKFRhcmdldCwgIlJl
bW92ZWQiKTsNCj4gLSAgICAgICAgVGFyZ2V0U2V0RGV2aWNlUG5wU3RhdGUoVGFyZ2V0LCBEZWxl
dGVkKTsNCj4gLSAgICAgICAgQWRhcHRlclRhcmdldExpc3RDaGFuZ2VkKFRhcmdldEdldEFkYXB0
ZXIoVGFyZ2V0KSk7DQo+ICAgICAgICAgIGJyZWFrOw0KPiAgICAgIH0NCj4gKw0KPiArICAgIFRh
cmdldFNldERldmljZVBucFN0YXRlKFRhcmdldCwgRGVsZXRlZCk7DQo+ICsgICAgQWRhcHRlclRh
cmdldExpc3RDaGFuZ2VkKFRhcmdldEdldEFkYXB0ZXIoVGFyZ2V0KSk7DQo+ICB9DQo+IA0KPiAg
c3RhdGljIEZPUkNFSU5MSU5FIFZPSUQNCj4gIF9fVGFyZ2V0RWplY3QoDQo+IC0gICAgX19pbiBQ
WEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQNCj4gKyAgICBJTiAgUFhFTlZCRF9UQVJH
RVQgIFRhcmdldA0KPiAgICAgICkNCj4gIHsNCj4gICAgICBUYXJnZXRTZXRNaXNzaW5nKFRhcmdl
dCwgIkVqZWN0ZWQiKTsNCj4gQEAgLTIyMzQsMTkgKzIyMTAsMjAgQEAgX19UYXJnZXRFamVjdCgN
Cj4gICAgICBBZGFwdGVyVGFyZ2V0TGlzdENoYW5nZWQoVGFyZ2V0R2V0QWRhcHRlcihUYXJnZXQp
KTsNCj4gIH0NCj4gDQo+IC1fX2NoZWNrUmV0dXJuDQo+ICBOVFNUQVRVUw0KPiAgVGFyZ2V0RGlz
cGF0Y2hQbnAoDQo+IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQs
DQo+IC0gICAgX19pbiBQREVWSUNFX09CSkVDVCAgICAgICAgICBEZXZpY2VPYmplY3QsDQo+IC0g
ICAgX19pbiBQSVJQICAgICAgICAgICAgICAgICAgICBJcnANCj4gKyAgICBJTiAgUFhFTlZCRF9U
QVJHRVQgIFRhcmdldCwNCj4gKyAgICBJTiAgUERFVklDRV9PQkpFQ1QgIERldmljZU9iamVjdCwN
Cj4gKyAgICBJTiAgUElSUCAgICAgICAgICAgIElycA0KPiAgICAgICkNCj4gIHsNCj4gLSAgICBQ
SU9fU1RBQ0tfTE9DQVRJT04gIFN0YWNrID0gSW9HZXRDdXJyZW50SXJwU3RhY2tMb2NhdGlvbihJ
cnApOw0KPiArICAgIFBJT19TVEFDS19MT0NBVElPTiAgU3RhY2tMb2NhdGlvbjsNCj4gKw0KPiAr
ICAgIFN0YWNrTG9jYXRpb24gPSBJb0dldEN1cnJlbnRJcnBTdGFja0xvY2F0aW9uKElycCk7DQo+
IA0KPiAgICAgIF9fVGFyZ2V0Q2hlY2tFamVjdFBlbmRpbmcoVGFyZ2V0KTsNCj4gDQo+IC0gICAg
c3dpdGNoIChTdGFjay0+TWlub3JGdW5jdGlvbikgew0KPiArICAgIHN3aXRjaCAoU3RhY2tMb2Nh
dGlvbi0+TWlub3JGdW5jdGlvbikgew0KPiAgICAgIGNhc2UgSVJQX01OX1NUQVJUX0RFVklDRToN
Cj4gICAgICAgICAgKFZPSUQpIFRhcmdldEQzVG9EMChUYXJnZXQpOw0KPiAgICAgICAgICBUYXJn
ZXRTZXREZXZpY2VQbnBTdGF0ZShUYXJnZXQsIFN0YXJ0ZWQpOw0KPiBAQCAtMjI5Niw2NiArMjI3
MywyOSBAQCBUYXJnZXREaXNwYXRjaFBucCgNCj4gICAgICByZXR1cm4gRHJpdmVyRGlzcGF0Y2hQ
bnAoRGV2aWNlT2JqZWN0LCBJcnApOw0KPiAgfQ0KPiANCj4gLV9fZHJ2X21heElSUUwoRElTUEFU
Q0hfTEVWRUwpDQo+IC1WT0lEDQo+IC1UYXJnZXRJc3N1ZURldmljZUVqZWN0KA0KPiAtICAgIF9f
aW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0LA0KPiAtICAgIF9faW4gX19udWxs
dGVybWluYXRlZCBjb25zdCBDSEFSKiBSZWFzb24NCj4gLSAgICApDQo+IC17DQo+IC0gICAgS0lS
UUwgICAgICAgSXJxbDsNCj4gLSAgICBCT09MRUFOICAgICBEb0VqZWN0ID0gRkFMU0U7DQo+IC0N
Cj4gLSAgICBLZUFjcXVpcmVTcGluTG9jaygmVGFyZ2V0LT5Mb2NrLCAmSXJxbCk7DQo+IC0gICAg
aWYgKFRhcmdldC0+RGV2aWNlT2JqZWN0KSB7DQo+IC0gICAgICAgIERvRWplY3QgPSBUUlVFOw0K
PiAtICAgICAgICBUYXJnZXQtPkVqZWN0UmVxdWVzdGVkID0gVFJVRTsNCj4gLSAgICB9IGVsc2Ug
ew0KPiAtICAgICAgICBUYXJnZXQtPkVqZWN0UGVuZGluZyA9IFRSVUU7DQo+IC0gICAgfQ0KPiAt
ICAgIEtlUmVsZWFzZVNwaW5Mb2NrKCZUYXJnZXQtPkxvY2ssIElycWwpOw0KPiAtDQo+IC0gICAg
VmVyYm9zZSgiVGFyZ2V0WyVkXSA6IEVqZWN0aW5nICglcyAtICVzKVxuIiwgVGFyZ2V0R2V0VGFy
Z2V0SWQoVGFyZ2V0KSwNCj4gRG9FamVjdCA/ICJOb3ciIDogIk5leHQgUG5QIElSUCIsIFJlYXNv
bik7DQo+IC0gICAgaWYgKCFUYXJnZXQtPldyaXR0ZW5FamVjdGVkKSB7DQo+IC0gICAgICAgIFRh
cmdldC0+V3JpdHRlbkVqZWN0ZWQgPSBUUlVFOw0KPiAtICAgICAgICBGcm9udGVuZFN0b3JlV3Jp
dGVGcm9udGVuZChUYXJnZXQtPkZyb250ZW5kLCAiZWplY3RlZCIsICIxIik7DQo+IC0gICAgfQ0K
PiAtICAgIGlmIChEb0VqZWN0KSB7DQo+IC0gICAgICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBJ
b1JlcXVlc3REZXZpY2VFamVjdCgweCVwKVxuIiwNCj4gVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0
KSwgVGFyZ2V0LT5EZXZpY2VPYmplY3QpOw0KPiAtICAgICAgICBJb1JlcXVlc3REZXZpY2VFamVj
dChUYXJnZXQtPkRldmljZU9iamVjdCk7DQo+IC0gICAgfSBlbHNlIHsNCj4gLSAgICAgICAgVmVy
Ym9zZSgiVGFyZ2V0WyVkXSA6IFRyaWdnZXJpbmcgQnVzQ2hhbmdlRGV0ZWN0ZWQgdG8gZGV0ZWN0
DQo+IGRldmljZVxuIiwgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSk7DQo+IC0gICAgICAgIEFk
YXB0ZXJUYXJnZXRMaXN0Q2hhbmdlZChUYXJnZXRHZXRBZGFwdGVyKFRhcmdldCkpOw0KPiAtICAg
IH0NCj4gLX0NCj4gLQ0KPiAtX19jaGVja1JldHVybg0KPiAgTlRTVEFUVVMNCj4gIFRhcmdldEQz
VG9EMCgNCj4gLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgVGFyZ2V0DQo+ICsg
ICAgSU4gIFBYRU5WQkRfVEFSR0VUICBUYXJnZXQNCj4gICAgICApDQo+ICB7DQo+IC0gICAgTlRT
VEFUVVMgICAgICAgICAgICAgICAgICAgIFN0YXR1czsNCj4gLSAgICBjb25zdCBVTE9ORyAgICAg
ICAgICAgICAgICAgVGFyZ2V0SWQgPSBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpOw0KPiArICAg
IE5UU1RBVFVTICAgICAgICAgICAgc3RhdHVzOw0KPiArICAgIGNvbnN0IFVMT05HICAgICAgICAg
VGFyZ2V0SWQgPSBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpOw0KPiANCj4gICAgICBpZiAoIVRh
cmdldFNldERldmljZVBvd2VyU3RhdGUoVGFyZ2V0LCBQb3dlckRldmljZUQwKSkNCj4gICAgICAg
ICAgcmV0dXJuIFNUQVRVU19TVUNDRVNTOw0KPiANCj4gLSAgICBUcmFjZSgiVGFyZ2V0WyVkXSBA
ICglZCkgPT09PT0+XG4iLCBUYXJnZXRJZCwgS2VHZXRDdXJyZW50SXJxbCgpKTsNCj4gICAgICBW
ZXJib3NlKCJUYXJnZXRbJWRdIDogRDMtPkQwXG4iLCBUYXJnZXRJZCk7DQo+IA0KPiAtICAgIC8v
IHBvd2VyIHVwIGZyb250ZW5kDQo+IC0gICAgU3RhdHVzID0gRnJvbnRlbmREM1RvRDAoVGFyZ2V0
LT5Gcm9udGVuZCk7DQo+IC0gICAgaWYgKCFOVF9TVUNDRVNTKFN0YXR1cykpDQo+ICsgICAgc3Rh
dHVzID0gRnJvbnRlbmREM1RvRDAoVGFyZ2V0LT5Gcm9udGVuZCk7DQo+ICsgICAgaWYgKCFOVF9T
VUNDRVNTKHN0YXR1cykpDQo+ICAgICAgICAgIGdvdG8gZmFpbDE7DQo+IA0KPiAtICAgIC8vIGNv
bm5lY3QgZnJvbnRlbmQNCj4gLSAgICBTdGF0dXMgPSBGcm9udGVuZFNldFN0YXRlKFRhcmdldC0+
RnJvbnRlbmQsIFhFTlZCRF9FTkFCTEVEKTsNCj4gLSAgICBpZiAoIU5UX1NVQ0NFU1MoU3RhdHVz
KSkNCj4gKyAgICBzdGF0dXMgPSBGcm9udGVuZFNldFN0YXRlKFRhcmdldC0+RnJvbnRlbmQsIFhF
TlZCRF9FTkFCTEVEKTsNCj4gKyAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4gICAgICAg
ICAgZ290byBmYWlsMjsNCj4gKw0KPiAgICAgIF9fVGFyZ2V0VW5wYXVzZURhdGFQYXRoKFRhcmdl
dCk7DQo+IA0KPiAtICAgIFRyYWNlKCJUYXJnZXRbJWRdIEAgKCVkKSA8PT09PT1cbiIsIFRhcmdl
dElkLCBLZUdldEN1cnJlbnRJcnFsKCkpOw0KPiAgICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsN
Cj4gDQo+ICBmYWlsMjoNCj4gQEAgLTIzNjMsMzUgKzIzMDMsMjkgQEAgZmFpbDI6DQo+ICAgICAg
RnJvbnRlbmREMFRvRDMoVGFyZ2V0LT5Gcm9udGVuZCk7DQo+IA0KPiAgZmFpbDE6DQo+IC0gICAg
RXJyb3IoIkZhaWwxICglMDh4KVxuIiwgU3RhdHVzKTsNCj4gKyAgICBFcnJvcigiRmFpbDEgKCUw
OHgpXG4iLCBzdGF0dXMpOw0KPiANCj4gICAgICBUYXJnZXQtPkRldmljZVBvd2VyU3RhdGUgPSBQ
b3dlckRldmljZUQzOw0KPiANCj4gLSAgICByZXR1cm4gU3RhdHVzOw0KPiArICAgIHJldHVybiBz
dGF0dXM7DQo+ICB9DQo+IA0KPiAgVk9JRA0KPiAgVGFyZ2V0RDBUb0QzKA0KPiAtICAgIF9faW4g
UFhFTlZCRF9UQVJHRVQgICAgICAgICAgICBUYXJnZXQNCj4gKyAgICBJTiAgUFhFTlZCRF9UQVJH
RVQgIFRhcmdldA0KPiAgICAgICkNCj4gIHsNCj4gLSAgICBjb25zdCBVTE9ORyAgICAgICAgICAg
ICAgICAgVGFyZ2V0SWQgPSBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpOw0KPiArICAgIGNvbnN0
IFVMT05HICAgICAgICAgVGFyZ2V0SWQgPSBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpOw0KPiAN
Cj4gICAgICBpZiAoIVRhcmdldFNldERldmljZVBvd2VyU3RhdGUoVGFyZ2V0LCBQb3dlckRldmlj
ZUQzKSkNCj4gICAgICAgICAgcmV0dXJuOw0KPiANCj4gLSAgICBUcmFjZSgiVGFyZ2V0WyVkXSBA
ICglZCkgPT09PT0+XG4iLCBUYXJnZXRJZCwgS2VHZXRDdXJyZW50SXJxbCgpKTsNCj4gICAgICBW
ZXJib3NlKCJUYXJnZXRbJWRdIDogRDAtPkQzXG4iLCBUYXJnZXRJZCk7DQo+IA0KPiAtICAgIC8v
IGNsb3NlIGZyb250ZW5kDQo+ICAgICAgX19UYXJnZXRQYXVzZURhdGFQYXRoKFRhcmdldCwgRkFM
U0UpOw0KPiAgICAgIChWT0lEKSBGcm9udGVuZFNldFN0YXRlKFRhcmdldC0+RnJvbnRlbmQsIFhF
TlZCRF9DTE9TRUQpOw0KPiAtICAgIEFTU0VSVDNVKFF1ZXVlQ291bnQoJlRhcmdldC0+U3VibWl0
dGVkUmVxcyksID09LCAwKTsNCj4gDQo+IC0gICAgLy8gcG93ZXIgZG93biBmcm9udGVuZA0KPiAg
ICAgIEZyb250ZW5kRDBUb0QzKFRhcmdldC0+RnJvbnRlbmQpOw0KPiAtDQo+IC0gICAgVHJhY2Uo
IlRhcmdldFslZF0gQCAoJWQpIDw9PT09PVxuIiwgVGFyZ2V0SWQsIEtlR2V0Q3VycmVudElycWwo
KSk7DQo+ICB9DQo+IA0KPiAgc3RhdGljIEZPUkNFSU5MSU5FIFVMT05HDQo+IEBAIC0yMzk5LDcg
KzIzMzMsNyBAQCBfX1BhcnNlVmJkKA0KPiAgICAgIElOICBQQ0hBUiAgIERldmljZUlkU3RyDQo+
ICAgICAgKQ0KPiAgew0KPiAtICAgIFVMT05HICAgRGV2aWNlSWQgPSBzdHJ0b3VsKERldmljZUlk
U3RyLCBOVUxMLCAxMCk7DQo+ICsgICAgVUxPTkcgICAgICAgRGV2aWNlSWQgPSBzdHJ0b3VsKERl
dmljZUlkU3RyLCBOVUxMLCAxMCk7DQo+IA0KPiAgICAgIEFTU0VSVDNVKChEZXZpY2VJZCAmIH4o
KDEgPDwgMjkpIC0gMSkpLCA9PSwgMCk7DQo+IA0KPiBAQCAtMjQyMSwxNyArMjM1NSwxNiBAQCBf
X1BhcnNlVmJkKA0KPiAgICAgIH0NCj4gIH0NCj4gDQo+IC1fX2NoZWNrUmV0dXJuDQo+ICBOVFNU
QVRVUw0KPiAgVGFyZ2V0Q3JlYXRlKA0KPiAtICAgIF9faW4gUFhFTlZCRF9BREFQVEVSICAgICAg
ICAgICAgIEFkYXB0ZXIsDQo+IC0gICAgX19pbiBfX251bGx0ZXJtaW5hdGVkIFBDSEFSICBEZXZp
Y2VJZCwNCj4gLSAgICBPVVQgUFhFTlZCRF9UQVJHRVQqICAgICAgICAgX1RhcmdldA0KPiArICAg
IElOICBQWEVOVkJEX0FEQVBURVIgQWRhcHRlciwNCj4gKyAgICBJTiAgUENIQVIgICAgICAgICAg
IERldmljZUlkLA0KPiArICAgIE9VVCBQWEVOVkJEX1RBUkdFVCogX1RhcmdldA0KPiAgICAgICkN
Cj4gIHsNCj4gLSAgICBOVFNUQVRVUyAgICBTdGF0dXM7DQo+IC0gICAgUFhFTlZCRF9UQVJHRVQg
VGFyZ2V0Ow0KPiAtICAgIFVMT05HICAgICAgICAgICBUYXJnZXRJZDsNCj4gKyAgICBOVFNUQVRV
UyAgICAgICAgICAgIHN0YXR1czsNCj4gKyAgICBQWEVOVkJEX1RBUkdFVCAgICAgIFRhcmdldDsN
Cj4gKyAgICBVTE9ORyAgICAgICAgICAgICAgIFRhcmdldElkOw0KPiANCj4gICAgICBUYXJnZXRJ
ZCA9IF9fUGFyc2VWYmQoRGV2aWNlSWQpOw0KPiAgICAgIGlmIChUYXJnZXRJZCA+PSBYRU5WQkRf
TUFYX1RBUkdFVFMpDQo+IEBAIC0yNDQwLDIwICsyMzczLDE4IEBAIFRhcmdldENyZWF0ZSgNCj4g
ICAgICBpZiAoQWRhcHRlcklzVGFyZ2V0RW11bGF0ZWQoQWRhcHRlciwgVGFyZ2V0SWQpKQ0KPiAg
ICAgICAgICByZXR1cm4gU1RBVFVTX1JFVFJZOw0KPiANCj4gLSAgICBUcmFjZSgiVGFyZ2V0WyVk
XSBAICglZCkgPT09PT0+XG4iLCBUYXJnZXRJZCwgS2VHZXRDdXJyZW50SXJxbCgpKTsNCj4gLQ0K
PiAtICAgIFN0YXR1cyA9IFNUQVRVU19JTlNVRkZJQ0lFTlRfUkVTT1VSQ0VTOw0KPiArICAgIHN0
YXR1cyA9IFNUQVRVU19JTlNVRkZJQ0lFTlRfUkVTT1VSQ0VTOw0KPiAgI3ByYWdtYSB3YXJuaW5n
KHN1cHByZXNzOiA2MDE0KQ0KPiAgICAgIFRhcmdldCA9IF9fVGFyZ2V0QWxsb2Moc2l6ZW9mKFhF
TlZCRF9UQVJHRVQpKTsNCj4gICAgICBpZiAoIVRhcmdldCkNCj4gICAgICAgICAgZ290byBmYWls
MTsNCj4gDQo+ICAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IENyZWF0aW5nXG4iLCBUYXJnZXRJ
ZCk7DQo+IC0gICAgVGFyZ2V0LT5TaWduYXR1cmUgICAgICA9IFRBUkdFVF9TSUdOQVRVUkU7DQo+
IC0gICAgVGFyZ2V0LT5BZGFwdGVyICAgICAgICAgICAgPSBBZGFwdGVyOw0KPiAtICAgIFRhcmdl
dC0+RGV2aWNlT2JqZWN0ICAgPSBOVUxMOyAvLyBmaWxsZWQgaW4gbGF0ZXINCj4gLSAgICBUYXJn
ZXQtPlBhdXNlZCAgICAgICAgID0gMTsgLy8gUGF1c2VkIHVudGlsIEQzLT5EMCB0cmFuc2l0aW9u
DQo+IC0gICAgVGFyZ2V0LT5EZXZpY2VQbnBTdGF0ZSA9IFByZXNlbnQ7DQo+ICsgICAgVGFyZ2V0
LT5TaWduYXR1cmUgICAgICAgPSBUQVJHRVRfU0lHTkFUVVJFOw0KPiArICAgIFRhcmdldC0+QWRh
cHRlciAgICAgICAgID0gQWRhcHRlcjsNCj4gKyAgICBUYXJnZXQtPkRldmljZU9iamVjdCAgICA9
IE5VTEw7IC8vIGZpbGxlZCBpbiBsYXRlcg0KPiArICAgIFRhcmdldC0+UGF1c2VkICAgICAgICAg
ID0gMTsgLy8gUGF1c2VkIHVudGlsIEQzLT5EMCB0cmFuc2l0aW9uDQo+ICsgICAgVGFyZ2V0LT5E
ZXZpY2VQbnBTdGF0ZSAgPSBQcmVzZW50Ow0KPiAgICAgIFRhcmdldC0+RGV2aWNlUG93ZXJTdGF0
ZSA9IFBvd2VyRGV2aWNlRDM7DQo+IA0KPiAgICAgIEtlSW5pdGlhbGl6ZVNwaW5Mb2NrKCZUYXJn
ZXQtPkxvY2spOw0KPiBAQCAtMjQ2NSwxOCArMjM5NiwxNyBAQCBUYXJnZXRDcmVhdGUoDQo+ICAg
ICAgX19Mb29rYXNpZGVJbml0KCZUYXJnZXQtPlNlZ21lbnRMaXN0LCBzaXplb2YoWEVOVkJEX1NF
R01FTlQpLA0KPiBTRUdNRU5UX1BPT0xfVEFHKTsNCj4gICAgICBfX0xvb2thc2lkZUluaXQoJlRh
cmdldC0+SW5kaXJlY3RMaXN0LCBzaXplb2YoWEVOVkJEX0lORElSRUNUKSwNCj4gSU5ESVJFQ1Rf
UE9PTF9UQUcpOw0KPiANCj4gLSAgICBTdGF0dXMgPSBGcm9udGVuZENyZWF0ZShUYXJnZXQsIERl
dmljZUlkLCBUYXJnZXRJZCwgJlRhcmdldC0+RnJvbnRlbmQpOw0KPiAtICAgIGlmICghTlRfU1VD
Q0VTUyhTdGF0dXMpKQ0KPiArICAgIHN0YXR1cyA9IEZyb250ZW5kQ3JlYXRlKFRhcmdldCwgRGV2
aWNlSWQsIFRhcmdldElkLCAmVGFyZ2V0LT5Gcm9udGVuZCk7DQo+ICsgICAgaWYgKCFOVF9TVUND
RVNTKHN0YXR1cykpDQo+ICAgICAgICAgIGdvdG8gZmFpbDI7DQo+IA0KPiAtICAgIFN0YXR1cyA9
IFRhcmdldEQzVG9EMChUYXJnZXQpOw0KPiAtICAgIGlmICghTlRfU1VDQ0VTUyhTdGF0dXMpKQ0K
PiArICAgIHN0YXR1cyA9IFRhcmdldEQzVG9EMChUYXJnZXQpOw0KPiArICAgIGlmICghTlRfU1VD
Q0VTUyhzdGF0dXMpKQ0KPiAgICAgICAgICBnb3RvIGZhaWwzOw0KPiANCj4gICAgICAqX1Rhcmdl
dCA9IFRhcmdldDsNCj4gDQo+ICAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IENyZWF0ZWQgKCVz
KVxuIiwgVGFyZ2V0SWQsIFRhcmdldCk7DQo+IC0gICAgVHJhY2UoIlRhcmdldFslZF0gQCAoJWQp
IDw9PT09PVxuIiwgVGFyZ2V0SWQsIEtlR2V0Q3VycmVudElycWwoKSk7DQo+ICAgICAgcmV0dXJu
IFNUQVRVU19TVUNDRVNTOw0KPiANCj4gIGZhaWwzOg0KPiBAQCAtMjQ5Miw1NiArMjQyMiwyMSBA
QCBmYWlsMjoNCj4gICAgICBfX1RhcmdldEZyZWUoVGFyZ2V0KTsNCj4gDQo+ICBmYWlsMToNCj4g
LSAgICBFcnJvcigiRmFpbDEgKCUwOHgpXG4iLCBTdGF0dXMpOw0KPiAtICAgIHJldHVybiBTdGF0
dXM7DQo+ICsgICAgRXJyb3IoIkZhaWwxICglMDh4KVxuIiwgc3RhdHVzKTsNCj4gKyAgICByZXR1
cm4gc3RhdHVzOw0KPiAgfQ0KPiANCj4gIFZPSUQNCj4gIFRhcmdldERlc3Ryb3koDQo+IC0gICAg
X19pbiBQWEVOVkJEX1RBUkdFVCAgICBUYXJnZXQNCj4gKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQg
IFRhcmdldA0KPiAgICAgICkNCj4gIHsNCj4gICAgICBjb25zdCBVTE9ORyAgICAgICAgIFRhcmdl
dElkID0gVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KTsNCj4gLSAgICBQVk9JRCAgICAgICAgICAg
ICAgIE9iamVjdHNbM107DQo+IC0gICAgUEtXQUlUX0JMT0NLICAgICAgICBXYWl0QmxvY2s7DQo+
IA0KPiAtICAgIFRyYWNlKCJUYXJnZXRbJWRdIEAgKCVkKSA9PT09PT5cbiIsIFRhcmdldElkLCBL
ZUdldEN1cnJlbnRJcnFsKCkpOw0KPiAgICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBEZXN0cm95
aW5nXG4iLCBUYXJnZXRJZCk7DQo+IA0KPiAtICAgIEFTU0VSVDNVKFRhcmdldC0+U2lnbmF0dXJl
LCA9PSwgVEFSR0VUX1NJR05BVFVSRSk7DQo+IC0NCj4gICAgICBUYXJnZXREMFRvRDMoVGFyZ2V0
KTsNCj4gDQo+IC0gICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IFJlcXVlc3RMaXN0VXNlZCAlZFxu
IiwgVGFyZ2V0SWQsIFRhcmdldC0NCj4gPlJlcXVlc3RMaXN0LlVzZWQpOw0KPiAtICAgIE9iamVj
dHNbMF0gPSAmVGFyZ2V0LT5SZXF1ZXN0TGlzdC5FbXB0eTsNCj4gLSAgICBPYmplY3RzWzFdID0g
JlRhcmdldC0+U2VnbWVudExpc3QuRW1wdHk7DQo+IC0gICAgT2JqZWN0c1syXSA9ICZUYXJnZXQt
PkluZGlyZWN0TGlzdC5FbXB0eTsNCj4gLQ0KPiAtICAgIFdhaXRCbG9jayA9IChQS1dBSVRfQkxP
Q0spX19UYXJnZXRBbGxvYyhzaXplb2YoS1dBSVRfQkxPQ0spICoNCj4gQVJSQVlTSVpFKE9iamVj
dHMpKTsNCj4gLSAgICBpZiAoV2FpdEJsb2NrID09IE5VTEwpIHsNCj4gLSAgICAgICAgVUxPTkcg
ICBJbmRleDsNCj4gLQ0KPiAtICAgICAgICBFcnJvcigiVW5hYmxlIHRvIGFsbG9jYXRlIHJlc291
cmNlcyBmb3IgS1dBSVRfQkxPQ0tcbiIpOw0KPiAtDQo+IC0gICAgICAgIGZvciAoSW5kZXggPSAw
OyBJbmRleCA8IEFSUkFZU0laRShPYmplY3RzKTsgSW5kZXgrKykNCj4gLSAgICAgICAgICAgIEtl
V2FpdEZvclNpbmdsZU9iamVjdChPYmplY3RzW0luZGV4XSwNCj4gLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBFeGVjdXRpdmUsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgS2VybmVsTW9kZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBGQUxTRSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsNCj4g
LSAgICB9IGVsc2Ugew0KPiAtICAgICAgICBLZVdhaXRGb3JNdWx0aXBsZU9iamVjdHMoQVJSQVlT
SVpFKE9iamVjdHMpLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0
cywNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdhaXRBbGwsDQo+IC0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeGVjdXRpdmUsDQo+IC0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBLZXJuZWxNb2RlLA0KPiAtICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRkFMU0UsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO
VUxMLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FpdEJsb2NrKTsNCj4g
LSNwcmFnbWEgcHJlZmFzdChzdXBwcmVzczo2MTAyKQ0KPiAtICAgICAgICBfX1RhcmdldEZyZWUo
V2FpdEJsb2NrKTsNCj4gLSAgICB9DQo+IC0NCj4gICAgICBBU1NFUlQzVShUYXJnZXRHZXREZXZp
Y2VQbnBTdGF0ZShUYXJnZXQpLCA9PSwgRGVsZXRlZCk7DQo+IA0KPiAgICAgIEZyb250ZW5kRGVz
dHJveShUYXJnZXQtPkZyb250ZW5kKTsNCj4gQEAgLTI1NTEsMTAgKzI0NDYsNTcgQEAgVGFyZ2V0
RGVzdHJveSgNCj4gICAgICBfX0xvb2thc2lkZVRlcm0oJlRhcmdldC0+U2VnbWVudExpc3QpOw0K
PiAgICAgIF9fTG9va2FzaWRlVGVybSgmVGFyZ2V0LT5SZXF1ZXN0TGlzdCk7DQo+IA0KPiAtICAg
IEFTU0VSVDNVKFRhcmdldC0+U2lnbmF0dXJlLCA9PSwgVEFSR0VUX1NJR05BVFVSRSk7DQo+ICAg
ICAgUnRsWmVyb01lbW9yeShUYXJnZXQsIHNpemVvZihYRU5WQkRfVEFSR0VUKSk7DQo+ICAgICAg
X19UYXJnZXRGcmVlKFRhcmdldCk7DQo+IA0KPiAgICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBE
ZXN0cm95ZWRcbiIsIFRhcmdldElkKTsNCj4gLSAgICBUcmFjZSgiVGFyZ2V0WyVkXSBAICglZCkg
PD09PT09XG4iLCBUYXJnZXRJZCwgS2VHZXRDdXJyZW50SXJxbCgpKTsNCj4gIH0NCj4gKw0KPiAr
I2RlZmluZSBUQVJHRVRfR0VUX1BST1BFUlRZKF9uYW1lLCBfdHlwZSkgICAgICAgXA0KPiArX3R5
cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArVGFyZ2V0
R2V0ICMjIF9uYW1lICMjICggICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgIElOICBQ
WEVOVkJEX1RBUkdFVCAgVGFyZ2V0ICAgICAgICAgICAgICAgICAgXA0KPiArICAgICkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAreyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgIHJldHVybiBUYXJnZXQt
PiAjIyBfbmFtZSAjIyA7ICAgICAgICAgICAgICAgXA0KPiArfQ0KPiArDQo+ICtUQVJHRVRfR0VU
X1BST1BFUlRZKEFkYXB0ZXIsIFBYRU5WQkRfQURBUFRFUikNCj4gK1RBUkdFVF9HRVRfUFJPUEVS
VFkoRGV2aWNlT2JqZWN0LCBQREVWSUNFX09CSkVDVCkNCj4gKw0KPiArLy9UQVJHRVRfR0VUX1BS
T1BFUlRZKFRhcmdldElkLCBVTE9ORykNCj4gK1VMT05HDQo+ICtUYXJnZXRHZXRUYXJnZXRJZCgN
Cj4gKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldA0KPiArICAgICkNCj4gK3sNCj4gKyAg
ICByZXR1cm4gRnJvbnRlbmRHZXRUYXJnZXRJZChUYXJnZXQtPkZyb250ZW5kKTsNCj4gK30NCj4g
Ky8vVEFSR0VUX0dFVF9QUk9QRVJUWShEZXZpY2VJZCwgVUxPTkcpDQo+ICtVTE9ORw0KPiArVGFy
Z2V0R2V0RGV2aWNlSWQoDQo+ICsgICAgSU4gIFBYRU5WQkRfVEFSR0VUICBUYXJnZXQNCj4gKyAg
ICApDQo+ICt7DQo+ICsgICAgcmV0dXJuIEZyb250ZW5kR2V0RGV2aWNlSWQoVGFyZ2V0LT5Gcm9u
dGVuZCk7DQo+ICt9DQo+ICsNCj4gKy8vVEFSR0VUX0dFVF9QUk9QRVJUWShSZW1vdmFibGUsIEJP
T0xFQU4pDQo+ICtCT09MRUFODQo+ICtUYXJnZXRHZXRSZW1vdmFibGUoDQo+ICsgICAgSU4gIFBY
RU5WQkRfVEFSR0VUICBUYXJnZXQNCj4gKyAgICApDQo+ICt7DQo+ICsgICAgcmV0dXJuIEZyb250
ZW5kR2V0Q2FwcyhUYXJnZXQtPkZyb250ZW5kKS0+UmVtb3ZhYmxlOw0KPiArfQ0KPiArDQo+ICsv
L1RBUkdFVF9HRVRfUFJPUEVSVFkoU3VycHJpc2VSZW1vdmFibGUsIEJPT0xFQU4pDQo+ICtCT09M
RUFODQo+ICtUYXJnZXRHZXRTdXJwcmlzZVJlbW92YWJsZSgNCj4gKyAgICBJTiAgUFhFTlZCRF9U
QVJHRVQgIFRhcmdldA0KPiArICAgICkNCj4gK3sNCj4gKyAgICByZXR1cm4gRnJvbnRlbmRHZXRD
YXBzKFRhcmdldC0+RnJvbnRlbmQpLT5TdXJwcmlzZVJlbW92YWJsZTsNCj4gK30NCj4gKw0KPiAr
I3VuZGVmIFRBUkdFVF9HRVRfUFJPUEVSVFkNCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvdGFy
Z2V0LmggYi9zcmMveGVudmJkL3RhcmdldC5oDQo+IGluZGV4IDg4MDg0NjAuLjdmNjY0YTUgMTAw
NjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvdGFyZ2V0LmgNCj4gKysrIGIvc3JjL3hlbnZiZC90YXJn
ZXQuaA0KPiBAQCAtMzIsNDUgKzMyLDU3IEBADQo+ICAjaWZuZGVmIF9YRU5WQkRfVEFSR0VUX0gN
Cj4gICNkZWZpbmUgX1hFTlZCRF9UQVJHRVRfSA0KPiANCj4gKyNpbmNsdWRlIDxudGRkay5oPg0K
PiArDQo+ICB0eXBlZGVmIHN0cnVjdCBfWEVOVkJEX1RBUkdFVCBYRU5WQkRfVEFSR0VULCAqUFhF
TlZCRF9UQVJHRVQ7DQo+IA0KPiAtI2luY2x1ZGUgPG50ZGRrLmg+DQo+IC0jaW5jbHVkZSA8bnRz
dHJzYWZlLmg+DQo+IC0jaW5jbHVkZSA8eGVudmJkLXN0b3Jwb3J0Lmg+DQo+ICsjaW5jbHVkZSA8
c3RvcnBvcnQuaD4NCj4gKw0KPiArI2luY2x1ZGUgPGRlYnVnX2ludGVyZmFjZS5oPg0KPiArDQo+
ICAjaW5jbHVkZSAiYWRhcHRlci5oIg0KPiAgI2luY2x1ZGUgInNyYmV4dC5oIg0KPiAgI2luY2x1
ZGUgInR5cGVzLmgiDQo+IC0jaW5jbHVkZSA8ZGVidWdfaW50ZXJmYWNlLmg+DQo+IC0NCj4gLWV4
dGVybiBWT0lEDQo+IC1UYXJnZXREZWJ1Z0NhbGxiYWNrKA0KPiAtICAgIF9faW4gUFhFTlZCRF9U
QVJHRVQgICAgICAgICAgICAgVGFyZ2V0LA0KPiAtICAgIF9faW4gUFhFTkJVU19ERUJVR19JTlRF
UkZBQ0UgRGVidWcNCj4gLSAgICApOw0KPiANCj4gLS8vIENyZWF0aW9uL0RlbGV0aW9uDQo+IC1f
X2NoZWNrUmV0dXJuDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIFRhcmdldENyZWF0ZSgNCj4gLSAg
ICBfX2luIFBYRU5WQkRfQURBUFRFUiAgICAgICAgICAgICBBZGFwdGVyLA0KPiAtICAgIF9faW4g
X19udWxsdGVybWluYXRlZCBQQ0hBUiAgRGV2aWNlSWQsDQo+IC0gICAgT1VUIFBYRU5WQkRfVEFS
R0VUKiAgICAgICAgIF9UYXJnZXQNCj4gKyAgICBJTiAgUFhFTlZCRF9BREFQVEVSIEFkYXB0ZXIs
DQo+ICsgICAgSU4gIFBDSEFSICAgICAgICAgICBEZXZpY2VJZCwNCj4gKyAgICBPVVQgUFhFTlZC
RF9UQVJHRVQqIF9UYXJnZXQNCj4gICAgICApOw0KPiANCj4gIGV4dGVybiBWT0lEDQo+ICBUYXJn
ZXREZXN0cm95KA0KPiAtICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0
DQo+ICsgICAgSU4gIFBYRU5WQkRfVEFSR0VUICBUYXJnZXQNCj4gICAgICApOw0KPiANCj4gLV9f
Y2hlY2tSZXR1cm4NCj4gIGV4dGVybiBOVFNUQVRVUw0KPiAgVGFyZ2V0RDNUb0QwKA0KPiAtICAg
IF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0DQo+ICsgICAgSU4gIFBYRU5W
QkRfVEFSR0VUICBUYXJnZXQNCj4gICAgICApOw0KPiANCj4gIGV4dGVybiBWT0lEDQo+ICBUYXJn
ZXREMFRvRDMoDQo+IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQN
Cj4gKyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldA0KPiArICAgICk7DQo+ICsNCj4gK2V4
dGVybiBOVFNUQVRVUw0KPiArVGFyZ2V0RGlzcGF0Y2hQbnAoDQo+ICsgICAgSU4gIFBYRU5WQkRf
VEFSR0VUICBUYXJnZXQsDQo+ICsgICAgSU4gIFBERVZJQ0VfT0JKRUNUICBEZXZpY2VPYmplY3Qs
DQo+ICsgICAgSU4gIFBJUlAgICAgICAgICAgICBJcnANCj4gKyAgICApOw0KPiArDQo+ICtleHRl
cm4gVk9JRA0KPiArVGFyZ2V0SXNzdWVEZXZpY2VFamVjdCgNCj4gKyAgICBJTiAgUFhFTlZCRF9U
QVJHRVQgIFRhcmdldCwNCj4gKyAgICBJTiAgY29uc3QgQ0hBUiAgICAgICpSZWFzb24NCj4gKyAg
ICApOw0KPiArDQo+ICtleHRlcm4gVk9JRA0KPiArVGFyZ2V0RGVidWdDYWxsYmFjaygNCj4gKyAg
ICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldCwNCj4gKyAgICBfX2luIFBY
RU5CVVNfREVCVUdfSU5URVJGQUNFIERlYnVnDQo+ICAgICAgKTsNCj4gDQo+ICAvLyBQblAgU3Rh
dGVzDQo+IEBAIC05OCwyMyArMTEwLDYgQEAgVGFyZ2V0R2V0RGV2aWNlUG5wU3RhdGUoDQo+ICAg
ICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQNCj4gICAgICApOw0KPiAN
Cj4gLS8vIFF1ZXJ5IE1ldGhvZHMNCj4gLWV4dGVybiBVTE9ORw0KPiAtVGFyZ2V0R2V0VGFyZ2V0
SWQoDQo+IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQNCj4gLSAg
ICApOw0KPiAtDQo+IC1leHRlcm4gVUxPTkcNCj4gLVRhcmdldEdldERldmljZUlkKA0KPiAtICAg
IF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0DQo+IC0gICAgKTsNCj4gLQ0K
PiAtX19jaGVja1JldHVybg0KPiAtZXh0ZXJuIFBERVZJQ0VfT0JKRUNUDQo+IC1UYXJnZXRHZXRE
ZXZpY2VPYmplY3QoDQo+IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJn
ZXQNCj4gLSAgICApOw0KPiAtDQo+ICBleHRlcm4gVk9JRA0KPiAgVGFyZ2V0U2V0RGV2aWNlT2Jq
ZWN0KA0KPiAgICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0LA0KPiBA
QCAtMTI3LDEyICsxMjIsNiBAQCBUYXJnZXRJc1BhdXNlZCgNCj4gICAgICBfX2luIFBYRU5WQkRf
VEFSR0VUICAgICAgICAgICAgIFRhcmdldA0KPiAgICAgICk7DQo+IA0KPiAtX19jaGVja1JldHVy
bg0KPiAtZXh0ZXJuIFBYRU5WQkRfQURBUFRFUg0KPiAtVGFyZ2V0R2V0QWRhcHRlcigNCj4gLSAg
ICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldA0KPiAtICAgICk7DQo+IC0N
Cj4gIC8vIFF1ZXVlLVJlbGF0ZWQNCj4gIGV4dGVybiBWT0lEDQo+ICBUYXJnZXRTdWJtaXRSZXF1
ZXN0cygNCj4gQEAgLTE4NSwyNiArMTc0LDE5IEBAIFRhcmdldFNodXRkb3duKA0KPiAgICAgIElO
ICBQWEVOVkJEX1NSQkVYVCAgU3JiRXh0DQo+ICAgICAgKTsNCj4gDQo+IC1leHRlcm4gVk9JRA0K
PiAtVGFyZ2V0U3JiUG5wKA0KPiAtICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAg
VGFyZ2V0LA0KPiAtICAgIF9faW4gUFNDU0lfUE5QX1JFUVVFU1RfQkxPQ0sgU3JiDQo+ICsjZGVm
aW5lIFRBUkdFVF9HRVRfUFJPUEVSVFkoX25hbWUsIF90eXBlKSAgICAgICBcDQo+ICtleHRlcm4g
X3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICtUYXJnZXRHZXQg
IyMgX25hbWUgIyMgKCAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgSU4gIFBYRU5W
QkRfVEFSR0VUICBUYXJnZXQgICAgICAgICAgICAgICAgICBcDQo+ICAgICAgKTsNCj4gDQo+IC0v
LyBQblAgSGFuZGxlcg0KPiAtX19jaGVja1JldHVybg0KPiAtZXh0ZXJuIE5UU1RBVFVTDQo+IC1U
YXJnZXREaXNwYXRjaFBucCgNCj4gLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAg
IFRhcmdldCwNCj4gLSAgICBfX2luIFBERVZJQ0VfT0JKRUNUICAgICAgICAgIERldmljZU9iamVj
dCwNCj4gLSAgICBfX2luIFBJUlAgICAgICAgICAgICAgICAgICAgIElycA0KPiAtICAgICk7DQo+
ICtUQVJHRVRfR0VUX1BST1BFUlRZKEFkYXB0ZXIsIFBYRU5WQkRfQURBUFRFUikNCj4gK1RBUkdF
VF9HRVRfUFJPUEVSVFkoRGV2aWNlT2JqZWN0LCBQREVWSUNFX09CSkVDVCkNCj4gK1RBUkdFVF9H
RVRfUFJPUEVSVFkoVGFyZ2V0SWQsIFVMT05HKQ0KPiArVEFSR0VUX0dFVF9QUk9QRVJUWShEZXZp
Y2VJZCwgVUxPTkcpDQo+ICtUQVJHRVRfR0VUX1BST1BFUlRZKFJlbW92YWJsZSwgQk9PTEVBTikN
Cj4gK1RBUkdFVF9HRVRfUFJPUEVSVFkoU3VycHJpc2VSZW1vdmFibGUsIEJPT0xFQU4pDQo+IA0K
PiAtX19kcnZfbWF4SVJRTChESVNQQVRDSF9MRVZFTCkNCj4gLWV4dGVybiBWT0lEDQo+IC1UYXJn
ZXRJc3N1ZURldmljZUVqZWN0KA0KPiAtICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAg
ICAgVGFyZ2V0LA0KPiAtICAgIF9faW4gX19udWxsdGVybWluYXRlZCBjb25zdCBDSEFSKiBSZWFz
b24NCj4gLSAgICApOw0KPiArI3VuZGVmIFRBUkdFVF9HRVRfUFJPUEVSVFkNCj4gDQo+ICAjZW5k
aWYgLy8gX1hFTlZCRF9UQVJHRVRfSA0KPiAtLQ0KPiAyLjguMw0KPiANCj4gDQo+IF9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBt
YWlsaW5nIGxpc3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHBz
Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1k
ZXZlbA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2lu
LXB2LWRldmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcK
aHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2lu
LXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jun 27 14:00:05 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jun 2017 14:00:05 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPr2C-0006Oy-SJ; Tue, 27 Jun 2017 14:00:04 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=3449104f4=Paul.Durrant@citrix.com>)
 id 1dPr2B-0006Df-Au
 for win-pv-devel@lists.xenproject.org; Tue, 27 Jun 2017 14:00:03 +0000
Received: from [85.158.143.35] by server-7.bemta-6.messagelabs.com id
 BB/5F-03620-2E462595; Tue, 27 Jun 2017 14:00:02 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrKIsWRWlGSWpSXmKPExsWyU9JRQvdhSlC
 kQe9pS4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCa0fB+LXvB+g7GiksfdrA3MJ5pY+xi5OSQEPCT
 WHljIpjNJqAjsfTofCYQW0SgQOL7+3nMIDazgJrE9f1drCC2sECARPfjY8wQNYESf39/ZYewj
 STaFq5m6WLk4GARUJWYskQDJMwr4C4x78QmsFYhgSyJ9QvWg7VyClhL3P38Hmwto4CsxJfG1V
 CrxCVuPYE4QUJAQGLJnvPMELaoxMvH/1ghbAOJrUv3ga1iFtCUWL9LH6JVUWJK90N2iLWCEid
 nPmGZwCg8C8nUWQgds5B0zELSsYCRZRWjRnFqUVlqka6hsV5SUWZ6RkluYmaOrqGBmV5uanFx
 YnpqTmJSsV5yfu4mRmDgMwDBDsYvywIOMUpyMCmJ8q6WCIoU4kvKT6nMSCzOiC8qzUktPsQow
 8GhJMEbnQyUEyxKTU+tSMvMAcYgTFqCg0dJhLfPDSjNW1yQmFucmQ6ROsVozLFh9fovTBx/Jm
 z9wiTEkpeflyolztsPMkkApDSjNA9uECw1XGKUlRLmZQQ6TYinILUoN7MEVf4VozgHo5Iw76U
 koCk8mXklcPteAZ3CBHQKy7wAkFNKEhFSUg2MpoLney2WTxStvMvG8mOfejbXK9bOzrPXeu9x
 J25zZ1o0rz7AuuYjI5OTqtjOpwamf0u5Wac97wxL6k6Z+XzN/KW7fmqHn1Gtqfk3xy9n1t5DV
 j8/q8laNMw6v7GlQJyT8djSPeeCXK7OXLQ6Re2g9rxnUw44NwfP2D7p7E6F8+sEvkWtrxZQUm
 Ipzkg01GIuKk4EAKYWwY8IAwAA
X-Env-Sender: prvs=3449104f4=Paul.Durrant@citrix.com
X-Msg-Ref: server-7.tower-21.messagelabs.com!1498572001!75922426!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25963 invoked from network); 27 Jun 2017 14:00:01 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-7.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 27 Jun 2017 14:00:01 -0000
X-IronPort-AV: E=Sophos;i="5.39,399,1493683200"; d="scan'208";a="48459433"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 08/10] Scope TargetDebugCallback in
 target.c
Thread-Index: AQHS7B9y7fQvJZkAmk+c7HiqUtHsvaI4wuMQ
Date: Tue, 27 Jun 2017 13:59:46 +0000
Message-ID: <8e11526404394dd3a1bf08b4873c0ab7@AMSPEX02CL03.citrite.net>
References: <20170623124917.13956-1-owen.smith@citrix.com>
 <20170623124917.13956-9-owen.smith@citrix.com>
In-Reply-To: <20170623124917.13956-9-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 08/10] Scope TargetDebugCallback in
 target.c
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAyMyBKdW5lIDIwMTcgMTM6NDkNCj4g
VG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8
b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0gg
MDgvMTBdIFNjb3BlIFRhcmdldERlYnVnQ2FsbGJhY2sgaW4gdGFyZ2V0LmMNCj4gDQo+IEZyb206
IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6
IE93ZW4gU21pdGggPG93ZW4uc21pdGhAY2l0cml4LmNvbT4NCg0KUmV2aWV3ZWQtYnk6IFBhdWwg
RHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBzcmMveGVudmJk
L2FkYXB0ZXIuYyB8ICAxOSAtLS0tLQ0KPiAgc3JjL3hlbnZiZC90YXJnZXQuYyAgfCAxOTMgKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQ0KPiAtLS0tLS0tLS0tLQ0KPiAg
c3JjL3hlbnZiZC90YXJnZXQuaCAgfCAgMTAgLS0tDQo+ICAzIGZpbGVzIGNoYW5nZWQsIDEzMCBp
bnNlcnRpb25zKCspLCA5MiBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVu
dmJkL2FkYXB0ZXIuYyBiL3NyYy94ZW52YmQvYWRhcHRlci5jDQo+IGluZGV4IDY1OWRkMjIuLjU1
YTE5NjIgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvYWRhcHRlci5jDQo+ICsrKyBiL3NyYy94
ZW52YmQvYWRhcHRlci5jDQo+IEBAIC04ODEsNyArODgxLDYgQEAgQWRhcHRlckRlYnVnQ2FsbGJh
Y2soDQo+ICAgICAgKQ0KPiAgew0KPiAgICAgIFBYRU5WQkRfQURBUFRFUiBBZGFwdGVyID0gQ29u
dGV4dDsNCj4gLSAgICBVTE9ORyAgICAgICAgICAgVGFyZ2V0SWQ7DQo+IA0KPiAgICAgIFhFTkJV
U19ERUJVRyhQcmludGYsDQo+ICAgICAgICAgICAgICAgICAgICZBZGFwdGVyLT5EZWJ1Z0ludGVy
ZmFjZSwNCj4gQEAgLTkxMSwyNCArOTEwLDYgQEAgQWRhcHRlckRlYnVnQ2FsbGJhY2soDQo+ICAg
ICAgICAgICAgICAgICAgIEFkYXB0ZXItPkNvbXBsZXRlZCk7DQo+IA0KPiAgICAgIEJ1ZmZlckRl
YnVnQ2FsbGJhY2soJkFkYXB0ZXItPkRlYnVnSW50ZXJmYWNlKTsNCj4gLQ0KPiAtICAgIGZvciAo
VGFyZ2V0SWQgPSAwOyBUYXJnZXRJZCA8IFhFTlZCRF9NQVhfVEFSR0VUUzsgKytUYXJnZXRJZCkg
ew0KPiAtICAgICAgICAvLyBubyBuZWVkIHRvIHVzZSBBZGFwdGVyR2V0VGFyZ2V0ICh3aGljaCBp
cyBsb2NrZWQgYXQgRElTUEFUQ0gpIGFzDQo+IGNhbGxlZCBhdCBISUdIX0xFVkVMDQo+IC0gICAg
ICAgIFBYRU5WQkRfVEFSR0VUIFRhcmdldCA9IEFkYXB0ZXItPlRhcmdldExpc3RbVGFyZ2V0SWRd
Ow0KPiAtICAgICAgICBpZiAoVGFyZ2V0ID09IE5VTEwpDQo+IC0gICAgICAgICAgICBjb250aW51
ZTsNCj4gLQ0KPiAtICAgICAgICBYRU5CVVNfREVCVUcoUHJpbnRmLCAmQWRhcHRlci0+RGVidWdJ
bnRlcmZhY2UsDQo+IC0gICAgICAgICAgICAgICAgICAgICAiQURBUFRFUjogPT09PT4gVGFyZ2V0
WyUtM2RdICAgIDogMHglcFxuIiwNCj4gLSAgICAgICAgICAgICAgICAgICAgIFRhcmdldElkLCBU
YXJnZXQpOw0KPiAtDQo+IC0gICAgICAgIC8vIGNhbGwgVGFyZ2V0J3MgZGVidWcgY2FsbGJhY2sg
ZGlyZWN0bHkNCj4gLSAgICAgICAgVGFyZ2V0RGVidWdDYWxsYmFjayhUYXJnZXQsICZBZGFwdGVy
LT5EZWJ1Z0ludGVyZmFjZSk7DQo+IC0NCj4gLSAgICAgICAgWEVOQlVTX0RFQlVHKFByaW50Ziwg
JkFkYXB0ZXItPkRlYnVnSW50ZXJmYWNlLA0KPiAtICAgICAgICAgICAgICAgICAgICAgIkFEQVBU
RVI6IDw9PT09IFRhcmdldFslLTNkXSAgICA6IDB4JXBcbiIsDQo+IC0gICAgICAgICAgICAgICAg
ICAgICBUYXJnZXRJZCwgVGFyZ2V0KTsNCj4gLSAgICB9DQo+ICB9DQo+IA0KPiAgc3RhdGljIE5U
U1RBVFVTDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL3RhcmdldC5jIGIvc3JjL3hlbnZiZC90
YXJnZXQuYw0KPiBpbmRleCA0ZTU5ZTgwLi5lNmNhYjM1IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVu
dmJkL3RhcmdldC5jDQo+ICsrKyBiL3NyYy94ZW52YmQvdGFyZ2V0LmMNCj4gQEAgLTcxLDYgKzcx
LDggQEAgc3RydWN0IF9YRU5WQkRfVEFSR0VUIHsNCj4gDQo+ICAgICAgLy8gRnJvbnRlbmQgKFJp
bmcsIGluY2x1ZGVzIFhlbkJ1cyBpbnRlcmZhY2VzKQ0KPiAgICAgIFBYRU5WQkRfRlJPTlRFTkQg
ICAgICAgICAgICBGcm9udGVuZDsNCj4gKyAgICBYRU5CVVNfREVCVUdfSU5URVJGQUNFICAgICAg
RGVidWdJbnRlcmZhY2U7DQo+ICsgICAgUFhFTkJVU19ERUJVR19DQUxMQkFDSyAgICAgIERlYnVn
Q2FsbGJhY2s7DQo+IA0KPiAgICAgIC8vIFN0YXRlDQo+ICAgICAgTE9ORyAgICAgICAgICAgICAg
ICAgICAgICAgIFBhdXNlZDsNCj4gQEAgLTI0Miw2NiArMjQ0LDYgQEAgX19QbnBTdGF0ZU5hbWUo
DQo+ICAgICAgfQ0KPiAgfQ0KPiANCj4gLURFQ0xTUEVDX05PSU5MSU5FIFZPSUQNCj4gLVRhcmdl
dERlYnVnQ2FsbGJhY2soDQo+IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCBUYXJnZXQsDQo+IC0g
ICAgX19pbiBQWEVOQlVTX0RFQlVHX0lOVEVSRkFDRSBEZWJ1Z0ludGVyZmFjZQ0KPiAtICAgICkN
Cj4gLXsNCj4gLSAgICBpZiAoVGFyZ2V0ID09IE5VTEwgfHwgRGVidWdJbnRlcmZhY2UgPT0gTlVM
TCkNCj4gLSAgICAgICAgcmV0dXJuOw0KPiAtICAgIGlmIChUYXJnZXQtPlNpZ25hdHVyZSAhPSBU
QVJHRVRfU0lHTkFUVVJFKQ0KPiAtICAgICAgICByZXR1cm47DQo+IC0NCj4gLSAgICBYRU5CVVNf
REVCVUcoUHJpbnRmLCBEZWJ1Z0ludGVyZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAgIlRBUkdF
VDogQWRhcHRlciAweCVwIERldmljZU9iamVjdCAweCVwXG4iLA0KPiAtICAgICAgICAgICAgICAg
ICBUYXJnZXQtPkFkYXB0ZXIsDQo+IC0gICAgICAgICAgICAgICAgIFRhcmdldC0+RGV2aWNlT2Jq
ZWN0KTsNCj4gLSAgICBYRU5CVVNfREVCVUcoUHJpbnRmLCBEZWJ1Z0ludGVyZmFjZSwNCj4gLSAg
ICAgICAgICAgICAgICAgIlRBUkdFVDogRGV2aWNlUG5wU3RhdGUgJXMgKCVzKVxuIiwNCj4gLSAg
ICAgICAgICAgICAgICAgX19QbnBTdGF0ZU5hbWUoVGFyZ2V0LT5EZXZpY2VQbnBTdGF0ZSksDQo+
IC0gICAgICAgICAgICAgICAgIF9fUG5wU3RhdGVOYW1lKFRhcmdldC0+UHJldlBucFN0YXRlKSk7
DQo+IC0gICAgWEVOQlVTX0RFQlVHKFByaW50ZiwgRGVidWdJbnRlcmZhY2UsDQo+IC0gICAgICAg
ICAgICAgICAgICJUQVJHRVQ6IERldmljZVBvd2VyU3RhdGUgJXNcbiIsDQo+IC0gICAgICAgICAg
ICAgICAgIFBvd2VyRGV2aWNlU3RhdGVOYW1lKFRhcmdldC0+RGV2aWNlUG93ZXJTdGF0ZSkpOw0K
PiAtICAgIFhFTkJVU19ERUJVRyhQcmludGYsIERlYnVnSW50ZXJmYWNlLA0KPiAtICAgICAgICAg
ICAgICAgICAiVEFSR0VUOiAlc1xuIiwNCj4gLSAgICAgICAgICAgICAgICAgVGFyZ2V0LT5NaXNz
aW5nID8gVGFyZ2V0LT5SZWFzb24gOiAiTm90IE1pc3NpbmciKTsNCj4gLQ0KPiAtICAgIFhFTkJV
U19ERUJVRyhQcmludGYsIERlYnVnSW50ZXJmYWNlLA0KPiAtICAgICAgICAgICAgICAgICAiVEFS
R0VUOiBCTEtJRl9PUHM6IFJFQUQ9JXUgV1JJVEU9JXVcbiIsDQo+IC0gICAgICAgICAgICAgICAg
IFRhcmdldC0+QmxrT3BSZWFkLCBUYXJnZXQtPkJsa09wV3JpdGUpOw0KPiAtICAgIFhFTkJVU19E
RUJVRyhQcmludGYsIERlYnVnSW50ZXJmYWNlLA0KPiAtICAgICAgICAgICAgICAgICAiVEFSR0VU
OiBCTEtJRl9PUHM6IElORElSRUNUX1JFQUQ9JXUNCj4gSU5ESVJFQ1RfV1JJVEU9JXVcbiIsDQo+
IC0gICAgICAgICAgICAgICAgIFRhcmdldC0+QmxrT3BJbmRpcmVjdFJlYWQsIFRhcmdldC0+Qmxr
T3BJbmRpcmVjdFdyaXRlKTsNCj4gLSAgICBYRU5CVVNfREVCVUcoUHJpbnRmLCBEZWJ1Z0ludGVy
ZmFjZSwNCj4gLSAgICAgICAgICAgICAgICAgIlRBUkdFVDogQkxLSUZfT1BzOiBCQVJSSUVSPSV1
IERJU0NBUkQ9JXUgRkxVU0g9JXVcbiIsDQo+IC0gICAgICAgICAgICAgICAgIFRhcmdldC0+Qmxr
T3BCYXJyaWVyLCBUYXJnZXQtPkJsa09wRGlzY2FyZCwgVGFyZ2V0LT5CbGtPcEZsdXNoKTsNCj4g
LSAgICBYRU5CVVNfREVCVUcoUHJpbnRmLCBEZWJ1Z0ludGVyZmFjZSwNCj4gLSAgICAgICAgICAg
ICAgICAgIlRBUkdFVDogRmFpbGVkOiBNYXBzPSV1IEJvdW5jZXM9JXUgR3JhbnRzPSV1XG4iLA0K
PiAtICAgICAgICAgICAgICAgICBUYXJnZXQtPkZhaWxlZE1hcHMsIFRhcmdldC0+RmFpbGVkQm91
bmNlcywgVGFyZ2V0LT5GYWlsZWRHcmFudHMpOw0KPiAtICAgIFhFTkJVU19ERUJVRyhQcmludGYs
IERlYnVnSW50ZXJmYWNlLA0KPiAtICAgICAgICAgICAgICAgICAiVEFSR0VUOiBTZWdtZW50cyBH
cmFudGVkPSVsbHUgQm91bmNlZD0lbGx1XG4iLA0KPiAtICAgICAgICAgICAgICAgICBUYXJnZXQt
PlNlZ3NHcmFudGVkLCBUYXJnZXQtPlNlZ3NCb3VuY2VkKTsNCj4gLQ0KPiAtICAgIF9fTG9va2Fz
aWRlRGVidWcoJlRhcmdldC0+UmVxdWVzdExpc3QsIERlYnVnSW50ZXJmYWNlLCAiUkVRVUVTVHMi
KTsNCj4gLSAgICBfX0xvb2thc2lkZURlYnVnKCZUYXJnZXQtPlNlZ21lbnRMaXN0LCBEZWJ1Z0lu
dGVyZmFjZSwNCj4gIlNFR01FTlRzIik7DQo+IC0gICAgX19Mb29rYXNpZGVEZWJ1ZygmVGFyZ2V0
LT5JbmRpcmVjdExpc3QsIERlYnVnSW50ZXJmYWNlLCAiSU5ESVJFQ1RzIik7DQo+IC0NCj4gLSAg
ICBRdWV1ZURlYnVnQ2FsbGJhY2soJlRhcmdldC0+RnJlc2hTcmJzLCAgICAiRnJlc2ggICAgIiwg
RGVidWdJbnRlcmZhY2UpOw0KPiAtICAgIFF1ZXVlRGVidWdDYWxsYmFjaygmVGFyZ2V0LT5QcmVw
YXJlZFJlcXMsICJQcmVwYXJlZCAiLA0KPiBEZWJ1Z0ludGVyZmFjZSk7DQo+IC0gICAgUXVldWVE
ZWJ1Z0NhbGxiYWNrKCZUYXJnZXQtPlN1Ym1pdHRlZFJlcXMsICJTdWJtaXR0ZWQiLA0KPiBEZWJ1
Z0ludGVyZmFjZSk7DQo+IC0gICAgUXVldWVEZWJ1Z0NhbGxiYWNrKCZUYXJnZXQtPlNodXRkb3du
U3JicywgIlNodXRkb3duICIsDQo+IERlYnVnSW50ZXJmYWNlKTsNCj4gLQ0KPiAtICAgIEZyb250
ZW5kRGVidWdDYWxsYmFjayhUYXJnZXQtPkZyb250ZW5kLCBEZWJ1Z0ludGVyZmFjZSk7DQo+IC0N
Cj4gLSAgICBUYXJnZXQtPkJsa09wUmVhZCA9IFRhcmdldC0+QmxrT3BXcml0ZSA9IDA7DQo+IC0g
ICAgVGFyZ2V0LT5CbGtPcEluZGlyZWN0UmVhZCA9IFRhcmdldC0+QmxrT3BJbmRpcmVjdFdyaXRl
ID0gMDsNCj4gLSAgICBUYXJnZXQtPkJsa09wQmFycmllciA9IFRhcmdldC0+QmxrT3BEaXNjYXJk
ID0gVGFyZ2V0LT5CbGtPcEZsdXNoID0gMDsNCj4gLSAgICBUYXJnZXQtPkZhaWxlZE1hcHMgPSBU
YXJnZXQtPkZhaWxlZEJvdW5jZXMgPSBUYXJnZXQtPkZhaWxlZEdyYW50cyA9IDA7DQo+IC0gICAg
VGFyZ2V0LT5TZWdzR3JhbnRlZCA9IFRhcmdldC0+U2Vnc0JvdW5jZWQgPSAwOw0KPiAtfQ0KPiAt
DQo+IA0KPiAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KPiA9PT09PT09PT09PT09PT09PT09PQ0KPiAgLy8gUG93ZXIgU3RhdGVzDQo+
ICBfX2NoZWNrUmV0dXJuDQo+IEBAIC0yMjczLDYgKzIyMTUsODkgQEAgVGFyZ2V0RGlzcGF0Y2hQ
bnAoDQo+ICAgICAgcmV0dXJuIERyaXZlckRpc3BhdGNoUG5wKERldmljZU9iamVjdCwgSXJwKTsN
Cj4gIH0NCj4gDQo+ICtzdGF0aWMgREVDTFNQRUNfTk9JTkxJTkUgVk9JRA0KPiArVGFyZ2V0RGVi
dWdDYWxsYmFjaygNCj4gKyAgICBJTiAgUFZPSUQgICAgICAgQXJndW1lbnQsDQo+ICsgICAgSU4g
IEJPT0xFQU4gICAgIENyYXNoaW5nDQo+ICsgICAgKQ0KPiArew0KPiArICAgIFBYRU5WQkRfVEFS
R0VUICBUYXJnZXQgPSBBcmd1bWVudDsNCj4gKw0KPiArICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVU
RVIoQ3Jhc2hpbmcpOw0KPiArDQo+ICsgICAgWEVOQlVTX0RFQlVHKFByaW50ZiwNCj4gKyAgICAg
ICAgICAgICAgICAgJlRhcmdldC0+RGVidWdJbnRlcmZhY2UsDQo+ICsgICAgICAgICAgICAgICAg
ICJUQVJHRVQ6IEFkYXB0ZXIgMHglcCBEZXZpY2VPYmplY3QgMHglcFxuIiwNCj4gKyAgICAgICAg
ICAgICAgICAgVGFyZ2V0LT5BZGFwdGVyLA0KPiArICAgICAgICAgICAgICAgICBUYXJnZXQtPkRl
dmljZU9iamVjdCk7DQo+ICsgICAgWEVOQlVTX0RFQlVHKFByaW50ZiwNCj4gKyAgICAgICAgICAg
ICAgICAgJlRhcmdldC0+RGVidWdJbnRlcmZhY2UsDQo+ICsgICAgICAgICAgICAgICAgICJUQVJH
RVQ6IERldmljZVBucFN0YXRlICVzICglcylcbiIsDQo+ICsgICAgICAgICAgICAgICAgIF9fUG5w
U3RhdGVOYW1lKFRhcmdldC0+RGV2aWNlUG5wU3RhdGUpLA0KPiArICAgICAgICAgICAgICAgICBf
X1BucFN0YXRlTmFtZShUYXJnZXQtPlByZXZQbnBTdGF0ZSkpOw0KPiArICAgIFhFTkJVU19ERUJV
RyhQcmludGYsDQo+ICsgICAgICAgICAgICAgICAgICZUYXJnZXQtPkRlYnVnSW50ZXJmYWNlLA0K
PiArICAgICAgICAgICAgICAgICAiVEFSR0VUOiBEZXZpY2VQb3dlclN0YXRlICVzXG4iLA0KPiAr
ICAgICAgICAgICAgICAgICBQb3dlckRldmljZVN0YXRlTmFtZShUYXJnZXQtPkRldmljZVBvd2Vy
U3RhdGUpKTsNCj4gKyAgICBYRU5CVVNfREVCVUcoUHJpbnRmLA0KPiArICAgICAgICAgICAgICAg
ICAmVGFyZ2V0LT5EZWJ1Z0ludGVyZmFjZSwNCj4gKyAgICAgICAgICAgICAgICAgIlRBUkdFVDog
JXNcbiIsDQo+ICsgICAgICAgICAgICAgICAgIFRhcmdldC0+TWlzc2luZyA/IFRhcmdldC0+UmVh
c29uIDogIk5vdCBNaXNzaW5nIik7DQo+ICsNCj4gKyAgICBYRU5CVVNfREVCVUcoUHJpbnRmLA0K
PiArICAgICAgICAgICAgICAgICAmVGFyZ2V0LT5EZWJ1Z0ludGVyZmFjZSwNCj4gKyAgICAgICAg
ICAgICAgICAgIlRBUkdFVDogQkxLSUZfT1BzOiBSRUFEPSV1IFdSSVRFPSV1XG4iLA0KPiArICAg
ICAgICAgICAgICAgICBUYXJnZXQtPkJsa09wUmVhZCwgVGFyZ2V0LT5CbGtPcFdyaXRlKTsNCj4g
KyAgICBYRU5CVVNfREVCVUcoUHJpbnRmLA0KPiArICAgICAgICAgICAgICAgICAmVGFyZ2V0LT5E
ZWJ1Z0ludGVyZmFjZSwNCj4gKyAgICAgICAgICAgICAgICAgIlRBUkdFVDogQkxLSUZfT1BzOiBJ
TkRJUkVDVF9SRUFEPSV1DQo+IElORElSRUNUX1dSSVRFPSV1XG4iLA0KPiArICAgICAgICAgICAg
ICAgICBUYXJnZXQtPkJsa09wSW5kaXJlY3RSZWFkLCBUYXJnZXQtPkJsa09wSW5kaXJlY3RXcml0
ZSk7DQo+ICsgICAgWEVOQlVTX0RFQlVHKFByaW50ZiwNCj4gKyAgICAgICAgICAgICAgICAgJlRh
cmdldC0+RGVidWdJbnRlcmZhY2UsDQo+ICsgICAgICAgICAgICAgICAgICJUQVJHRVQ6IEJMS0lG
X09QczogQkFSUklFUj0ldSBESVNDQVJEPSV1IEZMVVNIPSV1XG4iLA0KPiArICAgICAgICAgICAg
ICAgICBUYXJnZXQtPkJsa09wQmFycmllciwgVGFyZ2V0LT5CbGtPcERpc2NhcmQsIFRhcmdldC0+
QmxrT3BGbHVzaCk7DQo+ICsgICAgWEVOQlVTX0RFQlVHKFByaW50ZiwNCj4gKyAgICAgICAgICAg
ICAgICAgJlRhcmdldC0+RGVidWdJbnRlcmZhY2UsDQo+ICsgICAgICAgICAgICAgICAgICJUQVJH
RVQ6IEZhaWxlZDogTWFwcz0ldSBCb3VuY2VzPSV1IEdyYW50cz0ldVxuIiwNCj4gKyAgICAgICAg
ICAgICAgICAgVGFyZ2V0LT5GYWlsZWRNYXBzLCBUYXJnZXQtPkZhaWxlZEJvdW5jZXMsIFRhcmdl
dC0NCj4gPkZhaWxlZEdyYW50cyk7DQo+ICsgICAgWEVOQlVTX0RFQlVHKFByaW50ZiwNCj4gKyAg
ICAgICAgICAgICAgICAgJlRhcmdldC0+RGVidWdJbnRlcmZhY2UsDQo+ICsgICAgICAgICAgICAg
ICAgICJUQVJHRVQ6IFNlZ21lbnRzIEdyYW50ZWQ9JWxsdSBCb3VuY2VkPSVsbHVcbiIsDQo+ICsg
ICAgICAgICAgICAgICAgIFRhcmdldC0+U2Vnc0dyYW50ZWQsIFRhcmdldC0+U2Vnc0JvdW5jZWQp
Ow0KPiArDQo+ICsgICAgX19Mb29rYXNpZGVEZWJ1ZygmVGFyZ2V0LT5SZXF1ZXN0TGlzdCwNCj4g
KyAgICAgICAgICAgICAgICAgICAgICZUYXJnZXQtPkRlYnVnSW50ZXJmYWNlLA0KPiArICAgICAg
ICAgICAgICAgICAgICAgIlJFUVVFU1RzIik7DQo+ICsgICAgX19Mb29rYXNpZGVEZWJ1ZygmVGFy
Z2V0LT5TZWdtZW50TGlzdCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICZUYXJnZXQtPkRlYnVn
SW50ZXJmYWNlLA0KPiArICAgICAgICAgICAgICAgICAgICAgIlNFR01FTlRzIik7DQo+ICsgICAg
X19Mb29rYXNpZGVEZWJ1ZygmVGFyZ2V0LT5JbmRpcmVjdExpc3QsDQo+ICsgICAgICAgICAgICAg
ICAgICAgICAmVGFyZ2V0LT5EZWJ1Z0ludGVyZmFjZSwNCj4gKyAgICAgICAgICAgICAgICAgICAg
ICJJTkRJUkVDVHMiKTsNCj4gKw0KPiArICAgIFF1ZXVlRGVidWdDYWxsYmFjaygmVGFyZ2V0LT5G
cmVzaFNyYnMsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICJGcmVzaCAgICAiLA0KPiArICAg
ICAgICAgICAgICAgICAgICAgICAmVGFyZ2V0LT5EZWJ1Z0ludGVyZmFjZSk7DQo+ICsgICAgUXVl
dWVEZWJ1Z0NhbGxiYWNrKCZUYXJnZXQtPlByZXBhcmVkUmVxcywNCj4gKyAgICAgICAgICAgICAg
ICAgICAgICAgIlByZXBhcmVkICIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICZUYXJnZXQt
PkRlYnVnSW50ZXJmYWNlKTsNCj4gKyAgICBRdWV1ZURlYnVnQ2FsbGJhY2soJlRhcmdldC0+U3Vi
bWl0dGVkUmVxcywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIlN1Ym1pdHRlZCIsDQo+ICsg
ICAgICAgICAgICAgICAgICAgICAgICZUYXJnZXQtPkRlYnVnSW50ZXJmYWNlKTsNCj4gKyAgICBR
dWV1ZURlYnVnQ2FsbGJhY2soJlRhcmdldC0+U2h1dGRvd25TcmJzLA0KPiArICAgICAgICAgICAg
ICAgICAgICAgICAiU2h1dGRvd24gIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgJlRhcmdl
dC0+RGVidWdJbnRlcmZhY2UpOw0KPiArDQo+ICsgICAgRnJvbnRlbmREZWJ1Z0NhbGxiYWNrKFRh
cmdldC0+RnJvbnRlbmQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICZUYXJnZXQtPkRl
YnVnSW50ZXJmYWNlKTsNCj4gKw0KPiArICAgIFRhcmdldC0+QmxrT3BSZWFkID0gVGFyZ2V0LT5C
bGtPcFdyaXRlID0gMDsNCj4gKyAgICBUYXJnZXQtPkJsa09wSW5kaXJlY3RSZWFkID0gVGFyZ2V0
LT5CbGtPcEluZGlyZWN0V3JpdGUgPSAwOw0KPiArICAgIFRhcmdldC0+QmxrT3BCYXJyaWVyID0g
VGFyZ2V0LT5CbGtPcERpc2NhcmQgPSBUYXJnZXQtPkJsa09wRmx1c2ggPSAwOw0KPiArICAgIFRh
cmdldC0+RmFpbGVkTWFwcyA9IFRhcmdldC0+RmFpbGVkQm91bmNlcyA9IFRhcmdldC0+RmFpbGVk
R3JhbnRzID0gMDsNCj4gKyAgICBUYXJnZXQtPlNlZ3NHcmFudGVkID0gVGFyZ2V0LT5TZWdzQm91
bmNlZCA9IDA7DQo+ICt9DQo+ICsNCj4gIE5UU1RBVFVTDQo+ICBUYXJnZXREM1RvRDAoDQo+ICAg
ICAgSU4gIFBYRU5WQkRfVEFSR0VUICBUYXJnZXQNCj4gQEAgLTIyODYsMjUgKzIzMTEsNTUgQEAg
VGFyZ2V0RDNUb0QwKA0KPiANCj4gICAgICBWZXJib3NlKCJUYXJnZXRbJWRdIDogRDMtPkQwXG4i
LCBUYXJnZXRJZCk7DQo+IA0KPiAtICAgIHN0YXR1cyA9IEZyb250ZW5kRDNUb0QwKFRhcmdldC0+
RnJvbnRlbmQpOw0KPiArICAgIEFkYXB0ZXJHZXREZWJ1Z0ludGVyZmFjZShUYXJnZXRHZXRBZGFw
dGVyKFRhcmdldCksDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZUYXJnZXQtPkRl
YnVnSW50ZXJmYWNlKTsNCj4gKw0KPiArICAgIHN0YXR1cyA9IFhFTkJVU19ERUJVRyhBY3F1aXJl
LCAmVGFyZ2V0LT5EZWJ1Z0ludGVyZmFjZSk7DQo+ICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1
cykpDQo+ICAgICAgICAgIGdvdG8gZmFpbDE7DQo+IA0KPiAtICAgIHN0YXR1cyA9IEZyb250ZW5k
U2V0U3RhdGUoVGFyZ2V0LT5Gcm9udGVuZCwgWEVOVkJEX0VOQUJMRUQpOw0KPiArICAgIHN0YXR1
cyA9IFhFTkJVU19ERUJVRyhSZWdpc3RlciwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
JlRhcmdldC0+RGVidWdJbnRlcmZhY2UsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIF9f
TU9EVUxFX18sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldERlYnVnQ2FsbGJh
Y2ssDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldCwNCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgJlRhcmdldC0+RGVidWdDYWxsYmFjayk7DQo+ICAgICAgaWYgKCFOVF9T
VUNDRVNTKHN0YXR1cykpDQo+ICAgICAgICAgIGdvdG8gZmFpbDI7DQo+IA0KPiArICAgIHN0YXR1
cyA9IEZyb250ZW5kRDNUb0QwKFRhcmdldC0+RnJvbnRlbmQpOw0KPiArICAgIGlmICghTlRfU1VD
Q0VTUyhzdGF0dXMpKQ0KPiArICAgICAgICBnb3RvIGZhaWwzOw0KPiArDQo+ICsgICAgc3RhdHVz
ID0gRnJvbnRlbmRTZXRTdGF0ZShUYXJnZXQtPkZyb250ZW5kLCBYRU5WQkRfRU5BQkxFRCk7DQo+
ICsgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ICsgICAgICAgIGdvdG8gZmFpbDQ7DQo+
ICsNCj4gICAgICBfX1RhcmdldFVucGF1c2VEYXRhUGF0aChUYXJnZXQpOw0KPiANCj4gICAgICBy
ZXR1cm4gU1RBVFVTX1NVQ0NFU1M7DQo+IA0KPiArZmFpbDQ6DQo+ICsgICAgRXJyb3IoImZhaWw0
XG4iKTsNCj4gKyAgICBGcm9udGVuZEQwVG9EMyhUYXJnZXQtPkZyb250ZW5kKTsNCj4gKw0KPiAr
ZmFpbDM6DQo+ICsgICAgRXJyb3IoImZhaWwzXG4iKTsNCj4gKyAgICBYRU5CVVNfREVCVUcoRGVy
ZWdpc3RlciwNCj4gKyAgICAgICAgICAgICAgICAgJlRhcmdldC0+RGVidWdJbnRlcmZhY2UsDQo+
ICsgICAgICAgICAgICAgICAgIFRhcmdldC0+RGVidWdDYWxsYmFjayk7DQo+ICsgICAgVGFyZ2V0
LT5EZWJ1Z0NhbGxiYWNrID0gTlVMTDsNCj4gKw0KPiAgZmFpbDI6DQo+ICAgICAgRXJyb3IoIkZh
aWwyXG4iKTsNCj4gLSAgICBGcm9udGVuZEQwVG9EMyhUYXJnZXQtPkZyb250ZW5kKTsNCj4gKyAg
ICBYRU5CVVNfREVCVUcoUmVsZWFzZSwNCj4gKyAgICAgICAgICAgICAgICAgJlRhcmdldC0+RGVi
dWdJbnRlcmZhY2UpOw0KPiANCj4gIGZhaWwxOg0KPiAgICAgIEVycm9yKCJGYWlsMSAoJTA4eClc
biIsIHN0YXR1cyk7DQo+IA0KPiArICAgIFJ0bFplcm9NZW1vcnkoJlRhcmdldC0+RGVidWdJbnRl
cmZhY2UsDQo+ICsgICAgICAgICAgICAgICAgICBzaXplb2YoWEVOQlVTX0RFQlVHX0lOVEVSRkFD
RSkpOw0KPiAgICAgIFRhcmdldC0+RGV2aWNlUG93ZXJTdGF0ZSA9IFBvd2VyRGV2aWNlRDM7DQo+
IA0KPiAgICAgIHJldHVybiBzdGF0dXM7DQo+IEBAIC0yMzIzLDkgKzIzNzgsMjEgQEAgVGFyZ2V0
RDBUb0QzKA0KPiAgICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBEMC0+RDNcbiIsIFRhcmdldElk
KTsNCj4gDQo+ICAgICAgX19UYXJnZXRQYXVzZURhdGFQYXRoKFRhcmdldCwgRkFMU0UpOw0KPiAr
DQo+ICAgICAgKFZPSUQpIEZyb250ZW5kU2V0U3RhdGUoVGFyZ2V0LT5Gcm9udGVuZCwgWEVOVkJE
X0NMT1NFRCk7DQo+IA0KPiAgICAgIEZyb250ZW5kRDBUb0QzKFRhcmdldC0+RnJvbnRlbmQpOw0K
PiArDQo+ICsgICAgWEVOQlVTX0RFQlVHKERlcmVnaXN0ZXIsDQo+ICsgICAgICAgICAgICAgICAg
ICZUYXJnZXQtPkRlYnVnSW50ZXJmYWNlLA0KPiArICAgICAgICAgICAgICAgICBUYXJnZXQtPkRl
YnVnQ2FsbGJhY2spOw0KPiArICAgIFRhcmdldC0+RGVidWdDYWxsYmFjayA9IE5VTEw7DQo+ICsN
Cj4gKyAgICBYRU5CVVNfREVCVUcoUmVsZWFzZSwNCj4gKyAgICAgICAgICAgICAgICAgJlRhcmdl
dC0+RGVidWdJbnRlcmZhY2UpOw0KPiArDQo+ICsgICAgUnRsWmVyb01lbW9yeSgmVGFyZ2V0LT5E
ZWJ1Z0ludGVyZmFjZSwNCj4gKyAgICAgICAgICAgICAgICAgIHNpemVvZihYRU5CVVNfREVCVUdf
SU5URVJGQUNFKSk7DQo+ICB9DQo+IA0KPiAgc3RhdGljIEZPUkNFSU5MSU5FIFVMT05HDQo+IGRp
ZmYgLS1naXQgYS9zcmMveGVudmJkL3RhcmdldC5oIGIvc3JjL3hlbnZiZC90YXJnZXQuaA0KPiBp
bmRleCA3ZjY2NGE1Li4zMDczOGZjIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3RhcmdldC5o
DQo+ICsrKyBiL3NyYy94ZW52YmQvdGFyZ2V0LmgNCj4gQEAgLTM2LDEwICszNiw2IEBADQo+IA0K
PiAgdHlwZWRlZiBzdHJ1Y3QgX1hFTlZCRF9UQVJHRVQgWEVOVkJEX1RBUkdFVCwgKlBYRU5WQkRf
VEFSR0VUOw0KPiANCj4gLSNpbmNsdWRlIDxzdG9ycG9ydC5oPg0KPiAtDQo+IC0jaW5jbHVkZSA8
ZGVidWdfaW50ZXJmYWNlLmg+DQo+IC0NCj4gICNpbmNsdWRlICJhZGFwdGVyLmgiDQo+ICAjaW5j
bHVkZSAic3JiZXh0LmgiDQo+ICAjaW5jbHVkZSAidHlwZXMuaCINCj4gQEAgLTc5LDEyICs3NSw2
IEBAIFRhcmdldElzc3VlRGV2aWNlRWplY3QoDQo+ICAgICAgSU4gIGNvbnN0IENIQVIgICAgICAq
UmVhc29uDQo+ICAgICAgKTsNCj4gDQo+IC1leHRlcm4gVk9JRA0KPiAtVGFyZ2V0RGVidWdDYWxs
YmFjaygNCj4gLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldCwNCj4g
LSAgICBfX2luIFBYRU5CVVNfREVCVUdfSU5URVJGQUNFIERlYnVnDQo+IC0gICAgKTsNCj4gLQ0K
PiAgLy8gUG5QIFN0YXRlcw0KPiAgZXh0ZXJuIFZPSUQNCj4gIFRhcmdldFNldE1pc3NpbmcoDQo+
IC0tDQo+IDIuOC4zDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2
ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9j
Z2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndp
bi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qu
b3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue Jun 27 14:07:34 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jun 2017 14:07:34 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPr9S-0006g2-ED; Tue, 27 Jun 2017 14:07:34 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=3449104f4=Paul.Durrant@citrix.com>)
 id 1dPr9R-0006fw-1D
 for win-pv-devel@lists.xenproject.org; Tue, 27 Jun 2017 14:07:33 +0000
Received: from [193.109.254.147] by server-11.bemta-6.messagelabs.com id
 94/A5-03587-4A662595; Tue, 27 Jun 2017 14:07:32 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrLIsWRWlGSWpSXmKPExsWyU9JRQndxWlC
 kwZ07ShZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y8fmO0wF38oqtkzcxNTAuKG0i5GTQ0LAT+Lq
 rE5mEJtNQEdi6dH5TCC2iECBxPf388DizAJqEtf3d7GC2MICvhKT/05ghKjxk+haMosZwjaSW
 NLxACzOIqAq8ermNnYQm1fAXeLs/X4wW0ggW2LlustsIDangI1EZ9tJsF5GAVmJL42roXaJS9
 x6AnGDhICAxJI955khbFGJl4//sULYBhJbl+5j6WLkAKrXlFi/Sx+iVVFiSvdDqLWCEidnPmG
 ZwCg8C8nUWQgds5B0zELSsYCRZRWjenFqUVlqka6hXlJRZnpGSW5iZo6uoYGZXm5qcXFiempO
 YlKxXnJ+7iZGYNAzAMEOxp3PnQ4xSnIwKYnyrpYIihTiS8pPqcxILM6ILyrNSS0+xCjDwaEkw
 bs8FSgnWJSanlqRlpkDjD+YtAQHj5IIb58bUJq3uCAxtzgzHSJ1ilGXY8Pq9V+YhFjy8vNSpc
 R55YDRLCQAUpRRmgc3ApYKLjHKSgnzMgIdJcRTkFqUm1mCKv+KUZyDUUmYdwHIJTyZeSVwm14
 BHcEEdATLvACQI0oSEVJSDYz5G5++OpqWeWn7xw0fbrktalvBwrAgzvSU6uGkrM7usCP333te
 XVTql1z20f5Pf0v55nux13I44t+3r/O5EK6YfPjPg2ctpspTVs/8YVGT2sZ9JPLEs0WmKXWf1
 ixREwpQrWY//aZMSVYt47SF+K7zWqtEnlnwevZu26bo48Xwb6b99oeFX/8osRRnJBpqMRcVJw
 IA1PFqcAADAAA=
X-Env-Sender: prvs=3449104f4=Paul.Durrant@citrix.com
X-Msg-Ref: server-11.tower-27.messagelabs.com!1498572451!79141936!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 32568 invoked from network); 27 Jun 2017 14:07:31 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-11.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 27 Jun 2017 14:07:31 -0000
X-IronPort-AV: E=Sophos;i="5.39,399,1493683200"; d="scan'208";a="48459973"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 09/10] Move suspend callback into target.c
Thread-Index: AQHS7B9H1+dsO6jWvkKWC7XnDIcGM6I4xBUw
Date: Tue, 27 Jun 2017 14:03:57 +0000
Message-ID: <2a833ba79e1347dda8cb02937129d062@AMSPEX02CL03.citrite.net>
References: <20170623124917.13956-1-owen.smith@citrix.com>
 <20170623124917.13956-10-owen.smith@citrix.com>
In-Reply-To: <20170623124917.13956-10-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 09/10] Move suspend callback into target.c
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAyMyBKdW5lIDIwMTcgMTM6NDkNCj4g
VG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8
b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0gg
MDkvMTBdIE1vdmUgc3VzcGVuZCBjYWxsYmFjayBpbnRvIHRhcmdldC5jDQo+IA0KPiBGcm9tOiBP
d2VuIFNtaXRoIDxvd2VuLnNtaXRoQGNpdHJpeC5jb20+DQo+IA0KPiBSZW1vdmUgY2hhaW5lZCBj
YWxsIGZyb20gYWRhcHRlci5jDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBPd2VuIFNtaXRoIDxvd2Vu
LnNtaXRoQGNpdHJpeC5jb20+DQoNClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVy
cmFudEBjaXRyaXguY29tPg0KDQo+IC0tLQ0KPiAgc3JjL3hlbnZiZC9mcm9udGVuZC5jIHwgICAz
IC0NCj4gIHNyYy94ZW52YmQvdGFyZ2V0LmMgICB8IDE5MiArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKystLS0tLS0tLS0tLS0NCj4gLS0tLS0tLS0NCj4gIHNyYy94ZW52YmQvdGFyZ2V0Lmgg
ICB8ICAxMCAtLS0NCj4gIDMgZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKyksIDkxIGRl
bGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvZnJvbnRlbmQuYyBiL3Ny
Yy94ZW52YmQvZnJvbnRlbmQuYw0KPiBpbmRleCBkNTZmYzg0Li4xM2FiOWI0IDEwMDY0NA0KPiAt
LS0gYS9zcmMveGVudmJkL2Zyb250ZW5kLmMNCj4gKysrIGIvc3JjL3hlbnZiZC9mcm9udGVuZC5j
DQo+IEBAIC0xNDEyLDggKzE0MTIsNiBAQCBGcm9udGVuZFN1c3BlbmRMYXRlQ2FsbGJhY2soDQo+
ICAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6ID09PT4gZnJvbSAlc1xuIiwgRnJvbnRlbmQtPlRh
cmdldElkLA0KPiBfX1hlbnZiZFN0YXRlTmFtZShGcm9udGVuZC0+U3RhdGUpKTsNCj4gICAgICBT
dGF0ZSA9IEZyb250ZW5kLT5TdGF0ZTsNCj4gDQo+IC0gICAgVGFyZ2V0UHJlUmVzdW1lKEZyb250
ZW5kLT5UYXJnZXQpOw0KPiAtDQo+ICAgICAgLy8gZG9udCBhY3F1aXJlIHN0YXRlIGxvY2sgLSBj
YWxsZWQgYXQgRElTUEFUQ0ggb24gMSB2Q1BVIHdpdGggaW50ZXJydXB0cw0KPiBlbmFibGVkDQo+
ICAgICAgU3RhdHVzID0gX19Gcm9udGVuZFNldFN0YXRlKEZyb250ZW5kLCBYRU5WQkRfQ0xPU0VE
KTsNCj4gICAgICBpZiAoIU5UX1NVQ0NFU1MoU3RhdHVzKSkgew0KPiBAQCAtMTQyOCw3ICsxNDI2
LDYgQEAgRnJvbnRlbmRTdXNwZW5kTGF0ZUNhbGxiYWNrKA0KPiAgICAgICAgICBBU1NFUlQoRkFM
U0UpOw0KPiAgICAgIH0NCj4gDQo+IC0gICAgVGFyZ2V0UG9zdFJlc3VtZShGcm9udGVuZC0+VGFy
Z2V0KTsNCj4gICAgICBOb3RpZmllclRyaWdnZXIoRnJvbnRlbmQtPk5vdGlmaWVyKTsNCj4gDQo+
ICAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IDw9PT0gcmVzdG9yZWQgJXNcbiIsIEZyb250ZW5k
LT5UYXJnZXRJZCwNCj4gX19YZW52YmRTdGF0ZU5hbWUoRnJvbnRlbmQtPlN0YXRlKSk7DQo+IGRp
ZmYgLS1naXQgYS9zcmMveGVudmJkL3RhcmdldC5jIGIvc3JjL3hlbnZiZC90YXJnZXQuYw0KPiBp
bmRleCBlNmNhYjM1Li4yNTI3MzYwIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3RhcmdldC5j
DQo+ICsrKyBiL3NyYy94ZW52YmQvdGFyZ2V0LmMNCj4gQEAgLTcyLDcgKzcyLDkgQEAgc3RydWN0
IF9YRU5WQkRfVEFSR0VUIHsNCj4gICAgICAvLyBGcm9udGVuZCAoUmluZywgaW5jbHVkZXMgWGVu
QnVzIGludGVyZmFjZXMpDQo+ICAgICAgUFhFTlZCRF9GUk9OVEVORCAgICAgICAgICAgIEZyb250
ZW5kOw0KPiAgICAgIFhFTkJVU19ERUJVR19JTlRFUkZBQ0UgICAgICBEZWJ1Z0ludGVyZmFjZTsN
Cj4gKyAgICBYRU5CVVNfU1VTUEVORF9JTlRFUkZBQ0UgICAgU3VzcGVuZEludGVyZmFjZTsNCj4g
ICAgICBQWEVOQlVTX0RFQlVHX0NBTExCQUNLICAgICAgRGVidWdDYWxsYmFjazsNCj4gKyAgICBQ
WEVOQlVTX1NVU1BFTkRfQ0FMTEJBQ0sgICAgU3VzcGVuZENhbGxiYWNrOw0KPiANCj4gICAgICAv
LyBTdGF0ZQ0KPiAgICAgIExPTkcgICAgICAgICAgICAgICAgICAgICAgICBQYXVzZWQ7DQo+IEBA
IC0xMzU1LDgxICsxMzU3LDYgQEAgVGFyZ2V0Q29tcGxldGVSZXNwb25zZSgNCj4gICAgICB9DQo+
ICB9DQo+IA0KPiAtVk9JRA0KPiAtVGFyZ2V0UHJlUmVzdW1lKA0KPiAtICAgIF9faW4gUFhFTlZC
RF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0DQo+IC0gICAgKQ0KPiAtew0KPiAtICAgIExJU1Rf
RU5UUlkgICAgICAgICAgTGlzdDsNCj4gLQ0KPiAtICAgIEluaXRpYWxpemVMaXN0SGVhZCgmTGlz
dCk7DQo+IC0NCj4gLSAgICAvLyBwb3AgYWxsIHN1Ym1pdHRlZCByZXF1ZXN0cywgY2xlYW51cCBh
bmQgYWRkIGFzc29jaWF0ZWQgU1JCIHRvIGEgbGlzdA0KPiAtICAgIGZvciAoOzspIHsNCj4gLSAg
ICAgICAgUFhFTlZCRF9TUkJFWFQgIFNyYkV4dDsNCj4gLSAgICAgICAgUFhFTlZCRF9SRVFVRVNU
IFJlcXVlc3Q7DQo+IC0gICAgICAgIFBMSVNUX0VOVFJZICAgICBFbnRyeSA9IFF1ZXVlUG9wKCZU
YXJnZXQtPlN1Ym1pdHRlZFJlcXMpOw0KPiAtICAgICAgICBpZiAoRW50cnkgPT0gTlVMTCkNCj4g
LSAgICAgICAgICAgIGJyZWFrOw0KPiAtICAgICAgICBSZXF1ZXN0ID0gQ09OVEFJTklOR19SRUNP
UkQoRW50cnksIFhFTlZCRF9SRVFVRVNULCBFbnRyeSk7DQo+IC0gICAgICAgIFNyYkV4dCA9IEdl
dFNyYkV4dChSZXF1ZXN0LT5TcmIpOw0KPiAtDQo+IC0gICAgICAgIFRhcmdldFB1dFJlcXVlc3Qo
VGFyZ2V0LCBSZXF1ZXN0KTsNCj4gLQ0KPiAtICAgICAgICBpZiAoSW50ZXJsb2NrZWREZWNyZW1l
bnQoJlNyYkV4dC0+Q291bnQpID09IDApIHsNCj4gLSAgICAgICAgICAgIEluc2VydFRhaWxMaXN0
KCZMaXN0LCAmU3JiRXh0LT5FbnRyeSk7DQo+IC0gICAgICAgIH0NCj4gLSAgICB9DQo+IC0NCj4g
LSAgICAvLyBwb3AgYWxsIHByZXBhcmVkIHJlcXVlc3RzLCBjbGVhbnVwIGFuZCBhZGQgYXNzb2Np
YXRlZCBTUkIgdG8gYSBsaXN0DQo+IC0gICAgZm9yICg7Oykgew0KPiAtICAgICAgICBQWEVOVkJE
X1NSQkVYVCAgU3JiRXh0Ow0KPiAtICAgICAgICBQWEVOVkJEX1JFUVVFU1QgUmVxdWVzdDsNCj4g
LSAgICAgICAgUExJU1RfRU5UUlkgICAgIEVudHJ5ID0gUXVldWVQb3AoJlRhcmdldC0+UHJlcGFy
ZWRSZXFzKTsNCj4gLSAgICAgICAgaWYgKEVudHJ5ID09IE5VTEwpDQo+IC0gICAgICAgICAgICBi
cmVhazsNCj4gLSAgICAgICAgUmVxdWVzdCA9IENPTlRBSU5JTkdfUkVDT1JEKEVudHJ5LCBYRU5W
QkRfUkVRVUVTVCwgRW50cnkpOw0KPiAtICAgICAgICBTcmJFeHQgPSBHZXRTcmJFeHQoUmVxdWVz
dC0+U3JiKTsNCj4gLQ0KPiAtICAgICAgICBUYXJnZXRQdXRSZXF1ZXN0KFRhcmdldCwgUmVxdWVz
dCk7DQo+IC0NCj4gLSAgICAgICAgaWYgKEludGVybG9ja2VkRGVjcmVtZW50KCZTcmJFeHQtPkNv
dW50KSA9PSAwKSB7DQo+IC0gICAgICAgICAgICBJbnNlcnRUYWlsTGlzdCgmTGlzdCwgJlNyYkV4
dC0+RW50cnkpOw0KPiAtICAgICAgICB9DQo+IC0gICAgfQ0KPiAtDQo+IC0gICAgLy8gZm9yZWFj
aCBTUkIgaW4gbGlzdCwgcHV0IG9uIHN0YXJ0IG9mIEZyZXNoU3Jicw0KPiAtICAgIGZvciAoOzsp
IHsNCj4gLSAgICAgICAgUFhFTlZCRF9TUkJFWFQgIFNyYkV4dDsNCj4gLSAgICAgICAgUExJU1Rf
RU5UUlkgICAgIEVudHJ5ID0gUmVtb3ZlVGFpbExpc3QoJkxpc3QpOw0KPiAtICAgICAgICBpZiAo
RW50cnkgPT0gJkxpc3QpDQo+IC0gICAgICAgICAgICBicmVhazsNCj4gLSAgICAgICAgU3JiRXh0
ID0gQ09OVEFJTklOR19SRUNPUkQoRW50cnksIFhFTlZCRF9TUkJFWFQsIEVudHJ5KTsNCj4gLQ0K
PiAtICAgICAgICBRdWV1ZVVuUG9wKCZUYXJnZXQtPkZyZXNoU3JicywgJlNyYkV4dC0+RW50cnkp
Ow0KPiAtICAgIH0NCj4gLQ0KPiAtICAgIC8vIG5vdyB0aGUgZmlyc3Qgc2V0IG9mIHJlcXVlc3Rz
IHBvcHBlZCBvZmYgc3VibWl0dGVkIGxpc3QgaXMgdGhlIG5leHQgU1JCDQo+IC0gICAgLy8gdG8g
YmUgcG9wcGVkIG9mZiB0aGUgZnJlc2ggbGlzdA0KPiAtfQ0KPiAtDQo+IC1WT0lEDQo+IC1UYXJn
ZXRQb3N0UmVzdW1lKA0KPiAtICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFy
Z2V0DQo+IC0gICAgKQ0KPiAtew0KPiAtICAgIEtJUlFMICAgSXJxbDsNCj4gLQ0KPiAtICAgIFZl
cmJvc2UoIlRhcmdldFslZF0gOiAlZCBGcmVzaCBTUkJzXG4iLCBUYXJnZXRHZXRUYXJnZXRJZChU
YXJnZXQpLA0KPiBRdWV1ZUNvdW50KCZUYXJnZXQtPkZyZXNoU3JicykpOw0KPiAtDQo+IC0gICAg
Ly8gY2xlYXIgbWlzc2luZyBmbGFnDQo+IC0gICAgS2VBY3F1aXJlU3BpbkxvY2soJlRhcmdldC0+
TG9jaywgJklycWwpOw0KPiAtICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiAlcyAoJXMpXG4iLCBU
YXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLCBUYXJnZXQtDQo+ID5NaXNzaW5nID8gIk1JU1NJTkci
IDogIk5PVF9NSVNTSU5HIiwgVGFyZ2V0LT5SZWFzb24pOw0KPiAtICAgIFRhcmdldC0+TWlzc2lu
ZyA9IEZBTFNFOw0KPiAtICAgIFRhcmdldC0+UmVhc29uID0gTlVMTDsNCj4gLSAgICBLZVJlbGVh
c2VTcGluTG9jaygmVGFyZ2V0LT5Mb2NrLCBJcnFsKTsNCj4gLX0NCj4gLQ0KPiANCj4gLy89PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4g
PT09PT09PT09PT09PT09PT09PT0NCj4gIC8vIFNSQnMNCj4gIF9fY2hlY2tSZXR1cm4NCj4gQEAg
LTIyOTgsNiArMjIyNSw3NiBAQCBUYXJnZXREZWJ1Z0NhbGxiYWNrKA0KPiAgICAgIFRhcmdldC0+
U2Vnc0dyYW50ZWQgPSBUYXJnZXQtPlNlZ3NCb3VuY2VkID0gMDsNCj4gIH0NCj4gDQo+ICtzdGF0
aWMgREVDTFNQRUNfTk9JTkxJTkUgVk9JRA0KPiArVGFyZ2V0U3VzcGVuZENhbGxiYWNrKA0KPiAr
ICAgIElOICBQVk9JRCAgICAgICBBcmd1bWVudA0KPiArICAgICkNCj4gK3sNCj4gKyAgICBQWEVO
VkJEX1RBUkdFVCAgVGFyZ2V0ID0gQXJndW1lbnQ7DQo+ICsgICAgTElTVF9FTlRSWSAgICAgIExp
c3Q7DQo+ICsNCj4gKyAgICBJbml0aWFsaXplTGlzdEhlYWQoJkxpc3QpOw0KPiArDQo+ICsgICAg
Ly8gcG9wIGFsbCBzdWJtaXR0ZWQgcmVxdWVzdHMsIGNsZWFudXAgYW5kIGFkZCBhc3NvY2lhdGVk
IFNSQiB0byBhIGxpc3QNCj4gKyAgICBmb3IgKDs7KSB7DQo+ICsgICAgICAgIFBYRU5WQkRfU1JC
RVhUICBTcmJFeHQ7DQo+ICsgICAgICAgIFBYRU5WQkRfUkVRVUVTVCBSZXF1ZXN0Ow0KPiArICAg
ICAgICBQTElTVF9FTlRSWSAgICAgRW50cnkgPSBRdWV1ZVBvcCgmVGFyZ2V0LT5TdWJtaXR0ZWRS
ZXFzKTsNCj4gKyAgICAgICAgaWYgKEVudHJ5ID09IE5VTEwpDQo+ICsgICAgICAgICAgICBicmVh
azsNCj4gKyAgICAgICAgUmVxdWVzdCA9IENPTlRBSU5JTkdfUkVDT1JEKEVudHJ5LCBYRU5WQkRf
UkVRVUVTVCwgRW50cnkpOw0KPiArICAgICAgICBTcmJFeHQgPSBHZXRTcmJFeHQoUmVxdWVzdC0+
U3JiKTsNCj4gKw0KPiArICAgICAgICBUYXJnZXRQdXRSZXF1ZXN0KFRhcmdldCwgUmVxdWVzdCk7
DQo+ICsNCj4gKyAgICAgICAgaWYgKEludGVybG9ja2VkRGVjcmVtZW50KCZTcmJFeHQtPkNvdW50
KSA9PSAwKSB7DQo+ICsgICAgICAgICAgICBJbnNlcnRUYWlsTGlzdCgmTGlzdCwgJlNyYkV4dC0+
RW50cnkpOw0KPiArICAgICAgICB9DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgLy8gcG9wIGFsbCBw
cmVwYXJlZCByZXF1ZXN0cywgY2xlYW51cCBhbmQgYWRkIGFzc29jaWF0ZWQgU1JCIHRvIGEgbGlz
dA0KPiArICAgIGZvciAoOzspIHsNCj4gKyAgICAgICAgUFhFTlZCRF9TUkJFWFQgIFNyYkV4dDsN
Cj4gKyAgICAgICAgUFhFTlZCRF9SRVFVRVNUIFJlcXVlc3Q7DQo+ICsgICAgICAgIFBMSVNUX0VO
VFJZICAgICBFbnRyeSA9IFF1ZXVlUG9wKCZUYXJnZXQtPlByZXBhcmVkUmVxcyk7DQo+ICsgICAg
ICAgIGlmIChFbnRyeSA9PSBOVUxMKQ0KPiArICAgICAgICAgICAgYnJlYWs7DQo+ICsgICAgICAg
IFJlcXVlc3QgPSBDT05UQUlOSU5HX1JFQ09SRChFbnRyeSwgWEVOVkJEX1JFUVVFU1QsIEVudHJ5
KTsNCj4gKyAgICAgICAgU3JiRXh0ID0gR2V0U3JiRXh0KFJlcXVlc3QtPlNyYik7DQo+ICsNCj4g
KyAgICAgICAgVGFyZ2V0UHV0UmVxdWVzdChUYXJnZXQsIFJlcXVlc3QpOw0KPiArDQo+ICsgICAg
ICAgIGlmIChJbnRlcmxvY2tlZERlY3JlbWVudCgmU3JiRXh0LT5Db3VudCkgPT0gMCkgew0KPiAr
ICAgICAgICAgICAgSW5zZXJ0VGFpbExpc3QoJkxpc3QsICZTcmJFeHQtPkVudHJ5KTsNCj4gKyAg
ICAgICAgfQ0KPiArICAgIH0NCj4gKw0KPiArICAgIC8vIGZvcmVhY2ggU1JCIGluIGxpc3QsIHB1
dCBvbiBzdGFydCBvZiBGcmVzaFNyYnMNCj4gKyAgICBmb3IgKDs7KSB7DQo+ICsgICAgICAgIFBY
RU5WQkRfU1JCRVhUICBTcmJFeHQ7DQo+ICsgICAgICAgIFBMSVNUX0VOVFJZICAgICBFbnRyeSA9
IFJlbW92ZVRhaWxMaXN0KCZMaXN0KTsNCj4gKyAgICAgICAgaWYgKEVudHJ5ID09ICZMaXN0KQ0K
PiArICAgICAgICAgICAgYnJlYWs7DQo+ICsgICAgICAgIFNyYkV4dCA9IENPTlRBSU5JTkdfUkVD
T1JEKEVudHJ5LCBYRU5WQkRfU1JCRVhULCBFbnRyeSk7DQo+ICsNCj4gKyAgICAgICAgUXVldWVV
blBvcCgmVGFyZ2V0LT5GcmVzaFNyYnMsICZTcmJFeHQtPkVudHJ5KTsNCj4gKyAgICB9DQo+ICsN
Cj4gKyAgICAvLyBub3cgdGhlIGZpcnN0IHNldCBvZiByZXF1ZXN0cyBwb3BwZWQgb2ZmIHN1Ym1p
dHRlZCBsaXN0IGlzIHRoZSBuZXh0IFNSQg0KPiArICAgIC8vIHRvIGJlIHBvcHBlZCBvZmYgdGhl
IGZyZXNoIGxpc3QNCj4gKw0KPiArICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiAlZCBGcmVzaCBT
UkJzXG4iLA0KPiArICAgICAgICAgICAgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwNCj4gKyAg
ICAgICAgICAgIFF1ZXVlQ291bnQoJlRhcmdldC0+RnJlc2hTcmJzKSk7DQo+ICsNCj4gKyAgICBW
ZXJib3NlKCJUYXJnZXRbJWRdIDogJXMgKCVzKVxuIiwNCj4gKyAgICAgICAgICAgIFRhcmdldEdl
dFRhcmdldElkKFRhcmdldCksDQo+ICsgICAgICAgICAgICBUYXJnZXQtPk1pc3NpbmcgPyAiTUlT
U0lORyIgOiAiTk9UX01JU1NJTkciLA0KPiArICAgICAgICAgICAgVGFyZ2V0LT5SZWFzb24pOw0K
PiArICAgIFRhcmdldC0+TWlzc2luZyA9IEZBTFNFOw0KPiArICAgIFRhcmdldC0+UmVhc29uID0g
TlVMTDsNCj4gK30NCj4gKw0KPiAgTlRTVEFUVVMNCj4gIFRhcmdldEQzVG9EMCgNCj4gICAgICBJ
TiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldA0KPiBAQCAtMjMxMyw2ICsyMzEwLDggQEAgVGFyZ2V0
RDNUb0QwKA0KPiANCj4gICAgICBBZGFwdGVyR2V0RGVidWdJbnRlcmZhY2UoVGFyZ2V0R2V0QWRh
cHRlcihUYXJnZXQpLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVGFyZ2V0LT5E
ZWJ1Z0ludGVyZmFjZSk7DQo+ICsgICAgQWRhcHRlckdldFN1c3BlbmRJbnRlcmZhY2UoVGFyZ2V0
R2V0QWRhcHRlcihUYXJnZXQpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZU
YXJnZXQtPlN1c3BlbmRJbnRlcmZhY2UpOw0KPiANCj4gICAgICBzdGF0dXMgPSBYRU5CVVNfREVC
VUcoQWNxdWlyZSwgJlRhcmdldC0+RGVidWdJbnRlcmZhY2UpOw0KPiAgICAgIGlmICghTlRfU1VD
Q0VTUyhzdGF0dXMpKQ0KPiBAQCAtMjMyNywyMSArMjMyNiw0NiBAQCBUYXJnZXREM1RvRDAoDQo+
ICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ICAgICAgICAgIGdvdG8gZmFpbDI7DQo+
IA0KPiAtICAgIHN0YXR1cyA9IEZyb250ZW5kRDNUb0QwKFRhcmdldC0+RnJvbnRlbmQpOw0KPiAr
ICAgIHN0YXR1cyA9IFhFTkJVU19TVVNQRU5EKEFjcXVpcmUsICZUYXJnZXQtPlN1c3BlbmRJbnRl
cmZhY2UpOw0KPiAgICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQ0KPiAgICAgICAgICBnb3Rv
IGZhaWwzOw0KPiANCj4gLSAgICBzdGF0dXMgPSBGcm9udGVuZFNldFN0YXRlKFRhcmdldC0+RnJv
bnRlbmQsIFhFTlZCRF9FTkFCTEVEKTsNCj4gKyAgICBzdGF0dXMgPSBYRU5CVVNfU1VTUEVORChS
ZWdpc3RlciwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVGFyZ2V0LT5TdXNwZW5k
SW50ZXJmYWNlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNVU1BFTkRfQ0FMTEJB
Q0tfTEFURSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYXJnZXRTdXNwZW5kQ2Fs
bGJhY2ssDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0LA0KPiArICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICZUYXJnZXQtPlN1c3BlbmRDYWxsYmFjayk7DQo+ICAgICAg
aWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ICAgICAgICAgIGdvdG8gZmFpbDQ7DQo+IA0KPiAr
ICAgIHN0YXR1cyA9IEZyb250ZW5kRDNUb0QwKFRhcmdldC0+RnJvbnRlbmQpOw0KPiArICAgIGlm
ICghTlRfU1VDQ0VTUyhzdGF0dXMpKQ0KPiArICAgICAgICBnb3RvIGZhaWw1Ow0KPiArDQo+ICsg
ICAgc3RhdHVzID0gRnJvbnRlbmRTZXRTdGF0ZShUYXJnZXQtPkZyb250ZW5kLCBYRU5WQkRfRU5B
QkxFRCk7DQo+ICsgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ICsgICAgICAgIGdvdG8g
ZmFpbDY7DQo+ICsNCj4gICAgICBfX1RhcmdldFVucGF1c2VEYXRhUGF0aChUYXJnZXQpOw0KPiAN
Cj4gICAgICByZXR1cm4gU1RBVFVTX1NVQ0NFU1M7DQo+IA0KPiArZmFpbDY6DQo+ICsgICAgRXJy
b3IoImZhaWw2XG4iKTsNCj4gKyAgICBGcm9udGVuZEQwVG9EMyhUYXJnZXQtPkZyb250ZW5kKTsN
Cj4gKw0KPiArZmFpbDU6DQo+ICsgICAgRXJyb3IoImZhaWw1XG4iKTsNCj4gKyAgICBYRU5CVVNf
U1VTUEVORChEZXJlZ2lzdGVyLA0KPiArICAgICAgICAgICAgICAgICAgICZUYXJnZXQtPlN1c3Bl
bmRJbnRlcmZhY2UsDQo+ICsgICAgICAgICAgICAgICAgICAgVGFyZ2V0LT5TdXNwZW5kQ2FsbGJh
Y2spOw0KPiArICAgIFRhcmdldC0+U3VzcGVuZENhbGxiYWNrID0gTlVMTDsNCj4gKw0KPiAgZmFp
bDQ6DQo+ICAgICAgRXJyb3IoImZhaWw0XG4iKTsNCj4gLSAgICBGcm9udGVuZEQwVG9EMyhUYXJn
ZXQtPkZyb250ZW5kKTsNCj4gKyAgICBYRU5CVVNfU1VTUEVORChSZWxlYXNlLA0KPiArICAgICAg
ICAgICAgICAgICAgICZUYXJnZXQtPlN1c3BlbmRJbnRlcmZhY2UpOw0KPiANCj4gIGZhaWwzOg0K
PiAgICAgIEVycm9yKCJmYWlsM1xuIik7DQo+IEBAIC0yMzU4LDYgKzIzODIsOCBAQCBmYWlsMjoN
Cj4gIGZhaWwxOg0KPiAgICAgIEVycm9yKCJGYWlsMSAoJTA4eClcbiIsIHN0YXR1cyk7DQo+IA0K
PiArICAgIFJ0bFplcm9NZW1vcnkoJlRhcmdldC0+U3VzcGVuZEludGVyZmFjZSwNCj4gKyAgICAg
ICAgICAgICAgICAgIHNpemVvZihYRU5CVVNfU1VTUEVORF9JTlRFUkZBQ0UpKTsNCj4gICAgICBS
dGxaZXJvTWVtb3J5KCZUYXJnZXQtPkRlYnVnSW50ZXJmYWNlLA0KPiAgICAgICAgICAgICAgICAg
ICAgc2l6ZW9mKFhFTkJVU19ERUJVR19JTlRFUkZBQ0UpKTsNCj4gICAgICBUYXJnZXQtPkRldmlj
ZVBvd2VyU3RhdGUgPSBQb3dlckRldmljZUQzOw0KPiBAQCAtMjM4Myw2ICsyNDA5LDE0IEBAIFRh
cmdldEQwVG9EMygNCj4gDQo+ICAgICAgRnJvbnRlbmREMFRvRDMoVGFyZ2V0LT5Gcm9udGVuZCk7
DQo+IA0KPiArICAgIFhFTkJVU19TVVNQRU5EKERlcmVnaXN0ZXIsDQo+ICsgICAgICAgICAgICAg
ICAgICAgJlRhcmdldC0+U3VzcGVuZEludGVyZmFjZSwNCj4gKyAgICAgICAgICAgICAgICAgICBU
YXJnZXQtPlN1c3BlbmRDYWxsYmFjayk7DQo+ICsgICAgVGFyZ2V0LT5TdXNwZW5kQ2FsbGJhY2sg
PSBOVUxMOw0KPiArDQo+ICsgICAgWEVOQlVTX1NVU1BFTkQoUmVsZWFzZSwNCj4gKyAgICAgICAg
ICAgICAgICAgICAmVGFyZ2V0LT5TdXNwZW5kSW50ZXJmYWNlKTsNCj4gKw0KPiAgICAgIFhFTkJV
U19ERUJVRyhEZXJlZ2lzdGVyLA0KPiAgICAgICAgICAgICAgICAgICAmVGFyZ2V0LT5EZWJ1Z0lu
dGVyZmFjZSwNCj4gICAgICAgICAgICAgICAgICAgVGFyZ2V0LT5EZWJ1Z0NhbGxiYWNrKTsNCj4g
QEAgLTIzOTEsNiArMjQyNSw4IEBAIFRhcmdldEQwVG9EMygNCj4gICAgICBYRU5CVVNfREVCVUco
UmVsZWFzZSwNCj4gICAgICAgICAgICAgICAgICAgJlRhcmdldC0+RGVidWdJbnRlcmZhY2UpOw0K
PiANCj4gKyAgICBSdGxaZXJvTWVtb3J5KCZUYXJnZXQtPlN1c3BlbmRJbnRlcmZhY2UsDQo+ICsg
ICAgICAgICAgICAgICAgICBzaXplb2YoWEVOQlVTX1NVU1BFTkRfSU5URVJGQUNFKSk7DQo+ICAg
ICAgUnRsWmVyb01lbW9yeSgmVGFyZ2V0LT5EZWJ1Z0ludGVyZmFjZSwNCj4gICAgICAgICAgICAg
ICAgICAgIHNpemVvZihYRU5CVVNfREVCVUdfSU5URVJGQUNFKSk7DQo+ICB9DQo+IGRpZmYgLS1n
aXQgYS9zcmMveGVudmJkL3RhcmdldC5oIGIvc3JjL3hlbnZiZC90YXJnZXQuaA0KPiBpbmRleCAz
MDczOGZjLi5hYzFkZTExIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3RhcmdldC5oDQo+ICsr
KyBiL3NyYy94ZW52YmQvdGFyZ2V0LmgNCj4gQEAgLTEyNiwxNiArMTI2LDYgQEAgVGFyZ2V0Q29t
cGxldGVSZXNwb25zZSgNCj4gICAgICApOw0KPiANCj4gIGV4dGVybiBWT0lEDQo+IC1UYXJnZXRQ
cmVSZXN1bWUoDQo+IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQN
Cj4gLSAgICApOw0KPiAtDQo+IC1leHRlcm4gVk9JRA0KPiAtVGFyZ2V0UG9zdFJlc3VtZSgNCj4g
LSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldA0KPiAtICAgICk7DQo+
IC0NCj4gLWV4dGVybiBWT0lEDQo+ICBUYXJnZXRQcmVwYXJlSW8oDQo+ICAgICAgSU4gIFBYRU5W
QkRfVEFSR0VUICBUYXJnZXQsDQo+ICAgICAgSU4gIFBYRU5WQkRfU1JCRVhUICBTcmJFeHQNCj4g
LS0NCj4gMi44LjMNCj4gDQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHdpbi1wdi1kZXZl
bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2Nn
aS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2lu
LXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v
cmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jun 27 14:13:46 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jun 2017 14:13:46 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPrFR-0007Gk-UT; Tue, 27 Jun 2017 14:13:45 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=3449104f4=Paul.Durrant@citrix.com>)
 id 1dPrFQ-0007Ge-TI
 for win-pv-devel@lists.xenproject.org; Tue, 27 Jun 2017 14:13:45 +0000
Received: from [85.158.137.68] by server-17.bemta-3.messagelabs.com id
 78/8B-02955-81862595; Tue, 27 Jun 2017 14:13:44 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrDIsWRWlGSWpSXmKPExsWyU9JRQlc8Iyj
 SYOktGYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCasen+RKaCrXEVyw71MzcwzojtYuTkkBDwkzg1
 6QcTiM0moCOx9Oh8MFtEoEDi+/t5zCA2s4CaxPX9XaxdjBwcwgJWEos6ayBKrCWaVqyHKjeS2
 LZgEpjNIqAqMe/edrBWXgF3ib9/PzODtAoJZEtM/uAJEuYUsJG4tKCTFcRmFJCV+NK4GmqTuM
 StJxAXSAgISCzZc54ZwhaVePn4HyuEbSCxdek+FpCRzAKaEut36UO0KkpM6X7IDrFVUOLkzCc
 sExiFZyGZOguhYxaSjllIOhYwsqxi1ChOLSpLLdI1MtJLKspMzyjJTczM0TU0MNbLTS0uTkxP
 zUlMKtZLzs/dxAgM+XoGBsYdjFNP+B1ilORgUhLlXS0RFCnEl5SfUpmRWJwRX1Sak1p8iFGGg
 0NJgtc9HSgnWJSanlqRlpkDjD6YtAQHj5IIb58bUJq3uCAxtzgzHSJ1ilGXY8Pq9V+YhFjy8v
 NSpcR5tUFmCIAUZZTmwY2AJYJLjLJSwryMDAwMQjwFqUW5mSWo8q8YxTkYlYR5g9OApvBk5pX
 AbXoFdAQT0BEs8wJAjihJREhJNTBavKqctvTJtYkfLblO5F6YYKJfYiBR7Jnkbq7Den/lif3v
 L5zQbmP2ellRrb7cwmn/s4rlgtJSs5138v47J1RW7/v3uKlPQ6hi6G/tGf+uWpq51cYUrZ7Pv
 dB+dmFBM1+DfcecRWfTK1Y95tMOObJ6y+ElU1++Ml3pOjtDX9sruVVKnvlstLMSS3FGoqEWc1
 FxIgB5Jlao/wIAAA==
X-Env-Sender: prvs=3449104f4=Paul.Durrant@citrix.com
X-Msg-Ref: server-4.tower-31.messagelabs.com!1498572823!49521728!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 39794 invoked from network); 27 Jun 2017 14:13:43 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-4.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 27 Jun 2017 14:13:43 -0000
X-IronPort-AV: E=Sophos;i="5.39,399,1493683200"; d="scan'208";a="48460563"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 10/10] Tidy up target.h
Thread-Index: AQHS7CL/nmEjdHb5DkyWO403MiUfo6I4xYWg
Date: Tue, 27 Jun 2017 14:09:14 +0000
Message-ID: <279563bd8d694e8e96a164d6b8e0f99d@AMSPEX02CL03.citrite.net>
References: <20170623124917.13956-1-owen.smith@citrix.com>
 <20170623124917.13956-11-owen.smith@citrix.com>
In-Reply-To: <20170623124917.13956-11-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 10/10] Tidy up target.h
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAyMyBKdW5lIDIwMTcgMTM6NDkNCj4g
VG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8
b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0gg
MTAvMTBdIFRpZHkgdXAgdGFyZ2V0LmgNCj4gDQo+IEZyb206IE93ZW4gU21pdGggPG93ZW4uc21p
dGhAY2l0cml4LmNvbT4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE93ZW4gU21pdGggPG93ZW4uc21p
dGhAY2l0cml4LmNvbT4NCg0KUmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50
QGNpdHJpeC5jb20+DQoNCj4gLS0tDQo+ICBzcmMveGVudmJkL2FkYXB0ZXIuYyB8ICAyICstDQo+
ICBzcmMveGVudmJkL3RhcmdldC5jICB8IDk5ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0t
LS0tLS0tLS0tLS0tLS0tLS0tDQo+IC0tLS0tDQo+ICBzcmMveGVudmJkL3RhcmdldC5oICB8IDQy
ICsrKysrKystLS0tLS0tLS0tLS0tLS0NCj4gIDMgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9u
cygrKSwgODMgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9hZGFw
dGVyLmMgYi9zcmMveGVudmJkL2FkYXB0ZXIuYw0KPiBpbmRleCA1NWExOTYyLi4yZjRjZjljIDEw
MDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2FkYXB0ZXIuYw0KPiArKysgYi9zcmMveGVudmJkL2Fk
YXB0ZXIuYw0KPiBAQCAtNDUwLDcgKzQ1MCw3IEBAIF9fQWRhcHRlckVudW1lcmF0ZSgNCj4gICAg
ICAgICAgICAgIH0NCj4gICAgICAgICAgfQ0KPiANCj4gLSAgICAgICAgaWYgKE1pc3NpbmcgJiYg
IVRhcmdldElzTWlzc2luZyhUYXJnZXQpKSB7DQo+ICsgICAgICAgIGlmIChNaXNzaW5nICYmICFU
YXJnZXRHZXRNaXNzaW5nKFRhcmdldCkpIHsNCj4gICAgICAgICAgICAgIFRhcmdldFNldE1pc3Np
bmcoVGFyZ2V0LCAiRGV2aWNlIERpc2FwcGVhcmVkIik7DQo+ICAgICAgICAgICAgICBpZiAoVGFy
Z2V0R2V0RGV2aWNlUG5wU3RhdGUoVGFyZ2V0KSA9PSBQcmVzZW50KQ0KPiAgICAgICAgICAgICAg
ICAgIFRhcmdldFNldERldmljZVBucFN0YXRlKFRhcmdldCwgRGVsZXRlZCk7DQo+IGRpZmYgLS1n
aXQgYS9zcmMveGVudmJkL3RhcmdldC5jIGIvc3JjL3hlbnZiZC90YXJnZXQuYw0KPiBpbmRleCAy
NTI3MzYwLi5mZmZmYTNlIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3RhcmdldC5jDQo+ICsr
KyBiL3NyYy94ZW52YmQvdGFyZ2V0LmMNCj4gQEAgLTI0Niw4ICsyNDYsNiBAQCBfX1BucFN0YXRl
TmFtZSgNCj4gICAgICB9DQo+ICB9DQo+IA0KPiAtDQo+IC8vPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID09PT09PT09PT09PT09PT09
PT09DQo+IC0vLyBQb3dlciBTdGF0ZXMNCj4gIF9fY2hlY2tSZXR1cm4NCj4gIHN0YXRpYyBGT1JD
RUlOTElORSBCT09MRUFODQo+ICBUYXJnZXRTZXREZXZpY2VQb3dlclN0YXRlKA0KPiBAQCAtMjY5
LDQ5ICsyNjcsMzYgQEAgVGFyZ2V0U2V0RGV2aWNlUG93ZXJTdGF0ZSgNCj4gICAgICByZXR1cm4g
Q2hhbmdlZDsNCj4gIH0NCj4gDQo+IC0NCj4gLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPT09PT09PT09PT09PT09PT09PT0NCj4g
LS8vIFBuUCBTdGF0ZXMNCj4gLUZPUkNFSU5MSU5FIFZPSUQNCj4gK1ZPSUQNCj4gIFRhcmdldFNl
dE1pc3NpbmcoDQo+IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQs
DQo+IC0gICAgX19pbiBfX251bGx0ZXJtaW5hdGVkIGNvbnN0IENIQVIqIFJlYXNvbg0KPiArICAg
IElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0LA0KPiArICAgIElOICBjb25zdCBDSEFSICAgICAg
KlJlYXNvbg0KPiAgICAgICkNCj4gIHsNCj4gLSAgICBLSVJRTCAgIElycWw7DQo+ICsgICAgS0lS
UUwgICAgICAgICAgICAgICBJcnFsOw0KPiANCj4gICAgICBBU1NFUlQzUChSZWFzb24sICE9LCBO
VUxMKTsNCj4gDQo+ICAgICAgS2VBY3F1aXJlU3BpbkxvY2soJlRhcmdldC0+TG9jaywgJklycWwp
Ow0KPiAgICAgIGlmIChUYXJnZXQtPk1pc3NpbmcpIHsNCj4gLSAgICAgICAgVmVyYm9zZSgiVGFy
Z2V0WyVkXSA6IEFscmVhZHkgTUlTU0lORyAoJXMpIHdoZW4gdHJ5aW5nIHRvIHNldA0KPiAoJXMp
XG4iLCBUYXJnZXRHZXRUYXJnZXRJZChUYXJnZXQpLCBUYXJnZXQtPlJlYXNvbiwgUmVhc29uKTsN
Cj4gKyAgICAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IEFscmVhZHkgTUlTU0lORyAoJXMpIHdo
ZW4gdHJ5aW5nIHRvIHNldA0KPiAoJXMpXG4iLA0KPiArICAgICAgICAgICAgICAgIFRhcmdldEdl
dFRhcmdldElkKFRhcmdldCksDQo+ICsgICAgICAgICAgICAgICAgVGFyZ2V0LT5SZWFzb24sDQo+
ICsgICAgICAgICAgICAgICAgUmVhc29uKTsNCj4gICAgICB9IGVsc2Ugew0KPiAtICAgICAgICBW
ZXJib3NlKCJUYXJnZXRbJWRdIDogTUlTU0lORyAlc1xuIiwgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFy
Z2V0KSwNCj4gUmVhc29uKTsNCj4gKyAgICAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IE1JU1NJ
TkcgJXNcbiIsDQo+ICsgICAgICAgICAgICAgICAgVGFyZ2V0R2V0VGFyZ2V0SWQoVGFyZ2V0KSwN
Cj4gKyAgICAgICAgICAgICAgICBSZWFzb24pOw0KPiAgICAgICAgICBUYXJnZXQtPk1pc3Npbmcg
PSBUUlVFOw0KPiAgICAgICAgICBUYXJnZXQtPlJlYXNvbiA9IFJlYXNvbjsNCj4gICAgICB9DQo+
ICAgICAgS2VSZWxlYXNlU3BpbkxvY2soJlRhcmdldC0+TG9jaywgSXJxbCk7DQo+ICB9DQo+IA0K
PiAtX19jaGVja1JldHVybg0KPiAtRk9SQ0VJTkxJTkUgQk9PTEVBTg0KPiAtVGFyZ2V0SXNNaXNz
aW5nKA0KPiAtICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0DQo+IC0g
ICAgKQ0KPiAtew0KPiAtICAgIEtJUlFMICAgSXJxbDsNCj4gLSAgICBCT09MRUFOIE1pc3Npbmc7
DQo+IC0NCj4gLSAgICBLZUFjcXVpcmVTcGluTG9jaygmVGFyZ2V0LT5Mb2NrLCAmSXJxbCk7DQo+
IC0gICAgTWlzc2luZyA9IFRhcmdldC0+TWlzc2luZzsNCj4gLSAgICBLZVJlbGVhc2VTcGluTG9j
aygmVGFyZ2V0LT5Mb2NrLCBJcnFsKTsNCj4gLQ0KPiAtICAgIHJldHVybiBNaXNzaW5nOw0KPiAt
fQ0KPiAtDQo+IC1GT1JDRUlOTElORSBWT0lEDQo+ICtWT0lEDQo+ICBUYXJnZXRTZXREZXZpY2VQ
bnBTdGF0ZSgNCj4gLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldCwN
Cj4gLSAgICBfX2luIERFVklDRV9QTlBfU1RBVEUgICAgICAgIFN0YXRlDQo+ICsgICAgSU4gIFBY
RU5WQkRfVEFSR0VUICAgICAgVGFyZ2V0LA0KPiArICAgIElOICBERVZJQ0VfUE5QX1NUQVRFICAg
IFN0YXRlDQo+ICAgICAgKQ0KPiAgew0KPiAgICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBQTlAg
JXMgdG8gJXNcbiIsDQo+IEBAIC0zMjYsMTUgKzMxMSw2IEBAIFRhcmdldFNldERldmljZVBucFN0
YXRlKA0KPiAgICAgIFRhcmdldC0+RGV2aWNlUG5wU3RhdGUgPSBTdGF0ZTsNCj4gIH0NCj4gDQo+
IC1fX2NoZWNrUmV0dXJuDQo+IC1GT1JDRUlOTElORSBERVZJQ0VfUE5QX1NUQVRFDQo+IC1UYXJn
ZXRHZXREZXZpY2VQbnBTdGF0ZSgNCj4gLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAg
ICAgIFRhcmdldA0KPiAtICAgICkNCj4gLXsNCj4gLSAgICByZXR1cm4gVGFyZ2V0LT5EZXZpY2VQ
bnBTdGF0ZTsNCj4gLX0NCj4gLQ0KPiAgc3RhdGljIEZPUkNFSU5MSU5FIFZPSUQNCj4gIF9fVGFy
Z2V0UmVzdG9yZURldmljZVBucFN0YXRlKA0KPiAgICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAg
ICAgICAgICAgVGFyZ2V0LA0KPiBAQCAtMzQ3LDI2ICszMjMsMjcgQEAgX19UYXJnZXRSZXN0b3Jl
RGV2aWNlUG5wU3RhdGUoDQo+ICAgICAgfQ0KPiAgfQ0KPiANCj4gLUZPUkNFSU5MSU5FIFZPSUQN
Cj4gK1ZPSUQNCj4gIFRhcmdldFNldERldmljZU9iamVjdCgNCj4gLSAgICBfX2luIFBYRU5WQkRf
VEFSR0VUICAgICAgICAgICAgIFRhcmdldCwNCj4gLSAgICBfX2luIFBERVZJQ0VfT0JKRUNUICAg
ICAgICAgIERldmljZU9iamVjdA0KPiArICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0LA0K
PiArICAgIElOICBQREVWSUNFX09CSkVDVCAgRGV2aWNlT2JqZWN0DQo+ICAgICAgKQ0KPiAgew0K
PiAtICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBTZXR0aW5nIERldmljZU9iamVjdCA9IDB4JXBc
biIsDQo+IFRhcmdldEdldFRhcmdldElkKFRhcmdldCksIERldmljZU9iamVjdCk7DQo+ICsgICAg
VmVyYm9zZSgiVGFyZ2V0WyVkXSA6IFNldHRpbmcgRGV2aWNlT2JqZWN0ID0gMHglcFxuIiwNCj4g
KyAgICAgICAgICAgIFRhcmdldEdldFRhcmdldElkKFRhcmdldCksDQo+ICsgICAgICAgICAgICBE
ZXZpY2VPYmplY3QpOw0KPiANCj4gICAgICBBU1NFUlQzUChUYXJnZXQtPkRldmljZU9iamVjdCwg
PT0sIE5VTEwpOw0KPiAgICAgIFRhcmdldC0+RGV2aWNlT2JqZWN0ID0gRGV2aWNlT2JqZWN0Ow0K
PiAgfQ0KPiANCj4gLV9fY2hlY2tSZXR1cm4NCj4gLUZPUkNFSU5MSU5FIEJPT0xFQU4NCj4gK3N0
YXRpYyBGT1JDRUlOTElORSBCT09MRUFODQo+ICBUYXJnZXRJc1BhdXNlZCgNCj4gLSAgICBfX2lu
IFBYRU5WQkRfVEFSR0VUICAgICAgICAgICAgIFRhcmdldA0KPiArICAgIElOICBQWEVOVkJEX1RB
UkdFVCAgVGFyZ2V0DQo+ICAgICAgKQ0KPiAgew0KPiAtICAgIEJPT0xFQU4gUGF1c2VkOw0KPiAt
ICAgIEtJUlFMICAgSXJxbDsNCj4gKyAgICBCT09MRUFOICAgICAgICAgICAgIFBhdXNlZDsNCj4g
KyAgICBLSVJRTCAgICAgICAgICAgICAgIElycWw7DQo+IA0KPiAgICAgIEtlQWNxdWlyZVNwaW5M
b2NrKCZUYXJnZXQtPkxvY2ssICZJcnFsKTsNCj4gICAgICBQYXVzZWQgPSAoVGFyZ2V0LT5QYXVz
ZWQgPiAwKTsNCj4gQEAgLTEyNzksNyArMTI1Niw3IEBAIEJsa2lmT3BlcmF0aW9uTmFtZSgNCj4g
DQo+ICBWT0lEDQo+ICBUYXJnZXRTdWJtaXRSZXF1ZXN0cygNCj4gLSAgICBfX2luIFBYRU5WQkRf
VEFSR0VUICAgICAgICAgICAgIFRhcmdldA0KPiArICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFy
Z2V0DQo+ICAgICAgKQ0KPiAgew0KPiAgICAgIGZvciAoOzspIHsNCj4gQEAgLTEzMDIsOSArMTI3
OSw5IEBAIFRhcmdldFN1Ym1pdFJlcXVlc3RzKA0KPiANCj4gIFZPSUQNCj4gIFRhcmdldENvbXBs
ZXRlUmVzcG9uc2UoDQo+IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJn
ZXQsDQo+IC0gICAgX19pbiBVTE9ORyAgICAgICAgICAgICAgICAgICBUYWcsDQo+IC0gICAgX19p
biBTSE9SVCAgICAgICAgICAgICAgICAgICBTdGF0dXMNCj4gKyAgICBJTiAgUFhFTlZCRF9UQVJH
RVQgIFRhcmdldCwNCj4gKyAgICBJTiAgVUxPTkcgICAgICAgICAgIFRhZywNCj4gKyAgICBJTiAg
U0hPUlQgICAgICAgICAgIFN0YXR1cw0KPiAgICAgICkNCj4gIHsNCj4gICAgICBQWEVOVkJEX1JF
UVVFU1QgICAgIFJlcXVlc3Q7DQo+IEBAIC0xNzcyLDcgKzE3NDksNyBAQCBfX1ZhbGlkYXRlU3Ji
Rm9yVGFyZ2V0KA0KPiAgICAgICAgICByZXR1cm4gRkFMU0U7DQo+ICAgICAgfQ0KPiANCj4gLSAg
ICBpZiAoVGFyZ2V0SXNNaXNzaW5nKFRhcmdldCkpIHsNCj4gKyAgICBpZiAoVGFyZ2V0R2V0TWlz
c2luZyhUYXJnZXQpKSB7DQo+ICAgICAgICAgIEVycm9yKCJUYXJnZXRbJWRdIDogJXMgKCVzKSAo
JTAyeDolcylcbiIsDQo+ICAgICAgICAgICAgICAgIFRhcmdldEdldFRhcmdldElkKFRhcmdldCks
DQo+ICAgICAgICAgICAgICAgIFRhcmdldC0+TWlzc2luZyA/ICJNSVNTSU5HIiA6ICJOT1RfTUlT
U0lORyIsDQo+IEBAIC0yNjAyLDQgKzI1NzksMjIgQEAgVGFyZ2V0R2V0U3VycHJpc2VSZW1vdmFi
bGUoDQo+ICAgICAgcmV0dXJuIEZyb250ZW5kR2V0Q2FwcyhUYXJnZXQtPkZyb250ZW5kKS0+U3Vy
cHJpc2VSZW1vdmFibGU7DQo+ICB9DQo+IA0KPiArVEFSR0VUX0dFVF9QUk9QRVJUWShEZXZpY2VQ
bnBTdGF0ZSwgREVWSUNFX1BOUF9TVEFURSkNCj4gKy8vVEFSR0VUX0dFVF9QUk9QRVJUWShNaXNz
aW5nLCBCT09MRUFOKQ0KPiArDQo+ICtCT09MRUFODQo+ICtUYXJnZXRHZXRNaXNzaW5nKA0KPiAr
ICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0DQo+ICsgICAgKQ0KPiArew0KPiArICAgIEtJ
UlFMICAgICAgICAgICAgICAgSXJxbDsNCj4gKyAgICBCT09MRUFOICAgICAgICAgICAgIE1pc3Np
bmc7DQo+ICsNCj4gKyAgICBLZUFjcXVpcmVTcGluTG9jaygmVGFyZ2V0LT5Mb2NrLCAmSXJxbCk7
DQo+ICsgICAgTWlzc2luZyA9IFRhcmdldC0+TWlzc2luZzsNCj4gKyAgICBLZVJlbGVhc2VTcGlu
TG9jaygmVGFyZ2V0LT5Mb2NrLCBJcnFsKTsNCj4gKw0KPiArICAgIHJldHVybiBNaXNzaW5nOw0K
PiArfQ0KPiArDQo+ICAjdW5kZWYgVEFSR0VUX0dFVF9QUk9QRVJUWQ0KPiBkaWZmIC0tZ2l0IGEv
c3JjL3hlbnZiZC90YXJnZXQuaCBiL3NyYy94ZW52YmQvdGFyZ2V0LmgNCj4gaW5kZXggYWMxZGUx
MS4uMWUyYjNlZCAxMDA2NDQNCj4gLS0tIGEvc3JjL3hlbnZiZC90YXJnZXQuaA0KPiArKysgYi9z
cmMveGVudmJkL3RhcmdldC5oDQo+IEBAIC03NSw1NCArNzUsMzQgQEAgVGFyZ2V0SXNzdWVEZXZp
Y2VFamVjdCgNCj4gICAgICBJTiAgY29uc3QgQ0hBUiAgICAgICpSZWFzb24NCj4gICAgICApOw0K
PiANCj4gLS8vIFBuUCBTdGF0ZXMNCj4gIGV4dGVybiBWT0lEDQo+ICBUYXJnZXRTZXRNaXNzaW5n
KA0KPiAtICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0LA0KPiAtICAg
IF9faW4gX19udWxsdGVybWluYXRlZCBjb25zdCBDSEFSKiBSZWFzb24NCj4gLSAgICApOw0KPiAt
DQo+IC1fX2NoZWNrUmV0dXJuDQo+IC1leHRlcm4gQk9PTEVBTg0KPiAtVGFyZ2V0SXNNaXNzaW5n
KA0KPiAtICAgIF9faW4gUFhFTlZCRF9UQVJHRVQgICAgICAgICAgICAgVGFyZ2V0DQo+ICsgICAg
SU4gIFBYRU5WQkRfVEFSR0VUICBUYXJnZXQsDQo+ICsgICAgSU4gIGNvbnN0IENIQVIgICAgICAq
UmVhc29uDQo+ICAgICAgKTsNCj4gDQo+ICBleHRlcm4gVk9JRA0KPiAgVGFyZ2V0U2V0RGV2aWNl
UG5wU3RhdGUoDQo+IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQs
DQo+IC0gICAgX19pbiBERVZJQ0VfUE5QX1NUQVRFICAgICAgICBTdGF0ZQ0KPiAtICAgICk7DQo+
IC0NCj4gLV9fY2hlY2tSZXR1cm4NCj4gLWV4dGVybiBERVZJQ0VfUE5QX1NUQVRFDQo+IC1UYXJn
ZXRHZXREZXZpY2VQbnBTdGF0ZSgNCj4gLSAgICBfX2luIFBYRU5WQkRfVEFSR0VUICAgICAgICAg
ICAgIFRhcmdldA0KPiArICAgIElOICBQWEVOVkJEX1RBUkdFVCAgICAgIFRhcmdldCwNCj4gKyAg
ICBJTiAgREVWSUNFX1BOUF9TVEFURSAgICBTdGF0ZQ0KPiAgICAgICk7DQo+IA0KPiAgZXh0ZXJu
IFZPSUQNCj4gIFRhcmdldFNldERldmljZU9iamVjdCgNCj4gLSAgICBfX2luIFBYRU5WQkRfVEFS
R0VUICAgICAgICAgICAgIFRhcmdldCwNCj4gLSAgICBfX2luIFBERVZJQ0VfT0JKRUNUICAgICAg
ICAgIERldmljZU9iamVjdA0KPiAtICAgICk7DQo+IC0NCj4gLV9fY2hlY2tSZXR1cm4NCj4gLWV4
dGVybiBCT09MRUFODQo+IC1UYXJnZXRJc1BhdXNlZCgNCj4gLSAgICBfX2luIFBYRU5WQkRfVEFS
R0VUICAgICAgICAgICAgIFRhcmdldA0KPiArICAgIElOICBQWEVOVkJEX1RBUkdFVCAgVGFyZ2V0
LA0KPiArICAgIElOICBQREVWSUNFX09CSkVDVCAgRGV2aWNlT2JqZWN0DQo+ICAgICAgKTsNCj4g
DQo+IC0vLyBRdWV1ZS1SZWxhdGVkDQo+ICBleHRlcm4gVk9JRA0KPiAgVGFyZ2V0U3VibWl0UmVx
dWVzdHMoDQo+IC0gICAgX19pbiBQWEVOVkJEX1RBUkdFVCAgICAgICAgICAgICBUYXJnZXQNCj4g
KyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldA0KPiAgICAgICk7DQo+IA0KPiAgZXh0ZXJu
IFZPSUQNCj4gIFRhcmdldENvbXBsZXRlUmVzcG9uc2UoDQo+IC0gICAgX19pbiBQWEVOVkJEX1RB
UkdFVCAgICAgICAgICAgICBUYXJnZXQsDQo+IC0gICAgX19pbiBVTE9ORyAgICAgICAgICAgICAg
ICAgICBUYWcsDQo+IC0gICAgX19pbiBTSE9SVCAgICAgICAgICAgICAgICAgICBTdGF0dXMNCj4g
KyAgICBJTiAgUFhFTlZCRF9UQVJHRVQgIFRhcmdldCwNCj4gKyAgICBJTiAgVUxPTkcgICAgICAg
ICAgIFRhZywNCj4gKyAgICBJTiAgU0hPUlQgICAgICAgICAgIFN0YXR1cw0KPiAgICAgICk7DQo+
IA0KPiAgZXh0ZXJuIFZPSUQNCj4gQEAgLTE2Niw2ICsxNDYsOCBAQCBUQVJHRVRfR0VUX1BST1BF
UlRZKFRhcmdldElkLCBVTE9ORykNCj4gIFRBUkdFVF9HRVRfUFJPUEVSVFkoRGV2aWNlSWQsIFVM
T05HKQ0KPiAgVEFSR0VUX0dFVF9QUk9QRVJUWShSZW1vdmFibGUsIEJPT0xFQU4pDQo+ICBUQVJH
RVRfR0VUX1BST1BFUlRZKFN1cnByaXNlUmVtb3ZhYmxlLCBCT09MRUFOKQ0KPiArVEFSR0VUX0dF
VF9QUk9QRVJUWShEZXZpY2VQbnBTdGF0ZSwgREVWSUNFX1BOUF9TVEFURSkNCj4gK1RBUkdFVF9H
RVRfUFJPUEVSVFkoTWlzc2luZywgQk9PTEVBTikNCj4gDQo+ICAjdW5kZWYgVEFSR0VUX0dFVF9Q
Uk9QRVJUWQ0KPiANCj4gLS0NCj4gMi44LjMNCj4gDQo+IA0KPiBfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0
DQo+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBodHRwczovL2xpc3RzLnhl
bnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWwNCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBt
YWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlz
dHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jun 27 14:32:27 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jun 2017 14:32:27 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPrXX-0000Zd-0c; Tue, 27 Jun 2017 14:32:27 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=3449104f4=Paul.Durrant@citrix.com>)
 id 1dPrXW-0000ZX-EL
 for win-pv-devel@lists.xenproject.org; Tue, 27 Jun 2017 14:32:26 +0000
Received: from [193.109.254.147] by server-7.bemta-6.messagelabs.com id
 CF/EF-03620-97C62595; Tue, 27 Jun 2017 14:32:25 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrDIsWRWlGSWpSXmKPExsWyU9JRQrcyJyj
 S4NkaVos/ixMdGD0Of7jCEsAYxZqZl5RfkcCasWvJOaaCrcIVf559YW1gnCLcxcjJISHgJ/Fh
 0xJmEJtNQEdi6dH5TCC2iECBxPf388DizAJqEtf3d7GC2MICjhKL9jcwQtQ4SRzYcRvKNpJoe
 PyZDcRmEVCVuND+CMzmFXCX2Dn9JdBMDg4hASuJhasrQMKcAtYS+6ZsYQGxGQVkJb40roZaJS
 5x6wnECRICAhJL9pxnhrBFJV4+/scKYRtIbF26jwVkJLOApsT6XfoQrYoSU7ofskNsFZQ4OfM
 JywRG4VlIps5C6JiFpGMWko4FjCyrGNWLU4vKUot0zfSSijLTM0pyEzNzdA0NzPRyU4uLE9NT
 cxKTivWS83M3MQJDngEIdjDOO+F/iFGSg0lJlHe1RFCkEF9SfkplRmJxRnxRaU5q8SFGGQ4OJ
 Qle1WygnGBRanpqRVpmDjD6YNISHDxKIrx9bkBp3uKCxNzizHSI1ClGXY4Nq9d/YRJiycvPS5
 US5/2YBVQkAFKUUZoHNwKWCC4xykoJ8zICHSXEU5BalJtZgir/ilGcg1FJmDcIZApPZl4J3KZ
 XQEcwAR3BMi8A5IiSRISUVAPj3k86DSs7n+72T51sdt4q/eAKNaWHPbLRdj/CT19ovnKQoUjr
 7KltJTeOTbDZwqbwb9bPAxvXr9P4vyVs5/sDnbPXTuELbFN0/j5Nys/BYga39fSjj3Zu/jBLx
 ch61qsbkf5r6hfGN35//FHliEde6E6fmFvHki0bp0oZ/sn58Voza46lZpKekxJLcUaioRZzUX
 EiABWlJ9P/AgAA
X-Env-Sender: prvs=3449104f4=Paul.Durrant@citrix.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1498573944!100182259!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 45949 invoked from network); 27 Jun 2017 14:32:25 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 27 Jun 2017 14:32:25 -0000
X-IronPort-AV: E=Sophos;i="5.39,401,1493683200"; d="scan'208";a="48462348"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 00/10] XenVbd refactoring (v2)
Thread-Index: AQHS7B9H/Gy7v4SVMEW0rrzAYoELoaI4yoIw
Date: Tue, 27 Jun 2017 14:26:57 +0000
Message-ID: <d454dfc38a9e4691b9850be068df1838@AMSPEX02CL03.citrite.net>
References: <20170623124917.13956-1-owen.smith@citrix.com>
In-Reply-To: <20170623124917.13956-1-owen.smith@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Owen Smith <owen.smith@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 00/10] XenVbd refactoring (v2)
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIG93ZW4uc21pdGhAY2l0cml4LmNvbQ0KPiBTZW50OiAyMyBKdW5lIDIwMTcgMTM6NDkNCj4g
VG86IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogT3dlbiBTbWl0aCA8
b3dlbi5zbWl0aEBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbd2luLXB2LWRldmVsXSBbUEFUQ0gg
MDAvMTBdIFhlblZiZCByZWZhY3RvcmluZyAodjIpDQo+IA0KPiBGcm9tOiBPd2VuIFNtaXRoIDxv
d2VuLnNtaXRoQGNpdHJpeC5jb20+DQo+IA0KPiBUaGlzIHNlcmllcyBpcyBiYXNlZCBvbiB0aGUg
b3JpZ2luYWwgeGVudmJkIHJlZmFjdG9yL2ltcHJvdmVtZW50cyBwYXRjaGVzLA0KPiBhbmQgaGFz
IHNwbGl0IHRoZSBvcmlnaW5hbCBzZXJpZXMuDQo+IFRoaXMgc2VyaWVzIGNvbnRhaW5zIG1haW5s
eSBjb3NtZXRpYy9yZWZhY3RvcmluZyAtIHRoZSBkYXRhIHBhdGggaGFzIGhhZA0KPiBvbmx5IG1p
bm9yIGNoYW5nZXMgcmVsYXRlZCB0byBtYWtpbmcgbGF0ZXIgZGF0YSBwYXRoIGNoYW5nZXMgZWFz
aWVyLiBJJ3ZlDQo+IHJ1biBzb21lIGJhc2ljIElPTWV0ZXIgdGVzdHMgYW5kIGZvdW5kIG5vIHNp
Z25pZmljYW50IGNoYW5nZXMuDQo+IA0KPiBUaGUgbWFpbiBpbnRlbnRzIG9mIHRoaXMgc2VyaWVz
IGlzIHRvIGlzb2xhdGUsIGFzIG11Y2ggYXMgcG9zc2libGUsIHRoZQ0KPiBTdG9yUG9ydCBpbnRl
cmZhY2UgY2FsbHMgdG8gYWRhcHRlci5jDQo+IA0KPiBPd2VuIFNtaXRoICgxMCk6DQo+ICAgUmVt
b3ZlIHVudXNlZCBjb2RlDQo+ICAgTW92ZSBTdG9yUG9ydCooKSBjYWxscyB0byBhZGFwdGVyLmMN
Cj4gICBQYXNzIFBYRU5WQkRfU1JCRVhULCBub3QgUFNDU0lfUkVRVUVTVF9CTE9DSw0KPiAgIElu
bGluZSBNYXBTZWdtZW50QnVmZmVyKCkNCj4gICBNb3ZlIHNjYXR0ZXIgZ2F0aGVyIGxpc3QgcGFy
c2luZyB0byBhZGFwdGVyLmMNCj4gICBSZWZhY3RvciBCdWlsZElvIGFuZCBTdGFydElvIGNhbGxz
DQo+ICAgUmVmYWN0b3IgdGFyZ2V0LmMNCj4gICBTY29wZSBUYXJnZXREZWJ1Z0NhbGxiYWNrIGlu
IHRhcmdldC5jDQo+ICAgTW92ZSBzdXNwZW5kIGNhbGxiYWNrIGludG8gdGFyZ2V0LmMNCj4gICBU
aWR5IHVwIHRhcmdldC5oDQo+IA0KDQpBbGwgYXBwbGllZC4gVGhhbmtzLA0KDQogIFBhdWwNCg0K
PiAgc3JjL3hlbnZiZC9hZGFwdGVyLmMgIHwgIDIyMiArKysrKysrLS0NCj4gIHNyYy94ZW52YmQv
YWRhcHRlci5oICB8ICAgMjcgKy0NCj4gIHNyYy94ZW52YmQvZnJvbnRlbmQuYyB8ICAgIDQgKy0N
Cj4gIHNyYy94ZW52YmQvZ3JhbnRlci5jICB8ICAgIDEgKw0KPiAgc3JjL3hlbnZiZC9zcmJleHQu
aCAgIHwgICAgNCArDQo+ICBzcmMveGVudmJkL3RhcmdldC5jICAgfCAxMjk5ICsrKysrKysrKysr
KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiAtLS0tDQo+ICBzcmMveGVudmJk
L3RhcmdldC5oICAgfCAgMTc4ICsrKy0tLS0NCj4gIDcgZmlsZXMgY2hhbmdlZCwgODU3IGluc2Vy
dGlvbnMoKyksIDg3OCBkZWxldGlvbnMoLSkNCj4gDQo+IC0tDQo+IDIuOC4zDQo+IA0KPiANCj4g
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gd2luLXB2
LWRldmVsIG1haWxpbmcgbGlzdA0KPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcN
Cj4gaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8v
d2luLXB2LWRldmVsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9q
ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0
aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Tue Jun 27 14:56:06 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jun 2017 14:56:06 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPruP-0002Me-DJ; Tue, 27 Jun 2017 14:56:05 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=3449104f4=Paul.Durrant@citrix.com>)
 id 1dPruN-0002MT-N2
 for win-pv-devel@lists.xenproject.org; Tue, 27 Jun 2017 14:56:03 +0000
Received: from [85.158.143.35] by server-8.bemta-6.messagelabs.com id
 2F/DA-03696-30272595; Tue, 27 Jun 2017 14:56:03 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrGIsWRWlGSWpSXmKPExsWyU9JRQpepKCj
 SYO0EVos/ixMdGD0Of7jCEsAYxZqZl5RfkcCa8fT5RvaCmSuYKn78OM3YwLhmCVMXIyeHhICf
 xKfZX1lAbDYBHYmlR+eDxUUECiVOz5oCFOfiEBaYySixZ+ohdhBHRGAWo8SXdTPZIKqMJNpmP
 wPrZhFQlTgxpRXM5hVwl1i0oxvMFhJwkpg/dx+YzSngLLFx2g52EJtRQFbiS+NqZhCbWUBc4t
 aT+VAXCUgs2XOeGcIWlXj5+B8rhG0gsXUpyBwOoHpNifW79CFaFSWmdD9kh1grKHFy5hOWCYx
 Cs5BMnYXQMQtJxywkHQsYWVYxahSnFpWlFukaWuglFWWmZ5TkJmbm6BoamOnlphYXJ6an5iQm
 Fesl5+duYgSGOQMQ7GC8uTHgEKMkB5OSKO9qiaBIIb6k/JTKjMTijPii0pzU4kOMMhwcShK8d
 gVAOcGi1PTUirTMHGDEwaQlOHiURHivgaR5iwsSc4sz0yFSpxh1OTasXv+FSYglLz8vVUqcdz
 5IkQBIUUZpHtwIWPRfYpSVEuZlBDpKiKcgtSg3swRV/hWjOAejkjAvWz7QFJ7MvBK4Ta+AjmA
 COoJlXgDIESWJCCmpBkbLzmubMto+/4i6v7F0ejBP5EzZ3//O66mnSOQnOxpez1M7m33tCeua
 HPclbyqXXv0qteu86sKazwues74UP2Z3SiHpg97r6W8EIx6Zvl99WbNq5fm1F7T0lWsiOdTl2
 D786kydVDNl7Xp/+9mRJj473J5VfeKaHHlrk1rH6d7wOyLiR5yUebyVWIozEg21mIuKEwGchG
 eP+QIAAA==
X-Env-Sender: prvs=3449104f4=Paul.Durrant@citrix.com
X-Msg-Ref: server-11.tower-21.messagelabs.com!1498575361!75796518!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 34102 invoked from network); 27 Jun 2017 14:56:01 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-11.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 27 Jun 2017 14:56:01 -0000
X-IronPort-AV: E=Sophos;i="5.39,401,1493683200"; d="scan'208";a="48464762"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: 'Eric Mackay' <mackayem@amazon.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] Added a function called from DriverEntry
 where we can safely read registry keys and convert strings
 at	PASSIVE_LEVEL
Thread-Index: AQHS7rTmkredBsLkTUCXS495O8jUuqI4zJpA
Date: Tue, 27 Jun 2017 14:54:30 +0000
Message-ID: <e053407c3ff3442ea210f08aedaa8aea@AMSPEX02CL03.citrite.net>
References: <1498506346-2019-1-git-send-email-mackayem@amazon.com>
In-Reply-To: <1498506346-2019-1-git-send-email-mackayem@amazon.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Subject: Re: [win-pv-devel] [PATCH] Added a function called from
	DriverEntry	where we can safely read registry keys and
	convert strings at	PASSIVE_LEVEL
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiB3aW4tcHYtZGV2ZWwgW21haWx0
bzp3aW4tcHYtZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24NCj4gQmVoYWxm
IE9mIEVyaWMgTWFja2F5DQo+IFNlbnQ6IDI2IEp1bmUgMjAxNyAyMDo0Ng0KPiBUbzogd2luLXB2
LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBFcmljIE1hY2theSA8bWFja2F5ZW1A
YW1hem9uLmNvbT4NCj4gU3ViamVjdDogW3dpbi1wdi1kZXZlbF0gW1BBVENIXSBBZGRlZCBhIGZ1
bmN0aW9uIGNhbGxlZCBmcm9tIERyaXZlckVudHJ5DQo+IHdoZXJlIHdlIGNhbiBzYWZlbHkgcmVh
ZCByZWdpc3RyeSBrZXlzIGFuZCBjb252ZXJ0IHN0cmluZ3MgYXQgUEFTU0lWRV9MRVZFTA0KPiAN
Cj4gVGhlIE1TRE4gZG9jdW1lbnRhdGlvbiBmb3IgdmFyaW91cyByZWdpc3RyeSBrZXkgYWNjZXNz
IGFuZCBzdHJpbmcNCj4gY29udmVyc2lvbiBmdW5jdGlvbnMgcmVxdWlyZXMgdGhlIGNhbGxlciB0
byBiZSBhdA0KPiBJUlFMID0gUEFTU0lWRV9MRVZFTC4gT25lIG9mIHRoZSByZWFzb25zIGZvciB0
aGlzIGlzIHRoYXQgdGhlIHN0cmluZw0KPiBjb252ZXJzaW9uIHRhYmxlcyB1c2VkIGJ5IGZ1bmN0
aW9ucyBzdWNoIGFzDQo+IFJ0bEFuc2lTdHJpbmdUb1VuaWNvZGVTdHJpbmcgYXJlIHN0b3JlZCBp
biBwYWdlZCBwb29sIG1lbW9yeS4gQm90aCB0aGUNCj4gcGFnZSBmYXVsdCBoYW5kbGVyIGFuZCB0
aGUgcHJvY2VzcyBzY2hlZHVsZXINCj4gcnVuIGF0IElSUUwgPSBESVNQQVRDSF9MRVZFTCwgdGhl
cmVmb3JlIHlvdSBtdXN0IG5vdCB0b3VjaCBtZW1vcnkgYXQNCj4gRElTUEFUQ0hfTEVWRUwgdGhh
dCBjb3VsZCBiZSBwYWdlZCBvdXQuIEEgcHJvY2Vzcw0KPiBydW5uaW5nIGF0IERJU1BBVENIX0xF
VkVMIGNhbm5vdCBiZSBwcmVlbXB0ZWQgZm9yIHRoZSBwYWdlIGZhdWx0IGhhbmRsZXINCj4gdG8g
cnVuLg0KPiANCj4gVG8gYWlkIFN0YXRpYyBEcml2ZXIgVmVyaWZpZXIgY29kZSBhbmFseXNpcyBh
bmQgaW5mb3JtIGRldmVsb3BlcnMsIEkgaGF2ZQ0KPiBhZGRlZCBTQUwgYW5ub3RhdGlvbnMgdGhh
dCBpbmRpY2F0ZQ0KPiBJUlFMID0gUEFTU0lWRV9MRVZFTCBpcyByZXF1aXJlZCBvbiBjZXJ0YWlu
IHJlZ2lzdHJ5IGFjY2VzcyBmdW5jdGlvbnMuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBFcmljIE1h
Y2theSA8bWFja2F5ZW1AYW1hem9uLmNvbT4NCg0KR2VuZXJhbGx5IHRoaXMgbG9va3Mgb2sgc28N
Cg0KQWNrZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+DQoNCkhv
d2V2ZXIgaXQgbmVlZHMgcmUtYmFzaW5nIG5vdyB0aGF0IE93ZW4ncyByZWNlbnQgcGF0Y2hlcyBo
YXZlIGdvbmUgaW4uIEknbGwgZG8gdGhhdCwgYW5kIEknbGwgcHJvYmFibHkgc3BsaXQgb3V0IHRo
ZSBhZGRpdGlvbiBvZiB0aGUgYW5ub3RhdGlvbnMgaW50byBhIHNlcGFyYXRlIHBhdGNoLg0KDQog
IFBhdWwNCg0KPiAtLS0NCj4gIHNyYy94ZW52YmQvZHJpdmVyLmMgICB8ICA4NiArKysrKysrKysr
KysrKysrKysrKysrKysrDQo+ICBzcmMveGVudmJkL2RyaXZlci5oICAgfCAgNDUgKysrKysrKysr
KysrKysNCj4gIHNyYy94ZW52YmQvZnJvbnRlbmQuYyB8IDE2OSArKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrLS0tDQo+IC0tLS0tLS0tLS0tLS0NCj4gIHNyYy94ZW52YmQvcmVnaXN0
cnkuYyB8ICAyNiArKysrKysrKw0KPiAgc3JjL3hlbnZiZC9yZWdpc3RyeS5oIHwgIDI1ICsrKysr
KystDQo+ICA1IGZpbGVzIGNoYW5nZWQsIDI5NiBpbnNlcnRpb25zKCspLCA1NSBkZWxldGlvbnMo
LSkNCj4gDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2RyaXZlci5jIGIvc3JjL3hlbnZiZC9k
cml2ZXIuYw0KPiBpbmRleCBiYjE5NTRmLi4wYzkyNzViIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVu
dmJkL2RyaXZlci5jDQo+ICsrKyBiL3NyYy94ZW52YmQvZHJpdmVyLmMNCj4gQEAgLTU4LDYgKzU4
LDggQEAgWEVOVkJEX1BBUkFNRVRFUlMgICBEcml2ZXJQYXJhbWV0ZXJzOw0KPiANCj4gICNkZWZp
bmUgWEVOVkJEX1BPT0xfVEFHICAgICAnZGJ2WCcNCj4gDQo+ICtYRU5WQkRfUkVHSVNUUllfT1ZF
UlJJREUNCj4gRHJpdmVyRmVhdHVyZU92ZXJyaWRlc1tOdW1iZXJPZkZlYXR1cmVzXSA9IHsgMCB9
Ow0KPiArDQo+ICBzdGF0aWMgREVDTFNQRUNfTk9JTkxJTkUgVk9JRA0KPiAgX19Ecml2ZXJQYXJz
ZU9wdGlvbigNCj4gICAgICBJTiAgY29uc3QgQ0hBUiAgKktleSwNCj4gQEAgLTMwMSw2ICszMDMs
ODggQEAgRHJpdmVyRm9ybWF0RnJlZSgNCj4gICAgICAgICAgX19GcmVlUG9vbFdpdGhUYWcoQnVm
ZmVyLCBYRU5WQkRfUE9PTF9UQUcpOw0KPiAgfQ0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQ
QVNTSVZFX0xFVkVMKQ0KPiArVk9JRA0KPiArRHJpdmVySW5pdGlhbGl6ZU92ZXJyaWRlcygNCj4g
KyAgICApDQo+ICt7DQo+ICsgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlOw0K
PiArICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgICAgICBTdGF0dXM7DQo+ICsgICAgUENIQVIg
ICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVOYW1lOw0KPiArICAgIFhFTlZCRF9GRUFUVVJF
ICAgICAgICAgICAgICBGZWF0dXJlOw0KPiArDQo+ICsgICAgc3RydWN0IElOSVRfT1ZFUlJJREVT
IHsNCj4gKyAgICAgICAgUENIQVIgTmFtZTsNCj4gKyAgICAgICAgWEVOVkJEX0ZFQVRVUkUgRmVh
dHVyZTsNCj4gKyAgICB9ICBJbml0W10gPSB7DQo+ICsgICAgICAgIHsgInJlbW92YWJsZSIgLCBG
ZWF0dXJlUmVtb3ZhYmxlIH0sDQo+ICsgICAgICAgIHsgImZlYXR1cmUtcGVyc2lzdGVudCIsIEZl
YXR1cmVQZXJzaXN0ZW50IH0sDQo+ICsgICAgICAgIHsgImZlYXR1cmUtbWF4LWluZGlyZWN0LXNl
Z21lbnRzIiwgRmVhdHVyZU1heEluZGlyZWN0U2VnbWVudHMgfSwNCj4gKyAgICAgICAgeyAiZmVh
dHVyZS1iYXJyaWVyIiwgRmVhdHVyZUJhcnJpZXIgfSwNCj4gKyAgICAgICAgeyAiZmVhdHVyZS1m
bHVzaC1jYWNoZSIsIEZlYXR1cmVGbHVzaENhY2hlIH0sDQo+ICsgICAgICAgIHsgImZlYXR1cmUt
ZGlzY2FyZCIsIEZlYXR1cmVEaXNjYXJkIH0sDQo+ICsgICAgICAgIHsgImRpc2NhcmQtZW5hYmxl
IiwgRmVhdHVyZURpc2NhcmRFbmFibGUgfSwNCj4gKyAgICAgICAgeyAiZGlzY2FyZC1zZWN1cmUi
LCBGZWF0dXJlRGlzY2FyZFNlY3VyZSB9LA0KPiArICAgICAgICB7ICJkaXNjYXJkLWFsaWdubWVu
dCIsIEZlYXR1cmVEaXNjYXJkQWxpZ25tZW50IH0sDQo+ICsgICAgICAgIHsgImRpc2NhcmQtZ3Jh
bnVsYXJpdHkiLCBGZWF0dXJlRGlzY2FyZEdyYW51bGFyaXR5IH0NCj4gKyAgICB9Ow0KPiArDQo+
ICsgICAgZm9yIChVTE9ORyBJbmRleCA9IDA7IEluZGV4IDwgQVJSQVlTSVpFKEluaXQpOyBJbmRl
eCsrKSB7DQo+ICsgICAgICAgIEZlYXR1cmUgPSBJbml0W0luZGV4XS5GZWF0dXJlOw0KPiArICAg
ICAgICBGZWF0dXJlTmFtZSA9IEluaXRbSW5kZXhdLk5hbWU7DQo+ICsgICAgICAgIERyaXZlckZl
YXR1cmVPdmVycmlkZXNbKFVMT05HKUZlYXR1cmVdLk5hbWUgPSBGZWF0dXJlTmFtZTsNCj4gKyAg
ICAgICAgRHJpdmVyRmVhdHVyZU92ZXJyaWRlc1soVUxPTkcpRmVhdHVyZV0uVmFsdWUgPSAwOw0K
PiArICAgICAgICBEcml2ZXJGZWF0dXJlT3ZlcnJpZGVzWyhVTE9ORylGZWF0dXJlXS5Gb3VuZCA9
IEZBTFNFOw0KPiArDQo+ICsgICAgICAgIFN0YXR1cyA9IFJlZ2lzdHJ5UXVlcnlEd29yZFZhbHVl
KERyaXZlckdldFBhcmFtZXRlcnNLZXkoKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRmVhdHVyZU5hbWUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZWYWx1ZSk7DQo+ICsNCj4gKyAgICAgICAgaWYgKE5UX1NVQ0NFU1Mo
U3RhdHVzKSkgew0KPiArICAgICAgICAgICAgRHJpdmVyRmVhdHVyZU92ZXJyaWRlc1soVUxPTkcp
RmVhdHVyZV0uRm91bmQgPSBUUlVFOw0KPiArICAgICAgICAgICAgRHJpdmVyRmVhdHVyZU92ZXJy
aWRlc1soVUxPTkcpRmVhdHVyZV0uVmFsdWUgPSBWYWx1ZTsNCj4gKyAgICAgICAgfQ0KPiArICAg
IH0NCj4gK30NCj4gKw0KPiArLy8gUmV0dXJuIHZhbHVlIGluZGljYXRlcyB3aGV0aGVyIHJlZyBr
ZXkgd2FzIGZvdW5kIGFuZCBzdG9yZWQgaW4NCj4gRHJpdmVyRmVhdHVyZU92ZXJyaWRlcw0KPiAr
Ly8gV2lsbCBzZXQgVmFsdWUgdG8gdGhlIGNvcnJlc3BvbmRpbmcgcmVnIHZhbHVlIGlmIGZvdW5k
LCBvdGhlcndpc2UgaXQgd2lsbA0KPiBsZWF2ZSBWYWx1ZSB1bnRvdWNoZWQNCj4gK19fY2hlY2tS
ZXR1cm4NCj4gK19TdWNjZXNzXyhyZXR1cm4pDQo+ICtCT09MRUFODQo+ICtEcml2ZXJHZXRSZWdP
dmVycmlkZSgNCj4gKyAgICBfX2luIFhFTlZCRF9GRUFUVVJFICAgICAgICAgICAgICBGZWF0dXJl
LA0KPiArICAgIF9fb3V0IFBVTE9ORyAgICAgICAgICAgICAgICAgICAgIFZhbHVlDQo+ICsgICAg
KQ0KPiArew0KPiArICAgIEJPT0xFQU4gRm91bmQgPSBGQUxTRTsNCj4gKw0KPiArICAgIGlmICgo
VUxPTkcpRmVhdHVyZSA8IChVTE9ORylOdW1iZXJPZkZlYXR1cmVzKSB7DQo+ICsgICAgICAgIEZv
dW5kID0gRHJpdmVyRmVhdHVyZU92ZXJyaWRlc1soVUxPTkcpRmVhdHVyZV0uRm91bmQ7DQo+ICsg
ICAgICAgICpWYWx1ZSA9IERyaXZlckZlYXR1cmVPdmVycmlkZXNbKFVMT05HKUZlYXR1cmVdLlZh
bHVlOw0KPiArICAgIH0NCj4gKw0KPiArICAgIHJldHVybiBGb3VuZDsNCj4gK30NCj4gKw0KPiAr
Ly8gUmV0dXJuIHZhbHVlIGluZGljYXRlcyB3aGV0aGVyIGEgZmVhdHVyZSBlbnVtIHRvIHN0cmlu
ZyBtYXBwaW5nIHdhcw0KPiBmb3VuZA0KPiArLy8gRmVhdHVyZVN0cmluZyB3aWxsIGJlIHNldCB0
byBwb2ludCB0byB0aGUgc3RyaW5nIGlmIGEgbWFwcGluZyBpcyBmb3VuZCwNCj4gb3RoZXJ3aXNl
DQo+ICsvLyBpcyBub3QgbW9kaWZpZWQNCj4gK19fY2hlY2tSZXR1cm4NCj4gK1BDSEFSDQo+ICtE
cml2ZXJHZXRGZWF0dXJlTmFtZSgNCj4gKyAgICBfX2luIFhFTlZCRF9GRUFUVVJFICAgICAgICAg
ICAgICBGZWF0dXJlDQo+ICsgICAgKQ0KPiArew0KPiArICAgIFBDSEFSIE5hbWUgPSBOVUxMOw0K
PiArDQo+ICsgICAgaWYgKChVTE9ORylGZWF0dXJlIDwgKFVMT05HKU51bWJlck9mRmVhdHVyZXMp
IHsNCj4gKyAgICAgICAgTmFtZSA9IERyaXZlckZlYXR1cmVPdmVycmlkZXNbKFVMT05HKUZlYXR1
cmVdLk5hbWU7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgcmV0dXJuIE5hbWU7DQo+ICt9DQo+ICsN
Cj4gIEhXX0lOSVRJQUxJWkUgICAgICAgSHdJbml0aWFsaXplOw0KPiANCj4gIEJPT0xFQU4NCj4g
QEAgLTU0OSw2ICs2MzMsOCBAQCBEcml2ZXJFbnRyeSgNCj4gDQo+ICAgICAgUnRsWmVyb01lbW9y
eSgmSW5pdERhdGEsIHNpemVvZihJbml0RGF0YSkpOw0KPiANCj4gKyAgICBEcml2ZXJJbml0aWFs
aXplT3ZlcnJpZGVzKCk7DQo+ICsNCj4gICAgICBJbml0RGF0YS5Id0luaXRpYWxpemF0aW9uRGF0
YVNpemUgICA9ICAgc2l6ZW9mKEluaXREYXRhKTsNCj4gICAgICBJbml0RGF0YS5BZGFwdGVySW50
ZXJmYWNlVHlwZSAgICAgICA9ICAgSW50ZXJuYWw7DQo+ICAgICAgSW5pdERhdGEuSHdJbml0aWFs
aXplICAgICAgICAgICAgICAgPSAgIEh3SW5pdGlhbGl6ZTsNCj4gZGlmZiAtLWdpdCBhL3NyYy94
ZW52YmQvZHJpdmVyLmggYi9zcmMveGVudmJkL2RyaXZlci5oDQo+IGluZGV4IGU3NzMwYTkuLjli
ZjAwMzQgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvZHJpdmVyLmgNCj4gKysrIGIvc3JjL3hl
bnZiZC9kcml2ZXIuaA0KPiBAQCAtNTAsNiArNTAsNTEgQEANCj4gDQo+ICAjZGVmaW5lIFhFTlZC
RF9NSU5fR1JBTlRfUkVGUw0KPiAoWEVOVkJEX01BWF9TRUdNRU5UU19QRVJfU1JCKQ0KPiANCj4g
Ky8vIFJlZ2lzdHJ5IG92ZXJyaWRlcyBmb3IgZHJpdmVyIGZlYXR1cmVzDQo+ICt0eXBlZGVmIGVu
dW0gX1hFTlZCRF9GRUFUVVJFIHsNCj4gKyAgICBGZWF0dXJlUmVtb3ZhYmxlID0gMCwNCj4gKyAg
ICBGZWF0dXJlUGVyc2lzdGVudCwNCj4gKyAgICBGZWF0dXJlTWF4SW5kaXJlY3RTZWdtZW50cywN
Cj4gKyAgICBGZWF0dXJlQmFycmllciwNCj4gKyAgICBGZWF0dXJlRmx1c2hDYWNoZSwNCj4gKyAg
ICBGZWF0dXJlRGlzY2FyZCwNCj4gKyAgICBGZWF0dXJlRGlzY2FyZEVuYWJsZSwNCj4gKyAgICBG
ZWF0dXJlRGlzY2FyZFNlY3VyZSwNCj4gKyAgICBGZWF0dXJlRGlzY2FyZEFsaWdubWVudCwNCj4g
KyAgICBGZWF0dXJlRGlzY2FyZEdyYW51bGFyaXR5LA0KPiArDQo+ICsgICAgLy8gQWRkIGFueSBu
ZXcgZmVhdHVyZXMgYmVmb3JlIHRoaXMgZW51bQ0KPiArICAgIE51bWJlck9mRmVhdHVyZXMNCj4g
K30gWEVOVkJEX0ZFQVRVUkUsICpQWEVOVkJEX0ZFQVRVUkU7DQo+ICsNCj4gKy8vIEZlYXR1cmUg
T3ZlcnJpZGVzIEZyb20gUmVnaXN0cnkgVmFsdWVzDQo+ICt0eXBlZGVmIHN0cnVjdCBfWEVOVkJE
X1JFR0lTVFJZX09WRVJSSURFIHsNCj4gKyAgICBQQ0hBUiAgICAgICAgICAgICAgICAgICAgICAg
TmFtZTsNCj4gKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgVmFsdWU7DQo+ICsgICAg
Qk9PTEVBTiAgICAgICAgICAgICAgICAgICAgIEZvdW5kOw0KPiArfSBYRU5WQkRfUkVHSVNUUllf
T1ZFUlJJREUsICpQWEVOVkJEX1JFR0lTVFJZX09WRVJSSURFOw0KPiArDQo+ICtleHRlcm4gWEVO
VkJEX1JFR0lTVFJZX09WRVJSSURFDQo+IERyaXZlckZlYXR1cmVPdmVycmlkZXNbTnVtYmVyT2ZG
ZWF0dXJlc107DQo+ICsNCj4gKy8vIFJldHVybiB2YWx1ZSBpbmRpY2F0ZXMgd2hldGhlciByZWcg
a2V5IHdhcyBmb3VuZCBhbmQgc3RvcmVkIGluDQo+IERyaXZlckZlYXR1cmVPdmVycmlkZXMNCj4g
Ky8vIFdpbGwgc2V0IFZhbHVlIHRvIHRoZSBjb3JyZXNwb25kaW5nIHJlZyB2YWx1ZSBpZiBmb3Vu
ZCwgb3RoZXJ3aXNlIGl0IHdpbGwNCj4gbGVhdmUgVmFsdWUgdW50b3VjaGVkDQo+ICtfX2NoZWNr
UmV0dXJuDQo+ICtfU3VjY2Vzc18ocmV0dXJuKQ0KPiArZXh0ZXJuIEJPT0xFQU4NCj4gK0RyaXZl
ckdldFJlZ092ZXJyaWRlKA0KPiArICAgIF9faW4gWEVOVkJEX0ZFQVRVUkUgICAgICAgICAgICAg
IE5hbWUsDQo+ICsgICAgX19vdXQgUFVMT05HICAgICAgICAgICAgICAgICAgICAgVmFsdWUNCj4g
KyAgICApOw0KPiArDQo+ICsvLyBSZXR1cm4gdmFsdWUgaW5kaWNhdGVzIHdoZXRoZXIgYSBmZWF0
dXJlIGVudW0gdG8gc3RyaW5nIG1hcHBpbmcgd2FzDQo+IGZvdW5kDQo+ICsvLyBGZWF0dXJlU3Ry
aW5nIHdpbGwgYmUgc2V0IHRvIHBvaW50IHRvIHRoZSBzdHJpbmcgaWYgYSBtYXBwaW5nIGlzIGZv
dW5kLA0KPiBvdGhlcndpc2UNCj4gKy8vIGlzIG5vdCBtb2RpZmllZA0KPiArX19jaGVja1JldHVy
bg0KPiArZXh0ZXJuIFBDSEFSDQo+ICtEcml2ZXJHZXRGZWF0dXJlTmFtZSgNCj4gKyAgICBfX2lu
IFhFTlZCRF9GRUFUVVJFICAgICAgICAgICAgICBGZWF0dXJlDQo+ICsgICAgKTsNCj4gKw0KPiAg
dHlwZWRlZiBzdHJ1Y3QgX1hFTlZCRF9QQVJBTUVURVJTIHsNCj4gICAgICBCT09MRUFOICAgICBT
eW50aGVzaXplSW5xdWlyeTsNCj4gICAgICBCT09MRUFOICAgICBQVkNEUm9tOw0KPiBkaWZmIC0t
Z2l0IGEvc3JjL3hlbnZiZC9mcm9udGVuZC5jIGIvc3JjL3hlbnZiZC9mcm9udGVuZC5jDQo+IGlu
ZGV4IDIyN2I5M2IuLmFhOGVkNjIgMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvZnJvbnRlbmQu
Yw0KPiArKysgYi9zcmMveGVudmJkL2Zyb250ZW5kLmMNCj4gQEAgLTYxOSwzNyArNjE5LDY5IEBA
IGFib3J0Og0KPiAgc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4NCj4gIEZyb250ZW5kUmVhZEZl
YXR1cmUoDQo+ICAgICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQgICAgICAgICAgICBGcm9udGVuZCwN
Cj4gLSAgICBJTiAgUENIQVIgICAgICAgICAgICAgICAgICAgICAgIE5hbWUsDQo+ICsgICAgSU4g
IFhFTlZCRF9GRUFUVVJFICAgICAgICAgICAgICBGZWF0dXJlLA0KPiAgICAgIElOICBQQk9PTEVB
TiAgICAgICAgICAgICAgICAgICAgVmFsdWUNCj4gLSAgICApDQo+ICspDQo+ICB7DQo+ICAgICAg
TlRTVEFUVVMgICAgICAgIHN0YXR1czsNCj4gICAgICBQQ0hBUiAgICAgICAgICAgQnVmZmVyOw0K
PiAgICAgIFVMT05HICAgICAgICAgICBPdmVycmlkZTsNCj4gICAgICBCT09MRUFOICAgICAgICAg
T2xkID0gKlZhbHVlOw0KPiArICAgIFBDSEFSICAgICAgICAgICBOYW1lOw0KPiArDQo+ICsgICAg
TmFtZSA9IERyaXZlckdldEZlYXR1cmVOYW1lKEZlYXR1cmUpOw0KPiArICAgIGlmIChOYW1lID09
IE5VTEwpIHsNCj4gKyAgICAgICAgVHJhY2UoIlRhcmdldFslZF0gOiBDb3VsZCBub3QgZmluZCBG
ZWF0dXJlICV1LlxuIiwgRnJvbnRlbmQtPlRhcmdldElkLA0KPiBGZWF0dXJlKTsNCj4gKyAgICAg
ICAgcmV0dXJuIEZBTFNFOw0KPiArICAgIH0NCj4gKw0KPiArICAgIC8vIGNoZWNrIHJlZ2lzdHJ5
IGZvciBkaXNhYmxlLW92ZXJyaWRlDQo+ICsgICAgaWYgKERyaXZlckdldFJlZ092ZXJyaWRlKEZl
YXR1cmUsICZPdmVycmlkZSkpIHsNCj4gKyAgICAgICAgKlZhbHVlID0gKE92ZXJyaWRlID09IDAp
ID8gRkFMU0UgOiBUUlVFOw0KPiArICAgIH0gZWxzZSB7DQo+ICsNCj4gKyAgICAgICAgc3RhdHVz
ID0gWEVOQlVTX1NUT1JFKFJlYWQsDQo+ICsgICAgICAgICAgICBGcm9udGVuZC0+U3RvcmUsDQo+
ICsgICAgICAgICAgICBOVUxMLA0KPiArICAgICAgICAgICAgRnJvbnRlbmQtPkJhY2tlbmRQYXRo
LA0KPiArICAgICAgICAgICAgTmFtZSwNCj4gKyAgICAgICAgICAgICZCdWZmZXIpOw0KPiArICAg
ICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4gKyAgICAgICAgICAgIHJldHVybiBGQUxT
RTsgICAvLyBubyB2YWx1ZSwgdW5jaGFuZ2VkDQo+ICsNCj4gKyAgICAgICAgKlZhbHVlID0gISEo
c3RydG91bChCdWZmZXIsIE5VTEwsIDEwKSk7DQo+ICsgICAgICAgIFhFTkJVU19TVE9SRShGcmVl
LA0KPiArICAgICAgICAgICAgRnJvbnRlbmQtPlN0b3JlLA0KPiArICAgICAgICAgICAgQnVmZmVy
KTsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICByZXR1cm4gT2xkICE9ICpWYWx1ZTsNCj4gK30NCj4g
Kw0KPiArc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4NCj4gK0Zyb250ZW5kUmVhZERpc2tGZWF0
dXJlKA0KPiArICAgIElOICBQWEVOVkJEX0ZST05URU5EICAgICAgICAgICAgRnJvbnRlbmQsDQo+
ICsgICAgSU4gIFBDSEFSICAgICAgICAgICAgICAgICAgICAgICBOYW1lLA0KPiArICAgIElOICBQ
Qk9PTEVBTiAgICAgICAgICAgICAgICAgICAgVmFsdWUNCj4gKykNCj4gK3sNCj4gKyAgICBOVFNU
QVRVUyAgICAgICAgc3RhdHVzOw0KPiArICAgIFBDSEFSICAgICAgICAgICBCdWZmZXI7DQo+ICsg
ICAgQk9PTEVBTiAgICAgICAgIE9sZCA9ICpWYWx1ZTsNCj4gDQo+ICAgICAgc3RhdHVzID0gWEVO
QlVTX1NUT1JFKFJlYWQsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kLT5T
dG9yZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgRnJvbnRlbmQtPkJhY2tlbmRQYXRoLA0KPiAtICAgICAgICAgICAgICAg
ICAgICAgICAgICBOYW1lLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAmQnVmZmVyKTsN
Cj4gKyAgICAgICAgRnJvbnRlbmQtPlN0b3JlLA0KPiArICAgICAgICBOVUxMLA0KPiArICAgICAg
ICBGcm9udGVuZC0+QmFja2VuZFBhdGgsDQo+ICsgICAgICAgIE5hbWUsDQo+ICsgICAgICAgICZC
dWZmZXIpOw0KPiAgICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQ0KPiAgICAgICAgICByZXR1
cm4gRkFMU0U7ICAgLy8gbm8gdmFsdWUsIHVuY2hhbmdlZA0KPiANCj4gICAgICAqVmFsdWUgPSAh
IShzdHJ0b3VsKEJ1ZmZlciwgTlVMTCwgMTApKTsNCj4gICAgICBYRU5CVVNfU1RPUkUoRnJlZSwN
Cj4gLSAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQtPlN0b3JlLA0KPiAtICAgICAgICAgICAg
ICAgICAgICBCdWZmZXIpOw0KPiAtDQo+IC0gICAgLy8gY2hlY2sgcmVnaXN0cnkgZm9yIGRpc2Fi
bGUtb3ZlcnJpZGUNCj4gLSAgICBzdGF0dXMgPSBSZWdpc3RyeVF1ZXJ5RHdvcmRWYWx1ZShEcml2
ZXJHZXRQYXJhbWV0ZXJzS2V5KCksDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBOYW1lLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJk92ZXJy
aWRlKTsNCj4gLSAgICBpZiAoTlRfU1VDQ0VTUyhzdGF0dXMpKSB7DQo+IC0gICAgICAgIGlmIChP
dmVycmlkZSA9PSAwKQ0KPiAtICAgICAgICAgICAgKlZhbHVlID0gRkFMU0U7DQo+IC0gICAgfQ0K
PiArICAgICAgICBGcm9udGVuZC0+U3RvcmUsDQo+ICsgICAgICAgIEJ1ZmZlcik7DQo+IA0KPiAg
ICAgIHJldHVybiBPbGQgIT0gKlZhbHVlOw0KPiAgfQ0KPiBAQCAtNjU3LDM5ICs2ODksNjkgQEAg
RnJvbnRlbmRSZWFkRmVhdHVyZSgNCj4gIHN0YXRpYyBGT1JDRUlOTElORSBCT09MRUFODQo+ICBG
cm9udGVuZFJlYWRWYWx1ZTMyKA0KPiAgICAgIElOICBQWEVOVkJEX0ZST05URU5EICAgICAgICAg
ICAgRnJvbnRlbmQsDQo+IC0gICAgSU4gIFBDSEFSICAgICAgICAgICAgICAgICAgICAgICBOYW1l
LA0KPiArICAgIElOICBYRU5WQkRfRkVBVFVSRSAgICAgICAgICAgICAgRmVhdHVyZSwNCj4gICAg
ICBJTiAgQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgIEFsbG93T3ZlcnJpZGUsDQo+ICAgICAg
SU4gIFBVTE9ORyAgICAgICAgICAgICAgICAgICAgICBWYWx1ZQ0KPiAtICAgICkNCj4gKykNCj4g
IHsNCj4gICAgICBOVFNUQVRVUyAgICAgICAgc3RhdHVzOw0KPiAgICAgIFBDSEFSICAgICAgICAg
ICBCdWZmZXI7DQo+ICAgICAgVUxPTkcgICAgICAgICAgIE92ZXJyaWRlOw0KPiAgICAgIFVMT05H
ICAgICAgICAgICBPbGQgPSAqVmFsdWU7DQo+ICsgICAgUFNUUiAgICAgICAgICAgIE5hbWU7DQo+
ICsNCj4gKyAgICBOYW1lID0gRHJpdmVyR2V0RmVhdHVyZU5hbWUoRmVhdHVyZSk7DQo+ICsgICAg
aWYgKE5hbWUgPT0gTlVMTCkgew0KPiArICAgICAgICBUcmFjZSgiVGFyZ2V0WyVkXSA6IENvdWxk
IG5vdCBmaW5kIEZlYXR1cmUgJXUuXG4iLCBGcm9udGVuZC0+VGFyZ2V0SWQsDQo+IEZlYXR1cmUp
Ow0KPiArICAgICAgICByZXR1cm4gRkFMU0U7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgLy8gY2hl
Y2sgcmVnaXN0cnkgZm9yIGRpc2FibGUtb3ZlcnJpZGUNCj4gKyAgICBpZiAoQWxsb3dPdmVycmlk
ZSAmJiBEcml2ZXJHZXRSZWdPdmVycmlkZShGZWF0dXJlLCAmT3ZlcnJpZGUpKSB7DQo+ICsgICAg
ICAgICpWYWx1ZSA9IE92ZXJyaWRlOw0KPiArICAgIH0gZWxzZSB7DQo+ICsgICAgICAgIHN0YXR1
cyA9IFhFTkJVU19TVE9SRShSZWFkLA0KPiArICAgICAgICAgICAgRnJvbnRlbmQtPlN0b3JlLA0K
PiArICAgICAgICAgICAgTlVMTCwNCj4gKyAgICAgICAgICAgIEZyb250ZW5kLT5CYWNrZW5kUGF0
aCwNCj4gKyAgICAgICAgICAgIE5hbWUsDQo+ICsgICAgICAgICAgICAmQnVmZmVyKTsNCj4gKyAg
ICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ICsgICAgICAgICAgICByZXR1cm4gRkFM
U0U7ICAgLy8gbm8gdmFsdWUsIHVuY2hhbmdlZA0KPiArDQo+ICsgICAgICAgICpWYWx1ZSA9IHN0
cnRvdWwoQnVmZmVyLCBOVUxMLCAxMCk7DQo+ICsgICAgICAgIFhFTkJVU19TVE9SRShGcmVlLA0K
PiArICAgICAgICAgICAgRnJvbnRlbmQtPlN0b3JlLA0KPiArICAgICAgICAgICAgQnVmZmVyKTsN
Cj4gKyAgICB9DQo+ICsNCj4gKyAgICByZXR1cm4gT2xkICE9ICpWYWx1ZTsNCj4gK30NCj4gKw0K
PiArc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4NCj4gK0Zyb250ZW5kUmVhZERpc2tWYWx1ZTMy
KA0KPiArICAgIElOICBQWEVOVkJEX0ZST05URU5EICAgICAgICAgICAgRnJvbnRlbmQsDQo+ICsg
ICAgSU4gIFBDSEFSICAgICAgICAgICAgICAgICAgICAgICBOYW1lLA0KPiArICAgIElOICBQVUxP
TkcgICAgICAgICAgICAgICAgICAgICAgVmFsdWUNCj4gKykNCj4gK3sNCj4gKyAgICBOVFNUQVRV
UyAgICAgICAgc3RhdHVzOw0KPiArICAgIFBDSEFSICAgICAgICAgICBCdWZmZXI7DQo+ICsgICAg
VUxPTkcgICAgICAgICAgIE9sZCA9ICpWYWx1ZTsNCj4gDQo+ICAgICAgc3RhdHVzID0gWEVOQlVT
X1NUT1JFKFJlYWQsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kLT5TdG9y
ZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgRnJvbnRlbmQtPkJhY2tlbmRQYXRoLA0KPiAtICAgICAgICAgICAgICAgICAg
ICAgICAgICBOYW1lLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAmQnVmZmVyKTsNCj4g
KyAgICAgICAgRnJvbnRlbmQtPlN0b3JlLA0KPiArICAgICAgICBOVUxMLA0KPiArICAgICAgICBG
cm9udGVuZC0+QmFja2VuZFBhdGgsDQo+ICsgICAgICAgIE5hbWUsDQo+ICsgICAgICAgICZCdWZm
ZXIpOw0KPiAgICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQ0KPiAgICAgICAgICByZXR1cm4g
RkFMU0U7ICAgLy8gbm8gdmFsdWUsIHVuY2hhbmdlZA0KPiANCj4gICAgICAqVmFsdWUgPSBzdHJ0
b3VsKEJ1ZmZlciwgTlVMTCwgMTApOw0KPiAgICAgIFhFTkJVU19TVE9SRShGcmVlLA0KPiAtICAg
ICAgICAgICAgICAgICAgICBGcm9udGVuZC0+U3RvcmUsDQo+IC0gICAgICAgICAgICAgICAgICAg
IEJ1ZmZlcik7DQo+IC0NCj4gLSAgICAvLyBjaGVjayByZWdpc3RyeSBmb3IgZGlzYWJsZS1vdmVy
cmlkZQ0KPiAtICAgIGlmIChBbGxvd092ZXJyaWRlKSB7DQo+IC0gICAgICAgIHN0YXR1cyA9IFJl
Z2lzdHJ5UXVlcnlEd29yZFZhbHVlKERyaXZlckdldFBhcmFtZXRlcnNLZXkoKSwNCj4gLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lLA0KPiAtICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZPdmVycmlkZSk7DQo+IC0gICAgICAgIGlmIChO
VF9TVUNDRVNTKHN0YXR1cykpIHsNCj4gLSAgICAgICAgICAgICpWYWx1ZSA9IE92ZXJyaWRlOw0K
PiAtICAgICAgICB9DQo+IC0gICAgfQ0KPiArICAgICAgICBGcm9udGVuZC0+U3RvcmUsDQo+ICsg
ICAgICAgIEJ1ZmZlcik7DQo+IA0KPiAgICAgIHJldHVybiBPbGQgIT0gKlZhbHVlOw0KPiAgfQ0K
PiBAQCAtNzUxLDE3ICs4MTMsMTQgQEAgX19SZWFkRGlza0luZm8oDQo+ICB7DQo+ICAgICAgQk9P
TEVBTiBDaGFuZ2VkID0gRkFMU0U7DQo+IA0KPiAtICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFk
VmFsdWUzMihGcm9udGVuZCwNCj4gKyAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZERpc2tWYWx1
ZTMyKEZyb250ZW5kLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbmZv
IiwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwNCj4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPkRpc2tJbmZvLkRpc2tJbmZv
KTsNCj4gLSAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZFZhbHVlMzIoRnJvbnRlbmQsDQo+ICsg
ICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWREaXNrVmFsdWUzMihGcm9udGVuZCwNCj4gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VjdG9yLXNpemUiLA0KPiAtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLA0KPiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uU2VjdG9yU2l6ZSk7DQo+IC0gICAgQ2hh
bmdlZCB8PSBGcm9udGVuZFJlYWRWYWx1ZTMyKEZyb250ZW5kLA0KPiArICAgIENoYW5nZWQgfD0g
RnJvbnRlbmRSZWFkRGlza1ZhbHVlMzIoRnJvbnRlbmQsDQo+ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInBoeXNpY2FsLXNlY3Rvci1zaXplIiwNCj4gLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBGQUxTRSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmRnJvbnRlbmQtPkRpc2tJbmZvLlBoeXNTZWN0b3JTaXplKTsNCj4gICAgICBDaGFu
Z2VkIHw9IEZyb250ZW5kUmVhZFZhbHVlNjQoRnJvbnRlbmQsDQo+ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInNlY3RvcnMiLA0KPiBAQCAtODA1LDE0ICs4NjQsMTQgQEAgRnJv
bnRlbmRSZWFkRmVhdHVyZXMoDQo+ICAgICAgQk9PTEVBTiBDaGFuZ2VkID0gRkFMU0U7DQo+IA0K
PiAgICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFkRmVhdHVyZShGcm9udGVuZCwNCj4gLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlbW92YWJsZSIsDQo+ICsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVSZW1vdmFibGUsDQo+ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+Q2Fwcy5SZW1vdmFibGUpOw0KPiAg
ICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFkVmFsdWUzMihGcm9udGVuZCwNCj4gLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImZlYXR1cmUtbWF4LWluZGlyZWN0LXNlZ21lbnRz
IiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVhdHVyZU1heEluZGly
ZWN0U2VnbWVudHMsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUs
DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RmVhdHVy
ZXMuSW5kaXJlY3QpOw0KPiAgICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFkRmVhdHVyZShGcm9u
dGVuZCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZlYXR1cmUtcGVy
c2lzdGVudCIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVQ
ZXJzaXN0ZW50LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRl
bmQtPkZlYXR1cmVzLlBlcnNpc3RlbnQpOw0KPiANCj4gICAgICBpZiAoIUNoYW5nZWQpDQo+IEBA
IC04NDEsMzEgKzkwMCwzMSBAQCBGcm9udGVuZFJlYWREaXNrSW5mbygNCj4gICAgICBCT09MRUFO
IERpc2NhcmRFbmFibGUgPSBUUlVFOw0KPiANCj4gICAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVh
ZEZlYXR1cmUoRnJvbnRlbmQsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJmZWF0dXJlLWJhcnJpZXIiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBGZWF0dXJlQmFycmllciwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JkZyb250ZW5kLT5EaXNrSW5mby5CYXJyaWVyKTsNCj4gICAgICBDaGFuZ2VkIHw9IEZyb250ZW5k
UmVhZEZlYXR1cmUoRnJvbnRlbmQsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJmZWF0dXJlLWZsdXNoLWNhY2hlIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRmVhdHVyZUZsdXNoQ2FjaGUsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uRmx1c2hDYWNoZSk7DQo+IA0KPiAgICAgIC8v
IGRpc2NhcmQgcmVsYXRlZA0KPiAgICAgIEZyb250ZW5kUmVhZEZlYXR1cmUoRnJvbnRlbmQsDQo+
IC0gICAgICAgICAgICAgICAgICAgICAgICAiZmVhdHVyZS1kaXNjYXJkIiwNCj4gKyAgICAgICAg
ICAgICAgICAgICAgICAgIEZlYXR1cmVEaXNjYXJkLA0KPiAgICAgICAgICAgICAgICAgICAgICAg
ICAgJkRpc2NhcmRGZWF0dXJlKTsNCj4gICAgICBGcm9udGVuZFJlYWRGZWF0dXJlKEZyb250ZW5k
LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgImRpc2NhcmQtZW5hYmxlIiwNCj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgIEZlYXR1cmVEaXNjYXJkRW5hYmxlLA0KPiAgICAgICAgICAgICAg
ICAgICAgICAgICAgJkRpc2NhcmRFbmFibGUpOw0KPiAgICAgIERpc2NhcmQgPSBEaXNjYXJkRmVh
dHVyZSAmJiBEaXNjYXJkRW5hYmxlOw0KPiAgICAgIENoYW5nZWQgfD0gKERpc2NhcmQgIT0gRnJv
bnRlbmQtPkRpc2tJbmZvLkRpc2NhcmQpOw0KPiAgICAgIEZyb250ZW5kLT5EaXNrSW5mby5EaXNj
YXJkID0gRGlzY2FyZDsNCj4gICAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZEZlYXR1cmUoRnJv
bnRlbmQsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXNjYXJkLXNl
Y3VyZSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVEaXNj
YXJkU2VjdXJlLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRl
bmQtPkRpc2tJbmZvLkRpc2NhcmRTZWN1cmUpOw0KPiAgICAgIENoYW5nZWQgfD0gRnJvbnRlbmRS
ZWFkVmFsdWUzMihGcm9udGVuZCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImRpc2NhcmQtYWxpZ25tZW50IiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRmVhdHVyZURpc2NhcmRBbGlnbm1lbnQsDQo+ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFRSVUUsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZGcm9udGVuZC0+RGlza0luZm8uRGlzY2FyZEFsaWdubWVudCk7DQo+ICAgICAgQ2hhbmdlZCB8
PSBGcm9udGVuZFJlYWRWYWx1ZTMyKEZyb250ZW5kLA0KPiAtICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZGlzY2FyZC1ncmFudWxhcml0eSIsDQo+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEZlYXR1cmVEaXNjYXJkR3JhbnVsYXJpdHksDQo+ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsDQo+ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uRGlzY2FyZEdyYW51bGFyaXR5KTsN
Cj4gDQo+IEBAIC0xMjM4LDYgKzEyOTcsOCBAQCBGcm9udGVuZERpc2FibGUoDQo+IA0KPiANCj4g
Ly89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCj4gPT09PT09PT09PT09PT09PT09PT0NCj4gIC8vIEluaXQvVGVybQ0KPiArX0lSUUxfcmVx
dWlyZXNfKERJU1BBVENIX0xFVkVMKQ0KPiArX1JlcXVpcmVzX2xvY2tfaGVsZF8oRnJvbnRlbmQt
PlN0YXRlTG9jaykNCj4gIHN0YXRpYyBERUNMU1BFQ19OT0lOTElORSBOVFNUQVRVUw0KPiAgX19G
cm9udGVuZFNldFN0YXRlKA0KPiAgICAgIF9faW4gIFBYRU5WQkRfRlJPTlRFTkQgICAgICAgIEZy
b250ZW5kLA0KPiBAQCAtMTQxMyw2ICsxNDc0LDcgQEAgRnJvbnRlbmRTdXNwZW5kTGF0ZUNhbGxi
YWNrKA0KPiAgICAgIFBkb1ByZVJlc3VtZShGcm9udGVuZC0+UGRvKTsNCj4gDQo+ICAgICAgLy8g
ZG9udCBhY3F1aXJlIHN0YXRlIGxvY2sgLSBjYWxsZWQgYXQgRElTUEFUQ0ggb24gMSB2Q1BVIHdp
dGggaW50ZXJydXB0cw0KPiBlbmFibGVkDQo+ICsjcHJhZ21hIHdhcm5pbmcoc3VwcHJlc3M6IDI2
MTEwKSAvLyB3YXJuaW5nIEMyNjExMDogQ2FsbGVyIGZhaWxpbmcgdG8gaG9sZA0KPiBsb2NrIDxs
b2NrPiBiZWZvcmUgY2FsbGluZyBmdW5jdGlvbiA8ZnVuYz4uDQo+ICAgICAgU3RhdHVzID0gX19G
cm9udGVuZFNldFN0YXRlKEZyb250ZW5kLCBYRU5WQkRfQ0xPU0VEKTsNCj4gICAgICBpZiAoIU5U
X1NVQ0NFU1MoU3RhdHVzKSkgew0KPiAgICAgICAgICBFcnJvcigiVGFyZ2V0WyVkXSA6IFNldFN0
YXRlIENMT1NFRCAoJTA4eClcbiIsIEZyb250ZW5kLT5UYXJnZXRJZCwNCj4gU3RhdHVzKTsNCj4g
QEAgLTE0MjAsNiArMTQ4Miw3IEBAIEZyb250ZW5kU3VzcGVuZExhdGVDYWxsYmFjaygNCj4gICAg
ICB9DQo+IA0KPiAgICAgIC8vIGRvbnQgYWNxdWlyZSBzdGF0ZSBsb2NrIC0gY2FsbGVkIGF0IERJ
U1BBVENIIG9uIDEgdkNQVSB3aXRoIGludGVycnVwdHMNCj4gZW5hYmxlZA0KPiArI3ByYWdtYSB3
YXJuaW5nKHN1cHByZXNzOiAyNjExMCkgLy8gd2FybmluZyBDMjYxMTA6IENhbGxlciBmYWlsaW5n
IHRvIGhvbGQNCj4gbG9jayA8bG9jaz4gYmVmb3JlIGNhbGxpbmcgZnVuY3Rpb24gPGZ1bmM+Lg0K
PiAgICAgIFN0YXR1cyA9IF9fRnJvbnRlbmRTZXRTdGF0ZShGcm9udGVuZCwgU3RhdGUpOw0KPiAg
ICAgIGlmICghTlRfU1VDQ0VTUyhTdGF0dXMpKSB7DQo+ICAgICAgICAgIEVycm9yKCJUYXJnZXRb
JWRdIDogU2V0U3RhdGUgJXMgKCUwOHgpXG4iLCBGcm9udGVuZC0+VGFyZ2V0SWQsDQo+IF9fWGVu
dmJkU3RhdGVOYW1lKFN0YXRlKSwgU3RhdHVzKTsNCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQv
cmVnaXN0cnkuYyBiL3NyYy94ZW52YmQvcmVnaXN0cnkuYw0KPiBpbmRleCA5Y2VmZmE1Li44ODVh
YjZkIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3JlZ2lzdHJ5LmMNCj4gKysrIGIvc3JjL3hl
bnZiZC9yZWdpc3RyeS5jDQo+IEBAIC04OSw2ICs4OSw3IEBAIFJlZ2lzdHJ5VGVhcmRvd24oDQo+
ICAgICAgUmVnaXN0cnlQYXRoLk1heGltdW1MZW5ndGggPSBSZWdpc3RyeVBhdGguTGVuZ3RoID0g
MDsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIE5U
U1RBVFVTDQo+ICBSZWdpc3RyeU9wZW5LZXkoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICBQ
YXJlbnQsDQo+IEBAIC0xMTgsNiArMTE5LDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJuIHN0YXR1
czsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIHN0
YXRpYyBOVFNUQVRVUw0KPiAgUmVnaXN0cnlPcGVuUm9vdCgNCj4gICAgICBJTiAgUFdDSEFSICAg
ICAgICAgIFBhdGgsDQo+IEBAIC0xNTEsNiArMTUzLDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJu
IHN0YXR1czsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkN
Cj4gIE5UU1RBVFVTDQo+ICBSZWdpc3RyeUNyZWF0ZUtleSgNCj4gICAgICBJTiAgSEFORExFICAg
ICAgICAgIFJvb3QsDQo+IEBAIC0yNTAsNiArMjUzLDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJu
IHN0YXR1czsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkN
Cj4gIE5UU1RBVFVTDQo+ICBSZWdpc3RyeU9wZW5TZXJ2aWNlS2V5KA0KPiAgICAgIElOICBBQ0NF
U1NfTUFTSyAgICAgRGVzaXJlZEFjY2VzcywNCj4gQEAgLTI1OSw2ICsyNjMsNyBAQCBSZWdpc3Ry
eU9wZW5TZXJ2aWNlS2V5KA0KPiAgICAgIHJldHVybiBSZWdpc3RyeU9wZW5LZXkoTlVMTCwgJlJl
Z2lzdHJ5UGF0aCwgRGVzaXJlZEFjY2VzcywgS2V5KTsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1
aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIE5UU1RBVFVTDQo+ICBSZWdpc3RyeUNyZWF0ZVNl
cnZpY2VLZXkoDQo+ICAgICAgT1VUIFBIQU5ETEUgICAgICAgICBLZXkNCj4gQEAgLTI2Nyw2ICsy
NzIsNyBAQCBSZWdpc3RyeUNyZWF0ZVNlcnZpY2VLZXkoDQo+ICAgICAgcmV0dXJuIFJlZ2lzdHJ5
Q3JlYXRlS2V5KE5VTEwsICZSZWdpc3RyeVBhdGgsDQo+IFJFR19PUFRJT05fTk9OX1ZPTEFUSUxF
LCBLZXkpOw0KPiAgfQ0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0K
PiAgTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5T3BlblNvZnR3YXJlS2V5KA0KPiAgICAgIElOICBQREVW
SUNFX09CSkVDVCAgRGV2aWNlT2JqZWN0LA0KPiBAQCAtMjg5LDYgKzI5NSw3IEBAIGZhaWwxOg0K
PiAgICAgIHJldHVybiBzdGF0dXM7DQo+ICB9DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBB
U1NJVkVfTEVWRUwpDQo+ICBOVFNUQVRVUw0KPiAgUmVnaXN0cnlPcGVuSGFyZHdhcmVLZXkoDQo+
ICAgICAgSU4gIFBERVZJQ0VfT0JKRUNUICAgICAgRGV2aWNlT2JqZWN0LA0KPiBAQCAtMzY2LDYg
KzM3Myw3IEBAIGZhaWwxOg0KPiAgICAgIHJldHVybiBzdGF0dXM7DQo+ICB9DQo+IA0KPiArX19k
cnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBOVFNUQVRVUw0KPiAgUmVnaXN0cnlP
cGVuU3ViS2V5KA0KPiAgICAgIElOICBQSEFORExFICAgICAgICAgS2V5LA0KPiBAQCAtMzk5LDYg
KzQwNyw3IEBAIGZhaWwxOg0KPiAgICAgIHJldHVybiBzdGF0dXM7DQo+ICB9DQo+IA0KPiArX19k
cnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBOVFNUQVRVUw0KPiAgUmVnaXN0cnlD
cmVhdGVTdWJLZXkoDQo+ICAgICAgSU4gIFBIQU5ETEUgICAgICAgICBLZXksDQo+IEBAIC00MzIs
NiArNDQxLDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4gIH0NCj4gDQo+ICtf
X2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIE5UU1RBVFVTDQo+ICBSZWdpc3Ry
eURlbGV0ZVN1YktleSgNCj4gICAgICBJTiAgUEhBTkRMRSAgICAgICAgIEtleSwNCj4gQEAgLTQ3
NSw2ICs0ODUsNyBAQCBmYWlsMToNCj4gICAgICByZXR1cm4gc3RhdHVzOw0KPiAgfQ0KPiANCj4g
K19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgTlRTVEFUVVMNCj4gIFJlZ2lz
dHJ5RW51bWVyYXRlU3ViS2V5cygNCj4gICAgICBJTiAgSEFORExFICAgICAgICAgICAgICBLZXks
DQo+IEBAIC01NzksNiArNTkwLDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4g
IH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIE5UU1RBVFVT
DQo+ICBSZWdpc3RyeUVudW1lcmF0ZVZhbHVlcygNCj4gICAgICBJTiAgSEFORExFICAgICAgICAg
ICAgICAgICAgICAgIEtleSwNCj4gQEAgLTY3Nyw2ICs2ODksNyBAQCBmYWlsMToNCj4gICAgICBy
ZXR1cm4gc3RhdHVzOw0KPiAgfQ0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xF
VkVMKQ0KPiAgTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5RGVsZXRlVmFsdWUoDQo+ICAgICAgSU4gIFBI
QU5ETEUgICAgICAgICBLZXksDQo+IEBAIC03MTAsNiArNzIzLDcgQEAgZmFpbDE6DQo+ICAgICAg
cmV0dXJuIHN0YXR1czsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9M
RVZFTCkNCj4gIE5UU1RBVFVTDQo+ICBSZWdpc3RyeVF1ZXJ5RHdvcmRWYWx1ZSgNCj4gICAgICBJ
TiAgSEFORExFICAgICAgICAgICAgICAgICAgICAgIEtleSwNCj4gQEAgLTc4MCw2ICs3OTQsNyBA
QCBmYWlsMToNCj4gICAgICByZXR1cm4gc3RhdHVzOw0KPiAgfQ0KPiANCj4gK19fZHJ2X3JlcXVp
cmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5VXBkYXRlRHdv
cmRWYWx1ZSgNCj4gICAgICBJTiAgSEFORExFICAgICAgICAgICAgICAgICAgICAgIEtleSwNCj4g
QEAgLTgzOCw2ICs4NTMsNyBAQCBmYWlsMToNCj4gICAgICByZXR1cm4gc3RhdHVzOw0KPiAgfQ0K
PiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgc3RhdGljIFBBTlNJ
X1NUUklORw0KPiAgUmVnaXN0cnlTelRvQW5zaSgNCj4gICAgICBJTiAgUFdDSEFSICAgICAgQnVm
ZmVyDQo+IEBAIC04NzcsNiArODkzLDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJuIE5VTEw7DQo+
ICB9DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBzdGF0aWMg
UEFOU0lfU1RSSU5HDQo+ICBSZWdpc3RyeU11bHRpU3pUb0Fuc2koDQo+ICAgICAgSU4gIFBXQ0hB
UiAgICAgIEJ1ZmZlcg0KPiBAQCAtOTM5LDYgKzk1Niw3IEBAIGZhaWwxOg0KPiAgICAgIHJldHVy
biBOVUxMOw0KPiAgfQ0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0K
PiAgTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5UXVlcnlTelZhbHVlKA0KPiAgICAgIElOICBIQU5ETEUg
ICAgICAgICAgICAgICAgICAgICAgS2V5LA0KPiBAQCAtMTAyNiw2ICsxMDQ0LDcgQEAgZmFpbDE6
DQo+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwo
UEFTU0lWRV9MRVZFTCkNCj4gIE5UU1RBVFVTDQo+ICBSZWdpc3RyeVF1ZXJ5QmluYXJ5VmFsdWUo
DQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICAgICAgICAgICAgICBLZXksDQo+IEBAIC0xMTEx
LDYgKzExMzAsNyBAQCBmYWlsMToNCj4gICAgICByZXR1cm4gc3RhdHVzOw0KPiAgfQ0KPiANCj4g
K19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgTlRTVEFUVVMNCj4gIFJlZ2lz
dHJ5VXBkYXRlQmluYXJ5VmFsdWUoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICAgICAgICAg
ICAgICBLZXksDQo+IEBAIC0xMTcwLDYgKzExOTAsNyBAQCBmYWlsMToNCj4gICAgICByZXR1cm4g
c3RhdHVzOw0KPiAgfQ0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0K
PiAgTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5UXVlcnlLZXlOYW1lKA0KPiAgICAgIElOICBIQU5ETEUg
ICAgICAgICAgICAgIEtleSwNCj4gQEAgLTEyMjUsNiArMTI0Niw3IEBAIGZhaWwxOg0KPiAgICAg
IHJldHVybiBzdGF0dXM7DQo+ICB9DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVf
TEVWRUwpDQo+ICBOVFNUQVRVUw0KPiAgUmVnaXN0cnlRdWVyeVN5c3RlbVN0YXJ0T3B0aW9uKA0K
PiAgICAgIElOICBjb25zdCBDSEFSICAgICAgICAgICAgICAgICAgKlByZWZpeCwNCj4gQEAgLTEz
MDMsNiArMTMyNSw3IEBAIGZhaWwxOg0KPiAgICAgIHJldHVybiBzdGF0dXM7DQo+ICB9DQo+IA0K
PiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBzdGF0aWMgUEtFWV9WQUxV
RV9QQVJUSUFMX0lORk9STUFUSU9ODQo+ICBSZWdpc3RyeUFuc2lUb1N6KA0KPiAgICAgIFBBTlNJ
X1NUUklORyAgICAgICAgICAgICAgICAgICAgQW5zaQ0KPiBAQCAtMTM0Miw2ICsxMzY1LDcgQEAg
ZmFpbDE6DQo+ICAgICAgcmV0dXJuIE5VTEw7DQo+ICB9DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJ
UlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBzdGF0aWMgUEtFWV9WQUxVRV9QQVJUSUFMX0lORk9STUFU
SU9ODQo+ICBSZWdpc3RyeUFuc2lUb011bHRpU3ooDQo+ICAgICAgUEFOU0lfU1RSSU5HICAgICAg
ICAgICAgICAgICAgICBBbnNpDQo+IEBAIC0xMzk1LDYgKzE0MTksNyBAQCBmYWlsMToNCj4gICAg
ICByZXR1cm4gTlVMTDsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9M
RVZFTCkNCj4gIE5UU1RBVFVTDQo+ICBSZWdpc3RyeVVwZGF0ZVN6VmFsdWUoDQo+ICAgICAgSU4g
IEhBTkRMRSAgICAgICAgICAgICAgICAgICAgICBLZXksDQo+IEBAIC0xNDg1LDYgKzE1MTAsNyBA
QCBSZWdpc3RyeUZyZWVCaW5hcnlWYWx1ZSgNCj4gICAgICBfX1JlZ2lzdHJ5RnJlZShCdWZmZXIp
Ow0KPiAgfQ0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgVk9J
RA0KPiAgUmVnaXN0cnlDbG9zZUtleSgNCj4gICAgICBJTiAgSEFORExFICBLZXkNCj4gZGlmZiAt
LWdpdCBhL3NyYy94ZW52YmQvcmVnaXN0cnkuaCBiL3NyYy94ZW52YmQvcmVnaXN0cnkuaA0KPiBp
bmRleCBkMzlmMDE2Li45YmY0OTJlIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3JlZ2lzdHJ5
LmgNCj4gKysrIGIvc3JjL3hlbnZiZC9yZWdpc3RyeS5oDQo+IEBAIC00NCw2ICs0NCw3IEBAIFJl
Z2lzdHJ5VGVhcmRvd24oDQo+ICAgICAgVk9JRA0KPiAgICAgICk7DQo+IA0KPiArX19kcnZfcmVx
dWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5
T3BlbktleSgNCj4gICAgICBJTiAgSEFORExFICAgICAgICAgIFBhcmVudCwNCj4gQEAgLTUyLDYg
KzUzLDcgQEAgUmVnaXN0cnlPcGVuS2V5KA0KPiAgICAgIE9VVCBQSEFORExFICAgICAgICAgS2V5
DQo+ICAgICAgKTsNCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4g
IGV4dGVybiBOVFNUQVRVUw0KPiAgUmVnaXN0cnlDcmVhdGVLZXkoDQo+ICAgICAgSU4gIEhBTkRM
RSAgICAgICAgICBQYXJlbnQsDQo+IEBAIC02MCwxNyArNjIsMjAgQEAgUmVnaXN0cnlDcmVhdGVL
ZXkoDQo+ICAgICAgT1VUIFBIQU5ETEUgICAgICAgICBLZXkNCj4gICAgICApOw0KPiANCj4gK19f
ZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ICBS
ZWdpc3RyeU9wZW5TZXJ2aWNlS2V5KA0KPiAgICAgIElOICBBQ0NFU1NfTUFTSyBEZXNpcmVkQWNj
ZXNzLA0KPiAgICAgIE9VVCBQSEFORExFICAgICBLZXkNCj4gICAgICApOw0KPiANCj4gK19fZHJ2
X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ICBSZWdp
c3RyeUNyZWF0ZVNlcnZpY2VLZXkoDQo+ICAgICAgT1VUIFBIQU5ETEUgICAgIEtleQ0KPiAgICAg
ICk7DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4g
TlRTVEFUVVMNCj4gIFJlZ2lzdHJ5T3BlblNvZnR3YXJlS2V5KA0KPiAgICAgIElOICBQREVWSUNF
X09CSkVDVCAgRGV2aWNlT2JqZWN0LA0KPiBAQCAtNzgsNiArODMsNyBAQCBSZWdpc3RyeU9wZW5T
b2Z0d2FyZUtleSgNCj4gICAgICBPVVQgUEhBTkRMRSAgICAgICAgIEtleQ0KPiAgICAgICk7DQo+
IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFU
VVMNCj4gIFJlZ2lzdHJ5T3BlbkhhcmR3YXJlS2V5KA0KPiAgICAgIElOICBQREVWSUNFX09CSkVD
VCAgRGV2aWNlT2JqZWN0LA0KPiBAQCAtODUsNiArOTEsNyBAQCBSZWdpc3RyeU9wZW5IYXJkd2Fy
ZUtleSgNCj4gICAgICBPVVQgUEhBTkRMRSAgICAgICAgIEtleQ0KPiAgICAgICk7DQo+IA0KPiAr
X19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4g
IFJlZ2lzdHJ5T3BlblN1YktleSgNCj4gICAgICBJTiAgSEFORExFICAgICAgS2V5LA0KPiBAQCAt
OTMsNiArMTAwLDcgQEAgUmVnaXN0cnlPcGVuU3ViS2V5KA0KPiAgICAgIE9VVCBQSEFORExFICAg
ICBTdWJLZXkNCj4gICAgICApOw0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xF
VkVMKQ0KPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ICBSZWdpc3RyeUNyZWF0ZVN1YktleSgNCj4gICAg
ICBJTiAgSEFORExFICAgICAgS2V5LA0KPiBAQCAtMTAxLDEyICsxMDksMTQgQEAgUmVnaXN0cnlD
cmVhdGVTdWJLZXkoDQo+ICAgICAgT1VUIFBIQU5ETEUgICAgIFN1YktleQ0KPiAgICAgICk7DQo+
IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFU
VVMNCj4gIFJlZ2lzdHJ5RGVsZXRlU3ViS2V5KA0KPiAgICAgIElOICBIQU5ETEUgICAgICBLZXks
DQo+ICAgICAgSU4gIFBDSEFSICAgICAgIE5hbWUNCj4gICAgICApOw0KPiANCj4gK19fZHJ2X3Jl
cXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ICBSZWdpc3Ry
eUVudW1lcmF0ZVN1YktleXMoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgIEtleSwNCj4gQEAgLTEx
NCw2ICsxMjQsNyBAQCBSZWdpc3RyeUVudW1lcmF0ZVN1YktleXMoDQo+ICAgICAgSU4gIFBWT0lE
ICAgICAgIENvbnRleHQNCj4gICAgICApOw0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNT
SVZFX0xFVkVMKQ0KPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ICBSZWdpc3RyeUVudW1lcmF0ZVZhbHVl
cygNCj4gICAgICBJTiAgSEFORExFICAgICAgS2V5LA0KPiBAQCAtMTIxLDI2ICsxMzIsMzAgQEAg
UmVnaXN0cnlFbnVtZXJhdGVWYWx1ZXMoDQo+ICAgICAgSU4gIFBWT0lEICAgICAgIENvbnRleHQN
Cj4gICAgICApOw0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAg
ZXh0ZXJuIE5UU1RBVFVTDQo+ICBSZWdpc3RyeURlbGV0ZVZhbHVlKA0KPiAgICAgIElOICBIQU5E
TEUgICAgICBLZXksDQo+ICAgICAgSU4gIFBDSEFSICAgICAgIE5hbWUNCj4gICAgICApOw0KPiAN
Cj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgZXh0ZXJuIE5UU1RBVFVT
DQo+ICBSZWdpc3RyeVF1ZXJ5RHdvcmRWYWx1ZSgNCj4gICAgICBJTiAgSEFORExFICAgICAgICAg
IEtleSwNCj4gICAgICBJTiAgUENIQVIgICAgICAgICAgIE5hbWUsDQo+ICAgICAgT1VUIFBVTE9O
RyAgICAgICAgICBWYWx1ZQ0KPiAgICAgICk7DQo+IC0NCj4gKw0KPiArX19kcnZfcmVxdWlyZXNJ
UlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5VXBkYXRl
RHdvcmRWYWx1ZSgNCj4gICAgICBJTiAgSEFORExFICAgICAgICAgIEtleSwNCj4gICAgICBJTiAg
UENIQVIgICAgICAgICAgIE5hbWUsDQo+ICAgICAgSU4gIFVMT05HICAgICAgICAgICBWYWx1ZQ0K
PiAgICAgICk7DQo+IC0NCj4gKw0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwp
DQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5UXVlcnlTelZhbHVlKA0KPiAgICAgIElO
ICBIQU5ETEUgICAgICAgICAgS2V5LA0KPiBAQCAtMTQ5LDYgKzE2NCw3IEBAIFJlZ2lzdHJ5UXVl
cnlTelZhbHVlKA0KPiAgICAgIE9VVCBQQU5TSV9TVFJJTkcgICAgKkFycmF5DQo+ICAgICAgKTsN
Cj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIGV4dGVybiBOVFNU
QVRVUw0KPiAgUmVnaXN0cnlRdWVyeUJpbmFyeVZhbHVlKA0KPiAgICAgIElOICBIQU5ETEUgICAg
ICAgICAgS2V5LA0KPiBAQCAtMTU3LDYgKzE3Myw3IEBAIFJlZ2lzdHJ5UXVlcnlCaW5hcnlWYWx1
ZSgNCj4gICAgICBPVVQgUFVMT05HICAgICAgICAgIExlbmd0aA0KPiAgICAgICk7DQo+IA0KPiAr
X19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4g
IFJlZ2lzdHJ5VXBkYXRlQmluYXJ5VmFsdWUoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICBL
ZXksDQo+IEBAIC0xNjUsMTIgKzE4MiwxNCBAQCBSZWdpc3RyeVVwZGF0ZUJpbmFyeVZhbHVlKA0K
PiAgICAgIElOICBVTE9ORyAgICAgICAgICAgTGVuZ3RoDQo+ICAgICAgKTsNCj4gDQo+ICtfX2Ry
dl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIGV4dGVybiBOVFNUQVRVUw0KPiAgUmVn
aXN0cnlRdWVyeUtleU5hbWUoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICAgICAgS2V5LA0K
PiAgICAgIE9VVCBQQU5TSV9TVFJJTkcgICAgICAgICpBcnJheQ0KPiAgICAgICk7DQo+IA0KPiAr
X19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4g
IFJlZ2lzdHJ5UXVlcnlTeXN0ZW1TdGFydE9wdGlvbigNCj4gICAgICBJTiAgY29uc3QgQ0hBUiAg
ICAgICpQcmVmaXgsDQo+IEBAIC0xODcsNiArMjA2LDcgQEAgUmVnaXN0cnlGcmVlQmluYXJ5VmFs
dWUoDQo+ICAgICAgSU4gIFBWT0lEICAgICAgICAgICBCdWZmZXINCj4gICAgICApOw0KPiANCj4g
K19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgZXh0ZXJuIE5UU1RBVFVTDQo+
ICBSZWdpc3RyeVVwZGF0ZVN6VmFsdWUoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICBLZXks
DQo+IEBAIC0xOTUsNiArMjE1LDcgQEAgUmVnaXN0cnlVcGRhdGVTelZhbHVlKA0KPiAgICAgIElO
ICBQQU5TSV9TVFJJTkcgICAgQXJyYXkNCj4gICAgICApOw0KPiANCj4gK19fZHJ2X3JlcXVpcmVz
SVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgZXh0ZXJuIFZPSUQNCj4gIFJlZ2lzdHJ5Q2xvc2VLZXko
DQo+ICAgICAgSU4gIEhBTkRMRSAgS2V5DQo+IC0tDQo+IDIuMTAuMS53aW5kb3dzLjENCj4gDQo+
IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiB3
aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+IHdpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0
Lm9yZw0KPiBodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0
aW5mby93aW4tcHYtZGV2ZWwNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhl
bnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFu
L2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Tue Jun 27 15:08:51 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jun 2017 15:08:51 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPs6l-0007kk-Oj; Tue, 27 Jun 2017 15:08:51 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=344d6c85a=mackayem@amazon.com>)
 id 1dPs6k-0007jj-CY
 for win-pv-devel@lists.xenproject.org; Tue, 27 Jun 2017 15:08:50 +0000
Received: from [85.158.143.35] by server-2.bemta-6.messagelabs.com id
 C9/8F-03032-10572595; Tue, 27 Jun 2017 15:08:49 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrJKsWRWlGSWpSXmKPExsXiIXpEUpehNCj
 S4OA8C4s/ixMdGD0Of7jCEsAYxZqZl5RfkcCa0TZ5K2PBpg1MFcsP+zQw7ljD1MXIxcEi8JRZ
 YurtDsYuRk4OCQF/ibdHVoMlhATuMkq0H57CCOHMZ5JoP36UBcLZxyjRsX4lG5yz+89tZghnH
 aPE2afTWUGGsQloSaw5d4QNxBYRqJboPLITrF1YYCajxJ6ph9hBHBGBWYwSX9bNhKoykljR/Q
 /MZhFQlWicsgzM5hXwljj6fjI7iC0kUC9x/sMboKs4ODgFPCTObXIFCTMKiEl8PwXyEicHs4C
 4xK0n85kgPhKQWLLnPDOELSrx8vE/VgjbQGLr0n0sELaCROOJqewgI5kFNCXW79KHGKMoMaX7
 ITvEBYISJ2c+ASsXABq54dUD9gmMUrOQbJuF0D0LSfcsJN0LGFlWMaoXpxaVpRbpGuolFWWmZ
 5TkJmbm6BoamOnlphYXJ6an5iQmFesl5+duYgRGKwMQ7GDc+dzpEKMkB5OSKO9qiaBIIb6k/J
 TKjMTijPii0pzU4kOMMhwcShK8q4qBcoJFqempFWmZOcC0AZOW4OBREuG9VgCU5i0uSMwtzky
 HSJ1i1OXYsHr9FyYhlrz8vFQpcV6zEqAiAZCijNI8uBGwFHaJUVZKmJcR6CghnoLUotzMElT5
 V4ziHIxKwrwLQS7hycwrgdv0CugIJqAjWOYFgBxRkoiQkmpg1CpjuRbEfsHm/ZHQSA2Pff+uX
 IoTCFk6ZX85U1/U/Fc9cw5bG97WExKxfC+1LMFP7TK/1kTXq8vDFMq4Ex4dM55ZXOry/+65WS
 mttqq31ddaq1pd+nHi1I+nIXPT66a76L26Kt7V9P35pbWLCwQ3PO1aWJ5UqmKzKs3zfm9Q7d8
 LHfcarXZ/UmIpzkg01GIuKk4EADXl4wBcAwAA
X-Env-Sender: prvs=344d6c85a=mackayem@amazon.com
X-Msg-Ref: server-13.tower-21.messagelabs.com!1498576127!70020860!1
X-Originating-IP: [72.21.196.25]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNzIuMjEuMTk2LjI1ID0+IDE4NjQwNA==\n
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 6237 invoked from network); 27 Jun 2017 15:08:48 -0000
Received: from smtp-fw-2101.amazon.com (HELO smtp-fw-2101.amazon.com)
 (72.21.196.25)
 by server-13.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 27 Jun 2017 15:08:48 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209;
 t=1498576128; x=1530112128;
 h=from:to:subject:date:message-id:references:in-reply-to:
 content-transfer-encoding:mime-version;
 bh=Ku6qh2zF9IMutxC5Cg4DUc4DaSMp+CDFNt4ZzeudY0A=;
 b=Zps4iX+rRLQSJKBtCEYGdcMw5ziBTZyxDJyV9KHFDoOhCSPYbBFwmJgi
 KFbBupfI86TLwFtaqIDY949E+d8oDAQn/rM8lQg7RA5eSb7jslWA56CGK
 R5XwhpysTorpL1Mnyvt5dDPfFJtZPa9h8fbvgZakHkjmjv+fZNWeK+TUm k=;
X-IronPort-AV: E=Sophos;i="5.39,401,1493683200"; d="scan'208";a="655205123"
Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO
 email-inbound-relay-62008.pdx2.amazon.com) ([10.43.8.2])
 by smtp-border-fw-out-2101.iad2.amazon.com with ESMTP/TLS/DHE-RSA-AES256-SHA;
 27 Jun 2017 15:08:39 +0000
Received: from EX13MTAUWC001.ant.amazon.com
 (pdx1-ws-svc-p6-lb9-vlan2.pdx.amazon.com [10.236.137.194])
 by email-inbound-relay-62008.pdx2.amazon.com (8.14.7/8.14.7) with ESMTP id
 v5RF8b6X013854
 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL);
 Tue, 27 Jun 2017 15:08:38 GMT
Received: from EX13D12UWC002.ant.amazon.com (10.43.162.253) by
 EX13MTAUWC001.ant.amazon.com (10.43.162.135) with Microsoft SMTP Server (TLS)
 id 15.0.1104.5; Tue, 27 Jun 2017 15:08:38 +0000
Received: from EX13D12UWC004.ant.amazon.com (10.43.162.182) by
 EX13D12UWC002.ant.amazon.com (10.43.162.253) with Microsoft SMTP Server (TLS)
 id 15.0.1104.5; Tue, 27 Jun 2017 15:08:37 +0000
Received: from EX13D12UWC004.ant.amazon.com ([10.43.162.182]) by
 EX13D12UWC004.ant.amazon.com ([10.43.162.182]) with mapi id 15.00.1104.000;
 Tue, 27 Jun 2017 15:08:37 +0000
From: "Mackay, Eric" <mackayem@amazon.com>
To: Paul Durrant <Paul.Durrant@citrix.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] Added a function called from DriverEntry
 where we can safely read registry keys and convert strings
 at	PASSIVE_LEVEL
Thread-Index: AQHS71WDfCx84FxPU0yQC2tshnKkkaI4zniA
Date: Tue, 27 Jun 2017 15:08:37 +0000
Message-ID: <5d82c842e85b401b8c79f224728600a9@EX13D12UWC004.ant.amazon.com>
References: <1498506346-2019-1-git-send-email-mackayem@amazon.com>
 <e053407c3ff3442ea210f08aedaa8aea@AMSPEX02CL03.citrite.net>
In-Reply-To: <e053407c3ff3442ea210f08aedaa8aea@AMSPEX02CL03.citrite.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.43.162.26]
MIME-Version: 1.0
Precedence: Bulk
Subject: Re: [win-pv-devel] [PATCH] Added a function called from
	DriverEntry	where we can safely read registry keys and
	convert strings at	PASSIVE_LEVEL
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

SSBiZWxpZXZlIHRoZSBwYXRjaCBzaG91bGQgd29yayBhcy1pcyBvbiB0b3Agb2YgdGhlIDguMi4w
IHJlbGVhc2UgKEkgYmFzZWQgaXQgb24gdGhlIDguMi4wIHRhZykuIEkgdHJpZWQgZGlyZWN0bHkg
bWFraW5nIGEgdmVyc2lvbiBvZiB0aGUgcGF0Y2ggb24gdG9wIG9mIHRoZSBtb3N0IHJlY2VudCBj
b21taXRzIGZyb20gT3dlbiwgYnV0IEkgcmFuIGFjcm9zcyB0aGUgYnVnIEkgbWVudGlvbmVkIGlu
IGFub3RoZXIgcG9zdCB0byB0aGUgbWFpbGluZyBsaXN0LCBzdWJqZWN0IGxpbmUgIiBYZW5WQkQg
YnVnIC0gSVJRTCBtaXNtYXRjaCBiZXR3ZWVuIEFkYXB0ZXJId0ZpbmRBZGFwdGVyIGFuZCBBZGFw
dGVySW5pdGlhbGl6ZSIuDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBQYXVs
IER1cnJhbnQgW21haWx0bzpQYXVsLkR1cnJhbnRAY2l0cml4LmNvbV0gDQpTZW50OiBUdWVzZGF5
LCBKdW5lIDI3LCAyMDE3IDc6NTUgQU0NClRvOiBNYWNrYXksIEVyaWMgPG1hY2theWVtQGFtYXpv
bi5jb20+OyB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNClN1YmplY3Q6IFJFOiBb
d2luLXB2LWRldmVsXSBbUEFUQ0hdIEFkZGVkIGEgZnVuY3Rpb24gY2FsbGVkIGZyb20gRHJpdmVy
RW50cnkgd2hlcmUgd2UgY2FuIHNhZmVseSByZWFkIHJlZ2lzdHJ5IGtleXMgYW5kIGNvbnZlcnQg
c3RyaW5ncyBhdCBQQVNTSVZFX0xFVkVMDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N
Cj4gRnJvbTogd2luLXB2LWRldmVsIFttYWlsdG86d2luLXB2LWRldmVsLWJvdW5jZXNAbGlzdHMu
eGVucHJvamVjdC5vcmddIA0KPiBPbiBCZWhhbGYgT2YgRXJpYyBNYWNrYXkNCj4gU2VudDogMjYg
SnVuZSAyMDE3IDIwOjQ2DQo+IFRvOiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcN
Cj4gQ2M6IEVyaWMgTWFja2F5IDxtYWNrYXllbUBhbWF6b24uY29tPg0KPiBTdWJqZWN0OiBbd2lu
LXB2LWRldmVsXSBbUEFUQ0hdIEFkZGVkIGEgZnVuY3Rpb24gY2FsbGVkIGZyb20gDQo+IERyaXZl
ckVudHJ5IHdoZXJlIHdlIGNhbiBzYWZlbHkgcmVhZCByZWdpc3RyeSBrZXlzIGFuZCBjb252ZXJ0
IHN0cmluZ3MgDQo+IGF0IFBBU1NJVkVfTEVWRUwNCj4gDQo+IFRoZSBNU0ROIGRvY3VtZW50YXRp
b24gZm9yIHZhcmlvdXMgcmVnaXN0cnkga2V5IGFjY2VzcyBhbmQgc3RyaW5nIA0KPiBjb252ZXJz
aW9uIGZ1bmN0aW9ucyByZXF1aXJlcyB0aGUgY2FsbGVyIHRvIGJlIGF0IElSUUwgPSANCj4gUEFT
U0lWRV9MRVZFTC4gT25lIG9mIHRoZSByZWFzb25zIGZvciB0aGlzIGlzIHRoYXQgdGhlIHN0cmlu
ZyANCj4gY29udmVyc2lvbiB0YWJsZXMgdXNlZCBieSBmdW5jdGlvbnMgc3VjaCBhcyANCj4gUnRs
QW5zaVN0cmluZ1RvVW5pY29kZVN0cmluZyBhcmUgc3RvcmVkIGluIHBhZ2VkIHBvb2wgbWVtb3J5
LiBCb3RoIHRoZSANCj4gcGFnZSBmYXVsdCBoYW5kbGVyIGFuZCB0aGUgcHJvY2VzcyBzY2hlZHVs
ZXIgcnVuIGF0IElSUUwgPSANCj4gRElTUEFUQ0hfTEVWRUwsIHRoZXJlZm9yZSB5b3UgbXVzdCBu
b3QgdG91Y2ggbWVtb3J5IGF0IERJU1BBVENIX0xFVkVMIA0KPiB0aGF0IGNvdWxkIGJlIHBhZ2Vk
IG91dC4gQSBwcm9jZXNzIHJ1bm5pbmcgYXQgRElTUEFUQ0hfTEVWRUwgY2Fubm90IGJlIA0KPiBw
cmVlbXB0ZWQgZm9yIHRoZSBwYWdlIGZhdWx0IGhhbmRsZXIgdG8gcnVuLg0KPiANCj4gVG8gYWlk
IFN0YXRpYyBEcml2ZXIgVmVyaWZpZXIgY29kZSBhbmFseXNpcyBhbmQgaW5mb3JtIGRldmVsb3Bl
cnMsIEkgDQo+IGhhdmUgYWRkZWQgU0FMIGFubm90YXRpb25zIHRoYXQgaW5kaWNhdGUgSVJRTCA9
IFBBU1NJVkVfTEVWRUwgaXMgDQo+IHJlcXVpcmVkIG9uIGNlcnRhaW4gcmVnaXN0cnkgYWNjZXNz
IGZ1bmN0aW9ucy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEVyaWMgTWFja2F5IDxtYWNrYXllbUBh
bWF6b24uY29tPg0KDQpHZW5lcmFsbHkgdGhpcyBsb29rcyBvayBzbw0KDQpBY2tlZC1ieTogUGF1
bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4NCg0KSG93ZXZlciBpdCBuZWVkcyBy
ZS1iYXNpbmcgbm93IHRoYXQgT3dlbidzIHJlY2VudCBwYXRjaGVzIGhhdmUgZ29uZSBpbi4gSSds
bCBkbyB0aGF0LCBhbmQgSSdsbCBwcm9iYWJseSBzcGxpdCBvdXQgdGhlIGFkZGl0aW9uIG9mIHRo
ZSBhbm5vdGF0aW9ucyBpbnRvIGEgc2VwYXJhdGUgcGF0Y2guDQoNCiAgUGF1bA0KDQo+IC0tLQ0K
PiAgc3JjL3hlbnZiZC9kcml2ZXIuYyAgIHwgIDg2ICsrKysrKysrKysrKysrKysrKysrKysrKysN
Cj4gIHNyYy94ZW52YmQvZHJpdmVyLmggICB8ICA0NSArKysrKysrKysrKysrKw0KPiAgc3JjL3hl
bnZiZC9mcm9udGVuZC5jIHwgMTY5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst
LS0NCj4gLS0tLS0tLS0tLS0tLQ0KPiAgc3JjL3hlbnZiZC9yZWdpc3RyeS5jIHwgIDI2ICsrKysr
KysrDQo+ICBzcmMveGVudmJkL3JlZ2lzdHJ5LmggfCAgMjUgKysrKysrKy0NCj4gIDUgZmlsZXMg
Y2hhbmdlZCwgMjk2IGluc2VydGlvbnMoKyksIDU1IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAt
LWdpdCBhL3NyYy94ZW52YmQvZHJpdmVyLmMgYi9zcmMveGVudmJkL2RyaXZlci5jIGluZGV4IA0K
PiBiYjE5NTRmLi4wYzkyNzViIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2RyaXZlci5jDQo+
ICsrKyBiL3NyYy94ZW52YmQvZHJpdmVyLmMNCj4gQEAgLTU4LDYgKzU4LDggQEAgWEVOVkJEX1BB
UkFNRVRFUlMgICBEcml2ZXJQYXJhbWV0ZXJzOw0KPiANCj4gICNkZWZpbmUgWEVOVkJEX1BPT0xf
VEFHICAgICAnZGJ2WCcNCj4gDQo+ICtYRU5WQkRfUkVHSVNUUllfT1ZFUlJJREUNCj4gRHJpdmVy
RmVhdHVyZU92ZXJyaWRlc1tOdW1iZXJPZkZlYXR1cmVzXSA9IHsgMCB9Ow0KPiArDQo+ICBzdGF0
aWMgREVDTFNQRUNfTk9JTkxJTkUgVk9JRA0KPiAgX19Ecml2ZXJQYXJzZU9wdGlvbigNCj4gICAg
ICBJTiAgY29uc3QgQ0hBUiAgKktleSwNCj4gQEAgLTMwMSw2ICszMDMsODggQEAgRHJpdmVyRm9y
bWF0RnJlZSgNCj4gICAgICAgICAgX19GcmVlUG9vbFdpdGhUYWcoQnVmZmVyLCBYRU5WQkRfUE9P
TF9UQUcpOyAgfQ0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAr
Vk9JRA0KPiArRHJpdmVySW5pdGlhbGl6ZU92ZXJyaWRlcygNCj4gKyAgICApDQo+ICt7DQo+ICsg
ICAgVUxPTkcgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlOw0KPiArICAgIE5UU1RBVFVTICAg
ICAgICAgICAgICAgICAgICBTdGF0dXM7DQo+ICsgICAgUENIQVIgICAgICAgICAgICAgICAgICAg
ICAgIEZlYXR1cmVOYW1lOw0KPiArICAgIFhFTlZCRF9GRUFUVVJFICAgICAgICAgICAgICBGZWF0
dXJlOw0KPiArDQo+ICsgICAgc3RydWN0IElOSVRfT1ZFUlJJREVTIHsNCj4gKyAgICAgICAgUENI
QVIgTmFtZTsNCj4gKyAgICAgICAgWEVOVkJEX0ZFQVRVUkUgRmVhdHVyZTsNCj4gKyAgICB9ICBJ
bml0W10gPSB7DQo+ICsgICAgICAgIHsgInJlbW92YWJsZSIgLCBGZWF0dXJlUmVtb3ZhYmxlIH0s
DQo+ICsgICAgICAgIHsgImZlYXR1cmUtcGVyc2lzdGVudCIsIEZlYXR1cmVQZXJzaXN0ZW50IH0s
DQo+ICsgICAgICAgIHsgImZlYXR1cmUtbWF4LWluZGlyZWN0LXNlZ21lbnRzIiwgRmVhdHVyZU1h
eEluZGlyZWN0U2VnbWVudHMgfSwNCj4gKyAgICAgICAgeyAiZmVhdHVyZS1iYXJyaWVyIiwgRmVh
dHVyZUJhcnJpZXIgfSwNCj4gKyAgICAgICAgeyAiZmVhdHVyZS1mbHVzaC1jYWNoZSIsIEZlYXR1
cmVGbHVzaENhY2hlIH0sDQo+ICsgICAgICAgIHsgImZlYXR1cmUtZGlzY2FyZCIsIEZlYXR1cmVE
aXNjYXJkIH0sDQo+ICsgICAgICAgIHsgImRpc2NhcmQtZW5hYmxlIiwgRmVhdHVyZURpc2NhcmRF
bmFibGUgfSwNCj4gKyAgICAgICAgeyAiZGlzY2FyZC1zZWN1cmUiLCBGZWF0dXJlRGlzY2FyZFNl
Y3VyZSB9LA0KPiArICAgICAgICB7ICJkaXNjYXJkLWFsaWdubWVudCIsIEZlYXR1cmVEaXNjYXJk
QWxpZ25tZW50IH0sDQo+ICsgICAgICAgIHsgImRpc2NhcmQtZ3JhbnVsYXJpdHkiLCBGZWF0dXJl
RGlzY2FyZEdyYW51bGFyaXR5IH0NCj4gKyAgICB9Ow0KPiArDQo+ICsgICAgZm9yIChVTE9ORyBJ
bmRleCA9IDA7IEluZGV4IDwgQVJSQVlTSVpFKEluaXQpOyBJbmRleCsrKSB7DQo+ICsgICAgICAg
IEZlYXR1cmUgPSBJbml0W0luZGV4XS5GZWF0dXJlOw0KPiArICAgICAgICBGZWF0dXJlTmFtZSA9
IEluaXRbSW5kZXhdLk5hbWU7DQo+ICsgICAgICAgIERyaXZlckZlYXR1cmVPdmVycmlkZXNbKFVM
T05HKUZlYXR1cmVdLk5hbWUgPSBGZWF0dXJlTmFtZTsNCj4gKyAgICAgICAgRHJpdmVyRmVhdHVy
ZU92ZXJyaWRlc1soVUxPTkcpRmVhdHVyZV0uVmFsdWUgPSAwOw0KPiArICAgICAgICBEcml2ZXJG
ZWF0dXJlT3ZlcnJpZGVzWyhVTE9ORylGZWF0dXJlXS5Gb3VuZCA9IEZBTFNFOw0KPiArDQo+ICsg
ICAgICAgIFN0YXR1cyA9IFJlZ2lzdHJ5UXVlcnlEd29yZFZhbHVlKERyaXZlckdldFBhcmFtZXRl
cnNLZXkoKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVh
dHVyZU5hbWUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZW
YWx1ZSk7DQo+ICsNCj4gKyAgICAgICAgaWYgKE5UX1NVQ0NFU1MoU3RhdHVzKSkgew0KPiArICAg
ICAgICAgICAgRHJpdmVyRmVhdHVyZU92ZXJyaWRlc1soVUxPTkcpRmVhdHVyZV0uRm91bmQgPSBU
UlVFOw0KPiArICAgICAgICAgICAgRHJpdmVyRmVhdHVyZU92ZXJyaWRlc1soVUxPTkcpRmVhdHVy
ZV0uVmFsdWUgPSBWYWx1ZTsNCj4gKyAgICAgICAgfQ0KPiArICAgIH0NCj4gK30NCj4gKw0KPiAr
Ly8gUmV0dXJuIHZhbHVlIGluZGljYXRlcyB3aGV0aGVyIHJlZyBrZXkgd2FzIGZvdW5kIGFuZCBz
dG9yZWQgaW4NCj4gRHJpdmVyRmVhdHVyZU92ZXJyaWRlcw0KPiArLy8gV2lsbCBzZXQgVmFsdWUg
dG8gdGhlIGNvcnJlc3BvbmRpbmcgcmVnIHZhbHVlIGlmIGZvdW5kLCBvdGhlcndpc2UgDQo+ICtp
dCB3aWxsDQo+IGxlYXZlIFZhbHVlIHVudG91Y2hlZA0KPiArX19jaGVja1JldHVybg0KPiArX1N1
Y2Nlc3NfKHJldHVybikNCj4gK0JPT0xFQU4NCj4gK0RyaXZlckdldFJlZ092ZXJyaWRlKA0KPiAr
ICAgIF9faW4gWEVOVkJEX0ZFQVRVUkUgICAgICAgICAgICAgIEZlYXR1cmUsDQo+ICsgICAgX19v
dXQgUFVMT05HICAgICAgICAgICAgICAgICAgICAgVmFsdWUNCj4gKyAgICApDQo+ICt7DQo+ICsg
ICAgQk9PTEVBTiBGb3VuZCA9IEZBTFNFOw0KPiArDQo+ICsgICAgaWYgKChVTE9ORylGZWF0dXJl
IDwgKFVMT05HKU51bWJlck9mRmVhdHVyZXMpIHsNCj4gKyAgICAgICAgRm91bmQgPSBEcml2ZXJG
ZWF0dXJlT3ZlcnJpZGVzWyhVTE9ORylGZWF0dXJlXS5Gb3VuZDsNCj4gKyAgICAgICAgKlZhbHVl
ID0gRHJpdmVyRmVhdHVyZU92ZXJyaWRlc1soVUxPTkcpRmVhdHVyZV0uVmFsdWU7DQo+ICsgICAg
fQ0KPiArDQo+ICsgICAgcmV0dXJuIEZvdW5kOw0KPiArfQ0KPiArDQo+ICsvLyBSZXR1cm4gdmFs
dWUgaW5kaWNhdGVzIHdoZXRoZXIgYSBmZWF0dXJlIGVudW0gdG8gc3RyaW5nIG1hcHBpbmcgDQo+
ICt3YXMNCj4gZm91bmQNCj4gKy8vIEZlYXR1cmVTdHJpbmcgd2lsbCBiZSBzZXQgdG8gcG9pbnQg
dG8gdGhlIHN0cmluZyBpZiBhIG1hcHBpbmcgaXMgDQo+ICtmb3VuZCwNCj4gb3RoZXJ3aXNlDQo+
ICsvLyBpcyBub3QgbW9kaWZpZWQNCj4gK19fY2hlY2tSZXR1cm4NCj4gK1BDSEFSDQo+ICtEcml2
ZXJHZXRGZWF0dXJlTmFtZSgNCj4gKyAgICBfX2luIFhFTlZCRF9GRUFUVVJFICAgICAgICAgICAg
ICBGZWF0dXJlDQo+ICsgICAgKQ0KPiArew0KPiArICAgIFBDSEFSIE5hbWUgPSBOVUxMOw0KPiAr
DQo+ICsgICAgaWYgKChVTE9ORylGZWF0dXJlIDwgKFVMT05HKU51bWJlck9mRmVhdHVyZXMpIHsN
Cj4gKyAgICAgICAgTmFtZSA9IERyaXZlckZlYXR1cmVPdmVycmlkZXNbKFVMT05HKUZlYXR1cmVd
Lk5hbWU7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgcmV0dXJuIE5hbWU7DQo+ICt9DQo+ICsNCj4g
IEhXX0lOSVRJQUxJWkUgICAgICAgSHdJbml0aWFsaXplOw0KPiANCj4gIEJPT0xFQU4NCj4gQEAg
LTU0OSw2ICs2MzMsOCBAQCBEcml2ZXJFbnRyeSgNCj4gDQo+ICAgICAgUnRsWmVyb01lbW9yeSgm
SW5pdERhdGEsIHNpemVvZihJbml0RGF0YSkpOw0KPiANCj4gKyAgICBEcml2ZXJJbml0aWFsaXpl
T3ZlcnJpZGVzKCk7DQo+ICsNCj4gICAgICBJbml0RGF0YS5Id0luaXRpYWxpemF0aW9uRGF0YVNp
emUgICA9ICAgc2l6ZW9mKEluaXREYXRhKTsNCj4gICAgICBJbml0RGF0YS5BZGFwdGVySW50ZXJm
YWNlVHlwZSAgICAgICA9ICAgSW50ZXJuYWw7DQo+ICAgICAgSW5pdERhdGEuSHdJbml0aWFsaXpl
ICAgICAgICAgICAgICAgPSAgIEh3SW5pdGlhbGl6ZTsNCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52
YmQvZHJpdmVyLmggYi9zcmMveGVudmJkL2RyaXZlci5oIGluZGV4IA0KPiBlNzczMGE5Li45YmYw
MDM0IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2RyaXZlci5oDQo+ICsrKyBiL3NyYy94ZW52
YmQvZHJpdmVyLmgNCj4gQEAgLTUwLDYgKzUwLDUxIEBADQo+IA0KPiAgI2RlZmluZSBYRU5WQkRf
TUlOX0dSQU5UX1JFRlMNCj4gKFhFTlZCRF9NQVhfU0VHTUVOVFNfUEVSX1NSQikNCj4gDQo+ICsv
LyBSZWdpc3RyeSBvdmVycmlkZXMgZm9yIGRyaXZlciBmZWF0dXJlcyB0eXBlZGVmIGVudW0gDQo+
ICtfWEVOVkJEX0ZFQVRVUkUgew0KPiArICAgIEZlYXR1cmVSZW1vdmFibGUgPSAwLA0KPiArICAg
IEZlYXR1cmVQZXJzaXN0ZW50LA0KPiArICAgIEZlYXR1cmVNYXhJbmRpcmVjdFNlZ21lbnRzLA0K
PiArICAgIEZlYXR1cmVCYXJyaWVyLA0KPiArICAgIEZlYXR1cmVGbHVzaENhY2hlLA0KPiArICAg
IEZlYXR1cmVEaXNjYXJkLA0KPiArICAgIEZlYXR1cmVEaXNjYXJkRW5hYmxlLA0KPiArICAgIEZl
YXR1cmVEaXNjYXJkU2VjdXJlLA0KPiArICAgIEZlYXR1cmVEaXNjYXJkQWxpZ25tZW50LA0KPiAr
ICAgIEZlYXR1cmVEaXNjYXJkR3JhbnVsYXJpdHksDQo+ICsNCj4gKyAgICAvLyBBZGQgYW55IG5l
dyBmZWF0dXJlcyBiZWZvcmUgdGhpcyBlbnVtDQo+ICsgICAgTnVtYmVyT2ZGZWF0dXJlcw0KPiAr
fSBYRU5WQkRfRkVBVFVSRSwgKlBYRU5WQkRfRkVBVFVSRTsNCj4gKw0KPiArLy8gRmVhdHVyZSBP
dmVycmlkZXMgRnJvbSBSZWdpc3RyeSBWYWx1ZXMgdHlwZWRlZiBzdHJ1Y3QgDQo+ICtfWEVOVkJE
X1JFR0lTVFJZX09WRVJSSURFIHsNCj4gKyAgICBQQ0hBUiAgICAgICAgICAgICAgICAgICAgICAg
TmFtZTsNCj4gKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICAgICAgVmFsdWU7DQo+ICsgICAg
Qk9PTEVBTiAgICAgICAgICAgICAgICAgICAgIEZvdW5kOw0KPiArfSBYRU5WQkRfUkVHSVNUUllf
T1ZFUlJJREUsICpQWEVOVkJEX1JFR0lTVFJZX09WRVJSSURFOw0KPiArDQo+ICtleHRlcm4gWEVO
VkJEX1JFR0lTVFJZX09WRVJSSURFDQo+IERyaXZlckZlYXR1cmVPdmVycmlkZXNbTnVtYmVyT2ZG
ZWF0dXJlc107DQo+ICsNCj4gKy8vIFJldHVybiB2YWx1ZSBpbmRpY2F0ZXMgd2hldGhlciByZWcg
a2V5IHdhcyBmb3VuZCBhbmQgc3RvcmVkIGluDQo+IERyaXZlckZlYXR1cmVPdmVycmlkZXMNCj4g
Ky8vIFdpbGwgc2V0IFZhbHVlIHRvIHRoZSBjb3JyZXNwb25kaW5nIHJlZyB2YWx1ZSBpZiBmb3Vu
ZCwgb3RoZXJ3aXNlIA0KPiAraXQgd2lsbA0KPiBsZWF2ZSBWYWx1ZSB1bnRvdWNoZWQNCj4gK19f
Y2hlY2tSZXR1cm4NCj4gK19TdWNjZXNzXyhyZXR1cm4pDQo+ICtleHRlcm4gQk9PTEVBTg0KPiAr
RHJpdmVyR2V0UmVnT3ZlcnJpZGUoDQo+ICsgICAgX19pbiBYRU5WQkRfRkVBVFVSRSAgICAgICAg
ICAgICAgTmFtZSwNCj4gKyAgICBfX291dCBQVUxPTkcgICAgICAgICAgICAgICAgICAgICBWYWx1
ZQ0KPiArICAgICk7DQo+ICsNCj4gKy8vIFJldHVybiB2YWx1ZSBpbmRpY2F0ZXMgd2hldGhlciBh
IGZlYXR1cmUgZW51bSB0byBzdHJpbmcgbWFwcGluZyANCj4gK3dhcw0KPiBmb3VuZA0KPiArLy8g
RmVhdHVyZVN0cmluZyB3aWxsIGJlIHNldCB0byBwb2ludCB0byB0aGUgc3RyaW5nIGlmIGEgbWFw
cGluZyBpcyANCj4gK2ZvdW5kLA0KPiBvdGhlcndpc2UNCj4gKy8vIGlzIG5vdCBtb2RpZmllZA0K
PiArX19jaGVja1JldHVybg0KPiArZXh0ZXJuIFBDSEFSDQo+ICtEcml2ZXJHZXRGZWF0dXJlTmFt
ZSgNCj4gKyAgICBfX2luIFhFTlZCRF9GRUFUVVJFICAgICAgICAgICAgICBGZWF0dXJlDQo+ICsg
ICAgKTsNCj4gKw0KPiAgdHlwZWRlZiBzdHJ1Y3QgX1hFTlZCRF9QQVJBTUVURVJTIHsNCj4gICAg
ICBCT09MRUFOICAgICBTeW50aGVzaXplSW5xdWlyeTsNCj4gICAgICBCT09MRUFOICAgICBQVkNE
Um9tOw0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9mcm9udGVuZC5jIGIvc3JjL3hlbnZiZC9m
cm9udGVuZC5jIGluZGV4IA0KPiAyMjdiOTNiLi5hYThlZDYyIDEwMDY0NA0KPiAtLS0gYS9zcmMv
eGVudmJkL2Zyb250ZW5kLmMNCj4gKysrIGIvc3JjL3hlbnZiZC9mcm9udGVuZC5jDQo+IEBAIC02
MTksMzcgKzYxOSw2OSBAQCBhYm9ydDoNCj4gIHN0YXRpYyBGT1JDRUlOTElORSBCT09MRUFODQo+
ICBGcm9udGVuZFJlYWRGZWF0dXJlKA0KPiAgICAgIElOICBQWEVOVkJEX0ZST05URU5EICAgICAg
ICAgICAgRnJvbnRlbmQsDQo+IC0gICAgSU4gIFBDSEFSICAgICAgICAgICAgICAgICAgICAgICBO
YW1lLA0KPiArICAgIElOICBYRU5WQkRfRkVBVFVSRSAgICAgICAgICAgICAgRmVhdHVyZSwNCj4g
ICAgICBJTiAgUEJPT0xFQU4gICAgICAgICAgICAgICAgICAgIFZhbHVlDQo+IC0gICAgKQ0KPiAr
KQ0KPiAgew0KPiAgICAgIE5UU1RBVFVTICAgICAgICBzdGF0dXM7DQo+ICAgICAgUENIQVIgICAg
ICAgICAgIEJ1ZmZlcjsNCj4gICAgICBVTE9ORyAgICAgICAgICAgT3ZlcnJpZGU7DQo+ICAgICAg
Qk9PTEVBTiAgICAgICAgIE9sZCA9ICpWYWx1ZTsNCj4gKyAgICBQQ0hBUiAgICAgICAgICAgTmFt
ZTsNCj4gKw0KPiArICAgIE5hbWUgPSBEcml2ZXJHZXRGZWF0dXJlTmFtZShGZWF0dXJlKTsNCj4g
KyAgICBpZiAoTmFtZSA9PSBOVUxMKSB7DQo+ICsgICAgICAgIFRyYWNlKCJUYXJnZXRbJWRdIDog
Q291bGQgbm90IGZpbmQgRmVhdHVyZSAldS5cbiIsIA0KPiArIEZyb250ZW5kLT5UYXJnZXRJZCwN
Cj4gRmVhdHVyZSk7DQo+ICsgICAgICAgIHJldHVybiBGQUxTRTsNCj4gKyAgICB9DQo+ICsNCj4g
KyAgICAvLyBjaGVjayByZWdpc3RyeSBmb3IgZGlzYWJsZS1vdmVycmlkZQ0KPiArICAgIGlmIChE
cml2ZXJHZXRSZWdPdmVycmlkZShGZWF0dXJlLCAmT3ZlcnJpZGUpKSB7DQo+ICsgICAgICAgICpW
YWx1ZSA9IChPdmVycmlkZSA9PSAwKSA/IEZBTFNFIDogVFJVRTsNCj4gKyAgICB9IGVsc2Ugew0K
PiArDQo+ICsgICAgICAgIHN0YXR1cyA9IFhFTkJVU19TVE9SRShSZWFkLA0KPiArICAgICAgICAg
ICAgRnJvbnRlbmQtPlN0b3JlLA0KPiArICAgICAgICAgICAgTlVMTCwNCj4gKyAgICAgICAgICAg
IEZyb250ZW5kLT5CYWNrZW5kUGF0aCwNCj4gKyAgICAgICAgICAgIE5hbWUsDQo+ICsgICAgICAg
ICAgICAmQnVmZmVyKTsNCj4gKyAgICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ICsg
ICAgICAgICAgICByZXR1cm4gRkFMU0U7ICAgLy8gbm8gdmFsdWUsIHVuY2hhbmdlZA0KPiArDQo+
ICsgICAgICAgICpWYWx1ZSA9ICEhKHN0cnRvdWwoQnVmZmVyLCBOVUxMLCAxMCkpOw0KPiArICAg
ICAgICBYRU5CVVNfU1RPUkUoRnJlZSwNCj4gKyAgICAgICAgICAgIEZyb250ZW5kLT5TdG9yZSwN
Cj4gKyAgICAgICAgICAgIEJ1ZmZlcik7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgcmV0dXJuIE9s
ZCAhPSAqVmFsdWU7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBGT1JDRUlOTElORSBCT09MRUFODQo+
ICtGcm9udGVuZFJlYWREaXNrRmVhdHVyZSgNCj4gKyAgICBJTiAgUFhFTlZCRF9GUk9OVEVORCAg
ICAgICAgICAgIEZyb250ZW5kLA0KPiArICAgIElOICBQQ0hBUiAgICAgICAgICAgICAgICAgICAg
ICAgTmFtZSwNCj4gKyAgICBJTiAgUEJPT0xFQU4gICAgICAgICAgICAgICAgICAgIFZhbHVlDQo+
ICspDQo+ICt7DQo+ICsgICAgTlRTVEFUVVMgICAgICAgIHN0YXR1czsNCj4gKyAgICBQQ0hBUiAg
ICAgICAgICAgQnVmZmVyOw0KPiArICAgIEJPT0xFQU4gICAgICAgICBPbGQgPSAqVmFsdWU7DQo+
IA0KPiAgICAgIHN0YXR1cyA9IFhFTkJVU19TVE9SRShSZWFkLA0KPiAtICAgICAgICAgICAgICAg
ICAgICAgICAgICBGcm9udGVuZC0+U3RvcmUsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg
IE5VTEwsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kLT5CYWNrZW5kUGF0
aCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSwNCj4gLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgJkJ1ZmZlcik7DQo+ICsgICAgICAgIEZyb250ZW5kLT5TdG9yZSwNCj4gKyAg
ICAgICAgTlVMTCwNCj4gKyAgICAgICAgRnJvbnRlbmQtPkJhY2tlbmRQYXRoLA0KPiArICAgICAg
ICBOYW1lLA0KPiArICAgICAgICAmQnVmZmVyKTsNCj4gICAgICBpZiAoIU5UX1NVQ0NFU1Moc3Rh
dHVzKSkNCj4gICAgICAgICAgcmV0dXJuIEZBTFNFOyAgIC8vIG5vIHZhbHVlLCB1bmNoYW5nZWQN
Cj4gDQo+ICAgICAgKlZhbHVlID0gISEoc3RydG91bChCdWZmZXIsIE5VTEwsIDEwKSk7DQo+ICAg
ICAgWEVOQlVTX1NUT1JFKEZyZWUsDQo+IC0gICAgICAgICAgICAgICAgICAgIEZyb250ZW5kLT5T
dG9yZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgQnVmZmVyKTsNCj4gLQ0KPiAtICAgIC8vIGNo
ZWNrIHJlZ2lzdHJ5IGZvciBkaXNhYmxlLW92ZXJyaWRlDQo+IC0gICAgc3RhdHVzID0gUmVnaXN0
cnlRdWVyeUR3b3JkVmFsdWUoRHJpdmVyR2V0UGFyYW1ldGVyc0tleSgpLA0KPiAtICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSwNCj4gLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZPdmVycmlkZSk7DQo+IC0gICAgaWYgKE5UX1NVQ0NFU1Moc3RhdHVz
KSkgew0KPiAtICAgICAgICBpZiAoT3ZlcnJpZGUgPT0gMCkNCj4gLSAgICAgICAgICAgICpWYWx1
ZSA9IEZBTFNFOw0KPiAtICAgIH0NCj4gKyAgICAgICAgRnJvbnRlbmQtPlN0b3JlLA0KPiArICAg
ICAgICBCdWZmZXIpOw0KPiANCj4gICAgICByZXR1cm4gT2xkICE9ICpWYWx1ZTsNCj4gIH0NCj4g
QEAgLTY1NywzOSArNjg5LDY5IEBAIEZyb250ZW5kUmVhZEZlYXR1cmUoICBzdGF0aWMgRk9SQ0VJ
TkxJTkUgQk9PTEVBTiAgDQo+IEZyb250ZW5kUmVhZFZhbHVlMzIoDQo+ICAgICAgSU4gIFBYRU5W
QkRfRlJPTlRFTkQgICAgICAgICAgICBGcm9udGVuZCwNCj4gLSAgICBJTiAgUENIQVIgICAgICAg
ICAgICAgICAgICAgICAgIE5hbWUsDQo+ICsgICAgSU4gIFhFTlZCRF9GRUFUVVJFICAgICAgICAg
ICAgICBGZWF0dXJlLA0KPiAgICAgIElOICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgQWxs
b3dPdmVycmlkZSwNCj4gICAgICBJTiAgUFVMT05HICAgICAgICAgICAgICAgICAgICAgIFZhbHVl
DQo+IC0gICAgKQ0KPiArKQ0KPiAgew0KPiAgICAgIE5UU1RBVFVTICAgICAgICBzdGF0dXM7DQo+
ICAgICAgUENIQVIgICAgICAgICAgIEJ1ZmZlcjsNCj4gICAgICBVTE9ORyAgICAgICAgICAgT3Zl
cnJpZGU7DQo+ICAgICAgVUxPTkcgICAgICAgICAgIE9sZCA9ICpWYWx1ZTsNCj4gKyAgICBQU1RS
ICAgICAgICAgICAgTmFtZTsNCj4gKw0KPiArICAgIE5hbWUgPSBEcml2ZXJHZXRGZWF0dXJlTmFt
ZShGZWF0dXJlKTsNCj4gKyAgICBpZiAoTmFtZSA9PSBOVUxMKSB7DQo+ICsgICAgICAgIFRyYWNl
KCJUYXJnZXRbJWRdIDogQ291bGQgbm90IGZpbmQgRmVhdHVyZSAldS5cbiIsIA0KPiArIEZyb250
ZW5kLT5UYXJnZXRJZCwNCj4gRmVhdHVyZSk7DQo+ICsgICAgICAgIHJldHVybiBGQUxTRTsNCj4g
KyAgICB9DQo+ICsNCj4gKyAgICAvLyBjaGVjayByZWdpc3RyeSBmb3IgZGlzYWJsZS1vdmVycmlk
ZQ0KPiArICAgIGlmIChBbGxvd092ZXJyaWRlICYmIERyaXZlckdldFJlZ092ZXJyaWRlKEZlYXR1
cmUsICZPdmVycmlkZSkpIHsNCj4gKyAgICAgICAgKlZhbHVlID0gT3ZlcnJpZGU7DQo+ICsgICAg
fSBlbHNlIHsNCj4gKyAgICAgICAgc3RhdHVzID0gWEVOQlVTX1NUT1JFKFJlYWQsDQo+ICsgICAg
ICAgICAgICBGcm9udGVuZC0+U3RvcmUsDQo+ICsgICAgICAgICAgICBOVUxMLA0KPiArICAgICAg
ICAgICAgRnJvbnRlbmQtPkJhY2tlbmRQYXRoLA0KPiArICAgICAgICAgICAgTmFtZSwNCj4gKyAg
ICAgICAgICAgICZCdWZmZXIpOw0KPiArICAgICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkN
Cj4gKyAgICAgICAgICAgIHJldHVybiBGQUxTRTsgICAvLyBubyB2YWx1ZSwgdW5jaGFuZ2VkDQo+
ICsNCj4gKyAgICAgICAgKlZhbHVlID0gc3RydG91bChCdWZmZXIsIE5VTEwsIDEwKTsNCj4gKyAg
ICAgICAgWEVOQlVTX1NUT1JFKEZyZWUsDQo+ICsgICAgICAgICAgICBGcm9udGVuZC0+U3RvcmUs
DQo+ICsgICAgICAgICAgICBCdWZmZXIpOw0KPiArICAgIH0NCj4gKw0KPiArICAgIHJldHVybiBP
bGQgIT0gKlZhbHVlOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgRk9SQ0VJTkxJTkUgQk9PTEVBTg0K
PiArRnJvbnRlbmRSZWFkRGlza1ZhbHVlMzIoDQo+ICsgICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQg
ICAgICAgICAgICBGcm9udGVuZCwNCj4gKyAgICBJTiAgUENIQVIgICAgICAgICAgICAgICAgICAg
ICAgIE5hbWUsDQo+ICsgICAgSU4gIFBVTE9ORyAgICAgICAgICAgICAgICAgICAgICBWYWx1ZQ0K
PiArKQ0KPiArew0KPiArICAgIE5UU1RBVFVTICAgICAgICBzdGF0dXM7DQo+ICsgICAgUENIQVIg
ICAgICAgICAgIEJ1ZmZlcjsNCj4gKyAgICBVTE9ORyAgICAgICAgICAgT2xkID0gKlZhbHVlOw0K
PiANCj4gICAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUoUmVhZCwNCj4gLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgRnJvbnRlbmQtPlN0b3JlLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZC0+QmFja2VuZFBh
dGgsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUsDQo+IC0gICAgICAgICAgICAg
ICAgICAgICAgICAgICZCdWZmZXIpOw0KPiArICAgICAgICBGcm9udGVuZC0+U3RvcmUsDQo+ICsg
ICAgICAgIE5VTEwsDQo+ICsgICAgICAgIEZyb250ZW5kLT5CYWNrZW5kUGF0aCwNCj4gKyAgICAg
ICAgTmFtZSwNCj4gKyAgICAgICAgJkJ1ZmZlcik7DQo+ICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0
YXR1cykpDQo+ICAgICAgICAgIHJldHVybiBGQUxTRTsgICAvLyBubyB2YWx1ZSwgdW5jaGFuZ2Vk
DQo+IA0KPiAgICAgICpWYWx1ZSA9IHN0cnRvdWwoQnVmZmVyLCBOVUxMLCAxMCk7DQo+ICAgICAg
WEVOQlVTX1NUT1JFKEZyZWUsDQo+IC0gICAgICAgICAgICAgICAgICAgIEZyb250ZW5kLT5TdG9y
ZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgQnVmZmVyKTsNCj4gLQ0KPiAtICAgIC8vIGNoZWNr
IHJlZ2lzdHJ5IGZvciBkaXNhYmxlLW92ZXJyaWRlDQo+IC0gICAgaWYgKEFsbG93T3ZlcnJpZGUp
IHsNCj4gLSAgICAgICAgc3RhdHVzID0gUmVnaXN0cnlRdWVyeUR3b3JkVmFsdWUoRHJpdmVyR2V0
UGFyYW1ldGVyc0tleSgpLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIE5hbWUsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJk92
ZXJyaWRlKTsNCj4gLSAgICAgICAgaWYgKE5UX1NVQ0NFU1Moc3RhdHVzKSkgew0KPiAtICAgICAg
ICAgICAgKlZhbHVlID0gT3ZlcnJpZGU7DQo+IC0gICAgICAgIH0NCj4gLSAgICB9DQo+ICsgICAg
ICAgIEZyb250ZW5kLT5TdG9yZSwNCj4gKyAgICAgICAgQnVmZmVyKTsNCj4gDQo+ICAgICAgcmV0
dXJuIE9sZCAhPSAqVmFsdWU7DQo+ICB9DQo+IEBAIC03NTEsMTcgKzgxMywxNCBAQCBfX1JlYWRE
aXNrSW5mbygNCj4gIHsNCj4gICAgICBCT09MRUFOIENoYW5nZWQgPSBGQUxTRTsNCj4gDQo+IC0g
ICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWRWYWx1ZTMyKEZyb250ZW5kLA0KPiArICAgIENoYW5n
ZWQgfD0gRnJvbnRlbmRSZWFkRGlza1ZhbHVlMzIoRnJvbnRlbmQsDQo+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImluZm8iLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEZBTFNFLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZG
cm9udGVuZC0+RGlza0luZm8uRGlza0luZm8pOw0KPiAtICAgIENoYW5nZWQgfD0gRnJvbnRlbmRS
ZWFkVmFsdWUzMihGcm9udGVuZCwNCj4gKyAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZERpc2tW
YWx1ZTMyKEZyb250ZW5kLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
ZWN0b3Itc2l6ZSIsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0Us
DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5EaXNrSW5m
by5TZWN0b3JTaXplKTsNCj4gLSAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZFZhbHVlMzIoRnJv
bnRlbmQsDQo+ICsgICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWREaXNrVmFsdWUzMihGcm9udGVu
ZCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGh5c2ljYWwtc2VjdG9y
LXNpemUiLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLA0KPiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uUGh5
c1NlY3RvclNpemUpOw0KPiAgICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFkVmFsdWU2NChGcm9u
dGVuZCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VjdG9ycyIsIEBA
IC04MDUsMTQgKzg2NCwxNCBAQCANCj4gRnJvbnRlbmRSZWFkRmVhdHVyZXMoDQo+ICAgICAgQk9P
TEVBTiBDaGFuZ2VkID0gRkFMU0U7DQo+IA0KPiAgICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFk
RmVhdHVyZShGcm9udGVuZCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InJlbW92YWJsZSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1
cmVSZW1vdmFibGUsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9u
dGVuZC0+Q2Fwcy5SZW1vdmFibGUpOw0KPiAgICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFkVmFs
dWUzMihGcm9udGVuZCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZl
YXR1cmUtbWF4LWluZGlyZWN0LXNlZ21lbnRzIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgRmVhdHVyZU1heEluZGlyZWN0U2VnbWVudHMsDQo+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFRSVUUsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICZGcm9udGVuZC0+RmVhdHVyZXMuSW5kaXJlY3QpOw0KPiAgICAgIENoYW5nZWQg
fD0gRnJvbnRlbmRSZWFkRmVhdHVyZShGcm9udGVuZCwNCj4gLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImZlYXR1cmUtcGVyc2lzdGVudCIsDQo+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEZlYXR1cmVQZXJzaXN0ZW50LA0KPiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPkZlYXR1cmVzLlBlcnNpc3RlbnQpOw0KPiAN
Cj4gICAgICBpZiAoIUNoYW5nZWQpDQo+IEBAIC04NDEsMzEgKzkwMCwzMSBAQCBGcm9udGVuZFJl
YWREaXNrSW5mbygNCj4gICAgICBCT09MRUFOIERpc2NhcmRFbmFibGUgPSBUUlVFOw0KPiANCj4g
ICAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZEZlYXR1cmUoRnJvbnRlbmQsDQo+IC0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmZWF0dXJlLWJhcnJpZXIiLA0KPiArICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGZWF0dXJlQmFycmllciwNCj4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5EaXNrSW5mby5CYXJyaWVyKTsN
Cj4gICAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZEZlYXR1cmUoRnJvbnRlbmQsDQo+IC0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmZWF0dXJlLWZsdXNoLWNhY2hlIiwNCj4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVhdHVyZUZsdXNoQ2FjaGUsDQo+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8u
Rmx1c2hDYWNoZSk7DQo+IA0KPiAgICAgIC8vIGRpc2NhcmQgcmVsYXRlZA0KPiAgICAgIEZyb250
ZW5kUmVhZEZlYXR1cmUoRnJvbnRlbmQsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAiZmVh
dHVyZS1kaXNjYXJkIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVEaXNjYXJk
LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgJkRpc2NhcmRGZWF0dXJlKTsNCj4gICAgICBG
cm9udGVuZFJlYWRGZWF0dXJlKEZyb250ZW5kLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg
ImRpc2NhcmQtZW5hYmxlIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVEaXNj
YXJkRW5hYmxlLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgJkRpc2NhcmRFbmFibGUpOw0K
PiAgICAgIERpc2NhcmQgPSBEaXNjYXJkRmVhdHVyZSAmJiBEaXNjYXJkRW5hYmxlOw0KPiAgICAg
IENoYW5nZWQgfD0gKERpc2NhcmQgIT0gRnJvbnRlbmQtPkRpc2tJbmZvLkRpc2NhcmQpOw0KPiAg
ICAgIEZyb250ZW5kLT5EaXNrSW5mby5EaXNjYXJkID0gRGlzY2FyZDsNCj4gICAgICBDaGFuZ2Vk
IHw9IEZyb250ZW5kUmVhZEZlYXR1cmUoRnJvbnRlbmQsDQo+IC0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJkaXNjYXJkLXNlY3VyZSIsDQo+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEZlYXR1cmVEaXNjYXJkU2VjdXJlLA0KPiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPkRpc2tJbmZvLkRpc2NhcmRTZWN1cmUpOw0K
PiAgICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFkVmFsdWUzMihGcm9udGVuZCwNCj4gLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpc2NhcmQtYWxpZ25tZW50IiwNCj4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVhdHVyZURpc2NhcmRBbGlnbm1lbnQs
DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsDQo+ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uRGlzY2FyZEFs
aWdubWVudCk7DQo+ICAgICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWRWYWx1ZTMyKEZyb250ZW5k
LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGlzY2FyZC1ncmFudWxh
cml0eSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVEaXNj
YXJkR3JhbnVsYXJpdHksDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRS
VUUsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KPiAmRnJvbnRlbmQt
PkRpc2tJbmZvLkRpc2NhcmRHcmFudWxhcml0eSk7DQo+IA0KPiBAQCAtMTIzOCw2ICsxMjk3LDgg
QEAgRnJvbnRlbmREaXNhYmxlKA0KPiANCj4gDQo+IC8vPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID09PT09PT09PT09PT09PT09PT09
DQo+ICAvLyBJbml0L1Rlcm0NCj4gK19JUlFMX3JlcXVpcmVzXyhESVNQQVRDSF9MRVZFTCkNCj4g
K19SZXF1aXJlc19sb2NrX2hlbGRfKEZyb250ZW5kLT5TdGF0ZUxvY2spDQo+ICBzdGF0aWMgREVD
TFNQRUNfTk9JTkxJTkUgTlRTVEFUVVMNCj4gIF9fRnJvbnRlbmRTZXRTdGF0ZSgNCj4gICAgICBf
X2luICBQWEVOVkJEX0ZST05URU5EICAgICAgICBGcm9udGVuZCwNCj4gQEAgLTE0MTMsNiArMTQ3
NCw3IEBAIEZyb250ZW5kU3VzcGVuZExhdGVDYWxsYmFjaygNCj4gICAgICBQZG9QcmVSZXN1bWUo
RnJvbnRlbmQtPlBkbyk7DQo+IA0KPiAgICAgIC8vIGRvbnQgYWNxdWlyZSBzdGF0ZSBsb2NrIC0g
Y2FsbGVkIGF0IERJU1BBVENIIG9uIDEgdkNQVSB3aXRoIA0KPiBpbnRlcnJ1cHRzIGVuYWJsZWQN
Cj4gKyNwcmFnbWEgd2FybmluZyhzdXBwcmVzczogMjYxMTApIC8vIHdhcm5pbmcgQzI2MTEwOiBD
YWxsZXIgZmFpbGluZyB0byANCj4gK2hvbGQNCj4gbG9jayA8bG9jaz4gYmVmb3JlIGNhbGxpbmcg
ZnVuY3Rpb24gPGZ1bmM+Lg0KPiAgICAgIFN0YXR1cyA9IF9fRnJvbnRlbmRTZXRTdGF0ZShGcm9u
dGVuZCwgWEVOVkJEX0NMT1NFRCk7DQo+ICAgICAgaWYgKCFOVF9TVUNDRVNTKFN0YXR1cykpIHsN
Cj4gICAgICAgICAgRXJyb3IoIlRhcmdldFslZF0gOiBTZXRTdGF0ZSBDTE9TRUQgKCUwOHgpXG4i
LCANCj4gRnJvbnRlbmQtPlRhcmdldElkLCBTdGF0dXMpOyBAQCAtMTQyMCw2ICsxNDgyLDcgQEAg
DQo+IEZyb250ZW5kU3VzcGVuZExhdGVDYWxsYmFjaygNCj4gICAgICB9DQo+IA0KPiAgICAgIC8v
IGRvbnQgYWNxdWlyZSBzdGF0ZSBsb2NrIC0gY2FsbGVkIGF0IERJU1BBVENIIG9uIDEgdkNQVSB3
aXRoIA0KPiBpbnRlcnJ1cHRzIGVuYWJsZWQNCj4gKyNwcmFnbWEgd2FybmluZyhzdXBwcmVzczog
MjYxMTApIC8vIHdhcm5pbmcgQzI2MTEwOiBDYWxsZXIgZmFpbGluZyB0byANCj4gK2hvbGQNCj4g
bG9jayA8bG9jaz4gYmVmb3JlIGNhbGxpbmcgZnVuY3Rpb24gPGZ1bmM+Lg0KPiAgICAgIFN0YXR1
cyA9IF9fRnJvbnRlbmRTZXRTdGF0ZShGcm9udGVuZCwgU3RhdGUpOw0KPiAgICAgIGlmICghTlRf
U1VDQ0VTUyhTdGF0dXMpKSB7DQo+ICAgICAgICAgIEVycm9yKCJUYXJnZXRbJWRdIDogU2V0U3Rh
dGUgJXMgKCUwOHgpXG4iLCANCj4gRnJvbnRlbmQtPlRhcmdldElkLCBfX1hlbnZiZFN0YXRlTmFt
ZShTdGF0ZSksIFN0YXR1cyk7IGRpZmYgLS1naXQgDQo+IGEvc3JjL3hlbnZiZC9yZWdpc3RyeS5j
IGIvc3JjL3hlbnZiZC9yZWdpc3RyeS5jIGluZGV4IDljZWZmYTUuLjg4NWFiNmQgDQo+IDEwMDY0
NA0KPiAtLS0gYS9zcmMveGVudmJkL3JlZ2lzdHJ5LmMNCj4gKysrIGIvc3JjL3hlbnZiZC9yZWdp
c3RyeS5jDQo+IEBAIC04OSw2ICs4OSw3IEBAIFJlZ2lzdHJ5VGVhcmRvd24oDQo+ICAgICAgUmVn
aXN0cnlQYXRoLk1heGltdW1MZW5ndGggPSBSZWdpc3RyeVBhdGguTGVuZ3RoID0gMDsgIH0NCj4g
DQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIE5UU1RBVFVTDQo+ICBS
ZWdpc3RyeU9wZW5LZXkoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICBQYXJlbnQsDQo+IEBA
IC0xMTgsNiArMTE5LDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4gIH0NCj4g
DQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIHN0YXRpYyBOVFNUQVRV
Uw0KPiAgUmVnaXN0cnlPcGVuUm9vdCgNCj4gICAgICBJTiAgUFdDSEFSICAgICAgICAgIFBhdGgs
DQo+IEBAIC0xNTEsNiArMTUzLDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4g
IH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIE5UU1RBVFVT
DQo+ICBSZWdpc3RyeUNyZWF0ZUtleSgNCj4gICAgICBJTiAgSEFORExFICAgICAgICAgIFJvb3Qs
DQo+IEBAIC0yNTAsNiArMjUzLDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4g
IH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIE5UU1RBVFVT
DQo+ICBSZWdpc3RyeU9wZW5TZXJ2aWNlS2V5KA0KPiAgICAgIElOICBBQ0NFU1NfTUFTSyAgICAg
RGVzaXJlZEFjY2VzcywNCj4gQEAgLTI1OSw2ICsyNjMsNyBAQCBSZWdpc3RyeU9wZW5TZXJ2aWNl
S2V5KA0KPiAgICAgIHJldHVybiBSZWdpc3RyeU9wZW5LZXkoTlVMTCwgJlJlZ2lzdHJ5UGF0aCwg
RGVzaXJlZEFjY2VzcywgS2V5KTsgIA0KPiB9DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBB
U1NJVkVfTEVWRUwpDQo+ICBOVFNUQVRVUw0KPiAgUmVnaXN0cnlDcmVhdGVTZXJ2aWNlS2V5KA0K
PiAgICAgIE9VVCBQSEFORExFICAgICAgICAgS2V5DQo+IEBAIC0yNjcsNiArMjcyLDcgQEAgUmVn
aXN0cnlDcmVhdGVTZXJ2aWNlS2V5KA0KPiAgICAgIHJldHVybiBSZWdpc3RyeUNyZWF0ZUtleShO
VUxMLCAmUmVnaXN0cnlQYXRoLCANCj4gUkVHX09QVElPTl9OT05fVk9MQVRJTEUsIEtleSk7ICB9
DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBOVFNUQVRVUw0K
PiAgUmVnaXN0cnlPcGVuU29mdHdhcmVLZXkoDQo+ICAgICAgSU4gIFBERVZJQ0VfT0JKRUNUICBE
ZXZpY2VPYmplY3QsIEBAIC0yODksNiArMjk1LDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJuIHN0
YXR1czsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4g
IE5UU1RBVFVTDQo+ICBSZWdpc3RyeU9wZW5IYXJkd2FyZUtleSgNCj4gICAgICBJTiAgUERFVklD
RV9PQkpFQ1QgICAgICBEZXZpY2VPYmplY3QsDQo+IEBAIC0zNjYsNiArMzczLDcgQEAgZmFpbDE6
DQo+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwo
UEFTU0lWRV9MRVZFTCkNCj4gIE5UU1RBVFVTDQo+ICBSZWdpc3RyeU9wZW5TdWJLZXkoDQo+ICAg
ICAgSU4gIFBIQU5ETEUgICAgICAgICBLZXksDQo+IEBAIC0zOTksNiArNDA3LDcgQEAgZmFpbDE6
DQo+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwo
UEFTU0lWRV9MRVZFTCkNCj4gIE5UU1RBVFVTDQo+ICBSZWdpc3RyeUNyZWF0ZVN1YktleSgNCj4g
ICAgICBJTiAgUEhBTkRMRSAgICAgICAgIEtleSwNCj4gQEAgLTQzMiw2ICs0NDEsNyBAQCBmYWls
MToNCj4gICAgICByZXR1cm4gc3RhdHVzOw0KPiAgfQ0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJR
TChQQVNTSVZFX0xFVkVMKQ0KPiAgTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5RGVsZXRlU3ViS2V5KA0K
PiAgICAgIElOICBQSEFORExFICAgICAgICAgS2V5LA0KPiBAQCAtNDc1LDYgKzQ4NSw3IEBAIGZh
aWwxOg0KPiAgICAgIHJldHVybiBzdGF0dXM7DQo+ICB9DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJ
UlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBOVFNUQVRVUw0KPiAgUmVnaXN0cnlFbnVtZXJhdGVTdWJL
ZXlzKA0KPiAgICAgIElOICBIQU5ETEUgICAgICAgICAgICAgIEtleSwNCj4gQEAgLTU3OSw2ICs1
OTAsNyBAQCBmYWlsMToNCj4gICAgICByZXR1cm4gc3RhdHVzOw0KPiAgfQ0KPiANCj4gK19fZHJ2
X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5RW51
bWVyYXRlVmFsdWVzKA0KPiAgICAgIElOICBIQU5ETEUgICAgICAgICAgICAgICAgICAgICAgS2V5
LA0KPiBAQCAtNjc3LDYgKzY4OSw3IEBAIGZhaWwxOg0KPiAgICAgIHJldHVybiBzdGF0dXM7DQo+
ICB9DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBOVFNUQVRV
Uw0KPiAgUmVnaXN0cnlEZWxldGVWYWx1ZSgNCj4gICAgICBJTiAgUEhBTkRMRSAgICAgICAgIEtl
eSwNCj4gQEAgLTcxMCw2ICs3MjMsNyBAQCBmYWlsMToNCj4gICAgICByZXR1cm4gc3RhdHVzOw0K
PiAgfQ0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgTlRTVEFU
VVMNCj4gIFJlZ2lzdHJ5UXVlcnlEd29yZFZhbHVlKA0KPiAgICAgIElOICBIQU5ETEUgICAgICAg
ICAgICAgICAgICAgICAgS2V5LA0KPiBAQCAtNzgwLDYgKzc5NCw3IEBAIGZhaWwxOg0KPiAgICAg
IHJldHVybiBzdGF0dXM7DQo+ICB9DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVf
TEVWRUwpDQo+ICBOVFNUQVRVUw0KPiAgUmVnaXN0cnlVcGRhdGVEd29yZFZhbHVlKA0KPiAgICAg
IElOICBIQU5ETEUgICAgICAgICAgICAgICAgICAgICAgS2V5LA0KPiBAQCAtODM4LDYgKzg1Myw3
IEBAIGZhaWwxOg0KPiAgICAgIHJldHVybiBzdGF0dXM7DQo+ICB9DQo+IA0KPiArX19kcnZfcmVx
dWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBzdGF0aWMgUEFOU0lfU1RSSU5HDQo+ICBSZWdp
c3RyeVN6VG9BbnNpKA0KPiAgICAgIElOICBQV0NIQVIgICAgICBCdWZmZXINCj4gQEAgLTg3Nyw2
ICs4OTMsNyBAQCBmYWlsMToNCj4gICAgICByZXR1cm4gTlVMTDsNCj4gIH0NCj4gDQo+ICtfX2Ry
dl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIHN0YXRpYyBQQU5TSV9TVFJJTkcNCj4g
IFJlZ2lzdHJ5TXVsdGlTelRvQW5zaSgNCj4gICAgICBJTiAgUFdDSEFSICAgICAgQnVmZmVyDQo+
IEBAIC05MzksNiArOTU2LDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJuIE5VTEw7DQo+ICB9DQo+
IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBOVFNUQVRVUw0KPiAg
UmVnaXN0cnlRdWVyeVN6VmFsdWUoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICAgICAgICAg
ICAgICBLZXksDQo+IEBAIC0xMDI2LDYgKzEwNDQsNyBAQCBmYWlsMToNCj4gICAgICByZXR1cm4g
c3RhdHVzOw0KPiAgfQ0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0K
PiAgTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5UXVlcnlCaW5hcnlWYWx1ZSgNCj4gICAgICBJTiAgSEFO
RExFICAgICAgICAgICAgICAgICAgICAgIEtleSwNCj4gQEAgLTExMTEsNiArMTEzMCw3IEBAIGZh
aWwxOg0KPiAgICAgIHJldHVybiBzdGF0dXM7DQo+ICB9DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJ
UlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBOVFNUQVRVUw0KPiAgUmVnaXN0cnlVcGRhdGVCaW5hcnlW
YWx1ZSgNCj4gICAgICBJTiAgSEFORExFICAgICAgICAgICAgICAgICAgICAgIEtleSwNCj4gQEAg
LTExNzAsNiArMTE5MCw3IEBAIGZhaWwxOg0KPiAgICAgIHJldHVybiBzdGF0dXM7DQo+ICB9DQo+
IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBOVFNUQVRVUw0KPiAg
UmVnaXN0cnlRdWVyeUtleU5hbWUoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICAgICAgS2V5
LA0KPiBAQCAtMTIyNSw2ICsxMjQ2LDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJuIHN0YXR1czsN
Cj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIE5UU1RB
VFVTDQo+ICBSZWdpc3RyeVF1ZXJ5U3lzdGVtU3RhcnRPcHRpb24oDQo+ICAgICAgSU4gIGNvbnN0
IENIQVIgICAgICAgICAgICAgICAgICAqUHJlZml4LA0KPiBAQCAtMTMwMyw2ICsxMzI1LDcgQEAg
ZmFpbDE6DQo+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJl
c0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIHN0YXRpYyBQS0VZX1ZBTFVFX1BBUlRJQUxfSU5GT1JN
QVRJT04gIFJlZ2lzdHJ5QW5zaVRvU3ooDQo+ICAgICAgUEFOU0lfU1RSSU5HICAgICAgICAgICAg
ICAgICAgICBBbnNpDQo+IEBAIC0xMzQyLDYgKzEzNjUsNyBAQCBmYWlsMToNCj4gICAgICByZXR1
cm4gTlVMTDsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkN
Cj4gIHN0YXRpYyBQS0VZX1ZBTFVFX1BBUlRJQUxfSU5GT1JNQVRJT04gIFJlZ2lzdHJ5QW5zaVRv
TXVsdGlTeigNCj4gICAgICBQQU5TSV9TVFJJTkcgICAgICAgICAgICAgICAgICAgIEFuc2kNCj4g
QEAgLTEzOTUsNiArMTQxOSw3IEBAIGZhaWwxOg0KPiAgICAgIHJldHVybiBOVUxMOw0KPiAgfQ0K
PiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgTlRTVEFUVVMNCj4g
IFJlZ2lzdHJ5VXBkYXRlU3pWYWx1ZSgNCj4gICAgICBJTiAgSEFORExFICAgICAgICAgICAgICAg
ICAgICAgIEtleSwNCj4gQEAgLTE0ODUsNiArMTUxMCw3IEBAIFJlZ2lzdHJ5RnJlZUJpbmFyeVZh
bHVlKA0KPiAgICAgIF9fUmVnaXN0cnlGcmVlKEJ1ZmZlcik7DQo+ICB9DQo+IA0KPiArX19kcnZf
cmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBWT0lEDQo+ICBSZWdpc3RyeUNsb3NlS2V5
KA0KPiAgICAgIElOICBIQU5ETEUgIEtleQ0KPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9yZWdp
c3RyeS5oIGIvc3JjL3hlbnZiZC9yZWdpc3RyeS5oIGluZGV4IA0KPiBkMzlmMDE2Li45YmY0OTJl
IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3JlZ2lzdHJ5LmgNCj4gKysrIGIvc3JjL3hlbnZi
ZC9yZWdpc3RyeS5oDQo+IEBAIC00NCw2ICs0NCw3IEBAIFJlZ2lzdHJ5VGVhcmRvd24oDQo+ICAg
ICAgVk9JRA0KPiAgICAgICk7DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVW
RUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5T3BlbktleSgNCj4gICAgICBJTiAg
SEFORExFICAgICAgICAgIFBhcmVudCwNCj4gQEAgLTUyLDYgKzUzLDcgQEAgUmVnaXN0cnlPcGVu
S2V5KA0KPiAgICAgIE9VVCBQSEFORExFICAgICAgICAgS2V5DQo+ICAgICAgKTsNCj4gDQo+ICtf
X2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIGV4dGVybiBOVFNUQVRVUw0KPiAg
UmVnaXN0cnlDcmVhdGVLZXkoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICBQYXJlbnQsDQo+
IEBAIC02MCwxNyArNjIsMjAgQEAgUmVnaXN0cnlDcmVhdGVLZXkoDQo+ICAgICAgT1VUIFBIQU5E
TEUgICAgICAgICBLZXkNCj4gICAgICApOw0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNT
SVZFX0xFVkVMKQ0KPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ICBSZWdpc3RyeU9wZW5TZXJ2aWNlS2V5
KA0KPiAgICAgIElOICBBQ0NFU1NfTUFTSyBEZXNpcmVkQWNjZXNzLA0KPiAgICAgIE9VVCBQSEFO
RExFICAgICBLZXkNCj4gICAgICApOw0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZF
X0xFVkVMKQ0KPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ICBSZWdpc3RyeUNyZWF0ZVNlcnZpY2VLZXko
DQo+ICAgICAgT1VUIFBIQU5ETEUgICAgIEtleQ0KPiAgICAgICk7DQo+IA0KPiArX19kcnZfcmVx
dWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5
T3BlblNvZnR3YXJlS2V5KA0KPiAgICAgIElOICBQREVWSUNFX09CSkVDVCAgRGV2aWNlT2JqZWN0
LCBAQCAtNzgsNiArODMsNyBAQCANCj4gUmVnaXN0cnlPcGVuU29mdHdhcmVLZXkoDQo+ICAgICAg
T1VUIFBIQU5ETEUgICAgICAgICBLZXkNCj4gICAgICApOw0KPiANCj4gK19fZHJ2X3JlcXVpcmVz
SVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ICBSZWdpc3RyeU9wZW5I
YXJkd2FyZUtleSgNCj4gICAgICBJTiAgUERFVklDRV9PQkpFQ1QgIERldmljZU9iamVjdCwgQEAg
LTg1LDYgKzkxLDcgQEAgDQo+IFJlZ2lzdHJ5T3BlbkhhcmR3YXJlS2V5KA0KPiAgICAgIE9VVCBQ
SEFORExFICAgICAgICAgS2V5DQo+ICAgICAgKTsNCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwo
UEFTU0lWRV9MRVZFTCkNCj4gIGV4dGVybiBOVFNUQVRVUw0KPiAgUmVnaXN0cnlPcGVuU3ViS2V5
KA0KPiAgICAgIElOICBIQU5ETEUgICAgICBLZXksDQo+IEBAIC05Myw2ICsxMDAsNyBAQCBSZWdp
c3RyeU9wZW5TdWJLZXkoDQo+ICAgICAgT1VUIFBIQU5ETEUgICAgIFN1YktleQ0KPiAgICAgICk7
DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRT
VEFUVVMNCj4gIFJlZ2lzdHJ5Q3JlYXRlU3ViS2V5KA0KPiAgICAgIElOICBIQU5ETEUgICAgICBL
ZXksDQo+IEBAIC0xMDEsMTIgKzEwOSwxNCBAQCBSZWdpc3RyeUNyZWF0ZVN1YktleSgNCj4gICAg
ICBPVVQgUEhBTkRMRSAgICAgU3ViS2V5DQo+ICAgICAgKTsNCj4gDQo+ICtfX2Rydl9yZXF1aXJl
c0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIGV4dGVybiBOVFNUQVRVUw0KPiAgUmVnaXN0cnlEZWxl
dGVTdWJLZXkoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgIEtleSwNCj4gICAgICBJTiAgUENIQVIg
ICAgICAgTmFtZQ0KPiAgICAgICk7DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVf
TEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5RW51bWVyYXRlU3ViS2V5cygN
Cj4gICAgICBJTiAgSEFORExFICAgICAgS2V5LA0KPiBAQCAtMTE0LDYgKzEyNCw3IEBAIFJlZ2lz
dHJ5RW51bWVyYXRlU3ViS2V5cygNCj4gICAgICBJTiAgUFZPSUQgICAgICAgQ29udGV4dA0KPiAg
ICAgICk7DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRl
cm4gTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5RW51bWVyYXRlVmFsdWVzKA0KPiAgICAgIElOICBIQU5E
TEUgICAgICBLZXksDQo+IEBAIC0xMjEsMjYgKzEzMiwzMCBAQCBSZWdpc3RyeUVudW1lcmF0ZVZh
bHVlcygNCj4gICAgICBJTiAgUFZPSUQgICAgICAgQ29udGV4dA0KPiAgICAgICk7DQo+IA0KPiAr
X19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4g
IFJlZ2lzdHJ5RGVsZXRlVmFsdWUoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgIEtleSwNCj4gICAg
ICBJTiAgUENIQVIgICAgICAgTmFtZQ0KPiAgICAgICk7DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJ
UlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5UXVlcnlE
d29yZFZhbHVlKA0KPiAgICAgIElOICBIQU5ETEUgICAgICAgICAgS2V5LA0KPiAgICAgIElOICBQ
Q0hBUiAgICAgICAgICAgTmFtZSwNCj4gICAgICBPVVQgUFVMT05HICAgICAgICAgIFZhbHVlDQo+
ICAgICAgKTsNCj4gLQ0KPiArDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkN
Cj4gIGV4dGVybiBOVFNUQVRVUw0KPiAgUmVnaXN0cnlVcGRhdGVEd29yZFZhbHVlKA0KPiAgICAg
IElOICBIQU5ETEUgICAgICAgICAgS2V5LA0KPiAgICAgIElOICBQQ0hBUiAgICAgICAgICAgTmFt
ZSwNCj4gICAgICBJTiAgVUxPTkcgICAgICAgICAgIFZhbHVlDQo+ICAgICAgKTsNCj4gLQ0KPiAr
DQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIGV4dGVybiBOVFNUQVRV
Uw0KPiAgUmVnaXN0cnlRdWVyeVN6VmFsdWUoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICBL
ZXksDQo+IEBAIC0xNDksNiArMTY0LDcgQEAgUmVnaXN0cnlRdWVyeVN6VmFsdWUoDQo+ICAgICAg
T1VUIFBBTlNJX1NUUklORyAgICAqQXJyYXkNCj4gICAgICApOw0KPiANCj4gK19fZHJ2X3JlcXVp
cmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ICBSZWdpc3RyeVF1
ZXJ5QmluYXJ5VmFsdWUoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICBLZXksDQo+IEBAIC0x
NTcsNiArMTczLDcgQEAgUmVnaXN0cnlRdWVyeUJpbmFyeVZhbHVlKA0KPiAgICAgIE9VVCBQVUxP
TkcgICAgICAgICAgTGVuZ3RoDQo+ICAgICAgKTsNCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwo
UEFTU0lWRV9MRVZFTCkNCj4gIGV4dGVybiBOVFNUQVRVUw0KPiAgUmVnaXN0cnlVcGRhdGVCaW5h
cnlWYWx1ZSgNCj4gICAgICBJTiAgSEFORExFICAgICAgICAgIEtleSwNCj4gQEAgLTE2NSwxMiAr
MTgyLDE0IEBAIFJlZ2lzdHJ5VXBkYXRlQmluYXJ5VmFsdWUoDQo+ICAgICAgSU4gIFVMT05HICAg
ICAgICAgICBMZW5ndGgNCj4gICAgICApOw0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNT
SVZFX0xFVkVMKQ0KPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ICBSZWdpc3RyeVF1ZXJ5S2V5TmFtZSgN
Cj4gICAgICBJTiAgSEFORExFICAgICAgICAgICAgICBLZXksDQo+ICAgICAgT1VUIFBBTlNJX1NU
UklORyAgICAgICAgKkFycmF5DQo+ICAgICAgKTsNCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwo
UEFTU0lWRV9MRVZFTCkNCj4gIGV4dGVybiBOVFNUQVRVUw0KPiAgUmVnaXN0cnlRdWVyeVN5c3Rl
bVN0YXJ0T3B0aW9uKA0KPiAgICAgIElOICBjb25zdCBDSEFSICAgICAgKlByZWZpeCwNCj4gQEAg
LTE4Nyw2ICsyMDYsNyBAQCBSZWdpc3RyeUZyZWVCaW5hcnlWYWx1ZSgNCj4gICAgICBJTiAgUFZP
SUQgICAgICAgICAgIEJ1ZmZlcg0KPiAgICAgICk7DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFM
KFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5VXBkYXRlU3pW
YWx1ZSgNCj4gICAgICBJTiAgSEFORExFICAgICAgICAgIEtleSwNCj4gQEAgLTE5NSw2ICsyMTUs
NyBAQCBSZWdpc3RyeVVwZGF0ZVN6VmFsdWUoDQo+ICAgICAgSU4gIFBBTlNJX1NUUklORyAgICBB
cnJheQ0KPiAgICAgICk7DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwp
DQo+ICBleHRlcm4gVk9JRA0KPiAgUmVnaXN0cnlDbG9zZUtleSgNCj4gICAgICBJTiAgSEFORExF
ICBLZXkNCj4gLS0NCj4gMi4xMC4xLndpbmRvd3MuMQ0KPiANCj4gDQo+IF9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IHdpbi1wdi1kZXZlbCBtYWlsaW5n
IGxpc3QNCj4gd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHBzOi8vbGlz
dHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA0K
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

From win-pv-devel-bounces@lists.xenproject.org Tue Jun 27 15:15:25 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jun 2017 15:15:25 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPsD7-00047V-2g; Tue, 27 Jun 2017 15:15:25 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1dPsD5-00044R-NV
 for win-pv-devel@lists.xenproject.org; Tue, 27 Jun 2017 15:15:23 +0000
Date: Tue, 27 Jun 2017 15:14:59 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <11381042.1.1498576505372.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_0_11865475.1498576499934"
X-Jenkins-Job: XENVBD-master
X-Jenkins-Result: SUCCESS
Subject: [win-pv-devel] XENVBD-master - Build #97 - Successful
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_0_11865475.1498576499934
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #97.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENVBD-master/97/console to view the results.
------=_Part_0_11865475.1498576499934
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_0_11865475.1498576499934--


From win-pv-devel-bounces@lists.xenproject.org Tue Jun 27 15:56:28 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Tue, 27 Jun 2017 15:56:28 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dPsqn-0000Ks-W8; Tue, 27 Jun 2017 15:56:25 +0000
Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=3449104f4=Paul.Durrant@citrix.com>)
 id 1dPsqm-0000Km-RB
 for win-pv-devel@lists.xenproject.org; Tue, 27 Jun 2017 15:56:25 +0000
Received: from [85.158.137.68] by server-9.bemta-3.messagelabs.com id
 75/34-26749-72082595; Tue, 27 Jun 2017 15:56:23 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrOIsWRWlGSWpSXmKPExsWyU9JRQlelISj
 SYM5hVYs/ixMdGD0Of7jCEsAYxZqZl5RfkcCacef4SvaCKceZKm6va2NrYPxyiKmLkZNDQsBP
 4uyGR+wgNpuAjsTSo/PB4iICJRKLT2wEsrk4hAVmMkrsmXqIHcQREZjFKPFl3Uw2iConiTtre
 sG6WQRUJdau3gPWzSvgLnGm+QBYg5DAAUaJYw8WgjVwCvhI3P34nBXEZhSQlfjSuJoZxGYWEJ
 e49WQ+1EkCEkv2nGeGsEUlXj7+xwphG0hsXbqPpYuRA6heU2L9Ln2IVkWJKd0P2SH2CkqcnPm
 EZQKj0CwkU2chdMxC0jELSccCRpZVjBrFqUVlqUW6xgZ6SUWZ6RkluYmZObqGBsZ6uanFxYnp
 qTmJScV6yfm5mxiBgV7PwMC4g7HzhN8hRkkOJiVR3tUSQZFCfEn5KZUZicUZ8UWlOanFhxhlO
 DiUJHgj6oFygkWp6akVaZk5wJiDSUtw8CiJ8L6pA0rzFhck5hZnpkOkTjHqcmxYvf4LkxBLXn
 5eqpQ4rwTIDAGQoozSPLgRsPi/xCgrJczLyMDAIMRTkFqUm1mCKv+KUZyDUUmY160WaApPZl4
 J3KZXQEcwAR3BMi8A5IiSRISUVANjmPLxy/5NlvubxbRab/LOb3z0m9VkioTnl5g3FV7bUib+
 bVg266+8dUicZo6P3Im73Pk/3X6/W7naW27lhammsV831fuk/Wm8LzzRSbl+lsV+074EfjnLK
 SYmNwIDtZ2mqD+o095jx7e5Q+bLYvvkChVXLrUfn6Ja9vH9XAlMcvF39wY8jlRiKc5INNRiLi
 pOBADOmykJ+gIAAA==
X-Env-Sender: prvs=3449104f4=Paul.Durrant@citrix.com
X-Msg-Ref: server-4.tower-31.messagelabs.com!1498578979!49541897!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 2440 invoked from network); 27 Jun 2017 15:56:20 -0000
Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-4.tower-31.messagelabs.com with RC4-SHA encrypted SMTP;
 27 Jun 2017 15:56:20 -0000
X-IronPort-AV: E=Sophos;i="5.39,401,1493683200"; d="scan'208";a="48470405"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: "'Mackay, Eric'" <mackayem@amazon.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH] Added a function called from DriverEntry
 where we can safely read registry keys and convert strings
 at	PASSIVE_LEVEL
Thread-Index: AQHS7rTmkredBsLkTUCXS495O8jUuqI4zJpA///i9oCAAC37IA==
Date: Tue, 27 Jun 2017 15:53:54 +0000
Message-ID: <9368ecb09e204973932bffbf780304e5@AMSPEX02CL03.citrite.net>
References: <1498506346-2019-1-git-send-email-mackayem@amazon.com>
 <e053407c3ff3442ea210f08aedaa8aea@AMSPEX02CL03.citrite.net>
 <5d82c842e85b401b8c79f224728600a9@EX13D12UWC004.ant.amazon.com>
In-Reply-To: <5d82c842e85b401b8c79f224728600a9@EX13D12UWC004.ant.amazon.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Subject: Re: [win-pv-devel] [PATCH] Added a function called from
	DriverEntry	where we can safely read registry keys and
	convert strings at	PASSIVE_LEVEL
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYWNrYXksIEVyaWMgW21haWx0
bzptYWNrYXllbUBhbWF6b24uY29tXQ0KPiBTZW50OiAyNyBKdW5lIDIwMTcgMTY6MDkNCj4gVG86
IFBhdWwgRHVycmFudCA8UGF1bC5EdXJyYW50QGNpdHJpeC5jb20+OyB3aW4tcHYtDQo+IGRldmVs
QGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IFN1YmplY3Q6IFJFOiBbd2luLXB2LWRldmVsXSBbUEFU
Q0hdIEFkZGVkIGEgZnVuY3Rpb24gY2FsbGVkIGZyb20NCj4gRHJpdmVyRW50cnkgd2hlcmUgd2Ug
Y2FuIHNhZmVseSByZWFkIHJlZ2lzdHJ5IGtleXMgYW5kIGNvbnZlcnQgc3RyaW5ncyBhdA0KPiBQ
QVNTSVZFX0xFVkVMDQo+IA0KPiBJIGJlbGlldmUgdGhlIHBhdGNoIHNob3VsZCB3b3JrIGFzLWlz
IG9uIHRvcCBvZiB0aGUgOC4yLjAgcmVsZWFzZSAoSSBiYXNlZCBpdCBvbg0KPiB0aGUgOC4yLjAg
dGFnKS4gSSB0cmllZCBkaXJlY3RseSBtYWtpbmcgYSB2ZXJzaW9uIG9mIHRoZSBwYXRjaCBvbiB0
b3Agb2YgdGhlIG1vc3QNCj4gcmVjZW50IGNvbW1pdHMgZnJvbSBPd2VuLCBidXQgSSByYW4gYWNy
b3NzIHRoZSBidWcgSSBtZW50aW9uZWQgaW4gYW5vdGhlcg0KPiBwb3N0IHRvIHRoZSBtYWlsaW5n
IGxpc3QsIHN1YmplY3QgbGluZSAiIFhlblZCRCBidWcgLSBJUlFMIG1pc21hdGNoIGJldHdlZW4N
Cj4gQWRhcHRlckh3RmluZEFkYXB0ZXIgYW5kIEFkYXB0ZXJJbml0aWFsaXplIi4NCg0KT2suIEkn
bGwgaGFuZGxlIHRoZSByZS1iYXNlIGFuZCB3ZSdsbCB0YWtlIGEgbG9vayBhdCB0aGF0IGlzc3Vl
Lg0KDQogIFBhdWwNCg0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTog
UGF1bCBEdXJyYW50IFttYWlsdG86UGF1bC5EdXJyYW50QGNpdHJpeC5jb21dDQo+IFNlbnQ6IFR1
ZXNkYXksIEp1bmUgMjcsIDIwMTcgNzo1NSBBTQ0KPiBUbzogTWFja2F5LCBFcmljIDxtYWNrYXll
bUBhbWF6b24uY29tPjsgd2luLXB2LQ0KPiBkZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBT
dWJqZWN0OiBSRTogW3dpbi1wdi1kZXZlbF0gW1BBVENIXSBBZGRlZCBhIGZ1bmN0aW9uIGNhbGxl
ZCBmcm9tDQo+IERyaXZlckVudHJ5IHdoZXJlIHdlIGNhbiBzYWZlbHkgcmVhZCByZWdpc3RyeSBr
ZXlzIGFuZCBjb252ZXJ0IHN0cmluZ3MgYXQNCj4gUEFTU0lWRV9MRVZFTA0KPiANCj4gPiAtLS0t
LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IHdpbi1wdi1kZXZlbCBbbWFpbHRvOndp
bi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXQ0KPiA+IE9uIEJlaGFsZiBP
ZiBFcmljIE1hY2theQ0KPiA+IFNlbnQ6IDI2IEp1bmUgMjAxNyAyMDo0Ng0KPiA+IFRvOiB3aW4t
cHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gPiBDYzogRXJpYyBNYWNrYXkgPG1hY2th
eWVtQGFtYXpvbi5jb20+DQo+ID4gU3ViamVjdDogW3dpbi1wdi1kZXZlbF0gW1BBVENIXSBBZGRl
ZCBhIGZ1bmN0aW9uIGNhbGxlZCBmcm9tDQo+ID4gRHJpdmVyRW50cnkgd2hlcmUgd2UgY2FuIHNh
ZmVseSByZWFkIHJlZ2lzdHJ5IGtleXMgYW5kIGNvbnZlcnQgc3RyaW5ncw0KPiA+IGF0IFBBU1NJ
VkVfTEVWRUwNCj4gPg0KPiA+IFRoZSBNU0ROIGRvY3VtZW50YXRpb24gZm9yIHZhcmlvdXMgcmVn
aXN0cnkga2V5IGFjY2VzcyBhbmQgc3RyaW5nDQo+ID4gY29udmVyc2lvbiBmdW5jdGlvbnMgcmVx
dWlyZXMgdGhlIGNhbGxlciB0byBiZSBhdCBJUlFMID0NCj4gPiBQQVNTSVZFX0xFVkVMLiBPbmUg
b2YgdGhlIHJlYXNvbnMgZm9yIHRoaXMgaXMgdGhhdCB0aGUgc3RyaW5nDQo+ID4gY29udmVyc2lv
biB0YWJsZXMgdXNlZCBieSBmdW5jdGlvbnMgc3VjaCBhcw0KPiA+IFJ0bEFuc2lTdHJpbmdUb1Vu
aWNvZGVTdHJpbmcgYXJlIHN0b3JlZCBpbiBwYWdlZCBwb29sIG1lbW9yeS4gQm90aCB0aGUNCj4g
PiBwYWdlIGZhdWx0IGhhbmRsZXIgYW5kIHRoZSBwcm9jZXNzIHNjaGVkdWxlciBydW4gYXQgSVJR
TCA9DQo+ID4gRElTUEFUQ0hfTEVWRUwsIHRoZXJlZm9yZSB5b3UgbXVzdCBub3QgdG91Y2ggbWVt
b3J5IGF0DQo+IERJU1BBVENIX0xFVkVMDQo+ID4gdGhhdCBjb3VsZCBiZSBwYWdlZCBvdXQuIEEg
cHJvY2VzcyBydW5uaW5nIGF0IERJU1BBVENIX0xFVkVMIGNhbm5vdCBiZQ0KPiA+IHByZWVtcHRl
ZCBmb3IgdGhlIHBhZ2UgZmF1bHQgaGFuZGxlciB0byBydW4uDQo+ID4NCj4gPiBUbyBhaWQgU3Rh
dGljIERyaXZlciBWZXJpZmllciBjb2RlIGFuYWx5c2lzIGFuZCBpbmZvcm0gZGV2ZWxvcGVycywg
SQ0KPiA+IGhhdmUgYWRkZWQgU0FMIGFubm90YXRpb25zIHRoYXQgaW5kaWNhdGUgSVJRTCA9IFBB
U1NJVkVfTEVWRUwgaXMNCj4gPiByZXF1aXJlZCBvbiBjZXJ0YWluIHJlZ2lzdHJ5IGFjY2VzcyBm
dW5jdGlvbnMuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBFcmljIE1hY2theSA8bWFja2F5ZW1A
YW1hem9uLmNvbT4NCj4gDQo+IEdlbmVyYWxseSB0aGlzIGxvb2tzIG9rIHNvDQo+IA0KPiBBY2tl
ZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4NCj4gDQo+IEhvd2V2
ZXIgaXQgbmVlZHMgcmUtYmFzaW5nIG5vdyB0aGF0IE93ZW4ncyByZWNlbnQgcGF0Y2hlcyBoYXZl
IGdvbmUgaW4uIEknbGwNCj4gZG8gdGhhdCwgYW5kIEknbGwgcHJvYmFibHkgc3BsaXQgb3V0IHRo
ZSBhZGRpdGlvbiBvZiB0aGUgYW5ub3RhdGlvbnMgaW50byBhDQo+IHNlcGFyYXRlIHBhdGNoLg0K
PiANCj4gICBQYXVsDQo+IA0KPiA+IC0tLQ0KPiA+ICBzcmMveGVudmJkL2RyaXZlci5jICAgfCAg
ODYgKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ICBzcmMveGVudmJkL2RyaXZlci5oICAg
fCAgNDUgKysrKysrKysrKysrKysNCj4gPiAgc3JjL3hlbnZiZC9mcm9udGVuZC5jIHwgMTY5ICsr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystDQo+IC0tDQo+ID4gLS0tLS0tLS0tLS0t
LQ0KPiA+ICBzcmMveGVudmJkL3JlZ2lzdHJ5LmMgfCAgMjYgKysrKysrKysNCj4gPiAgc3JjL3hl
bnZiZC9yZWdpc3RyeS5oIHwgIDI1ICsrKysrKystDQo+ID4gIDUgZmlsZXMgY2hhbmdlZCwgMjk2
IGluc2VydGlvbnMoKyksIDU1IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL3Ny
Yy94ZW52YmQvZHJpdmVyLmMgYi9zcmMveGVudmJkL2RyaXZlci5jIGluZGV4DQo+ID4gYmIxOTU0
Zi4uMGM5Mjc1YiAxMDA2NDQNCj4gPiAtLS0gYS9zcmMveGVudmJkL2RyaXZlci5jDQo+ID4gKysr
IGIvc3JjL3hlbnZiZC9kcml2ZXIuYw0KPiA+IEBAIC01OCw2ICs1OCw4IEBAIFhFTlZCRF9QQVJB
TUVURVJTICAgRHJpdmVyUGFyYW1ldGVyczsNCj4gPg0KPiA+ICAjZGVmaW5lIFhFTlZCRF9QT09M
X1RBRyAgICAgJ2RidlgnDQo+ID4NCj4gPiArWEVOVkJEX1JFR0lTVFJZX09WRVJSSURFDQo+ID4g
RHJpdmVyRmVhdHVyZU92ZXJyaWRlc1tOdW1iZXJPZkZlYXR1cmVzXSA9IHsgMCB9Ow0KPiA+ICsN
Cj4gPiAgc3RhdGljIERFQ0xTUEVDX05PSU5MSU5FIFZPSUQNCj4gPiAgX19Ecml2ZXJQYXJzZU9w
dGlvbigNCj4gPiAgICAgIElOICBjb25zdCBDSEFSICAqS2V5LA0KPiA+IEBAIC0zMDEsNiArMzAz
LDg4IEBAIERyaXZlckZvcm1hdEZyZWUoDQo+ID4gICAgICAgICAgX19GcmVlUG9vbFdpdGhUYWco
QnVmZmVyLCBYRU5WQkRfUE9PTF9UQUcpOyAgfQ0KPiA+DQo+ID4gK19fZHJ2X3JlcXVpcmVzSVJR
TChQQVNTSVZFX0xFVkVMKQ0KPiA+ICtWT0lEDQo+ID4gK0RyaXZlckluaXRpYWxpemVPdmVycmlk
ZXMoDQo+ID4gKyAgICApDQo+ID4gK3sNCj4gPiArICAgIFVMT05HICAgICAgICAgICAgICAgICAg
ICAgICBWYWx1ZTsNCj4gPiArICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgICAgICBTdGF0dXM7
DQo+ID4gKyAgICBQQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgRmVhdHVyZU5hbWU7DQo+ID4g
KyAgICBYRU5WQkRfRkVBVFVSRSAgICAgICAgICAgICAgRmVhdHVyZTsNCj4gPiArDQo+ID4gKyAg
ICBzdHJ1Y3QgSU5JVF9PVkVSUklERVMgew0KPiA+ICsgICAgICAgIFBDSEFSIE5hbWU7DQo+ID4g
KyAgICAgICAgWEVOVkJEX0ZFQVRVUkUgRmVhdHVyZTsNCj4gPiArICAgIH0gIEluaXRbXSA9IHsN
Cj4gPiArICAgICAgICB7ICJyZW1vdmFibGUiICwgRmVhdHVyZVJlbW92YWJsZSB9LA0KPiA+ICsg
ICAgICAgIHsgImZlYXR1cmUtcGVyc2lzdGVudCIsIEZlYXR1cmVQZXJzaXN0ZW50IH0sDQo+ID4g
KyAgICAgICAgeyAiZmVhdHVyZS1tYXgtaW5kaXJlY3Qtc2VnbWVudHMiLCBGZWF0dXJlTWF4SW5k
aXJlY3RTZWdtZW50cyB9LA0KPiA+ICsgICAgICAgIHsgImZlYXR1cmUtYmFycmllciIsIEZlYXR1
cmVCYXJyaWVyIH0sDQo+ID4gKyAgICAgICAgeyAiZmVhdHVyZS1mbHVzaC1jYWNoZSIsIEZlYXR1
cmVGbHVzaENhY2hlIH0sDQo+ID4gKyAgICAgICAgeyAiZmVhdHVyZS1kaXNjYXJkIiwgRmVhdHVy
ZURpc2NhcmQgfSwNCj4gPiArICAgICAgICB7ICJkaXNjYXJkLWVuYWJsZSIsIEZlYXR1cmVEaXNj
YXJkRW5hYmxlIH0sDQo+ID4gKyAgICAgICAgeyAiZGlzY2FyZC1zZWN1cmUiLCBGZWF0dXJlRGlz
Y2FyZFNlY3VyZSB9LA0KPiA+ICsgICAgICAgIHsgImRpc2NhcmQtYWxpZ25tZW50IiwgRmVhdHVy
ZURpc2NhcmRBbGlnbm1lbnQgfSwNCj4gPiArICAgICAgICB7ICJkaXNjYXJkLWdyYW51bGFyaXR5
IiwgRmVhdHVyZURpc2NhcmRHcmFudWxhcml0eSB9DQo+ID4gKyAgICB9Ow0KPiA+ICsNCj4gPiAr
ICAgIGZvciAoVUxPTkcgSW5kZXggPSAwOyBJbmRleCA8IEFSUkFZU0laRShJbml0KTsgSW5kZXgr
Kykgew0KPiA+ICsgICAgICAgIEZlYXR1cmUgPSBJbml0W0luZGV4XS5GZWF0dXJlOw0KPiA+ICsg
ICAgICAgIEZlYXR1cmVOYW1lID0gSW5pdFtJbmRleF0uTmFtZTsNCj4gPiArICAgICAgICBEcml2
ZXJGZWF0dXJlT3ZlcnJpZGVzWyhVTE9ORylGZWF0dXJlXS5OYW1lID0gRmVhdHVyZU5hbWU7DQo+
ID4gKyAgICAgICAgRHJpdmVyRmVhdHVyZU92ZXJyaWRlc1soVUxPTkcpRmVhdHVyZV0uVmFsdWUg
PSAwOw0KPiA+ICsgICAgICAgIERyaXZlckZlYXR1cmVPdmVycmlkZXNbKFVMT05HKUZlYXR1cmVd
LkZvdW5kID0gRkFMU0U7DQo+ID4gKw0KPiA+ICsgICAgICAgIFN0YXR1cyA9IFJlZ2lzdHJ5UXVl
cnlEd29yZFZhbHVlKERyaXZlckdldFBhcmFtZXRlcnNLZXkoKSwNCj4gPiArICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGZWF0dXJlTmFtZSwNCj4gPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmVmFsdWUpOw0KPiA+ICsNCj4gPiArICAg
ICAgICBpZiAoTlRfU1VDQ0VTUyhTdGF0dXMpKSB7DQo+ID4gKyAgICAgICAgICAgIERyaXZlckZl
YXR1cmVPdmVycmlkZXNbKFVMT05HKUZlYXR1cmVdLkZvdW5kID0gVFJVRTsNCj4gPiArICAgICAg
ICAgICAgRHJpdmVyRmVhdHVyZU92ZXJyaWRlc1soVUxPTkcpRmVhdHVyZV0uVmFsdWUgPSBWYWx1
ZTsNCj4gPiArICAgICAgICB9DQo+ID4gKyAgICB9DQo+ID4gK30NCj4gPiArDQo+ID4gKy8vIFJl
dHVybiB2YWx1ZSBpbmRpY2F0ZXMgd2hldGhlciByZWcga2V5IHdhcyBmb3VuZCBhbmQgc3RvcmVk
IGluDQo+ID4gRHJpdmVyRmVhdHVyZU92ZXJyaWRlcw0KPiA+ICsvLyBXaWxsIHNldCBWYWx1ZSB0
byB0aGUgY29ycmVzcG9uZGluZyByZWcgdmFsdWUgaWYgZm91bmQsIG90aGVyd2lzZQ0KPiA+ICtp
dCB3aWxsDQo+ID4gbGVhdmUgVmFsdWUgdW50b3VjaGVkDQo+ID4gK19fY2hlY2tSZXR1cm4NCj4g
PiArX1N1Y2Nlc3NfKHJldHVybikNCj4gPiArQk9PTEVBTg0KPiA+ICtEcml2ZXJHZXRSZWdPdmVy
cmlkZSgNCj4gPiArICAgIF9faW4gWEVOVkJEX0ZFQVRVUkUgICAgICAgICAgICAgIEZlYXR1cmUs
DQo+ID4gKyAgICBfX291dCBQVUxPTkcgICAgICAgICAgICAgICAgICAgICBWYWx1ZQ0KPiA+ICsg
ICAgKQ0KPiA+ICt7DQo+ID4gKyAgICBCT09MRUFOIEZvdW5kID0gRkFMU0U7DQo+ID4gKw0KPiA+
ICsgICAgaWYgKChVTE9ORylGZWF0dXJlIDwgKFVMT05HKU51bWJlck9mRmVhdHVyZXMpIHsNCj4g
PiArICAgICAgICBGb3VuZCA9IERyaXZlckZlYXR1cmVPdmVycmlkZXNbKFVMT05HKUZlYXR1cmVd
LkZvdW5kOw0KPiA+ICsgICAgICAgICpWYWx1ZSA9IERyaXZlckZlYXR1cmVPdmVycmlkZXNbKFVM
T05HKUZlYXR1cmVdLlZhbHVlOw0KPiA+ICsgICAgfQ0KPiA+ICsNCj4gPiArICAgIHJldHVybiBG
b3VuZDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLy8gUmV0dXJuIHZhbHVlIGluZGljYXRlcyB3aGV0
aGVyIGEgZmVhdHVyZSBlbnVtIHRvIHN0cmluZyBtYXBwaW5nDQo+ID4gK3dhcw0KPiA+IGZvdW5k
DQo+ID4gKy8vIEZlYXR1cmVTdHJpbmcgd2lsbCBiZSBzZXQgdG8gcG9pbnQgdG8gdGhlIHN0cmlu
ZyBpZiBhIG1hcHBpbmcgaXMNCj4gPiArZm91bmQsDQo+ID4gb3RoZXJ3aXNlDQo+ID4gKy8vIGlz
IG5vdCBtb2RpZmllZA0KPiA+ICtfX2NoZWNrUmV0dXJuDQo+ID4gK1BDSEFSDQo+ID4gK0RyaXZl
ckdldEZlYXR1cmVOYW1lKA0KPiA+ICsgICAgX19pbiBYRU5WQkRfRkVBVFVSRSAgICAgICAgICAg
ICAgRmVhdHVyZQ0KPiA+ICsgICAgKQ0KPiA+ICt7DQo+ID4gKyAgICBQQ0hBUiBOYW1lID0gTlVM
TDsNCj4gPiArDQo+ID4gKyAgICBpZiAoKFVMT05HKUZlYXR1cmUgPCAoVUxPTkcpTnVtYmVyT2ZG
ZWF0dXJlcykgew0KPiA+ICsgICAgICAgIE5hbWUgPSBEcml2ZXJGZWF0dXJlT3ZlcnJpZGVzWyhV
TE9ORylGZWF0dXJlXS5OYW1lOw0KPiA+ICsgICAgfQ0KPiA+ICsNCj4gPiArICAgIHJldHVybiBO
YW1lOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICBIV19JTklUSUFMSVpFICAgICAgIEh3SW5pdGlhbGl6
ZTsNCj4gPg0KPiA+ICBCT09MRUFODQo+ID4gQEAgLTU0OSw2ICs2MzMsOCBAQCBEcml2ZXJFbnRy
eSgNCj4gPg0KPiA+ICAgICAgUnRsWmVyb01lbW9yeSgmSW5pdERhdGEsIHNpemVvZihJbml0RGF0
YSkpOw0KPiA+DQo+ID4gKyAgICBEcml2ZXJJbml0aWFsaXplT3ZlcnJpZGVzKCk7DQo+ID4gKw0K
PiA+ICAgICAgSW5pdERhdGEuSHdJbml0aWFsaXphdGlvbkRhdGFTaXplICAgPSAgIHNpemVvZihJ
bml0RGF0YSk7DQo+ID4gICAgICBJbml0RGF0YS5BZGFwdGVySW50ZXJmYWNlVHlwZSAgICAgICA9
ICAgSW50ZXJuYWw7DQo+ID4gICAgICBJbml0RGF0YS5Id0luaXRpYWxpemUgICAgICAgICAgICAg
ICA9ICAgSHdJbml0aWFsaXplOw0KPiA+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2RyaXZlci5o
IGIvc3JjL3hlbnZiZC9kcml2ZXIuaCBpbmRleA0KPiA+IGU3NzMwYTkuLjliZjAwMzQgMTAwNjQ0
DQo+ID4gLS0tIGEvc3JjL3hlbnZiZC9kcml2ZXIuaA0KPiA+ICsrKyBiL3NyYy94ZW52YmQvZHJp
dmVyLmgNCj4gPiBAQCAtNTAsNiArNTAsNTEgQEANCj4gPg0KPiA+ICAjZGVmaW5lIFhFTlZCRF9N
SU5fR1JBTlRfUkVGUw0KPiA+IChYRU5WQkRfTUFYX1NFR01FTlRTX1BFUl9TUkIpDQo+ID4NCj4g
PiArLy8gUmVnaXN0cnkgb3ZlcnJpZGVzIGZvciBkcml2ZXIgZmVhdHVyZXMgdHlwZWRlZiBlbnVt
DQo+ID4gK19YRU5WQkRfRkVBVFVSRSB7DQo+ID4gKyAgICBGZWF0dXJlUmVtb3ZhYmxlID0gMCwN
Cj4gPiArICAgIEZlYXR1cmVQZXJzaXN0ZW50LA0KPiA+ICsgICAgRmVhdHVyZU1heEluZGlyZWN0
U2VnbWVudHMsDQo+ID4gKyAgICBGZWF0dXJlQmFycmllciwNCj4gPiArICAgIEZlYXR1cmVGbHVz
aENhY2hlLA0KPiA+ICsgICAgRmVhdHVyZURpc2NhcmQsDQo+ID4gKyAgICBGZWF0dXJlRGlzY2Fy
ZEVuYWJsZSwNCj4gPiArICAgIEZlYXR1cmVEaXNjYXJkU2VjdXJlLA0KPiA+ICsgICAgRmVhdHVy
ZURpc2NhcmRBbGlnbm1lbnQsDQo+ID4gKyAgICBGZWF0dXJlRGlzY2FyZEdyYW51bGFyaXR5LA0K
PiA+ICsNCj4gPiArICAgIC8vIEFkZCBhbnkgbmV3IGZlYXR1cmVzIGJlZm9yZSB0aGlzIGVudW0N
Cj4gPiArICAgIE51bWJlck9mRmVhdHVyZXMNCj4gPiArfSBYRU5WQkRfRkVBVFVSRSwgKlBYRU5W
QkRfRkVBVFVSRTsNCj4gPiArDQo+ID4gKy8vIEZlYXR1cmUgT3ZlcnJpZGVzIEZyb20gUmVnaXN0
cnkgVmFsdWVzIHR5cGVkZWYgc3RydWN0DQo+ID4gK19YRU5WQkRfUkVHSVNUUllfT1ZFUlJJREUg
ew0KPiA+ICsgICAgUENIQVIgICAgICAgICAgICAgICAgICAgICAgIE5hbWU7DQo+ID4gKyAgICBV
TE9ORyAgICAgICAgICAgICAgICAgICAgICAgVmFsdWU7DQo+ID4gKyAgICBCT09MRUFOICAgICAg
ICAgICAgICAgICAgICAgRm91bmQ7DQo+ID4gK30gWEVOVkJEX1JFR0lTVFJZX09WRVJSSURFLCAq
UFhFTlZCRF9SRUdJU1RSWV9PVkVSUklERTsNCj4gPiArDQo+ID4gK2V4dGVybiBYRU5WQkRfUkVH
SVNUUllfT1ZFUlJJREUNCj4gPiBEcml2ZXJGZWF0dXJlT3ZlcnJpZGVzW051bWJlck9mRmVhdHVy
ZXNdOw0KPiA+ICsNCj4gPiArLy8gUmV0dXJuIHZhbHVlIGluZGljYXRlcyB3aGV0aGVyIHJlZyBr
ZXkgd2FzIGZvdW5kIGFuZCBzdG9yZWQgaW4NCj4gPiBEcml2ZXJGZWF0dXJlT3ZlcnJpZGVzDQo+
ID4gKy8vIFdpbGwgc2V0IFZhbHVlIHRvIHRoZSBjb3JyZXNwb25kaW5nIHJlZyB2YWx1ZSBpZiBm
b3VuZCwgb3RoZXJ3aXNlDQo+ID4gK2l0IHdpbGwNCj4gPiBsZWF2ZSBWYWx1ZSB1bnRvdWNoZWQN
Cj4gPiArX19jaGVja1JldHVybg0KPiA+ICtfU3VjY2Vzc18ocmV0dXJuKQ0KPiA+ICtleHRlcm4g
Qk9PTEVBTg0KPiA+ICtEcml2ZXJHZXRSZWdPdmVycmlkZSgNCj4gPiArICAgIF9faW4gWEVOVkJE
X0ZFQVRVUkUgICAgICAgICAgICAgIE5hbWUsDQo+ID4gKyAgICBfX291dCBQVUxPTkcgICAgICAg
ICAgICAgICAgICAgICBWYWx1ZQ0KPiA+ICsgICAgKTsNCj4gPiArDQo+ID4gKy8vIFJldHVybiB2
YWx1ZSBpbmRpY2F0ZXMgd2hldGhlciBhIGZlYXR1cmUgZW51bSB0byBzdHJpbmcgbWFwcGluZw0K
PiA+ICt3YXMNCj4gPiBmb3VuZA0KPiA+ICsvLyBGZWF0dXJlU3RyaW5nIHdpbGwgYmUgc2V0IHRv
IHBvaW50IHRvIHRoZSBzdHJpbmcgaWYgYSBtYXBwaW5nIGlzDQo+ID4gK2ZvdW5kLA0KPiA+IG90
aGVyd2lzZQ0KPiA+ICsvLyBpcyBub3QgbW9kaWZpZWQNCj4gPiArX19jaGVja1JldHVybg0KPiA+
ICtleHRlcm4gUENIQVINCj4gPiArRHJpdmVyR2V0RmVhdHVyZU5hbWUoDQo+ID4gKyAgICBfX2lu
IFhFTlZCRF9GRUFUVVJFICAgICAgICAgICAgICBGZWF0dXJlDQo+ID4gKyAgICApOw0KPiA+ICsN
Cj4gPiAgdHlwZWRlZiBzdHJ1Y3QgX1hFTlZCRF9QQVJBTUVURVJTIHsNCj4gPiAgICAgIEJPT0xF
QU4gICAgIFN5bnRoZXNpemVJbnF1aXJ5Ow0KPiA+ICAgICAgQk9PTEVBTiAgICAgUFZDRFJvbTsN
Cj4gPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9mcm9udGVuZC5jIGIvc3JjL3hlbnZiZC9mcm9u
dGVuZC5jIGluZGV4DQo+ID4gMjI3YjkzYi4uYWE4ZWQ2MiAxMDA2NDQNCj4gPiAtLS0gYS9zcmMv
eGVudmJkL2Zyb250ZW5kLmMNCj4gPiArKysgYi9zcmMveGVudmJkL2Zyb250ZW5kLmMNCj4gPiBA
QCAtNjE5LDM3ICs2MTksNjkgQEAgYWJvcnQ6DQo+ID4gIHN0YXRpYyBGT1JDRUlOTElORSBCT09M
RUFODQo+ID4gIEZyb250ZW5kUmVhZEZlYXR1cmUoDQo+ID4gICAgICBJTiAgUFhFTlZCRF9GUk9O
VEVORCAgICAgICAgICAgIEZyb250ZW5kLA0KPiA+IC0gICAgSU4gIFBDSEFSICAgICAgICAgICAg
ICAgICAgICAgICBOYW1lLA0KPiA+ICsgICAgSU4gIFhFTlZCRF9GRUFUVVJFICAgICAgICAgICAg
ICBGZWF0dXJlLA0KPiA+ICAgICAgSU4gIFBCT09MRUFOICAgICAgICAgICAgICAgICAgICBWYWx1
ZQ0KPiA+IC0gICAgKQ0KPiA+ICspDQo+ID4gIHsNCj4gPiAgICAgIE5UU1RBVFVTICAgICAgICBz
dGF0dXM7DQo+ID4gICAgICBQQ0hBUiAgICAgICAgICAgQnVmZmVyOw0KPiA+ICAgICAgVUxPTkcg
ICAgICAgICAgIE92ZXJyaWRlOw0KPiA+ICAgICAgQk9PTEVBTiAgICAgICAgIE9sZCA9ICpWYWx1
ZTsNCj4gPiArICAgIFBDSEFSICAgICAgICAgICBOYW1lOw0KPiA+ICsNCj4gPiArICAgIE5hbWUg
PSBEcml2ZXJHZXRGZWF0dXJlTmFtZShGZWF0dXJlKTsNCj4gPiArICAgIGlmIChOYW1lID09IE5V
TEwpIHsNCj4gPiArICAgICAgICBUcmFjZSgiVGFyZ2V0WyVkXSA6IENvdWxkIG5vdCBmaW5kIEZl
YXR1cmUgJXUuXG4iLA0KPiA+ICsgRnJvbnRlbmQtPlRhcmdldElkLA0KPiA+IEZlYXR1cmUpOw0K
PiA+ICsgICAgICAgIHJldHVybiBGQUxTRTsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgICAv
LyBjaGVjayByZWdpc3RyeSBmb3IgZGlzYWJsZS1vdmVycmlkZQ0KPiA+ICsgICAgaWYgKERyaXZl
ckdldFJlZ092ZXJyaWRlKEZlYXR1cmUsICZPdmVycmlkZSkpIHsNCj4gPiArICAgICAgICAqVmFs
dWUgPSAoT3ZlcnJpZGUgPT0gMCkgPyBGQUxTRSA6IFRSVUU7DQo+ID4gKyAgICB9IGVsc2Ugew0K
PiA+ICsNCj4gPiArICAgICAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUoUmVhZCwNCj4gPiArICAg
ICAgICAgICAgRnJvbnRlbmQtPlN0b3JlLA0KPiA+ICsgICAgICAgICAgICBOVUxMLA0KPiA+ICsg
ICAgICAgICAgICBGcm9udGVuZC0+QmFja2VuZFBhdGgsDQo+ID4gKyAgICAgICAgICAgIE5hbWUs
DQo+ID4gKyAgICAgICAgICAgICZCdWZmZXIpOw0KPiA+ICsgICAgICAgIGlmICghTlRfU1VDQ0VT
UyhzdGF0dXMpKQ0KPiA+ICsgICAgICAgICAgICByZXR1cm4gRkFMU0U7ICAgLy8gbm8gdmFsdWUs
IHVuY2hhbmdlZA0KPiA+ICsNCj4gPiArICAgICAgICAqVmFsdWUgPSAhIShzdHJ0b3VsKEJ1ZmZl
ciwgTlVMTCwgMTApKTsNCj4gPiArICAgICAgICBYRU5CVVNfU1RPUkUoRnJlZSwNCj4gPiArICAg
ICAgICAgICAgRnJvbnRlbmQtPlN0b3JlLA0KPiA+ICsgICAgICAgICAgICBCdWZmZXIpOw0KPiA+
ICsgICAgfQ0KPiA+ICsNCj4gPiArICAgIHJldHVybiBPbGQgIT0gKlZhbHVlOw0KPiA+ICt9DQo+
ID4gKw0KPiA+ICtzdGF0aWMgRk9SQ0VJTkxJTkUgQk9PTEVBTg0KPiA+ICtGcm9udGVuZFJlYWRE
aXNrRmVhdHVyZSgNCj4gPiArICAgIElOICBQWEVOVkJEX0ZST05URU5EICAgICAgICAgICAgRnJv
bnRlbmQsDQo+ID4gKyAgICBJTiAgUENIQVIgICAgICAgICAgICAgICAgICAgICAgIE5hbWUsDQo+
ID4gKyAgICBJTiAgUEJPT0xFQU4gICAgICAgICAgICAgICAgICAgIFZhbHVlDQo+ID4gKykNCj4g
PiArew0KPiA+ICsgICAgTlRTVEFUVVMgICAgICAgIHN0YXR1czsNCj4gPiArICAgIFBDSEFSICAg
ICAgICAgICBCdWZmZXI7DQo+ID4gKyAgICBCT09MRUFOICAgICAgICAgT2xkID0gKlZhbHVlOw0K
PiA+DQo+ID4gICAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUoUmVhZCwNCj4gPiAtICAgICAgICAg
ICAgICAgICAgICAgICAgICBGcm9udGVuZC0+U3RvcmUsDQo+ID4gLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgTlVMTCwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9udGVuZC0+
QmFja2VuZFBhdGgsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSwNCj4gPiAt
ICAgICAgICAgICAgICAgICAgICAgICAgICAmQnVmZmVyKTsNCj4gPiArICAgICAgICBGcm9udGVu
ZC0+U3RvcmUsDQo+ID4gKyAgICAgICAgTlVMTCwNCj4gPiArICAgICAgICBGcm9udGVuZC0+QmFj
a2VuZFBhdGgsDQo+ID4gKyAgICAgICAgTmFtZSwNCj4gPiArICAgICAgICAmQnVmZmVyKTsNCj4g
PiAgICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQ0KPiA+ICAgICAgICAgIHJldHVybiBGQUxT
RTsgICAvLyBubyB2YWx1ZSwgdW5jaGFuZ2VkDQo+ID4NCj4gPiAgICAgICpWYWx1ZSA9ICEhKHN0
cnRvdWwoQnVmZmVyLCBOVUxMLCAxMCkpOw0KPiA+ICAgICAgWEVOQlVTX1NUT1JFKEZyZWUsDQo+
ID4gLSAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQtPlN0b3JlLA0KPiA+IC0gICAgICAgICAg
ICAgICAgICAgIEJ1ZmZlcik7DQo+ID4gLQ0KPiA+IC0gICAgLy8gY2hlY2sgcmVnaXN0cnkgZm9y
IGRpc2FibGUtb3ZlcnJpZGUNCj4gPiAtICAgIHN0YXR1cyA9IFJlZ2lzdHJ5UXVlcnlEd29yZFZh
bHVlKERyaXZlckdldFBhcmFtZXRlcnNLZXkoKSwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTmFtZSwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJk92ZXJyaWRlKTsNCj4gPiAtICAgIGlmIChOVF9TVUNDRVNTKHN0YXR1cykpIHsNCj4g
PiAtICAgICAgICBpZiAoT3ZlcnJpZGUgPT0gMCkNCj4gPiAtICAgICAgICAgICAgKlZhbHVlID0g
RkFMU0U7DQo+ID4gLSAgICB9DQo+ID4gKyAgICAgICAgRnJvbnRlbmQtPlN0b3JlLA0KPiA+ICsg
ICAgICAgIEJ1ZmZlcik7DQo+ID4NCj4gPiAgICAgIHJldHVybiBPbGQgIT0gKlZhbHVlOw0KPiA+
ICB9DQo+ID4gQEAgLTY1NywzOSArNjg5LDY5IEBAIEZyb250ZW5kUmVhZEZlYXR1cmUoICBzdGF0
aWMgRk9SQ0VJTkxJTkUNCj4gQk9PTEVBTg0KPiA+IEZyb250ZW5kUmVhZFZhbHVlMzIoDQo+ID4g
ICAgICBJTiAgUFhFTlZCRF9GUk9OVEVORCAgICAgICAgICAgIEZyb250ZW5kLA0KPiA+IC0gICAg
SU4gIFBDSEFSICAgICAgICAgICAgICAgICAgICAgICBOYW1lLA0KPiA+ICsgICAgSU4gIFhFTlZC
RF9GRUFUVVJFICAgICAgICAgICAgICBGZWF0dXJlLA0KPiA+ICAgICAgSU4gIEJPT0xFQU4gICAg
ICAgICAgICAgICAgICAgICBBbGxvd092ZXJyaWRlLA0KPiA+ICAgICAgSU4gIFBVTE9ORyAgICAg
ICAgICAgICAgICAgICAgICBWYWx1ZQ0KPiA+IC0gICAgKQ0KPiA+ICspDQo+ID4gIHsNCj4gPiAg
ICAgIE5UU1RBVFVTICAgICAgICBzdGF0dXM7DQo+ID4gICAgICBQQ0hBUiAgICAgICAgICAgQnVm
ZmVyOw0KPiA+ICAgICAgVUxPTkcgICAgICAgICAgIE92ZXJyaWRlOw0KPiA+ICAgICAgVUxPTkcg
ICAgICAgICAgIE9sZCA9ICpWYWx1ZTsNCj4gPiArICAgIFBTVFIgICAgICAgICAgICBOYW1lOw0K
PiA+ICsNCj4gPiArICAgIE5hbWUgPSBEcml2ZXJHZXRGZWF0dXJlTmFtZShGZWF0dXJlKTsNCj4g
PiArICAgIGlmIChOYW1lID09IE5VTEwpIHsNCj4gPiArICAgICAgICBUcmFjZSgiVGFyZ2V0WyVk
XSA6IENvdWxkIG5vdCBmaW5kIEZlYXR1cmUgJXUuXG4iLA0KPiA+ICsgRnJvbnRlbmQtPlRhcmdl
dElkLA0KPiA+IEZlYXR1cmUpOw0KPiA+ICsgICAgICAgIHJldHVybiBGQUxTRTsNCj4gPiArICAg
IH0NCj4gPiArDQo+ID4gKyAgICAvLyBjaGVjayByZWdpc3RyeSBmb3IgZGlzYWJsZS1vdmVycmlk
ZQ0KPiA+ICsgICAgaWYgKEFsbG93T3ZlcnJpZGUgJiYgRHJpdmVyR2V0UmVnT3ZlcnJpZGUoRmVh
dHVyZSwgJk92ZXJyaWRlKSkgew0KPiA+ICsgICAgICAgICpWYWx1ZSA9IE92ZXJyaWRlOw0KPiA+
ICsgICAgfSBlbHNlIHsNCj4gPiArICAgICAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUoUmVhZCwN
Cj4gPiArICAgICAgICAgICAgRnJvbnRlbmQtPlN0b3JlLA0KPiA+ICsgICAgICAgICAgICBOVUxM
LA0KPiA+ICsgICAgICAgICAgICBGcm9udGVuZC0+QmFja2VuZFBhdGgsDQo+ID4gKyAgICAgICAg
ICAgIE5hbWUsDQo+ID4gKyAgICAgICAgICAgICZCdWZmZXIpOw0KPiA+ICsgICAgICAgIGlmICgh
TlRfU1VDQ0VTUyhzdGF0dXMpKQ0KPiA+ICsgICAgICAgICAgICByZXR1cm4gRkFMU0U7ICAgLy8g
bm8gdmFsdWUsIHVuY2hhbmdlZA0KPiA+ICsNCj4gPiArICAgICAgICAqVmFsdWUgPSBzdHJ0b3Vs
KEJ1ZmZlciwgTlVMTCwgMTApOw0KPiA+ICsgICAgICAgIFhFTkJVU19TVE9SRShGcmVlLA0KPiA+
ICsgICAgICAgICAgICBGcm9udGVuZC0+U3RvcmUsDQo+ID4gKyAgICAgICAgICAgIEJ1ZmZlcik7
DQo+ID4gKyAgICB9DQo+ID4gKw0KPiA+ICsgICAgcmV0dXJuIE9sZCAhPSAqVmFsdWU7DQo+ID4g
K30NCj4gPiArDQo+ID4gK3N0YXRpYyBGT1JDRUlOTElORSBCT09MRUFODQo+ID4gK0Zyb250ZW5k
UmVhZERpc2tWYWx1ZTMyKA0KPiA+ICsgICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQgICAgICAgICAg
ICBGcm9udGVuZCwNCj4gPiArICAgIElOICBQQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgTmFt
ZSwNCj4gPiArICAgIElOICBQVUxPTkcgICAgICAgICAgICAgICAgICAgICAgVmFsdWUNCj4gPiAr
KQ0KPiA+ICt7DQo+ID4gKyAgICBOVFNUQVRVUyAgICAgICAgc3RhdHVzOw0KPiA+ICsgICAgUENI
QVIgICAgICAgICAgIEJ1ZmZlcjsNCj4gPiArICAgIFVMT05HICAgICAgICAgICBPbGQgPSAqVmFs
dWU7DQo+ID4NCj4gPiAgICAgIHN0YXR1cyA9IFhFTkJVU19TVE9SRShSZWFkLA0KPiA+IC0gICAg
ICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kLT5TdG9yZSwNCj4gPiAtICAgICAgICAgICAg
ICAgICAgICAgICAgICBOVUxMLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250
ZW5kLT5CYWNrZW5kUGF0aCwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lLA0K
PiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICZCdWZmZXIpOw0KPiA+ICsgICAgICAgIEZy
b250ZW5kLT5TdG9yZSwNCj4gPiArICAgICAgICBOVUxMLA0KPiA+ICsgICAgICAgIEZyb250ZW5k
LT5CYWNrZW5kUGF0aCwNCj4gPiArICAgICAgICBOYW1lLA0KPiA+ICsgICAgICAgICZCdWZmZXIp
Ow0KPiA+ICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ID4gICAgICAgICAgcmV0dXJu
IEZBTFNFOyAgIC8vIG5vIHZhbHVlLCB1bmNoYW5nZWQNCj4gPg0KPiA+ICAgICAgKlZhbHVlID0g
c3RydG91bChCdWZmZXIsIE5VTEwsIDEwKTsNCj4gPiAgICAgIFhFTkJVU19TVE9SRShGcmVlLA0K
PiA+IC0gICAgICAgICAgICAgICAgICAgIEZyb250ZW5kLT5TdG9yZSwNCj4gPiAtICAgICAgICAg
ICAgICAgICAgICBCdWZmZXIpOw0KPiA+IC0NCj4gPiAtICAgIC8vIGNoZWNrIHJlZ2lzdHJ5IGZv
ciBkaXNhYmxlLW92ZXJyaWRlDQo+ID4gLSAgICBpZiAoQWxsb3dPdmVycmlkZSkgew0KPiA+IC0g
ICAgICAgIHN0YXR1cyA9IFJlZ2lzdHJ5UXVlcnlEd29yZFZhbHVlKERyaXZlckdldFBhcmFtZXRl
cnNLZXkoKSwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5h
bWUsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmT3ZlcnJp
ZGUpOw0KPiA+IC0gICAgICAgIGlmIChOVF9TVUNDRVNTKHN0YXR1cykpIHsNCj4gPiAtICAgICAg
ICAgICAgKlZhbHVlID0gT3ZlcnJpZGU7DQo+ID4gLSAgICAgICAgfQ0KPiA+IC0gICAgfQ0KPiA+
ICsgICAgICAgIEZyb250ZW5kLT5TdG9yZSwNCj4gPiArICAgICAgICBCdWZmZXIpOw0KPiA+DQo+
ID4gICAgICByZXR1cm4gT2xkICE9ICpWYWx1ZTsNCj4gPiAgfQ0KPiA+IEBAIC03NTEsMTcgKzgx
MywxNCBAQCBfX1JlYWREaXNrSW5mbygNCj4gPiAgew0KPiA+ICAgICAgQk9PTEVBTiBDaGFuZ2Vk
ID0gRkFMU0U7DQo+ID4NCj4gPiAtICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFkVmFsdWUzMihG
cm9udGVuZCwNCj4gPiArICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFkRGlza1ZhbHVlMzIoRnJv
bnRlbmQsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5mbyIsDQo+
ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwNCj4gPiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uRGlza0luZm8p
Ow0KPiA+IC0gICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWRWYWx1ZTMyKEZyb250ZW5kLA0KPiA+
ICsgICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWREaXNrVmFsdWUzMihGcm9udGVuZCwNCj4gPiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWN0b3Itc2l6ZSIsDQo+ID4gLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwNCj4gPiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uU2VjdG9yU2l6ZSk7DQo+
ID4gLSAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZFZhbHVlMzIoRnJvbnRlbmQsDQo+ID4gKyAg
ICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZERpc2tWYWx1ZTMyKEZyb250ZW5kLA0KPiA+ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBoeXNpY2FsLXNlY3Rvci1zaXplIiwNCj4g
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLA0KPiA+ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5EaXNrSW5mby5QaHlzU2VjdG9y
U2l6ZSk7DQo+ID4gICAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZFZhbHVlNjQoRnJvbnRlbmQs
DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VjdG9ycyIsIEBAIC04
MDUsMTQgKzg2NCwxNCBAQA0KPiA+IEZyb250ZW5kUmVhZEZlYXR1cmVzKA0KPiA+ICAgICAgQk9P
TEVBTiBDaGFuZ2VkID0gRkFMU0U7DQo+ID4NCj4gPiAgICAgIENoYW5nZWQgfD0gRnJvbnRlbmRS
ZWFkRmVhdHVyZShGcm9udGVuZCwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAicmVtb3ZhYmxlIiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBGZWF0dXJlUmVtb3ZhYmxlLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZGcm9udGVuZC0+Q2Fwcy5SZW1vdmFibGUpOw0KPiA+ICAgICAgQ2hhbmdlZCB8PSBGcm9u
dGVuZFJlYWRWYWx1ZTMyKEZyb250ZW5kLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJmZWF0dXJlLW1heC1pbmRpcmVjdC1zZWdtZW50cyIsDQo+ID4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVhdHVyZU1heEluZGlyZWN0U2VnbWVudHMsDQo+
ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVFJVRSwNCj4gPiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPkZlYXR1cmVzLkluZGlyZWN0
KTsNCj4gPiAgICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFkRmVhdHVyZShGcm9udGVuZCwNCj4g
PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmVhdHVyZS1wZXJzaXN0ZW50
IiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGZWF0dXJlUGVyc2lz
dGVudCwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQt
PkZlYXR1cmVzLlBlcnNpc3RlbnQpOw0KPiA+DQo+ID4gICAgICBpZiAoIUNoYW5nZWQpDQo+ID4g
QEAgLTg0MSwzMSArOTAwLDMxIEBAIEZyb250ZW5kUmVhZERpc2tJbmZvKA0KPiA+ICAgICAgQk9P
TEVBTiBEaXNjYXJkRW5hYmxlID0gVFJVRTsNCj4gPg0KPiA+ICAgICAgQ2hhbmdlZCB8PSBGcm9u
dGVuZFJlYWRGZWF0dXJlKEZyb250ZW5kLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJmZWF0dXJlLWJhcnJpZXIiLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEZlYXR1cmVCYXJyaWVyLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uQmFycmllcik7DQo+ID4gICAgICBDaGFu
Z2VkIHw9IEZyb250ZW5kUmVhZEZlYXR1cmUoRnJvbnRlbmQsDQo+ID4gLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImZlYXR1cmUtZmx1c2gtY2FjaGUiLA0KPiA+ICsgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVGbHVzaENhY2hlLA0KPiA+ICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uRmx1c2hD
YWNoZSk7DQo+ID4NCj4gPiAgICAgIC8vIGRpc2NhcmQgcmVsYXRlZA0KPiA+ICAgICAgRnJvbnRl
bmRSZWFkRmVhdHVyZShGcm9udGVuZCwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgImZl
YXR1cmUtZGlzY2FyZCIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVEaXNj
YXJkLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAmRGlzY2FyZEZlYXR1cmUpOw0KPiA+
ICAgICAgRnJvbnRlbmRSZWFkRmVhdHVyZShGcm9udGVuZCwNCj4gPiAtICAgICAgICAgICAgICAg
ICAgICAgICAgImRpc2NhcmQtZW5hYmxlIiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg
RmVhdHVyZURpc2NhcmRFbmFibGUsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICZEaXNj
YXJkRW5hYmxlKTsNCj4gPiAgICAgIERpc2NhcmQgPSBEaXNjYXJkRmVhdHVyZSAmJiBEaXNjYXJk
RW5hYmxlOw0KPiA+ICAgICAgQ2hhbmdlZCB8PSAoRGlzY2FyZCAhPSBGcm9udGVuZC0+RGlza0lu
Zm8uRGlzY2FyZCk7DQo+ID4gICAgICBGcm9udGVuZC0+RGlza0luZm8uRGlzY2FyZCA9IERpc2Nh
cmQ7DQo+ID4gICAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZEZlYXR1cmUoRnJvbnRlbmQsDQo+
ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpc2NhcmQtc2VjdXJlIiwN
Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGZWF0dXJlRGlzY2FyZFNl
Y3VyZSwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQt
PkRpc2tJbmZvLkRpc2NhcmRTZWN1cmUpOw0KPiA+ICAgICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJl
YWRWYWx1ZTMyKEZyb250ZW5kLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJkaXNjYXJkLWFsaWdubWVudCIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgRmVhdHVyZURpc2NhcmRBbGlnbm1lbnQsDQo+ID4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVFJVRSwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmRnJvbnRlbmQtPkRpc2tJbmZvLkRpc2NhcmRBbGlnbm1lbnQpOw0KPiA+ICAgICAg
Q2hhbmdlZCB8PSBGcm9udGVuZFJlYWRWYWx1ZTMyKEZyb250ZW5kLA0KPiA+IC0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJkaXNjYXJkLWdyYW51bGFyaXR5IiwNCj4gPiArICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGZWF0dXJlRGlzY2FyZEdyYW51bGFyaXR5
LA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsDQo+ID4NCj4g
PiAmRnJvbnRlbmQtPkRpc2tJbmZvLkRpc2NhcmRHcmFudWxhcml0eSk7DQo+ID4NCj4gPiBAQCAt
MTIzOCw2ICsxMjk3LDggQEAgRnJvbnRlbmREaXNhYmxlKA0KPiA+DQo+ID4NCj4gPg0KPiAvLz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
PiA+ID09PT09PT09PT09PT09PT09PT09DQo+ID4gIC8vIEluaXQvVGVybQ0KPiA+ICtfSVJRTF9y
ZXF1aXJlc18oRElTUEFUQ0hfTEVWRUwpDQo+ID4gK19SZXF1aXJlc19sb2NrX2hlbGRfKEZyb250
ZW5kLT5TdGF0ZUxvY2spDQo+ID4gIHN0YXRpYyBERUNMU1BFQ19OT0lOTElORSBOVFNUQVRVUw0K
PiA+ICBfX0Zyb250ZW5kU2V0U3RhdGUoDQo+ID4gICAgICBfX2luICBQWEVOVkJEX0ZST05URU5E
ICAgICAgICBGcm9udGVuZCwNCj4gPiBAQCAtMTQxMyw2ICsxNDc0LDcgQEAgRnJvbnRlbmRTdXNw
ZW5kTGF0ZUNhbGxiYWNrKA0KPiA+ICAgICAgUGRvUHJlUmVzdW1lKEZyb250ZW5kLT5QZG8pOw0K
PiA+DQo+ID4gICAgICAvLyBkb250IGFjcXVpcmUgc3RhdGUgbG9jayAtIGNhbGxlZCBhdCBESVNQ
QVRDSCBvbiAxIHZDUFUgd2l0aA0KPiA+IGludGVycnVwdHMgZW5hYmxlZA0KPiA+ICsjcHJhZ21h
IHdhcm5pbmcoc3VwcHJlc3M6IDI2MTEwKSAvLyB3YXJuaW5nIEMyNjExMDogQ2FsbGVyIGZhaWxp
bmcgdG8NCj4gPiAraG9sZA0KPiA+IGxvY2sgPGxvY2s+IGJlZm9yZSBjYWxsaW5nIGZ1bmN0aW9u
IDxmdW5jPi4NCj4gPiAgICAgIFN0YXR1cyA9IF9fRnJvbnRlbmRTZXRTdGF0ZShGcm9udGVuZCwg
WEVOVkJEX0NMT1NFRCk7DQo+ID4gICAgICBpZiAoIU5UX1NVQ0NFU1MoU3RhdHVzKSkgew0KPiA+
ICAgICAgICAgIEVycm9yKCJUYXJnZXRbJWRdIDogU2V0U3RhdGUgQ0xPU0VEICglMDh4KVxuIiwN
Cj4gPiBGcm9udGVuZC0+VGFyZ2V0SWQsIFN0YXR1cyk7IEBAIC0xNDIwLDYgKzE0ODIsNyBAQA0K
PiA+IEZyb250ZW5kU3VzcGVuZExhdGVDYWxsYmFjaygNCj4gPiAgICAgIH0NCj4gPg0KPiA+ICAg
ICAgLy8gZG9udCBhY3F1aXJlIHN0YXRlIGxvY2sgLSBjYWxsZWQgYXQgRElTUEFUQ0ggb24gMSB2
Q1BVIHdpdGgNCj4gPiBpbnRlcnJ1cHRzIGVuYWJsZWQNCj4gPiArI3ByYWdtYSB3YXJuaW5nKHN1
cHByZXNzOiAyNjExMCkgLy8gd2FybmluZyBDMjYxMTA6IENhbGxlciBmYWlsaW5nIHRvDQo+ID4g
K2hvbGQNCj4gPiBsb2NrIDxsb2NrPiBiZWZvcmUgY2FsbGluZyBmdW5jdGlvbiA8ZnVuYz4uDQo+
ID4gICAgICBTdGF0dXMgPSBfX0Zyb250ZW5kU2V0U3RhdGUoRnJvbnRlbmQsIFN0YXRlKTsNCj4g
PiAgICAgIGlmICghTlRfU1VDQ0VTUyhTdGF0dXMpKSB7DQo+ID4gICAgICAgICAgRXJyb3IoIlRh
cmdldFslZF0gOiBTZXRTdGF0ZSAlcyAoJTA4eClcbiIsDQo+ID4gRnJvbnRlbmQtPlRhcmdldElk
LCBfX1hlbnZiZFN0YXRlTmFtZShTdGF0ZSksIFN0YXR1cyk7IGRpZmYgLS1naXQNCj4gPiBhL3Ny
Yy94ZW52YmQvcmVnaXN0cnkuYyBiL3NyYy94ZW52YmQvcmVnaXN0cnkuYyBpbmRleCA5Y2VmZmE1
Li44ODVhYjZkDQo+ID4gMTAwNjQ0DQo+ID4gLS0tIGEvc3JjL3hlbnZiZC9yZWdpc3RyeS5jDQo+
ID4gKysrIGIvc3JjL3hlbnZiZC9yZWdpc3RyeS5jDQo+ID4gQEAgLTg5LDYgKzg5LDcgQEAgUmVn
aXN0cnlUZWFyZG93bigNCj4gPiAgICAgIFJlZ2lzdHJ5UGF0aC5NYXhpbXVtTGVuZ3RoID0gUmVn
aXN0cnlQYXRoLkxlbmd0aCA9IDA7ICB9DQo+ID4NCj4gPiArX19kcnZfcmVxdWlyZXNJUlFMKFBB
U1NJVkVfTEVWRUwpDQo+ID4gIE5UU1RBVFVTDQo+ID4gIFJlZ2lzdHJ5T3BlbktleSgNCj4gPiAg
ICAgIElOICBIQU5ETEUgICAgICAgICAgUGFyZW50LA0KPiA+IEBAIC0xMTgsNiArMTE5LDcgQEAg
ZmFpbDE6DQo+ID4gICAgICByZXR1cm4gc3RhdHVzOw0KPiA+ICB9DQo+ID4NCj4gPiArX19kcnZf
cmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ID4gIHN0YXRpYyBOVFNUQVRVUw0KPiA+ICBS
ZWdpc3RyeU9wZW5Sb290KA0KPiA+ICAgICAgSU4gIFBXQ0hBUiAgICAgICAgICBQYXRoLA0KPiA+
IEBAIC0xNTEsNiArMTUzLDcgQEAgZmFpbDE6DQo+ID4gICAgICByZXR1cm4gc3RhdHVzOw0KPiA+
ICB9DQo+ID4NCj4gPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ID4gIE5U
U1RBVFVTDQo+ID4gIFJlZ2lzdHJ5Q3JlYXRlS2V5KA0KPiA+ICAgICAgSU4gIEhBTkRMRSAgICAg
ICAgICBSb290LA0KPiA+IEBAIC0yNTAsNiArMjUzLDcgQEAgZmFpbDE6DQo+ID4gICAgICByZXR1
cm4gc3RhdHVzOw0KPiA+ICB9DQo+ID4NCj4gPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVf
TEVWRUwpDQo+ID4gIE5UU1RBVFVTDQo+ID4gIFJlZ2lzdHJ5T3BlblNlcnZpY2VLZXkoDQo+ID4g
ICAgICBJTiAgQUNDRVNTX01BU0sgICAgIERlc2lyZWRBY2Nlc3MsDQo+ID4gQEAgLTI1OSw2ICsy
NjMsNyBAQCBSZWdpc3RyeU9wZW5TZXJ2aWNlS2V5KA0KPiA+ICAgICAgcmV0dXJuIFJlZ2lzdHJ5
T3BlbktleShOVUxMLCAmUmVnaXN0cnlQYXRoLCBEZXNpcmVkQWNjZXNzLCBLZXkpOw0KPiA+IH0N
Cj4gPg0KPiA+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gPiAgTlRTVEFU
VVMNCj4gPiAgUmVnaXN0cnlDcmVhdGVTZXJ2aWNlS2V5KA0KPiA+ICAgICAgT1VUIFBIQU5ETEUg
ICAgICAgICBLZXkNCj4gPiBAQCAtMjY3LDYgKzI3Miw3IEBAIFJlZ2lzdHJ5Q3JlYXRlU2Vydmlj
ZUtleSgNCj4gPiAgICAgIHJldHVybiBSZWdpc3RyeUNyZWF0ZUtleShOVUxMLCAmUmVnaXN0cnlQ
YXRoLA0KPiA+IFJFR19PUFRJT05fTk9OX1ZPTEFUSUxFLCBLZXkpOyAgfQ0KPiA+DQo+ID4gK19f
ZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiA+ICBOVFNUQVRVUw0KPiA+ICBSZWdp
c3RyeU9wZW5Tb2Z0d2FyZUtleSgNCj4gPiAgICAgIElOICBQREVWSUNFX09CSkVDVCAgRGV2aWNl
T2JqZWN0LCBAQCAtMjg5LDYgKzI5NSw3IEBAIGZhaWwxOg0KPiA+ICAgICAgcmV0dXJuIHN0YXR1
czsNCj4gPiAgfQ0KPiA+DQo+ID4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0K
PiA+ICBOVFNUQVRVUw0KPiA+ICBSZWdpc3RyeU9wZW5IYXJkd2FyZUtleSgNCj4gPiAgICAgIElO
ICBQREVWSUNFX09CSkVDVCAgICAgIERldmljZU9iamVjdCwNCj4gPiBAQCAtMzY2LDYgKzM3Myw3
IEBAIGZhaWwxOg0KPiA+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4gPiAgfQ0KPiA+DQo+ID4gK19f
ZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiA+ICBOVFNUQVRVUw0KPiA+ICBSZWdp
c3RyeU9wZW5TdWJLZXkoDQo+ID4gICAgICBJTiAgUEhBTkRMRSAgICAgICAgIEtleSwNCj4gPiBA
QCAtMzk5LDYgKzQwNyw3IEBAIGZhaWwxOg0KPiA+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4gPiAg
fQ0KPiA+DQo+ID4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiA+ICBOVFNU
QVRVUw0KPiA+ICBSZWdpc3RyeUNyZWF0ZVN1YktleSgNCj4gPiAgICAgIElOICBQSEFORExFICAg
ICAgICAgS2V5LA0KPiA+IEBAIC00MzIsNiArNDQxLDcgQEAgZmFpbDE6DQo+ID4gICAgICByZXR1
cm4gc3RhdHVzOw0KPiA+ICB9DQo+ID4NCj4gPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVf
TEVWRUwpDQo+ID4gIE5UU1RBVFVTDQo+ID4gIFJlZ2lzdHJ5RGVsZXRlU3ViS2V5KA0KPiA+ICAg
ICAgSU4gIFBIQU5ETEUgICAgICAgICBLZXksDQo+ID4gQEAgLTQ3NSw2ICs0ODUsNyBAQCBmYWls
MToNCj4gPiAgICAgIHJldHVybiBzdGF0dXM7DQo+ID4gIH0NCj4gPg0KPiA+ICtfX2Rydl9yZXF1
aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gPiAgTlRTVEFUVVMNCj4gPiAgUmVnaXN0cnlFbnVt
ZXJhdGVTdWJLZXlzKA0KPiA+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICAgICAgS2V5LA0KPiA+
IEBAIC01NzksNiArNTkwLDcgQEAgZmFpbDE6DQo+ID4gICAgICByZXR1cm4gc3RhdHVzOw0KPiA+
ICB9DQo+ID4NCj4gPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ID4gIE5U
U1RBVFVTDQo+ID4gIFJlZ2lzdHJ5RW51bWVyYXRlVmFsdWVzKA0KPiA+ICAgICAgSU4gIEhBTkRM
RSAgICAgICAgICAgICAgICAgICAgICBLZXksDQo+ID4gQEAgLTY3Nyw2ICs2ODksNyBAQCBmYWls
MToNCj4gPiAgICAgIHJldHVybiBzdGF0dXM7DQo+ID4gIH0NCj4gPg0KPiA+ICtfX2Rydl9yZXF1
aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gPiAgTlRTVEFUVVMNCj4gPiAgUmVnaXN0cnlEZWxl
dGVWYWx1ZSgNCj4gPiAgICAgIElOICBQSEFORExFICAgICAgICAgS2V5LA0KPiA+IEBAIC03MTAs
NiArNzIzLDcgQEAgZmFpbDE6DQo+ID4gICAgICByZXR1cm4gc3RhdHVzOw0KPiA+ICB9DQo+ID4N
Cj4gPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ID4gIE5UU1RBVFVTDQo+
ID4gIFJlZ2lzdHJ5UXVlcnlEd29yZFZhbHVlKA0KPiA+ICAgICAgSU4gIEhBTkRMRSAgICAgICAg
ICAgICAgICAgICAgICBLZXksDQo+ID4gQEAgLTc4MCw2ICs3OTQsNyBAQCBmYWlsMToNCj4gPiAg
ICAgIHJldHVybiBzdGF0dXM7DQo+ID4gIH0NCj4gPg0KPiA+ICtfX2Rydl9yZXF1aXJlc0lSUUwo
UEFTU0lWRV9MRVZFTCkNCj4gPiAgTlRTVEFUVVMNCj4gPiAgUmVnaXN0cnlVcGRhdGVEd29yZFZh
bHVlKA0KPiA+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICAgICAgICAgICAgICBLZXksDQo+ID4g
QEAgLTgzOCw2ICs4NTMsNyBAQCBmYWlsMToNCj4gPiAgICAgIHJldHVybiBzdGF0dXM7DQo+ID4g
IH0NCj4gPg0KPiA+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gPiAgc3Rh
dGljIFBBTlNJX1NUUklORw0KPiA+ICBSZWdpc3RyeVN6VG9BbnNpKA0KPiA+ICAgICAgSU4gIFBX
Q0hBUiAgICAgIEJ1ZmZlcg0KPiA+IEBAIC04NzcsNiArODkzLDcgQEAgZmFpbDE6DQo+ID4gICAg
ICByZXR1cm4gTlVMTDsNCj4gPiAgfQ0KPiA+DQo+ID4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNT
SVZFX0xFVkVMKQ0KPiA+ICBzdGF0aWMgUEFOU0lfU1RSSU5HDQo+ID4gIFJlZ2lzdHJ5TXVsdGlT
elRvQW5zaSgNCj4gPiAgICAgIElOICBQV0NIQVIgICAgICBCdWZmZXINCj4gPiBAQCAtOTM5LDYg
Kzk1Niw3IEBAIGZhaWwxOg0KPiA+ICAgICAgcmV0dXJuIE5VTEw7DQo+ID4gIH0NCj4gPg0KPiA+
ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gPiAgTlRTVEFUVVMNCj4gPiAg
UmVnaXN0cnlRdWVyeVN6VmFsdWUoDQo+ID4gICAgICBJTiAgSEFORExFICAgICAgICAgICAgICAg
ICAgICAgIEtleSwNCj4gPiBAQCAtMTAyNiw2ICsxMDQ0LDcgQEAgZmFpbDE6DQo+ID4gICAgICBy
ZXR1cm4gc3RhdHVzOw0KPiA+ICB9DQo+ID4NCj4gPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJ
VkVfTEVWRUwpDQo+ID4gIE5UU1RBVFVTDQo+ID4gIFJlZ2lzdHJ5UXVlcnlCaW5hcnlWYWx1ZSgN
Cj4gPiAgICAgIElOICBIQU5ETEUgICAgICAgICAgICAgICAgICAgICAgS2V5LA0KPiA+IEBAIC0x
MTExLDYgKzExMzAsNyBAQCBmYWlsMToNCj4gPiAgICAgIHJldHVybiBzdGF0dXM7DQo+ID4gIH0N
Cj4gPg0KPiA+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gPiAgTlRTVEFU
VVMNCj4gPiAgUmVnaXN0cnlVcGRhdGVCaW5hcnlWYWx1ZSgNCj4gPiAgICAgIElOICBIQU5ETEUg
ICAgICAgICAgICAgICAgICAgICAgS2V5LA0KPiA+IEBAIC0xMTcwLDYgKzExOTAsNyBAQCBmYWls
MToNCj4gPiAgICAgIHJldHVybiBzdGF0dXM7DQo+ID4gIH0NCj4gPg0KPiA+ICtfX2Rydl9yZXF1
aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gPiAgTlRTVEFUVVMNCj4gPiAgUmVnaXN0cnlRdWVy
eUtleU5hbWUoDQo+ID4gICAgICBJTiAgSEFORExFICAgICAgICAgICAgICBLZXksDQo+ID4gQEAg
LTEyMjUsNiArMTI0Niw3IEBAIGZhaWwxOg0KPiA+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4gPiAg
fQ0KPiA+DQo+ID4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiA+ICBOVFNU
QVRVUw0KPiA+ICBSZWdpc3RyeVF1ZXJ5U3lzdGVtU3RhcnRPcHRpb24oDQo+ID4gICAgICBJTiAg
Y29uc3QgQ0hBUiAgICAgICAgICAgICAgICAgICpQcmVmaXgsDQo+ID4gQEAgLTEzMDMsNiArMTMy
NSw3IEBAIGZhaWwxOg0KPiA+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4gPiAgfQ0KPiA+DQo+ID4g
K19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiA+ICBzdGF0aWMgUEtFWV9WQUxV
RV9QQVJUSUFMX0lORk9STUFUSU9OICBSZWdpc3RyeUFuc2lUb1N6KA0KPiA+ICAgICAgUEFOU0lf
U1RSSU5HICAgICAgICAgICAgICAgICAgICBBbnNpDQo+ID4gQEAgLTEzNDIsNiArMTM2NSw3IEBA
IGZhaWwxOg0KPiA+ICAgICAgcmV0dXJuIE5VTEw7DQo+ID4gIH0NCj4gPg0KPiA+ICtfX2Rydl9y
ZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gPiAgc3RhdGljIFBLRVlfVkFMVUVfUEFSVElB
TF9JTkZPUk1BVElPTiAgUmVnaXN0cnlBbnNpVG9NdWx0aVN6KA0KPiA+ICAgICAgUEFOU0lfU1RS
SU5HICAgICAgICAgICAgICAgICAgICBBbnNpDQo+ID4gQEAgLTEzOTUsNiArMTQxOSw3IEBAIGZh
aWwxOg0KPiA+ICAgICAgcmV0dXJuIE5VTEw7DQo+ID4gIH0NCj4gPg0KPiA+ICtfX2Rydl9yZXF1
aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gPiAgTlRTVEFUVVMNCj4gPiAgUmVnaXN0cnlVcGRh
dGVTelZhbHVlKA0KPiA+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICAgICAgICAgICAgICBLZXks
DQo+ID4gQEAgLTE0ODUsNiArMTUxMCw3IEBAIFJlZ2lzdHJ5RnJlZUJpbmFyeVZhbHVlKA0KPiA+
ICAgICAgX19SZWdpc3RyeUZyZWUoQnVmZmVyKTsNCj4gPiAgfQ0KPiA+DQo+ID4gK19fZHJ2X3Jl
cXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiA+ICBWT0lEDQo+ID4gIFJlZ2lzdHJ5Q2xvc2VL
ZXkoDQo+ID4gICAgICBJTiAgSEFORExFICBLZXkNCj4gPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZi
ZC9yZWdpc3RyeS5oIGIvc3JjL3hlbnZiZC9yZWdpc3RyeS5oIGluZGV4DQo+ID4gZDM5ZjAxNi4u
OWJmNDkyZSAxMDA2NDQNCj4gPiAtLS0gYS9zcmMveGVudmJkL3JlZ2lzdHJ5LmgNCj4gPiArKysg
Yi9zcmMveGVudmJkL3JlZ2lzdHJ5LmgNCj4gPiBAQCAtNDQsNiArNDQsNyBAQCBSZWdpc3RyeVRl
YXJkb3duKA0KPiA+ICAgICAgVk9JRA0KPiA+ICAgICAgKTsNCj4gPg0KPiA+ICtfX2Rydl9yZXF1
aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ID4gIFJlZ2lz
dHJ5T3BlbktleSgNCj4gPiAgICAgIElOICBIQU5ETEUgICAgICAgICAgUGFyZW50LA0KPiA+IEBA
IC01Miw2ICs1Myw3IEBAIFJlZ2lzdHJ5T3BlbktleSgNCj4gPiAgICAgIE9VVCBQSEFORExFICAg
ICAgICAgS2V5DQo+ID4gICAgICApOw0KPiA+DQo+ID4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNT
SVZFX0xFVkVMKQ0KPiA+ICBleHRlcm4gTlRTVEFUVVMNCj4gPiAgUmVnaXN0cnlDcmVhdGVLZXko
DQo+ID4gICAgICBJTiAgSEFORExFICAgICAgICAgIFBhcmVudCwNCj4gPiBAQCAtNjAsMTcgKzYy
LDIwIEBAIFJlZ2lzdHJ5Q3JlYXRlS2V5KA0KPiA+ICAgICAgT1VUIFBIQU5ETEUgICAgICAgICBL
ZXkNCj4gPiAgICAgICk7DQo+ID4NCj4gPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVW
RUwpDQo+ID4gIGV4dGVybiBOVFNUQVRVUw0KPiA+ICBSZWdpc3RyeU9wZW5TZXJ2aWNlS2V5KA0K
PiA+ICAgICAgSU4gIEFDQ0VTU19NQVNLIERlc2lyZWRBY2Nlc3MsDQo+ID4gICAgICBPVVQgUEhB
TkRMRSAgICAgS2V5DQo+ID4gICAgICApOw0KPiA+DQo+ID4gK19fZHJ2X3JlcXVpcmVzSVJRTChQ
QVNTSVZFX0xFVkVMKQ0KPiA+ICBleHRlcm4gTlRTVEFUVVMNCj4gPiAgUmVnaXN0cnlDcmVhdGVT
ZXJ2aWNlS2V5KA0KPiA+ICAgICAgT1VUIFBIQU5ETEUgICAgIEtleQ0KPiA+ICAgICAgKTsNCj4g
Pg0KPiA+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gPiAgZXh0ZXJuIE5U
U1RBVFVTDQo+ID4gIFJlZ2lzdHJ5T3BlblNvZnR3YXJlS2V5KA0KPiA+ICAgICAgSU4gIFBERVZJ
Q0VfT0JKRUNUICBEZXZpY2VPYmplY3QsIEBAIC03OCw2ICs4Myw3IEBADQo+ID4gUmVnaXN0cnlP
cGVuU29mdHdhcmVLZXkoDQo+ID4gICAgICBPVVQgUEhBTkRMRSAgICAgICAgIEtleQ0KPiA+ICAg
ICAgKTsNCj4gPg0KPiA+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gPiAg
ZXh0ZXJuIE5UU1RBVFVTDQo+ID4gIFJlZ2lzdHJ5T3BlbkhhcmR3YXJlS2V5KA0KPiA+ICAgICAg
SU4gIFBERVZJQ0VfT0JKRUNUICBEZXZpY2VPYmplY3QsIEBAIC04NSw2ICs5MSw3IEBADQo+ID4g
UmVnaXN0cnlPcGVuSGFyZHdhcmVLZXkoDQo+ID4gICAgICBPVVQgUEhBTkRMRSAgICAgICAgIEtl
eQ0KPiA+ICAgICAgKTsNCj4gPg0KPiA+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZF
TCkNCj4gPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ID4gIFJlZ2lzdHJ5T3BlblN1YktleSgNCj4gPiAg
ICAgIElOICBIQU5ETEUgICAgICBLZXksDQo+ID4gQEAgLTkzLDYgKzEwMCw3IEBAIFJlZ2lzdHJ5
T3BlblN1YktleSgNCj4gPiAgICAgIE9VVCBQSEFORExFICAgICBTdWJLZXkNCj4gPiAgICAgICk7
DQo+ID4NCj4gPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ID4gIGV4dGVy
biBOVFNUQVRVUw0KPiA+ICBSZWdpc3RyeUNyZWF0ZVN1YktleSgNCj4gPiAgICAgIElOICBIQU5E
TEUgICAgICBLZXksDQo+ID4gQEAgLTEwMSwxMiArMTA5LDE0IEBAIFJlZ2lzdHJ5Q3JlYXRlU3Vi
S2V5KA0KPiA+ICAgICAgT1VUIFBIQU5ETEUgICAgIFN1YktleQ0KPiA+ICAgICAgKTsNCj4gPg0K
PiA+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gPiAgZXh0ZXJuIE5UU1RB
VFVTDQo+ID4gIFJlZ2lzdHJ5RGVsZXRlU3ViS2V5KA0KPiA+ICAgICAgSU4gIEhBTkRMRSAgICAg
IEtleSwNCj4gPiAgICAgIElOICBQQ0hBUiAgICAgICBOYW1lDQo+ID4gICAgICApOw0KPiA+DQo+
ID4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiA+ICBleHRlcm4gTlRTVEFU
VVMNCj4gPiAgUmVnaXN0cnlFbnVtZXJhdGVTdWJLZXlzKA0KPiA+ICAgICAgSU4gIEhBTkRMRSAg
ICAgIEtleSwNCj4gPiBAQCAtMTE0LDYgKzEyNCw3IEBAIFJlZ2lzdHJ5RW51bWVyYXRlU3ViS2V5
cygNCj4gPiAgICAgIElOICBQVk9JRCAgICAgICBDb250ZXh0DQo+ID4gICAgICApOw0KPiA+DQo+
ID4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiA+ICBleHRlcm4gTlRTVEFU
VVMNCj4gPiAgUmVnaXN0cnlFbnVtZXJhdGVWYWx1ZXMoDQo+ID4gICAgICBJTiAgSEFORExFICAg
ICAgS2V5LA0KPiA+IEBAIC0xMjEsMjYgKzEzMiwzMCBAQCBSZWdpc3RyeUVudW1lcmF0ZVZhbHVl
cygNCj4gPiAgICAgIElOICBQVk9JRCAgICAgICBDb250ZXh0DQo+ID4gICAgICApOw0KPiA+DQo+
ID4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiA+ICBleHRlcm4gTlRTVEFU
VVMNCj4gPiAgUmVnaXN0cnlEZWxldGVWYWx1ZSgNCj4gPiAgICAgIElOICBIQU5ETEUgICAgICBL
ZXksDQo+ID4gICAgICBJTiAgUENIQVIgICAgICAgTmFtZQ0KPiA+ICAgICAgKTsNCj4gPg0KPiA+
ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gPiAgZXh0ZXJuIE5UU1RBVFVT
DQo+ID4gIFJlZ2lzdHJ5UXVlcnlEd29yZFZhbHVlKA0KPiA+ICAgICAgSU4gIEhBTkRMRSAgICAg
ICAgICBLZXksDQo+ID4gICAgICBJTiAgUENIQVIgICAgICAgICAgIE5hbWUsDQo+ID4gICAgICBP
VVQgUFVMT05HICAgICAgICAgIFZhbHVlDQo+ID4gICAgICApOw0KPiA+IC0NCj4gPiArDQo+ID4g
K19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiA+ICBleHRlcm4gTlRTVEFUVVMN
Cj4gPiAgUmVnaXN0cnlVcGRhdGVEd29yZFZhbHVlKA0KPiA+ICAgICAgSU4gIEhBTkRMRSAgICAg
ICAgICBLZXksDQo+ID4gICAgICBJTiAgUENIQVIgICAgICAgICAgIE5hbWUsDQo+ID4gICAgICBJ
TiAgVUxPTkcgICAgICAgICAgIFZhbHVlDQo+ID4gICAgICApOw0KPiA+IC0NCj4gPiArDQo+ID4g
K19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiA+ICBleHRlcm4gTlRTVEFUVVMN
Cj4gPiAgUmVnaXN0cnlRdWVyeVN6VmFsdWUoDQo+ID4gICAgICBJTiAgSEFORExFICAgICAgICAg
IEtleSwNCj4gPiBAQCAtMTQ5LDYgKzE2NCw3IEBAIFJlZ2lzdHJ5UXVlcnlTelZhbHVlKA0KPiA+
ICAgICAgT1VUIFBBTlNJX1NUUklORyAgICAqQXJyYXkNCj4gPiAgICAgICk7DQo+ID4NCj4gPiAr
X19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ID4gIGV4dGVybiBOVFNUQVRVUw0K
PiA+ICBSZWdpc3RyeVF1ZXJ5QmluYXJ5VmFsdWUoDQo+ID4gICAgICBJTiAgSEFORExFICAgICAg
ICAgIEtleSwNCj4gPiBAQCAtMTU3LDYgKzE3Myw3IEBAIFJlZ2lzdHJ5UXVlcnlCaW5hcnlWYWx1
ZSgNCj4gPiAgICAgIE9VVCBQVUxPTkcgICAgICAgICAgTGVuZ3RoDQo+ID4gICAgICApOw0KPiA+
DQo+ID4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiA+ICBleHRlcm4gTlRT
VEFUVVMNCj4gPiAgUmVnaXN0cnlVcGRhdGVCaW5hcnlWYWx1ZSgNCj4gPiAgICAgIElOICBIQU5E
TEUgICAgICAgICAgS2V5LA0KPiA+IEBAIC0xNjUsMTIgKzE4MiwxNCBAQCBSZWdpc3RyeVVwZGF0
ZUJpbmFyeVZhbHVlKA0KPiA+ICAgICAgSU4gIFVMT05HICAgICAgICAgICBMZW5ndGgNCj4gPiAg
ICAgICk7DQo+ID4NCj4gPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ID4g
IGV4dGVybiBOVFNUQVRVUw0KPiA+ICBSZWdpc3RyeVF1ZXJ5S2V5TmFtZSgNCj4gPiAgICAgIElO
ICBIQU5ETEUgICAgICAgICAgICAgIEtleSwNCj4gPiAgICAgIE9VVCBQQU5TSV9TVFJJTkcgICAg
ICAgICpBcnJheQ0KPiA+ICAgICAgKTsNCj4gPg0KPiA+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFT
U0lWRV9MRVZFTCkNCj4gPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ID4gIFJlZ2lzdHJ5UXVlcnlTeXN0
ZW1TdGFydE9wdGlvbigNCj4gPiAgICAgIElOICBjb25zdCBDSEFSICAgICAgKlByZWZpeCwNCj4g
PiBAQCAtMTg3LDYgKzIwNiw3IEBAIFJlZ2lzdHJ5RnJlZUJpbmFyeVZhbHVlKA0KPiA+ICAgICAg
SU4gIFBWT0lEICAgICAgICAgICBCdWZmZXINCj4gPiAgICAgICk7DQo+ID4NCj4gPiArX19kcnZf
cmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ID4gIGV4dGVybiBOVFNUQVRVUw0KPiA+ICBS
ZWdpc3RyeVVwZGF0ZVN6VmFsdWUoDQo+ID4gICAgICBJTiAgSEFORExFICAgICAgICAgIEtleSwN
Cj4gPiBAQCAtMTk1LDYgKzIxNSw3IEBAIFJlZ2lzdHJ5VXBkYXRlU3pWYWx1ZSgNCj4gPiAgICAg
IElOICBQQU5TSV9TVFJJTkcgICAgQXJyYXkNCj4gPiAgICAgICk7DQo+ID4NCj4gPiArX19kcnZf
cmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ID4gIGV4dGVybiBWT0lEDQo+ID4gIFJlZ2lz
dHJ5Q2xvc2VLZXkoDQo+ID4gICAgICBJTiAgSEFORExFICBLZXkNCj4gPiAtLQ0KPiA+IDIuMTAu
MS53aW5kb3dzLjENCj4gPg0KPiA+DQo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18NCj4gPiB3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0DQo+ID4gd2lu
LXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+ID4gaHR0cHM6Ly9saXN0cy54ZW5wcm9q
ZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGlu
ZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl
bnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed Jun 28 15:39:09 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 28 Jun 2017 15:39:09 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dQF3c-0002Vc-5A; Wed, 28 Jun 2017 15:39:08 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=345d44fce=Paul.Durrant@citrix.com>)
 id 1dQF3b-0002VV-6G
 for win-pv-devel@lists.xenproject.org; Wed, 28 Jun 2017 15:39:07 +0000
Received: from [85.158.143.35] by server-6.bemta-6.messagelabs.com id
 C2/0C-03937-A9DC3595; Wed, 28 Jun 2017 15:39:06 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrJLMWRWlGSWpSXmKPExsXitHRDpO7Ms8G
 RBu1brCz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxuQuloJtKhUnn7cxNzBOkupi5OSQEPCX+Ne0
 mxXEZhPQkZj69BKYLSKgLrHv81YmEJtZQEuiYeISMFtYwFviyc5+RhCbRUBVYv7GGcxdjBwcv
 AJuEtNmFIGYEgJyEt073UAqhARUJNZPncUGYvMKCEqcnPmEBWKihMTBFy+YJzByz0KSmoUktY
 CRaRWjRnFqUVlqka6hkV5SUWZ6RkluYmaOrqGBmV5uanFxYnpqTmJSsV5yfu4mRmAQMADBDsb
 LGwMOMUpyMCmJ8u79EhQpxJeUn1KZkVicEV9UmpNafIhRhoNDSYLX8ExwpJBgUWp6akVaZg4w
 HGHSEhw8SiK8nSeA0rzFBYm5xZnpEKlTjIpS4rxTQPoEQBIZpXlwbbAYuMQoKyXMywh0iBBPQ
 WpRbmYJqvwrRnEORiVhXiWQKTyZeSVw018BLWYCWswyLwBkcUkiQkqqgXHrxdXvDO8t+rhU0U
 TxwPsdnEduW+lYLdSz/rj28KXUt3yGfTIC3ct/O52Sm2G/bY6Oyk3/M31VzS8mb3hhqmfEUGn
 DvejgwSiPyILAFzVuUcrRNrye/FeNo4xzLLVW8qqY2scK3GawuZUj5lS4wPZZQMsL/b8d4Zul
 YuQiS71eqwduTJjyRYmlOCPRUIu5qDgRAIvEfON8AgAA
X-Env-Sender: prvs=345d44fce=Paul.Durrant@citrix.com
X-Msg-Ref: server-6.tower-21.messagelabs.com!1498664344!47697307!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29194 invoked from network); 28 Jun 2017 15:39:05 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 28 Jun 2017 15:39:05 -0000
X-IronPort-AV: E=Sophos;i="5.40,276,1496102400"; d="scan'208";a="429688265"
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Wed, 28 Jun 2017 16:38:55 +0100
Message-ID: <1498664336-4607-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.5.3
MIME-Version: 1.0
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 1/2] Make sure AdapterInitialize is called at
	PASSIVE_LEVEL
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QWRhcHRlckh3RmluZEFkYXB0ZXIoKSBjYW4gYmUgY2FsbGVkIGF0IERJU1BBVENIX0xFVkVMIGFu
ZCB0aGVyZWZvcmUgaXQKaXMgbm90IHNhZmUgdG8gY2FsbCBBZGFwdGVySW5pdGlhbGl6ZSgpIGRp
cmVjdGx5IGZyb20gdGhlcmUuCgpUaGlzIHBhdGNoLCBpbnN0ZWFkLCBjYWxscyBTdG9yUG9ydEVu
YWJsZVBhc3NpdmVJbml0aWFsaXphdGlvbigpIGZyb20KQWRhcHRlckh3SW5pdGlhbGl6ZSgpIHRv
IHJlcXVlc3QgYSBQQVNTSVZFX0xFVkVMIGluaXRpYWxpemF0aW9uIHJvdXRpbmUKaXMgY2FsbGVk
IGltbWVkaWF0ZWx5IGFmdGVyIEFkYXB0ZXJId0ZpbmRBZGFwdGVyKCkgc28gdGhhdApBZGFwdGVy
SW5pdGlhbGl6ZSgpIGNhbiBiZSBjYWxsZWQgZnJvbSB0aGVyZS4KClN1Z2dlc3RlZC1ieTogT3dl
biBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJh
bnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52YmQvYWRhcHRlci5jIHwg
NTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQog
c3JjL3hlbnZiZC9kcml2ZXIuYyAgfCAgMSArCiBzcmMveGVudmJkL2RyaXZlci5oICB8ICAxICsK
IDMgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvc3JjL3hlbnZiZC9hZGFwdGVyLmMgYi9zcmMveGVudmJkL2FkYXB0ZXIuYwppbmRl
eCA1NzdiZmRmLi5hNDIyMGQxIDEwMDY0NAotLS0gYS9zcmMveGVudmJkL2FkYXB0ZXIuYworKysg
Yi9zcmMveGVudmJkL2FkYXB0ZXIuYwpAQCAtMTA5NSw2ICsxMDk1LDcgQEAgQWRhcHRlckRldmlj
ZVBvd2VyVGhyZWFkKAogICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKIH0KIAorX19kcnZfcmVx
dWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBzdGF0aWMgTlRTVEFUVVMKIF9fQWRhcHRlclF1ZXJ5
SW50ZXJmYWNlKAogICAgIElOICBQWEVOVkJEX0FEQVBURVIgQWRhcHRlciwKQEAgLTExNzQsNiAr
MTE3NSw4IEBAIGZhaWwxOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQSU5URVJGQUNF
KShfaXRmKSwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplb2YoICMjIF9uYW1lICMjIF9JTlRFUkZBQ0UpLCAgICBcCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKF9vcHQpKQorCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIHN0
YXRpYyBOVFNUQVRVUwogQWRhcHRlckluaXRpYWxpemUoCiAgICAgSU4gIFBYRU5WQkRfQURBUFRF
UiBBZGFwdGVyLApAQCAtMTkxNiwxMiArMTkxOSw3IEBAIEFkYXB0ZXJId0ZpbmRBZGFwdGVyKAog
ICAgIE9VVCBQQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZ2FpbgogICAgICkK
IHsKLSAgICBQWEVOVkJEX0FEQVBURVIgICAgICAgICAgICAgICAgICAgICAgICAgQWRhcHRlciA9
IERldkV4dDsKLSAgICBQREVWSUNFX09CSkVDVCAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2
aWNlT2JqZWN0OwotICAgIFBERVZJQ0VfT0JKRUNUICAgICAgICAgICAgICAgICAgICAgICAgICBQ
aHlzaWNhbERldmljZU9iamVjdDsKLSAgICBQREVWSUNFX09CSkVDVCAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG93ZXJEZXZpY2VPYmplY3Q7Ci0gICAgTlRTVEFUVVMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXR1czsKLQorICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoRGV2
RXh0KTsKICAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKENvbnRleHQpOwogICAgIFVOUkVGRVJF
TkNFRF9QQVJBTUVURVIoQnVzSW5mb3JtYXRpb24pOwogICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVU
RVIoQXJndW1lbnRTdHJpbmcpOwpAQCAtMTk0OCwzNiArMTk0Niw1NyBAQCBBZGFwdGVySHdGaW5k
QWRhcHRlcigKICAgICAvLyBXZSBuZWVkIHRvIGRvIHRoaXMgdG8gYXZvaWQgYW4gYXNzZXJ0aW9u
IGluIGEgY2hlY2tlZCBrZXJuZWwKICAgICAoVk9JRCkgU3RvclBvcnRHZXRVbmNhY2hlZEV4dGVu
c2lvbihEZXZFeHQsIENvbmZpZ0luZm8sIFBBR0VfU0laRSk7CiAKLSAgICAoVk9JRCkgU3RvclBv
cnRHZXREZXZpY2VPYmplY3RzKERldkV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZEZXZpY2VPYmplY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmUGh5c2ljYWxEZXZpY2VPYmplY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmTG93ZXJEZXZpY2VPYmplY3QpOwotICAgIGlmIChBZGFwdGVyLT5EZXZpY2VPYmplY3Qg
PT0gRGV2aWNlT2JqZWN0KQotICAgICAgICByZXR1cm4gU1BfUkVUVVJOX0ZPVU5EOworICAgIHJl
dHVybiBTUF9SRVRVUk5fRk9VTkQ7Cit9CisKK0hXX1BBU1NJVkVfSU5JVElBTElaRV9ST1VUSU5F
IEFkYXB0ZXJId1Bhc3NpdmVJbml0aWFsaXplOworCitCT09MRUFOCitBZGFwdGVySHdQYXNzaXZl
SW5pdGlhbGl6ZSgKKyAgICBJTiAgUFZPSUQgICBEZXZFeHQKKyAgICApCit7CisgICAgUFhFTlZC
RF9BREFQVEVSIEFkYXB0ZXIgPSBEZXZFeHQ7CisgICAgUERFVklDRV9PQkpFQ1QgIERldmljZU9i
amVjdDsKKyAgICBQREVWSUNFX09CSkVDVCAgUGh5c2ljYWxEZXZpY2VPYmplY3Q7CisgICAgUERF
VklDRV9PQkpFQ1QgIExvd2VyRGV2aWNlT2JqZWN0OworICAgIE5UU1RBVFVTICAgICAgICBzdGF0
dXM7CisKKyAgICBpZiAoU3RvclBvcnRHZXREZXZpY2VPYmplY3RzKERldkV4dCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZEZXZpY2VPYmplY3QsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmUGh5c2ljYWxEZXZpY2VPYmplY3QsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmTG93ZXJEZXZpY2VPYmplY3QpICE9IFNUT1JfU1RBVFVTX1NVQ0NF
U1MpCisgICAgICAgIGdvdG8gZmFpbDE7CiAKICAgICBzdGF0dXMgPSBBZGFwdGVySW5pdGlhbGl6
ZShBZGFwdGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldmljZU9iamVjdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaHlzaWNhbERldmljZU9iamVjdCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb3dlckRldmljZU9iamVjdCk7CiAgICAgaWYg
KCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDE7CisgICAgICAgIGdvdG8g
ZmFpbDI7CiAKICAgICBBZGFwdGVyVW5wbHVnUmVxdWVzdChBZGFwdGVyLCBUUlVFKTsKIAogICAg
IHN0YXR1cyA9IEFkYXB0ZXJEM1RvRDAoQWRhcHRlcik7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0
YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDI7CisgICAgICAgIGdvdG8gZmFpbDM7CiAKICAgICBE
cml2ZXJTZXRBZGFwdGVyKEFkYXB0ZXIpOwotICAgIHJldHVybiBTUF9SRVRVUk5fRk9VTkQ7Cisg
ICAgcmV0dXJuIFRSVUU7CiAKLWZhaWwyOgorZmFpbDM6CiAgICAgRXJyb3IoImZhaWwyXG4iKTsK
KwogICAgIEFkYXB0ZXJVbnBsdWdSZXF1ZXN0KEFkYXB0ZXIsIEZBTFNFKTsKICAgICBBZGFwdGVy
VGVhcmRvd24oQWRhcHRlcik7CisKK2ZhaWwyOgorICAgIEVycm9yKCJmYWlsMlxuIik7CisKIGZh
aWwxOgogICAgIEVycm9yKCJmYWlsMVxuIik7Ci0gICAgcmV0dXJuIFNQX1JFVFVSTl9FUlJPUjsK
KworICAgIHJldHVybiBGQUxTRTsKIH0KIAogSFdfSU5JVElBTElaRSAgIEFkYXB0ZXJId0luaXRp
YWxpemU7CkBAIC0xOTg3LDggKzIwMDYsOCBAQCBBZGFwdGVySHdJbml0aWFsaXplKAogICAgIElO
ICBQVk9JRCAgIERldkV4dAogICAgICkKIHsKLSAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKERl
dkV4dCk7Ci0gICAgcmV0dXJuIFRSVUU7CisgICAgcmV0dXJuIFN0b3JQb3J0RW5hYmxlUGFzc2l2
ZUluaXRpYWxpemF0aW9uKERldkV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQWRhcHRlckh3UGFzc2l2ZUluaXRpYWxpemUpOwogfQogCiBIV19JTlRF
UlJVUFQgICAgQWRhcHRlckh3SW50ZXJydXB0OwpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9kcml2
ZXIuYyBiL3NyYy94ZW52YmQvZHJpdmVyLmMKaW5kZXggNmVkODY1ZS4uNjJjM2NiYiAxMDA2NDQK
LS0tIGEvc3JjL3hlbnZiZC9kcml2ZXIuYworKysgYi9zcmMveGVudmJkL2RyaXZlci5jCkBAIC0x
MDUsNiArMTA1LDcgQEAgRHJpdmVyRGlzcGF0Y2hQb3dlcigKIAogI2RlZmluZSBNQVhOQU1FTEVO
ICAyNTYKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBWT0lECiBEcml2ZXJS
ZXF1ZXN0UmVib290KAogICAgIFZPSUQKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvZHJpdmVyLmgg
Yi9zcmMveGVudmJkL2RyaXZlci5oCmluZGV4IDM0M2E3ZmUuLjM4NmNkODQgMTAwNjQ0Ci0tLSBh
L3NyYy94ZW52YmQvZHJpdmVyLmgKKysrIGIvc3JjL3hlbnZiZC9kcml2ZXIuaApAQCAtNjEsNiAr
NjEsNyBAQCBEcml2ZXJEaXNwYXRjaFBvd2VyKAogICAgIElOICBQSVJQICAgICAgICAgICAgSXJw
CiAgICAgKTsKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBleHRlcm4gVk9J
RAogRHJpdmVyUmVxdWVzdFJlYm9vdCgKICAgICBWT0lECi0tIAoyLjUuMwoKCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5n
IGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu
cHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed Jun 28 15:39:11 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 28 Jun 2017 15:39:11 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dQF3f-0002WI-6e; Wed, 28 Jun 2017 15:39:11 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=345d44fce=Paul.Durrant@citrix.com>)
 id 1dQF3e-0002W5-6A
 for win-pv-devel@lists.xenproject.org; Wed, 28 Jun 2017 15:39:10 +0000
Received: from [85.158.143.35] by server-5.bemta-6.messagelabs.com id
 ED/19-03368-D9DC3595; Wed, 28 Jun 2017 15:39:09 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnkeJIrShJLcpLzFFi42JxWrrBXnfO2eB
 Ig9b3ehZ/Fic6MHoc/nCFJYAxijUzLym/IoE1Y9OqJywF858wVpx5nNDAuHcGYxcjJ4eEgL/E
 lRULWEFsNgEdialPL4HZIgLqEvs+b2UCsZkFfCW23N8JZgsLuEnMW7+KDcRmEVCVmH7vPtgcX
 qB4y7FLQHEOoJlyEt073UDCnALuEp2rNrKD2EJAJW82rmWCsFUk1k+dxQbRKihxcuYTFohVEh
 IHX7xgnsDIOwtJahaS1AJGplWM6sWpRWWpRboWeklFmekZJbmJmTm6hgZmermpxcWJ6ak5iUn
 Fesn5uZsYgYHDAAQ7GGdf9j/EKMnBpCTKu/dLUKQQX1J+SmVGYnFGfFFpTmrxIUYZDg4lCV7D
 M8GRQoJFqempFWmZOcAQhklLcPAoifB2ngBK8xYXJOYWZ6ZDpE4x6nJsWL3+C5MQS15+XqqUO
 K8ByAwBkKKM0jy4EbB4usQoKyXMywh0lBBPQWpRbmYJqvwrRnEORiVhXiWQKTyZeSVwm14BHc
 EEdATLvACQI0oSEVJSDYyePd4S7lMr+9hy5j5hPH4/oXfqGuZ8AfWaO//frNat6Xq3LWYSW4S
 9QLy2f4DUszeNN/i+L27pz5rp0zct1fao1S2FLu+XDjemC/nUhP8+/TqF1WDnCwdl+8cbdxou
 0nksw/bhe1xjz/J9cy29I2zrvPY1L+e7/4/l5cpZK+18zyY/rQ+XyVFiKc5INNRiLipOBAAb9
 xVFogIAAA==
X-Env-Sender: prvs=345d44fce=Paul.Durrant@citrix.com
X-Msg-Ref: server-9.tower-21.messagelabs.com!1498664345!70609952!1
X-Originating-IP: [66.165.176.63]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAzMDYwNDg=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 25028 invoked from network); 28 Jun 2017 15:39:08 -0000
Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
 by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 28 Jun 2017 15:39:08 -0000
X-IronPort-AV: E=Sophos;i="5.40,276,1496102400"; d="scan'208";a="438157399"
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Wed, 28 Jun 2017 16:38:56 +0100
Message-ID: <1498664336-4607-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.5.3
In-Reply-To: <1498664336-4607-1-git-send-email-paul.durrant@citrix.com>
References: <1498664336-4607-1-git-send-email-paul.durrant@citrix.com>
MIME-Version: 1.0
Cc: Eric Mackay <mackayem@amazon.com>, Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH 2/2] Added a function called from DriverEntry
	where...
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogRXJpYyBNYWNrYXkgPG1hY2theWVtQGFtYXpvbi5jb20+Cgp3ZSBjYW4gc2FmZWx5IHJl
YWQgcmVnaXN0cnkga2V5cyBhbmQgY29udmVydCBzdHJpbmdzIGF0IFBBU1NJVkVfTEVWRUwKClRo
ZSBNU0ROIGRvY3VtZW50YXRpb24gZm9yIHZhcmlvdXMgcmVnaXN0cnkga2V5IGFjY2VzcyBhbmQg
c3RyaW5nCmNvbnZlcnNpb24gZnVuY3Rpb25zIHJlcXVpcmVzIHRoZSBjYWxsZXIgdG8gYmUgYXQg
UEFTU0lWRV9MRVZFTC4KT25lIG9mIHRoZSByZWFzb25zIGZvciB0aGlzIGlzIHRoYXQgdGhlIHN0
cmluZyBjb252ZXJzaW9uIHRhYmxlcyB1c2VkIGJ5CmZ1bmN0aW9ucyBzdWNoIGFzIFJ0bEFuc2lT
dHJpbmdUb1VuaWNvZGVTdHJpbmcgYXJlIHN0b3JlZCBpbiBwYWdlZCBwb29sCm1lbW9yeS4gQm90
aCB0aGUgcGFnZSBmYXVsdCBoYW5kbGVyIGFuZCB0aGUgcHJvY2VzcyBzY2hlZHVsZXIgcnVuIGF0
CkRJU1BBVENIX0xFVkVMLCB0aGVyZWZvcmUgeW91IG11c3Qgbm90IHRvdWNoIG1lbW9yeSBhdCBE
SVNQQVRDSF9MRVZFTCB0aGF0CmNvdWxkIGJlIHBhZ2VkIG91dC4gQSBwcm9jZXNzIHJ1bm5pbmcg
YXQgRElTUEFUQ0hfTEVWRUwgY2Fubm90IGJlCnByZWVtcHRlZCBmb3IgdGhlIHBhZ2UgZmF1bHQg
aGFuZGxlciB0byBydW4uCgpUbyBhaWQgU3RhdGljIERyaXZlciBWZXJpZmllciBjb2RlIGFuYWx5
c2lzIGFuZCBpbmZvcm0gZGV2ZWxvcGVycywgSSBoYXZlCmFkZGVkIFNBTCBhbm5vdGF0aW9ucyB0
aGF0IGluZGljYXRlIFBBU1NJVkVfTEVWRUwgaXMgcmVxdWlyZWQgb24gY2VydGFpbgpyZWdpc3Ry
eSBhY2Nlc3MgZnVuY3Rpb25zLgoKU2lnbmVkLW9mZi1ieTogRXJpYyBNYWNrYXkgPG1hY2theWVt
QGFtYXpvbi5jb20+CgpSZS1iYXNlZCBvbnRvIG1hc3RlciBhbmQgYWRqdXN0ZWQgZm9yIHN0eWxl
LiBOb3RlIHRoaXMgaW52b2x2ZWQgZml4aW5nCndoaXRlc3BhY2UgaXNzdWVzIGluIGZyb250ZW5k
LmMuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29t
PgotLS0KIHNyYy94ZW52YmQvZHJpdmVyLmMgICB8ICA5NiArKysrKysrKysrKysrKysrLS0KIHNy
Yy94ZW52YmQvZHJpdmVyLmggICB8ICAzMSArKysrKysKIHNyYy94ZW52YmQvZnJvbnRlbmQuYyB8
IDI2OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQog
c3JjL3hlbnZiZC9yZWdpc3RyeS5jIHwgIDI2ICsrKysrCiBzcmMveGVudmJkL3JlZ2lzdHJ5Lmgg
fCAgMjUgKysrKy0KIDUgZmlsZXMgY2hhbmdlZCwgMzQyIGluc2VydGlvbnMoKyksIDEwNSBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMveGVudmJkL2RyaXZlci5jIGIvc3JjL3hlbnZiZC9k
cml2ZXIuYwppbmRleCA2MmMzY2JiLi5mOGQ1ZTgyIDEwMDY0NAotLS0gYS9zcmMveGVudmJkL2Ry
aXZlci5jCisrKyBiL3NyYy94ZW52YmQvZHJpdmVyLmMKQEAgLTQ3LDEyICs0NywyMSBAQAogI2lu
Y2x1ZGUgImRlYnVnLmgiCiAjaW5jbHVkZSAiYXNzZXJ0LmgiCiAKKy8vIEZlYXR1cmUgT3ZlcnJp
ZGVzIEZyb20gUmVnaXN0cnkgVmFsdWVzCit0eXBlZGVmIHN0cnVjdCBfWEVOVkJEX0ZFQVRVUkVf
T1ZFUlJJREUgeworICAgIFBDSEFSICAgICAgICAgICAgICAgICAgICAgICBOYW1lOworICAgIFVM
T05HICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZTsKKyAgICBCT09MRUFOICAgICAgICAgICAg
ICAgICAgICAgUHJlc2VudDsKK30gWEVOVkJEX0ZFQVRVUkVfT1ZFUlJJREUsICpQWEVOVkJEX0ZF
QVRVUkVfT1ZFUlJJREU7CisKIHR5cGVkZWYgc3RydWN0IF9YRU5WQkRfRFJJVkVSIHsKLSAgICBQ
WEVOVkJEX0FEQVBURVIgICAgIEFkYXB0ZXI7Ci0gICAgSEFORExFICAgICAgICAgICAgICBQYXJh
bWV0ZXJzS2V5OwotICAgIFBEUklWRVJfRElTUEFUQ0ggICAgU3RvclBvcnREaXNwYXRjaFBucDsK
LSAgICBQRFJJVkVSX0RJU1BBVENIICAgIFN0b3JQb3J0RGlzcGF0Y2hQb3dlcjsKLSAgICBQRFJJ
VkVSX1VOTE9BRCAgICAgIFN0b3JQb3J0RHJpdmVyVW5sb2FkOworICAgIFBYRU5WQkRfQURBUFRF
UiAgICAgICAgICAgICBBZGFwdGVyOworICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgICAgICBQ
YXJhbWV0ZXJzS2V5OworICAgIFBEUklWRVJfRElTUEFUQ0ggICAgICAgICAgICBTdG9yUG9ydERp
c3BhdGNoUG5wOworICAgIFBEUklWRVJfRElTUEFUQ0ggICAgICAgICAgICBTdG9yUG9ydERpc3Bh
dGNoUG93ZXI7CisgICAgUERSSVZFUl9VTkxPQUQgICAgICAgICAgICAgIFN0b3JQb3J0RHJpdmVy
VW5sb2FkOworICAgIGNvbnN0IENIQVIgICAgICAgICAgICAgICAgICAqRmVhdHVyZU5hbWVbTnVt
YmVyT2ZGZWF0dXJlc107CisgICAgWEVOVkJEX0ZFQVRVUkVfT1ZFUlJJREUgICAgIEZlYXR1cmVP
dmVycmlkZVtOdW1iZXJPZkZlYXR1cmVzXTsKIH0gWEVOVkJEX0RSSVZFUjsKIAogc3RhdGljIFhF
TlZCRF9EUklWRVIgRHJpdmVyOwpAQCAtMjQwLDcgKzI0OSw4MCBAQCBEcml2ZXJVbmxvYWQoCiAg
ICAgUmVnaXN0cnlUZWFyZG93bigpOwogfQogCi1EUklWRVJfSU5JVElBTElaRSAgICAgICAgICAg
RHJpdmVyRW50cnk7CitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKK3N0YXRpYyBG
T1JDRUlOTElORSBWT0lECitfX0RyaXZlckluaXRpYWxpemVPdmVycmlkZXMoCisgICAgVk9JRAor
ICAgICkKK3sKKyAgICBVTE9ORyAgICAgICAgICAgSW5kZXg7CisgICAgc3RydWN0IHsKKyAgICAg
ICAgUENIQVIgICAgICAgICAgIE5hbWU7CisgICAgICAgIFhFTlZCRF9GRUFUVVJFICBGZWF0dXJl
OworICAgIH0gTWFwcGluZ1tdID0KKyAgICAgICAgICB7CisgICAgICAgICAgICAgIHsgInJlbW92
YWJsZSIgLCBGZWF0dXJlUmVtb3ZhYmxlIH0sCisgICAgICAgICAgICAgIHsgImZlYXR1cmUtcGVy
c2lzdGVudCIsIEZlYXR1cmVQZXJzaXN0ZW50IH0sCisgICAgICAgICAgICAgIHsgImZlYXR1cmUt
bWF4LWluZGlyZWN0LXNlZ21lbnRzIiwgRmVhdHVyZU1heEluZGlyZWN0U2VnbWVudHMgfSwKKyAg
ICAgICAgICAgICAgeyAiZmVhdHVyZS1iYXJyaWVyIiwgRmVhdHVyZUJhcnJpZXIgfSwKKyAgICAg
ICAgICAgICAgeyAiZmVhdHVyZS1mbHVzaC1jYWNoZSIsIEZlYXR1cmVGbHVzaENhY2hlIH0sCisg
ICAgICAgICAgICAgIHsgImZlYXR1cmUtZGlzY2FyZCIsIEZlYXR1cmVEaXNjYXJkIH0sCisgICAg
ICAgICAgICAgIHsgImRpc2NhcmQtZW5hYmxlIiwgRmVhdHVyZURpc2NhcmRFbmFibGUgfSwKKyAg
ICAgICAgICAgICAgeyAiZGlzY2FyZC1zZWN1cmUiLCBGZWF0dXJlRGlzY2FyZFNlY3VyZSB9LAor
ICAgICAgICAgICAgICB7ICJkaXNjYXJkLWFsaWdubWVudCIsIEZlYXR1cmVEaXNjYXJkQWxpZ25t
ZW50IH0sCisgICAgICAgICAgICAgIHsgImRpc2NhcmQtZ3JhbnVsYXJpdHkiLCBGZWF0dXJlRGlz
Y2FyZEdyYW51bGFyaXR5IH0KKyAgICAgICAgICB9OworCisgICAgZm9yIChJbmRleCA9IDA7IElu
ZGV4IDwgQVJSQVlTSVpFKE1hcHBpbmcpOyBJbmRleCsrKSB7CisgICAgICAgIFhFTlZCRF9GRUFU
VVJFICBGZWF0dXJlID0gTWFwcGluZ1tJbmRleF0uRmVhdHVyZTsKKyAgICAgICAgUENIQVIgICAg
ICAgICAgIE5hbWUgPSBNYXBwaW5nW0luZGV4XS5OYW1lOworICAgICAgICBVTE9ORyAgICAgICAg
ICAgVmFsdWU7CisgICAgICAgIE5UU1RBVFVTICAgICAgICBzdGF0dXM7CisKKyAgICAgICAgRHJp
dmVyLkZlYXR1cmVPdmVycmlkZVtGZWF0dXJlXS5OYW1lID0gTmFtZTsKKworICAgICAgICBzdGF0
dXMgPSBSZWdpc3RyeVF1ZXJ5RHdvcmRWYWx1ZShfX0RyaXZlckdldFBhcmFtZXRlcnNLZXkoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlZhbHVlKTsKKworICAgICAgICBpZiAo
IU5UX1NVQ0NFU1Moc3RhdHVzKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIERy
aXZlci5GZWF0dXJlT3ZlcnJpZGVbRmVhdHVyZV0uUHJlc2VudCA9IFRSVUU7CisgICAgICAgIERy
aXZlci5GZWF0dXJlT3ZlcnJpZGVbRmVhdHVyZV0uVmFsdWUgPSBWYWx1ZTsKKyAgICB9Cit9CisK
K19fY2hlY2tSZXR1cm4KK19TdWNjZXNzXyhyZXR1cm4pCitCT09MRUFOCitEcml2ZXJHZXRGZWF0
dXJlT3ZlcnJpZGUoCisgICAgSU4gIFhFTlZCRF9GRUFUVVJFICAgRmVhdHVyZSwKKyAgICBPVVQg
UFVMT05HICAgICAgICAgICBWYWx1ZQorICAgICkKK3sKKyAgICBCT09MRUFOICAgICAgICAgICAg
ICBQcmVzZW50ID0gRkFMU0U7CisKKyAgICBpZiAoRmVhdHVyZSA8IEFSUkFZU0laRShEcml2ZXIu
RmVhdHVyZU92ZXJyaWRlKSkgeworICAgICAgICBQcmVzZW50ID0gRHJpdmVyLkZlYXR1cmVPdmVy
cmlkZVtGZWF0dXJlXS5QcmVzZW50OworICAgICAgICAqVmFsdWUgPSBEcml2ZXIuRmVhdHVyZU92
ZXJyaWRlW0ZlYXR1cmVdLlZhbHVlOworICAgIH0KKworICAgIHJldHVybiBQcmVzZW50OworfQor
CitfX2NoZWNrUmV0dXJuCitQQ0hBUgorRHJpdmVyR2V0RmVhdHVyZU5hbWUoCisgICAgSU4gIFhF
TlZCRF9GRUFUVVJFICBGZWF0dXJlCisgICAgKQoreworICAgIHJldHVybiAoRmVhdHVyZSA8IEFS
UkFZU0laRShEcml2ZXIuRmVhdHVyZU92ZXJyaWRlKSkgPworICAgICAgICAgICBEcml2ZXIuRmVh
dHVyZU92ZXJyaWRlW0ZlYXR1cmVdLk5hbWUgOgorICAgICAgICAgICBOVUxMOworfQorCitEUklW
RVJfSU5JVElBTElaRSAgIERyaXZlckVudHJ5OwogCiBOVFNUQVRVUwogRHJpdmVyRW50cnkoCkBA
IC0yODcsNiArMzY5LDggQEAgRHJpdmVyRW50cnkoCiAgICAgRHJpdmVyLkFkYXB0ZXIgPSBOVUxM
OwogICAgIEJ1ZmZlckluaXRpYWxpemUoKTsKIAorICAgIF9fRHJpdmVySW5pdGlhbGl6ZU92ZXJy
aWRlcygpOworCiAgICAgc3RhdHVzID0gQWRhcHRlckRyaXZlckVudHJ5KFJlZ2lzdHJ5UGF0aCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRHJpdmVyT2JqZWN0KTsKICAgICBpZiAo
IU5UX1NVQ0NFU1Moc3RhdHVzKSkKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvZHJpdmVyLmggYi9z
cmMveGVudmJkL2RyaXZlci5oCmluZGV4IDM4NmNkODQuLjA0MmM4YjYgMTAwNjQ0Ci0tLSBhL3Ny
Yy94ZW52YmQvZHJpdmVyLmgKKysrIGIvc3JjL3hlbnZiZC9kcml2ZXIuaApAQCAtNjcsNCArNjcs
MzUgQEAgRHJpdmVyUmVxdWVzdFJlYm9vdCgKICAgICBWT0lECiAgICAgKTsKIAorLy8gUmVnaXN0
cnkgb3ZlcnJpZGVzIGZvciBkcml2ZXIgZmVhdHVyZXMKK3R5cGVkZWYgZW51bSBfWEVOVkJEX0ZF
QVRVUkUgeworICAgIEZlYXR1cmVSZW1vdmFibGUgPSAwLAorICAgIEZlYXR1cmVQZXJzaXN0ZW50
LAorICAgIEZlYXR1cmVNYXhJbmRpcmVjdFNlZ21lbnRzLAorICAgIEZlYXR1cmVCYXJyaWVyLAor
ICAgIEZlYXR1cmVGbHVzaENhY2hlLAorICAgIEZlYXR1cmVEaXNjYXJkLAorICAgIEZlYXR1cmVE
aXNjYXJkRW5hYmxlLAorICAgIEZlYXR1cmVEaXNjYXJkU2VjdXJlLAorICAgIEZlYXR1cmVEaXNj
YXJkQWxpZ25tZW50LAorICAgIEZlYXR1cmVEaXNjYXJkR3JhbnVsYXJpdHksCisKKyAgICAvLyBB
ZGQgYW55IG5ldyBmZWF0dXJlcyBiZWZvcmUgdGhpcyBlbnVtCisgICAgTnVtYmVyT2ZGZWF0dXJl
cworfSBYRU5WQkRfRkVBVFVSRSwgKlBYRU5WQkRfRkVBVFVSRTsKKworX19jaGVja1JldHVybgor
X1N1Y2Nlc3NfKHJldHVybikKK2V4dGVybiBCT09MRUFOCitEcml2ZXJHZXRGZWF0dXJlT3ZlcnJp
ZGUoCisgICAgSU4gIFhFTlZCRF9GRUFUVVJFICAgRmVhdHVyZSwKKyAgICBPVVQgUFVMT05HICAg
ICAgICAgICBWYWx1ZQorICAgICk7CisKK19fY2hlY2tSZXR1cm4KK2V4dGVybiBQQ0hBUgorRHJp
dmVyR2V0RmVhdHVyZU5hbWUoCisgICAgSU4gIFhFTlZCRF9GRUFUVVJFICBGZWF0dXJlCisgICAg
KTsKKwogI2VuZGlmIC8vIF9YRU5WQkRfRFJJVkVSX0gKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQv
ZnJvbnRlbmQuYyBiL3NyYy94ZW52YmQvZnJvbnRlbmQuYwppbmRleCAxM2FiOWI0Li4xNDc3NDE3
IDEwMDY0NAotLS0gYS9zcmMveGVudmJkL2Zyb250ZW5kLmMKKysrIGIvc3JjL3hlbnZiZC9mcm9u
dGVuZC5jCkBAIC02MjAsMTUgKzYyMCw1NSBAQCBhYm9ydDoKIAogc3RhdGljIEZPUkNFSU5MSU5F
IEJPT0xFQU4KIEZyb250ZW5kUmVhZEZlYXR1cmUoCi0gICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQg
ICAgICAgICAgICBGcm9udGVuZCwKLSAgICBJTiAgUENIQVIgICAgICAgICAgICAgICAgICAgICAg
IE5hbWUsCi0gICAgSU4gIFBCT09MRUFOICAgICAgICAgICAgICAgICAgICBWYWx1ZQorICAgIElO
ICBQWEVOVkJEX0ZST05URU5EICAgIEZyb250ZW5kLAorICAgIElOICBYRU5WQkRfRkVBVFVSRSAg
ICAgIEZlYXR1cmUsCisgICAgSU4gIFBCT09MRUFOICAgICAgICAgICAgVmFsdWUKKykKK3sKKyAg
ICBOVFNUQVRVUyAgICAgICAgICAgICAgICBzdGF0dXM7CisgICAgUENIQVIgICAgICAgICAgICAg
ICAgICAgQnVmZmVyOworICAgIFVMT05HICAgICAgICAgICAgICAgICAgIE92ZXJyaWRlOworICAg
IEJPT0xFQU4gICAgICAgICAgICAgICAgIE9sZCA9ICpWYWx1ZTsKKyAgICBQQ0hBUiAgICAgICAg
ICAgICAgICAgICBOYW1lOworCisgICAgTmFtZSA9IERyaXZlckdldEZlYXR1cmVOYW1lKEZlYXR1
cmUpOworICAgIGlmIChOYW1lID09IE5VTEwpIHsKKyAgICAgICAgVHJhY2UoIlRhcmdldFslZF0g
OiBDb3VsZCBub3QgZmluZCBGZWF0dXJlICV1LlxuIiwgRnJvbnRlbmQtPlRhcmdldElkLCBGZWF0
dXJlKTsKKyAgICAgICAgcmV0dXJuIEZBTFNFOworICAgIH0KKworICAgIGlmIChEcml2ZXJHZXRG
ZWF0dXJlT3ZlcnJpZGUoRmVhdHVyZSwgJk92ZXJyaWRlKSkgeworICAgICAgICAqVmFsdWUgPSAh
IU92ZXJyaWRlOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXR1cyA9IFhFTkJVU19TVE9SRShS
ZWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5TdG9yZUludGVy
ZmFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBGcm9udGVuZC0+QmFja2VuZFBhdGgsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkJ1ZmZl
cik7CisgICAgICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0dXMpKQorICAgICAgICAgICAgcmV0dXJu
IEZBTFNFOyAgIC8vIG5vIHZhbHVlLCB1bmNoYW5nZWQKKworICAgICAgICAqVmFsdWUgPSAhIShz
dHJ0b3VsKEJ1ZmZlciwgTlVMTCwgMTApKTsKKworICAgICAgICBYRU5CVVNfU1RPUkUoRnJlZSwK
KyAgICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+U3RvcmVJbnRlcmZhY2UsCisgICAgICAg
ICAgICAgICAgICAgICBCdWZmZXIpOworICAgIH0KKworICAgIHJldHVybiBPbGQgIT0gKlZhbHVl
OworfQorCitzdGF0aWMgRk9SQ0VJTkxJTkUgQk9PTEVBTgorRnJvbnRlbmRSZWFkRGlza0ZlYXR1
cmUoCisgICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQgICAgRnJvbnRlbmQsCisgICAgSU4gIFBDSEFS
ICAgICAgICAgICAgICAgTmFtZSwKKyAgICBJTiAgUEJPT0xFQU4gICAgICAgICAgICBWYWx1ZQog
ICAgICkKIHsKLSAgICBOVFNUQVRVUyAgICAgICAgc3RhdHVzOwotICAgIFBDSEFSICAgICAgICAg
ICBCdWZmZXI7Ci0gICAgVUxPTkcgICAgICAgICAgIE92ZXJyaWRlOwotICAgIEJPT0xFQU4gICAg
ICAgICBPbGQgPSAqVmFsdWU7CisgICAgTlRTVEFUVVMgICAgICAgICAgICAgICAgc3RhdHVzOwor
ICAgIFBDSEFSICAgICAgICAgICAgICAgICAgIEJ1ZmZlcjsKKyAgICBCT09MRUFOICAgICAgICAg
ICAgICAgICBPbGQgPSAqVmFsdWU7CiAKICAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUoUmVhZCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5TdG9yZUludGVyZmFjZSwKQEAg
LTY0MCwzNCArNjgwLDY3IEBAIEZyb250ZW5kUmVhZEZlYXR1cmUoCiAgICAgICAgIHJldHVybiBG
QUxTRTsgICAvLyBubyB2YWx1ZSwgdW5jaGFuZ2VkCiAKICAgICAqVmFsdWUgPSAhIShzdHJ0b3Vs
KEJ1ZmZlciwgTlVMTCwgMTApKTsKKwogICAgIFhFTkJVU19TVE9SRShGcmVlLAotICAgICAgICAg
ICAgICAgICAgICAmRnJvbnRlbmQtPlN0b3JlSW50ZXJmYWNlLAotICAgICAgICAgICAgICAgICAg
ICBCdWZmZXIpOworICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPlN0b3JlSW50ZXJmYWNlLAor
ICAgICAgICAgICAgICAgICBCdWZmZXIpOworCisgICAgcmV0dXJuIE9sZCAhPSAqVmFsdWU7Cit9
CisKK3N0YXRpYyBGT1JDRUlOTElORSBCT09MRUFOCitGcm9udGVuZFJlYWRWYWx1ZTMyKAorICAg
IElOICBQWEVOVkJEX0ZST05URU5EICAgIEZyb250ZW5kLAorICAgIElOICBYRU5WQkRfRkVBVFVS
RSAgICAgIEZlYXR1cmUsCisgICAgSU4gIEJPT0xFQU4gICAgICAgICAgICAgQWxsb3dPdmVycmlk
ZSwKKyAgICBJTiAgUFVMT05HICAgICAgICAgICAgICBWYWx1ZQorKQoreworICAgIE5UU1RBVFVT
ICAgICAgICAgICAgICAgIHN0YXR1czsKKyAgICBQQ0hBUiAgICAgICAgICAgICAgICAgICBCdWZm
ZXI7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgT3ZlcnJpZGU7CisgICAgVUxPTkcgICAg
ICAgICAgICAgICAgICAgT2xkID0gKlZhbHVlOworICAgIFBTVFIgICAgICAgICAgICAgICAgICAg
IE5hbWU7CisKKyAgICBOYW1lID0gRHJpdmVyR2V0RmVhdHVyZU5hbWUoRmVhdHVyZSk7CisgICAg
aWYgKE5hbWUgPT0gTlVMTCkgeworICAgICAgICBUcmFjZSgiVGFyZ2V0WyVkXSA6IENvdWxkIG5v
dCBmaW5kIEZlYXR1cmUgJXUuXG4iLCBGcm9udGVuZC0+VGFyZ2V0SWQsIEZlYXR1cmUpOworICAg
ICAgICByZXR1cm4gRkFMU0U7CisgICAgfQogCiAgICAgLy8gY2hlY2sgcmVnaXN0cnkgZm9yIGRp
c2FibGUtb3ZlcnJpZGUKLSAgICBzdGF0dXMgPSBSZWdpc3RyeVF1ZXJ5RHdvcmRWYWx1ZShEcml2
ZXJHZXRQYXJhbWV0ZXJzS2V5KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJk92ZXJyaWRlKTsK
LSAgICBpZiAoTlRfU1VDQ0VTUyhzdGF0dXMpKSB7Ci0gICAgICAgIGlmIChPdmVycmlkZSA9PSAw
KQotICAgICAgICAgICAgKlZhbHVlID0gRkFMU0U7CisgICAgaWYgKEFsbG93T3ZlcnJpZGUgJiYg
RHJpdmVyR2V0RmVhdHVyZU92ZXJyaWRlKEZlYXR1cmUsICZPdmVycmlkZSkpIHsKKyAgICAgICAg
KlZhbHVlID0gT3ZlcnJpZGU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gWEVOQlVT
X1NUT1JFKFJlYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPlN0
b3JlSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kLT5CYWNrZW5kUGF0aCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmQnVmZmVyKTsKKyAgICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgICAg
ICByZXR1cm4gRkFMU0U7ICAgLy8gbm8gdmFsdWUsIHVuY2hhbmdlZAorCisgICAgICAgICpWYWx1
ZSA9IHN0cnRvdWwoQnVmZmVyLCBOVUxMLCAxMCk7CisKKyAgICAgICAgWEVOQlVTX1NUT1JFKEZy
ZWUsCisgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPlN0b3JlSW50ZXJmYWNlLAorICAg
ICAgICAgICAgICAgICAgICAgQnVmZmVyKTsKICAgICB9CiAKICAgICByZXR1cm4gT2xkICE9ICpW
YWx1ZTsKIH0KIAogc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4KLUZyb250ZW5kUmVhZFZhbHVl
MzIoCi0gICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQgICAgICAgICAgICBGcm9udGVuZCwKLSAgICBJ
TiAgUENIQVIgICAgICAgICAgICAgICAgICAgICAgIE5hbWUsCi0gICAgSU4gIEJPT0xFQU4gICAg
ICAgICAgICAgICAgICAgICBBbGxvd092ZXJyaWRlLAotICAgIElOICBQVUxPTkcgICAgICAgICAg
ICAgICAgICAgICAgVmFsdWUKLSAgICApCitGcm9udGVuZFJlYWREaXNrVmFsdWUzMigKKyAgICBJ
TiAgUFhFTlZCRF9GUk9OVEVORCAgICBGcm9udGVuZCwKKyAgICBJTiAgUENIQVIgICAgICAgICAg
ICAgICBOYW1lLAorICAgIElOICBQVUxPTkcgICAgICAgICAgICAgIFZhbHVlCispCiB7Ci0gICAg
TlRTVEFUVVMgICAgICAgIHN0YXR1czsKLSAgICBQQ0hBUiAgICAgICAgICAgQnVmZmVyOwotICAg
IFVMT05HICAgICAgICAgICBPdmVycmlkZTsKLSAgICBVTE9ORyAgICAgICAgICAgT2xkID0gKlZh
bHVlOworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsKKyAgICBQQ0hBUiAgICAg
ICAgICAgICAgICAgICBCdWZmZXI7CisgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgT2xkID0g
KlZhbHVlOwogCiAgICAgc3RhdHVzID0gWEVOQlVTX1NUT1JFKFJlYWQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZGcm9udGVuZC0+U3RvcmVJbnRlcmZhY2UsCkBAIC02NzksMzMgKzc1Miwy
NCBAQCBGcm9udGVuZFJlYWRWYWx1ZTMyKAogICAgICAgICByZXR1cm4gRkFMU0U7ICAgLy8gbm8g
dmFsdWUsIHVuY2hhbmdlZAogCiAgICAgKlZhbHVlID0gc3RydG91bChCdWZmZXIsIE5VTEwsIDEw
KTsKLSAgICBYRU5CVVNfU1RPUkUoRnJlZSwKLSAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5k
LT5TdG9yZUludGVyZmFjZSwKLSAgICAgICAgICAgICAgICAgICAgQnVmZmVyKTsKIAotICAgIC8v
IGNoZWNrIHJlZ2lzdHJ5IGZvciBkaXNhYmxlLW92ZXJyaWRlCi0gICAgaWYgKEFsbG93T3ZlcnJp
ZGUpIHsKLSAgICAgICAgc3RhdHVzID0gUmVnaXN0cnlRdWVyeUR3b3JkVmFsdWUoRHJpdmVyR2V0
UGFyYW1ldGVyc0tleSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJk92ZXJyaWRl
KTsKLSAgICAgICAgaWYgKE5UX1NVQ0NFU1Moc3RhdHVzKSkgewotICAgICAgICAgICAgKlZhbHVl
ID0gT3ZlcnJpZGU7Ci0gICAgICAgIH0KLSAgICB9CisgICAgWEVOQlVTX1NUT1JFKEZyZWUsCisg
ICAgICAgICAgICAgICAgICZGcm9udGVuZC0+U3RvcmVJbnRlcmZhY2UsCisgICAgICAgICAgICAg
ICAgIEJ1ZmZlcik7CiAKICAgICByZXR1cm4gT2xkICE9ICpWYWx1ZTsKIH0KIAogc3RhdGljIEZP
UkNFSU5MSU5FIEJPT0xFQU4KIEZyb250ZW5kUmVhZFZhbHVlNjQoCi0gICAgSU4gIFBYRU5WQkRf
RlJPTlRFTkQgICAgICAgICAgICBGcm9udGVuZCwKLSAgICBJTiAgUENIQVIgICAgICAgICAgICAg
ICAgICAgICAgIE5hbWUsCi0gICAgSU4gT1VUIFBVTE9ORzY0ICAgICAgICAgICAgICAgICBWYWx1
ZQorICAgIElOICBQWEVOVkJEX0ZST05URU5EICAgIEZyb250ZW5kLAorICAgIElOICBQQ0hBUiAg
ICAgICAgICAgICAgIE5hbWUsCisgICAgSU4gT1VUIFBVTE9ORzY0ICAgICAgICAgVmFsdWUKICAg
ICApCiB7Ci0gICAgTlRTVEFUVVMgICAgICAgIHN0YXR1czsKLSAgICBQQ0hBUiAgICAgICAgICAg
QnVmZmVyOwotICAgIFVMT05HNjQgICAgICAgICBPbGQgPSAqVmFsdWU7CisgICAgTlRTVEFUVVMg
ICAgICAgICAgICAgICAgc3RhdHVzOworICAgIFBDSEFSICAgICAgICAgICAgICAgICAgIEJ1ZmZl
cjsKKyAgICBVTE9ORzY0ICAgICAgICAgICAgICAgICBPbGQgPSAqVmFsdWU7CiAKICAgICBzdGF0
dXMgPSBYRU5CVVNfU1RPUkUoUmVhZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250
ZW5kLT5TdG9yZUludGVyZmFjZSwKQEAgLTcxNyw1NyArNzgxLDU5IEBAIEZyb250ZW5kUmVhZFZh
bHVlNjQoCiAgICAgICAgIHJldHVybiBGQUxTRTsgICAvLyBubyB2YWx1ZSwgdW5jaGFuZ2VkCiAK
ICAgICAqVmFsdWUgPSBfc3RydG91aTY0KEJ1ZmZlciwgTlVMTCwgMTApOworCiAgICAgWEVOQlVT
X1NUT1JFKEZyZWUsCi0gICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+U3RvcmVJbnRlcmZh
Y2UsCi0gICAgICAgICAgICAgICAgICAgIEJ1ZmZlcik7CisgICAgICAgICAgICAgICAgICZGcm9u
dGVuZC0+U3RvcmVJbnRlcmZhY2UsCisgICAgICAgICAgICAgICAgIEJ1ZmZlcik7CiAKICAgICBy
ZXR1cm4gT2xkICE9ICpWYWx1ZTsKIH0KIAogc3RhdGljIEZPUkNFSU5MSU5FIFVMT05HCiBfX1Np
emUoCi0gICAgX19pbiAgUFhFTlZCRF9ESVNLSU5GTyAgICAgICAgICBJbmZvCisgICAgX19pbiAg
UFhFTlZCRF9ESVNLSU5GTyAgSW5mbwogICAgICkKIHsKLSAgICBVTE9ORzY0IE1CeXRlcyA9IChJ
bmZvLT5TZWN0b3JTaXplICogSW5mby0+U2VjdG9yQ291bnQpID4+IDIwOyAvLyAvICgxMDI0ICog
MTAyNCk7IAorICAgIFVMT05HNjQgICAgICAgICAgICAgICAgIE1CeXRlcyA9IChJbmZvLT5TZWN0
b3JTaXplICogSW5mby0+U2VjdG9yQ291bnQpID4+IDIwOyAvLyAvICgxMDI0ICogMTAyNCk7CisK
ICAgICBpZiAoTUJ5dGVzIDwgMTAyNDApCiAgICAgICAgIHJldHVybiAoVUxPTkcpTUJ5dGVzOwor
CiAgICAgcmV0dXJuIChVTE9ORykoTUJ5dGVzID4+IDEwKTsgLy8gLyAxMDI0CiB9CiBzdGF0aWMg
Rk9SQ0VJTkxJTkUgUENIQVIKIF9fVW5pdHMoCi0gICAgX19pbiAgUFhFTlZCRF9ESVNLSU5GTyAg
ICAgICAgICBJbmZvCisgICAgX19pbiAgUFhFTlZCRF9ESVNLSU5GTyAgSW5mbwogICAgICkKIHsK
LSAgICBVTE9ORzY0IE1CeXRlcyA9IChJbmZvLT5TZWN0b3JTaXplICogSW5mby0+U2VjdG9yQ291
bnQpID4+IDIwOyAvLyAvICgxMDI0ICogMTAyNCk7IAorICAgIFVMT05HNjQgICAgICAgICAgICAg
ICAgIE1CeXRlcyA9IChJbmZvLT5TZWN0b3JTaXplICogSW5mby0+U2VjdG9yQ291bnQpID4+IDIw
OyAvLyAvICgxMDI0ICogMTAyNCk7CisKICAgICBpZiAoTUJ5dGVzIDwgMTAyNDApCiAgICAgICAg
IHJldHVybiAiTUIiOworCiAgICAgcmV0dXJuICJHQiI7CiB9CiAKIF9fZHJ2X3JlcXVpcmVzSVJR
TChESVNQQVRDSF9MRVZFTCkKIHN0YXRpYyBWT0lECiBfX1JlYWREaXNrSW5mbygKLSAgICBfX2lu
ICBQWEVOVkJEX0ZST05URU5EICAgICAgICBGcm9udGVuZAorICAgIF9faW4gIFBYRU5WQkRfRlJP
TlRFTkQgIEZyb250ZW5kCiAgICAgKQogewotICAgIEJPT0xFQU4gQ2hhbmdlZCA9IEZBTFNFOwot
Ci0gICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWRWYWx1ZTMyKEZyb250ZW5kLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJpbmZvIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBGQUxTRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJv
bnRlbmQtPkRpc2tJbmZvLkRpc2tJbmZvKTsKLSAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZFZh
bHVlMzIoRnJvbnRlbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlY3Rv
ci1zaXplIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPkRpc2tJbmZvLlNlY3RvclNp
emUpOwotICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFkVmFsdWUzMihGcm9udGVuZCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGh5c2ljYWwtc2VjdG9yLXNpemUiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uUGh5c1NlY3RvclNpemUpOworICAg
IEJPT0xFQU4gICAgICAgICAgICAgICAgIENoYW5nZWQ7CisKKyAgICBDaGFuZ2VkID0gRnJvbnRl
bmRSZWFkRGlza1ZhbHVlMzIoRnJvbnRlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJpbmZvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JkZyb250ZW5kLT5EaXNrSW5mby5EaXNrSW5mbyk7CisgICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJl
YWREaXNrVmFsdWUzMihGcm9udGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzZWN0b3Itc2l6ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmRnJvbnRlbmQtPkRpc2tJbmZvLlNlY3RvclNpemUpOworICAgIENoYW5nZWQgfD0gRnJv
bnRlbmRSZWFkRGlza1ZhbHVlMzIoRnJvbnRlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAicGh5c2ljYWwtc2VjdG9yLXNpemUiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5EaXNrSW5mby5QaHlzU2VjdG9yU2l6ZSk7
CiAgICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWRWYWx1ZTY0KEZyb250ZW5kLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzZWN0b3JzIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmRnJvbnRlbmQtPkRpc2tJbmZvLlNlY3RvckNvdW50KTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlY3RvcnMiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPkRpc2tJbmZvLlNlY3RvckNvdW50KTsKIAogICAg
IGlmICghQ2hhbmdlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtNzkxLDQwICs4NTcsNDEgQEAgX19S
ZWFkRGlza0luZm8oCiAKICAgICAvLyBkdW1wIGFjdHVhbCB2YWx1ZXMKICAgICBWZXJib3NlKCJU
YXJnZXRbJWRdIDogJWxsZCBzZWN0b3JzIG9mICVkIGJ5dGVzICglZClcbiIsIEZyb250ZW5kLT5U
YXJnZXRJZCwKLSAgICAgICAgICAgICAgICBGcm9udGVuZC0+RGlza0luZm8uU2VjdG9yQ291bnQs
IEZyb250ZW5kLT5EaXNrSW5mby5TZWN0b3JTaXplLAotICAgICAgICAgICAgICAgIEZyb250ZW5k
LT5EaXNrSW5mby5QaHlzU2VjdG9yU2l6ZSk7CisgICAgICAgICAgICBGcm9udGVuZC0+RGlza0lu
Zm8uU2VjdG9yQ291bnQsIEZyb250ZW5kLT5EaXNrSW5mby5TZWN0b3JTaXplLAorICAgICAgICAg
ICAgRnJvbnRlbmQtPkRpc2tJbmZvLlBoeXNTZWN0b3JTaXplKTsKICAgICBWZXJib3NlKCJUYXJn
ZXRbJWRdIDogJWQgJXMgKCUwOHgpICVzXG4iLCBGcm9udGVuZC0+VGFyZ2V0SWQsCi0gICAgICAg
ICAgICAgICAgX19TaXplKCZGcm9udGVuZC0+RGlza0luZm8pLCBfX1VuaXRzKCZGcm9udGVuZC0+
RGlza0luZm8pLAotICAgICAgICAgICAgICAgIEZyb250ZW5kLT5EaXNrSW5mby5EaXNrSW5mbywK
LSAgICAgICAgICAgICAgICBGcm9udGVuZC0+Q2Fwcy5TdXJwcmlzZVJlbW92YWJsZSA/ICJTVVJQ
UklTRV9SRU1PVkFCTEUiIDogIiIpOworICAgICAgICAgICAgX19TaXplKCZGcm9udGVuZC0+RGlz
a0luZm8pLCBfX1VuaXRzKCZGcm9udGVuZC0+RGlza0luZm8pLAorICAgICAgICAgICAgRnJvbnRl
bmQtPkRpc2tJbmZvLkRpc2tJbmZvLAorICAgICAgICAgICAgRnJvbnRlbmQtPkNhcHMuU3VycHJp
c2VSZW1vdmFibGUgPyAiU1VSUFJJU0VfUkVNT1ZBQkxFIiA6ICIiKTsKIH0KIAogc3RhdGljIEZP
UkNFSU5MSU5FIFZPSUQKIEZyb250ZW5kUmVhZEZlYXR1cmVzKAotICAgIElOICBQWEVOVkJEX0ZS
T05URU5EICAgICAgICAgICAgRnJvbnRlbmQKKyAgICBJTiAgUFhFTlZCRF9GUk9OVEVORCAgICBG
cm9udGVuZAogICAgICkKIHsKLSAgICBCT09MRUFOIENoYW5nZWQgPSBGQUxTRTsKKyAgICBCT09M
RUFOICAgICAgICAgICAgICAgICBDaGFuZ2VkOwogCi0gICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJl
YWRGZWF0dXJlKEZyb250ZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cmVtb3ZhYmxlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5k
LT5DYXBzLlJlbW92YWJsZSk7CisgICAgQ2hhbmdlZCA9IEZyb250ZW5kUmVhZEZlYXR1cmUoRnJv
bnRlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVhdHVyZVJlbW92YWJs
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPkNhcHMuUmVt
b3ZhYmxlKTsKICAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZFZhbHVlMzIoRnJvbnRlbmQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmZWF0dXJlLW1heC1pbmRpcmVjdC1z
ZWdtZW50cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVNYXhJ
bmRpcmVjdFNlZ21lbnRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUlVF
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPkZlYXR1cmVz
LkluZGlyZWN0KTsKICAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZEZlYXR1cmUoRnJvbnRlbmQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmZWF0dXJlLXBlcnNpc3RlbnQi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGZWF0dXJlUGVyc2lzdGVudCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5GZWF0dXJlcy5Q
ZXJzaXN0ZW50KTsKIAogICAgIGlmICghQ2hhbmdlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
VmVyYm9zZSgiVGFyZ2V0WyVkXSA6IEZlYXR1cmVzOiAlcyVzJXNcbiIsCi0gICAgICAgICAgICAg
ICAgRnJvbnRlbmQtPlRhcmdldElkLAotICAgICAgICAgICAgICAgIEZyb250ZW5kLT5GZWF0dXJl
cy5QZXJzaXN0ZW50ID8gIlBFUlNJU1RFTlQgIiA6ICIiLAotICAgICAgICAgICAgICAgIEZyb250
ZW5kLT5GZWF0dXJlcy5JbmRpcmVjdCA/ICJJTkRJUkVDVCAiIDogIiIsCi0gICAgICAgICAgICAg
ICAgRnJvbnRlbmQtPkNhcHMuUmVtb3ZhYmxlID8gIlJFTU9WQUJMRSIgOiAiIik7CisgICAgICAg
ICAgICBGcm9udGVuZC0+VGFyZ2V0SWQsCisgICAgICAgICAgICBGcm9udGVuZC0+RmVhdHVyZXMu
UGVyc2lzdGVudCA/ICJQRVJTSVNURU5UICIgOiAiIiwKKyAgICAgICAgICAgIEZyb250ZW5kLT5G
ZWF0dXJlcy5JbmRpcmVjdCA/ICJJTkRJUkVDVCAiIDogIiIsCisgICAgICAgICAgICBGcm9udGVu
ZC0+Q2Fwcy5SZW1vdmFibGUgPyAiUkVNT1ZBQkxFIiA6ICIiKTsKKwogICAgIGlmIChGcm9udGVu
ZC0+RmVhdHVyZXMuSW5kaXJlY3QpIHsKICAgICAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IElO
RElSRUNUICV4XG4iLAogICAgICAgICAgICAgICAgICAgICBGcm9udGVuZC0+VGFyZ2V0SWQsCkBA
IC04MzQsNDAgKzkwMSw0NCBAQCBGcm9udGVuZFJlYWRGZWF0dXJlcygKIAogc3RhdGljIEZPUkNF
SU5MSU5FIFZPSUQKIEZyb250ZW5kUmVhZERpc2tJbmZvKAotICAgIElOICBQWEVOVkJEX0ZST05U
RU5EICAgICAgICAgICAgRnJvbnRlbmQKKyAgICBJTiAgUFhFTlZCRF9GUk9OVEVORCAgICBGcm9u
dGVuZAogICAgICkKIHsKLSAgICBCT09MRUFOIENoYW5nZWQgPSBGQUxTRTsKLSAgICBCT09MRUFO
IERpc2NhcmQ7Ci0gICAgQk9PTEVBTiBEaXNjYXJkRmVhdHVyZSA9IEZBTFNFOwotICAgIEJPT0xF
QU4gRGlzY2FyZEVuYWJsZSA9IFRSVUU7Ci0KKyAgICBCT09MRUFOICAgICAgICAgICAgICAgICBD
aGFuZ2VkOworICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgIERpc2NhcmQ7CisgICAgQk9PTEVB
TiAgICAgICAgICAgICAgICAgRGlzY2FyZEZlYXR1cmUgPSBGQUxTRTsKKyAgICBCT09MRUFOICAg
ICAgICAgICAgICAgICBEaXNjYXJkRW5hYmxlID0gVFJVRTsKKworICAgIENoYW5nZWQgPSBGcm9u
dGVuZFJlYWRGZWF0dXJlKEZyb250ZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEZlYXR1cmVCYXJyaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZG
cm9udGVuZC0+RGlza0luZm8uQmFycmllcik7CiAgICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWRG
ZWF0dXJlKEZyb250ZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmVh
dHVyZS1iYXJyaWVyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250
ZW5kLT5EaXNrSW5mby5CYXJyaWVyKTsKLSAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZEZlYXR1
cmUoRnJvbnRlbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmZWF0dXJl
LWZsdXNoLWNhY2hlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVhdHVy
ZUZsdXNoQ2FjaGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVu
ZC0+RGlza0luZm8uRmx1c2hDYWNoZSk7CiAKICAgICAvLyBkaXNjYXJkIHJlbGF0ZWQKICAgICBG
cm9udGVuZFJlYWRGZWF0dXJlKEZyb250ZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgImZl
YXR1cmUtZGlzY2FyZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBGZWF0dXJlRGlzY2FyZCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICZEaXNjYXJkRmVhdHVyZSk7CiAgICAgRnJvbnRlbmRS
ZWFkRmVhdHVyZShGcm9udGVuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJkaXNjYXJkLWVu
YWJsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBGZWF0dXJlRGlzY2FyZEVuYWJsZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICZEaXNjYXJkRW5hYmxlKTsKKwogICAgIERpc2NhcmQgPSBE
aXNjYXJkRmVhdHVyZSAmJiBEaXNjYXJkRW5hYmxlOworCiAgICAgQ2hhbmdlZCB8PSAoRGlzY2Fy
ZCAhPSBGcm9udGVuZC0+RGlza0luZm8uRGlzY2FyZCk7CisKICAgICBGcm9udGVuZC0+RGlza0lu
Zm8uRGlzY2FyZCA9IERpc2NhcmQ7CisKICAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZEZlYXR1
cmUoRnJvbnRlbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXNjYXJk
LXNlY3VyZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVEaXNj
YXJkU2VjdXJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQt
PkRpc2tJbmZvLkRpc2NhcmRTZWN1cmUpOwogICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFkVmFs
dWUzMihGcm9udGVuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpc2Nh
cmQtYWxpZ25tZW50IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVhdHVy
ZURpc2NhcmRBbGlnbm1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRS
VUUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0lu
Zm8uRGlzY2FyZEFsaWdubWVudCk7CiAgICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWRWYWx1ZTMy
KEZyb250ZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGlzY2FyZC1n
cmFudWxhcml0eSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVE
aXNjYXJkR3JhbnVsYXJpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRS
VUUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0lu
Zm8uRGlzY2FyZEdyYW51bGFyaXR5KTsKIApAQCAtODc5LDYgKzk1MCw3IEBAIEZyb250ZW5kUmVh
ZERpc2tJbmZvKAogICAgICAgICAgICAgICAgIEZyb250ZW5kLT5EaXNrSW5mby5CYXJyaWVyID8g
IkJBUlJJRVIgIiA6ICIiLAogICAgICAgICAgICAgICAgIEZyb250ZW5kLT5EaXNrSW5mby5GbHVz
aENhY2hlID8gICJGTFVTSCAiIDogIiIsCiAgICAgICAgICAgICAgICAgRnJvbnRlbmQtPkRpc2tJ
bmZvLkRpc2NhcmQgPyAiRElTQ0FSRCAiIDogIiIpOworCiAgICAgaWYgKEZyb250ZW5kLT5EaXNr
SW5mby5EaXNjYXJkKSB7CiAgICAgICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBESVNDQVJEICVz
JXgvJXhcbiIsCiAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kLT5UYXJnZXRJZCwKQEAgLTEy
NDAsNiArMTMxMiw4IEBAIEZyb250ZW5kRGlzYWJsZSgKIAogLy89PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQogLy8gSW5pdC9UZXJtCitfSVJRTF9yZXF1aXJlc18oRElTUEFUQ0hfTEVWRUwpCitfUmVxdWly
ZXNfbG9ja19oZWxkXyhGcm9udGVuZC0+U3RhdGVMb2NrKQogc3RhdGljIERFQ0xTUEVDX05PSU5M
SU5FIE5UU1RBVFVTCiBfX0Zyb250ZW5kU2V0U3RhdGUoCiAgICAgX19pbiAgUFhFTlZCRF9GUk9O
VEVORCAgICAgICAgRnJvbnRlbmQsCkBAIC0xNDEzLDYgKzE0ODcsNyBAQCBGcm9udGVuZFN1c3Bl
bmRMYXRlQ2FsbGJhY2soCiAgICAgU3RhdGUgPSBGcm9udGVuZC0+U3RhdGU7CiAKICAgICAvLyBk
b250IGFjcXVpcmUgc3RhdGUgbG9jayAtIGNhbGxlZCBhdCBESVNQQVRDSCBvbiAxIHZDUFUgd2l0
aCBpbnRlcnJ1cHRzIGVuYWJsZWQKKyNwcmFnbWEgd2FybmluZyhzdXBwcmVzczogMjYxMTApIC8v
IHdhcm5pbmcgQzI2MTEwOiBDYWxsZXIgZmFpbGluZyB0byBob2xkIGxvY2sgPGxvY2s+IGJlZm9y
ZSBjYWxsaW5nIGZ1bmN0aW9uIDxmdW5jPi4KICAgICBTdGF0dXMgPSBfX0Zyb250ZW5kU2V0U3Rh
dGUoRnJvbnRlbmQsIFhFTlZCRF9DTE9TRUQpOwogICAgIGlmICghTlRfU1VDQ0VTUyhTdGF0dXMp
KSB7CiAgICAgICAgIEVycm9yKCJUYXJnZXRbJWRdIDogU2V0U3RhdGUgQ0xPU0VEICglMDh4KVxu
IiwgRnJvbnRlbmQtPlRhcmdldElkLCBTdGF0dXMpOwpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9y
ZWdpc3RyeS5jIGIvc3JjL3hlbnZiZC9yZWdpc3RyeS5jCmluZGV4IDQwYzc3ZjEuLmJiMTA1Yjkg
MTAwNjQ0Ci0tLSBhL3NyYy94ZW52YmQvcmVnaXN0cnkuYworKysgYi9zcmMveGVudmJkL3JlZ2lz
dHJ5LmMKQEAgLTg2LDYgKzg2LDcgQEAgUmVnaXN0cnlUZWFyZG93bigKICAgICBSZWdpc3RyeVBh
dGguTWF4aW11bUxlbmd0aCA9IFJlZ2lzdHJ5UGF0aC5MZW5ndGggPSAwOwogfQogCitfX2Rydl9y
ZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIE5UU1RBVFVTCiBSZWdpc3RyeU9wZW5LZXkoCiAg
ICAgSU4gIEhBTkRMRSAgICAgICAgICBQYXJlbnQsCkBAIC0xMTUsNiArMTE2LDcgQEAgZmFpbDE6
CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVW
RUwpCiBzdGF0aWMgTlRTVEFUVVMKIFJlZ2lzdHJ5T3BlblJvb3QoCiAgICAgSU4gIFBXQ0hBUiAg
ICAgICAgICBQYXRoLApAQCAtMTQ4LDYgKzE1MCw3IEBAIGZhaWwxOgogICAgIHJldHVybiBzdGF0
dXM7CiB9CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogTlRTVEFUVVMKIFJl
Z2lzdHJ5Q3JlYXRlS2V5KAogICAgIElOICBIQU5ETEUgICAgICAgICAgUm9vdCwKQEAgLTI0Nyw2
ICsyNTAsNyBAQCBmYWlsMToKICAgICByZXR1cm4gc3RhdHVzOwogfQogCitfX2Rydl9yZXF1aXJl
c0lSUUwoUEFTU0lWRV9MRVZFTCkKIE5UU1RBVFVTCiBSZWdpc3RyeU9wZW5TZXJ2aWNlS2V5KAog
ICAgIElOICBBQ0NFU1NfTUFTSyAgICAgRGVzaXJlZEFjY2VzcywKQEAgLTI1Niw2ICsyNjAsNyBA
QCBSZWdpc3RyeU9wZW5TZXJ2aWNlS2V5KAogICAgIHJldHVybiBSZWdpc3RyeU9wZW5LZXkoTlVM
TCwgJlJlZ2lzdHJ5UGF0aCwgRGVzaXJlZEFjY2VzcywgS2V5KTsKIH0KIAorX19kcnZfcmVxdWly
ZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlDcmVhdGVTZXJ2aWNlS2V5
KAogICAgIE9VVCBQSEFORExFICAgICAgICAgS2V5CkBAIC0yNjQsNiArMjY5LDcgQEAgUmVnaXN0
cnlDcmVhdGVTZXJ2aWNlS2V5KAogICAgIHJldHVybiBSZWdpc3RyeUNyZWF0ZUtleShOVUxMLCAm
UmVnaXN0cnlQYXRoLCBSRUdfT1BUSU9OX05PTl9WT0xBVElMRSwgS2V5KTsKIH0KIAorX19kcnZf
cmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlPcGVuU29mdHdh
cmVLZXkoCiAgICAgSU4gIFBERVZJQ0VfT0JKRUNUICBEZXZpY2VPYmplY3QsCkBAIC0yODYsNiAr
MjkyLDcgQEAgZmFpbDE6CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIAorX19kcnZfcmVxdWlyZXNJ
UlFMKFBBU1NJVkVfTEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlPcGVuSGFyZHdhcmVLZXkoCiAg
ICAgSU4gIFBERVZJQ0VfT0JKRUNUICAgICAgRGV2aWNlT2JqZWN0LApAQCAtMzYzLDYgKzM3MCw3
IEBAIGZhaWwxOgogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQ
QVNTSVZFX0xFVkVMKQogTlRTVEFUVVMKIFJlZ2lzdHJ5T3BlblN1YktleSgKICAgICBJTiAgUEhB
TkRMRSAgICAgICAgIEtleSwKQEAgLTM5Niw2ICs0MDQsNyBAQCBmYWlsMToKICAgICByZXR1cm4g
c3RhdHVzOwogfQogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIE5UU1RBVFVT
CiBSZWdpc3RyeUNyZWF0ZVN1YktleSgKICAgICBJTiAgUEhBTkRMRSAgICAgICAgIEtleSwKQEAg
LTQyOSw2ICs0MzgsNyBAQCBmYWlsMToKICAgICByZXR1cm4gc3RhdHVzOwogfQogCitfX2Rydl9y
ZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIE5UU1RBVFVTCiBSZWdpc3RyeURlbGV0ZVN1Yktl
eSgKICAgICBJTiAgUEhBTkRMRSAgICAgICAgIEtleSwKQEAgLTQ3Miw2ICs0ODIsNyBAQCBmYWls
MToKICAgICByZXR1cm4gc3RhdHVzOwogfQogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9M
RVZFTCkKIE5UU1RBVFVTCiBSZWdpc3RyeUVudW1lcmF0ZVN1YktleXMoCiAgICAgSU4gIEhBTkRM
RSAgICAgICAgICAgICAgS2V5LApAQCAtNTc2LDYgKzU4Nyw3IEBAIGZhaWwxOgogICAgIHJldHVy
biBzdGF0dXM7CiB9CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogTlRTVEFU
VVMKIFJlZ2lzdHJ5RW51bWVyYXRlVmFsdWVzKAogICAgIElOICBIQU5ETEUgICAgICAgICAgICAg
ICAgICAgICAgS2V5LApAQCAtNjc0LDYgKzY4Niw3IEBAIGZhaWwxOgogICAgIHJldHVybiBzdGF0
dXM7CiB9CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogTlRTVEFUVVMKIFJl
Z2lzdHJ5RGVsZXRlVmFsdWUoCiAgICAgSU4gIFBIQU5ETEUgICAgICAgICBLZXksCkBAIC03MDcs
NiArNzIwLDcgQEAgZmFpbDE6CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIAorX19kcnZfcmVxdWly
ZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlRdWVyeUR3b3JkVmFsdWUo
CiAgICAgSU4gIEhBTkRMRSAgICAgICAgICAgICAgICAgICAgICBLZXksCkBAIC03NzcsNiArNzkx
LDcgQEAgZmFpbDE6CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFM
KFBBU1NJVkVfTEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlVcGRhdGVEd29yZFZhbHVlKAogICAg
IElOICBIQU5ETEUgICAgICAgICAgICAgICAgICAgICAgS2V5LApAQCAtODM1LDYgKzg1MCw3IEBA
IGZhaWwxOgogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNT
SVZFX0xFVkVMKQogc3RhdGljIFBBTlNJX1NUUklORwogUmVnaXN0cnlTelRvQW5zaSgKICAgICBJ
TiAgUFdDSEFSICAgICAgQnVmZmVyCkBAIC04NzQsNiArODkwLDcgQEAgZmFpbDE6CiAgICAgcmV0
dXJuIE5VTEw7CiB9CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogc3RhdGlj
IFBBTlNJX1NUUklORwogUmVnaXN0cnlNdWx0aVN6VG9BbnNpKAogICAgIElOICBQV0NIQVIgICAg
ICBCdWZmZXIKQEAgLTkzNiw2ICs5NTMsNyBAQCBmYWlsMToKICAgICByZXR1cm4gTlVMTDsKIH0K
IAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlR
dWVyeVN6VmFsdWUoCiAgICAgSU4gIEhBTkRMRSAgICAgICAgICAgICAgICAgICAgICBLZXksCkBA
IC0xMDIzLDYgKzEwNDEsNyBAQCBmYWlsMToKICAgICByZXR1cm4gc3RhdHVzOwogfQogCitfX2Ry
dl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIE5UU1RBVFVTCiBSZWdpc3RyeVF1ZXJ5Qmlu
YXJ5VmFsdWUoCiAgICAgSU4gIEhBTkRMRSAgICAgICAgICAgICAgICAgICAgICBLZXksCkBAIC0x
MTA4LDYgKzExMjcsNyBAQCBmYWlsMToKICAgICByZXR1cm4gc3RhdHVzOwogfQogCitfX2Rydl9y
ZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIE5UU1RBVFVTCiBSZWdpc3RyeVVwZGF0ZUJpbmFy
eVZhbHVlKAogICAgIElOICBIQU5ETEUgICAgICAgICAgICAgICAgICAgICAgS2V5LApAQCAtMTE2
Nyw2ICsxMTg3LDcgQEAgZmFpbDE6CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIAorX19kcnZfcmVx
dWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlRdWVyeUtleU5hbWUo
CiAgICAgSU4gIEhBTkRMRSAgICAgICAgICAgICAgS2V5LApAQCAtMTIyMiw2ICsxMjQzLDcgQEAg
ZmFpbDE6CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJ
VkVfTEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlRdWVyeVN5c3RlbVN0YXJ0T3B0aW9uKAogICAg
IElOICBjb25zdCBDSEFSICAgICAgICAgICAgICAgICAgKlByZWZpeCwKQEAgLTEzMDAsNiArMTMy
Miw3IEBAIGZhaWwxOgogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKK19fZHJ2X3JlcXVpcmVzSVJR
TChQQVNTSVZFX0xFVkVMKQogc3RhdGljIFBLRVlfVkFMVUVfUEFSVElBTF9JTkZPUk1BVElPTgog
UmVnaXN0cnlBbnNpVG9TeigKICAgICBQQU5TSV9TVFJJTkcgICAgICAgICAgICAgICAgICAgIEFu
c2kKQEAgLTEzMzksNiArMTM2Miw3IEBAIGZhaWwxOgogICAgIHJldHVybiBOVUxMOwogfQogCitf
X2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIHN0YXRpYyBQS0VZX1ZBTFVFX1BBUlRJ
QUxfSU5GT1JNQVRJT04KIFJlZ2lzdHJ5QW5zaVRvTXVsdGlTeigKICAgICBQQU5TSV9TVFJJTkcg
ICAgICAgICAgICAgICAgICAgIEFuc2kKQEAgLTEzOTIsNiArMTQxNiw3IEBAIGZhaWwxOgogICAg
IHJldHVybiBOVUxMOwogfQogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIE5U
U1RBVFVTCiBSZWdpc3RyeVVwZGF0ZVN6VmFsdWUoCiAgICAgSU4gIEhBTkRMRSAgICAgICAgICAg
ICAgICAgICAgICBLZXksCkBAIC0xNDgyLDYgKzE1MDcsNyBAQCBSZWdpc3RyeUZyZWVCaW5hcnlW
YWx1ZSgKICAgICBfX1JlZ2lzdHJ5RnJlZShCdWZmZXIpOwogfQogCitfX2Rydl9yZXF1aXJlc0lS
UUwoUEFTU0lWRV9MRVZFTCkKIFZPSUQKIFJlZ2lzdHJ5Q2xvc2VLZXkoCiAgICAgSU4gIEhBTkRM
RSAgS2V5CmRpZmYgLS1naXQgYS9zcmMveGVudmJkL3JlZ2lzdHJ5LmggYi9zcmMveGVudmJkL3Jl
Z2lzdHJ5LmgKaW5kZXggZDM5ZjAxNi4uOWJmNDkyZSAxMDA2NDQKLS0tIGEvc3JjL3hlbnZiZC9y
ZWdpc3RyeS5oCisrKyBiL3NyYy94ZW52YmQvcmVnaXN0cnkuaApAQCAtNDQsNiArNDQsNyBAQCBS
ZWdpc3RyeVRlYXJkb3duKAogICAgIFZPSUQKICAgICApOwogCitfX2Rydl9yZXF1aXJlc0lSUUwo
UEFTU0lWRV9MRVZFTCkKIGV4dGVybiBOVFNUQVRVUwogUmVnaXN0cnlPcGVuS2V5KAogICAgIElO
ICBIQU5ETEUgICAgICAgICAgUGFyZW50LApAQCAtNTIsNiArNTMsNyBAQCBSZWdpc3RyeU9wZW5L
ZXkoCiAgICAgT1VUIFBIQU5ETEUgICAgICAgICBLZXkKICAgICApOwogCitfX2Rydl9yZXF1aXJl
c0lSUUwoUEFTU0lWRV9MRVZFTCkKIGV4dGVybiBOVFNUQVRVUwogUmVnaXN0cnlDcmVhdGVLZXko
CiAgICAgSU4gIEhBTkRMRSAgICAgICAgICBQYXJlbnQsCkBAIC02MCwxNyArNjIsMjAgQEAgUmVn
aXN0cnlDcmVhdGVLZXkoCiAgICAgT1VUIFBIQU5ETEUgICAgICAgICBLZXkKICAgICApOwogCitf
X2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIGV4dGVybiBOVFNUQVRVUwogUmVnaXN0
cnlPcGVuU2VydmljZUtleSgKICAgICBJTiAgQUNDRVNTX01BU0sgRGVzaXJlZEFjY2VzcywKICAg
ICBPVVQgUEhBTkRMRSAgICAgS2V5CiAgICAgKTsKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJ
VkVfTEVWRUwpCiBleHRlcm4gTlRTVEFUVVMKIFJlZ2lzdHJ5Q3JlYXRlU2VydmljZUtleSgKICAg
ICBPVVQgUEhBTkRMRSAgICAgS2V5CiAgICAgKTsKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJ
VkVfTEVWRUwpCiBleHRlcm4gTlRTVEFUVVMKIFJlZ2lzdHJ5T3BlblNvZnR3YXJlS2V5KAogICAg
IElOICBQREVWSUNFX09CSkVDVCAgRGV2aWNlT2JqZWN0LApAQCAtNzgsNiArODMsNyBAQCBSZWdp
c3RyeU9wZW5Tb2Z0d2FyZUtleSgKICAgICBPVVQgUEhBTkRMRSAgICAgICAgIEtleQogICAgICk7
CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogZXh0ZXJuIE5UU1RBVFVTCiBS
ZWdpc3RyeU9wZW5IYXJkd2FyZUtleSgKICAgICBJTiAgUERFVklDRV9PQkpFQ1QgIERldmljZU9i
amVjdCwKQEAgLTg1LDYgKzkxLDcgQEAgUmVnaXN0cnlPcGVuSGFyZHdhcmVLZXkoCiAgICAgT1VU
IFBIQU5ETEUgICAgICAgICBLZXkKICAgICApOwogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lW
RV9MRVZFTCkKIGV4dGVybiBOVFNUQVRVUwogUmVnaXN0cnlPcGVuU3ViS2V5KAogICAgIElOICBI
QU5ETEUgICAgICBLZXksCkBAIC05Myw2ICsxMDAsNyBAQCBSZWdpc3RyeU9wZW5TdWJLZXkoCiAg
ICAgT1VUIFBIQU5ETEUgICAgIFN1YktleQogICAgICk7CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQ
QVNTSVZFX0xFVkVMKQogZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3RyeUNyZWF0ZVN1YktleSgKICAg
ICBJTiAgSEFORExFICAgICAgS2V5LApAQCAtMTAxLDEyICsxMDksMTQgQEAgUmVnaXN0cnlDcmVh
dGVTdWJLZXkoCiAgICAgT1VUIFBIQU5ETEUgICAgIFN1YktleQogICAgICk7CiAKK19fZHJ2X3Jl
cXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3RyeURlbGV0
ZVN1YktleSgKICAgICBJTiAgSEFORExFICAgICAgS2V5LAogICAgIElOICBQQ0hBUiAgICAgICBO
YW1lCiAgICAgKTsKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBleHRlcm4g
TlRTVEFUVVMKIFJlZ2lzdHJ5RW51bWVyYXRlU3ViS2V5cygKICAgICBJTiAgSEFORExFICAgICAg
S2V5LApAQCAtMTE0LDYgKzEyNCw3IEBAIFJlZ2lzdHJ5RW51bWVyYXRlU3ViS2V5cygKICAgICBJ
TiAgUFZPSUQgICAgICAgQ29udGV4dAogICAgICk7CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNT
SVZFX0xFVkVMKQogZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3RyeUVudW1lcmF0ZVZhbHVlcygKICAg
ICBJTiAgSEFORExFICAgICAgS2V5LApAQCAtMTIxLDI2ICsxMzIsMzAgQEAgUmVnaXN0cnlFbnVt
ZXJhdGVWYWx1ZXMoCiAgICAgSU4gIFBWT0lEICAgICAgIENvbnRleHQKICAgICApOwogCitfX2Ry
dl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIGV4dGVybiBOVFNUQVRVUwogUmVnaXN0cnlE
ZWxldGVWYWx1ZSgKICAgICBJTiAgSEFORExFICAgICAgS2V5LAogICAgIElOICBQQ0hBUiAgICAg
ICBOYW1lCiAgICAgKTsKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBleHRl
cm4gTlRTVEFUVVMKIFJlZ2lzdHJ5UXVlcnlEd29yZFZhbHVlKAogICAgIElOICBIQU5ETEUgICAg
ICAgICAgS2V5LAogICAgIElOICBQQ0hBUiAgICAgICAgICAgTmFtZSwKICAgICBPVVQgUFVMT05H
ICAgICAgICAgIFZhbHVlCiAgICAgKTsKLSAgICAKKworX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJ
VkVfTEVWRUwpCiBleHRlcm4gTlRTVEFUVVMKIFJlZ2lzdHJ5VXBkYXRlRHdvcmRWYWx1ZSgKICAg
ICBJTiAgSEFORExFICAgICAgICAgIEtleSwKICAgICBJTiAgUENIQVIgICAgICAgICAgIE5hbWUs
CiAgICAgSU4gIFVMT05HICAgICAgICAgICBWYWx1ZQogICAgICk7Ci0gICAgCisKK19fZHJ2X3Jl
cXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3RyeVF1ZXJ5
U3pWYWx1ZSgKICAgICBJTiAgSEFORExFICAgICAgICAgIEtleSwKQEAgLTE0OSw2ICsxNjQsNyBA
QCBSZWdpc3RyeVF1ZXJ5U3pWYWx1ZSgKICAgICBPVVQgUEFOU0lfU1RSSU5HICAgICpBcnJheQog
ICAgICk7CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogZXh0ZXJuIE5UU1RB
VFVTCiBSZWdpc3RyeVF1ZXJ5QmluYXJ5VmFsdWUoCiAgICAgSU4gIEhBTkRMRSAgICAgICAgICBL
ZXksCkBAIC0xNTcsNiArMTczLDcgQEAgUmVnaXN0cnlRdWVyeUJpbmFyeVZhbHVlKAogICAgIE9V
VCBQVUxPTkcgICAgICAgICAgTGVuZ3RoCiAgICAgKTsKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBB
U1NJVkVfTEVWRUwpCiBleHRlcm4gTlRTVEFUVVMKIFJlZ2lzdHJ5VXBkYXRlQmluYXJ5VmFsdWUo
CiAgICAgSU4gIEhBTkRMRSAgICAgICAgICBLZXksCkBAIC0xNjUsMTIgKzE4MiwxNCBAQCBSZWdp
c3RyeVVwZGF0ZUJpbmFyeVZhbHVlKAogICAgIElOICBVTE9ORyAgICAgICAgICAgTGVuZ3RoCiAg
ICAgKTsKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBleHRlcm4gTlRTVEFU
VVMKIFJlZ2lzdHJ5UXVlcnlLZXlOYW1lKAogICAgIElOICBIQU5ETEUgICAgICAgICAgICAgIEtl
eSwKICAgICBPVVQgUEFOU0lfU1RSSU5HICAgICAgICAqQXJyYXkKICAgICApOwogCitfX2Rydl9y
ZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIGV4dGVybiBOVFNUQVRVUwogUmVnaXN0cnlRdWVy
eVN5c3RlbVN0YXJ0T3B0aW9uKAogICAgIElOICBjb25zdCBDSEFSICAgICAgKlByZWZpeCwKQEAg
LTE4Nyw2ICsyMDYsNyBAQCBSZWdpc3RyeUZyZWVCaW5hcnlWYWx1ZSgKICAgICBJTiAgUFZPSUQg
ICAgICAgICAgIEJ1ZmZlcgogICAgICk7CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xF
VkVMKQogZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3RyeVVwZGF0ZVN6VmFsdWUoCiAgICAgSU4gIEhB
TkRMRSAgICAgICAgICBLZXksCkBAIC0xOTUsNiArMjE1LDcgQEAgUmVnaXN0cnlVcGRhdGVTelZh
bHVlKAogICAgIElOICBQQU5TSV9TVFJJTkcgICAgQXJyYXkKICAgICApOwogCitfX2Rydl9yZXF1
aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIGV4dGVybiBWT0lECiBSZWdpc3RyeUNsb3NlS2V5KAog
ICAgIElOICBIQU5ETEUgIEtleQotLSAKMi41LjMKCgpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwgbWFpbGluZyBsaXN0Cndpbi1wdi1k
ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL2Nn
aS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed Jun 28 16:00:43 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 28 Jun 2017 16:00:43 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dQFOU-0005gj-81; Wed, 28 Jun 2017 16:00:42 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=345db0ee5=owen.smith@citrix.com>)
 id 1dQFOS-0005gd-Nj
 for win-pv-devel@lists.xenproject.org; Wed, 28 Jun 2017 16:00:40 +0000
Received: from [85.158.143.35] by server-8.bemta-6.messagelabs.com id
 9E/21-03704-8A2D3595; Wed, 28 Jun 2017 16:00:40 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrPIsWRWlGSWpSXmKPExsWyU9JRQnfZpeB
 Ig8nrrS3+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxq9zi1kK3t9kquha/Y+1gXHDVaYuRk4OCQE/
 icuPN7OD2GwCGhIzOhezgNgiAiUS65Z9YgaxmQV8JTaueAQWFxaIktg0s40RoiZa4trCG8wQt
 pHE7snr2UBsFgFViZ2nzoLFeQXcJfoerAeyuTiEBJoYJeat3QpUxMHBCZRYd7IEpIZRQFbiS+
 NqqF3iEreezIe6TUBiyZ7zzBC2qMTLx/9YIWwDia1L97GAjGEW0JRYv0sfolVRYkr3Q3aItYI
 SJ2c+YZnAKDwLydRZCB2zkHTMQtKxgJFlFaN6cWpRWWqRrqFeUlFmekZJbmJmjq6hgZlebmpx
 cWJ6ak5iUrFecn7uJkZg4DMAwQ7Gnc+dDjFKcjApifLu/RIUKcSXlJ9SmZFYnBFfVJqTWnyIU
 YaDQ0mCt/BicKSQYFFqempFWmYOMAZh0hIcPEoivC9A0rzFBYm5xZnpEKlTjLocG1av/8IkxJ
 KXn5cqJc6bClIkAFKUUZoHNwKWDi4xykoJ8zICHSXEU5BalJtZgir/ilGcg1FJmPcoyBSezLw
 SuE2vgI5gAjqCZV4AyBEliQgpqQZG6Z+MvwJfF4fJ5+p5a97ntz15yI+tKnNzxqlTmb2HP57d
 x6spZK6V9CL4iuwBl/lPhTzMfVht/yVr+jNmlzIfV9mofXm/8Aofv6XCj9/bPwvpWGfJMvGTl
 fb55W1nHrDMdrAKmZoaO9274mHy0ndeU3ZnCLjrbnh+QGqL7XKt9I74805TGSKVWIozEg21mI
 uKEwFW9sb/AgMAAA==
X-Env-Sender: prvs=345db0ee5=owen.smith@citrix.com
X-Msg-Ref: server-3.tower-21.messagelabs.com!1498665638!67261506!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=UPPERCASE_25_50,
 received_headers: No Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 20791 invoked from network); 28 Jun 2017 16:00:38 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
 28 Jun 2017 16:00:38 -0000
X-IronPort-AV: E=Sophos;i="5.40,276,1496102400"; d="scan'208";a="48540551"
From: Owen Smith <owen.smith@citrix.com>
To: Paul Durrant <Paul.Durrant@citrix.com>,
 "win-pv-devel@lists.xenproject.org" <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 2/2] Added a function called from
 DriverEntry	where...
Thread-Index: AQHS8CS2yKrFb4tRYUy0k68uQLmk0qI6apag
Date: Wed, 28 Jun 2017 15:47:58 +0000
Message-ID: <6989e93e369e4e0baa1a91d03c133752@AMSPEX02CL02.citrite.net>
References: <1498664336-4607-1-git-send-email-paul.durrant@citrix.com>
 <1498664336-4607-2-git-send-email-paul.durrant@citrix.com>
In-Reply-To: <1498664336-4607-2-git-send-email-paul.durrant@citrix.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Eric Mackay <mackayem@amazon.com>, Paul Durrant <Paul.Durrant@citrix.com>
Subject: Re: [win-pv-devel] [PATCH 2/2] Added a function called from
 DriverEntry	where...
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IHdpbi1wdi1kZXZlbCBbbWFp
bHRvOndpbi1wdi1kZXZlbC1ib3VuY2VzQGxpc3RzLnhlbnByb2plY3Qub3JnXSBPbg0KPiBCZWhh
bGYgT2YgUGF1bCBEdXJyYW50DQo+IFNlbnQ6IDI4IEp1bmUgMjAxNyAxNjozOQ0KPiBUbzogd2lu
LXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBFcmljIE1hY2theSA8bWFja2F5
ZW1AYW1hem9uLmNvbT47IFBhdWwgRHVycmFudA0KPiA8UGF1bC5EdXJyYW50QGNpdHJpeC5jb20+
DQo+IFN1YmplY3Q6IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCAyLzJdIEFkZGVkIGEgZnVuY3Rpb24g
Y2FsbGVkIGZyb20NCj4gRHJpdmVyRW50cnkgd2hlcmUuLi4NCj4gDQo+IEZyb206IEVyaWMgTWFj
a2F5IDxtYWNrYXllbUBhbWF6b24uY29tPg0KPiANCj4gd2UgY2FuIHNhZmVseSByZWFkIHJlZ2lz
dHJ5IGtleXMgYW5kIGNvbnZlcnQgc3RyaW5ncyBhdCBQQVNTSVZFX0xFVkVMDQo+IA0KPiBUaGUg
TVNETiBkb2N1bWVudGF0aW9uIGZvciB2YXJpb3VzIHJlZ2lzdHJ5IGtleSBhY2Nlc3MgYW5kIHN0
cmluZw0KPiBjb252ZXJzaW9uIGZ1bmN0aW9ucyByZXF1aXJlcyB0aGUgY2FsbGVyIHRvIGJlIGF0
IFBBU1NJVkVfTEVWRUwuDQo+IE9uZSBvZiB0aGUgcmVhc29ucyBmb3IgdGhpcyBpcyB0aGF0IHRo
ZSBzdHJpbmcgY29udmVyc2lvbiB0YWJsZXMgdXNlZCBieQ0KPiBmdW5jdGlvbnMgc3VjaCBhcyBS
dGxBbnNpU3RyaW5nVG9Vbmljb2RlU3RyaW5nIGFyZSBzdG9yZWQgaW4gcGFnZWQgcG9vbA0KPiBt
ZW1vcnkuIEJvdGggdGhlIHBhZ2UgZmF1bHQgaGFuZGxlciBhbmQgdGhlIHByb2Nlc3Mgc2NoZWR1
bGVyIHJ1biBhdA0KPiBESVNQQVRDSF9MRVZFTCwgdGhlcmVmb3JlIHlvdSBtdXN0IG5vdCB0b3Vj
aCBtZW1vcnkgYXQgRElTUEFUQ0hfTEVWRUwNCj4gdGhhdCBjb3VsZCBiZSBwYWdlZCBvdXQuIEEg
cHJvY2VzcyBydW5uaW5nIGF0IERJU1BBVENIX0xFVkVMIGNhbm5vdCBiZQ0KPiBwcmVlbXB0ZWQg
Zm9yIHRoZSBwYWdlIGZhdWx0IGhhbmRsZXIgdG8gcnVuLg0KPiANCj4gVG8gYWlkIFN0YXRpYyBE
cml2ZXIgVmVyaWZpZXIgY29kZSBhbmFseXNpcyBhbmQgaW5mb3JtIGRldmVsb3BlcnMsIEkgaGF2
ZQ0KPiBhZGRlZCBTQUwgYW5ub3RhdGlvbnMgdGhhdCBpbmRpY2F0ZSBQQVNTSVZFX0xFVkVMIGlz
IHJlcXVpcmVkIG9uIGNlcnRhaW4NCj4gcmVnaXN0cnkgYWNjZXNzIGZ1bmN0aW9ucy4NCj4gDQo+
IFNpZ25lZC1vZmYtYnk6IEVyaWMgTWFja2F5IDxtYWNrYXllbUBhbWF6b24uY29tPg0KPiANCj4g
UmUtYmFzZWQgb250byBtYXN0ZXIgYW5kIGFkanVzdGVkIGZvciBzdHlsZS4gTm90ZSB0aGlzIGlu
dm9sdmVkIGZpeGluZw0KPiB3aGl0ZXNwYWNlIGlzc3VlcyBpbiBmcm9udGVuZC5jLg0KPiANCj4g
U2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4NCj4g
LS0tDQo+ICBzcmMveGVudmJkL2RyaXZlci5jICAgfCAgOTYgKysrKysrKysrKysrKysrKy0tDQo+
ICBzcmMveGVudmJkL2RyaXZlci5oICAgfCAgMzEgKysrKysrDQo+ICBzcmMveGVudmJkL2Zyb250
ZW5kLmMgfCAyNjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0NCj4gLS0t
LS0tLS0tLS0tDQo+ICBzcmMveGVudmJkL3JlZ2lzdHJ5LmMgfCAgMjYgKysrKysNCj4gIHNyYy94
ZW52YmQvcmVnaXN0cnkuaCB8ICAyNSArKysrLQ0KPiAgNSBmaWxlcyBjaGFuZ2VkLCAzNDIgaW5z
ZXJ0aW9ucygrKSwgMTA1IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL3NyYy94ZW52
YmQvZHJpdmVyLmMgYi9zcmMveGVudmJkL2RyaXZlci5jIGluZGV4IDYyYzNjYmIuLmY4ZDVlODIN
Cj4gMTAwNjQ0DQo+IC0tLSBhL3NyYy94ZW52YmQvZHJpdmVyLmMNCj4gKysrIGIvc3JjL3hlbnZi
ZC9kcml2ZXIuYw0KPiBAQCAtNDcsMTIgKzQ3LDIxIEBADQo+ICAjaW5jbHVkZSAiZGVidWcuaCIN
Cj4gICNpbmNsdWRlICJhc3NlcnQuaCINCj4gDQo+ICsvLyBGZWF0dXJlIE92ZXJyaWRlcyBGcm9t
IFJlZ2lzdHJ5IFZhbHVlcyB0eXBlZGVmIHN0cnVjdA0KPiArX1hFTlZCRF9GRUFUVVJFX09WRVJS
SURFIHsNCj4gKyAgICBQQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgTmFtZTsNCj4gKyAgICBV
TE9ORyAgICAgICAgICAgICAgICAgICAgICAgVmFsdWU7DQo+ICsgICAgQk9PTEVBTiAgICAgICAg
ICAgICAgICAgICAgIFByZXNlbnQ7DQo+ICt9IFhFTlZCRF9GRUFUVVJFX09WRVJSSURFLCAqUFhF
TlZCRF9GRUFUVVJFX09WRVJSSURFOw0KPiArDQo+ICB0eXBlZGVmIHN0cnVjdCBfWEVOVkJEX0RS
SVZFUiB7DQo+IC0gICAgUFhFTlZCRF9BREFQVEVSICAgICBBZGFwdGVyOw0KPiAtICAgIEhBTkRM
RSAgICAgICAgICAgICAgUGFyYW1ldGVyc0tleTsNCj4gLSAgICBQRFJJVkVSX0RJU1BBVENIICAg
IFN0b3JQb3J0RGlzcGF0Y2hQbnA7DQo+IC0gICAgUERSSVZFUl9ESVNQQVRDSCAgICBTdG9yUG9y
dERpc3BhdGNoUG93ZXI7DQo+IC0gICAgUERSSVZFUl9VTkxPQUQgICAgICBTdG9yUG9ydERyaXZl
clVubG9hZDsNCj4gKyAgICBQWEVOVkJEX0FEQVBURVIgICAgICAgICAgICAgQWRhcHRlcjsNCj4g
KyAgICBIQU5ETEUgICAgICAgICAgICAgICAgICAgICAgUGFyYW1ldGVyc0tleTsNCj4gKyAgICBQ
RFJJVkVSX0RJU1BBVENIICAgICAgICAgICAgU3RvclBvcnREaXNwYXRjaFBucDsNCj4gKyAgICBQ
RFJJVkVSX0RJU1BBVENIICAgICAgICAgICAgU3RvclBvcnREaXNwYXRjaFBvd2VyOw0KPiArICAg
IFBEUklWRVJfVU5MT0FEICAgICAgICAgICAgICBTdG9yUG9ydERyaXZlclVubG9hZDsNCj4gKyAg
ICBjb25zdCBDSEFSICAgICAgICAgICAgICAgICAgKkZlYXR1cmVOYW1lW051bWJlck9mRmVhdHVy
ZXNdOw0KDQpGZWF0dXJlTmFtZSBoZXJlIGlzIG5vdCBpbml0aWFsaXNlZCBvciB1c2VkLiBTdHJ1
Y3QgZW50cnkgY2FuIGJlIHJlbW92ZWQuDQoNCj4gKyAgICBYRU5WQkRfRkVBVFVSRV9PVkVSUklE
RSAgICAgRmVhdHVyZU92ZXJyaWRlW051bWJlck9mRmVhdHVyZXNdOw0KPiAgfSBYRU5WQkRfRFJJ
VkVSOw0KPiANCj4gIHN0YXRpYyBYRU5WQkRfRFJJVkVSIERyaXZlcjsNCj4gQEAgLTI0MCw3ICsy
NDksODAgQEAgRHJpdmVyVW5sb2FkKA0KPiAgICAgIFJlZ2lzdHJ5VGVhcmRvd24oKTsNCj4gIH0N
Cj4gDQo+IC1EUklWRVJfSU5JVElBTElaRSAgICAgICAgICAgRHJpdmVyRW50cnk7DQo+ICtfX2Ry
dl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gK3N0YXRpYyBGT1JDRUlOTElORSBWT0lE
DQo+ICtfX0RyaXZlckluaXRpYWxpemVPdmVycmlkZXMoDQo+ICsgICAgVk9JRA0KPiArICAgICkN
Cj4gK3sNCj4gKyAgICBVTE9ORyAgICAgICAgICAgSW5kZXg7DQo+ICsgICAgc3RydWN0IHsNCj4g
KyAgICAgICAgUENIQVIgICAgICAgICAgIE5hbWU7DQo+ICsgICAgICAgIFhFTlZCRF9GRUFUVVJF
ICBGZWF0dXJlOw0KPiArICAgIH0gTWFwcGluZ1tdID0NCj4gKyAgICAgICAgICB7DQo+ICsgICAg
ICAgICAgICAgIHsgInJlbW92YWJsZSIgLCBGZWF0dXJlUmVtb3ZhYmxlIH0sDQo+ICsgICAgICAg
ICAgICAgIHsgImZlYXR1cmUtcGVyc2lzdGVudCIsIEZlYXR1cmVQZXJzaXN0ZW50IH0sDQo+ICsg
ICAgICAgICAgICAgIHsgImZlYXR1cmUtbWF4LWluZGlyZWN0LXNlZ21lbnRzIiwgRmVhdHVyZU1h
eEluZGlyZWN0U2VnbWVudHMgfSwNCj4gKyAgICAgICAgICAgICAgeyAiZmVhdHVyZS1iYXJyaWVy
IiwgRmVhdHVyZUJhcnJpZXIgfSwNCj4gKyAgICAgICAgICAgICAgeyAiZmVhdHVyZS1mbHVzaC1j
YWNoZSIsIEZlYXR1cmVGbHVzaENhY2hlIH0sDQo+ICsgICAgICAgICAgICAgIHsgImZlYXR1cmUt
ZGlzY2FyZCIsIEZlYXR1cmVEaXNjYXJkIH0sDQo+ICsgICAgICAgICAgICAgIHsgImRpc2NhcmQt
ZW5hYmxlIiwgRmVhdHVyZURpc2NhcmRFbmFibGUgfSwNCj4gKyAgICAgICAgICAgICAgeyAiZGlz
Y2FyZC1zZWN1cmUiLCBGZWF0dXJlRGlzY2FyZFNlY3VyZSB9LA0KPiArICAgICAgICAgICAgICB7
ICJkaXNjYXJkLWFsaWdubWVudCIsIEZlYXR1cmVEaXNjYXJkQWxpZ25tZW50IH0sDQo+ICsgICAg
ICAgICAgICAgIHsgImRpc2NhcmQtZ3JhbnVsYXJpdHkiLCBGZWF0dXJlRGlzY2FyZEdyYW51bGFy
aXR5IH0NCj4gKyAgICAgICAgICB9Ow0KPiArDQo+ICsgICAgZm9yIChJbmRleCA9IDA7IEluZGV4
IDwgQVJSQVlTSVpFKE1hcHBpbmcpOyBJbmRleCsrKSB7DQo+ICsgICAgICAgIFhFTlZCRF9GRUFU
VVJFICBGZWF0dXJlID0gTWFwcGluZ1tJbmRleF0uRmVhdHVyZTsNCj4gKyAgICAgICAgUENIQVIg
ICAgICAgICAgIE5hbWUgPSBNYXBwaW5nW0luZGV4XS5OYW1lOw0KPiArICAgICAgICBVTE9ORyAg
ICAgICAgICAgVmFsdWU7DQo+ICsgICAgICAgIE5UU1RBVFVTICAgICAgICBzdGF0dXM7DQo+ICsN
Cj4gKyAgICAgICAgRHJpdmVyLkZlYXR1cmVPdmVycmlkZVtGZWF0dXJlXS5OYW1lID0gTmFtZTsN
Cj4gKw0KPiArICAgICAgICBzdGF0dXMgPSBSZWdpc3RyeVF1ZXJ5RHdvcmRWYWx1ZShfX0RyaXZl
ckdldFBhcmFtZXRlcnNLZXkoKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTmFtZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJlZhbHVlKTsNCj4gKw0KPiArICAgICAgICBpZiAoIU5UX1NVQ0NFU1Moc3RhdHVzKSkNCj4g
KyAgICAgICAgICAgIGNvbnRpbnVlOw0KPiArDQo+ICsgICAgICAgIERyaXZlci5GZWF0dXJlT3Zl
cnJpZGVbRmVhdHVyZV0uUHJlc2VudCA9IFRSVUU7DQo+ICsgICAgICAgIERyaXZlci5GZWF0dXJl
T3ZlcnJpZGVbRmVhdHVyZV0uVmFsdWUgPSBWYWx1ZTsNCj4gKyAgICB9DQo+ICt9DQo+ICsNCj4g
K19fY2hlY2tSZXR1cm4NCj4gK19TdWNjZXNzXyhyZXR1cm4pDQo+ICtCT09MRUFODQo+ICtEcml2
ZXJHZXRGZWF0dXJlT3ZlcnJpZGUoDQo+ICsgICAgSU4gIFhFTlZCRF9GRUFUVVJFICAgRmVhdHVy
ZSwNCj4gKyAgICBPVVQgUFVMT05HICAgICAgICAgICBWYWx1ZQ0KPiArICAgICkNCj4gK3sNCj4g
KyAgICBCT09MRUFOICAgICAgICAgICAgICBQcmVzZW50ID0gRkFMU0U7DQo+ICsNCj4gKyAgICBp
ZiAoRmVhdHVyZSA8IEFSUkFZU0laRShEcml2ZXIuRmVhdHVyZU92ZXJyaWRlKSkgew0KPiArICAg
ICAgICBQcmVzZW50ID0gRHJpdmVyLkZlYXR1cmVPdmVycmlkZVtGZWF0dXJlXS5QcmVzZW50Ow0K
PiArICAgICAgICAqVmFsdWUgPSBEcml2ZXIuRmVhdHVyZU92ZXJyaWRlW0ZlYXR1cmVdLlZhbHVl
Ow0KPiArICAgIH0NCj4gKw0KPiArICAgIHJldHVybiBQcmVzZW50Ow0KPiArfQ0KPiArDQo+ICtf
X2NoZWNrUmV0dXJuDQo+ICtQQ0hBUg0KPiArRHJpdmVyR2V0RmVhdHVyZU5hbWUoDQo+ICsgICAg
SU4gIFhFTlZCRF9GRUFUVVJFICBGZWF0dXJlDQo+ICsgICAgKQ0KPiArew0KPiArICAgIHJldHVy
biAoRmVhdHVyZSA8IEFSUkFZU0laRShEcml2ZXIuRmVhdHVyZU92ZXJyaWRlKSkgPw0KPiArICAg
ICAgICAgICBEcml2ZXIuRmVhdHVyZU92ZXJyaWRlW0ZlYXR1cmVdLk5hbWUgOg0KPiArICAgICAg
ICAgICBOVUxMOw0KPiArfQ0KPiArDQo+ICtEUklWRVJfSU5JVElBTElaRSAgIERyaXZlckVudHJ5
Ow0KPiANCj4gIE5UU1RBVFVTDQo+ICBEcml2ZXJFbnRyeSgNCj4gQEAgLTI4Nyw2ICszNjksOCBA
QCBEcml2ZXJFbnRyeSgNCj4gICAgICBEcml2ZXIuQWRhcHRlciA9IE5VTEw7DQo+ICAgICAgQnVm
ZmVySW5pdGlhbGl6ZSgpOw0KPiANCj4gKyAgICBfX0RyaXZlckluaXRpYWxpemVPdmVycmlkZXMo
KTsNCj4gKw0KPiAgICAgIHN0YXR1cyA9IEFkYXB0ZXJEcml2ZXJFbnRyeShSZWdpc3RyeVBhdGgs
DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERyaXZlck9iamVjdCk7DQo+ICAg
ICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+IGRpZmYgLS1naXQgYS9zcmMveGVudmJkL2Ry
aXZlci5oIGIvc3JjL3hlbnZiZC9kcml2ZXIuaCBpbmRleA0KPiAzODZjZDg0Li4wNDJjOGI2IDEw
MDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2RyaXZlci5oDQo+ICsrKyBiL3NyYy94ZW52YmQvZHJp
dmVyLmgNCj4gQEAgLTY3LDQgKzY3LDM1IEBAIERyaXZlclJlcXVlc3RSZWJvb3QoDQo+ICAgICAg
Vk9JRA0KPiAgICAgICk7DQo+IA0KPiArLy8gUmVnaXN0cnkgb3ZlcnJpZGVzIGZvciBkcml2ZXIg
ZmVhdHVyZXMgdHlwZWRlZiBlbnVtIF9YRU5WQkRfRkVBVFVSRQ0KPiArew0KPiArICAgIEZlYXR1
cmVSZW1vdmFibGUgPSAwLA0KPiArICAgIEZlYXR1cmVQZXJzaXN0ZW50LA0KPiArICAgIEZlYXR1
cmVNYXhJbmRpcmVjdFNlZ21lbnRzLA0KPiArICAgIEZlYXR1cmVCYXJyaWVyLA0KPiArICAgIEZl
YXR1cmVGbHVzaENhY2hlLA0KPiArICAgIEZlYXR1cmVEaXNjYXJkLA0KPiArICAgIEZlYXR1cmVE
aXNjYXJkRW5hYmxlLA0KPiArICAgIEZlYXR1cmVEaXNjYXJkU2VjdXJlLA0KPiArICAgIEZlYXR1
cmVEaXNjYXJkQWxpZ25tZW50LA0KPiArICAgIEZlYXR1cmVEaXNjYXJkR3JhbnVsYXJpdHksDQo+
ICsNCj4gKyAgICAvLyBBZGQgYW55IG5ldyBmZWF0dXJlcyBiZWZvcmUgdGhpcyBlbnVtDQo+ICsg
ICAgTnVtYmVyT2ZGZWF0dXJlcw0KPiArfSBYRU5WQkRfRkVBVFVSRSwgKlBYRU5WQkRfRkVBVFVS
RTsNCj4gKw0KPiArX19jaGVja1JldHVybg0KPiArX1N1Y2Nlc3NfKHJldHVybikNCj4gK2V4dGVy
biBCT09MRUFODQo+ICtEcml2ZXJHZXRGZWF0dXJlT3ZlcnJpZGUoDQo+ICsgICAgSU4gIFhFTlZC
RF9GRUFUVVJFICAgRmVhdHVyZSwNCj4gKyAgICBPVVQgUFVMT05HICAgICAgICAgICBWYWx1ZQ0K
PiArICAgICk7DQo+ICsNCj4gK19fY2hlY2tSZXR1cm4NCj4gK2V4dGVybiBQQ0hBUg0KPiArRHJp
dmVyR2V0RmVhdHVyZU5hbWUoDQo+ICsgICAgSU4gIFhFTlZCRF9GRUFUVVJFICBGZWF0dXJlDQo+
ICsgICAgKTsNCj4gKw0KPiAgI2VuZGlmIC8vIF9YRU5WQkRfRFJJVkVSX0gNCj4gZGlmZiAtLWdp
dCBhL3NyYy94ZW52YmQvZnJvbnRlbmQuYyBiL3NyYy94ZW52YmQvZnJvbnRlbmQuYyBpbmRleA0K
PiAxM2FiOWI0Li4xNDc3NDE3IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL2Zyb250ZW5kLmMN
Cj4gKysrIGIvc3JjL3hlbnZiZC9mcm9udGVuZC5jDQo+IEBAIC02MjAsMTUgKzYyMCw1NSBAQCBh
Ym9ydDoNCj4gDQo+ICBzdGF0aWMgRk9SQ0VJTkxJTkUgQk9PTEVBTg0KPiAgRnJvbnRlbmRSZWFk
RmVhdHVyZSgNCj4gLSAgICBJTiAgUFhFTlZCRF9GUk9OVEVORCAgICAgICAgICAgIEZyb250ZW5k
LA0KPiAtICAgIElOICBQQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgTmFtZSwNCj4gLSAgICBJ
TiAgUEJPT0xFQU4gICAgICAgICAgICAgICAgICAgIFZhbHVlDQo+ICsgICAgSU4gIFBYRU5WQkRf
RlJPTlRFTkQgICAgRnJvbnRlbmQsDQo+ICsgICAgSU4gIFhFTlZCRF9GRUFUVVJFICAgICAgRmVh
dHVyZSwNCj4gKyAgICBJTiAgUEJPT0xFQU4gICAgICAgICAgICBWYWx1ZQ0KPiArKQ0KPiArew0K
PiArICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsNCj4gKyAgICBQQ0hBUiAgICAg
ICAgICAgICAgICAgICBCdWZmZXI7DQo+ICsgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgT3Zl
cnJpZGU7DQo+ICsgICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgT2xkID0gKlZhbHVlOw0KPiAr
ICAgIFBDSEFSICAgICAgICAgICAgICAgICAgIE5hbWU7DQo+ICsNCj4gKyAgICBOYW1lID0gRHJp
dmVyR2V0RmVhdHVyZU5hbWUoRmVhdHVyZSk7DQo+ICsgICAgaWYgKE5hbWUgPT0gTlVMTCkgew0K
PiArICAgICAgICBUcmFjZSgiVGFyZ2V0WyVkXSA6IENvdWxkIG5vdCBmaW5kIEZlYXR1cmUgJXUu
XG4iLCBGcm9udGVuZC0+VGFyZ2V0SWQsDQo+IEZlYXR1cmUpOw0KPiArICAgICAgICByZXR1cm4g
RkFMU0U7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgaWYgKERyaXZlckdldEZlYXR1cmVPdmVycmlk
ZShGZWF0dXJlLCAmT3ZlcnJpZGUpKSB7DQo+ICsgICAgICAgICpWYWx1ZSA9ICEhT3ZlcnJpZGU7
DQo+ICsgICAgfSBlbHNlIHsNCj4gKyAgICAgICAgc3RhdHVzID0gWEVOQlVTX1NUT1JFKFJlYWQs
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPlN0b3JlSW50ZXJm
YWNlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kLT5CYWNrZW5kUGF0aCwNCj4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE5hbWUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmQnVmZmVyKTsNCj4gKyAgICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpDQo+ICsg
ICAgICAgICAgICByZXR1cm4gRkFMU0U7ICAgLy8gbm8gdmFsdWUsIHVuY2hhbmdlZA0KPiArDQo+
ICsgICAgICAgICpWYWx1ZSA9ICEhKHN0cnRvdWwoQnVmZmVyLCBOVUxMLCAxMCkpOw0KPiArDQo+
ICsgICAgICAgIFhFTkJVU19TVE9SRShGcmVlLA0KPiArICAgICAgICAgICAgICAgICAgICAgJkZy
b250ZW5kLT5TdG9yZUludGVyZmFjZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcik7
DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgcmV0dXJuIE9sZCAhPSAqVmFsdWU7DQo+ICt9DQo+ICsN
Cj4gK3N0YXRpYyBGT1JDRUlOTElORSBCT09MRUFODQo+ICtGcm9udGVuZFJlYWREaXNrRmVhdHVy
ZSgNCj4gKyAgICBJTiAgUFhFTlZCRF9GUk9OVEVORCAgICBGcm9udGVuZCwNCj4gKyAgICBJTiAg
UENIQVIgICAgICAgICAgICAgICBOYW1lLA0KPiArICAgIElOICBQQk9PTEVBTiAgICAgICAgICAg
IFZhbHVlDQo+ICAgICAgKQ0KPiAgew0KPiAtICAgIE5UU1RBVFVTICAgICAgICBzdGF0dXM7DQo+
IC0gICAgUENIQVIgICAgICAgICAgIEJ1ZmZlcjsNCj4gLSAgICBVTE9ORyAgICAgICAgICAgT3Zl
cnJpZGU7DQo+IC0gICAgQk9PTEVBTiAgICAgICAgIE9sZCA9ICpWYWx1ZTsNCj4gKyAgICBOVFNU
QVRVUyAgICAgICAgICAgICAgICBzdGF0dXM7DQo+ICsgICAgUENIQVIgICAgICAgICAgICAgICAg
ICAgQnVmZmVyOw0KPiArICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgIE9sZCA9ICpWYWx1ZTsN
Cj4gDQo+ICAgICAgc3RhdHVzID0gWEVOQlVTX1NUT1JFKFJlYWQsDQo+ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZGcm9udGVuZC0+U3RvcmVJbnRlcmZhY2UsIEBAIC02NDAsMzQgKzY4MCw2
NyBAQA0KPiBGcm9udGVuZFJlYWRGZWF0dXJlKA0KPiAgICAgICAgICByZXR1cm4gRkFMU0U7ICAg
Ly8gbm8gdmFsdWUsIHVuY2hhbmdlZA0KPiANCj4gICAgICAqVmFsdWUgPSAhIShzdHJ0b3VsKEJ1
ZmZlciwgTlVMTCwgMTApKTsNCj4gKw0KPiAgICAgIFhFTkJVU19TVE9SRShGcmVlLA0KPiAtICAg
ICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPlN0b3JlSW50ZXJmYWNlLA0KPiAtICAgICAgICAg
ICAgICAgICAgICBCdWZmZXIpOw0KPiArICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPlN0b3Jl
SW50ZXJmYWNlLA0KPiArICAgICAgICAgICAgICAgICBCdWZmZXIpOw0KPiArDQo+ICsgICAgcmV0
dXJuIE9sZCAhPSAqVmFsdWU7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBGT1JDRUlOTElORSBCT09M
RUFODQo+ICtGcm9udGVuZFJlYWRWYWx1ZTMyKA0KPiArICAgIElOICBQWEVOVkJEX0ZST05URU5E
ICAgIEZyb250ZW5kLA0KPiArICAgIElOICBYRU5WQkRfRkVBVFVSRSAgICAgIEZlYXR1cmUsDQo+
ICsgICAgSU4gIEJPT0xFQU4gICAgICAgICAgICAgQWxsb3dPdmVycmlkZSwNCj4gKyAgICBJTiAg
UFVMT05HICAgICAgICAgICAgICBWYWx1ZQ0KPiArKQ0KPiArew0KPiArICAgIE5UU1RBVFVTICAg
ICAgICAgICAgICAgIHN0YXR1czsNCj4gKyAgICBQQ0hBUiAgICAgICAgICAgICAgICAgICBCdWZm
ZXI7DQo+ICsgICAgVUxPTkcgICAgICAgICAgICAgICAgICAgT3ZlcnJpZGU7DQo+ICsgICAgVUxP
TkcgICAgICAgICAgICAgICAgICAgT2xkID0gKlZhbHVlOw0KPiArICAgIFBTVFIgICAgICAgICAg
ICAgICAgICAgIE5hbWU7DQo+ICsNCj4gKyAgICBOYW1lID0gRHJpdmVyR2V0RmVhdHVyZU5hbWUo
RmVhdHVyZSk7DQo+ICsgICAgaWYgKE5hbWUgPT0gTlVMTCkgew0KPiArICAgICAgICBUcmFjZSgi
VGFyZ2V0WyVkXSA6IENvdWxkIG5vdCBmaW5kIEZlYXR1cmUgJXUuXG4iLCBGcm9udGVuZC0+VGFy
Z2V0SWQsDQo+IEZlYXR1cmUpOw0KPiArICAgICAgICByZXR1cm4gRkFMU0U7DQo+ICsgICAgfQ0K
PiANCj4gICAgICAvLyBjaGVjayByZWdpc3RyeSBmb3IgZGlzYWJsZS1vdmVycmlkZQ0KPiAtICAg
IHN0YXR1cyA9IFJlZ2lzdHJ5UXVlcnlEd29yZFZhbHVlKERyaXZlckdldFBhcmFtZXRlcnNLZXko
KSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUsDQo+IC0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmT3ZlcnJpZGUpOw0KPiAtICAgIGlmIChO
VF9TVUNDRVNTKHN0YXR1cykpIHsNCj4gLSAgICAgICAgaWYgKE92ZXJyaWRlID09IDApDQo+IC0g
ICAgICAgICAgICAqVmFsdWUgPSBGQUxTRTsNCj4gKyAgICBpZiAoQWxsb3dPdmVycmlkZSAmJiBE
cml2ZXJHZXRGZWF0dXJlT3ZlcnJpZGUoRmVhdHVyZSwgJk92ZXJyaWRlKSkgew0KPiArICAgICAg
ICAqVmFsdWUgPSBPdmVycmlkZTsNCj4gKyAgICB9IGVsc2Ugew0KPiArICAgICAgICBzdGF0dXMg
PSBYRU5CVVNfU1RPUkUoUmVhZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZG
cm9udGVuZC0+U3RvcmVJbnRlcmZhY2UsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOVUxMLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQtPkJhY2tl
bmRQYXRoLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSwNCj4gKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZCdWZmZXIpOw0KPiArICAgICAgICBpZiAoIU5UX1NV
Q0NFU1Moc3RhdHVzKSkNCj4gKyAgICAgICAgICAgIHJldHVybiBGQUxTRTsgICAvLyBubyB2YWx1
ZSwgdW5jaGFuZ2VkDQo+ICsNCj4gKyAgICAgICAgKlZhbHVlID0gc3RydG91bChCdWZmZXIsIE5V
TEwsIDEwKTsNCj4gKw0KPiArICAgICAgICBYRU5CVVNfU1RPUkUoRnJlZSwNCj4gKyAgICAgICAg
ICAgICAgICAgICAgICZGcm9udGVuZC0+U3RvcmVJbnRlcmZhY2UsDQo+ICsgICAgICAgICAgICAg
ICAgICAgICBCdWZmZXIpOw0KPiAgICAgIH0NCj4gDQo+ICAgICAgcmV0dXJuIE9sZCAhPSAqVmFs
dWU7DQo+ICB9DQo+IA0KPiAgc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4NCj4gLUZyb250ZW5k
UmVhZFZhbHVlMzIoDQo+IC0gICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQgICAgICAgICAgICBGcm9u
dGVuZCwNCj4gLSAgICBJTiAgUENIQVIgICAgICAgICAgICAgICAgICAgICAgIE5hbWUsDQo+IC0g
ICAgSU4gIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICBBbGxvd092ZXJyaWRlLA0KPiAtICAg
IElOICBQVUxPTkcgICAgICAgICAgICAgICAgICAgICAgVmFsdWUNCj4gLSAgICApDQo+ICtGcm9u
dGVuZFJlYWREaXNrVmFsdWUzMigNCj4gKyAgICBJTiAgUFhFTlZCRF9GUk9OVEVORCAgICBGcm9u
dGVuZCwNCj4gKyAgICBJTiAgUENIQVIgICAgICAgICAgICAgICBOYW1lLA0KPiArICAgIElOICBQ
VUxPTkcgICAgICAgICAgICAgIFZhbHVlDQo+ICspDQo+ICB7DQo+IC0gICAgTlRTVEFUVVMgICAg
ICAgIHN0YXR1czsNCj4gLSAgICBQQ0hBUiAgICAgICAgICAgQnVmZmVyOw0KPiAtICAgIFVMT05H
ICAgICAgICAgICBPdmVycmlkZTsNCj4gLSAgICBVTE9ORyAgICAgICAgICAgT2xkID0gKlZhbHVl
Ow0KPiArICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsNCj4gKyAgICBQQ0hBUiAg
ICAgICAgICAgICAgICAgICBCdWZmZXI7DQo+ICsgICAgVUxPTkcgICAgICAgICAgICAgICAgICAg
T2xkID0gKlZhbHVlOw0KPiANCj4gICAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUoUmVhZCwNCj4g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5TdG9yZUludGVyZmFjZSwgQEAg
LTY3OSwzMyArNzUyLDI0IEBADQo+IEZyb250ZW5kUmVhZFZhbHVlMzIoDQo+ICAgICAgICAgIHJl
dHVybiBGQUxTRTsgICAvLyBubyB2YWx1ZSwgdW5jaGFuZ2VkDQo+IA0KPiAgICAgICpWYWx1ZSA9
IHN0cnRvdWwoQnVmZmVyLCBOVUxMLCAxMCk7DQo+IC0gICAgWEVOQlVTX1NUT1JFKEZyZWUsDQo+
IC0gICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+U3RvcmVJbnRlcmZhY2UsDQo+IC0gICAg
ICAgICAgICAgICAgICAgIEJ1ZmZlcik7DQo+IA0KPiAtICAgIC8vIGNoZWNrIHJlZ2lzdHJ5IGZv
ciBkaXNhYmxlLW92ZXJyaWRlDQo+IC0gICAgaWYgKEFsbG93T3ZlcnJpZGUpIHsNCj4gLSAgICAg
ICAgc3RhdHVzID0gUmVnaXN0cnlRdWVyeUR3b3JkVmFsdWUoRHJpdmVyR2V0UGFyYW1ldGVyc0tl
eSgpLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUsDQo+
IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJk92ZXJyaWRlKTsNCj4g
LSAgICAgICAgaWYgKE5UX1NVQ0NFU1Moc3RhdHVzKSkgew0KPiAtICAgICAgICAgICAgKlZhbHVl
ID0gT3ZlcnJpZGU7DQo+IC0gICAgICAgIH0NCj4gLSAgICB9DQo+ICsgICAgWEVOQlVTX1NUT1JF
KEZyZWUsDQo+ICsgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+U3RvcmVJbnRlcmZhY2UsDQo+
ICsgICAgICAgICAgICAgICAgIEJ1ZmZlcik7DQo+IA0KPiAgICAgIHJldHVybiBPbGQgIT0gKlZh
bHVlOw0KPiAgfQ0KPiANCj4gIHN0YXRpYyBGT1JDRUlOTElORSBCT09MRUFODQo+ICBGcm9udGVu
ZFJlYWRWYWx1ZTY0KA0KPiAtICAgIElOICBQWEVOVkJEX0ZST05URU5EICAgICAgICAgICAgRnJv
bnRlbmQsDQo+IC0gICAgSU4gIFBDSEFSICAgICAgICAgICAgICAgICAgICAgICBOYW1lLA0KPiAt
ICAgIElOIE9VVCBQVUxPTkc2NCAgICAgICAgICAgICAgICAgVmFsdWUNCj4gKyAgICBJTiAgUFhF
TlZCRF9GUk9OVEVORCAgICBGcm9udGVuZCwNCj4gKyAgICBJTiAgUENIQVIgICAgICAgICAgICAg
ICBOYW1lLA0KPiArICAgIElOIE9VVCBQVUxPTkc2NCAgICAgICAgIFZhbHVlDQo+ICAgICAgKQ0K
PiAgew0KPiAtICAgIE5UU1RBVFVTICAgICAgICBzdGF0dXM7DQo+IC0gICAgUENIQVIgICAgICAg
ICAgIEJ1ZmZlcjsNCj4gLSAgICBVTE9ORzY0ICAgICAgICAgT2xkID0gKlZhbHVlOw0KPiArICAg
IE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsNCj4gKyAgICBQQ0hBUiAgICAgICAgICAg
ICAgICAgICBCdWZmZXI7DQo+ICsgICAgVUxPTkc2NCAgICAgICAgICAgICAgICAgT2xkID0gKlZh
bHVlOw0KPiANCj4gICAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUoUmVhZCwNCj4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5TdG9yZUludGVyZmFjZSwgQEAgLTcxNyw1NyAr
NzgxLDU5IEBADQo+IEZyb250ZW5kUmVhZFZhbHVlNjQoDQo+ICAgICAgICAgIHJldHVybiBGQUxT
RTsgICAvLyBubyB2YWx1ZSwgdW5jaGFuZ2VkDQo+IA0KPiAgICAgICpWYWx1ZSA9IF9zdHJ0b3Vp
NjQoQnVmZmVyLCBOVUxMLCAxMCk7DQo+ICsNCj4gICAgICBYRU5CVVNfU1RPUkUoRnJlZSwNCj4g
LSAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5TdG9yZUludGVyZmFjZSwNCj4gLSAgICAg
ICAgICAgICAgICAgICAgQnVmZmVyKTsNCj4gKyAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5T
dG9yZUludGVyZmFjZSwNCj4gKyAgICAgICAgICAgICAgICAgQnVmZmVyKTsNCj4gDQo+ICAgICAg
cmV0dXJuIE9sZCAhPSAqVmFsdWU7DQo+ICB9DQo+IA0KPiAgc3RhdGljIEZPUkNFSU5MSU5FIFVM
T05HDQo+ICBfX1NpemUoDQo+IC0gICAgX19pbiAgUFhFTlZCRF9ESVNLSU5GTyAgICAgICAgICBJ
bmZvDQo+ICsgICAgX19pbiAgUFhFTlZCRF9ESVNLSU5GTyAgSW5mbw0KPiAgICAgICkNCj4gIHsN
Cj4gLSAgICBVTE9ORzY0IE1CeXRlcyA9IChJbmZvLT5TZWN0b3JTaXplICogSW5mby0+U2VjdG9y
Q291bnQpID4+IDIwOyAvLyAvDQo+ICgxMDI0ICogMTAyNCk7DQo+ICsgICAgVUxPTkc2NCAgICAg
ICAgICAgICAgICAgTUJ5dGVzID0gKEluZm8tPlNlY3RvclNpemUgKiBJbmZvLT5TZWN0b3JDb3Vu
dCkgPj4NCj4gMjA7IC8vIC8gKDEwMjQgKiAxMDI0KTsNCj4gKw0KPiAgICAgIGlmIChNQnl0ZXMg
PCAxMDI0MCkNCj4gICAgICAgICAgcmV0dXJuIChVTE9ORylNQnl0ZXM7DQo+ICsNCj4gICAgICBy
ZXR1cm4gKFVMT05HKShNQnl0ZXMgPj4gMTApOyAvLyAvIDEwMjQgIH0gIHN0YXRpYyBGT1JDRUlO
TElORSBQQ0hBUg0KPiBfX1VuaXRzKA0KPiAtICAgIF9faW4gIFBYRU5WQkRfRElTS0lORk8gICAg
ICAgICAgSW5mbw0KPiArICAgIF9faW4gIFBYRU5WQkRfRElTS0lORk8gIEluZm8NCj4gICAgICAp
DQo+ICB7DQo+IC0gICAgVUxPTkc2NCBNQnl0ZXMgPSAoSW5mby0+U2VjdG9yU2l6ZSAqIEluZm8t
PlNlY3RvckNvdW50KSA+PiAyMDsgLy8gLw0KPiAoMTAyNCAqIDEwMjQpOw0KPiArICAgIFVMT05H
NjQgICAgICAgICAgICAgICAgIE1CeXRlcyA9IChJbmZvLT5TZWN0b3JTaXplICogSW5mby0+U2Vj
dG9yQ291bnQpID4+DQo+IDIwOyAvLyAvICgxMDI0ICogMTAyNCk7DQo+ICsNCj4gICAgICBpZiAo
TUJ5dGVzIDwgMTAyNDApDQo+ICAgICAgICAgIHJldHVybiAiTUIiOw0KPiArDQo+ICAgICAgcmV0
dXJuICJHQiI7DQo+ICB9DQo+IA0KPiAgX19kcnZfcmVxdWlyZXNJUlFMKERJU1BBVENIX0xFVkVM
KQ0KPiAgc3RhdGljIFZPSUQNCj4gIF9fUmVhZERpc2tJbmZvKA0KPiAtICAgIF9faW4gIFBYRU5W
QkRfRlJPTlRFTkQgICAgICAgIEZyb250ZW5kDQo+ICsgICAgX19pbiAgUFhFTlZCRF9GUk9OVEVO
RCAgRnJvbnRlbmQNCj4gICAgICApDQo+ICB7DQo+IC0gICAgQk9PTEVBTiBDaGFuZ2VkID0gRkFM
U0U7DQo+IC0NCj4gLSAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZFZhbHVlMzIoRnJvbnRlbmQs
DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImluZm8iLA0KPiAtICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFLA0KPiAtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uRGlza0luZm8pOw0KPiAtICAgIENo
YW5nZWQgfD0gRnJvbnRlbmRSZWFkVmFsdWUzMihGcm9udGVuZCwNCj4gLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic2VjdG9yLXNpemUiLA0KPiAtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIEZBTFNFLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZGcm9udGVuZC0+RGlza0luZm8uU2VjdG9yU2l6ZSk7DQo+IC0gICAgQ2hhbmdlZCB8PSBG
cm9udGVuZFJlYWRWYWx1ZTMyKEZyb250ZW5kLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJwaHlzaWNhbC1zZWN0b3Itc2l6ZSIsDQo+IC0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRkFMU0UsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJkZyb250ZW5kLT5EaXNrSW5mby5QaHlzU2VjdG9yU2l6ZSk7DQo+ICsgICAgQk9PTEVBTiAg
ICAgICAgICAgICAgICAgQ2hhbmdlZDsNCj4gKw0KPiArICAgIENoYW5nZWQgPSBGcm9udGVuZFJl
YWREaXNrVmFsdWUzMihGcm9udGVuZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImluZm8iLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmRnJvbnRlbmQtPkRpc2tJbmZvLkRpc2tJbmZvKTsNCj4gKyAgICBDaGFuZ2VkIHw9IEZyb250
ZW5kUmVhZERpc2tWYWx1ZTMyKEZyb250ZW5kLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInNlY3Rvci1zaXplIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uU2VjdG9yU2l6ZSk7DQo+ICsgICAg
Q2hhbmdlZCB8PSBGcm9udGVuZFJlYWREaXNrVmFsdWUzMihGcm9udGVuZCwNCj4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwaHlzaWNhbC1zZWN0b3Itc2l6ZSIsDQo+
ICsNCj4gKyAmRnJvbnRlbmQtPkRpc2tJbmZvLlBoeXNTZWN0b3JTaXplKTsNCj4gICAgICBDaGFu
Z2VkIHw9IEZyb250ZW5kUmVhZFZhbHVlNjQoRnJvbnRlbmQsDQo+IC0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInNlY3RvcnMiLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uU2VjdG9yQ291bnQpOw0KPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAic2VjdG9ycyIsDQo+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uU2VjdG9yQ291bnQpOw0KPiAN
Cj4gICAgICBpZiAoIUNoYW5nZWQpDQo+ICAgICAgICAgIHJldHVybjsNCj4gQEAgLTc5MSw0MCAr
ODU3LDQxIEBAIF9fUmVhZERpc2tJbmZvKA0KPiANCj4gICAgICAvLyBkdW1wIGFjdHVhbCB2YWx1
ZXMNCj4gICAgICBWZXJib3NlKCJUYXJnZXRbJWRdIDogJWxsZCBzZWN0b3JzIG9mICVkIGJ5dGVz
ICglZClcbiIsIEZyb250ZW5kLQ0KPiA+VGFyZ2V0SWQsDQo+IC0gICAgICAgICAgICAgICAgRnJv
bnRlbmQtPkRpc2tJbmZvLlNlY3RvckNvdW50LCBGcm9udGVuZC0+RGlza0luZm8uU2VjdG9yU2l6
ZSwNCj4gLSAgICAgICAgICAgICAgICBGcm9udGVuZC0+RGlza0luZm8uUGh5c1NlY3RvclNpemUp
Ow0KPiArICAgICAgICAgICAgRnJvbnRlbmQtPkRpc2tJbmZvLlNlY3RvckNvdW50LCBGcm9udGVu
ZC0+RGlza0luZm8uU2VjdG9yU2l6ZSwNCj4gKyAgICAgICAgICAgIEZyb250ZW5kLT5EaXNrSW5m
by5QaHlzU2VjdG9yU2l6ZSk7DQo+ICAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6ICVkICVzICgl
MDh4KSAlc1xuIiwgRnJvbnRlbmQtPlRhcmdldElkLA0KPiAtICAgICAgICAgICAgICAgIF9fU2l6
ZSgmRnJvbnRlbmQtPkRpc2tJbmZvKSwgX19Vbml0cygmRnJvbnRlbmQtPkRpc2tJbmZvKSwNCj4g
LSAgICAgICAgICAgICAgICBGcm9udGVuZC0+RGlza0luZm8uRGlza0luZm8sDQo+IC0gICAgICAg
ICAgICAgICAgRnJvbnRlbmQtPkNhcHMuU3VycHJpc2VSZW1vdmFibGUgPyAiU1VSUFJJU0VfUkVN
T1ZBQkxFIiA6DQo+ICIiKTsNCj4gKyAgICAgICAgICAgIF9fU2l6ZSgmRnJvbnRlbmQtPkRpc2tJ
bmZvKSwgX19Vbml0cygmRnJvbnRlbmQtPkRpc2tJbmZvKSwNCj4gKyAgICAgICAgICAgIEZyb250
ZW5kLT5EaXNrSW5mby5EaXNrSW5mbywNCj4gKyAgICAgICAgICAgIEZyb250ZW5kLT5DYXBzLlN1
cnByaXNlUmVtb3ZhYmxlID8gIlNVUlBSSVNFX1JFTU9WQUJMRSIgOg0KPiArICIiKTsNCj4gIH0N
Cj4gDQo+ICBzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRA0KPiAgRnJvbnRlbmRSZWFkRmVhdHVyZXMo
DQo+IC0gICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQgICAgICAgICAgICBGcm9udGVuZA0KPiArICAg
IElOICBQWEVOVkJEX0ZST05URU5EICAgIEZyb250ZW5kDQo+ICAgICAgKQ0KPiAgew0KPiAtICAg
IEJPT0xFQU4gQ2hhbmdlZCA9IEZBTFNFOw0KPiArICAgIEJPT0xFQU4gICAgICAgICAgICAgICAg
IENoYW5nZWQ7DQo+IA0KPiAtICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFkRmVhdHVyZShGcm9u
dGVuZCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlbW92YWJsZSIs
DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+Q2Fwcy5S
ZW1vdmFibGUpOw0KPiArICAgIENoYW5nZWQgPSBGcm9udGVuZFJlYWRGZWF0dXJlKEZyb250ZW5k
LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVSZW1vdmFibGUs
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5DYXBzLlJl
bW92YWJsZSk7DQo+ICAgICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWRWYWx1ZTMyKEZyb250ZW5k
LA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmVhdHVyZS1tYXgtaW5k
aXJlY3Qtc2VnbWVudHMiLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG
ZWF0dXJlTWF4SW5kaXJlY3RTZWdtZW50cywNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVFJVRSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZy
b250ZW5kLT5GZWF0dXJlcy5JbmRpcmVjdCk7DQo+ICAgICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJl
YWRGZWF0dXJlKEZyb250ZW5kLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZmVhdHVyZS1wZXJzaXN0ZW50IiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRmVhdHVyZVBlcnNpc3RlbnQsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZGcm9udGVuZC0+RmVhdHVyZXMuUGVyc2lzdGVudCk7DQo+IA0KPiAgICAgIGlmICgh
Q2hhbmdlZCkNCj4gICAgICAgICAgcmV0dXJuOw0KPiANCj4gICAgICBWZXJib3NlKCJUYXJnZXRb
JWRdIDogRmVhdHVyZXM6ICVzJXMlc1xuIiwNCj4gLSAgICAgICAgICAgICAgICBGcm9udGVuZC0+
VGFyZ2V0SWQsDQo+IC0gICAgICAgICAgICAgICAgRnJvbnRlbmQtPkZlYXR1cmVzLlBlcnNpc3Rl
bnQgPyAiUEVSU0lTVEVOVCAiIDogIiIsDQo+IC0gICAgICAgICAgICAgICAgRnJvbnRlbmQtPkZl
YXR1cmVzLkluZGlyZWN0ID8gIklORElSRUNUICIgOiAiIiwNCj4gLSAgICAgICAgICAgICAgICBG
cm9udGVuZC0+Q2Fwcy5SZW1vdmFibGUgPyAiUkVNT1ZBQkxFIiA6ICIiKTsNCj4gKyAgICAgICAg
ICAgIEZyb250ZW5kLT5UYXJnZXRJZCwNCj4gKyAgICAgICAgICAgIEZyb250ZW5kLT5GZWF0dXJl
cy5QZXJzaXN0ZW50ID8gIlBFUlNJU1RFTlQgIiA6ICIiLA0KPiArICAgICAgICAgICAgRnJvbnRl
bmQtPkZlYXR1cmVzLkluZGlyZWN0ID8gIklORElSRUNUICIgOiAiIiwNCj4gKyAgICAgICAgICAg
IEZyb250ZW5kLT5DYXBzLlJlbW92YWJsZSA/ICJSRU1PVkFCTEUiIDogIiIpOw0KPiArDQo+ICAg
ICAgaWYgKEZyb250ZW5kLT5GZWF0dXJlcy5JbmRpcmVjdCkgew0KPiAgICAgICAgICBWZXJib3Nl
KCJUYXJnZXRbJWRdIDogSU5ESVJFQ1QgJXhcbiIsDQo+ICAgICAgICAgICAgICAgICAgICAgIEZy
b250ZW5kLT5UYXJnZXRJZCwgQEAgLTgzNCw0MCArOTAxLDQ0IEBADQo+IEZyb250ZW5kUmVhZEZl
YXR1cmVzKA0KPiANCj4gIHN0YXRpYyBGT1JDRUlOTElORSBWT0lEDQo+ICBGcm9udGVuZFJlYWRE
aXNrSW5mbygNCj4gLSAgICBJTiAgUFhFTlZCRF9GUk9OVEVORCAgICAgICAgICAgIEZyb250ZW5k
DQo+ICsgICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQgICAgRnJvbnRlbmQNCj4gICAgICApDQo+ICB7
DQo+IC0gICAgQk9PTEVBTiBDaGFuZ2VkID0gRkFMU0U7DQo+IC0gICAgQk9PTEVBTiBEaXNjYXJk
Ow0KPiAtICAgIEJPT0xFQU4gRGlzY2FyZEZlYXR1cmUgPSBGQUxTRTsNCj4gLSAgICBCT09MRUFO
IERpc2NhcmRFbmFibGUgPSBUUlVFOw0KPiAtDQo+ICsgICAgQk9PTEVBTiAgICAgICAgICAgICAg
ICAgQ2hhbmdlZDsNCj4gKyAgICBCT09MRUFOICAgICAgICAgICAgICAgICBEaXNjYXJkOw0KPiAr
ICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgIERpc2NhcmRGZWF0dXJlID0gRkFMU0U7DQo+ICsg
ICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgRGlzY2FyZEVuYWJsZSA9IFRSVUU7DQo+ICsNCj4g
KyAgICBDaGFuZ2VkID0gRnJvbnRlbmRSZWFkRmVhdHVyZShGcm9udGVuZCwNCj4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBGZWF0dXJlQmFycmllciwNCj4gKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPkRpc2tJbmZvLkJhcnJpZXIpOw0KPiAg
ICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFkRmVhdHVyZShGcm9udGVuZCwNCj4gLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImZlYXR1cmUtYmFycmllciIsDQo+IC0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uQmFycmllcik7
DQo+IC0gICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWRGZWF0dXJlKEZyb250ZW5kLA0KPiAtICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmVhdHVyZS1mbHVzaC1jYWNoZSIsDQo+
ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVGbHVzaENhY2hlLA0K
PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPkRpc2tJbmZv
LkZsdXNoQ2FjaGUpOw0KPiANCj4gICAgICAvLyBkaXNjYXJkIHJlbGF0ZWQNCj4gICAgICBGcm9u
dGVuZFJlYWRGZWF0dXJlKEZyb250ZW5kLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgImZl
YXR1cmUtZGlzY2FyZCIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBGZWF0dXJlRGlzY2Fy
ZCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICZEaXNjYXJkRmVhdHVyZSk7DQo+ICAgICAg
RnJvbnRlbmRSZWFkRmVhdHVyZShGcm9udGVuZCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAg
ICJkaXNjYXJkLWVuYWJsZSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBGZWF0dXJlRGlz
Y2FyZEVuYWJsZSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICZEaXNjYXJkRW5hYmxlKTsN
Cj4gKw0KPiAgICAgIERpc2NhcmQgPSBEaXNjYXJkRmVhdHVyZSAmJiBEaXNjYXJkRW5hYmxlOw0K
PiArDQo+ICAgICAgQ2hhbmdlZCB8PSAoRGlzY2FyZCAhPSBGcm9udGVuZC0+RGlza0luZm8uRGlz
Y2FyZCk7DQo+ICsNCj4gICAgICBGcm9udGVuZC0+RGlza0luZm8uRGlzY2FyZCA9IERpc2NhcmQ7
DQo+ICsNCj4gICAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZEZlYXR1cmUoRnJvbnRlbmQsDQo+
IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXNjYXJkLXNlY3VyZSIsDQo+
ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVEaXNjYXJkU2VjdXJl
LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPkRpc2tJ
bmZvLkRpc2NhcmRTZWN1cmUpOw0KPiAgICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFkVmFsdWUz
MihGcm9udGVuZCwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpc2Nh
cmQtYWxpZ25tZW50IiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVh
dHVyZURpc2NhcmRBbGlnbm1lbnQsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFRSVUUsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVu
ZC0+RGlza0luZm8uRGlzY2FyZEFsaWdubWVudCk7DQo+ICAgICAgQ2hhbmdlZCB8PSBGcm9udGVu
ZFJlYWRWYWx1ZTMyKEZyb250ZW5kLA0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZGlzY2FyZC1ncmFudWxhcml0eSIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEZlYXR1cmVEaXNjYXJkR3JhbnVsYXJpdHksDQo+ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFRSVUUsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uRGlzY2FyZEdyYW51bGFyaXR5KTsNCj4gDQo+IEBA
IC04NzksNiArOTUwLDcgQEAgRnJvbnRlbmRSZWFkRGlza0luZm8oDQo+ICAgICAgICAgICAgICAg
ICAgRnJvbnRlbmQtPkRpc2tJbmZvLkJhcnJpZXIgPyAiQkFSUklFUiAiIDogIiIsDQo+ICAgICAg
ICAgICAgICAgICAgRnJvbnRlbmQtPkRpc2tJbmZvLkZsdXNoQ2FjaGUgPyAgIkZMVVNIICIgOiAi
IiwNCj4gICAgICAgICAgICAgICAgICBGcm9udGVuZC0+RGlza0luZm8uRGlzY2FyZCA/ICJESVND
QVJEICIgOiAiIik7DQo+ICsNCj4gICAgICBpZiAoRnJvbnRlbmQtPkRpc2tJbmZvLkRpc2NhcmQp
IHsNCj4gICAgICAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6IERJU0NBUkQgJXMleC8leFxuIiwN
Cj4gICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQtPlRhcmdldElkLCBAQCAtMTI0MCw2ICsx
MzEyLDggQEAgRnJvbnRlbmREaXNhYmxlKA0KPiANCj4gDQo+IC8vPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID09PT09PT09PT09PT09
PT09PT09DQo+ICAvLyBJbml0L1Rlcm0NCj4gK19JUlFMX3JlcXVpcmVzXyhESVNQQVRDSF9MRVZF
TCkNCj4gK19SZXF1aXJlc19sb2NrX2hlbGRfKEZyb250ZW5kLT5TdGF0ZUxvY2spDQo+ICBzdGF0
aWMgREVDTFNQRUNfTk9JTkxJTkUgTlRTVEFUVVMNCj4gIF9fRnJvbnRlbmRTZXRTdGF0ZSgNCj4g
ICAgICBfX2luICBQWEVOVkJEX0ZST05URU5EICAgICAgICBGcm9udGVuZCwNCj4gQEAgLTE0MTMs
NiArMTQ4Nyw3IEBAIEZyb250ZW5kU3VzcGVuZExhdGVDYWxsYmFjaygNCj4gICAgICBTdGF0ZSA9
IEZyb250ZW5kLT5TdGF0ZTsNCj4gDQo+ICAgICAgLy8gZG9udCBhY3F1aXJlIHN0YXRlIGxvY2sg
LSBjYWxsZWQgYXQgRElTUEFUQ0ggb24gMSB2Q1BVIHdpdGggaW50ZXJydXB0cw0KPiBlbmFibGVk
DQo+ICsjcHJhZ21hIHdhcm5pbmcoc3VwcHJlc3M6IDI2MTEwKSAvLyB3YXJuaW5nIEMyNjExMDog
Q2FsbGVyIGZhaWxpbmcgdG8gaG9sZA0KPiBsb2NrIDxsb2NrPiBiZWZvcmUgY2FsbGluZyBmdW5j
dGlvbiA8ZnVuYz4uDQo+ICAgICAgU3RhdHVzID0gX19Gcm9udGVuZFNldFN0YXRlKEZyb250ZW5k
LCBYRU5WQkRfQ0xPU0VEKTsNCj4gICAgICBpZiAoIU5UX1NVQ0NFU1MoU3RhdHVzKSkgew0KPiAg
ICAgICAgICBFcnJvcigiVGFyZ2V0WyVkXSA6IFNldFN0YXRlIENMT1NFRCAoJTA4eClcbiIsIEZy
b250ZW5kLT5UYXJnZXRJZCwNCj4gU3RhdHVzKTsgZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvcmVn
aXN0cnkuYyBiL3NyYy94ZW52YmQvcmVnaXN0cnkuYyBpbmRleA0KPiA0MGM3N2YxLi5iYjEwNWI5
IDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3JlZ2lzdHJ5LmMNCj4gKysrIGIvc3JjL3hlbnZi
ZC9yZWdpc3RyeS5jDQo+IEBAIC04Niw2ICs4Niw3IEBAIFJlZ2lzdHJ5VGVhcmRvd24oDQo+ICAg
ICAgUmVnaXN0cnlQYXRoLk1heGltdW1MZW5ndGggPSBSZWdpc3RyeVBhdGguTGVuZ3RoID0gMDsg
IH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIE5UU1RBVFVT
DQo+ICBSZWdpc3RyeU9wZW5LZXkoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICBQYXJlbnQs
DQo+IEBAIC0xMTUsNiArMTE2LDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4g
IH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIHN0YXRpYyBO
VFNUQVRVUw0KPiAgUmVnaXN0cnlPcGVuUm9vdCgNCj4gICAgICBJTiAgUFdDSEFSICAgICAgICAg
IFBhdGgsDQo+IEBAIC0xNDgsNiArMTUwLDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJuIHN0YXR1
czsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIE5U
U1RBVFVTDQo+ICBSZWdpc3RyeUNyZWF0ZUtleSgNCj4gICAgICBJTiAgSEFORExFICAgICAgICAg
IFJvb3QsDQo+IEBAIC0yNDcsNiArMjUwLDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJuIHN0YXR1
czsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIE5U
U1RBVFVTDQo+ICBSZWdpc3RyeU9wZW5TZXJ2aWNlS2V5KA0KPiAgICAgIElOICBBQ0NFU1NfTUFT
SyAgICAgRGVzaXJlZEFjY2VzcywNCj4gQEAgLTI1Niw2ICsyNjAsNyBAQCBSZWdpc3RyeU9wZW5T
ZXJ2aWNlS2V5KA0KPiAgICAgIHJldHVybiBSZWdpc3RyeU9wZW5LZXkoTlVMTCwgJlJlZ2lzdHJ5
UGF0aCwgRGVzaXJlZEFjY2VzcywgS2V5KTsgIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwo
UEFTU0lWRV9MRVZFTCkNCj4gIE5UU1RBVFVTDQo+ICBSZWdpc3RyeUNyZWF0ZVNlcnZpY2VLZXko
DQo+ICAgICAgT1VUIFBIQU5ETEUgICAgICAgICBLZXkNCj4gQEAgLTI2NCw2ICsyNjksNyBAQCBS
ZWdpc3RyeUNyZWF0ZVNlcnZpY2VLZXkoDQo+ICAgICAgcmV0dXJuIFJlZ2lzdHJ5Q3JlYXRlS2V5
KE5VTEwsICZSZWdpc3RyeVBhdGgsDQo+IFJFR19PUFRJT05fTk9OX1ZPTEFUSUxFLCBLZXkpOyAg
fQ0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgTlRTVEFUVVMN
Cj4gIFJlZ2lzdHJ5T3BlblNvZnR3YXJlS2V5KA0KPiAgICAgIElOICBQREVWSUNFX09CSkVDVCAg
RGV2aWNlT2JqZWN0LA0KPiBAQCAtMjg2LDYgKzI5Miw3IEBAIGZhaWwxOg0KPiAgICAgIHJldHVy
biBzdGF0dXM7DQo+ICB9DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwp
DQo+ICBOVFNUQVRVUw0KPiAgUmVnaXN0cnlPcGVuSGFyZHdhcmVLZXkoDQo+ICAgICAgSU4gIFBE
RVZJQ0VfT0JKRUNUICAgICAgRGV2aWNlT2JqZWN0LA0KPiBAQCAtMzYzLDYgKzM3MCw3IEBAIGZh
aWwxOg0KPiAgICAgIHJldHVybiBzdGF0dXM7DQo+ICB9DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJ
UlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBOVFNUQVRVUw0KPiAgUmVnaXN0cnlPcGVuU3ViS2V5KA0K
PiAgICAgIElOICBQSEFORExFICAgICAgICAgS2V5LA0KPiBAQCAtMzk2LDYgKzQwNCw3IEBAIGZh
aWwxOg0KPiAgICAgIHJldHVybiBzdGF0dXM7DQo+ICB9DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJ
UlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBOVFNUQVRVUw0KPiAgUmVnaXN0cnlDcmVhdGVTdWJLZXko
DQo+ICAgICAgSU4gIFBIQU5ETEUgICAgICAgICBLZXksDQo+IEBAIC00MjksNiArNDM4LDcgQEAg
ZmFpbDE6DQo+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJl
c0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIE5UU1RBVFVTDQo+ICBSZWdpc3RyeURlbGV0ZVN1Yktl
eSgNCj4gICAgICBJTiAgUEhBTkRMRSAgICAgICAgIEtleSwNCj4gQEAgLTQ3Miw2ICs0ODIsNyBA
QCBmYWlsMToNCj4gICAgICByZXR1cm4gc3RhdHVzOw0KPiAgfQ0KPiANCj4gK19fZHJ2X3JlcXVp
cmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5RW51bWVyYXRl
U3ViS2V5cygNCj4gICAgICBJTiAgSEFORExFICAgICAgICAgICAgICBLZXksDQo+IEBAIC01NzYs
NiArNTg3LDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJuIHN0YXR1czsNCj4gIH0NCj4gDQo+ICtf
X2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIE5UU1RBVFVTDQo+ICBSZWdpc3Ry
eUVudW1lcmF0ZVZhbHVlcygNCj4gICAgICBJTiAgSEFORExFICAgICAgICAgICAgICAgICAgICAg
IEtleSwNCj4gQEAgLTY3NCw2ICs2ODYsNyBAQCBmYWlsMToNCj4gICAgICByZXR1cm4gc3RhdHVz
Ow0KPiAgfQ0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgTlRT
VEFUVVMNCj4gIFJlZ2lzdHJ5RGVsZXRlVmFsdWUoDQo+ICAgICAgSU4gIFBIQU5ETEUgICAgICAg
ICBLZXksDQo+IEBAIC03MDcsNiArNzIwLDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJuIHN0YXR1
czsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIE5U
U1RBVFVTDQo+ICBSZWdpc3RyeVF1ZXJ5RHdvcmRWYWx1ZSgNCj4gICAgICBJTiAgSEFORExFICAg
ICAgICAgICAgICAgICAgICAgIEtleSwNCj4gQEAgLTc3Nyw2ICs3OTEsNyBAQCBmYWlsMToNCj4g
ICAgICByZXR1cm4gc3RhdHVzOw0KPiAgfQ0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNT
SVZFX0xFVkVMKQ0KPiAgTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5VXBkYXRlRHdvcmRWYWx1ZSgNCj4g
ICAgICBJTiAgSEFORExFICAgICAgICAgICAgICAgICAgICAgIEtleSwNCj4gQEAgLTgzNSw2ICs4
NTAsNyBAQCBmYWlsMToNCj4gICAgICByZXR1cm4gc3RhdHVzOw0KPiAgfQ0KPiANCj4gK19fZHJ2
X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgc3RhdGljIFBBTlNJX1NUUklORw0KPiAg
UmVnaXN0cnlTelRvQW5zaSgNCj4gICAgICBJTiAgUFdDSEFSICAgICAgQnVmZmVyDQo+IEBAIC04
NzQsNiArODkwLDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0dXJuIE5VTEw7DQo+ICB9DQo+IA0KPiAr
X19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBzdGF0aWMgUEFOU0lfU1RSSU5H
DQo+ICBSZWdpc3RyeU11bHRpU3pUb0Fuc2koDQo+ICAgICAgSU4gIFBXQ0hBUiAgICAgIEJ1ZmZl
cg0KPiBAQCAtOTM2LDYgKzk1Myw3IEBAIGZhaWwxOg0KPiAgICAgIHJldHVybiBOVUxMOw0KPiAg
fQ0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgTlRTVEFUVVMN
Cj4gIFJlZ2lzdHJ5UXVlcnlTelZhbHVlKA0KPiAgICAgIElOICBIQU5ETEUgICAgICAgICAgICAg
ICAgICAgICAgS2V5LA0KPiBAQCAtMTAyMyw2ICsxMDQxLDcgQEAgZmFpbDE6DQo+ICAgICAgcmV0
dXJuIHN0YXR1czsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZF
TCkNCj4gIE5UU1RBVFVTDQo+ICBSZWdpc3RyeVF1ZXJ5QmluYXJ5VmFsdWUoDQo+ICAgICAgSU4g
IEhBTkRMRSAgICAgICAgICAgICAgICAgICAgICBLZXksDQo+IEBAIC0xMTA4LDYgKzExMjcsNyBA
QCBmYWlsMToNCj4gICAgICByZXR1cm4gc3RhdHVzOw0KPiAgfQ0KPiANCj4gK19fZHJ2X3JlcXVp
cmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5VXBkYXRlQmlu
YXJ5VmFsdWUoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICAgICAgICAgICAgICBLZXksDQo+
IEBAIC0xMTY3LDYgKzExODcsNyBAQCBmYWlsMToNCj4gICAgICByZXR1cm4gc3RhdHVzOw0KPiAg
fQ0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgTlRTVEFUVVMN
Cj4gIFJlZ2lzdHJ5UXVlcnlLZXlOYW1lKA0KPiAgICAgIElOICBIQU5ETEUgICAgICAgICAgICAg
IEtleSwNCj4gQEAgLTEyMjIsNiArMTI0Myw3IEBAIGZhaWwxOg0KPiAgICAgIHJldHVybiBzdGF0
dXM7DQo+ICB9DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBO
VFNUQVRVUw0KPiAgUmVnaXN0cnlRdWVyeVN5c3RlbVN0YXJ0T3B0aW9uKA0KPiAgICAgIElOICBj
b25zdCBDSEFSICAgICAgICAgICAgICAgICAgKlByZWZpeCwNCj4gQEAgLTEzMDAsNiArMTMyMiw3
IEBAIGZhaWwxOg0KPiAgICAgIHJldHVybiBzdGF0dXM7DQo+ICB9DQo+IA0KPiArX19kcnZfcmVx
dWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBzdGF0aWMgUEtFWV9WQUxVRV9QQVJUSUFMX0lO
Rk9STUFUSU9ODQo+ICBSZWdpc3RyeUFuc2lUb1N6KA0KPiAgICAgIFBBTlNJX1NUUklORyAgICAg
ICAgICAgICAgICAgICAgQW5zaQ0KPiBAQCAtMTMzOSw2ICsxMzYyLDcgQEAgZmFpbDE6DQo+ICAg
ICAgcmV0dXJuIE5VTEw7DQo+ICB9DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVf
TEVWRUwpDQo+ICBzdGF0aWMgUEtFWV9WQUxVRV9QQVJUSUFMX0lORk9STUFUSU9ODQo+ICBSZWdp
c3RyeUFuc2lUb011bHRpU3ooDQo+ICAgICAgUEFOU0lfU1RSSU5HICAgICAgICAgICAgICAgICAg
ICBBbnNpDQo+IEBAIC0xMzkyLDYgKzE0MTYsNyBAQCBmYWlsMToNCj4gICAgICByZXR1cm4gTlVM
TDsNCj4gIH0NCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIE5U
U1RBVFVTDQo+ICBSZWdpc3RyeVVwZGF0ZVN6VmFsdWUoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAg
ICAgICAgICAgICAgICAgICBLZXksDQo+IEBAIC0xNDgyLDYgKzE1MDcsNyBAQCBSZWdpc3RyeUZy
ZWVCaW5hcnlWYWx1ZSgNCj4gICAgICBfX1JlZ2lzdHJ5RnJlZShCdWZmZXIpOw0KPiAgfQ0KPiAN
Cj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgVk9JRA0KPiAgUmVnaXN0
cnlDbG9zZUtleSgNCj4gICAgICBJTiAgSEFORExFICBLZXkNCj4gZGlmZiAtLWdpdCBhL3NyYy94
ZW52YmQvcmVnaXN0cnkuaCBiL3NyYy94ZW52YmQvcmVnaXN0cnkuaCBpbmRleA0KPiBkMzlmMDE2
Li45YmY0OTJlIDEwMDY0NA0KPiAtLS0gYS9zcmMveGVudmJkL3JlZ2lzdHJ5LmgNCj4gKysrIGIv
c3JjL3hlbnZiZC9yZWdpc3RyeS5oDQo+IEBAIC00NCw2ICs0NCw3IEBAIFJlZ2lzdHJ5VGVhcmRv
d24oDQo+ICAgICAgVk9JRA0KPiAgICAgICk7DQo+IA0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBB
U1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5T3BlbktleSgNCj4g
ICAgICBJTiAgSEFORExFICAgICAgICAgIFBhcmVudCwNCj4gQEAgLTUyLDYgKzUzLDcgQEAgUmVn
aXN0cnlPcGVuS2V5KA0KPiAgICAgIE9VVCBQSEFORExFICAgICAgICAgS2V5DQo+ICAgICAgKTsN
Cj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIGV4dGVybiBOVFNU
QVRVUw0KPiAgUmVnaXN0cnlDcmVhdGVLZXkoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICBQ
YXJlbnQsDQo+IEBAIC02MCwxNyArNjIsMjAgQEAgUmVnaXN0cnlDcmVhdGVLZXkoDQo+ICAgICAg
T1VUIFBIQU5ETEUgICAgICAgICBLZXkNCj4gICAgICApOw0KPiANCj4gK19fZHJ2X3JlcXVpcmVz
SVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ICBSZWdpc3RyeU9wZW5T
ZXJ2aWNlS2V5KA0KPiAgICAgIElOICBBQ0NFU1NfTUFTSyBEZXNpcmVkQWNjZXNzLA0KPiAgICAg
IE9VVCBQSEFORExFICAgICBLZXkNCj4gICAgICApOw0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJR
TChQQVNTSVZFX0xFVkVMKQ0KPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ICBSZWdpc3RyeUNyZWF0ZVNl
cnZpY2VLZXkoDQo+ICAgICAgT1VUIFBIQU5ETEUgICAgIEtleQ0KPiAgICAgICk7DQo+IA0KPiAr
X19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4g
IFJlZ2lzdHJ5T3BlblNvZnR3YXJlS2V5KA0KPiAgICAgIElOICBQREVWSUNFX09CSkVDVCAgRGV2
aWNlT2JqZWN0LA0KPiBAQCAtNzgsNiArODMsNyBAQCBSZWdpc3RyeU9wZW5Tb2Z0d2FyZUtleSgN
Cj4gICAgICBPVVQgUEhBTkRMRSAgICAgICAgIEtleQ0KPiAgICAgICk7DQo+IA0KPiArX19kcnZf
cmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIFJlZ2lz
dHJ5T3BlbkhhcmR3YXJlS2V5KA0KPiAgICAgIElOICBQREVWSUNFX09CSkVDVCAgRGV2aWNlT2Jq
ZWN0LA0KPiBAQCAtODUsNiArOTEsNyBAQCBSZWdpc3RyeU9wZW5IYXJkd2FyZUtleSgNCj4gICAg
ICBPVVQgUEhBTkRMRSAgICAgICAgIEtleQ0KPiAgICAgICk7DQo+IA0KPiArX19kcnZfcmVxdWly
ZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5T3Bl
blN1YktleSgNCj4gICAgICBJTiAgSEFORExFICAgICAgS2V5LA0KPiBAQCAtOTMsNiArMTAwLDcg
QEAgUmVnaXN0cnlPcGVuU3ViS2V5KA0KPiAgICAgIE9VVCBQSEFORExFICAgICBTdWJLZXkNCj4g
ICAgICApOw0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgZXh0
ZXJuIE5UU1RBVFVTDQo+ICBSZWdpc3RyeUNyZWF0ZVN1YktleSgNCj4gICAgICBJTiAgSEFORExF
ICAgICAgS2V5LA0KPiBAQCAtMTAxLDEyICsxMDksMTQgQEAgUmVnaXN0cnlDcmVhdGVTdWJLZXko
DQo+ICAgICAgT1VUIFBIQU5ETEUgICAgIFN1YktleQ0KPiAgICAgICk7DQo+IA0KPiArX19kcnZf
cmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIFJlZ2lz
dHJ5RGVsZXRlU3ViS2V5KA0KPiAgICAgIElOICBIQU5ETEUgICAgICBLZXksDQo+ICAgICAgSU4g
IFBDSEFSICAgICAgIE5hbWUNCj4gICAgICApOw0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQ
QVNTSVZFX0xFVkVMKQ0KPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ICBSZWdpc3RyeUVudW1lcmF0ZVN1
YktleXMoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgIEtleSwNCj4gQEAgLTExNCw2ICsxMjQsNyBA
QCBSZWdpc3RyeUVudW1lcmF0ZVN1YktleXMoDQo+ICAgICAgSU4gIFBWT0lEICAgICAgIENvbnRl
eHQNCj4gICAgICApOw0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0K
PiAgZXh0ZXJuIE5UU1RBVFVTDQo+ICBSZWdpc3RyeUVudW1lcmF0ZVZhbHVlcygNCj4gICAgICBJ
TiAgSEFORExFICAgICAgS2V5LA0KPiBAQCAtMTIxLDI2ICsxMzIsMzAgQEAgUmVnaXN0cnlFbnVt
ZXJhdGVWYWx1ZXMoDQo+ICAgICAgSU4gIFBWT0lEICAgICAgIENvbnRleHQNCj4gICAgICApOw0K
PiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgZXh0ZXJuIE5UU1RB
VFVTDQo+ICBSZWdpc3RyeURlbGV0ZVZhbHVlKA0KPiAgICAgIElOICBIQU5ETEUgICAgICBLZXks
DQo+ICAgICAgSU4gIFBDSEFSICAgICAgIE5hbWUNCj4gICAgICApOw0KPiANCj4gK19fZHJ2X3Jl
cXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ICBSZWdpc3Ry
eVF1ZXJ5RHdvcmRWYWx1ZSgNCj4gICAgICBJTiAgSEFORExFICAgICAgICAgIEtleSwNCj4gICAg
ICBJTiAgUENIQVIgICAgICAgICAgIE5hbWUsDQo+ICAgICAgT1VUIFBVTE9ORyAgICAgICAgICBW
YWx1ZQ0KPiAgICAgICk7DQo+IC0NCj4gKw0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVf
TEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5VXBkYXRlRHdvcmRWYWx1ZSgN
Cj4gICAgICBJTiAgSEFORExFICAgICAgICAgIEtleSwNCj4gICAgICBJTiAgUENIQVIgICAgICAg
ICAgIE5hbWUsDQo+ICAgICAgSU4gIFVMT05HICAgICAgICAgICBWYWx1ZQ0KPiAgICAgICk7DQo+
IC0NCj4gKw0KPiArX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4g
TlRTVEFUVVMNCj4gIFJlZ2lzdHJ5UXVlcnlTelZhbHVlKA0KPiAgICAgIElOICBIQU5ETEUgICAg
ICAgICAgS2V5LA0KPiBAQCAtMTQ5LDYgKzE2NCw3IEBAIFJlZ2lzdHJ5UXVlcnlTelZhbHVlKA0K
PiAgICAgIE9VVCBQQU5TSV9TVFJJTkcgICAgKkFycmF5DQo+ICAgICAgKTsNCj4gDQo+ICtfX2Ry
dl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkNCj4gIGV4dGVybiBOVFNUQVRVUw0KPiAgUmVn
aXN0cnlRdWVyeUJpbmFyeVZhbHVlKA0KPiAgICAgIElOICBIQU5ETEUgICAgICAgICAgS2V5LA0K
PiBAQCAtMTU3LDYgKzE3Myw3IEBAIFJlZ2lzdHJ5UXVlcnlCaW5hcnlWYWx1ZSgNCj4gICAgICBP
VVQgUFVMT05HICAgICAgICAgIExlbmd0aA0KPiAgICAgICk7DQo+IA0KPiArX19kcnZfcmVxdWly
ZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5VXBk
YXRlQmluYXJ5VmFsdWUoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICBLZXksDQo+IEBAIC0x
NjUsMTIgKzE4MiwxNCBAQCBSZWdpc3RyeVVwZGF0ZUJpbmFyeVZhbHVlKA0KPiAgICAgIElOICBV
TE9ORyAgICAgICAgICAgTGVuZ3RoDQo+ICAgICAgKTsNCj4gDQo+ICtfX2Rydl9yZXF1aXJlc0lS
UUwoUEFTU0lWRV9MRVZFTCkNCj4gIGV4dGVybiBOVFNUQVRVUw0KPiAgUmVnaXN0cnlRdWVyeUtl
eU5hbWUoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICAgICAgS2V5LA0KPiAgICAgIE9VVCBQ
QU5TSV9TVFJJTkcgICAgICAgICpBcnJheQ0KPiAgICAgICk7DQo+IA0KPiArX19kcnZfcmVxdWly
ZXNJUlFMKFBBU1NJVkVfTEVWRUwpDQo+ICBleHRlcm4gTlRTVEFUVVMNCj4gIFJlZ2lzdHJ5UXVl
cnlTeXN0ZW1TdGFydE9wdGlvbigNCj4gICAgICBJTiAgY29uc3QgQ0hBUiAgICAgICpQcmVmaXgs
DQo+IEBAIC0xODcsNiArMjA2LDcgQEAgUmVnaXN0cnlGcmVlQmluYXJ5VmFsdWUoDQo+ICAgICAg
SU4gIFBWT0lEICAgICAgICAgICBCdWZmZXINCj4gICAgICApOw0KPiANCj4gK19fZHJ2X3JlcXVp
cmVzSVJRTChQQVNTSVZFX0xFVkVMKQ0KPiAgZXh0ZXJuIE5UU1RBVFVTDQo+ICBSZWdpc3RyeVVw
ZGF0ZVN6VmFsdWUoDQo+ICAgICAgSU4gIEhBTkRMRSAgICAgICAgICBLZXksDQo+IEBAIC0xOTUs
NiArMjE1LDcgQEAgUmVnaXN0cnlVcGRhdGVTelZhbHVlKA0KPiAgICAgIElOICBQQU5TSV9TVFJJ
TkcgICAgQXJyYXkNCj4gICAgICApOw0KPiANCj4gK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZF
X0xFVkVMKQ0KPiAgZXh0ZXJuIFZPSUQNCj4gIFJlZ2lzdHJ5Q2xvc2VLZXkoDQo+ICAgICAgSU4g
IEhBTkRMRSAgS2V5DQo+IC0tDQo+IDIuNS4zDQo+IA0KPiANCj4gX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gd2luLXB2LWRldmVsIG1haWxpbmcgbGlz
dA0KPiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gaHR0cHM6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVsDQpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp3aW4tcHYtZGV2ZWwg
bWFpbGluZyBsaXN0Cndpbi1wdi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xp
c3RzLnhlbnByb2plY3Qub3JnL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby93aW4tcHYtZGV2ZWw=

From win-pv-devel-bounces@lists.xenproject.org Wed Jun 28 16:04:38 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 28 Jun 2017 16:04:38 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dQFSH-0005ud-VK; Wed, 28 Jun 2017 16:04:37 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=345d44fce=Paul.Durrant@citrix.com>)
 id 1dQFSH-0005uT-5k
 for win-pv-devel@lists.xenproject.org; Wed, 28 Jun 2017 16:04:37 +0000
Received: from [193.109.254.147] by server-3.bemta-6.messagelabs.com id
 A2/DF-03044-493D3595; Wed, 28 Jun 2017 16:04:36 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrDIsWRWlGSWpSXmKPExsWyU9JRQnfy5eB
 IgzVXzSz+LE50YPQ4/OEKSwBjFGtmXlJ+RQJrxuaX7AWnVSs+dN1kaWDsUe1i5OCQEPCTmH4i
 rIuRk4NNQEdi6dH5TCC2iECBxPf385hBSpgFVCUWtBqBhIUFoiQ2zWxjhCiJlri28AYzhG0ks
 XfNCVYQmwWo/Fr7VXYQm1fAXaLj1zugkVwcQgL7GSU2fvrEBpLgFPCQmH/iK1gzo4CsxJfG1W
 A2s4C4xK0nEDdICAhILNlznhnCFpV4+fgfK4RtILF16T4WiNs0Jdbv0odoVZSY0v0Qaq+gxMm
 ZT1gmMArPQjJ1FkLHLCQds5B0LGBkWcWoUZxaVJZapGtkrpdUlJmeUZKbmJmja2hgppebWlyc
 mJ6ak5hUrJecn7uJERjyDECwg3Hx2sBDjJIcTEqivHu/BEUK8SXlp1RmJBZnxBeV5qQWH2KU4
 eBQkuA9cTE4UkiwKDU9tSItMwcYfTBpCQ4eJRHeFyBp3uKCxNzizHSI1ClGXY4Nq9d/YRJiyc
 vPS5US530MUiQAUpRRmgc3ApYILjHKSgnzMgIdJcRTkFqUm1mCKv+KUZyDUUmY9yjIFJ7MvBK
 4Ta+AjmACOoJlXgDIESWJCCmpBsb1ou7vvqXf/vzKry2Ba/e63wbLTjJrL31pqyX8I1j04qao
 FZWfrk1dt/kQNwNrZBrfGrmXG47L8isnrnvq+Tp636xTSe/sXXni+R5wTNSZU7iHQWX9lZ6QO
 LMzwRsM9ZS1ODLTb1ct+/6e+28S+/7HcyVP6rac3N527lS8wK0tgd0LDVWrZFqUWIozEg21mI
 uKEwFtnw+d/wIAAA==
X-Env-Sender: prvs=345d44fce=Paul.Durrant@citrix.com
X-Msg-Ref: server-13.tower-27.messagelabs.com!1498665875!95107465!1
X-Originating-IP: [185.25.65.24]
X-SpamReason: No, hits=0.0 required=7.0 tests=received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 10429 invoked from network); 28 Jun 2017 16:04:35 -0000
Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (185.25.65.24)
 by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 28 Jun 2017 16:04:35 -0000
X-IronPort-AV: E=Sophos;i="5.40,276,1496102400"; d="scan'208";a="48540971"
From: Paul Durrant <Paul.Durrant@citrix.com>
To: Owen Smith <owen.smith@citrix.com>, "win-pv-devel@lists.xenproject.org"
 <win-pv-devel@lists.xenproject.org>
Thread-Topic: [win-pv-devel] [PATCH 2/2] Added a function called from
 DriverEntry	where...
Thread-Index: AQHS8CXrEyyrJb1INkqyKthx+5D+OaI6bHWQ
Date: Wed, 28 Jun 2017 15:52:32 +0000
Message-ID: <52a5096ec1274de1869a41ebb497f19e@AMSPEX02CL03.citrite.net>
References: <1498664336-4607-1-git-send-email-paul.durrant@citrix.com>
 <1498664336-4607-2-git-send-email-paul.durrant@citrix.com>
 <6989e93e369e4e0baa1a91d03c133752@AMSPEX02CL02.citrite.net>
In-Reply-To: <6989e93e369e4e0baa1a91d03c133752@AMSPEX02CL02.citrite.net>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-exchange-transport-fromentityheader: Hosted
MIME-Version: 1.0
Cc: Eric Mackay <mackayem@amazon.com>
Subject: Re: [win-pv-devel] [PATCH 2/2] Added a function called from
 DriverEntry	where...
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBPd2VuIFNtaXRoDQo+IFNlbnQ6
IDI4IEp1bmUgMjAxNyAxNjo0OA0KPiBUbzogUGF1bCBEdXJyYW50IDxQYXVsLkR1cnJhbnRAY2l0
cml4LmNvbT47IHdpbi1wdi0NCj4gZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gQ2M6IEVy
aWMgTWFja2F5IDxtYWNrYXllbUBhbWF6b24uY29tPjsgUGF1bCBEdXJyYW50DQo+IDxQYXVsLkR1
cnJhbnRAY2l0cml4LmNvbT4NCj4gU3ViamVjdDogUkU6IFt3aW4tcHYtZGV2ZWxdIFtQQVRDSCAy
LzJdIEFkZGVkIGEgZnVuY3Rpb24gY2FsbGVkIGZyb20NCj4gRHJpdmVyRW50cnkgd2hlcmUuLi4N
Cj4gDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogd2luLXB2
LWRldmVsIFttYWlsdG86d2luLXB2LWRldmVsLWJvdW5jZXNAbGlzdHMueGVucHJvamVjdC5vcmdd
DQo+IE9uDQo+ID4gQmVoYWxmIE9mIFBhdWwgRHVycmFudA0KPiA+IFNlbnQ6IDI4IEp1bmUgMjAx
NyAxNjozOQ0KPiA+IFRvOiB3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcNCj4gPiBD
YzogRXJpYyBNYWNrYXkgPG1hY2theWVtQGFtYXpvbi5jb20+OyBQYXVsIER1cnJhbnQNCj4gPiA8
UGF1bC5EdXJyYW50QGNpdHJpeC5jb20+DQo+ID4gU3ViamVjdDogW3dpbi1wdi1kZXZlbF0gW1BB
VENIIDIvMl0gQWRkZWQgYSBmdW5jdGlvbiBjYWxsZWQgZnJvbQ0KPiA+IERyaXZlckVudHJ5IHdo
ZXJlLi4uDQo+ID4NCj4gPiBGcm9tOiBFcmljIE1hY2theSA8bWFja2F5ZW1AYW1hem9uLmNvbT4N
Cj4gPg0KPiA+IHdlIGNhbiBzYWZlbHkgcmVhZCByZWdpc3RyeSBrZXlzIGFuZCBjb252ZXJ0IHN0
cmluZ3MgYXQgUEFTU0lWRV9MRVZFTA0KPiA+DQo+ID4gVGhlIE1TRE4gZG9jdW1lbnRhdGlvbiBm
b3IgdmFyaW91cyByZWdpc3RyeSBrZXkgYWNjZXNzIGFuZCBzdHJpbmcNCj4gPiBjb252ZXJzaW9u
IGZ1bmN0aW9ucyByZXF1aXJlcyB0aGUgY2FsbGVyIHRvIGJlIGF0IFBBU1NJVkVfTEVWRUwuDQo+
ID4gT25lIG9mIHRoZSByZWFzb25zIGZvciB0aGlzIGlzIHRoYXQgdGhlIHN0cmluZyBjb252ZXJz
aW9uIHRhYmxlcyB1c2VkIGJ5DQo+ID4gZnVuY3Rpb25zIHN1Y2ggYXMgUnRsQW5zaVN0cmluZ1Rv
VW5pY29kZVN0cmluZyBhcmUgc3RvcmVkIGluIHBhZ2VkIHBvb2wNCj4gPiBtZW1vcnkuIEJvdGgg
dGhlIHBhZ2UgZmF1bHQgaGFuZGxlciBhbmQgdGhlIHByb2Nlc3Mgc2NoZWR1bGVyIHJ1biBhdA0K
PiA+IERJU1BBVENIX0xFVkVMLCB0aGVyZWZvcmUgeW91IG11c3Qgbm90IHRvdWNoIG1lbW9yeSBh
dA0KPiBESVNQQVRDSF9MRVZFTA0KPiA+IHRoYXQgY291bGQgYmUgcGFnZWQgb3V0LiBBIHByb2Nl
c3MgcnVubmluZyBhdCBESVNQQVRDSF9MRVZFTCBjYW5ub3QgYmUNCj4gPiBwcmVlbXB0ZWQgZm9y
IHRoZSBwYWdlIGZhdWx0IGhhbmRsZXIgdG8gcnVuLg0KPiA+DQo+ID4gVG8gYWlkIFN0YXRpYyBE
cml2ZXIgVmVyaWZpZXIgY29kZSBhbmFseXNpcyBhbmQgaW5mb3JtIGRldmVsb3BlcnMsIEkgaGF2
ZQ0KPiA+IGFkZGVkIFNBTCBhbm5vdGF0aW9ucyB0aGF0IGluZGljYXRlIFBBU1NJVkVfTEVWRUwg
aXMgcmVxdWlyZWQgb24gY2VydGFpbg0KPiA+IHJlZ2lzdHJ5IGFjY2VzcyBmdW5jdGlvbnMuDQo+
ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBFcmljIE1hY2theSA8bWFja2F5ZW1AYW1hem9uLmNvbT4N
Cj4gPg0KPiA+IFJlLWJhc2VkIG9udG8gbWFzdGVyIGFuZCBhZGp1c3RlZCBmb3Igc3R5bGUuIE5v
dGUgdGhpcyBpbnZvbHZlZCBmaXhpbmcNCj4gPiB3aGl0ZXNwYWNlIGlzc3VlcyBpbiBmcm9udGVu
ZC5jLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRA
Y2l0cml4LmNvbT4NCj4gPiAtLS0NCj4gPiAgc3JjL3hlbnZiZC9kcml2ZXIuYyAgIHwgIDk2ICsr
KysrKysrKysrKysrKystLQ0KPiA+ICBzcmMveGVudmJkL2RyaXZlci5oICAgfCAgMzEgKysrKysr
DQo+ID4gIHNyYy94ZW52YmQvZnJvbnRlbmQuYyB8IDI2OSArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKy0tLS0NCj4gLS0NCj4gPiAtLS0tLS0tLS0tLS0NCj4gPiAgc3JjL3hlbnZiZC9y
ZWdpc3RyeS5jIHwgIDI2ICsrKysrDQo+ID4gIHNyYy94ZW52YmQvcmVnaXN0cnkuaCB8ICAyNSAr
KysrLQ0KPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDM0MiBpbnNlcnRpb25zKCspLCAxMDUgZGVsZXRp
b25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9kcml2ZXIuYyBiL3NyYy94
ZW52YmQvZHJpdmVyLmMgaW5kZXgNCj4gNjJjM2NiYi4uZjhkNWU4Mg0KPiA+IDEwMDY0NA0KPiA+
IC0tLSBhL3NyYy94ZW52YmQvZHJpdmVyLmMNCj4gPiArKysgYi9zcmMveGVudmJkL2RyaXZlci5j
DQo+ID4gQEAgLTQ3LDEyICs0NywyMSBAQA0KPiA+ICAjaW5jbHVkZSAiZGVidWcuaCINCj4gPiAg
I2luY2x1ZGUgImFzc2VydC5oIg0KPiA+DQo+ID4gKy8vIEZlYXR1cmUgT3ZlcnJpZGVzIEZyb20g
UmVnaXN0cnkgVmFsdWVzIHR5cGVkZWYgc3RydWN0DQo+ID4gK19YRU5WQkRfRkVBVFVSRV9PVkVS
UklERSB7DQo+ID4gKyAgICBQQ0hBUiAgICAgICAgICAgICAgICAgICAgICAgTmFtZTsNCj4gPiAr
ICAgIFVMT05HICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZTsNCj4gPiArICAgIEJPT0xFQU4g
ICAgICAgICAgICAgICAgICAgICBQcmVzZW50Ow0KPiA+ICt9IFhFTlZCRF9GRUFUVVJFX09WRVJS
SURFLCAqUFhFTlZCRF9GRUFUVVJFX09WRVJSSURFOw0KPiA+ICsNCj4gPiAgdHlwZWRlZiBzdHJ1
Y3QgX1hFTlZCRF9EUklWRVIgew0KPiA+IC0gICAgUFhFTlZCRF9BREFQVEVSICAgICBBZGFwdGVy
Ow0KPiA+IC0gICAgSEFORExFICAgICAgICAgICAgICBQYXJhbWV0ZXJzS2V5Ow0KPiA+IC0gICAg
UERSSVZFUl9ESVNQQVRDSCAgICBTdG9yUG9ydERpc3BhdGNoUG5wOw0KPiA+IC0gICAgUERSSVZF
Ul9ESVNQQVRDSCAgICBTdG9yUG9ydERpc3BhdGNoUG93ZXI7DQo+ID4gLSAgICBQRFJJVkVSX1VO
TE9BRCAgICAgIFN0b3JQb3J0RHJpdmVyVW5sb2FkOw0KPiA+ICsgICAgUFhFTlZCRF9BREFQVEVS
ICAgICAgICAgICAgIEFkYXB0ZXI7DQo+ID4gKyAgICBIQU5ETEUgICAgICAgICAgICAgICAgICAg
ICAgUGFyYW1ldGVyc0tleTsNCj4gPiArICAgIFBEUklWRVJfRElTUEFUQ0ggICAgICAgICAgICBT
dG9yUG9ydERpc3BhdGNoUG5wOw0KPiA+ICsgICAgUERSSVZFUl9ESVNQQVRDSCAgICAgICAgICAg
IFN0b3JQb3J0RGlzcGF0Y2hQb3dlcjsNCj4gPiArICAgIFBEUklWRVJfVU5MT0FEICAgICAgICAg
ICAgICBTdG9yUG9ydERyaXZlclVubG9hZDsNCj4gPiArICAgIGNvbnN0IENIQVIgICAgICAgICAg
ICAgICAgICAqRmVhdHVyZU5hbWVbTnVtYmVyT2ZGZWF0dXJlc107DQo+IA0KPiBGZWF0dXJlTmFt
ZSBoZXJlIGlzIG5vdCBpbml0aWFsaXNlZCBvciB1c2VkLiBTdHJ1Y3QgZW50cnkgY2FuIGJlIHJl
bW92ZWQuDQo+IA0KDQpJbmRlZWQgaXQgaXMgbm90LiBJJ2xsIGdldCByaWQgb2YgaXQgaW4gdjIu
DQoNCkNoZWVycywNCg0KICBQYXVsDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5nIGxpc3QKd2luLXB2LWRldmVsQGxp
c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvY2dpLWJpbi9t
YWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed Jun 28 16:13:16 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 28 Jun 2017 16:13:16 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dQFae-0006xB-3P; Wed, 28 Jun 2017 16:13:16 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=345d44fce=Paul.Durrant@citrix.com>)
 id 1dQFad-0006x5-0g
 for win-pv-devel@lists.xenproject.org; Wed, 28 Jun 2017 16:13:15 +0000
Received: from [193.109.254.147] by server-8.bemta-6.messagelabs.com id
 6B/30-03704-A95D3595; Wed, 28 Jun 2017 16:13:14 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrFLMWRWlGSWpSXmKPExsXitHRDpO7Mq8G
 RBnf2mVv8WZzowOhx+MMVlgDGKNbMvKT8igTWjMldLAXbVCpOPm9jbmCcJNXFyMkhIeAv8XfC
 WXYQm01AR2Lq00usILaIgLrEvs9bmUBsZgEtiYaJS8BsYQE/ie+vHrCB2CwCqhJv7i5gAbF5B
 dwk1p+fAGRzAM2Uk+je6QYSFhJQkVg/dRYbRImgxMmZT1ggRkpIHHzxgnkCI/csJKlZSFILGJ
 lWMWoUpxaVpRbpGlnoJRVlpmeU5CZm5ugaGpjp5aYWFyemp+YkJhXrJefnbmIEhgEDEOxgPL8
 28BCjJAeTkijv3i9BkUJ8SfkplRmJxRnxRaU5qcWHGGU4OJQkeFWuBEcKCRalpqdWpGXmAAMS
 Ji3BwaMkwvviIlCat7ggMbc4Mx0idYpRUUqcdz5InwBIIqM0D64NFgWXGGWlhHkZgQ4R4ilIL
 crNLEGVf8UozsGoJMxrfBloCk9mXgnc9FdAi5mAFrPMCwBZXJKIkJJqYDT0FVHiqfmj8aRYzn
 3V7x02fCu+JS/b6Dvtf+k2s4fnlkXM+SsRUnr/Z6R6qN+aZJO9B538KmZmyM1MDJFWVVH6cT2
 2NCHKx1IpyZL7Zdq3Ey4Sly4qL3MzTfUoe6qp9+ZIiulTj5vaj9bP/Rj96dDllhVbLPjmaa/N
 Vj5hOlFds3/xlaY3hUosxRmJhlrMRcWJAF9VzL19AgAA
X-Env-Sender: prvs=345d44fce=Paul.Durrant@citrix.com
X-Msg-Ref: server-10.tower-27.messagelabs.com!1498666391!81416850!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 27443 invoked from network); 28 Jun 2017 16:13:13 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 28 Jun 2017 16:13:13 -0000
X-IronPort-AV: E=Sophos;i="5.40,276,1496102400"; d="scan'208";a="429695402"
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Wed, 28 Jun 2017 17:10:37 +0100
Message-ID: <1498666238-4704-1-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.5.3
MIME-Version: 1.0
Cc: Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH v2 1/2] Make sure AdapterInitialize is called
	at PASSIVE_LEVEL
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

QWRhcHRlckh3RmluZEFkYXB0ZXIoKSBjYW4gYmUgY2FsbGVkIGF0IERJU1BBVENIX0xFVkVMIGFu
ZCB0aGVyZWZvcmUgaXQKaXMgbm90IHNhZmUgdG8gY2FsbCBBZGFwdGVySW5pdGlhbGl6ZSgpIGRp
cmVjdGx5IGZyb20gdGhlcmUuCgpUaGlzIHBhdGNoLCBpbnN0ZWFkLCBjYWxscyBTdG9yUG9ydEVu
YWJsZVBhc3NpdmVJbml0aWFsaXphdGlvbigpIGZyb20KQWRhcHRlckh3SW5pdGlhbGl6ZSgpIHRv
IHJlcXVlc3QgYSBQQVNTSVZFX0xFVkVMIGluaXRpYWxpemF0aW9uIHJvdXRpbmUKaXMgY2FsbGVk
IGltbWVkaWF0ZWx5IGFmdGVyIEFkYXB0ZXJId0ZpbmRBZGFwdGVyKCkgc28gdGhhdApBZGFwdGVy
SW5pdGlhbGl6ZSgpIGNhbiBiZSBjYWxsZWQgZnJvbSB0aGVyZS4KClN1Z2dlc3RlZC1ieTogT3dl
biBTbWl0aCA8b3dlbi5zbWl0aEBjaXRyaXguY29tPgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJh
bnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KIHNyYy94ZW52YmQvYWRhcHRlci5jIHwg
NTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQog
c3JjL3hlbnZiZC9kcml2ZXIuYyAgfCAgMSArCiBzcmMveGVudmJkL2RyaXZlci5oICB8ICAxICsK
IDMgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvc3JjL3hlbnZiZC9hZGFwdGVyLmMgYi9zcmMveGVudmJkL2FkYXB0ZXIuYwppbmRl
eCA1NzdiZmRmLi5hNDIyMGQxIDEwMDY0NAotLS0gYS9zcmMveGVudmJkL2FkYXB0ZXIuYworKysg
Yi9zcmMveGVudmJkL2FkYXB0ZXIuYwpAQCAtMTA5NSw2ICsxMDk1LDcgQEAgQWRhcHRlckRldmlj
ZVBvd2VyVGhyZWFkKAogICAgIHJldHVybiBTVEFUVVNfU1VDQ0VTUzsKIH0KIAorX19kcnZfcmVx
dWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBzdGF0aWMgTlRTVEFUVVMKIF9fQWRhcHRlclF1ZXJ5
SW50ZXJmYWNlKAogICAgIElOICBQWEVOVkJEX0FEQVBURVIgQWRhcHRlciwKQEAgLTExNzQsNiAr
MTE3NSw4IEBAIGZhaWwxOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQSU5URVJGQUNF
KShfaXRmKSwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplb2YoICMjIF9uYW1lICMjIF9JTlRFUkZBQ0UpLCAgICBcCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKF9vcHQpKQorCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIHN0
YXRpYyBOVFNUQVRVUwogQWRhcHRlckluaXRpYWxpemUoCiAgICAgSU4gIFBYRU5WQkRfQURBUFRF
UiBBZGFwdGVyLApAQCAtMTkxNiwxMiArMTkxOSw3IEBAIEFkYXB0ZXJId0ZpbmRBZGFwdGVyKAog
ICAgIE9VVCBQQk9PTEVBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZ2FpbgogICAgICkK
IHsKLSAgICBQWEVOVkJEX0FEQVBURVIgICAgICAgICAgICAgICAgICAgICAgICAgQWRhcHRlciA9
IERldkV4dDsKLSAgICBQREVWSUNFX09CSkVDVCAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2
aWNlT2JqZWN0OwotICAgIFBERVZJQ0VfT0JKRUNUICAgICAgICAgICAgICAgICAgICAgICAgICBQ
aHlzaWNhbERldmljZU9iamVjdDsKLSAgICBQREVWSUNFX09CSkVDVCAgICAgICAgICAgICAgICAg
ICAgICAgICAgTG93ZXJEZXZpY2VPYmplY3Q7Ci0gICAgTlRTVEFUVVMgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXR1czsKLQorICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVURVIoRGV2
RXh0KTsKICAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKENvbnRleHQpOwogICAgIFVOUkVGRVJF
TkNFRF9QQVJBTUVURVIoQnVzSW5mb3JtYXRpb24pOwogICAgIFVOUkVGRVJFTkNFRF9QQVJBTUVU
RVIoQXJndW1lbnRTdHJpbmcpOwpAQCAtMTk0OCwzNiArMTk0Niw1NyBAQCBBZGFwdGVySHdGaW5k
QWRhcHRlcigKICAgICAvLyBXZSBuZWVkIHRvIGRvIHRoaXMgdG8gYXZvaWQgYW4gYXNzZXJ0aW9u
IGluIGEgY2hlY2tlZCBrZXJuZWwKICAgICAoVk9JRCkgU3RvclBvcnRHZXRVbmNhY2hlZEV4dGVu
c2lvbihEZXZFeHQsIENvbmZpZ0luZm8sIFBBR0VfU0laRSk7CiAKLSAgICAoVk9JRCkgU3RvclBv
cnRHZXREZXZpY2VPYmplY3RzKERldkV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZEZXZpY2VPYmplY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmUGh5c2ljYWxEZXZpY2VPYmplY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmTG93ZXJEZXZpY2VPYmplY3QpOwotICAgIGlmIChBZGFwdGVyLT5EZXZpY2VPYmplY3Qg
PT0gRGV2aWNlT2JqZWN0KQotICAgICAgICByZXR1cm4gU1BfUkVUVVJOX0ZPVU5EOworICAgIHJl
dHVybiBTUF9SRVRVUk5fRk9VTkQ7Cit9CisKK0hXX1BBU1NJVkVfSU5JVElBTElaRV9ST1VUSU5F
IEFkYXB0ZXJId1Bhc3NpdmVJbml0aWFsaXplOworCitCT09MRUFOCitBZGFwdGVySHdQYXNzaXZl
SW5pdGlhbGl6ZSgKKyAgICBJTiAgUFZPSUQgICBEZXZFeHQKKyAgICApCit7CisgICAgUFhFTlZC
RF9BREFQVEVSIEFkYXB0ZXIgPSBEZXZFeHQ7CisgICAgUERFVklDRV9PQkpFQ1QgIERldmljZU9i
amVjdDsKKyAgICBQREVWSUNFX09CSkVDVCAgUGh5c2ljYWxEZXZpY2VPYmplY3Q7CisgICAgUERF
VklDRV9PQkpFQ1QgIExvd2VyRGV2aWNlT2JqZWN0OworICAgIE5UU1RBVFVTICAgICAgICBzdGF0
dXM7CisKKyAgICBpZiAoU3RvclBvcnRHZXREZXZpY2VPYmplY3RzKERldkV4dCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZEZXZpY2VPYmplY3QsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmUGh5c2ljYWxEZXZpY2VPYmplY3QsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmTG93ZXJEZXZpY2VPYmplY3QpICE9IFNUT1JfU1RBVFVTX1NVQ0NF
U1MpCisgICAgICAgIGdvdG8gZmFpbDE7CiAKICAgICBzdGF0dXMgPSBBZGFwdGVySW5pdGlhbGl6
ZShBZGFwdGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERldmljZU9iamVjdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaHlzaWNhbERldmljZU9iamVjdCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb3dlckRldmljZU9iamVjdCk7CiAgICAgaWYg
KCFOVF9TVUNDRVNTKHN0YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDE7CisgICAgICAgIGdvdG8g
ZmFpbDI7CiAKICAgICBBZGFwdGVyVW5wbHVnUmVxdWVzdChBZGFwdGVyLCBUUlVFKTsKIAogICAg
IHN0YXR1cyA9IEFkYXB0ZXJEM1RvRDAoQWRhcHRlcik7CiAgICAgaWYgKCFOVF9TVUNDRVNTKHN0
YXR1cykpCi0gICAgICAgIGdvdG8gZmFpbDI7CisgICAgICAgIGdvdG8gZmFpbDM7CiAKICAgICBE
cml2ZXJTZXRBZGFwdGVyKEFkYXB0ZXIpOwotICAgIHJldHVybiBTUF9SRVRVUk5fRk9VTkQ7Cisg
ICAgcmV0dXJuIFRSVUU7CiAKLWZhaWwyOgorZmFpbDM6CiAgICAgRXJyb3IoImZhaWwyXG4iKTsK
KwogICAgIEFkYXB0ZXJVbnBsdWdSZXF1ZXN0KEFkYXB0ZXIsIEZBTFNFKTsKICAgICBBZGFwdGVy
VGVhcmRvd24oQWRhcHRlcik7CisKK2ZhaWwyOgorICAgIEVycm9yKCJmYWlsMlxuIik7CisKIGZh
aWwxOgogICAgIEVycm9yKCJmYWlsMVxuIik7Ci0gICAgcmV0dXJuIFNQX1JFVFVSTl9FUlJPUjsK
KworICAgIHJldHVybiBGQUxTRTsKIH0KIAogSFdfSU5JVElBTElaRSAgIEFkYXB0ZXJId0luaXRp
YWxpemU7CkBAIC0xOTg3LDggKzIwMDYsOCBAQCBBZGFwdGVySHdJbml0aWFsaXplKAogICAgIElO
ICBQVk9JRCAgIERldkV4dAogICAgICkKIHsKLSAgICBVTlJFRkVSRU5DRURfUEFSQU1FVEVSKERl
dkV4dCk7Ci0gICAgcmV0dXJuIFRSVUU7CisgICAgcmV0dXJuIFN0b3JQb3J0RW5hYmxlUGFzc2l2
ZUluaXRpYWxpemF0aW9uKERldkV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgQWRhcHRlckh3UGFzc2l2ZUluaXRpYWxpemUpOwogfQogCiBIV19JTlRF
UlJVUFQgICAgQWRhcHRlckh3SW50ZXJydXB0OwpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9kcml2
ZXIuYyBiL3NyYy94ZW52YmQvZHJpdmVyLmMKaW5kZXggNmVkODY1ZS4uNjJjM2NiYiAxMDA2NDQK
LS0tIGEvc3JjL3hlbnZiZC9kcml2ZXIuYworKysgYi9zcmMveGVudmJkL2RyaXZlci5jCkBAIC0x
MDUsNiArMTA1LDcgQEAgRHJpdmVyRGlzcGF0Y2hQb3dlcigKIAogI2RlZmluZSBNQVhOQU1FTEVO
ICAyNTYKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBWT0lECiBEcml2ZXJS
ZXF1ZXN0UmVib290KAogICAgIFZPSUQKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQvZHJpdmVyLmgg
Yi9zcmMveGVudmJkL2RyaXZlci5oCmluZGV4IDM0M2E3ZmUuLjM4NmNkODQgMTAwNjQ0Ci0tLSBh
L3NyYy94ZW52YmQvZHJpdmVyLmgKKysrIGIvc3JjL3hlbnZiZC9kcml2ZXIuaApAQCAtNjEsNiAr
NjEsNyBAQCBEcml2ZXJEaXNwYXRjaFBvd2VyKAogICAgIElOICBQSVJQICAgICAgICAgICAgSXJw
CiAgICAgKTsKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBleHRlcm4gVk9J
RAogRHJpdmVyUmVxdWVzdFJlYm9vdCgKICAgICBWT0lECi0tIAoyLjUuMwoKCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCndpbi1wdi1kZXZlbCBtYWlsaW5n
IGxpc3QKd2luLXB2LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu
cHJvamVjdC5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3dpbi1wdi1kZXZlbA==

From win-pv-devel-bounces@lists.xenproject.org Wed Jun 28 16:13:18 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Wed, 28 Jun 2017 16:13:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dQFag-0006xc-4a; Wed, 28 Jun 2017 16:13:18 +0000
Received: from mail6.bemta6.messagelabs.com ([193.109.254.103])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <prvs=345d44fce=Paul.Durrant@citrix.com>)
 id 1dQFae-0006x5-BW
 for win-pv-devel@lists.xenproject.org; Wed, 28 Jun 2017 16:13:16 +0000
Received: from [193.109.254.147] by server-8.bemta-6.messagelabs.com id
 78/40-03704-C95D3595; Wed, 28 Jun 2017 16:13:16 +0000
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprAIsWRWlGSWpSXmKPExsXitHRDpO7sq8G
 RBl93iFv8WZzowOhx+MMVlgDGKNbMvKT8igTWjI8f25gKXjxhrHh/YzZrA+PsmYxdjJwcEgL+
 Ett39rCD2GwCOhJTn15iBbFFBNQl9n3eygRiMwv4Smy5vxPMFhbwlDi8qBmshkVAVaJt0W+wX
 l4BN4mJOx8DzeQAmikn0b3TDSTMKeAucWz5K7BWIaCSvl1trBC2isT6qbPYIFoFJU7OfMICsU
 pC4uCLF8wTGHlnIUnNQpJawMi0ilG9OLWoLLVI10gvqSgzPaMkNzEzR9fQwEwvN7W4ODE9NSc
 xqVgvOT93EyMwdBiAYAfjsr9OhxglOZiURHn3fgmKFOJLyk+pzEgszogvKs1JLT7EKMPBoSTB
 u/pycKSQYFFqempFWmYOMIhh0hIcPEoivC8uAqV5iwsSc4sz0yFSpxh1OTasXv+FSYglLz8vV
 UqcV/kKUJEASFFGaR7cCFhEXWKUlRLmZQQ6SoinILUoN7MEVf4VozgHo5IwrzHIJTyZeSVwm1
 4BHcEEdATLvACQI0oSEVJSDYzbmm+qb+X4dmPPxpIPTzuC90RURhl0VNTZNR5a1Rs/zbIq+B/
 vxCMlJfYBrzKzDtjev3lyg2aD0XZ/wVl63F+9YsPPJcvWRbDueuQac+/12qJ7GiLsqiyvr3y8
 Z/B5z5arzQ53A4LMzk//e9t2Gsvz0ywtuzZMshOK4NvkWevepfFm1kVebz4lluKMREMt5qLiR
 ADbpfv3owIAAA==
X-Env-Sender: prvs=345d44fce=Paul.Durrant@citrix.com
X-Msg-Ref: server-7.tower-27.messagelabs.com!1498666392!100045276!1
X-Originating-IP: [66.165.176.89]
X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
 VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAyMDMwMDc=\n,received_headers: No 
 Received headers
X-StarScan-Received: 
X-StarScan-Version: 9.4.19; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 28624 invoked from network); 28 Jun 2017 16:13:14 -0000
Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
 by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
 28 Jun 2017 16:13:14 -0000
X-IronPort-AV: E=Sophos;i="5.40,276,1496102400"; d="scan'208";a="429695403"
From: Paul Durrant <paul.durrant@citrix.com>
To: <win-pv-devel@lists.xenproject.org>
Date: Wed, 28 Jun 2017 17:10:38 +0100
Message-ID: <1498666238-4704-2-git-send-email-paul.durrant@citrix.com>
X-Mailer: git-send-email 2.5.3
In-Reply-To: <1498666238-4704-1-git-send-email-paul.durrant@citrix.com>
References: <1498666238-4704-1-git-send-email-paul.durrant@citrix.com>
MIME-Version: 1.0
Cc: Eric Mackay <mackayem@amazon.com>, Paul Durrant <paul.durrant@citrix.com>
Subject: [win-pv-devel] [PATCH v2 2/2] Added a function called from
	DriverEntry where...
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

RnJvbTogRXJpYyBNYWNrYXkgPG1hY2theWVtQGFtYXpvbi5jb20+Cgp3ZSBjYW4gc2FmZWx5IHJl
YWQgcmVnaXN0cnkga2V5cyBhbmQgY29udmVydCBzdHJpbmdzIGF0IFBBU1NJVkVfTEVWRUwKClRo
ZSBNU0ROIGRvY3VtZW50YXRpb24gZm9yIHZhcmlvdXMgcmVnaXN0cnkga2V5IGFjY2VzcyBhbmQg
c3RyaW5nCmNvbnZlcnNpb24gZnVuY3Rpb25zIHJlcXVpcmVzIHRoZSBjYWxsZXIgdG8gYmUgYXQg
UEFTU0lWRV9MRVZFTC4KT25lIG9mIHRoZSByZWFzb25zIGZvciB0aGlzIGlzIHRoYXQgdGhlIHN0
cmluZyBjb252ZXJzaW9uIHRhYmxlcyB1c2VkIGJ5CmZ1bmN0aW9ucyBzdWNoIGFzIFJ0bEFuc2lT
dHJpbmdUb1VuaWNvZGVTdHJpbmcgYXJlIHN0b3JlZCBpbiBwYWdlZCBwb29sCm1lbW9yeS4gQm90
aCB0aGUgcGFnZSBmYXVsdCBoYW5kbGVyIGFuZCB0aGUgcHJvY2VzcyBzY2hlZHVsZXIgcnVuIGF0
CkRJU1BBVENIX0xFVkVMLCB0aGVyZWZvcmUgeW91IG11c3Qgbm90IHRvdWNoIG1lbW9yeSBhdCBE
SVNQQVRDSF9MRVZFTCB0aGF0CmNvdWxkIGJlIHBhZ2VkIG91dC4gQSBwcm9jZXNzIHJ1bm5pbmcg
YXQgRElTUEFUQ0hfTEVWRUwgY2Fubm90IGJlCnByZWVtcHRlZCBmb3IgdGhlIHBhZ2UgZmF1bHQg
aGFuZGxlciB0byBydW4uCgpUbyBhaWQgU3RhdGljIERyaXZlciBWZXJpZmllciBjb2RlIGFuYWx5
c2lzIGFuZCBpbmZvcm0gZGV2ZWxvcGVycywgSSBoYXZlCmFkZGVkIFNBTCBhbm5vdGF0aW9ucyB0
aGF0IGluZGljYXRlIFBBU1NJVkVfTEVWRUwgaXMgcmVxdWlyZWQgb24gY2VydGFpbgpyZWdpc3Ry
eSBhY2Nlc3MgZnVuY3Rpb25zLgoKU2lnbmVkLW9mZi1ieTogRXJpYyBNYWNrYXkgPG1hY2theWVt
QGFtYXpvbi5jb20+CgpSZS1iYXNlZCBvbnRvIG1hc3RlciBhbmQgYWRqdXN0ZWQgZm9yIHN0eWxl
LiBOb3RlIHRoaXMgaW52b2x2ZWQgZml4aW5nCndoaXRlc3BhY2UgaXNzdWVzIGluIGZyb250ZW5k
LmMuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29t
PgotLS0KCnYyOgogLSBSZW1vdmUgdW51c2VkIEZlYXR1cmVOYW1lIGFycmF5CiAtIE1ha2UgbW9y
ZSB1c2Ugb2YgY29uc3QgcXVhbGlmaWVyIGZvciBvdmVycmlkZSBuYW1lCi0tLQogc3JjL3hlbnZi
ZC9kcml2ZXIuYyAgIHwgIDk1ICsrKysrKysrKysrKysrKystLQogc3JjL3hlbnZiZC9kcml2ZXIu
aCAgIHwgIDMxICsrKysrKwogc3JjL3hlbnZiZC9mcm9udGVuZC5jIHwgMjY5ICsrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMveGVudmJkL3JlZ2lz
dHJ5LmMgfCAgMjYgKysrKysKIHNyYy94ZW52YmQvcmVnaXN0cnkuaCB8ICAyNSArKysrLQogNSBm
aWxlcyBjaGFuZ2VkLCAzNDEgaW5zZXJ0aW9ucygrKSwgMTA1IGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL3NyYy94ZW52YmQvZHJpdmVyLmMgYi9zcmMveGVudmJkL2RyaXZlci5jCmluZGV4IDYy
YzNjYmIuLjY3NmM0NDUgMTAwNjQ0Ci0tLSBhL3NyYy94ZW52YmQvZHJpdmVyLmMKKysrIGIvc3Jj
L3hlbnZiZC9kcml2ZXIuYwpAQCAtNDcsMTIgKzQ3LDIwIEBACiAjaW5jbHVkZSAiZGVidWcuaCIK
ICNpbmNsdWRlICJhc3NlcnQuaCIKIAorLy8gRmVhdHVyZSBPdmVycmlkZXMgRnJvbSBSZWdpc3Ry
eSBWYWx1ZXMKK3R5cGVkZWYgc3RydWN0IF9YRU5WQkRfRkVBVFVSRV9PVkVSUklERSB7CisgICAg
Y29uc3QgQ0hBUiAgICAgICAgICAgICAgICAgICpOYW1lOworICAgIFVMT05HICAgICAgICAgICAg
ICAgICAgICAgICBWYWx1ZTsKKyAgICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgUHJlc2Vu
dDsKK30gWEVOVkJEX0ZFQVRVUkVfT1ZFUlJJREUsICpQWEVOVkJEX0ZFQVRVUkVfT1ZFUlJJREU7
CisKIHR5cGVkZWYgc3RydWN0IF9YRU5WQkRfRFJJVkVSIHsKLSAgICBQWEVOVkJEX0FEQVBURVIg
ICAgIEFkYXB0ZXI7Ci0gICAgSEFORExFICAgICAgICAgICAgICBQYXJhbWV0ZXJzS2V5OwotICAg
IFBEUklWRVJfRElTUEFUQ0ggICAgU3RvclBvcnREaXNwYXRjaFBucDsKLSAgICBQRFJJVkVSX0RJ
U1BBVENIICAgIFN0b3JQb3J0RGlzcGF0Y2hQb3dlcjsKLSAgICBQRFJJVkVSX1VOTE9BRCAgICAg
IFN0b3JQb3J0RHJpdmVyVW5sb2FkOworICAgIFBYRU5WQkRfQURBUFRFUiAgICAgICAgICAgICBB
ZGFwdGVyOworICAgIEhBTkRMRSAgICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzS2V5Owor
ICAgIFBEUklWRVJfRElTUEFUQ0ggICAgICAgICAgICBTdG9yUG9ydERpc3BhdGNoUG5wOworICAg
IFBEUklWRVJfRElTUEFUQ0ggICAgICAgICAgICBTdG9yUG9ydERpc3BhdGNoUG93ZXI7CisgICAg
UERSSVZFUl9VTkxPQUQgICAgICAgICAgICAgIFN0b3JQb3J0RHJpdmVyVW5sb2FkOworICAgIFhF
TlZCRF9GRUFUVVJFX09WRVJSSURFICAgICBGZWF0dXJlT3ZlcnJpZGVbTnVtYmVyT2ZGZWF0dXJl
c107CiB9IFhFTlZCRF9EUklWRVI7CiAKIHN0YXRpYyBYRU5WQkRfRFJJVkVSIERyaXZlcjsKQEAg
LTI0MCw3ICsyNDgsODAgQEAgRHJpdmVyVW5sb2FkKAogICAgIFJlZ2lzdHJ5VGVhcmRvd24oKTsK
IH0KIAotRFJJVkVSX0lOSVRJQUxJWkUgICAgICAgICAgIERyaXZlckVudHJ5OworX19kcnZfcmVx
dWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCitzdGF0aWMgRk9SQ0VJTkxJTkUgVk9JRAorX19Ecml2
ZXJJbml0aWFsaXplT3ZlcnJpZGVzKAorICAgIFZPSUQKKyAgICApCit7CisgICAgVUxPTkcgICAg
ICAgICAgIEluZGV4OworICAgIHN0cnVjdCB7CisgICAgICAgIGNvbnN0IENIQVIgICAgICAqTmFt
ZTsKKyAgICAgICAgWEVOVkJEX0ZFQVRVUkUgIEZlYXR1cmU7CisgICAgfSBNYXBwaW5nW10gPQor
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgeyAicmVtb3ZhYmxlIiAsIEZlYXR1cmVSZW1vdmFi
bGUgfSwKKyAgICAgICAgICAgICAgeyAiZmVhdHVyZS1wZXJzaXN0ZW50IiwgRmVhdHVyZVBlcnNp
c3RlbnQgfSwKKyAgICAgICAgICAgICAgeyAiZmVhdHVyZS1tYXgtaW5kaXJlY3Qtc2VnbWVudHMi
LCBGZWF0dXJlTWF4SW5kaXJlY3RTZWdtZW50cyB9LAorICAgICAgICAgICAgICB7ICJmZWF0dXJl
LWJhcnJpZXIiLCBGZWF0dXJlQmFycmllciB9LAorICAgICAgICAgICAgICB7ICJmZWF0dXJlLWZs
dXNoLWNhY2hlIiwgRmVhdHVyZUZsdXNoQ2FjaGUgfSwKKyAgICAgICAgICAgICAgeyAiZmVhdHVy
ZS1kaXNjYXJkIiwgRmVhdHVyZURpc2NhcmQgfSwKKyAgICAgICAgICAgICAgeyAiZGlzY2FyZC1l
bmFibGUiLCBGZWF0dXJlRGlzY2FyZEVuYWJsZSB9LAorICAgICAgICAgICAgICB7ICJkaXNjYXJk
LXNlY3VyZSIsIEZlYXR1cmVEaXNjYXJkU2VjdXJlIH0sCisgICAgICAgICAgICAgIHsgImRpc2Nh
cmQtYWxpZ25tZW50IiwgRmVhdHVyZURpc2NhcmRBbGlnbm1lbnQgfSwKKyAgICAgICAgICAgICAg
eyAiZGlzY2FyZC1ncmFudWxhcml0eSIsIEZlYXR1cmVEaXNjYXJkR3JhbnVsYXJpdHkgfQorICAg
ICAgICAgIH07CisKKyAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBBUlJBWVNJWkUoTWFwcGlu
Zyk7IEluZGV4KyspIHsKKyAgICAgICAgWEVOVkJEX0ZFQVRVUkUgIEZlYXR1cmUgPSBNYXBwaW5n
W0luZGV4XS5GZWF0dXJlOworICAgICAgICBjb25zdCBDSEFSICAgICAgKk5hbWUgPSBNYXBwaW5n
W0luZGV4XS5OYW1lOworICAgICAgICBVTE9ORyAgICAgICAgICAgVmFsdWU7CisgICAgICAgIE5U
U1RBVFVTICAgICAgICBzdGF0dXM7CisKKyAgICAgICAgRHJpdmVyLkZlYXR1cmVPdmVycmlkZVtG
ZWF0dXJlXS5OYW1lID0gTmFtZTsKKworICAgICAgICBzdGF0dXMgPSBSZWdpc3RyeVF1ZXJ5RHdv
cmRWYWx1ZShfX0RyaXZlckdldFBhcmFtZXRlcnNLZXkoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKFBDSEFSKU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZWYWx1ZSk7CisKKyAgICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0
YXR1cykpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBEcml2ZXIuRmVhdHVyZU92
ZXJyaWRlW0ZlYXR1cmVdLlByZXNlbnQgPSBUUlVFOworICAgICAgICBEcml2ZXIuRmVhdHVyZU92
ZXJyaWRlW0ZlYXR1cmVdLlZhbHVlID0gVmFsdWU7CisgICAgfQorfQorCitfX2NoZWNrUmV0dXJu
CitfU3VjY2Vzc18ocmV0dXJuKQorQk9PTEVBTgorRHJpdmVyR2V0RmVhdHVyZU92ZXJyaWRlKAor
ICAgIElOICBYRU5WQkRfRkVBVFVSRSAgIEZlYXR1cmUsCisgICAgT1VUIFBVTE9ORyAgICAgICAg
ICAgVmFsdWUKKyAgICApCit7CisgICAgQk9PTEVBTiAgICAgICAgICAgICAgUHJlc2VudCA9IEZB
TFNFOworCisgICAgaWYgKEZlYXR1cmUgPCBBUlJBWVNJWkUoRHJpdmVyLkZlYXR1cmVPdmVycmlk
ZSkpIHsKKyAgICAgICAgUHJlc2VudCA9IERyaXZlci5GZWF0dXJlT3ZlcnJpZGVbRmVhdHVyZV0u
UHJlc2VudDsKKyAgICAgICAgKlZhbHVlID0gRHJpdmVyLkZlYXR1cmVPdmVycmlkZVtGZWF0dXJl
XS5WYWx1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gUHJlc2VudDsKK30KKworX19jaGVja1JldHVy
bgorY29uc3QgQ0hBUiAqCitEcml2ZXJHZXRGZWF0dXJlTmFtZSgKKyAgICBJTiAgWEVOVkJEX0ZF
QVRVUkUgIEZlYXR1cmUKKyAgICApCit7CisgICAgcmV0dXJuIChGZWF0dXJlIDwgQVJSQVlTSVpF
KERyaXZlci5GZWF0dXJlT3ZlcnJpZGUpKSA/CisgICAgICAgICAgIERyaXZlci5GZWF0dXJlT3Zl
cnJpZGVbRmVhdHVyZV0uTmFtZSA6CisgICAgICAgICAgIE5VTEw7Cit9CisKK0RSSVZFUl9JTklU
SUFMSVpFICAgRHJpdmVyRW50cnk7CiAKIE5UU1RBVFVTCiBEcml2ZXJFbnRyeSgKQEAgLTI4Nyw2
ICszNjgsOCBAQCBEcml2ZXJFbnRyeSgKICAgICBEcml2ZXIuQWRhcHRlciA9IE5VTEw7CiAgICAg
QnVmZmVySW5pdGlhbGl6ZSgpOwogCisgICAgX19Ecml2ZXJJbml0aWFsaXplT3ZlcnJpZGVzKCk7
CisKICAgICBzdGF0dXMgPSBBZGFwdGVyRHJpdmVyRW50cnkoUmVnaXN0cnlQYXRoLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBEcml2ZXJPYmplY3QpOwogICAgIGlmICghTlRfU1VD
Q0VTUyhzdGF0dXMpKQpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9kcml2ZXIuaCBiL3NyYy94ZW52
YmQvZHJpdmVyLmgKaW5kZXggMzg2Y2Q4NC4uOTQwOTY4ZSAxMDA2NDQKLS0tIGEvc3JjL3hlbnZi
ZC9kcml2ZXIuaAorKysgYi9zcmMveGVudmJkL2RyaXZlci5oCkBAIC02Nyw0ICs2NywzNSBAQCBE
cml2ZXJSZXF1ZXN0UmVib290KAogICAgIFZPSUQKICAgICApOwogCisvLyBSZWdpc3RyeSBvdmVy
cmlkZXMgZm9yIGRyaXZlciBmZWF0dXJlcwordHlwZWRlZiBlbnVtIF9YRU5WQkRfRkVBVFVSRSB7
CisgICAgRmVhdHVyZVJlbW92YWJsZSA9IDAsCisgICAgRmVhdHVyZVBlcnNpc3RlbnQsCisgICAg
RmVhdHVyZU1heEluZGlyZWN0U2VnbWVudHMsCisgICAgRmVhdHVyZUJhcnJpZXIsCisgICAgRmVh
dHVyZUZsdXNoQ2FjaGUsCisgICAgRmVhdHVyZURpc2NhcmQsCisgICAgRmVhdHVyZURpc2NhcmRF
bmFibGUsCisgICAgRmVhdHVyZURpc2NhcmRTZWN1cmUsCisgICAgRmVhdHVyZURpc2NhcmRBbGln
bm1lbnQsCisgICAgRmVhdHVyZURpc2NhcmRHcmFudWxhcml0eSwKKworICAgIC8vIEFkZCBhbnkg
bmV3IGZlYXR1cmVzIGJlZm9yZSB0aGlzIGVudW0KKyAgICBOdW1iZXJPZkZlYXR1cmVzCit9IFhF
TlZCRF9GRUFUVVJFLCAqUFhFTlZCRF9GRUFUVVJFOworCitfX2NoZWNrUmV0dXJuCitfU3VjY2Vz
c18ocmV0dXJuKQorZXh0ZXJuIEJPT0xFQU4KK0RyaXZlckdldEZlYXR1cmVPdmVycmlkZSgKKyAg
ICBJTiAgWEVOVkJEX0ZFQVRVUkUgICBGZWF0dXJlLAorICAgIE9VVCBQVUxPTkcgICAgICAgICAg
IFZhbHVlCisgICAgKTsKKworX19jaGVja1JldHVybgorZXh0ZXJuIGNvbnN0IENIQVIgKgorRHJp
dmVyR2V0RmVhdHVyZU5hbWUoCisgICAgSU4gIFhFTlZCRF9GRUFUVVJFICBGZWF0dXJlCisgICAg
KTsKKwogI2VuZGlmIC8vIF9YRU5WQkRfRFJJVkVSX0gKZGlmZiAtLWdpdCBhL3NyYy94ZW52YmQv
ZnJvbnRlbmQuYyBiL3NyYy94ZW52YmQvZnJvbnRlbmQuYwppbmRleCAxM2FiOWI0Li5jOTA5ZWE4
IDEwMDY0NAotLS0gYS9zcmMveGVudmJkL2Zyb250ZW5kLmMKKysrIGIvc3JjL3hlbnZiZC9mcm9u
dGVuZC5jCkBAIC02MjAsMTUgKzYyMCw1NSBAQCBhYm9ydDoKIAogc3RhdGljIEZPUkNFSU5MSU5F
IEJPT0xFQU4KIEZyb250ZW5kUmVhZEZlYXR1cmUoCi0gICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQg
ICAgICAgICAgICBGcm9udGVuZCwKLSAgICBJTiAgUENIQVIgICAgICAgICAgICAgICAgICAgICAg
IE5hbWUsCi0gICAgSU4gIFBCT09MRUFOICAgICAgICAgICAgICAgICAgICBWYWx1ZQorICAgIElO
ICBQWEVOVkJEX0ZST05URU5EICAgIEZyb250ZW5kLAorICAgIElOICBYRU5WQkRfRkVBVFVSRSAg
ICAgIEZlYXR1cmUsCisgICAgSU4gIFBCT09MRUFOICAgICAgICAgICAgVmFsdWUKKykKK3sKKyAg
ICBOVFNUQVRVUyAgICAgICAgICAgICAgICBzdGF0dXM7CisgICAgUENIQVIgICAgICAgICAgICAg
ICAgICAgQnVmZmVyOworICAgIFVMT05HICAgICAgICAgICAgICAgICAgIE92ZXJyaWRlOworICAg
IEJPT0xFQU4gICAgICAgICAgICAgICAgIE9sZCA9ICpWYWx1ZTsKKyAgICBjb25zdCBDSEFSICAg
ICAgICAgICAgICAqTmFtZTsKKworICAgIE5hbWUgPSBEcml2ZXJHZXRGZWF0dXJlTmFtZShGZWF0
dXJlKTsKKyAgICBpZiAoTmFtZSA9PSBOVUxMKSB7CisgICAgICAgIFRyYWNlKCJUYXJnZXRbJWRd
IDogQ291bGQgbm90IGZpbmQgRmVhdHVyZSAldS5cbiIsIEZyb250ZW5kLT5UYXJnZXRJZCwgRmVh
dHVyZSk7CisgICAgICAgIHJldHVybiBGQUxTRTsKKyAgICB9CisKKyAgICBpZiAoRHJpdmVyR2V0
RmVhdHVyZU92ZXJyaWRlKEZlYXR1cmUsICZPdmVycmlkZSkpIHsKKyAgICAgICAgKlZhbHVlID0g
ISFPdmVycmlkZTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBYRU5CVVNfU1RPUkUo
UmVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+U3RvcmVJbnRl
cmZhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgRnJvbnRlbmQtPkJhY2tlbmRQYXRoLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKFBDSEFSKU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmQnVmZmVyKTsKKyAgICAgICAgaWYgKCFOVF9TVUNDRVNTKHN0YXR1cykpCisgICAgICAgICAg
ICByZXR1cm4gRkFMU0U7ICAgLy8gbm8gdmFsdWUsIHVuY2hhbmdlZAorCisgICAgICAgICpWYWx1
ZSA9ICEhKHN0cnRvdWwoQnVmZmVyLCBOVUxMLCAxMCkpOworCisgICAgICAgIFhFTkJVU19TVE9S
RShGcmVlLAorICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5TdG9yZUludGVyZmFjZSwK
KyAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcik7CisgICAgfQorCisgICAgcmV0dXJuIE9sZCAh
PSAqVmFsdWU7Cit9CisKK3N0YXRpYyBGT1JDRUlOTElORSBCT09MRUFOCitGcm9udGVuZFJlYWRE
aXNrRmVhdHVyZSgKKyAgICBJTiAgUFhFTlZCRF9GUk9OVEVORCAgICBGcm9udGVuZCwKKyAgICBJ
TiAgUENIQVIgICAgICAgICAgICAgICBOYW1lLAorICAgIElOICBQQk9PTEVBTiAgICAgICAgICAg
IFZhbHVlCiAgICAgKQogewotICAgIE5UU1RBVFVTICAgICAgICBzdGF0dXM7Ci0gICAgUENIQVIg
ICAgICAgICAgIEJ1ZmZlcjsKLSAgICBVTE9ORyAgICAgICAgICAgT3ZlcnJpZGU7Ci0gICAgQk9P
TEVBTiAgICAgICAgIE9sZCA9ICpWYWx1ZTsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICBz
dGF0dXM7CisgICAgUENIQVIgICAgICAgICAgICAgICAgICAgQnVmZmVyOworICAgIEJPT0xFQU4g
ICAgICAgICAgICAgICAgIE9sZCA9ICpWYWx1ZTsKIAogICAgIHN0YXR1cyA9IFhFTkJVU19TVE9S
RShSZWFkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPlN0b3JlSW50ZXJm
YWNlLApAQCAtNjQwLDM0ICs2ODAsNjcgQEAgRnJvbnRlbmRSZWFkRmVhdHVyZSgKICAgICAgICAg
cmV0dXJuIEZBTFNFOyAgIC8vIG5vIHZhbHVlLCB1bmNoYW5nZWQKIAogICAgICpWYWx1ZSA9ICEh
KHN0cnRvdWwoQnVmZmVyLCBOVUxMLCAxMCkpOworCiAgICAgWEVOQlVTX1NUT1JFKEZyZWUsCi0g
ICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+U3RvcmVJbnRlcmZhY2UsCi0gICAgICAgICAg
ICAgICAgICAgIEJ1ZmZlcik7CisgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+U3RvcmVJbnRl
cmZhY2UsCisgICAgICAgICAgICAgICAgIEJ1ZmZlcik7CisKKyAgICByZXR1cm4gT2xkICE9ICpW
YWx1ZTsKK30KKworc3RhdGljIEZPUkNFSU5MSU5FIEJPT0xFQU4KK0Zyb250ZW5kUmVhZFZhbHVl
MzIoCisgICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQgICAgRnJvbnRlbmQsCisgICAgSU4gIFhFTlZC
RF9GRUFUVVJFICAgICAgRmVhdHVyZSwKKyAgICBJTiAgQk9PTEVBTiAgICAgICAgICAgICBBbGxv
d092ZXJyaWRlLAorICAgIElOICBQVUxPTkcgICAgICAgICAgICAgIFZhbHVlCispCit7CisgICAg
TlRTVEFUVVMgICAgICAgICAgICAgICAgc3RhdHVzOworICAgIFBDSEFSICAgICAgICAgICAgICAg
ICAgIEJ1ZmZlcjsKKyAgICBVTE9ORyAgICAgICAgICAgICAgICAgICBPdmVycmlkZTsKKyAgICBV
TE9ORyAgICAgICAgICAgICAgICAgICBPbGQgPSAqVmFsdWU7CisgICAgY29uc3QgQ0hBUiAgICAg
ICAgICAgICAgKk5hbWU7CisKKyAgICBOYW1lID0gRHJpdmVyR2V0RmVhdHVyZU5hbWUoRmVhdHVy
ZSk7CisgICAgaWYgKE5hbWUgPT0gTlVMTCkgeworICAgICAgICBUcmFjZSgiVGFyZ2V0WyVkXSA6
IENvdWxkIG5vdCBmaW5kIEZlYXR1cmUgJXUuXG4iLCBGcm9udGVuZC0+VGFyZ2V0SWQsIEZlYXR1
cmUpOworICAgICAgICByZXR1cm4gRkFMU0U7CisgICAgfQogCiAgICAgLy8gY2hlY2sgcmVnaXN0
cnkgZm9yIGRpc2FibGUtb3ZlcnJpZGUKLSAgICBzdGF0dXMgPSBSZWdpc3RyeVF1ZXJ5RHdvcmRW
YWx1ZShEcml2ZXJHZXRQYXJhbWV0ZXJzS2V5KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBOYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJk92
ZXJyaWRlKTsKLSAgICBpZiAoTlRfU1VDQ0VTUyhzdGF0dXMpKSB7Ci0gICAgICAgIGlmIChPdmVy
cmlkZSA9PSAwKQotICAgICAgICAgICAgKlZhbHVlID0gRkFMU0U7CisgICAgaWYgKEFsbG93T3Zl
cnJpZGUgJiYgRHJpdmVyR2V0RmVhdHVyZU92ZXJyaWRlKEZlYXR1cmUsICZPdmVycmlkZSkpIHsK
KyAgICAgICAgKlZhbHVlID0gT3ZlcnJpZGU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVz
ID0gWEVOQlVTX1NUT1JFKFJlYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJv
bnRlbmQtPlN0b3JlSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM
TCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZyb250ZW5kLT5CYWNrZW5kUGF0aCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQQ0hBUilOYW1lLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJkJ1ZmZlcik7CisgICAgICAgIGlmICghTlRfU1VDQ0VTUyhzdGF0
dXMpKQorICAgICAgICAgICAgcmV0dXJuIEZBTFNFOyAgIC8vIG5vIHZhbHVlLCB1bmNoYW5nZWQK
KworICAgICAgICAqVmFsdWUgPSBzdHJ0b3VsKEJ1ZmZlciwgTlVMTCwgMTApOworCisgICAgICAg
IFhFTkJVU19TVE9SRShGcmVlLAorICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5TdG9y
ZUludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlcik7CiAgICAgfQogCiAgICAg
cmV0dXJuIE9sZCAhPSAqVmFsdWU7CiB9CiAKIHN0YXRpYyBGT1JDRUlOTElORSBCT09MRUFOCi1G
cm9udGVuZFJlYWRWYWx1ZTMyKAotICAgIElOICBQWEVOVkJEX0ZST05URU5EICAgICAgICAgICAg
RnJvbnRlbmQsCi0gICAgSU4gIFBDSEFSICAgICAgICAgICAgICAgICAgICAgICBOYW1lLAotICAg
IElOICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgQWxsb3dPdmVycmlkZSwKLSAgICBJTiAg
UFVMT05HICAgICAgICAgICAgICAgICAgICAgIFZhbHVlCi0gICAgKQorRnJvbnRlbmRSZWFkRGlz
a1ZhbHVlMzIoCisgICAgSU4gIFBYRU5WQkRfRlJPTlRFTkQgICAgRnJvbnRlbmQsCisgICAgSU4g
IFBDSEFSICAgICAgICAgICAgICAgTmFtZSwKKyAgICBJTiAgUFVMT05HICAgICAgICAgICAgICBW
YWx1ZQorKQogewotICAgIE5UU1RBVFVTICAgICAgICBzdGF0dXM7Ci0gICAgUENIQVIgICAgICAg
ICAgIEJ1ZmZlcjsKLSAgICBVTE9ORyAgICAgICAgICAgT3ZlcnJpZGU7Ci0gICAgVUxPTkcgICAg
ICAgICAgIE9sZCA9ICpWYWx1ZTsKKyAgICBOVFNUQVRVUyAgICAgICAgICAgICAgICBzdGF0dXM7
CisgICAgUENIQVIgICAgICAgICAgICAgICAgICAgQnVmZmVyOworICAgIFVMT05HICAgICAgICAg
ICAgICAgICAgIE9sZCA9ICpWYWx1ZTsKIAogICAgIHN0YXR1cyA9IFhFTkJVU19TVE9SRShSZWFk
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPlN0b3JlSW50ZXJmYWNlLApA
QCAtNjc5LDMzICs3NTIsMjQgQEAgRnJvbnRlbmRSZWFkVmFsdWUzMigKICAgICAgICAgcmV0dXJu
IEZBTFNFOyAgIC8vIG5vIHZhbHVlLCB1bmNoYW5nZWQKIAogICAgICpWYWx1ZSA9IHN0cnRvdWwo
QnVmZmVyLCBOVUxMLCAxMCk7Ci0gICAgWEVOQlVTX1NUT1JFKEZyZWUsCi0gICAgICAgICAgICAg
ICAgICAgICZGcm9udGVuZC0+U3RvcmVJbnRlcmZhY2UsCi0gICAgICAgICAgICAgICAgICAgIEJ1
ZmZlcik7CiAKLSAgICAvLyBjaGVjayByZWdpc3RyeSBmb3IgZGlzYWJsZS1vdmVycmlkZQotICAg
IGlmIChBbGxvd092ZXJyaWRlKSB7Ci0gICAgICAgIHN0YXR1cyA9IFJlZ2lzdHJ5UXVlcnlEd29y
ZFZhbHVlKERyaXZlckdldFBhcmFtZXRlcnNLZXkoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBOYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZPdmVycmlkZSk7Ci0gICAgICAgIGlmIChOVF9TVUNDRVNTKHN0YXR1cykpIHsKLSAg
ICAgICAgICAgICpWYWx1ZSA9IE92ZXJyaWRlOwotICAgICAgICB9Ci0gICAgfQorICAgIFhFTkJV
U19TVE9SRShGcmVlLAorICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPlN0b3JlSW50ZXJmYWNl
LAorICAgICAgICAgICAgICAgICBCdWZmZXIpOwogCiAgICAgcmV0dXJuIE9sZCAhPSAqVmFsdWU7
CiB9CiAKIHN0YXRpYyBGT1JDRUlOTElORSBCT09MRUFOCiBGcm9udGVuZFJlYWRWYWx1ZTY0KAot
ICAgIElOICBQWEVOVkJEX0ZST05URU5EICAgICAgICAgICAgRnJvbnRlbmQsCi0gICAgSU4gIFBD
SEFSICAgICAgICAgICAgICAgICAgICAgICBOYW1lLAotICAgIElOIE9VVCBQVUxPTkc2NCAgICAg
ICAgICAgICAgICAgVmFsdWUKKyAgICBJTiAgUFhFTlZCRF9GUk9OVEVORCAgICBGcm9udGVuZCwK
KyAgICBJTiAgUENIQVIgICAgICAgICAgICAgICBOYW1lLAorICAgIElOIE9VVCBQVUxPTkc2NCAg
ICAgICAgIFZhbHVlCiAgICAgKQogewotICAgIE5UU1RBVFVTICAgICAgICBzdGF0dXM7Ci0gICAg
UENIQVIgICAgICAgICAgIEJ1ZmZlcjsKLSAgICBVTE9ORzY0ICAgICAgICAgT2xkID0gKlZhbHVl
OworICAgIE5UU1RBVFVTICAgICAgICAgICAgICAgIHN0YXR1czsKKyAgICBQQ0hBUiAgICAgICAg
ICAgICAgICAgICBCdWZmZXI7CisgICAgVUxPTkc2NCAgICAgICAgICAgICAgICAgT2xkID0gKlZh
bHVlOwogCiAgICAgc3RhdHVzID0gWEVOQlVTX1NUT1JFKFJlYWQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICZGcm9udGVuZC0+U3RvcmVJbnRlcmZhY2UsCkBAIC03MTcsNTcgKzc4MSw1OSBA
QCBGcm9udGVuZFJlYWRWYWx1ZTY0KAogICAgICAgICByZXR1cm4gRkFMU0U7ICAgLy8gbm8gdmFs
dWUsIHVuY2hhbmdlZAogCiAgICAgKlZhbHVlID0gX3N0cnRvdWk2NChCdWZmZXIsIE5VTEwsIDEw
KTsKKwogICAgIFhFTkJVU19TVE9SRShGcmVlLAotICAgICAgICAgICAgICAgICAgICAmRnJvbnRl
bmQtPlN0b3JlSW50ZXJmYWNlLAotICAgICAgICAgICAgICAgICAgICBCdWZmZXIpOworICAgICAg
ICAgICAgICAgICAmRnJvbnRlbmQtPlN0b3JlSW50ZXJmYWNlLAorICAgICAgICAgICAgICAgICBC
dWZmZXIpOwogCiAgICAgcmV0dXJuIE9sZCAhPSAqVmFsdWU7CiB9CiAKIHN0YXRpYyBGT1JDRUlO
TElORSBVTE9ORwogX19TaXplKAotICAgIF9faW4gIFBYRU5WQkRfRElTS0lORk8gICAgICAgICAg
SW5mbworICAgIF9faW4gIFBYRU5WQkRfRElTS0lORk8gIEluZm8KICAgICApCiB7Ci0gICAgVUxP
Tkc2NCBNQnl0ZXMgPSAoSW5mby0+U2VjdG9yU2l6ZSAqIEluZm8tPlNlY3RvckNvdW50KSA+PiAy
MDsgLy8gLyAoMTAyNCAqIDEwMjQpOyAKKyAgICBVTE9ORzY0ICAgICAgICAgICAgICAgICBNQnl0
ZXMgPSAoSW5mby0+U2VjdG9yU2l6ZSAqIEluZm8tPlNlY3RvckNvdW50KSA+PiAyMDsgLy8gLyAo
MTAyNCAqIDEwMjQpOworCiAgICAgaWYgKE1CeXRlcyA8IDEwMjQwKQogICAgICAgICByZXR1cm4g
KFVMT05HKU1CeXRlczsKKwogICAgIHJldHVybiAoVUxPTkcpKE1CeXRlcyA+PiAxMCk7IC8vIC8g
MTAyNAogfQogc3RhdGljIEZPUkNFSU5MSU5FIFBDSEFSCiBfX1VuaXRzKAotICAgIF9faW4gIFBY
RU5WQkRfRElTS0lORk8gICAgICAgICAgSW5mbworICAgIF9faW4gIFBYRU5WQkRfRElTS0lORk8g
IEluZm8KICAgICApCiB7Ci0gICAgVUxPTkc2NCBNQnl0ZXMgPSAoSW5mby0+U2VjdG9yU2l6ZSAq
IEluZm8tPlNlY3RvckNvdW50KSA+PiAyMDsgLy8gLyAoMTAyNCAqIDEwMjQpOyAKKyAgICBVTE9O
RzY0ICAgICAgICAgICAgICAgICBNQnl0ZXMgPSAoSW5mby0+U2VjdG9yU2l6ZSAqIEluZm8tPlNl
Y3RvckNvdW50KSA+PiAyMDsgLy8gLyAoMTAyNCAqIDEwMjQpOworCiAgICAgaWYgKE1CeXRlcyA8
IDEwMjQwKQogICAgICAgICByZXR1cm4gIk1CIjsKKwogICAgIHJldHVybiAiR0IiOwogfQogCiBf
X2Rydl9yZXF1aXJlc0lSUUwoRElTUEFUQ0hfTEVWRUwpCiBzdGF0aWMgVk9JRAogX19SZWFkRGlz
a0luZm8oCi0gICAgX19pbiAgUFhFTlZCRF9GUk9OVEVORCAgICAgICAgRnJvbnRlbmQKKyAgICBf
X2luICBQWEVOVkJEX0ZST05URU5EICBGcm9udGVuZAogICAgICkKIHsKLSAgICBCT09MRUFOIENo
YW5nZWQgPSBGQUxTRTsKLQotICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFkVmFsdWUzMihGcm9u
dGVuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5mbyIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFMU0UsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJkZyb250ZW5kLT5EaXNrSW5mby5EaXNrSW5mbyk7Ci0gICAgQ2hhbmdlZCB8
PSBGcm9udGVuZFJlYWRWYWx1ZTMyKEZyb250ZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzZWN0b3Itc2l6ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRkFMU0UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5E
aXNrSW5mby5TZWN0b3JTaXplKTsKLSAgICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZFZhbHVlMzIo
RnJvbnRlbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBoeXNpY2FsLXNl
Y3Rvci1zaXplIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmRnJvbnRlbmQtPkRpc2tJbmZvLlBoeXNT
ZWN0b3JTaXplKTsKKyAgICBCT09MRUFOICAgICAgICAgICAgICAgICBDaGFuZ2VkOworCisgICAg
Q2hhbmdlZCA9IEZyb250ZW5kUmVhZERpc2tWYWx1ZTMyKEZyb250ZW5kLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5mbyIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uRGlza0luZm8pOworICAgIENoYW5n
ZWQgfD0gRnJvbnRlbmRSZWFkRGlza1ZhbHVlMzIoRnJvbnRlbmQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic2VjdG9yLXNpemUiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5EaXNrSW5mby5TZWN0b3JTaXplKTsKKyAg
ICBDaGFuZ2VkIHw9IEZyb250ZW5kUmVhZERpc2tWYWx1ZTMyKEZyb250ZW5kLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBoeXNpY2FsLXNlY3Rvci1zaXplIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8u
UGh5c1NlY3RvclNpemUpOwogICAgIENoYW5nZWQgfD0gRnJvbnRlbmRSZWFkVmFsdWU2NChGcm9u
dGVuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VjdG9ycyIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5EaXNrSW5mby5TZWN0b3JD
b3VudCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWN0b3JzIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZyb250ZW5kLT5EaXNrSW5mby5TZWN0
b3JDb3VudCk7CiAKICAgICBpZiAoIUNoYW5nZWQpCiAgICAgICAgIHJldHVybjsKQEAgLTc5MSw0
MCArODU3LDQxIEBAIF9fUmVhZERpc2tJbmZvKAogCiAgICAgLy8gZHVtcCBhY3R1YWwgdmFsdWVz
CiAgICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6ICVsbGQgc2VjdG9ycyBvZiAlZCBieXRlcyAoJWQp
XG4iLCBGcm9udGVuZC0+VGFyZ2V0SWQsCi0gICAgICAgICAgICAgICAgRnJvbnRlbmQtPkRpc2tJ
bmZvLlNlY3RvckNvdW50LCBGcm9udGVuZC0+RGlza0luZm8uU2VjdG9yU2l6ZSwKLSAgICAgICAg
ICAgICAgICBGcm9udGVuZC0+RGlza0luZm8uUGh5c1NlY3RvclNpemUpOworICAgICAgICAgICAg
RnJvbnRlbmQtPkRpc2tJbmZvLlNlY3RvckNvdW50LCBGcm9udGVuZC0+RGlza0luZm8uU2VjdG9y
U2l6ZSwKKyAgICAgICAgICAgIEZyb250ZW5kLT5EaXNrSW5mby5QaHlzU2VjdG9yU2l6ZSk7CiAg
ICAgVmVyYm9zZSgiVGFyZ2V0WyVkXSA6ICVkICVzICglMDh4KSAlc1xuIiwgRnJvbnRlbmQtPlRh
cmdldElkLAotICAgICAgICAgICAgICAgIF9fU2l6ZSgmRnJvbnRlbmQtPkRpc2tJbmZvKSwgX19V
bml0cygmRnJvbnRlbmQtPkRpc2tJbmZvKSwKLSAgICAgICAgICAgICAgICBGcm9udGVuZC0+RGlz
a0luZm8uRGlza0luZm8sCi0gICAgICAgICAgICAgICAgRnJvbnRlbmQtPkNhcHMuU3VycHJpc2VS
ZW1vdmFibGUgPyAiU1VSUFJJU0VfUkVNT1ZBQkxFIiA6ICIiKTsKKyAgICAgICAgICAgIF9fU2l6
ZSgmRnJvbnRlbmQtPkRpc2tJbmZvKSwgX19Vbml0cygmRnJvbnRlbmQtPkRpc2tJbmZvKSwKKyAg
ICAgICAgICAgIEZyb250ZW5kLT5EaXNrSW5mby5EaXNrSW5mbywKKyAgICAgICAgICAgIEZyb250
ZW5kLT5DYXBzLlN1cnByaXNlUmVtb3ZhYmxlID8gIlNVUlBSSVNFX1JFTU9WQUJMRSIgOiAiIik7
CiB9CiAKIHN0YXRpYyBGT1JDRUlOTElORSBWT0lECiBGcm9udGVuZFJlYWRGZWF0dXJlcygKLSAg
ICBJTiAgUFhFTlZCRF9GUk9OVEVORCAgICAgICAgICAgIEZyb250ZW5kCisgICAgSU4gIFBYRU5W
QkRfRlJPTlRFTkQgICAgRnJvbnRlbmQKICAgICApCiB7Ci0gICAgQk9PTEVBTiBDaGFuZ2VkID0g
RkFMU0U7CisgICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgQ2hhbmdlZDsKIAotICAgIENoYW5n
ZWQgfD0gRnJvbnRlbmRSZWFkRmVhdHVyZShGcm9udGVuZCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInJlbW92YWJsZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZGcm9udGVuZC0+Q2Fwcy5SZW1vdmFibGUpOworICAgIENoYW5nZWQgPSBGcm9udGVu
ZFJlYWRGZWF0dXJlKEZyb250ZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEZlYXR1cmVSZW1vdmFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZy
b250ZW5kLT5DYXBzLlJlbW92YWJsZSk7CiAgICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWRWYWx1
ZTMyKEZyb250ZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmVhdHVy
ZS1tYXgtaW5kaXJlY3Qtc2VnbWVudHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBGZWF0dXJlTWF4SW5kaXJlY3RTZWdtZW50cywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVFJVRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkZy
b250ZW5kLT5GZWF0dXJlcy5JbmRpcmVjdCk7CiAgICAgQ2hhbmdlZCB8PSBGcm9udGVuZFJlYWRG
ZWF0dXJlKEZyb250ZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmVh
dHVyZS1wZXJzaXN0ZW50IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVh
dHVyZVBlcnNpc3RlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZGcm9u
dGVuZC0+RmVhdHVyZXMuUGVyc2lzdGVudCk7CiAKICAgICBpZiAoIUNoYW5nZWQpCiAgICAgICAg
IHJldHVybjsKIAogICAgIFZlcmJvc2UoIlRhcmdldFslZF0gOiBGZWF0dXJlczogJXMlcyVzXG4i
LAotICAgICAgICAgICAgICAgIEZyb250ZW5kLT5UYXJnZXRJZCwKLSAgICAgICAgICAgICAgICBG
cm9udGVuZC0+RmVhdHVyZXMuUGVyc2lzdGVudCA/ICJQRVJTSVNURU5UICIgOiAiIiwKLSAgICAg
ICAgICAgICAgICBGcm9udGVuZC0+RmVhdHVyZXMuSW5kaXJlY3QgPyAiSU5ESVJFQ1QgIiA6ICIi
LAotICAgICAgICAgICAgICAgIEZyb250ZW5kLT5DYXBzLlJlbW92YWJsZSA/ICJSRU1PVkFCTEUi
IDogIiIpOworICAgICAgICAgICAgRnJvbnRlbmQtPlRhcmdldElkLAorICAgICAgICAgICAgRnJv
bnRlbmQtPkZlYXR1cmVzLlBlcnNpc3RlbnQgPyAiUEVSU0lTVEVOVCAiIDogIiIsCisgICAgICAg
ICAgICBGcm9udGVuZC0+RmVhdHVyZXMuSW5kaXJlY3QgPyAiSU5ESVJFQ1QgIiA6ICIiLAorICAg
ICAgICAgICAgRnJvbnRlbmQtPkNhcHMuUmVtb3ZhYmxlID8gIlJFTU9WQUJMRSIgOiAiIik7CisK
ICAgICBpZiAoRnJvbnRlbmQtPkZlYXR1cmVzLkluZGlyZWN0KSB7CiAgICAgICAgIFZlcmJvc2Uo
IlRhcmdldFslZF0gOiBJTkRJUkVDVCAleFxuIiwKICAgICAgICAgICAgICAgICAgICAgRnJvbnRl
bmQtPlRhcmdldElkLApAQCAtODM0LDQwICs5MDEsNDQgQEAgRnJvbnRlbmRSZWFkRmVhdHVyZXMo
CiAKIHN0YXRpYyBGT1JDRUlOTElORSBWT0lECiBGcm9udGVuZFJlYWREaXNrSW5mbygKLSAgICBJ
TiAgUFhFTlZCRF9GUk9OVEVORCAgICAgICAgICAgIEZyb250ZW5kCisgICAgSU4gIFBYRU5WQkRf
RlJPTlRFTkQgICAgRnJvbnRlbmQKICAgICApCiB7Ci0gICAgQk9PTEVBTiBDaGFuZ2VkID0gRkFM
U0U7Ci0gICAgQk9PTEVBTiBEaXNjYXJkOwotICAgIEJPT0xFQU4gRGlzY2FyZEZlYXR1cmUgPSBG
QUxTRTsKLSAgICBCT09MRUFOIERpc2NhcmRFbmFibGUgPSBUUlVFOwotCisgICAgQk9PTEVBTiAg
ICAgICAgICAgICAgICAgQ2hhbmdlZDsKKyAgICBCT09MRUFOICAgICAgICAgICAgICAgICBEaXNj
YXJkOworICAgIEJPT0xFQU4gICAgICAgICAgICAgICAgIERpc2NhcmRGZWF0dXJlID0gRkFMU0U7
CisgICAgQk9PTEVBTiAgICAgICAgICAgICAgICAgRGlzY2FyZEVuYWJsZSA9IFRSVUU7CisKKyAg
ICBDaGFuZ2VkID0gRnJvbnRlbmRSZWFkRmVhdHVyZShGcm9udGVuZCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBGZWF0dXJlQmFycmllciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmRnJvbnRlbmQtPkRpc2tJbmZvLkJhcnJpZXIpOwogICAgIENoYW5nZWQg
fD0gRnJvbnRlbmRSZWFkRmVhdHVyZShGcm9udGVuZCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImZlYXR1cmUtYmFycmllciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICZGcm9udGVuZC0+RGlza0luZm8uQmFycmllcik7Ci0gICAgQ2hhbmdlZCB8PSBG
cm9udGVuZFJlYWRGZWF0dXJlKEZyb250ZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZmVhdHVyZS1mbHVzaC1jYWNoZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEZlYXR1cmVGbHVzaENhY2hlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmRnJvbnRlbmQtPkRpc2tJbmZvLkZsdXNoQ2FjaGUpOwogCiAgICAgLy8gZGlzY2Fy
ZCByZWxhdGVkCiAgICAgRnJvbnRlbmRSZWFkRmVhdHVyZShGcm9udGVuZCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJmZWF0dXJlLWRpc2NhcmQiLAorICAgICAgICAgICAgICAgICAgICAgICAg
RmVhdHVyZURpc2NhcmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAmRGlzY2FyZEZlYXR1cmUp
OwogICAgIEZyb250ZW5kUmVhZEZlYXR1cmUoRnJvbnRlbmQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAiZGlzY2FyZC1lbmFibGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgRmVhdHVyZURp
c2NhcmRFbmFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAmRGlzY2FyZEVuYWJsZSk7CisK
ICAgICBEaXNjYXJkID0gRGlzY2FyZEZlYXR1cmUgJiYgRGlzY2FyZEVuYWJsZTsKKwogICAgIENo
YW5nZWQgfD0gKERpc2NhcmQgIT0gRnJvbnRlbmQtPkRpc2tJbmZvLkRpc2NhcmQpOworCiAgICAg
RnJvbnRlbmQtPkRpc2tJbmZvLkRpc2NhcmQgPSBEaXNjYXJkOworCiAgICAgQ2hhbmdlZCB8PSBG
cm9udGVuZFJlYWRGZWF0dXJlKEZyb250ZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZGlzY2FyZC1zZWN1cmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBGZWF0dXJlRGlzY2FyZFNlY3VyZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJkZyb250ZW5kLT5EaXNrSW5mby5EaXNjYXJkU2VjdXJlKTsKICAgICBDaGFuZ2VkIHw9
IEZyb250ZW5kUmVhZFZhbHVlMzIoRnJvbnRlbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJkaXNjYXJkLWFsaWdubWVudCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEZlYXR1cmVEaXNjYXJkQWxpZ25tZW50LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
RnJvbnRlbmQtPkRpc2tJbmZvLkRpc2NhcmRBbGlnbm1lbnQpOwogICAgIENoYW5nZWQgfD0gRnJv
bnRlbmRSZWFkVmFsdWUzMihGcm9udGVuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImRpc2NhcmQtZ3JhbnVsYXJpdHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBGZWF0dXJlRGlzY2FyZEdyYW51bGFyaXR5LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBUUlVFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
RnJvbnRlbmQtPkRpc2tJbmZvLkRpc2NhcmRHcmFudWxhcml0eSk7CiAKQEAgLTg3OSw2ICs5NTAs
NyBAQCBGcm9udGVuZFJlYWREaXNrSW5mbygKICAgICAgICAgICAgICAgICBGcm9udGVuZC0+RGlz
a0luZm8uQmFycmllciA/ICJCQVJSSUVSICIgOiAiIiwKICAgICAgICAgICAgICAgICBGcm9udGVu
ZC0+RGlza0luZm8uRmx1c2hDYWNoZSA/ICAiRkxVU0ggIiA6ICIiLAogICAgICAgICAgICAgICAg
IEZyb250ZW5kLT5EaXNrSW5mby5EaXNjYXJkID8gIkRJU0NBUkQgIiA6ICIiKTsKKwogICAgIGlm
IChGcm9udGVuZC0+RGlza0luZm8uRGlzY2FyZCkgewogICAgICAgICBWZXJib3NlKCJUYXJnZXRb
JWRdIDogRElTQ0FSRCAlcyV4LyV4XG4iLAogICAgICAgICAgICAgICAgICAgICBGcm9udGVuZC0+
VGFyZ2V0SWQsCkBAIC0xMjQwLDYgKzEzMTIsOCBAQCBGcm9udGVuZERpc2FibGUoCiAKIC8vPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KIC8vIEluaXQvVGVybQorX0lSUUxfcmVxdWlyZXNfKERJU1BBVENI
X0xFVkVMKQorX1JlcXVpcmVzX2xvY2tfaGVsZF8oRnJvbnRlbmQtPlN0YXRlTG9jaykKIHN0YXRp
YyBERUNMU1BFQ19OT0lOTElORSBOVFNUQVRVUwogX19Gcm9udGVuZFNldFN0YXRlKAogICAgIF9f
aW4gIFBYRU5WQkRfRlJPTlRFTkQgICAgICAgIEZyb250ZW5kLApAQCAtMTQxMyw2ICsxNDg3LDcg
QEAgRnJvbnRlbmRTdXNwZW5kTGF0ZUNhbGxiYWNrKAogICAgIFN0YXRlID0gRnJvbnRlbmQtPlN0
YXRlOwogCiAgICAgLy8gZG9udCBhY3F1aXJlIHN0YXRlIGxvY2sgLSBjYWxsZWQgYXQgRElTUEFU
Q0ggb24gMSB2Q1BVIHdpdGggaW50ZXJydXB0cyBlbmFibGVkCisjcHJhZ21hIHdhcm5pbmcoc3Vw
cHJlc3M6IDI2MTEwKSAvLyB3YXJuaW5nIEMyNjExMDogQ2FsbGVyIGZhaWxpbmcgdG8gaG9sZCBs
b2NrIDxsb2NrPiBiZWZvcmUgY2FsbGluZyBmdW5jdGlvbiA8ZnVuYz4uCiAgICAgU3RhdHVzID0g
X19Gcm9udGVuZFNldFN0YXRlKEZyb250ZW5kLCBYRU5WQkRfQ0xPU0VEKTsKICAgICBpZiAoIU5U
X1NVQ0NFU1MoU3RhdHVzKSkgewogICAgICAgICBFcnJvcigiVGFyZ2V0WyVkXSA6IFNldFN0YXRl
IENMT1NFRCAoJTA4eClcbiIsIEZyb250ZW5kLT5UYXJnZXRJZCwgU3RhdHVzKTsKZGlmZiAtLWdp
dCBhL3NyYy94ZW52YmQvcmVnaXN0cnkuYyBiL3NyYy94ZW52YmQvcmVnaXN0cnkuYwppbmRleCA0
MGM3N2YxLi5iYjEwNWI5IDEwMDY0NAotLS0gYS9zcmMveGVudmJkL3JlZ2lzdHJ5LmMKKysrIGIv
c3JjL3hlbnZiZC9yZWdpc3RyeS5jCkBAIC04Niw2ICs4Niw3IEBAIFJlZ2lzdHJ5VGVhcmRvd24o
CiAgICAgUmVnaXN0cnlQYXRoLk1heGltdW1MZW5ndGggPSBSZWdpc3RyeVBhdGguTGVuZ3RoID0g
MDsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBOVFNUQVRVUwogUmVn
aXN0cnlPcGVuS2V5KAogICAgIElOICBIQU5ETEUgICAgICAgICAgUGFyZW50LApAQCAtMTE1LDYg
KzExNiw3IEBAIGZhaWwxOgogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKK19fZHJ2X3JlcXVpcmVz
SVJRTChQQVNTSVZFX0xFVkVMKQogc3RhdGljIE5UU1RBVFVTCiBSZWdpc3RyeU9wZW5Sb290KAog
ICAgIElOICBQV0NIQVIgICAgICAgICAgUGF0aCwKQEAgLTE0OCw2ICsxNTAsNyBAQCBmYWlsMToK
ICAgICByZXR1cm4gc3RhdHVzOwogfQogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZF
TCkKIE5UU1RBVFVTCiBSZWdpc3RyeUNyZWF0ZUtleSgKICAgICBJTiAgSEFORExFICAgICAgICAg
IFJvb3QsCkBAIC0yNDcsNiArMjUwLDcgQEAgZmFpbDE6CiAgICAgcmV0dXJuIHN0YXR1czsKIH0K
IAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlP
cGVuU2VydmljZUtleSgKICAgICBJTiAgQUNDRVNTX01BU0sgICAgIERlc2lyZWRBY2Nlc3MsCkBA
IC0yNTYsNiArMjYwLDcgQEAgUmVnaXN0cnlPcGVuU2VydmljZUtleSgKICAgICByZXR1cm4gUmVn
aXN0cnlPcGVuS2V5KE5VTEwsICZSZWdpc3RyeVBhdGgsIERlc2lyZWRBY2Nlc3MsIEtleSk7CiB9
CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogTlRTVEFUVVMKIFJlZ2lzdHJ5
Q3JlYXRlU2VydmljZUtleSgKICAgICBPVVQgUEhBTkRMRSAgICAgICAgIEtleQpAQCAtMjY0LDYg
KzI2OSw3IEBAIFJlZ2lzdHJ5Q3JlYXRlU2VydmljZUtleSgKICAgICByZXR1cm4gUmVnaXN0cnlD
cmVhdGVLZXkoTlVMTCwgJlJlZ2lzdHJ5UGF0aCwgUkVHX09QVElPTl9OT05fVk9MQVRJTEUsIEtl
eSk7CiB9CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogTlRTVEFUVVMKIFJl
Z2lzdHJ5T3BlblNvZnR3YXJlS2V5KAogICAgIElOICBQREVWSUNFX09CSkVDVCAgRGV2aWNlT2Jq
ZWN0LApAQCAtMjg2LDYgKzI5Miw3IEBAIGZhaWwxOgogICAgIHJldHVybiBzdGF0dXM7CiB9CiAK
K19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogTlRTVEFUVVMKIFJlZ2lzdHJ5T3Bl
bkhhcmR3YXJlS2V5KAogICAgIElOICBQREVWSUNFX09CSkVDVCAgICAgIERldmljZU9iamVjdCwK
QEAgLTM2Myw2ICszNzAsNyBAQCBmYWlsMToKICAgICByZXR1cm4gc3RhdHVzOwogfQogCitfX2Ry
dl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIE5UU1RBVFVTCiBSZWdpc3RyeU9wZW5TdWJL
ZXkoCiAgICAgSU4gIFBIQU5ETEUgICAgICAgICBLZXksCkBAIC0zOTYsNiArNDA0LDcgQEAgZmFp
bDE6CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVf
TEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlDcmVhdGVTdWJLZXkoCiAgICAgSU4gIFBIQU5ETEUg
ICAgICAgICBLZXksCkBAIC00MjksNiArNDM4LDcgQEAgZmFpbDE6CiAgICAgcmV0dXJuIHN0YXR1
czsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBOVFNUQVRVUwogUmVn
aXN0cnlEZWxldGVTdWJLZXkoCiAgICAgSU4gIFBIQU5ETEUgICAgICAgICBLZXksCkBAIC00NzIs
NiArNDgyLDcgQEAgZmFpbDE6CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIAorX19kcnZfcmVxdWly
ZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlFbnVtZXJhdGVTdWJLZXlz
KAogICAgIElOICBIQU5ETEUgICAgICAgICAgICAgIEtleSwKQEAgLTU3Niw2ICs1ODcsNyBAQCBm
YWlsMToKICAgICByZXR1cm4gc3RhdHVzOwogfQogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lW
RV9MRVZFTCkKIE5UU1RBVFVTCiBSZWdpc3RyeUVudW1lcmF0ZVZhbHVlcygKICAgICBJTiAgSEFO
RExFICAgICAgICAgICAgICAgICAgICAgIEtleSwKQEAgLTY3NCw2ICs2ODYsNyBAQCBmYWlsMToK
ICAgICByZXR1cm4gc3RhdHVzOwogfQogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZF
TCkKIE5UU1RBVFVTCiBSZWdpc3RyeURlbGV0ZVZhbHVlKAogICAgIElOICBQSEFORExFICAgICAg
ICAgS2V5LApAQCAtNzA3LDYgKzcyMCw3IEBAIGZhaWwxOgogICAgIHJldHVybiBzdGF0dXM7CiB9
CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogTlRTVEFUVVMKIFJlZ2lzdHJ5
UXVlcnlEd29yZFZhbHVlKAogICAgIElOICBIQU5ETEUgICAgICAgICAgICAgICAgICAgICAgS2V5
LApAQCAtNzc3LDYgKzc5MSw3IEBAIGZhaWwxOgogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKK19f
ZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogTlRTVEFUVVMKIFJlZ2lzdHJ5VXBkYXRl
RHdvcmRWYWx1ZSgKICAgICBJTiAgSEFORExFICAgICAgICAgICAgICAgICAgICAgIEtleSwKQEAg
LTgzNSw2ICs4NTAsNyBAQCBmYWlsMToKICAgICByZXR1cm4gc3RhdHVzOwogfQogCitfX2Rydl9y
ZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIHN0YXRpYyBQQU5TSV9TVFJJTkcKIFJlZ2lzdHJ5
U3pUb0Fuc2koCiAgICAgSU4gIFBXQ0hBUiAgICAgIEJ1ZmZlcgpAQCAtODc0LDYgKzg5MCw3IEBA
IGZhaWwxOgogICAgIHJldHVybiBOVUxMOwogfQogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lW
RV9MRVZFTCkKIHN0YXRpYyBQQU5TSV9TVFJJTkcKIFJlZ2lzdHJ5TXVsdGlTelRvQW5zaSgKICAg
ICBJTiAgUFdDSEFSICAgICAgQnVmZmVyCkBAIC05MzYsNiArOTUzLDcgQEAgZmFpbDE6CiAgICAg
cmV0dXJuIE5VTEw7CiB9CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogTlRT
VEFUVVMKIFJlZ2lzdHJ5UXVlcnlTelZhbHVlKAogICAgIElOICBIQU5ETEUgICAgICAgICAgICAg
ICAgICAgICAgS2V5LApAQCAtMTAyMyw2ICsxMDQxLDcgQEAgZmFpbDE6CiAgICAgcmV0dXJuIHN0
YXR1czsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBOVFNUQVRVUwog
UmVnaXN0cnlRdWVyeUJpbmFyeVZhbHVlKAogICAgIElOICBIQU5ETEUgICAgICAgICAgICAgICAg
ICAgICAgS2V5LApAQCAtMTEwOCw2ICsxMTI3LDcgQEAgZmFpbDE6CiAgICAgcmV0dXJuIHN0YXR1
czsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBOVFNUQVRVUwogUmVn
aXN0cnlVcGRhdGVCaW5hcnlWYWx1ZSgKICAgICBJTiAgSEFORExFICAgICAgICAgICAgICAgICAg
ICAgIEtleSwKQEAgLTExNjcsNiArMTE4Nyw3IEBAIGZhaWwxOgogICAgIHJldHVybiBzdGF0dXM7
CiB9CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogTlRTVEFUVVMKIFJlZ2lz
dHJ5UXVlcnlLZXlOYW1lKAogICAgIElOICBIQU5ETEUgICAgICAgICAgICAgIEtleSwKQEAgLTEy
MjIsNiArMTI0Myw3IEBAIGZhaWwxOgogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKK19fZHJ2X3Jl
cXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogTlRTVEFUVVMKIFJlZ2lzdHJ5UXVlcnlTeXN0ZW1T
dGFydE9wdGlvbigKICAgICBJTiAgY29uc3QgQ0hBUiAgICAgICAgICAgICAgICAgICpQcmVmaXgs
CkBAIC0xMzAwLDYgKzEzMjIsNyBAQCBmYWlsMToKICAgICByZXR1cm4gc3RhdHVzOwogfQogCitf
X2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIHN0YXRpYyBQS0VZX1ZBTFVFX1BBUlRJ
QUxfSU5GT1JNQVRJT04KIFJlZ2lzdHJ5QW5zaVRvU3ooCiAgICAgUEFOU0lfU1RSSU5HICAgICAg
ICAgICAgICAgICAgICBBbnNpCkBAIC0xMzM5LDYgKzEzNjIsNyBAQCBmYWlsMToKICAgICByZXR1
cm4gTlVMTDsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBzdGF0aWMg
UEtFWV9WQUxVRV9QQVJUSUFMX0lORk9STUFUSU9OCiBSZWdpc3RyeUFuc2lUb011bHRpU3ooCiAg
ICAgUEFOU0lfU1RSSU5HICAgICAgICAgICAgICAgICAgICBBbnNpCkBAIC0xMzkyLDYgKzE0MTYs
NyBAQCBmYWlsMToKICAgICByZXR1cm4gTlVMTDsKIH0KIAorX19kcnZfcmVxdWlyZXNJUlFMKFBB
U1NJVkVfTEVWRUwpCiBOVFNUQVRVUwogUmVnaXN0cnlVcGRhdGVTelZhbHVlKAogICAgIElOICBI
QU5ETEUgICAgICAgICAgICAgICAgICAgICAgS2V5LApAQCAtMTQ4Miw2ICsxNTA3LDcgQEAgUmVn
aXN0cnlGcmVlQmluYXJ5VmFsdWUoCiAgICAgX19SZWdpc3RyeUZyZWUoQnVmZmVyKTsKIH0KIAor
X19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBWT0lECiBSZWdpc3RyeUNsb3NlS2V5
KAogICAgIElOICBIQU5ETEUgIEtleQpkaWZmIC0tZ2l0IGEvc3JjL3hlbnZiZC9yZWdpc3RyeS5o
IGIvc3JjL3hlbnZiZC9yZWdpc3RyeS5oCmluZGV4IGQzOWYwMTYuLjliZjQ5MmUgMTAwNjQ0Ci0t
LSBhL3NyYy94ZW52YmQvcmVnaXN0cnkuaAorKysgYi9zcmMveGVudmJkL3JlZ2lzdHJ5LmgKQEAg
LTQ0LDYgKzQ0LDcgQEAgUmVnaXN0cnlUZWFyZG93bigKICAgICBWT0lECiAgICAgKTsKIAorX19k
cnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBleHRlcm4gTlRTVEFUVVMKIFJlZ2lzdHJ5
T3BlbktleSgKICAgICBJTiAgSEFORExFICAgICAgICAgIFBhcmVudCwKQEAgLTUyLDYgKzUzLDcg
QEAgUmVnaXN0cnlPcGVuS2V5KAogICAgIE9VVCBQSEFORExFICAgICAgICAgS2V5CiAgICAgKTsK
IAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBleHRlcm4gTlRTVEFUVVMKIFJl
Z2lzdHJ5Q3JlYXRlS2V5KAogICAgIElOICBIQU5ETEUgICAgICAgICAgUGFyZW50LApAQCAtNjAs
MTcgKzYyLDIwIEBAIFJlZ2lzdHJ5Q3JlYXRlS2V5KAogICAgIE9VVCBQSEFORExFICAgICAgICAg
S2V5CiAgICAgKTsKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBleHRlcm4g
TlRTVEFUVVMKIFJlZ2lzdHJ5T3BlblNlcnZpY2VLZXkoCiAgICAgSU4gIEFDQ0VTU19NQVNLIERl
c2lyZWRBY2Nlc3MsCiAgICAgT1VUIFBIQU5ETEUgICAgIEtleQogICAgICk7CiAKK19fZHJ2X3Jl
cXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3RyeUNyZWF0
ZVNlcnZpY2VLZXkoCiAgICAgT1VUIFBIQU5ETEUgICAgIEtleQogICAgICk7CiAKK19fZHJ2X3Jl
cXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3RyeU9wZW5T
b2Z0d2FyZUtleSgKICAgICBJTiAgUERFVklDRV9PQkpFQ1QgIERldmljZU9iamVjdCwKQEAgLTc4
LDYgKzgzLDcgQEAgUmVnaXN0cnlPcGVuU29mdHdhcmVLZXkoCiAgICAgT1VUIFBIQU5ETEUgICAg
ICAgICBLZXkKICAgICApOwogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIGV4
dGVybiBOVFNUQVRVUwogUmVnaXN0cnlPcGVuSGFyZHdhcmVLZXkoCiAgICAgSU4gIFBERVZJQ0Vf
T0JKRUNUICBEZXZpY2VPYmplY3QsCkBAIC04NSw2ICs5MSw3IEBAIFJlZ2lzdHJ5T3BlbkhhcmR3
YXJlS2V5KAogICAgIE9VVCBQSEFORExFICAgICAgICAgS2V5CiAgICAgKTsKIAorX19kcnZfcmVx
dWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBleHRlcm4gTlRTVEFUVVMKIFJlZ2lzdHJ5T3BlblN1
YktleSgKICAgICBJTiAgSEFORExFICAgICAgS2V5LApAQCAtOTMsNiArMTAwLDcgQEAgUmVnaXN0
cnlPcGVuU3ViS2V5KAogICAgIE9VVCBQSEFORExFICAgICBTdWJLZXkKICAgICApOwogCitfX2Ry
dl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIGV4dGVybiBOVFNUQVRVUwogUmVnaXN0cnlD
cmVhdGVTdWJLZXkoCiAgICAgSU4gIEhBTkRMRSAgICAgIEtleSwKQEAgLTEwMSwxMiArMTA5LDE0
IEBAIFJlZ2lzdHJ5Q3JlYXRlU3ViS2V5KAogICAgIE9VVCBQSEFORExFICAgICBTdWJLZXkKICAg
ICApOwogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIGV4dGVybiBOVFNUQVRV
UwogUmVnaXN0cnlEZWxldGVTdWJLZXkoCiAgICAgSU4gIEhBTkRMRSAgICAgIEtleSwKICAgICBJ
TiAgUENIQVIgICAgICAgTmFtZQogICAgICk7CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZF
X0xFVkVMKQogZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3RyeUVudW1lcmF0ZVN1YktleXMoCiAgICAg
SU4gIEhBTkRMRSAgICAgIEtleSwKQEAgLTExNCw2ICsxMjQsNyBAQCBSZWdpc3RyeUVudW1lcmF0
ZVN1YktleXMoCiAgICAgSU4gIFBWT0lEICAgICAgIENvbnRleHQKICAgICApOwogCitfX2Rydl9y
ZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIGV4dGVybiBOVFNUQVRVUwogUmVnaXN0cnlFbnVt
ZXJhdGVWYWx1ZXMoCiAgICAgSU4gIEhBTkRMRSAgICAgIEtleSwKQEAgLTEyMSwyNiArMTMyLDMw
IEBAIFJlZ2lzdHJ5RW51bWVyYXRlVmFsdWVzKAogICAgIElOICBQVk9JRCAgICAgICBDb250ZXh0
CiAgICAgKTsKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBleHRlcm4gTlRT
VEFUVVMKIFJlZ2lzdHJ5RGVsZXRlVmFsdWUoCiAgICAgSU4gIEhBTkRMRSAgICAgIEtleSwKICAg
ICBJTiAgUENIQVIgICAgICAgTmFtZQogICAgICk7CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNT
SVZFX0xFVkVMKQogZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3RyeVF1ZXJ5RHdvcmRWYWx1ZSgKICAg
ICBJTiAgSEFORExFICAgICAgICAgIEtleSwKICAgICBJTiAgUENIQVIgICAgICAgICAgIE5hbWUs
CiAgICAgT1VUIFBVTE9ORyAgICAgICAgICBWYWx1ZQogICAgICk7Ci0gICAgCisKK19fZHJ2X3Jl
cXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3RyeVVwZGF0
ZUR3b3JkVmFsdWUoCiAgICAgSU4gIEhBTkRMRSAgICAgICAgICBLZXksCiAgICAgSU4gIFBDSEFS
ICAgICAgICAgICBOYW1lLAogICAgIElOICBVTE9ORyAgICAgICAgICAgVmFsdWUKICAgICApOwot
ICAgIAorCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZFTCkKIGV4dGVybiBOVFNUQVRV
UwogUmVnaXN0cnlRdWVyeVN6VmFsdWUoCiAgICAgSU4gIEhBTkRMRSAgICAgICAgICBLZXksCkBA
IC0xNDksNiArMTY0LDcgQEAgUmVnaXN0cnlRdWVyeVN6VmFsdWUoCiAgICAgT1VUIFBBTlNJX1NU
UklORyAgICAqQXJyYXkKICAgICApOwogCitfX2Rydl9yZXF1aXJlc0lSUUwoUEFTU0lWRV9MRVZF
TCkKIGV4dGVybiBOVFNUQVRVUwogUmVnaXN0cnlRdWVyeUJpbmFyeVZhbHVlKAogICAgIElOICBI
QU5ETEUgICAgICAgICAgS2V5LApAQCAtMTU3LDYgKzE3Myw3IEBAIFJlZ2lzdHJ5UXVlcnlCaW5h
cnlWYWx1ZSgKICAgICBPVVQgUFVMT05HICAgICAgICAgIExlbmd0aAogICAgICk7CiAKK19fZHJ2
X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVMKQogZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3RyeVVw
ZGF0ZUJpbmFyeVZhbHVlKAogICAgIElOICBIQU5ETEUgICAgICAgICAgS2V5LApAQCAtMTY1LDEy
ICsxODIsMTQgQEAgUmVnaXN0cnlVcGRhdGVCaW5hcnlWYWx1ZSgKICAgICBJTiAgVUxPTkcgICAg
ICAgICAgIExlbmd0aAogICAgICk7CiAKK19fZHJ2X3JlcXVpcmVzSVJRTChQQVNTSVZFX0xFVkVM
KQogZXh0ZXJuIE5UU1RBVFVTCiBSZWdpc3RyeVF1ZXJ5S2V5TmFtZSgKICAgICBJTiAgSEFORExF
ICAgICAgICAgICAgICBLZXksCiAgICAgT1VUIFBBTlNJX1NUUklORyAgICAgICAgKkFycmF5CiAg
ICAgKTsKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBleHRlcm4gTlRTVEFU
VVMKIFJlZ2lzdHJ5UXVlcnlTeXN0ZW1TdGFydE9wdGlvbigKICAgICBJTiAgY29uc3QgQ0hBUiAg
ICAgICpQcmVmaXgsCkBAIC0xODcsNiArMjA2LDcgQEAgUmVnaXN0cnlGcmVlQmluYXJ5VmFsdWUo
CiAgICAgSU4gIFBWT0lEICAgICAgICAgICBCdWZmZXIKICAgICApOwogCitfX2Rydl9yZXF1aXJl
c0lSUUwoUEFTU0lWRV9MRVZFTCkKIGV4dGVybiBOVFNUQVRVUwogUmVnaXN0cnlVcGRhdGVTelZh
bHVlKAogICAgIElOICBIQU5ETEUgICAgICAgICAgS2V5LApAQCAtMTk1LDYgKzIxNSw3IEBAIFJl
Z2lzdHJ5VXBkYXRlU3pWYWx1ZSgKICAgICBJTiAgUEFOU0lfU1RSSU5HICAgIEFycmF5CiAgICAg
KTsKIAorX19kcnZfcmVxdWlyZXNJUlFMKFBBU1NJVkVfTEVWRUwpCiBleHRlcm4gVk9JRAogUmVn
aXN0cnlDbG9zZUtleSgKICAgICBJTiAgSEFORExFICBLZXkKLS0gCjIuNS4zCgoKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRldmVsIG1haWxp
bmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54
ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRldmVs

From win-pv-devel-bounces@lists.xenproject.org Thu Jun 29 09:44:13 2017
Return-path: <win-pv-devel-bounces@lists.xenproject.org>
Envelope-to: archives@lists.xenproject.org
Delivery-date: Thu, 29 Jun 2017 09:44:13 +0000
Received: from localhost ([127.0.0.1] helo=lists.xenproject.org)
	by lists.xenproject.org with esmtp (Exim 4.84_2)
	(envelope-from <win-pv-devel-bounces@lists.xenproject.org>)
	id 1dQVze-0001dR-9k; Thu, 29 Jun 2017 09:44:10 +0000
Received: from winpvdrvbuild.xenproject.org ([162.242.160.44])
 by lists.xenproject.org with esmtp (Exim 4.84_2)
 (envelope-from <paul.durrant@xenproject.org>) id 1dQVzc-0001cL-KJ
 for win-pv-devel@lists.xenproject.org; Thu, 29 Jun 2017 09:44:08 +0000
Date: Thu, 29 Jun 2017 09:43:46 +0000 (UTC)
From: paul.durrant@xenproject.org
To: win-pv-devel@lists.xenproject.org
Message-ID: <9895777.3.1498729432013.JavaMail.WINPVDRVBUILD$@winpvdrvbuild>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----=_Part_2_10054211.1498729426653"
X-Jenkins-Job: XENVBD-master
X-Jenkins-Result: SUCCESS
Subject: [win-pv-devel] XENVBD-master - Build #98 - Successful
X-BeenThere: win-pv-devel@lists.xenproject.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: Developer list for the Windows PV Drivers subproject
 <win-pv-devel.lists.xenproject.org>
List-Unsubscribe: <https://lists.xenproject.org/cgi-bin/mailman/options/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=unsubscribe>
List-Post: <mailto:win-pv-devel@lists.xenproject.org>
List-Help: <mailto:win-pv-devel-request@lists.xenproject.org?subject=help>
List-Subscribe: <https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel>, 
 <mailto:win-pv-devel-request@lists.xenproject.org?subject=subscribe>
Errors-To: win-pv-devel-bounces@lists.xenproject.org
Sender: "win-pv-devel" <win-pv-devel-bounces@lists.xenproject.org>

------=_Part_2_10054211.1498729426653
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

The build system has completed build #98.

Check console output at https://winpvdrvbuild.xenproject.org:8080/job/XENVBD-master/98/console to view the results.
------=_Part_2_10054211.1498729426653
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18Kd2luLXB2LWRl
dmVsIG1haWxpbmcgbGlzdAp3aW4tcHYtZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6
Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vd2luLXB2LWRl
dmVs

------=_Part_2_10054211.1498729426653--


