From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9FC31C3ABC0 for ; Thu, 8 May 2025 05:51:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 824576B000A; Thu, 8 May 2025 01:51:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7A9496B008A; Thu, 8 May 2025 01:51:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 64C836B0092; Thu, 8 May 2025 01:51:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 429826B000A for ; Thu, 8 May 2025 01:51:57 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 95968140945 for ; Thu, 8 May 2025 05:51:58 +0000 (UTC) X-FDA: 83418669516.19.9BFFB1D Received: from m16.mail.163.com (m16.mail.163.com [117.135.210.3]) by imf07.hostedemail.com (Postfix) with ESMTP id AF1674000F for ; Thu, 8 May 2025 05:51:55 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=fail ("body hash did not verify") header.d=163.com header.s=s110527 header.b="l FB3y/9"; dmarc=pass (policy=none) header.from=163.com; spf=pass (imf07.hostedemail.com: domain of 00107082@163.com designates 117.135.210.3 as permitted sender) smtp.mailfrom=00107082@163.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746683516; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Bz3RK3w8Iqotrfm+jiRfcCmjyO9GogSAsriwYpQb9gs=; b=xnEUEMjWgIXtiEtUPuyywiraZWs7Hhz28CCER2hy5oPfnUfxBq4ZDX9EFsdBswURYEMASo 7bnRWvhaCrIu1NQE2m1lJ0qIjL9vBNPyJO7L5OwVL62j8H80hR84nXIl0szEm9JRlVQZrE 3/4cn/HNX1lv62CmAhohn7M5p21p6Aw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746683516; a=rsa-sha256; cv=none; b=AjJDGj9gqCpUBUqTrcCSNnTQbWNxh+g3jVZF/AIRlZJ1+lJL8Y3qVslzIhcIahFbe2kYe/ fUbsplqcJAGK1bp55qOKuuAm6rP9r1UvOH1bLuBEDp0axR9N7nlozT7EU6dQHtTzGiKWmN flzoiGNSYwbCr07vpvoeM6ZZV41//jw= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=fail ("body hash did not verify") header.d=163.com header.s=s110527 header.b="l FB3y/9"; dmarc=pass (policy=none) header.from=163.com; spf=pass (imf07.hostedemail.com: domain of 00107082@163.com designates 117.135.210.3 as permitted sender) smtp.mailfrom=00107082@163.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=Date:From:Subject:Content-Type:MIME-Version: Message-ID; bh=n0B34arbIHUnRtwFWU1yjtd7WuKCdlVvJWIjrc5VsAM=; b=l FB3y/9sBMvCyHlIM7cHnOiOa23KzIAlU8Ui0PJGmwsRl53M77VyPOoUSEQggtVLw cz8Q08M4j3vcaPdw9uMCnH6wxs8IG04khk8pYsNMXkJQbaGddR0rJ+773Gf5oCK7 XNHTwA9S/h/RFj5zjSgs9sPEzxmN2gjKauI1ZcF034= Received: from 00107082$163.com ( [111.35.191.17] ) by ajax-webmail-wmsvr-40-130 (Coremail) ; Thu, 8 May 2025 13:51:48 +0800 (CST) X-Originating-IP: [111.35.191.17] Date: Thu, 8 May 2025 13:51:48 +0800 (CST) From: "David Wang" <00107082@163.com> To: "Kent Overstreet" Cc: "Suren Baghdasaryan" , akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] alloc_tag: avoid mem alloc and iter reset when reading allocinfo X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.14 build 20240801(9da12a7b) Copyright (c) 2002-2025 www.mailtech.cn 163com In-Reply-To: <52tsrapmkfywv4kkdpravtfmxkhxchyua4wttpugihld4iws3r@atfgtbd5wwhx> References: <20250507175500.204569-1-00107082@163.com> <289b58f1.352d.196addbf31d.Coremail.00107082@163.com> <1ed4c8f7.3e12.196adf621a2.Coremail.00107082@163.com> <52tsrapmkfywv4kkdpravtfmxkhxchyua4wttpugihld4iws3r@atfgtbd5wwhx> X-NTES-SC: AL_Qu2fBPqTvE0r7iGZZekZnEYQheY4XMKyuPkg1YJXOp80mCXtyiAPZ25CNnXs0fmtIgemoQmaTyB17uBjdqV9RrrWGvturAP36k/33cU5ijBT Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=GBK MIME-Version: 1.0 Message-ID: X-Coremail-Locale: zh_CN X-CM-TRANSID:gigvCgCXX0p1RhxoYkupAA--.15361W X-CM-SenderInfo: qqqrilqqysqiywtou0bp/xtbB0gNHqmgcKSWmQwALsq X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: AF1674000F X-Rspam-User: X-Stat-Signature: nxahe5zgoa8574ybru97ddjszi9tsd3i X-HE-Tag: 1746683515-752047 X-HE-Meta: U2FsdGVkX19FZqDx6XiOcvdttrh0BmTPCbb5XdCra+tbdOEpdwtQMorDJBW6IbeKmUVgQK8dbYyDk6s6Ww7a5VrJENdl5e80ofNeDQ9YE8DJ6LXBYQDg68trOXqQKPY4VggLombSvID76U4o5pNIlmkvdSYHYq3cDsb8D2qPepwBcGhjw41nwAgRINONHNPRf+ojOeP4/uyuAjivjH+ZJ4lfLa7xy/1EUqKNY7ksRgpXQEqIIBZrvs76oZ+6Nyu7JevhE5vN6nfficyi4ulBnJXtrwUtKe0edRvor+r6UsSF+yRmm3Nu05C2Le3Fyjd5Me7lJP1QERby/vkZ7OjoVv5onFSh+CHRJ+RsSP6uAXHYO1kIrWPgi5A+Qzk/fY6zRpijtgXwPRRHVxc3iszhzCH8iXzTvolzpg78bLH0S5tbmqag9bX1sThGJaymEDcU/zzxEV0XNe3MKdCcDPjp5Np++MO/iZ3DAyRASIIoyVnMhGYQtvrF1+hx45yPcFfKtejvyIhLv39CxfSPDgQLjwvPlljWLteu+6vJpkSYGiSCNbg8SjVqBnJ5vxLl2b+tRZAY4fHXXz51VDTyY/mtM3gXvryec2pEFuAaj2L9cBqcEumg6ttUoWjAKLUia7WUg2bvnCvOz+/XZkZKQjV9qsuuAINFn/8m6V264+RFuwJlMWOl9NNs4BdEkwdIa5ywETrBmSitMGswvPfOy0RVYsSqXMQ1HrQeoamUI/oUKFiJuvX/4binWPLItWnA2XLr0FG3wr6oDv103Foh9/nTbEnkABYGXdzI1cQ6UMGjIp7VfmtwTbjoK5C+5FzpGhi+uUyNR12q7tvHlPGdi9+YBb72txMg3NFSd6Xn22xFGlhZl9xPs4csiNHdFska4+p3/I5mqDboyP1HZp2Svz8wNgtCIxCFcuI35OWsfSgJyg+cZJT/eSh5fbQ2Kd1/fRMRZRAmZzvP69707zSPzMg fOZvETQo L8XoGBPc1Dax1AosWz0kR/3Dq7BeoAI64Fry7CWlwpMnq3JK/5xfuJY+OrjRw/Kh2IlhyYAgTlHXcRrtwziwd5lF+zO51bDxhouFHGPU5vIQI35LKUtRWBHK5zaqqQbbg/b/ajqAKdocwhpn0g3V9VjxfyCfrb/NlKStcYigI2ZLihdAJD0WReu+JxWBNVRuoVHwXrk/35/QcoM8djaHu7etpNL+dkbRY0ygjeEGCf6lLIZkOqQ5cUZgq+Rc1qmFb5gFn/1lWYk58GFO34HfmxvOmQInapm/6Sq0CpdGRlJEf8t1mK17DV+Vc2CCNltPDFm/mwIjvuoe4PjFLN23qAp7oI+6qhdWY0dpL5osO/bwmVh2pnnglOZh1BMiDZzot5UeG86E5F4sLOaQygj8D35IvSw97bVvu0e2MzmSxnxkBTVKl56jkC8yR4Qk5wmxhS7J2NZcdW6LDSzjBGAqttg13GtrjD4wqW8CZGiT+Hvvain4OfZIDO7V3bRmcCm1+JyWUxX5OdL6mIrIFyZTEBbzWxNZ5mjgCbowUrjRFuNcpD0JNfp8mwXb339CRsD9NQmV1loImtuwChnU= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: CkF0IDIwMjUtMDUtMDggMTI6MDc6NDAsICJLZW50IE92ZXJzdHJlZXQiIDxrZW50Lm92ZXJzdHJl ZXRAbGludXguZGV2PiB3cm90ZToKPk9uIFRodSwgTWF5IDA4LCAyMDI1IGF0IDExOjM1OjExQU0g KzA4MDAsIERhdmlkIFdhbmcgd3JvdGU6Cj4+IAo+PiAKPj4gQXQgMjAyNS0wNS0wOCAxMTozMTox MiwgIktlbnQgT3ZlcnN0cmVldCIgPGtlbnQub3ZlcnN0cmVldEBsaW51eC5kZXY+IHdyb3RlOgo+ PiA+T24gVGh1LCBNYXkgMDgsIDIwMjUgYXQgMTE6MDY6MzVBTSArMDgwMCwgRGF2aWQgV2FuZyB3 cm90ZToKPj4gPj4gVGhhbmtzIGZvciB0aGUgZmVlZGJhY2t+Cj4+ID4+IEkgYWdyZWUgdGhhdCBt ZW1vcnkgYWxsb2NhdGlvbiBub3JtYWxseSBkb3NlIG5vdCB0YWtlIG1ham9yIHBhcnQgb2YgYSBw cm9maWxpbmcgcmVwb3J0LAo+PiA+PiBldmVuIHByb2ZpbGluZyBhIGZpbyB0ZXN0LCBrbWVtX2Nh Y2hlX2FsbG9jIG9ubHkgdGFrZXMgfjElIHBlcmYgc2FtcGxlcy4KPj4gPj4gCj4+ID4+IEkgZG9u J3Qga25vdyB3aHkgSSBoYXZlIHRoaXMgInRoZSBsZXNzIG1lbW9yeSBhbGxvY2F0aW9uLCB0aGUg YmV0dGVyJyBtaW5kc2V0LCAgbWF5YmUKPj4gPj4gSSB3YXMgd29ycnlpbmcgYWJvdXQgbWVtb3J5 IGZyYWdtZW50YXRpb24sIG9yIHNvbWV0aGluZyBlbHNlIEkgIGxlYXJuZWQgb24gc29tZSAidGV4 dGJvb2siLAo+PiA+PiBUbyBiZSBob25lc3QsIEkgIGhhdmUgbmV2ZXIgaGFkIHJlYWwgZXhwZXJp ZW5jZSB3aXRoIHRob3NlIHdvcnJpZXMuLi4uCj4+ID4KPj4gPkl0J3MgYSBjb21tb24gYmlhcy4g Ik1lbW9yeSBhbGxvY2F0aW9ucyIgdGFrZSB1cCBhIGxvdCBvZiBjb25jZXB0dWFsCj4+ID5zcGFj ZSBpbiBvdXIgaGVhZHMsIGFuZCBnZW5lcmFsbHkgZm9yIGdvb2QgcmVhc29uIC0gaS5lLiBoYW5k bGluZyBtZW1vcnkKPj4gPmFsbG9jYXRpb24gZXJyb3JzIGlzIG9mdGVuIGEgbWFqb3IgY29uY2Vy biwgYW5kIHlvdSBkbyBhbHdheXMgd2FudCB0byBiZQo+PiA+YXdhcmUgb2YgbWVtb3J5IGxheW91 dC4KPj4gPgo+PiA+QnV0IHRoaXMgY2FuIHR1cm4gaW50byBhbiBhdmVyc2lvbiB0aGF0J3MgZW50 aXJlbHkgZGlzcHJvcG9ydGlvbmF0ZSAtCj4+ID5lLmcuIHVzaW5nIGxpbmtlZCBsaW5rZWQgbGlz dHMgYW5kIGZpeGVkIHNpemUgYXJyYXlzIGluIHdheXMgdGhhdCBhcmUKPj4gPmVudGlyZWx5IGlu YXBwcm9wcmlhdGUsIGluc3RlYWQgb2YgdmVjdG9ycyBhbmQgb3RoZXIgYmV0dGVyIGRhdGEKPj4g PnN0cnVjdHVyZXM7IGdvb2QgZGF0YSBzdHJ1Y3R1cmVzIGFsd2F5cyByZXF1aXJlIGFsbG9jYXRp b25zLgo+PiA+Cj4+ID5Qcm9maWxlLCBwcm9maWxlLCBwcm9maWxlLCBhbmQgcmVtZW1iZXIgeW91 ciBiYXNpYyBDUyAoYmlnIE8gbm90YXRpb24pIC0KPj4gPjkwJSBvZiB0aGUgdGltZSwgc2ltcGxl IGNvZGUgd2l0aCBnb29kIGJpZyBPIHJ1bm5pbmcgdGltZSBpcyBhbGwgeW91Cj4+ID5uZWVkLgo+ PiAKPj4gY29weSB0aGF0fiEKPgo+QW5vdGhlciB0aGluZyB0byBub3RlIGlzIHRoYXQgbWVtb3J5 IGxheW91dCAtIGF2b2lkaW5nIHBvaW50ZXIgY2hhc2luZyAtCj5pcyBodWdlbHkgaW1wb3J0YW50 LCBidXQgaXQnbGwgYWxtb3N0IG5ldmVyIHNob3cgdXAgYXMgYWxsb2NhdG9yIGNhbGxzLgo+Cj5U byBnaXZlIHlvdSBzb21lIGV4YW1wbGVzLCBtZW1wb29scyBhbmQgYmlvc2V0cyB1c2VkIHRvIGJl IHNlcGFyYXRlbHkKPmFsbG9jYXRlZC4gVGhpcyB3YXMgbWFpbmx5IHRvIG1ha2UgZXJyb3IgcGF0 aHMgaW4gb3V0ZXIgb2JqZWN0Cj5jb25zdHJ1Y3RvcnMvZGVzdHJ1Y3RvcnMgZWFzaWVyIGFuZCBz YWZlcjogaW5zdGVhZCBvZiBrZWVwaW5nIHRyYWNrIG9mCj53aGF0J3MgaW5pdGlhbGl6ZWQgYW5k IHdoYXQncyBub3QsIGlmIHlvdSd2ZSBnb3QgYSBwb2ludGVyIHRvIGEKPm1lbXBvb2wvYmlvc2V0 IHlvdSBjYWxsICpfZnJlZSgpIG9uIGl0Lgo+Cj4oUGVvcGxlIGhhZG4ndCB5ZXQgY2x1ZWQgdGhh dCB5b3UgY2FuIGp1c3Qga3phbGxvYygpIHRoZSBlbnRpcmUgb3V0ZXIKPm9iamVjdCwgYW5kIHRo ZW4gaWYgdGhlIGlubmVyIG9iamVjdCBpcyB6ZXJvZWQgaXQgd2Fzbid0IGluaXRpYWxpemVkKS4K Pgo+QnV0IHRoYXQgbWVhbnMgeW91J3JlIGFkZGluZyBhIHBvaW50ZXIgY2hhc2UgdG8gZXZlcnkg bWVtcG9vbF9hbGxvYygpCj5jYWxsLCBhbmQgc2luY2UgYmlvc2V0IGl0c2VsZiBoYXMgbWVtcG9v bHMgYWxsb2NhdGluZyBiaW9zIGhhZCBfdHdvXwo+dW5uZWNlc3NhcnkgcG9pbnRlciBkZXJlZnMu IFRoYXQncyBkZWF0aCBmb3IgcGVyZm9ybWFuY2Ugd2hlbiB5b3UncmUKPnJ1bm5pbmcgY2FjaGUg Y29sZCwgYnV0IHNpbmNlIGV2ZXJ5b25lIGJlbmNobWFya3MgY2FjaGUtaG90Li4uCj4KPihJIHdh cyB0aGUgb25lIHdobyBmaXhlZCB0aGF0KS4KPgo+QW5vdGhlciBiaWcgb25lIHdhcyBnZW5lcmlj X2ZpbGVfYnVmZmVyZWRfcmVhZCgpLiBNYWluIGJ1ZmZlcmVkIHJlYWQKPnBhdGgsIGV2ZXJ5b25l IHdhbnRzIGl0IHRvIGJlIGFzIGZhc3QgYXMgcG9zc2libGUuCj4KPkJ1dCB0aGUgY29yZSBpcyAo d2FzKSBhIGxvb3AgdGhhdCB3YWxrcyB0aGUgcGFnZWNhY2hlIHJhZGl4IHRyZWUgdG8gZ2V0Cj50 aGUgcGFnZSwgdGhlbiBjb3BpZXMgNGsgb2YgZGF0YSBvdXQgdG8gdXNlcnNwYWNlICh0aGVyZSBn b2VzIGwxKSwgdGhlbgo+cmVwZWF0cyBhbGwgdGhhdCBwb2ludGVyIGNoYXNpbmcgZm9yIHRoZSBu ZXh0IDRrLiBQcmUgbGFyZ2UgZm9saW9zLCBpdAo+d2FzIGhvcnJpZmljLgo+Cj5Tb2x1dGlvbiAt IHZlY3Rvcml6ZSBpdC4gTG9vayB1cCBhbGwgdGhlIHBhZ2VzIHdlJ3JlIGNvcHlpbmcgZnJvbSBh bGwgYXQKPm9uY2UsIHN0dWZmIHRoZW0gaW4gYSAoZHluYW1pY2FsbHkgYWxsb2NhdGVkISBmb3Ig ZWFjaCByZWFkISkgdmVjdG9yLAo+YW5kIHRoZW4gZG8gdGhlIGNvcHlpbmcgb3V0IHRvIHVzZXJz cGFjZSBhbGwgYXQgb25jZS4gTWFzc2l2ZQo+cGVyZm9ybWFuY2UgZ2Fpbi4KPgo+T2YgY291cnNl LCB0byBkbyB0aGF0IEkgZmlyc3QgaGFkIHRvIGNsZWFuIHVwIGEgdGFuZ2xlZCAyNTArIGxpbmUK Pm1vbnN0cm9zaXR5IG9mIGhhbGYgYmFrZWQsIHBvb3JseSB0aG91Z2h0IG91dCAib3B0aW1pemF0 aW9ucyIgKHRoZSB3b3JzdAo+c3BhZ2hldHRpIG9mIGdvdG9zIHlvdSdkIGV2ZXIgc2VlbikgYW5k IHR1cm4gaXQgaW50byBzb21ldGhpbmcKPm1hbmFnZWFibGUuLi4KPgo+U28gLSBrZWVwIHRoaW5n cyBzaW1wbGUsIGRvbid0IG92ZXJ0aGluayB0aGUgbGl0dGxlIHN0dWZmLCBzbyB5b3UgY2FuCj5z cG90IGFuZCB0YWNrbGUgdGhlIGJpZyBhbGdvcml0aG1pYyB3aW5zIDopCkkgd2lsbCBrZWVwIHRo aXMgaW4gbWluZH4hIDopCgpBbmQgdGhhbmtzIGZvciB0aGUgZW5saWdodGVuaW5nIG5vdGVzfiEh IAoKVGhvdWdoIEkgY291bGQgbm90IHF1aXRlIGNhdGNoIHVwIHdpdGggdGhlIGZpcnN0IG9uZSwg IEkgdGhpbmsgSSBnb3QgdGhlIHBvaW50Ogphdm9pZCB1bm5lY2Vzc2FyeSBwb2ludGVyIGNoYXNp bmcgYW5kICBrZWVwIHRoZSBwb2ludGVyIGNoYXNpbmcgYXMgc2hvcnQoYmFsYW5jZWQpIGFzIHBv c3NpYmxlfiAKClRoZSBzZWNvbmQgb25lLCBhYm91dCBjb3B5IDRrIGJ5IDRrLCBzZWVtcyAgcXVp dGUgc2ltaWxhciB0byBzZXFfZmlsZSwgYXQgbGVhc3QgdGhlICI0ayIgcGFydCwgbGl0ZXJhbGx5 LgpzZXFfZmlsZSByZWFkKCkgIGRlZmF1bHRzIHRvIGFsbG9jIDRrIGJ1ZmZlciwgYW5kIHJlYWQg ZGF0YSB1bnRpbCBFT0Ygb3IgdGhlIDRrIGJ1ZmZlciBpcyBmdWxsLCAgIGFuZCBzdGFydCBvdmVy CmFnYWluIGZvciB0aGUgbmV4dCByZWFkKCkuICAgCk9uZSBzb2x1dGlvbiBjb3VsZCBiZSBtYWtl IGNoYW5nZXMgdG8gc2VxX2ZpbGUsIGRvIG5vdCBzdG9wIHVudGlsIHVzZXIgYnVmZmVyIGlzIGZ1 bGwgZm9yIGVhY2ggcmVhZC4Ka2luZCBvZiBzaW1pbGFyIHRvIHlvdXIgc2Vjb25kIG5vdGUsIGlu IGEgc2VxdWVudGlhbCBzdHlsZSwgIEkgdGhpbmsuCklmICB1c2VyIHJlYWQgd2l0aCAxMjhLIGJ1 ZmZlciwgIGFuZCBzZXFfZmlsZSBmaWxsIHRoZSBidWZmZXIgNGsgYnkgNGssIGl0IHdvdWxkIG9u bHkgbmVlZCB+MyByZWFkIGNhbGxzIGZvciBhbGxvY2luZm8uCihJIGRpZCBwb3N0IGEgcGF0Y2gg Zm9yIHNlcV9maWxlIHRvIGZpbGwgdXNlciBidWZmZXIsIGJ1dCBzdGFydC9zdG9wIHN0aWxsIGhh cHBlbnMgYXQgIDRrIGJvdW5kYXJ5ICwgc28gbm8gaGVscCBmb3IgCnRoZSBpdGVyYXRvciByZXdp bmRpbmcgd2hlbiByZWFkIC9wcm9jL2FsbG9jaW5mbyB5ZXQuCmh0dHBzOi8vbG9yZS5rZXJuZWwu b3JnL2xrbWwvMjAyNDEyMjAxNDA4MTkuOTg4Ny0xLTAwMTA3MDgyQDE2My5jb20vICkKVGhlIHNv bHV0aW9uIGluIHRoaXMgcGF0Y2ggaXMga2VlcGluZyB0aGUgaXRlcmF0b3IgYWxpdmUgYW5kIHZh bGlkIGNyb3NzIHJlYWQgYm91bmRhcnksIHRoaXMgY2FuICBhbHNvIGF2b2lkIHRoZSBjb3N0IGZv ciAKZWFjaCBzdGFydCBvdmVyLgoKCgpEYXZpZAoK