From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BE86941DFB; Tue, 7 Mar 2023 06:34:35 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5722840E03; Tue, 7 Mar 2023 06:34:35 +0100 (CET) Received: from EUR03-VI1-obe.outbound.protection.outlook.com (mail-vi1eur03on2080.outbound.protection.outlook.com [40.107.103.80]) by mails.dpdk.org (Postfix) with ESMTP id 693864067E for ; Tue, 7 Mar 2023 06:34:34 +0100 (CET) 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=H7JcFXcyamb1s6/IYZ72I2wLw5oFICDMl2Q9udXV8h0=; b=M4I6/95JxMnyEPVdPzjHXOI3ZnDkIQypdPw0LnkAwMCW3E69deLyT3BpMc4R3IHKmtZvPOuGAWQEs+zlcHF5Hj+AxeUe1Qq31bVNHLmhzgFuJKe+CK4+6snxuXJnNIU/T+p6qirwT16cgiEWDrJIzBcbZEkjha1YbjRaysf/mkQ= Received: from DUZPR01CA0048.eurprd01.prod.exchangelabs.com (2603:10a6:10:469::17) by DB9PR08MB9681.eurprd08.prod.outlook.com (2603:10a6:10:45c::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.29; Tue, 7 Mar 2023 05:34:24 +0000 Received: from DBAEUR03FT061.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:469:cafe::3a) by DUZPR01CA0048.outlook.office365.com (2603:10a6:10:469::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.28 via Frontend Transport; Tue, 7 Mar 2023 05:34:24 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;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; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT061.mail.protection.outlook.com (100.127.143.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.28 via Frontend Transport; Tue, 7 Mar 2023 05:34:24 +0000 Received: ("Tessian outbound fcd8b5fba459:v135"); Tue, 07 Mar 2023 05:34:24 +0000 X-CR-MTA-TID: 64aa7808 Received: from cd2224d92977.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 0ECF086F-1372-42C8-8AAA-FBD7ADAA7785.1; Tue, 07 Mar 2023 05:34:18 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id cd2224d92977.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 07 Mar 2023 05:34:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fHP+ep8sFVA2175DFNXubENzwzeoq/whYUZdxvlMv7XPdAFrngvZD+zJndfpLtgoV+sQExg0pS/AG3cYq17RXP3mtYgPt8wfddgGcqybNadg3J9oKMvUHvCNYMBw47Ybq5njjKFdpwziZ9mgwqV6wnXnik6rd4hfhUoEvEuRXVGWrZh4owIoA3kjeTSP6NSq9i21IR1wrxOaBizVHlNOa2HbNopHTbFgFmCTP3wj91mIM1eP01TndIvXiIQpVMZCrbraovQFuHYPKYuGwPyvB3YMEsrPpLl+RMWnLrrlxGErlvqysTu83IBCPbNhd9ke7RNzH/mP+LW7U+SSWoHkqA== 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=H7JcFXcyamb1s6/IYZ72I2wLw5oFICDMl2Q9udXV8h0=; b=HxuVH5hCddy7R4AobaWqEX4Ky5gde7rnutv5C7tMSDor34xG4ohz4K5dVcSBH2w05u7vpgItgjEbVCltjQWv4Fmwb6TIMyefPb+QGg7OYGAv82Vv/Jglx3+ik4iFsHawQJUKlKiAeRBz0nEOURndXU1wn4kadGzK8k3xa2fs3aARrG3XVi8GDF2lOOzknKWUc+18IFoJCMRSRKMZE4K8REjOWgz93XpDqdtBqZaXpPw4VYyxghgpJsD3KbbjK+gy30gb1sD4Iq0CG6Pnzkvz/M9TRzpjxomqEmvs/c6ePSGDQdjjau6A/A7uAo4EvoDyZf8FtSF2qxfvFedP8J5y+Q== 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=H7JcFXcyamb1s6/IYZ72I2wLw5oFICDMl2Q9udXV8h0=; b=M4I6/95JxMnyEPVdPzjHXOI3ZnDkIQypdPw0LnkAwMCW3E69deLyT3BpMc4R3IHKmtZvPOuGAWQEs+zlcHF5Hj+AxeUe1Qq31bVNHLmhzgFuJKe+CK4+6snxuXJnNIU/T+p6qirwT16cgiEWDrJIzBcbZEkjha1YbjRaysf/mkQ= Received: from DBAPR08MB5814.eurprd08.prod.outlook.com (2603:10a6:10:1b1::6) by AS8PR08MB10315.eurprd08.prod.outlook.com (2603:10a6:20b:5c0::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.28; Tue, 7 Mar 2023 05:34:11 +0000 Received: from DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::910e:e35f:b1eb:ae9]) by DBAPR08MB5814.eurprd08.prod.outlook.com ([fe80::910e:e35f:b1eb:ae9%4]) with mapi id 15.20.6156.029; Tue, 7 Mar 2023 05:34:10 +0000 From: Honnappa Nagarahalli To: Konstantin Ananyev , "dev@dpdk.org" , Chengwen Feng , "thomas@monjalon.net" , Ferruh Yigit , Andrew Rybchenko , Kalesh AP , "Ajit Khaparde (ajit.khaparde@broadcom.com)" CC: nd , nd Subject: RE: [PATCH 1/5] ethdev: fix race-condition of proactive error handling mode Thread-Topic: [PATCH 1/5] ethdev: fix race-condition of proactive error handling mode Thread-Index: AQHZS+vQExpR5AcJek+fR6H0lQR6ea7oHPFAgAAXgYCAAdrnUIACRcEAgAJ9lPA= Date: Tue, 7 Mar 2023 05:34:10 +0000 Message-ID: References: <20230301030610.49468-1-fengchengwen@huawei.com> <20230301030610.49468-2-fengchengwen@huawei.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: AEE5B3091F5C18449F88CDE41CB0A35C.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: DBAPR08MB5814:EE_|AS8PR08MB10315:EE_|DBAEUR03FT061:EE_|DB9PR08MB9681:EE_ X-MS-Office365-Filtering-Correlation-Id: 62fdc91f-610a-48e9-e373-08db1ecd9c82 x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: qpRtMmvImGWdzA7ypJe2rzsNVSn+P9Zk824hD+jon0f3PshbTG2/n9eFd/qQazKhTWRE45WhV1I4K/rJ/9IGdsYK73yfMnGPBlUzphPEpqOHpMcyT9YjLVYc41h8Tdd/HW6dVrMwVL1Qh8g+fxabRCe668mfAKT+x9/8jCct1+JxLDrgIwC6geKbkl2AvJ39Vqok28ZR+g6SWvrQK2jorbDyvpKg3W1xORnxppyPDiTPSmCl1WVLdno6A+XOco+Z4t/cKwBkN0bVBwtejSsTk3eBRED//5MaTuCj+1NOXeTV6OgVifctEN0ZfHh3/XQz0yjKoBkozj8KkvUWMKzcJ0+/5Zc0D5dCViECo6euVyCwpSl51Bgx52hjYEl7GziZjz12IUQi5g+pqICyct9Hktavz4fgPyFdn4W4BvQe1hG3Coy/uQ7gpeIceqY8Uuk6jLDLj/WKOaKm5gVx45cz8wU8JPXVtXhoZXBvV+OV2G2Gn3ipTi2pb1V5nNv37BH+S/8jgp70us3Xjl8TutyxeEXNQdy9IbFyMVSWIEpTaUtua52xtvT5hCn3+NQGU5i4oBzTtYR+ll5xosIwxAsa1lHaW9dtkgXiwbrByqY4vkUR6fDDsO4CoOdtH6i6yxP0X5H97Zt4dx/G2VqVTMMu8E5dF+6POEI+9zonydZbt7jIOmphss9kJz2wIBzIlllW X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBAPR08MB5814.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(136003)(346002)(396003)(376002)(39860400002)(366004)(451199018)(122000001)(8676002)(4326008)(64756008)(66476007)(86362001)(66556008)(66446008)(54906003)(66946007)(316002)(76116006)(33656002)(38070700005)(52536014)(8936002)(5660300002)(41300700001)(30864003)(966005)(83380400001)(478600001)(110136005)(55016003)(71200400001)(2906002)(7696005)(53546011)(6506007)(186003)(38100700002)(9686003); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB10315 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT061.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 4b1b041a-8701-43e3-0588-08db1ecd93f9 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XoJ/XImtm0RPHCMQ7VpT6ScBA1DMKlMX3nm0L8JESj5SzScY8schEi6DsQ9vQd9pqB32tXl9CLyIdmNGiH7tWhi/IAouLk8iPI1hqA1mPfm3fk4hFDvLIv2nbXOQzzqUg9/kSHsYru/jirZsr25R0ZyAWvvuYD1leJ3apQIhSfTq2wVW5ESUjX+viyiXZqaFSQeE3FiqHQdJl/vdHPuzKSL13b0hm0vV6oDLko6Ii8aU+wPRxKLAxu3mYu9wU0uNE7MevuaTKMO3BlIqcShUPXIj9bCZQAsKRhZVkxgbrCZWksV8yntmNw2+qJv77Onf5vMfOt+P3B4XO8Uc9NSUdJYXc7Ct5V+L9UgNgFyxZjYCn0IRB6+EmXXGBupy1x+GyUNRfquf/kOkwHyg3X2cBNxm8STreJgjz4z9h8fVam8N44nLpXlAYIfI7NpQ/rzQIKf447zGA8MLx8c0H0JxXRH91RXmXuO9T861fUPMJrFS6V38zMVvZ9GpAame+OgVniVUBWPi2DXfdONZMLH11GBis8W5nthYKQq4vHQrStcoszdAqNM8z3ku+Fh1s2HxJQnFg7Q/mMHcXC6/I4PrR2Gy7WbRouG1vBN/F+S0AheF7vuffER3apCTmLLUs+etEsvONfcuY3qk9Oz4wn6T8JjIA1vhbAqSdqN8ybPVLokHDP1Gvn3QUEca067dBKIphJfnFquI37gfwKZJrRY3RHAWHipRShdZKm1jKpEtbNg= 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:(13230025)(4636009)(396003)(346002)(136003)(376002)(39860400002)(451199018)(46966006)(36840700001)(40470700004)(8676002)(70206006)(70586007)(4326008)(83380400001)(82310400005)(86362001)(186003)(9686003)(55016003)(47076005)(336012)(40480700001)(356005)(36860700001)(82740400003)(81166007)(478600001)(110136005)(316002)(54906003)(33656002)(53546011)(26005)(6506007)(40460700003)(966005)(7696005)(30864003)(2906002)(8936002)(52536014)(5660300002)(41300700001)(23180200003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Mar 2023 05:34:24.6009 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 62fdc91f-610a-48e9-e373-08db1ecd9c82 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: DBAEUR03FT061.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9681 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogS29uc3RhbnRpbiBBbmFu eWV2IDxrb25zdGFudGluLnYuYW5hbnlldkB5YW5kZXgucnU+DQo+IFNlbnQ6IFN1bmRheSwgTWFy Y2ggNSwgMjAyMyA5OjI0IEFNDQo+IFRvOiBIb25uYXBwYSBOYWdhcmFoYWxsaSA8SG9ubmFwcGEu TmFnYXJhaGFsbGlAYXJtLmNvbT47DQo+IGRldkBkcGRrLm9yZzsgQ2hlbmd3ZW4gRmVuZyA8ZmVu Z2NoZW5nd2VuQGh1YXdlaS5jb20+Ow0KPiB0aG9tYXNAbW9uamFsb24ubmV0OyBGZXJydWggWWln aXQgPGZlcnJ1aC55aWdpdEBhbWQuY29tPjsgQW5kcmV3DQo+IFJ5YmNoZW5rbyA8YW5kcmV3LnJ5 YmNoZW5rb0Bva3RldGxhYnMucnU+OyBLYWxlc2ggQVAgPGthbGVzaC0NCj4gYW5ha2t1ci5wdXJh eWlsQGJyb2FkY29tLmNvbT47IEFqaXQgS2hhcGFyZGUNCj4gKGFqaXQua2hhcGFyZGVAYnJvYWRj b20uY29tKSA8YWppdC5raGFwYXJkZUBicm9hZGNvbS5jb20+DQo+IENjOiBuZCA8bmRAYXJtLmNv bT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCAxLzVdIGV0aGRldjogZml4IHJhY2UtY29uZGl0aW9u IG9mIHByb2FjdGl2ZSBlcnJvciBoYW5kbGluZw0KPiBtb2RlDQo+IA0KPiANCj4gPj4+Pg0KPiA+ Pj4+IEluIHRoZSBwcm9hY3RpdmUgZXJyb3IgaGFuZGxpbmcgbW9kZSwgdGhlIFBNRCB3aWxsIHNl dCB0aGUgZGF0YQ0KPiA+Pj4+IHBhdGggcG9pbnRlcnMgdG8gZHVtbXkgZnVuY3Rpb25zIGFuZCB0 aGVuIHRyeSByZWNvdmVyeSwgaW4gdGhpcw0KPiA+Pj4+IHBlcmlvZCB0aGUgYXBwbGljYXRpb24g bWF5IHN0aWxsIGludm9raW5nIGRhdGEgcGF0aCBBUEkuIFRoaXMgd2lsbA0KPiA+Pj4+IGludHJv ZHVjZSBhIHJhY2UtY29uZGl0aW9uIHdpdGggZGF0YSBwYXRoIHdoaWNoIG1heSBsZWFkIHRvIGNy YXNoIFsxXS4NCj4gPj4+Pg0KPiA+Pj4+IEFsdGhvdWdoIHRoZSBQTUQgYWRkZWQgZGVsYXkgYWZ0 ZXIgc2V0dGluZyBkYXRhIHBhdGggcG9pbnRlcnMgdG8NCj4gPj4+PiBjb3ZlciB0aGUgYWJvdmUg cmFjZS1jb25kaXRpb24sIGl0IHJlZHVjZXMgdGhlIHByb2JhYmlsaXR5LCBidXQgaXQNCj4gPj4+ PiBkb2Vzbid0IHNvbHZlIHRoZSBwcm9ibGVtLg0KPiA+Pj4+DQo+ID4+Pj4gVG8gc29sdmUgdGhl IHJhY2UtY29uZGl0aW9uIHByb2JsZW0gZnVuZGFtZW50YWxseSwgdGhlIGZvbGxvd2luZw0KPiA+ Pj4+IHJlcXVpcmVtZW50cyBhcmUgYWRkZWQ6DQo+ID4+Pj4gMS4gVGhlIFBNRCBzaG91bGQgc2V0 IHRoZSBkYXRhIHBhdGggcG9pbnRlcnMgdG8gZHVtbXkgZnVuY3Rpb25zIGFmdGVyDQo+ID4+Pj4g ICAgICByZXBvcnQgUlRFX0VUSF9FVkVOVF9FUlJfUkVDT1ZFUklORyBldmVudC4NCj4gPj4+IERv IHlvdSBtZWFuIHRvIHNheSwgUE1EIHNob3VsZCBzZXQgdGhlIGRhdGEgcGF0aCBwb2ludGVycyBh ZnRlcg0KPiA+Pj4gY2FsbGluZyB0aGUNCj4gPj4gY2FsbCBiYWNrIGZ1bmN0aW9uPw0KPiA+Pj4g VGhlIFBNRCBpcyBydW5uaW5nIGluIHRoZSBjb250ZXh0IG9mIG11bHRpcGxlIEVBTCB0aHJlYWRz LiBIb3cgZG8NCj4gPj4+IHRoZXNlDQo+ID4+IHRocmVhZHMgc3luY2hyb25pemUgc3VjaCB0aGF0 IG9ubHkgb25lIHRocmVhZCBzZXRzIHRoZXNlIGRhdGEgcG9pbnRlcnM/DQo+ID4+DQo+ID4+IEFz IEkgdW5kZXJzdGFuZCB0aGlzIGV2ZW50IGNhbGxiYWNrIHN1cHBvc2VkIHRvIGJlIGNhbGxlZCBp biB0aGUNCj4gPj4gY29udGV4dCBvZiBFQUwgaW50ZXJydXB0IHRocmVhZCAod2hvZXZlciBpcyBt b3JlIGZhbWlsaWFyIHdpdGgNCj4gPj4gb3JpZ2luYWwgaWRlYSwgZmVlbCBmcmVlIHRvIGNvcnJl Y3QgbWUgaWYgSSBtaXNzZWQgc29tZXRoaW5nKS4NCj4gPiBJIGNvdWxkIG5vdCBmaWd1cmUgdGhp cyBvdXQuIEl0IGxvb2tzIHRvIGJlIGNhbGxlZCBmcm9tIHRoZSBkYXRhIHBsYW5lIHRocmVhZA0K PiBjb250ZXh0Lg0KPiA+IEkgYWxzbyBoYXZlIGEgdGhvdWdodCBvbiBhbHRlcm5hdGUgZGVzaWdu IGF0IHRoZSBlbmQsIGFwcHJlY2lhdGUgaWYgeW91IGNhbg0KPiB0YWtlIGEgbG9vay4NCj4gPg0K PiA+PiBIb3cgaXQgaXMgZ29pbmcgdG8gc2lnbmFsIGRhdGEtcGF0aCB0aHJlYWRzIHRoYXQgdGhl eSBuZWVkIHRvDQo+ID4+IHN0b3Avc3VzcGVuZCBjYWxsaW5nIGRhdGEtcGF0aCBBUEkgLSB0aGF0 J3MgSSBzdXBwb3NlIGlzIGxlZnQgdG8gYXBwbGljYXRpb24NCj4gdG8gZGVjaWRlLi4uDQo+ID4+ IFNhbWUgYXMgcmlnaHQgbm93IGl0IGlzIGFwcGxpY2F0aW9uIHJlc3BvbnNpYmlsaXR5IHRvIHN0 b3AgZGF0YS1wYXRoDQo+ID4+IHRocmVhZHMgYmVmb3JlIGRvaW5nIGRldl9zdG9wKCkvZGV2L19j b25maWcoKS9ldGMuDQo+ID4gT2ssIGdvb2QsIHRoaXMgZXhwZWN0YXRpb24gaXMgbm90IG5ldy4g VGhlIGFwcGxpY2F0aW9uIG11c3QgaGF2ZSBhDQo+IG1lY2hhbmlzbSBhbHJlYWR5Lg0KPiA+DQo+ ID4+DQo+ID4+DQo+ID4+Pg0KPiA+Pj4+IDIuIFRoZSBhcHBsaWNhdGlvbiBzaG91bGQgc3RvcCBk YXRhIHBhdGggQVBJIGludm9jYXRpb24gd2hlbiBwcm9jZXNzDQo+ID4+Pj4gICAgICB0aGUgUlRF X0VUSF9FVkVOVF9FUlJfUkVDT1ZFUklORyBldmVudC4NCj4gPj4+IEFueSB0aG91Z2h0cyBvbiBo b3cgYW4gYXBwbGljYXRpb24gY2FuIGRvIHRoaXM/DQo+ID4gV2UgY2FuIGlnbm9yZSB0aGlzIHF1 ZXN0aW9uIGFzIHRoZXJlIGlzIGFscmVhZHkgc2ltaWxhciBleHBlY3RhdGlvbiBzZXQgZm9yDQo+ IGVhcmxpZXIgZnVuY3Rpb25hbGl0aWVzLg0KPiA+DQo+ID4+Pg0KPiA+Pj4+IDMuIFRoZSBQTUQg c2hvdWxkIHNldCB0aGUgZGF0YSBwYXRoIHBvaW50ZXJzIHRvIHZhbGlkIGZ1bmN0aW9ucyBiZWZv cmUNCj4gPj4+PiAgICAgIHJlcG9ydCBSVEVfRVRIX0VWRU5UX1JFQ09WRVJZX1NVQ0NFU1MgZXZl bnQuDQo+ID4+Pj4gNC4gVGhlIGFwcGxpY2F0aW9uIHNob3VsZCBlbmFibGUgZGF0YSBwYXRoIEFQ SSBpbnZvY2F0aW9uIHdoZW4gcHJvY2Vzcw0KPiA+Pj4+ICAgICAgdGhlIFJURV9FVEhfRVZFTlRf UkVDT1ZFUllfU1VDQ0VTUyBldmVudC4NCj4gPj4+IERvIHlvdSBtZWFuIHRvIHNheSB0aGF0IHRo ZSBhcHBsaWNhdGlvbiBzaG91bGQgbm90IGNhbGwgdGhlIGRhdGFwYXRoDQo+ID4+PiBBUElzDQo+ ID4+IHdoaWxlIHRoZSBQTUQgaXMgcnVubmluZyB0aGUgcmVjb3ZlcnkgcHJvY2Vzcz8NCj4gPj4N Cj4gPj4gWWVzLCBJIGJlbGlldmUgdGhhdCdzIHRoZSBpbnRlbnRpb24uDQo+ID4gT2ssIHRoaXMg aXMgZ29vZCBhbmQgbWFrZXMgc2Vuc2UuDQo+ID4NCj4gPj4NCj4gPj4+Pg0KPiA+Pj4+IEFsc28s IHRoaXMgcGF0Y2ggaW50cm9kdWNlIGEgZHJpdmVyIGludGVybmFsIGZ1bmN0aW9uDQo+ID4+Pj4g cnRlX2V0aF9mcF9vcHNfc2V0dXAgd2hpY2ggdXNlZCBhcyBhbiBoZWxwIGZ1bmN0aW9uIGZvciBQ TUQuDQo+ID4+Pj4NCj4gPj4+PiBbMV0NCj4gPj4+Pg0KPiA+Pg0KPiBodHRwOi8vcGF0Y2h3b3Jr LmRwZGsub3JnL3Byb2plY3QvZHBkay9wYXRjaC8yMDIzMDIyMDA2MDgzOS4xMjY3MzQ5LTINCj4g Pj4+PiAtDQo+ID4+Pj4gYXNob2suay5rYWxhZGlAaW50ZWwuY29tLw0KPiA+Pj4+DQo+ID4+Pj4g Rml4ZXM6IGViMGQ0NzFhODk0MSAoImV0aGRldjogYWRkIHByb2FjdGl2ZSBlcnJvciBoYW5kbGlu ZyBtb2RlIikNCj4gPj4+PiBDYzogc3RhYmxlQGRwZGsub3JnDQo+ID4+Pj4NCj4gPj4+PiBTaWdu ZWQtb2ZmLWJ5OiBDaGVuZ3dlbiBGZW5nIDxmZW5nY2hlbmd3ZW5AaHVhd2VpLmNvbT4NCj4gPj4+ PiAtLS0NCj4gPj4+PiAgICBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcG9sbF9tb2RlX2Rydi5yc3Qg fCAyMCArKysrKysrLS0tLS0tLS0tDQo+ID4+Pj4gICAgbGliL2V0aGRldi9ldGhkZXZfZHJpdmVy LmMgICAgICAgICAgICAgIHwgIDggKysrKysrKw0KPiA+Pj4+ICAgIGxpYi9ldGhkZXYvZXRoZGV2 X2RyaXZlci5oICAgICAgICAgICAgICB8IDEwICsrKysrKysrDQo+ID4+Pj4gICAgbGliL2V0aGRl di9ydGVfZXRoZGV2LmggICAgICAgICAgICAgICAgIHwgMzIgKysrKysrKysrKysrKysrLS0tLS0t LS0tLQ0KPiA+Pj4+ICAgIGxpYi9ldGhkZXYvdmVyc2lvbi5tYXAgICAgICAgICAgICAgICAgICB8 ICAxICsNCj4gPj4+PiAgICA1IGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDI1IGRl bGV0aW9ucygtKQ0KPiA+Pj4+DQo+ID4+Pj4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvcHJvZ19n dWlkZS9wb2xsX21vZGVfZHJ2LnJzdA0KPiA+Pj4+IGIvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3Bv bGxfbW9kZV9kcnYucnN0DQo+ID4+Pj4gaW5kZXggYzE0NWE5MDY2Yy4uZTM4MGZmMTM1YSAxMDA2 NDQNCj4gPj4+PiAtLS0gYS9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcG9sbF9tb2RlX2Rydi5yc3QN Cj4gPj4+PiArKysgYi9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcG9sbF9tb2RlX2Rydi5yc3QNCj4g Pj4+PiBAQCAtNjM4LDE0ICs2MzgsOSBAQCBkaWZmZXJlbnQgZnJvbSB0aGUgYXBwbGljYXRpb24g aW52b2tlcw0KPiA+Pj4+IHJlY292ZXJ5IGluIFBBU1NJVkUgbW9kZSwgIHRoZSBQTUQgYXV0b21h dGljYWxseSByZWNvdmVycyBmcm9tDQo+ID4+Pj4gZXJyb3IgaW4gUFJPQUNUSVZFIG1vZGUsICBh bmQgb25seSBhIHNtYWxsIGFtb3VudCBvZiB3b3JrIGlzDQo+ID4+Pj4gcmVxdWlyZWQgZm9yIHRo ZQ0KPiA+PiBhcHBsaWNhdGlvbi4NCj4gPj4+Pg0KPiA+Pj4+IC1EdXJpbmcgZXJyb3IgZGV0ZWN0 aW9uIGFuZCBhdXRvbWF0aWMgcmVjb3ZlcnksIC10aGUgUE1EIHNldHMgdGhlDQo+ID4+Pj4gZGF0 YSBwYXRoIHBvaW50ZXJzIHRvIGR1bW15IGZ1bmN0aW9ucyAtKHdoaWNoIHdpbGwgcHJldmVudCB0 aGUNCj4gPj4+PiBjcmFzaCksIC1hbmQgYWxzbyBtYWtlIHN1cmUgdGhlIGNvbnRyb2wgcGF0aCBv cGVyYXRpb25zIGZhaWwgd2l0aCBhDQo+ID4+Pj4gcmV0dXJuDQo+ID4+IGNvZGUgYGAtRUJVU1lg YC4NCj4gPj4+PiAtDQo+ID4+Pj4gLUJlY2F1c2UgdGhlIFBNRCByZWNvdmVycyBhdXRvbWF0aWNh bGx5LCAtdGhlIGFwcGxpY2F0aW9uIGNhbiBvbmx5DQo+ID4+Pj4gc2Vuc2UgdGhhdCB0aGUgZGF0 YSBmbG93IGlzIGRpc2Nvbm5lY3RlZCBmb3IgYSB3aGlsZSAtYW5kIHRoZQ0KPiA+Pj4+IGNvbnRy b2wgQVBJIHJldHVybnMgYW4gZXJyb3IgaW4gdGhpcyBwZXJpb2QuDQo+ID4+Pj4gK0R1cmluZyBl cnJvciBkZXRlY3Rpb24gYW5kIGF1dG9tYXRpYyByZWNvdmVyeSwgdGhlIFBNRCBzZXRzIHRoZQ0K PiA+Pj4+ICtkYXRhIHBhdGggcG9pbnRlcnMgdG8gZHVtbXkgZnVuY3Rpb25zIGFuZCBhbHNvIG1h a2Ugc3VyZSB0aGUNCj4gPj4+PiArY29udHJvbCBwYXRoIG9wZXJhdGlvbnMgZmFpbGVkIHdpdGgg YSByZXR1cm4gY29kZSBgYC1FQlVTWWBgLg0KPiA+Pj4+DQo+ID4+Pj4gICAgSW4gb3JkZXIgdG8g c2Vuc2UgdGhlIGVycm9yIGhhcHBlbmluZy9yZWNvdmVyaW5nLCAgYXMgd2VsbCBhcyB0bw0KPiA+ Pj4+IHJlc3RvcmUgc29tZSBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24sIEBAIC02NTMsOSArNjQ4 LDkgQEAgdGhyZWUNCj4gPj4+PiBldmVudHMNCj4gPj4gYXJlIGF2YWlsYWJsZToNCj4gPj4+Pg0K PiA+Pj4+ICAgIGBgUlRFX0VUSF9FVkVOVF9FUlJfUkVDT1ZFUklOR2BgDQo+ID4+Pj4gICAgICAg Tm90aWZ5IHRoZSBhcHBsaWNhdGlvbiB0aGF0IGFuIGVycm9yIGlzIGRldGVjdGVkDQo+ID4+Pj4g LSAgIGFuZCB0aGUgcmVjb3ZlcnkgaXMgYmVpbmcgc3RhcnRlZC4NCj4gPj4+PiArICAgYW5kIHRo ZSByZWNvdmVyeSBpcyBhYm91dCB0byBzdGFydC4NCj4gPj4+PiAgICAgICBVcG9uIHJlY2Vpdmlu ZyB0aGUgZXZlbnQsIHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgbm90IGludm9rZQ0KPiA+Pj4+IC0g ICBhbnkgY29udHJvbCBwYXRoIGZ1bmN0aW9uIHVudGlsIHJlY2VpdmluZw0KPiA+Pj4+ICsgICBh bnkgY29udHJvbCBhbmQgZGF0YSBwYXRoIEFQSSB1bnRpbCByZWNlaXZpbmcNCj4gPj4+PiAgICAg ICBgYFJURV9FVEhfRVZFTlRfUkVDT1ZFUllfU1VDQ0VTU2BgIG9yDQo+ID4+Pj4gYGBSVEVfRVRI X0VWRU5UX1JFQ09WRVJZX0ZBSUxFRGBgIGV2ZW50Lg0KPiA+Pj4+DQo+ID4+Pj4gICAgLi4gbm90 ZTo6DQo+ID4+Pj4gQEAgLTY2Niw4ICs2NjEsOSBAQCB0aHJlZSBldmVudHMgYXJlIGF2YWlsYWJs ZToNCj4gPj4+Pg0KPiA+Pj4+ICAgIGBgUlRFX0VUSF9FVkVOVF9SRUNPVkVSWV9TVUNDRVNTYGAN Cj4gPj4+PiAgICAgICBOb3RpZnkgdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHJlY292ZXJ5IGZy b20gZXJyb3IgaXMgc3VjY2Vzc2Z1bCwNCj4gPj4+PiAtICAgdGhlIFBNRCBhbHJlYWR5IHJlLWNv bmZpZ3VyZXMgdGhlIHBvcnQsDQo+ID4+Pj4gLSAgIGFuZCB0aGUgZWZmZWN0IGlzIHRoZSBzYW1l IGFzIGEgcmVzdGFydCBvcGVyYXRpb24uDQo+ID4+Pj4gKyAgIHRoZSBQTUQgYWxyZWFkeSByZS1j b25maWd1cmVzIHRoZSBwb3J0Lg0KPiA+Pj4+ICsgICBUaGUgYXBwbGljYXRpb24gc2hvdWxkIHJl c3RvcmUgc29tZSBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24sDQo+ID4+Pj4gKyBhbmQgdGhlbg0K PiA+Pj4gV2hhdCBpcyB0aGUgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uPyBJcyB0aGlzIHNwZWNp ZmljIHRvIGVhY2ggTklDL1BNRD8NCj4gPj4+IEkgdGhvdWdodCwgdGhpcyBpcyBhbiBhdXRvIHJl Y292ZXJ5IHByb2Nlc3MgYW5kIHRoZSBhcHBsaWNhdGlvbiBkb2VzDQo+ID4+PiBub3QgcmVxdWly ZQ0KPiA+PiB0byByZWNvbmZpZ3VyZSBhbnl0aGluZy4gSWYgdGhlIGFwcGxpY2F0aW9uIGhhcyB0 byByZXN0b3JlIHRoZQ0KPiA+PiBjb25maWd1cmF0aW9uLCBob3cgZG9lcyBhdXRvIHJlY292ZXJ5 IGRpZmZlciBmcm9tIHR5cGljYWwgcmVjb3ZlcnkNCj4gcHJvY2Vzcz8NCj4gPj4+DQo+ID4+Pj4g KyAgIGVuYWJsZSBkYXRhIHBhdGggQVBJIGludm9jYXRpb24uDQo+ID4+Pj4NCj4gPj4+PiAgICBg YFJURV9FVEhfRVZFTlRfUkVDT1ZFUllfRkFJTEVEYGANCj4gPj4+PiAgICAgICBOb3RpZnkgdGhl IGFwcGxpY2F0aW9uIHRoYXQgdGhlIHJlY292ZXJ5IGZyb20gZXJyb3IgZmFpbGVkLA0KPiA+Pj4+ IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L2V0aGRldl9kcml2ZXIuYw0KPiA+Pj4+IGIvbGliL2V0 aGRldi9ldGhkZXZfZHJpdmVyLmMgaW5kZXgNCj4gPj4+PiAwYmUxZThjYTA0Li5mOTk0NjUzZmU5 IDEwMDY0NA0KPiA+Pj4+IC0tLSBhL2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5jDQo+ID4+Pj4g KysrIGIvbGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmMNCj4gPj4+PiBAQCAtNTE1LDYgKzUxNSwx NCBAQCBydGVfZXRoX2RtYV96b25lX2ZyZWUoY29uc3Qgc3RydWN0DQo+IHJ0ZV9ldGhfZGV2DQo+ ID4+Pj4gKmRldiwgY29uc3QgY2hhciAqcmluZ19uYW1lLA0KPiA+Pj4+ICAgIAlyZXR1cm4gcmM7 DQo+ID4+Pj4gICAgfQ0KPiA+Pj4+DQo+ID4+Pj4gK3ZvaWQNCj4gPj4+PiArcnRlX2V0aF9mcF9v cHNfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpIHsNCj4gPj4+PiArCWlmIChkZXYgPT0g TlVMTCkNCj4gPj4+PiArCQlyZXR1cm47DQo+ID4+Pj4gKwlldGhfZGV2X2ZwX29wc19zZXR1cChy dGVfZXRoX2ZwX29wcyArIGRldi0+ZGF0YS0+cG9ydF9pZCwgZGV2KTsgfQ0KPiA+Pj4+ICsNCj4g Pj4+PiAgICBjb25zdCBzdHJ1Y3QgcnRlX21lbXpvbmUgKg0KPiA+Pj4+ICAgIHJ0ZV9ldGhfZG1h X3pvbmVfcmVzZXJ2ZShjb25zdCBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgY29uc3QNCj4gPj4+ PiBjaGFyICpyaW5nX25hbWUsDQo+ID4+Pj4gICAgCQkJIHVpbnQxNl90IHF1ZXVlX2lkLCBzaXpl X3Qgc2l6ZSwgdW5zaWduZWQgaW50IGFsaWduLCBkaWZmDQo+IC0NCj4gPj4gLWdpdA0KPiA+Pj4+ IGEvbGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmggYi9saWIvZXRoZGV2L2V0aGRldl9kcml2ZXIu aCBpbmRleA0KPiA+Pj4+IDJjOWQ2MTVmYjUuLjBkOTY0ZDFmNjcgMTAwNjQ0DQo+ID4+Pj4gLS0t IGEvbGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmgNCj4gPj4+PiArKysgYi9saWIvZXRoZGV2L2V0 aGRldl9kcml2ZXIuaA0KPiA+Pj4+IEBAIC0xNjIxLDYgKzE2MjEsMTYgQEAgaW50DQo+ID4+Pj4g ICAgcnRlX2V0aF9kbWFfem9uZV9mcmVlKGNvbnN0IHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2Rl diwgY29uc3QNCj4gPj4+PiBjaGFyICpuYW1lLA0KPiA+Pj4+ICAgIAkJIHVpbnQxNl90IHF1ZXVl X2lkKTsNCj4gPj4+Pg0KPiA+Pj4+ICsvKioNCj4gPj4+PiArICogQGludGVybmFsDQo+ID4+Pj4g KyAqIFNldHVwIGV0aCBmYXN0LXBhdGggQVBJIHRvIGV0aGRldiB2YWx1ZXMuDQo+ID4+Pj4gKyAq DQo+ID4+Pj4gKyAqIEBwYXJhbSBkZXYNCj4gPj4+PiArICogIFBvaW50ZXIgdG8gc3RydWN0IHJ0 ZV9ldGhfZGV2Lg0KPiA+Pj4+ICsgKi8NCj4gPj4+PiArX19ydGVfaW50ZXJuYWwNCj4gPj4+PiAr dm9pZCBydGVfZXRoX2ZwX29wc19zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldik7DQo+ID4+ Pj4gKw0KPiA+Pj4+ICAgIC8qKg0KPiA+Pj4+ICAgICAqIEBpbnRlcm5hbA0KPiA+Pj4+ICAgICAq IEF0b21pY2FsbHkgc2V0IHRoZSBsaW5rIHN0YXR1cyBmb3IgdGhlIHNwZWNpZmljIGRldmljZS4N Cj4gPj4+PiBkaWZmIC0tZ2l0IGEvbGliL2V0aGRldi9ydGVfZXRoZGV2LmggYi9saWIvZXRoZGV2 L3J0ZV9ldGhkZXYuaA0KPiA+Pj4+IGluZGV4DQo+ID4+Pj4gMDQ5NjQxZDU3Yy4uNDRlZTcyMjlj MSAxMDA2NDQNCj4gPj4+PiAtLS0gYS9saWIvZXRoZGV2L3J0ZV9ldGhkZXYuaA0KPiA+Pj4+ICsr KyBiL2xpYi9ldGhkZXYvcnRlX2V0aGRldi5oDQo+ID4+Pj4gQEAgLTM5NDQsMjUgKzM5NDQsMjgg QEAgZW51bSBydGVfZXRoX2V2ZW50X3R5cGUgew0KPiA+Pj4+ICAgIAkgKi8NCj4gPj4+PiAgICAJ UlRFX0VUSF9FVkVOVF9SWF9BVkFJTF9USFJFU0gsDQo+ID4+Pj4gICAgCS8qKiBQb3J0IHJlY292 ZXJpbmcgZnJvbSBhIGhhcmR3YXJlIG9yIGZpcm13YXJlIGVycm9yLg0KPiA+Pj4+IC0JICogSWYg UE1EIHN1cHBvcnRzIHByb2FjdGl2ZSBlcnJvciByZWNvdmVyeSwNCj4gPj4+PiAtCSAqIGl0IHNo b3VsZCB0cmlnZ2VyIHRoaXMgZXZlbnQgdG8gbm90aWZ5IGFwcGxpY2F0aW9uDQo+ID4+Pj4gLQkg KiB0aGF0IGl0IGRldGVjdGVkIGFuIGVycm9yIGFuZCB0aGUgcmVjb3ZlcnkgaXMgYmVpbmcgc3Rh cnRlZC4NCj4gPj4+PiAtCSAqIFVwb24gcmVjZWl2aW5nIHRoZSBldmVudCwgdGhlIGFwcGxpY2F0 aW9uIHNob3VsZCBub3QgaW52b2tlIGFueQ0KPiA+Pj4+IGNvbnRyb2wgcGF0aCBBUEkNCj4gPj4+ PiAtCSAqIChzdWNoIGFzIHJ0ZV9ldGhfZGV2X2NvbmZpZ3VyZS9ydGVfZXRoX2Rldl9zdG9wLi4u KSB1bnRpbCByZWNlaXZpbmcNCj4gPj4+PiAtCSAqIFJURV9FVEhfRVZFTlRfUkVDT1ZFUllfU1VD Q0VTUyBvcg0KPiA+Pj4+IFJURV9FVEhfRVZFTlRfUkVDT1ZFUllfRkFJTEVEIGV2ZW50Lg0KPiA+ Pj4+IC0JICogVGhlIFBNRCB3aWxsIHNldCB0aGUgZGF0YSBwYXRoIHBvaW50ZXJzIHRvIGR1bW15 IGZ1bmN0aW9ucywNCj4gPj4+PiAtCSAqIGFuZCByZS1zZXQgdGhlIGRhdGEgcGF0aCBwb2ludGVy cyB0byBub24tZHVtbXkgZnVuY3Rpb25zDQo+ID4+Pj4gLQkgKiBiZWZvcmUgcmVwb3J0aW5nIFJU RV9FVEhfRVZFTlRfUkVDT1ZFUllfU1VDQ0VTUyBldmVudC4NCj4gPj4+PiAtCSAqIEl0IG1lYW5z IHRoYXQgdGhlIGFwcGxpY2F0aW9uIGNhbm5vdCBzZW5kIG9yIHJlY2VpdmUgYW55IHBhY2tldHMN Cj4gPj4+PiAtCSAqIGR1cmluZyB0aGlzIHBlcmlvZC4NCj4gPj4+PiArCSAqDQo+ID4+Pj4gKwkg KiBJZiBQTUQgc3VwcG9ydHMgcHJvYWN0aXZlIGVycm9yIHJlY292ZXJ5LCBpdCBzaG91bGQgdHJp Z2dlciB0aGlzDQo+ID4+Pj4gKwkgKiBldmVudCB0byBub3RpZnkgYXBwbGljYXRpb24gdGhhdCBp dCBkZXRlY3RlZCBhbiBlcnJvciBhbmQgdGhlDQo+ID4+Pj4gKwkgKiByZWNvdmVyeSBpcyBhYm91 dCB0byBzdGFydC4NCj4gPj4+PiArCSAqDQo+ID4+Pj4gKwkgKiBVcG9uIHJlY2VpdmluZyB0aGUg ZXZlbnQsIHRoZSBhcHBsaWNhdGlvbiBzaG91bGQgbm90IGludm9rZSBhbnkNCj4gPj4+PiArCSAq IGNvbnRyb2wgYW5kIGRhdGEgcGF0aCBBUEkgdW50aWwgcmVjZWl2aW5nDQo+ID4+Pj4gKwkgKiBS VEVfRVRIX0VWRU5UX1JFQ09WRVJZX1NVQ0NFU1Mgb3INCj4gPj4+PiBSVEVfRVRIX0VWRU5UX1JF Q09WRVJZX0ZBSUxFRA0KPiA+Pj4+ICsJICogZXZlbnQuDQo+ID4+Pj4gKwkgKg0KPiA+Pj4+ICsJ ICogT25jZSB0aGlzIGV2ZW50IGlzIHJlcG9ydGVkLCB0aGUgUE1EIHdpbGwgc2V0IHRoZSBkYXRh IHBhdGggcG9pbnRlcnMNCj4gPj4+PiArCSAqIHRvIGR1bW15IGZ1bmN0aW9ucywgYW5kIHJlLXNl dCB0aGUgZGF0YSBwYXRoIHBvaW50ZXJzIHRvIHZhbGlkDQo+ID4+Pj4gKwkgKiBmdW5jdGlvbnMg YmVmb3JlIHJlcG9ydGluZyBSVEVfRVRIX0VWRU5UX1JFQ09WRVJZX1NVQ0NFU1MNCj4gPj4+PiBl dmVudC4NCj4gPj4+IFdoeSBkbyB3ZSBuZWVkIHRvIHNldCB0aGUgZGF0YSBwYXRoIHBvaW50ZXJz IHRvIGR1bW15IGZ1bmN0aW9ucyBpZg0KPiA+Pj4gdGhlDQo+ID4+IGFwcGxpY2F0aW9uIGlzIHJl c3RyaWN0ZWQgZnJvbSBpbnZva2luZyBhbnkgY29udHJvbCBhbmQgZGF0YSBwYXRoDQo+ID4+IEFQ SXMgdGlsbCB0aGUgcmVjb3ZlcnkgcHJvY2VzcyBpcyBjb21wbGV0ZWQ/DQo+ID4+DQo+ID4+IFlv dSBhcmUgcmlnaHQsIGluIHRoZW9yeSBpdCBpcyBub3QgbWFuZGF0b3J5Lg0KPiA+PiBUaG91Z2gg aXQgaGVscHMgdG8gZmxhZyBhIHByb2JsZW0gaWYgdXNlciB3aWxsIHN0aWxsIHRyeSB0byBjYWxs IHRoZW0NCj4gPj4gd2hpbGUgcmVjb3ZlcnkgaXMgaW4gcHJvZ3Jlc3MuDQo+ID4gT2ssIG1heSBi ZSBpbiBkZWJ1ZyBtb2RlLg0KPiA+IEkgbWVhbiwgd2UgaGF2ZSBhbHJlYWR5IHNldCBhbiBleHBl Y3RhdGlvbiB0byB0aGUgYXBwbGljYXRpb24gdGhhdCBpdCBzaG91bGQNCj4gbm90IGNhbGwgYW5k IHRoZSBhcHBsaWNhdGlvbiBoYXMgaW1wbGVtZW50ZWQgYSBtZXRob2QgdG8gZG8gdGhlIHNhbWUu IFdoeQ0KPiBkbyB3ZSBuZWVkIHRvIGNvbXBsaWNhdGUgdGhpcz8NCj4gPiBJZiB0aGUgYXBwbGlj YXRpb24gY2FsbHMgdGhlIEFQSXMsIGl0IGlzIGEgcHJvZ3JhbW1pbmcgZXJyb3IuDQo+IA0KPiAN Cj4gTXkgcHJlZmVyZW5jZSB3b3VsZCBiZSB0byBrZWVwIGl0IHRoaXMgd2F5IGZvciBib3RoIGRl YnVnIGFuZCBub24tZGVidWcNCj4gbW9kZS4NCj4gSXQgZG9lc24ndCBjb3N0IGFueXRoaW5nIHRv IHVzIGluIHRlcm1zIG9mIHBlcmZvbWFuY2UsIGJ1dCBoZWxwcyB0byBjYXRjaA0KPiBwcm9ibGVt cyB3aXRoIHdyb25nIGJlaGF2aW5nIGFwcC4NCg0KVGhpcyBpcyBhbHNvIGNhdXNpbmcgYSBzeW5j aHJvbml6YXRpb24gcHJvYmxlbS4gaS5lLiBpZiB0aGlzIGhhcyB0byBiZSBkb25lIGNvcnJlY3Rs eSwgd2UgbmVlZCB0byB1c2UgY29ycmVjdCBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtcy4NCldl IGNhbm5vdCBzZXQgdGhlIGZ1bmN0aW9uIHBvaW50ZXJzIGFuZCBhc3N1bWUgdGhhdCBkYXRhIHdp bGwgYmUgdmlzaWJsZSB0byBvdGhlciB0aHJlYWRzL2NvcmVzIGluIHRoZSBjb3JyZWN0IG9yZGVy Lg0KQSBwb3NzaWJsZSBtZWNoYW5pc20gKHRob3VnaCBJIHNlZSBzb21lIHByb2JsZW1zIHdpdGgg dGhpcykgY291bGQgYmUgdG8gdXNlIGEgZ3VhcmQgdmFyaWFibGUsIHdoaWNoIGluZGljYXRlcyB3 aGVuIGl0IGlzIHNhZmUgdG8gdXNlIHRoZSBmdW5jdGlvbiBwb2ludGVycyBvbiB0aGUgZGF0YSBw bGFuZSB0aHJlYWRzLiBUaGlzIHdvdWxkIHJlcXVpcmUgYSBsb2FkLWFjcXVpcmUgaW4gdGhlIGRh dGEgcGxhbmUgdGhyZWFkcy4NCg0KPiANCj4gPg0KPiA+PiBBZ2Fpbiwgc2FtZSBhcyB3ZSBkb2lu ZyBpbiBkZXZfc3RvcCgpLg0KPiA+DQo+ID4+DQo+ID4+Pg0KPiA+Pj4+ICsJICoNCj4gPj4+PiAg ICAJICogQG5vdGUgQmVmb3JlIHRoZSBQTUQgcmVwb3J0cyB0aGUgcmVjb3ZlcnkgcmVzdWx0LA0K PiA+Pj4+ICAgIAkgKiB0aGUgUE1EIG1heSByZXBvcnQgdGhlIFJURV9FVEhfRVZFTlRfRVJSX1JF Q09WRVJJTkcgZXZlbnQNCj4gPj4+PiBhZ2FpbiwNCj4gPj4+PiAgICAJICogYmVjYXVzZSBhIGxh cmdlciBlcnJvciBtYXkgb2NjdXIgZHVyaW5nIHRoZSByZWNvdmVyeS4NCj4gPj4+PiAgICAJICov DQo+ID4+Pj4gICAgCVJURV9FVEhfRVZFTlRfRVJSX1JFQ09WRVJJTkcsDQo+ID4+PiBJIHVuZGVy c3RhbmQgdGhpcyBpcyBub3QgYSBjaGFuZ2UgaW4gdGhpcyBwYXRjaC4gQnV0LCBqdXN0DQo+ID4+ PiB3b25kZXJpbmcsIHdoYXQgaXMgdGhlDQo+ID4+IHB1cnBvc2Ugb2YgdGhpcz8gSG93IGlzIHRo ZSBhcHBsaWNhdGlvbiBzdXBwb3NlZCB0byB1c2UgdGhpcz8NCj4gPj4+DQo+ID4+Pj4gICAgCS8q KiBQb3J0IHJlY292ZXJzIHN1Y2Nlc3NmdWxseSBmcm9tIHRoZSBlcnJvci4NCj4gPj4+PiAtCSAq IFRoZSBQTUQgYWxyZWFkeSByZS1jb25maWd1cmVkIHRoZSBwb3J0LA0KPiA+Pj4+IC0JICogYW5k IHRoZSBlZmZlY3QgaXMgdGhlIHNhbWUgYXMgYSByZXN0YXJ0IG9wZXJhdGlvbi4NCj4gPj4+PiAr CSAqDQo+ID4+Pj4gKwkgKiBUaGUgUE1EIGFscmVhZHkgcmUtY29uZmlndXJlZCB0aGUgcG9ydDoN Cj4gPj4+PiAgICAJICogYSkgVGhlIGZvbGxvd2luZyBvcGVyYXRpb24gd2lsbCBiZSByZXRhaW5l ZDogKGFscGhhYmV0aWNhbGx5KQ0KPiA+Pj4+ICAgIAkgKiAgICAtIERDQiBjb25maWd1cmF0aW9u DQo+ID4+Pj4gICAgCSAqICAgIC0gRkVDIGNvbmZpZ3VyYXRpb24NCj4gPj4+PiBAQCAtMzk4OSw2 ICszOTkyLDkgQEAgZW51bSBydGVfZXRoX2V2ZW50X3R5cGUgew0KPiA+Pj4+ICAgIAkgKiAgICAg IChAc2VlIFJURV9FVEhfREVWX0NBUEFfRkxPV19TSEFSRURfT0JKRUNUX0tFRVApDQo+ID4+Pj4g ICAgCSAqIGMpIEFueSBvdGhlciBjb25maWd1cmF0aW9uIHdpbGwgbm90IGJlIHN0b3JlZA0KPiA+ Pj4+ICAgIAkgKiAgICBhbmQgd2lsbCBuZWVkIHRvIGJlIHJlLWNvbmZpZ3VyZWQuDQo+ID4+Pj4g KwkgKg0KPiA+Pj4+ICsJICogVGhlIGFwcGxpY2F0aW9uIHNob3VsZCByZXN0b3JlIHNvbWUgYWRk aXRpb25hbCBjb25maWd1cmF0aW9uDQo+ID4+Pj4gKwkgKiAoc2VlIGFib3ZlIGNhc2UgYi9jKSwg YW5kIHRoZW4gZW5hYmxlIGRhdGEgcGF0aCBBUEkgaW52b2NhdGlvbi4NCj4gPj4+PiAgICAJICov DQo+ID4+Pj4gICAgCVJURV9FVEhfRVZFTlRfUkVDT1ZFUllfU1VDQ0VTUywNCj4gPj4+PiAgICAJ LyoqIFBvcnQgcmVjb3ZlcnkgZmFpbGVkLg0KPiA+Pj4+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2 L3ZlcnNpb24ubWFwIGIvbGliL2V0aGRldi92ZXJzaW9uLm1hcCBpbmRleA0KPiA+Pj4+IDM1N2Qx YTg4YzAuLmMyNzNlMGJkYWUgMTAwNjQ0DQo+ID4+Pj4gLS0tIGEvbGliL2V0aGRldi92ZXJzaW9u Lm1hcA0KPiA+Pj4+ICsrKyBiL2xpYi9ldGhkZXYvdmVyc2lvbi5tYXANCj4gPj4+PiBAQCAtMzIw LDYgKzMyMCw3IEBAIElOVEVSTkFMIHsNCj4gPj4+PiAgICAJcnRlX2V0aF9kZXZpY2VzOw0KPiA+ Pj4+ICAgIAlydGVfZXRoX2RtYV96b25lX2ZyZWU7DQo+ID4+Pj4gICAgCXJ0ZV9ldGhfZG1hX3pv bmVfcmVzZXJ2ZTsNCj4gPj4+PiArCXJ0ZV9ldGhfZnBfb3BzX3NldHVwOw0KPiA+Pj4+ICAgIAly dGVfZXRoX2hhaXJwaW5fcXVldWVfcGVlcl9iaW5kOw0KPiA+Pj4+ICAgIAlydGVfZXRoX2hhaXJw aW5fcXVldWVfcGVlcl91bmJpbmQ7DQo+ID4+Pj4gICAgCXJ0ZV9ldGhfaGFpcnBpbl9xdWV1ZV9w ZWVyX3VwZGF0ZTsNCj4gPj4+PiAtLQ0KPiA+Pj4+IDIuMTcuMQ0KPiA+Pj4NCj4gPg0KPiA+IElz IHRoZXJlIGFueSByZWFzb24gbm90IHRvIGRlc2lnbiB0aGlzIGluIHRoZSBzYW1lIHdheSBhcw0K PiAncnRlX2V0aF9kZXZfcmVzZXQnPyBXaHkgZG9lcyB0aGUgUE1EIGhhdmUgdG8gcmVjb3ZlciBi eSBpdHNlbGY/DQo+IA0KPiBJIHN1cHBvc2UgaXQgaXMgYSBxdWVzdGlvbiBmb3IgdGhlIGF1dGhv cnMgb2Ygb3JpZ2luYWwgcGF0Y2guLi4NCkFwcHJlY2lhdGUgaWYgdGhlIGF1dGhvcnMgY291bGQg Y29tbWVudCBvbiB0aGlzLg0KDQo+IA0KPiA+IFdlIGNvdWxkIGhhdmUgYSBzaW1pbGFyIEFQSSAn cnRlX2V0aF9kZXZfcmVjb3ZlcicgdG8gZG8gdGhlIHJlY292ZXJ5DQo+IGZ1bmN0aW9uYWxpdHku DQo+IA0KPiBJIHN1cHBvc2Ugc3VjaCBhcHByb2FjaCBpcyBhbHNvIHBvc3NpYmxlLg0KPiBQZXJz b25hbGx5IEkgYW0gZmluZSB3aXRoIGJvdGggd2F5czogZWl0aGVyIGV4aXN0aW5nIG9uZSBvciB3 aGF0IHlvdSBwcm9wb3NlLA0KPiBhcyBsb25nIGFzIHdlJ2xsIGZpeCBleGlzdGluZyByYWNlLWNv bmRpdGlvbi4NCj4gV2hhdCBpcyBnb29kIHdpdGggd2hhdCB5b3Ugc3VnZ2VzdCAtIHRoYXQgd2F5 IHdlIHByb2JhYmx5IGRvbid0IG5lZWQgdG8NCj4gd29ycnkgaG93IHRvIGFsbG93IHVzZXIgdG8g ZW5hYmxlL2Rpc2FibGUgYXV0by1yZWNvdmVyeSBpbnNpZGUgUE1ELg0KPiANCj4gS29uc3RhbnRp bg0KPiANCg0K