From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70058.outbound.protection.outlook.com [40.107.7.58]) by dpdk.org (Postfix) with ESMTP id 52E295A; Wed, 29 Aug 2018 17:20:16 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tlIYDUtaPemg8fBIkwncrSRTCPGPHV5apc1Wb9stes8=; b=P95PRepxCrIc01Hu8JtN96odcMd0u0I0u76LpPTMPPtoXZr6hltipW58+rRM3vcot/zcVm+oKezWxGAY1cKkwYHi4MdhMjQipxd5Ywfq/RaVxe9XybYIodnafLDYjHtgxyQgSjAJL1w29RGZSJSK26DG8QiBL7TAOucbR/pZw0U= Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com (52.133.41.11) by AM0PR0502MB3763.eurprd05.prod.outlook.com (52.133.47.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1080.17; Wed, 29 Aug 2018 15:20:13 +0000 Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::9db0:7cef:d0e8:7d2]) by AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::9db0:7cef:d0e8:7d2%2]) with mapi id 15.20.1101.007; Wed, 29 Aug 2018 15:20:13 +0000 From: Matan Azrad To: Chas Williams <3chas3@gmail.com> CC: Eric Kinzie , "bluca@debian.org" , "dev@dpdk.org" , Declan Doherty , Chas Williams , "stable@dpdk.org" Thread-Topic: [dpdk-dev] [dpdk-stable] [PATCH v4] net/bonding: per-slave intermediate rx ring Thread-Index: AQHUOj+hWaQ4YaZC0UCW7VMjN5ENnaTM70pggACOagCABChIMIAB93YAgAAULXCAABWUAIABIfOggAHsCwCAAAX/EA== Date: Wed, 29 Aug 2018 15:20:13 +0000 Message-ID: References: <20180816125202.15980-1-bluca@debian.org> <20180816133208.26566-1-bluca@debian.org> <1534933159.5764.107.camel@debian.org> <20180822174316.GA29821@roosta> In-Reply-To: Accept-Language: en-US, he-IL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM0PR0502MB3763; 6:lJQtdNkzTWxBigaC9dAMJwBbHw3pkyQoNWgbKLtV25whvk1a8Ib+2vzWAbFpjKh6yFPcq/M5ksd/No8gKGSQcCM0kb8DjIBDKW5uxwK1OQW896kkoX4vGV4HEgvGFcII4ulyciEgEYYt58PMSxIxWcLtzo9aSaVzyMO25RieSPCCJiVbzdEQZM8nlnxcq3OUX+w7J6IJV/5ydgk9ehsT/Bxz8s0C7HEZIex0EOZEtl3bjJdMEDmoK8Gs7yRE0lUs++dkw0TIhNf+H3TFz8HyqVF1isRXJBCPpjTVyIR/kiZDqf5oB+8ET/b3ZvAY4Jeg665UQ4pxKCf5tf5vSDBpCUCIbQXraK6tmNk/jv3x6fLBa5shugtwQpr6oifKxvuskEv4gKC5MYPzaz1s5c+T0/7VmviGVgyOcvU1kLRkXXV9IXaJFRKkeCxxnYFZLhgI7/NM6K83aFCTpPv8qNnm3Q==; 5:Qo9qw10t/z5V+WJirNO8eX8VWvbrO9rB/bsa3/YhlevWk98c4W4mucKozh4RrzfVm6JOybvcmDySwhnAjMVewKOfSdqjp0Yv3/a9EECdHoeSvPhK2MphrjphvTgiHvO7DK9vEVy8thU3Ks0I85my/uK4JH1rcNilDFpdGLI3fBA=; 7:kUOWUWhXjLlpBSqPH3sC+A5EcIvW1ej5W+D2lDOOLPBwOzSA50jPC7HQIxWFWRlg1KljQFPznIHb++ac/rwhmsDiitEcsXh8hCgJsgqPuJeaLrHjdrvuoxi/bH0fhu/Tqx+/BvEH9r5EliUnPmnuYzYXSuN6TmqR5uWzwiy2KSI43l6LW+VNk9sZPOlakkLXFH3EK9YsJwt+c3aT+HHVIEhVpXcEpGWCApXUyvNgEU7PjkgVyJhe9KTzan7mMTa5 x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 3bdaa481-acd3-4324-4492-08d60dc2eb1c x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(5600074)(711020)(4618075)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(2017052603328)(7153060)(7193020); SRVR:AM0PR0502MB3763; x-ms-traffictypediagnostic: AM0PR0502MB3763: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(278428928389397)(17755550239193); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231311)(944501410)(52105095)(10201501046)(3002001)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123562045)(20161123558120)(201708071742011)(7699016); SRVR:AM0PR0502MB3763; BCL:0; PCL:0; RULEID:; SRVR:AM0PR0502MB3763; x-forefront-prvs: 077929D941 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(376002)(136003)(346002)(366004)(39860400002)(199004)(189003)(25786009)(2900100001)(102836004)(8676002)(53936002)(55016002)(33656002)(9686003)(3846002)(6436002)(6116002)(39060400002)(68736007)(229853002)(6246003)(81156014)(6506007)(106356001)(8936002)(81166006)(54906003)(97736004)(74316002)(76176011)(11346002)(6916009)(105586002)(5660300001)(66066001)(7736002)(305945005)(5250100002)(316002)(186003)(4326008)(99286004)(486006)(256004)(7696005)(93886005)(2906002)(446003)(26005)(476003)(478600001)(14454004)(86362001)(551984002)(1411001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR0502MB3763; H:AM0PR0502MB4019.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: GFkLm+njpvmJVvKhME47ZCtpa5w9gkvzunsetA5xxuMChk6SPqKh+Ss7i3tD09/6HHZ7r7TxIpmR1j6nzuL0qTyqJ1rM373ToijXPy+SU5BJvQZFlHUth66NezPagZdayXcskB2UsIEzuu7PiaI0JNysumDP+Wpw5ka9dglIBqHIrElF7qZDRM+aYcuC+3+6JhgHpBJYvZPrV0wItLSPRDgYyJS+k9QlGItYwEOkdCrYAuRpkWEd5s79bO/T24Ylh9W1hUxJko+nOPetPr6S1SMs/pqUTcL6OltbyYK2wuXYrAMjo4CzuRa1aeforuJ+QQ09KIoKBbMmnehJTnfwI8TIcVwPiiUJ/yKb4yUQ6Sc= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3bdaa481-acd3-4324-4492-08d60dc2eb1c X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2018 15:20:13.7568 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3763 Subject: Re: [dpdk-dev] [dpdk-stable] [PATCH v4] net/bonding: per-slave intermediate rx 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: Wed, 29 Aug 2018 15:20:16 -0000 DQoNCkZyb206IENoYXMgV2lsbGlhbXMNCj5PbiBUdWUsIEF1ZyAyOCwgMjAxOCBhdCA1OjUxIEFN IE1hdGFuIEF6cmFkIDxtYWlsdG86bWF0YW5AbWVsbGFub3guY29tPiB3cm90ZToNCj4NCj4NCj5G cm9tOiBDaGFzIFdpbGxpYW1zDQo+Pk9uIE1vbiwgQXVnIDI3LCAyMDE4IGF0IDExOjMwIEFNIE1h dGFuIEF6cmFkIDxtYWlsdG86bWFpbHRvOm1hdGFuQG1lbGxhbm94LmNvbT4gd3JvdGU6DQo+PHNu aXA+DQo+Pj4+QmVjYXVzZSByaW5ncyBhcmUgZ2VuZXJhbGx5IHF1aXRlIGVmZmljaWVudC4NCj4+ Pg0KPj4+QnV0IHlvdSBhcmUgdXNpbmcgYSByaW5nIGluIGFkZGl0aW9uIHRvIHJlZ3VsYXIgYXJy YXkgbWFuYWdlbWVudCwgaXQgbXVzdCBodXJ0IHBlcmZvcm1hbmNlIG9mIHRoZSBib25kaW5nIFBN RA0KPj4+KG1lYW5zIHRoZSBib25kaW5nIGl0c2VsZiAtIG5vdCB0aGUgc2xhdmVzIFBNRHMgd2hp Y2ggYXJlIGNhbGxlZCBmcm9tIHRoZSBib25kaW5nKQ0KPj4NCj4+SXQgYWRkcyBsYXRlbmN5Lg0K Pg0KPkFuZCBieSB0aGF0IGh1cnRzIHRoZSBhcHBsaWNhdGlvbiBwZXJmb3JtYW5jZSBiZWNhdXNl IGl0IHRha2VzIG1vcmUgQ1BVIHRpbWUgaW4gdGhlIGJvbmRpbmcgUE1ELg0KPg0KPk5vLCBhcyBJ IHNhaWQgYmVmb3JlIGl0IHRha2VzIF9sZXNzXyBDUFUgdGltZSBpbiB0aGUgYm9uZGluZyBQTUQN Cj5iZWNhdXNlIHdlIHVzZSBhIG1vcmUgb3B0aW1hbCByZWFkIGZyb20gdGhlIHNsYXZlcy4NCg0K RWFjaCBwYWNrZXQgcG9pbnRlciBzaG91bGQgYmUgY29waWVkIG1vcmUgMiB0aW1lcyBiZWNhdXNl IG9mIHRoaXMgcGF0Y2ggKyBzb21lIG1hbmFnZW1lbnQodGhlIHJpbmcgb3ZlcmhlYWQpDQpTbyBp biB0aGUgYm9uZGluZyBjb2RlIHlvdSBsb3NlIHBlcmZvcm1hbmNlLg0KDQo+DQo+Pkl0IGluY3Jl YXNlcyBwZXJmb3JtYW5jZSBiZWNhdXNlIHdlIHNwZW5kIGxlc3MgQ1BVIHRpbWUgcmVhZGluZyBm cm9tIHRoZSBQTURzLg0KPg0KPlNvLCBpdCdzIGhhY2sgaW4gdGhlIGJvbmRpbmcgUE1EIHRvIGlt cHJvdmUgc29tZSBzbGF2ZXMgY29kZSBwZXJmb3JtYW5jZSBidXQgaHVydCB0aGUgYm9uZGluZyBj b2RlIHBlcmZvcm1hbmNlLA0KPk92ZXIgYWxsIHRoZSBwZXJmb3JtYW5jZSB3ZSBnYWluIGZvciB0 aG9zZSBzbGF2ZXMgaW1wcm92ZXMgdGhlIGFwcGxpY2F0aW9uIHBlcmZvcm1hbmNlIG9ubHkgd2hl biB3b3JraW5nIHdpdGggdGhvc2Ugc2xhdmVzLiANCj5CdXQgbWF5IGh1cnQgdGhlIGFwcGxpY2F0 aW9uIHBlcmZvcm1hbmNlIHdoZW4gd29ya2luZyB3aXRoIG90aGVyIHNsYXZlcy4NCj4NCj5XaGF0 IGlzIHlvdXIgZXZpZGVuY2UgdGhhdCBpcyBodXJ0cyBib25kaW5nIHBlcmZvcm1hbmNlP8KgIFlv dXINCj5hcmd1bWVudCBpcyBwdXJlbHkgdGhlb3JldGljYWwuDQpZZXMsIHdlIGNhbm5vdCB0ZXN0 IGFsbCB0aGUgc2NlbmFyaW9zIGNyb3NzIHRoZSBQTURzLg0KDQo+wqAgSSBjb3VsZCBlYXNpbHkg YXJndWUgdGhhbiBldmVuIGZvciBub24tdmVjdG9yaXplZCBQTURzIHRoZXJlIGlzIGEgcGVyZm9y bWFuY2UgZ2FpbiBiZWNhdXNlIHdlDQo+c3BlbmQgbGVzcyB0aW1lIHN3aXRjaGluZyBiZXR3ZWVu IFBNRHMuDQoNCkJ1dCBzcGVuZCBtb3JlIHRpbWUgaW4gdGhlIGJvbmRpbmcgcGFydC4NCg0KwqA+ IElmIHlvdSBhcmUgZ29pbmcgdG8gcmVhZCBmcm9tIGEgUE1EIHlvdSBzaG91bGQgYXR0ZW1wdCB0 byByZWFkIGFzIG11Y2ggYXMgcG9zc2libGUuIEl0J3MNCj5leHBlbnNpdmUgdG8gcmVhZCB0aGUg Y2FyZHMgcmVnaXN0ZXJzIGFuZCBwZXJmb3JtIHRoZSBxdWV1ZQ0KPm1hbmlwdWxhdGlvbnMuDQoN CllvdSBkbyBpdCBhbnl3YXkuDQoNClRoZSBjb250ZXh0IGNoYW5naW5nIGlzIGV4cGVuc2l2ZSBi dXQgYWxzbyB0aGUgZXh0cmEgY29waWVzIHBlciBwYWNrZXQgYW5kIHRoZSByaW5nIG1hbmFnZW1l bnQuDQoNCldlIGhhdmUgaGVyZSB0cmFkZW9mZiB0aGF0IG1heSBiZSBhZmZlY3QgZGlmZmVyZW50 bHkgZm9yIG90aGVyIHNjZW5hcmlvcy4NCg0KPg0KPj7CoCBUaGlzIG1lYW5zIHdlIGhhdmUgbW9y ZSBDUFUgdG8gdXNlIGZvcg0KPj5wb3N0IHByb2Nlc3NpbmcgKGkuZS4gcm91dGluZykuDQo+DQo+ DQo+DQo+Pj4+Qm9uZGluZyBpcyBpbiBhIG1pZGRsZSBncm91bmQgYmV0d2VlbiBhcHBsaWNhdGlv biBhbmQgUE1ELg0KPj4+WWVzLg0KPj4+PldoYXQgYm9uZGluZyBpcyBkb2luZywgbWF5IG5vdCBp bXByb3ZlIGFsbCBhcHBsaWNhdGlvbnMuDQo+Pj5ZZXMsIGJ1dCBpdCBjYW4gYmUgc29sdmVkIHVz aW5nIHNvbWUgYm9uZGluZyBtb2Rlcy4NCj4+Pj4gSWYgdXNpbmcgYSByaW5nIHRvIGJ1ZmZlciB0 aGUgdmVjdG9yaXplZCByZWNlaXZlIHJvdXRpbmVzLCBpbXByb3ZlcyB5b3VyIHBhcnRpY3VsYXIg YXBwbGljYXRpb24sDQo+Pj4+dGhhdCdzIGdyZWF0LsKgDQo+Pj5JdCBtYXkgYmUgbm90IGdyZWF0 IGFuZCBldmVuIGJhZCBmb3Igc29tZSBvdGhlciBQTURzIHdoaWNoIGFyZSBub3QgdmVjdG9yb3Jp emVkLg0KPj4+DQo+Pj4+IEhvd2V2ZXIsIEkgZG9uJ3QgdGhpbmsgSSBjYW4gc2F5IHRoYXQgaXQg d291bGQgaGVscCBhbGwNCj4+Pj5hcHBsaWNhdGlvbnMuwqAgQXMgeW91IHBvaW50IG91dCwgdGhl cmUgaXMgb3ZlcmhlYWQgYXNzb2NpYXRlZCB3aXRoDQo+Pj4+YSByaW5nLg0KPj4+WWVzLg0KPj4+ PkJvbmRpbmcncyByZWNlaXZlIGJ1cnN0IGlzbid0IGVzcGVjaWFsbHkgZWZmaWNpZW50IChpbiBt b2RlIDQpLg0KPj4+DQo+Pj5XaHk/DQo+Pj4NCj4+Pkl0IG1ha2VzIGEgY29weSBvZiB0aGUgc2xh dmVzLCBoYXMgYSBmYWlyIGJpdCBvZiBzdGFjayB1c2FnZSwgDQo+Pj5uZWVkcyB0byBjaGVjayB0 aGUgc2xhdmUgc3RhdHVzLCBhbmQgbmVlZHMgdG8gZXhhbWluZSBlYWNoDQo+Pj5wYWNrZXQgdG8g c2VlIGlmIGl0IGlzIGEgc2xvdyBwcm90b2NvbCBwYWNrZXQuwqAgU28gZWFjaA0KPj4+cGFja2V0 IGlzIGVzc2VudGlhbGx5IHJlYWQgdHdpY2UuwqAgVGhlIGZhc3QgcXVldWUgY29kZSBmb3IgbW9k ZSA0DQo+Pj5hdm9pZHMgc29tZSBvZiB0aGlzIChhbmQgcHJvYmFibHkgaWdub3JlcyBjaGVja2lu ZyBjb2xsZWN0aW5nDQo+Pj5pbmNvcnJlY3RseSkuwqAgSWYgeW91IGZpbmQgYSBzbG93IHByb3Rv Y29sIHBhY2tldCwgeW91IG5lZWQgdG8NCj4+PmNob3AgaXQgb3V0IG9mIHRoZSBhcnJheSB3aXRo IG1lbW1vdmUgZHVlIHRvIG92ZXJsYXAuDQo+Pg0KPj5BZ3JlZS4NCj4+U28gdG8gaW1wcm92ZSB0 aGUgYm9uZGluZyBwZXJmb3JtYW5jZSB5b3UgbmVlZCB0byBvcHRpbWl6ZSB0aGUgYWJvdmVzIHBy b2JsZW1zLg0KPj5UaGVyZSBpcyBubyBjb25uZWN0aW9uIHRvIHRoZSByaW5nLg0KPj4NCj4+QW5k IGFzIEkgaGF2ZSBkZXNjcmliZWQgbnVtZXJvdXMgdGltZXMsIHRoZXNlIHByb2JsZW1zDQo+PmNh bid0IGJlIGVhc2lseSBmaXhlZCBhbmQgcHJlc2VydmUgdGhlIGV4aXN0aW5nIEFQSS4NCj4NCj5T b21ldGltZXMgd2UgbmVlZCB0byB3b3JrIGhhcmRlciB0byBzZWUgYSBnYWluIGZvciBhbGwuDQo+ V2Ugc2hvdWxkIG5vdCBhcHBseSBhIHBhdGNoIGJlY2F1c2UgaXQgaXMgZWFzeSBhbmQgc2hvdyBh IGdhaW4gZm9yIHNwZWNpZmljIHNjZW5hcmlvcy4NCj4NCj4+Pj4gQm9uZGluZyBiZW5lZml0cyBm cm9tIGJlaW5nIGFibGUgdG8gcmVhZCBhcyBtdWNoIGFzIHBvc3NpYmxlICh3aXRoaW4gbGltaXRz IG9mDQo+Pj4+Y291cnNlLCBsYXJnZSByZWFkcyB3b3VsZCBibG93IG91dCBjYWNoZXMpIGZyb20g ZWFjaCBzbGF2ZS4NCj4+Pg0KPj4+VGhlIHNsYXZlcyBQTURzIGNhbiBiZW5lZml0cyBpbiB0aGUg c2FtZSB3YXkuDQo+Pj4NCj4+Pj5JdCBjYW4ndCByZXR1cm4gYWxsIHRoYXQgZGF0YSB0aG91Z2gg YmVjYXVzZSBhcHBsaWNhdGlvbnMgdGVuZCB0byB1c2UgdGhlwqANCj4+Pj5idXJzdCBzaXplIHRo YXQgd291bGQgYmUgZWZmaWNpZW50IGZvciBhIHR5cGljYWwgUE1ELg0KPj4+DQo+Pj5XaGF0IGlz IHRoZSBwcmVmZXJyZWQgYnVyc3Qgc2l6ZSBvZiB0aGUgYm9uZGluZz8gTWF5YmUgdGhlIGFwcGxp Y2F0aW9uIHNob3VsZCB1c2UgaXQgd2hlbiB0aGV5IGFyZSB1c2luZyBib25kaW5nLg0KPj4+DQo+ Pj5UaGUgcHJlZmVycmVkIGJ1cnN0IHNpemUgZm9yIGJvbmRpbmcgd291bGQgYmUgdGhlIHN1bSBv ZiBhbGwgdGhlDQo+Pj5zbGF2ZXMgaWRlYWwgcmVhZCBzaXplLsKgIEhvd2V2ZXIsIHRoYXQncyBu b3QgbGlrZWx5IHRvIGJlIHNpbXBsZQ0KPj4+c2luY2UgbW9zdCBhcHBsaWNhdGlvbnMgZGVjaWRl IGVhcmx5IHRoZSBzaXplIGZvciB0aGUgcmVhZC93cml0ZQ0KPj4+YnVyc3Qgb3BlcmF0aW9ucy4N Cj4+PsKgDQo+Pj4+QW4gYWx0ZXJuYXRpdmUgbWlnaHQgYmUgdG8gYXNrIGJvbmRpbmcgYXBwbGlj YXRpb25zIHRvIHNpbXBseSBpc3N1ZSBsYXJnZXIgcmVhZHMgZm9yDQo+Pj4+Y2VydGFpbiBtb2Rl cy7CoCBUaGF0J3MgcHJvYmFibHkgbm90IGFzIGVhc3kgYXMgaXQgc291bmRzIGdpdmVuIHRoZQ0K Pj4+PndheSB0aGF0IHRoZSBidXJzdCBsZW5ndGggZWZmZWN0cyBtdWx0aXBsZXhpbmcuDQo+Pj4N Cj4+PkNhbiB5b3UgZXhwbGFpbiBpdCBtb3JlPw0KPj4+DQo+Pj5BIGxvbmdlciBidXJzdCBzaXpl IG9uIG9uZSBQTUQgd2lsbCB0ZW5kIHRvIGZhdm9yIHRoYXQgUE1EDQo+Pj5vdmVyIG90aGVycy7C oCBJdCB3aWxsIGZpbGwgeW91ciBpbnRlcm5hbCBxdWV1ZXMgd2l0aCBtb3JlwqANCj4+Pm9mIGl0 cyBwYWNrZXRzLg0KPj4NCj4+QWdyZWUsIGl0J3MgYWJvdXQgZmFpcm5lc3MuDQo+PsKgDQo+Pj4N Cj4+Pj5Bbm90aGVyIHNvbHV0aW9uIG1pZ2h0IGJlIGp1c3QgYWx0ZXJuYXRpdmVseSBwb2xsIHRo ZSBpbmRpdmlkdWFsDQo+Pj4+c2xhdmVzIG9uIGVhY2ggcnggYnVyc3QuwqAgQnV0IHRoYXQgbWVh bnMgeW91IG5lZWQgdG8gcG9sbCBhdCBhDQo+Pj4+ZmFzdGVyIHJhdGUuwqAgRGVwZW5kaW5nIG9u IHlvdXIgYXBwbGljYXRpb24sIHlvdSBtaWdodCBub3QgYmUNCj4+Pj5hYmxlIHRvIGRvIHRoYXQu DQo+Pg0KPj4+QWdhaW4sIGNhbiB5b3UgYmUgbW9yZSBwcmVjaXNlIGluIHRoZSBhYm92ZSBleHBs YW5hdGlvbj8NCj4+Pg0KPj4+SWYgdGhlIGFwcGxpY2F0aW9uIGtub3dzIHRoYXQgdGhlcmUgYXJl IHR3byBzbGF2ZXMgYmFja2luZw0KPj4+YSBib25kaW5nIGludGVyZmFjZSwgdGhlIGFwcGxpY2F0 aW9uIGNvdWxkIGp1c3QgcmVhZCB0d2ljZQ0KPj4+ZnJvbSB0aGUgYm9uZGluZyBpbnRlcmZhY2Us IGtub3dpbmcgdGhhdCB0aGUgYm9uZGluZ8KgDQo+Pj5pbnRlcmZhY2UgaXMgZ29pbmcgdG8gYWx0 ZXJuYXRlIGJldHdlZW4gdGhlIHNsYXZlcy7CoCBCdXQNCj4+PnRoaXMgcmVxdWlyZXMgdGhlIGFw cGxpY2F0aW9uIHRvIGtub3cgdGhpbmdzIGFib3V0IHRoZSBib25kaW5nDQo+Pj5QTUQsIGxpa2Ug dGhlIG51bWJlciBvZiBzbGF2ZXMuDQo+Pg0KPj5XaHkgc2hvdWxkIHRoZSBhcHBsaWNhdGlvbiBw b2xsIHR3aWNlPw0KPj5Qb2xsIHNsYXZlIDAsIHRoYW4gcHJvY2VzcyBpdCdzIHBhY2tldHMsIHBv bGwgc2xhdmUgMSB0aGFuIHByb2Nlc3MgaXRzIHBhY2tldHMuLi4NCj4+V2hhdCBpcyB0aGUgcHJv YmxlbT8NCj4+DQo+PkJlY2F1c2UgbGV0J3Mgc2F5IHRoYXQgZWFjaCBzbGF2ZSBpcyAxMEcgYW5k IHlvdSBhcmUgdXNpbmcNCj4+DQo+PmxpbmsgYWdncmVnYXRpb24gd2l0aCB0d28gc2xhdmVzLsKg IElmIHlvdSBoYXZlIHR1bmVkIHlvdXINCj4+DQo+PmFwcGxpY2F0aW9uIG9uIHRoZSBhc3N1bXB0 aW9uIHRoYXQgYSBQTUQgaXMgYXBwcm94aW1hdGVseQ0KPj4xMEcsIHRoZW4geW91IGFyZSBnb2lu ZyB0byBiZSB1bmRlciBwb2xsaW5nIHRoZSBib25kaW5nIFBNRC4NCj4+Rm9yIHRoZSBhYm92ZSB0 byB3b3JrLCB5b3UgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgYXBwbGljYXRpb24NCj4+aXMgcG9s bGluZyBzdWZmaWNpZW50bHkgdG8ga2VlcCB1cC4NCj4NCj5CdXQgZWFjaCBwb2xsIHdpbGwgYmUg c2hvcnRlciwgbm8gc2xhdmVzIGxvb3BzLCBvbmx5IG9uZSBzbGF2ZSBjYWxsLg0KPg0KPkJ1dCB5 b3Ugc3RpbGwgbmVlZCB0byBwb2xsIHRoZSBib25kaW5nIFBNRCBOIHRpbWVzIGFzDQo+ZmFzdCB3 aGVyZSBOIGlzIHRoZSBudW1iZXIgb2Ygc2xhdmVzLsKgIFRoZSAic2NoZWR1bGVyIg0KPmluIHRo ZSBhcHBsaWNhdGlvbiBtYXkgbm90IGJlIGF3YXJlIG9mIHRoYXQuwqAgVGhhdCB3YXMNCj4oYXBw YXJlbnRseSkgdGhlIHBvaW50IG9mIHRoZSB3YXkgdGhlIGN1cnJlbnQgYm9uZGluZw0KPlBNRC7C oCBJdCBoaWRlcyBldmVyeXRoaW5nIGZyb20gdGhlIGFwcGxpY2F0aW9uLg0KDQpTb3JyeSwgSSBk b24ndCBzdXJlIEkgdW5kZXJzdGFuZCB5b3UgaGVyZS4NCkFsc28gaGVyZSB3ZSBoYXZlIHRyYWRl b2ZmOg0KUmVhZCBmdWxsIGJ1cnN0IGZyb20gZWFjaCBzbGF2ZSArIGxlc3MgYm9uZGluZyBjb2Rl IHBlciBidXJzdA0KYWdhaW5zdA0KTW9yZSBib25kaW5nIGNhbGxzKGl0IGlzIG5vdCBpbiBOIHJl bGF0aW9uIGl0IGRlcGVuZHMgaW4gaGVhdnkgYW5kIHRoZSBidXJzdCBzaXplKS4NCsKgDQoNCj4+ Pj7CoCBXZSBjYW4gYXZvaWQgdGhpcyBzY2hlZHVsaW5nIG92ZXJoZWFkIGJ5IGp1c3QNCj4+Pj5k b2luZyB0aGUgZXh0cmEgcmVhZHMgaW4gYm9uZGluZyBhbmQgYnVmZmVyaW5nIGluIGEgcmluZy4N Cj4+Pj4NCj4+Pj5TaW5jZSBib25kaW5nIGlzIGdvaW5nIHRvIGJlIGJ1ZmZlcmluZyBldmVyeXRo aW5nIGluIGEgcmluZywNCj4+Pg0KPj4+PyBJIGRvbid0IGZhbWlsaWFyIHdpdGggaXQuIEZvciBu b3cgSSBkb24ndCB0aGluayB3ZSBuZWVkIGEgcmluZy4NCj4+Pg0KPj4+V2UgaGF2ZSBzb21lIGVt cGlyaWNhbCB0ZXN0aW5nIHRoYXQgc2hvd3MgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzLg0KPj4+ SG93IGRvIHlvdSBleHBsYWluIHRoaXM/wqAgDQo+Pg0KPj5Zb3UgYXJlIHVzaW5nIGEgaGFjayBp biBib25kaW5nIHdoaWNoIGh1cnQgdGhlIGJvbmRpbmcgYnV0IGltcHJvdmVzIHRoZSB2ZWN0b3Jp emVkIFBNRCB5b3UgdXNlLg0KPj4NCj4+PlJpbmdzIGFyZW4ndCBpbmVmZmljaWVudC4NCj4+DQo+ Pk9ubHkgd2hlbiB0aGVyZSBpcyBhIG5lZWQgdG8gdXNlIGl0Lg0KPj4NCj4+SSBiZWxpZXZlIHdl IGhhdmUgaWRlbnRpZmllZCBhIG5lZWQuDQo+PsKgDQo+Pg0KPj4+VGhlcmUncyBzaWduaWZpY2Fu dCBvdmVyaGVhZCBvZiBjYWxsaW5nIHRoZSByeCBidXJzdCByb3V0aW5lIG9uIGFueSBQTUQuDQo+ Pj5Zb3UgbmVlZCB0byBnZXQgdGhlIFBNRCBkYXRhIHN0cnVjdHVyZXMgaW50byBsb2NhbCBtZW1v cnkuDQo+Pg0KPj5ZZXMuDQo+Pg0KPj4+UmVhZGluZyBhcyBtdWNoIGFzIHBvc3NpYmxlIG1ha2Vz IHNlbnNlLg0KPj4NCj4+QWdyZWUuDQo+Pg0KPj4+IENvdWxkIHlvdSBnZW5lcmFsbHkgZG8gdGhp cyBmb3IgYWxsIFBNRHM/wqAgWWVzLCBidXQgdGhlIHJpbmcgYWRkcyBsYXRlbmN5LsKgIExhdGVu Y3kNCj4+PnRoYXQgaXNuJ3QgYW4gaXNzdWUgZm9yIHRoZSBib25kaW5nIFBNRCBiZWNhdXNlIG9m IGFsbCB0aGUNCj4+Pm90aGVyIGluZWZmaWNpZW5jaWVzIChmb3IgbW9kZSA0KS4NCj4+DQo+PkVu bGFyZ2luZyB0aGUgYm9uZGluZyBsYXRlbmN5IGJ5IHRoYXQgd2F5IG1ha2VzIHNvbWUgdmVjdG9y aXplZCBzbGF2ZSBQTURzIGhhcHB5IGFuZCBtYWtlcyB0aGUgYm9uZGluZyB3b3JzdCANCj4+Zm9y IG90aGVyIHNsYXZlcyBQTURzIC0gdGhpcyBpcyBub3QgYSBnb29kIGlkZWEgdG8gcHV0IGl0IHVw c3RyZWFtLg0KPj4NCj4+SW1wcm92aW5nIHRoZSBvdGhlciBwcm9ibGVtcyBpbiB0aGUgYm9uZGlu ZyhyZWR1Y2UgdGhlIGJvbmRpbmcgbGF0ZW5jeSkgd2lsbCBkbyB0aGUgam9iIGZvciB5b3UgYW5k IGZvciBvdGhlcnMuDQo+Pg0KPj5MYXRlbmN5IGlzIG5vdCB0aGUgaXNzdWUgd2l0aCBib25kaW5n LsKgIFRoZSBpc3N1ZSB3aXRoIGJvbmRpbmcNCj4+aXMgdGhlIG92ZXJoZWFkIGFzc29jaWF0ZWQg d2l0aCBtYWtpbmcgYW4gcnggYnVyc3QgY2FsbC7CoCBXZQ0KPj5hZGQgbGF0ZW5jeSAodmlhIHJp bmdzKSB0byBtYWtlIHBhcnQgb2YgdGhlIGJvbmRpbmcgZHJpdmVyIG1vcmUNCj4+ZWZmaWNpZW50 Lg0KPj4NCj4+QWdhaW4sIEkgc3VzcGVjdCBpdCBldmVuIGhlbHBzIHRoZSBub24tdmVjdG9yaXpl ZCBQTURzLg0KPsKgPkNhbGxpbmcgYSBQTUQncyByeCBidXJzdCByb3V0aW5lIGlzIGNvc3RseSBh bmQgd2UgYXJlIHN3aXRjaGluZyBiZXR3ZWVuDQo+PlBNRCdzIGluc2lkZSB0aGUgYm9uZGluZyBk cml2ZXIuwqAgQm9uZGluZyBpcyBoYWxmd2F5IGJldHdlZW4gYW4NCj4+YXBwbGljYXRpb24gYW5k IGEgUE1ELsKgIFdoYXQgd2UgYXJlIGRvaW5nIGluIHRoZSBib25kaW5nIFBNRCBpcw0KPj53aGF0 IGFuIGFwcGxpY2F0aW9uIHdvdWxkIHR5cGljYWxseSBkby7CoCBCdXQgaW5zdGVhZCBvZiBmb3Jj aW5nDQo+PmFsbCB0aGUgYm9uZGluZyB1c2VycyB0byBkbyB0aGlzLCB3ZSBhcmUgZG9pbmcgaXQg Zm9yIHRoZW0uDQo+DQo+Tm90IGFncmVlLg0KPlRoZSBvdmVyaGVhZCBpbiBib25kaW5nIG1heSBi ZSBjcml0aWNhbCBmb3Igc29tZSBvdGhlciBQTURzXHNjZW5hcmlvLg0KPg0KPlRoZSBvdmVyaGVh ZCBpcyBib25kaW5nIGlzIHVuZGVzaXJhYmxlLsKgIEl0J3Mgbm90IGVhc3kgdG8gYWRkcmVzcw0K PmJlY2F1c2Ugb2YgdGhlIGluaXRpYWwgZGVzaWduIGdvYWxzLg0KPsKgDQo+DQo+VG8gc3VtbWFy aXplOg0KPldlIGFyZSBub3QgYWdyZWUuDQo+DQo+Qm90dG9tIGxpbmUgaW4gbXkgc2lkZSwNCj5J dCBpcyBub3QgYSBnb29kIElkZWEgdG8gYWRkIG92ZXJoZWFkIGluIHRoZSBib25kaW5nIFBNRCB3 aGljaCBpcyBhIGdlbmVyaWMgUE1EIGp1c3QgdG8gZ2V0IGdhaW4gZm9yIHNvbWUgc3BlY2lmaWMg c2NlbmFyaW9zIGluIHNvbWUgc3BlY2lmaWMgUE1EcyB3aGlsZSBmb3Igb3RoZXIgc2NlbmFyaW9z XFBNRHMgaXQgaXMgYmFkLg0KPg0KPllvdSBhcmUgbWFraW5nIHNvbWUgYXNzdW1wdGlvbnMgd2hp Y2ggYXJlIHNpbXBseSBub3QgdmFsaWQuDQo+Qk9uZGluZyBpcyBfbm90XyBhIGdlbmVyaWMgUE1E Lg0KV2hhdD8NClNob3VsZCB0aGUgYm9uZGluZyBiZSBnb29kIG9ubHkgZm9yIHNwZWNpZmljIHNj ZW5hcmlvcyB3aXRoIHNwZWNpZmljIFBNRHM/DQpJZiBubywgaXQgaXMgZ2VuZXJpYy4NCg0KPsKg IEFzIGRpc2N1c3NlZCBhYm92ZSwgYm9uZGluZw0KPmlzIHNvbWV3aGVyZSBiZXR3ZWVuIGFwcGxp Y2F0aW9uIGFuZCBQTUQuDQpZZXMuDQoNCj7CoCBUaGUgY2hvaWNlcyBtYWRlDQo+Zm9yIGJvbmRp bmcgd2hlcmUgdG8gbWFrZSBpdCBlYXN5IHRvIGludGVncmF0ZSBpbnRvIGFuIGV4aXN0aW5nDQo+ YXBwbGljYXRpb24gd2l0aCB0aGUgYXBwbGljYXRpb24gaGF2aW5nIHRvIGtub3cgYW55dGhpbmcg YWJvdXQNCj5ib25kaW5nLg0KVGhlIGJvbmRpbmcgc2hvdWxkIGJlIGdlbmVyaWMgYXQgbGVhc3Qg ZnJvbSB0aGUgbmV4dCBwZXJzcGVjdGl2ZXM6DQpEaWZmZXJlbnQgUE1Ecy4NCkRpZmZlcmVudCBh cHBsaWNhdGlvbiBzY2VuYXJpb3MuDQoNCg0KDQoNCg0KPg0KPk1hdGFuLiANCj4NCj4NCj4NCj4N Cg==