From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp3.kau.se (smtp3.kau.se [130.243.21.252]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 249D93B2A4 for ; Mon, 17 Oct 2022 11:14:35 -0400 (EDT) Received: from mailfilter-ng-4.sunet.se (mailfilter-89-45-235-5.instance.cloud.sunet.se [89.45.235.5]) by smtp3.kau.se (Postfix) with ESMTPS id C2D292204CA for ; Mon, 17 Oct 2022 17:14:33 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kau.se; s=kause; t=1666019673; bh=5cKvgtD6AhB8aQC6MlCwlFmxQEz1nWCph6aCQqv0IC4=; h=From:To:Subject:Date:References:In-Reply-To:From; b=eODJsK1sU3vPU9q4vpL+zCncykLY8Ai19+8d7Xt4IfYLJAth5NdwCaKYxw4KzLQXm 4Y5fUcjIn8Y8pQM1Hq+vYJhqFbypaS9+S04bXDNSxXworBhx8P75VjhTANoNbLzwK0 O3Dv1ICPkn3RHD5i8tzGn/BeDqUPBgfwnoCwbNas= X-Halon-ID: 674bcef8-4e2e-11ed-b2a3-6717450a0811 Received: from Exch-A1.personal.kau (exch-a1.kau.se [130.243.19.82]) by mailfilter-ng-4.sunet.se (Halon) with ESMTPS id 674bcef8-4e2e-11ed-b2a3-6717450a0811; Mon, 17 Oct 2022 15:14:32 +0000 (UTC) Received: from Exch-A3.personal.kau (130.243.19.84) by Exch-A1.personal.kau (130.243.19.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.2375.32; Mon, 17 Oct 2022 17:14:32 +0200 Received: from Exch-A3.personal.kau ([fe80::7814:bbca:1c3a:e0b0]) by Exch-A3.personal.kau ([fe80::7814:bbca:1c3a:e0b0%4]) with mapi id 15.01.2375.032; Mon, 17 Oct 2022 17:14:32 +0200 From: Simon Sundberg To: "toke@toke.dk" , "herberticus@gmail.com" , "libreqos@lists.bufferbloat.net" Thread-Topic: [LibreQoS] In BPF pping - so far Thread-Index: AQHY4jKgcUk9sUkIn0Sg1+2ftTFthq4SkGQA Date: Mon, 17 Oct 2022 15:14:32 +0000 Message-ID: <759c25c6fd54dceccc00eada5ccf5358d2d1c20c.camel@kau.se> References: <87bkqatu61.fsf@toke.dk> In-Reply-To: <87bkqatu61.fsf@toke.dk> Accept-Language: sv-SE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [130.243.27.149] Content-Type: text/plain; charset="utf-8" Content-ID: <162BDF6DA9FC754586D4F5EE89068654@personal.kau> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Mailman-Approved-At: Mon, 17 Oct 2022 11:44:18 -0400 Subject: Re: [LibreQoS] In BPF pping - so far X-BeenThere: libreqos@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Oct 2022 15:14:35 -0000 SGksIHRoYW5rcyBmb3IgYWRkaW5nIG1lIHRvIHRoZSBjb252ZXJzYXRpb24uIEp1c3QgYSBjb3Vw bGUgb2YgcXVpY2sNCm5vdGVzLg0KDQpPbiBNb24sIDIwMjItMTAtMTcgYXQgMTY6MTMgKzAyMDAs IFRva2UgSMO4aWxhbmQtSsO4cmdlbnNlbiB3cm90ZToNCj4gWyBBZGRpbmcgU2ltb24gdG8gQ2Mg XQ0KPg0KPiBIZXJiZXJ0IFdvbHZlcnNvbiB2aWEgTGlicmVRb1MgPGxpYnJlcW9zQGxpc3RzLmJ1 ZmZlcmJsb2F0Lm5ldD4gd3JpdGVzOg0KPg0KPiA+IEhleSwNCj4gPg0KPiA+IEkndmUgaGFkIHNv bWUgcHJldHR5IGdvb2Qgc3VjY2VzcyB3aXRoIG1lcmdpbmcgeGRwLXBwaW5nICgNCj4gPiBodHRw czovL2dpdGh1Yi5jb20veGRwLXByb2plY3QvYnBmLWV4YW1wbGVzL2Jsb2IvbWFzdGVyL3BwaW5n L3BwaW5nLmggKQ0KPiA+IGludG8geGRwLWNwdW1hcC10YyAoIGh0dHBzOi8vZ2l0aHViLmNvbS94 ZHAtcHJvamVjdC94ZHAtY3B1bWFwLXRjICkuDQo+ID4NCj4gPiBJIHBvcnRlZCBvdmVyIG1vc3Qg b2YgdGhlIHhkcC1wcGluZyBjb2RlLCBhbmQgdGhlbiBjaGFuZ2VkIHRoZSBlbnRyeSBwb2ludA0K PiA+IGFuZCBwYWNrZXQgcGFyc2luZyBjb2RlIHRvIG1ha2UgdXNlIG9mIHRoZSB3b3JrIGFscmVh ZHkgZG9uZSBpbg0KPiA+IHhkcC1jcHVtYXAtdGMgKGl0J3MgYWxyZWFkeSBwYXJzZWQgYSBiaWcg Y2h1bmsgb2YgdGhlIHBhY2tldCwgbm8gbmVlZCB0byBkbw0KPiA+IGl0IHR3aWNlKS4gVGhlbiBJ IHN3aXRjaGVkIHRoZSBtYXBzIHRvIHBlci1jcHUgbWFwcywgYW5kIGhhZCB0byBwaW4gdGhlbSAt DQo+ID4gb3RoZXJ3aXNlIHRoZSB0d28gdGMgaW5zdGFuY2VzIGRvbid0IHByb3Blcmx5IHNoYXJl IGRhdGEuDQo+ID4NCg0KSSBndWVzcyB0aGUgeGRwLWNwdW1hcC10YyBlbnN1cmVzIHRoYXQgdGhl IHNhbWUgZmxvdyBpcyBwcm9jZXNzZWQgb24NCnRoZSBzYW1lIENQVSBjb3JlIGF0IGJvdGggaW5n cmVzcyBvciBlZ3Jlc3MuIE90aGVyd2lzZSwgaWYgYSBmbG93IG1heQ0KYmUgcHJvY2Vzc2VkIGJ5 IGRpZmZlcmVudCBjb3JlcyBvbiBpbmdyZXNzIGFuZCBlZ3Jlc3MgdGhlIHBlci1DUFUgbWFwcw0K d2lsbCBub3QgcmVhbGx5IHdvcmsgcmVsaWFibHkgYXMgZWFjaCBjb3JlIHdpbGwgaGF2ZSBhIGRp ZmZlcmVudCB2aWV3DQpvbiB0aGUgc3RhdGUgb2YgdGhlIGZsb3csIGlmIHRoZXJlJ3MgYmVlbiBh IHByZXZpb3VzIHBhY2tldCB3aXRoIGENCmNlcnRhaW4gVFN2YWwgZnJvbSB0aGF0IGZsb3cgZXRj Lg0KDQpGdXJ0aGVybW9yZSwgaWYgYSBmbG93IGlzIGFsd2F5cyBwcm9jZXNzZWQgb24gdGhlIHNh bWUgY29yZSAob24gYm90aA0KaW5ncmVzcyBhbmQgZWdyZXNzKSBJIHRoaW5rIHBlci1DUFUgbWFw cyBtYXkgYmUgYSBiaXQgd2FzdGVmdWwgb24NCm1lbW9yeS4gRnJvbSBteSB1bmRlcnN0YW5kaW5n IHRoZSBrZXlzIGZvciBwZXItQ1BVIG1hcHMgYXJlIHN0aWxsDQpzaGFyZWQgYWNyb3NzIGFsbCBD UFVzLCBpdCdzIGp1c3QgdGhhdCBlYWNoIENQVSBnZXRzIGl0cyBvd24gdmFsdWUuIFNvDQphbGwg Q1BVcyB3aWxsIHRoZW4gaGF2ZSB0aGVpciBvd24gZGF0YSBmb3IgZWFjaCBmbG93LCBidXQgaXQn cyBvbmx5IHRoZQ0KQ1BVIHByb2Nlc3NpbmcgdGhlIGZsb3cgdGhhdCB3aWxsIGhhdmUgYW55IHJl bGV2YW50IGRhdGEgZm9yIHRoZSBmbG93DQp3aGlsZSB0aGUgcmVtYWluaW5nIENQVXMgd2lsbCBq dXN0IGhhdmUgYW4gZW1wdHkgc3RhdGUgZm9yIHRoYXQgZmxvdy4NClVuZGVyIHRoZSBzYW1lIGFz c3VtcHRpb24gdGhhdCBwYWNrZXRzIHdpdGhpbiB0aGUgc2FtZSBmbG93IGFyZSBhbHdheXMNCnBy b2Nlc3NlZCBvbiB0aGUgc2FtZSBjb3JlIHRoZXJlIHNob3VsZCBnZW5lcmFsbHkgbm90IGJlIGFu eQ0KY29uY3VycmVuY3kgaXNzdWVzIHdpdGggaGF2aW5nIGEgZ2xvYmFsIChub24tcGVyLUNQVSkg ZWl0aGVyIGFzIHBhY2tldHMNCmZyb20gdGhlIHNhbWUgZmxvdyBjYW5ub3QgYmUgcHJvY2Vzc2Vk IGNvbmN1cnJlbnRseSB0aGVuIChhbmQgdGh1cyBubw0KY29uY3VycmVudCBhY2Nlc3MgdG8gdGhl IHNhbWUgdmFsdWUgaW4gdGhlIG1hcCkuIEkgYW0gaG93ZXZlciBzdGlsbA0KdmVyeSB1bmNsZWFy IG9uIGlmIHRoZXJlJ3MgYW55IGNvbnNpZGVyYWJsZSBwZXJmb3JtYW5jZSBpbXBhY3QgYmV0d2Vl bg0KZ2xvYmFsIGFuZCBwZXItQ1BVIG1hcCB2ZXJzaW9ucyBpZiB0aGUgc2FtZSBrZXkgaXMgbm90 IGFjY2Vzc2VkDQpjb25jdXJyZW50bHkuDQoNCj4gPiBSaWdodCBub3csIG91dHB1dA0KPiA+IGlz IGp1c3Qgc3R1YmJlZCAtIEkndmUgc3RpbGwgZ290IHRvIHBvcnQgdGhlIHBlcmZtYXAgb3V0cHV0 IGNvZGUuIEluc3RlYWQsDQo+ID4gSSdtIGR1bXBpbmcgYSBidW5jaCBvZiBleHRyYSBkYXRhIHRv IHRoZSBrZXJuZWwgZGVidWcgcGlwZSwgc28gSSBjYW4gc2VlDQo+ID4gcm91Z2hseSB3aGF0IHRo ZSBvdXRwdXQgd291bGQgbG9vayBsaWtlLg0KPiA+DQo+ID4gV2l0aCBkZWJ1ZyBlbmFibGVkIGFu ZCBqdXN0IGxvZ2dpbmcgSSdtIG5vdyBnZXR0aW5nIGFib3V0IDQuOSBHYml0cy9zZWMgb24NCj4g PiBzaW5nbGUtc3RyZWFtIGlwZXJmIGJldHdlZW4gdHdvIFZNcyAod2l0aCBhIHNoYXBlciBWTSBp biB0aGUgbWlkZGxlKS4gOi0pDQo+DQo+IEp1c3QgRllJLCB0aGF0ICJqdXN0IGxvZ2dpbmciIGlz IHByb2JhYmx5IHRoZSBiaWdnZXN0IHNvdXJjZSBvZg0KPiBvdmVyaGVhZCwgdGhlbi4gV2hhdCBT aW1vbiBmb3VuZCB3YXMgdGhhdCBzZW5kaW5nIHRoZSBkYXRhIGZyb20ga2VybmVsDQo+IHRvIHVz ZXJzcGFjZSBpcyBvbmUgb2YgdGhlIG1vc3QgZXhwZW5zaXZlIGJpdHMgb2YgZXBwaW5nLCBhdCBs ZWFzdCB3aGVuDQo+IHRoZSBudW1iZXIgb2YgZGF0YSBwb2ludHMgZ29lcyB1cCAod2hpY2ggaXMg ZG9lcyBhcyBhZGRpdGlvbmFsIGZsb3dzIGFyZQ0KPiBhZGRlZCkuDQoNClloZWEsIHJlcG9ydGlu ZyBpbmRpdmlkdWFsIFJUVHMgd2hlbiB0aGVyZSdzIGxvdHMgb2YgdGhlbSAoeW91IG1heSBnZXQN CnVwd2FyZHMgb2YgMTAwMCBSVFRzL3MgcGVyIGZsb3cpIGlzIG5vdCBvbmx5IHByb2JsZW1hdGlj IGluIHRlcm1zIG9mDQpkaXJlY3Qgb3ZlcmhlYWQgZnJvbSB0aGUgdG9vbCBpdHNlbGYsIGJ1dCBh bHNvIGJlY29tZXMgZGVtYW5kaW5nIGZvcg0Kd2hhdGV2ZXIgeW91IHVzZSBhbGwgdGhvc2UgUlRU IHNhbXBsZXMgZm9yIChpLmUuIG5lZWQgdG8gbG9nLCBwYXJzZSwNCmFuYWx5emUgZXRjLiBhIHZl cnkgbGFyZ2UgYW1vdW50IG9mIFJUVHMpLiBPbmUgd2F5IHRvIGRlYWwgd2l0aCB0aGF0IGlzDQpv ZiBjb3Vyc2UgdG8ganVzdCBhcHBseSBzb21lIHNvcnQgb2Ygc2FtcGxpbmcgKHRoZSAtci8tLXJh dGUtbGltaXQgYW5kDQotUi8tLXJ0dC1yYXRlDQo+DQo+ID4gU28gbXkgcXVlc3Rpb246IGhvdyB3 b3VsZCB5b3UgcHJlZmVyIHRvIHJlY2VpdmUgdGhpcyBkYXRhPyBJJ2xsIGhhdmUgdG8NCj4gPiB3 cml0ZSBhIGRhZW1vbiB0aGF0IHByb3ZpZGVzIHVzZXJzcGFjZSBjb250cm9sIChwZXJpb2RpYyBj bGVhbnVwIGFzIHdlbGwgYXMNCj4gPiByZWFkaW5nIHRoZSBwZXJmb3JtYW5jZSBzdHJlYW0pLCBz byB0aGUgd29ybGQncyBraW5kYSBvdXIgb3lzdGVyLiBJIGNhbg0KPiA+IHN0aWNrIHRvIEthdGhp ZSdzIG9yaWdpbmFsIGZvcm1hdCAoYW5kIGR1bXAgaXQgdG8gYSBuYW1lZCBwaXBlLCBwZXJoYXBz PyksDQo+ID4gYSBjb25kZW5zZWQgZm9ybWF0IHRoYXQgb25seSBzaG93cyB3aGF0IHlvdSB3YW50 IHRvIHVzZSwgYW4gZWZmaWNpZW50DQo+ID4gYmluYXJ5IGZvcm1hdCBpZiB5b3UgZmVlbCBsaWtl IHBhcnNpbmcgdGhhdC4uLg0KPg0KPiBJdCB3b3VsZCBiZSBncmVhdCBpZiB3ZSBjb3VsZCBjb21i aW5lIGVmZm9ydHMgYSBiaXQgaGVyZSBzbyB3ZSBkb24ndA0KPiBmb3JrIHRoZSBjb2RlYmFzZSBt b3JlIHRoYW4gd2UgaGF2ZSB0by4gSS5lLiwgaWYgInVwc3RyZWFtIiBlcHBpbmcgYW5kDQo+IHdo YXRldmVyIGRhZW1vbiB5b3UgZW5kIHVwIHdyaXRpbmcgY2FuIGFncmVlIG9uIGRhdGEgZm9ybWF0 IGV0YyB0aGF0DQo+IHdvdWxkIGJlIGZhbnRhc3RpYyEgQWRkZWQgU2ltb24gdG8gQ2MgdG8gZmFj aWxpdGF0ZSB0aGlzIDopDQo+DQo+IEJyaWVmbHkgd2hhdCBJJ3ZlIGRpc2N1c3NlZCBiZWZvcmUg d2l0aCBTaW1vbiB3YXMgdG8gaGF2ZSB0aGUgYWJpbGl0eSB0bw0KPiBhZ2dyZWdhdGUgdGhlIG1l dHJpY3MgaW4gdGhlIGtlcm5lbCAoV2lQIFBSIFswXSkgYW5kIGhhdmUgYSB1c2Vyc3BhY2UNCj4g dXRpbGl0eSBwZXJpb2RpY2FsbHkgcHVsbCB0aGVtIG91dC4gV2hhdCB3ZSBkaXNjdXNzZWQgd2Fz IGRvaW5nIHRoaXMNCj4gdXNpbmcgYW4gTFBNIG1hcCAod2hpY2ggaXMgbm90IGluIHRoYXQgUFIg eWV0KS4gVGhlIGlkZWEgd291bGQgYmUgdGhhdA0KPiB1c2Vyc3BhY2Ugd291bGQgcG9wdWxhdGUg dGhlIExQTSBtYXAgd2l0aCB0aGUga2V5cyAocHJlZml4ZXMpIHRoZXkNCj4gd2FudGVkIHN0YXRp c3RpY3MgZm9yIChpbiBMaWJyZVFPUyBjb250ZXh0IHRoYXQgY291bGQgYmUgb25lIGtleSBwZXIN Cj4gY3VzdG9tZXIsIGZvciBpbnN0YW5jZSkuIEVwcGluZyB3b3VsZCB0aGVuIGRvIGEgbWFwIGxv b2t1cCBpbnRvIHRoZSBMUE0sDQo+IGFuZCBpZiBpdCBnZXRzIGEgbWF0Y2ggaXQgd291bGQgdXBk YXRlIHRoZSBzdGF0aXN0aWNzIGluIHRoYXQgbWFwIGVudHJ5DQo+IChrZWVwaW5nIGEgaGlzdG9n cmFtIG9mIGxhdGVuY3kgdmFsdWVzIHNlZW4sIGJhc2ljYWxseSkuIFNpbW9uJ3MgUFINCj4gYmVs b3cgdXNlcyB0aGlzIHRlY2huaXF1ZSB3aGVyZSB1c2Vyc3BhY2Ugd2lsbCAicmVzZXQiIHRoZSBo aXN0b2dyYW0NCj4gZXZlcnkgdGltZSBpdCBsb2FkcyBpdCBieSBzd2FwcGluZyBvdXQgdHdvIGRp ZmZlcmVudCBtYXAgZW50cmllcyB3aGVuIGl0DQo+IGRvZXMgYSByZWFkOyB0aGlzIGFsbG93cyB5 b3UgdG8gY29udHJvbCB0aGUgc2FtcGxpbmcgcmF0ZSBmcm9tDQo+IHVzZXJzcGFjZSwgYW5kIHlv dSdsbCBqdXN0IGdldCB0aGUgZGF0YSBzaW5jZSB0aGUgbGFzdCB0aW1lIHlvdSBwb2xsZWQuDQoN ClRoYW5rJ3MgVG9rZSBmb3Igc3VtbWFyemluZyBib3RoIHRoZSBjdXJyZW50IHN0YXRlIGFuZCB0 aGUgcGxhbiBnb2luZw0KZm9yd2FyZC4gSSB3aWxsIGp1c3Qgbm90ZSB0aGF0IHRoaXMgUFIgKGFu ZCBhbGwgbXkgb3RoZXIgd29yayB3aXRoDQplUFBpbmcvQlBGLVBQaW5nL1hEUC1QUGluZy9JLXN1 Y2stYXQtbmFtZXMtUFBpbmcpIHdpbGwgYmUgbW9yZSBvciBsZXNzDQpvbiBob2xkIGZvciBhIGNv dXBsZSBvZiB3ZWVrcyByaWdodCBub3cgYXMgSSdtIHRyeWluZyB0byBmaW5pc2ggdXAgYQ0KcGFw ZXIuDQoNCj4gSSB3YXMgdGhpbmtpbmcgdGhhdCBpZiB3ZSBhbGwgY2FuIGFncmVlIG9uIHRoZSBt YXAgZm9ybWF0LCB0aGVuIHlvdXINCj4gcG9sbGluZyBkYWVtb24gY291bGQgYmUgb25lIHVzZXJz cGFjZSAiY2xpZW50IiBmb3IgdGhhdCwgYW5kIHRoZSBlcHBpbmcNCj4gYmluYXJ5IGl0c2VsZiBj b3VsZCBiZSBhbm90aGVyOyBidXQgd2UgY291bGQga2VlcCBjb21wYXRpYmlsaXR5IGJldHdlZW4N Cj4gdGhlIHR3bywgc28gd2UgZG9uJ3QgZHVwbGljYXRlIGVmZm9ydC4NCj4NCj4gU2ltaWxhcmx5 LCByZWZhY3RvcmluZyBvZiB0aGUgZXBwaW5nIGNvZGUgaXRzZWxmIHNvIGl0IGNhbiBiZSBwbHVn Z2VkDQo+IGludG8gdGhlIGNwdW1hcC10YyBjb2RlIHdvdWxkIGJlIGEgZ29vZCBnb2FsLi4uDQoN ClNob3VsZCBwcm9iYWJseSBkbyB0aGF0Li4uYXQgc29tZSBwb2ludC4gSW4gZ2VuZXJhbCBJIHRo aW5rIGl0J3MgYSBiaXQNCm9mIGFuIGludGVyZXN0aW5nIHByb2JsZW0gdG8gdGhpbmsgYWJvdXQg aG93IHRvIGNoYWluIG11bHRpcGxlIFhEUC90Yw0KcHJvZ3JhbXMgdG9nZXRoZXIgaW4gYW4gZWZm aWNlbnQgd2F5LiBNb3N0IFhEUCBhbmQgdGMgcHJvZ3JhbXMgd2lsbCBkbw0Kc29tZSBhbW91bnQg b2YgcGFja2V0IHBhcnNpbmcgYW5kIHdoZW4geW91IGhhdmUgbWFueSBjaGFpbmVkIHByb2dyYW1z DQpwYXJzaW5nIHRoZSBzYW1lIHBhY2tldHMgdGhpcyBvYnZpb3VzbHkgYmVjb21lcyBhIGJpdCB3 YXN0ZWZ1bC4gSW4gdGhlDQpzYW1lIHRpbWUgaXQgd291bGQgYmUgbmljZSBpZiBvbmUgZGlkbid0 IG5lZWQgdG8gbWFudWFsbHkgbWVyZ2UNCm11bHRpcGxlIHByb2dyYW1zIHRvZ2V0aGVyIGludG8g YSBzaW5nbGUgb25lIGxpa2UgdGhpcyB0byBnZXQgcmlkIG9mDQp0aGlzIGR1cGxpY2F0ZWQgcGFy c2luZywgb3IgYXQgbGVhc3QgbWFrZSB0aGF0IHByb2Nlc3Mgb2YgbWVyZ2luZyB0aG9zZQ0KcHJv Z3JhbXMgYXMgc2ltcGxlIGFzIHBvc3NpYmxlLg0KDQoNCj4gLVRva2UNCj4NCj4gWzBdIGh0dHBz Oi8vZ2l0aHViLmNvbS94ZHAtcHJvamVjdC9icGYtZXhhbXBsZXMvcHVsbC81OQ0KDQpOw6RyIGR1 IHNraWNrYXIgZS1wb3N0IHRpbGwgS2FybHN0YWRzIHVuaXZlcnNpdGV0IGJlaGFuZGxhciB2aSBk aW5hIHBlcnNvbnVwcGdpZnRlcjxodHRwczovL3d3dy5rYXUuc2UvZ2Rwcj4uDQpXaGVuIHlvdSBz ZW5kIGFuIGUtbWFpbCB0byBLYXJsc3RhZCBVbml2ZXJzaXR5LCB3ZSB3aWxsIHByb2Nlc3MgeW91 ciBwZXJzb25hbCBkYXRhPGh0dHBzOi8vd3d3LmthdS5zZS9lbi9nZHByPi4NCg==