From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.107.2.67; helo=eur02-ve1-obe.outbound.protection.outlook.com; envelope-from=meenakshi.aggarwal@nxp.com; receiver=edk2-devel@lists.01.org Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20067.outbound.protection.outlook.com [40.107.2.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 91FB62035D337 for ; Mon, 8 Jan 2018 20:45:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=MBk5HEqxXsSOYvfWhbHOFMv/Qvbgir2zNPBfe4zyVx8=; b=l6CbOoyuquMpgzsQWhk298wdcpHK6RYIptDkwd2jV9VYz86VFz7kwm4s/CfFHysh3XCspQBPzl5Hjn4jzq6G84E3GSqioyzxhQy5e8+RfMZV5xWvHRJX0tunjoeAVmEv3Na5NuMsbRHP64RbL4m/QtBglTRSFQwERXeRen9KEoQ= Received: from DB5PR04MB0998.eurprd04.prod.outlook.com (10.161.199.12) by AM6PR0402MB3335.eurprd04.prod.outlook.com (52.133.18.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.386.5; Tue, 9 Jan 2018 04:50:11 +0000 Received: from DB5PR04MB0998.eurprd04.prod.outlook.com ([fe80::8554:8835:334d:27b7]) by DB5PR04MB0998.eurprd04.prod.outlook.com ([fe80::8554:8835:334d:27b7%13]) with mapi id 15.20.0386.008; Tue, 9 Jan 2018 04:50:10 +0000 From: Meenakshi Aggarwal To: Ard Biesheuvel CC: Leif Lindholm , "Kinney, Michael D" , "edk2-devel@lists.01.org" , Udit Kumar , Varun Sethi Thread-Topic: [PATCH edk2-platforms v2 1/2] SATA : Added SATA controller driver. Thread-Index: AQHTiGh7b1fwqYRp0k6yH4SpwNwKkKNqE2IAgADfdkA= Date: Tue, 9 Jan 2018 04:50:10 +0000 Message-ID: References: <1513945005-30002-1-git-send-email-meenakshi.aggarwal@nxp.com> <1515426912-13557-1-git-send-email-meenakshi.aggarwal@nxp.com> <1515426912-13557-2-git-send-email-meenakshi.aggarwal@nxp.com> In-Reply-To: Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=meenakshi.aggarwal@nxp.com; x-originating-ip: [192.88.169.1] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM6PR0402MB3335; 7:L/fFmynp4w1tUEasoF+y3+IADAFREKDJViA+mcbXK2QIwc7dYq1yt9Z1/r9ubdYaqZmMQkQHpIHfm2GkP8GozvYRQmb7Q7TcBD2coIKd8cVmX+VKQ6mT3We8etQfk48Pgg7P5Tp21gXZWUqdseppkt6YfxiUYdp/4kxYL6+plS5CNZql6LHj3xjWxk+vNvuzOujBDzDKn9yfsDQ5g8eBQGBksKQJT5lcZy4ICgBVESzpqkvX1Jprka32kkFENaIg x-ms-exchange-antispam-srfa-diagnostics: SSOS;SSOR; x-forefront-antispam-report: SFV:SKI; SCL:-1; SFV:NSPM; SFS:(10009020)(346002)(39380400002)(396003)(376002)(366004)(39860400002)(24454002)(189003)(13464003)(199004)(2950100002)(9686003)(6246003)(68736007)(6506007)(25786009)(93886005)(6916009)(16799955002)(53936002)(59450400001)(102836004)(3846002)(305945005)(74316002)(4326008)(6436002)(53546011)(53946003)(6116002)(229853002)(99286004)(5660300001)(33656002)(7736002)(316002)(105586002)(66066001)(97736004)(8936002)(966005)(5250100002)(6306002)(81166006)(8676002)(3660700001)(81156014)(2900100001)(3280700002)(54906003)(7696005)(575784001)(86362001)(478600001)(55016002)(76176011)(106356001)(2906002)(45080400002)(14454004)(579004)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR0402MB3335; H:DB5PR04MB0998.eurprd04.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 943807b0-1f5d-4ec9-2d25-08d5571c76bc x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(48565401081)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(5600026)(4604075)(3008032)(2017052603307)(7153060)(7193020); SRVR:AM6PR0402MB3335; x-ms-traffictypediagnostic: AM6PR0402MB3335: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(189930954265078)(185117386973197)(162533806227266)(45079756050767)(21532816269658)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3002001)(3231023)(944501075)(6055026)(6041268)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(20161123564045)(6072148)(201708071742011); SRVR:AM6PR0402MB3335; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:AM6PR0402MB3335; x-forefront-prvs: 0547116B72 received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: Xs7Hbk5pbwSOVH0QAqS+h717ZHvNr82QRPuNlsD+7f/aI0uXYY5MwThWvgLnPQzvE1Qc4D28Q27QivvkzsqM+g== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 943807b0-1f5d-4ec9-2d25-08d5571c76bc X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Jan 2018 04:50:10.3819 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR0402MB3335 Subject: Re: [PATCH edk2-platforms v2 1/2] SATA : Added SATA controller driver. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jan 2018 04:45:05 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQXJkIEJpZXNoZXV2ZWwg W21haWx0bzphcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnXQ0KPiBTZW50OiBNb25kYXksIEphbnVh cnkgMDgsIDIwMTggODozNSBQTQ0KPiBUbzogTWVlbmFrc2hpIEFnZ2Fyd2FsIDxtZWVuYWtzaGku YWdnYXJ3YWxAbnhwLmNvbT4NCj4gQ2M6IExlaWYgTGluZGhvbG0gPGxlaWYubGluZGhvbG1AbGlu YXJvLm9yZz47IEtpbm5leSwgTWljaGFlbCBEDQo+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBVZGl0IEt1bWFyDQo+IDx1ZGl0Lmt1bWFyQG54 cC5jb20+OyBWYXJ1biBTZXRoaSA8Vi5TZXRoaUBueHAuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BB VENIIGVkazItcGxhdGZvcm1zIHYyIDEvMl0gU0FUQSA6IEFkZGVkIFNBVEEgY29udHJvbGxlcg0K PiBkcml2ZXIuDQo+IA0KPiBIaSBNZWVuYWtzaGksDQo+IA0KPiBUaGlzIGlzIGxvb2tpbmcgbXVj aCBiZXR0ZXIgLSB0aGFua3MgZm9yIHJld3JpdGluZyBpdC4gSSBkbyBoYXZlIHNvbWUNCj4gY29t bWVudHMgYmVsb3cNCj4gDQo+IE9uIDggSmFudWFyeSAyMDE4IGF0IDE1OjU1LCBNZWVuYWtzaGkg QWdnYXJ3YWwNCj4gPG1lZW5ha3NoaS5hZ2dhcndhbEBueHAuY29tPiB3cm90ZToNCj4gPiBUaGlz IHBhdGNoIGFkZHMgc3VwcG9ydCBvZiBTQVRBIGNvbnRyb2xsZXIsIHdoaWNoDQo+ID4gSW5pdGlh bGl6ZSBTQVRBIGNvbnRyb2xsZXIsDQo+ID4gYXBwbHkgcGxhdGZvcm0gc3BlY2lmaWMgZXJyYXRh IGFuZA0KPiA+IFJlZ2lzdGVyIGl0c2VsZiBhcyBOb25EaXNjb3ZlcmFibGVNbWlvRGV2aWNlDQo+ ID4NCj4gPiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1l bnQgMS4xDQo+ID4gU2lnbmVkLW9mZi1ieTogTWVlbmFrc2hpIEFnZ2Fyd2FsIDxtZWVuYWtzaGku YWdnYXJ3YWxAbnhwLmNvbT4NCj4gPiAtLS0NCj4gPiAgUGxhdGZvcm0vTlhQL0RyaXZlcnMvU2F0 YUluaXREeGUvU2F0YUluaXQuYyAgICAgIHwgMjg1DQo+ICsrKysrKysrKysrKysrKysrKysrKysr DQo+ID4gIFBsYXRmb3JtL05YUC9Ecml2ZXJzL1NhdGFJbml0RHhlL1NhdGFJbml0LmggICAgICB8 ICAzNiArKysNCj4gPiAgUGxhdGZvcm0vTlhQL0RyaXZlcnMvU2F0YUluaXREeGUvU2F0YUluaXRE eGUuaW5mIHwgIDUyICsrKysrDQo+ID4gIFBsYXRmb3JtL05YUC9OeHBRb3JpcUxzLmRlYyAgICAg ICAgICAgICAgICAgICAgICB8ICAxNCArLQ0KPiA+ICBQbGF0Zm9ybS9OWFAvTnhwUW9yaXFMcy5k c2MgICAgICAgICAgICAgICAgICAgICAgfCAgMTMgKysNCj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCAz OTggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IFBsYXRmb3JtL05YUC9Ecml2ZXJzL1NhdGFJbml0RHhlL1NhdGFJbml0LmMNCj4gPiAgY3JlYXRl IG1vZGUgMTAwNjQ0IFBsYXRmb3JtL05YUC9Ecml2ZXJzL1NhdGFJbml0RHhlL1NhdGFJbml0LmgN Cj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFBsYXRmb3JtL05YUC9Ecml2ZXJzL1NhdGFJbml0RHhl L1NhdGFJbml0RHhlLmluZg0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL1BsYXRmb3JtL05YUC9Ecml2 ZXJzL1NhdGFJbml0RHhlL1NhdGFJbml0LmMNCj4gYi9QbGF0Zm9ybS9OWFAvRHJpdmVycy9TYXRh SW5pdER4ZS9TYXRhSW5pdC5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAw MDAwMDAwLi5iYWMzOTBiDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL1BsYXRmb3JtL05Y UC9Ecml2ZXJzL1NhdGFJbml0RHhlL1NhdGFJbml0LmMNCj4gPiBAQCAtMCwwICsxLDI4NSBAQA0K PiA+ICsvKiogQGZpbGUNCj4gPiArICBUaGlzIGRyaXZlciBtb2R1bGUgYWRkcyBTQVRBIGNvbnRy b2xsZXIgc3VwcG9ydC4NCj4gPiArDQo+ID4gKyAgQ29weXJpZ2h0IDIwMTcgTlhQDQo+ID4gKw0K PiA+ICsgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gPiAr ICBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29u ZGl0aW9ucyBvZiB0aGUNCj4gQlNEIExpY2Vuc2UNCj4gPiArICB3aGljaCBhY2NvbXBhbmllcyB0 aGlzIGRpc3RyaWJ1dGlvbi4gVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4g Zm91bmQNCj4gPiArDQo+IGh0dHBzOi8vZW1lYTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxv b2suY29tLz91cmw9aHR0cCUzQSUyRiUyRm9wZQ0KPiBuc291cmNlLm9yZyUyRmxpY2Vuc2VzJTJG YnNkLQ0KPiBsaWNlbnNlLnBocCZkYXRhPTAyJTdDMDElN0NtZWVuYWtzaGkuYWdnYXJ3YWwlNDBu eHAuY29tJTdDMWJmODg4DQo+IGRiYzZiMzRmODY0NmZlMDhkNTU2YTkzZDVhJTdDNjg2ZWExZDNi YzJiNGM2ZmE5MmNkOTljNWMzMDE2MzUlN0MwDQo+ICU3QzAlN0M2MzY1MTAyMDcyNTQ1NzA1MzYm c2RhdGE9aFUybzVpZ1p1eTVTRHQ1ZW1FVW1BcWhTbjFnVzkNCj4gSDQwT2d2bUg4Z01uOWslM0Qm cmVzZXJ2ZWQ9MA0KPiA+ICsNCj4gPiArICBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRF UiBUSEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gPiArICBXSVRIT1VU IFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQ UkVTUyBPUiBJTVBMSUVELg0KPiA+ICsNCj4gPiArICoqLw0KPiA+ICsNCj4gPiArI2luY2x1ZGUg PEluZHVzdHJ5U3RhbmRhcmQvUGNpLmg+DQo+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L0JlSW9MaWIu aD4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCj4gPiArI2luY2x1ZGUgPExp YnJhcnkvTm9uRGlzY292ZXJhYmxlRGV2aWNlUmVnaXN0cmF0aW9uTGliLmg+DQo+ID4gKyNpbmNs dWRlIDxMaWJyYXJ5L1VlZmlCb290U2VydmljZXNUYWJsZUxpYi5oPg0KPiA+ICsjaW5jbHVkZSA8 TGlicmFyeS9VZWZpTGliLmg+DQo+ID4gKyNpbmNsdWRlIDxQcm90b2NvbC9QY2lJby5oPg0KPiA+ ICsNCj4gPiArI2luY2x1ZGUgIlNhdGFJbml0LmgiDQo+ID4gKw0KPiA+ICtTVEFUSUMgVk9JRCAg ICAgICAgICAgICAgICAqbURyaXZlckV2ZW50UmVnaXN0cmF0aW9uOw0KPiA+ICsNCj4gPiArLyoq DQo+ID4gKyAgUmVhZCBBSENJIE9wZXJhdGlvbiByZWdpc3Rlci4NCj4gPiArDQo+ID4gKyAgQHBh cmFtICBQY2lJbyAgICAgICAgICAgIFRoZSBQQ0kgSU8gcHJvdG9jb2wgaW5zdGFuY2UuDQo+ID4g KyAgQHBhcmFtICBPZmZzZXQgICAgICAgICAgIFRoZSBvcGVyYXRpb24gcmVnaXN0ZXIgb2Zmc2V0 Lg0KPiA+ICsNCj4gPiArICBAcmV0dXJuICAgICAgICAgICAgICAgICAgVGhlIHJlZ2lzdGVyIGNv bnRlbnQgcmVhZC4NCj4gPiArKiovDQo+ID4gKw0KPiA+ICtVSU5UMzINCj4gPiArRUZJQVBJDQo+ ID4gK0FoY2lSZWFkUmVnICgNCj4gPiArICBJTiAgRUZJX1BDSV9JT19QUk9UT0NPTCAgKlBjaUlv LA0KPiA+ICsgIElOICBVSU5UMzIgICAgICAgICAgICAgICBPZmZzZXQNCj4gPiArICApDQo+ID4g K3sNCj4gPiArICBVSU5UMzIgICAgICAgICAgICAgICAgICAgRGF0YTsNCj4gPiArDQo+ID4gKyAg QVNTRVJUIChQY2lJbyAhPSBOVUxMKTsNCj4gPiArDQo+ID4gKyAgRGF0YSA9IDA7DQo+ID4gKw0K PiA+ICsgIFBjaUlvLT5NZW0uUmVhZCAoDQo+ID4gKyAgICAgICAgICAgICAgICAgIFBjaUlvLA0K PiA+ICsgICAgICAgICAgICAgICAgICBFZmlQY2lJb1dpZHRoVWludDMyLA0KPiA+ICsgICAgICAg ICAgICAgICAgICBBSENJX0JBUl9JTkRFWCwNCj4gPiArICAgICAgICAgICAgICAgICAgKFVJTlQ2 NCkgT2Zmc2V0LA0KPiA+ICsgICAgICAgICAgICAgICAgICAxLA0KPiA+ICsgICAgICAgICAgICAg ICAgICAmRGF0YQ0KPiA+ICsgICAgICAgICAgICAgICAgICApOw0KPiA+ICsNCj4gPiArICByZXR1 cm4gRGF0YTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAgV3JpdGUgQUhDSSBPcGVy YXRpb24gcmVnaXN0ZXIuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbSBQY2lJbyAgICAgICAgICAgICBU aGUgUENJIElPIHByb3RvY29sIGluc3RhbmNlLg0KPiA+ICsgIEBwYXJhbSBPZmZzZXQgICAgICAg ICAgICBUaGUgb3BlcmF0aW9uIHJlZ2lzdGVyIG9mZnNldC4NCj4gPiArICBAcGFyYW0gRGF0YSAg ICAgICAgICAgICAgVGhlIGRhdGEgdXNlZCB0byB3cml0ZSBkb3duLg0KPiA+ICsNCj4gPiArKiov DQo+ID4gK1ZPSUQNCj4gPiArRUZJQVBJDQo+ID4gK0FoY2lXcml0ZVJlZyAoDQo+ID4gKyAgSU4g RUZJX1BDSV9JT19QUk9UT0NPTCAgICpQY2lJbywNCj4gPiArICBJTiBVSU5UMzIgICAgICAgICAg ICAgICAgT2Zmc2V0LA0KPiA+ICsgIElOIFVJTlQzMiAgICAgICAgICAgICAgICBEYXRhDQo+ID4g KyAgKQ0KPiA+ICt7DQo+ID4gKyAgQVNTRVJUIChQY2lJbyAhPSBOVUxMKTsNCj4gPiArDQo+ID4g KyAgUGNpSW8tPk1lbS5Xcml0ZSAoDQo+ID4gKyAgICAgICAgICAgICAgICAgICBQY2lJbywNCj4g PiArICAgICAgICAgICAgICAgICAgIEVmaVBjaUlvV2lkdGhVaW50MzIsDQo+ID4gKyAgICAgICAg ICAgICAgICAgICBBSENJX0JBUl9JTkRFWCwNCj4gPiArICAgICAgICAgICAgICAgICAgIChVSU5U NjQpIE9mZnNldCwNCj4gPiArICAgICAgICAgICAgICAgICAgIDEsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAmRGF0YQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgKTsNCj4gPiArDQo+ID4gKyAg cmV0dXJuOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtTVEFUSUMNCj4gPiArVk9JRA0KPiA+ICtQY2lJ b1JlZ2lzdHJhdGlvbkV2ZW50ICgNCj4gPiArICBJTiAgRUZJX0VWRU5UICAgICAgICAgICAgRXZl bnQsDQo+ID4gKyAgSU4gIFZPSUQgICAgICAgICAgICAgICAgICpDb250ZXh0DQo+ID4gKyAgKQ0K PiA+ICt7DQo+ID4gKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgIFN0YXR1czsNCj4gPiArICBV SU5UTiAgICAgICAgICAgICAgICAgICAgSGFuZGxlQ291bnQ7DQo+ID4gKyAgVUlOVE4gICAgICAg ICAgICAgICAgICAgIEFkZHJlc3M7DQo+ID4gKyAgVUlOVDMyICAgICAgICAgICAgICAgICAgIENv dW50Ow0KPiA+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAgICBEYXRhOw0KPiA+ICsgIFVJTlQ4 ICAgICAgICAgICAgICAgICAgICBQY2lDbGFzczsNCj4gPiArICBVSU5UOCAgICAgICAgICAgICAg ICAgICAgUGNpU3ViQ2xhc3M7DQo+ID4gKyAgRUZJX1BDSV9JT19QUk9UT0NPTCAgICAgICpQY2lJ bzsNCj4gPiArICBFRklfSEFORExFICAgICAgICAgICAgICAgKkhhbmRsZUJ1ZjsNCj4gPiArDQo+ ID4gKyAgUGNpSW8gPSBOVUxMOw0KPiA+ICsNCj4gPiArICBTdGF0dXMgPSBnQlMtPkxvY2F0ZUhh bmRsZUJ1ZmZlciAoDQo+ID4gKyAgICAgICAgICAgICAgICAgIEJ5UHJvdG9jb2wsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICZnRWZpUGNpSW9Qcm90b2NvbEd1aWQsDQo+ID4gKyAgICAgICAgICAg ICAgICAgIE5VTEwsDQo+ID4gKyAgICAgICAgICAgICAgICAgICZIYW5kbGVDb3VudCwNCj4gPiAr ICAgICAgICAgICAgICAgICAgJkhhbmRsZUJ1Zik7DQo+ID4gKyAgaWYgKEVGSV9FUlJPUiAoU3Rh dHVzKSkgew0KPiA+ICsgICAgREVCVUcgKChERUJVR19FUlJPUiwgIlNhdGEgY29udHJvbGxlciBp cyBub3QgYWJsZSB0byBsb2NhdGUNCj4gZ0VmaVBjaUlvUHJvdG9jb2xHdWlkIDB4JXhcbiIsDQo+ ID4gKyAgICAgICAgICAgICAgICBTdGF0dXMpKTsNCj4gPiArICAgIHJldHVybjsNCj4gPiArICB9 DQo+ID4gKw0KPiA+ICsgIGZvciAoQ291bnQgPSAwOyBDb3VudCA8IEhhbmRsZUNvdW50OyBDb3Vu dCsrKSB7DQo+ID4gKyAgICBTdGF0dXMgPSBnQlMtPk9wZW5Qcm90b2NvbCAoDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgSGFuZGxlQnVmW0NvdW50XSwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAmZ0VmaVBjaUlvUHJvdG9jb2xHdWlkLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgIChWT0lE ICoqKSAmUGNpSW8sDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gPiArICAgICAg ICAgICAgICAgICAgICBOVUxMLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgIEVGSV9PUEVOX1BS T1RPQ09MX0dFVF9QUk9UT0NPTCk7DQo+ID4gKyAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7 DQo+ID4gKyAgICAgIGNvbnRpbnVlOw0KPiA+ICsgICAgfQ0KPiA+ICsNCj4gPiArICAgIC8vDQo+ ID4gKyAgICAvLyBOb3cgZnVydGhlciBjaGVjayB0aGUgUENJIGhlYWRlcjogQmFzZSBjbGFzcyAo b2Zmc2V0IDB4MEIpIGFuZA0KPiA+ICsgICAgLy8gU3ViIENsYXNzIChvZmZzZXQgMHgwQSkuIFRo aXMgY29udHJvbGxlciBzaG91bGQgYmUgYW4gSWRlIGNvbnRyb2xsZXINCj4gPiArICAgIC8vDQo+ ID4gKyAgICBTdGF0dXMgPSBQY2lJby0+UGNpLlJlYWQgKA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgIFBjaUlvLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIEVmaVBjaUlv V2lkdGhVaW50OCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfQ0xBU1NDT0RF X09GRlNFVCArIDIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgMSwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAmUGNpQ2xhc3MNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICApOw0KPiA+ICsgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ICsgICAg ICBjb250aW51ZTsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgICBTdGF0dXMgPSBQY2lJby0+ UGNpLlJlYWQgKA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFBjaUlvLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgIEVmaVBjaUlvV2lkdGhVaW50OCwNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICBQQ0lfQ0xBU1NDT0RFX09GRlNFVCArIDEsDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgMSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAm UGNpU3ViQ2xhc3MNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KPiA+ICsgICAg aWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ICsgICAgICBjb250aW51ZTsNCj4gPiArICAg IH0NCj4gPiArDQo+ID4gKyAgICAvLw0KPiA+ICsgICAgLy8gRXhhbWluZSBJZGUgUENJIENvbmZp Z3VyYXRpb24gdGFibGUgZmllbGRzDQo+ID4gKyAgICAvLw0KPiA+ICsgICAgaWYgKChQY2lDbGFz cyAhPSBQQ0lfQ0xBU1NfTUFTU19TVE9SQUdFKSB8fA0KPiA+ICsgICAgICAgIChQY2lTdWJDbGFz cyAhPSBQQ0lfQ0xBU1NfTUFTU19TVE9SQUdFX1NBVEFEUEEpKSB7DQo+ID4gKyAgICAgIGNvbnRp bnVlOw0KPiA+ICsgICAgfQ0KPiA+ICsNCj4gPiArICAgIFN0YXR1cyA9IFBjaUlvLT5QY2kuUmVh ZCAoDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgUGNpSW8sDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgRWZpUGNpSW9XaWR0aFVpbnQzMiwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICBQQ0lfQUhDSV9CQVNFX0FERFJFU1MsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgMSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAmQWRkcmVzcw0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQo+ID4gKyAgICBpZiAoRUZJX0VSUk9S IChTdGF0dXMpKSB7DQo+ID4gKyAgICAgIGNvbnRpbnVlOw0KPiA+ICsgICAgfSBlbHNlIGlmIChB ZGRyZXNzID09IChVSU5UTilDb250ZXh0KSB7DQo+ID4gKyAgICAgIGdCUy0+Q2xvc2VFdmVudCAo RXZlbnQpOw0KPiA+ICsNCj4gPiArICAgICAgLy8NCj4gPiArICAgICAgLy8gY29uZmlndXJpbmcg UGh5c2ljYWwgQ29udHJvbCBMYXllciBwYXJhbWV0ZXJzIGZvciBQb3J0IDANCj4gPiArICAgICAg Ly8NCj4gPiArICAgICAgQWhjaVdyaXRlUmVnIChQY2lJbywgU0FUQV9QUENGRywgUE9SVF9QSFlT SUNBTCk7DQo+ID4gKw0KPiA+ICsgICAgICAvLw0KPiA+ICsgICAgICAvLyBUaGlzIHJlZ2lzdGVy IGNvbnRyb2xzIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZQ0KPiA+ICsgICAgICAvLyBUcmFuc3Bv cnQgTGF5ZXIgZm9yICBQb3J0IDANCj4gPiArICAgICAgLy8gRXJyYXRhIERlc2NyaXB0aW9uIDog VGhlIGRlZmF1bHQgUnggd2F0ZXJtYXJrIHZhbHVlIG1heSBiZQ0KPiBpbnN1ZmZpY2llbnQgZm9y IHNvbWUNCj4gPiArICAgICAgLy8gaGFyZCBkcml2ZXMgYW5kIHJlc3VsdCBpbiBhIGZhbHNlIENS QyBvciBpbnRlcm5hbCBlcnJvcnMuDQo+ID4gKyAgICAgIC8vIFdvcmthcm91bmQ6IENoYW5nZSBQ VENbUlhXTV0gZmllbGQgYXQgb2Zmc2V0IDB4QzggdG8gMHgyOS4gRG8NCj4gbm90IGNoYW5nZQ0K PiA+ICsgICAgICAvLyB0aGUgb3RoZXIgcmVzZXJ2ZWQgZmllbGRzIG9mIHRoZSByZWdpc3Rlci4N Cj4gPiArICAgICAgLy8NCj4gPiArDQo+ID4gKyAgICAgIERhdGEgPSBBaGNpUmVhZFJlZyAoUGNp SW8sIFNBVEFfUFRDKTsNCj4gPiArICAgICAgaWYgKFBjZEdldEJvb2wgKFBjZFNhdGFFcnJhdHVt QTAwOTE4NSkpIHsNCj4gPiArICAgICAgICBEYXRhIHw9IFBPUlRfUlhXTTsNCj4gPiArICAgICAg fSBlbHNlIHsNCj4gPiArICAgICAgICBEYXRhIHw9IFBPUlRfVFJBTlNQT1JUOw0KPiA+ICsgICAg ICB9DQo+ID4gKyAgICAgIEFoY2lXcml0ZVJlZyAoUGNpSW8sIFNBVEFfUFRDLCBEYXRhKTsNCj4g PiArDQo+ID4gKyAgICAgIGJyZWFrOw0KPiA+ICsgICAgfQ0KPiA+ICsgIH0NCj4gPiArDQo+ID4g KyAgZ0JTLT5GcmVlUG9vbCAoSGFuZGxlQnVmKTsNCj4gPiArDQo+ID4gKyAgcmV0dXJuOw0KPiA+ ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBUaGUgRW50cnkgUG9pbnQgb2YgbW9kdWxlLiBJ dCBmb2xsb3dzIHRoZSBzdGFuZGFyZCBVRUZJIGRyaXZlciBtb2RlbC4NCj4gPiArDQo+ID4gKyAg QHBhcmFtW2luXSBJbWFnZUhhbmRsZSAgIFRoZSBmaXJtd2FyZSBhbGxvY2F0ZWQgaGFuZGxlIGZv ciB0aGUgRUZJDQo+IGltYWdlLg0KPiA+ICsgIEBwYXJhbVtpbl0gU3lzdGVtVGFibGUgICBBIHBv aW50ZXIgdG8gdGhlIEVGSSBTeXN0ZW0gVGFibGUuDQo+ID4gKw0KPiA+ICsgIEByZXR2YWwgRUZJ X1NVQ0NFU1MgICAgICBUaGUgZW50cnkgcG9pbnQgaXMgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5Lg0K PiA+ICsgIEByZXR2YWwgb3RoZXIgICAgICAgICAgICBTb21lIGVycm9yIG9jY3VycyB3aGVuIGV4 ZWN1dGluZyB0aGlzIGVudHJ5IHBvaW50Lg0KPiA+ICsNCj4gPiArKiovDQo+ID4gK0VGSV9TVEFU VVMNCj4gPiArRUZJQVBJDQo+ID4gK0luaXRpYWxpemVTYXRhQ29udHJvbGxlciAoDQo+ID4gKyAg SU4gRUZJX0hBTkRMRSAgICAgICAgICAgIEltYWdlSGFuZGxlLA0KPiA+ICsgIElOIEVGSV9TWVNU RU1fVEFCTEUgICAgICAqU3lzdGVtVGFibGUNCj4gPiArICApDQo+ID4gK3sNCj4gPiArICBFRklf U1RBVFVTICAgICAgICAgICAgICAgU3RhdHVzOw0KPiA+ICsgIFVJTlQzMiAgICAgICAgICAgICAg ICAgICBOdW1TYXRhQ29udHJvbGxlcjsNCj4gPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAg Q29udHJvbGxlckFkZHI7DQo+ID4gKw0KPiA+ICsgIFN0YXR1cyA9IEVGSV9TVUNDRVNTOw0KPiA+ ICsgIE51bVNhdGFDb250cm9sbGVyID0gUGNkR2V0MzIgKFBjZE51bVNhdGFDb250cm9sbGVyKTsN Cj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAvLyBJbXBhY3QgOiBUaGUgU0FUQSBjb250cm9sbGVy IGRvZXMgbm90IGRldGVjdCBzb21lIGhhcmQgZHJpdmVzIHJlbGlhYmx5DQo+IHdpdGgNCj4gPiAr ICAvLyB0aGUgZGVmYXVsdCBTZXJEZXMgcmVnaXN0ZXIgc2V0dGluZy4NCj4gPiArICAvLyBXb3Jr YXJvdW5kIDogd3JpdGUgdmFsdWUgMHg4MDEwNGUyMCB0byAweDFlYjEzMDAgKHNlcmRlcyAyKQ0K PiA+ICsgIC8vDQo+ID4gKyAgaWYgKFBjZEdldEJvb2wgKFBjZFNhdGFFcnJhdHVtQTAxMDU1NCkp IHsNCj4gPiArICAgIEJlTW1pb1dyaXRlMzIgKChVSU5UTilTRVJERVMyX1NBVEFfRVJSQVRBLCAw eDgwMTA0ZTIwKTsNCj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIC8vDQo+ID4gKyAgLy8gSW1wYWN0 IDogRGV2aWNlIG1heSBzZWUgZmFsc2UgQ1JDIGVycm9ycyBjYXVzaW5nIHVucmVsaWFibGUgU0FU QQ0KPiBvcGVyYXRpb24uDQo+ID4gKyAgLy8gV29ya2Fyb3VuZCA6IHdyaXRlIDB4ODAwMDAwMDAg dG8gdGhlIGFkZHJlc3MgMHgyMDE0MDUyMCAoZGNzcikuDQo+ID4gKyAgLy8NCj4gPiArICBpZiAo UGNkR2V0Qm9vbCAoUGNkU2F0YUVycmF0dW1BMDEwNjM1KSkgew0KPiA+ICsgICAgQmVNbWlvV3Jp dGUzMiAoKFVJTlROKURDU1JfU0FUQV9FUlJBVEEsIDB4ODAwMDAwMDApOw0KPiA+ICsgIH0NCj4g PiArDQo+ID4gKyAgd2hpbGUgKE51bVNhdGFDb250cm9sbGVyKSB7DQo+ID4gKyAgICBOdW1TYXRh Q29udHJvbGxlci0tOw0KPiA+ICsgICAgQ29udHJvbGxlckFkZHIgPSBQY2RHZXQzMiAoUGNkU2F0 YUJhc2VBZGRyKSArDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgIChOdW1TYXRhQ29udHJvbGxl ciAqIFBjZEdldDMyIChQY2RTYXRhU2l6ZSkpOw0KPiA+ICsNCj4gPiArICAgIFN0YXR1cyA9IFJl Z2lzdGVyTm9uRGlzY292ZXJhYmxlTW1pb0RldmljZSAoDQo+ID4gKyAgICAgICAgICAgICAgIE5v bkRpc2NvdmVyYWJsZURldmljZVR5cGVBaGNpLA0KPiA+ICsgICAgICAgICAgICAgICBOb25EaXNj b3ZlcmFibGVEZXZpY2VEbWFUeXBlTm9uQ29oZXJlbnQsDQo+ID4gKyAgICAgICAgICAgICAgIE5V TEwsDQo+ID4gKyAgICAgICAgICAgICAgIE5VTEwsDQo+ID4gKyAgICAgICAgICAgICAgIDEsDQo+ ID4gKyAgICAgICAgICAgICAgIENvbnRyb2xsZXJBZGRyLCBQY2RHZXQzMiAoUGNkU2F0YVNpemUp DQo+ID4gKyAgICAgICAgICAgICApOw0KPiA+ICsNCj4gPiArICAgIGlmIChFRklfRVJST1IgKFN0 YXR1cykpIHsNCj4gPiArICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIkZhaWxlZCB0byByZWdp c3RlciBTQVRBIGRldmljZSAoMHgleCkgd2l0aA0KPiBlcnJvciAweCV4IFxuIiwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlckFkZHIsIFN0YXR1cykpOw0KPiANCj4g UGxlYXNlIGRvbid0IHVzZSBpZi9lbHNlIGZvciB0aGUgZXhwZWN0ZWQgcGF0aDogaW5zdGVhZCwg cmV0dXJuIGhlcmUNCj4gb3IgZ290byB0aGUgZXJyb3IvdW53aW5kIGNvZGUgYXQgdGhlIGVuZCBv ZiB0aGUgZnVuY3Rpb24NCj4gDQpJbiBjYXNlIG9mIG1vcmUgdGhhbiBvbmUgY29udHJvbGxlciwg d2UgY2Fubm90IHJldHVybi9nb3RvIGZyb20gaGVyZSBiZWNhdXNlIHRoZXJlIGFyZSBjaGFuY2Vz IHRoYXQgb3RoZXIgY29udHJvbGxlciBtaWdodCBnZXQgcmVnaXN0ZXIgc3VjY2Vzc2Z1bGx5Lg0K U28gdXNlZCBpZi1lbHNlLCBwbGVhc2Ugc3VnZ2VzdCB0aGUgY29ycmVjdCB3YXkuDQoNCj4gPiAr ICAgIH0gZWxzZSB7DQo+ID4gKyAgICAgIC8vDQo+ID4gKyAgICAgIC8vIFJlZ2lzdGVyIGEgcHJv dG9jb2wgcmVnaXN0cmF0aW9uIG5vdGlmaWNhdGlvbiBjYWxsYmFjayBvbiB0aGUgZHJpdmVyDQo+ ID4gKyAgICAgIC8vIGJpbmRpbmcgcHJvdG9jb2wgc28gd2UgY2FuIGF0dGVtcHQgdG8gY29ubmVj dCB0byBpdCBhcyBzb29uIGFzIGl0DQo+IGFwcGVhcnMuDQo+ID4gKyAgICAgIC8vDQo+ID4gKyAg ICAgIEVmaUNyZWF0ZVByb3RvY29sTm90aWZ5RXZlbnQgKA0KPiA+ICsgICAgICAgICZnRWZpUGNp SW9Qcm90b2NvbEd1aWQsDQo+ID4gKyAgICAgICAgVFBMX0NBTExCQUNLLA0KPiA+ICsgICAgICAg IFBjaUlvUmVnaXN0cmF0aW9uRXZlbnQsDQo+ID4gKyAgICAgICAgKFZPSUQgKilDb250cm9sbGVy QWRkciwNCj4gPiArICAgICAgICAmbURyaXZlckV2ZW50UmVnaXN0cmF0aW9uKTsNCj4gDQo+IFdo YXQgaXMgdGhlIHBvaW50IG9mIHRoaXM/IEFoY2lSZWFkUmVnKCkvQWhjaVdyaXRlUmVnKCkgY2Fu IGFjY2Vzcw0KPiBDb250cm9sbGVyQWRkciBkaXJlY3RseSwgc28gdGhlcmUgaXMgbm8gcmVhc29u IHRvIGdvIHRocm91Z2ggdGhlIFBDSQ0KPiBJL08gcHJvdG9jb2wuDQo+IA0KT0ssIGkgd2lsbCBj aGVjayB0aGlzLg0KPiA+ICsgICAgfQ0KPiA+ICsgIH0NCj4gPiArDQo+ID4gKyAgcmV0dXJuIFN0 YXR1czsNCj4gPiArfQ0KPiA+IGRpZmYgLS1naXQgYS9QbGF0Zm9ybS9OWFAvRHJpdmVycy9TYXRh SW5pdER4ZS9TYXRhSW5pdC5oDQo+IGIvUGxhdGZvcm0vTlhQL0RyaXZlcnMvU2F0YUluaXREeGUv U2F0YUluaXQuaA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMC4u N2ZlNjI3Mw0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9QbGF0Zm9ybS9OWFAvRHJpdmVy cy9TYXRhSW5pdER4ZS9TYXRhSW5pdC5oDQo+ID4gQEAgLTAsMCArMSwzNiBAQA0KPiA+ICsvKiog QGZpbGUNCj4gPiArICBIZWFkZXIgZmlsZSBmb3IgU2F0YSBDb250cm9sbGVyIGluaXRpYWxpemF0 aW9uIGRyaXZlci4NCj4gPiArDQo+ID4gKyAgQ29weXJpZ2h0IDIwMTcgTlhQDQo+ID4gKw0KPiA+ ICsgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCj4gPiArICBh cmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0 aW9ucyBvZiB0aGUNCj4gQlNEIExpY2Vuc2UNCj4gPiArICB3aGljaCBhY2NvbXBhbmllcyB0aGlz IGRpc3RyaWJ1dGlvbi4gVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gZm91 bmQNCj4gPiArDQo+IGh0dHBzOi8vZW1lYTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2su Y29tLz91cmw9aHR0cCUzQSUyRiUyRm9wZQ0KPiBuc291cmNlLm9yZyUyRmxpY2Vuc2VzJTJGYnNk LQ0KPiBsaWNlbnNlLnBocCZkYXRhPTAyJTdDMDElN0NtZWVuYWtzaGkuYWdnYXJ3YWwlNDBueHAu Y29tJTdDMWJmODg4DQo+IGRiYzZiMzRmODY0NmZlMDhkNTU2YTkzZDVhJTdDNjg2ZWExZDNiYzJi NGM2ZmE5MmNkOTljNWMzMDE2MzUlN0MwDQo+ICU3QzAlN0M2MzY1MTAyMDcyNTQ1NzA1MzYmc2Rh dGE9aFUybzVpZ1p1eTVTRHQ1ZW1FVW1BcWhTbjFnVzkNCj4gSDQwT2d2bUg4Z01uOWslM0QmcmVz ZXJ2ZWQ9MA0KPiA+ICsNCj4gPiArICBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBU SEUgQlNEIExJQ0VOU0UgT04gQU4gIkFTIElTIg0KPiBCQVNJUywNCj4gPiArICBXSVRIT1VUIFdB UlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVT UyBPUiBJTVBMSUVELg0KPiA+ICsNCj4gPiArICoqLw0KPiA+ICsNCj4gPiArI2lmbmRlZiBfU0FU QV9JTklUX0hfDQo+ID4gKyNkZWZpbmUgX1NBVEFfSU5JVF9IXw0KPiA+ICsNCj4gPiArDQo+ID4g KyNkZWZpbmUgQUhDSV9CQVJfSU5ERVggICAgICAgICAweDA1DQo+ID4gKy8vDQo+ID4gKy8vIE9m ZnNldCBmb3IgQUhDSSBiYXNlIGFkZHJlc3MgaW4gUENJIEhlYWRlcg0KPiA+ICsvLw0KPiA+ICsj ZGVmaW5lIFBDSV9BSENJX0JBU0VfQUREUkVTUyAgMHgyNA0KPiA+ICsNCj4gPiArI2RlZmluZSBT QVRBX1BQQ0ZHICAgICAgICAgICAgIDB4QTgNCj4gPiArI2RlZmluZSBTQVRBX1BUQyAgICAgICAg ICAgICAgIDB4QzgNCj4gPiArDQo+ID4gKyNkZWZpbmUgUE9SVF9QSFlTSUNBTCAgICAgICAgICAw eEEwMDNGRkZFDQo+ID4gKyNkZWZpbmUgUE9SVF9UUkFOU1BPUlQgICAgICAgICAweDA4MDAwMDI1 DQo+ID4gKyNkZWZpbmUgUE9SVF9SWFdNICAgICAgICAgICAgICAweDA4MDAwMDI5DQo+ID4gKw0K PiA+ICsjZGVmaW5lIERDU1JfU0FUQV9FUlJBVEEgICAgICAgMHgyMDE0MDUyMA0KPiA+ICsjZGVm aW5lIFNFUkRFUzJfU0FUQV9FUlJBVEEgICAgMHgwMWViMTMwMA0KPiA+ICsNCj4gPiArI2VuZGlm DQo+ID4gZGlmZiAtLWdpdCBhL1BsYXRmb3JtL05YUC9Ecml2ZXJzL1NhdGFJbml0RHhlL1NhdGFJ bml0RHhlLmluZg0KPiBiL1BsYXRmb3JtL05YUC9Ecml2ZXJzL1NhdGFJbml0RHhlL1NhdGFJbml0 RHhlLmluZg0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMC4uODI1 MzVmNA0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9QbGF0Zm9ybS9OWFAvRHJpdmVycy9T YXRhSW5pdER4ZS9TYXRhSW5pdER4ZS5pbmYNCj4gPiBAQCAtMCwwICsxLDUyIEBADQo+ID4gKyMj IEBmaWxlDQo+ID4gKyMgIENvbXBvbmVudCBkZXNjcmlwdGlvbiBmaWxlIGZvciB0aGUgU2F0YSBD b250cm9sbGVyIGluaXRpYWxpemF0aW9uIGRyaXZlcg0KPiA+ICsjDQo+ID4gKyMgIENvcHlyaWdo dCAyMDE3IE5YUA0KPiA+ICsjDQo+ID4gKyMgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFu eWluZyBtYXRlcmlhbHMNCj4gPiArIyAgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1 bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlDQo+IEJTRCBMaWNlbnNlDQo+ID4g KyMgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiBUaGUgZnVsbCB0ZXh0IG9m IHRoZSBsaWNlbnNlIG1heSBiZQ0KPiBmb3VuZA0KPiA+ICsjDQo+IGh0dHBzOi8vZW1lYTAxLnNh ZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cCUzQSUyRiUyRm9wZQ0KPiBu c291cmNlLm9yZyUyRmxpY2Vuc2VzJTJGYnNkLQ0KPiBsaWNlbnNlLnBocCZkYXRhPTAyJTdDMDEl N0NtZWVuYWtzaGkuYWdnYXJ3YWwlNDBueHAuY29tJTdDMWJmODg4DQo+IGRiYzZiMzRmODY0NmZl MDhkNTU2YTkzZDVhJTdDNjg2ZWExZDNiYzJiNGM2ZmE5MmNkOTljNWMzMDE2MzUlN0MwDQo+ICU3 QzAlN0M2MzY1MTAyMDcyNTQ1NzA1MzYmc2RhdGE9aFUybzVpZ1p1eTVTRHQ1ZW1FVW1BcWhTbjFn VzkNCj4gSDQwT2d2bUg4Z01uOWslM0QmcmVzZXJ2ZWQ9MA0KPiA+ICsjDQo+ID4gKyMgIFRIRSBQ Uk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAiQVMgSVMi DQo+IEJBU0lTLA0KPiA+ICsjICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05T IE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVELg0KPiA+ICsjDQo+ID4g KyMjDQo+ID4gKw0KPiA+ICtbRGVmaW5lc10NCj4gPiArICBJTkZfVkVSU0lPTiAgICAgICAgICAg ICAgICAgICAgPSAweDAwMDEwMDBBDQo+ID4gKyAgQkFTRV9OQU1FICAgICAgICAgICAgICAgICAg ICAgID0gU2F0YUluaXQNCj4gPiArICBGSUxFX0dVSUQgICAgICAgICAgICAgICAgICAgICAgPSAw MjE3MjJEOC01MjJCLTQwNzktODUyQS1GRTQ0QzJDMTNGNDkNCj4gPiArICBNT0RVTEVfVFlQRSAg ICAgICAgICAgICAgICAgICAgPSBEWEVfRFJJVkVSDQo+ID4gKyAgVkVSU0lPTl9TVFJJTkcgICAg ICAgICAgICAgICAgID0gMS4wDQo+ID4gKyAgRU5UUllfUE9JTlQgICAgICAgICAgICAgICAgICAg ID0gSW5pdGlhbGl6ZVNhdGFDb250cm9sbGVyDQo+ID4gKw0KPiA+ICtbU291cmNlc10NCj4gPiAr ICBTYXRhSW5pdC5jDQo+ID4gKw0KPiA+ICtbUGFja2FnZXNdDQo+ID4gKyAgTWRlUGtnL01kZVBr Zy5kZWMNCj4gPiArICBNZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0KPiA+ICsgIFBsYXRm b3JtL05YUC9OeHBRb3JpcUxzLmRlYw0KPiA+ICsNCj4gPiArW0xpYnJhcnlDbGFzc2VzXQ0KPiA+ ICsgIEJlSW9MaWINCj4gPiArICBEZWJ1Z0xpYg0KPiA+ICsgIE5vbkRpc2NvdmVyYWJsZURldmlj ZVJlZ2lzdHJhdGlvbkxpYg0KPiA+ICsgIFVlZmlCb290U2VydmljZXNUYWJsZUxpYg0KPiA+ICsg IFVlZmlEcml2ZXJFbnRyeVBvaW50DQo+ID4gKyAgVWVmaUxpYg0KPiA+ICsNCj4gPiArW0ZpeGVk UGNkXQ0KPiA+ICsgIGdOeHBRb3JpcUxzVG9rZW5TcGFjZUd1aWQuUGNkTnVtU2F0YUNvbnRyb2xs ZXINCj4gPiArICBnTnhwUW9yaXFMc1Rva2VuU3BhY2VHdWlkLlBjZFNhdGFCYXNlQWRkcg0KPiA+ ICsgIGdOeHBRb3JpcUxzVG9rZW5TcGFjZUd1aWQuUGNkU2F0YVNpemUNCj4gPiArICBnTnhwUW9y aXFMc1Rva2VuU3BhY2VHdWlkLlBjZFNhdGFFcnJhdHVtQTAwOTE4NQ0KPiA+ICsgIGdOeHBRb3Jp cUxzVG9rZW5TcGFjZUd1aWQuUGNkU2F0YUVycmF0dW1BMDEwNTU0DQo+ID4gKyAgZ054cFFvcmlx THNUb2tlblNwYWNlR3VpZC5QY2RTYXRhRXJyYXR1bUEwMTA2MzUNCj4gPiArDQo+ID4gK1tQcm90 b2NvbHNdDQo+ID4gKyAgZ0VmaVBjaUlvUHJvdG9jb2xHdWlkDQo+ID4gKw0KPiA+ICtbRGVwZXhd DQo+ID4gKyAgVFJVRQ0KPiA+IGRpZmYgLS1naXQgYS9QbGF0Zm9ybS9OWFAvTnhwUW9yaXFMcy5k ZWMgYi9QbGF0Zm9ybS9OWFAvTnhwUW9yaXFMcy5kZWMNCj4gPiBpbmRleCBiZDQyNzNmLi42NWQ2 NTllIDEwMDY0NA0KPiA+IC0tLSBhL1BsYXRmb3JtL05YUC9OeHBRb3JpcUxzLmRlYw0KPiA+ICsr KyBiL1BsYXRmb3JtL05YUC9OeHBRb3JpcUxzLmRlYw0KPiA+IEBAIC01Miw4ICs1Miw4IEBADQo+ ID4gICAgZ054cFFvcmlxTHNUb2tlblNwYWNlR3VpZC5QY2RJMmMxQmFzZUFkZHJ8MHxVSU5UNjR8 MHgwMDAwMDEwRQ0KPiA+ICAgIGdOeHBRb3JpcUxzVG9rZW5TcGFjZUd1aWQuUGNkSTJjMkJhc2VB ZGRyfDB8VUlOVDY0fDB4MDAwMDAxMEYNCj4gPiAgICBnTnhwUW9yaXFMc1Rva2VuU3BhY2VHdWlk LlBjZEkyYzNCYXNlQWRkcnwwfFVJTlQ2NHwweDAwMDAwMTEwDQo+ID4gLQ0KPiBnTnhwUW9yaXFM c1Rva2VuU3BhY2VHdWlkLlBjZFNhdGFDb250cm9sbGVyMUJhc2VBZGRyZXNzfDB4MHxVSU5UMzJ8 DQo+IDB4MDAwMDAxMTENCj4gPiAtDQo+IGdOeHBRb3JpcUxzVG9rZW5TcGFjZUd1aWQuUGNkU2F0 YUNvbnRyb2xsZXIyQmFzZUFkZHJlc3N8MHgwfFVJTlQzMnwNCj4gMHgwMDAwMDExMg0KPiA+ICsN Cj4gZ054cFFvcmlxTHNUb2tlblNwYWNlR3VpZC5QY2RTYXRhQmFzZUFkZHJ8MHgwfFVJTlQzMnww eDAwMDAwMTExDQo+ID4gKyAgZ054cFFvcmlxTHNUb2tlblNwYWNlR3VpZC5QY2RTYXRhU2l6ZXww eDB8VUlOVDMyfDB4MDAwMDAxMTINCj4gPg0KPiBnTnhwUW9yaXFMc1Rva2VuU3BhY2VHdWlkLlBj ZFFtYW5Td3BCYXNlQWRkcnwweDA1MDAwMDAwMDB8VUlOVDYNCj4gNHwweDAwMDAwMTEzDQo+ID4N Cj4gZ054cFFvcmlxTHNUb2tlblNwYWNlR3VpZC5QY2RRbWFuU3dwU2l6ZXwweDAwODAwMDAwMDB8 VUlOVDY0fDB4MA0KPiAwMDAwMTE0DQo+ID4NCj4gZ054cFFvcmlxTHNUb2tlblNwYWNlR3VpZC5Q Y2RCbWFuU3dwQmFzZUFkZHJ8MHgwNTA4MDAwMDAwfFVJTlQ2NA0KPiB8MHgwMDAwMDExNQ0KPiA+ IEBAIC04Myw2ICs4Myw4IEBADQo+ID4NCj4gZ054cFFvcmlxTHNUb2tlblNwYWNlR3VpZC5QY2RD Y3NyQmFzZUFkZHJ8MHgwMTAwMDAwMHxVSU5UNjR8MHgwMDAwDQo+IDAxMkQNCj4gPg0KPiBnTnhw UW9yaXFMc1Rva2VuU3BhY2VHdWlkLlBjZENjc3JTaXplfDB4MEYwMDAwMDB8VUlOVDY0fDB4MDAw MDAxMkUNCj4gPg0KPiBnTnhwUW9yaXFMc1Rva2VuU3BhY2VHdWlkLlBjZERyYW1NZW1TaXplfDB4 MHxVSU5UNjR8MHgwMDAwMDEyRg0KPiA+ICsNCj4gZ054cFFvcmlxTHNUb2tlblNwYWNlR3VpZC5Q Y2REY3NyQmFzZUFkZHJ8MHgwfFVJTlQ2NHwweDAwMDAwMTMwDQo+ID4gKyAgZ054cFFvcmlxTHNU b2tlblNwYWNlR3VpZC5QY2REY3NyU2l6ZXwweDB8VUlOVDY0fDB4MDAwMDAxMzENCj4gPg0KPiA+ ICAgICMNCj4gPiAgICAjIERTUEkgUGNkcw0KPiA+IEBAIC0xNTYsNiArMTU4LDkgQEANCj4gPg0K PiBnTnhwUW9yaXFMc1Rva2VuU3BhY2VHdWlkLlBjZEVycmF0dW1BMDA4NTE0fEZBTFNFfEJPT0xF QU58MHgwMDAwDQo+IDAyNzUNCj4gPg0KPiBnTnhwUW9yaXFMc1Rva2VuU3BhY2VHdWlkLlBjZEVy cmF0dW1BMDA4MzM2fEZBTFNFfEJPT0xFQU58MHgwMDAwDQo+IDAyNzYNCj4gPg0KPiBnTnhwUW9y aXFMc1Rva2VuU3BhY2VHdWlkLlBjZFNhdGFFcnJhdHVtQTAwOTE4NXxGQUxTRXxCT09MRUFOfDB4 DQo+IDAwMDAwMjc3DQo+ID4gKw0KPiBnTnhwUW9yaXFMc1Rva2VuU3BhY2VHdWlkLlBjZFNhdGFF cnJhdHVtQTAxMDU1NHxGQUxTRXxCT09MRUFOfDB4DQo+IDAwMDAwMjc4DQo+ID4gKw0KPiBnTnhw UW9yaXFMc1Rva2VuU3BhY2VHdWlkLlBjZFNhdGFFcnJhdHVtQTAxMDYzNXxGQUxTRXxCT09MRUFO fDB4DQo+IDAwMDAwMjc5DQo+ID4gKw0KPiBnTnhwUW9yaXFMc1Rva2VuU3BhY2VHdWlkLlBjZFNh dGFFcnJhdHVtQTAwODQwMnxGQUxTRXxCT09MRUFOfDB4DQo+IDAwMDAwMjdBDQo+ID4NCj4gPiAg ICAjDQo+ID4gICAgIyBUZXN0IFBDRHMNCj4gPiBAQCAtMjQ5LDMgKzI1NCw4IEBADQo+ID4gICAg Iw0KPiA+ICAgIGdOeHBRb3JpcUxzVG9rZW5TcGFjZUd1aWQuUGNkU3lzRWVwcm9tSTJjQnVzfDB8 VUlOVDMyfDB4MDAwMDMzMA0KPiA+DQo+IGdOeHBRb3JpcUxzVG9rZW5TcGFjZUd1aWQuUGNkU3lz RWVwcm9tSTJjQWRkcmVzc3wwfFVJTlQzMnwweDAwMDAzDQo+IDMxDQo+ID4gKw0KPiA+ICsgICMN Cj4gPiArICAjIFNBVEEgUGNkcw0KPiA+ICsgICMNCj4gPiArDQo+IGdOeHBRb3JpcUxzVG9rZW5T cGFjZUd1aWQuUGNkTnVtU2F0YUNvbnRyb2xsZXJ8MHgwfFVJTlQzMnwweDAwMDAwMw0KPiA0MA0K PiA+IGRpZmYgLS1naXQgYS9QbGF0Zm9ybS9OWFAvTnhwUW9yaXFMcy5kc2MgYi9QbGF0Zm9ybS9O WFAvTnhwUW9yaXFMcy5kc2MNCj4gPiBpbmRleCAxMGVmZjA2Li5jM2MwZWIxIDEwMDY0NA0KPiA+ IC0tLSBhL1BsYXRmb3JtL05YUC9OeHBRb3JpcUxzLmRzYw0KPiA+ICsrKyBiL1BsYXRmb3JtL05Y UC9OeHBRb3JpcUxzLmRzYw0KPiA+IEBAIC05OSw2ICs5OSw4IEBADQo+ID4gICAgVmFyQ2hlY2tM aWJ8TWRlTW9kdWxlUGtnL0xpYnJhcnkvVmFyQ2hlY2tMaWIvVmFyQ2hlY2tMaWIuaW5mDQo+ID4g ICAgTlVMTHxNZGVQa2cvTGlicmFyeS9CYXNlU3RhY2tDaGVja0xpYi9CYXNlU3RhY2tDaGVja0xp Yi5pbmYNCj4gPg0KPiBDYXBzdWxlTGlifE1kZU1vZHVsZVBrZy9MaWJyYXJ5L0R4ZUNhcHN1bGVM aWJOdWxsL0R4ZUNhcHN1bGVMaWJOdWxsLmkNCj4gbmYNCj4gPiArICBVZWZpU2NzaUxpYnxNZGVQ a2cvTGlicmFyeS9VZWZpU2NzaUxpYi9VZWZpU2NzaUxpYi5pbmYNCj4gPiArDQo+IE5vbkRpc2Nv dmVyYWJsZURldmljZVJlZ2lzdHJhdGlvbkxpYnxNZGVNb2R1bGVQa2cvTGlicmFyeS9Ob25EaXNj b3ZlDQo+IHJhYmxlRGV2aWNlUmVnaXN0cmF0aW9uTGliL05vbkRpc2NvdmVyYWJsZURldmljZVJl Z2lzdHJhdGlvbkxpYi5pbmYNCj4gPg0KPiA+ICBbTGlicmFyeUNsYXNzZXMuY29tbW9uLlNFQ10N Cj4gPiAgICBQY2RMaWJ8TWRlUGtnL0xpYnJhcnkvQmFzZVBjZExpYk51bGwvQmFzZVBjZExpYk51 bGwuaW5mDQo+ID4gQEAgLTE0NCw2ICsxNDYsNyBAQA0KPiA+DQo+IFNlY3VyaXR5TWFuYWdlbWVu dExpYnxNZGVNb2R1bGVQa2cvTGlicmFyeS9EeGVTZWN1cml0eU1hbmFnZW1lbnRMDQo+IGliL0R4 ZVNlY3VyaXR5TWFuYWdlbWVudExpYi5pbmYNCj4gPg0KPiBQZXJmb3JtYW5jZUxpYnxNZGVNb2R1 bGVQa2cvTGlicmFyeS9EeGVQZXJmb3JtYW5jZUxpYi9EeGVQZXJmb3JtYQ0KPiBuY2VMaWIuaW5m DQo+ID4gICAgTWVtb3J5SW5pdFBlaUxpYnxBcm1QbGF0Zm9ybVBrZy9NZW1vcnlJbml0UGVpL01l bW9yeUluaXRQZWlMaWIuaW5mDQo+ID4gKw0KPiBOb25EaXNjb3ZlcmFibGVEZXZpY2VSZWdpc3Ry YXRpb25MaWJ8TWRlTW9kdWxlUGtnL0xpYnJhcnkvTm9uRGlzY292ZQ0KPiByYWJsZURldmljZVJl Z2lzdHJhdGlvbkxpYi9Ob25EaXNjb3ZlcmFibGVEZXZpY2VSZWdpc3RyYXRpb25MaWIuaW5mDQo+ ID4NCj4gDQo+IFdoeSBkbyB5b3UgbmVlZCB0byBhZGQgdGhpcyB0d2ljZT8NCk15IGZhdWx0LCB3 aWxsIHVwZGF0ZS4NCj4gDQo+ID4gIFtMaWJyYXJ5Q2xhc3Nlcy5jb21tb24uVUVGSV9BUFBMSUNB VElPTl0NCj4gPiAgICBQY2RMaWJ8TWRlUGtnL0xpYnJhcnkvRHhlUGNkTGliL0R4ZVBjZExpYi5p bmYNCj4gPiBAQCAtMzM0LDYgKzMzNywxNiBAQA0KPiA+ICAgIH0NCj4gPg0KPiA+ICAgICMNCj4g PiArICAjIEFIQ0kgU3VwcG9ydA0KPiA+ICsgICMNCj4gPiArICBNZGVNb2R1bGVQa2cvQnVzL0F0 YS9BdGFBdGFwaVBhc3NUaHJ1L0F0YUF0YXBpUGFzc1RocnUuaW5mDQo+ID4gKyAgTWRlTW9kdWxl UGtnL0J1cy9BdGEvQXRhQnVzRHhlL0F0YUJ1c0R4ZS5pbmYNCj4gPiArICBNZGVNb2R1bGVQa2cv QnVzL1Njc2kvU2NzaUJ1c0R4ZS9TY3NpQnVzRHhlLmluZg0KPiA+ICsgIE1kZU1vZHVsZVBrZy9C dXMvU2NzaS9TY3NpRGlza0R4ZS9TY3NpRGlza0R4ZS5pbmYNCj4gPiArICBNZGVNb2R1bGVQa2cv QnVzL1BjaS9TYXRhQ29udHJvbGxlckR4ZS9TYXRhQ29udHJvbGxlckR4ZS5pbmYNCj4gPiArDQo+ IE1kZU1vZHVsZVBrZy9CdXMvUGNpL05vbkRpc2NvdmVyYWJsZVBjaURldmljZUR4ZS9Ob25EaXNj b3ZlcmFibGVQY2kNCj4gRGV2aWNlRHhlLmluZg0KPiA+ICsNCj4gPiArICAjDQo+ID4gICAgIyBB cmNoaXRlY3R1cmFsIFByb3RvY29scw0KPiA+ICAgICMNCj4gPiAgICBBcm1Qa2cvRHJpdmVycy9D cHVEeGUvQ3B1RHhlLmluZg0KPiA+IC0tDQo+ID4gMS45LjENCj4gPg0K