From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by dpdk.org (Postfix) with ESMTP id 4C39356A8 for ; Fri, 28 Oct 2016 22:29:19 +0200 (CEST) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Date: Fri, 28 Oct 2016 22:27:37 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC359EA8E1@smartserver.smartshare.dk> In-Reply-To: <59AF69C657FD0841A61C55336867B5B035B32000@IRSMSX103.ger.corp.intel.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [dpdk-dev] mbuf changes Thread-Index: AdIuDi107p4k5g0aQEmWpCYJ+64TpwAPchyA//+OlgCAARAHgIAACOMAgAAO/wCAABNXgIAAALWAgAARyoD///MVgIAAE+YA///wSICABMPaAIAACkyAgAAsPYD//+1n0P//t+hQ References: <98CBD80474FA8B44BF855DF32C47DC359EA8B7@smartserver.smartshare.dk> <20161025110444.GK5733@6wind.com> <20161025111357.GA43504@bricha3-MOBL3.ger.corp.intel.com> <98CBD80474FA8B44BF855DF32C47DC359EA8BA@smartserver.smartshare.dk> <20161025122008.GA54704@bricha3-MOBL3.ger.corp.intel.com> <98CBD80474FA8B44BF855DF32C47DC359EA8BB@smartserver.smartshare.dk> <20161025124508.GA59784@bricha3-MOBL3.ger.corp.intel.com> <4427b23b-e9c0-4e43-9c28-fb7e56da745c@6wind.com> <3AEA2BF9852C6F48A459DA490692831F010BF015@IRSMSX109.ger.corp.intel.com> <98CBD80474FA8B44BF855DF32C47DC359EA8DB@smartserver.smartshare.dk> <20161028165005.GY5733@6wind.com> <59AF69C657FD0841A61C55336867B5B035B32000@IRSMSX103.ger.corp.intel.com> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Richardson, Bruce" , "Adrien Mazarguil" Cc: dev@dpdk.org Subject: Re: [dpdk-dev] mbuf changes 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: Fri, 28 Oct 2016 20:29:19 -0000 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXYgW21haWx0bzpkZXYtYm91 bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxmIE9mIFJpY2hhcmRzb24sIEJydWNlDQo+IFNlbnQ6IEZy aWRheSwgT2N0b2JlciAyOCwgMjAxNiA3OjAxIFBNDQo+IFRvOiBBZHJpZW4gTWF6YXJndWlsOyBN b3J0ZW4gQnLDuHJ1cA0KPiBDYzogZGV2QGRwZGsub3JnDQo+IFN1YmplY3Q6IFJlOiBbZHBkay1k ZXZdIG1idWYgY2hhbmdlcw0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ IEZyb206IGRldiBbbWFpbHRvOmRldi1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgQWRy aWVuIE1hemFyZ3VpbA0KPiA+IFNlbnQ6IEZyaWRheSwgT2N0b2JlciAyOCwgMjAxNiA1OjUwIFBN DQo+ID4gVG86IE1vcnRlbiBCcsO4cnVwIDxtYkBzbWFydHNoYXJlc3lzdGVtcy5jb20+DQo+ID4g Q2M6IGRldkBkcGRrLm9yZw0KPiA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIG1idWYgY2hhbmdl cw0KPiA+DQo+ID4gT24gRnJpLCBPY3QgMjgsIDIwMTYgYXQgMDQ6MTE6NDVQTSArMDIwMCwgTW9y dGVuIEJyw7hydXAgd3JvdGU6DQo+ID4gPiBDb21tZW50cyBhdCB0aGUgZW5kLg0KPiA+ID4NCj4g PiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogZGV2IFttYWls dG86ZGV2LWJvdW5jZXNAZHBkay5vcmddIE9uIEJlaGFsZiBPZiBQYXR0YW4sDQo+ID4gPiA+IFJl c2htYQ0KPiA+ID4gPiBTZW50OiBGcmlkYXksIE9jdG9iZXIgMjgsIDIwMTYgMzozNSBQTQ0KPiA+ ID4gPiBUbzogT2xpdmllciBNYXR6DQo+ID4gPiA+IENjOiBkZXZAZHBkay5vcmc7IE1vcnRlbiBC csO4cnVwDQo+ID4gPiA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIG1idWYgY2hhbmdlcw0KPiA+ ID4gPg0KPiA+ID4gPiBIaSBPbGl2aWVyLA0KPiA+ID4gPg0KPiA+ID4gPiA+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogZGV2IFttYWlsdG86ZGV2LWJvdW5jZXNA ZHBkay5vcmddIE9uIEJlaGFsZiBPZiBPbGl2aWVyDQo+ID4gPiA+ID4gTWF0eg0KPiA+ID4gPiA+ IFNlbnQ6IFR1ZXNkYXksIE9jdG9iZXIgMjUsIDIwMTYgMTo0OSBQTQ0KPiA+ID4gPiA+IFRvOiBS aWNoYXJkc29uLCBCcnVjZSA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+OyBNb3J0ZW4NCj4g PiA+ID4gPiBCcsO4cnVwIDxtYkBzbWFydHNoYXJlc3lzdGVtcy5jb20+DQo+ID4gPiA+ID4gQ2M6 IEFkcmllbiBNYXphcmd1aWwgPGFkcmllbi5tYXphcmd1aWxANndpbmQuY29tPjsgV2lsZXMsIEtl aXRoDQo+ID4gPiA+ID4gPGtlaXRoLndpbGVzQGludGVsLmNvbT47IGRldkBkcGRrLm9yZzsgT2xl ZyBLdXBvcm9zb3YNCj4gPiA+ID4gPiA8b2xlZ2tAbWVsbGFub3guY29tPg0KPiA+ID4gPiA+IFN1 YmplY3Q6IFJlOiBbZHBkay1kZXZdIG1idWYgY2hhbmdlcw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IE9uIDEwLzI1LzIwMTYgMDI6NDUgUE0sIEJydWNlIFJpY2hh cmRzb24gd3JvdGU6DQo+ID4gPiA+ID4gPiBPbiBUdWUsIE9jdCAyNSwgMjAxNiBhdCAwMjozMzo1 NVBNICswMjAwLCBNb3J0ZW4gQnLDuHJ1cCB3cm90ZToNCj4gPiA+ID4gPiA+PiBDb21tZW50cyBh dCB0aGUgZW5kLg0KPiA+ID4gPiA+ID4+DQo+ID4gPiA+ID4gPj4gTWVkIHZlbmxpZyBoaWxzZW4g LyBraW5kIHJlZ2FyZHMNCj4gPiA+ID4gPiA+PiAtIE1vcnRlbiBCcsO4cnVwDQo+ID4gPiA+ID4g Pj4NCj4gPiA+ID4gPiA+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+ Pj4gRnJvbTogQnJ1Y2UgUmljaGFyZHNvbiBbbWFpbHRvOmJydWNlLnJpY2hhcmRzb25AaW50ZWwu Y29tXQ0KPiA+ID4gPiA+ID4+PiBTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDI1LCAyMDE2IDI6MjAg UE0NCj4gPiA+ID4gPiA+Pj4gVG86IE1vcnRlbiBCcsO4cnVwDQo+ID4gPiA+ID4gPj4+IENjOiBB ZHJpZW4gTWF6YXJndWlsOyBXaWxlcywgS2VpdGg7IGRldkBkcGRrLm9yZzsgT2xpdmllcg0KPiA+ ID4gPiA+ID4+PiBNYXR6OyBPbGVnIEt1cG9yb3Nvdg0KPiA+ID4gPiA+ID4+PiBTdWJqZWN0OiBS ZTogW2RwZGstZGV2XSBtYnVmIGNoYW5nZXMNCj4gPiA+ID4gPiA+Pj4NCj4gPiA+ID4gPiA+Pj4g T24gVHVlLCBPY3QgMjUsIDIwMTYgYXQgMDI6MTY6MjlQTSArMDIwMCwgTW9ydGVuIEJyw7hydXAg d3JvdGU6DQo+ID4gPiA+ID4gPj4+PiBDb21tZW50cyBpbmxpbmUuDQo+ID4gPiA+ID4gPj4+Pg0K PiA+ID4gPiA+ID4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPj4+ Pj4gRnJvbTogZGV2IFttYWlsdG86ZGV2LWJvdW5jZXNAZHBkay5vcmddIE9uIEJlaGFsZiBPZiBC cnVjZQ0KPiA+ID4gPiA+ID4+Pj4+IFJpY2hhcmRzb24NCj4gPiA+ID4gPiA+Pj4+PiBTZW50OiBU dWVzZGF5LCBPY3RvYmVyIDI1LCAyMDE2IDE6MTQgUE0NCj4gPiA+ID4gPiA+Pj4+PiBUbzogQWRy aWVuIE1hemFyZ3VpbA0KPiA+ID4gPiA+ID4+Pj4+IENjOiBNb3J0ZW4gQnLDuHJ1cDsgV2lsZXMs IEtlaXRoOyBkZXZAZHBkay5vcmc7IE9saXZpZXINCj4gPiA+ID4gPiA+Pj4+PiBNYXR6OyBPbGVn IEt1cG9yb3Nvdg0KPiA+ID4gPiA+ID4+Pj4+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIG1idWYg Y2hhbmdlcw0KPiA+ID4gPiA+ID4+Pj4+DQo+ID4gPiA+ID4gPj4+Pj4gT24gVHVlLCBPY3QgMjUs IDIwMTYgYXQgMDE6MDQ6NDRQTSArMDIwMCwgQWRyaWVuIE1hemFyZ3VpbA0KPiA+ID4gPiB3cm90 ZToNCj4gPiA+ID4gPiA+Pj4+Pj4gT24gVHVlLCBPY3QgMjUsIDIwMTYgYXQgMTI6MTE6MDRQTSAr MDIwMCwgTW9ydGVuIEJyw7hydXANCj4gPiB3cm90ZToNCj4gPiA+ID4gPiA+Pj4+Pj4+IENvbW1l bnRzIGlubGluZS4NCj4gPiA+ID4gPiA+Pj4+Pj4+DQo+ID4gPiA+ID4gPj4+Pj4+PiBNZWQgdmVu bGlnIGhpbHNlbiAvIGtpbmQgcmVnYXJkcw0KPiA+ID4gPiA+ID4+Pj4+Pj4gLSBNb3J0ZW4gQnLD uHJ1cA0KPiA+ID4gPiA+ID4+Pj4+Pj4NCj4gPiA+ID4gPiA+Pj4+Pj4+DQo+ID4gPiA+ID4gPj4+ Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+Pj4+Pj4+PiBGcm9t OiBBZHJpZW4gTWF6YXJndWlsDQo+ID4gPiA+ID4gPj4+Pj4+Pj4gW21haWx0bzphZHJpZW4ubWF6 YXJndWlsQDZ3aW5kLmNvbV0NCj4gPiA+ID4gPiA+Pj4+Pj4+PiBTZW50OiBUdWVzZGF5LCBPY3Rv YmVyIDI1LCAyMDE2IDExOjM5IEFNDQo+ID4gPiA+ID4gPj4+Pj4+Pj4gVG86IEJydWNlIFJpY2hh cmRzb24NCj4gPiA+ID4gPiA+Pj4+Pj4+PiBDYzogV2lsZXMsIEtlaXRoOyBNb3J0ZW4gQnLDuHJ1 cDsgZGV2QGRwZGsub3JnOyBPbGl2aWVyDQo+ID4gPiA+ID4gPj4+Pj4+Pj4gTWF0ejsgT2xlZyBL dXBvcm9zb3YNCj4gPiA+ID4gPiA+Pj4+Pj4+PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBtYnVm IGNoYW5nZXMNCj4gPiA+ID4gPiA+Pj4+Pj4+Pg0KPiA+ID4gPiA+ID4+Pj4+Pj4+IE9uIE1vbiwg T2N0IDI0LCAyMDE2IGF0IDA1OjI1OjM4UE0gKzAxMDAsIEJydWNlDQo+ID4gPiA+ID4gPj4+Pj4+ Pj4gUmljaGFyZHNvbg0KPiA+ID4gPiA+ID4+PiB3cm90ZToNCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4g T24gTW9uLCBPY3QgMjQsIDIwMTYgYXQgMDQ6MTE6MzNQTSArMDAwMCwgV2lsZXMsIEtlaXRoDQo+ ID4gPiA+ID4gPj4+IHdyb3RlOg0KPiA+ID4gPiA+ID4+Pj4+Pj4+IFsuLi5dDQo+ID4gPiA+ID4g Pj4+Pj4+Pj4+Pj4gT24gT2N0IDI0LCAyMDE2LCBhdCAxMDo0OSBBTSwgTW9ydGVuIEJyw7hydXAN Cj4gPiA+ID4gPiA+Pj4+Pj4+PiA8bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPiB3cm90ZToNCj4g PiA+ID4gPiA+Pj4+Pj4+PiBbLi4uXQ0KPiA+ID4gPiA+ID4+Pj4NCj4gPiA+ID4gPiA+Pj4+Pj4+ Pj4gT25lIG90aGVyIHBvaW50IEknbGwgbWVudGlvbiBpcyB0aGF0IHdlIG5lZWQgdG8gaGF2ZSBh DQo+ID4gPiA+ID4gPj4+Pj4+Pj4+IGRpc2N1c3Npb24gb24gaG93L3doZXJlIHRvIGFkZCBpbiBh IHRpbWVzdGFtcCB2YWx1ZQ0KPiA+ID4gPiA+ID4+Pj4+Pj4+PiBpbnRvDQo+ID4gPiA+ID4gPj4+ IHRoZQ0KPiA+ID4gPiA+ID4+Pj4+Pj4+PiBtYnVmLiBQZXJzb25hbGx5LCBJIHRoaW5rIGl0IGNh biBiZSBpbiBhIHVuaW9uIHdpdGgNCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4gdGhlDQo+ID4gPiA+ID4g Pj4+Pj4gc2VxdWVuY2UNCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4gbnVtYmVyIHZhbHVlLCBidXQgSSBh bHNvIHN1c3BlY3QgdGhhdCAzMi1iaXRzIG9mIGENCj4gPiA+ID4gPiA+Pj4gdGltZXN0YW1wDQo+ ID4gPiA+ID4gPj4+Pj4+Pj4+IGlzIG5vdCBnb2luZyB0byBiZSBlbm91Z2ggZm9yDQo+ID4gPiA+ ID4gPj4+Pj4+Pj4gbWFueS4NCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4NCj4gPiA+ID4gPiA+Pj4+Pj4+ Pj4gVGhvdWdodHM/DQo+ID4gPiA+ID4gPj4+Pj4+Pj4NCj4gPiA+ID4gPiA+Pj4+Pj4+PiBJZiB3 ZSBjb25zaWRlciB0aGF0IHRpbWVzdGFtcCByZXByZXNlbnRhdGlvbiBzaG91bGQgdXNlDQo+ID4g PiA+ID4gPj4+Pj4gbmFub3NlY29uZA0KPiA+ID4gPiA+ID4+Pj4+Pj4+IGdyYW51bGFyaXR5LCBh IDMyLWJpdCB2YWx1ZSBtYXkgbGlrZWx5IHdyYXAgYXJvdW5kIHRvbw0KPiA+ID4gPiA+ID4+PiBx dWlja2x5DQo+ID4gPiA+ID4gPj4+Pj4+Pj4gdG8gYmUgdXNlZnVsLiBXZSBjYW4gYWxzbyBhc3N1 bWUgdGhhdCBhcHBsaWNhdGlvbnMNCj4gPiA+ID4gcmVxdWVzdGluZw0KPiA+ID4gPiA+ID4+Pj4+ Pj4+IHRpbWVzdGFtcHMgbWF5IGNhcmUgbW9yZSBhYm91dCBsYXRlbmN5IHRoYW4gdGhyb3VnaHB1 dCwNCj4gPiA+ID4gPiA+Pj4+Pj4+PiBPbGVnDQo+ID4gPiA+ID4gPj4+Pj4gZm91bmQNCj4gPiA+ ID4gPiA+Pj4+Pj4+PiB0aGF0IHVzaW5nIHRoZSBzZWNvbmQgY2FjaGUgbGluZSBmb3IgdGhpcyBw dXJwb3NlIGhhZCBhDQo+ID4gPiA+ID4gPj4+Pj4gbm90aWNlYWJsZSBpbXBhY3QgWzFdLg0KPiA+ ID4gPiA+ID4+Pj4+Pj4+DQo+ID4gPiA+ID4gPj4+Pj4+Pj4gIFsxXSBodHRwOi8vZHBkay5vcmcv bWwvYXJjaGl2ZXMvZGV2LzIwMTYtDQo+ID4gPiA+IE9jdG9iZXIvMDQ5MjM3Lmh0bWwNCj4gPiA+ ID4gPiA+Pj4+Pj4+DQo+ID4gPiA+ID4gPj4+Pj4+PiBJIGFncmVlIHdpdGggT2xlZyBhYm91dCB0 aGUgbGF0ZW5jeSB2cy4gdGhyb3VnaHB1dA0KPiA+ID4gPiA+ID4+Pj4+Pj4gaW1wb3J0YW5jZSBm b3INCj4gPiA+ID4gPiA+Pj4+PiBzdWNoIGFwcGxpY2F0aW9ucy4NCj4gPiA+ID4gPiA+Pj4+Pj4+ DQo+ID4gPiA+ID4gPj4+Pj4+PiBJZiB5b3UgbmVlZCBoaWdoIHJlc29sdXRpb24gdGltZXN0YW1w cywgY29uc2lkZXIgdGhlbSB0bw0KPiA+ID4gPiA+ID4+Pj4+Pj4gYmUNCj4gPiA+ID4gPiA+Pj4+ PiBnZW5lcmF0ZWQgYnkgdGhlIE5JQyBSWCBkcml2ZXIsIHBvc3NpYmx5IGJ5IHRoZSBoYXJkd2Fy ZQ0KPiA+ID4gPiA+ID4+Pj4+IGl0c2VsZg0KPiA+ID4gPiA+ID4+Pj4+IChodHRwOi8vdzNuZXcu bmFwYXRlY2guY29tL2ZlYXR1cmVzL3RpbWUtcHJlY2lzaW9uL2hhcmR3YXINCj4gPiA+ID4gPiA+ Pj4+PiBlLQ0KPiA+ID4gPiB0aW1lDQo+ID4gPiA+ID4gPj4+Pj4gLSBzdGFtcCksIHNvIHRoZSB0 aW1lc3RhbXAgYmVsb25ncyBpbiB0aGUgZmlyc3QgY2FjaGUgbGluZS4NCj4gPiA+ID4gPiA+Pj4+ PiBBbmQgSSBhbSBwcm9wb3NpbmcgdGhhdCBpdCBzaG91bGQgaGF2ZSB0aGUgaGlnaGVzdA0KPiA+ ID4gPiA+ID4+Pj4+IHBvc3NpYmxlIGFjY3VyYWN5LCB3aGljaCBtYWtlcyB0aGUgdmFsdWUgaGFy ZHdhcmUgZGVwZW5kZW50Lg0KPiA+ID4gPiA+ID4+Pj4+Pj4NCj4gPiA+ID4gPiA+Pj4+Pj4+IEZ1 cnRoZXJtb3JlLCBJIGFtIGFyZ3VpbmcgdGhhdCB3ZSBsZWF2ZSBpdCB1cCB0byB0aGUNCj4gPiA+ ID4gPiA+Pj4gYXBwbGljYXRpb24NCj4gPiA+ID4gPiA+Pj4+Pj4+IHRvDQo+ID4gPiA+ID4gPj4+ Pj4ga2VlcCB0cmFjayBvZiB0aGUgc2xvd2x5IG1vdmluZyBiaXRzIChpLmUuIGNvdW50aW5nIHdo b2xlDQo+ID4gPiA+ID4gPj4+Pj4gc2Vjb25kcywgaG91cnMgYW5kIGNhbGVuZGFyIGRhdGUpIG91 dCBvZiBiYW5kLCBzbyB3ZSBkb24ndA0KPiA+ID4gPiA+ID4+Pj4+IHVzZSBwcmVjaW91cw0KPiA+ ID4gPiA+ID4+PiBzcGFjZQ0KPiA+ID4gPiA+ID4+Pj4+IGluIHRoZSBtYnVmLiBUaGUgYXBwbGlj YXRpb24gZG9lc24ndCBuZWVkIHRoZSBOSUMgUlgNCj4gPiA+ID4gPiA+Pj4+PiBkcml2ZXIncyBm YXN0IHBhdGggdG8gY2FwdHVyZSB3aGljaCBkYXRlIChvciBldmVuIHdoaWNoDQo+ID4gPiA+ID4g Pj4+Pj4gc2Vjb25kKSBhIHBhY2tldCB3YXMgcmVjZWl2ZWQuIFllcywgaXQgYWRkcyBjb21wbGV4 aXR5IHRvDQo+ID4gPiA+ID4gPj4+Pj4gdGhlIGFwcGxpY2F0aW9uLCBidXQNCj4gPiA+ID4gd2UN Cj4gPiA+ID4gPiA+Pj4+PiBjYW4ndCBzZXQgYXNpZGUgNjQgYml0IGZvciBhIGdlbmVyaWMgdGlt ZXN0YW1wLiBPciBhcyBhDQo+ID4gPiA+ID4gPj4+Pj4gd2VpcmQNCj4gPiA+ID4gdHJhZGVvZmY6 DQo+ID4gPiA+ID4gPj4+Pj4gUHV0IHRoZSBmYXN0IG1vdmluZyAzMiBiaXQgaW4gdGhlIGZpcnN0 IGNhY2hlIGxpbmUgYW5kIHRoZQ0KPiA+ID4gPiA+ID4+Pj4+IHNsb3cgbW92aW5nIDMyIGJpdCBp biB0aGUgc2Vjb25kIGNhY2hlIGxpbmUsIGFzIGENCj4gPiA+ID4gPiA+Pj4+PiBwbGFjZWhvbGRl ciBmb3INCj4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPj4+IGFwcGxpY2F0aW9uIHRvIGZpbGwgb3V0 IGlmIG5lZWRlZC4NCj4gPiA+ID4gPiA+Pj4+PiBZZXMsIGl0IG1lYW5zIHRoYXQgdGhlIGFwcGxp Y2F0aW9uIG5lZWRzIHRvIGNoZWNrIHRoZSB0aW1lDQo+ID4gPiA+ID4gPj4+Pj4gYW5kIHVwZGF0 ZSBpdHMgdmFyaWFibGUgaG9sZGluZyB0aGUgc2xvdyBtb3ZpbmcgdGltZSBvbmNlDQo+ID4gPiA+ ID4gPj4+Pj4gZXZlcnkgc2Vjb25kIG9yIHNvOyBidXQgdGhhdCBzaG91bGQgYmUgZG9hYmxlIHdp dGhvdXQNCj4gPiA+ID4gPiA+Pj4+PiBzaWduaWZpY2FudA0KPiA+ID4gPiBlZmZvcnQuDQo+ID4g PiA+ID4gPj4+Pj4+DQo+ID4gPiA+ID4gPj4+Pj4+IFRoYXQncyBhIGdvb2QgcG9pbnQsIGhvd2V2 ZXIgd2l0aG91dCBhIDY0IGJpdCB2YWx1ZSwNCj4gPiA+ID4gPiA+Pj4+Pj4gZWxhcHNlZCB0aW1l IGJldHdlZW4gdHdvIGFyYml0cmFyeSBtYnVmcyBjYW5ub3QgYmUNCj4gPiA+ID4gPiA+Pj4+Pj4g bWVhc3VyZWQgcmVsaWFibHkgZHVlIHRvDQo+ID4gPiA+ID4gPj4+IG5vdA0KPiA+ID4gPiA+ID4+ Pj4+PiBlbm91Z2ggY29udGV4dCwgb25lIHdheSBvciBhbm90aGVyIHRoZSBsb3cgcmVzb2x1dGlv bg0KPiA+ID4gPiA+ID4+Pj4+PiB2YWx1ZSBpcyBhbHNvDQo+ID4gPiA+ID4gPj4+Pj4gbmVlZGVk Lg0KPiA+ID4gPiA+ID4+Pj4+Pg0KPiA+ID4gPiA+ID4+Pj4+PiBPYnZpb3VzbHkgbGF0ZW5jeS1z ZW5zaXRpdmUgYXBwbGljYXRpb25zIGFyZSB1bmxpa2VseSB0bw0KPiA+ID4gPiA+ID4+Pj4+PiBw ZXJmb3JtIGxlbmd0aHkgYnVmZmVyaW5nIGFuZCByZXF1aXJlIHRoaXMgYnV0IEknbSBub3QNCj4g PiA+ID4gPiA+Pj4+Pj4gc3VyZSBhYm91dCBhbGwgdGhlIHBvc3NpYmxlIHVzZS1jYXNlcy4gQ29u c2lkZXJpbmcgbWFueQ0KPiA+ID4gPiA+ID4+Pj4+PiBOSUNzIGV4cG9zZQ0KPiA+ID4gPiA+ID4+ Pj4+PiA2NCBiaXQNCj4gPiA+ID4gPiA+Pj4gdGltZXN0YXBzLA0KPiA+ID4gPiA+ID4+Pj4+PiBJ IHN1Z2dlc3Qgd2UgZG8gbm90IHRydW5jYXRlIHRoZW0uDQo+ID4gPiA+ID4gPj4+Pj4+DQo+ID4g PiA+ID4gPj4+Pj4+IEknbSBub3QgYSBmYW4gb2YgdGhlIHdlaXJkIHRyYWRlb2ZmIGVpdGhlciwg UE1EcyB3aWxsIGJlDQo+ID4gPiA+ID4gPj4+Pj4+IHRlbXB0ZWQgdG8gZmlsbCB0aGUgZXh0cmEg MzIgYml0cyB3aGVuZXZlciB0aGV5IGNhbiBhbmQNCj4gPiA+ID4gPiA+Pj4+Pj4gbmVnYXRlIHRo ZSBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCBvZiB0aGUgZmlyc3QgY2FjaGUgbGluZS4NCj4gPiA+ ID4gPiA+Pj4+Pg0KPiA+ID4gPiA+ID4+Pj4+IEkgd291bGQgdGVuZCB0byBhZ3JlZSwgYW5kIEkg ZG9uJ3QgcmVhbGx5IHNlZSBhbnkNCj4gPiA+ID4gPiA+Pj4+PiBjb252ZW5pZW50DQo+ID4gPiA+ IHdheQ0KPiA+ID4gPiA+ID4+Pj4+IHRvIGF2b2lkIHB1dHRpbmcgaW4gYSA2NC1iaXQgZmllbGQg Zm9yIHRoZSB0aW1lc3RhbXAgaW4NCj4gPiA+ID4gPiA+Pj4+PiBjYWNoZS0NCj4gPiA+ID4gbGlu ZSAwLg0KPiA+ID4gPiA+ID4+Pj4+IElmIHdlIGFyZSBvayB3aXRoIGhhdmluZyB0aGlzIG92ZXJs YXAvcGFydGlhbGx5IG92ZXJsYXANCj4gPiA+ID4gPiA+Pj4+PiB3aXRoIHNlcXVlbmNlIG51bWJl ciwgaXQgd2lsbCB1c2UgdXAgYW4gZXh0cmEgNEIgb2YNCj4gPiA+ID4gPiA+Pj4+PiBzdG9yYWdl IGluIHRoYXQNCj4gPiA+ID4gPiA+Pj4gY2FjaGVsaW5lLg0KPiA+ID4gPiA+ID4+Pj4NCj4gPiA+ ID4gPiA+Pj4+IEkgYWdyZWUgYWJvdXQgdGhlIGxhY2sgb2YgY29udmVuaWVuY2UhIEFuZCBBZHJp ZW4gY2VydGFpbmx5DQo+ID4gPiA+ID4gPj4+PiBoYXMNCj4gPiA+ID4gYQ0KPiA+ID4gPiA+ID4+ PiBwb2ludCBhYm91dCBQTUQgdGVtcHRhdGlvbnMuDQo+ID4gPiA+ID4gPj4+Pg0KPiA+ID4gPiA+ ID4+Pj4gSG93ZXZlciwgSSBzdGlsbCBkb24ndCB0aGluayB0aGF0IGEgTklDcyBhYmlsaXR5IHRv DQo+ID4gPiA+ID4gPj4+PiBkYXRlLXN0YW1wIGENCj4gPiA+ID4gPiA+Pj4gcGFja2V0IGlzIHN1 ZmZpY2llbnQgcmVhc29uIHRvIHB1dCBhIGRhdGUtc3RhbXAgaW4gY2FjaGUNCj4gPiA+ID4gPiA+ Pj4gbGluZQ0KPiA+ID4gPiA+ID4+PiAwDQo+ID4gPiA+IG9mDQo+ID4gPiA+ID4gPj4+IHRoZSBt YnVmLiBTdG9yaW5nIG9ubHkgdGhlIGZhc3QgbW92aW5nIDMyIGJpdCBpbiBjYWNoZSBsaW5lDQo+ ID4gPiA+ID4gPj4+IDAgc2VlbXMgbGlrZSBhIGdvb2QgY29tcHJvbWlzZSB0byBtZS4NCj4gPiA+ ID4gPiA+Pj4+DQo+ID4gPiA+ID4gPj4+PiBNYXliZSB5b3UgY2FuIGZpbmQganVzdCBvbmUgbW9y ZSBieXRlLCBzbyBpdCBjYW4gaG9sZCAxNw0KPiA+ID4gPiA+ID4+Pj4gbWludXRlcyB3aXRoIG5h bm9zZWNvbmQgcmVzb2x1dGlvbi4gKEknbSBqb2tpbmchKQ0KPiA+ID4gPiA+ID4+Pj4NCj4gPiA+ ID4gPiA+Pj4+IFBsZWFzZSBkb24ndCBzYWNyaWZpY2UgdGhlIHNlcXVlbmNlIG51bWJlciBmb3Ig dGhlDQo+ID4gPiA+ID4gPj4+PiBzZWNvbmRzL2hvdXJzL2RheXMNCj4gPiA+ID4gPiA+Pj4gcGFy dCBhIHRpbWVzdGFtcC4gTWF5YmUgaXQgY291bGQgYmUgY29uZmlndXJhYmxlIHRvIHVzZSBhIDMy DQo+ID4gPiA+ID4gPj4+IGJpdCBvcg0KPiA+ID4gPiA+ID4+PiA2NCBiaXQgdGltZXN0YW1wLg0K PiA+ID4gPiA+ID4+Pj4NCj4gPiA+ID4gPiA+Pj4gRG8geW91IHNlZSBib3RoIHRpbWVzdGFtcCBh bmQgc2VxdWVuY2UgbnVtYmVycyBiZWluZyB1c2VkDQo+ID4gPiA+IHRvZ2V0aGVyPw0KPiA+ID4g PiA+ID4+PiBJIHdvdWxkIGhhdmUgdGhvdWdodCB0aGF0IGFwcHMgd291bGQgZWl0aGVyIHVzZSBv bmUgb3IgdGhlDQo+ID4gb3RoZXI/DQo+ID4gPiA+ID4gPj4+IEhvd2V2ZXIsIHlvdXIgc3VnZ2Vz dGlvbiBpcyB3b3JrYWJsZSBpbiBhbnkgY2FzZSwgdG8gYWxsb3cNCj4gPiA+ID4gPiA+Pj4gdGhl IHNlcXVlbmNlIG51bWJlciB0byBvdmVybGFwIGp1c3QgdGhlIGhpZ2ggMzIgYml0cyBvZiB0aGUN Cj4gPiA+ID4gdGltZXN0YW1wLA0KPiA+ID4gPiA+ID4+PiByYXRoZXIgdGhhbiB0aGUgbG93Lg0K PiA+ID4gPiA+ID4+DQo+ID4gPiA+ID4gPj4gSW4gb3VyIGNhc2UsIEkgY2FuIGZvcmVzZWUgc2Vx dWVuY2UgbnVtYmVycyB1c2VkIGZvciBwYWNrZXQNCj4gPiA+ID4gPiA+PiBwcm9jZXNzaW5nIGFu ZA0KPiA+ID4gPiA+IHRpbWVzdGFtcHMgZm9yIHRpbWluZyBhbmFseXNpcyAoYW5kIHBvc3NpYmx5 IGZvciBwYWNrZXQNCj4gPiA+ID4gPiBjYXB0dXJpbmcsIHdoZW4gYmVpbmcgdXNlZCkuIEZvciB0 aW1pbmcgYW5hbHlzaXMsIHdlIGRvbuKAmXQgbmVlZA0KPiA+ID4gPiA+IGxvbmcgZHVyYXRpb25z LCBlLmcuIDQgc2Vjb25kcyB3aXRoIDMyIGJpdCBuYW5vc2Vjb25kIHJlc29sdXRpb24NCj4gPiA+ ID4gPiBzdWZmaWNlcy4gQW5kIGZvciBwYWNrZXQgY2FwdHVyaW5nIHdlIGFyZSBwZXJmZWN0bHkg Y2FwYWJsZSBvZg0KPiA+ID4gPiA+IGFkZGluZyB0aGUgc2xvd2x5IG1vdmluZw0KPiA+ID4gPiA+ IDMyIGJpdCBvZiB0aGUgdGltZXN0YW1wIHRvIG91ciBvdXRwdXQgZGF0YSBzdHJlYW0gd2l0aG91 dA0KPiA+ID4gPiA+IGZldGNoaW5nIGl0DQo+ID4gPiA+IGZyb20gdGhlIG1idWYuDQo+ID4gPiA+ ID4gPj4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFdlIHNob3VsZCBrZWVwIGluIG1pbmQgdGhhdCB0 b2RheSB3ZSBoYXZlIHRoZSBzZXFuIGZpZWxkIGJ1dCBpdA0KPiA+ID4gPiA+IGlzDQo+ID4gPiA+ IG5vdA0KPiA+ID4gPiA+IHVzZWQgYnkgYW55IFBNRC4gSW4gY2FzZSBpdCBpcyBpbXBsZW1lbnRl ZCwgd291bGQgaXQgYmUgYQ0KPiA+ID4gPiA+IHBlci1xdWV1ZQ0KPiA+ID4gPiBzZXF1ZW5jZSBu dW1iZXI/DQo+ID4gPiA+ID4gSXMgaXQgdXNlZnVsIGZyb20gYW4gYXBwbGljYXRpb24gdmlldz8N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRoaXMgZmllbGQgaXMgb25seSB1c2VkIGJ5IHRoZSBsaWJy dGVfcmVvcmRlciBsaWJyYXJ5LCBhbmQgaW4gbXkNCj4gPiA+ID4gPiBvcGluaW9uLCB3ZSBzaG91 bGQgY29uc2lkZXIgbW92aW5nIGl0IGluIHRoZSBzZWNvbmQgY2FjaGUgbGluZQ0KPiA+ID4gPiA+ IHNpbmNlDQo+ID4gPiA+IGl0IGlzIG5vdCBmaWxsZWQgYnkgdGhlIFBNRC4NCj4gPiA+ID4gPg0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBGb3IgdGhlIDMyLWJpdCB0aW1lc3RhbXAgY2FzZSwgaXQg bWlnaHQgYmUgdXNlZnVsIHRvIGhhdmUgYQ0KPiA+ID4gPiA+ID4gcmlnaHQtc2hpZnQgdmFsdWUg cGFzc2VkIGluIHRvIHRoZSBldGhkZXYgZHJpdmVyLiBJZiB3ZSBhc3N1bWUNCj4gPiA+ID4gPiA+ IGENCj4gPiA+ID4gTklDDQo+ID4gPiA+ID4gPiB3aXRoIG5hbm9zZWNvbmQgcmVzb2x1dGlvbiwg KG9yIFRTQyB2YWx1ZSB3aXRoIHJlc29sdXRpb24gb2YNCj4gPiA+ID4gPiA+IHRoYXQgb3JkZXIg b2YgbWFnbml0dWRlKSwgdGhlbiB0aGUgYXBwIGNhbiBjaG9vc2UgdG8gaGF2ZSAxIG5zDQo+ID4g PiA+IHJlc29sdXRpb24NCj4gPiA+ID4gPiA+IHdpdGggNCBzZWNvbmQgd3JhcGFyb3VuZCwgb3Ig YWx0ZXJuYXRpdmVseSA0bnMgcmVzb2x1dGlvbiB3aXRoDQo+ID4gPiA+ID4gPiAxNiBzZWNvbmQg d3JhcGFyb3VuZCwgb3IgZXZlbiBtaWNyb3NlY29uZCByZXNvbHV0aW9uIHdpdGggd3JhcA0KPiA+ ID4gPiA+ID4gYXJvdW5kIG9mIG92ZXINCj4gPiA+ID4gPiBhbiBob3VyLg0KPiA+ID4gPiA+ID4g VGhlIGNvc3QgaXMgb2J2aW91c2x5IGp1c3QgYSBzaGlmdCBvcCBpbiB0aGUgZHJpdmVyIGNvZGUg cGVyDQo+ID4gPiA+ID4gPiBwYWNrZXQNCj4gPiA+ID4gPiA+IC0gaG9wZWZ1bGx5IHdpdGggbXVs dGlwbGUgcGFja2V0cyBkb25lIGF0IGEgdGltZSB1c2luZyB2ZWN0b3INCj4gPiA+ID4gb3BlcmF0 aW9ucy4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQWJvdXQgdGhlIHRpbWVzdGFt cCwgd2UgY2FuIG1hbmFnZSB0byBmaW5kIDY0IGJpdHMgaW4gdGhlIGZpcnN0DQo+ID4gPiA+ID4g Y2FjaGUgbGluZSwgd2l0aG91dCBzYWNyaWZ5aW5nIGFueSBmaWVsZCB3ZSBoYXZlIHRvZGF5LiBU aGUNCj4gPiA+ID4gPiBxdWVzdGlvbiBpcw0KPiA+ID4gPiBtb3JlDQo+ID4gPiA+ID4gZm9yIHRo ZSBmaWVsZHMgd2UgbWF5IHdhbnQgdG8gYWRkIGxhdGVyLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g VG8gYW5zd2VyIHRvIHRoZSBxdWVzdGlvbiBvZiB0aGUgc2l6ZSBvZiB0aGUgdGltZXN0YW1wLCB0 aGUNCj4gPiA+ID4gPiBmaXJzdCBxdWVzdGlvbiBpcyB0byBrbm93IHdoYXQgaXMgdGhlIHByZWNp c2lvbiByZXF1aXJlZCBmb3IgdGhlDQo+ID4gPiA+IGFwcGxpY2F0aW9ucyB1c2luZyBpdD8NCj4g PiA+ID4NCj4gPiA+ID4gQXMgcGFydCBvZiB0aGUgMTcuMDIgbGF0ZW5jeSBjYWxjdWxhdGlvbiBm ZWF0dXJlLCB0aGUgcmVxdWlyZW1lbnQNCj4gPiA+ID4gaXMgdG8gcmVwb3J0IGxhdGVuY3kgaW4g bmFub3NlY29uZHMuIFNvLCArMSBvbiBrZWVwaW5nIHRpbWVzdGFtcA0KPiA+ID4gPiBhcw0KPiA+ IDY0Yml0cy4NCj4gPiA+ID4gU2luY2UgdGhlIGZlYXR1cmUgaXMgcGxhbm5lZCBmb3IgMTcuMDIs IGNhbiB3ZSBmaW5hbGl6ZSBvbiB0aGUNCj4gPiA+ID4gdGltZXN0YW1wIHBvc2l0aW9uIGluIHRo ZSBtYnVmIHN0cnVjdD8NCj4gPiA+ID4gQmFzZWQgb24gdGhlIGRlY2lzaW9uLCBJIGFtIHBsYW5u aW5nIHRvIG1ha2UgdGhlIGNoYW5nZSBhbmQgc2VuZA0KPiA+ID4gPiBBQkkgbm90aWNlIGlmIG5l ZWRlZC4NCj4gPiA+ID4NCj4gPiA+ID4gUmVzaG1hDQo+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ ID4gPiBJIGRvbid0IHF1aXRlIGxpa2UgdGhlIGlkZWEgb2Ygc3BsaXR0aW5nIHRoZSB0aW1lc3Rh bXAgaW4gdGhlIDINCj4gPiA+ID4gPiBjYWNoZSBsaW5lcywgSSB0aGluayBpdCB3b3VsZCBub3Qg YmUgZWFzeSB0byB1c2UuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IE9saXZpZXIN Cj4gPiA+DQo+ID4gPiBOYW5vc2Vjb25kIHByZWNpc2lvbiBpbiBsYXRlbmN5IGNhbGN1bGF0aW9u cyBkb2VzIG5vdCByZXF1aXJlIG1vcmUNCj4gPiA+IHRoYW4NCj4gPiAzMiBiaXQsIHVubGVzcyB3 ZSBtdXN0IGFsc28gYmUgYWJsZSB0byBtZWFzdXJlIG1vcmUgdGhhbiA0IHNlY29uZHMgb2YNCj4g PiBsYXRlbmN5LiBBbmQgcGxlYXNlIGNvbnNpZGVyIGhvdyBtYW55IHBhY2tldHMgd2Ugd291bGQg bmVlZCB0byBob2xkIGluDQo+ID4gbWVtb3J5IHRvIGtlZXAgdHJhY2sgb2YgNCBzZWNvbmRzIG9m IHRyYWZmaWMgb24gYSAxMDAgR2JpdC9zIGxpbmsgKGlmDQo+ID4gd2UgYXJlIG1lYXN1cmluZyBu ZXR3b3JrIGxhdGVuY3kpOiBXaXRoIGFuIGF2ZXJhZ2UgcGFja2V0IHNpemUgb2YgMzAwDQo+ID4g QiB0aGF0IHdvdWxkIGJlIDQwIG1pbGxpb24gcGFja2V0cy4NCj4gPg0KPiA+IENvbnNpZGVyIGFu b3RoZXIsIHBlcmhhcHMgbW9yZSByZWFsaXN0aWMgdXNlLWNhc2U6IGtlZXBpbmcgYSBmZXcNCj4g PiByZWxldmFudCBwYWNrZXRzIGZyb20gYSBzdHJlYW0gZm9yIGxhdGVyIGFuYWx5c2lzLCB3aGlj aCBjb3VsZCBvY2N1cg0KPiA+IG91dHNpZGUgb2YgdGhlIG5vcm1hbCBUWCBwcm9jZXNzaW5nIHBh dGggZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuIEluDQo+ID4gdGhpcyBjYXNlIDQgc2Vjb25kcyB3 b3J0aCBvZiBjb250ZXh0IG1heSBub3QgYmUgZW5vdWdoIHRvIGF2b2lkIGxvc2luZw0KPiBpbmZv cm1hdGlvbi4NCg0KQWdyZWVkLiBBbmQgSSB3b3VsZCBzYXkgdGhhdCB0aGlzIGV4Y2VwdGlvbiBw YXRoIGNhbiBhZGQgdGhlIGhpZ2hlciAzMiBiaXQgaXRzZWxmOyBpdCBpcyBub3QgcmVxdWlyZWQg YnkgdGhlIFBNRCBvciBldmVuIGluIHRoZSBtYnVmLg0KDQo+ID4NCj4gPiA+IElmIEkgcmVjYWxs IGNvcnJlY3RseSwgdGhlIDE3LjAyIGZlYXR1cmUgaXMgYWJvdXQgbWVhc3VyaW5nDQo+ID4gPiBh cHBsaWNhdGlvbg0KPiA+IGxhdGVuY3ksIG5vdCBuZXR3b3JrIGxhdGVuY3kgKGFzIG15IGNhbGN1 bGF0aW9uIGFib3ZlIGlzIGFib3V0KS4gSQ0KPiA+IGRvbid0IGNvbnNpZGVyIGFwcGxpY2F0aW9u IGxhdGVuY3kgbWVhc3VyaW5nIGEgY29tbW9uIGZlYXR1cmUgZm9yIG1vc3QNCj4gPiBhcHBsaWNh dGlvbnMsIGV4Y2VwdCBmb3IgYXBwbGljYXRpb24gZGVidWdnaW5nL3Byb2ZpbGluZyBwdXJwb3Nl cyAobm90DQo+ID4gbmV0d29yayBkZWJ1Z2dpbmcgcHVycG9zZXMpLiBTbyBkbyB3ZSByZWFsbHkg bmVlZCBib3RoIG5hbm9zZWNvbmQNCj4gPiBwcmVjaXNpb24gYW5kIHRoZSBhYmlsaXR5IHRvIG1l YXN1cmUgNCsgc2Vjb25kcyBvZiBsYXRlbmN5Pw0KPiA+DQo+ID4gRXhpc3RpbmcgSFcgY2FuIGFs cmVhZHkgcHJvdmlkZSA2NC1iaXQgcHJlY2lzaW9uLCB3aHkgdHJ1bmNhdGUgcGFydCBvZg0KPiBp dD8NCj4gPiBUaGUgb25seSB2YWxpZCByZWFzb24gd291bGQgYmUgdGhhdCB0aGVyZSBpcyBub3Qg ZW5vdWdoIHJvb20gaW4gdGhlDQo+ID4gbWJ1ZiBoZWFkZXIsIHdoaWNoIGlzIG5vdCB0aGUgY2Fz ZS4gTG9va3MgbGlrZSB0b2RheSB0aGVyZSBpcyBldmVuDQo+ID4gZW5vdWdoIHJvb20gaW4gdGhl IGZpcnN0IDY0IGJ5dGVzLg0KPiA+DQo+ID4gQXMgc3VnZ2VzdGVkIGJ5IEJydWNlLCB3ZSBjYW4g ZXZlbiB1bmlvbiAocGFydCBvZikgdGhpcyBmaWVsZCB3aXRoDQo+ID4gYW5vdGhlciBpZiBuZWNl c3NhcnksIGFzIGxvbmcgYXMgd2UgbWFrZSBzdXJlIGJvdGggY2Fubm90IGJlIHJlcXVlc3RlZA0K PiA+IGF0IHRoZSBzYW1lIHRpbWUgKGRldGVybWluaW5nIHdoaWNoIGZpZWxkIHNob3VsZCBiZSBz YWNyaWZpY2VkIGlzDQo+ID4gZ29pbmcgdG8gYmUgdHJpY2t5IHRob3VnaCkuDQoNCkl0IHdvdWxk IG1ha2Ugc29tZSBhcHBsaWNhdGlvbnMgZWFzaWVyIHRvIGRldmVsb3AgaWYgdGhlIG1idWYgY29u dGFpbmVkIGEgNjQgYml0IHRpbWVzdGFtcDsgYnV0IEkgZG9uJ3QgdGhpbmsgdGhlc2UgYXJlIHZl cnkgY29tbW9uIGFwcGxpY2F0aW9ucy4gSXQncyBhIHRyYWRlb2ZmLCBhbmQgSSdtIGFkdm9jYXRp bmcgZm9yIGNvbnNlcnZpbmcgdGhlIHZlcnkgcHJlY2lvdXMgc3BhY2UgaW4gdGhlIG1idWYsIGF0 IHRoZSBjb3N0IG9mIHJlcXVpcmluZyBzb21lIGV4dHJhIHdvcmsgaW4gdGhlc2UgdW5jb21tb24g YXBwbGljYXRpb25zLg0KDQo+ID4NCj4gPiA+IEZ1cnRoZXJtb3JlLCBpZiB0aGUgdGltZXN0YW1w IGlzbid0IHNldCBieSBoYXJkd2FyZSwgd2h5IG5vdCBqdXN0DQo+ID4gPiB0YWtlDQo+ID4gdGhl IGVudGlyZSBhcnJheSBvZiBwYWNrZXRzIHB1bGxlZCBvdXQgZnJvbSB0aGUgTklDIGFuZCBzZXQg dGhlaXINCj4gPiB0aW1lc3RhbXAgdG8gdGhlIHNhbWUgdmFsdWUsIGluc3RlYWQgb2Ygc2V0dGlu ZyB0aGVtIG9uZSBieSBvbmUgaW4gdGhlDQo+ID4gUE1EDQo+ID4gLSB0aGF0IHdvdWxkIGFsc28g Y29uc29saWRhdGUgdGhlIGV4cGVuc2Ugb2Ygb2J0YWluaW5nIHRoZSB0aW1lIGZyb20NCj4gPiBz b21lIGNsb2NrIHNvdXJjZS4NCj4gPg0KPiA+IExpa2UgYW55IG9mZmxvYWQsIHNvbWUgUE1EIHBy b2Nlc3NpbmcgaXMgZXhwZWN0ZWQgdG8gY29udmVydCB0aGUNCj4gPiBwb3NzaWJseSBIVy1zcGVj aWZpYyB2YWx1ZSB0byBhIGNvbW1vbiBtYnVmIGZvcm1hdCwgaG93ZXZlciBpZg0KPiA+IGhhcmR3 YXJlIGRvZXMgbm90IHJlcG9ydCBhbnkga2luZCBvZiBpbmZvcm1hdGlvbiByZWxldmFudCB0byB0 aW1lc3RhbXANCj4gPiBpbmRpdmlkdWFsIHBhY2tldHMsIEkgZG8gbm90IHRoaW5rIHRoZSBQTUQg c2hvdWxkIGV4cG9zZSB0aGF0IGZlYXR1cmUNCj4gPiBhbmQgaW1wbGVtZW50IGl0IGluIHNvZnR3 YXJlLiBJdCB3b3VsZCBiZSBtdWNoIHdvcnNlLCBjZXJ0YWlubHkgbm90DQo+ID4gd2hhdCB0aGUg YXBwbGljYXRpb24gd2FudGVkIGFzIGl0IGNvdWxkIGhhdmUgZG9uZSB0aGUgc2FtZSBvbiBpdHMg b3duLg0KQWdyZWUuIEFuZCBJIHdvdWxkIGdvIHNvIGZhciBhcyB0byBzYXkgdGhhdCB0aGlzIHNo b3VsZCBiZSBhIGd1aWRpbmcgcHJpbmNpcGxlIGZvciBEUERLLiBJZiB0aGUgTklDIEhXIGRvZXNu J3Qgc3VwcG9ydCBzb21ldGhpbmcsIHRoZSBQTUQgc2hvdWxkbid0IHRyeSB0byBlbXVsYXRlIGl0 IGluIHNvZnR3YXJlOyBpbnN0ZWFkLCBEUERLIGNvdWxkIHByb3ZpZGUgdmFyaW91cyBsaWJyYXJp ZXMgdG8gb2ZmZXIgdGhlc2UgZmVhdHVyZXMgaW4gc29mdHdhcmUsIGxpa2UgdGhlIHBhY2tldCB0 eXBlIGxpYnJhcnkgbWVudGlvbmVkIGJ5IE9saXZpZXIgYXQgdGhlIHJlY2VudCBEUERLIFVzZXJz cGFjZSBjb25mZXJlbmNlLg0KDQo+ID4NCj4gPiBXaGF0IG1hdHRlcnMgaXMgdG8ga25vdyB3aGVu IE5JQyByZWNlaXZlcyBhIHBhY2tldCwgbm90IHdoZW4gdGhlDQo+ID4gYXBwbGljYXRpb24gZmV0 Y2hlcyBpdC4gWW91IHNob3VsZCBhc3N1bWUgdGhlcmUgaXMgYSBzaWduaWZpY2FudCBkZWxheQ0K PiA+IGJldHdlZW4gdGhlc2UgdHdvIGV2ZW50cywgaGVuY2UgdGhlIG5lZWQgZm9yIGl0IHRvIGJl IG9mZmxvYWRlZC4NCkFncmVlLg0KDQo+ID4NCj4gDQo+IEkgd291bGQgYWN0dWFsbHkgc2VlIGJv dGggdXNlIGNhc2VzIGJlaW5nIHVzZWQuIEluIHNvbWUgY2FzZXMsIE5JQ3Mgd2lsbA0KPiBoYXZl IGhhcmR3YXJlIG9mZmxvYWQgY2FwYWJpbGl0eSBmb3IgdGltZXN0YW1waW5nIHdoaWNoIGNhbiBi ZSB1c2VkLCB3aGlsZQ0KPiBpbiBtYW55IGNhc2VzLCB0aW1lc3RhbXBpbmcgb24gcmV0cmlldmFs IGJ5IHRoZSBjb3JlIHdpbGwgc3VmZmljZSBmb3INCj4gbGF0ZW5jeSBtZWFzdXJlbWVudHMgd2l0 aGluIGFuIGFwcC4gSSBkb24ndCB0aGluayB3ZSBjYW4gZGlzY291bnQgZWl0aGVyDQo+IHBvc3Np YmlsaXR5LiBUaGFua2Z1bGx5LCBBRkFJSyB3aGljaCBtb2RlbCBpcyB1c2VkIGRvZXNuJ3QgcmVh bGx5IGFmZmVjdA0KPiB3aGV0aGVyIHdlIG5lZWQgMzIgb3IgNjQgYml0cyBmb3IgdGhlIGRhdGEu DQpBZ3JlZWQgYWJvdXQgMzIvNjQgYml0IGNob2ljZSBub3QgYmVpbmcgYWZmZWN0ZWQgYnkgdGhp cy4NCg0KQnV0IHRha2Ugbm90ZSBvZiBBZHJpZW4ncyBjb21tZW50IGFib3V0IHRoZSBwb3RlbnRp YWwgZGVsYXkgZnJvbSB0aGUgcGFja2V0IGFycml2ZXMgb24gdGhlIE5JQyB1bnRpbCB0aGUgYXBw bGljYXRpb24gZ2V0cyByb3VuZCB0byBjYWxsaW5nIHRoZSBQTUQgdG8gZmV0Y2ggaXQuIFNvZnR3 YXJlIGJhc2VkIHRpbWVzdGFtcHMgbWF5IGdpdmUgYSBmYWxzZSBpbXByZXNzaW9uIGFib3V0IHRo ZSBhcHBsaWNhdGlvbiBsYXRlbmN5LiBBc3N1bWUgdGhhdCB0aGUgYXBwbGljYXRpb24gcG9sbHMg dGhlIFBNRCBhbmQgYnVsayBmZXRjaGVzIGFsbCB0aGUgcGFja2V0cywgdGhlbiBwcm9jZWVkcyB0 byBwcm9jZXNzaW5nIHRoZW0sIGFuZCB0aGVuIHN0YXJ0cyBvdmVyLiBJZiBhIHBhY2tldCBhcnJp dmVzIGp1c3QgYWZ0ZXIgdGhlIGZpcnN0IGJhdGNoIHdhcyBmZXRjaGVkLCBhIHNvZnR3YXJlIHRp bWVzdGFtcCBpbiB0aGUgUE1EIHdpbGwgc2V0IHRoZSB0aW1lIHdoZW4gdGhlIGFwcGxpY2F0aW9u IHN0YXJ0cyBmZXRjaGluZyB0aGUgbmV4dCBiYXRjaCBvZiBwYWNrZXRzLCBpZ25vcmluZyBhbGwg dGhlIHRpbWUgdGhlIHBhY2tldCBzcGVudCB3YWl0aW5nIGZvciBiZWluZyBmZXRjaGVkIHdoaWxl IHRoZSBhcHBsaWNhdGlvbiBwcm9jZXNzZWQgdGhlIGZpcnN0IGJhdGNoIG9mIHBhY2tldHMuDQoN Cj4gDQo+IC9CcnVjZQ0KDQotTW9ydGVuDQo=