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 DB432A0542 for ; Thu, 13 Feb 2020 12:23:25 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id ABF151BDAE; Thu, 13 Feb 2020 12:23:25 +0100 (CET) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60061.outbound.protection.outlook.com [40.107.6.61]) by dpdk.org (Postfix) with ESMTP id BEC451BDAE for ; Thu, 13 Feb 2020 12:23:24 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ba9z4g0ClF9Y3LqEZwtpwLdUXsRxSniCCr28j/ORZsQsXkehcHDU9HdD9ZLDeSfd/op0g5QquWS+U6Qte8iRJW4bDFJKxMlSedf40uqrjnYR6oN/TPg4j7HzzGTn3tiJDNB9QoKEGHI5S1FcB8lFrO7ztyQ1YibDC1KfFilBv5+ZINCrl0SVDiBP82NRC4eyZw7HCivEOaUkaEPzcYUFRfXhJbUelrQ3rTNmMFR0GMemLKoyFvwLt41Oyj8cEonROVpEGOzJGoXMSpjka/fz3F1PB9yR1Pd5dMNh1/7XTpJzc5yxn+16O9zWYKbPRS4/37PA297zBvpnSYSDaKmRiA== 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=zQRh6XPCKyNk4tiWR46QKKTVDnw5RpvqOwdjae35Ipo=; b=btlf3wbGkAz9OWsurevUZiwx+ANlL7cPJ3kGJe3ilfYXLRbTtmrA3iImsMBwiIYBc/uAymJN3F4BdEVi8dYa0uQi+EsYTJatC/WQ7jbx8Lqhtn64QngNfuKQPIDN231RG2AuGVnieF79TN53gs8/1hguyGft3cVTluwslJiUrOwS5WY9dSyERcEqkwyPU8CYkMfiiouyiY3K6Y3ne/mWBEzUQ60NUYUgxQ3iWhXgfs+Bi+wOVngxbAXUHfA2BqngywCpPZo9ez4EBkKn33jxMVNzN2tTHTrinVcXPwF6CgX4ETZqeLfRC+tMRnSnrjfOvG4Sk2+V5RH+0V2nuJpE5A== 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=zQRh6XPCKyNk4tiWR46QKKTVDnw5RpvqOwdjae35Ipo=; b=q1FQuw9RES5h0pQY/rPAg3vtCbh12TXNWJ1giZEfQHBmm5l8/E9TY/DmXcd+JOG21f7VBP1jDTK3BJJGbr7KeyMJsur5WcwzTbMTNUzo5p8KVbWr2vEhzvqPv0fHKy6WtftT05Ye2zXk195aqTBOpAbH/08DDyW00LBym10VD80= Received: from VI1PR05MB4192.eurprd05.prod.outlook.com (10.171.183.18) by VI1PR05MB6397.eurprd05.prod.outlook.com (20.179.25.77) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2707.21; Thu, 13 Feb 2020 11:23:23 +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 11:23:22 +0000 From: Bing Zhao To: Luca Boccassi , Dekel Peled 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/YAggAAOZACAAstLkIAACVIAgAAHO0A= Date: Thu, 13 Feb 2020 11:23:22 +0000 Message-ID: References: <20200211112216.3929-1-luca.boccassi@gmail.com> <20200211112216.3929-122-luca.boccassi@gmail.com> <31aed464aa917104b0a57c6a32870e67a15a60ba.camel@gmail.com> <917cb38f08006ad7ce3e05fd1fb9ed90e46aaad6.camel@gmail.com> In-Reply-To: <917cb38f08006ad7ce3e05fd1fb9ed90e46aaad6.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: b6effd5e-f3c3-43fa-8f64-08d7b07722e8 x-ms-traffictypediagnostic: VI1PR05MB6397:|VI1PR05MB6397: 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)(39860400002)(346002)(396003)(366004)(376002)(136003)(199004)(189003)(4326008)(478600001)(110136005)(81166006)(8676002)(52536014)(186003)(26005)(81156014)(8936002)(9686003)(6506007)(5660300002)(53546011)(2906002)(7696005)(86362001)(76116006)(55016002)(33656002)(66946007)(30864003)(66556008)(45080400002)(71200400001)(64756008)(66476007)(66446008)(966005)(316002)(6636002)(54906003)(559001)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB6397; H:VI1PR05MB4192.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX: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: cwMOjTj8vcrpEigohaqWY0E//PFw7Q0shW//XhbRd7QwqUPhOIcWwI19PtjEo7GgBqpb0SRIMeJhgYgKOg7ybCRgQhglR7QI+0Vb6cnO9OVo4aWaImZK2S4FxXU5hhtSd50KR0KeBAHricVlfu8jRQvXsFW+W6/W8sFlZkX7ziWvpdloStMBdMwzvTcUvMprDvWs21JldTTY9MGYeDqYRVknHalmWJw/gRnqek8VBYiRH/sGaE92XJcTxrk6rg+DRlF2NeZoKjgqwqyzbSPSw/vj9UaUDYXbPe6Gmna7rz2ap56+1w0xypGG1MmHQ30uIvmLkz44GiylWPolTv6I7CvAbxTjuuCRDYHJnq1WjM7oh4Y3KANKKK45x/9vxL0mpqjM04ng2eZQwXDIV3jSFGgpfPA9EutP4x+bSS8J6ZOAH6b+HY3LT9WM6V+oCWXFoOGgwovJjVk5yeP9mNxyJmxxBcQ6U0EB253f4BE+/9iDT2nwfQbRGN6bFgdiDcrEoOt0vGWxlUkUse8CWhazOgH/T2ralusucr6yOZfitx1KiEEUtylVP8OBm3epbXKhBhHmT5ys1uP98IeH/dEvgFljFJMSTU+G2uybLcxrSSVYod7Uf/eFLzZtFiT8lobO x-ms-exchange-antispam-messagedata: aEU1KZ4euq1ZPoTD0/XdoIyT7t0qfyTEVB8Yjwy45+vr9wMh+i0vowJAUFhZl/u1Jxsnn+tB0HflRR04rS9jdYoaYU1ImB6jLfOFtOMaoPe/HnVfJgrqDj+HSRIObHpP1/6y7GVAyHa2AlRRoFo2MQ== 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: b6effd5e-f3c3-43fa-8f64-08d7b07722e8 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Feb 2020 11:23:22.8088 (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: HCl7NgtC2nP70HbB37Dwh8ygviZ1sLDEy7oGzbnCbgaMmE2B4LCsrz2qtXtJXJu09H8v+VEvcag4Iy/RjeOdIQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6397 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" SGkgTHVjYSwNCg0KSSBtZWFuIHRoaXMgcGF0Y2g6IGh0dHA6Ly9wYXRjaGVzLmRwZGsub3JnL3Bh dGNoLzY1NTc0Lw0KDQpUaGFuayB5b3UuDQoNCkJSLiBCaW5nDQoNCj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gRnJvbTogTHVjYSBCb2NjYXNzaSA8bHVjYS5ib2NjYXNzaUBnbWFpbC5j b20+DQo+IFNlbnQ6IFRodXJzZGF5LCBGZWJydWFyeSAxMywgMjAyMCA1OjM2IFBNDQo+IFRvOiBC aW5nIFpoYW8gPGJpbmd6QG1lbGxhbm94LmNvbT4NCj4gQ2M6IE9yaSBLYW0gPG9yaWthQG1lbGxh bm94LmNvbT47IFNsYXZhIE92c2lpZW5rbw0KPiA8dmlhY2hlc2xhdm9AbWVsbGFub3guY29tPjsg ZHBkayBzdGFibGUgPHN0YWJsZUBkcGRrLm9yZz4NCj4gU3ViamVjdDogUmU6IHBhdGNoICduZXQv bWx4NTogZml4IG1vZGlmeSBhY3Rpb25zIHN1cHBvcnQgbGltaXRhdGlvbicgaGFzDQo+IGJlZW4g cXVldWVkIHRvIHN0YWJsZSByZWxlYXNlIDE5LjExLjENCj4gDQo+IEhpLA0KPiANCj4gVGhhbmsg eW91LiBTb3JyeSwgd2hhdCBkbyB5b3UgbWVhbiBieSAjNjU1NzQ/DQo+IA0KPiBPbiBUaHUsIDIw MjAtMDItMTMgYXQgMDk6MDYgKzAwMDAsIEJpbmcgWmhhbyB3cm90ZToNCj4gPiBIaSBMdWNhLA0K PiA+IEkgY2hlY2tlZCB0aGUgcGF0Y2ggYW5kIGl0IGlzIE9LIGZvciBtZS4NCj4gPiBBZnRlciB0 aGlzIGlzIGFwcGxpZWQsIHRoZW4gcGF0Y2ggIzY1NTc0IGlzIGFsc28gbmVlZGVkIGZvciAxOS4x MS4xLg0KPiA+DQo+ID4gU28gbWFueSB0aGFua3MgZm9yIHlvdXIgaGVscC4NCj4gPg0KPiA+IEJS LiBCaW5nDQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9t OiBMdWNhIEJvY2Nhc3NpIDwNCj4gPiA+IGx1Y2EuYm9jY2Fzc2lAZ21haWwuY29tDQo+ID4gPiA+ DQo+ID4gPiBTZW50OiBUdWVzZGF5LCBGZWJydWFyeSAxMSwgMjAyMCAxMDoyMyBQTQ0KPiA+ID4g VG86IEJpbmcgWmhhbyA8DQo+ID4gPiBiaW5nekBtZWxsYW5veC5jb20NCj4gPiA+ID4NCj4gPiA+ IENjOiBPcmkgS2FtIDwNCj4gPiA+IG9yaWthQG1lbGxhbm94LmNvbQ0KPiA+ID4gPjsgU2xhdmEg T3ZzaWllbmtvDQo+ID4gPiA8DQo+ID4gPiB2aWFjaGVzbGF2b0BtZWxsYW5veC5jb20NCj4gPiA+ ID47IGRwZGsgc3RhYmxlIDwNCj4gPiA+IHN0YWJsZUBkcGRrLm9yZw0KPiA+ID4gPg0KPiA+ID4g U3ViamVjdDogUmU6IHBhdGNoICduZXQvbWx4NTogZml4IG1vZGlmeSBhY3Rpb25zIHN1cHBvcnQg bGltaXRhdGlvbicNCj4gPiA+IGhhcyBiZWVuIHF1ZXVlZCB0byBzdGFibGUgcmVsZWFzZSAxOS4x MS4xDQo+ID4gPg0KPiA+ID4gSGksDQo+ID4gPg0KPiA+ID4gVGhlIHJlYmFzaW5nIGlzIGRvbmUg YW5kIHlvdSBjYW4gc2VlIHRoZSByZXN1bHQgaW4gdGhlIG1haWwgeW91DQo+ID4gPiByZXBsaWVk IHRvLg0KPiA+ID4NCj4gPiA+IFRoZSBuZXcgMTkuMTEgYnJhbmNoIHdpbGwgYmUgcHVzaGVkIGJ5 IHRoZSBlbmQgb2YgdGhlIHdlZWsuDQo+ID4gPg0KPiA+ID4gT24gVHVlLCAyMDIwLTAyLTExIGF0 IDEzOjQ4ICswMDAwLCBCaW5nIFpoYW8gd3JvdGU6DQo+ID4gPiA+IEhpIEx1Y2EsDQo+ID4gPiA+ DQo+ID4gPiA+IE1hbnkgdGhhbmtzIGZvciB5b3VyIGhlbHAuDQo+ID4gPiA+DQo+ID4gPiA+IFll cywgdGhpcyBuZWVkcyB0byBiZSBhbHNvIGFwcGxpZWQgdG8gdGhlIDE5LjExIHN0YWJsZSBicmFu Y2guIEkNCj4gPiA+ID4gd2FudCB0byByZWJhc2UgaXQgYnV0IGNvdWxkIG5vdCBmaW5kIHRoZSBi cmFuY2ggaW4NCj4gPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiBodHRwczovL2V1cjAzLnNhZmVsaW5r cy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cCUzQSUyRiUyRmcNCj4gPiA+DQo+ID4g PiBpdC5kDQo+ID4gPiA+IHBkay5vcmclMkZkcGRrLQ0KPiA+ID4NCj4gPiA+IHN0YWJsZSUyRiZh bXA7ZGF0YT0wMiU3QzAxJTdDYmluZ3olNDBtZWxsYW5veC5jb20lN0M4ODgNCj4gPiA+DQo+ID4g Pg0KPiBjNGZhMmQyYjI0MmM5M2ViYzA4ZDdhZWZkZTRlMSU3Q2E2NTI5NzFjN2QyZTRkOWJhNmE0 ZDE0OTI1Ng0KPiA+ID4gZjQ2MWIlN0MwJTcNCj4gPiA+DQo+ID4gPg0KPiBDMCU3QzYzNzE3MDI3 NzgwNDU2NjMyMSZhbXA7c2RhdGE9WU1UYWVkUlIzTHY3T0tkJTJGdmhFSg0KPiA+ID4gNUNYT0o5 b0hVM2glMkINCj4gPiA+ID4gZWk0cW92MHg2UkElM0QmYW1wO3Jlc2VydmVkPTANCj4gPiA+ID4g ICwgc28gd291bGQgeW91IHBsZWFzZSBzaGFyZSBtZSB0aGUNCj4gPiA+ID4gYnJhbmNoIGluZm9y bWF0aW9uIHRoZW4gSSBjYW4gdHJ5IHRvIGZpbmlzaCB0aGUgcmViYXNpbmcgdG9kYXkgb3INCj4g PiA+ID4gZWFybHkgdG9tb3Jyb3cuDQo+ID4gPiA+DQo+ID4gPiA+IEJSLiBCaW5nDQo+ID4gPiA+ DQo+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiBGcm9tOg0K PiA+ID4gPiA+IGx1Y2EuYm9jY2Fzc2lAZ21haWwuY29tDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAg PA0KPiA+ID4gPiA+IGx1Y2EuYm9jY2Fzc2lAZ21haWwuY29tDQo+ID4gPiA+ID4NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IFNlbnQ6IFR1ZXNkYXksIEZlYnJ1YXJ5IDExLCAyMDIwIDc6MjEgUE0NCj4g PiA+ID4gPiBUbzogQmluZyBaaGFvIDwNCj4gPiA+ID4gPiBiaW5nekBtZWxsYW5veC5jb20NCj4g PiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQ2M6IE9yaSBLYW0gPA0KPiA+ID4gPiA+IG9y aWthQG1lbGxhbm94LmNvbQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA7IFNsYXZhIE92c2lpZW5r bw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPA0KPiA+ID4gPiA+IHZpYWNoZXNsYXZvQG1lbGxhbm94 LmNvbQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA7IGRwZGsgc3RhYmxlIDwNCj4gPiA+ID4gPg0K PiA+ID4gPiA+IHN0YWJsZUBkcGRrLm9yZw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4g PiBTdWJqZWN0OiBwYXRjaCAnbmV0L21seDU6IGZpeCBtb2RpZnkgYWN0aW9ucyBzdXBwb3J0DQo+ ID4gPiA+ID4gbGltaXRhdGlvbicNCj4gPiA+ID4gPiBoYXMNCj4gPiA+ID4gPiBiZWVuIHF1ZXVl ZCB0byBzdGFibGUgcmVsZWFzZSAxOS4xMS4xDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBIaSwNCj4g PiA+ID4gPg0KPiA+ID4gPiA+IEZZSSwgeW91ciBwYXRjaCBoYXMgYmVlbiBxdWV1ZWQgdG8gc3Rh YmxlIHJlbGVhc2UgMTkuMTEuMQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gTm90ZSBpdCBoYXNuJ3Qg YmVlbiBwdXNoZWQgdG8NCj4gPiA+ID4gPg0KPiA+ID4NCj4gPiA+DQo+IGh0dHBzOi8vZXVyMDMu c2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwJTNBJTJGJTJGDQo+ID4g Pg0KPiA+ID4gPiA+IGRwZGsub3JnJTJGYnJvd3NlJTJGZHBkay0NCj4gPiA+ID4gPg0KPiA+ID4N Cj4gPiA+DQo+IHN0YWJsZSZhbXA7ZGF0YT0wMiU3QzAxJTdDYmluZ3olNDBtZWxsYW5veC5jb20l N0NmMzFkMjBhYzhjDQo+ID4gPg0KPiA+ID4NCj4gNGU0MjczODZhMTA4ZDdhZWU1ZThjMiU3Q2E2 NTI5NzFjN2QyZTRkOWJhNmE0ZDE0OTI1NmY0NjFiJQ0KPiA+ID4NCj4gPiA+DQo+IDdDMCU3QzAl N0M2MzcxNzAxNzQ3ODE5NjE4MzUmYW1wO3NkYXRhPW5vJTJCRzVuS056YVlMNzJuDQo+ID4gPiA+ ID4gM3ZmNXYwWm1mbUpMUkxOY1Bmd3FnZjRZSk5VMCUzRCZhbXA7cmVzZXJ2ZWQ9MCB5ZXQuDQo+ ID4gPiA+ID4gSXQgd2lsbCBiZSBwdXNoZWQgaWYgSSBnZXQgbm8gb2JqZWN0aW9ucyBiZWZvcmUg MDIvMTMvMjAuIFNvDQo+ID4gPiA+ID4gcGxlYXNlDQo+ID4gPiA+ID4gc2hvdXQgaWYgYW55b25l IGhhcyBvYmplY3Rpb25zLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQWxzbyBub3RlIHRoYXQgYWZ0 ZXIgdGhlIHBhdGNoIHRoZXJlJ3MgYSBkaWZmIG9mIHRoZSB1cHN0cmVhbQ0KPiA+ID4gPiA+IGNv bW1pdA0KPiA+ID4gPiA+IHZzIHRoZSBwYXRjaCBhcHBsaWVkIHRvIHRoZSBicmFuY2guIFRoaXMg d2lsbCBpbmRpY2F0ZSBpZiB0aGVyZQ0KPiA+ID4gPiA+IHdhcw0KPiA+ID4gPiA+IGFueSByZWJh c2luZyBuZWVkZWQgdG8gYXBwbHkgdG8gdGhlIHN0YWJsZSBicmFuY2guIElmIHRoZXJlDQo+ID4g PiA+ID4gd2VyZQ0KPiA+ID4gPiA+IGNvZGUgY2hhbmdlcyBmb3IgcmViYXNpbmcNCj4gPiA+ID4g PiAoaWU6IG5vdCBvbmx5IG1ldGFkYXRhIGRpZmZzKSwgcGxlYXNlIGRvdWJsZSBjaGVjayB0aGF0 IHRoZQ0KPiA+ID4gPiA+IHJlYmFzZQ0KPiA+ID4gPiA+IHdhcyBjb3JyZWN0bHkgZG9uZS4NCj4g PiA+ID4gPg0KPiA+ID4gPiA+IFRoYW5rcy4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEx1Y2EgQm9j Y2Fzc2kNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+IEZyb20gZTBkZTgxNmY5 NDVlNTk5YTkzMzA4MWM1M2JiMDYwZDVkZDRjYmYxMyBNb24gU2VwDQo+IDE3DQo+ID4gPiA+ID4g MDA6MDA6MDAgMjAwMQ0KPiA+ID4gPiA+IEZyb206IEJpbmcgWmhhbyA8DQo+ID4gPiA+ID4gYmlu Z3pAbWVsbGFub3guY29tDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IERhdGU6IE1v biwgMjAgSmFuIDIwMjAgMTE6NDM6MDcgKzAyMDANCj4gPiA+ID4gPiBTdWJqZWN0OiBbUEFUQ0hd IG5ldC9tbHg1OiBmaXggbW9kaWZ5IGFjdGlvbnMgc3VwcG9ydA0KPiA+ID4gPiA+IGxpbWl0YXRp b24NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFsgdXBzdHJlYW0gY29tbWl0DQo+IDAyNGU5NTc1OWMx NmM2N2VlZTkyZWZmZmVlZTM0OTE1ZGM5NGE5YzAgXQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSW4g dGhlIHJvb3QgdGFibGUsIHRoZXJlIGlzIHNvbWUgbGltaXRhdGlvbiBvZiB0b3RhbCBudW1iZXIg b2YNCj4gPiA+ID4gPiBoZWFkZXIgbW9kaWZ5IGFjdGlvbnMsIDE2IG9yIDggZm9yIGVhY2guIEJ1 dCBpbiBvdGhlciB0YWJsZXMsDQo+ID4gPiA+ID4gdGhlcmUNCj4gPiA+ID4gPiBpcyBubyBzdWNo IHN0cmljdCBsaW1pdGF0aW9uLiBJbiBhbiBJUHY2IGNhc2UsIHRoZSBJUCBmaWVsZHMNCj4gPiA+ ID4gPiBtb2RpZnlpbmcgd2lsbCBvY2N1cHkgbW9yZSBhY3Rpb25zIHRoYW4gdGhhdCBpbiBJUHY0 LCBzbyB0aGUNCj4gPiA+ID4gPiB0b3RhbA0KPiA+ID4gPiA+IHN1cHBvcnQgbnVtYmVyIHNob3Vs ZCBiZSBpbmNyZWFzZWQgaW4gb3JkZXIgdG8gc3VwcG9ydCBhcw0KPiBtYW55DQo+ID4gPiA+ID4g YWN0aW9ucyBhcyBwb3NzaWJsZSBmb3IgYW4NCj4gPiA+ID4gPiBJUHY2ICsNCj4gPiA+ID4gPiBU Q1AgcGFja2V0Lg0KPiA+ID4gPiA+IEFuZCBpbiB0aGUgbWVhbndoaWxlLCB0aGUgbWVtb3J5IGNv bnN1bXB0aW9uIHNob3VsZCBhbHNvDQo+IGJlDQo+ID4gPg0KPiA+ID4gdGFrZW4NCj4gPiA+ID4g PiBpbnRvIGNvbnNpZGVyYXRpb24gYmVjYXVzZSBzb21ldGltZXMgb25seSBzZXZlcmFsIGFjdGlv bnMgYXJlDQo+ID4gPiA+ID4gbmVlZGVkLg0KPiA+ID4gPiA+IFRoZSByb290IHRhYmxlIGNoZWNr aW5nIGNvdWxkIGFsc28gYmUgZG9uZSBpbiBsb3cgbGF5ZXIgZHJpdmVyDQo+ID4gPiA+ID4gYW5k DQo+ID4gPiA+ID4gdGhlIGVycm9yIGNvZGUgd2lsbCBiZSByZXR1cm5lZCBpZiB0aGUgYWN0aW9u cyBudW1iZXIgaXMgb3Zlcg0KPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+IG1heGltYWwgc3VwcG9y dGVkIHZhbHVlLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gRml4ZXM6IDBlOWQwMDAyNzY4NiAoIm5l dC9tbHg1OiBjaGVjayBtYXhpbXVtIG1vZGlmeQ0KPiBhY3Rpb25zDQo+ID4gPiA+ID4gbnVtYmVy IikNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEJpbmcgWmhhbyA8DQo+ID4g PiA+ID4gYmluZ3pAbWVsbGFub3guY29tDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ IEFja2VkLWJ5OiBPcmkgS2FtIDwNCj4gPiA+ID4gPiBvcmlrYUBtZWxsYW5veC5jb20NCj4gPiA+ ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQWNrZWQtYnk6IFZpYWNoZXNsYXYgT3ZzaWllbmtv IDwNCj4gPiA+ID4gPiB2aWFjaGVzbGF2b0BtZWxsYW5veC5jb20NCj4gPiA+ID4gPg0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gIGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93 LmggICAgfCAgMTUgKysrLS0NCj4gPiA+ID4gPiAgZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3df ZHYuYyB8IDEwNCArKysrKysrKysrKysrKysrKy0tLQ0KPiAtLS0tDQo+ID4gPiA+ID4gLQ0KPiA+ ID4NCj4gPiA+IC0tLQ0KPiA+ID4gPiA+IC0tDQo+ID4gPiA+ID4gLS0NCj4gPiA+ID4gPiAgMiBm aWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCA1MyBkZWxldGlvbnMoLSkNCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5oDQo+ ID4gPiA+ID4gYi9kcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5oIGluZGV4DQo+IGRiMTI3MTVl Y2MuLjEzYmVkMDhkNzUNCj4gPiA+ID4gPiAxMDA2NDQNCj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJz L25ldC9tbHg1L21seDVfZmxvdy5oDQo+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9uZXQvbWx4NS9t bHg1X2Zsb3cuaA0KPiA+ID4gPiA+IEBAIC0zOTEsMTEgKzM5MSwxNCBAQCBzdHJ1Y3QgbWx4NV9m bG93X2R2X3RhZ19yZXNvdXJjZSB7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgLyoNCj4gPiA+ID4g PiAgICogTnVtYmVyIG9mIG1vZGlmaWNhdGlvbiBjb21tYW5kcy4NCj4gPiA+ID4gPiAtICogSWYg ZXh0ZW5zaXZlIG1ldGFkYXRhIHJlZ2lzdGVycyBhcmUgc3VwcG9ydGVkDQo+ID4gPiA+ID4gLSAq IHRoZSBtYXhpbWFsIGFjdGlvbnMgYW1vdW50IGlzIDE2IGFuZCA4IG90aGVyd2lzZS4NCj4gPiA+ ID4gPiArICogSWYgZXh0ZW5zaXZlIG1ldGFkYXRhIHJlZ2lzdGVycyBhcmUgc3VwcG9ydGVkLCB0 aGUgbWF4aW1hbA0KPiA+ID4gPiA+IGFjdGlvbnMNCj4gPiA+ID4gPiArIGFtb3VudCBpcw0KPiA+ ID4gPiA+ICsgKiAxNiBhbmQgOCBvdGhlcndpc2Ugb24gcm9vdCB0YWJsZS4gVGhlIHZhbGlkYXRp b24gY291bGQgYWxzbw0KPiA+ID4gPiA+IGJlDQo+ID4gPiA+ID4gZG9uZQ0KPiA+ID4gPiA+ICsg aW4gdGhlDQo+ID4gPiA+ID4gKyAqIGxvd2VyIGRyaXZlciBsYXllci4NCj4gPiA+ID4gPiArICog T24gbm9uLXJvb3QgdGFibGUsIHRoZXJlIGlzIG5vIGxpbWl0YXRpb24sIGJ1dCAzMiBpcyBlbm91 Z2gNCj4gPiA+ID4gPiByaWdodA0KPiA+ID4gPiA+IG5vdy4NCj4gPiA+ID4gPiAgICovDQo+ID4g PiA+ID4gLSNkZWZpbmUgTUxYNV9NT0RJRllfTlVNIDE2DQo+ID4gPiA+ID4gLSNkZWZpbmUgTUxY NV9NT0RJRllfTlVNX05PX01SRUcgOA0KPiA+ID4gPiA+ICsjZGVmaW5lIE1MWDVfTUFYX01PRElG WV9OVU0JCQkzMg0KPiA+ID4gPiA+ICsjZGVmaW5lIE1MWDVfUk9PVF9UQkxfTU9ESUZZX05VTQkJ MTYNCj4gPiA+ID4gPiArI2RlZmluZSBNTFg1X1JPT1RfVEJMX01PRElGWV9OVU1fTk9fTVJFRwk4 DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgLyogTW9kaWZ5IHJlc291cmNlIHN0cnVjdHVyZSAqLw0K PiA+ID4gPiA+ICBzdHJ1Y3QgbWx4NV9mbG93X2R2X21vZGlmeV9oZHJfcmVzb3VyY2UgeyBAQCAt NDA2LDkgKzQwOSw5DQo+ID4gPg0KPiA+ID4gQEANCj4gPiA+ID4gPiBzdHJ1Y3QgbWx4NV9mbG93 X2R2X21vZGlmeV9oZHJfcmVzb3VyY2Ugew0KPiA+ID4gPiA+ICAJLyoqPCBWZXJicyBtb2RpZnkg aGVhZGVyIGFjdGlvbiBvYmplY3QuICovDQo+ID4gPiA+ID4gIAl1aW50OF90IGZ0X3R5cGU7IC8q KjwgRmxvdyB0YWJsZSB0eXBlLCBSeCBvciBUeC4gKi8NCj4gPiA+ID4gPiAgCXVpbnQzMl90IGFj dGlvbnNfbnVtOyAvKio8IE51bWJlciBvZiBtb2RpZmljYXRpb24NCj4gPiA+ID4gPiBhY3Rpb25z Lg0KPiA+ID4gPiA+ICovDQo+ID4gPiA+ID4gLQlzdHJ1Y3QgbWx4NV9tb2RpZmljYXRpb25fY21k DQo+IGFjdGlvbnNbTUxYNV9NT0RJRllfTlVNXTsNCj4gPiA+ID4gPiArCXVpbnQ2NF90IGZsYWdz OyAvKio8IEZsYWdzIGZvciBSRE1BIEFQSS4gKi8NCj4gPiA+ID4gPiArCXN0cnVjdCBtbHg1X21v ZGlmaWNhdGlvbl9jbWQgYWN0aW9uc1tdOw0KPiA+ID4gPiA+ICAJLyoqPCBNb2RpZmljYXRpb24g YWN0aW9ucy4gKi8NCj4gPiA+ID4gPiAtCXVpbnQ2NF90IGZsYWdzOyAvKio8IEZsYWdzIGZvciBS RE1BIEFQSS4gKi8NCj4gPiA+ID4gPiAgfTsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAvKiBKdW1w IGFjdGlvbiByZXNvdXJjZSBzdHJ1Y3R1cmUuICovIGRpZmYgLS1naXQNCj4gPiA+ID4gPiBhL2Ry aXZlcnMvbmV0L21seDUvbWx4NV9mbG93X2R2LmMNCj4gPiA+DQo+ID4gPiBiL2RyaXZlcnMvbmV0 L21seDUvbWx4NV9mbG93X2R2LmMNCj4gPiA+ID4gPiBpbmRleCA4Zjc3OTA5NDE5Li43NGQxYTY4 ZTRhDQo+ID4gPiA+ID4gMTAwNjQ0DQo+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9uZXQvbWx4NS9t bHg1X2Zsb3dfZHYuYw0KPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93 X2R2LmMNCj4gPiA+ID4gPiBAQCAtMzYzLDcgKzM2Myw3IEBAIGZsb3dfZHZfY29udmVydF9tb2Rp ZnlfYWN0aW9uKHN0cnVjdA0KPiA+ID4gPiA+IHJ0ZV9mbG93X2l0ZW0gKml0ZW0sDQo+ID4gPiA+ ID4gIAkJdWludDMyX3QgbWFzazsNCj4gPiA+ID4gPiAgCQl1aW50MzJfdCBkYXRhOw0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gLQkJaWYgKGkgPj0gTUxYNV9NT0RJRllfTlVNKQ0KPiA+ID4gPiA+ICsJ CWlmIChpID49IE1MWDVfTUFYX01PRElGWV9OVU0pDQo+ID4gPiA+ID4gIAkJCXJldHVybiBydGVf Zmxvd19lcnJvcl9zZXQoZXJyb3IsDQo+ID4gPiA+ID4gRUlOVkFMLA0KPiA+ID4gPiA+ICAJCQkJ IFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLA0KPiA+ID4gPiA+IE5VTEwsDQo+ID4gPiA+ID4g IAkJCQkgInRvbyBtYW55IGl0ZW1zIHRvIG1vZGlmeSIpOw0KPiA+ID4gPiA+IEBAIC00MDQsMTEg KzQwNCwxMSBAQA0KPiBmbG93X2R2X2NvbnZlcnRfbW9kaWZ5X2FjdGlvbihzdHJ1Y3QNCj4gPiA+ ID4gPiBydGVfZmxvd19pdGVtICppdGVtLA0KPiA+ID4gPiA+ICAJCSsraTsNCj4gPiA+ID4gPiAg CQkrK2ZpZWxkOw0KPiA+ID4gPiA+ICAJfSB3aGlsZSAoZmllbGQtPnNpemUpOw0KPiA+ID4gPiA+ IC0JcmVzb3VyY2UtPmFjdGlvbnNfbnVtID0gaTsNCj4gPiA+ID4gPiAtCWlmICghcmVzb3VyY2Ut PmFjdGlvbnNfbnVtKQ0KPiA+ID4gPiA+ICsJaWYgKHJlc291cmNlLT5hY3Rpb25zX251bSA9PSBp KQ0KPiA+ID4gPiA+ICAJCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVJTlZBTCwN Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBOVUxMLA0K PiA+ID4gPiA+ICAJCQkJCSAgImludmFsaWQgbW9kaWZpY2F0aW9uDQo+ID4gPiA+ID4gZmxvdw0K PiA+ID4gPiA+IGl0ZW0iKTsNCj4gPiA+ID4gPiArCXJlc291cmNlLT5hY3Rpb25zX251bSA9IGk7 DQo+ID4gPiA+ID4gIAlyZXR1cm4gMDsNCj4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gQEAgLTU2OSw3ICs1NjksNyBAQA0KPiBmbG93X2R2X2NvbnZlcnRfYWN0aW9uX21vZGlmeV92 bGFuX3ZpZA0KPiA+ID4gPiA+ICAJc3RydWN0IG1seDVfbW9kaWZpY2F0aW9uX2NtZCAqYWN0aW9u cyA9ICZyZXNvdXJjZS0NCj4gPiA+ID4gPiA+YWN0aW9uc1tpXTsNCj4gPiA+ID4gPiAgCXN0cnVj dCBmaWVsZF9tb2RpZnlfaW5mbyAqZmllbGQgPQ0KPiA+ID4gPiA+IG1vZGlmeV92bGFuX291dF9m aXJzdF92aWQ7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAtCWlmIChpID49IE1MWDVfTU9ESUZZX05V TSkNCj4gPiA+ID4gPiArCWlmIChpID49IE1MWDVfTUFYX01PRElGWV9OVU0pDQo+ID4gPiA+ID4g IAkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRUlOVkFMLA0KPiA+ID4gPiA+ICAJ CQkgUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sIE5VTEwsDQo+ID4gPiA+ID4gIAkJCSAidG9v IG1hbnkgaXRlbXMgdG8gbW9kaWZ5Iik7DQo+ID4gPiA+ID4gQEAgLTkwMiw3ICs5MDIsNyBAQCBm bG93X2R2X2NvbnZlcnRfYWN0aW9uX3NldF9yZWcNCj4gPiA+ID4gPiAgCXN0cnVjdCBtbHg1X21v ZGlmaWNhdGlvbl9jbWQgKmFjdGlvbnMgPSByZXNvdXJjZS0NCj4gPiA+ID4gPiA+YWN0aW9uczsN Cj4gPiA+ID4gPiAgCXVpbnQzMl90IGkgPSByZXNvdXJjZS0+YWN0aW9uc19udW07DQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiAtCWlmIChpID49IE1MWDVfTU9ESUZZX05VTSkNCj4gPiA+ID4gPiArCWlm IChpID49IE1MWDVfTUFYX01PRElGWV9OVU0pDQo+ID4gPiA+ID4gIAkJcmV0dXJuIHJ0ZV9mbG93 X2Vycm9yX3NldChlcnJvciwgRUlOVkFMLA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gUlRFX0ZMT1df RVJST1JfVFlQRV9BQ1RJT04sIE5VTEwsDQo+ID4gPiA+ID4gIAkJCQkJICAidG9vIG1hbnkgaXRl bXMgdG8NCj4gPiA+ID4gPiBtb2RpZnkiKTsNCj4gPiA+DQo+ID4gPiBAQCAtOTE0LDEwICs5MTQs NiBAQA0KPiA+ID4gPiA+IGZsb3dfZHZfY29udmVydF9hY3Rpb25fc2V0X3JlZw0KPiA+ID4gPiA+ ICAJYWN0aW9uc1tpXS5kYXRhMSA9IHJ0ZV9jcHVfdG9fYmVfMzIoY29uZi0+ZGF0YSk7DQo+ID4g PiA+ID4gIAkrK2k7DQo+ID4gPiA+ID4gIAlyZXNvdXJjZS0+YWN0aW9uc19udW0gPSBpOw0KPiA+ ID4gPiA+IC0JaWYgKCFyZXNvdXJjZS0+YWN0aW9uc19udW0pDQo+ID4gPiA+ID4gLQkJcmV0dXJu IHJ0ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRUlOVkFMLA0KPiA+ID4gPiA+IC0NCj4gPiA+ID4g PiBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwgTlVMTCwNCj4gPiA+ID4gPiAtCQkJCQkgICJp bnZhbGlkIG1vZGlmaWNhdGlvbg0KPiA+ID4gPiA+IGZsb3cNCj4gPiA+ID4gPiBpdGVtIik7DQo+ ID4gPiA+ID4gIAlyZXR1cm4gMDsNCj4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g QEAgLTIyNTYsNyArMjI1Miw2IEBADQo+IGZsb3dfZHZfZW5jYXBfZGVjYXBfcmVzb3VyY2VfcmVn aXN0ZXINCj4gPiA+ID4gPiAgCQlkb21haW4gPSBzaC0+cnhfZG9tYWluOw0KPiA+ID4gPiA+ICAJ ZWxzZQ0KPiA+ID4gPiA+ICAJCWRvbWFpbiA9IHNoLT50eF9kb21haW47DQo+ID4gPiA+ID4gLQ0K PiA+ID4gPiA+ICAJLyogTG9va3VwIGEgbWF0Y2hpbmcgcmVzb3VyY2UgZnJvbSBjYWNoZS4gKi8N Cj4gPiA+ID4gPiAgCUxJU1RfRk9SRUFDSChjYWNoZV9yZXNvdXJjZSwgJnNoLT5lbmNhcHNfZGVj YXBzLCBuZXh0KQ0KPiA+ID4gPiA+IHsNCj4gPiA+ID4gPiAgCQlpZiAocmVzb3VyY2UtPnJlZm9y bWF0X3R5cGUgPT0gY2FjaGVfcmVzb3VyY2UtDQo+ID4gPiA+ID4gPiByZWZvcm1hdF90eXBlICYm IEBAIC0zMzY3LDIxICszMzYyLDI3IEBADQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBmbG93X2R2X3Zh bGlkYXRlX2FjdGlvbl9wb3J0X2lkKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+ID4gPiA+ ICAgKg0KPiA+ID4gPiA+ICAgKiBAcGFyYW0gZGV2DQo+ID4gPiA+ID4gICAqICAgUG9pbnRlciB0 byBydGVfZXRoX2RldiBzdHJ1Y3R1cmUuDQo+ID4gPiA+ID4gKyAqIEBwYXJhbSBmbGFncw0KPiA+ ID4gPiA+ICsgKiAgIEZsYWdzIGJpdHMgdG8gY2hlY2sgaWYgcm9vdCBsZXZlbC4NCj4gPiA+ID4g PiAgICoNCj4gPiA+ID4gPiAgICogQHJldHVybg0KPiA+ID4gPiA+ICAgKiAgIE1heCBudW1iZXIg b2YgbW9kaWZ5IGhlYWRlciBhY3Rpb25zIGRldmljZSBjYW4gc3VwcG9ydC4NCj4gPiA+ID4gPiAg ICovDQo+ID4gPiA+ID4gIHN0YXRpYyB1bnNpZ25lZCBpbnQNCj4gPiA+ID4gPiAtZmxvd19kdl9t b2RpZnlfaGRyX2FjdGlvbl9tYXgoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+ID4gPiA+ID4g K2Zsb3dfZHZfbW9kaWZ5X2hkcl9hY3Rpb25fbWF4KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0K PiA+ID4NCj4gPiA+IHVpbnQ2NF90DQo+ID4gPiA+ID4gZmxhZ3MpDQo+ID4gPiA+ID4gIHsNCj4g PiA+ID4gPiAgCS8qDQo+ID4gPiA+ID4gIAkgKiBUaGVyZSdzIG5vIHdheSB0byBkaXJlY3RseSBx dWVyeSB0aGUgbWF4IGNhcC4NCj4gPiA+ID4gPiBBbHRob3VnaCBpdA0KPiA+ID4NCj4gPiA+IGhh cw0KPiA+ID4gPiA+IHRvIGJlDQo+ID4gPiA+ID4gIAkgKiBhY3F1cmllZCBieSBpdGVyYXRpdmUg dHJpYWwsIGl0IGlzIGEgc2FmZSBhc3N1bXB0aW9uDQo+ID4gPiA+ID4gdGhhdCBtb3JlDQo+ID4g PiA+ID4gIAkgKiBhY3Rpb25zIGFyZSBzdXBwb3J0ZWQgYnkgRlcgaWYgZXh0ZW5zaXZlIG1ldGFk YXRhDQo+ID4gPiA+ID4gcmVnaXN0ZXINCj4gPiA+DQo+ID4gPiBpcw0KPiA+ID4gPiA+IC0JICog c3VwcG9ydGVkLg0KPiA+ID4gPiA+ICsJICogc3VwcG9ydGVkLiAoT25seSBpbiB0aGUgcm9vdCB0 YWJsZSkNCj4gPiA+ID4gPiAgCSAqLw0KPiA+ID4gPiA+IC0JcmV0dXJuIG1seDVfZmxvd19leHRf bXJlZ19zdXBwb3J0ZWQoZGV2KSA/DQo+ID4gPiA+ID4gTUxYNV9NT0RJRllfTlVNIDoNCj4gPiA+ ID4gPiAtDQo+ID4gPiA+ID4gTUxYNV9NT0RJRllfTlVNX05PX01SRUc7DQo+ID4gPiA+ID4gKwlp ZiAoIShmbGFncyAmIE1MWDVEVl9EUl9BQ1RJT05fRkxBR1NfUk9PVF9MRVZFTCkpDQo+ID4gPiA+ ID4gKwkJcmV0dXJuIE1MWDVfTUFYX01PRElGWV9OVU07DQo+ID4gPiA+ID4gKwllbHNlDQo+ID4g PiA+ID4gKwkJcmV0dXJuIG1seDVfZmxvd19leHRfbXJlZ19zdXBwb3J0ZWQoZGV2KSA/DQo+ID4g PiA+ID4gKw0KPiA+ID4gPiA+IAlNTFg1X1JPT1RfVEJMX01PRElGWV9OVU0gOg0KPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiAJTUxYNV9ST09UX1RCTF9NT0RJRllfTlVNX05PX01SRUc7DQo+ID4gPiA+ ID4gIH0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAvKioNCj4gPiA+ID4gPiBAQCAtMzQ3Miw4ICsz NDczLDEyIEBADQo+IGZsb3dfZHZfbW9kaWZ5X2hkcl9yZXNvdXJjZV9yZWdpc3Rlcg0KPiA+ID4g PiA+ICAJc3RydWN0IG1seDVfaWJ2X3NoYXJlZCAqc2ggPSBwcml2LT5zaDsNCj4gPiA+ID4gPiAg CXN0cnVjdCBtbHg1X2Zsb3dfZHZfbW9kaWZ5X2hkcl9yZXNvdXJjZQ0KPiA+ID4gPiA+ICpjYWNo ZV9yZXNvdXJjZTsNCj4gPiA+ID4gPiAgCXN0cnVjdCBtbHg1ZHZfZHJfZG9tYWluICpuczsNCj4g PiA+ID4gPiArCXVpbnQzMl90IGFjdGlvbnNfbGVuOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLQlp ZiAocmVzb3VyY2UtPmFjdGlvbnNfbnVtID4NCj4gPiA+ID4gPiBmbG93X2R2X21vZGlmeV9oZHJf YWN0aW9uX21heChkZXYpKQ0KPiA+ID4gPiA+ICsJcmVzb3VyY2UtPmZsYWdzID0NCj4gPiA+ID4g PiArCQlkZXZfZmxvdy0+Z3JvdXAgPyAwIDoNCj4gPiA+ID4gPiBNTFg1RFZfRFJfQUNUSU9OX0ZM QUdTX1JPT1RfTEVWRUw7DQo+ID4gPiA+ID4gKwlpZiAocmVzb3VyY2UtPmFjdGlvbnNfbnVtID4N Cj4gPiA+ID4gPiBmbG93X2R2X21vZGlmeV9oZHJfYWN0aW9uX21heChkZXYsDQo+ID4gPiA+ID4g KwkJCQkgICAgcmVzb3VyY2UtPmZsYWdzKSkNCj4gPiA+ID4gPiAgCQlyZXR1cm4gcnRlX2Zsb3df ZXJyb3Jfc2V0KGVycm9yLCBFT1ZFUkZMT1csDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBSVEVfRkxP V19FUlJPUl9UWVBFX0FDVElPTiwgTlVMTCwNCj4gPiA+ID4gPiAgCQkJCQkgICJ0b28gbWFueSBt b2RpZnkNCj4gPiA+ID4gPiBoZWFkZXINCj4gPiA+ID4gPiBpdGVtcyIpOyBAQCAtMzQ4MywxNyAr MzQ4OCwxNSBAQA0KPiA+ID4gPiA+IGZsb3dfZHZfbW9kaWZ5X2hkcl9yZXNvdXJjZV9yZWdpc3Rl cg0KPiA+ID4gPiA+ICAJCW5zID0gc2gtPnR4X2RvbWFpbjsNCj4gPiA+ID4gPiAgCWVsc2UNCj4g PiA+ID4gPiAgCQlucyA9IHNoLT5yeF9kb21haW47DQo+ID4gPiA+ID4gLQlyZXNvdXJjZS0+Zmxh Z3MgPQ0KPiA+ID4gPiA+IC0JCWRldl9mbG93LT5ncm91cCA/IDAgOg0KPiA+ID4gPiA+IE1MWDVE Vl9EUl9BQ1RJT05fRkxBR1NfUk9PVF9MRVZFTDsNCj4gPiA+ID4gPiAgCS8qIExvb2t1cCBhIG1h dGNoaW5nIHJlc291cmNlIGZyb20gY2FjaGUuICovDQo+ID4gPiA+ID4gKwlhY3Rpb25zX2xlbiA9 IHJlc291cmNlLT5hY3Rpb25zX251bSAqDQo+IHNpemVvZihyZXNvdXJjZS0NCj4gPiA+ID4gPiA+ IGFjdGlvbnNbMF0pOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gIAlMSVNUX0ZPUkVBQ0goY2FjaGVf cmVzb3VyY2UsICZzaC0+bW9kaWZ5X2NtZHMsIG5leHQpIHsNCj4gPiA+ID4gPiAgCQlpZiAocmVz b3VyY2UtPmZ0X3R5cGUgPT0gY2FjaGVfcmVzb3VyY2UtDQo+ID4gPiA+ID4gPmZ0X3R5cGUgJiYN Cj4gPiA+ID4gPiAgCQkgICAgcmVzb3VyY2UtPmFjdGlvbnNfbnVtID09IGNhY2hlX3Jlc291cmNl LQ0KPiA+ID4gPiA+ID4gYWN0aW9uc19udW0gJiYNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAJCSAg ICByZXNvdXJjZS0+ZmxhZ3MgPT0gY2FjaGVfcmVzb3VyY2UtPmZsYWdzICYmDQo+ID4gPiA+ID4g IAkJICAgICFtZW1jbXAoKGNvbnN0IHZvaWQgKilyZXNvdXJjZS0+YWN0aW9ucywNCj4gPiA+ID4g PiAgCQkJICAgIChjb25zdCB2b2lkICopY2FjaGVfcmVzb3VyY2UtDQo+ID4gPiA+ID4gPmFjdGlv bnMsDQo+ID4gPiA+ID4gLQkJCSAgICAocmVzb3VyY2UtPmFjdGlvbnNfbnVtICoNCj4gPiA+ID4g PiAtCQkJCQkgICAgc2l6ZW9mKHJlc291cmNlLQ0KPiA+ID4gPiA+ID4gYWN0aW9uc1swXSkpKSkg ew0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gKwkJCSAgICBhY3Rpb25zX2xlbikpIHsNCj4gPiA+ID4g PiAgCQkJRFJWX0xPRyhERUJVRywgIm1vZGlmeS1oZWFkZXINCj4gPiA+ID4gPiByZXNvdXJjZSAl cDogcmVmY250ICVkKysiLA0KPiA+ID4gPiA+ICAJCQkJKHZvaWQgKiljYWNoZV9yZXNvdXJjZSwN Cj4gPiA+ID4gPiAgCQkJCXJ0ZV9hdG9taWMzMl9yZWFkKCZjYWNoZV9yZXNvdXINCj4gPiA+ID4g PiBjZS0NCj4gPiA+ID4gPiA+IHJlZmNudCkpOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQEAgLTM1 MDMsMTggKzM1MDYsMTggQEANCj4gPiA+DQo+ID4gPiBmbG93X2R2X21vZGlmeV9oZHJfcmVzb3Vy Y2VfcmVnaXN0ZXINCj4gPiA+ID4gPiAgCQl9DQo+ID4gPiA+ID4gIAl9DQo+ID4gPiA+ID4gIAkv KiBSZWdpc3RlciBuZXcgbW9kaWZ5LWhlYWRlciByZXNvdXJjZS4gKi8NCj4gPiA+ID4gPiAtCWNh Y2hlX3Jlc291cmNlID0gcnRlX2NhbGxvYyhfX2Z1bmNfXywgMSwNCj4gPiA+ID4gPiBzaXplb2Yo KmNhY2hlX3Jlc291cmNlKSwgMCk7DQo+ID4gPiA+ID4gKwljYWNoZV9yZXNvdXJjZSA9IHJ0ZV9j YWxsb2MoX19mdW5jX18sIDEsDQo+ID4gPiA+ID4gKwkJCQkgICAgc2l6ZW9mKCpjYWNoZV9yZXNv dXJjZSkgKw0KPiA+ID4gPiA+IGFjdGlvbnNfbGVuLCAwKTsNCj4gPiA+ID4gPiAgCWlmICghY2Fj aGVfcmVzb3VyY2UpDQo+ID4gPiA+ID4gIAkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldChlcnJv ciwgRU5PTUVNLA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gUlRFX0ZMT1dfRVJST1JfVFlQRV9VTlNQ RUNJRklFRCwgTlVMTCwNCj4gPiA+ID4gPiAgCQkJCQkgICJjYW5ub3QgYWxsb2NhdGUNCj4gPiA+ ID4gPiByZXNvdXJjZQ0KPiA+ID4gPiA+IG1lbW9yeSIpOw0KPiA+ID4gPiA+ICAJKmNhY2hlX3Jl c291cmNlID0gKnJlc291cmNlOw0KPiA+ID4gPiA+ICsJcnRlX21lbWNweShjYWNoZV9yZXNvdXJj ZS0+YWN0aW9ucywgcmVzb3VyY2UtDQo+ID5hY3Rpb25zLA0KPiA+ID4gPiA+IGFjdGlvbnNfbGVu KTsNCj4gPiA+ID4gPiAgCWNhY2hlX3Jlc291cmNlLT52ZXJic19hY3Rpb24gPQ0KPiA+ID4gPiA+ ICAJCW1seDVfZ2x1ZS0+ZHZfY3JlYXRlX2Zsb3dfYWN0aW9uX21vZGlmeV9oZWFkZXINCj4gPiA+ ID4gPiAtCQkJCQkoc2gtPmN0eCwNCj4gPiA+ID4gPiBjYWNoZV9yZXNvdXJjZS0NCj4gPiA+ID4g PiA+IGZ0X3R5cGUsDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAtCQkJCQkgbnMsIGNhY2hlX3Jlc291 cmNlLQ0KPiA+ID4gPiA+ID5mbGFncywNCj4gPiA+ID4gPiAtCQkJCQkgY2FjaGVfcmVzb3VyY2Ut DQo+ID4gPiA+ID4gPmFjdGlvbnNfbnVtDQo+ID4gPiA+ID4gKg0KPiA+ID4gPiA+IC0JCQkJCSBz aXplb2YoY2FjaGVfcmVzb3VyY2UtDQo+ID4gPiA+ID4gPiBhY3Rpb25zWzBdKSwNCj4gPiA+ID4g Pg0KPiA+ID4gPiA+ICsJCQkJCShzaC0+Y3R4LA0KPiA+ID4gPiA+IGNhY2hlX3Jlc291cmNlLQ0K PiA+ID4gPiA+ID4gZnRfdHlwZSwgbnMsDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArCQkJCQkgY2Fj aGVfcmVzb3VyY2UtPmZsYWdzLA0KPiA+ID4gPiA+IGFjdGlvbnNfbGVuLA0KPiA+ID4gPiA+ICAJ CQkJCSAodWludDY0X3QNCj4gPiA+ID4gPiAqKWNhY2hlX3Jlc291cmNlLQ0KPiA+ID4gPiA+ID4g YWN0aW9ucyk7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgCWlmICghY2FjaGVfcmVzb3VyY2UtPnZl cmJzX2FjdGlvbikgew0KPiA+ID4gPiA+ICAJCXJ0ZV9mcmVlKGNhY2hlX3Jlc291cmNlKTsNCj4g PiA+ID4gPiBAQCAtNjY3MCwxMCArNjY3MywxMyBAQCBfX2Zsb3dfZHZfdHJhbnNsYXRlKHN0cnVj dA0KPiA+ID4NCj4gPiA+IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gPiA+ID4gIAl9Ow0KPiA+ID4g PiA+ICAJaW50IGFjdGlvbnNfbiA9IDA7DQo+ID4gPiA+ID4gIAlib29sIGFjdGlvbnNfZW5kID0g ZmFsc2U7DQo+ID4gPiA+ID4gLQlzdHJ1Y3QgbWx4NV9mbG93X2R2X21vZGlmeV9oZHJfcmVzb3Vy Y2UgbWhkcl9yZXMgPQ0KPiB7DQo+ID4gPiA+ID4gLQkJLmZ0X3R5cGUgPSBhdHRyLT5lZ3Jlc3Mg Pw0KPiA+ID4gPiA+IE1MWDVEVl9GTE9XX1RBQkxFX1RZUEVfTklDX1RYIDoNCj4gPiA+ID4gPiAt DQo+ID4gPiA+ID4gTUxYNURWX0ZMT1dfVEFCTEVfVFlQRV9OSUNfUlgNCj4gPiA+ID4gPiAtCX07 DQo+ID4gPiA+ID4gKwl1bmlvbiB7DQo+ID4gPiA+ID4gKwkJc3RydWN0IG1seDVfZmxvd19kdl9t b2RpZnlfaGRyX3Jlc291cmNlIHJlczsNCj4gPiA+ID4gPiArCQl1aW50OF90IGxlbltzaXplb2Yo c3RydWN0DQo+ID4gPiA+ID4gbWx4NV9mbG93X2R2X21vZGlmeV9oZHJfcmVzb3VyY2UpICsNCj4g PiA+ID4gPiArCQkJICAgIHNpemVvZihzdHJ1Y3QNCj4gPiA+ID4gPiBtbHg1X21vZGlmaWNhdGlv bl9jbWQpICoNCj4gPiA+ID4gPiArCQkJICAgIChNTFg1X01BWF9NT0RJRllfTlVNICsgMSldOw0K PiA+ID4gPiA+ICsJfSBtaGRyX2R1bW15Ow0KPiA+ID4gPiA+ICsJc3RydWN0IG1seDVfZmxvd19k dl9tb2RpZnlfaGRyX3Jlc291cmNlICptaGRyX3Jlcw0KPiA9DQo+ID4gPiA+ID4gJm1oZHJfZHVt bXkucmVzOw0KPiA+ID4gPiA+ICAJdW5pb24gZmxvd19kdl9hdHRyIGZsb3dfYXR0ciA9IHsgLmF0 dHIgPSAwIH07DQo+ID4gPiA+ID4gIAl1aW50MzJfdCB0YWdfYmU7DQo+ID4gPiA+ID4gIAl1bmlv biBtbHg1X2Zsb3dfdGJsX2tleSB0Ymxfa2V5Ow0KPiA+ID4gPiA+IEBAIC02Njg1LDE1ICs2Njkx LDE5IEBAIF9fZmxvd19kdl90cmFuc2xhdGUoc3RydWN0DQo+ID4gPg0KPiA+ID4gcnRlX2V0aF9k ZXYgKmRldiwNCj4gPiA+ID4gPiAgCXVpbnQzMl90IHRhYmxlOw0KPiA+ID4gPiA+ICAJaW50IHJl dCA9IDA7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiArCW1oZHJfcmVzLT5mdF90eXBlID0gYXR0ci0+ ZWdyZXNzID8NCj4gPiA+ID4gPiBNTFg1RFZfRkxPV19UQUJMRV9UWVBFX05JQ19UWCA6DQo+ID4g PiA+ID4gKw0KPiA+ID4gPiA+IE1MWDVEVl9GTE9XX1RBQkxFX1RZUEVfTklDX1JYOw0KPiA+ID4g PiA+ICAJcmV0ID0gbWx4NV9mbG93X2dyb3VwX3RvX3RhYmxlKGF0dHIsIGRldl9mbG93LQ0KPiA+ ID4gPiA+ID5leHRlcm5hbCwgYXR0ci0NCj4gPiA+ID4gPiA+IGdyb3VwLA0KPiA+ID4gPiA+DQo+ ID4gPiA+ID4gIAkJCQkgICAgICAgJnRhYmxlLCBlcnJvcik7DQo+ID4gPiA+ID4gIAlpZiAocmV0 KQ0KPiA+ID4gPiA+ICAJCXJldHVybiByZXQ7DQo+ID4gPiA+ID4gIAlkZXZfZmxvdy0+Z3JvdXAg PSB0YWJsZTsNCj4gPiA+ID4gPiAgCWlmIChhdHRyLT50cmFuc2ZlcikNCj4gPiA+ID4gPiAtCQlt aGRyX3Jlcy5mdF90eXBlID0NCj4gTUxYNURWX0ZMT1dfVEFCTEVfVFlQRV9GREI7DQo+ID4gPiA+ ID4gKwkJbWhkcl9yZXMtPmZ0X3R5cGUgPQ0KPiBNTFg1RFZfRkxPV19UQUJMRV9UWVBFX0ZEQjsN Cj4gPiA+ID4gPiAgCWlmIChwcmlvcml0eSA9PSBNTFg1X0ZMT1dfUFJJT19SU1ZEKQ0KPiA+ID4g PiA+ICAJCXByaW9yaXR5ID0gZGV2X2NvbmYtPmZsb3dfcHJpbyAtIDE7DQo+ID4gPiA+ID4gKwkv KiBudW1iZXIgb2YgYWN0aW9ucyBtdXN0IGJlIHNldCB0byAwIGluIGNhc2Ugb2YgZGlydHkNCj4g PiA+ID4gPiBzdGFjay4NCj4gPiA+ID4gPiAqLw0KPiA+ID4gPiA+ICsJbWhkcl9yZXMtPmFjdGlv bnNfbnVtID0gMDsNCj4gPiA+ID4gPiAgCWZvciAoOyAhYWN0aW9uc19lbmQgOyBhY3Rpb25zKysp IHsNCj4gPiA+ID4gPiAgCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3F1ZXVlICpxdWV1 ZTsNCj4gPiA+ID4gPiAgCQljb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3JzcyAqcnNzOyBA QA0KPiA+ID4gPiA+IC02NzMxLDcNCj4gPiA+ID4gPiArNjc0MSw3IEBAIF9fZmxvd19kdl90cmFu c2xhdGUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gPiA+ID4gIAkJCQl9Ow0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gIAkJCQlpZg0KPiA+ID4gPiA+IChmbG93X2R2X2NvbnZlcnRfYWN0aW9u X21hcmsoZGV2LA0KPiA+ID4NCj4gPiA+ICZtYXJrLA0KPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiAJ Jm1oZHJfcmVzLA0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiAJbWhkcl9yZXMsDQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiBlcnJvcikpDQo+ID4gPiA+ID4gIAkJCQkJcmV0dXJuIC1ydGVfZXJybm87DQo+ ID4gPiA+ID4gIAkJCQlhY3Rpb25fZmxhZ3MgfD0NCj4gPiA+ID4gPiBNTFg1X0ZMT1dfQUNUSU9O X01BUktfRVhUOyBAQCAtNjc1Myw3ICs2NzYzLDcgQEANCj4gPiA+ID4gPiBfX2Zsb3dfZHZfdHJh bnNsYXRlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+ID4gPiA+ICAJCQkJCQlhY3Rpb25z LT5jb25mOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gIAkJCQlpZg0KPiA+ID4gPiA+IChmbG93X2R2 X2NvbnZlcnRfYWN0aW9uX21hcmsoZGV2LA0KPiA+ID4NCj4gPiA+IG1hcmssDQo+ID4gPiA+ID4g LQ0KPiA+ID4gPiA+IAkmbWhkcl9yZXMsDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+IAltaGRyX3Jl cywNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IGVycm9yKSkNCj4gPiA+ID4gPiAgCQkJCQlyZXR1cm4g LXJ0ZV9lcnJubzsNCj4gPiA+ID4gPiAgCQkJCWFjdGlvbl9mbGFncyB8PQ0KPiA+ID4gPiA+IE1M WDVfRkxPV19BQ1RJT05fTUFSS19FWFQ7IEBAIC02Nzc0LDcgKzY3ODQsNyBAQA0KPiA+ID4gPiA+ IF9fZmxvd19kdl90cmFuc2xhdGUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gPiA+ID4g IAkJCWJyZWFrOw0KPiA+ID4gPiA+ICAJCWNhc2UgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfU0VUX01F VEE6DQo+ID4gPiA+ID4gIAkJCWlmIChmbG93X2R2X2NvbnZlcnRfYWN0aW9uX3NldF9tZXRhDQo+ ID4gPiA+ID4gLQkJCQkoZGV2LCAmbWhkcl9yZXMsIGF0dHIsDQo+ID4gPiA+ID4gKwkJCQkoZGV2 LCBtaGRyX3JlcywgYXR0ciwNCj4gPiA+ID4gPiAgCQkJCSAoY29uc3Qgc3RydWN0DQo+ID4gPiA+ ID4gcnRlX2Zsb3dfYWN0aW9uX3NldF9tZXRhICopDQo+ID4gPiA+ID4gIAkJCQkgIGFjdGlvbnMt PmNvbmYsIGVycm9yKSkNCj4gPiA+ID4gPiAgCQkJCXJldHVybiAtcnRlX2Vycm5vOw0KPiA+ID4g PiA+IEBAIC02NzgyLDcgKzY3OTIsNyBAQCBfX2Zsb3dfZHZfdHJhbnNsYXRlKHN0cnVjdA0KPiBy dGVfZXRoX2Rldg0KPiA+ID4NCj4gPiA+ICpkZXYsDQo+ID4gPiA+ID4gIAkJCWJyZWFrOw0KPiA+ ID4gPiA+ICAJCWNhc2UgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfU0VUX1RBRzoNCj4gPiA+ID4gPiAg CQkJaWYgKGZsb3dfZHZfY29udmVydF9hY3Rpb25fc2V0X3RhZw0KPiA+ID4gPiA+IC0JCQkJKGRl diwgJm1oZHJfcmVzLA0KPiA+ID4gPiA+ICsJCQkJKGRldiwgbWhkcl9yZXMsDQo+ID4gPiA+ID4g IAkJCQkgKGNvbnN0IHN0cnVjdA0KPiA+ID4gPiA+IHJ0ZV9mbG93X2FjdGlvbl9zZXRfdGFnDQo+ ID4gPiA+ID4gKikNCj4gPiA+ID4gPiAgCQkJCSAgYWN0aW9ucy0+Y29uZiwgZXJyb3IpKQ0KPiA+ ID4gPiA+ICAJCQkJcmV0dXJuIC1ydGVfZXJybm87DQo+ID4gPiA+ID4gQEAgLTY4ODIsNyArNjg5 Miw3IEBAIGNudF9lcnI6DQo+ID4gPiA+ID4gIAkJCW1seDVfdXBkYXRlX3ZsYW5fdmlkX3BjcChh Y3Rpb25zLA0KPiA+ID4gPiA+ICZ2bGFuKTsNCj4gPiA+ID4gPiAgCQkJLyogSWYgbm8gVkxBTiBw dXNoIC0gdGhpcyBpcyBhIG1vZGlmeQ0KPiA+ID4gPiA+IGhlYWRlcg0KPiA+ID4NCj4gPiA+IGFj dGlvbiAqLw0KPiA+ID4gPiA+ICAJCQlpZg0KPiA+ID4gPiA+IChmbG93X2R2X2NvbnZlcnRfYWN0 aW9uX21vZGlmeV92bGFuX3ZpZA0KPiA+ID4gPiA+IC0JCQkJCQkoJm1oZHJfcmVzLA0KPiA+ID4g PiA+IGFjdGlvbnMsDQo+ID4gPiA+ID4gZXJyb3IpKQ0KPiA+ID4gPiA+ICsJCQkJCQkobWhkcl9y ZXMsDQo+ID4gPiA+ID4gYWN0aW9ucywNCj4gPiA+ID4gPiBlcnJvcikpDQo+ID4gPiA+ID4gIAkJ CQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ID4gPiAgCQkJYWN0aW9uX2ZsYWdzIHw9DQo+ID4g PiA+ID4gTUxYNV9GTE9XX0FDVElPTl9PRl9TRVRfVkxBTl9WSUQ7DQo+ID4gPiA+ID4gIAkJCWJy ZWFrOw0KPiA+ID4gPiA+IEBAIC02OTgxLDcgKzY5OTEsNyBAQCBjbnRfZXJyOg0KPiA+ID4gPiA+ ICAJCWNhc2UgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfU0VUX01BQ19TUkM6DQo+ID4gPiA+ID4gIAkJ Y2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfTUFDX0RTVDoNCj4gPiA+ID4gPiAgCQkJaWYg KGZsb3dfZHZfY29udmVydF9hY3Rpb25fbW9kaWZ5X21hYw0KPiA+ID4gPiA+IC0JCQkJCSgmbWhk cl9yZXMsIGFjdGlvbnMsDQo+ID4gPiA+ID4gZXJyb3IpKQ0KPiA+ID4gPiA+ICsJCQkJCShtaGRy X3JlcywgYWN0aW9ucywNCj4gPiA+ID4gPiBlcnJvcikpDQo+ID4gPiA+ID4gIAkJCQlyZXR1cm4g LXJ0ZV9lcnJubzsNCj4gPiA+ID4gPiAgCQkJYWN0aW9uX2ZsYWdzIHw9IGFjdGlvbnMtPnR5cGUg PT0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IAlSVEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfTUFDX1NS QyA/DQo+ID4gPiA+ID4gQEAgLTY5OTEsNyArNzAwMSw3IEBAIGNudF9lcnI6DQo+ID4gPiA+ID4g IAkJY2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfSVBWNF9TUkM6DQo+ID4gPiA+ID4gIAkJ Y2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfSVBWNF9EU1Q6DQo+ID4gPiA+ID4gIAkJCWlm IChmbG93X2R2X2NvbnZlcnRfYWN0aW9uX21vZGlmeV9pcHY0DQo+ID4gPiA+ID4gLQkJCQkJKCZt aGRyX3JlcywgYWN0aW9ucywNCj4gPiA+ID4gPiBlcnJvcikpDQo+ID4gPiA+ID4gKwkJCQkJKG1o ZHJfcmVzLCBhY3Rpb25zLA0KPiA+ID4gPiA+IGVycm9yKSkNCj4gPiA+ID4gPiAgCQkJCXJldHVy biAtcnRlX2Vycm5vOw0KPiA+ID4gPiA+ICAJCQlhY3Rpb25fZmxhZ3MgfD0gYWN0aW9ucy0+dHlw ZSA9PQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gCVJURV9GTE9XX0FDVElPTl9UWVBFX1NFVF9JUFY0 X1NSQyA/DQo+ID4gPiA+ID4gQEAgLTcwMDEsNyArNzAxMSw3IEBAIGNudF9lcnI6DQo+ID4gPiA+ ID4gIAkJY2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfSVBWNl9TUkM6DQo+ID4gPiA+ID4g IAkJY2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfSVBWNl9EU1Q6DQo+ID4gPiA+ID4gIAkJ CWlmIChmbG93X2R2X2NvbnZlcnRfYWN0aW9uX21vZGlmeV9pcHY2DQo+ID4gPiA+ID4gLQkJCQkJ KCZtaGRyX3JlcywgYWN0aW9ucywNCj4gPiA+ID4gPiBlcnJvcikpDQo+ID4gPiA+ID4gKwkJCQkJ KG1oZHJfcmVzLCBhY3Rpb25zLA0KPiA+ID4gPiA+IGVycm9yKSkNCj4gPiA+ID4gPiAgCQkJCXJl dHVybiAtcnRlX2Vycm5vOw0KPiA+ID4gPiA+ICAJCQlhY3Rpb25fZmxhZ3MgfD0gYWN0aW9ucy0+ dHlwZSA9PQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gCVJURV9GTE9XX0FDVElPTl9UWVBFX1NFVF9J UFY2X1NSQyA/DQo+ID4gPiA+ID4gQEAgLTcwMTEsNyArNzAyMSw3IEBAIGNudF9lcnI6DQo+ID4g PiA+ID4gIAkJY2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfVFBfU1JDOg0KPiA+ID4gPiA+ ICAJCWNhc2UgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfU0VUX1RQX0RTVDoNCj4gPiA+ID4gPiAgCQkJ aWYgKGZsb3dfZHZfY29udmVydF9hY3Rpb25fbW9kaWZ5X3RwDQo+ID4gPiA+ID4gLQkJCQkJKCZt aGRyX3JlcywgYWN0aW9ucywNCj4gPiA+ID4gPiBpdGVtcywNCj4gPiA+ID4gPiArCQkJCQkobWhk cl9yZXMsIGFjdGlvbnMsDQo+ID4gPiA+ID4gaXRlbXMsDQo+ID4gPiA+ID4gIAkJCQkJICZmbG93 X2F0dHIsIGVycm9yKSkNCj4gPiA+ID4gPiAgCQkJCXJldHVybiAtcnRlX2Vycm5vOw0KPiA+ID4g PiA+ICAJCQlhY3Rpb25fZmxhZ3MgfD0gYWN0aW9ucy0+dHlwZSA9PSBAQA0KPiA+ID4gPiA+IC03 MDIxLDEzDQo+ID4gPg0KPiA+ID4gKzcwMzEsMTMgQEANCj4gPiA+ID4gPiBjbnRfZXJyOg0KPiA+ ID4gPiA+ICAJCQlicmVhazsNCj4gPiA+ID4gPiAgCQljYXNlIFJURV9GTE9XX0FDVElPTl9UWVBF X0RFQ19UVEw6DQo+ID4gPiA+ID4gIAkJCWlmDQo+ID4gPiA+ID4gKGZsb3dfZHZfY29udmVydF9h Y3Rpb25fbW9kaWZ5X2RlY190dGwNCj4gPiA+ID4gPiAtCQkJCQkoJm1oZHJfcmVzLCBpdGVtcywN Cj4gPiA+ID4gPiAmZmxvd19hdHRyLA0KPiA+ID4gPiA+IGVycm9yKSkNCj4gPiA+ID4gPiArCQkJ CQkobWhkcl9yZXMsIGl0ZW1zLA0KPiA+ID4gPiA+ICZmbG93X2F0dHIsDQo+ID4gPiA+ID4gZXJy b3IpKQ0KPiA+ID4gPiA+ICAJCQkJcmV0dXJuIC1ydGVfZXJybm87DQo+ID4gPiA+ID4gIAkJCWFj dGlvbl9mbGFncyB8PQ0KPiA+ID4gPiA+IE1MWDVfRkxPV19BQ1RJT05fREVDX1RUTDsNCj4gPiA+ ID4gPiAgCQkJYnJlYWs7DQo+ID4gPiA+ID4gIAkJY2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9T RVRfVFRMOg0KPiA+ID4gPiA+ICAJCQlpZiAoZmxvd19kdl9jb252ZXJ0X2FjdGlvbl9tb2RpZnlf dHRsDQo+ID4gPiA+ID4gLQkJCQkJKCZtaGRyX3JlcywgYWN0aW9ucywNCj4gPiA+ID4gPiBpdGVt cywNCj4gPiA+ID4gPiArCQkJCQkobWhkcl9yZXMsIGFjdGlvbnMsDQo+ID4gPiA+ID4gaXRlbXMs DQo+ID4gPiA+ID4gIAkJCQkJICZmbG93X2F0dHIsIGVycm9yKSkNCj4gPiA+ID4gPiAgCQkJCXJl dHVybiAtcnRlX2Vycm5vOw0KPiA+ID4gPiA+ICAJCQlhY3Rpb25fZmxhZ3MgfD0NCj4gPiA+ID4g PiBNTFg1X0ZMT1dfQUNUSU9OX1NFVF9UVEw7DQo+ID4gPg0KPiA+ID4gQEAgLTcwMzUsNyArNzA0 NSw3IEBADQo+ID4gPiA+ID4gY250X2VycjoNCj4gPiA+ID4gPiAgCQljYXNlIFJURV9GTE9XX0FD VElPTl9UWVBFX0lOQ19UQ1BfU0VROg0KPiA+ID4gPiA+ICAJCWNhc2UgUlRFX0ZMT1dfQUNUSU9O X1RZUEVfREVDX1RDUF9TRVE6DQo+ID4gPiA+ID4gIAkJCWlmDQo+ID4gPiA+ID4gKGZsb3dfZHZf Y29udmVydF9hY3Rpb25fbW9kaWZ5X3RjcF9zZXENCj4gPiA+ID4gPiAtCQkJCQkoJm1oZHJfcmVz LCBhY3Rpb25zLA0KPiA+ID4gPiA+IGVycm9yKSkNCj4gPiA+ID4gPiArCQkJCQkobWhkcl9yZXMs IGFjdGlvbnMsDQo+ID4gPiA+ID4gZXJyb3IpKQ0KPiA+ID4gPiA+ICAJCQkJcmV0dXJuIC1ydGVf ZXJybm87DQo+ID4gPiA+ID4gIAkJCWFjdGlvbl9mbGFncyB8PSBhY3Rpb25zLT50eXBlID09DQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiAJUlRFX0ZMT1dfQUNUSU9OX1RZUEVfSU5DX1RDUF9TRVEgPw0K PiA+ID4gPiA+IEBAIC03MDQ2LDcgKzcwNTYsNyBAQCBjbnRfZXJyOg0KPiA+ID4gPiA+ICAJCWNh c2UgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfSU5DX1RDUF9BQ0s6DQo+ID4gPiA+ID4gIAkJY2FzZSBS VEVfRkxPV19BQ1RJT05fVFlQRV9ERUNfVENQX0FDSzoNCj4gPiA+ID4gPiAgCQkJaWYNCj4gPiA+ ID4gPiAoZmxvd19kdl9jb252ZXJ0X2FjdGlvbl9tb2RpZnlfdGNwX2Fjaw0KPiA+ID4gPiA+IC0J CQkJCSgmbWhkcl9yZXMsIGFjdGlvbnMsDQo+ID4gPiA+ID4gZXJyb3IpKQ0KPiA+ID4gPiA+ICsJ CQkJCShtaGRyX3JlcywgYWN0aW9ucywNCj4gPiA+ID4gPiBlcnJvcikpDQo+ID4gPiA+ID4gIAkJ CQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ID4gPiAgCQkJYWN0aW9uX2ZsYWdzIHw9IGFjdGlv bnMtPnR5cGUgPT0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IAlSVEVfRkxPV19BQ1RJT05fVFlQRV9J TkNfVENQX0FDSyA/DQo+ID4gPiA+ID4gQEAgLTcwNTUsMTMgKzcwNjUsMTMgQEAgY250X2VycjoN Cj4gPiA+ID4gPiAgCQkJYnJlYWs7DQo+ID4gPiA+ID4gIAkJY2FzZSBNTFg1X1JURV9GTE9XX0FD VElPTl9UWVBFX1RBRzoNCj4gPiA+ID4gPiAgCQkJaWYgKGZsb3dfZHZfY29udmVydF9hY3Rpb25f c2V0X3JlZw0KPiA+ID4gPiA+IC0JCQkJCSgmbWhkcl9yZXMsIGFjdGlvbnMsDQo+ID4gPiA+ID4g ZXJyb3IpKQ0KPiA+ID4gPiA+ICsJCQkJCShtaGRyX3JlcywgYWN0aW9ucywNCj4gPiA+ID4gPiBl cnJvcikpDQo+ID4gPiA+ID4gIAkJCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ID4gPiAgCQkJ YWN0aW9uX2ZsYWdzIHw9DQo+ID4gPiA+ID4gTUxYNV9GTE9XX0FDVElPTl9TRVRfVEFHOw0KPiA+ ID4gPiA+ICAJCQlicmVhazsNCj4gPiA+ID4gPiAgCQljYXNlIE1MWDVfUlRFX0ZMT1dfQUNUSU9O X1RZUEVfQ09QWV9NUkVHOg0KPiA+ID4gPiA+ICAJCQlpZiAoZmxvd19kdl9jb252ZXJ0X2FjdGlv bl9jb3B5X21yZWcNCj4gPiA+ID4gPiAtCQkJCQkoZGV2LCAmbWhkcl9yZXMsDQo+ID4gPiA+ID4g YWN0aW9ucywNCj4gPiA+ID4gPiBlcnJvcikpDQo+ID4gPiA+ID4gKwkJCQkJKGRldiwgbWhkcl9y ZXMsDQo+ID4gPiA+ID4gYWN0aW9ucywNCj4gPiA+ID4gPiBlcnJvcikpDQo+ID4gPiA+ID4gIAkJ CQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ID4gPiAgCQkJYWN0aW9uX2ZsYWdzIHw9DQo+ID4g PiA+ID4gTUxYNV9GTE9XX0FDVElPTl9TRVRfVEFHOw0KPiA+ID4gPiA+ICAJCQlicmVhazsNCj4g PiA+ID4gPiBAQCAtNzA4NiwxMCArNzA5NiwxMCBAQCBjbnRfZXJyOg0KPiA+ID4gPiA+ICAJCQli cmVhazsNCj4gPiA+ID4gPiAgCQljYXNlIFJURV9GTE9XX0FDVElPTl9UWVBFX0VORDoNCj4gPiA+ ID4gPiAgCQkJYWN0aW9uc19lbmQgPSB0cnVlOw0KPiA+ID4gPiA+IC0JCQlpZiAobWhkcl9yZXMu YWN0aW9uc19udW0pIHsNCj4gPiA+ID4gPiArCQkJaWYgKG1oZHJfcmVzLT5hY3Rpb25zX251bSkg ew0KPiA+ID4gPiA+ICAJCQkJLyogY3JlYXRlIG1vZGlmeSBhY3Rpb24gaWYNCj4gPiA+ID4gPiBu ZWVkZWQuICovDQo+ID4gPiA+ID4gIAkJCQlpZg0KPiA+ID4gPiA+IChmbG93X2R2X21vZGlmeV9o ZHJfcmVzb3VyY2VfcmVnaXN0ZXINCj4gPiA+ID4gPiAtCQkJCQkoZGV2LCAmbWhkcl9yZXMsDQo+ ID4gPiA+ID4gZGV2X2Zsb3csDQo+ID4gPiA+ID4gZXJyb3IpKQ0KPiA+ID4gPiA+ICsJCQkJCShk ZXYsIG1oZHJfcmVzLA0KPiA+ID4gPiA+IGRldl9mbG93LA0KPiA+ID4gPiA+IGVycm9yKSkNCj4g PiA+ID4gPiAgCQkJCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ID4gPiAgCQkJCWRldl9mbG93 LQ0KPiA+ID4gPiA+ID4gZHYuYWN0aW9uc1ttb2RpZnlfYWN0aW9uX3Bvc2l0aW9uXSA9DQo+ID4g PiA+ID4NCj4gPiA+ID4gPiAgCQkJCQlkZXZfZmxvdy0NCj4gPiA+ID4gPiA+ZHYubW9kaWZ5X2hk ci0NCj4gPiA+ID4gPiA+IHZlcmJzX2FjdGlvbjsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEBAIC03 MDk4LDcgKzcxMDgsNyBAQCBjbnRfZXJyOg0KPiA+ID4gPiA+ICAJCWRlZmF1bHQ6DQo+ID4gPiA+ ID4gIAkJCWJyZWFrOw0KPiA+ID4gPiA+ICAJCX0NCj4gPiA+ID4gPiAtCQlpZiAobWhkcl9yZXMu YWN0aW9uc19udW0gJiYNCj4gPiA+ID4gPiArCQlpZiAobWhkcl9yZXMtPmFjdGlvbnNfbnVtICYm DQo+ID4gPiA+ID4gIAkJICAgIG1vZGlmeV9hY3Rpb25fcG9zaXRpb24gPT0gVUlOVDMyX01BWCkN Cj4gPiA+ID4gPiAgCQkJbW9kaWZ5X2FjdGlvbl9wb3NpdGlvbiA9IGFjdGlvbnNfbisrOw0KPiA+ ID4gPiA+ICAJfQ0KPiA+ID4gPiA+IC0tDQo+ID4gPiA+ID4gMi4yMC4xDQo+ID4gPiA+ID4NCj4g PiA+ID4gPiAtLS0NCj4gPiA+ID4gPiAgIERpZmYgb2YgdGhlIGFwcGxpZWQgcGF0Y2ggdnMgdXBz dHJlYW0gY29tbWl0IChwbGVhc2UgZG91YmxlLQ0KPiA+ID4NCj4gPiA+IGNoZWNrDQo+ID4gPiA+ ID4gaWYNCj4gPiA+ID4gPiBub24tZW1wdHk6DQo+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gLS0t IC0JMjAyMC0wMi0xMSAxMToxNzo0Mi45OTQ4MDQ3OTAgKzAwMDANCj4gPiA+ID4gPiArKysgMDEy Mi1uZXQtbWx4NS1maXgtbW9kaWZ5LWFjdGlvbnMtc3VwcG9ydC1saW1pdGF0aW9uLnBhdGNoDQo+ ID4gPiA+ID4gMjAyMC0NCj4gPiA+ID4gPiAwMi0xMSAxMToxNzozOC42MTIwMDUzMTEgKzAwMDAN Cj4gPiA+ID4gPiBAQCAtMSw4ICsxLDEwIEBADQo+ID4gPiA+ID4gLUZyb20gMDI0ZTk1NzU5YzE2 YzY3ZWVlOTJlZmZmZWVlMzQ5MTVkYzk0YTljMCBNb24gU2VwDQo+IDE3DQo+ID4gPiA+ID4gMDA6 MDA6MDAgMjAwMQ0KPiA+ID4gPiA+ICtGcm9tIGUwZGU4MTZmOTQ1ZTU5OWE5MzMwODFjNTNiYjA2 MGQ1ZGQ0Y2JmMTMgTW9uDQo+IFNlcCAxNw0KPiA+ID4gPiA+IDAwOjAwOjAwIDIwMDENCj4gPiA+ ID4gPiAgRnJvbTogQmluZyBaaGFvIDwNCj4gPiA+ID4gPiBiaW5nekBtZWxsYW5veC5jb20NCj4g PiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gIERhdGU6IE1vbiwgMjAgSmFuIDIwMjAgMTE6 NDM6MDcgKzAyMDANCj4gPiA+ID4gPiAgU3ViamVjdDogW1BBVENIXSBuZXQvbWx4NTogZml4IG1v ZGlmeSBhY3Rpb25zIHN1cHBvcnQNCj4gPiA+ID4gPiBsaW1pdGF0aW9uDQo+ID4gPiA+ID4NCj4g PiA+ID4gPiArWyB1cHN0cmVhbSBjb21taXQNCj4gMDI0ZTk1NzU5YzE2YzY3ZWVlOTJlZmZmZWVl MzQ5MTVkYzk0YTljMCBdDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ICBJbiB0aGUgcm9vdCB0YWJs ZSwgdGhlcmUgaXMgc29tZSBsaW1pdGF0aW9uIG9mIHRvdGFsIG51bWJlciBvZg0KPiA+ID4gPiA+ IGhlYWRlciBtb2RpZnkgYWN0aW9ucywgMTYgb3IgOCBmb3IgZWFjaC4gQnV0IGluIG90aGVyIHRh YmxlcywNCj4gPiA+ID4gPiB0aGVyZQ0KPiA+ID4gPiA+IGlzIG5vICBzdWNoIHN0cmljdCBsaW1p dGF0aW9uLiBJbiBhbiBJUHY2IGNhc2UsIHRoZSBJUCBmaWVsZHMNCj4gPiA+ID4gPiBtb2RpZnlp bmcgQEANCj4gPiA+ID4gPiAtMTYsMjENCj4gPiA+ID4gPiArMTgsMjAgQEAgIG1heGltYWwgc3Vw cG9ydGVkIHZhbHVlLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gIEZpeGVzOiAwZTlkMDAwMjc2ODYg KCJuZXQvbWx4NTogY2hlY2sgbWF4aW11bSBtb2RpZnkNCj4gYWN0aW9ucw0KPiA+ID4gPiA+IG51 bWJlciIpDQo+ID4gPiA+ID4gLUNjOg0KPiA+ID4gPiA+IHN0YWJsZUBkcGRrLm9yZw0KPiA+ID4g PiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICBTaWduZWQtb2ZmLWJ5OiBCaW5n IFpoYW8gPA0KPiA+ID4gPiA+IGJpbmd6QG1lbGxhbm94LmNvbQ0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiAgQWNrZWQtYnk6IE9yaSBLYW0gPA0KPiA+ID4gPiA+IG9yaWthQG1lbGxh bm94LmNvbQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgQWNrZWQtYnk6IFZpYWNo ZXNsYXYgT3ZzaWllbmtvIDwNCj4gPiA+ID4gPiB2aWFjaGVzbGF2b0BtZWxsYW5veC5jb20NCj4g PiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gIC0tLQ0KPiA+ID4gPiA+ICAgZHJpdmVycy9u ZXQvbWx4NS9tbHg1X2Zsb3cuaCAgICB8ICAxNSArKystLQ0KPiA+ID4gPiA+IC0gZHJpdmVycy9u ZXQvbWx4NS9tbHg1X2Zsb3dfZHYuYyB8IDEwOCArKysrKysrKysrKysrKysrKy0tDQo+IC0tDQo+ ID4gPiA+ID4gLS0tDQo+ID4gPg0KPiA+ID4gLQ0KPiA+ID4gPiA+IC0tLS0NCj4gPiA+ID4gPiAt LS0NCj4gPiA+ID4gPiAtIDIgZmlsZXMgY2hhbmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgNTUgZGVs ZXRpb25zKC0pDQo+ID4gPiA+ID4gKyBkcml2ZXJzL25ldC9tbHg1L21seDVfZmxvd19kdi5jIHwg MTA0ICsrKysrKysrKysrKysrKysrLS0NCj4gLS0tLQ0KPiA+ID4NCj4gPiA+IC0tDQo+ID4gPiA+ ID4gLS0tDQo+ID4gPiA+ID4gLS0tLQ0KPiA+ID4gPiA+ICsgMiBmaWxlcyBjaGFuZ2VkLCA2NiBp bnNlcnRpb25zKCspLCA1MyBkZWxldGlvbnMoLSkNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICBkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuaA0KPiA+ID4gPiA+IGIvZHJpdmVy cy9uZXQvbWx4NS9tbHg1X2Zsb3cuaCAtaW5kZXgNCj4gYTFjN2I2NzQ4OC4uOTgzMjU0MjMyOA0K PiA+ID4gPiA+IDEwMDY0NA0KPiA+ID4gPiA+ICtpbmRleCBkYjEyNzE1ZWNjLi4xM2JlZDA4ZDc1 IDEwMDY0NA0KPiA+ID4gPiA+ICAtLS0gYS9kcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5oDQo+ ID4gPiA+ID4gICsrKyBiL2RyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmgNCj4gPiA+ID4gPiAt QEAgLTM5MiwxMSArMzkyLDE0IEBAIHN0cnVjdCBtbHg1X2Zsb3dfZHZfdGFnX3Jlc291cmNlIHsN Cj4gPiA+ID4gPiArQEAgLTM5MSwxMSArMzkxLDE0IEBAIHN0cnVjdCBtbHg1X2Zsb3dfZHZfdGFn X3Jlc291cmNlIHsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgLyoNCj4gPiA+ID4gPiAgICAqIE51 bWJlciBvZiBtb2RpZmljYXRpb24gY29tbWFuZHMuDQo+ID4gPiA+ID4gQEAgLTQ5LDcgKzUwLDcg QEANCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgLyogTW9kaWZ5IHJlc291cmNlIHN0cnVjdHVyZSAq Lw0KPiA+ID4gPiA+ICAgc3RydWN0IG1seDVfZmxvd19kdl9tb2RpZnlfaGRyX3Jlc291cmNlIHsg LUBAIC00MDcsOQ0KPiArNDEwLDkNCj4gPiA+DQo+ID4gPiBAQA0KPiA+ID4gPiA+IHN0cnVjdCBt bHg1X2Zsb3dfZHZfbW9kaWZ5X2hkcl9yZXNvdXJjZSB7DQo+ID4gPiA+ID4gK0BAIC00MDYsOSAr NDA5LDkgQEAgc3RydWN0DQo+ID4gPg0KPiA+ID4gbWx4NV9mbG93X2R2X21vZGlmeV9oZHJfcmVz b3VyY2Ugew0KPiA+ID4gPiA+ICAgCS8qKjwgVmVyYnMgbW9kaWZ5IGhlYWRlciBhY3Rpb24gb2Jq ZWN0LiAqLw0KPiA+ID4gPiA+ICAgCXVpbnQ4X3QgZnRfdHlwZTsgLyoqPCBGbG93IHRhYmxlIHR5 cGUsIFJ4IG9yIFR4LiAqLw0KPiA+ID4gPiA+ICAgCXVpbnQzMl90IGFjdGlvbnNfbnVtOyAvKio8 IE51bWJlciBvZiBtb2RpZmljYXRpb24NCj4gPiA+ID4gPiBhY3Rpb25zLg0KPiA+ID4gPiA+ICov IEBAIC02MiwxMCArNjMsMTAgQEANCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgLyogSnVtcCBhY3Rp b24gcmVzb3VyY2Ugc3RydWN0dXJlLiAqLyAgZGlmZiAtLWdpdA0KPiA+ID4gPiA+IGEvZHJpdmVy cy9uZXQvbWx4NS9tbHg1X2Zsb3dfZHYuYw0KPiA+ID4NCj4gPiA+IGIvZHJpdmVycy9uZXQvbWx4 NS9tbHg1X2Zsb3dfZHYuYw0KPiA+ID4gPiA+IC1pbmRleCAyNmRiYWFmMzI5Li41YTFiNDI2OThj DQo+ID4gPiA+ID4gMTAwNjQ0DQo+ID4gPiA+ID4gK2luZGV4IDhmNzc5MDk0MTkuLjc0ZDFhNjhl NGEgMTAwNjQ0DQo+ID4gPiA+ID4gIC0tLSBhL2RyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93X2R2 LmMgICsrKw0KPiA+ID4gPiA+IGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3dfZHYuYyAtQEAg LTM2Niw3ICszNjYsNyBAQA0KPiA+ID4gPiA+IGZsb3dfZHZfY29udmVydF9tb2RpZnlfYWN0aW9u KHN0cnVjdA0KPiA+ID4gPiA+IHJ0ZV9mbG93X2l0ZW0gKml0ZW0sDQo+ID4gPiA+ID4gK0BAIC0z NjMsNyArMzYzLDcgQEAgZmxvd19kdl9jb252ZXJ0X21vZGlmeV9hY3Rpb24oc3RydWN0DQo+ID4g PiA+ID4gcnRlX2Zsb3dfaXRlbQ0KPiA+ID4gPiA+ICsqaXRlbSwNCj4gPiA+ID4gPiAgIAkJdWlu dDMyX3QgbWFzazsNCj4gPiA+ID4gPiAgIAkJdWludDMyX3QgZGF0YTsNCj4gPiA+ID4gPg0KPiA+ ID4gPiA+IEBAIC03NCw3ICs3NSw3IEBADQo+ID4gPiA+ID4gICAJCQlyZXR1cm4gcnRlX2Zsb3df ZXJyb3Jfc2V0KGVycm9yLA0KPiA+ID4gPiA+IEVJTlZBTCwNCj4gPiA+ID4gPg0KPiBSVEVfRkxP V19FUlJPUl9UWVBFX0FDVElPTiwNCj4gPiA+ID4gPiBOVUxMLA0KPiA+ID4gPiA+ICAgCQkJCSAi dG9vIG1hbnkgaXRlbXMgdG8gbW9kaWZ5Iik7DQo+ID4gPiA+ID4gLUBAIC00MDcsMTEgKzQwNywx MSBAQA0KPiBmbG93X2R2X2NvbnZlcnRfbW9kaWZ5X2FjdGlvbihzdHJ1Y3QNCj4gPiA+ID4gPiBy dGVfZmxvd19pdGVtICppdGVtLA0KPiA+ID4gPiA+ICtAQCAtNDA0LDExICs0MDQsMTEgQEANCj4g Zmxvd19kdl9jb252ZXJ0X21vZGlmeV9hY3Rpb24oc3RydWN0DQo+ID4gPiA+ID4gK3J0ZV9mbG93 X2l0ZW0gKml0ZW0sDQo+ID4gPiA+ID4gICAJCSsraTsNCj4gPiA+ID4gPiAgIAkJKytmaWVsZDsN Cj4gPiA+ID4gPiAgIAl9IHdoaWxlIChmaWVsZC0+c2l6ZSk7DQo+ID4gPiA+ID4gQEAgLTg4LDcg Kzg5LDcgQEANCj4gPiA+ID4gPiAgIAlyZXR1cm4gMDsNCj4gPiA+ID4gPiAgIH0NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IC1AQCAtNTcyLDcgKzU3Miw3IEBADQo+IGZsb3dfZHZfY29udmVydF9hY3Rp b25fbW9kaWZ5X3ZsYW5fdmlkDQo+ID4gPiA+ID4gK0BAIC01NjksNyArNTY5LDcgQEANCj4gZmxv d19kdl9jb252ZXJ0X2FjdGlvbl9tb2RpZnlfdmxhbl92aWQNCj4gPiA+ID4gPiAgIAlzdHJ1Y3Qg bWx4NV9tb2RpZmljYXRpb25fY21kICphY3Rpb25zID0gJnJlc291cmNlLQ0KPiA+ID4gPiA+ID5h Y3Rpb25zW2ldOw0KPiA+ID4gPiA+ICAgCXN0cnVjdCBmaWVsZF9tb2RpZnlfaW5mbyAqZmllbGQg PQ0KPiA+ID4gPiA+IG1vZGlmeV92bGFuX291dF9maXJzdF92aWQ7DQo+ID4gPiA+ID4NCj4gPiA+ ID4gPiBAQCAtOTcsNyArOTgsNyBAQA0KPiA+ID4gPiA+ICAgCQlyZXR1cm4gcnRlX2Zsb3dfZXJy b3Jfc2V0KGVycm9yLCBFSU5WQUwsDQo+ID4gPiA+ID4gICAJCQkgUlRFX0ZMT1dfRVJST1JfVFlQ RV9BQ1RJT04sDQo+IE5VTEwsDQo+ID4gPiA+ID4gICAJCQkgInRvbyBtYW55IGl0ZW1zIHRvIG1v ZGlmeSIpOw0KPiA+ID4gPiA+IC1AQCAtOTA1LDcgKzkwNSw3IEBAIGZsb3dfZHZfY29udmVydF9h Y3Rpb25fc2V0X3JlZw0KPiA+ID4gPiA+ICtAQCAtOTAyLDcgKzkwMiw3IEBAIGZsb3dfZHZfY29u dmVydF9hY3Rpb25fc2V0X3JlZw0KPiA+ID4gPiA+ICAgCXN0cnVjdCBtbHg1X21vZGlmaWNhdGlv bl9jbWQgKmFjdGlvbnMgPSByZXNvdXJjZS0NCj4gPiA+ID4gPiA+YWN0aW9uczsNCj4gPiA+ID4g PiAgIAl1aW50MzJfdCBpID0gcmVzb3VyY2UtPmFjdGlvbnNfbnVtOw0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gQEAgLTEwNiw3ICsxMDcsNyBAQA0KPiA+ID4gPiA+ICAgCQlyZXR1cm4gcnRlX2Zsb3df ZXJyb3Jfc2V0KGVycm9yLCBFSU5WQUwsDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBSVEVfRkxPV19F UlJPUl9UWVBFX0FDVElPTiwgTlVMTCwNCj4gPiA+ID4gPiAgIAkJCQkJICAidG9vIG1hbnkgaXRl bXMgdG8NCj4gPiA+ID4gPiBtb2RpZnkiKTsgLQ0KPiA+ID4NCj4gPiA+IEBAIC05MTcsMTAgKzkx Nyw2IEBADQo+ID4gPiA+ID4gZmxvd19kdl9jb252ZXJ0X2FjdGlvbl9zZXRfcmVnDQo+ID4gPiA+ ID4gK0BAIC05MTQsMTAgKzkxNCw2IEBAIGZsb3dfZHZfY29udmVydF9hY3Rpb25fc2V0X3JlZw0K PiA+ID4gPiA+ICAgCWFjdGlvbnNbaV0uZGF0YTEgPSBydGVfY3B1X3RvX2JlXzMyKGNvbmYtPmRh dGEpOw0KPiA+ID4gPiA+ICAgCSsraTsNCj4gPiA+ID4gPiAgIAlyZXNvdXJjZS0+YWN0aW9uc19u dW0gPSBpOw0KPiA+ID4gPiA+IEBAIC0xMTcsNyArMTE4LDcgQEANCj4gPiA+ID4gPiAgIAlyZXR1 cm4gMDsNCj4gPiA+ID4gPiAgIH0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IC1AQCAtMjM4NSw3ICsy MzgxLDYgQEANCj4gPiA+DQo+ID4gPiBmbG93X2R2X2VuY2FwX2RlY2FwX3Jlc291cmNlX3JlZ2lz dGVyDQo+ID4gPiA+ID4gK0BAIC0yMjU2LDcgKzIyNTIsNiBAQA0KPiA+ID4NCj4gPiA+IGZsb3df ZHZfZW5jYXBfZGVjYXBfcmVzb3VyY2VfcmVnaXN0ZXINCj4gPiA+ID4gPiAgIAkJZG9tYWluID0g c2gtPnJ4X2RvbWFpbjsNCj4gPiA+ID4gPiAgIAllbHNlDQo+ID4gPiA+ID4gICAJCWRvbWFpbiA9 IHNoLT50eF9kb21haW47DQo+ID4gPiA+ID4gQEAgLTEyNSw3ICsxMjYsNyBAQA0KPiA+ID4gPiA+ ICAgCS8qIExvb2t1cCBhIG1hdGNoaW5nIHJlc291cmNlIGZyb20gY2FjaGUuICovDQo+ID4gPiA+ ID4gICAJTElTVF9GT1JFQUNIKGNhY2hlX3Jlc291cmNlLCAmc2gtPmVuY2Fwc19kZWNhcHMsDQo+ IG5leHQpDQo+ID4gPiA+ID4gew0KPiA+ID4gPiA+ICAgCQlpZiAocmVzb3VyY2UtPnJlZm9ybWF0 X3R5cGUgPT0NCj4gY2FjaGVfcmVzb3VyY2UtDQo+ID4gPiA+ID4gPiByZWZvcm1hdF90eXBlICYm IC1AQCAtMzQ5NiwyMSArMzQ5MSwyNyBAQA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gZmxvd19kdl92 YWxpZGF0ZV9hY3Rpb25fcG9ydF9pZChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gPiA+ID4g PiArQEAgLTMzNjcsMjEgKzMzNjIsMjcgQEANCj4gPiA+DQo+ID4gPiBmbG93X2R2X3ZhbGlkYXRl X2FjdGlvbl9wb3J0X2lkKHN0cnVjdA0KPiA+ID4gPiA+ICtydGVfZXRoX2RldiAqZGV2LA0KPiA+ ID4gPiA+ICAgICoNCj4gPiA+ID4gPiAgICAqIEBwYXJhbSBkZXYNCj4gPiA+ID4gPiAgICAqICAg UG9pbnRlciB0byBydGVfZXRoX2RldiBzdHJ1Y3R1cmUuDQo+ID4gPiA+ID4gQEAgLTE1Nyw3ICsx NTgsNyBAQA0KPiA+ID4gPiA+ICAgfQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gICAvKioNCj4gPiA+ ID4gPiAtQEAgLTM2NjksOCArMzY3MCwxMiBAQA0KPiA+ID4NCj4gPiA+IGZsb3dfZHZfbW9kaWZ5 X2hkcl9yZXNvdXJjZV9yZWdpc3Rlcg0KPiA+ID4gPiA+ICtAQCAtMzQ3Miw4ICszNDczLDEyIEBA DQo+ID4gPg0KPiA+ID4gZmxvd19kdl9tb2RpZnlfaGRyX3Jlc291cmNlX3JlZ2lzdGVyDQo+ID4g PiA+ID4gICAJc3RydWN0IG1seDVfaWJ2X3NoYXJlZCAqc2ggPSBwcml2LT5zaDsNCj4gPiA+ID4g PiAgIAlzdHJ1Y3QgbWx4NV9mbG93X2R2X21vZGlmeV9oZHJfcmVzb3VyY2UNCj4gPiA+ID4gPiAq Y2FjaGVfcmVzb3VyY2U7DQo+ID4gPiA+ID4gICAJc3RydWN0IG1seDVkdl9kcl9kb21haW4gKm5z Ow0KPiA+ID4gPiA+IEBAIC0xNzEsNyArMTcyLDcgQEANCj4gPiA+ID4gPiAgIAkJcmV0dXJuIHJ0 ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRU9WRVJGTE9XLA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g UlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sIE5VTEwsDQo+ID4gPiA+ID4gICAJCQkJCSAgInRv byBtYW55IG1vZGlmeQ0KPiA+ID4gPiA+IGhlYWRlcg0KPiA+ID4gPiA+IGl0ZW1zIik7IC1AQCAt MzY4MCwxNyArMzY4NSwxNSBAQA0KPiA+ID4gPiA+IGZsb3dfZHZfbW9kaWZ5X2hkcl9yZXNvdXJj ZV9yZWdpc3Rlcg0KPiA+ID4gPiA+ICtAQCAtMzQ4MywxNyArMzQ4OCwxNSBAQA0KPiA+ID4NCj4g PiA+IGZsb3dfZHZfbW9kaWZ5X2hkcl9yZXNvdXJjZV9yZWdpc3Rlcg0KPiA+ID4gPiA+ICAgCQlu cyA9IHNoLT50eF9kb21haW47DQo+ID4gPiA+ID4gICAJZWxzZQ0KPiA+ID4gPiA+ICAgCQlucyA9 IHNoLT5yeF9kb21haW47DQo+ID4gPiA+ID4gQEAgLTE5MSw3ICsxOTIsNyBAQA0KPiA+ID4gPiA+ ICAgCQkJRFJWX0xPRyhERUJVRywgIm1vZGlmeS1oZWFkZXINCj4gPiA+ID4gPiByZXNvdXJjZSAl cDogcmVmY250ICVkKysiLA0KPiA+ID4gPiA+ICAgCQkJCSh2b2lkICopY2FjaGVfcmVzb3VyY2Us DQo+ID4gPiA+ID4NCj4gCXJ0ZV9hdG9taWMzMl9yZWFkKCZjYWNoZV9yZXNvdXINCj4gPiA+ID4g PiBjZS0NCj4gPiA+ID4gPiA+IHJlZmNudCkpOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLUBAIC0z NzAwLDE4ICszNzAzLDE4IEBADQo+ID4gPg0KPiA+ID4gZmxvd19kdl9tb2RpZnlfaGRyX3Jlc291 cmNlX3JlZ2lzdGVyDQo+ID4gPiA+ID4gK0BAIC0zNTAzLDE4ICszNTA2LDE4IEBADQo+ID4gPg0K PiA+ID4gZmxvd19kdl9tb2RpZnlfaGRyX3Jlc291cmNlX3JlZ2lzdGVyDQo+ID4gPiA+ID4gICAJ CX0NCj4gPiA+ID4gPiAgIAl9DQo+ID4gPiA+ID4gICAJLyogUmVnaXN0ZXIgbmV3IG1vZGlmeS1o ZWFkZXIgcmVzb3VyY2UuICovIEBAIC0NCj4gMjE1LDcNCj4gPiA+ID4gPiArMjE2LDcNCj4gPiA+ DQo+ID4gPiBAQA0KPiA+ID4gPiA+ICAgCQkJCQkgKHVpbnQ2NF90DQo+ID4gPiA+ID4gKiljYWNo ZV9yZXNvdXJjZS0NCj4gPiA+ID4gPiA+IGFjdGlvbnMpOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g ICAJaWYgKCFjYWNoZV9yZXNvdXJjZS0+dmVyYnNfYWN0aW9uKSB7DQo+ID4gPiA+ID4gICAJCXJ0 ZV9mcmVlKGNhY2hlX3Jlc291cmNlKTsNCj4gPiA+ID4gPiAtQEAgLTcwMjAsMTAgKzcwMjMsMTMg QEAgX19mbG93X2R2X3RyYW5zbGF0ZShzdHJ1Y3QNCj4gPiA+DQo+ID4gPiBydGVfZXRoX2Rldg0K PiA+ID4gPiA+ICpkZXYsDQo+ID4gPiA+ID4gK0BAIC02NjcwLDEwICs2NjczLDEzIEBAIF9fZmxv d19kdl90cmFuc2xhdGUoc3RydWN0DQo+ID4gPg0KPiA+ID4gcnRlX2V0aF9kZXYNCj4gPiA+ID4g PiAqZGV2LA0KPiA+ID4gPiA+ICAgCX07DQo+ID4gPiA+ID4gICAJaW50IGFjdGlvbnNfbiA9IDA7 DQo+ID4gPiA+ID4gICAJYm9vbCBhY3Rpb25zX2VuZCA9IGZhbHNlOw0KPiA+ID4gPiA+IEBAIC0y MzMsNyArMjM0LDcgQEANCj4gPiA+ID4gPiAgIAl1bmlvbiBmbG93X2R2X2F0dHIgZmxvd19hdHRy ID0geyAuYXR0ciA9IDAgfTsNCj4gPiA+ID4gPiAgIAl1aW50MzJfdCB0YWdfYmU7DQo+ID4gPiA+ ID4gICAJdW5pb24gbWx4NV9mbG93X3RibF9rZXkgdGJsX2tleTsNCj4gPiA+ID4gPiAtQEAgLTcw MzUsMTUgKzcwNDEsMTkgQEAgX19mbG93X2R2X3RyYW5zbGF0ZShzdHJ1Y3QNCj4gPiA+DQo+ID4g PiBydGVfZXRoX2Rldg0KPiA+ID4gPiA+ICpkZXYsDQo+ID4gPiA+ID4gK0BAIC02Njg1LDE1ICs2 NjkxLDE5IEBAIF9fZmxvd19kdl90cmFuc2xhdGUoc3RydWN0DQo+ID4gPg0KPiA+ID4gcnRlX2V0 aF9kZXYNCj4gPiA+ID4gPiAqZGV2LA0KPiA+ID4gPiA+ICAgCXVpbnQzMl90IHRhYmxlOw0KPiA+ ID4gPiA+ICAgCWludCByZXQgPSAwOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQEAgLTI1NCw3ICsy NTUsNyBAQA0KPiA+ID4gPiA+ICAgCWZvciAoOyAhYWN0aW9uc19lbmQgOyBhY3Rpb25zKyspIHsN Cj4gPiA+ID4gPiAgIAkJY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9xdWV1ZSAqcXVldWU7 DQo+ID4gPiA+ID4gICAJCWNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzICpyc3M7IC1A QA0KPiA+ID4gPiA+IC03MDgxLDcNCj4gPiA+ID4gPiArNzA5MSw3IEBAIF9fZmxvd19kdl90cmFu c2xhdGUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIEBADQo+IC0NCj4gPiA+DQo+ID4gPiA2NzMx LDcNCj4gPiA+ID4gPiArKzY3NDEsNyBAQCBfX2Zsb3dfZHZfdHJhbnNsYXRlKHN0cnVjdCBydGVf ZXRoX2Rldg0KPiA+ID4gPiA+ICpkZXYsDQo+ID4gPiA+ID4gICAJCQkJfTsNCj4gPiA+ID4gPg0K PiA+ID4gPiA+ICAgCQkJCWlmDQo+ID4gPiA+ID4gKGZsb3dfZHZfY29udmVydF9hY3Rpb25fbWFy ayhkZXYsDQo+ID4gPg0KPiA+ID4gJm1hcmssIEBAIC0yNjMsNyArMjY0LDcNCj4gPiA+ID4gPiBA QA0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gZXJyb3IpKQ0KPiA+ID4gPiA+ICAgCQkJCQlyZXR1cm4g LXJ0ZV9lcnJubzsNCj4gPiA+ID4gPiAgIAkJCQlhY3Rpb25fZmxhZ3MgfD0NCj4gPiA+ID4gPiBN TFg1X0ZMT1dfQUNUSU9OX01BUktfRVhUOyAtQEAgLTcxMDMsNyArNzExMyw3IEBADQo+ID4gPiA+ ID4gX19mbG93X2R2X3RyYW5zbGF0ZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gPiA+ID4g PiArQEAgLTY3NTMsNyArNjc2Myw3IEBAIF9fZmxvd19kdl90cmFuc2xhdGUoc3RydWN0DQo+IHJ0 ZV9ldGhfZGV2DQo+ID4gPiA+ID4gKmRldiwNCj4gPiA+ID4gPiAgIAkJCQkJCWFjdGlvbnMtPmNv bmY7DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgIAkJCQlpZg0KPiA+ID4gPiA+IChmbG93X2R2X2Nv bnZlcnRfYWN0aW9uX21hcmsoZGV2LA0KPiA+ID4NCj4gPiA+IG1hcmssIEBAIC0yNzIsNyArMjcz LDcgQEANCj4gPiA+ID4gPg0KPiA+ID4gPiA+IGVycm9yKSkNCj4gPiA+ID4gPiAgIAkJCQkJcmV0 dXJuIC1ydGVfZXJybm87DQo+ID4gPiA+ID4gICAJCQkJYWN0aW9uX2ZsYWdzIHw9DQo+ID4gPiA+ ID4gTUxYNV9GTE9XX0FDVElPTl9NQVJLX0VYVDsgLUBAIC03MTI0LDcgKzcxMzQsNyBAQA0KPiA+ ID4gPiA+IF9fZmxvd19kdl90cmFuc2xhdGUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4g PiA+ID4gK0BAIC02Nzc0LDcgKzY3ODQsNyBAQCBfX2Zsb3dfZHZfdHJhbnNsYXRlKHN0cnVjdA0K PiBydGVfZXRoX2Rldg0KPiA+ID4gPiA+ICpkZXYsDQo+ID4gPiA+ID4gICAJCQlicmVhazsNCj4g PiA+ID4gPiAgIAkJY2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfTUVUQToNCj4gPiA+ID4g PiAgIAkJCWlmIChmbG93X2R2X2NvbnZlcnRfYWN0aW9uX3NldF9tZXRhDQo+IEBADQo+ID4gPiA+ ID4gLQ0KPiA+ID4gPiA+IDI4MSw3ICsyODIsNyBAQA0KPiA+ID4gPiA+ICAgCQkJCSAoY29uc3Qg c3RydWN0DQo+ID4gPiA+ID4gcnRlX2Zsb3dfYWN0aW9uX3NldF9tZXRhICopDQo+ID4gPiA+ID4g ICAJCQkJICBhY3Rpb25zLT5jb25mLCBlcnJvcikpDQo+ID4gPiA+ID4gICAJCQkJcmV0dXJuIC1y dGVfZXJybm87DQo+ID4gPiA+ID4gLUBAIC03MTMyLDcgKzcxNDIsNyBAQCBfX2Zsb3dfZHZfdHJh bnNsYXRlKHN0cnVjdA0KPiBydGVfZXRoX2Rldg0KPiA+ID4NCj4gPiA+ICpkZXYsDQo+ID4gPiA+ ID4gK0BAIC02NzgyLDcgKzY3OTIsNyBAQCBfX2Zsb3dfZHZfdHJhbnNsYXRlKHN0cnVjdA0KPiBy dGVfZXRoX2Rldg0KPiA+ID4gPiA+ICpkZXYsDQo+ID4gPiA+ID4gICAJCQlicmVhazsNCj4gPiA+ ID4gPiAgIAkJY2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfVEFHOg0KPiA+ID4gPiA+ICAg CQkJaWYgKGZsb3dfZHZfY29udmVydF9hY3Rpb25fc2V0X3RhZw0KPiBAQA0KPiA+ID4gPiA+IC0y OTAsNw0KPiA+ID4NCj4gPiA+ICsyOTEsNyBAQA0KPiA+ID4gPiA+ICAgCQkJCSAoY29uc3Qgc3Ry dWN0DQo+ID4gPiA+ID4gcnRlX2Zsb3dfYWN0aW9uX3NldF90YWcNCj4gPiA+ID4gPiAqKQ0KPiA+ ID4gPiA+ICAgCQkJCSAgYWN0aW9ucy0+Y29uZiwgZXJyb3IpKQ0KPiA+ID4gPiA+ICAgCQkJCXJl dHVybiAtcnRlX2Vycm5vOw0KPiA+ID4gPiA+IC1AQCAtNzIzMiw3ICs3MjQyLDcgQEAgY250X2Vy cjoNCj4gPiA+ID4gPiArQEAgLTY4ODIsNyArNjg5Miw3IEBAIGNudF9lcnI6DQo+ID4gPiA+ID4g ICAJCQltbHg1X3VwZGF0ZV92bGFuX3ZpZF9wY3AoYWN0aW9ucywNCj4gPiA+ID4gPiAmdmxhbik7 DQo+ID4gPiA+ID4gICAJCQkvKiBJZiBubyBWTEFOIHB1c2ggLSB0aGlzIGlzIGEgbW9kaWZ5DQo+ ID4gPiA+ID4gaGVhZGVyDQo+ID4gPg0KPiA+ID4gYWN0aW9uICovDQo+ID4gPiA+ID4gICAJCQlp Zg0KPiA+ID4gPiA+IChmbG93X2R2X2NvbnZlcnRfYWN0aW9uX21vZGlmeV92bGFuX3ZpZA0KPiA+ ID4gPiA+IEBAIC0yOTksNyArMzAwLDcgQEANCj4gPiA+ID4gPiAgIAkJCQlyZXR1cm4gLXJ0ZV9l cnJubzsNCj4gPiA+ID4gPiAgIAkJCWFjdGlvbl9mbGFncyB8PQ0KPiA+ID4gPiA+IE1MWDVfRkxP V19BQ1RJT05fT0ZfU0VUX1ZMQU5fVklEOw0KPiA+ID4gPiA+ICAgCQkJYnJlYWs7DQo+ID4gPiA+ ID4gLUBAIC03MzMxLDcgKzczNDEsNyBAQCBjbnRfZXJyOg0KPiA+ID4gPiA+ICtAQCAtNjk4MSw3 ICs2OTkxLDcgQEAgY250X2VycjoNCj4gPiA+ID4gPiAgIAkJY2FzZSBSVEVfRkxPV19BQ1RJT05f VFlQRV9TRVRfTUFDX1NSQzoNCj4gPiA+ID4gPiAgIAkJY2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQ RV9TRVRfTUFDX0RTVDoNCj4gPiA+ID4gPiAgIAkJCWlmDQo+IChmbG93X2R2X2NvbnZlcnRfYWN0 aW9uX21vZGlmeV9tYWMNCj4gPiA+ID4gPiBAQCAtMzA4LDcgKzMwOSw3IEBADQo+ID4gPiA+ID4g ICAJCQkJcmV0dXJuIC1ydGVfZXJybm87DQo+ID4gPiA+ID4gICAJCQlhY3Rpb25fZmxhZ3MgfD0g YWN0aW9ucy0+dHlwZSA9PQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gCVJURV9GTE9XX0FDVElPTl9U WVBFX1NFVF9NQUNfU1JDID8NCj4gPiA+ID4gPiAtQEAgLTczNDEsNyArNzM1MSw3IEBAIGNudF9l cnI6DQo+ID4gPiA+ID4gK0BAIC02OTkxLDcgKzcwMDEsNyBAQCBjbnRfZXJyOg0KPiA+ID4gPiA+ ICAgCQljYXNlIFJURV9GTE9XX0FDVElPTl9UWVBFX1NFVF9JUFY0X1NSQzoNCj4gPiA+ID4gPiAg IAkJY2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfSVBWNF9EU1Q6DQo+ID4gPiA+ID4gICAJ CQlpZg0KPiAoZmxvd19kdl9jb252ZXJ0X2FjdGlvbl9tb2RpZnlfaXB2NA0KPiA+ID4gPiA+IEBA IC0zMTcsNyArMzE4LDcgQEANCj4gPiA+ID4gPiAgIAkJCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4g PiA+ID4gPiAgIAkJCWFjdGlvbl9mbGFncyB8PSBhY3Rpb25zLT50eXBlID09DQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiAJUlRFX0ZMT1dfQUNUSU9OX1RZUEVfU0VUX0lQVjRfU1JDID8NCj4gPiA+ID4g PiAtQEAgLTczNTEsNyArNzM2MSw3IEBAIGNudF9lcnI6DQo+ID4gPiA+ID4gK0BAIC03MDAxLDcg KzcwMTEsNyBAQCBjbnRfZXJyOg0KPiA+ID4gPiA+ICAgCQljYXNlIFJURV9GTE9XX0FDVElPTl9U WVBFX1NFVF9JUFY2X1NSQzoNCj4gPiA+ID4gPiAgIAkJY2FzZSBSVEVfRkxPV19BQ1RJT05fVFlQ RV9TRVRfSVBWNl9EU1Q6DQo+ID4gPiA+ID4gICAJCQlpZg0KPiAoZmxvd19kdl9jb252ZXJ0X2Fj dGlvbl9tb2RpZnlfaXB2Ng0KPiA+ID4gPiA+IEBAIC0zMjYsNyArMzI3LDcgQEANCj4gPiA+ID4g PiAgIAkJCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ID4gPiAgIAkJCWFjdGlvbl9mbGFncyB8 PSBhY3Rpb25zLT50eXBlID09DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAJUlRFX0ZMT1dfQUNUSU9O X1RZUEVfU0VUX0lQVjZfU1JDID8NCj4gPiA+ID4gPiAtQEAgLTczNjEsNyArNzM3MSw3IEBAIGNu dF9lcnI6DQo+ID4gPiA+ID4gK0BAIC03MDExLDcgKzcwMjEsNyBAQCBjbnRfZXJyOg0KPiA+ID4g PiA+ICAgCQljYXNlIFJURV9GTE9XX0FDVElPTl9UWVBFX1NFVF9UUF9TUkM6DQo+ID4gPiA+ID4g ICAJCWNhc2UgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfU0VUX1RQX0RTVDoNCj4gPiA+ID4gPiAgIAkJ CWlmIChmbG93X2R2X2NvbnZlcnRfYWN0aW9uX21vZGlmeV90cA0KPiBAQA0KPiA+ID4gPiA+IC0N Cj4gPiA+ID4gPiAzMzUsNyArMzM2LDcgQEANCj4gPiA+ID4gPiAgIAkJCQkJICZmbG93X2F0dHIs IGVycm9yKSkNCj4gPiA+ID4gPiAgIAkJCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ID4gPiAg IAkJCWFjdGlvbl9mbGFncyB8PSBhY3Rpb25zLT50eXBlID09IC1AQA0KPiA+ID4gPiA+IC03Mzcx LDEzDQo+ID4gPg0KPiA+ID4gKzczODEsMTMgQEANCj4gPiA+ID4gPiBjbnRfZXJyOg0KPiA+ID4g PiA+ICtAQCAtNzAyMSwxMyArNzAzMSwxMyBAQCBjbnRfZXJyOg0KPiA+ID4gPiA+ICAgCQkJYnJl YWs7DQo+ID4gPiA+ID4gICAJCWNhc2UgUlRFX0ZMT1dfQUNUSU9OX1RZUEVfREVDX1RUTDoNCj4g PiA+ID4gPiAgIAkJCWlmDQo+ID4gPiA+ID4gKGZsb3dfZHZfY29udmVydF9hY3Rpb25fbW9kaWZ5 X2RlY190dGwNCj4gPiA+ID4gPiBAQCAtMzUxLDcgKzM1Miw3IEBADQo+ID4gPiA+ID4gICAJCQkJ CSAmZmxvd19hdHRyLCBlcnJvcikpDQo+ID4gPiA+ID4gICAJCQkJcmV0dXJuIC1ydGVfZXJybm87 DQo+ID4gPiA+ID4gICAJCQlhY3Rpb25fZmxhZ3MgfD0NCj4gPiA+ID4gPiBNTFg1X0ZMT1dfQUNU SU9OX1NFVF9UVEw7DQo+ID4gPg0KPiA+ID4gLUBAIC03Mzg1LDcgKzczOTUsNw0KPiA+ID4gPiA+ IEBAIGNudF9lcnI6DQo+ID4gPiA+ID4gK0BAIC03MDM1LDcgKzcwNDUsNyBAQCBjbnRfZXJyOg0K PiA+ID4gPiA+ICAgCQljYXNlIFJURV9GTE9XX0FDVElPTl9UWVBFX0lOQ19UQ1BfU0VROg0KPiA+ ID4gPiA+ICAgCQljYXNlIFJURV9GTE9XX0FDVElPTl9UWVBFX0RFQ19UQ1BfU0VROg0KPiA+ID4g PiA+ICAgCQkJaWYNCj4gPiA+ID4gPiAoZmxvd19kdl9jb252ZXJ0X2FjdGlvbl9tb2RpZnlfdGNw X3NlcQ0KPiA+ID4gPiA+IEBAIC0zNjAsNyArMzYxLDcgQEANCj4gPiA+ID4gPiAgIAkJCQlyZXR1 cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ID4gPiAgIAkJCWFjdGlvbl9mbGFncyB8PSBhY3Rpb25zLT50 eXBlID09DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAJUlRFX0ZMT1dfQUNUSU9OX1RZUEVfSU5DX1RD UF9TRVEgPw0KPiA+ID4gPiA+IC1AQCAtNzM5Niw3ICs3NDA2LDcgQEAgY250X2VycjoNCj4gPiA+ ID4gPiArQEAgLTcwNDYsNyArNzA1Niw3IEBAIGNudF9lcnI6DQo+ID4gPiA+ID4gICAJCWNhc2Ug UlRFX0ZMT1dfQUNUSU9OX1RZUEVfSU5DX1RDUF9BQ0s6DQo+ID4gPiA+ID4gICAJCWNhc2UgUlRF X0ZMT1dfQUNUSU9OX1RZUEVfREVDX1RDUF9BQ0s6DQo+ID4gPiA+ID4gICAJCQlpZg0KPiA+ID4g PiA+IChmbG93X2R2X2NvbnZlcnRfYWN0aW9uX21vZGlmeV90Y3BfYWNrDQo+ID4gPiA+ID4gQEAg LTM2OSw3ICszNzAsNyBAQA0KPiA+ID4gPiA+ICAgCQkJCXJldHVybiAtcnRlX2Vycm5vOw0KPiA+ ID4gPiA+ICAgCQkJYWN0aW9uX2ZsYWdzIHw9IGFjdGlvbnMtPnR5cGUgPT0NCj4gPiA+ID4gPg0K PiA+ID4gPiA+IAlSVEVfRkxPV19BQ1RJT05fVFlQRV9JTkNfVENQX0FDSyA/DQo+ID4gPiA+ID4g LUBAIC03NDA1LDEzICs3NDE1LDEzIEBAIGNudF9lcnI6DQo+ID4gPiA+ID4gK0BAIC03MDU1LDEz ICs3MDY1LDEzIEBAIGNudF9lcnI6DQo+ID4gPiA+ID4gICAJCQlicmVhazsNCj4gPiA+ID4gPiAg IAkJY2FzZSBNTFg1X1JURV9GTE9XX0FDVElPTl9UWVBFX1RBRzoNCj4gPiA+ID4gPiAgIAkJCWlm IChmbG93X2R2X2NvbnZlcnRfYWN0aW9uX3NldF9yZWcNCj4gQEAgLQ0KPiA+ID4NCj4gPiA+IDM4 NSwyMiArMzg2LDcgQEANCj4gPiA+ID4gPiAgIAkJCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ ID4gPiAgIAkJCWFjdGlvbl9mbGFncyB8PQ0KPiA+ID4gPiA+IE1MWDVfRkxPV19BQ1RJT05fU0VU X1RBRzsNCj4gPiA+ID4gPiAgIAkJCWJyZWFrOw0KPiA+ID4gPiA+IC1AQCAtNzQzNSwyMyArNzQ0 NSwyMyBAQCBjbnRfZXJyOg0KPiA+ID4gPiA+IC0gCQkJYWN0aW9uX2ZsYWdzIHw9DQo+IE1MWDVf RkxPV19BQ1RJT05fTUVURVI7DQo+ID4gPiA+ID4gLSAJCQlicmVhazsNCj4gPiA+ID4gPiAtIAkJ Y2FzZQ0KPiBSVEVfRkxPV19BQ1RJT05fVFlQRV9TRVRfSVBWNF9EU0NQOg0KPiA+ID4gPiA+IC0t CQkJaWYNCj4gPiA+ID4gPiAoZmxvd19kdl9jb252ZXJ0X2FjdGlvbl9tb2RpZnlfaXB2NF9kc2Nw KCZtaGRyX3JlcywNCj4gPiA+ID4gPiAtKwkJCWlmDQo+ID4gPiA+ID4gKGZsb3dfZHZfY29udmVy dF9hY3Rpb25fbW9kaWZ5X2lwdjRfZHNjcChtaGRyX3JlcywNCj4gPiA+ID4gPiAtIAkJCQkJCQkg ICAgICBhDQo+ID4gPiA+ID4gY3Rpb25zLA0KPiA+ID4gPiA+IGVycm9yKSkNCj4gPiA+ID4gPiAt IAkJCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiA+ID4gPiAtIAkJCWFjdGlvbl9mbGFncyB8PQ0K PiA+ID4gPiA+IE1MWDVfRkxPV19BQ1RJT05fU0VUX0lQVjRfRFNDUDsNCj4gPiA+ID4gPiAtIAkJ CWJyZWFrOw0KPiA+ID4gPiA+IC0gCQljYXNlDQo+IFJURV9GTE9XX0FDVElPTl9UWVBFX1NFVF9J UFY2X0RTQ1A6DQo+ID4gPiA+ID4gLS0JCQlpZg0KPiA+ID4gPiA+IChmbG93X2R2X2NvbnZlcnRf YWN0aW9uX21vZGlmeV9pcHY2X2RzY3AoJm1oZHJfcmVzLA0KPiA+ID4gPiA+IC0rCQkJaWYNCj4g PiA+ID4gPiAoZmxvd19kdl9jb252ZXJ0X2FjdGlvbl9tb2RpZnlfaXB2Nl9kc2NwKG1oZHJfcmVz LA0KPiA+ID4gPiA+IC0gCQkJCQkJCSAgICAgIGENCj4gPiA+ID4gPiBjdGlvbnMsDQo+ID4gPiA+ ID4gZXJyb3IpKQ0KPiA+ID4gPiA+IC0gCQkJCXJldHVybiAtcnRlX2Vycm5vOw0KPiA+ID4gPiA+ IC0gCQkJYWN0aW9uX2ZsYWdzIHw9DQo+ID4gPiA+ID4gTUxYNV9GTE9XX0FDVElPTl9TRVRfSVBW Nl9EU0NQOw0KPiA+ID4gPiA+ICtAQCAtNzA4NiwxMCArNzA5NiwxMCBAQCBjbnRfZXJyOg0KPiA+ ID4gPiA+ICAgCQkJYnJlYWs7DQo+ID4gPiA+ID4gICAJCWNhc2UgUlRFX0ZMT1dfQUNUSU9OX1RZ UEVfRU5EOg0KPiA+ID4gPiA+ICAgCQkJYWN0aW9uc19lbmQgPSB0cnVlOw0KPiA+ID4gPiA+IEBA IC00MTMsNyArMzk5LDcgQEANCj4gPiA+ID4gPiAgIAkJCQkJcmV0dXJuIC1ydGVfZXJybm87DQo+ ID4gPiA+ID4gICAJCQkJZGV2X2Zsb3ctDQo+ID4gPiA+ID4gPiBkdi5hY3Rpb25zW21vZGlmeV9h Y3Rpb25fcG9zaXRpb25dID0NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAgCQkJCQlkZXZfZmxvdy0N Cj4gPiA+ID4gPiA+ZHYubW9kaWZ5X2hkci0NCj4gPiA+ID4gPiA+IHZlcmJzX2FjdGlvbjsNCj4g PiA+ID4gPg0KPiA+ID4gPiA+IC1AQCAtNzQ2MCw3ICs3NDcwLDcgQEAgY250X2VycjoNCj4gPiA+ ID4gPiArQEAgLTcwOTgsNyArNzEwOCw3IEBAIGNudF9lcnI6DQo+ID4gPiA+ID4gICAJCWRlZmF1 bHQ6DQo+ID4gPiA+ID4gICAJCQlicmVhazsNCj4gPiA+ID4gPiAgIAkJfQ0KPiA+ID4NCj4gPiA+ IC0tDQo+ID4gPiBLaW5kIHJlZ2FyZHMsDQo+ID4gPiBMdWNhIEJvY2Nhc3NpDQo+ID4NCj4gPg0K PiAtLQ0KPiBLaW5kIHJlZ2FyZHMsDQo+IEx1Y2EgQm9jY2Fzc2kNCg0K