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 1pCxj6-0003Ke-0b for pgsql-hackers@arkaria.postgresql.org; Wed, 04 Jan 2023 06:58:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pCxj4-0005Rc-GW for pgsql-hackers@arkaria.postgresql.org; Wed, 04 Jan 2023 06:58:14 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pCxj4-0005RT-2o for pgsql-hackers@lists.postgresql.org; Wed, 04 Jan 2023 06:58:14 +0000 Received: from esa19.fujitsucc.c3s2.iphmx.com ([216.71.158.62]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pCxiv-0005Cx-7F for pgsql-hackers@lists.postgresql.org; Wed, 04 Jan 2023 06:58:12 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1672815485; x=1704351485; h=from:to:subject:date:message-id:mime-version; bh=PtZep5dbGCu4ccYTrTo6v6boh3YmIIdbBqNPKpxZ8zI=; b=Uqy8ihyZdb0Ln4hVlHw8DwYeQ2hTykl32lkXbYuHYQEWcADhjpGOS2h6 aWIhdEiEhxeH5eUUlsxpSRhDhJUnXe3XjZkJ0RUp7dlzohjW4RrYlY54k iZhLzPC+YQV4bVYq68dN/OgypyeNDY2lYIO/vTHeF0O4CuLn8vTMm8A9A WfZ2Fbsh0302oQ9tKcESlIhHoBidf4yX4X1ytHTp35CVUyjWQuMyAXP/9 E5dgHl7QEoQwcS07gKjZCTRsGmEJ/WE2jgIWE55QUFF6VvYltnsyZbbPg ozOyQgSGJYz0u6G8KcHotM8HL+EOiWbgIzTXBNiEs3Qhlr4CIkl/jy0I6 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10579"; a="73336592" X-IronPort-AV: E=Sophos;i="5.96,299,1665414000"; d="scan'208,223";a="73336592" Received: from mail-tycjpn01lp2173.outbound.protection.outlook.com (HELO JPN01-TYC-obe.outbound.protection.outlook.com) ([104.47.23.173]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Jan 2023 15:58:03 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VEptGS9dPlpsXHnXmNHiymOgIOuUHmBcNMwniszNy+KH52aOdefCkEU74y4I/rPC1lbKW7yWOVkh2hK5Y9CKSOLqXt0PypJxLKwA73sPONw5EFxhOvbUmUS6d2TpT06LDVZSDRuK8HSFGntNrerRwuoIQC9+a565OotcNKqgV1H4To34I43WUVQ4eKQNa4mR+tZZ9OTPKIpjFIUiKQ15msSedH33Uy8raKoI4Nw/c614kjcP4yRpK8U9SPt8MS1D662jPVYtLQiAhvE1CT49n0ltYaOYtlzQrVOmhKBaM5Cd3MtaP7oBKVnktfwZYEIBKjuj4LBVQhKb0Y0lh34chw== 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=EIGz94tN1LkeNFeO5UB/0/gtI/v51Mn5xabZopGZdAI=; b=iNqDZnKyGZpRrDI7Z6d623/xFMTB6x8/coGh3NOTgPq+LSyG3Ihz5DBsbmQjLK1UdrPIHt8YNFHX8A1JIc7YshgUduNA0Ci+pWge6DLsw2ILFnMaKYcNp2uvvvDAWCEO3N9TsIFLiK1nsmAjAX0KaLvfd6wxjwf0MKai0qhQqxTSoAkIvGLKHpzHah07zVCnw0tiJvwbPEdIVAT1ysFd/PoOFQTKeQl3d/Vapufzzxe0JsApJUuyxi1ZtZHx6lS4FgRneztZ4YoyhCLCLz7hdxcU8/Iy5BnfS5gs0c1nfawbgQ9SGJsr9lSkRb4XZe/dfzofFqV70sPGPSZV/H2w1A== 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 Received: from OSZPR01MB6310.jpnprd01.prod.outlook.com (2603:1096:604:f7::9) by OS3PR01MB5749.jpnprd01.prod.outlook.com (2603:1096:604:c2::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Wed, 4 Jan 2023 06:58:00 +0000 Received: from OSZPR01MB6310.jpnprd01.prod.outlook.com ([fe80::47ae:54cf:515e:70cf]) by OSZPR01MB6310.jpnprd01.prod.outlook.com ([fe80::47ae:54cf:515e:70cf%9]) with mapi id 15.20.5944.019; Wed, 4 Jan 2023 06:58:00 +0000 From: "shiy.fnst@fujitsu.com" To: PostgreSQL Hackers Subject: Ignore dropped columns when checking the column list in logical replication Thread-Topic: Ignore dropped columns when checking the column list in logical replication Thread-Index: Adkf/qclLtFln6Y/TmeTTkafkBTQ8Q== Date: Wed, 4 Jan 2023 06:58:00 +0000 Message-ID: Accept-Language: ja-JP, en-US Content-Language: zh-CN X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: =?iso-2022-jp?B?TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZl?= =?iso-2022-jp?B?Y2UwNTBfQWN0aW9uSWQ9ODBhZGJkYjMtOWI5Ni00NzhhLWE5YzUtZGY2?= =?iso-2022-jp?B?MThjYzc4OTAzO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFi?= =?iso-2022-jp?B?NGQtM2IwZjRmZWNlMDUwX0NvbnRlbnRCaXRzPTA7TVNJUF9MYWJlbF9h?= =?iso-2022-jp?B?NzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfRW5hYmxl?= =?iso-2022-jp?B?ZD10cnVlO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQt?= =?iso-2022-jp?B?M2IwZjRmZWNlMDUwX01ldGhvZD1TdGFuZGFyZDtNU0lQX0xhYmVsX2E3?= =?iso-2022-jp?B?Mjk1Y2MxLWQyNzktNDJhYy1hYjRkLTNiMGY0ZmVjZTA1MF9OYW1lPUZV?= =?iso-2022-jp?B?SklUU1UtUkVTVFJJQ1RFRBskQiJMJT8lUhsoQjtNU0lQX0xhYmVsX2E3?= =?iso-2022-jp?B?Mjk1Y2MxLWQyNzktNDJhYy1hYjRkLTNiMGY0ZmVjZTA1MF9TZXREYXRl?= =?iso-2022-jp?B?PTIwMjMtMDEtMDRUMDU6MjU6MzFaO01TSVBfTGFiZWxfYTcyOTVjYzEt?= =?iso-2022-jp?B?ZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX1NpdGVJZD1hMTlmMTIx?= =?iso-2022-jp?B?ZC04MWUxLTQ4NTgtYTlkOC03MzZlMjY3ZmQ0Yzc7?= authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: OSZPR01MB6310:EE_|OS3PR01MB5749:EE_ x-ms-office365-filtering-correlation-id: 6fc7314c-f460-4a5a-9083-08daee2104ac x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: gVQ7Js/sD04reLr3RPFc8KcZaLSpu372pVZFT0C2L0e+PUKe5hdjDq4ZZJiN23x1tD/8UkmA5Ml1HxyhjhyYZcxcjWMk3/JxkxPgRMNhNjfuy7XpUHEquODjdTltw+LZ/5/wBe+6z+rSuArbwNxIdApA7MAdw6zOCepAOUUanM53L/jhy7AhB8fD/v2F5E1NCPVAixKUw+kCw5Eewp4gm4feiGDpF17DrVgDR3CgwtwzpbEtBbYIjcc2l05un0kqToLvyymY+NiKxzHG3f+kOKkcp51uMrLtN2IQarsCNpANXgOaycTgNVtl/+/+Bed6RUrfNZC2f2NERiwz1MA3dvlmZ+xK+FYJoEnzHs5PymOOGXXpZg/EkaRzbRaT76RGhX12X+poJ+wqtBqmydrgM76ntCbnpSUSz0s65ctX5ioYrcqeLSmBJG5ZIiiDiM+665e3cU0rfIkxCyq3GZ5UenqRZK4u/b2KPO3vykimfENPVuJukxOsxm+kQGPVcY7q8m5Dm1YC3PjsZiuz0oeIBtTRuCNTQxVzPPN8nE2bR496y17H1vdvJhqvRcPuo+/ENRY7yk9jxkGQVpWG/02THK0Rqyz2EyK2ke6JX/dOKsPyORdyV+PzvMfHQ5pn36r+bZAnVz0ckXEI+LHc/TvtHwDRcIH85NmbO2BBwlenLkR6BWzxymVECEjKIfTtFtuQuuMkKp9GiQPJF1Yy5nU/ibCSC9/6nZmi0nmO2v9t/DU= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OSZPR01MB6310.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(346002)(136003)(366004)(396003)(376002)(39860400002)(1590799012)(451199015)(5660300002)(52536014)(2906002)(8936002)(41300700001)(478600001)(8676002)(316002)(66476007)(66946007)(76116006)(6916009)(66446008)(64756008)(66556008)(1580799009)(71200400001)(9686003)(26005)(6506007)(33656002)(55016003)(7696005)(99936003)(122000001)(82960400001)(186003)(38100700002)(86362001)(38070700005)(85182001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?B?NHlpWmZyMjI4NHJrMVlSTUhRTnBNa2ZUWjJhL25tbHhQcHFrUU9xdnRh?= =?iso-2022-jp?B?MWJBdC9JQjRkNGsxYnB5N1VySEZDQnAwa1Y5QTBDZlVwUFdCcUtwUCto?= =?iso-2022-jp?B?RDhwYW9WUlJDK1ZlU096RFZLNVk3TW9uWkIxYmtEa0h0ck9neklEem03?= =?iso-2022-jp?B?QnRQN29yWkpVNjJXTWNrVCszL1o4dEtJbU9UTkttSzhOczdIdGpEWXV1?= =?iso-2022-jp?B?NzVhS1Q1SVc1Zk1VWEhEbVFkUjZZYWlta1FacnlhbVdoTU9kT2xBb2Zp?= =?iso-2022-jp?B?bmlITVY3NzZwd2RueFU2VXFaZU5Kc3RFRWtJVjEvdGZiaHNYWkplUkw1?= =?iso-2022-jp?B?d0tkdlFWTHdSUEN3akhNNHQySStmWHNKeGs5VUEvSFhWMDcxZkorM2p5?= =?iso-2022-jp?B?Y2lDSEg1NVJTcVVKcURwK1FnVkFjVTFycG43OUw3cXJ4TEFWcXdoK1R3?= =?iso-2022-jp?B?Q3duVWhKTGs2Q0plNmFWQ2VHUkV1b01sZ2E0ZWRIUEhtUnVmVDl3R1FQ?= =?iso-2022-jp?B?Y0Zya0RXcEtlbmFmMDRPMTRIVU85RVk1SFlWbTVOMDNBeTFpc0hvYlZq?= =?iso-2022-jp?B?MnBBYnYvMDB4Z1hoNWpBUnE4T0IycXZIM0tia2VxM0lqOGxVdE5nUUpu?= =?iso-2022-jp?B?OVlMWGw1c0pPbDZNNTl1eHI2VE9jMXFBK1ZYbCttdHpHY25ZYVNHcjl1?= =?iso-2022-jp?B?YlpkWWowcUNGbGVYb2JOUzQ5UmdvRGtzTm8yejExMjI1d0xCUUNKQVhy?= =?iso-2022-jp?B?RFhRbWxKTmw0a2ZXVWc4UEdjY0tJZjlCLzdPRU8xRTBDSkdSY2hhRCtE?= =?iso-2022-jp?B?RFQvNS9OTGZEMGplaVp2ZWhUNTQySDErc3N3dzlHYkRCSjNJSjIxR2ZP?= =?iso-2022-jp?B?dE9hM3JjcXgwc0duN29uVVNrQ2wyZWFFclh5TVhjK3dhYWRtNFBEQWht?= =?iso-2022-jp?B?aFYwU2lxaktGN0xKVWlXNHdOY3EzNDFsa3dHaGJJVGVKSEdUb080emxL?= =?iso-2022-jp?B?T012MGN5WnlXc2Qvb0Q1UzR6eGd2STNrb3g4SHpQQkxmYXBJOXM2Vzd3?= =?iso-2022-jp?B?c0xTWWQ4c2dUdzNrYnU0cTErMHljb2RHb3lJRk10V0QwQXpsaFE0Zi9G?= =?iso-2022-jp?B?T2wwYm5SWmJVbjBRdUt1Nk5EWG9pM2NTOG5uUkZUbkxIMzNLNWZ5Zm5S?= =?iso-2022-jp?B?UXFiblB4bEFVcUVXL2x5SDJ6Z0dsV2ZSOTgwWVRJNWNzUlAxYUVLaFBC?= =?iso-2022-jp?B?MXdjalFUQzk5cjZMbUhoZVMxWmhiSzlaZ1RlU1ZWenRFcWw4TkZ3ZEJI?= =?iso-2022-jp?B?YWZaRnJuTTJIeEFHWmRKOVNwaEtjYlhPSmQyTVh4Q2hLeUpDV0s1cVZG?= =?iso-2022-jp?B?cmR2VzZnSmFtSkZQVCt3VXhqMnVSblJNcE1Pc3d6SFlQc05DT2hEQkRC?= =?iso-2022-jp?B?YXhkUnlha3BVQnlyNHZEd0x6amNmQiszWlQvcG9aYVhMQnVnQ1RYSDgx?= =?iso-2022-jp?B?L0xFejF0cXc0dmFCOVpZaVJ4Znl4TzlENG1Za240V29FZlpBeXlPeVRJ?= =?iso-2022-jp?B?Uk1ISFZXck1CTmUvUEhQODhtc2xBSC9zUTRvL2hMNURaVXRRQXFISFlP?= =?iso-2022-jp?B?eGNPN1h3QllxSGhQVGNoTEFZNnVKRzdzaFFZUVNYZE43VEx2aExMTkpk?= =?iso-2022-jp?B?b2c5eER1TzhLUGdITDh0WmppTmJGYVNDR09ZclIvRC9qaXRrc2wrMG1t?= =?iso-2022-jp?B?YW82UEFrbmJIdEtZSG1mNlRlZ3dKeENxZ3V1N3prZTdtVXhrTU12TU41?= =?iso-2022-jp?B?ZWZuTkJRZ3pKNUVHa3BFNGRvbW40elpJN3VVL3B1d1RySGg5b2hmckRv?= =?iso-2022-jp?B?R1k4cHBEV0JxclJaTDVZbnFGbHQwOUtCTEVpR0ZGMnNnMlFHYUpFdlJ0?= =?iso-2022-jp?B?UlF4R2tGeVhza1ZiRlJLRnBJRnZHSjZvQ2diUjJ5dDR5RDlPaCt0NWw5?= =?iso-2022-jp?B?UTVsNmdDZEtQckpkK01TQVNtaVZPd3JtbXpHeUs5bC9IeDZPQTNoVkhu?= =?iso-2022-jp?B?cVovNEhUWWM2Uk5rdkt5TlREK05DWVpicXZzWG1ZZTBLRTYrRWk0cVk0?= =?iso-2022-jp?B?UGUraFZkQ3JOZlhhSk16RVNDNjhRNDRhTi9rSE8zKzJHM3ExRkhxMTRw?= =?iso-2022-jp?B?UVpMbEpFSkR3eHBQSGxNMVBtUjd4ZElTd2JKNGxVY1RUSzlSV2tJRUZm?= =?iso-2022-jp?B?MGxyeFRTczB5SlVLQVVxOGRkN2l4S2x1eXdTaFdsbUNaVGlBWUxCeVlx?= =?iso-2022-jp?B?QkFTSw==?= Content-Type: multipart/mixed; boundary="_002_OSZPR01MB631087C65BA81E1FEE5A60D2FDF59OSZPR01MB6310jpnp_" MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: sM1fnG9rItRbs5ih59zLukBHMLcMAHZ6gobnA7hoAbKSuZMlrM6aHLjwfKkpGS2xulgvcuEd+mXPd7Iwq637yJ+fSRrgy3C+JsyZKd9MZ/DMpChiqcBXWESFH4yuVth479QWLhfGcG+Q9HJMAwsGkgxbYZdCmYBLA0hviOxn5H5dmZu0TnivmlOXExjTANswOsl6jG8KGxRnjgCmUsboNxu6TOeuhxFMAJJMy9NmDEw349tmyz83WyFN2AAePtaItuOtm8OraOkqGRPkbh6mXV32LDNBg9oOxEQWOeprXkcfFFDff1MhUhl+RPfbLHH0+D+6MJdh3R9pWEXH6/WBhtYivDPAzVTvetA4ZuTxSvb+7B9QQs+f25bl3ZFtLVeBB1xXchuU+prLoMNSbW9RiRevIZ/ubuO09AwcEZ+vW4P0T4AQ7jUHrXY4Gdd+chnuPwHDcpB/6jDQ1UFqE2Nq/M8Q94W8vAsB5amkH6a47Bwb4PUA9V9vrEu19tM3JzEFrLrcbVU+wOms1yY0g290IXgmxXT0RCy28Yek0+FTGq+4sLJ+z4651tfSUFkOu/IyqLUFpuw2TJl0X/s109Quih4A2OBTCnp0wmA482bnVC7Gq4mEzqgEkEGOjsBGC4cMWfrr5atNX7oETb7FreECmHhkfKLxbxXLZg3gMCKUwHHamypnAqwI/C6lm00os0q5JufXFVCeJm+QXvVlcr7SaryUEoBQjQjSjXRCAJ6xddxkOELsQjMsMrdVatcqYs+lTZ6v0wk8/GFfhSjLnS3a1WWYNkyg+v2sXHe5Ijpkjjg= X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OSZPR01MB6310.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6fc7314c-f460-4a5a-9083-08daee2104ac X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jan 2023 06:58:00.5627 (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: +PuWwGzO0gY2tkXzxwTAYyVZmr88iTenZP8p60ciH5qhdF90Uxifyf/OeHlLTzIHLjFFM4BnmDdoR1TJaTjxWg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB5749 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_OSZPR01MB631087C65BA81E1FEE5A60D2FDF59OSZPR01MB6310jpnp_ Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable Hi hackers, I saw a problem related to column list. There's a restriction that different column lists for same table can't be u= sed in the publications of single subscription. But we will get unexpected erro= rs in some cases because the dropped columns are not ignored. For example: -- publisher create table tbl1 (a int primary key, b int, c int); create publication pub1 for table tbl1(a,b); create publication pub2 for table tbl1; alter table tbl1 drop column c; -- subscriber create table tbl1 (a int primary key, b int, c int); create subscription sub connection 'dbname=3Dpostgres port=3D5432' publicat= ion pub1, pub2; -- publisher insert into tbl1 values (1,2); The publisher and subscriber will report the error: ERROR: cannot use different column lists for table "public.tbl1" in differ= ent publications This is caused by: a. walsender (in pgoutput_column_list_init()) /* * If column list includes all the columns of the table= , * set it to NULL. */ if (bms_num_members(cols) =3D=3D RelationGetNumberOfAtt= ributes(relation)) { bms_free(cols); cols =3D NULL; } The returned value of RelationGetNumberOfAttributes() contains dropped colu= mns. b. table synchronization (in fetch_remote_table_info()) appendStringInfo(&cmd, "SELECT DISTINCT" " (CASE WHEN (array_length(gpt.attrs, 1) =3D c.re= lnatts)" " THEN NULL ELSE gpt.attrs END)" " FROM pg_publication p," " LATERAL pg_get_publication_tables(p.pubname) gp= t," " pg_class c" " WHERE gpt.relid =3D %u AND c.oid =3D gpt.relid" " AND p.pubname IN ( %s )", lrel->remoteid, pub_names.data); If the result of the above SQL contains more than one tuple, an error will = be report (cannot use different column lists for table ...). In this SQL, attr= s is NULL if `array_length(gpt.attrs, 1) =3D c.relnatts`, but `c.relnatts` conta= ins dropped columns, what we want is the count of alive columns. I tried to fix them in the attached patch. Regards, Shi yu --_002_OSZPR01MB631087C65BA81E1FEE5A60D2FDF59OSZPR01MB6310jpnp_ Content-Type: application/octet-stream; name="v1-0001-Ignore-dropped-columns-when-checking-the-column-l.patch" Content-Description: v1-0001-Ignore-dropped-columns-when-checking-the-column-l.patch Content-Disposition: attachment; filename="v1-0001-Ignore-dropped-columns-when-checking-the-column-l.patch"; size=4694; creation-date="Wed, 04 Jan 2023 06:50:21 GMT"; modification-date="Wed, 04 Jan 2023 06:57:59 GMT" Content-Transfer-Encoding: base64 RnJvbSBkYjYwNzNlYzk2MDg5ODc1YTYyODY0NjljODgyOTEwZDhlNTUzZTlkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGkgWXUgPHNoaXkuZm5zdEBmdWppdHN1LmNvbT4KRGF0ZTog V2VkLCA0IEphbiAyMDIzIDEzOjM3OjMxICswODAwClN1YmplY3Q6IFtQQVRDSCB2MV0gSWdub3Jl IGRyb3BwZWQgY29sdW1ucyB3aGVuIGNoZWNraW5nIHRoZSBjb2x1bW4gbGlzdCBpbgogbG9naWNh bCByZXBsaWNhdGlvbgoKVGhlcmUncyBhIHJlc3RyaWN0aW9uIHRoYXQgZGlmZmVyZW50IGNvbHVt biBsaXN0cyBmb3Igc2FtZSB0YWJsZSBjYW4ndCBiZSB1c2VkCmluIHRoZSBwdWJsaWNhdGlvbnMg b2Ygc2luZ2xlIHN1YnNjcmlwdGlvbi4gQnV0IGluIHRoZSBjaGVjayBvZiB3YWxzZW5kZXIgYW5k CnRhYmxlIHN5bmNocm9uaXphdGlvbiwgdGhlIGRyb3BwZWQgY29sdW1ucyBhcmUgaW5jbHVkZWQg d2hlbiBnZXR0aW5nIHRoZSBudW1iZXIKb2YgY29sdW1ucyBpbiBhIHRhYmxlLiBUaGlzIGNhbiBs ZWFkIHRvIHVuZXhwZWN0ZWQgZXJyb3JzIGluIHNvbWUgY2FzZXMuIEZpeCBpdAppbiB0aGlzIHBh dGNoLgotLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMgfCAx MCArKystLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgfCAx MyArKysrKysrLQogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMxX2NvbHVtbl9saXN0LnBsICB8 IDM0ICsrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA1MiBpbnNlcnRpb25z KCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvdGFibGVzeW5jLmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3Rh Ymxlc3luYy5jCmluZGV4IDJmZGZlYjViNGMuLjllODczODgxZDAgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMKKysrIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5bmMuYwpAQCAtODE3LDE0ICs4MTcsMTYgQEAgZmV0 Y2hfcmVtb3RlX3RhYmxlX2luZm8oY2hhciAqbnNwbmFtZSwgY2hhciAqcmVsbmFtZSwKIAkJcmVz ZXRTdHJpbmdJbmZvKCZjbWQpOwogCQlhcHBlbmRTdHJpbmdJbmZvKCZjbWQsCiAJCQkJCQkgIlNF TEVDVCBESVNUSU5DVCIKLQkJCQkJCSAiICAoQ0FTRSBXSEVOIChhcnJheV9sZW5ndGgoZ3B0LmF0 dHJzLCAxKSA9IGMucmVsbmF0dHMpIgorCQkJCQkJICIgIChDQVNFIFdIRU4gKGFycmF5X2xlbmd0 aChncHQuYXR0cnMsIDEpID0gIgorCQkJCQkJICIgICAoU0VMRUNUIGNvdW50KCopIEZST00gcGdf YXR0cmlidXRlIGEiCisJCQkJCQkgIiAgICBXSEVSRSBhLmF0dHJlbGlkID0gJXUgQU5EIGEuYXR0 bnVtID4gMCBBTkQgTk9UIGEuYXR0aXNkcm9wcGVkKSkiCiAJCQkJCQkgIiAgIFRIRU4gTlVMTCBF TFNFIGdwdC5hdHRycyBFTkQpIgogCQkJCQkJICIgIEZST00gcGdfcHVibGljYXRpb24gcCwiCi0J CQkJCQkgIiAgTEFURVJBTCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKHAucHVibmFtZSkgZ3B0 LCIKLQkJCQkJCSAiICBwZ19jbGFzcyBjIgotCQkJCQkJICIgV0hFUkUgZ3B0LnJlbGlkID0gJXUg QU5EIGMub2lkID0gZ3B0LnJlbGlkIgorCQkJCQkJICIgIExBVEVSQUwgcGdfZ2V0X3B1YmxpY2F0 aW9uX3RhYmxlcyhwLnB1Ym5hbWUpIGdwdCIKKwkJCQkJCSAiIFdIRVJFIGdwdC5yZWxpZCA9ICV1 IgogCQkJCQkJICIgICBBTkQgcC5wdWJuYW1lIElOICggJXMgKSIsCiAJCQkJCQkgbHJlbC0+cmVt b3RlaWQsCisJCQkJCQkgbHJlbC0+cmVtb3RlaWQsCiAJCQkJCQkgcHViX25hbWVzLmRhdGEpOwog CiAJCXB1YnJlcyA9IHdhbHJjdl9leGVjKExvZ1JlcFdvcmtlcldhbFJjdkNvbm4sIGNtZC5kYXRh LApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQu YyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKaW5kZXggNzcz NzI0MjUxNi4uMDE4OGI1OTZjMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v cGdvdXRwdXQvcGdvdXRwdXQuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1 dC9wZ291dHB1dC5jCkBAIC0xMDUwLDE2ICsxMDUwLDI3IEBAIHBnb3V0cHV0X2NvbHVtbl9saXN0 X2luaXQoUEdPdXRwdXREYXRhICpkYXRhLCBMaXN0ICpwdWJsaWNhdGlvbnMsCiAJCQkJLyogQnVp bGQgdGhlIGNvbHVtbiBsaXN0IGJpdG1hcCBpbiB0aGUgcGVyLWVudHJ5IGNvbnRleHQuICovCiAJ CQkJaWYgKCFwdWJfbm9fbGlzdCkJLyogd2hlbiBub3QgbnVsbCAqLwogCQkJCXsKKwkJCQkJaW50 CQkJaTsKKwkJCQkJaW50CQkJbmxpdmVhdHRzID0gMDsKKwkJCQkJVHVwbGVEZXNjCWRlc2MgPSBS ZWxhdGlvbkdldERlc2NyKHJlbGF0aW9uKTsKKwogCQkJCQlwZ291dHB1dF9lbnN1cmVfZW50cnlf Y3h0KGRhdGEsIGVudHJ5KTsKIAogCQkJCQljb2xzID0gcHViX2NvbGxpc3RfdG9fYml0bWFwc2V0 KGNvbHMsIGNmZGF0dW0sCiAJCQkJCQkJCQkJCQkJZW50cnktPmVudHJ5X2N4dCk7CiAKKwkJCQkJ LyogR2V0IHRoZSBudW1iZXIgb2YgbGl2ZSBhdHRyaWJ1dGVzLiAqLworCQkJCQlmb3IgKGkgPSAw OyBpIDwgZGVzYy0+bmF0dHM7IGkrKykKKwkJCQkJeworCQkJCQkJaWYgKCFUdXBsZURlc2NBdHRy KGRlc2MsIGkpLT5hdHRpc2Ryb3BwZWQpCisJCQkJCQkJbmxpdmVhdHRzKys7CisJCQkJCX0KKwog CQkJCQkvKgogCQkJCQkgKiBJZiBjb2x1bW4gbGlzdCBpbmNsdWRlcyBhbGwgdGhlIGNvbHVtbnMg b2YgdGhlIHRhYmxlLAogCQkJCQkgKiBzZXQgaXQgdG8gTlVMTC4KIAkJCQkJICovCi0JCQkJCWlm IChibXNfbnVtX21lbWJlcnMoY29scykgPT0gUmVsYXRpb25HZXROdW1iZXJPZkF0dHJpYnV0ZXMo cmVsYXRpb24pKQorCQkJCQlpZiAoYm1zX251bV9tZW1iZXJzKGNvbHMpID09IG5saXZlYXR0cykK IAkJCQkJewogCQkJCQkJYm1zX2ZyZWUoY29scyk7CiAJCQkJCQljb2xzID0gTlVMTDsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMV9jb2x1bW5fbGlzdC5wbCBiL3NyYy90 ZXN0L3N1YnNjcmlwdGlvbi90LzAzMV9jb2x1bW5fbGlzdC5wbAppbmRleCA4ODM1YWIzMGZmLi41 OGQ0Zjk3ZGI2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzFfY29sdW1u X2xpc3QucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMxX2NvbHVtbl9saXN0LnBs CkBAIC0xMTg0LDYgKzExODQsNDAgQEAgJHJlc3VsdCA9ICRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKAogaXMoICRyZXN1bHQsIHFxKHQKIHQpLCAnY2hlY2sgdGhlIG51bWJlciBvZiBjb2x1bW5z IGluIHRoZSBvbGQgdHVwbGUnKTsKIAorIyBURVNUOiBXaXRoIGEgdGFibGUgaW5jbHVkZWQgaW4g bXVsdGlwbGUgcHVibGljYXRpb25zIHdpdGggc2FtZSBjb2x1bW4gbGlzdHMsCisjIGl0IHdvcmtz IGZpbmUuIERyb3BwZWQgY29sdW1ucyBhcmUgbm90IGNvbnNpZGVyZWQuCiskbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgVEFCTEUgdGVzdF9taXhf NCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCk7CisJQUxURVIgVEFCTEUgdGVzdF9t aXhfNCBEUk9QIENPTFVNTiBjOworCUNSRUFURSBQVUJMSUNBVElPTiBwdWJfbWl4XzcgRk9SIFRB QkxFIHRlc3RfbWl4XzQgKGEsIGIpOworCUNSRUFURSBQVUJMSUNBVElPTiBwdWJfbWl4XzggRk9S IFRBQkxFIHRlc3RfbWl4XzQ7CispKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKAor CSdwb3N0Z3JlcycsIHFxKAorCURST1AgU1VCU0NSSVBUSU9OIHN1YjE7CisJQ1JFQVRFIFRBQkxF IHRlc3RfbWl4XzQgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQpOworKSk7CisKKyRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgU1VC U0NSSVBUSU9OIHN1YjEgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElP TiBwdWJfbWl4XzcsIHB1Yl9taXhfODsKKykpOworCiskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zv cl9zdWJzY3JpcHRpb25fc3luYzsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bv c3RncmVzJywgcXEoCisJSU5TRVJUIElOVE8gdGVzdF9taXhfNCBWQUxVRVMgKDEsIDIpOworKSk7 CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViMScpOworCisjIHRlc3Rf bWl4XzQ6IG9ubHkgKGEsYikgaXMgcmVwbGljYXRlZAorJHJlc3VsdCA9CisgICRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0ZXN0X21peF80Iik7 CitpcyggJHJlc3VsdCwgcXEoMXwyfCksICdpbnNlcnQgb24gdGVzdF9taXhfNCBpcyByZXBsaWNh dGVkIGFmdGVyIGRyb3BwaW5nIGNvbHVtbiBjJyk7CiAKICMgVEVTVDogV2l0aCBhIHRhYmxlIGlu Y2x1ZGVkIGluIG11bHRpcGxlIHB1YmxpY2F0aW9ucyB3aXRoIGRpZmZlcmVudCBjb2x1bW4KICMg bGlzdHMsIHdlIHNob3VsZCBjYXRjaCB0aGUgZXJyb3Igd2hlbiBjcmVhdGluZyB0aGUgc3Vic2Ny aXB0aW9uLgotLSAKMi4zMS4xCgo= --_002_OSZPR01MB631087C65BA81E1FEE5A60D2FDF59OSZPR01MB6310jpnp_--