From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=104.47.2.42; helo=eur01-db5-obe.outbound.protection.outlook.com; envelope-from=meenakshi.aggarwal@nxp.com; receiver=edk2-devel@lists.01.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0042.outbound.protection.outlook.com [104.47.2.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 4F4922035BB37 for ; Mon, 13 Nov 2017 20:08:14 -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=Z7LK/8pL/JZlJjljGNBz12/Fi8orKcYgCpsjB90NoAE=; b=pM++ksHoUhJPWJrpug9Nq8UrXDSCnSei1YArwCiEENt0udushMLVEOS8X+CNOwuEu3w2Ec4+jwyGV8e8nsmosA/XHGthaYSNPAUNGftFG5Fuvabe/xbgYpDnP6XbgUM+o10owORk3rcfm+gQy/rcJzap9/ZqnyHf1/Gl6kFSFuk= Received: from DB5PR04MB0998.eurprd04.prod.outlook.com (10.161.199.12) by AM5PR04MB2995.eurprd04.prod.outlook.com (10.173.254.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.218.12; Tue, 14 Nov 2017 04:12:19 +0000 Received: from DB5PR04MB0998.eurprd04.prod.outlook.com ([fe80::7964:3b7:763b:63ba]) by DB5PR04MB0998.eurprd04.prod.outlook.com ([fe80::7964:3b7:763b:63ba%13]) with mapi id 15.20.0197.017; Tue, 14 Nov 2017 04:12:18 +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 05/10] Platform/NXP : Add support for DUART library Thread-Index: AQHTV6YKII9GdUfspUWKb9+bddRcBqMSRqMAgAD7afA= Date: Tue, 14 Nov 2017 04:12:18 +0000 Message-ID: References: <1510065736-9394-1-git-send-email-meenakshi.aggarwal@nxp.com> <1510065736-9394-6-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; AM5PR04MB2995; 6:nuQ/zaZomVaBk3ta14WewZo1nUSR6p/aXjx9cQGmqVQp277j4X1apZU2iq9hwp1mdlheODecgz/LehApWaPO1oNAq3zCk7EJInCg9bgBGRmUpusNHV6cFiPHqNk/fIocSNhb7ymQm6HALCKG7Hch5vjTxsZVqXYFhWqRqPd4tGlbgN29AizpBBV22BmhAC6D+psOQopEcOec95gFr4P44b1iiXJRMcO6nMsfgsIe/sRzyL8fO6n0A9EzrAGLsG56NJpD8M6cpTNqLc3jHzCVMOvob7g9C/th0Yei4WoulgrNf5ykj7MENELcJe1o8kn9RdnSg/ivuxHlo2RBsYyZ3YZSF/AgMYBNvhEQA57Djjk=; 5:iFbeLTUXQPPTCeKTU4LpyL5RQI1WZmNxPzo0HzZMmyNeVbuOTEQ3JyfWgEN5hp1/HZlZYtjGZtyid+lBnk0KW7ZZZxFMZWqI8UMsfBCMzv0pSMT/Ia+6ig6n9KyI/i5XcX+Xmf+7qmlVCsOwq8AXpV/dWlX/abrbqQBeaTND9K0=; 24:x9fK2y7sx/DdvjAis57jGizB9oiZToyZ+t4OR9CjwgEtafy4aR7qMW8foWG1sIkvRa55RxabCL3U/7BaHVkE0evaqmSk4BhO4bz9Hp7q6C8=; 7:u6NQUWj/VJI/p0C6rG+nwL2Z5NSv+vVC507TN4IQxWfrY58Z6RkkswSicWgdXHcFwUGTUwbIJEhLNAAn3bBg0zb1EWAwsvz6CZ+pQwcDHRSE1CHzSUnEnT9roW3n513FcuwNVwRk/VOEabruoyz8v03W2MYYgeVmDpzyoUSguF0Kmr7cCQ4MISJAJBOujp8UK5v/ceOtyHs32LNHiSk4hnqKZry12lQRiBsDu/vV9RCmmwurgCBoX16d7zP1/Chh x-ms-exchange-antispam-srfa-diagnostics: SSOS;SSOR; x-forefront-antispam-report: SFV:SKI; SCL:-1; SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(376002)(346002)(13464003)(199003)(189002)(24454002)(3280700002)(6306002)(86362001)(99286004)(53936002)(55016002)(14454004)(8936002)(316002)(25786009)(5660300001)(6916009)(2906002)(5250100002)(68736007)(54906003)(966005)(6246003)(3660700001)(7736002)(305945005)(106356001)(105586002)(33656002)(53946003)(8676002)(74316002)(76176999)(102836003)(6116002)(2950100002)(9686003)(3846002)(4326008)(66066001)(229853002)(53546010)(6506006)(478600001)(6436002)(54356999)(50986999)(45080400002)(101416001)(7696004)(81166006)(16799955002)(189998001)(97736004)(81156014)(2900100001)(326664003)(579004)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR04MB2995; H:DB5PR04MB0998.eurprd04.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; x-ms-office365-filtering-correlation-id: 057490a7-eca6-40d2-864c-08d52b15e557 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603258); SRVR:AM5PR04MB2995; x-ms-traffictypediagnostic: AM5PR04MB2995: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(278428928389397)(189930954265078)(185117386973197)(162533806227266)(45079756050767)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(3231022)(3002001)(10201501046)(93006095)(93001095)(100000703101)(100105400095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123560025)(20161123564025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM5PR04MB2995; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM5PR04MB2995; x-forefront-prvs: 04916EA04C received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 057490a7-eca6-40d2-864c-08d52b15e557 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Nov 2017 04:12:18.3413 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR04MB2995 Subject: Re: [PATCH 05/10] Platform/NXP : Add support for DUART library X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Nov 2017 04:08:16 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQXJkIEJpZXNoZXV2ZWwg W21haWx0bzphcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnXQ0KPiBTZW50OiBNb25kYXksIE5vdmVt YmVyIDEzLCAyMDE3IDU6NTkgUE0NCj4gVG86IE1lZW5ha3NoaSBBZ2dhcndhbCA8bWVlbmFrc2hp LmFnZ2Fyd2FsQG54cC5jb20+DQo+IENjOiBMZWlmIExpbmRob2xtIDxsZWlmLmxpbmRob2xtQGxp bmFyby5vcmc+OyBLaW5uZXksIE1pY2hhZWwgRA0KPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5j b20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgVWRpdCBLdW1hcg0KPiA8dWRpdC5rdW1hckBu eHAuY29tPjsgVmFydW4gU2V0aGkgPFYuU2V0aGlAbnhwLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQ QVRDSCAwNS8xMF0gUGxhdGZvcm0vTlhQIDogQWRkIHN1cHBvcnQgZm9yIERVQVJUIGxpYnJhcnkN Cj4gDQo+IE9uIDcgTm92ZW1iZXIgMjAxNyBhdCAxNDo0MiwgTWVlbmFrc2hpIEFnZ2Fyd2FsDQo+ IDxtZWVuYWtzaGkuYWdnYXJ3YWxAbnhwLmNvbT4gd3JvdGU6DQo+ID4gQ29udHJpYnV0ZWQtdW5k ZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPiA+IFNpZ25lZC1vZmYt Ynk6IE1lZW5ha3NoaSBBZ2dhcndhbCA8bWVlbmFrc2hpLmFnZ2Fyd2FsQG54cC5jb20+DQo+ID4g LS0tDQo+ID4gIFBsYXRmb3JtL05YUC9MaWJyYXJ5L0RVYXJ0UG9ydExpYi9EVWFydC5oICAgICAg ICAgIHwgMTI4ICsrKysrKysrDQo+ID4gIFBsYXRmb3JtL05YUC9MaWJyYXJ5L0RVYXJ0UG9ydExp Yi9EVWFydFBvcnRMaWIuYyAgIHwgMzM0DQo+ICsrKysrKysrKysrKysrKysrKysrKw0KPiA+ICBQ bGF0Zm9ybS9OWFAvTGlicmFyeS9EVWFydFBvcnRMaWIvRFVhcnRQb3J0TGliLmluZiB8ICAzOSAr KysNCj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCA1MDEgaW5zZXJ0aW9ucygrKQ0KPiA+ICBjcmVhdGUg bW9kZSAxMDA2NDQgUGxhdGZvcm0vTlhQL0xpYnJhcnkvRFVhcnRQb3J0TGliL0RVYXJ0LmgNCj4g PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFBsYXRmb3JtL05YUC9MaWJyYXJ5L0RVYXJ0UG9ydExpYi9E VWFydFBvcnRMaWIuYw0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgUGxhdGZvcm0vTlhQL0xpYnJh cnkvRFVhcnRQb3J0TGliL0RVYXJ0UG9ydExpYi5pbmYNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9Q bGF0Zm9ybS9OWFAvTGlicmFyeS9EVWFydFBvcnRMaWIvRFVhcnQuaA0KPiA+IGIvUGxhdGZvcm0v TlhQL0xpYnJhcnkvRFVhcnRQb3J0TGliL0RVYXJ0LmgNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiA+IGluZGV4IDAwMDAwMDAuLjkwNzc5MGINCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysr IGIvUGxhdGZvcm0vTlhQL0xpYnJhcnkvRFVhcnRQb3J0TGliL0RVYXJ0LmgNCj4gPiBAQCAtMCww ICsxLDEyOCBAQA0KPiA+ICsvKiogRFVhcnQuaA0KPiA+ICsqICBIZWFkZXIgZGVmaW5pbmcgdGhl IERVQVJUIGNvbnN0YW50cyAoQmFzZSBhZGRyZXNzZXMsIHNpemVzLCBmbGFncykNCj4gPiArKg0K PiA+ICsqICBCYXNlZCBvbiBTZXJpYWwgSS9PIFBvcnQgbGlicmFyeSBoZWFkZXJzIGF2YWlsYWJs ZSBpbiBQTDAxMVVhcnQuaA0KPiA+ICsqDQo+ID4gKyogIENvcHlyaWdodCAoYykgMjAxMS0yMDEy LCBBUk0gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCj4gPiArKiAgQ29weXJpZ2h0IChj KSAyMDE2LCBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk Lg0KPiA+ICsqICBDb3B5cmlnaHQgMjAxNyBOWFANCj4gPiArKg0KPiA+ICsqICBUaGlzIHByb2dy YW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQo+ID4gKyogIGFyZSBsaWNlbnNlZCBh bmQgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mDQo+ID4g K3RoZSBCU0QgTGljZW5zZQ0KPiA+ICsqICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1 dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vuc2UNCj4gPiArbWF5IGJlIGZvdW5kIGF0 DQo+ID4gKyoNCj4gPg0KPiAraHR0cHM6Ly9lbWVhMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0 bG9vay5jb20vP3VybD1odHRwJTNBJTJGJTJGb3ANCj4gZQ0KPiA+ICtuc291cmNlLm9yZyUyRmxp Y2Vuc2VzJTJGYnNkLQ0KPiBsaWNlbnNlLnBocCZkYXRhPTAyJTdDMDElN0NtZWVuYWtzaGkuYWdn DQo+ID4NCj4gK2Fyd2FsJTQwbnhwLmNvbSU3QzFjYTliZjhiOGEyZTQ3YWMyYjQ2MDhkNTJhOTIx YmRjJTdDNjg2ZWExZDNiYw0KPiAyYjRjNmYNCj4gPg0KPiArYTkyY2Q5OWM1YzMwMTYzNSU3QzAl N0MwJTdDNjM2NDYxNzI5MzkzMDc2MTk3JnNkYXRhPUhTQmJVMnBDZiUNCj4gMkYxTUFQcg0KPiA+ ICs2OVdWenp4bjZId3ljdk9RZXh4R2h3JTJGd2c0R1UlM0QmcmVzZXJ2ZWQ9MA0KPiA+ICsqDQo+ ID4gKyogIFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBP TiBBTiAiQVMgSVMiDQo+ID4gK0JBU0lTLA0KPiA+ICsqICBXSVRIT1VUIFdBUlJBTlRJRVMgT1Ig UkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4gRVhQUkVTUyBPUiBJTVBMSUVE Lg0KPiA+ICsqDQo+ID4gKyoqLw0KPiA+ICsNCj4gPiArI2lmbmRlZiBfX0RVQVJUX0hfXw0KPiA+ ICsjZGVmaW5lIF9fRFVBUlRfSF9fDQo+ID4gKw0KPiA+ICsvLyBGSUZPIENvbnRyb2wgUmVnaXN0 ZXINCj4gPiArI2RlZmluZSBEVUFSVF9GQ1JfRklGT19FTiAgICAgICAgICAweDAxIC8qIEZpZm8g ZW5hYmxlICovDQo+ID4gKyNkZWZpbmUgRFVBUlRfRkNSX0NMRUFSX1JDVlIgICAgICAgMHgwMiAv KiBDbGVhciB0aGUgUkNWUiBGSUZPICovDQo+ID4gKyNkZWZpbmUgRFVBUlRfRkNSX0NMRUFSX1hN SVQgICAgICAgMHgwNCAvKiBDbGVhciB0aGUgWE1JVCBGSUZPICovDQo+ID4gKyNkZWZpbmUgRFVB UlRfRkNSX0RNQV9TRUxFQ1QgICAgICAgMHgwOCAvKiBGb3IgRE1BIGFwcGxpY2F0aW9ucyAqLw0K PiA+ICsjZGVmaW5lIERVQVJUX0ZDUl9UUklHR0VSX01BU0sgICAgIDB4QzAgLyogTWFzayBmb3Ig dGhlIEZJRk8gdHJpZ2dlcg0KPiByYW5nZSAqLw0KPiA+ICsjZGVmaW5lIERVQVJUX0ZDUl9UUklH R0VSXzEgICAgICAgIDB4MDAgLyogTWFzayBmb3IgdHJpZ2dlciBzZXQgYXQgMSAqLw0KPiA+ICsj ZGVmaW5lIERVQVJUX0ZDUl9UUklHR0VSXzQgICAgICAgIDB4NDAgLyogTWFzayBmb3IgdHJpZ2dl ciBzZXQgYXQgNCAqLw0KPiA+ICsjZGVmaW5lIERVQVJUX0ZDUl9UUklHR0VSXzggICAgICAgIDB4 ODAgLyogTWFzayBmb3IgdHJpZ2dlciBzZXQgYXQgOCAqLw0KPiA+ICsjZGVmaW5lIERVQVJUX0ZD Ul9UUklHR0VSXzE0ICAgICAgIDB4QzAgLyogTWFzayBmb3IgdHJpZ2dlciBzZXQgYXQgMTQgKi8N Cj4gPiArI2RlZmluZSBEVUFSVF9GQ1JfUlhTUiAgICAgICAgICAgICAweDAyIC8qIFJlY2VpdmVy IHNvZnQgcmVzZXQgKi8NCj4gPiArI2RlZmluZSBEVUFSVF9GQ1JfVFhTUiAgICAgICAgICAgICAw eDA0IC8qIFRyYW5zbWl0dGVyIHNvZnQgcmVzZXQgKi8NCj4gPiArDQo+ID4gKy8vIE1vZGVtIENv bnRyb2wgUmVnaXN0ZXINCj4gPiArI2RlZmluZSBEVUFSVF9NQ1JfRFRSICAgICAgICAgICAgICAw eDAxIC8qIFJlc2VydmVkICAqLw0KPiA+ICsjZGVmaW5lIERVQVJUX01DUl9SVFMgICAgICAgICAg ICAgIDB4MDIgLyogUlRTICAgKi8NCj4gPiArI2RlZmluZSBEVUFSVF9NQ1JfT1VUMSAgICAgICAg ICAgICAweDA0IC8qIFJlc2VydmVkICovDQo+ID4gKyNkZWZpbmUgRFVBUlRfTUNSX09VVDIgICAg ICAgICAgICAgMHgwOCAvKiBSZXNlcnZlZCAqLw0KPiA+ICsjZGVmaW5lIERVQVJUX01DUl9MT09Q ICAgICAgICAgICAgIDB4MTAgLyogRW5hYmxlIGxvb3BiYWNrIHRlc3QgbW9kZSAqLw0KPiA+ICsj ZGVmaW5lIERVQVJUX01DUl9BRkUgICAgICAgICAgICAgIDB4MjAgLyogQUZFIChBdXRvIEZsb3cg Q29udHJvbCkgKi8NCj4gPiArI2RlZmluZSBEVUFSVF9NQ1JfRE1BX0VOICAgICAgICAgICAweDA0 DQo+ID4gKyNkZWZpbmUgRFVBUlRfTUNSX1RYX0RGUiAgICAgICAgICAgMHgwOA0KPiA+ICsNCj4g PiArLy8gTGluZSBDb250cm9sIFJlZ2lzdGVyDQo+ID4gKy8qDQo+ID4gKyogTm90ZTogaWYgdGhl IHdvcmQgbGVuZ3RoIGlzIDUgYml0cyAoRFVBUlRfTENSX1dMRU41KSwgdGhlbiBzZXR0aW5nDQo+ ID4gKyogRFVBUlRfTENSX1NUT1Agd2lsbCBzZWxlY3QgMS41IHN0b3AgYml0cywgbm90IDIgc3Rv cCBiaXRzLg0KPiA+ICsqLw0KPiA+ICsjZGVmaW5lIERVQVJUX0xDUl9XTFNfTVNLICAgICAgICAg IDB4MDMgLyogY2hhcmFjdGVyIGxlbmd0aCBzZWxlY3QgbWFzaw0KPiAqLw0KPiA+ICsjZGVmaW5l IERVQVJUX0xDUl9XTFNfNSAgICAgICAgICAgIDB4MDAgLyogNSBiaXQgY2hhcmFjdGVyIGxlbmd0 aCAqLw0KPiA+ICsjZGVmaW5lIERVQVJUX0xDUl9XTFNfNiAgICAgICAgICAgIDB4MDEgLyogNiBi aXQgY2hhcmFjdGVyIGxlbmd0aCAqLw0KPiA+ICsjZGVmaW5lIERVQVJUX0xDUl9XTFNfNyAgICAg ICAgICAgIDB4MDIgLyogNyBiaXQgY2hhcmFjdGVyIGxlbmd0aCAqLw0KPiA+ICsjZGVmaW5lIERV QVJUX0xDUl9XTFNfOCAgICAgICAgICAgIDB4MDMgLyogOCBiaXQgY2hhcmFjdGVyIGxlbmd0aCAq Lw0KPiA+ICsjZGVmaW5lIERVQVJUX0xDUl9TVEIgICAgICAgICAgICAgIDB4MDQgLyogIyBzdG9w IEJpdHMsIG9mZj0xLCBvbj0xLjUgb3IgMikgKi8NCj4gPiArI2RlZmluZSBEVUFSVF9MQ1JfUEVO ICAgICAgICAgICAgICAweDA4IC8qIFBhcml0eSBlbmVibGUgKi8NCj4gPiArI2RlZmluZSBEVUFS VF9MQ1JfRVBTICAgICAgICAgICAgICAweDEwIC8qIEV2ZW4gUGFyaXR5IFNlbGVjdCAqLw0KPiA+ ICsjZGVmaW5lIERVQVJUX0xDUl9TVEtQICAgICAgICAgICAgIDB4MjAgLyogU3RpY2sgUGFyaXR5 ICovDQo+ID4gKyNkZWZpbmUgRFVBUlRfTENSX1NCUksgICAgICAgICAgICAgMHg0MCAvKiBTZXQg QnJlYWsgKi8NCj4gPiArI2RlZmluZSBEVUFSVF9MQ1JfQktTRSAgICAgICAgICAgICAweDgwIC8q IEJhbmsgc2VsZWN0IGVuYWJsZSAqLw0KPiA+ICsjZGVmaW5lIERVQVJUX0xDUl9ETEFCICAgICAg ICAgICAgIDB4ODAgLyogRGl2aXNvciBsYXRjaCBhY2Nlc3MgYml0ICovDQo+ID4gKw0KPiA+ICsv LyBMaW5lIFN0YXR1cyBSZWdpc3Rlcg0KPiA+ICsjZGVmaW5lIERVQVJUX0xTUl9EUiAgICAgICAg ICAgICAgIDB4MDEgLyogRGF0YSByZWFkeSAqLw0KPiA+ICsjZGVmaW5lIERVQVJUX0xTUl9PRSAg ICAgICAgICAgICAgIDB4MDIgLyogT3ZlcnJ1biAqLw0KPiA+ICsjZGVmaW5lIERVQVJUX0xTUl9Q RSAgICAgICAgICAgICAgIDB4MDQgLyogUGFyaXR5IGVycm9yICovDQo+ID4gKyNkZWZpbmUgRFVB UlRfTFNSX0ZFICAgICAgICAgICAgICAgMHgwOCAvKiBGcmFtaW5nIGVycm9yICovDQo+ID4gKyNk ZWZpbmUgRFVBUlRfTFNSX0JJICAgICAgICAgICAgICAgMHgxMCAvKiBCcmVhayAqLw0KPiA+ICsj ZGVmaW5lIERVQVJUX0xTUl9USFJFICAgICAgICAgICAgIDB4MjAgLyogWG1pdCBob2xkaW5nIHJl Z2lzdGVyIGVtcHR5ICovDQo+ID4gKyNkZWZpbmUgRFVBUlRfTFNSX1RFTVQgICAgICAgICAgICAg MHg0MCAvKiBYbWl0dGVyIGVtcHR5ICovDQo+ID4gKyNkZWZpbmUgRFVBUlRfTFNSX0VSUiAgICAg ICAgICAgICAgMHg4MCAvKiBFcnJvciAqLw0KPiA+ICsNCj4gPiArLy8gTW9kZW0gU3RhdHVzIFJl Z2lzdGVyDQo+ID4gKyNkZWZpbmUgRFVBUlRfTVNSX0RDVFMgICAgICAgICAgICAgMHgwMSAvKiBE ZWx0YSBDVFMgKi8NCj4gPiArI2RlZmluZSBEVUFSVF9NU1JfRERTUiAgICAgICAgICAgICAweDAy IC8qIFJlc2VydmVkICovDQo+ID4gKyNkZWZpbmUgRFVBUlRfTVNSX1RFUkkgICAgICAgICAgICAg MHgwNCAvKiBSZXNlcnZlZCAqLw0KPiA+ICsjZGVmaW5lIERVQVJUX01TUl9ERENEICAgICAgICAg ICAgIDB4MDggLyogUmVzZXJ2ZWQgKi8NCj4gPiArI2RlZmluZSBEVUFSVF9NU1JfQ1RTICAgICAg ICAgICAgICAweDEwIC8qIENsZWFyIHRvIFNlbmQgKi8NCj4gPiArI2RlZmluZSBEVUFSVF9NU1Jf RFNSICAgICAgICAgICAgICAweDIwIC8qIFJlc2VydmVkICovDQo+ID4gKyNkZWZpbmUgRFVBUlRf TVNSX1JJICAgICAgICAgICAgICAgMHg0MCAvKiBSZXNlcnZlZCAqLw0KPiA+ICsjZGVmaW5lIERV QVJUX01TUl9EQ0QgICAgICAgICAgICAgIDB4ODAgLyogUmVzZXJ2ZWQgKi8NCj4gPiArDQo+ID4g Ky8vIEludGVycnVwdCBJZGVudGlmaWNhdGlvbiBSZWdpc3Rlcg0KPiA+ICsjZGVmaW5lIERVQVJU X0lJUl9OT19JTlQgICAgICAgICAgIDB4MDEgLyogTm8gaW50ZXJydXB0cyBwZW5kaW5nICovDQo+ ID4gKyNkZWZpbmUgRFVBUlRfSUlSX0lEICAgICAgICAgICAgICAgMHgwNiAvKiBNYXNrIGZvciB0 aGUgaW50ZXJydXB0IElEICovDQo+ID4gKyNkZWZpbmUgRFVBUlRfSUlSX01TSSAgICAgICAgICAg ICAgMHgwMCAvKiBNb2RlbSBzdGF0dXMgaW50ZXJydXB0ICovDQo+ID4gKyNkZWZpbmUgRFVBUlRf SUlSX1RIUkkgICAgICAgICAgICAgMHgwMiAvKiBUcmFuc21pdHRlciBob2xkaW5nIHJlZ2lzdGVy DQo+IGVtcHR5ICovDQo+ID4gKyNkZWZpbmUgRFVBUlRfSUlSX1JESSAgICAgICAgICAgICAgMHgw NCAvKiBSZWNlaXZlciBkYXRhIGludGVycnVwdCAqLw0KPiA+ICsjZGVmaW5lIERVQVJUX0lJUl9S TFNJICAgICAgICAgICAgIDB4MDYgLyogUmVjZWl2ZXIgbGluZSBzdGF0dXMgaW50ZXJydXB0ICov DQo+ID4gKw0KPiA+ICsvLyAgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3Rlcg0KPiA+ICsjZGVmaW5l IERVQVJUX0lFUl9NU0kgICAgICAgICAgICAgIDB4MDggLyogRW5hYmxlIE1vZGVtIHN0YXR1cyBp bnRlcnJ1cHQgKi8NCj4gPiArI2RlZmluZSBEVUFSVF9JRVJfUkxTSSAgICAgICAgICAgICAweDA0 IC8qIEVuYWJsZSByZWNlaXZlciBsaW5lIHN0YXR1cw0KPiBpbnRlcnJ1cHQgKi8NCj4gPiArI2Rl ZmluZSBEVUFSVF9JRVJfVEhSSSAgICAgICAgICAgICAweDAyIC8qIEVuYWJsZSBUcmFuc21pdHRl ciBob2xkaW5nDQo+IHJlZ2lzdGVyIGludC4gKi8NCj4gPiArI2RlZmluZSBEVUFSVF9JRVJfUkRJ ICAgICAgICAgICAgICAweDAxIC8qIEVuYWJsZSByZWNlaXZlciBkYXRhIGludGVycnVwdCAqLw0K PiA+ICsNCj4gPiArLy8gTENSIGRlZmF1bHRzDQo+ID4gKyNkZWZpbmUgRFVBUlRfTENSXzhOMSAg ICAgICAgICAgICAgMHgwMw0KPiA+ICsjZGVmaW5lIERVQVJUX0xDUlZBTCAgICAgICAgICAgICAg IERVQVJUX0xDUl84TjEgICAgICAgICAgLyogOCBkYXRhLCAxIHN0b3AsIG5vDQo+IHBhcml0eSAq Lw0KPiA+ICsjZGVmaW5lIERVQVJUX01DUlZBTCAgICAgICAgICAgICAgIChEVUFSVF9NQ1JfRFRS IHwgXA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERVQVJUX01DUl9S VFMpICAgICAgICAgLyogUlRTL0RUUiAqLw0KPiA+ICsjZGVmaW5lIERVQVJUX0ZDUlZBTCAgICAg ICAgICAgICAgIChEVUFSVF9GQ1JfRklGT19FTiB8IFwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBEVUFSVF9GQ1JfUlhTUiB8ICAgIFwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBEVUFSVF9GQ1JfVFhTUikgICAgICAgIC8qIENsZWFyICYg ZW5hYmxlIEZJRk9zICovDQo+ID4gKw0KPiA+ICsjZGVmaW5lIFVSQlIgICAgICAgICAweDANCj4g PiArI2RlZmluZSBVVEhSICAgICAgICAgMHgwDQo+ID4gKyNkZWZpbmUgVURMQiAgICAgICAgIDB4 MA0KPiA+ICsjZGVmaW5lIFVETUIgICAgICAgICAweDENCj4gPiArI2RlZmluZSBVSUVSICAgICAg ICAgMHgxDQo+ID4gKyNkZWZpbmUgVUlJUiAgICAgICAgIDB4Mg0KPiA+ICsjZGVmaW5lIFVGQ1Ig ICAgICAgICAweDINCj4gPiArI2RlZmluZSBVQUZSICAgICAgICAgMHgyDQo+ID4gKyNkZWZpbmUg VUxDUiAgICAgICAgIDB4Mw0KPiA+ICsjZGVmaW5lIFVNQ1IgICAgICAgICAweDQNCj4gPiArI2Rl ZmluZSBVTFNSICAgICAgICAgMHg1DQo+ID4gKyNkZWZpbmUgVU1TUiAgICAgICAgIDB4Ng0KPiA+ ICsjZGVmaW5lIFVTQ1IgICAgICAgICAweDcNCj4gPiArI2RlZmluZSBVRFNSICAgICAgICAgMHgx MA0KPiA+ICsNCj4gPiArZXh0ZXJuDQo+ID4gK1VJTlQzMg0KPiA+ICtDYWxjdWxhdGVCYXVkRGl2 aXNvciAoDQo+ID4gKyAgSU4gIFVJTlQ2NCBCYXVkUmF0ZQ0KPiA+ICsgICk7DQo+ID4gKw0KPiA+ ICsjZW5kaWYgLyogX19EVUFSVF9IX18gKi8NCj4gPiBkaWZmIC0tZ2l0IGEvUGxhdGZvcm0vTlhQ L0xpYnJhcnkvRFVhcnRQb3J0TGliL0RVYXJ0UG9ydExpYi5jDQo+ID4gYi9QbGF0Zm9ybS9OWFAv TGlicmFyeS9EVWFydFBvcnRMaWIvRFVhcnRQb3J0TGliLmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEw MDY0NA0KPiA+IGluZGV4IDAwMDAwMDAuLjk5NzY2ZDENCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4g KysrIGIvUGxhdGZvcm0vTlhQL0xpYnJhcnkvRFVhcnRQb3J0TGliL0RVYXJ0UG9ydExpYi5jDQo+ ID4gQEAgLTAsMCArMSwzMzQgQEANCj4gPiArLyoqIER1YXJ0UG9ydExpYi5jDQo+ID4gKyAgRFVB UlQgKE5TMTY1NTApIGxpYnJhcnkgZnVuY3Rpb25zDQo+ID4gKw0KPiA+ICsgIEJhc2VkIG9uIFNl cmlhbCBJL08gUG9ydCBsaWJyYXJ5IGZ1bmN0aW9ucyBhdmFpbGFibGUgaW4NCj4gPiArIFBMMDEx U2VyaWFsUG9ydExpYi5jDQo+ID4gKw0KPiA+ICsgIENvcHlyaWdodCAoYykgMjAwOCAtIDIwMTAs IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ID4gKyBDb3B5cmlnaHQgKGMp IDIwMTIgLSAyMDEzLCBBUk0gTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gPiArIENv cHlyaWdodCAoYykgMjAxNiwgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4gQWxsIHJpZ2h0 cyByZXNlcnZlZC4NCj4gPiArICBDb3B5cmlnaHQgMjAxNyBOWFANCj4gPiArDQo+ID4gKyAgVGhp cyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyAgYXJlIGxpY2Vuc2VkIGFu ZCBtYWRlDQo+ID4gKyBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9m IHRoZSBCU0QgTGljZW5zZSAgd2hpY2gNCj4gPiArIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0 aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4gPiArIGZvdW5kIGF0 DQo+ID4gKw0KPiA+ICsNCj4gaHR0cHM6Ly9lbWVhMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0 bG9vay5jb20vP3VybD1odHRwJTNBJTJGJTJGb3ANCj4gPiArIGVuc291cmNlLm9yZyUyRmxpY2Vu c2VzJTJGYnNkLQ0KPiBsaWNlbnNlLnBocCZkYXRhPTAyJTdDMDElN0NtZWVuYWtzaGkuYQ0KPiA+ ICsNCj4gZ2dhcndhbCU0MG54cC5jb20lN0MxY2E5YmY4YjhhMmU0N2FjMmI0NjA4ZDUyYTkyMWJk YyU3QzY4NmVhMWQzYg0KPiBjMmI0DQo+ID4gKw0KPiBjNmZhOTJjZDk5YzVjMzAxNjM1JTdDMCU3 QzAlN0M2MzY0NjE3MjkzOTMwNzYxOTcmc2RhdGE9SFNCYlUycENmDQo+ICUyRjENCj4gPiArIE1B UHI2OVdWenp4bjZId3ljdk9RZXh4R2h3JTJGd2c0R1UlM0QmcmVzZXJ2ZWQ9MA0KPiA+ICsNCj4g PiArICBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04g QU4gIkFTIElTIg0KPiA+ICsgQkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5U QVRJT05TIE9GIEFOWSBLSU5ELA0KPiBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELg0KPiA+ICsN Cj4gPiArKiovDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8QmFzZS5oPg0KPiA+ICsjaW5jbHVkZSA8 TGlicmFyeS9Jb0xpYi5oPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9QY2RMaWIuaD4NCj4gPiAr I2luY2x1ZGUgPExpYnJhcnkvU2VyaWFsUG9ydExpYi5oPg0KPiA+ICsNCj4gPiArI2luY2x1ZGUg IkRVYXJ0LmgiDQo+ID4gKw0KPiA+ICtTVEFUSUMgQ09OU1QgVUlOVDMyIG1JbnZhbGlkQ29udHJv bEJpdHMgPQ0KPiAoRUZJX1NFUklBTF9TT0ZUV0FSRV9MT09QQkFDS19FTkFCTEUgfCBcDQo+ID4g Kw0KPiA+ICtFRklfU0VSSUFMX0RBVEFfVEVSTUlOQUxfUkVBRFkpOw0KPiA+ICsNCj4gPiArLyoq DQo+ID4gKyAgQXNzZXJ0IG9yIGRlYXNzZXJ0IHRoZSBjb250cm9sIHNpZ25hbHMgb24gYSBzZXJp YWwgcG9ydC4NCj4gPiArICBUaGUgZm9sbG93aW5nIGNvbnRyb2wgc2lnbmFscyBhcmUgc2V0IGFj Y29yZGluZyB0aGVpciBiaXQgc2V0dGluZ3MgOg0KPiA+ICsgIC4gUmVxdWVzdCB0byBTZW5kDQo+ ID4gKyAgLiBEYXRhIFRlcm1pbmFsIFJlYWR5DQo+ID4gKw0KPiA+ICsgIEBwYXJhbVtpbl0gIENv bnRyb2wgICBUaGUgZm9sbG93aW5nIGJpdHMgYXJlIHRha2VuIGludG8gYWNjb3VudCA6DQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgIC4gRUZJX1NFUklBTF9SRVFVRVNUX1RPX1NFTkQgOiBh c3NlcnQvZGVhc3NlcnQgdGhlDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlcXVl c3QgVG8gU2VuZCIgY29udHJvbCBzaWduYWwgaWYgdGhpcyBiaXQgaXMNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICBlcXVhbCB0byBvbmUvemVyby4NCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgLiBFRklfU0VSSUFMX0RBVEFfVEVSTUlOQUxfUkVBRFkgOiBhc3NlcnQvZGVhc3Nl cnQNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgIkRhdGEgVGVybWluYWwgUmVh ZHkiIGNvbnRyb2wgc2lnbmFsIGlmIHRoaXMNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICBiaXQgaXMgZXF1YWwgdG8gb25lL3plcm8uDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg IC4gRUZJX1NFUklBTF9IQVJEV0FSRV9MT09QQkFDS19FTkFCTEUgOg0KPiBlbmFibGUvZGlzYWJs ZQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBoYXJkd2FyZSBsb29wYmFjayBp ZiB0aGlzIGJpdCBpcyBlcXVhbCB0bw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIG9u ZS96ZXJvLg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAuIEVGSV9TRVJJQUxfU09GVFdB UkVfTE9PUEJBQ0tfRU5BQkxFIDogbm90DQo+IHN1cHBvcnRlZC4NCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgLiBFRklfU0VSSUFMX0hBUkRXQVJFX0ZMT1dfQ09OVFJPTF9FTkFCTEUgOiBl bmFibGUvDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZSB0aGUgaGFyZHdh cmUgZmxvdyBjb250cm9sIGJhc2VkIG9uIENUUyAoQ2xlYXINCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICBUbyBTZW5kKSBhbmQgUlRTIChSZWFkeSBUbyBTZW5kKSBjb250cm9sIHNpZ25h bHMuDQo+ID4gKw0KPiA+ICsgIEByZXR2YWwgIEVGSV9TVUNDRVNTICAgICAgVGhlIG5ldyBjb250 cm9sIGJpdHMgd2VyZSBzZXQgb24gdGhlIGRldmljZS4NCj4gPiArICBAcmV0dmFsICBFRklfVU5T VVBQT1JURUQgIFRoZSBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCB0aGlzDQo+IG9wZXJhdGlvbi4N Cj4gPiArDQo+ID4gKyoqLw0KPiA+ICtFRklfU1RBVFVTDQo+ID4gK0VGSUFQSQ0KPiA+ICtTZXJp YWxQb3J0U2V0Q29udHJvbCAoDQo+ID4gKyAgSU4gIFVJTlQzMiAgQ29udHJvbA0KPiA+ICsgICkN Cj4gPiArew0KPiA+ICsgIFVJTlQzMiAgTWNyQml0czsNCj4gPiArICBVSU5UTiAgIFVhcnRCYXNl Ow0KPiA+ICsNCj4gPiArICBVYXJ0QmFzZSA9IChVSU5UTilQY2RHZXQ2NCAoUGNkU2VyaWFsUmVn aXN0ZXJCYXNlKTsNCj4gPiArDQo+ID4gKyAgaWYgKENvbnRyb2wgJiAobUludmFsaWRDb250cm9s Qml0cykpIHsNCj4gPiArICAgIHJldHVybiBFRklfVU5TVVBQT1JURUQ7DQo+ID4gKyAgfQ0KPiA+ ICsNCj4gPiArICBNY3JCaXRzID0gTW1pb1JlYWQ4IChVYXJ0QmFzZSArIFVNQ1IpOw0KPiA+ICsN Cj4gPiArICBpZiAoQ29udHJvbCAmIEVGSV9TRVJJQUxfUkVRVUVTVF9UT19TRU5EKSB7DQo+ID4g KyAgICBNY3JCaXRzIHw9IERVQVJUX01DUl9SVFM7DQo+ID4gKyAgfSBlbHNlIHsNCj4gPiArICAg IE1jckJpdHMgJj0gfkRVQVJUX01DUl9SVFM7DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBpZiAo Q29udHJvbCAmIEVGSV9TRVJJQUxfSEFSRFdBUkVfTE9PUEJBQ0tfRU5BQkxFKSB7DQo+ID4gKyAg ICBNY3JCaXRzIHw9IERVQVJUX01DUl9MT09QOw0KPiA+ICsgIH0gZWxzZSB7DQo+ID4gKyAgICBN Y3JCaXRzICY9IH5EVUFSVF9NQ1JfTE9PUDsNCj4gPiArICB9DQo+ID4gKw0KPiA+ICsgIGlmIChD b250cm9sICYgRUZJX1NFUklBTF9IQVJEV0FSRV9GTE9XX0NPTlRST0xfRU5BQkxFKSB7DQo+ID4g KyAgICBNY3JCaXRzIHw9IERVQVJUX01DUl9BRkU7DQo+ID4gKyAgfSBlbHNlIHsNCj4gPiArICAg IE1jckJpdHMgJj0gfkRVQVJUX01DUl9BRkU7DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICBNbWlv V3JpdGUzMiAoVWFydEJhc2UgKyBVTUNSLCBNY3JCaXRzKTsNCj4gPiArDQo+ID4gKyAgcmV0dXJu IEVGSV9TVUNDRVNTOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBSZXRyaWV2ZSB0 aGUgc3RhdHVzIG9mIHRoZSBjb250cm9sIGJpdHMgb24gYSBzZXJpYWwgZGV2aWNlLg0KPiA+ICsN Cj4gPiArICBAcGFyYW1bb3V0XSAgQ29udHJvbCAgIFN0YXR1cyBvZiB0aGUgY29udHJvbCBiaXRz IG9uIGEgc2VyaWFsIGRldmljZSA6DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgLiBFRklfU0VSSUFMX0RBVEFfQ0xFQVJfVE9fU0VORCwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgRUZJX1NFUklBTF9EQVRBX1NFVF9SRUFEWSwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgRUZJX1NFUklBTF9SSU5HX0lORElDQVRFLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICBFRklfU0VSSUFMX0NBUlJJRVJfREVURUNULA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICBFRklfU0VSSUFMX1JFUVVFU1RfVE9fU0VORCwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgRUZJX1NFUklBTF9EQVRBX1RFUk1JTkFMX1JFQURZDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSBhbGwgcmVsYXRlZCB0byB0aGUgRFRF IChEYXRhIFRlcm1pbmFsIEVxdWlwbWVudCkNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgYW5kIERDRSAoRGF0YSBDb21tdW5pY2F0aW9uIEVxdWlwbWVudCkgbW9kZXMgb2YNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uIG9mIHRoZSBzZXJpYWwgZGV2aWNl Lg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgLiBFRklfU0VSSUFMX0lOUFVUX0JVRkZF Ul9FTVBUWSA6IGVxdWFsIHRvIG9uZSBpZiB0aGUNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVjZWl2ZSBidWZmZXIgaXMgZW1wdHksIDAgb3RoZXJ3aXNlLg0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgLiBFRklfU0VSSUFMX09VVFBVVF9CVUZGRVJfRU1QVFkgOiBlcXVh bCB0byBvbmUgaWYgdGhlDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbWl0 IGJ1ZmZlciBpcyBlbXB0eSwgMCBvdGhlcndpc2UuDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAuIEVGSV9TRVJJQUxfSEFSRFdBUkVfTE9PUEJBQ0tfRU5BQkxFIDogZXF1YWwgdG8gb25l DQo+IGlmDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBoYXJkd2FyZSBsb29w YmFjayBpcyBlbmFibGVkICh0aGUgb3VwdXQgZmVlZHMgdGhlDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlY2VpdmUgYnVmZmVyKSwgMCBvdGhlcndpc2UuDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAuIEVGSV9TRVJJQUxfU09GVFdBUkVfTE9PUEJBQ0tfRU5BQkxFIDog ZXF1YWwgdG8gb25lDQo+IGlmDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgbG9v cGJhY2sgaXMgYWNjb21wbGlzaGVkIGJ5IHNvZnR3YXJlLCAwIG90aGVyd2lzZS4NCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgIC4gRUZJX1NFUklBTF9IQVJEV0FSRV9GTE9XX0NPTlRST0xf RU5BQkxFIDogZXF1YWwNCj4gdG8NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgb25l IGlmIHRoZSBoYXJkd2FyZSBmbG93IGNvbnRyb2wgYmFzZWQgb24gQ1RTIChDbGVhcg0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICBUbyBTZW5kKSBhbmQgUlRTIChSZWFkeSBUbyBTZW5k KSBjb250cm9sIHNpZ25hbHMgaXMNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5h YmxlZCwgMCBvdGhlcndpc2UuDQo+ID4gKw0KPiA+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAg ICBUaGUgY29udHJvbCBiaXRzIHdlcmUgcmVhZCBmcm9tIHRoZSBzZXJpYWwNCj4gZGV2aWNlLg0K PiA+ICsNCj4gPiArKiovDQo+ID4gKw0KPiA+ICtFRklfU1RBVFVTDQo+ID4gK0VGSUFQSQ0KPiA+ ICtTZXJpYWxQb3J0R2V0Q29udHJvbCAoDQo+ID4gKyAgT1VUICBVSU5UMzIgICpDb250cm9sDQo+ ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAgVUlOVDMyICAgICAgTXNyUmVnaXN0ZXI7DQo+ID4gKyAg VUlOVDMyICAgICAgTWNyUmVnaXN0ZXI7DQo+ID4gKyAgVUlOVDMyICAgICAgTHNyUmVnaXN0ZXI7 DQo+ID4gKyAgVUlOVE4gICAgICAgVWFydEJhc2U7DQo+ID4gKw0KPiA+ICsgIFVhcnRCYXNlID0g KFVJTlROKVBjZEdldDY0IChQY2RTZXJpYWxSZWdpc3RlckJhc2UpOw0KPiA+ICsNCj4gPiArICBN c3JSZWdpc3RlciA9IE1taW9SZWFkOCAoVWFydEJhc2UgKyBVTVNSKTsgIE1jclJlZ2lzdGVyID0N Cj4gTW1pb1JlYWQ4DQo+ID4gKyAoVWFydEJhc2UgKyBVTUNSKTsgIExzclJlZ2lzdGVyID0gTW1p b1JlYWQ4IChVYXJ0QmFzZSArIFVMU1IpOw0KPiA+ICsNCj4gPiArICAqQ29udHJvbCA9IDA7DQo+ ID4gKw0KPiA+ICsgIGlmICgoTXNyUmVnaXN0ZXIgJiBEVUFSVF9NU1JfQ1RTKSA9PSBEVUFSVF9N U1JfQ1RTKSB7DQo+ID4gKyAgICAqQ29udHJvbCB8PSBFRklfU0VSSUFMX0NMRUFSX1RPX1NFTkQ7 ICB9DQo+ID4gKw0KPiA+ICsgIGlmICgoTWNyUmVnaXN0ZXIgJiBEVUFSVF9NQ1JfUlRTKSA9PSBE VUFSVF9NQ1JfUlRTKSB7DQo+ID4gKyAgICAqQ29udHJvbCB8PSBFRklfU0VSSUFMX1JFUVVFU1Rf VE9fU0VORDsgIH0NCj4gPiArDQo+ID4gKyAgaWYgKChMc3JSZWdpc3RlciAmIERVQVJUX0xTUl9U RU1UKSA9PSBEVUFSVF9MU1JfVEVNVCkgew0KPiA+ICsgICAgKkNvbnRyb2wgfD0gRUZJX1NFUklB TF9PVVRQVVRfQlVGRkVSX0VNUFRZOyAgfQ0KPiA+ICsNCj4gPiArICBpZiAoKE1jclJlZ2lzdGVy ICYgRFVBUlRfTUNSX0FGRSkgPT0gRFVBUlRfTUNSX0FGRSkgew0KPiA+ICsgICAgKkNvbnRyb2wg fD0gRUZJX1NFUklBTF9IQVJEV0FSRV9GTE9XX0NPTlRST0xfRU5BQkxFOw0KPiA+ICsgIH0NCj4g PiArDQo+ID4gKyAgaWYgKChNY3JSZWdpc3RlciAmIERVQVJUX01DUl9MT09QKSA9PSBEVUFSVF9N Q1JfTE9PUCkgew0KPiA+ICsgICAgKkNvbnRyb2wgfD0gRUZJX1NFUklBTF9IQVJEV0FSRV9MT09Q QkFDS19FTkFCTEU7DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICByZXR1cm4gRUZJX1NVQ0NFU1M7 DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgIFByb2dyYW1tZWQgaGFyZHdhcmUgb2Yg U2VyaWFsIHBvcnQuDQo+ID4gKw0KPiA+ICsgIEByZXR1cm4gICAgQWx3YXlzIHJldHVybiBFRklf U1VDQ0VTUy4NCj4gPiArDQo+ID4gKyoqLw0KPiA+ICsNCj4gPiArRUZJX1NUQVRVUw0KPiA+ICtF RklBUEkNCj4gPiArU2VyaWFsUG9ydEluaXRpYWxpemUgKA0KPiA+ICsgIFZPSUQNCj4gPiArICAp DQo+ID4gK3sNCj4gPiArICBVSU5UNjQgIEJhdWRSYXRlOw0KPiA+ICsgIFVJTlQzMiAgQmF1ZERp dmlzb3I7DQo+ID4gKyAgVUlOVE4gICBVYXJ0QmFzZTsNCj4gPiArDQo+ID4gKyAgVWFydEJhc2Ug PSAoVUlOVE4pUGNkR2V0NjQgKFBjZFNlcmlhbFJlZ2lzdGVyQmFzZSk7ICBCYXVkUmF0ZSA9DQo+ ID4gKyAoVUlOVE4pUGNkR2V0NjQgKFBjZFVhcnREZWZhdWx0QmF1ZFJhdGUpOw0KPiA+ICsNCj4g PiArICBCYXVkRGl2aXNvciA9IENhbGN1bGF0ZUJhdWREaXZpc29yKEJhdWRSYXRlKTsNCj4gPiAr DQo+ID4gKyAgd2hpbGUgKCEoTW1pb1JlYWQ4KFVhcnRCYXNlICsgVUxTUikgJiBEVUFSVF9MU1Jf VEVNVCkpOw0KPiA+ICsNCj4gPiArICAvLw0KPiA+ICsgIC8vIEVuYWJsZSByZWNlaXZlZCBkYXRh IGF2YWlsYWJsZSBpbnRlcnJ1cHQsIHNldHVwIGRhdGEgZm9ybWF0LCAgLy8NCj4gPiArIHNldHVw IGJhdWQgZGl2aXNvciAgLy8gIE1taW9Xcml0ZTgoVWFydEJhc2UgKyBVSUVSLCAweDEpOw0KPiA+ ICsgTW1pb1dyaXRlOChVYXJ0QmFzZSArIFVMQ1IsIERVQVJUX0xDUl9CS1NFIHwgRFVBUlRfTENS VkFMKTsNCj4gPiArIE1taW9Xcml0ZTgoVWFydEJhc2UgKyBVRExCLCAwKTsgIE1taW9Xcml0ZTgo VWFydEJhc2UgKyBVRE1CLCAwKTsNCj4gPiArIE1taW9Xcml0ZTgoVWFydEJhc2UgKyBVTENSLCBE VUFSVF9MQ1JWQUwpOyAgTW1pb1dyaXRlOChVYXJ0QmFzZQ0KPiArDQo+ID4gKyBVTUNSLCBEVUFS VF9NQ1JWQUwpOyAgTW1pb1dyaXRlOChVYXJ0QmFzZSArIFVGQ1IsDQo+IERVQVJUX0ZDUlZBTCk7 DQo+ID4gKyBNbWlvV3JpdGU4KFVhcnRCYXNlICsgVUxDUiwgRFVBUlRfTENSX0JLU0UgfCBEVUFS VF9MQ1JWQUwpOw0KPiA+ICsgTW1pb1dyaXRlOChVYXJ0QmFzZSArIFVETEIsIEJhdWREaXZpc29y ICYgMHhmZik7DQo+ID4gKyBNbWlvV3JpdGU4KFVhcnRCYXNlICsgVURNQiwgKEJhdWREaXZpc29y ID4+IDgpICYgMHhmZik7DQo+ID4gKyBNbWlvV3JpdGU4KFVhcnRCYXNlICsgVUxDUiwgRFVBUlRf TENSVkFMKTsNCj4gPiArDQo+ID4gKyAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+ICt9DQo+ID4g Kw0KPiA+ICsvKioNCj4gPiArICBXcml0ZSBkYXRhIHRvIHNlcmlhbCBkZXZpY2UuDQo+ID4gKw0K PiA+ICsgIEBwYXJhbSAgQnVmZmVyICAgICAgICAgICBQb2ludCBvZiBkYXRhIGJ1ZmZlciB3aGlj aCBuZWVkIHRvIGJlIHdyaXR0ZW4uDQo+ID4gKyAgQHBhcmFtICBOdW1iZXJPZkJ5dGVzICAgIE51 bWJlciBvZiBvdXRwdXQgYnl0ZXMgd2hpY2ggYXJlIGNhY2hlZCBpbg0KPiBCdWZmZXIuDQo+ID4g Kw0KPiA+ICsgIEByZXR2YWwgMCAgICAgICAgICAgICAgICBXcml0ZSBkYXRhIGZhaWxlZC4NCj4g PiArICBAcmV0dmFsICEwICAgICAgICAgICAgICAgQWN0dWFsIG51bWJlciBvZiBieXRlcyB3cml0 dGVuIHRvIHNlcmlhbCBkZXZpY2UuDQo+ID4gKw0KPiA+ICsqKi8NCj4gPiArVUlOVE4NCj4gPiAr RUZJQVBJDQo+ID4gK1NlcmlhbFBvcnRXcml0ZSAoDQo+ID4gKyAgSU4gIFVJTlQ4ICAgICAqQnVm ZmVyLA0KPiA+ICsgIElOICBVSU5UTiAgICAgTnVtYmVyT2ZCeXRlcw0KPiA+ICsgICkNCj4gPiAr ew0KPiA+ICsgIFVJTlQ4ICAgKkZpbmFsOw0KPiA+ICsgIFVJTlROICAgVWFydEJhc2U7DQo+ID4g Kw0KPiA+ICsgIEZpbmFsID0gJkJ1ZmZlcltOdW1iZXJPZkJ5dGVzXTsNCj4gPiArICBVYXJ0QmFz ZSA9IChVSU5UTilQY2RHZXQ2NCAoUGNkU2VyaWFsUmVnaXN0ZXJCYXNlKTsNCj4gPiArDQo+ID4g KyAgd2hpbGUgKEJ1ZmZlciA8IEZpbmFsKSB7DQo+ID4gKyAgICB3aGlsZSAoKE1taW9SZWFkOChV YXJ0QmFzZSArIFVMU1IpICYgRFVBUlRfTFNSX1RIUkUpID09IDApOw0KPiA+ICsgICAgTW1pb1dy aXRlOChVYXJ0QmFzZSArIFVUSFIsICpCdWZmZXIrKyk7DQo+IA0KPiBTcGFjZSBiZWZvcmUgKCBb MnhdDQo+IA0KT0ssIHdpbGwgdXBkYXRlIGFsbCBwYXRjaGVzLg0KPiA+ICsgIH0NCj4gPiArDQo+ ID4gKyAgcmV0dXJuIE51bWJlck9mQnl0ZXM7DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qKg0KPiA+ ICsgIFJlYWQgZGF0YSBmcm9tIHNlcmlhbCBkZXZpY2UgYW5kIHNhdmUgdGhlIGRhdGEgaW4gYnVm ZmVyLg0KPiA+ICsNCj4gPiArICBAcGFyYW0gIEJ1ZmZlciAgICAgICAgICAgUG9pbnQgb2YgZGF0 YSBidWZmZXIgd2hpY2ggbmVlZCB0byBiZSB3cml0dGVuLg0KPiA+ICsgIEBwYXJhbSAgTnVtYmVy T2ZCeXRlcyAgICBOdW1iZXIgb2Ygb3V0cHV0IGJ5dGVzIHdoaWNoIGFyZSBjYWNoZWQgaW4NCj4g QnVmZmVyLg0KPiA+ICsNCj4gPiArICBAcmV0dmFsIDAgICAgICAgICAgICAgICAgUmVhZCBkYXRh IGZhaWxlZC4NCj4gPiArICBAcmV0dmFsICEwICAgICAgICAgICAgICAgQWN0dWFsIG51bWJlciBv ZiBieXRlcyByZWFkIGZyb20gc2VyaWFsIGRldmljZS4NCj4gPiArDQo+ID4gKyoqLw0KPiA+ICtV SU5UTg0KPiA+ICtFRklBUEkNCj4gPiArU2VyaWFsUG9ydFJlYWQgKA0KPiA+ICsgIE9VVCBVSU5U OCAgICAgKkJ1ZmZlciwNCj4gPiArICBJTiAgVUlOVE4gICAgIE51bWJlck9mQnl0ZXMNCj4gPiAr ICApDQo+ID4gK3sNCj4gPiArICBVSU5UTiAgIENvdW50Ow0KPiA+ICsgIFVJTlROICAgVWFydEJh c2U7DQo+ID4gKw0KPiA+ICsgIFVhcnRCYXNlID0gKFVJTlROKVBjZEdldDY0IChQY2RTZXJpYWxS ZWdpc3RlckJhc2UpOw0KPiA+ICsNCj4gPiArICBmb3IgKENvdW50ID0gMDsgQ291bnQgPCBOdW1i ZXJPZkJ5dGVzOyBDb3VudCsrLCBCdWZmZXIrKykgew0KPiA+ICsgICAgLyoNCj4gPiArICAgICAq IExvb3Agd2hpbGUgd2FpdGluZyBmb3IgYSBuZXcgY2hhcihzKSB0byBhcnJpdmUgaW4gdGhlDQo+ ID4gKyAgICAgKiBSeEZJRk8NCj4gPiArICAgICAqLw0KPiA+ICsgICAgd2hpbGUgKChNbWlvUmVh ZDgoVWFydEJhc2UgKyBVTFNSKSAmIERVQVJUX0xTUl9EUikgPT0gMCk7DQo+ID4gKw0KPiA+ICsg ICAgKkJ1ZmZlciA9IE1taW9SZWFkOChVYXJ0QmFzZSArIFVSQlIpOw0KPiANCj4gYW5kIGhlcmUN Cj4gDQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICByZXR1cm4gTnVtYmVyT2ZCeXRlczsNCj4gPiAr fQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAgQ2hlY2sgdG8gc2VlIGlmIGFueSBkYXRhIGlzIGF2 YWlsYWJsZSB0byBiZSByZWFkIGZyb20gdGhlIGRlYnVnIGRldmljZS4NCj4gPiArDQo+ID4gKyAg QHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICBBdCBsZWFzdCBvbmUgYnl0ZSBvZiBkYXRhIGlzIGF2 YWlsYWJsZSB0byBiZSByZWFkDQo+ID4gKyAgQHJldHZhbCBFRklfTk9UX1JFQURZICAgICBObyBk YXRhIGlzIGF2YWlsYWJsZSB0byBiZSByZWFkDQo+ID4gKyAgQHJldHZhbCBFRklfREVWSUNFX0VS Uk9SICBUaGUgc2VyaWFsIGRldmljZSBpcyBub3QgZnVuY3Rpb25pbmcNCj4gPiArIHByb3Blcmx5 DQo+ID4gKw0KPiA+ICsqKi8NCj4gPiArQk9PTEVBTg0KPiA+ICtFRklBUEkNCj4gPiArU2VyaWFs UG9ydFBvbGwgKA0KPiA+ICsgIFZPSUQNCj4gPiArICApDQo+ID4gK3sNCj4gPiArICBVSU5UTiAg IFVhcnRCYXNlOw0KPiA+ICsNCj4gPiArICBVYXJ0QmFzZSA9IChVSU5UTilQY2RHZXQ2NCAoUGNk U2VyaWFsUmVnaXN0ZXJCYXNlKTsNCj4gPiArDQo+ID4gKyAgcmV0dXJuICgoTW1pb1JlYWQ4IChV YXJ0QmFzZSArIFVMU1IpICYgRFVBUlRfTFNSX0RSKSAhPSAwKTsgfQ0KPiA+ICsNCj4gPiArLyoq DQo+ID4gKyAgU2V0IG5ldyBhdHRyaWJ1dGVzIHRvIExTMTA0M2EuDQo+ID4gKw0KPiA+ICsgIEBw YXJhbSAgQmF1ZFJhdGUgICAgICAgICAgICAgICAgVGhlIGJhdWQgcmF0ZSBvZiB0aGUgc2VyaWFs IGRldmljZS4gSWYgdGhlIGJhdWQNCj4gcmF0ZSBpcyBub3Qgc3VwcG9ydGVkLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHNwZWVkIHdpbGwgYmUgcmVkdWNlZCBk b3duIHRvIHRoZSBuZWFyZXN0DQo+IHN1cHBvcnRlZCBvbmUgYW5kIHRoZQ0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGUncyB2YWx1ZSB3aWxsIGJlIHVwZGF0 ZWQgYWNjb3JkaW5nbHkuDQo+ID4gKyAgQHBhcmFtICBSZWNlaXZlRmlmb0RlcHRoICAgICAgICBU aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdGhlIGRldmljZSB3aWxsDQo+IGJ1ZmZlciBvbiBpbnB1 dC4gSWYgdGhlIHNwZWNpZmllZA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmFsdWUgaXMgbm90IHN1cHBvcnRlZCwgdGhlIHZhcmlhYmxlJ3MgdmFsdWUgd2lsbCBiZQ0K PiByZWR1Y2VkIGRvd24gdG8gdGhlDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuZWFyZXN0IHN1cHBvcnRlZCBvbmUuDQo+ID4gKyAgQHBhcmFtICBUaW1lb3V0ICAgICAg ICAgICAgICAgICBJZiBhcHBsaWNhYmxlLCB0aGUgbnVtYmVyIG9mIG1pY3Jvc2Vjb25kcyB0aGUN Cj4gZGV2aWNlIHdpbGwgd2FpdA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYmVmb3JlIHRpbWluZyBvdXQgYSBSZWFkIG9yIGEgV3JpdGUgb3BlcmF0aW9uLg0KPiA+ICsg IEBwYXJhbSAgUGFyaXR5ICAgICAgICAgICAgICAgICAgSWYgYXBwbGljYWJsZSwgdGhpcyBpcyB0 aGUgRUZJX1BBUklUWV9UWVBFIHRoYXQgaXMNCj4gY29tcHV0ZWQgb3IgY2hlY2tlZA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgZWFjaCBjaGFyYWN0ZXIgaXMgdHJh bnNtaXR0ZWQgb3IgcmVjZWl2ZWQuIElmIHRoZSBkZXZpY2UNCj4gZG9lcyBub3QNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnQgcGFyaXR5LCB0aGUgdmFsdWUg aXMgdGhlIGRlZmF1bHQgcGFyaXR5IHZhbHVlLg0KPiA+ICsgIEBwYXJhbSAgRGF0YUJpdHMgICAg ICAgICAgICAgICAgVGhlIG51bWJlciBvZiBkYXRhIGJpdHMgaW4gZWFjaCBjaGFyYWN0ZXINCj4g PiArICBAcGFyYW0gIFN0b3BCaXRzICAgICAgICAgICAgICAgIElmIGFwcGxpY2FibGUsIHRoZSBF RklfU1RPUF9CSVRTX1RZUEUgbnVtYmVyDQo+IG9mIHN0b3AgYml0cyBwZXIgY2hhcmFjdGVyLg0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgdGhlIGRldmljZSBkb2Vz IG5vdCBzdXBwb3J0IHN0b3AgYml0cywgdGhlIHZhbHVlIGlzIHRoZQ0KPiBkZWZhdWx0IHN0b3AN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdCB2YWx1ZS4NCj4gPiAr DQo+ID4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgICBBbGwgYXR0cmlidXRlcyB3 ZXJlIHNldCBjb3JyZWN0bHkgb24gdGhlIHNlcmlhbA0KPiBkZXZpY2UuDQo+ID4gKw0KPiA+ICsq Ki8NCj4gPiArRUZJX1NUQVRVUw0KPiA+ICtFRklBUEkNCj4gPiArU2VyaWFsUG9ydFNldEF0dHJp YnV0ZXMgKA0KPiA+ICsgIElOICBPVVQgIFVJTlQ2NCAgICAgICAgICAgICAgKkJhdWRSYXRlLA0K PiA+ICsgIElOICBPVVQgIFVJTlQzMiAgICAgICAgICAgICAgKlJlY2VpdmVGaWZvRGVwdGgsDQo+ ID4gKyAgSU4gIE9VVCAgVUlOVDMyICAgICAgICAgICAgICAqVGltZW91dCwNCj4gPiArICBJTiAg T1VUICBFRklfUEFSSVRZX1RZUEUgICAgICpQYXJpdHksDQo+ID4gKyAgSU4gIE9VVCAgVUlOVDgg ICAgICAgICAgICAgICAqRGF0YUJpdHMsDQo+ID4gKyAgSU4gIE9VVCAgRUZJX1NUT1BfQklUU19U WVBFICAqU3RvcEJpdHMNCj4gPiArICApDQo+ID4gK3sNCj4gPiArICByZXR1cm4gU2VyaWFsUG9y dEluaXRpYWxpemUgKCk7DQo+ID4gK30NCj4gPiBkaWZmIC0tZ2l0IGEvUGxhdGZvcm0vTlhQL0xp YnJhcnkvRFVhcnRQb3J0TGliL0RVYXJ0UG9ydExpYi5pbmYNCj4gPiBiL1BsYXRmb3JtL05YUC9M aWJyYXJ5L0RVYXJ0UG9ydExpYi9EVWFydFBvcnRMaWIuaW5mDQo+ID4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwLi5lYWQ4YjQwDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ ICsrKyBiL1BsYXRmb3JtL05YUC9MaWJyYXJ5L0RVYXJ0UG9ydExpYi9EVWFydFBvcnRMaWIuaW5m DQo+ID4gQEAgLTAsMCArMSwzOSBAQA0KPiA+ICsjICBEVWFydFBvcnRMaWIuaW5mDQo+ID4gKyMN Cj4gPiArIyAgQ29tcG9uZW50IGRlc2NyaXB0aW9uIGZpbGUgZm9yIERVYXJ0UG9ydExpYiBtb2R1 bGUgIyAjICBDb3B5cmlnaHQNCj4gPiArKGMpIDIwMTMsIEZyZWVzY2FsZSBMdGQuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuDQo+ID4gKyMgIENvcHlyaWdodCAyMDE3IE5YUA0KPiA+ICsjDQo+ID4gKyMg IFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgIyAgYXJlIGxpY2Vu c2VkIGFuZA0KPiA+ICttYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlv bnMgb2YgdGhlIEJTRCBMaWNlbnNlICMNCj4gPiArd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0 cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlDQo+ID4gK21heSBiZSBmb3Vu ZCBhdCAjDQo+ID4NCj4gK2h0dHBzOi8vZW1lYTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxv b2suY29tLz91cmw9aHR0cCUzQSUyRiUyRm9wDQo+IGUNCj4gPiArbnNvdXJjZS5vcmclMkZsaWNl bnNlcyUyRmJzZC0NCj4gbGljZW5zZS5waHAmZGF0YT0wMiU3QzAxJTdDbWVlbmFrc2hpLmFnZw0K PiA+DQo+ICthcndhbCU0MG54cC5jb20lN0MxY2E5YmY4YjhhMmU0N2FjMmI0NjA4ZDUyYTkyMWJk YyU3QzY4NmVhMWQzYmMNCj4gMmI0YzZmDQo+ID4NCj4gK2E5MmNkOTljNWMzMDE2MzUlN0MwJTdD MCU3QzYzNjQ2MTcyOTM5MzA3NjE5NyZzZGF0YT1IU0JiVTJwQ2YlDQo+IDJGMU1BUHINCj4gPiAr NjlXVnp6eG42SHd5Y3ZPUWV4eEdodyUyRndnNEdVJTNEJnJlc2VydmVkPTANCj4gPiArIw0KPiA+ ICsjICBUSEUgUFJPR1JBTSBJUyBESVNUUklCVVRFRCBVTkRFUiBUSEUgQlNEIExJQ0VOU0UgT04g QU4gIkFTIElTIg0KPiA+ICtCQVNJUywgIyAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VO VEFUSU9OUyBPRiBBTlkgS0lORCwNCj4gRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRC4NCj4gPiAr Iw0KPiA+ICsjDQo+ID4gKw0KPiA+ICtbRGVmaW5lc10NCj4gPiArICBJTkZfVkVSU0lPTiAgICAg ICAgICAgICAgICAgICAgPSAweDAwMDEwMDA1DQo+IA0KPiAweDAwMDEwMDFBDQo+IA0KV2lsbCBj b3JyZWN0IHRoaXMuDQoNCj4gPiArICBCQVNFX05BTUUgICAgICAgICAgICAgICAgICAgICAgPSBE VWFydFBvcnRMaWINCj4gPiArICBGSUxFX0dVSUQgICAgICAgICAgICAgICAgICAgICAgPSA4ZWNl ZmM4Zi1hMmM0LTQwOTEtYjgwZi0yMGY3YWViMDU2N2YNCj4gDQo+IFBsZWFzZSBkb24ndCByZXVz ZSB0aGUgR1VJRCBvZiBQTDAxMVNlcmlhbFBvcnRMaWIuaW5mDQo+IA0KV2lsbCByZWdlbmVyYXRl IGFsbCBHVUlEUy4NCg0KPiA+ICsgIE1PRFVMRV9UWVBFICAgICAgICAgICAgICAgICAgICA9IEJB U0UNCj4gPiArICBWRVJTSU9OX1NUUklORyAgICAgICAgICAgICAgICAgPSAxLjANCj4gPiArICBM SUJSQVJZX0NMQVNTICAgICAgICAgICAgICAgICAgPSBTZXJpYWxQb3J0TGliDQo+ID4gKw0KPiA+ ICtbU291cmNlcy5jb21tb25dDQo+ID4gKyAgRFVhcnRQb3J0TGliLmMNCj4gPiArDQo+ID4gK1tM aWJyYXJ5Q2xhc3Nlc10NCj4gPiArICBQY2RMaWINCj4gPiArICBTb2NMaWINCj4gDQo+IFBsZWFz ZSByZW9yZGVyIHRoaXMgcGF0Y2ggYWZ0ZXIgdGhlIHBhdGNoIHRoYXQgaW50cm9kdWNlcyBTb2NM aWINCj4gDQpZZXMsIG15IGZhdWx0IGhlcmUNCg0KPiA+ICsNCj4gPiArW1BhY2thZ2VzXQ0KPiA+ ICsgIE1kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQo+ID4gKyAgTWRlUGtnL01kZVBrZy5k ZWMNCj4gPiArDQo+ID4gK1tQY2RdDQo+ID4gKyAgZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3BhY2VH dWlkLlBjZFNlcmlhbFJlZ2lzdGVyQmFzZQ0KPiA+ICsgIGdFZmlNZGVQa2dUb2tlblNwYWNlR3Vp ZC5QY2RVYXJ0RGVmYXVsdEJhdWRSYXRlDQo+ID4gLS0NCj4gPiAxLjkuMQ0KPiA+DQo=