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 1oaU7w-0007yz-L6 for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Sep 2022 03:40:52 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oaU7v-0005WW-GX for pgsql-hackers@arkaria.postgresql.org; Tue, 20 Sep 2022 03:40:51 +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 1oaU7v-0005WN-4M for pgsql-hackers@lists.postgresql.org; Tue, 20 Sep 2022 03:40:51 +0000 Received: from esa7.fujitsucc.c3s2.iphmx.com ([68.232.159.87]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oaU7s-0004S7-MM for pgsql-hackers@lists.postgresql.org; Tue, 20 Sep 2022 03:40:50 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1663645249; x=1695181249; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=Wp5qtqLOO4R7BR1W6shFvW4snIwSVCWRhb3gGohHloE=; b=IzVVXwmBF1rbI1lB5d7cfXY9gpp02VkDDHepJlv0CXasPOlcFME5bQ0z YxY2nRPFzouUHFFcHiLS2pYM0GRFm5S7E54QT9z5zS5Bm4qiyv85I/EpA k59Uwr9pofie9foBGLfCjHC2m67nj9TT/FDLDuffDhK3FhDoRpvoJ3nvU PvA2NZi3Qd3OKxxmHZi21o2akyyTASh52g9Uzra0Vr7mP7AZ0TPEeIz2z O2H11O+o4g0oXy7AFFe/OXOKEHalIMFCC0fCE5KefVa5Bpa66eBBVgs0d 7KmY5MFKClC+lzZJ4f509tCedpJRcMtje1gKryI56h6PeOCwGWO7h8W+H A==; X-IronPort-AV: E=McAfee;i="6500,9779,10475"; a="65625540" X-IronPort-AV: E=Sophos;i="5.93,329,1654527600"; d="scan'208";a="65625540" 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; 20 Sep 2022 12:40:47 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JYkBDyVSdZPf4TPgbxA0lDPIv70tUJ4uqXmhUr8jY/mpz+kPJtXJuNGiDl5WnZXpL7aFuwOiPshH7z+SWWC4O6ESNFa7prixuzZzvPx3ENwyz9LPPMY+tiDA4v7xWcmFe7SMAwq/KBAPOZivItU1g3/X5O9HwC0oVKT5wfmgfCualwWOOVzpED3p/9iAO24OmoLHKz7BZAYjP7N1f+4zIsiHWzcYU+8x20icSl5an8anYwYhJK48I91fHYDIwJrwNqXDMSYFTGh0Ljn5eAH42sW2pG+xHkefQtSjEFU1xbJVZqyEDafkrcC+CX8tPO5QwZ6PaL4ibxFXGl+Nna0+yQ== 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=Wp5qtqLOO4R7BR1W6shFvW4snIwSVCWRhb3gGohHloE=; b=fwPHTZ0SqKmvQrcNd2VkvLXC6dzwRKeSIs1d91+6Q3rxAmGEnnWlyPJvFNGwdDsCLMHMqkmKfWbJegqtCXgscHpvblqi9ut+Zx7VrF7x63VK0wEcBS/eeQCTpoKFDvDGW6w+rnudG9REu4w1DQT5SX94bvOgbBJQeyh9yADrk14WBBaz4wwU6s2ozm+0YAANZoCERCAo0b8eJ1EhQ+ldM5mitNteXpoEQoQFMYo3SZF6T9gJgxXqstg2TU1hbFNXbtHxAnO/aMTArOxm+/NzFVAIK7JjMbNsnr+CoN6jiLlPgfESqCiaBJASCZIBBF+JJQ4LKgfesa4haBP45LfJFQ== 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 TYCPR01MB9354.jpnprd01.prod.outlook.com (2603:1096:400:196::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5632.21; Tue, 20 Sep 2022 03:40:43 +0000 Received: from OSZPR01MB6310.jpnprd01.prod.outlook.com ([fe80::9528:c39b:5845:923c]) by OSZPR01MB6310.jpnprd01.prod.outlook.com ([fe80::9528:c39b:5845:923c%6]) with mapi id 15.20.5632.021; Tue, 20 Sep 2022 03:40:43 +0000 From: "shiy.fnst@fujitsu.com" To: "wangw.fnst@fujitsu.com" , Amit Kapila CC: "houzj.fnst@fujitsu.com" , Peter Smith , Dilip Kumar , Masahiko Sawada , PostgreSQL Hackers Subject: RE: Perform streaming logical transactions by background workers and parallel apply Thread-Topic: Perform streaming logical transactions by background workers and parallel apply Thread-Index: AQHYSXX4LU7m/LcP/EyprXCDmGKXrazlvxQAgAkRYICACBI2gIABs50AgAA5UwCAApvIgIAFAGuAgAXc1wCAADTY0IALPdmAgAsABSCAB76ZAIAS+CyAgAAufICAAWQLgIABHxKAgAA3o4CAAeE3gIAJPr0AgAkxzACAAiJoAIAC0hUAgARvDICABQA2gIAAFvcAgAeBmICABO9ggIAJO+YAgABu1YCACQzpAIAJSy6AgAS+zICABq7mgIABSJUAgAAOtoCAACmRgIAB78qAgAqL+oCADJWRgIAGVm0AgAGAQICAAerMgIABYRWAgAgvEYCAAWyzgIAGSRYAgAFBqICAAFYagIABchmAgAGqzwCAATq/gIAFJCcAgAAGs4CABE7agIAK5WIAgABrY4CABb89gIABblFg Date: Tue, 20 Sep 2022 03:40:43 +0000 Message-ID: References: In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: =?utf-8?B?TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2Uw?= =?utf-8?B?NTBfQWN0aW9uSWQ9ODNlZmM1MjgtOGQ3OC00ZDEyLTk4ZTQtOWVjMzFmNmVl?= =?utf-8?B?YjZlO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX0NvbnRlbnRCaXRzPTA7TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5?= =?utf-8?B?LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfRW5hYmxlZD10cnVlO01TSVBfTGFi?= =?utf-8?B?ZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRmZWNlMDUwX01ldGhv?= =?utf-8?B?ZD1TdGFuZGFyZDtNU0lQX0xhYmVsX2E3Mjk1Y2MxLWQyNzktNDJhYy1hYjRk?= =?utf-8?B?LTNiMGY0ZmVjZTA1MF9OYW1lPUZVSklUU1UtUkVTVFJJQ1RFRO+/ou++gA==?= =?utf-8?B?776LO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?utf-8?B?ZWNlMDUwX1NldERhdGU9MjAyMi0wOS0xOVQwMzoyNDoxOVo7TVNJUF9MYWJl?= =?utf-8?B?bF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2UwNTBfU2l0ZUlk?= =?utf-8?Q?=3Da19f121d-81e1-4858-a9d8-736e267fd4c7;?= 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_|TYCPR01MB9354:EE_ x-ms-office365-filtering-correlation-id: af292ff6-206b-4869-8b64-08da9ab9e55a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mClJDzxpI9a9euELWobZFJFB3aylURwqb2I9einfWlzYej986b/1bFj7yHwyq3DFkH7WAGVS785zYCcitHbOjPcy9fLHJrEGW8CIxWntg/bCISyJi38k45wynV6ETH29rkeWnGVlcHB10ZbdytTO6MR8gylBHtrVrRHWTewlv1nMKExIIU2e72Q9jFlZq7/KEyxS9Qa5yPJWdzr7V3gNU8BW/VNAdiwGle7x7MLjJGnjeuT/nutRmMhPdds33iBHmaELu+aKWp50Qix/JLHQIwsvq0Uj2lN4HypdNpXJUnYaZ5TxzI7UuhY8P68LL/pG0CIXcqQ43XqSI5Wb3k+uObfgwbItg/cOWZ/PuejH99inrY0XPuca7GT178Xv4bVIGoxM+WQZvcfgfrlss2XuNz1rXJMqqOIcOxGa3eYoZjxe8Y9U1ZKH3U8ltmTQu6Z3sGcqNkiAcC+LtHyV17OonoID7RAeQfEj02KP9V+MpGk8HGBXngz0zcAwQDVI/zRhhkAt4jISsFPAF7HzzwnwzisP3zhQFQyGxIXy9wAxmtAqvDCJRpzRHE7lmHTggrp7hnpgXEx4DTxQqDTOnlOaviePSCw57BqenH4iGnFIhTCzK2NPF8mYoh5zDeCrQ2+jsMIZ6MXWpPj8HX0/elZK2bD+GSHg9YuWyonyj+XvkasFu5FKitkhCC+y+D9Mnc6g35DIUE/HmLVbY6Wfy7EAfw8ziRUhKjBdkTgRYgdBFNmuYHhHPPbqeH9TvOM1K8DwWc8d9JejkEE5ILPo8ObhnpOCRqUrBLCYsb5CyHP9ATo= 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)(39860400002)(136003)(346002)(366004)(376002)(396003)(1590799012)(451199015)(1580799009)(2906002)(85182001)(5660300002)(52536014)(8936002)(33656002)(86362001)(66946007)(76116006)(122000001)(55016003)(66476007)(4326008)(8676002)(64756008)(66556008)(66446008)(110136005)(54906003)(316002)(71200400001)(478600001)(82960400001)(38100700002)(41300700001)(6506007)(7696005)(26005)(9686003)(83380400001)(38070700005)(186003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cEVMVnBuQVR0eTV3RHpWckhKMUk5QTZqc25PUmxWREdyd0dQZzFKTDhHQkhO?= =?utf-8?B?RUlYYTh3NXNrR0xaMi9GekhNaHErbWdEU2xTSlZqV1ZnRER5UnUwamNweTBw?= =?utf-8?B?RTBXZ0F6bUJPeFFJRm1CblI4U1FpaFJCUTZOalErTVdBcTZhenFNdEhSQXgx?= =?utf-8?B?TDBmRHpIM3JyRVRCTHJzWWlYd2VGTHRaaGVELy93RTVHUEZHbnY4MEEzUXM0?= =?utf-8?B?OGZtcDRhNWo1L1RJRWJtYkVuTlkxMUJ0K29Qc0pSZHFNdU9YN1p1TWtpT0VM?= =?utf-8?B?cTU0bGE4SFNqSHVIVWJFaWg4UkwxTjV3a2NhQU5EcDRRM05VYm4zOTZURlZz?= =?utf-8?B?MWdBdXB2NEFQckRsVHc4eVM0RFk5aHk1cUt0LzFqbHVZNEkwSjZ3YitDRGsw?= =?utf-8?B?ek45OVJFQ1Jmd3IwY0gvNFNZalZFS04yOGdqR2locW5IUkcrbUxhd1ZXOWEx?= =?utf-8?B?YkU4WXVETHJhZG5zZjUvUVN0Qml6WjVmbnkvQlZCekowRHREQVpZOGJLb2Vs?= =?utf-8?B?YmZPR1Q5Nmh0cTBIMzY3SklXUGpHejczYkJGcjExR0tvQVhhVjJiaE9kMktC?= =?utf-8?B?cmYwakJoTU9xNWl2QnVwRy9UcVVNM1p2MFhIMWgxQW1VVnAxL01DdG1DQU41?= =?utf-8?B?UG1ieHhVU0pPLzAvRXZsVFh3TThiVUFlbXpqekRGd092WEVNWnR3R0hmWXdu?= =?utf-8?B?R1pHVXJ6cHpodFE5WjZtRG9TcW1WNlhpQ3I1ZGtXK2FQTEorZU5xQmtUcEJB?= =?utf-8?B?QUIvV3VDL0VnRVdwQ0syYTlxb1hySkJOUkVJWWJsb3JBVFNYUFlGSnZRaVRT?= =?utf-8?B?VUNhQlFxU3VLQXhKUHNiUFF2K0Mvb3JiZzVvZ0xhVGNtS2hjRGgxYXNvdVd4?= =?utf-8?B?R2xwL2o5enlkTnJnMEZYUnBtdzBCUklXNGlGSmZRSlBVaVJzWXAzSlZQekR3?= =?utf-8?B?c1grU1hCUVUzUzk4Mk5UTTBHQ2laL0pMUW96QnFzVmtZT3J2R0dORzhQQTk5?= =?utf-8?B?L1BvVGZyMzVlL0Z4VE5KRlg0V1dZSXRlTEdGYllRcmRHUW8vYzdFZjBEQmtn?= =?utf-8?B?dzlPcm9HQ2V5YVJiOGFPZkhVOFJUTmlOY2FhQk9nYnFtcmJYSG9wYjdqQ1R3?= =?utf-8?B?dHRkR0tCUHhMOE91Q04xWnpKY1MyeFlrLzVLeDdQZWlvUmpWd2VvMkJHd1hN?= =?utf-8?B?TUpPVnNWMGhneGFFdEFONVVIamxtNjNTek55eU5IRGJWYlAwWGxZQlNuYThD?= =?utf-8?B?dmx2ejVZWStvTWx5MitKeDBnWkdqeDI1YjQ2bEY1WDI4aFFObDFEVGNLMUZj?= =?utf-8?B?Y2hTM2IrUjBiRUlkN0JUMWdyTndGSmsrUjYxYzJPTForeW5sdmlrUVRZamZE?= =?utf-8?B?a3hiaHhteUNZMVdHQ25CbUYwdVEwQm5FRVZnT1NwdEdhRWpRVnJ3NTNUN3JG?= =?utf-8?B?SmtiajlJZ0VjVlFzZzVSc3ZlT0t3MDc4VEFwSEdkZWZkc2U4U1lwT0FWM2tv?= =?utf-8?B?VTlZVHgxTGRpOCtOdVFVT2lDaFEvL0xSK0JPZXN3RmVPalpFUDZaVjVEaVd5?= =?utf-8?B?NkxhNFlQWHAyRlA0OE5IbEhxMXlXRXdZS2lMdWM1dGt0SjRTQ25laEVMQUJy?= =?utf-8?B?Vy94RVZOdVIxVDQ0SFZsMnJDU2ZQS1Z2YTZzV2lOcWttTG03Q1BHRDROUHhH?= =?utf-8?B?bHNoSDl6bDJHT1JqaC9mZWVxVnh5YitkQldONDQ2NlUzVHZJazdLMnNQQ1Zz?= =?utf-8?B?REtUeng3bVJDSTVFTnRSbGUvMWtuaXI5ejYwb3dEai92MzFyemgrR1o5Mnpu?= =?utf-8?B?bWdHZy9JeHNTd2xKZ0JoL0Q5Z3pCNFVlVzZEejk0K29td1pXNC9MVFJUZEow?= =?utf-8?B?dHpWS1B5dEQ5UjdWQnFFcmFoakczenFOS1lhWTQyWERiaHZWbHhXNE9hR0NC?= =?utf-8?B?TGVsVW9rdVRyVXI4STFLSVMrb0JPNDJqamxJd3l2RjFlV2pTL29RbjlNci9z?= =?utf-8?B?QmNzNTB3aUQwVS9uS01KdzhHVzlEN2MyWGFPby9YTTZJT1dxZXlrS0lSZ2Qr?= =?utf-8?B?c25OeGtyTWhOejVTQlFzU21kc0ZsQ25RUWtLUlBnTTQ3UnRZcTlRc3ZyNjhy?= =?utf-8?Q?FlKFM6SNdMO3rp3DoYHhpqG9H?= 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: OSZPR01MB6310.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: af292ff6-206b-4869-8b64-08da9ab9e55a X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Sep 2022 03:40:43.3421 (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: qSDakh2dVHSmSkOCC1b6a50Sm2JJTDnyL4WRxMR6GouxsOKQ46mRilbZqBXcOBGq9xk0mKpKCPn0GP72vV9bYg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB9354 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk T24gTW9uLCBTZXB0IDE5LCAyMDIyIDExOjI2IEFNIFdhbmcsIFdlaS/njosg5aiBIDx3YW5ndy5m bnN0QGZ1aml0c3UuY29tPiB3cm90ZToNCj4gDQo+IA0KPiBJbXByb3ZlZCBhcyBzdWdnZXN0ZWQu DQo+IA0KDQpUaGFua3MgZm9yIHVwZGF0aW5nIHRoZSBwYXRjaC4gSGVyZSBhcmUgc29tZSBjb21t ZW50cyBvbiAwMDAxIHBhdGNoLg0KDQoxLg0KKwkJY2FzZSBUUkFOU19MRUFERVJfU0VSSUFMSVpF Og0KIA0KLQkJb2xkY3R4ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKEFwcGx5Q29udGV4dCk7DQor CQkJLyoNCisJCQkgKiBOb3RpZnkgaGFuZGxlIG1ldGhvZHMgd2UncmUgcHJvY2Vzc2luZyBhIHJl bW90ZSBpbi1wcm9ncmVzcw0KKwkJCSAqIHRyYW5zYWN0aW9uLg0KKwkJCSAqLw0KKwkJCWluX3N0 cmVhbWVkX3RyYW5zYWN0aW9uID0gdHJ1ZTsNCiANCi0JCU15TG9naWNhbFJlcFdvcmtlci0+c3Ry ZWFtX2ZpbGVzZXQgPSBwYWxsb2Moc2l6ZW9mKEZpbGVTZXQpKTsNCi0JCUZpbGVTZXRJbml0KE15 TG9naWNhbFJlcFdvcmtlci0+c3RyZWFtX2ZpbGVzZXQpOw0KKwkJCS8qDQorCQkJICogU2luY2Ug bm8gcGFyYWxsZWwgYXBwbHkgd29ya2VyIGlzIHVzZWQgZm9yIHRoZSBmaXJzdCBzdHJlYW0NCisJ CQkgKiBzdGFydCwgc2VyaWFsaXplIGFsbCB0aGUgY2hhbmdlcyBvZiB0aGUgdHJhbnNhY3Rpb24u DQorCQkJICoNCisJCQkgKiBTdGFydCBhIHRyYW5zYWN0aW9uIG9uIHN0cmVhbSBzdGFydCwgdGhp cyB0cmFuc2FjdGlvbiB3aWxsIGJlDQoNCg0KSXQgc2VlbXMgdGhhdCB0aGUgZm9sbG93aW5nIGNv bW1lbnQgY2FuIGJlIHJlbW92ZWQgYWZ0ZXIgdXNpbmcgc3dpdGNoIGNhc2UuDQorCQkJICogU2lu Y2Ugbm8gcGFyYWxsZWwgYXBwbHkgd29ya2VyIGlzIHVzZWQgZm9yIHRoZSBmaXJzdCBzdHJlYW0N CisJCQkgKiBzdGFydCwgc2VyaWFsaXplIGFsbCB0aGUgY2hhbmdlcyBvZiB0aGUgdHJhbnNhY3Rp b24uDQoNCjIuDQorCXN3aXRjaCAoYXBwbHlfYWN0aW9uKQ0KKwl7DQorCQljYXNlIFRSQU5TX0xF QURFUl9TRVJJQUxJWkU6DQorCQkJaWYgKCFpbl9zdHJlYW1lZF90cmFuc2FjdGlvbikNCisJCQkJ ZXJlcG9ydChFUlJPUiwNCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1BST1RPQ09MX1ZJT0xBVElP TiksDQorCQkJCQkJIGVycm1zZ19pbnRlcm5hbCgiU1RSRUFNIFNUT1AgbWVzc2FnZSB3aXRob3V0 IFNUUkVBTSBTVEFSVCIpKSk7DQoNCkluIGFwcGx5X2hhbmRsZV9zdHJlYW1fc3RvcCgpLCBJIHRo aW5rIHdlIGNhbiBtb3ZlIHRoaXMgY2hlY2sgdG8gdGhlIGJlZ2lubmluZyBvZg0KdGhpcyBmdW5j dGlvbiwgdG8gYmUgY29uc2lzdGVudCB0byBvdGhlciBmdW5jdGlvbnMuDQoNCjMuIEkgdGhpbmsg dGhlIHNvbWUgb2YgdGhlIGNoYW5nZXMgaW4gMDAwNSBwYXRjaCBjYW4gYmUgbWVyZ2VkIHRvIDAw MDEgcGF0Y2gsDQowMDA1IHBhdGNoIGNhbiBvbmx5IGNvbnRhaW4gdGhlIGNoYW5nZXMgYWJvdXQg bmV3IGNvbHVtbiAnYXBwbHlfbGVhZGVyX3BpZCcuDQoNCjQuDQorICogUGFyYWxsZWxBcHBseVdv cmtlcnNMaXN0LiBBZnRlciBzdWNjZXNzZnVsbHksIGxhdW5jaGluZyBhIG5ldyB3b3JrZXIgaXQn cw0KKyAqIGluZm9ybWF0aW9uIGlzIGFkZGVkIHRvIHRoZSBQYXJhbGxlbEFwcGx5V29ya2Vyc0xp c3QuIE9uY2UgdGhlIHdvcmtlcg0KDQpTaG91bGQgYGl0J3NgIGJlIGBpdHNgID8NCg0KUmVnYXJk cw0KU2hpIHl1DQo=