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 1oYhLk-0007VF-Gb for pgsql-hackers@arkaria.postgresql.org; Thu, 15 Sep 2022 05:23:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oYhLj-0008Dn-CY for pgsql-hackers@arkaria.postgresql.org; Thu, 15 Sep 2022 05:23:43 +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 1oYhLj-0008DH-0k for pgsql-hackers@lists.postgresql.org; Thu, 15 Sep 2022 05:23:43 +0000 Received: from esa1.fujitsucc.c3s2.iphmx.com ([68.232.152.245]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oYhLg-0007Id-5L for pgsql-hackers@lists.postgresql.org; Thu, 15 Sep 2022 05:23:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1663219420; x=1694755420; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=7iGArzUgtFUgaucYzajIBwZXO4UGEhk26YMUpWRZL20=; b=vjgJRnKKedBFyYyQpZh4qtrijLa6jBcXQUxILt1aGJzna7+RiX3IShrs A3SB07dK2FPtFmRbGDe+2HBGGTyyo1BuMaXR7y7NxcnOx22xV5no2PMHB vgxIq/tZPXo5HPyHuUkABgCcutspBXua2ZuGcs85kVhEqfe7GpV+jWweA RIMj9p1r3v9eNZ4EFGFIudI91enF9Doe3CC1ttpgMsjNXhY0ovDSTtBfI 6HnBzEikFP79H/ww354dC/hZilHIi0fc8OqASyoWsIa4oxLUWVGPGSoba TN4eY4OCn0JC4UpNY9+Pma5WBB0aPp3okcjdiyJQkY1CK2dmS8Mk4E64E A==; X-IronPort-AV: E=McAfee;i="6500,9779,10470"; a="73388426" X-IronPort-AV: E=Sophos;i="5.93,317,1654527600"; d="scan'208";a="73388426" Received: from mail-os0jpn01lp2109.outbound.protection.outlook.com (HELO JPN01-OS0-obe.outbound.protection.outlook.com) ([104.47.23.109]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Sep 2022 14:23:37 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cygyzs4TGIPSxuGmVf8iFSOa7BBXbkJaXEN0VaJXqD0H0xizhg9c/peYU8zzowyRVZQCuW+RKsKrWkZzJQylX7ukIxYR3gDwUbbF8gqD8f/vx4FK6pCHt/g6ZDJN3bZh09zlHgWEzmOVnHybNIq3lE4JFFS5DjxFKfbtS48BZbOBC9SL4wTBW+UL/XZKrx8qbUKhz/3R2+fx0TfBuQDErIOdiSjEgDr5xhTd04ueyB7dn8hd4QfO4/hAoYo2nGZSQg6sc8xFgxOJ59MYrS+2n7S0T4VdX8fuSaROmzGxKk213MZHOmrlR/9EdxJacg+pIfDFrXF9tHqzgeDQmkBbLg== 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=7iGArzUgtFUgaucYzajIBwZXO4UGEhk26YMUpWRZL20=; b=j18cK3OeokbA6DWzp60aC9FftuEjYFHhprhvfUpHSU1yiGsWwOgPa2NiqxhoQHOu+oe1sjhn+9viWl+KhgqYWBkYM6J7ulkIs+1RL74OR2vL+D1+JV2y0+bfVlxpjxs8G/DsWDPVHgwiRcbwi+C36j/LN7KMAGeVXuR8vuyfZdd9ooPHS7xliTKR5zeJIT52X2HeRWR1MMk2NF2g6YA9pvTcgu/4lAbaNoXIBFwmufdT3qXyK+D0ChwoZ6MgQIY+xeyaR7F+boUubPJKHqGHcjAi7tlWjzPhN5K5099eTjvhWW2YPCl/41uMqjrwxloJJLzbFrMHvy9EUdV/uTSB5w== 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 OS3PR01MB6275.jpnprd01.prod.outlook.com (2603:1096:604:f1::8) by OS3PR01MB10251.jpnprd01.prod.outlook.com (2603:1096:604:1e1::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5632.14; Thu, 15 Sep 2022 05:23:34 +0000 Received: from OS3PR01MB6275.jpnprd01.prod.outlook.com ([fe80::d059:c042:fb67:b727]) by OS3PR01MB6275.jpnprd01.prod.outlook.com ([fe80::d059:c042:fb67:b727%4]) with mapi id 15.20.5612.022; Thu, 15 Sep 2022 05:23:34 +0000 From: "wangw.fnst@fujitsu.com" To: "kuroda.hayato@fujitsu.com" , "houzj.fnst@fujitsu.com" CC: Peter Smith , Dilip Kumar , Masahiko Sawada , "shiy.fnst@fujitsu.com" , PostgreSQL Hackers , Amit Kapila 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: AQHYSXX4/sKYGv3sJE+7a/aZxbuwx6zlvxQAgAkRYICACBI2gIABs50AgAA5UwCAApvIgIAFAGuAgAXc1wCAADa7gIALO/aAgAsRZICAB606AIAS9tXQgAAv04CAAWQLgIABHxKAgAA3o4CAAd7v0IAJQDLggAkyO+CAAiLMAIAC0M5ggARwU4CABP8UAIAAGBkAgAd/49CABPEVgIAJO7xggABuopCACQ1GAIAJSjQggAS+3MCABq/QgIABSJUAgAAOtoCAACmRgIAB78qAgAqLjwCADJX8gIAGVWBQgAGA7xCAAesqgIABYRWAgAgvEYCAAWyzgIAGSRYAgAFBqICAAFYagIABchmAgAGqzwCAATq/gIAFJCcAgAAGs4CACtzhAIABpGsAgAK1ClA= Date: Thu, 15 Sep 2022 05:23:34 +0000 Message-ID: References: In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: =?utf-8?B?TVNJUF9MYWJlbF9hNzI5NWNjMS1kMjc5LTQyYWMtYWI0ZC0zYjBmNGZlY2Uw?= =?utf-8?B?NTBfQWN0aW9uSWQ9Y2Q0ZTI1MjMtMzY1NC00MWUxLTg2YTMtYmY3Nzk1MjVj?= =?utf-8?B?OGQ3O01TSVBfTGFiZWxfYTcyOTVjYzEtZDI3OS00MmFjLWFiNGQtM2IwZjRm?= =?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?ZWNlMDUwX1NldERhdGU9MjAyMi0wOS0wNVQwNzoyMTo1Nlo7TVNJUF9MYWJl?= =?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: OS3PR01MB6275:EE_|OS3PR01MB10251:EE_ x-ms-office365-filtering-correlation-id: f6e6753d-e30a-45d3-1da0-08da96da6f70 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: lrFInPpxRshVIZJXkFN9m9iPhfEPQNmpbhjWdgxDFGuek28sMwXjOeZ8woKA1WjN4FQvOheFCiKlead+FPhNtdCC2khK73wEpIhCFwRjpwsGfVqtNLSN1/E0yA0oL14qQaGhpMiCuD6staVyhLYM3w/ak+baX9w4Aaj3m8jfktD+a/R0zW8DUL1BcVn+ufJK8dAmNngXP+nmo3v5T+3T6bwyojkAdZwH9Jhg2jTwyHd3Fr5SUfhnkoeCiNrMpeFb4ge01GhT4M9oysnEwUu9AGQOqPNSypZCBgYFSwmliCUTQh+7R8mmQ2iiCsAyj9VAF5XWojWrSqvK0mm83ozEyIvjuNchmBZqxuRIji8b4Q8i4LoyorCcDIDUbqwAphwg5Ltii5r0//IDyOghtfYf3Taa3O8m9sBTqEiu6+F0sd/pAw6BRt/2baubicdMIWAcI/zL0I1sZsSk9RJAMc4b8+btWK2sXUY3c9j5vV6SyCVV1dlvwg3vdJeVFcq7ic3uMroMbun7nTjKsBHxvtP1IKKFVRHqH20k/oeNf6ViiJx71ZY+0SDxih1YrrrXizaoNQUbqAPawHNIb1Sz6WyPODuKQmCeh3ZnwPVc1mBHKTtfkRiAxR1v7+U11VOro7ENgmOL6MytslwHT4J47L3aP2+tIRiKKqiE/KFTAFAHrBkj9yU0TP0t0ZNxvxiFVqL5jw8jlq0/1rt5INEvBp5Xwf5tFNbLH10OH0FoPyK2grUrXg82wHlKto3oLBDsxK+EzEVWb15j/u2JC+JnqTlRjZkar54tjFVVFgHurswe0F4g12gtkdSjKr0zXu2iqp3XhyQlYCg4ZXEP09/oJsBkX57IW5T34iweQvzOXQvrXUA= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS3PR01MB6275.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(366004)(376002)(39860400002)(396003)(346002)(136003)(451199015)(1590799012)(83380400001)(186003)(82960400001)(38100700002)(38070700005)(122000001)(5660300002)(2906002)(8936002)(4326008)(8676002)(52536014)(55016003)(66446008)(71200400001)(966005)(478600001)(26005)(41300700001)(6506007)(7696005)(64756008)(66556008)(9686003)(316002)(66476007)(66946007)(45080400002)(6636002)(110136005)(54906003)(1580799009)(76116006)(85182001)(33656002)(86362001)(366874004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RDdKMStrWTV6V3RWYndVTmx3SkZTMXY1djJYYzZwTWNENmJ3UU9rSjQ5UTRM?= =?utf-8?B?V0pzaTBRSFZydG91dDVldStFN3NUNHkvZlRmbFpKRHhkZGRIVnJicDNwNHRv?= =?utf-8?B?ajdCcDdGczJJeDM0UWhDNnZ5OEUxZ3djR1E2aHo0UTFEbnJYaXYyS3JwTnF2?= =?utf-8?B?VXI4em1XTWlDb0o2dUV0ZFJxcjlmRUtVbWRSQmhDcFcySEZRZ1Fva2N6ditW?= =?utf-8?B?R3E4cVhIOHYzRm5pbVo0eHFlL1E0b0JQK1pjbngvWldHMFByYkhzUTI0MldK?= =?utf-8?B?ak5Mbk0venZyU0FRVW1JNWFoYUFNQk5pekJWNkQyNFVubVlXSXgwNXltVlQ5?= =?utf-8?B?d0lJRjR1Qm1IN01DeHQzUjBkdW1INDAyNHl5emZlUGZCdVp5K0hzY2lQQ1lm?= =?utf-8?B?YTFJZGpjN0RGVDRCZitIaXdWcVJFaGNVeFV1N1Bmd3pMdE5Velk0VWVrNGh0?= =?utf-8?B?b1BUd255S0twNnliRWtwWkx3cFBEcFVZM0JUSmVNWDhRbW1ZVWQ0clVybUkr?= =?utf-8?B?REgwZkRsT3JrVVE3MnQvb2U1WWVCYm1FWVhtTUp6WUNTTjhmTTNNWmEvbXI3?= =?utf-8?B?ZWw2TUVsaFVzUmE5a3lZS2Z5d01wSU1CbmxMajVGa0NCb2tHdkJwcTJzaEtn?= =?utf-8?B?YWtZcEcrNDR3VVNOdzl6VHJMcm85SklPNW94dmpXZnNxalpEZ3l1dWVXQ29S?= =?utf-8?B?WFRwc1Q3OGNMaVdmWStDb3ZFWWY0cEJCWjBtWm84OS91TzQybEZsMEFvbmlT?= =?utf-8?B?NytFb0g1cDZtT1RkdmdNbjduTVNEMFJpR3RwKzRGZjNYYWN5RENBOTdTbDJw?= =?utf-8?B?VFVBT2lJbk5Ia25OT1I3TThKWklrYlBPbitvekZKQ3NEdjcvV2QwbmlsbHRJ?= =?utf-8?B?UnMyRFBxd0VWNXd2bmtMcHdBcVZmQldET012QVVKdmx2dkNlYUl0SUZPaUta?= =?utf-8?B?b0E2a3M0VTdFY3lUTm01WFRQM2ozeTB5aUEvTjJqNmE3aXA2K1BpTWNGNDhr?= =?utf-8?B?SFRpaVNPSjNFNXA5UlZ3QjQ0OU1ycTJnM2IwOW9tNUJlWGNyUWJ4cDgzcHJW?= =?utf-8?B?azNKcmZoN0g3Z1NuUDUwV0FYTHk0NlhRT2ViUEFhaWJYZVFiSjJBQUcxKzE1?= =?utf-8?B?dm9MeWFPWENDeW16MHlEMFFtYXNJNjk4TEl2MWF4bXpFZ3NlTEtMN1drRWRn?= =?utf-8?B?Z08wWkh0bG1EQjM1NUp5QW13eURaUmJTTHRpblRiektNMGN4Wk9vYk9qNjZw?= =?utf-8?B?dHd6ZmNsbDBFQ3FZVzNFY1ZpRHp4WW9LYW1iT2tNa0dhb0xNVzg1ZVQ2YllN?= =?utf-8?B?OEdkUHlLT2pZYmdrUGVlUUplZEpZT0JSc3YweHZLbU4vNWFnMjhrNVVnQWxL?= =?utf-8?B?WnY1RS9GY1Q1RWppS0pUVVREMTNHV1JWYm1raG9YT3hUTkJJUU4rQ2pYaUxx?= =?utf-8?B?SDlTcjlzOW9leFZXL1VRZGgrZ212aEVJU3Zoa0NsOHBRNXgyNXJWa0RTMk9y?= =?utf-8?B?SThSbGVRVER1d0wyNE9tS0g4NG1VTGxqTmdnSnFqeWM5S2F6eW9Md3FvclpI?= =?utf-8?B?STA4b05hYmVzSENwaElIRzRVVlNrdHFIQ2YxendBZVBEZDZwMmE0ZDY2ZVV0?= =?utf-8?B?ZnNCMUZJcGN4RmVyZkZlZ1NQN0lzbjZRY050K2QyelJ0a0QzWmpNUHVOZkE4?= =?utf-8?B?RVFpYXRmMWhJUGxaTnpTdml3c09HYXVjN2w2UnowZFU4Q2RaYmNUNW5ZQ09i?= =?utf-8?B?c0MwYUtwOHpjRlJjWklIdHRZMEFEa1pyT0EraGZHQmJnYjlJZkl3OEZDWVk2?= =?utf-8?B?MGJlcjBWTUVwS0U5YWZkeStCbktLNC9BenhLOG01QUFaeklTM1VEQWRacnZD?= =?utf-8?B?OTdjQlZya0h5ci82WGkrVDVLanJjYTdmcjJvcmJkdU96ZXk3N0lQNElUcDR1?= =?utf-8?B?a25ZUkExNUFTZ3Q4MkR1UXFJcUUrSGI1aCsrQWlNR2F4YXlMNnB1WmRWY0VC?= =?utf-8?B?YUt2SHNjcWZYVWNlMGVNbDlVaW9oWWMwNUJRcjZ0WUZyek56emtPOEQxZVFn?= =?utf-8?B?RUJkdWxMMWZjSW5KMGdOMWJ5VkpQM0VlOU1iTjZFOUFOREpRSUJxa01kTXdr?= =?utf-8?Q?0B8H1mNLAnUz6MN2Nrwv3q27R?= 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: OS3PR01MB6275.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f6e6753d-e30a-45d3-1da0-08da96da6f70 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Sep 2022 05:23:34.2376 (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: YIl24SlDJRDl6s7bZJeRl/gaDWj2c5NAcy8Xe3f6gl7qK/p6QQ71evbGl1Bk1WBuGshG61CwgKAvYZflBY/2Lg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB10251 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk T24gVHVlcywgU2VwIDEzLCAyMDIyIGF0IDIwOjAyIFBNIEt1cm9kYSwgSGF5YXRvL+m7kueUsCDp mrzkurogPGt1cm9kYS5oYXlhdG9AZnVqaXRzdS5jb20+IHdyb3RlOg0KPiBEZWFyIEhvdS1zYW4s DQo+IA0KPiA+IEkgd2lsbCBkaWcgeW91ciBwYXRjaCBtb3JlLCBidXQgSSBzZW5kIHBhcnRpYWxs eSB0byBrZWVwIHRoZSBhY3Rpdml0eSBvZiB0aGUgdGhyZWFkLg0KPiANCj4gTW9yZSBtaW5vciBj b21tZW50cyBhYm91dCB2MjguDQoNClRoYW5rcyBmb3IgeW91ciBjb21tZW50cy4NCg0KPiA9PT0N Cj4gQWJvdXQgMDAwMg0KPiANCj4gRm9yIDAxNV9zdHJlYW0ucGwNCj4gDQo+IDE0LiBjaGVja19w YXJhbGxlbF9sb2cNCj4gDQo+IGBgYA0KPiArIyBDaGVjayB0aGUgbG9nIHRoYXQgdGhlIHN0cmVh bWVkIHRyYW5zYWN0aW9uIHdhcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5DQo+ICsjIHJlcG9ydGVk IGJ5IHBhcmFsbGVsIGFwcGx5IHdvcmtlci4NCj4gK3N1YiBjaGVja19wYXJhbGxlbF9sb2cNCj4g K3sNCj4gKyAgICAgICBteSAoJG5vZGVfc3Vic2NyaWJlciwgJG9mZnNldCwgJGlzX3BhcmFsbGVs KT0gQF87DQo+ICsgICAgICAgbXkgJHBhcmFsbGVsX21lc3NhZ2UgPSAnZmluaXNoZWQgcHJvY2Vz c2luZyB0aGUgdHJhbnNhY3Rpb24gZmluaXNoDQo+IGNvbW1hbmQnOw0KPiArDQo+ICsgICAgICAg aWYgKCRpc19wYXJhbGxlbCkNCj4gKyAgICAgICB7DQo+ICsgICAgICAgICAgICAgICAkbm9kZV9z dWJzY3JpYmVyLT53YWl0X2Zvcl9sb2cocXIvJHBhcmFsbGVsX21lc3NhZ2UvLCAkb2Zmc2V0KTsN Cj4gKyAgICAgICB9DQo+ICt9DQo+IGBgYA0KPiANCj4gSSB0aGluayBjaGVja19wYXJhbGxlbF9s b2coKSBzaG91bGQgYmUgY2FsbGVkIG9ubHkgd2hlbiBzdHJlYW1pbmcgPSAncGFyYWxsZWwnIGFu ZA0KPiBpZi1zdGF0ZW1lbnQgaXMgbm90IG5lZWRlZA0KDQpJIHdhbnRlZCB0byBtYWtlIHRoZSBm dW5jdGlvbiB0ZXN0X3N0cmVhbWluZyBsb29rIHNpbXBsZXIsIHNvIEkgcHV0IHRoZQ0KY2hlY2tp bmcgb2YgdGhlIHN0cmVhbWluZyBvcHRpb24gaW5zaWRlIHRoZSBmdW5jdGlvbiBjaGVja19wYXJh bGxlbF9sb2cuDQoNCj4gRm9yIDAxNl9zdHJlYW1fc3VieGFjdC5wbA0KPiANCj4gMTUuIHRlc3Rf c3RyZWFtaW5nDQo+IA0KPiBgYGANCj4gKyAgICAgICBJTlNFUlQgSU5UTyB0ZXN0X3RhYiBTRUxF Q1QgaSwgbWQ1KGk6OnRleHQpIEZST00gZ2VuZXJhdGVfc2VyaWVzKCAgICAzLA0KPiA1MDApIHMo aSk7DQo+IGBgYA0KPiANCj4gIiAgICAzIiBzaG91bGQgYmUgIjMiLg0KDQpJbXByb3ZlZC4NCg0K PiBBYm91dCAwMDAzDQo+IA0KPiBGb3IgYXBwbHlwYXJhbGxlbHdvcmtlci5jDQo+IA0KPiAxNi4g cGFyYWxsZWxfYXBwbHlfcmVsYXRpb25fY2hlY2soKQ0KPiANCj4gYGBgDQo+ICsgICAgICAgaWYg KHJlbC0+cGFyYWxsZWxfYXBwbHlfc2FmZSA9PSBQQVJBTExFTF9BUFBMWV9TQUZFVFlfVU5LTk9X TikNCj4gKyAgICAgICAgICAgICAgIGxvZ2ljYWxyZXBfcmVsX21hcmtfcGFyYWxsZWxfYXBwbHko cmVsKTsNCj4gYGBgDQo+IA0KPiBJIHdhcyBub3QgY2xlYXIgd2hlbiBsb2dpY2FscmVwX3JlbF9t YXJrX3BhcmFsbGVsX2FwcGx5KCkgaXMgY2FsbGVkIGhlcmUuDQo+IElJVUMgcGFyYWxsZWxfYXBw bHlfcmVsYXRpb25fY2hlY2soKSBpcyBjYWxsZWQgd2hlbiBwYXJhbGxlbCBhcHBseSB3b3JrZXIN Cj4gaGFuZGxlcyBjaGFuZ2VzLA0KPiBidXQgYmVmb3JlIHRoYXQgcmVsYXRpb24gaXMgb3BlbmVk IHZpYSBsb2dpY2FscmVwX3JlbF9vcGVuKCkgYW5kDQo+IHBhcmFsbGVsX2FwcGx5X3NhZmUgaXMg c2V0IGhlcmUuDQo+IElmIGl0IGd1YXJkcyBzb21lIHByb3RvY29sIHZpb2xhdGlvbiwgd2UgbWF5 IHVzZSBBc3NlcnQoKS4NCg0KQ29tcGFyZWQgd2l0aCB0aGUgZmxhZyAibG9jYWxyZWx2YWxpZCIs IHdlIGFsc28gbmVlZCB0byBhZGRpdGlvbmFsbHkgcmVzZXQgdGhlDQpmbGFnICJzYWZldHkiIHdo ZW4gZnVuY3Rpb24gYW5kIHR5cGUgYXJlIGNoYW5nZWQgKHNlZSBmdW5jdGlvbg0KbG9naWNhbHJl cF9yZWxtYXBfaW5pdCkuIFNvIEkgdGhpbmsgZm9yIHRoZXNlIHR3byBjYXNlcywgd2UganVzdCBu ZWVkIHRvIHJlc2V0DQp0aGUgZmxhZyAic2FmZXR5IiB0byBhdm9pZCByZWJ1aWxkaW5nIHRvbyBt dWNoIGNhY2hlIChzZWUgZnVuY3Rpb24NCmxvZ2ljYWxyZXBfcmVsbWFwX3Jlc2V0X3BhcmFsbGVs X2NiKS4NCg0KPiBGb3IgY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sDQo+IA0KPiAxNy4NCj4gVGhl IHJlc3RyaWN0aW9uIGFib3V0IGZvcmVpZ24ga2V5IGRvZXMgbm90IHNlZW0gdG8gYmUgZG9jdW1l bnRlZC4NCg0KSSByZW1vdmVkIHRoZSBjaGVjayBmb3IgdGhlIGZvcmVpZ24ga2V5Lg0KDQpTaW5j ZSBmb3JlaWduIGtleSBkb2VzIG5vdCB0YWtlIGVmZmVjdCBpbiB0aGUgc3Vic2NyaWJlcidzIGFw cGx5IHdvcmtlciBieQ0KZGVmYXVsdCwgaXQgc2VlbXMgdGhhdCBmb3JlaWduIGtleSBkb2VzIG5v dCBoaXQgdGhpcyBFUlJPUiBmcmVxdWVudGx5LiANCklmIHdlIHNldCBmb3JlaWduIGtleSByZWxh dGVkIHRyaWdnZXIgdG8gIlJFUExJQ0EiLCB0aGVuLCBJIHRoaW5rIHRoaXMgZmxhZw0Kd2lsbCBi ZSBzZXQgdG8gInVuc2FmZXR5IiB3aGVuIGNoZWNraW5nIG5vbi1pbW11dGFibGUgZnVuY3Rpb24g dWVzZCBieSB0cmlnZ2VyLg0KDQpCVFcsIEkgb25seSBkb2N1bWVudCB0aGlzIHJlYXNvbiBpbiB0 aGUgY29tbWl0IG1lc3NhZ2UgYW5kIGtlZXAgdGhlIGZvcmVpZ24ga2V5DQpyZWxhdGVkIHRlc3Rz Lg0KDQo+ID09PQ0KPiBBYm91dCAwMDA0DQo+IA0KPiBGb3IgMDE1X3N0cmVhbS5wbA0KPiANCj4g MTguIGNoZWNrX3BhcmFsbGVsX2xvZw0KPiANCj4gSSBoZWFyZCB0aGF0IHRoZSByZW1vdmFsIGhh cyBiZWVuIHJldmVydGVkLCBidXQgaW4gdGhlIHBhdGNoDQo+IGNoZWNrX3BhcmFsbGVsX2xvZygp IGlzIHJlbW92ZWQgYWdhaW4uLi4gOi0oDQoNClllcywgSSByZW1vdmVkIGl0Lg0KSSB0aGluayB0 aGlzIHdpbGwgbWFrZSB0aGUgdGVzdCB1bnN0YWJsZS4gQmVjYXVzZSBhZnRlciBhcHBseWluZyBw YXRjaA0KMDAwNCwgd2UgY291bGQgbm90IHN1cmUgd2hldGhlciB0aGUgdHJhbnNhY3Rpb24gaXMg Y29tcGxldGVkIGluIGEgcGFyYWxsZWwNCmFwcGx5IHdvcmtlci4gSWYgYW55IHVuZXhwZWN0ZWQg ZXJyb3Igb2NjdXJzLCB0aGUgdGVzdCB3aWxsIGZhaWwgYmVjYXVzZSB0aGUNCmxvZyBjYW5ub3Qg YmUgZm91bmQsIGV2ZW4gaWYgdGhlIHRyYW5zYWN0aW9uIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHku IA0KDQo+ID09PQ0KPiBBYm91dCB0aHJvdWdob3V0DQo+IA0KPiBJIGNoZWNrZWQgdGhlIHRlc3Qg Y292ZXJhZ2UgdmlhIGBtYWtlIGNvdmVyYWdlYC4gQWJvdXQgYXBwbHVwYXJhbGxlbHdvcmtlci5j DQo+IGFuZCB3b3JrZXIuYywgYm90aCBmdW5jdGlvbiBjb3ZlcmFnZSBpcyAxMDAlLCBhbmQNCj4g bGluZSBjb3ZlcmFnZXMgYXJlIDg2LjIgJSBhbmQgOTQuNSAlLiBHZW5lcmFsbHkgaXQncyBnb29k Lg0KPiBCdXQgSSByZWFkIHRoZSByZXBvcnQgYW5kIGZvbGxvd2luZyBwYXJ0cyBzZWVtcyBub3Qg dGVzdGVkLg0KPiANCj4gSW4gcGFyYWxsZWxfYXBwbHlfc3RhcnRfd29ya2VyKCk6DQo+IA0KPiBg YGANCj4gCQlpZiAodG1wX3dpbmZvLT5lcnJvcl9tcV9oYW5kbGUgPT0gTlVMTCkNCj4gCQl7DQo+ IAkJCS8qDQo+IAkJCSAqIFJlbGVhc2UgdGhlIHdvcmtlciBpbmZvcm1hdGlvbiBhbmQgdHJ5IG5l eHQgb25lIGlmDQo+IHRoZSBwYXJhbGxlbA0KPiAJCQkgKiBhcHBseSB3b3JrZXIgZXhpdGVkIGNs ZWFubHkuDQo+IAkJCSAqLw0KPiAJCQlQYXJhbGxlbEFwcGx5V29ya2Vyc0xpc3QgPQ0KPiBmb3Jl YWNoX2RlbGV0ZV9jdXJyZW50KFBhcmFsbGVsQXBwbHlXb3JrZXJzTGlzdCwgbGMpOw0KPiAJCQlz aG1fbXFfZGV0YWNoKHRtcF93aW5mby0+bXFfaGFuZGxlKTsNCj4gCQkJZHNtX2RldGFjaCh0bXBf d2luZm8tPmRzbV9zZWcpOw0KPiAJCQlwZnJlZSh0bXBfd2luZm8pOw0KPiAJCX0NCj4gYGBgDQo+ IA0KPiBJbiBIYW5kbGVQYXJhbGxlbEFwcGx5TWVzc2FnZSgpOg0KPiANCj4gYGBgDQo+IAkJY2Fz ZSAnWCc6CQkJCS8qIFRlcm1pbmF0ZSwgaW5kaWNhdGluZw0KPiBjbGVhbiBleGl0ICovDQo+IAkJ CXsNCj4gCQkJCXNobV9tcV9kZXRhY2god2luZm8tPmVycm9yX21xX2hhbmRsZSk7DQo+IAkJCQl3 aW5mby0+ZXJyb3JfbXFfaGFuZGxlID0gTlVMTDsNCj4gCQkJCWJyZWFrOw0KPiAJCQl9DQo+IGBg YA0KPiANCj4gRG9lcyBpdCBtZWFuIHRoYXQgd2UgZG8gbm90IHRlc3QgdGhlIHRlcm1pbmF0aW9u IG9mIHBhcmFsbGVsIGFwcGx5IHdvcmtlcj8gSWYgc28gSQ0KPiB0aGluayBpdCBzaG91bGQgYmUg dGVzdGVkLg0KDQpTaW5jZSB0aGlzIGlzIGFuIHVuZXhwZWN0ZWQgc2l0dWF0aW9uIHRoYXQgY2Fu bm90IGJlIHJlcHJvZHVjZWQgMTAwJSwgd2UgZGlkDQpub3QgYWRkIHRlc3RzIHJlbGF0ZWQgdG8g dGhpcyBwYXJ0IG9mIHRoZSBjb2RlIHRvIGltcHJvdmUgY292ZXJhZ2UuDQoNClRoZSBuZXcgcGF0 Y2hlcyB3ZXJlIGF0dGFjaGVkIGluIFsxXS4NCg0KWzFdIC0gaHR0cHM6Ly93d3cucG9zdGdyZXNx bC5vcmcvbWVzc2FnZS1pZC9PUzNQUjAxTUI2Mjc1RjE0NTg3OEI0QTQ0NTg2QzQ2Q0U5RTQ5OSU0 ME9TM1BSMDFNQjYyNzUuanBucHJkMDEucHJvZC5vdXRsb29rLmNvbQ0KDQpSZWdhcmRzLA0KV2Fu ZyB3ZWkNCg0K