Received: by 10.192.165.148 with SMTP id m20csp3688435imm; Mon, 23 Apr 2018 10:35:28 -0700 (PDT) X-Google-Smtp-Source: AIpwx49+79L+1A+SCowoq41eOE9TDX85blPAzyXO/43MZ1D7eoGn3Z++7Nmufgiuj2HIoh9Bw8wi X-Received: by 2002:a17:902:6c0b:: with SMTP id q11-v6mr10547990plk.135.1524504928228; Mon, 23 Apr 2018 10:35:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524504928; cv=none; d=google.com; s=arc-20160816; b=NPwkeIeUT5hBbTZpqH9PBsO0aO46jQGcbB5RJCweTa2JMJAzePe0wIkraywDnxRdd1 7QZcR+Td8Y1DlAgjN1RwB2FCm9a785H97fsb+6TPY2X4PDmOppaXZKM40EYUwyg+AMvo h0wohgs1xGdcWOpIyDiA3t4gWSmNK/+FIfhXlWiCyFUQlKp2g2DTmi12nmslL9InJaGz aFvWrq9YjBHHkoYusOwGELNunNlOFG+gAPSOO3Zz8HQv/DLcl4ZkBxG/eByKYMa3HkRE 12H5wkAulruMeHrfj06dBCuYZey9IrxWQYctH0vMgsuj+xR+ujl7RC2BTqArGXCm2rCs ARAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=cnmdcrkTTzJ21DNH4+penck1P3nL4Okm/p0wJuWKZ4I=; b=aLFg3F+KQ+ViMBbvLnvPBHC77AzH1tyPZbbvYpiSajJLv3iqq46HESPD5SIFhHUJlk lipBfPtVllPvjC/iwWH67h+dYAwzzb0jw2y7Px7ZPixztdd91cxAOcKGDsrpwvkBBaYf C2ZDS9tvUTo0PwKdlC+HRi2bbn4F5CPvULyd9OBPMDYr2lCIU1b38UkNb/oWCuEvPBAC BKPp/vPuRKWm5dMoGmN1ll/E6ydRLK4XZvuyYcbM0Fsf7AnriO7A0RRZ3jGwk2UUhPK2 ZIhZ5E5L1tQjeh8bayzJOcAnUKR+LTxhtmaz/yQ1Szw7MdQYBQWltdLQhZgh0eparlQv NRvg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=RuTa7ttg; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l27si6849502pgu.353.2018.04.23.10.35.13; Mon, 23 Apr 2018 10:35:28 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=RuTa7ttg; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932151AbeDWRd3 (ORCPT + 99 others); Mon, 23 Apr 2018 13:33:29 -0400 Received: from mail-bn3nam01on0109.outbound.protection.outlook.com ([104.47.33.109]:22862 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932107AbeDWRd0 (ORCPT ); Mon, 23 Apr 2018 13:33:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=cnmdcrkTTzJ21DNH4+penck1P3nL4Okm/p0wJuWKZ4I=; b=RuTa7ttgf2LIaX5pEsskA11K3A5S11f7XPDhOdU3aWusAlL1azq4+SW3UqpXeRNjwV6JEOUWht1SIZsVmov73F2sP2qc/mP/q/+/Pw7XdUm57gy7CJT00bA3bGxkrNI0+i2x9RSv2g6zgpb5bi3VUAgqCLh7UzObW0Simg9hJWU= Received: from SN4PR2101MB0733.namprd21.prod.outlook.com (10.167.150.161) by SN4PR2101MB0814.namprd21.prod.outlook.com (10.167.151.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.735.4; Mon, 23 Apr 2018 17:33:24 +0000 Received: from SN4PR2101MB0733.namprd21.prod.outlook.com ([fe80::c4b5:76a8:7931:e34]) by SN4PR2101MB0733.namprd21.prod.outlook.com ([fe80::c4b5:76a8:7931:e34%5]) with mapi id 15.20.0715.014; Mon, 23 Apr 2018 17:33:24 +0000 From: Long Li To: Steve French CC: CIFS , samba-technical , LKML , "linux-rdma@vger.kernel.org" Subject: RE: [Patch v2 3/6] cifs: smbd: Avoid allocating iov on the stack Thread-Topic: [Patch v2 3/6] cifs: smbd: Avoid allocating iov on the stack Thread-Index: AQHT1oDbxi07lcg1S0+HlWpTjDWyoKQOg2SAgAAhwvA= Date: Mon, 23 Apr 2018 17:33:23 +0000 Message-ID: References: <20180417191710.14855-1-longli@linuxonhyperv.com> <20180417191710.14855-3-longli@linuxonhyperv.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [2001:4898:80e8:c::2e0] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;SN4PR2101MB0814;7:Hx405evvgsnBe7nPv6Dz0Tm3F9caqrVDV5n+NT12wPq1zQrx1MwZSR0gtNfaSqqueZjXs8sE47P0IEB875rUKyjQsrgObDVFKlV0XTUFrTFCuiwyB+UJ6JMA3t9qRBMmu3xscva3QLyPSlHkBwFm/mMjgfJ5fipfCXp0esPbfS5hJ6QqUGuyVhgPrDcXFiLMMLiVsHBMykZdmVwM66S46AYgysfaSJaw5OquLlJ7tKq7Nec8zY3AAjxuqm4brRnZ;20:kP6MBE96iPHyLUzuEIuK90Ii/ZB839RK+eWKtPNHhAuiiJTeqlnxpkYvq3u6i9tk9I8Dkxy3sbokXpSr8HQNOgdoomNkOkbInslY/Hqi4zlTW3CNt1LgWVveGaJtPmNiLGhOepU9WhvI6Fm3jPcBJwPDN8RCabaMCDluwCmqeLQ= x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7193020);SRVR:SN4PR2101MB0814; x-ms-traffictypediagnostic: SN4PR2101MB0814: authentication-results: spf=none (sender IP is ) smtp.mailfrom=longli@microsoft.com; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(28532068793085)(89211679590171)(9452136761055)(189930954265078)(219752817060721); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(10201501046)(3231232)(944501410)(52105095)(6055026)(6041310)(20161123562045)(20161123558120)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:SN4PR2101MB0814;BCL:0;PCL:0;RULEID:;SRVR:SN4PR2101MB0814; x-forefront-prvs: 06515DA04B x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(366004)(396003)(39380400002)(39860400002)(376002)(346002)(11346002)(446003)(102836004)(6506007)(53546011)(10090500001)(6116002)(2900100001)(76176011)(186003)(59450400001)(3660700001)(3280700002)(8990500004)(99286004)(2906002)(7696005)(33656002)(53936002)(9686003)(6246003)(6306002)(55016002)(86362001)(575784001)(86612001)(39060400002)(1411001)(966005)(14454004)(478600001)(25786009)(10290500003)(74316002)(5660300001)(4326008)(305945005)(229853002)(476003)(46003)(6436002)(22452003)(8936002)(81166006)(316002)(5250100002)(6916009)(54906003)(7736002)(8676002);DIR:OUT;SFP:1102;SCL:1;SRVR:SN4PR2101MB0814;H:SN4PR2101MB0733.namprd21.prod.outlook.com;FPR:;SPF:None;LANG:en;MLV:ovrnspm;PTR:InfoNoRecords; received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: +LAndyQe6QY9rccWuXoKbvYRNdOe2RtQy+jPGX8z3LSgWzr2LBXrKN6kbhoBGdj0eg+PuMtHvggJicuEfxMgQiusHX32YFzTRPiIA1jVmc3GZygPbwRPevkXi46tPX3VljoozEScLOoKJ2XnGd2On9s8vBoz07GMhGtw2OkEVcz97R2iX9x9akl1DxTnf6CD spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: fc1cc1e7-9706-4d7a-ad42-08d5a94050ce X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: fc1cc1e7-9706-4d7a-ad42-08d5a94050ce X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Apr 2018 17:33:24.0105 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN4PR2101MB0814 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiBTdWJqZWN0OiBSZTogW1BhdGNoIHYyIDMvNl0gY2lmczogc21iZDogQXZvaWQgYWxsb2NhdGlu ZyBpb3Ygb24gdGhlIHN0YWNrDQo+IA0KPiBEaWRuJ3Qgc2VlIGFueSBvYnZpb3VzIHByb2JsZW1z LCBidXQgY2FuIHlvdSBmaXggdGhlIGNoZWNrcGF0Y2ggd2FybmluZ3MNCj4gYW5kIHJlc2VuZCB0 byB0aGUgbGlzdCAoSSBhbSBtb3JlIGNvbmNlcm5lZCBhYm91dCB0aGUgbGFzdCB0d28gd2Fybmlu Z3MNCj4gcmF0aGVyIHRoYW4gdGhlIGZpcnN0IG9uZSkuDQoNClllcywgSSB3aWxsIGZpeCBpdCBh bmQgcmVzZW5kLg0KDQo+IA0KPiAkIHNjcmlwdHMvY2hlY2twYXRjaC5wbCAwMDAxLWNpZnMtc21i ZC1Bdm9pZC1hbGxvY2F0aW5nLWlvdi1vbi10aGUtDQo+IHN0YWNrLnBhdGNoDQo+IFdBUk5JTkc6 IGxpbmUgb3ZlciA4MCBjaGFyYWN0ZXJzDQo+ICM2MDogRklMRTogZnMvY2lmcy9zbWJkaXJlY3Qu YzoyMTA2Og0KPiArICAgICAgICBsb2dfd3JpdGUoRVJSLCAiZXhwZWN0ZWQgdGhlIHBkdSBsZW5n dGggaW4gMXN0IGlvdiwgYnV0IGdvdA0KPiAweCVsdVxuIiwgcnFzdC0+cnFfaW92WzBdLmlvdl9s ZW4pOw0KPiANCj4gRVJST1I6IFByZWZpeGluZyAweCB3aXRoIGRlY2ltYWwgb3V0cHV0IGlzIGRl ZmVjdGl2ZQ0KPiAjNjA6IEZJTEU6IGZzL2NpZnMvc21iZGlyZWN0LmM6MjEwNjoNCj4gKyAgICAg ICAgbG9nX3dyaXRlKEVSUiwgImV4cGVjdGVkIHRoZSBwZHUgbGVuZ3RoIGluIDFzdCBpb3YsIGJ1 dCBnb3QNCj4gMHglbHVcbiIsIHJxc3QtPnJxX2lvdlswXS5pb3ZfbGVuKTsNCj4gDQo+IFdBUk5J Tkc6IGJyYWNlcyB7fSBhcmUgbm90IG5lY2Vzc2FyeSBmb3Igc2luZ2xlIHN0YXRlbWVudCBibG9j a3MNCj4gIzY5OiBGSUxFOiBmcy9jaWZzL3NtYmRpcmVjdC5jOjIxMTI6DQo+ICsgICAgZm9yIChp ID0gMDsgaSA8IHJxc3QtPnJxX252ZWMtMTsgaSsrKSB7DQo+ICAgICAgICAgIGJ1ZmxlbiArPSBp b3ZbaV0uaW92X2xlbjsNCj4gICAgICB9DQo+IA0KPiB0b3RhbDogMSBlcnJvcnMsIDIgd2Fybmlu Z3MsIDY1IGxpbmVzIGNoZWNrZWQNCj4gDQo+IE5PVEU6IEZvciBzb21lIG9mIHRoZSByZXBvcnRl ZCBkZWZlY3RzLCBjaGVja3BhdGNoIG1heSBiZSBhYmxlIHRvDQo+ICAgICAgIG1lY2hhbmljYWxs eSBjb252ZXJ0IHRvIHRoZSB0eXBpY2FsIHN0eWxlIHVzaW5nIC0tZml4IG9yIC0tZml4LWlucGxh Y2UuDQo+IA0KPiAwMDAxLWNpZnMtc21iZC1Bdm9pZC1hbGxvY2F0aW5nLWlvdi1vbi10aGUtc3Rh Y2sucGF0Y2ggaGFzIHN0eWxlIHByb2JsZW1zLA0KPiBwbGVhc2UgcmV2aWV3Lg0KPiANCj4gT24g VHVlLCBBcHIgMTcsIDIwMTggYXQgMjoxNyBQTSwgTG9uZyBMaSA8bG9uZ2xpQGxpbnV4b25oeXBl cnYuY29tPiB3cm90ZToNCj4gPiBGcm9tOiBMb25nIExpIDxsb25nbGlAbWljcm9zb2Z0LmNvbT4N Cj4gPg0KPiA+IEl0J3Mgbm90IG5lY2Vzc2FyeSB0byBhbGxvY2F0ZSBhbm90aGVyIGlvdiB3aGVu IGdvaW5nIHRocm91Z2ggdGhlDQo+ID4gYnVmZmVycyBpbiBzbWJkX3NlbmQoKSB0aHJvdWdoIFJE TUEgc2VuZC4NCj4gPg0KPiA+IFJlbW92ZSBpdCB0byByZWR1Y2Ugc3RhY2sgc2l6ZS4NCj4gPg0K PiA+IFNpZ25lZC1vZmYtYnk6IExvbmcgTGkgPGxvbmdsaUBtaWNyb3NvZnQuY29tPg0KPiA+IENj OiBzdGFibGVAdmdlci5rZXJuZWwub3JnDQo+ID4gLS0tDQo+ID4gIGZzL2NpZnMvc21iZGlyZWN0 LmMgfCAzNiArKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiAgMSBmaWxl IGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlm ZiAtLWdpdCBhL2ZzL2NpZnMvc21iZGlyZWN0LmMgYi9mcy9jaWZzL3NtYmRpcmVjdC5jIGluZGV4 DQo+ID4gYjVjNmMwZC4uZjU3NWU5YSAxMDA2NDQNCj4gPiAtLS0gYS9mcy9jaWZzL3NtYmRpcmVj dC5jDQo+ID4gKysrIGIvZnMvY2lmcy9zbWJkaXJlY3QuYw0KPiA+IEBAIC0yMDg4LDcgKzIwODgs NyBAQCBpbnQgc21iZF9zZW5kKHN0cnVjdCBzbWJkX2Nvbm5lY3Rpb24gKmluZm8sDQo+IHN0cnVj dCBzbWJfcnFzdCAqcnFzdCkNCj4gPiAgICAgICAgIGludCBzdGFydCwgaSwgajsNCj4gPiAgICAg ICAgIGludCBtYXhfaW92X3NpemUgPQ0KPiA+ICAgICAgICAgICAgICAgICBpbmZvLT5tYXhfc2Vu ZF9zaXplIC0gc2l6ZW9mKHN0cnVjdCBzbWJkX2RhdGFfdHJhbnNmZXIpOw0KPiA+IC0gICAgICAg c3RydWN0IGt2ZWMgaW92W1NNQkRJUkVDVF9NQVhfU0dFXTsNCj4gPiArICAgICAgIHN0cnVjdCBr dmVjICppb3Y7DQo+ID4gICAgICAgICBpbnQgcmM7DQo+ID4NCj4gPiAgICAgICAgIGluZm8tPnNt YmRfc2VuZF9wZW5kaW5nKys7DQo+ID4gQEAgLTIwOTksMzIgKzIwOTksMjAgQEAgaW50IHNtYmRf c2VuZChzdHJ1Y3Qgc21iZF9jb25uZWN0aW9uICppbmZvLA0KPiBzdHJ1Y3Qgc21iX3Jxc3QgKnJx c3QpDQo+ID4gICAgICAgICB9DQo+ID4NCj4gPiAgICAgICAgIC8qDQo+ID4gLSAgICAgICAgKiBU aGlzIHVzdWFsbHkgbWVhbnMgYSBjb25maWd1cmF0aW9uIGVycm9yDQo+ID4gLSAgICAgICAgKiBX ZSB1c2UgUkRNQSByZWFkL3dyaXRlIGZvciBwYWNrZXQgc2l6ZSA+DQo+IHJkbWFfcmVhZHdyaXRl X3RocmVzaG9sZA0KPiA+IC0gICAgICAgICogYXMgbG9uZyBhcyBpdCdzIHByb3Blcmx5IGNvbmZp Z3VyZWQgd2Ugc2hvdWxkIG5ldmVyIGdldCBpbnRvIHRoaXMNCj4gPiAtICAgICAgICAqIHNpdHVh dGlvbg0KPiA+IC0gICAgICAgICovDQo+ID4gLSAgICAgICBpZiAocnFzdC0+cnFfbnZlYyArIHJx c3QtPnJxX25wYWdlcyA+IFNNQkRJUkVDVF9NQVhfU0dFKSB7DQo+ID4gLSAgICAgICAgICAgICAg IGxvZ193cml0ZShFUlIsICJtYXhpbXVtIHNlbmQgc2VnbWVudCAleCBleGNlZWRpbmcgJXhcbiIs DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgIHJxc3QtPnJxX252ZWMgKyBycXN0LT5ycV9u cGFnZXMsIFNNQkRJUkVDVF9NQVhfU0dFKTsNCj4gPiAtICAgICAgICAgICAgICAgcmMgPSAtRUlO VkFMOw0KPiA+IC0gICAgICAgICAgICAgICBnb3RvIGRvbmU7DQo+ID4gLSAgICAgICB9DQo+ID4g LQ0KPiA+IC0gICAgICAgLyoNCj4gPiAtICAgICAgICAqIFJlbW92ZSB0aGUgUkZDMTAwMiBsZW5n dGggZGVmaW5lZCBpbiBNUy1TTUIyIHNlY3Rpb24gMi4xDQo+ID4gLSAgICAgICAgKiBJdCBpcyB1 c2VkIG9ubHkgZm9yIFRDUCB0cmFuc3BvcnQNCj4gPiArICAgICAgICAqIFNraXAgdGhlIFJGQzEw MDIgbGVuZ3RoIGRlZmluZWQgaW4gTVMtU01CMiBzZWN0aW9uIDIuMQ0KPiA+ICsgICAgICAgICog SXQgaXMgdXNlZCBvbmx5IGZvciBUQ1AgdHJhbnNwb3J0IGluIHRoZSBpb3ZbMF0NCj4gPiAgICAg ICAgICAqIEluIGZ1dHVyZSB3ZSBtYXkgd2FudCB0byBhZGQgYSB0cmFuc3BvcnQgbGF5ZXIgdW5k ZXIgcHJvdG9jb2wNCj4gPiAgICAgICAgICAqIGxheWVyIHNvIHRoaXMgd2lsbCBvbmx5IGJlIGlz c3VlZCB0byBUQ1AgdHJhbnNwb3J0DQo+ID4gICAgICAgICAgKi8NCj4gPiAtICAgICAgIGlvdlsw XS5pb3ZfYmFzZSA9IChjaGFyICopcnFzdC0+cnFfaW92WzBdLmlvdl9iYXNlICsgNDsNCj4gPiAt ICAgICAgIGlvdlswXS5pb3ZfbGVuID0gcnFzdC0+cnFfaW92WzBdLmlvdl9sZW4gLSA0Ow0KPiA+ IC0gICAgICAgYnVmbGVuICs9IGlvdlswXS5pb3ZfbGVuOw0KPiA+ICsNCj4gPiArICAgICAgIGlm IChycXN0LT5ycV9pb3ZbMF0uaW92X2xlbiAhPSA0KSB7DQo+ID4gKyAgICAgICAgICAgICAgIGxv Z193cml0ZShFUlIsICJleHBlY3RlZCB0aGUgcGR1IGxlbmd0aCBpbiAxc3QgaW92LCBidXQgZ290 DQo+IDB4JWx1XG4iLCBycXN0LT5ycV9pb3ZbMF0uaW92X2xlbik7DQo+ID4gKyAgICAgICAgICAg ICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsgICAgICAgaW92ID0gJnJx c3QtPnJxX2lvdlsxXTsNCj4gPg0KPiA+ICAgICAgICAgLyogdG90YWwgdXAgaW92IGFycmF5IGZp cnN0ICovDQo+ID4gLSAgICAgICBmb3IgKGkgPSAxOyBpIDwgcnFzdC0+cnFfbnZlYzsgaSsrKSB7 DQo+ID4gLSAgICAgICAgICAgICAgIGlvdltpXS5pb3ZfYmFzZSA9IHJxc3QtPnJxX2lvdltpXS5p b3ZfYmFzZTsNCj4gPiAtICAgICAgICAgICAgICAgaW92W2ldLmlvdl9sZW4gPSBycXN0LT5ycV9p b3ZbaV0uaW92X2xlbjsNCj4gPiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBycXN0LT5ycV9udmVj LTE7IGkrKykgew0KPiA+ICAgICAgICAgICAgICAgICBidWZsZW4gKz0gaW92W2ldLmlvdl9sZW47 DQo+ID4gICAgICAgICB9DQo+ID4NCj4gPiBAQCAtMjE5NywxNCArMjE4NSwxNCBAQCBpbnQgc21i ZF9zZW5kKHN0cnVjdCBzbWJkX2Nvbm5lY3Rpb24gKmluZm8sDQo+IHN0cnVjdCBzbWJfcnFzdCAq cnFzdCkNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnb3RvIGRvbmU7DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQo+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7DQo+ID4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAoaSA9PSBycXN0LT5ycV9udmVjKQ0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gcnFzdC0+cnFfbnZlYy0xKQ0KPiA+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiAgICAgICAgICAg ICAgICAgICAgICAgICB9DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBpOw0K PiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmxlbiA9IDA7DQo+ID4gICAgICAgICAgICAg ICAgIH0gZWxzZSB7DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgaSsrOw0KPiA+IC0gICAg ICAgICAgICAgICAgICAgICAgIGlmIChpID09IHJxc3QtPnJxX252ZWMpIHsNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICBpZiAoaSA9PSBycXN0LT5ycV9udmVjLTEpIHsNCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNlbmQgb3V0IGFsbCByZW1haW5pbmcgdmVjcyAq Lw0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nX2RhdGFfbGVu Z3RoIC09IGJ1ZmxlbjsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ193 cml0ZShJTkZPLA0KPiA+IC0tDQo+ID4gMi43LjQNCj4gPg0KPiA+IC0tDQo+ID4gVG8gdW5zdWJz Y3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4LWNp ZnMiDQo+ID4gaW4gdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5l bC5vcmcgTW9yZQ0KPiBtYWpvcmRvbW8NCj4gPiBpbmZvIGF0DQo+ID4NCj4gaHR0cHM6Ly9uYTAx LnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cCUzQSUyRiUyRnZnZXIu aw0KPiA+IGVybmVsLm9yZyUyRm1ham9yZG9tby0NCj4gaW5mby5odG1sJmRhdGE9MDIlN0MwMSU3 Q2xvbmdsaSU0MG1pY3Jvc29mdC5jb20lDQo+ID4NCj4gN0MyM2ZiZGJiMDU5OGE0OTdmNjI0NzA4 ZDVhOTJmNjQzNSU3QzcyZjk4OGJmODZmMTQxYWY5MWFiMmQ3Y2QwMTFkDQo+IGI0NyUNCj4gPg0K PiA3QzElN0MwJTdDNjM2NjAwOTQzMzgwODg3OTg4JnNkYXRhPWltaDljV0RRUUVYcXhIZFVyQ3VF eWtnaUxmS3MNCj4gVUFsMjBqQg0KPiA+IHlQT1M3RnJJJTNEJnJlc2VydmVkPTANCj4gDQo+IA0K PiANCj4gLS0NCj4gVGhhbmtzLA0KPiANCj4gU3RldmUNCj4gLS0NCj4gVG8gdW5zdWJzY3JpYmUg ZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUgInVuc3Vic2NyaWJlIGxpbnV4LWNpZnMiIGlu IHRoZQ0KPiBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnIE1v cmUgbWFqb3Jkb21vIGluZm8gYXQNCj4gaHR0cHM6Ly9uYTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9u Lm91dGxvb2suY29tLz91cmw9aHR0cCUzQSUyRiUyRnZnZXIua2UNCj4gcm5lbC5vcmclMkZtYWpv cmRvbW8tDQo+IGluZm8uaHRtbCZkYXRhPTAyJTdDMDElN0Nsb25nbGklNDBtaWNyb3NvZnQuY29t JTdDMjNmYmRiYjA1OThhNDk3Zg0KPiA2MjQ3MDhkNWE5MmY2NDM1JTdDNzJmOTg4YmY4NmYxNDFh ZjkxYWIyZDdjZDAxMWRiNDclN0MxJTdDMCU3QzYzDQo+IDY2MDA5NDMzODA4ODc5ODgmc2RhdGE9 aW1oOWNXRFFRRVhxeEhkVXJDdUV5a2dpTGZLc1VBbDIwakJ5UE9TN0YNCj4gckklM0QmcmVzZXJ2 ZWQ9MA0K