From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A32AF42FC6; Thu, 3 Aug 2023 15:57:12 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2C0034161A; Thu, 3 Aug 2023 15:57:12 +0200 (CEST) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 66162406BA; Thu, 3 Aug 2023 15:57:10 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id 378AC20433; Thu, 3 Aug 2023 15:57:09 +0200 (CEST) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Subject: RE: [PATCH] ethdev: introduce generic flow item and action Date: Thu, 3 Aug 2023 15:57:08 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D87AC4@smartserver.smartshare.dk> In-Reply-To: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH] ethdev: introduce generic flow item and action Thread-Index: AQHZxSHa5TP862ajckKHF87k4bqFPK/WzPOAgAAKDYCAAAW8gIAALg6AgAAV2wCAAAZeAIAABToAgAAVYACAAAlTgIAAX3rAgADngDA= References: <20230802173451.3151646-1-qi.z.zhang@intel.com> <98CBD80474FA8B44BF855DF32C47DC35D87AB8@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D87AB9@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D87ABF@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC35D87AC2@smartserver.smartshare.dk> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Zhang, Qi Z" , "Dumitrescu, Cristian" , "Ori Kam" , "Jerin Jacob" Cc: "NBU-Contact-Thomas Monjalon (EXTERNAL)" , , "Richardson, Bruce" , , , , "Mcnamara, John" , "Zhang, Helin" , X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org PiBGcm9tOiBaaGFuZywgUWkgWiBbbWFpbHRvOnFpLnouemhhbmdAaW50ZWwuY29tXQ0KPiBTZW50 OiBUaHVyc2RheSwgMyBBdWd1c3QgMjAyMyAwMy4wNQ0KPiANCj4gPiBGcm9tOiBNb3J0ZW4gQnLD uHJ1cCA8bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPg0KPiA+IFNlbnQ6IFRodXJzZGF5LCBBdWd1 c3QgMywgMjAyMyAxOjU2IEFNDQo+ID4NCj4gPiA+IEZyb206IER1bWl0cmVzY3UsIENyaXN0aWFu IFttYWlsdG86Y3Jpc3RpYW4uZHVtaXRyZXNjdUBpbnRlbC5jb21dDQo+ID4gPiBTZW50OiBXZWRu ZXNkYXksIDIgQXVndXN0IDIwMjMgMTkuMjMNCj4gPiA+DQo+ID4gPiA+IEZyb206IE9yaSBLYW0g PG9yaWthQG52aWRpYS5jb20+DQo+ID4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgQXVndXN0IDIsIDIw MjMgNTowNiBQTQ0KPiA+ID4gPg0KPiA+ID4gPiBIaSBRaSwNCj4gPiA+ID4NCj4gPiA+ID4gSW4g YWRkaXRpb24gdG8gbXkgcHJldmlvdXMgZW1haWwsDQo+ID4gPiA+IEkgZnVsbHkgc3VwcG9ydCB5 b3XigJlyZSB5b3VyIGlkZWEgdG8gdXBkYXRlIHRoZSBydGVfZmxvdyBBUEkgc28gaXQNCj4gPiA+ ID4gd2lsbCBiZSBlYXNpZXIgZm9yIFA0IGludGVncmF0aW9uLCBJIGp1c3QgdGhpbmsgdGhlIHN1 Z2dlc3RlZA0KPiA+ID4gYXBwcm9hY2ggaXMgbm90DQo+ID4gPiA+IHRoZSBjb3JyZWN0IG9uZSBh dCBsZWFzdCBub3QgYXMgYXBwZWFycyBpbiB0aGUgUkZDLg0KPiA+ID4gPg0KPiA+ID4gPiBJIHRo aW5rIGl0IHdpbGwgYmUgZ29vZCBpZiB3ZSBjYW4gZGlzY3VzcyBzb21lIHVzZXMgY2FzZXMgeW91 IGFyZQ0KPiA+ID4gaGF2aW5nDQo+ID4gPiA+IHdpdGggdGhlIEFQSS9pbXBsZW1lbnRhdGlvbiBh bmQgc2VlIHdoYXQgaXMgdGhlIGJlc3Qgd2F5IHRvIHNvbHZlDQo+ID4gPiB0aGVtLg0KPiA+ID4g PiBUaGUgbWFpbiBpZGVhIGlzIG5vdCB0byByZS1pbnZlbnQgdGhlIHdoZWVsLCBidXQgdG8gc29s dmUgaXNzdWVzLg0KPiA+ID4NCj4gPiA+IFllcywgZnVsbHkgYWdyZWUsIGl0IHdvdWxkIGJlIGdy ZWF0IG1lZXQgYW5kIHRhbGsgdGhyb3VnaCB0aGlzLCBhcyB3ZQ0KPiA+ID4gZGlkIGl0IGluIHRo ZSBwYXN0IGZvciBvdGhlciBpc3N1ZXMuIFdoYXQgZGF5cyAmIHRpbWUgbmV4dCB3ZWVrIHdvdWxk DQo+ID4gPiBiZSBnb29kIGZvciBwZW9wbGU/DQo+ID4NCj4gPiBNeSBjYWxlbmRhciBpcyBwcmV0 dHkgbXVjaCBhbGwgb3BlbiB0aGVzZSBkYXlzLCBzbyBhbnl0aW1lIHdvcmsgaG91cnMgaW4gdGhl DQo+ID4gQ2VudHJhbCBFdXJvcGVhbiB0aW1lIHpvbmUgd29ya3MgZm9yIG1lLg0KPiA+DQo+ID4g Pg0KPiA+ID4gTWVhbndoaWxlLCBzb21lIGFuc3dlcnMgYmVsb3cuDQo+ID4gPg0KPiA+ID4gPg0K PiA+ID4gPiBUbyBzdW1tYXJpemUsIGFzIEkgc2VlIGl0IHRoZXJlIGFyZSBzZXZlcmFsIGlzc3Vl czoNCj4gPiA+ID4gMS4gbm8gcHJvdG9jb2wgaXMgZGVmaW5lZCBzbyBkaWZmZXJlbnQgUE1EIGNh bid0IHRyYW5zbGF0ZSBpdC4NCj4gPiA+DQo+ID4gPiBUaGUgZm9ybWF0IG9mIHRoZSBmbG93IGl0 ZW1zIGlzIGRlZmluZWQgYnkgdGhlIFA0IHByb2dyYW0sIHNvIGFsbCB0aGUNCj4gPiA+IEhXIGRl dmljZXMgKGZyb20gdGhlIHNhbWUgb3IgZnJvbSBkaWZmZXJlbnQgdmVuZG9ycykgdGhhdCBhcmUg YWJsZSB0bw0KPiA+ID4gc3VjY2Vzc2Z1bGx5IGxvYWQgdGhlIGdpdmVuIFA0IHByb2dyYW0gd2ls bCBoYXZlIHRoZSBzYW1lDQo+ID4gPiB1bmRlcnN0YW5kaW5nIG9mIHRoZSBmbG93IGl0ZW1zLg0K PiA+DQo+ID4gSWYgdGhlIFA0IGZsb3cgaXRlbXMvYWN0aW9ucyBhcmUgc3RhbmRhcmRpemVkIGJ5 IHNvbWUgUDQgb3JnYW5pemF0aW9uIG9yDQo+ID4gc2ltaWxhciwgdGhleSBjYW4gYmUgZW51bWVy YXRlZCBhbmQgZGVmaW5lZCBhcyBEUERLIGZsb3cgaXRlbXMvYWN0aW9ucy4gQXQNCj4gPiBsZWFz dCB0aGUgb25lcyB0aGF0IGFyZSBzdGFuZGFyZGl6ZWQuDQo+ID4NCj4gPiBBbmQgaWYgeW91IChm b3IgZmxleGliaWxpdHkgb3Igb3RoZXIgcmVhc29ucykgbmVlZCB0byBieXBhc3MgdGhlIFJURV9G TE9XDQo+ID4gc3RhbmRhcmRpemF0aW9uIHByb2Nlc3MgKGdldHRpbmcgQUNLcyBldGMuIG9uIHRo ZSBEUERLIG1haWxpbmcgbGlzdCkgZm9yDQo+IGZhc3Rlcg0KPiA+IGludGVncmF0aW9uIG9mIG5l dyBEUERLIGZsb3cgaXRlbXMvYWN0aW9ucywgaXQgZG9lcyBtYWtlIHNlbnNlIHRvIGRlZmluZSBh DQo+ID4gZ2VuZXJpYyBmbG93IGl0ZW0gKGFuZCBhY3Rpb24pIGZvciB0aGlzIHB1cnBvc2UgKGFu ZCBub3QganVzdCBmb3IgUDQpLg0KPiANCj4gPg0KPiA+IEluIG9yZGVyIHRvIGF2b2lkIGNvbmZs aWN0cyBiZXR3ZWVuIFA0IGFuZCBub24tUDQgZ2VuZXJpYyBmbG93DQo+IGl0ZW1zL2FjdGlvbnMs DQo+ID4gdGhlIGdlbmVyaWMgdHlwZSBzaG91bGQgaW5jbHVkZSBpbmZvcm1hdGlvbiBhYm91dCBo b3cgdG8gaW50ZXJwcmV0IHRoZQ0KPiA+IGluZm9ybWF0aW9uLCB3aGljaCBpcyB3aHkgSSBzdWdn ZXN0IG1ha2luZyBpdCBhIFZlbmRvci1TcGVjaWZpYyB0eXBlLCB3aXRoDQo+ID4gdmVuZG9yLXNw ZWNpZmljIFRMVidzIChtYW5hZ2VkIGJ5IHRoZSB2ZW5kb3IpLCBsaWtlIHRoZSBSQURJVVMgVmVu ZG9yLQ0KPiA+IFNwZWNpZmljIGF0dHJpYnV0ZXMgSSBjb21wYXJlZCB0bywgaW5zdGVhZCBvZiBq dXN0IGFuIG9wYXF1ZSBibG9iLg0KPiANCj4gSSBsaWtlIHRoaXMgaWRlYSwgYnV0IGl0IGlzIG5v dCBuZWNlc3NhcnkgdG8gaW50cm9kdWNlIGEgdmVuZG9yLXNwZWNpZmljIHR5cGUsDQo+IGl0IGNv dWxkIGJlIGNvbnNpZGVyZWQgYSBkZXZpY2Utc3BlY2lmaWMgdHlwZSAob3IgcG9ydC1zcGVjaWZp YyBpbiB0aGUgY29udGV4dA0KPiBvZiBEUERLKS4NCj4gDQo+IEhvd2V2ZXIsIHRoZSBQTUQgY2Fu IG1hbmFnZSBhIGRpY3Rpb25hcnksIGVuYWJsaW5nIHVzZXJzIHRvIHF1ZXJ5IGFib3V0IHRoZQ0K PiBmb3JtYXQgb2YgZWFjaCBnZW5lcmljIGl0ZW0gb3IgYWN0aW9uIGlmIHdlIGNhbiBleHBvc2Ug YSBzZXQgb2YgcXVlcnkgQVBJcy4NCj4gDQo+IEJ1dCBJIGd1ZXNzIHdlIGRvbid0IG5lZWQgdmVu ZG9yLWlkIC8gdmVuZG9yLXR5cGUgYXMgUkFESVVTIGRvZXMsIGFzIHdlIGhhdmUNCj4gcG9ydF9p ZCBoZXJlLg0KDQpJZiB0aGUgZmxvdyBpdGVtIGl0c2VsZiBkb2Vzbid0IGhhdmUgYSAidHlwZSIg ZmllbGQgKGlkZW50aWZ5aW5nIGhvdyB0byBpbnRlcnByZXQgdGhlIGJsb2IpLCB5b3UgbWlnaHQg aGF2ZSB0d28gZGlmZmVyZW50IE5JQ3MgdXNpbmcgZWFjaCB0aGVpciBvd24gYmxvYiBmb3JtYXQu IFRoZSBOSUMgbXVzdCBiZSBhYmxlIHRvIGRldGVybWluZSBpZiBhIGdpdmVuIGZsb3cgaXRlbSBp cyBvZiBhIHR5cGUgaXQgY2FuIHVuZGVyc3RhbmQsIGJlZm9yZSBpdCB0cmllcyB0byBwYXJzZSB0 aGUgYmxvYiBpbiBpdC4NCg0KVGhpcyBpcyB3aHkgdGhlICJzdHJ1Y3QgcnRlX2Zsb3dfaXRlbSIg aGFzIGEgInR5cGUiIGZpZWxkLiBJdCB0ZWxscyB0aGUgSFcgaG93IHRvIGludGVycHJldCB0aGUg dmFsdWVzIGluIGEgZmxvdyBpdGVtLg0KDQpJZiB3ZSBpbnRyb2R1Y2UgYSAiZ2VuZXJpYyIgZmxv dyBpdGVtIHR5cGUsIGl0IGNhbiBvbmx5IGJlIHVzZWQgZm9yIG11bHRpcGxlIHB1cnBvc2VzIChp LmUuIGJvdGggUDQsIGJ1dCBhbHNvIG90aGVyIHB1cnBvc2VzIHRoYW4gUDQpIGlmIGl0IGhhcyBh ICJzdWItdHlwZSIgZmllbGQuIE90aGVyd2lzZSwgc29tZW9uZSB3aWxsIGNyZWF0ZSBhICJnZW5l cmljIiBmbG93IGl0ZW0gY29udGFpbmluZyBhIFA0IHByb2dyYW0gYW5kIHNlbmQgaXQgdG8gYSBO SUMsIHdoaWNoIHVzZXMgdGhlICJnZW5lcmljIiBmbG93IGl0ZW0gdHlwZSBmb3Igb3RoZXIgcHJv Z3JhbSB0eXBlcywgZS5nLiBhIGNCUEYgcHJvZ3JhbS4gQW5kIHRoaXMgY0JQRiBjYXBhYmxlIE5J QyBoYXMgbm8gd2F5IHRvIGRldGVjdCB0aGF0IHRoZSBibG9iIGluIHRoZSBmbG93IGl0ZW0gaXMg bm90IGEgY0JQRiBwcm9ncmFtLCBidXQgYSBQNCBwcm9ncmFtLiBUaGUgUDQgY2FwYWJsZSBOSUMg d2lsbCBhY2NlcHQgdGhlIFA0IHByb2dyYW0sIGJ1dCB3aWxsIGJlIGNvbmZ1c2VkIHdoZW4gc2Vu dCB0aGUgY0JQRiBwcm9ncmFtIHVuZGVyc3Rvb2QgYnkgdGhlIGZpcnN0IE5JQy4NCg0KU28gSSBh bSBzdWdnZXN0aW5nIHRoYXQgdGhlICJnZW5lcmljIiBmbG93IGl0ZW1zIGFuZCBhY3Rpb25zIGZv bGxvdyBhbiBleGlzdGluZyBhbmQgd2VsbCBrbm93biBkZXNpZ24gcGF0dGVybnMgZm9yIGhvdyB0 byBpZGVudGlmeSB0aGUgbWVhbmluZyBvZiBibG9iczogSW5jbHVkZSBhIFZlbmRvci1JRCBmb2xs b3dlZCBieSB2ZW5kb3Itc3BlY2lmaWMgVExWIGZvcm1hdHRlZCBkYXRhLg0KDQpBcyBJIHdyb3Rl IGluaXRpYWxseSwgSSBhbSBvcHBvc2VkIHRvIGludHJvZHVjaW5nIHVuaW50ZXJwcmV0YWJsZSBi bG9icyBpbnRvIERQREsuIEZsb3cgaXRlbXMvYWN0aW9ucyBuZWVkIHRvIGJlIHdlbGwgZGVmaW5l ZC4gQWxsb3dpbmcgIlZlbmRvci1TcGVjaWZpYyIgZmxvdyBpdGVtcy9hY3Rpb25zIGlzIGEgd29y a2Fyb3VuZCB0aGF0IGFsbG93cyB5b3UgdG8gYnlwYXNzIHRoZSBub3JtYWwgc3RhbmRhcmRpemF0 aW9uIHByb2Nlc3MuDQoNCj4gDQo+IA0KPiA+DQo+ID4gVGhlIFA0IHN0YW5kYXJkaXplZCBpdGVt cy9hY3Rpb25zIGNhbiB1c2UgdGhlIFZlbmRvciBJRCBvZiB0aGUgUDQgc3RhbmRhcmRzDQo+ID4g b3JnYW5pemF0aW9uLg0KPiA+DQo+ID4gVGhlIG5vbi1zdGFuZGFyZGl6ZWQgaXRlbXMvYWN0aW9u cyBjYW4gdXNlIHRoZSBWZW5kb3IgSUQgb2YgdGhlIGhhcmR3YXJlDQo+ID4gdmVuZG9yIG9yIHRo ZSBhcHBsaWNhdGlvbiBkZXZlbG9wZXIuDQo+ID4NCj4gPiA+DQo+ID4gPiA+IDIuIGV2ZW4gdGhl IHNhbWUgUE1EIGRvZXNuJ3Qga25vdyB3aGF0IGlzIHRoZSBhY3Rpb24sIHVubGVzcyB5b3UNCj4g PiA+ID4gcGxhbg0KPiA+ID4gdGhhdA0KPiA+ID4gPiB0aGlzIHdpbGwgbW92ZQ0KPiA+ID4gPiBk aXJlY3RseSB0byB0aGUgSFcsIGluIHRoaXMgY2FzZSwgdGhlIGFjdGlvbiB3aWxsIGJlIEhXIGRl cGVuZGVudC4NCj4gPiA+DQo+ID4gPiBUaGUgcHJvY2Vzc2luZyBvZiBlYWNoIGZsb3cgYWN0aW9u LCBhcyB3ZWxsIGFzIHRoZSBudW1iZXIgb2YgYXJndW1lbnRzDQo+ID4gPiBhbmQgdGhlIGZvcm1h dCBvZiBlYWNoIGFjdGlvbiBhcmd1bWVudCwgaXMgZGVmaW5lZCBieSB0aGUgUDQgcHJvZ3JhbSwN Cj4gPiA+IHNvIGFsbCB0aGUgSFcgZGV2aWNlcyAoZnJvbSB0aGUgc2FtZSBvciBmcm9tIGRpZmZl cmVudCB2ZW5kb3JzKSB0aGF0DQo+ID4gPiBhcmUgYWJsZSB0byBzdWNjZXNzZnVsbHkgbG9hZCB0 aGUgZ2l2ZW4gUDQgcHJvZ3JhbSB3aWxsIGhhdmUgdGhlIHNhbWUNCj4gPiA+IHVuZGVyc3RhbmRp bmcgb2YgdGhlIGZsb3cgYWN0aW9ucy4NCj4gPiA+DQo+ID4gPiA+IDMuIHdoZW4gYXBwbGljYXRp b24gc2hvdWxkIHVzZSB0aGlzIG5ldyBhY3Rpb24gb3IgdGhlIG9sZCBvbmVzLg0KPiA+ID4NCj4g PiA+IEkgZ3Vlc3MgaXQgaXMgZ29vZCB0byBjbGFyaWZ5IHRoYXQgdGhlcmUgYXJlIHR3byBhcHBs aWNhdGlvbjogYSBkYXRhDQo+ID4gPiBwYXRoIGFwcGxpY2F0aW9uICh0aGUgUDQgcHJvZ3JhbSkg dGhhdCBkZWZpbmVzIHRoZSBwYWNrZXQgcHJvY2Vzc2luZw0KPiA+ID4gcGlwZWxpbmUsIGFuZCBh IGNvbnRyb2wgcGF0aCBhcHBsaWNhdGlvbiB0aGF0IGludm9rZXMgUlRFX0ZMT1cgdG8NCj4gPiA+ IGFkZC9kZWxldGUgdGhlIGZsb3dzIG9uIHRoZSBkZXZpY2UuDQo+ID4gPiBJIGd1ZXNzDQo+ID4g PiB3ZSBhcmUgbm93IHJlZmVycmluZyB0byB0aGUgY29udHJvbCBwYXRoIGFwcC4NCj4gPiA+DQo+ ID4gPiBXaGVuZXZlciB0aGUgUDQgcHJvZ3JhbSAodGhlIGRhdGEgcGF0aCBhcHApIHRoYXQgaXMg Y3VycmVudGx5IGxvYWRlZA0KPiA+ID4gb24gdGhlIGRldmljZSBpcyBkZWZpbmluZyBhbmQgdXNp bmcgZmxvdyBhY3Rpb25zIHRoYXQgcGVyZm9ybQ0KPiA+ID4gaWRlbnRpY2FsIHByb2Nlc3Npbmcg dG8gb25lIG9mIHRoZSBleGlzdGluZyBwcmUtZGVmaW5lZCBSVEVfRkxPVw0KPiA+ID4gYWN0aW9u cyAoc3VjaCBhcyBwYWNrZXQgZHJvcCwgcGFja2V0IHJlZGlyZWN0aW9uIHRvIGEgZ2l2ZW4gb3V0 cHV0DQo+ID4gPiBxdWV1ZSwgcGFja2V0IG1vZGlmaWNhdGlvbnMsIGV0YyksIHRoZW4gdGhlIGFw cCAodGhlIGNvbnRyb2wgcGF0aCBhcHApDQo+ID4gPiBjYW4gYWNjZXB0IHRoZXNlIGFjdGlvbnMg YXMgd2VsbC4NCj4gPiA+DQo+ID4gPiBCdXQgaW4gdGhlIChmcmVxdWVudCkgY2FzZSB0aGF0IHRo ZSB1c2VyJ3MgUDQgcHJvZ3JhbSBkZWZpbmVzIGFjdGlvbnMNCj4gPiA+IHRoYXQgZG8gbm90IG1h cCB0byBhbiBSVEVfRkxPVyBhY3Rpb24gZnJvbSB0aGUgcHJlLWRlZmluZWQgbGlzdCwgdGhlbg0K PiA+ID4gdGhlIGFwcCBoYXMgbm8gb3RoZXIgb3B0aW9uIGJ1dCB0byB1c2UgdGhlIG5ld2x5IHBy b3Bvc2VkIGdlbmVyaWMgZmxvdw0KPiA+ID4gYWN0aW9uIGluIG9yZGVyIHRvIHNwZWNpZnkgKHRo cm91Z2ggdGhlIGFjdGlvbl9pZCBmaWVsZCkgdGhlIGV4YWN0DQo+ID4gPiBmbG93IGFjdGlvbiBm cm9tIHRoZSBQNCBwcm9ncmFtLg0KPiA+ID4NCj4gPiA+IE1ha2VzIHNlbnNlPw0KPiA+ID4NCj4g PiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPiBPcmkNCj4gPiA+ID4NCj4g PiA+DQo+ID4gPiBSZWdhcmRzLA0KPiA+ID4gQ3Jpc3RpYW4NCj4gPiA+DQo+ID4gPiA+ID4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiBGcm9tOiBPcmkgS2FtIDxvcmlrYUBu dmlkaWEuY29tPg0KPiA+ID4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgQXVndXN0IDIsIDIwMjMgNjo0 NyBQTQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSGkgUWkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+IEZyb206IE1vcnRlbiBCcsO4 cnVwIDxtYkBzbWFydHNoYXJlc3lzdGVtcy5jb20+DQo+ID4gPiA+ID4gPiBTZW50OiBXZWRuZXNk YXksIEF1Z3VzdCAyLCAyMDIzIDY6MjUgUE0NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEZy b206IER1bWl0cmVzY3UsIENyaXN0aWFuDQo+ID4gPiBbbWFpbHRvOmNyaXN0aWFuLmR1bWl0cmVz Y3VAaW50ZWwuY29tXQ0KPiA+ID4gPiA+ID4gPiBTZW50OiBXZWRuZXNkYXksIDIgQXVndXN0IDIw MjMgMTYuMDYNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBGcm9tOiBKZXJpbiBKYWNv YiA8amVyaW5qYWNvYmtAZ21haWwuY29tPg0KPiA+ID4gPiA+ID4gPiA+IFNlbnQ6IFdlZG5lc2Rh eSwgQXVndXN0IDIsIDIwMjMgMTI6MjIgUE0NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiA+IE9uIFdlZCwgQXVnIDIsIDIwMjMgYXQgNDozMeKAr1BNIE1vcnRlbiBCcsO4cnVwDQo+ID4g PiA+ID4gPiA+ID4gPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4gd3JvdGU6DQo+ID4gPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBGcm9tOiBNb3J0ZW4gQnLDuHJ1cCBbbWFpbHRv Om1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbV0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gU2VudDogV2Vk bmVzZGF5LCAyIEF1Z3VzdCAyMDIzIDEyLjI1DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gRnJvbTogUWkgWmhhbmcgW21haWx0bzpxaS56LnpoYW5nQGludGVsLmNv bV0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBTZW50OiBXZWRuZXNkYXksIDIgQXVndXN0IDIwMjMg MTkuMzUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEZyb206 IENyaXN0aWFuIER1bWl0cmVzY3UNCj4gPiA+IDxjcmlzdGlhbi5kdW1pdHJlc2N1QGludGVsLmNv bT4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEZvciBuZXR3 b3JrIGRldmljZXMgdGhhdCBhcmUgcHJvZ3JhbW1hYmxlIHRocm91Z2gNCj4gPiA+IGxhbmd1YWdl cw0KPiA+ID4gPiBzdWNoDQo+ID4gPiA+ID4gYXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGUg UDQgbGFuZ3VhZ2UsIHRoZXJlIGFyZSBubyBwcmUtZGVmaW5lZCBmbG93IGl0ZW1zDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gYW5kDQo+ID4gPiBhY3Rpb25zLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhlIGZvcm1hdCBvZiB0aGUgcHJvdG9jb2wgaGVhZGVy IGFuZCBtZXRhZGF0YSBmaWVsZHMNCj4gPiA+IHRoYXQgYXJlDQo+ID4gPiA+IHVzZWQNCj4gPiA+ ID4gPiB0bw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNwZWNpZnkgdGhlIGZsb3cgaXRlbXMgdGhh dCBtYWtlIHVwIHRoZSBmbG93IHBhdHRlcm4sDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gYXMNCj4g PiA+IHdlbGwgYXMNCj4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZmxvdyBhY3Rp b25zLCBhcmUgYWxsIGRlZmluZWQgYnkgdGhlIHByb2dyYW0sIHdpdGggYW4NCj4gPiA+IGluZmlu aXR5IG9mDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gcG9zc2libGUgY29tYmluYXRpb25zLCBhcyBv cHBvc2VkIHRvIGJlaW5nIHNlbGVjdGVkDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZnJvbQ0KPiA+ ID4gYQ0KPiA+ID4gPiBmaW5pdGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBwcmUtZGVmaW5lZCBs aXN0Lg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gSXQgaXMg dmlydHVhbGx5IGltcG9zc2libGUgdG8gcHJlLWRlZmluZSBhbGwgdGhlIGZsb3cNCj4gPiA+IGl0 ZW1zIGFuZCB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBmbG93IGFjdGlvbnMgdGhhdCBwcm9n cmFtcyBtaWdodCBldmVyIHVzZSwgYXMgdGhlc2UNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBhcmUN Cj4gPiA+IG9ubHkNCj4gPiA+ID4gbGltaXRlZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGJ5IHRo ZSBzZXQgb2YgSFcgcmVzb3VyY2VzIGFuZCB0aGUgcHJvZ3JhbSBkZXZlbG9wZXIncw0KPiA+ID4g PiA+IGltYWdpbmF0aW9uLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gVG8gc3VwcG9ydCB0aGUgcHJvZ3JhbW1hYmxlIG5ldHdvcmsgZGV2aWNlcywgd2UgYXJl DQo+ID4gPiA+IGludHJvZHVjaW5nOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gKiBBIGdlbmVyaWMgZmxvdyBpdGVtOiBUaGUgZmxvdyBpdGVtIGlzIGV4cHJl c3NlZCBhcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGFuDQo+ID4gPiBhcnJheSBvZg0KPiA+ID4g PiBieXRlcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IG9mIGEgZ2l2ZW4gbGVuZ3RoLCB3aG9zZSBt ZWFuaW5nIGlzIGRlZmluZWQgYnkgdGhlDQo+ID4gPiBwcm9ncmFtDQo+ID4gPiA+IGxvYWRlZA0K PiA+ID4gPiA+IGJ5DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlIG5ldHdvcmsgZGV2aWNlLg0K PiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUgZmxvdyBpdGVtIGlz IG5vdCAiZ2VuZXJpYyIsIGl0IGlzICJvcGFxdWUiOiBPbmx5IHRoZQ0KPiA+ID4gYXBwbGljYXRp b24NCj4gPiA+ID4gPiA+ID4ga25vd3MNCj4gPiA+ID4gPiA+ID4gPiA+ID4gd2hhdCB0aGlzIGZs b3cgaXRlbSBkb2VzLg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBJ IGhhdGUgdGhlIGNvbmNlcHQgZm9yIHR3byByZWFzb25zOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAx LiBUaGUgaW5hYmlsaXR5IGZvciBhcHBsaWNhdGlvbnMgdG8gZGV0ZWN0IHdoaWNoIGZsb3cNCj4g PiA+IGl0ZW1zIHRoZQ0KPiA+ID4gPiA+ID4gPiB1bmRlcmx5aW5nDQo+ID4gPiA+ID4gPiA+ID4g PiA+IGhhcmR3YXJlIHN1cHBvcnRzLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAyLiBUaGUgcmlzayB0 aGF0IHZlbmRvcnMgd2lsbCB1c2UgdGhpcyBpbnN0ZWFkIG9mDQo+ID4gPiBpbnRyb2R1Y2luZyBu ZXcNCj4gPiA+ID4gZmxvdw0KPiA+ID4gPiA+ID4gPiBpdGVtDQo+ID4gPiA+ID4gPiA+ID4gPiA+ IHR5cGVzLCBhdmFpbGFibGUgZm9yIGFueW9uZSB0byBpbXBsZW1lbnQuDQo+ID4gPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gQWZ0ZXIgZnVydGhlciBjb25zaWRlcmF0aW9uLCB0aGVy ZSBtaWdodCBiZSBhIG1pZGRsZSBncm91bmQuDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+ID4gQ29uc2lkZXIgVmVuZG9yLVNwZWNpZmljIGF0dHJpYnV0ZXMgZm9yIERIQ1AgYW5k IFJBRElVUywNCj4gPiA+ID4gPiA+ID4gPiA+IG9yDQo+ID4gPiBTTk1QDQo+ID4gPiA+ID4gPiBN SUJzLi4uDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gQW55IHZlbmRvciBp cyBmcmVlIHRvIGFkZCBoaXMgb3duLCBwcm9wcmlldGFyeSBzcGVjaWFsLQ0KPiA+ID4gcHVycG9z ZQ0KPiA+ID4gPiA+IGF0dHJpYnV0ZXMsDQo+ID4gPiA+ID4gPiA+ID4gd2l0aG91dCBnb2luZyB0 aHJvdWdoIHRoZSBzdGFuZGFyZGl6YXRpb24gcHJvY2Vzcy4gKFRoaXMgaXMNCj4gPiA+IHRoZSBr ZXkNCj4gPiA+ID4gPiA+ID4gY2hhbGxlbmdlDQo+ID4gPiA+ID4gPiA+ID4gdGhpcyBwYXRjaCBz ZWVtcyB0byBiZSBhaW1pbmcgYXQuKQ0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g PiA+IFRoZSB2ZW5kb3IgbWlnaHQgcHVibGlzaCB0aGVzZSBhdHRyaWJ1dGVzLCBhbmQgb3RoZXIN Cj4gPiA+ID4gPiA+ID4gPiA+IHZlbmRvcnMNCj4gPiA+IG1heQ0KPiA+ID4gPiA+ID4gPiA+IGlt cGxlbWVudCB0aGVtIHRvby4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBB bmQgaW4gb3JkZXIgdG8gcHJldmVudCBjb2xsaXNpb25zLCB0aGUgVmVuZG9yLVNwZWNpZmljDQo+ ID4gPiBhdHRyaWJ1dGVzDQo+ID4gPiA+IGNvbnRhaW4NCj4gPiA+ID4gPiA+ID4gYQ0KPiA+ID4g PiA+ID4gPiA+IGdsb2JhbGx5IHVuaXF1ZSB2ZW5kb3IgSUQsIHN1Y2ggYXMgdGhlIFByaXZhdGUg RW50ZXJwcmlzZQ0KPiA+ID4gTnVtYmVyIFsxXQ0KPiA+ID4gPiA+ID4gPiA+IG1hbmFnZWQgYnkg SUFOQS4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJZiBzaW1pbGFyIHBy aW5jaXBsZXMgY2FuIGJlIHdvcmtlZCBpbnRvIHRoZSBwYXRjaCwgSSBjYW4NCj4gPiA+IHN1cHBv cnQgaXQuDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiArMQ0KPiA+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gKzEgSSB1bmRlcnN0YW5kIHRoYXQgdGhpcyBpcyBzdXBwb3NlZCB0byBi ZSBnZW5lcmljLCBidXQgaG93IGNhbiBpdD8NCj4gPiA+ID4gPiBob3cgZG8geW91IGtub3cgaWYg UE1EIHN1cHBvcnRzIHRoaXM/DQo+ID4gPiA+ID4gd2hhdCBpZiBlYWNoIFBNRCBuZWVkcyBkaWZm ZXJlbnQgY29uZmlndXJhdGlvbnM/DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJbiBhZGRpdGlvbiBo b3cgY2FuIHlvdSBoYW5kbGUgbnVtYmVyIG9mIHRob3NlIGFjdGlvbiBhbmQgaXRlbXM/DQo+ID4g PiA+ID4gRm9yIGV4YW1wbGUgaWYgSSBoYXZlIG1hdGNoIG9uIHByb3RvY29sIFggYW5kIFkgYW5k IGRvIGFjdGlvbnMgWg0KPiA+ID4gPiA+IGFuZA0KPiA+ID4gVw0KPiA+ID4gPiA+IGVhY2ggb25l IG9mIHRob3NlIGNhbiBiZSBnZW5lcmljIGl0ZW0uDQo+ID4gPiA+ID4gaWYgeW91IGhhdmUgYSB3 YXkgdG8gZGVmaW5lIGEgc3RhbmRhcmQgd2h5IHRvIHJlYWQgc3VjaCBhY3Rpb25zDQo+ID4gPiA+ ID4gdGhlbg0KPiA+ID4gd2UNCj4gPiA+ID4gaGF2ZQ0KPiA+ID4gPiA+IHNvbWV0aGluZyB0byB0 YWxrIGFib3V0Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gTW9ydGVuLCBKZXJpbiwNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gSSB0aGlu ayB0aGVyZSBpcyBhIGZ1bmRhbWVudGFsIG1pc3VuZGVyc3RhbmRpbmcgaGVyZTogd2UgYXJlDQo+ ID4gPiA+ID4gPiA+IG5vdA0KPiA+ID4gdHJ5aW5nDQo+ID4gPiA+IHRvDQo+ID4gPiA+ID4gPiA+ IHByb3ZpZGUgc3VwcG9ydCBmb3Igc29tZSBub24tc3RhbmRhcmQgdmVuZG9yLXNwZWNpZmljIGZl YXR1cmVzDQo+ID4gPiBoZXJlLg0KPiA+ID4gPiBXaGF0DQo+ID4gPiA+ID4gPiA+IHdlIGFyZSB0 cnlpbmcgdG8gZG8gaXMgYWRkIGdlbmVyaWMgbXVsdGktdmVuZG9yIHN1cHBvcnQgaW4NCj4gPiA+ IFJURV9GTE9XDQo+ID4gPiA+IGZvcg0KPiA+ID4gPiA+ID4gPiBQNCBwcm9ncmFtbWFibGUgbmV0 d29yayBkZXZpY2VzLCB3aGljaCByZXF1aXJlcyBzdXBwb3J0aW5nDQo+ID4gPiA+ID4gPiA+IGZs b3cNCj4gPiA+ID4gaXRlbXMNCj4gPiA+ID4gPiA+ID4gYW5kIGFjdGlvbnMgdGhhdCBhcmUgZGVm aW5lZCBkaXJlY3RseSBieSB0aGUgdXNlciB0aHJvdWdoDQo+ID4gPiA+ID4gPiA+IHRoZWlyDQo+ ID4gPiBQNA0KPiA+ID4gPiBwcm9ncmFtcw0KPiA+ID4gPiA+ID4gPiBhcyBvcHBvc2VkIHRvIGJl aW5nIHNlbGVjdGVkIGZyb20gYSBwcmUtZGVmaW5lZCBsaXN0Lg0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiBUaGVyZSBhcmUgYW4gaW5maW5pdHkgb2YgZmxvdyBpdGVtcyBhbmQgYWN0aW9u cyB0aGF0IHRoZSB1c2Vycw0KPiA+ID4gY2FuIGRlZmluZQ0KPiA+ID4gPiA+ID4gPiB0aHJvdWdo DQo+ID4gPiA+ID4gPiA+IHRoZWlyIFA0IHByb2dyYW1zLCBhbmQgdGhleSBjYW5ub3QgYmUgc3Vw cG9ydGVkIHdpdGggYSBmaW5pdGUNCj4gPiA+IGxpc3Qgb2YNCj4gPiA+ID4gPiA+IFJURV9GTE9X DQo+ID4gPiA+ID4gPiA+IGl0ZW1zIGFuZCBhY3Rpb25zOg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiAxLyBTb21lIGZsb3cgaXRlbXMgbWFwIGRpcmVjdGx5IHRvIHRoZSBJRVRGIGRlZmlu ZWQgcHJvdG9jb2xzLA0KPiA+ID4gd2hpbGUNCj4gPiA+ID4gc29tZQ0KPiA+ID4gPiA+ID4gPiBv dGhlcnMgZG8gbm90LCBhbmQgb25seSB0aGUgdXNlciB3cml0aW5nIHRoZSBwcm9ncmFtIGtub3dz IHRoZQ0KPiA+ID4gZXhhY3QNCj4gPiA+ID4gPiBhbnN3ZXI7DQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+IDIvIFNvbWUgZmxvdyBpdGVtcyBhcmUgc2ltcGx5IGFwcGxpY2F0aW9uLXNwZWNp ZmljIChub3QgdmVuZG9yDQo+ID4gPiBzcGVjaWZpYykNCj4gPiA+ID4gPiA+ID4gbWV0YS1kYXRh IHRoYXQgKEkgaG9wZSB3ZSBhbGwgYWNjZXB0KSBpcyBvdXRzaWRlIG9mIHRoZQ0KPiA+ID4gc3Rh bmRhcmRpemF0aW9uDQo+ID4gPiA+ID4gPiA+IHByb2Nlc3MuDQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gU3VjaCBpdGVtcyBjYW4gdXNlIGEgc3BlY2lhbCAicmVzZXJ2ZWQiIHZlbmRvci1pZC4N Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBDYW4geW91IHNob3cgbWUgd2hhdCBp dGVtcy9hY3Rpb25zIGFyZSBtaXNzaW5nIGluIHJ0ZV9mbG93Pw0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+IDMvIFNvbWUgZmxvdyBhY3Rpb25zIG1hcCBkaXJlY3RseSB0 byB0aGUgZXhpc3RpbmcgUlRFX0ZMT1cNCj4gPiA+IGFjdGlvbnMNCj4gPiA+ID4gPiA+IChlc3Bl Y2lhbGx5DQo+ID4gPiA+ID4gPiA+IHRoZSBtb3JlIHN0cmFpZ2h0Zm9yd2FyZCBhY3Rpb25zIHN1 Y2ggYXM6IHBhY2tldCBkcm9wLCBwYWNrZXQNCj4gPiA+IHJlZGlyZWN0aW9uDQo+ID4gPiA+IHRv DQo+ID4gPiA+ID4gPiA+IGFuDQo+ID4gPiA+ID4gPiA+IG91dHB1dCBxdWV1ZSwgc29tZSBzcGVj aWZpYyBwYWNrZXQgbW9kaWZpY2F0aW9ucywgZXRjKSwgd2hpbGUNCj4gPiA+IHRoZSB2YXN0DQo+ ID4gPiA+ID4gPiA+IG1ham9yaXR5DQo+ID4gPiA+ID4gPiA+IG9mIHBvc3NpYmxlIGFjdGlvbnMg ZG8gbm90Lg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBBcmUgeW91IHNheWluZyB0aGF0 IHRoZSBQNCBwcm9ncmFtbWFibGUgbmV0d29yayBkZXZpY2VzIHNob3VsZA0KPiA+ID4gTk9UDQo+ ID4gPiA+IGJlDQo+ID4gPiA+ID4gPiA+IHN1cHBvcnRlZCBieSBEUERLIGFuZCBSVEVfRkxPVz8N Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBObywgSSBnZXQgdGhlIG5lZWQgZm9yIHRoaXMuIEFu ZCBJIHVuZGVyc3RhbmQgdGhhdCBzaW5jZSBQNCBpcw0KPiA+ID4gY29tcGlsZWQgdG8NCj4gPiA+ ID4gPiA+IGhhcmR3YXJlLXNwZWNpZmljIGJpbmFyeSBibG9icywgdGhlcmUgaXMgYSBuZWVkIHRv IHB1dCBzdWNoDQo+ID4gPiA+ID4gPiBibG9icw0KPiA+ID4gaW50bw0KPiA+ID4gPiBEUERLIGFz DQo+ID4gPiA+ID4gPiBmbG93IGl0ZW1zIGFuZCBhY3Rpb25zLCBpbnN0ZWFkIG9mIHRoZSAidW5j b21waWxlZCIgUDQgcHJvZ3JhbS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBJIGFtIHN1Z2dl c3RpbmcgdGhhdCBpbnN0ZWFkIG9mIGFkZGluZyBhIGNvbXBsZXRlbHkgb3BhcXVlIGRhdGENCj4g PiA+IHR5cGU6DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gU3RydWN0IGl0ZW0gew0KPiA+ID4g PiA+ID4gSW50IGxlbjsgICAgICAvLyBMZW5ndGggb2YgdmFsdWUgaW4gYnl0ZXMuDQo+ID4gPiA+ ID4gPiBDaGFyIHZhbHVlW107IC8vIEFwcGxpY2F0aW9uIHNwZWNpZmljIG1lYW5pbmcuDQo+ID4g PiA+ID4gPiB9Ow0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEJ1dCBzaW5jZSB5 b3UgZGlkbid0IGRlZmluZSBhIGtub3duIHByb3RvY29sIGZvciBQTUQgdG8gcmVhZCB0aGUNCj4g PiA+IGRhdGEgaG93DQo+ID4gPiA+ID4gMiBwbWRzIGNhbiB1c2UgdGhlIHNhbWUgYWN0aW9uPw0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAuLi5hZGQgYSBzZW1pLW9wYXF1ZSBkYXRhIHR5cGU6DQo+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gU3RydWN0IHRsdiB7DQo+ID4gPiA+ID4gPiBJbnQgdHlw ZTsgICAgIC8vIFZlbmRvciBzcGVjaWZpYyB0eXBlLg0KPiA+ID4gPiA+ID4gSW50IGxlbjsgICAg ICAvLyBMZW5ndGggb2YgdmFsdWUgaW4gYnl0ZXMuDQo+ID4gPiA+ID4gPiBDaGFyIHZhbHVlW107 IC8vIChWZW5kb3IsIFR5cGUpIHNwZWNpZmljIG1lYW5pbmcuDQo+ID4gPiA+ID4gPiB9Ow0KPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFN0cnVjdCBpdGVtIHsNCj4gPiA+ID4gPiA+IEludCB2ZW5k b3I7ICAgICAgICAgIC8vIFZlbmRvciBJRC4NCj4gPiA+ID4gPiA+IEludCBsZW47ICAgICAgICAg ICAgIC8vIExlbmd0aCBvZiB2YWx1ZXMgaW4gYnl0ZXMuDQo+ID4gPiA+ID4gPiBTdHJ1Y3QgdGx2 IHZhbHVlc1tdOyAvLyBBcnJheSBvZiBUTFZzLg0KPiA+ID4gPiA+ID4gfTsNCj4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiBMaWtlIFJBRElVUyBWZW5kb3ItU3BlY2lmaWMgYXR0cmlidXRlczoNCj4g PiA+ID4gPiA+IGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMjEzOCNz ZWN0aW9uLTUuMjYNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBUaGVuIHNvbWUgKFZlbmRvciwg VHlwZSkgZmllbGRzIGNhbiBiZSBkb2N1bWVudGVkIChhbmQgdGh1cw0KPiA+ID4gZ2VuZXJhbGx5 DQo+ID4gPiA+ID4gPiB1bmRlcnN0b29kIGJ5IERQREspLCBhbmQgc29tZSB1bmRvY3VtZW50ZWQu DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gRS5nLiBsaWtlIE1pY3Jvc29mdCBkb2N1bWVudGVk IHNvbWUgb2YgdGhlaXJzIGluIFJGQyAyNTQ4Og0KPiA+ID4gPiA+ID4gaHR0cHM6Ly9kYXRhdHJh Y2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmMyNTQ4DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+IEFub3RoZXIgYmVuZWZpdCBpcyB0aGF0IHRoZXNlIG5ldyAiVkVORE9SLVNQ RUNJRklDIiBmbG93IHR5cGVzDQo+ID4gPiA+ID4gPiBjYW4NCj4gPiA+IGJlDQo+ID4gPiA+ID4g cmV1c2VkDQo+ID4gPiA+ID4gPiBmb3Igb3RoZXIgcHVycG9zZXMgdGhhbiBjb21waWxlZCBQNCBw cm9ncmFtcy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBQcmVmZXJhYmx5LCB0aGVyZSBzaG91 bGQgYWxzbyBiZSBhIG1lYW5zIGZvciBhcHBsaWNhdGlvbnMNCj4gPiA+ID4gPiA+ID4gPiA+IHRv DQo+ID4gPiBxdWVyeSBpZg0KPiA+ID4gPiA+ID4gPiBzcGVjaWZpYw0KPiA+ID4gPiA+ID4gPiA+ IFZlbmRvci1TcGVjaWZpYyBmbG93IGl0ZW1zIGFuZCBhY3Rpb25zIGFyZSBzdXBwb3J0ZWQgb3Ig bm90Lg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ID4gPiBbMV06IGh0dHBzOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL2VudGVycHJpc2UtbnVt YmVycy8NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFJl Z2FyZHMsDQo+ID4gPiA+ID4gPiA+IENyaXN0aWFuDQo=