From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50045.outbound.protection.outlook.com [40.107.5.45]) by dpdk.org (Postfix) with ESMTP id AF2CD23D for ; Sat, 3 Nov 2018 06:46:54 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=v/P9efWUCIUbmlHrdTefyBHy5eLKlzgDRPj0m0JeBmA=; b=lkE5Uw1m5F2ZBk+sdWy2PF0bJVty1bndaY6w+z+QJmEIHfOWLDblm41jPMfji2jxL6jJj1/omMQlNU+DSx7i31Dj5zxA3TEQC/411Cj6kPhP4wpxKxT3X/6pRFMGFANg9md4xljtDZQFF5c59myfmRrNkVuP+wQypUPzklPvufI= Received: from AM0PR08MB3409.eurprd08.prod.outlook.com (20.177.109.139) by AM0PR08MB3394.eurprd08.prod.outlook.com (20.177.109.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1273.26; Sat, 3 Nov 2018 05:46:53 +0000 Received: from AM0PR08MB3409.eurprd08.prod.outlook.com ([fe80::3074:eca6:1d39:dd5]) by AM0PR08MB3409.eurprd08.prod.outlook.com ([fe80::3074:eca6:1d39:dd5%2]) with mapi id 15.20.1294.024; Sat, 3 Nov 2018 05:46:53 +0000 From: "Tone Zhang (Arm Technology China)" To: "Burakov, Anatoly" , "dev@dpdk.org" CC: nd Thread-Topic: [dpdk-dev] [PATCH] pci_vfio: Support 64KB kernel page_size with vfio-pci driver Thread-Index: AQHUa3lCIRooCn9f+0Kigcs8A1SPlKU6P4IAgAB9OACAAqfkgIAALSbQ Date: Sat, 3 Nov 2018 05:46:53 +0000 Message-ID: References: <1540347604-18590-1-git-send-email-tone.zhang@arm.com> <9b893c0a-9ac6-ba53-16c6-d20f6a458f80@intel.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Tone.Zhang@arm.com; x-originating-ip: [113.29.88.7] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM0PR08MB3394; 6:k2VPwHkCw81rK7UFWG0yxeHTgbg+vEIOgUZp7a/5uanFWLhaKNvdEVSx8MKBM6Uv/ZTBZTmHkArxF9S2n+XjskXDiPh+VxvR9hUuNZsoQ5RZV5W4OWnWlv0W70SdldpUFgT6m5otbzZBKAhSWwQcFJaMrWQ38c0Mja9K3gdg8HZBA7NHOEKQNrVinOdr2c+iDIp/Wm55u7UVzMEKtxAOji5ldiJcxf0v0z84Tcl3wuEKLVvI+zbzB+2WHpsrrpgUuixooYaXqb5+Zw2rXU9mEOqokXV18x2P8Re/jYlIZXwBKaAwv2VUk2zpmY1662Xee/j+YUjyWVTB4SU5ThR6MC3k/6B/4zzt8O7sCKq/tJ3ABWrUgyeuy38hI0RI2vPhJUpzOPemUZyuhYR4yR7Dd3VL/lbHBUDHzn10kkW1Z2Cm0m/tA5mXdz6pComJRmVTa09RnXbeexl/xYIHbVWSVA==; 5:vibdbU15DKdtzN5qwAs+fwvy3s7BBsoHsr8fNzRX+7azFvGwdzXFWphFXqJQ/AW8+sgxTRMtZ2oWj3q2rrhoJabYAfPXMBvt/xbuhNEcbB7Pyt7N2Jz0o9b/QDc9gRPz2c4xtnODd1KaAXeaatgJik+bIaf6whRMJzxu2Qrg5ZY=; 7:6ptj26mo2AhEOvaHtMdD8D6ic4EHWKvh1GaieviffIFsXS4n7Dg1qxmx0AKPP5sAwXi5Xab5JlRyRqF20bGelriaCpPLw25vE8J1TE+eEESrGyVGIXA+XA7FROMCNmG0JjmBela6B3F7yy3VIuxFow== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: db4e7e51-0f4d-4a9a-830b-08d6414fc23f x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM0PR08MB3394; x-ms-traffictypediagnostic: AM0PR08MB3394: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917)(228905959029699); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(93001095)(3231382)(944501410)(52105095)(6055026)(148016)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(20161123560045)(20161123562045)(201708071742011)(7699051)(76991095); SRVR:AM0PR08MB3394; BCL:0; PCL:0; RULEID:; SRVR:AM0PR08MB3394; x-forefront-prvs: 08457955C4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(346002)(396003)(366004)(376002)(39860400002)(189003)(199004)(13464003)(106356001)(81156014)(6246003)(81166006)(5660300001)(102836004)(186003)(105586002)(68736007)(8936002)(26005)(99286004)(8676002)(53936002)(55016002)(9686003)(14454004)(72206003)(33656002)(229853002)(53546011)(55236004)(6506007)(74316002)(6436002)(76176011)(7736002)(7696005)(305945005)(4326008)(6116002)(3846002)(446003)(110136005)(476003)(25786009)(11346002)(316002)(486006)(2906002)(2900100001)(71190400001)(2501003)(71200400001)(14444005)(256004)(97736004)(93886005)(86362001)(66066001)(478600001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR08MB3394; H:AM0PR08MB3409.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: kHabh2ypn3JRKa7u7nLtkRZazgfrxPPehTJdIr8h9SxLCZu0shQshOADTgHfAEMIc8S67Ox+Tb8qBmLlRLpmMf/1QRMJqNl4eChpjQdTJ7yv9sLJKVgwiCZiVjabhuAigwuZavVJ/yqFLIYbGgWVrNl4h4I2Lv5tK9QGHEuQAVk0mZrZjCxp7KrPG45v8wxn2fBiJoLourgIilx4+RIAFNwt9uRksYDVpcIcGDJy1cj9Qby4kTbRDP61LBkvL22gjI/BnbmRfacY4U2rlZKKRwrQR4aiZcSMQ75ZnOs8ycBXQ0XvclgR9ngvolmCeATDPD6pWXKG5olfp1hkGtUmXQFi/mbTATKgs4RrYVIC3N8= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: db4e7e51-0f4d-4a9a-830b-08d6414fc23f X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2018 05:46:53.6042 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB3394 Subject: Re: [dpdk-dev] [PATCH] pci_vfio: Support 64KB kernel page_size with vfio-pci driver X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Nov 2018 05:46:55 -0000 SGkgQnVyYWtvdiwNCg0KVGhhbmtzIQ0KUGxlYXNlIGNoZWNrIG15IGZlZWRiYWNrIGJlbG93Lg0K DQpCciwNClRvbmUNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IGRldiA8ZGV2 LWJvdW5jZXNAZHBkay5vcmc+IE9uIEJlaGFsZiBPZiBCdXJha292LCBBbmF0b2x5DQpTZW50OiBU aHVyc2RheSwgTm92ZW1iZXIgMSwgMjAxOCA2OjAxIFBNDQpUbzogVG9uZSBaaGFuZyAoQXJtIFRl Y2hub2xvZ3kgQ2hpbmEpIDxUb25lLlpoYW5nQGFybS5jb20+OyBkZXZAZHBkay5vcmcNCkNjOiBu ZCA8bmRAYXJtLmNvbT4NClN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSF0gcGNpX3ZmaW86 IFN1cHBvcnQgNjRLQiBrZXJuZWwgcGFnZV9zaXplIHdpdGggdmZpby1wY2kgZHJpdmVyDQoNCk9u IDAxLU5vdi0xOCAyOjMzIEFNLCBUb25lIFpoYW5nIChBcm0gVGVjaG5vbG9neSBDaGluYSkgd3Jv dGU6DQo+IEhpIEJ1cmFrb3YsDQo+IA0KPiBJJ20gc29ycnkgZm9yIHRoZSBsYXRlIHJlc3BvbnNl Lg0KPiANCj4gVGhhbmtzIGEgbG90IGZvciB5b3VyIGNvbW1lbnRzLiBQbGVhc2UgZmluZCBteSBy ZXNwb25zZSBiZWxvdyAobWFya2VkIA0KPiB3aXRoICJUb25lOiIpLiDwn5iKDQo+IA0KPiBCciwN Cj4gVG9uZQ0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQnVyYWtv diwgQW5hdG9seSA8YW5hdG9seS5idXJha292QGludGVsLmNvbT4NCj4gU2VudDogV2VkbmVzZGF5 LCBPY3RvYmVyIDI0LCAyMDE4IDU6MDkgUE0NCj4gVG86IFRvbmUgWmhhbmcgKEFybSBUZWNobm9s b2d5IENoaW5hKSA8VG9uZS5aaGFuZ0Bhcm0uY29tPjsgDQo+IGRldkBkcGRrLm9yZw0KPiBDYzog bmQgPG5kQGFybS5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSF0gcGNpX3Zm aW86IFN1cHBvcnQgNjRLQiBrZXJuZWwgDQo+IHBhZ2Vfc2l6ZSB3aXRoIHZmaW8tcGNpIGRyaXZl cg0KPiANCj4gT24gMjQtT2N0LTE4IDM6MjAgQU0sIHRvbmUuemhhbmcgd3JvdGU6DQo+PiBXaXRo IGEgbGFyZ2VyIFBBR0VfU0laRSBpdCBpcyBwb3NzaWJsZSBmb3IgdGhlIE1TSSB0YWJsZSB0byB2 ZXJ5IA0KPj4gY2xvc2UgdG8gdGhlIGVuZCBvZiB0aGUgQkFSIHMudC4gd2hlbiB3ZSBhbGlnbiB0 aGUgTVNJIHRhYmxlIHRvIHRoZSANCj4+IFBBR0VfU0laRSwgdGhlIGVuZCBvZmZzZXQgb2YgdGhl IE1TSSB0YWJsZSBpcyBvdXQgdGhlIFBDSSBCQVIgDQo+PiBib3VuZGFyeS4NCj4+DQo+PiBUaGlz IHBhdGNoIGFkZHJlc3NlcyB0aGUgaXNzdWUgYnkgY29tcGFyaW5nIGJvdGggdGhlIHN0YXJ0IGFu ZCB0aGUgDQo+PiBlbmQgb2Zmc2V0IG9mIHRoZSBNU0kgdGFibGUgd2l0aCB0aGUgQkFSIHNpemUu DQo+Pg0KPj4gVGhlIHBhdGNoIGZpeGVzIHRoZSBkZWJ1ZyBsb2cgYXMgYmVsb3c6DQo+PiBFQUw6 IFNraXBwaW5nIEJBUjANCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiB0b25lLnpoYW5nIDx0b25lLnpo YW5nQGFybS5jb20+DQo+PiBSZXZpZXdlZC1ieTogR2F2aW4gSHUgPEdhdmluLkh1QGFybS5jb20+ DQo+PiBSZXZpZXdlZC1ieTogSG9ubmFwcGEgTmFnYXJhaGFsbGkgPGhvbm5hcHBhLm5hZ2FyYWhh bGxpQGFybS5jb20+DQo+PiBSZXZpZXdlZC1ieTogU3RldmUgQ2FwcGVyIDxTdGV2ZS5DYXBwZXJA YXJtLmNvbT4NCj4+IC0tLQ0KPj4gICAgZHJpdmVycy9idXMvcGNpL2xpbnV4L3BjaV92ZmlvLmMg fCAyNSArKysrKysrKysrKysrKysrKysrKystLS0tDQo+PiAgICAxIGZpbGUgY2hhbmdlZCwgMjEg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9idXMvcGNpL2xpbnV4L3BjaV92ZmlvLmMNCj4+IGIvZHJpdmVycy9idXMvcGNpL2xpbnV4L3Bj aV92ZmlvLmMNCj4+IGluZGV4IGIxZjA2ODMuLjEzNzMzNDUgMTAwNjQ0DQo+PiAtLS0gYS9kcml2 ZXJzL2J1cy9wY2kvbGludXgvcGNpX3ZmaW8uYw0KPj4gKysrIGIvZHJpdmVycy9idXMvcGNpL2xp bnV4L3BjaV92ZmlvLmMNCj4+IEBAIC00NDUsOSArNDQ1LDExIEBAIHBjaV92ZmlvX21tYXBfYmFy KGludCB2ZmlvX2Rldl9mZCwgc3RydWN0IG1hcHBlZF9wY2lfcmVzb3VyY2UgKnZmaW9fcmVzLA0K Pj4gICAgCXN0cnVjdCBwY2lfbXNpeF90YWJsZSAqbXNpeF90YWJsZSA9ICZ2ZmlvX3Jlcy0+bXNp eF90YWJsZTsNCj4+ICAgIAlzdHJ1Y3QgcGNpX21hcCAqYmFyID0gJnZmaW9fcmVzLT5tYXBzW2Jh cl9pbmRleF07DQo+PiAgICANCj4+IC0JaWYgKGJhci0+c2l6ZSA9PSAwKQ0KPj4gKwlpZiAoYmFy LT5zaXplID09IDApIHsNCj4+ICAgIAkJLyogU2tpcCB0aGlzIEJBUiAqLw0KPj4gKwkJUlRFX0xP RyhJTkZPLCBFQUwsICJTa2lwcGluZyB0aGlzIEJBUiVkXG4iLCBiYXJfaW5kZXgpOw0KPj4gICAg CQlyZXR1cm4gMDsNCj4gDQo+IEkgZmVlbCBsaWtlICJ0aGlzIiBpcyB1bm5lY2Vzc2FyeSBoZXJl IC0ganVzdCAiU2tpcHBpbmcgQkFSJWQiIHNob3VsZCANCj4gYmUgZW5vdWdoIDopDQo+IA0KPiBU b25lOiBXaWxsIHVwZGF0ZSBjb2RlIGFuZCByZW1vdmUgInRoaXMiIGluIG5leHQgdmVyc2lvbi4N Cj4gDQo+PiArCX0NCj4+ICAgIA0KPj4gICAgCWlmIChtc2l4X3RhYmxlLT5iYXJfaW5kZXggPT0g YmFyX2luZGV4KSB7DQo+PiAgICAJCS8qDQo+PiBAQCAtNDU3LDcgKzQ1OSwxMiBAQCBwY2lfdmZp b19tbWFwX2JhcihpbnQgdmZpb19kZXZfZmQsIHN0cnVjdCBtYXBwZWRfcGNpX3Jlc291cmNlICp2 ZmlvX3JlcywNCj4+ICAgIAkJdWludDMyX3QgdGFibGVfc3RhcnQgPSBtc2l4X3RhYmxlLT5vZmZz ZXQ7DQo+PiAgICAJCXVpbnQzMl90IHRhYmxlX2VuZCA9IHRhYmxlX3N0YXJ0ICsgbXNpeF90YWJs ZS0+c2l6ZTsNCj4+ICAgIAkJdGFibGVfZW5kID0gKHRhYmxlX2VuZCArIH5QQUdFX01BU0spICYg UEFHRV9NQVNLOw0KPj4gLQkJdGFibGVfc3RhcnQgJj0gUEFHRV9NQVNLOw0KPj4gKwkJdGFibGVf c3RhcnQgPSAodGFibGVfc3RhcnQgKyB+UEFHRV9NQVNLKSAmIFBBR0VfTUFTSzsNCj4gDQo+IElN TyB0aGVzZSB0d28gYWRkaXRpb25zIHNob3VsZCBiZSByZXBsYWNlZCBieSBSVEVfQUxJR04gYnkg cGFnZSBzaXplLg0KPiBNYWtlcyB0aGUgcHVycG9zZSBvZiB0aGUgY29kZSBtdWNoIGNsZWFyZXIu DQo+IA0KPiBUb25lOiBTdXJlLCBpdCBpcyBiZXR0ZXIhIFdpbGwgdXBkYXRlIGNvZGUgaW4gbmV4 dCB2ZXJzaW9uLiBUaGFua3MhDQo+IA0KPj4gKwkJLyogYWZ0ZXIgcm91bmRpbmcgdG8gUEFHRV9T SVpFLCBpdCBpcyBvdmVyIHRoZSBiYXItPnNpemUsDQo+PiArCQkgKiBmYWxsIGJhY2sgdG8gdGhl IE1TSS1YIHRhYmxlIG9mZnNldCBpbiB0aGUgYmFyLg0KPj4gKwkJKi8NCj4+ICsJCWlmICh0YWJs ZV9zdGFydCA+PSBiYXItPnNpemUpDQo+PiArCQkJdGFibGVfc3RhcnQgPSBtc2l4X3RhYmxlLT5v ZmZzZXQ7DQo+IA0KPiBJZiBpIHVuZGVyc3RhbmQgdGhpbmdzIGNvcnJlY3RseSwgbXNpeF90YWJs ZS0+b2Zmc2V0IHZhbHVlIGhlcmUgbWF5IGJlIHVuYWxpZ25lZCwgc28gZmFsbGluZyBiYWNrIHRv IHRoaXMgdmFsdWUgbWF5IGNhdXNlIG1hcHBpbmcgZmFpbHVyZSwgYmVjYXVzZSB3ZSBsYXRlciB1 c2UgdGhpcyB2YWx1ZSBhcyBhIHNpemUgb2YgbWFwcGluZyAod2hpY2ggbmVlZHMgdG8gYmUgcGFn ZSBhbGlnbmVkKS4gU2hvdWxkbid0IHRoaXMgYmUgYWxpZ25lZCB1c2luZyBSVEVfQUxJR05fRkxP T1IgYnkgcGFnZSBzaXplPw0KPiANCj4gVG9uZTogSXQgaXMgYSBsaXR0bGUgdHJpY2t5LiBBbGln biBtc2l4X3RhYmxlLT5vZmZzZXQgd2l0aCBSVEVfQUxJR05fRkxPT1IgbWF5YmUgZ2V0IDAgaWYg dGhlIG9mZnNldCBpcyBsZXNzIHRoYW4gcGFnZSBzaXplIGluIHRoZSBQQ0kgYmFyLiBJdCB3aWxs IHRyaWdnZXIgbW1hcCgpIGVycm9yLiBJSVJDIHRoZSBpbnB1dCBwYXJhbWV0ZXIgInNpemUiIGlu IG1tYXAoKSBpcyBub3QgcmVxdWlyZWQgdG8gYmUgYWxpZ25lZCB3aXRoIHBhZ2Ugc2l6ZSwgc3lz dGVtIHdpbGwgZG8gaXQuIEJ1dCBpdCBpcyBiZXR0ZXIgaWYgd2UgY2FuIGRvIGl0LiBJZiBJIHdh cyB3cm9uZywgcGxlYXNlIGNvcnJlY3QgbWUuIFRoYW5rcyBhIGxvdC4NCg0KQXBvbG9naWVzLCB5 b3UncmUgY29ycmVjdCAtIGxlbmd0aCBjYW4gYmUgbWlzYWxpZ25lZCAoanVzdCB0ZXN0ZWQgaXQp Lg0KDQpIb3dldmVyLCBpIHRoaW5rIGl0J3Mgc3RpbGwgd29ydGggYWxpZ25pbmcgKGFuZCBwdXR0 aW5nIGluIGFuIGFkZGl0aW9uYWwgY2hlY2spLCBiZWNhdXNlIHdlIHdhbnQgdG8gbWFrZSBzdXJl IHdlICpkb24ndCogYXR0ZW1wdCB0byBtYXAgdGhlIE1TSS1YIEJBUiwgYW5kIGtlcm5lbCBtaWdo dCBkbyB0aGF0IGJ5IGFkanVzdGluZyBsZW5ndGggYXV0b21hdGljYWxseSBhbmQgcmV0dXJuIG1t YXAgZmFpbHVyZSB0aGF0IHdheS4NCg0KVG9uZTogVGhhbmtzIGEgbG90ISBJIGFncmVlIHdpdGgg eW91LiBJdCB3b3J0aCBhbGlnbmluZyB0aGUgc2l6ZS4gSSB3aWxsIHVwZGF0ZSBjb2RlIChSVEVf QUxJR05fRkxPT1IgYnkgcGFnZSBzaXplKSBpbiBuZXh0IHZlcnNpb24uIA0KSSdkIGxpa2UgdG8g ZGlzY3VzcyBvbmUgY2FzZSB3aXRoIHlvdS4gSW4gdGhlIGNhc2UsIGJhc2UtPnNpemUgaXMgMTYz ODQsIG1zaXhfdGFibGUtPm9mZnNldCBpcyA4MTkyLCBwYWdlX3NpemUgaXMgNjU1MzYuIEFmdGVy IGFsaWduICJtc2l4X3RhYmxlLT5vZmZzZXQiIHdpdGggcGFnZV9zaXplIChSVEVfQUxJR05fRkxP T1IpLCB0aGUgdmFsdWUgb2YgInRhYmxlX3N0YXJ0IiBpcyAwLCBtbWFwKCkgd2lsbCByZXBvcnQg ZXJyb3IsIGFuZCB0aGUgbWVtb3J5IG1hcHBpbmcgaXMgZmFpbGVkLiANCkZvciB0aGUgY2FzZSAo dGFibGVfc3RhcnQgaXMgMCBhZnRlciB0aGUgYWdsaW5tZW50KSwgbWF5IEkgY29udGludWUgZmFs bGluZyBiYWNrIHRoZSAidGFibGVfc3RhcnQiIHRvICIgbXNpeF90YWJsZS0+b2Zmc2V0IiAobm90 IGFsaWduZWQgd2l0aCBwYWdlIHNpemUpLCBhbmQgbGVmdCBzeXN0ZW0gYWRqdXN0IHRoZSBsZW5n dGggYXV0b21hdGljYWxseT8gVGhhbmtzIQ0KDQotLQ0KVGhhbmtzLA0KQW5hdG9seQ0K