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 1w3YB9-001KrZ-2H for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Mar 2026 11:38:12 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w3YB8-005cyk-0f for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Mar 2026 11:38:10 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w3YB7-005cyb-23 for pgsql-hackers@lists.postgresql.org; Fri, 20 Mar 2026 11:38:10 +0000 Received: from mail-japaneastazon11011017.outbound.protection.outlook.com ([52.101.125.17] helo=TYVP286CU001.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1w3YB3-00000000AV5-4768 for pgsql-hackers@lists.postgresql.org; Fri, 20 Mar 2026 11:38:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kuwWD5IvKCE8Js9vYDgKrt+nUXUoD6GwNbspfxVXIGDExbf8S4xbwGw13hBIoqCPehwLiE08xqLKYO6MWl1gFjA+awjDD/zBj4u1hHU+iOtbcpWhqwPkz0P74IyJ2gUSBuwjR/UGFDyzJQRpjuQ+hMe52wpS9fRYW06npo+tijL9IvubbkU1Y+iaaVU+0dDFUhWpiFiRnjG5ZIF9MP5fYUEnjVSRxGtyH1J3u0d8u5wiP8rwpU+wT0X3hJYnm7Mj551BScoeMsDJCbYeo4rd/a/bGgp1jKcQ82lsewvLEOp4hrcJT1kuWjNE3eM16VuTCl72U8cj37juthlfSCxWAQ== 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=AZJo/U2RzmiRON+jZ95w0RS43kxP+soPC1cE0kYt+WM=; b=sJ3SQ6l35wrV8tWfsMgH1y36BSIK+rZ4Y2Gfa+rYS9pA5ao6ZnD3C1BmHrJSeDt7euOobbeiCriKBvrZ20AQvKbOoZjFR+F9EXDmbAfL5V8nLoJNPhyZVD6Au/1M7B+Ua+unQFDGLfKBj5eG/BUA3h7KbP07+6+ku5yBYHV82I1PUogrswfU6cQycFnH+KAErnKWDlQv9Z24hAxNh/wsxZuty1EMj2F+u9PoSePHufdWUrBVbsGasnKN7wW2tJyToUgXHPrR5lnC5a7yQCFbKjaJJuLUnU2ij9fP6U5TjtvNF+VGnjYE4eBqYQ6s4/ySVNWi/iWzs87D7fCb3+p7oA== 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=AZJo/U2RzmiRON+jZ95w0RS43kxP+soPC1cE0kYt+WM=; b=S68GJheF/8GpDNYVjWpd+1+T0oJnD4K8t3An7I5Dle7PqCgelAouigS13KrK/SPPvaS9Fdt9lW1W4Cswq5aYu1rmlCsqkhJG4Jf3H/Ob3TH2Aef/09iE5Ff9+nya8iA8um83aEtiIub0u9JufpRly3QjvOJWvqVkiXNXDl7VVp/JXwvxwUB2f/70cC/YAeEiAU2wOWiNMgdzcZ7MkNq3pLx2eZ9lKNoaRdUKTzUzKu9p2JZ9zVGwY56auztE3EOrv2Qndf9rmLbheIOt+eIMo5Q6LwYVe01peQHxZn9LqYzQb7J60ukhc7ikfhyYPcV7npHLJ9rS79IfpJnGjON7WQ== Received: from TYRPR01MB12156.jpnprd01.prod.outlook.com (2603:1096:405:ff::6) by TYYPR01MB7134.jpnprd01.prod.outlook.com (2603:1096:400:cd::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9723.20; Fri, 20 Mar 2026 11:38:00 +0000 Received: from TYRPR01MB12156.jpnprd01.prod.outlook.com ([fe80::8455:a13a:6815:7af4]) by TYRPR01MB12156.jpnprd01.prod.outlook.com ([fe80::8455:a13a:6815:7af4%4]) with mapi id 15.20.9723.022; Fri, 20 Mar 2026 11:37:56 +0000 From: =?utf-8?B?S3Vyb2RhLCBIYXlhdG8v6buS55SwIOmavOS6ug==?= To: 'Gyan Sreejith' CC: Amit Kapila , 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/PgIAFgZQAgAJNPoCAByhcgIACc1KAgACx0YCAAOgDgIAABKYggAFvtOCAAHXPAIABGhEw Date: Fri, 20 Mar 2026 11:37:55 +0000 Message-ID: References: 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?NTBfQWN0aW9uSWQ9ODc1MTY2YjgtODg2ZC00MTQ0LWIyMTctNmY0NGQ4YTlh?= =?utf-8?B?ZDA0O01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?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?ZXREYXRlPTIwMjYtMDMtMjBUMTE6MTk6MTBaO01TSVBfTGFiZWxfYTcyOTVj?= =?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: TYRPR01MB12156:EE_|TYYPR01MB7134:EE_ x-ms-office365-filtering-correlation-id: 68258606-d4b2-4779-61b1-08de86752138 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|6049299003|366016|376014|1800799024|22082099003|56012099003|18002099003|3613699012|4053099003|38070700021|1580799027; x-microsoft-antispam-message-info: 0LoeDfOptSveEJX6QEDWKZIcYhZS11C0zCL41L9Y7UbdqWPiangbfz4hIWSMgpJZuR9hxz441Vas2Vo7lmgITsmUkNdqDxSgENUCHmKcz4H8pXXtqeFgnIk55uAiVTXtnZhrWGTP/CZUMpH+Mu6W+BcNBV9wFMP9q2J4isPBocSmkW+Ns1UVI9ix87wdV78Wp+PnwC/EyNMolQNyGKw7AeRTmMaTQSe91NXp9Mo13xV3eYx4Toz7PPk2LIIkfrS2CZul1ZlVakH0VkvqF77fSqQeT92RxnXwcxFD3SNSDKSEG00bx3ObfbBkvJ0JfeqZSl5coWl8S14AS1IGKwYXqf46HvbUnELQOeGANLD84HEAexrn5nW8f3JCg917oXGBLOwqOFzSufJRuU/+2mubfaJd/GOTx6ELjmk+Ynht+1NSvB4rKPLP8IGNC1n5K5zKnxARlwHYR2zVilCHYX8BGaNTodV89NuHlULTjEyCRQzZ0yntuN5/yfUdTqZ9gC9TkhReRLY7YTrBBlCWsPVPkxR89is2O1d4uyCRr+Uelw22vsRXBPfF5f9z0s9sHQStSMFZyk3Pwc0LPcI/ITVY90G80vqLr3nbxkbAiUlWo5wpmtk3GS9DhaCRLjc2GNA8DwpYtdPbAYw8Q0PJzs23BsPzLjLBGuRvcmSW7bVrX0X8oz/Zx4s9fDnyy5cikTFQPUBLrsZSya8UfhrDtfNmuih5zJ3yDt2Xxm8mrHgp5rbgt8lnQWUkoylhaM3zN2SomsHNgpzqRNygyNSnh9h4/pE2R3cdj64Ag9evVuicFctCgaLbp6QmdRE+8wbVgchr2eWw5DC62iVgdUW5mI0zlCdjC9RH5svtDyQHMtTnvBc= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYRPR01MB12156.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(6049299003)(366016)(376014)(1800799024)(22082099003)(56012099003)(18002099003)(3613699012)(4053099003)(38070700021)(1580799027);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cnBrb0NXMlRUcmtYVk5sTmdvQ0tVQjU3K2c1UGJxZ05RNURsTnBBTFNZVUww?= =?utf-8?B?eSs0NTRqdlFTMERLTUtMYU5LeGlMb1MvYW5uMXhGMkN0R2thWVljQzVvQ05X?= =?utf-8?B?eXQ5U3NWKzYrSXFVcXRqUzVtUkJtcWliUU1aVURrZS8vblpuSzU4S05mV2ll?= =?utf-8?B?Rk8wTENEVTZoWitNR1liUmN4OXJNTHg1RjFpdFU1RGp2M3lnM1ZoM2NYSGJt?= =?utf-8?B?OE1RaFdBN2g3enpqSGh2YTlxbWpVTjNOcTU1V1ZFeEU3TDAvY2NQVE0yalpl?= =?utf-8?B?ZWRPOWR1TmIwOTBranFiSUoreXZxNFVXYVFCZ2F1SlRrcFV4bEU1M3Z3VWZM?= =?utf-8?B?UzNtNjV0STFROVZQMXd1VDl5dXhndm1nWXkzS3JXSDhwYm4yWGpaZ1NKcHR0?= =?utf-8?B?WWlXVWlYcHhxVkFnZDE4bkpncXJBNitTdlpwM1FSajcwOURkY3pKQWxickww?= =?utf-8?B?Z0g0UDBnSTQrSWZ1dlc1LzBoQ0k3NXhRdXJpdlVkN3dkRHdyOUNtZXpRL0ZL?= =?utf-8?B?L0dISHJac0NaUThzOXJQaTVMUXh4ZDRsWHBwRjgrWWZXOXZmaHladlIvR01T?= =?utf-8?B?SHMyUUJTeUNKem5ka3RwVjVqT1gwbTFZSWF5UkcweGRqdTBmd3FKT1dCS1c3?= =?utf-8?B?SUVXLy9KRWhjdS8vWUlsWnlkWmI5Szl0c3lWOXc2UWpLSHNFc0JiSndzL0JP?= =?utf-8?B?ZXB0b3dGTUVsckZHcG1iOTNZdnV1Zkg3RElGUWJjYlZjbGNUT0hobElEaDV1?= =?utf-8?B?Tk1WR2tlTzM1OVVLZVRGU1NXbk5icmQwaFRQNVIycUtweW11aHNBaUwzTWw4?= =?utf-8?B?TzZlSUEya0hxNWt3RXRJZC84cExXMlROVHV1N3BNQnB0VUV2NTUyZkl6Z3Bq?= =?utf-8?B?V1NvTmdnS3JsL3JaR250QW5WS1UxUkNhSUdWZ1VOTFd1bWVPQ1cxUDVEOFZn?= =?utf-8?B?cmRXMUxPZTJwKzE2OFY2YVRVVjlrR0R4eUFzak5XaXd2MzVKZzZXS3VGcDgw?= =?utf-8?B?U0M0ZlpkWFlCYXppWlhlTjQ0SUR2S3p5QmZHSmhxR1d6ZlpnL0c5QU5BRVp6?= =?utf-8?B?RlE2VlVJMkx6RElMVWp2Kyt0TDRMYXZjL1RIbXRqZmlYV2dNTDdDVnVGQXV6?= =?utf-8?B?VTA5Ukw0WWRFNVhsVkxpdDhURjJ1dno4WVUxK1FleXp1T0s2Z0oveDhtVnpo?= =?utf-8?B?V1hJWWN5SUthQ2Z4Yk5ZUWt6R09EUWJmOGpSSStDOTRQMHdWMk9TRUQvZjNQ?= =?utf-8?B?OGlZOWpzOW9ZUXlkVkVkWmRrRnVTL3JnRk1LTGZDc0E0QVRDL1hnS1A2a1Uy?= =?utf-8?B?NE1EcVdzNG5JNUJtUzIzcEtNaXhBdm9WSmxCQjhMcnVOUXJSZmF2clc1MU5S?= =?utf-8?B?S1R0OEVoMlB1dXdLSjErRVBEN3NaQVpWM0p0dm5jSFV3M2JVblBsd2FyT1Ji?= =?utf-8?B?M0ZYVTNZUEN2U0NhQU5EUzRrMThnMDk4NDJPcENkOEU3K3ovMGtVOERqM1lT?= =?utf-8?B?UmFJc0M2bnhHNnhKZWgvMFNDTDFpOXF4QXVCUFY5d0UrcEFxbmtVeWVSYVoz?= =?utf-8?B?dUtBMlFyWno2TytWMlJORU1sYWJHbjRjZWQrdjJ6Y3RjdnVRY2Q1bUF1ajFR?= =?utf-8?B?OCtHYTM1bktDcmVSYndHSDJwQTYrdGhDTlJTc25tUGRITjdPang3clh0RzQ5?= =?utf-8?B?ckxadnVwQ3YvSERxTlFqZTBtTlU3VEpXOUV1TyszaWlobE8wQVBVa2kvU1Nk?= =?utf-8?B?SVEwNEs0dUVNbTYwc2Fhb2tlaFZCSFN1RGhINHkxODcvT2hacXNvdzg2NExT?= =?utf-8?B?RG1YcVp4dlpNbmw1K3Vva2xicTMwUkswSDVRbkxMVVJnOGpOZyt5cW9wajcy?= =?utf-8?B?T3VaeDdMODg3NldLZmZ3aE15aURocnB1VTh0bnRINEdMWll3aHZSN0dyd1Fk?= =?utf-8?B?bzNmTCsvYjhSMG9nWGRIWEpUdm1FM1JZZHF3YXBBOXVLRDR6RGNwL0t0N3Jj?= =?utf-8?B?RWorV1RoNGtMNUJ5VEtjTnJQenVGaUdlWU54ZjRHUzlQZGswMjYrT08reTl0?= =?utf-8?B?RytKdkcra3NoK3hIelFmU09UajFLTGQ2YitXeUxlREJRV1hOb2dKWGNab2cz?= =?utf-8?B?bGJkZ1Zia0hNVG1vcXpYcU03dzgxaFpxN3RmTUtlSG9CRXA2TWdYYkNtYlFX?= =?utf-8?B?NUt0eGEzYlJmUDhWOUh6VUtLcDdEK0NLbEhBa2ZUT3BLVXVjTE5Pcnl4Zzk4?= =?utf-8?B?eWIydHl2WE5IZEtSUXpwL0I2andEK3NUVzM2RzhILzZSZ0RCNTBNbzZkelpt?= =?utf-8?B?S3NSK2IvamFEcFVwUCthVCtHdENXNDFBNjNzYUg1L3NTckYweXg2S21kYjBw?= =?utf-8?Q?VHx9zbf25nqKAcMA=3D?= Content-Type: multipart/mixed; boundary="_003_TYRPR01MB12156F431E4B83ECFF14034BDF54CATYRPR01MB12156jp_" MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: eqTKLT44bjZI/1IUMKfgS7O8wdwqlawxaZcZCmvhP1MHoHOluUOIgZej8TaNi7vxTqqT2sX05YuHZoj7lxJHHCH9Sx/9Ei+rWEIU3wE3e8EvDrHnnEy6nf1+2Nhl0OsZzScjHaVBJnj4Cr3x2Yo5R+M9NV8Pc24Jr1IcgDfu8OepVdE8YxP3o5JZh9ymopnJmGnbniVM9sD+fqcOeRBZxDX54pUjz5CrBMM7cW49M6qlR9Zpv4dTi1V9/udQary/ZoMOf18rrBsrUqDoB4MIE1lALkPKo7hY2Wq+1hvQdAY0MVe+PdRiEH1hHIIqvE/ekUCUurN8bl39//lRMqqMeA== X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYRPR01MB12156.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 68258606-d4b2-4779-61b1-08de86752138 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Mar 2026 11:37:55.9771 (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: 0PPuhYqxivTuVii1havMxh8KM/FUFzhES8+/hUjdjxd6/5knacmSqVr363bF81FVrGKr4IFg2TKBFIYczh7X+l8n7eMk96aDNcuvrLbaRII= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYPR01MB7134 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_003_TYRPR01MB12156F431E4B83ECFF14034BDF54CATYRPR01MB12156jp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RGVhciBHeWFuLA0KDQpUaGFua3MgZm9yIHVwZGF0aW5nIHRoZSBwYXRjaCENCg0KDQpXaGlsZSBj b25zaWRlcmluZyBpdCBmdXJ0aGVyLCBJIHN0YXJ0ZWQgdG8gdGhpbmsgdGhlIGNvbWJpbmF0aW9u IHdpdGggLWwgYW5kIC12DQppcyBwcm9ibGVtYXRpYy4NCg0KRm9yIG5vdywgaWYgLWwgYW5kIC12 IGFyZSBzZXQsIGluZm8vZGVidWctbGV2ZWwgbWVzc2FnZXMgYXJlIHdyaXR0ZW4gb25seSB0byB0 aGUNCmZpbGUsIHdoZXJlYXMgd2FybmluZy9lcnJvciBtZXNzYWdlcyBhcmUgd3JpdHRlbiB0byBi b3RoLg0KSW4gdGhlIGNhc2Ugb2YgcGdfdXBncmFkZSwgaG93ZXZlciwgYWxsIGFkZGl0aW9uYWwg bWVzc2FnZXMgYXJlIHByaW50ZWQgdG8gYm90aA0KdGhlIHRlcm1pbmFsIGFuZCB0aGUgZmlsZS4g VGhleSBhcmUgc2ltaWxhciBwcm9ncmFtcywgc28gd2Ugc2hvdWxkIGZvbGxvdyB0aGUNCnNwZWMu IEFsc28sIHRoZXJlIGlzIGFub3RoZXIgYWR2YW50YWdlIHRoYXQgdXNlcnMgY2FuIGNoZWNrIHRo ZSBwcm9ncmVzcyBvZiB0aGUNCmNvbW1hbmQgZnJvbSBJTkZPL0RFQlVHIG1lc3NhZ2VzLg0KDQpT aW5jZSBhbGwgY29tbWVudHMgd2VyZSBPSyBmb3IgeW91LCBJIG1lcmdlZCAwMDAzIGludG8gMDAw MiwgYW5kIG5vdyBhbGwNCm1lc3NhZ2VzIHdvdWxkIGJlIHByaW50ZWQgb24gYm90aCBzdGRlcnIv bG9nIGZpbGUuIEhvdyBkbyB5b3UgdGhpbms/DQoNCkNhbiB5b3UgYWxzbyBjaGVjayBvdGhlciBj b21tZW50cyBsaWtlIHBvc3RlZCBvbiBbMV0gYW5kIHJldmlzZSBpZiBuZWVkZWQ/DQoNClsxXTog aHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9DQUJkQXJNNTRfY1ZVTWZFMkRH U25KZkRCWk8xaG1hVmI4Mlo0YisxdDBmcCt4cVhhTVFAbWFpbC5nbWFpbC5jb20NCg0KQmVzdCBy ZWdhcmRzLA0KSGF5YXRvIEt1cm9kYQ0KRlVKSVRTVSBMSU1JVEVEDQoNCg== --_003_TYRPR01MB12156F431E4B83ECFF14034BDF54CATYRPR01MB12156jp_ Content-Type: application/octet-stream; name="v14-0001-pg_createsubscriber-use-own-reporting-functions.patch" Content-Description: v14-0001-pg_createsubscriber-use-own-reporting-functions.patch Content-Disposition: attachment; filename="v14-0001-pg_createsubscriber-use-own-reporting-functions.patch"; size=56472; creation-date="Fri, 20 Mar 2026 11:18:13 GMT"; modification-date="Fri, 20 Mar 2026 11:37:44 GMT" Content-Transfer-Encoding: base64 RnJvbSAyY2YzMmJkZmVkMjE4MzUwOWI5MTM2ZjYzN2Q3N2U3ODkzYmQxOWE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYXlhdG8gS3Vyb2RhIDxrdXJvZGEuaGF5YXRvQGZ1aml0c3Uu Y29tPgpEYXRlOiBXZWQsIDE4IE1hciAyMDI2IDIwOjIwOjUwICswOTAwClN1YmplY3Q6IFtQQVRD SCB2MTQgMS8yXSBwZ19jcmVhdGVzdWJzY3JpYmVyOiB1c2Ugb3duIHJlcG9ydGluZyBmdW5jdGlv bnMKClRoaXMgY29tbWl0IGNvbnZlcnRzIGFsbCBwZ19sb2dfeHh4IGZhbWlsaWVzIHRvIGNhbGwg YSBuZXcgcmVwb3J0aW5nIGZ1bmN0aW9uCnBnX2NyZWF0ZXN1Yl9sb2coKS4gQWxzbywgcGdfZmF0 YWwoKSBpcyBvdmVyd3JpdHRlbiB0byB1c2UgaXRzIG93bi4KClRoaXMgY29tbWl0IGNoYW5nZXMg bm90aGluZyBmcm9tIHRoZSBvdXRzaWRlLCBidXQgaXMgbmVlZGVkIGZvciB0aGUgdXBjb21pbmcK Y29tbWl0LgotLS0KIHNyYy9iaW4vcGdfYmFzZWJhY2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMg fCA3MTcgKysrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0NjQgaW5zZXJ0aW9u cygrKSwgMjUzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfYmFzZWJhY2t1 cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRl c3Vic2NyaWJlci5jCmluZGV4IDJiYzg0NTA1YWFiLi5jM2RmODMwMjVkNyAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYworKysgYi9zcmMvYmlu L3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2NyaWJlci5jCkBAIC0zMSw2ICszMSwxMiBAQAog I2luY2x1ZGUgImZlX3V0aWxzL3ZlcnNpb24uaCIKICNpbmNsdWRlICJnZXRvcHRfbG9uZy5oIgog CisvKgorICogRm9yIG5vdywgcGdfY3JlYXRlc3Vic2NyaWJlciBkb2VzIG5vdCB1c2UgY29tbW9u L2xvZ2dpbmcuYzsgdXNlIG91ciBvd24KKyAqIHBnX2ZhdGFsLgorICovCisjdW5kZWYgcGdfZmF0 YWwKKwogI2RlZmluZQlERUZBVUxUX1NVQl9QT1JUCSI1MDQzMiIKICNkZWZpbmUJT0JKRUNUVFlQ RV9QVUJMSUNBVElPTlMgIDB4MDAwMQogCkBAIC0xNDYsNiArMTUyLDExIEBAIHN0YXRpYyB2b2lk IGRyb3BfZXhpc3Rpbmdfc3Vic2NyaXB0aW9uKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc3Vi bmFtZSwKIAkJCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmRibmFtZSk7CiBzdGF0aWMgdm9pZCBnZXRf cHVibGlzaGVyX2RhdGFiYXNlcyhzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJlck9wdGlvbnMgKm9wdCwK IAkJCQkJCQkJCWJvb2wgZGJuYW1lc3BlY2lmaWVkKTsKK3N0YXRpYyB2b2lkIHBnX2NyZWF0ZXN1 Yl9sb2coZW51bSBwZ19sb2dfbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQsCisJCQkJCQkJIGNvbnN0 IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCisJCQlwZ19hdHRyaWJ1dGVfcHJpbnRmKDMsIDQp OworcGdfbm9yZXR1cm4gc3RhdGljIHZvaWQgcGdfZmF0YWwoY29uc3QgY2hhciAqcGdfcmVzdHJp Y3QgZm10LC4uLikKKwkJCXBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMik7CiAKICNkZWZpbmUJV0FJ VF9JTlRFUlZBTAkxCQkvKiAxIHNlY29uZCAqLwogCkBAIC0xNzQsNiArMTg1LDM4IEBAIHN0YXRp YyBib29sIHJlY292ZXJ5X2VuZGVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBzdGFuZGJ5X3J1bm5p bmcgPSBmYWxzZTsKIHN0YXRpYyBib29sIHJlY292ZXJ5X3BhcmFtc19zZXQgPSBmYWxzZTsKIAor LyoKKyAqIFJlcG9ydCBhIG1lc3NhZ2Ugd2l0aCBhIGdpdmVuIGxvZyBsZXZlbAorICovCitzdGF0 aWMgdm9pZAorcGdfY3JlYXRlc3ViX2xvZyhlbnVtIHBnX2xvZ19sZXZlbCBsZXZlbCwgZW51bSBw Z19sb2dfcGFydCBwYXJ0LAorCQkJCSBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4uKQor eworCXZhX2xpc3QJCWFyZ3M7CisKKwl2YV9zdGFydChhcmdzLCBmbXQpOworCisJcGdfbG9nX2dl bmVyaWNfdihsZXZlbCwgcGFydCwgZm10LCBhcmdzKTsKKworCXZhX2VuZChhcmdzKTsKK30KKwor LyoKKyAqIFJlcG9ydCBhIGZhdGFsIGVycm9yIGFuZCBleGl0CisgKi8KK3N0YXRpYyB2b2lkCitw Z19mYXRhbChjb25zdCBjaGFyICpwZ19yZXN0cmljdCBmbXQsLi4uKQoreworCXZhX2xpc3QJCWFy Z3M7CisKKwl2YV9zdGFydChhcmdzLCBmbXQpOworCisJcGdfbG9nX2dlbmVyaWNfdihQR19MT0df RVJST1IsIFBHX0xPR19QUklNQVJZLCBmbXQsIGFyZ3MpOworCisJdmFfZW5kKGFyZ3MpOworCisJ ZXhpdCgxKTsKK30KIAogLyoKICAqIENsZWFuIHVwIG9iamVjdHMgY3JlYXRlZCBieSBwZ19jcmVh dGVzdWJzY3JpYmVyLgpAQCAtMjA1LDcgKzI0OCw4IEBAIGNsZWFudXBfb2JqZWN0c19hdGV4aXQo dm9pZCkKIAkJaWYgKGR1cmFibGVfcmVuYW1lKGNvbmZfZmlsZW5hbWUsIGNvbmZfZmlsZW5hbWVf ZGlzYWJsZWQpICE9IDApCiAJCXsKIAkJCS8qIGR1cmFibGVfcmVuYW1lKCkgaGFzIGFscmVhZHkg bG9nZ2VkIHNvbWV0aGluZy4gKi8KLQkJCXBnX2xvZ193YXJuaW5nX2hpbnQoIkEgbWFudWFsIHJl bW92YWwgb2YgdGhlIHJlY292ZXJ5IHBhcmFtZXRlcnMgbWF5IGJlIHJlcXVpcmVkLiIpOworCQkJ cGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfV0FSTklORywgUEdfTE9HX0hJTlQsCisJCQkJCQkJICJB IG1hbnVhbCByZW1vdmFsIG9mIHRoZSByZWNvdmVyeSBwYXJhbWV0ZXJzIG1heSBiZSByZXF1aXJl ZC4iKTsKIAkJfQogCX0KIApAQCAtMjE5LDkgKzI2MywxMSBAQCBjbGVhbnVwX29iamVjdHNfYXRl eGl0KHZvaWQpCiAJICovCiAJaWYgKHJlY292ZXJ5X2VuZGVkKQogCXsKLQkJcGdfbG9nX3dhcm5p bmcoImZhaWxlZCBhZnRlciB0aGUgZW5kIG9mIHJlY292ZXJ5Iik7Ci0JCXBnX2xvZ193YXJuaW5n X2hpbnQoIlRoZSB0YXJnZXQgc2VydmVyIGNhbm5vdCBiZSB1c2VkIGFzIGEgcGh5c2ljYWwgcmVw bGljYSBhbnltb3JlLiAgIgotCQkJCQkJCSJZb3UgbXVzdCByZWNyZWF0ZSB0aGUgcGh5c2ljYWwg cmVwbGljYSBiZWZvcmUgY29udGludWluZy4iKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0df V0FSTklORywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImZhaWxlZCBhZnRlciB0aGUgZW5kIG9m IHJlY292ZXJ5Iik7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX1dBUk5JTkcsIFBHX0xPR19I SU5ULAorCQkJCQkJICJUaGUgdGFyZ2V0IHNlcnZlciBjYW5ub3QgYmUgdXNlZCBhcyBhIHBoeXNp Y2FsIHJlcGxpY2EgYW55bW9yZS4gICIKKwkJCQkJCSAiWW91IG11c3QgcmVjcmVhdGUgdGhlIHBo eXNpY2FsIHJlcGxpY2EgYmVmb3JlIGNvbnRpbnVpbmcuIik7CiAJfQogCiAJZm9yIChpbnQgaSA9 IDA7IGkgPCBudW1fZGJzOyBpKyspCkBAIC0yNTEsMTcgKzI5NywyMSBAQCBjbGVhbnVwX29iamVj dHNfYXRleGl0KHZvaWQpCiAJCQkJICovCiAJCQkJaWYgKGRiaW5mby0+bWFkZV9wdWJsaWNhdGlv bikKIAkJCQl7Ci0JCQkJCXBnX2xvZ193YXJuaW5nKCJwdWJsaWNhdGlvbiBcIiVzXCIgY3JlYXRl ZCBpbiBkYXRhYmFzZSBcIiVzXCIgb24gcHJpbWFyeSB3YXMgbGVmdCBiZWhpbmQiLAotCQkJCQkJ CQkgICBkYmluZm8tPnB1Ym5hbWUsCi0JCQkJCQkJCSAgIGRiaW5mby0+ZGJuYW1lKTsKLQkJCQkJ cGdfbG9nX3dhcm5pbmdfaGludCgiRHJvcCB0aGlzIHB1YmxpY2F0aW9uIGJlZm9yZSB0cnlpbmcg YWdhaW4uIik7CisJCQkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX1dBUk5JTkcsIFBHX0xPR19Q UklNQVJZLAorCQkJCQkJCQkJICJwdWJsaWNhdGlvbiBcIiVzXCIgY3JlYXRlZCBpbiBkYXRhYmFz ZSBcIiVzXCIgb24gcHJpbWFyeSB3YXMgbGVmdCBiZWhpbmQiLAorCQkJCQkJCQkJIGRiaW5mby0+ cHVibmFtZSwKKwkJCQkJCQkJCSBkYmluZm8tPmRibmFtZSk7CisJCQkJCXBnX2NyZWF0ZXN1Yl9s b2coUEdfTE9HX1dBUk5JTkcsIFBHX0xPR19ISU5ULAorCQkJCQkJCQkJICJEcm9wIHRoaXMgcHVi bGljYXRpb24gYmVmb3JlIHRyeWluZyBhZ2Fpbi4iKTsKIAkJCQl9CiAJCQkJaWYgKGRiaW5mby0+ bWFkZV9yZXBsc2xvdCkKIAkJCQl7Ci0JCQkJCXBnX2xvZ193YXJuaW5nKCJyZXBsaWNhdGlvbiBz bG90IFwiJXNcIiBjcmVhdGVkIGluIGRhdGFiYXNlIFwiJXNcIiBvbiBwcmltYXJ5IHdhcyBsZWZ0 IGJlaGluZCIsCi0JCQkJCQkJCSAgIGRiaW5mby0+cmVwbHNsb3RuYW1lLAotCQkJCQkJCQkgICBk YmluZm8tPmRibmFtZSk7Ci0JCQkJCXBnX2xvZ193YXJuaW5nX2hpbnQoIkRyb3AgdGhpcyByZXBs aWNhdGlvbiBzbG90IHNvb24gdG8gYXZvaWQgcmV0ZW50aW9uIG9mIFdBTCBmaWxlcy4iKTsKKwkJ CQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfV0FSTklORywgUEdfTE9HX1BSSU1BUlksCisJCQkJ CQkJCQkgInJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGNyZWF0ZWQgaW4gZGF0YWJhc2UgXCIlc1wi IG9uIHByaW1hcnkgd2FzIGxlZnQgYmVoaW5kIiwKKwkJCQkJCQkJCSBkYmluZm8tPnJlcGxzbG90 bmFtZSwKKwkJCQkJCQkJCSBkYmluZm8tPmRibmFtZSk7CisJCQkJCXBnX2NyZWF0ZXN1Yl9sb2co UEdfTE9HX1dBUk5JTkcsIFBHX0xPR19ISU5ULAorCQkJCQkJCQkJICJEcm9wIHRoaXMgcmVwbGlj YXRpb24gc2xvdCBzb29uIHRvIGF2b2lkIHJldGVudGlvbiBvZiBXQUwgZmlsZXMuIik7CiAJCQkJ fQogCQkJfQogCQl9CkBAIC0zNDIsNyArMzkyLDggQEAgZ2V0X2Jhc2VfY29ubmluZm8oY29uc3Qg Y2hhciAqY29ubmluZm8sIGNoYXIgKipkYm5hbWUpCiAJY29ubl9vcHRzID0gUFFjb25uaW5mb1Bh cnNlKGNvbm5pbmZvLCAmZXJybXNnKTsKIAlpZiAoY29ubl9vcHRzID09IE5VTEwpCiAJewotCQlw Z19sb2dfZXJyb3IoImNvdWxkIG5vdCBwYXJzZSBjb25uZWN0aW9uIHN0cmluZzogJXMiLCBlcnJt c2cpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJ CQkJCQkgImNvdWxkIG5vdCBwYXJzZSBjb25uZWN0aW9uIHN0cmluZzogJXMiLCBlcnJtc2cpOwog CQlQUWZyZWVtZW0oZXJybXNnKTsKIAkJcmV0dXJuIE5VTEw7CiAJfQpAQCAtNDI2LDcgKzQ3Nyw4 IEBAIGdldF9leGVjX3BhdGgoY29uc3QgY2hhciAqYXJndjAsIGNvbnN0IGNoYXIgKnByb2duYW1l KQogCQkJCQkgcHJvZ25hbWUsIGZ1bGxfcGF0aCwgInBnX2NyZWF0ZXN1YnNjcmliZXIiKTsKIAl9 CiAKLQlwZ19sb2dfZGVidWcoIiVzIHBhdGggaXM6ICAlcyIsIHByb2duYW1lLCBleGVjX3BhdGgp OworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJ ICIlcyBwYXRoIGlzOiAgJXMiLCBwcm9nbmFtZSwgZXhlY19wYXRoKTsKIAogCXJldHVybiBleGVj X3BhdGg7CiB9CkBAIC00NDMsOCArNDk1LDkgQEAgY2hlY2tfZGF0YV9kaXJlY3RvcnkoY29uc3Qg Y2hhciAqZGF0YWRpcikKIAl1aW50MzIJCW1ham9yX3ZlcnNpb247CiAJY2hhcgkgICAqdmVyc2lv bl9zdHI7CiAKLQlwZ19sb2dfaW5mbygiY2hlY2tpbmcgaWYgZGlyZWN0b3J5IFwiJXNcIiBpcyBh IGNsdXN0ZXIgZGF0YSBkaXJlY3RvcnkiLAotCQkJCWRhdGFkaXIpOworCXBnX2NyZWF0ZXN1Yl9s b2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkgImNoZWNraW5nIGlmIGRpcmVj dG9yeSBcIiVzXCIgaXMgYSBjbHVzdGVyIGRhdGEgZGlyZWN0b3J5IiwKKwkJCQkJIGRhdGFkaXIp OwogCiAJaWYgKHN0YXQoZGF0YWRpciwgJnN0YXRidWYpICE9IDApCiAJewpAQCAtNDYyLDkgKzUx NSwxMSBAQCBjaGVja19kYXRhX2RpcmVjdG9yeShjb25zdCBjaGFyICpkYXRhZGlyKQogCW1ham9y X3ZlcnNpb24gPSBHRVRfUEdfTUFKT1JWRVJTSU9OX05VTShnZXRfcGdfdmVyc2lvbihkYXRhZGly LCAmdmVyc2lvbl9zdHIpKTsKIAlpZiAobWFqb3JfdmVyc2lvbiAhPSBQR19NQUpPUlZFUlNJT05f TlVNKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJkYXRhIGRpcmVjdG9yeSBpcyBvZiB3cm9uZyB2ZXJz aW9uIik7Ci0JCXBnX2xvZ19lcnJvcl9kZXRhaWwoIkZpbGUgXCIlc1wiIGNvbnRhaW5zIFwiJXNc Iiwgd2hpY2ggaXMgbm90IGNvbXBhdGlibGUgd2l0aCB0aGlzIHByb2dyYW0ncyB2ZXJzaW9uIFwi JXNcIi4iLAotCQkJCQkJCSJQR19WRVJTSU9OIiwgdmVyc2lvbl9zdHIsIFBHX01BSk9SVkVSU0lP Tik7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJ CQkJCSAiZGF0YSBkaXJlY3RvcnkgaXMgb2Ygd3JvbmcgdmVyc2lvbiIpOworCQlwZ19jcmVhdGVz dWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0RFVEFJTCwKKwkJCQkJCSAiRmlsZSBcIiVzXCIg Y29udGFpbnMgXCIlc1wiLCB3aGljaCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoaXMgcHJvZ3Jh bSdzIHZlcnNpb24gXCIlc1wiLiIsCisJCQkJCQkgIlBHX1ZFUlNJT04iLCB2ZXJzaW9uX3N0ciwg UEdfTUFKT1JWRVJTSU9OKTsKIAkJZXhpdCgxKTsKIAl9CiB9CkBAIC01NDcsMTQgKzYwMiwxNiBA QCBzdG9yZV9wdWJfc3ViX2luZm8oY29uc3Qgc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25z ICpvcHQsCiAJCQlkYmluZm9baV0uc3VibmFtZSA9IE5VTEw7CiAJCS8qIE90aGVyIGZpZWxkcyB3 aWxsIGJlIGZpbGxlZCBsYXRlciAqLwogCi0JCXBnX2xvZ19kZWJ1ZygicHVibGlzaGVyKCVkKTog cHVibGljYXRpb246ICVzIDsgcmVwbGljYXRpb24gc2xvdDogJXMgOyBjb25uZWN0aW9uIHN0cmlu ZzogJXMiLCBpLAotCQkJCQkgZGJpbmZvW2ldLnB1Ym5hbWUgPyBkYmluZm9baV0ucHVibmFtZSA6 ICIoYXV0bykiLAotCQkJCQkgZGJpbmZvW2ldLnJlcGxzbG90bmFtZSA/IGRiaW5mb1tpXS5yZXBs c2xvdG5hbWUgOiAiKGF1dG8pIiwKLQkJCQkJIGRiaW5mb1tpXS5wdWJjb25uaW5mbyk7Ci0JCXBn X2xvZ19kZWJ1Zygic3Vic2NyaWJlciglZCk6IHN1YnNjcmlwdGlvbjogJXMgOyBjb25uZWN0aW9u IHN0cmluZzogJXMsIHR3b19waGFzZTogJXMiLCBpLAotCQkJCQkgZGJpbmZvW2ldLnN1Ym5hbWUg PyBkYmluZm9baV0uc3VibmFtZSA6ICIoYXV0bykiLAotCQkJCQkgZGJpbmZvW2ldLnN1YmNvbm5p bmZvLAotCQkJCQkgZGJpbmZvcy50d29fcGhhc2UgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKwkJcGdf Y3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJwdWJs aXNoZXIoJWQpOiBwdWJsaWNhdGlvbjogJXMgOyByZXBsaWNhdGlvbiBzbG90OiAlcyA7IGNvbm5l Y3Rpb24gc3RyaW5nOiAlcyIsIGksCisJCQkJCQkgZGJpbmZvW2ldLnB1Ym5hbWUgPyBkYmluZm9b aV0ucHVibmFtZSA6ICIoYXV0bykiLAorCQkJCQkJIGRiaW5mb1tpXS5yZXBsc2xvdG5hbWUgPyBk YmluZm9baV0ucmVwbHNsb3RuYW1lIDogIihhdXRvKSIsCisJCQkJCQkgZGJpbmZvW2ldLnB1YmNv bm5pbmZvKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZ LAorCQkJCQkJICJzdWJzY3JpYmVyKCVkKTogc3Vic2NyaXB0aW9uOiAlcyA7IGNvbm5lY3Rpb24g c3RyaW5nOiAlcywgdHdvX3BoYXNlOiAlcyIsIGksCisJCQkJCQkgZGJpbmZvW2ldLnN1Ym5hbWUg PyBkYmluZm9baV0uc3VibmFtZSA6ICIoYXV0bykiLAorCQkJCQkJIGRiaW5mb1tpXS5zdWJjb25u aW5mbywKKwkJCQkJCSBkYmluZm9zLnR3b19waGFzZSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogCiAJ CWlmIChudW1fcHVicyA+IDApCiAJCQlwdWJjZWxsID0gcHViY2VsbC0+bmV4dDsKQEAgLTU4Miw4 ICs2MzksOSBAQCBjb25uZWN0X2RhdGFiYXNlKGNvbnN0IGNoYXIgKmNvbm5pbmZvLCBib29sIGV4 aXRfb25fZXJyb3IpCiAJY29ubiA9IFBRY29ubmVjdGRiKGNvbm5pbmZvKTsKIAlpZiAoUFFzdGF0 dXMoY29ubikgIT0gQ09OTkVDVElPTl9PSykKIAl7Ci0JCXBnX2xvZ19lcnJvcigiY29ubmVjdGlv biB0byBkYXRhYmFzZSBmYWlsZWQ6ICVzIiwKLQkJCQkJIFBRZXJyb3JNZXNzYWdlKGNvbm4pKTsK KwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJ ICJjb25uZWN0aW9uIHRvIGRhdGFiYXNlIGZhaWxlZDogJXMiLAorCQkJCQkJIFBRZXJyb3JNZXNz YWdlKGNvbm4pKTsKIAkJUFFmaW5pc2goY29ubik7CiAKIAkJaWYgKGV4aXRfb25fZXJyb3IpCkBA IC01OTUsOCArNjUzLDkgQEAgY29ubmVjdF9kYXRhYmFzZShjb25zdCBjaGFyICpjb25uaW5mbywg Ym9vbCBleGl0X29uX2Vycm9yKQogCXJlcyA9IFBRZXhlYyhjb25uLCBBTFdBWVNfU0VDVVJFX1NF QVJDSF9QQVRIX1NRTCk7CiAJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVT X09LKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3QgY2xlYXIgXCJzZWFyY2hfcGF0aFwi OiAlcyIsCi0JCQkJCSBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKKwkJcGdfY3JlYXRlc3Vi X2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJjb3VsZCBub3QgY2xl YXIgXCJzZWFyY2hfcGF0aFwiOiAlcyIsCisJCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVz KSk7CiAJCVBRY2xlYXIocmVzKTsKIAkJUFFmaW5pc2goY29ubik7CiAKQEAgLTYzNSwyNyArNjk0 LDMxIEBAIGdldF9wcmltYXJ5X3N5c2lkKGNvbnN0IGNoYXIgKmNvbm5pbmZvKQogCVBHcmVzdWx0 ICAgKnJlczsKIAl1aW50NjQJCXN5c2lkOwogCi0JcGdfbG9nX2luZm8oImdldHRpbmcgc3lzdGVt IGlkZW50aWZpZXIgZnJvbSBwdWJsaXNoZXIiKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19J TkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJnZXR0aW5nIHN5c3RlbSBpZGVudGlmaWVyIGZy b20gcHVibGlzaGVyIik7CiAKIAljb25uID0gY29ubmVjdF9kYXRhYmFzZShjb25uaW5mbywgdHJ1 ZSk7CiAKIAlyZXMgPSBQUWV4ZWMoY29ubiwgIlNFTEVDVCBzeXN0ZW1faWRlbnRpZmllciBGUk9N IHBnX2NhdGFsb2cucGdfY29udHJvbF9zeXN0ZW0oKSIpOwogCWlmIChQUXJlc3VsdFN0YXR1cyhy ZXMpICE9IFBHUkVTX1RVUExFU19PSykKIAl7Ci0JCXBnX2xvZ19lcnJvcigiY291bGQgbm90IGdl dCBzeXN0ZW0gaWRlbnRpZmllcjogJXMiLAotCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVz KSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJ CQkJCSAiY291bGQgbm90IGdldCBzeXN0ZW0gaWRlbnRpZmllcjogJXMiLAorCQkJCQkJIFBRcmVz dWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUp OwogCX0KIAlpZiAoUFFudHVwbGVzKHJlcykgIT0gMSkKIAl7Ci0JCXBnX2xvZ19lcnJvcigiY291 bGQgbm90IGdldCBzeXN0ZW0gaWRlbnRpZmllcjogZ290ICVkIHJvd3MsIGV4cGVjdGVkICVkIHJv dyIsCi0JCQkJCSBQUW50dXBsZXMocmVzKSwgMSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiY291bGQgbm90IGdldCBzeXN0ZW0gaWRl bnRpZmllcjogZ290ICVkIHJvd3MsIGV4cGVjdGVkICVkIHJvdyIsCisJCQkJCQkgUFFudHVwbGVz KHJlcyksIDEpOwogCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIAogCXN5 c2lkID0gc3RydG91NjQoUFFnZXR2YWx1ZShyZXMsIDAsIDApLCBOVUxMLCAxMCk7CiAKLQlwZ19s b2dfaW5mbygic3lzdGVtIGlkZW50aWZpZXIgaXMgJSIgUFJJdTY0ICIgb24gcHVibGlzaGVyIiwg c3lzaWQpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAor CQkJCQkgInN5c3RlbSBpZGVudGlmaWVyIGlzICUiIFBSSXU2NCAiIG9uIHB1Ymxpc2hlciIsIHN5 c2lkKTsKIAogCVBRY2xlYXIocmVzKTsKIAlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIGZhbHNl KTsKQEAgLTY3NSw3ICs3MzgsOCBAQCBnZXRfc3RhbmRieV9zeXNpZChjb25zdCBjaGFyICpkYXRh ZGlyKQogCWJvb2wJCWNyY19vazsKIAl1aW50NjQJCXN5c2lkOwogCi0JcGdfbG9nX2luZm8oImdl dHRpbmcgc3lzdGVtIGlkZW50aWZpZXIgZnJvbSBzdWJzY3JpYmVyIik7CisJcGdfY3JlYXRlc3Vi X2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAiZ2V0dGluZyBzeXN0ZW0g aWRlbnRpZmllciBmcm9tIHN1YnNjcmliZXIiKTsKIAogCWNmID0gZ2V0X2NvbnRyb2xmaWxlKGRh dGFkaXIsICZjcmNfb2spOwogCWlmICghY3JjX29rKQpAQCAtNjgzLDcgKzc0Nyw4IEBAIGdldF9z dGFuZGJ5X3N5c2lkKGNvbnN0IGNoYXIgKmRhdGFkaXIpCiAKIAlzeXNpZCA9IGNmLT5zeXN0ZW1f aWRlbnRpZmllcjsKIAotCXBnX2xvZ19pbmZvKCJzeXN0ZW0gaWRlbnRpZmllciBpcyAlIiBQUkl1 NjQgIiBvbiBzdWJzY3JpYmVyIiwgc3lzaWQpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lO Rk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkgInN5c3RlbSBpZGVudGlmaWVyIGlzICUiIFBSSXU2 NCAiIG9uIHN1YnNjcmliZXIiLCBzeXNpZCk7CiAKIAlwZ19mcmVlKGNmKTsKIApAQCAtNzA0LDcg Kzc2OSw4IEBAIG1vZGlmeV9zdWJzY3JpYmVyX3N5c2lkKGNvbnN0IHN0cnVjdCBDcmVhdGVTdWJz Y3JpYmVyT3B0aW9ucyAqb3B0KQogCiAJY2hhcgkgICAqY21kX3N0cjsKIAotCXBnX2xvZ19pbmZv KCJtb2RpZnlpbmcgc3lzdGVtIGlkZW50aWZpZXIgb2Ygc3Vic2NyaWJlciIpOworCXBnX2NyZWF0 ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkgIm1vZGlmeWluZyBz eXN0ZW0gaWRlbnRpZmllciBvZiBzdWJzY3JpYmVyIik7CiAKIAljZiA9IGdldF9jb250cm9sZmls ZShzdWJzY3JpYmVyX2RpciwgJmNyY19vayk7CiAJaWYgKCFjcmNfb2spCkBAIC03MjEsMzEgKzc4 NywzNyBAQCBtb2RpZnlfc3Vic2NyaWJlcl9zeXNpZChjb25zdCBzdHJ1Y3QgQ3JlYXRlU3Vic2Ny aWJlck9wdGlvbnMgKm9wdCkKIAljZi0+c3lzdGVtX2lkZW50aWZpZXIgfD0gZ2V0cGlkKCkgJiAw eEZGRjsKIAogCWlmIChkcnlfcnVuKQotCQlwZ19sb2dfaW5mbygiZHJ5LXJ1bjogd291bGQgc2V0 IHN5c3RlbSBpZGVudGlmaWVyIHRvICUiIFBSSXU2NCAiIG9uIHN1YnNjcmliZXIiLAotCQkJCQlj Zi0+c3lzdGVtX2lkZW50aWZpZXIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQ R19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZHJ5LXJ1bjogd291bGQgc2V0IHN5c3RlbSBpZGVudGlm aWVyIHRvICUiIFBSSXU2NCAiIG9uIHN1YnNjcmliZXIiLAorCQkJCQkJIGNmLT5zeXN0ZW1faWRl bnRpZmllcik7CiAJZWxzZQogCXsKIAkJdXBkYXRlX2NvbnRyb2xmaWxlKHN1YnNjcmliZXJfZGly LCBjZiwgdHJ1ZSk7Ci0JCXBnX2xvZ19pbmZvKCJzeXN0ZW0gaWRlbnRpZmllciBpcyAlIiBQUkl1 NjQgIiBvbiBzdWJzY3JpYmVyIiwKLQkJCQkJY2YtPnN5c3RlbV9pZGVudGlmaWVyKTsKKwkJcGdf Y3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgInN5c3Rl bSBpZGVudGlmaWVyIGlzICUiIFBSSXU2NCAiIG9uIHN1YnNjcmliZXIiLAorCQkJCQkJIGNmLT5z eXN0ZW1faWRlbnRpZmllcik7CiAJfQogCiAJaWYgKGRyeV9ydW4pCi0JCXBnX2xvZ19pbmZvKCJk cnktcnVuOiB3b3VsZCBydW4gcGdfcmVzZXR3YWwgb24gdGhlIHN1YnNjcmliZXIiKTsKKwkJcGdf Y3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImRyeS1y dW46IHdvdWxkIHJ1biBwZ19yZXNldHdhbCBvbiB0aGUgc3Vic2NyaWJlciIpOwogCWVsc2UKLQkJ cGdfbG9nX2luZm8oInJ1bm5pbmcgcGdfcmVzZXR3YWwgb24gdGhlIHN1YnNjcmliZXIiKTsKKwkJ cGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgInJ1 bm5pbmcgcGdfcmVzZXR3YWwgb24gdGhlIHN1YnNjcmliZXIiKTsKIAogCWNtZF9zdHIgPSBwc3By aW50ZigiXCIlc1wiIC1EIFwiJXNcIiA+IFwiJXNcIiIsIHBnX3Jlc2V0d2FsX3BhdGgsCiAJCQkJ CSAgIHN1YnNjcmliZXJfZGlyLCBERVZOVUxMKTsKIAotCXBnX2xvZ19kZWJ1ZygicGdfcmVzZXR3 YWwgY29tbWFuZCBpczogJXMiLCBjbWRfc3RyKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19E RUJVRywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAicGdfcmVzZXR3YWwgY29tbWFuZCBpczogJXMi LCBjbWRfc3RyKTsKIAogCWlmICghZHJ5X3J1bikKIAl7CiAJCWludAkJCXJjID0gc3lzdGVtKGNt ZF9zdHIpOwogCiAJCWlmIChyYyA9PSAwKQotCQkJcGdfbG9nX2luZm8oInN1Y2Nlc3NmdWxseSBy ZXNldCBXQUwgb24gdGhlIHN1YnNjcmliZXIiKTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkJCSAic3VjY2Vzc2Z1bGx5IHJlc2V0IFdBTCBv biB0aGUgc3Vic2NyaWJlciIpOwogCQllbHNlCiAJCQlwZ19mYXRhbCgiY291bGQgbm90IHJlc2V0 IFdBTCBvbiBzdWJzY3JpYmVyOiAlcyIsIHdhaXRfcmVzdWx0X3RvX3N0cihyYykpOwogCX0KQEAg LTc3MSwxNSArODQzLDE3IEBAIGdlbmVyYXRlX29iamVjdF9uYW1lKFBHY29ubiAqY29ubikKIAkJ CQkgIldIRVJFIGRhdG5hbWUgPSBwZ19jYXRhbG9nLmN1cnJlbnRfZGF0YWJhc2UoKSIpOwogCWlm IChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19PSykKIAl7Ci0JCXBnX2xvZ19l cnJvcigiY291bGQgbm90IG9idGFpbiBkYXRhYmFzZSBPSUQ6ICVzIiwKLQkJCQkJIFBRcmVzdWx0 RXJyb3JNZXNzYWdlKHJlcykpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdf TE9HX1BSSU1BUlksCisJCQkJCQkgImNvdWxkIG5vdCBvYnRhaW4gZGF0YWJhc2UgT0lEOiAlcyIs CisJCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJCWRpc2Nvbm5lY3RfZGF0YWJh c2UoY29ubiwgdHJ1ZSk7CiAJfQogCiAJaWYgKFBRbnR1cGxlcyhyZXMpICE9IDEpCiAJewotCQlw Z19sb2dfZXJyb3IoImNvdWxkIG5vdCBvYnRhaW4gZGF0YWJhc2UgT0lEOiBnb3QgJWQgcm93cywg ZXhwZWN0ZWQgJWQgcm93IiwKLQkJCQkJIFBRbnR1cGxlcyhyZXMpLCAxKTsKKwkJcGdfY3JlYXRl c3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJjb3VsZCBub3Qg b2J0YWluIGRhdGFiYXNlIE9JRDogZ290ICVkIHJvd3MsIGV4cGVjdGVkICVkIHJvdyIsCisJCQkJ CQkgUFFudHVwbGVzKHJlcyksIDEpOwogCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUp OwogCX0KIApAQCAtODE5LDggKzg5Myw5IEBAIGZpbmRfcHVibGljYXRpb24oUEdjb25uICpjb25u LCBjb25zdCBjaGFyICpwdWJuYW1lLCBjb25zdCBjaGFyICpkYm5hbWUpCiAJcmVzID0gUFFleGVj KGNvbm4sIHN0ci0+ZGF0YSk7CiAJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQ TEVTX09LKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3QgZmluZCBwdWJsaWNhdGlvbiBc IiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiOiAlcyIsCi0JCQkJCSBwdWJuYW1lLCBkYm5hbWUsIFBR ZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBH X0xPR19QUklNQVJZLAorCQkJCQkJICJjb3VsZCBub3QgZmluZCBwdWJsaWNhdGlvbiBcIiVzXCIg aW4gZGF0YWJhc2UgXCIlc1wiOiAlcyIsCisJCQkJCQkgcHVibmFtZSwgZGJuYW1lLCBQUWVycm9y TWVzc2FnZShjb25uKSk7CiAJCWRpc2Nvbm5lY3RfZGF0YWJhc2UoY29ubiwgdHJ1ZSk7CiAJfQog CkBAIC04NzMsOCArOTQ4LDkgQEAgc2V0dXBfcHVibGlzaGVyKHN0cnVjdCBMb2dpY2FsUmVwSW5m byAqZGJpbmZvKQogCQlpZiAoZmluZF9wdWJsaWNhdGlvbihjb25uLCBkYmluZm9baV0ucHVibmFt ZSwgZGJpbmZvW2ldLmRibmFtZSkpCiAJCXsKIAkJCS8qIFJldXNlIGV4aXN0aW5nIHB1YmxpY2F0 aW9uIG9uIHB1Ymxpc2hlci4gKi8KLQkJCXBnX2xvZ19pbmZvKCJ1c2UgZXhpc3RpbmcgcHVibGlj YXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCQlkYmluZm9baV0ucHVibmFt ZSwgZGJpbmZvW2ldLmRibmFtZSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQ R19MT0dfUFJJTUFSWSwKKwkJCQkJCQkgInVzZSBleGlzdGluZyBwdWJsaWNhdGlvbiBcIiVzXCIg aW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCQkgZGJpbmZvW2ldLnB1Ym5hbWUsIGRiaW5mb1tp XS5kYm5hbWUpOwogCQkJLyogRG9uJ3QgcmVtb3ZlIHByZS1leGlzdGluZyBwdWJsaWNhdGlvbiBp ZiBhbiBlcnJvciBvY2N1cnMuICovCiAJCQlkYmluZm9baV0ubWFkZV9wdWJsaWNhdGlvbiA9IGZh bHNlOwogCQl9CkBAIC05MTIsOCArOTg4LDkgQEAgc2V0dXBfcHVibGlzaGVyKHN0cnVjdCBMb2dp Y2FsUmVwSW5mbyAqZGJpbmZvKQogCQkJcmVzID0gUFFleGVjKGNvbm4sICJTRUxFQ1QgcGdfbG9n X3N0YW5kYnlfc25hcHNob3QoKSIpOwogCQkJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdS RVNfVFVQTEVTX09LKQogCQkJewotCQkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IHdyaXRlIGFu IGFkZGl0aW9uYWwgV0FMIHJlY29yZDogJXMiLAotCQkJCQkJCSBQUXJlc3VsdEVycm9yTWVzc2Fn ZShyZXMpKTsKKwkJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1B UlksCisJCQkJCQkJCSAiY291bGQgbm90IHdyaXRlIGFuIGFkZGl0aW9uYWwgV0FMIHJlY29yZDog JXMiLAorCQkJCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJCQkJZGlzY29ubmVj dF9kYXRhYmFzZShjb25uLCB0cnVlKTsKIAkJCX0KIAkJCVBRY2xlYXIocmVzKTsKQEAgLTkzOCw4 ICsxMDE1LDkgQEAgc2VydmVyX2lzX2luX3JlY292ZXJ5KFBHY29ubiAqY29ubikKIAogCWlmIChQ UXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19PSykKIAl7Ci0JCXBnX2xvZ19lcnJv cigiY291bGQgbm90IG9idGFpbiByZWNvdmVyeSBwcm9ncmVzczogJXMiLAotCQkJCQkgUFFyZXN1 bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQ R19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiY291bGQgbm90IG9idGFpbiByZWNvdmVyeSBwcm9ncmVz czogJXMiLAorCQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQlkaXNjb25uZWN0 X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAtOTcxLDcgKzEwNDksOCBAQCBjaGVja19w dWJsaXNoZXIoY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAJaW50CQkJbWF4 X3ByZXBhcmVkX3RyYW5zYWN0aW9uczsKIAljaGFyCSAgICptYXhfc2xvdF93YWxfa2VlcF9zaXpl OwogCi0JcGdfbG9nX2luZm8oImNoZWNraW5nIHNldHRpbmdzIG9uIHB1Ymxpc2hlciIpOworCXBn X2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkgImNoZWNr aW5nIHNldHRpbmdzIG9uIHB1Ymxpc2hlciIpOwogCiAJY29ubiA9IGNvbm5lY3RfZGF0YWJhc2Uo ZGJpbmZvWzBdLnB1YmNvbm5pbmZvLCB0cnVlKTsKIApAQCAtOTgxLDcgKzEwNjAsOCBAQCBjaGVj a19wdWJsaXNoZXIoY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAJICovCiAJ aWYgKHNlcnZlcl9pc19pbl9yZWNvdmVyeShjb25uKSkKIAl7Ci0JCXBnX2xvZ19lcnJvcigicHJp bWFyeSBzZXJ2ZXIgY2Fubm90IGJlIGluIHJlY292ZXJ5Iik7CisJCXBnX2NyZWF0ZXN1Yl9sb2co UEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAicHJpbWFyeSBzZXJ2ZXIgY2Fu bm90IGJlIGluIHJlY292ZXJ5Iik7CiAJCWRpc2Nvbm5lY3RfZGF0YWJhc2UoY29ubiwgdHJ1ZSk7 CiAJfQogCkBAIC0xMDA3LDggKzEwODcsOSBAQCBjaGVja19wdWJsaXNoZXIoY29uc3Qgc3RydWN0 IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAKIAlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQ R1JFU19UVVBMRVNfT0spCiAJewotCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBvYnRhaW4gcHVi bGlzaGVyIHNldHRpbmdzOiAlcyIsCi0JCQkJCSBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsK KwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJ ICJjb3VsZCBub3Qgb2J0YWluIHB1Ymxpc2hlciBzZXR0aW5nczogJXMiLAorCQkJCQkJIFBRcmVz dWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUp OwogCX0KIApAQCAtMTAyMiw0OCArMTEwMyw2MyBAQCBjaGVja19wdWJsaXNoZXIoY29uc3Qgc3Ry dWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAKIAlQUWNsZWFyKHJlcyk7CiAKLQlwZ19sb2df ZGVidWcoInB1Ymxpc2hlcjogd2FsX2xldmVsOiAlcyIsIHdhbF9sZXZlbCk7Ci0JcGdfbG9nX2Rl YnVnKCJwdWJsaXNoZXI6IG1heF9yZXBsaWNhdGlvbl9zbG90czogJWQiLCBtYXhfcmVwc2xvdHMp OwotCXBnX2xvZ19kZWJ1ZygicHVibGlzaGVyOiBjdXJyZW50IHJlcGxpY2F0aW9uIHNsb3RzOiAl ZCIsIGN1cl9yZXBzbG90cyk7Ci0JcGdfbG9nX2RlYnVnKCJwdWJsaXNoZXI6IG1heF93YWxfc2Vu ZGVyczogJWQiLCBtYXhfd2Fsc2VuZGVycyk7Ci0JcGdfbG9nX2RlYnVnKCJwdWJsaXNoZXI6IGN1 cnJlbnQgd2FsIHNlbmRlcnM6ICVkIiwgY3VyX3dhbHNlbmRlcnMpOwotCXBnX2xvZ19kZWJ1Zygi cHVibGlzaGVyOiBtYXhfcHJlcGFyZWRfdHJhbnNhY3Rpb25zOiAlZCIsCi0JCQkJIG1heF9wcmVw YXJlZF90cmFuc2FjdGlvbnMpOwotCXBnX2xvZ19kZWJ1ZygicHVibGlzaGVyOiBtYXhfc2xvdF93 YWxfa2VlcF9zaXplOiAlcyIsCi0JCQkJIG1heF9zbG90X3dhbF9rZWVwX3NpemUpOworCXBnX2Ny ZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJwdWJsaXNo ZXI6IHdhbF9sZXZlbDogJXMiLCB3YWxfbGV2ZWwpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9H X0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJwdWJsaXNoZXI6IG1heF9yZXBsaWNhdGlv bl9zbG90czogJWQiLCBtYXhfcmVwc2xvdHMpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RF QlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJwdWJsaXNoZXI6IGN1cnJlbnQgcmVwbGljYXRp b24gc2xvdHM6ICVkIiwgY3VyX3JlcHNsb3RzKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19E RUJVRywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAicHVibGlzaGVyOiBtYXhfd2FsX3NlbmRlcnM6 ICVkIiwgbWF4X3dhbHNlbmRlcnMpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQ R19MT0dfUFJJTUFSWSwKKwkJCQkJICJwdWJsaXNoZXI6IGN1cnJlbnQgd2FsIHNlbmRlcnM6ICVk IiwgY3VyX3dhbHNlbmRlcnMpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19M T0dfUFJJTUFSWSwKKwkJCQkJICJwdWJsaXNoZXI6IG1heF9wcmVwYXJlZF90cmFuc2FjdGlvbnM6 ICVkIiwKKwkJCQkJIG1heF9wcmVwYXJlZF90cmFuc2FjdGlvbnMpOworCXBnX2NyZWF0ZXN1Yl9s b2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJwdWJsaXNoZXI6IG1heF9z bG90X3dhbF9rZWVwX3NpemU6ICVzIiwKKwkJCQkJIG1heF9zbG90X3dhbF9rZWVwX3NpemUpOwog CiAJZGlzY29ubmVjdF9kYXRhYmFzZShjb25uLCBmYWxzZSk7CiAKIAlpZiAoc3RyY21wKHdhbF9s ZXZlbCwgIm1pbmltYWwiKSA9PSAwKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJwdWJsaXNoZXIgcmVx dWlyZXMgXCJ3YWxfbGV2ZWxcIiA+PSBcInJlcGxpY2FcIiIpOworCQlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgInB1Ymxpc2hlciByZXF1aXJl cyBcIndhbF9sZXZlbFwiID49IFwicmVwbGljYVwiIik7CiAJCWZhaWxlZCA9IHRydWU7CiAJfQog CiAJaWYgKG1heF9yZXBzbG90cyAtIGN1cl9yZXBzbG90cyA8IG51bV9kYnMpCiAJewotCQlwZ19s b2dfZXJyb3IoInB1Ymxpc2hlciByZXF1aXJlcyAlZCByZXBsaWNhdGlvbiBzbG90cywgYnV0IG9u bHkgJWQgcmVtYWluIiwKLQkJCQkJIG51bV9kYnMsIG1heF9yZXBzbG90cyAtIGN1cl9yZXBzbG90 cyk7Ci0JCXBnX2xvZ19lcnJvcl9oaW50KCJJbmNyZWFzZSB0aGUgY29uZmlndXJhdGlvbiBwYXJh bWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0ICVkLiIsCi0JCQkJCQkgICJtYXhfcmVwbGljYXRpb25f c2xvdHMiLCBjdXJfcmVwc2xvdHMgKyBudW1fZGJzKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19M T0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJwdWJsaXNoZXIgcmVxdWlyZXMgJWQg cmVwbGljYXRpb24gc2xvdHMsIGJ1dCBvbmx5ICVkIHJlbWFpbiIsCisJCQkJCQkgbnVtX2Ricywg bWF4X3JlcHNsb3RzIC0gY3VyX3JlcHNsb3RzKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0df RVJST1IsIFBHX0xPR19ISU5ULAorCQkJCQkJICJJbmNyZWFzZSB0aGUgY29uZmlndXJhdGlvbiBw YXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0ICVkLiIsCisJCQkJCQkgIm1heF9yZXBsaWNhdGlv bl9zbG90cyIsIGN1cl9yZXBzbG90cyArIG51bV9kYnMpOwogCQlmYWlsZWQgPSB0cnVlOwogCX0K IAogCWlmIChtYXhfd2Fsc2VuZGVycyAtIGN1cl93YWxzZW5kZXJzIDwgbnVtX2RicykKIAl7Ci0J CXBnX2xvZ19lcnJvcigicHVibGlzaGVyIHJlcXVpcmVzICVkIFdBTCBzZW5kZXIgcHJvY2Vzc2Vz LCBidXQgb25seSAlZCByZW1haW4iLAotCQkJCQkgbnVtX2RicywgbWF4X3dhbHNlbmRlcnMgLSBj dXJfd2Fsc2VuZGVycyk7Ci0JCXBnX2xvZ19lcnJvcl9oaW50KCJJbmNyZWFzZSB0aGUgY29uZmln dXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0ICVkLiIsCi0JCQkJCQkgICJtYXhf d2FsX3NlbmRlcnMiLCBjdXJfd2Fsc2VuZGVycyArIG51bV9kYnMpOworCQlwZ19jcmVhdGVzdWJf bG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgInB1Ymxpc2hlciByZXF1 aXJlcyAlZCBXQUwgc2VuZGVyIHByb2Nlc3NlcywgYnV0IG9ubHkgJWQgcmVtYWluIiwKKwkJCQkJ CSBudW1fZGJzLCBtYXhfd2Fsc2VuZGVycyAtIGN1cl93YWxzZW5kZXJzKTsKKwkJcGdfY3JlYXRl c3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19ISU5ULAorCQkJCQkJICJJbmNyZWFzZSB0aGUg Y29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0ICVkLiIsCisJCQkJCQkg Im1heF93YWxfc2VuZGVycyIsIGN1cl93YWxzZW5kZXJzICsgbnVtX2Ricyk7CiAJCWZhaWxlZCA9 IHRydWU7CiAJfQogCiAJaWYgKG1heF9wcmVwYXJlZF90cmFuc2FjdGlvbnMgIT0gMCAmJiAhZGJp bmZvcy50d29fcGhhc2UpCiAJewotCQlwZ19sb2dfd2FybmluZygidHdvX3BoYXNlIG9wdGlvbiB3 aWxsIG5vdCBiZSBlbmFibGVkIGZvciByZXBsaWNhdGlvbiBzbG90cyIpOwotCQlwZ19sb2dfd2Fy bmluZ19kZXRhaWwoIlN1YnNjcmlwdGlvbnMgd2lsbCBiZSBjcmVhdGVkIHdpdGggdGhlIHR3b19w aGFzZSBvcHRpb24gZGlzYWJsZWQuICAiCi0JCQkJCQkJICAiUHJlcGFyZWQgdHJhbnNhY3Rpb25z IHdpbGwgYmUgcmVwbGljYXRlZCBhdCBDT01NSVQgUFJFUEFSRUQuIik7Ci0JCXBnX2xvZ193YXJu aW5nX2hpbnQoIllvdSBjYW4gdXNlIHRoZSBjb21tYW5kLWxpbmUgb3B0aW9uIC0tZW5hYmxlLXR3 by1waGFzZSB0byBlbmFibGUgdHdvX3BoYXNlLiIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xP R19XQVJOSU5HLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAidHdvX3BoYXNlIG9wdGlvbiB3aWxs IG5vdCBiZSBlbmFibGVkIGZvciByZXBsaWNhdGlvbiBzbG90cyIpOworCQlwZ19jcmVhdGVzdWJf bG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfREVUQUlMLAorCQkJCQkJICJTdWJzY3JpcHRpb25z IHdpbGwgYmUgY3JlYXRlZCB3aXRoIHRoZSB0d29fcGhhc2Ugb3B0aW9uIGRpc2FibGVkLiAgIgor CQkJCQkJICJQcmVwYXJlZCB0cmFuc2FjdGlvbnMgd2lsbCBiZSByZXBsaWNhdGVkIGF0IENPTU1J VCBQUkVQQVJFRC4iKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfV0FSTklORywgUEdfTE9H X0hJTlQsCisJCQkJCQkgIllvdSBjYW4gdXNlIHRoZSBjb21tYW5kLWxpbmUgb3B0aW9uIC0tZW5h YmxlLXR3by1waGFzZSB0byBlbmFibGUgdHdvX3BoYXNlLiIpOwogCX0KIAogCS8qCkBAIC0xMDcz LDkgKzExNjksMTEgQEAgY2hlY2tfcHVibGlzaGVyKGNvbnN0IHN0cnVjdCBMb2dpY2FsUmVwSW5m byAqZGJpbmZvKQogCSAqLwogCWlmIChkcnlfcnVuICYmIChzdHJjbXAobWF4X3Nsb3Rfd2FsX2tl ZXBfc2l6ZSwgIi0xIikgIT0gMCkpCiAJewotCQlwZ19sb2dfd2FybmluZygicmVxdWlyZWQgV0FM IGNvdWxkIGJlIHJlbW92ZWQgZnJvbSB0aGUgcHVibGlzaGVyIik7Ci0JCXBnX2xvZ193YXJuaW5n X2hpbnQoIlNldCB0aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIC0xIHRvIGVu c3VyZSB0aGF0IHJlcXVpcmVkIFdBTCBmaWxlcyBhcmUgbm90IHByZW1hdHVyZWx5IHJlbW92ZWQu IiwKLQkJCQkJCQkibWF4X3Nsb3Rfd2FsX2tlZXBfc2l6ZSIpOworCQlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19XQVJOSU5HLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAicmVxdWlyZWQgV0FMIGNv dWxkIGJlIHJlbW92ZWQgZnJvbSB0aGUgcHVibGlzaGVyIik7CisJCXBnX2NyZWF0ZXN1Yl9sb2co UEdfTE9HX1dBUk5JTkcsIFBHX0xPR19ISU5ULAorCQkJCQkJICJTZXQgdGhlIGNvbmZpZ3VyYXRp b24gcGFyYW1ldGVyIFwiJXNcIiB0byAtMSB0byBlbnN1cmUgdGhhdCByZXF1aXJlZCBXQUwgZmls ZXMgYXJlIG5vdCBwcmVtYXR1cmVseSByZW1vdmVkLiIsCisJCQkJCQkgIm1heF9zbG90X3dhbF9r ZWVwX3NpemUiKTsKIAl9CiAKIAlwZ19mcmVlKHdhbF9sZXZlbCk7CkBAIC0xMTA2LDE0ICsxMjA0 LDE2IEBAIGNoZWNrX3N1YnNjcmliZXIoY29uc3Qgc3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmlu Zm8pCiAJaW50CQkJbWF4X3JlcGxvcmlnaW5zOwogCWludAkJCW1heF93cHJvY3M7CiAKLQlwZ19s b2dfaW5mbygiY2hlY2tpbmcgc2V0dGluZ3Mgb24gc3Vic2NyaWJlciIpOworCXBnX2NyZWF0ZXN1 Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkgImNoZWNraW5nIHNldHRp bmdzIG9uIHN1YnNjcmliZXIiKTsKIAogCWNvbm4gPSBjb25uZWN0X2RhdGFiYXNlKGRiaW5mb1sw XS5zdWJjb25uaW5mbywgdHJ1ZSk7CiAKIAkvKiBUaGUgdGFyZ2V0IHNlcnZlciBtdXN0IGJlIGEg c3RhbmRieSAqLwogCWlmICghc2VydmVyX2lzX2luX3JlY292ZXJ5KGNvbm4pKQogCXsKLQkJcGdf bG9nX2Vycm9yKCJ0YXJnZXQgc2VydmVyIG11c3QgYmUgYSBzdGFuZGJ5Iik7CisJCXBnX2NyZWF0 ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAidGFyZ2V0IHNl cnZlciBtdXN0IGJlIGEgc3RhbmRieSIpOwogCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRy dWUpOwogCX0KIApAQCAtMTEzNyw4ICsxMjM3LDkgQEAgY2hlY2tfc3Vic2NyaWJlcihjb25zdCBz dHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAogCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMp ICE9IFBHUkVTX1RVUExFU19PSykKIAl7Ci0JCXBnX2xvZ19lcnJvcigiY291bGQgbm90IG9idGFp biBzdWJzY3JpYmVyIHNldHRpbmdzOiAlcyIsCi0JCQkJCSBQUXJlc3VsdEVycm9yTWVzc2FnZShy ZXMpKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAor CQkJCQkJICJjb3VsZCBub3Qgb2J0YWluIHN1YnNjcmliZXIgc2V0dGluZ3M6ICVzIiwKKwkJCQkJ CSBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKIAkJZGlzY29ubmVjdF9kYXRhYmFzZShjb25u LCB0cnVlKTsKIAl9CiAKQEAgLTExNDgsMTIgKzEyNDksMTYgQEAgY2hlY2tfc3Vic2NyaWJlcihj b25zdCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAlpZiAoc3RyY21wKFBRZ2V0dmFs dWUocmVzLCAzLCAwKSwgIiIpICE9IDApCiAJCXByaW1hcnlfc2xvdF9uYW1lID0gcGdfc3RyZHVw KFBRZ2V0dmFsdWUocmVzLCAzLCAwKSk7CiAKLQlwZ19sb2dfZGVidWcoInN1YnNjcmliZXI6IG1h eF9sb2dpY2FsX3JlcGxpY2F0aW9uX3dvcmtlcnM6ICVkIiwKLQkJCQkgbWF4X2xyd29ya2Vycyk7 Ci0JcGdfbG9nX2RlYnVnKCJzdWJzY3JpYmVyOiBtYXhfYWN0aXZlX3JlcGxpY2F0aW9uX29yaWdp bnM6ICVkIiwgbWF4X3JlcGxvcmlnaW5zKTsKLQlwZ19sb2dfZGVidWcoInN1YnNjcmliZXI6IG1h eF93b3JrZXJfcHJvY2Vzc2VzOiAlZCIsIG1heF93cHJvY3MpOworCXBnX2NyZWF0ZXN1Yl9sb2co UEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJzdWJzY3JpYmVyOiBtYXhfbG9n aWNhbF9yZXBsaWNhdGlvbl93b3JrZXJzOiAlZCIsCisJCQkJCSBtYXhfbHJ3b3JrZXJzKTsKKwlw Z19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAic3Vi c2NyaWJlcjogbWF4X2FjdGl2ZV9yZXBsaWNhdGlvbl9vcmlnaW5zOiAlZCIsIG1heF9yZXBsb3Jp Z2lucyk7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAor CQkJCQkgInN1YnNjcmliZXI6IG1heF93b3JrZXJfcHJvY2Vzc2VzOiAlZCIsIG1heF93cHJvY3Mp OwogCWlmIChwcmltYXJ5X3Nsb3RfbmFtZSkKLQkJcGdfbG9nX2RlYnVnKCJzdWJzY3JpYmVyOiBw cmltYXJ5X3Nsb3RfbmFtZTogJXMiLCBwcmltYXJ5X3Nsb3RfbmFtZSk7CisJCXBnX2NyZWF0ZXN1 Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAic3Vic2NyaWJlcjog cHJpbWFyeV9zbG90X25hbWU6ICVzIiwgcHJpbWFyeV9zbG90X25hbWUpOwogCiAJUFFjbGVhcihy ZXMpOwogCkBAIC0xMTYxLDI4ICsxMjY2LDM0IEBAIGNoZWNrX3N1YnNjcmliZXIoY29uc3Qgc3Ry dWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAKIAlpZiAobWF4X3JlcGxvcmlnaW5zIDwgbnVt X2RicykKIAl7Ci0JCXBnX2xvZ19lcnJvcigic3Vic2NyaWJlciByZXF1aXJlcyAlZCBhY3RpdmUg cmVwbGljYXRpb24gb3JpZ2lucywgYnV0IG9ubHkgJWQgcmVtYWluIiwKLQkJCQkJIG51bV9kYnMs IG1heF9yZXBsb3JpZ2lucyk7Ci0JCXBnX2xvZ19lcnJvcl9oaW50KCJJbmNyZWFzZSB0aGUgY29u ZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIGF0IGxlYXN0ICVkLiIsCi0JCQkJCQkgICJt YXhfYWN0aXZlX3JlcGxpY2F0aW9uX29yaWdpbnMiLCBudW1fZGJzKTsKKwkJcGdfY3JlYXRlc3Vi X2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJzdWJzY3JpYmVyIHJl cXVpcmVzICVkIGFjdGl2ZSByZXBsaWNhdGlvbiBvcmlnaW5zLCBidXQgb25seSAlZCByZW1haW4i LAorCQkJCQkJIG51bV9kYnMsIG1heF9yZXBsb3JpZ2lucyk7CisJCXBnX2NyZWF0ZXN1Yl9sb2co UEdfTE9HX0VSUk9SLCBQR19MT0dfSElOVCwKKwkJCQkJCSAiSW5jcmVhc2UgdGhlIGNvbmZpZ3Vy YXRpb24gcGFyYW1ldGVyIFwiJXNcIiB0byBhdCBsZWFzdCAlZC4iLAorCQkJCQkJICJtYXhfYWN0 aXZlX3JlcGxpY2F0aW9uX29yaWdpbnMiLCBudW1fZGJzKTsKIAkJZmFpbGVkID0gdHJ1ZTsKIAl9 CiAKIAlpZiAobWF4X2xyd29ya2VycyA8IG51bV9kYnMpCiAJewotCQlwZ19sb2dfZXJyb3IoInN1 YnNjcmliZXIgcmVxdWlyZXMgJWQgbG9naWNhbCByZXBsaWNhdGlvbiB3b3JrZXJzLCBidXQgb25s eSAlZCByZW1haW4iLAotCQkJCQkgbnVtX2RicywgbWF4X2xyd29ya2Vycyk7Ci0JCXBnX2xvZ19l cnJvcl9oaW50KCJJbmNyZWFzZSB0aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRv IGF0IGxlYXN0ICVkLiIsCi0JCQkJCQkgICJtYXhfbG9naWNhbF9yZXBsaWNhdGlvbl93b3JrZXJz IiwgbnVtX2Ricyk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJ TUFSWSwKKwkJCQkJCSAic3Vic2NyaWJlciByZXF1aXJlcyAlZCBsb2dpY2FsIHJlcGxpY2F0aW9u IHdvcmtlcnMsIGJ1dCBvbmx5ICVkIHJlbWFpbiIsCisJCQkJCQkgbnVtX2RicywgbWF4X2xyd29y a2Vycyk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfSElOVCwKKwkJ CQkJCSAiSW5jcmVhc2UgdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIFwiJXNcIiB0byBhdCBs ZWFzdCAlZC4iLAorCQkJCQkJICJtYXhfbG9naWNhbF9yZXBsaWNhdGlvbl93b3JrZXJzIiwgbnVt X2Ricyk7CiAJCWZhaWxlZCA9IHRydWU7CiAJfQogCiAJaWYgKG1heF93cHJvY3MgPCBudW1fZGJz ICsgMSkKIAl7Ci0JCXBnX2xvZ19lcnJvcigic3Vic2NyaWJlciByZXF1aXJlcyAlZCB3b3JrZXIg cHJvY2Vzc2VzLCBidXQgb25seSAlZCByZW1haW4iLAotCQkJCQkgbnVtX2RicyArIDEsIG1heF93 cHJvY3MpOwotCQlwZ19sb2dfZXJyb3JfaGludCgiSW5jcmVhc2UgdGhlIGNvbmZpZ3VyYXRpb24g cGFyYW1ldGVyIFwiJXNcIiB0byBhdCBsZWFzdCAlZC4iLAotCQkJCQkJICAibWF4X3dvcmtlcl9w cm9jZXNzZXMiLCBudW1fZGJzICsgMSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9S LCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAic3Vic2NyaWJlciByZXF1aXJlcyAlZCB3b3JrZXIg cHJvY2Vzc2VzLCBidXQgb25seSAlZCByZW1haW4iLAorCQkJCQkJIG51bV9kYnMgKyAxLCBtYXhf d3Byb2NzKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19ISU5ULAor CQkJCQkJICJJbmNyZWFzZSB0aGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgXCIlc1wiIHRvIGF0 IGxlYXN0ICVkLiIsCisJCQkJCQkgIm1heF93b3JrZXJfcHJvY2Vzc2VzIiwgbnVtX2RicyArIDEp OwogCQlmYWlsZWQgPSB0cnVlOwogCX0KIApAQCAtMTIxNSwxOSArMTMyNiwyMiBAQCBkcm9wX2V4 aXN0aW5nX3N1YnNjcmlwdGlvbihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnN1Ym5hbWUsIGNv bnN0IGNoYXIgKmRibmFtZQogCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIERST1AgU1VCU0NS SVBUSU9OICVzOyIsIHN1Ym5hbWUpOwogCiAJaWYgKGRyeV9ydW4pCi0JCXBnX2xvZ19pbmZvKCJk cnktcnVuOiB3b3VsZCBkcm9wIHN1YnNjcmlwdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wi IiwKLQkJCQkJc3VibmFtZSwgZGJuYW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5G TywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImRyeS1ydW46IHdvdWxkIGRyb3Agc3Vic2NyaXB0 aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIiLAorCQkJCQkJIHN1Ym5hbWUsIGRibmFtZSk7 CiAJZWxzZQogCXsKLQkJcGdfbG9nX2luZm8oImRyb3BwaW5nIHN1YnNjcmlwdGlvbiBcIiVzXCIg aW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJc3VibmFtZSwgZGJuYW1lKTsKKwkJcGdfY3JlYXRl c3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImRyb3BwaW5nIHN1 YnNjcmlwdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBzdWJuYW1lLCBk Ym5hbWUpOwogCiAJCXJlcyA9IFBRZXhlYyhjb25uLCBxdWVyeS0+ZGF0YSk7CiAKIAkJaWYgKFBR cmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKIAkJewotCQkJcGdfbG9nX2Vy cm9yKCJjb3VsZCBub3QgZHJvcCBzdWJzY3JpcHRpb24gXCIlc1wiOiAlcyIsCi0JCQkJCQkgc3Vi bmFtZSwgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBH X0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJICJjb3VsZCBub3QgZHJvcCBzdWJz Y3JpcHRpb24gXCIlc1wiOiAlcyIsCisJCQkJCQkJIHN1Ym5hbWUsIFBRcmVzdWx0RXJyb3JNZXNz YWdlKHJlcykpOwogCQkJZGlzY29ubmVjdF9kYXRhYmFzZShjb25uLCB0cnVlKTsKIAkJfQogCkBA IC0xMjYxLDggKzEzNzUsOSBAQCBjaGVja19hbmRfZHJvcF9leGlzdGluZ19zdWJzY3JpcHRpb25z KFBHY29ubiAqY29ubiwKIAogCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExF U19PSykKIAl7Ci0JCXBnX2xvZ19lcnJvcigiY291bGQgbm90IG9idGFpbiBwcmUtZXhpc3Rpbmcg c3Vic2NyaXB0aW9uczogJXMiLAotCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJ CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAi Y291bGQgbm90IG9idGFpbiBwcmUtZXhpc3Rpbmcgc3Vic2NyaXB0aW9uczogJXMiLAorCQkJCQkJ IFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4s IHRydWUpOwogCX0KIApAQCAtMTM3Myw3ICsxNDg4LDggQEAgc2V0dXBfcmVjb3ZlcnkoY29uc3Qg c3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8sIGNvbnN0IGNoYXIgKmRhdGFkaXIsIGNvbnN0 IGMKIAkJCQkJCSAgbHNuKTsKIAl9CiAKLQlwZ19sb2dfZGVidWcoInJlY292ZXJ5IHBhcmFtZXRl cnM6XG4lcyIsIHJlY292ZXJ5Y29uZmNvbnRlbnRzLT5kYXRhKTsKKwlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAicmVjb3ZlcnkgcGFyYW1ldGVy czpcbiVzIiwgcmVjb3Zlcnljb25mY29udGVudHMtPmRhdGEpOwogCiAJaWYgKCFkcnlfcnVuKQog CXsKQEAgLTE0MjcsOSArMTU0MywxMSBAQCBkcm9wX3ByaW1hcnlfcmVwbGljYXRpb25fc2xvdChz dHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbywgY29uc3QgY2hhciAqc2xvdG5hbQogCX0KIAll bHNlCiAJewotCQlwZ19sb2dfd2FybmluZygiY291bGQgbm90IGRyb3AgcmVwbGljYXRpb24gc2xv dCBcIiVzXCIgb24gcHJpbWFyeSIsCi0JCQkJCSAgIHNsb3RuYW1lKTsKLQkJcGdfbG9nX3dhcm5p bmdfaGludCgiRHJvcCB0aGlzIHJlcGxpY2F0aW9uIHNsb3Qgc29vbiB0byBhdm9pZCByZXRlbnRp b24gb2YgV0FMIGZpbGVzLiIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQ R19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiY291bGQgbm90IGRyb3AgcmVwbGljYXRpb24gc2xvdCBc IiVzXCIgb24gcHJpbWFyeSIsCisJCQkJCQkgc2xvdG5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19XQVJOSU5HLCBQR19MT0dfSElOVCwKKwkJCQkJCSAiRHJvcCB0aGlzIHJlcGxpY2F0 aW9uIHNsb3Qgc29vbiB0byBhdm9pZCByZXRlbnRpb24gb2YgV0FMIGZpbGVzLiIpOwogCX0KIH0K IApAQCAtMTQ2MSw5ICsxNTc5LDExIEBAIGRyb3BfZmFpbG92ZXJfcmVwbGljYXRpb25fc2xvdHMo c3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8pCiAJCX0KIAkJZWxzZQogCQl7Ci0JCQlwZ19s b2dfd2FybmluZygiY291bGQgbm90IG9idGFpbiBmYWlsb3ZlciByZXBsaWNhdGlvbiBzbG90IGlu Zm9ybWF0aW9uOiAlcyIsCi0JCQkJCQkgICBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKLQkJ CXBnX2xvZ193YXJuaW5nX2hpbnQoIkRyb3AgdGhlIGZhaWxvdmVyIHJlcGxpY2F0aW9uIHNsb3Rz IG9uIHN1YnNjcmliZXIgc29vbiB0byBhdm9pZCByZXRlbnRpb24gb2YgV0FMIGZpbGVzLiIpOwor CQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfV0FSTklORywgUEdfTE9HX1BSSU1BUlksCisJCQkJ CQkJICJjb3VsZCBub3Qgb2J0YWluIGZhaWxvdmVyIHJlcGxpY2F0aW9uIHNsb3QgaW5mb3JtYXRp b246ICVzIiwKKwkJCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCQlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfSElOVCwKKwkJCQkJCQkgIkRyb3AgdGhl IGZhaWxvdmVyIHJlcGxpY2F0aW9uIHNsb3RzIG9uIHN1YnNjcmliZXIgc29vbiB0byBhdm9pZCBy ZXRlbnRpb24gb2YgV0FMIGZpbGVzLiIpOwogCQl9CiAKIAkJUFFjbGVhcihyZXMpOwpAQCAtMTQ3 MSw4ICsxNTkxLDEwIEBAIGRyb3BfZmFpbG92ZXJfcmVwbGljYXRpb25fc2xvdHMoc3RydWN0IExv Z2ljYWxSZXBJbmZvICpkYmluZm8pCiAJfQogCWVsc2UKIAl7Ci0JCXBnX2xvZ193YXJuaW5nKCJj b3VsZCBub3QgZHJvcCBmYWlsb3ZlciByZXBsaWNhdGlvbiBzbG90Iik7Ci0JCXBnX2xvZ193YXJu aW5nX2hpbnQoIkRyb3AgdGhlIGZhaWxvdmVyIHJlcGxpY2F0aW9uIHNsb3RzIG9uIHN1YnNjcmli ZXIgc29vbiB0byBhdm9pZCByZXRlbnRpb24gb2YgV0FMIGZpbGVzLiIpOworCQlwZ19jcmVhdGVz dWJfbG9nKFBHX0xPR19XQVJOSU5HLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiY291bGQgbm90 IGRyb3AgZmFpbG92ZXIgcmVwbGljYXRpb24gc2xvdCIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBH X0xPR19XQVJOSU5HLCBQR19MT0dfSElOVCwKKwkJCQkJCSAiRHJvcCB0aGUgZmFpbG92ZXIgcmVw bGljYXRpb24gc2xvdHMgb24gc3Vic2NyaWJlciBzb29uIHRvIGF2b2lkIHJldGVudGlvbiBvZiBX QUwgZmlsZXMuIik7CiAJfQogfQogCkBAIC0xNDk0LDExICsxNjE2LDEzIEBAIGNyZWF0ZV9sb2dp Y2FsX3JlcGxpY2F0aW9uX3Nsb3QoUEdjb25uICpjb25uLCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8g KmRiaW5mbykKIAlBc3NlcnQoY29ubiAhPSBOVUxMKTsKIAogCWlmIChkcnlfcnVuKQotCQlwZ19s b2dfaW5mbygiZHJ5LXJ1bjogd291bGQgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90IFwiJXNc IiBpbiBkYXRhYmFzZSBcIiVzXCIgb24gcHVibGlzaGVyIiwKLQkJCQkJc2xvdF9uYW1lLCBkYmlu Zm8tPmRibmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklN QVJZLAorCQkJCQkJICJkcnktcnVuOiB3b3VsZCBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3Qg XCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiBvbiBwdWJsaXNoZXIiLAorCQkJCQkJIHNsb3RfbmFt ZSwgZGJpbmZvLT5kYm5hbWUpOwogCWVsc2UKLQkJcGdfbG9nX2luZm8oImNyZWF0aW5nIHRoZSBy ZXBsaWNhdGlvbiBzbG90IFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIgb24gcHVibGlzaGVyIiwK LQkJCQkJc2xvdF9uYW1lLCBkYmluZm8tPmRibmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdf TE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJjcmVhdGluZyB0aGUgcmVwbGljYXRp b24gc2xvdCBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIG9uIHB1Ymxpc2hlciIsCisJCQkJCQkg c2xvdF9uYW1lLCBkYmluZm8tPmRibmFtZSk7CiAKIAlzbG90X25hbWVfZXNjID0gUFFlc2NhcGVM aXRlcmFsKGNvbm4sIHNsb3RfbmFtZSwgc3RybGVuKHNsb3RfbmFtZSkpOwogCkBAIC0xNTA5LDE2 ICsxNjMzLDE4IEBAIGNyZWF0ZV9sb2dpY2FsX3JlcGxpY2F0aW9uX3Nsb3QoUEdjb25uICpjb25u LCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAogCVBRZnJlZW1lbShzbG90X25hbWVf ZXNjKTsKIAotCXBnX2xvZ19kZWJ1ZygiY29tbWFuZCBpczogJXMiLCBzdHItPmRhdGEpOworCXBn X2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJjb21t YW5kIGlzOiAlcyIsIHN0ci0+ZGF0YSk7CiAKIAlpZiAoIWRyeV9ydW4pCiAJewogCQlyZXMgPSBQ UWV4ZWMoY29ubiwgc3RyLT5kYXRhKTsKIAkJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdS RVNfVFVQTEVTX09LKQogCQl7Ci0JCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBjcmVhdGUgcmVw bGljYXRpb24gc2xvdCBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiOiAlcyIsCi0JCQkJCQkgc2xv dF9uYW1lLCBkYmluZm8tPmRibmFtZSwKLQkJCQkJCSBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMp KTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJ CQkJCQkgImNvdWxkIG5vdCBjcmVhdGUgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgaW4gZGF0YWJh c2UgXCIlc1wiOiAlcyIsCisJCQkJCQkJIHNsb3RfbmFtZSwgZGJpbmZvLT5kYm5hbWUsCisJCQkJ CQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQkJUFFjbGVhcihyZXMpOwogCQkJZGVz dHJveVBRRXhwQnVmZmVyKHN0cik7CiAJCQlyZXR1cm4gTlVMTDsKQEAgLTE1NDcsMTEgKzE2NzMs MTMgQEAgZHJvcF9yZXBsaWNhdGlvbl9zbG90KFBHY29ubiAqY29ubiwgc3RydWN0IExvZ2ljYWxS ZXBJbmZvICpkYmluZm8sCiAJQXNzZXJ0KGNvbm4gIT0gTlVMTCk7CiAKIAlpZiAoZHJ5X3J1bikK LQkJcGdfbG9nX2luZm8oImRyeS1ydW46IHdvdWxkIGRyb3AgdGhlIHJlcGxpY2F0aW9uIHNsb3Qg XCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCXNsb3RfbmFtZSwgZGJpbmZvLT5kYm5h bWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJ CQkJCSAiZHJ5LXJ1bjogd291bGQgZHJvcCB0aGUgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgaW4g ZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBzbG90X25hbWUsIGRiaW5mby0+ZGJuYW1lKTsKIAll bHNlCi0JCXBnX2xvZ19pbmZvKCJkcm9wcGluZyB0aGUgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIg aW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJc2xvdF9uYW1lLCBkYmluZm8tPmRibmFtZSk7CisJ CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJk cm9wcGluZyB0aGUgcmVwbGljYXRpb24gc2xvdCBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwK KwkJCQkJCSBzbG90X25hbWUsIGRiaW5mby0+ZGJuYW1lKTsKIAogCXNsb3RfbmFtZV9lc2MgPSBQ UWVzY2FwZUxpdGVyYWwoY29ubiwgc2xvdF9uYW1lLCBzdHJsZW4oc2xvdF9uYW1lKSk7CiAKQEAg LTE1NTksMTUgKzE2ODcsMTcgQEAgZHJvcF9yZXBsaWNhdGlvbl9zbG90KFBHY29ubiAqY29ubiwg c3RydWN0IExvZ2ljYWxSZXBJbmZvICpkYmluZm8sCiAKIAlQUWZyZWVtZW0oc2xvdF9uYW1lX2Vz Yyk7CiAKLQlwZ19sb2dfZGVidWcoImNvbW1hbmQgaXM6ICVzIiwgc3RyLT5kYXRhKTsKKwlwZ19j cmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAiY29tbWFu ZCBpczogJXMiLCBzdHItPmRhdGEpOwogCiAJaWYgKCFkcnlfcnVuKQogCXsKIAkJcmVzID0gUFFl eGVjKGNvbm4sIHN0ci0+ZGF0YSk7CiAJCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVT X1RVUExFU19PSykKIAkJewotCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3QgZHJvcCByZXBsaWNh dGlvbiBzbG90IFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCI6ICVzIiwKLQkJCQkJCSBzbG90X25h bWUsIGRiaW5mby0+ZGJuYW1lLCBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKKwkJCXBnX2Ny ZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCQkgImNvdWxk IG5vdCBkcm9wIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIjogJXMi LAorCQkJCQkJCSBzbG90X25hbWUsIGRiaW5mby0+ZGJuYW1lLCBQUXJlc3VsdEVycm9yTWVzc2Fn ZShyZXMpKTsKIAkJCWRiaW5mby0+bWFkZV9yZXBsc2xvdCA9IGZhbHNlOwkvKiBkb24ndCB0cnkg YWdhaW4uICovCiAJCX0KIApAQCAtMTU4NywyNSArMTcxNywzMiBAQCBwZ19jdGxfc3RhdHVzKGNv bnN0IGNoYXIgKnBnX2N0bF9jbWQsIGludCByYykKIAl7CiAJCWlmIChXSUZFWElURUQocmMpKQog CQl7Ci0JCQlwZ19sb2dfZXJyb3IoInBnX2N0bCBmYWlsZWQgd2l0aCBleGl0IGNvZGUgJWQiLCBX RVhJVFNUQVRVUyhyYykpOworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xP R19QUklNQVJZLAorCQkJCQkJCSAicGdfY3RsIGZhaWxlZCB3aXRoIGV4aXQgY29kZSAlZCIsCisJ CQkJCQkJIFdFWElUU1RBVFVTKHJjKSk7CiAJCX0KIAkJZWxzZSBpZiAoV0lGU0lHTkFMRUQocmMp KQogCQl7CiAjaWYgZGVmaW5lZChXSU4zMikKLQkJCXBnX2xvZ19lcnJvcigicGdfY3RsIHdhcyB0 ZXJtaW5hdGVkIGJ5IGV4Y2VwdGlvbiAweCVYIiwKLQkJCQkJCSBXVEVSTVNJRyhyYykpOwotCQkJ cGdfbG9nX2Vycm9yX2RldGFpbCgiU2VlIEMgaW5jbHVkZSBmaWxlIFwibnRzdGF0dXMuaFwiIGZv ciBhIGRlc2NyaXB0aW9uIG9mIHRoZSBoZXhhZGVjaW1hbCB2YWx1ZS4iKTsKKwkJCXBnX2NyZWF0 ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCQkgInBnX2N0bCB3 YXMgdGVybWluYXRlZCBieSBleGNlcHRpb24gMHglWCIsCisJCQkJCQkJIFdURVJNU0lHKHJjKSk7 CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0RFVEFJTCwKKwkJCQkJ CQkgIlNlZSBDIGluY2x1ZGUgZmlsZSBcIm50c3RhdHVzLmhcIiBmb3IgYSBkZXNjcmlwdGlvbiBv ZiB0aGUgaGV4YWRlY2ltYWwgdmFsdWUuIik7CiAjZWxzZQotCQkJcGdfbG9nX2Vycm9yKCJwZ19j dGwgd2FzIHRlcm1pbmF0ZWQgYnkgc2lnbmFsICVkOiAlcyIsCi0JCQkJCQkgV1RFUk1TSUcocmMp LCBwZ19zdHJzaWduYWwoV1RFUk1TSUcocmMpKSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xP R19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJICJwZ19jdGwgd2FzIHRlcm1pbmF0ZWQg Ynkgc2lnbmFsICVkOiAlcyIsCisJCQkJCQkJIFdURVJNU0lHKHJjKSwgcGdfc3Ryc2lnbmFsKFdU RVJNU0lHKHJjKSkpOwogI2VuZGlmCiAJCX0KIAkJZWxzZQogCQl7Ci0JCQlwZ19sb2dfZXJyb3Io InBnX2N0bCBleGl0ZWQgd2l0aCB1bnJlY29nbml6ZWQgc3RhdHVzICVkIiwgcmMpOworCQkJcGdf Y3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJCSAicGdf Y3RsIGV4aXRlZCB3aXRoIHVucmVjb2duaXplZCBzdGF0dXMgJWQiLCByYyk7CiAJCX0KIAotCQlw Z19sb2dfZXJyb3JfZGV0YWlsKCJUaGUgZmFpbGVkIGNvbW1hbmQgd2FzOiAlcyIsIHBnX2N0bF9j bWQpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0RFVEFJTCwKKwkJ CQkJCSAiVGhlIGZhaWxlZCBjb21tYW5kIHdhczogJXMiLCBwZ19jdGxfY21kKTsKIAkJZXhpdCgx KTsKIAl9CiB9CkBAIC0xNjUwLDEyICsxNzg3LDE0IEBAIHN0YXJ0X3N0YW5kYnlfc2VydmVyKGNv bnN0IHN0cnVjdCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucyAqb3B0LCBib29sIHJlc3RyaWN0ZWRf CiAJaWYgKHJlc3RyaWN0X2xvZ2ljYWxfd29ya2VyKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihw Z19jdGxfY21kLCAiIC1vIFwiLWMgbWF4X2xvZ2ljYWxfcmVwbGljYXRpb25fd29ya2Vycz0wXCIi KTsKIAotCXBnX2xvZ19kZWJ1ZygicGdfY3RsIGNvbW1hbmQgaXM6ICVzIiwgcGdfY3RsX2NtZC0+ ZGF0YSk7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAor CQkJCQkgInBnX2N0bCBjb21tYW5kIGlzOiAlcyIsIHBnX2N0bF9jbWQtPmRhdGEpOwogCXJjID0g c3lzdGVtKHBnX2N0bF9jbWQtPmRhdGEpOwogCXBnX2N0bF9zdGF0dXMocGdfY3RsX2NtZC0+ZGF0 YSwgcmMpOwogCXN0YW5kYnlfcnVubmluZyA9IHRydWU7CiAJZGVzdHJveVBRRXhwQnVmZmVyKHBn X2N0bF9jbWQpOwotCXBnX2xvZ19pbmZvKCJzZXJ2ZXIgd2FzIHN0YXJ0ZWQiKTsKKwlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJzZXJ2ZXIgd2Fz IHN0YXJ0ZWQiKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTE2NjYsMTEgKzE4MDUsMTMgQEAgc3Rv cF9zdGFuZGJ5X3NlcnZlcihjb25zdCBjaGFyICpkYXRhZGlyKQogCiAJcGdfY3RsX2NtZCA9IHBz cHJpbnRmKCJcIiVzXCIgc3RvcCAtRCBcIiVzXCIgLXMiLCBwZ19jdGxfcGF0aCwKIAkJCQkJCSAg ZGF0YWRpcik7Ci0JcGdfbG9nX2RlYnVnKCJwZ19jdGwgY29tbWFuZCBpczogJXMiLCBwZ19jdGxf Y21kKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCisJ CQkJCSAicGdfY3RsIGNvbW1hbmQgaXM6ICVzIiwgcGdfY3RsX2NtZCk7CiAJcmMgPSBzeXN0ZW0o cGdfY3RsX2NtZCk7CiAJcGdfY3RsX3N0YXR1cyhwZ19jdGxfY21kLCByYyk7CiAJc3RhbmRieV9y dW5uaW5nID0gZmFsc2U7Ci0JcGdfbG9nX2luZm8oInNlcnZlciB3YXMgc3RvcHBlZCIpOworCXBn X2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkgInNlcnZl ciB3YXMgc3RvcHBlZCIpOwogfQogCiAvKgpAQCAtMTY4OSw3ICsxODMwLDggQEAgd2FpdF9mb3Jf ZW5kX3JlY292ZXJ5KGNvbnN0IGNoYXIgKmNvbm5pbmZvLCBjb25zdCBzdHJ1Y3QgQ3JlYXRlU3Vi c2NyaWJlck9wdGlvbnMKIAlib29sCQlyZWFkeSA9IGZhbHNlOwogCWludAkJCXRpbWVyID0gMDsK IAotCXBnX2xvZ19pbmZvKCJ3YWl0aW5nIGZvciB0aGUgdGFyZ2V0IHNlcnZlciB0byByZWFjaCB0 aGUgY29uc2lzdGVudCBzdGF0ZSIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBH X0xPR19QUklNQVJZLAorCQkJCQkgIndhaXRpbmcgZm9yIHRoZSB0YXJnZXQgc2VydmVyIHRvIHJl YWNoIHRoZSBjb25zaXN0ZW50IHN0YXRlIik7CiAKIAljb25uID0gY29ubmVjdF9kYXRhYmFzZShj b25uaW5mbywgdHJ1ZSk7CiAKQEAgLTE3MDcsNyArMTg0OSw4IEBAIHdhaXRfZm9yX2VuZF9yZWNv dmVyeShjb25zdCBjaGFyICpjb25uaW5mbywgY29uc3Qgc3RydWN0IENyZWF0ZVN1YnNjcmliZXJP cHRpb25zCiAJCWlmIChvcHQtPnJlY292ZXJ5X3RpbWVvdXQgPiAwICYmIHRpbWVyID49IG9wdC0+ cmVjb3ZlcnlfdGltZW91dCkKIAkJewogCQkJc3RvcF9zdGFuZGJ5X3NlcnZlcihzdWJzY3JpYmVy X2Rpcik7Ci0JCQlwZ19sb2dfZXJyb3IoInJlY292ZXJ5IHRpbWVkIG91dCIpOworCQkJcGdfY3Jl YXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJCSAicmVjb3Zl cnkgdGltZWQgb3V0Iik7CiAJCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCQl9 CiAKQEAgLTE3MjEsOCArMTg2NCwxMCBAQCB3YWl0X2Zvcl9lbmRfcmVjb3ZlcnkoY29uc3QgY2hh ciAqY29ubmluZm8sIGNvbnN0IHN0cnVjdCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucwogCWlmICgh cmVhZHkpCiAJCXBnX2ZhdGFsKCJzZXJ2ZXIgZGlkIG5vdCBlbmQgcmVjb3ZlcnkiKTsKIAotCXBn X2xvZ19pbmZvKCJ0YXJnZXQgc2VydmVyIHJlYWNoZWQgdGhlIGNvbnNpc3RlbnQgc3RhdGUiKTsK LQlwZ19sb2dfaW5mb19oaW50KCJJZiBwZ19jcmVhdGVzdWJzY3JpYmVyIGZhaWxzIGFmdGVyIHRo aXMgcG9pbnQsIHlvdSBtdXN0IHJlY3JlYXRlIHRoZSBwaHlzaWNhbCByZXBsaWNhIGJlZm9yZSBj b250aW51aW5nLiIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklN QVJZLAorCQkJCQkgInRhcmdldCBzZXJ2ZXIgcmVhY2hlZCB0aGUgY29uc2lzdGVudCBzdGF0ZSIp OworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19ISU5ULAorCQkJCQkgIklm IHBnX2NyZWF0ZXN1YnNjcmliZXIgZmFpbHMgYWZ0ZXIgdGhpcyBwb2ludCwgeW91IG11c3QgcmVj cmVhdGUgdGhlIHBoeXNpY2FsIHJlcGxpY2EgYmVmb3JlIGNvbnRpbnVpbmcuIik7CiB9CiAKIC8q CkBAIC0xNzQ5LDggKzE4OTQsOSBAQCBjcmVhdGVfcHVibGljYXRpb24oUEdjb25uICpjb25uLCBz dHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAlyZXMgPSBQUWV4ZWMoY29ubiwgc3RyLT5k YXRhKTsKIAlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19UVVBMRVNfT0spCiAJewot CQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBvYnRhaW4gcHVibGljYXRpb24gaW5mb3JtYXRpb246 ICVzIiwKLQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOworCQlwZ19jcmVhdGVzdWJf bG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImNvdWxkIG5vdCBvYnRh aW4gcHVibGljYXRpb24gaW5mb3JtYXRpb246ICVzIiwKKwkJCQkJCSBQUXJlc3VsdEVycm9yTWVz c2FnZShyZXMpKTsKIAkJZGlzY29ubmVjdF9kYXRhYmFzZShjb25uLCB0cnVlKTsKIAl9CiAKQEAg LTE3NjMsOCArMTkwOSwxMCBAQCBjcmVhdGVfcHVibGljYXRpb24oUEdjb25uICpjb25uLCBzdHJ1 Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAkJICogcGdfY3JlYXRlc3Vic2NyaWJlcl8gcHJl Zml4IGZvbGxvd2VkIGJ5IHRoZSBleGFjdCBkYXRhYmFzZSBvaWQgYW5kCiAJCSAqIGEgcmFuZG9t IG51bWJlci4KIAkJICovCi0JCXBnX2xvZ19lcnJvcigicHVibGljYXRpb24gXCIlc1wiIGFscmVh ZHkgZXhpc3RzIiwgZGJpbmZvLT5wdWJuYW1lKTsKLQkJcGdfbG9nX2Vycm9yX2hpbnQoIkNvbnNp ZGVyIHJlbmFtaW5nIHRoaXMgcHVibGljYXRpb24gYmVmb3JlIGNvbnRpbnVpbmcuIik7CisJCXBn X2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAicHVi bGljYXRpb24gXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwgZGJpbmZvLT5wdWJuYW1lKTsKKwkJcGdf Y3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19ISU5ULAorCQkJCQkJICJDb25zaWRl ciByZW5hbWluZyB0aGlzIHB1YmxpY2F0aW9uIGJlZm9yZSBjb250aW51aW5nLiIpOwogCQlkaXNj b25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAtMTc3MiwyNCArMTkyMCwyOCBA QCBjcmVhdGVfcHVibGljYXRpb24oUEdjb25uICpjb25uLCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8g KmRiaW5mbykKIAlyZXNldFBRRXhwQnVmZmVyKHN0cik7CiAKIAlpZiAoZHJ5X3J1bikKLQkJcGdf bG9nX2luZm8oImRyeS1ydW46IHdvdWxkIGNyZWF0ZSBwdWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0 YWJhc2UgXCIlc1wiIiwKLQkJCQkJZGJpbmZvLT5wdWJuYW1lLCBkYmluZm8tPmRibmFtZSk7CisJ CXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJk cnktcnVuOiB3b3VsZCBjcmVhdGUgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNc IiIsCisJCQkJCQkgZGJpbmZvLT5wdWJuYW1lLCBkYmluZm8tPmRibmFtZSk7CiAJZWxzZQotCQlw Z19sb2dfaW5mbygiY3JlYXRpbmcgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNc IiIsCi0JCQkJCWRiaW5mby0+cHVibmFtZSwgZGJpbmZvLT5kYm5hbWUpOworCQlwZ19jcmVhdGVz dWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiY3JlYXRpbmcgcHVi bGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCisJCQkJCQkgZGJpbmZvLT5wdWJu YW1lLCBkYmluZm8tPmRibmFtZSk7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlcihzdHIsICJDUkVBVEUg UFVCTElDQVRJT04gJXMgRk9SIEFMTCBUQUJMRVMiLAogCQkJCQkgIGlwdWJuYW1lX2VzYyk7CiAK LQlwZ19sb2dfZGVidWcoImNvbW1hbmQgaXM6ICVzIiwgc3RyLT5kYXRhKTsKKwlwZ19jcmVhdGVz dWJfbG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAiY29tbWFuZCBpczog JXMiLCBzdHItPmRhdGEpOwogCiAJaWYgKCFkcnlfcnVuKQogCXsKIAkJcmVzID0gUFFleGVjKGNv bm4sIHN0ci0+ZGF0YSk7CiAJCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1B TkRfT0spCiAJCXsKLQkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IGNyZWF0ZSBwdWJsaWNhdGlv biBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiOiAlcyIsCi0JCQkJCQkgZGJpbmZvLT5wdWJuYW1l LCBkYmluZm8tPmRibmFtZSwgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCQlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJICJjb3VsZCBu b3QgY3JlYXRlIHB1YmxpY2F0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCI6ICVzIiwKKwkJ CQkJCQkgZGJpbmZvLT5wdWJuYW1lLCBkYmluZm8tPmRibmFtZSwgUFFyZXN1bHRFcnJvck1lc3Nh Z2UocmVzKSk7CiAJCQlkaXNjb25uZWN0X2RhdGFiYXNlKGNvbm4sIHRydWUpOwogCQl9CiAJCVBR Y2xlYXIocmVzKTsKQEAgLTE4MTksMjUgKzE5NzEsMjkgQEAgZHJvcF9wdWJsaWNhdGlvbihQR2Nv bm4gKmNvbm4sIGNvbnN0IGNoYXIgKnB1Ym5hbWUsIGNvbnN0IGNoYXIgKmRibmFtZSwKIAlwdWJu YW1lX2VzYyA9IFBRZXNjYXBlSWRlbnRpZmllcihjb25uLCBwdWJuYW1lLCBzdHJsZW4ocHVibmFt ZSkpOwogCiAJaWYgKGRyeV9ydW4pCi0JCXBnX2xvZ19pbmZvKCJkcnktcnVuOiB3b3VsZCBkcm9w IHB1YmxpY2F0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIiLAotCQkJCQlwdWJuYW1lLCBk Ym5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwK KwkJCQkJCSAiZHJ5LXJ1bjogd291bGQgZHJvcCBwdWJsaWNhdGlvbiBcIiVzXCIgaW4gZGF0YWJh c2UgXCIlc1wiIiwKKwkJCQkJCSBwdWJuYW1lLCBkYm5hbWUpOwogCWVsc2UKLQkJcGdfbG9nX2lu Zm8oImRyb3BwaW5nIHB1YmxpY2F0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIiLAotCQkJ CQlwdWJuYW1lLCBkYm5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19M T0dfUFJJTUFSWSwKKwkJCQkJCSAiZHJvcHBpbmcgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFi YXNlIFwiJXNcIiIsCisJCQkJCQkgcHVibmFtZSwgZGJuYW1lKTsKIAogCWFwcGVuZFBRRXhwQnVm ZmVyKHN0ciwgIkRST1AgUFVCTElDQVRJT04gJXMiLCBwdWJuYW1lX2VzYyk7CiAKIAlQUWZyZWVt ZW0ocHVibmFtZV9lc2MpOwogCi0JcGdfbG9nX2RlYnVnKCJjb21tYW5kIGlzOiAlcyIsIHN0ci0+ ZGF0YSk7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAor CQkJCQkgImNvbW1hbmQgaXM6ICVzIiwgc3RyLT5kYXRhKTsKIAogCWlmICghZHJ5X3J1bikKIAl7 CiAJCXJlcyA9IFBRZXhlYyhjb25uLCBzdHItPmRhdGEpOwogCQlpZiAoUFFyZXN1bHRTdGF0dXMo cmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQogCQl7Ci0JCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5v dCBkcm9wIHB1YmxpY2F0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCI6ICVzIiwKLQkJCQkJ CSBwdWJuYW1lLCBkYm5hbWUsIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOworCQkJcGdfY3Jl YXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJCSAiY291bGQg bm90IGRyb3AgcHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIjogJXMiLAorCQkJ CQkJCSBwdWJuYW1lLCBkYm5hbWUsIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQkJKm1h ZGVfcHVibGljYXRpb24gPSBmYWxzZTsJLyogZG9uJ3QgdHJ5IGFnYWluLiAqLwogCiAJCQkvKgpA QCAtMTg3MiwxNSArMjAyOCwxNyBAQCBjaGVja19hbmRfZHJvcF9wdWJsaWNhdGlvbnMoUEdjb25u ICpjb25uLCBzdHJ1Y3QgTG9naWNhbFJlcEluZm8gKmRiaW5mbykKIAogCWlmIChkcm9wX2FsbF9w dWJzKQogCXsKLQkJcGdfbG9nX2luZm8oImRyb3BwaW5nIGFsbCBleGlzdGluZyBwdWJsaWNhdGlv bnMgaW4gZGF0YWJhc2UgXCIlc1wiIiwKLQkJCQkJZGJpbmZvLT5kYm5hbWUpOworCQlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAiZHJvcHBpbmcg YWxsIGV4aXN0aW5nIHB1YmxpY2F0aW9ucyBpbiBkYXRhYmFzZSBcIiVzXCIiLAorCQkJCQkJIGRi aW5mby0+ZGJuYW1lKTsKIAogCQkvKiBGZXRjaCBhbGwgcHVibGljYXRpb24gbmFtZXMgKi8KIAkJ cmVzID0gUFFleGVjKGNvbm4sICJTRUxFQ1QgcHVibmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfcHVi bGljYXRpb247Iik7CiAJCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19P SykKIAkJewotCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgb2J0YWluIHB1YmxpY2F0aW9uIGlu Zm9ybWF0aW9uOiAlcyIsCi0JCQkJCQkgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCQlw Z19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJICJj b3VsZCBub3Qgb2J0YWluIHB1YmxpY2F0aW9uIGluZm9ybWF0aW9uOiAlcyIsCisJCQkJCQkJIFBR cmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQkJUFFjbGVhcihyZXMpOwogCQkJZGlzY29ubmVj dF9kYXRhYmFzZShjb25uLCB0cnVlKTsKIAkJfQpAQCAtMTkwMywxMSArMjA2MSwxMyBAQCBjaGVj a19hbmRfZHJvcF9wdWJsaWNhdGlvbnMoUEdjb25uICpjb25uLCBzdHJ1Y3QgTG9naWNhbFJlcElu Zm8gKmRiaW5mbykKIAkJZWxzZQogCQl7CiAJCQlpZiAoZHJ5X3J1bikKLQkJCQlwZ19sb2dfaW5m bygiZHJ5LXJ1bjogd291bGQgcHJlc2VydmUgZXhpc3RpbmcgcHVibGljYXRpb24gXCIlc1wiIGlu IGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCQkJZGJpbmZvLT5wdWJuYW1lLCBkYmluZm8tPmRibmFt ZSk7CisJCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJ CQkJCQkJCSAiZHJ5LXJ1bjogd291bGQgcHJlc2VydmUgZXhpc3RpbmcgcHVibGljYXRpb24gXCIl c1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCisJCQkJCQkJCSBkYmluZm8tPnB1Ym5hbWUsIGRiaW5m by0+ZGJuYW1lKTsKIAkJCWVsc2UKLQkJCQlwZ19sb2dfaW5mbygicHJlc2VydmUgZXhpc3Rpbmcg cHVibGljYXRpb24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCQkJZGJpbmZvLT5w dWJuYW1lLCBkYmluZm8tPmRibmFtZSk7CisJCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5G TywgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJCSAicHJlc2VydmUgZXhpc3RpbmcgcHVibGljYXRp b24gXCIlc1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCisJCQkJCQkJCSBkYmluZm8tPnB1Ym5hbWUs IGRiaW5mby0+ZGJuYW1lKTsKIAkJfQogCX0KIH0KQEAgLTE5NDEsMTEgKzIxMDEsMTMgQEAgY3Jl YXRlX3N1YnNjcmlwdGlvbihQR2Nvbm4gKmNvbm4sIGNvbnN0IHN0cnVjdCBMb2dpY2FsUmVwSW5m byAqZGJpbmZvKQogCXJlcGxzbG90bmFtZV9lc2MgPSBQUWVzY2FwZUxpdGVyYWwoY29ubiwgZGJp bmZvLT5yZXBsc2xvdG5hbWUsIHN0cmxlbihkYmluZm8tPnJlcGxzbG90bmFtZSkpOwogCiAJaWYg KGRyeV9ydW4pCi0JCXBnX2xvZ19pbmZvKCJkcnktcnVuOiB3b3VsZCBjcmVhdGUgc3Vic2NyaXB0 aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIiLAotCQkJCQlkYmluZm8tPnN1Ym5hbWUsIGRi aW5mby0+ZGJuYW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BS SU1BUlksCisJCQkJCQkgImRyeS1ydW46IHdvdWxkIGNyZWF0ZSBzdWJzY3JpcHRpb24gXCIlc1wi IGluIGRhdGFiYXNlIFwiJXNcIiIsCisJCQkJCQkgZGJpbmZvLT5zdWJuYW1lLCBkYmluZm8tPmRi bmFtZSk7CiAJZWxzZQotCQlwZ19sb2dfaW5mbygiY3JlYXRpbmcgc3Vic2NyaXB0aW9uIFwiJXNc IiBpbiBkYXRhYmFzZSBcIiVzXCIiLAotCQkJCQlkYmluZm8tPnN1Ym5hbWUsIGRiaW5mby0+ZGJu YW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJ CQkJCQkgImNyZWF0aW5nIHN1YnNjcmlwdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiIiwK KwkJCQkJCSBkYmluZm8tPnN1Ym5hbWUsIGRiaW5mby0+ZGJuYW1lKTsKIAogCWFwcGVuZFBRRXhw QnVmZmVyKHN0ciwKIAkJCQkJICAiQ1JFQVRFIFNVQlNDUklQVElPTiAlcyBDT05ORUNUSU9OICVz IFBVQkxJQ0FUSU9OICVzICIKQEAgLTE5NTksMTUgKzIxMjEsMTcgQEAgY3JlYXRlX3N1YnNjcmlw dGlvbihQR2Nvbm4gKmNvbm4sIGNvbnN0IHN0cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJpbmZvKQog CVBRZnJlZW1lbShwdWJjb25uaW5mb19lc2MpOwogCVBRZnJlZW1lbShyZXBsc2xvdG5hbWVfZXNj KTsKIAotCXBnX2xvZ19kZWJ1ZygiY29tbWFuZCBpczogJXMiLCBzdHItPmRhdGEpOworCXBnX2Ny ZWF0ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJICJjb21tYW5k IGlzOiAlcyIsIHN0ci0+ZGF0YSk7CiAKIAlpZiAoIWRyeV9ydW4pCiAJewogCQlyZXMgPSBQUWV4 ZWMoY29ubiwgc3RyLT5kYXRhKTsKIAkJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNf Q09NTUFORF9PSykKIAkJewotCQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3QgY3JlYXRlIHN1YnNj cmlwdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiOiAlcyIsCi0JCQkJCQkgZGJpbmZvLT5z dWJuYW1lLCBkYmluZm8tPmRibmFtZSwgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCQlw Z19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJICJj b3VsZCBub3QgY3JlYXRlIHN1YnNjcmlwdGlvbiBcIiVzXCIgaW4gZGF0YWJhc2UgXCIlc1wiOiAl cyIsCisJCQkJCQkJIGRiaW5mby0+c3VibmFtZSwgZGJpbmZvLT5kYm5hbWUsIFBRcmVzdWx0RXJy b3JNZXNzYWdlKHJlcykpOwogCQkJZGlzY29ubmVjdF9kYXRhYmFzZShjb25uLCB0cnVlKTsKIAkJ fQogCQlQUWNsZWFyKHJlcyk7CkBAIC0yMDExLDE1ICsyMTc1LDE3IEBAIHNldF9yZXBsaWNhdGlv bl9wcm9ncmVzcyhQR2Nvbm4gKmNvbm4sIGNvbnN0IHN0cnVjdCBMb2dpY2FsUmVwSW5mbyAqZGJp bmZvLCBjb25zCiAJcmVzID0gUFFleGVjKGNvbm4sIHN0ci0+ZGF0YSk7CiAJaWYgKFBRcmVzdWx0 U3RhdHVzKHJlcykgIT0gUEdSRVNfVFVQTEVTX09LKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJjb3Vs ZCBub3Qgb2J0YWluIHN1YnNjcmlwdGlvbiBPSUQ6ICVzIiwKLQkJCQkJIFBRcmVzdWx0RXJyb3JN ZXNzYWdlKHJlcykpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BS SU1BUlksCisJCQkJCQkgImNvdWxkIG5vdCBvYnRhaW4gc3Vic2NyaXB0aW9uIE9JRDogJXMiLAor CQkJCQkJIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOwogCQlkaXNjb25uZWN0X2RhdGFiYXNl KGNvbm4sIHRydWUpOwogCX0KIAogCWlmIChQUW50dXBsZXMocmVzKSAhPSAxICYmICFkcnlfcnVu KQogCXsKLQkJcGdfbG9nX2Vycm9yKCJjb3VsZCBub3Qgb2J0YWluIHN1YnNjcmlwdGlvbiBPSUQ6 IGdvdCAlZCByb3dzLCBleHBlY3RlZCAlZCByb3ciLAotCQkJCQkgUFFudHVwbGVzKHJlcyksIDEp OworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJ CQkgImNvdWxkIG5vdCBvYnRhaW4gc3Vic2NyaXB0aW9uIE9JRDogZ290ICVkIHJvd3MsIGV4cGVj dGVkICVkIHJvdyIsCisJCQkJCQkgUFFudHVwbGVzKHJlcyksIDEpOwogCQlkaXNjb25uZWN0X2Rh dGFiYXNlKGNvbm4sIHRydWUpOwogCX0KIApAQCAtMjA0MywyNiArMjIwOSwzMCBAQCBzZXRfcmVw bGljYXRpb25fcHJvZ3Jlc3MoUEdjb25uICpjb25uLCBjb25zdCBzdHJ1Y3QgTG9naWNhbFJlcElu Zm8gKmRiaW5mbywgY29ucwogCW9yaWdpbm5hbWUgPSBwc3ByaW50ZigicGdfJXUiLCBzdWJvaWQp OwogCiAJaWYgKGRyeV9ydW4pCi0JCXBnX2xvZ19pbmZvKCJkcnktcnVuOiB3b3VsZCBzZXQgdGhl IHJlcGxpY2F0aW9uIHByb2dyZXNzIChub2RlIG5hbWUgXCIlc1wiLCBMU04gJXMpIGluIGRhdGFi YXNlIFwiJXNcIiIsCi0JCQkJCW9yaWdpbm5hbWUsIGxzbnN0ciwgZGJpbmZvLT5kYm5hbWUpOwor CQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAi ZHJ5LXJ1bjogd291bGQgc2V0IHRoZSByZXBsaWNhdGlvbiBwcm9ncmVzcyAobm9kZSBuYW1lIFwi JXNcIiwgTFNOICVzKSBpbiBkYXRhYmFzZSBcIiVzXCIiLAorCQkJCQkJIG9yaWdpbm5hbWUsIGxz bnN0ciwgZGJpbmZvLT5kYm5hbWUpOwogCWVsc2UKLQkJcGdfbG9nX2luZm8oInNldHRpbmcgdGhl IHJlcGxpY2F0aW9uIHByb2dyZXNzIChub2RlIG5hbWUgXCIlc1wiLCBMU04gJXMpIGluIGRhdGFi YXNlIFwiJXNcIiIsCi0JCQkJCW9yaWdpbm5hbWUsIGxzbnN0ciwgZGJpbmZvLT5kYm5hbWUpOwor CQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAi c2V0dGluZyB0aGUgcmVwbGljYXRpb24gcHJvZ3Jlc3MgKG5vZGUgbmFtZSBcIiVzXCIsIExTTiAl cykgaW4gZGF0YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBvcmlnaW5uYW1lLCBsc25zdHIsIGRiaW5m by0+ZGJuYW1lKTsKIAogCXJlc2V0UFFFeHBCdWZmZXIoc3RyKTsKIAlhcHBlbmRQUUV4cEJ1ZmZl cihzdHIsCiAJCQkJCSAgIlNFTEVDVCBwZ19jYXRhbG9nLnBnX3JlcGxpY2F0aW9uX29yaWdpbl9h ZHZhbmNlKCclcycsICclcycpIiwKIAkJCQkJICBvcmlnaW5uYW1lLCBsc25zdHIpOwogCi0JcGdf bG9nX2RlYnVnKCJjb21tYW5kIGlzOiAlcyIsIHN0ci0+ZGF0YSk7CisJcGdfY3JlYXRlc3ViX2xv ZyhQR19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkgImNvbW1hbmQgaXM6ICVzIiwg c3RyLT5kYXRhKTsKIAogCWlmICghZHJ5X3J1bikKIAl7CiAJCXJlcyA9IFBRZXhlYyhjb25uLCBz dHItPmRhdGEpOwogCQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19UVVBMRVNfT0sp CiAJCXsKLQkJCXBnX2xvZ19lcnJvcigiY291bGQgbm90IHNldCByZXBsaWNhdGlvbiBwcm9ncmVz cyBmb3Igc3Vic2NyaXB0aW9uIFwiJXNcIjogJXMiLAotCQkJCQkJIGRiaW5mby0+c3VibmFtZSwg UFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19F UlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkJICJjb3VsZCBub3Qgc2V0IHJlcGxpY2F0aW9u IHByb2dyZXNzIGZvciBzdWJzY3JpcHRpb24gXCIlc1wiOiAlcyIsCisJCQkJCQkJIGRiaW5mby0+ c3VibmFtZSwgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVzKSk7CiAJCQlkaXNjb25uZWN0X2RhdGFi YXNlKGNvbm4sIHRydWUpOwogCQl9CiAJCVBRY2xlYXIocmVzKTsKQEAgLTIwOTMsMjMgKzIyNjMs MjcgQEAgZW5hYmxlX3N1YnNjcmlwdGlvbihQR2Nvbm4gKmNvbm4sIGNvbnN0IHN0cnVjdCBMb2dp Y2FsUmVwSW5mbyAqZGJpbmZvKQogCXN1Ym5hbWUgPSBQUWVzY2FwZUlkZW50aWZpZXIoY29ubiwg ZGJpbmZvLT5zdWJuYW1lLCBzdHJsZW4oZGJpbmZvLT5zdWJuYW1lKSk7CiAKIAlpZiAoZHJ5X3J1 bikKLQkJcGdfbG9nX2luZm8oImRyeS1ydW46IHdvdWxkIGVuYWJsZSBzdWJzY3JpcHRpb24gXCIl c1wiIGluIGRhdGFiYXNlIFwiJXNcIiIsCi0JCQkJCWRiaW5mby0+c3VibmFtZSwgZGJpbmZvLT5k Ym5hbWUpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwK KwkJCQkJCSAiZHJ5LXJ1bjogd291bGQgZW5hYmxlIHN1YnNjcmlwdGlvbiBcIiVzXCIgaW4gZGF0 YWJhc2UgXCIlc1wiIiwKKwkJCQkJCSBkYmluZm8tPnN1Ym5hbWUsIGRiaW5mby0+ZGJuYW1lKTsK IAllbHNlCi0JCXBnX2xvZ19pbmZvKCJlbmFibGluZyBzdWJzY3JpcHRpb24gXCIlc1wiIGluIGRh dGFiYXNlIFwiJXNcIiIsCi0JCQkJCWRiaW5mby0+c3VibmFtZSwgZGJpbmZvLT5kYm5hbWUpOwor CQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAi ZW5hYmxpbmcgc3Vic2NyaXB0aW9uIFwiJXNcIiBpbiBkYXRhYmFzZSBcIiVzXCIiLAorCQkJCQkJ IGRiaW5mby0+c3VibmFtZSwgZGJpbmZvLT5kYm5hbWUpOwogCiAJYXBwZW5kUFFFeHBCdWZmZXIo c3RyLCAiQUxURVIgU1VCU0NSSVBUSU9OICVzIEVOQUJMRSIsIHN1Ym5hbWUpOwogCi0JcGdfbG9n X2RlYnVnKCJjb21tYW5kIGlzOiAlcyIsIHN0ci0+ZGF0YSk7CisJcGdfY3JlYXRlc3ViX2xvZyhQ R19MT0dfREVCVUcsIFBHX0xPR19QUklNQVJZLAorCQkJCQkgImNvbW1hbmQgaXM6ICVzIiwgc3Ry LT5kYXRhKTsKIAogCWlmICghZHJ5X3J1bikKIAl7CiAJCXJlcyA9IFBRZXhlYyhjb25uLCBzdHIt PmRhdGEpOwogCQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQog CQl7Ci0JCQlwZ19sb2dfZXJyb3IoImNvdWxkIG5vdCBlbmFibGUgc3Vic2NyaXB0aW9uIFwiJXNc IjogJXMiLAotCQkJCQkJIGRiaW5mby0+c3VibmFtZSwgUFFyZXN1bHRFcnJvck1lc3NhZ2UocmVz KSk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJ CQkJCQkJICJjb3VsZCBub3QgZW5hYmxlIHN1YnNjcmlwdGlvbiBcIiVzXCI6ICVzIiwKKwkJCQkJ CQkgZGJpbmZvLT5zdWJuYW1lLCBQUXJlc3VsdEVycm9yTWVzc2FnZShyZXMpKTsKIAkJCWRpc2Nv bm5lY3RfZGF0YWJhc2UoY29ubiwgdHJ1ZSk7CiAJCX0KIApAQCAtMjE1NCw3ICsyMzI4LDkgQEAg Z2V0X3B1Ymxpc2hlcl9kYXRhYmFzZXMoc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25zICpv cHQsCiAJcmVzID0gUFFleGVjKGNvbm4sICJTRUxFQ1QgZGF0bmFtZSBGUk9NIHBnX2RhdGFiYXNl IFdIRVJFIGRhdGlzdGVtcGxhdGUgPSBmYWxzZSBBTkQgZGF0YWxsb3djb25uIEFORCBkYXRjb25u bGltaXQgPD4gLTIgT1JERVIgQlkgMSIpOwogCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBH UkVTX1RVUExFU19PSykKIAl7Ci0JCXBnX2xvZ19lcnJvcigiY291bGQgbm90IG9idGFpbiBhIGxp c3Qgb2YgZGF0YWJhc2VzOiAlcyIsIFBRcmVzdWx0RXJyb3JNZXNzYWdlKHJlcykpOworCQlwZ19j cmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgImNvdWxk IG5vdCBvYnRhaW4gYSBsaXN0IG9mIGRhdGFiYXNlczogJXMiLAorCQkJCQkJIFBRcmVzdWx0RXJy b3JNZXNzYWdlKHJlcykpOwogCQlQUWNsZWFyKHJlcyk7CiAJCWRpc2Nvbm5lY3RfZGF0YWJhc2Uo Y29ubiwgdHJ1ZSk7CiAJfQpAQCAtMjI1OCw5ICsyNDM0LDExIEBAIG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogI2lmbmRlZiBXSU4zMgogCWlmIChnZXRldWlkKCkgPT0gMCkKIAl7Ci0JCXBn X2xvZ19lcnJvcigiY2Fubm90IGJlIGV4ZWN1dGVkIGJ5IFwicm9vdFwiIik7Ci0JCXBnX2xvZ19l cnJvcl9oaW50KCJZb3UgbXVzdCBydW4gJXMgYXMgdGhlIFBvc3RncmVTUUwgc3VwZXJ1c2VyLiIs Ci0JCQkJCQkgIHByb2duYW1lKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBH X0xPR19QUklNQVJZLAorCQkJCQkJICJjYW5ub3QgYmUgZXhlY3V0ZWQgYnkgXCJyb290XCIiKTsK KwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19ISU5ULAorCQkJCQkJICJZ b3UgbXVzdCBydW4gJXMgYXMgdGhlIFBvc3RncmVTUUwgc3VwZXJ1c2VyLiIsCisJCQkJCQkgcHJv Z25hbWUpOwogCQlleGl0KDEpOwogCX0KICNlbmRpZgpAQCAtMjM1MSw3ICsyNTI5LDkgQEAgbWFp bihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8q IGdldG9wdF9sb25nIGFscmVhZHkgZW1pdHRlZCBhIGNvbXBsYWludCAqLwotCQkJCXBnX2xvZ19l cnJvcl9oaW50KCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iLCBwcm9n bmFtZSk7CisJCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19ISU5ULAor CQkJCQkJCQkgIlRyeSBcIiVzIC0taGVscFwiIGZvciBtb3JlIGluZm9ybWF0aW9uLiIsCisJCQkJ CQkJCSBwcm9nbmFtZSk7CiAJCQkJZXhpdCgxKTsKIAkJfQogCX0KQEAgLTIzNzIsOSArMjU1Miwx MiBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAogCQlpZiAoYmFkX3N3aXRjaCkKIAkJ ewotCQkJcGdfbG9nX2Vycm9yKCJvcHRpb25zICVzIGFuZCAlcyBjYW5ub3QgYmUgdXNlZCB0b2dl dGhlciIsCi0JCQkJCQkgYmFkX3N3aXRjaCwgIi1hLy0tYWxsIik7Ci0JCQlwZ19sb2dfZXJyb3Jf aGludCgiVHJ5IFwiJXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiwgcHJvZ25hbWUp OworCQkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJ CQkJCSAib3B0aW9ucyAlcyBhbmQgJXMgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIiLAorCQkJCQkJ CSBiYWRfc3dpdGNoLCAiLWEvLS1hbGwiKTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VS Uk9SLCBQR19MT0dfSElOVCwKKwkJCQkJCQkgIlRyeSBcIiVzIC0taGVscFwiIGZvciBtb3JlIGlu Zm9ybWF0aW9uLiIsCisJCQkJCQkJIHByb2duYW1lKTsKIAkJCWV4aXQoMSk7CiAJCX0KIAl9CkBA IC0yMzgyLDE3ICsyNTY1LDIxIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCS8qIEFu eSBub24tb3B0aW9uIGFyZ3VtZW50cz8gKi8KIAlpZiAob3B0aW5kIDwgYXJnYykKIAl7Ci0JCXBn X2xvZ19lcnJvcigidG9vIG1hbnkgY29tbWFuZC1saW5lIGFyZ3VtZW50cyAoZmlyc3QgaXMgXCIl c1wiKSIsCi0JCQkJCSBhcmd2W29wdGluZF0pOwotCQlwZ19sb2dfZXJyb3JfaGludCgiVHJ5IFwi JXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiwgcHJvZ25hbWUpOworCQlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgInRvbyBtYW55 IGNvbW1hbmQtbGluZSBhcmd1bWVudHMgKGZpcnN0IGlzIFwiJXNcIikiLAorCQkJCQkJIGFyZ3Zb b3B0aW5kXSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfSElOVCwK KwkJCQkJCSAiVHJ5IFwiJXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiwgcHJvZ25h bWUpOwogCQlleGl0KDEpOwogCX0KIAogCS8qIFJlcXVpcmVkIGFyZ3VtZW50cyAqLwogCWlmIChz dWJzY3JpYmVyX2RpciA9PSBOVUxMKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJubyBzdWJzY3JpYmVy IGRhdGEgZGlyZWN0b3J5IHNwZWNpZmllZCIpOwotCQlwZ19sb2dfZXJyb3JfaGludCgiVHJ5IFwi JXMgLS1oZWxwXCIgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiwgcHJvZ25hbWUpOworCQlwZ19jcmVh dGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgIm5vIHN1YnNj cmliZXIgZGF0YSBkaXJlY3Rvcnkgc3BlY2lmaWVkIik7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdf TE9HX0VSUk9SLCBQR19MT0dfSElOVCwKKwkJCQkJCSAiVHJ5IFwiJXMgLS1oZWxwXCIgZm9yIG1v cmUgaW5mb3JtYXRpb24uIiwgcHJvZ25hbWUpOwogCQlleGl0KDEpOwogCX0KIApAQCAtMjQxOSwy MiArMjYwNiwyNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJICogaWRlbnRpY2Fs IGVudHJpZXMgZm9yIHBoeXNpY2FsIGFuZCBsb2dpY2FsIHJlcGxpY2F0aW9uLiBJZiB0aGVyZSBp cwogCQkgKiBub3QsIHdlIHdvdWxkIGZhaWwgYW55d2F5LgogCQkgKi8KLQkJcGdfbG9nX2Vycm9y KCJubyBwdWJsaXNoZXIgY29ubmVjdGlvbiBzdHJpbmcgc3BlY2lmaWVkIik7Ci0JCXBnX2xvZ19l cnJvcl9oaW50KCJUcnkgXCIlcyAtLWhlbHBcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iLCBwcm9n bmFtZSk7CisJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwK KwkJCQkJCSAibm8gcHVibGlzaGVyIGNvbm5lY3Rpb24gc3RyaW5nIHNwZWNpZmllZCIpOworCQlw Z19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0hJTlQsCisJCQkJCQkgIlRyeSBc IiVzIC0taGVscFwiIGZvciBtb3JlIGluZm9ybWF0aW9uLiIsIHByb2duYW1lKTsKIAkJZXhpdCgx KTsKIAl9CiAKIAlpZiAoZHJ5X3J1bikKLQkJcGdfbG9nX2luZm8oIkV4ZWN1dGluZyBpbiBkcnkt cnVuIG1vZGUuXG4iCi0JCQkJCSJUaGUgdGFyZ2V0IGRpcmVjdG9yeSB3aWxsIG5vdCBiZSBtb2Rp ZmllZC4iKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlks CisJCQkJCQkgIkV4ZWN1dGluZyBpbiBkcnktcnVuIG1vZGUuXG4iCisJCQkJCQkgIlRoZSB0YXJn ZXQgZGlyZWN0b3J5IHdpbGwgbm90IGJlIG1vZGlmaWVkLiIpOwogCi0JcGdfbG9nX2luZm8oInZh bGlkYXRpbmcgcHVibGlzaGVyIGNvbm5lY3Rpb24gc3RyaW5nIik7CisJcGdfY3JlYXRlc3ViX2xv ZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAidmFsaWRhdGluZyBwdWJsaXNo ZXIgY29ubmVjdGlvbiBzdHJpbmciKTsKIAlwdWJfYmFzZV9jb25uaW5mbyA9IGdldF9iYXNlX2Nv bm5pbmZvKG9wdC5wdWJfY29ubmluZm9fc3RyLAogCQkJCQkJCQkJCSAgJmRibmFtZV9jb25uaW5m byk7CiAJaWYgKHB1Yl9iYXNlX2Nvbm5pbmZvID09IE5VTEwpCiAJCWV4aXQoMSk7CiAKLQlwZ19s b2dfaW5mbygidmFsaWRhdGluZyBzdWJzY3JpYmVyIGNvbm5lY3Rpb24gc3RyaW5nIik7CisJcGdf Y3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAidmFsaWRh dGluZyBzdWJzY3JpYmVyIGNvbm5lY3Rpb24gc3RyaW5nIik7CiAJc3ViX2Jhc2VfY29ubmluZm8g PSBnZXRfc3ViX2Nvbm5pbmZvKCZvcHQpOwogCiAJLyoKQEAgLTI0NTEsNyArMjY0Myw4IEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJaWYgKG9wdC5kYXRhYmFzZV9uYW1lcy5oZWFk ID09IE5VTEwpCiAJewotCQlwZ19sb2dfaW5mbygibm8gZGF0YWJhc2Ugd2FzIHNwZWNpZmllZCIp OworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJ CSAibm8gZGF0YWJhc2Ugd2FzIHNwZWNpZmllZCIpOwogCiAJCS8qCiAJCSAqIFRyeSB0byBvYnRh aW4gdGhlIGRibmFtZSBmcm9tIHRoZSBwdWJsaXNoZXIgY29ubmluZm8uIElmIGRibmFtZQpAQCAt MjQ2MiwxNCArMjY1NSwxNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJCXNpbXBs ZV9zdHJpbmdfbGlzdF9hcHBlbmQoJm9wdC5kYXRhYmFzZV9uYW1lcywgZGJuYW1lX2Nvbm5pbmZv KTsKIAkJCW51bV9kYnMrKzsKIAotCQkJcGdfbG9nX2luZm8oImRhdGFiYXNlIG5hbWUgXCIlc1wi IHdhcyBleHRyYWN0ZWQgZnJvbSB0aGUgcHVibGlzaGVyIGNvbm5lY3Rpb24gc3RyaW5nIiwKLQkJ CQkJCWRibmFtZV9jb25uaW5mbyk7CisJCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQ R19MT0dfUFJJTUFSWSwKKwkJCQkJCQkgImRhdGFiYXNlIG5hbWUgXCIlc1wiIHdhcyBleHRyYWN0 ZWQgZnJvbSB0aGUgcHVibGlzaGVyIGNvbm5lY3Rpb24gc3RyaW5nIiwKKwkJCQkJCQkgZGJuYW1l X2Nvbm5pbmZvKTsKIAkJfQogCQllbHNlCiAJCXsKLQkJCXBnX2xvZ19lcnJvcigibm8gZGF0YWJh c2UgbmFtZSBzcGVjaWZpZWQiKTsKLQkJCXBnX2xvZ19lcnJvcl9oaW50KCJUcnkgXCIlcyAtLWhl bHBcIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iLAotCQkJCQkJCSAgcHJvZ25hbWUpOworCQkJcGdf Y3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJCSAibm8g ZGF0YWJhc2UgbmFtZSBzcGVjaWZpZWQiKTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VS Uk9SLCBQR19MT0dfSElOVCwKKwkJCQkJCQkgIlRyeSBcIiVzIC0taGVscFwiIGZvciBtb3JlIGlu Zm9ybWF0aW9uLiIsCisJCQkJCQkJIHByb2duYW1lKTsKIAkJCWV4aXQoMSk7CiAJCX0KIAl9CkBA IC0yNDc3LDIzICsyNjczLDI5IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCS8qIE51 bWJlciBvZiBvYmplY3QgbmFtZXMgbXVzdCBtYXRjaCBudW1iZXIgb2YgZGF0YWJhc2VzICovCiAJ aWYgKG51bV9wdWJzID4gMCAmJiBudW1fcHVicyAhPSBudW1fZGJzKQogCXsKLQkJcGdfbG9nX2Vy cm9yKCJ3cm9uZyBudW1iZXIgb2YgcHVibGljYXRpb24gbmFtZXMgc3BlY2lmaWVkIik7Ci0JCXBn X2xvZ19lcnJvcl9kZXRhaWwoIlRoZSBudW1iZXIgb2Ygc3BlY2lmaWVkIHB1YmxpY2F0aW9uIG5h bWVzICglZCkgbXVzdCBtYXRjaCB0aGUgbnVtYmVyIG9mIHNwZWNpZmllZCBkYXRhYmFzZSBuYW1l cyAoJWQpLiIsCi0JCQkJCQkJbnVtX3B1YnMsIG51bV9kYnMpOworCQlwZ19jcmVhdGVzdWJfbG9n KFBHX0xPR19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgIndyb25nIG51bWJlciBvZiBw dWJsaWNhdGlvbiBuYW1lcyBzcGVjaWZpZWQiKTsKKwkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0df RVJST1IsIFBHX0xPR19ERVRBSUwsCisJCQkJCQkgIlRoZSBudW1iZXIgb2Ygc3BlY2lmaWVkIHB1 YmxpY2F0aW9uIG5hbWVzICglZCkgbXVzdCBtYXRjaCB0aGUgbnVtYmVyIG9mIHNwZWNpZmllZCBk YXRhYmFzZSBuYW1lcyAoJWQpLiIsCisJCQkJCQkgbnVtX3B1YnMsIG51bV9kYnMpOwogCQlleGl0 KDEpOwogCX0KIAlpZiAobnVtX3N1YnMgPiAwICYmIG51bV9zdWJzICE9IG51bV9kYnMpCiAJewot CQlwZ19sb2dfZXJyb3IoIndyb25nIG51bWJlciBvZiBzdWJzY3JpcHRpb24gbmFtZXMgc3BlY2lm aWVkIik7Ci0JCXBnX2xvZ19lcnJvcl9kZXRhaWwoIlRoZSBudW1iZXIgb2Ygc3BlY2lmaWVkIHN1 YnNjcmlwdGlvbiBuYW1lcyAoJWQpIG11c3QgbWF0Y2ggdGhlIG51bWJlciBvZiBzcGVjaWZpZWQg ZGF0YWJhc2UgbmFtZXMgKCVkKS4iLAotCQkJCQkJCW51bV9zdWJzLCBudW1fZGJzKTsKKwkJcGdf Y3JlYXRlc3ViX2xvZyhQR19MT0dfRVJST1IsIFBHX0xPR19QUklNQVJZLAorCQkJCQkJICJ3cm9u ZyBudW1iZXIgb2Ygc3Vic2NyaXB0aW9uIG5hbWVzIHNwZWNpZmllZCIpOworCQlwZ19jcmVhdGVz dWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0RFVEFJTCwKKwkJCQkJCSAiVGhlIG51bWJlciBv ZiBzcGVjaWZpZWQgc3Vic2NyaXB0aW9uIG5hbWVzICglZCkgbXVzdCBtYXRjaCB0aGUgbnVtYmVy IG9mIHNwZWNpZmllZCBkYXRhYmFzZSBuYW1lcyAoJWQpLiIsCisJCQkJCQkgbnVtX3N1YnMsIG51 bV9kYnMpOwogCQlleGl0KDEpOwogCX0KIAlpZiAobnVtX3JlcGxzbG90cyA+IDAgJiYgbnVtX3Jl cGxzbG90cyAhPSBudW1fZGJzKQogCXsKLQkJcGdfbG9nX2Vycm9yKCJ3cm9uZyBudW1iZXIgb2Yg cmVwbGljYXRpb24gc2xvdCBuYW1lcyBzcGVjaWZpZWQiKTsKLQkJcGdfbG9nX2Vycm9yX2RldGFp bCgiVGhlIG51bWJlciBvZiBzcGVjaWZpZWQgcmVwbGljYXRpb24gc2xvdCBuYW1lcyAoJWQpIG11 c3QgbWF0Y2ggdGhlIG51bWJlciBvZiBzcGVjaWZpZWQgZGF0YWJhc2UgbmFtZXMgKCVkKS4iLAot CQkJCQkJCW51bV9yZXBsc2xvdHMsIG51bV9kYnMpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xP R19FUlJPUiwgUEdfTE9HX1BSSU1BUlksCisJCQkJCQkgIndyb25nIG51bWJlciBvZiByZXBsaWNh dGlvbiBzbG90IG5hbWVzIHNwZWNpZmllZCIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19F UlJPUiwgUEdfTE9HX0RFVEFJTCwKKwkJCQkJCSAiVGhlIG51bWJlciBvZiBzcGVjaWZpZWQgcmVw bGljYXRpb24gc2xvdCBuYW1lcyAoJWQpIG11c3QgbWF0Y2ggdGhlIG51bWJlciBvZiBzcGVjaWZp ZWQgZGF0YWJhc2UgbmFtZXMgKCVkKS4iLAorCQkJCQkJIG51bV9yZXBsc2xvdHMsIG51bV9kYnMp OwogCQlleGl0KDEpOwogCX0KIApAQCAtMjUwNCw5ICsyNzA2LDExIEBAIG1haW4oaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQogCQkJZGJpbmZvcy5vYmplY3R0eXBlc190b19jbGVhbiB8PSBPQkpFQ1RU WVBFX1BVQkxJQ0FUSU9OUzsKIAkJZWxzZQogCQl7Ci0JCQlwZ19sb2dfZXJyb3IoImludmFsaWQg b2JqZWN0IHR5cGUgXCIlc1wiIHNwZWNpZmllZCBmb3IgJXMiLAotCQkJCQkJIGNlbGwtPnZhbCwg Ii0tY2xlYW4iKTsKLQkJCXBnX2xvZ19lcnJvcl9oaW50KCJUaGUgdmFsaWQgdmFsdWUgaXM6IFwi JXNcIiIsICJwdWJsaWNhdGlvbnMiKTsKKwkJCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0VSUk9S LCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCQkgImludmFsaWQgb2JqZWN0IHR5cGUgXCIlc1wiIHNw ZWNpZmllZCBmb3IgJXMiLAorCQkJCQkJCSBjZWxsLT52YWwsICItLWNsZWFuIik7CisJCQlwZ19j cmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0hJTlQsCisJCQkJCQkJICJUaGUgdmFs aWQgdmFsdWUgaXM6IFwiJXNcIiIsICJwdWJsaWNhdGlvbnMiKTsKIAkJCWV4aXQoMSk7CiAJCX0K IAl9CkBAIC0yNTUwLDggKzI3NTQsMTAgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJ ICovCiAJaWYgKHN0YXQocGlkZmlsZSwgJnN0YXRidWYpID09IDApCiAJewotCQlwZ19sb2dfZXJy b3IoInN0YW5kYnkgc2VydmVyIGlzIHJ1bm5pbmciKTsKLQkJcGdfbG9nX2Vycm9yX2hpbnQoIlN0 b3AgdGhlIHN0YW5kYnkgc2VydmVyIGFuZCB0cnkgYWdhaW4uIik7CisJCXBnX2NyZWF0ZXN1Yl9s b2coUEdfTE9HX0VSUk9SLCBQR19MT0dfUFJJTUFSWSwKKwkJCQkJCSAic3RhbmRieSBzZXJ2ZXIg aXMgcnVubmluZyIpOworCQlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19FUlJPUiwgUEdfTE9HX0hJ TlQsCisJCQkJCQkgIlN0b3AgdGhlIHN0YW5kYnkgc2VydmVyIGFuZCB0cnkgYWdhaW4uIik7CiAJ CWV4aXQoMSk7CiAJfQogCkBAIC0yNTYwLDcgKzI3NjYsOCBAQCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikKIAkgKiBieSBjb21tYW5kLWxpbmUgb3B0aW9ucykuIFRoZSBnb2FsIGlzIHRvIGF2 b2lkIGNvbm5lY3Rpb25zIGR1cmluZyB0aGUKIAkgKiB0cmFuc2Zvcm1hdGlvbiBzdGVwcy4KIAkg Ki8KLQlwZ19sb2dfaW5mbygic3RhcnRpbmcgdGhlIHN0YW5kYnkgc2VydmVyIHdpdGggY29tbWFu ZC1saW5lIG9wdGlvbnMiKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19MT0df UFJJTUFSWSwKKwkJCQkJICJzdGFydGluZyB0aGUgc3RhbmRieSBzZXJ2ZXIgd2l0aCBjb21tYW5k LWxpbmUgb3B0aW9ucyIpOwogCXN0YXJ0X3N0YW5kYnlfc2VydmVyKCZvcHQsIHRydWUsIGZhbHNl KTsKIAogCS8qIENoZWNrIGlmIHRoZSBzdGFuZGJ5IHNlcnZlciBpcyByZWFkeSBmb3IgbG9naWNh bCByZXBsaWNhdGlvbiAqLwpAQCAtMjU3Niw3ICsyNzgzLDggQEAgbWFpbihpbnQgYXJnYywgY2hh ciAqKmFyZ3YpCiAJICogZ3VhcmFudGVlcyBpdCkgKmJlZm9yZSogY3JlYXRpbmcgdGhlIHJlcGxp Y2F0aW9uIHNsb3RzIGluCiAJICogc2V0dXBfcHVibGlzaGVyKCkuCiAJICovCi0JcGdfbG9nX2lu Zm8oInN0b3BwaW5nIHRoZSBzdWJzY3JpYmVyIik7CisJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0df SU5GTywgUEdfTE9HX1BSSU1BUlksCisJCQkJCSAic3RvcHBpbmcgdGhlIHN1YnNjcmliZXIiKTsK IAlzdG9wX3N0YW5kYnlfc2VydmVyKHN1YnNjcmliZXJfZGlyKTsKIAogCS8qIENyZWF0ZSB0aGUg cmVxdWlyZWQgb2JqZWN0cyBmb3IgZWFjaCBkYXRhYmFzZSBvbiBwdWJsaXNoZXIgKi8KQEAgLTI1 OTAsNyArMjc5OCw4IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCSAqIHVudGlsIGFj Y2VwdGluZyBjb25uZWN0aW9ucy4gV2UgZG9uJ3Qgd2FudCB0byBzdGFydCBsb2dpY2FsIHJlcGxp Y2F0aW9uCiAJICogZHVyaW5nIHNldHVwLgogCSAqLwotCXBnX2xvZ19pbmZvKCJzdGFydGluZyB0 aGUgc3Vic2NyaWJlciIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19Q UklNQVJZLAorCQkJCQkgInN0YXJ0aW5nIHRoZSBzdWJzY3JpYmVyIik7CiAJc3RhcnRfc3RhbmRi eV9zZXJ2ZXIoJm9wdCwgdHJ1ZSwgdHJ1ZSk7CiAKIAkvKiBXYWl0aW5nIHRoZSBzdWJzY3JpYmVy IHRvIGJlIHByb21vdGVkICovCkBAIC0yNjExLDcgKzI4MjAsOCBAQCBtYWluKGludCBhcmdjLCBj aGFyICoqYXJndikKIAlkcm9wX2ZhaWxvdmVyX3JlcGxpY2F0aW9uX3Nsb3RzKGRiaW5mb3MuZGJp bmZvKTsKIAogCS8qIFN0b3AgdGhlIHN1YnNjcmliZXIgKi8KLQlwZ19sb2dfaW5mbygic3RvcHBp bmcgdGhlIHN1YnNjcmliZXIiKTsKKwlwZ19jcmVhdGVzdWJfbG9nKFBHX0xPR19JTkZPLCBQR19M T0dfUFJJTUFSWSwKKwkJCQkJICJzdG9wcGluZyB0aGUgc3Vic2NyaWJlciIpOwogCXN0b3Bfc3Rh bmRieV9zZXJ2ZXIoc3Vic2NyaWJlcl9kaXIpOwogCiAJLyogQ2hhbmdlIHN5c3RlbSBpZGVudGlm aWVyIGZyb20gc3Vic2NyaWJlciAqLwpAQCAtMjYxOSw3ICsyODI5LDggQEAgbWFpbihpbnQgYXJn YywgY2hhciAqKmFyZ3YpCiAKIAlzdWNjZXNzID0gdHJ1ZTsKIAotCXBnX2xvZ19pbmZvKCJEb25l ISIpOworCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAorCQkJ CQkgIkRvbmUhIik7CiAKIAlyZXR1cm4gMDsKIH0KLS0gCjIuNDcuMwoK --_003_TYRPR01MB12156F431E4B83ECFF14034BDF54CATYRPR01MB12156jp_ Content-Type: application/octet-stream; name="v14-0002-Add-a-new-argument-l-logdir-to-pg_createsubscrib.patch" Content-Description: v14-0002-Add-a-new-argument-l-logdir-to-pg_createsubscrib.patch Content-Disposition: attachment; filename="v14-0002-Add-a-new-argument-l-logdir-to-pg_createsubscrib.patch"; size=15900; creation-date="Fri, 20 Mar 2026 11:18:13 GMT"; modification-date="Fri, 20 Mar 2026 11:37:45 GMT" Content-Transfer-Encoding: base64 RnJvbSA4ZDE1NDc5MDU4MjRlNGE5Mjk5YjExYmI4ZGUyYTlmZjkzYjNlYTgzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHeWFuIFNyZWVqaXRoIDxneWFuLnNyZWVqaXRoQGdtYWlsLmNv bT4KRGF0ZTogVGh1LCAxOSBNYXIgMjAyNiAxNDowODowNyAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg djE0IDIvMl0gQWRkIGEgbmV3IGFyZ3VtZW50IC1sIDxsb2dkaXI+IHRvCiBwZ19jcmVhdGVzdWJz Y3JpYmVyLgoKRW5hYmxpbmcgdGhlIG9wdGlvbiB0byB3cml0ZSBtZXNzYWdlcyB0byBsb2cgZmls ZXMgaW4gdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkuCkEgbmV3IGRpcmVjdG9yeSBpcyBjcmVhdGVk IGlmIHJlcXVpcmVkLiBBIHN1YmRpcmVjdG9yeSBpcyBjcmVhdGVkIHdpdGggdGltZXN0YW1wIGFz IGl0cyBuYW1lLCBhbmQgaXQgd2lsbCBjb250YWluIHR3byBuZXcgbG9nZmlsZXM6CjEuIHBnX2Ny ZWF0ZXN1YnNjcmliZXJfc2VydmVyLmxvZyAgLSBjYXB0dXJlcyBtZXNzYWdlcyByZWxhdGVkIHRv IHN0YXJ0aW5nIGFuZCBzdG9wcGluZyB0aGUgc3RhbmRieSBzZXJ2ZXIuCjIuIHBnX2NyZWF0ZXN1 YnNjcmliZXJfaW50ZXJuYWwubG9nIC0gY2FwdHVyZXMgaW50ZXJuYWwgZGlhZ25vc3RpYyBvdXRw dXQgZnJvbSBwZ19jcmVhdGVzdWJzY3JpYmVyLgoKRm9yIGV4YW1wbGUsIGlmIHdlIHNwZWNpZnkg LWwgYWJjIGFzIGFuIGFyZ3VtZW50LCBhbmQgaWYgdGhlIHRpbWVzdGFtcCBvbiBydW5uaW5nIGl0 IGlzIDIwMjYwMTE5VDIwNDMxNy4yMDQsIGEgZGlyZWN0b3J5IGFiYyBpcyBjcmVhdGVkIGlmIGl0 IGRvZXNuJ3QgZXhpc3QgYWxyZWFkeSwgd2l0aCAyMDI2MDExOVQyMDQzMTcuMjA0IGFzIGl0cyBz dWJkaXJlY3RvcnkgYW5kIGl0IHdpbGwgY29udGFpbiB0aGUgdHdvIGxvZyBmaWxlcyBwZ19jcmVh dGVzdWJzY3JpYmVyX3NlcnZlci5sb2cgYW5kIHBnX2NyZWF0ZXN1YnNjcmliZXJfaW50ZXJuYWwu bG9nCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwgICAgIHwg IDI5ICsrKwogc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYyAgIHwg MTcyICsrKysrKysrKysrKysrKysrLQogLi4uL3QvMDQwX3BnX2NyZWF0ZXN1YnNjcmliZXIucGwg ICAgICAgICAgICAgIHwgIDQxICsrKystCiAzIGZpbGVzIGNoYW5nZWQsIDIzMCBpbnNlcnRpb25z KCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2Ny ZWF0ZXN1YnNjcmliZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfY3JlYXRlc3Vic2NyaWJl ci5zZ21sCmluZGV4IGNmNDVmZjM1NzNkLi5mZjYzNWJhMjZjYiAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9wZ19jcmVhdGVzdWJzY3JpYmVyLnNnbWwKQEAgLTEzNiw2ICsxMzYsMzUgQEAgUG9zdGdyZVNR TCBkb2N1bWVudGF0aW9uCiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAK KyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48b3B0aW9uPi1sIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5kaXJlY3Rvcnk8L3JlcGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4K KyAgICAgPHRlcm0+PG9wdGlvbj4tLWxvZ2Rpcj08cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+ZGlyZWN0b3J5PC9yZXBsYWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgIDxsaXN0aXRl bT4KKyAgICAgIDxwYXJhPgorICAgICAgIFNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIGxvZyBkaXJl Y3RvcnkuIEEgbmV3IGRpcmVjdG9yeSBpcyBjcmVhdGVkIHdpdGgKKyAgICAgICB0aGlzIG5hbWUg aWYgaXQgZG9lcyBub3QgZXhpc3QuIEEgc3ViZGlyZWN0b3J5IHdpdGggYSB0aW1lc3RhbXAKKyAg ICAgICBpbmRpY2F0aW5nIHRoZSB0aW1lIGF0IHdoaWNoIDxhcHBsaWNhdGlvbj5wZ19jcmVhdGVz dWJzY3JpYmVyPC9hcHBsaWNhdGlvbj4KKyAgICAgICB3YXMgcnVuIHdpbGwgYmUgY3JlYXRlZC4g VGhlIGZvbGxvd2luZyB0d28gbG9nIGZpbGVzIHdpbGwgYmUgY3JlYXRlZCBpbgorICAgICAgIHRo ZSBzdWJkaXJlY3Rvcnkgd2l0aCBhIHVtYXNrIG9mIDA3NyBzbyB0aGF0IGFjY2VzcyBpcyBkaXNh bGxvd2VkIHRvCisgICAgICAgb3RoZXIgdXNlcnMgYnkgZGVmYXVsdC4KKyAgICAgICA8aXRlbWl6 ZWRsaXN0PgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICA8 bGl0ZXJhbD5wZ19jcmVhdGVzdWJzY3JpYmVyX3NlcnZlci5sb2c8L2xpdGVyYWw+IHdoaWNoIGNh cHR1cmVzIGxvZ3MKKyAgICAgICAgICByZWxhdGVkIHRvIHN0b3BwaW5nIGFuZCBzdGFydGluZyB0 aGUgc3RhbmRieSBzZXJ2ZXIsCisgICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+ CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIDxsaXRlcmFs PnBnX2NyZWF0ZXN1YnNjcmliZXJfaW50ZXJuYWwubG9nPC9saXRlcmFsPiB3aGljaCBjYXB0dXJl cworICAgICAgICAgIGludGVybmFsIGRpYWdub3N0aWMgb3V0cHV0ICh2YWxpZGF0aW9ucywgY2hl Y2tzLCBldGMuKQorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAg IDwvaXRlbWl6ZWRsaXN0PgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwv dmFybGlzdGVudHJ5PgorCiAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgPHRlcm0+PG9wdGlvbj4t bjwvb3B0aW9uPjwvdGVybT4KICAgICAgPHRlcm0+PG9wdGlvbj4tLWRyeS1ydW48L29wdGlvbj48 L3Rlcm0+CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvcGdfY3JlYXRlc3Vic2Ny aWJlci5jIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3BnX2NyZWF0ZXN1YnNjcmliZXIuYwppbmRl eCBjM2RmODMwMjVkNy4uYjliOGQ0MGE0ZjYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfYmFzZWJh Y2t1cC9wZ19jcmVhdGVzdWJzY3JpYmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3Bn X2NyZWF0ZXN1YnNjcmliZXIuYwpAQCAtNTUsMTAgKzU1LDE0IEBACiAjZGVmaW5lIElOQ0xVREVE X0NPTkZfRklMRQkJCSJwZ19jcmVhdGVzdWJzY3JpYmVyLmNvbmYiCiAjZGVmaW5lIElOQ0xVREVE X0NPTkZfRklMRV9ESVNBQkxFRAlJTkNMVURFRF9DT05GX0ZJTEUgIi5kaXNhYmxlZCIKIAorI2Rl ZmluZSBTRVJWRVJfTE9HX0ZJTEVfTkFNRSAicGdfY3JlYXRlc3Vic2NyaWJlcl9zZXJ2ZXIiCisj ZGVmaW5lIElOVEVSTkFMX0xPR19GSUxFX05BTUUgInBnX2NyZWF0ZXN1YnNjcmliZXJfaW50ZXJu YWwiCisKIC8qIENvbW1hbmQtbGluZSBvcHRpb25zICovCiBzdHJ1Y3QgQ3JlYXRlU3Vic2NyaWJl ck9wdGlvbnMKIHsKIAljaGFyCSAgICpjb25maWdfZmlsZTsJLyogY29uZmlndXJhdGlvbiBmaWxl ICovCisJY2hhcgkgICAqbG9nX2RpcjsJCS8qIGxvZyBkaXJlY3RvcnkgbmFtZSAqLwogCWNoYXIJ ICAgKnB1Yl9jb25uaW5mb19zdHI7CS8qIHB1Ymxpc2hlciBjb25uZWN0aW9uIHN0cmluZyAqLwog CWNoYXIJICAgKnNvY2tldF9kaXI7CQkvKiBkaXJlY3RvcnkgZm9yIFVuaXgtZG9tYWluIHNvY2tl dCwgaWYgYW55ICovCiAJY2hhcgkgICAqc3ViX3BvcnQ7CQkvKiBzdWJzY3JpYmVyIHBvcnQgbnVt YmVyICovCkBAIC0xNTUsOCArMTU5LDE0IEBAIHN0YXRpYyB2b2lkIGdldF9wdWJsaXNoZXJfZGF0 YWJhc2VzKHN0cnVjdCBDcmVhdGVTdWJzY3JpYmVyT3B0aW9ucyAqb3B0LAogc3RhdGljIHZvaWQg cGdfY3JlYXRlc3ViX2xvZyhlbnVtIHBnX2xvZ19sZXZlbCwgZW51bSBwZ19sb2dfcGFydCwKIAkJ CQkJCQkgY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LC4uLikKIAkJCXBnX2F0dHJpYnV0ZV9w cmludGYoMywgNCk7CitzdGF0aWMgdm9pZCBwZ19jcmVhdGVzdWJfbG9nX3YoZW51bSBwZ19sb2df bGV2ZWwgbGV2ZWwsIGVudW0gcGdfbG9nX3BhcnQgcGFydCwKKwkJCQkJCQkgICBjb25zdCBjaGFy ICpwZ19yZXN0cmljdCBmbXQsIHZhX2xpc3QgYXJncykKKwkJCXBnX2F0dHJpYnV0ZV9wcmludGYo MywgMCk7CiBwZ19ub3JldHVybiBzdGF0aWMgdm9pZCBwZ19mYXRhbChjb25zdCBjaGFyICpwZ19y ZXN0cmljdCBmbXQsLi4uKQogCQkJcGdfYXR0cmlidXRlX3ByaW50ZigxLCAyKTsKK3N0YXRpYyB2 b2lkIGludGVybmFsX2xvZ19maWxlX3dyaXRlKGVudW0gcGdfbG9nX2xldmVsIGxldmVsLAorCQkJ CQkJCQkJY29uc3QgY2hhciAqcGdfcmVzdHJpY3QgZm10LCB2YV9saXN0IGFyZ3MpCisJCQlwZ19h dHRyaWJ1dGVfcHJpbnRmKDIsIDApOwogCiAjZGVmaW5lCVdBSVRfSU5URVJWQUwJMQkJLyogMSBz ZWNvbmQgKi8KIApAQCAtMTc4LDYgKzE4OCw5IEBAIHN0YXRpYyBwZ19wcm5nX3N0YXRlIHBybmdf c3RhdGU7CiBzdGF0aWMgY2hhciAqcGdfY3RsX3BhdGggPSBOVUxMOwogc3RhdGljIGNoYXIgKnBn X3Jlc2V0d2FsX3BhdGggPSBOVUxMOwogCitzdGF0aWMgRklMRSAqaW50ZXJuYWxfbG9nX2ZpbGVf ZnAgPSBOVUxMOwkvKiBGaWxlIHB0ciB0byBsb2cgYWxsIG1lc3NhZ2VzIHRvICovCitzdGF0aWMg Y2hhciBsb2dkaXJbTUFYUEdQQVRIXTsJLyogRGlyZWN0b3J5IGxvZyBmaWxlcyBhcmUgcHV0IChp ZiBzcGVjaWZpZWQpICovCisKIC8qIHN0YW5kYnkgLyBzdWJzY3JpYmVyIGRhdGEgZGlyZWN0b3J5 ICovCiBzdGF0aWMgY2hhciAqc3Vic2NyaWJlcl9kaXIgPSBOVUxMOwogCkBAIC0xODYsOCArMTk5 LDI4IEBAIHN0YXRpYyBib29sIHN0YW5kYnlfcnVubmluZyA9IGZhbHNlOwogc3RhdGljIGJvb2wg cmVjb3ZlcnlfcGFyYW1zX3NldCA9IGZhbHNlOwogCiAvKgotICogUmVwb3J0IGEgbWVzc2FnZSB3 aXRoIGEgZ2l2ZW4gbG9nIGxldmVsCisgKiBSZXBvcnQgYSBtZXNzYWdlIHdpdGggYSBnaXZlbiBs b2cgbGV2ZWwgdG8gc3RkZXJyIGFuZCBsb2cgZmlsZQorICogKGlmIHNwZWNpZmllZCkuCiAgKi8K K3N0YXRpYyB2b2lkCitwZ19jcmVhdGVzdWJfbG9nX3YoZW51bSBwZ19sb2dfbGV2ZWwgbGV2ZWws IGVudW0gcGdfbG9nX3BhcnQgcGFydCwKKwkJCQkgICBjb25zdCBjaGFyICpwZ19yZXN0cmljdCBm bXQsIHZhX2xpc3QgYXJncykKK3sKKwlpZiAoaW50ZXJuYWxfbG9nX2ZpbGVfZnAgIT0gTlVMTCkK Kwl7CisJCS8qIE91dHB1dCB0byBib3RoIHN0ZGVyciBhbmQgdGhlIGxvZyBmaWxlICovCisJCXZh X2xpc3QJCWFyZ19jcHk7CisKKwkJdmFfY29weShhcmdfY3B5LCBhcmdzKTsKKwkJcGdfbG9nX2dl bmVyaWNfdihsZXZlbCwgcGFydCwgZm10LCBhcmdfY3B5KTsKKwkJdmFfZW5kKGFyZ19jcHkpOwor CisJCWludGVybmFsX2xvZ19maWxlX3dyaXRlKGxldmVsLCBmbXQsIGFyZ3MpOworCX0KKwllbHNl CisJCXBnX2xvZ19nZW5lcmljX3YobGV2ZWwsIHBhcnQsIGZtdCwgYXJncyk7Cit9CisKIHN0YXRp YyB2b2lkCiBwZ19jcmVhdGVzdWJfbG9nKGVudW0gcGdfbG9nX2xldmVsIGxldmVsLCBlbnVtIHBn X2xvZ19wYXJ0IHBhcnQsCiAJCQkJIGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCkBA IC0xOTYsNyArMjI5LDcgQEAgcGdfY3JlYXRlc3ViX2xvZyhlbnVtIHBnX2xvZ19sZXZlbCBsZXZl bCwgZW51bSBwZ19sb2dfcGFydCBwYXJ0LAogCiAJdmFfc3RhcnQoYXJncywgZm10KTsKIAotCXBn X2xvZ19nZW5lcmljX3YobGV2ZWwsIHBhcnQsIGZtdCwgYXJncyk7CisJcGdfY3JlYXRlc3ViX2xv Z192KGxldmVsLCBwYXJ0LCBmbXQsIGFyZ3MpOwogCiAJdmFfZW5kKGFyZ3MpOwogfQpAQCAtMjEx LDcgKzI0NCw3IEBAIHBnX2ZhdGFsKGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwuLi4pCiAK IAl2YV9zdGFydChhcmdzLCBmbXQpOwogCi0JcGdfbG9nX2dlbmVyaWNfdihQR19MT0dfRVJST1Is IFBHX0xPR19QUklNQVJZLCBmbXQsIGFyZ3MpOworCXBnX2NyZWF0ZXN1Yl9sb2dfdihQR19MT0df RVJST1IsIFBHX0xPR19QUklNQVJZLCBmbXQsIGFyZ3MpOwogCiAJdmFfZW5kKGFyZ3MpOwogCkBA IC0zMTksNiArMzUyLDEyIEBAIGNsZWFudXBfb2JqZWN0c19hdGV4aXQodm9pZCkKIAogCWlmIChz dGFuZGJ5X3J1bm5pbmcpCiAJCXN0b3Bfc3RhbmRieV9zZXJ2ZXIoc3Vic2NyaWJlcl9kaXIpOwor CisJaWYgKGludGVybmFsX2xvZ19maWxlX2ZwICE9IE5VTEwpCisJeworCQlmY2xvc2UoaW50ZXJu YWxfbG9nX2ZpbGVfZnApOworCQlpbnRlcm5hbF9sb2dfZmlsZV9mcCA9IE5VTEw7CisJfQogfQog CiBzdGF0aWMgdm9pZApAQCAtMzMzLDYgKzM3Miw3IEBAIHVzYWdlKHZvaWQpCiAJCQkgIiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhYmFzZXMgYW5kIGRhdGFiYXNlcyB0aGF0 IGRvbid0IGFsbG93IGNvbm5lY3Rpb25zXG4iKSk7CiAJcHJpbnRmKF8oIiAgLWQsIC0tZGF0YWJh c2U9REJOQU1FICAgICAgICAgICBkYXRhYmFzZSBpbiB3aGljaCB0byBjcmVhdGUgYSBzdWJzY3Jp cHRpb25cbiIpKTsKIAlwcmludGYoXygiICAtRCwgLS1wZ2RhdGE9REFUQURJUiAgICAgICAgICAg IGxvY2F0aW9uIGZvciB0aGUgc3Vic2NyaWJlciBkYXRhIGRpcmVjdG9yeVxuIikpOworCXByaW50 ZihfKCIgIC1sLCAtLWxvZ2Rpcj1MT0dESVIgICAgICAgICAgICAgbG9jYXRpb24gZm9yIHRoZSBs b2cgZGlyZWN0b3J5XG4iKSk7CiAJcHJpbnRmKF8oIiAgLW4sIC0tZHJ5LXJ1biAgICAgICAgICAg ICAgICAgICBkcnkgcnVuLCBqdXN0IHNob3cgd2hhdCB3b3VsZCBiZSBkb25lXG4iKSk7CiAJcHJp bnRmKF8oIiAgLXAsIC0tc3Vic2NyaWJlci1wb3J0PVBPUlQgICAgICBzdWJzY3JpYmVyIHBvcnQg bnVtYmVyIChkZWZhdWx0ICVzKVxuIiksIERFRkFVTFRfU1VCX1BPUlQpOwogCXByaW50ZihfKCIg IC1QLCAtLXB1Ymxpc2hlci1zZXJ2ZXI9Q09OTlNUUiAgcHVibGlzaGVyIGNvbm5lY3Rpb24gc3Ry aW5nXG4iKSk7CkBAIC03NjcsNiArODA3LDcgQEAgbW9kaWZ5X3N1YnNjcmliZXJfc3lzaWQoY29u c3Qgc3RydWN0IENyZWF0ZVN1YnNjcmliZXJPcHRpb25zICpvcHQpCiAJYm9vbAkJY3JjX29rOwog CXN0cnVjdCB0aW1ldmFsIHR2OwogCisJY2hhcgkgICAqb3V0X2ZpbGU7CiAJY2hhcgkgICAqY21k X3N0cjsKIAogCXBnX2NyZWF0ZXN1Yl9sb2coUEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLApA QCAtODA1LDggKzg0NiwxOCBAQCBtb2RpZnlfc3Vic2NyaWJlcl9zeXNpZChjb25zdCBzdHJ1Y3Qg Q3JlYXRlU3Vic2NyaWJlck9wdGlvbnMgKm9wdCkKIAkJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0df SU5GTywgUEdfTE9HX1BSSU1BUlksCiAJCQkJCQkgInJ1bm5pbmcgcGdfcmVzZXR3YWwgb24gdGhl IHN1YnNjcmliZXIiKTsKIAotCWNtZF9zdHIgPSBwc3ByaW50ZigiXCIlc1wiIC1EIFwiJXNcIiA+ IFwiJXNcIiIsIHBnX3Jlc2V0d2FsX3BhdGgsCi0JCQkJCSAgIHN1YnNjcmliZXJfZGlyLCBERVZO VUxMKTsKKwkvKgorCSAqIFJlZGlyZWN0aW5nIHRoZSBvdXRwdXQgdG8gdGhlIGxvZ2ZpbGUgaWYg c3BlY2lmaWVkLiBTaW5jZSB0aGUgb3V0cHV0CisJICogd291bGQgYmUgdmVyeSBzaG9ydCwgYXJv dW5kIG9uZSBsaW5lLCB3ZSBkbyBub3QgcHJvdmlkZSBhIHNlcGFyYXRlIGZpbGUKKwkgKiBmb3Ig aXQ7IGl0J3MgZG9uZSBhcyBhIHBhcnQgb2YgdGhlIHNlcnZlciBsb2cuCisJICovCisJaWYgKG9w dC0+bG9nX2RpcikKKwkJb3V0X2ZpbGUgPSBwc3ByaW50ZigiJXMvJXMubG9nIiwgbG9nZGlyLCBT RVJWRVJfTE9HX0ZJTEVfTkFNRSk7CisJZWxzZQorCQlvdXRfZmlsZSA9IERFVk5VTEw7CisKKwlj bWRfc3RyID0gcHNwcmludGYoIlwiJXNcIiAtRCBcIiVzXCIgPj4gXCIlc1wiIiwgcGdfcmVzZXR3 YWxfcGF0aCwKKwkJCQkJICAgc3Vic2NyaWJlcl9kaXIsIG91dF9maWxlKTsKIAogCXBnX2NyZWF0 ZXN1Yl9sb2coUEdfTE9HX0RFQlVHLCBQR19MT0dfUFJJTUFSWSwKIAkJCQkJICJwZ19yZXNldHdh bCBjb21tYW5kIGlzOiAlcyIsIGNtZF9zdHIpOwpAQCAtMTAyOSw2ICsxMDgwLDg5IEBAIHNlcnZl cl9pc19pbl9yZWNvdmVyeShQR2Nvbm4gKmNvbm4pCiAJcmV0dXJuIHJldCA9PSAwOwogfQogCitz dGF0aWMgdm9pZAoraW50ZXJuYWxfbG9nX2ZpbGVfd3JpdGUoZW51bSBwZ19sb2dfbGV2ZWwgbGV2 ZWwsIGNvbnN0IGNoYXIgKnBnX3Jlc3RyaWN0IGZtdCwKKwkJCQkJCXZhX2xpc3QgYXJncykKK3sK KwlBc3NlcnQoaW50ZXJuYWxfbG9nX2ZpbGVfZnApOworCisJLyogRG8gbm90aGluZyBpZiBsb2cg bGV2ZWwgaXMgdG9vIGxvdy4gKi8KKwlpZiAobGV2ZWwgPCBfX3BnX2xvZ19sZXZlbCkKKwkJcmV0 dXJuOworCisJdmZwcmludGYoaW50ZXJuYWxfbG9nX2ZpbGVfZnAsIF8oZm10KSwgYXJncyk7CisK KwlmcHJpbnRmKGludGVybmFsX2xvZ19maWxlX2ZwLCAiXG4iKTsKKwlmZmx1c2goaW50ZXJuYWxf bG9nX2ZpbGVfZnApOworfQorCisvKgorICogT3BlbiBhIG5ldyBsb2dmaWxlIHdpdGggcHJvcGVy IHBlcm1pc3Npb25zLgorICogRnJvbSBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3N5c2xvZ2dlci5j CisgKi8KK3N0YXRpYyBGSUxFICoKK2xvZ2ZpbGVfb3Blbihjb25zdCBjaGFyICpmaWxlbmFtZSwg Y29uc3QgY2hhciAqbW9kZSkKK3sKKwlGSUxFCSAgICpmaDsKKwltb2RlX3QJCW91bWFzazsKKwor CW91bWFzayA9IHVtYXNrKChtb2RlX3QpICgofihTX0lSVVNSIHwgU19JV1VTUikpICYgKFNfSVJX WFUgfCBTX0lSV1hHIHwgU19JUldYTykpKTsKKwlmaCA9IGZvcGVuKGZpbGVuYW1lLCBtb2RlKTsK Kwl1bWFzayhvdW1hc2spOworCisJaWYgKGZoKQorCXsKKwkJc2V0dmJ1ZihmaCwgTlVMTCwgUEdf SU9MQkYsIDApOworCisjaWZkZWYgV0lOMzIKKwkJLyogdXNlIENSTEYgbGluZSBlbmRpbmdzIG9u IFdpbmRvd3MgKi8KKwkJX3NldG1vZGUoX2ZpbGVubyhmaCksIF9PX1RFWFQpOworI2VuZGlmCisJ fQorCWVsc2UKKwkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGxvZyBmaWxlIFwiJXNcIjogJW0i LAorCQkJCSBmaWxlbmFtZSk7CisKKwlyZXR1cm4gZmg7Cit9CisKK3N0YXRpYyB2b2lkCittYWtl X291dHB1dF9kaXJzKGNvbnN0IGNoYXIgKmxvZ19iYXNlZGlyKQoreworCWNoYXIJCXRpbWVzdGFt cFsxMjhdOworCXN0cnVjdCB0aW1ldmFsIHR2YWw7CisJdGltZV90CQlub3c7CisJc3RydWN0IHRt CXRtYnVmOworCWludAkJCWxlbjsKKworCS8qIEdlbmVyYXRlIHRpbWVzdGFtcCAqLworCWdldHRp bWVvZmRheSgmdHZhbCwgTlVMTCk7CisJbm93ID0gdHZhbC50dl9zZWM7CisKKwlzdHJmdGltZSh0 aW1lc3RhbXAsIHNpemVvZih0aW1lc3RhbXApLCAiJVklbSVkVCVIJU0lUyIsCisJCQkgbG9jYWx0 aW1lX3IoJm5vdywgJnRtYnVmKSk7CisKKwkvKiBhcHBlbmQgbWlsbGlzZWNvbmRzICovCisJc25w cmludGYodGltZXN0YW1wICsgc3RybGVuKHRpbWVzdGFtcCksCisJCQkgc2l6ZW9mKHRpbWVzdGFt cCkgLSBzdHJsZW4odGltZXN0YW1wKSwgIi4lMDN1IiwKKwkJCSAodW5zaWduZWQgaW50KSAodHZh bC50dl91c2VjIC8gMTAwMCkpOworCisJLyogQnVpbGQgdGltZXN0YW1wIGRpcmVjdG9yeSBwYXRo ICovCisJbGVuID0gc25wcmludGYobG9nZGlyLCBNQVhQR1BBVEgsICIlcy8lcyIsIGxvZ19iYXNl ZGlyLCB0aW1lc3RhbXApOworCisJaWYgKGxlbiA+PSBNQVhQR1BBVEgpCisJCXBnX2ZhdGFsKCJk aXJlY3RvcnkgcGF0aCBmb3IgbG9nIGZpbGVzLCAlcy8lcywgaXMgdG9vIGxvbmciLAorCQkJCSBs b2dkaXIsIHRpbWVzdGFtcCk7CisKKwkvKiBDcmVhdGUgYmFzZSBkaXJlY3RvcnkgKGlnbm9yZSBp ZiBleGlzdHMpICovCisJaWYgKG1rZGlyKGxvZ19iYXNlZGlyLCBTX0lSV1hVKSA8IDAgJiYgZXJy bm8gIT0gRUVYSVNUKQorCQlwZ19mYXRhbCgiY291bGQgbm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIl c1wiOiAlbSIsIGxvZ19iYXNlZGlyKTsKKworCS8qIENyZWF0ZSBCQVNFX0RJUi8kdGltZXN0YW1w ICovCisJaWYgKG1rZGlyKGxvZ2RpciwgU19JUldYVSkgPCAwKQorCQlwZ19mYXRhbCgiY291bGQg bm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsIGxvZ2Rpcik7Cit9CisKIC8qCiAgKiBJ cyB0aGUgcHJpbWFyeSBzZXJ2ZXIgcmVhZHkgZm9yIGxvZ2ljYWwgcmVwbGljYXRpb24/CiAgKgpA QCAtMTc4Nyw2ICsxOTIxLDkgQEAgc3RhcnRfc3RhbmRieV9zZXJ2ZXIoY29uc3Qgc3RydWN0IENy ZWF0ZVN1YnNjcmliZXJPcHRpb25zICpvcHQsIGJvb2wgcmVzdHJpY3RlZF8KIAlpZiAocmVzdHJp Y3RfbG9naWNhbF93b3JrZXIpCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHBnX2N0bF9jbWQsICIg LW8gXCItYyBtYXhfbG9naWNhbF9yZXBsaWNhdGlvbl93b3JrZXJzPTBcIiIpOwogCisJaWYgKG9w dC0+bG9nX2RpcikKKwkJYXBwZW5kUFFFeHBCdWZmZXIocGdfY3RsX2NtZCwgIiAtbCBcIiVzLyVz LmxvZ1wiIiwgbG9nZGlyLCBTRVJWRVJfTE9HX0ZJTEVfTkFNRSk7CisKIAlwZ19jcmVhdGVzdWJf bG9nKFBHX0xPR19ERUJVRywgUEdfTE9HX1BSSU1BUlksCiAJCQkJCSAicGdfY3RsIGNvbW1hbmQg aXM6ICVzIiwgcGdfY3RsX2NtZC0+ZGF0YSk7CiAJcmMgPSBzeXN0ZW0ocGdfY3RsX2NtZC0+ZGF0 YSk7CkBAIC0yMzU3LDYgKzI0OTQsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJ eyJhbGwiLCBub19hcmd1bWVudCwgTlVMTCwgJ2EnfSwKIAkJeyJkYXRhYmFzZSIsIHJlcXVpcmVk X2FyZ3VtZW50LCBOVUxMLCAnZCd9LAogCQl7InBnZGF0YSIsIHJlcXVpcmVkX2FyZ3VtZW50LCBO VUxMLCAnRCd9LAorCQl7ImxvZ2RpciIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnbCd9LAog CQl7ImRyeS1ydW4iLCBub19hcmd1bWVudCwgTlVMTCwgJ24nfSwKIAkJeyJzdWJzY3JpYmVyLXBv cnQiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ3AnfSwKIAkJeyJwdWJsaXNoZXItc2VydmVy IiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsICdQJ30sCkBAIC0yNDE1LDYgKzI1NTMsNyBAQCBt YWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkvKiBEZWZhdWx0IHNldHRpbmdzICovCiAJc3Vi c2NyaWJlcl9kaXIgPSBOVUxMOwogCW9wdC5jb25maWdfZmlsZSA9IE5VTEw7CisJb3B0LmxvZ19k aXIgPSBOVUxMOwogCW9wdC5wdWJfY29ubmluZm9fc3RyID0gTlVMTDsKIAlvcHQuc29ja2V0X2Rp ciA9IE5VTEw7CiAJb3B0LnN1Yl9wb3J0ID0gREVGQVVMVF9TVUJfUE9SVDsKQEAgLTI0NDUsNyAr MjU4NCw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJZ2V0X3Jlc3RyaWN0ZWRf dG9rZW4oKTsKIAotCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJhZDpEOm5w OlA6czp0OlRVOnYiLAorCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJhZDpE Omw6bnA6UDpzOnQ6VFU6diIsCiAJCQkJCQkJbG9uZ19vcHRpb25zLCAmb3B0aW9uX2luZGV4KSkg IT0gLTEpCiAJewogCQlzd2l0Y2ggKGMpCkBAIC0yNDY2LDYgKzI2MDUsMTAgQEAgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAJCQkJc3Vic2NyaWJlcl9kaXIgPSBwZ19zdHJkdXAob3B0YXJn KTsKIAkJCQljYW5vbmljYWxpemVfcGF0aChzdWJzY3JpYmVyX2Rpcik7CiAJCQkJYnJlYWs7CisJ CQljYXNlICdsJzoKKwkJCQlvcHQubG9nX2RpciA9IHBnX3N0cmR1cChvcHRhcmcpOworCQkJCWNh bm9uaWNhbGl6ZV9wYXRoKG9wdC5sb2dfZGlyKTsKKwkJCQlicmVhazsKIAkJCWNhc2UgJ24nOgog CQkJCWRyeV9ydW4gPSB0cnVlOwogCQkJCWJyZWFrOwpAQCAtMjYxMyw2ICsyNzU2LDIwIEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQlleGl0KDEpOwogCX0KIAorCWlmIChvcHQubG9n X2RpciAhPSBOVUxMKQorCXsKKwkJY2hhcgkgICAqaW50ZXJuYWxfbG9nX2ZpbGU7CisKKwkJbWFr ZV9vdXRwdXRfZGlycyhvcHQubG9nX2Rpcik7CisJCWludGVybmFsX2xvZ19maWxlID0gcHNwcmlu dGYoIiVzLyVzLmxvZyIsIGxvZ2RpciwKKwkJCQkJCQkJCSBJTlRFUk5BTF9MT0dfRklMRV9OQU1F KTsKKworCQlpZiAoKGludGVybmFsX2xvZ19maWxlX2ZwID0gbG9nZmlsZV9vcGVuKGludGVybmFs X2xvZ19maWxlLCAiYSIpKSA9PSBOVUxMKQorCQkJcGdfZmF0YWwoImNvdWxkIG5vdCBvcGVuIGxv ZyBmaWxlIFwiJXNcIjogJW0iLCBpbnRlcm5hbF9sb2dfZmlsZSk7CisKKwkJcGdfZnJlZShpbnRl cm5hbF9sb2dfZmlsZSk7CisJfQorCiAJaWYgKGRyeV9ydW4pCiAJCXBnX2NyZWF0ZXN1Yl9sb2co UEdfTE9HX0lORk8sIFBHX0xPR19QUklNQVJZLAogCQkJCQkJICJFeGVjdXRpbmcgaW4gZHJ5LXJ1 biBtb2RlLlxuIgpAQCAtMjgzMiw1ICsyOTg5LDggQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFy Z3YpCiAJcGdfY3JlYXRlc3ViX2xvZyhQR19MT0dfSU5GTywgUEdfTE9HX1BSSU1BUlksCiAJCQkJ CSAiRG9uZSEiKTsKIAorCWlmIChpbnRlcm5hbF9sb2dfZmlsZV9mcCAhPSBOVUxMKQorCQlmY2xv c2UoaW50ZXJuYWxfbG9nX2ZpbGVfZnApOworCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wNDBfcGdfY3JlYXRlc3Vic2NyaWJlci5wbCBiL3NyYy9i aW4vcGdfYmFzZWJhY2t1cC90LzA0MF9wZ19jcmVhdGVzdWJzY3JpYmVyLnBsCmluZGV4IDBjMjdm Y2E3YmI3Li5kM2FmMTU2MTU1MSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3Qv MDQwX3BnX2NyZWF0ZXN1YnNjcmliZXIucGwKKysrIGIvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3Qv MDQwX3BnX2NyZWF0ZXN1YnNjcmliZXIucGwKQEAgLTE0LDYgKzE0LDcgQEAgcHJvZ3JhbV92ZXJz aW9uX29rKCdwZ19jcmVhdGVzdWJzY3JpYmVyJyk7CiBwcm9ncmFtX29wdGlvbnNfaGFuZGxpbmdf b2soJ3BnX2NyZWF0ZXN1YnNjcmliZXInKTsKIAogbXkgJGRhdGFkaXIgPSBQb3N0Z3JlU1FMOjpU ZXN0OjpVdGlsczo6dGVtcGRpcjsKK215ICRsb2dkaXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGls czo6dGVtcGRpcjsKIAogIyBHZW5lcmF0ZSBhIGRhdGFiYXNlIHdpdGggYSBuYW1lIG1hZGUgb2Yg YSByYW5nZSBvZiBBU0NJSSBjaGFyYWN0ZXJzLgogIyBFeHRyYWN0ZWQgZnJvbSAwMDJfcGdfdXBn cmFkZS5wbC4KQEAgLTM2Miw5ICszNjMsMzUgQEAgY29tbWFuZF9vaygKIAkJJy0tc3Vic2NyaXB0 aW9uJyA9PiAnc3ViMicsCiAJCSctLWRhdGFiYXNlJyA9PiAkZGIxLAogCQknLS1kYXRhYmFzZScg PT4gJGRiMiwKKwkJJy0tbG9nZGlyJyA9PiAkbG9nZGlyLAogCV0sCiAJJ3J1biBwZ19jcmVhdGVz dWJzY3JpYmVyIC0tZHJ5LXJ1biBvbiBub2RlIFMnKTsKIAorIyBDaGVjayB0aGF0IHRoZSBsb2cg ZmlsZXMgd2VyZSBjcmVhdGVkCitteSBAc2VydmVyX2xvZ19maWxlcyA9IGdsb2IgIiRsb2dkaXIv Ki9wZ19jcmVhdGVzdWJzY3JpYmVyX3NlcnZlci5sb2ciOworaXMoIHNjYWxhcihAc2VydmVyX2xv Z19maWxlcyksIDEsICIKKyAgICBwZ19jcmVhdGVzdWJzY3JpYmVyX3NlcnZlci5sb2cgZmlsZSB3 YXMgY3JlYXRlZCIpOworbXkgJHNlcnZlcl9sb2dfZmlsZV9zaXplID0gLXMgJHNlcnZlcl9sb2df ZmlsZXNbMF07Citpc250KCRzZXJ2ZXJfbG9nX2ZpbGVfc2l6ZSwgMCwKKwkicGdfY3JlYXRlc3Vi c2NyaWJlcl9zZXJ2ZXIubG9nIGZpbGUgbm90IGVtcHR5Iik7CitteSAkc2VydmVyX2xvZyA9IHNs dXJwX2ZpbGUoJHNlcnZlcl9sb2dfZmlsZXNbMF0pOworbGlrZSgKKwkkc2VydmVyX2xvZywKKwlx ci9jb25zaXN0ZW50IHJlY292ZXJ5IHN0YXRlIHJlYWNoZWQvLAorCSJzZXJ2ZXIgcmVhY2hlZCBj b25zaXN0ZW50IHJlY292ZXJ5IHN0YXRlIik7CisKK215IEBpbnRlcm5hbF9sb2dfZmlsZXMgPSBn bG9iICIkbG9nZGlyLyovcGdfY3JlYXRlc3Vic2NyaWJlcl9pbnRlcm5hbC5sb2ciOworaXMoIHNj YWxhcihAaW50ZXJuYWxfbG9nX2ZpbGVzKSwgMSwgIgorICAgIHBnX2NyZWF0ZXN1YnNjcmliZXJf aW50ZXJuYWwubG9nIGZpbGUgd2FzIGNyZWF0ZWQiKTsKK215ICRpbnRlcm5hbF9sb2dfZmlsZV9z aXplID0gLXMgJGludGVybmFsX2xvZ19maWxlc1swXTsKK2lzbnQoJGludGVybmFsX2xvZ19maWxl X3NpemUsIDAsCisJInBnX2NyZWF0ZXN1YnNjcmliZXJfaW50ZXJuYWwubG9nIGZpbGUgbm90IGVt cHR5Iik7CitteSAkaW50ZXJuYWxfbG9nID0gc2x1cnBfZmlsZSgkaW50ZXJuYWxfbG9nX2ZpbGVz WzBdKTsKK2xpa2UoCisJJGludGVybmFsX2xvZywKKwlxci90YXJnZXQgc2VydmVyIHJlYWNoZWQg dGhlIGNvbnNpc3RlbnQgc3RhdGUvLAorCSJsb2cgc2hvd3MgY29uc2lzdGVudCBzdGF0ZSByZWFj aGVkIik7CisKICMgQ2hlY2sgaWYgbm9kZSBTIGlzIHN0aWxsIGEgc3RhbmRieQogJG5vZGVfcy0+ c3RhcnQ7CiBpcygkbm9kZV9zLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ1NFTEVDVCBwZ19jYXRh bG9nLnBnX2lzX2luX3JlY292ZXJ5KCknKSwKQEAgLTQ0NCw3ICs0NzEsOCBAQCBpcyhzY2FsYXIo KCkgPSAkc3RkZXJyID1+IC93b3VsZCBjcmVhdGUgc3Vic2NyaXB0aW9uL2cpLAogCiAjIENyZWF0 ZSBhIHVzZXItZGVmaW5lZCBwdWJsaWNhdGlvbiwgYW5kIGEgdGFibGUgdGhhdCBpcyBub3QgYSBt ZW1iZXIgb2YgdGhhdAogIyBwdWJsaWNhdGlvbi4KLSRub2RlX3AtPnNhZmVfcHNxbCgkZGIxLCBx cSgKKyRub2RlX3AtPnNhZmVfcHNxbCgKKwkkZGIxLCBxcSgKIAlDUkVBVEUgUFVCTElDQVRJT04g dGVzdF9wdWIzIEZPUiBUQUJMRSB0YmwxOwogCUNSRUFURSBUQUJMRSBub3RfcmVwbGljYXRlZCAo YSBpbnQpOwogKSk7CkBAIC01NDAsOCArNTY4LDcgQEAgc2Vjb25kIHJvdwogdGhpcmQgcm93KSwK IAkibG9naWNhbCByZXBsaWNhdGlvbiB3b3JrcyBpbiBkYXRhYmFzZSAkZGIxIik7CiAkcmVzdWx0 ID0gJG5vZGVfcy0+c2FmZV9wc3FsKCRkYjEsICdTRUxFQ1QgKiBGUk9NIG5vdF9yZXBsaWNhdGVk Jyk7Ci1pcygkcmVzdWx0LCBxcSgpLAotCSJ0YWJsZSBpcyBub3QgcmVwbGljYXRlZCBpbiBkYXRh YmFzZSAkZGIxIik7CitpcygkcmVzdWx0LCBxcSgpLCAidGFibGUgaXMgbm90IHJlcGxpY2F0ZWQg aW4gZGF0YWJhc2UgJGRiMSIpOwogCiAjIENoZWNrIHJlc3VsdCBpbiBkYXRhYmFzZSAkZGIyCiAk cmVzdWx0ID0gJG5vZGVfcy0+c2FmZV9wc3FsKCRkYjIsICdTRUxFQ1QgKiBGUk9NIHRibDInKTsK QEAgLTU1NSw4ICs1ODIsMTAgQEAgbXkgJHN5c2lkX3MgPSAkbm9kZV9zLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKIGlzbnQoJHN5c2lkX3AsICRzeXNpZF9zLCAnc3lzdGVtIGlkZW50aWZpZXIgd2Fz IGNoYW5nZWQnKTsKIAogIyBWZXJpZnkgdGhhdCBwdWIyIHdhcyBjcmVhdGVkIGluICRkYjIKLWlz KCRub2RlX3AtPnNhZmVfcHNxbCgkZGIyLCAiU0VMRUNUIENPVU5UKCopIEZST00gcGdfcHVibGlj YXRpb24gV0hFUkUgcHVibmFtZSA9ICdwdWIyJyIpLAotCScxJywgInB1YmxpY2F0aW9uIHB1YjIg d2FzIGNyZWF0ZWQgaW4gJGRiMiIpOworaXMoICRub2RlX3AtPnNhZmVfcHNxbCgKKwkJJGRiMiwg IlNFTEVDVCBDT1VOVCgqKSBGUk9NIHBnX3B1YmxpY2F0aW9uIFdIRVJFIHB1Ym5hbWUgPSAncHVi MiciKSwKKwknMScsCisJInB1YmxpY2F0aW9uIHB1YjIgd2FzIGNyZWF0ZWQgaW4gJGRiMiIpOwog CiAjIEdldCBzdWJzY3JpcHRpb24gYW5kIHB1YmxpY2F0aW9uIG5hbWVzCiAkcmVzdWx0ID0gJG5v ZGVfcy0+c2FmZV9wc3FsKApAQCAtNTgxLDcgKzYxMCw3IEBAICRyZXN1bHQgPSAkbm9kZV9zLT5z YWZlX3BzcWwoCiAgICAgKQogKTsKIAotaXMoJHJlc3VsdCwgcXEoJGRiMXx7dGVzdF9wdWIzfQor aXMoICRyZXN1bHQsIHFxKCRkYjF8e3Rlc3RfcHViM30KICRkYjJ8e3B1YjJ9KSwKIAkic3Vic2Ny aXB0aW9ucyB1c2UgdGhlIGNvcnJlY3QgcHVibGljYXRpb25zIik7CiAKLS0gCjIuNDcuMwoK --_003_TYRPR01MB12156F431E4B83ECFF14034BDF54CATYRPR01MB12156jp_--