From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from eu-smtp-delivery-143.mimecast.com (eu-smtp-delivery-143.mimecast.com [146.101.78.143]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 2E6601A1E1B for ; Mon, 8 Aug 2016 03:41:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=B50L9Ws8tS3WQZu2OuQ8cW17xxreegLeGTi2HXaw2CA=; b=clf245jNDibYqBxuwSXPTL0bvvni0lEJujh7vdaUOieNOGRbsS/+I1Bj46JVAcjBpnKitCYV2XwX0vbXF/YjNZBRi/1yLNwh1SaK0+tz9HC7lK7zHQXPMsEjpKG2tkA0p5dXNWoVTs/Mv4gWfw+39qd9uCYnIM11tIU9mWKmdsg= Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01lp0247.outbound.protection.outlook.com [213.199.154.247]) (Using TLS) by eu-smtp-1.mimecast.com with ESMTP id uk-mta-67-KSqu5XxaMXi3FcOzPvnD5g-1; Mon, 08 Aug 2016 11:41:01 +0100 Received: from AM5PR0801MB1955.eurprd08.prod.outlook.com (10.168.157.151) by AM5PR0801MB1762.eurprd08.prod.outlook.com (10.169.247.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.549.15; Mon, 8 Aug 2016 10:40:58 +0000 Received: from AM5PR0801MB1955.eurprd08.prod.outlook.com ([10.168.157.151]) by AM5PR0801MB1955.eurprd08.prod.outlook.com ([10.168.157.151]) with mapi id 15.01.0549.025; Mon, 8 Aug 2016 10:40:58 +0000 From: Alexei Fedorov To: Ard Biesheuvel CC: Evan Lloyd , "Cohen, Eugene" , "edk2-devel@lists.01.org" , Heyi Guo , Leif Lindholm Thread-Topic: [edk2] [PATCH] ArmPkg: Fix double GIC EIOR write per interrupt Thread-Index: AQHR7zq3UpCuqC9RX0qeB/X+2RhBt6A7mYSAgANFQnCAAAMTgIAAAHUQ Date: Mon, 8 Aug 2016 10:40:58 +0000 Message-ID: References: <20160805165911.14744-1-evan.lloyd@arm.com> In-Reply-To: Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [217.140.96.140] x-ms-office365-filtering-correlation-id: 0ec4f416-38bb-4a8a-b4b6-08d3bf787c28 x-microsoft-exchange-diagnostics: 1; AM5PR0801MB1762; 20:yrpkUYf4nTj8Fb4UT4bPHViaxDdeLlTmVnEIoUdyfOSJsZzcLojOW7pq6WDP/BPfAOmEWN8T5Opai1N2+AW6MimFlJ3APx3R4njd2ZmJ0eSJxl/HgBExljdXaPlX8l3ekLrCoKS96zJTOexTvo/m/KqMFxG6ZxwbOPx0LnBqA6Q= x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM5PR0801MB1762; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917)(166708455590820)(162533806227266)(17755550239193); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026); SRVR:AM5PR0801MB1762; BCL:0; PCL:0; RULEID:; SRVR:AM5PR0801MB1762; x-forefront-prvs: 00286C0CA6 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(7916002)(40434004)(189002)(199003)(13464003)(24454002)(74316002)(93886004)(101416001)(76576001)(7846002)(5002640100001)(81166006)(81156014)(8676002)(15975445007)(575784001)(77096005)(105586002)(305945005)(5890100001)(3660700001)(3280700002)(122556002)(2900100001)(33656002)(2950100001)(7736002)(7696003)(8666005)(87936001)(86362001)(8936002)(2906002)(66066001)(106356001)(106116001)(19580405001)(10400500002)(68736007)(92566002)(11100500001)(189998001)(4326007)(9686002)(50986999)(110136002)(97736004)(586003)(76176999)(54356999)(6116002)(3846002)(19580395003)(102836003)(7059030)(217873001)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR0801MB1762; H:AM5PR0801MB1955.eurprd08.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Aug 2016 10:40:58.8264 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB1762 X-MC-Unique: KSqu5XxaMXi3FcOzPvnD5g-1 Subject: Re: [PATCH] ArmPkg: Fix double GIC EIOR write per interrupt X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Aug 2016 10:41:05 -0000 Content-Language: en-US Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 VGhlIGludGVycnVwdCBpcyBjbGVhcmVkIGluIFRpbWVySW50ZXJydXB0SGFuZGxlcigpIChBcm1Q a2dcRHJpdmVyc1xUaW1lckR4ZVxUaW1lckR4ZS5jKSAgd2hpY2ggaXMgSEFSRFdBUkVfSU5URVJS VVBUX0hBTkRMRVIgcGFyYW1ldGVyIHBhc3NlZCB0byBnSW50ZXJydXB0LT5SZWdpc3RlckludGVy cnVwdFNvdXJjZSgpLg0KU3B1cmlvdXMgaW50ZXJydXB0cyB3aGljaCBkb24ndCBoYXZlIHJlZ2lz dGVyZWQgaW50ZXJydXB0IGhhbmRsZXJzIGFyZSBjbGVhcmVkIGluIEdpY1YoMnwzKUlycUludGVy cnVwdEhhbmRsZXIoKS4NCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogQXJk IEJpZXNoZXV2ZWwgW21haWx0bzphcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnXQ0KU2VudDogMDgg QXVndXN0IDIwMTYgMTE6MzINClRvOiBBbGV4ZWkgRmVkb3Jvdg0KQ2M6IEV2YW4gTGxveWQ7IENv aGVuLCBFdWdlbmU7IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBIZXlpIEd1bzsgTGVpZiBMaW5k aG9sbQ0KU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0hdIEFybVBrZzogRml4IGRvdWJsZSBHSUMg RUlPUiB3cml0ZSBwZXIgaW50ZXJydXB0DQoNCk9uIDggQXVndXN0IDIwMTYgYXQgMTI6MjUsIEFs ZXhlaSBGZWRvcm92IDxBbGV4ZWkuRmVkb3JvdkBhcm0uY29tPiB3cm90ZToNCj4NCj4+IGl0IGRv ZXMgY2hhbmdlIHRoZSBjb250cmFjdCB3ZSBoYXZlIHdpdGggcmVnaXN0ZXJlZCBpbnRlcnJ1cHQN Cj4+IGhhbmRsZXJzDQo+DQo+IExvb2tzIGxpa2UgaXQgZG9lcyBub3Q6DQo+IEZyb20gZWRrMlxF bWJlZGRlZFBrZ1xJbmNsdWRlXFByb3RvY29sXEhhcmR3YXJlSW50ZXJydXB0Lmg6DQo+DQo+ICIg QWJzdHJhY3Rpb24gZm9yIGhhcmR3YXJlIGJhc2VkIGludGVycnVwdCByb3V0aW5lDQo+DQo+ICAg Li4uVGhlIGRyaXZlciBpbXBsZW1lbnRpbmcNCj4gICB0aGlzIHByb3RvY29sIGlzIHJlc3BvbnNp YmxlIGZvciBjbGVhcmluZyB0aGUgcGVuZGluZyBpbnRlcnJ1cHQgaW4gdGhlDQo+ICAgaW50ZXJy dXB0IHJvdXRpbmcgaGFyZHdhcmUuIFRoZSBIQVJEV0FSRV9JTlRFUlJVUFRfSEFORExFUiBpcyBy ZXNwb25zaWJsZQ0KPiAgIGZvciBjbGVhcmluZyBpbnRlcnJ1cHQgc291cmNlcyBmcm9tIGluZGl2 aWR1YWwgZGV2aWNlcy4iDQo+DQoNClRoYW5rcyBmb3IgZGlnZ2luZyB0aGF0IHVwIQ0KDQpTbyBh ZnRlciB0aGlzIGNoYW5nZSwgdGhlIGRyaXZlciBpbXBsZW1lbnRpbmcgdGhlIGhhcmR3YXJlIGlu dGVycnVwdCBwcm90b2NvbCBubyBsb25nZXIgY2xlYXJzIHRoZSBwZW5kaW5nIGludGVycnVwdCBp biB0aGUgaW50ZXJydXB0IHJvdXRpbmcgaGFyZHdhcmUuIFRoaXMgbWVhbnMgdGhhdCB3ZSBhcmUg bm90IG9ubHkgY2hhbmdpbmcgdGhlIGV4aXN0aW5nIGNvbnRyYWN0LCB3ZSBhcmUgYWxzbyB2aW9s YXRpbmcgdGhlIHNwZWMuDQoNCg0KPg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBG cm9tOiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9yZ10g T24gQmVoYWxmIE9mDQo+IEFyZCBCaWVzaGV1dmVsDQo+IFNlbnQ6IDA2IEF1Z3VzdCAyMDE2IDA5 OjI1DQo+IFRvOiBFdmFuIExsb3lkOyBDb2hlbiwgRXVnZW5lDQo+IENjOiBlZGsyLWRldmVsQGxp c3RzLjAxLm9yZzsgSGV5aSBHdW87IExlaWYgTGluZGhvbG0NCj4gU3ViamVjdDogUmU6IFtlZGsy XSBbUEFUQ0hdIEFybVBrZzogRml4IGRvdWJsZSBHSUMgRUlPUiB3cml0ZSBwZXINCj4gaW50ZXJy dXB0DQo+DQo+ICgrIEV1Z2VuZSkNCj4NCj4gT24gNSBBdWd1c3QgMjAxNiBhdCAxODo1OSwgIDxl dmFuLmxsb3lkQGFybS5jb20+IHdyb3RlOg0KPj4gRnJvbTogQWxleGVpIDxBbGV4ZWkuRmVkb3Jv dkBhcm0uY29tPg0KPj4NCj4+IFRoaXMgY29tbWl0IGZpeGVzIGEgYnVnIGluIHRoZSBHSUMgdjIg YW5kIHYzIGRyaXZlcnMgd2hlcmUgdGhlDQo+PiBHSUNDX0VPSVIgKEVuZCBPZiBJbnRlcnJ1cHQg UmVnaXN0ZXIpIGlzIHdyaXR0ZW4gdHdpY2UgZm9yIGEgc2luZ2xlIGludGVycnVwdC4NCj4+IEdp Y1YoMnwzKUlycUludGVycnVwdEhhbmRsZXIoKSBjYWxscyB0aGUgSW50ZXJydXB0IEhhbmRsZXIg YW5kIHRoZW4NCj4+IEdpY1YoMnwzKUVuZE9mSW50ZXJydXB0KCkgb24gZXhpdDoNCj4+DQo+PiAg SW50ZXJydXB0SGFuZGxlciA9IGdSZWdpc3RlcmVkSW50ZXJydXB0SGFuZGxlcnNbR2ljSW50ZXJy dXB0XTsNCj4+ICBpZiAoSW50ZXJydXB0SGFuZGxlciAhPSBOVUxMKSB7DQo+PiAgICAvLyBDYWxs IHRoZSByZWdpc3RlcmVkIGludGVycnVwdCBoYW5kbGVyLg0KPj4gICAgSW50ZXJydXB0SGFuZGxl ciAoR2ljSW50ZXJydXB0LCBTeXN0ZW1Db250ZXh0KTsgIH0gZWxzZSB7DQo+PiAgICBERUJVRyAo KEVGSV9EX0VSUk9SLCAiU3B1cmlvdXMgR0lDIGludGVycnVwdDogMHgleFxuIiwNCj4+IEdpY0lu dGVycnVwdCkpOyAgfQ0KPj4NCj4+ICBHaWNWMkVuZE9mSW50ZXJydXB0ICgmZ0hhcmR3YXJlSW50 ZXJydXB0VjJQcm90b2NvbCwgR2ljSW50ZXJydXB0KTsNCj4+DQo+PiAsIGFsdGhvdWdoIGdJbnRl cnJ1cHQtPkVuZE9mSW50ZXJydXB0KCkgaGFzIGFscmVhZHkgYmVlbiBjYWxsZWQgYnkNCj4+IElu dGVycnVwdEhhbmRsZXIoKS4NCj4+DQo+PiBUaGUgZml4IG1vdmVzIHRoZSBFbmRPZkludGVycnVw dCgpIGNhbGwgaW5zaWRlIHRoZSBlbHNlIGNhc2UgZm9yDQo+PiB1bnJlZ2lzdGVyZWQvc3B1cmlv dXMgaW50ZXJydXB0cy4gIFRoaXMgcmVtb3ZlcyBhIHBvdGVudGlhbCByYWNlDQo+PiBjb25kaXRp b24gdGhhdCBtaWdodCBoYXZlIGxvc3QgaW50ZXJydXB0cy4NCj4+DQo+DQo+IEkgdW5kZXJzdGFu ZCB0aGF0IHRoaXMgc29sdmVzIHRoZSBwcm9ibGVtLCBidXQgaXQgZG9lcyBjaGFuZ2UgdGhlIGNv bnRyYWN0IHdlIGhhdmUgd2l0aCByZWdpc3RlcmVkIGludGVycnVwdCBoYW5kbGVycywgYW5kIHdl IGRvbid0IGtub3cgaG93IHRoaXMgbWF5IGJlIHVzZWQgb3V0IG9mIHRyZWUuIEkga25vdyBVRUZJ IG9ubHkgc3VwcG9ydHMgcG9sbGluZyBmb3IgZHJpdmVycywgYnV0IGFyZSB0aGVyZSBhbnkgb3Ro ZXIgY2FzZXMgKGRlYnVnPykgd2hlcmUgd2UgbWF5IGJyZWFrIG90aGVyIHBlb3BsZSdzIGNvZGUg YnkgZG9pbmcgdGhpcz8NCj4NCj4NCj4+IENvbnRyaWJ1dGVkLXVuZGVyOiBUaWFub0NvcmUgQ29u dHJpYnV0aW9uIEFncmVlbWVudCAxLjANCj4+IFNpZ25lZC1vZmYtYnk6IEFsZXhlaSBGZWRvcm92 IDxhbGV4ZWkuZmVkb3JvdkBhcm0uY29tPg0KPj4gU2lnbmVkLW9mZi1ieTogRXZhbiBMbG95ZCA8 ZXZhbi5sbG95ZEBhcm0uY29tPg0KPj4gLS0tDQo+Pg0KPj4gQ29kZSBpcyBhdmFpbGFibGUgYXQ6 DQo+PiBodHRwczovL2dpdGh1Yi5jb20vRXZhbkxsb3lkL3RpYW5vY29yZS90cmVlL0VPSVJfdjEN Cj4+DQo+PiAgQXJtUGtnL0RyaXZlcnMvQXJtR2ljL0dpY1YyL0FybUdpY1YyRHhlLmMgfCA1ICsr LS0tDQo+PiBBcm1Qa2cvRHJpdmVycy9Bcm1HaWMvR2ljVjMvQXJtR2ljVjNEeGUuYyB8IDUgKyst LS0NCj4+ICAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkN Cj4+DQo+PiBkaWZmIC0tZ2l0IGEvQXJtUGtnL0RyaXZlcnMvQXJtR2ljL0dpY1YyL0FybUdpY1Yy RHhlLmMNCj4+IGIvQXJtUGtnL0RyaXZlcnMvQXJtR2ljL0dpY1YyL0FybUdpY1YyRHhlLmMNCj4+ IGluZGV4DQo+PiAwMzZlYjVjZDZiZjY4NDVkZDJiMDNiNjJjOTMzYzFkZWRhZWY3MjUxLi4zNGQ0 YmUzODY3NjQ3ZTBmZGFkNzM1NmM5NDkNCj4+IGENCj4+IGY4Y2QzZWRlNzE2NCAxMDA2NDQNCj4+ IC0tLSBhL0FybVBrZy9Ecml2ZXJzL0FybUdpYy9HaWNWMi9Bcm1HaWNWMkR4ZS5jDQo+PiArKysg Yi9Bcm1Qa2cvRHJpdmVycy9Bcm1HaWMvR2ljVjIvQXJtR2ljVjJEeGUuYw0KPj4gQEAgLTIsNyAr Miw3IEBADQo+Pg0KPj4gIENvcHlyaWdodCAoYykgMjAwOSwgSGV3bGV0dC1QYWNrYXJkIENvbXBh bnkuIEFsbCByaWdodHMNCj4+IHJlc2VydmVkLjxCUj4gUG9ydGlvbnMgY29weXJpZ2h0IChjKSAy MDEwLCBBcHBsZSBJbmMuIEFsbCByaWdodHMNCj4+IHJlc2VydmVkLjxCUj4gLVBvcnRpb25zIGNv cHlyaWdodCAoYykgMjAxMS0yMDE1LCBBUk0gTHRkLiBBbGwgcmlnaHRzDQo+PiByZXNlcnZlZC48 QlI+DQo+PiArUG9ydGlvbnMgY29weXJpZ2h0IChjKSAyMDExLTIwMTYsIEFSTSBMdGQuIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPj4NCj4+ICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBh bnlpbmcgbWF0ZXJpYWxzICBhcmUgbGljZW5zZWQgYW5kIG1hZGUNCj4+IGF2YWlsYWJsZSB1bmRl ciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlIEBAIC0xNzgsOQ0K Pj4gKzE3OCw4IEBAIEdpY1YySXJxSW50ZXJydXB0SGFuZGxlciAoDQo+PiAgICAgIEludGVycnVw dEhhbmRsZXIgKEdpY0ludGVycnVwdCwgU3lzdGVtQ29udGV4dCk7DQo+PiAgICB9IGVsc2Ugew0K Pj4gICAgICBERUJVRyAoKEVGSV9EX0VSUk9SLCAiU3B1cmlvdXMgR0lDIGludGVycnVwdDogMHgl eFxuIiwNCj4+IEdpY0ludGVycnVwdCkpOw0KPj4gKyAgICBHaWNWMkVuZE9mSW50ZXJydXB0ICgm Z0hhcmR3YXJlSW50ZXJydXB0VjJQcm90b2NvbCwNCj4+ICsgR2ljSW50ZXJydXB0KTsNCj4+ICAg IH0NCj4+IC0NCj4+IC0gIEdpY1YyRW5kT2ZJbnRlcnJ1cHQgKCZnSGFyZHdhcmVJbnRlcnJ1cHRW MlByb3RvY29sLCBHaWNJbnRlcnJ1cHQpOw0KPj4gfQ0KPj4NCj4+ICAvLw0KPj4gZGlmZiAtLWdp dCBhL0FybVBrZy9Ecml2ZXJzL0FybUdpYy9HaWNWMy9Bcm1HaWNWM0R4ZS5jDQo+PiBiL0FybVBr Zy9Ecml2ZXJzL0FybUdpYy9HaWNWMy9Bcm1HaWNWM0R4ZS5jDQo+PiBpbmRleA0KPj4gMTA2YzY2 OWZjYjg3NzdkZmFhZDYwOWMwY2U5ZjViNTcyNzI3YTNmZi4uOTgzOTM2ZjM3MzhhNzRiYjVkNWUw OGUwMTI5DQo+PiA3DQo+PiAzZGYyNDA5NThhOGIgMTAwNjQ0DQo+PiAtLS0gYS9Bcm1Qa2cvRHJp dmVycy9Bcm1HaWMvR2ljVjMvQXJtR2ljVjNEeGUuYw0KPj4gKysrIGIvQXJtUGtnL0RyaXZlcnMv QXJtR2ljL0dpY1YzL0FybUdpY1YzRHhlLmMNCj4+IEBAIC0xLDYgKzEsNiBAQA0KPj4gIC8qKiBA ZmlsZQ0KPj4gICoNCj4+IC0qICBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxNSwgQVJNIExpbWl0ZWQu IEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+PiArKiAgQ29weXJpZ2h0IChjKSAyMDExLTIwMTYsIEFS TSBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPj4gICoNCj4+ICAqICBUaGlzIHByb2dy YW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+PiAgKiAgYXJlIGxpY2Vuc2VkIGFu ZCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YNCj4+IHRo ZSBCU0QgTGljZW5zZSBAQCAtMTY5LDkgKzE2OSw4IEBAIEdpY1YzSXJxSW50ZXJydXB0SGFuZGxl ciAoDQo+PiAgICAgIEludGVycnVwdEhhbmRsZXIgKEdpY0ludGVycnVwdCwgU3lzdGVtQ29udGV4 dCk7DQo+PiAgICB9IGVsc2Ugew0KPj4gICAgICBERUJVRyAoKEVGSV9EX0VSUk9SLCAiU3B1cmlv dXMgR0lDIGludGVycnVwdDogMHgleFxuIiwNCj4+IEdpY0ludGVycnVwdCkpOw0KPj4gKyAgICBH aWNWM0VuZE9mSW50ZXJydXB0ICgmZ0hhcmR3YXJlSW50ZXJydXB0VjNQcm90b2NvbCwNCj4+ICsg R2ljSW50ZXJydXB0KTsNCj4+ICAgIH0NCj4+IC0NCj4+IC0gIEdpY1YzRW5kT2ZJbnRlcnJ1cHQg KCZnSGFyZHdhcmVJbnRlcnJ1cHRWM1Byb3RvY29sLCBHaWNJbnRlcnJ1cHQpOw0KPj4gfQ0KPj4N Cj4+ICAvLw0KPj4gLS0NCj4+IEd1aWQoIkNFMTY1NjY5LTNFRjMtNDkzRi1CODVELTYxOTBFRTVC OTc1OSIpDQo+Pg0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXw0KPiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9y Zw0KPiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCj4N Cj4gSU1QT1JUQU5UIE5PVElDRTogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZW1haWwgYW5kIGFueSBh dHRhY2htZW50cyBhcmUgY29uZmlkZW50aWFsIGFuZCBtYXkgYWxzbyBiZSBwcml2aWxlZ2VkLiBJ ZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50LCBwbGVhc2Ugbm90aWZ5IHRoZSBz ZW5kZXIgaW1tZWRpYXRlbHkgYW5kIGRvIG5vdCBkaXNjbG9zZSB0aGUgY29udGVudHMgdG8gYW55 IG90aGVyIHBlcnNvbiwgdXNlIGl0IGZvciBhbnkgcHVycG9zZSwgb3Igc3RvcmUgb3IgY29weSB0 aGUgaW5mb3JtYXRpb24gaW4gYW55IG1lZGl1bS4gVGhhbmsgeW91Lg0KPg0KDQpJTVBPUlRBTlQg Tk9USUNFOiBUaGUgY29udGVudHMgb2YgdGhpcyBlbWFpbCBhbmQgYW55IGF0dGFjaG1lbnRzIGFy ZSBjb25maWRlbnRpYWwgYW5kIG1heSBhbHNvIGJlIHByaXZpbGVnZWQuIElmIHlvdSBhcmUgbm90 IHRoZSBpbnRlbmRlZCByZWNpcGllbnQsIHBsZWFzZSBub3RpZnkgdGhlIHNlbmRlciBpbW1lZGlh dGVseSBhbmQgZG8gbm90IGRpc2Nsb3NlIHRoZSBjb250ZW50cyB0byBhbnkgb3RoZXIgcGVyc29u LCB1c2UgaXQgZm9yIGFueSBwdXJwb3NlLCBvciBzdG9yZSBvciBjb3B5IHRoZSBpbmZvcm1hdGlv biBpbiBhbnkgbWVkaXVtLiBUaGFuayB5b3UuDQo=