From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 826DFA05D3 for ; Wed, 24 Apr 2019 07:08:53 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id EE2951B4C1; Wed, 24 Apr 2019 07:08:51 +0200 (CEST) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10072.outbound.protection.outlook.com [40.107.1.72]) by dpdk.org (Postfix) with ESMTP id B32811DBF for ; Wed, 24 Apr 2019 07:08:49 +0200 (CEST) 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=XltdqhqnO/0QWODMACYlRyjJHlEZBWyALVbgATUTpBw=; b=INvL24Vm6xlQs7v48flzXGSoGa1FWGdTQ6hqMvdcvJGmwdMyRF/ZWAArps9hsNpDbeTJfW0enQ4/aLTp/2t1TCJrKNObOBc0CmzIpcPHJ6hOope3eRcXrs1T689bgb/WWYvRLxTqt0np5T2ZiWb37MeZehfM8QE9M2CgHVC1aZs= Received: from VE1PR08MB5149.eurprd08.prod.outlook.com (20.179.30.152) by VE1PR08MB5181.eurprd08.prod.outlook.com (20.179.31.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1813.14; Wed, 24 Apr 2019 05:08:46 +0000 Received: from VE1PR08MB5149.eurprd08.prod.outlook.com ([fe80::9b6:3403:4386:78]) by VE1PR08MB5149.eurprd08.prod.outlook.com ([fe80::9b6:3403:4386:78%2]) with mapi id 15.20.1813.017; Wed, 24 Apr 2019 05:08:46 +0000 From: Honnappa Nagarahalli To: Bruce Richardson CC: "dev@dpdk.org" , Stephen Hemminger , "Ananyev, Konstantin" , "thomas@monjalon.net" , Ray Kinsella , nd , nd Thread-Topic: [dpdk-dev] ABI and inline functions Thread-Index: AdT03C2s3ZB+VIuxS0mLCJ+6mgHcvgAHH6YAABZxZtAAH76KgAEhZiSA Date: Wed, 24 Apr 2019 05:08:46 +0000 Message-ID: References: <20190417083637.GB1890@bricha3-MOBL.ger.corp.intel.com> <20190418102811.GB1817@bricha3-MOBL.ger.corp.intel.com> In-Reply-To: <20190418102811.GB1817@bricha3-MOBL.ger.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Honnappa.Nagarahalli@arm.com; x-originating-ip: [217.140.111.135] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3edff64e-63b7-489d-18c3-08d6c872ee1f x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020); SRVR:VE1PR08MB5181; x-ms-traffictypediagnostic: VE1PR08MB5181: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr nodisclaimer: True x-microsoft-antispam-prvs: x-forefront-prvs: 00179089FD x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(376002)(39860400002)(366004)(396003)(346002)(52314003)(189003)(199004)(2906002)(305945005)(53936002)(9686003)(316002)(6246003)(68736007)(33656002)(186003)(54906003)(52536014)(7736002)(76176011)(4326008)(25786009)(3846002)(8676002)(7696005)(6506007)(99286004)(102836004)(74316002)(6916009)(8936002)(6116002)(81166006)(81156014)(66066001)(93886005)(14454004)(26005)(72206003)(55016002)(229853002)(71190400001)(478600001)(66556008)(97736004)(66446008)(6436002)(5660300002)(476003)(73956011)(446003)(256004)(11346002)(66476007)(14444005)(86362001)(66946007)(76116006)(486006)(64756008)(71200400001); DIR:OUT; SFP:1101; SCL:1; SRVR:VE1PR08MB5181; H:VE1PR08MB5149.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A: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: zWthm4B0MkmsNpwysBlJ82Kftd1lAGq3RObyvYnnmbWWlLJpsvMYurkFcodj4y96bZjG+CWqS/tHQ5y5/JTGJVc6D8aOV14315erm4vwBa8qNkkNaKPHAIwE1f60LcvSQw1exb8JMzCduwmjBBCUI318CRxw4G2sRdHsDGC/Ua2eGlxt5y2MjrfSXJTzsFp3WT1szCfpCj/z8mEFXSy2PZ5XLjWq0oJeIukHSHnOhWZzu8MTGwy/2ZZ5FStz5CBX9REJr7d9xOAHcxNuKaOuSlbW8FYVnPURyXJIi1+QnDHC5E468UHbUPlMy7q8ZrfL3c0QtMPB9qGCX7iQ1VHhwiN4AAlvENQVMSaiJzOUxOezutToOTzhkZnuJKNYaTJ+F1MfFM4m0hrbkkC8JH+qH/cqfkyQjTZ/rPK32NYvbUo= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3edff64e-63b7-489d-18c3-08d6c872ee1f X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Apr 2019 05:08:46.4694 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5181 Subject: Re: [dpdk-dev] ABI and inline functions 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" Message-ID: <20190424050846.9P84fk2Fr6Tze2TRCV1hkHxDM6srOZbXvq_KjjCNTwI@z> PiA+ID4gT24gV2VkLCBBcHIgMTcsIDIwMTkgYXQgMDU6MTI6NDNBTSArMDAwMCwgSG9ubmFwcGEg TmFnYXJhaGFsbGkNCj4gd3JvdGU6DQo+ID4gPiA+IEhlbGxvLA0KPiA+ID4gPiAJVGhlcmUgd2Fz IGEgY29udmVyc2F0aW9uIFsxXSBpbiB0aGUgY29udGV4dCBvZiBSQ1UgbGlicmFyeS4gSQ0KPiA+ ID4gPiB0aG91Z2h0IGl0IG5lZWRzIHBhcnRpY2lwYXRpb24gZnJvbSBicm9hZGVyIGF1ZGllbmNl LiBTdW1tYXJ5IGZvcg0KPiA+ID4gPiB0aGUgY29udGV4dCAocGxlYXNlIGxvb2sgYXQgWzFdIGZv ciBmdWxsIGRldGFpbHMpDQo+ID4gPiA+DQo+ID4gPg0KPiA+ID4gVGhhbmtzIGZvciBraWNraW5n IG9mZiB0aGlzIGRpc2N1c3Npb24NCj4gPiA+DQo+ID4gPiA+IDEpIEhvdyBkbyB3ZSBwcm92aWRl IEFCSSBjb21wYXRpYmlsaXR5IHdoZW4gdGhlIGNvZGUgYmFzZSBjb250YWlucw0KPiA+ID4gaW5s aW5lIGZ1bmN0aW9ucz8gVW5sZXNzIHdlIGZyZWV6ZSBkZXZlbG9wbWVudCBpbiB0aGVzZSBpbmxp bmUNCj4gPiA+IGZ1bmN0aW9ucyBhbmQgY29ycmVzcG9uZGluZyBzdHJ1Y3R1cmVzLCBpdCBtaWdo dCBub3QgYmUgcG9zc2libGUgdG8gY2xhaW0NCj4gQUJJIGNvbXBhdGliaWxpdHkuDQo+ID4gPiBB cHBsaWNhdGlvbiBoYXMgdG8gYmUgcmVjb21waWxlZC4NCj4gPiA+DQo+ID4gPiBJIGFncmVlIHRo YXQgaW4gc29tZSBjYXNlcyB0aGUgYXBwbGljYXRpb24gIm1pZ2h0IiBuZWVkIHRvIGJlDQo+ID4g PiByZWNvbXBpbGVkLCBidXQgb24gdGhlIG90aGVyIGhhbmQgSSBhbHNvIHRoaW5rIHRoYXQgdGhl cmUgYXJlIG1hbnkNCj4gPiA+IGNhc2VzIHdoZXJlIEFCSSBmdW5jdGlvbiB2ZXJzaW9uaW5nIGNh biBzdGlsbCBiZSB1c2VkIHRvIG1pdGlnYXRlDQo+ID4gPiB0aGluZ3MuIEZvciBleGFtcGxlLCBp ZiB3ZSB0aGluayBvZiBhIGNvdXBsZSBvZiB2YXJpb3VzIHNjZW5hcmlvczoNCj4gPiA+DQo+ID4g PiAxLiBJZiBldmVyeXRoaW5nIGlzIGlubGluZSBhbmQgdmFyaWFibGVzIGFyZSBhbGxvY2F0ZWQg YnkgYXBwLCBlLmcuDQo+ID4gPiBzcGlubG9jayBvbiBzdGFjaywgdGhlbiB0aGVyZSBpcyBubyBp c3N1ZSBhcyBldmVyeXRoaW5nIGlzDQo+ID4gPiBhcHBsaWNhdGlvbiBjb250YWluZWQuDQo+ID4g SWYgdGhlcmUgaXMgYSBidWcgZml4IHdoaWNoIHJlcXVpcmVzIHRoZSBzdHJ1Y3R1cmUgdG8gY2hh bmdlLCB0aGUgYXBwbGljYXRpb24NCj4gd291bGQgbmVlZCB0byByZWNvbXBpbGUuIEkgZ3Vlc3Mg eW91IGFyZSB0YWxraW5nIGFib3V0IGEgc2NlbmFyaW8gd2hlbg0KPiBub3RoaW5nIGNoYW5nZWQg aW4gdGhlIGlubGluZSBmdW5jdGlvbi92YXJpYWJsZXMuDQo+ID4NCj4gDQo+IElmIHRoZSBhcHBs aWNhdGlvbiB3YW50cyB0aGUgYnVnZml4LCB0aGVuIHllcy4gSG93ZXZlciwgaWYgdGhlIGFwcCBp cw0KPiB1bmFmZmVjdGVkIGJ5IHRoZSBidWcsIHRoZW4gaXQgc2hvdWxkIGhhdmUgdGhlIG9wdGlv biBvZiB1cGRhdGluZyBEUERLDQo+IHdpdGhvdXQgYSByZWNvbXBpbGUuDQo+DQpBZ3JlZSBvbiB0 aGUgcmVxdWlyZW1lbnQuDQoNCj4gPiA+DQo+ID4gPiAyLiBJZiB0aGUgc2l0dWF0aW9uIGlzIGFz IGluICMxLCBidXQgdGhlIHN0cnVjdHVyZXMgaW4gcXVlc3Rpb24gYXJlDQo+ID4gPiBwYXNzZWQg dG8gbm9uLWlubGluZSBEUERLIGZ1bmN0aW9ucy4gSW4gdGhpcyBjYXNlLCBhbnkgY2hhbmdlcyB0 bw0KPiA+ID4gdGhlIHN0cnVjdHVyZXMgcmVxdWlyZSB0aG9zZSBmdW5jdGlvbnMgdGFraW5nIHRo ZSBzdHJ1Y3R1cmVzIHRvIGJlDQo+ID4gPiB2ZXJzaW9uZWQgZm9yIG9sZCBhbmQgbmV3IHN0cnVj dHVyZXMNCj4gPiBJIHRoaW5rIHRoaXMgY2FuIGdldCBjb21wbGljYXRlZCBvbiB0aGUgaW5saW5l IGZ1bmN0aW9uIHNpZGUuIFRoZSBhcHBsaWNhdGlvbg0KPiBhbmQgdGhlIERQREsgbGlicmFyeSB3 aWxsIGVuZCB1cCBoYXZpbmcgZGlmZmVyZW50IGlubGluZSBmdW5jdGlvbnMuIFRoZQ0KPiBjaGFu Z2VkIGlubGluZSBmdW5jdGlvbiBuZWVkcyB0byBiZSBhd2FyZSBvZiAyIHN0cnVjdHVyZSBmb3Jt YXRzIG9yIHRoZSBpbmxpbmUNCj4gZnVuY3Rpb24gbmVlZHMgdG8gYmUgZHVwbGljYXRlZCAob25l IGZvciBlYWNoIHZlcnNpb24gb2YgdGhlIHN0cnVjdHVyZSkuIEkNCj4gZ3Vlc3MgdGhlc2UgYXJl IHRoZSB3b3JrYXJvdW5kcyB3ZSBoYXZlIHRvIGRvLg0KPiA+DQo+IE5vLCB0aGVyZSBpcyBuZXZl ciBhbnkgbmVlZCBmb3IgdHdvIHZlcnNpb25zIG9mIHRoZSBpbmxpbmUgZnVuY3Rpb25zLCBvbmx5 IHRoZQ0KPiBuZXdlc3QgdmVyc2lvbiBpcyBuZWVkZWQuIFRoaXMgaXMgYmVjYXVzZSBpbiB0aGUg Y2FzZSBvZiBhIG5ld2x5IGNvbXBpbGVkDQo+IGFwcGxpY2F0aW9uIG9ubHkgdGhlIG5ld2VzdCB2 ZXJzaW9uIG9mIHRoZSBub24taW5saW5lIGZ1bmN0aW9ucyBpcyBldmVyIHVzZWQuDQo+IFRoZSBv dGhlciBvbGRlciB2ZXJzaW9ucyBhcmUgb25seSB1c2VkIGF0IHJ1bnRpbWUgZm9yIGNvbXBhdGls aWJpdHkgd2l0aCBwcmUtDQo+IGNvbXBpbGVkIGFwcHMgd2l0aCB0aGUgb2xkZXIgaW5saW5lcy4N Cj4gDQpTaW5jZSB0aGUgaW5saW5lIGZ1bmN0aW9uIGlzIHVzZWQgaW4gdGhlIGFwcGxpY2F0aW9u IGFuZCB0aGUgRFBESyAoc2F5IGEgbGlicmFyeSksIHdlIGhhdmUgMiBjb3BpZXMgb2YgdGhlIHNh bWUgaW5saW5lIGZ1bmN0aW9uIGluIHRoZSBmaW5hbCBiaW5hcnkgKDEgd2l0aCB0aGUgYXBwbGlj YXRpb24gYW5kIDJuZCBvbmUgYmVoaW5kIERQREsgbm9uLWlubGluZSBmdW5jdGlvbnMpLiBXaGVu IHRoZSBEUERLIG5vbi1pbmxpbmUgZnVuY3Rpb25zIGFyZSB2ZXJzaW9uZWQsIHRoZSBvbGRlciB2 ZXJzaW9uIG9mIHRoZSBmdW5jdGlvbnMgaGF2ZSB0byBzdXBwb3J0IHRoZSBvbGQgc3RydWN0dXJl cyBmb3IgdGhlIG9sZCBhcHBsaWNhdGlvbiB0byB3b3JrIHdpdGggdGhlIG5ldyBEUERLLiBpLmUu IGJvdGggY29waWVzIG9mIHRoZSBpbmxpbmUgZnVuY3Rpb24gaGF2ZSB0byBiZSB0aGUgc2FtZS4N Cg0KPiA+ID4NCj4gPiA+IDMuIElmIGluc3RlYWQgd2UgaGF2ZSB0aGUgY2FzZSwgbGlrZSBpbiBy dGVfcmluZywgd2hlcmUgdGhlIGRhdGENCj4gPiA+IHN0cnVjdHVyZXMgYXJlIGFsbG9jYXRlZCB1 c2luZyBmdW5jdGlvbnMsIGJ1dCB0aGV5IGFyZSB1c2VkIHZpYQ0KPiA+ID4gaW5saW5lcyBpbiB0 aGUgYXBwLiBJbiB0aGlzIGNhc2UgdGhlIGNyZWF0aW9uIGZ1bmN0aW9ucyAoYW5kIGFueQ0KPiA+ ID4gb3RoZXIgZnVuY3Rpb24gdXNpbmcgdGhlIHN0cnVjdHVyZXMpIG5lZWQgdG8gYmUgdmVyc2lv bmVkIHNvIHRoYXQNCj4gPiA+IHRoZSBhcHBsaWNhdGlvbiBnZXRzIHRoZSBleHBlY3RlZCBzdHJ1 Y3R1cmUgYmFjayBmcm9tIHRoZSBjcmVhdGlvbi4NCj4gPiBUaGUgbmV3IHN0cnVjdHVyZSBtZW1i ZXJzIGhhdmUgdG8gYmUgYWRkZWQgc3VjaCB0aGF0IHRoZSBwcmV2aW91cw0KPiA+IGxheW91dCBp cyBub3QgYWZmZWN0ZWQuIEVpdGhlciBhZGQgYXQgdGhlIGVuZCBvciB1c2UgdGhlIGdhcHMgdGhh dCBhcmUNCj4gPiBsZWZ0IGJlY2F1c2Ugb2YgY2FjaGUgbGluZSBhbGlnbm1lbnQuDQo+ID4NCj4g Tm90IG5lY2Vzc2FyaWx5LiBUaGVyZSBpcyBub3RoaW5nIHRoYXQgcmVxdWlyZXMgdGhlIG9sZGVy IGFuZCBuZXdlciB2ZXJzaW9ucw0KPiBvZiBhIGZ1bmN0aW9uIHRvIHVzZSB0aGUgc2FtZSBzdHJ1 Y3R1cmUuIFdlIGNhbiByZW5hbWUgdGhlIG9yaWdpbmFsIHN0cnVjdHVyZQ0KPiB3aGVuIHZlcnNp b25pbmcgdGhlIG9sZCBmdW5jdGlvbiwgYW5kIHRoZW4gY3JlYXRlIGEgbmV3IHN0cnVjdHVyZSB3 aXRoIHRoZQ0KPiBvcmlnaW5hbCBuYW1lIGZvciBsYXRlciByZWNvbXBpbGVkIGNvZGUgdXNpbmcg dGhlIG5ld2VzdCBBQklzLg0KPg0KQWdyZWUsIGFzc3VtaW5nIG9ubHkgdGhlIGFwcCBpcyB1c2lu ZyB0aGUgaW5saW5lIGZ1bmN0aW9ucy4NCg0KPiA+ID4NCj4gPiA+IEl0IG1pZ2h0IGJlIHVzZWZ1 bCB0byB0aGluayBvZiB3aGF0IG90aGVyIHNjZW5hcmlvcyB3ZSBoYXZlIGFuZCB3aGF0DQo+ID4g PiBvbmVzIGFyZSBsaWtlbHkgdG8gYmUgcHJvYmxlbWF0aWMsIGVzcGVjaWFsbHkgdGhvc2UgdGhh dCBjYW4ndCBiZQ0KPiA+ID4gc29sdmVkIGJ5IGhhdmluZyBtdWx0aXBsZSBmdW5jdGlvbiB2ZXJz aW9ucy4NCj4gPiA+DQo+ID4gPiA+IDIpIEV2ZXJ5IGZ1bmN0aW9uIHRoYXQgaXMgbm90IGluIHRo ZSBkaXJlY3QgZGF0YXBhdGggKGZhc3RwYXRoPykNCj4gPiA+ID4gc2hvdWxkIG5vdCBiZSBpbmxp bmUuIEV4Y2VwdGlvbnMgb3IgdGhpbmdzIGxpa2UgcngvdHggYnVyc3QsIHJpbmcNCj4gPiA+ID4g ZW5xdWV1ZS9kZXF1ZXVlLCBhbmQgcGFja2V0IGFsbG9jL2ZyZWUgLSBTdGVwaGVuDQo+ID4gPg0K PiA+ID4gQWdyZWUgd2l0aCB0aGlzLiBBbnl0aGluZyBub3QgZGF0YSBwYXRoIHNob3VsZCBub3Qg YmUgaW5saW5lLiBUaGUNCj4gPiA+IG5leHQNCj4gPiBZZXMsIHZlcnkgY2xlYXIgb24gdGhpcy4N Cj4gPg0KPiA+ID4gcXVlc3Rpb24gdGhlbiBpcyBmb3IgZGF0YSBwYXRoIGl0ZW1zIGhvdyB0byBk ZXRlcm1pbmUgd2hldGhlciB0aGV5DQo+ID4gPiBuZWVkIHRvIGJlIGlubGluZSBvciBub3QuIElu IGdlbmVyYWwgbXkgcnVsZS1vZi10aHVtYjoNCj4gPiA+ICogYW55dGhpbmcgZGVhbGluZyB3aXRo IGJ1cnN0cyBvZiBwYWNrZXRzIHNob3VsZCBub3QgYmUgaW5saW5lDQo+ID4gPiAqIGFueXRoaW5n IHdoYXQgd29ya3Mgd2l0aCBzaW5nbGUgcGFja2V0IGF0IGEgdGltZSBzaG91bGQgYmUgaW5saW5l DQo+ID4gPg0KPiA+ID4gVGhlIG9uZSBleGNlcHRpb24gdG8gdGhpcyBydWxlIGlzIGNhc2VzIHdo ZXJlIHdlIGhhdmUgdG8gY29uc2lkZXINCj4gPiA+ICJlbXB0eSBwb2xsaW5nIiBhcyBhIGxpa2Vs eSB1c2UtY2FzZS4gRm9yIGV4YW1wbGUsDQo+ID4gPiBydGVfcmluZ19kZXF1ZXVlX2J1cnN0IHdv cmtzIHdpdGggYnVyc3RzIG9mIHBhY2tldHMsIGJ1dCB0aGVyZSBpcyBhDQo+ID4gPiB2YWxpZCBh cHBsaWNhdGlvbiB1c2UgY2FzZSB3aGVyZSBhIHRocmVhZCBjb3VsZCBiZSBwb2xsaW5nIGEgc2V0 IG9mDQo+ID4gPiByaW5ncyB3aGVyZSBvbmx5IGEgc21hbGwgbnVtYmVyIGFyZSBhY3R1YWxseSBi dXN5LiBSaWdodCBub3csDQo+ID4gPiBwb2xsaW5nIGFuIGVtcHR5IHJpbmcgb25seSBjb3N0cyBh IGZldyBjeWNsZXMsIG1lYW5pbmcgdGhhdCBpdCdzDQo+ID4gPiBuZWdsaWJsZSB0byBoYXZlIGEg ZmV3IHBvbGxzIG9mIGVtcHR5IHJpbmdzIGJlZm9yZSB5b3UgZ2V0IHRvIGEgYnVzeQ0KPiA+ID4g b25lLiBIYXZpbmcgdGhhdCBmdW5jdGlvbiBub3QtaW5saW5lIHdpbGwgY2F1c2UgdGhhdCBjb3N0 IHRvIGp1bXANCj4gPiA+IHNpZ25pZmljYW50bHksIHNvIGNvdWxkIGNhdXNlIHByb2JsZW1zLiAo VGhpcyBsZWFkcyB0byB0aGUgaW50ZXJlc3RpbmcNCj4gc2NlbmFyaW8gd2hlcmUgcmluZyBlbnF1 ZXVlIGlzIHNhZmUgdG8gdW4taW5saW5lLCB3aGlsZSBkZXF1ZXVlIGlzIG5vdCkuDQo+ID4gQSBn b29kIHdheSB0byB0aGluayBhYm91dCBpdCB3b3VsZCBiZSAtIHJhdGlvIG9mIGFtb3VudCBvZiB3 b3JrIGRvbmUgaW4NCj4gdGhlIGZ1bmN0aW9uIHRvIGNvc3Qgb2YgZnVuY3Rpb24gY2FsbC4NCj4g Pg0KPiANCj4gWWVzLCBJIHdvdWxkIHRlbmQgdG8gYWdyZWUgaW4gZ2VuZXJhbC4gIFRoZSBvdGhl ciB0aGluZyBpcyB0aGUgZnJlcXVlbmN5IG9mDQo+IGNhbGxzLCBhbmQgLSBhcyBhbHJlYWR5IHN0 YXRlZCAtIHdoZXRoZXIgaXQgdGFrZXMgYSBidXJzdCBvZiBub3QuICBCZWNhdXNlIGV2ZW4NCj4g aWYgaXQncyBhIHRyaXZpYWwgZnVuY3Rpb24gdGhhdCB0YWtlcyBvbmx5IDEwIGN5Y2xlcyBhbmQg d2Ugd2FudCB0byB1bmlubGluZSBpdCwNCj4gdGhlIGNvc3QgbWF5IGRvdWJsZTsgYnV0IGlmIGl0 IHRha2VzIGEgYnVyc3Qgb2YgcGFja2V0cyBhbmQgaXMgb25seSB1c2VkDQo+IG9uY2UvdHdpY2Ug cGVyIGJ1cnN0IHRoZSBjb3N0IHBlciBwYWNrZXQgc2hvdWxkIHN0aWxsIG9ubHkgYmUgYSBmcmFj dGlvbiBvZiBhDQo+IGN5Y2xlLg0KPiANCj4gPiA+DQo+ID4gPiA+IDMpIFBsdXMgc3luY2hyb25p emF0aW9uIHJvdXRpbmVzOiBzcGluL3J3bG9jay9iYXJyaWVyLCBldGMuIEkNCj4gPiA+ID4gdGhp bmsgcmN1IHNob3VsZCBiZSBvbmUgb2Ygc3VjaCBleGNlcHRpb25zIC0gaXQgaXMganVzdCBhbm90 aGVyDQo+ID4gPiA+IHN5bmNocm9uaXphdGlvbiBtZWNoYW5pc20gYWZ0ZXIgYWxsIChqdXN0IGEg Yml0IG1vcmUNCj4gPiA+ID4gc29waGlzdGljYXRlZCkuIC0gS29uc3RhbnRpbg0KPiA+ID4gPg0K PiA+ID4gSW4gZ2VuZXJhbCBJIGJlbGlldmUgdGhlIHN5bmNocm9uaXNhdGlvbiBwcmltaXRpdmVz IHNob3VsZCBiZSBpbmxpbmUuDQo+ID4gPiBIb3dldmVyLCBpdCBkb2VzIGNvbWUgZG93biB0byBj b3N0IHRvbyAtIGlmIGEgZnVuY3Rpb24gdGFrZXMgMzAwDQo+ID4gPiBjeWNsZXMsIGRvIHdlIHJl YWxseSBjYXJlIGlmIGl0IHRha2VzIDMwNSBvciAzMTAgaW5zdGVhZCB0byBtYWtlIGl0IG5vdA0K PiBpbmxpbmU/DQo+ID4gPiBIb3BlZnVsbHkgbW9zdCBzeW5jaHJvbmlzYXRpb24gcHJpbWl0aXZl cyBhcmUgZmFzdGVyIHRoYW4gdGhpcyBzbw0KPiA+ID4gdGhpcyBzaXR1YXRpb24gc2hvdWxkIG5v dCBvY2N1ci4NCj4gPiA+DQo+ID4gPiA+IDIpIGFuZCAzKSBjYW4gYmUgZ29vZCBndWlkZWxpbmVz IHRvIHdoYXQgZnVuY3Rpb25zL0FQSXMgY2FuIGJlDQo+ID4gPiA+IGlubGluZS4gQnV0LA0KPiA+ ID4gSSBiZWxpZXZlIHRoaXMgZ3VpZGVsaW5lIGV4aXN0cyB0b2RheSB0b28uIEFyZSB0aGVyZSBh bnkgdGhvdWdodHMgdG8NCj4gPiA+IGNoYW5nZSB0aGlzPw0KPiA+ID4gPg0KPiA+ID4gPiBDb21p bmcgdG8gMSksIEkgdGhpbmsgRFBESyBjYW5ub3QgcHJvdmlkZSBBQkkgY29tcGF0aWJpbGl0eSB1 bmxlc3MNCj4gPiA+ID4gYWxsIHRoZQ0KPiA+ID4gaW5saW5lIGZ1bmN0aW9ucyBhcmUgY29udmVy dGVkIHRvIG5vcm1hbCBmdW5jdGlvbnMgYW5kIHN5bWJvbA0KPiA+ID4gdmVyc2lvbmluZyBpcyBk b25lIGZvciB0aG9zZSAobm90IGJvdGhlcmluZyBhYm91dCBwZXJmb3JtYW5jZSkuDQo+ID4gPiA+ DQo+ID4gPiBJIGRpc2FncmVlLiBJIHRoaW5rIGV2ZW4gaW4gdGhlIGNhc2Ugb2YgIzEsIHdlIHNo b3VsZCBiZSBhYmxlIHRvDQo+ID4gPiBtYW5hZ2Ugc29tZSBjaGFuZ2VzIHdpdGhvdXQgYnJlYWtp bmcgQUJJLg0KPiA+IEkgY29tcGxldGVseSBhZ3JlZSB3aXRoIHlvdSBvbiB0cnlpbmcgdG8ga2Vl cCB0aGUgQUJJIGJyZWFrIHN1cmZhY2Ugc21hbGwNCj4gYW5kIGRvaW5nIGR1ZSBkaWxpZ2VuY2Ug d2hlbiBvbmUgaXMgcmVxdWlyZWQuIEhvd2V2ZXIsIEkgdGhpbmsgY2xhaW1pbmcgMTAwJQ0KPiBB QkkgY29tcGF0aWJpbGl0eSBhbGwgdGhlIHRpbWUgKG9yIGFzIGZyZXF1ZW50bHkgYXMgb3RoZXIg cHJvamVjdHMgY2xhaW0pIG1pZ2h0DQo+IGJlIHRvdWdoLiBJTU8sIHdlIG5lZWQgdG8gbG9vayBi ZXlvbmQgdGhpcyB0byBzb2x2ZSB0aGUgZW5kIHVzZXIgcHJvYmxlbS4NCj4gTWF5IGJlIHBhY2th Z2luZyBtdWx0aXBsZSBMVFMgd2l0aCBkaXN0cm9zIHdoZW4gRFBESyBjb3VsZCBub3QgYXZvaWQN Cj4gYnJlYWtpbmcgQUJJIGNvbXBhdGliaWxpdHk/DQo+ID4NCj4gSGF2aW5nIG11bHRpcGxlIExU UydzIHBlciBkaXN0cm8gd291bGQgYmUgbmljZSwgYnV0IGl0J3MgcHV0dGluZyBhIGxvdCBtb3Jl DQo+IHdvcmsgb24gdGhlIGRpc3RybyBmb2xrcywgSSB0aGluay4NCj4gDQo+ID4gPg0KPiA+ID4g PiBJbiB0aGlzIGNvbnRleHQsIGRvZXMgaXQgbWFrZSBzZW5zZSB0byBzYXkgdGhhdCB3ZSB3aWxs IG1haW50YWluDQo+ID4gPiA+IEFQSSBjb21wYXRpYmlsaXR5IHJhdGhlciB0aGFuIHNheWluZyBB QkkgY29tcGF0aWJpbGl0eT8gVGhpcyB3aWxsDQo+ID4gPiA+IGFsc28gc2VuZCB0aGUgcmlnaHQg bWVzc2FnZSB0byB0aGUgZW5kIHVzZXJzLg0KPiA+ID4gPg0KPiA+ID4gSSB3b3VsZCB2YWx1ZSBB QkkgY29tcGF0aWJpbGl0eSBtdWNoIGhpZ2hlciB0aGFuIEFQSSBjb21wYXRpYmlsaXR5Lg0KPiA+ ID4gSWYgc29tZW9uZSBpcyByZWNvbXBpbGluZyB0aGUgYXBwbGljYXRpb24gYW55d2F5LCBtYWtp bmcgYSBjb3VwbGUgb2YNCj4gPiA+IHNtYWxsIGNoYW5nZXMgKGxhcmdlIHJld29yayBpcyBvYnZp b3VzbHkgYSBkaWZmZXJlbnQgaXNzdWUpIHRvIHRoZQ0KPiA+ID4gY29kZSBzaG91bGQgbm90IGJl IGEgbWFzc2l2ZSBpc3N1ZSwgSSBob3BlLiBPbiB0aGUgb3RoZXIgaGFuZCwgQUJJDQo+ID4gPiBj b21wYXRpYmlsaXR5IGlzIG5lZWRlZCB0byBhbGxvdyBzZWFtbGVzcyB1cGRhdGUgZnJvbSBvbmUg dmVyc2lvbiB0bw0KPiA+ID4gYW5vdGhlciwgYW5kIGl0J3MgdGhhdCBBQkkgY29tcGF0aWJsaXR5 IHRoYXQgYWxsb3dzIGRpc3RybydzIHRvIHBpY2sgdXAgb3VyDQo+IGxhdGVzdCBhbmQgZ3JlYXRl c3QgdmVyc2lvbnMuDQo+ID4gPg0KPiA+IEkgdGhpbmsgaXQgaXMgYWxzbyBpbXBvcnRhbnQgdG8g c2V0dXAgdGhlIHJpZ2h0IGV4cGVjdGF0aW9ucyB0byBEUERLIHVzZXJzLiBpLmUuDQo+IERQREsg d2lsbCBwb2xpY2UgaXRzZWxmIGJldHRlciB0byBwcm92aWRlIEFCSSBjb21wYXRpYmlsaXR5IGJ1 dCBvY2Nhc2lvbmFsbHkgaXQNCj4gbWlnaHQgbm90IGJlIHBvc3NpYmxlLg0KPiA+DQo+IFRoZSB0 cm91YmxlIGhlcmUgaXMgdGhhdCBhIERQREsgcmVsZWFzZSwgYXMgYSBwcm9kdWN0IGlzIGVpdGhl ciBiYWNrd2FyZA0KPiBjb21wYXRpYmxlIG9yIG5vdC4gRWl0aGVyIGEgdXNlciBjYW4gdGFrZSBp dCBhcyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQgZm9yIHRoZQ0KPiBwcmV2aW91cyB2ZXJzaW9uIG9y IG5vdC4gVXNlcnMgZG8gbm90IHdhbnQgdG8gaGF2ZSB0byBnbyB0aHJvdWdoIGEgY2hlY2tsaXN0 DQo+IGZvciBlYWNoIGFwcCB0byBzZWUgaWYgdGhlIGFwcCB1c2VzIG9ubHkgImNvbXBhdGlibGUi IEFQSXMgb3Igbm90LiBTYW1lIGZvcg0KRm9yIHRoZSByZWxlYXNlcyB3aGVyZSB0aGUgQUJJIGlz IGJyb2tlbiwgd291bGQgbm90IHN1Y2ggYSBsaXN0IGhlbHAgdGhlIHVzZXJzPw0KDQo+IHRoZSBk aXN0cm8gZm9sa3MsIHRoZXkgYXJlIG5vdCBnb2luZyB0byB0YWtlIHNvbWUgbGlicyBmcm9tIGEg cmVsZWFzZSBidXQgbm90DQo+IG90aGVycyBiZWNhdXNlIHRoZSBBQkkgaXMgYnJva2VuIGZvciBz b21lIGJ1dCBub3Qgb3RoZXJzLg0KWWVzLCB0aGlzIGlzIG5vdCBhbiBvcHRpb24sIGl0IGJlY29t ZXMgYSBEUERLIHJlbGVhc2Ugb2YgaXRzIG93biDwn5iKLg0KDQo+IA0KPiBSZWdhcmRzLA0KPiAv QnJ1Y2UNCg==