From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0113FA0350; Wed, 1 Jul 2020 14:21:41 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4F6C21C1E3; Wed, 1 Jul 2020 14:21:41 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 87DE11C1C0 for ; Wed, 1 Jul 2020 14:21:39 +0200 (CEST) IronPort-SDR: xV/2SDRSuhxNqgGA4CBH323MyA6Gubn8OO0ehyvZWv1oWNzmrF8k6J/fx2Xg51ArPFQJSHfTHr mEA27PoaZ/Eg== X-IronPort-AV: E=McAfee;i="6000,8403,9668"; a="146552523" X-IronPort-AV: E=Sophos;i="5.75,300,1589266800"; d="scan'208";a="146552523" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Jul 2020 05:21:38 -0700 IronPort-SDR: oTyd6WrfCGmbaNH1aIV8+83MbrCnZAMC+v0tZfJuy4MJWKVv9s/oNJjddIOlUdQgA7EU271kJ1 N6D/FlJXz5Tw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,300,1589266800"; d="scan'208";a="321220380" Received: from orsmsx108.amr.corp.intel.com ([10.22.240.6]) by FMSMGA003.fm.intel.com with ESMTP; 01 Jul 2020 05:21:37 -0700 Received: from ORSEDG002.ED.cps.intel.com (10.7.248.5) by ORSMSX108.amr.corp.intel.com (10.22.240.6) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 1 Jul 2020 05:21:37 -0700 Received: from NAM04-CO1-obe.outbound.protection.outlook.com (104.47.45.57) by edgegateway.intel.com (134.134.137.101) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 1 Jul 2020 05:21:37 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RaAZOiQZE1rDGeJiXnGEV/ZBB/MRcUGylM4LgkM797berLdqjbVJhHRXsU9aGa0AMgr6ypD4HcKswvKJ4v8tl6uE73J9AhqwpkEqeB/HHRNR7fdXxosX+PQJc3EAhsUda0q5eMgBOOlbv0RONDHqYNCQQC3kGY6Id4ZWjHmaJ5E3VzKhXBQQwedPEgxuHsAA/tshQNOLx+AgzuMNgjldxR2fzTJdPWgTahfZ+LK2c8hsjseE4fVQ629QAgPX2Dp2XLHEHxPdsC5FifwCIbdp+7Heb8bRn9n/G0gD0+qAw6dwnK5WDZMlOjfBTb+hcM/xfP9dK/DDKVbOyDtmu3Ht/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OSzR2+83aFKAgt4y0JO/KCTw5pglvxoSOPpTLs6zGx0=; b=CC8zV/2xCzHQ6aJSsd1tBNWKkg0xj70qIw9aSJvLkc6pNCodMW2GrheatRAggXra57K/r6IVWsr862M86kQ6KXreuS+m0He9S7/mirAVf8JmAzX1IBtZ7FnQhJmiJPqBNRv9qrrPzOm98s+2aLVAhhM/Nwp/s01KqJwxKpv/raz1sognubt8Rc4qArs9Yc/so6V1329edIPwwMEyu7Cxb6SMtr7yfvSHhteUVQvIoLMKddbD+0zEY0tV5rwDqYvcm0gtUvZSJbPe8ULYz9JtG5g/HiptpjgaZQcRqnN9yLLlc8HEWDHdlaq1Lcnmw0DiDunH4vpeCGKwEq6NWDNWSw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OSzR2+83aFKAgt4y0JO/KCTw5pglvxoSOPpTLs6zGx0=; b=lsyQtqw+LxsUJoSxsILRXe0Ka2wqpg9MuMUlCZ1BrzQ5JobGNrJxpfLQgvWQHMXx46IC31enYjRNUCZ4xJYDHapZBOoY46wdTReFKTJ8bPi7eAf3RIsmUYXmJoqqD/F3NW/hOxOufr4dZ93Y2KvgUlMvRacnXSIH+j+g0NWAQlY= Received: from BYAPR11MB3301.namprd11.prod.outlook.com (2603:10b6:a03:7f::26) by BYAPR11MB3032.namprd11.prod.outlook.com (2603:10b6:a03:8f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3131.21; Wed, 1 Jul 2020 12:21:34 +0000 Received: from BYAPR11MB3301.namprd11.prod.outlook.com ([fe80::f160:29ab:b8f9:4189]) by BYAPR11MB3301.namprd11.prod.outlook.com ([fe80::f160:29ab:b8f9:4189%6]) with mapi id 15.20.3131.027; Wed, 1 Jul 2020 12:21:34 +0000 From: "Ananyev, Konstantin" To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "Honnappa Nagarahalli" , "thomas@monjalon.net" , Jerin Jacob , "jerinj@marvell.com" CC: "dev@dpdk.org" , Olivier Matz , David Christensen , Stephen Hemminger , nd , nd Thread-Topic: [dpdk-dev] [RFC] ring: make ring implementation non-inlined Thread-Index: AQHV/tZzUpwBiYbYokCUOdBtW0b+sKhjaboEgI8A2nCAAH9LsIAAXFlA Date: Wed, 1 Jul 2020 12:21:34 +0000 Message-ID: References: <20200320164138.8510-1-konstantin.ananyev@intel.com> <98CBD80474FA8B44BF855DF32C47DC35C60F05@smartserver.smartshare.dk> <2445314.H8VbNj7W2P@xps> <98CBD80474FA8B44BF855DF32C47DC35C610D9@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35C610D9@smartserver.smartshare.dk> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.2.0.6 authentication-results: smartsharesystems.com; dkim=none (message not signed) header.d=none; smartsharesystems.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.151.183] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b5abd223-da21-450f-4453-08d81db94baa x-ms-traffictypediagnostic: BYAPR11MB3032: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 04519BA941 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3JhUSYm6OLIjcDY2hsF1HCS/QZnUIOU/ldiCrJXoG9wFGkx3BozMz5TCflROxa3c+JPmETQvP27OZ3fsy/eNMtbelADoiyslu07uO/GNMB8KsnBwdGS5DQIJpGpAiE7o3hl5+2Hzxq+OT5J4UGtPKuI+yiH1K/fKPbTJ8jQ27YzlfSSlfnHe6SJJHeoJa90JcOwppxDVwHtClFc4zYkOhnyICHPx/UcK/YTlIXUlhsV1Ojjm/x27Uby6rhjiGpWgW6S3gQyPuYOeEmFD10LRJoQgDdGe5LFfIWLGx9xJEtwcKZPCNTOEA6bYR7gPSI3Mxgysx3yTscuN5r2fj9b29eTJecYGdBpvu+IA2VaeGl7JiZEIW7sky4CBmg6zRcZytWgILEIdzV9O+nox4RxPxQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR11MB3301.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(396003)(376002)(346002)(39860400002)(366004)(136003)(86362001)(4326008)(52536014)(478600001)(9686003)(54906003)(7416002)(316002)(7696005)(110136005)(33656002)(186003)(6506007)(5660300002)(8676002)(66574015)(66446008)(64756008)(66556008)(66476007)(2906002)(66946007)(8936002)(76116006)(83380400001)(26005)(966005)(55016002)(71200400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: +inlqOgPBcxrU3gXlBVTC5kVTJ3p1MYlT7VQRen4x8svmd9/S+DMk159FcYKeLjFoYv1LyvBYE/M7jlG7eUfS+SmHhcA6SAinlDKJ8z9W2toMw5bH7QwQCJ7cpZTV69bE3KTyuAIC1u6xsREFgb41DTKKB0HMRZKxk10UtT+W94WrEYSiVDHQel4chxIHL5ZLGWwV9n/sNzT4rHPY81Mkdm+9s7XkWcIJcL1hrCWjCNKARPhLio1HCNxRs+ZSfN1dzVtwRHUoryMIGW6lY7+dYYOX9CR8GgApO9q8Fl96vfz+wFBAkh8ZLNGfG43IFIlLgi4BmaEQVKKRm1qobwmYgHYVaAmTwtNayXW7ImgGBTQswCXuZb+pan0Os/eC5XohMokYukjj5wTstU0BWNXkAq/6LRKaTg4yYYzdhgA+Ds8+N2C68t9RH0guXeAnHglr6dK7eWZtRaDucE005q1ya5wrfUdLmO7fGnWFMYdpI43Q76HYXwqjDV+tm1H3tEX x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR11MB3301.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b5abd223-da21-450f-4453-08d81db94baa X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Jul 2020 12:21:34.5871 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: QgbFMPdu/Cf/JmZQ/6R3p3VAKGaWMjMgmUhKC+QK4bIzkyWy9RfgX/DOXxFssEfGqp4Vlw8ehFcNPFkXvS3JayA6LT7X3pIV7b7WhOaupmg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB3032 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [RFC] ring: make ring implementation non-inlined 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PiANCj4gPiBGcm9tOiBkZXYgW21haWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxm IE9mIEhvbm5hcHBhDQo+ID4gTmFnYXJhaGFsbGkNCj4gPiBTZW50OiBXZWRuZXNkYXksIEp1bHkg MSwgMjAyMCAxOjE2IEFNDQo+ID4NCj4gPiA8c25pcD4NCj4gPg0KPiA+ID4gU3ViamVjdDogUmU6 IFtkcGRrLWRldl0gW1JGQ10gcmluZzogbWFrZSByaW5nIGltcGxlbWVudGF0aW9uIG5vbi0NCj4g PiBpbmxpbmVkDQo+ID4gPg0KPiA+ID4gMjYvMDMvMjAyMCAwOTowNCwgTW9ydGVuIEJyw7hydXA6 DQo+ID4gPiA+IEZyb206IEplcmluIEphY29iDQo+ID4gPiA+ID4gT24gRnJpLCBNYXIgMjAsIDIw MjAgS29uc3RhbnRpbiBBbmFueWV2IHdyb3RlOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEFz IHdhcyBkaXNjdXNzZWQgaGVyZToNCj4gPiA+ID4gPiA+IGh0dHA6Ly9tYWlscy5kcGRrLm9yZy9h cmNoaXZlcy9kZXYvMjAyMC1GZWJydWFyeS8xNTg1ODYuaHRtbA0KPiA+ID4gPiA+ID4gdGhpcyBS RkMgYWltZWQgdG8gaGlkZSByaW5nIGludGVybmFscyBpbnRvIC5jIGFuZCBtYWtlIGFsbCByaW5n DQo+ID4gPiA+ID4gPiBmdW5jdGlvbnMgbm9uLWlubGluZWQuIEluIHRoZW9yeSB0aGF0IG1pZ2h0 IGhlbHAgdG8gbWFpbnRhaW4NCj4gPiBBQkkNCj4gPiA+ID4gPiA+IHN0YWJpbGl0eSBpbiBmdXR1 cmUuDQo+ID4gPiA+ID4gPiBUaGlzIGlzIGp1c3QgYSBQT0MgdG8gbWVhc3VyZSB0aGUgaW1wYWN0 IG9mIHByb3Bvc2VkIGlkZWEsDQo+ID4gcHJvcGVyDQo+ID4gPiA+ID4gPiBpbXBsZW1lbnRhdGlv biB3b3VsZCBkZWZpbmV0bHkgbmVlZCBzb21lIGV4dHJhIGVmZm9ydC4NCj4gPiA+ID4gPiA+IE9u IElBIGJveCAoU0tYKSByaW5nX3BlcmZfYXV0b3Rlc3Qgc2hvd3MgfjIwLTMwIGN5Y2xlcyBleHRy YQ0KPiA+IGZvcg0KPiA+ID4gPiA+ID4gZW5xdWV1ZStkZXF1ZXVlIHBhaXIuIE9uIHNvbWUgbW9y ZSByZWFsaXN0aWMgY29kZSwgSSBzdXNwZWN0DQo+ID4gPiA+ID4gPiB0aGUgaW1wYWN0IGl0IG1p Z2h0IGJlIGEgYml0IGhpZ2hlci4NCj4gPiA+ID4gPiA+IEZvciBNUC9NQyBidWxrIHRyYW5zZmVy cyBkZWdyYWRhdGlvbiBzZWVtcyBxdWl0ZSBzbWFsbCwgdGhvdWdoDQo+ID4gZm9yDQo+ID4gPiA+ ID4gPiBTUC9TQyBhbmQvb3Igc21hbGwgdHJhbnNmZXJzIGl0IGlzIG1vcmUgdGhlbiBub3RpY2Fi bGUgKHNlZQ0KPiA+IGV4YWN0DQo+ID4gPiA+ID4gPiBudW1iZXJzIGJlbG93KS4NCj4gPiA+ID4g PiA+IEZyb20gbXkgcGVyc3BlY3RpdmUgd2UnZCBwcm9iYWJseSBrZWVwIGl0IGlubGluZWQgZm9y IG5vdyB0bw0KPiA+IGF2b2lkDQo+ID4gPiA+ID4gPiBhbnkgbm9uLWFudGljaXBhdGVkIHBlcmZv bWFuY2UgZGVncmFkYXRpb25zLg0KPiA+ID4gPiA+ID4gVGhvdWdoIGludGVyc3RlZCB0byBzZWUg cGVyZiByZXN1bHRzIGFuZCBvcGluaW9ucyBmcm9tIG90aGVyDQo+ID4gPiA+ID4gPiBpbnRlcmVz dGVkIHBhcnRpZXMuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArMQ0KPiA+ID4NCj4gPiA+IEtvbnN0 YW50aW4sIHRoYW5rIHlvdSBmb3IgZG9pbmcgc29tZSBtZWFzdXJlcw0KPiA+ID4NCj4gPiA+DQo+ ID4gPiA+ID4gTXkgcmVhc29uaW5nIGlzIGEgYml0IGRpZmZlcmVudCwgRFBESyBpcyB1c2luZyBp biBlbWJlZGRlZCBib3hlcw0KPiA+IHRvbw0KPiA+ID4gPiA+IHdoZXJlIHBlcmZvcm1hbmNlIGhh cyBtb3JlIHdlaWdodCB0aGFuIEFCSSBzdHVmZi4NCj4gPiA+ID4NCj4gPiA+ID4gQXMgYSBuZXR3 b3JrIGFwcGxpYW5jZSB2ZW5kb3IgSSBjYW4gY29uZmlybSB0aGF0IHdlIGNlcnRhaW5seSBjYXJl DQo+ID4gPiA+IG1vcmUgYWJvdXQgcGVyZm9ybWFuY2UgdGhhbiBBQkkgc3RhYmlsaXR5Lg0KPiA+ ID4gPiBBQkkgc3RhYmlsaXR5IGlzIGlycmVsZXZhbnQgZm9yIHVzOw0KPiA+ID4gPiBhbmQgQVBJ IGluc3RhYmlsaXR5IGlzIGEgbm9uLXJlY3VycmluZyBlbmdpbmVlcmluZyBjb3N0IGVhY2ggdGlt ZQ0KPiA+IHdlDQo+ID4gPiA+IGNob29zZSB0byBzd2l0Y2ggdG8gYSBuZXcgRFBESyB2ZXJzaW9u LCB3aGljaCB3ZSBvbmx5IGRvIGlmIHdlDQo+ID4gY2Fubm90DQo+ID4gPiA+IGF2b2lkIGl0LCBl LmcuIGR1ZSB0byBuZXcgZHJpdmVycywgc2VjdXJpdHkgZml4ZXMgb3IgbmV3IGZlYXR1cmVzDQo+ ID4gdGhhdA0KPiA+ID4gPiB3ZSB3YW50IHRvIHVzZS4NCj4gPiA+ID4NCj4gPiA+ID4gRm9yIHVz LCB0aGUgdHJlbmQgcG9pbnRlZCBpbiB0aGUgd3JvbmcgZGlyZWN0aW9uIHdoZW4gRFBESyBzd2l0 Y2hlZA0KPiA+ID4gPiB0aGUgcHJlZmVyZW5jZSB0b3dhcmRzIHJ1bnRpbWUgY29uZmlndXJhYmls aXR5IGFuZCBkZXByZWNhdGVkDQo+ID4gY29tcGlsZQ0KPiA+ID4gPiB0aW1lIGNvbmZpZ3VyYWJp bGl0eS4gSSBkbyB1bmRlcnN0YW5kIHRoZSByZWFzb25pbmcgYmVoaW5kIGl0LCBhbmQNCj4gPiB0 aGUNCj4gPiA+ID4gaW1wYWN0IGlzIG1pbmltYWwsIHNvIHdlIGFjY2VwdCBpdC4NCj4gPiA+DQo+ ID4gPiBUaGUgY29kZSBjYW4gYmUgb3B0aW1pemVkIGJ5IHJlbW92aW5nIHNvbWUgaW5zdHJ1Y3Rp b25zIHdpdGggI2lmZGVmLg0KPiA+ID4gQnV0IHRoZSBjb21wbGV4aXR5IG9mIG1hbmFnaW5nICNp ZmRlZiBlbmFibGluZy9kaXNhYmxpbmcsIGRlcGVuZGluZw0KPiA+IG9uIHRoZQ0KPiA+ID4gcGxh dGZvcm0gYW5kIHRoZSB1c2UgY2FzZSwgd291bGQgYmUgaHVnZS4NCj4gPiA+IFdlIHRyeSB0byBo YXZlIGEgcmVhc29uYWJsZSBjb2RlICJhbHdheXMgZW5hYmxlZCIgd2hpY2ggcGVyZm9ybXMgd2Vs bA0KPiA+IGluIGFsbA0KPiA+ID4gY2FzZXMuIFRoaXMgaXMgYSBkZXNpZ24gY2hvaWNlIHdoaWNo IG1ha2VzIERQREsgYSBsaWJyYXJ5LCBub3QgYSBwb29sDQo+ID4gb2YgY29kZQ0KPiA+ID4gdG8g Y2hlcnJ5LXBpY2suDQo+ID4gPg0KPiA+ID4gPiBIb3dldmVyLCBpZiBEUERLIHN0YXJ0cyBzYWNy aWZpY2luZyBwZXJmb3JtYW5jZSBvZiB0aGUgY29yZQ0KPiA+IGxpYnJhcmllcw0KPiA+ID4gPiBm b3IgdGhlIGJlbmVmaXRzIG9mIHRoZSBHTlUvTGludXggZGlzdHJpYnV0b3JzLCBuZXR3b3JrIGFw cGxpYW5jZQ0KPiA+ID4gPiB2ZW5kb3JzIG1heSBwdXQgbW9yZSBlZmZvcnQgaW50byBzdGlja2lu ZyB3aXRoIG9sZCBEUERLIHZlcnNpb25zDQo+ID4gPiA+IGluc3RlYWQgb2YgdXBkYXRpbmcuDQo+ ID4gPg0KPiA+ID4gVGhlIGluaXRpYWwgY2hvaWNlIHJlZ2FyZGluZyBBQkkgY29tcGF0aWJpbGl0 eSB3YXMgImRvIG5vdCBjYXJlIi4NCj4gPiA+IFJlY2VudGx5LCB0aGUgZGVjaXNpb24gd2FzIGRv bmUgdG8gY2FyZSBhYm91dCBBQkkgY29tcGF0aWJpbGl0eSBhcw0KPiA+IHByaW9yaXR5DQo+ID4g PiBudW1iZXIgMi4gVGhlIHByaW9yaXR5IG51bWJlciAxIHJlbWFpbnMgdGhlIHBlcmZvcm1hbmNl Lg0KPiA+ID4gVGhhdCdzIGEgcmVhc29uIGZvciBhbGxvd2luZyBzb21lIEFCSSBicmVha2FnZXMg aW4gc29tZSBzcGVjaWZpYw0KPiA+IHJlbGVhc2VzDQo+ID4gPiBhbm5vdW5jZWQgaW4gYWR2YW5j ZS4NCj4gPiA+DQo+ID4gPiA+ID4gSSB0aGluayB3ZSBuZWVkIHRvIGZvY3VzIGZpcnN0IG9uIHNs b3cgcGF0aCBBUElzIEFCSSBzdHVmZi4NCj4gPiA+DQo+ID4gPiBZZXMgd2Ugc2hvdWxkIG5vdCBk ZWdyYWRlIGZhc3QgcGF0aCBwZXJmb3JtYW5jZSBmb3IgdGhlIHNha2Ugb2YNCj4gPiBhdm9pZGlu Zw0KPiA+ID4gdW5jZXJ0YWluIGZ1dHVyZSBBQkkgaXNzdWVzLg0KPiA+ID4NCj4gPiA+IE1vcnRl biwgSmVyaW4sIHRoYW5rIHlvdSBmb3IgdGhlIGZlZWRiYWNrLg0KPiA+IEkgdGhpbmsgd2UgaGF2 ZSBhIGNvbnNlbnN1cyBoZXJlIG5vdCB0byBtYWtlIGFueSBjaGFuZ2VzIHRvIGlubGluZQ0KPiA+ IGZ1bmN0aW9ucyBmb3Igbm93Lg0KPiA+IFNob3VsZCB3ZSBtYXJrIHRoaXMgYXMgJ0RlZmVycmVk IG9yIFJlamVjdGVkJz8NCj4gDQo+IFJlamVjdGVkLg0KPiANCj4gVGhlcmUgaXMgbm8gbmVlZCBm b3IgdGhpcyBtb2RpZmljYXRpb24gbm93LCBhbmQgbm8gYWN0dWFsIHVzZSBjYXNlcyBmb3IgaXQg aW4gdGhlIHJvYWQgbWFwLiBJbiBvdGhlciB3b3JkczogVGhpcyBtb2RpZmljYXRpb24gaGFzIG5v IHVzZQ0KPiBjYXNlczsgaXQgaXMgcHVyZWx5IGFjYWRlbWljLiBNYW55IG90aGVyIHN1Z2dlc3Rp b25zIGhhdmUgYmVlbiByZWplY3RlZCBmb3IgdGhlIHJlYXNvbiB0aGF0IHRoZXkgaGF2ZSBubyBj dXJyZW50IHVzZSBjYXNlcy4NCj4gDQo+IEFzIFRob21hcyBtZW50aW9uZWQsIERQREsgaGFzIHRy YW5zaXRpb25lZCB0b3dhcmRzIGJlaW5nIGEgbGlicmFyeSwgcmF0aGVyIHRoYW4gYSBwb29sIG9m IGNvZGUgdG8gY2hlcnJ5LXBpY2sgZnJvbS4gSSBoYXZlIGxlYXJuZWQgdG8gbGl2ZQ0KPiB3aXRo IHRoaXMuDQo+IA0KPiBCZWluZyBhIGxpYnJhcnkgZG9lc24ndCBtZWFuIHRoYXQgZnVuY3Rpb25z IGNhbm5vdCBiZSBleHBvc2VkIGFzIGlubGluZSBjb2RlIGluIHRoZSBsaWJyYXJ5IGhlYWRlciBm aWxlcy4gRFBESyBpcyBtYWlubHkgYSBoaWdoIHBlcmZvcm1hbmNlDQo+IGxpYnJhcnkgd2l0aCBh IHRyYWRpdGlvbiBvZiBleHBvc2luZyBtYW55IG9mIGl0cyBpbnRlcm5hbHMgaW4gaXRzIEFQSSwg YW5kIHdlIHNob3VsZCBrZWVwIGl0IHRoaXMgd2F5LiBXZSBjZXJ0YWlubHkgZG9uJ3Qgd2FudCBh biBvcGFxdWUgQVBJDQo+IGhpZGluZyBhbGwgb2YgaXRzIGludGVybmFscywgcGFzc2luZyBhcm91 bmQgdm9pZCBwb2ludGVycy4NCj4gDQo+IEhvd2V2ZXIsIGl0IHdhcyBzdGlsbCBhbiBpbnRlcmVz dGluZyBleHBlcmltZW50IHRvIGludmVzdGlnYXRlIHRoZSBwZXJmb3JtYW5jZSBjb3N0Lg0KDQpZ ZXMsIHBsZWFzZSByZWplY3QgaXQuDQpLb25zdGFudGluDQoNCg0K