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 9DAFDA0542 for ; Thu, 13 Feb 2020 10:06:50 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5683C2BF4; Thu, 13 Feb 2020 10:06:50 +0100 (CET) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70053.outbound.protection.outlook.com [40.107.7.53]) by dpdk.org (Postfix) with ESMTP id 1FB8E2BF4 for ; Thu, 13 Feb 2020 10:06:49 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T4xm67/2MG93D9Kud4+pzV7KvrWWhSpCdJQEhkN4tctwf4/mC1G9wwpzorYm90psrqmwLl2bUiGC7LP/5UVjHDy9BgoKtQKqlVeThnxIzjrazE//9OKtMUeLUxhkvldlsFDfm7y/Ku9IDaoIp0DxQW1RerqtywWnkWAdmnK4ordC5Qfps+EwXdpNED2Mfh/WwZOqgBRk5n4ve93jrgWNPxoFuhcbusbI6+l/Q0/pSlkUsu1MrtYZbK3uOCZei5YBIaSLqsn8bO+AwQD/28ECOV1vmpbOH+tY1UCk1paMicvsvtuo5JvmhtL2M47U+pe/t1YDEeb0/TvDrNhh9jnxxg== 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=bFly7xcoqIbIytlIZpIGmfu1BEmEyPS7wb31XpFjz1U=; b=XZHFe5+GH0F7jQ+1VYR8NdoG/iikujT198Ycd0OcMbYpU1jy30KJQPMEUhwhNZK62sQNq+1KgTwp2xHz2LBFt8MIaOqX3ADpJ45eYmagzPHWGjespBwJwv4Pv3ZBG+9clFasZzSvVQgR1Sz1m+8U+THkEhO5k4+NyO/k6EdQtUL9An+qxf+bklOsF9SeGtFbH9OCDeS0xaY9t5uYIPcrRpqjLpM/NiPXQPp2rh+PnJJViC1JZw9TlthNNXlWkqhektW6Xf80pbbgRnwiOGOWdrjfPzxkCwnNOD656kocNYWZJszrLFfIpZblrytyCCqEGjP/TgiXT2p4KBXx3CgZkA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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=bFly7xcoqIbIytlIZpIGmfu1BEmEyPS7wb31XpFjz1U=; b=D+RKNKmNcahpbsO+NFlOgu9+N4mwC6YAvjr6AFbEKkwW7m8uSy/Ykc3wgZJzMgF8pvOpqwuchec2VuLwidD/o1MqRB87qc4VevLiqJRWqQMXPXgFXfS5gAy2FBkOx9jQmCjAy4kercM5n2ExexKsaotma4DIT42Ho3BxDJ7xyr4= Received: from VI1PR05MB4192.eurprd05.prod.outlook.com (10.171.183.18) by VI1PR05MB6350.eurprd05.prod.outlook.com (20.179.26.215) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2729.22; Thu, 13 Feb 2020 09:06:46 +0000 Received: from VI1PR05MB4192.eurprd05.prod.outlook.com ([fe80::44e:faeb:1967:44]) by VI1PR05MB4192.eurprd05.prod.outlook.com ([fe80::44e:faeb:1967:44%7]) with mapi id 15.20.2729.021; Thu, 13 Feb 2020 09:06:46 +0000 From: Bing Zhao To: Luca Boccassi CC: Ori Kam , Slava Ovsiienko , dpdk stable Thread-Topic: patch 'net/mlx5: fix modify actions support limitation' has been queued to stable release 19.11.1 Thread-Index: AQHV4M7HneCBrhy0VE60C8RkM8wOW6gV/YAggAAOZACAAstLkA== Date: Thu, 13 Feb 2020 09:06:46 +0000 Message-ID: References: <20200211112216.3929-1-luca.boccassi@gmail.com> <20200211112216.3929-122-luca.boccassi@gmail.com> <31aed464aa917104b0a57c6a32870e67a15a60ba.camel@gmail.com> In-Reply-To: <31aed464aa917104b0a57c6a32870e67a15a60ba.camel@gmail.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=bingz@mellanox.com; x-originating-ip: [122.235.209.77] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: eb2c4abb-325b-4765-a8d3-08d7b0640d6c x-ms-traffictypediagnostic: VI1PR05MB6350:|VI1PR05MB6350: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 031257FE13 x-forefront-antispam-report: SFV:NSPM; SFS:(10001)(10009020)(4636009)(366004)(376002)(346002)(39860400002)(136003)(396003)(189003)(199004)(66946007)(6506007)(54906003)(6916009)(966005)(5660300002)(66446008)(45080400002)(76116006)(316002)(66556008)(66476007)(64756008)(7696005)(2906002)(30864003)(86362001)(81156014)(81166006)(9686003)(8676002)(55016002)(71200400001)(33656002)(4326008)(26005)(52536014)(478600001)(53546011)(8936002)(186003)(559001)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB6350; H:VI1PR05MB4192.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: W4P0HVRXr1TNhKsLUUxgkrRb0sGp0tMiVOz2Eph2SR6VZORK3aN/DT488D3PkSIi7DIrU1fMrXPjDOiAx8+zGsBc1kpMwmHKCm1JZ8wjcsNJNWATvK8ZvEIIifZ7rPPmyMFUCq9xUDVegEJz/g0TkIPJZiiDn/BkiUhhbNmR1xKHUwvwCbQQI/L/sITKySC6Ec3x7nZL2kgfJVeuLmXPA6+ih/ZMCBswEUTui0MCiWh8IfBZbfIttAxubPtk/waWeQPMtMWkR8nTNuD7GksFzfC5vth1Z38fU/WSKKpXfQ7e3Udxpd7+rlA2BvUAAamgfL3xiawLil6rosuaeuTtn2uIJMtFuHSgRVBc9UhBvVJ5rIVbDIMy3NFZMTjKJOC/ghBo2JEfwcMWV6Kt2/PcRpqz9afFL1mUROWYVt+TmTTge8M6f1mJ6f7nZkemCizdyZm5K8ml/WEE08T8GsU+VIRAjPhlr/Q6tn+ov888G3CBtTKkgiUGnCWBh5rlu6c7rn/cvmznagH73ySm0z+jTYjQO+EnwsKY8dyAwl712pJ6cgpNxJOsBPQEhkoV0/CumM6/Y3Im68+3wWZcvA1qh8s3f61Xj7/YZLk4TCDeq+bmOZghfyv2Wh1gRwAAMOc4 x-ms-exchange-antispam-messagedata: DjyT2ySu/SKssf/Bp5BGHTv5NbpDuIM2Kqx4V4urq7ETgkWneRd/SK79hc+M2Vbi0LQUzYBJbbRsifBwEpn8ZzqngO8g2UysQYVnduy5/5hyuS810ue4zb/HjNtqOsBEy4D0XgYBZArRkbTDR4Q0iA== 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: eb2c4abb-325b-4765-a8d3-08d7b0640d6c X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Feb 2020 09:06:46.2688 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: boJhdLohAYv9zMrUJONf8dwRqBY+CNOUhKqoEWOnW6feU5fwNcQsDeCYVdXyRcbd7+j4CG0o2Kf1AyYbe5HA3A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6350 Subject: Re: [dpdk-stable] patch 'net/mlx5: fix modify actions support limitation' has been queued to stable release 19.11.1 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" SGkgTHVjYSwNCkkgY2hlY2tlZCB0aGUgcGF0Y2ggYW5kIGl0IGlzIE9LIGZvciBtZS4NCkFmdGVy IHRoaXMgaXMgYXBwbGllZCwgdGhlbiBwYXRjaCAjNjU1NzQgaXMgYWxzbyBuZWVkZWQgZm9yIDE5 LjExLjEuDQoNClNvIG1hbnkgdGhhbmtzIGZvciB5b3VyIGhlbHAuDQoNCkJSLiBCaW5nDQoNCj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTHVjYSBCb2NjYXNzaSA8bHVjYS5i b2NjYXNzaUBnbWFpbC5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIEZlYnJ1YXJ5IDExLCAyMDIwIDEw OjIzIFBNDQo+IFRvOiBCaW5nIFpoYW8gPGJpbmd6QG1lbGxhbm94LmNvbT4NCj4gQ2M6IE9yaSBL YW0gPG9yaWthQG1lbGxhbm94LmNvbT47IFNsYXZhIE92c2lpZW5rbw0KPiA8dmlhY2hlc2xhdm9A bWVsbGFub3guY29tPjsgZHBkayBzdGFibGUgPHN0YWJsZUBkcGRrLm9yZz4NCj4gU3ViamVjdDog UmU6IHBhdGNoICduZXQvbWx4NTogZml4IG1vZGlmeSBhY3Rpb25zIHN1cHBvcnQgbGltaXRhdGlv bicgaGFzDQo+IGJlZW4gcXVldWVkIHRvIHN0YWJsZSByZWxlYXNlIDE5LjExLjENCj4gDQo+IEhp LA0KPiANCj4gVGhlIHJlYmFzaW5nIGlzIGRvbmUgYW5kIHlvdSBjYW4gc2VlIHRoZSByZXN1bHQg aW4gdGhlIG1haWwgeW91IHJlcGxpZWQNCj4gdG8uDQo+IA0KPiBUaGUgbmV3IDE5LjExIGJyYW5j aCB3aWxsIGJlIHB1c2hlZCBieSB0aGUgZW5kIG9mIHRoZSB3ZWVrLg0KPiANCj4gT24gVHVlLCAy MDIwLTAyLTExIGF0IDEzOjQ4ICswMDAwLCBCaW5nIFpoYW8gd3JvdGU6DQo+ID4gSGkgTHVjYSwN Cj4gPg0KPiA+IE1hbnkgdGhhbmtzIGZvciB5b3VyIGhlbHAuDQo+ID4NCj4gPiBZZXMsIHRoaXMg bmVlZHMgdG8gYmUgYWxzbyBhcHBsaWVkIHRvIHRoZSAxOS4xMSBzdGFibGUgYnJhbmNoLiBJIHdh bnQNCj4gPiB0byByZWJhc2UgaXQgYnV0IGNvdWxkIG5vdCBmaW5kIHRoZSBicmFuY2ggaW4NCj4g Pg0KPiBodHRwczovL2V1cjAzLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9 aHR0cCUzQSUyRiUyRmcNCj4gaXQuZA0KPiA+IHBkay5vcmclMkZkcGRrLQ0KPiBzdGFibGUlMkYm YW1wO2RhdGE9MDIlN0MwMSU3Q2Jpbmd6JTQwbWVsbGFub3guY29tJTdDODg4DQo+ID4NCj4gYzRm YTJkMmIyNDJjOTNlYmMwOGQ3YWVmZGU0ZTElN0NhNjUyOTcxYzdkMmU0ZDliYTZhNGQxNDkyNTYN Cj4gZjQ2MWIlN0MwJTcNCj4gPg0KPiBDMCU3QzYzNzE3MDI3NzgwNDU2NjMyMSZhbXA7c2RhdGE9 WU1UYWVkUlIzTHY3T0tkJTJGdmhFSg0KPiA1Q1hPSjlvSFUzaCUyQg0KPiA+IGVpNHFvdjB4NlJB JTNEJmFtcDtyZXNlcnZlZD0wDQo+ID4gICwgc28gd291bGQgeW91IHBsZWFzZSBzaGFyZSBtZSB0 aGUNCj4gPiBicmFuY2ggaW5mb3JtYXRpb24gdGhlbiBJIGNhbiB0cnkgdG8gZmluaXNoIHRoZSBy ZWJhc2luZyB0b2RheSBvcg0KPiA+IGVhcmx5IHRvbW9ycm93Lg0KPiA+DQo+ID4gQlIuIEJpbmcN Cj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206DQo+ID4g PiBsdWNhLmJvY2Nhc3NpQGdtYWlsLmNvbQ0KPiA+ID4gIDwNCj4gPiA+IGx1Y2EuYm9jY2Fzc2lA Z21haWwuY29tDQo+ID4gPiA+DQo+ID4gPiBTZW50OiBUdWVzZGF5LCBGZWJydWFyeSAxMSwgMjAy MCA3OjIxIFBNDQo+ID4gPiBUbzogQmluZyBaaGFvIDwNCj4gPiA+IGJpbmd6QG1lbGxhbm94LmNv bQ0KPiA+ID4gPg0KPiA+ID4gQ2M6IE9yaSBLYW0gPA0KPiA+ID4gb3Jpa2FAbWVsbGFub3guY29t DQo+ID4gPiA+OyBTbGF2YSBPdnNpaWVua28NCj4gPiA+IDwNCj4gPiA+IHZpYWNoZXNsYXZvQG1l bGxhbm94LmNvbQ0KPiA+ID4gPjsgZHBkayBzdGFibGUgPA0KPiA+ID4gc3RhYmxlQGRwZGsub3Jn DQo+ID4gPiA+DQo+ID4gPiBTdWJqZWN0OiBwYXRjaCAnbmV0L21seDU6IGZpeCBtb2RpZnkgYWN0 aW9ucyBzdXBwb3J0IGxpbWl0YXRpb24nDQo+ID4gPiBoYXMNCj4gPiA+IGJlZW4gcXVldWVkIHRv IHN0YWJsZSByZWxlYXNlIDE5LjExLjENCj4gPiA+DQo+ID4gPiBIaSwNCj4gPiA+DQo+ID4gPiBG WUksIHlvdXIgcGF0Y2ggaGFzIGJlZW4gcXVldWVkIHRvIHN0YWJsZSByZWxlYXNlIDE5LjExLjEN Cj4gPiA+DQo+ID4gPiBOb3RlIGl0IGhhc24ndCBiZWVuIHB1c2hlZCB0bw0KPiA+ID4NCj4gaHR0 cHM6Ly9ldXIwMy5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHAlM0El MkYlMkYNCj4gPiA+DQo+ID4gPiBkcGRrLm9yZyUyRmJyb3dzZSUyRmRwZGstDQo+ID4gPg0KPiBz dGFibGUmYW1wO2RhdGE9MDIlN0MwMSU3Q2Jpbmd6JTQwbWVsbGFub3guY29tJTdDZjMxZDIwYWM4 Yw0KPiA+ID4NCj4gNGU0MjczODZhMTA4ZDdhZWU1ZThjMiU3Q2E2NTI5NzFjN2QyZTRkOWJhNmE0 ZDE0OTI1NmY0NjFiJQ0KPiA+ID4NCj4gN0MwJTdDMCU3QzYzNzE3MDE3NDc4MTk2MTgzNSZhbXA7 c2RhdGE9bm8lMkJHNW5LTnphWUw3Mm4NCj4gPiA+IDN2ZjV2MFptZm1KTFJMTmNQZndxZ2Y0WUpO VTAlM0QmYW1wO3Jlc2VydmVkPTAgeWV0Lg0KPiA+ID4gSXQgd2lsbCBiZSBwdXNoZWQgaWYgSSBn ZXQgbm8gb2JqZWN0aW9ucyBiZWZvcmUgMDIvMTMvMjAuIFNvIHBsZWFzZQ0KPiA+ID4gc2hvdXQg aWYgYW55b25lIGhhcyBvYmplY3Rpb25zLg0KPiA+ID4NCj4gPiA+IEFsc28gbm90ZSB0aGF0IGFm dGVyIHRoZSBwYXRjaCB0aGVyZSdzIGEgZGlmZiBvZiB0aGUgdXBzdHJlYW0gY29tbWl0DQo+ID4g PiB2cyB0aGUgcGF0Y2ggYXBwbGllZCB0byB0aGUgYnJhbmNoLiBUaGlzIHdpbGwgaW5kaWNhdGUg aWYgdGhlcmUgd2FzDQo+ID4gPiBhbnkgcmViYXNpbmcgbmVlZGVkIHRvIGFwcGx5IHRvIHRoZSBz dGFibGUgYnJhbmNoLiBJZiB0aGVyZSB3ZXJlDQo+ID4gPiBjb2RlIGNoYW5nZXMgZm9yIHJlYmFz aW5nDQo+ID4gPiAoaWU6IG5vdCBvbmx5IG1ldGFkYXRhIGRpZmZzKSwgcGxlYXNlIGRvdWJsZSBj aGVjayB0aGF0IHRoZSByZWJhc2UNCj4gPiA+IHdhcyBjb3JyZWN0bHkgZG9uZS4NCj4gPiA+DQo+ ID4gPiBUaGFua3MuDQo+ID4gPg0KPiA+ID4gTHVjYSBCb2NjYXNzaQ0KPiA+ID4NCj4gPiA+IC0t LQ0KPiA+ID4gRnJvbSBlMGRlODE2Zjk0NWU1OTlhOTMzMDgxYzUzYmIwNjBkNWRkNGNiZjEzIE1v biBTZXAgMTcNCj4gPiA+IDAwOjAwOjAwIDIwMDENCj4gPiA+IEZyb206IEJpbmcgWmhhbyA8DQo+ ID4gPiBiaW5nekBtZWxsYW5veC5jb20NCj4gPiA+ID4NCj4gPiA+IERhdGU6IE1vbiwgMjAgSmFu IDIwMjAgMTE6NDM6MDcgKzAyMDANCj4gPiA+IFN1YmplY3Q6IFtQQVRDSF0gbmV0L21seDU6IGZp eCBtb2RpZnkgYWN0aW9ucyBzdXBwb3J0IGxpbWl0YXRpb24NCj4gPiA+DQo+ID4gPiBbIHVwc3Ry ZWFtIGNvbW1pdCAwMjRlOTU3NTljMTZjNjdlZWU5MmVmZmZlZWUzNDkxNWRjOTRhOWMwIF0NCj4g PiA+DQo+ID4gPiBJbiB0aGUgcm9vdCB0YWJsZSwgdGhlcmUgaXMgc29tZSBsaW1pdGF0aW9uIG9m IHRvdGFsIG51bWJlciBvZg0KPiA+ID4gaGVhZGVyIG1vZGlmeSBhY3Rpb25zLCAxNiBvciA4IGZv ciBlYWNoLiBCdXQgaW4gb3RoZXIgdGFibGVzLCB0aGVyZQ0KPiA+ID4gaXMgbm8gc3VjaCBzdHJp Y3QgbGltaXRhdGlvbi4gSW4gYW4gSVB2NiBjYXNlLCB0aGUgSVAgZmllbGRzDQo+ID4gPiBtb2Rp Znlpbmcgd2lsbCBvY2N1cHkgbW9yZSBhY3Rpb25zIHRoYW4gdGhhdCBpbiBJUHY0LCBzbyB0aGUg dG90YWwNCj4gPiA+IHN1cHBvcnQgbnVtYmVyIHNob3VsZCBiZSBpbmNyZWFzZWQgaW4gb3JkZXIg dG8gc3VwcG9ydCBhcyBtYW55DQo+ID4gPiBhY3Rpb25zIGFzIHBvc3NpYmxlIGZvciBhbg0KPiA+ ID4gSVB2NiArDQo+ID4gPiBUQ1AgcGFja2V0Lg0KPiA+ID4gQW5kIGluIHRoZSBtZWFud2hpbGUs IHRoZSBtZW1vcnkgY29uc3VtcHRpb24gc2hvdWxkIGFsc28gYmUNCj4gdGFrZW4NCj4gPiA+IGlu dG8gY29uc2lkZXJhdGlvbiBiZWNhdXNlIHNvbWV0aW1lcyBvbmx5IHNldmVyYWwgYWN0aW9ucyBh cmUNCj4gPiA+IG5lZWRlZC4NCj4gPiA+IFRoZSByb290IHRhYmxlIGNoZWNraW5nIGNvdWxkIGFs c28gYmUgZG9uZSBpbiBsb3cgbGF5ZXIgZHJpdmVyIGFuZA0KPiA+ID4gdGhlIGVycm9yIGNvZGUg d2lsbCBiZSByZXR1cm5lZCBpZiB0aGUgYWN0aW9ucyBudW1iZXIgaXMgb3ZlciB0aGUNCj4gPiA+ IG1heGltYWwgc3VwcG9ydGVkIHZhbHVlLg0KPiA+ID4NCj4gPiA+IEZpeGVzOiAwZTlkMDAwMjc2 ODYgKCJuZXQvbWx4NTogY2hlY2sgbWF4aW11bSBtb2RpZnkgYWN0aW9ucw0KPiA+ID4gbnVtYmVy IikNCj4gPiA+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBCaW5nIFpoYW8gPA0KPiA+ID4gYmluZ3pA bWVsbGFub3guY29tDQo+ID4gPiA+DQo+ID4gPiBBY2tlZC1ieTogT3JpIEthbSA8DQo+ID4gPiBv cmlrYUBtZWxsYW5veC5jb20NCj4gPiA+ID4NCj4gPiA+IEFja2VkLWJ5OiBWaWFjaGVzbGF2IE92 c2lpZW5rbyA8DQo+ID4gPiB2aWFjaGVzbGF2b0BtZWxsYW5veC5jb20NCj4gPiA+ID4NCj4gPiA+ IC0tLQ0KPiA+ID4gIGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmggICAgfCAgMTUgKysrLS0N Cj4gPiA+ICBkcml2ZXJzL25ldC9tbHg1L21seDVfZmxvd19kdi5jIHwgMTA0ICsrKysrKysrKysr KysrKysrLS0tLS0tLS0NCj4gLS0tDQo+ID4gPiAtLQ0KPiA+ID4gLS0NCj4gPiA+ICAyIGZpbGVz IGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9ucygtKQ0KPiA+ID4NCj4gPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5oDQo+ID4gPiBiL2RyaXZl cnMvbmV0L21seDUvbWx4NV9mbG93LmggaW5kZXggZGIxMjcxNWVjYy4uMTNiZWQwOGQ3NQ0KPiA+ ID4gMTAwNjQ0DQo+ID4gPiAtLS0gYS9kcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5oDQo+ID4g PiArKysgYi9kcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5oDQo+ID4gPiBAQCAtMzkxLDExICsz OTEsMTQgQEAgc3RydWN0IG1seDVfZmxvd19kdl90YWdfcmVzb3VyY2Ugew0KPiA+ID4NCj4gPiA+ ICAvKg0KPiA+ID4gICAqIE51bWJlciBvZiBtb2RpZmljYXRpb24gY29tbWFuZHMuDQo+ID4gPiAt ICogSWYgZXh0ZW5zaXZlIG1ldGFkYXRhIHJlZ2lzdGVycyBhcmUgc3VwcG9ydGVkDQo+ID4gPiAt ICogdGhlIG1heGltYWwgYWN0aW9ucyBhbW91bnQgaXMgMTYgYW5kIDggb3RoZXJ3aXNlLg0KPiA+ ID4gKyAqIElmIGV4dGVuc2l2ZSBtZXRhZGF0YSByZWdpc3RlcnMgYXJlIHN1cHBvcnRlZCwgdGhl IG1heGltYWwNCj4gPiA+IGFjdGlvbnMNCj4gPiA+ICsgYW1vdW50IGlzDQo+ID4gPiArICogMTYg YW5kIDggb3RoZXJ3aXNlIG9uIHJvb3QgdGFibGUuIFRoZSB2YWxpZGF0aW9uIGNvdWxkIGFsc28g YmUNCj4gPiA+IGRvbmUNCj4gPiA+ICsgaW4gdGhlDQo+ID4gPiArICogbG93ZXIgZHJpdmVyIGxh eWVyLg0KPiA+ID4gKyAqIE9uIG5vbi1yb290IHRhYmxlLCB0aGVyZSBpcyBubyBsaW1pdGF0aW9u LCBidXQgMzIgaXMgZW5vdWdoDQo+ID4gPiByaWdodA0KPiA+ID4gbm93Lg0KPiA+ID4gICAqLw0K PiA+ID4gLSNkZWZpbmUgTUxYNV9NT0RJRllfTlVNIDE2DQo+ID4gPiAtI2RlZmluZSBNTFg1X01P RElGWV9OVU1fTk9fTVJFRyA4DQo+ID4gPiArI2RlZmluZSBNTFg1X01BWF9NT0RJRllfTlVNCQkJ MzINCj4gPiA+ICsjZGVmaW5lIE1MWDVfUk9PVF9UQkxfTU9ESUZZX05VTQkJMTYNCj4gPiA+ICsj ZGVmaW5lIE1MWDVfUk9PVF9UQkxfTU9ESUZZX05VTV9OT19NUkVHCTgNCj4gPiA+DQo+ID4gPiAg LyogTW9kaWZ5IHJlc291cmNlIHN0cnVjdHVyZSAqLw0KPiA+ID4gIHN0cnVjdCBtbHg1X2Zsb3df ZHZfbW9kaWZ5X2hkcl9yZXNvdXJjZSB7IEBAIC00MDYsOSArNDA5LDkNCj4gQEANCj4gPiA+IHN0 cnVjdCBtbHg1X2Zsb3dfZHZfbW9kaWZ5X2hkcl9yZXNvdXJjZSB7DQo+ID4gPiAgCS8qKjwgVmVy YnMgbW9kaWZ5IGhlYWRlciBhY3Rpb24gb2JqZWN0LiAqLw0KPiA+ID4gIAl1aW50OF90IGZ0X3R5 cGU7IC8qKjwgRmxvdyB0YWJsZSB0eXBlLCBSeCBvciBUeC4gKi8NCj4gPiA+ICAJdWludDMyX3Qg YWN0aW9uc19udW07IC8qKjwgTnVtYmVyIG9mIG1vZGlmaWNhdGlvbiBhY3Rpb25zLg0KPiA+ID4g Ki8NCj4gPiA+IC0Jc3RydWN0IG1seDVfbW9kaWZpY2F0aW9uX2NtZCBhY3Rpb25zW01MWDVfTU9E SUZZX05VTV07DQo+ID4gPiArCXVpbnQ2NF90IGZsYWdzOyAvKio8IEZsYWdzIGZvciBSRE1BIEFQ SS4gKi8NCj4gPiA+ICsJc3RydWN0IG1seDVfbW9kaWZpY2F0aW9uX2NtZCBhY3Rpb25zW107DQo+ ID4gPiAgCS8qKjwgTW9kaWZpY2F0aW9uIGFjdGlvbnMuICovDQo+ID4gPiAtCXVpbnQ2NF90IGZs YWdzOyAvKio8IEZsYWdzIGZvciBSRE1BIEFQSS4gKi8NCj4gPiA+ICB9Ow0KPiA+ID4NCj4gPiA+ ICAvKiBKdW1wIGFjdGlvbiByZXNvdXJjZSBzdHJ1Y3R1cmUuICovIGRpZmYgLS1naXQNCj4gPiA+ IGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3dfZHYuYw0KPiBiL2RyaXZlcnMvbmV0L21seDUv bWx4NV9mbG93X2R2LmMNCj4gPiA+IGluZGV4IDhmNzc5MDk0MTkuLjc0ZDFhNjhlNGENCj4gPiA+ IDEwMDY0NA0KPiA+ID4gLS0tIGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3dfZHYuYw0KPiA+ ID4gKysrIGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3dfZHYuYw0KPiA+ID4gQEAgLTM2Myw3 ICszNjMsNyBAQCBmbG93X2R2X2NvbnZlcnRfbW9kaWZ5X2FjdGlvbihzdHJ1Y3QNCj4gPiA+IHJ0 ZV9mbG93X2l0ZW0gKml0ZW0sDQo+ID4gPiAgCQl1aW50MzJfdCBtYXNrOw0KPiA+ID4gIAkJdWlu dDMyX3QgZGF0YTsNCj4gPiA+DQo+ID4gPiAtCQlpZiAoaSA+PSBNTFg1X01PRElGWV9OVU0pDQo+ ID4gPiArCQlpZiAoaSA+PSBNTFg1X01BWF9NT0RJRllfTlVNKQ0KPiA+ID4gIAkJCXJldHVybiBy dGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVJTlZBTCwNCj4gPiA+ICAJCQkJIFJURV9GTE9XX0VS Uk9SX1RZUEVfQUNUSU9OLA0KPiA+ID4gTlVMTCwNCj4gPiA+ICAJCQkJICJ0b28gbWFueSBpdGVt cyB0byBtb2RpZnkiKTsNCj4gPiA+IEBAIC00MDQsMTEgKzQwNCwxMSBAQCBmbG93X2R2X2NvbnZl cnRfbW9kaWZ5X2FjdGlvbihzdHJ1Y3QNCj4gPiA+IHJ0ZV9mbG93X2l0ZW0gKml0ZW0sDQo+ID4g PiAgCQkrK2k7DQo+ID4gPiAgCQkrK2ZpZWxkOw0KPiA+ID4gIAl9IHdoaWxlIChmaWVsZC0+c2l6 ZSk7DQo+ID4gPiAtCXJlc291cmNlLT5hY3Rpb25zX251bSA9IGk7DQo+ID4gPiAtCWlmICghcmVz b3VyY2UtPmFjdGlvbnNfbnVtKQ0KPiA+ID4gKwlpZiAocmVzb3VyY2UtPmFjdGlvbnNfbnVtID09 IGkpDQo+ID4gPiAgCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFSU5WQUwsDQo+ ID4gPg0KPiA+ID4gUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sIE5VTEwsDQo+ID4gPiAgCQkJ CQkgICJpbnZhbGlkIG1vZGlmaWNhdGlvbiBmbG93DQo+ID4gPiBpdGVtIik7DQo+ID4gPiArCXJl c291cmNlLT5hY3Rpb25zX251bSA9IGk7DQo+ID4gPiAgCXJldHVybiAwOw0KPiA+ID4gIH0NCj4g PiA+DQo+ID4gPiBAQCAtNTY5LDcgKzU2OSw3IEBAIGZsb3dfZHZfY29udmVydF9hY3Rpb25fbW9k aWZ5X3ZsYW5fdmlkDQo+ID4gPiAgCXN0cnVjdCBtbHg1X21vZGlmaWNhdGlvbl9jbWQgKmFjdGlv bnMgPSAmcmVzb3VyY2UtPmFjdGlvbnNbaV07DQo+ID4gPiAgCXN0cnVjdCBmaWVsZF9tb2RpZnlf aW5mbyAqZmllbGQgPSBtb2RpZnlfdmxhbl9vdXRfZmlyc3RfdmlkOw0KPiA+ID4NCj4gPiA+IC0J aWYgKGkgPj0gTUxYNV9NT0RJRllfTlVNKQ0KPiA+ID4gKwlpZiAoaSA+PSBNTFg1X01BWF9NT0RJ RllfTlVNKQ0KPiA+ID4gIAkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRUlOVkFM LA0KPiA+ID4gIAkJCSBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwgTlVMTCwNCj4gPiA+ICAJ CQkgInRvbyBtYW55IGl0ZW1zIHRvIG1vZGlmeSIpOw0KPiA+ID4gQEAgLTkwMiw3ICs5MDIsNyBA QCBmbG93X2R2X2NvbnZlcnRfYWN0aW9uX3NldF9yZWcNCj4gPiA+ICAJc3RydWN0IG1seDVfbW9k aWZpY2F0aW9uX2NtZCAqYWN0aW9ucyA9IHJlc291cmNlLT5hY3Rpb25zOw0KPiA+ID4gIAl1aW50 MzJfdCBpID0gcmVzb3VyY2UtPmFjdGlvbnNfbnVtOw0KPiA+ID4NCj4gPiA+IC0JaWYgKGkgPj0g TUxYNV9NT0RJRllfTlVNKQ0KPiA+ID4gKwlpZiAoaSA+PSBNTFg1X01BWF9NT0RJRllfTlVNKQ0K PiA+ID4gIAkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRUlOVkFMLA0KPiA+ID4N Cj4gPiA+IFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBOVUxMLA0KPiA+ID4gIAkJCQkJICAi dG9vIG1hbnkgaXRlbXMgdG8gbW9kaWZ5Iik7DQo+IEBAIC05MTQsMTAgKzkxNCw2IEBADQo+ID4g PiBmbG93X2R2X2NvbnZlcnRfYWN0aW9uX3NldF9yZWcNCj4gPiA+ICAJYWN0aW9uc1tpXS5kYXRh MSA9IHJ0ZV9jcHVfdG9fYmVfMzIoY29uZi0+ZGF0YSk7DQo+ID4gPiAgCSsraTsNCj4gPiA+ICAJ cmVzb3VyY2UtPmFjdGlvbnNfbnVtID0gaTsNCj4gPiA+IC0JaWYgKCFyZXNvdXJjZS0+YWN0aW9u c19udW0pDQo+ID4gPiAtCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFSU5WQUws DQo+ID4gPiAtDQo+ID4gPiBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwgTlVMTCwNCj4gPiA+ IC0JCQkJCSAgImludmFsaWQgbW9kaWZpY2F0aW9uIGZsb3cNCj4gPiA+IGl0ZW0iKTsNCj4gPiA+ ICAJcmV0dXJuIDA7DQo+ID4gPiAgfQ0KPiA+ID4NCj4gPiA+IEBAIC0yMjU2LDcgKzIyNTIsNiBA QCBmbG93X2R2X2VuY2FwX2RlY2FwX3Jlc291cmNlX3JlZ2lzdGVyDQo+ID4gPiAgCQlkb21haW4g PSBzaC0+cnhfZG9tYWluOw0KPiA+ID4gIAllbHNlDQo+ID4gPiAgCQlkb21haW4gPSBzaC0+dHhf ZG9tYWluOw0KPiA+ID4gLQ0KPiA+ID4gIAkvKiBMb29rdXAgYSBtYXRjaGluZyByZXNvdXJjZSBm cm9tIGNhY2hlLiAqLw0KPiA+ID4gIAlMSVNUX0ZPUkVBQ0goY2FjaGVfcmVzb3VyY2UsICZzaC0+ ZW5jYXBzX2RlY2FwcywgbmV4dCkgew0KPiA+ID4gIAkJaWYgKHJlc291cmNlLT5yZWZvcm1hdF90 eXBlID09IGNhY2hlX3Jlc291cmNlLQ0KPiA+ID4gPiByZWZvcm1hdF90eXBlICYmIEBAIC0zMzY3 LDIxICszMzYyLDI3IEBADQo+ID4gPg0KPiA+ID4gZmxvd19kdl92YWxpZGF0ZV9hY3Rpb25fcG9y dF9pZChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gPiA+ICAgKg0KPiA+ID4gICAqIEBwYXJh bSBkZXYNCj4gPiA+ICAgKiAgIFBvaW50ZXIgdG8gcnRlX2V0aF9kZXYgc3RydWN0dXJlLg0KPiA+ ID4gKyAqIEBwYXJhbSBmbGFncw0KPiA+ID4gKyAqICAgRmxhZ3MgYml0cyB0byBjaGVjayBpZiBy b290IGxldmVsLg0KPiA+ID4gICAqDQo+ID4gPiAgICogQHJldHVybg0KPiA+ID4gICAqICAgTWF4 IG51bWJlciBvZiBtb2RpZnkgaGVhZGVyIGFjdGlvbnMgZGV2aWNlIGNhbiBzdXBwb3J0Lg0KPiA+ ID4gICAqLw0KPiA+ID4gIHN0YXRpYyB1bnNpZ25lZCBpbnQNCj4gPiA+IC1mbG93X2R2X21vZGlm eV9oZHJfYWN0aW9uX21heChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gPiA+ICtmbG93X2R2 X21vZGlmeV9oZHJfYWN0aW9uX21heChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gdWludDY0 X3QNCj4gPiA+IGZsYWdzKQ0KPiA+ID4gIHsNCj4gPiA+ICAJLyoNCj4gPiA+ICAJICogVGhlcmUn cyBubyB3YXkgdG8gZGlyZWN0bHkgcXVlcnkgdGhlIG1heCBjYXAuIEFsdGhvdWdoIGl0DQo+IGhh cw0KPiA+ID4gdG8gYmUNCj4gPiA+ICAJICogYWNxdXJpZWQgYnkgaXRlcmF0aXZlIHRyaWFsLCBp dCBpcyBhIHNhZmUgYXNzdW1wdGlvbiB0aGF0IG1vcmUNCj4gPiA+ICAJICogYWN0aW9ucyBhcmUg c3VwcG9ydGVkIGJ5IEZXIGlmIGV4dGVuc2l2ZSBtZXRhZGF0YSByZWdpc3Rlcg0KPiBpcw0KPiA+ ID4gLQkgKiBzdXBwb3J0ZWQuDQo+ID4gPiArCSAqIHN1cHBvcnRlZC4gKE9ubHkgaW4gdGhlIHJv b3QgdGFibGUpDQo+ID4gPiAgCSAqLw0KPiA+ID4gLQlyZXR1cm4gbWx4NV9mbG93X2V4dF9tcmVn X3N1cHBvcnRlZChkZXYpID8NCj4gPiA+IE1MWDVfTU9ESUZZX05VTSA6DQo+ID4gPiAtDQo+ID4g PiBNTFg1X01PRElGWV9OVU1fTk9fTVJFRzsNCj4gPiA+ICsJaWYgKCEoZmxhZ3MgJiBNTFg1RFZf RFJfQUNUSU9OX0ZMQUdTX1JPT1RfTEVWRUwpKQ0KPiA+ID4gKwkJcmV0dXJuIE1MWDVfTUFYX01P RElGWV9OVU07DQo+ID4gPiArCWVsc2UNCj4gPiA+ICsJCXJldHVybiBtbHg1X2Zsb3dfZXh0X21y ZWdfc3VwcG9ydGVkKGRldikgPw0KPiA+ID4gKw0KPiA+ID4gCU1MWDVfUk9PVF9UQkxfTU9ESUZZ X05VTSA6DQo+ID4gPiArDQo+ID4gPiAJTUxYNV9ST09UX1RCTF9NT0RJRllfTlVNX05PX01SRUc7 DQo+ID4gPiAgfQ0KPiA+ID4NCj4gPiA+ICAvKioNCj4gPiA+IEBAIC0zNDcyLDggKzM0NzMsMTIg QEAgZmxvd19kdl9tb2RpZnlfaGRyX3Jlc291cmNlX3JlZ2lzdGVyDQo+ID4gPiAgCXN0cnVjdCBt bHg1X2lidl9zaGFyZWQgKnNoID0gcHJpdi0+c2g7DQo+ID4gPiAgCXN0cnVjdCBtbHg1X2Zsb3df ZHZfbW9kaWZ5X2hkcl9yZXNvdXJjZSAqY2FjaGVfcmVzb3VyY2U7DQo+ID4gPiAgCXN0cnVjdCBt bHg1ZHZfZHJfZG9tYWluICpuczsNCj4gPiA+ICsJdWludDMyX3QgYWN0aW9uc19sZW47DQo+ID4g Pg0KPiA+ID4gLQlpZiAocmVzb3VyY2UtPmFjdGlvbnNfbnVtID4NCj4gPiA+IGZsb3dfZHZfbW9k aWZ5X2hkcl9hY3Rpb25fbWF4KGRldikpDQo+ID4gPiArCXJlc291cmNlLT5mbGFncyA9DQo+ID4g PiArCQlkZXZfZmxvdy0+Z3JvdXAgPyAwIDoNCj4gPiA+IE1MWDVEVl9EUl9BQ1RJT05fRkxBR1Nf Uk9PVF9MRVZFTDsNCj4gPiA+ICsJaWYgKHJlc291cmNlLT5hY3Rpb25zX251bSA+DQo+ID4gPiBm bG93X2R2X21vZGlmeV9oZHJfYWN0aW9uX21heChkZXYsDQo+ID4gPiArCQkJCSAgICByZXNvdXJj ZS0+ZmxhZ3MpKQ0KPiA+ID4gIAkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRU9W RVJGTE9XLA0KPiA+ID4NCj4gPiA+IFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBOVUxMLA0K PiA+ID4gIAkJCQkJICAidG9vIG1hbnkgbW9kaWZ5IGhlYWRlcg0KPiA+ID4gaXRlbXMiKTsgQEAg LTM0ODMsMTcgKzM0ODgsMTUgQEANCj4gPiA+IGZsb3dfZHZfbW9kaWZ5X2hkcl9yZXNvdXJjZV9y ZWdpc3Rlcg0KPiA+ID4gIAkJbnMgPSBzaC0+dHhfZG9tYWluOw0KPiA+ID4gIAllbHNlDQo+ID4g PiAgCQlucyA9IHNoLT5yeF9kb21haW47DQo+ID4gPiAtCXJlc291cmNlLT5mbGFncyA9DQo+ID4g PiAtCQlkZXZfZmxvdy0+Z3JvdXAgPyAwIDoNCj4gPiA+IE1MWDVEVl9EUl9BQ1RJT05fRkxBR1Nf Uk9PVF9MRVZFTDsNCj4gPiA+ICAJLyogTG9va3VwIGEgbWF0Y2hpbmcgcmVzb3VyY2UgZnJvbSBj YWNoZS4gKi8NCj4gPiA+ICsJYWN0aW9uc19sZW4gPSByZXNvdXJjZS0+YWN0aW9uc19udW0gKiBz aXplb2YocmVzb3VyY2UtDQo+ID4gPiA+IGFjdGlvbnNbMF0pOw0KPiA+ID4NCj4gPiA+ICAJTElT VF9GT1JFQUNIKGNhY2hlX3Jlc291cmNlLCAmc2gtPm1vZGlmeV9jbWRzLCBuZXh0KSB7DQo+ID4g PiAgCQlpZiAocmVzb3VyY2UtPmZ0X3R5cGUgPT0gY2FjaGVfcmVzb3VyY2UtPmZ0X3R5cGUgJiYN Cj4gPiA+ICAJCSAgICByZXNvdXJjZS0+YWN0aW9uc19udW0gPT0gY2FjaGVfcmVzb3VyY2UtDQo+ ID4gPiA+IGFjdGlvbnNfbnVtICYmDQo+ID4gPg0KPiA+ID4gIAkJICAgIHJlc291cmNlLT5mbGFn cyA9PSBjYWNoZV9yZXNvdXJjZS0+ZmxhZ3MgJiYNCj4gPiA+ICAJCSAgICAhbWVtY21wKChjb25z dCB2b2lkICopcmVzb3VyY2UtPmFjdGlvbnMsDQo+ID4gPiAgCQkJICAgIChjb25zdCB2b2lkICop Y2FjaGVfcmVzb3VyY2UtPmFjdGlvbnMsDQo+ID4gPiAtCQkJICAgIChyZXNvdXJjZS0+YWN0aW9u c19udW0gKg0KPiA+ID4gLQkJCQkJICAgIHNpemVvZihyZXNvdXJjZS0NCj4gPiA+ID4gYWN0aW9u c1swXSkpKSkgew0KPiA+ID4NCj4gPiA+ICsJCQkgICAgYWN0aW9uc19sZW4pKSB7DQo+ID4gPiAg CQkJRFJWX0xPRyhERUJVRywgIm1vZGlmeS1oZWFkZXINCj4gPiA+IHJlc291cmNlICVwOiByZWZj bnQgJWQrKyIsDQo+ID4gPiAgCQkJCSh2b2lkICopY2FjaGVfcmVzb3VyY2UsDQo+ID4gPiAgCQkJ CXJ0ZV9hdG9taWMzMl9yZWFkKCZjYWNoZV9yZXNvdXJjZS0NCj4gPiA+ID4gcmVmY250KSk7DQo+ ID4gPg0KPiA+ID4gQEAgLTM1MDMsMTggKzM1MDYsMTggQEANCj4gZmxvd19kdl9tb2RpZnlfaGRy X3Jlc291cmNlX3JlZ2lzdGVyDQo+ID4gPiAgCQl9DQo+ID4gPiAgCX0NCj4gPiA+ICAJLyogUmVn aXN0ZXIgbmV3IG1vZGlmeS1oZWFkZXIgcmVzb3VyY2UuICovDQo+ID4gPiAtCWNhY2hlX3Jlc291 cmNlID0gcnRlX2NhbGxvYyhfX2Z1bmNfXywgMSwNCj4gPiA+IHNpemVvZigqY2FjaGVfcmVzb3Vy Y2UpLCAwKTsNCj4gPiA+ICsJY2FjaGVfcmVzb3VyY2UgPSBydGVfY2FsbG9jKF9fZnVuY19fLCAx LA0KPiA+ID4gKwkJCQkgICAgc2l6ZW9mKCpjYWNoZV9yZXNvdXJjZSkgKw0KPiA+ID4gYWN0aW9u c19sZW4sIDApOw0KPiA+ID4gIAlpZiAoIWNhY2hlX3Jlc291cmNlKQ0KPiA+ID4gIAkJcmV0dXJu IHJ0ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRU5PTUVNLA0KPiA+ID4NCj4gPiA+IFJURV9GTE9X X0VSUk9SX1RZUEVfVU5TUEVDSUZJRUQsIE5VTEwsDQo+ID4gPiAgCQkJCQkgICJjYW5ub3QgYWxs b2NhdGUgcmVzb3VyY2UNCj4gPiA+IG1lbW9yeSIpOw0KPiA+ID4gIAkqY2FjaGVfcmVzb3VyY2Ug PSAqcmVzb3VyY2U7DQo+ID4gPiArCXJ0ZV9tZW1jcHkoY2FjaGVfcmVzb3VyY2UtPmFjdGlvbnMs IHJlc291cmNlLT5hY3Rpb25zLA0KPiA+ID4gYWN0aW9uc19sZW4pOw0KPiA+ID4gIAljYWNoZV9y ZXNvdXJjZS0+dmVyYnNfYWN0aW9uID0NCj4gPiA+ICAJCW1seDVfZ2x1ZS0+ZHZfY3JlYXRlX2Zs b3dfYWN0aW9uX21vZGlmeV9oZWFkZXINCj4gPiA+IC0JCQkJCShzaC0+Y3R4LCBjYWNoZV9yZXNv dXJjZS0NCj4gPiA+ID4gZnRfdHlwZSwNCj4gPiA+DQo+ID4gPiAtCQkJCQkgbnMsIGNhY2hlX3Jl c291cmNlLT5mbGFncywNCj4gPiA+IC0JCQkJCSBjYWNoZV9yZXNvdXJjZS0+YWN0aW9uc19udW0N Cj4gPiA+ICoNCj4gPiA+IC0JCQkJCSBzaXplb2YoY2FjaGVfcmVzb3VyY2UtDQo+ID4gPiA+IGFj dGlvbnNbMF0pLA0KPiA+ID4NCj4gPiA+ICsJCQkJCShzaC0+Y3R4LCBjYWNoZV9yZXNvdXJjZS0N Cj4gPiA+ID4gZnRfdHlwZSwgbnMsDQo+ID4gPg0KPiA+ID4gKwkJCQkJIGNhY2hlX3Jlc291cmNl LT5mbGFncywNCj4gPiA+IGFjdGlvbnNfbGVuLA0KPiA+ID4gIAkJCQkJICh1aW50NjRfdCAqKWNh Y2hlX3Jlc291cmNlLQ0KPiA+ID4gPiBhY3Rpb25zKTsNCj4gPiA+DQo+ID4gPiAgCWlmICghY2Fj aGVfcmVzb3VyY2UtPnZlcmJzX2FjdGlvbikgew0KPiA+ID4gIAkJcnRlX2ZyZWUoY2FjaGVfcmVz b3VyY2UpOw0KPiA+ID4gQEAgLTY2NzAsMTAgKzY2NzMsMTMgQEAgX19mbG93X2R2X3RyYW5zbGF0 ZShzdHJ1Y3QNCj4gcnRlX2V0aF9kZXYgKmRldiwNCj4gPiA+ICAJfTsNCj4gPiA+ICAJaW50IGFj dGlvbnNfbiA9IDA7DQo+ID4gPiAgCWJvb2wgYWN0aW9uc19lbmQgPSBmYWxzZTsNCj4gPiA+IC0J c3RydWN0IG1seDVfZmxvd19kdl9tb2RpZnlfaGRyX3Jlc291cmNlIG1oZHJfcmVzID0gew0KPiA+ ID4gLQkJLmZ0X3R5cGUgPSBhdHRyLT5lZ3Jlc3MgPw0KPiA+ID4gTUxYNURWX0ZMT1dfVEFCTEVf VFlQRV9OSUNfVFggOg0KPiA+ID4gLQ0KPiA+ID4gTUxYNURWX0ZMT1dfVEFCTEVfVFlQRV9OSUNf UlgNCj4gPiA+IC0JfTsNCj4gPiA+ICsJdW5pb24gew0KPiA+ID4gKwkJc3RydWN0IG1seDVfZmxv d19kdl9tb2RpZnlfaGRyX3Jlc291cmNlIHJlczsNCj4gPiA+ICsJCXVpbnQ4X3QgbGVuW3NpemVv ZihzdHJ1Y3QNCj4gPiA+IG1seDVfZmxvd19kdl9tb2RpZnlfaGRyX3Jlc291cmNlKSArDQo+ID4g PiArCQkJICAgIHNpemVvZihzdHJ1Y3QgbWx4NV9tb2RpZmljYXRpb25fY21kKSAqDQo+ID4gPiAr CQkJICAgIChNTFg1X01BWF9NT0RJRllfTlVNICsgMSldOw0KPiA+ID4gKwl9IG1oZHJfZHVtbXk7 DQo+ID4gPiArCXN0cnVjdCBtbHg1X2Zsb3dfZHZfbW9kaWZ5X2hkcl9yZXNvdXJjZSAqbWhkcl9y ZXMgPQ0KPiA+ID4gJm1oZHJfZHVtbXkucmVzOw0KPiA+ID4gIAl1bmlvbiBmbG93X2R2X2F0dHIg Zmxvd19hdHRyID0geyAuYXR0ciA9IDAgfTsNCj4gPiA+ICAJdWludDMyX3QgdGFnX2JlOw0KPiA+ ID4gIAl1bmlvbiBtbHg1X2Zsb3dfdGJsX2tleSB0Ymxfa2V5Ow0KPiA+ID4gQEAgLTY2ODUsMTUg KzY2OTEsMTkgQEAgX19mbG93X2R2X3RyYW5zbGF0ZShzdHJ1Y3QNCj4gcnRlX2V0aF9kZXYgKmRl diwNCj4gPiA+ICAJdWludDMyX3QgdGFibGU7DQo+ID4gPiAgCWludCByZXQgPSAwOw0KPiA+ID4N Cj4gPiA+ICsJbWhkcl9yZXMtPmZ0X3R5cGUgPSBhdHRyLT5lZ3Jlc3MgPw0KPiA+ID4gTUxYNURW X0ZMT1dfVEFCTEVfVFlQRV9OSUNfVFggOg0KPiA+ID4gKw0KPiA+ID4gTUxYNURWX0ZMT1dfVEFC TEVfVFlQRV9OSUNfUlg7DQo+ID4gPiAgCXJldCA9IG1seDVfZmxvd19ncm91cF90b190YWJsZShh dHRyLCBkZXZfZmxvdy0+ZXh0ZXJuYWwsIGF0dHItDQo+ID4gPiA+IGdyb3VwLA0KPiA+ID4NCj4g PiA+ICAJCQkJICAgICAgICZ0YWJsZSwgZXJyb3IpOw0KPiA+ID4gIAlpZiAocmV0KQ0KPiA+ID4g IAkJcmV0dXJuIHJldDsNCj4gPiA+ICAJZGV2X2Zsb3ctPmdyb3VwID0gdGFibGU7DQo+ID4gPiAg CWlmIChhdHRyLT50cmFuc2ZlcikNCj4gPiA+IC0JCW1oZHJfcmVzLmZ0X3R5cGUgPSBNTFg1RFZf RkxPV19UQUJMRV9UWVBFX0ZEQjsNCj4gPiA+ICsJCW1oZHJfcmVzLT5mdF90eXBlID0gTUxYNURW X0ZMT1dfVEFCTEVfVFlQRV9GREI7DQo+ID4gPiAgCWlmIChwcmlvcml0eSA9PSBNTFg1X0ZMT1df UFJJT19SU1ZEKQ0KPiA+ID4gIAkJcHJpb3JpdHkgPSBkZXZfY29uZi0+Zmxvd19wcmlvIC0gMTsN Cj4gPiA+ICsJLyogbnVtYmVyIG9mIGFjdGlvbnMgbXVzdCBiZSBzZXQgdG8gMCBpbiBjYXNlIG9m IGRpcnR5IHN0YWNrLg0KPiA+ID4gKi8NCj4gPiA+ICsJbWhkcl9yZXMtPmFjdGlvbnNfbnVtID0g MDsNCj4gPiA+ICAJZm9yICg7ICFhY3Rpb25zX2VuZCA7IGFjdGlvbnMrKykgew0KPiA+ID4gIAkJ Y29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9xdWV1ZSAqcXVldWU7DQo+ID4gPiAgCQljb25z dCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3JzcyAqcnNzOyBAQCAtNjczMSw3DQo+ID4gPiArNjc0 MSw3IEBAIF9fZmxvd19kdl90cmFuc2xhdGUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4g PiAgCQkJCX07DQo+ID4gPg0KPiA+ID4gIAkJCQlpZiAoZmxvd19kdl9jb252ZXJ0X2FjdGlvbl9t YXJrKGRldiwNCj4gJm1hcmssDQo+ID4gPiAtDQo+ID4gPiAJJm1oZHJfcmVzLA0KPiA+ID4gKw0K PiA+ID4gCW1oZHJfcmVzLA0KPiA+ID4gIAkJCQkJCQkJZXJyb3IpKQ0KPiA+ID4gIAkJCQkJcmV0 dXJuIC1ydGVfZXJybm87DQo+ID4gPiAgCQkJCWFjdGlvbl9mbGFncyB8PQ0KPiA+ID4gTUxYNV9G TE9XX0FDVElPTl9NQVJLX0VYVDsgQEAgLTY3NTMsNyArNjc2Myw3IEBADQo+ID4gPiBfX2Zsb3df ZHZfdHJhbnNsYXRlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+ID4gIAkJCQkJCWFjdGlv bnMtPmNvbmY7DQo+ID4gPg0KPiA+ID4gIAkJCQlpZiAoZmxvd19kdl9jb252ZXJ0X2FjdGlvbl9t YXJrKGRldiwNCj4gbWFyaywNCj4gPiA+IC0NCj4gPiA+IAkmbWhkcl9yZXMsDQo+ID4gPiArDQo+ ID4gPiAJbWhkcl9yZXMsDQo+ID4gPiAgCQkJCQkJCQllcnJvcikpDQo+ID4gPiAgCQkJCQlyZXR1 cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ICAJCQkJYWN0aW9uX2ZsYWdzIHw9DQo+ID4gPiBNTFg1X0ZM T1dfQUNUSU9OX01BUktfRVhUOyBAQCAtNjc3NCw3ICs2Nzg0LDcgQEANCj4gPiA+IF9fZmxvd19k dl90cmFuc2xhdGUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gPiAgCQkJYnJlYWs7DQo+ ID4gPiAgCQljYXNlIFJURV9GTE9XX0FDVElPTl9UWVBFX1NFVF9NRVRBOg0KPiA+ID4gIAkJCWlm IChmbG93X2R2X2NvbnZlcnRfYWN0aW9uX3NldF9tZXRhDQo+ID4gPiAtCQkJCShkZXYsICZtaGRy X3JlcywgYXR0ciwNCj4gPiA+ICsJCQkJKGRldiwgbWhkcl9yZXMsIGF0dHIsDQo+ID4gPiAgCQkJ CSAoY29uc3Qgc3RydWN0DQo+ID4gPiBydGVfZmxvd19hY3Rpb25fc2V0X21ldGEgKikNCj4gPiA+ ICAJCQkJICBhY3Rpb25zLT5jb25mLCBlcnJvcikpDQo+ID4gPiAgCQkJCXJldHVybiAtcnRlX2Vy cm5vOw0KPiA+ID4gQEAgLTY3ODIsNyArNjc5Miw3IEBAIF9fZmxvd19kdl90cmFuc2xhdGUoc3Ry dWN0IHJ0ZV9ldGhfZGV2DQo+ICpkZXYsDQo+ID4gPiAgCQkJYnJlYWs7DQo+ID4gPiAgCQljYXNl IFJURV9GTE9XX0FDVElPTl9UWVBFX1NFVF9UQUc6DQo+ID4gPiAgCQkJaWYgKGZsb3dfZHZfY29u dmVydF9hY3Rpb25fc2V0X3RhZw0KPiA+ID4gLQkJCQkoZGV2LCAmbWhkcl9yZXMsDQo+ID4gPiAr CQkJCShkZXYsIG1oZHJfcmVzLA0KPiA+ID4gIAkJCQkgKGNvbnN0IHN0cnVjdCBydGVfZmxvd19h Y3Rpb25fc2V0X3RhZw0KPiA+ID4gKikNCj4gPiA+ICAJCQkJICBhY3Rpb25zLT5jb25mLCBlcnJv cikpDQo+ID4gPiAgCQkJCXJldHVybiAtcnRlX2Vycm5vOw0KPiA+ID4gQEAgLTY4ODIsNyArNjg5 Miw3IEBAIGNudF9lcnI6DQo+ID4gPiAgCQkJbWx4NV91cGRhdGVfdmxhbl92aWRfcGNwKGFjdGlv bnMsICZ2bGFuKTsNCj4gPiA+ICAJCQkvKiBJZiBubyBWTEFOIHB1c2ggLSB0aGlzIGlzIGEgbW9k aWZ5IGhlYWRlcg0KPiBhY3Rpb24gKi8NCj4gPiA+ICAJCQlpZiAoZmxvd19kdl9jb252ZXJ0X2Fj dGlvbl9tb2RpZnlfdmxhbl92aWQNCj4gPiA+IC0JCQkJCQkoJm1oZHJfcmVzLCBhY3Rpb25zLA0K PiA+ID4gZXJyb3IpKQ0KPiA+ID4gKwkJCQkJCShtaGRyX3JlcywgYWN0aW9ucywNCj4gPiA+IGVy cm9yKSkNCj4gPiA+ICAJCQkJcmV0dXJuIC1ydGVfZXJybm87DQo+ID4gPiAgCQkJYWN0aW9uX2Zs YWdzIHw9DQo+ID4gPiBNTFg1X0ZMT1dfQUNUSU9OX09GX1NFVF9WTEFOX1ZJRDsNCj4gPiA+ICAJ CQlicmVhazsNCj4gPiA+IEBAIC02OTgxLDcgKzY5OTEsNyBAQCBjbnRfZXJyOg0KPiA+ID4gIAkJ Y2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfTUFDX1NSQzoNCj4gPiA+ICAJCWNhc2UgUlRF X0ZMT1dfQUNUSU9OX1RZUEVfU0VUX01BQ19EU1Q6DQo+ID4gPiAgCQkJaWYgKGZsb3dfZHZfY29u dmVydF9hY3Rpb25fbW9kaWZ5X21hYw0KPiA+ID4gLQkJCQkJKCZtaGRyX3JlcywgYWN0aW9ucywg ZXJyb3IpKQ0KPiA+ID4gKwkJCQkJKG1oZHJfcmVzLCBhY3Rpb25zLCBlcnJvcikpDQo+ID4gPiAg CQkJCXJldHVybiAtcnRlX2Vycm5vOw0KPiA+ID4gIAkJCWFjdGlvbl9mbGFncyB8PSBhY3Rpb25z LT50eXBlID09DQo+ID4gPg0KPiA+ID4gCVJURV9GTE9XX0FDVElPTl9UWVBFX1NFVF9NQUNfU1JD ID8NCj4gPiA+IEBAIC02OTkxLDcgKzcwMDEsNyBAQCBjbnRfZXJyOg0KPiA+ID4gIAkJY2FzZSBS VEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfSVBWNF9TUkM6DQo+ID4gPiAgCQljYXNlIFJURV9GTE9X X0FDVElPTl9UWVBFX1NFVF9JUFY0X0RTVDoNCj4gPiA+ICAJCQlpZiAoZmxvd19kdl9jb252ZXJ0 X2FjdGlvbl9tb2RpZnlfaXB2NA0KPiA+ID4gLQkJCQkJKCZtaGRyX3JlcywgYWN0aW9ucywgZXJy b3IpKQ0KPiA+ID4gKwkJCQkJKG1oZHJfcmVzLCBhY3Rpb25zLCBlcnJvcikpDQo+ID4gPiAgCQkJ CXJldHVybiAtcnRlX2Vycm5vOw0KPiA+ID4gIAkJCWFjdGlvbl9mbGFncyB8PSBhY3Rpb25zLT50 eXBlID09DQo+ID4gPg0KPiA+ID4gCVJURV9GTE9XX0FDVElPTl9UWVBFX1NFVF9JUFY0X1NSQyA/ DQo+ID4gPiBAQCAtNzAwMSw3ICs3MDExLDcgQEAgY250X2VycjoNCj4gPiA+ICAJCWNhc2UgUlRF X0ZMT1dfQUNUSU9OX1RZUEVfU0VUX0lQVjZfU1JDOg0KPiA+ID4gIAkJY2FzZSBSVEVfRkxPV19B Q1RJT05fVFlQRV9TRVRfSVBWNl9EU1Q6DQo+ID4gPiAgCQkJaWYgKGZsb3dfZHZfY29udmVydF9h Y3Rpb25fbW9kaWZ5X2lwdjYNCj4gPiA+IC0JCQkJCSgmbWhkcl9yZXMsIGFjdGlvbnMsIGVycm9y KSkNCj4gPiA+ICsJCQkJCShtaGRyX3JlcywgYWN0aW9ucywgZXJyb3IpKQ0KPiA+ID4gIAkJCQly ZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ICAJCQlhY3Rpb25fZmxhZ3MgfD0gYWN0aW9ucy0+dHlw ZSA9PQ0KPiA+ID4NCj4gPiA+IAlSVEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfSVBWNl9TUkMgPw0K PiA+ID4gQEAgLTcwMTEsNyArNzAyMSw3IEBAIGNudF9lcnI6DQo+ID4gPiAgCQljYXNlIFJURV9G TE9XX0FDVElPTl9UWVBFX1NFVF9UUF9TUkM6DQo+ID4gPiAgCQljYXNlIFJURV9GTE9XX0FDVElP Tl9UWVBFX1NFVF9UUF9EU1Q6DQo+ID4gPiAgCQkJaWYgKGZsb3dfZHZfY29udmVydF9hY3Rpb25f bW9kaWZ5X3RwDQo+ID4gPiAtCQkJCQkoJm1oZHJfcmVzLCBhY3Rpb25zLCBpdGVtcywNCj4gPiA+ ICsJCQkJCShtaGRyX3JlcywgYWN0aW9ucywgaXRlbXMsDQo+ID4gPiAgCQkJCQkgJmZsb3dfYXR0 ciwgZXJyb3IpKQ0KPiA+ID4gIAkJCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ICAJCQlhY3Rp b25fZmxhZ3MgfD0gYWN0aW9ucy0+dHlwZSA9PSBAQCAtNzAyMSwxMw0KPiArNzAzMSwxMyBAQA0K PiA+ID4gY250X2VycjoNCj4gPiA+ICAJCQlicmVhazsNCj4gPiA+ICAJCWNhc2UgUlRFX0ZMT1df QUNUSU9OX1RZUEVfREVDX1RUTDoNCj4gPiA+ICAJCQlpZiAoZmxvd19kdl9jb252ZXJ0X2FjdGlv bl9tb2RpZnlfZGVjX3R0bA0KPiA+ID4gLQkJCQkJKCZtaGRyX3JlcywgaXRlbXMsICZmbG93X2F0 dHIsDQo+ID4gPiBlcnJvcikpDQo+ID4gPiArCQkJCQkobWhkcl9yZXMsIGl0ZW1zLCAmZmxvd19h dHRyLA0KPiA+ID4gZXJyb3IpKQ0KPiA+ID4gIAkJCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ ICAJCQlhY3Rpb25fZmxhZ3MgfD0gTUxYNV9GTE9XX0FDVElPTl9ERUNfVFRMOw0KPiA+ID4gIAkJ CWJyZWFrOw0KPiA+ID4gIAkJY2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfVFRMOg0KPiA+ ID4gIAkJCWlmIChmbG93X2R2X2NvbnZlcnRfYWN0aW9uX21vZGlmeV90dGwNCj4gPiA+IC0JCQkJ CSgmbWhkcl9yZXMsIGFjdGlvbnMsIGl0ZW1zLA0KPiA+ID4gKwkJCQkJKG1oZHJfcmVzLCBhY3Rp b25zLCBpdGVtcywNCj4gPiA+ICAJCQkJCSAmZmxvd19hdHRyLCBlcnJvcikpDQo+ID4gPiAgCQkJ CXJldHVybiAtcnRlX2Vycm5vOw0KPiA+ID4gIAkJCWFjdGlvbl9mbGFncyB8PSBNTFg1X0ZMT1df QUNUSU9OX1NFVF9UVEw7DQo+IEBAIC03MDM1LDcgKzcwNDUsNyBAQA0KPiA+ID4gY250X2VycjoN Cj4gPiA+ICAJCWNhc2UgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfSU5DX1RDUF9TRVE6DQo+ID4gPiAg CQljYXNlIFJURV9GTE9XX0FDVElPTl9UWVBFX0RFQ19UQ1BfU0VROg0KPiA+ID4gIAkJCWlmIChm bG93X2R2X2NvbnZlcnRfYWN0aW9uX21vZGlmeV90Y3Bfc2VxDQo+ID4gPiAtCQkJCQkoJm1oZHJf cmVzLCBhY3Rpb25zLCBlcnJvcikpDQo+ID4gPiArCQkJCQkobWhkcl9yZXMsIGFjdGlvbnMsIGVy cm9yKSkNCj4gPiA+ICAJCQkJcmV0dXJuIC1ydGVfZXJybm87DQo+ID4gPiAgCQkJYWN0aW9uX2Zs YWdzIHw9IGFjdGlvbnMtPnR5cGUgPT0NCj4gPiA+DQo+ID4gPiAJUlRFX0ZMT1dfQUNUSU9OX1RZ UEVfSU5DX1RDUF9TRVEgPw0KPiA+ID4gQEAgLTcwNDYsNyArNzA1Niw3IEBAIGNudF9lcnI6DQo+ ID4gPiAgCQljYXNlIFJURV9GTE9XX0FDVElPTl9UWVBFX0lOQ19UQ1BfQUNLOg0KPiA+ID4gIAkJ Y2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9ERUNfVENQX0FDSzoNCj4gPiA+ICAJCQlpZiAoZmxv d19kdl9jb252ZXJ0X2FjdGlvbl9tb2RpZnlfdGNwX2Fjaw0KPiA+ID4gLQkJCQkJKCZtaGRyX3Jl cywgYWN0aW9ucywgZXJyb3IpKQ0KPiA+ID4gKwkJCQkJKG1oZHJfcmVzLCBhY3Rpb25zLCBlcnJv cikpDQo+ID4gPiAgCQkJCXJldHVybiAtcnRlX2Vycm5vOw0KPiA+ID4gIAkJCWFjdGlvbl9mbGFn cyB8PSBhY3Rpb25zLT50eXBlID09DQo+ID4gPg0KPiA+ID4gCVJURV9GTE9XX0FDVElPTl9UWVBF X0lOQ19UQ1BfQUNLID8NCj4gPiA+IEBAIC03MDU1LDEzICs3MDY1LDEzIEBAIGNudF9lcnI6DQo+ ID4gPiAgCQkJYnJlYWs7DQo+ID4gPiAgCQljYXNlIE1MWDVfUlRFX0ZMT1dfQUNUSU9OX1RZUEVf VEFHOg0KPiA+ID4gIAkJCWlmIChmbG93X2R2X2NvbnZlcnRfYWN0aW9uX3NldF9yZWcNCj4gPiA+ IC0JCQkJCSgmbWhkcl9yZXMsIGFjdGlvbnMsIGVycm9yKSkNCj4gPiA+ICsJCQkJCShtaGRyX3Jl cywgYWN0aW9ucywgZXJyb3IpKQ0KPiA+ID4gIAkJCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ ICAJCQlhY3Rpb25fZmxhZ3MgfD0gTUxYNV9GTE9XX0FDVElPTl9TRVRfVEFHOw0KPiA+ID4gIAkJ CWJyZWFrOw0KPiA+ID4gIAkJY2FzZSBNTFg1X1JURV9GTE9XX0FDVElPTl9UWVBFX0NPUFlfTVJF RzoNCj4gPiA+ICAJCQlpZiAoZmxvd19kdl9jb252ZXJ0X2FjdGlvbl9jb3B5X21yZWcNCj4gPiA+ IC0JCQkJCShkZXYsICZtaGRyX3JlcywgYWN0aW9ucywNCj4gPiA+IGVycm9yKSkNCj4gPiA+ICsJ CQkJCShkZXYsIG1oZHJfcmVzLCBhY3Rpb25zLA0KPiA+ID4gZXJyb3IpKQ0KPiA+ID4gIAkJCQly ZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ICAJCQlhY3Rpb25fZmxhZ3MgfD0gTUxYNV9GTE9XX0FD VElPTl9TRVRfVEFHOw0KPiA+ID4gIAkJCWJyZWFrOw0KPiA+ID4gQEAgLTcwODYsMTAgKzcwOTYs MTAgQEAgY250X2VycjoNCj4gPiA+ICAJCQlicmVhazsNCj4gPiA+ICAJCWNhc2UgUlRFX0ZMT1df QUNUSU9OX1RZUEVfRU5EOg0KPiA+ID4gIAkJCWFjdGlvbnNfZW5kID0gdHJ1ZTsNCj4gPiA+IC0J CQlpZiAobWhkcl9yZXMuYWN0aW9uc19udW0pIHsNCj4gPiA+ICsJCQlpZiAobWhkcl9yZXMtPmFj dGlvbnNfbnVtKSB7DQo+ID4gPiAgCQkJCS8qIGNyZWF0ZSBtb2RpZnkgYWN0aW9uIGlmIG5lZWRl ZC4gKi8NCj4gPiA+ICAJCQkJaWYNCj4gPiA+IChmbG93X2R2X21vZGlmeV9oZHJfcmVzb3VyY2Vf cmVnaXN0ZXINCj4gPiA+IC0JCQkJCShkZXYsICZtaGRyX3JlcywgZGV2X2Zsb3csDQo+ID4gPiBl cnJvcikpDQo+ID4gPiArCQkJCQkoZGV2LCBtaGRyX3JlcywgZGV2X2Zsb3csDQo+ID4gPiBlcnJv cikpDQo+ID4gPiAgCQkJCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ICAJCQkJZGV2X2Zsb3ct DQo+ID4gPiA+IGR2LmFjdGlvbnNbbW9kaWZ5X2FjdGlvbl9wb3NpdGlvbl0gPQ0KPiA+ID4NCj4g PiA+ICAJCQkJCWRldl9mbG93LT5kdi5tb2RpZnlfaGRyLQ0KPiA+ID4gPiB2ZXJic19hY3Rpb247 DQo+ID4gPg0KPiA+ID4gQEAgLTcwOTgsNyArNzEwOCw3IEBAIGNudF9lcnI6DQo+ID4gPiAgCQlk ZWZhdWx0Og0KPiA+ID4gIAkJCWJyZWFrOw0KPiA+ID4gIAkJfQ0KPiA+ID4gLQkJaWYgKG1oZHJf cmVzLmFjdGlvbnNfbnVtICYmDQo+ID4gPiArCQlpZiAobWhkcl9yZXMtPmFjdGlvbnNfbnVtICYm DQo+ID4gPiAgCQkgICAgbW9kaWZ5X2FjdGlvbl9wb3NpdGlvbiA9PSBVSU5UMzJfTUFYKQ0KPiA+ ID4gIAkJCW1vZGlmeV9hY3Rpb25fcG9zaXRpb24gPSBhY3Rpb25zX24rKzsNCj4gPiA+ICAJfQ0K PiA+ID4gLS0NCj4gPiA+IDIuMjAuMQ0KPiA+ID4NCj4gPiA+IC0tLQ0KPiA+ID4gICBEaWZmIG9m IHRoZSBhcHBsaWVkIHBhdGNoIHZzIHVwc3RyZWFtIGNvbW1pdCAocGxlYXNlIGRvdWJsZS0NCj4g Y2hlY2sNCj4gPiA+IGlmDQo+ID4gPiBub24tZW1wdHk6DQo+ID4gPiAtLS0NCj4gPiA+IC0tLSAt CTIwMjAtMDItMTEgMTE6MTc6NDIuOTk0ODA0NzkwICswMDAwDQo+ID4gPiArKysgMDEyMi1uZXQt bWx4NS1maXgtbW9kaWZ5LWFjdGlvbnMtc3VwcG9ydC1saW1pdGF0aW9uLnBhdGNoDQo+ID4gPiAy MDIwLQ0KPiA+ID4gMDItMTEgMTE6MTc6MzguNjEyMDA1MzExICswMDAwDQo+ID4gPiBAQCAtMSw4 ICsxLDEwIEBADQo+ID4gPiAtRnJvbSAwMjRlOTU3NTljMTZjNjdlZWU5MmVmZmZlZWUzNDkxNWRj OTRhOWMwIE1vbiBTZXAgMTcNCj4gPiA+IDAwOjAwOjAwIDIwMDENCj4gPiA+ICtGcm9tIGUwZGU4 MTZmOTQ1ZTU5OWE5MzMwODFjNTNiYjA2MGQ1ZGQ0Y2JmMTMgTW9uIFNlcCAxNw0KPiA+ID4gMDA6 MDA6MDAgMjAwMQ0KPiA+ID4gIEZyb206IEJpbmcgWmhhbyA8DQo+ID4gPiBiaW5nekBtZWxsYW5v eC5jb20NCj4gPiA+ID4NCj4gPiA+ICBEYXRlOiBNb24sIDIwIEphbiAyMDIwIDExOjQzOjA3ICsw MjAwDQo+ID4gPiAgU3ViamVjdDogW1BBVENIXSBuZXQvbWx4NTogZml4IG1vZGlmeSBhY3Rpb25z IHN1cHBvcnQgbGltaXRhdGlvbg0KPiA+ID4NCj4gPiA+ICtbIHVwc3RyZWFtIGNvbW1pdCAwMjRl OTU3NTljMTZjNjdlZWU5MmVmZmZlZWUzNDkxNWRjOTRhOWMwIF0NCj4gPiA+ICsNCj4gPiA+ICBJ biB0aGUgcm9vdCB0YWJsZSwgdGhlcmUgaXMgc29tZSBsaW1pdGF0aW9uIG9mIHRvdGFsIG51bWJl ciBvZg0KPiA+ID4gaGVhZGVyIG1vZGlmeSBhY3Rpb25zLCAxNiBvciA4IGZvciBlYWNoLiBCdXQg aW4gb3RoZXIgdGFibGVzLCB0aGVyZQ0KPiA+ID4gaXMgbm8gIHN1Y2ggc3RyaWN0IGxpbWl0YXRp b24uIEluIGFuIElQdjYgY2FzZSwgdGhlIElQIGZpZWxkcw0KPiA+ID4gbW9kaWZ5aW5nIEBADQo+ ID4gPiAtMTYsMjENCj4gPiA+ICsxOCwyMCBAQCAgbWF4aW1hbCBzdXBwb3J0ZWQgdmFsdWUuDQo+ ID4gPg0KPiA+ID4gIEZpeGVzOiAwZTlkMDAwMjc2ODYgKCJuZXQvbWx4NTogY2hlY2sgbWF4aW11 bSBtb2RpZnkgYWN0aW9ucw0KPiA+ID4gbnVtYmVyIikNCj4gPiA+IC1DYzoNCj4gPiA+IHN0YWJs ZUBkcGRrLm9yZw0KPiA+ID4NCj4gPiA+DQo+ID4gPiAgU2lnbmVkLW9mZi1ieTogQmluZyBaaGFv IDwNCj4gPiA+IGJpbmd6QG1lbGxhbm94LmNvbQ0KPiA+ID4gPg0KPiA+ID4gIEFja2VkLWJ5OiBP cmkgS2FtIDwNCj4gPiA+IG9yaWthQG1lbGxhbm94LmNvbQ0KPiA+ID4gPg0KPiA+ID4gIEFja2Vk LWJ5OiBWaWFjaGVzbGF2IE92c2lpZW5rbyA8DQo+ID4gPiB2aWFjaGVzbGF2b0BtZWxsYW5veC5j b20NCj4gPiA+ID4NCj4gPiA+ICAtLS0NCj4gPiA+ICAgZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zs b3cuaCAgICB8ICAxNSArKystLQ0KPiA+ID4gLSBkcml2ZXJzL25ldC9tbHg1L21seDVfZmxvd19k di5jIHwgMTA4ICsrKysrKysrKysrKysrKysrLS0tLS0tLQ0KPiAtDQo+ID4gPiAtLS0tDQo+ID4g PiAtLS0NCj4gPiA+IC0gMiBmaWxlcyBjaGFuZ2VkLCA2OCBpbnNlcnRpb25zKCspLCA1NSBkZWxl dGlvbnMoLSkNCj4gPiA+ICsgZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3dfZHYuYyB8IDEwNCAr KysrKysrKysrKysrKysrKy0tLS0tLQ0KPiAtLQ0KPiA+ID4gLS0tDQo+ID4gPiAtLS0tDQo+ID4g PiArIDIgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgNTMgZGVsZXRpb25zKC0pDQo+ ID4gPg0KPiA+ID4gIGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5oDQo+ ID4gPiBiL2RyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmggLWluZGV4IGExYzdiNjc0ODguLjk4 MzI1NDIzMjgNCj4gPiA+IDEwMDY0NA0KPiA+ID4gK2luZGV4IGRiMTI3MTVlY2MuLjEzYmVkMDhk NzUgMTAwNjQ0DQo+ID4gPiAgLS0tIGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuaA0KPiA+ ID4gICsrKyBiL2RyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmgNCj4gPiA+IC1AQCAtMzkyLDEx ICszOTIsMTQgQEAgc3RydWN0IG1seDVfZmxvd19kdl90YWdfcmVzb3VyY2Ugew0KPiA+ID4gK0BA IC0zOTEsMTEgKzM5MSwxNCBAQCBzdHJ1Y3QgbWx4NV9mbG93X2R2X3RhZ19yZXNvdXJjZSB7DQo+ ID4gPg0KPiA+ID4gICAvKg0KPiA+ID4gICAgKiBOdW1iZXIgb2YgbW9kaWZpY2F0aW9uIGNvbW1h bmRzLg0KPiA+ID4gQEAgLTQ5LDcgKzUwLDcgQEANCj4gPiA+DQo+ID4gPiAgIC8qIE1vZGlmeSBy ZXNvdXJjZSBzdHJ1Y3R1cmUgKi8NCj4gPiA+ICAgc3RydWN0IG1seDVfZmxvd19kdl9tb2RpZnlf aGRyX3Jlc291cmNlIHsgLUBAIC00MDcsOSArNDEwLDkNCj4gQEANCj4gPiA+IHN0cnVjdCBtbHg1 X2Zsb3dfZHZfbW9kaWZ5X2hkcl9yZXNvdXJjZSB7DQo+ID4gPiArQEAgLTQwNiw5ICs0MDksOSBA QCBzdHJ1Y3QNCj4gbWx4NV9mbG93X2R2X21vZGlmeV9oZHJfcmVzb3VyY2Ugew0KPiA+ID4gICAJ LyoqPCBWZXJicyBtb2RpZnkgaGVhZGVyIGFjdGlvbiBvYmplY3QuICovDQo+ID4gPiAgIAl1aW50 OF90IGZ0X3R5cGU7IC8qKjwgRmxvdyB0YWJsZSB0eXBlLCBSeCBvciBUeC4gKi8NCj4gPiA+ICAg CXVpbnQzMl90IGFjdGlvbnNfbnVtOyAvKio8IE51bWJlciBvZiBtb2RpZmljYXRpb24gYWN0aW9u cy4NCj4gPiA+ICovIEBAIC02MiwxMCArNjMsMTAgQEANCj4gPiA+DQo+ID4gPiAgIC8qIEp1bXAg YWN0aW9uIHJlc291cmNlIHN0cnVjdHVyZS4gKi8gIGRpZmYgLS1naXQNCj4gPiA+IGEvZHJpdmVy cy9uZXQvbWx4NS9tbHg1X2Zsb3dfZHYuYw0KPiBiL2RyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93 X2R2LmMNCj4gPiA+IC1pbmRleCAyNmRiYWFmMzI5Li41YTFiNDI2OThjDQo+ID4gPiAxMDA2NDQN Cj4gPiA+ICtpbmRleCA4Zjc3OTA5NDE5Li43NGQxYTY4ZTRhIDEwMDY0NA0KPiA+ID4gIC0tLSBh L2RyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93X2R2LmMgICsrKw0KPiA+ID4gYi9kcml2ZXJzL25l dC9tbHg1L21seDVfZmxvd19kdi5jIC1AQCAtMzY2LDcgKzM2Niw3IEBADQo+ID4gPiBmbG93X2R2 X2NvbnZlcnRfbW9kaWZ5X2FjdGlvbihzdHJ1Y3QNCj4gPiA+IHJ0ZV9mbG93X2l0ZW0gKml0ZW0s DQo+ID4gPiArQEAgLTM2Myw3ICszNjMsNyBAQCBmbG93X2R2X2NvbnZlcnRfbW9kaWZ5X2FjdGlv bihzdHJ1Y3QNCj4gPiA+IHJ0ZV9mbG93X2l0ZW0NCj4gPiA+ICsqaXRlbSwNCj4gPiA+ICAgCQl1 aW50MzJfdCBtYXNrOw0KPiA+ID4gICAJCXVpbnQzMl90IGRhdGE7DQo+ID4gPg0KPiA+ID4gQEAg LTc0LDcgKzc1LDcgQEANCj4gPiA+ICAgCQkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldChlcnJv ciwgRUlOVkFMLA0KPiA+ID4gICAJCQkJIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLA0KPiA+ ID4gTlVMTCwNCj4gPiA+ICAgCQkJCSAidG9vIG1hbnkgaXRlbXMgdG8gbW9kaWZ5Iik7DQo+ID4g PiAtQEAgLTQwNywxMSArNDA3LDExIEBAIGZsb3dfZHZfY29udmVydF9tb2RpZnlfYWN0aW9uKHN0 cnVjdA0KPiA+ID4gcnRlX2Zsb3dfaXRlbSAqaXRlbSwNCj4gPiA+ICtAQCAtNDA0LDExICs0MDQs MTEgQEAgZmxvd19kdl9jb252ZXJ0X21vZGlmeV9hY3Rpb24oc3RydWN0DQo+ID4gPiArcnRlX2Zs b3dfaXRlbSAqaXRlbSwNCj4gPiA+ICAgCQkrK2k7DQo+ID4gPiAgIAkJKytmaWVsZDsNCj4gPiA+ ICAgCX0gd2hpbGUgKGZpZWxkLT5zaXplKTsNCj4gPiA+IEBAIC04OCw3ICs4OSw3IEBADQo+ID4g PiAgIAlyZXR1cm4gMDsNCj4gPiA+ICAgfQ0KPiA+ID4NCj4gPiA+IC1AQCAtNTcyLDcgKzU3Miw3 IEBAIGZsb3dfZHZfY29udmVydF9hY3Rpb25fbW9kaWZ5X3ZsYW5fdmlkDQo+ID4gPiArQEAgLTU2 OSw3ICs1NjksNyBAQCBmbG93X2R2X2NvbnZlcnRfYWN0aW9uX21vZGlmeV92bGFuX3ZpZA0KPiA+ ID4gICAJc3RydWN0IG1seDVfbW9kaWZpY2F0aW9uX2NtZCAqYWN0aW9ucyA9ICZyZXNvdXJjZS0+ YWN0aW9uc1tpXTsNCj4gPiA+ICAgCXN0cnVjdCBmaWVsZF9tb2RpZnlfaW5mbyAqZmllbGQgPSBt b2RpZnlfdmxhbl9vdXRfZmlyc3RfdmlkOw0KPiA+ID4NCj4gPiA+IEBAIC05Nyw3ICs5OCw3IEBA DQo+ID4gPiAgIAkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRUlOVkFMLA0KPiA+ ID4gICAJCQkgUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sIE5VTEwsDQo+ID4gPiAgIAkJCSAi dG9vIG1hbnkgaXRlbXMgdG8gbW9kaWZ5Iik7DQo+ID4gPiAtQEAgLTkwNSw3ICs5MDUsNyBAQCBm bG93X2R2X2NvbnZlcnRfYWN0aW9uX3NldF9yZWcNCj4gPiA+ICtAQCAtOTAyLDcgKzkwMiw3IEBA IGZsb3dfZHZfY29udmVydF9hY3Rpb25fc2V0X3JlZw0KPiA+ID4gICAJc3RydWN0IG1seDVfbW9k aWZpY2F0aW9uX2NtZCAqYWN0aW9ucyA9IHJlc291cmNlLT5hY3Rpb25zOw0KPiA+ID4gICAJdWlu dDMyX3QgaSA9IHJlc291cmNlLT5hY3Rpb25zX251bTsNCj4gPiA+DQo+ID4gPiBAQCAtMTA2LDcg KzEwNyw3IEBADQo+ID4gPiAgIAkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRUlO VkFMLA0KPiA+ID4NCj4gPiA+IFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBOVUxMLA0KPiA+ ID4gICAJCQkJCSAgInRvbyBtYW55IGl0ZW1zIHRvIG1vZGlmeSIpOyAtDQo+IEBAIC05MTcsMTAg KzkxNyw2IEBADQo+ID4gPiBmbG93X2R2X2NvbnZlcnRfYWN0aW9uX3NldF9yZWcNCj4gPiA+ICtA QCAtOTE0LDEwICs5MTQsNiBAQCBmbG93X2R2X2NvbnZlcnRfYWN0aW9uX3NldF9yZWcNCj4gPiA+ ICAgCWFjdGlvbnNbaV0uZGF0YTEgPSBydGVfY3B1X3RvX2JlXzMyKGNvbmYtPmRhdGEpOw0KPiA+ ID4gICAJKytpOw0KPiA+ID4gICAJcmVzb3VyY2UtPmFjdGlvbnNfbnVtID0gaTsNCj4gPiA+IEBA IC0xMTcsNyArMTE4LDcgQEANCj4gPiA+ICAgCXJldHVybiAwOw0KPiA+ID4gICB9DQo+ID4gPg0K PiA+ID4gLUBAIC0yMzg1LDcgKzIzODEsNiBAQA0KPiBmbG93X2R2X2VuY2FwX2RlY2FwX3Jlc291 cmNlX3JlZ2lzdGVyDQo+ID4gPiArQEAgLTIyNTYsNyArMjI1Miw2IEBADQo+IGZsb3dfZHZfZW5j YXBfZGVjYXBfcmVzb3VyY2VfcmVnaXN0ZXINCj4gPiA+ICAgCQlkb21haW4gPSBzaC0+cnhfZG9t YWluOw0KPiA+ID4gICAJZWxzZQ0KPiA+ID4gICAJCWRvbWFpbiA9IHNoLT50eF9kb21haW47DQo+ ID4gPiBAQCAtMTI1LDcgKzEyNiw3IEBADQo+ID4gPiAgIAkvKiBMb29rdXAgYSBtYXRjaGluZyBy ZXNvdXJjZSBmcm9tIGNhY2hlLiAqLw0KPiA+ID4gICAJTElTVF9GT1JFQUNIKGNhY2hlX3Jlc291 cmNlLCAmc2gtPmVuY2Fwc19kZWNhcHMsIG5leHQpIHsNCj4gPiA+ICAgCQlpZiAocmVzb3VyY2Ut PnJlZm9ybWF0X3R5cGUgPT0gY2FjaGVfcmVzb3VyY2UtDQo+ID4gPiA+IHJlZm9ybWF0X3R5cGUg JiYgLUBAIC0zNDk2LDIxICszNDkxLDI3IEBADQo+ID4gPg0KPiA+ID4gZmxvd19kdl92YWxpZGF0 ZV9hY3Rpb25fcG9ydF9pZChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gPiA+ICtAQCAtMzM2 NywyMSArMzM2MiwyNyBAQA0KPiBmbG93X2R2X3ZhbGlkYXRlX2FjdGlvbl9wb3J0X2lkKHN0cnVj dA0KPiA+ID4gK3J0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gPiAgICAqDQo+ID4gPiAgICAqIEBwYXJh bSBkZXYNCj4gPiA+ICAgICogICBQb2ludGVyIHRvIHJ0ZV9ldGhfZGV2IHN0cnVjdHVyZS4NCj4g PiA+IEBAIC0xNTcsNyArMTU4LDcgQEANCj4gPiA+ICAgfQ0KPiA+ID4NCj4gPiA+ICAgLyoqDQo+ ID4gPiAtQEAgLTM2NjksOCArMzY3MCwxMiBAQA0KPiBmbG93X2R2X21vZGlmeV9oZHJfcmVzb3Vy Y2VfcmVnaXN0ZXINCj4gPiA+ICtAQCAtMzQ3Miw4ICszNDczLDEyIEBADQo+IGZsb3dfZHZfbW9k aWZ5X2hkcl9yZXNvdXJjZV9yZWdpc3Rlcg0KPiA+ID4gICAJc3RydWN0IG1seDVfaWJ2X3NoYXJl ZCAqc2ggPSBwcml2LT5zaDsNCj4gPiA+ICAgCXN0cnVjdCBtbHg1X2Zsb3dfZHZfbW9kaWZ5X2hk cl9yZXNvdXJjZSAqY2FjaGVfcmVzb3VyY2U7DQo+ID4gPiAgIAlzdHJ1Y3QgbWx4NWR2X2RyX2Rv bWFpbiAqbnM7DQo+ID4gPiBAQCAtMTcxLDcgKzE3Miw3IEBADQo+ID4gPiAgIAkJcmV0dXJuIHJ0 ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRU9WRVJGTE9XLA0KPiA+ID4NCj4gPiA+IFJURV9GTE9X X0VSUk9SX1RZUEVfQUNUSU9OLCBOVUxMLA0KPiA+ID4gICAJCQkJCSAgInRvbyBtYW55IG1vZGlm eSBoZWFkZXINCj4gPiA+IGl0ZW1zIik7IC1AQCAtMzY4MCwxNyArMzY4NSwxNSBAQA0KPiA+ID4g Zmxvd19kdl9tb2RpZnlfaGRyX3Jlc291cmNlX3JlZ2lzdGVyDQo+ID4gPiArQEAgLTM0ODMsMTcg KzM0ODgsMTUgQEANCj4gZmxvd19kdl9tb2RpZnlfaGRyX3Jlc291cmNlX3JlZ2lzdGVyDQo+ID4g PiAgIAkJbnMgPSBzaC0+dHhfZG9tYWluOw0KPiA+ID4gICAJZWxzZQ0KPiA+ID4gICAJCW5zID0g c2gtPnJ4X2RvbWFpbjsNCj4gPiA+IEBAIC0xOTEsNyArMTkyLDcgQEANCj4gPiA+ICAgCQkJRFJW X0xPRyhERUJVRywgIm1vZGlmeS1oZWFkZXINCj4gPiA+IHJlc291cmNlICVwOiByZWZjbnQgJWQr KyIsDQo+ID4gPiAgIAkJCQkodm9pZCAqKWNhY2hlX3Jlc291cmNlLA0KPiA+ID4gICAJCQkJcnRl X2F0b21pYzMyX3JlYWQoJmNhY2hlX3Jlc291cmNlLQ0KPiA+ID4gPiByZWZjbnQpKTsNCj4gPiA+ DQo+ID4gPiAtQEAgLTM3MDAsMTggKzM3MDMsMTggQEANCj4gZmxvd19kdl9tb2RpZnlfaGRyX3Jl c291cmNlX3JlZ2lzdGVyDQo+ID4gPiArQEAgLTM1MDMsMTggKzM1MDYsMTggQEANCj4gZmxvd19k dl9tb2RpZnlfaGRyX3Jlc291cmNlX3JlZ2lzdGVyDQo+ID4gPiAgIAkJfQ0KPiA+ID4gICAJfQ0K PiA+ID4gICAJLyogUmVnaXN0ZXIgbmV3IG1vZGlmeS1oZWFkZXIgcmVzb3VyY2UuICovIEBAIC0y MTUsNyArMjE2LDcNCj4gQEANCj4gPiA+ICAgCQkJCQkgKHVpbnQ2NF90ICopY2FjaGVfcmVzb3Vy Y2UtDQo+ID4gPiA+IGFjdGlvbnMpOw0KPiA+ID4NCj4gPiA+ICAgCWlmICghY2FjaGVfcmVzb3Vy Y2UtPnZlcmJzX2FjdGlvbikgew0KPiA+ID4gICAJCXJ0ZV9mcmVlKGNhY2hlX3Jlc291cmNlKTsN Cj4gPiA+IC1AQCAtNzAyMCwxMCArNzAyMywxMyBAQCBfX2Zsb3dfZHZfdHJhbnNsYXRlKHN0cnVj dA0KPiBydGVfZXRoX2Rldg0KPiA+ID4gKmRldiwNCj4gPiA+ICtAQCAtNjY3MCwxMCArNjY3Mywx MyBAQCBfX2Zsb3dfZHZfdHJhbnNsYXRlKHN0cnVjdA0KPiBydGVfZXRoX2Rldg0KPiA+ID4gKmRl diwNCj4gPiA+ICAgCX07DQo+ID4gPiAgIAlpbnQgYWN0aW9uc19uID0gMDsNCj4gPiA+ICAgCWJv b2wgYWN0aW9uc19lbmQgPSBmYWxzZTsNCj4gPiA+IEBAIC0yMzMsNyArMjM0LDcgQEANCj4gPiA+ ICAgCXVuaW9uIGZsb3dfZHZfYXR0ciBmbG93X2F0dHIgPSB7IC5hdHRyID0gMCB9Ow0KPiA+ID4g ICAJdWludDMyX3QgdGFnX2JlOw0KPiA+ID4gICAJdW5pb24gbWx4NV9mbG93X3RibF9rZXkgdGJs X2tleTsNCj4gPiA+IC1AQCAtNzAzNSwxNSArNzA0MSwxOSBAQCBfX2Zsb3dfZHZfdHJhbnNsYXRl KHN0cnVjdA0KPiBydGVfZXRoX2Rldg0KPiA+ID4gKmRldiwNCj4gPiA+ICtAQCAtNjY4NSwxNSAr NjY5MSwxOSBAQCBfX2Zsb3dfZHZfdHJhbnNsYXRlKHN0cnVjdA0KPiBydGVfZXRoX2Rldg0KPiA+ ID4gKmRldiwNCj4gPiA+ICAgCXVpbnQzMl90IHRhYmxlOw0KPiA+ID4gICAJaW50IHJldCA9IDA7 DQo+ID4gPg0KPiA+ID4gQEAgLTI1NCw3ICsyNTUsNyBAQA0KPiA+ID4gICAJZm9yICg7ICFhY3Rp b25zX2VuZCA7IGFjdGlvbnMrKykgew0KPiA+ID4gICAJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19h Y3Rpb25fcXVldWUgKnF1ZXVlOw0KPiA+ID4gICAJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rp b25fcnNzICpyc3M7IC1AQCAtNzA4MSw3DQo+ID4gPiArNzA5MSw3IEBAIF9fZmxvd19kdl90cmFu c2xhdGUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIEBAIC0NCj4gNjczMSw3DQo+ID4gPiArKzY3 NDEsNyBAQCBfX2Zsb3dfZHZfdHJhbnNsYXRlKHN0cnVjdCBydGVfZXRoX2Rldg0KPiA+ID4gKmRl diwNCj4gPiA+ICAgCQkJCX07DQo+ID4gPg0KPiA+ID4gICAJCQkJaWYgKGZsb3dfZHZfY29udmVy dF9hY3Rpb25fbWFyayhkZXYsDQo+ICZtYXJrLCBAQCAtMjYzLDcgKzI2NCw3DQo+ID4gPiBAQA0K PiA+ID4gICAJCQkJCQkJCWVycm9yKSkNCj4gPiA+ICAgCQkJCQlyZXR1cm4gLXJ0ZV9lcnJubzsN Cj4gPiA+ICAgCQkJCWFjdGlvbl9mbGFncyB8PQ0KPiA+ID4gTUxYNV9GTE9XX0FDVElPTl9NQVJL X0VYVDsgLUBAIC03MTAzLDcgKzcxMTMsNyBAQA0KPiA+ID4gX19mbG93X2R2X3RyYW5zbGF0ZShz dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gPiA+ICtAQCAtNjc1Myw3ICs2NzYzLDcgQEAgX19m bG93X2R2X3RyYW5zbGF0ZShzdHJ1Y3QgcnRlX2V0aF9kZXYNCj4gPiA+ICpkZXYsDQo+ID4gPiAg IAkJCQkJCWFjdGlvbnMtPmNvbmY7DQo+ID4gPg0KPiA+ID4gICAJCQkJaWYgKGZsb3dfZHZfY29u dmVydF9hY3Rpb25fbWFyayhkZXYsDQo+IG1hcmssIEBAIC0yNzIsNyArMjczLDcgQEANCj4gPiA+ ICAgCQkJCQkJCQllcnJvcikpDQo+ID4gPiAgIAkJCQkJcmV0dXJuIC1ydGVfZXJybm87DQo+ID4g PiAgIAkJCQlhY3Rpb25fZmxhZ3MgfD0NCj4gPiA+IE1MWDVfRkxPV19BQ1RJT05fTUFSS19FWFQ7 IC1AQCAtNzEyNCw3ICs3MTM0LDcgQEANCj4gPiA+IF9fZmxvd19kdl90cmFuc2xhdGUoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gPiArQEAgLTY3NzQsNyArNjc4NCw3IEBAIF9fZmxvd19k dl90cmFuc2xhdGUoc3RydWN0IHJ0ZV9ldGhfZGV2DQo+ID4gPiAqZGV2LA0KPiA+ID4gICAJCQli cmVhazsNCj4gPiA+ICAgCQljYXNlIFJURV9GTE9XX0FDVElPTl9UWVBFX1NFVF9NRVRBOg0KPiA+ ID4gICAJCQlpZiAoZmxvd19kdl9jb252ZXJ0X2FjdGlvbl9zZXRfbWV0YSBAQCAtDQo+ID4gPiAy ODEsNyArMjgyLDcgQEANCj4gPiA+ICAgCQkJCSAoY29uc3Qgc3RydWN0DQo+ID4gPiBydGVfZmxv d19hY3Rpb25fc2V0X21ldGEgKikNCj4gPiA+ICAgCQkJCSAgYWN0aW9ucy0+Y29uZiwgZXJyb3Ip KQ0KPiA+ID4gICAJCQkJcmV0dXJuIC1ydGVfZXJybm87DQo+ID4gPiAtQEAgLTcxMzIsNyArNzE0 Miw3IEBAIF9fZmxvd19kdl90cmFuc2xhdGUoc3RydWN0IHJ0ZV9ldGhfZGV2DQo+ICpkZXYsDQo+ ID4gPiArQEAgLTY3ODIsNyArNjc5Miw3IEBAIF9fZmxvd19kdl90cmFuc2xhdGUoc3RydWN0IHJ0 ZV9ldGhfZGV2DQo+ID4gPiAqZGV2LA0KPiA+ID4gICAJCQlicmVhazsNCj4gPiA+ICAgCQljYXNl IFJURV9GTE9XX0FDVElPTl9UWVBFX1NFVF9UQUc6DQo+ID4gPiAgIAkJCWlmIChmbG93X2R2X2Nv bnZlcnRfYWN0aW9uX3NldF90YWcgQEAgLTI5MCw3DQo+ICsyOTEsNyBAQA0KPiA+ID4gICAJCQkJ IChjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3NldF90YWcNCj4gPiA+ICopDQo+ID4gPiAg IAkJCQkgIGFjdGlvbnMtPmNvbmYsIGVycm9yKSkNCj4gPiA+ICAgCQkJCXJldHVybiAtcnRlX2Vy cm5vOw0KPiA+ID4gLUBAIC03MjMyLDcgKzcyNDIsNyBAQCBjbnRfZXJyOg0KPiA+ID4gK0BAIC02 ODgyLDcgKzY4OTIsNyBAQCBjbnRfZXJyOg0KPiA+ID4gICAJCQltbHg1X3VwZGF0ZV92bGFuX3Zp ZF9wY3AoYWN0aW9ucywgJnZsYW4pOw0KPiA+ID4gICAJCQkvKiBJZiBubyBWTEFOIHB1c2ggLSB0 aGlzIGlzIGEgbW9kaWZ5IGhlYWRlcg0KPiBhY3Rpb24gKi8NCj4gPiA+ICAgCQkJaWYgKGZsb3df ZHZfY29udmVydF9hY3Rpb25fbW9kaWZ5X3ZsYW5fdmlkDQo+ID4gPiBAQCAtMjk5LDcgKzMwMCw3 IEBADQo+ID4gPiAgIAkJCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ICAgCQkJYWN0aW9uX2Zs YWdzIHw9DQo+ID4gPiBNTFg1X0ZMT1dfQUNUSU9OX09GX1NFVF9WTEFOX1ZJRDsNCj4gPiA+ICAg CQkJYnJlYWs7DQo+ID4gPiAtQEAgLTczMzEsNyArNzM0MSw3IEBAIGNudF9lcnI6DQo+ID4gPiAr QEAgLTY5ODEsNyArNjk5MSw3IEBAIGNudF9lcnI6DQo+ID4gPiAgIAkJY2FzZSBSVEVfRkxPV19B Q1RJT05fVFlQRV9TRVRfTUFDX1NSQzoNCj4gPiA+ICAgCQljYXNlIFJURV9GTE9XX0FDVElPTl9U WVBFX1NFVF9NQUNfRFNUOg0KPiA+ID4gICAJCQlpZiAoZmxvd19kdl9jb252ZXJ0X2FjdGlvbl9t b2RpZnlfbWFjDQo+ID4gPiBAQCAtMzA4LDcgKzMwOSw3IEBADQo+ID4gPiAgIAkJCQlyZXR1cm4g LXJ0ZV9lcnJubzsNCj4gPiA+ICAgCQkJYWN0aW9uX2ZsYWdzIHw9IGFjdGlvbnMtPnR5cGUgPT0N Cj4gPiA+DQo+ID4gPiAJUlRFX0ZMT1dfQUNUSU9OX1RZUEVfU0VUX01BQ19TUkMgPw0KPiA+ID4g LUBAIC03MzQxLDcgKzczNTEsNyBAQCBjbnRfZXJyOg0KPiA+ID4gK0BAIC02OTkxLDcgKzcwMDEs NyBAQCBjbnRfZXJyOg0KPiA+ID4gICAJCWNhc2UgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfU0VUX0lQ VjRfU1JDOg0KPiA+ID4gICAJCWNhc2UgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfU0VUX0lQVjRfRFNU Og0KPiA+ID4gICAJCQlpZiAoZmxvd19kdl9jb252ZXJ0X2FjdGlvbl9tb2RpZnlfaXB2NA0KPiA+ ID4gQEAgLTMxNyw3ICszMTgsNyBAQA0KPiA+ID4gICAJCQkJcmV0dXJuIC1ydGVfZXJybm87DQo+ ID4gPiAgIAkJCWFjdGlvbl9mbGFncyB8PSBhY3Rpb25zLT50eXBlID09DQo+ID4gPg0KPiA+ID4g CVJURV9GTE9XX0FDVElPTl9UWVBFX1NFVF9JUFY0X1NSQyA/DQo+ID4gPiAtQEAgLTczNTEsNyAr NzM2MSw3IEBAIGNudF9lcnI6DQo+ID4gPiArQEAgLTcwMDEsNyArNzAxMSw3IEBAIGNudF9lcnI6 DQo+ID4gPiAgIAkJY2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfSVBWNl9TUkM6DQo+ID4g PiAgIAkJY2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfSVBWNl9EU1Q6DQo+ID4gPiAgIAkJ CWlmIChmbG93X2R2X2NvbnZlcnRfYWN0aW9uX21vZGlmeV9pcHY2DQo+ID4gPiBAQCAtMzI2LDcg KzMyNyw3IEBADQo+ID4gPiAgIAkJCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ICAgCQkJYWN0 aW9uX2ZsYWdzIHw9IGFjdGlvbnMtPnR5cGUgPT0NCj4gPiA+DQo+ID4gPiAJUlRFX0ZMT1dfQUNU SU9OX1RZUEVfU0VUX0lQVjZfU1JDID8NCj4gPiA+IC1AQCAtNzM2MSw3ICs3MzcxLDcgQEAgY250 X2VycjoNCj4gPiA+ICtAQCAtNzAxMSw3ICs3MDIxLDcgQEAgY250X2VycjoNCj4gPiA+ICAgCQlj YXNlIFJURV9GTE9XX0FDVElPTl9UWVBFX1NFVF9UUF9TUkM6DQo+ID4gPiAgIAkJY2FzZSBSVEVf RkxPV19BQ1RJT05fVFlQRV9TRVRfVFBfRFNUOg0KPiA+ID4gICAJCQlpZiAoZmxvd19kdl9jb252 ZXJ0X2FjdGlvbl9tb2RpZnlfdHAgQEAgLQ0KPiA+ID4gMzM1LDcgKzMzNiw3IEBADQo+ID4gPiAg IAkJCQkJICZmbG93X2F0dHIsIGVycm9yKSkNCj4gPiA+ICAgCQkJCXJldHVybiAtcnRlX2Vycm5v Ow0KPiA+ID4gICAJCQlhY3Rpb25fZmxhZ3MgfD0gYWN0aW9ucy0+dHlwZSA9PSAtQEAgLTczNzEs MTMNCj4gKzczODEsMTMgQEANCj4gPiA+IGNudF9lcnI6DQo+ID4gPiArQEAgLTcwMjEsMTMgKzcw MzEsMTMgQEAgY250X2VycjoNCj4gPiA+ICAgCQkJYnJlYWs7DQo+ID4gPiAgIAkJY2FzZSBSVEVf RkxPV19BQ1RJT05fVFlQRV9ERUNfVFRMOg0KPiA+ID4gICAJCQlpZiAoZmxvd19kdl9jb252ZXJ0 X2FjdGlvbl9tb2RpZnlfZGVjX3R0bA0KPiA+ID4gQEAgLTM1MSw3ICszNTIsNyBAQA0KPiA+ID4g ICAJCQkJCSAmZmxvd19hdHRyLCBlcnJvcikpDQo+ID4gPiAgIAkJCQlyZXR1cm4gLXJ0ZV9lcnJu bzsNCj4gPiA+ICAgCQkJYWN0aW9uX2ZsYWdzIHw9IE1MWDVfRkxPV19BQ1RJT05fU0VUX1RUTDsN Cj4gLUBAIC03Mzg1LDcgKzczOTUsNw0KPiA+ID4gQEAgY250X2VycjoNCj4gPiA+ICtAQCAtNzAz NSw3ICs3MDQ1LDcgQEAgY250X2VycjoNCj4gPiA+ICAgCQljYXNlIFJURV9GTE9XX0FDVElPTl9U WVBFX0lOQ19UQ1BfU0VROg0KPiA+ID4gICAJCWNhc2UgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfREVD X1RDUF9TRVE6DQo+ID4gPiAgIAkJCWlmIChmbG93X2R2X2NvbnZlcnRfYWN0aW9uX21vZGlmeV90 Y3Bfc2VxDQo+ID4gPiBAQCAtMzYwLDcgKzM2MSw3IEBADQo+ID4gPiAgIAkJCQlyZXR1cm4gLXJ0 ZV9lcnJubzsNCj4gPiA+ICAgCQkJYWN0aW9uX2ZsYWdzIHw9IGFjdGlvbnMtPnR5cGUgPT0NCj4g PiA+DQo+ID4gPiAJUlRFX0ZMT1dfQUNUSU9OX1RZUEVfSU5DX1RDUF9TRVEgPw0KPiA+ID4gLUBA IC03Mzk2LDcgKzc0MDYsNyBAQCBjbnRfZXJyOg0KPiA+ID4gK0BAIC03MDQ2LDcgKzcwNTYsNyBA QCBjbnRfZXJyOg0KPiA+ID4gICAJCWNhc2UgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfSU5DX1RDUF9B Q0s6DQo+ID4gPiAgIAkJY2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9ERUNfVENQX0FDSzoNCj4g PiA+ICAgCQkJaWYgKGZsb3dfZHZfY29udmVydF9hY3Rpb25fbW9kaWZ5X3RjcF9hY2sNCj4gPiA+ IEBAIC0zNjksNyArMzcwLDcgQEANCj4gPiA+ICAgCQkJCXJldHVybiAtcnRlX2Vycm5vOw0KPiA+ ID4gICAJCQlhY3Rpb25fZmxhZ3MgfD0gYWN0aW9ucy0+dHlwZSA9PQ0KPiA+ID4NCj4gPiA+IAlS VEVfRkxPV19BQ1RJT05fVFlQRV9JTkNfVENQX0FDSyA/DQo+ID4gPiAtQEAgLTc0MDUsMTMgKzc0 MTUsMTMgQEAgY250X2VycjoNCj4gPiA+ICtAQCAtNzA1NSwxMyArNzA2NSwxMyBAQCBjbnRfZXJy Og0KPiA+ID4gICAJCQlicmVhazsNCj4gPiA+ICAgCQljYXNlIE1MWDVfUlRFX0ZMT1dfQUNUSU9O X1RZUEVfVEFHOg0KPiA+ID4gICAJCQlpZiAoZmxvd19kdl9jb252ZXJ0X2FjdGlvbl9zZXRfcmVn IEBAIC0NCj4gMzg1LDIyICszODYsNyBAQA0KPiA+ID4gICAJCQkJcmV0dXJuIC1ydGVfZXJybm87 DQo+ID4gPiAgIAkJCWFjdGlvbl9mbGFncyB8PSBNTFg1X0ZMT1dfQUNUSU9OX1NFVF9UQUc7DQo+ ID4gPiAgIAkJCWJyZWFrOw0KPiA+ID4gLUBAIC03NDM1LDIzICs3NDQ1LDIzIEBAIGNudF9lcnI6 DQo+ID4gPiAtIAkJCWFjdGlvbl9mbGFncyB8PSBNTFg1X0ZMT1dfQUNUSU9OX01FVEVSOw0KPiA+ ID4gLSAJCQlicmVhazsNCj4gPiA+IC0gCQljYXNlIFJURV9GTE9XX0FDVElPTl9UWVBFX1NFVF9J UFY0X0RTQ1A6DQo+ID4gPiAtLQkJCWlmDQo+ID4gPiAoZmxvd19kdl9jb252ZXJ0X2FjdGlvbl9t b2RpZnlfaXB2NF9kc2NwKCZtaGRyX3JlcywNCj4gPiA+IC0rCQkJaWYNCj4gPiA+IChmbG93X2R2 X2NvbnZlcnRfYWN0aW9uX21vZGlmeV9pcHY0X2RzY3AobWhkcl9yZXMsDQo+ID4gPiAtIAkJCQkJ CQkgICAgICBhY3Rpb25zLA0KPiA+ID4gZXJyb3IpKQ0KPiA+ID4gLSAJCQkJcmV0dXJuIC1ydGVf ZXJybm87DQo+ID4gPiAtIAkJCWFjdGlvbl9mbGFncyB8PQ0KPiA+ID4gTUxYNV9GTE9XX0FDVElP Tl9TRVRfSVBWNF9EU0NQOw0KPiA+ID4gLSAJCQlicmVhazsNCj4gPiA+IC0gCQljYXNlIFJURV9G TE9XX0FDVElPTl9UWVBFX1NFVF9JUFY2X0RTQ1A6DQo+ID4gPiAtLQkJCWlmDQo+ID4gPiAoZmxv d19kdl9jb252ZXJ0X2FjdGlvbl9tb2RpZnlfaXB2Nl9kc2NwKCZtaGRyX3JlcywNCj4gPiA+IC0r CQkJaWYNCj4gPiA+IChmbG93X2R2X2NvbnZlcnRfYWN0aW9uX21vZGlmeV9pcHY2X2RzY3AobWhk cl9yZXMsDQo+ID4gPiAtIAkJCQkJCQkgICAgICBhY3Rpb25zLA0KPiA+ID4gZXJyb3IpKQ0KPiA+ ID4gLSAJCQkJcmV0dXJuIC1ydGVfZXJybm87DQo+ID4gPiAtIAkJCWFjdGlvbl9mbGFncyB8PQ0K PiA+ID4gTUxYNV9GTE9XX0FDVElPTl9TRVRfSVBWNl9EU0NQOw0KPiA+ID4gK0BAIC03MDg2LDEw ICs3MDk2LDEwIEBAIGNudF9lcnI6DQo+ID4gPiAgIAkJCWJyZWFrOw0KPiA+ID4gICAJCWNhc2Ug UlRFX0ZMT1dfQUNUSU9OX1RZUEVfRU5EOg0KPiA+ID4gICAJCQlhY3Rpb25zX2VuZCA9IHRydWU7 DQo+ID4gPiBAQCAtNDEzLDcgKzM5OSw3IEBADQo+ID4gPiAgIAkJCQkJcmV0dXJuIC1ydGVfZXJy bm87DQo+ID4gPiAgIAkJCQlkZXZfZmxvdy0NCj4gPiA+ID4gZHYuYWN0aW9uc1ttb2RpZnlfYWN0 aW9uX3Bvc2l0aW9uXSA9DQo+ID4gPg0KPiA+ID4gICAJCQkJCWRldl9mbG93LT5kdi5tb2RpZnlf aGRyLQ0KPiA+ID4gPiB2ZXJic19hY3Rpb247DQo+ID4gPg0KPiA+ID4gLUBAIC03NDYwLDcgKzc0 NzAsNyBAQCBjbnRfZXJyOg0KPiA+ID4gK0BAIC03MDk4LDcgKzcxMDgsNyBAQCBjbnRfZXJyOg0K PiA+ID4gICAJCWRlZmF1bHQ6DQo+ID4gPiAgIAkJCWJyZWFrOw0KPiA+ID4gICAJCX0NCj4gLS0N Cj4gS2luZCByZWdhcmRzLA0KPiBMdWNhIEJvY2Nhc3NpDQoNCg==