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 C5F8F42C50; Mon, 12 Jun 2023 19:58:50 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5FE7F410DD; Mon, 12 Jun 2023 19:58:50 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 5C69B40698 for ; Mon, 12 Jun 2023 19:58:48 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35CEGjOb029520; Mon, 12 Jun 2023 10:58:47 -0700 Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2176.outbound.protection.outlook.com [104.47.59.176]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3r65020w6n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 12 Jun 2023 10:58:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YBBhtoTfQ+t6qpT+BlS+zMyYsEUleKtoFbsdU+PCMoMddeYoaG/AqNdJOlbt2cQ7gC3lhmiKeX8Eta/d84X6nc9vIBOZ6PRDFjWdkKuDWQVhbZtq9vOf3JOc85N2AS7ALEJwty0bNoNryLhoDsQwXRDvlCqR7mczuFvnXM6gUhGO7QYGzodSwNks3aT3Q/Uv9HwbELqSt9ibuDXP6JjvOjQVimg0Q20EqzAKSkhr5NSeAgKQQ3ynd4iB5OfvCuJ16lUgjSyTFze26Vwnx7x32uAw9EEp/nFD1bFoqgBO2ZIPsPrjblvgHRrWOw3ihZoPNix8UbUiGRlJ0XL/9YAEXQ== 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=8ZYYCl78fXBudhx5Mv3GWMhoC2PLvTXiIzgDedqiD6M=; b=hgDPDQPfO9aB4wBpdDPsAmf/GMARKbnwukXXkhdbG/tPvNH0DO2T5E57hGTI2BUUlUKP49j+7FJxNVrE8kTsnMCWMLQkrA6iP9fjrzFeYKkWu856g7lUEu523mTNFIKH2boo1F0I9jIGs0bFrWhNls4FIQgd8HKAyAfq2BNUrDShjThpBxv64zgHwjfAF9jHGE8m89tGvbMvpzjbhebl7z7PafxFCDAX1yA3BrQlhgkDnHuAGVbiIa8KuzQRmFpFAlgzvrQmNl/uUBaY11Mm4SkWRqb4wskNjBue1njFsRe0LhmSDnCFUfdKIpJ6TXmDFxQlhZS8dslplumSJP9jfA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8ZYYCl78fXBudhx5Mv3GWMhoC2PLvTXiIzgDedqiD6M=; b=LIddDnLYUN88iz+bIj/e5Qp97++as9hLpiagXimogJEA7b7cNA6ZbxLN9xNPXv8gnAjXsYInjNdYVKw5S9LfRdRgPREprIXgDo7eTsC2JIE22+InHWlNGcsbXAd8W5R0HVVKh43jxwgA8Xm9fsndpzo+NbGh1maj7oLBUAedPss= Received: from SJ0PR18MB5161.namprd18.prod.outlook.com (2603:10b6:a03:438::6) by MW3PR18MB3579.namprd18.prod.outlook.com (2603:10b6:303:2f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.29; Mon, 12 Jun 2023 17:58:44 +0000 Received: from SJ0PR18MB5161.namprd18.prod.outlook.com ([fe80::f6c5:d750:1f52:7eb8]) by SJ0PR18MB5161.namprd18.prod.outlook.com ([fe80::f6c5:d750:1f52:7eb8%4]) with mapi id 15.20.6477.028; Mon, 12 Jun 2023 17:58:44 +0000 From: Amit Prakash Shukla To: Thomas Monjalon CC: Jerin Jacob Kollanukkaran , Kiran Kumar Kokkilagadda , Nithin Kumar Dabilpuram , Pavan Nikhilesh Bhagavatula , "dev@dpdk.org" , Sunil Kumar Kori Subject: RE: [EXT] Re: [PATCH v3 1/3] lib: add IPv6 lookup node Thread-Topic: [EXT] Re: [PATCH v3 1/3] lib: add IPv6 lookup node Thread-Index: AQHZk7RbXwxyCHf45k+2jUptZCPe3q91ORSAgBJI8nA= Date: Mon, 12 Jun 2023 17:58:44 +0000 Message-ID: References: <20230518155654.1756576-1-amitprakashs@marvell.com> <20230531113743.1929627-1-amitprakashs@marvell.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-dg-ref: =?utf-8?B?UEcxbGRHRStQR0YwSUc1dFBTSmliMlI1TG5SNGRDSWdjRDBpWXpwY2RYTmxj?= =?utf-8?B?bk5jWVcxcGRIQnlZV3RoYzJoelhHRndjR1JoZEdGY2NtOWhiV2x1WjF3d09X?= =?utf-8?B?UTRORGxpTmkwek1tUXpMVFJoTkRBdE9EVmxaUzAyWWpnMFltRXlPV1V6TldK?= =?utf-8?B?Y2JYTm5jMXh0YzJjdFl6TXhNR05oWW1JdE1EazBZUzB4TVdWbExXSTJaRGN0?= =?utf-8?B?WTJReU9ERmpZMlU1T0dFMlhHRnRaUzEwWlhOMFhHTXpNVEJqWVdKakxUQTVO?= =?utf-8?B?R0V0TVRGbFpTMWlObVEzTFdOa01qZ3hZMk5sT1RoaE5tSnZaSGt1ZEhoMElp?= =?utf-8?B?QnplajBpTWpVMk1UTWlJSFE5SWpFek16TXhNRFkyTXpJeE5ETTFNakkwTmlJ?= =?utf-8?B?Z2FEMGlRV0ZGU201TFFsQkNOREpuVURZd2VYRjRZVVZIVDNoMk5rYzBQU0ln?= =?utf-8?B?YVdROUlpSWdZbXc5SWpBaUlHSnZQU0l4SWlCamFUMGlZMEZCUVVGRlVraFZN?= =?utf-8?B?VkpUVWxWR1RrTm5WVUZCVGpSUVFVRkNNbmcyYlVaV05UTmFRVkZQUXk5MlpW?= =?utf-8?B?TmpWVGt2UVRSTUt6azFTbmhVTXpoYVFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVoQlFVRkJRblZFZDBGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVVZCUVZGRlFrRkJRVUZKTjNGVWNFRkRRVUZSUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGS05FRkJRVUpvUVVkUlFWcEJRbmxCUjFWQlkzZENla0ZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJSVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZuUVVGQlFVRkJibWRCUVVGSFRVRmtVVUo2UVVoUlFXSjNRblJC?= =?utf-8?B?UmpoQlkwRkNiRUZJU1VGamQwSjJRVWMwUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVZGQlFVRkJRVUZCUVVGRFFVRkJRVUZCUTJWQlFVRkJXWGRDTVVGSVRV?= =?utf-8?B?RmtRVUoyUVVjd1FWaDNRbmRCUjJkQlluZENkVUZIVlVGaVowSXhRVWN3UVZs?= =?utf-8?B?blFteEJTRWxCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRMEZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVSkJRVUZCUVVGQlFVRkJTVUZCUVVGQlFVbzBRVUZC?= =?utf-8?B?UW1wQlNGVkJZM2RDTUVGSE9FRmlVVUptUVVoTlFXTjNRblZCUmpoQldrRkNh?= =?utf-8?B?RUZJVFVGaFFVSm1RVWhaUVUxQlFYbEJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-refone: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZGUVVGQlFVRkJRVUZCUVdkQlFVRkJRVUZ1?= =?utf-8?B?WjBGQlFVZE5RV1JSUW5wQlNGRkJZbmRDZEVGR09FRmpkMEo2UVVjMFFWaDNR?= =?utf-8?B?bkpCUjFWQlpWRkNNMEZIT0VGalowSnJRVWhOUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlVVRkJRVUZCUVVGQlFV?= =?utf-8?B?TkJRVUZCUVVGRFpVRkJRVUZaZDBJeFFVaE5RV1JCUW5aQlJ6QkJXSGRDZWtG?= =?utf-8?B?SVRVRmlaMEptUVVjMFFXSjNRbXRCUjFWQllrRkNjRUZITUVGaFVVSXdRVWRW?= =?utf-8?B?UVdOblFtWkJTRmxCVFVGQmVVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRa0ZC?= =?utf-8?B?UVVGQlFVRkJRVUZKUVVGQlFVRkJTalJCUVVGQ2FrRklWVUZqZDBJd1FVYzRR?= =?utf-8?B?V0pSUW1aQlNFMUJZM2RDZFVGR09FRmpkMEozUVVkRlFWbDNRbXhCUmpoQlpH?= =?utf-8?B?ZEJkMEZFU1VGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVWQlFVRkJRVUZCUVVGQlowRkJRVUZCUVc1blFVRkJSMUZCWWtG?= =?utf-8?B?Q2QwRkdPRUZqZDBKeVFVaHJRV05CUW14QlJqaEJXWGRDYjBGSFJVRmtRVUpt?= =?utf-8?B?UVVjd1FWcFJRbnBCU0UxQldWRkNia0ZIVlVGWWQwSXlRVVJCUVUxblFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRlJRVUZCUVVGQlFVRkJRMEZCUVVGQlFVTmxR?= =?utf-8?B?VUZCUVZwQlFuTkJTRUZCV0hkQ2VrRkhkMEZaVVVKcVFVZHpRVmgzUW1wQlIy?= =?utf-8?B?ZEJXVkZDTUVGR09FRmlVVUpzUVVoTlFXTjNRbWhCUjJOQldsRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-reftwo: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZDUVVGQlFVRkJRVUZCUVVsQlFVRkJR?= =?utf-8?B?VUZLTkVGQlFVSnJRVWQzUVdOQlFtWkJTRkZCV2xGQ2FFRkhNRUZqZDBKbVFV?= =?utf-8?B?YzRRV0puUW14QlIxRkJZMmRDY0VGSVdVRmFVVUptUVVkWlFXRlJRbk5CUjFW?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlJVRkJRVUZCUVVG?= =?utf-8?B?QlFVRm5RVUZCUVVGQmJtZEJRVUZIVlVGaVVVSm9RVWRyUVdKQlFtWkJSMFZC?= =?utf-8?B?V2tGQ2EwRklTVUZhVVVKNlFVaE5RVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZFVVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VkZCUVVGQlFVRkJRVUZEUVVGQlFVRkJRMlZCUVVGQllsRkNhRUZJU1VGa1ow?= =?utf-8?B?SnNRVWQzUVZoM1FuZEJTRWxCWW5kQ2NVRkhWVUZaZDBJd1FVWTRRV0puUW1o?= =?utf-8?B?QlJ6QkJXbEZDZWtGR09FRlpkMEoyUVVjMFFWcG5RbkJCUjFGQldsRkNkVUZJ?= =?utf-8?B?VVVGaFVVSm9RVWQzUVZoM1FtaEJSM2RCWW5kQ2RVRkhWVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVKQlFVRkJRVUZCUVVGQlNVRkJRVUZCUVVvMFFVRkJRblJC?= =?utf-8?B?UjBWQlkyZENNa0ZIVlVGaVFVSm1RVWhCUVdOblFuWkJSMjlCV2xGQ2FrRklV?= =?utf-8?B?VUZZZDBKMVFVZEZRV0pSUW14QlNFMUJXSGRDZVVGSFZVRmpkMEl3UVVoSlFX?= =?utf-8?B?RlJRbXBCU0ZGQldsRkNhMEZHT0VGWlVVSnpRVWM0UVdKblFteEJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkZRVUZCUVVGQlFVRkJRV2RCUVVGQlFV?= =?utf-8?B?RnVaMEZCUVVjd1FWbFJRbmxCU0ZsQldsRkNjMEZHT0VGalFVSjVRVWM0UVdG?= =?utf-8?B?blFteEJSMDFCWkVGQ1prRkhORUZaVVVKMFFVZFZRV04zUW1aQlNFbEJXbEZD?= =?utf-8?B?ZWtGSVVVRmpaMEp3UVVkTlFXUkJRbXhCUjFGQldIZENiMEZIVlVGbFFVSnFR?= =?utf-8?B?VWM0UVZwQlFteEJTRTFCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCVVVGQlFVRkJRVUZC?= =?utf-8?B?UVVOQlFVRkJRVUZEWlVGQlFVRmlVVUpvUVVoSlFXUm5RbXhCUjNkQllrRkNa?= =?utf-8?B?a0ZIUlVGalowSjBRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-rorf: true x-dg-refthree: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFrRkJRVUZC?= =?utf-8?B?UVVGQlFVRkpRVUZCUVVGQlNqUkJRVUZDZEVGSFJVRmpaMEl5UVVkVlFXSkJR?= =?utf-8?B?bk5CUmpoQlduZENka0ZIT0VGYWQwSnpRVWRWUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVVZCUVVGQlFVRkJRVUZCWjBGQlFVRkJRVzVuUVVGQlJ6QkJXVkZDZVVG?= =?utf-8?B?SVdVRmFVVUp6UVVkM1FWaDNRbmRCU0VsQlluZENjVUZIVlVGWmQwSXdRVVk0?= =?utf-8?B?UVZsM1FuWkJSMUZCV2xGQ2VrRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGUlFVRkJRVUZCUVVGQlEwRkJRVUZCUVVObFFVRkJR?= =?utf-8?B?V0pSUW1oQlNFbEJaR2RDYkVGSGQwRmlRVUptUVVoQlFXTm5RblpCUjI5Qlds?= =?utf-8?B?RkNha0ZJVVVGWWQwSnFRVWM0UVZwQlFteEJTRTFCV0hkQ2EwRkhhMEZaZDBJ?= =?utf-8?B?d1FVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkNRVUZCUVVGQlFVRkJRVWxCUVVG?= =?utf-8?B?QlFVRktORUZCUVVKMFFVZEZRV05uUWpKQlIxVkJZa0ZDYzBGR09FRmpRVUo1?= =?utf-8?B?UVVjNFFXRm5RbXhCUjAxQlpFRkNaa0ZITkVGWlVVSjBRVWRWUVdOM1FtWkJS?= =?utf-8?B?MDFCWW5kQ2RVRkhXVUZoVVVKclFVZFZRV0puUWpCQlIydEJXVkZDYzBGR09F?= =?utf-8?B?RmlVVUpvUVVoSlFXUm5RbXhCUjNkQllrRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUlVGQlFVRkJR?= =?utf-8?B?VUZCUVVGblFVRkJRVUZCYm1kQlFVRkhNRUZaVVVKNVFVaFpRVnBSUW5OQlIz?= =?utf-8?B?ZEJXSGRDZDBGSVNVRmlkMEp4UVVkVlFWbDNRakJCUmpoQlltZENhRUZITUVG?= =?utf-8?B?YVVVSjZRVVk0UVZsM1FuWkJSelJCV21kQ2NFRkhVVUZhVVVKMVFVaFJRV0ZS?= =?utf-8?B?UW1oQlIzZEJXSGRDZEVGSFJVRmpaMEl5UVVkVlFXSkJRbk5CUmpoQlluZENl?= =?utf-8?B?VUZHT0VGWlVVSjVRVWN3UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?Q?FBQUFB?= x-dg-reffour: =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFWRkJR?= =?utf-8?B?VUZCUVVGQlFVRkRRVUZCUVVGQlEyVkJRVUZCWWxGQ2FFRklTVUZrWjBKc1FV?= =?utf-8?B?ZDNRV0pCUW1aQlNFRkJZMmRDZGtGSGIwRmFVVUpxUVVoUlFWaDNRblZCUjBW?= =?utf-8?B?QllsRkNiRUZJVFVGWWQwSnFRVWM0UVdKblFtMUJSMnRCV2tGQ2JFRkhORUZr?= =?utf-8?B?UVVKd1FVZEZRV0pCUW1aQlJ6QkJXVkZDZVVGSVdVRmFVVUp6UVVkM1FWaDNR?= =?utf-8?B?blpCU0VsQldIZENia0ZIT0VGaWQwSnVRVWQzUVZwUlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUpCUVVGQlFVRkJRVUZCU1VGQlFVRkJRVW8wUVVGQlFuUkJSMFZC?= =?utf-8?B?WTJkQ01rRkhWVUZpUVVKelFVWTRRV05CUW5sQlJ6aEJZV2RDYkVGSFRVRmtR?= =?utf-8?B?VUptUVVjMFFWbFJRblJCUjFWQlkzZENaa0ZJU1VGYVVVSjZRVWhSUVdOblFu?= =?utf-8?B?QkJSMDFCWkVGQ2JFRkhVVUZZZDBKMFFVZEZRV05uUWpKQlIxVkJZa0ZDYzBG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGRlFVRkJRVUZCUVVGQlFXZEJRVUZCUVVGdVow?= =?utf-8?B?RkJRVWN3UVZsUlFubEJTRmxCV2xGQ2MwRkhkMEZZZDBKM1FVaEpRV0ozUW5G?= =?utf-8?B?QlIxVkJXWGRDTUVGR09FRmlaMEpvUVVjd1FWcFJRbnBCUmpoQlkyZENiRUZJ?= =?utf-8?B?VFVGa1FVSjVRVWRyUVZsM1FqQkJSMVZCV2tGQ1prRkhNRUZaVVVKNVFVaFpR?= =?utf-8?B?VnBSUW5OQlIzZEJXSGRDZGtGSVNVRllkMEpvUVVoSlFXSlJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJVVUZCUVVGQlFVRkJRVU5C?= =?utf-8?B?UVVGQlFVRkRaVUZCUVVGaVVVSm9RVWhKUVdSblFteEJSM2RCWWtGQ1prRklV?= =?utf-8?B?VUZhVVVKNVFVY3dRV0ZSUW5WQlNGVkJZM2RCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUWtGQlFV?= =?utf-8?B?RkJRVUZCUVVGSlFVRkJRVUZCU2pSQlFVRkNkRUZIUlVGalowSXlRVWRWUVdK?= =?utf-8?B?QlFuTkJSamhCWkhkQ2RrRklTVUZhUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJTVUZCUVVGQlFVRkJRVUZC?= =?utf-8?Q?QUFBQUVBQUFBQUFBQUFBZ0FBQUFBQSIvPjwvbWV0YT4=3D?= x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR18MB5161:EE_|MW3PR18MB3579:EE_ x-ms-office365-filtering-correlation-id: 83e7f9e5-320d-41f9-a8f4-08db6b6ea9b0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qsd1c4+IcQdKVlqlx+3NDIAh57Jv6RqI4p2gTXjRyEKbSIXrTTJTHX35ME+HSwCvNIKWSagyHmDo6Gkx9iP/ZnEg753utMIyK3mGyLQDhHNsUoG9pByu2wZTMwKVIpE6vg4kJ0RJorQjMAzXK1Uu4I6Bq5N59kYhs39Y52HdCxp6fu9hQbsvA/iU6FmCG5Ln68lBlmHTjS4+PnGVv6dbER3r7qGWeTGjE1xsrBjSiv/igOWZaHlIlvqYXDWl9Go3WUnE/Q0SW/LKhEKS2aYULz1hZsiCVsY136XrhAYBYpR7c73SW1XC8BwPInG8Q6oLm2L5xPmIoNs+aJx3FzFyvt2MnWvWxcx56sBGVzrDhXs/aivd+QDQmUa/YfpaCHEn+zHvJwcm9pjShxdKXSX5xB6y9XUxdMnT5AiTsQUntZptfRc9Xulez5Irb+8MeId1k2jFp4T7DKTjK9Xeertp2go8ixKz+yWdHS+E9EUz0tiMHeoXCHsmBNJta69KQOxBu8mQ5cV2j8bR4+XlcbAttiwPPeER7k48wlZKGndE+wCQAqJL+W7gYxnBxQeNZ1E1hJfB67Ii1iK0K7dJ1JvOVK2YPeRSLr+iqeizdGPmmSxm2FSjV0qsDFsIfANpmMzA x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR18MB5161.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(136003)(346002)(366004)(39860400002)(376002)(396003)(451199021)(86362001)(107886003)(7696005)(316002)(8676002)(41300700001)(83380400001)(5660300002)(55016003)(38100700002)(53546011)(6506007)(52536014)(33656002)(122000001)(8936002)(71200400001)(9686003)(38070700005)(66446008)(66476007)(66556008)(64756008)(4326008)(66946007)(76116006)(6916009)(478600001)(186003)(30864003)(2906002)(54906003)(579004)(559001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SVJNc0lXeFhrVVZ0dkZOVXJZYWM4bTEyQ0ltSytlY0lpSDNtUm1jQzlXQkwv?= =?utf-8?B?amxjL3pnd04vTVBEZTVuSXBYanhJMkNxZFRidHoyRFNwazg1cU1jUlBoQVBE?= =?utf-8?B?eitWVmVDVlpyT1VleXdXK2VYSW9YcEVhQi92OThUOWdSM0VLcEo5QmZGMFJx?= =?utf-8?B?TFpSTmZZOFg5cWl1M205YVM2aVlVTnY2YVBRR3ZQUjlsZXdzek9qbE43N20z?= =?utf-8?B?bXRPN0U2elZsbXhpTmdzcU52cVJSMDVwejMybXdhazN3cXZRL0U0Q2VMeCtZ?= =?utf-8?B?N3VlMDFnZGJ3UU96WVdzU2J2TzE0Rndocm5rZHJVVytsVFJ5VGVScEFwM2VF?= =?utf-8?B?ZlVZSlh2OENzaURmYUJqbDVVUWxRbmdIMFJYQmx0amlISDdicDRxVzhWNUlD?= =?utf-8?B?SUVlYm9lbDRkZld5anJCTGRCTTFmME9QakZPOGpjSk5EdGFaaW9JTklIOCtr?= =?utf-8?B?bXlyMWpaRklscG5TbXMyUUhZWFVOWTdseWd1ZENCMVZQK2ZPZXU0enRhYjBZ?= =?utf-8?B?NnNuR1dxNEg4bHRsUWN4N0tBNE5zYUNRV2RwME9yK0NwWnpRblc3STlvRGlJ?= =?utf-8?B?bFV3TVNHbUhYZ0duRzYxWkJBL0p6S1B6QTJZQlRHc045Y2ZVYW8yRWd6UTBW?= =?utf-8?B?bmpNV2F4ejBRT3pYcGs0b0JhbkJISXhRb2h5dmUrYm4xR0lYY3J5QVRsbDhp?= =?utf-8?B?MzhZYkN5c1d3Z1pLSXFKTHIrVG5vcks5WERudlBFWnpSL0Jrci9sS0d2VzUx?= =?utf-8?B?djRoSUcrbEtFM1Qrcittck1xcVpIM0RoV3RiWGJjTmY1NEdQbFpEamZXcHc5?= =?utf-8?B?MFpPSk91R1FXVjRPRXY3eWJnY1BEMkJmd3dGZit6aFlab2cvY3p1RzA4dWhH?= =?utf-8?B?d3ZUeXV1SEtxR3VpUnU1S0NjZHpWMXdCcGZ6WUlncmR0OTl6eWVMdVJDdGI4?= =?utf-8?B?NVRVdzNQampuejJ2dXVSU0pBVW5OWitSRlU3N3dCOWJVaENVM01US1Y3ZFR5?= =?utf-8?B?UHR3M25zcTVhL08xZm9Hb2JEVTlSTUJKSzNRMHNLV21PaVlVbis3SEgvSkxE?= =?utf-8?B?T3hWUkRzcy8rM2Z3KzB3d0dDLzE5QWdSR24ycDVMZkdxeUtoWllEcFAyR1FP?= =?utf-8?B?Q3k5cGRhTjlHRWsvayswaWxTT2VSNm9wNkFZeUJiMWVCTktmL210bVZkbERa?= =?utf-8?B?Q2ZQQ05iK2tEZkN1TXkzdkNtaWNveVJ5dDNRamp5amtZNmNpSldpdHhSQlA2?= =?utf-8?B?ZGp5TUhZeW9uRkhGQzl6Q011aGs5dnZrVUMxR1lRSi9SOEhybW4rRHUwRlE1?= =?utf-8?B?QU1uOUJvV29tRUhXQWdtUE02ZVowWmFXUVBVN2NCZUxMb3BmOUhqdkJGcXhU?= =?utf-8?B?SGdkdktIRWRmM24xV3NxMGZSWHpqM3lIYUUwOGoyZlBBc04zWW1PQnlMWTA3?= =?utf-8?B?SXRacnJ6VzFBaVpTS3dzODg2MGxCamdKaHIyVFp5Unk4elBIL1N6d3RYeDNI?= =?utf-8?B?SHYyTEJKQjVjWjFTZWNTMzlaSUdKMloyU2IvaE5SRVJsZ00xcEtQTFo4RndE?= =?utf-8?B?UG1CUGdmL3ZHNnFFb3VuYW02VVVDbUxPclJESXUxSGRETFV0M1UydmluYVgy?= =?utf-8?B?NUp6V3YydmhBTS84VklHL0pvNFJucXNIOG9ab1BFQjcyYVlrbmRVUmF1ZEZJ?= =?utf-8?B?UDdLTVN1S25WVzlCLzhuZlNxRWFNUUJvdXlxZ0V2RmFvb28zeUtkZXpjSHN6?= =?utf-8?B?RWQ3VG5kc1Nhb2wzZ25mNk1nNWpoS1p4WDdHZ2ZYUW1NL2dibXZxN20wbEpK?= =?utf-8?B?d2dlZzd0WDdjTDJpaUY5d1gyLytYY2dYT1hseDNzamV4TThwRlVYalFOeDdW?= =?utf-8?B?WlRFQVNCdUVIbkRyTTBPYVN0RkpGRGQrVnlSc2xkYkgvSklmMWV2NE9tRWxG?= =?utf-8?B?NGR0R3VpYWZBZnQ3V0NlOWJhd1oxZkNVRFhSMURNRlZaZ3dIUlBrRUM0SmpM?= =?utf-8?B?UjV0Y3VPaGo1RGg4NHBsYmgxMzNKdlFQVVFpU0E1T3VObTFSeHc1ZXdrMmd2?= =?utf-8?B?ODEwZ3NXWm91RlJzTGRFN0VTazY1eGFXMXh2Sm1hTER3cW12VFA4NDBCVHNJ?= =?utf-8?B?MVdXb0pKaExOTUFncDRMYitrZU1HRmcyR0krSEZ6VGN5L2pCZTVJYjJ0eGtn?= =?utf-8?Q?ULjlno4lUGE65k9hO3nrqt+g8aO/IizMuIeRBO671be/?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR18MB5161.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 83e7f9e5-320d-41f9-a8f4-08db6b6ea9b0 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jun 2023 17:58:44.0549 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: NGzmXqP0vTPUepN9h9lSvU75Prpm5WSu8N3N4lCjDyyznl+rtzjsIq2lF2BwtjX/x8WFv+l+13ZO917wz7H/hB2lXrPWyHwOaw8QWQoB1n8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR18MB3579 X-Proofpoint-ORIG-GUID: xa32n31clxinR0T-7ZJyeWzltiX-3cHY X-Proofpoint-GUID: xa32n31clxinR0T-7ZJyeWzltiX-3cHY X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_13,2023-06-12_02,2023-05-22_02 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 SGkgVGhvbWFzLA0KDQpUaGlzIHNlcmllcyBpcyBhY2tlZCBieSBub2RlIG1haW50YWluZXIuIFBs ZWFzZSBjb25zaWRlciBtZXJnaW5nLg0KDQpDSSBpcyBmYWlsaW5nIGluIHRoZSBkb2MgYnVpbGQs IGJ1dCBJIGJlbGlldmUgaXQgaXMgcGlja2luZyB1cCB3cm9uZyBsM19mb3J3YXJkX2dyYXBoLnJz dCBmaWxlLCBhcyB3aXRoIHRoaXMgbGF0ZXN0IHBhdGNoIHRoZSBzdHJpbmcgIkFkZCByb3V0ZSB0 byBpcDQgZ3JhcGggaW5mcmEuIiBoYXMgYmVlbiByZW1vdmVkLg0KDQpUaGFua3MsDQpBbWl0IFNo dWtsYQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE5pdGhpbiBEYWJp bHB1cmFtIDxuaXRoaW5kMTk4OEBnbWFpbC5jb20+DQo+IFNlbnQ6IFRodXJzZGF5LCBKdW5lIDEs IDIwMjMgNzo1NSBBTQ0KPiBUbzogQW1pdCBQcmFrYXNoIFNodWtsYSA8YW1pdHByYWthc2hzQG1h cnZlbGwuY29tPg0KPiBDYzogSmVyaW4gSmFjb2IgS29sbGFudWtrYXJhbiA8amVyaW5qQG1hcnZl bGwuY29tPjsgS2lyYW4gS3VtYXINCj4gS29ra2lsYWdhZGRhIDxraXJhbmt1bWFya0BtYXJ2ZWxs LmNvbT47IE5pdGhpbiBLdW1hciBEYWJpbHB1cmFtDQo+IDxuZGFiaWxwdXJhbUBtYXJ2ZWxsLmNv bT47IFBhdmFuIE5pa2hpbGVzaCBCaGFnYXZhdHVsYQ0KPiA8cGJoYWdhdmF0dWxhQG1hcnZlbGwu Y29tPjsgZGV2QGRwZGsub3JnOyBTdW5pbCBLdW1hciBLb3JpDQo+IDxza29yaUBtYXJ2ZWxsLmNv bT4NCj4gU3ViamVjdDogW0VYVF0gUmU6IFtQQVRDSCB2MyAxLzNdIGxpYjogYWRkIElQdjYgbG9v a3VwIG5vZGUNCj4gDQo+IEV4dGVybmFsIEVtYWlsDQo+IA0KPiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IEFj a2VkLWJ5OiBOaXRoaW4gRGFiaWxwdXJhbTxuZGFiaWxwdXJhbUBtYXJ2ZWxsLmNvbT4NCj4gDQo+ IE9uIFdlZCwgTWF5IDMxLCAyMDIzIGF0IDU6MDjigK9QTSBBbWl0IFByYWthc2ggU2h1a2xhDQo+ IDxhbWl0cHJha2FzaHNAbWFydmVsbC5jb20+IHdyb3RlOg0KPiA+DQo+ID4gRnJvbTogU3VuaWwg S3VtYXIgS29yaSA8c2tvcmlAbWFydmVsbC5jb20+DQo+ID4NCj4gPiBTaW1pbGFyIHRvIElQdjQg bG9va3VwIG5vZGUsIHBhdGNoIGFkZHMgSVB2NiBsb29rdXAgbm9kZS4NCj4gPg0KPiA+IFNpZ25l ZC1vZmYtYnk6IFN1bmlsIEt1bWFyIEtvcmkgPHNrb3JpQG1hcnZlbGwuY29tPg0KPiA+IFNpZ25l ZC1vZmYtYnk6IEFtaXQgUHJha2FzaCBTaHVrbGEgPGFtaXRwcmFrYXNoc0BtYXJ2ZWxsLmNvbT4N Cj4gPiAtLS0NCj4gPiB2MjoNCj4gPiAtIFBlcmZvcm1hbmNlIHJlbGF0ZWQgY2hhbmdlcw0KPiA+ DQo+ID4gdjM6DQo+ID4gLSBSZW1vdmluZyByZWR1bmRhbnQgZHluYW1pYyB2YXJpYWJsZQ0KPiA+ DQo+ID4gIGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ncmFwaF9saWIucnN0IHwgIDEzICsNCj4gPiAg bGliL25vZGUvaXA2X2xvb2t1cC5jICAgICAgICAgICAgICAgfCAzNzIgKysrKysrKysrKysrKysr KysrKysrKysrKysrKw0KPiA+ICBsaWIvbm9kZS9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8 ICAgMyArLQ0KPiA+ICBsaWIvbm9kZS9ub2RlX3ByaXZhdGUuaCAgICAgICAgICAgICB8ICAgMiAr LQ0KPiA+ICBsaWIvbm9kZS9wa3RfY2xzLmMgICAgICAgICAgICAgICAgICB8ICAxNCArKw0KPiA+ ICBsaWIvbm9kZS9wa3RfY2xzX3ByaXYuaCAgICAgICAgICAgICB8ICAgMSArDQo+ID4gIGxpYi9u b2RlL3J0ZV9ub2RlX2lwNl9hcGkuaCAgICAgICAgIHwgIDgwICsrKysrKw0KPiA+ICBsaWIvbm9k ZS92ZXJzaW9uLm1hcCAgICAgICAgICAgICAgICB8ICAgMiArDQo+ID4gIDggZmlsZXMgY2hhbmdl ZCwgNDg1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pICBjcmVhdGUgbW9kZQ0KPiA+IDEw MDY0NCBsaWIvbm9kZS9pcDZfbG9va3VwLmMgIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+IGxpYi9u b2RlL3J0ZV9ub2RlX2lwNl9hcGkuaA0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMv cHJvZ19ndWlkZS9ncmFwaF9saWIucnN0DQo+ID4gYi9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvZ3Jh cGhfbGliLnJzdA0KPiA+IGluZGV4IDFjZmRjODY0MzMuLjFmNzBkNjM2MjggMTAwNjQ0DQo+ID4g LS0tIGEvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL2dyYXBoX2xpYi5yc3QNCj4gPiArKysgYi9kb2Mv Z3VpZGVzL3Byb2dfZ3VpZGUvZ3JhcGhfbGliLnJzdA0KPiA+IEBAIC0zODgsNiArMzg4LDE5IEBA IHRvIGRldGVybWluZSB0aGUgTDIgaGVhZGVyIHRvIGJlIHdyaXR0ZW4gdG8gdGhlDQo+ID4gcGFj a2V0IGJlZm9yZSBzZW5kaW5nICB0aGUgcGFja2V0IG91dCB0byBhIHBhcnRpY3VsYXIgZXRoZGV2 X3R4IG5vZGUuDQo+ID4gIGBgcnRlX25vZGVfaXA0X3Jld3JpdGVfYWRkKClgYCBpcyBjb250cm9s IHBhdGggQVBJIHRvIGFkZCBuZXh0LWhvcCBpbmZvLg0KPiA+DQo+ID4gK2lwNl9sb29rdXANCj4g PiArfn5+fn5+fn5+fg0KPiA+ICtUaGlzIG5vZGUgaXMgYW4gaW50ZXJtZWRpYXRlIG5vZGUgdGhh dCBkb2VzIExQTSBsb29rdXAgZm9yIHRoZQ0KPiA+ICtyZWNlaXZlZA0KPiA+ICtpcHY2IHBhY2tl dHMgYW5kIHRoZSByZXN1bHQgZGV0ZXJtaW5lcyBlYWNoIHBhY2tldHMgbmV4dCBub2RlLg0KPiA+ ICsNCj4gPiArT24gc3VjY2Vzc2Z1bCBMUE0gbG9va3VwLCB0aGUgcmVzdWx0IGNvbnRhaW5zIHRo ZSBgYG5leHRfbm9kZWBgIGlkDQo+ID4gK2FuZCBgYG5leHQtaG9wYGAgaWQgd2l0aCB3aGljaCB0 aGUgcGFja2V0IG5lZWRzIHRvIGJlIGZ1cnRoZXIgcHJvY2Vzc2VkLg0KPiA+ICsNCj4gPiArT24g TFBNIGxvb2t1cCBmYWlsdXJlLCBvYmplY3RzIGFyZSByZWRpcmVjdGVkIHRvIHBrdF9kcm9wIG5v ZGUuDQo+ID4gK2BgcnRlX25vZGVfaXA2X3JvdXRlX2FkZCgpYGAgaXMgY29udHJvbCBwYXRoIEFQ SSB0byBhZGQgaXB2NiByb3V0ZXMuDQo+ID4gK1RvIGFjaGlldmUgaG9tZSBydW4sIG5vZGUgdXNl IGBgcnRlX25vZGVfc3RyZWFtX21vdmUoKWBgIGFzDQo+IG1lbnRpb25lZA0KPiA+ICtpbiBhYm92 ZSBzZWN0aW9ucy4NCj4gPiArDQo+ID4gIG51bGwNCj4gPiAgfn5+fg0KPiA+ICBUaGlzIG5vZGUg aWdub3JlcyB0aGUgc2V0IG9mIG9iamVjdHMgcGFzc2VkIHRvIGl0IGFuZCByZXBvcnRzIHRoYXQN Cj4gPiBhbGwgYXJlIGRpZmYgLS1naXQgYS9saWIvbm9kZS9pcDZfbG9va3VwLmMgYi9saWIvbm9k ZS9pcDZfbG9va3VwLmMgbmV3DQo+ID4gZmlsZSBtb2RlIDEwMDY0NCBpbmRleCAwMDAwMDAwMDAw Li5lNGJiYzdlZDY3DQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2xpYi9ub2RlL2lwNl9s b29rdXAuYw0KPiA+IEBAIC0wLDAgKzEsMzcyIEBADQo+ID4gKy8qIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gPiArICogQ29weXJpZ2h0KEMpIDIwMjMgTWFydmVsbC4N Cj4gPiArICovDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8YXJwYS9pbmV0Lmg+DQo+ID4gKyNpbmNs dWRlIDxzeXMvc29ja2V0Lmg+DQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8cnRlX2V0aGRldi5oPg0K PiA+ICsjaW5jbHVkZSA8cnRlX2V0aGVyLmg+DQo+ID4gKyNpbmNsdWRlIDxydGVfZ3JhcGguaD4N Cj4gPiArI2luY2x1ZGUgPHJ0ZV9ncmFwaF93b3JrZXIuaD4NCj4gPiArI2luY2x1ZGUgPHJ0ZV9p cC5oPg0KPiA+ICsjaW5jbHVkZSA8cnRlX2xwbTYuaD4NCj4gPiArDQo+ID4gKyNpbmNsdWRlICJy dGVfbm9kZV9pcDZfYXBpLmgiDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSAibm9kZV9wcml2YXRlLmgi DQo+ID4gKw0KPiA+ICsjZGVmaW5lIElQVjZfTDNGV0RfTFBNX01BWF9SVUxFUyAxMDI0ICNkZWZp bmUNCj4gPiArSVBWNl9MM0ZXRF9MUE1fTlVNQkVSX1RCTDhTICgxIDw8IDgpDQo+ID4gKw0KPiA+ ICsvKiBJUDYgTG9va3VwIGdsb2JhbCBkYXRhIHN0cnVjdCAqLw0KPiA+ICtzdHJ1Y3QgaXA2X2xv b2t1cF9ub2RlX21haW4gew0KPiA+ICsgICAgICAgc3RydWN0IHJ0ZV9scG02ICpscG1fdGJsW1JU RV9NQVhfTlVNQV9OT0RFU107IH07DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgaXA2X2xvb2t1cF9ub2Rl X2N0eCB7DQo+ID4gKyAgICAgICAvKiBTb2NrZXQncyBMUE0gdGFibGUgKi8NCj4gPiArICAgICAg IHN0cnVjdCBydGVfbHBtNiAqbHBtNjsNCj4gPiArICAgICAgIC8qIER5bmFtaWMgb2Zmc2V0IHRv IG1idWYgcHJpdjEgKi8NCj4gPiArICAgICAgIGludCBtYnVmX3ByaXYxX29mZjsNCj4gPiArfTsN Cj4gPiArDQo+ID4gK3N0YXRpYyBzdHJ1Y3QgaXA2X2xvb2t1cF9ub2RlX21haW4gaXA2X2xvb2t1 cF9ubTsNCj4gPiArDQo+ID4gKyNkZWZpbmUgSVA2X0xPT0tVUF9OT0RFX0xQTShjdHgpIFwNCj4g PiArICAgICAgICgoKHN0cnVjdCBpcDZfbG9va3VwX25vZGVfY3R4ICopY3R4KS0+bHBtNikNCj4g PiArDQo+ID4gKyNkZWZpbmUgSVA2X0xPT0tVUF9OT0RFX1BSSVYxX09GRihjdHgpIFwNCj4gPiAr ICAgICAgICgoKHN0cnVjdCBpcDZfbG9va3VwX25vZGVfY3R4ICopY3R4KS0+bWJ1Zl9wcml2MV9v ZmYpDQo+ID4gKw0KPiA+ICtzdGF0aWMgdWludDE2X3QNCj4gPiAraXA2X2xvb2t1cF9ub2RlX3By b2Nlc3Nfc2NhbGFyKHN0cnVjdCBydGVfZ3JhcGggKmdyYXBoLCBzdHJ1Y3QNCj4gcnRlX25vZGUg Km5vZGUsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqKm9ianMsIHVpbnQxNl90 IG5iX29ianMpIHsNCj4gPiArICAgICAgIHN0cnVjdCBydGVfbWJ1ZiAqbWJ1ZjAsICptYnVmMSwg Km1idWYyLCAqbWJ1ZjMsICoqcGt0czsNCj4gPiArICAgICAgIHN0cnVjdCBydGVfbHBtNiAqbHBt NiA9IElQNl9MT09LVVBfTk9ERV9MUE0obm9kZS0+Y3R4KTsNCj4gPiArICAgICAgIGNvbnN0IGlu dCBkeW4gPSBJUDZfTE9PS1VQX05PREVfUFJJVjFfT0ZGKG5vZGUtPmN0eCk7DQo+ID4gKyAgICAg ICBzdHJ1Y3QgcnRlX2lwdjZfaGRyICppcHY2X2hkcjsNCj4gPiArICAgICAgIHZvaWQgKip0b19u ZXh0LCAqKmZyb207DQo+ID4gKyAgICAgICB1aW50MTZfdCBsYXN0X3NwZWMgPSAwOw0KPiA+ICsg ICAgICAgcnRlX2VkZ2VfdCBuZXh0X2luZGV4Ow0KPiA+ICsgICAgICAgdWludDE2X3Qgbl9sZWZ0 X2Zyb207DQo+ID4gKyAgICAgICB1aW50MTZfdCBoZWxkID0gMDsNCj4gPiArICAgICAgIHVpbnQz Ml90IGRyb3Bfbmg7DQo+ID4gKyAgICAgICBpbnQgaSwgcmM7DQo+ID4gKw0KPiA+ICsgICAgICAg LyogU3BlY3VsYXRpdmUgbmV4dCAqLw0KPiA+ICsgICAgICAgbmV4dF9pbmRleCA9IFJURV9OT0RF X0lQNl9MT09LVVBfTkVYVF9SRVdSSVRFOw0KPiA+ICsgICAgICAgLyogRHJvcCBub2RlICovDQo+ ID4gKyAgICAgICBkcm9wX25oID0gKCh1aW50MzJfdClSVEVfTk9ERV9JUDZfTE9PS1VQX05FWFRf UEtUX0RST1ApIDw8DQo+IDE2Ow0KPiA+ICsNCj4gPiArICAgICAgIHBrdHMgPSAoc3RydWN0IHJ0 ZV9tYnVmICoqKW9ianM7DQo+ID4gKyAgICAgICBmcm9tID0gb2JqczsNCj4gPiArICAgICAgIG5f bGVmdF9mcm9tID0gbmJfb2JqczsNCj4gPiArDQo+ID4gKyAgICAgICBmb3IgKGkgPSBPQkpTX1BF Ul9DTElORTsgaSA8IFJURV9HUkFQSF9CVVJTVF9TSVpFOyBpICs9DQo+IE9CSlNfUEVSX0NMSU5F KQ0KPiA+ICsgICAgICAgICAgICAgICBydGVfcHJlZmV0Y2gwKCZvYmpzW2ldKTsNCj4gPiArDQo+ ID4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgNCAmJiBpIDwgbl9sZWZ0X2Zyb207IGkrKykNCj4g PiArICAgICAgICAgICAgICAgcnRlX3ByZWZldGNoMChydGVfcGt0bWJ1Zl9tdG9kX29mZnNldChw a3RzW2ldLCB2b2lkICosDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdA0KPiA+ICsgcnRlX2V0aGVyX2hkcikpKTsNCj4gPiAr DQo+ID4gKyAgICAgICAvKiBHZXQgc3RyZWFtIGZvciB0aGUgc3BlY3VsYXRlZCBuZXh0IG5vZGUg Ki8NCj4gPiArICAgICAgIHRvX25leHQgPSBydGVfbm9kZV9uZXh0X3N0cmVhbV9nZXQoZ3JhcGgs IG5vZGUsIG5leHRfaW5kZXgsDQo+IG5iX29ianMpOw0KPiA+ICsgICAgICAgd2hpbGUgKG5fbGVm dF9mcm9tID49IDQpIHsNCj4gPiArICAgICAgICAgICAgICAgdWludDhfdCBpcF9iYXRjaFs0XVsx Nl07DQo+ID4gKyAgICAgICAgICAgICAgIGludDMyX3QgbmV4dF9ob3BbNF07DQo+ID4gKyAgICAg ICAgICAgICAgIHVpbnQxNl90IG5leHRbNF07DQo+ID4gKw0KPiA+ICsjaWYgUlRFX0dSQVBIX0JV UlNUX1NJWkUgPiA2NA0KPiA+ICsgICAgICAgICAgICAgICAvKiBQcmVmZXRjaCBuZXh0LW5leHQg bWJ1ZnMgKi8NCj4gPiArICAgICAgICAgICAgICAgaWYgKGxpa2VseShuX2xlZnRfZnJvbSA+IDEx KSkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9wcmVmZXRjaDAocGt0c1s4XSk7 DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcnRlX3ByZWZldGNoMChwa3RzWzldKTsNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICBydGVfcHJlZmV0Y2gwKHBrdHNbMTBdKTsNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICBydGVfcHJlZmV0Y2gwKHBrdHNbMTFdKTsNCj4gPiArICAg ICAgICAgICAgICAgfQ0KPiA+ICsjZW5kaWYNCj4gPiArICAgICAgICAgICAgICAgLyogUHJlZmV0 Y2ggbmV4dCBtYnVmIGRhdGEgKi8NCj4gPiArICAgICAgICAgICAgICAgaWYgKGxpa2VseShuX2xl ZnRfZnJvbSA+IDcpKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcnRlX3ByZWZldGNo MChydGVfcGt0bWJ1Zl9tdG9kX29mZnNldChwa3RzWzRdLCB2b2lkICosDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBydGVf ZXRoZXJfaGRyKSkpOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9wcmVmZXRjaDAo cnRlX3BrdG1idWZfbXRvZF9vZmZzZXQocGt0c1s1XSwgdm9pZCAqLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgcnRlX2V0 aGVyX2hkcikpKTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBydGVfcHJlZmV0Y2gwKHJ0 ZV9wa3RtYnVmX210b2Rfb2Zmc2V0KHBrdHNbNl0sIHZvaWQgKiwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IHJ0ZV9ldGhl cl9oZHIpKSk7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcnRlX3ByZWZldGNoMChydGVf cGt0bWJ1Zl9tdG9kX29mZnNldChwa3RzWzddLCB2b2lkICosDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBydGVfZXRoZXJf aGRyKSkpOw0KPiA+ICsgICAgICAgICAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAg ICBtYnVmMCA9IHBrdHNbMF07DQo+ID4gKyAgICAgICAgICAgICAgIG1idWYxID0gcGt0c1sxXTsN Cj4gPiArICAgICAgICAgICAgICAgbWJ1ZjIgPSBwa3RzWzJdOw0KPiA+ICsgICAgICAgICAgICAg ICBtYnVmMyA9IHBrdHNbM107DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBwa3RzICs9IDQ7 DQo+ID4gKyAgICAgICAgICAgICAgIG5fbGVmdF9mcm9tIC09IDQ7DQo+ID4gKw0KPiA+ICsgICAg ICAgICAgICAgICAvKiBFeHRyYWN0IERJUCBvZiBtYnVmMCAqLw0KPiA+ICsgICAgICAgICAgICAg ICBpcHY2X2hkciA9IHJ0ZV9wa3RtYnVmX210b2Rfb2Zmc2V0KG1idWYwLCBzdHJ1Y3QgcnRlX2lw djZfaGRyDQo+ICosDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yo c3RydWN0IHJ0ZV9ldGhlcl9oZHIpKTsNCj4gPiArICAgICAgICAgICAgICAgLyogRXh0cmFjdCBo b3BfbGltaXRzIGFzIGlwdjYgaGRyIGlzIGluIGNhY2hlICovDQo+ID4gKyAgICAgICAgICAgICAg IG5vZGVfbWJ1Zl9wcml2MShtYnVmMCwgZHluKS0+dHRsID0gaXB2Nl9oZHItPmhvcF9saW1pdHM7 DQo+ID4gKyAgICAgICAgICAgICAgIHJ0ZV9tZW1jcHkoaXBfYmF0Y2hbMF0sIGlwdjZfaGRyLT5k c3RfYWRkciwgMTYpOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgLyogRXh0cmFjdCBESVAg b2YgbWJ1ZjEgKi8NCj4gPiArICAgICAgICAgICAgICAgaXB2Nl9oZHIgPSBydGVfcGt0bWJ1Zl9t dG9kX29mZnNldChtYnVmMSwgc3RydWN0IHJ0ZV9pcHY2X2hkcg0KPiAqLA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBydGVfZXRoZXJfaGRyKSk7DQo+ ID4gKyAgICAgICAgICAgICAgIC8qIEV4dHJhY3QgaG9wX2xpbWl0cyBhcyBpcHY2IGhkciBpcyBp biBjYWNoZSAqLw0KPiA+ICsgICAgICAgICAgICAgICBub2RlX21idWZfcHJpdjEobWJ1ZjEsIGR5 biktPnR0bCA9IGlwdjZfaGRyLT5ob3BfbGltaXRzOw0KPiA+ICsgICAgICAgICAgICAgICBydGVf bWVtY3B5KGlwX2JhdGNoWzFdLCBpcHY2X2hkci0+ZHN0X2FkZHIsIDE2KTsNCj4gPiArDQo+ID4g KyAgICAgICAgICAgICAgIC8qIEV4dHJhY3QgRElQIG9mIG1idWYyICovDQo+ID4gKyAgICAgICAg ICAgICAgIGlwdjZfaGRyID0gcnRlX3BrdG1idWZfbXRvZF9vZmZzZXQobWJ1ZjIsIHN0cnVjdCBy dGVfaXB2Nl9oZHINCj4gKiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp emVvZihzdHJ1Y3QgcnRlX2V0aGVyX2hkcikpOw0KPiA+ICsgICAgICAgICAgICAgICAvKiBFeHRy YWN0IGhvcF9saW1pdHMgYXMgaXB2NiBoZHIgaXMgaW4gY2FjaGUgKi8NCj4gPiArICAgICAgICAg ICAgICAgbm9kZV9tYnVmX3ByaXYxKG1idWYyLCBkeW4pLT50dGwgPSBpcHY2X2hkci0+aG9wX2xp bWl0czsNCj4gPiArICAgICAgICAgICAgICAgcnRlX21lbWNweShpcF9iYXRjaFsyXSwgaXB2Nl9o ZHItPmRzdF9hZGRyLCAxNik7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICAvKiBFeHRyYWN0 IERJUCBvZiBtYnVmMyAqLw0KPiA+ICsgICAgICAgICAgICAgICBpcHY2X2hkciA9IHJ0ZV9wa3Rt YnVmX210b2Rfb2Zmc2V0KG1idWYzLCBzdHJ1Y3QgcnRlX2lwdjZfaGRyDQo+ICosDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IHJ0ZV9ldGhlcl9oZHIp KTsNCj4gPiArICAgICAgICAgICAgICAgLyogRXh0cmFjdCBob3BfbGltaXRzIGFzIGlwdjYgaGRy IGlzIGluIGNhY2hlICovDQo+ID4gKyAgICAgICAgICAgICAgIG5vZGVfbWJ1Zl9wcml2MShtYnVm MywgZHluKS0+dHRsID0gaXB2Nl9oZHItPmhvcF9saW1pdHM7DQo+ID4gKyAgICAgICAgICAgICAg IHJ0ZV9tZW1jcHkoaXBfYmF0Y2hbM10sIGlwdjZfaGRyLT5kc3RfYWRkciwgMTYpOw0KPiA+ICsN Cj4gPiArICAgICAgICAgICAgICAgcmMgPSBydGVfbHBtNl9sb29rdXBfYnVsa19mdW5jKGxwbTYs IGlwX2JhdGNoLA0KPiA+ICsgbmV4dF9ob3AsIDQpOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAg ICAgbmV4dF9ob3BbMF0gPSAobmV4dF9ob3BbMF0gPCAwKSA/IChpbnQzMl90KWRyb3BfbmggOiBu ZXh0X2hvcFswXTsNCj4gPiArICAgICAgICAgICAgICAgbm9kZV9tYnVmX3ByaXYxKG1idWYwLCBk eW4pLT5uaCA9ICh1aW50MTZfdCluZXh0X2hvcFswXTsNCj4gPiArICAgICAgICAgICAgICAgbmV4 dFswXSA9ICh1aW50MTZfdCkobmV4dF9ob3BbMF0gPj4gMTYpOw0KPiA+ICsNCj4gPiArICAgICAg ICAgICAgICAgbmV4dF9ob3BbMV0gPSAobmV4dF9ob3BbMV0gPCAwKSA/IChpbnQzMl90KWRyb3Bf bmggOiBuZXh0X2hvcFsxXTsNCj4gPiArICAgICAgICAgICAgICAgbm9kZV9tYnVmX3ByaXYxKG1i dWYxLCBkeW4pLT5uaCA9ICh1aW50MTZfdCluZXh0X2hvcFsxXTsNCj4gPiArICAgICAgICAgICAg ICAgbmV4dFsxXSA9ICh1aW50MTZfdCkobmV4dF9ob3BbMV0gPj4gMTYpOw0KPiA+ICsNCj4gPiAr ICAgICAgICAgICAgICAgbmV4dF9ob3BbMl0gPSAobmV4dF9ob3BbMl0gPCAwKSA/IChpbnQzMl90 KWRyb3BfbmggOiBuZXh0X2hvcFsyXTsNCj4gPiArICAgICAgICAgICAgICAgbm9kZV9tYnVmX3By aXYxKG1idWYyLCBkeW4pLT5uaCA9ICh1aW50MTZfdCluZXh0X2hvcFsyXTsNCj4gPiArICAgICAg ICAgICAgICAgbmV4dFsyXSA9ICh1aW50MTZfdCkobmV4dF9ob3BbMl0gPj4gMTYpOw0KPiA+ICsN Cj4gPiArICAgICAgICAgICAgICAgbmV4dF9ob3BbM10gPSAobmV4dF9ob3BbM10gPCAwKSA/IChp bnQzMl90KWRyb3BfbmggOiBuZXh0X2hvcFszXTsNCj4gPiArICAgICAgICAgICAgICAgbm9kZV9t YnVmX3ByaXYxKG1idWYzLCBkeW4pLT5uaCA9ICh1aW50MTZfdCluZXh0X2hvcFszXTsNCj4gPiAr ICAgICAgICAgICAgICAgbmV4dFszXSA9ICh1aW50MTZfdCkobmV4dF9ob3BbM10gPj4gMTYpOw0K PiA+ICsNCj4gPiArICAgICAgICAgICAgICAgcnRlX2VkZ2VfdCBmaXhfc3BlYyA9ICgobmV4dF9p bmRleCA9PSBuZXh0WzBdKSAmJg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobmV4dF9pbmRleCA9PSBuZXh0WzFdKSAmJg0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobmV4dF9pbmRleCA9PSBuZXh0WzJdKSAmJg0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmV4dF9pbmRleCA9PSBuZXh0 WzNdKSk7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBpZiAodW5saWtlbHkoZml4X3NwZWMg PT0gMCkpIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAvKiBDb3B5IHRoaW5ncyBzdWNj ZXNzZnVsbHkgc3BlY3VsYXRlZCB0aWxsIG5vdyAqLw0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgIHJ0ZV9tZW1jcHkodG9fbmV4dCwgZnJvbSwgbGFzdF9zcGVjICogc2l6ZW9mKGZyb21bMF0p KTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBmcm9tICs9IGxhc3Rfc3BlYzsNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICB0b19uZXh0ICs9IGxhc3Rfc3BlYzsNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICBoZWxkICs9IGxhc3Rfc3BlYzsNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICBsYXN0X3NwZWMgPSAwOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAvKiBOZXh0MCAqLw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0X2luZGV4 ID09IG5leHRbMF0pIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvX25l eHRbMF0gPSBmcm9tWzBdOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9f bmV4dCsrOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVsZCsrOw0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBydGVfbm9kZV9lbnF1ZXVlX3gxKGdyYXBoLCBub2RlLCBuZXh0WzBdLCBm cm9tWzBdKTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIC8qIE5leHQxICovDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgaWYgKG5leHRfaW5kZXggPT0gbmV4dFsxXSkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdG9fbmV4dFswXSA9IGZyb21bMV07DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0b19uZXh0Kys7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBoZWxkKys7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9ub2RlX2VucXVldWVfeDEoZ3JhcGgs IG5vZGUsIG5leHRbMV0sIGZyb21bMV0pOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIH0N Cj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgLyogTmV4dDIgKi8NCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICBpZiAobmV4dF9pbmRleCA9PSBuZXh0WzJdKSB7DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b19uZXh0WzBdID0gZnJvbVsyXTsNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvX25leHQrKzsNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGhlbGQrKzsNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICB9IGVsc2Ugew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRlX25vZGVf ZW5xdWV1ZV94MShncmFwaCwgbm9kZSwgbmV4dFsyXSwgZnJvbVsyXSk7DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAvKiBO ZXh0MyAqLw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0X2luZGV4ID09IG5l eHRbM10pIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvX25leHRbMF0g PSBmcm9tWzNdOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9fbmV4dCsr Ow0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVsZCsrOw0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBydGVfbm9kZV9lbnF1ZXVlX3gxKGdyYXBoLCBub2RlLCBuZXh0WzNdLCBmcm9tWzNd KTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIGZyb20gKz0gNDsNCj4gPiArICAgICAgICAgICAgICAgfSBlbHNlIHsNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICBsYXN0X3NwZWMgKz0gNDsNCj4gPiArICAgICAgICAg ICAgICAgfQ0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIHdoaWxlIChuX2xlZnRf ZnJvbSA+IDApIHsNCj4gPiArICAgICAgICAgICAgICAgdWludDMyX3QgbmV4dF9ob3A7DQo+ID4g KyAgICAgICAgICAgICAgIHVpbnQxNl90IG5leHQwOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAg ICAgbWJ1ZjAgPSBwa3RzWzBdOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgcGt0cyArPSAx Ow0KPiA+ICsgICAgICAgICAgICAgICBuX2xlZnRfZnJvbSAtPSAxOw0KPiA+ICsNCj4gPiArICAg ICAgICAgICAgICAgLyogRXh0cmFjdCBESVAgb2YgbWJ1ZjAgKi8NCj4gPiArICAgICAgICAgICAg ICAgaXB2Nl9oZHIgPSBydGVfcGt0bWJ1Zl9tdG9kX29mZnNldChtYnVmMCwgc3RydWN0IHJ0ZV9p cHY2X2hkcg0KPiAqLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpemVvZihzdHJ1Y3QgcnRlX2V0aGVyX2hkcikpOw0KPiA+ICsgICAgICAgICAg ICAgICAvKiBFeHRyYWN0IHR0bCBhcyBpcHY2IGhkciBpcyBpbiBjYWNoZSAqLw0KPiA+ICsgICAg ICAgICAgICAgICBub2RlX21idWZfcHJpdjEobWJ1ZjAsIGR5biktPnR0bCA9DQo+ID4gKyBpcHY2 X2hkci0+aG9wX2xpbWl0czsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIHJjID0gcnRlX2xw bTZfbG9va3VwKGxwbTYsIGlwdjZfaGRyLT5kc3RfYWRkciwgJm5leHRfaG9wKTsNCj4gPiArICAg ICAgICAgICAgICAgbmV4dF9ob3AgPSAocmMgPT0gMCkgPyBuZXh0X2hvcCA6IGRyb3Bfbmg7DQo+ ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBub2RlX21idWZfcHJpdjEobWJ1ZjAsIGR5biktPm5o ID0gKHVpbnQxNl90KW5leHRfaG9wOw0KPiA+ICsgICAgICAgICAgICAgICBuZXh0X2hvcCA9IG5l eHRfaG9wID4+IDE2Ow0KPiA+ICsgICAgICAgICAgICAgICBuZXh0MCA9ICh1aW50MTZfdCluZXh0 X2hvcDsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIGlmICh1bmxpa2VseShuZXh0X2luZGV4 IF4gbmV4dDApKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgLyogQ29weSB0aGluZ3Mg c3VjY2Vzc2Z1bGx5IHNwZWN1bGF0ZWQgdGlsbCBub3cgKi8NCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICBydGVfbWVtY3B5KHRvX25leHQsIGZyb20sIGxhc3Rfc3BlYyAqIHNpemVvZihmcm9t WzBdKSk7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZnJvbSArPSBsYXN0X3NwZWM7DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgdG9fbmV4dCArPSBsYXN0X3NwZWM7DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgaGVsZCArPSBsYXN0X3NwZWM7DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgbGFzdF9zcGVjID0gMDsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgcnRlX25vZGVfZW5xdWV1ZV94MShncmFwaCwgbm9kZSwgbmV4dDAsIGZyb21bMF0pOw0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGZyb20gKz0gMTsNCj4gPiArICAgICAgICAgICAg ICAgfSBlbHNlIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBsYXN0X3NwZWMgKz0gMTsN Cj4gPiArICAgICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAg IC8qICEhISBIb21lIHJ1biAhISEgKi8NCj4gPiArICAgICAgIGlmIChsaWtlbHkobGFzdF9zcGVj ID09IG5iX29ianMpKSB7DQo+ID4gKyAgICAgICAgICAgICAgIHJ0ZV9ub2RlX25leHRfc3RyZWFt X21vdmUoZ3JhcGgsIG5vZGUsIG5leHRfaW5kZXgpOw0KPiA+ICsgICAgICAgICAgICAgICByZXR1 cm4gbmJfb2JqczsNCj4gPiArICAgICAgIH0NCj4gPiArICAgICAgIGhlbGQgKz0gbGFzdF9zcGVj Ow0KPiA+ICsgICAgICAgcnRlX21lbWNweSh0b19uZXh0LCBmcm9tLCBsYXN0X3NwZWMgKiBzaXpl b2YoZnJvbVswXSkpOw0KPiA+ICsgICAgICAgcnRlX25vZGVfbmV4dF9zdHJlYW1fcHV0KGdyYXBo LCBub2RlLCBuZXh0X2luZGV4LCBoZWxkKTsNCj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4gbmJf b2JqczsNCj4gPiArfQ0KPiA+ICsNCj4gPiAraW50DQo+ID4gK3J0ZV9ub2RlX2lwNl9yb3V0ZV9h ZGQoY29uc3QgdWludDhfdCAqaXAsIHVpbnQ4X3QgZGVwdGgsIHVpbnQxNl90DQo+IG5leHRfaG9w LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgZW51bSBydGVfbm9kZV9pcDZfbG9va3VwX25l eHQgbmV4dF9ub2RlKSB7DQo+ID4gKyAgICAgICBjaGFyIGFidWZbSU5FVDZfQUREUlNUUkxFTl07 DQo+ID4gKyAgICAgICBzdHJ1Y3QgaW42X2FkZHIgaW42Ow0KPiA+ICsgICAgICAgdWludDhfdCBz b2NrZXQ7DQo+ID4gKyAgICAgICB1aW50MzJfdCB2YWw7DQo+ID4gKyAgICAgICBpbnQgcmV0Ow0K PiA+ICsNCj4gPiArICAgICAgIG1lbWNweShpbjYuczZfYWRkciwgaXAsIFJURV9MUE02X0lQVjZf QUREUl9TSVpFKTsNCj4gPiArICAgICAgIGluZXRfbnRvcChBRl9JTkVUNiwgJmluNiwgYWJ1Ziwg c2l6ZW9mKGFidWYpKTsNCj4gPiArICAgICAgIC8qIEVtYmVkZGVkIG5leHQgbm9kZSBpZCBpbnRv IDI0IGJpdCBuZXh0IGhvcCAqLw0KPiA+ICsgICAgICAgdmFsID0gKChuZXh0X25vZGUgPDwgMTYp IHwgbmV4dF9ob3ApICYgKCgxdWxsIDw8IDI0KSAtIDEpOw0KPiA+ICsgICAgICAgbm9kZV9kYmco ImlwNl9sb29rdXAiLCAiTFBNOiBBZGRpbmcgcm91dGUgJXMgLyAlZCBuaCAoMHgleCkiLA0KPiBh YnVmLA0KPiA+ICsgICAgICAgICAgICAgICAgZGVwdGgsIHZhbCk7DQo+ID4gKw0KPiA+ICsgICAg ICAgZm9yIChzb2NrZXQgPSAwOyBzb2NrZXQgPCBSVEVfTUFYX05VTUFfTk9ERVM7IHNvY2tldCsr KSB7DQo+ID4gKyAgICAgICAgICAgICAgIGlmICghaXA2X2xvb2t1cF9ubS5scG1fdGJsW3NvY2tl dF0pDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+ID4gKw0KPiA+ICsg ICAgICAgICAgICAgICByZXQgPSBydGVfbHBtNl9hZGQoaXA2X2xvb2t1cF9ubS5scG1fdGJsW3Nv Y2tldF0sIGlwLCBkZXB0aCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZhbCk7DQo+ID4gKyAgICAgICAgICAgICAgIGlmIChyZXQgPCAwKSB7DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgbm9kZV9lcnIoImlwNl9sb29rdXAiLA0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJVbmFibGUgdG8gYWRkIGVudHJ5ICVzIC8gJWQgbmggKCV4KSB0 byBMUE0gIg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0YWJsZSBvbiBz b2NrICVkLCByYz0lZFxuIiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh YnVmLCBkZXB0aCwgdmFsLCBzb2NrZXQsIHJldCk7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIHJldDsNCj4gPiArICAgICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgfQ0KPiA+ ICsNCj4gPiArICAgICAgIHJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50 DQo+ID4gK3NldHVwX2xwbTYoc3RydWN0IGlwNl9sb29rdXBfbm9kZV9tYWluICpubSwgaW50IHNv Y2tldCkgew0KPiA+ICsgICAgICAgc3RydWN0IHJ0ZV9scG02X2NvbmZpZyBjb25maWdfaXB2NjsN Cj4gPiArICAgICAgIGNoYXIgc1tSVEVfTFBNNl9OQU1FU0laRV07DQo+ID4gKw0KPiA+ICsgICAg ICAgLyogT25lIExQTSB0YWJsZSBwZXIgc29ja2V0ICovDQo+ID4gKyAgICAgICBpZiAobm0tPmxw bV90Ymxbc29ja2V0XSkNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4gKw0KPiA+ ICsgICAgICAgLyogY3JlYXRlIHRoZSBMUE0gdGFibGUgKi8NCj4gPiArICAgICAgIGNvbmZpZ19p cHY2Lm1heF9ydWxlcyA9IElQVjZfTDNGV0RfTFBNX01BWF9SVUxFUzsNCj4gPiArICAgICAgIGNv bmZpZ19pcHY2Lm51bWJlcl90Ymw4cyA9IElQVjZfTDNGV0RfTFBNX05VTUJFUl9UQkw4UzsNCj4g PiArICAgICAgIGNvbmZpZ19pcHY2LmZsYWdzID0gMDsNCj4gPiArICAgICAgIHNucHJpbnRmKHMs IHNpemVvZihzKSwgIklQVjZfTDNGV0RfTFBNXyVkIiwgc29ja2V0KTsNCj4gPiArICAgICAgIG5t LT5scG1fdGJsW3NvY2tldF0gPSBydGVfbHBtNl9jcmVhdGUocywgc29ja2V0LCAmY29uZmlnX2lw djYpOw0KPiA+ICsgICAgICAgaWYgKG5tLT5scG1fdGJsW3NvY2tldF0gPT0gTlVMTCkNCj4gPiAr ICAgICAgICAgICAgICAgcmV0dXJuIC1ydGVfZXJybm87DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0 dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQNCj4gPiAraXA2X2xvb2t1cF9u b2RlX2luaXQoY29uc3Qgc3RydWN0IHJ0ZV9ncmFwaCAqZ3JhcGgsIHN0cnVjdCBydGVfbm9kZQ0K PiA+ICsqbm9kZSkgew0KPiA+ICsgICAgICAgdWludDE2X3Qgc29ja2V0LCBsY29yZV9pZDsNCj4g PiArICAgICAgIHN0YXRpYyB1aW50OF90IGluaXRfb25jZTsNCj4gPiArICAgICAgIGludCByYzsN Cj4gPiArDQo+ID4gKyAgICAgICBSVEVfU0VUX1VTRUQoZ3JhcGgpOw0KPiA+ICsgICAgICAgUlRF X0JVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IGlwNl9sb29rdXBfbm9kZV9jdHgpID4NCj4gPiAr IFJURV9OT0RFX0NUWF9TWik7DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKCFpbml0X29uY2UpIHsN Cj4gPiArICAgICAgICAgICAgICAgbm9kZV9tYnVmX3ByaXYxX2R5bmZpZWxkX29mZnNldCA9DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcnRlX21idWZfZHluZmllbGRfcmVnaXN0ZXIoDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbm9kZV9tYnVmX3ByaXYxX2R5bmZp ZWxkX2Rlc2MpOw0KPiA+ICsgICAgICAgICAgICAgICBpZiAobm9kZV9tYnVmX3ByaXYxX2R5bmZp ZWxkX29mZnNldCA8IDApDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1ydGVf ZXJybm87DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICAvKiBTZXR1cCBMUE0gdGFibGVzIGZv ciBhbGwgc29ja2V0cyAqLw0KPiA+ICsgICAgICAgICAgICAgICBSVEVfTENPUkVfRk9SRUFDSChs Y29yZV9pZCkNCj4gPiArICAgICAgICAgICAgICAgew0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgIHNvY2tldCA9IHJ0ZV9sY29yZV90b19zb2NrZXRfaWQobGNvcmVfaWQpOw0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIHJjID0gc2V0dXBfbHBtNigmaXA2X2xvb2t1cF9ubSwgc29ja2V0 KTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBpZiAocmMpIHsNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG5vZGVfZXJyKCJpcDZfbG9va3VwIiwNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gc2V0dXAgbHBtNiB0 YmwgZm9yICINCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz b2NrICV1LCByYz0lZCIsIHNvY2tldCwgcmMpOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIHJjOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIH0NCj4gPiAr ICAgICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgICAgICAgICBpbml0X29uY2UgPSAxOw0KPiA+ ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIC8qIFVwZGF0ZSBzb2NrZXQncyBMUE0gYW5k IG1idWYgZHluIHByaXYxIG9mZnNldCBpbiBub2RlIGN0eCAqLw0KPiA+ICsgICAgICAgSVA2X0xP T0tVUF9OT0RFX0xQTShub2RlLT5jdHgpID0gaXA2X2xvb2t1cF9ubS5scG1fdGJsW2dyYXBoLQ0K PiA+c29ja2V0XTsNCj4gPiArICAgICAgIElQNl9MT09LVVBfTk9ERV9QUklWMV9PRkYobm9kZS0+ Y3R4KSA9DQo+ID4gKw0KPiA+ICsgbm9kZV9tYnVmX3ByaXYxX2R5bmZpZWxkX29mZnNldDsNCj4g PiArDQo+ID4gKyAgICAgICBub2RlX2RiZygiaXA2X2xvb2t1cCIsICJJbml0aWFsaXplZCBpcDZf bG9va3VwIG5vZGUiKTsNCj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4gMDsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArc3RhdGljIHN0cnVjdCBydGVfbm9kZV9yZWdpc3RlciBpcDZfbG9va3VwX25vZGUg PSB7DQo+ID4gKyAgICAgICAucHJvY2VzcyA9IGlwNl9sb29rdXBfbm9kZV9wcm9jZXNzX3NjYWxh ciwNCj4gPiArICAgICAgIC5uYW1lID0gImlwNl9sb29rdXAiLA0KPiA+ICsNCj4gPiArICAgICAg IC5pbml0ID0gaXA2X2xvb2t1cF9ub2RlX2luaXQsDQo+ID4gKw0KPiA+ICsgICAgICAgLm5iX2Vk Z2VzID0gUlRFX05PREVfSVA2X0xPT0tVUF9ORVhUX01BWCwNCj4gPiArICAgICAgIC5uZXh0X25v ZGVzID0gew0KPiA+ICsgICAgICAgICAgICAgICBbUlRFX05PREVfSVA2X0xPT0tVUF9ORVhUX1JF V1JJVEVdID0gImlwNl9yZXdyaXRlIiwNCj4gPiArICAgICAgICAgICAgICAgW1JURV9OT0RFX0lQ Nl9MT09LVVBfTkVYVF9QS1RfRFJPUF0gPSAicGt0X2Ryb3AiLA0KPiA+ICsgICAgICAgfSwNCj4g PiArfTsNCj4gPiArDQo+ID4gK1JURV9OT0RFX1JFR0lTVEVSKGlwNl9sb29rdXBfbm9kZSk7DQo+ ID4gZGlmZiAtLWdpdCBhL2xpYi9ub2RlL21lc29uLmJ1aWxkIGIvbGliL25vZGUvbWVzb24uYnVp bGQgaW5kZXgNCj4gPiBkYmRmNjczYzg2Li5jZDMwODQ3YTBiIDEwMDY0NA0KPiA+IC0tLSBhL2xp Yi9ub2RlL21lc29uLmJ1aWxkDQo+ID4gKysrIGIvbGliL25vZGUvbWVzb24uYnVpbGQNCj4gPiBA QCAtMTIsMTMgKzEyLDE0IEBAIHNvdXJjZXMgPSBmaWxlcygNCj4gPiAgICAgICAgICAnZXRoZGV2 X3J4LmMnLA0KPiA+ICAgICAgICAgICdldGhkZXZfdHguYycsDQo+ID4gICAgICAgICAgJ2lwNF9s b29rdXAuYycsDQo+ID4gKyAgICAgICAgJ2lwNl9sb29rdXAuYycsDQo+ID4gICAgICAgICAgJ2lw NF9yZXdyaXRlLmMnLA0KPiA+ICAgICAgICAgICdsb2cuYycsDQo+ID4gICAgICAgICAgJ251bGwu YycsDQo+ID4gICAgICAgICAgJ3BrdF9jbHMuYycsDQo+ID4gICAgICAgICAgJ3BrdF9kcm9wLmMn LA0KPiA+ICApDQo+ID4gLWhlYWRlcnMgPSBmaWxlcygncnRlX25vZGVfaXA0X2FwaS5oJywgJ3J0 ZV9ub2RlX2V0aF9hcGkuaCcpDQo+ID4gK2hlYWRlcnMgPSBmaWxlcygncnRlX25vZGVfaXA0X2Fw aS5oJywgJ3J0ZV9ub2RlX2lwNl9hcGkuaCcsDQo+ID4gKydydGVfbm9kZV9ldGhfYXBpLmgnKQ0K PiA+ICAjIFN0cmljdC1hbGlhc2luZyBydWxlcyBhcmUgdmlvbGF0ZWQgYnkgdWludDhfdFtdIHRv IGNvbnRleHQgc2l6ZSBjYXN0cy4NCj4gPiAgY2ZsYWdzICs9ICctZm5vLXN0cmljdC1hbGlhc2lu ZycNCj4gPiAgZGVwcyArPSBbJ2dyYXBoJywgJ21idWYnLCAnbHBtJywgJ2V0aGRldicsICdtZW1w b29sJywgJ2NyeXB0b2RldiddDQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9ub2RlL25vZGVfcHJpdmF0 ZS5oIGIvbGliL25vZGUvbm9kZV9wcml2YXRlLmggaW5kZXgNCj4gPiA4YzczZDVkYzEwLi4yNjEz NWFhYTViIDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9ub2RlL25vZGVfcHJpdmF0ZS5oDQo+ID4gKysr IGIvbGliL25vZGUvbm9kZV9wcml2YXRlLmgNCj4gPiBAQCAtMjYsNyArMjYsNyBAQCBleHRlcm4g aW50IHJ0ZV9ub2RlX2xvZ3R5cGU7DQo+ID4gICAqLw0KPiA+ICBzdHJ1Y3Qgbm9kZV9tYnVmX3By aXYxIHsNCj4gPiAgICAgICAgIHVuaW9uIHsNCj4gPiAtICAgICAgICAgICAgICAgLyogSVA0IHJl d3JpdGUgKi8NCj4gPiArICAgICAgICAgICAgICAgLyogSVA0L0lQNiByZXdyaXRlICovDQo+ID4g ICAgICAgICAgICAgICAgIHN0cnVjdCB7DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDE2X3Qgbmg7DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgdHRsOw0KPiA+ IGRpZmYgLS1naXQgYS9saWIvbm9kZS9wa3RfY2xzLmMgYi9saWIvbm9kZS9wa3RfY2xzLmMgaW5k ZXgNCj4gPiAzZTc1ZjJjZjc4Li5hODMwMmI4ZDI4IDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9ub2Rl L3BrdF9jbHMuYw0KPiA+ICsrKyBiL2xpYi9ub2RlL3BrdF9jbHMuYw0KPiA+IEBAIC0yNCw2ICsy NCwxOSBAQCBzdGF0aWMgY29uc3QgdWludDhfdCBwX254dFsyNTZdIF9fcnRlX2NhY2hlX2FsaWdu ZWQNCj4gPiA9IHsNCj4gPg0KPiA+ICAgICAgICAgW1JURV9QVFlQRV9MM19JUFY0X0VYVF9VTktO T1dOIHwgUlRFX1BUWVBFX0wyX0VUSEVSXSA9DQo+ID4gICAgICAgICAgICAgICAgIFBLVF9DTFNf TkVYVF9JUDRfTE9PS1VQLA0KPiA+ICsNCj4gPiArICAgICAgIFtSVEVfUFRZUEVfTDNfSVBWNl0g PSBQS1RfQ0xTX05FWFRfSVA2X0xPT0tVUCwNCj4gPiArDQo+ID4gKyAgICAgICBbUlRFX1BUWVBF X0wzX0lQVjZfRVhUXSA9IFBLVF9DTFNfTkVYVF9JUDZfTE9PS1VQLA0KPiA+ICsNCj4gPiArICAg ICAgIFtSVEVfUFRZUEVfTDNfSVBWNl9FWFRfVU5LTk9XTl0gPSBQS1RfQ0xTX05FWFRfSVA2X0xP T0tVUCwNCj4gPiArDQo+ID4gKyAgICAgICBbUlRFX1BUWVBFX0wzX0lQVjYgfCBSVEVfUFRZUEVf TDJfRVRIRVJdID0NCj4gPiArIFBLVF9DTFNfTkVYVF9JUDZfTE9PS1VQLA0KPiA+ICsNCj4gPiAr ICAgICAgIFtSVEVfUFRZUEVfTDNfSVBWNl9FWFQgfCBSVEVfUFRZUEVfTDJfRVRIRVJdID0NCj4g PiArIFBLVF9DTFNfTkVYVF9JUDZfTE9PS1VQLA0KPiA+ICsNCj4gPiArICAgICAgIFtSVEVfUFRZ UEVfTDNfSVBWNl9FWFRfVU5LTk9XTiB8IFJURV9QVFlQRV9MMl9FVEhFUl0gPQ0KPiA+ICsgICAg ICAgICAgICAgICBQS1RfQ0xTX05FWFRfSVA2X0xPT0tVUCwNCj4gPiAgfTsNCj4gPg0KPiA+ICBz dGF0aWMgdWludDE2X3QNCj4gPiBAQCAtMjE2LDYgKzIyOSw3IEBAIHN0cnVjdCBydGVfbm9kZV9y ZWdpc3RlciBwa3RfY2xzX25vZGUgPSB7DQo+ID4gICAgICAgICAgICAgICAgIC8qIFBrdCBkcm9w IG5vZGUgc3RhcnRzIGF0ICcwJyAqLw0KPiA+ICAgICAgICAgICAgICAgICBbUEtUX0NMU19ORVhU X1BLVF9EUk9QXSA9ICJwa3RfZHJvcCIsDQo+ID4gICAgICAgICAgICAgICAgIFtQS1RfQ0xTX05F WFRfSVA0X0xPT0tVUF0gPSAiaXA0X2xvb2t1cCIsDQo+ID4gKyAgICAgICAgICAgICAgIFtQS1Rf Q0xTX05FWFRfSVA2X0xPT0tVUF0gPSAiaXA2X2xvb2t1cCIsDQo+ID4gICAgICAgICB9LA0KPiA+ ICB9Ow0KPiA+ICBSVEVfTk9ERV9SRUdJU1RFUihwa3RfY2xzX25vZGUpOw0KPiA+IGRpZmYgLS1n aXQgYS9saWIvbm9kZS9wa3RfY2xzX3ByaXYuaCBiL2xpYi9ub2RlL3BrdF9jbHNfcHJpdi5oIGlu ZGV4DQo+ID4gNmY1Mzc0ZjBiZS4uMTYxMzU4MDdhMSAxMDA2NDQNCj4gPiAtLS0gYS9saWIvbm9k ZS9wa3RfY2xzX3ByaXYuaA0KPiA+ICsrKyBiL2xpYi9ub2RlL3BrdF9jbHNfcHJpdi5oDQo+ID4g QEAgLTEzLDYgKzEzLDcgQEAgc3RydWN0IHBrdF9jbHNfbm9kZV9jdHggeyAgZW51bSBwa3RfY2xz X25leHRfbm9kZXMgew0KPiA+ICAgICAgICAgUEtUX0NMU19ORVhUX1BLVF9EUk9QLA0KPiA+ICAg ICAgICAgUEtUX0NMU19ORVhUX0lQNF9MT09LVVAsDQo+ID4gKyAgICAgICBQS1RfQ0xTX05FWFRf SVA2X0xPT0tVUCwNCj4gPiAgICAgICAgIFBLVF9DTFNfTkVYVF9NQVgsDQo+ID4gIH07DQo+ID4N Cj4gPiBkaWZmIC0tZ2l0IGEvbGliL25vZGUvcnRlX25vZGVfaXA2X2FwaS5oIGIvbGliL25vZGUv cnRlX25vZGVfaXA2X2FwaS5oDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQgaW5kZXggMDAwMDAw MDAwMC4uMTY5NmVkMTU0ZA0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9saWIvbm9kZS9y dGVfbm9kZV9pcDZfYXBpLmgNCj4gPiBAQCAtMCwwICsxLDgwIEBADQo+ID4gKy8qIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gPiArICogQ29weXJpZ2h0KEMpIDIwMjMg TWFydmVsbC4NCj4gPiArICovDQo+ID4gKw0KPiA+ICsjaWZuZGVmIF9fSU5DTFVERV9SVEVfTk9E RV9JUDZfQVBJX0hfXyAjZGVmaW5lDQo+ID4gK19fSU5DTFVERV9SVEVfTk9ERV9JUDZfQVBJX0hf Xw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIEBmaWxlIHJ0ZV9ub2RlX2lwNl9hcGkuaA0KPiA+ ICsgKg0KPiA+ICsgKiBAd2FybmluZw0KPiA+ICsgKiBAYiBFWFBFUklNRU5UQUw6DQo+ID4gKyAq IEFsbCBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlIG1heSBiZSBjaGFuZ2VkIG9yIHJlbW92ZWQgd2l0 aG91dCBwcmlvcg0KPiBub3RpY2UuDQo+ID4gKyAqDQo+ID4gKyAqIFRoaXMgQVBJIGFsbG93cyB0 byBkbyBjb250cm9sIHBhdGggZnVuY3Rpb25zIG9mIGlwNl8qIG5vZGVzDQo+ID4gKyAqIGxpa2Ug aXA2X2xvb2t1cCwgaXA2X3Jld3JpdGUuDQo+ID4gKyAqDQo+ID4gKyAqLw0KPiA+ICsjaWZkZWYg X19jcGx1c3BsdXMNCj4gPiArZXh0ZXJuICJDIiB7DQo+ID4gKyNlbmRpZg0KPiA+ICsNCj4gPiAr I2luY2x1ZGUgPHJ0ZV9jb21tb24uaD4NCj4gPiArI2luY2x1ZGUgPHJ0ZV9jb21wYXQuaD4NCj4g PiArDQo+ID4gKy8qKg0KPiA+ICsgKiBJUDYgbG9va3VwIG5leHQgbm9kZXMuDQo+ID4gKyAqLw0K PiA+ICtlbnVtIHJ0ZV9ub2RlX2lwNl9sb29rdXBfbmV4dCB7DQo+ID4gKyAgICAgICBSVEVfTk9E RV9JUDZfTE9PS1VQX05FWFRfUkVXUklURSwNCj4gPiArICAgICAgIC8qKjwgUmV3cml0ZSBub2Rl LiAqLw0KPiA+ICsgICAgICAgUlRFX05PREVfSVA2X0xPT0tVUF9ORVhUX1BLVF9EUk9QLA0KPiA+ ICsgICAgICAgLyoqPCBQYWNrZXQgZHJvcCBub2RlLiAqLw0KPiA+ICsgICAgICAgUlRFX05PREVf SVA2X0xPT0tVUF9ORVhUX01BWCwNCj4gPiArICAgICAgIC8qKjwgTnVtYmVyIG9mIG5leHQgbm9k ZXMgb2YgbG9va3VwIG5vZGUuICovIH07DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogQWRkIGlw djYgcm91dGUgdG8gbG9va3VwIHRhYmxlLg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFyYW0gaXANCj4g PiArICogICBJUHY2IGFkZHJlc3Mgb2Ygcm91dGUgdG8gYmUgYWRkZWQuDQo+ID4gKyAqIEBwYXJh bSBkZXB0aA0KPiA+ICsgKiAgIERlcHRoIG9mIHRoZSBydWxlIHRvIGJlIGFkZGVkLg0KPiA+ICsg KiBAcGFyYW0gbmV4dF9ob3ANCj4gPiArICogICBOZXh0IGhvcCBpZCBvZiB0aGUgcnVsZSByZXN1 bHQgdG8gYmUgYWRkZWQuDQo+ID4gKyAqIEBwYXJhbSBuZXh0X25vZGUNCj4gPiArICogICBOZXh0 IG5vZGUgdG8gcmVkaXJlY3QgdHJhZmZpYyB0by4NCj4gPiArICoNCj4gPiArICogQHJldHVybg0K PiA+ICsgKiAgIDAgb24gc3VjY2VzcywgbmVnYXRpdmUgb3RoZXJ3aXNlLg0KPiA+ICsgKi8NCj4g PiArX19ydGVfZXhwZXJpbWVudGFsDQo+ID4gK2ludCBydGVfbm9kZV9pcDZfcm91dGVfYWRkKGNv bnN0IHVpbnQ4X3QgKmlwLCB1aW50OF90IGRlcHRoLCB1aW50MTZfdA0KPiBuZXh0X2hvcCwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIHJ0ZV9ub2RlX2lwNl9sb29rdXBfbmV4 dCBuZXh0X25vZGUpOw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIEFkZCBhIG5leHQgaG9wJ3Mg cmV3cml0ZSBkYXRhLg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFyYW0gbmV4dF9ob3ANCj4gPiArICog ICBOZXh0IGhvcCBpZCB0byBhZGQgcmV3cml0ZSBkYXRhIHRvLg0KPiA+ICsgKiBAcGFyYW0gcmV3 cml0ZV9kYXRhDQo+ID4gKyAqICAgUmV3cml0ZSBkYXRhLg0KPiA+ICsgKiBAcGFyYW0gcmV3cml0 ZV9sZW4NCj4gPiArICogICBMZW5ndGggb2YgcmV3cml0ZSBkYXRhLg0KPiA+ICsgKiBAcGFyYW0g ZHN0X3BvcnQNCj4gPiArICogICBEZXN0aW5hdGlvbiBwb3J0IHRvIHJlZGlyZWN0IHRyYWZmaWMg dG8uDQo+ID4gKyAqDQo+ID4gKyAqIEByZXR1cm4NCj4gPiArICogICAwIG9uIHN1Y2Nlc3MsIG5l Z2F0aXZlIG90aGVyd2lzZS4NCj4gPiArICovDQo+ID4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiA+ ICtpbnQgcnRlX25vZGVfaXA2X3Jld3JpdGVfYWRkKHVpbnQxNl90IG5leHRfaG9wLCB1aW50OF90 ICpyZXdyaXRlX2RhdGEsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90 IHJld3JpdGVfbGVuLCB1aW50MTZfdCBkc3RfcG9ydCk7DQo+ID4gKw0KPiA+ICsjaWZkZWYgX19j cGx1c3BsdXMNCj4gPiArfQ0KPiA+ICsjZW5kaWYNCj4gPiArDQo+ID4gKyNlbmRpZiAvKiBfX0lO Q0xVREVfUlRFX05PREVfSVA2X0FQSV9IX18gKi8NCj4gPiBkaWZmIC0tZ2l0IGEvbGliL25vZGUv dmVyc2lvbi5tYXAgYi9saWIvbm9kZS92ZXJzaW9uLm1hcCBpbmRleA0KPiA+IGE3OTliMGQzODku LjQwZGYzMDhiZmUgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL25vZGUvdmVyc2lvbi5tYXANCj4gPiAr KysgYi9saWIvbm9kZS92ZXJzaW9uLm1hcA0KPiA+IEBAIC00LDYgKzQsOCBAQCBFWFBFUklNRU5U QUwgew0KPiA+ICAgICAgICAgcnRlX25vZGVfZXRoX2NvbmZpZzsNCj4gPiAgICAgICAgIHJ0ZV9u b2RlX2lwNF9yb3V0ZV9hZGQ7DQo+ID4gICAgICAgICBydGVfbm9kZV9pcDRfcmV3cml0ZV9hZGQ7 DQo+ID4gKyAgICAgICBydGVfbm9kZV9pcDZfcmV3cml0ZV9hZGQ7DQo+ID4gKyAgICAgICBydGVf bm9kZV9pcDZfcm91dGVfYWRkOw0KPiA+ICAgICAgICAgcnRlX25vZGVfbG9ndHlwZTsNCj4gPiAg ICAgICAgIGxvY2FsOiAqOw0KPiA+ICB9Ow0KPiA+IC0tDQo+ID4gMi4yNS4xDQo+ID4NCg==