From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20080.outbound.protection.outlook.com [40.107.2.80]) by dpdk.org (Postfix) with ESMTP id 5BB364C94 for ; Mon, 28 Jan 2019 11:41:34 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zzqdK2mHp3aYKXWDmiQZ4+23PyIG6IpXmbPaDhWz+Hw=; b=Y8LH+EfY7yTesUD4fYe3+L3CcoZFbz7ruB3/pOn38BN3zRBXef9bnr3xQOLOcCDzk0T49zSKQnK4Q1DOC0SoQFRLjKSeSXE+hHZ+2iEkDS0lHU9CqyJorHqqTWQ9ZF4lXKmAqDWdosxSjODx3R2r7DgXBARxGGOoe5NyCw5Dg5Y= Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com (10.168.95.140) by HE1PR0801MB1676.eurprd08.prod.outlook.com (10.168.149.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1558.21; Mon, 28 Jan 2019 10:41:31 +0000 Received: from HE1PR0801MB2076.eurprd08.prod.outlook.com ([fe80::f5e3:70fc:e834:3c42]) by HE1PR0801MB2076.eurprd08.prod.outlook.com ([fe80::f5e3:70fc:e834:3c42%3]) with mapi id 15.20.1558.023; Mon, 28 Jan 2019 10:41:31 +0000 From: Ola Liljedahl To: Honnappa Nagarahalli , "gage.eads@intel.com" , "dev@dpdk.org" CC: nd , "bruce.richardson@intel.com" , "thomas@monjalon.net" , "konstantin.ananyev@intel.com" , "Song Zhu (Arm Technology China)" , "stephen@networkplumber.org" , "olivier.matz@6wind.com" , "arybchenko@solarflare.com" , "Gavin Hu (Arm Technology China)" Thread-Topic: [dpdk-dev] [PATCH v3 0/5] Add non-blocking ring Thread-Index: AQHUr0HtVw1YlpRb8kGtX078AL74eaW/dt8QgADPzHCAAAcIoIAEP+UA Date: Mon, 28 Jan 2019 10:41:31 +0000 Message-ID: <1548672102.3076.21.camel@arm.com> References: <20190115235227.14013-1-gage.eads@intel.com> <20190118152326.22686-1-gage.eads@intel.com> <9184057F7FC11744A2107296B6B8EB1E541CB774@FMSMSX108.amr.corp.intel.com> In-Reply-To: <9184057F7FC11744A2107296B6B8EB1E541CB774@FMSMSX108.amr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Evolution 3.18.5.2-0ubuntu3.2 authentication-results: spf=none (sender IP is ) smtp.mailfrom=Ola.Liljedahl@arm.com; x-originating-ip: [217.140.96.140] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; HE1PR0801MB1676; 6:/WLtNkwWgsHnoOf2g5g6af8ss64bl66Zr3IAzb2jHC1jVdYx9/yjd+QrCxW9XF+FSzDOiPAqb3ze22k62+ylYUYreYY9qBEs3yuEPuwfbrVBaTM83KNbyXO76Geo+xvew+0mIed3WsxrmqdT83p1/pO8Dx4hp1ndQKWXlnlp4SeRoMsRooVTC3lJaGwWtmKD5X4cbh5xK8Ojv+a/u6WUEyCSgZ92drHTntobBSSWzT0qo5mecSFM47oIO2+jNtvArxm1TJdxSL+WkKIK0S7P51j/zo5s+20XWtPqAaxNaCUn8vxQcs/l4fUZlHwj8nU24a9uQKQO6Bs18n9nDNwWYdLRwqsRTORSUG2QSH7dyxHVScmZZAKuBG0yl2FlCTkddX02yopncbSTH1Ifo+uU38IqytnMIBr5Pm1aIyBCzJ0GPz8O+FaenOEsdAvTFEjvNgOIE3y66fIpPlAZJknFTA==; 5:jZEUVaQKnS0XB+FWPB+fMU8C7C4WT8AJA1yazG3t2xNs780jsxAghX64imGDacg02DJYHP19d8PyXKpRjwSGJjsQ0FZotSr85vSNW6fTfSSAHYhaYh9FSBQ2yRiqUgfpmDkFsDkwlpXTzpUl0BRFeqVkxY8ERLB0TUZc+2+5rfRDfZS2gaiPfpwzz/G/KhYT6fJw0PsZGCtjEYsw0Jhkpg==; 7:1LpmADpkhPD5agBqwCDvcAS/Yh1uAYeHAcSzdXRcGyfSQKZXdwEEmGIpEzzR6Cch+gqzKSvW+0dgdfNcRDJHLItEoJlgmCpjtNhb8gH4AviyU9HsVOnVQlqeNAxB2jkHpZOJ/aA4EWExLtt9GN4Axg== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 5c63bf0a-92ee-4800-1812-08d6850d2ab7 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(4618075)(2017052603328)(7153060)(7193020); SRVR:HE1PR0801MB1676; x-ms-traffictypediagnostic: HE1PR0801MB1676: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr nodisclaimer: True x-microsoft-antispam-prvs: x-forefront-prvs: 0931CB1479 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(979002)(346002)(376002)(396003)(39850400004)(366004)(136003)(13464003)(199004)(189003)(7736002)(54906003)(110136005)(316002)(229853002)(6436002)(305945005)(93886005)(81166006)(102836004)(36756003)(53546011)(6506007)(81156014)(50226002)(8936002)(6486002)(105586002)(99286004)(106356001)(2906002)(8676002)(76176011)(966005)(14454004)(186003)(97736004)(26005)(72206003)(478600001)(25786009)(2201001)(3846002)(53936002)(6116002)(486006)(66066001)(11346002)(4326008)(256004)(6306002)(6512007)(2616005)(68736007)(476003)(71200400001)(71190400001)(103116003)(14444005)(2501003)(86362001)(446003)(345774005)(6246003)(99106002)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR0801MB1676; H:HE1PR0801MB2076.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: BIIl9ogwKB4t+z31nCno6VRvJbakhKCPdit1hfobZ+Dq13+1u50Xv9G0AQXoxgRzugOfYYfPGyhZcRZOX3wAnTRygnP6MDIdJRxYEvqxbYvZRXylGLJvIMaVi6ng63heD3HwgVuNdk3bE0XqKM7B49gazujejoa/2V/mcHUI0MucmLAK4pakx5aHBqc/cZkfyZFd4pfz46ds3VPtoktOlQ3YC9N/AuHfCRhLV2bIUPXK+0v1/EmbP0CASJaGCc26ycCyTKJGcbE+/I5wl1BtdFqnRAs9Q+LZtunx0DgU4mUjaWNMluYKLFy7oF1CZcQPsCZXFEk954vJUc7BLkOCtRM7gw9XF8mmDvpJFghh8C3QkxvAU5IzhocfgEEK/hErsFgeAZ/qclQkXQGJe09gjiySo68cACZNdnM0/GXQpCU= Content-Type: text/plain; charset="utf-8" Content-ID: <287BA766308DF943AB43603B7D3D58B5@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5c63bf0a-92ee-4800-1812-08d6850d2ab7 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jan 2019 10:41:31.5503 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1676 Subject: Re: [dpdk-dev] [PATCH v3 0/5] Add non-blocking ring 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: Mon, 28 Jan 2019 10:41:34 -0000 T24gRnJpLCAyMDE5LTAxLTI1IGF0IDE3OjU2ICswMDAwLCBFYWRzLCBHYWdlIHdyb3RlOg0KPiAN Cj4gPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IEVhZHMsIEdh Z2UNCj4gPiBTZW50OiBGcmlkYXksIEphbnVhcnkgMjUsIDIwMTkgMTE6NDMgQU0NCj4gPiBUbzog J0hvbm5hcHBhIE5hZ2FyYWhhbGxpJyA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47IGRl dkBkcGRrLm9yZw0KPiA+IENjOiBvbGl2aWVyLm1hdHpANndpbmQuY29tOyBhcnliY2hlbmtvQHNv bGFyZmxhcmUuY29tOyBSaWNoYXJkc29uLCBCcnVjZQ0KPiA+IDxicnVjZS5yaWNoYXJkc29uQGlu dGVsLmNvbT47IEFuYW55ZXYsIEtvbnN0YW50aW4NCj4gPiA8a29uc3RhbnRpbi5hbmFueWV2QGlu dGVsLmNvbT47IHN0ZXBoZW5AbmV0d29ya3BsdW1iZXIub3JnOyBuZA0KPiA+IDxuZEBhcm0uY29t PjsgdGhvbWFzQG1vbmphbG9uLm5ldDsgT2xhIExpbGplZGFobA0KPiA+IDxPbGEuTGlsamVkYWhs QGFybS5jb20+OyBHYXZpbiBIdSAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpDQo+ID4gPEdhdmluLkh1 QGFybS5jb20+OyBTb25nIFpodSAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEpDQo+ID4gPFNvbmcuWmh1 QGFybS5jb20+OyBuZCA8bmRAYXJtLmNvbT4NCj4gPiBTdWJqZWN0OiBSRTogW2RwZGstZGV2XSBb UEFUQ0ggdjMgMC81XSBBZGQgbm9uLWJsb2NraW5nIHJpbmcNCj4gPiANCj4gPiBIaSBIb25uYXBw YSwNCj4gPiANCj4gPiBXb3JrcyBmb3IgbWUgLS0gSSdtIGluIGZhdm9yIG9mIHRoZSBiZXN0IHBl cmZvcm1pbmcgaW1wbGVtZW50YXRpb24sIHdob2V2ZXINCj4gPiBwcm92aWRlcyBpdC4NCj4gPiAN Cj4gPiBUbyBhbGxvdyBhbiBhcHBsZXMtdG8tYXBwbGVzIGNvbXBhcmlzb24sIEkgc3VnZ2VzdCBP bGEncy9BUk0ncw0KPiA+IGltcGxlbWVudGF0aW9uDQo+ID4gYmUgbWFkZSB0byBmaXQgaW50byB0 aGUgcnRlX3JpbmcgQVBJIHdpdGggYW4gYXNzb2NpYXRlZCBtZW1wb29sIGhhbmRsZXIuDQo+ID4g VGhhdCdsbA0KPiA+IGFsbG93IHVzIHRvIHVzZSB0aGUgZXhpc3RpbmcgcmluZyBhbmQgbWVtcG9v bCBwZXJmb3JtYW5jZSB0ZXN0cyBhcyB3ZWxsLg0KPiA+IEZlZWwNCj4gPiBmcmVlIHRvIHVzZSBj b2RlIGZyb20gdGhpcyBwYXRjaHNldCBmb3IgdGhlIHJ0ZV9yaW5nIGludGVncmF0aW9uLCBpZiB0 aGF0DQo+ID4gaGVscHMsIG9mDQo+ID4gY291cnNlLg0KPiA+IA0KPiBCdXQgYWxzbywgaWYgT2xh L0FSTSdzIGFsZ29yaXRobSBpcyBzdWZmaWNpZW50bHkgc2ltaWxhciB0byB0aGlzIG9uZSwgaXQn cw0KPiBwcm9iYWJseSBiZXR0ZXIgdG8gdHdlYWsgdGhpcyBwYXRjaHNldCdzIGVucXVldWUgYW5k IGRlcXVldWUgZnVuY3Rpb25zIHdpdGgNCj4gYW55IGltcHJvdmVtZW50cyB5b3UgY2FuIGlkZW50 aWZ5IHJhdGhlciB0aGFuIGNyZWF0aW5nIGFuIGVudGlyZWx5IHNlcGFyYXRlDQo+IGltcGxlbWVu dGF0aW9uLg0KVGhlcmUgYXJlIHN0cm9uZyBzaW1pbGFyaXRpZXMuIEJ1dCBteSBpbXBsZW1lbnRh dGlvbiBpcyBzZXBhcmF0ZSBmcm9tIHJ0ZV9yaW5nDQood2hvc2UgY29kZSBpcyBhIG1lc3MpIHdo aWNoIGFsc28gZnJlZWQgbWUgZnJvbSBhbnkgaW50ZXJvcGVyYXRpYmlsaXR5IHdpdGggdGhlDQpy dGVfcmluZyBjb2RlIGFuZCBkYXRhIHN0cnVjdHVyZSAod2l0aCB0d28gcGFpcnMgb2YgaGVhZCt0 YWlsIHdoaWNoIGlzDQp1bm5lY2Vzc2FyeSBmb3IgdGhlIGxvY2stZnJlZSByaW5nIGJ1ZmZlciku DQoNCk15IGRlc2lnbiBhbmQgaW1wbGVtZW50YXRpb24gaXMgaGVyZToNCmh0dHBzOi8vZ2l0aHVi LmNvbS9BUk0tc29mdHdhcmUvcHJvZ3Jlc3M2NC9ibG9iL21hc3Rlci9zcmMvcDY0X2xmcmluZy5j DQpJIGhhdmUgYSBEUERLIHZlcnNpb24gaW4gZmxpZ2h0LiBNZXJnaW5nIHRoZSByZWxldmFudCBj aGFuZ2VzIGludG8geW91ciBwYXRjaA0KbWFrZXMgc2Vuc2UuIFRoZXJlIGFyZSBzb21lIGRpZmZl cmVuY2VzIHdlIHdpbGwgaGF2ZSB0byBhZ3JlZSBvbi4NCg0KPiANCj4gPiANCj4gPiBJIGV4cGVj dCB0byBoYXZlIHY0IGF2YWlsYWJsZSB3aXRoaW4gdGhlIG5leHQgd2Vlay4NCj4gPiANCj4gPiBU aGFua3MsDQo+ID4gR2FnZQ0KPiA+IA0KPiA+ID4gDQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+ID4gRnJvbTogSG9ubmFwcGEgTmFnYXJhaGFsbGkgW21haWx0bzpIb25uYXBw YS5OYWdhcmFoYWxsaUBhcm0uY29tXQ0KPiA+ID4gU2VudDogVGh1cnNkYXksIEphbnVhcnkgMjQs IDIwMTkgMTE6MjEgUE0NCj4gPiA+IFRvOiBFYWRzLCBHYWdlIDxnYWdlLmVhZHNAaW50ZWwuY29t PjsgZGV2QGRwZGsub3JnDQo+ID4gPiBDYzogb2xpdmllci5tYXR6QDZ3aW5kLmNvbTsgYXJ5YmNo ZW5rb0Bzb2xhcmZsYXJlLmNvbTsgUmljaGFyZHNvbiwNCj4gPiA+IEJydWNlIDxicnVjZS5yaWNo YXJkc29uQGludGVsLmNvbT47IEFuYW55ZXYsIEtvbnN0YW50aW4NCj4gPiA+IDxrb25zdGFudGlu LmFuYW55ZXZAaW50ZWwuY29tPjsgc3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc7IG5kDQo+ID4g PiA8bmRAYXJtLmNvbT47IHRob21hc0Btb25qYWxvbi5uZXQ7IE9sYSBMaWxqZWRhaGwNCj4gPiA+ IDxPbGEuTGlsamVkYWhsQGFybS5jb20+OyBHYXZpbiBIdSAoQXJtIFRlY2hub2xvZ3kgQ2hpbmEp DQo+ID4gPiA8R2F2aW4uSHVAYXJtLmNvbT47IFNvbmcgWmh1IChBcm0gVGVjaG5vbG9neSBDaGlu YSkNCj4gPiA+IDxTb25nLlpodUBhcm0uY29tPjsgbmQgPG5kQGFybS5jb20+DQo+ID4gPiBTdWJq ZWN0OiBSRTogW2RwZGstZGV2XSBbUEFUQ0ggdjMgMC81XSBBZGQgbm9uLWJsb2NraW5nIHJpbmcN Cj4gPiA+IA0KPiA+ID4gSGkgR2FnZSwNCj4gPiA+IAlUaGFuayB5b3UgZm9yIHRoaXMgcGF0Y2gu IEFybSAoT2xhIExpbGplZGFobCkgaGFkIHdvcmtlZCBvbiBhIG5vbi0NCj4gPiA+IGJsb2NraW5n IHJpbmcgYWxnb3JpdGhtLiBXZSB3ZXJlIHBsYW5uaW5nIHRvIGFkZCBpdCB0byBEUERLIGF0IHNv bWUNCj4gPiA+IHBvaW50IHRoaXMgeWVhci4gSSBhbSB3b25kZXJpbmcgaWYgeW91IHdvdWxkIGJl IG9wZW4gdG8gdGFrZSBhIGxvb2sgYXQNCj4gPiA+IHRoZSBhbGdvcml0aG0gYW5kIGNvbGxhYm9y YXRlPw0KPiA+ID4gDQo+ID4gPiBJIGFtIHlldCB0byBmdWxseSB1bmRlcnN0YW5kIGJvdGggdGhl IGFsZ29yaXRobXMuIEJ1dCwgT2xhIGhhcw0KPiA+ID4gcmV2aWV3ZWQgeW91ciBwYXRjaCBhbmQg Y2FuIHByb3ZpZGUgYSBxdWljayBvdmVydmlldyBvZiB0aGUgZGlmZmVyZW5jZXMNCj4gPiA+IGhl cmUuDQo+ID4gPiANCj4gPiA+IElmIHlvdSBhZ3JlZSwgd2UgY2FuIHNlbmQgYSBSRkMgcGF0Y2gu IFlvdSBjYW4gcmV2aWV3IHRoYXQgYW5kIGRvDQo+ID4gPiBwZXJmb3JtYW5jZSBiZW5jaG1hcmtp bmcgb24geW91ciBwbGF0Zm9ybXMuIEkgY2FuIGFsc28gYmVuY2htYXJrIHlvdXINCj4gPiA+IHBh dGNoIChtYXkgYmUgb25jZSB5b3UgZml4IHRoZSBpc3N1ZSBpZGVudGlmaWVkIGluDQo+ID4gPiBf X3J0ZV9yaW5nX2RvX25iX2VucXVldWVfbXDCoMKgZnVuY3Rpb24/KSBvbiBBcm0gcGxhdGZvcm1z LiBNYXkgYmUgd2UgY2FuDQo+ID4gZW5kIHVwIHdpdGggYSBiZXR0ZXIgY29tYmluZWQgYWxnb3Jp dGhtLg0KPiA+ID4gDQo+ID4gPiANCj4gPiA+IEhpIFRob21hcy9CcnVjZSwNCj4gPiA+IAlQbGVh c2UgbGV0IG1lIGtub3cgaWYgdGhpcyBpcyBvayBhbmQgaWYgdGhlcmUgaXMgYSBiZXR0ZXIgd2F5 IHRvIGRvDQo+ID4gPiB0aGlzLg0KPiA+ID4gDQo+ID4gPiBUaGFuayB5b3UsDQo+ID4gPiBIb25u YXBwYQ0KPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+ID4gPiBGcm9tOiBkZXYgPGRldi1ib3VuY2VzQGRwZGsub3JnPiBPbiBCZWhhbGYgT2Yg R2FnZSBFYWRzDQo+ID4gPiA+IFNlbnQ6IEZyaWRheSwgSmFudWFyeSAxOCwgMjAxOSA5OjIzIEFN DQo+ID4gPiA+IFRvOiBkZXZAZHBkay5vcmcNCj4gPiA+ID4gQ2M6IG9saXZpZXIubWF0ekA2d2lu ZC5jb207IGFyeWJjaGVua29Ac29sYXJmbGFyZS5jb207DQo+ID4gPiA+IGJydWNlLnJpY2hhcmRz b25AaW50ZWwuY29tOyBrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tOw0KPiA+ID4gPiBzdGVw aGVuQG5ldHdvcmtwbHVtYmVyLm9yZw0KPiA+ID4gPiBTdWJqZWN0OiBbZHBkay1kZXZdIFtQQVRD SCB2MyAwLzVdIEFkZCBub24tYmxvY2tpbmcgcmluZw0KPiA+ID4gPiANCj4gPiA+ID4gRm9yIHNv bWUgdXNlcnMsIHRoZSBydGUgcmluZydzICJub24tcHJlZW1wdGl2ZSIgY29uc3RyYWludCBpcyBu b3QNCj4gPiA+ID4gYWNjZXB0YWJsZTsgZm9yIGV4YW1wbGUsIGlmIHRoZSBhcHBsaWNhdGlvbiB1 c2VzIGEgbWl4dHVyZSBvZiBwaW5uZWQNCj4gPiA+ID4gaGlnaC1wcmlvcml0eSB0aHJlYWRzIGFu ZCBtdWx0aXBsZXhlZCBsb3ctcHJpb3JpdHkgdGhyZWFkcyB0aGF0DQo+ID4gPiA+IHNoYXJlIGEN Cj4gPiA+IG1lbXBvb2wuDQo+ID4gPiA+IA0KPiA+ID4gPiANCj4gPiA+ID4gVGhpcyBwYXRjaHNl dCBpbnRyb2R1Y2VzIGEgbm9uLWJsb2NraW5nIHJpbmcsIG9uIHRvcCBvZiB3aGljaCBhDQo+ID4g PiA+IG1lbXBvb2wgY2FuIHJ1bi4NCj4gPiA+ID4gQ3J1Y2lhbGx5LCB0aGUgbm9uLWJsb2NraW5n IGFsZ29yaXRobSByZWxpZXMgb24gYSAxMjgtYml0DQo+ID4gPiA+IGNvbXBhcmUtYW5kLXN3YXAs IHNvIGl0IGlzIGN1cnJlbnRseSBsaW1pdGVkIHRvIHg4Nl82NCBtYWNoaW5lcy4NCj4gPiA+ID4g VGhpcyBpcyBhbHNvIGFuIGV4cGVyaW1lbnRhbCBBUEksIHNvIFJJTkdfRl9OQiB1c2VycyBtdXN0 IGJ1aWxkIHdpdGgNCj4gPiA+ID4gdGhlDQo+ID4gPiBBTExPV19FWFBFUklNRU5UQUxfQVBJIGZs YWcuDQo+ID4gPiA+IA0KPiA+ID4gPiANCj4gPiA+ID4gVGhlIHJpbmcgdXNlcyBtb3JlIGNvbXBh cmUtYW5kLXN3YXAgYXRvbWljIG9wZXJhdGlvbnMgdGhhbiB0aGUNCj4gPiA+ID4gcmVndWxhciBy dGUNCj4gPiA+ID4gcmluZzoNCj4gPiA+ID4gV2l0aCBubyBjb250ZW50aW9uLCBhbiBlbnF1ZXVl IG9mIG4gcG9pbnRlcnMgdXNlcyAoMSArIDJuKSBDQVMNCj4gPiA+ID4gb3BlcmF0aW9ucyBhbmQg YSBkZXF1ZXVlIG9mIG4gcG9pbnRlcnMgdXNlcyAyLiBUaGlzIGFsZ29yaXRobSBoYXMNCj4gPiA+ ID4gd29yc2UgYXZlcmFnZS1jYXNlIHBlcmZvcm1hbmNlIHRoYW4gdGhlIHJlZ3VsYXIgcnRlIHJp bmcNCj4gPiA+ID4gKHBhcnRpY3VsYXJseSBhIGhpZ2hseS1jb250ZW5kZWQgcmluZyB3aXRoIGxh cmdlIGJ1bGsgYWNjZXNzZXMpLA0KPiA+ID4gPiBob3dldmVyOg0KPiA+ID4gPiAtIEZvciBhcHBs aWNhdGlvbnMgd2l0aCBwcmVlbXB0aWJsZSBwdGhyZWFkcywgdGhlIHJlZ3VsYXIgcnRlIHJpbmcn cw0KPiA+ID4gPiB3b3JzdC0NCj4gPiBjYXNlDQo+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+IMKg IHBlcmZvcm1hbmNlIChpLmUuIG9uZSB0aHJlYWQgYmVpbmcgcHJlZW1wdGVkIGluIHRoZSB1cGRh dGVfdGFpbCgpDQo+ID4gPiA+IGNyaXRpY2FsDQo+ID4gPiA+IMKgIHNlY3Rpb24pIGlzIG11Y2gg d29yc2UgdGhhbiB0aGUgbm9uLWJsb2NraW5nIHJpbmcncy4NCj4gPiA+ID4gLSBTb2Z0d2FyZSBj YWNoaW5nIGNhbiBtaXRpZ2F0ZSB0aGUgYXZlcmFnZSBjYXNlIHBlcmZvcm1hbmNlIGZvciByaW5n LQ0KPiA+IGJhc2VkDQo+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+IMKgIGFsZ29yaXRobXMuIEZv ciBleGFtcGxlLCBhIG5vbi1ibG9ja2luZyByaW5nIGJhc2VkIG1lbXBvb2wgKGENCj4gPiA+ID4g bGlrZWx5IHVzZSBjYXNlDQo+ID4gPiA+IMKgIGZvciB0aGlzIHJpbmcpIHdpdGggcGVyLXRocmVh ZCBjYWNoaW5nLg0KPiA+ID4gPiANCj4gPiA+ID4gVGhlIG5vbi1ibG9ja2luZyByaW5nIGlzIGVu YWJsZWQgdmlhIGEgbmV3IGZsYWcsIFJJTkdfRl9OQi4gRm9yDQo+ID4gPiA+IGVhc2Utb2YtdXNl LCBleGlzdGluZyByaW5nIGVucXVldWUvZGVxdWV1ZSBmdW5jdGlvbnMgd29yayB3aXRoIGJvdGgN Cj4gPiA+ID4gInJlZ3VsYXIiIGFuZCBub24tIGJsb2NraW5nIHJpbmdzLg0KPiA+ID4gPiANCj4g PiA+ID4gVGhpcyBwYXRjaHNldCBhbHNvIGFkZHMgbm9uLWJsb2NraW5nIHZlcnNpb25zIG9mIHJp bmdfYXV0b3Rlc3QgYW5kDQo+ID4gPiA+IHJpbmdfcGVyZl9hdXRvdGVzdCwgYW5kIGEgbm9uLWJs b2NraW5nIHJpbmcgYmFzZWQgbWVtcG9vbC4NCj4gPiA+ID4gDQo+ID4gPiA+IFRoaXMgcGF0Y2hz ZXQgbWFrZXMgb25lIEFQSSBjaGFuZ2U7IGEgZGVwcmVjYXRpb24gbm90aWNlIHdpbGwgYmUNCj4g PiA+ID4gcG9zdGVkIGluIGEgc2VwYXJhdGUgY29tbWl0Lg0KPiA+ID4gPiANCj4gPiA+ID4gVGhp cyBwYXRjaHNldCBkZXBlbmRzIG9uIHRoZSBub24tYmxvY2tpbmcgc3RhY2sgcGF0Y2hzZXRbMV0u DQo+ID4gPiA+IA0KPiA+ID4gPiBbMV0gaHR0cDovL21haWxzLmRwZGsub3JnL2FyY2hpdmVzL2Rl di8yMDE5LUphbnVhcnkvMTIzNjUzLmh0bWwNCj4gPiA+ID4gDQo+ID4gPiA+IHYzOg0KPiA+ID4g PiDCoC0gQXZvaWQgdGhlIEFCSSBicmVhayBieSBwdXR0aW5nIDY0LWJpdCBoZWFkIGFuZCB0YWls IHZhbHVlcyBpbiB0aGUNCj4gPiA+ID4gc2FtZQ0KPiA+ID4gPiDCoMKgwqBjYWNoZWxpbmUgYXMg c3RydWN0IHJ0ZV9yaW5nJ3MgcHJvZCBhbmQgY29ucyBtZW1iZXJzLg0KPiA+ID4gPiDCoC0gRG9u J3QgYXR0ZW1wdCB0byBjb21waWxlIHJ0ZV9hdG9taWMxMjhfY21wc2V0IHdpdGhvdXQNCj4gPiA+ ID4gwqDCoMKgQUxMT1dfRVhQRVJJTUVOVEFMX0FQSSwgYXMgdGhpcyB3b3VsZCBicmVhayBhIGxh cmdlIG51bWJlciBvZg0KPiA+IGxpYnJhcmllcy4NCj4gPiA+IA0KPiA+ID4gPiANCj4gPiA+ID4g wqAtIEFkZCBhIGhlbHBmdWwgd2FybmluZyB0byBfX3J0ZV9yaW5nX2RvX25iX2VucXVldWVfbXAo KSBpbiBjYXNlDQo+ID4gPiA+IHNvbWVvbmUgdHJpZXMNCj4gPiA+ID4gwqDCoMKgdG8gdXNlIFJJ TkdfRl9OQiB3aXRob3V0IHRoZSBBTExPV19FWFBFUklNRU5UQUxfQVBJIGZsYWcuDQo+ID4gPiA+ IMKgLSBVcGRhdGUgdGhlIHJpbmcgbWVtcG9vbCB0byB1c2UgZXhwZXJpbWVudGFsIEFQSXMNCj4g PiA+ID4gwqAtIENsYXJpZnkgdGhhdCBSSU5CX0ZfTkIgaXMgb25seSBsaW1pdGVkIHRvIHg4Nl82 NCBjdXJyZW50bHk7DQo+ID4gPiA+IEFSTXY4LjEtQSBidWlsZHMNCj4gPiA+ID4gwqDCoMKgY2Fu IGV2ZW50dWFsbHkgc3VwcG9ydCBpdCB3aXRoIHRoZSBDQVNQIGluc3RydWN0aW9uLg0KPiA+ID4g PiANCj4gPiA+ID4gdjI6DQo+ID4gPiA+IMKgLSBNZXJnZSBzZXBhcmF0ZSBkb2NzIGNvbW1pdCBp bnRvIHBhdGNoICM1DQo+ID4gPiA+IMKgLSBDb252ZXJ0IHVpbnRwdHJfdCB0byBzaXplX3QNCj4g PiA+ID4gwqAtIEFkZCBhIGNvbXBpbGUtdGltZSBjaGVjayBmb3IgdGhlIHNpemUgb2Ygc2l6ZV90 DQo+ID4gPiA+IMKgLSBGaXggYSBzcGFjZS1hZnRlci10eXBlY2FzdCBpc3N1ZQ0KPiA+ID4gPiDC oC0gRml4IGFuIHVubmVjZXNzYXJ5LXBhcmVudGhlc2VzIGNoZWNrcGF0Y2ggd2FybmluZw0KPiA+ ID4gPiDCoC0gQnVtcCBsaWJydGVfcmluZydzIGxpYnJhcnkgdmVyc2lvbg0KPiA+ID4gPiANCj4g PiA+ID4gR2FnZSBFYWRzICg1KToNCj4gPiA+ID4gwqAgcmluZzogYWRkIDY0LWJpdCBoZWFkdGFp bCBzdHJ1Y3R1cmUNCj4gPiA+ID4gwqAgcmluZzogYWRkIGEgbm9uLWJsb2NraW5nIGltcGxlbWVu dGF0aW9uDQo+ID4gPiA+IMKgIHRlc3RfcmluZzogYWRkIG5vbi1ibG9ja2luZyByaW5nIGF1dG90 ZXN0DQo+ID4gPiA+IMKgIHRlc3RfcmluZ19wZXJmOiBhZGQgbm9uLWJsb2NraW5nIHJpbmcgcGVy ZiB0ZXN0DQo+ID4gPiA+IMKgIG1lbXBvb2wvcmluZzogYWRkIG5vbi1ibG9ja2luZyByaW5nIGhh bmRsZXJzDQo+ID4gPiA+IA0KPiA+ID4gPiDCoGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9lbnZfYWJz dHJhY3Rpb25fbGF5ZXIucnN0IHzCoMKgwqAyICstDQo+ID4gPiA+IMKgZHJpdmVycy9tZW1wb29s L3JpbmcvTWFrZWZpbGXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKg wqAxICsNCj4gPiA+ID4gwqBkcml2ZXJzL21lbXBvb2wvcmluZy9tZXNvbi5idWlsZMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqDCoDIgKw0KPiA+ID4gPiDCoGRyaXZlcnMvbWVt cG9vbC9yaW5nL3J0ZV9tZW1wb29sX3JpbmcuY8KgwqDCoMKgwqDCoMKgwqDCoHzCoMKgNTggKyst DQo+ID4gPiA+IMKgbGliL2xpYnJ0ZV9ldmVudGRldi9ydGVfZXZlbnRfcmluZy5owqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgfMKgwqDCoDIgKy0NCj4gPiA+ID4gwqBsaWIvbGlicnRlX3JpbmcvTWFr ZWZpbGXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDC oMKgMyArLQ0KPiA+ID4gPiDCoGxpYi9saWJydGVfcmluZy9ydGVfcmluZy5jwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDcyICsrLQ0KPiA+ID4gPiDCoGxp Yi9saWJydGVfcmluZy9ydGVfcmluZy5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqB8IDU3NA0KPiA+ID4gPiArKysrKysrKysrKysrKysrKysrKysrLS0NCj4gPiA+ ID4gwqBsaWIvbGlicnRlX3JpbmcvcnRlX3JpbmdfZ2VuZXJpY182NC5owqDCoMKgwqDCoMKgwqDC oMKgwqDCoHwgMTUyICsrKysrKysNCj4gPiA+ID4gwqBsaWIvbGlicnRlX3JpbmcvcnRlX3Jpbmdf dmVyc2lvbi5tYXDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoMKgNyArDQo+ID4gPiA+IMKg dGVzdC90ZXN0L3Rlc3RfcmluZy5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgfMKgwqA1NyArKy0NCj4gPiA+ID4gwqB0ZXN0L3Rlc3QvdGVzdF9y aW5nX3BlcmYuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKg wqAxOSArLQ0KPiA+ID4gPiDCoDEyIGZpbGVzIGNoYW5nZWQsIDg3NCBpbnNlcnRpb25zKCspLCA3 NSBkZWxldGlvbnMoLSnCoMKgY3JlYXRlIG1vZGUNCj4gPiA+ID4gMTAwNjQ0IGxpYi9saWJydGVf cmluZy9ydGVfcmluZ19nZW5lcmljXzY0LmgNCj4gPiA+ID4gDQo+ID4gPiA+IC0tDQo+ID4gPiA+ IDIuMTMuNg0KLS0gDQpPbGEgTGlsamVkYWhsLCBOZXR3b3JraW5nIFN5c3RlbSBBcmNoaXRlY3Qs IEFybQ0KUGhvbmUgKzQ2NzA2ODY2MzczLCBTa3lwZSBvbGEubGlsamVkYWhsDQoNCg==