From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Dumitrescu, Cristian" Subject: Re: [PATCH v3 2/2] ethdev: add hierarchical scheduler API Date: Fri, 7 Apr 2017 16:51:58 +0000 Message-ID: <3EB4FA525960D640B5BDFFD6A3D8912652789607@IRSMSX108.ger.corp.intel.com> References: <1488589820-206947-1-git-send-email-cristian.dumitrescu@intel.com> <1488589820-206947-3-git-send-email-cristian.dumitrescu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "thomas.monjalon@6wind.com" , "jerin.jacob@caviumnetworks.com" , "balasubramanian.manoharan@cavium.com" , "shreyansh.jain@nxp.com" To: Hemant Agrawal , "dev@dpdk.org" Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id A284D68C5 for ; Fri, 7 Apr 2017 18:52:02 +0200 (CEST) In-Reply-To: Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgSGVtYW50LA0KDQpUaGFua3MgZm9yIHlvdXIgaW5wdXQhDQoNCi4uLjxzbmlwPg0KDQo+ID4g Ky8qKg0KPiA+ICsgKiBUcmFmZmljIG1hbmFnZXIgZHluYW1pYyB1cGRhdGVzDQo+ID4gKyAqLw0K PiA+ICtlbnVtIHJ0ZV90bV9keW5hbWljX3VwZGF0ZV90eXBlIHsNCj4gPiArCS8qKjwgRHluYW1p YyBwYXJlbnQgbm9kZSB1cGRhdGUuIFRoZSBuZXcgcGFyZW50IG5vZGUgaXMgbG9jYXRlZA0KPiBv biBzYW1lDQo+ID4gKwkgKiBoaWVyYXJjaHkgbGV2ZWwgYXMgdGhlIGZvcm1lciBwYXJlbnQgbm9k ZS4gQ29uc2VxdWVudGx5LCB0aGUNCj4gbm9kZQ0KPiA+ICsJICogd2hvc2UgcGFyZW50IGlzIGNo YW5nZWQgcHJlc2VydmVzIGl0cyBoaWVyYXJjaHkgbGV2ZWwuDQo+ID4gKwkgKi8NCj4gPiArCVJU RV9UTV9VUERBVEVfTk9ERV9QQVJFTlRfS0VFUF9MRVZFTCA9IDEgPDwgMCwNCj4gPiArDQo+ID4g KwkvKio8IER5bmFtaWMgcGFyZW50IG5vZGUgdXBkYXRlLiBUaGUgbmV3IHBhcmVudCBub2RlIGlz IGxvY2F0ZWQNCj4gb24NCj4gPiArCSAqIGRpZmZlcmVudCBoaWVyYXJjaHkgbGV2ZWwgdGhhbiB0 aGUgZm9ybWVyIHBhcmVudCBub2RlLg0KPiBDb25zZXF1ZW50bHksDQo+ID4gKwkgKiB0aGUgbm9k ZSB3aG9zZSBwYXJlbnQgaXMgY2hhbmdlZCBhbHNvIGNoYW5nZXMgaXRzIGhpZXJhcmNoeSBsZXZl bC4NCj4gPiArCSAqLw0KPiA+ICsJUlRFX1RNX1VQREFURV9OT0RFX1BBUkVOVF9DSEFOR0VfTEVW RUwgPSAxIDw8IDEsDQo+ID4gKw0KPiA+ICsJLyoqPCBEeW5hbWljIG5vZGUgYWRkL2RlbGV0ZS4g Ki8NCj4gPiArCVJURV9UTV9VUERBVEVfTk9ERV9BRERfREVMRVRFID0gMSA8PCAyLA0KPiA+ICsN Cj4gPiArCS8qKjwgU3VzcGVuZC9yZXN1bWUgbm9kZXMuICovDQo+ID4gKwlSVEVfVE1fVVBEQVRF X05PREVfU1VTUEVORF9SRVNVTUUgPSAxIDw8IDMsDQo+IA0KPiB3aGF0IGlzIHRoZSBleHBlY3Rh dGlvbiBmcm9tIHN1c3BlbmQvcmVzdW1lcz8NCj4gMS4gdGhlIEZhbi1vdXQgd2lsbCBzdG9wLg0K PiAyLiB0aGUgRmFuLUluIHdpbGwgc3RvcCwgYW55IGVucXVldWUgcmVxdWVzdCB3aWxsIHJlc3Vs dCBpbnRvIGVycm9yPyAgb3INCj4gaXQgd2lsbCBiZSBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQu DQo+IER1cmluZyBzdXNwZW5kL2hvbGQgc3RhdGUgdGhlIGJ1ZmZlcnMgc2hvdWxkIG5vdCBob2xk IGluIHRoZSBub2RlLg0KDQpSZXF1aXJlbWVudCBpcyB0aGF0IGZhbi1vdXQgc2hvdWxkIHN0b3Ag d2hpbGUgbm9kZSBpcyBpbiBzdXNwZW5kZWQgc3RhdGUuIFRoaXMgb3BlcmF0aW9uIGlzIHNpbWls YXIgdG8gaW5oaWJpdGluZyBkZXF1ZXVlIG9wZXJhdGlvbiBmcm9tIHRoZSBhc3NvY2lhdGVkIHF1 ZXVlcywgb3IgdG8gaGF2aW5nIHRoZSBvdXRwdXQgcmF0ZSBvZiB0aGUgbm9kZSBzZXQgdG8gemVy byB3aGlsZSBpbiBzdXNwZW5kZWQgc3RhdGUuIEkgYW0gdGFraW5nIHRoZSBhY3Rpb24gdG8gZG9j dW1lbnQgdGhlIHN1c3BlbmQgb3BlcmF0aW9uLg0KDQpJIGFncmVlIHRoYXQgdGhlIGZvbGxvd2lu ZyBpdGVtcyBzaG91bGQgYmUgaW1wbGVtZW50YXRpb24gc3BlY2lmaWMuIFRoZXkgYXJlIHJlbGF0 ZWQgdG8gZW5xdWV1ZSBzaWRlIGFuZCBpbiBteSBtaW5kIHRoZXkgYXJlIG5vdCByZWxhdGVkIHRv IHRoZSBzdXNwZW5kIG9wZXJhdGlvbiwgd2hpY2ggb25seSBhZmZlY3RzIHRoZSBkZXF1ZXVlIHNp ZGU6DQotV2hldGhlciB0aGUgZmFuLWluIHNob3VsZCBzdG9wIHdoaWxlIHRoZSBub2RlIGlzIGlu IHN1c3BlbmRlZCBzdGF0ZQ0KLVdoYXQgc2hvdWxkIGhhcHBlbiB3aXRoIHRoZSBwYWNrZXRzIHN0 b3JlZCBpbiB0aGUgcXVldWVzIChvd25lZCBieSB0aGlzIG5vZGUgYW5kIGl0cyBkZXNjZW5kYW50 cykNCg0KLi4uPHNuaXA+DQoNCj4gPiArLyoqDQo+ID4gKyAqIFRyYWZmaWMgbWFuYWdlciBsZXZl bCBjYXBhYmlsaXRpZXMNCj4gPiArICovDQo+ID4gK3N0cnVjdCBydGVfdG1fbGV2ZWxfY2FwYWJp bGl0aWVzIHsNCj4gPiArCS8qKjwgTWF4aW11bSBudW1iZXIgb2Ygbm9kZXMgZm9yIHRoZSBjdXJy ZW50IGhpZXJhcmNoeSBsZXZlbC4gKi8NCj4gPiArCXVpbnQzMl90IG5fbm9kZXNfbWF4Ow0KPiA+ ICsNCj4gPiArCS8qKjwgTWF4aW11bSBudW1iZXIgb2Ygbm9uLWxlYWYgbm9kZXMgZm9yIHRoZSBj dXJyZW50IGhpZXJhcmNoeQ0KPiBsZXZlbC4NCj4gPiArCSAqIFRoZSB2YWx1ZSBvZiAwIGluZGlj YXRlcyB0aGF0IGN1cnJlbnQgbGV2ZWwgb25seSBzdXBwb3J0cyBsZWFmDQo+ID4gKwkgKiBub2Rl cy4gVGhlIG1heGltdW0gdmFsdWUgaXMgKm5fbm9kZXNfbWF4Ki4NCj4gPiArCSAqLw0KPiA+ICsJ dWludDMyX3Qgbl9ub2Rlc19ub25sZWFmX21heDsNCj4gPiArDQo+ID4gKwkvKio8IE1heGltdW0g bnVtYmVyIG9mIGxlYWYgbm9kZXMgZm9yIHRoZSBjdXJyZW50IGhpZXJhcmNoeSBsZXZlbC4NCj4g VGhlDQo+ID4gKwkgKiB2YWx1ZSBvZiAwIGluZGljYXRlcyB0aGF0IGN1cnJlbnQgbGV2ZWwgb25s eSBzdXBwb3J0cyBub24tbGVhZg0KPiA+ICsJICogbm9kZXMuIFRoZSBtYXhpbXVtIHZhbHVlIGlz ICpuX25vZGVzX21heCouDQo+ID4gKwkgKi8NCj4gPiArCXVpbnQzMl90IG5fbm9kZXNfbGVhZl9t YXg7DQo+ID4gKw0KPiA+ICsJLyoqPCBTdW1tYXJ5IG9mIG5vZGUtbGV2ZWwgY2FwYWJpbGl0aWVz IGFjcm9zcyBhbGwgdGhlIG5vbi1sZWFmDQo+IG5vZGVzDQo+ID4gKwkgKiBvZiB0aGUgY3VycmVu dCBoaWVyYXJjaHkgbGV2ZWwuIFZhbGlkIG9ubHkgd2hlbg0KPiA+ICsJICogKm5fbm9kZXNfbm9u bGVhZl9tYXgqIGlzIGdyZWF0ZXIgdGhhbiAwLg0KPiA+ICsJICovDQo+ID4gKwlzdHJ1Y3QgcnRl X3RtX25vZGVfY2FwYWJpbGl0aWVzIG5vbmxlYWY7DQo+ID4gKw0KPiA+ICsJLyoqPCBTdW1tYXJ5 IG9mIG5vZGUtbGV2ZWwgY2FwYWJpbGl0aWVzIGFjcm9zcyBhbGwgdGhlIGxlYWYgbm9kZXMgb2YN Cj4gPiArCSAqIHRoZSBjdXJyZW50IGhpZXJhcmNoeSBsZXZlbC4gVmFsaWQgb25seSB3aGVuICpu X25vZGVzX2xlYWZfbWF4Kg0KPiBpcw0KPiA+ICsJICogZ3JlYXRlciB0aGFuIDAuDQo+ID4gKwkg Ki8NCj4gPiArCXN0cnVjdCBydGVfdG1fbm9kZV9jYXBhYmlsaXRpZXMgbGVhZjsNCj4gDQo+IHlv dSBhbHNvIG5lZWQgdG8gcHJvdmlkZSBhIGZsYWcgdGhhdCBhbGwgdGhlIG5vZGVzIGluIHRoaXMg bGV2ZWwgaGFzDQo+IGVxdWFsIGNhcGFiaWxpdHkgb2Ygbm90Lg0KDQpZZXMsIGdvb2QgaWRlYSwg d2lsbCBkby4NCg0KPiANCj4gSW4gY2FzZSwgYWxsIG5vZGVzIGluIHRoaXMgbGV2ZWwgaGFzIGVx dWFsIHByaW9yaXR5LCB0aGUgaW1wbGVtZW50YXRpb24NCj4gbmVlZCB0byB0byBpbnF1aXJlIGFu eSBmdXJ0aGVyIGZvciBub2RlIGxldmVsIGNhcGFiaWxpdHkuIEdlbmVyYWxseSBpbg0KPiBjYXNl IG9mIEhXcywgdGhleSBoYXZlIGVxdWFsIGNhcGFiaWxpdGllcyBhdCBhIHBhcnRpY3VsYXIgbGV2 ZWwuDQo+IA0KPiBJZiBhbGwgbm9kZXMgYXJlIG5vdCBoYXZpbmcgZXF1YWwgcHJpb3JpdHksIHRo aXMgaW5mb3JtYXRpb24gbWF5IG5vdCBiZQ0KPiBjb3JyZWN0IGFuZCBpdCBtYXkgb25seSBwcm92 aWRlIGEgdmVyeSByb3VnaCBvdmVydmlldyBvZiBub2RlDQo+IGNhcGFiaWxpdGllcy4gdGhlIGFw cGxpY2F0aW9ucyBzaG91bGQgbm90IGFzc3VtZSBhbnl0aGluZyBhYm91dCBhDQo+IHBhcnRpY3Vs YXIgbm9kZSBjYXBhYmlsaXR5IHdpdGhpbiB0aGlzIGxldmVsLg0KPiANCg0KQWdyZWUuDQoNCj4g DQo+ID4gK307DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogVHJhZmZpYyBtYW5hZ2VyIGNhcGFi aWxpdGllcw0KPiA+ICsgKi8NCj4gPiArc3RydWN0IHJ0ZV90bV9jYXBhYmlsaXRpZXMgew0KPiA+ ICsJLyoqPCBNYXhpbXVtIG51bWJlciBvZiBub2Rlcy4gKi8NCj4gPiArCXVpbnQzMl90IG5fbm9k ZXNfbWF4Ow0KPiA+ICsNCj4gPiArCS8qKjwgTWF4aW11bSBudW1iZXIgb2YgbGV2ZWxzIChpLmUu IG51bWJlciBvZiBub2RlcyBjb25uZWN0aW5nDQo+IHRoZSByb290DQo+ID4gKwkgKiBub2RlIHdp dGggYW55IGxlYWYgbm9kZSwgaW5jbHVkaW5nIHRoZSByb290IGFuZCB0aGUgbGVhZikuDQo+ID4g KwkgKi8NCj4gPiArCXVpbnQzMl90IG5fbGV2ZWxzX21heDsNCj4gPiArDQo+ID4gKwkvKio8IE1h eGltdW0gbnVtYmVyIG9mIHNoYXBlcnMsIGVpdGhlciBwcml2YXRlIG9yIHNoYXJlZC4gSW4gY2Fz ZQ0KPiB0aGUNCj4gPiArCSAqIGltcGxlbWVudGF0aW9uIGRvZXMgbm90IHNoYXJlIGFueSByZXNv dXJjZSBiZXR3ZWVuIHByaXZhdGUgYW5kDQo+ID4gKwkgKiBzaGFyZWQgc2hhcGVycywgaXQgaXMg dHlwaWNhbGx5IGVxdWFsIHRvIHRoZSBzdW0gYmV0d2Vlbg0KPiA+ICsJICogKnNoYXBlcl9wcml2 YXRlX25fbWF4KiBhbmQgKnNoYXBlcl9zaGFyZWRfbl9tYXgqLg0KPiA+ICsJICovDQo+ID4gKwl1 aW50MzJfdCBzaGFwZXJfbl9tYXg7DQo+ID4gKw0KPiA+ICsJLyoqPCBNYXhpbXVtIG51bWJlciBv ZiBwcml2YXRlIHNoYXBlcnMuIEluZGljYXRlcyB0aGUgbWF4aW11bQ0KPiBudW1iZXIgb2YNCj4g PiArCSAqIG5vZGVzIHRoYXQgY2FuIGNvbmN1cnJlbnRseSBoYXZlIHRoZSBwcml2YXRlIHNoYXBl ciBlbmFibGVkLg0KPiA+ICsJICovDQo+ID4gKwl1aW50MzJfdCBzaGFwZXJfcHJpdmF0ZV9uX21h eDsNCj4gPiArDQo+ID4gKwkvKio8IE1heGltdW0gbnVtYmVyIG9mIHNoYXJlZCBzaGFwZXJzLiBU aGUgdmFsdWUgb2YgemVybw0KPiBpbmRpY2F0ZXMgdGhhdA0KPiA+ICsJICogc2hhcmVkIHNoYXBl cnMgYXJlIG5vdCBzdXBwb3J0ZWQuDQo+ID4gKwkgKi8NCj4gPiArCXVpbnQzMl90IHNoYXBlcl9z aGFyZWRfbl9tYXg7DQo+ID4gKw0KPiA+ICsJLyoqPCBNYXhpbXVtIG51bWJlciBvZiBub2RlcyB0 aGF0IGNhbiBzaGFyZSB0aGUgc2FtZSBzaGFyZWQNCj4gc2hhcGVyLg0KPiA+ICsJICogT25seSB2 YWxpZCB3aGVuIHNoYXJlZCBzaGFwZXJzIGFyZSBzdXBwb3J0ZWQuDQo+ID4gKwkgKi8NCj4gPiAr CXVpbnQzMl90IHNoYXBlcl9zaGFyZWRfbl9ub2Rlc19tYXg7DQo+ID4gKw0KPiA+ICsJLyoqPCBN YXhpbXVtIG51bWJlciBvZiBzaGFyZWQgc2hhcGVycyB0aGF0IGNhbiBiZSBjb25maWd1cmVkDQo+ IHdpdGggZHVhbA0KPiA+ICsJICogcmF0ZSBzaGFwaW5nLiBUaGUgdmFsdWUgb2YgemVybyBpbmRp Y2F0ZXMgdGhhdCBkdWFsIHJhdGUgc2hhcGluZw0KPiA+ICsJICogc3VwcG9ydCBpcyBub3QgYXZh aWxhYmxlIGZvciBzaGFyZWQgc2hhcGVycy4NCj4gPiArCSAqLw0KPiA+ICsJdWludDMyX3Qgc2hh cGVyX3NoYXJlZF9kdWFsX3JhdGVfbl9tYXg7DQo+ID4gKw0KPiA+ICsJLyoqPCBNaW5pbXVtIGNv bW1pdHRlZC9wZWFrIHJhdGUgKGJ5dGVzIHBlciBzZWNvbmQpIGZvciBzaGFyZWQNCj4gc2hhcGVy cy4NCj4gPiArCSAqIE9ubHkgdmFsaWQgd2hlbiBzaGFyZWQgc2hhcGVycyBhcmUgc3VwcG9ydGVk Lg0KPiA+ICsJICovDQo+ID4gKwl1aW50NjRfdCBzaGFwZXJfc2hhcmVkX3JhdGVfbWluOw0KPiA+ ICsNCj4gPiArCS8qKjwgTWF4aW11bSBjb21taXR0ZWQvcGVhayByYXRlIChieXRlcyBwZXIgc2Vj b25kKSBmb3Igc2hhcmVkDQo+IHNoYXBlci4NCj4gPiArCSAqIE9ubHkgdmFsaWQgd2hlbiBzaGFy ZWQgc2hhcGVycyBhcmUgc3VwcG9ydGVkLg0KPiA+ICsJICovDQo+ID4gKwl1aW50NjRfdCBzaGFw ZXJfc2hhcmVkX3JhdGVfbWF4Ow0KPiA+ICsNCj4gPiArCS8qKjwgTWluaW11bSB2YWx1ZSBhbGxv d2VkIGZvciBwYWNrZXQgbGVuZ3RoIGFkanVzdG1lbnQgZm9yDQo+ID4gKwkgKiBwcml2YXRlL3No YXJlZCBzaGFwZXJzLg0KPiA+ICsJICovDQo+ID4gKwlpbnQgc2hhcGVyX3BrdF9sZW5ndGhfYWRq dXN0X21pbjsNCj4gPiArDQo+ID4gKwkvKio8IE1heGltdW0gdmFsdWUgYWxsb3dlZCBmb3IgcGFj a2V0IGxlbmd0aCBhZGp1c3RtZW50IGZvcg0KPiA+ICsJICogcHJpdmF0ZS9zaGFyZWQgc2hhcGVy cy4NCj4gPiArCSAqLw0KPiA+ICsJaW50IHNoYXBlcl9wa3RfbGVuZ3RoX2FkanVzdF9tYXg7DQo+ ID4gKw0KPiA+ICsJLyoqPCBNYXhpbXVtIG51bWJlciBvZiBXUkVEIGNvbnRleHRzLiAqLw0KPiA+ ICsJdWludDMyX3QgY21hbl93cmVkX2NvbnRleHRfbl9tYXg7DQo+ID4gKw0KPiA+ICsJLyoqPCBN YXhpbXVtIG51bWJlciBvZiBwcml2YXRlIFdSRUQgY29udGV4dHMuIEluZGljYXRlcyB0aGUNCj4g bWF4aW11bQ0KPiA+ICsJICogbnVtYmVyIG9mIGxlYWYgbm9kZXMgdGhhdCBjYW4gY29uY3VycmVu dGx5IGhhdmUgdGhlIHByaXZhdGUgV1JFRA0KPiA+ICsJICogY29udGV4dCBlbmFibGVkLg0KPiA+ ICsJICovDQo+ID4gKwl1aW50MzJfdCBjbWFuX3dyZWRfY29udGV4dF9wcml2YXRlX25fbWF4Ow0K PiA+ICsNCj4gPiArCS8qKjwgTWF4aW11bSBudW1iZXIgb2Ygc2hhcmVkIFdSRUQgY29udGV4dHMu IFRoZSB2YWx1ZSBvZiB6ZXJvDQo+ID4gKwkgKiBpbmRpY2F0ZXMgdGhhdCBzaGFyZWQgV1JFRCBj b250ZXh0cyBhcmUgbm90IHN1cHBvcnRlZC4NCj4gPiArCSAqLw0KPiA+ICsJdWludDMyX3QgY21h bl93cmVkX2NvbnRleHRfc2hhcmVkX25fbWF4Ow0KPiA+ICsNCj4gPiArCS8qKjwgTWF4aW11bSBu dW1iZXIgb2YgbGVhZiBub2RlcyB0aGF0IGNhbiBzaGFyZSB0aGUgc2FtZSBXUkVEDQo+IGNvbnRl eHQuDQo+ID4gKwkgKiBPbmx5IHZhbGlkIHdoZW4gc2hhcmVkIFdSRUQgY29udGV4dHMgYXJlIHN1 cHBvcnRlZC4NCj4gPiArCSAqLw0KPiA+ICsJdWludDMyX3QgY21hbl93cmVkX2NvbnRleHRfc2hh cmVkX25fbm9kZXNfbWF4Ow0KPiA+ICsNCj4gPiArCS8qKjwgU3VwcG9ydCBmb3IgVkxBTiBERUkg cGFja2V0IG1hcmtpbmcgKHBlciBjb2xvcikuICovDQo+ID4gKwlpbnQgbWFya192bGFuX2RlaV9z dXBwb3J0ZWRbUlRFX1RNX0NPTE9SU107DQo+ID4gKw0KPiA+ICsJLyoqPCBTdXBwb3J0IGZvciBJ UHY0L0lQdjYgRUNOIG1hcmtpbmcgb2YgVENQIHBhY2tldHMgKHBlciBjb2xvcikuDQo+ICovDQo+ ID4gKwlpbnQgbWFya19pcF9lY25fdGNwX3N1cHBvcnRlZFtSVEVfVE1fQ09MT1JTXTsNCj4gPiAr DQo+ID4gKwkvKio8IFN1cHBvcnQgZm9yIElQdjQvSVB2NiBFQ04gbWFya2luZyBvZiBTQ1RQIHBh Y2tldHMgKHBlciBjb2xvcikuDQo+ICovDQo+ID4gKwlpbnQgbWFya19pcF9lY25fc2N0cF9zdXBw b3J0ZWRbUlRFX1RNX0NPTE9SU107DQo+ID4gKw0KPiA+ICsJLyoqPCBTdXBwb3J0IGZvciBJUHY0 L0lQdjYgRFNDUCBwYWNrZXQgbWFya2luZyAocGVyIGNvbG9yKS4gKi8NCj4gPiArCWludCBtYXJr X2lwX2RzY3Bfc3VwcG9ydGVkW1JURV9UTV9DT0xPUlNdOw0KPiA+ICsNCj4gPiArCS8qKjwgU2V0 IG9mIHN1cHBvcnRlZCBkeW5hbWljIHVwZGF0ZSBvcGVyYXRpb25zDQo+ID4gKwkgKiAoc2VlIGVu dW0gcnRlX3RtX2R5bmFtaWNfdXBkYXRlX3R5cGUpLg0KPiA+ICsJICovDQo+ID4gKwl1aW50NjRf dCBkeW5hbWljX3VwZGF0ZV9tYXNrOw0KPiA+ICsNCj4gPiArCS8qKjwgU3VtbWFyeSBvZiBub2Rl LWxldmVsIGNhcGFiaWxpdGllcyBhY3Jvc3MgYWxsIG5vbi1sZWFmIG5vZGVzLiAqLw0KPiA+ICsJ c3RydWN0IHJ0ZV90bV9ub2RlX2NhcGFiaWxpdGllcyBub25sZWFmOw0KPiA+ICsNCj4gPiArCS8q KjwgU3VtbWFyeSBvZiBub2RlLWxldmVsIGNhcGFiaWxpdGllcyBhY3Jvc3MgYWxsIGxlYWYgbm9k ZXMuICovDQo+ID4gKwlzdHJ1Y3QgcnRlX3RtX25vZGVfY2FwYWJpbGl0aWVzIGxlYWY7DQo+IA0K PiBUaGlzIGlzIG5vdCByaWdodCwgV2hlbiB5b3UgYXJlIGhhdmluZyBwZXIgbGV2ZWwgY2FwYWJp bGl0aWVzLCB3aHkgdG8NCj4gcmV0dXJuIGEgbm9kZSBsZXZlbCBjYXBhYmlsaXR5IHdpdGggVE0u DQo+IA0KPiBJbiBzb2Z0d2FyZSwgaXQgaXMgZWFzeSB0byBtYWludGFpbiBhbGwgbm9kZXMgb2Yg c2FtZSBjYXBhYmlsaXRpZXMuIEJ1dA0KPiBpbiBjYXNlIG9mIGhhcmR3YXJlLCB0aGUgY2FwYWJp bGl0aWVzIG9mIGRpZmZlcmVudCBsZXZlbHMgaXMgZ29pbmcgdG8gYmUNCj4gZGlmZmVyZW50Lg0K PiANCj4gVGhpcyB3aWxsIHJlc3VsdCBpbnRvIG5vbi1wb3J0YWJsZSBpbXBsZW1lbnRhdGlvbiwg d2hlcmUgdGhlIGFwcGxpY2F0aW9uDQo+IHdpbGwgZmluZCB0aGUgZWFzeSB3YXkgdG8gYnVpbGQg dGhlIFRNIHRyZWUgb24gdGhpcyBiYXNpcyBvZiB0aGVzZSB2YWx1ZXMuDQo+IA0KPiBZb3UgYWxy ZWFkeSBoYXZlIG1vc3Qgb2YgdGhlIGNhcGFiaWxpdHkgaW5kaWNhdGlvbnMgaW4gdGhlIHRtIGxl dmVsDQo+IHBhcmFtZXRlcnMuIHRoZSBvbmx5IGluZm9ybWF0aW9uIG1pc3NpbmcgaXMgdy5yLnQg V1JSL1dGUSBhbmQgU1ANCj4gY2FwYWJpbGl0eSBvZiB0bS4geW91IGNhbiBhZGQgc29tZSBmbGFn cyB0byBnZXQgdGhhdC4NCj4gDQo+IA0KDQpZZXMsIHdlIGhhdmUgYSBwcml2YXRlIGNvbnZlcnNh dGlvbiBhbmQgSSBhZ3JlZSB3aXRoIHlvdXIgY29uY2VybiB0aGF0ICJzdW1tYXJ5IG9mIGNhcGFi aWxpdGllcyBhY3Jvc3MgYSBzZXQgb2Ygbm9kZXMiIGlzIHBvdGVudGlhbGx5IGNvbmZ1c2luZywg YXMgaXQgaXMgZWFzeSB0byBjb25mdXNlIGJldHdlZW4gImF0IGxlYXN0IG9uZSBub2RlIHN1cHBv cnRzIFgiIGFuZCAiYWxsIG5vZGVzIHN1cHBvcnQgWCIuIFRoZSBvbmx5IHJlYXNvbiBJIHdlbnQg dGhpcyB3YXkgaXMgdG8gc2F2ZSBvbiBzb21lIGJpZyBkYXRhIHN0cnVjdHVyZSBieSB0cnlpbmcg dG8gcmV1c2Ugc29tZSBvZiB0aGVtIGZvciBzbGlnaHRseSBkaWZmZXJlbnQgcHVycG9zZSB0aGFu IGluaXRpYWxseSBzdGF0ZWQuIEkgYW0gdGFraW5nIHRoZSBhY3Rpb24gdG8gcmV3b3JrIHRoaXMg cGFydCB0byBlbGltaW5hdGUgYW55IGNvbmZ1c2lvbi4NCg0KLi4uIDxzbmlwPg0KDQpSZWdhcmRz LA0KQ3Jpc3RpYW4NCg==