Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mg6FC-00048t-O8 for pgsql-hackers@arkaria.postgresql.org; Thu, 28 Oct 2021 14:19:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mg6FA-0000qw-MG for pgsql-hackers@arkaria.postgresql.org; Thu, 28 Oct 2021 14:19:00 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mg6F9-0000qm-L1 for pgsql-hackers@lists.postgresql.org; Thu, 28 Oct 2021 14:19:00 +0000 Received: from esa14.fujitsucc.c3s2.iphmx.com ([68.232.156.101]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mg6F5-0000fF-QP for pgsql-hackers@lists.postgresql.org; Thu, 28 Oct 2021 14:18:58 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1635430736; x=1666966736; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=U8VO8xL8UbY4fUZzynEb1hy5gdsO+pVsf2xiA5TrOh0=; b=dB+i+qcVktlpKMg5dmSQKH7Rea9IGFeCuq8Uza15uCSVyzcOASl9urhQ 5BOjNU8z7xw1Icu2DNf/np9jqwxR7Ic0lEnmeR9SuLhUl2F0rgDcIhGWg LNm0QWB9Dmq+yzqweiEhb/ql4Kax+xrgo+1fEq+sc9MyP6QoB9GNNWbq+ 3+ONyDHzW9hAp9qKwxLKUQElNYyCKnjyci4ksYwfFlZ3ASMXHAyJEt7YK ofzP+USg7M8PCxZgRsR86xqhwjacE5yye12IykEq+PRu0S/j0zS6Mi/9J Y6VX6lx/hBRLwj72VZocl2p2xjUIaWszIA+xDwo4EXEGbEmJD5AUwhd1X g==; X-IronPort-AV: E=McAfee;i="6200,9189,10151"; a="42270215" X-IronPort-AV: E=Sophos;i="5.87,190,1631545200"; d="scan'208";a="42270215" Received: from mail-ty1jpn01lp2052.outbound.protection.outlook.com (HELO JPN01-TY1-obe.outbound.protection.outlook.com) ([104.47.93.52]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Oct 2021 23:18:51 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dmbjcOPTVqf34r689iMQxJMoYaRq/FAR4qo555ePcjsYL9wmiPCmdnH9QZw/RuABpoYYKyYh5v4gFDGWRRsnRz9zJjvWgkKSDJD30KqgZ0y452dGlrzTVy11yUUU6UEkiu7rMyzFJ2Zz30oosT/u0KgwZf+vDtHS0I14CdWTf7KXGvxpF/Dsx2LKv2Hx5lhfVWl2wbGFSL/qz8pi/qdhRBsy4vVrJm060cfYlUT7MvOoFRziC8tj3/XpkqsEhu22Prkcdm5lMdrxL2wTEBQ5Nc8Ou/CHPMXJJVdaX36ttijSb1Yr2MwH5edZmN7LlCbskjUcQC0VixNamYAZq4p70A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KEh/Z0enXMZ2E8RbO044oV8rUR7vIDAiOBvVpGUjVJo=; b=eViTiS5PBNp4LsTQuTyb4nmZFy6+QvWYZyepRoeF+KcJ29WR37Vr501ScCdsvjO2b4xLNBL7+wX8dG+leZisBrC/nzSB7oa1ji7G24qXv97PiFX2jFrP6KWpyHHwtYAMEwXVx8h2VgMZKWFSvDby5tbDrAbuLOL0ivsqkMNf6ZvDJiL0ngPdpBuza23oKwHYxphfBQoAWx57INHJvShs6EENj1ZljC51yxW/nbhfo5iRjWpUYgJAKYygvJ7ANo7zVJnBFJHnwzlo/K0N8A4pVLp2uKIpBW6d0VBlwyaPmbjXNJYwmc+V1xiF/3hKghY6gdVb5QHWDLdxg0DEazXMFQ== 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.onmicrosoft.com; s=selector2-fujitsu-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KEh/Z0enXMZ2E8RbO044oV8rUR7vIDAiOBvVpGUjVJo=; b=pCp1oiiaO/ZaQYIa+JqoxHO1IYcGse9eo9kPrBm3Y5ZrTIhr1jerCdHjosrLBligoLbiUGgQLU2NGFgxK2OqJQkarolUNxqTa0ROsD/SdajQ+7c3WZaPcv/js2e3I4Pq8aKrhE6hnO0BeeUWGYHpfG+7gj5Esy79I4UkSF9f/o0= Received: from OSBPR01MB4888.jpnprd01.prod.outlook.com (2603:1096:604:79::23) by OS0PR01MB5412.jpnprd01.prod.outlook.com (2603:1096:604:a7::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14; Thu, 28 Oct 2021 14:18:47 +0000 Received: from OSBPR01MB4888.jpnprd01.prod.outlook.com ([fe80::587c:3bd2:344e:fa04]) by OSBPR01MB4888.jpnprd01.prod.outlook.com ([fe80::587c:3bd2:344e:fa04%6]) with mapi id 15.20.4628.020; Thu, 28 Oct 2021 14:18:47 +0000 From: "osumi.takamichi@fujitsu.com" To: 'Masahiko Sawada' , Amit Kapila CC: "houzj.fnst@fujitsu.com" , "pgsql-hackers@lists.postgresql.org" Subject: RE: Failed transaction statistics to measure the logical replication progress Thread-Topic: Failed transaction statistics to measure the logical replication progress Thread-Index: AddzxbV4E8towJomTkm1trqmHwIwlgQVlICAANF/lUAAA/6ZgAAn+wOAAAWfTgAAB8XmAAAgvB4AAAU0KgAAB+7hgAAMXNsABZwy4NABa8QD4ADxViZAAZV2mrAA+6DXgAAsU7aAAAZiVQAAAnmZAAAIXu+AAFRfhZAAA/2jgAK/RTlAANYpygAAhIjngAF7IiwA Date: Thu, 28 Oct 2021 14:18:47 +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?NTBfRW5hYmxlZD10cnVlOyBNU0lQX0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJh?= =?utf-8?B?Yy1hYjRkLTNiMGY0ZmVjZTA1MF9TZXREYXRlPTIwMjEtMTAtMjhUMTQ6MTg6?= =?utf-8?B?NDVaOyBNU0lQX0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRkLTNiMGY0?= =?utf-8?B?ZmVjZTA1MF9NZXRob2Q9U3RhbmRhcmQ7IE1TSVBfTGFiZWxfYTcyOTVjYzEt?= =?utf-8?B?ZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX05hbWU9RlVKSVRTVS1SRVNU?= =?utf-8?B?UklDVEVE4oCLOyBNU0lQX0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRk?= =?utf-8?B?LTNiMGY0ZmVjZTA1MF9TaXRlSWQ9YTE5ZjEyMWQtODFlMS00ODU4LWE5ZDgt?= =?utf-8?B?NzM2ZTI2N2ZkNGM3OyBNU0lQX0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1h?= =?utf-8?B?YjRkLTNiMGY0ZmVjZTA1MF9BY3Rpb25JZD1jYjc5N2VhMC1jOGUxLTQzMzQt?= =?utf-8?B?OWVjOC1jM2EzMTNmMzdmZjA7IE1TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00?= =?utf-8?B?MmFjLWFiNGQtM2IwZjRmZWNlMDUwX0NvbnRlbnRCaXRzPTA=?= authentication-results: gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 723de1fb-b2cf-45dd-13b7-08d99a1ddb42 x-ms-traffictypediagnostic: OS0PR01MB5412: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5797; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0LUe7azs1LRz4c1vgJSbrGDScEdLPbSnlsp01GWe85pWJ9RGNEThz93Kr/Qr6YTBjKqlb629fPqunaqV8K/t4oFIz9fCxG5lhXUc/wUUq7aKBV1Mjq4ubsTCEp1hhGxTc2uzG0qWKBREE28CkJnMCyBw/4s2pdB3Whn2IDcsQDZRTuwAQTLOKwb3OROkEiQbrkv3ipZZWWT/vlCOHisZxFpR8Laoq0qKgxPT3tJjmdhIwt+fjl7pr9UelMjdajkdPEsFW8CamK8nQXj0We9fRMIW12tauiYUJaF2YZyhJwH6aZ1aO0d157Zt8zmLTAjdC+atzJj6nDsF6Nl74ZAEwuLls+eQO5fYUPOmfUENyRjgPOMpC3g7tDLaRUY7sQASorhlIXOxyp86A9N9pP3esMVwH5qxA7Un71SeJuJEP/ow0wEHSw3THsLFwJF+hVCQzFMrvfDVE4Mep1b/Qlb+/Vwa0VTplrWMKaKzn0dwJJSl6W0gaTPNykpzkEOxTL9eTIbVHPKT/UNLuTQsgAVMe9823dT8DN5kgDWIkGJvp4Esh022HvgscFfOZns2g9SzZHt1dYOL/U+DHx9PH+z/bWrGFuTTFkpxd1BqRcSwZrla8nzpWCzq1Z3Dn084EEAx9yIYlcLFs9ZaUeNn/Tlumm3nnSH+bb/VSeGa/Wn++RB5l2yvjb6PX/WP/0b/orGGwwZV3ZJ9OGMFGbjBP3JaUNHBaD4Sb+5msrtF8GoQBxtZdbemgUpshpP0qKWaHVKcGKYHBPOT2uNcoDoVR733F/4/UM5WGfM6KjBdy0v/uYA= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OSBPR01MB4888.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(83380400001)(66556008)(76116006)(66476007)(8676002)(122000001)(55016002)(26005)(64756008)(66946007)(85182001)(71200400001)(33656002)(86362001)(6506007)(52536014)(9686003)(8936002)(5660300002)(110136005)(186003)(54906003)(508600001)(38070700005)(7696005)(4326008)(82960400001)(53546011)(66446008)(99936003)(38100700002)(2906002)(316002)(966005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UGhURzZsaFJKNmRlNXcyQUlURFdOK0JTaW1TakVtVUM4ZFhIUzlybHcwWUM4?= =?utf-8?B?TFkwa0d5ZGVzejMvOTJEVG91TS9udnBFR2NJR1FLRFpXcVlJNHpjb1ZISTZq?= =?utf-8?B?MUlaUFVzLzRyeEV1YlVzUEFMbGU4TVFqVTFpdEtlZ1VKaTJMMW5qWVZtTHBE?= =?utf-8?B?dWh3NHhOaVEvSkZncVBRNEs2SzEyTHJSYkdzZVJJblR5N0JRNm03MFVrM1pU?= =?utf-8?B?ZGdGb0ZTT0ErUlJlMHp1Q1FzYmVlQUdCb3I1YkltOVlSOVVLZThWdTV2Qmox?= =?utf-8?B?eDhFbGJYcnJ4RkhvOUZIbjFPMHZQU1lnME9helo5M1VJS0JCVFcvQlg2SS93?= =?utf-8?B?NjdOMHBFaGFmdzFWUW5iVWRxTE9ObTl5VHI3amtNUTVUVENReFZ2Q0FoUnE0?= =?utf-8?B?bENwK25LajVkcStmYWNMM3IrdE4yMkZnZ2RuRjFjclNOckVKTGhaRExOVDFT?= =?utf-8?B?Ni9VbDhVMVNpWWZwcVRTZmNmVW9sVWdsUCtWaWdaTWlvUGxoMlJYMnppZFg4?= =?utf-8?B?NjdMRGhTVkdJZ2dodVdqR2tRV3oyRUpvUGg5bDBsRXNtakp0dHUyRGpxTXlC?= =?utf-8?B?R3hwL2JKN3czeVFONnZBWmtma25qTTRYWHVXaHZmekx5ZzZjZThnRnZRM0RI?= =?utf-8?B?bGwzTHhPbjBneThzTjdnRWNjZ0pRTzE5YmJnSVNjUTBaVzZuY3JNaW5vYk41?= =?utf-8?B?Q01GS1BsVWtab3J1b210aEJLZEdXdGNNMlFVU0JkRmJLby9rSXBPSXQyaSto?= =?utf-8?B?WXpKN0RlVEdDOExDMHpNMGdYN0dsNXh5cWw4bkdBWG5DOHo1blh1U3hUbTcy?= =?utf-8?B?Mk8rTTJneG0zeDF6VllmYlNpaFdZbFlKbFZUVWpJZm43V1hhUklBcC9NUzFI?= =?utf-8?B?ckp5ZG92cnhLVmptbzJ3aXRSc3g5dTJsbHk2OWtRdkFaSEdWbFoxL2lFRjlV?= =?utf-8?B?Wm1LNTRyZDAzL0NyaitpcnlsdnZIbXBRMmxsL3ovVWgxTUFna0pLWFNzWkJP?= =?utf-8?B?ZVVLd1pJVHdpaldYZWNyVUFicDBoMXVRejlBYlY3NW1meGk5cmkrYnN1SkFP?= =?utf-8?B?Y3Y2K3l2K2FNcTZraGFpQVhLWHE5OWRwYzNsSDdRLzl4dDNNR0hKTm1RZEY4?= =?utf-8?B?clRUd2xRVWk5cWR5dlZmdkltL2NNQ1dBb1lZNFA2NHBGY0VoeWQvL2FXbzJQ?= =?utf-8?B?M2diTVB0eFBFT1Y4KysxRVlwVmtkWDNYOUxZK0pxUTM5NmsxdU1RYk9yZ01t?= =?utf-8?B?Vlp2QS9rRng5QXk0Ujh0QzJYWEE3YlFaVE9Ua1diSGZBM2ljRHdUNkdxU3Qr?= =?utf-8?B?dTBNbVVPdStTcGV5eWV2MVRMZFJPc2hFcG1WazFpYTlOY3lySmQ1R3Y1VXpJ?= =?utf-8?B?N29ZRlBXNGZYdTlkME5FdllOV1BvbUhFdVp2Y1h3RDlPRnd5Z2tmeWN3V3dq?= =?utf-8?B?NUNPRXVDdTVkMVZkdWFOdEh4bk4xM09RVy9yTjhyN1kra2hOaU9HWEU5cnh1?= =?utf-8?B?dVlRa01odzdmcjhOSjBtdFVDRlprc2wvWHMyVWM1TUlOcUdnb2J4SklKMzFi?= =?utf-8?B?UG1naTk0R1BGL3ZUTUkyWDBBQU03aHE0OWFIcDc3ME5NRno0SlZBNSt3TVls?= =?utf-8?B?ZkZpNmlwR1JDZFBSdkVKdW5EdDU1VUQxdVNQbDJnVUw4eGZhY0pZOUd4ZkF0?= =?utf-8?B?K0llVnZ6dktIQmtXL21VdFdBMGNMMkREZ3oxYnFnQ2g0NmxPTU93enpZWjFk?= =?utf-8?B?akRycm90aWZXQXdxWm9IdEU1a2JpL01tTlpNL3BReTVWRFJxdVZvcytYN2ZS?= =?utf-8?B?bWgrRndzc01Rd1BpZVhOU3RGbEs2T3ZkcnZyT1R5SDdXdmNzZk5FTVlqbEt0?= =?utf-8?B?M0lpZVl2Q1gzUjNqL3RjK093QTBnZE1VS3BrZEwySVg5T2pybW9zeHhpQ0ZE?= =?utf-8?B?Vi9FM0RiL0tXRm8rZ245Q1dLcFdicTQ5OFNLMDFnaWlrSzl0NDI0dzRacFN0?= =?utf-8?B?RlpPUjBWZkwrWlBpeFN2RVlGT0loMEVqaWxNY3owbEZjZUxzbEsxWTEvcUhZ?= =?utf-8?B?TGtFQnA3VVpENlJ6cS9XMFpiNHc4ZjhlTUlYdG9mcWZwRTdnK0ZFQjlHVGcv?= =?utf-8?B?VW9EZkJTNjRucnBmSXQ3R1FlUUYwQmlLT1F1YUdXdGhHRTRxY0RhbDE4YjVk?= =?utf-8?B?dU9yRHFrQkE2L0tPMHVhRnRIbXNLUVp5VWdBdTd2RTloU3U1TWpZVnQ2Y1pl?= =?utf-8?B?Z2tDQkFUTFduNjEvcEQyNzFLZDFBPT0=?= Content-Type: multipart/mixed; boundary="_002_OSBPR01MB4888125C82102E3343D85BC7ED869OSBPR01MB4888jpnp_" MIME-Version: 1.0 X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OSBPR01MB4888.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 723de1fb-b2cf-45dd-13b7-08d99a1ddb42 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Oct 2021 14:18:47.1896 (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: vB8SbYtHswX7LyV8Q2/4hqNlHA7oOWRJG3w9npEvCuUw4rWPOdFd+b3fOeNduMBudFiCI9peZ43hRQdrqg/FCD+OZbgIDidkwbb8qPFrTb4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS0PR01MB5412 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_OSBPR01MB4888125C82102E3343D85BC7ED869OSBPR01MB4888jpnp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 T24gVGh1cnNkYXksIE9jdG9iZXIgMjEsIDIwMjEgMTA6MTkgQU0gTWFzYWhpa28gU2F3YWRhIDxz YXdhZGEubXNoa0BnbWFpbC5jb20+IHdyb3RlOg0KPiBPbiBNb24sIE9jdCAxOCwgMjAyMSBhdCA3 OjAzIFBNIEFtaXQgS2FwaWxhIDxhbWl0LmthcGlsYTE2QGdtYWlsLmNvbT4NCj4gd3JvdGU6DQo+ ID4NCj4gPiBPbiBUaHUsIE9jdCAxNCwgMjAyMSBhdCA5OjIzIEFNIGhvdXpqLmZuc3RAZnVqaXRz dS5jb20NCj4gPiA8aG91emouZm5zdEBmdWppdHN1LmNvbT4gd3JvdGU6DQo+ID4gPg0KPiA+ID4g T24gVGh1cnNkYXksIFNlcHRlbWJlciAzMCwgMjAyMSAxMjoxNSBQTSBBbWl0IEthcGlsYQ0KPiA+ ID4gPGFtaXQua2FwaWxhMTZAZ21haWwuY29tPg0KPiA+ID4gPg0KPiA+ID4gPiBUaGVzZSBhbGwg dmlld3MgYXJlIHJlbGF0ZWQgdG8gdW50cmFuc21pdHRlZCB0byB0aGUgY29sbGVjdG9yIGJ1dA0K PiA+ID4gPiB3aGF0IHdlIHJlYWxseSBuZWVkIGlzIGEgdmlldyBzaW1pbGFyIHRvIHBnX3N0YXRf YXJjaGl2ZXIgb3INCj4gPiA+ID4gcGdfc3RhdF9iZ3dyaXRlciB3aGljaCBnaXZlcyBpbmZvcm1h dGlvbiBhYm91dCBiYWNrZ3JvdW5kIHdvcmtlcnMuDQo+ID4gPiA+IE5vdywgdGhlIHByb2JsZW0g YXMgSSBzZWUgaXMgaWYgd2UgZ28gdGhhdCByb3V0ZSB0aGVuDQo+ID4gPiA+IHBnX3N0YXRfc3Vi c2NyaXB0aW9uIHdpbGwgbm8gbG9uZ2VyIHJlbWFpbiBkeW5hbWljIHZpZXcgYW5kIG9uZQ0KPiA+ ID4gPiBtaWdodCBjb25zaWRlciB0aGF0IGFzIGEgY29tcGF0aWJpbGl0eSBicmVhay4gVGhlIG90 aGVyIGlkZWEgSQ0KPiA+ID4gPiBoYXZlIHNoYXJlZCBpcyB0aGF0IHdlIGRpc3BsYXkgdGhlc2Ug c3RhdHMgdW5kZXIgdGhlIG5ldyB2aWV3DQo+ID4gPiA+IGludHJvZHVjZWQgYnkgU2F3YWRhLVNh bidzIHBhdGNoIFsxXSBhbmQgcHJvYmFibHkgcmVuYW1lIHRoYXQgdmlldw0KPiA+ID4gPiBhcyBw Z19zdGF0X3N1YnNjcmlwdGlvbl93b3JrZXIgd2hlcmUgYWxsIHRoZSBzdGF0cyAoeGFjdCBpbmZv IGFuZA0KPiA+ID4gPiBsYXN0IGZhaWx1cmUgaW5mb3JtYXRpb24pIGFib3V0IGVhY2ggd29ya2Vy IHdpbGwgYmUgZGlzcGxheWVkLiBEbw0KPiA+ID4gPiB5b3UgaGF2ZSBhbnkgb3BpbmlvbiBvbiB0 aGF0IGlkZWEgb3IgZG8geW91IHNlZSBhbnkgcHJvYmxlbSB3aXRoIGl0Pw0KPiA+ID4NCj4gPiA+ IFBlcnNvbmFsbHksIEkgdGhpbmsgaXQgc2VlbXMgcmVhc29uYWJsZSB0byBtZXJnZSB0aGUgeGFj dCBzdGF0IGludG8NCj4gPiA+IHRoZSB2aWV3IGZyb20gc2F3YWRhLXNhbidzIHBhdGNoLg0KPiA+ ID4NCj4gPiA+IE9uZSBwcm9ibGVtIEkgbm90aWNlZCBpcyB0aGF0IHBnX3N0YXRfc3Vic2NyaXB0 aW9uX2Vycm9yIGN1cnJlbnRseQ0KPiA+ID4gaGF2ZSBhICdjb3VudCcgY29sdW1uIHdoaWNoIHNo b3cgaG93IG1hbnkgdGltZXMgdGhlIGxhc3QgZXJyb3INCj4gPiA+IGhhcHBlbmVkLiBUaGUgeGFj dCBzdGF0IGhlcmUgYWxzbyBoYXZlIGEgc2ltaWxhciB2YWx1ZSAneGFjdF9lcnJvcicuDQo+ID4g PiBJIHRoaW5rIHdlIG1pZ2h0IG5lZWQgdG8gcmVuYW1lIGl0IG9yIG1lcmdlIHRoZW0gaW50byBv bmUgaW4gc29tZSB3YXkuDQo+ID4gPg0KPiA+ID4gQmVzaWRlcywgaWYgd2UgZGVjaWRlIHRvIG1l cmdlIHhhY3Qgc3RhdCBpbnRvDQo+ID4gPiBwZ19zdGF0X3N1YnNjcmlwdGlvbl9lcnJvciwgc29t ZSBjb2x1bW4gc2VlbXMgbmVlZCB0byBiZSByZW5hbWVkLg0KPiBNYXliZSBsaWtlOg0KPiA+ID4g ZXJyb3JfbWVzc2FnZSA9PiBMYXN0X2Vycm9yX21lc3NhZ2UsIGNvbW1hbmQ9Pg0KPiBsYXN0X2Vy cm9yX2NvbW1hbmQuLg0KPiA+ID4NCj4gPg0KPiA+IERvbid0IHlvdSB0aGluayB0aGF0IGtlZXBp bmcgdGhlIHZpZXcgbmFtZSBhcw0KPiA+IHBnX3N0YXRfc3Vic2NyaXB0aW9uX2Vycm9yIHdvdWxk IGJlIGEgYml0IGNvbmZ1c2luZyBpZiBpdCBoYXMgdG8NCj4gPiBkaXNwbGF5IHhhY3RfaW5mbz8g SXNuJ3QgaXQgYmV0dGVyIHRvIGNoYW5nZSBpdCB0bw0KPiA+IHBnX3N0YXRfc3Vic2NyaXB0aW9u X3dvcmtlciBvciBzb21lIG90aGVyIHdvcmtlci1zcGVjaWZpYyBnZW5lcmljDQo+ID4gbmFtZT8N Cj4gDQo+IEkgYWdyZWUgdGhhdCBpdCdkIGJlIGJldHRlciB0byBpbmNsdWRlIHhhY3QgaW5mbyB0 byBwZ19zdGF0X3N1YnNjcmlwdGlvbl9lcnJvcnMNCj4gdmlldyByYXRoZXIgdGhhbiBtYWtpbmcg cGdfc3RhdF9zdWJzY3JpcHRpb24gYSBjdW11bGF0aXZlIHZpZXcuIEl0IHdvdWxkIGJlDQo+IG1v cmUgc2ltcGxlIGFuZCBjb25zaXN0ZW50Lg0KLi4uIA0KPkknbGwgY2hhbmdlIHRoZSB2aWV3IG5h bWUgaW4gdGhlIG5leHQgdmVyc2lvbiBwYXRjaC4NClRoYW5rcyBhIGxvdCwgU2F3YXNhLXNhbi4N Cg0KSSd2ZSBjcmVhdGVkIGEgbmV3IHBhdGNoIHRoYXQgZXh0ZW5kcyBwZ19zdGF0X3N1YnNjcmlw dGlvbl93b3JrZXJzDQp0byBpbmNsdWRlIG90aGVyIHRyYW5zYWN0aW9uIHN0YXRpc3RpY3MuDQoN Ck5vdGUgdGhhdCB0aGlzIHBhdGNoIGRlcGVuZHMgb24gdjE4IHBhdGNoLXNldCBpbiBbMV0NCmFu ZCBuZWVkcyB0byBiZSBhZnRlciB0aGUgcGVybCBtb2R1bGVzJyBuYW1lc3BhY2UgY2hhbmdlcw0K Y29uZHVjdGVkIHJlY2VudGx5IGJ5IGNvbW1pdCBiM2I0ZDhlNjhhZTgzZjQzMmY0M2YwMzVjN2Vi NDgxZWY5M2UxNTgzLg0KDQpUaGVyZSBhcmUgb3RoZXIgc2V2ZXJhbCBtYWpvciBjaGFuZ2VzIGNv bXBhcmVkIHRvIHRoZSBwcmV2aW91cyB2ZXJzaW9uLg0KDQooMSkNCkFkZHJlc3Npbmcgc2V2ZXJh bCBzdHJlYW1pbmcgdHJhbnNhY3Rpb25zIHJ1bm5pbmcgaW4gcGFyYWxsZWwgb24gdGhlIHB1YiB0 aGF0DQpjYW4gc2VuZCB1bmV4cGVjdGVkIG9yZGVyIG9mIHBhcnRpYWwgZGF0YSBkZW1hcmNhdGVk IHN0cmVhbSBzdGFydCBhbmQgc3RyZWFtIHN0b3AuDQpFdmVuIGlmIG9uZSBvZiB0aGVtIGFib3J0 cywgbm93IGJ5dGVzIGNhbGN1bGF0aW9uIHNob3VsZCBiZSBjb3JyZWN0Lg0KDQooMikNClVwZGF0 ZXMgb2Ygc3RhdHMgb24gdGhlIHZpZXcgYXQgZWl0aGVyIGNvbW1pdCBwcmVwYXJlZCBvciByb2xs YmFjayBwcmVwYXJlZCB0aW1lLg0KVGhpcyBtZWFucyB3ZSBkb24ndCBsb3N0IHByZXBhcmVkIHRy YW5zYWN0aW9uIHNpemUgZXZlbiBhZnRlciBzZXJ2ZXIgcmVzdGFydA0KYW5kIHVzZXIgY2FuIHNl ZSB0aGUgcmVzdWx0cyBvZiB0d28gcGhhc2Ugb3BlcmF0aW9uIGF0IHRob3NlIHRpbWluZ3MuDQoN CigzKQ0KQWRkaXRpb24gb2YgVEFQIHRlc3RzLg0KDQooNCkNClJlbmFtZXMgb2Ygb3RoZXIgZXhp c3RpbmcgY29sdW1ucyBzbyB0aGF0IHRob3NlIG1lYW5pbmdzIGFyZSBtb3JlIGFwcGFyZW50DQpp biBhbGlnbiB3aXRoIG90aGVyIG5ldyBzdGF0cy4NCg0KU29tZSBpbXBvcnRhbnQgZGV0YWlscyBh cmUgd3JpdHRlbiBpbiB0aGUgY29tbWVudHMgb2YgdGhlIGF0dGFjaGVkIHBhdGNoLg0KDQpbMV0g LSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL0NBRDIxQW9DVHRRZ2Z5NTdB eEI0cThLVU9wUkg4cmtITiUzRHNfOXA5UHZub19Yb0JLNXdnJTQwbWFpbC5nbWFpbC5jb20NCg0K QmVzdCBSZWdhcmRzLA0KCVRha2FtaWNoaSBPc3VtaQ0KDQo= --_002_OSBPR01MB4888125C82102E3343D85BC7ED869OSBPR01MB4888jpnp_ Content-Type: application/octet-stream; name="extend_xact_stats_of_subscription_worker_v6.patch" Content-Description: extend_xact_stats_of_subscription_worker_v6.patch Content-Disposition: attachment; filename="extend_xact_stats_of_subscription_worker_v6.patch"; size=56926; creation-date="Thu, 28 Oct 2021 14:16:25 GMT"; modification-date="Thu, 28 Oct 2021 14:16:25 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwv bW9uaXRvcmluZy5zZ21sCmluZGV4IDhkNDk0MWMuLjI4NGYyMTUgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dt bApAQCAtNjI5LDcgKzYyOSw3IEBAIHBvc3RncmVzICAgMjcwOTMgIDAuMCAgMC4wICAzMDA5NiAg Mjc1MiA/ICAgICAgICBTcyAgIDExOjM0ICAgMDowMCBwb3N0Z3Jlczogc2VyCiAKICAgICAgPHJv dz4KICAgICAgIDxlbnRyeT48c3RydWN0bmFtZT5wZ19zdGF0X3N1YnNjcmlwdGlvbl93b3JrZXJz PC9zdHJ1Y3RuYW1lPjxpbmRleHRlcm0+PHByaW1hcnk+cGdfc3RhdF9zdWJzY3JpcHRpb25fd29y a2VyczwvcHJpbWFyeT48L2luZGV4dGVybT48L2VudHJ5PgotICAgICAgPGVudHJ5PkF0IGxlYXN0 IG9uZSByb3cgcGVyIHN1YnNjcmlwdGlvbiwgc2hvd2luZyBhYm91dCBlcnJvcnMgdGhhdAorICAg ICAgPGVudHJ5PkF0IGxlYXN0IG9uZSByb3cgcGVyIHN1YnNjcmlwdGlvbiwgc2hvd2luZyBhYm91 dCB0cmFuc2FjdGlvbiBzdGF0aXN0aWNzIGFuZCBlcnJvciBzdW1tYXJ5IHRoYXQKICAgICAgIG9j Y3VycmVkIG9uIHN1YnNjcmlwdGlvbi4KICAgICAgIFNlZSA8bGluayBsaW5rZW5kPSJtb25pdG9y aW5nLXBnLXN0YXQtc3Vic2NyaXB0aW9uLXdvcmtlcnMiPgogICAgICAgPHN0cnVjdG5hbWU+cGdf c3RhdF9zdWJzY3JpcHRpb25fd29ya2Vyczwvc3RydWN0bmFtZT48L2xpbms+IGZvciBkZXRhaWxz LgpAQCAtMzA1Miw5ICszMDUyLDkgQEAgU0VMRUNUIHBpZCwgd2FpdF9ldmVudF90eXBlLCB3YWl0 X2V2ZW50IEZST00gcGdfc3RhdF9hY3Rpdml0eSBXSEVSRSB3YWl0X2V2ZW50IGkKIAogICA8cGFy YT4KICAgIFRoZSA8c3RydWN0bmFtZT5wZ19zdGF0X3N1YnNjcmlwdGlvbl93b3JrZXJzPC9zdHJ1 Y3RuYW1lPiB2aWV3IHdpbGwgY29udGFpbgotICAgb25lIHJvdyBwZXIgc3Vic2NyaXB0aW9uIGVy cm9yIHJlcG9ydGVkIGJ5IHdvcmtlcnMgYXBwbHlpbmcgbG9naWNhbAotICAgcmVwbGljYXRpb24g Y2hhbmdlcyBhbmQgd29ya2VycyBoYW5kbGluZyB0aGUgaW5pdGlhbCBkYXRhIGNvcHkgb2YgdGhl Ci0gICBzdWJzY3JpYmVkIHRhYmxlcy4KKyAgIG9uZSByb3cgcGVyIHN1YnNjcmlwdGlvbiBmb3Ig dHJhbnNhY3Rpb24gc3RhdGlzdGljcyBhbmQgc3VtbWFyeSBvZiB0aGUgbGFzdAorICAgZXJyb3Ig cmVwb3J0ZWQgYnkgd29ya2VycyBhcHBseWluZyBsb2dpY2FsIHJlcGxpY2F0aW9uIGNoYW5nZXMg YW5kIHdvcmtlcnMKKyAgIGhhbmRsaW5nIHRoZSBpbml0aWFsIGRhdGEgY29weSBvZiB0aGUgc3Vi c2NyaWJlZCB0YWJsZXMuCiAgIDwvcGFyYT4KIAogICA8dGFibGUgaWQ9InBnLXN0YXQtc3Vic2Ny aXB0aW9uLXdvcmtlcnMiIHhyZWZsYWJlbD0icGdfc3RhdF9zdWJzY3JpcHRpb25fd29ya2VycyI+ CkBAIC0zMTAyLDIwICszMTAyLDc4IEBAIFNFTEVDVCBwaWQsIHdhaXRfZXZlbnRfdHlwZSwgd2Fp dF9ldmVudCBGUk9NIHBnX3N0YXRfYWN0aXZpdHkgV0hFUkUgd2FpdF9ldmVudCBpCiAKICAgICAg PHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+Ci0gICAgICAgPHN0cnVjdGZpZWxkPnJlbGlkPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5sYXN0X2Vycm9yX3Jl bGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgogICAgICAgPC9wYXJhPgogICAgICAg PHBhcmE+CiAgICAgICAgT0lEIG9mIHRoZSByZWxhdGlvbiB0aGF0IHRoZSB3b3JrZXIgd2FzIHBy b2Nlc3Npbmcgd2hlbiB0aGUKLSAgICAgICBlcnJvciBvY2N1cnJlZAorICAgICAgIGxhc3QgZXJy b3Igb2NjdXJyZWQKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAogICAgICA8 cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KLSAgICAgICA8c3RydWN0ZmllbGQ+Y29tbWFuZDwvc3RydWN0 ZmllbGQ+IDx0eXBlPnRleHQ8L3R5cGU+CisgICAgICAgPHN0cnVjdGZpZWxkPnhhY3RfY29tbWl0 PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgTnVtYmVyIG9mIHRyYW5zYWN0aW9ucyBzdWNjZXNzZnVsbHkgYXBwbGll ZCBpbiB0aGlzIHN1YnNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD54YWN0 X2NvbW1pdF9ieXRlczwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEFtb3VudCBvZiB0cmFuc2FjdGlvbnMgZGF0YSBz dWNjZXNzZnVsbHkgYXBwbGllZCBpbiB0aGlzIHN1YnNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD54YWN0X2Vycm9yPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBl PgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTnVtYmVyIG9mIHRyYW5zYWN0 aW9ucyB1bnN1Y2Nlc3NmdWxseSBhcHBsaWVkIGluIHRoaXMgc3Vic2NyaXB0aW9uCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnhhY3RfZXJyb3JfYnl0ZXM8L3N0cnVjdGZpZWxkPiA8dHlw ZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBbW91 bnQgb2YgdHJhbnNhY3Rpb25zIGRhdGEgdW5zdWNjZXNzZnVsbHkgYXBwbGllZCBpbiB0aGlzIHN1 YnNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD54YWN0X2Fib3J0PC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgTnVtYmVyIG9mIHRyYW5zYWN0aW9ucyBhYm9ydGVkIGluIHRoaXMgc3Vic2NyaXB0 aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnhhY3RfYWJvcnRfYnl0ZXM8L3N0cnVj dGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBBbW91bnQgb2YgdHJhbnNhY3Rpb25zIGRhdGEgYWJvcnRlZCBpbiB0aGlzIHN1YnNj cmlwdGlvbi4KKyAgICAgICBJbmNyZWFzZSA8bGl0ZXJhbD5sb2dpY2FsX2RlY29kaW5nX3dvcmtf bWVtPC9saXRlcmFsPiBvbiB0aGUgcHVibGlzaGVyCisgICAgICAgdG8gc3VwcHJlc3MgdW5uZWNl c3NhcnkgY29uc3VtZWQgbmV0d29yayBiYW5kd2lkdGggb3IgY2hhbmdlIGluIG1lbW9yeQorICAg ICAgIG9mIHRoZSBzdWJzY3JpYmVyLCBpZiB1bmV4cGVjdGVkIGFtb3VudCBvZiByb2xsYmFja2Vk IHRyYW5zYWN0aW9ucyBhcmUKKyAgICAgICBzdHJlYW1lZC4KKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2df dGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+bGFzdF9lcnJvcl9jb21tYW5kPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlw ZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgotICAgICAgIE5hbWUgb2YgY29tbWFuZCBi ZWluZyBhcHBsaWVkIHdoZW4gdGhlIGVycm9yIG9jY3VycmVkLiAgVGhpcyBmaWVsZAorICAgICAg IE5hbWUgb2YgbGFzdCBjb21tYW5kIGJlaW5nIGFwcGxpZWQgd2hlbiB0aGUgZXJyb3Igb2NjdXJy ZWQuICBUaGlzIGZpZWxkCiAgICAgICAgaXMgYWx3YXlzIE5VTEwgaWYgdGhlIGVycm9yIHdhcyBy ZXBvcnRlZCBkdXJpbmcgdGhlIGluaXRpYWwgZGF0YQogICAgICAgIGNvcHkuCiAgICAgICA8L3Bh cmE+PC9lbnRyeT4KQEAgLTMxMjMsMTAgKzMxODEsMTAgQEAgU0VMRUNUIHBpZCwgd2FpdF9ldmVu dF90eXBlLCB3YWl0X2V2ZW50IEZST00gcGdfc3RhdF9hY3Rpdml0eSBXSEVSRSB3YWl0X2V2ZW50 IGkKIAogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KLSAgICAgICA8c3RydWN0ZmllbGQ+eGlk PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+eGlkPC90eXBlPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5sYXN0 X2Vycm9yX3hpZDwvc3RydWN0ZmllbGQ+IDx0eXBlPnhpZDwvdHlwZT4KICAgICAgIDwvcGFyYT4K ICAgICAgIDxwYXJhPgotICAgICAgIFRyYW5zYWN0aW9uIElEIG9mIHRoZSBwdWJsaXNoZXIgbm9k ZSBiZWluZyBhcHBsaWVkIHdoZW4gdGhlIGVycm9yCisgICAgICAgVHJhbnNhY3Rpb24gSUQgb2Yg dGhlIHB1Ymxpc2hlciBub2RlIGJlaW5nIGFwcGxpZWQgd2hlbiB0aGUgbGFzdCBlcnJvcgogICAg ICAgIG9jY3VycmVkLiAgVGhpcyBmaWVsZCBpcyBhbHdheXMgTlVMTCBpZiB0aGUgZXJyb3Igd2Fz IHJlcG9ydGVkCiAgICAgICAgZHVyaW5nIHRoZSBpbml0aWFsIGRhdGEgY29weS4KICAgICAgIDwv cGFyYT48L2VudHJ5PgpAQCAtMzEzNCwxOSArMzE5MiwxOSBAQCBTRUxFQ1QgcGlkLCB3YWl0X2V2 ZW50X3R5cGUsIHdhaXRfZXZlbnQgRlJPTSBwZ19zdGF0X2FjdGl2aXR5IFdIRVJFIHdhaXRfZXZl bnQgaQogCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgotICAgICAgIDxzdHJ1Y3RmaWVsZD5j b3VudDwvc3RydWN0ZmllbGQ+IDx0eXBlPnVpbnQ4PC90eXBlPgorICAgICAgIDxzdHJ1Y3RmaWVs ZD5sYXN0X2Vycm9yX2NvdW50PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+dWludDg8L3R5cGU+CiAgICAg ICA8L3BhcmE+CiAgICAgICA8cGFyYT4KLSAgICAgICBOdW1iZXIgb2YgY29uc2VjdXRpdmUgdGlt ZXMgdGhlIGVycm9yIG9jY3VycmVkCisgICAgICAgTnVtYmVyIG9mIGNvbnNlY3V0aXZlIHRpbWVz IHRoZSBsYXN0IGVycm9yIG9jY3VycmVkCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9y b3c+CiAKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5 Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Ci0gICAgICAgPHN0cnVjdGZpZWxkPmVy cm9yX21lc3NhZ2U8L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90eXBlPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5sYXN0X2Vycm9yX21lc3NhZ2U8L3N0cnVjdGZpZWxkPiA8dHlwZT50ZXh0PC90eXBl PgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+Ci0gICAgICAgVGhlIGVycm9yIG1lc3NhZ2UK KyAgICAgICBUaGUgbGFzdCBlcnJvciBtZXNzYWdlCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAg ICAgPC9yb3c+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdz LnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCA5NTIyNmI4 Li41ZjAwMDUzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5z cWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0xMjYzLDEx ICsxMjYzLDE3IEBAIENSRUFURSBWSUVXIHBnX3N0YXRfc3Vic2NyaXB0aW9uX3dvcmtlcnMgQVMK IAllLnN1YmlkLAogCXMuc3VibmFtZSwKIAllLnN1YnJlbGlkLAotCWUucmVsaWQsCi0JZS5jb21t YW5kLAotCWUueGlkLAotCWUuY291bnQsCi0JZS5lcnJvcl9tZXNzYWdlLAorCWUueGFjdF9jb21t aXQsCisJZS54YWN0X2NvbW1pdF9ieXRlcywKKwllLnhhY3RfZXJyb3IsCisJZS54YWN0X2Vycm9y X2J5dGVzLAorCWUueGFjdF9hYm9ydCwKKwllLnhhY3RfYWJvcnRfYnl0ZXMsCisJZS5sYXN0X2Vy cm9yX3JlbGlkLAorCWUubGFzdF9lcnJvcl9jb21tYW5kLAorCWUubGFzdF9lcnJvcl94aWQsCisJ ZS5sYXN0X2Vycm9yX2NvdW50LAorCWUubGFzdF9lcnJvcl9tZXNzYWdlLAogCWUubGFzdF9lcnJv cl90aW1lLAogCWUuc3RhdHNfcmVzZXQKICAgICBGUk9NIChTRUxFQ1QKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJ0aXRpb24uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNQYXJ0aXRpb24uYwppbmRleCA1YzcyM2JjLi4yMDE4NGM2IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjUGFydGl0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY1BhcnRpdGlvbi5jCkBAIC0xOTIsNiArMTkyLDE2IEBAIHN0YXRpYyB2b2lkIGZpbmRf bWF0Y2hpbmdfc3VicGxhbnNfcmVjdXJzZShQYXJ0aXRpb25QcnVuaW5nRGF0YSAqcHJ1bmVkYXRh LAogCQkJCQkJCQkJCSAgIGJvb2wgaW5pdGlhbF9wcnVuZSwKIAkJCQkJCQkJCQkgICBCaXRtYXBz ZXQgKip2YWxpZHN1YnBsYW5zKTsKIAorLyoKKyAqIFBhcnRpdGlvblR1cGxlUm91dGluZ1NpemUg LSBleHBvcnRlZCB0byBjYWxjdWxhdGUgdG90YWwgZGF0YSBzaXplCisgKiBvZiBsb2dpY2FsIHJl cGxpY2F0aW9uIG1lc2FnZSBhcHBseSwgYmVjYXVzZSB0aGlzIGlzIG9uZSBvZiB0aGUKKyAqIEFw cGx5RXhlY3V0aW9uRGF0YSBzdHJ1Y3QgbWVtYmVycy4KKyAqLworc2l6ZV90CitQYXJ0aXRpb25U dXBsZVJvdXRpbmdTaXplKHZvaWQpCit7CisJcmV0dXJuIHNpemVvZihQYXJ0aXRpb25UdXBsZVJv dXRpbmcpOworfQogCiAvKgogICogRXhlY1NldHVwUGFydGl0aW9uVHVwbGVSb3V0aW5nIC0gc2V0 cyB1cCBpbmZvcm1hdGlvbiBuZWVkZWQgZHVyaW5nCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w b3N0bWFzdGVyL3Bnc3RhdC5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wZ3N0YXQuYwppbmRl eCBkOWEyMDQ4Li45NWM4ZWNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bn c3RhdC5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcGdzdGF0LmMKQEAgLTU0LDYgKzU0 LDcgQEAKICNpbmNsdWRlICJwb3N0bWFzdGVyL2ZvcmtfcHJvY2Vzcy5oIgogI2luY2x1ZGUgInBv c3RtYXN0ZXIvaW50ZXJydXB0LmgiCiAjaW5jbHVkZSAicG9zdG1hc3Rlci9wb3N0bWFzdGVyLmgi CisjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbHdvcmtlci5oIgogI2luY2x1ZGUgInJlcGxp Y2F0aW9uL3Nsb3QuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi93YWxzZW5kZXIuaCIKICNpbmNs dWRlICJzdG9yYWdlL2JhY2tlbmRpZC5oIgpAQCAtMjg3LDYgKzI4OCwxMyBAQCBzdGF0aWMgUGdT dGF0X1NMUlVTdGF0cyBzbHJ1U3RhdHNbU0xSVV9OVU1fRUxFTUVOVFNdOwogc3RhdGljIEhUQUIg KnJlcGxTbG90U3RhdEhhc2ggPSBOVUxMOwogc3RhdGljIEhUQUIgKnN1YldvcmtlclN0YXRIYXNo ID0gTlVMTDsKIAorLyogU3RhdHMgb2YgcHJlcGFyZWQgdHJhbnNhY3Rpb25zIHNob3VsZCBiZSBk aXNwbGF5ZWQKKyAqIGF0IGVpdGhlciBjb21taXQgcHJlcGFyZWQgb3Igcm9sbGJhY2sgcHJlcGFy ZWQgdGltZSwgZXZlbiB3aGVuIGl0J3MKKyAqIGFmdGVyIHRoZSBzZXJ2ZXIgcmVzdGFydC4gV2Ug aGF2ZSB0aGUgYXBwbHkgd29ya2VyIHNlbmQgdGhvc2Ugc3RhdGlzdGljcworICogdG8gdGhlIHN0 YXRzIGNvbGxlY3RvciBhdCBleGl0IGFuZCB0aGUgc3RhcnR1cCBwcm9jZXNzIHJlc3RvcmUgdGhv c2UgYXQgcmVzdGFydC4KKyAqLworc3RhdGljIEhUQUIgKnN1YldvcmtlclByZXBhcmVkWGFjdFNp emVIYXNoID0gTlVMTDsKKwogLyoKICAqIExpc3Qgb2YgT0lEcyBvZiBkYXRhYmFzZXMgd2UgbmVl ZCB0byB3cml0ZSBvdXQuICBJZiBhbiBlbnRyeSBpcyBJbnZhbGlkT2lkLAogICogaXQgbWVhbnMg dG8gd3JpdGUgb25seSB0aGUgc2hhcmVkLWNhdGFsb2cgc3RhdHMgKCJEQiAwIik7IG90aGVyd2lz ZSwgd2UKQEAgLTMzOCw2ICszNDYsOSBAQCBzdGF0aWMgdm9pZCBwZ3N0YXRfcmVzZXRfcmVwbHNs b3QoUGdTdGF0X1N0YXRSZXBsU2xvdEVudHJ5ICpzbG90c3RhdHMsIFRpbWVzdGFtcAogCiBzdGF0 aWMgUGdTdGF0X1N0YXRTdWJXb3JrZXJFbnRyeSAqcGdzdGF0X2dldF9zdWJ3b3JrZXJfZW50cnko T2lkIHN1YmlkLCBPaWQgc3VicmVsaWQsCiAJCQkJCQkJCQkJCQkJCQkgYm9vbCBjcmVhdGUpOwor c3RhdGljIFBnU3RhdF9TdGF0U3ViV29ya2VyUHJlcGFyZWRYYWN0U2l6ZSAqcGdzdGF0X2dldF9z dWJ3b3JrZXJfcHJlcGFyZWRfdHhuKE9pZCBzdWJpZCwKKwkJCQkJCQkJCQkJCQkJCQkJCQkgICBj aGFyICpnaWQsIGJvb2wgY3JlYXRlKTsKKwogc3RhdGljIHZvaWQgcGdzdGF0X3Jlc2V0X3N1Yndv cmtlcl9lbnRyeShQZ1N0YXRfU3RhdFN1YldvcmtlckVudHJ5ICp3ZW50cnksIFRpbWVzdGFtcFR6 IHRzKTsKIHN0YXRpYyB2b2lkIHBnc3RhdF9yZXBvcnRfc3Vic2NyaXB0aW9uX3B1cmdlKFBnU3Rh dF9Nc2dTdWJzY3JpcHRpb25QdXJnZSAqbXNnKTsKIHN0YXRpYyB2b2lkIHBnc3RhdF9yZXBvcnRf c3Vid29ya2VyX3B1cmdlKFBnU3RhdF9Nc2dTdWJXb3JrZXJQdXJnZSAqbXNnKTsKQEAgLTM4OCw2 ICszOTksOSBAQCBzdGF0aWMgdm9pZCBwZ3N0YXRfcmVjdl90ZW1wZmlsZShQZ1N0YXRfTXNnVGVt cEZpbGUgKm1zZywgaW50IGxlbik7CiBzdGF0aWMgdm9pZCBwZ3N0YXRfcmVjdl9zdWJzY3JpcHRp b25fcHVyZ2UoUGdTdGF0X01zZ1N1YnNjcmlwdGlvblB1cmdlICptc2csIGludCBsZW4pOwogc3Rh dGljIHZvaWQgcGdzdGF0X3JlY3Zfc3Vid29ya2VyX2Vycm9yKFBnU3RhdF9Nc2dTdWJXb3JrZXJF cnJvciAqbXNnLCBpbnQgbGVuKTsKIHN0YXRpYyB2b2lkIHBnc3RhdF9yZWN2X3N1Yndvcmtlcl9w dXJnZShQZ1N0YXRfTXNnU3ViV29ya2VyUHVyZ2UgKm1zZywgaW50IGxlbik7CitzdGF0aWMgdm9p ZCBwZ3N0YXRfcmVjdl9zdWJ3b3JrZXJfeGFjdF9lbmQoUGdTdGF0X01zZ1N1YldvcmtlclhhY3RF bmQgKm1zZywgaW50IGxlbik7CitzdGF0aWMgdm9pZCBwZ3N0YXRfcmVjdl9zdWJ3b3JrZXJfdHdv cGhhc2VfeGFjdChQZ1N0YXRfTXNnU3ViV29ya2VyVHdvcGhhc2VYYWN0ICptc2csIGludCBsZW4p OworCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogICogUHVibGljIGZ1bmN0aW9ucyBjYWxsZWQgZnJvbSBwb3N0bWFzdGVy IGZvbGxvdwpAQCAtMjExNSw2ICsyMTI5LDczIEBAIHBnc3RhdF9yZXBvcnRfcmVwbHNsb3RfZHJv cChjb25zdCBjaGFyICpzbG90bmFtZSkKIH0KIAogLyogLS0tLS0tLS0tLQorICogcGdzdGF0X3Jl cG9ydF9zdWJ3b3JrZXJfeGFjdF9lbmQoKSAtCisgKgorICogIFRlbGwgdGhlIGNvbGxlY3RvciB0 aGF0IHdvcmtlciB0cmFuc2FjdGlvbiBoYXMgZmluaXNoZWQgd2l0aG91dCBwcm9ibGVtLgorICog LS0tLS0tLS0tLQorICovCit2b2lkCitwZ3N0YXRfcmVwb3J0X3N1Yndvcmtlcl94YWN0X2VuZChP aWQgc3ViaWQsIE9pZCBzdWJyZWwsCisJCQkJCQkJCSBMb2dpY2FsUmVwTXNnVHlwZSBjb21tYW5k LCBQZ1N0YXRfQ291bnRlciB4YWN0X3NpemUpCit7CisJUGdTdGF0X01zZ1N1YldvcmtlclhhY3RF bmQgbXNnOworCisJQXNzZXJ0KGNvbW1hbmQgPT0gMCAvKiB0YWJsZSBzeW5jIHdvcmtlciAqLyB8 fAorCQkgICBjb21tYW5kID09IExPR0lDQUxfUkVQX01TR19DT01NSVQgfHwKKwkJICAgY29tbWFu ZCA9PSBMT0dJQ0FMX1JFUF9NU0dfU1RSRUFNX0FCT1JUIHx8CisJCSAgIGNvbW1hbmQgPT0gTE9H SUNBTF9SRVBfTVNHX1NUUkVBTV9DT01NSVQpOworCisJcGdzdGF0X3NldGhlYWRlcigmbXNnLm1f aGRyLCBQR1NUQVRfTVRZUEVfU1VCV09SS0VSWEFDVEVORCk7CisJbXNnLm1fc3ViaWQgPSBzdWJp ZDsKKwltc2cubV9zdWJyZWxpZCA9IHN1YnJlbDsKKwltc2cubV9jb21tYW5kID0gY29tbWFuZDsK Kwltc2cubV94YWN0X2J5dGVzID0geGFjdF9zaXplOworCXBnc3RhdF9zZW5kKCZtc2csIHNpemVv ZihQZ1N0YXRfTXNnU3ViV29ya2VyWGFjdEVuZCkpOworCisJcmVzZXRfYXBwbHlfZXJyb3JfY29u dGV4dF94YWN0X3NpemUoKTsKK30KKworLyogLS0tLS0tLS0tLQorICogcGdzdGF0X3JlcG9ydF9z dWJ3b3JrZXJfdHdvcGhhc2VfeGFjdCgpIC0KKyAqCisgKiAgVGVsbCB0aGUgY29sbGVjdG9yIHRo YXQgd29ya2VyIHRyYW5zYWN0aW9uIGhhcyBkb25lIDJQQyByZWxhdGVkIG9wZXJhdGlvbi4KKyAq IC0tLS0tLS0tLS0KKyAqLwordm9pZAorcGdzdGF0X3JlcG9ydF9zdWJ3b3JrZXJfdHdvcGhhc2Vf eGFjdChPaWQgc3ViaWQsIExvZ2ljYWxSZXBNc2dUeXBlIGNvbW1hbmQsCisJCQkJCQkJCQkgIFBn U3RhdF9Db3VudGVyIHhhY3Rfc2l6ZSwKKwkJCQkJCQkJCSAgTG9naWNhbFJlcFByZXBhcmVkVHhu RGF0YSAqcHJlcGFyZV9kYXRhLAorCQkJCQkJCQkJICBMb2dpY2FsUmVwQ29tbWl0UHJlcGFyZWRU eG5EYXRhICpjb21taXRfZGF0YSwKKwkJCQkJCQkJCSAgTG9naWNhbFJlcFJvbGxiYWNrUHJlcGFy ZWRUeG5EYXRhICpyb2xsYmFja19kYXRhKQoreworCVBnU3RhdF9Nc2dTdWJXb3JrZXJUd29waGFz ZVhhY3QgbXNnOworCisJQXNzZXJ0KGNvbW1hbmQgPT0gTE9HSUNBTF9SRVBfTVNHX1BSRVBBUkUg fHwKKwkJICAgY29tbWFuZCA9PSBMT0dJQ0FMX1JFUF9NU0dfU1RSRUFNX1BSRVBBUkUgfHwKKwkJ ICAgY29tbWFuZCA9PSBMT0dJQ0FMX1JFUF9NU0dfQ09NTUlUX1BSRVBBUkVEIHx8CisJCSAgIGNv bW1hbmQgPT0gTE9HSUNBTF9SRVBfTVNHX1JPTExCQUNLX1BSRVBBUkVEKTsKKworCS8qIHNldHVw IHRoZSBtZXNzYWdlICovCisJcGdzdGF0X3NldGhlYWRlcigmbXNnLm1faGRyLCBQR1NUQVRfTVRZ UEVfU1VCV09SS0VSVFdPUEhBU0VYQUNUKTsKKwltc2cubV9zdWJpZCA9IHN1YmlkOworCW1zZy5t X2NvbW1hbmQgPSBjb21tYW5kOworCisJLyogZ2V0IHRoZSBnaWQgZm9yIHRoaXMgdHdvIHBoYXNl IG9wZXJhdGlvbiAqLworCWlmIChjb21tYW5kID09IExPR0lDQUxfUkVQX01TR19QUkVQQVJFIHx8 CisJCWNvbW1hbmQgPT0gTE9HSUNBTF9SRVBfTVNHX1NUUkVBTV9QUkVQQVJFKQorCQltZW1jcHko bXNnLm1fZ2lkLCBwcmVwYXJlX2RhdGEtPmdpZCwgR0lEU0laRSk7CisJZWxzZSBpZiAoY29tbWFu ZCA9PSBMT0dJQ0FMX1JFUF9NU0dfQ09NTUlUX1BSRVBBUkVEKQorCQltZW1jcHkobXNnLm1fZ2lk LCBjb21taXRfZGF0YS0+Z2lkLCBHSURTSVpFKTsKKwllbHNlIC8qIHJvbGxiYWNrIHByZXBhcmVk ICovCisJCW1lbWNweShtc2cubV9naWQsIHJvbGxiYWNrX2RhdGEtPmdpZCwgR0lEU0laRSk7CisK Kwltc2cubV94YWN0X2J5dGVzID0geGFjdF9zaXplOworCXBnc3RhdF9zZW5kKCZtc2csIHNpemVv ZihQZ1N0YXRfTXNnU3ViV29ya2VyVHdvcGhhc2VYYWN0KSk7CisKKwlyZXNldF9hcHBseV9lcnJv cl9jb250ZXh0X3hhY3Rfc2l6ZSgpOworfQorCisvKiAtLS0tLS0tLS0tCiAgKiBwZ3N0YXRfcmVw b3J0X3N1Yndvcmtlcl9lcnJvcigpIC0KICAqCiAgKglUZWxsIHRoZSBjb2xsZWN0b3IgYWJvdXQg dGhlIHN1YnNjcmlwdGlvbiB3b3JrZXIgZXJyb3IuCkBAIC0yMTM0LDYgKzIyMTUsNyBAQCBwZ3N0 YXRfcmVwb3J0X3N1Yndvcmtlcl9lcnJvcihPaWQgc3ViaWQsIE9pZCBzdWJyZWxpZCwgT2lkIHJl bGlkLAogCXBnc3RhdF9zZXRoZWFkZXIoJm1zZy5tX2hkciwgUEdTVEFUX01UWVBFX1NVQldPUktF UkVSUk9SKTsKIAltc2cubV9zdWJpZCA9IHN1YmlkOwogCW1zZy5tX3N1YnJlbGlkID0gc3VicmVs aWQ7CisJbXNnLm1feGFjdF9lcnJvcl9ieXRlcyA9IGdldF9hcHBseV9lcnJvcl9jb250ZXh0X3hh Y3Rfc2l6ZSgpOwogCW1zZy5tX2RiaWQgPSBNeURhdGFiYXNlSWQ7CiAJbXNnLm1fcmVsaWQgPSBy ZWxpZDsKIAltc2cubV9jb21tYW5kID0gY29tbWFuZDsKQEAgLTIxNDIsNiArMjIyNCw4IEBAIHBn c3RhdF9yZXBvcnRfc3Vid29ya2VyX2Vycm9yKE9pZCBzdWJpZCwgT2lkIHN1YnJlbGlkLCBPaWQg cmVsaWQsCiAJc3RybGNweShtc2cubV9tZXNzYWdlLCBlcnJtc2csIFBHU1RBVF9TVUJXT1JLRVJF UlJPUl9NU0dMRU4pOwogCiAJcGdzdGF0X3NlbmQoJm1zZywgbGVuKTsKKworCXJlc2V0X2FwcGx5 X2Vycm9yX2NvbnRleHRfeGFjdF9zaXplKCk7CiB9CiAKIC8qIC0tLS0tLS0tLS0KQEAgLTM4NzYs NiArMzk2MCwxNCBAQCBQZ3N0YXRDb2xsZWN0b3JNYWluKGludCBhcmdjLCBjaGFyICphcmd2W10p CiAJCQkJCXBnc3RhdF9yZWN2X3N1Yndvcmtlcl9wdXJnZSgmbXNnLm1zZ19zdWJ3b3JrZXJwdXJn ZSwgbGVuKTsKIAkJCQkJYnJlYWs7CiAKKwkJCQljYXNlIFBHU1RBVF9NVFlQRV9TVUJXT1JLRVJY QUNURU5EOgorCQkJCQlwZ3N0YXRfcmVjdl9zdWJ3b3JrZXJfeGFjdF9lbmQoJm1zZy5tc2dfc3Vi d29ya2VyeGFjdGVuZCwgbGVuKTsKKwkJCQkJYnJlYWs7CisKKwkJCQljYXNlIFBHU1RBVF9NVFlQ RV9TVUJXT1JLRVJUV09QSEFTRVhBQ1Q6CisJCQkJCXBnc3RhdF9yZWN2X3N1Yndvcmtlcl90d29w aGFzZV94YWN0KCZtc2cubXNnX3N1YndvcmtlcnR3b3BoYXNleGFjdCwgbGVuKTsKKwkJCQkJYnJl YWs7CisKIAkJCQlkZWZhdWx0OgogCQkJCQlicmVhazsKIAkJCX0KQEAgLTQxOTMsNiArNDI4NSwy MiBAQCBwZ3N0YXRfd3JpdGVfc3RhdHNmaWxlcyhib29sIHBlcm1hbmVudCwgYm9vbCBhbGxEYnMp CiAJfQogCiAJLyoKKwkgKiBXcml0ZSBzdWJzY3JpcHRpb24gd29ya2VyJ3MgcHJlcGFyZWQgdHJh bnNhY3Rpb24gc3RydWN0CisJICovCisJaWYgKHN1YldvcmtlclByZXBhcmVkWGFjdFNpemVIYXNo KQorCXsKKwkJUGdTdGF0X1N0YXRTdWJXb3JrZXJQcmVwYXJlZFhhY3RTaXplICpwcmVwYXJlZF9z aXplOworCisJCWhhc2hfc2VxX2luaXQoJmhzdGF0LCBzdWJXb3JrZXJQcmVwYXJlZFhhY3RTaXpl SGFzaCk7CisJCXdoaWxlKChwcmVwYXJlZF9zaXplID0gKFBnU3RhdF9TdGF0U3ViV29ya2VyUHJl cGFyZWRYYWN0U2l6ZSAqKSBoYXNoX3NlcV9zZWFyY2goJmhzdGF0KSkgIT0gTlVMTCkKKwkJewor CQkJZnB1dGMoJ1AnLCBmcG91dCk7CisJCQlyYyA9IGZ3cml0ZShwcmVwYXJlZF9zaXplLCBzaXpl b2YoUGdTdGF0X1N0YXRTdWJXb3JrZXJQcmVwYXJlZFhhY3RTaXplKSwgMSwgZnBvdXQpOworCQkJ KHZvaWQpIHJjOyAJCQkvKiB3ZSdsbCBjaGVjayBmb3IgZXJyb3Igd2l0aCBmZXJyb3IgKi8KKwkJ fQorCX0KKworCS8qCiAJICogTm8gbW9yZSBvdXRwdXQgdG8gYmUgZG9uZS4gQ2xvc2UgdGhlIHRl bXAgZmlsZSBhbmQgcmVwbGFjZSB0aGUgb2xkCiAJICogcGdzdGF0LnN0YXQgd2l0aCBpdC4gIFRo ZSBmZXJyb3IoKSBjaGVjayByZXBsYWNlcyB0ZXN0aW5nIGZvciBlcnJvcgogCSAqIGFmdGVyIGVh Y2ggaW5kaXZpZHVhbCBmcHV0YyBvciBmd3JpdGUgYWJvdmUuCkBAIC00Njk1LDYgKzQ4MDMsNDAg QEAgcGdzdGF0X3JlYWRfc3RhdHNmaWxlcyhPaWQgb25seWRiLCBib29sIHBlcm1hbmVudCwgYm9v bCBkZWVwKQogCQkJCQlicmVhazsKIAkJCQl9CiAKKwkJCWNhc2UgJ1AnOgorCQkJCXsKKwkJCQkJ UGdTdGF0X1N0YXRTdWJXb3JrZXJQcmVwYXJlZFhhY3RTaXplIGJ1ZmY7CisJCQkJCVBnU3RhdF9T dGF0U3ViV29ya2VyUHJlcGFyZWRYYWN0U2l6ZSAqcHJlcGFyZWRfeGFjdF9zaXplOworCisJCQkJ CWlmIChmcmVhZCgmYnVmZiwgMSwgc2l6ZW9mKFBnU3RhdF9TdGF0U3ViV29ya2VyUHJlcGFyZWRY YWN0U2l6ZSksCisJCQkJCQkJICBmcGluKSAhPSBzaXplb2YoUGdTdGF0X1N0YXRTdWJXb3JrZXJQ cmVwYXJlZFhhY3RTaXplKSkKKwkJCQkJeworCQkJCQkJZXJlcG9ydChwZ1N0YXRSdW5uaW5nSW5D b2xsZWN0b3IgPyBMT0cgOiBXQVJOSU5HLAorCQkJCQkJCQkoZXJybXNnKCJjb3JydXB0ZWQgc3Rh dGlzdGljcyBmaWxlIFwiJXNcIiIsCisJCQkJCQkJCQkJc3RhdGZpbGUpKSk7CisJCQkJCQlnb3Rv IGRvbmU7CisJCQkJCX0KKworCQkJCQlpZiAoc3ViV29ya2VyUHJlcGFyZWRYYWN0U2l6ZUhhc2gg PT0gTlVMTCkKKwkJCQkJeworCQkJCQkJSEFTSENUTAkJaGFzaF9jdGw7CisKKwkJCQkJCWhhc2hf Y3RsLmtleXNpemUgPSBzaXplb2YoUGdTdGF0X1N0YXRTdWJXb3JrZXJQcmVwYXJlZFhhY3QpOwor CQkJCQkJaGFzaF9jdGwuZW50cnlzaXplID0gc2l6ZW9mKFBnU3RhdF9TdGF0U3ViV29ya2VyUHJl cGFyZWRYYWN0U2l6ZSk7CisJCQkJCQloYXNoX2N0bC5oY3h0ID0gcGdTdGF0TG9jYWxDb250ZXh0 OworCQkJCQkJc3ViV29ya2VyUHJlcGFyZWRYYWN0U2l6ZUhhc2ggPSBoYXNoX2NyZWF0ZSgiU3Vi c2NyaXB0aW9uIHdvcmtlciBzdGF0cyBvZiBwcmVwYXJlZCB0eG4iLAorCQkJCQkJCQkJCQkJCQlQ R1NUQVRfU1VCV09SS0VSX0hBU0hfU0laRSwKKwkJCQkJCQkJCQkJCQkJJmhhc2hfY3RsLAorCQkJ CQkJCQkJCQkJCQlIQVNIX0VMRU0gfCBIQVNIX1NUUklOR1MgfCBIQVNIX0NPTlRFWFQpOworCQkJ CQl9CisKKwkJCQkJcHJlcGFyZWRfeGFjdF9zaXplID0KKwkJCQkJCShQZ1N0YXRfU3RhdFN1Yldv cmtlclByZXBhcmVkWGFjdFNpemUgKikgaGFzaF9zZWFyY2goc3ViV29ya2VyUHJlcGFyZWRYYWN0 U2l6ZUhhc2gsCisJCQkJCQkJCQkJCQkJCQkJCQkJICh2b2lkICopICZidWZmLmtleSwKKwkJCQkJ CQkJCQkJCQkJCQkJCQkgSEFTSF9FTlRFUiwgTlVMTCk7CisJCQkJCW1lbWNweShwcmVwYXJlZF94 YWN0X3NpemUsICZidWZmLCBzaXplb2YoUGdTdGF0X1N0YXRTdWJXb3JrZXJQcmVwYXJlZFhhY3RT aXplKSk7CisJCQkJCWJyZWFrOworCQkJCX0KIAkJCWNhc2UgJ0UnOgogCQkJCWdvdG8gZG9uZTsK IApAQCAtNTI2MCw2ICs1NDAyLDcgQEAgcGdzdGF0X2NsZWFyX3NuYXBzaG90KHZvaWQpCiAJcGdT dGF0REJIYXNoID0gTlVMTDsKIAlyZXBsU2xvdFN0YXRIYXNoID0gTlVMTDsKIAlzdWJXb3JrZXJT dGF0SGFzaCA9IE5VTEw7CisJc3ViV29ya2VyUHJlcGFyZWRYYWN0U2l6ZUhhc2ggPSBOVUxMOwog CiAJLyoKIAkgKiBIaXN0b3JpY2FsbHkgdGhlIGJhY2tlbmRfc3RhdHVzLmMgZmFjaWxpdGllcyBs aXZlZCBpbiB0aGlzIGZpbGUsIGFuZApAQCAtNjI1OSw2ICs2NDAyLDEwNSBAQCBwZ3N0YXRfcmVj dl9zdWJzY3JpcHRpb25fcHVyZ2UoUGdTdGF0X01zZ1N1YnNjcmlwdGlvblB1cmdlICptc2csIGlu dCBsZW4pCiB9CiAKIC8qIC0tLS0tLS0tLS0KKyAqIHBnc3RhdF9yZWN2X3N1Yndvcmtlcl94YWN0 X2VuZCgpIC0KKyAqCisgKglQcm9jZXNzIGEgU1VCV09SS0VSWEFDVEVORCBtZXNzYWdlLgorICog LS0tLS0tLS0tLQorICovCitzdGF0aWMgdm9pZAorcGdzdGF0X3JlY3Zfc3Vid29ya2VyX3hhY3Rf ZW5kKFBnU3RhdF9Nc2dTdWJXb3JrZXJYYWN0RW5kICptc2csIGludCBsZW4pCit7CisJUGdTdGF0 X1N0YXRTdWJXb3JrZXJFbnRyeSAqd2VudHJ5OworCisJd2VudHJ5ID0gcGdzdGF0X2dldF9zdWJ3 b3JrZXJfZW50cnkobXNnLT5tX3N1YmlkLCBtc2ctPm1fc3VicmVsaWQsIHRydWUpOworCUFzc2Vy dCh3ZW50cnkpOworCisJLyogdGFibGUgc3luYyB3b3JrZXIgKi8KKwlpZiAobXNnLT5tX2NvbW1h bmQgPT0gMCkKKwkJd2VudHJ5LT54YWN0X2NvbW1pdCsrOworCWVsc2UKKwl7CisJCS8qIGFwcGx5 IHdvcmtlciAqLworCQlzd2l0Y2gobXNnLT5tX2NvbW1hbmQpCisJCXsKKwkJCWNhc2UgTE9HSUNB TF9SRVBfTVNHX0NPTU1JVDoKKwkJCWNhc2UgTE9HSUNBTF9SRVBfTVNHX1NUUkVBTV9DT01NSVQ6 CisJCQkJd2VudHJ5LT54YWN0X2NvbW1pdCsrOworCQkJCXdlbnRyeS0+eGFjdF9jb21taXRfYnl0 ZXMgKz0gbXNnLT5tX3hhY3RfYnl0ZXM7CisJCQkJYnJlYWs7CisJCQljYXNlIExPR0lDQUxfUkVQ X01TR19TVFJFQU1fQUJPUlQ6CisJCQkJd2VudHJ5LT54YWN0X2Fib3J0Kys7CisJCQkJd2VudHJ5 LT54YWN0X2Fib3J0X2J5dGVzICs9IG1zZy0+bV94YWN0X2J5dGVzOworCQkJCWJyZWFrOworCQkJ ZGVmYXVsdDoKKwkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBsb2dpY2FsIG1lc3NhZ2UgdHlw ZSBhcyBub3JtYWwgYXBwbHkgZW5kIik7CisJCQkJYnJlYWs7CisJCX0KKwl9Cit9CisKKy8qIC0t LS0tLS0tLS0KKyAqIHBnc3RhdF9yZWN2X3N1Yndvcmtlcl90d29waGFzZV94YWN0KCkgLQorICoK KyAqCVByb2Nlc3MgYSBTVUJXT1JLRVJUV09QSEFTRVhBQ1QgbWVzc2FnZS4KKyAqIC0tLS0tLS0t LS0KKyAqLworc3RhdGljIHZvaWQKK3Bnc3RhdF9yZWN2X3N1Yndvcmtlcl90d29waGFzZV94YWN0 KFBnU3RhdF9Nc2dTdWJXb3JrZXJUd29waGFzZVhhY3QgKm1zZywgaW50IGxlbikKK3sKKwlQZ1N0 YXRfU3RhdFN1YldvcmtlclByZXBhcmVkWGFjdFNpemUgKnByZXBhcmVkX3R4bjsKKwlQZ1N0YXRf U3RhdFN1YldvcmtlckVudHJ5ICp3ZW50cnk7CisJUGdTdGF0X1N0YXRTdWJXb3JrZXJQcmVwYXJl ZFhhY3Qga2V5OworCisJcHJlcGFyZWRfdHhuID0gcGdzdGF0X2dldF9zdWJ3b3JrZXJfcHJlcGFy ZWRfdHhuKG1zZy0+bV9zdWJpZCwgbXNnLT5tX2dpZCwgdHJ1ZSk7CisJQXNzZXJ0KHByZXBhcmVk X3R4bik7CisJc3dpdGNoKG1zZy0+bV9jb21tYW5kKQorCXsKKwkJY2FzZSBMT0dJQ0FMX1JFUF9N U0dfUFJFUEFSRToKKwkJY2FzZSBMT0dJQ0FMX1JFUF9NU0dfU1RSRUFNX1BSRVBBUkU6CisJCQkv KgorCQkJICogTWFrZSBlYWNoIHNpemUgb2YgcHJlcGFyZWQgdHJhbnNhY3Rpb24gcGVyc2lzdGVu dAorCQkJICogc28gdGhhdCB3ZSBjYW4gdXBkYXRlIHN0YXRzIG92ZXIgdGhlIHNlcnZlciByZXN0 YXJ0CisJCQkgKiBhbmQgbWFrZSBwcmVwYXJlZCBzdGF0cyB1cGRhdGVkIHdoZW4gY29tbWl0IHBy ZXBhcmVkCisJCQkgKiBvciByb2xsYmFjayBwcmVwYXJlZCBhcnJpdmVzLgorCQkJICovCisJCQlw cmVwYXJlZF90eG4tPnN1YmlkID0gbXNnLT5tX3N1YmlkOworCQkJc3RybGNweShwcmVwYXJlZF90 eG4tPmdpZCwgbXNnLT5tX2dpZCwgc3RybGVuKG1zZy0+bV9naWQpICsgMSk7CisJCQlwcmVwYXJl ZF90eG4tPnhhY3Rfc2l6ZSA9IG1zZy0+bV94YWN0X2J5dGVzOworCQkJYnJlYWs7CisKKwkJY2Fz ZSBMT0dJQ0FMX1JFUF9NU0dfQ09NTUlUX1BSRVBBUkVEOgorCQljYXNlIExPR0lDQUxfUkVQX01T R19ST0xMQkFDS19QUkVQQVJFRDoKKwkJCS8qIFVwZGF0ZSBleHBvcnRlZCB4YWN0IHN0YXRzIG5v dyAqLworCQkJd2VudHJ5ID0gcGdzdGF0X2dldF9zdWJ3b3JrZXJfZW50cnkobXNnLT5tX3N1Ymlk LAorCQkJCQkJCQkJCQkJSW52YWxpZE9pZCAvKiBhcHBseSB3b3JrZXIgKi8sCisJCQkJCQkJCQkJ CQl0cnVlKTsKKwkJCUFzc2VydCh3ZW50cnkpOworCQkJaWYgKG1zZy0+bV9jb21tYW5kID09IExP R0lDQUxfUkVQX01TR19DT01NSVRfUFJFUEFSRUQpCisJCQl7CisJCQkJd2VudHJ5LT54YWN0X2Nv bW1pdCsrOworCQkJCXdlbnRyeS0+eGFjdF9jb21taXRfYnl0ZXMgKz0gcHJlcGFyZWRfdHhuLT54 YWN0X3NpemU7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJd2VudHJ5LT54YWN0X2Fib3J0Kys7 CisJCQkJd2VudHJ5LT54YWN0X2Fib3J0X2J5dGVzICs9IHByZXBhcmVkX3R4bi0+eGFjdF9zaXpl OworCQkJfQorCisJCQkvKiBDbGVhbiB1cCB0aGlzIGdpZCBmcm9tIHRyYW5zYWN0aW9uIHNpemUg aGFzaCAqLworCQkJa2V5LnN1YmlkID0gcHJlcGFyZWRfdHhuLT5zdWJpZDsKKwkJCW1lbWNweShr ZXkuZ2lkLCBtc2ctPm1fZ2lkLCBzdHJsZW4obXNnLT5tX2dpZCkpOworCQkJKHZvaWQpIGhhc2hf c2VhcmNoKHN1YldvcmtlclByZXBhcmVkWGFjdFNpemVIYXNoLAorCQkJCQkJCSAgICh2b2lkICop ICZrZXksIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCQll bG9nKEVSUk9SLCAidW5leHBlY3RlZCBsb2dpY2FsIG1lc3NhZ2UgdHlwZSBhcyBwcmVwYXJlIHRy YW5zYWN0aW9uIik7CisJCQlicmVhazsKKwl9Cit9CisKKy8qIC0tLS0tLS0tLS0KICAqIHBnc3Rh dF9yZWN2X3N1Yndvcmtlcl9lcnJvcigpIC0KICAqCiAgKglQcm9jZXNzIGEgU1VCV09SS0VSRVJS T1IgbWVzc2FnZS4KQEAgLTYyNzMsNiArNjUxNSwxMCBAQCBwZ3N0YXRfcmVjdl9zdWJ3b3JrZXJf ZXJyb3IoUGdTdGF0X01zZ1N1YldvcmtlckVycm9yICptc2csIGludCBsZW4pCiAJd2VudHJ5ID0g cGdzdGF0X2dldF9zdWJ3b3JrZXJfZW50cnkobXNnLT5tX3N1YmlkLCBtc2ctPm1fc3VicmVsaWQs IHRydWUpOwogCUFzc2VydCh3ZW50cnkpOwogCisJLyogZ2VuZXJhbCB0cmFuc2FjdGlvbiBzdGF0 cyBmb3IgZXJyb3IgKi8KKwl3ZW50cnktPnhhY3RfZXJyb3IrKzsKKwl3ZW50cnktPnhhY3RfZXJy b3JfYnl0ZXMgKz0gbXNnLT5tX3hhY3RfZXJyb3JfYnl0ZXM7CisKIAkvKgogCSAqIFVwZGF0ZSBv bmx5IHRoZSBjb3VudGVyIGFuZCB0aW1lc3RhbXAgaWYgd2UgcmVjZWl2ZWQgdGhlIHNhbWUgZXJy b3IKIAkgKiBhZ2FpbgpAQCAtNjQ4OSw2ICs2NzM1LDUxIEBAIHBnc3RhdF9nZXRfc3Vid29ya2Vy X2VudHJ5KE9pZCBzdWJpZCwgT2lkIHN1YnJlbGlkLCBib29sIGNyZWF0ZSkKIH0KIAogLyogLS0t LS0tLS0tLQorICogcGdzdGF0X2dldF9zdWJ3b3JrZXJfcHJlcGFyZWRfdHhuCisgKgorICogUmV0 dXJuIHN1YnNjcmlwdGlvbiB3b3JrZXIgZW50cnkgd2l0aCB0aGUgZ2l2ZW4gc3Vic2NyaXB0aW9u IE9JRCBhbmQKKyAqIGdpZC4KKyAqIC0tLS0tLS0tLS0KKyAqLworc3RhdGljIFBnU3RhdF9TdGF0 U3ViV29ya2VyUHJlcGFyZWRYYWN0U2l6ZSoKK3Bnc3RhdF9nZXRfc3Vid29ya2VyX3ByZXBhcmVk X3R4bihPaWQgc3ViaWQsIGNoYXIgKmdpZCwgYm9vbCBjcmVhdGUpCit7CisJUGdTdGF0X1N0YXRT dWJXb3JrZXJQcmVwYXJlZFhhY3Qga2V5OworCVBnU3RhdF9TdGF0U3ViV29ya2VyUHJlcGFyZWRY YWN0U2l6ZSAqcHJlcGFyZWRfdHhuX3NpemU7CisJSEFTSEFDVElPTglhY3Rpb247CisJYm9vbAkJ Zm91bmQ7CisKKwlpZiAoc3ViV29ya2VyUHJlcGFyZWRYYWN0U2l6ZUhhc2ggPT0gTlVMTCkKKwl7 CisJCUhBU0hDVEwJCWhhc2hfY3RsOworCisJCWhhc2hfY3RsLmtleXNpemUgPSBzaXplb2YoUGdT dGF0X1N0YXRTdWJXb3JrZXJQcmVwYXJlZFhhY3QpOworCQloYXNoX2N0bC5lbnRyeXNpemUgPSBz aXplb2YoUGdTdGF0X1N0YXRTdWJXb3JrZXJQcmVwYXJlZFhhY3RTaXplKTsKKwkJaGFzaF9jdGwu aGN4dCA9IHBnU3RhdExvY2FsQ29udGV4dDsKKwkJc3ViV29ya2VyUHJlcGFyZWRYYWN0U2l6ZUhh c2ggPSBoYXNoX2NyZWF0ZSgiU3Vic2NyaXB0aW9uIHdvcmtlciBzdGF0cyBvZiBwcmVwYXJlZCB0 eG4iLAorCQkJCQkJCQkJCQkJCVBHU1RBVF9TVUJXT1JLRVJfSEFTSF9TSVpFLAorCQkJCQkJCQkJ CQkJCSZoYXNoX2N0bCwKKwkJCQkJCQkJCQkJCQlIQVNIX0VMRU0gfCBIQVNIX1NUUklOR1MpOwor CX0KKworCWtleS5zdWJpZCA9IHN1YmlkOworCW1lbWNweShrZXkuZ2lkLCBnaWQsIHN0cmxlbihn aWQpKTsKKwlhY3Rpb24gPSAoY3JlYXRlID8gSEFTSF9FTlRFUiA6IEhBU0hfRklORCk7CisJcHJl cGFyZWRfdHhuX3NpemUgPSAoUGdTdGF0X1N0YXRTdWJXb3JrZXJQcmVwYXJlZFhhY3RTaXplICop IGhhc2hfc2VhcmNoKHN1YldvcmtlclByZXBhcmVkWGFjdFNpemVIYXNoLAorCQkJCQkJCQkJCQkJ CQkJCQkJCSAodm9pZCAqKSAma2V5LAorCQkJCQkJCQkJCQkJCQkJCQkJCSBhY3Rpb24sICZmb3Vu ZCk7CisKKwlpZiAoY3JlYXRlICYmICFmb3VuZCkKKwl7CisJCXByZXBhcmVkX3R4bl9zaXplLT5z dWJpZCA9IDA7CisJCXByZXBhcmVkX3R4bl9zaXplLT5naWRbMF0gPSAnXDAnOworCQlwcmVwYXJl ZF90eG5fc2l6ZS0+eGFjdF9zaXplID0gMDsKKwl9CisKKwlyZXR1cm4gcHJlcGFyZWRfdHhuX3Np emU7Cit9CisKKy8qIC0tLS0tLS0tLS0KICAqIHBnc3RhdF9yZXNldF9zdWJ3b3JrZXJfZW50cnkK ICAqCiAgKiBSZXNldCB0aGUgZ2l2ZW4gc3Vic2NyaXB0aW9uIHdvcmtlciBzdGF0aXN0aWNzLgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKaW5kZXggZjA3OTgz YS4uYWZmNzhmZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90 YWJsZXN5bmMuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3lu Yy5jCkBAIC0xMTQ5LDYgKzExNDksMTIgQEAgY29weV90YWJsZV9kb25lOgogCU15TG9naWNhbFJl cFdvcmtlci0+cmVsc3RhdGVfbHNuID0gKm9yaWdpbl9zdGFydHBvczsKIAlTcGluTG9ja1JlbGVh c2UoJk15TG9naWNhbFJlcFdvcmtlci0+cmVsbXV0ZXgpOwogCisJLyogUmVwb3J0IHRoZSBzdWNj ZXNzIG9mIHRhYmxlIHN5bmMuICovCisJcGdzdGF0X3JlcG9ydF9zdWJ3b3JrZXJfeGFjdF9lbmQo TXlMb2dpY2FsUmVwV29ya2VyLT5zdWJpZCwKKwkJCQkJCQkJCSBNeUxvZ2ljYWxSZXBXb3JrZXIt PnJlbGlkLAorCQkJCQkJCQkJIDAgLyogbm8gbG9naWNhbCBtZXNzYWdlIHR5cGUgKi8sCisJCQkJ CQkJCQkgMCAvKiB4YWN0IHNpemUgKi8pOworCiAJLyoKIAkgKiBGaW5hbGx5LCB3YWl0IHVudGls IHRoZSBtYWluIGFwcGx5IHdvcmtlciB0ZWxscyB1cyB0byBjYXRjaCB1cCBhbmQgdGhlbgogCSAq IHJldHVybiB0byBsZXQgTG9naWNhbFJlcEFwcGx5TG9vcCBkbyBpdC4KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCmluZGV4IGQ3NzFhMGMuLjYyODQzMTAgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYwpAQCAtMjIyLDYgKzIyMiwyMSBAQCB0 eXBlZGVmIHN0cnVjdCBBcHBseUVycm9yQ2FsbGJhY2tBcmcKIAlMb2dpY2FsUmVwTXNnVHlwZSBj b21tYW5kOwkvKiAwIGlmIGludmFsaWQgKi8KIAlMb2dpY2FsUmVwUmVsTWFwRW50cnkgKnJlbDsK IAorCS8qCisJICogU3RvcmUgZGF0YSBzaXplIG9mIHRoaXMgdHJhbnNhY3Rpb24uCisJICoKKwkg KiBUaGUgYnl0ZSBzaXplIG9mIHRyYW5zYWN0aW9uIG9uIHRoZSBwdWJsaXNoZXIgaXMgY2FsY3Vs YXRlZAorCSAqIGJ5IFJlb3JkZXJCdWZmZXJDaGFuZ2VTaXplKCkgYmFzZWQgb24gdGhlIFJlb3Jk ZXJCdWZmZXJDaGFuZ2UKKwkgKiBzdHJ1Y3R1cmUuIEJ1dCBvbiB0aGUgc3Vic2NyaWJlciwgY29u c3VtZWQgcmVzb3VyY2VzIGFyZQorCSAqIG5vdCBzYW1lIGFzIHRoZSBwdWJsaXNoZXIncyBkZWNv ZGluZyBwcm9jZXNzc2luZyBhbmQgcmVxdWlyZWQKKwkgKiB0byBiZSBjb21wdXRlZCBpbiBkaWZm ZXJlbnQgd2F5LiBUaGVyZWZvcmUsIHRoZSBleGFjdCBzYW1lIGJ5dGUKKwkgKiBzaXplIGlzIG5v dCByZXN0b3JlZCBvbiB0aGUgc3Vic2NyaWJlciB1c3VhbGx5LgorCSAqCisJICogRGF0YSBzaXpl IG9mIHN0cmVhbWluZyB0cmFuc2FjdGlvbnMgaXMgbWFuYWdlZCBieSBzdHJlYW1pbmdYYWN0U2l6 ZQorCSAqIGZvciBmbGV4aWJsZSBkYXRhIGJsb2NrcyBoYW5kbGluZy4KKwkgKi8KKwlQZ1N0YXRf Q291bnRlciBieXRlczsKKwogCS8qIFJlbW90ZSBub2RlIGluZm9ybWF0aW9uICovCiAJaW50CQkJ cmVtb3RlX2F0dG51bTsJLyogLTEgaWYgaW52YWxpZCAqLwogCVRyYW5zYWN0aW9uSWQgcmVtb3Rl X3hpZDsKQEAgLTIzMiwxMSArMjQ3LDMyIEBAIHN0YXRpYyBBcHBseUVycm9yQ2FsbGJhY2tBcmcg YXBwbHlfZXJyb3JfY2FsbGJhY2tfYXJnID0KIHsKIAkuY29tbWFuZCA9IDAsCiAJLnJlbCA9IE5V TEwsCisJLmJ5dGVzID0gMCwKIAkucmVtb3RlX2F0dG51bSA9IC0xLAogCS5yZW1vdGVfeGlkID0g SW52YWxpZFRyYW5zYWN0aW9uSWQsCiAJLnRzID0gMCwKIH07CiAKKy8qCisgKiBUd28gb3IgbW9y ZSBzdHJlYW1pbmcgdHJhbnNhY3Rpb25zIGluIHBhcmFsbGVsIG9uIHRoZSBwdWJsaXNoZXIKKyAq IGdlbmVyYXRlIHVuZXhwZWN0ZWQgb3JkZXIgb2YgcGFydGlhbCB0eG4gZGF0YSBkZW1hcmNhdGVk IHN0cmVhbSBzdGFydAorICogYW5kIHN0cmVhbSBzdG9wIHRvIHRoZSBzdWJzY3JpYmVyLCBzaW5j ZSB3aGVuZXZlciBpdHMgc2l6ZSBvZiBvbmUgb2YKKyAqIHRoZSB0eG5zIHJlYWNoZXMgdGhlIHB1 Ymxpc2hlcidzIGxvZ2ljYWxfZGVjb2Rpbmdfd29ya19tZW0sCisgKiB0aGUgcGFydCAoYW5kIGlu IHRoZSBlbmQsIGxhc3QgcmVtYWluaW5nIGNoYW5nZXMpIGlzIHN0cmVhbWVkLgorICogVGhpcyBj cmVhdGVzIG1peGVkIGJsb2NrcyBvZiBzdHJlYW1pbmcgZGF0YSB3aGlsZQorICogdGhlcmUncyBw b3NzaWJpbGl0eSBzb21lIGFyZSBzdWNjZXNzZnVsbHkgY29tbWl0dGVkIGJ1dCBvdGhlcnMgYXJl CisgKiBub3QgYnkgc3RyZWFtIGFib3J0LiBUaGVyZWZvcmUsIHRvIHRyYWNrIGNvcnJlY3QgYnl0 ZSBzaXplCisgKiBpdCdzIG5lY2Vzc2FyeSB0byB0cmFjZSBlYWNoIHN0cmVhbWluZyB0cmFuc2Fj dGlvbiBieSBtYWtpbmcgcGFyaW5nCisgKiBvZiB4aWQgYW5kIHRyYW5zYWN0aW9uIHNpemUuCisg Ki8KKyNkZWZpbmUgUEFSQUxMRUxfU1RSRUFNSU5HX1hBQ1RTIDMyCit0eXBlZGVmIHN0cnVjdCBY YWN0U2l6ZUVudHJ5Cit7CisJVHJhbnNhY3Rpb25JZAlrZXk7CisJUGdTdGF0X0NvdW50ZXIJeGFj dF9zaXplOworfSBYYWN0U2l6ZUVudHJ5Oworc3RhdGljIEhUQUIgKnN0cmVhbWluZ1hhY3RTaXpl ID0gTlVMTDsKKwogc3RhdGljIE1lbW9yeUNvbnRleHQgQXBwbHlNZXNzYWdlQ29udGV4dCA9IE5V TEw7CiBNZW1vcnlDb250ZXh0IEFwcGx5Q29udGV4dCA9IE5VTEw7CiAKQEAgLTMyMCw2ICszNTYs OCBAQCBzdGF0aWMgdm9pZCBtYXliZV9yZXJlYWRfc3Vic2NyaXB0aW9uKHZvaWQpOwogLyogcHJv dG90eXBlIG5lZWRlZCBiZWNhdXNlIG9mIHN0cmVhbV9jb21taXQgKi8KIHN0YXRpYyB2b2lkIGFw cGx5X2Rpc3BhdGNoKFN0cmluZ0luZm8gcyk7CiAKK3ZvaWQgdXBkYXRlX2FwcGx5X2NoYW5nZV9z aXplKExvZ2ljYWxSZXBNc2dUeXBlIGFjdGlvbiwgdm9pZCAqZGF0YSk7CisKIHN0YXRpYyB2b2lk IGFwcGx5X2hhbmRsZV9jb21taXRfaW50ZXJuYWwoTG9naWNhbFJlcENvbW1pdERhdGEgKmNvbW1p dF9kYXRhKTsKIHN0YXRpYyB2b2lkIGFwcGx5X2hhbmRsZV9pbnNlcnRfaW50ZXJuYWwoQXBwbHlF eGVjdXRpb25EYXRhICplZGF0YSwKIAkJCQkJCQkJCQkgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywK QEAgLTg1Myw2ICs4OTEsMTEgQEAgYXBwbHlfaGFuZGxlX2NvbW1pdChTdHJpbmdJbmZvIHMpCiAJ LyogUHJvY2VzcyBhbnkgdGFibGVzIHRoYXQgYXJlIGJlaW5nIHN5bmNocm9uaXplZCBpbiBwYXJh bGxlbC4gKi8KIAlwcm9jZXNzX3N5bmNpbmdfdGFibGVzKGNvbW1pdF9kYXRhLmVuZF9sc24pOwog CisJcGdzdGF0X3JlcG9ydF9zdWJ3b3JrZXJfeGFjdF9lbmQoTXlMb2dpY2FsUmVwV29ya2VyLT5z dWJpZCwKKwkJCQkJCQkJCSBJbnZhbGlkT2lkLAorCQkJCQkJCQkJIExPR0lDQUxfUkVQX01TR19D T01NSVQsCisJCQkJCQkJCQkgZ2V0X2FwcGx5X2Vycm9yX2NvbnRleHRfeGFjdF9zaXplKCkpOwor CiAJcGdzdGF0X3JlcG9ydF9hY3Rpdml0eShTVEFURV9JRExFLCBOVUxMKTsKIAlyZXNldF9hcHBs eV9lcnJvcl9jb250ZXh0X2luZm8oKTsKIH0KQEAgLTk2NSw2ICsxMDA4LDExIEBAIGFwcGx5X2hh bmRsZV9wcmVwYXJlKFN0cmluZ0luZm8gcykKIAkvKiBQcm9jZXNzIGFueSB0YWJsZXMgdGhhdCBh cmUgYmVpbmcgc3luY2hyb25pemVkIGluIHBhcmFsbGVsLiAqLwogCXByb2Nlc3Nfc3luY2luZ190 YWJsZXMocHJlcGFyZV9kYXRhLmVuZF9sc24pOwogCisJcGdzdGF0X3JlcG9ydF9zdWJ3b3JrZXJf dHdvcGhhc2VfeGFjdChNeUxvZ2ljYWxSZXBXb3JrZXItPnN1YmlkLAorCQkJCQkJCQkJCSAgTE9H SUNBTF9SRVBfTVNHX1BSRVBBUkUsCisJCQkJCQkJCQkJICBnZXRfYXBwbHlfZXJyb3JfY29udGV4 dF94YWN0X3NpemUoKSwKKwkJCQkJCQkJCQkgICZwcmVwYXJlX2RhdGEsIE5VTEwsIE5VTEwpOwor CiAJcGdzdGF0X3JlcG9ydF9hY3Rpdml0eShTVEFURV9JRExFLCBOVUxMKTsKIAlyZXNldF9hcHBs eV9lcnJvcl9jb250ZXh0X2luZm8oKTsKIH0KQEAgLTEwMDYsNiArMTA1NCwxMyBAQCBhcHBseV9o YW5kbGVfY29tbWl0X3ByZXBhcmVkKFN0cmluZ0luZm8gcykKIAkvKiBQcm9jZXNzIGFueSB0YWJs ZXMgdGhhdCBhcmUgYmVpbmcgc3luY2hyb25pemVkIGluIHBhcmFsbGVsLiAqLwogCXByb2Nlc3Nf c3luY2luZ190YWJsZXMocHJlcGFyZV9kYXRhLmVuZF9sc24pOwogCisJdXBkYXRlX2FwcGx5X2No YW5nZV9zaXplKExPR0lDQUxfUkVQX01TR19DT01NSVRfUFJFUEFSRUQsIE5VTEwpOworCisJcGdz dGF0X3JlcG9ydF9zdWJ3b3JrZXJfdHdvcGhhc2VfeGFjdChNeUxvZ2ljYWxSZXBXb3JrZXItPnN1 YmlkLAorCQkJCQkJCQkJCSAgTE9HSUNBTF9SRVBfTVNHX0NPTU1JVF9QUkVQQVJFRCwKKwkJCQkJ CQkJCQkgIGdldF9hcHBseV9lcnJvcl9jb250ZXh0X3hhY3Rfc2l6ZSgpLAorCQkJCQkJCQkJCSAg TlVMTCwgJnByZXBhcmVfZGF0YSwgTlVMTCk7CisKIAlwZ3N0YXRfcmVwb3J0X2FjdGl2aXR5KFNU QVRFX0lETEUsIE5VTEwpOwogCXJlc2V0X2FwcGx5X2Vycm9yX2NvbnRleHRfaW5mbygpOwogfQpA QCAtMTA1Nyw2ICsxMTEyLDEyIEBAIGFwcGx5X2hhbmRsZV9yb2xsYmFja19wcmVwYXJlZChTdHJp bmdJbmZvIHMpCiAJLyogUHJvY2VzcyBhbnkgdGFibGVzIHRoYXQgYXJlIGJlaW5nIHN5bmNocm9u aXplZCBpbiBwYXJhbGxlbC4gKi8KIAlwcm9jZXNzX3N5bmNpbmdfdGFibGVzKHJvbGxiYWNrX2Rh dGEucm9sbGJhY2tfZW5kX2xzbik7CiAKKwkvKiBzZW5kIHJvbGxiYWNrIHByZXBhcmVkIG1lc3Nh Z2UgZm9yIHRoaXMgZ2lkICovCisJcGdzdGF0X3JlcG9ydF9zdWJ3b3JrZXJfdHdvcGhhc2VfeGFj dChNeUxvZ2ljYWxSZXBXb3JrZXItPnN1YmlkLAorCQkJCQkJCQkJCSAgTE9HSUNBTF9SRVBfTVNH X1JPTExCQUNLX1BSRVBBUkVELAorCQkJCQkJCQkJCSAgZ2V0X2FwcGx5X2Vycm9yX2NvbnRleHRf eGFjdF9zaXplKCksCisJCQkJCQkJCQkJICBOVUxMLCBOVUxMLCAmcm9sbGJhY2tfZGF0YSk7CisK IAlwZ3N0YXRfcmVwb3J0X2FjdGl2aXR5KFNUQVRFX0lETEUsIE5VTEwpOwogCXJlc2V0X2FwcGx5 X2Vycm9yX2NvbnRleHRfaW5mbygpOwogfQpAQCAtMTA3Miw2ICsxMTMzLDcgQEAgc3RhdGljIHZv aWQKIGFwcGx5X2hhbmRsZV9zdHJlYW1fcHJlcGFyZShTdHJpbmdJbmZvIHMpCiB7CiAJTG9naWNh bFJlcFByZXBhcmVkVHhuRGF0YSBwcmVwYXJlX2RhdGE7CisJWGFjdFNpemVFbnRyeSAqc3RyZWFt ZWRfZW50cnk7CiAKIAlpZiAoaW5fc3RyZWFtZWRfdHJhbnNhY3Rpb24pCiAJCWVyZXBvcnQoRVJS T1IsCkBAIC0xMTE2LDYgKzExNzgsMTkgQEAgYXBwbHlfaGFuZGxlX3N0cmVhbV9wcmVwYXJlKFN0 cmluZ0luZm8gcykKIAkvKiBQcm9jZXNzIGFueSB0YWJsZXMgdGhhdCBhcmUgYmVpbmcgc3luY2hy b25pemVkIGluIHBhcmFsbGVsLiAqLwogCXByb2Nlc3Nfc3luY2luZ190YWJsZXMocHJlcGFyZV9k YXRhLmVuZF9sc24pOwogCisJLyoKKwkgKiBSZXBvcnQgdGhlIHByZXBhcmVkIHN0cmVhbWluZyB4 YWN0IHNpemUgdG8gdGhlIHN0YXRzIGNvbGxlY3RvcgorCSAqIGluIGEgcHJlcGFyZWQgeGFjdCBt YW5uZXIgdG8gbWFrZSBpdCBzdXJ2aXZlIG92ZXIgdGhlIHJlc3RhcnQuCisJICovCisJc3RyZWFt ZWRfZW50cnkgPSBoYXNoX3NlYXJjaChzdHJlYW1pbmdYYWN0U2l6ZSwKKwkJCQkJCQkJICh2b2lk ICopICZwcmVwYXJlX2RhdGEueGlkLAorCQkJCQkJCQkgSEFTSF9GSU5ELCBOVUxMKTsKKwlBc3Nl cnQoc3RyZWFtZWRfZW50cnkpOworCXBnc3RhdF9yZXBvcnRfc3Vid29ya2VyX3R3b3BoYXNlX3hh Y3QoTXlMb2dpY2FsUmVwV29ya2VyLT5zdWJpZCwKKwkJCQkJCQkJCQkgIExPR0lDQUxfUkVQX01T R19TVFJFQU1fUFJFUEFSRSwKKwkJCQkJCQkJCQkgIHN0cmVhbWVkX2VudHJ5LT54YWN0X3NpemUs CisJCQkJCQkJCQkJICAmcHJlcGFyZV9kYXRhLCBOVUxMLCBOVUxMKTsKKwogCXBnc3RhdF9yZXBv cnRfYWN0aXZpdHkoU1RBVEVfSURMRSwgTlVMTCk7CiAKIAlyZXNldF9hcHBseV9lcnJvcl9jb250 ZXh0X2luZm8oKTsKQEAgLTExOTQsNiArMTI2OSw4IEBAIGFwcGx5X2hhbmRsZV9zdHJlYW1fc3Rh cnQoU3RyaW5nSW5mbyBzKQogCQlNeUxvZ2ljYWxSZXBXb3JrZXItPnN0cmVhbV9maWxlc2V0ID0g cGFsbG9jKHNpemVvZihGaWxlU2V0KSk7CiAJCUZpbGVTZXRJbml0KE15TG9naWNhbFJlcFdvcmtl ci0+c3RyZWFtX2ZpbGVzZXQpOwogCisJCXVwZGF0ZV9hcHBseV9jaGFuZ2Vfc2l6ZShMT0dJQ0FM X1JFUF9NU0dfU1RSRUFNX1NUQVJULCBOVUxMKTsKKwogCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8o b2xkY3R4KTsKIAl9CiAKQEAgLTEyNDQsMTIgKzEzMjEsMTcgQEAgYXBwbHlfaGFuZGxlX3N0cmVh bV9zdG9wKFN0cmluZ0luZm8gcykKIAogLyoKICAqIEhhbmRsZSBTVFJFQU0gYWJvcnQgbWVzc2Fn ZS4KKyAqCisgKiBDdXJyZW50bHksIGFib3J0IG9mIHN0cmVhbWluZyBzdWJ0cmFuc2FjdGlvbiBk b2VzIG5vdCBhZmZlY3QKKyAqIHNpemUgb2Ygc3RyZWFtaW5nIHRyYW5zYWN0aW9uIHJlc291cmNl cyBiZWNhdXNlIGl0IGhhdmUgdXNlZCB0aGUKKyAqIHJlc291cmNlcyBhbnl3YXkuCiAgKi8KIHN0 YXRpYyB2b2lkCiBhcHBseV9oYW5kbGVfc3RyZWFtX2Fib3J0KFN0cmluZ0luZm8gcykKIHsKIAlU cmFuc2FjdGlvbklkIHhpZDsKIAlUcmFuc2FjdGlvbklkIHN1YnhpZDsKKwlYYWN0U2l6ZUVudHJ5 ICpzdHJlYW1lZF9lbnRyeTsKIAogCWlmIChpbl9zdHJlYW1lZF90cmFuc2FjdGlvbikKIAkJZXJl cG9ydChFUlJPUiwKQEAgLTEyNjUsOCArMTM0NywzNiBAQCBhcHBseV9oYW5kbGVfc3RyZWFtX2Fi b3J0KFN0cmluZ0luZm8gcykKIAkgKi8KIAlpZiAoeGlkID09IHN1YnhpZCkKIAl7CisJCWJvb2wJ CWZvdW5kID0gZmFsc2U7CiAJCXNldF9hcHBseV9lcnJvcl9jb250ZXh0X3hhY3QoeGlkLCAwKTsK IAkJc3RyZWFtX2NsZWFudXBfZmlsZXMoTXlMb2dpY2FsUmVwV29ya2VyLT5zdWJpZCwgeGlkKTsK KworCQkvKgorCQkgKiBXZSd2ZSBjb21wbGV0ZWQgdG8gaGFuZGxlIHN0cmVhbSBhYm9ydCB3aXRo b3V0IGlzc3VlLCBzbworCQkgKiBnZXQgcmVhZHkgdG8gcmVwb3J0IHRoZSB0cmFuc2FjdGlvbiBz dGF0cyB2aWEgbm9ybWFsCisJCSAqIHRlcm1pbmF0aW9uIHJvdXRlIGluc3RlYWQgb2YgdGhlIGFw cGx5IGVycm9yIHJvdXRlLgorCQkgKi8KKwkJc3RyZWFtZWRfZW50cnkgPSBoYXNoX3NlYXJjaChz dHJlYW1pbmdYYWN0U2l6ZSwKKwkJCQkJCQkJCSAodm9pZCAqKSAmeGlkLAorCQkJCQkJCQkJIEhB U0hfRklORCwgJmZvdW5kKTsKKwkJLyoKKwkJICogSXQncyBwb3NzaWJsZSB0aGF0IHdlIGdldCBz dHJlYW0gYWJvcnQKKwkJICogZWFybGllciB0aGFuIGFueSBjYWxsIG9mIHdyaXRlX3N0cmVhbV9j aGFuZ2UgdGhhdAorCQkgKiBjcmVhdGVzIG9uZSBoYXNoIGVudHJ5IGZvciB0aGlzIHhpZC4gSW4g dGhpcyBjYXNlLAorCQkgKiB0byBmaW5kIGEgZW50cnkgd2l0aCB0aGlzIHhpZCBmYWlscy4gU28g anVzdCBjaGVjaworCQkgKiBpZiB3ZSd2ZSBmb3VuZCBpdC4gT25seSB3aGVuIHdlIGNvbmZpcm0g c29tZSB3cml0ZXMKKwkJICogYnkgd3JpdGVfc3RyZWFtX2NoYW5nZSwgcmVwb3J0IHRoZSBzdHJl YW1fYWJvcnQuCisJCSAqLworCQlpZiAoZm91bmQpCisJCXsKKwkJCXBnc3RhdF9yZXBvcnRfc3Vi d29ya2VyX3hhY3RfZW5kKE15TG9naWNhbFJlcFdvcmtlci0+c3ViaWQsCisJCQkJCQkJCQkJCSBJ bnZhbGlkT2lkLAorCQkJCQkJCQkJCQkgTE9HSUNBTF9SRVBfTVNHX1NUUkVBTV9BQk9SVCwKKwkJ CQkJCQkJCQkJIHN0cmVhbWVkX2VudHJ5LT54YWN0X3NpemUpOworCQkJKHZvaWQpIGhhc2hfc2Vh cmNoKHN0cmVhbWluZ1hhY3RTaXplLAorCQkJCQkJCSAgICh2b2lkICopICZ4aWQsCisJCQkJCQkJ ICAgSEFTSF9SRU1PVkUsIE5VTEwpOworCQl9CiAJfQogCWVsc2UKIAl7CkBAIC0xNDczLDYgKzE1 ODMsNyBAQCBhcHBseV9oYW5kbGVfc3RyZWFtX2NvbW1pdChTdHJpbmdJbmZvIHMpCiB7CiAJVHJh bnNhY3Rpb25JZCB4aWQ7CiAJTG9naWNhbFJlcENvbW1pdERhdGEgY29tbWl0X2RhdGE7CisJWGFj dFNpemVFbnRyeSAqc3RyZWFtZWRfZW50cnk7CiAKIAlpZiAoaW5fc3RyZWFtZWRfdHJhbnNhY3Rp b24pCiAJCWVyZXBvcnQoRVJST1IsCkBAIC0xNTA4LDYgKzE2MTksMTkgQEAgYXBwbHlfaGFuZGxl X3N0cmVhbV9jb21taXQoU3RyaW5nSW5mbyBzKQogCS8qIFByb2Nlc3MgYW55IHRhYmxlcyB0aGF0 IGFyZSBiZWluZyBzeW5jaHJvbml6ZWQgaW4gcGFyYWxsZWwuICovCiAJcHJvY2Vzc19zeW5jaW5n X3RhYmxlcyhjb21taXRfZGF0YS5lbmRfbHNuKTsKIAorCS8qIFJlcG9ydCBhbmQgY2xlYW4gdXAg dGhlIHhpZCAqLworCXN0cmVhbWVkX2VudHJ5ID0gaGFzaF9zZWFyY2goc3RyZWFtaW5nWGFjdFNp emUsCisJCQkJCQkJCSAodm9pZCAqKSAmeGlkLAorCQkJCQkJCQkgSEFTSF9GSU5ELCBOVUxMKTsK KwlBc3NlcnQoc3RyZWFtZWRfZW50cnkpOworCXBnc3RhdF9yZXBvcnRfc3Vid29ya2VyX3hhY3Rf ZW5kKE15TG9naWNhbFJlcFdvcmtlci0+c3ViaWQsCisJCQkJCQkJCQkgSW52YWxpZE9pZCwKKwkJ CQkJCQkJCSBMT0dJQ0FMX1JFUF9NU0dfU1RSRUFNX0NPTU1JVCwKKwkJCQkJCQkJCSBzdHJlYW1l ZF9lbnRyeS0+eGFjdF9zaXplKTsKKwkodm9pZCkgaGFzaF9zZWFyY2goc3RyZWFtaW5nWGFjdFNp emUsCisJCQkJCSAgICh2b2lkICopICZ4aWQsCisJCQkJCSAgIEhBU0hfUkVNT1ZFLCBOVUxMKTsK KwogCXBnc3RhdF9yZXBvcnRfYWN0aXZpdHkoU1RBVEVfSURMRSwgTlVMTCk7CiAKIAlyZXNldF9h cHBseV9lcnJvcl9jb250ZXh0X2luZm8oKTsKQEAgLTE2NDYsNiArMTc3MCw4IEBAIGFwcGx5X2hh bmRsZV9pbnNlcnQoU3RyaW5nSW5mbyBzKQogCXNsb3RfZmlsbF9kZWZhdWx0cyhyZWwsIGVzdGF0 ZSwgcmVtb3Rlc2xvdCk7CiAJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN0eCk7CiAKKwl1cGRh dGVfYXBwbHlfY2hhbmdlX3NpemUoTE9HSUNBTF9SRVBfTVNHX0lOU0VSVCwgcmVsKTsKKwogCS8q IEZvciBhIHBhcnRpdGlvbmVkIHRhYmxlLCBpbnNlcnQgdGhlIHR1cGxlIGludG8gYSBwYXJ0aXRp b24uICovCiAJaWYgKHJlbC0+bG9jYWxyZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BB UlRJVElPTkVEX1RBQkxFKQogCQlhcHBseV9oYW5kbGVfdHVwbGVfcm91dGluZyhlZGF0YSwKQEAg LTE4MDMsNiArMTkyOSw4IEBAIGFwcGx5X2hhbmRsZV91cGRhdGUoU3RyaW5nSW5mbyBzKQogCQkJ CQloYXNfb2xkdHVwID8gJm9sZHR1cCA6ICZuZXd0dXApOwogCU1lbW9yeUNvbnRleHRTd2l0Y2hU byhvbGRjdHgpOwogCisJdXBkYXRlX2FwcGx5X2NoYW5nZV9zaXplKExPR0lDQUxfUkVQX01TR19V UERBVEUsIHJlbCk7CisKIAkvKiBGb3IgYSBwYXJ0aXRpb25lZCB0YWJsZSwgYXBwbHkgdXBkYXRl IHRvIGNvcnJlY3QgcGFydGl0aW9uLiAqLwogCWlmIChyZWwtPmxvY2FscmVsLT5yZF9yZWwtPnJl bGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKIAkJYXBwbHlfaGFuZGxlX3R1cGxl X3JvdXRpbmcoZWRhdGEsCkBAIC0xOTM3LDYgKzIwNjUsOCBAQCBhcHBseV9oYW5kbGVfZGVsZXRl KFN0cmluZ0luZm8gcykKIAlzbG90X3N0b3JlX2RhdGEocmVtb3Rlc2xvdCwgcmVsLCAmb2xkdHVw KTsKIAlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3R4KTsKIAorCXVwZGF0ZV9hcHBseV9jaGFu Z2Vfc2l6ZShMT0dJQ0FMX1JFUF9NU0dfREVMRVRFLCByZWwpOworCiAJLyogRm9yIGEgcGFydGl0 aW9uZWQgdGFibGUsIGFwcGx5IGRlbGV0ZSB0byBjb3JyZWN0IHBhcnRpdGlvbi4gKi8KIAlpZiAo cmVsLT5sb2NhbHJlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFC TEUpCiAJCWFwcGx5X2hhbmRsZV90dXBsZV9yb3V0aW5nKGVkYXRhLApAQCAtMjQ5OSw2ICsyNjI5 LDExNyBAQCBhcHBseV9kaXNwYXRjaChTdHJpbmdJbmZvIHMpCiB9CiAKIC8qCisgKiBTdWJzY3Jp YmVyIHNpZGUgaW1wbGVtZW50YXRpb24gZXF1aXZhbGVudCB0byBSZW9yZGVyQnVmZmVyQ2hhbmdl U2l6ZQorICogb2YgdGhlIHB1Ymxpc2hlci4KKyAqCisgKiBBY2NvcmRpbmcgdG8gdGhlIGxvZ2lj YWwgcmVwbGljYXRpb24gbWVzc2FnZSB0eXBlLCByZWNvcmQgbWFqb3IKKyAqIHJlc291cmNlIGNv bnN1bXB0aW9ucyBvZiB0aGlzIHN1YnNjcmlwdGlvbiBmb3IgZWFjaCBtZXNzYWdlLgorICogQXQg cHJlc2VudCwgZG8gbm90IGNvbGxlY3QgZGF0YSBmcm9tIGdlbmVyaWMgZnVuY3Rpb25zIHRvIGtl ZXAKKyAqIGNvZGUgc2ltcGxpY2l0eSwgc2luY2UgdGhlIGltcGxlbWVudGF0aW9uIGNvbXBsZXhp dHkgdmVyc3VzIGJlbmVmaXQKKyAqIHRyYWRlb2ZmIHNob3VsZCBub3QgYmUgZ29vZC4gQWxzbywg YWRkIG11bHRpcGxlIHZhbHVlcworICogYXQgb25jZSBpbiBvcmRlciB0byByZWR1Y2UgdGhlIG51 bWJlciBvZiB0aGlzIGZ1bmN0aW9uIGNhbGwuCisgKgorICogJ2RhdGEnIGNvbnRyb2xzIGRldGFp bCBoYW5kbGluZyBvZiBkYXRhIHNpemUgY2FsY3VsYXRpb24uCisgKi8KK3ZvaWQKK3VwZGF0ZV9h cHBseV9jaGFuZ2Vfc2l6ZShMb2dpY2FsUmVwTXNnVHlwZSBhY3Rpb24sIHZvaWQgKmRhdGEpCit7 CisJaW50NjQgICAgICAgc2l6ZSA9IDA7CisJTG9naWNhbFJlcFJlbE1hcEVudHJ5ICpyZWxtYXBl bnRyeTsKKwlMb2dpY2FsUmVwUmVsYXRpb24gKnJlcHJlbGF0aW9uOworCWludCAgICAgICAgICpz dHJlYW1fd3JpdGVfbGVuOworCisJLyoKKwkgKiBJbiBzdHJlYW1pbmcgbW9kZSwgc3RyZWFtX3dy aXRlX2NoYW5nZSBpcyBjYWxsZWQKKwkgKiBpbnN0ZWFkIG9mIGltbWVkaWF0ZSBhcHBseS4gTGlz dCB1cCB0aGUgbWVzc2FnZXMgdHlwZXMKKwkgKiB0aGF0IGNhbiBiZSBjYXVnaHQgYnkgaGFuZGxl X3N0cmVhbWVkX3RyYW5zYWN0aW9uIGFuZAorCSAqIHRyZWF0IHRoZSB3cml0ZSBsZW5ndGggYXMg dGhlIHNpemUgb2YgdHJhbnNhY3Rpb24gc28KKwkgKiB0aGF0IHdlIGNhbiBleHBvcnQgaXQgYXMg cGFydCBvZiBwZ19zdGF0X3N1YnNjcmlwdGlvbl93b3JrZXIuCisJICovCisJaWYgKGluX3N0cmVh bWVkX3RyYW5zYWN0aW9uICYmCisJCShhY3Rpb24gPT0gTE9HSUNBTF9SRVBfTVNHX0lOU0VSVCB8 fAorCQkgYWN0aW9uID09IExPR0lDQUxfUkVQX01TR19VUERBVEUgfHwKKwkJIGFjdGlvbiA9PSBM T0dJQ0FMX1JFUF9NU0dfREVMRVRFIHx8CisJCSBhY3Rpb24gPT0gTE9HSUNBTF9SRVBfTVNHX1RS VU5DQVRFIHx8CisJCSBhY3Rpb24gPT0gTE9HSUNBTF9SRVBfTVNHX1JFTEFUSU9OIHx8CisJCSBh Y3Rpb24gPT0gTE9HSUNBTF9SRVBfTVNHX1RZUEUpKQorCXsKKwkJc3RyZWFtX3dyaXRlX2xlbiA9 IChpbnQgKikgZGF0YTsKKwkJc2l6ZSArPSAqc3RyZWFtX3dyaXRlX2xlbjsKKwkJYWRkX2FwcGx5 X2Vycm9yX2NvbnRleHRfeGFjdF9zaXplKHNpemUpOworCQlyZXR1cm47CisJfQorCisJc3dpdGNo IChhY3Rpb24pCisJeworCQkvKiBObyBzcGVjaWFsIG1lbW9yeSBjb25zdW1wdGlvbiAqLworCQlj YXNlIExPR0lDQUxfUkVQX01TR19CRUdJTjoKKwkJY2FzZSBMT0dJQ0FMX1JFUF9NU0dfQ09NTUlU OgorCQljYXNlIExPR0lDQUxfUkVQX01TR19UUlVOQ0FURToKKwkJY2FzZSBMT0dJQ0FMX1JFUF9N U0dfVFlQRToKKwkJY2FzZSBMT0dJQ0FMX1JFUF9NU0dfT1JJR0lOOgorCQljYXNlIExPR0lDQUxf UkVQX01TR19NRVNTQUdFOgorCQljYXNlIExPR0lDQUxfUkVQX01TR19TVFJFQU1fU1RPUDoKKwkJ Y2FzZSBMT0dJQ0FMX1JFUF9NU0dfU1RSRUFNX0FCT1JUOgorCQljYXNlIExPR0lDQUxfUkVQX01T R19CRUdJTl9QUkVQQVJFOgorCQkJYnJlYWs7CisKKwkJY2FzZSBMT0dJQ0FMX1JFUF9NU0dfSU5T RVJUOgorCQljYXNlIExPR0lDQUxfUkVQX01TR19VUERBVEU6CisJCWNhc2UgTE9HSUNBTF9SRVBf TVNHX0RFTEVURToKKwkJCUFzc2VydChkYXRhICE9IE5VTEwpOworCisJCQkvKgorCQkJICogQ29t cHV0ZSBzaXplIGJhc2VkIG9uIEFwcGx5RXhlY3V0aW9uRGF0YS4KKwkJCSAqIFRoZSBzaXplIG9m IExvZ2ljYWxSZXBSZWxNYXBFbnRyeSBjYW4gYmUgc2tpcHBlZCBiZWNhdXNlCisJCQkgKiBpdCBp cyBvYnRhaW5lZCBmcm9tIGhhc2hfc2VhcmNoIGluIGxvZ2ljYWxyZXBfcmVsX29wZW4uCisJCQkg Ki8KKwkJCXNpemUgKz0gc2l6ZW9mKEFwcGx5RXhlY3V0aW9uRGF0YSkgKyBzaXplb2YoRVN0YXRl KSArCisJCQkJc2l6ZW9mKFJlc3VsdFJlbEluZm8pICsgc2l6ZW9mKFJlc3VsdFJlbEluZm8pOwor CisJCQkvKgorCQkJICogQWRkIHNvbWUgZXh0cmEgc2l6ZSBpZiB0aGUgdGFyZ2V0IHJlbGF0aW9u IGlzIHBhcnRpdGlvbmVkLgorCQkJICogUGFydGl0aW9uVHVwbGVSb3V0aW5nIGlzbid0IGV4cG9y dGVkLiBUaGVyZWZvcmUsIGNhbGwgdGhlCisJCQkgKiBmdW5jdGlvbiB0aGF0IHJldHVybnMgaXRz IHNpemUgaW5zdGVhZC4KKwkJCSAqLworCQkJcmVsbWFwZW50cnkgPSAoTG9naWNhbFJlcFJlbE1h cEVudHJ5ICopIGRhdGE7CisJCQlpZiAocmVsbWFwZW50cnktPmxvY2FscmVsLT5yZF9yZWwtPnJl bGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKKwkJCQlzaXplICs9IHNpemVvZihN b2RpZnlUYWJsZVN0YXRlKSArIFBhcnRpdGlvblR1cGxlUm91dGluZ1NpemUoKTsKKwkJCWJyZWFr OworCisJCWNhc2UgTE9HSUNBTF9SRVBfTVNHX1JFTEFUSU9OOgorCQkJQXNzZXJ0KGRhdGEgIT0g TlVMTCk7CisKKwkJCXJlcHJlbGF0aW9uID0gKExvZ2ljYWxSZXBSZWxhdGlvbiAqKSBkYXRhOwor CQkJLyogU2VlIGxvZ2ljYWxyZXBfcmVhZF9hdHRycyBmb3IgdGhlIGxhc3QgdHdvICovCisJCQlz aXplICs9IHNpemVvZihMb2dpY2FsUmVwUmVsYXRpb24pICsKKwkJCQlyZXByZWxhdGlvbi0+bmF0 dHMgKiBzaXplb2YoY2hhciAqKSArCisJCQkJcmVwcmVsYXRpb24tPm5hdHRzICogc2l6ZW9mKE9p ZCk7CisJCQlicmVhazsKKworCQljYXNlIExPR0lDQUxfUkVQX01TR19TVFJFQU1fU1RBUlQ6CisJ CQlzaXplICs9IHNpemVvZihGaWxlU2V0KTsKKwkJCWJyZWFrOworCisJCWNhc2UgTE9HSUNBTF9S RVBfTVNHX1BSRVBBUkU6CisJCWNhc2UgTE9HSUNBTF9SRVBfTVNHX0NPTU1JVF9QUkVQQVJFRDoK KwkJY2FzZSBMT0dJQ0FMX1JFUF9NU0dfUk9MTEJBQ0tfUFJFUEFSRUQ6CisJCWNhc2UgTE9HSUNB TF9SRVBfTVNHX1NUUkVBTV9DT01NSVQ6CisJCWNhc2UgTE9HSUNBTF9SRVBfTVNHX1NUUkVBTV9Q UkVQQVJFOgorCQkJc2l6ZSArPSBzaXplb2YoRmx1c2hQb3NpdGlvbik7CisJCQlicmVhazsKKwor CQlkZWZhdWx0OgorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9QUk9U T0NPTF9WSU9MQVRJT04pLAorCQkJCQkgZXJybXNnKCJpbnZhbGlkIGxvZ2ljYWwgcmVwbGljYXRp b24gbWVzc2FnZSB0eXBlIFwiJWNcIiIsIGFjdGlvbikpKTsKKwl9CisKKwkvKiB1cGRhdGUgdGhl IHRvdGFsIHNpemUgb2YgY29uc3VtcHRpb24gKi8KKwlhZGRfYXBwbHlfZXJyb3JfY29udGV4dF94 YWN0X3NpemUoc2l6ZSk7Cit9CisKKy8qCiAgKiBGaWd1cmUgb3V0IHdoaWNoIHdyaXRlL2ZsdXNo IHBvc2l0aW9ucyB0byByZXBvcnQgdG8gdGhlIHdhbHNlbmRlciBwcm9jZXNzLgogICoKICAqIFdl IGNhbid0IHNpbXBseSByZXBvcnQgYmFjayB0aGUgbGFzdCBMU04gdGhlIHdhbHNlbmRlciBzZW50 IHVzIGJlY2F1c2UgdGhlCkBAIC0zMzUyLDYgKzM1OTMsOSBAQCBzdGF0aWMgdm9pZAogc3RyZWFt X3dyaXRlX2NoYW5nZShjaGFyIGFjdGlvbiwgU3RyaW5nSW5mbyBzKQogewogCWludAkJCWxlbjsK KwlpbnQJCQl0b3RhbF9sZW47CisJYm9vbAkJZm91bmQ7CisJWGFjdFNpemVFbnRyeSAqc3RyZWFt ZWRfZW50cnk7CiAKIAlBc3NlcnQoaW5fc3RyZWFtZWRfdHJhbnNhY3Rpb24pOwogCUFzc2VydChU cmFuc2FjdGlvbklkSXNWYWxpZChzdHJlYW1feGlkKSk7CkBAIC0zMzcwLDYgKzM2MTQsMTYgQEAg c3RyZWFtX3dyaXRlX2NoYW5nZShjaGFyIGFjdGlvbiwgU3RyaW5nSW5mbyBzKQogCWxlbiA9IChz LT5sZW4gLSBzLT5jdXJzb3IpOwogCiAJQnVmRmlsZVdyaXRlKHN0cmVhbV9mZCwgJnMtPmRhdGFb cy0+Y3Vyc29yXSwgbGVuKTsKKworCS8qIHVwZGF0ZSB4YWN0IHNpemUgYnkgeGlkICovCisJdG90 YWxfbGVuID0gKHMtPmxlbiAtIHMtPmN1cnNvcikgKiAyICsgc2l6ZW9mKGNoYXIpICsgc2l6ZW9m KGFjdGlvbik7CisJc3RyZWFtZWRfZW50cnkgPSAoWGFjdFNpemVFbnRyeSAqKSBoYXNoX3NlYXJj aChzdHJlYW1pbmdYYWN0U2l6ZSwKKwkJCQkJCQkJCQkJCSAgICh2b2lkICopICZzdHJlYW1feGlk LAorCQkJCQkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKKwlpZiAoIWZvdW5kKQorCQlz dHJlYW1lZF9lbnRyeS0+eGFjdF9zaXplID0gdG90YWxfbGVuOyAvKiBpbml0ICovCisJZWxzZQor CQlzdHJlYW1lZF9lbnRyeS0+eGFjdF9zaXplID0gc3RyZWFtZWRfZW50cnktPnhhY3Rfc2l6ZSAr IHRvdGFsX2xlbjsgLyogdXBkYXRlICovCiB9CiAKIC8qCkBAIC0zNTA3LDYgKzM3NjEsMjMgQEAg QXBwbHlXb3JrZXJNYWluKERhdHVtIG1haW5fYXJnKQogCWVsb2coREVCVUcxLCAiY29ubmVjdGlu ZyB0byBwdWJsaXNoZXIgdXNpbmcgY29ubmVjdGlvbiBzdHJpbmcgXCIlc1wiIiwKIAkJIE15U3Vi c2NyaXB0aW9uLT5jb25uaW5mbyk7CiAKKwkvKgorCSAqIEluaXRpYWxpemUgdGhlIGFwcGx5IHdv cmtlcidzIGhhc2ggdG8gbWFuYWdlIGJ5dGVzIGZvcgorCSAqIHN0cmVhbWluZyB0eG5zLgorCSAq LworCWlmICghYW1fdGFibGVzeW5jX3dvcmtlcigpICYmIE15U3Vic2NyaXB0aW9uLT5zdHJlYW0p CisJeworCQlIQVNIQ1RMICAgICBoYXNoX2N0bDsKKworCQloYXNoX2N0bC5rZXlzaXplID0gc2l6 ZW9mKFRyYW5zYWN0aW9uSWQpOworCQloYXNoX2N0bC5lbnRyeXNpemUgPSBzaXplb2YoWGFjdFNp emVFbnRyeSk7CisJCWhhc2hfY3RsLmhjeHQgPSBMb2dpY2FsU3RyZWFtaW5nQ29udGV4dDsKKwkJ c3RyZWFtaW5nWGFjdFNpemUgPSBoYXNoX2NyZWF0ZSgieGFjdCBzaXplIHBlciBzdHJlYW1pbmcg eGlkIiwKKwkJCQkJCQkJCQlQQVJBTExFTF9TVFJFQU1JTkdfWEFDVFMsCisJCQkJCQkJCQkJJmhh c2hfY3RsLAorCQkJCQkJCQkJCUhBU0hfRUxFTSB8IEhBU0hfQkxPQlMgfCBIQVNIX0NPTlRFWFQp OworCX0KKwogCWlmIChhbV90YWJsZXN5bmNfd29ya2VyKCkpCiAJewogCQljaGFyCSAgICpzeW5j c2xvdG5hbWU7CkBAIC0zNzQ3LDYgKzQwMTgsMjcgQEAgcmVzZXRfYXBwbHlfZXJyb3JfY29udGV4 dF9pbmZvKHZvaWQpCiAJc2V0X2FwcGx5X2Vycm9yX2NvbnRleHRfeGFjdChJbnZhbGlkVHJhbnNh Y3Rpb25JZCwgMCk7CiB9CiAKKy8qIEV4cG9ydGVkIHNvIHRoYXQgc3RhdHMgY29sbGVjdG9yIGNh biB1dGlsaXplIHRoaXMgdmFsdWUgKi8KK2ludDY0CitnZXRfYXBwbHlfZXJyb3JfY29udGV4dF94 YWN0X3NpemUodm9pZCkKK3sKKwlyZXR1cm4gYXBwbHlfZXJyb3JfY2FsbGJhY2tfYXJnLmJ5dGVz OworfQorCisvKiBBZGQgc2l6ZSB0byBhcHBseSBlcnJvciBieXRlcyAqLwordm9pZAorYWRkX2Fw cGx5X2Vycm9yX2NvbnRleHRfeGFjdF9zaXplKGludDY0IHNpemUpCit7CisJYXBwbHlfZXJyb3Jf Y2FsbGJhY2tfYXJnLmJ5dGVzICs9IHNpemU7Cit9CisKKy8qIFJlc2V0IGluZm9ybWF0aW9uIG9m IGFwcGx5IGVycm9yIGNhbGxiYWNrICovCit2b2lkCityZXNldF9hcHBseV9lcnJvcl9jb250ZXh0 X3hhY3Rfc2l6ZSh2b2lkKQoreworCWFwcGx5X2Vycm9yX2NhbGxiYWNrX2FyZy5ieXRlcyA9IDA7 Cit9CisKIC8qCiAgKiBTdGFydCBza2lwcGluZyBjaGFuZ2VzIG9mIHRoZSB0cmFuc2FjdGlvbiBp ZiB0aGUgZ2l2ZW4gWElEIG1hdGNoZXMgdGhlCiAgKiB0cmFuc2FjdGlvbiBJRCBzcGVjaWZpZWQg Ynkgc2tpcF94aWQgb3B0aW9uLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bn c3RhdGZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwppbmRleCBi NThhNjFkLi40N2ViNmRhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0 ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtMjQw NSw3ICsyNDA1LDcgQEAgcGdfc3RhdF9nZXRfcmVwbGljYXRpb25fc2xvdChQR19GVU5DVElPTl9B UkdTKQogRGF0dW0KIHBnX3N0YXRfZ2V0X3N1YnNjcmlwdGlvbl93b3JrZXIoUEdfRlVOQ1RJT05f QVJHUykKIHsKLSNkZWZpbmUgUEdfU1RBVF9HRVRfU1VCU0NSSVBUSU9OX1dPUktFUl9DT0xTIDkK KyNkZWZpbmUgUEdfU1RBVF9HRVRfU1VCU0NSSVBUSU9OX1dPUktFUl9DT0xTIDE1CiAJT2lkCQkJ c3ViaWQgPSBQR19HRVRBUkdfT0lEKDApOwogCU9pZAkJCXN1YnJlbGlkOwogCVR1cGxlRGVzYwl0 dXBkZXNjOwpAQCAtMjQyNSwxOSArMjQyNSwzMSBAQCBwZ19zdGF0X2dldF9zdWJzY3JpcHRpb25f d29ya2VyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJCSAgIE9JRE9JRCwgLTEsIDApOwogCVR1cGxl RGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgMiwgInN1YnJlbGlkIiwKIAkJCQkJ ICAgT0lET0lELCAtMSwgMCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVt YmVyKSAzLCAicmVsaWQiLAorCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJl cikgMywgInhhY3RfY29tbWl0IiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVz Y0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgNCwgInhhY3RfY29tbWl0X2J5dGVzIiwK KwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAo QXR0ck51bWJlcikgNSwgInhhY3RfZXJyb3IiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJ VHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSA2LCAieGFjdF9lcnJvcl9i eXRlcyIsCisJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVw ZGVzYywgKEF0dHJOdW1iZXIpIDcsICJ4YWN0X2Fib3J0IiwKKwkJCQkJICAgSU5UOE9JRCwgLTEs IDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgOCwgInhhY3Rf YWJvcnRfYnl0ZXMiLAorCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7CisJVHVwbGVEZXNjSW5pdEVu dHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSA5LCAibGFzdF9lcnJvcl9yZWxpZCIsCiAJCQkJCSAg IE9JRE9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJl cikgNCwgImNvbW1hbmQiLAorCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJl cikgMTAsICJsYXN0X2Vycm9yX2NvbW1hbmQiLAogCQkJCQkgICBURVhUT0lELCAtMSwgMCk7Ci0J VHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSA1LCAieGlkIiwKKwlUdXBs ZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDExLCAibGFzdF9lcnJvcl94aWQi LAogCQkJCQkgICBYSURPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywg KEF0dHJOdW1iZXIpIDYsICJjb3VudCIsCisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChB dHRyTnVtYmVyKSAxMiwgImxhc3RfZXJyb3JfY291bnQiLAogCQkJCQkgICBJTlQ4T0lELCAtMSwg MCk7Ci0JVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSA3LCAiZXJyb3Jf bWVzc2FnZSIsCisJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAxMywg Imxhc3RfZXJyb3JfbWVzc2FnZSIsCiAJCQkJCSAgIFRFWFRPSUQsIC0xLCAwKTsKLQlUdXBsZURl c2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDgsICJsYXN0X2Vycm9yX3RpbWUiLAor CVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgMTQsICJsYXN0X2Vycm9y X3RpbWUiLAogCQkJCQkgICBUSU1FU1RBTVBUWk9JRCwgLTEsIDApOwotCVR1cGxlRGVzY0luaXRF bnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgOSwgInN0YXRzX3Jlc2V0IiwKKwlUdXBsZURlc2NJ bml0RW50cnkodHVwZGVzYywgKEF0dHJOdW1iZXIpIDE1LCAic3RhdHNfcmVzZXQiLAogCQkJCQkg ICBUSU1FU1RBTVBUWk9JRCwgLTEsIDApOwogCUJsZXNzVHVwbGVEZXNjKHR1cGRlc2MpOwogCkBA IC0yNDYyLDI4ICsyNDc0LDM2IEBAIHBnX3N0YXRfZ2V0X3N1YnNjcmlwdGlvbl93b3JrZXIoUEdf RlVOQ1RJT05fQVJHUykKIAllbHNlCiAJCW51bGxzW2krK10gPSB0cnVlOwogCi0JLyogcmVsaWQg Ki8KKwkvKiB0cmFuc2FjdGlvbiBzdGF0cyAqLworCXZhbHVlc1tpKytdID0gSW50NjRHZXREYXR1 bSh3ZW50cnktPnhhY3RfY29tbWl0KTsKKwl2YWx1ZXNbaSsrXSA9IEludDY0R2V0RGF0dW0od2Vu dHJ5LT54YWN0X2NvbW1pdF9ieXRlcyk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHdl bnRyeS0+eGFjdF9lcnJvcik7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHdlbnRyeS0+ eGFjdF9lcnJvcl9ieXRlcyk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHdlbnRyeS0+ eGFjdF9hYm9ydCk7CisJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHdlbnRyeS0+eGFjdF9h Ym9ydF9ieXRlcyk7CisKKwkvKiBsYXN0X2Vycm9yX3JlbGlkICovCiAJaWYgKE9pZElzVmFsaWQo d2VudHJ5LT5yZWxpZCkpCiAJCXZhbHVlc1tpKytdID0gT2JqZWN0SWRHZXREYXR1bSh3ZW50cnkt PnJlbGlkKTsKIAllbHNlCiAJCW51bGxzW2krK10gPSB0cnVlOwogCi0JLyogY29tbWFuZCAqLwor CS8qIGxhc3RfZXJyb3JfY29tbWFuZCAqLwogCWlmICh3ZW50cnktPmNvbW1hbmQgIT0gMCkKIAkJ dmFsdWVzW2krK10gPSBDU3RyaW5nR2V0VGV4dERhdHVtKGxvZ2ljYWxyZXBfbWVzc2FnZV90eXBl KHdlbnRyeS0+Y29tbWFuZCkpOwogCWVsc2UKIAkJbnVsbHNbaSsrXSA9IHRydWU7CiAKLQkvKiB4 aWQgKi8KKwkvKiBsYXN0X2Vycm9yX3hpZCAqLwogCWlmIChUcmFuc2FjdGlvbklkSXNWYWxpZCh3 ZW50cnktPnhpZCkpCiAJCXZhbHVlc1tpKytdID0gVHJhbnNhY3Rpb25JZEdldERhdHVtKHdlbnRy eS0+eGlkKTsKIAllbHNlCiAJCW51bGxzW2krK10gPSB0cnVlOwogCi0JLyogY291bnQgKi8KKwkv KiBsYXN0X2Vycm9yX2NvdW50ICovCiAJdmFsdWVzW2krK10gPSBJbnQ2NEdldERhdHVtKHdlbnRy eS0+Y291bnQpOwogCi0JLyogZXJyb3JfbWVzc2FnZSAqLworCS8qIGxhc3RfZXJyb3JfbWVzc2Fn ZSAqLwogCXZhbHVlc1tpKytdID0gQ1N0cmluZ0dldFRleHREYXR1bSh3ZW50cnktPm1lc3NhZ2Up OwogCiAJLyogbGFzdF9lcnJvcl90aW1lICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA0 NTQzYTAwLi45OGJmOWMxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2Mu ZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTUzODUsMTMgKzUz ODUsMTMgQEAKICAgcHJvYXJnbW9kZXMgPT4gJ3tpLG8sbyxvLG8sbyxvLG8sbyxvLG99JywKICAg cHJvYXJnbmFtZXMgPT4gJ3tzbG90X25hbWUsc2xvdF9uYW1lLHNwaWxsX3R4bnMsc3BpbGxfY291 bnQsc3BpbGxfYnl0ZXMsc3RyZWFtX3R4bnMsc3RyZWFtX2NvdW50LHN0cmVhbV9ieXRlcyx0b3Rh bF90eG5zLHRvdGFsX2J5dGVzLHN0YXRzX3Jlc2V0fScsCiAgIHByb3NyYyA9PiAncGdfc3RhdF9n ZXRfcmVwbGljYXRpb25fc2xvdCcgfSwKLXsgb2lkID0+ICc4NTIzJywgZGVzY3IgPT4gJ3N0YXRp c3RpY3M6IGluZm9ybWF0aW9uIGFib3V0IHN1YnNjcmlwdGlvbiBlcnJvcicsCit7IG9pZCA9PiAn ODUyMycsIGRlc2NyID0+ICdzdGF0aXN0aWNzOiBpbmZvcm1hdGlvbiBhYm91dCBzdWJzY3JpcHRp b24nLAogICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9zdWJzY3JpcHRpb25fd29ya2VyJywgcHJv cm93cyA9PiAnMScsIHByb2lzc3RyaWN0ID0+ICdmJywKICAgcHJvcmV0c2V0ID0+ICd0JywgcHJv dm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCiAgIHByb3JldHR5cGUgPT4gJ3Jl Y29yZCcsIHByb2FyZ3R5cGVzID0+ICdvaWQgb2lkJywKLSAgcHJvYWxsYXJndHlwZXMgPT4gJ3tv aWQsb2lkLG9pZCxvaWQsb2lkLHRleHQseGlkLGludDgsdGV4dCx0aW1lc3RhbXB0eix0aW1lc3Rh bXB0en0nLAotICBwcm9hcmdtb2RlcyA9PiAne2ksaSxvLG8sbyxvLG8sbyxvLG8sb30nLAotICBw cm9hcmduYW1lcyA9PiAne3N1YmlkLHN1YnJlbGlkLHN1YmlkLHN1YnJlbGlkLHJlbGlkLGNvbW1h bmQseGlkLGNvdW50LGVycm9yX21lc3NhZ2UsbGFzdF9lcnJvcl90aW1lLHN0YXRzX3Jlc2V0fScs CisgIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLG9pZCxvaWQsb2lkLGludDgsaW50OCxpbnQ4LGlu dDgsaW50OCxpbnQ4LG9pZCx0ZXh0LHhpZCxpbnQ4LHRleHQsdGltZXN0YW1wdHosdGltZXN0YW1w dHp9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tpLGksbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxv LG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tzdWJpZCxzdWJyZWxpZCxzdWJpZCxzdWJyZWxpZCx4 YWN0X2NvbW1pdCx4YWN0X2NvbW1pdF9ieXRlcyx4YWN0X2Vycm9yLHhhY3RfZXJyb3JfYnl0ZXMs eGFjdF9hYm9ydCx4YWN0X2Fib3J0X2J5dGVzLGxhc3RfZXJyb3JfcmVsaWQsbGFzdF9lcnJvcl9j b21tYW5kLGxhc3RfZXJyb3JfeGlkLGxhc3RfZXJyb3JfY291bnQsbGFzdF9lcnJvcl9tZXNzYWdl LGxhc3RfZXJyb3JfdGltZSxzdGF0c19yZXNldH0nLAogICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0 X3N1YnNjcmlwdGlvbl93b3JrZXInIH0sCiB7IG9pZCA9PiAnNjExOCcsIGRlc2NyID0+ICdzdGF0 aXN0aWNzOiBpbmZvcm1hdGlvbiBhYm91dCBzdWJzY3JpcHRpb24nLAogICBwcm9uYW1lID0+ICdw Z19zdGF0X2dldF9zdWJzY3JpcHRpb24nLCBwcm9yb3dzID0+ICcxMCcsIHByb2lzc3RyaWN0ID0+ ICdmJywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNQYXJ0aXRpb24uaCBi L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNQYXJ0aXRpb24uaAppbmRleCA2OTRlMzhiLi43NzNl NDZjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjUGFydGl0aW9uLmgKKysr IGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY1BhcnRpdGlvbi5oCkBAIC0xMTAsNiArMTEwLDcg QEAgdHlwZWRlZiBzdHJ1Y3QgUGFydGl0aW9uUHJ1bmVTdGF0ZQogCVBhcnRpdGlvblBydW5pbmdE YXRhICpwYXJ0cHJ1bmVkYXRhW0ZMRVhJQkxFX0FSUkFZX01FTUJFUl07CiB9IFBhcnRpdGlvblBy dW5lU3RhdGU7CiAKK2V4dGVybiBzaXplX3QgUGFydGl0aW9uVHVwbGVSb3V0aW5nU2l6ZSh2b2lk KTsKIGV4dGVybiBQYXJ0aXRpb25UdXBsZVJvdXRpbmcgKkV4ZWNTZXR1cFBhcnRpdGlvblR1cGxl Um91dGluZyhFU3RhdGUgKmVzdGF0ZSwKIAkJCQkJCQkJCQkJCQkJCSBSZWxhdGlvbiByZWwpOwog ZXh0ZXJuIFJlc3VsdFJlbEluZm8gKkV4ZWNGaW5kUGFydGl0aW9uKE1vZGlmeVRhYmxlU3RhdGUg Km10c3RhdGUsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaCBiL3NyYy9pbmNsdWRl L3Bnc3RhdC5oCmluZGV4IDU5ZTM3NjMuLjMzYmMxNjkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3Bnc3RhdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCkBAIC04OCw2ICs4OCw4IEBAIHR5 cGVkZWYgZW51bSBTdGF0TXNnVHlwZQogCVBHU1RBVF9NVFlQRV9TVUJTQ1JJUFRJT05QVVJHRSwK IAlQR1NUQVRfTVRZUEVfU1VCV09SS0VSRVJST1IsCiAJUEdTVEFUX01UWVBFX1NVQldPUktFUlBV UkdFLAorCVBHU1RBVF9NVFlQRV9TVUJXT1JLRVJYQUNURU5ELAorCVBHU1RBVF9NVFlQRV9TVUJX T1JLRVJUV09QSEFTRVhBQ1QsCiB9IFN0YXRNc2dUeXBlOwogCiAvKiAtLS0tLS0tLS0tCkBAIC01 OTEsNiArNTkzLDU0IEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9Nc2dTdWJXb3JrZXJQdXJnZQog fSBQZ1N0YXRfTXNnU3ViV29ya2VyUHVyZ2U7CiAKIC8qIC0tLS0tLS0tLS0KKyAqIFBnU3RhdF9N c2dTdWJzY3JpcHRpb25YYWN0RW5kCVNlbnQgYnkgdGhlIGFwcGx5IHdvcmtlciBvciB0aGUgdGFi bGUgc3luYyB3b3JrZXIKKyAqCQkJCQkJCQkJdG8gcmVwb3J0IHN1Y2Nlc3NmdWwgdHJhbnNhY3Rp b24gZW5kcy4KKyAqIC0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X01zZ1N1 YldvcmtlclhhY3RFbmQKK3sKKwlQZ1N0YXRfTXNnSGRyIG1faGRyOworCisJLyogZGV0ZXJtaW5l IHRoZSB3b3JrZXIgZW50cnkgKi8KKwlPaWQgICAgICAgICBtX3N1YmlkOworCU9pZCAgICAgICAg IG1fc3VicmVsaWQ7CisKKwkvKgorCSAqIGRpc3Rpbmd1aXNoIGJldHdlZW4gdHJhbnNhY3Rpb24g Y29tbWl0cyBhbmQgc3RyZWFtaW5nIHRyYW5zYWN0aW9uIGFib3J0cworCSAqIHRoYXQgYXJlIGhh bmRsZWQgd2l0aG91dCBlcnJvci4KKwkgKi8KKwlMb2dpY2FsUmVwTXNnVHlwZSBtX2NvbW1hbmQ7 CisKKwkvKiBtZW1vcnkgY29uc3VtcHRpb24gdXNlZCBieSB0cmFuc2FjdGlvbiAqLworCVBnU3Rh dF9Db3VudGVyIG1feGFjdF9ieXRlczsKKworfSBQZ1N0YXRfTXNnU3ViV29ya2VyWGFjdEVuZDsK KworLyogLS0tLS0tLS0tLQorICogUGdTdGF0X01zZ1N1YldvcmtlclR3b3BoYXNlWGFjdAlTZW50 IGJ5IHRoZSBhcHBseSB3b3JrZXIgdG8gbWFrZSBzaXplIG9mIHByZXBhcmVkCisgKgkJCQkJCQkJ CXR4biBwZXJzaXN0ZW50IG92ZXIgdGhlIHNlcnZlciByZXN0YXJ0IGFuZCBtYWtlIGl0CisgKgkJ CQkJCQkJCXZpc2libGUgYWZ0ZXIgY29tbWl0IHByZXBhcmUgb3Igcm9sbGJhY2sgcHJlcGFyZWQu CisgKgkJCQkJCQkJCVRoaXMgaXMgc2VwYXJhdGVkIGZyb20gUGdTdGF0X01zZ1N1Yldvcmtlclhh Y3RFbmQKKyAqCQkJCQkJCQkJc28gdGhhdCB3ZSBjYW4gcmVkdWNlIG1lc3NhZ2Ugc2l6ZSBvZiBn aWQgZm9yIG90aGVyCisgKgkJCQkJCQkJCW9wZXJhdGlvbnMgKGUuZy4gbm9ybWFsIENPTU1JVCkg dGhhdCBzaG91bGQgaGFwcGVuIG1vcmUKKyAqCQkJCQkJCQkJZnJlcXVlbnRseSB0aGFuIHByZXBh cmUgb3BlcmF0aW9uIHVzdWFsbHkuCisgKiAtLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0 IFBnU3RhdF9Nc2dTdWJXb3JrZXJUd29waGFzZVhhY3QKK3sKKwlQZ1N0YXRfTXNnSGRyIG1faGRy OworCisJLyogZGV0ZXJtaW5lIHRoZSBzdWJzY3JpcHRpb24gKi8KKwlPaWQgICAgICAgICBtX3N1 YmlkOworCisJTG9naWNhbFJlcE1zZ1R5cGUgbV9jb21tYW5kOworCWNoYXIgICAgICAgICBtX2dp ZFtHSURTSVpFXTsKKwlpbnQgICAgICAgICAgZ2lkX2xlbjsKKwlQZ1N0YXRfQ291bnRlciBtX3hh Y3RfYnl0ZXM7CisKK30gUGdTdGF0X01zZ1N1YldvcmtlclR3b3BoYXNlWGFjdDsKKworLyogLS0t LS0tLS0tLQogICogUGdTdGF0X01zZ1N1YldvcmtlckVycm9yCQlTZW50IGJ5IHRoZSBhcHBseSB3 b3JrZXIgb3IgdGhlIHRhYmxlIHN5bmMgd29ya2VyIHRvCiAgKgkJCQkJCQkJcmVwb3J0IHRoZSBl cnJvciBvY2N1cnJlZCBkdXJpbmcgbG9naWNhbCByZXBsaWNhdGlvbi4KICAqIC0tLS0tLS0tLS0K QEAgLTYwOSw2ICs2NTksMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X01zZ1N1YldvcmtlckVy cm9yCiAJT2lkCQkJbV9zdWJyZWxpZDsKIAogCS8qCisJICogVHJhbnNhY3Rpb24gc3RhdHMgb2Yg c3Vic2NyaXB0aW9uIG5lZWRzIHRvIGJlIHVwZGF0ZWQgd2hlbiBhbgorCSAqIGVycm9yIG9jY3Vy cy4KKwkgKi8KKwlQZ1N0YXRfQ291bnRlciBtX3hhY3RfZXJyb3JfYnl0ZXM7CisKKwkvKgogCSAq IE9pZHMgb2YgdGhlIGRhdGFiYXNlIGFuZCB0aGUgdGFibGUgdGhhdCB0aGUgcmVwb3J0ZXIgd2Fz IGFjdHVhbGx5CiAJICogcHJvY2Vzc2luZy4gbV9yZWxpZCBjYW4gYmUgSW52YWxpZE9pZCBpZiBh biBlcnJvciBvY2N1cnJlZCBkdXJpbmcKIAkgKiB3b3JrZXIgYXBwbHlpbmcgYSBub24tZGF0YS1t b2RpZmljYXRpb24gbWVzc2FnZSBzdWNoIGFzIFJFTEFUSU9OLgpAQCAtODAzLDYgKzg1OSw4IEBA IHR5cGVkZWYgdW5pb24gUGdTdGF0X01zZwogCVBnU3RhdF9Nc2dTdWJzY3JpcHRpb25QdXJnZSBt c2dfc3Vic2NyaXB0aW9ucHVyZ2U7CiAJUGdTdGF0X01zZ1N1YldvcmtlckVycm9yIG1zZ19zdWJ3 b3JrZXJlcnJvcjsKIAlQZ1N0YXRfTXNnU3ViV29ya2VyUHVyZ2UgbXNnX3N1YndvcmtlcnB1cmdl OworCVBnU3RhdF9Nc2dTdWJXb3JrZXJYYWN0RW5kIG1zZ19zdWJ3b3JrZXJ4YWN0ZW5kOworCVBn U3RhdF9Nc2dTdWJXb3JrZXJUd29waGFzZVhhY3QgbXNnX3N1YndvcmtlcnR3b3BoYXNleGFjdDsK IH0gUGdTdGF0X01zZzsKIAogCkBAIC0xMDM1LDYgKzEwOTMsMTYgQEAgdHlwZWRlZiBzdHJ1Y3Qg UGdTdGF0X1N0YXRTdWJXb3JrZXJFbnRyeQogCVBnU3RhdF9TdGF0U3ViV29ya2VyS2V5IGtleTsJ LyogaGFzaCBrZXkgKG11c3QgYmUgZmlyc3QpICovCiAKIAkvKgorCSAqIFRyYW5zYWN0aW9uIHN0 YXRpc3RpY3Mgb2Ygc3Vic2NyaXB0aW9uIHdvcmtlcgorCSAqLworCVBnU3RhdF9Db3VudGVyIHhh Y3RfY29tbWl0OworCVBnU3RhdF9Db3VudGVyIHhhY3RfY29tbWl0X2J5dGVzOworCVBnU3RhdF9D b3VudGVyIHhhY3RfZXJyb3I7CisJUGdTdGF0X0NvdW50ZXIgeGFjdF9lcnJvcl9ieXRlczsKKwlQ Z1N0YXRfQ291bnRlciB4YWN0X2Fib3J0OworCVBnU3RhdF9Db3VudGVyIHhhY3RfYWJvcnRfYnl0 ZXM7CisKKwkvKgogCSAqIFN1YnNjcmlwdGlvbiB3b3JrZXIgZXJyb3Igc3RhdGlzdGljcyByZXBy ZXNlbnRpbmcgYW4gZXJyb3IgdGhhdAogCSAqIG9jY3VycmVkIGR1cmluZyBhcHBsaWNhdGlvbiBv ZiBsb2dpY2FsIHJlcGxpY2F0aW9uIG9yIHRoZSBpbml0aWFsIHRhYmxlCiAJICogc3luY2hyb25p emF0aW9uLgpAQCAtMTA0OSw2ICsxMTE3LDIyIEBAIHR5cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0 U3ViV29ya2VyRW50cnkKIAlUaW1lc3RhbXBUeiBzdGF0X3Jlc2V0X3RpbWVzdGFtcDsKIH0gUGdT dGF0X1N0YXRTdWJXb3JrZXJFbnRyeTsKIAorLyogcHJlcGFyZWQgdHJhbnNhY3Rpb24gKi8KK3R5 cGVkZWYgc3RydWN0IFBnU3RhdF9TdGF0U3ViV29ya2VyUHJlcGFyZWRYYWN0Cit7CisJT2lkCQkJ c3ViaWQ7CisJY2hhcgkJZ2lkW0dJRFNJWkVdOworfSBQZ1N0YXRfU3RhdFN1YldvcmtlclByZXBh cmVkWGFjdDsKKwordHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXRTdWJXb3JrZXJQcmVwYXJlZFhh Y3RTaXplCit7CisJUGdTdGF0X1N0YXRTdWJXb3JrZXJQcmVwYXJlZFhhY3Qga2V5OyAvKiBoYXNo IGtleSAqLworCisJT2lkCQkJc3ViaWQ7CisJY2hhcgkJZ2lkW0dJRFNJWkVdOworCVBnU3RhdF9D b3VudGVyIHhhY3Rfc2l6ZTsKK30gUGdTdGF0X1N0YXRTdWJXb3JrZXJQcmVwYXJlZFhhY3RTaXpl OworCiAvKgogICogV29ya2luZyBzdGF0ZSBuZWVkZWQgdG8gYWNjdW11bGF0ZSBwZXItZnVuY3Rp b24tY2FsbCB0aW1pbmcgc3RhdGlzdGljcy4KICAqLwpAQCAtMTE1OCw2ICsxMjQyLDEzIEBAIGV4 dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfY2hlY2tzdW1fZmFpbHVyZSh2b2lkKTsKIGV4dGVybiB2 b2lkIHBnc3RhdF9yZXBvcnRfcmVwbHNsb3QoY29uc3QgUGdTdGF0X1N0YXRSZXBsU2xvdEVudHJ5 ICpyZXBTbG90U3RhdCk7CiBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X3JlcGxzbG90X2NyZWF0 ZShjb25zdCBjaGFyICpzbG90bmFtZSk7CiBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X3JlcGxz bG90X2Ryb3AoY29uc3QgY2hhciAqc2xvdG5hbWUpOworZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9y dF9zdWJ3b3JrZXJfeGFjdF9lbmQoT2lkIHN1YmlkLCBPaWQgc3VicmVsLAorCQkJCQkJCQkJCQkg TG9naWNhbFJlcE1zZ1R5cGUgY29tbWFuZCwgUGdTdGF0X0NvdW50ZXIgeGFjdF9zaXplKTsKK2V4 dGVybiB2b2lkIHBnc3RhdF9yZXBvcnRfc3Vid29ya2VyX3R3b3BoYXNlX3hhY3QoT2lkIHN1Ymlk LCBMb2dpY2FsUmVwTXNnVHlwZSBjb21tYW5kLAorCQkJCQkJCQkJCQkJICBQZ1N0YXRfQ291bnRl ciB4YWN0X3NpemUsCisJCQkJCQkJCQkJCQkgIExvZ2ljYWxSZXBQcmVwYXJlZFR4bkRhdGEgKnBy ZXBhcmVkX2RhdGEsCisJCQkJCQkJCQkJCQkgIExvZ2ljYWxSZXBDb21taXRQcmVwYXJlZFR4bkRh dGEgKmNvbW1pdF9kYXRhLAorCQkJCQkJCQkJCQkJICBMb2dpY2FsUmVwUm9sbGJhY2tQcmVwYXJl ZFR4bkRhdGEgKnJvbGxiYWNrX2RhdGEpOwogZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF9zdWJ3 b3JrZXJfZXJyb3IoT2lkIHN1YmlkLCBPaWQgc3VicmVsaWQsIE9pZCByZWxpZCwKIAkJCQkJCQkJ CQkgIExvZ2ljYWxSZXBNc2dUeXBlIGNvbW1hbmQsCiAJCQkJCQkJCQkJICBUcmFuc2FjdGlvbklk IHhpZCwgY29uc3QgY2hhciAqZXJybXNnKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxp Y2F0aW9uL2xvZ2ljYWx3b3JrZXIuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2xvZ2ljYWx3 b3JrZXIuaAppbmRleCAyYWQ2MWEwLi45YTg0NDdiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi9sb2dpY2Fsd29ya2VyLmgKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v bG9naWNhbHdvcmtlci5oCkBAIC0xNiw0ICsxNiw5IEBAIGV4dGVybiB2b2lkIEFwcGx5V29ya2Vy TWFpbihEYXR1bSBtYWluX2FyZyk7CiAKIGV4dGVybiBib29sIElzTG9naWNhbFdvcmtlcih2b2lk KTsKIAorLyogZm9yIHRyYW5zYWN0aW9uIHN0YXRzICovCitleHRlcm4gaW50NjQgZ2V0X2FwcGx5 X2Vycm9yX2NvbnRleHRfeGFjdF9zaXplKHZvaWQpOworZXh0ZXJuIHZvaWQgYWRkX2FwcGx5X2Vy cm9yX2NvbnRleHRfeGFjdF9zaXplKGludDY0IHNpemUpOworZXh0ZXJuIHZvaWQgcmVzZXRfYXBw bHlfZXJyb3JfY29udGV4dF94YWN0X3NpemUodm9pZCk7CisKICNlbmRpZgkJCQkJCQkvKiBMT0dJ Q0FMV09SS0VSX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVs ZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggYzZiODNj ZS4uZWFjODU5ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTIwOTcsMTEg KzIwOTcsMTcgQEAgcGdfc3RhdF9zdWJzY3JpcHRpb258IFNFTEVDVCBzdS5vaWQgQVMgc3ViaWQs CiBwZ19zdGF0X3N1YnNjcmlwdGlvbl93b3JrZXJzfCBTRUxFQ1QgZS5zdWJpZCwKICAgICBzLnN1 Ym5hbWUsCiAgICAgZS5zdWJyZWxpZCwKLSAgICBlLnJlbGlkLAotICAgIGUuY29tbWFuZCwKLSAg ICBlLnhpZCwKLSAgICBlLmNvdW50LAotICAgIGUuZXJyb3JfbWVzc2FnZSwKKyAgICBlLnhhY3Rf Y29tbWl0LAorICAgIGUueGFjdF9jb21taXRfYnl0ZXMsCisgICAgZS54YWN0X2Vycm9yLAorICAg IGUueGFjdF9lcnJvcl9ieXRlcywKKyAgICBlLnhhY3RfYWJvcnQsCisgICAgZS54YWN0X2Fib3J0 X2J5dGVzLAorICAgIGUubGFzdF9lcnJvcl9yZWxpZCwKKyAgICBlLmxhc3RfZXJyb3JfY29tbWFu ZCwKKyAgICBlLmxhc3RfZXJyb3JfeGlkLAorICAgIGUubGFzdF9lcnJvcl9jb3VudCwKKyAgICBl Lmxhc3RfZXJyb3JfbWVzc2FnZSwKICAgICBlLmxhc3RfZXJyb3JfdGltZSwKICAgICBlLnN0YXRz X3Jlc2V0CiAgICBGUk9NICggU0VMRUNUIHBnX3N1YnNjcmlwdGlvbi5vaWQgQVMgc3ViaWQsCkBA IC0yMTEyLDcgKzIxMTgsNyBAQCBwZ19zdGF0X3N1YnNjcmlwdGlvbl93b3JrZXJzfCBTRUxFQ1Qg ZS5zdWJpZCwKICAgICAgICAgICAgIHBnX3N1YnNjcmlwdGlvbl9yZWwuc3JyZWxpZCBBUyByZWxp ZAogICAgICAgICAgICBGUk9NIHBnX3N1YnNjcmlwdGlvbl9yZWwKICAgICAgICAgICBXSEVSRSAo cGdfc3Vic2NyaXB0aW9uX3JlbC5zcnN1YnN0YXRlIDw+ICdyJzo6ImNoYXIiKSkgc3IsCi0gICAg KExBVEVSQUwgcGdfc3RhdF9nZXRfc3Vic2NyaXB0aW9uX3dvcmtlcihzci5zdWJpZCwgc3IucmVs aWQpIGUoc3ViaWQsIHN1YnJlbGlkLCByZWxpZCwgY29tbWFuZCwgeGlkLCBjb3VudCwgZXJyb3Jf bWVzc2FnZSwgbGFzdF9lcnJvcl90aW1lLCBzdGF0c19yZXNldCkKKyAgICAoTEFURVJBTCBwZ19z dGF0X2dldF9zdWJzY3JpcHRpb25fd29ya2VyKHNyLnN1YmlkLCBzci5yZWxpZCkgZShzdWJpZCwg c3VicmVsaWQsIHhhY3RfY29tbWl0LCB4YWN0X2NvbW1pdF9ieXRlcywgeGFjdF9lcnJvciwgeGFj dF9lcnJvcl9ieXRlcywgeGFjdF9hYm9ydCwgeGFjdF9hYm9ydF9ieXRlcywgbGFzdF9lcnJvcl9y ZWxpZCwgbGFzdF9lcnJvcl9jb21tYW5kLCBsYXN0X2Vycm9yX3hpZCwgbGFzdF9lcnJvcl9jb3Vu dCwgbGFzdF9lcnJvcl9tZXNzYWdlLCBsYXN0X2Vycm9yX3RpbWUsIHN0YXRzX3Jlc2V0KQogICAg ICBKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OICgoZS5zdWJpZCA9IHMub2lkKSkpOwogcGdfc3Rh dF9zeXNfaW5kZXhlc3wgU0VMRUNUIHBnX3N0YXRfYWxsX2luZGV4ZXMucmVsaWQsCiAgICAgcGdf c3RhdF9hbGxfaW5kZXhlcy5pbmRleHJlbGlkLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2Ny aXB0aW9uL3QvMDI1X2Vycm9yX3JlcG9ydC5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAy NV9lcnJvcl9yZXBvcnQucGwKaW5kZXggNzdkMjJlZS4uOGFiNDAzZiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDI1X2Vycm9yX3JlcG9ydC5wbAorKysgYi9zcmMvdGVzdC9z dWJzY3JpcHRpb24vdC8wMjVfZXJyb3JfcmVwb3J0LnBsCkBAIC02LDggKzYsOCBAQAogCiB1c2Ug c3RyaWN0OwogdXNlIHdhcm5pbmdzOwotdXNlIFBvc3RncmVzTm9kZTsKLXVzZSBUZXN0TGliOwor dXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRp bHM7CiB1c2UgVGVzdDo6TW9yZSB0ZXN0cyA9PiAxNDsKIAogIyBUZXN0IGlmIHRoZSBlcnJvciBy ZXBvcnRlZCBvbiBwZ19zdWJzY3JpcHRpb25fd29ya2VycyB2aWV3IGlzIGV4cGVjdGVkLgpAQCAt MTcsOCArMTcsOCBAQCBzdWIgdGVzdF9zdWJzY3JpcHRpb25fZXJyb3IKIAogICAgIG15ICRjaGVj a19zcWwgPSBxcVsKIFNFTEVDVCBjb3VudCgxKSA+IDAgRlJPTSBwZ19zdGF0X3N1YnNjcmlwdGlv bl93b3JrZXJzCi1XSEVSRSByZWxpZCA9ICckcmVsbmFtZSc6OnJlZ2NsYXNzXTsKLSAgICAkY2hl Y2tfc3FsIC49ICIgQU5EIHhpZCA9ICckeGlkJzo6eGlkOyIgaWYgJHhpZCBuZSAnJzsKK1dIRVJF IGxhc3RfZXJyb3JfcmVsaWQgPSAnJHJlbG5hbWUnOjpyZWdjbGFzc107CisgICAgJGNoZWNrX3Nx bCAuPSAiIEFORCBsYXN0X2Vycm9yX3hpZCA9ICckeGlkJzo6eGlkOyIgaWYgJHhpZCBuZSAnJzsK IAogICAgICMgV2FpdCBmb3IgdGhlIGVycm9yIHN0YXRpc3RpY3MgdG8gYmUgdXBkYXRlZC4KICAg ICAkbm9kZS0+cG9sbF9xdWVyeV91bnRpbCgKQEAgLTI4LDkgKzI4LDkgQEAgV0hFUkUgcmVsaWQg PSAnJHJlbG5hbWUnOjpyZWdjbGFzc107CiAgICAgbXkgJHJlc3VsdCA9ICRub2RlLT5zYWZlX3Bz cWwoCiAJJ3Bvc3RncmVzJywKIAlxcVsKLVNFTEVDVCBzdWJuYW1lLCBjb21tYW5kLCByZWxpZDo6 cmVnY2xhc3MsIGNvdW50ID4gMAorU0VMRUNUIHN1Ym5hbWUsIGxhc3RfZXJyb3JfY29tbWFuZCwg bGFzdF9lcnJvcl9yZWxpZDo6cmVnY2xhc3MsIGxhc3RfZXJyb3JfY291bnQgPiAwCiBGUk9NIHBn X3N0YXRfc3Vic2NyaXB0aW9uX3dvcmtlcnMKLVdIRVJFIHJlbGlkID0gJyRyZWxuYW1lJzo6cmVn Y2xhc3M7CitXSEVSRSBsYXN0X2Vycm9yX3JlbGlkID0gJyRyZWxuYW1lJzo6cmVnY2xhc3M7CiBd KTsKICAgICBpcygkcmVzdWx0LCAkZXhwZWN0ZWRfZXJyb3IsICRtc2cpOwogfQpAQCAtNDYsNyAr NDYsNyBAQCBzdWIgdGVzdF9za2lwX3N1YnNjcmlwdGlvbl9lcnJvcgogICAgICMgR2V0IFhJRCBv ZiB0aGUgZmFpbGVkIHRyYW5zYWN0aW9uLgogICAgIG15ICRza2lweGlkID0gJG5vZGUtPnNhZmVf cHNxbCgKIAkncG9zdGdyZXMnLAotCSJTRUxFQ1QgeGlkIEZST00gcGdfc3RhdF9zdWJzY3JpcHRp b25fd29ya2VycyBXSEVSRSByZWxpZCA9ICckcmVsbmFtZSc6OnJlZ2NsYXNzIik7CisJIlNFTEVD VCBsYXN0X2Vycm9yX3hpZCBGUk9NIHBnX3N0YXRfc3Vic2NyaXB0aW9uX3dvcmtlcnMgV0hFUkUg bGFzdF9lcnJvcl9yZWxpZCA9ICckcmVsbmFtZSc6OnJlZ2NsYXNzIik7CiAgICAgaXMoJHNraXB4 aWQsICR4aWQsICJyZW1vdGUgeGlkIGFuZCBza2lwX3hpZCBhcmUgZXF1YWwiKTsKIAogICAgICRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKQEAgLTY1LDcgKzY1LDcgQEAgV0hFUkUgc3VibmFt ZSA9ICckc3VibmFtZScKIH0KIAogIyBDcmVhdGUgcHVibGlzaGVyIG5vZGUuCi1teSAkbm9kZV9w dWJsaXNoZXIgPSBQb3N0Z3Jlc05vZGUtPm5ldygncHVibGlzaGVyJyk7CitteSAkbm9kZV9wdWJs aXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicpOwogJG5v ZGVfcHVibGlzaGVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKICRub2Rl X3B1Ymxpc2hlci0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCiAJCQkgICAgIHFxWwpA QCAtNzUsNyArNzUsNyBAQCBsb2dpY2FsX2RlY29kaW5nX3dvcmtfbWVtID0gNjRrQgogJG5vZGVf cHVibGlzaGVyLT5zdGFydDsKIAogIyBDcmVhdGUgc3Vic2NyaWJlciBub2RlLgotbXkgJG5vZGVf c3Vic2NyaWJlciA9IFBvc3RncmVzTm9kZS0+bmV3KCdzdWJzY3JpYmVyJyk7CitteSAkbm9kZV9z dWJzY3JpYmVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdWJzY3JpYmVyJyk7 CiAkbm9kZV9zdWJzY3JpYmVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsK IAogIyBUaGUgc3Vic2NyaWJlciB3aWxsIGVudGVyIGFuIGluZmluaXRlIGVycm9yIGxvb3AsIHNv IHdlIGRvbid0IHdhbnQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAyNl93 b3JrZXJfeGFjdF9zdGF0cy5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAyNl93b3JrZXJf eGFjdF9zdGF0cy5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMWI3ZThh Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDI2X3dvcmtlcl94 YWN0X3N0YXRzLnBsCkBAIC0wLDAgKzEsMTMzIEBACisKKyMgQ29weXJpZ2h0IChjKSAyMDIxLCBQ b3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCisjIFRlc3RzIGZvciBzdWJzY3Jp cHRpb24gd29ya2VyIHN0YXRpc3RpY3MgZHVyaW5nIGFwcGx5LgordXNlIHN0cmljdDsKK3VzZSB3 YXJuaW5nczsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6 OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmUgdGVzdHMgPT4gMzsKKworIyBDcmVhdGUgcHVi bGlzaGVyIG5vZGUKK215ICRub2RlX3B1Ymxpc2hlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0 ZXItPm5ldygncHVibGlzaGVyJyk7Ciskbm9kZV9wdWJsaXNoZXItPmluaXQoYWxsb3dzX3N0cmVh bWluZyA9PiAnbG9naWNhbCcpOworJG5vZGVfcHVibGlzaGVyLT5hcHBlbmRfY29uZigncG9zdGdy ZXNxbC5jb25mJywgcXFbCitsb2dpY2FsX2RlY29kaW5nX3dvcmtfbWVtID0gNjRrQgorbWF4X3By ZXBhcmVkX3RyYW5zYWN0aW9ucyA9IDEwCittYXhfd2FsX3NlbmRlcnMgPSAxMAord2FsX3NlbmRl cl90aW1lb3V0ID0gMAorXSk7Ciskbm9kZV9wdWJsaXNoZXItPnN0YXJ0OworCisjIENyZWF0ZSBz dWJzY3JpYmVyIG5vZGUKK215ICRub2RlX3N1YnNjcmliZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpD bHVzdGVyLT5uZXcoJ3N1YnNjcmliZXInKTsKKyRub2RlX3N1YnNjcmliZXItPmluaXQoYWxsb3dz X3N0cmVhbWluZyA9PiAnbG9naWNhbCcpOworJG5vZGVfc3Vic2NyaWJlci0+YXBwZW5kX2NvbmYo J3Bvc3RncmVzcWwuY29uZicsIHFxWworbWF4X3ByZXBhcmVkX3RyYW5zYWN0aW9ucyA9IDEwCitd KTsKKyRub2RlX3N1YnNjcmliZXItPnN0YXJ0OworCisjIENyZWF0ZSBzb21lIHByZWV4aXN0aW5n IGNvbnRlbnQgb24gcHVibGlzaGVyCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorCSJDUkVBVEUgVEFCTEUgdGVzdF90YWIgKGEgaW50KSIpOworCisjIFNldHVwIHN0cnVj dHVyZSBvbiBzdWJzY3JpYmVyCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiQ1JFQVRFIFRBQkxFIHRlc3RfdGFiIChhIGludCBwcmltYXJ5IGtleSk7Iik7CisKKyMg U2V0dXAgbG9naWNhbCByZXBsaWNhdGlvbgorbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJG5vZGVf cHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWIgRk9S IFRBQkxFIHRlc3RfdGFiIik7CisKK215ICRhcHBuYW1lID0gJ3RhcF9zdWInOworJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisiQ1JFQVRFIFNVQlNDUklQVElPTiB0YXBf c3ViIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0ciBhcHBsaWNhdGlvbl9uYW1lPSRhcHBu YW1lJyBQVUJMSUNBVElPTiB0YXBfcHViIFdJVEggKHN0cmVhbWluZyA9IG9uLCB0d29fcGhhc2Ug PSBvbiwgY29weV9kYXRhID0gb2ZmKTsiCispOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9y X2NhdGNodXAoJGFwcG5hbWUpOworCisjIENPTU1JVDsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKAorICAgICdwb3N0Z3JlcycsCisgICAgIkJFR0lOOyBJTlNFUlQgSU5UTyB0ZXN0X3RhYiBW QUxVRVMgKDEpOyBDT01NSVQ7Iik7CisKKyRub2RlX3N1YnNjcmliZXItPnBvbGxfcXVlcnlfdW50 aWwoJ3Bvc3RncmVzJywKKyJTRUxFQ1QgY291bnQoMSkgPSAxIEZST00gcGdfc3RhdF9zdWJzY3Jp cHRpb25fd29ya2VycyB3aGVyZSB4YWN0X2NvbW1pdCA9IDE7IikKKyAgb3IgZGllICJkaWRuJ3Qg Z2V0IHVwZGF0ZXMgb2YgeGFjdCBzdGF0cyBieSBjb21taXQiOworCisjIE5vdywgc3RhdHMgY29s bGVjdG9yIG1ha2UgdGhlIGJ5dGVzIHVwZGF0ZWQgYWxzby4KK215ICRyZXN1bHQgPSAkbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKyJTRUxFQ1QgeGFjdF9jb21taXRfYnl0 ZXMgPiAwIEZST00gcGdfc3RhdF9zdWJzY3JpcHRpb25fd29ya2VyczsiKTsKK2lzKCRyZXN1bHQs ICd0JywgJ2dvdCBjb25zdW1lZCBieXRlcycpOworCisjIFNUUkVBTSBDT01NSVQKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKAorICAgICdwb3N0Z3JlcycsCisgICAgIkJFR0lOOyBJTlNFUlQg SU5UTyB0ZXN0X3RhYiBWQUxVRVMoZ2VuZXJhdGVfc2VyaWVzKDEwMDEsIDIwMDApKTsgQ09NTUlU OyIpOworJHJlc3VsdCA9ICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisi U0VMRUNUIHN0cmVhbV9jb3VudCA+IDAgRlJPTSBwZ19zdGF0X3JlcGxpY2F0aW9uX3Nsb3RzOyIp OworaXMoJHJlc3VsdCwgJ3QnLCAiY29uZmlybSB0aGUgc3RyZWFtaW5nIGhhcyBoYXBwZW5lZC4i KTsKKyRub2RlX3N1YnNjcmliZXItPnBvbGxfcXVlcnlfdW50aWwoJ3Bvc3RncmVzJywKKyJTRUxF Q1QgY291bnQoMSkgPSAxIEZST00gcGdfc3RhdF9zdWJzY3JpcHRpb25fd29ya2VycyB3aGVyZSB4 YWN0X2NvbW1pdCA9IDI7IikKKyAgb3IgZGllICJkaWRuJ3QgZ2V0IHVwZGF0ZXMgb2YgeGFjdCBz dGF0cyBieSBzdHJlYW0gY29tbWl0IjsKKworIyBTVFJFQU0gUFJFUEFSRSAmIENPTU1JVCBQUkVQ QVJFRCB0aGF0IHJlc3RvcmVzIHRoZSB4YWN0IHNpemUgYmVmb3JlIHRoZSBzaHV0ZG93bi4KKyRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorICAgICdwb3N0Z3JlcycsIHFbCitCRUdJTjsKK0lO U0VSVCBJTlRPIHRlc3RfdGFiIFZBTFVFUyhnZW5lcmF0ZV9zZXJpZXMoMjAwMSwgMzAwMCkpOwor UFJFUEFSRSBUUkFOU0FDVElPTiAnZ2lkMSc7CitdKTsKKworIyBmZXRjaCB0aGUgbGFzdCB2YWx1 ZSBvZiB4YWN0X2NvbW1pdF9ieXRlcyB0byBjaGVjayBpZgorIyB0aGlzIGNvbHVtbiBpcyBpbmNy ZWFzZWQgYWZ0ZXIgdGhlIHNlcnZlciByZXN0YXJ0IGFuZCBjb21taXQgcHJlcGFyZWQuCitteSAk dG1wID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisiU0VMRUNUIHhh Y3RfY29tbWl0X2J5dGVzIEZST00gcGdfc3RhdF9zdWJzY3JpcHRpb25fd29ya2VyczsiKTsKKyRu b2RlX3N1YnNjcmliZXItPnJlc3RhcnQ7CiskcmVzdWx0ID0gJG5vZGVfcHVibGlzaGVyLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgIkNPTU1JVCBQUkVQQVJFRCAnZ2lkMSciKTsKKworIyBzdHJlYW0g cHJlcGFyZSBkaWRuJ3QgaW5jcmVtZW50IHhhY3RfY29tbWl0IGJ1dCBjb21taXQgcHJlcGFyZWQg ZG9lcy4KKyRub2RlX3N1YnNjcmliZXItPnBvbGxfcXVlcnlfdW50aWwoJ3Bvc3RncmVzJywKKyJT RUxFQ1QgY291bnQoMSkgPSAxIEZST00gcGdfc3RhdF9zdWJzY3JpcHRpb25fd29ya2VycyB3aGVy ZSB4YWN0X2NvbW1pdCA9IDM7IikKKyAgb3IgZGllICJkaWRuJ3QgZ2V0IHVwZGF0ZXMgb2YgeGFj dCBzdGF0cyBieSBzdHJlYW0gcHJlcGFyZSBhbmQgY29tbWl0IHByZXBhcmVkIjsKKworJHJlc3Vs dCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorIlNFTEVDVCB4YWN0 X2NvbW1pdF9ieXRlcyA+ICR0bXAgRlJPTSBwZ19zdGF0X3N1YnNjcmlwdGlvbl93b3JrZXJzOyIp OworaXMoJHJlc3VsdCwgJ3QnLCAiYWZ0ZXIgY29tbWl0IHByZXBhcmVkLCB0aGUgeGFjdCBzaXpl IGlzIHJlc3RvcmVkIik7CisKKyMgU1RSRUFNIEFCT1JUCiskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCBxWworQkVHSU47CitJTlNFUlQgSU5UTyB0ZXN0X3RhYiBWQUxVRVMo Z2VuZXJhdGVfc2VyaWVzKDMwMDEsIDQwMDApKTsKK1JPTExCQUNLOworXSk7CisKKyRub2RlX3N1 YnNjcmliZXItPnBvbGxfcXVlcnlfdW50aWwoJ3Bvc3RncmVzJywKKyJTRUxFQ1QgY291bnQoMSkg PSAxIEZST00gcGdfc3RhdF9zdWJzY3JpcHRpb25fd29ya2VycyB3aGVyZSB4YWN0X2Fib3J0ID0g MTsiKQorICBvciBkaWUgImRpZG4ndCBnZXQgdXBkYXRlcyBvZiB4YWN0IHN0YXRzIGJ5IHN0cmVh bSBhYm9ydCI7CisKKyMgUk9MTEJBQ0sgUFJFUEFSRUQKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsIHFbCitCRUdJTjsKK0lOU0VSVCBJTlRPIHRlc3RfdGFiIFZBTFVFUyAo Mik7CitQUkVQQVJFIFRSQU5TQUNUSU9OICdnaWQyJzsKK10pOworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIlJPTExCQUNLIFBSRVBBUkVEICdnaWQyJyIpOworJG5vZGVf c3Vic2NyaWJlci0+cG9sbF9xdWVyeV91bnRpbCgncG9zdGdyZXMnLAorIlNFTEVDVCBjb3VudCgx KSA9IDEgRlJPTSBwZ19zdGF0X3N1YnNjcmlwdGlvbl93b3JrZXJzIHdoZXJlIHhhY3RfYWJvcnQg PSAyOyIpCisgIG9yIGRpZSAiZGlkbid0IGdldCB1cGRhdGVzIG9mIHhhY3Qgc3RhdHMgYnkgcm9s bGJhY2sgcHJlcGFyZWQiOworCisjIGVycm9yIHN0YXRzIChieSBkdXBsaWNhdGlvbiBlcnJvcikK KyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFbCitCRUdJTjsKK0lOU0VS VCBJTlRPIHRlc3RfdGFiIFZBTFVFUyAoMSk7IC0tIGFscmVhZHkgaW5zZXJ0ZWQgdGhpcyB2YWx1 ZQorQ09NTUlUOworXSk7CisKKyRub2RlX3N1YnNjcmliZXItPnBvbGxfcXVlcnlfdW50aWwoJ3Bv c3RncmVzJywKKyJTRUxFQ1QgY291bnQoMSkgPSAxIEZST00gcGdfc3RhdF9zdWJzY3JpcHRpb25f d29ya2VycyB3aGVyZSB4YWN0X2Vycm9yID4gMDsiKQorICBvciBkaWUgImRpZG4ndCBnZXQgdXBk YXRlcyBvZiB4YWN0IHN0YXRzIGJ5IGVycm9yIjsKKworJG5vZGVfc3Vic2NyaWJlci0+c3RvcCgn ZmFzdCcpOworJG5vZGVfcHVibGlzaGVyLT5zdG9wKCdmYXN0Jyk7Cg== --_002_OSBPR01MB4888125C82102E3343D85BC7ED869OSBPR01MB4888jpnp_--