Received: by 2002:a05:6a10:a841:0:0:0:0 with SMTP id d1csp4494730pxy; Tue, 27 Apr 2021 06:27:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwOfq/WdezZsFm3pN798xk9c4ywmTilFUPqvMI3yboAavC29phO76bshupymWZpMxom3ZWi X-Received: by 2002:a17:90b:234d:: with SMTP id ms13mr4735774pjb.152.1619530050901; Tue, 27 Apr 2021 06:27:30 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1619530050; cv=pass; d=google.com; s=arc-20160816; b=r6ajZPP9b1RYMYbDryK+6dxNS9tAWXDI9e0dO6NcUxDkHMsTWmCpGPczqMfhtrcmN2 tBfyfHtWb0kUGF7jqFH56l3qXiWJiDh3O2iDGoN9/7iTSHr1+aKTbC0zx6n7QHBQBLed TXJzD+IyxlJfLQoK8S3c6vAfCv4lnFiRfUpKKiHn4C/wqybs5O/AwtmmtX0dm2cdPqlT OfJflbd1odpBO0nITv8NV+7jxS3om4RjVeBu83BOzSnA8EpoW+Oo+uMbcEicV6t2XBr+ JmTBk+2JDFEyMKUMy0jaKuskU8kN/fWMXdNDVtj/2434de3NcXEA7rZrVesh63UH1+/e UGLg== 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; bh=PPpHOiWlJ+PUbwcxen8r+fSMyCk0m+y7uQLSI+AjmmM=; b=vDd2GJY+Vu9xW6TlL0UgKSSh0Z0bQkIPBDYNWUiztwfm+Jcc9UXQXjyzJpwf72qS3J V+k6GEumvQd5/lPoKIcZ+Vr0OBcM8uqXLMvG6KwO/izqX6ipde8Bc2guvzNtW9ksLe8X 6BsuVotnh7G2hjnKse4JeH/blA2x6QwrpuFsOOLzJMLrakcWYdolAwkpgY7c/ZM7v8Ua TJn3f62xlrH5qP0jFRgUcChkrICcFq8NQnNOmrdaFoj/w4D0LsaWRUezRIJbz48+EjXc Q9bD5vSR73cO4VkLNSBLpLK8NyC7S7Cwxsxa2fj0g6sSSxnXqN7BgAG1KBqbCx2E08MV HZXw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=EOEv452J; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=hammerspace.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b12si3717913pfv.103.2021.04.27.06.27.10; Tue, 27 Apr 2021 06:27:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=EOEv452J; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=hammerspace.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236120AbhD0N1o (ORCPT + 99 others); Tue, 27 Apr 2021 09:27:44 -0400 Received: from mail-bn8nam11on2136.outbound.protection.outlook.com ([40.107.236.136]:62561 "EHLO NAM11-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S235875AbhD0N1n (ORCPT ); Tue, 27 Apr 2021 09:27:43 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XI65HPpimGALLdTA20kw09a93n4qNQI0Vw59Q8K2MK2Zf2RVWqGTsdxJiAm23pDGopGgD16W7Kmfwc0PiBuQL5o48VAQFbiBzwdOAHZ97qXlvzGJ5K4jGd0lT5Ip7fY5qHBCqLS6P9S9qGRaRlazchFNYXoGzNZzw/N5l+lmCSJr77W4JYG+Az5jp0PK3syPYcMKJ/1sHmEihZkZsGzAEY7j6CxfJg06rxhBP+ySTX1eplFp3+ihUq4IQ6OT90L2NweeYUWLGjj5jmiYbXhONAcZOZPlwfMsXtxTqcMYbiCuoa+tkqRhWoXMFpVb60A0f9MqKUAqDRqCcBvjYuDyXQ== 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-SenderADCheck; bh=PPpHOiWlJ+PUbwcxen8r+fSMyCk0m+y7uQLSI+AjmmM=; b=JEmkWKOpPfm8kY9Dgxs+YZo8oWouJZqb229goxSjoFTcgHptReu1HzkVqXpx99otjvKpjGV46KKy1mUzavnyi+eNGcz8Dy/NViEubI4JkH0FZzvmbQLI6PgCtxQklHIeDkP7FeD/nuWjiPolOeZsYeY1HsnFsNCxyGiJn0nGsn98i7bpa4t86+OgJ7hH7KbKAtiGwIQ/twe4BR6QpahKZGhMjZfb4u9QbS98WpZ/WXbE+UAs3ZbclEROc9QGT29V04dWk9/8peUyCliN53DyZGfTiArakaOfVdclV6pKkZyMkl2IYygOSIUn4Dn1AYBIBVR4j99vieG/1Zri6iJIOA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hammerspace.com; dmarc=pass action=none header.from=hammerspace.com; dkim=pass header.d=hammerspace.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hammerspace.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PPpHOiWlJ+PUbwcxen8r+fSMyCk0m+y7uQLSI+AjmmM=; b=EOEv452JVFJyiLcd1l5vqpWRv3w3hxfRg9XG5chwS8uXUswpat7qjGrQhmWnzHyRdBVyGOTm5to3hSHyfnWMGavNBeUATR3AtTlcvyOW9+M6VDh1p1FbEFcSqb1NTStyV96fZFNOkoVrm8dp9RVLbA4lZ99Gcvgb99fPJSrx2ew= Received: from DS7PR13MB4733.namprd13.prod.outlook.com (2603:10b6:5:3b1::24) by DM5PR13MB1804.namprd13.prod.outlook.com (2603:10b6:3:137::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.19; Tue, 27 Apr 2021 13:26:57 +0000 Received: from DS7PR13MB4733.namprd13.prod.outlook.com ([fe80::f414:a9a:6686:f7e0]) by DS7PR13MB4733.namprd13.prod.outlook.com ([fe80::f414:a9a:6686:f7e0%4]) with mapi id 15.20.4087.026; Tue, 27 Apr 2021 13:26:57 +0000 From: Trond Myklebust To: "anna.schumaker@netapp.com" , "olga.kornievskaia@gmail.com" CC: "linux-nfs@vger.kernel.org" Subject: Re: [PATCH v3 11/13] sunrpc: add dst_attr attributes to the sysfs xprt directory Thread-Topic: [PATCH v3 11/13] sunrpc: add dst_attr attributes to the sysfs xprt directory Thread-Index: AQHXOsBqr61ii6VmFEawm2pd/tqFcarIXHqA Date: Tue, 27 Apr 2021 13:26:56 +0000 Message-ID: <5c089dfd503381f00856d8ecf9e836c58179517d.camel@hammerspace.com> References: <20210426171947.99233-1-olga.kornievskaia@gmail.com> <20210426171947.99233-12-olga.kornievskaia@gmail.com> In-Reply-To: <20210426171947.99233-12-olga.kornievskaia@gmail.com> Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: netapp.com; dkim=none (message not signed) header.d=none;netapp.com; dmarc=none action=none header.from=hammerspace.com; x-originating-ip: [68.36.133.222] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 67a2ecde-361a-4510-9a24-08d909802180 x-ms-traffictypediagnostic: DM5PR13MB1804: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: oKbgBPTC4eXd7i9p0MjhJs1pOz79uEvkQMv+AEXugl1S8E/RCe4J5lfZ4c6mMEsFtjCcgWBTOhII1hIwd8fKaR52btBm1FmUBvvFiSTaUB8hPv2IMGvB+MzQMNVh7UoEJOi0CYaArOOghkZxf5WmMxB1Ke6901t0aTMcbRG81JPW8Vvlx8HSSgdeZCrJUicYxXvcdE8TRX/BWqQts6oSFe0sV1hLLhVBaAxRyimeanXduZ5d/XRZCJzUq9tiqo/Jz69DdwwV72aVHenUbb00xNlUfrGfG0b8EX+Yx5m/mIypbrxXO4dyWKLeeEsgQa+T+sJbdaFrFeWFHCWMAPhRsDJEnkHxQGRl2SproIRq9L6i3QI7Y81hloNsraZlu74JHyzoqdJpJBUTySz+Xt3sgsZj9cLC1RoBfFrpPmYc5l0YAMWp9U39Yu+R1aSOiC4rNB9ctI9eJeSEaWRw6cR5H9RWqS/ZRrspZ/g88WBk/MlhsNxaxTQ9toIBHpFrFv81i/cBW1+qiHiegrV+Fr7DUU1eiRInn/7BTfCj+CY8xnEamBPMLUIhI9qXUSCMv9b6Ar2NxM+cGeJW2/oTICFRcqa76WXqZIEjjCtus24WvOs= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR13MB4733.namprd13.prod.outlook.com;PTR:;CAT:NONE;SFS:(346002)(376002)(136003)(366004)(396003)(39830400003)(186003)(66446008)(66476007)(36756003)(76116006)(66556008)(4326008)(2616005)(86362001)(6506007)(83380400001)(26005)(71200400001)(110136005)(316002)(8936002)(2906002)(38100700002)(122000001)(91956017)(64756008)(8676002)(66946007)(478600001)(5660300002)(6486002)(6512007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?cE10VVZxcmphRXVLTVJEME5yWmFhWGtVQ1ZiRW00dkpuUzZ4M1h2aklsUFho?= =?utf-8?B?eDEyM25sbEJOakhRKzR6VGc1eERZdngrU2tLNHdmMGRjQzNsNUdFMUxwTFdV?= =?utf-8?B?cW9YRFp0NnVZK3pKRFhpVnllQmkzcjhYZHVyVFpPb0lyRm1wK2RTUnNjdlFK?= =?utf-8?B?RHNMZjE2d2lRS2NiR3dKYmVlQ2Q1NGR0SVpIa3lvTnZZcDErRzlMVnZ0WHBH?= =?utf-8?B?RkF6TzNUSVNXek03aVF0RmZWdzdWQkw1TEEwdTdsRUZHYmZsaW5OcCsrbWYz?= =?utf-8?B?dFZVeDM5R1pLdmgyWEc5UTJoRzNZamphcTRjTElkQlZ5aThqM3NLVVlyanRE?= =?utf-8?B?dVlWZ01UaEVXMEZrbXZlMCtTQkVjQXFnRm1aR055c2pnV3IxR1BmTnVqSGpF?= =?utf-8?B?MVhvU3Fpd0k2MmhtNW90cEplWGhoeWt6c01lK0NQd09TNTFWMlFYYzlSTnF0?= =?utf-8?B?eGYwcEV0VExQZXpHcE1ITXV6RHAvaGwwcWZZUjlTUDB5Q2x6Qko5MFJqTzhh?= =?utf-8?B?Z1JyM1lnU1NmaXZNY05DaXlTRlp1WWpNdkFhcVp2UXZhMDBvN01kZ1dsUUV6?= =?utf-8?B?aFk4RnBZcFAwRDd1a3dCNkx6Y2QrWXVrVndLMlZYQkF5cElOcDlZU0Z2SXZP?= =?utf-8?B?b2l1c1hCL0ZuSXZiSjlCTHJtT3pyU3FTR0pjVTJ3MWE3WGdMQXBOM0ZCYkRT?= =?utf-8?B?RlVpRHZrWElENXgveHVXM25oUVRKZ21yM1plV0dCTFBwRmpnRjV4WkFXQURL?= =?utf-8?B?T3p5a3IzVXc0K1RMT2s0eE9DSm5mcmhvWTc4UCtSaUxIZ3lqWUpLNFloSmsr?= =?utf-8?B?dERvY3hsdzhKeEdwQTJnYUlUaWFBVGFUeHV5bW1QamlQaGc3NmRKY1dGOEhF?= =?utf-8?B?Vk9pc0V6TVgra0dESmVzU05pOTBOSlhRaUtRcE8yWTNPbFhlbGtVQjFXNlJp?= =?utf-8?B?WXIzK2IwQjgvTTNXREdMOENES1M0U0tXbUhjSnFnMzM1d2RUb0F6Z0M5NUNl?= =?utf-8?B?bUJQT0h4dkpLdUFSTkI4alBSd1VrOHJVc3N0QUNCUzNhMEZXM2VBMXJRMFh3?= =?utf-8?B?bHlIWnJOWVI4bFdSZ09lbWRjdHgwY0prcDc1VVczYzdyWXl1Wm90Y0FmQXFJ?= =?utf-8?B?S2o5emRhOHdkbHE0NUg1Uzg0ZU8zUFNIME1CaTUrZmN6V1dIVnh6Nkk5WXVL?= =?utf-8?B?QkhkMit6SU5xakRHQzZPS01ta09rMUpENUpwTmdiLzg3U1BLNVdXNkxENVMr?= =?utf-8?B?a2luKzArQk12RlVFT1RBU2FHZnQ0MEkvZUtXYmRsRmNmY0VXOWRRT0NvNHBI?= =?utf-8?B?SUZsZWFTUnlUOE5yWHB0bjhpNXpmTjJYMjZkQTF0cDBrZVltQlE0QitiZnJh?= =?utf-8?B?RCtPRDhSbnhoWXJsRCtVZ2U1M1hPZjVtSFF3UUVmdGRKYlMyc1BUY3ZKb09M?= =?utf-8?B?MjdreCtCVVpYSkdBOUNtM0lrSU9vYjh1TVFvU3pXWnpIVUZKWE83L2xQK1dE?= =?utf-8?B?cmloUmZ6OHplUFdSNkxpZDY0Y2gwaVlQTFkrTlVFZzJHbGVTek8yYjQ4Qk1W?= =?utf-8?B?Ym9oRW9VclQxQ1JJdzBRYW9oOGFVa3JmUzN4VW40VTRPSGpnaXNsREVWR2NX?= =?utf-8?B?MitycUx5TE5zUHoyZjVyZ1RMWXRnMmE2TkN0eFhnWmZWR1VjenlyakVnTm1T?= =?utf-8?B?Q0hFV2pRS2xncDUwY3VDQWxweWxlMWoyeUMrc0xmNVFCc3FvTy9nLzdHdnk2?= =?utf-8?Q?qpdlPFk4z2efVl+CNPy2I/PjZ3wZR3ngZatRw5n?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <02E0B122D7B99F4F807C150E83A527D8@namprd13.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: hammerspace.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DS7PR13MB4733.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 67a2ecde-361a-4510-9a24-08d909802180 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Apr 2021 13:26:57.0284 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0d4fed5c-3a70-46fe-9430-ece41741f59e X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: aBW4Q83bfPr3+naPnrJkc/0ddLHkdqMFFxE1BOA/Wc8qHN2vFf6Q7Jp9EeSPC4M+NVVkntEMI390yZFakCGMlw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR13MB1804 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T24gTW9uLCAyMDIxLTA0LTI2IGF0IDEzOjE5IC0wNDAwLCBPbGdhIEtvcm5pZXZza2FpYSB3cm90 ZToNCj4gRnJvbTogT2xnYSBLb3JuaWV2c2thaWEgPGtvbGdhQG5ldGFwcC5jb20+DQo+IA0KPiBB bGxvdyB0byBxdWVyeSBhbmQgc2V0IHRoZSBkZXN0aW5hdGlvbidzIGFkZHJlc3Mgb2YgYSB0cmFu c3BvcnQuDQo+IFNldHRpbmcgb2YgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MgaXMgYWxsb3dlZCBv bmx5IGZvciBUQ1Agb3IgUkRNQQ0KPiBiYXNlZCBjb25uZWN0aW9ucy4NCj4gDQo+IFNpZ25lZC1v ZmYtYnk6IE9sZ2EgS29ybmlldnNrYWlhIDxrb2xnYUBuZXRhcHAuY29tPg0KPiAtLS0NCj4gwqBu ZXQvc3VucnBjL3N5c2ZzLmMgfCA3Mg0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrDQo+IMKgMSBmaWxlIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKykNCj4g DQo+IGRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3N5c2ZzLmMgYi9uZXQvc3VucnBjL3N5c2ZzLmMN Cj4gaW5kZXggNjgyZGVmNDI5M2YyLi4wNzZmNzc3ZGIzY2QgMTAwNjQ0DQo+IC0tLSBhL25ldC9z dW5ycGMvc3lzZnMuYw0KPiArKysgYi9uZXQvc3VucnBjL3N5c2ZzLmMNCj4gQEAgLTQsNiArNCw5 IEBADQo+IMKgICovDQo+IMKgI2luY2x1ZGUgPGxpbnV4L3N1bnJwYy9jbG50Lmg+DQo+IMKgI2lu Y2x1ZGUgPGxpbnV4L2tvYmplY3QuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9zdW5ycGMvYWRkci5o Pg0KPiArI2luY2x1ZGUgPGxpbnV4L3N1bnJwYy94cHJ0c29jay5oPg0KPiArDQo+IMKgI2luY2x1 ZGUgInN5c2ZzLmgiDQo+IMKgDQo+IMKgc3RhdGljIHN0cnVjdCBrc2V0ICpycGNfc3VucnBjX2tz ZXQ7DQo+IEBAIC00Miw2ICs0NSw2NiBAQCBzdGF0aWMgc3RydWN0IGtvYmplY3QNCj4gKnJwY19z eXNmc19vYmplY3RfYWxsb2MoY29uc3QgY2hhciAqbmFtZSwNCj4gwqDCoMKgwqDCoMKgwqDCoHJl dHVybiBOVUxMOw0KPiDCoH0NCj4gwqANCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IHJwY194cHJ0 ICoNCj4gK3JwY19zeXNmc194cHJ0X2tvYmpfZ2V0X3hwcnQoc3RydWN0IGtvYmplY3QgKmtvYmop DQo+ICt7DQo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBycGNfc3lzZnNfeHBydF9zd2l0Y2hfeHBy dCAqeCA9IGNvbnRhaW5lcl9vZihrb2JqLA0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgc3RydWN0IHJwY19zeXNmc194cHJ0X3N3aXRjaF94cHJ0LCBrb2JqZWN0KTsNCj4gKw0KPiAr wqDCoMKgwqDCoMKgwqByZXR1cm4geHBydF9nZXQoeC0+eHBydCk7DQo+ICt9DQo+ICsNCj4gK3N0 YXRpYyBzc2l6ZV90IHJwY19zeXNmc194cHJ0X2RzdGFkZHJfc2hvdyhzdHJ1Y3Qga29iamVjdCAq a29iaiwNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGtvYmpfYXR0cmlidXRl DQo+ICphdHRyLA0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjaGFyICpidWYpDQo+ICt7 DQo+ICvCoMKgwqDCoMKgwqDCoHN0cnVjdCBycGNfeHBydCAqeHBydCA9IHJwY19zeXNmc194cHJ0 X2tvYmpfZ2V0X3hwcnQoa29iaik7DQo+ICvCoMKgwqDCoMKgwqDCoHNzaXplX3QgcmV0Ow0KPiAr DQo+ICvCoMKgwqDCoMKgwqDCoGlmICgheHBydCkNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHJldHVybiAwOw0KPiArwqDCoMKgwqDCoMKgwqBpZiAoeHBydC0+eHBydF9jbGFzcy0+ aWRlbnQgPT0gWFBSVF9UUkFOU1BPUlRfTE9DQUwpDQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqByZXQgPSBzcHJpbnRmKGJ1ZiwgImxvY2FsaG9zdCIpOw0KDQpUaGlzIG1ha2VzIGl0 IGxvb2sgbGlrZSBpdCBpcyBhIGxvb3BiYWNrIHNvY2tldCwgd2hlcmVhcyBpbiByZWFsaXR5IGl0 DQppcyBhIG5hbWVkIHNvY2tldC4gV2h5IG5vdCBqdXN0IHVzZSB0aGUgeHBydC0NCj5hZGRyZXNz X3N0cmluZ3NbUlBDX0RJU1BMQVlfQUREUl0gaGVyZT8NCg0KPiArwqDCoMKgwqDCoMKgwqBlbHNl DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXQgPSBycGNfbnRvcCgoc3RydWN0 IHNvY2thZGRyICopJnhwcnQtPmFkZHIsIGJ1ZiwNCj4gUEFHRV9TSVpFKTsNCj4gK8KgwqDCoMKg wqDCoMKgYnVmW3JldF0gPSAnXG4nOw0KPiArwqDCoMKgwqDCoMKgwqB4cHJ0X3B1dCh4cHJ0KTsN Cj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIHJldCArIDE7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBz c2l6ZV90IHJwY19zeXNmc194cHJ0X2RzdGFkZHJfc3RvcmUoc3RydWN0IGtvYmplY3QgKmtvYmos DQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGtvYmpfYXR0cmlidXRlDQo+ ICphdHRyLA0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IGNoYXIgKmJ1Ziwg c2l6ZV90DQo+IGNvdW50KQ0KPiArew0KPiArwqDCoMKgwqDCoMKgwqBzdHJ1Y3QgcnBjX3hwcnQg KnhwcnQgPSBycGNfc3lzZnNfeHBydF9rb2JqX2dldF94cHJ0KGtvYmopOw0KPiArwqDCoMKgwqDC oMKgwqBzdHJ1Y3Qgc29ja2FkZHIgKnNhZGRyOw0KPiArwqDCoMKgwqDCoMKgwqBpbnQgcG9ydDsN Cj4gKw0KPiArwqDCoMKgwqDCoMKgwqBpZiAoIXhwcnQpDQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqByZXR1cm4gMDsNCj4gK8KgwqDCoMKgwqDCoMKgaWYgKCEoeHBydC0+eHBydF9j bGFzcy0+aWRlbnQgPT0gWFBSVF9UUkFOU1BPUlRfVENQIHx8DQo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgeHBydC0+eHBydF9jbGFzcy0+aWRlbnQgPT0gWFBSVF9UUkFOU1BPUlRfUkRNQSkp IHsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHhwcnRfcHV0KHhwcnQpOw0KPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC1FT1BOT1RTVVBQOw0KPiArwqDC oMKgwqDCoMKgwqB9DQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgd2FpdF9vbl9iaXRfbG9jaygmeHBy dC0+c3RhdGUsIFhQUlRfTE9DS0VELCBUQVNLX0tJTExBQkxFKTsNCj4gK8KgwqDCoMKgwqDCoMKg c2FkZHIgPSAoc3RydWN0IHNvY2thZGRyICopJnhwcnQtPmFkZHI7DQo+ICvCoMKgwqDCoMKgwqDC oHBvcnQgPSBycGNfZ2V0X3BvcnQoc2FkZHIpOw0KPiArDQo+ICvCoMKgwqDCoMKgwqDCoGtmcmVl KHhwcnQtPmFkZHJlc3Nfc3RyaW5nc1tSUENfRElTUExBWV9BRERSXSk7DQoNClRoaXMgaXMgbm90 IGFsbG93ZWQuIFRoZSB4cHJ0LT5hZGRyZXNzX3N0cmluZ3MgY2FuIG9ubHkgYmUgZnJlZWQgaW4g YQ0KbWFubmVyIHRoYXQgaXMgc2FmZSB3LnIudC4gdGhlIHJjdV9yZWFkX2xvY2soKS4gT3RoZXJ3 aXNlLCB2YXJpb3VzDQp1c2VycyBvZiBycGNfcGVlcmFkZHIyc3RyKCkgYXJlIHByb25lIHRvIGNy YXNoLg0KDQpTbyBpZiB5b3UncmUgZ29pbmcgdG8gcmVwbGFjZSB0aGVzZSBzdHJpbmdzLCB0aGVu IHlvdSBoYXZlIHRvIHJlcGxhY2UNCnRoZW0gdXNpbmcgc29tZXRoaW5nIGxpa2UgcmN1X3JlcGxh Y2VfcG9pbnRlcigpLCB0aGVuIHlvdSBoYXZlIHRvIGZyZWUNCnRoZW0gdXNpbmcgY2FsbF9yY3Uo KSBvciBrZnJlZV9yY3V9KCkuDQoNCj4gK8KgwqDCoMKgwqDCoMKgeHBydC0+YWRkcmVzc19zdHJp bmdzW1JQQ19ESVNQTEFZX0FERFJdID0ga3N0cm5kdXAoYnVmLCBjb3VudA0KPiAtIDEsDQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAN Cj4gR0ZQX0tFUk5FTCk7DQo+ICvCoMKgwqDCoMKgwqDCoHhwcnQtPmFkZHJsZW4gPSBycGNfcHRv bih4cHJ0LT54cHJ0X25ldCwgYnVmLCBjb3VudCAtIDEsDQo+IHNhZGRyLA0KPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6 ZW9mKCpzYWRkcikpOw0KPiArwqDCoMKgwqDCoMKgwqBycGNfc2V0X3BvcnQoc2FkZHIsIHBvcnQp Ow0KDQpUaGUgYWJvdmUgaXMgYWxzbyBhIGJpdCBkb2RneSB3LnIudC4gcnBjX3BlZXJhZGRyKCkg c2luY2UgaXQgaXMgbm9uLQ0KYXRvbWljLiBIb3dldmVyIGl0IGxvb2tzIGxpa2UgaXQgc2hvdWxk IGJlIE9LIGluIHByYWN0aWNlLg0KDQo+ICsNCj4gK8KgwqDCoMKgwqDCoMKgeHBydC0+b3BzLT5j b25uZWN0KHhwcnQsIE5VTEwpOw0KPiArwqDCoMKgwqDCoMKgwqBjbGVhcl9iaXQoWFBSVF9MT0NL RUQsICZ4cHJ0LT5zdGF0ZSk7DQo+ICvCoMKgwqDCoMKgwqDCoHhwcnRfcHV0KHhwcnQpOw0KPiAr wqDCoMKgwqDCoMKgwqByZXR1cm4gY291bnQ7DQo+ICt9DQo+ICsNCj4gwqBpbnQgcnBjX3N5c2Zz X2luaXQodm9pZCkNCj4gwqB7DQo+IMKgwqDCoMKgwqDCoMKgwqBycGNfc3VucnBjX2tzZXQgPSBr c2V0X2NyZWF0ZV9hbmRfYWRkKCJzdW5ycGMiLCBOVUxMLA0KPiBrZXJuZWxfa29iaik7DQo+IEBA IC0xMDUsNiArMTY4LDE0IEBAIHN0YXRpYyBjb25zdCB2b2lkDQo+ICpycGNfc3lzZnNfeHBydF9z d2l0Y2hfeHBydF9uYW1lc3BhY2Uoc3RydWN0IGtvYmplY3QgKmtvYmopDQo+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBrb2JqZWN0KS0+bmV0 Ow0KPiDCoH0NCj4gwqANCj4gK3N0YXRpYyBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgcnBjX3N5c2Zz X3hwcnRfZHN0YWRkciA9DQo+IF9fQVRUUihkc3RhZGRyLA0KPiArwqDCoMKgwqDCoMKgwqAwNjQ0 LCBycGNfc3lzZnNfeHBydF9kc3RhZGRyX3Nob3csDQo+IHJwY19zeXNmc194cHJ0X2RzdGFkZHJf c3RvcmUpOw0KPiArDQo+ICtzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqcnBjX3N5c2ZzX3hwcnRf YXR0cnNbXSA9IHsNCj4gK8KgwqDCoMKgwqDCoMKgJnJwY19zeXNmc194cHJ0X2RzdGFkZHIuYXR0 ciwNCj4gK8KgwqDCoMKgwqDCoMKgTlVMTCwNCj4gK307DQo+ICsNCj4gwqBzdGF0aWMgc3RydWN0 IGtvYmpfdHlwZSBycGNfc3lzZnNfY2xpZW50X3R5cGUgPSB7DQo+IMKgwqDCoMKgwqDCoMKgwqAu cmVsZWFzZSA9IHJwY19zeXNmc19jbGllbnRfcmVsZWFzZSwNCj4gwqDCoMKgwqDCoMKgwqDCoC5z eXNmc19vcHMgPSAma29ial9zeXNmc19vcHMsDQo+IEBAIC0xMTksNiArMTkwLDcgQEAgc3RhdGlj IHN0cnVjdCBrb2JqX3R5cGUNCj4gcnBjX3N5c2ZzX3hwcnRfc3dpdGNoX3R5cGUgPSB7DQo+IMKg DQo+IMKgc3RhdGljIHN0cnVjdCBrb2JqX3R5cGUgcnBjX3N5c2ZzX3hwcnRfc3dpdGNoX3hwcnRf dHlwZSA9IHsNCj4gwqDCoMKgwqDCoMKgwqDCoC5yZWxlYXNlID0gcnBjX3N5c2ZzX3hwcnRfc3dp dGNoX3hwcnRfcmVsZWFzZSwNCj4gK8KgwqDCoMKgwqDCoMKgLmRlZmF1bHRfYXR0cnMgPSBycGNf c3lzZnNfeHBydF9hdHRycywNCj4gwqDCoMKgwqDCoMKgwqDCoC5zeXNmc19vcHMgPSAma29ial9z eXNmc19vcHMsDQo+IMKgwqDCoMKgwqDCoMKgwqAubmFtZXNwYWNlID0gcnBjX3N5c2ZzX3hwcnRf c3dpdGNoX3hwcnRfbmFtZXNwYWNlLA0KPiDCoH07DQoNCi0tIA0KVHJvbmQgTXlrbGVidXN0DQpM aW51eCBORlMgY2xpZW50IG1haW50YWluZXIsIEhhbW1lcnNwYWNlDQp0cm9uZC5teWtsZWJ1c3RA aGFtbWVyc3BhY2UuY29tDQoNCg0K