From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (EUR04-HE1-obe.outbound.protection.outlook.com [40.107.7.81]) by mx.groups.io with SMTP id smtpd.web08.1156.1634150615295321176 for ; Wed, 13 Oct 2021 11:43:36 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=X+Li/XKI; spf=pass (domain: arm.com, ip: 40.107.7.81, mailfrom: samer.el-haj-mahmoud@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BfxrQlrW2OVwSE0jXIo4zoqRRpfAABVm2irSkupKoKE=; b=X+Li/XKITlUovD1qjJsw5iEesyB/nYJfB1z1frLwtPh/6Xnf4TdGj0rzYM1Y0an4YJbK4ZmvZeJa0xmAj+lhtmGk3KVDPeZqGexzwuWVAIWdzhRSljqb9wbOqlTauzv0v+FV26BRva+CoLIA5bDAGBXK8T1cj0/FxIE4DpaKo6w= Received: from AM6P193CA0055.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:8e::32) by AM6PR08MB3784.eurprd08.prod.outlook.com (2603:10a6:20b:85::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.15; Wed, 13 Oct 2021 18:43:30 +0000 Received: from AM5EUR03FT024.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:8e:cafe::de) by AM6P193CA0055.outlook.office365.com (2603:10a6:209:8e::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.14 via Frontend Transport; Wed, 13 Oct 2021 18:43:30 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT024.mail.protection.outlook.com (10.152.16.175) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4608.15 via Frontend Transport; Wed, 13 Oct 2021 18:43:30 +0000 Received: ("Tessian outbound a8bfe25d7364:v103"); Wed, 13 Oct 2021 18:43:29 +0000 X-CR-MTA-TID: 64aa7808 Received: from a914d58f9f84.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 26E4900B-5521-426D-AB76-3D4BFDD0FB94.1; Wed, 13 Oct 2021 18:43:24 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id a914d58f9f84.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 13 Oct 2021 18:43:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=m75gm9Sol6I2wUUgCWPbEBLuh5b0+7Ig71LwVh3OMwUHx5tU1F49zNE2AJY1zA7sevwpfGW+X90E2jhrFqDVIDRtK3COevaXaNNx/wv3VRs8xreAg+XyT/iQzMTj0tDYPGVuAcaklEEvY3WGvrO3aS8tFxa85UBcxgKyPacqxrpoeKwlyjlhv+29ElGt/N6cjigJpmzw24qDmgYXCMA0YHXKIx+IYY2nyCGp5ae8JFyhTN0TWhX9uFGi/OaHXehuN5seNTNgFwuS/eyTVe1jBLFUmgvMU7XaPBh4lKxDE6FOdEnos7/lX4P3h56M57F3qtmahumWUPGr37TkvSQUiQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BfxrQlrW2OVwSE0jXIo4zoqRRpfAABVm2irSkupKoKE=; b=CDIdlLkCqTe8YWDPdpKB9W18vMBrmQwq8+QmouGnTDmEagV+Ujs9AEI3HMG51g9dd3ov9tOaFtFK+KwzUbnNScLocyM229ea8bqmZ7Jbs7rdFqM01glgn58TAA+9ZYBlIfFUmAaoCkSjCbYUGbAL5BUcSBGHkU8i5GT2b2PSaD9GFvZciqb1FPmhq+s0VNWNgE2K9FysVo46+ed5zFgVOD/hcj8UA8sBI9WnvSHC6etBs4TTfZr+GxEqP1+GapKylap+ZjcusSapaXlhZhXUGtYrhRNk7d7NmGrMUA8J9UGyuivZkKarOBVsUyIhF1/JzB2gu/ku0hTjTESUjN+8CQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BfxrQlrW2OVwSE0jXIo4zoqRRpfAABVm2irSkupKoKE=; b=X+Li/XKITlUovD1qjJsw5iEesyB/nYJfB1z1frLwtPh/6Xnf4TdGj0rzYM1Y0an4YJbK4ZmvZeJa0xmAj+lhtmGk3KVDPeZqGexzwuWVAIWdzhRSljqb9wbOqlTauzv0v+FV26BRva+CoLIA5bDAGBXK8T1cj0/FxIE4DpaKo6w= Received: from VI1PR08MB5312.eurprd08.prod.outlook.com (2603:10a6:803:139::24) by VI1PR0802MB2286.eurprd08.prod.outlook.com (2603:10a6:800:9e::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.25; Wed, 13 Oct 2021 18:43:21 +0000 Received: from VI1PR08MB5312.eurprd08.prod.outlook.com ([fe80::4110:f4ce:6049:b378]) by VI1PR08MB5312.eurprd08.prod.outlook.com ([fe80::4110:f4ce:6049:b378%7]) with mapi id 15.20.4587.030; Wed, 13 Oct 2021 18:43:21 +0000 From: "Samer El-Haj-Mahmoud" To: "devel@edk2.groups.io" , "ardb@kernel.org" , Nhi Pham CC: "patches@amperecomputing.com" , Leif Lindholm , Ard Biesheuvel , Jeff Booher-Kaeding , Samer El-Haj-Mahmoud Subject: Re: [edk2-devel] [PATCH v2 1/1] ArmPkg: Implement PlatformBootManagerLib for LinuxBoot Thread-Topic: [edk2-devel] [PATCH v2 1/1] ArmPkg: Implement PlatformBootManagerLib for LinuxBoot Thread-Index: AQHXo5oj4Et3xefYcUyuek0MDimKUKuwCF4AgCF0aJA= Date: Wed, 13 Oct 2021 18:43:21 +0000 Message-ID: References: <20210907033857.18848-1-nhi@os.amperecomputing.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 09FAD1D95FE6ED4C93BCA7762DF1E8E0.0 x-checkrecipientchecked: true Authentication-Results-Original: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: afd26a42-8891-46e5-7e9f-08d98e795a13 x-ms-traffictypediagnostic: VI1PR0802MB2286:|AM6PR08MB3784: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: txEga/ID4hFmpibS6rfvFqOqoGxIeHOju6mpq3C3GiZv8VJaLFVadnxjSuPRsdFZ3VCWTbj/DK49jCQTASobJMRSlw5zN0V1giNpXU4t/9E8Wh534LJLiVVakzPOUSVYJWi+1B7S0KASCbeH/p37tzheBj6oxFqmx2O+6kMuIwiakFSBgGIbd6LrUAjgsm4KUy8vfQrWH9UBN/JFHES29aMGvo0JPMVNZkH1leVSBsvr0H/UcSm9bauicoNuKukGjUPazv5oG10AJ9dfphKVchINUyEiXrfGp4eos2DmABayWrDEjRduiZ4WmdhDLZB4As58Y1Di3BmhgfNt93jCkX3wnhDOyu17SigBsok1RsEZp80xUpZA8PQJxpUbe/iQMH+2j0DZx0W3vcHZ2HVEcHAyUAL2KhABcfaCOIgAoVONVMT7CPia83KNy5zyjXJEEIFjNiwz1NLR9N2Qz18UwTdw4mf9Yyu1mdiuuAULiIouVtYwAWv+ggOAUpgOFQ1nbwFyaS+RpP1Oiw0dHnvLkdIa+UsUPjqCXuV/kyKRAkijfh4Y20EWaeKXV7bi/EonGMmmIOsiisqSOO4L9X2rp4IXVZOifOLy9T8WU1L5OeX5ZDo5UdYiwPACMbuY+wGWIKCMz7pJv+XmR8Qt2Nu4m4lsSqT5i8+5tgraiaJdMCGrfxiae89299GIYhttgbc379N2M9SlMuqoICuTECYt1I9UPI5sHXO8Mf04JbVskiVhpltaMElr+qCVuX0PST4mY98Pix3i7REVjEDABTo0SiOnsg6cJd7svEB3IWB0XoMyyFrAxiOWrbwvFjMChC+Z2ojf4o/B5hsDBPewh/9nhg== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR08MB5312.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(86362001)(8936002)(45080400002)(33656002)(186003)(508600001)(66556008)(6506007)(54906003)(66446008)(52536014)(2906002)(71200400001)(64756008)(53546011)(966005)(122000001)(26005)(38100700002)(110136005)(4326008)(7696005)(66946007)(9686003)(30864003)(83380400001)(38070700005)(55016002)(76116006)(66476007)(8676002)(316002)(5660300002);DIR:OUT;SFP:1101; MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2286 Original-Authentication-Results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=arm.com; Return-Path: Samer.El-Haj-Mahmoud@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT024.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: b9cfbd5d-bf56-4a90-e90a-08d98e7954be X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +Q6aGs1tbNYaSBjFNGat3xWpxkPkGXq+hvmZORdSut3rTflAMk9sdJTaCM8XQvBsd+52Nans0jkAsT/CEqGD/9eU0D6eGx/P+26O/wXa2wYhF21Qaino+o6uokf9djK73Oo0kb7NgBtNh4pdwOySZWY341ndfuTcqWB9wEOV6iDpG67fmxj+SqkBRpxat2hpEw/g4Sz4mkhvWFXXC0f26I22SwD4fu6t6eALH0dQb8nhpJdsTuIkqinxDKmZtSbjGh+LcHVtrGkoZq4fmjlgLyWE0YZs96Tbno9jWZIzlhOOxu6RXPYrSRePlOZ0P4jilApSjgNvTWba/1uoC2+4ZZ3aXq/qODpqvGJlZ92i9R5hTXJe0wW5rEF+bickAUg75QtqsrS3j5lRqzNfyTobB+T3HHj4KzQbMPkB+hYx75Tp4OBFAvUOeThLvagNSMc8wymHL8gNK9a6RBaEBh9LhmYQV9dzC9MmTMAlvsNoRrIoP1DtwgWw1kN/VHCwmnaxjayTOVLDxZ8G7CMD2OrW1BF0W3kOURm5y2rvb7L55P28liHO2EsL6Dc/Q39C4f4AMaNrA+cNcDQCaEHcYfnmOGbpW0UZkZw9fE0IzBht9ST2XuP0CwO7TwHngwtdnjUq3vJodcqe4KEjq2X2ow64y9HQZonaH4svXCKIppAREvWXgxFkJCu3RGZW3nvTzlUkHMbXdapDq1o22hiGP+gqGUVBAoCxa7zwopqI863xVF+FynsxyzBQiiKmbov8POYD4MBxroEVIiHXOwNRf4gkar+NiIQU687MfAW2LTWltN/5AFTZL1L9vnpwaZwYlzfnzjXmxiUyXVhflAEMOjJLQQ== X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(70586007)(6506007)(5660300002)(81166007)(53546011)(966005)(8676002)(45080400002)(186003)(82310400003)(9686003)(30864003)(336012)(36860700001)(7696005)(33656002)(55016002)(4326008)(508600001)(2906002)(86362001)(316002)(83380400001)(47076005)(54906003)(52536014)(26005)(70206006)(110136005)(356005)(8936002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Oct 2021 18:43:30.2310 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: afd26a42-8891-46e5-7e9f-08d98e795a13 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT024.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3784 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWNrZC1ieTogIFNhbWVyIEVsLUhhai1NYWhtb3VkIDxTYW1lci5FbC1IYWotTWFobW91ZEBhcm0u Y29tPg0KDQpBbnkgdXBkYXRlIG9uIGdldHRpbmcgdGhpcyByZXZpZXdlZC9tZXJnZWQ/IFdlIGhh dmUgZG93bnN0cmVhbSBwbGF0Zm9ybXMgdGhhdCBkZXBlbmQgb24gdGhpcyBhbmQgd291bGQgbGlr ZSB0byBhdm9pZCBkdXBsaWNhdGlvbiBvZiBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkgaW4gcGxhdGZv cm0gY29kZS4NCg0KVGhhbmtzIQ0KLS1TYW1lcg0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlv PiBPbiBCZWhhbGYgT2YgQXJkDQo+IEJpZXNoZXV2ZWwgdmlhIGdyb3Vwcy5pbw0KPiBTZW50OiBX ZWRuZXNkYXksIFNlcHRlbWJlciAyMiwgMjAyMSA3OjQ5IEFNDQo+IFRvOiBOaGkgUGhhbSA8bmhp QG9zLmFtcGVyZWNvbXB1dGluZy5jb20+DQo+IENjOiBlZGsyLWRldmVsLWdyb3Vwcy1pbyA8ZGV2 ZWxAZWRrMi5ncm91cHMuaW8+Ow0KPiBwYXRjaGVzQGFtcGVyZWNvbXB1dGluZy5jb207IExlaWYg TGluZGhvbG0gPGxlaWZAbnV2aWFpbmMuY29tPjsgQXJkDQo+IEJpZXNoZXV2ZWwgPGFyZGIrdGlh bm9jb3JlQGtlcm5lbC5vcmc+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYy IDEvMV0gQXJtUGtnOiBJbXBsZW1lbnQNCj4gUGxhdGZvcm1Cb290TWFuYWdlckxpYiBmb3IgTGlu dXhCb290DQo+DQo+IE9uIFR1ZSwgNyBTZXB0IDIwMjEgYXQgMDU6NDAsIE5oaSBQaGFtIDxuaGlA b3MuYW1wZXJlY29tcHV0aW5nLmNvbT4NCj4gd3JvdGU6DQo+ID4NCj4gPiBMaW51eEJvb3QgaXMg YSBmaXJtd2FyZSB0aGF0IHJlcGxhY2VzIHNwZWNpZmljIGZpcm13YXJlIGZ1bmN0aW9uYWxpdHkN Cj4gPiBsaWtlIHRoZSBVRUZJIERYRSBwaGFzZSB3aXRoIGEgTGludXgga2VybmVsIGFuZCBydW50 aW1lLiBJdCBpcyBidWlsdC1pbg0KPiA+IFVFRkkgaW1hZ2UgbGlrZSBhbiBhcHBsaWNhdGlvbiwg d2hpY2ggaXMgZXhlY3V0ZWQgYXQgdGhlIGVuZCBvZiBEWEUNCj4gPiBwaGFzZS4NCj4gPg0KPiA+ IFRvIGFjaGlldmUgdGhlIExpbnV4Qm9vdCBib290IGZsb3cgIlNFQy0+UEVJLT5EWEUtPkJEUy0+ TGludXhCb290IiwNCj4gPiB0b2RheSB3ZSB1c2UgdGhlIGNvbW1vbiB3ZWxsLWtub3duIEdVSUQg b2YgVUVGSSBTaGVsbCBmb3IgTGludXhCb290DQo+ID4gcGF5bG9hZCwgc28gTGludXhCb290IGRl dmVsb3BlcnMgY2FuIGVmZm9ydGxlc3NseSBmaW5kIHRoZSBVRUZJIFNoZWxsDQo+ID4gQXBwbGlj YXRpb24gYW5kIHJlcGxhY2UgaXQgd2l0aCB0aGUgTGludXhCb290IHBheWxvYWQgd2l0aG91dA0K PiA+IHJlY29tcGlsaW5nIHBsYXRmb3JtIEVESzIgKFRoZXJlIG1pZ2h0IGJlIGFuIGlzc3VlIHdp dGggYSBmZXcgc3lzdGVtcw0KPiA+IHRoYXQgZG9uJ3QgaGF2ZSBhIFVFRkkgU2hlbGwpLiBBbHNv LCB3ZSBoYXZlIGEgaGFyZCByZXF1aXJlbWVudCB0byBmb3JjZQ0KPiA+IHRoZSBCRFMgdG8gYm9v dCBpbnRvIHRoZSBMaW51eEJvb3QgYXMgaXQgaXMgZXNzZW50aWFsbHkgcmVxdWlyZWQgdGhhdA0K PiA+IG9ubHkgdGhlIExpbnV4Qm9vdCBib290IG9wdGlvbiBpcyBwZXJtaXNzaWJsZSBhbmQgVUVG SSBpcyBhbg0KPiA+IGludGVybWVkaWF0ZSBib290c3RyYXAgcGhhc2UuIENvbnNpZGVyaW5nIGFs bCB0aGUgYWJvdmUsIGl0IGlzDQo+ID4gcmVhc29uYWJsZSB0byBqdXN0IGhhdmUgYSBuZXcgR1VJ RCBmb3IgTGludXhCb290IGFuZCByZXF1aXJlIGEgTGludXhCb290DQo+ID4gc3BlY2lmaWMgQkRT IGltcGxlbWVudGF0aW9uLiBJbiBhZGRpdGlvbiwgd2l0aCBtYWtpbmcgdGhlIEJEUw0KPiA+IGlt cGxlbWVudGF0aW9uIHNpbXBsZXIsIHdlIGNhbiByZWR1Y2UgbWFueSBEWEUgZHJpdmVycyB3aGlj aCB3ZSB0aGluayBpdA0KPiA+IGlzIG5vdCBuZWNlc3NhcnkgZm9yIExpbnV4Qm9vdCBib290aW5n Lg0KPiA+DQo+ID4gVGhpcyBwYXRjaCBhZGRzIGEgbmV3IFBsYXRmb3JtQm9vdE1hbmFnZXJMaWIg aW1wbGVtZW50YXRpb24gd2hpY2gNCj4gPiByZWdpc3RlcnMgb25seSB0aGUgZ0FybVRva2VuU3Bh Y2VHdWlkLlBjZExpbnV4Qm9vdEZpbGVHdWlkIGZvcg0KPiBMaW51eEJvb3QNCj4gPiBwYXlsb2Fk IGFzIGFuIGFjdGl2ZSBib290IG9wdGlvbi4gSXQgYWxsb3dzIEJEUyB0byBqdW1wIHRvIHRoZSBM aW51eEJvb3QNCj4gPiBxdWlja2x5IGJ5IHNraXBwaW5nIHRoZSBVaUFwcCBhbmQgVUVGSSBTaGVs bC4NCj4gPg0KPiA+IFRoZSBQbGF0Zm9ybUJvb3RNYW5hZ2VyTGliIGxpYnJhcnkgZGVyaXZlZCBm cm9tDQo+ID4gQXJtUGtnL0xpYnJhcnkvUGxhdGZvcm1Cb290TWFuYWdlckxpYi4NCj4gPg0KPiA+ IENjOiBMZWlmIExpbmRob2xtIDxsZWlmQG51dmlhaW5jLmNvbT4NCj4gPiBDYzogQXJkIEJpZXNo ZXV2ZWwgPGFyZGIrdGlhbm9jb3JlQGtlcm5lbC5vcmc+DQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5 OiBOaGkgUGhhbSA8bmhpQG9zLmFtcGVyZWNvbXB1dGluZy5jb20+DQo+DQo+IEFja2VkLWJ5OiBB cmQgQmllc2hldXZlbCA8YXJkYkBrZXJuZWwub3JnPg0KPg0KPiA+IC0tLQ0KPiA+ICBBcm1Qa2cv QXJtUGtnLmRlYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDggKw0KPiA+ICBBcm1Qa2cvQXJtUGtnLmRzYyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKw0KPiA+ICBBcm1Qa2cvTGlicmFyeS9M aW51eEJvb3RCb290TWFuYWdlckxpYi9MaW51eEJvb3RCb290TWFuYWdlckxpYi5pbmYNCj4gfCAg NTggKysrKysrKw0KPiA+ICBBcm1Qa2cvTGlicmFyeS9MaW51eEJvb3RCb290TWFuYWdlckxpYi9M aW51eEJvb3RCbS5jICAgICAgICAgICAgICAgfCAxNzgNCj4gKysrKysrKysrKysrKysrKysrKysN Cj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAyNDYgaW5zZXJ0aW9ucygrKQ0KPiA+DQo+ID4gZGlmZiAt LWdpdCBhL0FybVBrZy9Bcm1Qa2cuZGVjIGIvQXJtUGtnL0FybVBrZy5kZWMNCj4gPiBpbmRleCAy MTRiMmY1ODkyMTcuLmY2OGU2ZWUwMDg2MCAxMDA2NDQNCj4gPiAtLS0gYS9Bcm1Qa2cvQXJtUGtn LmRlYw0KPiA+ICsrKyBiL0FybVBrZy9Bcm1Qa2cuZGVjDQo+ID4gQEAgLTMsNiArMyw3IEBADQo+ ID4gICMNCj4gPiAgIyBDb3B5cmlnaHQgKGMpIDIwMDkgLSAyMDEwLCBBcHBsZSBJbmMuIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ICAjIENvcHlyaWdodCAoYykgMjAxMSAtIDIwMjEsIEFS TSBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiA+ICsjIENvcHlyaWdodCAoYykgMjAy MSwgQW1wZXJlIENvbXB1dGluZyBMTEMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQo+ID4gICMNCj4g PiAgIyAgICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ ICAjDQo+ID4gQEAgLTM4MiwzICszODMsMTAgQEAgW1BjZHNGaXhlZEF0QnVpbGQuY29tbW9uLA0K PiBQY2RzRHluYW1pYy5jb21tb25dDQo+ID4gICAgIw0KPiA+ICAgIGdBcm1Ub2tlblNwYWNlR3Vp ZC5QY2RQY2lCdXNNaW58MHgwfFVJTlQzMnwweDAwMDAwMDU5DQo+ID4gICAgZ0FybVRva2VuU3Bh Y2VHdWlkLlBjZFBjaUJ1c01heHwweDB8VUlOVDMyfDB4MDAwMDAwNUENCj4gPiArDQo+ID4gK1tQ Y2RzRHluYW1pY0V4XQ0KPiA+ICsgICMNCj4gPiArICAjIFRoaXMgZHluYW1pYyBQQ0QgaG9sZCB0 aGUgR1VJRCBvZiBhIGZpcm13YXJlIEZGUyB3aGljaCBjb250YWlucw0KPiA+ICsgICMgdGhlIExp bnV4Qm9vdCBwYXlsb2FkLg0KPiA+ICsgICMNCj4gPiArICBnQXJtVG9rZW5TcGFjZUd1aWQuUGNk TGludXhCb290RmlsZUd1aWR8ezB4MH18Vk9JRCp8MHgwMDAwMDA1Qw0KPiA+IGRpZmYgLS1naXQg YS9Bcm1Qa2cvQXJtUGtnLmRzYyBiL0FybVBrZy9Bcm1Qa2cuZHNjDQo+ID4gaW5kZXggOTI2OTg2 Y2Y3ZmJiLi5mZmIxYzI2MTg2MWUgMTAwNjQ0DQo+ID4gLS0tIGEvQXJtUGtnL0FybVBrZy5kc2MN Cj4gPiArKysgYi9Bcm1Qa2cvQXJtUGtnLmRzYw0KPiA+IEBAIC01LDYgKzUsNyBAQA0KPiA+ICAj IENvcHlyaWdodCAoYykgMjAxMSAtIDIwMjEsIEFybSBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLjxCUj4NCj4gPiAgIyBDb3B5cmlnaHQgKGMpIDIwMTYsIExpbmFybyBMdGQuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ICAjIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0 aW9uLjxCUj4NCj4gPiArIyBDb3B5cmlnaHQgKGMpIDIwMjEsIEFtcGVyZSBDb21wdXRpbmcgTExD LiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KPiA+ICAjDQo+ID4gICMgICAgU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPiAgIw0KPiA+IEBAIC0xNTAsNiArMTUx LDcgQEAgW0NvbXBvbmVudHMuY29tbW9uXQ0KPiA+DQo+IEFybVBrZy9MaWJyYXJ5L0FybVNtY1Bz Y2lSZXNldFN5c3RlbUxpYi9Bcm1TbWNQc2NpUmVzZXRTeXN0ZW1MaWIuaW5mDQo+ID4NCj4gQXJt UGtnL0xpYnJhcnkvUGVpU2VydmljZXNUYWJsZVBvaW50ZXJMaWIvUGVpU2VydmljZXNUYWJsZVBv aW50ZXJMaWIuaW5mDQo+ID4gICAgQXJtUGtnL0xpYnJhcnkvUGxhdGZvcm1Cb290TWFuYWdlckxp Yi9QbGF0Zm9ybUJvb3RNYW5hZ2VyTGliLmluZg0KPiA+ICsNCj4gQXJtUGtnL0xpYnJhcnkvTGlu dXhCb290Qm9vdE1hbmFnZXJMaWIvTGludXhCb290Qm9vdE1hbmFnZXJMaWIuaW5mDQo+ID4NCj4g PiAgICBBcm1Qa2cvRHJpdmVycy9Bcm1DcmFzaER1bXBEeGUvQXJtQ3Jhc2hEdW1wRHhlLmluZg0K PiA+ICAgIEFybVBrZy9Ecml2ZXJzL0FybVNjbWlEeGUvQXJtU2NtaUR4ZS5pbmYNCj4gPiBkaWZm IC0tZ2l0DQo+IGEvQXJtUGtnL0xpYnJhcnkvTGludXhCb290Qm9vdE1hbmFnZXJMaWIvTGludXhC b290Qm9vdE1hbmFnZXJMaWIuaW5mDQo+IGIvQXJtUGtnL0xpYnJhcnkvTGludXhCb290Qm9vdE1h bmFnZXJMaWIvTGludXhCb290Qm9vdE1hbmFnZXJMaWIuaW5mDQo+ID4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjEzOWI2MTcxOTkwYQ0KPiA+IC0tLSAvZGV2 L251bGwNCj4gPiArKysNCj4gYi9Bcm1Qa2cvTGlicmFyeS9MaW51eEJvb3RCb290TWFuYWdlckxp Yi9MaW51eEJvb3RCb290TWFuYWdlckxpYi5pbmYNCj4gPiBAQCAtMCwwICsxLDU4IEBADQo+ID4g KyMjIEBmaWxlDQo+ID4gKyMgIEltcGxlbWVudGF0aW9uIGZvciBQbGF0Zm9ybUJvb3RNYW5hZ2Vy TGliIGxpYnJhcnkgY2xhc3MgaW50ZXJmYWNlcy4NCj4gPiArIw0KPiA+ICsjICBDb3B5cmlnaHQg KEMpIDIwMTUtMjAxNiwgUmVkIEhhdCwgSW5jLg0KPiA+ICsjICBDb3B5cmlnaHQgKGMpIDIwMTQs IEFSTSBMdGQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ICsjICBDb3B5cmlnaHQgKGMp IDIwMDcgLSAyMDE0LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+ID4gKyMgIENvcHlyaWdodCAoYykgMjAxNiwgTGluYXJvIEx0ZC4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+ID4gKyMgIENvcHlyaWdodCAoYykgMjAyMCAtIDIwMjEsIEFtcGVyZSBDb21w dXRpbmcgTExDLiBBbGwgcmlnaHRzDQo+IHJlc2VydmVkLjxCUj4NCj4gPiArIw0KPiA+ICsjICBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiA+ICsjDQo+ID4g KyMjDQo+ID4gKw0KPiA+ICtbRGVmaW5lc10NCj4gPiArICBJTkZfVkVSU0lPTiAgICAgICAgICAg ICAgICAgICAgPSAweDAwMDEwMDFCDQo+ID4gKyAgQkFTRV9OQU1FICAgICAgICAgICAgICAgICAg ICAgID0gTGludXhCb290Qm9vdE1hbmFnZXJMaWINCj4gPiArICBGSUxFX0dVSUQgICAgICAgICAg ICAgICAgICAgICAgPSAxRkE5MTU0Ny1EQjIzLTRGNkEtOEFGOC0zQjk3ODJBN0Y5MTcNCj4gPiAr ICBNT0RVTEVfVFlQRSAgICAgICAgICAgICAgICAgICAgPSBEWEVfRFJJVkVSDQo+ID4gKyAgVkVS U0lPTl9TVFJJTkcgICAgICAgICAgICAgICAgID0gMS4wDQo+ID4gKyAgTElCUkFSWV9DTEFTUyAg ICAgICAgICAgICAgICAgID0gUGxhdGZvcm1Cb290TWFuYWdlckxpYnxEWEVfRFJJVkVSDQo+ID4g Kw0KPiA+ICsjDQo+ID4gKyMgVGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBpcyBmb3IgcmVmZXJl bmNlIG9ubHkgYW5kIG5vdCByZXF1aXJlZCBieSB0aGUNCj4gYnVpbGQgdG9vbHMuDQo+ID4gKyMN Cj4gPiArIyAgVkFMSURfQVJDSElURUNUVVJFUyAgICAgICAgICAgPSBBUk0gQUFSQ0g2NA0KPiA+ ICsjDQo+ID4gKw0KPiA+ICtbU291cmNlc10NCj4gPiArICBMaW51eEJvb3RCbS5jDQo+ID4gKw0K PiA+ICtbUGFja2FnZXNdDQo+ID4gKyAgQXJtUGtnL0FybVBrZy5kZWMNCj4gPiArICBNZGVNb2R1 bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0KPiA+ICsgIE1kZVBrZy9NZGVQa2cuZGVjDQo+ID4gKyAg U2hlbGxQa2cvU2hlbGxQa2cuZGVjDQo+ID4gKw0KPiA+ICtbTGlicmFyeUNsYXNzZXNdDQo+ID4g KyAgQmFzZUxpYg0KPiA+ICsgIEJhc2VNZW1vcnlMaWINCj4gPiArICBEZWJ1Z0xpYg0KPiA+ICsg IE1lbW9yeUFsbG9jYXRpb25MaWINCj4gPiArICBQY2RMaWINCj4gPiArICBQcmludExpYg0KPiA+ ICsgIFVlZmlCb290TWFuYWdlckxpYg0KPiA+ICsgIFVlZmlCb290U2VydmljZXNUYWJsZUxpYg0K PiA+ICsgIFVlZmlMaWINCj4gPiArICBVZWZpUnVudGltZVNlcnZpY2VzVGFibGVMaWINCj4gPiAr DQo+ID4gK1tQY2RdDQo+ID4gKyAgZ0FybVRva2VuU3BhY2VHdWlkLlBjZExpbnV4Qm9vdEZpbGVH dWlkDQo+ID4gKw0KPiA+ICtbR3VpZHNdDQo+ID4gKyAgZ0VmaUVuZE9mRHhlRXZlbnRHcm91cEd1 aWQNCj4gPiArICBnVWVmaVNoZWxsRmlsZUd1aWQNCj4gPiArICBnWmVyb0d1aWQNCj4gPiArDQo+ ID4gK1tQcm90b2NvbHNdDQo+ID4gKyAgZ0VmaUxvYWRlZEltYWdlUHJvdG9jb2xHdWlkDQo+ID4g ZGlmZiAtLWdpdCBhL0FybVBrZy9MaWJyYXJ5L0xpbnV4Qm9vdEJvb3RNYW5hZ2VyTGliL0xpbnV4 Qm9vdEJtLmMNCj4gYi9Bcm1Qa2cvTGlicmFyeS9MaW51eEJvb3RCb290TWFuYWdlckxpYi9MaW51 eEJvb3RCbS5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAw MDAuLmY0OTQxNzgwZWZjZA0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9Bcm1Qa2cvTGli cmFyeS9MaW51eEJvb3RCb290TWFuYWdlckxpYi9MaW51eEJvb3RCbS5jDQo+ID4gQEAgLTAsMCAr MSwxNzggQEANCj4gPiArLyoqIEBmaWxlDQo+ID4gKyAgSW1wbGVtZW50YXRpb24gZm9yIFBsYXRm b3JtQm9vdE1hbmFnZXJMaWIgbGlicmFyeSBjbGFzcyBpbnRlcmZhY2VzLg0KPiA+ICsNCj4gPiAr ICBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiwgUmVkIEhhdCwgSW5jLg0KPiA+ICsgIENvcHlyaWdo dCAoYykgMjAxNCAtIDIwMTksIEFSTSBMdGQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ ICsgIENvcHlyaWdodCAoYykgMjAwNCAtIDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4gPiArICBDb3B5cmlnaHQgKGMpIDIwMTYsIExpbmFybyBMdGQu IEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiA+ICsgIENvcHlyaWdodCAoYykgMjAyMCAtIDIw MjEsIEFtcGVyZSBDb21wdXRpbmcgTExDLiBBbGwgcmlnaHRzDQo+IHJlc2VydmVkLjxCUj4NCj4g PiArDQo+ID4gKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQN Cj4gPiArDQo+ID4gKyoqLw0KPiA+ICsNCj4gPiArI2luY2x1ZGUgPFVlZmkuaD4NCj4gPiArDQo+ ID4gKyNpbmNsdWRlIDxHdWlkL0V2ZW50R3JvdXAuaD4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkv QmFzZUxpYi5oPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlTWVtb3J5TGliLmg+DQo+ID4g KyNpbmNsdWRlIDxMaWJyYXJ5L0RlYnVnTGliLmg+DQo+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L0Rl dmljZVBhdGhMaWIuaD4NCj4gPiArI2luY2x1ZGUgPExpYnJhcnkvTWVtb3J5QWxsb2NhdGlvbkxp Yi5oPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9QY2RMaWIuaD4NCj4gPiArI2luY2x1ZGUgPExp YnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliLmg+DQo+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlC b290U2VydmljZXNUYWJsZUxpYi5oPg0KPiA+ICsjaW5jbHVkZSA8TGlicmFyeS9VZWZpTGliLmg+ DQo+ID4gKyNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlSdW50aW1lU2VydmljZXNUYWJsZUxpYi5oPg0K PiA+ICsjaW5jbHVkZSA8UHJvdG9jb2wvTG9hZGVkSW1hZ2UuaD4NCj4gPiArI2luY2x1ZGUgPFBy b3RvY29sL1BsYXRmb3JtQm9vdE1hbmFnZXIuaD4NCj4gPiArDQo+ID4gK1NUQVRJQw0KPiA+ICtW T0lEDQo+ID4gK1BsYXRmb3JtUmVnaXN0ZXJGdkJvb3RPcHRpb24gKA0KPiA+ICsgIENPTlNUIEVG SV9HVUlEICpGaWxlR3VpZCwNCj4gPiArICBDSEFSMTYgICAgICAgICAqRGVzY3JpcHRpb24sDQo+ ID4gKyAgVUlOVDMyICAgICAgICAgQXR0cmlidXRlcw0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsg IEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXM7DQo+ID4gKyAgSU5UTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9wdGlvbkluZGV4Ow0KPiA+ICsgIEVGSV9CT09U X01BTkFHRVJfTE9BRF9PUFRJT04gICAgICBOZXdPcHRpb247DQo+ID4gKyAgRUZJX0JPT1RfTUFO QUdFUl9MT0FEX09QVElPTiAgICAgICpCb290T3B0aW9uczsNCj4gPiArICBVSU5UTiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQm9vdE9wdGlvbkNvdW50Ow0KPiA+ICsgIE1FRElBX0ZXX1ZP TF9GSUxFUEFUSF9ERVZJQ0VfUEFUSCBGaWxlTm9kZTsNCj4gPiArICBFRklfTE9BREVEX0lNQUdF X1BST1RPQ09MICAgICAgICAgKkxvYWRlZEltYWdlOw0KPiA+ICsgIEVGSV9ERVZJQ0VfUEFUSF9Q Uk9UT0NPTCAgICAgICAgICAqRGV2aWNlUGF0aDsNCj4gPiArDQo+ID4gKyAgU3RhdHVzID0gZ0JT LT5IYW5kbGVQcm90b2NvbCAoDQo+ID4gKyAgICAgICAgICAgICAgICAgIGdJbWFnZUhhbmRsZSwN Cj4gPiArICAgICAgICAgICAgICAgICAgJmdFZmlMb2FkZWRJbWFnZVByb3RvY29sR3VpZCwNCj4g PiArICAgICAgICAgICAgICAgICAgKFZPSUQgKiopJkxvYWRlZEltYWdlDQo+ID4gKyAgICAgICAg ICAgICAgICAgICk7DQo+ID4gKyAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gPiArDQo+ ID4gKyAgRWZpSW5pdGlhbGl6ZUZ3Vm9sRGV2aWNlcGF0aE5vZGUgKCZGaWxlTm9kZSwgRmlsZUd1 aWQpOw0KPiA+ICsgIERldmljZVBhdGggPSBEZXZpY2VQYXRoRnJvbUhhbmRsZSAoTG9hZGVkSW1h Z2UtPkRldmljZUhhbmRsZSk7DQo+ID4gKyAgQVNTRVJUIChEZXZpY2VQYXRoICE9IE5VTEwpOw0K PiA+ICsgIERldmljZVBhdGggPSBBcHBlbmREZXZpY2VQYXRoTm9kZSAoDQo+ID4gKyAgICAgICAg ICAgICAgICAgRGV2aWNlUGF0aCwNCj4gPiArICAgICAgICAgICAgICAgICAoRUZJX0RFVklDRV9Q QVRIX1BST1RPQ09MICopJkZpbGVOb2RlDQo+ID4gKyAgICAgICAgICAgICAgICAgKTsNCj4gPiAr ICBBU1NFUlQgKERldmljZVBhdGggIT0gTlVMTCk7DQo+ID4gKw0KPiA+ICsgIFN0YXR1cyA9IEVm aUJvb3RNYW5hZ2VySW5pdGlhbGl6ZUxvYWRPcHRpb24gKA0KPiA+ICsgICAgICAgICAgICAgJk5l d09wdGlvbiwNCj4gPiArICAgICAgICAgICAgIExvYWRPcHRpb25OdW1iZXJVbmFzc2lnbmVkLA0K PiA+ICsgICAgICAgICAgICAgTG9hZE9wdGlvblR5cGVCb290LA0KPiA+ICsgICAgICAgICAgICAg QXR0cmlidXRlcywNCj4gPiArICAgICAgICAgICAgIERlc2NyaXB0aW9uLA0KPiA+ICsgICAgICAg ICAgICAgRGV2aWNlUGF0aCwNCj4gPiArICAgICAgICAgICAgIE5VTEwsDQo+ID4gKyAgICAgICAg ICAgICAwDQo+ID4gKyAgICAgICAgICAgICApOw0KPiA+ICsgIEFTU0VSVF9FRklfRVJST1IgKFN0 YXR1cyk7DQo+ID4gKyAgRnJlZVBvb2wgKERldmljZVBhdGgpOw0KPiA+ICsNCj4gPiArICBCb290 T3B0aW9ucyA9IEVmaUJvb3RNYW5hZ2VyR2V0TG9hZE9wdGlvbnMgKA0KPiA+ICsgICAgICAgICAg ICAgICAgICAmQm9vdE9wdGlvbkNvdW50LA0KPiA+ICsgICAgICAgICAgICAgICAgICBMb2FkT3B0 aW9uVHlwZUJvb3QNCj4gPiArICAgICAgICAgICAgICAgICAgKTsNCj4gPiArDQo+ID4gKyAgT3B0 aW9uSW5kZXggPSBFZmlCb290TWFuYWdlckZpbmRMb2FkT3B0aW9uICgNCj4gPiArICAgICAgICAg ICAgICAgICAgJk5ld09wdGlvbiwNCj4gPiArICAgICAgICAgICAgICAgICAgQm9vdE9wdGlvbnMs DQo+ID4gKyAgICAgICAgICAgICAgICAgIEJvb3RPcHRpb25Db3VudA0KPiA+ICsgICAgICAgICAg ICAgICAgICApOw0KPiA+ICsNCj4gPiArICBpZiAoT3B0aW9uSW5kZXggPT0gLTEpIHsNCj4gPiAr ICAgIFN0YXR1cyA9IEVmaUJvb3RNYW5hZ2VyQWRkTG9hZE9wdGlvblZhcmlhYmxlICgmTmV3T3B0 aW9uLA0KPiBNQVhfVUlOVE4pOw0KPiA+ICsgICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsN Cj4gPiArICB9DQo+ID4gKyAgRWZpQm9vdE1hbmFnZXJGcmVlTG9hZE9wdGlvbiAoJk5ld09wdGlv bik7DQo+ID4gKyAgRWZpQm9vdE1hbmFnZXJGcmVlTG9hZE9wdGlvbnMgKEJvb3RPcHRpb25zLCBC b290T3B0aW9uQ291bnQpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICBEbyB0aGUg cGxhdGZvcm0gc3BlY2lmaWMgYWN0aW9uIGJlZm9yZSB0aGUgY29uc29sZSBpcyBjb25uZWN0ZWQu DQo+ID4gKw0KPiA+ICsgIFN1Y2ggYXM6DQo+ID4gKyAgICBVcGRhdGUgY29uc29sZSB2YXJpYWJs ZTsNCj4gPiArICAgIFJlZ2lzdGVyIG5ldyBEcml2ZXIjIyMjIG9yIEJvb3QjIyMjOw0KPiA+ICsg ICAgU2lnbmFsIFJlYWR5VG9Mb2NrIGV2ZW50Lg0KPiA+ICsqKi8NCj4gPiArVk9JRA0KPiA+ICtF RklBUEkNCj4gPiArUGxhdGZvcm1Cb290TWFuYWdlckJlZm9yZUNvbnNvbGUgKA0KPiA+ICsgIFZP SUQNCj4gPiArICApDQo+ID4gK3sNCj4gPiArICAvLw0KPiA+ICsgIC8vIFNpZ25hbCBFbmRPZkR4 ZSBQSSBFdmVudA0KPiA+ICsgIC8vDQo+ID4gKyAgRWZpRXZlbnRHcm91cFNpZ25hbCAoJmdFZmlF bmRPZkR4ZUV2ZW50R3JvdXBHdWlkKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAg RG8gdGhlIHBsYXRmb3JtIHNwZWNpZmljIGFjdGlvbiBhZnRlciB0aGUgY29uc29sZSBpcyBjb25u ZWN0ZWQuDQo+ID4gKw0KPiA+ICsgIFN1Y2ggYXM6DQo+ID4gKyAgICBEeW5hbWljYWxseSBzd2l0 Y2ggb3V0cHV0IG1vZGU7DQo+ID4gKyAgICBTaWduYWwgY29uc29sZSByZWFkeSBwbGF0Zm9ybSBj dXN0b21pemVkIGV2ZW50Ow0KPiA+ICsgICAgUnVuIGRpYWdub3N0aWNzIGxpa2UgbWVtb3J5IHRl c3Rpbmc7DQo+ID4gKyAgICBDb25uZWN0IGNlcnRhaW4gZGV2aWNlczsNCj4gPiArICAgIERpc3Bh dGNoIGFkZGl0aW9uYWwgb3B0aW9uIHJvbXMuDQo+ID4gKyoqLw0KPiA+ICtWT0lEDQo+ID4gK0VG SUFQSQ0KPiA+ICtQbGF0Zm9ybUJvb3RNYW5hZ2VyQWZ0ZXJDb25zb2xlICgNCj4gPiArICBWT0lE DQo+ID4gKyAgKQ0KPiA+ICt7DQo+ID4gKyAgRUZJX0dVSUQgTGludXhCb290RmlsZUd1aWQ7DQo+ ID4gKw0KPiA+ICsgIENvcHlHdWlkICgmTGludXhCb290RmlsZUd1aWQsIFBjZEdldFB0ciAoUGNk TGludXhCb290RmlsZUd1aWQpKTsNCj4gPiArDQo+ID4gKyAgaWYgKCFDb21wYXJlR3VpZCAoJkxp bnV4Qm9vdEZpbGVHdWlkLCAmZ1plcm9HdWlkKSkgew0KPiA+ICsgICAgLy8NCj4gPiArICAgIC8v IFJlZ2lzdGVyIExpbnV4Qm9vdA0KPiA+ICsgICAgLy8NCj4gPiArICAgIFBsYXRmb3JtUmVnaXN0 ZXJGdkJvb3RPcHRpb24gKA0KPiA+ICsgICAgICAmTGludXhCb290RmlsZUd1aWQsDQo+ID4gKyAg ICAgIEwiTGludXhCb290IiwNCj4gPiArICAgICAgTE9BRF9PUFRJT05fQUNUSVZFDQo+ID4gKyAg ICAgICk7DQo+ID4gKyAgfSBlbHNlIHsNCj4gPiArICAgIERFQlVHICgoREVCVUdfRVJST1IsICIl YTogUGNkTGludXhCb290RmlsZUd1aWQgd2FzIG5vdCBzZXQhXG4iLA0KPiBfX0ZVTkNUSU9OX18p KTsNCj4gPiArICB9DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgIFRoaXMgZnVuY3Rp b24gaXMgY2FsbGVkIGVhY2ggc2Vjb25kIGR1cmluZyB0aGUgYm9vdCBtYW5hZ2VyIHdhaXRzIHRo ZQ0KPiA+ICsgIHRpbWVvdXQuDQo+ID4gKw0KPiA+ICsgIEBwYXJhbSBUaW1lb3V0UmVtYWluICBU aGUgcmVtYWluaW5nIHRpbWVvdXQuDQo+ID4gKyoqLw0KPiA+ICtWT0lEDQo+ID4gK0VGSUFQSQ0K PiA+ICtQbGF0Zm9ybUJvb3RNYW5hZ2VyV2FpdENhbGxiYWNrICgNCj4gPiArICBVSU5UMTYgVGlt ZW91dFJlbWFpbg0KPiA+ICsgICkNCj4gPiArew0KPiA+ICsgIHJldHVybjsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArLyoqDQo+ID4gKyAgVGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIG5vIGJvb3Qg b3B0aW9uIGNvdWxkIGJlIGxhdW5jaGVkLA0KPiA+ICsgIGluY2x1ZGluZyBwbGF0Zm9ybSByZWNv dmVyeSBvcHRpb25zIGFuZCBvcHRpb25zIHBvaW50aW5nIHRvIGFwcGxpY2F0aW9ucw0KPiA+ICsg IGJ1aWx0IGludG8gZmlybXdhcmUgdm9sdW1lcy4NCj4gPiArDQo+ID4gKyAgSWYgdGhpcyBmdW5j dGlvbiByZXR1cm5zLCBCRFMgYXR0ZW1wdHMgdG8gZW50ZXIgYW4gaW5maW5pdGUgbG9vcC4NCj4g PiArKiovDQo+ID4gK1ZPSUQNCj4gPiArRUZJQVBJDQo+ID4gK1BsYXRmb3JtQm9vdE1hbmFnZXJV bmFibGVUb0Jvb3QgKA0KPiA+ICsgIFZPSUQNCj4gPiArICApDQo+ID4gK3sNCj4gPiArICByZXR1 cm47DQo+ID4gK30NCj4gPiAtLQ0KPiA+IDIuMTcuMQ0KPiA+DQo+DQo+DQo+IA0KPg0KDQpJTVBP UlRBTlQgTk9USUNFOiBUaGUgY29udGVudHMgb2YgdGhpcyBlbWFpbCBhbmQgYW55IGF0dGFjaG1l bnRzIGFyZSBjb25maWRlbnRpYWwgYW5kIG1heSBhbHNvIGJlIHByaXZpbGVnZWQuIElmIHlvdSBh cmUgbm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQsIHBsZWFzZSBub3RpZnkgdGhlIHNlbmRlciBp bW1lZGlhdGVseSBhbmQgZG8gbm90IGRpc2Nsb3NlIHRoZSBjb250ZW50cyB0byBhbnkgb3RoZXIg cGVyc29uLCB1c2UgaXQgZm9yIGFueSBwdXJwb3NlLCBvciBzdG9yZSBvciBjb3B5IHRoZSBpbmZv cm1hdGlvbiBpbiBhbnkgbWVkaXVtLiBUaGFuayB5b3UuDQo=