Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp3420653imm; Mon, 4 Jun 2018 03:23:33 -0700 (PDT) X-Google-Smtp-Source: ADUXVKI3Uqr9SOwivHEaEx7qeS8UAXW90Mo8yQ2+x+RAQ0Y4TjPE1zbndhDU9sginKT1lRIvyt/b X-Received: by 2002:a17:902:4c88:: with SMTP id b8-v6mr20963661ple.285.1528107813180; Mon, 04 Jun 2018 03:23:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528107813; cv=none; d=google.com; s=arc-20160816; b=qyHRQgkfBnh/GHHQO3GsF1znq4xiAuV+URkDKyOkyMMrW+vn1bidAd0u1oq1OCciC2 8UwpXk/EbWEDsBXZknC4kTPKfOT+oKdp0ru1/aryVTLUN675OyNg1i+1jZnQw4noMhOw pye+xLm9E9GD3NAnZrSzzYEQFtahhxKIleBUFQ17GiLfk0aYEIjdoBivYFWE4lSz853O uODUFPhE/JDauRQa+1+IWd1PVJI4gIjZwA0WbR5cO6xMaRNOxk0lpOnCohZfXwetMfGr TL8+eIbPdrDVOeXkMwqZdPgOUy738yjmSF3vAvNLxiQknCbH6VY5jRRsIdftp4LK4Bbi xBig== 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: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=K//HmQTarXtisa79C3STQUtJ0oG0F2e36y1E8uKNWWI=; b=kXXgYlezHThXLzr9qgAOo3d09LrxUYgOAGZ+/nc0ePMR7NR5QfMtelgsjz2hAGbdq/ J3hZz2tVK+r+rPQnZqeJ37gyJf10Mq+RYD0GETkCE4KcT0lGSZdoCuwiGpCqoLiIIIZp 16uPFHST3cnIABlPLg0nHcFwTdWQPHTAFpY7I9mEHoG+Oreywm61nvcyLdNx43j8/JJY 3R+xfweO9IkkrtERdvGKqJmTij1jn9MIaBiHpDGjWB37AkeYqokr4WinRkbatiYZBO7v YSLchbeeHxfu5D4IFPVeifPOfd3hoqMap+oxzMY/Kj7sjjd0In7FMrWRy/tCv/alDEGk X/aw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cnexlabs.onmicrosoft.com header.s=selector1-cnexlabs-com header.b=C6OMtrgT; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n10-v6si36345431pgp.457.2018.06.04.03.23.18; Mon, 04 Jun 2018 03:23:33 -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=@cnexlabs.onmicrosoft.com header.s=selector1-cnexlabs-com header.b=C6OMtrgT; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752071AbeFDKVl (ORCPT + 99 others); Mon, 4 Jun 2018 06:21:41 -0400 Received: from mail-cys01nam02on0063.outbound.protection.outlook.com ([104.47.37.63]:6278 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750868AbeFDKVj (ORCPT ); Mon, 4 Jun 2018 06:21:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cnexlabs.onmicrosoft.com; s=selector1-cnexlabs-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K//HmQTarXtisa79C3STQUtJ0oG0F2e36y1E8uKNWWI=; b=C6OMtrgTmwuhVgXKh1zRAULnASzYc2ojfbmc+qQyW7ZrmyqjAum3z58ScXzGvhJik6Zp/5/ZR7HjvZiOTjj3uS+AydmcuexhFE8L8CnlM6fYn+VgMLtdnLnO5Z9FOSBIhUVQaiSLoCvD/vDp47+dVfAgLoKzQSLDYnbJKSzKMlQ= Received: from CO2PR06MB538.namprd06.prod.outlook.com (10.141.199.23) by CO2PR06MB572.namprd06.prod.outlook.com (10.141.230.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.820.13; Mon, 4 Jun 2018 10:21:35 +0000 Received: from CO2PR06MB538.namprd06.prod.outlook.com ([fe80::592c:a66:2681:242d]) by CO2PR06MB538.namprd06.prod.outlook.com ([fe80::592c:a66:2681:242d%16]) with mapi id 15.20.0820.015; Mon, 4 Jun 2018 10:21:35 +0000 From: Javier Gonzalez To: "Dziegielewski, Marcin" CC: =?utf-8?B?TWF0aWFzIEJqw7hybGluZw==?= , Jens Axboe , "linux-block@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "Konopko, Igor J" Subject: Re: [GIT PULL 18/20] lightnvm: pblk: handle case when mw_cunits equals to 0 Thread-Topic: [GIT PULL 18/20] lightnvm: pblk: handle case when mw_cunits equals to 0 Thread-Index: AQHT9nNowv/ltW4OykevBDGzU2j6naRP61UAgAADYQA= Date: Mon, 4 Jun 2018 10:21:34 +0000 Message-ID: <3B216FC2-D5EB-4A36-8946-27307DA3D1B1@cnexlabs.com> References: <20180528085841.26684-1-mb@lightnvm.io> <20180528085841.26684-19-mb@lightnvm.io> <54B2CCDB-B869-4087-8AE2-2AC73381B1FF@cnexlabs.com> <9FC4315EA6BEAA449828D92CF173A10D3E382351@IRSMSX109.ger.corp.intel.com> In-Reply-To: <9FC4315EA6BEAA449828D92CF173A10D3E382351@IRSMSX109.ger.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [193.106.164.211] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;CO2PR06MB572;7:sF0CEe9M1/nC9TNlQArQ1wkgIWGYhkyaBX6Yjmq9AV1d4S4TqYkRAku3IMiV0PWFjMPAIkotDVJEfaGXlTDHTAkxNSjP9X4OdCUFflDT342JUhU1/22FIrEXZ/t8rCDTqolE9wicO6iyu8RmNRKuFea9Tb6DP0lziLxn8mBMs1wjqeuqJGMbVwXM7Z/42GHZi6PyZcgVDepsIV8VJD2bjrpYxHOH9kUi2dSLUCcYtVxk/2CQlpSsh6fyTnbLjQ3I x-ms-exchange-antispam-srfa-diagnostics: SOS; x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);SRVR:CO2PR06MB572; x-ms-traffictypediagnostic: CO2PR06MB572: authentication-results: spf=none (sender IP is ) smtp.mailfrom=javier@cnexlabs.com; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(9452136761055)(67672495146484)(228905959029699); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(3231254)(944501410)(52105095)(149027)(150027)(6041310)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(6072148)(201708071742011)(7699016);SRVR:CO2PR06MB572;BCL:0;PCL:0;RULEID:;SRVR:CO2PR06MB572; x-forefront-prvs: 069373DFB6 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(39380400002)(346002)(39830400003)(396003)(376002)(366004)(189003)(199004)(68736007)(81156014)(476003)(81166006)(2906002)(6916009)(6436002)(99286004)(2900100001)(5660300001)(6486002)(486006)(102836004)(33656002)(186003)(316002)(2616005)(26005)(446003)(6506007)(229853002)(5250100002)(53546011)(54906003)(8936002)(3280700002)(93886005)(53936002)(82746002)(6512007)(76176011)(25786009)(106356001)(478600001)(3660700001)(7736002)(305945005)(8676002)(11346002)(36756003)(3846002)(97736004)(83716003)(6116002)(66066001)(6246003)(105586002)(86362001)(4326008)(14454004)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:CO2PR06MB572;H:CO2PR06MB538.namprd06.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: cnexlabs.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: L3TyMarZDI40Pefanl48ATVWXG10+x1bLbw2VdH4pIjDtlDbvx4fNJdgp+h+NbxSF+amkwNlzUirdzEYaMUsUcCzmxi7XE858aN2YPimfJ3kcVUEcVookZ80GpKErnGdHOKFiX745yzquAQV3o7dpMVXWLtGRGWavpp+hAX0ceeWQlxIWZhV5yU5rQFNV+Qq spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 038c8fec-6a3b-452e-68e8-08d5ca04f34a X-OriginatorOrg: cnexlabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 038c8fec-6a3b-452e-68e8-08d5ca04f34a X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jun 2018 10:21:35.0088 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: e40dfc2e-c6c1-463a-a598-38602b2c3cff X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR06MB572 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiBPbiA0IEp1biAyMDE4LCBhdCAxMi4wOSwgRHppZWdpZWxld3NraSwgTWFyY2luIDxtYXJjaW4u ZHppZWdpZWxld3NraUBpbnRlbC5jb20+IHdyb3RlOg0KPiANCj4gDQo+IEZyaXN0IG9mIGFsbCBJ IHdhbnQgdG8gc2F5IHNvcnJ5IGZvciBsYXRlIHJlc3BvbnNlIC0gSSB3YXMgb24gaG9saWRheS4N Cj4gDQo+PiBGcm9tOiBKYXZpZXIgR29uemFsZXogW21haWx0bzpqYXZpZXJAY25leGxhYnMuY29t XQ0KPj4gU2VudDogTW9uZGF5LCBNYXkgMjgsIDIwMTggMTowMyBQTQ0KPj4gVG86IE1hdGlhcyBC asO4cmxpbmcgPG1iQGxpZ2h0bnZtLmlvPg0KPj4gQ2M6IEplbnMgQXhib2UgPGF4Ym9lQGZiLmNv bT47IGxpbnV4LWJsb2NrQHZnZXIua2VybmVsLm9yZzsgbGludXgtDQo+PiBrZXJuZWxAdmdlci5r ZXJuZWwub3JnOyBEemllZ2llbGV3c2tpLCBNYXJjaW4NCj4+IDxtYXJjaW4uZHppZWdpZWxld3Nr aUBpbnRlbC5jb20+OyBLb25vcGtvLCBJZ29yIEoNCj4+IDxpZ29yLmoua29ub3Brb0BpbnRlbC5j b20+DQo+PiBTdWJqZWN0OiBSZTogW0dJVCBQVUxMIDE4LzIwXSBsaWdodG52bTogcGJsazogaGFu ZGxlIGNhc2Ugd2hlbiBtd19jdW5pdHMNCj4+IGVxdWFscyB0byAwDQo+PiANCj4+PiBPbiAyOCBN YXkgMjAxOCwgYXQgMTAuNTgsIE1hdGlhcyBCasO4cmxpbmcgPG1iQGxpZ2h0bnZtLmlvPiB3cm90 ZToNCj4+PiANCj4+PiBGcm9tOiBNYXJjaW4gRHppZWdpZWxld3NraSA8bWFyY2luLmR6aWVnaWVs ZXdza2lAaW50ZWwuY29tPg0KPj4+IA0KPj4+IFNvbWUgZGV2aWNlcyBjYW4gZXhwb3NlIG13X2N1 bml0cyBlcXVhbCB0byAwLCBpdCBjYW4gY2F1c2UgY3JlYXRpb24gb2YNCj4+PiB0b28gc21hbGwg d3JpdGUgYnVmZmVyIGFuZCBjYXVzZSBwZXJmb3JtYW5jZSB0byBkcm9wIG9uIHdyaXRlDQo+Pj4g d29ya2xvYWRzLg0KPj4+IA0KPj4+IFRvIGhhbmRsZSB0aGF0LCB3ZSB1c2UgdGhlIGRlZmF1bHQg dmFsdWUgZm9yIE1MQyBhbmQgYmVhY2F1c2UgaXQNCj4+PiBjb3ZlcnMgYm90aCAxLjIgYW5kIDIu MCBPQyBzcGVjaWZpY2F0aW9uLCBzZXR0aW5nIHVwIG13X2N1bml0cyBpbg0KPj4+IG52bWVfbnZt X3NldHVwXzEyIGZ1bmN0aW9uIGlzbid0IGxvbmdlciBuZWNlc3NhcnkuDQo+Pj4gDQo+Pj4gU2ln bmVkLW9mZi1ieTogTWFyY2luIER6aWVnaWVsZXdza2kgPG1hcmNpbi5kemllZ2llbGV3c2tpQGlu dGVsLmNvbT4NCj4+PiBTaWduZWQtb2ZmLWJ5OiBJZ29yIEtvbm9wa28gPGlnb3Iuai5rb25vcGtv QGludGVsLmNvbT4NCj4+PiBTaWduZWQtb2ZmLWJ5OiBNYXRpYXMgQmrDuHJsaW5nIDxtYkBsaWdo dG52bS5pbz4NCj4+PiAtLS0NCj4+PiBkcml2ZXJzL2xpZ2h0bnZtL3BibGstaW5pdC5jIHwgMTAg KysrKysrKysrLQ0KPj4+IGRyaXZlcnMvbnZtZS9ob3N0L2xpZ2h0bnZtLmMgfCAgMSAtDQo+Pj4g MiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+Pj4gDQo+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGlnaHRudm0vcGJsay1pbml0LmMNCj4+PiBiL2RyaXZl cnMvbGlnaHRudm0vcGJsay1pbml0LmMgaW5kZXggZDY1ZDJmOTcyY2NmLi4wZjI3Nzc0NDI2NmIg MTAwNjQ0DQo+Pj4gLS0tIGEvZHJpdmVycy9saWdodG52bS9wYmxrLWluaXQuYw0KPj4+ICsrKyBi L2RyaXZlcnMvbGlnaHRudm0vcGJsay1pbml0LmMNCj4+PiBAQCAtMzU2LDcgKzM1NiwxNSBAQCBz dGF0aWMgaW50IHBibGtfY29yZV9pbml0KHN0cnVjdCBwYmxrICpwYmxrKQ0KPj4+IAlhdG9taWM2 NF9zZXQoJnBibGstPm5yX2ZsdXNoLCAwKTsNCj4+PiAJcGJsay0+bnJfZmx1c2hfcnN0ID0gMDsN Cj4+PiANCj4+PiAtCXBibGstPnBnc19pbl9idWZmZXIgPSBnZW8tPm13X2N1bml0cyAqIGdlby0+ YWxsX2x1bnM7DQo+Pj4gKwlpZiAoZ2VvLT5td19jdW5pdHMpIHsNCj4+PiArCQlwYmxrLT5wZ3Nf aW5fYnVmZmVyID0gZ2VvLT5td19jdW5pdHMgKiBnZW8tPmFsbF9sdW5zOw0KPj4+ICsJfSBlbHNl IHsNCj4+PiArCQlwYmxrLT5wZ3NfaW5fYnVmZmVyID0gKGdlby0+d3Nfb3B0IDw8IDMpICogZ2Vv LT5hbGxfbHVuczsNCj4+PiArCQkvKg0KPj4+ICsJCSAqIFNvbWUgZGV2aWNlcyBjYW4gZXhwb3Nl IG13X2N1bml0cyBlcXVhbCB0byAwLCBzbyBsZXQncw0KPj4gdXNlDQo+Pj4gKwkJICogaGVyZSBk ZWZhdWx0IHNhZmUgdmFsdWUgZm9yIE1MQy4NCj4+PiArCQkgKi8NCj4+PiArCX0NCj4+PiANCj4+ PiAJcGJsay0+bWluX3dyaXRlX3BncyA9IGdlby0+d3Nfb3B0ICogKGdlby0+Y3NlY3MgLyBQQUdF X1NJWkUpOw0KPj4+IAltYXhfd3JpdGVfcHBhcyA9IHBibGstPm1pbl93cml0ZV9wZ3MgKiBnZW8t PmFsbF9sdW5zOyBkaWZmIC0tZ2l0DQo+Pj4gYS9kcml2ZXJzL252bWUvaG9zdC9saWdodG52bS5j IGIvZHJpdmVycy9udm1lL2hvc3QvbGlnaHRudm0uYyBpbmRleA0KPj4+IDQxMjc5ZGE3OTllZC4u Yzc0Nzc5MmRhOTE1IDEwMDY0NA0KPj4+IC0tLSBhL2RyaXZlcnMvbnZtZS9ob3N0L2xpZ2h0bnZt LmMNCj4+PiArKysgYi9kcml2ZXJzL252bWUvaG9zdC9saWdodG52bS5jDQo+Pj4gQEAgLTMzOCw3 ICszMzgsNiBAQCBzdGF0aWMgaW50IG52bWVfbnZtX3NldHVwXzEyKHN0cnVjdA0KPj4gbnZtZV9u dm1faWQxMg0KPj4+ICppZCwNCj4+PiANCj4+PiAJZ2VvLT53c19taW4gPSBzZWNfcGVyX3BnOw0K Pj4+IAlnZW8tPndzX29wdCA9IHNlY19wZXJfcGc7DQo+Pj4gLQlnZW8tPm13X2N1bml0cyA9IGdl by0+d3Nfb3B0IDw8IDM7CS8qIGRlZmF1bHQgdG8gTUxDIHNhZmUgdmFsdWVzDQo+PiAqLw0KPj4+ IC8qIERvIG5vdCBpbXBvc2UgdmFsdWVzIGZvciBtYXhpbXVtIG51bWJlciBvZiBvcGVuIGJsb2Nr cyBhcyBpdCBpcw0KPj4+IAkgKiB1bnNwZWNpZmllZCBpbiAxLjIuIFVzZXJzIG9mIDEuMiBtdXN0 IGJlIGF3YXJlIG9mIHRoaXMgYW5kDQo+Pj4gZXZlbnR1YWxseQ0KPj4+IC0tDQo+Pj4gMi4xMS4w DQo+PiANCj4+IEJ5IGRvaW5nIHRoaXMsIDEuMiBmdXR1cmUgdXNlcnMgKGJleW9uZCBwYmxrKSwg d2lsbCBmYWlsIHRvIGhhdmUgYSB2YWxpZA0KPj4gbXdfY3VuaXRzIHZhbHVlLiBJdCdzIG9rIHRv IGRlYWwgd2l0aCB0aGUgMCBjYXNlIGluIHBibGssIGJ1dCBJIGJlbGlldmUgdGhhdCB3ZQ0KPj4g c2hvdWxkIGhhdmUgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIDEuMiBlaXRoZXIgd2F5Lg0KPiANCj4g SSdtIG5vdCBzdXJlLiBGcm9tIG15IHVuZGVyc3RhbmRpbmcsIHNldHRpbmcgb2YgZGVmYXVsdCB2 YWx1ZSB3YXMNCj4gd29ya2Fyb3VuZCBmb3IgcGJsayBjYXNlLCBhbSBJIHJpZ2h0ID8uDQoNClRo ZSBkZWZhdWx0IHZhbHVlIGNvdmVycyB0aGUgTUxDIGNhc2UgZGlyZWN0bHkgYXQgdGhlIGxpZ2h0 bnZtIGxheWVyLCBhcw0Kb3Bwb3NlZCB0byBkb2luZyBpdCBkaXJlY3RseSBpbiBwYmxrLiBTaW5j ZSBwYmxrIGlzIHRoZSBvbmx5IHVzZXIgbm93LA0KeW91IGNhbiBhcmd1ZSB0aGF0IGFsbCBjaGFu Z2VzIGluIHRoZSBsaWdodG52bSBsYXllciBhcmUgdG8gc29sdmUgcGJsaw0KaXNzdWVzLCBidXQg dGhlIGlkZWEgaXMgdGhhdCB0aGUgZ2VvbWV0cnkgc2hvdWxkIGJlIGdlbmVyaWMuDQoNCj4gSW4g bXkgb3BpbmlvbiBhbnkgdXNlciBvZiAxLjINCj4gc3BlYyBzaG91bGQgYmUgYXdhcmUgdGhhdCB0 aGVyZSBpcyBub3QgbXdfY3VuaXQgdmFsdWUuIEZyb20gbXkgcG9pbnQNCj4gb2YgdmlldywgbGVh dmluZyBoZXJlIDAgKGFuZCBkZWNpc2lvbiB3aGF0IGRvIHdpdGggaXQgdG8gbGlnaHRudm0NCj4g dXNlcikgaXMgbW9yZSBzYWZlciB3YXksIGJ1dCBtYXliZSBJJ20gd3JvbmcuIEkgYmVsaWV2ZSB0 aGF0IGl0IGlzDQo+IHRvcGljIHRvIHdpZGVyIGRpc2N1c3Npb24gd2l0aCBtYWludGFpbmVycy4N Cj4gDQoNCjEuMiBhbmQgMi4wIGhhdmUgZGlmZmVyZW50IGdlb21ldHJpZXMsIGJ1dCB3aGVuIHdl IGRlc2lnbmVkIHRoZSBjb21tb24NCm52bV9nZW8gc3RydWN0dXJlLCB0aGUgaWRlYSB3YXMgdG8g YWJzdHJhY3QgYm90aCBzcGVjcyBhbmQgYWxsb3cgdGhlDQp1cHBlciBsYXllcnMgdG8gdXNlIHRo ZSBnZW9tZXRyeSB0cmFuc3BhcmVudGx5LiANCg0KU3BlY2lmaWNhbGx5IGluIHBibGssIEkgd291 bGQgcHJlZmVyIHRvIGtlZXAgaXQgaW4gc3VjaCBhIHdheSB0aGF0IHdlIGRvbid0DQpuZWVkIHRv IG1lZGlhIHNwZWNpZmljIHBvbGljaWVzIChlLmcuLCBzZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIE1M Qw0KbWVtb3JpZXMpLCBhcyBhIGdlbmVyYWwgZGVzaWduIHByaW5jaXBsZS4gV2UgYWxyZWFkeSBk byBzb21lIGdlb21ldHJ5DQp2ZXJzaW9uIGNoZWNrcyB0byBhdm9pZCBkZXJlZmVyZW5jaW5nIHVu bmVjZXNzYXJ5IHBvaW50ZXJzIG9uIHRoZSBmYXN0DQpwYXRoLCB3aGljaCBJIHdvdWxkIGV2ZW50 dWFsbHkgbGlrZSB0byByZW1vdmUuDQoNCj4+IEEgbW9yZSBnZW5lcmljIHdheSBvZiBkb2luZyB0 aGlzIHdvdWxkIGJlIHRvIGhhdmUgYSBkZWZhdWx0IHZhbHVlIGZvcg0KPj4gMi4wIHRvbywgaW4g Y2FzZSBtd19jdW5pdHMgaXMgcmVwb3J0ZWQgYXMgMC4NCj4gDQo+IFNpbmNlIDAgaXMgY29ycmVj dCB2YWx1ZSBhbmQgdXNlcnMgY2FuIG1ha2UgZGlmZmVyZW50IGRlY2lzaW9ucyBiYXNlZA0KPiBv biBpdCwgSSB0aGluayB3ZSBzaG91bGRuJ3Qgb3ZlcndyaXRlIGl0IGJ5IGRlZmF1bHQgdmFsdWUu IElzIGl0IG1ha2UNCj4gc2Vuc2U/DQoNCkhlcmUgSSBtZWFudCBhdCBhIHBibGsgbGV2ZWwgLSBJ IHNob3VsZCBoYXZlIHNwZWNpZmllZCBpdC4gQXQgdGhlDQpnZW9tZXRyeSBsZXZlbCwgd2Ugc2hv dWxkIG5vdCBjaGFuZ2UgaXQuIA0KDQpUaGUgY2FzZSBJIGFtIHRoaW5raW5nIGlzIGlmIG13X2N1 aW50cyByZXBvaW50cyAwLCBidXQgd3NfbWluID4gMC4gSW4NCnRoaXMgY2FzZSwgd2Ugc3RpbGwg bmVlZCBhIGhvc3Qgc2lkZSBidWZmZXIgdG8gc2VydmUgPCB3c19taW4gSS9PcywgZXZlbg0KdGhv dWdoIHRoZSBkZXZpY2UgZG9lcyBub3QgcmVxdWlyZSB0aGUgYnVmZmVyIHRvIGd1YXJhbnRlZSBy ZWFkcy4NCg0KPj4gSmF2aWVyDQo+IA0KPiBUaGFua3MsDQo+IE1hcmNpbiANCg0KSmF2aWVy