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 1olS0f-00014s-05 for pgsql-hackers@arkaria.postgresql.org; Thu, 20 Oct 2022 09:38:41 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1olS0d-00017n-Fl for pgsql-hackers@arkaria.postgresql.org; Thu, 20 Oct 2022 09:38:39 +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 1olS0c-00010A-Sj for pgsql-hackers@lists.postgresql.org; Thu, 20 Oct 2022 09:38:39 +0000 Received: from esa6.fujitsucc.c3s2.iphmx.com ([68.232.159.83]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1olS0U-0007s1-OH for pgsql-hackers@lists.postgresql.org; Thu, 20 Oct 2022 09:38:37 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1666258710; x=1697794710; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=+QEX+IkN17XRGeoS1jbDNgu2Sx3hxU18lWGVVobC5Fk=; b=NDI38lZI0rDRqyt94ZclIGZfRPuEt6fdg4+7uxwHvPBYdI71Pn8cWeyv Ahexsr2UUP7SgONYCyYjUnXye2xk1MicbaEokOQIj9DZzQKyP5/+Rpe3U CDRMCqeWfP5omqQVuv2AoouJ39lyjvvM1zC4WOczIOcz4TARCiJ/uB/eZ 6PIumc3cApSKJkuhPrAD59FTROqyL0TylRwnL5dcU6i6mqgxWzu41rO/T VQ3xOaaryQZ6DZQqmJVZoDVj26gVsQhCOr/sRKlGJEeSPga0hz1pKefYH KMun3dt2GTGwMqg8fGsqJXeV77OFoMLIW/RDgYJjl0/Ob8c14jxpGdbf9 w==; X-IronPort-AV: E=McAfee;i="6500,9779,10505"; a="68039974" X-IronPort-AV: E=Sophos;i="5.95,198,1661785200"; d="scan'208";a="68039974" Received: from mail-tycjpn01lp2169.outbound.protection.outlook.com (HELO JPN01-TYC-obe.outbound.protection.outlook.com) ([104.47.23.169]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Oct 2022 18:38:26 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L2BzAp/Mpk4KuW4gDOFBcC0J50sVvxB37AfXsXnvyquy0dmvmI31QGI27F48djKvxmAVEE9G+Njl8lc6M9xybIJBI28u8XSh4BcEoudhq/YNMDAKhL03BkWDiRjPPxP2sRoBS7ku16KPpnNHgEno4TLE4irHO7Eq5MMwqon1VANfUl8TokFYbdHT3VsU7szl/Y595IU+TWgwiZdI0zSRM7GuciapEsQiI/MQ6iDX4ytYmbZMZxegzDsLXRZxVBpcBct1pbx+XwitYZnajo9r3oRXIqrnEp4R2HXpgeGTdAdkcF1KonWsotopvCsbBtzIOF5Z17HukBGPrvKvDGAaSA== 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=+QEX+IkN17XRGeoS1jbDNgu2Sx3hxU18lWGVVobC5Fk=; b=BVgGbo3EAggkWhWq0Sj89AevtxLv+uYC175j5jgG91STD4ZcIKmGVJFbNS1Ro86uUOj9BZe8rjKtnPMM/XsGL4dPHHJRZseSjoeOtFb9J7SwjILKKNYo9+lfelb+oyt1dQ6qgR1x2mVeMYE2oCFBGPbRebxoBEiGTm/EzXjpviG8wi5+n50REzHKvMtxsICkArDkO0qDqO/cbiNqq7jwdMnxAcCMf05BtIniBQ+1SAswhS05Cmg4IfMmMrxf7kPV7x37gptT0mxNDnuoJYe7XLUm3EtCuazSBZXNoq/649wSxQjspGd9ADF47cdPaimUBewN8SUj9ys2vjxwhS7e+A== 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 OS0PR01MB5716.jpnprd01.prod.outlook.com (2603:1096:604:bb::12) by TYCPR01MB9718.jpnprd01.prod.outlook.com (2603:1096:400:209::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.35; Thu, 20 Oct 2022 09:38:23 +0000 Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::86d7:4009:43c3:7f83]) by OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::86d7:4009:43c3:7f83%8]) with mapi id 15.20.5723.034; Thu, 20 Oct 2022 09:38:23 +0000 From: "houzj.fnst@fujitsu.com" To: "kuroda.hayato@fujitsu.com" CC: Amit Kapila , "wangw.fnst@fujitsu.com" , Dilip Kumar , Masahiko Sawada , "shiy.fnst@fujitsu.com" , Peter Smith , 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: AQHYSXX5ZKpBKXxeUU2FhEhnmXQum6zlu9SQgAkSooCACBQ0gIABsTcwgAA1vECAAqHFgIAE/jVwgAXct9CAADkRgIALO/aAgAsRZICAB606AIAS+CyAgAAufICAAWQLgIABHxKAgAA3o4CAAeE3gIAJPr0AgAkxzACAAiJoAIAC0hUAgARvDICABQA2gIAAFvcAgAeBmICABO9ggIAJO+YAgABu1YCACQzpAIAJSy6AgAS+zICABq7mgIABSJUAgAAOtoCAACghoIAB8TqAgAqL+oCADJWRgIAGVm0AgAGAQICAAerMgIABYRWAgAgnZ+CAAXRdgIAGBUSQgAGFeoCAAFYagIABb5aggAGsWiCAATu3gIAEyyEAgABeLHCABFBngIAK5WIAgABrY4CABb89gIADiS0AgAEu2oCAAHBpgIADPWcAgAS/1gCABHgYgIAKpESAgAfOw4CAA0tmAIAAMWoQgAX4G4CAAc+XQIAAblAAgAFb+TA= Date: Thu, 20 Oct 2022 09:38:23 +0000 Message-ID: References: In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: =?utf-8?B?TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2Uw?= =?utf-8?B?NTBfQWN0aW9uSWQ9MzBmZDhjM2ItZDk1My00ZDUzLWEyM2ItZDVlM2JkMjk4?= =?utf-8?B?NmMwO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?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?ZWNlMDUwX1NldERhdGU9MjAyMi0xMC0xOVQwNjoxNTowMlo7TVNJUF9MYWJl?= =?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: OS0PR01MB5716:EE_|TYCPR01MB9718:EE_ x-ms-office365-filtering-correlation-id: edd61bb3-2d1f-43d3-5779-08dab27ed531 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rnFgQaA0sQagSF/fSAwaA3MakhQJcsFoDieq0tii+RbJFYjSbbt00VyH9gRG/wIJzNp+B43mCWT0+uIPtQ+TWNzMUaUXnDkQQCu8wI2iqJKBBJ8hH/DhA+XuIlN7JQCzzcet3CSe+lfYJ9+as0CAnGlqhknXEyje9ZLzv2l36M/XTObGRByp8g0tLx9BeEsJZci2jS3PQ9X1vIULz1QkfDH++SK0o+tktuh3q2yxAAQeZppyu6QbAk6kPLrjgM3YPU3BqUK8yFGqIhkO72gCGHi7+fh8FpxNimuMdJWZxD3ocoqrLALF/OTcMNx9saTDlUH6Tms8+sYWSaw6ubjbdvlUWFpKNBMwOp1UNiNFBUIRUxntivLNVB8VnDBtb7pleOhydiLtrqMSY2mOefrfz6GxQhoJOqqc1D7vb+D5+DEc7XNJyxId86gVyb+pSf27iFuMqs5zCXuy5Sp0kX+g7GqrwOvKxavV3NrMBRf7b6oOrZzRblWPLGSBNXZggMQZZyNNsamYvTq9B0UNR6LIsyMVlQULoBUxiUR3wXIwUc8SQO89xHgdKJjw4Nj46dXY/dfpwgUtcx+GtQigI+ezhdrLvJGz5a6wyUNFfrc2GLHawbSlIx9JxUj1YB0fmPeQqX+tackxxGMsTvpFnBVssBf2dvz/pyFvLYElkNn7bs2Z7dOzn5dfeD7Hv+u9okL9IjNpCqSA3OjllZWNY+jjCrSCCmNgivVvWYlGlIKML9T0hYJ8oLavcWRoNFM4goH6rf9ae5V518HFcbS6rXumEgsCIUvBmp12agtl52vsdKs= 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:(13230022)(4636009)(376002)(136003)(39860400002)(366004)(346002)(396003)(451199015)(1590799012)(38070700005)(38100700002)(82960400001)(85182001)(86362001)(33656002)(55016003)(122000001)(2906002)(71200400001)(478600001)(41300700001)(316002)(66946007)(4326008)(8676002)(64756008)(66446008)(66476007)(66556008)(6862004)(8936002)(5660300002)(52536014)(6636002)(54906003)(76116006)(83380400001)(9686003)(26005)(7696005)(6506007)(53546011)(186003)(1580799009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dE1jSGdvQlA2cTdrOFhXNjVtZHRTNkdkWDlMMmtIeGRuNWViQ0tRVkRSZ21t?= =?utf-8?B?b0dhTWlTY1QwUGgwc2k5Yk9HaXJaOUltSTdoNThBV25tblc1YW02WkdIWjNp?= =?utf-8?B?bWpGVzRtZFVZaXZNUTZVVWkwZlNsMUs1SkZSaER3bHlmNkFqMm1tdFJwcTBh?= =?utf-8?B?UUs2bXlUSnAySDludHVYS0wyK25WZG1XcUdUUnErNjJLKzV5SmF6djVucjFD?= =?utf-8?B?aU52T2V0ZXgzQjNRNFJWV2VOUGdVZG5VVjNqOUUzQW85cFZ5R1h5cUZzSmo3?= =?utf-8?B?cit6UzVQZm1WVWw5SHRJcGVPWmk5RUlSdDVDUUZndHJ1RmJxOUk4Z1JVeE9t?= =?utf-8?B?c2RLMndxRllVRlFJemp1SXBiVklhQllxTk9HN3hqbDZnaXlKZTZqeFZmdFJS?= =?utf-8?B?b2RKcWpyVTNGK3Zuc0dCVVlvVXJBY00xalBMOGJZallpN2czM1dVelBtRVZG?= =?utf-8?B?QXNuSkY4THZMdzJ4Z1djZGxBeDhCMHRXRFE2bTVFTVdJbmFZaVRxcGJsYmhT?= =?utf-8?B?UEQyZ25QR1c1K3JBNWpBaWNwQXNFNTlSa1l4a2xrNVdmakl5WVphN2RoUEZ3?= =?utf-8?B?R1ZOaEl6b3lRZWRHNVpxZlBtTjJ4bDRocmRKYVUyZWgreVcyNzN3OGs5UU1m?= =?utf-8?B?K3lSRjdEQzhUZ0FZNGdHZWpadm1GdUhZWCt6a1ZDMUplZmdWOTBxU2tZRXFH?= =?utf-8?B?T2w1WG12WmhnbllnWVoxWEIzc2dTNmw0UTYyc0NORDQzdlZ1WVlKOWJ6d21Y?= =?utf-8?B?T3JJRXFjSkpqdjd1dFhxMkUvTklZM3IxdHdvOUs1bng3RWI3NTd6Uk1yWFZL?= =?utf-8?B?OTMycEZoOFI4WTNTVVh5cmNwQ2t3aXNGbkVNZEZOS2hPWDQ1ZFNtTUJtT3g1?= =?utf-8?B?aTUvaGhTbUdBR1JMeTJRM1pDU0J1UmE3Rk5BblE2cFJNZ0JjZDZwcGZndE5D?= =?utf-8?B?bS8wc3FMRUQyOXFVRXRSa3dIR3FKUjBXY3ZkKzFYazlPS0F1SmVaYjEyYkpR?= =?utf-8?B?cjhyelRMcDBxMjdVMUROTzNKajV2bkkwTzFpNHZNNFZESk1DWXNDdlZLOTBT?= =?utf-8?B?QnFUNVhzcS9iNStaenhwUFJPR2NrSCtCdDUwM1hBSkJmdi9yTnhSdGxJUHk2?= =?utf-8?B?VzUyZnJUQXJzWkJHU05mVFErV1gxWmIrTlNQZ2VUeEF4Z2xhNjNHMnVjQmph?= =?utf-8?B?MWN2ZC83SGc0S0tDbnExWnI3T29pWG0zK1Z4d2cycHFCcjQxNWdTUjFRUjEr?= =?utf-8?B?Zk1lUDRhbXN3d1JxV2xFSFJncmc5UTlKRDk0RXQxcHA2SjI0ZTNBWnRyVzBj?= =?utf-8?B?b2hJanZBU1N0QS9hamNBSHB3UEEwVDRrSDNWaVUrdFlNS1NVRWsreXJOWWkv?= =?utf-8?B?cUZRWGkzOTlaeDlUbHdYQzdxSlYvTlczUzJpaFQrREtPMHJWZ2RYeDErdC9W?= =?utf-8?B?ZU9VZXFudjI2M3FvK0NIUUtBcUo3ZkJZM2ZYSDkvZm5BVmN1UVVPWlEwUnN5?= =?utf-8?B?cnZmNXovZjA5MjF2bG5GM2VnMzJhOGF2bElLVG1JVXJtMkpiMEd1TUdSR3Vw?= =?utf-8?B?dFJld3pYT2Y2N2ZGRXhNcjA2OEM4Z3BudFdSNWZxUzZTWmtqSG02THdXNEhC?= =?utf-8?B?MFgrKy9PZlUxY3lwV2xCZVpJUEZ6TW0rRFNOdUlZcGNQMzBmb0UxN3VKejFW?= =?utf-8?B?SHBLL2Qvc2k3RjRQcC9OVFEwU2ZxcnBydEZxS3o1VU5JMVJEVnZrZGJCZHd0?= =?utf-8?B?dnJvY205UWk1Ykh2bnNpUjI3a08wOTRnc1QvckFkY1A4VFIveVZVVEtzc0Js?= =?utf-8?B?bkV2RHlyK0dOUU96OE41NGUzWWRXNzhyZmkray9WeDlsOHZFWVJmakxMeUpx?= =?utf-8?B?OC8ya1g0N3ZjR2NGZTFiREFHb01KUFdDTklhVFE3NkZqR29LVitQbGs1Wjl5?= =?utf-8?B?R2REN2JiRzBUMDNjSGM5eURLOEFudGxCUTFoS3VYTzBGMml6WlU3bDRwdVJ1?= =?utf-8?B?NnhVZVZGeDl2blF4OVVqakQyNkZZS2VyWmxXMGF2QXNlVDhSZ0djcWF1ck9J?= =?utf-8?B?ZTFSSjlMdXJDaGtLb0pQcjdYcTczNWw2Y1V4bDJUU0hrVVJ1TmlTUXJoaUJY?= =?utf-8?Q?CY1sMI3f2IafZ6gLGY5XXj2m3?= 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: edd61bb3-2d1f-43d3-5779-08dab27ed531 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Oct 2022 09:38:23.8125 (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: HTpkiqMDAQ/DPMF1gP/9BenWed8qTsHU2NTJwbBSgb2sDxzi4MUY2dxXPUmNhk7Z7FQjO6fCw3sxePsxqfjFug== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB9718 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk T24gV2VkbmVzZGF5LCBPY3RvYmVyIDE5LCAyMDIyIDg6NTAgUE0gS3Vyb2RhLCBIYXlhdG8v6buS 55SwIOmavOS6uiA8a3Vyb2RhLmhheWF0b0BmdWppdHN1LmNvbT4gd3JvdGU6DQoNClRoYW5rcyBm b3IgdGhlIGNvbW1lbnRzLg0KDQo+IDAzLiBhcHBseXBhcmFsbGVsd3Bya2VyLmMgLSBMb2dpY2Fs UGFyYWxsZWxBcHBseUxvb3ANCj4gDQo+IGBgYA0KPiAJCQljYXNlIFNITV9NUV9XT1VMRF9CTE9D SzoNCj4gCQkJCXsNCj4gCQkJCQlpbnQJCQlyYzsNCj4gDQo+IAkJCQkJaWYgKCFpbl9zdHJlYW1l ZF90cmFuc2FjdGlvbikNCj4gCQkJCQl7DQo+IAkJCQkJCS8qDQo+IAkJCQkJCSAqIElmIHdlIGRp ZG4ndCBnZXQgYW55IHRyYW5zYWN0aW9ucyBmb3IgYSB3aGlsZSB0aGVyZSBtaWdodCBiZQ0KPiAJ CQkJCQkgKiB1bmNvbnN1bWVkIGludmFsaWRhdGlvbiBtZXNzYWdlcyBpbiB0aGUgcXVldWUsIGNv bnN1bWUgdGhlbQ0KPiAJCQkJCQkgKiBub3cuDQo+IAkJCQkJCSAqLw0KPiAJCQkJCQlBY2NlcHRJ bnZhbGlkYXRpb25NZXNzYWdlcygpOw0KPiAJCQkJCQltYXliZV9yZXJlYWRfc3Vic2NyaXB0aW9u KCk7DQo+IAkJCQkJfQ0KPiANCj4gCQkJCQlNZW1vcnlDb250ZXh0UmVzZXQoQXBwbHlNZXNzYWdl Q29udGV4dCk7DQo+IGBgYA0KPiANCj4gSXMgTWVtb3J5Q29udGV4dFJlc2V0KCkgbmVlZGVkPyBJ SVVDIG5vIG9uZSB1c2VzIEFwcGx5TWVzc2FnZUNvbnRleHQgaWYgd2UgcmVhY2ggaGVyZS4NCg0K SSB3YXMgY29uY2VybmVkIHRoYXQgc29tZSBjb2RlIGluIGRlZXBlciBsZXZlbCBtaWdodCBhbGxv Y2F0ZSBzb21lIG1lbW9yeSBhcw0KdGhlcmUgYXJlIGxvdHMgb2YgY29kZXMgYW5kIGZ1bmN0aW9u cyBjb3VsZCBiZSBpbnZva2VkIGluIHRoZSBsb29wKEZvciBleGFtcGxlLA0KdGhlIGZ1bmN0aW9u cyBpbiBQcm9jZXNzSW50ZXJydXB0cygpKS4gQWx0aG91Z2ggSXQgbWlnaHQgbm90IG1hdHRlciBp bg0KcHJhY3RpY2UsIGJ1dCBJIHRoaW5rIGl0IG1pZ2h0IGJlIGJldHRlciB0byByZXNldCBoZXJl IHRvIG1ha2UgaXQgcm9idXN0LiBCZXNpZGVzLA0KdGhlIGNvZGUgc2VlbXMgY29uc2lzdGVudCB3 aXRoIHRoZSBsb2dpYyBpbiBMb2dpY2FsUmVwQXBwbHlMb29wLg0KDQo+IDA0LiBhcHBseXBhcmFs bGVsd3Bya2VyLmMgLSBIYW5kbGVQYXJhbGxlbEFwcGx5TWVzc2FnZXMNCj4gDQo+IGBgYA0KPiAJ CWVsc2UgaWYgKHJlcyA9PSBTSE1fTVFfU1VDQ0VTUykNCj4gCQl7DQo+IAkJCVN0cmluZ0luZm9E YXRhIG1zZzsNCj4gDQo+IAkJCWluaXRTdHJpbmdJbmZvKCZtc2cpOw0KPiAJCQlhcHBlbmRCaW5h cnlTdHJpbmdJbmZvKCZtc2csIGRhdGEsIG5ieXRlcyk7DQo+IAkJCUhhbmRsZVBhcmFsbGVsQXBw bHlNZXNzYWdlKHdpbmZvLCAmbXNnKTsNCj4gCQkJcGZyZWUobXNnLmRhdGEpOw0KPiAJCX0NCj4g YGBgDQo+IA0KPiBJbiBMb2dpY2FsUGFyYWxsZWxBcHBseUxvb3AoKSwgYXBwZW5kQmluYXJ5U3Ry aW5nSW5mbygpIGlzIG5vdCB1c2VkIGJ1dA0KPiBpbml0aWFsaXplZCBTdHJpbmdJbmZvRGF0YSBk aXJlY3RseSBpbml0aWFsaXplZC4gV2h5IHRoZXJlIGlzIGEgZGlmcmVyZW5jZT8gVGhlDQo+IGZ1 bmN0aW9uIHdpbGwgZG8gcmVwYWxsb2MoKSBhbmQgbWVtY3B5KCksIHNvIGl0IG1heSBiZSBpbmVm ZmljaWVudC4NCg0KSSB0aGluayBib3RoIHN0eWxlcyBhcmUgZmluZSwgdGhlIGNvZGUgaW4gSGFu ZGxlUGFyYWxsZWxBcHBseU1lc3NhZ2VzIGlzIHRvIGtlZXANCmNvbnNpc3RlbnQgd2l0aCB0aGUg c2ltaWxhciBmdW5jdGlvbiBIYW5kbGVQYXJhbGxlbE1lc3NhZ2VzKCkgd2hpY2ggaXMgbm90IGEN CnBlcmZvcm1hbmNlIHNlbnNpdGl2ZSBmdW5jdGlvbi4NCg0KDQo+IDA1LiBhcHBseXBhcmFsbGVs d3Bya2VyLmMgLSBwYXJhbGxlbF9hcHBseV9zZW5kX2RhdGENCj4gDQo+IGBgYA0KPiAJaWYgKHJl c3VsdCAhPSBTSE1fTVFfU1VDQ0VTUykNCj4gCQllcmVwb3J0KEVSUk9SLA0KPiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksDQo+IAkJCQkgZXJy bXNnKCJjb3VsZCBub3Qgc2VuZCBkYXRhIHRvIHNoYXJlZC1tZW1vcnkgcXVldWUiKSkpOw0KPiAN Cj4gYGBgDQo+IA0KPiBJIGNoZWNrZWQgdGhlIGVudW1lcmF0aW9uIG9mIHNobV9tcV9yZXN1bHQs IGFuZCBJIGZlbHQgdGhhdCBzaG1fbXFfc2VuZChub3dhaXQNCj4gPSBmYWxzZSkgZmFpbGVkIG9u bHkgd2hlbiB0aGUgb3Bwb3NpdGUgcHJvY2VzcyBoYXMgYmVlbiBleGl0ZWQuIEhvdyBhYm91dCBh ZGQgYQ0KPiBoaW50IG9yIGRldGFpbGVkIG1lc3NhZ2UgbGlrZSAibG9zdCBjb25uZWN0aW9uIHRv IHBhcmFsbGVsIGFwcGx5IHdvcmtlciI/DQoNClRoYW5rcyBmb3IgYW5hbHl6aW5nLCBidXQgSSBh bSBub3Qgc3VyZSBpZiAibG9zdCBjb25uZWN0aW9uIHRvIHh4IHdvcmtlciIgaXMgYQ0KYXBwcm9w cmlhdGUgZXJyaGludCBvciBkZXRhaWwuIFRoZSBjdXJyZW50IGVycm9yIG1lc3NhZ2UgbG9va3Mg Y2xlYXIgdG8gbWUuDQoNCg0KPiAwNy4gd29ya2VyLmMgLSBhcHBseV9oYW5kbGVfY29tbWl0X2lu dGVybmFsDQo+IA0KPiBJIHRoaW5rIHdlIGNhbiBhZGQgYW4gYXNzZXJ0aW9uIGxpa2UgQXNzZXJ0 KHJlcGxvcmlnaW5fc2Vzc2lvbl9vcmlnaW5fbHNuICE9DQo+IEludmFsaWRYTG9nUmVjUHRyICYm IHJlcGxvcmlnaW5fc2Vzc2lvbl9vcmlnaW4gPSBJbnZhbGlkUmVwT3JpZ2luSWQpLCB0bw0KPiBh dm9pZCBtaXNzaW5nIHJlcGxvcmlnaW5fc2Vzc2lvbl9zZXR1cC4gUHJldmlvdXNseSBpdCB3YXMg c2V0IGF0IHRoZSBlbnRyeQ0KPiBwb2ludCBhdCBuZXZlciByZXNldC4NCg0KSSBmZWVsIGFkZGRp bmcgdGhlIGFzc2VydCBmb3IgcmVwbG9yaWdpbl9zZXNzaW9uX29yaWdpbiBpcyBmaW5lIGhlcmUu IEZvcg0KcmVwbG9yaWdpbl9zZXNzaW9uX29yaWdpbl9sc24sIEkgYW0gbm90IHN1cmUgaWYgbG9v a3MgYmV0dGVyIHRvIGNoZWNrIGhlcmUgYXMNCndlIG5lZWQgdG8gZGlzdGluZ3VzaCB0aGUgY2Fz ZSBmb3Igc3RyZWFtaW5nPW9uIGFuZCBzdHJlYW1pbmc9cGFyYWxsZWwgaWYgd2UNCndhbnQgdG8g Y2hlY2sgdGhhdC4NCg0KDQo+IDEwLiBnZW5lcmFsDQo+IA0KPiBJSVVDIHBhcmFsbGVsIGFwcGx5 IHdvcmtlcnMgY291bGQgbm90IGRldGVjdCB0aGUgZGVhZGxvY2sgYXV0b21hdGljYWxseSwNCj4g cmlnaHQ/IEkgdGhvdWdodCB3ZSBtaWdodCBiZSBhYmxlIHRvIHVzZSB0aGUgaGVhcnRiZWF0IHBy b3RvY29sIGJldHdlZW4gYQ0KPiBsZWFkZXIgd29ya2VyIGFuZCBwYXJhbGxlbCB3b3JrZXJzLg0K PiAgDQo+IFlvdSBoYXZlIGFscmVhZHkgaW1wbGVtZW50ZWQgYSBtZWNoYW5pc20gdG8gc2VuZCBh bmQgcmVjZWl2ZSBtZXNzYWdlcyBiZXR3ZWVuDQo+IHdvcmtlcnMuIE15IGlkZWEgaXMgdGhhdCBl YWNoIHBhcmFsbGVsIGFwcGx5IHdvcmtlciByZWNvcmRzIGEgdGltZXN0YW1wIHRoYXQNCj4gZ2V0 cyBhIG1lc3NhZ2UgZnJvbSB0aGUgbGVhZGVyIGFuZCBpZiBhIGNlcnRhaW4gdGltZSAoMzBzPykg aGFzIHBhc3NlZCBpdA0KPiBzZW5kcyBhIGhlYXJ0YmVhdCBtZXNzYWdlIGxpa2UgJ0gnLiBUaGUg bGVhZGVyIGNvbnN1bWVzICdIJyBhbmQgc2VuZHMgYSByZXBseQ0KPiBsaWtlIExPR0lDQUxfUkVQ X01TR19LRUVQQUxJVkUgaW4gSGFuZGxlUGFyYWxsZWxBcHBseU1lc3NhZ2UoKS4gSWYgdGhlDQo+ IHBhcmFsbGVsIGFwcGx5IHdvcmtlciBkb2VzIG5vdCByZWNlaXZlIGFueSBtZXNzYWdlIGZvciBt b3JlIHRoYW4gb25lIG1pbnV0ZSwNCj4gaXQgcmVnYXJkcyB0aGF0IHRoZSBkZWFkbG9jayBoYXMg b2NjdXJyZWQgYW5kIGNhbiBjaGFuZ2UgdGhlIHJldHJ5IGZsYWcgdG8gb24NCj4gYW5kIGV4aXQu DQo+IA0KPiBUaGUgYWJvdmUgYXNzdW1lcyB0aGF0IHRoZSBsZWFkZXIgY2Fubm90IHJlcGx5IHRv IHRoZSBtZXNzYWdlIHdoaWxlIHdhaXRpbmcNCj4gZm9yIHRoZSBsb2NrLiBNb3Jlb3ZlciwgaXQg bWF5IGhhdmUgbm90YWJsZSBvdmVyaGVhZCBhbmQgd2UgbXVzdCB1c2UgYSBuZXcNCj4gbG9naWNh bCByZXBsaWNhdGlvbiBtZXNzYWdlIHR5cGUuDQo+IA0KPiBIb3cgZG8geW91IHRoaW5rPyBIYXZl IHlvdSBhbHJlYWR5IGNvbnNpZGVyZWQgYWJvdXQgaXQ/DQoNClRoYW5rcyBmb3IgdGhlIHN1Z2dl c3Rpb24uIEJ1dCB3ZSBhcmUgdHJ5aW5nIHRvIGRldGVjdCB0aGlzIGtpbmQgb2YgcHJvYmxlbSBi ZWZvcmUNCnRoaXMgcHJvYmxlbWF0aWMgY2FzZSBoYXBwZW5zIGFuZCBkaXNhbGxvdyBwYXJhbGxl bGlzbSBpbiB0aGVzZSBjYXNlcyBieQ0KY2hlY2tpbmcgdGhlIHVuaXF1ZS9jb25zdHIvcGFydGl0 aW9uZWQuLi4gaW4gMDAwMy8wMDA0IHBhdGNoLg0KDQpBYm91dCB0aGUga2VlcGFsaXZlIGRlc2ln bi4gV2UgY291bGQgZG8gdGhhdCwgYnV0IHRoZSBsZWFkZXIgY291bGQgYWxzbyBiZQ0KYmxvY2tl ZCBieSBzb21lIG90aGVyIHVzZXIgYmFja2VuZCwgc28gdGhpcyBkZXNpZ24gbWlnaHQgY2F1c2Ug dGhlIHdvcmtlciB0bw0KZXJyb3Igb3V0IGluIHNvbWUgdW5leHBlY3RlZCBjYXNlcyB3aGljaCBz ZWVtcyBub3QgZ3JlYXQuDQoNCkJlc3QgcmVnYXJkcywNCkhvdSB6ag0K