Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w2rCq-000ff3-2b for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Mar 2026 13:45:05 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w2rCp-00BAsk-24 for pgsql-hackers@arkaria.postgresql.org; Wed, 18 Mar 2026 13:45:03 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w2rCo-00BAsY-2A for pgsql-hackers@lists.postgresql.org; Wed, 18 Mar 2026 13:45:03 +0000 Received: from mail-japaneastazlp170100000.outbound.protection.outlook.com ([2a01:111:f403:c405::] helo=TY3P286CU002.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1w2rCk-00000000Mjp-2fGy for pgsql-hackers@lists.postgresql.org; Wed, 18 Mar 2026 13:45:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FwE0AxxWT08HMp+eJyBtlivWSsjkeGeCqsyAguopW0Y/5p9htUNYIPVTRXhzJn6aUuzArtNxZ00nzhgLtxXP4NEegBGVqVhU1Hz3pq8JKofyksOM39nLQcWiYGUpXIn42C/s9++Nb6t6OQ+2g4RTxgJ1EohyhdaOXaVRS2x0IhTyPa+Zifz9ygBJBbSObcoLihirpJJQN2yrH1+JZOAdtitGSMS58NihXOhrthC1ACF2U9/QY9a71Ve41ddCnytcbWLjwxjrttGwpJTwMZAlTfikmk0dpvUpDhhZ/ni9ER0NIkvQ2qKK0UJXM4Vg+zDnbpot7z8ISohUyJXJI3TWnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zPpedOaILbxtLKfKXmezOOr7T7oUClfFOl/7J8LzbjQ=; b=SCRHxO0V22iiRRQwRbwIzlVmtYdR2k69r7RC8rR3xIHWRhRj/ezSsKXzDq8/DENO6cOzC9wYOr9m43EDuMRXVCajypFtWWJvHJXONf4arzuk5PAQWpVLWW1VsWjCxkCc/ICuX3s/sFzknHjX1T4KmdFCdR/1HTSKx/Qdgo+Pd2D/jQUOsGng1NoqI6iwdiP3b39YtsVwxuE79WG3rHPkrrG27KaCvSDj2OyzuM43Vd6UOQ0ZIjr7yRCvrQB4GsyGVyh/8KfooQUnBZTKVxkqISf5qFwCo/BoImyXvC3qcyrjoVGqdRsigttLLQ87JzmvB4J85rqSVj5/UAf1lma1SA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fujitsu.com; dmarc=pass action=none header.from=fujitsu.com; dkim=pass header.d=fujitsu.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fujitsu.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zPpedOaILbxtLKfKXmezOOr7T7oUClfFOl/7J8LzbjQ=; b=aU1iAjAfqyzeRB8lGDjTi5sl7q9PiF6JYYj6QcE2G6LTTeck+PlTjLPhwmDAP4P3WUcru819GjlW/NuPrL4L/x5RL85NUzS3urWIqhbX19NVmd5NpbiYV6e6sJR5eYcSfu20EJQ91Lk9eguFuEszHEN+M/187noZ7oPL0Yd12YTMPo1z3lJB37OvAajmmHkYHIReKOT8FI+cQF8eSWxlWnbRueEK41DqqxgNPJvpHKCtPoiJKmaRpIG4C/Z95TQejES558Q05bwFg5K2uC6EfRd2Z0EJYcPlDwFKXR9/gSdOYoYrC6nF6hBVAwI4RvOgN04gSysdYbDVhnwBM4iu2w== Received: from OS9PR01MB12149.jpnprd01.prod.outlook.com (2603:1096:604:2e5::8) by TYVPR01MB11292.jpnprd01.prod.outlook.com (2603:1096:400:365::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.19; Wed, 18 Mar 2026 13:44:55 +0000 Received: from OS9PR01MB12149.jpnprd01.prod.outlook.com ([fe80::8943:2365:dd16:e893]) by OS9PR01MB12149.jpnprd01.prod.outlook.com ([fe80::8943:2365:dd16:e893%5]) with mapi id 15.20.9700.025; Wed, 18 Mar 2026 13:44:37 +0000 From: "Hayato Kuroda (Fujitsu)" To: 'Amit Kapila' , Gyan Sreejith CC: Shlok Kyal , vignesh C , Euler Taveira , "pgsql-hackers@lists.postgresql.org" , Peter Smith Subject: RE: [Proposal] Adding Log File Capability to pg_createsubscriber Thread-Topic: [Proposal] Adding Log File Capability to pg_createsubscriber Thread-Index: AQHcaVmNpX4ag7/WHkSyhV6StVc5xLUcDPeAgAEu6ICABBNdAIACj44AgAHIUoCAAQGIAIAAWXIAgAjxJICACKGiAIAXHbMAgArKiICAAMg5gIAIsMwAgAbOigCABAcfgIAD1xOAgAdcW4CAC3d2gIANiKYAgA2MYYCAAU/PgIAFgZQAgAJNPoCAByhcgIACc1KAgACx0YCAAOgDgIAABKYg Date: Wed, 18 Mar 2026 13:44:37 +0000 Message-ID: References: <48261e54-c4f1-4bde-a4a9-4f3698a6b380@app.fastmail.com> In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: =?utf-8?B?TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2Uw?= =?utf-8?B?NTBfQWN0aW9uSWQ9ZWRkMzhhMDQtNzE3ZC00MzFlLWEzMmEtOTJjZGM5MmVh?= =?utf-8?B?ODdkO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX0NvbnRlbnRCaXRzPTA7TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5?= =?utf-8?B?LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfRW5hYmxlZD10cnVlO01TSVBfTGFi?= =?utf-8?B?ZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX01ldGhv?= =?utf-8?B?ZD1TdGFuZGFyZDtNU0lQX0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRk?= =?utf-8?B?LTNiMGY0ZmVjZTA1MF9OYW1lPUZVSklUU1UtUkVTVFJJQ1RFROKAiztNU0lQ?= =?utf-8?B?X0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRkLTNiMGY0ZmVjZTA1MF9T?= =?utf-8?B?ZXREYXRlPTIwMjYtMDMtMThUMTM6MzE6NTVaO01TSVBfTGFiZWxfYTcyOTVj?= =?utf-8?B?YzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX1NpdGVJZD1hMTlmMTIx?= =?utf-8?B?ZC04MWUxLTQ4NTgtYTlkOC03MzZlMjY3ZmQ0Yzc7TVNJUF9MYWJlbF9hNzI5?= =?utf-8?B?NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfVGFnPTEwLCAzLCAw?= =?utf-8?Q?,_1;?= authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: OS9PR01MB12149:EE_|TYVPR01MB11292:EE_ x-ms-office365-filtering-correlation-id: f081baaa-0c9a-4429-3f7f-08de84f47f3a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|1800799024|366016|6049299003|1580799027|3613699012|4053099003|38070700021|22082099003|56012099003|18002099003; x-microsoft-antispam-message-info: 5VT3a1wAJnrN0jBFqm/X1E0d/QCe7l7im5WwDbWm2JIIV7xMYR9HHWhV2okxWAtc8zwtbJif2J8vFueR2z3kP2e1+eoUPJgfY7/XhvJM4VjcVidyWz7xzezgtGjtzPWGq3zoP2TTigaZB9mdZH1zr5hGsEhZy3sK3oIDDtCJPLBd+5/CzK+e6J38ET8mEvpgi3cZLCV2qb3OhsT9aDfVaMlkr4zYHxt/fHdpSAfMOymskixjfjjqTNCCS4VgzOj63xrK2QwLxI/14ooaCe18bDBUx8UNbzvBtRLkXnShJRvZu6pCpcHhGhWjmdJPrMWs5a5UZK1dWIGstUuYFJ/KNfEG9Q3f2i+QtpJLk+HudPOOZHCk1YvnOlyFNldOzU2Cps3zEnl/M72AFT88L1rD2JCH4wJ/gQucuVEM2hAe796hGheOxCBOfuWxH8s+j/JA0j0YIE/SMXtRLkVEZd4rhO3MYchqDt7fbNNLE5hozLQq0PVuuLK7VfZLnFf6w+8X/yVu6vSlZRoENRZBQA5Ff75ZTwSWYG11Z7edYusp6dtYH2/4zIRK7BtMMsNbaeowxTaBEKIbKyYuOAysznQdfMA0QU2W/3du8EgtUvaJdnNX3r26fhy8aZDLgYeY1bgjGPXYUiainA2IhtlQ1sLfhtDbglaub6gt7J1opH3oCM3bpo+zbBnnTYgwlGCUjhsMHKghNA5+ZSH+Oa3SHgw1KiFPi1elamPDm7m9ypL3OMhKhwiL9m3DCamqu59faixmLFZIxx6vUDOFvgNwY+8R2dkJmUl/kmVM0RKBcYfmpTK4GWV3PY4CJ8aDZqhT7V2H x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS9PR01MB12149.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016)(6049299003)(1580799027)(3613699012)(4053099003)(38070700021)(22082099003)(56012099003)(18002099003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?V0l2MTFhUnZBWWVydWF4MXBpc1hhNmpaMFFyYW9UZlA1WDh1MzllaWgvZGt4?= =?utf-8?B?VThuYWRQQzdDU2xpUmRMckwzUitZd2FGcnU4Y2VGT05ycDdjTmtyUTJUTm53?= =?utf-8?B?emZrU3UrdG95ZXVUN2dBeEJjNkN6LzZJOHdGdWhzVG1yZEVMQkczZWlLRFBQ?= =?utf-8?B?TzZlb0ZWZGd2TjJRL3dhc1FjR1VIcElFa1BqbkU1akgyMmxwdzExRTVxV2Zp?= =?utf-8?B?TkxUQjh1d2Q3N25hMFM1ZC9DRTd5blR5WjdjTHlibDJ4N1haMlA4ZVNBSXlO?= =?utf-8?B?YWI0Uk83TW53d1pHK0FHWUFsSk9iQTBZSGZaL0JqU0hqZk9vbWVIYzNqUE5m?= =?utf-8?B?S3JGRlM4MWZnNTBlQ1RwaWtiTzI5V1dLbVQyMFFNZHE2VVgvTXJrcXlINm03?= =?utf-8?B?bnRXTnpNQjRLc2tzMkdKb2pSMGdzUDMzWk1UZC9UdFJ0WW9sS2xwcnIxU3BR?= =?utf-8?B?NlVlVG9WUFdtNDRwcUVheFpnYUxWYm8yUTFuMU5JTDNqUklxajdxclF6UVN5?= =?utf-8?B?eitZV3JaMTRreDM2RmRWa0FvRkVuQVY3WXhkK2Y1RzBTdGNQaXpYSHpDVDB3?= =?utf-8?B?STcrcWpHbHMzNURpeGc3VjJtMmNvc1M5Nm1iclVFVzFWQ1BySnllQTVXRnJU?= =?utf-8?B?aE0wbHVSWDJNWE4xYUorOHBqK2M0TWcrUmxRbEwyNnBTcVNnLzJ2NU1YN0FW?= =?utf-8?B?MnV3NGJiRmhwcXdLUlY1QVpJZFJBZFFSUzhuYUs0WFg0ZHRLdW1PUXlOOFZ0?= =?utf-8?B?VFBUd0p2NWgxenY3T3JVZzVNZmZZRDJIdmtMeHEyU0NXaG1tUTFZUCtCSXRs?= =?utf-8?B?SGwvdzQ3emQzUDF5dnI1ZHJwNSt4Q0NZVnk1ZEt6MXpJcFEyVllEbjJxazRh?= =?utf-8?B?MktjakJBRXJvTUFFaUd0ZEpDaVU2RHlhYXNRbTFUamNjaE15V2JDUnhFbjd0?= =?utf-8?B?Z2RoRGtYTTBMR0dYd3NoY1NvZCthZUhWTXBZdVh5eUZFemsrV2dQeEhGeHhD?= =?utf-8?B?R3hMQWUyV3ZVcnBnWUxtR3JCTExzR240cEo5NU9pSDMyM1NMakpSbFZuRFd5?= =?utf-8?B?TVhJNEhmazJmajNsWGdURUlzUEtHb0c2a2RQNzdXYWNRekErL2ZLS1o0ZEFn?= =?utf-8?B?MHFUWm1YZm45a3ZMZ0FXanhuOUhYMDE2UEgwaEU4eDAzOHlrQ2NZYnExWjdJ?= =?utf-8?B?OEd5V3k3eVNaa1VSU3JQTEdtQ2MrY0NGV1d1R01DR045cHNjSStLN0FxY2I4?= =?utf-8?B?aW9pY0QvRE8xaVg4ckdLcURXd3Q0cDBDeDEyRzZlUEVpT3VaRUluY3Z4MnBa?= =?utf-8?B?SVllRng1V1huTnh5eWF1cHA4UC9qN0QyaDdoaThkcFpmcEQ0bDhmM1ZBbDdL?= =?utf-8?B?dnhiMDI1RlJYQjRpN0FwQnR5RmVkaStOc3RuTkRacURraG9KMHNibmtUU1g0?= =?utf-8?B?Q2VsYUI3bTJHaE1uOS9KZldCaisrSXgxRERDaUtRL0NEQWlTWVRvam1yaVh1?= =?utf-8?B?TG5uVjN0T2Q4OXgwK3VBdjRSd0x2KzZGSVE5NEE2bUFYNCsrRnU5VXBBbjd2?= =?utf-8?B?Ymk3Um55UmFrS2RHcEZxa29sOTFiemZiSTZ6ZC9VaTFxNHExb3BZdVFZdThu?= =?utf-8?B?dXhOYjBYaGJhWHY3eFRvaUFUZWdvdDRJN0tPR2thREdYbGQxV1VqbkVNTGNE?= =?utf-8?B?M0lZR0U5a2ZrTFBjU1NiOWNEbHBVbGQ5dFFYeXgrM09ha2JlMTdDNi9MdVhH?= =?utf-8?B?YjczSk51RmZpckl3ellPbjdJM0xodkdJSXZqOC9iYkNaVVNvL283Y1pRcGR4?= =?utf-8?B?bjFKTTlxdmdJUjNMKytNcGhyLzhlK3UrMmdzRmMwUTdjNCtoaFBhNHVDOWFI?= =?utf-8?B?eGFRY1BxcmRsbytuaDJWVmJoNjV0M0tCaGV4elhJemFyUDdiYmJpaXBiNWor?= =?utf-8?B?NkRGSW93NkM5aXdMTkUvRURvby9HSEJaRUtvd0hXV3pqVEk0R2JaNitCK0x0?= =?utf-8?B?N2lUY0Q2blNKQyt4YUI0a0pLNXRISmpMdDNmNStNRC8yOCttWmpEUFV2aCsv?= =?utf-8?B?VlY4MThHWEpmaTYxaHNacXhyc2JZdFMvQzVaQURJd01SUVRJY1MyWDFwR2hk?= =?utf-8?B?Szk0b01QZmhxV0xPNERUbmpSZWswbkNTVmdycHJJbWhMVTJQUW81NG1NTGlB?= =?utf-8?B?UEZFcHYxQkxxempJUUhBWkJQWUhqUlZhalpHMlZwT3grdWZrWnU3UWlJZ2NE?= =?utf-8?B?cGhvSGwzMlFFTlZYRmgzczhLSFlPU3pSQXV5NzB3NFphbzFMZEJ3WG1jYUNN?= =?utf-8?B?L3FtaWFiU3pMM2pKYjNWRUZyVzRVVXdoV1ZpVEJqVEtra2UybjJFWWxwUW9C?= =?utf-8?Q?mH3JNXvpTQboYSdg=3D?= Content-Type: multipart/mixed; boundary="_004_OS9PR01MB1214902CC518A8102333FA88DF54EAOS9PR01MB12149jp_" MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: PQVB+ZZ/JCKCkX5Ka76oX1FelzhQT5FlX25Fpb6lIxNFRGXc05EDlkGgi/stHJunXOFw2iIGIA8noDsKJF2X/lnLwOuYBkTuBYhXNrEguTeHen6KJUFH3Ip8VhcT95jvMZQthhHSwtxGIkY/vBbXKeJke0aV7IOBN8bvekfBrr/NX8HgrX4XzcJ0aHveN0/GgjzyBeZ1W7KDn4rZhro9+RcbQGnbA45bJ5+51KFEwfapiqelBMbrJ3BabZfVGOl9XTeBcgyT2j6F8ooBupSD8EuLLDqFpAYScmiYUryejEhhSrRdagJkGYGIq6Cz7JBwD4yO80OzC72+mSxiaEguSw== X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OS9PR01MB12149.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f081baaa-0c9a-4429-3f7f-08de84f47f3a X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Mar 2026 13:44:37.4570 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a19f121d-81e1-4858-a9d8-736e267fd4c7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: hEln2IXRZVOJcKVCXFYbQiMQPg5tYq3+SK9kTg5p1PM/J5VHDlTLqLeC9wtYZIa0hmV+C3UTn4e80ptHNmAhnsdcS4FtetS/TwlcGewLrGY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYVPR01MB11292 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_OS9PR01MB1214902CC518A8102333FA88DF54EAOS9PR01MB12149jp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RGVhciBBbWl0LA0KDQo+IA0KPiBUaGlzIGxvb2tzIG9kZCB0byBtZS4gSSB0aGluayBpdCB3b3Vs ZCBiZSBiZXR0ZXIgdG8gZW5jYXBzdWxhdGUgdGhpcw0KPiBpbiBvbmUgZnVuY3Rpb24gKHNvbWV0 aGluZyBsaWtlIHdlIGhhdmUgaW4gcGdfbG9nX3YpIGFuZCB0aGVuIGJhc2VkIG9uDQo+IGxvZyBs ZXZlbCwgZG8gcmVxdWlyZWQgaGFuZGxpbmcuDQo+DQoNCkJhc2VkIG9uIHRoZSBzdWdnZXN0aW9u LCBJIHVwZGF0ZWQgcGF0Y2hlcy4gUGxlYXNlIHNlZSBhdHRhY2hlZCBzZXJpZXMuDQoNCnYxMS0w MDAxIHJlcGxhY2VzIGV4aXN0aW5nIHBnX2xvZ194eHggZmFtaWxpZXMgdG8gbmV3IHJlcG9ydGlu ZyBmdW5jdGlvbg0KcGdfY3JlYXRlc3ViX2xvZygpLiBOb3cgb25seSBwZ19mYXRhbCBpcyBvdmVy d3JpdHRlbiwgd2hpY2ggaXMgc2FtZSBhcyBwZ191cHJhZGUuDQoNCnYxMS0wMDAyIGlzIHRoZSBy ZWJhc2VkIHZlcnNpb24gb2YgdjEwLiBOb3RoaW5nIG5ldywgYnV0IGNvZGVzIGFyZSBhZGp1c3Rl ZCBiYXNlZA0Kb24gMDAwMS4NCg0KdjExLTAwMDMgY29udGFpbnMgY2hhbmdlcyBmcm9tIG1lIFsx XS4gMDAwMiBhbmQgMDAwMyBjYW4gYmUgY29tYmluZWQgaWYgaXQncyBPSy4NCg0KWzFdOiBodHRw czovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL09TOVBSMDFNQjEyMTQ5QzdERTA5RjEz QzNCQ0JEOTM1N0RGNTRFQSU0ME9TOVBSMDFNQjEyMTQ5LmpwbnByZDAxLnByb2Qub3V0bG9vay5j b20NCg0KQmVzdCByZWdhcmRzLA0KSGF5YXRvIEt1cm9kYQ0KRlVKSVRTVSBMSU1JVEVEDQoNCg== --_004_OS9PR01MB1214902CC518A8102333FA88DF54EAOS9PR01MB12149jp_ Content-Type: application/octet-stream; name="v11-0001-pg_createsubscriber-use-own-reporting-functions.patch" Content-Description: v11-0001-pg_createsubscriber-use-own-reporting-functions.patch Content-Disposition: attachment; filename="v11-0001-pg_createsubscriber-use-own-reporting-functions.patch"; size=56366; creation-date="Wed, 18 Mar 2026 13:09:39 GMT"; modification-date="Wed, 18 Mar 2026 13:35:26 GMT" Content-Transfer-Encoding: base64 RnJvbSAxMDQ4OTM4Y2FlODdkZDQ3ZWI0ODZjY2YwMTcxOGI0YmUxYjMxZWVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYXlhdG8gS3Vyb2RhIDxrdXJvZGEuaGF5YXRvQGZ1aml0c3Uu Y29tPgpEYXRlOiBXZWQsIDE4IE1hciAyMDI2IDIwOjIwOjUwICswOTAwClN1YmplY3Q6IFtQQVRD SCB2MTEgMS8zXSBwZ19jcmVhdGVzdWJzY3JpYmVyOiB1c2Ugb3duIHJlcG9ydGluZyBmdW5jdGlv bnMKClRoaXMgY29tbWl0IGNvbnZlcnRzIGFsbCBwZ19sb2dfeHh4IGZhbWlsaWVzIHRvIGNhbGwg YSBuZXcgcmVwb3J0aW5nIGZ1bmN0aW9uCnBnX2NyZWF0ZXN1Yl9sb2coKS4gQWxzbywgcGdfZmF0 YWwoKSBpcyBvdmVyd3JpdHRlbiB0byB1c2UgaXRzIG93bi4KClRoaXMgY29tbWl0IGNoYW5nZXMg bm90aGluZyBmcm9tIHRoZSBvdXRzaWRlLCBidXQgaXMgbmVlZGVkIGZvciB0aGUgdXBjb21pbmcK Y29tbWl0LgotLS0KIHNyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMg fCA3MDYgKysrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0NTMgaW5zZXJ0aW9u cygrKSwgMjUzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1 cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRl c3Vic2NyaWJlci5jCmluZGV4IDJiYzg0NTA1YWFiLi5iMDJhZjlhNGNjMCAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYworKysgYi9zcmMvYmlu L3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jCkBAIC0zMSw2ICszMSwxMiBAQAog I2luY2x1ZGUgImZlX3V0aWxzL3ZlcnNpb24uaCIKICNpbmNsdWRlICJnZXRvcHRfbG9uZy5oIgog CisvKgorICogRm9yIG5vdywgcGdfY3JlYXRlc3Vic2NyaWJlciBkb2VzIG5vdCB1c2UgY29tbW9u L2xvZ2dpbmcuYzsgdXNlIG91ciBvd24KKyAqIHBnX2ZhdGFsLgorICovCisjdW5kZWYgcGdfZmF0 YWwKKwogI2RlZmluZQlERUZBVUxUX1NVQl9QT1JUCSI1MDQzMiIKICNkZWZpbmUJT0JKRUNUVFlQ RV9QVUJMSUNBVElPTlMgIDB4MDAwMQogCkBAIC0xNDYsNiArMTUyLDExIEBAIHN0YXRpYyB2b2lk IGRyb3BfZXhpc3Rpbmdfc3Vic2NyaXB0aW9uKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc3Vi bmFtZSwKIAkJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmRibmFtZSk7CiBzdGF0aWMgdm9pZCBnZXRf cHVibGlzaGVyX2RhdGFiYXNlcyhzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMgKm9wdCwK IAkJCQkJCQkJCWJvb2wgZGJuYW1lc3BlY2lmaWVkKTsKK3N0YXRpYyB2b2lkIHBnX2NyZWF0ZXN1 Yl9sb2coZW51bSBwZ19sb2dfbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQsCisJCQkJCQkJIGNvbnN0 IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCisJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDQp OworcGdfbm9yZXR1cm4gc3RhdGljIHZvaWQgcGdfZmF0YWwoY29uc3QgY2hhciAqcGdfcmVzdHJp Y3QgZm10LC4uLikKKwkJCXBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiAKICNkZWZpbmUJV0FJ VF9JTlRFUlZBTAkxCQkvKiAxIHNlY29uZCAqLwogCkBAIC0xNzQsNiArMTg1LDI3IEBAIHN0YXRp YyBib29sIHJlY292ZXJ5X2VuZGVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBzdGFuZGJ5X3J1bm5p bmcgPSBmYWxzZTsKIHN0YXRpYyBib29sIHJlY292ZXJ5X3BhcmFtc19zZXQgPSBmYWxzZTsKIAor c3RhdGljIHZvaWQKK3BnX2NyZWF0ZXN1Yl9sb2coZW51bSBwZ19sb2dfbGV2ZWwgbGV2ZWwsIGVu dW0gcGdfbG9nX3BhcnQgcGFydCwKKwkJCQkgY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LC4u LikKK3sKKwl2YV9saXN0CQlhcmdzOworCisJdmFfc3RhcnQoYXJncywgZm10KTsKKwlwZ19sb2df Z2VuZXJpY192KGxldmVsLCBwYXJ0LCBmbXQsIGFyZ3MpOworCXZhX2VuZChhcmdzKTsKK30KKwor c3RhdGljIHZvaWQKK3BnX2ZhdGFsKGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCit7 CisJdmFfbGlzdAkJYXJnczsKKworCXZhX3N0YXJ0KGFyZ3MsIGZtdCk7CisJcGdfbG9nX2dlbmVy aWNfdihQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLCBmbXQsIGFyZ3MpOworCXZhX2VuZChh cmdzKTsKKwlleGl0KDEpOworfQogCiAvKgogICogQ2xlYW4gdXAgb2JqZWN0cyBjcmVhdGVkIGJ5 IHBnX2NyZWF0ZXN1YnNjcmliZXIuCkBAIC0yMDUsNyArMjM3LDggQEAgY2xlYW51cF9vYmplY3Rz X2F0ZXhpdCh2b2lkKQogCQlpZiAoZHVyYWJsZV9yZW5hbWUoY29uZl9maWxlbmFtZSwgY29uZl9m aWxlbmFtZV9kaXNhYmxlZCkgIT0gMCkKIAkJewogCQkJLyogZHVyYWJsZV9yZW5hbWUoKSBoYXMg YWxyZWFkeSBsb2dnZWQgc29tZXRoaW5nLiAqLwotCQkJcGdfbG9nX3dhcm5pbmdfaGludCgiQSBt YW51YWwgcmVtb3ZhbCBvZiB0aGUgcmVjb3ZlcnkgcGFyYW1ldGVycyBtYXkgYmUgcmVxdWlyZWQu Iik7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfSElOVCwKKwkJ CQkJCQkgIkEgbWFudWFsIHJlbW92YWwgb2YgdGhlIHJlY292ZXJ5IHBhcmFtZXRlcnMgbWF5IGJl IHJlcXVpcmVkLiIpOwogCQl9CiAJfQogCkBAIC0yMTksOSArMjUyLDExIEBAIGNsZWFudXBfb2Jq ZWN0c19hdGV4aXQodm9pZCkKIAkgKi8KIAlpZiAocmVjb3ZlcnlfZW5kZWQpCiAJewotCQlwZ19s b2dfd2FybmluZygiZmFpbGVkIGFmdGVyIHRoZSBlbmQgb2YgcmVjb3ZlcnkiKTsKLQkJcGdfbG9n X3dhcm5pbmdfaGludCgiVGhlIHRhcmdldCBzZXJ2ZXIgY2Fubm90IGJlIHVzZWQgYXMgYSBwaHlz aWNhbCByZXBsaWNhIGFueW1vcmUuICAiCi0JCQkJCQkJIllvdSBtdXN0IHJlY3JlYXRlIHRoZSBw aHlzaWNhbCByZXBsaWNhIGJlZm9yZSBjb250aW51aW5nLiIpOworCQlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19XQVJOSU5HLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZmFpbGVkIGFmdGVyIHRo ZSBlbmQgb2YgcmVjb3ZlcnkiKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfV0FSTklORywg UEdfTE9HX0hJTlQsCisJCQkJCQkgIlRoZSB0YXJnZXQgc2VydmVyIGNhbm5vdCBiZSB1c2VkIGFz IGEgcGh5c2ljYWwgcmVwbGljYSBhbnltb3JlLiAgIgorCQkJCQkJICJZb3UgbXVzdCByZWNyZWF0 ZSB0aGUgcGh5c2ljYWwgcmVwbGljYSBiZWZvcmUgY29udGludWluZy4iKTsKIAl9CiAKIAlmb3Ig KGludCBpID0gMDsgaSA8IG51bV9kYnM7IGkrKykKQEAgLTI1MSwxNyArMjg2LDIxIEBAIGNsZWFu dXBfb2JqZWN0c19hdGV4aXQodm9pZCkKIAkJCQkgKi8KIAkJCQlpZiAoZGJpbmZvLT5tYWRlX3B1 YmxpY2F0aW9uKQogCQkJCXsKLQkJCQkJcGdfbG9nX3dhcm5pbmcoInB1YmxpY2F0aW9uIFwiJXNc IiBjcmVhdGVkIGluIGRhdGFiYXNlIFwiJXNcIiBvbiBwcmltYXJ5IHdhcyBsZWZ0IGJlaGluZCIs Ci0JCQkJCQkJCSAgIGRiaW5mby0+cHVibmFtZSwKLQkJCQkJCQkJICAgZGJpbmZvLT5kYm5hbWUp OwotCQkJCQlwZ19sb2dfd2FybmluZ19oaW50KCJEcm9wIHRoaXMgcHVibGljYXRpb24gYmVmb3Jl IHRyeWluZyBhZ2Fpbi4iKTsKKwkJCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfV0FSTklORywg UEdfTE9HX1BSSU1BUlksCisJCQkJCQkJCQkgInB1YmxpY2F0aW9uIFwiJXNcIiBjcmVhdGVkIGlu IGRhdGFiYXNlIFwiJXNcIiBvbiBwcmltYXJ5IHdhcyBsZWZ0IGJlaGluZCIsCisJCQkJCQkJCQkg ZGJpbmZvLT5wdWJuYW1lLAorCQkJCQkJCQkJIGRiaW5mby0+ZGJuYW1lKTsKKwkJCQkJcGdfY3Jl YXRlc3ViX2xvZyhQR19MT0dfV0FSTklORywgUEdfTE9HX0hJTlQsCisJCQkJCQkJCQkgIkRyb3Ag dGhpcyBwdWJsaWNhdGlvbiBiZWZvcmUgdHJ5aW5nIGFnYWluLiIpOwogCQkJCX0KIAkJCQlpZiAo ZGJpbmZvLT5tYWRlX3JlcGxzbG90KQogCQkJCXsKLQkJCQkJcGdfbG9nX3dhcm5pbmcoInJlcGxp Y2F0aW9uIHNsb3QgXCIlc1wiIGNyZWF0ZWQgaW4gZGF0YWJhc2UgXCIlc1wiIG9uIHByaW1hcnkg d2FzIGxlZnQgYmVoaW5kIiwKLQkJCQkJCQkJICAgZGJpbmZvLT5yZXBsc2xvdG5hbWUsCi0JCQkJ CQkJCSAgIGRiaW5mby0+ZGJuYW1lKTsKLQkJCQkJcGdfbG9nX3dhcm5pbmdfaGludCgiRHJvcCB0 aGlzIHJlcGxpY2F0aW9uIHNsb3Qgc29vbiB0byBhdm9pZCByZXRlbnRpb24gb2YgV0FMIGZpbGVz LiIpOworCQkJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfUFJJTUFS WSwKKwkJCQkJCQkJCSAicmVwbGljYXRpb24gc2xvdCBcIiVzXCIgY3JlYXRlZCBpbiBkYXRhYmFz ZSBcIiVzXCIgb24gcHJpbWFyeSB3YXMgbGVmdCBiZWhpbmQiLAorCQkJCQkJCQkJIGRiaW5mby0+ cmVwbHNsb3RuYW1lLAorCQkJCQkJCQkJIGRiaW5mby0+ZGJuYW1lKTsKKwkJCQkJcGdfY3JlYXRl c3ViX2xvZyhQR19MT0dfV0FSTklORywgUEdfTE9HX0hJTlQsCisJCQkJCQkJCQkgIkRyb3AgdGhp cyByZXBsaWNhdGlvbiBzbG90IHNvb24gdG8gYXZvaWQgcmV0ZW50aW9uIG9mIFdBTCBmaWxlcy4i KTsKIAkJCQl9CiAJCQl9CiAJCX0KQEAgLTM0Miw3ICszODEsOCBAQCBnZXRfYmFzZV9jb25uaW5m byhjb25zdCBjaGFyICpjb25uaW5mbywgY2hhciAqKmRibmFtZSkKIAljb25uX29wdHMgPSBQUWNv bm5pbmZvUGFyc2UoY29ubmluZm8sICZlcnJtc2cpOwogCWlmIChjb25uX29wdHMgPT0gTlVMTCkK IAl7Ci0JCXBnX2xvZ19lcnJvcigiY291bGQgbm90IHBhcnNlIGNvbm5lY3Rpb24gc3RyaW5nOiAl cyIsIGVycm1zZyk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJ TUFSWSwKKwkJCQkJCSAiY291bGQgbm90IHBhcnNlIGNvbm5lY3Rpb24gc3RyaW5nOiAlcyIsIGVy cm1zZyk7CiAJCVBRZnJlZW1lbShlcnJtc2cpOwogCQlyZXR1cm4gTlVMTDsKIAl9CkBAIC00MjYs NyArNDY2LDggQEAgZ2V0X2V4ZWNfcGF0aChjb25zdCBjaGFyICphcmd2MCwgY29uc3QgY2hhciAq cHJvZ25hbWUpCiAJCQkJCSBwcm9nbmFtZSwgZnVsbF9wYXRoLCAicGdfY3JlYXRlc3Vic2NyaWJl ciIpOwogCX0KIAotCXBnX2xvZ19kZWJ1ZygiJXMgcGF0aCBpczogICVzIiwgcHJvZ25hbWUsIGV4 ZWNfcGF0aCk7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZ LAorCQkJCQkgIiVzIHBhdGggaXM6ICAlcyIsIHByb2duYW1lLCBleGVjX3BhdGgpOwogCiAJcmV0 dXJuIGV4ZWNfcGF0aDsKIH0KQEAgLTQ0Myw4ICs0ODQsOSBAQCBjaGVja19kYXRhX2RpcmVjdG9y eShjb25zdCBjaGFyICpkYXRhZGlyKQogCXVpbnQzMgkJbWFqb3JfdmVyc2lvbjsKIAljaGFyCSAg ICp2ZXJzaW9uX3N0cjsKIAotCXBnX2xvZ19pbmZvKCJjaGVja2luZyBpZiBkaXJlY3RvcnkgXCIl c1wiIGlzIGEgY2x1c3RlciBkYXRhIGRpcmVjdG9yeSIsCi0JCQkJZGF0YWRpcik7CisJcGdfY3Jl YXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAiY2hlY2tpbmcg aWYgZGlyZWN0b3J5IFwiJXNcIiBpcyBhIGNsdXN0ZXIgZGF0YSBkaXJlY3RvcnkiLAorCQkJCQkg ZGF0YWRpcik7CiAKIAlpZiAoc3RhdChkYXRhZGlyLCAmc3RhdGJ1ZikgIT0gMCkKIAl7CkBAIC00 NjIsOSArNTA0LDExIEBAIGNoZWNrX2RhdGFfZGlyZWN0b3J5KGNvbnN0IGNoYXIgKmRhdGFkaXIp CiAJbWFqb3JfdmVyc2lvbiA9IEdFVF9QR19NQUpPUlZFUlNJT05fTlVNKGdldF9wZ192ZXJzaW9u KGRhdGFkaXIsICZ2ZXJzaW9uX3N0cikpOwogCWlmIChtYWpvcl92ZXJzaW9uICE9IFBHX01BSk9S VkVSU0lPTl9OVU0pCiAJewotCQlwZ19sb2dfZXJyb3IoImRhdGEgZGlyZWN0b3J5IGlzIG9mIHdy b25nIHZlcnNpb24iKTsKLQkJcGdfbG9nX2Vycm9yX2RldGFpbCgiRmlsZSBcIiVzXCIgY29udGFp bnMgXCIlc1wiLCB3aGljaCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoaXMgcHJvZ3JhbSdzIHZl cnNpb24gXCIlc1wiLiIsCi0JCQkJCQkJIlBHX1ZFUlNJT04iLCB2ZXJzaW9uX3N0ciwgUEdfTUFK T1JWRVJTSU9OKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklN QVJZLAorCQkJCQkJICJkYXRhIGRpcmVjdG9yeSBpcyBvZiB3cm9uZyB2ZXJzaW9uIik7CisJCXBn X2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfREVUQUlMLAorCQkJCQkJICJGaWxl IFwiJXNcIiBjb250YWlucyBcIiVzXCIsIHdoaWNoIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhp cyBwcm9ncmFtJ3MgdmVyc2lvbiBcIiVzXCIuIiwKKwkJCQkJCSAiUEdfVkVSU0lPTiIsIHZlcnNp b25fc3RyLCBQR19NQUpPUlZFUlNJT04pOwogCQlleGl0KDEpOwogCX0KIH0KQEAgLTU0NywxNCAr NTkxLDE2IEBAIHN0b3JlX3B1Yl9zdWJfaW5mbyhjb25zdCBzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJl ck9wdGlvbnMgKm9wdCwKIAkJCWRiaW5mb1tpXS5zdWJuYW1lID0gTlVMTDsKIAkJLyogT3RoZXIg ZmllbGRzIHdpbGwgYmUgZmlsbGVkIGxhdGVyICovCiAKLQkJcGdfbG9nX2RlYnVnKCJwdWJsaXNo ZXIoJWQpOiBwdWJsaWNhdGlvbjogJXMgOyByZXBsaWNhdGlvbiBzbG90OiAlcyA7IGNvbm5lY3Rp b24gc3RyaW5nOiAlcyIsIGksCi0JCQkJCSBkYmluZm9baV0ucHVibmFtZSA/IGRiaW5mb1tpXS5w dWJuYW1lIDogIihhdXRvKSIsCi0JCQkJCSBkYmluZm9baV0ucmVwbHNsb3RuYW1lID8gZGJpbmZv W2ldLnJlcGxzbG90bmFtZSA6ICIoYXV0bykiLAotCQkJCQkgZGJpbmZvW2ldLnB1YmNvbm5pbmZv KTsKLQkJcGdfbG9nX2RlYnVnKCJzdWJzY3JpYmVyKCVkKTogc3Vic2NyaXB0aW9uOiAlcyA7IGNv bm5lY3Rpb24gc3RyaW5nOiAlcywgdHdvX3BoYXNlOiAlcyIsIGksCi0JCQkJCSBkYmluZm9baV0u c3VibmFtZSA/IGRiaW5mb1tpXS5zdWJuYW1lIDogIihhdXRvKSIsCi0JCQkJCSBkYmluZm9baV0u c3ViY29ubmluZm8sCi0JCQkJCSBkYmluZm9zLnR3b19waGFzZSA/ICJ0cnVlIiA6ICJmYWxzZSIp OworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCisJCQkJ CQkgInB1Ymxpc2hlciglZCk6IHB1YmxpY2F0aW9uOiAlcyA7IHJlcGxpY2F0aW9uIHNsb3Q6ICVz IDsgY29ubmVjdGlvbiBzdHJpbmc6ICVzIiwgaSwKKwkJCQkJCSBkYmluZm9baV0ucHVibmFtZSA/ IGRiaW5mb1tpXS5wdWJuYW1lIDogIihhdXRvKSIsCisJCQkJCQkgZGJpbmZvW2ldLnJlcGxzbG90 bmFtZSA/IGRiaW5mb1tpXS5yZXBsc2xvdG5hbWUgOiAiKGF1dG8pIiwKKwkJCQkJCSBkYmluZm9b aV0ucHViY29ubmluZm8pOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9H X1BSSU1BUlksCisJCQkJCQkgInN1YnNjcmliZXIoJWQpOiBzdWJzY3JpcHRpb246ICVzIDsgY29u bmVjdGlvbiBzdHJpbmc6ICVzLCB0d29fcGhhc2U6ICVzIiwgaSwKKwkJCQkJCSBkYmluZm9baV0u c3VibmFtZSA/IGRiaW5mb1tpXS5zdWJuYW1lIDogIihhdXRvKSIsCisJCQkJCQkgZGJpbmZvW2ld LnN1YmNvbm5pbmZvLAorCQkJCQkJIGRiaW5mb3MudHdvX3BoYXNlID8gInRydWUiIDogImZhbHNl Iik7CiAKIAkJaWYgKG51bV9wdWJzID4gMCkKIAkJCXB1YmNlbGwgPSBwdWJjZWxsLT5uZXh0OwpA QCAtNTgyLDggKzYyOCw5IEBAIGNvbm5lY3RfZGF0YWJhc2UoY29uc3QgY2hhciAqY29ubmluZm8s IGJvb2wgZXhpdF9vbl9lcnJvcikKIAljb25uID0gUFFjb25uZWN0ZGIoY29ubmluZm8pOwogCWlm IChQUXN0YXR1cyhjb25uKSAhPSBDT05ORUNUSU9OX09LKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJj b25uZWN0aW9uIHRvIGRhdGFiYXNlIGZhaWxlZDogJXMiLAotCQkJCQkgUFFlcnJvck1lc3NhZ2Uo Y29ubikpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlks CisJCQkJCQkgImNvbm5lY3Rpb24gdG8gZGF0YWJhc2UgZmFpbGVkOiAlcyIsCisJCQkJCQkgUFFl cnJvck1lc3NhZ2UoY29ubikpOwogCQlQUWZpbmlzaChjb25uKTsKIAogCQlpZiAoZXhpdF9vbl9l cnJvcikKQEAgLTU5NSw4ICs2NDIsOSBAQCBjb25uZWN0X2RhdGFiYXNlKGNvbnN0IGNoYXIgKmNv bm5pbmZvLCBib29sIGV4aXRfb25fZXJyb3IpCiAJcmVzID0gUFFleGVjKGNvbm4sIEFMV0FZU19T RUNVUkVfU0VBUkNIX1BBVEhfU1FMKTsKIAlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JF U19UVVBMRVNfT0spCiAJewotCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBjbGVhciBcInNlYXJj aF9wYXRoXCI6ICVzIiwKLQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOworCQlwZ19j cmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImNvdWxk IG5vdCBjbGVhciBcInNlYXJjaF9wYXRoXCI6ICVzIiwKKwkJCQkJCSBQUXJlc3VsdEVycm9yTWVz c2FnZShyZXMpKTsKIAkJUFFjbGVhcihyZXMpOwogCQlQUWZpbmlzaChjb25uKTsKIApAQCAtNjM1 LDI3ICs2ODMsMzEgQEAgZ2V0X3ByaW1hcnlfc3lzaWQoY29uc3QgY2hhciAqY29ubmluZm8pCiAJ UEdyZXN1bHQgICAqcmVzOwogCXVpbnQ2NAkJc3lzaWQ7CiAKLQlwZ19sb2dfaW5mbygiZ2V0dGlu ZyBzeXN0ZW0gaWRlbnRpZmllciBmcm9tIHB1Ymxpc2hlciIpOworCXBnX2NyZWF0ZXN1Yl9sb2co UEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkgImdldHRpbmcgc3lzdGVtIGlkZW50 aWZpZXIgZnJvbSBwdWJsaXNoZXIiKTsKIAogCWNvbm4gPSBjb25uZWN0X2RhdGFiYXNlKGNvbm5p bmZvLCB0cnVlKTsKIAogCXJlcyA9IFBRZXhlYyhjb25uLCAiU0VMRUNUIHN5c3RlbV9pZGVudGlm aWVyIEZST00gcGdfY2F0YWxvZy5wZ19jb250cm9sX3N5c3RlbSgpIik7CiAJaWYgKFBRcmVzdWx0 U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJjb3Vs ZCBub3QgZ2V0IHN5c3RlbSBpZGVudGlmaWVyOiAlcyIsCi0JCQkJCSBQUXJlc3VsdEVycm9yTWVz c2FnZShyZXMpKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklN QVJZLAorCQkJCQkJICJjb3VsZCBub3QgZ2V0IHN5c3RlbSBpZGVudGlmaWVyOiAlcyIsCisJCQkJ CQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJCWRpc2Nvbm5lY3RfZGF0YWJhc2UoY29u biwgdHJ1ZSk7CiAJfQogCWlmIChQUW50dXBsZXMocmVzKSAhPSAxKQogCXsKLQkJcGdfbG9nX2Vy cm9yKCJjb3VsZCBub3QgZ2V0IHN5c3RlbSBpZGVudGlmaWVyOiBnb3QgJWQgcm93cywgZXhwZWN0 ZWQgJWQgcm93IiwKLQkJCQkJIFBRbnR1cGxlcyhyZXMpLCAxKTsKKwkJcGdfY3JlYXRlc3ViX2xv ZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJjb3VsZCBub3QgZ2V0IHN5 c3RlbSBpZGVudGlmaWVyOiBnb3QgJWQgcm93cywgZXhwZWN0ZWQgJWQgcm93IiwKKwkJCQkJCSBQ UW50dXBsZXMocmVzKSwgMSk7CiAJCWRpc2Nvbm5lY3RfZGF0YWJhc2UoY29ubiwgdHJ1ZSk7CiAJ fQogCiAJc3lzaWQgPSBzdHJ0b3U2NChQUWdldHZhbHVlKHJlcywgMCwgMCksIE5VTEwsIDEwKTsK IAotCXBnX2xvZ19pbmZvKCJzeXN0ZW0gaWRlbnRpZmllciBpcyAlIiBQUkl1NjQgIiBvbiBwdWJs aXNoZXIiLCBzeXNpZCk7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BS SU1BUlksCisJCQkJCSAic3lzdGVtIGlkZW50aWZpZXIgaXMgJSIgUFJJdTY0ICIgb24gcHVibGlz aGVyIiwgc3lzaWQpOwogCiAJUFFjbGVhcihyZXMpOwogCWRpc2Nvbm5lY3RfZGF0YWJhc2UoY29u biwgZmFsc2UpOwpAQCAtNjc1LDcgKzcyNyw4IEBAIGdldF9zdGFuZGJ5X3N5c2lkKGNvbnN0IGNo YXIgKmRhdGFkaXIpCiAJYm9vbAkJY3JjX29rOwogCXVpbnQ2NAkJc3lzaWQ7CiAKLQlwZ19sb2df aW5mbygiZ2V0dGluZyBzeXN0ZW0gaWRlbnRpZmllciBmcm9tIHN1YnNjcmliZXIiKTsKKwlwZ19j cmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJnZXR0aW5n IHN5c3RlbSBpZGVudGlmaWVyIGZyb20gc3Vic2NyaWJlciIpOwogCiAJY2YgPSBnZXRfY29udHJv bGZpbGUoZGF0YWRpciwgJmNyY19vayk7CiAJaWYgKCFjcmNfb2spCkBAIC02ODMsNyArNzM2LDgg QEAgZ2V0X3N0YW5kYnlfc3lzaWQoY29uc3QgY2hhciAqZGF0YWRpcikKIAogCXN5c2lkID0gY2Yt PnN5c3RlbV9pZGVudGlmaWVyOwogCi0JcGdfbG9nX2luZm8oInN5c3RlbSBpZGVudGlmaWVyIGlz ICUiIFBSSXU2NCAiIG9uIHN1YnNjcmliZXIiLCBzeXNpZCk7CisJcGdfY3JlYXRlc3ViX2xvZyhQ R19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAic3lzdGVtIGlkZW50aWZpZXIgaXMg JSIgUFJJdTY0ICIgb24gc3Vic2NyaWJlciIsIHN5c2lkKTsKIAogCXBnX2ZyZWUoY2YpOwogCkBA IC03MDQsNyArNzU4LDggQEAgbW9kaWZ5X3N1YnNjcmliZXJfc3lzaWQoY29uc3Qgc3RydWN0IENy ZWF0ZVN1YnNjcmliZXJPcHRpb25zICpvcHQpCiAKIAljaGFyCSAgICpjbWRfc3RyOwogCi0JcGdf bG9nX2luZm8oIm1vZGlmeWluZyBzeXN0ZW0gaWRlbnRpZmllciBvZiBzdWJzY3JpYmVyIik7CisJ cGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAibW9k aWZ5aW5nIHN5c3RlbSBpZGVudGlmaWVyIG9mIHN1YnNjcmliZXIiKTsKIAogCWNmID0gZ2V0X2Nv bnRyb2xmaWxlKHN1YnNjcmliZXJfZGlyLCAmY3JjX29rKTsKIAlpZiAoIWNyY19vaykKQEAgLTcy MSwzMSArNzc2LDM3IEBAIG1vZGlmeV9zdWJzY3JpYmVyX3N5c2lkKGNvbnN0IHN0cnVjdCBDcmVh dGVTdWJzY3JpYmVyT3B0aW9ucyAqb3B0KQogCWNmLT5zeXN0ZW1faWRlbnRpZmllciB8PSBnZXRw aWQoKSAmIDB4RkZGOwogCiAJaWYgKGRyeV9ydW4pCi0JCXBnX2xvZ19pbmZvKCJkcnktcnVuOiB3 b3VsZCBzZXQgc3lzdGVtIGlkZW50aWZpZXIgdG8gJSIgUFJJdTY0ICIgb24gc3Vic2NyaWJlciIs Ci0JCQkJCWNmLT5zeXN0ZW1faWRlbnRpZmllcik7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJkcnktcnVuOiB3b3VsZCBzZXQgc3lzdGVt IGlkZW50aWZpZXIgdG8gJSIgUFJJdTY0ICIgb24gc3Vic2NyaWJlciIsCisJCQkJCQkgY2YtPnN5 c3RlbV9pZGVudGlmaWVyKTsKIAllbHNlCiAJewogCQl1cGRhdGVfY29udHJvbGZpbGUoc3Vic2Ny aWJlcl9kaXIsIGNmLCB0cnVlKTsKLQkJcGdfbG9nX2luZm8oInN5c3RlbSBpZGVudGlmaWVyIGlz ICUiIFBSSXU2NCAiIG9uIHN1YnNjcmliZXIiLAotCQkJCQljZi0+c3lzdGVtX2lkZW50aWZpZXIp OworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJ CSAic3lzdGVtIGlkZW50aWZpZXIgaXMgJSIgUFJJdTY0ICIgb24gc3Vic2NyaWJlciIsCisJCQkJ CQkgY2YtPnN5c3RlbV9pZGVudGlmaWVyKTsKIAl9CiAKIAlpZiAoZHJ5X3J1bikKLQkJcGdfbG9n X2luZm8oImRyeS1ydW46IHdvdWxkIHJ1biBwZ19yZXNldHdhbCBvbiB0aGUgc3Vic2NyaWJlciIp OworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJ CSAiZHJ5LXJ1bjogd291bGQgcnVuIHBnX3Jlc2V0d2FsIG9uIHRoZSBzdWJzY3JpYmVyIik7CiAJ ZWxzZQotCQlwZ19sb2dfaW5mbygicnVubmluZyBwZ19yZXNldHdhbCBvbiB0aGUgc3Vic2NyaWJl ciIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJ CQkJCSAicnVubmluZyBwZ19yZXNldHdhbCBvbiB0aGUgc3Vic2NyaWJlciIpOwogCiAJY21kX3N0 ciA9IHBzcHJpbnRmKCJcIiVzXCIgLUQgXCIlc1wiID4gXCIlc1wiIiwgcGdfcmVzZXR3YWxfcGF0 aCwKIAkJCQkJICAgc3Vic2NyaWJlcl9kaXIsIERFVk5VTEwpOwogCi0JcGdfbG9nX2RlYnVnKCJw Z19yZXNldHdhbCBjb21tYW5kIGlzOiAlcyIsIGNtZF9zdHIpOworCXBnX2NyZWF0ZXN1Yl9sb2co UEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJwZ19yZXNldHdhbCBjb21tYW5k IGlzOiAlcyIsIGNtZF9zdHIpOwogCiAJaWYgKCFkcnlfcnVuKQogCXsKIAkJaW50CQkJcmMgPSBz eXN0ZW0oY21kX3N0cik7CiAKIAkJaWYgKHJjID09IDApCi0JCQlwZ19sb2dfaW5mbygic3VjY2Vz c2Z1bGx5IHJlc2V0IFdBTCBvbiB0aGUgc3Vic2NyaWJlciIpOworCQkJcGdfY3JlYXRlc3ViX2xv ZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJICJzdWNjZXNzZnVsbHkgcmVz ZXQgV0FMIG9uIHRoZSBzdWJzY3JpYmVyIik7CiAJCWVsc2UKIAkJCXBnX2ZhdGFsKCJjb3VsZCBu b3QgcmVzZXQgV0FMIG9uIHN1YnNjcmliZXI6ICVzIiwgd2FpdF9yZXN1bHRfdG9fc3RyKHJjKSk7 CiAJfQpAQCAtNzcxLDE1ICs4MzIsMTcgQEAgZ2VuZXJhdGVfb2JqZWN0X25hbWUoUEdjb25uICpj b25uKQogCQkJCSAiV0hFUkUgZGF0bmFtZSA9IHBnX2NhdGFsb2cuY3VycmVudF9kYXRhYmFzZSgp Iik7CiAJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKLQkJ cGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgb2J0YWluIGRhdGFiYXNlIE9JRDogJXMiLAotCQkJCQkg UFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VS Uk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiY291bGQgbm90IG9idGFpbiBkYXRhYmFzZSBP SUQ6ICVzIiwKKwkJCQkJCSBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKIAkJZGlzY29ubmVj dF9kYXRhYmFzZShjb25uLCB0cnVlKTsKIAl9CiAKIAlpZiAoUFFudHVwbGVzKHJlcykgIT0gMSkK IAl7Ci0JCXBnX2xvZ19lcnJvcigiY291bGQgbm90IG9idGFpbiBkYXRhYmFzZSBPSUQ6IGdvdCAl ZCByb3dzLCBleHBlY3RlZCAlZCByb3ciLAotCQkJCQkgUFFudHVwbGVzKHJlcyksIDEpOworCQlw Z19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImNv dWxkIG5vdCBvYnRhaW4gZGF0YWJhc2UgT0lEOiBnb3QgJWQgcm93cywgZXhwZWN0ZWQgJWQgcm93 IiwKKwkJCQkJCSBQUW50dXBsZXMocmVzKSwgMSk7CiAJCWRpc2Nvbm5lY3RfZGF0YWJhc2UoY29u biwgdHJ1ZSk7CiAJfQogCkBAIC04MTksOCArODgyLDkgQEAgZmluZF9wdWJsaWNhdGlvbihQR2Nv bm4gKmNvbm4sIGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGNvbnN0IGNoYXIgKmRibmFtZSkKIAlyZXMg PSBQUWV4ZWMoY29ubiwgc3RyLT5kYXRhKTsKIAlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQ R1JFU19UVVBMRVNfT0spCiAJewotCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBmaW5kIHB1Ymxp Y2F0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCI6ICVzIiwKLQkJCQkJIHB1Ym5hbWUsIGRi bmFtZSwgUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19F UlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImNvdWxkIG5vdCBmaW5kIHB1YmxpY2F0aW9u IFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCI6ICVzIiwKKwkJCQkJCSBwdWJuYW1lLCBkYm5hbWUs IFBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKIAkJZGlzY29ubmVjdF9kYXRhYmFzZShjb25uLCB0cnVl KTsKIAl9CiAKQEAgLTg3Myw4ICs5MzcsOSBAQCBzZXR1cF9wdWJsaXNoZXIoc3RydWN0IExvZ2lj YWxSZXBJbmZvICpkYmluZm8pCiAJCWlmIChmaW5kX3B1YmxpY2F0aW9uKGNvbm4sIGRiaW5mb1tp XS5wdWJuYW1lLCBkYmluZm9baV0uZGJuYW1lKSkKIAkJewogCQkJLyogUmV1c2UgZXhpc3Rpbmcg cHVibGljYXRpb24gb24gcHVibGlzaGVyLiAqLwotCQkJcGdfbG9nX2luZm8oInVzZSBleGlzdGlu ZyBwdWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJCWRiaW5mb1tp XS5wdWJuYW1lLCBkYmluZm9baV0uZGJuYW1lKTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkJCSAidXNlIGV4aXN0aW5nIHB1YmxpY2F0aW9u IFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIiLAorCQkJCQkJCSBkYmluZm9baV0ucHVibmFtZSwg ZGJpbmZvW2ldLmRibmFtZSk7CiAJCQkvKiBEb24ndCByZW1vdmUgcHJlLWV4aXN0aW5nIHB1Ymxp Y2F0aW9uIGlmIGFuIGVycm9yIG9jY3Vycy4gKi8KIAkJCWRiaW5mb1tpXS5tYWRlX3B1YmxpY2F0 aW9uID0gZmFsc2U7CiAJCX0KQEAgLTkxMiw4ICs5NzcsOSBAQCBzZXR1cF9wdWJsaXNoZXIoc3Ry dWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAJCQlyZXMgPSBQUWV4ZWMoY29ubiwgIlNFTEVD VCBwZ19sb2dfc3RhbmRieV9zbmFwc2hvdCgpIik7CiAJCQlpZiAoUFFyZXN1bHRTdGF0dXMocmVz KSAhPSBQR1JFU19UVVBMRVNfT0spCiAJCQl7Ci0JCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qg d3JpdGUgYW4gYWRkaXRpb25hbCBXQUwgcmVjb3JkOiAlcyIsCi0JCQkJCQkJIFBRcmVzdWx0RXJy b3JNZXNzYWdlKHJlcykpOworCQkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19M T0dfUFJJTUFSWSwKKwkJCQkJCQkJICJjb3VsZCBub3Qgd3JpdGUgYW4gYWRkaXRpb25hbCBXQUwg cmVjb3JkOiAlcyIsCisJCQkJCQkJCSBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKIAkJCQlk aXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCQkJfQogCQkJUFFjbGVhcihyZXMpOwpA QCAtOTM4LDggKzEwMDQsOSBAQCBzZXJ2ZXJfaXNfaW5fcmVjb3ZlcnkoUEdjb25uICpjb25uKQog CiAJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKLQkJcGdf bG9nX2Vycm9yKCJjb3VsZCBub3Qgb2J0YWluIHJlY292ZXJ5IHByb2dyZXNzOiAlcyIsCi0JCQkJ CSBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0df RVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJjb3VsZCBub3Qgb2J0YWluIHJlY292ZXJ5 IHByb2dyZXNzOiAlcyIsCisJCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJCWRp c2Nvbm5lY3RfZGF0YWJhc2UoY29ubiwgdHJ1ZSk7CiAJfQogCkBAIC05NzEsNyArMTAzOCw4IEBA IGNoZWNrX3B1Ymxpc2hlcihjb25zdCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAlp bnQJCQltYXhfcHJlcGFyZWRfdHJhbnNhY3Rpb25zOwogCWNoYXIJICAgKm1heF9zbG90X3dhbF9r ZWVwX3NpemU7CiAKLQlwZ19sb2dfaW5mbygiY2hlY2tpbmcgc2V0dGluZ3Mgb24gcHVibGlzaGVy Iik7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJ CSAiY2hlY2tpbmcgc2V0dGluZ3Mgb24gcHVibGlzaGVyIik7CiAKIAljb25uID0gY29ubmVjdF9k YXRhYmFzZShkYmluZm9bMF0ucHViY29ubmluZm8sIHRydWUpOwogCkBAIC05ODEsNyArMTA0OSw4 IEBAIGNoZWNrX3B1Ymxpc2hlcihjb25zdCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykK IAkgKi8KIAlpZiAoc2VydmVyX2lzX2luX3JlY292ZXJ5KGNvbm4pKQogCXsKLQkJcGdfbG9nX2Vy cm9yKCJwcmltYXJ5IHNlcnZlciBjYW5ub3QgYmUgaW4gcmVjb3ZlcnkiKTsKKwkJcGdfY3JlYXRl c3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJwcmltYXJ5IHNl cnZlciBjYW5ub3QgYmUgaW4gcmVjb3ZlcnkiKTsKIAkJZGlzY29ubmVjdF9kYXRhYmFzZShjb25u LCB0cnVlKTsKIAl9CiAKQEAgLTEwMDcsOCArMTA3Niw5IEBAIGNoZWNrX3B1Ymxpc2hlcihjb25z dCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAogCWlmIChQUXJlc3VsdFN0YXR1cyhy ZXMpICE9IFBHUkVTX1RVUExFU19PSykKIAl7Ci0JCXBnX2xvZ19lcnJvcigiY291bGQgbm90IG9i dGFpbiBwdWJsaXNoZXIgc2V0dGluZ3M6ICVzIiwKLQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdl KHJlcykpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlks CisJCQkJCQkgImNvdWxkIG5vdCBvYnRhaW4gcHVibGlzaGVyIHNldHRpbmdzOiAlcyIsCisJCQkJ CQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJCWRpc2Nvbm5lY3RfZGF0YWJhc2UoY29u biwgdHJ1ZSk7CiAJfQogCkBAIC0xMDIyLDQ4ICsxMDkyLDYzIEBAIGNoZWNrX3B1Ymxpc2hlcihj b25zdCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAogCVBRY2xlYXIocmVzKTsKIAot CXBnX2xvZ19kZWJ1ZygicHVibGlzaGVyOiB3YWxfbGV2ZWw6ICVzIiwgd2FsX2xldmVsKTsKLQlw Z19sb2dfZGVidWcoInB1Ymxpc2hlcjogbWF4X3JlcGxpY2F0aW9uX3Nsb3RzOiAlZCIsIG1heF9y ZXBzbG90cyk7Ci0JcGdfbG9nX2RlYnVnKCJwdWJsaXNoZXI6IGN1cnJlbnQgcmVwbGljYXRpb24g c2xvdHM6ICVkIiwgY3VyX3JlcHNsb3RzKTsKLQlwZ19sb2dfZGVidWcoInB1Ymxpc2hlcjogbWF4 X3dhbF9zZW5kZXJzOiAlZCIsIG1heF93YWxzZW5kZXJzKTsKLQlwZ19sb2dfZGVidWcoInB1Ymxp c2hlcjogY3VycmVudCB3YWwgc2VuZGVyczogJWQiLCBjdXJfd2Fsc2VuZGVycyk7Ci0JcGdfbG9n X2RlYnVnKCJwdWJsaXNoZXI6IG1heF9wcmVwYXJlZF90cmFuc2FjdGlvbnM6ICVkIiwKLQkJCQkg bWF4X3ByZXBhcmVkX3RyYW5zYWN0aW9ucyk7Ci0JcGdfbG9nX2RlYnVnKCJwdWJsaXNoZXI6IG1h eF9zbG90X3dhbF9rZWVwX3NpemU6ICVzIiwKLQkJCQkgbWF4X3Nsb3Rfd2FsX2tlZXBfc2l6ZSk7 CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkg InB1Ymxpc2hlcjogd2FsX2xldmVsOiAlcyIsIHdhbF9sZXZlbCk7CisJcGdfY3JlYXRlc3ViX2xv ZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkgInB1Ymxpc2hlcjogbWF4X3Jl cGxpY2F0aW9uX3Nsb3RzOiAlZCIsIG1heF9yZXBzbG90cyk7CisJcGdfY3JlYXRlc3ViX2xvZyhQ R19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkgInB1Ymxpc2hlcjogY3VycmVudCBy ZXBsaWNhdGlvbiBzbG90czogJWQiLCBjdXJfcmVwc2xvdHMpOworCXBnX2NyZWF0ZXN1Yl9sb2co UEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJwdWJsaXNoZXI6IG1heF93YWxf c2VuZGVyczogJWQiLCBtYXhfd2Fsc2VuZGVycyk7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0df REVCVUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkgInB1Ymxpc2hlcjogY3VycmVudCB3YWwgc2Vu ZGVyczogJWQiLCBjdXJfd2Fsc2VuZGVycyk7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVC VUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkgInB1Ymxpc2hlcjogbWF4X3ByZXBhcmVkX3RyYW5z YWN0aW9uczogJWQiLAorCQkJCQkgbWF4X3ByZXBhcmVkX3RyYW5zYWN0aW9ucyk7CisJcGdfY3Jl YXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkgInB1Ymxpc2hl cjogbWF4X3Nsb3Rfd2FsX2tlZXBfc2l6ZTogJXMiLAorCQkJCQkgbWF4X3Nsb3Rfd2FsX2tlZXBf c2l6ZSk7CiAKIAlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIGZhbHNlKTsKIAogCWlmIChzdHJj bXAod2FsX2xldmVsLCAibWluaW1hbCIpID09IDApCiAJewotCQlwZ19sb2dfZXJyb3IoInB1Ymxp c2hlciByZXF1aXJlcyBcIndhbF9sZXZlbFwiID49IFwicmVwbGljYVwiIik7CisJCXBnX2NyZWF0 ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAicHVibGlzaGVy IHJlcXVpcmVzIFwid2FsX2xldmVsXCIgPj0gXCJyZXBsaWNhXCIiKTsKIAkJZmFpbGVkID0gdHJ1 ZTsKIAl9CiAKIAlpZiAobWF4X3JlcHNsb3RzIC0gY3VyX3JlcHNsb3RzIDwgbnVtX2RicykKIAl7 Ci0JCXBnX2xvZ19lcnJvcigicHVibGlzaGVyIHJlcXVpcmVzICVkIHJlcGxpY2F0aW9uIHNsb3Rz LCBidXQgb25seSAlZCByZW1haW4iLAotCQkJCQkgbnVtX2RicywgbWF4X3JlcHNsb3RzIC0gY3Vy X3JlcHNsb3RzKTsKLQkJcGdfbG9nX2Vycm9yX2hpbnQoIkluY3JlYXNlIHRoZSBjb25maWd1cmF0 aW9uIHBhcmFtZXRlciBcIiVzXCIgdG8gYXQgbGVhc3QgJWQuIiwKLQkJCQkJCSAgIm1heF9yZXBs aWNhdGlvbl9zbG90cyIsIGN1cl9yZXBzbG90cyArIG51bV9kYnMpOworCQlwZ19jcmVhdGVzdWJf bG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgInB1Ymxpc2hlciByZXF1 aXJlcyAlZCByZXBsaWNhdGlvbiBzbG90cywgYnV0IG9ubHkgJWQgcmVtYWluIiwKKwkJCQkJCSBu dW1fZGJzLCBtYXhfcmVwc2xvdHMgLSBjdXJfcmVwc2xvdHMpOworCQlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19FUlJPUiwgUEdfTE9HX0hJTlQsCisJCQkJCQkgIkluY3JlYXNlIHRoZSBjb25maWd1 cmF0aW9uIHBhcmFtZXRlciBcIiVzXCIgdG8gYXQgbGVhc3QgJWQuIiwKKwkJCQkJCSAibWF4X3Jl cGxpY2F0aW9uX3Nsb3RzIiwgY3VyX3JlcHNsb3RzICsgbnVtX2Ricyk7CiAJCWZhaWxlZCA9IHRy dWU7CiAJfQogCiAJaWYgKG1heF93YWxzZW5kZXJzIC0gY3VyX3dhbHNlbmRlcnMgPCBudW1fZGJz KQogCXsKLQkJcGdfbG9nX2Vycm9yKCJwdWJsaXNoZXIgcmVxdWlyZXMgJWQgV0FMIHNlbmRlciBw cm9jZXNzZXMsIGJ1dCBvbmx5ICVkIHJlbWFpbiIsCi0JCQkJCSBudW1fZGJzLCBtYXhfd2Fsc2Vu ZGVycyAtIGN1cl93YWxzZW5kZXJzKTsKLQkJcGdfbG9nX2Vycm9yX2hpbnQoIkluY3JlYXNlIHRo ZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBcIiVzXCIgdG8gYXQgbGVhc3QgJWQuIiwKLQkJCQkJ CSAgIm1heF93YWxfc2VuZGVycyIsIGN1cl93YWxzZW5kZXJzICsgbnVtX2Ricyk7CisJCXBnX2Ny ZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAicHVibGlz aGVyIHJlcXVpcmVzICVkIFdBTCBzZW5kZXIgcHJvY2Vzc2VzLCBidXQgb25seSAlZCByZW1haW4i LAorCQkJCQkJIG51bV9kYnMsIG1heF93YWxzZW5kZXJzIC0gY3VyX3dhbHNlbmRlcnMpOworCQlw Z19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0hJTlQsCisJCQkJCQkgIkluY3Jl YXNlIHRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBcIiVzXCIgdG8gYXQgbGVhc3QgJWQuIiwK KwkJCQkJCSAibWF4X3dhbF9zZW5kZXJzIiwgY3VyX3dhbHNlbmRlcnMgKyBudW1fZGJzKTsKIAkJ ZmFpbGVkID0gdHJ1ZTsKIAl9CiAKIAlpZiAobWF4X3ByZXBhcmVkX3RyYW5zYWN0aW9ucyAhPSAw ICYmICFkYmluZm9zLnR3b19waGFzZSkKIAl7Ci0JCXBnX2xvZ193YXJuaW5nKCJ0d29fcGhhc2Ug b3B0aW9uIHdpbGwgbm90IGJlIGVuYWJsZWQgZm9yIHJlcGxpY2F0aW9uIHNsb3RzIik7Ci0JCXBn X2xvZ193YXJuaW5nX2RldGFpbCgiU3Vic2NyaXB0aW9ucyB3aWxsIGJlIGNyZWF0ZWQgd2l0aCB0 aGUgdHdvX3BoYXNlIG9wdGlvbiBkaXNhYmxlZC4gICIKLQkJCQkJCQkgICJQcmVwYXJlZCB0cmFu c2FjdGlvbnMgd2lsbCBiZSByZXBsaWNhdGVkIGF0IENPTU1JVCBQUkVQQVJFRC4iKTsKLQkJcGdf bG9nX3dhcm5pbmdfaGludCgiWW91IGNhbiB1c2UgdGhlIGNvbW1hbmQtbGluZSBvcHRpb24gLS1l bmFibGUtdHdvLXBoYXNlIHRvIGVuYWJsZSB0d29fcGhhc2UuIik7CisJCXBnX2NyZWF0ZXN1Yl9s b2coUEdfTE9HX1dBUk5JTkcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJ0d29fcGhhc2Ugb3B0 aW9uIHdpbGwgbm90IGJlIGVuYWJsZWQgZm9yIHJlcGxpY2F0aW9uIHNsb3RzIik7CisJCXBnX2Ny ZWF0ZXN1Yl9sb2coUEdfTE9HX1dBUk5JTkcsIFBHX0xPR19ERVRBSUwsCisJCQkJCQkgIlN1YnNj cmlwdGlvbnMgd2lsbCBiZSBjcmVhdGVkIHdpdGggdGhlIHR3b19waGFzZSBvcHRpb24gZGlzYWJs ZWQuICAiCisJCQkJCQkgIlByZXBhcmVkIHRyYW5zYWN0aW9ucyB3aWxsIGJlIHJlcGxpY2F0ZWQg YXQgQ09NTUlUIFBSRVBBUkVELiIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5H LCBQR19MT0dfSElOVCwKKwkJCQkJCSAiWW91IGNhbiB1c2UgdGhlIGNvbW1hbmQtbGluZSBvcHRp b24gLS1lbmFibGUtdHdvLXBoYXNlIHRvIGVuYWJsZSB0d29fcGhhc2UuIik7CiAJfQogCiAJLyoK QEAgLTEwNzMsOSArMTE1OCwxMSBAQCBjaGVja19wdWJsaXNoZXIoY29uc3Qgc3RydWN0IExvZ2lj YWxSZXBJbmZvICpkYmluZm8pCiAJICovCiAJaWYgKGRyeV9ydW4gJiYgKHN0cmNtcChtYXhfc2xv dF93YWxfa2VlcF9zaXplLCAiLTEiKSAhPSAwKSkKIAl7Ci0JCXBnX2xvZ193YXJuaW5nKCJyZXF1 aXJlZCBXQUwgY291bGQgYmUgcmVtb3ZlZCBmcm9tIHRoZSBwdWJsaXNoZXIiKTsKLQkJcGdfbG9n X3dhcm5pbmdfaGludCgiU2V0IHRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBcIiVzXCIgdG8g LTEgdG8gZW5zdXJlIHRoYXQgcmVxdWlyZWQgV0FMIGZpbGVzIGFyZSBub3QgcHJlbWF0dXJlbHkg cmVtb3ZlZC4iLAotCQkJCQkJCSJtYXhfc2xvdF93YWxfa2VlcF9zaXplIik7CisJCXBnX2NyZWF0 ZXN1Yl9sb2coUEdfTE9HX1dBUk5JTkcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJyZXF1aXJl ZCBXQUwgY291bGQgYmUgcmVtb3ZlZCBmcm9tIHRoZSBwdWJsaXNoZXIiKTsKKwkJcGdfY3JlYXRl c3ViX2xvZyhQR19MT0dfV0FSTklORywgUEdfTE9HX0hJTlQsCisJCQkJCQkgIlNldCB0aGUgY29u ZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIC0xIHRvIGVuc3VyZSB0aGF0IHJlcXVpcmVk IFdBTCBmaWxlcyBhcmUgbm90IHByZW1hdHVyZWx5IHJlbW92ZWQuIiwKKwkJCQkJCSAibWF4X3Ns b3Rfd2FsX2tlZXBfc2l6ZSIpOwogCX0KIAogCXBnX2ZyZWUod2FsX2xldmVsKTsKQEAgLTExMDYs MTQgKzExOTMsMTYgQEAgY2hlY2tfc3Vic2NyaWJlcihjb25zdCBzdHJ1Y3QgTG9naWNhbFJlcElu Zm8gKmRiaW5mbykKIAlpbnQJCQltYXhfcmVwbG9yaWdpbnM7CiAJaW50CQkJbWF4X3dwcm9jczsK IAotCXBnX2xvZ19pbmZvKCJjaGVja2luZyBzZXR0aW5ncyBvbiBzdWJzY3JpYmVyIik7CisJcGdf Y3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAiY2hlY2tp bmcgc2V0dGluZ3Mgb24gc3Vic2NyaWJlciIpOwogCiAJY29ubiA9IGNvbm5lY3RfZGF0YWJhc2Uo ZGJpbmZvWzBdLnN1YmNvbm5pbmZvLCB0cnVlKTsKIAogCS8qIFRoZSB0YXJnZXQgc2VydmVyIG11 c3QgYmUgYSBzdGFuZGJ5ICovCiAJaWYgKCFzZXJ2ZXJfaXNfaW5fcmVjb3ZlcnkoY29ubikpCiAJ ewotCQlwZ19sb2dfZXJyb3IoInRhcmdldCBzZXJ2ZXIgbXVzdCBiZSBhIHN0YW5kYnkiKTsKKwkJ cGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJ0 YXJnZXQgc2VydmVyIG11c3QgYmUgYSBzdGFuZGJ5Iik7CiAJCWRpc2Nvbm5lY3RfZGF0YWJhc2Uo Y29ubiwgdHJ1ZSk7CiAJfQogCkBAIC0xMTM3LDggKzEyMjYsOSBAQCBjaGVja19zdWJzY3JpYmVy KGNvbnN0IHN0cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQogCiAJaWYgKFBRcmVzdWx0U3Rh dHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBu b3Qgb2J0YWluIHN1YnNjcmliZXIgc2V0dGluZ3M6ICVzIiwKLQkJCQkJIFBRcmVzdWx0RXJyb3JN ZXNzYWdlKHJlcykpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BS SU1BUlksCisJCQkJCQkgImNvdWxkIG5vdCBvYnRhaW4gc3Vic2NyaWJlciBzZXR0aW5nczogJXMi LAorCQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQlkaXNjb25uZWN0X2RhdGFi YXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAtMTE0OCwxMiArMTIzOCwxNiBAQCBjaGVja19zdWJz Y3JpYmVyKGNvbnN0IHN0cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQogCWlmIChzdHJjbXAo UFFnZXR2YWx1ZShyZXMsIDMsIDApLCAiIikgIT0gMCkKIAkJcHJpbWFyeV9zbG90X25hbWUgPSBw Z19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIDMsIDApKTsKIAotCXBnX2xvZ19kZWJ1Zygic3Vic2Ny aWJlcjogbWF4X2xvZ2ljYWxfcmVwbGljYXRpb25fd29ya2VyczogJWQiLAotCQkJCSBtYXhfbHJ3 b3JrZXJzKTsKLQlwZ19sb2dfZGVidWcoInN1YnNjcmliZXI6IG1heF9hY3RpdmVfcmVwbGljYXRp b25fb3JpZ2luczogJWQiLCBtYXhfcmVwbG9yaWdpbnMpOwotCXBnX2xvZ19kZWJ1Zygic3Vic2Ny aWJlcjogbWF4X3dvcmtlcl9wcm9jZXNzZXM6ICVkIiwgbWF4X3dwcm9jcyk7CisJcGdfY3JlYXRl c3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkgInN1YnNjcmliZXI6 IG1heF9sb2dpY2FsX3JlcGxpY2F0aW9uX3dvcmtlcnM6ICVkIiwKKwkJCQkJIG1heF9scndvcmtl cnMpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJ CQkJICJzdWJzY3JpYmVyOiBtYXhfYWN0aXZlX3JlcGxpY2F0aW9uX29yaWdpbnM6ICVkIiwgbWF4 X3JlcGxvcmlnaW5zKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BS SU1BUlksCisJCQkJCSAic3Vic2NyaWJlcjogbWF4X3dvcmtlcl9wcm9jZXNzZXM6ICVkIiwgbWF4 X3dwcm9jcyk7CiAJaWYgKHByaW1hcnlfc2xvdF9uYW1lKQotCQlwZ19sb2dfZGVidWcoInN1YnNj cmliZXI6IHByaW1hcnlfc2xvdF9uYW1lOiAlcyIsIHByaW1hcnlfc2xvdF9uYW1lKTsKKwkJcGdf Y3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJzdWJz Y3JpYmVyOiBwcmltYXJ5X3Nsb3RfbmFtZTogJXMiLCBwcmltYXJ5X3Nsb3RfbmFtZSk7CiAKIAlQ UWNsZWFyKHJlcyk7CiAKQEAgLTExNjEsMjggKzEyNTUsMzQgQEAgY2hlY2tfc3Vic2NyaWJlcihj b25zdCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAogCWlmIChtYXhfcmVwbG9yaWdp bnMgPCBudW1fZGJzKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJzdWJzY3JpYmVyIHJlcXVpcmVzICVk IGFjdGl2ZSByZXBsaWNhdGlvbiBvcmlnaW5zLCBidXQgb25seSAlZCByZW1haW4iLAotCQkJCQkg bnVtX2RicywgbWF4X3JlcGxvcmlnaW5zKTsKLQkJcGdfbG9nX2Vycm9yX2hpbnQoIkluY3JlYXNl IHRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBcIiVzXCIgdG8gYXQgbGVhc3QgJWQuIiwKLQkJ CQkJCSAgIm1heF9hY3RpdmVfcmVwbGljYXRpb25fb3JpZ2lucyIsIG51bV9kYnMpOworCQlwZ19j cmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgInN1YnNj cmliZXIgcmVxdWlyZXMgJWQgYWN0aXZlIHJlcGxpY2F0aW9uIG9yaWdpbnMsIGJ1dCBvbmx5ICVk IHJlbWFpbiIsCisJCQkJCQkgbnVtX2RicywgbWF4X3JlcGxvcmlnaW5zKTsKKwkJcGdfY3JlYXRl c3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19ISU5ULAorCQkJCQkJICJJbmNyZWFzZSB0aGUg Y29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0ICVkLiIsCisJCQkJCQkg Im1heF9hY3RpdmVfcmVwbGljYXRpb25fb3JpZ2lucyIsIG51bV9kYnMpOwogCQlmYWlsZWQgPSB0 cnVlOwogCX0KIAogCWlmIChtYXhfbHJ3b3JrZXJzIDwgbnVtX2RicykKIAl7Ci0JCXBnX2xvZ19l cnJvcigic3Vic2NyaWJlciByZXF1aXJlcyAlZCBsb2dpY2FsIHJlcGxpY2F0aW9uIHdvcmtlcnMs IGJ1dCBvbmx5ICVkIHJlbWFpbiIsCi0JCQkJCSBudW1fZGJzLCBtYXhfbHJ3b3JrZXJzKTsKLQkJ cGdfbG9nX2Vycm9yX2hpbnQoIkluY3JlYXNlIHRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBc IiVzXCIgdG8gYXQgbGVhc3QgJWQuIiwKLQkJCQkJCSAgIm1heF9sb2dpY2FsX3JlcGxpY2F0aW9u X3dvcmtlcnMiLCBudW1fZGJzKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBH X0xPR19QUklNQVJZLAorCQkJCQkJICJzdWJzY3JpYmVyIHJlcXVpcmVzICVkIGxvZ2ljYWwgcmVw bGljYXRpb24gd29ya2VycywgYnV0IG9ubHkgJWQgcmVtYWluIiwKKwkJCQkJCSBudW1fZGJzLCBt YXhfbHJ3b3JrZXJzKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19I SU5ULAorCQkJCQkJICJJbmNyZWFzZSB0aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wi IHRvIGF0IGxlYXN0ICVkLiIsCisJCQkJCQkgIm1heF9sb2dpY2FsX3JlcGxpY2F0aW9uX3dvcmtl cnMiLCBudW1fZGJzKTsKIAkJZmFpbGVkID0gdHJ1ZTsKIAl9CiAKIAlpZiAobWF4X3dwcm9jcyA8 IG51bV9kYnMgKyAxKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJzdWJzY3JpYmVyIHJlcXVpcmVzICVk IHdvcmtlciBwcm9jZXNzZXMsIGJ1dCBvbmx5ICVkIHJlbWFpbiIsCi0JCQkJCSBudW1fZGJzICsg MSwgbWF4X3dwcm9jcyk7Ci0JCXBnX2xvZ19lcnJvcl9oaW50KCJJbmNyZWFzZSB0aGUgY29uZmln dXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0ICVkLiIsCi0JCQkJCQkgICJtYXhf d29ya2VyX3Byb2Nlc3NlcyIsIG51bV9kYnMgKyAxKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19M T0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJzdWJzY3JpYmVyIHJlcXVpcmVzICVk IHdvcmtlciBwcm9jZXNzZXMsIGJ1dCBvbmx5ICVkIHJlbWFpbiIsCisJCQkJCQkgbnVtX2RicyAr IDEsIG1heF93cHJvY3MpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9H X0hJTlQsCisJCQkJCQkgIkluY3JlYXNlIHRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBcIiVz XCIgdG8gYXQgbGVhc3QgJWQuIiwKKwkJCQkJCSAibWF4X3dvcmtlcl9wcm9jZXNzZXMiLCBudW1f ZGJzICsgMSk7CiAJCWZhaWxlZCA9IHRydWU7CiAJfQogCkBAIC0xMjE1LDE5ICsxMzE1LDIyIEBA IGRyb3BfZXhpc3Rpbmdfc3Vic2NyaXB0aW9uKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc3Vi bmFtZSwgY29uc3QgY2hhciAqZGJuYW1lCiAJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgRFJP UCBTVUJTQ1JJUFRJT04gJXM7Iiwgc3VibmFtZSk7CiAKIAlpZiAoZHJ5X3J1bikKLQkJcGdfbG9n X2luZm8oImRyeS1ydW46IHdvdWxkIGRyb3Agc3Vic2NyaXB0aW9uIFwiJXNcIiBpbiBkYXRhYmFz ZSBcIiVzXCIiLAotCQkJCQlzdWJuYW1lLCBkYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBH X0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZHJ5LXJ1bjogd291bGQgZHJvcCBz dWJzY3JpcHRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCisJCQkJCQkgc3VibmFtZSwg ZGJuYW1lKTsKIAllbHNlCiAJewotCQlwZ19sb2dfaW5mbygiZHJvcHBpbmcgc3Vic2NyaXB0aW9u IFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIiLAotCQkJCQlzdWJuYW1lLCBkYm5hbWUpOworCQlw Z19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZHJv cHBpbmcgc3Vic2NyaXB0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIiLAorCQkJCQkJIHN1 Ym5hbWUsIGRibmFtZSk7CiAKIAkJcmVzID0gUFFleGVjKGNvbm4sIHF1ZXJ5LT5kYXRhKTsKIAog CQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQogCQl7Ci0JCQlw Z19sb2dfZXJyb3IoImNvdWxkIG5vdCBkcm9wIHN1YnNjcmlwdGlvbiBcIiVzXCI6ICVzIiwKLQkJ CQkJCSBzdWJuYW1lLCBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKKwkJCXBnX2NyZWF0ZXN1 Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCQkgImNvdWxkIG5vdCBk cm9wIHN1YnNjcmlwdGlvbiBcIiVzXCI6ICVzIiwKKwkJCQkJCQkgc3VibmFtZSwgUFFyZXN1bHRF cnJvck1lc3NhZ2UocmVzKSk7CiAJCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwog CQl9CiAKQEAgLTEyNjEsOCArMTM2NCw5IEBAIGNoZWNrX2FuZF9kcm9wX2V4aXN0aW5nX3N1YnNj cmlwdGlvbnMoUEdjb25uICpjb25uLAogCiAJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdS RVNfVFVQTEVTX09LKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgb2J0YWluIHByZS1l eGlzdGluZyBzdWJzY3JpcHRpb25zOiAlcyIsCi0JCQkJCSBQUXJlc3VsdEVycm9yTWVzc2FnZShy ZXMpKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAor CQkJCQkJICJjb3VsZCBub3Qgb2J0YWluIHByZS1leGlzdGluZyBzdWJzY3JpcHRpb25zOiAlcyIs CisJCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJCWRpc2Nvbm5lY3RfZGF0YWJh c2UoY29ubiwgdHJ1ZSk7CiAJfQogCkBAIC0xMzczLDcgKzE0NzcsOCBAQCBzZXR1cF9yZWNvdmVy eShjb25zdCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbywgY29uc3QgY2hhciAqZGF0YWRp ciwgY29uc3QgYwogCQkJCQkJICBsc24pOwogCX0KIAotCXBnX2xvZ19kZWJ1ZygicmVjb3Zlcnkg cGFyYW1ldGVyczpcbiVzIiwgcmVjb3Zlcnljb25mY29udGVudHMtPmRhdGEpOworCXBnX2NyZWF0 ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJyZWNvdmVyeSBw YXJhbWV0ZXJzOlxuJXMiLCByZWNvdmVyeWNvbmZjb250ZW50cy0+ZGF0YSk7CiAKIAlpZiAoIWRy eV9ydW4pCiAJewpAQCAtMTQyNyw5ICsxNTMyLDExIEBAIGRyb3BfcHJpbWFyeV9yZXBsaWNhdGlv bl9zbG90KHN0cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvLCBjb25zdCBjaGFyICpzbG90bmFt CiAJfQogCWVsc2UKIAl7Ci0JCXBnX2xvZ193YXJuaW5nKCJjb3VsZCBub3QgZHJvcCByZXBsaWNh dGlvbiBzbG90IFwiJXNcIiBvbiBwcmltYXJ5IiwKLQkJCQkJICAgc2xvdG5hbWUpOwotCQlwZ19s b2dfd2FybmluZ19oaW50KCJEcm9wIHRoaXMgcmVwbGljYXRpb24gc2xvdCBzb29uIHRvIGF2b2lk IHJldGVudGlvbiBvZiBXQUwgZmlsZXMuIik7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX1dB Uk5JTkcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJjb3VsZCBub3QgZHJvcCByZXBsaWNhdGlv biBzbG90IFwiJXNcIiBvbiBwcmltYXJ5IiwKKwkJCQkJCSBzbG90bmFtZSk7CisJCXBnX2NyZWF0 ZXN1Yl9sb2coUEdfTE9HX1dBUk5JTkcsIFBHX0xPR19ISU5ULAorCQkJCQkJICJEcm9wIHRoaXMg cmVwbGljYXRpb24gc2xvdCBzb29uIHRvIGF2b2lkIHJldGVudGlvbiBvZiBXQUwgZmlsZXMuIik7 CiAJfQogfQogCkBAIC0xNDYxLDkgKzE1NjgsMTEgQEAgZHJvcF9mYWlsb3Zlcl9yZXBsaWNhdGlv bl9zbG90cyhzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAkJfQogCQllbHNlCiAJCXsK LQkJCXBnX2xvZ193YXJuaW5nKCJjb3VsZCBub3Qgb2J0YWluIGZhaWxvdmVyIHJlcGxpY2F0aW9u IHNsb3QgaW5mb3JtYXRpb246ICVzIiwKLQkJCQkJCSAgIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJl cykpOwotCQkJcGdfbG9nX3dhcm5pbmdfaGludCgiRHJvcCB0aGUgZmFpbG92ZXIgcmVwbGljYXRp b24gc2xvdHMgb24gc3Vic2NyaWJlciBzb29uIHRvIGF2b2lkIHJldGVudGlvbiBvZiBXQUwgZmls ZXMuIik7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfUFJJTUFS WSwKKwkJCQkJCQkgImNvdWxkIG5vdCBvYnRhaW4gZmFpbG92ZXIgcmVwbGljYXRpb24gc2xvdCBp bmZvcm1hdGlvbjogJXMiLAorCQkJCQkJCSBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKKwkJ CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX1dBUk5JTkcsIFBHX0xPR19ISU5ULAorCQkJCQkJCSAi RHJvcCB0aGUgZmFpbG92ZXIgcmVwbGljYXRpb24gc2xvdHMgb24gc3Vic2NyaWJlciBzb29uIHRv IGF2b2lkIHJldGVudGlvbiBvZiBXQUwgZmlsZXMuIik7CiAJCX0KIAogCQlQUWNsZWFyKHJlcyk7 CkBAIC0xNDcxLDggKzE1ODAsMTAgQEAgZHJvcF9mYWlsb3Zlcl9yZXBsaWNhdGlvbl9zbG90cyhz dHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAl9CiAJZWxzZQogCXsKLQkJcGdfbG9nX3dh cm5pbmcoImNvdWxkIG5vdCBkcm9wIGZhaWxvdmVyIHJlcGxpY2F0aW9uIHNsb3QiKTsKLQkJcGdf bG9nX3dhcm5pbmdfaGludCgiRHJvcCB0aGUgZmFpbG92ZXIgcmVwbGljYXRpb24gc2xvdHMgb24g c3Vic2NyaWJlciBzb29uIHRvIGF2b2lkIHJldGVudGlvbiBvZiBXQUwgZmlsZXMuIik7CisJCXBn X2NyZWF0ZXN1Yl9sb2coUEdfTE9HX1dBUk5JTkcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJj b3VsZCBub3QgZHJvcCBmYWlsb3ZlciByZXBsaWNhdGlvbiBzbG90Iik7CisJCXBnX2NyZWF0ZXN1 Yl9sb2coUEdfTE9HX1dBUk5JTkcsIFBHX0xPR19ISU5ULAorCQkJCQkJICJEcm9wIHRoZSBmYWls b3ZlciByZXBsaWNhdGlvbiBzbG90cyBvbiBzdWJzY3JpYmVyIHNvb24gdG8gYXZvaWQgcmV0ZW50 aW9uIG9mIFdBTCBmaWxlcy4iKTsKIAl9CiB9CiAKQEAgLTE0OTQsMTEgKzE2MDUsMTMgQEAgY3Jl YXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdChQR2Nvbm4gKmNvbm4sIHN0cnVjdCBMb2dpY2Fs UmVwSW5mbyAqZGJpbmZvKQogCUFzc2VydChjb25uICE9IE5VTEwpOwogCiAJaWYgKGRyeV9ydW4p Ci0JCXBnX2xvZ19pbmZvKCJkcnktcnVuOiB3b3VsZCBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNs b3QgXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiBvbiBwdWJsaXNoZXIiLAotCQkJCQlzbG90X25h bWUsIGRiaW5mby0+ZGJuYW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdf TE9HX1BSSU1BUlksCisJCQkJCQkgImRyeS1ydW46IHdvdWxkIGNyZWF0ZSB0aGUgcmVwbGljYXRp b24gc2xvdCBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIG9uIHB1Ymxpc2hlciIsCisJCQkJCQkg c2xvdF9uYW1lLCBkYmluZm8tPmRibmFtZSk7CiAJZWxzZQotCQlwZ19sb2dfaW5mbygiY3JlYXRp bmcgdGhlIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiBvbiBwdWJs aXNoZXIiLAotCQkJCQlzbG90X25hbWUsIGRiaW5mby0+ZGJuYW1lKTsKKwkJcGdfY3JlYXRlc3Vi X2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImNyZWF0aW5nIHRoZSBy ZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIgb24gcHVibGlzaGVyIiwK KwkJCQkJCSBzbG90X25hbWUsIGRiaW5mby0+ZGJuYW1lKTsKIAogCXNsb3RfbmFtZV9lc2MgPSBQ UWVzY2FwZUxpdGVyYWwoY29ubiwgc2xvdF9uYW1lLCBzdHJsZW4oc2xvdF9uYW1lKSk7CiAKQEAg LTE1MDksMTYgKzE2MjIsMTggQEAgY3JlYXRlX2xvZ2ljYWxfcmVwbGljYXRpb25fc2xvdChQR2Nv bm4gKmNvbm4sIHN0cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQogCiAJUFFmcmVlbWVtKHNs b3RfbmFtZV9lc2MpOwogCi0JcGdfbG9nX2RlYnVnKCJjb21tYW5kIGlzOiAlcyIsIHN0ci0+ZGF0 YSk7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAorCQkJ CQkgImNvbW1hbmQgaXM6ICVzIiwgc3RyLT5kYXRhKTsKIAogCWlmICghZHJ5X3J1bikKIAl7CiAJ CXJlcyA9IFBRZXhlYyhjb25uLCBzdHItPmRhdGEpOwogCQlpZiAoUFFyZXN1bHRTdGF0dXMocmVz KSAhPSBQR1JFU19UVVBMRVNfT0spCiAJCXsKLQkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IGNy ZWF0ZSByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCI6ICVzIiwKLQkJ CQkJCSBzbG90X25hbWUsIGRiaW5mby0+ZGJuYW1lLAotCQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNz YWdlKHJlcykpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklN QVJZLAorCQkJCQkJCSAiY291bGQgbm90IGNyZWF0ZSByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBp biBkYXRhYmFzZSBcIiVzXCI6ICVzIiwKKwkJCQkJCQkgc2xvdF9uYW1lLCBkYmluZm8tPmRibmFt ZSwKKwkJCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJCQlQUWNsZWFyKHJlcyk7 CiAJCQlkZXN0cm95UFFFeHBCdWZmZXIoc3RyKTsKIAkJCXJldHVybiBOVUxMOwpAQCAtMTU0Nywx MSArMTY2MiwxMyBAQCBkcm9wX3JlcGxpY2F0aW9uX3Nsb3QoUEdjb25uICpjb25uLCBzdHJ1Y3Qg TG9naWNhbFJlcEluZm8gKmRiaW5mbywKIAlBc3NlcnQoY29ubiAhPSBOVUxMKTsKIAogCWlmIChk cnlfcnVuKQotCQlwZ19sb2dfaW5mbygiZHJ5LXJ1bjogd291bGQgZHJvcCB0aGUgcmVwbGljYXRp b24gc2xvdCBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJc2xvdF9uYW1lLCBkYmlu Zm8tPmRibmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklN QVJZLAorCQkJCQkJICJkcnktcnVuOiB3b3VsZCBkcm9wIHRoZSByZXBsaWNhdGlvbiBzbG90IFwi JXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIiLAorCQkJCQkJIHNsb3RfbmFtZSwgZGJpbmZvLT5kYm5h bWUpOwogCWVsc2UKLQkJcGdfbG9nX2luZm8oImRyb3BwaW5nIHRoZSByZXBsaWNhdGlvbiBzbG90 IFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIiLAotCQkJCQlzbG90X25hbWUsIGRiaW5mby0+ZGJu YW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJ CQkJCQkgImRyb3BwaW5nIHRoZSByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBpbiBkYXRhYmFzZSBc IiVzXCIiLAorCQkJCQkJIHNsb3RfbmFtZSwgZGJpbmZvLT5kYm5hbWUpOwogCiAJc2xvdF9uYW1l X2VzYyA9IFBRZXNjYXBlTGl0ZXJhbChjb25uLCBzbG90X25hbWUsIHN0cmxlbihzbG90X25hbWUp KTsKIApAQCAtMTU1OSwxNSArMTY3NiwxNyBAQCBkcm9wX3JlcGxpY2F0aW9uX3Nsb3QoUEdjb25u ICpjb25uLCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbywKIAogCVBRZnJlZW1lbShzbG90 X25hbWVfZXNjKTsKIAotCXBnX2xvZ19kZWJ1ZygiY29tbWFuZCBpczogJXMiLCBzdHItPmRhdGEp OworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJ ICJjb21tYW5kIGlzOiAlcyIsIHN0ci0+ZGF0YSk7CiAKIAlpZiAoIWRyeV9ydW4pCiAJewogCQly ZXMgPSBQUWV4ZWMoY29ubiwgc3RyLT5kYXRhKTsKIAkJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykg IT0gUEdSRVNfVFVQTEVTX09LKQogCQl7Ci0JCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBkcm9w IHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIjogJXMiLAotCQkJCQkJ IHNsb3RfbmFtZSwgZGJpbmZvLT5kYm5hbWUsIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwor CQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJ CSAiY291bGQgbm90IGRyb3AgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgaW4gZGF0YWJhc2UgXCIl c1wiOiAlcyIsCisJCQkJCQkJIHNsb3RfbmFtZSwgZGJpbmZvLT5kYm5hbWUsIFBRcmVzdWx0RXJy b3JNZXNzYWdlKHJlcykpOwogCQkJZGJpbmZvLT5tYWRlX3JlcGxzbG90ID0gZmFsc2U7CS8qIGRv bid0IHRyeSBhZ2Fpbi4gKi8KIAkJfQogCkBAIC0xNTg3LDI1ICsxNzA2LDMyIEBAIHBnX2N0bF9z dGF0dXMoY29uc3QgY2hhciAqcGdfY3RsX2NtZCwgaW50IHJjKQogCXsKIAkJaWYgKFdJRkVYSVRF RChyYykpCiAJCXsKLQkJCXBnX2xvZ19lcnJvcigicGdfY3RsIGZhaWxlZCB3aXRoIGV4aXQgY29k ZSAlZCIsIFdFWElUU1RBVFVTKHJjKSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJP UiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJICJwZ19jdGwgZmFpbGVkIHdpdGggZXhpdCBjb2Rl ICVkIiwKKwkJCQkJCQkgV0VYSVRTVEFUVVMocmMpKTsKIAkJfQogCQllbHNlIGlmIChXSUZTSUdO QUxFRChyYykpCiAJCXsKICNpZiBkZWZpbmVkKFdJTjMyKQotCQkJcGdfbG9nX2Vycm9yKCJwZ19j dGwgd2FzIHRlcm1pbmF0ZWQgYnkgZXhjZXB0aW9uIDB4JVgiLAotCQkJCQkJIFdURVJNU0lHKHJj KSk7Ci0JCQlwZ19sb2dfZXJyb3JfZGV0YWlsKCJTZWUgQyBpbmNsdWRlIGZpbGUgXCJudHN0YXR1 cy5oXCIgZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIGhleGFkZWNpbWFsIHZhbHVlLiIpOworCQkJ cGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJCSAi cGdfY3RsIHdhcyB0ZXJtaW5hdGVkIGJ5IGV4Y2VwdGlvbiAweCVYIiwKKwkJCQkJCQkgV1RFUk1T SUcocmMpKTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfREVUQUlM LAorCQkJCQkJCSAiU2VlIEMgaW5jbHVkZSBmaWxlIFwibnRzdGF0dXMuaFwiIGZvciBhIGRlc2Ny aXB0aW9uIG9mIHRoZSBoZXhhZGVjaW1hbCB2YWx1ZS4iKTsKICNlbHNlCi0JCQlwZ19sb2dfZXJy b3IoInBnX2N0bCB3YXMgdGVybWluYXRlZCBieSBzaWduYWwgJWQ6ICVzIiwKLQkJCQkJCSBXVEVS TVNJRyhyYyksIHBnX3N0cnNpZ25hbChXVEVSTVNJRyhyYykpKTsKKwkJCXBnX2NyZWF0ZXN1Yl9s b2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCQkgInBnX2N0bCB3YXMgdGVy bWluYXRlZCBieSBzaWduYWwgJWQ6ICVzIiwKKwkJCQkJCQkgV1RFUk1TSUcocmMpLCBwZ19zdHJz aWduYWwoV1RFUk1TSUcocmMpKSk7CiAjZW5kaWYKIAkJfQogCQllbHNlCiAJCXsKLQkJCXBnX2xv Z19lcnJvcigicGdfY3RsIGV4aXRlZCB3aXRoIHVucmVjb2duaXplZCBzdGF0dXMgJWQiLCByYyk7 CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJ CQkJICJwZ19jdGwgZXhpdGVkIHdpdGggdW5yZWNvZ25pemVkIHN0YXR1cyAlZCIsIHJjKTsKIAkJ fQogCi0JCXBnX2xvZ19lcnJvcl9kZXRhaWwoIlRoZSBmYWlsZWQgY29tbWFuZCB3YXM6ICVzIiwg cGdfY3RsX2NtZCk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfREVU QUlMLAorCQkJCQkJICJUaGUgZmFpbGVkIGNvbW1hbmQgd2FzOiAlcyIsIHBnX2N0bF9jbWQpOwog CQlleGl0KDEpOwogCX0KIH0KQEAgLTE2NTAsMTIgKzE3NzYsMTQgQEAgc3RhcnRfc3RhbmRieV9z ZXJ2ZXIoY29uc3Qgc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25zICpvcHQsIGJvb2wgcmVz dHJpY3RlZF8KIAlpZiAocmVzdHJpY3RfbG9naWNhbF93b3JrZXIpCiAJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHBnX2N0bF9jbWQsICIgLW8gXCItYyBtYXhfbG9naWNhbF9yZXBsaWNhdGlvbl93b3Jr ZXJzPTBcIiIpOwogCi0JcGdfbG9nX2RlYnVnKCJwZ19jdGwgY29tbWFuZCBpczogJXMiLCBwZ19j dGxfY21kLT5kYXRhKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BS SU1BUlksCisJCQkJCSAicGdfY3RsIGNvbW1hbmQgaXM6ICVzIiwgcGdfY3RsX2NtZC0+ZGF0YSk7 CiAJcmMgPSBzeXN0ZW0ocGdfY3RsX2NtZC0+ZGF0YSk7CiAJcGdfY3RsX3N0YXR1cyhwZ19jdGxf Y21kLT5kYXRhLCByYyk7CiAJc3RhbmRieV9ydW5uaW5nID0gdHJ1ZTsKIAlkZXN0cm95UFFFeHBC dWZmZXIocGdfY3RsX2NtZCk7Ci0JcGdfbG9nX2luZm8oInNlcnZlciB3YXMgc3RhcnRlZCIpOwor CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkgInNl cnZlciB3YXMgc3RhcnRlZCIpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMTY2NiwxMSArMTc5NCwx MyBAQCBzdG9wX3N0YW5kYnlfc2VydmVyKGNvbnN0IGNoYXIgKmRhdGFkaXIpCiAKIAlwZ19jdGxf Y21kID0gcHNwcmludGYoIlwiJXNcIiBzdG9wIC1EIFwiJXNcIiAtcyIsIHBnX2N0bF9wYXRoLAog CQkJCQkJICBkYXRhZGlyKTsKLQlwZ19sb2dfZGVidWcoInBnX2N0bCBjb21tYW5kIGlzOiAlcyIs IHBnX2N0bF9jbWQpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJ TUFSWSwKKwkJCQkJICJwZ19jdGwgY29tbWFuZCBpczogJXMiLCBwZ19jdGxfY21kKTsKIAlyYyA9 IHN5c3RlbShwZ19jdGxfY21kKTsKIAlwZ19jdGxfc3RhdHVzKHBnX2N0bF9jbWQsIHJjKTsKIAlz dGFuZGJ5X3J1bm5pbmcgPSBmYWxzZTsKLQlwZ19sb2dfaW5mbygic2VydmVyIHdhcyBzdG9wcGVk Iik7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJ CSAic2VydmVyIHdhcyBzdG9wcGVkIik7CiB9CiAKIC8qCkBAIC0xNjg5LDcgKzE4MTksOCBAQCB3 YWl0X2Zvcl9lbmRfcmVjb3ZlcnkoY29uc3QgY2hhciAqY29ubmluZm8sIGNvbnN0IHN0cnVjdCBD cmVhdGVTdWJzY3JpYmVyT3B0aW9ucwogCWJvb2wJCXJlYWR5ID0gZmFsc2U7CiAJaW50CQkJdGlt ZXIgPSAwOwogCi0JcGdfbG9nX2luZm8oIndhaXRpbmcgZm9yIHRoZSB0YXJnZXQgc2VydmVyIHRv IHJlYWNoIHRoZSBjb25zaXN0ZW50IHN0YXRlIik7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0df SU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAid2FpdGluZyBmb3IgdGhlIHRhcmdldCBzZXJ2 ZXIgdG8gcmVhY2ggdGhlIGNvbnNpc3RlbnQgc3RhdGUiKTsKIAogCWNvbm4gPSBjb25uZWN0X2Rh dGFiYXNlKGNvbm5pbmZvLCB0cnVlKTsKIApAQCAtMTcwNyw3ICsxODM4LDggQEAgd2FpdF9mb3Jf ZW5kX3JlY292ZXJ5KGNvbnN0IGNoYXIgKmNvbm5pbmZvLCBjb25zdCBzdHJ1Y3QgQ3JlYXRlU3Vi c2NyaWJlck9wdGlvbnMKIAkJaWYgKG9wdC0+cmVjb3ZlcnlfdGltZW91dCA+IDAgJiYgdGltZXIg Pj0gb3B0LT5yZWNvdmVyeV90aW1lb3V0KQogCQl7CiAJCQlzdG9wX3N0YW5kYnlfc2VydmVyKHN1 YnNjcmliZXJfZGlyKTsKLQkJCXBnX2xvZ19lcnJvcigicmVjb3ZlcnkgdGltZWQgb3V0Iik7CisJ CQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJ ICJyZWNvdmVyeSB0aW1lZCBvdXQiKTsKIAkJCWRpc2Nvbm5lY3RfZGF0YWJhc2UoY29ubiwgdHJ1 ZSk7CiAJCX0KIApAQCAtMTcyMSw4ICsxODUzLDEwIEBAIHdhaXRfZm9yX2VuZF9yZWNvdmVyeShj b25zdCBjaGFyICpjb25uaW5mbywgY29uc3Qgc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25z CiAJaWYgKCFyZWFkeSkKIAkJcGdfZmF0YWwoInNlcnZlciBkaWQgbm90IGVuZCByZWNvdmVyeSIp OwogCi0JcGdfbG9nX2luZm8oInRhcmdldCBzZXJ2ZXIgcmVhY2hlZCB0aGUgY29uc2lzdGVudCBz dGF0ZSIpOwotCXBnX2xvZ19pbmZvX2hpbnQoIklmIHBnX2NyZWF0ZXN1YnNjcmliZXIgZmFpbHMg YWZ0ZXIgdGhpcyBwb2ludCwgeW91IG11c3QgcmVjcmVhdGUgdGhlIHBoeXNpY2FsIHJlcGxpY2Eg YmVmb3JlIGNvbnRpbnVpbmcuIik7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdf TE9HX1BSSU1BUlksCisJCQkJCSAidGFyZ2V0IHNlcnZlciByZWFjaGVkIHRoZSBjb25zaXN0ZW50 IHN0YXRlIik7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX0hJTlQsCisJ CQkJCSAiSWYgcGdfY3JlYXRlc3Vic2NyaWJlciBmYWlscyBhZnRlciB0aGlzIHBvaW50LCB5b3Ug bXVzdCByZWNyZWF0ZSB0aGUgcGh5c2ljYWwgcmVwbGljYSBiZWZvcmUgY29udGludWluZy4iKTsK IH0KIAogLyoKQEAgLTE3NDksOCArMTg4Myw5IEBAIGNyZWF0ZV9wdWJsaWNhdGlvbihQR2Nvbm4g KmNvbm4sIHN0cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQogCXJlcyA9IFBRZXhlYyhjb25u LCBzdHItPmRhdGEpOwogCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19P SykKIAl7Ci0JCXBnX2xvZ19lcnJvcigiY291bGQgbm90IG9idGFpbiBwdWJsaWNhdGlvbiBpbmZv cm1hdGlvbjogJXMiLAotCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCXBnX2Ny ZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiY291bGQg bm90IG9idGFpbiBwdWJsaWNhdGlvbiBpbmZvcm1hdGlvbjogJXMiLAorCQkJCQkJIFBRcmVzdWx0 RXJyb3JNZXNzYWdlKHJlcykpOwogCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwog CX0KIApAQCAtMTc2Myw4ICsxODk4LDEwIEBAIGNyZWF0ZV9wdWJsaWNhdGlvbihQR2Nvbm4gKmNv bm4sIHN0cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQogCQkgKiBwZ19jcmVhdGVzdWJzY3Jp YmVyXyBwcmVmaXggZm9sbG93ZWQgYnkgdGhlIGV4YWN0IGRhdGFiYXNlIG9pZCBhbmQKIAkJICog YSByYW5kb20gbnVtYmVyLgogCQkgKi8KLQkJcGdfbG9nX2Vycm9yKCJwdWJsaWNhdGlvbiBcIiVz XCIgYWxyZWFkeSBleGlzdHMiLCBkYmluZm8tPnB1Ym5hbWUpOwotCQlwZ19sb2dfZXJyb3JfaGlu dCgiQ29uc2lkZXIgcmVuYW1pbmcgdGhpcyBwdWJsaWNhdGlvbiBiZWZvcmUgY29udGludWluZy4i KTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJ CQkJICJwdWJsaWNhdGlvbiBcIiVzXCIgYWxyZWFkeSBleGlzdHMiLCBkYmluZm8tPnB1Ym5hbWUp OworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0hJTlQsCisJCQkJCQkg IkNvbnNpZGVyIHJlbmFtaW5nIHRoaXMgcHVibGljYXRpb24gYmVmb3JlIGNvbnRpbnVpbmcuIik7 CiAJCWRpc2Nvbm5lY3RfZGF0YWJhc2UoY29ubiwgdHJ1ZSk7CiAJfQogCkBAIC0xNzcyLDI0ICsx OTA5LDI4IEBAIGNyZWF0ZV9wdWJsaWNhdGlvbihQR2Nvbm4gKmNvbm4sIHN0cnVjdCBMb2dpY2Fs UmVwSW5mbyAqZGJpbmZvKQogCXJlc2V0UFFFeHBCdWZmZXIoc3RyKTsKIAogCWlmIChkcnlfcnVu KQotCQlwZ19sb2dfaW5mbygiZHJ5LXJ1bjogd291bGQgY3JlYXRlIHB1YmxpY2F0aW9uIFwiJXNc IiBpbiBkYXRhYmFzZSBcIiVzXCIiLAotCQkJCQlkYmluZm8tPnB1Ym5hbWUsIGRiaW5mby0+ZGJu YW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJ CQkJCQkgImRyeS1ydW46IHdvdWxkIGNyZWF0ZSBwdWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0YWJh c2UgXCIlc1wiIiwKKwkJCQkJCSBkYmluZm8tPnB1Ym5hbWUsIGRiaW5mby0+ZGJuYW1lKTsKIAll bHNlCi0JCXBnX2xvZ19pbmZvKCJjcmVhdGluZyBwdWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0YWJh c2UgXCIlc1wiIiwKLQkJCQkJZGJpbmZvLT5wdWJuYW1lLCBkYmluZm8tPmRibmFtZSk7CisJCXBn X2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJjcmVh dGluZyBwdWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBkYmlu Zm8tPnB1Ym5hbWUsIGRiaW5mby0+ZGJuYW1lKTsKIAogCWFwcGVuZFBRRXhwQnVmZmVyKHN0ciwg IkNSRUFURSBQVUJMSUNBVElPTiAlcyBGT1IgQUxMIFRBQkxFUyIsCiAJCQkJCSAgaXB1Ym5hbWVf ZXNjKTsKIAotCXBnX2xvZ19kZWJ1ZygiY29tbWFuZCBpczogJXMiLCBzdHItPmRhdGEpOworCXBn X2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJjb21t YW5kIGlzOiAlcyIsIHN0ci0+ZGF0YSk7CiAKIAlpZiAoIWRyeV9ydW4pCiAJewogCQlyZXMgPSBQ UWV4ZWMoY29ubiwgc3RyLT5kYXRhKTsKIAkJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdS RVNfQ09NTUFORF9PSykKIAkJewotCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3QgY3JlYXRlIHB1 YmxpY2F0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCI6ICVzIiwKLQkJCQkJCSBkYmluZm8t PnB1Ym5hbWUsIGRiaW5mby0+ZGJuYW1lLCBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKKwkJ CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCQkg ImNvdWxkIG5vdCBjcmVhdGUgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIjog JXMiLAorCQkJCQkJCSBkYmluZm8tPnB1Ym5hbWUsIGRiaW5mby0+ZGJuYW1lLCBQUXJlc3VsdEVy cm9yTWVzc2FnZShyZXMpKTsKIAkJCWRpc2Nvbm5lY3RfZGF0YWJhc2UoY29ubiwgdHJ1ZSk7CiAJ CX0KIAkJUFFjbGVhcihyZXMpOwpAQCAtMTgxOSwyNSArMTk2MCwyOSBAQCBkcm9wX3B1YmxpY2F0 aW9uKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqcHVibmFtZSwgY29uc3QgY2hhciAqZGJuYW1l LAogCXB1Ym5hbWVfZXNjID0gUFFlc2NhcGVJZGVudGlmaWVyKGNvbm4sIHB1Ym5hbWUsIHN0cmxl bihwdWJuYW1lKSk7CiAKIAlpZiAoZHJ5X3J1bikKLQkJcGdfbG9nX2luZm8oImRyeS1ydW46IHdv dWxkIGRyb3AgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCXB1 Ym5hbWUsIGRibmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19Q UklNQVJZLAorCQkJCQkJICJkcnktcnVuOiB3b3VsZCBkcm9wIHB1YmxpY2F0aW9uIFwiJXNcIiBp biBkYXRhYmFzZSBcIiVzXCIiLAorCQkJCQkJIHB1Ym5hbWUsIGRibmFtZSk7CiAJZWxzZQotCQlw Z19sb2dfaW5mbygiZHJvcHBpbmcgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNc IiIsCi0JCQkJCXB1Ym5hbWUsIGRibmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lO Rk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJkcm9wcGluZyBwdWJsaWNhdGlvbiBcIiVzXCIg aW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBwdWJuYW1lLCBkYm5hbWUpOwogCiAJYXBwZW5k UFFFeHBCdWZmZXIoc3RyLCAiRFJPUCBQVUJMSUNBVElPTiAlcyIsIHB1Ym5hbWVfZXNjKTsKIAog CVBRZnJlZW1lbShwdWJuYW1lX2VzYyk7CiAKLQlwZ19sb2dfZGVidWcoImNvbW1hbmQgaXM6ICVz Iiwgc3RyLT5kYXRhKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BS SU1BUlksCisJCQkJCSAiY29tbWFuZCBpczogJXMiLCBzdHItPmRhdGEpOwogCiAJaWYgKCFkcnlf cnVuKQogCXsKIAkJcmVzID0gUFFleGVjKGNvbm4sIHN0ci0+ZGF0YSk7CiAJCWlmIChQUXJlc3Vs dFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCiAJCXsKLQkJCXBnX2xvZ19lcnJvcigi Y291bGQgbm90IGRyb3AgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIjogJXMi LAotCQkJCQkJIHB1Ym5hbWUsIGRibmFtZSwgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJ CQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJ ICJjb3VsZCBub3QgZHJvcCBwdWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiOiAl cyIsCisJCQkJCQkJIHB1Ym5hbWUsIGRibmFtZSwgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7 CiAJCQkqbWFkZV9wdWJsaWNhdGlvbiA9IGZhbHNlOwkvKiBkb24ndCB0cnkgYWdhaW4uICovCiAK IAkJCS8qCkBAIC0xODcyLDE1ICsyMDE3LDE3IEBAIGNoZWNrX2FuZF9kcm9wX3B1YmxpY2F0aW9u cyhQR2Nvbm4gKmNvbm4sIHN0cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQogCiAJaWYgKGRy b3BfYWxsX3B1YnMpCiAJewotCQlwZ19sb2dfaW5mbygiZHJvcHBpbmcgYWxsIGV4aXN0aW5nIHB1 YmxpY2F0aW9ucyBpbiBkYXRhYmFzZSBcIiVzXCIiLAotCQkJCQlkYmluZm8tPmRibmFtZSk7CisJ CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJk cm9wcGluZyBhbGwgZXhpc3RpbmcgcHVibGljYXRpb25zIGluIGRhdGFiYXNlIFwiJXNcIiIsCisJ CQkJCQkgZGJpbmZvLT5kYm5hbWUpOwogCiAJCS8qIEZldGNoIGFsbCBwdWJsaWNhdGlvbiBuYW1l cyAqLwogCQlyZXMgPSBQUWV4ZWMoY29ubiwgIlNFTEVDVCBwdWJuYW1lIEZST00gcGdfY2F0YWxv Zy5wZ19wdWJsaWNhdGlvbjsiKTsKIAkJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNf VFVQTEVTX09LKQogCQl7Ci0JCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBvYnRhaW4gcHVibGlj YXRpb24gaW5mb3JtYXRpb246ICVzIiwKLQkJCQkJCSBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMp KTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJ CQkJCQkgImNvdWxkIG5vdCBvYnRhaW4gcHVibGljYXRpb24gaW5mb3JtYXRpb246ICVzIiwKKwkJ CQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJCQlQUWNsZWFyKHJlcyk7CiAJCQlk aXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCQl9CkBAIC0xOTAzLDExICsyMDUwLDEz IEBAIGNoZWNrX2FuZF9kcm9wX3B1YmxpY2F0aW9ucyhQR2Nvbm4gKmNvbm4sIHN0cnVjdCBMb2dp Y2FsUmVwSW5mbyAqZGJpbmZvKQogCQllbHNlCiAJCXsKIAkJCWlmIChkcnlfcnVuKQotCQkJCXBn X2xvZ19pbmZvKCJkcnktcnVuOiB3b3VsZCBwcmVzZXJ2ZSBleGlzdGluZyBwdWJsaWNhdGlvbiBc IiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJCQlkYmluZm8tPnB1Ym5hbWUsIGRiaW5m by0+ZGJuYW1lKTsKKwkJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJ TUFSWSwKKwkJCQkJCQkJICJkcnktcnVuOiB3b3VsZCBwcmVzZXJ2ZSBleGlzdGluZyBwdWJsaWNh dGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCQkJIGRiaW5mby0+cHVibmFt ZSwgZGJpbmZvLT5kYm5hbWUpOwogCQkJZWxzZQotCQkJCXBnX2xvZ19pbmZvKCJwcmVzZXJ2ZSBl eGlzdGluZyBwdWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJCQlk YmluZm8tPnB1Ym5hbWUsIGRiaW5mby0+ZGJuYW1lKTsKKwkJCQlwZ19jcmVhdGVzdWJfbG9nKFBH X0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCQkJICJwcmVzZXJ2ZSBleGlzdGluZyBw dWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCQkJIGRiaW5mby0+ cHVibmFtZSwgZGJpbmZvLT5kYm5hbWUpOwogCQl9CiAJfQogfQpAQCAtMTk0MSwxMSArMjA5MCwx MyBAQCBjcmVhdGVfc3Vic2NyaXB0aW9uKFBHY29ubiAqY29ubiwgY29uc3Qgc3RydWN0IExvZ2lj YWxSZXBJbmZvICpkYmluZm8pCiAJcmVwbHNsb3RuYW1lX2VzYyA9IFBRZXNjYXBlTGl0ZXJhbChj b25uLCBkYmluZm8tPnJlcGxzbG90bmFtZSwgc3RybGVuKGRiaW5mby0+cmVwbHNsb3RuYW1lKSk7 CiAKIAlpZiAoZHJ5X3J1bikKLQkJcGdfbG9nX2luZm8oImRyeS1ydW46IHdvdWxkIGNyZWF0ZSBz dWJzY3JpcHRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCWRiaW5mby0+c3Vi bmFtZSwgZGJpbmZvLT5kYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQ R19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZHJ5LXJ1bjogd291bGQgY3JlYXRlIHN1YnNjcmlwdGlv biBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBkYmluZm8tPnN1Ym5hbWUsIGRi aW5mby0+ZGJuYW1lKTsKIAllbHNlCi0JCXBnX2xvZ19pbmZvKCJjcmVhdGluZyBzdWJzY3JpcHRp b24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCWRiaW5mby0+c3VibmFtZSwgZGJp bmZvLT5kYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJ TUFSWSwKKwkJCQkJCSAiY3JlYXRpbmcgc3Vic2NyaXB0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBc IiVzXCIiLAorCQkJCQkJIGRiaW5mby0+c3VibmFtZSwgZGJpbmZvLT5kYm5hbWUpOwogCiAJYXBw ZW5kUFFFeHBCdWZmZXIoc3RyLAogCQkJCQkgICJDUkVBVEUgU1VCU0NSSVBUSU9OICVzIENPTk5F Q1RJT04gJXMgUFVCTElDQVRJT04gJXMgIgpAQCAtMTk1OSwxNSArMjExMCwxNyBAQCBjcmVhdGVf c3Vic2NyaXB0aW9uKFBHY29ubiAqY29ubiwgY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpk YmluZm8pCiAJUFFmcmVlbWVtKHB1YmNvbm5pbmZvX2VzYyk7CiAJUFFmcmVlbWVtKHJlcGxzbG90 bmFtZV9lc2MpOwogCi0JcGdfbG9nX2RlYnVnKCJjb21tYW5kIGlzOiAlcyIsIHN0ci0+ZGF0YSk7 CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkg ImNvbW1hbmQgaXM6ICVzIiwgc3RyLT5kYXRhKTsKIAogCWlmICghZHJ5X3J1bikKIAl7CiAJCXJl cyA9IFBRZXhlYyhjb25uLCBzdHItPmRhdGEpOwogCQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAh PSBQR1JFU19DT01NQU5EX09LKQogCQl7Ci0JCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBjcmVh dGUgc3Vic2NyaXB0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCI6ICVzIiwKLQkJCQkJCSBk YmluZm8tPnN1Ym5hbWUsIGRiaW5mby0+ZGJuYW1lLCBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMp KTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJ CQkJCQkgImNvdWxkIG5vdCBjcmVhdGUgc3Vic2NyaXB0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBc IiVzXCI6ICVzIiwKKwkJCQkJCQkgZGJpbmZvLT5zdWJuYW1lLCBkYmluZm8tPmRibmFtZSwgUFFy ZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRy dWUpOwogCQl9CiAJCVBRY2xlYXIocmVzKTsKQEAgLTIwMTEsMTUgKzIxNjQsMTcgQEAgc2V0X3Jl cGxpY2F0aW9uX3Byb2dyZXNzKFBHY29ubiAqY29ubiwgY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJ bmZvICpkYmluZm8sIGNvbnMKIAlyZXMgPSBQUWV4ZWMoY29ubiwgc3RyLT5kYXRhKTsKIAlpZiAo UFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19UVVBMRVNfT0spCiAJewotCQlwZ19sb2dfZXJy b3IoImNvdWxkIG5vdCBvYnRhaW4gc3Vic2NyaXB0aW9uIE9JRDogJXMiLAotCQkJCQkgUFFyZXN1 bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQ R19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiY291bGQgbm90IG9idGFpbiBzdWJzY3JpcHRpb24gT0lE OiAlcyIsCisJCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJCWRpc2Nvbm5lY3Rf ZGF0YWJhc2UoY29ubiwgdHJ1ZSk7CiAJfQogCiAJaWYgKFBRbnR1cGxlcyhyZXMpICE9IDEgJiYg IWRyeV9ydW4pCiAJewotCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBvYnRhaW4gc3Vic2NyaXB0 aW9uIE9JRDogZ290ICVkIHJvd3MsIGV4cGVjdGVkICVkIHJvdyIsCi0JCQkJCSBQUW50dXBsZXMo cmVzKSwgMSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFS WSwKKwkJCQkJCSAiY291bGQgbm90IG9idGFpbiBzdWJzY3JpcHRpb24gT0lEOiBnb3QgJWQgcm93 cywgZXhwZWN0ZWQgJWQgcm93IiwKKwkJCQkJCSBQUW50dXBsZXMocmVzKSwgMSk7CiAJCWRpc2Nv bm5lY3RfZGF0YWJhc2UoY29ubiwgdHJ1ZSk7CiAJfQogCkBAIC0yMDQzLDI2ICsyMTk4LDMwIEBA IHNldF9yZXBsaWNhdGlvbl9wcm9ncmVzcyhQR2Nvbm4gKmNvbm4sIGNvbnN0IHN0cnVjdCBMb2dp Y2FsUmVwSW5mbyAqZGJpbmZvLCBjb25zCiAJb3JpZ2lubmFtZSA9IHBzcHJpbnRmKCJwZ18ldSIs IHN1Ym9pZCk7CiAKIAlpZiAoZHJ5X3J1bikKLQkJcGdfbG9nX2luZm8oImRyeS1ydW46IHdvdWxk IHNldCB0aGUgcmVwbGljYXRpb24gcHJvZ3Jlc3MgKG5vZGUgbmFtZSBcIiVzXCIsIExTTiAlcykg aW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJb3JpZ2lubmFtZSwgbHNuc3RyLCBkYmluZm8tPmRi bmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAor CQkJCQkJICJkcnktcnVuOiB3b3VsZCBzZXQgdGhlIHJlcGxpY2F0aW9uIHByb2dyZXNzIChub2Rl IG5hbWUgXCIlc1wiLCBMU04gJXMpIGluIGRhdGFiYXNlIFwiJXNcIiIsCisJCQkJCQkgb3JpZ2lu bmFtZSwgbHNuc3RyLCBkYmluZm8tPmRibmFtZSk7CiAJZWxzZQotCQlwZ19sb2dfaW5mbygic2V0 dGluZyB0aGUgcmVwbGljYXRpb24gcHJvZ3Jlc3MgKG5vZGUgbmFtZSBcIiVzXCIsIExTTiAlcykg aW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJb3JpZ2lubmFtZSwgbHNuc3RyLCBkYmluZm8tPmRi bmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAor CQkJCQkJICJzZXR0aW5nIHRoZSByZXBsaWNhdGlvbiBwcm9ncmVzcyAobm9kZSBuYW1lIFwiJXNc IiwgTFNOICVzKSBpbiBkYXRhYmFzZSBcIiVzXCIiLAorCQkJCQkJIG9yaWdpbm5hbWUsIGxzbnN0 ciwgZGJpbmZvLT5kYm5hbWUpOwogCiAJcmVzZXRQUUV4cEJ1ZmZlcihzdHIpOwogCWFwcGVuZFBR RXhwQnVmZmVyKHN0ciwKIAkJCQkJICAiU0VMRUNUIHBnX2NhdGFsb2cucGdfcmVwbGljYXRpb25f b3JpZ2luX2FkdmFuY2UoJyVzJywgJyVzJykiLAogCQkJCQkgIG9yaWdpbm5hbWUsIGxzbnN0cik7 CiAKLQlwZ19sb2dfZGVidWcoImNvbW1hbmQgaXM6ICVzIiwgc3RyLT5kYXRhKTsKKwlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAiY29tbWFuZCBp czogJXMiLCBzdHItPmRhdGEpOwogCiAJaWYgKCFkcnlfcnVuKQogCXsKIAkJcmVzID0gUFFleGVj KGNvbm4sIHN0ci0+ZGF0YSk7CiAJCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RV UExFU19PSykKIAkJewotCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgc2V0IHJlcGxpY2F0aW9u IHByb2dyZXNzIGZvciBzdWJzY3JpcHRpb24gXCIlc1wiOiAlcyIsCi0JCQkJCQkgZGJpbmZvLT5z dWJuYW1lLCBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2co UEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCQkgImNvdWxkIG5vdCBzZXQgcmVw bGljYXRpb24gcHJvZ3Jlc3MgZm9yIHN1YnNjcmlwdGlvbiBcIiVzXCI6ICVzIiwKKwkJCQkJCQkg ZGJpbmZvLT5zdWJuYW1lLCBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKIAkJCWRpc2Nvbm5l Y3RfZGF0YWJhc2UoY29ubiwgdHJ1ZSk7CiAJCX0KIAkJUFFjbGVhcihyZXMpOwpAQCAtMjA5Mywy MyArMjI1MiwyNyBAQCBlbmFibGVfc3Vic2NyaXB0aW9uKFBHY29ubiAqY29ubiwgY29uc3Qgc3Ry dWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAJc3VibmFtZSA9IFBRZXNjYXBlSWRlbnRpZmll cihjb25uLCBkYmluZm8tPnN1Ym5hbWUsIHN0cmxlbihkYmluZm8tPnN1Ym5hbWUpKTsKIAogCWlm IChkcnlfcnVuKQotCQlwZ19sb2dfaW5mbygiZHJ5LXJ1bjogd291bGQgZW5hYmxlIHN1YnNjcmlw dGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJZGJpbmZvLT5zdWJuYW1lLCBk YmluZm8tPmRibmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19Q UklNQVJZLAorCQkJCQkJICJkcnktcnVuOiB3b3VsZCBlbmFibGUgc3Vic2NyaXB0aW9uIFwiJXNc IiBpbiBkYXRhYmFzZSBcIiVzXCIiLAorCQkJCQkJIGRiaW5mby0+c3VibmFtZSwgZGJpbmZvLT5k Ym5hbWUpOwogCWVsc2UKLQkJcGdfbG9nX2luZm8oImVuYWJsaW5nIHN1YnNjcmlwdGlvbiBcIiVz XCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJZGJpbmZvLT5zdWJuYW1lLCBkYmluZm8tPmRi bmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAor CQkJCQkJICJlbmFibGluZyBzdWJzY3JpcHRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIs CisJCQkJCQkgZGJpbmZvLT5zdWJuYW1lLCBkYmluZm8tPmRibmFtZSk7CiAKIAlhcHBlbmRQUUV4 cEJ1ZmZlcihzdHIsICJBTFRFUiBTVUJTQ1JJUFRJT04gJXMgRU5BQkxFIiwgc3VibmFtZSk7CiAK LQlwZ19sb2dfZGVidWcoImNvbW1hbmQgaXM6ICVzIiwgc3RyLT5kYXRhKTsKKwlwZ19jcmVhdGVz dWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAiY29tbWFuZCBpczog JXMiLCBzdHItPmRhdGEpOwogCiAJaWYgKCFkcnlfcnVuKQogCXsKIAkJcmVzID0gUFFleGVjKGNv bm4sIHN0ci0+ZGF0YSk7CiAJCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1B TkRfT0spCiAJCXsKLQkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IGVuYWJsZSBzdWJzY3JpcHRp b24gXCIlc1wiOiAlcyIsCi0JCQkJCQkgZGJpbmZvLT5zdWJuYW1lLCBQUXJlc3VsdEVycm9yTWVz c2FnZShyZXMpKTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJ TUFSWSwKKwkJCQkJCQkgImNvdWxkIG5vdCBlbmFibGUgc3Vic2NyaXB0aW9uIFwiJXNcIjogJXMi LAorCQkJCQkJCSBkYmluZm8tPnN1Ym5hbWUsIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwog CQkJZGlzY29ubmVjdF9kYXRhYmFzZShjb25uLCB0cnVlKTsKIAkJfQogCkBAIC0yMTU0LDcgKzIz MTcsOSBAQCBnZXRfcHVibGlzaGVyX2RhdGFiYXNlcyhzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9w dGlvbnMgKm9wdCwKIAlyZXMgPSBQUWV4ZWMoY29ubiwgIlNFTEVDVCBkYXRuYW1lIEZST00gcGdf ZGF0YWJhc2UgV0hFUkUgZGF0aXN0ZW1wbGF0ZSA9IGZhbHNlIEFORCBkYXRhbGxvd2Nvbm4gQU5E IGRhdGNvbm5saW1pdCA8PiAtMiBPUkRFUiBCWSAxIik7CiAJaWYgKFBRcmVzdWx0U3RhdHVzKHJl cykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgb2J0 YWluIGEgbGlzdCBvZiBkYXRhYmFzZXM6ICVzIiwgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7 CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJ CSAiY291bGQgbm90IG9idGFpbiBhIGxpc3Qgb2YgZGF0YWJhc2VzOiAlcyIsCisJCQkJCQkgUFFy ZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJCVBRY2xlYXIocmVzKTsKIAkJZGlzY29ubmVjdF9k YXRhYmFzZShjb25uLCB0cnVlKTsKIAl9CkBAIC0yMjU4LDkgKzI0MjMsMTEgQEAgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAjaWZuZGVmIFdJTjMyCiAJaWYgKGdldGV1aWQoKSA9PSAwKQog CXsKLQkJcGdfbG9nX2Vycm9yKCJjYW5ub3QgYmUgZXhlY3V0ZWQgYnkgXCJyb290XCIiKTsKLQkJ cGdfbG9nX2Vycm9yX2hpbnQoIllvdSBtdXN0IHJ1biAlcyBhcyB0aGUgUG9zdGdyZVNRTCBzdXBl cnVzZXIuIiwKLQkJCQkJCSAgcHJvZ25hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19F UlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImNhbm5vdCBiZSBleGVjdXRlZCBieSBcInJv b3RcIiIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0hJTlQsCisJ CQkJCQkgIllvdSBtdXN0IHJ1biAlcyBhcyB0aGUgUG9zdGdyZVNRTCBzdXBlcnVzZXIuIiwKKwkJ CQkJCSBwcm9nbmFtZSk7CiAJCWV4aXQoMSk7CiAJfQogI2VuZGlmCkBAIC0yMzUxLDcgKzI1MTgs OSBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCQlicmVhazsKIAkJCWRlZmF1bHQ6 CiAJCQkJLyogZ2V0b3B0X2xvbmcgYWxyZWFkeSBlbWl0dGVkIGEgY29tcGxhaW50ICovCi0JCQkJ cGdfbG9nX2Vycm9yX2hpbnQoIlRyeSBcIiVzIC0taGVscFwiIGZvciBtb3JlIGluZm9ybWF0aW9u LiIsIHByb2duYW1lKTsKKwkJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9H X0hJTlQsCisJCQkJCQkJCSAiVHJ5IFwiJXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24u IiwKKwkJCQkJCQkJIHByb2duYW1lKTsKIAkJCQlleGl0KDEpOwogCQl9CiAJfQpAQCAtMjM3Miw5 ICsyNTQxLDEyIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJCWlmIChiYWRfc3dp dGNoKQogCQl7Ci0JCQlwZ19sb2dfZXJyb3IoIm9wdGlvbnMgJXMgYW5kICVzIGNhbm5vdCBiZSB1 c2VkIHRvZ2V0aGVyIiwKLQkJCQkJCSBiYWRfc3dpdGNoLCAiLWEvLS1hbGwiKTsKLQkJCXBnX2xv Z19lcnJvcl9oaW50KCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iLCBw cm9nbmFtZSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1B UlksCisJCQkJCQkJICJvcHRpb25zICVzIGFuZCAlcyBjYW5ub3QgYmUgdXNlZCB0b2dldGhlciIs CisJCQkJCQkJIGJhZF9zd2l0Y2gsICItYS8tLWFsbCIpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQ R19MT0dfRVJST1IsIFBHX0xPR19ISU5ULAorCQkJCQkJCSAiVHJ5IFwiJXMgLS1oZWxwXCIgZm9y IG1vcmUgaW5mb3JtYXRpb24uIiwKKwkJCQkJCQkgcHJvZ25hbWUpOwogCQkJZXhpdCgxKTsKIAkJ fQogCX0KQEAgLTIzODIsMTcgKzI1NTQsMjEgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CiAJLyogQW55IG5vbi1vcHRpb24gYXJndW1lbnRzPyAqLwogCWlmIChvcHRpbmQgPCBhcmdjKQog CXsKLQkJcGdfbG9nX2Vycm9yKCJ0b28gbWFueSBjb21tYW5kLWxpbmUgYXJndW1lbnRzIChmaXJz dCBpcyBcIiVzXCIpIiwKLQkJCQkJIGFyZ3Zbb3B0aW5kXSk7Ci0JCXBnX2xvZ19lcnJvcl9oaW50 KCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iLCBwcm9nbmFtZSk7CisJ CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAi dG9vIG1hbnkgY29tbWFuZC1saW5lIGFyZ3VtZW50cyAoZmlyc3QgaXMgXCIlc1wiKSIsCisJCQkJ CQkgYXJndltvcHRpbmRdKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xP R19ISU5ULAorCQkJCQkJICJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4i LCBwcm9nbmFtZSk7CiAJCWV4aXQoMSk7CiAJfQogCiAJLyogUmVxdWlyZWQgYXJndW1lbnRzICov CiAJaWYgKHN1YnNjcmliZXJfZGlyID09IE5VTEwpCiAJewotCQlwZ19sb2dfZXJyb3IoIm5vIHN1 YnNjcmliZXIgZGF0YSBkaXJlY3Rvcnkgc3BlY2lmaWVkIik7Ci0JCXBnX2xvZ19lcnJvcl9oaW50 KCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iLCBwcm9nbmFtZSk7CisJ CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAi bm8gc3Vic2NyaWJlciBkYXRhIGRpcmVjdG9yeSBzcGVjaWZpZWQiKTsKKwkJcGdfY3JlYXRlc3Vi X2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19ISU5ULAorCQkJCQkJICJUcnkgXCIlcyAtLWhlbHBc IiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iLCBwcm9nbmFtZSk7CiAJCWV4aXQoMSk7CiAJfQogCkBA IC0yNDE5LDIyICsyNTk1LDI3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkgKiBp ZGVudGljYWwgZW50cmllcyBmb3IgcGh5c2ljYWwgYW5kIGxvZ2ljYWwgcmVwbGljYXRpb24uIElm IHRoZXJlIGlzCiAJCSAqIG5vdCwgd2Ugd291bGQgZmFpbCBhbnl3YXkuCiAJCSAqLwotCQlwZ19s b2dfZXJyb3IoIm5vIHB1Ymxpc2hlciBjb25uZWN0aW9uIHN0cmluZyBzcGVjaWZpZWQiKTsKLQkJ cGdfbG9nX2Vycm9yX2hpbnQoIlRyeSBcIiVzIC0taGVscFwiIGZvciBtb3JlIGluZm9ybWF0aW9u LiIsIHByb2duYW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19Q UklNQVJZLAorCQkJCQkJICJubyBwdWJsaXNoZXIgY29ubmVjdGlvbiBzdHJpbmcgc3BlY2lmaWVk Iik7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfSElOVCwKKwkJCQkJ CSAiVHJ5IFwiJXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiwgcHJvZ25hbWUpOwog CQlleGl0KDEpOwogCX0KIAogCWlmIChkcnlfcnVuKQotCQlwZ19sb2dfaW5mbygiRXhlY3V0aW5n IGluIGRyeS1ydW4gbW9kZS5cbiIKLQkJCQkJIlRoZSB0YXJnZXQgZGlyZWN0b3J5IHdpbGwgbm90 IGJlIG1vZGlmaWVkLiIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0df UFJJTUFSWSwKKwkJCQkJCSAiRXhlY3V0aW5nIGluIGRyeS1ydW4gbW9kZS5cbiIKKwkJCQkJCSAi VGhlIHRhcmdldCBkaXJlY3Rvcnkgd2lsbCBub3QgYmUgbW9kaWZpZWQuIik7CiAKLQlwZ19sb2df aW5mbygidmFsaWRhdGluZyBwdWJsaXNoZXIgY29ubmVjdGlvbiBzdHJpbmciKTsKKwlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJ2YWxpZGF0aW5n IHB1Ymxpc2hlciBjb25uZWN0aW9uIHN0cmluZyIpOwogCXB1Yl9iYXNlX2Nvbm5pbmZvID0gZ2V0 X2Jhc2VfY29ubmluZm8ob3B0LnB1Yl9jb25uaW5mb19zdHIsCiAJCQkJCQkJCQkJICAmZGJuYW1l X2Nvbm5pbmZvKTsKIAlpZiAocHViX2Jhc2VfY29ubmluZm8gPT0gTlVMTCkKIAkJZXhpdCgxKTsK IAotCXBnX2xvZ19pbmZvKCJ2YWxpZGF0aW5nIHN1YnNjcmliZXIgY29ubmVjdGlvbiBzdHJpbmci KTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJ ICJ2YWxpZGF0aW5nIHN1YnNjcmliZXIgY29ubmVjdGlvbiBzdHJpbmciKTsKIAlzdWJfYmFzZV9j b25uaW5mbyA9IGdldF9zdWJfY29ubmluZm8oJm9wdCk7CiAKIAkvKgpAQCAtMjQ1MSw3ICsyNjMy LDggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKIAlpZiAob3B0LmRhdGFiYXNlX25h bWVzLmhlYWQgPT0gTlVMTCkKIAl7Ci0JCXBnX2xvZ19pbmZvKCJubyBkYXRhYmFzZSB3YXMgc3Bl Y2lmaWVkIik7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZ LAorCQkJCQkJICJubyBkYXRhYmFzZSB3YXMgc3BlY2lmaWVkIik7CiAKIAkJLyoKIAkJICogVHJ5 IHRvIG9idGFpbiB0aGUgZGJuYW1lIGZyb20gdGhlIHB1Ymxpc2hlciBjb25uaW5mby4gSWYgZGJu YW1lCkBAIC0yNDYyLDE0ICsyNjQ0LDE3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQog CQkJc2ltcGxlX3N0cmluZ19saXN0X2FwcGVuZCgmb3B0LmRhdGFiYXNlX25hbWVzLCBkYm5hbWVf Y29ubmluZm8pOwogCQkJbnVtX2RicysrOwogCi0JCQlwZ19sb2dfaW5mbygiZGF0YWJhc2UgbmFt ZSBcIiVzXCIgd2FzIGV4dHJhY3RlZCBmcm9tIHRoZSBwdWJsaXNoZXIgY29ubmVjdGlvbiBzdHJp bmciLAotCQkJCQkJZGJuYW1lX2Nvbm5pbmZvKTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkJCSAiZGF0YWJhc2UgbmFtZSBcIiVzXCIgd2Fz IGV4dHJhY3RlZCBmcm9tIHRoZSBwdWJsaXNoZXIgY29ubmVjdGlvbiBzdHJpbmciLAorCQkJCQkJ CSBkYm5hbWVfY29ubmluZm8pOwogCQl9CiAJCWVsc2UKIAkJewotCQkJcGdfbG9nX2Vycm9yKCJu byBkYXRhYmFzZSBuYW1lIHNwZWNpZmllZCIpOwotCQkJcGdfbG9nX2Vycm9yX2hpbnQoIlRyeSBc IiVzIC0taGVscFwiIGZvciBtb3JlIGluZm9ybWF0aW9uLiIsCi0JCQkJCQkJICBwcm9nbmFtZSk7 CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJ CQkJICJubyBkYXRhYmFzZSBuYW1lIHNwZWNpZmllZCIpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQ R19MT0dfRVJST1IsIFBHX0xPR19ISU5ULAorCQkJCQkJCSAiVHJ5IFwiJXMgLS1oZWxwXCIgZm9y IG1vcmUgaW5mb3JtYXRpb24uIiwKKwkJCQkJCQkgcHJvZ25hbWUpOwogCQkJZXhpdCgxKTsKIAkJ fQogCX0KQEAgLTI0NzcsMjMgKzI2NjIsMjkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CiAJLyogTnVtYmVyIG9mIG9iamVjdCBuYW1lcyBtdXN0IG1hdGNoIG51bWJlciBvZiBkYXRhYmFz ZXMgKi8KIAlpZiAobnVtX3B1YnMgPiAwICYmIG51bV9wdWJzICE9IG51bV9kYnMpCiAJewotCQlw Z19sb2dfZXJyb3IoIndyb25nIG51bWJlciBvZiBwdWJsaWNhdGlvbiBuYW1lcyBzcGVjaWZpZWQi KTsKLQkJcGdfbG9nX2Vycm9yX2RldGFpbCgiVGhlIG51bWJlciBvZiBzcGVjaWZpZWQgcHVibGlj YXRpb24gbmFtZXMgKCVkKSBtdXN0IG1hdGNoIHRoZSBudW1iZXIgb2Ygc3BlY2lmaWVkIGRhdGFi YXNlIG5hbWVzICglZCkuIiwKLQkJCQkJCQludW1fcHVicywgbnVtX2Ricyk7CisJCXBnX2NyZWF0 ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAid3JvbmcgbnVt YmVyIG9mIHB1YmxpY2F0aW9uIG5hbWVzIHNwZWNpZmllZCIpOworCQlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19FUlJPUiwgUEdfTE9HX0RFVEFJTCwKKwkJCQkJCSAiVGhlIG51bWJlciBvZiBzcGVj aWZpZWQgcHVibGljYXRpb24gbmFtZXMgKCVkKSBtdXN0IG1hdGNoIHRoZSBudW1iZXIgb2Ygc3Bl Y2lmaWVkIGRhdGFiYXNlIG5hbWVzICglZCkuIiwKKwkJCQkJCSBudW1fcHVicywgbnVtX2Ricyk7 CiAJCWV4aXQoMSk7CiAJfQogCWlmIChudW1fc3VicyA+IDAgJiYgbnVtX3N1YnMgIT0gbnVtX2Ri cykKIAl7Ci0JCXBnX2xvZ19lcnJvcigid3JvbmcgbnVtYmVyIG9mIHN1YnNjcmlwdGlvbiBuYW1l cyBzcGVjaWZpZWQiKTsKLQkJcGdfbG9nX2Vycm9yX2RldGFpbCgiVGhlIG51bWJlciBvZiBzcGVj aWZpZWQgc3Vic2NyaXB0aW9uIG5hbWVzICglZCkgbXVzdCBtYXRjaCB0aGUgbnVtYmVyIG9mIHNw ZWNpZmllZCBkYXRhYmFzZSBuYW1lcyAoJWQpLiIsCi0JCQkJCQkJbnVtX3N1YnMsIG51bV9kYnMp OworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJ CQkgIndyb25nIG51bWJlciBvZiBzdWJzY3JpcHRpb24gbmFtZXMgc3BlY2lmaWVkIik7CisJCXBn X2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfREVUQUlMLAorCQkJCQkJICJUaGUg bnVtYmVyIG9mIHNwZWNpZmllZCBzdWJzY3JpcHRpb24gbmFtZXMgKCVkKSBtdXN0IG1hdGNoIHRo ZSBudW1iZXIgb2Ygc3BlY2lmaWVkIGRhdGFiYXNlIG5hbWVzICglZCkuIiwKKwkJCQkJCSBudW1f c3VicywgbnVtX2Ricyk7CiAJCWV4aXQoMSk7CiAJfQogCWlmIChudW1fcmVwbHNsb3RzID4gMCAm JiBudW1fcmVwbHNsb3RzICE9IG51bV9kYnMpCiAJewotCQlwZ19sb2dfZXJyb3IoIndyb25nIG51 bWJlciBvZiByZXBsaWNhdGlvbiBzbG90IG5hbWVzIHNwZWNpZmllZCIpOwotCQlwZ19sb2dfZXJy b3JfZGV0YWlsKCJUaGUgbnVtYmVyIG9mIHNwZWNpZmllZCByZXBsaWNhdGlvbiBzbG90IG5hbWVz ICglZCkgbXVzdCBtYXRjaCB0aGUgbnVtYmVyIG9mIHNwZWNpZmllZCBkYXRhYmFzZSBuYW1lcyAo JWQpLiIsCi0JCQkJCQkJbnVtX3JlcGxzbG90cywgbnVtX2Ricyk7CisJCXBnX2NyZWF0ZXN1Yl9s b2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAid3JvbmcgbnVtYmVyIG9m IHJlcGxpY2F0aW9uIHNsb3QgbmFtZXMgc3BlY2lmaWVkIik7CisJCXBnX2NyZWF0ZXN1Yl9sb2co UEdfTE9HX0VSUk9SLCBQR19MT0dfREVUQUlMLAorCQkJCQkJICJUaGUgbnVtYmVyIG9mIHNwZWNp ZmllZCByZXBsaWNhdGlvbiBzbG90IG5hbWVzICglZCkgbXVzdCBtYXRjaCB0aGUgbnVtYmVyIG9m IHNwZWNpZmllZCBkYXRhYmFzZSBuYW1lcyAoJWQpLiIsCisJCQkJCQkgbnVtX3JlcGxzbG90cywg bnVtX2Ricyk7CiAJCWV4aXQoMSk7CiAJfQogCkBAIC0yNTA0LDkgKzI2OTUsMTEgQEAgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQlkYmluZm9zLm9iamVjdHR5cGVzX3RvX2NsZWFuIHw9 IE9CSkVDVFRZUEVfUFVCTElDQVRJT05TOwogCQllbHNlCiAJCXsKLQkJCXBnX2xvZ19lcnJvcigi aW52YWxpZCBvYmplY3QgdHlwZSBcIiVzXCIgc3BlY2lmaWVkIGZvciAlcyIsCi0JCQkJCQkgY2Vs bC0+dmFsLCAiLS1jbGVhbiIpOwotCQkJcGdfbG9nX2Vycm9yX2hpbnQoIlRoZSB2YWxpZCB2YWx1 ZSBpczogXCIlc1wiIiwgInB1YmxpY2F0aW9ucyIpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19M T0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJCSAiaW52YWxpZCBvYmplY3QgdHlwZSBc IiVzXCIgc3BlY2lmaWVkIGZvciAlcyIsCisJCQkJCQkJIGNlbGwtPnZhbCwgIi0tY2xlYW4iKTsK KwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfSElOVCwKKwkJCQkJCQkg IlRoZSB2YWxpZCB2YWx1ZSBpczogXCIlc1wiIiwgInB1YmxpY2F0aW9ucyIpOwogCQkJZXhpdCgx KTsKIAkJfQogCX0KQEAgLTI1NTAsOCArMjc0MywxMCBAQCBtYWluKGludCBhcmdjLCBjaGFyICoq YXJndikKIAkgKi8KIAlpZiAoc3RhdChwaWRmaWxlLCAmc3RhdGJ1ZikgPT0gMCkKIAl7Ci0JCXBn X2xvZ19lcnJvcigic3RhbmRieSBzZXJ2ZXIgaXMgcnVubmluZyIpOwotCQlwZ19sb2dfZXJyb3Jf aGludCgiU3RvcCB0aGUgc3RhbmRieSBzZXJ2ZXIgYW5kIHRyeSBhZ2Fpbi4iKTsKKwkJcGdfY3Jl YXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJzdGFuZGJ5 IHNlcnZlciBpcyBydW5uaW5nIik7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQ R19MT0dfSElOVCwKKwkJCQkJCSAiU3RvcCB0aGUgc3RhbmRieSBzZXJ2ZXIgYW5kIHRyeSBhZ2Fp bi4iKTsKIAkJZXhpdCgxKTsKIAl9CiAKQEAgLTI1NjAsNyArMjc1NSw4IEBAIG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQogCSAqIGJ5IGNvbW1hbmQtbGluZSBvcHRpb25zKS4gVGhlIGdvYWwg aXMgdG8gYXZvaWQgY29ubmVjdGlvbnMgZHVyaW5nIHRoZQogCSAqIHRyYW5zZm9ybWF0aW9uIHN0 ZXBzLgogCSAqLwotCXBnX2xvZ19pbmZvKCJzdGFydGluZyB0aGUgc3RhbmRieSBzZXJ2ZXIgd2l0 aCBjb21tYW5kLWxpbmUgb3B0aW9ucyIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8s IFBHX0xPR19QUklNQVJZLAorCQkJCQkgInN0YXJ0aW5nIHRoZSBzdGFuZGJ5IHNlcnZlciB3aXRo IGNvbW1hbmQtbGluZSBvcHRpb25zIik7CiAJc3RhcnRfc3RhbmRieV9zZXJ2ZXIoJm9wdCwgdHJ1 ZSwgZmFsc2UpOwogCiAJLyogQ2hlY2sgaWYgdGhlIHN0YW5kYnkgc2VydmVyIGlzIHJlYWR5IGZv ciBsb2dpY2FsIHJlcGxpY2F0aW9uICovCkBAIC0yNTc2LDcgKzI3NzIsOCBAQCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKIAkgKiBndWFyYW50ZWVzIGl0KSAqYmVmb3JlKiBjcmVhdGluZyB0 aGUgcmVwbGljYXRpb24gc2xvdHMgaW4KIAkgKiBzZXR1cF9wdWJsaXNoZXIoKS4KIAkgKi8KLQlw Z19sb2dfaW5mbygic3RvcHBpbmcgdGhlIHN1YnNjcmliZXIiKTsKKwlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJzdG9wcGluZyB0aGUgc3Vic2Ny aWJlciIpOwogCXN0b3Bfc3RhbmRieV9zZXJ2ZXIoc3Vic2NyaWJlcl9kaXIpOwogCiAJLyogQ3Jl YXRlIHRoZSByZXF1aXJlZCBvYmplY3RzIGZvciBlYWNoIGRhdGFiYXNlIG9uIHB1Ymxpc2hlciAq LwpAQCAtMjU5MCw3ICsyNzg3LDggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJICog dW50aWwgYWNjZXB0aW5nIGNvbm5lY3Rpb25zLiBXZSBkb24ndCB3YW50IHRvIHN0YXJ0IGxvZ2lj YWwgcmVwbGljYXRpb24KIAkgKiBkdXJpbmcgc2V0dXAuCiAJICovCi0JcGdfbG9nX2luZm8oInN0 YXJ0aW5nIHRoZSBzdWJzY3JpYmVyIik7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywg UEdfTE9HX1BSSU1BUlksCisJCQkJCSAic3RhcnRpbmcgdGhlIHN1YnNjcmliZXIiKTsKIAlzdGFy dF9zdGFuZGJ5X3NlcnZlcigmb3B0LCB0cnVlLCB0cnVlKTsKIAogCS8qIFdhaXRpbmcgdGhlIHN1 YnNjcmliZXIgdG8gYmUgcHJvbW90ZWQgKi8KQEAgLTI2MTEsNyArMjgwOSw4IEBAIG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogCWRyb3BfZmFpbG92ZXJfcmVwbGljYXRpb25fc2xvdHMoZGJp bmZvcy5kYmluZm8pOwogCiAJLyogU3RvcCB0aGUgc3Vic2NyaWJlciAqLwotCXBnX2xvZ19pbmZv KCJzdG9wcGluZyB0aGUgc3Vic2NyaWJlciIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lO Rk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkgInN0b3BwaW5nIHRoZSBzdWJzY3JpYmVyIik7CiAJ c3RvcF9zdGFuZGJ5X3NlcnZlcihzdWJzY3JpYmVyX2Rpcik7CiAKIAkvKiBDaGFuZ2Ugc3lzdGVt IGlkZW50aWZpZXIgZnJvbSBzdWJzY3JpYmVyICovCkBAIC0yNjE5LDcgKzI4MTgsOCBAQCBtYWlu KGludCBhcmdjLCBjaGFyICoqYXJndikKIAogCXN1Y2Nlc3MgPSB0cnVlOwogCi0JcGdfbG9nX2lu Zm8oIkRvbmUhIik7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1B UlksCisJCQkJCSAiRG9uZSEiKTsKIAogCXJldHVybiAwOwogfQotLSAKMi40Ny4zCgo= --_004_OS9PR01MB1214902CC518A8102333FA88DF54EAOS9PR01MB12149jp_ Content-Type: application/octet-stream; name="v11-0002-Add-a-new-argument-l-logdir-to-pg_createsubscrib.patch" Content-Description: v11-0002-Add-a-new-argument-l-logdir-to-pg_createsubscrib.patch Content-Disposition: attachment; filename="v11-0002-Add-a-new-argument-l-logdir-to-pg_createsubscrib.patch"; size=14745; creation-date="Wed, 18 Mar 2026 13:09:38 GMT"; modification-date="Wed, 18 Mar 2026 13:35:26 GMT" Content-Transfer-Encoding: base64 RnJvbSBjYTA1ZGZhZGUxMTIwOWZkY2ZhNDIyM2E5ZmJiOWQ0MzgxNGVkYTc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHeWFuIFNyZWVqaXRoIDxneWFuLnNyZWVqaXRoQGdtYWlsLmNv bT4KRGF0ZTogVHVlLCAxNyBNYXIgMjAyNiAxOToxMDoyOCAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg djExIDIvM10gQWRkIGEgbmV3IGFyZ3VtZW50IC1sIDxsb2dkaXI+IHRvCiBwZ19jcmVhdGVzdWJz Y3JpYmVyLgoKRW5hYmxpbmcgdGhlIG9wdGlvbiB0byB3cml0ZSBtZXNzYWdlcyB0byBsb2cgZmls ZXMgaW4gdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkuCkEgbmV3IGRpcmVjdG9yeSBpcyBjcmVhdGVk IGlmIHJlcXVpcmVkLiBBIHN1YmRpcmVjdG9yeSBpcyBjcmVhdGVkIHdpdGggdGltZXN0YW1wIGFz IGl0cyBuYW1lLCBhbmQgaXQgd2lsbCBjb250YWluIHR3byBuZXcgbG9nZmlsZXM6CjEuIHBnX2Ny ZWF0ZXN1YnNjcmliZXJfc2VydmVyLmxvZyAgLSBjYXB0dXJlcyBtZXNzYWdlcyByZWxhdGVkIHRv IHN0YXJ0aW5nIGFuZCBzdG9wcGluZyB0aGUgc3RhbmRieSBzZXJ2ZXIuCjIuIHBnX2NyZWF0ZXN1 YnNjcmliZXJfaW50ZXJuYWwubG9nIC0gY2FwdHVyZXMgaW50ZXJuYWwgZGlhZ25vc3RpYyBvdXRw dXQgZnJvbSBwZ19jcmVhdGVzdWJzY3JpYmVyLgoKRm9yIGV4YW1wbGUsIGlmIHdlIHNwZWNpZnkg LWwgYWJjIGFzIGFuIGFyZ3VtZW50LCBhbmQgaWYgdGhlIHRpbWVzdGFtcCBvbiBydW5uaW5nIGl0 IGlzIDIwMjYwMTE5VDIwNDMxNy4yMDQsIGEgZGlyZWN0b3J5IGFiYyBpcyBjcmVhdGVkIGlmIGl0 IGRvZXNuJ3QgZXhpc3QgYWxyZWFkeSwgd2l0aCAyMDI2MDExOVQyMDQzMTcuMjA0IGFzIGl0cyBz dWJkaXJlY3RvcnkgYW5kIGl0IHdpbGwgY29udGFpbiB0aGUgdHdvIGxvZyBmaWxlcyBwZ19jcmVh dGVzdWJzY3JpYmVyX3NlcnZlci5sb2cgYW5kIHBnX2NyZWF0ZXN1YnNjcmliZXJfaW50ZXJuYWwu bG9nCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwgICAgIHwg IDI4ICsrKwogc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYyAgIHwg MTY2ICsrKysrKysrKysrKysrKysrLQogLi4uL3QvMDQwX3BnX2NyZWF0ZXN1YnNjcmliZXIucGwg ICAgICAgICAgICAgIHwgIDQxICsrKystCiAzIGZpbGVzIGNoYW5nZWQsIDIyNSBpbnNlcnRpb25z KCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2Ny ZWF0ZXN1YnNjcmliZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfY3JlYXRlc3Vic2NyaWJl ci5zZ21sCmluZGV4IGNmNDVmZjM1NzNkLi4yODk4YTVlYTExMSAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwKQEAgLTEzNiw2ICsxMzYsMzQgQEAgUG9zdGdyZVNR TCBkb2N1bWVudGF0aW9uCiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAK KyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48b3B0aW9uPi1sIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5kaXJlY3Rvcnk8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4K KyAgICAgPHRlcm0+PG9wdGlvbj4tLWxvZ2Rpcj08cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+ZGlyZWN0b3J5PC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgIDxsaXN0aXRl bT4KKyAgICAgIDxwYXJhPgorICAgICAgIFNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIGxvZyBkaXJl Y3RvcnkuIEEgbmV3IGRpcmVjdG9yeSBpcyBjcmVhdGVkIHdpdGgKKyAgICAgICB0aGlzIG5hbWUg aWYgaXQgZG9lcyBub3QgZXhpc3QuIEEgc3ViZGlyZWN0b3J5IHdpdGggYSB0aW1lc3RhbXAKKyAg ICAgICBpbmRpY2F0aW5nIHRoZSB0aW1lIGF0IHdoaWNoIHBnX2NyZWF0ZXN1YnNjcmliZXIgd2Fz IHJ1biB3aWxsIGJlIGNyZWF0ZWQuCisgICAgICAgVGhlIGZvbGxvd2luZyB0d28gbG9nIGZpbGVz IHdpbGwgYmUgY3JlYXRlZCBpbiB0aGUgc3ViZGlyZWN0b3J5IHdpdGggYQorICAgICAgIHVtYXNr IG9mIDA3NyBzbyB0aGF0IGFjY2VzcyBpcyBkaXNhbGxvd2VkIHRvIG90aGVyIHVzZXJzIGJ5IGRl ZmF1bHQuCisgICAgICAgPGl0ZW1pemVkbGlzdD4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAg ICAgPHBhcmE+CisgICAgICAgICAgcGdfY3JlYXRlc3Vic2NyaWJlcl9zZXJ2ZXIubG9nIHdoaWNo IGNhcHR1cmVzIGxvZ3MgcmVsYXRlZCB0byBzdG9wcGluZworICAgICAgICAgIGFuZCBzdGFydGlu ZyB0aGUgc3RhbmRieSBzZXJ2ZXIsCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0 ZW0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIHBnX2Ny ZWF0ZXN1YnNjcmliZXJfaW50ZXJuYWwubG9nIHdoaWNoIGNhcHR1cmVzIGludGVybmFsIGRpYWdu b3N0aWMKKyAgICAgICAgICBvdXRwdXQgKHZhbGlkYXRpb25zLCBjaGVja3MsIGV0Yy4pCisgICAg ICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC9pdGVtaXplZGxpc3Q+ CisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisK ICAgICA8dmFybGlzdGVudHJ5PgogICAgICA8dGVybT48b3B0aW9uPi1uPC9vcHRpb24+PC90ZXJt PgogICAgICA8dGVybT48b3B0aW9uPi0tZHJ5LXJ1bjwvb3B0aW9uPjwvdGVybT4KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMgYi9zcmMvYmlu L3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jCmluZGV4IGIwMmFmOWE0Y2MwLi44 N2U0Zjk1YjIyZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1 YnNjcmliZXIuYworKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJl ci5jCkBAIC01NSwxMCArNTUsMTQgQEAKICNkZWZpbmUgSU5DTFVERURfQ09ORl9GSUxFCQkJInBn X2NyZWF0ZXN1YnNjcmliZXIuY29uZiIKICNkZWZpbmUgSU5DTFVERURfQ09ORl9GSUxFX0RJU0FC TEVECUlOQ0xVREVEX0NPTkZfRklMRSAiLmRpc2FibGVkIgogCisjZGVmaW5lIFNFUlZFUl9MT0df RklMRV9OQU1FICJwZ19jcmVhdGVzdWJzY3JpYmVyX3NlcnZlciIKKyNkZWZpbmUgSU5URVJOQUxf TE9HX0ZJTEVfTkFNRSAicGdfY3JlYXRlc3Vic2NyaWJlcl9pbnRlcm5hbCIKKwogLyogQ29tbWFu ZC1saW5lIG9wdGlvbnMgKi8KIHN0cnVjdCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucwogewogCWNo YXIJICAgKmNvbmZpZ19maWxlOwkvKiBjb25maWd1cmF0aW9uIGZpbGUgKi8KKwljaGFyCSAgICps b2dfZGlyOwkJLyogbG9nIGRpcmVjdG9yeSBuYW1lICovCiAJY2hhcgkgICAqcHViX2Nvbm5pbmZv X3N0cjsJLyogcHVibGlzaGVyIGNvbm5lY3Rpb24gc3RyaW5nICovCiAJY2hhcgkgICAqc29ja2V0 X2RpcjsJCS8qIGRpcmVjdG9yeSBmb3IgVW5peC1kb21haW4gc29ja2V0LCBpZiBhbnkgKi8KIAlj aGFyCSAgICpzdWJfcG9ydDsJCS8qIHN1YnNjcmliZXIgcG9ydCBudW1iZXIgKi8KQEAgLTE1Nyw2 ICsxNjEsOSBAQCBzdGF0aWMgdm9pZCBwZ19jcmVhdGVzdWJfbG9nKGVudW0gcGdfbG9nX2xldmVs LCBlbnVtIHBnX2xvZ19wYXJ0LAogCQkJcGdfYXR0cmlidXRlX3ByaW50ZigzLCA0KTsKIHBnX25v cmV0dXJuIHN0YXRpYyB2b2lkIHBnX2ZhdGFsKGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwu Li4pCiAJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDEsIDIpOworc3RhdGljIHZvaWQgaW50ZXJuYWxf bG9nX2ZpbGVfd3JpdGUoZW51bSBwZ19sb2dfbGV2ZWwgbGV2ZWwsCisJCQkJCQkJCQljb25zdCBj aGFyICpwZ19yZXN0cmljdCBmbXQsIHZhX2xpc3QgYXJncykKKwkJCXBnX2F0dHJpYnV0ZV9wcmlu dGYoMiwgMCk7CiAKICNkZWZpbmUJV0FJVF9JTlRFUlZBTAkxCQkvKiAxIHNlY29uZCAqLwogCkBA IC0xNzgsNiArMTg1LDEwIEBAIHN0YXRpYyBwZ19wcm5nX3N0YXRlIHBybmdfc3RhdGU7CiBzdGF0 aWMgY2hhciAqcGdfY3RsX3BhdGggPSBOVUxMOwogc3RhdGljIGNoYXIgKnBnX3Jlc2V0d2FsX3Bh dGggPSBOVUxMOwogCitzdGF0aWMgRklMRSAqaW50ZXJuYWxfbG9nX2ZpbGVfZnAgPSBOVUxMOwkv KiBGaWxlIHB0ciB0byBsb2cgYWxsIG1lc3NhZ2VzIHRvICovCitzdGF0aWMgY2hhciAqbG9nX3Rp bWVzdGFtcCA9IE5VTEw7CS8qIFRpbWVzdGFtcCB0byBiZSB1c2VkIGluIGFsbCBsb2cgZmlsZQor CQkJCQkJCQkJICogbmFtZXMgKi8KKwogLyogc3RhbmRieSAvIHN1YnNjcmliZXIgZGF0YSBkaXJl Y3RvcnkgKi8KIHN0YXRpYyBjaGFyICpzdWJzY3JpYmVyX2RpciA9IE5VTEw7CiAKQEAgLTE5Miw3 ICsyMDMsMTMgQEAgcGdfY3JlYXRlc3ViX2xvZyhlbnVtIHBnX2xvZ19sZXZlbCBsZXZlbCwgZW51 bSBwZ19sb2dfcGFydCBwYXJ0LAogCXZhX2xpc3QJCWFyZ3M7CiAKIAl2YV9zdGFydChhcmdzLCBm bXQpOwotCXBnX2xvZ19nZW5lcmljX3YobGV2ZWwsIHBhcnQsIGZtdCwgYXJncyk7CisKKwlpZiAo aW50ZXJuYWxfbG9nX2ZpbGVfZnAgIT0gTlVMTCkKKwkJaW50ZXJuYWxfbG9nX2ZpbGVfd3JpdGUo bGV2ZWwsIGZtdCwgYXJncyk7CisKKwlpZiAoaW50ZXJuYWxfbG9nX2ZpbGVfZnAgPT0gTlVMTCB8 fCBsZXZlbCA+IFBHX0xPR19JTkZPKQorCQlwZ19sb2dfZ2VuZXJpY192KGxldmVsLCBwYXJ0LCBm bXQsIGFyZ3MpOworCiAJdmFfZW5kKGFyZ3MpOwogfQogCkBAIC0zMDgsNiArMzI1LDEyIEBAIGNs ZWFudXBfb2JqZWN0c19hdGV4aXQodm9pZCkKIAogCWlmIChzdGFuZGJ5X3J1bm5pbmcpCiAJCXN0 b3Bfc3RhbmRieV9zZXJ2ZXIoc3Vic2NyaWJlcl9kaXIpOworCisJaWYgKGludGVybmFsX2xvZ19m aWxlX2ZwICE9IE5VTEwpCisJeworCQlmY2xvc2UoaW50ZXJuYWxfbG9nX2ZpbGVfZnApOworCQlp bnRlcm5hbF9sb2dfZmlsZV9mcCA9IE5VTEw7CisJfQogfQogCiBzdGF0aWMgdm9pZApAQCAtMzIy LDYgKzM0NSw3IEBAIHVzYWdlKHZvaWQpCiAJCQkgIiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkYXRhYmFzZXMgYW5kIGRhdGFiYXNlcyB0aGF0IGRvbid0IGFsbG93IGNvbm5lY3Rp b25zXG4iKSk7CiAJcHJpbnRmKF8oIiAgLWQsIC0tZGF0YWJhc2U9REJOQU1FICAgICAgICAgICBk YXRhYmFzZSBpbiB3aGljaCB0byBjcmVhdGUgYSBzdWJzY3JpcHRpb25cbiIpKTsKIAlwcmludGYo XygiICAtRCwgLS1wZ2RhdGE9REFUQURJUiAgICAgICAgICAgIGxvY2F0aW9uIGZvciB0aGUgc3Vi c2NyaWJlciBkYXRhIGRpcmVjdG9yeVxuIikpOworCXByaW50ZihfKCIgIC1sLCAtLWxvZ2Rpcj1M T0dESVIgICAgICAgICAgICAgbG9jYXRpb24gZm9yIHRoZSBuZXcgbG9nIGRpcmVjdG9yeVxuIikp OwogCXByaW50ZihfKCIgIC1uLCAtLWRyeS1ydW4gICAgICAgICAgICAgICAgICAgZHJ5IHJ1biwg anVzdCBzaG93IHdoYXQgd291bGQgYmUgZG9uZVxuIikpOwogCXByaW50ZihfKCIgIC1wLCAtLXN1 YnNjcmliZXItcG9ydD1QT1JUICAgICAgc3Vic2NyaWJlciBwb3J0IG51bWJlciAoZGVmYXVsdCAl cylcbiIpLCBERUZBVUxUX1NVQl9QT1JUKTsKIAlwcmludGYoXygiICAtUCwgLS1wdWJsaXNoZXIt c2VydmVyPUNPTk5TVFIgIHB1Ymxpc2hlciBjb25uZWN0aW9uIHN0cmluZ1xuIikpOwpAQCAtNzU2 LDYgKzc4MCw3IEBAIG1vZGlmeV9zdWJzY3JpYmVyX3N5c2lkKGNvbnN0IHN0cnVjdCBDcmVhdGVT dWJzY3JpYmVyT3B0aW9ucyAqb3B0KQogCWJvb2wJCWNyY19vazsKIAlzdHJ1Y3QgdGltZXZhbCB0 djsKIAorCWNoYXIJICAgKm91dF9maWxlOwogCWNoYXIJICAgKmNtZF9zdHI7CiAKIAlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKQEAgLTc5NCw4ICs4MTksMTMg QEAgbW9kaWZ5X3N1YnNjcmliZXJfc3lzaWQoY29uc3Qgc3RydWN0IENyZWF0ZVN1YnNjcmliZXJP cHRpb25zICpvcHQpCiAJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklN QVJZLAogCQkJCQkJICJydW5uaW5nIHBnX3Jlc2V0d2FsIG9uIHRoZSBzdWJzY3JpYmVyIik7CiAK LQljbWRfc3RyID0gcHNwcmludGYoIlwiJXNcIiAtRCBcIiVzXCIgPiBcIiVzXCIiLCBwZ19yZXNl dHdhbF9wYXRoLAotCQkJCQkgICBzdWJzY3JpYmVyX2RpciwgREVWTlVMTCk7CisJaWYgKG9wdC0+ bG9nX2RpciAhPSBOVUxMKQorCQlvdXRfZmlsZSA9IHBzcHJpbnRmKCIlcy8lcy8lcy5sb2ciLCBv cHQtPmxvZ19kaXIsIGxvZ190aW1lc3RhbXAsIFNFUlZFUl9MT0dfRklMRV9OQU1FKTsKKwllbHNl CisJCW91dF9maWxlID0gREVWTlVMTDsKKworCWNtZF9zdHIgPSBwc3ByaW50ZigiXCIlc1wiIC1E IFwiJXNcIiA+PiBcIiVzXCIiLCBwZ19yZXNldHdhbF9wYXRoLAorCQkJCQkgICBzdWJzY3JpYmVy X2Rpciwgb3V0X2ZpbGUpOwogCiAJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xP R19QUklNQVJZLAogCQkJCQkgInBnX3Jlc2V0d2FsIGNvbW1hbmQgaXM6ICVzIiwgY21kX3N0cik7 CkBAIC0xMDE4LDYgKzEwNDgsMTEwIEBAIHNlcnZlcl9pc19pbl9yZWNvdmVyeShQR2Nvbm4gKmNv bm4pCiAJcmV0dXJuIHJldCA9PSAwOwogfQogCitzdGF0aWMgdm9pZAoraW50ZXJuYWxfbG9nX2Zp bGVfd3JpdGUoZW51bSBwZ19sb2dfbGV2ZWwgbGV2ZWwsIGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0 IGZtdCwKKwkJCQkJCXZhX2xpc3QgYXJncykKK3sKKwlpZiAobGV2ZWwgPCBfX3BnX2xvZ19sZXZl bCkKKwkJcmV0dXJuOworCisJaWYgKGludGVybmFsX2xvZ19maWxlX2ZwID09IE5VTEwpCisJCXJl dHVybjsKKworCXZmcHJpbnRmKGludGVybmFsX2xvZ19maWxlX2ZwLCBmbXQsIGFyZ3MpOworCisJ ZnByaW50ZihpbnRlcm5hbF9sb2dfZmlsZV9mcCwgIlxuIik7CisJZmZsdXNoKGludGVybmFsX2xv Z19maWxlX2ZwKTsKK30KKworLyoKKyAqIE9wZW4gYSBuZXcgbG9nZmlsZSB3aXRoIHByb3BlciBw ZXJtaXNzaW9ucy4KKyAqIEZyb20gc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9zeXNsb2dnZXIuYwor ICovCitzdGF0aWMgRklMRSAqCitsb2dmaWxlX29wZW4oY29uc3QgY2hhciAqZmlsZW5hbWUsIGNv bnN0IGNoYXIgKm1vZGUpCit7CisJRklMRQkgICAqZmg7CisJbW9kZV90CQlvdW1hc2s7CisKKwlv dW1hc2sgPSB1bWFzaygobW9kZV90KSAoKH4oU19JUlVTUiB8IFNfSVdVU1IpKSAmIChTX0lSV1hV IHwgU19JUldYRyB8IFNfSVJXWE8pKSk7CisJZmggPSBmb3BlbihmaWxlbmFtZSwgbW9kZSk7CisJ dW1hc2sob3VtYXNrKTsKKworCWlmIChmaCkKKwl7CisJCXNldHZidWYoZmgsIE5VTEwsIFBHX0lP TEJGLCAwKTsKKworI2lmZGVmIFdJTjMyCisJCS8qIHVzZSBDUkxGIGxpbmUgZW5kaW5ncyBvbiBX aW5kb3dzICovCisJCV9zZXRtb2RlKF9maWxlbm8oZmgpLCBfT19URVhUKTsKKyNlbmRpZgorCX0K KwllbHNlCisJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBsb2cgZmlsZSBcIiVzXCI6ICVtIiwK KwkJCQkgZmlsZW5hbWUpOworCisJcmV0dXJuIGZoOworfQorCitzdGF0aWMgdm9pZAorbWFrZV9k aXIoY29uc3QgY2hhciAqZGlyKQoreworCXN0cnVjdCBzdGF0IHN0YXRidWY7CisKKwlpZiAoc3Rh dChkaXIsICZzdGF0YnVmKSA9PSAwKQorCQlyZXR1cm47CisKKwlpZiAoZXJybm8gIT0gRU5PRU5U KQorCQlwZ19mYXRhbCgiY291bGQgbm90IHN0YXQgZGlyZWN0b3J5IFwiJXNcIjogJW0iLCBkaXIp OworCisJaWYgKG1rZGlyKGRpciwgU19JUldYVSkgPT0gMCkKKwl7CisJCXBnX2xvZ19pbmZvKCJk aXJlY3RvcnkgJXMgY3JlYXRlZCIsIGRpcik7CisJCXJldHVybjsKKwl9CisKKwlwZ19mYXRhbCgi Y291bGQgbm90IGNyZWF0ZSBsb2cgZGlyZWN0b3J5IFwiJXNcIjogJW0iLCBkaXIpOworfQorCitz dGF0aWMgdm9pZAorbWFrZV9vdXRwdXRfZGlycyhjb25zdCBjaGFyICpsb2dfZGlyKQoreworCWNo YXIJCXRpbWVzdGFtcFsxMjhdOworCXN0cnVjdCB0aW1ldmFsIHR2YWw7CisJdGltZV90CQlub3c7 CisJc3RydWN0IHRtCXRtYnVmOworCWNoYXIJCXRpbWVzdGFtcF9kaXJbTUFYUEdQQVRIXTsKKwlp bnQJCQlsZW47CisKKwkvKiBHZW5lcmF0ZSB0aW1lc3RhbXAgKi8KKwlnZXR0aW1lb2ZkYXkoJnR2 YWwsIE5VTEwpOworCW5vdyA9IHR2YWwudHZfc2VjOworCisJc3RyZnRpbWUodGltZXN0YW1wLCBz aXplb2YodGltZXN0YW1wKSwgIiVZJW0lZFQlSCVNJVMiLAorCQkJIGxvY2FsdGltZV9yKCZub3cs ICZ0bWJ1ZikpOworCisJLyogYXBwZW5kIG1pbGxpc2Vjb25kcyAqLworCXNucHJpbnRmKHRpbWVz dGFtcCArIHN0cmxlbih0aW1lc3RhbXApLAorCQkJIHNpemVvZih0aW1lc3RhbXApIC0gc3RybGVu KHRpbWVzdGFtcCksICIuJTAzdSIsCisJCQkgKHVuc2lnbmVkIGludCkgKHR2YWwudHZfdXNlYyAv IDEwMDApKTsKKworCWxvZ190aW1lc3RhbXAgPSBwZ19zdHJkdXAodGltZXN0YW1wKTsKKworCS8q IENyZWF0ZSBiYXNlIGRpcmVjdG9yeSAoaWdub3JlIGlmIGV4aXN0cykgKi8KKwltYWtlX2Rpcihs b2dfZGlyKTsKKworCS8qIEJ1aWxkIHRpbWVzdGFtcCBkaXJlY3RvcnkgcGF0aCAqLworCWxlbiA9 IHNucHJpbnRmKHRpbWVzdGFtcF9kaXIsIE1BWFBHUEFUSCwgIiVzLyVzIiwgbG9nX2RpciwgdGlt ZXN0YW1wKTsKKworCWlmIChsZW4gPj0gTUFYUEdQQVRIKQorCQlwZ19mYXRhbCgiZGlyZWN0b3J5 IHBhdGggZm9yIGxvZyBmaWxlcywgJXMvJXMsIGlzIHRvbyBsb25nIiwKKwkJCQkgbG9nX2Rpciwg dGltZXN0YW1wKTsKKworCS8qIENyZWF0ZSB0aW1lc3RhbXAgZGlyZWN0b3J5ICovCisJbWFrZV9k aXIodGltZXN0YW1wX2Rpcik7Cit9CisKIC8qCiAgKiBJcyB0aGUgcHJpbWFyeSBzZXJ2ZXIgcmVh ZHkgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24/CiAgKgpAQCAtMTc3Niw2ICsxOTEwLDkgQEAgc3Rh cnRfc3RhbmRieV9zZXJ2ZXIoY29uc3Qgc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25zICpv cHQsIGJvb2wgcmVzdHJpY3RlZF8KIAlpZiAocmVzdHJpY3RfbG9naWNhbF93b3JrZXIpCiAJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHBnX2N0bF9jbWQsICIgLW8gXCItYyBtYXhfbG9naWNhbF9yZXBs aWNhdGlvbl93b3JrZXJzPTBcIiIpOwogCisJaWYgKG9wdC0+bG9nX2RpciAhPSBOVUxMKQorCQlh cHBlbmRQUUV4cEJ1ZmZlcihwZ19jdGxfY21kLCAiIC1sICVzLyVzLyVzLmxvZyIsIG9wdC0+bG9n X2RpciwgbG9nX3RpbWVzdGFtcCwgU0VSVkVSX0xPR19GSUxFX05BTUUpOworCiAJcGdfY3JlYXRl c3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAogCQkJCQkgInBnX2N0bCBjb21t YW5kIGlzOiAlcyIsIHBnX2N0bF9jbWQtPmRhdGEpOwogCXJjID0gc3lzdGVtKHBnX2N0bF9jbWQt PmRhdGEpOwpAQCAtMjM0Niw2ICsyNDgzLDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CiAJCXsiYWxsIiwgbm9fYXJndW1lbnQsIE5VTEwsICdhJ30sCiAJCXsiZGF0YWJhc2UiLCByZXF1 aXJlZF9hcmd1bWVudCwgTlVMTCwgJ2QnfSwKIAkJeyJwZ2RhdGEiLCByZXF1aXJlZF9hcmd1bWVu dCwgTlVMTCwgJ0QnfSwKKwkJeyJsb2dkaXIiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ2wn fSwKIAkJeyJkcnktcnVuIiwgbm9fYXJndW1lbnQsIE5VTEwsICduJ30sCiAJCXsic3Vic2NyaWJl ci1wb3J0IiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdwJ30sCiAJCXsicHVibGlzaGVyLXNl cnZlciIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnUCd9LApAQCAtMjQwNCw2ICsyNTQyLDcg QEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJLyogRGVmYXVsdCBzZXR0aW5ncyAqLwog CXN1YnNjcmliZXJfZGlyID0gTlVMTDsKIAlvcHQuY29uZmlnX2ZpbGUgPSBOVUxMOworCW9wdC5s b2dfZGlyID0gTlVMTDsKIAlvcHQucHViX2Nvbm5pbmZvX3N0ciA9IE5VTEw7CiAJb3B0LnNvY2tl dF9kaXIgPSBOVUxMOwogCW9wdC5zdWJfcG9ydCA9IERFRkFVTFRfU1VCX1BPUlQ7CkBAIC0yNDM0 LDcgKzI1NzMsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAogCWdldF9yZXN0cmlj dGVkX3Rva2VuKCk7CiAKLQl3aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiYWQ6 RDpucDpQOnM6dDpUVTp2IiwKKwl3aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAi YWQ6RDpsOm5wOlA6czp0OlRVOnYiLAogCQkJCQkJCWxvbmdfb3B0aW9ucywgJm9wdGlvbl9pbmRl eCkpICE9IC0xKQogCXsKIAkJc3dpdGNoIChjKQpAQCAtMjQ1NSw2ICsyNTk0LDEwIEBAIG1haW4o aW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJCXN1YnNjcmliZXJfZGlyID0gcGdfc3RyZHVwKG9w dGFyZyk7CiAJCQkJY2Fub25pY2FsaXplX3BhdGgoc3Vic2NyaWJlcl9kaXIpOwogCQkJCWJyZWFr OworCQkJY2FzZSAnbCc6CisJCQkJb3B0LmxvZ19kaXIgPSBwZ19zdHJkdXAob3B0YXJnKTsKKwkJ CQljYW5vbmljYWxpemVfcGF0aChvcHQubG9nX2Rpcik7CisJCQkJYnJlYWs7CiAJCQljYXNlICdu JzoKIAkJCQlkcnlfcnVuID0gdHJ1ZTsKIAkJCQlicmVhazsKQEAgLTI1MjUsNiArMjY2OCwxOCBA QCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJfQogCX0KIAorCWlmIChvcHQubG9nX2Rp ciAhPSBOVUxMKQorCXsKKwkJY2hhcgkgICAqaW50ZXJuYWxfbG9nX2ZpbGU7CisKKwkJbWFrZV9v dXRwdXRfZGlycyhvcHQubG9nX2Rpcik7CisJCWludGVybmFsX2xvZ19maWxlID0gcHNwcmludGYo IiVzLyVzLyVzLmxvZyIsIG9wdC5sb2dfZGlyLCBsb2dfdGltZXN0YW1wLAorCQkJCQkJCQkJIElO VEVSTkFMX0xPR19GSUxFX05BTUUpOworCisJCWlmICgoaW50ZXJuYWxfbG9nX2ZpbGVfZnAgPSBs b2dmaWxlX29wZW4oaW50ZXJuYWxfbG9nX2ZpbGUsICJhIikpID09IE5VTEwpCisJCQlwZ19mYXRh bCgiY291bGQgbm90IG9wZW4gbG9nIGZpbGUgXCIlc1wiOiAlbSIsIGludGVybmFsX2xvZ19maWxl KTsKKwl9CisKIAkvKiBWYWxpZGF0ZSB0aGF0IC0tYWxsIGlzIG5vdCB1c2VkIHdpdGggaW5jb21w YXRpYmxlIG9wdGlvbnMgKi8KIAlpZiAob3B0LmFsbF9kYnMpCiAJewpAQCAtMjgyMSw1ICsyOTc2 LDggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJcGdfY3JlYXRlc3ViX2xvZyhQR19M T0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCiAJCQkJCSAiRG9uZSEiKTsKIAorCWlmIChpbnRlcm5h bF9sb2dfZmlsZV9mcCAhPSBOVUxMKQorCQlmY2xvc2UoaW50ZXJuYWxfbG9nX2ZpbGVfZnApOwor CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wNDBf cGdfY3JlYXRlc3Vic2NyaWJlci5wbCBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90LzA0MF9wZ19j cmVhdGVzdWJzY3JpYmVyLnBsCmluZGV4IDBjMjdmY2E3YmI3Li40ZGRmYjYyMWE1ZCAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDQwX3BnX2NyZWF0ZXN1YnNjcmliZXIucGwK KysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDQwX3BnX2NyZWF0ZXN1YnNjcmliZXIucGwK QEAgLTE0LDYgKzE0LDcgQEAgcHJvZ3JhbV92ZXJzaW9uX29rKCdwZ19jcmVhdGVzdWJzY3JpYmVy Jyk7CiBwcm9ncmFtX29wdGlvbnNfaGFuZGxpbmdfb2soJ3BnX2NyZWF0ZXN1YnNjcmliZXInKTsK IAogbXkgJGRhdGFkaXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dGVtcGRpcjsKK215ICRs b2dkaXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dGVtcGRpciArICIvbG9nZGlyIjsKIAog IyBHZW5lcmF0ZSBhIGRhdGFiYXNlIHdpdGggYSBuYW1lIG1hZGUgb2YgYSByYW5nZSBvZiBBU0NJ SSBjaGFyYWN0ZXJzLgogIyBFeHRyYWN0ZWQgZnJvbSAwMDJfcGdfdXBncmFkZS5wbC4KQEAgLTM2 Miw5ICszNjMsMzUgQEAgY29tbWFuZF9vaygKIAkJJy0tc3Vic2NyaXB0aW9uJyA9PiAnc3ViMics CiAJCSctLWRhdGFiYXNlJyA9PiAkZGIxLAogCQknLS1kYXRhYmFzZScgPT4gJGRiMiwKKwkJJy0t bG9nZGlyJyA9PiAkbG9nZGlyLAogCV0sCiAJJ3J1biBwZ19jcmVhdGVzdWJzY3JpYmVyIC0tZHJ5 LXJ1biBvbiBub2RlIFMnKTsKIAorIyBDaGVjayB0aGF0IHRoZSBsb2cgZmlsZXMgd2VyZSBjcmVh dGVkCitteSBAc2VydmVyX2xvZ19maWxlcyA9IGdsb2IgIiRsb2dkaXIvKi9wZ19jcmVhdGVzdWJz Y3JpYmVyX3NlcnZlci5sb2ciOworaXMoIHNjYWxhcihAc2VydmVyX2xvZ19maWxlcyksIDEsICIK KyAgICBwZ19jcmVhdGVzdWJzY3JpYmVyX3NlcnZlci5sb2cgZmlsZSB3YXMgY3JlYXRlZCIpOwor bXkgJHNlcnZlcl9sb2dfZmlsZV9zaXplID0gLXMgJHNlcnZlcl9sb2dfZmlsZXNbMF07Citpc250 KCRzZXJ2ZXJfbG9nX2ZpbGVfc2l6ZSwgMCwKKwkicGdfY3JlYXRlc3Vic2NyaWJlcl9zZXJ2ZXIu bG9nIGZpbGUgbm90IGVtcHR5Iik7CitteSAkc2VydmVyX2xvZyA9IHNsdXJwX2ZpbGUoJHNlcnZl cl9sb2dfZmlsZXNbMF0pOworbGlrZSgKKwkkc2VydmVyX2xvZywKKwlxci9jb25zaXN0ZW50IHJl Y292ZXJ5IHN0YXRlIHJlYWNoZWQvLAorCSJzZXJ2ZXIgcmVhY2hlZCBjb25zaXN0ZW50IHJlY292 ZXJ5IHN0YXRlIik7CisKK215IEBpbnRlcm5hbF9sb2dfZmlsZXMgPSBnbG9iICIkbG9nZGlyLyov cGdfY3JlYXRlc3Vic2NyaWJlcl9pbnRlcm5hbC5sb2ciOworaXMoIHNjYWxhcihAaW50ZXJuYWxf bG9nX2ZpbGVzKSwgMSwgIgorICAgIHBnX2NyZWF0ZXN1YnNjcmliZXJfaW50ZXJuYWwubG9nIGZp bGUgd2FzIGNyZWF0ZWQiKTsKK215ICRpbnRlcm5hbF9sb2dfZmlsZV9zaXplID0gLXMgJGludGVy bmFsX2xvZ19maWxlc1swXTsKK2lzbnQoJGludGVybmFsX2xvZ19maWxlX3NpemUsIDAsCisJInBn X2NyZWF0ZXN1YnNjcmliZXJfaW50ZXJuYWwubG9nIGZpbGUgbm90IGVtcHR5Iik7CitteSAkaW50 ZXJuYWxfbG9nID0gc2x1cnBfZmlsZSgkaW50ZXJuYWxfbG9nX2ZpbGVzWzBdKTsKK2xpa2UoCisJ JGludGVybmFsX2xvZywKKwlxci90YXJnZXQgc2VydmVyIHJlYWNoZWQgdGhlIGNvbnNpc3RlbnQg c3RhdGUvLAorCSJsb2cgc2hvd3MgY29uc2lzdGVudCBzdGF0ZSByZWFjaGVkIik7CisKICMgQ2hl Y2sgaWYgbm9kZSBTIGlzIHN0aWxsIGEgc3RhbmRieQogJG5vZGVfcy0+c3RhcnQ7CiBpcygkbm9k ZV9zLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ1NFTEVDVCBwZ19jYXRhbG9nLnBnX2lzX2luX3Jl Y292ZXJ5KCknKSwKQEAgLTQ0NCw3ICs0NzEsOCBAQCBpcyhzY2FsYXIoKCkgPSAkc3RkZXJyID1+ IC93b3VsZCBjcmVhdGUgc3Vic2NyaXB0aW9uL2cpLAogCiAjIENyZWF0ZSBhIHVzZXItZGVmaW5l ZCBwdWJsaWNhdGlvbiwgYW5kIGEgdGFibGUgdGhhdCBpcyBub3QgYSBtZW1iZXIgb2YgdGhhdAog IyBwdWJsaWNhdGlvbi4KLSRub2RlX3AtPnNhZmVfcHNxbCgkZGIxLCBxcSgKKyRub2RlX3AtPnNh ZmVfcHNxbCgKKwkkZGIxLCBxcSgKIAlDUkVBVEUgUFVCTElDQVRJT04gdGVzdF9wdWIzIEZPUiBU QUJMRSB0YmwxOwogCUNSRUFURSBUQUJMRSBub3RfcmVwbGljYXRlZCAoYSBpbnQpOwogKSk7CkBA IC01NDAsOCArNTY4LDcgQEAgc2Vjb25kIHJvdwogdGhpcmQgcm93KSwKIAkibG9naWNhbCByZXBs aWNhdGlvbiB3b3JrcyBpbiBkYXRhYmFzZSAkZGIxIik7CiAkcmVzdWx0ID0gJG5vZGVfcy0+c2Fm ZV9wc3FsKCRkYjEsICdTRUxFQ1QgKiBGUk9NIG5vdF9yZXBsaWNhdGVkJyk7Ci1pcygkcmVzdWx0 LCBxcSgpLAotCSJ0YWJsZSBpcyBub3QgcmVwbGljYXRlZCBpbiBkYXRhYmFzZSAkZGIxIik7Citp cygkcmVzdWx0LCBxcSgpLCAidGFibGUgaXMgbm90IHJlcGxpY2F0ZWQgaW4gZGF0YWJhc2UgJGRi MSIpOwogCiAjIENoZWNrIHJlc3VsdCBpbiBkYXRhYmFzZSAkZGIyCiAkcmVzdWx0ID0gJG5vZGVf cy0+c2FmZV9wc3FsKCRkYjIsICdTRUxFQ1QgKiBGUk9NIHRibDInKTsKQEAgLTU1NSw4ICs1ODIs MTAgQEAgbXkgJHN5c2lkX3MgPSAkbm9kZV9zLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIGlzbnQo JHN5c2lkX3AsICRzeXNpZF9zLCAnc3lzdGVtIGlkZW50aWZpZXIgd2FzIGNoYW5nZWQnKTsKIAog IyBWZXJpZnkgdGhhdCBwdWIyIHdhcyBjcmVhdGVkIGluICRkYjIKLWlzKCRub2RlX3AtPnNhZmVf cHNxbCgkZGIyLCAiU0VMRUNUIENPVU5UKCopIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVi bmFtZSA9ICdwdWIyJyIpLAotCScxJywgInB1YmxpY2F0aW9uIHB1YjIgd2FzIGNyZWF0ZWQgaW4g JGRiMiIpOworaXMoICRub2RlX3AtPnNhZmVfcHNxbCgKKwkJJGRiMiwgIlNFTEVDVCBDT1VOVCgq KSBGUk9NIHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWUgPSAncHViMiciKSwKKwknMScsCisJ InB1YmxpY2F0aW9uIHB1YjIgd2FzIGNyZWF0ZWQgaW4gJGRiMiIpOwogCiAjIEdldCBzdWJzY3Jp cHRpb24gYW5kIHB1YmxpY2F0aW9uIG5hbWVzCiAkcmVzdWx0ID0gJG5vZGVfcy0+c2FmZV9wc3Fs KApAQCAtNTgxLDcgKzYxMCw3IEBAICRyZXN1bHQgPSAkbm9kZV9zLT5zYWZlX3BzcWwoCiAgICAg KQogKTsKIAotaXMoJHJlc3VsdCwgcXEoJGRiMXx7dGVzdF9wdWIzfQoraXMoICRyZXN1bHQsIHFx KCRkYjF8e3Rlc3RfcHViM30KICRkYjJ8e3B1YjJ9KSwKIAkic3Vic2NyaXB0aW9ucyB1c2UgdGhl IGNvcnJlY3QgcHVibGljYXRpb25zIik7CiAKLS0gCjIuNDcuMwoK --_004_OS9PR01MB1214902CC518A8102333FA88DF54EAOS9PR01MB12149jp_ Content-Type: application/octet-stream; name="v11-0003-Address-comments-from-Hayato-Kuroda.patch" Content-Description: v11-0003-Address-comments-from-Hayato-Kuroda.patch Content-Disposition: attachment; filename="v11-0003-Address-comments-from-Hayato-Kuroda.patch"; size=5448; creation-date="Wed, 18 Mar 2026 13:09:38 GMT"; modification-date="Wed, 18 Mar 2026 13:35:26 GMT" Content-Transfer-Encoding: base64 RnJvbSAxZjcyNDI5ZWJmMjA5NTg5NzNlZGI4NDgyMmMyZmJiZjYwMzE2NWY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYXlhdG8gS3Vyb2RhIDxrdXJvZGEuaGF5YXRvQGZ1aml0c3Uu Y29tPgpEYXRlOiBXZWQsIDE4IE1hciAyMDI2IDIxOjQzOjA4ICswOTAwClN1YmplY3Q6IFtQQVRD SCB2MTEgMy8zXSBBZGRyZXNzIGNvbW1lbnRzIGZyb20gSGF5YXRvIEt1cm9kYQoKLS0tCiBzcmMv YmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jIHwgODkgKysrKysrKysrLS0t LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgNTMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmli ZXIuYyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMKaW5kZXgg ODdlNGY5NWIyMmUuLjgzYjY0OTYwZGE4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2Jhc2ViYWNr dXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jCisrKyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19j cmVhdGVzdWJzY3JpYmVyLmMKQEAgLTE4Niw4ICsxODYsNyBAQCBzdGF0aWMgY2hhciAqcGdfY3Rs X3BhdGggPSBOVUxMOwogc3RhdGljIGNoYXIgKnBnX3Jlc2V0d2FsX3BhdGggPSBOVUxMOwogCiBz dGF0aWMgRklMRSAqaW50ZXJuYWxfbG9nX2ZpbGVfZnAgPSBOVUxMOwkvKiBGaWxlIHB0ciB0byBs b2cgYWxsIG1lc3NhZ2VzIHRvICovCi1zdGF0aWMgY2hhciAqbG9nX3RpbWVzdGFtcCA9IE5VTEw7 CS8qIFRpbWVzdGFtcCB0byBiZSB1c2VkIGluIGFsbCBsb2cgZmlsZQotCQkJCQkJCQkJICogbmFt ZXMgKi8KK3N0YXRpYyBjaGFyIGxvZ2RpcltNQVhQR1BBVEhdOwkvKiBEaXJlY3RvcnkgbG9nIGZp bGVzIGFyZSBwdXQgKGlmIHNwZWNpZmllZCkgKi8KIAogLyogc3RhbmRieSAvIHN1YnNjcmliZXIg ZGF0YSBkaXJlY3RvcnkgKi8KIHN0YXRpYyBjaGFyICpzdWJzY3JpYmVyX2RpciA9IE5VTEw7CkBA IC04MTksOCArODE4LDEzIEBAIG1vZGlmeV9zdWJzY3JpYmVyX3N5c2lkKGNvbnN0IHN0cnVjdCBD cmVhdGVTdWJzY3JpYmVyT3B0aW9ucyAqb3B0KQogCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19J TkZPLCBQR19MT0dfUFJJTUFSWSwKIAkJCQkJCSAicnVubmluZyBwZ19yZXNldHdhbCBvbiB0aGUg c3Vic2NyaWJlciIpOwogCi0JaWYgKG9wdC0+bG9nX2RpciAhPSBOVUxMKQotCQlvdXRfZmlsZSA9 IHBzcHJpbnRmKCIlcy8lcy8lcy5sb2ciLCBvcHQtPmxvZ19kaXIsIGxvZ190aW1lc3RhbXAsIFNF UlZFUl9MT0dfRklMRV9OQU1FKTsKKwkvKgorCSAqIFJlZGlyZWN0aW5nIHRoZSBvdXRwdXQgdG8g dGhlIGxvZ2ZpbGUgaWYgc3BlY2lmaWVkLiBTaW5jZSB0aGUgb3V0cHV0CisJICogd291bGQgYmUg dmVyeSBzaG9ydCwgYXJvdW5kIG9uZSBsaW5lLCB3ZSBkbyBub3QgcHJvdmlkZSBhIHNlcGFyYXRl IGZpbGUKKwkgKiBmb3IgaXQ7IGl0J3MgZG9uZSBhcyBhIHBhcnQgb2YgdGhlIHNlcnZlciBsb2cu CisJICovCisJaWYgKG9wdC0+bG9nX2RpcikKKwkJb3V0X2ZpbGUgPSBwc3ByaW50ZigiJXMvJXMu bG9nIiwgbG9nZGlyLCBTRVJWRVJfTE9HX0ZJTEVfTkFNRSk7CiAJZWxzZQogCQlvdXRfZmlsZSA9 IERFVk5VTEw7CiAKQEAgLTEwNTIsMTMgKzEwNTYsMTMgQEAgc3RhdGljIHZvaWQKIGludGVybmFs X2xvZ19maWxlX3dyaXRlKGVudW0gcGdfbG9nX2xldmVsIGxldmVsLCBjb25zdCBjaGFyICpwZ19y ZXN0cmljdCBmbXQsCiAJCQkJCQl2YV9saXN0IGFyZ3MpCiB7Ci0JaWYgKGxldmVsIDwgX19wZ19s b2dfbGV2ZWwpCi0JCXJldHVybjsKKwlBc3NlcnQoaW50ZXJuYWxfbG9nX2ZpbGVfZnApOwogCi0J aWYgKGludGVybmFsX2xvZ19maWxlX2ZwID09IE5VTEwpCisJLyogRG8gbm90aGluZyBpZiBsb2cg bGV2ZWwgaXMgdG9vIGxvdy4gKi8KKwlpZiAobGV2ZWwgPCBfX3BnX2xvZ19sZXZlbCkKIAkJcmV0 dXJuOwogCi0JdmZwcmludGYoaW50ZXJuYWxfbG9nX2ZpbGVfZnAsIGZtdCwgYXJncyk7CisJdmZw cmludGYoaW50ZXJuYWxfbG9nX2ZpbGVfZnAsIF8oZm10KSwgYXJncyk7CiAKIAlmcHJpbnRmKGlu dGVybmFsX2xvZ19maWxlX2ZwLCAiXG4iKTsKIAlmZmx1c2goaW50ZXJuYWxfbG9nX2ZpbGVfZnAp OwpAQCAtMTA5NSwzMyArMTA5OSwxMiBAQCBsb2dmaWxlX29wZW4oY29uc3QgY2hhciAqZmlsZW5h bWUsIGNvbnN0IGNoYXIgKm1vZGUpCiB9CiAKIHN0YXRpYyB2b2lkCi1tYWtlX2Rpcihjb25zdCBj aGFyICpkaXIpCi17Ci0Jc3RydWN0IHN0YXQgc3RhdGJ1ZjsKLQotCWlmIChzdGF0KGRpciwgJnN0 YXRidWYpID09IDApCi0JCXJldHVybjsKLQotCWlmIChlcnJubyAhPSBFTk9FTlQpCi0JCXBnX2Zh dGFsKCJjb3VsZCBub3Qgc3RhdCBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsIGRpcik7Ci0KLQlpZiAo bWtkaXIoZGlyLCBTX0lSV1hVKSA9PSAwKQotCXsKLQkJcGdfbG9nX2luZm8oImRpcmVjdG9yeSAl cyBjcmVhdGVkIiwgZGlyKTsKLQkJcmV0dXJuOwotCX0KLQotCXBnX2ZhdGFsKCJjb3VsZCBub3Qg Y3JlYXRlIGxvZyBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsIGRpcik7Ci19Ci0KLXN0YXRpYyB2b2lk Ci1tYWtlX291dHB1dF9kaXJzKGNvbnN0IGNoYXIgKmxvZ19kaXIpCittYWtlX291dHB1dF9kaXJz KGNvbnN0IGNoYXIgKmxvZ19iYXNlZGlyKQogewogCWNoYXIJCXRpbWVzdGFtcFsxMjhdOwogCXN0 cnVjdCB0aW1ldmFsIHR2YWw7CiAJdGltZV90CQlub3c7CiAJc3RydWN0IHRtCXRtYnVmOwotCWNo YXIJCXRpbWVzdGFtcF9kaXJbTUFYUEdQQVRIXTsKIAlpbnQJCQlsZW47CiAKIAkvKiBHZW5lcmF0 ZSB0aW1lc3RhbXAgKi8KQEAgLTExMzYsMjAgKzExMTksMjAgQEAgbWFrZV9vdXRwdXRfZGlycyhj b25zdCBjaGFyICpsb2dfZGlyKQogCQkJIHNpemVvZih0aW1lc3RhbXApIC0gc3RybGVuKHRpbWVz dGFtcCksICIuJTAzdSIsCiAJCQkgKHVuc2lnbmVkIGludCkgKHR2YWwudHZfdXNlYyAvIDEwMDAp KTsKIAotCWxvZ190aW1lc3RhbXAgPSBwZ19zdHJkdXAodGltZXN0YW1wKTsKLQotCS8qIENyZWF0 ZSBiYXNlIGRpcmVjdG9yeSAoaWdub3JlIGlmIGV4aXN0cykgKi8KLQltYWtlX2Rpcihsb2dfZGly KTsKLQogCS8qIEJ1aWxkIHRpbWVzdGFtcCBkaXJlY3RvcnkgcGF0aCAqLwotCWxlbiA9IHNucHJp bnRmKHRpbWVzdGFtcF9kaXIsIE1BWFBHUEFUSCwgIiVzLyVzIiwgbG9nX2RpciwgdGltZXN0YW1w KTsKKwlsZW4gPSBzbnByaW50Zihsb2dkaXIsIE1BWFBHUEFUSCwgIiVzLyVzIiwgbG9nX2Jhc2Vk aXIsIHRpbWVzdGFtcCk7CiAKIAlpZiAobGVuID49IE1BWFBHUEFUSCkKIAkJcGdfZmF0YWwoImRp cmVjdG9yeSBwYXRoIGZvciBsb2cgZmlsZXMsICVzLyVzLCBpcyB0b28gbG9uZyIsCi0JCQkJIGxv Z19kaXIsIHRpbWVzdGFtcCk7CisJCQkJIGxvZ2RpciwgdGltZXN0YW1wKTsKKworCS8qIENyZWF0 ZSBiYXNlIGRpcmVjdG9yeSAoaWdub3JlIGlmIGV4aXN0cykgKi8KKwlpZiAobWtkaXIobG9nX2Jh c2VkaXIsIFNfSVJXWFUpIDwgMCAmJiBlcnJubyAhPSBFRVhJU1QpCisJCXBnX2ZhdGFsKCJjb3Vs ZCBub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiVzXCI6ICVtIiwgbG9nX2Jhc2VkaXIpOwogCi0JLyog Q3JlYXRlIHRpbWVzdGFtcCBkaXJlY3RvcnkgKi8KLQltYWtlX2Rpcih0aW1lc3RhbXBfZGlyKTsK KwkvKiBDcmVhdGUgQkFTRV9ESVIvJHRpbWVzdGFtcCAqLworCWlmIChta2Rpcihsb2dkaXIsIFNf SVJXWFUpIDwgMCkKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBjcmVhdGUgZGlyZWN0b3J5IFwiJXNc IjogJW0iLCBsb2dkaXIpOwogfQogCiAvKgpAQCAtMTkxMCw4ICsxODkzLDggQEAgc3RhcnRfc3Rh bmRieV9zZXJ2ZXIoY29uc3Qgc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25zICpvcHQsIGJv b2wgcmVzdHJpY3RlZF8KIAlpZiAocmVzdHJpY3RfbG9naWNhbF93b3JrZXIpCiAJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHBnX2N0bF9jbWQsICIgLW8gXCItYyBtYXhfbG9naWNhbF9yZXBsaWNhdGlv bl93b3JrZXJzPTBcIiIpOwogCi0JaWYgKG9wdC0+bG9nX2RpciAhPSBOVUxMKQotCQlhcHBlbmRQ UUV4cEJ1ZmZlcihwZ19jdGxfY21kLCAiIC1sICVzLyVzLyVzLmxvZyIsIG9wdC0+bG9nX2Rpciwg bG9nX3RpbWVzdGFtcCwgU0VSVkVSX0xPR19GSUxFX05BTUUpOworCWlmIChvcHQtPmxvZ19kaXIp CisJCWFwcGVuZFBRRXhwQnVmZmVyKHBnX2N0bF9jbWQsICIgLWwgJXMvJXMubG9nIiwgbG9nZGly LCBTRVJWRVJfTE9HX0ZJTEVfTkFNRSk7CiAKIAlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJV RywgUEdfTE9HX1BSSU1BUlksCiAJCQkJCSAicGdfY3RsIGNvbW1hbmQgaXM6ICVzIiwgcGdfY3Rs X2NtZC0+ZGF0YSk7CkBAIC0yNjY4LDE4ICsyNjUxLDYgQEAgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpCiAJCX0KIAl9CiAKLQlpZiAob3B0LmxvZ19kaXIgIT0gTlVMTCkKLQl7Ci0JCWNoYXIJ ICAgKmludGVybmFsX2xvZ19maWxlOwotCi0JCW1ha2Vfb3V0cHV0X2RpcnMob3B0LmxvZ19kaXIp OwotCQlpbnRlcm5hbF9sb2dfZmlsZSA9IHBzcHJpbnRmKCIlcy8lcy8lcy5sb2ciLCBvcHQubG9n X2RpciwgbG9nX3RpbWVzdGFtcCwKLQkJCQkJCQkJCSBJTlRFUk5BTF9MT0dfRklMRV9OQU1FKTsK LQotCQlpZiAoKGludGVybmFsX2xvZ19maWxlX2ZwID0gbG9nZmlsZV9vcGVuKGludGVybmFsX2xv Z19maWxlLCAiYSIpKSA9PSBOVUxMKQotCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGxvZyBm aWxlIFwiJXNcIjogJW0iLCBpbnRlcm5hbF9sb2dfZmlsZSk7Ci0JfQotCiAJLyogVmFsaWRhdGUg dGhhdCAtLWFsbCBpcyBub3QgdXNlZCB3aXRoIGluY29tcGF0aWJsZSBvcHRpb25zICovCiAJaWYg KG9wdC5hbGxfZGJzKQogCXsKQEAgLTI3NTcsNiArMjcyOCwxOCBAQCBtYWluKGludCBhcmdjLCBj aGFyICoqYXJndikKIAkJZXhpdCgxKTsKIAl9CiAKKwlpZiAob3B0LmxvZ19kaXIgIT0gTlVMTCkK Kwl7CisJCWNoYXIJICAgKmludGVybmFsX2xvZ19maWxlOworCisJCW1ha2Vfb3V0cHV0X2RpcnMo b3B0LmxvZ19kaXIpOworCQlpbnRlcm5hbF9sb2dfZmlsZSA9IHBzcHJpbnRmKCIlcy8lcy5sb2ci LCBsb2dkaXIsCisJCQkJCQkJCQkgSU5URVJOQUxfTE9HX0ZJTEVfTkFNRSk7CisKKwkJaWYgKChp bnRlcm5hbF9sb2dfZmlsZV9mcCA9IGxvZ2ZpbGVfb3BlbihpbnRlcm5hbF9sb2dfZmlsZSwgImEi KSkgPT0gTlVMTCkKKwkJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBsb2cgZmlsZSBcIiVzXCI6 ICVtIiwgaW50ZXJuYWxfbG9nX2ZpbGUpOworCX0KKwogCWlmIChkcnlfcnVuKQogCQlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKIAkJCQkJCSAiRXhlY3V0aW5n IGluIGRyeS1ydW4gbW9kZS5cbiIKLS0gCjIuNDcuMwoK --_004_OS9PR01MB1214902CC518A8102333FA88DF54EAOS9PR01MB12149jp_--