Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp5274017yba; Tue, 30 Apr 2019 11:57:40 -0700 (PDT) X-Google-Smtp-Source: APXvYqy5iEbPX6LjshHqgrFdVI7pC4/LZnK6M+XEyBO+2ajY3wcODY4vwIbK+jG9YO7LGpEYMDzr X-Received: by 2002:a62:2ad5:: with SMTP id q204mr71988834pfq.259.1556650660312; Tue, 30 Apr 2019 11:57:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556650660; cv=none; d=google.com; s=arc-20160816; b=MbEDa3Iw/eTyvxYg4xw5ru8HGr5Yau34hFfIi7Z1KKgtZlF32kP52RHA2liAipCH59 RYRFtpb5ZOzB/MxRTeaNT+LASAbvfl3PZVoPKhws9h0P+nC/rin4zlsjsOhmJQQu+8j/ GRDk9ESAUFNEGGc2XI3vG48/D6jM/oJF6eL7JhqJJSnwLwaNZjLGXnxLPK0xZ+mqk6Ri YJ32BMgOGgxfVSiLY2YRH7CLcygF8X3nAr+ZeTcgaVDXq0jZPfYG0oq29CqhelRw9Kc0 ZXMbEgQoa6NiEsR9i///cq00GV8q2CQymzzz8kAKcROq9aJuMKIUJ49VyuoxMUr21RWT xYsg== 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 :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature; bh=ZC8H6ZIzUteAhwwZfV1tZVU/in6q+ZwdY8dBE+ABPdI=; b=gMSsWWBEV6miNybbA4d5aDFt2gTZWPTcrFsrHoAt/cps1k7+4tsJ7NBoEYghi/FgIu B3Yt46oSH7+jsnyRoyfQswY/j7/swFXJMaM/a97sMy5OeV8Z9o4VJxQGzSxvQfntewTg oQCNLaoFpIoGwCMngFz0ijz7Eq1E5WVLUKJcOwoJdbMLej4DUhj2xmRv7QHx63worQQA btZWNUbOn+lg8w0crvYLtW5UnJqmVWlNNnJyB8+U7bMg/GXV6GiqbCp8kvSSphnireis t6zu6aOozYyPUAvVmiz/I6Knex6MMqj6dOLSSkvydFU7Z2Lzth2sWSGGOLoqJppx5HaJ 5x7g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector1 header.b=dDOjVG8E; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 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. [209.132.180.67]) by mx.google.com with ESMTP id k11si37113237pga.257.2019.04.30.11.57.19; Tue, 30 Apr 2019 11:57:40 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-nfs-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=@hammerspace.com header.s=selector1 header.b=dDOjVG8E; spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 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 S1726056AbfD3S4d (ORCPT + 99 others); Tue, 30 Apr 2019 14:56:33 -0400 Received: from mail-eopbgr750108.outbound.protection.outlook.com ([40.107.75.108]:13294 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726006AbfD3S4d (ORCPT ); Tue, 30 Apr 2019 14:56:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hammerspace.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZC8H6ZIzUteAhwwZfV1tZVU/in6q+ZwdY8dBE+ABPdI=; b=dDOjVG8Ei2jfdu7g40eSQwshgIAJm6cJFovVrN5fvI2nubezxBe3LBdMyyPUqtipXCL5Z596zFF/905ywYHuEojpLZWFN+RxixeAZkwARsjmFNK0Hj7DHq+oyrnZYAmWB5FCRFAefuHq8/1KrIomFqtj99W0qR/ymt3VMXz4DcM= Received: from SN6PR13MB2494.namprd13.prod.outlook.com (52.135.95.148) by SN6PR13MB2335.namprd13.prod.outlook.com (52.135.94.30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1856.7; Tue, 30 Apr 2019 18:56:24 +0000 Received: from SN6PR13MB2494.namprd13.prod.outlook.com ([fe80::396d:aed6:eeb4:2511]) by SN6PR13MB2494.namprd13.prod.outlook.com ([fe80::396d:aed6:eeb4:2511%7]) with mapi id 15.20.1856.008; Tue, 30 Apr 2019 18:56:24 +0000 From: Trond Myklebust To: "smayhew@redhat.com" CC: "linux-nfs@vger.kernel.org" Subject: Re: Question about open(CLAIM_FH) Thread-Topic: Question about open(CLAIM_FH) Thread-Index: AQHU9evf84hrBN7rMkSy4LhuOmeSbqZB/O+AgABmGwCAAA0/gIASrUkAgAADZAA= Date: Tue, 30 Apr 2019 18:56:24 +0000 Message-ID: <20aeeb5c8467fecf9c8fa5265dbe604623a0650b.camel@hammerspace.com> References: <20190418133728.GS3773@coeurl.usersys.redhat.com> <213d4ead8a7ae890dadc7785d59117e798f94748.camel@hammerspace.com> <20190418204356.GA15226@coeurl.usersys.redhat.com> <4751d341a626cf26e60e0b8c3564171c115c1335.camel@hammerspace.com> <20190430184414.GE15226@coeurl.usersys.redhat.com> In-Reply-To: <20190430184414.GE15226@coeurl.usersys.redhat.com> Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=trondmy@hammerspace.com; x-originating-ip: [173.228.226.134] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1df844d1-0df7-4a47-cfa5-08d6cd9d8ae4 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020);SRVR:SN6PR13MB2335; x-ms-traffictypediagnostic: SN6PR13MB2335: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-forefront-prvs: 00235A1EEF x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(366004)(346002)(396003)(376002)(39830400003)(136003)(199004)(189003)(71190400001)(71200400001)(446003)(316002)(6246003)(66946007)(64756008)(8936002)(2351001)(66476007)(66556008)(102836004)(118296001)(6436002)(6506007)(66446008)(5640700003)(305945005)(36756003)(2616005)(7736002)(86362001)(53936002)(76176011)(4326008)(486006)(73956011)(76116006)(6512007)(3846002)(6116002)(91956017)(99286004)(6486002)(25786009)(68736007)(478600001)(2906002)(2501003)(26005)(8676002)(81156014)(1730700003)(5660300002)(81166006)(11346002)(476003)(93886005)(66066001)(6916009)(14454004)(97736004)(186003)(256004)(229853002)(14444005);DIR:OUT;SFP:1102;SCL:1;SRVR:SN6PR13MB2335;H:SN6PR13MB2494.namprd13.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: hammerspace.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: VIXIe7JlvxxvKfNLKwssn6JzwLeOMtCn4Bjan9m2p9rmjQxq4HeY0Afupo6uGa2t8yAK2idKRlWWRWDWHxuXxg+8zDOfbgolUKxYRfFd0ZowSCONrL9fJZkrlJVgY5C5ASc3gu1mXzg6znDlBkJ4fwbvYCkHzc+HPzAXMcAfqF61P8j6vDIInlOCvc6iyuqtUNE3bao8qUXsmn+xRoZlKywIZ/TAlvQWKWWbn79LFpVUiLWRcNRLr4KJeyaIIkvxWQt7O1WZbrCa57SN4LvcHU52AQ69XgqxIFvn1GrmHLcy30bAVYej2DONc9rRBSAEIsXeyFsE64VTGPJ4ba+iGcgFgDB/7NP01oxSuAL/HSChABn+RXE9YYjxT+liDNFe1jp7q99fc8S7TVvkSrI/1fD1TzXgfEnwIbCiSk3IhLI= Content-Type: text/plain; charset="utf-8" Content-ID: <4DA4497C795FD945B5503367E0243020@namprd13.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: hammerspace.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1df844d1-0df7-4a47-cfa5-08d6cd9d8ae4 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Apr 2019 18:56:24.1975 (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-Transport-CrossTenantHeadersStamped: SN6PR13MB2335 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T24gVHVlLCAyMDE5LTA0LTMwIGF0IDE0OjQ0IC0wNDAwLCBTY290dCBNYXloZXcgd3JvdGU6DQo+ IE9uIFRodSwgMTggQXByIDIwMTksIFRyb25kIE15a2xlYnVzdCB3cm90ZToNCj4gDQo+ID4gT24g VGh1LCAyMDE5LTA0LTE4IGF0IDE2OjQzIC0wNDAwLCBTY290dCBNYXloZXcgd3JvdGU6DQo+ID4g PiBPbiBUaHUsIDE4IEFwciAyMDE5LCBUcm9uZCBNeWtsZWJ1c3Qgd3JvdGU6DQo+ID4gPiANCj4g PiA+ID4gSGkgU2NvdHQsDQo+ID4gPiA+IA0KPiA+ID4gPiBPbiBUaHUsIDIwMTktMDQtMTggYXQg MDk6MzcgLTA0MDAsIFNjb3R0IE1heWhldyB3cm90ZToNCj4gPiA+ID4gPiBXaGVuIHRoZSBjbGll bnQgZG9lcyBhbiBvcGVuKENMQUlNX0ZIKSBhbmQgdGhlIHNlcnZlciBhbHJlYWR5DQo+ID4gPiA+ ID4gaGFzDQo+ID4gPiA+ID4gb3Blbg0KPiA+ID4gPiA+IHN0YXRlIGZvciB0aGF0IG9wZW4gb3du ZXIgYW5kIGZpbGUsIHdoYXQncyBzdXBwb3NlZCB0bw0KPiA+ID4gPiA+IGhhcHBlbj8NCj4gPiA+ ID4gPiBDdXJyZW50bHkgdGhlIHNlcnZlciByZXR1cm5zIHRoZSBleGlzdGluZyBzdGF0ZWlkIHdp dGggdGhlDQo+ID4gPiA+ID4gc2VxaWQNCj4gPiA+ID4gPiBidW1wZWQsDQo+ID4gPiA+ID4gYnV0 IGl0IGxvb2tzIGxpa2UgdGhlIGNsaWVudCBpcyBleHBlY3RpbmcgYSBuZXcgc3RhdGVpZCAoSSdt DQo+ID4gPiA+ID4gc2VlaW5nDQo+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gc3RhdGUgbWFuYWdl ciBzcGVuZGluZyBhIGxvdCBvZiB0aW1lIHdhaXRpbmcgaW4NCj4gPiA+ID4gPiBuZnNfc2V0X29w ZW5fc3RhdGVpZF9sb2NrZWQoKSBkdWUgdG8gTkZTX1NUQVRFX0NIQU5HRV9XQUlUDQo+ID4gPiA+ ID4gYmVpbmcNCj4gPiA+ID4gPiBzZXQNCj4gPiA+ID4gPiBpbg0KPiA+ID4gPiA+IHRoZSBzdGF0 ZSBmbGFncyBieSBuZnNfbmVlZF91cGRhdGVfb3Blbl9zdGF0ZWlkKCkpLg0KPiA+ID4gPiA+IA0K PiA+ID4gPiA+IExvb2tpbmcgYXQgcmZjNTY2MSBzZWN0aW9uIDE4LjE2LjMsIEkgc2VlOg0KPiA+ ID4gPiA+IA0KPiA+ID4gPiA+ICAgIHwgQ0xBSU1fTlVMTCwgQ0xBSU1fRkggfCBGb3IgdGhlIGNs aWVudCwgdGhpcyBpcyBhIG5ldw0KPiA+ID4gPiA+IE9QRU4NCj4gPiA+ID4gPiByZXF1ZXN0IHwN Cj4gPiA+ID4gPiAgICB8ICAgICAgICAgICAgICAgICAgICAgIHwgYW5kIHRoZXJlIGlzIG5vIHBy ZXZpb3VzIHN0YXRlDQo+ID4gPiA+ID4gYXNzb2NpYXRlZCAgfA0KPiA+ID4gPiA+ICAgIHwgICAg ICAgICAgICAgICAgICAgICAgfCB3aXRoIHRoZSBmaWxlIGZvciB0aGUNCj4gPiA+ID4gPiBjbGll bnQuICBXaXRoICAgICAgICB8DQo+ID4gPiA+ID4gICAgfCAgICAgICAgICAgICAgICAgICAgICB8 IENMQUlNX05VTEwsIHRoZSBmaWxlIGlzDQo+ID4gPiA+ID4gaWRlbnRpZmllZCBieQ0KPiA+ID4g PiA+IHRoZSAgfA0KPiA+ID4gPiA+ICAgIHwgICAgICAgICAgICAgICAgICAgICAgfCBjdXJyZW50 IGZpbGVoYW5kbGUgYW5kIHRoZQ0KPiA+ID4gPiA+IHNwZWNpZmllZCAgICAgICB8DQo+ID4gPiA+ ID4gICAgfCAgICAgICAgICAgICAgICAgICAgICB8IGNvbXBvbmVudCBuYW1lLiAgV2l0aCBDTEFJ TV9GSA0KPiA+ID4gPiA+IChuZXcNCj4gPiA+ID4gPiB0byAgICAgfA0KPiA+ID4gPiA+ICAgIHwg ICAgICAgICAgICAgICAgICAgICAgfCBORlN2NC4xKSwgdGhlIGZpbGUgaXMgaWRlbnRpZmllZA0K PiA+ID4gPiA+IGJ5DQo+ID4gPiA+ID4ganVzdCAgIHwNCj4gPiA+ID4gPiAgICB8ICAgICAgICAg ICAgICAgICAgICAgIHwgdGhlIGN1cnJlbnQgZmlsZWhhbmRsZS4gIA0KPiA+ID4gPiA+IA0KPiA+ ID4gPiA+IFNvIGl0IHNlZW1zIGxpa2UgbWF5YmUgdGhlIHNlcnZlciBzaG91bGQgYmUgdG9zc2lu ZyB0aGUgb2xkDQo+ID4gPiA+ID4gc3RhdGUNCj4gPiA+ID4gPiBhbmQNCj4gPiA+ID4gPiByZXR1 cm5pbmcgYSBuZXcgc3RhdGVpZD8NCj4gPiA+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+IE5vLiBB cyBmYXIgYXMgdGhlIHByb3RvY29sIGlzIGNvbmNlcm5lZCwgdGhlIG9ubHkgZGlmZmVyZW5jZQ0K PiA+ID4gPiBiZXR3ZWVuDQo+ID4gPiA+IENMQUlNX05VTEwgYW5kIENMQUlNX0ZIIGlzIHRocm91 Z2ggaG93IHRoZSBjbGllbnQgaWRlbnRpZmllcw0KPiA+ID4gPiB0aGUNCj4gPiA+ID4gZmlsZQ0K PiA+ID4gPiAoaW4gdGhlIGZpcnN0IGNhc2UsIHRocm91Z2ggYW4gaW1wbGljaXQgbG9va3VwLCBh bmQgaW4gdGhlDQo+ID4gPiA+IHNlY29uZA0KPiA+ID4gPiBjYXNlDQo+ID4gPiA+IHRocm91Z2gg YSBmaWxlIGhhbmRsZSkuIFRoZSBjbGllbnQgc2hvdWxkIGJlIGZyZWUgdG8gaW50ZXJtaXgNCj4g PiA+ID4gdGhlDQo+ID4gPiA+IHR3bw0KPiA+ID4gPiB0eXBlcyBvZiBPUEVOLCBhbmQgaXQgc2hv dWxkIGV4cGVjdCB0aGUgcmVzdWx0aW5nIHN0YXRlaWRzIHRvDQo+ID4gPiA+IGRlcGVuZA0KPiA+ ID4gPiBvbmx5IG9uIHdoZXRoZXIgb3Igbm90IHRoZSBvcGVuX293bmVyIG1hdGNoZXMuIElmIHRo ZQ0KPiA+ID4gPiBvcGVuX293bmVyDQo+ID4gPiA+IG1hdGNoZXMgYW4gZXhpc3Rpbmcgc3RhdGVp ZCwgdGhlbiB0aGF0IHN0YXRlaWQgaXMgYnVtcGVkIGFuZA0KPiA+ID4gPiByZXR1cm5lZC4NCj4g PiA+ID4gDQo+ID4gPiA+IEknbSBub3QgYXdhcmUgb2YgYW55IGV4cGVjdGF0aW9uIGluIHRoZSBj bGllbnQgdGhhdCB0aGlzIHNob3VsZA0KPiA+ID4gPiBub3QNCj4gPiA+ID4gYmUNCj4gPiA+ID4g dGhlIGNhc2UsIHNvIGlmIHlvdSBhcmUgc2VlaW5nIGRpZmZlcmVudCBiZWhhdmlvdXIsIHRoZW4N Cj4gPiA+ID4gc29tZXRoaW5nDQo+ID4gPiA+IGVsc2UNCj4gPiA+ID4gbXVzdCBiZSBhdCB3b3Jr IGhlcmUuIElzIHRoZSBjbGllbnQgcGVyaGFwcyBtb3VudGluZyB0aGUgc2FtZQ0KPiA+ID4gPiBm aWxlc3lzdGVtIGluIHR3byBkaWZmZXJlbnQgcGxhY2VzIGluIHN1Y2ggYSB3YXkgdGhhdCB0aGUg c3VwZXINCj4gPiA+ID4gYmxvY2sNCj4gPiA+ID4gaXMgbm90IGJlaW5nIHNoYXJlZD8NCj4gPiA+ IA0KPiA+ID4gTm8sIGl0J3MganVzdCBhIHNpbmdsZSA0LjEgbW91bnQgdy8gdGhlIGRlZmF1bHQg bW91bnQgb3B0aW9ucy4NCj4gPiA+IA0KPiA+ID4gRm9yIGEgYml0IG9mIGJhY2tncm91bmQsIEkn dmUgYmVlbiB0cnlpbmcgdG8gdHJhY2sgZG93biBhIHByb2JsZW0NCj4gPiA+IGluDQo+ID4gPiBS SEVMIHdoZXJlIHRoZSBTRVE0X1NUQVRVU19SRUNBTExBQkxFX1NUQVRFX1JFVk9LRUQgZmxhZ3Mg aXMNCj4gPiA+IGdldHRpbmcNCj4gPiA+IHBlcm1hbmVudGx5IHNldCBiZWNhdXNlIHRoZSBuZnM0 X2NsaWVudC0+Y2xfcmV2b2tlZCBsaXN0IG9uIHRoZQ0KPiA+ID4gc2VydmVyDQo+ID4gPiBpcyBu b24tZW1wdHkuLi4geWV0IHRoZXJlJ3Mgbm8gbG9uZ2VyIG9wZW4gc3RhdGUgb24gdGhlIGNsaWVu dC4gDQo+ID4gPiANCj4gPiA+IEkgY2FuIHJlcHJvZHVjZSBpdCBwcmV0dHkgZWFzaWx5IGluIFJI RUwgdXNpbmcgMiBWTXMsIGVhY2ggd2l0aA0KPiA+ID4gMi00DQo+ID4gPiBDUFVzDQo+ID4gPiBh bmQgNC04RyBvZiBtZW1vcnkuICBUaGUgc2VydmVyIGhhcyA2NCBuZnNkIHRocmVhZHMgYW5kIGEg MTUNCj4gPiA+IHNlY29uZA0KPiA+ID4gbGVhc2UgdGltZS4NCj4gPiA+IA0KPiA+ID4gT24gdGhl IGNsaWVudCBJJ20gcnVubmluZyB0aGUgZm9sbG93aW5nIHRvIGFkZCBhIDEwbXMgZGVsYXkgdG8N Cj4gPiA+IENCX1JFQ0FMTA0KPiA+ID4gcmVwbGllczoNCj4gPiA+ICMgc3RhcCAtZ3ZlICdnbG9i YWwgY291bnQgPSAwOyBwcm9iZQ0KPiA+ID4gbW9kdWxlKCJuZnN2NCIpLmZ1bmN0aW9uKCJuZnM0 X2NhbGxiYWNrX3JlY2FsbCIpIHsgcHJpbnRmKCIlczoNCj4gPiA+ICVkXG4iLA0KPiA+ID4gcHBm dW5jKCksICsrY291bnQpOyBtZGVsYXkoMTApOyB9Jw0KPiA+ID4gDQo+ID4gPiB0aGVuIGluIGFu b3RoZXIgd2luZG93IEkgb3BlbiBhIGJ1bmNoIG9mIGZpbGVzOg0KPiA+ID4gIyBmb3IgaSBpbiBg c2VxIC13IDEgNTAwMGA7IGRvIHNsZWVwIDJtIDwvbW50L3QvZGlyMS9maWxlLiRpICYNCj4gPiA+ IGRvbmUNCj4gPiA+IA0KPiA+ID4gKE5vdGU6IEkgYWxyZWFkeSBjcmVhdGVkIHRoZSBmaWxlcyBh aGVhZCBvZiB0aW1lKQ0KPiA+ID4gDQo+ID4gPiBBcyBzb29uIGFzIHRoZSBiYXNoIHByb21wdCBy ZXR1cm5zIG9uIHRoZSBjbGllbnQsIEkgcnVuIHRoZQ0KPiA+ID4gZm9sbG93aW5nDQo+ID4gPiBv bg0KPiA+ID4gdGhlIHNlcnZlcjoNCj4gPiA+ICMgZm9yIGkgaW4gYHNlcSAtdyAxIDUwMDBgOyBk byBkYXRlID4vZXhwb3J0L2RpcjEvZmlsZS4kaSAmIGRvbmUNCj4gPiA+IA0KPiA+ID4gQXQgdGhh dCBwb2ludCwgYW55IGZ1cnRoZXIgU0VRVUVOQ0Ugb3BzIHdpbGwgaGF2ZSB0aGUgcmVjYWxsYWJs ZQ0KPiA+ID4gc3RhdGUNCj4gPiA+IHJldm9rZWQgZmxhZyBzZXQgb24gdGhlIGNsaWVudCB1bnRp bCB0aGUgZnMgaXMgdW5tb3VudGVkLg0KPiA+ID4gDQo+ID4gPiBJZiBJIHJ1biB0aGUgc2FtZSBz dGVwcyBvbiBGZWRvcmEgY2xpZW50cyB3aXRoIHJlY2VudCBrZXJuZWxzLCBJDQo+ID4gPiBkb24n dA0KPiA+ID4gaGF2ZSB0aGUgcHJvYmxlbSB3aXRoIHRoZSByZWNhbGxhYmxlIHN0YXRlIHJldm9r ZWQgZmxhZywgYnV0IEknbQ0KPiA+ID4gZ2V0dGluZw0KPiA+ID4gc29tZSBvdGhlciBzdHJhbmdl bmVzcy4gIEV2ZXJ5dGhpbmcgc3RhcnRzIG91dCBmaW5lIHdpdGgNCj4gPiA+IG5mc19yZWFwX2V4 cGlyZWRfZGVsZWdhdGlvbnMoKSBkb2luZyBURVNUX1NUQVRFSUQgYW5kDQo+ID4gPiBGUkVFX1NU QVRFSUQsDQo+ID4gPiBidXQNCj4gPiA+IG9uY2UgdGhlIHN0YXRlIG1hbmFnZXIgc3RhcnRzIGNh bGxpbmdzIG5mczQxX29wZW5fZXhwaXJlZCgpLA0KPiA+ID4gdGhpbmdzDQo+ID4gPiBzb3J0DQo+ ID4gPiBvZiBncmluZCB0byBhIGhhbHQgYW5kIEkgc2VlIDEgT1BFTiBhbmQgMSBvciAyIFRFU1Rf U1RBVEVJRCBvcHMNCj4gPiA+IGV2ZXJ5DQo+ID4gPiA1DQo+ID4gPiBzZWNvbmRzIGluIHdpcmVz aGFyay4gIEl0IHN0YXlzIHRoYXQgd2F5IHVudGlsIHRoZSBmaWxlcyBhcmUNCj4gPiA+IGNsb3Nl ZA0KPiA+ID4gb24NCj4gPiA+IHRoZSBjbGllbnQsIHdoZW4gSSBzZWUgYSBzbGV3IG9mIERFTEVH UkVUVVJOcyBhbmQNCj4gPiA+IEZSRUVfU1RBVEVJRHMuLi4NCj4gPiA+IGJ1dA0KPiA+ID4gSSdt IG9ubHkgc2VlaW5nIDMgb3IgNCBDTE9TRSBvcHMuICBJZiBJIHBva2UgYXJvdW5kIGluIGNyYXNo IG9uDQo+ID4gPiB0aGUNCj4gPiA+IHNlcnZlciwgSSBzZWUgYSB0b24gb2Ygb3BlbiBzdGF0ZWlk czoNCj4gPiA+IA0KPiA+ID4gY3Jhc2g+IGVweXRob24gZnMvbmZzZC9wcmludC1jbGllbnQtc3Rh dGUtaW5mby5weQ0KPiA+ID4gbmZzZF9uZXQgPSAweGZmZmY5M2U0NzM1MTEwMDANCj4gPiA+ICAg ICAgICAgbmZzNF9jbGllbnQgPSAweGZmZmY5M2UzZjc5NTQ5ODANCj4gPiA+ICAgICAgICAgICAg ICAgICBuZnM0X3N0YXRlb3duZXIgPSAweGZmZmY5M2U0MDU4Y2MzNjAgbnVtX3N0YXRlaWRzDQo+ ID4gPiA9DQo+ID4gPiA0OTk3IDwtLS0tIG9ubHkgMyBDTE9TRSBvcHMgd2VyZSByZWNlaXZlZA0K PiA+ID4gICAgICAgICAgICAgICAgIG51bV9vcGVub3duZXJzID0gMQ0KPiA+ID4gICAgICAgICAg ICAgICAgIG51bV9sYXlvdXRzID0gMA0KPiA+ID4gICAgICAgICAgICAgICAgIG51bV9kZWxlZ2F0 aW9ucyA9IDANCj4gPiA+ICAgICAgICAgICAgICAgICBudW1fc2Vzc2lvbnMgPSAxDQo+ID4gPiAg ICAgICAgICAgICAgICAgbnVtX2NvcGllcyA9IDANCj4gPiA+ICAgICAgICAgICAgICAgICBudW1f cmV2b2tlZCA9IDANCj4gPiA+ICAgICAgICAgICAgICAgICBjbF9jYl93YWl0cV9xbGVuID0gMA0K PiA+ID4gDQo+ID4gPiBUaG9zZSBzdGF0ZWlkcyBzdGljayBhcm91bmQgdW50aWwgdGhlIGZzIGlz IHVubW91bnRlZCAoYW5kIHRoZQ0KPiA+ID4gREVTVFJPWV9TVEFURUlEIG9wcyByZXR1cm4gTkZT NEVSUl9DTElFTlRJRF9CVVNZIHdoaWxlIGRvaW5nIHNvKS4NCj4gPiA+IA0KPiA+ID4gQm90aCBW TXMgYXJlIHJ1bm5pbmcgNS4wLjYtMjAwLmZjMjkueDg2XzY0LCBidXQgdGhlIHNlcnZlciBhbHNv DQo+ID4gPiBoYXMNCj4gPiA+IHRoZQ0KPiA+ID4gIm5mc2Q6IERvbid0IHJlbGVhc2UgdGhlIGNh bGxiYWNrIHNsb3QgdW5sZXNzIGl0IHdhcyBhY3R1YWxseQ0KPiA+ID4gaGVsZCINCj4gPiA+IHBh dGNoIHlvdSBzZW50IGEgZmV3IHdlZWtzIGFnbyBhcyB3ZWxsIGFzIHRoZSAibmZzZDogQ0JfUkVD QUxMDQo+ID4gPiBjYW4NCj4gPiA+IHJhY2UNCj4gPiA+IHdpdGggRlJFRV9TVEFURUlEIiBwYXRj aCBJIHNlbnQgdG9kYXkuDQo+ID4gDQo+ID4gQXJlIHRoZSBjYWxscyB0byBuZnM0MV9vcGVuX2V4 cGlyZWQoKSBzdWNjZWVkaW5nPyBJdCBzb3VuZHMgbGlrZQ0KPiA+IHRoZXkNCj4gPiBtaWdodCBu b3QgYmUuDQo+IA0KPiBUaGV5J3JlIHN1Y2NlZWRpbmcsIHRoZXkncmUganVzdCB0YWtpbmcgNSBz ZWNvbmRzIGVhY2guIA0KPiANCj4gVG8gbWFrZSBtYXR0ZXJzIHdvcnNlLCBkdWUgdG8gdGhlIGFn Z3Jlc3NpdmUgbGVhc2UgdGltZSBvbiB0aGUNCj4gc2VydmVyLA0KPiB0aGUgY2xpZW50IHdhcyBk b2luZyBhIFNFUVVFTkNFIG9wIHBlcmlvZGljYWxseSB3aGlsZSB0aGUgT1BFTnMgd2VyZQ0KPiBv Y2N1cnJpbmcuICBUaGUgU0VRVUVOQ0UgcmVwbGllcyBhbHNvIGhhZCB0aGUNCj4gUkVDQUxMQUJM RV9TVEFURV9SRVZPS0VEDQo+IGZsYWcgc2V0LCBhbmQgc2luY2UgdGhleSB3ZXJlbid0IGNvbWlu ZyBmcm9tIHRoZSBzdGF0ZSBtYW5hZ2VyIHRoZQ0KPiBuZnM0X3Nsb3QtPnByaXZpbGVnZWQgZmll bGQgd2FzIHVuc2V0LCBzbyB3ZSdkIHdpbmQgdXAgY2FsbGluZw0KPiBuZnM0MV9oYW5kbGVfcmVj YWxsYWJsZV9zdGF0ZV9yZXZva2VkKCkgYWdhaW4sIHVuZG9pbmcgd2hhdCBsaXR0bGUNCj4gcHJv Z3Jlc3Mgd2FzIG1hZGUuICBCdW1waW5nIHRoZSBsZWFzZSB0aW1lIHRvIDIwIHNlY29uZHMgbWFk ZSB0aGF0IGdvDQo+IGF3YXksIGJ1dCB0aGUgb3ZlcmFsbCBwcm9ibGVtIGlzIHN0aWxsIHRoZXJl Lg0KPiANCj4gSXMgaXQgcmVhbGx5IG5lY2Vzc2FyeSBmb3IgbmZzNDFfaGFuZGxlX3JlY2FsbGFi bGVfc3RhdGVfcmV2b2tlZCgpIHRvDQo+IG1hcmsgYWxsIG9wZW4gc3RhdGUgYXMgbmVlZGluZyBy ZWNvdmVyeT8gIEFmdGVyIGFsbCwgdGhlIG9ubHkgc3RhdGUNCj4gdGhhdA0KPiBjYW4gYmUgcmV2 b2tlZCBhcmUgbGF5b3V0cyBhbmQgZGVsZWdhdGlvbnMuICBJZiBJIGNoYW5nZQ0KPiBuZnM0MV9o YW5kbGVfcmVjYWxsYWJsZV9zdGF0ZV9yZXZva2VkKCksIHNvIHRoYXQgaW5zdGVhZCBvZiBjYWxs aW5nDQo+IG5mczQxX2hhbmRsZV9zb21lX3N0YXRlX3Jldm9rZWQoKSB3ZSBpbnN0ZWFkIGNhbGwN Cj4gbmZzX21hcmtfdGVzdF9leHBpcmVkX2FsbF9kZWxlZ2F0aW9ucygpIGFuZA0KPiBuZnM0X3Nj aGVkdWxlX3N0YXRlX21hbmFnZXIoKSwgdGhlbiB0aGUgcHJvYmxlbSBzZWVtcyB0byBnbyBhd2F5 Lg0KDQpUaGF0IHdvdWxkIGJlIE9LIHdpdGggbWUuIFRoYXQgY29kZSBwcm9iYWJseSBwcmUtZGF0 ZXMgdGhlIGV4aXN0ZW5jZSBvZg0KbmZzX21hcmtfdGVzdF9leHBpcmVkX2FsbF9kZWxlZ2F0aW9u cygpLg0KDQotLSANClRyb25kIE15a2xlYnVzdA0KTGludXggTkZTIGNsaWVudCBtYWludGFpbmVy LCBIYW1tZXJzcGFjZQ0KdHJvbmQubXlrbGVidXN0QGhhbW1lcnNwYWNlLmNvbQ0KDQoNCg==