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 1oM2vv-0000Xa-D1 for pgsql-hackers@arkaria.postgresql.org; Thu, 11 Aug 2022 07:48:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oM2vu-0002pF-AR for pgsql-hackers@arkaria.postgresql.org; Thu, 11 Aug 2022 07:48:46 +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 1oM2vt-0002p5-OT for pgsql-hackers@lists.postgresql.org; Thu, 11 Aug 2022 07:48:46 +0000 Received: from esa15.fujitsucc.c3s2.iphmx.com ([68.232.156.107]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oM2vr-0001oO-0o for pgsql-hackers@lists.postgresql.org; Thu, 11 Aug 2022 07:48:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1660204123; x=1691740123; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=WH1Mxx5WvC45tlN0zWkHXwWWCam8i5XvF+U8m/NpN+A=; b=Hg4BwUW+vWj6+foiM8o5flSwsI+eJZbK+8RqQ1OL17n8p85Tr2AFZnYw RFoMS3VgLq9cxJdtbOUqEI9x9/WXF3irb7gBuinPsqB6SJmtPvspg5rnq /DqO3M45QNStmYuy2ALtkhuNvzrX/dm9v9gJKH5m2KhUjuhX0FVedTmjV 8in7dwORrntkHpoSSTpLzbX7psZkakdS/pcHpmSjz1xPESiw2lBoAh1MY aj1vjIvueHGzBgAfeoQyz7MGsoH2Joe9ozbONKdGfFIwz9WBM8akfv6Y2 NLo6KceM5ZWKVK3Aa8WH6mNfdpKKfqQmprTvE9LFYmTU+xH5tOy3oTUnc Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10435"; a="62552296" X-IronPort-AV: E=Sophos;i="5.93,228,1654527600"; d="scan'208";a="62552296" Received: from mail-tycjpn01lp2176.outbound.protection.outlook.com (HELO JPN01-TYC-obe.outbound.protection.outlook.com) ([104.47.23.176]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Aug 2022 16:48:39 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jshommq9/BOErTIMLkFAStfuUq9Gu1tyAA5t451fZg0IRBwOE+UnfMXzGhWMsPqjVQFODKs0wDEh/dpiVfveGdtvJ09OyZKZcxFS4pdf+dj1dku8ki9/3Wga2k50AHPTvBxZhShiDNZQlVSkQgSQdOXsJXUASRH8YxFtneSArDswxJ9t/mwS5lJosB+HQ/2kgfmsOtGe9RsbqA0e0oQvsL5wEdkB8GQ+t4E0R1XQcWYTx6X/BNcYhLXFDsP5HfLXoFG36jyshOu1JGL0y1OwhVQGo2hKWdg7LZuBRSxc5TcBjrl/MpC/dTogbGACg5BoWot+DwILJXQ2OeMlIFmujg== 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=WH1Mxx5WvC45tlN0zWkHXwWWCam8i5XvF+U8m/NpN+A=; b=b1MrbDuYS3a8UUSR2ZQdDa+SaMJuxAW5kRYodNaXyhMmdXUS3Yqn/8NTA+eLZA0Sx1wXffr9Pgm2HguqJV9vmaiaGZnD58pPS1823KF4SxBpl3Wsdof7hl5TjY1yPVdwhVVpAlpli97+hbby4HWtxmJYU/+Eml8Zb2GEDL6ELXY4bUovrfXA9IBrj0n+AogE1kpWJJpcYT9FHb0eeLfsdCW/t8jiem0Uetj6E+cKRILXyTvaN4VbSycrDgtIBiUSAoQUAxAj4RL5quta6kCT5Qj6LBIY2kBBenSDHc+UE5S+NKbfH2jjjBK4165xRWSe96Rk6EMGFqzZ9UhWKZx+bQ== 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 TYAPR01MB5563.jpnprd01.prod.outlook.com (2603:1096:404:8034::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5525.10; Thu, 11 Aug 2022 07:48:36 +0000 Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::558e:85ac:20d8:d8c4]) by OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::558e:85ac:20d8:d8c4%5]) with mapi id 15.20.5504.020; Thu, 11 Aug 2022 07:48:36 +0000 From: "houzj.fnst@fujitsu.com" To: Amit Kapila CC: "wangw.fnst@fujitsu.com" , Peter Smith , Masahiko Sawada , "shiy.fnst@fujitsu.com" , PostgreSQL Hackers , Dilip Kumar 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: AQHYSXX5zhPsn/DiHU+5DFLHlN8Fn6zlu9SQgAkSooCACBQ0gIABsTcwgAA1vECAAqHFgIAE/jVwgAXct9CAADkRgIALO/aAgAsRZICAB606AIAS+CyAgAAufICAAWQLgIABHxKAgAA3o4CAAeE3gIAJPr0AgAkxzACAAiJoAIAC0hUAgARvDICABQA2gIAAFvcAgAeBmICABO9ggIAJO+YAgABu1YCACQzpAIAJSy6AgAS+zICABq7mgIAACVKAgAF3oRCACazzAIAI+icAgAAXGQCAAYlogIAAbPgAgAEDmQCAAdLDYA== Date: Thu, 11 Aug 2022 07:48:36 +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?NTBfQWN0aW9uSWQ9ZDZkODg2MDktZDQ2OC00NDVhLTllMWMtYTQ4OWRlNzhj?= =?utf-8?B?ZTE3O01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?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?ZWNlMDUwX1NldERhdGU9MjAyMi0wOC0xMVQwNzoyOToxMlo7TVNJUF9MYWJl?= =?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-office365-filtering-correlation-id: 5aac9ad4-0f70-4cec-1e49-08da7b6de5f7 x-ms-traffictypediagnostic: TYAPR01MB5563:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: POQCn7N0bcZ5gK+Z/Mo1h0xnWIFJNOcOr98cs/2ITmZtmyUKGmKQRyNfnMy01REkiJI5TBWQf/I66Cf4UaLTUWyRI5xmfZUSV2SAYRDMgfbGLf+VgM8Vw2DgsJNMwNRTaHBV3TLjYDBnEmlno75NaYPzJuKOs8D3q2HDxd6SnfXi831xBothUC36VlmwXTD1ZZZAe1H9B8YdUhaVEgRfPTtVwQhJYWQtxFr31fjDmbvs38SVmIfvQaHLGJB1+fWmt9RZMZarAL/fWPaV0MKvH/5rdYe2rqQnm6zibwNaeRO/b4uzUFrIb0LfHx80WljzhnHjB9m2o/kQ2Ut8AxN+7GmnIPDUld9HHQ9RwBRD62A4eSl39jYE9ucvH1txQ8II4DeM8o3M4C2etagLTfBcVJOB6NxZj/Tv/Enn1DYv1mvUUQKcEHfQUnvJmdEOfFkJ9i9LSywxAez4tn2ITQn4HV8nTtwTkqjQf3pXoSJ6nCSxxbAdcuSeKGLDcq1o/2j3sEqHU5iWrDS+CLIv3xPRP+qLG+0rvHz2zhjFctPAPm8h07ku4bPTcEfxokr8kXzkmBHX9dOK+BX11IpgyqThtIHd3hTO4S1Zi14FrfUsqtXZNY7EkvketLHGZSL6Hh0CHqlVf2MqzQWKDSlh9ehCFkC1y2Ep8BkECyQOLfg+cLa9dRiOEYqaT/9AzDXo3LtUR8r+X3JoeRkjFKbmC6k+g2DOoBRTb4B+2nZXHENu3+yaZGh1TybP6tMH7Z1339O+nITd6KUgAcRFl1hZxB2KaxeeRWXPk6EFF32LDIR4ZzjlLaF7AUPWo3/zztimP7tG 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:(13230016)(4636009)(39860400002)(366004)(136003)(396003)(376002)(346002)(38100700002)(86362001)(316002)(122000001)(66476007)(66556008)(66446008)(64756008)(82960400001)(66946007)(4326008)(8676002)(55016003)(5660300002)(8936002)(38070700005)(76116006)(52536014)(6506007)(478600001)(83380400001)(53546011)(7696005)(9686003)(26005)(41300700001)(186003)(6916009)(54906003)(71200400001)(33656002)(85182001)(2906002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?d204VjA3Q1R4M3ZwTlJXa2tQbDJDL3M0Rm5HdHd1dFU5RWcvVzBUbjQwc2RN?= =?utf-8?B?emhBb3lvQ1RXNWp2L3N0OEdGWWREWTJ0eVVSZGVJWmszRGwyd3lkSnlKeXlN?= =?utf-8?B?VHk4YXd5a1Y4K25ncHh5Rm8vUkpRVFA0eEtwZEZqOEkvZFlMZlFiUS9Lc05K?= =?utf-8?B?dlBiaEl0REU1TlowWjg5ZVlPa1hkeldneDdIQklNeWtCL2U2Wjl1SHBPb3JT?= =?utf-8?B?bXNvc043TXg3Q1gvMkhTM2QvV3VlVm05UElsQ29aYXR5NzloSHdBd3hKazlu?= =?utf-8?B?SEdqQVZ3Y0RRT3ZWdFN4eFc3VzZ2ZVJKWXNoNmxDQlBrUk54N1YxTXY4WnQ5?= =?utf-8?B?aXJ4alJPMU12dVpLSkZLUWlqOTVST2RocTJmeFJWOE9LbUIxVGE2bFIxa0Jl?= =?utf-8?B?d0QreGdCYUVsQU53U2RHTzlCM1k2S0pKZlFEM2hBNVhQSGlRdE9CazVEWWJm?= =?utf-8?B?YllmSldmMitJL1I0dHB0a1FXT1FtS085K2tzSG1oSm0xbU1CWGhzNEFDQ3o2?= =?utf-8?B?ck14WEtpUEJCR0FDZlNQMm02MmR5UzNOL3phSXFrRVBzVThaM2gzRmFoWlpK?= =?utf-8?B?bGZudHkwR05wL0lyV1NsTmVSWWJlUVNvU1NrdmRRQVBPT3dIc1NLMU5ybytD?= =?utf-8?B?WVdPa1I4UzQ1OGMrcTBTRTNjNko5YXBGY1grMmV2aHc1cUg1Z1hSYzRJdnhm?= =?utf-8?B?NFVDbmhmbzhaYlJHT29ZOHM0ZkxxeVJUSkxQbmdzU1R1U3BBN2N2a3dlV04w?= =?utf-8?B?TE5OWjNuVzgySi9qWk9RdEgzZm1HcE9ab0VCZ3ZhZHVWU290Um9hN2wwblNW?= =?utf-8?B?UWpuUGJQeGNHS3QwUG1NWVBlZnUrYzZNLzBzb1h0UUhoVmhYRjF5U3NSVGJa?= =?utf-8?B?YXZpUkt0R09SMkNlYmdpV1BySFdvNVNnRnVFeFpCbXgyb0g0eVZtTytaMmlh?= =?utf-8?B?OUhZSHNsbW1JZkJGTUhicE9jY2dDWUNjTmYzY2pyMWc1aEIxeHNCb2taN2xo?= =?utf-8?B?TWhMbmpTYXZuMmJFSVoyRFFsdk5RMmRDQjlKcnBWUUFaZ1lubUhnTWxDeUFt?= =?utf-8?B?TGQ4eWgxY2pTUWwwazBpbXhrVHNxMEJhbnJJYWl5K3Y1WXAzeTFPMDQxU3hy?= =?utf-8?B?MFFkNTkzL3VwZm50SncvQlFHVlVaNlFyOTVJUmQyRStzYjdXZ1ZYK2k0YnBs?= =?utf-8?B?T29idFBKSWd2UWp1NHovQTZNcDd4THpnVXZLNmlqSVpNRWxGZW1xclh6N3Rk?= =?utf-8?B?ZUpNQXpZMU1HeTZTeWNOMDNBanpSTmVrMHp4VjNnVSsxek9rM2dmSUtlZ0wv?= =?utf-8?B?VWlONmw1V3lGcXRIKzZxNGFDaHlkNE5Na2Q5Q3NPZ2ZVYVEyVmsrSS9laXNP?= =?utf-8?B?SGpjUlZaQVhJOFVQMHBEVEcxajdXVjgyOWQrVm5US0MvNWhlR2dMYlEzTUl3?= =?utf-8?B?Yk5xditEelRUSUkxek8rNzNBOFd5Z3A2UzZZOXVyWXloQk5Yd202MnlIQnJW?= =?utf-8?B?MVB3YS9qOUZZVkRFbHBJOXNsOGlaa3o4Z1JSMCt0TEJKRWwzMEFkbjFKcWtK?= =?utf-8?B?MkNSZlcvVUJCMTl5ZllUTHRyaFVmbGxLUFRERFRNMTdrY1hJOEZPbTRRUG9J?= =?utf-8?B?blF0RWgxSzF4WUg3emhLdTl1dUh6RExTS29SUk14QzZ3SGpkZUwzWXNJaUtt?= =?utf-8?B?Z004MnZveTNMbkJXYXU0ODNnNS9YOFR0L2toR1ZyR0pzQ3FnNXlLOFNkK3Zj?= =?utf-8?B?MW51NmhnVlFFeGZ1VzFkRGIveTJqYUlIYXRRWWJJc1JlU0U5S05qWE1SSnJP?= =?utf-8?B?WU5OTmF6L2UyN0M4ckxYMVRWOWVpV0pMUmhmRFp0K0ZkOVVQaFFwOVVoaUJI?= =?utf-8?B?QVlVY3FiVWUxUTRyN2NGNFJWekJ5SjVkOWcvQXNFdTc3b25nbWh2NG1aS1RE?= =?utf-8?B?L2VqZGFxRGxCZ09CZjJqcTZLSHZnWFdpYmJnMFRnU2xEbmh6ajBiR1lQR1A5?= =?utf-8?B?RndMY0t0R25JczlDRjNPaFFLK1N0VkFOWEFTU21GVnpJeDVUdk52c0plUXN3?= =?utf-8?B?Rm1OK1lPKzMvN0RJaE5tT01vVlVqUzV0QlQrbFp5S2Z6alR1YUR3TUY3ZXNM?= =?utf-8?Q?fZ7gfLyW+e3vePJQR/tEMIHMx?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?utf-8?B?cnhHRjk1MGRGQnpDcnZIMXZLQ3RjeDJYNkNxOHBZT01pSURocGMvL0ZxQkEw?= =?utf-8?B?dmVwaXZTTjNXTi92VWgrZWhUYWplRUs4TkdhMzR6Ky9rVnR6ZjdvWXZ6Q1Bw?= =?utf-8?B?d1FvT1psTFBVdFR0MzZDSkMxS0lJWUswODlVR2lKbHZ5c3E4SXpDL0pQRHI5?= =?utf-8?B?dC9ldU1iMTREQmxidVJodWE1b1hRSU5NQlVySUF2eVQzR3FidGZYWm13Wldo?= =?utf-8?B?ZmUybTc3V3Y3ZjQrM1NSczBvVTZiOWpjU3dxR0Q5SnpWRThpTlVOV291cHRE?= =?utf-8?B?NnpBWC85b1JOUHpHTkdzZ081ZklXZFlMek5wb3BuTmlrRTBKNnFSaVRJN0RT?= =?utf-8?B?LytYVkNIUEYrVzZuaEZuVG5hQ2xrR2FRMFZ5bGpqYVFRSG5kbzVSeXN3Ylor?= =?utf-8?B?UFg0YzN4N3h3MkNXSjFyVFJ6K1NTRUZTdldrbmtwWFIwRGNiYTFJQjVrTnBa?= =?utf-8?B?NVZVYVlEWjdJZy8rVElmdjJuRnV1c0RPMENwRzU0eDJIaVNUS2RmUFU2NTZG?= =?utf-8?B?NlBVMVZDQURsei9UOUE1UmRxU2xCQjdSZmRsS1Y3V3BaMS9zNXpYaGk1NHBD?= =?utf-8?B?NGVweHE0d2NKNHllK0xjN1lGUjVKRy9VQ3dYZ0VRZFBlRFA0Ry9hRyt0NG1p?= =?utf-8?B?YU44RE9oUUREeHlIRmF3QTRuQWdVVFNDMTh1bGEyN2NaUG5RUC82SUE0UWFO?= =?utf-8?B?ZWN0WnZ1UWg0aDRTbGFOQ3lUUVBTdmNXbFhIYVRxZXpQZVBJZUlhR2ZMcTNM?= =?utf-8?B?ZHB2RjlIZDdpRE5Tc3dVVWtHSTBpQXBZWTRKTmhCM2M4LzJVeHg3Vzh0U01Y?= =?utf-8?B?enMwRStFckY5NlVKQ3pPUW84ckRTb3BDOXZLZGJQdWU2dkJveUhuV0RjM01h?= =?utf-8?B?NGFFRTVEQ0JqZVM4YlFSa2M3MnhKbHphOUQzYzM2N2Vab09CZCt6Zk5nN3JK?= =?utf-8?B?dWNSdHQ4TlNRRDloVU1IN01xNjEyaDc5U3lwMjc2QjB1eHRXWjVhcTFTanpV?= =?utf-8?B?Ly9YM0ZIK2l4bkVNTHdWZlkvcGdqMmZjTHZjeE53TXhxVFM0aS94d3VWTzNC?= =?utf-8?B?NTlqbEpSbEQ0cDY0VnhOYnR2TEhVdjNxb1dxWUpTMUwxaUNkemhuZ3VHWVhG?= =?utf-8?B?bHJOK1NFdGpiL25kSVBrZE9xb1grQ1J3NThBOVZvTEZJWDhWZHExZEhkSCtj?= =?utf-8?B?VXV6TDV6Vmp0bUpjemdWUGhFa1ZEL2hoWjJ6bDlLYlVOU2hna01CcldPYUJI?= =?utf-8?B?WW5TSTZ6UjdmZGtxVHlscFdFSjlDK1EvblNhNVluNWJhZFcrc3U5cHhRTkJz?= =?utf-8?Q?VEzyKytF7nN30=3D?= 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: 5aac9ad4-0f70-4cec-1e49-08da7b6de5f7 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Aug 2022 07:48:36.6019 (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: BMmoLDKslwc7KF9JPL7N5YoB2Jfuqh8QeArLPOTAEWBcw3SQataQOCxYGWkfGBWJdjjIefns4eK+t7abjvpGcQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYAPR01MB5563 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk T24gV2VkbmVzZGF5LCBBdWd1c3QgMTAsIDIwMjIgMTE6MzkgQU0gQW1pdCBLYXBpbGEgPGFtaXQu a2FwaWxhMTZAZ21haWwuY29tPndyb3RlOg0KPiANCj4gT24gVHVlLCBBdWcgOSwgMjAyMiBhdCA1 OjM5IFBNIEFtaXQgS2FwaWxhIDxhbWl0LmthcGlsYTE2QGdtYWlsLmNvbT4gd3JvdGU6DQo+ID4N Cj4gPiBPbiBUdWUsIEF1ZyA5LCAyMDIyIGF0IDExOjA5IEFNIERpbGlwIEt1bWFyIDxkaWxpcGJh bGF1dEBnbWFpbC5jb20+DQo+IHdyb3RlOg0KPiA+ID4NCj4gPiA+IFNvbWUgbW9yZSBjb21tZW50 cw0KPiA+ID4NCj4gPiA+ICsgICAgLyoNCj4gPiA+ICsgICAgICogRXhpdCBpZiBhbnkgcmVsYXRp b24gaXMgbm90IGluIHRoZSBSRUFEWSBzdGF0ZSBhbmQgaWYgYW55IHdvcmtlciBpcw0KPiA+ID4g KyAgICAgKiBoYW5kbGluZyB0aGUgc3RyZWFtaW5nIHRyYW5zYWN0aW9uIGF0IHRoZSBzYW1lIHRp bWUuIEJlY2F1c2UgZm9yDQo+ID4gPiArICAgICAqIHN0cmVhbWluZyB0cmFuc2FjdGlvbnMgdGhh dCBpcyBiZWluZyBhcHBsaWVkIGluIGFwcGx5IGJhY2tncm91bmQNCj4gPiA+ICsgICAgICogd29y a2VyLCB3ZSBjYW5ub3QgZGVjaWRlIHdoZXRoZXIgdG8gYXBwbHkgdGhlIGNoYW5nZSBmb3IgYQ0K PiByZWxhdGlvbg0KPiA+ID4gKyAgICAgKiB0aGF0IGlzIG5vdCBpbiB0aGUgUkVBRFkgc3RhdGUg KHNlZSBzaG91bGRfYXBwbHlfY2hhbmdlc19mb3JfcmVsKSBhcw0KPiB3ZQ0KPiA+ID4gKyAgICAg KiB3b24ndCBrbm93IHJlbW90ZV9maW5hbF9sc24gYnkgdGhhdCB0aW1lLg0KPiA+ID4gKyAgICAg Ki8NCj4gPiA+ICsgICAgaWYgKGxpc3RfbGVuZ3RoKEFwcGx5Qmd3b3JrZXJzRnJlZUxpc3QpICE9 DQo+ID4gPiBsaXN0X2xlbmd0aChBcHBseUJnd29ya2Vyc0xpc3QpICYmDQo+ID4gPiArICAgICAg ICAhQWxsVGFibGVzeW5jc1JlYWR5KCkpDQo+ID4gPiArICAgIHsNCj4gPiA+ICsgICAgICAgIGVy ZXBvcnQoTE9HLA0KPiA+ID4gKyAgICAgICAgICAgICAgICAoZXJybXNnKCJsb2dpY2FsIHJlcGxp Y2F0aW9uIGFwcGx5IHdvcmtlcnMgZm9yDQo+ID4gPiBzdWJzY3JpcHRpb24gXCIlc1wiIHdpbGwg cmVzdGFydCIsDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgTXlTdWJzY3JpcHRpb24t Pm5hbWUpLA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgZXJyZGV0YWlsKCJDYW5ub3QgaGFuZGxl IHN0cmVhbWVkIHJlcGxpY2F0aW9uDQo+ID4gPiB0cmFuc2FjdGlvbiBieSBhcHBseSAiDQo+ID4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgImJhY2tncm91bmQgd29ya2VycyB1bnRpbCBh bGwgdGFibGVzIGFyZQ0KPiA+ID4gc3luY2hyb25pemVkIikpKTsNCj4gPiA+ICsNCj4gPiA+ICsg ICAgICAgIHByb2NfZXhpdCgwKTsNCj4gPiA+ICsgICAgfQ0KPiA+ID4NCj4gPiA+IEhvdyB0aGlz IHNpdHVhdGlvbiBjYW4gb2NjdXI/IEkgbWVhbiB3aGlsZSBzdGFydGluZyBhIGJhY2tncm91bmQN Cj4gPiA+IHdvcmtlciBpdHNlbGYgd2UgY2FuIGNoZWNrIHdoZXRoZXIgYWxsIHRhYmxlcyBhcmUg c3luYyByZWFkeSBvciBub3QNCj4gPiA+IHJpZ2h0Pw0KPiA+ID4NCj4gPg0KPiA+IFdlIGFyZSBh bHJlYWR5IGNoZWNraW5nIGF0IHRoZSBzdGFydCBpbiBhcHBseV9iZ3dvcmtlcl9jYW5fc3RhcnQo KSBidXQNCj4gPiBJIHRoaW5rIGl0IGlzIHJlcXVpcmVkIHRvIGNoZWNrIGF0IHRoZSBsYXRlciBw b2ludCBvZiB0aW1lIGFzIHdlbGwNCj4gPiBiZWNhdXNlIHRoZSBuZXcgcmVscyBjYW4gYmUgYWRk ZWQgdG8gcGdfc3Vic2NyaXB0aW9uX3JlbCB2aWEgQWx0ZXINCj4gPiBTdWJzY3JpcHRpb24gLi4u IFJlZnJlc2guIEkgZmVlbCBpZiB0aGF0IHJlYXNvbmluZyBpcyBjb3JyZWN0IHRoZW4gd2UNCj4g PiBjYW4gcHJvYmFibHkgZXhwYW5kIGNvbW1lbnRzIHRvIG1ha2UgaXQgY2xlYXIuDQo+ID4NCj4g PiA+ICsgICAgLyogQ2hlY2sgdGhlIHN0YXR1cyBvZiBhcHBseSBiYWNrZ3JvdW5kIHdvcmtlciBp ZiBhbnkuICovDQo+ID4gPiArICAgIGFwcGx5X2Jnd29ya2VyX2NoZWNrX3N0YXR1cygpOw0KPiA+ ID4gKw0KPiA+ID4NCj4gPiA+IFdoYXQgaXMgdGhlIG5lZWQgdG8gY2hlY2tpbmcgZWFjaCB3b3Jr ZXIgc3RhdHVzIG9uIGV2ZXJ5IGNvbW1pdD8gIEkNCj4gPiA+IG1lYW4gaWYgdGhlcmUgYXJlIGEg bG90IG9mIHNtYWxsIHRyYW5zYWN0aW9ucyBhbG9uZyB3aXRoIHNvbWUNCj4gPiA+IHN0ZWFtaWlu ZyB0cmFuc2FjdGlvbnMgdGhlbiBpdCB3aWxsIGFmZmVjdCB0aGUgYXBwbHkgcGVyZm9ybWFuY2Ug Zm9yDQo+ID4gPiB0aG9zZSBzbWFsbCB0cmFuc2FjdGlvbnM/DQo+ID4gPg0KPiA+DQo+ID4gSSBk b24ndCB0aGluayBwZXJmb3JtYW5jZSB3aWxsIGJlIGEgY29uY2VybiBiZWNhdXNlIHRoaXMgd29u J3QgZG8gYW55DQo+ID4gY29zdGx5IG9wZXJhdGlvbiB1bmxlc3MgaW52YWxpZGF0aW9uIGhhcHBl bnMgaW4gd2hpY2ggY2FzZSBpdCB3aWxsDQo+ID4gYWNjZXNzIHN5c3RlbSBjYXRhbG9ncy4gSG93 ZXZlciwgaWYgbXkgYWJvdmUgdW5kZXJzdGFuZGluZyBpcyBjb3JyZWN0DQo+ID4gdGhhdCBuZXcg dGFibGVzIGNhbiBiZSBhZGRlZCBkdXJpbmcgdGhlIGFwcGx5IHByb2Nlc3MgdGhlbiBub3Qgc3Vy ZQ0KPiA+IGRvaW5nIGl0IGF0IGNvbW1pdCB0aW1lIGlzIHN1ZmZpY2llbnQvY29ycmVjdCBiZWNh dXNlIGl0IGNhbiBjaGFuZ2UNCj4gPiBldmVuIGR1cmluZyB0aGUgdHJhbnNhY3Rpb24uDQo+ID4N Cj4gDQo+IE9uZSBpZGVhIHRoYXQgbWF5IGhhbmRsZSBpdCBjbGVhbmx5IGlzIHRvIGNoZWNrIGZv ciBTVUJSRUxfU1RBVEVfU1lOQ0RPTkUNCj4gc3RhdGUgaW4gc2hvdWxkX2FwcGx5X2NoYW5nZXNf Zm9yX3JlbCgpIGFuZCBlcnJvciBvdXQgZm9yIGFwcGx5X2JnX3dvcmtlcigpLg0KPiBGb3IgdGhl IFNVQlJFTF9TVEFURV9SRUFEWSBzdGF0ZSwgaXQgc2hvdWxkIHJldHVybiB0cnVlIGFuZCBmb3Ig YW55IG90aGVyDQo+IHN0YXRlLCBpdCBjYW4gcmV0dXJuIGZhbHNlLiBUaGUgb25lIGFkdmFudGFn ZSBvZiB0aGlzIGFwcHJvYWNoIGNvdWxkIGJlIHRoYXQgdGhlDQo+IHBhcmFsbGVsIGFwcGx5IHdv cmtlciB3aWxsIGdpdmUgYW4gZXJyb3Igb25seSBpZiB0aGUgY29ycmVzcG9uZGluZyB0cmFuc2Fj dGlvbg0KPiBoYXMgcGVyZm9ybWVkIGFueSBvcGVyYXRpb24gb24gdGhlIHJlbGF0aW9uIHRoYXQg aGFzIHJlYWNoZWQgdGhlIFNZTkNET05FDQo+IHN0YXRlLg0KPiBPVE9ILCBjaGVja2luZyBhdCBl YWNoIHRyYW5zYWN0aW9uIGVuZCBjYW4gYWxzbyBsZWFkIHRvIGVycm9yaW5nIG91dCBvZg0KPiB3 b3JrZXJzIGV2ZW4gaWYgdGhlIHBhcmFsbGVsIGFwcGx5IHRyYW5zYWN0aW9uIGRvZXNuJ3QgcGVy Zm9ybSBhbnkgb3BlcmF0aW9uIG9uDQo+IHRoZSByZWxhdGlvbiB3aGljaCBpcyBub3QgaW4gdGhl IFJFQURZIHN0YXRlLg0KDQpJIGFncmVlIHRoYXQgaXQgd291bGQgYmUgYmV0dGVyIHRvIGNoZWNr IGF0IHNob3VsZF9hcHBseV9jaGFuZ2VzX2Zvcl9yZWwoKS4NCg0KSW4gYWRkaXRpb24sIEkgdGhp bmsgd2Ugc2hvdWxkIHJlcG9ydCBhbiBlcnJvciBpZiB0aGUgdGFibGUgaXMgbm90IGluIFJFQURZ IHN0YXRlLA0Kb3RoZXJ3aXNlIHJldHVybiB0cnVlLiBDdXJyZW50bHkob24gSEVBRCksIGlmIHRo ZSB0YWJsZSBzdGF0ZSBpcyBOT1QgUkVBRFksIHdlDQp3aWxsIHNraXAgYWxsIHRoZSBjaGFuZ2Vz IHJlbGF0ZWQgdG8gdGhlIHJlbGF0aW9uIGluIGEgdHJhbnNhY3Rpb24gYmVjYXVzZSB3ZQ0KaW52 b2tlIHByb2Nlc3Nfc3luY2luZ190YWJsZXMgb25seSBhdCB0cmFuc2FjdGlvbiBlbmQgd2hpY2gg bWVhbnMgdGhlIHN0YXRlIG9mDQp0YWJsZSB3b24ndCBiZSBjaGFuZ2VkIGR1cmluZyBhcHBseWlu ZyBhIHRyYW5zYWN0aW9uLg0KDQpCdXQgd2hpbGUgdGhlIGFwcGx5IGJnd29ya2VyIGlzIGFwcGx5 aW5nIHRoZSBzdHJlYW1pbmcgdHJhbnNhY3Rpb24sIHRoZQ0KbWFpbiBhcHBseSB3b3JrZXIgY291 bGQgaGF2ZSBhcHBsaWVkIHNlcnZhbCBub3JtYWwgdHJhbnNhY3Rpb24gd2hpY2ggY291bGQNCmNo YW5nZSB0aGUgc3RhdGUgb2YgdGFibGUgc2VydmFsIHRpbWVzKEZST00gSU5JVCAtPiBSRUFEWSku IFNvLCB0byBwcmV2ZW50IHRoZQ0KcmlzayBjYXNlIHRoYXQgd2Ugc2tpcCBwYXJ0IG9mIGNoYW5n ZXMgYmVmb3JlIHN0YXRlIGNvbWVzIHRvIFJFQURZIGFuZCB0aGVuDQpzdGFydCB0byBhcHBseSB0 aGUgY2hhbmdlcyBhZnRlciBSRUFEWSBkdXJpbmcgb24gdHJhbnNhY3Rpb24sIHdlJ2QgYmV0dGVy IGVycm9yDQpvdXQgaWYgdGhlIHRhYmxlIGlzIG5vdCBpbiBSRUFEWSBzdGF0ZSBhbmQgcmVzdGFy dCB3aXRob3V0IGFwcGx5IGJhY2tncm91bmQNCndvcmtlci4NCg0KQmVzdCByZWdhcmRzLA0KSG91 IHpqDQo=