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 B58E8488A2; Fri, 3 Oct 2025 20:58:46 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4ED9D402BB; Fri, 3 Oct 2025 20:58:46 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 84E68402B5 for ; Fri, 3 Oct 2025 20:58:44 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 593I8KnP004913; Fri, 3 Oct 2025 11:58:43 -0700 Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11020138.outbound.protection.outlook.com [52.101.46.138]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 49jkgj02tf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 03 Oct 2025 11:58:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ifI6qnNzJHBcyMQxed45LoP595D+NLtSCqXqnuWAjOTc0qnJdptyHo1z7kjw9kyvWb9t46fSoH8WaW6rdakyAwrUCS8h3FviyO3zKb0nTFfO0sjrGOOkQA0O5QGZLgCr/U7omYb9giJ8Y6vjZLzGDti2CXdEGZGlco1N7j0cvAPnaSmPVOo77F7s0+nyjQRMdv6ThSix5L9gEOoYgLIIJ5CpTPzE0VRr65WhzcCbG+xRXiTj+FeIxqf6H3bt5YVeZrxHmHliueWC5SuvtfiAqVCOqVH3DgLHn7tDKylLuPU8wr5ar4PttuEtZtXE7Trpr0rYcJK+tXNivO7uhrimcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=vffpJqaDQ9mhNLcbHDT4A2FFmOJiQbY/rugFS5gHHD0=; b=Jar1VjcN1IAKAcN9RV4mbof3ZqMSBoFEJ7F4+5HtRSjPiQelxw7qzZLohUBSZzWsVSs0DtHNV2cKINwHqM3+yBxsfE98EsCluN76edFs2TjmPRsztIkclI+am92jTpTWpippDSWEbRCAAgpnjG4SUhQbIOw+857VgvPbPgfr4eOnb41FNQEkKTur7BghEjTrAfWGa9lNGQLaMkWukW7AozCe9kOVIivztQaeMl4hDIHphnLFS7x1Bh0xKOi/mlsCKlY6XKQKmIwohgWbWsOJB0Cw59gK4k+RMqerZqcBsAGtQxqngHPQ8NM1qxBUG4hJ0Mh6mgXG9pIkFYyYz1ee/w== 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.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vffpJqaDQ9mhNLcbHDT4A2FFmOJiQbY/rugFS5gHHD0=; b=GhGFRvcgF9Xa/wxCeUhS2/SU4BXDPWMbUbbRfIYQmGxx8nxA6G+1Bl1INvYy/SB+L38KU/Xtjp1F1ZoaYeAjo5iozy6tgPhkSwUC9bPqPsIVY6oQY6amnJZC4WSoIUma00s4L+NxJK+QsMNFBaoBmSKmXqSkhgCLPXCdt5Js6cA= Received: from CO6PR18MB4484.namprd18.prod.outlook.com (2603:10b6:5:359::9) by DM4PR18MB4365.namprd18.prod.outlook.com (2603:10b6:5:39a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9160.17; Fri, 3 Oct 2025 18:58:36 +0000 Received: from CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::a2df:a596:cfe:17]) by CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::a2df:a596:cfe:17%2]) with mapi id 15.20.9182.015; Fri, 3 Oct 2025 18:58:36 +0000 From: Akhil Goyal To: Sameer Vaze , Sunila Sahu , Fan Zhang , Ashish Gupta CC: "dev@dpdk.org" Subject: RE: [EXTERNAL] [PATCH v2 2/3] compress/zlib: support for dictionaries and PDCP checksum Thread-Topic: [EXTERNAL] [PATCH v2 2/3] compress/zlib: support for dictionaries and PDCP checksum Thread-Index: AQHcNIYHVvtu/ss4QEm2vxRjyzI517SwxPLg Date: Fri, 3 Oct 2025 18:58:36 +0000 Message-ID: References: <20250924161918.2211290-1-svaze@qti.qualcomm.com> <20251003165132.3201643-1-svaze@qti.qualcomm.com> <20251003165132.3201643-2-svaze@qti.qualcomm.com> In-Reply-To: <20251003165132.3201643-2-svaze@qti.qualcomm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO6PR18MB4484:EE_|DM4PR18MB4365:EE_ x-ms-office365-filtering-correlation-id: ff2bbe81-350b-4738-c4fb-08de02aedb59 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700021; x-microsoft-antispam-message-info: =?utf-8?B?U0ppaHB4cTl6UU5CcGxDTHFhNDFyOHhnVXh3NDgxTHZGMG9jbDRVa1pHV01t?= =?utf-8?B?UU9DKzl5cWJVNm5xSFZCTWRSeU1MczVmZTZpem1OWGJSSGVPelVEQkNSNFRY?= =?utf-8?B?N0ZOUXdEcGw3YnNwdTI1K1BaU1Z6TlJmU2ozRGdheFQyMUFFaEdmTDZ5cnBk?= =?utf-8?B?bE1xcW44U3JaaFliQThDa2ZONDEvUW9GR0V0bkY5MWx1d1UzNXZFMk5WbEJw?= =?utf-8?B?enZLaENwVzYxakFzcy9ydU5KUHVWaUNDSnpDYlVkblFYTTl3dzE3SUswQkd2?= =?utf-8?B?dHJWYzFCandaUC9jZVRYamwrNkFybFN6MFhXOFg2eUpvdjZSUmVCbmovK0wy?= =?utf-8?B?RUIvOTNyRkRJNnRqL2dycUo3MWNUU3JIQmlOZXJ2RDdoZzJvSTJKaWExWTNW?= =?utf-8?B?TC85UTdsREl1TVZHdVlZc2hvUFVtOU9BSmpOQmx0WUVKeHNKZy9YdzVsQlE4?= =?utf-8?B?b0VxbWVOUUdZOXpBYnpxQVYrK0t1aHFHRld3b08zVDBrQWJRVXlNSWVxQ2JT?= =?utf-8?B?YTQrZkVTVEtMQTNKdS9wRldBYTRydDlIZ0VmQVM0RVN2bnRHR3ErL0hiVjZ1?= =?utf-8?B?T01EZXBoZm5SRXlyTGU3SDloMGI2SVd3RXJoRVBWVU1ib3VyMTZFT2ZlYnFX?= =?utf-8?B?VXgxQnlMN2RKcVpwdTEvc2hBaU9XQnVueFVxRlQxRjdnaWIzZDFrdTRhM3NK?= =?utf-8?B?RXFoV3l1REdmZEdnQnRPRkVqc0RYeVZlVXpzVTNJUFRTMG5rTzgwWEtMS3d2?= =?utf-8?B?S2FzeFZmdGwvbEtDdkxvZ0p3bmFMUy9mY042UUVvTDdscVdZQWJtaDhBc2lt?= =?utf-8?B?c2FtTTJ6S2Q4ODNQbmxReUpGYmFVRjVsaG9ZcDJKQlFPSmppaWdzMEJEb0ps?= =?utf-8?B?WHBxb1JrWmJjdWZmTGh6NWZRMGwybWlPSDFEc1dOU2dRWVZ5TSt0VWViZ1Bs?= =?utf-8?B?Vmw5Q3hKaHNnRlhJc2FqU3NmaHIxaGg5aitTWTlsSFZsU1FtUUdTTXBqakM2?= =?utf-8?B?OXMzZWcwMzFvYkRETkg5VFJ4RCtWQ0haSTFSS0ZRMXlsTFg0UDl1THpsdDFN?= =?utf-8?B?U09RM3BZeXRJRUQyQmt1WHh5bUxzRUtwY3NLRTJENGFIMHlYbHZIc0pIeFIv?= =?utf-8?B?S0pXWjdYWmRER3U1YnB4bDRrVmVsaDFTSml2R3krbGg1bkZ1Si82STlWc05Z?= =?utf-8?B?ZEsralhGaFRXVjdYU1BUTkwreGRGS3UzNmRGSTF6Z1R4NW1xdExHOFY2ODFm?= =?utf-8?B?Y1NZaWxxYk0yUHFGdjB6aGIreEtwVWVXS2VHQlV5RjZZaDlMK0tXSHFSazJv?= =?utf-8?B?RC9qTjNZQ29JWEY1amR1aWRuQktiTmEyYVU2dGhQenFnSnFNQ1RxdUJFSjFz?= =?utf-8?B?cVhzanRCbXU1bXY1YVlaNU02VlJYREw3T0dKbUF4cXBXdGFPcWJvUGVrb0xG?= =?utf-8?B?a3l2ZDQ5WTlpQ0JNVTl0bWc4SWJpcFVDY2pJeU1PSE9VU1FpTGwvTEtPUlJH?= =?utf-8?B?b3I4a3IzRWxmTXVyOVdMZW8ybWxKUVprU1pOeU9Xakk4MUU0bnMxYlFoTi9T?= =?utf-8?B?cFdaRGo3TlBqQ3lBOUExdk1QbG90cXZGa081YllpQ0E5VkpaVURueG9UZ0xa?= =?utf-8?B?dFZ2SWU0UkNYUi9FYVlXeXlLSUY1WXo5UENDWGNPUVlKZkJxVnFFeDI5eWIv?= =?utf-8?B?YVdRcWZpM2NQeUdXNHF1dXp6ODNuRXhVOGVFU2dDZXp4ZnduYm84aE83dGR2?= =?utf-8?B?RlJpakxKL29mRk1jUTlicVQrMm5LSXVpdHJvdWI0cFB4NVNFWXRQTDBpcms5?= =?utf-8?B?NGhReWRPMWtnbkFHSXZTbDJmOFdvR2lPa2FaS3dFYTBHRFRBMEE1MHdKMEx2?= =?utf-8?B?MHlTZWFGa3FaeWxFanZ2aFh0UUlJeGZJbG1jNHFsMFhvSE1tWm9PTFRuME5o?= =?utf-8?B?c3p6NC96dDJibHNndFRjeUNtd29XaWxxRlEzM3JSQno1elgwYTVtNnU0cDkx?= =?utf-8?B?REwvQ3RtTklIVmJBdXo2NnM3L3pSbzhzeHZVbWVFdmZjTi9xQW95REcvaDVM?= =?utf-8?Q?kQvgKq?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO6PR18MB4484.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700021); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MXdweXFhbmlKck9jQnpKVkl3TzJwZVlRU1NhODE4M1RxWG91a2ltV0ZLNlFK?= =?utf-8?B?UGhMREZHSUFaUXNuYmVSOVhaZmJMaGV2cUIyV2dOcDdWV29wNWhCanBNNW9C?= =?utf-8?B?WDBnNldES3pLQzhSSWFwbWp0elA1Qk55OHNjdU5LcHRieGNHWXpMc01YQVNw?= =?utf-8?B?aGd5MUh1cDZDaGlqRVR4MFZkWXdMck01UGxKRVlzRW9QODBKZ1I0eGJZd1dI?= =?utf-8?B?bGw5dTE5d0w0S1VYUEg4OVdOREVrNFVZL29xdTF4ZEdWWEkxMXRQN3pLZDJh?= =?utf-8?B?YVlsbHhMbSs0dDV2SENlQ1pIODg3R2NyL3JrNUFzNEd4dXdlaHViZStTbE5J?= =?utf-8?B?bDhZaTdvQVpST0g2VDVVTXU5enZQT3NwbXd4THJVWWNtZnY2K01zNXdVbFJE?= =?utf-8?B?NE5hb1VVcm5nR3MwMHpwcm96dFpXeFBmbi94T05DbG41UVB0aE1WeWJMSTlx?= =?utf-8?B?SXBGc01ITVQ3V24rU2NIN1pyVzVjRWVBU1NGa2Q5bFRSaitoZVRXb0g4cFJF?= =?utf-8?B?WDF4M2N6TjJtTVk1MFFncWJYT2FMcUFONmVETitCc3RhbGFPUUUxYVp5Uy9E?= =?utf-8?B?ZVc2RW10SGtBZGpVeVBMTjFiS096NHg0ZTNXeThxMUtRYmJraHFpaFI0cVAw?= =?utf-8?B?ZUdYUzIrRkNoQmZ5alNIQ09JZkx2cXJhclFvMFIwcVc2N2s1WUE0NnRtR3h4?= =?utf-8?B?eUM4RU13RUN0RWUvWFE5RVNpS212eENTVGlQUGM0TUo1b2ZNSWxnMDdJcmV0?= =?utf-8?B?M3UzQktBZDZ2cm42V2kyUTFLWG5wWGVVdWpIOHNwMGx3cWtoVWt3VStsRjZ0?= =?utf-8?B?S29ibHp1QmhFWk5QRyt1cmtqd2VJOWdDNEhjUGRxK1BxSlZDTTdYNHd6Q0Ni?= =?utf-8?B?cFdvTlNtTEIxL0s4WGRkeWFrdnF4VGx0dkpsQnUrc2R6bGd3SkxLdnRWdGhs?= =?utf-8?B?SmhMTVh0R3RUOWp3NlpCL0haQVhSeHJXbWsvY2lWUUFGS28vSEVWQWQ1Q3dG?= =?utf-8?B?Y1dQZnNiRFhxZlJrZ2JUMG50aGVIZFg5TWpnWUlXZ281Vk1DV1FXazJPYkZz?= =?utf-8?B?YmJQQjg1Y2g2Q1ZpNk4yNWZEanM4T0J3cHEvcXhnbzBDNXRzOCtqUkpCZmJB?= =?utf-8?B?YUFSZ21OMTJlczhuVDk5UHFKM29kSEZCb1lkR1dZQjFKREwxRklkVk54RFJi?= =?utf-8?B?YnhmQ2V3WjlIRUdheWxqWHFFNnNDVnBwallIYThiSThER2t6a0ZEOHdPK0h3?= =?utf-8?B?dko5NnVERUNwdUdjNWkwTVBTaStkQ1FRVGw2S2UzS1VrRVoza2VBbFZHNlZo?= =?utf-8?B?OTlvczZIMEFQYVVCN1dVcHRtODZoTElmUjlENC9oaUZoaXlMRzF3UVNzeVdz?= =?utf-8?B?Nlk4SE9ndmFlajh1b1llSEwvcW9WL3I2STFWWEhPZnpvc1NKcWpWRC94RnRj?= =?utf-8?B?T2EzNmNseHZwMU1xRE1pSllKTnVCZ0kzdzVMOUJtTlMrWTNtc1lRaFQwQ2FL?= =?utf-8?B?NTVtc3o5Tjh6OEdvUDVnZ1hqVjJDVjJ0MXJpemJVaFVVazRRUzhPUHdjK09Q?= =?utf-8?B?dVVGYlRQVHNUMXFucnRacmR2ckhXTCtJTm1EVWxiNkRzTSsrdGVlaHE3clFP?= =?utf-8?B?bzJ1Z3Zsais1OWdoU0xnZk94eU15dlAvUkRpaStPczZweUpEYjhRV1JGQXNy?= =?utf-8?B?NTRQY2grZmtKby9udTZ3cTA4TTFPWkZnRk9BeUNtbmU4ciszWmphTlVIaXhl?= =?utf-8?B?bDNaYksyUkQyL2haaWlRY25qVFRDTHluSUFocm53aEZqTks4eC9LU2tYSWZY?= =?utf-8?B?M1BMVmJLMUNpRms3VUUrRmhiT2x4ZG1YTDR1RTlVaENzcVJOcTRId0plUVpJ?= =?utf-8?B?MDA5S3IwcTZxN2NRcEJSNnp0TWdrcE8rbGg1N1BnK250blFNRlJtVXdKZXRJ?= =?utf-8?B?alE4eEtiQ1hNRVBMYjlEVGhxRUNhU1ZFSzFMVkVhSHRQdnVpT2JaclpVcnJj?= =?utf-8?B?WnJ0ZjZYYWlUSEJVN0JMRnJ4eWNrTTFaMXUzQlIvcHJEVC9iNk01cmpUVUh0?= =?utf-8?B?UGQ1d2NuaklaaStLYnRHc1NXMkkrU2xtMXMrQzRscGFpUkJ1TXhIM1RjbFVw?= =?utf-8?Q?bjFU=3D?= 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: CO6PR18MB4484.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ff2bbe81-350b-4738-c4fb-08de02aedb59 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Oct 2025 18:58:36.0793 (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: JK6dxa0AYAchm3eXBKJNq5AAK4HLdYrLl6HhVvPrWcQmLQk3j1xqPGl9mf9u/0jiop4qw6ntG7S6dxGWHaEgPQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR18MB4365 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDAzMDE0OSBTYWx0ZWRfXxNuiUaUW8+BQ qg5YRhFmU+9Yq26t2wl58Xb4Rik2gp+eKmqIALlOhjymwgvsFVctRU/25U9hq0XklhmNOzywTWb 6QrIPKDJS1Xfus1LBTK94vO7EVekYHMsXS8W9Gx4WNU8cT4gPwcIdtRPsvXYHMvdSOUFzFEcdHx SniSMQyhJSDa5V0bnsJYvG6TIsIyzmzEoTgxA9796TX3UuDF5uJ871657lzGOveVmjkfxjx8Jyk s6d6/68Ku2tZcQcU/rJY4LkkDVr4gqlz6oJHgRMnDc+unuWtYl1V1mQl7zZCrumCSZWMvoexFYY XQK5EwdAXHUTSoShXnOhjyGctm7EN/aYN/WGxN5Xz3b9fOTgNsQWYUiHdJWyLtFKNOkonMJqFAo X/W+98vZc+ClqUhpmBYmwMid9G8OMQ== X-Authority-Analysis: v=2.4 cv=ddqNHHXe c=1 sm=1 tr=0 ts=68e01ce3 cx=c_pps a=FoMG50TuxTqJTEtiCMANQg==:117 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=-AAbraWEqlQA:10 a=EUspDBNiAAAA:8 a=z3OGAXwMmwp3NyUHcE4A:9 a=QEXdDO2ut3YA:10 X-Proofpoint-GUID: mTaN9AcjVHQimPcKVk_ho_V7HPb2f6tj X-Proofpoint-ORIG-GUID: mTaN9AcjVHQimPcKVk_ho_V7HPb2f6tj X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-03_06,2025-10-02_03,2025-03-28_01 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 PiBTdXBwb3J0IHRvIGNhbGN1bGF0ZSBQRENQIGNoZWNrc3Vtcy4gSW5jbHVkZXMgY2hhbmdlcyB0 bw0KPiBwYXNzIGluIGRpY3Rpb25hcmllcy4gQWRkcyBzdXBwb3J0IGZvciBzeW5jIGZsdXNoDQo+ IA0KPiBTaWduZWQtb2ZmLWJ5OiBTYW1lZXIgVmF6ZSA8c3ZhemVAcXRpLnF1YWxjb21tLmNvbT4N Cj4gLS0tDQo+IHYyOg0KPiAqIE1vdmVkIGRpY3Rpb25hcnkgcGFyYW1zIHRvIGRlZmxhdGUgc3Ry dWN0DQo+ICogQWRkZWQgaW5mbGF0ZSBwYXJhbXMgc3RydWN0IHRvIHVuaW9uDQo+IA0KPiAgZHJp dmVycy9jb21wcmVzcy96bGliL3psaWJfcG1kLmMgICAgICAgICB8IDE3MyArKysrKysrKysrKysr KysrKysrKystLQ0KPiAgZHJpdmVycy9jb21wcmVzcy96bGliL3psaWJfcG1kX3ByaXZhdGUuaCB8 ICAgOCArKw0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAxNzIgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlv bnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NvbXByZXNzL3psaWIvemxpYl9wbWQu YyBiL2RyaXZlcnMvY29tcHJlc3MvemxpYi96bGliX3BtZC5jDQo+IGluZGV4IDkyZTgwOGU3OGMu LjkzMWRkMzlhNGMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvY29tcHJlc3MvemxpYi96bGliX3Bt ZC5jDQo+ICsrKyBiL2RyaXZlcnMvY29tcHJlc3MvemxpYi96bGliX3BtZC5jDQo+IEBAIC00LDYg KzQsNyBAQA0KPiANCj4gICNpbmNsdWRlIDxidXNfdmRldl9kcml2ZXIuaD4NCj4gICNpbmNsdWRl IDxydGVfY29tbW9uLmg+DQo+ICsjaW5jbHVkZSA8c3RkbGliLmg+DQo+IA0KPiAgI2luY2x1ZGUg InpsaWJfcG1kX3ByaXZhdGUuaCINCj4gDQo+IEBAIC0xNSw2ICsxNiwxMjAgQEANCj4gIAkJKGRh dGEgPSBydGVfcGt0bWJ1Zl9tdG9kKG1idWYsIHVpbnQ4X3QgKikpLAlcDQo+ICAJCShsZW4gPSBy dGVfcGt0bWJ1Zl9kYXRhX2xlbihtYnVmKSkgOiAwKQ0KPiANCj4gKyNkZWZpbmUgQk9UVE9NX05J QkJMRV9PRl9CWVRFIDB4Zg0KPiArI2RlZmluZSBUT1BfTklCQkxFX09GX0JZVEUgMHhmMA0KPiAr DQo+ICtzdGF0aWMgdm9pZA0KPiArcHJvY2Vzc196bGliX2RlZmxhdGVfY2hrc3VtKHN0cnVjdCBy dGVfY29tcF9vcCAqb3AsDQo+ICsJCXpfc3RyZWFtICpzdHJtLCBlbnVtIHJ0ZV9jb21wX2NoZWNr c3VtX3R5cGUgY2hrc3VtKQ0KPiArew0KPiArCXVpbnQzMl90IGRpY3Rpb25hcnlfbGVuID0gMDsN Cj4gKwlvcC0+c3RhdHVzID0gUlRFX0NPTVBfT1BfU1RBVFVTX1NVQ0NFU1M7DQo+ICsNCj4gKwlz d2l0Y2ggKGNoa3N1bSkgew0KPiArCWNhc2UgUlRFX0NPTVBfQ0hFQ0tTVU1fM0dQUF9QRENQX1VE QzoNCj4gKwkJew0KRml4IGluZGVudGF0aW9uLiBUaGlzIGJyYWNlIHNob3VsZCBiZSBiZWxvdyBj YXNlLg0KDQo+ICsJCXVpbnQ4X3QgKmRpY3Rpb25hcnkgPSBtYWxsb2MoREVGTEFURV9NQVhfV0lO RE9XX1NJWkUpOw0KRGVmaW5lIHZhcmlhYmxlcyBhdCBzdGFydCBvZiBmdW5jdGlvbnMgb25seS4N Cg0KPiArDQo+ICsJCWlmICghZGljdGlvbmFyeSkgew0KPiArCQkJWkxJQl9QTURfRVJSKCJVbmFi bGUgdG8gZmV0Y2ggZGljdGlvbmFyeSIpOw0KPiArCQkJb3AtPnN0YXR1cyA9IFJURV9DT01QX09Q X1NUQVRVU19FUlJPUjsNCj4gKwkJCXJldHVybjsNCj4gKwkJfQ0KPiArDQo+ICsJCWlmIChkZWZs YXRlR2V0RGljdGlvbmFyeShzdHJtLCBkaWN0aW9uYXJ5LCAmZGljdGlvbmFyeV9sZW4pKSB7DQo+ ICsJCQlaTElCX1BNRF9FUlIoIlVuYWJsZSB0byBmZXRjaCBkaWN0aW9uYXJ5Iik7DQo+ICsJCQlv cC0+c3RhdHVzID0NCj4gUlRFX0NPTVBfT1BfU1RBVFVTX0NIRUNLX1NVTV9WQUxJREFUSU9OX0ZB SUxFRDsNCj4gKwkJCWZyZWUoZGljdGlvbmFyeSk7DQo+ICsJCQlyZXR1cm47DQo+ICsJCX0NCj4g Kw0KDQoNCj4gKwkJdWludDMyX3QgZGljdGlvbmFyeV9zdGFydCA9ICh1aW50MzJfdCkoKmRpY3Rp b25hcnkpOw0KPiArCQl1aW50MzJfdCBkaWN0aW9uYXJ5X2VuZCA9ICh1aW50MzJfdCkoKihkaWN0 aW9uYXJ5ICsNCj4gZGljdGlvbmFyeV9sZW4gLSA0KSk7DQo+ICsJCXVpbnQzMl90IHN1bSA9IChk aWN0aW9uYXJ5X3N0YXJ0ICYgMHgwRjBGMEYwRikNCg0KQ2FuIHlvdSB1c2UgYSBtYWNybyBmb3Ig MHgwRjBGMEYwRg0KDQo+ICsJCQkrIChkaWN0aW9uYXJ5X3N0YXJ0ICYgKDB4RjBGMEYwRjAgPj4g NCkpDQo+ICsJCQkrIChkaWN0aW9uYXJ5X2VuZCAmIDB4MEYwRjBGMEYpDQo+ICsJCQkrIChkaWN0 aW9uYXJ5X2VuZCAmICgweEYwRjBGMEYwID4+IDQpKTsNCj4gKwkJdWludDhfdCAqc3VtX2J5dGVz ID0gKHVpbnQ4X3QgKikmc3VtOw0KDQpTYW1lIHdpdGggYWJvdmUuDQoNCj4gKw0KPiArCQlvcC0+ b3V0cHV0X2Noa3N1bSA9IH4oc3VtX2J5dGVzWzBdICsgc3VtX2J5dGVzWzFdICsNCj4gc3VtX2J5 dGVzWzJdICsgc3VtX2J5dGVzWzNdKQ0KPiArCQkJICYgQk9UVE9NX05JQkJMRV9PRl9CWVRFOw0K PiArDQo+ICsJCWZyZWUoZGljdGlvbmFyeSk7DQo+ICsNCj4gKwkJYnJlYWs7DQo+ICsJfQ0KPiAr CWNhc2UgUlRFX0NPTVBfQ0hFQ0tTVU1fTk9ORToNCj4gKwkJYnJlYWs7DQo+ICsJY2FzZSBSVEVf Q09NUF9DSEVDS1NVTV9DUkMzMjoNCj4gKwljYXNlIFJURV9DT01QX0NIRUNLU1VNX0FETEVSMzI6 DQo+ICsJY2FzZSBSVEVfQ09NUF9DSEVDS1NVTV9DUkMzMl9BRExFUjMyOg0KPiArCWRlZmF1bHQ6 DQo+ICsJCVpMSUJfUE1EX0VSUigiQ2hlY2tzdW0gbm90IHN1cHBvcnRlZCIpOw0KPiArCQlvcC0+ c3RhdHVzID0gUlRFX0NPTVBfT1BfU1RBVFVTX0lOVkFMSURfQVJHUzsNCj4gKwkJcmV0dXJuOw0K PiArCX0NCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQNCj4gK3Byb2Nlc3NfemxpYl9pbmZsYXRl X2Noa3N1bShzdHJ1Y3QgcnRlX2NvbXBfb3AgKm9wLA0KPiArCQl6X3N0cmVhbSAqc3RybSwNCj4g KwkJZW51bSBydGVfY29tcF9jaGVja3N1bV90eXBlIGNoa3N1bSkNCj4gK3sNCj4gKwl1aW50MzJf dCBkaWN0aW9uYXJ5X2xlbiA9IDA7DQo+ICsJb3AtPnN0YXR1cyA9IFJURV9DT01QX09QX1NUQVRV U19TVUNDRVNTOw0KPiArDQo+ICsJc3dpdGNoIChjaGtzdW0pIHsNCj4gKwljYXNlIFJURV9DT01Q X0NIRUNLU1VNXzNHUFBfUERDUF9VREM6DQo+ICsJCXsNCj4gKwkJdWludDhfdCAqZGljdGlvbmFy eSA9IG1hbGxvYyhERUZMQVRFX01BWF9XSU5ET1dfU0laRSk7DQo+ICsNCj4gKwkJaWYgKCFkaWN0 aW9uYXJ5KSB7DQo+ICsJCQlaTElCX1BNRF9FUlIoIlVuYWJsZSB0byBmZXRjaCBkaWN0aW9uYXJ5 Iik7DQo+ICsJCQlvcC0+c3RhdHVzID0gUlRFX0NPTVBfT1BfU1RBVFVTX0VSUk9SOw0KPiArCQkJ cmV0dXJuOw0KPiArCQl9DQo+ICsNCj4gKwkJaWYgKGluZmxhdGVHZXREaWN0aW9uYXJ5KHN0cm0s IGRpY3Rpb25hcnksICZkaWN0aW9uYXJ5X2xlbikpIHsNCj4gKwkJCVpMSUJfUE1EX0VSUigiVW5h YmxlIHRvIGZldGNoIGRpY3Rpb25hcnkiKTsNCj4gKwkJCW9wLT5zdGF0dXMgPQ0KPiBSVEVfQ09N UF9PUF9TVEFUVVNfQ0hFQ0tfU1VNX1ZBTElEQVRJT05fRkFJTEVEOw0KPiArCQkJZnJlZShkaWN0 aW9uYXJ5KTsNCj4gKwkJCXJldHVybjsNCj4gKwkJfQ0KPiArDQo+ICsJCXVpbnQzMl90IGRpY3Rp b25hcnlfc3RhcnQgPSAodWludDMyX3QpKCpkaWN0aW9uYXJ5KTsNCj4gKwkJdWludDMyX3QgZGlj dGlvbmFyeV9lbmQgPSAodWludDMyX3QpKCooZGljdGlvbmFyeSArDQo+IGRpY3Rpb25hcnlfbGVu IC0gNCkpOw0KPiArCQl1aW50MzJfdCBzdW0gPSAoZGljdGlvbmFyeV9zdGFydCAmIDB4MEYwRjBG MEYpDQo+ICsJCQkrIChkaWN0aW9uYXJ5X3N0YXJ0ICYgKDB4RjBGMEYwRjAgPj4gNCkpDQo+ICsJ CQkrIChkaWN0aW9uYXJ5X2VuZCAmIDB4MEYwRjBGMEYpDQo+ICsJCQkrIChkaWN0aW9uYXJ5X2Vu ZCAmICgweEYwRjBGMEYwID4+IDQpKTsNCj4gKwkJdWludDhfdCAqc3VtX2J5dGVzID0gKHVpbnQ4 X3QgKikmc3VtOw0KPiArDQo+ICsJCW9wLT5vdXRwdXRfY2hrc3VtID0gfihzdW1fYnl0ZXNbMF0g KyBzdW1fYnl0ZXNbMV0gKw0KPiBzdW1fYnl0ZXNbMl0gKyBzdW1fYnl0ZXNbM10pDQo+ICsJCQkg JiBCT1RUT01fTklCQkxFX09GX0JZVEU7DQo+ICsNCj4gKwkJaWYgKG9wLT5pbnB1dF9jaGtzdW0g IT0gb3AtPm91dHB1dF9jaGtzdW0pIHsNCj4gKwkJCVpMSUJfUE1EX0VSUigiQ2hlY2tzdW0gZG9l cyBub3QgbWF0Y2giKTsNCj4gKwkJCW9wLT5zdGF0dXMgPQ0KPiBSVEVfQ09NUF9PUF9TVEFUVVNf Q0hFQ0tfU1VNX1ZBTElEQVRJT05fRkFJTEVEOw0KPiArCQkJZnJlZShkaWN0aW9uYXJ5KTsNCj4g KwkJCXJldHVybjsNCj4gKwkJfQ0KPiArCQlmcmVlKGRpY3Rpb25hcnkpOw0KPiArDQo+ICsJCWJy ZWFrOw0KPiArCQl9DQo+ICsJY2FzZSBSVEVfQ09NUF9DSEVDS1NVTV9OT05FOg0KPiArCQlicmVh azsNCj4gKwljYXNlIFJURV9DT01QX0NIRUNLU1VNX0NSQzMyOg0KPiArCWNhc2UgUlRFX0NPTVBf Q0hFQ0tTVU1fQURMRVIzMjoNCj4gKwljYXNlIFJURV9DT01QX0NIRUNLU1VNX0NSQzMyX0FETEVS MzI6DQo+ICsJZGVmYXVsdDoNCj4gKwkJWkxJQl9QTURfRVJSKCJDaGVja3N1bSBub3Qgc3VwcG9y dGVkIik7DQo+ICsJCW9wLT5zdGF0dXMgPSBSVEVfQ09NUF9PUF9TVEFUVVNfSU5WQUxJRF9BUkdT Ow0KPiArCQlyZXR1cm47DQo+ICsJfQ0KPiArfQ0KPiArDQo+ICBzdGF0aWMgdm9pZA0KPiAgcHJv Y2Vzc196bGliX2RlZmxhdGUoc3RydWN0IHJ0ZV9jb21wX29wICpvcCwgel9zdHJlYW0gKnN0cm0p DQo+ICB7DQo+IEBAIC0yNyw2ICsxNDIsOSBAQCBwcm9jZXNzX3psaWJfZGVmbGF0ZShzdHJ1Y3Qg cnRlX2NvbXBfb3AgKm9wLCB6X3N0cmVhbQ0KPiAqc3RybSkNCj4gIAljYXNlIFJURV9DT01QX0ZM VVNIX0ZJTkFMOg0KPiAgCQlmaW5fZmx1c2ggPSBaX0ZJTklTSDsNCj4gIAkJYnJlYWs7DQo+ICsJ Y2FzZSBSVEVfQ09NUF9GTFVTSF9TWU5DOg0KPiArCQlmaW5fZmx1c2ggPSBaX1NZTkNfRkxVU0g7 DQo+ICsJCWJyZWFrOw0KPiAgCWRlZmF1bHQ6DQo+ICAJCW9wLT5zdGF0dXMgPSBSVEVfQ09NUF9P UF9TVEFUVVNfSU5WQUxJRF9BUkdTOw0KPiAgCQlaTElCX1BNRF9FUlIoIkludmFsaWQgZmx1c2gg dmFsdWUiKTsNCj4gQEAgLTQ5LDYgKzE2Nyw5IEBAIHByb2Nlc3NfemxpYl9kZWZsYXRlKHN0cnVj dCBydGVfY29tcF9vcCAqb3AsIHpfc3RyZWFtDQo+ICpzdHJtKQ0KPiANCj4gIAlzdHJtLT5hdmFp bF9vdXQgPSBydGVfcGt0bWJ1Zl9kYXRhX2xlbihtYnVmX2RzdCkgLSBvcC0+ZHN0Lm9mZnNldDsN Cj4gDQo+ICsJdUxvbmcgdG90YWxfaW5fYXRfc3RhcnQgPSBzdHJtLT50b3RhbF9pbjsNCj4gKwl1 TG9uZyB0b3RhbF9vdXRfYXRfc3RhcnQgPSBzdHJtLT50b3RhbF9vdXQ7DQo+ICsNCj4gIAkvKiBT ZXQgZmx1c2ggdmFsdWUgdG8gTk9fRkxVU0ggdW5sZXNzIGl0IGlzIGxhc3QgbWJ1ZiAqLw0KPiAg CWZsdXNoID0gWl9OT19GTFVTSDsNCj4gIAkvKiBJbml0aWFsaXplIHN0YXR1cyB0byBTVUNDRVNT ICovDQo+IEBAIC01Niw4ICsxNzcsOCBAQCBwcm9jZXNzX3psaWJfZGVmbGF0ZShzdHJ1Y3QgcnRl X2NvbXBfb3AgKm9wLCB6X3N0cmVhbQ0KPiAqc3RybSkNCj4gDQo+ICAJZG8gew0KPiAgCQkvKiBT ZXQgZmx1c2ggdmFsdWUgdG8gWl9GSU5JU0ggZm9yIGxhc3QgYmxvY2sgKi8NCj4gLQkJaWYgKChv cC0+c3JjLmxlbmd0aCAtIHN0cm0tPnRvdGFsX2luKSA8PSBzdHJtLT5hdmFpbF9pbikgew0KPiAt CQkJc3RybS0+YXZhaWxfaW4gPSAob3AtPnNyYy5sZW5ndGggLSBzdHJtLT50b3RhbF9pbik7DQo+ ICsJCWlmICgob3AtPnNyYy5sZW5ndGggLSAoc3RybS0+dG90YWxfaW4gLSB0b3RhbF9pbl9hdF9z dGFydCkpIDw9IHN0cm0tDQo+ID5hdmFpbF9pbikgew0KPiArCQkJc3RybS0+YXZhaWxfaW4gPSAo b3AtPnNyYy5sZW5ndGggLSAoc3RybS0+dG90YWxfaW4gLQ0KPiB0b3RhbF9pbl9hdF9zdGFydCkp Ow0KPiAgCQkJZmx1c2ggPSBmaW5fZmx1c2g7DQo+ICAJCX0NCj4gIAkJZG8gew0KPiBAQCAtOTIs MTcgKzIxMywxOCBAQCBwcm9jZXNzX3psaWJfZGVmbGF0ZShzdHJ1Y3QgcnRlX2NvbXBfb3AgKm9w LCB6X3N0cmVhbQ0KPiAqc3RybSkNCj4gIAkvKiBVcGRhdGUgb3Agc3RhdHMgKi8NCj4gIAlzd2l0 Y2ggKG9wLT5zdGF0dXMpIHsNCj4gIAljYXNlIFJURV9DT01QX09QX1NUQVRVU19TVUNDRVNTOg0K PiAtCQlvcC0+Y29uc3VtZWQgKz0gc3RybS0+dG90YWxfaW47DQo+ICsJCW9wLT5jb25zdW1lZCAr PSBzdHJtLT50b3RhbF9pbiAtIHRvdGFsX2luX2F0X3N0YXJ0Ow0KPiAgCS8qIEZhbGwtdGhyb3Vn aCAqLw0KPiAgCWNhc2UgUlRFX0NPTVBfT1BfU1RBVFVTX09VVF9PRl9TUEFDRV9URVJNSU5BVEVE Og0KPiAtCQlvcC0+cHJvZHVjZWQgKz0gc3RybS0+dG90YWxfb3V0Ow0KPiArCQlvcC0+cHJvZHVj ZWQgKz0gc3RybS0+dG90YWxfb3V0IC0gdG90YWxfb3V0X2F0X3N0YXJ0Ow0KPiAgCQlicmVhazsN Cj4gIAlkZWZhdWx0Og0KPiAgCQlaTElCX1BNRF9FUlIoInN0YXRzIG5vdCB1cGRhdGVkIGZvciBz dGF0dXM6JWQiLA0KPiAgCQkJCW9wLT5zdGF0dXMpOw0KPiAgCX0NCj4gDQo+IC0JZGVmbGF0ZVJl c2V0KHN0cm0pOw0KPiArCWlmIChvcC0+Zmx1c2hfZmxhZyAhPSBSVEVfQ09NUF9GTFVTSF9TWU5D KQ0KPiArCQlkZWZsYXRlUmVzZXQoc3RybSk7DQo+ICB9DQo+IA0KPiAgc3RhdGljIHZvaWQNCj4g QEAgLTEyNyw2ICsyNDksOSBAQCBwcm9jZXNzX3psaWJfaW5mbGF0ZShzdHJ1Y3QgcnRlX2NvbXBf b3AgKm9wLCB6X3N0cmVhbQ0KPiAqc3RybSkNCj4gDQo+ICAJc3RybS0+YXZhaWxfb3V0ID0gcnRl X3BrdG1idWZfZGF0YV9sZW4obWJ1Zl9kc3QpIC0gb3AtPmRzdC5vZmZzZXQ7DQo+IA0KPiArCXVM b25nIHRvdGFsX2luX2F0X3N0YXJ0ID0gc3RybS0+dG90YWxfaW47DQo+ICsJdUxvbmcgdG90YWxf b3V0X2F0X3N0YXJ0ID0gc3RybS0+dG90YWxfb3V0Ow0KPiArDQo+ICAJLyoqIElnbm9yaW5nIGZs dXNoIHZhbHVlIHByb3ZpZGVkIGZyb20gYXBwbGljYXRpb24gZm9yIGRlY29tcHJlc3Npb24gKi8N Cj4gIAlmbHVzaCA9IFpfTk9fRkxVU0g7DQo+ICAJLyogaW5pdGlhbGl6ZSBzdGF0dXMgdG8gU1VD Q0VTUyAqLw0KPiBAQCAtMTc4LDE3ICszMDMsMTggQEAgcHJvY2Vzc196bGliX2luZmxhdGUoc3Ry dWN0IHJ0ZV9jb21wX29wICpvcCwNCj4gel9zdHJlYW0gKnN0cm0pDQo+ICAJLyogVXBkYXRlIG9w IHN0YXRzICovDQo+ICAJc3dpdGNoIChvcC0+c3RhdHVzKSB7DQo+ICAJY2FzZSBSVEVfQ09NUF9P UF9TVEFUVVNfU1VDQ0VTUzoNCj4gLQkJb3AtPmNvbnN1bWVkICs9IHN0cm0tPnRvdGFsX2luOw0K PiArCQlvcC0+Y29uc3VtZWQgKz0gc3RybS0+dG90YWxfaW4gLSB0b3RhbF9pbl9hdF9zdGFydDsN Cj4gIAkvKiBGYWxsLXRocm91Z2ggKi8NCj4gIAljYXNlIFJURV9DT01QX09QX1NUQVRVU19PVVRf T0ZfU1BBQ0VfVEVSTUlOQVRFRDoNCj4gLQkJb3AtPnByb2R1Y2VkICs9IHN0cm0tPnRvdGFsX291 dDsNCj4gKwkJb3AtPnByb2R1Y2VkICs9IHN0cm0tPnRvdGFsX291dCAtIHRvdGFsX291dF9hdF9z dGFydDsNCj4gIAkJYnJlYWs7DQo+ICAJZGVmYXVsdDoNCj4gIAkJWkxJQl9QTURfRVJSKCJzdGF0 cyBub3QgcHJvZHVjZWQgZm9yIHN0YXR1czolZCIsDQo+ICAJCQkJb3AtPnN0YXR1cyk7DQo+ICAJ fQ0KPiANCj4gLQlpbmZsYXRlUmVzZXQoc3RybSk7DQo+ICsJaWYgKG9wLT5mbHVzaF9mbGFnICE9 IFJURV9DT01QX0ZMVVNIX1NZTkMpDQo+ICsJCWluZmxhdGVSZXNldChzdHJtKTsNCj4gIH0NCj4g DQo+ICAvKiogUHJvY2VzcyBjb21wIG9wZXJhdGlvbiBmb3IgbWJ1ZiAqLw0KPiBAQCAtMjAzLDEw ICszMjksMTQgQEAgcHJvY2Vzc196bGliX29wKHN0cnVjdCB6bGliX3FwICpxcCwgc3RydWN0DQo+ IHJ0ZV9jb21wX29wICpvcCkNCj4gIAkJCShvcC0+ZHN0Lm9mZnNldCA+IHJ0ZV9wa3RtYnVmX2Rh dGFfbGVuKG9wLT5tX2RzdCkpKSB7DQo+ICAJCW9wLT5zdGF0dXMgPSBSVEVfQ09NUF9PUF9TVEFU VVNfSU5WQUxJRF9BUkdTOw0KPiAgCQlaTElCX1BNRF9FUlIoIkludmFsaWQgc291cmNlIG9yIGRl c3RpbmF0aW9uIGJ1ZmZlcnMgb3IgIg0KPiAtCQkJICAgICAiaW52YWxpZCBPcGVyYXRpb24gcmVx dWVzdGVkIik7DQo+ICsJCQkJICAiaW52YWxpZCBPcGVyYXRpb24gcmVxdWVzdGVkIik7DQo+ICAJ fSBlbHNlIHsNCj4gIAkJcHJpdmF0ZV94Zm9ybSA9IChzdHJ1Y3QgemxpYl9wcml2X3hmb3JtICop b3AtPnByaXZhdGVfeGZvcm07DQo+ICAJCXN0cmVhbSA9ICZwcml2YXRlX3hmb3JtLT5zdHJlYW07 DQo+ICsJCXN0cmVhbS0+Y2hrc3VtKG9wLCAmc3RyZWFtLT5zdHJtLCBzdHJlYW0tPmNoa3N1bV90 eXBlKTsNCj4gKwkJaWYgKG9wLT5zdGF0dXMgIT0gUlRFX0NPTVBfT1BfU1RBVFVTX1NVQ0NFU1Mp DQo+ICsJCQlyZXR1cm4gLTE7DQo+ICsNCj4gIAkJc3RyZWFtLT5jb21wKG9wLCAmc3RyZWFtLT5z dHJtKTsNCj4gIAl9DQo+ICAJLyogd2hhdGV2ZXIgaXMgb3V0IG9mIG9wLCBwdXQgaXQgaW50byBj b21wbGV0aW9uIHF1ZXVlIHdpdGgNCj4gQEAgLTIzMiw2ICszNjIsNyBAQCB6bGliX3NldF9zdHJl YW1fcGFyYW1ldGVycyhjb25zdCBzdHJ1Y3QNCj4gcnRlX2NvbXBfeGZvcm0gKnhmb3JtLA0KPiAg CWNhc2UgUlRFX0NPTVBfQ09NUFJFU1M6DQo+ICAJCXN0cmVhbS0+Y29tcCA9IHByb2Nlc3Nfemxp Yl9kZWZsYXRlOw0KPiAgCQlzdHJlYW0tPmZyZWUgPSBkZWZsYXRlRW5kOw0KPiArCQlzdHJlYW0t PmNoa3N1bSA9IHByb2Nlc3NfemxpYl9kZWZsYXRlX2Noa3N1bTsNCj4gIAkJLyoqIENvbXByZXNz aW9uIHdpbmRvdyBiaXRzICovDQo+ICAJCXN3aXRjaCAoeGZvcm0tPmNvbXByZXNzLmFsZ28pIHsN Cj4gIAkJY2FzZSBSVEVfQ09NUF9BTEdPX0RFRkxBVEU6DQo+IEBAIC0yODEsMTcgKzQxMiwzMCBA QCB6bGliX3NldF9zdHJlYW1fcGFyYW1ldGVycyhjb25zdCBzdHJ1Y3QNCj4gcnRlX2NvbXBfeGZv cm0gKnhmb3JtLA0KPiAgCQkJWkxJQl9QTURfRVJSKCJDb21wcmVzc2lvbiBzdHJhdGVneSBub3Qg c3VwcG9ydGVkIik7DQo+ICAJCQlyZXR1cm4gLTE7DQo+ICAJCX0NCj4gKw0KPiArCQkvKiogQ2hl Y2tzdW0gdXNlZCAqLw0KPiArCQlzdHJlYW0tPmNoa3N1bV90eXBlID0geGZvcm0tPmNvbXByZXNz LmNoa3N1bTsNCj4gKw0KPiAgCQlpZiAoZGVmbGF0ZUluaXQyKHN0cm0sIGxldmVsLA0KPiAgCQkJ CQlaX0RFRkxBVEVELCB3Yml0cywNCj4gIAkJCQkJREVGX01FTV9MRVZFTCwgc3RyYXRlZ3kpICE9 IFpfT0spIHsNCj4gIAkJCVpMSUJfUE1EX0VSUigiRGVmbGF0ZSBpbml0IGZhaWxlZCIpOw0KPiAg CQkJcmV0dXJuIC0xOw0KPiAgCQl9DQo+ICsNCj4gKwkJaWYgKHhmb3JtLT5jb21wcmVzcy5kZWZs YXRlLmRpY3Rpb25hcnkpIHsNCj4gKwkJCWlmIChkZWZsYXRlU2V0RGljdGlvbmFyeShzdHJtLCB4 Zm9ybS0NCj4gPmNvbXByZXNzLmRlZmxhdGUuZGljdGlvbmFyeSwNCj4gKwkJCQkJeGZvcm0tDQo+ ID5jb21wcmVzcy5kZWZsYXRlLmRpY3Rpb25hcnlfbGVuKSkgew0KPiArCQkJCVpMSUJfUE1EX0VS UigiRGVmbGF0ZSBzZXQgZGljdGlvbmFyeSBmYWlsZWQiKTsNCj4gKwkJCQlyZXR1cm4gLTE7DQo+ ICsJCQl9DQo+ICsJCX0NCj4gIAkJYnJlYWs7DQo+IA0KPiAgCWNhc2UgUlRFX0NPTVBfREVDT01Q UkVTUzoNCj4gIAkJc3RyZWFtLT5jb21wID0gcHJvY2Vzc196bGliX2luZmxhdGU7DQo+ICAJCXN0 cmVhbS0+ZnJlZSA9IGluZmxhdGVFbmQ7DQo+ICsJCXN0cmVhbS0+Y2hrc3VtID0gcHJvY2Vzc196 bGliX2luZmxhdGVfY2hrc3VtOw0KPiAgCQkvKiogd2luZG93IGJpdHMgKi8NCj4gIAkJc3dpdGNo ICh4Zm9ybS0+ZGVjb21wcmVzcy5hbGdvKSB7DQo+ICAJCWNhc2UgUlRFX0NPTVBfQUxHT19ERUZM QVRFOg0KPiBAQCAtMzAyLDEwICs0NDYsMjEgQEAgemxpYl9zZXRfc3RyZWFtX3BhcmFtZXRlcnMo Y29uc3Qgc3RydWN0DQo+IHJ0ZV9jb21wX3hmb3JtICp4Zm9ybSwNCj4gIAkJCXJldHVybiAtMTsN Cj4gIAkJfQ0KPiANCj4gKwkJLyoqIENoZWNrc3VtIHVzZWQgKi8NCj4gKwkJc3RyZWFtLT5jaGtz dW1fdHlwZSA9IHhmb3JtLT5kZWNvbXByZXNzLmNoa3N1bTsNCj4gKw0KPiAgCQlpZiAoaW5mbGF0 ZUluaXQyKHN0cm0sIHdiaXRzKSAhPSBaX09LKSB7DQo+ICAJCQlaTElCX1BNRF9FUlIoIkluZmxh dGUgaW5pdCBmYWlsZWQiKTsNCj4gIAkJCXJldHVybiAtMTsNCj4gIAkJfQ0KPiArDQo+ICsJCWlm ICh4Zm9ybS0+ZGVjb21wcmVzcy5pbmZsYXRlLmRpY3Rpb25hcnkpIHsNCj4gKwkJCWlmIChpbmZs YXRlU2V0RGljdGlvbmFyeShzdHJtLCB4Zm9ybS0NCj4gPmRlY29tcHJlc3MuaW5mbGF0ZS5kaWN0 aW9uYXJ5LA0KPiArCQkJCQl4Zm9ybS0NCj4gPmRlY29tcHJlc3MuaW5mbGF0ZS5kaWN0aW9uYXJ5 X2xlbikpIHsNCj4gKwkJCQlaTElCX1BNRF9FUlIoImluZmxhdGUgc2V0IGRpY3Rpb25hcnkgZmFp bGVkIik7DQo+ICsJCQkJcmV0dXJuIC0xOw0KPiArCQkJfQ0KPiArCQl9DQo+ICAJCWJyZWFrOw0K PiAgCWRlZmF1bHQ6DQo+ICAJCXJldHVybiAtMTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY29t cHJlc3MvemxpYi96bGliX3BtZF9wcml2YXRlLmgNCj4gYi9kcml2ZXJzL2NvbXByZXNzL3psaWIv emxpYl9wbWRfcHJpdmF0ZS5oDQo+IGluZGV4IGZkOGM0YzU1YTQuLjk5YmZkYzlhNzYgMTAwNjQ0 DQo+IC0tLSBhL2RyaXZlcnMvY29tcHJlc3MvemxpYi96bGliX3BtZF9wcml2YXRlLmgNCj4gKysr IGIvZHJpdmVycy9jb21wcmVzcy96bGliL3psaWJfcG1kX3ByaXZhdGUuaA0KPiBAQCAtNDYsNiAr NDYsMTAgQEAgdHlwZWRlZiB2b2lkICgqY29tcF9mdW5jX3QpKHN0cnVjdCBydGVfY29tcF9vcCAq b3AsDQo+IHpfc3RyZWFtICpzdHJtKTsNCj4gDQo+ICB0eXBlZGVmIGludCAoKmNvbXBfZnJlZV90 KSh6X3N0cmVhbSAqc3RybSk7DQo+IA0KPiArdHlwZWRlZiB2b2lkICgqY2hrc3VtX2Z1bmNfdCkN Cj4gKwkJKHN0cnVjdCBydGVfY29tcF9vcCAqb3AsIHpfc3RyZWFtICpzdHJtLCBlbnVtDQo+IHJ0 ZV9jb21wX2NoZWNrc3VtX3R5cGUgY2hrc3VtKTsNCj4gKw0KPiArDQoNClJlbW92ZSBleHRyYSBs aW5lLg0KDQo+ICAvKiogWkxJQiBTdHJlYW0gc3RydWN0dXJlICovDQo+ICBzdHJ1Y3QgX19ydGVf Y2FjaGVfYWxpZ25lZCB6bGliX3N0cmVhbSB7DQo+ICAJel9zdHJlYW0gc3RybTsNCj4gQEAgLTU0 LDYgKzU4LDEwIEBAIHN0cnVjdCBfX3J0ZV9jYWNoZV9hbGlnbmVkIHpsaWJfc3RyZWFtIHsNCj4g IAkvKio8IE9wZXJhdGlvbiAoY29tcHJlc3Npb24vZGVjb21wcmVzc2lvbikgKi8NCj4gIAljb21w X2ZyZWVfdCBmcmVlOw0KPiAgCS8qKjwgRnJlZSBPcGVyYXRpb24gKGNvbXByZXNzaW9uL2RlY29t cHJlc3Npb24pICovDQo+ICsJY2hrc3VtX2Z1bmNfdCBjaGtzdW07DQo+ICsJLyoqPCBDaGVja3N1 bSBPcGVyYXRpb24gKGNvbXByZXNzaW9uL2RlY29tcHJlc3Npb24pICovDQo+ICsJZW51bSBydGVf Y29tcF9jaGVja3N1bV90eXBlIGNoa3N1bV90eXBlOw0KPiArCS8qKjwgVHlwZSBvZiBjaGVja3N1 bSB0byBnZW5lcmF0ZSBvbiB0aGUgdW5jb21wcmVzc2VkIGRhdGEgKi8NCj4gIH07DQo+IA0KPiAg LyoqIFpMSUIgcHJpdmF0ZSB4Zm9ybSBzdHJ1Y3R1cmUgKi8NCj4gLS0NCj4gMi4zMS4xDQoNCg==