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 1nRtIk-00076t-7j for pgsql-hackers@arkaria.postgresql.org; Wed, 09 Mar 2022 10:12:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nRtIj-0001SA-3z for pgsql-hackers@arkaria.postgresql.org; Wed, 09 Mar 2022 10:12:13 +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 1nRtIi-0001S1-KF for pgsql-hackers@lists.postgresql.org; Wed, 09 Mar 2022 10:12:12 +0000 Received: from esa4.fujitsucc.c3s2.iphmx.com ([68.232.151.214]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nRtIf-0002XY-3P for pgsql-hackers@postgresql.org; Wed, 09 Mar 2022 10:12:12 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1646820729; x=1678356729; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=9oQ58HFKHLePSRqEF/ynXFOAPaZj7u1uljLvpKoo+Cc=; b=olhGv+XBCb+yvAgs0On61IX1e6hM7RzDxiLHZcdVymbVmMKgreaxzhQn hXGbY6PPIgS4NtzuCYkNcjx5zZxN3TuhAwBpvyyHxWgvWrZkFe/ZXQ2/E eC1RuugEbY3MHdyxJtWs2HO5lmgWWhWbQ8tajzTTI3Lvd1xuWUYglDENY GjaRD5JCeU/E0BtA4VZmkQuj1N5YWtLKN695pkRWJJp5orK/xjHZ/ih04 aAiUvKyCTcslkJ9gsWoqZmyOKgxL7WsHpglag/gQxna7YsarBze1l93bX rs2WDCkSzGcTjN5KNddeszXysosRBaWNaEIrxDXHg10NHo1kycVcjOk9/ Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10280"; a="59232331" X-IronPort-AV: E=Sophos;i="5.90,167,1643641200"; d="scan'208";a="59232331" Received: from mail-tycjpn01lp2170.outbound.protection.outlook.com (HELO JPN01-TYC-obe.outbound.protection.outlook.com) ([104.47.23.170]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Mar 2022 19:12:06 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QTv1/Bqzfry1Uw+hNoY3BSkXa5Z1+IN8dqWZlYFsdQJr8DgCOMa2yDhK+3PuQD+yV3pXAW62Iu207JtVbo7rjcmndz615bno1S7/WnfRihcSyqlLXaEnb0+Yel5ayrjg5urNZxenxWMmt0V7cPhcjAhy2j6FxA/XR1kK8U7lr5OrAjrH+fKBoRSacPbKi9fJeiwaDIetOpyhKg2BaMVCJZ1nByLYVJR8RZNlaHQwsDXAS45MoVVBbxSOBMYZJJcbZonPFWFjkKc3j5Ptaa1aeMA+0GELK2CDgHvsz1DqM6rSs99PQG2KqAz5UjHMmNqpMZl/hyrM0+G/pEaP8D42nA== 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=9oQ58HFKHLePSRqEF/ynXFOAPaZj7u1uljLvpKoo+Cc=; b=EdVqbBUaRsLTrUc2rw4LGnosc70//5cAjQ1XcOgUJF6Os+XQOQc/bZ7EKFLHPZRQdg8+LXOwJf8hCa/FbgKcktnU5M38VuEnHn/+rkAhL7SI/poYSAxAHAUShiS2LcY0V9rokPfT+8943aSjfDdjBb1RhpDnU2htHaWDWhRMmB2ASUdK+N60qnh55q01GlF+tKChAtdexmacCHWW+V306GxtK6lwTte7wAPfeBVn58SFNs+HT4roRwsOO7XV3lu6Oo62TG0rQKbKfZF7N7wtRZ1dS8QSL4F+sG10XtRpXDSTcE2TUrcvv0tm3X6R5Qq2LPbnGQ5BsU0QypKFQJk3uw== 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=9oQ58HFKHLePSRqEF/ynXFOAPaZj7u1uljLvpKoo+Cc=; b=K4ZtfxjWXL0GbC5Z4iKcGGbetAnyanGYqnDMOx/VD0DpubCKEBAs9cXH54w8U4PsQaHdnXkNQv23dSMCsT3epLWIDCc9KF6xRctNno5c+g4F9Wi1cEm3A4DEb0lFk2vWBY3l5TAcjSrnQsUfUMz3IHUyYyCAhNHMT8BpaIoIV9c= Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com (2603:1096:604:bb::12) by OSAPR01MB3300.jpnprd01.prod.outlook.com (2603:1096:604:52::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5038.14; Wed, 9 Mar 2022 10:12:02 +0000 Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::d02a:61f2:9c10:9c4f]) by OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::d02a:61f2:9c10:9c4f%5]) with mapi id 15.20.5038.029; Wed, 9 Mar 2022 10:12:02 +0000 From: "houzj.fnst@fujitsu.com" To: Amit Kapila , Tomas Vondra CC: Peter Eisentraut , Alvaro Herrera , Justin Pryzby , Rahila Syed , Peter Smith , pgsql-hackers , "shiy.fnst@fujitsu.com" Subject: RE: Column Filtering in Logical Replication Thread-Topic: Column Filtering in Logical Replication Thread-Index: AQHXbedBXHBQh3Nzm06CtHX1K4V/oqxJgTCAgAHHnACAAVELAIAAICkAgAAVNoCAARz6gIAElT6AgAYbNYCABYv0AIABNFUAgABhigCAHknogIAYpLyAgACwkACAFiRRgIADC04AgAUD/QCAAszSAIAAAPUQ Date: Wed, 9 Mar 2022 10:12:01 +0000 Message-ID: References: <202201120041.p24wvsfcsope@alvherre.pgsql> In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 48e8eff5-b7e7-4081-81ee-08da01b54125 x-ms-traffictypediagnostic: OSAPR01MB3300:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: NhvbVg0d0uGYdnn+4JgDg/d+i4rEpyesXl+0SBvzlmjN16QNINntXtrdlrxcEkL3mbLJGmkmttcydGQqKICSM3HHQYKcn/XkKE19DUYqzXE64D3F8nYhrMmIk8CYa02ex4C7J5YMRFKrfTL/iQbECN1pT6JLsdSLEbb9ZkEd8Z/YjL04KPNPjCFqkYvHYZhasY+WqyXhAW4OA3CEct4BuSldZ1UoGK19WDk9D03MDoANBQd8040nF7Xn7XzYGTbZnkQjfq7I2IGyY18tAU7SdMAIjpA5FvYcnAHkZbGsh2SMFFrIEBnPLW9UlfUA9cY1ojKFSmDA0manak6iQuhwhlO9NM1ve82wOhExkRn/FW189cJAllZ0z4dIDYM2H0gx1ZUrTxFFeG/yXvNRx5DcAurUCSFrCyscdg322eiSQ8qta/bUKdaI4R9aceqPtoPTvCTcx9k1lgPGb5z2KQfLhrfXtXfa9pYi7QvuA2q8Tpkbm6S/zlKMA0zePe2io/iIcj7AsdTqO3ySaQCAuFqTyeB9DzTlwsyRMy9CgpXUt+AqbYjdwxKQRycz98863hBP4Sx94eWc4JigSUP4zPK3OfHa4yvhbAYGcCSxDX6BzriqciS8IiemawppZw2ow5HjpjljidyXTinwmi4H9gfFWkg+N7rhPkMwggq/tGoY7CrYH7FMQiQgKgA94tqWevxXQf8A2qk3ibrFrJNBiP40zg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS0PR01MB5716.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(9686003)(107886003)(55016003)(186003)(26005)(7696005)(508600001)(6506007)(71200400001)(53546011)(122000001)(38070700005)(33656002)(38100700002)(82960400001)(86362001)(110136005)(2906002)(54906003)(66946007)(76116006)(66556008)(66446008)(64756008)(66476007)(85182001)(4326008)(8676002)(8936002)(5660300002)(52536014)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NmhEdEVzdWI3MFB5OGtTS0tEeEhBalYzYnFnd3Jmcm5Cb2U5dldwOEkyNTJr?= =?utf-8?B?S1hRZHVGS1BOZ0dTT2o0andUQ2k5eUpLbWpxTFdsWlB3Tk1Jbnd6T2ZCLzlP?= =?utf-8?B?UGFRazFZRk9CMU43c1NhaG41TFVETWNVdEZscy92STZQaEh0SWNGWXhMNWlW?= =?utf-8?B?b01ta29rbmxjRDF3K3pkUHZuNUxyeFlJM1lDSjM0Rk5JQkFXMFI3bmdJWWE1?= =?utf-8?B?V3VIN0x4TDVqTW8zL1M4TEJEbHF2MkRDNWFjSUUwNXd6TVZNRHp4bVJmN2xq?= =?utf-8?B?blhzamYrTUxqK29xVy9OcUpQSVE0Z3RDWE5UaS82c3U3Q1VKN29qb0xiaU4z?= =?utf-8?B?NkNVb0RHa3QwMGZDeSttSXdtNzhvN0RkUXBsbXVGN3U3eW5zeGozd3BHQlVm?= =?utf-8?B?aWlleGtlNlZ4bG9nRzRHQVRLNnh5QmRJNkdQdGw2UHpaSUh3R2ovOHUyMzlP?= =?utf-8?B?RlRyTTZaYm1KaUQ3eUtuUStRcXVoK1BPS2h3QWYySGtyWGxyT2tmZy9pd1Va?= =?utf-8?B?NFMvazJKbkRhZnRmWktQbzlySXZKL3QzaWlmbitXNGVzTzBlSXFEdzgxWEwv?= =?utf-8?B?SFNOekRTalducWMxRzl4cWIzSFZzeU85Uk5nRlVQd2dwRytlZFZ6bldNKzhO?= =?utf-8?B?aDdWNUcycHdRY1N6YWY3QlJwTFphZ1EvZUhuTjgzd2cwbHAwNDgvTE1rT0I1?= =?utf-8?B?QlhWWHVjVmlpWjR6ZjFXVklTNzNScjh6THRvcmtTeUwwVU11cEp2eDhpUkNz?= =?utf-8?B?OGZtRW9IVDQreklKRDRGQ3l3K0swSC9hMlhzaGRIY050ekJMTDR6eEovUjY3?= =?utf-8?B?VHdrUW90UklwcEpyRVdKTXJTcWdTNWpjczJCVDJlVUZHWHNodUVRSXFid2VR?= =?utf-8?B?dXJqY1RqeGpLdXR0VE9Gbzh6dEFoMEVtNlpneDFOK2ZFem1Wc2JVYnVvdGhJ?= =?utf-8?B?Mi9zaHMrSGZHQ1p1d2wyZDdOQnZpQ3p3c0Z3MHo0Q0I1YmRlUnVXdzNPNE5w?= =?utf-8?B?eFlTak5vOTFYN1dOVWZIU2tsbDJwUURkTTUvUm9pSUo2YVFMYTJqNmZ1QU5Q?= =?utf-8?B?RUZkVFR5RW01YVFRMEZ5RURKOGFSSUw1OUJqOGVTK2k5YXBzdHFEVG00aUtk?= =?utf-8?B?UU1BcHg0cFM5OTFXeURNdG5NQXlXVmNVem5sSUNWTk1aRFdIMDhWSWpqRDBo?= =?utf-8?B?Q3U4QXhGWG1FNWJjK3lnQnk1dnM4bFR0ZFpWdkxoMkEvakpJSGZsYXgxZUZk?= =?utf-8?B?RFh4TW14V0xhandRaUwvNXlGVVRLdkVUcjdDbXdtYUZESFUwcXZ5T2pzaVJ3?= =?utf-8?B?aktNTk9yYjNONnJFWWk0MndQREhIbG9JR3BKcVd2bUsySk9VOEpHRFNYWTlr?= =?utf-8?B?ZGpWVENGRUhGSGVUQTZ5T1FaOTRoYWs1dVN0d21aZE9WWHlrRVQ5K3BLdGRh?= =?utf-8?B?V05hU2svNG5FNUVTR3BtYXdBc1Mwc2lLVHY2bS9OdmgzYlFPVW1EZE9KcG9k?= =?utf-8?B?aklvS3RsOFF3dy80ODE4M083aW51MU1UaUFnM2xkNUx1WUl5VzY0YzdEbDM2?= =?utf-8?B?UUpWY1RSaTI5OVYyMG1qSVdnbVBlT3dYNFRHbEVWY2w1NGU3Wm9TNnlpMHEw?= =?utf-8?B?YmpkZHV0WmVpc2lkOFhEVld4S0pCZGdNZHhhbnJ3UlJyUmJSUG8xWjJDRkxL?= =?utf-8?B?ZUJGZTVKaWtSYU96SlNLbmx5ZUprSHN4MVB3dDJLalVXWVQ0VytWZWVMWE9S?= =?utf-8?B?emFNWW8zbHh2MEZUSkRYR2U0ME1NTGs0eWtkZHRleHU0N1FhdEhBREZiN0dL?= =?utf-8?B?eExwc1hXTE1qMXlVQUNsdGtmeGQreHY0OTJjVGdSdGpPZXpaQWE5N1FzUlRQ?= =?utf-8?B?U1BRd0VWZmlRZjg5bEtFZm12NlpBdEh5bjNVL1MrMENVZ05aV0Y2djQ3Z3lN?= =?utf-8?B?N3Q5MkxzYkhLRGx1bjBOb0xtMVZUOEtDQW5VemhaZGFtOHp4N0V3VC9TQ3Mw?= =?utf-8?B?a0JVcStnY24wTStjaUxYaUZadE9CQWdXWTZlU2JYK1B3Nld5T3dCSUlHb25S?= =?utf-8?B?VnFVcDVXb2Jrc1p4TUpkWHBndk5UQ0pyZEo3a0M4VitXaG5NUUpxckIvcDVy?= =?utf-8?B?SkxGaGFpQ2hacHlUenpnYU9UbzUvT1BMK29qOFhodkg5K0cwQ0U1SnFnbnNY?= =?utf-8?Q?cF/n6mh3XL5/pIc8GB/3IjY=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OS0PR01MB5716.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 48e8eff5-b7e7-4081-81ee-08da01b54125 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Mar 2022 10:12:01.9407 (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: M31CKNltCmQBCysIo/IyLlmk9w4TKnb7kFDq0s4RSt9HNwbSZxxkL3nNpVIKumzD9KVIC4OCYcyr2A7Iid/XHw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSAPR01MB3300 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk T24gV2VkbmVzZGF5LCBNYXJjaCA5LCAyMDIyIDY6MDQgUE0gQW1pdCBLYXBpbGEgPGFtaXQua2Fw aWxhMTZAZ21haWwuY29tPg0KPiBPbiBNb24sIE1hciA3LCAyMDIyIGF0IDg6NDggUE0gVG9tYXMg Vm9uZHJhDQo+IDx0b21hcy52b25kcmFAZW50ZXJwcmlzZWRiLmNvbT4gd3JvdGU6DQo+ID4NCj4g PiBPbiAzLzQvMjIgMTE6NDIsIEFtaXQgS2FwaWxhIHdyb3RlOg0KPiA+DQo+ID4gPiAqDQo+ID4g PiBGZXRjaGluZyBjb2x1bW4gZmlsdGVyIGluZm8gaW4gdGFibGVzeW5jLmMgaXMgcXVpdGUgZXhw ZW5zaXZlLiBJdA0KPiA+ID4gc2VlbXMgdG8gYmUgdXNpbmcgZm91ciByb3VuZC10cmlwcyB0byBn ZXQgdGhlIGNvbXBsZXRlIGluZm8gd2hlcmVhcw0KPiA+ID4gZm9yIHJvdy1maWx0ZXIgd2UgdXNl IGp1c3Qgb25lIHJvdW5kIHRyaXAuIEkgdGhpbmsgd2Ugc2hvdWxkIHRyeSB0bw0KPiA+ID4gZ2V0 IGJvdGggcm93IGZpbHRlciBhbmQgY29sdW1uIGZpbHRlciBpbmZvIGluIGp1c3Qgb25lIHJvdW5k IHRyaXAuDQo+ID4gPg0KPiA+DQo+ID4gTWF5YmUsIGJ1dCBJIHJlYWxseSBkb24ndCB0aGluayB0 aGlzIGlzIGFuIGlzc3VlLg0KPiA+DQo+IA0KPiBJIGFtIG5vdCBzdXJlIGJ1dCBpdCBtaWdodCBt YXR0ZXIgZm9yIHNtYWxsIHRhYmxlcy4gTGVhdmluZyBhc2lkZSB0aGUNCj4gcGVyZm9ybWFuY2Ug aXNzdWUsIEkgdGhpbmsgdGhlIGN1cnJlbnQgd2F5IHdpbGwgZ2V0IHRoZSB3cm9uZyBjb2x1bW4g bGlzdCBpbg0KPiBtYW55IGNhc2VzOiAoYSkgVGhlIEFMTCBUQUJMRVMgSU4gU0NIRU1BIGNhc2Ug aGFuZGxpbmcgd29uJ3Qgd29yayBmb3INCj4gcGFydGl0aW9uZWQgdGFibGVzIHdoZW4gdGhlIHBh cnRpdGlvbmVkIHRhYmxlIGlzIHBhcnQgb2Ygb25lIHNjaGVtYSBhbmQNCj4gcGFydGl0aW9uIHRh YmxlIGlzIHBhcnQgb2YgYW5vdGhlciBzY2hlbWEuIChiKSBUaGUgaGFuZGxpbmcgb2YgcGFydGl0 aW9uIHRhYmxlcyBpbg0KPiBvdGhlciBjYXNlcyB3aWxsIGZldGNoIGluY29ycmVjdCBsaXN0cyBh cyBpdCB0cmllcyB0byBmZXRjaCB0aGUgY29sdW1uIGxpc3Qgb2YgYWxsIHRoZQ0KPiBwYXJ0aXRp b25zIGluIHRoZSBoaWVyYXJjaHkuDQo+IA0KPiBPbmUgb2YgbXkgY29sbGVhZ3VlcyBoYXMgZXZl biB0ZXN0ZWQgdGhlc2UgY2FzZXMgYm90aCBmb3IgY29sdW1uIGZpbHRlcnMgYW5kDQo+IHJvdyBm aWx0ZXJzIGFuZCB3ZSBmaW5kIHRoZSBiZWhhdmlvciBvZiByb3cgZmlsdGVyIGlzIG9rYXkgd2hl cmVhcyBmb3IgY29sdW1uDQo+IGZpbHRlciBpdCB1c2VzIHRoZSB3cm9uZyBjb2x1bW4gbGlzdC4g V2Ugd2lsbCBzaGFyZSB0aGUgdGVzdHMgYW5kIHJlc3VsdHMgd2l0aCB5b3UNCj4gaW4gYSBsYXRl ciBlbWFpbC4gV2UgYXJlIHRyeWluZyB0byB1bmlmeSB0aGUgY29sdW1uIGZpbHRlciBxdWVyaWVz IHdpdGggcm93IGZpbHRlciB0bw0KPiBtYWtlIHRoZWlyIGJlaGF2aW9yIHRoZSBzYW1lIGFuZCB3 aWxsIHNoYXJlIHRoZSBmaW5kaW5ncyBvbmNlIGl0IGlzIGRvbmUuIEkgaG9wZQ0KPiBpZiB3ZSBh cmUgYWJsZSB0byBhY2hpZXZlIHRoaXMgdGhhdCB3ZSB3aWxsIHJlZHVjZSB0aGUgY2hhbmNlcyBv ZiBidWdzIGluIHRoaXMgYXJlYS4NCj4gDQo+IE5vdGU6IEkgdGhpbmsgdGhlIGZpcnN0IHR3byBw YXRjaGVzIGZvciB0ZXN0cyBhcmUgbm90IHJlcXVpcmVkIGFmdGVyIGNvbW1pdA0KPiBjZWI1N2Fm ZDNjLg0KDQpIaSwNCg0KSGVyZSBhcmUgc29tZSB0ZXN0cyBhbmQgcmVzdWx0cyBhYm91dCB0aGUg dGFibGUgc3luYyBxdWVyeSBvZg0KY29sdW1uIGZpbHRlciBwYXRjaCBhbmQgcm93IGZpbHRlci4N Cg0KMSkgbXVsdGlwbGUgcHVibGljYXRpb25zIHdoaWNoIHB1Ymxpc2ggc2NoZW1hIG9mIHBhcmVu dCB0YWJsZSBhbmQgcGFydGl0aW9uLg0KLS0tLXB1Yg0KY3JlYXRlIHNjaGVtYSBzMTsNCmNyZWF0 ZSB0YWJsZSBzMS50IChhIGludCwgYiBpbnQsIGMgaW50KSBwYXJ0aXRpb24gYnkgcmFuZ2UgKGEp Ow0KY3JlYXRlIHRhYmxlIHRfMSBwYXJ0aXRpb24gb2YgczEudCBmb3IgdmFsdWVzIGZyb20gKDEp IHRvICgxMCk7DQpjcmVhdGUgcHVibGljYXRpb24gcHViMSBmb3IgYWxsIHRhYmxlcyBpbiBzY2hl bWEgczE7DQpjcmVhdGUgcHVibGljYXRpb24gcHViMiBmb3IgdGFibGUgdF8xKGIpOw0KDQotLS0t c3ViDQotIHByZXBhcmUgdGFibGVzDQpDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YiBDT05ORUNUSU9O ICdwb3J0PTEwMDAwIGRibmFtZT1wb3N0Z3JlcycgUFVCTElDQVRJT04gcHViMSwgcHViMjsNCg0K V2hlbiBkb2luZyB0YWJsZSBzeW5jIGZvciAndF8xJywgdGhlIGNvbHVtbiBsaXN0IHdpbGwgYmUg KGIpLiBJIHRoaW5rIGl0IHNob3VsZA0KYmUgbm8gZmlsdGVyIGJlY2F1c2UgdGFibGUgdF8xIGlz IGFsc28gcHVibGlzaGVkIHZpYSBBTEwgVEFCTEVTIElOIFNDSE1FQQ0KcHVibGljYXRpb24uDQoN CkZvciBSb3cgRmlsdGVyLCBpdCB3aWxsIHVzZSBubyBmaWx0ZXIgZm9yIHRoaXMgY2FzZS4NCg0K DQoyKSBvbmUgcHVibGljYXRpb24gcHVibGlzaGVzIGJvdGggcGFyZW50IGFuZCBjaGlsZA0KLS0t LXB1Yg0KY3JlYXRlIHRhYmxlIHQgKGEgaW50LCBiIGludCwgYyBpbnQpIHBhcnRpdGlvbiBieSBy YW5nZSAoYSk7DQpjcmVhdGUgdGFibGUgdF8xIHBhcnRpdGlvbiBvZiB0IGZvciB2YWx1ZXMgZnJv bSAoMSkgdG8gKDEwKQ0KICAgICAgIHBhcnRpdGlvbiBieSByYW5nZSAoYSk7DQpjcmVhdGUgdGFi bGUgdF8yIHBhcnRpdGlvbiBvZiB0XzEgZm9yIHZhbHVlcyBmcm9tICgxKSB0byAoMTApOw0KDQpj cmVhdGUgcHVibGljYXRpb24gcHViMiBmb3IgdGFibGUgdF8xKGEpLCB0XzINCiAgd2l0aCAoUFVC TElTSF9WSUFfUEFSVElUSU9OX1JPT1QpOw0KDQotLS0tc3ViDQotIHByZXBhcmUgdGFibGVzDQpD UkVBVEUgU1VCU0NSSVBUSU9OIHN1YiBDT05ORUNUSU9OICdwb3J0PTEwMDAwIGRibmFtZT1wb3N0 Z3JlcycgUFVCTElDQVRJT04gcHViMjsNCg0KV2hlbiBkb2luZyB0YWJsZSBzeW5jIGZvciB0YWJs ZSAndF8xJywgaXQgaGFzIG5vIGNvbHVtbiBsaXN0LiBJIHRoaW5rIHRoZQ0KZXhwZWN0ZWQgY29s dW1uIGxpc3QgaXMgKGEpLg0KDQpGb3IgUm93IEZpbHRlciwgaXQgd2lsbCB1c2UgdGhlIHJvdyBm aWx0ZXIgb2YgdGhlIHRvcCBtb3N0IHBhcmVudCB0YWJsZSh0XzEpIGluDQp0aGlzIGNhc2UuDQoN Cg0KMykgb25lIHB1YmxpY2F0aW9uIHB1Ymxpc2hlcyBib3RoIHBhcmVudCBhbmQgY2hpbGQNCi0t LS1wdWINCmNyZWF0ZSB0YWJsZSB0IChhIGludCwgYiBpbnQsIGMgaW50KSBwYXJ0aXRpb24gYnkg cmFuZ2UgKGEpOw0KY3JlYXRlIHRhYmxlIHRfMSBwYXJ0aXRpb24gb2YgdCBmb3IgdmFsdWVzIGZy b20gKDEpIHRvICgxMCkNCiAgICAgICBwYXJ0aXRpb24gYnkgcmFuZ2UgKGEpOw0KY3JlYXRlIHRh YmxlIHRfMiBwYXJ0aXRpb24gb2YgdF8xIGZvciB2YWx1ZXMgZnJvbSAoMSkgdG8gKDEwKTsNCg0K Y3JlYXRlIHB1YmxpY2F0aW9uIHB1YjIgZm9yIHRhYmxlIHRfMShhKSwgdF8yKGIpDQogIHdpdGgg KFBVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UKTsNCg0KLS0tLXN1Yg0KLSBwcmVwYXJlIHRhYmxl cw0KQ1JFQVRFIFNVQlNDUklQVElPTiBzdWIgQ09OTkVDVElPTiAncG9ydD0xMDAwMCBkYm5hbWU9 cG9zdGdyZXMnIFBVQkxJQ0FUSU9OIHB1YjI7DQoNCldoZW4gZG9pbmcgdGFibGUgc3luYyBmb3Ig dGFibGUgJ3RfMScsIHRoZSBjb2x1bW4gbGlzdCB3b3VsZCBiZSAoYSwgYikuIEkgdGhpbmsNCnRo ZSBleHBlY3RlZCBjb2x1bW4gbGlzdCBpcyAoYSkuDQoNCkZvciBSb3cgRmlsdGVyLCBpdCB3aWxs IHVzZSB0aGUgcm93IGZpbHRlciBvZiB0aGUgdG9wIG1vc3QgcGFyZW50IHRhYmxlKHRfMSkgaW4N CnRoaXMgY2FzZS4NCg0KQmVzdCByZWdhcmRzLA0KSG91IHpqDQo=