From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 900F52904 for ; Thu, 7 Jul 2016 09:14:53 +0200 (CEST) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP; 07 Jul 2016 00:14:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,323,1464678000"; d="scan'208";a="1002351870" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga001.fm.intel.com with ESMTP; 07 Jul 2016 00:14:21 -0700 Received: from fmsmsx154.amr.corp.intel.com (10.18.116.70) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 7 Jul 2016 00:14:20 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX154.amr.corp.intel.com (10.18.116.70) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 7 Jul 2016 00:14:20 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.147]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.8]) with mapi id 14.03.0248.002; Thu, 7 Jul 2016 15:14:18 +0800 From: "Lu, Wenzhuo" To: Adrien Mazarguil , "dev@dpdk.org" CC: Thomas Monjalon , "Zhang, Helin" , "Wu, Jingjing" , Rasesh Mody , Ajit Khaparde , "Rahul Lakkireddy" , Jan Medala , John Daley , "Chen, Jing D" , "Ananyev, Konstantin" , Matej Vido , Alejandro Lucero , Sony Chacko , Jerin Jacob , "De Lara Guarch, Pablo" , Olga Shern Thread-Topic: [RFC] Generic flow director/filtering/classification API Thread-Index: AQHR1uluLhaZlI58NEat0o4a8LsblaAMP0QA Date: Thu, 7 Jul 2016 07:14:18 +0000 Message-ID: <6A0DE07E22DDAD4C9103DF62FEBC09090348E1A7@shsmsx102.ccr.corp.intel.com> References: <20160705181646.GO7621@6wind.com> In-Reply-To: <20160705181646.GO7621@6wind.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [RFC] Generic flow director/filtering/classification API X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Jul 2016 07:14:54 -0000 SGkgQWRyaWVuLA0KSSBoYXZlIHNvbWUgcXVlc3Rpb25zLCBwbGVhc2Ugc2VlIGlubGluZSwgdGhh bmtzLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFkcmllbiBNYXph cmd1aWwgW21haWx0bzphZHJpZW4ubWF6YXJndWlsQDZ3aW5kLmNvbV0NCj4gU2VudDogV2VkbmVz ZGF5LCBKdWx5IDYsIDIwMTYgMjoxNyBBTQ0KPiBUbzogZGV2QGRwZGsub3JnDQo+IENjOiBUaG9t YXMgTW9uamFsb247IFpoYW5nLCBIZWxpbjsgV3UsIEppbmdqaW5nOyBSYXNlc2ggTW9keTsgQWpp dCBLaGFwYXJkZTsNCj4gUmFodWwgTGFra2lyZWRkeTsgTHUsIFdlbnpodW87IEphbiBNZWRhbGE7 IEpvaG4gRGFsZXk7IENoZW4sIEppbmcgRDsgQW5hbnlldiwNCj4gS29uc3RhbnRpbjsgTWF0ZWog VmlkbzsgQWxlamFuZHJvIEx1Y2VybzsgU29ueSBDaGFja287IEplcmluIEphY29iOyBEZSBMYXJh DQo+IEd1YXJjaCwgUGFibG87IE9sZ2EgU2hlcm4NCj4gU3ViamVjdDogW1JGQ10gR2VuZXJpYyBm bG93IGRpcmVjdG9yL2ZpbHRlcmluZy9jbGFzc2lmaWNhdGlvbiBBUEkNCj4gDQo+IA0KPiBSZXF1 aXJlbWVudHMgZm9yIGEgbmV3IEFQSToNCj4gDQo+IC0gRmxleGlibGUgYW5kIGV4dGVuc2libGUg d2l0aG91dCBjYXVzaW5nIEFQSS9BQkkgcHJvYmxlbXMgZm9yIGV4aXN0aW5nDQo+ICAgYXBwbGlj YXRpb25zLg0KPiAtIFNob3VsZCBiZSB1bmFtYmlndW91cyBhbmQgZWFzeSB0byB1c2UuDQo+IC0g U3VwcG9ydCBleGlzdGluZyBmaWx0ZXJpbmcgZmVhdHVyZXMgYW5kIGFjdGlvbnMgbGlzdGVkIGlu IGBGaWx0ZXIgdHlwZXNgXy4NCj4gLSBTdXBwb3J0IHBhY2tldCBhbHRlcmF0aW9uLg0KPiAtIElu IGNhc2Ugb2Ygb3ZlcmxhcHBpbmcgZmlsdGVycywgdGhlaXIgcHJpb3JpdHkgc2hvdWxkIGJlIHdl bGwgZG9jdW1lbnRlZC4NCkRvZXMgdGhhdCBtZWFuIHdlIGRvbid0IGd1YXJhbnRlZSB0aGUgY29u c2lzdGVudCBvZiBwcmlvcml0eT8gVGhlIHByaW9yaXR5IGNhbiBiZSBkaWZmZXJlbnQgb24gZGlm ZmVyZW50IE5JQ3MuIFNvIHRoZSBiZWhhdmlvciBvZiB0aGUgYWN0aW9ucyAgY2FuIGJlIGRpZmZl cmVudC4gUmlnaHQ/DQpTZWVtcyB0aGUgdXNlcnMgc3RpbGwgbmVlZCB0byBhd2FyZSB0aGUgc29t ZSBkZXRhaWxzIG9mIHRoZSBIVz8gRG8gd2UgbmVlZCB0byBhZGQgdGhlIG5lZ290aWF0aW9uIGZv ciB0aGUgcHJpb3JpdHk/DQoNCj4gDQo+IEZsb3cgcnVsZXMgY2FuIGhhdmUgc2V2ZXJhbCBkaXN0 aW5jdCBhY3Rpb25zIChzdWNoIGFzIGNvdW50aW5nLA0KPiBlbmNhcHN1bGF0aW5nLCBkZWNhcHN1 bGF0aW5nIGJlZm9yZSByZWRpcmVjdGluZyBwYWNrZXRzIHRvIGEgcGFydGljdWxhcg0KPiBxdWV1 ZSwgZXRjLiksIGluc3RlYWQgb2YgcmVseWluZyBvbiBzZXZlcmFsIHJ1bGVzIHRvIGFjaGlldmUg dGhpcyBhbmQgaGF2aW5nDQo+IGFwcGxpY2F0aW9ucyBkZWFsIHdpdGggaGFyZHdhcmUgaW1wbGVt ZW50YXRpb24gZGV0YWlscyByZWdhcmRpbmcgdGhlaXINCj4gb3JkZXIuDQpJIHRoaW5rIG5vcm1h bGx5IEhXIGRvZXNuJ3Qgc3VwcG9ydCBzZXZlcmFsIGFjdGlvbnMgaW4gb25lIHJ1bGUuIElmIGEg cnVsZSBoYXMgc2V2ZXJhbCBhY3Rpb25zLCBzZWVtcyBIVyBoYXMgdG8gc3BsaXQgaXQgdG8gc2V2 ZXJhbCBydWxlcy4gVGhlIG9yZGVyIGNhbiBzdGlsbCBiZSBhIHByb2JsZW0uDQoNCj4gDQo+IGBg RVRIYGANCj4gXl5eXl5eXg0KPiANCj4gTWF0Y2hlcyBhbiBFdGhlcm5ldCBoZWFkZXIuDQo+IA0K PiAtIGBgZHN0YGA6IGRlc3RpbmF0aW9uIE1BQy4NCj4gLSBgYHNyY2BgOiBzb3VyY2UgTUFDLg0K PiAtIGBgdHlwZWBgOiBFdGhlclR5cGUuDQo+IC0gYGB0YWdzYGA6IG51bWJlciBvZiA4MDIuMVEv YWQgdGFncyBkZWZpbmVkLg0KPiAtIGBgdGFnW11gYDogODAyLjFRL2FkIHRhZyBkZWZpbml0aW9u cywgaW5uZXJtb3N0IGZpcnN0LiBGb3IgZWFjaCBvbmU6DQo+IA0KPiAgLSBgYHRwaWRgYDogVGFn IHByb3RvY29sIGlkZW50aWZpZXIuDQo+ICAtIGBgdGNpYGA6IFRhZyBjb250cm9sIGluZm9ybWF0 aW9uLg0KIkVUSCIgbWVhbnMgYWxsIHRoZSBwYXJhbWV0ZXJzLCBkc3QsIHNyYywgdHlwZS4uLiBu ZWVkIHRvIGJlIG1hdGNoZWQ/IFRoZSBzYW1lIHF1ZXN0aW9uIGZvciBJUHY0LCBJUHY2IC4uLg0K DQo+IA0KPiBgYFVEUGBgDQo+IF5eXl5eXl4NCj4gDQo+IE1hdGNoZXMgYSBVRFAgaGVhZGVyLg0K PiANCj4gLSBgYHNwb3J0YGA6IHNvdXJjZSBwb3J0Lg0KPiAtIGBgZHBvcnRgYDogZGVzdGluYXRp b24gcG9ydC4NCj4gLSBgYGxlbmd0aGBgOiBVRFAgbGVuZ3RoLg0KPiAtIGBgY2hlY2tzdW1gYDog VURQIGNoZWNrc3VtLg0KV2h5IGNoZWNrc3VtPyBEbyB3ZSBuZWVkIHRvIGZpbHRlciB0aGUgcGFj a2V0cyBieSBjaGVja3N1bSB2YWx1ZT8NCg0KPiANCj4gYGBWT0lEYGAgKGFjdGlvbikNCj4gXl5e Xl5eXl5eXl5eXl5eXl4NCj4gDQo+IFVzZWQgYXMgYSBwbGFjZWhvbGRlciBmb3IgY29udmVuaWVu Y2UuIEl0IGlzIGlnbm9yZWQgYW5kIHNpbXBseSBkaXNjYXJkZWQgYnkNCj4gUE1Ecy4NCkRvbid0 IHVuZGVyc3RhbmQgd2h5IHdlIG5lZWQgVk9JRC4gSWYgaXTigJlzIGFib3V0IHRoZSBmb3JtYXQu IFdoeSBub3QgZ3VhcmFudGVlIGl0IGluIHJ0ZSBsYXllcj8NCg0KPiANCj4gQmVoYXZpb3INCj4g LS0tLS0tLS0NCj4gDQo+IC0gQVBJIG9wZXJhdGlvbnMgYXJlIHN5bmNocm9ub3VzIGFuZCBibG9j a2luZyAoYGBFQUdBSU5gYCBjYW5ub3QgYmUNCj4gICByZXR1cm5lZCkuDQo+IA0KPiAtIFRoZXJl IGlzIG5vIHByb3Zpc2lvbiBmb3IgcmVlbnRyYW5jeS9tdWx0aS10aHJlYWQgc2FmZXR5LCBhbHRo b3VnaCBub3RoaW5nDQo+ICAgc2hvdWxkIHByZXZlbnQgZGlmZmVyZW50IGRldmljZXMgZnJvbSBi ZWluZyBjb25maWd1cmVkIGF0IHRoZSBzYW1lDQo+ICAgdGltZS4gUE1EcyBtYXkgcHJvdGVjdCB0 aGVpciBjb250cm9sIHBhdGggZnVuY3Rpb25zIGFjY29yZGluZ2x5Lg0KPiANCj4gLSBTdG9wcGlu ZyB0aGUgZGF0YSBwYXRoIChUWC9SWCkgc2hvdWxkIG5vdCBiZSBuZWNlc3Nhcnkgd2hlbiBtYW5h Z2luZyBmbG93DQo+ICAgcnVsZXMuIElmIHRoaXMgY2Fubm90IGJlIGFjaGlldmVkIG5hdHVyYWxs eSBvciB3aXRoIHdvcmthcm91bmRzIChzdWNoIGFzDQo+ICAgdGVtcG9yYXJpbHkgcmVwbGFjaW5n IHRoZSBidXJzdCBmdW5jdGlvbiBwb2ludGVycyksIGFuIGFwcHJvcHJpYXRlIGVycm9yDQo+ICAg Y29kZSBtdXN0IGJlIHJldHVybmVkIChgYEVCVVNZYGApLg0KUE1EIGNhbm5vdCBzdG9wIHRoZSBk YXRhIHBhdGggd2l0aG91dCBhZGRpbmcgbG9jay4gU28gSSB0aGluayBpZiBzb21lIHJ1bGVzIGNh bm5vdCBiZSBhcHBsaWVkIHdpdGhvdXQgc3RvcHBpbmcgcngvdHgsIFBNRCBoYXMgdG8gcmV0dXJu IGZhaWwuDQpPciBsZXQgdGhlIEFQUCB0byBzdG9wIHRoZSBkYXRhIHBhdGguDQoNCj4gDQo+IC0g UE1Ecywgbm90IGFwcGxpY2F0aW9ucywgYXJlIHJlc3BvbnNpYmxlIGZvciBtYWludGFpbmluZyBm bG93IHJ1bGVzDQo+ICAgY29uZmlndXJhdGlvbiB3aGVuIHN0b3BwaW5nIGFuZCByZXN0YXJ0aW5n IGEgcG9ydCBvciBwZXJmb3JtaW5nIG90aGVyDQo+ICAgYWN0aW9ucyB3aGljaCBtYXkgYWZmZWN0 IHRoZW0uIFRoZXkgY2FuIG9ubHkgYmUgZGVzdHJveWVkIGV4cGxpY2l0bHkuDQpEb27igJl0IHVu ZGVyc3RhbmQgIiBUaGV5IGNhbiBvbmx5IGJlIGRlc3Ryb3llZCBleHBsaWNpdGx5LiIgSWYgYSBu ZXcgcnVsZSBoYXMgY29uZmxpY3Qgd2l0aCBhbiBvbGQgb25lLCB3aGF0IHNob3VsZCB3ZSBkbz8g UmV0dXJuIGZhaWw/DQoNCj4gDQo+IGBgQU5ZYGAgcGF0dGVybiBpdGVtDQo+IH5+fn5+fn5+fn5+ fn5+fn5+fn5+DQo+IA0KPiBUaGlzIHBhdHRlcm4gaXRlbSBzdGFuZHMgZm9yIGFueXRoaW5nLCB3 aGljaCBjYW4gYmUgZGlmZmljdWx0IHRvIHRyYW5zbGF0ZQ0KPiB0byBzb21ldGhpbmcgaGFyZHdh cmUgd291bGQgdW5kZXJzdGFuZCwgcGFydGljdWxhcmx5IGlmIGZvbGxvd2VkIGJ5IG1vcmUNCj4g c3BlY2lmaWMgdHlwZXMuDQo+IA0KPiBDb25zaWRlciB0aGUgZm9sbG93aW5nIHBhdHRlcm46DQo+ IA0KPiArLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiB8IDAgfCBFVEhF UiAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiArLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKw0KPiB8IDEgfCBBTlkgKGBgbWluYGAgPSAxLCBgYG1heGBgID0gMSkgfA0K PiArLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiB8IDIgfCBUQ1AgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiArLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKw0KPiANCj4gS25vd2luZyB0aGF0IFRDUCBkb2VzIG5vdCBtYWtlIHNlbnNlIHdp dGggc29tZXRoaW5nIG90aGVyIHRoYW4gSVB2NCBhbmQgSVB2Ng0KPiBhcyBMMywgc3VjaCBhIHBh dHRlcm4gbWF5IGJlIHRyYW5zbGF0ZWQgdG8gdHdvIGZsb3cgcnVsZXMgaW5zdGVhZDoNCj4gDQo+ ICstLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+IHwgMCB8IEVUSEVSICAgICAgICAgICAgICB8 DQo+ICstLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+IHwgMSB8IElQVjQgKHplcm9lZCBtYXNr KSB8DQo+ICstLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+IHwgMiB8IFRDUCAgICAgICAgICAg ICAgICB8DQo+ICstLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+IA0KPiArLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKw0KPiB8IDAgfCBFVEhFUiAgICAgICAgICAgICAgfA0KPiArLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKw0KPiB8IDEgfCBJUFY2ICh6ZXJvZWQgbWFzaykgfA0KPiArLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKw0KPiB8IDIgfCBUQ1AgICAgICAgICAgICAgICAgfA0KPiArLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiANCj4gTm90ZSB0aGF0IGFzIHNvb24gYXMgYSBBTlkg cnVsZSBjb3ZlcnMgc2V2ZXJhbCBsYXllcnMsIHRoaXMgYXBwcm9hY2ggbWF5DQo+IHlpZWxkIGEg bGFyZ2UgbnVtYmVyIG9mIGhpZGRlbiBmbG93IHJ1bGVzLiBJdCBpcyB0aHVzIHN1Z2dlc3RlZCB0 byBvbmx5DQo+IHN1cHBvcnQgdGhlIG1vc3QgY29tbW9uIHNjZW5hcmlvcyAoYW55dGhpbmcgYXMg TDIgYW5kL29yIEwzKS4NCkkgdGhpbmsgImFueSIgbWF5IG1ha2UgdGhpbmdzIGNvbmZ1c2luZy4g IEhvdyBhYm91dCBpZiB0aGUgTklDIGRvZXNuJ3Qgc3VwcG9ydCBJUHY2PyBTaG91bGQgd2UgcmV0 dXJuIGZhaWwgZm9yIHRoaXMgcnVsZT8NCg0KPiANCj4gRmxvdyBydWxlcyBwcmlvcml0eQ0KPiB+ fn5+fn5+fn5+fn5+fn5+fn5+DQo+IA0KPiBXaGlsZSBpdCB3b3VsZCBuYXR1cmFsbHkgbWFrZSBz ZW5zZSwgZmxvdyBydWxlcyBjYW5ub3QgYmUgYXNzdW1lZCB0byBiZQ0KPiBwcm9jZXNzZWQgYnkg aGFyZHdhcmUgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlaXIgY3JlYXRpb24gZm9yIHNldmVyYWwN Cj4gcmVhc29uczoNCj4gDQo+IC0gVGhleSBtYXkgYmUgbWFuYWdlZCBpbnRlcm5hbGx5IGFzIGEg dHJlZSBvciBhIGhhc2ggdGFibGUgaW5zdGVhZCBvZiBhDQo+ICAgbGlzdC4NCj4gLSBSZW1vdmlu ZyBhIGZsb3cgcnVsZSBiZWZvcmUgYWRkaW5nIGFub3RoZXIgb25lIGNhbiBlaXRoZXIgcHV0IHRo ZSBuZXcgcnVsZQ0KPiAgIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3Qgb3IgcmV1c2UgYSBmcmVlZCBl bnRyeS4NCj4gLSBEdXBsaWNhdGlvbiBtYXkgb2NjdXIgd2hlbiBwYWNrZXRzIGFyZSBtYXRjaGVk IGJ5IHNldmVyYWwgcnVsZXMuDQo+IA0KPiBGb3Igb3ZlcmxhcHBpbmcgcnVsZXMgKHBhcnRpY3Vs YXJseSBpbiBvcmRlciB0byB1c2UgdGhlIGBQQVNTVEhSVWBfIGFjdGlvbikNCj4gcHJlZGljdGFi bGUgYmVoYXZpb3IgaXMgb25seSBndWFyYW50ZWVkIGJ5IHVzaW5nIGRpZmZlcmVudCBwcmlvcml0 eSBsZXZlbHMuDQo+IA0KPiBQcmlvcml0eSBsZXZlbHMgYXJlIG5vdCBuZWNlc3NhcmlseSBpbXBs ZW1lbnRlZCBpbiBoYXJkd2FyZSwgb3IgbWF5IGJlDQo+IHNldmVyZWx5IGxpbWl0ZWQgKGUuZy4g YSBzaW5nbGUgcHJpb3JpdHkgYml0KS4NCj4gDQo+IEZvciB0aGVzZSByZWFzb25zLCBwcmlvcml0 eSBsZXZlbHMgbWF5IGJlIGltcGxlbWVudGVkIHB1cmVseSBpbiBzb2Z0d2FyZSBieQ0KPiBQTURz Lg0KPiANCj4gLSBGb3IgZGV2aWNlcyBleHBlY3RpbmcgZmxvdyBydWxlcyB0byBiZSBhZGRlZCBp biB0aGUgY29ycmVjdCBvcmRlciwgUE1Ecw0KPiAgIG1heSBkZXN0cm95IGFuZCByZS1jcmVhdGUg ZXhpc3RpbmcgcnVsZXMgYWZ0ZXIgYWRkaW5nIGEgbmV3IG9uZSB3aXRoDQo+ICAgYSBoaWdoZXIg cHJpb3JpdHkuDQo+IA0KPiAtIEEgY29uZmlndXJhYmxlIG51bWJlciBvZiBkdW1teSBvciBlbXB0 eSBydWxlcyBjYW4gYmUgY3JlYXRlZCBhdA0KPiAgIGluaXRpYWxpemF0aW9uIHRpbWUgdG8gc2F2 ZSBoaWdoIHByaW9yaXR5IHNsb3RzIGZvciBsYXRlci4NCj4gDQo+IC0gSW4gb3JkZXIgdG8gc2F2 ZSBwcmlvcml0eSBsZXZlbHMsIFBNRHMgbWF5IGV2YWx1YXRlIHdoZXRoZXIgcnVsZXMgYXJlDQo+ ICAgbGlrZWx5IHRvIGNvbGxpZGUgYW5kIGFkanVzdCB0aGVpciBwcmlvcml0eSBhY2NvcmRpbmds eS4NCklmIHRoZXJlJ3MgMyBydWxlcywgcjEsIHIyLHIzLiBUaGUgcnVsZXMgc2F5IHRoZSBwcmlv cml0eSBpcyByMSA+IHIyID4gcjMuIElmIFBNRCBjYW4gb25seSBzdXBwb3J0IHIxID4gcjMgPiBy Miwgb3IgZG9lc24ndCBzdXBwb3J0IHIyLiBTaG91bGQgUE1EIGFwcGx5IHIxIGFuZCByMyBvciB0 b3RhbGx5IG5vdCBzdXBwb3J0IHRoZW0gYWxsPw0KDQpBIGdlbmVyaWMgcXVlc3Rpb24sIGlzIHRo ZSBwYXJzaW5nIHN1cHBvc2VkIHRvIGJlIGRvbmUgYnkgcnRlIG9yIFBNRD8NCg==