From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by mail.toke.dk (Postfix) with ESMTPS id 5B029A3CF80 for ; Wed, 15 Nov 2023 11:05:24 +0100 (CET) Authentication-Results: mail.toke.dk; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=T6sxZnuL Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by ams.source.kernel.org (Postfix) with ESMTP id 398DBB81850; Wed, 15 Nov 2023 10:05:22 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5126BC433C7; Wed, 15 Nov 2023 10:05:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1700042721; bh=DZed9r/uuffRfe8k59h8AmxiUG073vO6ie7IjrT87lQ=; h=Date:Cc:Subject:To:References:From:In-Reply-To:From; b=T6sxZnuLR6e7N9aXymb2tIfTziRk/3poR8ZcYZhPWeut0365Va7yc+RLZPoj58BRC h7+Z2xCfrC7zvujGof+obMMhIl+QUc4RqrnBGX+URz39uFfqfSuTslo3wT1e+Rj2u4 c7BfZbjbZKUhF0vf42HcOhE7B1O1nGGE619LFWh6gBIJqFL0+28nxvALEcRSJQIzwr V1zl6Rp4TKMky1/tPsqxhE1fV/GspKUKxmYwzjUzCbkDODa9Jlg7/8tJgSV/HyfJXr ZlmGoOXBEXKzYO+59hfsSmVdn4c7P1vYry9jSXrVzqgr/ZBKsDf9rMsyOHx3ML00OE O0TOb6vqYlI+g== Message-ID: Date: Wed, 15 Nov 2023 11:05:12 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: Stanislav Fomichev References: <20231102225837.1141915-1-sdf@google.com> <20231102225837.1141915-3-sdf@google.com> <2ed17b27-f211-4f58-95b5-5a71914264f3@kernel.org> From: Jesper Dangaard Brouer In-Reply-To: Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Message-ID-Hash: CVHBFDU2VQNMRFUATUJAI7OR3MXCTKGL X-Message-ID-Hash: CVHBFDU2VQNMRFUATUJAI7OR3MXCTKGL X-MailFrom: hawk@kernel.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: hawk@kernel.org, bpf@vger.kernel.org, ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, martin.lau@linux.dev, song@kernel.org, yhs@fb.com, john.fastabend@gmail.com, kpsingh@kernel.org, haoluo@google.com, jolsa@kernel.org, kuba@kernel.org, toke@kernel.org, willemb@google.com, dsahern@kernel.org, magnus.karlsson@intel.com, bjorn@kernel.org, maciej.fijalkowski@intel.com, yoong.siang.song@intel.com, netdev@vger.kernel.org, xdp-hints@xdp-project.net X-Mailman-Version: 3.3.8 Precedence: list Subject: [xdp-hints] Re: [PATCH bpf-next v5 02/13] xsk: Add TX timestamp and TX checksum offload support List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQoNCk9uIDExLzEzLzIzIDE4OjAyLCBTdGFuaXNsYXYgRm9taWNoZXYgd3JvdGU6DQo+IE9uIDEx LzEzLCBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIHdyb3RlOg0KPj4NCj4+DQo+PiBPbiAxMS8xMy8y MyAxNToxMCwgU3RhbmlzbGF2IEZvbWljaGV2IHdyb3RlOg0KPj4+IE9uIE1vbiwgTm92IDEzLCAy MDIzIGF0IDU6MTbigK9BTSBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyIDxoYXdrQGtlcm5lbC5vcmc+ IHdyb3RlOg0KPj4+Pg0KPj4+Pg0KPj4+PiBPbiAxMS8yLzIzIDIzOjU4LCBTdGFuaXNsYXYgRm9t aWNoZXYgd3JvdGU6DQo+Pj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2lmX3hk cC5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lmX3hkcC5oDQo+Pj4+PiBpbmRleCAyZWNmNzkyODJj MjYuLmIwZWU3YWQxOWI1MSAxMDA2NDQNCj4+Pj4+IC0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9p Zl94ZHAuaA0KPj4+Pj4gKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lmX3hkcC5oDQo+Pj4+PiBA QCAtMTA2LDYgKzEwNiw0MSBAQCBzdHJ1Y3QgeGRwX29wdGlvbnMgew0KPj4+Pj4gICAgICNkZWZp bmUgWFNLX1VOQUxJR05FRF9CVUZfQUREUl9NQVNLIFwNCj4+Pj4+ICAgICAgICAgKCgxVUxMIDw8 IFhTS19VTkFMSUdORURfQlVGX09GRlNFVF9TSElGVCkgLSAxKQ0KPj4+Pj4NCj4+Pj4+ICsvKiBS ZXF1ZXN0IHRyYW5zbWl0IHRpbWVzdGFtcC4gVXBvbiBjb21wbGV0aW9uLCBwdXQgaXQgaW50byB0 eF90aW1lc3RhbXANCj4+Pj4+ICsgKiBmaWVsZCBvZiBzdHJ1Y3QgeHNrX3R4X21ldGFkYXRhLg0K Pj4+Pj4gKyAqLw0KPj4+Pj4gKyNkZWZpbmUgWERQX1RYTURfRkxBR1NfVElNRVNUQU1QICAgICAg ICAgICAgICgxIDw8IDApDQo+Pj4+PiArDQo+Pj4+PiArLyogUmVxdWVzdCB0cmFuc21pdCBjaGVj a3N1bSBvZmZsb2FkLiBDaGVja3N1bSBzdGFydCBwb3NpdGlvbiBhbmQgb2Zmc2V0DQo+Pj4+PiAr ICogYXJlIGNvbW11bmljYXRlZCB2aWEgY3N1bV9zdGFydCBhbmQgY3N1bV9vZmZzZXQgZmllbGRz IG9mIHN0cnVjdA0KPj4+Pj4gKyAqIHhza190eF9tZXRhZGF0YS4NCj4+Pj4+ICsgKi8NCj4+Pj4+ ICsjZGVmaW5lIFhEUF9UWE1EX0ZMQUdTX0NIRUNLU1VNICAgICAgICAgICAgICAgICAgICAgICgx IDw8IDEpDQo+Pj4+PiArDQo+Pj4+PiArLyogQUZfWERQIG9mZmxvYWRzIHJlcXVlc3QuICdyZXF1 ZXN0JyB1bmlvbiBtZW1iZXIgaXMgY29uc3VtZWQgYnkgdGhlIGRyaXZlcg0KPj4+Pj4gKyAqIHdo ZW4gdGhlIHBhY2tldCBpcyBiZWluZyB0cmFuc21pdHRlZC4gJ2NvbXBsZXRpb24nIHVuaW9uIG1l bWJlciBpcw0KPj4+Pj4gKyAqIGZpbGxlZCBieSB0aGUgZHJpdmVyIHdoZW4gdGhlIHRyYW5zbWl0 IGNvbXBsZXRpb24gYXJyaXZlcy4NCj4+Pj4+ICsgKi8NCj4+Pj4+ICtzdHJ1Y3QgeHNrX3R4X21l dGFkYXRhIHsNCj4+Pj4+ICsgICAgIHVuaW9uIHsNCj4+Pj4+ICsgICAgICAgICAgICAgc3RydWN0 IHsNCj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICBfX3UzMiBmbGFnczsNCj4+Pj4+ICsNCj4+ Pj4+ICsgICAgICAgICAgICAgICAgICAgICAvKiBYRFBfVFhNRF9GTEFHU19DSEVDS1NVTSAqLw0K Pj4+Pj4gKw0KPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIC8qIE9mZnNldCBmcm9tIGRlc2Mt PmFkZHIgd2hlcmUgY2hlY2tzdW1taW5nIHNob3VsZCBzdGFydC4gKi8NCj4+Pj4+ICsgICAgICAg ICAgICAgICAgICAgICBfX3UxNiBjc3VtX3N0YXJ0Ow0KPj4+Pj4gKyAgICAgICAgICAgICAgICAg ICAgIC8qIE9mZnNldCBmcm9tIGNzdW1fc3RhcnQgd2hlcmUgY2hlY2tzdW0gc2hvdWxkIGJlIHN0 b3JlZC4gKi8NCj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICBfX3UxNiBjc3VtX29mZnNldDsN Cj4+Pj4+ICsgICAgICAgICAgICAgfSByZXF1ZXN0Ow0KPj4+Pj4gKw0KPj4+Pj4gKyAgICAgICAg ICAgICBzdHJ1Y3Qgew0KPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIC8qIFhEUF9UWE1EX0ZM QUdTX1RJTUVTVEFNUCAqLw0KPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIF9fdTY0IHR4X3Rp bWVzdGFtcDsNCj4+Pj4+ICsgICAgICAgICAgICAgfSBjb21wbGV0aW9uOw0KPj4+Pj4gKyAgICAg fTsNCj4+Pj4+ICt9Ow0KPj4+Pg0KPj4+PiBUaGlzIGxvb2tzIHdyb25nIHRvIG1lLiBJdCBsb29r cyBsaWtlIG1lbWJlciBAZmxhZ3MgaXMgbm90IGF2YWlsIGF0DQo+Pj4+IGNvbXBsZXRpb24gdGlt ZS4gIEF0IGNvbXBsZXRpb24gdGltZSwgSSBhc3N1bWUgd2UgYWxzbyB3YW50IHRvIGtub3cgaWYN Cj4+Pj4gc29tZW9uZSByZXF1ZXN0ZWQgdG8gZ2V0IHRoZSB0aW1lc3RhbXAgZm9yIHRoaXMgcGFj a2V0IChlbHNlIHdlIGNvdWxkDQo+Pj4+IHJlYWQgZ2FyYmFnZSkuDQo+Pj4NCj4+PiBJJ3ZlIG1v dmVkIHRoZSBwYXJ0cyB0aGF0IGFyZSBwcmVzZXJ2ZWQgYWNyb3NzIHR4IGFuZCB0eCBjb21wbGV0 aW9uDQo+Pj4gaW50byB4c2tfdHhfbWV0YWRhdGFfY29tcGwuDQo+Pj4gVGhpcyBpcyB0byBhZGRy ZXNzIE1hZ251cy9NYWNpZWogZmVlZGJhY2sgd2hlcmUgdXNlcnNwYWNlIG1pZ2h0IHJhY2UNCj4+ PiB3aXRoIHRoZSBrZXJuZWwuDQo+Pj4gU2VlOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9icGYv Wk5vSmVuektYVzVRU1IzRUBib3hlci8NCj4+Pg0KPj4NCj4+IERvZXMgdGhpcyBtZWFuIHRoYXQg ZXZlcnkgZHJpdmVyIGhhdmUgdG8gZXh0ZW5kIHRoZWlyIFRYLWRlc2MgcmluZyB3aXRoDQo+PiBz aXplb2Yoc3RydWN0IHhza190eF9tZXRhZGF0YV9jb21wbCk/DQo+PiBXb24ndCB0aGlzIGFmZmVj dCB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhpcyBWNT8NCj4gDQo+IFllcywgYnV0IGl0IGRvZXNuJ3Qg aGF2ZSB0byBiZSBhIGRlc2NyaXB0b3IuIE1pZ2h0IGJlIHNvbWUgaW50ZXJuYWwNCj4gZHJpdmVy IGNvbXBsZXRpb24gcXVldWUgKGFzIGluIHRoZSBjYXNlIG9mIG1seDUpLiBBbmQgZGVmaW5pdGVs eSBkb2VzDQo+IGFmZmVjdCBwZXJmb3JtYW5jZSA6LSggKHNlZSBhbGwgdGhlIHN0YXRpYyBicmFu Y2hlcyB0byBkaXNhYmxlIGl0KQ0KPiAgIA0KPj4gICAkIHBhaG9sZSAtQyB4c2tfdHhfbWV0YWRh dGFfY29tcGwNCj4+IC4vZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFj LmtvDQo+PiAgIHN0cnVjdCB4c2tfdHhfbWV0YWRhdGFfY29tcGwgew0KPj4gCV9fdTY0ICogICAg ICAgICAgICAgIHR4X3RpbWVzdGFtcDsgICAgICAgICAvKiAgICAgMCAgICAgOCAqLw0KPj4NCj4+ IAkvKiBzaXplOiA4LCBjYWNoZWxpbmVzOiAxLCBtZW1iZXJzOiAxICovDQo+PiAJLyogbGFzdCBj YWNoZWxpbmU6IDggYnl0ZXMgKi8NCj4+ICAgfTsNCj4+DQo+PiBHdWVzcywgSSBtdXN0IGJlIG1p c3VuZGVyc3RhbmRpbmcsIGFzIEkgd2FzIGV4cGVjdGluZyB0byBzZWUgdGhlIEBmbGFncw0KPj4g bWVtYmVyIGJlaW5nIHByZXNlcnZlZCBhY3Jvc3MsIGFzIEkgZ2V0IHRoZSByYWNlIHRoZXJlLg0K Pj4NCj4+IExvb2tpbmcgYXQgc3RtbWFjIGRyaXZlciwgaXQgZG9lcyBsb29rIGxpa2UgdGhpcyB4 c2tfdHhfbWV0YWRhdGFfY29tcGwNCj4+IGlzIHBhcnQgb2YgdGhlIFRYLXJpbmcgZm9yIGNvbXBs ZXRpb24gKHR4X3NrYnVmZl9kbWEpIGFuZCB0aGUNCj4+IHR4X3RpbWVzdGFtcCBkYXRhIGlzIGdl dHRpbmcgc3RvcmVkIGhlcmUuICBIb3cgaXMgdXNlcnNwYWNlIEFGX1hEUA0KPj4gYXBwbGljYXRp b24gZ2V0dGluZyBhY2Nlc3MgdG8gdGhlIHR4X3RpbWVzdGFtcCBkYXRhPw0KPj4gSSB0aG91Z2gg dGhpcyB3YXMgc3VwcG9zZSB0byBnZXQgc3RvcmVkIGluIG1ldGFkYXRhIGRhdGEgYXJlYSAodW1l bSk/DQo+Pg0KPj4gQWxzbyBsb29raW5nIGF0IHRoZSBjb2RlLCB0aGUga2VybmVsIHdvdWxkIG5v dCBoYXZlIGEgImNyYXNoIiByYWNlIG9uDQo+PiB0aGUgZmxhZ3MgbWVtYmVyIChpZiB3ZSBwcmVz ZXJ2ZSBpbiBzdHJ1Y3QpLCBiZWNhdXNlIHRoZSBjb2RlIGNoZWNrcyB0aGUNCj4+IGRyaXZlciBI Vy1UUyBjb25maWctc3RhdGUgKyBUWC1kZXNjcmlwdG9yIGZvciB0aGUgYXZhaWxhYmlsaXR5IG9m IGENCj4+IEhXLVRTIGluIHRoZSBkZXNjcmlwdG9yLg0KPiANCj4geHNrX3R4X21ldGFkYXRhX2Nv bXBsIHN0b3JlcyBhIHBvaW50ZXIgdG8gdGhlIGNvbXBsZXRpb24gdGltZXN0YW1wDQo+IGluIHRo ZSB1bWVtLCBzbyBldmVyeXRoaW5nIHN0aWxsIGFycml2ZXMgdmlhIHRoZSBtZXRhZGF0YSBhcmVh Lg0KPiANCj4gV2Ugd2FudCB0byBtYWtlIHN1cmUgdGhlIGZsYWdzIGFyZSBub3QgY2hhbmdpbmcg YWNyb3NzIHR4IGFuZCB0eCBjb21wbGV0aW9uLg0KPiBJbnN0ZWFkIG9mIHNhdmluZyB0aGUgZmxh Z3MsIHdlIGp1c3QgdXNlIHRoYXQgeHNrX3R4X21ldGFkYXRhX2NvbXBsIHRvDQo+IHNpZ25hbCB0 byB0aGUgY29tcGxldGlvbiB0aGF0ICJJIGtub3cgdGhhdCBJJ3ZlIHJlcXVlc3RlZCB0aGUgdHgN Cj4gY29tcGxldGlvbiB0aW1lc3RhbXAsIHBsZWFzZSBwdXQgaXQgYXQgdGhpcyBhZGRyZXNzIGlu IHVtZW0iLg0KPiANCj4gSSBzdG9yZSB0aGUgcG9pbnRlciBpbnN0ZWFkIG9mIGZsYWdzIHRvIGF2 b2lkIGRvaW5nIHBvaW50ZXIgbWF0aCBhZ2Fpbg0KPiBhdCBjb21wbGV0aW9uLiBCdXQgaXQncyBh biBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgYW5kIHNvbWV3aGF0IGFic3RyYWN0ZWQNCj4gZnJvbSB0 aGUgZHJpdmVycyAoYmVzaWRlcyB0aGUgZmFjdCB0aGF0IGl0J3MgcHJvYmFibHkgaGFzIHRvIGZp dCBpbiA4DQo+IGJ5dGVzKS4NCg0KSSBzZWUgaXQgbm93ICh3aGF0IEkgbWlzc2VkKS4gQXQgVFgg dGltZSB5b3UgYXJlIHN0b3JpbmcgYSBwb2ludGVyIHdoZXJlDQp0byAobGF0ZXIpIHdyaXRlIHRo ZSBUUyBhdCBjb21wbGV0aW9uIHRpbWUuICBJdCBqdXN0IHNlZW1zIG92ZXJraWxsIHRvDQpzdG9y ZSA4IGJ5dGUgKHBvaW50ZXIpIHRvIHNpZ25hbCAodmlhIE5VTEwpIGlmIHRoZSBIV1RTIHdhcyBy ZXF1ZXN0ZWQuDQpTcGFjZSBpbiB0aGUgZHJpdmVycyBUWC1yaW5nIGlzIHBlcmZvcm1hbmNlIGNy aXRpY2FsLCBhbmQgSSB0aGluayBkcml2ZXINCmRldmVsb3BlcnMgd291bGQgcHJlZmVyIHRvIGZp bmQgYSBiaXQgdG8gaW5kaWNhdGUgSFdUUyByZXF1ZXN0ZWQuDQoNCklmIEhXVFMgd2FzICpOT1Qq IHJlcXVlc3RlZCwgdGhlbiB0aGUgbWV0YWRhdGEgYXJlYSB3aWxsIG5vdCBiZSB1cGRhdGVkDQoo cmlnaHQsIGNvcnJlY3Q/KS4gVGhlbiBtZW1vcnkgYXJlYSBpcyBiYXNpY2FsbHkgZ2FyYmFnZSB0 aGF0IHN1cnZpdmVkLg0KSG93IGRvZXMgdGhlIEFGX1hEUCBhcHBsaWNhdGlvbiBrbm93IHRoaXMg cGFja2V0IGNvbnRhaW5zIGEgSFdUUyBvciBub3Q/DQoNCiBGcm9tIGFuIFVBUEkgUG9WIHdvdWxk bid0IGl0IGJlIGVhc2llciB0byB1c2UgKGFuZCBleHRlbmQpIHZpYSBrZWVwaW5nDQp0aGUgQGZs YWdzIG1lbWJlciAoaW4gc3RydWN0IHhza190eF9tZXRhZGF0YSksIGJ1dCAoYXMgeW91IGFscmVh ZHkgZG8pDQpub3QgbGV0IGtlcm5lbCBjaGVja3MgZGVwZW5kIG9uIGl0ICh0byBhdm9pZCB0aGUg cmFjZXMpLg0KDQo+IA0KPj4+PiBBbm90aGVyIHRoaW5nIChJJ3ZlIHJhaXNlZCB0aGlzIGJlZm9y ZSk6IEl0IHdvdWxkIGJlIHJlYWxseSBwcmFjdGljYWwgdG8NCj4+Pj4gc3RvcmUgYW4gdTY0IG9w YXF1ZSB2YWx1ZSBhdCBUWCBhbmQgdGhlbiByZWFkIGl0IGF0IENvbXBsZXRpb24gdGltZS4NCj4+ Pj4gT25lIHVzZS1jYXNlIGlzIGEgZm9yd2FyZGluZyBhcHBsaWNhdGlvbiBzdG9yaW5nIEhXIFJY LXRpbWUgYW5kDQo+Pj4+IGNvbXBhcmluZyB0aGlzIHRvIFRYIGNvbXBsZXRpb24gdGltZSB0byBk ZWR1Y2UgdGhlIHRpbWUgc3BlbmQgcHJvY2Vzc2luZw0KPj4+PiB0aGUgcGFja2V0Lg0KPj4+DQo+ Pj4gVGhpcyBjYW4gYmUgYW5vdGhlciBtZW1iZXIsIHJpZ2h0PyBCdXQgbm90ZSB0aGF0IGV4dGVu ZGluZw0KPj4+IHhza190eF9tZXRhZGF0YV9jb21wbCBtaWdodCBiZSBhIGJpdCBjb21wbGljYXRl ZCBiZWNhdXNlIGRyaXZlcnMgaGF2ZQ0KPj4+IHRvIGNhcnJ5IHRoaXMgaW5mbyBzb21ld2hlcmUu IFNvIHdlIGhhdmUgdG8gYmFsYW5jZSB0aGUgYW1vdW50IG9mDQo+Pj4gcGFzc2VkIGRhdGEgYmV0 d2VlbiB0aGUgdHggYW5kIHRoZSBjb21wbGV0aW9uLg0KPj4NCj4+IEkgZG9uJ3QgdGhpbmsgbXkg b3BhcXVlIHZhbHVlIHByb3Bvc2FsIGlzIHN1YmplY3QgdG8gc2FtZSByYWNlIHByb2JsZW0uDQo+ PiBJIHRoaW5rIHRoaXMgY2FuIGJlIHN0b3JlcyBpbiBtZXRhZGF0YSBhcmVhIGFuZCBhY3Jvc3Mg dHggYW5kIHR4DQo+PiBjb21wbGV0aW9uLCBiZWNhdXNlIGFueSByYWNlIG9uIGEgZmxhZ3MgY2hh bmdlIGlzIHRoZSB1c2Vyc3BhY2UNCj4+IHByb2dyYW1tZXJzIHByb2JsZW0sIGFzIGl0IGNhbm5v dCBjYXVzZSBhbnkga2VybmVsIGNyYXNoIChnaXZlbiBrZXJuZWwNCj4+IGhhdmUgbm8gbmVlZCB0 byByZWFkIHRoaXMpLg0KPiANCj4gVGhpbmtpbmcgYWJvdXQgaXQsIEkgZG9uJ3QgdGhpbmsgdGhp cyBuZWVkcyBhbnkgc3BlY2lhbCBoYW5kaW5nPw0KPiBZb3UgY2FuIHJlcXVlc3Qgc2l6ZW9mKHN0 cnVjdCB4c2tfdHhfbWV0YWRhdGEpICsgc2l6ZW9mKG9wYXF1ZSBkYXRhKQ0KPiBhcyBtZXRhZGF0 YS4gVGhlIGtlcm5lbCB3b24ndCB0b3VjaCB0aGUgJ29wYXF1ZSBkYXRhJyBwYXJ0LiBPciBhbSBJ IG1pc3NpbmcNCj4gc29tZXRoaW5nPw0KDQpTdXJlLCBJIGNhbiBqdXN0IGNyZWF0ZSBzb21lIHJv b20gYWZ0ZXIgc3RydWN0IHhza190eF9tZXRhZGF0YSwgdmlhIA0Kc2V0dGluZyBzb21ldGhpbmcg bGFyZ2VyIHRoYW4gc2l6ZW9mKHN0cnVjdCB4c2tfdHhfbWV0YWRhdGEpLiAgSSdtIA0KYnV5aW5n IHRoYXQuDQoNCi0tSmVzcGVyDQo=