From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 054F95B12 for ; Fri, 16 Mar 2018 10:45:44 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Mar 2018 02:45:43 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,315,1517904000"; d="scan'208";a="38501839" Received: from irsmsx101.ger.corp.intel.com ([163.33.3.153]) by fmsmga001.fm.intel.com with ESMTP; 16 Mar 2018 02:45:42 -0700 Received: from irsmsx156.ger.corp.intel.com (10.108.20.68) by IRSMSX101.ger.corp.intel.com (163.33.3.153) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 16 Mar 2018 09:45:42 +0000 Received: from irsmsx105.ger.corp.intel.com ([169.254.7.216]) by IRSMSX156.ger.corp.intel.com ([169.254.3.229]) with mapi id 14.03.0319.002; Fri, 16 Mar 2018 09:45:41 +0000 From: "Ananyev, Konstantin" To: "alejandro.lucero@netronome.com" CC: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v1 0/5] add framework to load and execute BPF code Thread-Index: AQHTt8W2+yJ/L3MNsE+9zyb6KeSlIqPP930AgAGH8iCAAABisA== Date: Fri, 16 Mar 2018 09:45:41 +0000 Message-ID: <2601191342CEEE43887BDE71AB977258A0AB018E@irsmsx105.ger.corp.intel.com> References: <1520613725-9176-1-git-send-email-konstantin.ananyev@intel.com> <2601191342CEEE43887BDE71AB9772589E29032C@irsmsx105.ger.corp.intel.com> In-Reply-To: <2601191342CEEE43887BDE71AB9772589E29032C@irsmsx105.ger.corp.intel.com> Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZjU3OGY1ZmUtMDI0NC00NjFhLWI0YTMtZDc5NWZmZjA0MDUzIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6Inc3cnNHQXU1QTRkZGFNN2NQR29RdjZhUzNZeU0yMW1ETmNPRFFFb05zSmM9In0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [163.33.239.182] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v1 0/5] add framework to load and execute BPF code X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Mar 2018 09:45:45 -0000 PiANCj4gSSB0cmllZCB0byBzdGFydCBhIGRpc2N1c3Npb24gYWJvdXQgZUJQRiBzdXBwb3J0IHdp dGggRFBESyBpbiBsYXN0IERQREsgbWVldGluZyBpbiBTYW50YSBDbGFyYToNCj4gDQo+IGh0dHBz Oi8vZHBka3N1bW1pdC5jb20vQXJjaGl2ZS9wZGYvMjAxN1VTQS9EUERLJTIwc3VwcG9ydCUyMGZv ciUyMG5ldyUyMGhhcmR3YXJlJTIwb2ZmbG9hZHMucGRmDQo+IA0KPiBJbiBzbGlkZSAxNyBJIGhh dmUgc29tZSBwb2ludHMgd2hpY2gsIElNSE8sIGFyZSB3b3J0aCB0byBkaXNjdXNzIGJlZm9yZSBh ZGRpbmcgdGhpcyBzdXBwb3J0Lg0KPiANCj4gSSBjYW4gc2VlIGNvbXBhdGliaWxpdHkgd2l0aCBl QlBGIHByb2dyYW1zIHVzZWQgd2l0aCB0aGUga2VybmVsIGJlaW5nIGp1c3QgZW5vdWdoIGZvciBh ZGRpbmcgdGhpcyB0byBEUERLLCBidXQgaWYgSSB1bmRlcnN0YW5kIHdoZXJlIGVCUEYNCj4gaW5z aWRlIHRoZSBrZXJuZWwgaXMgZ29pbmcgKHJlZ2FyZGluZyBuZXR3b3JrIHN0YWNrKSwgdGhvc2Ug cHJvZ3JhbXMgYXJlIGdvaW5nIHRvIChvciBjb3VsZCkgcmVmZXIgdG8ga2VybmVsICJjb2RlIiwg c28gbWF5YmUgdGhpcw0KPiBjb21wYXRpYmlsaXR5IGlzIGp1c3QgaW1wb3NzaWJsZSB0byBzdXBw b3J0LiBUaGF0IHdvdWxkIGZvcmNlIGEgY2hlY2sgZm9yIGF2b2lkaW5nIHRob3NlIHByb2dyYW1z IHdpdGggc3VjaCByZWZlcmVuY2VzIGFuZCBJIGNhbiBzZWUgdGhpcw0KPiB3b3VsZCBiZWNvbWUg aW4gYSBtZXNzIHF1aWNrbHkuDQoNCkluc2lkZSBEUERLIHdlIGNhbiAoYW5kIHNob3VsZCwgSSB0 aGluaykgc3VwcG9ydCBlQlBGIElTQQ0KKGh0dHBzOi8vZ2l0aHViLmNvbS9pb3Zpc29yL2JwZi1k b2NzL2Jsb2IvbWFzdGVyL2VCUEYubWQpLg0KVGhvdWdoIG9mIGNvdXJzZSBpdCB3b3VsZCBiZSBo YXJkIChpZiBwb3NzaWJsZSBhdCBhbGwpIHRvIHN1cHBvcnQga2VybmVsIHNwZWNpZmljIHN0cnVj dHVyZXMgYW5kIGZ1bmN0aW9ucy4NCkFuZCBJIGRvbid0IHRoaW5rIHdlIGhhdmUgdG8gZ28gdGhh dCB3YXksIGluc3RlYWQgaXQgd291bGQgbXVjaCBwbGF1c2libGUgZm9yIERQREsgdXNlcnMgdG8g YWxsb3cgZUJQRiBpbnNpZGUgRFBESw0KdG8gcmVmZXIgRFBESyBzcGVjaWZpYyBzdHJ1Y3R1cmVz L2Z1bmN0aW9ucyAocnRlX21idWYsIGV0Yy4pLiANClNvIGlmIHdlIGhhdmUgYSBlQlBGIHByb2dy YW0gdGhhdCBhY2NlcHRzIHBvaW50ZXIgdG8gcmF3IHBhY2tldCBkYXRhIGFzIGFuIGlucHV0IGFu ZCBkb2Vzbid0IHJlZmVyIGFueQ0KZXh0ZXJuYWwgc3ltYm9scyAtIGl0IHNob3VsZCBydW4gdW5t b2RpZmllZCB3aXRoIGJvdGgga2VybmVsIGFuZCBEUERLIEJQRiBWTS4NCkluIG90aGVyIGNhc2Vz IHdlIHdvdWxkbid0IGhhdmUgZnVsbCBjb21wYXRpYmlsaXR5IGhlcmUuICAgIA0KDQo+IA0KPiBB c3N1bWluZyB0aGlzIGlzc3VlIGNvdWxkIGJlIG92ZXJjb21lIChvciBub3QgYW4gaXNzdWUgYXQg YWxsKSwgbWF5YmUgaXQgbWFrZXMgc2Vuc2UgdG8gZXhlY3V0ZSBlQlBGIHByb2dyYW1zIGJ1dCwg ZG9lcyBpdCBtYWtlIHNlbnNlIHRvDQo+IGV4ZWN1dGUgZUJQRiBjb2RlPyBUbyBzdGFydCB3aXRo LCB3ZSBhcmUgZ29pbmcgdG8gZXhlY3V0ZSB1c2Vyc3BhY2UgY29kZSBpbiB1c2Vyc3BhY2UgY29u dGV4dCwgc28gc29tZSAoSSB3b3VsZCBzYXkgbWFpbikgcmVhc29ucyBiZWhpbmQNCj4gZUJQRiBk byBub3QgYXBwbHkuDQoNCldlbGwsIHRoZXNlIGRheXMgQlBGIHVzZWQgZm9yIG1hbnkgZGlmZmVy ZW50IHB1cnBvc2VzIGluc2lkZSBrZXJuZWwuDQpTb21lIG9mIHRoZXNlIHB1cnBvc2VzIHdvdWxk IGJlIHZhbGlkIGZvciBEUERLIGFwcHMgdG9vLCBvdGhlcnMgcHJvYmFibHkgd291bGRuJ3QuDQpG b3IgZXhhbXBsZSAtIGFiaWxpdHkgdG8gZHluYW1pY2FsbHkgY3JlYXRlL2Rlc3Ryb3kgcGFja2V0 IGZpbHRlcnMgdG8gY2xhc3NpZnkvdHJhY2UvZHJvcC9jb2xsZWN0IHN0YXRpc3RpY3MNCmluIGEg dXNlciBkZWZpbmVkIHdheSAtIHRoYXQgSSB0aGluayB3aGF0IG1hbnkgdXNlcnMgd291bGQgYmUg aW50ZXJlc3RlZCBpbiBhbmQgdGhhdCB3aGF0IERQREsgaXMgbWlzc2luZyB0aGVzZSBkYXlzLg0K QWdhaW4sIG5vdGhpbmcgcHJldmVudHMgcGVvcGxlIHRvIHVzZSBCUEYgaW5zaWRlIERQREsgZm9y IHNvbWV0aGluZyB0b3RhbGx5IGRpZmZlcmVudCBmcm9tIGN1cnJlbnQga2VybmVsIHVzYWdlcy4N Cg0KPiBBbmQgZnJvbSBhIHBlcmZvcm1hbmNlIHBvaW50IG9mIHZpZXcsIGNhbiB3ZSBlbnN1cmUg ZUJQRiBjb2RlIGV4ZWN1dGlvbiBpcyBnb2luZyB0byBiZSBhdCBzYW1lIGxldmVsIHRoYW4NCj4g RFBESz/CoCANCg0KT2J2aW91c2x5IHBlcmZvcm1hbmNlIGRlcGVuZHMgZnJvbSBtYW55IHRoaW5n czoNCiAgLSBhY3R1YWwgZUJQRiBjb2RlIHlvdSBhcmUgZ29pbmcgdG8gZXhlY3V0ZQ0KICAtIGlu dGVycHJldGVyL0pJVC9IVyBvZmZsb2FkIHlvdSBhcmUgZ29pbmcgdG8gdXNlIGZvciB0aGF0DQog IC0gY29udGV4dCBhdCB3aGljaCBlQlBGIFZNIHdpbGwgYmUgZXhlY3V0ZWQNCiAgLSBldGMuDQoN CkluIGdlbmVyYWwsIGlmIHlvdSBsb2FkIGEgbmV3IHBhY2tldCBmaWx0ZXIgcnVubmluZyBpbiBT VyAtDQp5ZXMgdGhhdCB3b3VsZCBjb25zdW1lIHNvbWUgZXh0cmEgQ1BVIGN5Y2xlcyBhbmQgbWln aHQgYWZmZWN0IHBlcmZvcm1hbmNlLg0KQnV0IGluIG1hbnkgY2FzZXMgaXQgaXMgYW4gYWNjZXB0 YWJsZSB0cmFkZW9mZiAtIGZ1bmN0aW9uYWxpdHkgdnMgcGVyZm9ybWFuY2UuDQpBZ2FpbiwgaXQg aXMgdG90YWxseSB1cCB0byB1c2VyIC0gaWYgaGUgZmVlbHMgaGUgZG9lc24ndCBuZWVkIHRoYXQg ZnVuY3Rpb25hbGl0eSwNCmhlIGp1c3Qgd291bGRuJ3QgbG9hZCBCUEYgcHJvZ3JhbXMuDQoNCj5X b3VsZCBub3QgaXQgYmUgYSBiZXR0ZXIgaWRlYSB0byB0cmFuc2xhdGUgZWJwZiBwcm9ncmFtcyB0 byBvdGhlciBsYW5ndWFnZSBsaWtlIC4uLiBDPw0KDQpjbGFuZyAoc3RhcnRpbmcgZnJvbSB2IDMu Nykgc3VwcG9ydHMgZUJQRiBhcyBvbmUgb2YgaXRzIGJhY2tlbmQgdGFyZ2V0cywgc28gbm93IGl0 IGlzIHBvc3NpYmxlIHRvDQp3cml0ZSBlQlBGIHByb2NlZHVyZXMgdXNpbmcgQyAocmVzdHJpY3Rl ZCB2ZXJzaW9uKS4NCkluIGZhY3QsIGFsbCBzYW1wbGVzIGluIHBhdGNoICM1IGFyZSB3cml0dGVu IGluIHB1cmUgQy4NCg0KPiANCj4gRG9uJ3QgdGFrZSBtZSB3cm9uZy4gSSdtIG5vdCBhZ2FpbnN0 IGFkZGluZyBlQlBGIGF0IGFsbC4gSW4gZmFjdCwgZnJvbSBteSBjb21wYW55J3MgcG9pbnQgb2Yg dmlldywgTmV0cm9ub21lLCB3ZSB3b3VsZCBiZSBoYXBweSB0byBoYXZlDQo+IHRoaXMgd2l0aCBE UERLIGFuZCB0byBzdXBwb3J0IGVCUEYgb2ZmbG9hZCBhcyB0aGlzIGlzIHBvc3NpYmxlIG5vdyB3 aXRoIHRoZSBuZXRkZXYgZHJpdmVyLg0KDQpLb25zdGFudGluDQoNCg0KPiANCj4gDQo+IE9uIEZy aSwgTWFyIDksIDIwMTggYXQgNDo0MiBQTSwgS29uc3RhbnRpbiBBbmFueWV2IDxrb25zdGFudGlu LmFuYW55ZXZAaW50ZWwuY29tPiB3cm90ZToNCj4gQlBGIGlzIHVzZWQgcXVpdGUgaW50ZW5zaXZl bHkgaW5zaWRlIExpbnV4IChhbmQgQlNEKSBrZXJuZWxzDQo+IGZvciB2YXJpb3VzIGRpZmZlcmVu dCBwdXJwb3NlcyBhbmQgcHJvdmVkIHRvIGJlIGV4dHJlbWVseSB1c2VmdWwuDQo+IA0KPiBCUEYg aW5zaWRlIERQREsgbWlnaHQgYWxzbyBiZSB1c2VkIGluIGEgbG90IG9mIHBsYWNlcw0KPiBmb3Ig YSBsb3Qgb2Ygc2ltaWxhciB0aGluZ3MuDQo+IMKgQXMgYW4gZXhhbXBsZSB0bzoNCj4gLSBwYWNr ZXQgZmlsdGVyaW5nL3RyYWNpbmcgKGFrYSB0Y3BkdW1wKQ0KPiAtIHBhY2tldCBjbGFzc2lmaWNh dGlvbg0KPiAtIHN0YXRpc3RpY3MgY29sbGVjdGlvbg0KPiAtIEhXL1BNRCBsaXZlLXN5c3RlbSBk ZWJ1Z2dpbmcvcHJvdG90eXBpbmcgLSB0cmFjZSBIVyBkZXNjcmlwdG9ycywNCj4gwqAgaW50ZXJu YWwgUE1EIFNXIHN0YXRlLCBldGMuDQo+IMKgLi4uDQo+IA0KPiBBbGwgb2YgdGhhdCBpbiBhIGR5 bmFtaWMsIHVzZXItZGVmaW5lZCBhbmQgZXh0ZW5zaWJsZSBtYW5uZXIuDQo+IA0KPiBTbyB0aGVz ZSBzZXJpZXMgaW50cm9kdWNlIG5ldyBsaWJyYXJ5IC0gbGlicnRlX2JwZi4NCj4gbGlicnRlX2Jw ZiBwcm92aWRlcyBBUEkgdG8gbG9hZCBhbmQgZXhlY3V0ZSBCUEYgYnl0ZWNvZGUgd2l0aGluDQo+ IHVzZXItc3BhY2UgZHBkayBhcHAuDQo+IEl0IHN1cHBvcnRzIGJhc2ljIHNldCBvZiBmZWF0dXJl cyBmcm9tIGVCUEYgc3BlYy4NCj4gQWxzbyBpdCBpbnRyb2R1Y2VzIGJhc2ljIGZyYW1ld29yayB0 byBsb2FkL3VubG9hZCBCUEYtYmFzZWQgZmlsdGVycw0KPiBvbiBldGggZGV2aWNlcyAocmlnaHQg bm93IHZpYSBTVyBSWC9UWCBjYWxsYmFja3MpLg0KPiANCj4gSG93IHRvIHRyeSBpdDoNCj4gPT09 PT09PT09PT09PT09DQo+IA0KPiAxKSBydW4gdGVzdHBtZCBhcyB1c3VhbCBhbmQgc3RhcnQgeW91 ciBmYXZvcml0ZSBmb3J3YXJkaW5nIGNhc2UuDQo+IDIpIGJ1aWxkIGJwZiBwcm9ncmFtIHlvdSdk IGxpa2UgdG8gbG9hZA0KPiAoeW91J2xsIG5lZWQgY2xhbmcgdjMuNyBvciBhYm92ZSk6DQo+ICQg Y2QgdGVzdC9icGYNCj4gJCBjbGFuZyAtTzIgLXRhcmdldCBicGYgLWMgdDEuYw0KPiANCj4gMykg bG9hZCBicGYgcHJvZ3JhbShzKToNCj4gdGVzdHBtZD4gYnBmLWxvYWQgcnh8dHggPHBvcnRpZD4g PHF1ZXVlaWQ+IDxsb2FkLWZsYWdzPiA8YnBmLXByb2ctZmlsZW5hbWU+DQo+IA0KPiA8bG9hZC1m bGFncz46wqAgWy1dW0pdW01dDQo+IEogLSB1c2UgSklUIGdlbmVyYXRlZCBuYXRpdmUgY29kZSwg b3RoZXJ3aXNlIEJQRiBpbnRlcnByZXRlciB3aWxsIGJlIHVzZWQuDQo+IE0gLSBhc3N1bWUgaW5w dXQgcGFyYW1ldGVyIGlzIGEgcG9pbnRlciB0byBydGVfbWJ1ZiwNCj4gwqAgwqAgb3RoZXJ3aXNl IGFzc3VtZSBpdCBpcyBhIHBvaW50ZXIgdG8gZmlyc3Qgc2VnbWVudCdzIGRhdGEuDQo+IA0KPiBG ZXcgZXhhbXBsZXM6DQo+IA0KPiAjIHRvIGxvYWQgKG5vdCBKSVRlZCkgZHVtbXkubyBhdCBUWCBx dWV1ZSAwLCBwb3J0IDA6DQo+IHRlc3RwbWQ+IGJwZi1sb2FkIHR4IDAgMCAtIC4vZHBkay5vcmcv dGVzdC9icGYvZHVtbXkubw0KPiANCj4gI3RvIGxvYWQgKGFuZCBKSVQgY29tcGlsZSkgdDEubyBh dCBSWCBxdWV1ZSAwLCBwb3J0IDE6DQo+IHRlc3RwbWQ+IGJwZi1sb2FkIHJ4IDEgMCBKIC4vZHBk ay5vcmcvdGVzdC9icGYvdDEubw0KPiANCj4gI3RvIGxvYWQgYW5kIEpJVCB0My5vIChub3RlIHRo YXQgaXQgZXhwZWN0cyBtYnVmIGFzIGFuIGlucHV0KToNCj4gdGVzdHBtZD4gYnBmLWxvYWQgcngg MiAwIEpNIC4vZHBkay5vcmcvdGVzdC9icGYvdDMubw0KPiANCj4gSWYgeW91IGFyZSBjdXJpb3Vz IHRvIGNoZWNrIEpJVCBnZW5lcmF0ZWQgbmF0aXZlIGNvZGU6DQo+IGdkYiAtcCBgcGdyZXAgdGVz dHBtZGANCj4gKGdkYikgZGlzYXMgMHg3ZmQxNzNjNWYwMDAsKzc2DQo+IER1bXAgb2YgYXNzZW1i bGVyIGNvZGUgZnJvbSAweDdmZDE3M2M1ZjAwMCB0byAweDdmZDE3M2M1ZjA0YzoNCj4gwqAgwqAw eDAwMDA3ZmQxNzNjNWYwMDA6wqAgbW92wqAgwqAgJXJkaSwlcnNpDQo+IMKgIMKgMHgwMDAwN2Zk MTczYzVmMDAzOsKgIG1vdnp3cSAweDEwKCVyc2kpLCVyZGkNCj4gwqAgwqAweDAwMDA3ZmQxNzNj NWYwMDg6wqAgbW92wqAgwqAgMHgwKCVyc2kpLCVyZHgNCj4gwqAgwqAweDAwMDA3ZmQxNzNjNWYw MGM6wqAgYWRkwqAgwqAgJXJkaSwlcmR4DQo+IMKgIMKgMHgwMDAwN2ZkMTczYzVmMDBmOsKgIG1v dnpicSAweGMoJXJkeCksJXJkaQ0KPiDCoCDCoDB4MDAwMDdmZDE3M2M1ZjAxNDrCoCBtb3Z6YnEg MHhkKCVyZHgpLCVyZHgNCj4gwqAgwqAweDAwMDA3ZmQxNzNjNWYwMTk6wqAgc2hswqAgwqAgJDB4 OCwlcmR4DQo+IMKgIMKgMHgwMDAwN2ZkMTczYzVmMDFkOsKgIG9ywqAgwqAgwqAlcmRpLCVyZHgN Cj4gwqAgwqAweDAwMDA3ZmQxNzNjNWYwMjA6wqAgY21wwqAgwqAgJDB4NjA4LCVyZHgNCj4gwqAg wqAweDAwMDA3ZmQxNzNjNWYwMjc6wqAgam5lwqAgwqAgMHg3ZmQxNzNjNWYwNDQNCj4gwqAgwqAw eDAwMDA3ZmQxNzNjNWYwMjk6wqAgbW92wqAgwqAgJDB4YjcxMmU4LCVyZGkNCj4gwqAgwqAweDAw MDA3ZmQxNzNjNWYwMzA6wqAgbW92wqAgwqAgMHgwKCVyZGkpLCVyZGkNCj4gwqAgwqAweDAwMDA3 ZmQxNzNjNWYwMzQ6wqAgbW92wqAgwqAgJDB4NDAsJXJkeA0KPiDCoCDCoDB4MDAwMDdmZDE3M2M1 ZjAzYjrCoCBtb3bCoCDCoCAkMHg0ZGIyZjAsJXJheA0KPiDCoCDCoDB4MDAwMDdmZDE3M2M1ZjA0 MjrCoCBjYWxsccKgIColcmF4DQo+IMKgIMKgMHgwMDAwN2ZkMTczYzVmMDQ0OsKgIG1vdsKgIMKg ICQweDEsJXJheA0KPiDCoCDCoDB4MDAwMDdmZDE3M2M1ZjA0YjrCoCByZXRxDQo+IEVuZCBvZiBh c3NlbWJsZXIgZHVtcC4NCj4gDQo+IDQpIG9ic2VydmUgY2hhbmdlZCB0cmFmZmljIGJlaGF2aW9y DQo+IExldCBzYXkgd2l0aCB0aGUgZXhhbXBsZXMgYWJvdmU6DQo+IMKgIC0gZHVtbXkub8KgIGRv ZXMgbGl0ZXJhbGx5IG5vdGhpbmcsIHNvIG5vIGNoYW5nZXMgc2hvdWxkIGJlIGhlcmUsDQo+IMKg IMKgIGV4Y2VwdCBzb21lIHBvc3NpYmxlIHNsb3dkb3duLg0KPiDCoC0gdDEubyAtIHNob3VsZCBm b3JjZSB0byBkcm9wIGFsbCBwYWNrZXRzIHRoYXQgZG9lc24ndCBtYXRjaDoNCj4gwqAgwqAnZHN0 IDEuMi4zLjQgJiYgdWRwICYmIGRzdCBwb3J0IDUwMDAnIGZpbHRlci4NCj4gwqAtIHQzLm8gLSBz aG91bGQgZHVtcCB0byBzdGRvdXQgQVJQIHBhY2tldHMuDQo+IA0KPiA1KSB1bmxvYWQgc29tZSBv ciBhbGwgYnBmIHByb2dyYW1zOg0KPiB0ZXN0cG1kPiBicGYtdW5sb2FkIHR4IDAgMA0KPiANCj4g NikgY29udGludWUgd2l0aCBzdGVwIDMpIG9yIGV4aXQNCj4gDQo+IFRPRE8gbGlzdDoNCj4gPT09 PT09PT09PQ0KPiAtIG1lc29uIGJ1aWxkDQo+IC0gVVQgZm9yIGl0DQo+IC0gaW1wbGVtZW50IHBy b3BlciB2YWxpZGF0ZSgpDQo+IC0gYWxsb3cgSklUIHRvIGdlbmVyYXRlIGJ1bGsgdmVyc2lvbg0K PiAtIEZyZWVCU0Qgc3VwcG9ydA0KPiANCj4gTm90IGN1cnJlbnRseSBzdXBwb3J0ZWQgZmVhdHVy ZXM6DQo+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiAtIGNCUEYNCj4gLSB0 YWlsLXBvaW50ZXIgY2FsbA0KPiAtIGVCUEYgTUFQDQo+IC0gSklUIGZvciBub24gWDg2XzY0IHRh cmdldHMNCj4gLSBza2INCj4gDQo+IEtvbnN0YW50aW4gQW5hbnlldiAoNSk6DQo+IMKgIGJwZjog YWRkIEJQRiBsb2FkaW5nIGFuZCBleGVjdXRpb24gZnJhbWV3b3JrDQo+IMKgIGJwZjogYWRkIEpJ VCBjb21waWxhdGlvbiBmb3IgeDg2XzY0IElTQS4NCj4gwqAgYnBmOiBpbnRyb2R1Y2UgYmFzaWMg UlgvVFggQlBGIGZpbHRlcnMNCj4gwqAgdGVzdHBtZDogbmV3IGNvbW1hbmRzIHRvIGxvYWQvdW5s b2FkIEJQRiBmaWx0ZXJzDQo+IMKgIHRlc3Q6IGFkZCBmZXcgZUJQRiBzYW1wbGVzDQo+IA0KPiDC oGFwcC90ZXN0LXBtZC9icGZfc3VwLmjCoCDCoCDCoCDCoCDCoCDCoCDCoHzCoCDCoDI1ICsNCj4g wqBhcHAvdGVzdC1wbWQvY21kbGluZS5jwqAgwqAgwqAgwqAgwqAgwqAgwqB8wqAgMTQ2ICsrKysN Cj4gwqBjb25maWcvY29tbW9uX2Jhc2XCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHzCoCDCoCA1 ICsNCj4gwqBjb25maWcvY29tbW9uX2xpbnV4YXBwwqAgwqAgwqAgwqAgwqAgwqAgwqB8wqAgwqAg MSArDQo+IMKgbGliL01ha2VmaWxlwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8 wqAgwqAgMiArDQo+IMKgbGliL2xpYnJ0ZV9icGYvTWFrZWZpbGXCoCDCoCDCoCDCoCDCoCDCoCB8 wqAgwqAzNSArDQo+IMKgbGliL2xpYnJ0ZV9icGYvYnBmLmPCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oHzCoCDCoDUyICsrDQo+IMKgbGliL2xpYnJ0ZV9icGYvYnBmX2V4ZWMuY8KgIMKgIMKgIMKgIMKg IHzCoCA0NTIgKysrKysrKysrKysrDQo+IMKgbGliL2xpYnJ0ZV9icGYvYnBmX2ltcGwuaMKgIMKg IMKgIMKgIMKgIHzCoCDCoDM3ICsNCj4gwqBsaWIvbGlicnRlX2JwZi9icGZfaml0X3g4Ni5jwqAg wqAgwqAgwqB8IDEzMjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+IMKg bGliL2xpYnJ0ZV9icGYvYnBmX2xvYWQuY8KgIMKgIMKgIMKgIMKgIHzCoCAzODAgKysrKysrKysr KysNCj4gwqBsaWIvbGlicnRlX2JwZi9icGZfcGt0LmPCoCDCoCDCoCDCoCDCoCDCoHzCoCA1MjQg KysrKysrKysrKysrKysNCj4gwqBsaWIvbGlicnRlX2JwZi9icGZfdmFsaWRhdGUuY8KgIMKgIMKg IHzCoCDCoDU1ICsrDQo+IMKgbGliL2xpYnJ0ZV9icGYvcnRlX2JwZi5owqAgwqAgwqAgwqAgwqAg wqB8wqAgMTU4ICsrKysrDQo+IMKgbGliL2xpYnJ0ZV9icGYvcnRlX2JwZl9ldGhkZXYuaMKgIMKg IHzCoCDCoDUwICsrDQo+IMKgbGliL2xpYnJ0ZV9icGYvcnRlX2JwZl92ZXJzaW9uLm1hcCB8wqAg wqAxNiArDQo+IMKgbWsvcnRlLmFwcC5ta8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IHzCoCDCoCAyICsNCj4gwqB0ZXN0L2JwZi9kdW1teS5jwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqB8wqAgwqAyMCArDQo+IMKgdGVzdC9icGYvbWJ1Zi5owqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgfMKgIDU1NiArKysrKysrKysrKysrKysNCj4gwqB0ZXN0L2JwZi90MS5jwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfMKgIMKgNTMgKysNCj4gwqB0ZXN0L2JwZi90Mi5j wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfMKgIMKgMzAgKw0KPiDCoHRlc3QvYnBm L3QzLmPCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8wqAgwqAzNiArDQo+IMKgMjIg ZmlsZXMgY2hhbmdlZCwgMzk2NCBpbnNlcnRpb25zKCspDQo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0 IGFwcC90ZXN0LXBtZC9icGZfc3VwLmgNCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0 ZV9icGYvTWFrZWZpbGUNCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9icGYvYnBm LmMNCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9icGYvYnBmX2V4ZWMuYw0KPiDC oGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRlX2JwZi9icGZfaW1wbC5oDQo+IMKgY3JlYXRl IG1vZGUgMTAwNjQ0IGxpYi9saWJydGVfYnBmL2JwZl9qaXRfeDg2LmMNCj4gwqBjcmVhdGUgbW9k ZSAxMDA2NDQgbGliL2xpYnJ0ZV9icGYvYnBmX2xvYWQuYw0KPiDCoGNyZWF0ZSBtb2RlIDEwMDY0 NCBsaWIvbGlicnRlX2JwZi9icGZfcGt0LmMNCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xp YnJ0ZV9icGYvYnBmX3ZhbGlkYXRlLmMNCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0 ZV9icGYvcnRlX2JwZi5oDQo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9saWJydGVfYnBmL3J0 ZV9icGZfZXRoZGV2LmgNCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9icGYvcnRl X2JwZl92ZXJzaW9uLm1hcA0KPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2JwZi9kdW1teS5j DQo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3QvYnBmL21idWYuaA0KPiDCoGNyZWF0ZSBtb2Rl IDEwMDY0NCB0ZXN0L2JwZi90MS5jDQo+IMKgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3QvYnBmL3Qy LmMNCj4gwqBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9icGYvdDMuYw0KPiANCj4gLS0NCj4gMi4x My42DQoNCg==