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 7E1FDA04A2 for ; Wed, 13 May 2020 01:41:26 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 433241BFE3; Wed, 13 May 2020 01:41:26 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 357E51BFA2; Wed, 13 May 2020 01:41:23 +0200 (CEST) IronPort-SDR: QLVBxemRIscivM9JE0N5bflr/nW2f3blmffMfhfjvGxVWZA2MWApoXpNsc4uH25WiAaTLGIGrK aYsHS8uGKNsA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 May 2020 16:41:22 -0700 IronPort-SDR: /SuXbX+nIttKYIVAXn7ryfft6bVJK7Y9XOX9cM3uxXZRRaTC6vP4fz/n1teYOnNlrplDAgxGQ/ n/vAnLnTsXAg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,385,1583222400"; d="scan'208";a="251605394" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga007.fm.intel.com with ESMTP; 12 May 2020 16:41:21 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 12 May 2020 16:41:21 -0700 Received: from fmsmsx605.amr.corp.intel.com (10.18.126.85) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 12 May 2020 16:41:21 -0700 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 12 May 2020 16:41:21 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.47) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 12 May 2020 16:41:21 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LIKaIhfvMQYievvVvlDLuyfDi/ocuvIyHyDsECl3qlZQnyV7rPAHTFvRQ8ReL/TBOlLTqne/mX2XP3fqnHbc8DZJjZ9bRxJywhJ992Lu8VJiTMhwEAew/QitgIKPrOhRDRMUSrv7/gQiV7rJbn9qtes5DHTaJ+ZkzDKztKauXxt7J+bpDfTY+T0s7Av7ufGWZr3hsGEJTfMz+mivgUfYUzRtZoFT8YVRA4NieO9AAXY1pTM2IVVLnymupyITu0HODkkL/eTE1ZxugS75Ey4f6ovby41grGb9EAcs+A5ZLqAIJ5qO9u/jvvBUP7ly15lrZnv98EAjjtOl19ejwe65xw== 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=3l7TVPOecOziTu09JwvzcxYh+iJF35OWIHwK1m+gf3Q=; b=daAOnZLLaGEUlEf+9G1Wy9hts4t9lz2YsZ7pkHNXHatZvyfNE7qWf8yRSkRQjwXiyGdd/0QLC1Zp06OwdmeGA6R1F0WRB9LYV/PuGtK427zkDU3AgNdKZP6IhQC8QYZqSjJgF2okzK/TLlsU3nKhPpzAYTyg4U6rcWnPSZSRdO4tcXeDOtTvQsAR3rRLiyioKIYspX9vauTRjhA/2tEojXWCoDk6LVrbz8OrtCjsDSfWRGODRJIRoBPxHNCWpnGNh5z+uhJGCeYOuROQFA5uV5t7y+AioD9rpVN+Q3YVdAEZTc/y7BjlzLogpTCflSWzPmS85DazsbA48hZLGYNepg== 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=3l7TVPOecOziTu09JwvzcxYh+iJF35OWIHwK1m+gf3Q=; b=QiWzE79+wyKXDB2rw3MFtg1DYu42SJ9OtHr3aLtJ+kV3V654GaF/bluRMZIy7hodpzlcva6d1B3Z8NfjN0C0BOeXJ8kL1Kx859W/B6ASbNb3rC6AcvrLjM2R32kUDAWj1Blk44zOfcx0gYWFS7uOsZubxbnH/4C1eAgG2pCVYZE= Received: from MW3PR11MB4684.namprd11.prod.outlook.com (2603:10b6:303:5d::14) by MW3PR11MB4556.namprd11.prod.outlook.com (2603:10b6:303:5b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.34; Tue, 12 May 2020 23:41:20 +0000 Received: from MW3PR11MB4684.namprd11.prod.outlook.com ([fe80::f9:c325:bf1e:4b6d]) by MW3PR11MB4684.namprd11.prod.outlook.com ([fe80::f9:c325:bf1e:4b6d%8]) with mapi id 15.20.2979.033; Tue, 12 May 2020 23:41:20 +0000 From: "Wang, Yipeng1" To: "Lilijun (Jerry)" , Honnappa Nagarahalli , "'dev@dpdk.org'" CC: wangyunjian , xudingke , "'stable@dpdk.org'" , nd , nd Thread-Topic: [dpdk-dev] [PATCH] lib/librte_hash: add rte_hash_del_key_fixed without compact Thread-Index: AQHWIzN/AqgKW8YYt0+Ym56RH87GIaiaP6OAgArF0tA= Date: Tue, 12 May 2020 23:41:20 +0000 Message-ID: References: <40280F65B1B0B44E8089ED31C01616EBA49921F2@dggeml529-mbx.china.huawei.com> <40280F65B1B0B44E8089ED31C01616EBA4997CD9@dggeml529-mbx.china.huawei.com> <40280F65B1B0B44E8089ED31C01616EBA49A19CE@dggeml529-mbx.china.huawei.com> In-Reply-To: <40280F65B1B0B44E8089ED31C01616EBA49A19CE@dggeml529-mbx.china.huawei.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.2.0.6 dlp-product: dlpe-windows authentication-results: huawei.com; dkim=none (message not signed) header.d=none;huawei.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.55.52.202] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 131c7840-74d9-4d7b-f583-08d7f6cdf8fb x-ms-traffictypediagnostic: MW3PR11MB4556: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 0401647B7F x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5Y/rQzVAx1IHp/NGmbyZqKQhiUrpyvvRevNuxmkJVbbDbPGE4VsXleoEdmebOTTMtYPFveIZQ1tl5lEVqAmivm/KcxfxFM4m77OpLG/09krRw6Fgd8N1HWAr1W1J/LlH8XxtbZTt+kM9RjqrWCoGYMk3wDBz9juJPRYoGDKzitMdD17kLfDiV+x9LdTAI8mNOM8cC59RrvuE8V7CEFke8ylNiQNvKzr+Aoa/ZIgj5oEy3QYO3lxtV8WwdxOfBBTaTtgm+5d9i/zK3H3+UaGkkt2pIaU1h6ipMZ3EWRLWViBbnyVsRCwiaaLUmpC71sJ7gHRgMPeOLa9tHUMi60Prwsp0g7548a1fWMKGjfETywiqXNZ7SZ6rP0Z7vtLWJZX8Z96FxeXiJ3O2TShM+yG+L5QOV2qYRTJs597d4xhnR+/dMiw5Svt99qpfz5sW9B2BUWXNU9zfyUKMLf0hoEgGOafPt6rbkQS0Q/e4jxXRludURQVoTwDbkyffQa09KZnjihaMKKFsBqq3SPkd2URUBh3XmnIzKstzUSrBhJwbVFE= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW3PR11MB4684.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(366004)(396003)(346002)(39860400002)(136003)(376002)(33430700001)(86362001)(316002)(5660300002)(66446008)(66556008)(66946007)(8936002)(76116006)(66476007)(33656002)(8676002)(64756008)(30864003)(33440700001)(110136005)(52536014)(2906002)(6506007)(478600001)(186003)(7696005)(55016002)(54906003)(53546011)(26005)(4326008)(9686003)(71200400001)(491001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: 8RimZdouxn17r4uoqhb25h5a+FMYq1mnprOP8BRxumLRMyQt7xKGpSXn7iWj7rOZxKbXCoQ8r3Sq/Z8QV3qCixbO5zWUSpMRt1MWDd15cjn17v/tg+gtyJEwB7CHjg5JIv6QMAXG0uuz/l8nO/ZLUzWPPTVSuIsHZDH4B9onSCL7d12LDGMvrtXGnsgUDwEqhdFTqT9TvPOuaBfkzz1Pz7yym3urq7HLL5e/lPiApqjAFbkRcFawKQ/zm325FZXCBMDV5o4fDNzOH84hUiAdZfKdmCu0p9d/32C8zFcZT/dxxNyq9emBeqBDIMpof0XNpPtwoNyxCUydAggVwkeMpJ+iFajingF6jvSsWW1FFwV7swkHgPzcVpsdy13Hi3uMM6QuoHIiDAXHMnYhemJ7UuYd1/P8YvHpAjl3CzevOLWOVkDmtPx+tHWa6P/9XCmKFGej5+IA/qsy+kBv67iGi4uau7n39En59Rmw414FOkc= 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-Network-Message-Id: 131c7840-74d9-4d7b-f583-08d7f6cdf8fb X-MS-Exchange-CrossTenant-originalarrivaltime: 12 May 2020 23:41:20.0333 (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: YcJvN2pjXuYmyuuX9WZdDEOYo9lMyOkRg6cNf6aWUgF0QWK5K621HZxx5XETUAUHWrtCWVg7UmYKso8DxvyUqQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4556 X-OriginatorOrg: intel.com Subject: Re: [dpdk-stable] [dpdk-dev] [PATCH] lib/librte_hash: add rte_hash_del_key_fixed without compact X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMaWxpanVuIChKZXJyeSkgPGpl cnJ5LmxpbGlqdW5AaHVhd2VpLmNvbT4NCj4gU2VudDogVHVlc2RheSwgTWF5IDUsIDIwMjAgNjox MCBQTQ0KPiBUbzogSG9ubmFwcGEgTmFnYXJhaGFsbGkgPEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFy bS5jb20+Ow0KPiAnZGV2QGRwZGsub3JnJyA8ZGV2QGRwZGsub3JnPg0KPiBDYzogd2FuZ3l1bmpp YW4gPHdhbmd5dW5qaWFuQGh1YXdlaS5jb20+OyB4dWRpbmdrZQ0KPiA8eHVkaW5na2VAaHVhd2Vp LmNvbT47ICdzdGFibGVAZHBkay5vcmcnIDxzdGFibGVAZHBkay5vcmc+OyBuZA0KPiA8bmRAYXJt LmNvbT47IFdhbmcsIFlpcGVuZzEgPHlpcGVuZzEud2FuZ0BpbnRlbC5jb20+OyBuZA0KPiA8bmRA YXJtLmNvbT4NCj4gU3ViamVjdDog562U5aSNOiBbZHBkay1kZXZdIFtQQVRDSF0gbGliL2xpYnJ0 ZV9oYXNoOiBhZGQNCj4gcnRlX2hhc2hfZGVsX2tleV9maXhlZCB3aXRob3V0IGNvbXBhY3QNCj4g DQo+ID4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiA+IOWPkeS7tuS6ujogSG9ubmFwcGEgTmFn YXJhaGFsbGkgW21haWx0bzpIb25uYXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tXQ0KPiA+IOWPkemA geaXtumXtDogMjAyMOW5tDXmnIg25pelIDc6MTgNCj4gPiDmlLbku7bkuro6IExpbGlqdW4gKEpl cnJ5KSA8amVycnkubGlsaWp1bkBodWF3ZWkuY29tPjsgJ2RldkBkcGRrLm9yZycNCj4gPiA8ZGV2 QGRwZGsub3JnPg0KPiA+IOaKhOmAgTogd2FuZ3l1bmppYW4gPHdhbmd5dW5qaWFuQGh1YXdlaS5j b20+OyB4dWRpbmdrZQ0KPiA+IDx4dWRpbmdrZUBodWF3ZWkuY29tPjsgJ3N0YWJsZUBkcGRrLm9y ZycgPHN0YWJsZUBkcGRrLm9yZz47IG5kDQo+ID4gPG5kQGFybS5jb20+OyBIb25uYXBwYSBOYWdh cmFoYWxsaSA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47DQo+ID4geWlwZW5nMS53YW5n QGludGVsLmNvbTsgbmQgPG5kQGFybS5jb20+DQo+ID4g5Li76aKYOiBSRTogW2RwZGstZGV2XSBb UEFUQ0hdIGxpYi9saWJydGVfaGFzaDogYWRkIHJ0ZV9oYXNoX2RlbF9rZXlfZml4ZWQNCj4gPiB3 aXRob3V0IGNvbXBhY3QNCj4gPg0KPiA+IDxzbmlwPg0KPiA+DQo+ID4gQWRkaW5nIFlpcGVuZywg bWFpbnRhaW5lciBmb3IgaGFzaCBsaWJyYXJ5DQo+ID4NCj4gPiA+DQo+ID4gPiBUaGFua3MgZm9y IHlvdXIgcmVwbHkuDQo+ID4gPg0KPiA+ID4gVXNpbmcgcnRlX2hhc2ggaXRlcmF0ZSBhbmQgZGVs ZXRlIGtleXMgaXMgdG8gZnJlZSB0aGUgcmVsYXRlZCBkYXRhJ3MNCj4gbWVtb3J5Lg0KPiA+ID4g VGhlcmUgYXJlIHR3byByZWFzb25zIHdoeSBydGVfaGFzaF9yZXNldCgpIGlzIG5vdCBwcm9wZXJs eToNCj4gPiA+IDEpICB0aGUgcmVzZXQgZnVuY3Rpb24ganVzdCBjbGVhciBhbGwga2V5cywgdGhl IGtleSdzIHJlbGF0ZWQgZGF0YSBhcmUgbGVha2VkLg0KPiA+IFRoYXQgaXMgYSBnb29kIHBvaW50 LiBJIHRoaW5rIHRoaXMgc2hvdWxkIGJlIGRvY3VtZW50ZWQgaW4gdGhlIEFQSS4NCg0KW1lpcGVu Z10NCkJ5IGxlYWtpbmcsIGRvIHlvdSBtZWFuIHRoYXQgeW91IGtlZXAgZGF0YSBpbiBzZXBhcmF0 ZSBwbGFjZXMgYW5kIHRoZSBwb2ludGVycw0KdG8gdGhlbSBhcmUgbWlzc2VkIGZyb20gdGFibGUg YWZ0ZXIgcmVzZXQ/IENhbiB5b3Uga2VlcCBkYXRhIGluIGFuIGFycmF5IGFuZCBpdGVyYXRlIHRo YXQgYXJyYXkgaW5zdGVhZD8gDQo+ID4NCj4gPiA+IDIpICBJbiBzb21lIGNhc2VzLCBJIGRvbid0 IG5lZWQgZGVsZXRlIGFsbCBrZXlzLiBKdXN0IHNvbWUgc2VsZWN0ZWQNCj4gPiA+IGtleXMgYW5k IGRhdGEgYXJlIGRlbGV0ZWQgYW5kIHJlbGVhc2VkLg0KW1lpcGVuZ10NCkNvdWxkIHlvdSBrZWVw IGEgY2FuZGlkYXRlIGxpc3Qgb2Yga2V5cyB5b3Ugd2FudCB0byBkZWxldGUgaW4gYW5vdGhlciBk YXRhIHN0cnVjdHVyZQ0Kc28geW91IGRvbuKAmXQgbmVlZCB0byBpdGVyYXRlIHRoZSB3aG9sZSBo YXNoIHRhYmxlPw0KDQo+ID4gSSB1bmRlcnN0YW5kIHRoZSBwcm9ibGVtIHlvdSBoYXZlIHBvaW50 ZWQgb3V0IGFuZCB1bmRlcnN0YW5kIGhvdyB0bw0KPiA+IHJlcHJvZHVjZSBpdC4gQnV0LCB0aGUg dXNlIGNhc2UgaXMgbm90IGNsZWFyIHRvIG1lLiBDYW4geW91IHBsZWFzZQ0KPiA+IGV4cGxhaW4g dGhlIHVzZSBjYXNlPw0KPiBbTGlsaWp1biAoSmVycnkpXQ0KPiANCj4gQXMgeW91IGtub3csIHRo ZSBkcGRrIHJ0ZV9oYXNoIHVzZSBhIGZpeGVkIHNpemUgdGFibGUgdG8gc3RvcmUgYWxsIGtleXMv ZGF0YXMuDQo+IFRoZSBtZW1vcnkgdXNlZCBieSBoYXNoIHRhYmxlIGlzIHJlbGF0ZWQgd2l0aCB0 aGlzIGZpeGVkIHNpemUuDQo+IEluIG15IGNhc2UsIG5vcm1hbGx5IHRoZSBjb3VudCBvZiBrZXlz IGlzIGFib3V0IDEwMCwwMDAgYnV0IHNvbWV0aW1lcyB0aGUNCj4gY291bnQgbWF5IGJ1cnN0IHVw IHRvIDMwLDAwMCwwMDAuDQo+IEluIG9yZGVyIHRvIHNhdmUgbWVtb3J5IHVzYWdlLCBJIGNyZWF0 ZSBhIHNtYWxsIGhhc2ggdGFibGUgd2l0aCAxMDAsMDAwIHNpemUNCj4gYW5kIHJlcGxhY2UgdG8g YSBiaWdnZXIgb25lIHdpdGggMzAsMDAwLDAwMCBzaXplIHdoZW4gdGhlcmUgYXJlIG1vcmUga2V5 cyB0bw0KPiBiZSBzdG9yZWQuIEFsc28gd2hlbiB0aGUga2V5J3MgY291bnQgcmVkdWNlZCB0byBs ZXNzIHRoYW4gMTAwLDAwMCwgSSByZXBsYWNlDQo+IHRoZSBoYXNoIHRhYmxlIHdpdGggYSBzbWFs bCBvbmUgdG8gc2F2ZSB0aGUgbWVtb3J5Lg0KW1lpcGVuZ10NCkNvdWxkIHlvdSB0ZWxsIG1lIG1v cmUgb24gdGhlIHVzZSBjYXNlPyBTaW5jZSBpbnNlcnRpb24gd291bGQgYWxzbyBpbnZhbGlkYXRl IHRoZQ0KSXRlcmF0b3IsIGRvIHlvdSBpbnNlcnQga2V5cyBvbmx5IHRvIG5ldyB0YWJsZSBkdXJp bmcgcmVzaXppbmc/DQogDQo+IA0KPiA+DQo+ID4gPg0KPiA+ID4gSmVycnkuDQo+ID4gPg0KPiA+ ID4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiA+ID4g5Y+R5Lu25Lq6OiBIb25uYXBwYSBOYWdh cmFoYWxsaSBbbWFpbHRvOkhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb21dDQo+ID4gPiDlj5Hp gIHml7bpl7Q6IDIwMjDlubQ05pyIMjnml6UgNDo0Ng0KPiA+ID4g5pS25Lu25Lq6OiBMaWxpanVu IChKZXJyeSkgPGplcnJ5LmxpbGlqdW5AaHVhd2VpLmNvbT47ICdkZXZAZHBkay5vcmcnDQo+ID4g PiA8ZGV2QGRwZGsub3JnPg0KPiA+ID4g5oqE6YCBOiB3YW5neXVuamlhbiA8d2FuZ3l1bmppYW5A aHVhd2VpLmNvbT47IHh1ZGluZ2tlDQo+ID4gPiA8eHVkaW5na2VAaHVhd2VpLmNvbT47ICdzdGFi bGVAZHBkay5vcmcnIDxzdGFibGVAZHBkay5vcmc+OyBuZA0KPiA+ID4gPG5kQGFybS5jb20+OyBI b25uYXBwYSBOYWdhcmFoYWxsaQ0KPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47DQo+ ID4gbmQNCj4gPiA+IDxuZEBhcm0uY29tPg0KPiA+ID4g5Li76aKYOiBSRTogW2RwZGstZGV2XSBb UEFUQ0hdIGxpYi9saWJydGVfaGFzaDogYWRkDQo+ID4gPiBydGVfaGFzaF9kZWxfa2V5X2ZpeGVk IHdpdGhvdXQgY29tcGFjdA0KPiA+ID4NCj4gPiA+IDxzbmlwPg0KPiA+ID4NCj4gPiA+IEhpIEpl cnJ5LA0KPiA+ID4gCUZldyBxdWVzdGlvbnMgaW5saW5lLg0KPiA+ID4NCj4gPiA+ID4gU3ViamVj dDogW2RwZGstZGV2XSBbUEFUQ0hdIGxpYi9saWJydGVfaGFzaDogYWRkDQo+ID4gPiA+IHJ0ZV9o YXNoX2RlbF9rZXlfZml4ZWQgd2l0aG91dCBjb21wYWN0DQo+ID4gPiA+DQo+ID4gPiA+IFRoZSBr ZXlzIGlkeCBhcmUgc3RvcmVkIGluIHJ0ZV9oYXNoIG1haW4gYnVja2V0IGtleSBzbG90cyBhbmQN Cj4gPiA+ID4gZXh0ZW5kIGJ1Y2tldCBrZXkgc3RvdHMuDQo+ID4gPiA+IFdlIGl0ZXJhdGUgZXZl cnkgbm8gZW1wdHkgS2V5cyBpbiBoLT5idWNrZXRzIGFuZCBoLT5idWNrZXRzX2V4dA0KPiA+ID4g PiBmcm9tIHN0YXJ0IHRvIGxhc3QuDQo+ID4gPiA+IFdoZW4gZGVsZXRpbmcga2V5cyB0aGUgZnVu Y3Rpb24gX19ydGVfaGFzaF9jb21wYWN0X2xsKCkgbWF5IG1vdmUNCj4gPiA+ID4gbGFzdF9ia3Qn cyBrZXkgdG8gcHJldmlvdXMgYnVja2V0IGluIG9yZGVyIHRvIGNvbXBhY3QgZXh0ZW5kIGJ1Y2tl dCBsaXN0Lg0KPiA+ID4gPiBJZiB0aGUgcHJldmlvdXMgYnVja2V0IGhhcyBiZWVuIGl0ZXJhdGVk LCB0aGUgbW92ZWQga2V5IG1heSBiZQ0KPiA+ID4gPiBtaXNzZWQgZm9yIHVzZXJzLg0KPiA+ID4g PiBUaGVuIHRob3NlIG1pc3NlZCBrZXlzIGFyZSBsZWFrZWQgYW5kIHJ0ZV9oYXNoIHRhYmxlIGNh bid0IGJlIGNsZWFudXAuDQo+ID4gPiA+IFNvIHdlIGFkZCBhIG5ldyBBUEkgcnRlX2hhc2hfZGVs X2tleV9maXhlZCgpIHVzZWQgaW4gaXRlcmF0ZSBsb29wDQo+ID4gPiA+IHRvIGF2b2lkIHRoaXMg YnVncy4NCj4gPiA+ID4NCj4gPiA+ID4gLS0tDQo+ID4gPiA+ICBsaWIvbGlicnRlX2hhc2gvcnRl X2N1Y2tvb19oYXNoLmMgICAgfCAxOSArKysrKysrKysrKysrKy0tLS0tDQo+ID4gPiA+ICBsaWIv bGlicnRlX2hhc2gvcnRlX2hhc2guaCAgICAgICAgICAgfCAgNSArKysrKw0KPiA+ID4gPiAgbGli L2xpYnJ0ZV9oYXNoL3J0ZV9oYXNoX3ZlcnNpb24ubWFwIHwgIDEgKw0KPiA+ID4gPiAgMyBmaWxl cyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0KPiA+ID4gPg0KPiA+ ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9oYXNoL3J0ZV9jdWNrb29faGFzaC5jDQo+ID4g PiA+IGIvbGliL2xpYnJ0ZV9oYXNoL3J0ZV9jdWNrb29faGFzaC5jDQo+ID4gPiA+IGluZGV4IGI1 MjYzMGIuLjJkYTNjMWQgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2xpYi9saWJydGVfaGFzaC9ydGVf Y3Vja29vX2hhc2guYw0KPiA+ID4gPiArKysgYi9saWIvbGlicnRlX2hhc2gvcnRlX2N1Y2tvb19o YXNoLmMNCj4gPiA+ID4gQEAgLTE1MjMsNyArMTUyMyw3IEBAIHNlYXJjaF9hbmRfcmVtb3ZlKGNv bnN0IHN0cnVjdCBydGVfaGFzaCAqaCwNCj4gPiA+ID4gY29uc3Qgdm9pZCAqa2V5LA0KPiA+ID4g Pg0KPiA+ID4gPiAgc3RhdGljIGlubGluZSBpbnQzMl90DQo+ID4gPiA+ICBfX3J0ZV9oYXNoX2Rl bF9rZXlfd2l0aF9oYXNoKGNvbnN0IHN0cnVjdCBydGVfaGFzaCAqaCwgY29uc3Qgdm9pZA0KPiA+ ICprZXksDQo+ID4gPiA+IC0JCQkJCQloYXNoX3NpZ190IHNpZykNCj4gPiA+ID4gKwkJCQkJCWhh c2hfc2lnX3Qgc2lnLCB1aW50OF90DQo+ID4gPiA+IGNvbXBhY3QpDQo+ID4gPiA+ICB7DQo+ID4g PiA+ICAJdWludDMyX3QgcHJpbV9idWNrZXRfaWR4LCBzZWNfYnVja2V0X2lkeDsNCj4gPiA+ID4g IAlzdHJ1Y3QgcnRlX2hhc2hfYnVja2V0ICpwcmltX2JrdCwgKnNlY19ia3QsICpwcmV2X2JrdCwN Cj4gPiA+ID4gKmxhc3RfYmt0Ow0KPiA+ID4gQEANCj4gPiA+ID4gLTE1NDEsNyArMTU0MSw4IEBA IF9fcnRlX2hhc2hfZGVsX2tleV93aXRoX2hhc2goY29uc3Qgc3RydWN0DQo+ID4gPiA+IHJ0ZV9o YXNoICpoLCBjb25zdCB2b2lkICprZXksDQo+ID4gPiA+ICAJLyogbG9vayBmb3Iga2V5IGluIHBy aW1hcnkgYnVja2V0ICovDQo+ID4gPiA+ICAJcmV0ID0gc2VhcmNoX2FuZF9yZW1vdmUoaCwga2V5 LCBwcmltX2JrdCwgc2hvcnRfc2lnLCAmcG9zKTsNCj4gPiA+ID4gIAlpZiAocmV0ICE9IC0xKSB7 DQo+ID4gPiA+IC0JCV9fcnRlX2hhc2hfY29tcGFjdF9sbChoLCBwcmltX2JrdCwgcG9zKTsNCj4g PiA+ID4gKwkJaWYgKGNvbXBhY3QpDQo+ID4gPiA+ICsJCQlfX3J0ZV9oYXNoX2NvbXBhY3RfbGwo aCwgcHJpbV9ia3QsIHBvcyk7DQo+ID4gPiA+ICAJCWxhc3RfYmt0ID0gcHJpbV9ia3QtPm5leHQ7 DQo+ID4gPiA+ICAJCXByZXZfYmt0ID0gcHJpbV9ia3Q7DQo+ID4gPiA+ICAJCWdvdG8gcmV0dXJu X2JrdDsNCj4gPiA+ID4gQEAgLTE1NTMsNyArMTU1NCw4IEBAIF9fcnRlX2hhc2hfZGVsX2tleV93 aXRoX2hhc2goY29uc3Qgc3RydWN0DQo+ID4gPiA+IHJ0ZV9oYXNoICpoLCBjb25zdCB2b2lkICpr ZXksDQo+ID4gPiA+ICAJRk9SX0VBQ0hfQlVDS0VUKGN1cl9ia3QsIHNlY19ia3QpIHsNCj4gPiA+ ID4gIAkJcmV0ID0gc2VhcmNoX2FuZF9yZW1vdmUoaCwga2V5LCBjdXJfYmt0LCBzaG9ydF9zaWcs ICZwb3MpOw0KPiA+ID4gPiAgCQlpZiAocmV0ICE9IC0xKSB7DQo+ID4gPiA+IC0JCQlfX3J0ZV9o YXNoX2NvbXBhY3RfbGwoaCwgY3VyX2JrdCwgcG9zKTsNCj4gPiA+ID4gKwkJCWlmIChjb21wYWN0 KQ0KPiA+ID4gPiArCQkJCV9fcnRlX2hhc2hfY29tcGFjdF9sbChoLCBjdXJfYmt0LCBwb3MpOw0K PiA+ID4gPiAgCQkJbGFzdF9ia3QgPSBzZWNfYmt0LT5uZXh0Ow0KPiA+ID4gPiAgCQkJcHJldl9i a3QgPSBzZWNfYmt0Ow0KPiA+ID4gPiAgCQkJZ290byByZXR1cm5fYmt0Ow0KPiA+ID4gPiBAQCAt MTYwNywxNCArMTYwOSwyMSBAQCBydGVfaGFzaF9kZWxfa2V5X3dpdGhfaGFzaChjb25zdCBzdHJ1 Y3QNCj4gPiA+ID4gcnRlX2hhc2ggKmgsDQo+ID4gPiA+ICAJCQljb25zdCB2b2lkICprZXksIGhh c2hfc2lnX3Qgc2lnKSAgew0KPiA+ID4gPiAgCVJFVFVSTl9JRl9UUlVFKCgoaCA9PSBOVUxMKSB8 fCAoa2V5ID09IE5VTEwpKSwgLUVJTlZBTCk7DQo+ID4gPiA+IC0JcmV0dXJuIF9fcnRlX2hhc2hf ZGVsX2tleV93aXRoX2hhc2goaCwga2V5LCBzaWcpOw0KPiA+ID4gPiArCXJldHVybiBfX3J0ZV9o YXNoX2RlbF9rZXlfd2l0aF9oYXNoKGgsIGtleSwgc2lnLCAxKTsNCj4gPiA+ID4gIH0NCj4gPiA+ ID4NCj4gPiA+ID4gIGludDMyX3QNCj4gPiA+ID4gIHJ0ZV9oYXNoX2RlbF9rZXkoY29uc3Qgc3Ry dWN0IHJ0ZV9oYXNoICpoLCBjb25zdCB2b2lkICprZXkpICB7DQo+ID4gPiA+ICAJUkVUVVJOX0lG X1RSVUUoKChoID09IE5VTEwpIHx8IChrZXkgPT0gTlVMTCkpLCAtRUlOVkFMKTsNCj4gPiA+ID4g LQlyZXR1cm4gX19ydGVfaGFzaF9kZWxfa2V5X3dpdGhfaGFzaChoLCBrZXksIHJ0ZV9oYXNoX2hh c2goaCwNCj4gPiBrZXkpKTsNCj4gPiA+ID4gKwlyZXR1cm4gX19ydGVfaGFzaF9kZWxfa2V5X3dp dGhfaGFzaChoLCBrZXksIHJ0ZV9oYXNoX2hhc2goaCwNCj4gPiBrZXkpLA0KPiA+ID4gPiAxKTsN Cj4gPiA+ID4gK30NCj4gPiA+ID4gKw0KPiA+ID4gPiAraW50MzJfdA0KPiA+ID4gPiArcnRlX2hh c2hfZGVsX2tleV9maXhlZChjb25zdCBzdHJ1Y3QgcnRlX2hhc2ggKmgsIGNvbnN0IHZvaWQgKmtl eSkgew0KPiA+ID4gPiArCVJFVFVSTl9JRl9UUlVFKCgoaCA9PSBOVUxMKSB8fCAoa2V5ID09IE5V TEwpKSwgLUVJTlZBTCk7DQo+ID4gPiA+ICsJcmV0dXJuIF9fcnRlX2hhc2hfZGVsX2tleV93aXRo X2hhc2goaCwga2V5LCBydGVfaGFzaF9oYXNoKGgsDQo+ID4ga2V5KSwNCj4gPiA+ID4gMCk7DQo+ ID4gPiA+ICB9DQo+ID4gPiA+DQo+ID4gPiA+ICBpbnQNCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2xp Yi9saWJydGVfaGFzaC9ydGVfaGFzaC5oDQo+ID4gPiA+IGIvbGliL2xpYnJ0ZV9oYXNoL3J0ZV9o YXNoLmggaW5kZXggZWNlYjM2NS4uOWI3MWQ4YSAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvbGliL2xp YnJ0ZV9oYXNoL3J0ZV9oYXNoLmgNCj4gPiA+ID4gKysrIGIvbGliL2xpYnJ0ZV9oYXNoL3J0ZV9o YXNoLmgNCj4gPiA+ID4gQEAgLTI5Nyw2ICsyOTcsMTEgQEAgcnRlX2hhc2hfYWRkX2tleV93aXRo X2hhc2goY29uc3Qgc3RydWN0DQo+ID4gPiBydGVfaGFzaA0KPiA+ID4gPiAqaCwgY29uc3Qgdm9p ZCAqa2V5LCBoYXNoX3NpZ190ICBpbnQzMl90ICBydGVfaGFzaF9kZWxfa2V5KGNvbnN0DQo+ID4g PiA+IHN0cnVjdCBydGVfaGFzaCAqaCwgY29uc3Qgdm9pZCAqa2V5KTsNCj4gPiA+ID4NCj4gPiA+ ID4gKw0KPiA+ID4gPiArLyogZm9yIHdpdGhvdXQgY29tcGFjdCAqLw0KPiA+ID4gPiAraW50MzJf dA0KPiA+ID4gPiArcnRlX2hhc2hfZGVsX2tleV9maXhlZChjb25zdCBzdHJ1Y3QgcnRlX2hhc2gg KmgsIGNvbnN0IHZvaWQNCj4gPiA+ID4gKyprZXkpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICAvKioN Cj4gPiA+ID4gICAqIFJlbW92ZSBhIGtleSBmcm9tIGFuIGV4aXN0aW5nIGhhc2ggdGFibGUuDQo+ ID4gPiA+ICAgKiBUaGlzIG9wZXJhdGlvbiBpcyBub3QgbXVsdGktdGhyZWFkIHNhZmUgZGlmZiAt LWdpdA0KPiA+ID4gPiBhL2xpYi9saWJydGVfaGFzaC9ydGVfaGFzaF92ZXJzaW9uLm1hcA0KPiA+ ID4gPiBiL2xpYi9saWJydGVfaGFzaC9ydGVfaGFzaF92ZXJzaW9uLm1hcA0KPiA+ID4gPiBpbmRl eCAzMGNjMDg2Li4xOTQxZDE3IDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9saWIvbGlicnRlX2hhc2gv cnRlX2hhc2hfdmVyc2lvbi5tYXANCj4gPiA+ID4gKysrIGIvbGliL2xpYnJ0ZV9oYXNoL3J0ZV9o YXNoX3ZlcnNpb24ubWFwDQo+ID4gPiA+IEBAIC0xMSw2ICsxMSw3IEBAIERQREtfMjAuMCB7DQo+ ID4gPiA+ICAJcnRlX2hhc2hfY291bnQ7DQo+ID4gPiA+ICAJcnRlX2hhc2hfY3JlYXRlOw0KPiA+ ID4gPiAgCXJ0ZV9oYXNoX2RlbF9rZXk7DQo+ID4gPiA+ICsJcnRlX2hhc2hfZGVsX2tleV9maXhl ZDsNCj4gPiA+ID4gIAlydGVfaGFzaF9kZWxfa2V5X3dpdGhfaGFzaDsNCj4gPiA+ID4gIAlydGVf aGFzaF9maW5kX2V4aXN0aW5nOw0KPiA+ID4gPiAgCXJ0ZV9oYXNoX2ZyZWU7DQo+ID4gPiA+IC0t DQo+ID4gPiA+IDIuMTkuMQ0KPiA+ID4gPg0KPiA+ID4gPiAtLS0tLemCruS7tuWOn+S7ti0tLS0t DQo+ID4gPiA+IOWPkeS7tuS6ujogTGlsaWp1biAoSmVycnkpDQo+ID4gPiA+IOWPkemAgeaXtumX tDogMjAyMOW5tDTmnIgxOOaXpSAxODowMA0KPiA+ID4gPiDmlLbku7bkuro6ICdkZXZAZHBkay5v cmcnIDxkZXZAZHBkay5vcmc+OyAnc3RhYmxlQGRwZGsub3JnJw0KPiA+ID4gPiA8c3RhYmxlQGRw ZGsub3JnPg0KPiA+ID4gPiDkuLvpopg6IHJ0ZV9oYXNoIGJ1ZzogY2FuJ3QgaXRlcmF0ZSBhbGwg ZW50cmllcyB3aGVuIGRlbGV0aW5nIGtleXMgaW4NCj4gPiA+ID4gcnRlX2hhc2ggaXRlcmF0ZSBs b29wLg0KPiA+ID4gPg0KPiA+ID4gPiBIaSBhbGwsDQo+ID4gPiA+DQo+ID4gPiA+ICAgICBJbiBt eSB0ZXN0LCBlbnRyaWVzIGNhbid0IGJlIGNsZWFudXAgaW4gcnRlX2hhc2ggdGFibGUgd2hlbg0K PiA+ID4gPiBkZWxldGluZyBrZXlzIGluIHJ0ZV9oYXNoIGl0ZXJhdGUgbG9vcC4gVGhlIHRlc3Qg c3RlcHM6DQo+ID4gPiA+ICAgICAxLiAgY3JlYXRlIGEgaGFzaCB0YWJsZSB0YWJsZTEgd2l0aCBs aW1pdCAzMDAwMCwgZXh0IGJ1Y2tldA0KPiA+ID4gPiBlbmFibGVkLCAgYW5kIGluc2VydCAzMDAw MCBlbnRyaWVzIGludG8gdGhpcyBoYXNoIHRhYmxlLg0KPiA+ID4gPiAgICAgMi4gIGNyZWF0ZSBh IGxhcmdlciBoYXNoIHRhYmxlIHRhYmxlMiB3aXRoIGxpbWl0IDYwMDAwLCAsIGV4dA0KPiA+ID4g PiBidWNrZXQNCj4gPiA+IGVuYWJsZWQuDQo+ID4gPiA+ICAgICAzLiAgaXRlcmF0ZSBhbGwgZW50 cmllcyBvZiB0YWJsZTEgYW5kIGluc2VydCB0aGVtIHRvIHRoZSB0YWJsZTIuDQo+ID4gPiA+IElu c2VydCBuZXcNCj4gPiA+ID4gMTAwMDAgZW50cmllcyB0byB0aGlzIHRhYmxlMi4NCj4gPiA+ID4g ICAgIDQuICBUaGVuIGZsdXNoIGFsbCBlbnRyaWVzIGZyb20gdGFibGUyIGJ5IGRlbGV0aW5nIGtl eXMgaW4NCj4gPiA+ID4gcnRlX2hhc2ggaXRlcmF0ZSBsb29wLiBCdXQgdGhlcmUgYXJlIHN0aWxs IHNvbWUga2V5cyBsZWFrZWQgaW4gdGFibGUyLg0KPiA+ID4gSXMgdGhlcmUgYW55IHJlYXNvbiBm b3IgZmx1c2hpbmcgdGFibGUyIGluIHRoaXMgbWFubmVyPw0KPiA+ID4gSXMgaXQgcG9zc2libGUg dG8gdXNlICdydGVfaGFzaF9yZXNldCcgaW5zdGVhZD8NCj4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+ ICAgICBGcm9tIG15IGFuYWx5c2lzLCB0aGUga2V5cyBpZHggYXJlIHN0b3JlZCBpbiBydGVfaGFz aCBtYWluDQo+ID4gPiA+IGJ1Y2tldCBrZXkgc2xvdHMgYW5kIGV4dGVuZCBidWNrZXQga2V5IHN0 b3RzLg0KPiA+ID4gPiAgICAgV2UgaXRlcmF0ZSBldmVyeSBubyBlbXB0eSBLZXlzIGluIGgtPmJ1 Y2tldHMgYW5kDQo+ID4gPiA+IGgtPmJ1Y2tldHNfZXh0IGZyb20gc3RhcnQgdG8gbGFzdC4NCj4g PiA+ID4gICAgIFdoZW4gZGVsZXRpbmcga2V5cyB0aGUgZnVuY3Rpb24gX19ydGVfaGFzaF9jb21w YWN0X2xsKCkgbWF5DQo+ID4gPiA+IG1vdmUgbGFzdF9ia3QncyBrZXkgdG8gcHJldmlvdXMgYnVj a2V0IGluIG9yZGVyIHRvIGNvbXBhY3QgZXh0ZW5kDQo+IGJ1Y2tldCBsaXN0Lg0KPiA+ID4gPiAg ICAgSWYgdGhlIHByZXZpb3VzIGJ1Y2tldCBoYXMgYmVlbiBpdGVyYXRlZCwgdGhlIG1vdmVkIGtl eSBtYXkgYmUNCj4gPiA+ID4gbWlzc2VkIGZvciB1c2Vycy4NCj4gPiA+ID4gICAgIFRoZW4gdGhv c2UgbWlzc2VkIGtleXMgYXJlIGxlYWtlZCBhbmQgcnRlX2hhc2ggdGFibGUgY2FuJ3QgYmUNCj4g Y2xlYW51cC4NCj4gPiA+ID4NCj4gPiA+ID4gICAgIE5vdyBJIHJldHJ5IHRoZSBpdGVyYXRlIGFu ZCBkZWxldGUga2V5cywgdGhhdCBjYW4gYXZvaWQgdGhpcyBidWcuDQo+ID4gPiA+DQo+ID4gPiA+ ICAgICBJcyB0aGVyZSBhbnkgaWRlYXMgb3Igc29sdXRpb25zIG9uIHRoaXMgYnVnPyAgIFRoYW5r cy4NCj4gPiA+ID4NCj4gPiA+ID4gSmVycnkuDQpbV2FuZywgWWlwZW5nXSANClRoYW5rcyBIb25u YXBwYSBmb3IgYWRkaW5nIG1lIHRvIHRoZSByZWNpcGllbnQgbGlzdCwgSSBhbSBzb3JyeSB0aGF0 IEkgbWlzc2VkIHRoaXMgcGF0Y2ggcHJldmlvdXNseS4NCkluIGZ1dHVyZSB5b3UgY291bGQgYWRk IG1lIHRvIHRoZSByZWNpcGllbnQgbGlzdCBmb3IgaGFzaCByZWxhdGVkIHBhdGNoZXMvcXVlc3Rp b25zISBUaGFua3MhDQoNCkFsdGhvdWdoIGl0IGlzIG5vdCBhIGJ1ZyB0byBtZSwgSSB0aGluayB0 aGlzIGlzIGEgdmFsaWQgaXNzdWUgYW5kIHRoYW5rcyBmb3IgYnJpbmdpbmcgaXQgdXAuDQpJIHNl ZSB0aGUgaXRlcmF0ZSBmdW5jdGlvbiBhcyBsaWtlIHRoZSBpdGVyYXRvciBmcm9tIEMrKyBzdGwu IEFueSBpbnNlcnRpb24vZGVsZXRlIHNob3VsZCBpbnZhbGlkYXRlDQp0aGUgY3VycmVudCBpdGVy YXRvciAoaW5zZXJ0aW9uIHRvbywgc2luY2UgaW5zZXJ0aW9uIGNvdWxkIG1vdmUgdGhpbmdzIGFy b3VuZCBpbiBjdWNrb28gcGF0aCkuDQpGcm9tIHRoaXMgcG9pbnQgb2YgdmlldywgYnkgZGVzaWdu IHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZSAibmV4dCIgcG9pbnRlciBpcyBzdGlsbCB2 YWxpZA0KYWZ0ZXIgYW55IGluc2VydGlvbi9kZWxldGlvbiBkdXJpbmcgdGhlIGl0ZXJhdGlvbi4g V2UgYXQgbGVhc3Qgc2hvdWxkIGNsYXJpZnkgdGhpcyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4NCg0K VGhhdCBzYWlkLCBpbiBjKysgc3RsIHRoZXJlIGlzIGluZGVlZCBhIHdheSB0byBpdGVyYXRlIGFu ZCBkZWxldGUgc2luY2UgaXQgcHJvdmlkZXMgYW4gZXJhc2UgZnVuY3Rpb24gcmV0dXJuaW5nIHRo ZSBuZXh0IHZhbGlkIGl0ZXJhdG9yLg0KSSB0aGluayB3ZSBkb27igJl0IGhhdmUgc3VjaCBjYXBh YmlsaXR5IGluIHJ0ZV9oYXNoIG5vdyBhcyB5b3UgcG9pbnRlZCBvdXQsIGFuZCB0aGlzIGlzIGEg Z2FwIHlvdSB3YW50IHRvIGZpbGwuDQoNCkhvd2V2ZXIsIHRoZSBwcm9wb3NlZCBBUEkgIiBydGVf aGFzaF9kZWxfa2V5X2ZpeGVkIiBleHBvc2VzIHRoZSBpbnRlcm5hbHMgb2YgdGhlIGltcGxlbWVu dGF0aW9uLg0KVGhlIGludGVybmFsIG9mIGhhc2ggbGliIGlzIHN1cHBvc2VkIHRvIGJlIGEgYmxh Y2sgYm94IHRvIHRoZSB1c2VyLiBBbHRob3VnaCB0aGUgaXNzdWUgaXMgY2F1c2VkIGJ5ICJjb21w YWN0aW9uIiwNCnRoZSBBUEkgc2hvdWxkIG5vdCBleHBvc2UgdGhhdC4gSSBhbSB0aGlua2luZyBh IGZ1bmN0aW9uIGxpa2UgdGhlICJlcmFzZSIgZnJvbSBzdGwgd2hpY2ggcmV0dXJucyB0aGUgbmV4 dCB2YWxpZA0KaXRlcmF0b3Igc2hvdWxkIGJlIGEgYmV0dGVyIHdheS4gV2hhdCBkbyB5b3UgdGhp bms/DQoNClJlc2l6aW5nIGlzIGFuIGltcG9ydGFudCBmZWF0dXJlIHRoYXQgd2UgYWx3YXlzIHRo aW5rIHRvIGFkZCBpbnRvIHJ0ZV9oYXNoLiBGZWVsIGZyZWUgdG8gcHJvcG9zZSByZXNpemluZw0K RmVhdHVyZXMgdG9vIGludG8gcnRlX2hhc2ggYXMgeW91IGFyZSBhbHJlYWR5IGRvaW5nIHNpbWls YXIgdGhpbmcgcmlnaHQgbm93LiANCg0KQlRXLCB5b3UgY2FuIGFkZCBhIFtSRkNdIHByZWZpeCB0 byB0aGUgc3ViamVjdCBsaW5lIGZvciBmdXR1cmUgUkZDIHBhdGNoZXMuDQoNCk90aGVyIHF1ZXN0 aW9ucy9jb21tZW50cyBhcmUgaW5saW5lZC4NCiANCg==