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 1p66qp-0003SX-OT for pgsql-hackers@arkaria.postgresql.org; Fri, 16 Dec 2022 09:17:56 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1p66qn-00022d-LA for pgsql-hackers@arkaria.postgresql.org; Fri, 16 Dec 2022 09:17:53 +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 1p66qn-00022M-1H for pgsql-hackers@lists.postgresql.org; Fri, 16 Dec 2022 09:17:53 +0000 Received: from esa5.fujitsucc.c3s2.iphmx.com ([68.232.159.76]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p66qf-0002M6-Qd for pgsql-hackers@lists.postgresql.org; Fri, 16 Dec 2022 09:17:51 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1671182265; x=1702718265; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=DqECI1u7UqoynkNmxrBSFNUyHK8gO436c8EdV04CPTc=; b=uNZPRbKhSpWRA4c9IXWC49jfivfR5YelkQrBJUO2F2qTzCxS+PD2zUM5 FaGnxBpvldAKH6xGfPPk7XWED/JYlm124Udhk9VgOOs8U897RYjpqa18Q S2IvY75s2JoURp72JFlTVyYgYGdDTvWuwQW81YNrsTwqaisRH8jPyWNLD BCd48YloJU6WJHqadsK2n79EdJ9y6FBYrSLHMHU4ljHLXp6XGS3MFF32k gPol2iqALTEAp+GsqcVvodbMhdVfb7rqt0Obr8HPMS9x/L8JJlZibLRRq TvU20lv2rIrfCn2QaGAy4Q93E6MwD5lnJaJgTYGxIoAo7h2z+m/Fz3QIn g==; X-IronPort-AV: E=McAfee;i="6500,9779,10562"; a="72828518" X-IronPort-AV: E=Sophos;i="5.96,249,1665414000"; d="scan'208";a="72828518" Received: from mail-tycjpn01lp2174.outbound.protection.outlook.com (HELO JPN01-TYC-obe.outbound.protection.outlook.com) ([104.47.23.174]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Dec 2022 18:17:39 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Wxitdmk62HuupN+RPqpcJbguXNy5DZ6/Vxu0XQD+75lr8eZGnAOzklF3Zb/lh+/E4t5QtFIcVk3M/BUMJhGvuudrWbYflTvT0sPuN1+Uqzc26PKVr4s5Wi83cu7ItUtgitQ8DF+MEPuRlM7nFHEXAO9ANZOD42FHAfO7WfA943nX0ElRU/8nnXSnGij56i6yg4HG7KJZT1eBacudGRpabx/+2UUc+oevT3SHtOiPyJLSmRsyGq62xd1qtjC+5ox4RuLAWqDzHQf/kxRbB6ScHSLcmaCoP6fdTpKAJ4r4bbGio4Zezx3AJl9aaxV6VAbcmCILphlkREsicXXjVwKEdw== 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=DqECI1u7UqoynkNmxrBSFNUyHK8gO436c8EdV04CPTc=; b=oKLxN7KPQQYd8GX3ynW4gyQU0oybVirCbZl2aeg2bCzo+5hRz7PbSglfy6+/PCV6TyYKuoJfYCrpWdr4FHEUyLJhFyiwvwkCi0tgOcGVzojArk3ytoNy1xhgHlG3XYXWRACHmoURL3ZDJnBiWZFB9cNyfmb2i9pYYYwZzy4AP2/Af6MLtxgv3tgvQy5r7813s8w37wrIIBxJsjD4go78W5PYWFSWLmm3WDJwQ2WW0kW1F6kZagiiUaaeJwT+2gzfAePnGa5j52jO6vy2+DypLfK2+ob/o0p90LNywqUojdJLBqNSaojesA/GjlgnDBjep4zXNVIajqYpMtatxEfXxg== 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 TYBPR01MB5470.jpnprd01.prod.outlook.com (2603:1096:404:8025::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5924.11; Fri, 16 Dec 2022 09:17:37 +0000 Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::db62:a054:b1fa:4cb3]) by OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::db62:a054:b1fa:4cb3%7]) with mapi id 15.20.5924.011; Fri, 16 Dec 2022 09:17:37 +0000 From: "houzj.fnst@fujitsu.com" To: Masahiko Sawada CC: Amit Kapila , "wangw.fnst@fujitsu.com" , Peter Smith , Dilip Kumar , "shiy.fnst@fujitsu.com" , 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: AQHZD4gmc8Gf0xrGM0OFaEbpojAcOq5uQq1wgAHYoYCAAB++4A== Date: Fri, 16 Dec 2022 09:17:37 +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?NTBfQWN0aW9uSWQ9YzljNDE0ZWQtYWJjZC00ZWVlLTkxZGUtMTY5ZTE2MzA3?= =?utf-8?B?NDExO01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?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?ZWNlMDUwX1NldERhdGU9MjAyMi0xMi0xNlQwOTowMTo1OVo7TVNJUF9MYWJl?= =?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_|TYBPR01MB5470:EE_ x-ms-office365-filtering-correlation-id: 763a2965-34b4-47ef-45f0-08dadf465fbb x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: gaE2/ny3UojjZgklcXfWlWw/GIU4VyNk9sQpoJ7c4aZDaUARqcss48oeMg4wnenSiyJgzmbnGzk/6U0QnENaaSrMf6/A1911aj4Z89DNSMh83ZSrS3dfh61nua/lDZ50Jn3xtuUWz5YahU2Bpw7n3dKmb3M7raFN4YjjVr63sziu+Q3pDKIBdRTT+v9h6IF0dmNA1ZW2/ZKx7SJs/0gYpzqsGMWna9CwGGuGza48gOUG35c9cS6Ypl6NkRZs9RN7gaPhUpBH04U7xylmCTkN13ZCr+aRRVQG+TRZNuDaFCUVEXwD4Iis7AMOIiB2OVor/9Yszohwl4ee1yCQPmzqPgheO9CyYIOfCWnvi5qUcZc/51ygWgE20q97FCO/0+OZhBSX4yz4tFwUkN6eqxyPocZVG+zfrBZxFMt+KKkfp6abbZ4QPK59WKfD45WpAbnE5zXv+O97mBf1VAW7V6cBTV91m4vcvqTEimxOxgVmDw1gNXLGQ1eNdnBu49I3QysfGXmwQXZVNegID0edQh6QtjnnZIpRradqBNuRz572nLRR2ET6DxZqdP2wk/Nq8ZqKEK7nEc60nCT/Um5T2Zk0jgCDk59PLlAAEfYSvRd9a/kaXNvLH9kTdfIuyZ5yzgV5Sq6x4BkoiW+kk/MP2Lwi0y1paGgBeMTLePygAjMweauFfXN2ViAeXHHXP4jAXXxcj490X1oEAhUnr/C4yKobtoqFs9Xi/7pzFSS1tr0DaAI= 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)(396003)(366004)(346002)(1590799012)(451199015)(186003)(9686003)(7696005)(6506007)(71200400001)(26005)(38070700005)(86362001)(1580799009)(53546011)(478600001)(66476007)(316002)(6916009)(66946007)(66556008)(8676002)(64756008)(4326008)(76116006)(85182001)(54906003)(8936002)(41300700001)(5660300002)(52536014)(2906002)(66446008)(83380400001)(33656002)(122000001)(38100700002)(55016003)(82960400001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WElpWTZTdmxmRUhQQ0drcFVoUlNCWVU0VnNYdy9MNzgyWVJlbG0zdEIrRXlX?= =?utf-8?B?YTRBVkxVdmJFcHZZRE5JeFNHS1M3SERQTlB2Q0svWlBSbjFGQXBGTHBoV29u?= =?utf-8?B?ZXFNTlNBSHJNYUpVSnMraE1Sd1hVeTBHMnh1QnB5dk1rVklLaXRpd09yMFNH?= =?utf-8?B?eWlhY2Jvcjg5dGZOd2FHQjAxemlKUEFXRDNRQmIyVTlQSGJ6ajlZZStYK1Y0?= =?utf-8?B?bkc0ei9iQlB4eTdBdTF1K0lHbHM3QzdzRHNJR2dFaERFRzZQckZ5dGk4RFNE?= =?utf-8?B?ZnVyQkhYeWRISW90UmdpTmM1Q05wem4xaUlYWkU1OWZ3ZDR1K09vUUZ6OWtx?= =?utf-8?B?djBVZDRzYnBQZWt6ejFneHdEVExtZUlOUm1RWXZBQUhPbWRneUEzUHdBZTJY?= =?utf-8?B?RlNBMjZHQndUR0ZhQVVyajJmb0s1SXdSaWNIRDlyT2RSSk9rSDJWZThRWE5o?= =?utf-8?B?eDNFMmNsTW9rNEszSWVxVzJRYU1iWlc3UVc0RTZRemJmY2VoYkpXZFQ3dzAr?= =?utf-8?B?UFdUMGtCOEJBbnlXME5JWFErR3I0cDI1R0VmU1phRVVZWTRYWVFlYkNHZ1dn?= =?utf-8?B?TVRRZWU3K1hwSXpPQWc3cFNaZUlrcWxhSWFWaG1ob3Y1ai96aThXbi9tSU5P?= =?utf-8?B?SGlvWHVZbHFoVWsxNkMybUtUSXloMnBxMUFDRFByeG1kU1pEQ0JrazIxL2hW?= =?utf-8?B?TW96L0pGOVMrNTdzYWE5anpkMkNZTUhtbTF6a0hRZzErY28rcUVFL3BQWWR1?= =?utf-8?B?VFMwWjZEaS9UQzQ3emFXZHBxR0JtWis5bmt3bDlGUzVFNkNocUYyTU1OTXJB?= =?utf-8?B?cjRNbGtJYSt0N29OL0VpRDV0TVcyVE9wUk1rN0I3UTBXOFVwbStmMWxWNEph?= =?utf-8?B?ZDlOd2lZbXA0QytqZ25FY3NWZG5PUUJSajl3UGUxWFAwTGJmanlWdFNtTEt6?= =?utf-8?B?TEd2QjROcjV6cGhZU3l0Z0Yvb09oWGYyTlJkVlhSdmlhdEk0cXdEMFIyREJl?= =?utf-8?B?MEZpcXBNTTdyTGRjc1VJa1N2MEdIb1dYc25wbGh5dlJjcElyeVdLemc2cUJF?= =?utf-8?B?MlNNNzRvenZLdGpQNDgrazlZZFNPM25zRWh0ajZZcjJKWmZTaVYwUkZ3YmZM?= =?utf-8?B?ajlTWVdNVGg4dlJla0RPWTlXK2ptdWsxZHhRc0xYZzRqQUFrRDFHa21KNVY2?= =?utf-8?B?aHQ1bWRMY2duSlFadGlhd1VFYXhSekJTeFZ3bEtpSENOalR1TmJmc0t4OXF1?= =?utf-8?B?MysrZmdaTkVqWDhkTTBtYXBRU3JOK2Nna29iSDBIN0MwaDhMTDVIYmd1ZVR1?= =?utf-8?B?aFEzVm81cUZBcHIvdFJDNUNqZU8yeHM3bThRTEszSFdhYzUvbklvZ0tzRXg5?= =?utf-8?B?MTl2OUZGTXRncnhpcW5temQ4U1dCVkYrRWNpWHRnK21TOVI0THVKbTBSb1p1?= =?utf-8?B?MEhRL3pIdEpsU3E2cGxYZ1hOajduUVpySkRiZ3VhZE00NG9kaTlkUDBpTGYr?= =?utf-8?B?OWl5REZTTnlZMXZoc3krcCtsVlJjTW9PR2RZeTVQa2lueXFMTnBZM0RzcGd1?= =?utf-8?B?SWtnMWNwelhSTFVoV0MvZUp1TEVuVzl0VUY1UXluMEozYWdhRnR6cWgzOUhE?= =?utf-8?B?K2Z5WUoyUlp3clJTSGswSnFWZFA5VGlLUFdSbVE5eE1UMGRobXVnQWVweUZ5?= =?utf-8?B?SFlXdFAyQWY2Y3pHSU9BOWI3UlRFL09tV3Q0L0ZUQytuNHd6NE5OY1B0VFM4?= =?utf-8?B?VDlGM0F3bEI4Zi9Mb2IrMTdCZlZBdFRiZ1NQQ3RCWUtuSGJSaXRoWEloN2Nq?= =?utf-8?B?OENRMmFjK3JIaldEQVJxdzBHU2RVWGZ4N1pDWXVtV0M5YUZDbHhHdFNNQzly?= =?utf-8?B?WlVEaVZUM1hFMkQwV0djVzR3NXUzZnpBMUkwWU0zaHRZSXB1QUJMTjlNeUNu?= =?utf-8?B?YThveXZTWkZINGoxNmM4WXJBMGQ0QktIZXk3cndydEZXbjczVzYvb252VlZN?= =?utf-8?B?NGdzdHFKT2F3MzBPQkpTNUlZSWJ3eEd1S2wwZGRwTkV6UUJ5VWJUY053ZWdn?= =?utf-8?B?SFZBeU04RlRwQ29WdGFzK2RNWkZHR1FLSTZHUEJkVEtPV09oeVZLVGhkVld2?= =?utf-8?Q?LsVrzVbk+8X6Sm6cjzxD2bbWW?= 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: 763a2965-34b4-47ef-45f0-08dadf465fbb X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Dec 2022 09:17:37.2847 (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: mYEL2OKBruQ3Yn9LXukbI6ASY+dxvgg2SzZ7QhCfCIX7aiJETViwXfELkHF01nRrl3bTOy7JbFe6MPycQyq09Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYBPR01MB5470 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk T24gRnJpZGF5LCBEZWNlbWJlciAxNiwgMjAyMiAzOjA4IFBNIE1hc2FoaWtvIFNhd2FkYSA8c2F3 YWRhLm1zaGtAZ21haWwuY29tPiB3cm90ZToNCj4gDQo+IA0KPkhlcmUgYXJlIHNvbWUgbWlub3Ig Y29tbWVudHM6DQoNClRoYW5rcyBmb3IgdGhlIGNvbW1lbnRzIQ0KDQo+IC0tLQ0KPiArcGFfaGFz X3Nwb29sZWRfbWVzc2FnZV9wZW5kaW5nKCkNCj4gK3sNCj4gKyAgICAgICBQYXJ0aWFsRmlsZVNl dFN0YXRlIGZpbGVzZXRfc3RhdGU7DQo+ICsNCj4gKyAgICAgICBmaWxlc2V0X3N0YXRlID0gcGFf Z2V0X2ZpbGVzZXRfc3RhdGUoKTsNCj4gKw0KPiArICAgICAgIGlmIChmaWxlc2V0X3N0YXRlICE9 IEZTX1VOS05PV04pDQo+ICsgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsNCj4gKyAgICAgICBl bHNlDQo+ICsgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQo+ICt9DQo+IA0KPiBJIHRoaW5r IHdlIGNhbiBzaW1wbHkgZG86DQo+IA0KPiByZXR1cm4gKGZpbGVzZXRfc3RhdGUgIT0gRlNfVU5L Tk9XTik7DQoNCldpbGwgY2hhbmdlLg0KDQo+IA0KPiBPciBkbyB3ZSBuZWVkIHRoaXMgZnVuY3Rp b24gaW4gdGhlIGZpcnN0IHBsYWNlPyBJIHRoaW5rIHdlIGNhbiBkbyBpbg0KPiBMb2dpY2FsUGFy YWxsZWxBcHBseUxvb3AoKSBsaWtlOg0KDQpJIHdhcyBpbnRlbmRlZCB0byBub3QgZXhwb3NlIHRo ZSBmaWxlIHN0YXRlIGluIHRoZSBtYWluIGxvb3AsIHNvIG1heWJlIGJldHRlcg0KdG8ga2VlcCB0 aGlzIGZ1bmN0aW9uLg0KDQo+IC0tLQ0KPiArICAgICAgIGFjdGl2ZV93b3JrZXJzID0gbGlzdF9j b3B5KFBhcmFsbGVsQXBwbHlXb3JrZXJQb29sKTsNCj4gKw0KPiArICAgICAgIGZvcmVhY2gobGMs IGFjdGl2ZV93b3JrZXJzKQ0KPiArICAgICAgIHsNCj4gKyAgICAgICAgICAgICAgIGludCAgICAg ICAgICAgICAgICAgICAgIHNsb3Rfbm87DQo+ICsgICAgICAgICAgICAgICB1aW50MTYgICAgICAg ICAgZ2VuZXJhdGlvbjsNCj4gKyAgICAgICAgICAgICAgIFBhcmFsbGVsQXBwbHlXb3JrZXJJbmZv ICp3aW5mbyA9DQo+IChQYXJhbGxlbEFwcGx5V29ya2VySW5mbyAqKSBsZmlyc3QobGMpOw0KPiAr DQo+ICsgICAgICAgICAgICAgICBMV0xvY2tBY3F1aXJlKExvZ2ljYWxSZXBXb3JrZXJMb2NrLCBM V19TSEFSRUQpOw0KPiArICAgICAgICAgICAgICAgbmFwcGx5d29ya2VycyA9DQo+IGxvZ2ljYWxy ZXBfcGFfd29ya2VyX2NvdW50KE15TG9naWNhbFJlcFdvcmtlci0+c3ViaWQpOw0KPiArICAgICAg ICAgICAgICAgTFdMb2NrUmVsZWFzZShMb2dpY2FsUmVwV29ya2VyTG9jayk7DQo+ICsNCj4gKyAg ICAgICAgICAgICAgIGlmIChuYXBwbHl3b3JrZXJzIDw9DQo+IG1heF9wYXJhbGxlbF9hcHBseV93 b3JrZXJzX3Blcl9zdWJzY3JpcHRpb24gLyAyKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm47DQo+ICsNCj4gDQo+IENhbGxpbmcgbG9naWNhbHJlcF9wYV93b3JrZXJfY291bnQoKSB3 aXRoIGx3bG9jayBmb3IgZWFjaCB3b3JrZXIgc2VlbXMNCj4gbm90IGVmZmljaWVudCB0byBtZS4g SSB0aGluayB3ZSBjYW4gZ2V0IHRoZSBudW1iZXIgb2Ygd29ya2VycyBvbmNlIGF0DQo+IHRoZSB0 b3Agb2YgdGhpcyBmdW5jdGlvbiBhbmQgcmV0dXJuIGlmIGl0J3MgYWxyZWFkeSBsb3dlciB0aGFu IHRoZQ0KPiBtYXhpbXVtIHBvb2wgc2l6ZS4gT3RoZXJ3aXNlLCB3ZSBhdHRlbXB0IHRvIHN0b3Ag ZXh0cmEgd29ya2Vycy4NCg0KSG93IGFib3V0IHdlIGRpcmVjdGx5IGNoZWNrIHRoZSBsZW5ndGgg b2Ygd29ya2VyIHBvb2wgbGlzdCBoZXJlIHdoaWNoDQpzZWVtcyBzaW1wbGVyIGFuZCBkb24ndCBu ZWVkIHRvIGxvY2sgPw0KDQo+IC0tLQ0KPiArYm9vbA0KPiArcGFfZnJlZV93b3JrZXIoUGFyYWxs ZWxBcHBseVdvcmtlckluZm8gKndpbmZvLCBUcmFuc2FjdGlvbklkIHhpZCkNCj4gK3sNCj4gDQo+ IA0KPiBJcyB0aGVyZSBhbnkgcmVhc29uIHdoeSB0aGlzIGZ1bmN0aW9uIGhhcyB0aGUgWElEIGFz IGEgc2VwYXJhdGUNCj4gYXJndW1lbnQ/IEl0IHNlZW1zIHRvIG1lIHRoYXQgc2luY2Ugd2UgYWx3 YXlzIGNhbGwgdGhpcyBmdW5jdGlvbiB3aXRoDQo+ICd3aW5mbycgYW5kICd3aW5mby0+c2hhcmVk LT54aWQnLCB3ZSBjYW4gcmVtb3ZlIHhpZCBmcm9tIHRoZSBmdW5jdGlvbg0KPiBhcmd1bWVudC4N Cj4gDQo+IC0tLQ0KPiArICAgICAgIC8qIEluaXRpYWxpemUgc2hhcmVkIG1lbW9yeSBhcmVhLiAq Lw0KPiArICAgICAgIFNwaW5Mb2NrQWNxdWlyZSgmd2luZm8tPnNoYXJlZC0+bXV0ZXgpOw0KPiAr ICAgICAgIHdpbmZvLT5zaGFyZWQtPnhhY3Rfc3RhdGUgPSBQQVJBTExFTF9UUkFOU19VTktOT1dO Ow0KPiArICAgICAgIHdpbmZvLT5zaGFyZWQtPnhpZCA9IHhpZDsNCj4gKyAgICAgICBTcGluTG9j a1JlbGVhc2UoJndpbmZvLT5zaGFyZWQtPm11dGV4KTsNCj4gDQo+IEl0J3MgcHJhY3RpY2FsbHkg bm8gcHJvYmxlbSBidXQgaXMgdGhlcmUgYW55IHJlYXNvbiB3aHkgc29tZSBmaWVsZHMgb2YNCj4g UGFyYWxsZWxBcHBseVdvcmtlckluZm8gYXJlIGluaXRpYWxpemVkIGluIHBhX3NldHVwX2RzbSgp IHdoZXJlYXMgc29tZQ0KPiBmaWVsZHMgYXJlIGRvbmUgaGVyZT8NCg0KV2UgY291bGQgYmUgdXNp bmcgb2xkIHdvcmtlciBpbiB0aGUgcG9vbCBoZXJlIGluIHdoaWNoIGNhc2Ugd2UgbmVlZCB0byB1 cGRhdGUNCnRoZXNlIGZpZWxkcyB3aXRoIHRoZSBuZXcgc3RyZWFtaW5nIHRyYW5zYWN0aW9uIGlu Zm9ybWF0aW9uLg0KDQpJIHdpbGwgYWRkcmVzcyBvdGhlciBjb21tZW50cyBleGNlcHQgYWJvdmUg b25lcyB3aGljaCBhcmUgYmVpbmcgZGlzY3Vzc2VkLg0KDQpCZXN0IHJlZ2FyZHMsDQpIb3UgemoN Cg0K