From mboxrd@z Thu Jan 1 00:00:00 1970 From: Akhil Goyal Subject: Re: [PATCH v4 04/10] lib: introduce ipsec library Date: Wed, 19 Dec 2018 12:08:17 +0000 Message-ID: <82f62109-a584-13e9-12ec-c9984a60567a@nxp.com> References: <1544110714-4514-2-git-send-email-konstantin.ananyev@intel.com> <1544804589-10338-4-git-send-email-konstantin.ananyev@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Thomas Monjalon , Mohammad Abdul Awal To: Konstantin Ananyev , "dev@dpdk.org" Return-path: Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30041.outbound.protection.outlook.com [40.107.3.41]) by dpdk.org (Postfix) with ESMTP id BE15F1B606 for ; Wed, 19 Dec 2018 13:08:23 +0100 (CET) In-Reply-To: <1544804589-10338-4-git-send-email-konstantin.ananyev@intel.com> Content-Language: en-US Content-ID: <25B0DA133467DB4290850CE6C714AB39@eurprd04.prod.outlook.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCk9uIDEyLzE0LzIwMTggOTo1MyBQTSwgS29uc3RhbnRpbiBBbmFueWV2IHdyb3RlOg0KPiBJ bnRyb2R1Y2UgbGlicnRlX2lwc2VjIGxpYnJhcnkuDQo+IFRoZSBsaWJyYXJ5IGlzIHN1cHBvc2Vk IHRvIHV0aWxpemUgZXhpc3RpbmcgRFBESyBjcnlwdG8tZGV2IGFuZA0KPiBzZWN1cml0eSBBUEkg dG8gcHJvdmlkZSBhcHBsaWNhdGlvbiB3aXRoIHRyYW5zcGFyZW50IElQc2VjIHByb2Nlc3Npbmcg QVBJLg0KPiBUaGF0IGluaXRpYWwgY29tbWl0IHByb3ZpZGVzIHNvbWUgYmFzZSBBUEkgdG8gbWFu YWdlDQo+IElQc2VjIFNlY3VyaXR5IEFzc29jaWF0aW9uIChTQSkgb2JqZWN0Lg0KPg0KPiBTaWdu ZWQtb2ZmLWJ5OiBNb2hhbW1hZCBBYmR1bCBBd2FsIDxtb2hhbW1hZC5hYmR1bC5hd2FsQGludGVs LmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogS29uc3RhbnRpbiBBbmFueWV2IDxrb25zdGFudGluLmFu YW55ZXZAaW50ZWwuY29tPg0KPiBBY2tlZC1ieTogRGVjbGFuIERvaGVydHkgPGRlY2xhbi5kb2hl cnR5QGludGVsLmNvbT4NCj4gLS0tDQo+ICAgTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDUgKw0KPiAgIGNvbmZpZy9jb21tb25fYmFzZSAgICAgICAgICAgICAgICAg ICAgIHwgICA1ICsNCj4gICBsaWIvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMiArDQo+ICAgbGliL2xpYnJ0ZV9pcHNlYy9NYWtlZmlsZSAgICAgICAgICAgICAgfCAgMjQg KysNCj4gICBsaWIvbGlicnRlX2lwc2VjL2lwc2VjX3Nxbi5oICAgICAgICAgICB8ICA0OCArKysr DQo+ICAgbGliL2xpYnJ0ZV9pcHNlYy9tZXNvbi5idWlsZCAgICAgICAgICAgfCAgMTAgKw0KPiAg IGxpYi9saWJydGVfaXBzZWMvcnRlX2lwc2VjX3NhLmggICAgICAgIHwgMTM5ICsrKysrKysrKysr DQo+ICAgbGliL2xpYnJ0ZV9pcHNlYy9ydGVfaXBzZWNfdmVyc2lvbi5tYXAgfCAgMTAgKw0KPiAg IGxpYi9saWJydGVfaXBzZWMvc2EuYyAgICAgICAgICAgICAgICAgIHwgMzI3ICsrKysrKysrKysr KysrKysrKysrKysrKysNCj4gICBsaWIvbGlicnRlX2lwc2VjL3NhLmggICAgICAgICAgICAgICAg ICB8ICA3NyArKysrKysNCj4gICBsaWIvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMiArDQo+ICAgbWsvcnRlLmFwcC5tayAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDIgKw0KPiAgIDEyIGZpbGVzIGNoYW5nZWQsIDY1MSBpbnNlcnRpb25zKCspDQo+ICAgY3JlYXRl IG1vZGUgMTAwNjQ0IGxpYi9saWJydGVfaXBzZWMvTWFrZWZpbGUNCj4gICBjcmVhdGUgbW9kZSAx MDA2NDQgbGliL2xpYnJ0ZV9pcHNlYy9pcHNlY19zcW4uaA0KPiAgIGNyZWF0ZSBtb2RlIDEwMDY0 NCBsaWIvbGlicnRlX2lwc2VjL21lc29uLmJ1aWxkDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxp Yi9saWJydGVfaXBzZWMvcnRlX2lwc2VjX3NhLmgNCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgbGli L2xpYnJ0ZV9pcHNlYy9ydGVfaXBzZWNfdmVyc2lvbi5tYXANCj4gICBjcmVhdGUgbW9kZSAxMDA2 NDQgbGliL2xpYnJ0ZV9pcHNlYy9zYS5jDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9saWJy dGVfaXBzZWMvc2EuaA0KPg0KPiBkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlOVEFJTkVS Uw0KPiBpbmRleCA3MWJhMzEyMDguLjNjZjBhODRhMiAxMDA2NDQNCj4gLS0tIGEvTUFJTlRBSU5F UlMNCj4gKysrIGIvTUFJTlRBSU5FUlMNCj4gQEAgLTEwNzEsNiArMTA3MSwxMSBAQCBGOiBkb2Mv Z3VpZGVzL3Byb2dfZ3VpZGUvcGR1bXBfbGliLnJzdA0KPiAgIEY6IGFwcC9wZHVtcC8NCj4gICBG OiBkb2MvZ3VpZGVzL3Rvb2xzL3BkdW1wLnJzdA0KPiAgIA0KPiArSVBzZWMgLSBFWFBFUklNRU5U QUwNCj4gK006IEtvbnN0YW50aW4gQW5hbnlldiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNv bT4NCj4gK0Y6IGxpYi9saWJydGVfaXBzZWMvDQo+ICtNOiBCZXJuYXJkIElyZW1vbmdlciA8YmVy bmFyZC5pcmVtb25nZXJAaW50ZWwuY29tPg0KPiArRjogdGVzdC90ZXN0L3Rlc3RfaXBzZWMuYw0K PiAgIA0KUGxlYXNlIGFkZCAiVDogZ2l0Oi8vZHBkay5vcmcvbmV4dC9kcGRrLW5leHQtY3J5cHRv IiBhcyBpdCB3b3VsZCBiZSANCm1haW50YWluZWQgaW4gY3J5cHRvIHN1YiB0cmVlIGluIGZ1dHVy ZS4NCj4gICBQYWNrZXQgRnJhbWV3b3JrDQo+ICAgLS0tLS0tLS0tLS0tLS0tLQ0KPiBkaWZmIC0t Z2l0IGEvY29uZmlnL2NvbW1vbl9iYXNlIGIvY29uZmlnL2NvbW1vbl9iYXNlDQo+IGluZGV4IGQx MmFlOThiYy4uMzI0OTlkNzcyIDEwMDY0NA0KPiAtLS0gYS9jb25maWcvY29tbW9uX2Jhc2UNCj4g KysrIGIvY29uZmlnL2NvbW1vbl9iYXNlDQo+IEBAIC05MjUsNiArOTI1LDExIEBAIENPTkZJR19S VEVfTElCUlRFX0JQRj15DQo+ICAgIyBhbGxvdyBsb2FkIEJQRiBmcm9tIEVMRiBmaWxlcyAocmVx dWlyZXMgbGliZWxmKQ0KPiAgIENPTkZJR19SVEVfTElCUlRFX0JQRl9FTEY9bg0KPiAgIA0KPiAr Iw0KPiArIyBDb21waWxlIGxpYnJ0ZV9pcHNlYw0KPiArIw0KPiArQ09ORklHX1JURV9MSUJSVEVf SVBTRUM9eQ0KPiArDQo+ICAgIw0KPiAgICMgQ29tcGlsZSB0aGUgdGVzdCBhcHBsaWNhdGlvbg0K PiAgICMNCj4gZGlmZiAtLWdpdCBhL2xpYi9NYWtlZmlsZSBiL2xpYi9NYWtlZmlsZQ0KPiBpbmRl eCBiNzM3MGVmOTcuLjVkYzc3NDYwNCAxMDA2NDQNCj4gLS0tIGEvbGliL01ha2VmaWxlDQo+ICsr KyBiL2xpYi9NYWtlZmlsZQ0KPiBAQCAtMTA2LDYgKzEwNiw4IEBAIERFUERJUlMtbGlicnRlX2dz byA6PSBsaWJydGVfZWFsIGxpYnJ0ZV9tYnVmIGxpYnJ0ZV9ldGhkZXYgbGlicnRlX25ldA0KPiAg IERFUERJUlMtbGlicnRlX2dzbyArPSBsaWJydGVfbWVtcG9vbA0KPiAgIERJUlMtJChDT05GSUdf UlRFX0xJQlJURV9CUEYpICs9IGxpYnJ0ZV9icGYNCj4gICBERVBESVJTLWxpYnJ0ZV9icGYgOj0g bGlicnRlX2VhbCBsaWJydGVfbWVtcG9vbCBsaWJydGVfbWJ1ZiBsaWJydGVfZXRoZGV2DQo+ICtE SVJTLSQoQ09ORklHX1JURV9MSUJSVEVfSVBTRUMpICs9IGxpYnJ0ZV9pcHNlYw0KPiArREVQRElS Uy1saWJydGVfaXBzZWMgOj0gbGlicnRlX2VhbCBsaWJydGVfbWJ1ZiBsaWJydGVfY3J5cHRvZGV2 IGxpYnJ0ZV9zZWN1cml0eQ0KPiAgIERJUlMtJChDT05GSUdfUlRFX0xJQlJURV9URUxFTUVUUlkp ICs9IGxpYnJ0ZV90ZWxlbWV0cnkNCj4gICBERVBESVJTLWxpYnJ0ZV90ZWxlbWV0cnkgOj0gbGli cnRlX2VhbCBsaWJydGVfbWV0cmljcyBsaWJydGVfZXRoZGV2DQo+ICAgDQo+IGRpZmYgLS1naXQg YS9saWIvbGlicnRlX2lwc2VjL01ha2VmaWxlIGIvbGliL2xpYnJ0ZV9pcHNlYy9NYWtlZmlsZQ0K PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAuLjc3NThkY2M2ZA0KPiAt LS0gL2Rldi9udWxsDQo+ICsrKyBiL2xpYi9saWJydGVfaXBzZWMvTWFrZWZpbGUNCj4gQEAgLTAs MCArMSwyNCBAQA0KPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+ ICsjIENvcHlyaWdodChjKSAyMDE4IEludGVsIENvcnBvcmF0aW9uDQo+ICsNCj4gK2luY2x1ZGUg JChSVEVfU0RLKS9tay9ydGUudmFycy5taw0KPiArDQo+ICsjIGxpYnJhcnkgbmFtZQ0KPiArTElC ID0gbGlicnRlX2lwc2VjLmENCj4gKw0KPiArQ0ZMQUdTICs9IC1PMw0KPiArQ0ZMQUdTICs9ICQo V0VSUk9SX0ZMQUdTKSAtSSQoU1JDRElSKQ0KPiArQ0ZMQUdTICs9IC1EQUxMT1dfRVhQRVJJTUVO VEFMX0FQSQ0KPiArTERMSUJTICs9IC1scnRlX2VhbCAtbHJ0ZV9tYnVmIC1scnRlX2NyeXB0b2Rl diAtbHJ0ZV9zZWN1cml0eQ0KPiArDQo+ICtFWFBPUlRfTUFQIDo9IHJ0ZV9pcHNlY192ZXJzaW9u Lm1hcA0KPiArDQo+ICtMSUJBQklWRVIgOj0gMQ0KPiArDQo+ICsjIGFsbCBzb3VyY2UgYXJlIHN0 b3JlZCBpbiBTUkNTLXkNCj4gK1NSQ1MtJChDT05GSUdfUlRFX0xJQlJURV9JUFNFQykgKz0gc2Eu Yw0KPiArDQo+ICsjIGluc3RhbGwgaGVhZGVyIGZpbGVzDQo+ICtTWU1MSU5LLSQoQ09ORklHX1JU RV9MSUJSVEVfSVBTRUMpLWluY2x1ZGUgKz0gcnRlX2lwc2VjX3NhLmgNCj4gKw0KPiAraW5jbHVk ZSAkKFJURV9TREspL21rL3J0ZS5saWIubWsNCj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfaXBz ZWMvaXBzZWNfc3FuLmggYi9saWIvbGlicnRlX2lwc2VjL2lwc2VjX3Nxbi5oDQo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMC4uMTkzNWY2ZTMwDQo+IC0tLSAvZGV2L251 bGwNCj4gKysrIGIvbGliL2xpYnJ0ZV9pcHNlYy9pcHNlY19zcW4uaA0KPiBAQCAtMCwwICsxLDQ4 IEBADQo+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+ICsgKiBD b3B5cmlnaHQoYykgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbg0KPiArICovDQo+ICsNCj4gKyNpZm5k ZWYgX0lQU0VDX1NRTl9IXw0KPiArI2RlZmluZSBfSVBTRUNfU1FOX0hfDQo+ICsNCj4gKyNkZWZp bmUgV0lORE9XX0JVQ0tFVF9CSVRTCQk2IC8qIHVpbnQ2NF90ICovDQo+ICsjZGVmaW5lIFdJTkRP V19CVUNLRVRfU0laRQkJKDEgPDwgV0lORE9XX0JVQ0tFVF9CSVRTKQ0KPiArI2RlZmluZSBXSU5E T1dfQklUX0xPQ19NQVNLCQkoV0lORE9XX0JVQ0tFVF9TSVpFIC0gMSkNCj4gKw0KPiArLyogbWlu aW11bSBudW1iZXIgb2YgYnVja2V0LCBwb3dlciBvZiAyKi8NCj4gKyNkZWZpbmUgV0lORE9XX0JV Q0tFVF9NSU4JCTINCj4gKyNkZWZpbmUgV0lORE9XX0JVQ0tFVF9NQVgJCShJTlQxNl9NQVggKyAx KQ0KPiArDQo+ICsjZGVmaW5lIElTX0VTTihzYSkJKChzYSktPnNxbl9tYXNrID09IFVJTlQ2NF9N QVgpDQo+ICsNCj4gKy8qDQo+ICsgKiBmb3IgZ2l2ZW4gc2l6ZSwgY2FsY3VsYXRlIHJlcXVpcmVk IG51bWJlciBvZiBidWNrZXRzLg0KPiArICovDQo+ICtzdGF0aWMgdWludDMyX3QNCj4gK3JlcGxh eV9udW1fYnVja2V0KHVpbnQzMl90IHdzeikNCj4gK3sNCj4gKwl1aW50MzJfdCBuYjsNCj4gKw0K PiArCW5iID0gcnRlX2FsaWduMzJwb3cyKFJURV9BTElHTl9NVUxfQ0VJTCh3c3osIFdJTkRPV19C VUNLRVRfU0laRSkgLw0KPiArCQlXSU5ET1dfQlVDS0VUX1NJWkUpOw0KPiArCW5iID0gUlRFX01B WChuYiwgKHVpbnQzMl90KVdJTkRPV19CVUNLRVRfTUlOKTsNCj4gKw0KPiArCXJldHVybiBuYjsN Cj4gK30NCj4gKw0KPiArLyoqDQo+ICsgKiBCYXNlZCBvbiBudW1iZXIgb2YgYnVja2V0cyBjYWxj dWxhdGVkIHJlcXVpcmVkIHNpemUgZm9yIHRoZQ0KPiArICogc3RydWN0dXJlIHRoYXQgaG9sZHMg cmVwbGF5IHdpbmRvdyBhbmQgc2VxdWVuY2UgbnVtYmVyIChSU04pIGluZm9ybWF0aW9uLg0KPiAr ICovDQo+ICtzdGF0aWMgc2l6ZV90DQo+ICtyc25fc2l6ZSh1aW50MzJfdCBuYl9idWNrZXQpDQo+ ICt7DQo+ICsJc2l6ZV90IHN6Ow0KPiArCXN0cnVjdCByZXBsYXlfc3FuICpyc247DQo+ICsNCj4g KwlzeiA9IHNpemVvZigqcnNuKSArIG5iX2J1Y2tldCAqIHNpemVvZihyc24tPndpbmRvd1swXSk7 DQo+ICsJc3ogPSBSVEVfQUxJR05fQ0VJTChzeiwgUlRFX0NBQ0hFX0xJTkVfU0laRSk7DQo+ICsJ cmV0dXJuIHN6Ow0KPiArfQ0KPiArDQo+ICsjZW5kaWYgLyogX0lQU0VDX1NRTl9IXyAqLw0KPiBk aWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9pcHNlYy9tZXNvbi5idWlsZCBiL2xpYi9saWJydGVfaXBz ZWMvbWVzb24uYnVpbGQNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAw Li41MmM3OGVhZWINCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9saWIvbGlicnRlX2lwc2VjL21l c29uLmJ1aWxkDQo+IEBAIC0wLDAgKzEsMTAgQEANCj4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0zLUNsYXVzZQ0KPiArIyBDb3B5cmlnaHQoYykgMjAxOCBJbnRlbCBDb3Jwb3JhdGlv bg0KPiArDQo+ICthbGxvd19leHBlcmltZW50YWxfYXBpcyA9IHRydWUNCj4gKw0KPiArc291cmNl cz1maWxlcygnc2EuYycpDQo+ICsNCj4gK2luc3RhbGxfaGVhZGVycyA9IGZpbGVzKCdydGVfaXBz ZWNfc2EuaCcpDQo+ICsNCj4gK2RlcHMgKz0gWydtYnVmJywgJ25ldCcsICdjcnlwdG9kZXYnLCAn c2VjdXJpdHknXQ0Kd2UgbmVlZCBuZXQgaW4gbWVzb24gYW5kIG5vdCBpbiBNYWtlZmlsZSA/DQo+ IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2lwc2VjL3J0ZV9pcHNlY19zYS5oIGIvbGliL2xpYnJ0 ZV9pcHNlYy9ydGVfaXBzZWNfc2EuaA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAw MDAwMDAwMDAuLjRlMzZmZDk5Yg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2xpYi9saWJydGVf aXBzZWMvcnRlX2lwc2VjX3NhLmgNCj4gQEAgLTAsMCArMSwxMzkgQEANCj4gKy8qIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gKyAqIENvcHlyaWdodChjKSAyMDE4IElu dGVsIENvcnBvcmF0aW9uDQo+ICsgKi8NCj4gKw0KPiArI2lmbmRlZiBfUlRFX0lQU0VDX1NBX0hf DQo+ICsjZGVmaW5lIF9SVEVfSVBTRUNfU0FfSF8NCj4gKw0KPiArLyoqDQo+ICsgKiBAZmlsZSBy dGVfaXBzZWNfc2EuaA0KPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdl IHdpdGhvdXQgcHJpb3Igbm90aWNlDQo+ICsgKg0KPiArICogRGVmaW5lcyBBUEkgdG8gbWFuYWdl IElQc2VjIFNlY3VyaXR5IEFzc29jaWF0aW9uIChTQSkgb2JqZWN0cy4NCj4gKyAqLw0KPiArDQo+ ICsjaW5jbHVkZSA8cnRlX2NvbW1vbi5oPg0KPiArI2luY2x1ZGUgPHJ0ZV9jcnlwdG9kZXYuaD4N Cj4gKyNpbmNsdWRlIDxydGVfc2VjdXJpdHkuaD4NCj4gKw0KPiArI2lmZGVmIF9fY3BsdXNwbHVz DQo+ICtleHRlcm4gIkMiIHsNCj4gKyNlbmRpZg0KPiArDQo+ICsvKioNCj4gKyAqIEFuIG9wYXF1 ZSBzdHJ1Y3R1cmUgdG8gcmVwcmVzZW50IFNlY3VyaXR5IEFzc29jaWF0aW9uIChTQSkuDQo+ICsg Ki8NCj4gK3N0cnVjdCBydGVfaXBzZWNfc2E7DQo+ICsNCj4gKy8qKg0KPiArICogU0EgaW5pdGlh bGl6YXRpb24gcGFyYW1ldGVycy4NCj4gKyAqLw0KPiArc3RydWN0IHJ0ZV9pcHNlY19zYV9wcm0g ew0KPiArDQo+ICsJdWludDY0X3QgdXNlcmRhdGE7IC8qKjwgcHJvdmlkZWQgYW5kIGludGVycHJl dGVkIGJ5IHVzZXIgKi8NCj4gKwl1aW50NjRfdCBmbGFnczsgIC8qKjwgc2VlIFJURV9JUFNFQ19T QUZMQUdfKiBiZWxvdyAqLw0KPiArCS8qKiBpcHNlYyBjb25maWd1cmF0aW9uICovDQo+ICsJc3Ry dWN0IHJ0ZV9zZWN1cml0eV9pcHNlY194Zm9ybSBpcHNlY194Zm9ybTsNCj4gKwlzdHJ1Y3QgcnRl X2NyeXB0b19zeW1feGZvcm0gKmNyeXB0b194Zm9ybTsNCmNvbW1lbnQgbWlzc2luZw0KPiArCXVu aW9uIHsNCj4gKwkJc3RydWN0IHsNCj4gKwkJCXVpbnQ4X3QgaGRyX2xlbjsgICAgIC8qKjwgdHVu bmVsIGhlYWRlciBsZW4gKi8NCj4gKwkJCXVpbnQ4X3QgaGRyX2wzX29mZjsgIC8qKjwgb2Zmc2V0 IGZvciBJUHY0L0lQdjYgaGVhZGVyICovDQo+ICsJCQl1aW50OF90IG5leHRfcHJvdG87ICAvKio8 IG5leHQgaGVhZGVyIHByb3RvY29sICovDQo+ICsJCQljb25zdCB2b2lkICpoZHI7ICAgICAvKio8 IHR1bm5lbCBoZWFkZXIgdGVtcGxhdGUgKi8NCj4gKwkJfSB0dW47IC8qKjwgdHVubmVsIG1vZGUg cmVwYXRlZCBwYXJhbWV0ZXJzICovDQpzcGVsbCBjaGVjaw0KPiArCQlzdHJ1Y3Qgew0KPiArCQkJ dWludDhfdCBwcm90bzsgIC8qKjwgbmV4dCBoZWFkZXIgcHJvdG9jb2wgKi8NCj4gKwkJfSB0cnM7 IC8qKjwgdHJhbnNwb3J0IG1vZGUgcmVwYXRlZCBwYXJhbWV0ZXJzICovDQpzcGVsbCBjaGVjaw0K PiArCX07DQo+ICsNCj4gKwl1aW50MzJfdCByZXBsYXlfd2luX3N6Ow0KPiArCS8qKjwgd2luZG93 IHNpemUgdG8gZW5hYmxlIHNlcXVlbmNlIHJlcGxheSBhdHRhY2sgaGFuZGxpbmcuDQo+ICsJICog UmVwbGF5IGNoZWNraW5nIGlzIGRpc2FibGVkIGlmIHRoZSB3aW5kb3cgc2l6ZSBpcyAwLg0KPiAr CSAqLw0KQXMgcGVyIGRpc2N1c3Npb25zIG9uIE1MLCBjb21tZW50cyBzaGFsbCBlaXRoZXIgYmUg YmVmb3JlIHRoZSBwYXJhbSBvciANCml0IGNhbiBiZSBpbiB0aGUgc2FtZSBsaW5lIGFzIHBhcmFt IGFuZCBub3QgaW4gbmV4dCBsaW5lLiBQbGVhc2UgY2hlY2sgDQppbiByZXN0IG9mIHRoZSBwYXRj aCBhcyB3ZWxsLg0KPiArfTsNCj4gKw0KPiArLyoqDQo+ICsgKiBTQSB0eXBlIGlzIGFuIDY0LWJp dCB2YWx1ZSB0aGF0IGNvbnRhaW4gdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjoNCj4gKyAqIC0g SVAgdmVyc2lvbiAoSVB2NC9JUHY2KQ0KPiArICogLSBJUHNlYyBwcm90byAoRVNQL0FIKQ0KPiAr ICogLSBpbmJvdW5kL291dGJvdW5kDQo+ICsgKiAtIG1vZGUgKFRSQU5TUE9SVC9UVU5ORUwpDQo+ ICsgKiAtIGZvciBUVU5ORUwgb3V0ZXIgSVAgdmVyc2lvbiAoSVB2NC9JUHY2KQ0KPiArICogLi4u DQo+ICsgKi8NCj4gKw0KPiArZW51bSB7DQo+ICsJUlRFX1NBVFBfTE9HX0lQViwNCj4gKwlSVEVf U0FUUF9MT0dfUFJPVE8sDQo+ICsJUlRFX1NBVFBfTE9HX0RJUiwNCj4gKwlSVEVfU0FUUF9MT0df TU9ERSwNCj4gKwlSVEVfU0FUUF9MT0dfTlVNDQo+ICt9Ow0Kd2hhdCBpcyB0aGUgc2lnbmlmaWNh bmNlIG9mIExPRyBoZXJlLg0KPiArDQo+ICsjZGVmaW5lIFJURV9JUFNFQ19TQVRQX0lQVl9NQVNL CQkoMVVMTCA8PCBSVEVfU0FUUF9MT0dfSVBWKQ0KPiArI2RlZmluZSBSVEVfSVBTRUNfU0FUUF9J UFY0CQkoMFVMTCA8PCBSVEVfU0FUUF9MT0dfSVBWKQ0KPiArI2RlZmluZSBSVEVfSVBTRUNfU0FU UF9JUFY2CQkoMVVMTCA8PCBSVEVfU0FUUF9MT0dfSVBWKQ0KPiArDQo+ICsjZGVmaW5lIFJURV9J UFNFQ19TQVRQX1BST1RPX01BU0sJKDFVTEwgPDwgUlRFX1NBVFBfTE9HX1BST1RPKQ0KPiArI2Rl ZmluZSBSVEVfSVBTRUNfU0FUUF9QUk9UT19BSAkJKDBVTEwgPDwgUlRFX1NBVFBfTE9HX1BST1RP KQ0KPiArI2RlZmluZSBSVEVfSVBTRUNfU0FUUF9QUk9UT19FU1AJKDFVTEwgPDwgUlRFX1NBVFBf TE9HX1BST1RPKQ0KPiArDQo+ICsjZGVmaW5lIFJURV9JUFNFQ19TQVRQX0RJUl9NQVNLCQkoMVVM TCA8PCBSVEVfU0FUUF9MT0dfRElSKQ0KPiArI2RlZmluZSBSVEVfSVBTRUNfU0FUUF9ESVJfSUIJ CSgwVUxMIDw8IFJURV9TQVRQX0xPR19ESVIpDQo+ICsjZGVmaW5lIFJURV9JUFNFQ19TQVRQX0RJ Ul9PQgkJKDFVTEwgPDwgUlRFX1NBVFBfTE9HX0RJUikNCj4gKw0KPiArI2RlZmluZSBSVEVfSVBT RUNfU0FUUF9NT0RFX01BU0sJKDNVTEwgPDwgUlRFX1NBVFBfTE9HX01PREUpDQo+ICsjZGVmaW5l IFJURV9JUFNFQ19TQVRQX01PREVfVFJBTlMJKDBVTEwgPDwgUlRFX1NBVFBfTE9HX01PREUpDQo+ ICsjZGVmaW5lIFJURV9JUFNFQ19TQVRQX01PREVfVFVOTFY0CSgxVUxMIDw8IFJURV9TQVRQX0xP R19NT0RFKQ0KPiArI2RlZmluZSBSVEVfSVBTRUNfU0FUUF9NT0RFX1RVTkxWNgkoMlVMTCA8PCBS VEVfU0FUUF9MT0dfTU9ERSkNCj4gKw0KPiArLyoqDQo+ICsgKiBnZXQgdHlwZSBvZiBnaXZlbiBT QQ0KPiArICogQHJldHVybg0KPiArICogICBTQSB0eXBlIHZhbHVlLg0KPiArICovDQo+ICt1aW50 NjRfdCBfX3J0ZV9leHBlcmltZW50YWwNCj4gK3J0ZV9pcHNlY19zYV90eXBlKGNvbnN0IHN0cnVj dCBydGVfaXBzZWNfc2EgKnNhKTsNCj4gKw0KPiArLyoqDQo+ICsgKiBDYWxjdWxhdGUgcmVxdWll ZCBTQSBzaXplIGJhc2VkIG9uIHByb3ZpZGVkIGlucHV0IHBhcmFtZXRlcnMuDQpzcGVsbCBjaGVj aw0KPiArICogQHBhcmFtIHBybQ0KPiArICogICBQYXJhbWV0ZXJzIHRoYXQgd2lsIGJlIHVzZWQg dG8gaW5pdGlhbGlzZSBTQSBvYmplY3QuDQo+ICsgKiBAcmV0dXJuDQo+ICsgKiAgIC0gQWN0dWFs IHNpemUgcmVxdWlyZWQgZm9yIFNBIHdpdGggZ2l2ZW4gcGFyYW1ldGVycy4NCj4gKyAqICAgLSAt RUlOVkFMIGlmIHRoZSBwYXJhbWV0ZXJzIGFyZSBpbnZhbGlkLg0KPiArICovDQo+ICtpbnQgX19y dGVfZXhwZXJpbWVudGFsDQo+ICtydGVfaXBzZWNfc2Ffc2l6ZShjb25zdCBzdHJ1Y3QgcnRlX2lw c2VjX3NhX3BybSAqcHJtKTsNCj4gKw0KPiArLyoqDQo+ICsgKiBpbml0aWFsaXNlIFNBIGJhc2Vk IG9uIHByb3ZpZGVkIGlucHV0IHBhcmFtZXRlcnMuDQo+ICsgKiBAcGFyYW0gc2ENCj4gKyAqICAg U0Egb2JqZWN0IHRvIGluaXRpYWxpc2UuDQo+ICsgKiBAcGFyYW0gcHJtDQo+ICsgKiAgIFBhcmFt ZXRlcnMgdXNlZCB0byBpbml0aWFsaXNlIGdpdmVuIFNBIG9iamVjdC4NCj4gKyAqIEBwYXJhbSBz aXplDQo+ICsgKiAgIHNpemUgb2YgdGhlIHByb3ZpZGVkIGJ1ZmZlciBmb3IgU0EuDQo+ICsgKiBA cmV0dXJuDQo+ICsgKiAgIC0gQWN0dWFsIHNpemUgb2YgU0Egb2JqZWN0IGlmIG9wZXJhdGlvbiBj b21wbGV0ZWQgc3VjY2Vzc2Z1bGx5Lg0KPiArICogICAtIC1FSU5WQUwgaWYgdGhlIHBhcmFtZXRl cnMgYXJlIGludmFsaWQuDQo+ICsgKiAgIC0gLUVOT1NQQyBpZiB0aGUgc2l6ZSBvZiB0aGUgcHJv dmlkZWQgYnVmZmVyIGlzIG5vdCBiaWcgZW5vdWdoLg0KPiArICovDQo+ICtpbnQgX19ydGVfZXhw ZXJpbWVudGFsDQo+ICtydGVfaXBzZWNfc2FfaW5pdChzdHJ1Y3QgcnRlX2lwc2VjX3NhICpzYSwg Y29uc3Qgc3RydWN0IHJ0ZV9pcHNlY19zYV9wcm0gKnBybSwNCj4gKwl1aW50MzJfdCBzaXplKTsN Cj4gKw0KPiArLyoqDQo+ICsgKiBjbGVhbnVwIFNBDQo+ICsgKiBAcGFyYW0gc2ENCj4gKyAqICAg UG9pbnRlciB0byBTQSBvYmplY3QgdG8gZGUtaW5pdGlhbGl6ZS4NCj4gKyAqLw0KPiArdm9pZCBf X3J0ZV9leHBlcmltZW50YWwNCj4gK3J0ZV9pcHNlY19zYV9maW5pKHN0cnVjdCBydGVfaXBzZWNf c2EgKnNhKTsNCj4gKw0KPiArI2lmZGVmIF9fY3BsdXNwbHVzDQo+ICt9DQo+ICsjZW5kaWYNCj4g Kw0KPiArI2VuZGlmIC8qIF9SVEVfSVBTRUNfU0FfSF8gKi8NCj4gZGlmZiAtLWdpdCBhL2xpYi9s aWJydGVfaXBzZWMvcnRlX2lwc2VjX3ZlcnNpb24ubWFwIGIvbGliL2xpYnJ0ZV9pcHNlYy9ydGVf aXBzZWNfdmVyc2lvbi5tYXANCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAw MDAwLi4xYTY2NzI2YjgNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9saWIvbGlicnRlX2lwc2Vj L3J0ZV9pcHNlY192ZXJzaW9uLm1hcA0KPiBAQCAtMCwwICsxLDEwIEBADQo+ICtFWFBFUklNRU5U QUwgew0KPiArCWdsb2JhbDoNCj4gKw0KPiArCXJ0ZV9pcHNlY19zYV9maW5pOw0KPiArCXJ0ZV9p cHNlY19zYV9pbml0Ow0KPiArCXJ0ZV9pcHNlY19zYV9zaXplOw0KPiArCXJ0ZV9pcHNlY19zYV90 eXBlOw0KPiArDQo+ICsJbG9jYWw6ICo7DQo+ICt9Ow0KPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0 ZV9pcHNlYy9zYS5jIGIvbGliL2xpYnJ0ZV9pcHNlYy9zYS5jDQo+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+IGluZGV4IDAwMDAwMDAwMC4uZjkyN2E4MmJmDQo+IC0tLSAvZGV2L251bGwNCj4gKysr IGIvbGliL2xpYnJ0ZV9pcHNlYy9zYS5jDQo+IEBAIC0wLDAgKzEsMzI3IEBADQo+ICsvKiBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+ICsgKiBDb3B5cmlnaHQoYykgMjAx OCBJbnRlbCBDb3Jwb3JhdGlvbg0KPiArICovDQo+ICsNCj4gKyNpbmNsdWRlIDxydGVfaXBzZWNf c2EuaD4NCj4gKyNpbmNsdWRlIDxydGVfZXNwLmg+DQo+ICsjaW5jbHVkZSA8cnRlX2lwLmg+DQo+ ICsjaW5jbHVkZSA8cnRlX2Vycm5vLmg+DQo+ICsNCj4gKyNpbmNsdWRlICJzYS5oIg0KPiArI2lu Y2x1ZGUgImlwc2VjX3Nxbi5oIg0KPiArDQo+ICsvKiBzb21lIGhlbHBlciBzdHJ1Y3R1cmVzICov DQo+ICtzdHJ1Y3QgY3J5cHRvX3hmb3JtIHsNCj4gKwlzdHJ1Y3QgcnRlX2NyeXB0b19hdXRoX3hm b3JtICphdXRoOw0KPiArCXN0cnVjdCBydGVfY3J5cHRvX2NpcGhlcl94Zm9ybSAqY2lwaGVyOw0K PiArCXN0cnVjdCBydGVfY3J5cHRvX2FlYWRfeGZvcm0gKmFlYWQ7DQo+ICt9Ow0Kc2hvdWxkbid0 IHRoaXMgYmUgdW5pb24gYXMgYWVhZCBjYW5ub3QgYmUgd2l0aCBjaXBoZXIgYW5kIGF1dGggY2Fz ZXMuDQoNCmV4dHJhIGxpbmUNCj4gKw0KPiArDQo+ICtzdGF0aWMgaW50DQo+ICtjaGVja19jcnlw dG9feGZvcm0oc3RydWN0IGNyeXB0b194Zm9ybSAqeGZvcm0pDQo+ICt7DQo+ICsJdWludHB0cl90 IHA7DQo+ICsNCj4gKwlwID0gKHVpbnRwdHJfdCl4Zm9ybS0+YXV0aCB8ICh1aW50cHRyX3QpeGZv cm0tPmNpcGhlcjsNCndoYXQgaXMgdGhlIGludGVudCBvZiB0aGlzPw0KPiArDQo+ICsJLyogZWl0 aGVyIGFlYWQgb3IgYm90aCBhdXRoIGFuZCBjaXBoZXIgc2hvdWxkIGJlIG5vdCBOVUxMcyAqLw0K PiArCWlmICh4Zm9ybS0+YWVhZCkgew0KPiArCQlpZiAocCkNCj4gKwkJCXJldHVybiAtRUlOVkFM Ow0KPiArCX0gZWxzZSBpZiAocCA9PSAodWludHB0cl90KXhmb3JtLT5hdXRoKSB7DQo+ICsJCXJl dHVybiAtRUlOVkFMOw0KPiArCX0NClRoaXMgZnVuY3Rpb24gZG9lcyBub3QgbG9vayBnb29kLiBJ dCB3aWxsIG1pc3MgdGhlIGNhc2Ugb2YgY2lwaGVyIG9ubHkNCj4gKw0KPiArCXJldHVybiAwOw0K PiArfQ0KPiArDQo+ICtzdGF0aWMgaW50DQo+ICtmaWxsX2NyeXB0b194Zm9ybShzdHJ1Y3QgY3J5 cHRvX3hmb3JtICp4Zm9ybSwNCj4gKwljb25zdCBzdHJ1Y3QgcnRlX2lwc2VjX3NhX3BybSAqcHJt KQ0KPiArew0KPiArCXN0cnVjdCBydGVfY3J5cHRvX3N5bV94Zm9ybSAqeGY7DQo+ICsNCj4gKwlt ZW1zZXQoeGZvcm0sIDAsIHNpemVvZigqeGZvcm0pKTsNCj4gKw0KPiArCWZvciAoeGYgPSBwcm0t PmNyeXB0b194Zm9ybTsgeGYgIT0gTlVMTDsgeGYgPSB4Zi0+bmV4dCkgew0KPiArCQlpZiAoeGYt PnR5cGUgPT0gUlRFX0NSWVBUT19TWU1fWEZPUk1fQVVUSCkgew0KPiArCQkJaWYgKHhmb3JtLT5h dXRoICE9IE5VTEwpDQo+ICsJCQkJcmV0dXJuIC1FSU5WQUw7DQo+ICsJCQl4Zm9ybS0+YXV0aCA9 ICZ4Zi0+YXV0aDsNCj4gKwkJfSBlbHNlIGlmICh4Zi0+dHlwZSA9PSBSVEVfQ1JZUFRPX1NZTV9Y Rk9STV9DSVBIRVIpIHsNCj4gKwkJCWlmICh4Zm9ybS0+Y2lwaGVyICE9IE5VTEwpDQo+ICsJCQkJ cmV0dXJuIC1FSU5WQUw7DQo+ICsJCQl4Zm9ybS0+Y2lwaGVyID0gJnhmLT5jaXBoZXI7DQo+ICsJ CX0gZWxzZSBpZiAoeGYtPnR5cGUgPT0gUlRFX0NSWVBUT19TWU1fWEZPUk1fQUVBRCkgew0KPiAr CQkJaWYgKHhmb3JtLT5hZWFkICE9IE5VTEwpDQo+ICsJCQkJcmV0dXJuIC1FSU5WQUw7DQo+ICsJ CQl4Zm9ybS0+YWVhZCA9ICZ4Zi0+YWVhZDsNCj4gKwkJfSBlbHNlDQo+ICsJCQlyZXR1cm4gLUVJ TlZBTDsNCj4gKwl9DQo+ICsNCj4gKwlyZXR1cm4gY2hlY2tfY3J5cHRvX3hmb3JtKHhmb3JtKTsN Cj4gK30NCmhvdyBpcyB0aGlzIGZ1bmN0aW9uIGhhbmRsaW5nIHRoZSBpbmJvdW5kIGFuZCBvdXRi b3VuZCBjYXNlcy4NCkluIGluYm91bmQgZmlyc3QgeGZvcm0gaXMgYXV0aCBhbmQgdGhlbiBjaXBo ZXIuDQpJbiBvdXRib3VuZCBmaXJzdCBpcyBjaXBoZXIgYW5kIHRoZW4gYXV0aC4gSSB0aGluayB0 aGlzIHNob3VsZCBiZSANCmNoZWNrZWQgaW4gdGhlIGxpYi4NCkhlcmUgZm9yIGxvb3Agc2hvdWxk IG5vdCBiZSB0aGVyZSwgYXMgdGhlcmUgd291bGQgYmUgYXQgbWF4IG9ubHkgMiB4Zm9ybXMuDQo+ ICsNCj4gK3VpbnQ2NF90IF9fcnRlX2V4cGVyaW1lbnRhbA0KPiArcnRlX2lwc2VjX3NhX3R5cGUo Y29uc3Qgc3RydWN0IHJ0ZV9pcHNlY19zYSAqc2EpDQo+ICt7DQo+ICsJcmV0dXJuIHNhLT50eXBl Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50MzJfdA0KPiAraXBzZWNfc2Ffc2l6ZSh1aW50MzJf dCB3c3osIHVpbnQ2NF90IHR5cGUsIHVpbnQzMl90ICpuYl9idWNrZXQpDQo+ICt7DQo+ICsJdWlu dDMyX3Qgbiwgc3o7DQo+ICsNCj4gKwluID0gMDsNCj4gKwlpZiAod3N6ICE9IDAgJiYgKHR5cGUg JiBSVEVfSVBTRUNfU0FUUF9ESVJfTUFTSykgPT0NCj4gKwkJCVJURV9JUFNFQ19TQVRQX0RJUl9J QikNCj4gKwkJbiA9IHJlcGxheV9udW1fYnVja2V0KHdzeik7DQo+ICsNCj4gKwlpZiAobiA+IFdJ TkRPV19CVUNLRVRfTUFYKQ0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKw0KPiArCSpuYl9idWNr ZXQgPSBuOw0KPiArDQo+ICsJc3ogPSByc25fc2l6ZShuKTsNCj4gKwlzeiArPSBzaXplb2Yoc3Ry dWN0IHJ0ZV9pcHNlY19zYSk7DQo+ICsJcmV0dXJuIHN6Ow0KPiArfQ0KPiArDQo+ICt2b2lkIF9f cnRlX2V4cGVyaW1lbnRhbA0KPiArcnRlX2lwc2VjX3NhX2Zpbmkoc3RydWN0IHJ0ZV9pcHNlY19z YSAqc2EpDQo+ICt7DQo+ICsJbWVtc2V0KHNhLCAwLCBzYS0+c2l6ZSk7DQo+ICt9DQpXaGVyZSBp cyB0aGUgbWVtb3J5IG9mICJzYSIgZ2V0dGluZyBpbml0aWFsaXplZD8NCj4gKw0KPiArc3RhdGlj IGludA0KPiArZmlsbF9zYV90eXBlKGNvbnN0IHN0cnVjdCBydGVfaXBzZWNfc2FfcHJtICpwcm0s IHVpbnQ2NF90ICp0eXBlKQ0KPiArew0KPiArCXVpbnQ2NF90IHRwOw0KPiArDQo+ICsJdHAgPSAw Ow0KPiArDQo+ICsJaWYgKHBybS0+aXBzZWNfeGZvcm0ucHJvdG8gPT0gUlRFX1NFQ1VSSVRZX0lQ U0VDX1NBX1BST1RPX0FIKQ0KPiArCQl0cCB8PSBSVEVfSVBTRUNfU0FUUF9QUk9UT19BSDsNCj4g KwllbHNlIGlmIChwcm0tPmlwc2VjX3hmb3JtLnByb3RvID09IFJURV9TRUNVUklUWV9JUFNFQ19T QV9QUk9UT19FU1ApDQo+ICsJCXRwIHw9IFJURV9JUFNFQ19TQVRQX1BST1RPX0VTUDsNCj4gKwll bHNlDQo+ICsJCXJldHVybiAtRUlOVkFMOw0KPiArDQo+ICsJaWYgKHBybS0+aXBzZWNfeGZvcm0u ZGlyZWN0aW9uID09IFJURV9TRUNVUklUWV9JUFNFQ19TQV9ESVJfRUdSRVNTKQ0KPiArCQl0cCB8 PSBSVEVfSVBTRUNfU0FUUF9ESVJfT0I7DQo+ICsJZWxzZSBpZiAocHJtLT5pcHNlY194Zm9ybS5k aXJlY3Rpb24gPT0NCj4gKwkJCVJURV9TRUNVUklUWV9JUFNFQ19TQV9ESVJfSU5HUkVTUykNCj4g KwkJdHAgfD0gUlRFX0lQU0VDX1NBVFBfRElSX0lCOw0KPiArCWVsc2UNCj4gKwkJcmV0dXJuIC1F SU5WQUw7DQo+ICsNCj4gKwlpZiAocHJtLT5pcHNlY194Zm9ybS5tb2RlID09IFJURV9TRUNVUklU WV9JUFNFQ19TQV9NT0RFX1RVTk5FTCkgew0KPiArCQlpZiAocHJtLT5pcHNlY194Zm9ybS50dW5u ZWwudHlwZSA9PQ0KPiArCQkJCVJURV9TRUNVUklUWV9JUFNFQ19UVU5ORUxfSVBWNCkNCj4gKwkJ CXRwIHw9IFJURV9JUFNFQ19TQVRQX01PREVfVFVOTFY0Ow0KPiArCQllbHNlIGlmIChwcm0tPmlw c2VjX3hmb3JtLnR1bm5lbC50eXBlID09DQo+ICsJCQkJUlRFX1NFQ1VSSVRZX0lQU0VDX1RVTk5F TF9JUFY2KQ0KPiArCQkJdHAgfD0gUlRFX0lQU0VDX1NBVFBfTU9ERV9UVU5MVjY7DQo+ICsJCWVs c2UNCj4gKwkJCXJldHVybiAtRUlOVkFMOw0KPiArDQo+ICsJCWlmIChwcm0tPnR1bi5uZXh0X3By b3RvID09IElQUFJPVE9fSVBJUCkNCj4gKwkJCXRwIHw9IFJURV9JUFNFQ19TQVRQX0lQVjQ7DQo+ ICsJCWVsc2UgaWYgKHBybS0+dHVuLm5leHRfcHJvdG8gPT0gSVBQUk9UT19JUFY2KQ0KPiArCQkJ dHAgfD0gUlRFX0lQU0VDX1NBVFBfSVBWNjsNCj4gKwkJZWxzZQ0KPiArCQkJcmV0dXJuIC1FSU5W QUw7DQo+ICsJfSBlbHNlIGlmIChwcm0tPmlwc2VjX3hmb3JtLm1vZGUgPT0NCj4gKwkJCVJURV9T RUNVUklUWV9JUFNFQ19TQV9NT0RFX1RSQU5TUE9SVCkgew0KPiArCQl0cCB8PSBSVEVfSVBTRUNf U0FUUF9NT0RFX1RSQU5TOw0KPiArCQlpZiAocHJtLT50cnMucHJvdG8gPT0gSVBQUk9UT19JUElQ KQ0KPiArCQkJdHAgfD0gUlRFX0lQU0VDX1NBVFBfSVBWNDsNCj4gKwkJZWxzZSBpZiAocHJtLT50 cnMucHJvdG8gPT0gSVBQUk9UT19JUFY2KQ0KPiArCQkJdHAgfD0gUlRFX0lQU0VDX1NBVFBfSVBW NjsNCj4gKwkJZWxzZQ0KPiArCQkJcmV0dXJuIC1FSU5WQUw7DQo+ICsJfSBlbHNlDQo+ICsJCXJl dHVybiAtRUlOVkFMOw0KPiArDQo+ICsJKnR5cGUgPSB0cDsNCj4gKwlyZXR1cm4gMDsNCj4gK30N Cj4gKw0KPiArc3RhdGljIHZvaWQNCj4gK2VzcF9pbmJfaW5pdChzdHJ1Y3QgcnRlX2lwc2VjX3Nh ICpzYSkNCj4gK3sNCj4gKwkvKiB0aGVzZSBwYXJhbXMgbWF5IGRpZmZlciB3aXRoIG5ldyBhbGdv cml0aG1zIHN1cHBvcnQgKi8NCj4gKwlzYS0+Y3RwLmF1dGgub2Zmc2V0ID0gMDsNCj4gKwlzYS0+ Y3RwLmF1dGgubGVuZ3RoID0gc2EtPmljdl9sZW4gLSBzYS0+c3FoX2xlbjsNCj4gKwlzYS0+Y3Rw LmNpcGhlci5vZmZzZXQgPSBzaXplb2Yoc3RydWN0IGVzcF9oZHIpICsgc2EtPml2X2xlbjsNCj4g KwlzYS0+Y3RwLmNpcGhlci5sZW5ndGggPSBzYS0+aWN2X2xlbiArIHNhLT5jdHAuY2lwaGVyLm9m ZnNldDsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQNCj4gK2VzcF9pbmJfdHVuX2luaXQoc3Ry dWN0IHJ0ZV9pcHNlY19zYSAqc2EsIGNvbnN0IHN0cnVjdCBydGVfaXBzZWNfc2FfcHJtICpwcm0p DQo+ICt7DQo+ICsJc2EtPnByb3RvID0gcHJtLT50dW4ubmV4dF9wcm90bzsNCj4gKwllc3BfaW5i X2luaXQoc2EpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZA0KPiArZXNwX291dGJfaW5pdChz dHJ1Y3QgcnRlX2lwc2VjX3NhICpzYSwgdWludDMyX3QgaGxlbikNCj4gK3sNCj4gKwlzYS0+c3Fu Lm91dGIgPSAxOw0KPiArDQo+ICsJLyogdGhlc2UgcGFyYW1zIG1heSBkaWZmZXIgd2l0aCBuZXcg YWxnb3JpdGhtcyBzdXBwb3J0ICovDQo+ICsJc2EtPmN0cC5hdXRoLm9mZnNldCA9IGhsZW47DQo+ ICsJc2EtPmN0cC5hdXRoLmxlbmd0aCA9IHNpemVvZihzdHJ1Y3QgZXNwX2hkcikgKyBzYS0+aXZf bGVuICsgc2EtPnNxaF9sZW47DQo+ICsJaWYgKHNhLT5hYWRfbGVuICE9IDApIHsNCj4gKwkJc2Et PmN0cC5jaXBoZXIub2Zmc2V0ID0gaGxlbiArIHNpemVvZihzdHJ1Y3QgZXNwX2hkcikgKw0KPiAr CQkJc2EtPml2X2xlbjsNCj4gKwkJc2EtPmN0cC5jaXBoZXIubGVuZ3RoID0gMDsNCj4gKwl9IGVs c2Ugew0KPiArCQlzYS0+Y3RwLmNpcGhlci5vZmZzZXQgPSBzYS0+aGRyX2xlbiArIHNpemVvZihz dHJ1Y3QgZXNwX2hkcik7DQo+ICsJCXNhLT5jdHAuY2lwaGVyLmxlbmd0aCA9IHNhLT5pdl9sZW47 DQo+ICsJfQ0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZA0KPiArZXNwX291dGJfdHVuX2luaXQo c3RydWN0IHJ0ZV9pcHNlY19zYSAqc2EsIGNvbnN0IHN0cnVjdCBydGVfaXBzZWNfc2FfcHJtICpw cm0pDQo+ICt7DQo+ICsJc2EtPnByb3RvID0gcHJtLT50dW4ubmV4dF9wcm90bzsNCj4gKwlzYS0+ aGRyX2xlbiA9IHBybS0+dHVuLmhkcl9sZW47DQo+ICsJc2EtPmhkcl9sM19vZmYgPSBwcm0tPnR1 bi5oZHJfbDNfb2ZmOw0KPiArCW1lbWNweShzYS0+aGRyLCBwcm0tPnR1bi5oZHIsIHNhLT5oZHJf bGVuKTsNCj4gKw0KPiArCWVzcF9vdXRiX2luaXQoc2EsIHNhLT5oZHJfbGVuKTsNCj4gK30NCj4g Kw0KPiArc3RhdGljIGludA0KPiArZXNwX3NhX2luaXQoc3RydWN0IHJ0ZV9pcHNlY19zYSAqc2Es IGNvbnN0IHN0cnVjdCBydGVfaXBzZWNfc2FfcHJtICpwcm0sDQo+ICsJY29uc3Qgc3RydWN0IGNy eXB0b194Zm9ybSAqY3hmKQ0KPiArew0KPiArCXN0YXRpYyBjb25zdCB1aW50NjRfdCBtc2sgPSBS VEVfSVBTRUNfU0FUUF9ESVJfTUFTSyB8DQo+ICsJCQkJUlRFX0lQU0VDX1NBVFBfTU9ERV9NQVNL Ow0KPiArDQo+ICsJaWYgKGN4Zi0+YWVhZCAhPSBOVUxMKSB7DQo+ICsJCS8qIFJGQyA0MTA2ICov DQo+ICsJCWlmIChjeGYtPmFlYWQtPmFsZ28gIT0gUlRFX0NSWVBUT19BRUFEX0FFU19HQ00pDQo+ ICsJCQlyZXR1cm4gLUVJTlZBTDsNCj4gKwkJc2EtPmljdl9sZW4gPSBjeGYtPmFlYWQtPmRpZ2Vz dF9sZW5ndGg7DQo+ICsJCXNhLT5pdl9vZnMgPSBjeGYtPmFlYWQtPml2Lm9mZnNldDsNCj4gKwkJ c2EtPml2X2xlbiA9IHNpemVvZih1aW50NjRfdCk7DQo+ICsJCXNhLT5wYWRfYWxpZ24gPSA0Ow0K aGFyZCBjb2RpbmcgPz8NCj4gKwl9IGVsc2Ugew0KPiArCQlzYS0+aWN2X2xlbiA9IGN4Zi0+YXV0 aC0+ZGlnZXN0X2xlbmd0aDsNCj4gKwkJc2EtPml2X29mcyA9IGN4Zi0+Y2lwaGVyLT5pdi5vZmZz ZXQ7DQo+ICsJCXNhLT5zcWhfbGVuID0gSVNfRVNOKHNhKSA/IHNpemVvZih1aW50MzJfdCkgOiAw Ow0KPiArCQlpZiAoY3hmLT5jaXBoZXItPmFsZ28gPT0gUlRFX0NSWVBUT19DSVBIRVJfTlVMTCkg ew0KPiArCQkJc2EtPnBhZF9hbGlnbiA9IDQ7DQo+ICsJCQlzYS0+aXZfbGVuID0gMDsNCj4gKwkJ fSBlbHNlIGlmIChjeGYtPmNpcGhlci0+YWxnbyA9PSBSVEVfQ1JZUFRPX0NJUEhFUl9BRVNfQ0JD KSB7DQo+ICsJCQlzYS0+cGFkX2FsaWduID0gSVBTRUNfTUFYX0lWX1NJWkU7DQo+ICsJCQlzYS0+ aXZfbGVuID0gSVBTRUNfTUFYX0lWX1NJWkU7DQo+ICsJCX0gZWxzZQ0KPiArCQkJcmV0dXJuIC1F SU5WQUw7DQo+ICsJfQ0KPiArDQo+ICsJc2EtPnVkYXRhID0gcHJtLT51c2VyZGF0YTsNCj4gKwlz YS0+c3BpID0gcnRlX2NwdV90b19iZV8zMihwcm0tPmlwc2VjX3hmb3JtLnNwaSk7DQo+ICsJc2Et PnNhbHQgPSBwcm0tPmlwc2VjX3hmb3JtLnNhbHQ7DQo+ICsNCj4gKwlzd2l0Y2ggKHNhLT50eXBl ICYgbXNrKSB7DQo+ICsJY2FzZSAoUlRFX0lQU0VDX1NBVFBfRElSX0lCIHwgUlRFX0lQU0VDX1NB VFBfTU9ERV9UVU5MVjQpOg0KPiArCWNhc2UgKFJURV9JUFNFQ19TQVRQX0RJUl9JQiB8IFJURV9J UFNFQ19TQVRQX01PREVfVFVOTFY2KToNCj4gKwkJZXNwX2luYl90dW5faW5pdChzYSwgcHJtKTsN Cj4gKwkJYnJlYWs7DQo+ICsJY2FzZSAoUlRFX0lQU0VDX1NBVFBfRElSX0lCIHwgUlRFX0lQU0VD X1NBVFBfTU9ERV9UUkFOUyk6DQo+ICsJCWVzcF9pbmJfaW5pdChzYSk7DQo+ICsJCWJyZWFrOw0K PiArCWNhc2UgKFJURV9JUFNFQ19TQVRQX0RJUl9PQiB8IFJURV9JUFNFQ19TQVRQX01PREVfVFVO TFY0KToNCj4gKwljYXNlIChSVEVfSVBTRUNfU0FUUF9ESVJfT0IgfCBSVEVfSVBTRUNfU0FUUF9N T0RFX1RVTkxWNik6DQo+ICsJCWVzcF9vdXRiX3R1bl9pbml0KHNhLCBwcm0pOw0KPiArCQlicmVh azsNCj4gKwljYXNlIChSVEVfSVBTRUNfU0FUUF9ESVJfT0IgfCBSVEVfSVBTRUNfU0FUUF9NT0RF X1RSQU5TKToNCj4gKwkJZXNwX291dGJfaW5pdChzYSwgMCk7DQo+ICsJCWJyZWFrOw0KPiArCX0N Cj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtpbnQgX19ydGVfZXhwZXJpbWVudGFs DQo+ICtydGVfaXBzZWNfc2Ffc2l6ZShjb25zdCBzdHJ1Y3QgcnRlX2lwc2VjX3NhX3BybSAqcHJt KQ0KPiArew0KPiArCXVpbnQ2NF90IHR5cGU7DQo+ICsJdWludDMyX3QgbmI7DQo+ICsJaW50MzJf dCByYzsNCj4gKw0KPiArCWlmIChwcm0gPT0gTlVMTCkNCj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ ICsNCj4gKwkvKiBkZXRlcm1pbmUgU0EgdHlwZSAqLw0KPiArCXJjID0gZmlsbF9zYV90eXBlKHBy bSwgJnR5cGUpOw0KPiArCWlmIChyYyAhPSAwKQ0KPiArCQlyZXR1cm4gcmM7DQo+ICsNCj4gKwkv KiBkZXRlcm1pbmUgcmVxdWlyZWQgc2l6ZSAqLw0KPiArCXJldHVybiBpcHNlY19zYV9zaXplKHBy bS0+cmVwbGF5X3dpbl9zeiwgdHlwZSwgJm5iKTsNCj4gK30NCj4gKw0KPiAraW50IF9fcnRlX2V4 cGVyaW1lbnRhbA0KPiArcnRlX2lwc2VjX3NhX2luaXQoc3RydWN0IHJ0ZV9pcHNlY19zYSAqc2Es IGNvbnN0IHN0cnVjdCBydGVfaXBzZWNfc2FfcHJtICpwcm0sDQo+ICsJdWludDMyX3Qgc2l6ZSkN Cj4gK3sNCj4gKwlpbnQzMl90IHJjLCBzejsNCj4gKwl1aW50MzJfdCBuYjsNCj4gKwl1aW50NjRf dCB0eXBlOw0KPiArCXN0cnVjdCBjcnlwdG9feGZvcm0gY3hmOw0KPiArDQo+ICsJaWYgKHNhID09 IE5VTEwgfHwgcHJtID09IE5VTEwpDQo+ICsJCXJldHVybiAtRUlOVkFMOw0KPiArDQo+ICsJLyog ZGV0ZXJtaW5lIFNBIHR5cGUgKi8NCj4gKwlyYyA9IGZpbGxfc2FfdHlwZShwcm0sICZ0eXBlKTsN Cj4gKwlpZiAocmMgIT0gMCkNCj4gKwkJcmV0dXJuIHJjOw0KPiArDQo+ICsJLyogZGV0ZXJtaW5l IHJlcXVpcmVkIHNpemUgKi8NCj4gKwlzeiA9IGlwc2VjX3NhX3NpemUocHJtLT5yZXBsYXlfd2lu X3N6LCB0eXBlLCAmbmIpOw0KPiArCWlmIChzeiA8IDApDQo+ICsJCXJldHVybiBzejsNCj4gKwll bHNlIGlmIChzaXplIDwgKHVpbnQzMl90KXN6KQ0KPiArCQlyZXR1cm4gLUVOT1NQQzsNCj4gKw0K PiArCS8qIG9ubHkgZXNwIGlzIHN1cHBvcnRlZCByaWdodCBub3cgKi8NCj4gKwlpZiAocHJtLT5p cHNlY194Zm9ybS5wcm90byAhPSBSVEVfU0VDVVJJVFlfSVBTRUNfU0FfUFJPVE9fRVNQKQ0KPiAr CQlyZXR1cm4gLUVJTlZBTDsNCj4gKw0KPiArCWlmIChwcm0tPmlwc2VjX3hmb3JtLm1vZGUgPT0g UlRFX1NFQ1VSSVRZX0lQU0VDX1NBX01PREVfVFVOTkVMICYmDQo+ICsJCQlwcm0tPnR1bi5oZHJf bGVuID4gc2l6ZW9mKHNhLT5oZHIpKQ0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKw0KPiArCXJj ID0gZmlsbF9jcnlwdG9feGZvcm0oJmN4ZiwgcHJtKTsNCj4gKwlpZiAocmMgIT0gMCkNCj4gKwkJ cmV0dXJuIHJjOw0KPiArDQo+ICsJc2EtPnR5cGUgPSB0eXBlOw0KPiArCXNhLT5zaXplID0gc3o7 DQo+ICsNCj4gKwkvKiBjaGVjayBmb3IgRVNOIGZsYWcgKi8NCj4gKwlzYS0+c3FuX21hc2sgPSAo cHJtLT5pcHNlY194Zm9ybS5vcHRpb25zLmVzbiA9PSAwKSA/DQo+ICsJCVVJTlQzMl9NQVggOiBV SU5UNjRfTUFYOw0KPiArDQo+ICsJcmMgPSBlc3Bfc2FfaW5pdChzYSwgcHJtLCAmY3hmKTsNCj4g KwlpZiAocmMgIT0gMCkNCj4gKwkJcnRlX2lwc2VjX3NhX2Zpbmkoc2EpOw0KPiArDQo+ICsJLyog ZmlsbCByZXBsYXkgd2luZG93IHJlbGF0ZWQgZmllbGRzICovDQo+ICsJaWYgKG5iICE9IDApIHsN Cm1vdmUgdGhpcyB3aGVyZSBuYiBpcyBnZXR0aW5nIHVwZGF0ZWQuDQo+ICsJCXNhLT5yZXBsYXku d2luX3N6ID0gcHJtLT5yZXBsYXlfd2luX3N6Ow0KPiArCQlzYS0+cmVwbGF5Lm5iX2J1Y2tldCA9 IG5iOw0KPiArCQlzYS0+cmVwbGF5LmJ1Y2tldF9pbmRleF9tYXNrID0gc2EtPnJlcGxheS5uYl9i dWNrZXQgLSAxOw0KPiArCQlzYS0+c3FuLmluYiA9IChzdHJ1Y3QgcmVwbGF5X3NxbiAqKShzYSAr IDEpOw0KPiArCX0NCj4gKw0KPiArCXJldHVybiBzejsNCj4gK30NCj4gZGlmZiAtLWdpdCBhL2xp Yi9saWJydGVfaXBzZWMvc2EuaCBiL2xpYi9saWJydGVfaXBzZWMvc2EuaA0KPiBuZXcgZmlsZSBt b2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAuLjVkMTEzODkxYQ0KPiAtLS0gL2Rldi9udWxs DQo+ICsrKyBiL2xpYi9saWJydGVfaXBzZWMvc2EuaA0KPiBAQCAtMCwwICsxLDc3IEBADQo+ICsv KiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+ICsgKiBDb3B5cmlnaHQo YykgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbg0KPiArICovDQo+ICsNCj4gKyNpZm5kZWYgX1NBX0hf DQo+ICsjZGVmaW5lIF9TQV9IXw0KPiArDQo+ICsjZGVmaW5lIElQU0VDX01BWF9IRFJfU0laRQk2 NA0KPiArI2RlZmluZSBJUFNFQ19NQVhfSVZfU0laRQkxNg0KPiArI2RlZmluZSBJUFNFQ19NQVhf SVZfUVdPUkQJKElQU0VDX01BWF9JVl9TSVpFIC8gc2l6ZW9mKHVpbnQ2NF90KSkNCj4gKw0KPiAr LyogdGhlc2UgZGVmaW5pdGlvbnMgcHJvYmFibHkgaGFzIHRvIGJlIGluIHJ0ZV9jcnlwdG9fc3lt LmggKi8NCj4gK3VuaW9uIHN5bV9vcF9vZnNsZW4gew0KPiArCXVpbnQ2NF90IHJhdzsNCj4gKwlz dHJ1Y3Qgew0KPiArCQl1aW50MzJfdCBvZmZzZXQ7DQo+ICsJCXVpbnQzMl90IGxlbmd0aDsNCj4g Kwl9Ow0KPiArfTsNClRoZXNlIGFyZSBhbHJlYWR5IHRoZXJlIGluIHJ0ZV9jcnlwdG9fc3ltX29w LiBXaGF0IGlzIHRoZSBuZWVkIHRvIA0KcmVkZWZpbmUgaXQuDQpvZmZzZXQgYW5kIGxlbmd0aCBj YW4gY2hhbmdlIG9uIHBlciBwYWNrZXQgYmFzaXMsIGl0IGNhbm5vdCBiZSBhdCBpbml0IA0KdGlt ZSBhbmQgb24gcnVudGltZSB5b3Ugd291bGQgaGF2ZSBzeW1fb3ANCj4gKw0KPiArdW5pb24gc3lt X29wX2RhdGEgew0KPiArI2lmZGVmIF9fU0laRU9GX0lOVDEyOF9fDQo+ICsJX191aW50MTI4X3Qg cmF3Ow0KPiArI2VuZGlmDQo+ICsJc3RydWN0IHsNCj4gKwkJdWludDhfdCAqdmE7DQo+ICsJCXJ0 ZV9pb3ZhX3QgcGE7DQo+ICsJfTsNCj4gK307DQpydGVfY3J5cHRvX3N5bV9vcCBoYXMgYWxsIHRo aXMgaW5mb3JtYXRpb24gSSBndWVzcyhpbiBtYnVmKQ0KPiArDQo+ICtzdHJ1Y3QgcmVwbGF5X3Nx biB7DQo+ICsJdWludDY0X3Qgc3FuOw0KPiArCV9fZXh0ZW5zaW9uX18gdWludDY0X3Qgd2luZG93 WzBdOw0KPiArfTsNCj4gKw0KPiArc3RydWN0IHJ0ZV9pcHNlY19zYSB7DQo+ICsJdWludDY0X3Qg dHlwZTsgICAgIC8qIHR5cGUgb2YgZ2l2ZW4gU0EgKi8NCj4gKwl1aW50NjRfdCB1ZGF0YTsgICAg LyogdXNlciBkZWZpbmVkICovDQo+ICsJdWludDMyX3Qgc2l6ZTsgICAgIC8qIHNpemUgb2YgZ2l2 ZW4gc2Egb2JqZWN0ICovDQo+ICsJdWludDMyX3Qgc3BpOw0KPiArCS8qIHNxbiBjYWxjdWxhdGlv bnMgcmVsYXRlZCAqLw0KPiArCXVpbnQ2NF90IHNxbl9tYXNrOw0KPiArCXN0cnVjdCB7DQo+ICsJ CXVpbnQzMl90IHdpbl9zejsNCj4gKwkJdWludDE2X3QgbmJfYnVja2V0Ow0KPiArCQl1aW50MTZf dCBidWNrZXRfaW5kZXhfbWFzazsNCj4gKwl9IHJlcGxheTsNCj4gKwkvKiB0ZW1wbGF0ZSBmb3Ig Y3J5cHRvIG9wIGZpZWxkcyAqLw0KPiArCXN0cnVjdCB7DQo+ICsJCXVuaW9uIHN5bV9vcF9vZnNs ZW4gY2lwaGVyOw0KPiArCQl1bmlvbiBzeW1fb3Bfb2ZzbGVuIGF1dGg7DQo+ICsJfSBjdHA7DQo+ ICsJdWludDMyX3Qgc2FsdDsNCj4gKwl1aW50OF90IHByb3RvOyAgICAvKiBuZXh0IHByb3RvICov DQo+ICsJdWludDhfdCBhYWRfbGVuOw0KPiArCXVpbnQ4X3QgaGRyX2xlbjsNCj4gKwl1aW50OF90 IGhkcl9sM19vZmY7DQo+ICsJdWludDhfdCBpY3ZfbGVuOw0KPiArCXVpbnQ4X3Qgc3FoX2xlbjsN Cj4gKwl1aW50OF90IGl2X29mczsgLyogb2Zmc2V0IGZvciBhbGdvLXNwZWNpZmljIElWIGluc2lk ZSBjcnlwdG8gb3AgKi8NCj4gKwl1aW50OF90IGl2X2xlbjsNCj4gKwl1aW50OF90IHBhZF9hbGln bjsNCj4gKw0KPiArCS8qIHRlbXBsYXRlIGZvciB0dW5uZWwgaGVhZGVyICovDQo+ICsJdWludDhf dCBoZHJbSVBTRUNfTUFYX0hEUl9TSVpFXTsNCj4gKw0KPiArCS8qDQo+ICsJICogc3FuIGFuZCBy ZXBsYXkgd2luZG93DQo+ICsJICovDQo+ICsJdW5pb24gew0KPiArCQl1aW50NjRfdCBvdXRiOw0K PiArCQlzdHJ1Y3QgcmVwbGF5X3NxbiAqaW5iOw0KPiArCX0gc3FuOw0KPiArDQo+ICt9IF9fcnRl X2NhY2hlX2FsaWduZWQ7DQo+ICsNCnJlbW92ZcKgIGV4dHJhIGxpbmVzDQo+ICsjZW5kaWYgLyog X1NBX0hfICovDQo+IGRpZmYgLS1naXQgYS9saWIvbWVzb24uYnVpbGQgYi9saWIvbWVzb24uYnVp bGQNCj4gaW5kZXggYmI3ZjQ0M2Y5Li42OTY4NGVmMTQgMTAwNjQ0DQo+IC0tLSBhL2xpYi9tZXNv bi5idWlsZA0KPiArKysgYi9saWIvbWVzb24uYnVpbGQNCj4gQEAgLTIyLDYgKzIyLDggQEAgbGli cmFyaWVzID0gWyAnY29tcGF0JywgIyBqdXN0IGEgaGVhZGVyLCB1c2VkIGZvciB2ZXJzaW9uaW5n DQo+ICAgCSdrbmknLCAnbGF0ZW5jeXN0YXRzJywgJ2xwbScsICdtZW1iZXInLA0KPiAgIAknbWV0 ZXInLCAncG93ZXInLCAncGR1bXAnLCAncmF3ZGV2JywNCj4gICAJJ3Jlb3JkZXInLCAnc2NoZWQn LCAnc2VjdXJpdHknLCAndmhvc3QnLA0KPiArCSNpcHNlYyBsaWIgZGVwZW5kcyBvbiBjcnlwdG8g YW5kIHNlY3VyaXR5DQo+ICsJJ2lwc2VjJywNCj4gICAJIyBhZGQgcGt0IGZyYW1ld29yayBsaWJz IHdoaWNoIHVzZSBvdGhlciBsaWJzIGZyb20gYWJvdmUNCj4gICAJJ3BvcnQnLCAndGFibGUnLCAn cGlwZWxpbmUnLA0KPiAgIAkjIGZsb3dfY2xhc3NpZnkgbGliIGRlcGVuZHMgb24gcGt0IGZyYW1l d29yayB0YWJsZSBsaWINCj4gZGlmZiAtLWdpdCBhL21rL3J0ZS5hcHAubWsgYi9tay9ydGUuYXBw Lm1rDQo+IGluZGV4IDU2OTlkOTc5ZC4uZjRjZDc1MjUyIDEwMDY0NA0KPiAtLS0gYS9tay9ydGUu YXBwLm1rDQo+ICsrKyBiL21rL3J0ZS5hcHAubWsNCj4gQEAgLTY3LDYgKzY3LDggQEAgaWZlcSAo JChDT05GSUdfUlRFX0xJQlJURV9CUEZfRUxGKSx5KQ0KPiAgIF9MRExJQlMtJChDT05GSUdfUlRF X0xJQlJURV9CUEYpICAgICAgICAgICAgKz0gLWxlbGYNCj4gICBlbmRpZg0KPiAgIA0KPiArX0xE TElCUy0kKENPTkZJR19SVEVfTElCUlRFX0lQU0VDKSAgICAgICAgICAgICs9IC1scnRlX2lwc2Vj DQo+ICsNCj4gICBfTERMSUJTLXkgKz0gLS13aG9sZS1hcmNoaXZlDQo+ICAgDQo+ICAgX0xETElC Uy0kKENPTkZJR19SVEVfTElCUlRFX0NGR0ZJTEUpICAgICAgICArPSAtbHJ0ZV9jZmdmaWxlDQoN Cg==