Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp2891452rwd; Fri, 19 May 2023 11:34:57 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5ssj37ekSMEs8PZPIn+FM0DqYxKsmaBtnhYfTZDdgAUIhrmzu2GCWKf3QrRlTo9ODhWIMY X-Received: by 2002:a17:90a:74cb:b0:24e:2e86:5465 with SMTP id p11-20020a17090a74cb00b0024e2e865465mr2816888pjl.31.1684521297111; Fri, 19 May 2023 11:34:57 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1684521297; cv=pass; d=google.com; s=arc-20160816; b=gS2x2EeKOuwwzJWL2x6a4DVAwTt4BFZ9JKq1wyT3ffdoEZ18hdQpEwRyrsqxrRuO3X lBqjQMx24wGQek2R749pURsdu6bvIGTCb5D4dIF9TzZbod2doNl2GBfrhBy1TY5uksuj U6jnMBDgBZRkEDOu0UT0FLNqf/SiEQM2gXBozguQw0zc0S8IGMysM+6eNT1re6BIuiom ogNude2Z+QhFuT7+M6wKekNzBAq+lDWPgxDpi04GLoxL+9cRfU+FvcBhPC+rxjCXUcxx g7/AmG8cU0fJAsgyDi5U7xE8P8FNZuL26jm1KN7ouwkJitwT7Z8KCzMx2NsyRuWV/eLU vBhw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature:dkim-signature; bh=tMNq5KsZkkF/rWlcJDETMS475cNRRgSlH2H6MADEfJ8=; b=tns2pWX6EStq2KBVEk7DsRwo8OesVgVwCky/58NHRtiQvL+Do3gtMqhemAEdJxII9m FalT3ypNZlYYgevvwfuguMJ1FHXgIqXrThn1VCohrqR01Fz0YxhR0r1HImydB5jvNW9a dmo37MFmgsO6joLVFb1BqGP5Cc4wa0INfjFh8SdDmTPIf37x54/ypkYxFq4YRRudm6qo sEqbhgIcNSW+xsdjkzbd2jeaMBtaXKDo0n+qZcQPz7wHH2Jl5ssZqCMcItZg8VYjyJox 4WNT0pGextfe0JZYVd+RVza3OWdA+qa9AMAmf5asxcaXedRhdGQeLw36x+XEKw0xfty4 LkoA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2023-03-30 header.b="VlhQD/N5"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=dWzvqcZx; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n24-20020a17090ade9800b00246a6cecff8si2087097pjv.44.2023.05.19.11.34.41; Fri, 19 May 2023 11:34:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2023-03-30 header.b="VlhQD/N5"; dkim=pass header.i=@oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=dWzvqcZx; arc=pass (i=1 spf=pass spfdomain=oracle.com dkim=pass dkdomain=oracle.com dmarc=pass fromdomain=oracle.com); spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229611AbjESSeO (ORCPT + 99 others); Fri, 19 May 2023 14:34:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39100 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229673AbjESSeN (ORCPT ); Fri, 19 May 2023 14:34:13 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 56BB6E5E for ; Fri, 19 May 2023 11:34:02 -0700 (PDT) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34JFxQag007853; Fri, 19 May 2023 18:33:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=corp-2023-03-30; bh=tMNq5KsZkkF/rWlcJDETMS475cNRRgSlH2H6MADEfJ8=; b=VlhQD/N5im9urVP0TPzOao33SCy7zXwf4TeQkMuqBkilnxQmAQGWWVmP0v505d0zBXuz kny2aH1jc0vsId78yQwOW8f0/t/eQn0UqKfNt+XF+YLTFcNJ/yGEeO9ziEu+4F7xW8x6 QixcdkrTpoqnco3HeacymfKeKbhD0Gqguu6aE4Y6JLKhHwV6Q35IYdacTG40BQKfO849 T6IdLVLJUlKLtUvlBVUDjGmite3JaEZKZrcEKjaHxXxUG4mhxBUrKJq2Qdzmgj3Z65iQ a/Kc9Obfx5Gu0+JyHqiX8GZ3xBQl3IFi+zhnbpk8yYusbkFFEQFY1dV41/biQdh1mSU/ 2w== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3qmxfc5kgu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 19 May 2023 18:33:52 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 34JHB4EW040044; Fri, 19 May 2023 18:33:52 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2048.outbound.protection.outlook.com [104.47.66.48]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3qj1085w99-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 19 May 2023 18:33:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ClKKPC5tqFzH/FOxnGfIFHkNgKiQKHkZkt8KoVtvsuiD4XD8CPSgHaqcyIYXOyFPMAsEi3YBsxEZHKQcVsCwaWnvVqMtAYFjgAkrPTH/jvE2NHQYKOdzHp6GWl5iDJE2rEg1+mCUlcWUrhW6qoWsLomPVnPfr9CPkByWB0Uy12zsH5nBf4W/qivOPzdlFdBTRfL+S1ilaef/lZSlld6UvpqszhxOH8vM48JJCLniAm7n5vPWkafss+bbneviC+g9wOSQ0RDB4JnFEDJeXopNUePMP+jixvHPqViz2ztNprp4oYyfasHjkMHlMD5Rhezr5dgbR5VAjICMUtZU1ytMdQ== 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=tMNq5KsZkkF/rWlcJDETMS475cNRRgSlH2H6MADEfJ8=; b=eGaYqG8HUEFnvYt6upopQVTWpkfOJjaO8Q82Vj9C0NjGB7rspIGxlKoUS8BQPODKxuojt1BrsvPFqqTaLku0TJb1OgOoTizgUa2o+8VnT8VDiQDBlEDO+vn9ruzzIyvt9/76+m0rjEBr2Mkh2Sk9ljn6LHIqBUmZnp9d65QYcWnlbpKrVWvMf1JHI037GwHriC3MoyrgaMCgaHXdyW24kShJWM5i2aSgQhWmDJspbHqgksqbczLYK688y7cDxZVfMECUoKSBp2WMh1MSIVBFzuUQ61vjtGeB94f1i0cvhONRWyWlXiPDc+739EZXLwLxlCrBtdeFWhG7SxRbaB37qQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tMNq5KsZkkF/rWlcJDETMS475cNRRgSlH2H6MADEfJ8=; b=dWzvqcZx4jYRtgxRbhvnWQooU98yDYje8Auvdd0Y/qIJsCqbJGBJTgmVYsKZZi/PgSAT6VovQ/8gQv2ESTr9lLzVzz4iJIkQPTplx22vL6lZlLyur48yoIHF4fcocRXBiz1GvLH/swAnVhiZWVlAkwsw3j+Ldhe9zx0Z9IfLTwY= Received: from BN0PR10MB5128.namprd10.prod.outlook.com (2603:10b6:408:117::24) by BN0PR10MB5045.namprd10.prod.outlook.com (2603:10b6:408:116::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.17; Fri, 19 May 2023 18:33:12 +0000 Received: from BN0PR10MB5128.namprd10.prod.outlook.com ([fe80::ecbd:fc46:2528:36db]) by BN0PR10MB5128.namprd10.prod.outlook.com ([fe80::ecbd:fc46:2528:36db%5]) with mapi id 15.20.6411.021; Fri, 19 May 2023 18:33:12 +0000 From: Chuck Lever III To: Anna Schumaker CC: Chuck Lever , Anna Schumaker , Trond Myklebust , Linux NFS Mailing List , "kernel-tls-handshake@lists.linux.dev" Subject: Re: [PATCH RFC 09/12] SUNRPC: Add RPC-with-TLS support to xprtsock.c Thread-Topic: [PATCH RFC 09/12] SUNRPC: Add RPC-with-TLS support to xprtsock.c Thread-Index: AQHZiC6QYe0264aPO0iLdZDdVlLXLa9h7GyAgAAD5YA= Date: Fri, 19 May 2023 18:33:12 +0000 Message-ID: <177C4F24-FD8D-446D-9FA9-6EB04E45460E@oracle.com> References: <168426587118.74246.214357450560967997.stgit@oracle-102.nfsv4bat.org> <168426612899.74246.12074514989473589840.stgit@oracle-102.nfsv4bat.org> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3731.500.231) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN0PR10MB5128:EE_|BN0PR10MB5045:EE_ x-ms-office365-filtering-correlation-id: 17088260-eadb-4afb-10c6-08db58978080 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: FtH4s4KHyQJUyiIwde0ZYbc6xO0TjqjgMkNTcfo424NBUpQzzhKXj99LbyRTFVMKluRAaFEWCiDrcdcmrAf1xz7FVQuYiHOhqFy2HvULkzxqNCn7tvSxsekTdrW6vJKJbc37M9zC1G6PCJMeU87iH7r8kUFd82S/3lWAKUqpkRA15mZ86UQI2QzkdN0ala62eXbPlfJ+4dvwx0/x9TA+p5AIHE8CUU90xo3pUrAWFBuLudVD5zaoz4GbU69y6Fc7bqiOc0dHM1KUqd3rmVpUvfqoDzhRhovTUAdpqhBa6XmZIOmhD5M1/xWuq25Gqo1lsm5uXz091DGaAd8r92kJ0FV7UygQz1UJCP3ICppqLSm25FA6/1StVsPsdde12ccTxbP/fz5h9hcycjtlJtAUgMfHQQ3AbOSQ+NSN7v6RbRFF1gFYPZmWFNzjNN7/eIuCLRwcPmdg+Pup3QyhbPEtogkOTw/a0khHUweDQHdDp3H4q/rMiQ+nNCbnLnV4JapNcqGDiu3MJL5w3BobPnd+qxzdH0XVEtwSsDmmgMbpuynSbSxPrqTzEhl6nRxCdtC07rn+qz5TEz2I6ym99FM6A8FnNHEii/MjeTsqfw7QLlw3XMV7oJDg+qvO8n3pFK447ol/U8erwJUWxiQsZOjLnaJpV6NvAecR5fbznWjnXeE= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN0PR10MB5128.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(396003)(376002)(136003)(346002)(39860400002)(366004)(451199021)(83380400001)(186003)(91956017)(71200400001)(2616005)(66446008)(6506007)(54906003)(478600001)(6486002)(26005)(53546011)(6512007)(8936002)(30864003)(5660300002)(36756003)(66556008)(122000001)(33656002)(6916009)(38100700002)(41300700001)(8676002)(66946007)(64756008)(2906002)(76116006)(66476007)(4326008)(38070700005)(316002)(86362001)(21314003)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Ryt6SmFnWUNDUXpiVVdkMWYyRmJqSENBMk5WU041NnEzZ1ByaGZnSk81Uys5?= =?utf-8?B?VWpLU3lZa2EwdHVGU3R3Qko2WGt3NGVlN21CdkhnaTZXNnYxMDhOUUdKK1Bs?= =?utf-8?B?OTB0UTJlYUJYYWlhSWxOaXZKZkRkbGl1SnhqbGJjQTN1MWFMbm1DWVFhYmph?= =?utf-8?B?M1htSlVLQ2pzSTFqdjhyMFVianFGeWdkVFBUUm96c1ZhSkhnUFNEWEx5MC9O?= =?utf-8?B?TzVVL1FMeHFlZTJKZzUzUVpvdlhvUjFlTDRaaFEvQjN5RjU0cjlqWnNHWWF4?= =?utf-8?B?UG5OM0tkSkJjOWdIWU1tTTRsK2NUbnpKL25Hb3hZQ0xlVUZ0cmVDc2lLOS9y?= =?utf-8?B?VDZHRUJQdmxaS1BZNkVSRlJZZXkweWVKdUowaFV6dS9RSHpwYitiWmdPcGt0?= =?utf-8?B?ZGkya24rYjhjWjlnd1NsL0JjVWVPNDBibStETkFrbEdEMkhhd3pVQTlrTjE5?= =?utf-8?B?STdoTGg2b2d4SGF1RTNYWHBnemZxdEdMcFUyUzdXSnlTQzRvdEpQdXF1Q2pR?= =?utf-8?B?TXMzL0U4TEtQYVhMQjhuT3pKazg4ZC8rQmRLNWZGeUoyckRhcXQ0WWptcGpQ?= =?utf-8?B?cVFjK2JRUzdXSVVDaW5ZWnlCeloydXE5d1c0QzhpYUF6VnErMTNMK25wemFG?= =?utf-8?B?TDhmZWdQcjRvc1ZFVEdzeFF2d0NKSHh6VGFXdlE0WG41UTFlM0plN0pkd3lP?= =?utf-8?B?SUJiUFkxQW1ZVlQ4T2J4amo1SEhoVkFjZXF4ODNKdmQ3ZmdsT3gxdGUyU01O?= =?utf-8?B?YlJ3YmlPcndqR1N4dHgyQWFqdWpPaGNSNi9DeHk0ZjhFVmY1dEdkTzQyWmxx?= =?utf-8?B?dG03ZVpHaHhyYzNRT0FuVkpWZTF4V2lydDBmd1BndHE0WW8wbm41SGp5aTZs?= =?utf-8?B?amhveGZ2RXF4Ymh0RU04MnI5Q3Z5TGhnWkdLaDFkRUdZV3Q5cmc5WVJCYmcv?= =?utf-8?B?QjBwR0JvVWJPSmFpVmJ6eTVnc054aHRZaXpEK1RzZnluR1prME9WMTd0aVo2?= =?utf-8?B?ajlMalB6ZWtXNW1yL1A2VHFBZ3VZWDdMaThhYXczL3FCYVM2T0szMWcwd04z?= =?utf-8?B?YWdsSXlUNFJLR1BMWEFDTGZwdDFhK0JibTg2R1IvT21zZWdjNjYxTndhS3hX?= =?utf-8?B?Y2JJTGtSL1Rma3JRbnp5ZnZpc1I5VEhXcEhOaXZCakRweDFnQ051dnBRQ3Bk?= =?utf-8?B?b1RuVk5NcjJYKy9nRGRwSGFtZnd1L3oxTHNYQkJnL1pyd0xmUFZvZ3NZaUlG?= =?utf-8?B?cGtoRHdUNU9ZL1VDRVdoL3BTYjdZSWVMRTlJMWRKZnVkOGFwYUpHeTlGRTQ2?= =?utf-8?B?Ry9uOExWUGE0UFBPS1ZDWElCenZGZ2Y5bkY2Q1dGRENMWlN1dUdmVkJVUFdj?= =?utf-8?B?Q0k0OGlERDZ6cDdnN0tpOVdiZDFLdVlYektaTzVra2Z3bTMyRVRIcWw5Z1R6?= =?utf-8?B?ZWJ3TzVqUy9MQXE1SFlDdHR0UGluOUxVNlNvemlydkFKNzFCK1d1V0NPSzQ1?= =?utf-8?B?eFlCOUtIWEJHQzFyMURUTm1rb3pwa1ZuM1hDUnZrZlRqNi82NFNrNlNCRThw?= =?utf-8?B?Y2tPaWFsR1pzSkltWVk1eFZjOENRYlNvMHliNjZPdzMvMjFjZC9IeUN0QWxU?= =?utf-8?B?empWNFFBazkxRDcrN3Z6LzlmdUwvc1g3YS9DZ3R5WHVsazkwSmswQTFHUjZ6?= =?utf-8?B?QWRlV2FZajFiWldFZVUySmFkMWtMaDU3RXZNeDNTOGdPeUdHVHhVM1VCakVH?= =?utf-8?B?aGF5UWljVFl2eWpHVWxFazlxZHYxZ2dEWjI4Q0o0cUZwVXZtbmg4aGVwd1RH?= =?utf-8?B?bFc1YlpHZUFkRWE4UzVnMDNiYlI2OUE1YXV5UUZqd1Ura0VMeUVncnBpVHJm?= =?utf-8?B?MFluRWp1cXh0Z3J3L3M5LzE0NnpEbm9BVjhGekhING1udTJmTjVqaCt6NFBl?= =?utf-8?B?S0E4V2VqL3VsTFB4YkZMSWhLVnBVTGZuVWpRUFJSak9zS0YzTU05clhUdVJM?= =?utf-8?B?RXRhbnRmaGFTTGpnR2p0NGJEcnpuZlRDbkJya0p4UFJkeG41SFhYdlZZN0F0?= =?utf-8?B?Y3BWTkdvM3RvVW1maFRZdnRiTlBwZXo5T1dObzAvTStLbHNkK3JjUUxxT0JX?= =?utf-8?B?aTVPQTc5RUkra0FkNjNwbkFQb3grME5jYkdVa2ZRQjdiZ24yK1kra0U5UTNW?= =?utf-8?B?UXc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?utf-8?B?ZmtKMGxXYnRFV29HYjZRcEpJMlNRcjNZSDJpSlV4bWRUV0VyM0M0WUIyVXUv?= =?utf-8?B?L0tGNW4vMVpwcmc2eTROTWlxL2x2TVRIOSs3NFpxWHZOM0d4cXVaL1lKQTVo?= =?utf-8?B?ZlpuSklycXpPUVV6dldKbzVpNGNNNzFicmhEYUZOUWNOT3htbFdyaE5yeHVW?= =?utf-8?B?SWVyUkR3WWphc09QWExaTFd1WnM4ekNFZHNJNUg1bkV0YS9Yb01NNnJoUU1J?= =?utf-8?B?Q3loZFA3dG1FUkNaTlVWL3V1NWRyMDVTdFdMUTVQNFFPSytya1lJa0hlRVha?= =?utf-8?B?OHJUTUtVYTZtL0hFdTJMNkxhLzd4LzlHRGRrVUVQK2NrcEwwYmIrQ0pwNjlY?= =?utf-8?B?a1dLZWRnK1dsU3VEOE55NElYKzN3K1ovSnFTWXRxRVBwVmJuR2FBQ2ovQU1S?= =?utf-8?B?K1o1eHIwc01EblFLeFhwUDNKYXUva3Q1Y2F2QWdSeW5WLzc2U1pETVJCaGhU?= =?utf-8?B?WnVsNWVzQ2NBVWsrMHFVdTFGOTNvUXljZlhBRTA1TDVkSzhZUGZaWjRyRUY5?= =?utf-8?B?eWljUmcrelQ5OUtnM28yZEpVQnJWZEVMZmhBbWhYa3ZCbFZ4Z2NNSmYxYXdG?= =?utf-8?B?TEpXRXZ0UURwbSsxQ2tBWFltREJCQzZrRE1zZGQ2c3pNSTRMT3RxTGRUNmo0?= =?utf-8?B?TG9vN0JQZFBZeUdwYnFwKzA0WEE1ZkJ3SnpnbzFCd3dNOUxRQkFNTnl3NDJK?= =?utf-8?B?WGxPdjlkaCt3ditjMm8rMEhma1YyOVNubTQ3bjQ0WFVPd2RzazNSYW9IVk95?= =?utf-8?B?dFhkNXZmbTQ3MXAvOURpM0NLWGttL3oySmdLT1VxMGZiRWdJejFkNU00aVh2?= =?utf-8?B?cWJybTQ4TURKdU85aDkzRWV5cnhWMjdMQkJHZjB0VUxJYkMwNWh0QmNwb2Mr?= =?utf-8?B?Uno0Z1dZRlhZU0k1aUozcFByRzdsQmpKWlBEU3FMcHJNSUdHdExld0Y2d2tP?= =?utf-8?B?RTJUKy91NEhpMWpOYXBlZFlVaEJJQ1NlaVY1WDF0T2NtcTM4ZFBuK1dtM1Np?= =?utf-8?B?aDZwN1R3QXQrWjQzSGxTWHUxeFkyQklNMTNzb0lYZjRZV2pBUGtFcytuVGVT?= =?utf-8?B?c3AveE9xRjZSOHNXM3owTVN6NEdvdGsxaXRFNWdWV3NXUUoxVjhHd1dFZkRr?= =?utf-8?B?UnBhQ3RxR3NyMEIvYzlvc00rLzNLV1VSZXpwYkVLWlY5UFlldVZ4eXJiWjYy?= =?utf-8?B?Z294cFZFYm1GM3NUOStIZ1NMT01iZGRXOVQ0S2V6dWFHRTlKY3AyZEdxTkU4?= =?utf-8?Q?ZQHJLIvTMqYgzRK?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN0PR10MB5128.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 17088260-eadb-4afb-10c6-08db58978080 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 May 2023 18:33:12.2005 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: uI9TdmuM1xgG7JCLwwtH5h5MCy1o7oR9Ou4WFzCdqaYtNxTJGBinCtmZQQ6dkJi+tNzx7ipt318+jczcmdPA/Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR10MB5045 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-05-19_13,2023-05-17_02,2023-02-09_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 adultscore=0 bulkscore=0 mlxscore=0 phishscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2304280000 definitions=main-2305190159 X-Proofpoint-GUID: oxCZjvhdbW7nZNQnlj_kDu_E8uDVyaI1 X-Proofpoint-ORIG-GUID: oxCZjvhdbW7nZNQnlj_kDu_E8uDVyaI1 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org DQoNCj4gT24gTWF5IDE5LCAyMDIzLCBhdCAyOjE5IFBNLCBBbm5hIFNjaHVtYWtlciA8c2NodW1h a2VyLmFubmFAZ21haWwuY29tPiB3cm90ZToNCj4gDQo+IEhpIENodWNrLA0KPiANCj4gT24gVHVl LCBNYXkgMTYsIDIwMjMgYXQgMzo1MuKAr1BNIENodWNrIExldmVyIDxjZWxAa2VybmVsLm9yZz4g d3JvdGU6DQo+PiANCj4+IEZyb206IENodWNrIExldmVyIDxjaHVjay5sZXZlckBvcmFjbGUuY29t Pg0KPj4gDQo+PiBVc2UgdGhlIG5ldyBUTFMgaGFuZHNoYWtlIEFQSSB0byBlbmFibGUgdGhlIFN1 blJQQyBjbGllbnQgY29kZQ0KPj4gdG8gcmVxdWVzdCBhIFRMUyBoYW5kc2hha2UuIFRoaXMgaW1w bGVtZW50cyBzdXBwb3J0IGZvciBSRkMgOTI4OS4NCj4+IA0KPj4gU2lnbmVkLW9mZi1ieTogQ2h1 Y2sgTGV2ZXIgPGNodWNrLmxldmVyQG9yYWNsZS5jb20+DQo+PiAtLS0NCj4+IGluY2x1ZGUvbGlu dXgvc3VucnBjL3hwcnRzb2NrLmggfCAgICAxDQo+PiBuZXQvc3VucnBjL3hwcnRzb2NrLmMgICAg ICAgICAgIHwgIDI4OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0NCj4+ IDIgZmlsZXMgY2hhbmdlZCwgMjUzIGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQ0KPj4g DQo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zdW5ycGMveHBydHNvY2suaCBiL2luY2x1 ZGUvbGludXgvc3VucnBjL3hwcnRzb2NrLmgNCj4+IGluZGV4IDU3NGE2YTUzOTFiYS4uNzAwYTFl NmMwNDdjIDEwMDY0NA0KPj4gLS0tIGEvaW5jbHVkZS9saW51eC9zdW5ycGMveHBydHNvY2suaA0K Pj4gKysrIGIvaW5jbHVkZS9saW51eC9zdW5ycGMveHBydHNvY2suaA0KPj4gQEAgLTU3LDYgKzU3 LDcgQEAgc3RydWN0IHNvY2tfeHBydCB7DQo+PiAgICAgICAgc3RydWN0IHdvcmtfc3RydWN0ICAg ICAgZXJyb3Jfd29ya2VyOw0KPj4gICAgICAgIHN0cnVjdCB3b3JrX3N0cnVjdCAgICAgIHJlY3Zf d29ya2VyOw0KPj4gICAgICAgIHN0cnVjdCBtdXRleCAgICAgICAgICAgIHJlY3ZfbXV0ZXg7DQo+ PiArICAgICAgIHN0cnVjdCBjb21wbGV0aW9uICAgICAgIGhhbmRzaGFrZV9kb25lOw0KPj4gICAg ICAgIHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIHNyY2FkZHI7DQo+PiAgICAgICAgdW5zaWduZWQg c2hvcnQgICAgICAgICAgc3JjcG9ydDsNCj4+ICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAg ICB4cHJ0X2VycjsNCj4+IGRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3hwcnRzb2NrLmMgYi9uZXQv c3VucnBjL3hwcnRzb2NrLmMNCj4+IGluZGV4IDdlYTU5ODRhNTJhMy4uNjg2ZGQzMTNmODlmIDEw MDY0NA0KPj4gLS0tIGEvbmV0L3N1bnJwYy94cHJ0c29jay5jDQo+PiArKysgYi9uZXQvc3VucnBj L3hwcnRzb2NrLmMNCj4+IEBAIC00OCw2ICs0OCw3IEBADQo+PiAjaW5jbHVkZSA8bmV0L3VkcC5o Pg0KPj4gI2luY2x1ZGUgPG5ldC90Y3AuaD4NCj4+ICNpbmNsdWRlIDxuZXQvdGxzLmg+DQo+PiAr I2luY2x1ZGUgPG5ldC9oYW5kc2hha2UuaD4NCj4+IA0KPj4gI2luY2x1ZGUgPGxpbnV4L2J2ZWMu aD4NCj4+ICNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+DQo+PiBAQCAtMTg5LDYgKzE5MCwxMSBA QCBzdGF0aWMgc3RydWN0IGN0bF90YWJsZSB4c190dW5hYmxlc190YWJsZVtdID0gew0KPj4gICov DQo+PiAjZGVmaW5lIFhTX0lETEVfRElTQ19UTyAgICAgICAgICAgICAgICAoNVUgKiA2MCAqIEha KQ0KPj4gDQo+PiArLyoNCj4+ICsgKiBUTFMgaGFuZHNoYWtlIHRpbWVvdXQuDQo+PiArICovDQo+ PiArI2RlZmluZSBYU19UTFNfSEFORFNIQUtFX1RPICAgICgxMFUgKiBIWikNCj4+ICsNCj4+ICNp ZiBJU19FTkFCTEVEKENPTkZJR19TVU5SUENfREVCVUcpDQo+PiAjIHVuZGVmICBSUENfREVCVUdf REFUQQ0KPj4gIyBkZWZpbmUgUlBDREJHX0ZBQ0lMSVRZICAgICAgIFJQQ0RCR19UUkFOUw0KPj4g QEAgLTEyMzgsNiArMTI0NCwxMCBAQCBzdGF0aWMgdm9pZCB4c19yZXNldF90cmFuc3BvcnQoc3Ry dWN0IHNvY2tfeHBydCAqdHJhbnNwb3J0KQ0KPj4gICAgICAgIGlmIChhdG9taWNfcmVhZCgmdHJh bnNwb3J0LT54cHJ0LnN3YXBwZXIpKQ0KPj4gICAgICAgICAgICAgICAgc2tfY2xlYXJfbWVtYWxs b2Moc2spOw0KPj4gDQo+PiArICAgICAgIC8qIFhYWDogTWF5YmUgYWxzbyBzZW5kIGEgVExTIENs b3N1cmUgYWxlcnQ/ICovDQo+PiArDQo+PiArICAgICAgIHRsc19oYW5kc2hha2VfY2FuY2VsKHNr KTsNCj4+ICsNCj4+ICAgICAgICBrZXJuZWxfc29ja19zaHV0ZG93bihzb2NrLCBTSFVUX1JEV1Ip Ow0KPj4gDQo+PiAgICAgICAgbXV0ZXhfbG9jaygmdHJhbnNwb3J0LT5yZWN2X211dGV4KTsNCj4+ IEBAIC0yNDExLDYwICsyNDIxLDI2NiBAQCBzdGF0aWMgdm9pZCB4c190Y3Bfc2V0dXBfc29ja2V0 KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCj4+ICAgICAgICBjdXJyZW50X3Jlc3RvcmVfZmxh Z3MocGZsYWdzLCBQRl9NRU1BTExPQyk7DQo+PiB9DQo+PiANCj4+ICsvKg0KPj4gKyAqIFRyYW5z ZmVyIHRoZSBjb25uZWN0ZWQgc29ja2V0IHRvIEB1cHBlcl90cmFuc3BvcnQsIHRoZW4gbWFyayB0 aGF0DQo+PiArICogeHBydCBDT05ORUNURUQuDQo+PiArICovDQo+PiArc3RhdGljIGludCB4c190 bHNfZmluaXNoX2Nvbm5lY3Rpbmcoc3RydWN0IHJwY194cHJ0ICpsb3dlcl94cHJ0LA0KPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNvY2tfeHBydCAqdXBwZXJf dHJhbnNwb3J0KQ0KPj4gK3sNCj4+ICsgICAgICAgc3RydWN0IHNvY2tfeHBydCAqbG93ZXJfdHJh bnNwb3J0ID0NCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcl9vZihsb3dlcl94 cHJ0LCBzdHJ1Y3Qgc29ja194cHJ0LCB4cHJ0KTsNCj4+ICsgICAgICAgc3RydWN0IHJwY194cHJ0 ICp1cHBlcl94cHJ0ID0gJnVwcGVyX3RyYW5zcG9ydC0+eHBydDsNCj4+ICsNCj4+ICsgICAgICAg aWYgKCF1cHBlcl90cmFuc3BvcnQtPmluZXQpIHsNCj4+ICsgICAgICAgICAgICAgICBzdHJ1Y3Qg c29ja2V0ICpzb2NrID0gbG93ZXJfdHJhbnNwb3J0LT5zb2NrOw0KPj4gKyAgICAgICAgICAgICAg IHN0cnVjdCBzb2NrICpzayA9IHNvY2stPnNrOw0KPj4gKw0KPj4gKyAgICAgICAgICAgICAgIC8q IEF2b2lkIHRlbXBvcmFyeSBhZGRyZXNzLCB0aGV5IGFyZSBiYWQgZm9yIGxvbmctbGl2ZWQNCj4+ ICsgICAgICAgICAgICAgICAgKiBjb25uZWN0aW9ucyBzdWNoIGFzIE5GUyBtb3VudHMuDQo+PiAr ICAgICAgICAgICAgICAgICogUkZDNDk0MSwgc2VjdGlvbiAzLjYgc3VnZ2VzdHMgdGhhdDoNCj4+ ICsgICAgICAgICAgICAgICAgKiAgICBJbmRpdmlkdWFsIGFwcGxpY2F0aW9ucywgd2hpY2ggaGF2 ZSBzcGVjaWZpYw0KPj4gKyAgICAgICAgICAgICAgICAqICAgIGtub3dsZWRnZSBhYm91dCB0aGUg bm9ybWFsIGR1cmF0aW9uIG9mIGNvbm5lY3Rpb25zLA0KPj4gKyAgICAgICAgICAgICAgICAqICAg IE1BWSBvdmVycmlkZSB0aGlzIGFzIGFwcHJvcHJpYXRlLg0KPj4gKyAgICAgICAgICAgICAgICAq Lw0KPj4gKyAgICAgICAgICAgICAgIGlmICh4c19hZGRyKHVwcGVyX3hwcnQpLT5zYV9mYW1pbHkg PT0gUEZfSU5FVDYpIHsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGlwNl9zb2NrX3NldF9h ZGRyX3ByZWZlcmVuY2VzKHNrLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ UFY2X1BSRUZFUl9TUkNfUFVCTElDKTsNCj4+ICsgICAgICAgICAgICAgICB9DQo+PiArDQo+PiAr ICAgICAgICAgICAgICAgeHNfdGNwX3NldF9zb2NrZXRfdGltZW91dHModXBwZXJfeHBydCwgc29j ayk7DQo+PiArICAgICAgICAgICAgICAgdGNwX3NvY2tfc2V0X25vZGVsYXkoc2spOw0KPj4gKw0K Pj4gKyAgICAgICAgICAgICAgIGxvY2tfc29jayhzayk7DQo+PiArDQo+PiArICAgICAgICAgICAg ICAgLyoNCj4+ICsgICAgICAgICAgICAgICAgKiBAc2sgaXMgYWxyZWFkeSBjb25uZWN0ZWQsIHNv IGl0IG5vdyBoYXMgdGhlIFJQQyBjYWxsYmFja3MuDQo+PiArICAgICAgICAgICAgICAgICogUmVh Y2ggaW50byBAbG93ZXJfdHJhbnNwb3J0IHRvIHNhdmUgdGhlIG9yaWdpbmFsIG9uZXMuDQo+PiAr ICAgICAgICAgICAgICAgICovDQo+PiArICAgICAgICAgICAgICAgdXBwZXJfdHJhbnNwb3J0LT5v bGRfZGF0YV9yZWFkeSA9IGxvd2VyX3RyYW5zcG9ydC0+b2xkX2RhdGFfcmVhZHk7DQo+PiArICAg ICAgICAgICAgICAgdXBwZXJfdHJhbnNwb3J0LT5vbGRfc3RhdGVfY2hhbmdlID0gbG93ZXJfdHJh bnNwb3J0LT5vbGRfc3RhdGVfY2hhbmdlOw0KPj4gKyAgICAgICAgICAgICAgIHVwcGVyX3RyYW5z cG9ydC0+b2xkX3dyaXRlX3NwYWNlID0gbG93ZXJfdHJhbnNwb3J0LT5vbGRfd3JpdGVfc3BhY2U7 DQo+PiArICAgICAgICAgICAgICAgdXBwZXJfdHJhbnNwb3J0LT5vbGRfZXJyb3JfcmVwb3J0ID0g bG93ZXJfdHJhbnNwb3J0LT5vbGRfZXJyb3JfcmVwb3J0Ow0KPj4gKyAgICAgICAgICAgICAgIHNr LT5za191c2VyX2RhdGEgPSB1cHBlcl94cHJ0Ow0KPj4gKw0KPj4gKyAgICAgICAgICAgICAgIC8q IHNvY2tldCBvcHRpb25zICovDQo+PiArICAgICAgICAgICAgICAgc29ja19yZXNldF9mbGFnKHNr LCBTT0NLX0xJTkdFUik7DQo+PiArDQo+PiArICAgICAgICAgICAgICAgeHBydF9jbGVhcl9jb25u ZWN0ZWQodXBwZXJfeHBydCk7DQo+PiArDQo+PiArICAgICAgICAgICAgICAgdXBwZXJfdHJhbnNw b3J0LT5zb2NrID0gc29jazsNCj4+ICsgICAgICAgICAgICAgICB1cHBlcl90cmFuc3BvcnQtPmlu ZXQgPSBzazsNCj4+ICsgICAgICAgICAgICAgICB1cHBlcl90cmFuc3BvcnQtPmZpbGUgPSBsb3dl cl90cmFuc3BvcnQtPmZpbGU7DQo+PiArDQo+PiArICAgICAgICAgICAgICAgcmVsZWFzZV9zb2Nr KHNrKTsNCj4+ICsNCj4+ICsgICAgICAgICAgICAgICAvKiBSZXNldCBsb3dlcl90cmFuc3BvcnQg YmVmb3JlIHNodXR0aW5nIGRvd24gaXRzIGNsbnQgKi8NCj4+ICsgICAgICAgICAgICAgICBtdXRl eF9sb2NrKCZsb3dlcl90cmFuc3BvcnQtPnJlY3ZfbXV0ZXgpOw0KPj4gKyAgICAgICAgICAgICAg IGxvd2VyX3RyYW5zcG9ydC0+aW5ldCA9IE5VTEw7DQo+PiArICAgICAgICAgICAgICAgbG93ZXJf dHJhbnNwb3J0LT5zb2NrID0gTlVMTDsNCj4+ICsgICAgICAgICAgICAgICBsb3dlcl90cmFuc3Bv cnQtPmZpbGUgPSBOVUxMOw0KPj4gKw0KPj4gKyAgICAgICAgICAgICAgIHhwcnRfY2xlYXJfY29u bmVjdGVkKGxvd2VyX3hwcnQpOw0KPj4gKyAgICAgICAgICAgICAgIHhzX3NvY2tfcmVzZXRfY29u bmVjdGlvbl9mbGFncyhsb3dlcl94cHJ0KTsNCj4+ICsgICAgICAgICAgICAgICB4c19zdHJlYW1f cmVzZXRfY29ubmVjdChsb3dlcl90cmFuc3BvcnQpOw0KPj4gKyAgICAgICAgICAgICAgIG11dGV4 X3VubG9jaygmbG93ZXJfdHJhbnNwb3J0LT5yZWN2X211dGV4KTsNCj4+ICsgICAgICAgfQ0KPj4g Kw0KPj4gKyAgICAgICBpZiAoIXhwcnRfYm91bmQodXBwZXJfeHBydCkpDQo+PiArICAgICAgICAg ICAgICAgcmV0dXJuIC1FTk9UQ09OTjsNCj4+ICsNCj4+ICsgICAgICAgeHNfc2V0X21lbWFsbG9j KHVwcGVyX3hwcnQpOw0KPj4gKw0KPj4gKyAgICAgICBpZiAoIXhwcnRfdGVzdF9hbmRfc2V0X2Nv bm5lY3RlZCh1cHBlcl94cHJ0KSkgew0KPj4gKyAgICAgICAgICAgICAgIHVwcGVyX3hwcnQtPmNv bm5lY3RfY29va2llKys7DQo+PiArICAgICAgICAgICAgICAgY2xlYXJfYml0KFhQUlRfU09DS19D T05ORUNUSU5HLCAmdXBwZXJfdHJhbnNwb3J0LT5zb2NrX3N0YXRlKTsNCj4+ICsgICAgICAgICAg ICAgICB4cHJ0X2NsZWFyX2Nvbm5lY3RpbmcodXBwZXJfeHBydCk7DQo+PiArDQo+PiArICAgICAg ICAgICAgICAgdXBwZXJfeHBydC0+c3RhdC5jb25uZWN0X2NvdW50Kys7DQo+PiArICAgICAgICAg ICAgICAgdXBwZXJfeHBydC0+c3RhdC5jb25uZWN0X3RpbWUgKz0gKGxvbmcpamlmZmllcyAtDQo+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBwZXJfeHBydC0+ c3RhdC5jb25uZWN0X3N0YXJ0Ow0KPj4gKyAgICAgICAgICAgICAgIHhzX3J1bl9lcnJvcl93b3Jr ZXIodXBwZXJfdHJhbnNwb3J0LCBYUFJUX1NPQ0tfV0FLRV9QRU5ESU5HKTsNCj4+ICsgICAgICAg fQ0KPj4gKyAgICAgICByZXR1cm4gMDsNCj4+ICt9DQo+PiArDQo+PiAvKioNCj4+IC0gKiB4c190 bHNfY29ubmVjdCAtIGVzdGFibGlzaCBhIFRMUyBzZXNzaW9uIG9uIGEgc29ja2V0DQo+PiAtICog QHdvcms6IHF1ZXVlZCB3b3JrIGl0ZW0NCj4+ICsgKiB4c190bHNfaGFuZHNoYWtlX2RvbmUgLSBU TFMgaGFuZHNoYWtlIGNvbXBsZXRpb24gaGFuZGxlcg0KPj4gKyAqIEBkYXRhOiBhZGRyZXNzIG9m IHhwcnQgdG8gd2FrZQ0KPj4gKyAqIEBzdGF0dXM6IHN0YXR1cyBvZiBoYW5kc2hha2UNCj4+ICsg KiBAcGVlcmlkOiBzZXJpYWwgbnVtYmVyIG9mIGtleSBjb250YWluaW5nIHRoZSByZW1vdGUncyBp ZGVudGl0eQ0KPj4gICoNCj4+ICAqLw0KPj4gLXN0YXRpYyB2b2lkIHhzX3Rsc19jb25uZWN0KHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCj4+ICtzdGF0aWMgdm9pZCB4c190bHNfaGFuZHNoYWtl X2RvbmUodm9pZCAqZGF0YSwgaW50IHN0YXR1cywga2V5X3NlcmlhbF90IHBlZXJpZCkNCj4+IHsN Cj4+IC0gICAgICAgc3RydWN0IHNvY2tfeHBydCAqdHJhbnNwb3J0ID0NCj4+IC0gICAgICAgICAg ICAgICBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHNvY2tfeHBydCwgY29ubmVjdF93b3JrZXIu d29yayk7DQo+PiAtICAgICAgIHN0cnVjdCBycGNfY2xudCAqY2xudDsNCj4+ICsgICAgICAgc3Ry dWN0IHJwY194cHJ0ICpsb3dlcl94cHJ0ID0gZGF0YTsNCj4+ICsgICAgICAgc3RydWN0IHNvY2tf eHBydCAqbG93ZXJfdHJhbnNwb3J0ID0NCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29udGFpbmVyX29mKGxvd2VyX3hwcnQsIHN0cnVjdCBzb2NrX3hwcnQsIHhwcnQpOw0KPj4g DQo+PiAtICAgICAgIGNsbnQgPSB0cmFuc3BvcnQtPmNsbnQ7DQo+PiAtICAgICAgIHRyYW5zcG9y dC0+Y2xudCA9IE5VTEw7DQo+PiAtICAgICAgIGlmIChJU19FUlIoY2xudCkpDQo+PiAtICAgICAg ICAgICAgICAgZ290byBvdXRfdW5sb2NrOw0KPj4gKyAgICAgICBsb3dlcl90cmFuc3BvcnQtPnhw cnRfZXJyID0gc3RhdHVzID8gLUVBQ0NFUyA6IDA7DQo+PiArICAgICAgIGNvbXBsZXRlKCZsb3dl cl90cmFuc3BvcnQtPmhhbmRzaGFrZV9kb25lKTsNCj4+ICsgICAgICAgeHBydF9wdXQobG93ZXJf eHBydCk7DQo+PiArfQ0KPj4gDQo+PiAtICAgICAgIHhzX3RjcF9zZXR1cF9zb2NrZXQod29yayk7 DQo+PiArc3RhdGljIGludCB4c190bHNfaGFuZHNoYWtlX3N5bmMoc3RydWN0IHJwY194cHJ0ICps b3dlcl94cHJ0LCBzdHJ1Y3QgeHBydHNlY19wYXJtcyAqeHBydHNlYykNCj4+ICt7DQo+PiArICAg ICAgIHN0cnVjdCBzb2NrX3hwcnQgKmxvd2VyX3RyYW5zcG9ydCA9DQo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcl9vZihsb3dlcl94cHJ0LCBzdHJ1Y3Qgc29ja194 cHJ0LCB4cHJ0KTsNCj4+ICsgICAgICAgc3RydWN0IHRsc19oYW5kc2hha2VfYXJncyBhcmdzID0g ew0KPj4gKyAgICAgICAgICAgICAgIC50YV9zb2NrICAgICAgICA9IGxvd2VyX3RyYW5zcG9ydC0+ c29jaywNCj4+ICsgICAgICAgICAgICAgICAudGFfZG9uZSAgICAgICAgPSB4c190bHNfaGFuZHNo YWtlX2RvbmUsDQo+PiArICAgICAgICAgICAgICAgLnRhX2RhdGEgICAgICAgID0geHBydF9nZXQo bG93ZXJfeHBydCksDQo+PiArICAgICAgICAgICAgICAgLnRhX3BlZXJuYW1lICAgID0gbG93ZXJf eHBydC0+c2VydmVybmFtZSwNCj4gDQo+IFRoaXMgcGFydCBpc24ndCBjb21waWxpbmcgZm9yIG1l IG9uIHY2LjQtcmMyOg0KPiANCj4gbmV0L3N1bnJwYy94cHJ0c29jay5jOjI1Mzg6NDogZXJyb3I6 IGZpZWxkIGRlc2lnbmF0b3IgJ3RhX3BlZXJuYW1lJw0KPiBkb2VzIG5vdCByZWZlciB0byBhbnkg ZmllbGQgaW4gdHlwZSAnc3RydWN0IHRsc19oYW5kc2hha2VfYXJncycNCj4gICAgICAgICAgICAg ICAgLnRhX3BlZXJuYW1lICAgID0gbG93ZXJfeHBydC0+c2VydmVybmFtZSwNCj4gICAgICAgICAg ICAgICAgIF4NCj4gMSBlcnJvciBnZW5lcmF0ZWQuDQo+IA0KPiBBbSBJIG1pc3NpbmcgYSBwYXRj aCwgb3IgZGlkIHRoaXMgc3RydWN0IGdldCBjaGFuZ2VkIHNvbWV3aGVyZSBhbG9uZyB0aGUgbGlu ZT8NCg0KVGhlIHBhdGNoIHNlcmllcyBpcyBiYXNlZCBvbiBuZXQtbmV4dCwgd2hpY2ggaW5jbHVk ZXMgYSBwYXRjaA0KdGhhdCBjaGFuZ2VzIHRoaXMgY29kZS4NCg0KSSBoYWQgZXhwZWN0ZWQgdGhv c2UgcGF0Y2hlcyB0byBoYXZlIGJlZW4gbWVyZ2VkLCBidXQgdGhleSBhcmUNCnN0aWxsIHBlbmRp bmcuDQoNCg0KPiBBbm5hDQo+IA0KPj4gKyAgICAgICB9Ow0KPj4gKyAgICAgICBzdHJ1Y3Qgc29j ayAqc2sgPSBsb3dlcl90cmFuc3BvcnQtPmluZXQ7DQo+PiArICAgICAgIGludCByYzsNCj4+IA0K Pj4gLSAgICAgICBycGNfc2h1dGRvd25fY2xpZW50KGNsbnQpOw0KPj4gKyAgICAgICBpbml0X2Nv bXBsZXRpb24oJmxvd2VyX3RyYW5zcG9ydC0+aGFuZHNoYWtlX2RvbmUpOw0KPj4gKyAgICAgICBz ZXRfYml0KFhQUlRfU09DS19JR05PUkVfUkVDViwgJmxvd2VyX3RyYW5zcG9ydC0+c29ja19zdGF0 ZSk7DQo+PiANCj4+IC1vdXRfdW5sb2NrOg0KPj4gLSAgICAgICByZXR1cm47DQo+PiArICAgICAg IGxvd2VyX3RyYW5zcG9ydC0+eHBydF9lcnIgPSAtRVRJTUVET1VUOw0KPj4gKyAgICAgICBzd2l0 Y2ggKHhwcnRzZWMtPnBvbGljeSkgew0KPj4gKyAgICAgICBjYXNlIFJQQ19YUFJUU0VDX1RMU19B Tk9OOg0KPj4gKyAgICAgICAgICAgICAgIHJjID0gdGxzX2NsaWVudF9oZWxsb19hbm9uKCZhcmdz LCBHRlBfS0VSTkVMKTsNCj4+ICsgICAgICAgICAgICAgICBpZiAocmMpDQo+PiArICAgICAgICAg ICAgICAgICAgICAgICBnb3RvIG91dF9wdXRfeHBydDsNCj4+ICsgICAgICAgICAgICAgICBicmVh azsNCj4+ICsgICAgICAgY2FzZSBSUENfWFBSVFNFQ19UTFNfWDUwOToNCj4+ICsgICAgICAgICAg ICAgICBhcmdzLnRhX215X2NlcnQgPSB4cHJ0c2VjLT5jZXJ0X3NlcmlhbDsNCj4+ICsgICAgICAg ICAgICAgICBhcmdzLnRhX215X3ByaXZrZXkgPSB4cHJ0c2VjLT5wcml2a2V5X3NlcmlhbDsNCj4+ ICsgICAgICAgICAgICAgICByYyA9IHRsc19jbGllbnRfaGVsbG9feDUwOSgmYXJncywgR0ZQX0tF Uk5FTCk7DQo+PiArICAgICAgICAgICAgICAgaWYgKHJjKQ0KPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgZ290byBvdXRfcHV0X3hwcnQ7DQo+PiArICAgICAgICAgICAgICAgYnJlYWs7DQo+PiAr ICAgICAgIGRlZmF1bHQ6DQo+PiArICAgICAgICAgICAgICAgcmMgPSAtRUFDQ0VTOw0KPj4gKyAg ICAgICAgICAgICAgIGdvdG8gb3V0X3B1dF94cHJ0Ow0KPj4gKyAgICAgICB9DQo+PiArDQo+PiAr ICAgICAgIHJjID0gd2FpdF9mb3JfY29tcGxldGlvbl9pbnRlcnJ1cHRpYmxlX3RpbWVvdXQoJmxv d2VyX3RyYW5zcG9ydC0+aGFuZHNoYWtlX2RvbmUsDQo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWFNfVExTX0hBTkRTSEFLRV9UTyk7DQo+ PiArICAgICAgIGlmIChyYyA8PSAwKSB7DQo+PiArICAgICAgICAgICAgICAgaWYgKCF0bHNfaGFu ZHNoYWtlX2NhbmNlbChzaykpIHsNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChyYyA9 PSAwKQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYyA9IC1FVElNRURPVVQ7 DQo+PiArICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG91dF9wdXRfeHBydDsNCj4+ICsgICAg ICAgICAgICAgICB9DQo+PiArICAgICAgIH0NCj4+ICsNCj4+ICsgICAgICAgcmMgPSBsb3dlcl90 cmFuc3BvcnQtPnhwcnRfZXJyOw0KPj4gKw0KPj4gK291dDoNCj4+ICsgICAgICAgeHNfc3RyZWFt X3Jlc2V0X2Nvbm5lY3QobG93ZXJfdHJhbnNwb3J0KTsNCj4+ICsgICAgICAgY2xlYXJfYml0KFhQ UlRfU09DS19JR05PUkVfUkVDViwgJmxvd2VyX3RyYW5zcG9ydC0+c29ja19zdGF0ZSk7DQo+PiAr ICAgICAgIHJldHVybiByYzsNCj4+ICsNCj4+ICtvdXRfcHV0X3hwcnQ6DQo+PiArICAgICAgIHhw cnRfcHV0KGxvd2VyX3hwcnQpOw0KPj4gKyAgICAgICBnb3RvIG91dDsNCj4+IH0NCj4+IA0KPj4g LXN0YXRpYyB2b2lkIHhzX3NldF90cmFuc3BvcnRfY2xudChzdHJ1Y3QgcnBjX2NsbnQgKmNsbnQs IHN0cnVjdCBycGNfeHBydCAqeHBydCkNCj4+ICsvKioNCj4+ICsgKiB4c190bHNfY29ubmVjdCAt IGVzdGFibGlzaCBhIFRMUyBzZXNzaW9uIG9uIGEgc29ja2V0DQo+PiArICogQHdvcms6IHF1ZXVl ZCB3b3JrIGl0ZW0NCj4+ICsgKg0KPj4gKyAqIEZvciBSUEMtd2l0aC1UTFMsIHRoZXJlIGlzIGEg dHdvLXN0YWdlIGNvbm5lY3Rpb24gcHJvY2Vzcy4NCj4+ICsgKg0KPj4gKyAqIFRoZSAidXBwZXIt bGF5ZXIgeHBydCIgaXMgdmlzaWJsZSB0byB0aGUgUlBDIGNvbnN1bWVyLiBPbmNlIGl0IGhhcw0K Pj4gKyAqIGJlZW4gbWFya2VkIGNvbm5lY3RlZCwgdGhlIGNvbnN1bWVyIGtub3dzIHRoYXQgYSBU Q1AgY29ubmVjdGlvbiBhbmQNCj4+ICsgKiBhIFRMUyBzZXNzaW9uIGhhdmUgYmVlbiBlc3RhYmxp c2hlZC4NCj4+ICsgKg0KPj4gKyAqIEEgImxvd2VyLWxheWVyIHhwcnQiLCBjcmVhdGVkIGluIHRo aXMgZnVuY3Rpb24sIGhhbmRsZXMgdGhlIG1lY2hhbmljcw0KPj4gKyAqIG9mIGNvbm5lY3Rpbmcg dGhlIFRDUCBzb2NrZXQsIHBlcmZvcm1pbmcgdGhlIFJQQ19BVVRIX1RMUyBwcm9iZSwgYW5kDQo+ PiArICogdGhlbiBkcml2aW5nIHRoZSBUTFMgaGFuZHNoYWtlLiBPbmNlIGFsbCB0aGF0IGlzIGNv bXBsZXRlLCB0aGUgdXBwZXINCj4+ICsgKiBsYXllciB4cHJ0IGlzIG1hcmtlZCBjb25uZWN0ZWQu DQo+PiArICovDQo+PiArc3RhdGljIHZvaWQgeHNfdGxzX2Nvbm5lY3Qoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQ0KPj4gew0KPj4gLSAgICAgICBzdHJ1Y3Qgc29ja194cHJ0ICp0cmFuc3BvcnQg PSBjb250YWluZXJfb2YoeHBydCwgc3RydWN0IHNvY2tfeHBydCwgeHBydCk7DQo+PiArICAgICAg IHN0cnVjdCBzb2NrX3hwcnQgKnVwcGVyX3RyYW5zcG9ydCA9DQo+PiArICAgICAgICAgICAgICAg Y29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBzb2NrX3hwcnQsIGNvbm5lY3Rfd29ya2VyLndvcmsp Ow0KPj4gKyAgICAgICBzdHJ1Y3QgcnBjX2NsbnQgKnVwcGVyX2NsbnQgPSB1cHBlcl90cmFuc3Bv cnQtPmNsbnQ7DQo+PiArICAgICAgIHN0cnVjdCBycGNfeHBydCAqdXBwZXJfeHBydCA9ICZ1cHBl cl90cmFuc3BvcnQtPnhwcnQ7DQo+PiAgICAgICAgc3RydWN0IHJwY19jcmVhdGVfYXJncyBhcmdz ID0gew0KPj4gLSAgICAgICAgICAgICAgIC5uZXQgICAgICAgICAgICA9IHhwcnQtPnhwcnRfbmV0 LA0KPj4gLSAgICAgICAgICAgICAgIC5wcm90b2NvbCAgICAgICA9IHhwcnQtPnByb3QsDQo+PiAt ICAgICAgICAgICAgICAgLmFkZHJlc3MgICAgICAgID0gKHN0cnVjdCBzb2NrYWRkciAqKSZ4cHJ0 LT5hZGRyLA0KPj4gLSAgICAgICAgICAgICAgIC5hZGRyc2l6ZSAgICAgICA9IHhwcnQtPmFkZHJs ZW4sDQo+PiAtICAgICAgICAgICAgICAgLnRpbWVvdXQgICAgICAgID0gY2xudC0+Y2xfdGltZW91 dCwNCj4+IC0gICAgICAgICAgICAgICAuc2VydmVybmFtZSAgICAgPSB4cHJ0LT5zZXJ2ZXJuYW1l LA0KPj4gLSAgICAgICAgICAgICAgIC5ub2RlbmFtZSAgICAgICA9IGNsbnQtPmNsX25vZGVuYW1l LA0KPj4gLSAgICAgICAgICAgICAgIC5wcm9ncmFtICAgICAgICA9IGNsbnQtPmNsX3Byb2dyYW0s DQo+PiAtICAgICAgICAgICAgICAgLnByb2dudW1iZXIgICAgID0gY2xudC0+Y2xfcHJvZywNCj4+ IC0gICAgICAgICAgICAgICAudmVyc2lvbiAgICAgICAgPSBjbG50LT5jbF92ZXJzLA0KPj4gKyAg ICAgICAgICAgICAgIC5uZXQgICAgICAgICAgICA9IHVwcGVyX3hwcnQtPnhwcnRfbmV0LA0KPj4g KyAgICAgICAgICAgICAgIC5wcm90b2NvbCAgICAgICA9IHVwcGVyX3hwcnQtPnByb3QsDQo+PiAr ICAgICAgICAgICAgICAgLmFkZHJlc3MgICAgICAgID0gKHN0cnVjdCBzb2NrYWRkciAqKSZ1cHBl cl94cHJ0LT5hZGRyLA0KPj4gKyAgICAgICAgICAgICAgIC5hZGRyc2l6ZSAgICAgICA9IHVwcGVy X3hwcnQtPmFkZHJsZW4sDQo+PiArICAgICAgICAgICAgICAgLnRpbWVvdXQgICAgICAgID0gdXBw ZXJfY2xudC0+Y2xfdGltZW91dCwNCj4+ICsgICAgICAgICAgICAgICAuc2VydmVybmFtZSAgICAg PSB1cHBlcl94cHJ0LT5zZXJ2ZXJuYW1lLA0KPj4gKyAgICAgICAgICAgICAgIC5ub2RlbmFtZSAg ICAgICA9IHVwcGVyX2NsbnQtPmNsX25vZGVuYW1lLA0KPj4gKyAgICAgICAgICAgICAgIC5wcm9n cmFtICAgICAgICA9IHVwcGVyX2NsbnQtPmNsX3Byb2dyYW0sDQo+PiArICAgICAgICAgICAgICAg LnByb2dudW1iZXIgICAgID0gdXBwZXJfY2xudC0+Y2xfcHJvZywNCj4+ICsgICAgICAgICAgICAg ICAudmVyc2lvbiAgICAgICAgPSB1cHBlcl9jbG50LT5jbF92ZXJzLA0KPj4gICAgICAgICAgICAg ICAgLmF1dGhmbGF2b3IgICAgID0gUlBDX0FVVEhfVExTLA0KPj4gLSAgICAgICAgICAgICAgIC5j cmVkICAgICAgICAgICA9IGNsbnQtPmNsX2NyZWQsDQo+PiArICAgICAgICAgICAgICAgLmNyZWQg ICAgICAgICAgID0gdXBwZXJfY2xudC0+Y2xfY3JlZCwNCj4+ICAgICAgICAgICAgICAgIC54cHJ0 c2VjICAgICAgICA9IHsNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgLnBvbGljeSAgICAgICAg ID0gUlBDX1hQUlRTRUNfTk9ORSwNCj4+ICAgICAgICAgICAgICAgIH0sDQo+PiAtICAgICAgICAg ICAgICAgLmZsYWdzICAgICAgICAgID0gUlBDX0NMTlRfQ1JFQVRFX05PUElORywNCj4+ICAgICAg ICB9Ow0KPj4gKyAgICAgICB1bnNpZ25lZCBpbnQgcGZsYWdzID0gY3VycmVudC0+ZmxhZ3M7DQo+ PiArICAgICAgIHN0cnVjdCBycGNfY2xudCAqbG93ZXJfY2xudDsNCj4+ICsgICAgICAgc3RydWN0 IHJwY194cHJ0ICpsb3dlcl94cHJ0Ow0KPj4gKyAgICAgICBpbnQgc3RhdHVzOw0KPj4gDQo+PiAt ICAgICAgIHN3aXRjaCAoeHBydC0+eHBydHNlYy5wb2xpY3kpIHsNCj4+IC0gICAgICAgY2FzZSBS UENfWFBSVFNFQ19UTFNfQU5PTjoNCj4+IC0gICAgICAgY2FzZSBSUENfWFBSVFNFQ19UTFNfWDUw OToNCj4+IC0gICAgICAgICAgICAgICB0cmFuc3BvcnQtPmNsbnQgPSBycGNfY3JlYXRlKCZhcmdz KTsNCj4+IC0gICAgICAgICAgICAgICBicmVhazsNCj4+IC0gICAgICAgZGVmYXVsdDoNCj4+IC0g ICAgICAgICAgICAgICB0cmFuc3BvcnQtPmNsbnQgPSBFUlJfUFRSKC1FTk9UQ09OTik7DQo+PiAr ICAgICAgIGlmIChhdG9taWNfcmVhZCgmdXBwZXJfeHBydC0+c3dhcHBlcikpDQo+PiArICAgICAg ICAgICAgICAgY3VycmVudC0+ZmxhZ3MgfD0gUEZfTUVNQUxMT0M7DQo+PiArDQo+PiArICAgICAg IHhzX3N0cmVhbV9zdGFydF9jb25uZWN0KHVwcGVyX3RyYW5zcG9ydCk7DQo+PiArDQo+PiArICAg ICAgIC8qIFRoaXMgaW1wbGljaXRseSBzZW5kcyBhbiBSUENfQVVUSF9UTFMgcHJvYmUgKi8NCj4+ ICsgICAgICAgbG93ZXJfY2xudCA9IHJwY19jcmVhdGUoJmFyZ3MpOw0KPj4gKyAgICAgICBpZiAo SVNfRVJSKGxvd2VyX2NsbnQpKSB7DQo+PiArICAgICAgICAgICAgICAgY2xlYXJfYml0KFhQUlRf U09DS19DT05ORUNUSU5HLCAmdXBwZXJfdHJhbnNwb3J0LT5zb2NrX3N0YXRlKTsNCj4+ICsgICAg ICAgICAgICAgICB4cHJ0X2NsZWFyX2Nvbm5lY3RpbmcodXBwZXJfeHBydCk7DQo+PiArICAgICAg ICAgICAgICAgeHBydF93YWtlX3BlbmRpbmdfdGFza3ModXBwZXJfeHBydCwgUFRSX0VSUihsb3dl cl9jbG50KSk7DQo+PiArICAgICAgICAgICAgICAgc21wX21iX19iZWZvcmVfYXRvbWljKCk7DQo+ PiArICAgICAgICAgICAgICAgeHNfcnVuX2Vycm9yX3dvcmtlcih1cHBlcl90cmFuc3BvcnQsIFhQ UlRfU09DS19XQUtFX1BFTkRJTkcpOw0KPj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0X3VubG9j azsNCj4+ICAgICAgICB9DQo+PiArDQo+PiArICAgICAgIC8qIFJQQ19BVVRIX1RMUyBwcm9iZSB3 YXMgc3VjY2Vzc2Z1bC4gVHJ5IGEgVExTIGhhbmRzaGFrZSBvbg0KPj4gKyAgICAgICAgKiB0aGUg bG93ZXIgeHBydC4NCj4+ICsgICAgICAgICovDQo+PiArICAgICAgIHJjdV9yZWFkX2xvY2soKTsN Cj4+ICsgICAgICAgbG93ZXJfeHBydCA9IHJjdV9kZXJlZmVyZW5jZShsb3dlcl9jbG50LT5jbF94 cHJ0KTsNCj4+ICsgICAgICAgcmN1X3JlYWRfdW5sb2NrKCk7DQo+PiArICAgICAgIHN0YXR1cyA9 IHhzX3Rsc19oYW5kc2hha2Vfc3luYyhsb3dlcl94cHJ0LCAmdXBwZXJfeHBydC0+eHBydHNlYyk7 DQo+PiArICAgICAgIGlmIChzdGF0dXMpDQo+PiArICAgICAgICAgICAgICAgZ290byBvdXRfY2xv c2U7DQo+PiArDQo+PiArICAgICAgIHN0YXR1cyA9IHhzX3Rsc19maW5pc2hfY29ubmVjdGluZyhs b3dlcl94cHJ0LCB1cHBlcl90cmFuc3BvcnQpOw0KPj4gKyAgICAgICBpZiAoc3RhdHVzKQ0KPj4g KyAgICAgICAgICAgICAgIGdvdG8gb3V0X2Nsb3NlOw0KPj4gKw0KPj4gKyAgICAgICB0cmFjZV9y cGNfc29ja2V0X2Nvbm5lY3QodXBwZXJfeHBydCwgdXBwZXJfdHJhbnNwb3J0LT5zb2NrLCAwKTsN Cj4+ICsgICAgICAgaWYgKCF4cHJ0X3Rlc3RfYW5kX3NldF9jb25uZWN0ZWQodXBwZXJfeHBydCkp IHsNCj4+ICsgICAgICAgICAgICAgICB1cHBlcl94cHJ0LT5jb25uZWN0X2Nvb2tpZSsrOw0KPj4g KyAgICAgICAgICAgICAgIGNsZWFyX2JpdChYUFJUX1NPQ0tfQ09OTkVDVElORywgJnVwcGVyX3Ry YW5zcG9ydC0+c29ja19zdGF0ZSk7DQo+PiArICAgICAgICAgICAgICAgeHBydF9jbGVhcl9jb25u ZWN0aW5nKHVwcGVyX3hwcnQpOw0KPj4gKw0KPj4gKyAgICAgICAgICAgICAgIHVwcGVyX3hwcnQt PnN0YXQuY29ubmVjdF9jb3VudCsrOw0KPj4gKyAgICAgICAgICAgICAgIHVwcGVyX3hwcnQtPnN0 YXQuY29ubmVjdF90aW1lICs9IChsb25nKWppZmZpZXMgLQ0KPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVwcGVyX3hwcnQtPnN0YXQuY29ubmVjdF9zdGFydDsN Cj4+ICsgICAgICAgICAgICAgICB4c19ydW5fZXJyb3Jfd29ya2VyKHVwcGVyX3RyYW5zcG9ydCwg WFBSVF9TT0NLX1dBS0VfUEVORElORyk7DQo+PiArICAgICAgIH0NCj4+ICsgICAgICAgcnBjX3No dXRkb3duX2NsaWVudChsb3dlcl9jbG50KTsNCj4+ICsNCj4+ICtvdXRfdW5sb2NrOg0KPj4gKyAg ICAgICBjdXJyZW50X3Jlc3RvcmVfZmxhZ3MocGZsYWdzLCBQRl9NRU1BTExPQyk7DQo+PiArICAg ICAgIHVwcGVyX3RyYW5zcG9ydC0+Y2xudCA9IE5VTEw7DQo+PiArICAgICAgIHhwcnRfdW5sb2Nr X2Nvbm5lY3QodXBwZXJfeHBydCwgdXBwZXJfdHJhbnNwb3J0KTsNCj4+ICsgICAgICAgcmV0dXJu Ow0KPj4gKw0KPj4gK291dF9jbG9zZToNCj4+ICsgICAgICAgcnBjX3NodXRkb3duX2NsaWVudChs b3dlcl9jbG50KTsNCj4+ICsNCj4+ICsgICAgICAgLyogeHBydF9mb3JjZV9kaXNjb25uZWN0KCkg d2FrZXMgdGFza3Mgd2l0aCBhIGZpeGVkIHRrX3N0YXR1cyBjb2RlLg0KPj4gKyAgICAgICAgKiBX YWtlIHRoZW0gZmlyc3QgaGVyZSB0byBlbnN1cmUgdGhleSBnZXQgb3VyIHRrX3N0YXR1cyBjb2Rl Lg0KPj4gKyAgICAgICAgKi8NCj4+ICsgICAgICAgeHBydF93YWtlX3BlbmRpbmdfdGFza3ModXBw ZXJfeHBydCwgc3RhdHVzKTsNCj4+ICsgICAgICAgeHNfdGNwX2ZvcmNlX2Nsb3NlKHVwcGVyX3hw cnQpOw0KPj4gKyAgICAgICB4cHJ0X2NsZWFyX2Nvbm5lY3RpbmcodXBwZXJfeHBydCk7DQo+PiAr ICAgICAgIGdvdG8gb3V0X3VubG9jazsNCj4+IH0NCj4+IA0KPj4gLyoqDQo+PiBAQCAtMjQ5OCw4 ICsyNzE0LDcgQEAgc3RhdGljIHZvaWQgeHNfY29ubmVjdChzdHJ1Y3QgcnBjX3hwcnQgKnhwcnQs IHN0cnVjdCBycGNfdGFzayAqdGFzaykNCj4+ICAgICAgICB9IGVsc2UNCj4+ICAgICAgICAgICAg ICAgIGRwcmludGsoIlJQQzogICAgICAgeHNfY29ubmVjdCBzY2hlZHVsZWQgeHBydCAlcFxuIiwg eHBydCk7DQo+PiANCj4+IC0gICAgICAgeHNfc2V0X3RyYW5zcG9ydF9jbG50KHRhc2stPnRrX2Ns aWVudCwgeHBydCk7DQo+PiAtDQo+PiArICAgICAgIHRyYW5zcG9ydC0+Y2xudCA9IHRhc2stPnRr X2NsaWVudDsNCj4+ICAgICAgICBxdWV1ZV9kZWxheWVkX3dvcmsoeHBydGlvZF93b3JrcXVldWUs DQo+PiAgICAgICAgICAgICAgICAgICAgICAgICZ0cmFuc3BvcnQtPmNvbm5lY3Rfd29ya2VyLA0K Pj4gICAgICAgICAgICAgICAgICAgICAgICBkZWxheSk7DQoNCg0KLS0NCkNodWNrIExldmVyDQoN Cg0K