Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sLzkN-0004oU-Pr for pgsql-hackers@arkaria.postgresql.org; Tue, 25 Jun 2024 06:33:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1sLzkM-00EAHK-3D for pgsql-hackers@arkaria.postgresql.org; Tue, 25 Jun 2024 06:33:42 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sLzkL-00EAHA-L4 for pgsql-hackers@lists.postgresql.org; Tue, 25 Jun 2024 06:33:42 +0000 Received: from mx05.melco.co.jp ([192.218.140.145]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sLzkH-003QtX-3c for pgsql-hackers@postgresql.org; Tue, 25 Jun 2024 06:33:39 +0000 Received: from mr05.melco.co.jp (mr05 [133.141.98.165]) by mx05.melco.co.jp (Postfix) with ESMTP id 4W7Zlw6hPbzMt5v2; Tue, 25 Jun 2024 15:33:32 +0900 (JST) Received: from mr05.melco.co.jp (unknown [127.0.0.1]) by mr05.imss (Postfix) with ESMTP id 4W7Zlw69fnzMqtlS; Tue, 25 Jun 2024 15:33:32 +0900 (JST) Received: from mf04_second.melco.co.jp (unknown [192.168.20.184]) by mr05.melco.co.jp (Postfix) with ESMTP id 4W7Zlw5rgFzMrVVX; Tue, 25 Jun 2024 15:33:32 +0900 (JST) Received: from mf04.melco.co.jp (unknown [133.141.98.184]) by mf04_second.melco.co.jp (Postfix) with ESMTP id 4W7Zlw5nhfzMrvyC; Tue, 25 Jun 2024 15:33:32 +0900 (JST) Received: from JPN01-OS0-obe.outbound.protection.outlook.com (unknown [104.47.23.105]) by mf04.melco.co.jp (Postfix) with ESMTP id 4W7Zlw5Q0gzMrvy2; Tue, 25 Jun 2024 15:33:32 +0900 (JST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NKqqC+9J1chvtc/jWRi9mVPCSdaLcpziHyB9B057uBW00QB2hHxoS6FxeRc4mJBM9zWlikzYJoIKl4wC1Jko6PZfIXXF4Nr4wD7zI3VBNgJy2ON5PmtplyMSciqHPUteAVXDAIy3H/2nCLJxJfOacLtC4JxKgzqR6yqtfMFAN9dY+rVLGh2vuMzPBb+uMfSZNZtZoATOiPkiqYTvWfkhqvYgnlxbWsu7FBe6I01jWCXWRdkzrfX7ETwg+pArZJ3oYmjd3V9ZLHh6zxUczi9+DWNrbMCdkrv5mYOv2qHWSlaQR/OTZlUAgbvc1n920H4G9tUsbMSRcbAbt37RetoWag== 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=iPnoMOgJdjuD2jxnEelqgFWqCBVk5IX2QY9QvITyctM=; b=ZP5tUVGJlE+kEw7nVz415eaHK5/B0JFHFCbJPx/LXu5jr+so2eSE+GHKNCEjp+efsR+vBbS8vyrWFm6nXqCn5oWks/2+Sa0aGaYyNwxfv8fP1CJiXOgGpGuopKwdDhI+CHJ35Y0KaugsyHdGFHmiDC3x2rSOAg3/xLaBBHOB2a/HtDV9RlwO758Q463thDEyVmeaLZWDVkgDule1rEr5IkaphqN+hwXzd8yzHaGP2FwFP9nsL3FT4F8MXgq908atE83sLy7tbx5JkTzfPiZaF62C3Adgdy2UpC67g4QbP7Y4pc+h+80pi9ugUFdgIfHG2jrBppZ18gknleF2wapIfw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=df.mitsubishielectric.co.jp; dmarc=pass action=none header.from=df.mitsubishielectric.co.jp; dkim=pass header.d=df.mitsubishielectric.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mitsubishielectricgroup.onmicrosoft.com; s=selector2-mitsubishielectricgroup-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iPnoMOgJdjuD2jxnEelqgFWqCBVk5IX2QY9QvITyctM=; b=JWnxfSg74UrKbSCj3BDm0b2a24eDzBJEQSy1u2bvMEdM7EIcdJAzBUm08RX1Lg+rPKFeW3SA3Hgu6Ry5WADM8LKJL2MHP4Dt3skwgoVvmG+7XZVQncuaVBXxEhrJMA3WCzCIkgQY38NuWAx2HrO3Oh/UKXk4ep4fz4XfKEZbIfI= Received: from TY2PR01MB3835.jpnprd01.prod.outlook.com (2603:1096:404:dd::10) by OSZPR01MB7746.jpnprd01.prod.outlook.com (2603:1096:604:1b2::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.30; Tue, 25 Jun 2024 06:33:30 +0000 Received: from TY2PR01MB3835.jpnprd01.prod.outlook.com ([fe80::3415:fa3:49b8:5e7e]) by TY2PR01MB3835.jpnprd01.prod.outlook.com ([fe80::3415:fa3:49b8:5e7e%4]) with mapi id 15.20.7698.025; Tue, 25 Jun 2024 06:33:30 +0000 From: "Fujii.Yuki@df.MitsubishiElectric.co.jp" To: Jelte Fennema-Nio , PostgreSQL-development CC: Bruce Momjian , Robert Haas , Tom Lane , Stephen Frost , Andres Freund , Tomas Vondra , Julien Rouhaud , Daniel Gustafsson , vignesh C , Alexander Pyhalov , "Fujii.Yuki@df.MitsubishiElectric.co.jp" Subject: RE: Partial aggregates pushdown Thread-Topic: Partial aggregates pushdown Thread-Index: AQHaZV+FhOOC+4jqD0O6QaSNENpP/LEfzV+AgBnxJJCADnsVgIAB3niAgATs94CAXSjd0IAMTAEAgADLHwCAAJLNgIAJQrjwgAAp5wCAAQFMEIAALTSAgBFC0CCAAavCAIAAGn1QgACpMoCAAEuzIA== Date: Tue, 25 Jun 2024 06:33:07 +0000 Deferred-Delivery: Tue, 25 Jun 2024 06:32:24 +0000 Message-ID: References: <31ab8f7b91cef6e837b3e31ea1e35a9a@postgrespro.ru> In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: X-MS-TNEF-Correlator: x-melpop: 1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=df.MitsubishiElectric.co.jp; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TY2PR01MB3835:EE_|OSZPR01MB7746:EE_ x-ms-office365-filtering-correlation-id: 7e60c0a2-b486-4dc9-5b57-08dc94e0bab6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230037|7416011|376011|366013|1800799021|38070700015; x-microsoft-antispam-message-info: =?utf-8?B?TkdRbE4yY1E5Z1BSUm5EMEFNMk5DRVJHdUxNZzUzSzNJQm9YYXdrOURMS29i?= =?utf-8?B?S1lxTUtJeEVvV0pyMkczRHkxOEowbVpraitLb2J6cWhxRCs5QmFWSGc3TGtO?= =?utf-8?B?QVVsZ1lWK2diK3ZvYm9nMGVQbXI2ZVFVNHZhZDYra2l4dzVGMWNneU55WWlr?= =?utf-8?B?RDFkNk51QUduczdSRnQ5K0Y3TzFkcU5xZHJuYU5vekUzd1EvSVVud0YvV0Nk?= =?utf-8?B?WGFIdmFRamt3SzlTR3BSWnRoZC9CQXludU5GYXAvdnhKL3pxR2Z5RmRqaVAw?= =?utf-8?B?NmIzQjI0YTdnbjc3RFFpK0Q5RURiZ1N2Y0tuV1h2bkExdXV3SE5jRS9VNUY3?= =?utf-8?B?R0U5SDhsUFhiZVNSdjNTbmY2RTJBQjlmTGhYN2g0ZVBLR1lDU1lIVWQrSy9K?= =?utf-8?B?L24yTFgzOGJBZUVlWTkxSTRrNFpTdkpYUjZ5T0ZsSGIxQjVrTitJMmczdFdV?= =?utf-8?B?eHk3anVyc1RZNllIclY5Um5LRkVpRnM5MkpIdW5lbnVJbnVBL2xPL3MwaHpv?= =?utf-8?B?U051SGRuZk1NZVVxRUpKU1FTSjlaOU1MYkUrMXJQN3cyQ0t1aWVUbVJ3S3Bq?= =?utf-8?B?OHJLbmljNjFCdUs5WitFUkNkdGdVS0ozbkVnYm9wbnNmUSszd3NWdDh4b2tp?= =?utf-8?B?TElldnVObk0wUzZOQjdiUE5MUDFPenRvOXRIMXo2WjNuWkJSZnpXYXlrTmNU?= =?utf-8?B?dWcxbGs5Q2pZZGtuU1p6bVVISXJPTU1zdnE2QnN3aFVsaWxiNWdCb1BEeFNj?= =?utf-8?B?a2g5RU1ZRHRDVjNlOHlSN1ozMG13dkhCSEJKOVFYS1Mwb2hUOWFDZnIzQ2Nm?= =?utf-8?B?MHZpalFXdHZuLzdoK1FKZDlSMkZOWTA3L1BHNE5SMkx5MW82QzVVZUtEd1pS?= =?utf-8?B?aE5LNVp4K3czL3IxVlRYaFpINkhYWVR2UnRkbFB1WVRTSlhvSUliaHJsbHBu?= =?utf-8?B?K0dXNFFPaXlINjR1LzZ4R2thS0hhdCthR0FQck9RdTNrVS9ldHFkOGZXNkVY?= =?utf-8?B?RWNwNUhSaitmSEFVQldjOHcvbjgrcXZKV2xGM0RyNmpxVUJ6RlZFSGZDaU5T?= =?utf-8?B?VE9BVGw3cE5LSXNjcHFqUEJkMGdSeDNoaVpSYi9mZUp1ckFJQittY0licjU0?= =?utf-8?B?M3YyYXJURFlIVXVkRXkyOWVZWTZCS1VuTm5PVWJQUHZRQnJQMlY4SHFGQXo1?= =?utf-8?B?TndTM0ZxUW8rZDErVy9UNDBqbU4xWkpuY1dHR0ZqTERObUt0TjlWdTBJUjM2?= =?utf-8?B?T2JZQmRYc0d3WjNuTkVnUTNGWmptM09XRTl6UmUyU1B5dDhjQ0VMUnhkaTl0?= =?utf-8?B?OC92T2xCTWQwblpEMTFUQm5IYVYzVHpBNE5yT3Z6LzFUeTYrcjZFRXdCaCtP?= =?utf-8?B?S1JlSlUvcFNiV3F5c25YM3FpOXJtREtaZW9RNVNGTzF4RzRYT0FSNUhJNlNO?= =?utf-8?B?Y1VzMkx4ODRpZXVRMjNzc1hzUm9uK2pjMkdPb1R2MEl4SW9vM21jV2JUckYx?= =?utf-8?B?WlhlUWszWm1mTjBrVnlJWGtqUjZkVHNXWmJieVNWaGxIVUt0TEMyS3YvVU9z?= =?utf-8?B?MkVXSVZCOWNwMUJ1V0NVMWNWVE85U3BNalp1a0RGZnpKZ1VadXBlQXkvWlY1?= =?utf-8?B?dnVVWDU3akNzWHB1ampXSGIrNzBTSjRjb3p3b2Q5UmRQYk9mYlArUVRQdmds?= =?utf-8?B?OGEyd3JqbklaVWlNaS83ODcweS93amo0cVFkaks1bWgwRDVkc1ZKaThpY3pT?= =?utf-8?Q?NOOZ0MiJ/43zbDwupwtWN1nDDoODs5KSHpIW6m/?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY2PR01MB3835.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230037)(7416011)(376011)(366013)(1800799021)(38070700015);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?L2tsRTRDazdGTktvaWRabGFhNW5yUjA4eTUwRGp5MTJhNHpqaXcxeFVLNjEx?= =?utf-8?B?MU5xQ24rRHFMUmR1dk1HQ2RpSW9VWk12RlRqb3N5cGxwRGlVSjNraWlRakI3?= =?utf-8?B?VEplQ3hBaGplNjVyT0cxRVRvSHQ2ZWJqZlpFc0ZiMEIrcGhTb2J4SW9YQ3pQ?= =?utf-8?B?OFFWeWtzUWlrc2dQWUVPS3dvd0lnWU1HWVRubGZjeGhZU2FidERqWGZrTnRW?= =?utf-8?B?WVNzU3NkSjZKSW94Y0c3dEVlb1gybDdMc3NPM2NnalZPQzJWZ2lYdkxBQktW?= =?utf-8?B?cU1QZWNJT1ZodkcxVHN3aitOTVFIQmxneHFGUlIydmoybmxhWklhY1l1V3JF?= =?utf-8?B?S0M3ZEFoc1FNcGFVWFlNWjluU1JFQzBxUGdVVlUzTW0xNUpsbG51eDVQbUNC?= =?utf-8?B?N21ETVR5M0hDUjNWdnRhMGJVUlFhQ0tLZ3BTQUNhY0VEcFZLQTNvbWM4eWxo?= =?utf-8?B?bmdwY05yRThCdjM1MzZoT3dpdTcwZjdGS3pRbUtKUSthdVRmMnVSOUMxZ1Fu?= =?utf-8?B?eWxua1J5bzJuQmRmSStldnA5V25MQTNPWENCS1VXRXluN0tCcGV5U0tQS3ND?= =?utf-8?B?ck1Fc2ZoSHVKYjZ1eXJJQlRYbWt3V2JMeVZ1ZWwvNGR0SHppQkF5OHBjTFdG?= =?utf-8?B?OUNHYXkxTEVVQkRmY0dqaDJ6eUI3aXl0bTRiRDVYeU5SYm8wSkQrdTBMYUUv?= =?utf-8?B?Qlh2YmhhV2FlakczNUxGdU5VWmlxd0VYL1hMLzdWdHIxdWpXTVhOWWF4MGJq?= =?utf-8?B?LzN6V3A3VGh5Yjg2OHZQRGYyUUZPd1VuNjZIeXRYQXBNa2kxL0J3VzYrNElq?= =?utf-8?B?VnNCaU80My9jNWQ4eTg0eW1sc0ppN2Q5OGRlMStLYWg5OHBFY1RiT2xkd3R6?= =?utf-8?B?OUVWZzlmNS85V0ZFU1I1SnJWN0tNdkd4N0VHVU5sdkFwblN2V21iOWhKUXFD?= =?utf-8?B?cHhLUStCUG45d1JZZkdzNDRRallnM1NFZE5rbGFNb2hBYnRvWXlYQjZhTlQ4?= =?utf-8?B?bmh0L3lORXhtYW9QZFlqQUlET2FMcklMcDhxVGZUS0JycWcvWXVId3ZjZDg5?= =?utf-8?B?MkdqY0lmYmJaVDhqa2MzR2xNeWV0VXNlQy9KU2NxR2c4a1RUaDRSL2l1Z1kv?= =?utf-8?B?K0NCR0VHRllpSmdWbXVhTDY2azZLTHNJTFhzdzVpTlBzQVltNFJLOE9EK1NH?= =?utf-8?B?ZHAvRk9xSjRCYlFUZkJMWWhmczZYOUZjRW0wcDJQSForbTFtSlBLcFRVVElD?= =?utf-8?B?WnBDWTVQbkFpL01WWDRWeU9mT20yK3ZxeUsrTFYwMWJDODdDMFhqNVRYOGZP?= =?utf-8?B?NklPT3grSkNHdEpCeGpDbzRFSjdhdGdwQ2dNZDVoUXgwOU1OZXFSQ0JucFJJ?= =?utf-8?B?NHNHazJuUHo5MnhLeEtWUHZubTF0S0dyOTNwMmdCaTZkcEh5WCtGbjNiK3lT?= =?utf-8?B?MERNZXJoK0k5bEx3YVRtRitOK1VWVi9nWkZTVXFKOGMxWlp5WlN1bmUvUjdW?= =?utf-8?B?RlFjblVvUkxEK1E4aVQwemJDYUJFblEwQm92eEJPMlViRzRhS3VTbDE0ZWRw?= =?utf-8?B?QklxM0ZZekQrQkFleUVTREF0aWVuMXZwNnlXOXBrRjFneW1Mem1yMGRRYVNF?= =?utf-8?B?eVJEVXl0T0t0ZUR5ZkJCdGxvdG1WU2RhdU80NWNiVVdNL0NYMERCN2pPTTVT?= =?utf-8?B?YWNVNXF0UzI4N0hrZ3htVVZYdG9KaXlLMlpSTDJIRVR1TENKQ1BzUVBtK2Jk?= =?utf-8?B?VlBWQlBXZnpld1FRaitWMHlJOTdWSi8xZENNR2Jma0tjcGh6SzV3clZxSllu?= =?utf-8?B?V2dQOWQzQy9VWG9zUTFNcEl0bFpOOUx1Sjk4ck1yaEdoNWVDYmUxdmc0Q3V3?= =?utf-8?B?MFQ0NTJMTWQ4Q1NQdDBFN2dhK2hoOFdHUFVRSlpsR1poNDBwR1hiUVV5L1lI?= =?utf-8?B?TE1kek1ZcmZ0cXprMDVQQnhXMlFXNU9XbU5kYnB5NzI3Q1NHOUJCUjBlekJC?= =?utf-8?B?a1VkSUQ1L1NWTnkwSURPYkErSHkyUkNCVHg1TDZRVmJQQnBnekdoNVVMU2w4?= =?utf-8?B?amxlZ2NLZHVSK1JpdTJHRG1jRkIxNVE3UjhOODhiWWhxY0J0RVlBT2N2NnFF?= =?utf-8?Q?IbAOalsUrAafvIVvkYt9ZmGRz?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: df.MitsubishiElectric.co.jp X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TY2PR01MB3835.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7e60c0a2-b486-4dc9-5b57-08dc94e0bab6 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jun 2024 06:33:30.5565 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c5a75b62-4bff-4c96-a720-6621ce9978e5 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: kdtxq/CgHllrf6VI3mKXwb504dMvnJ8Z1Wj1opGbhVB3ryNV8Hcd6C2jHrGYg1sTkwkwcplfkXyIVdsXXiFbNA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZPR01MB7746 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk SGkgSmVsdGUsIGhhY2tlcnMuDQoNClRoYW5rIHlvdSBmb3IgZXhwbGFuYXRpb25zLg0KDQpBY3R1 YWxseSwgSSBoYXZlIG90aGVyIHRhc2tzIGFib3V0ICJQQVJUSUFMX0FHR1JFQUdBVEUiIGtleXdv cmQNCnRvIHJlc3BvbmQgUmVxdWlyZW1lbnQxIGFuZCBSZXF1aXJlbWVudDIgaW4gdGhlIGZvbGxv d2luZyBtYWlsLg0KaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9UWUFQUjAx TUIzMDg4NzU1RjIyODFENDFGNUVFRjA2RDQ5NUY5MiU0MFRZQVBSMDFNQjMwODguanBucHJkMDEu cHJvZC5vdXRsb29rLmNvbQ0KDQpBZnRlciB0aGF0IHRhc2tzLCBJIHBsYW4gdG8gY29tcGFyZSB5 b3VyIHByb3Bvc2FsIHdpdGggbWluZSBzZXJpb3VzbHksIHdpdGggYWRkaXRpb25hbCBQT0MgcGF0 Y2hlcyBpZiBuZWNlc3NhcnkuDQoNCkkgdGhpbmsgdGhhdCB5b3VyIHByb3Bvc2FsIG1pZ2h0IHNl ZW0gdG8gYmUgYSBtb3JlIGZ1bmRhbWVudGFsIHNvbHV0aW9uLg0KSG93ZXZlciwgdG8gYmUgaG9u ZXN0LCBzbyBmYXIsIEkgZG9uJ3QgcGVyZmVjdGx5IGdldCB0aGUgYmVuZWZpdHMgYW5kIGltcGFj dHMgYnkgc3RvcHBpbmcgdXNhZ2Ugb2YgaW50ZXJuYWwgdHlwZXMNCmluc3RlYWQgdXNpbmcgYSBu YXRpdmUgdHlwZXMsIGVzcGVjaWFsbHkgb24gaGFuZGxpbmcgbWVtb3J5IGNvbnRleHRzIG9mIGV4 aXN0aW5nIGRlc2VyaWFsaXphdGlvbiBmdW5jdGlvbnMgYW5kDQpvbiB0aGUgYW1vdW50IG9mIGNv ZGVzIHRvIGJlIG1vZGlmaWVkIG9yIGFkZGVkLg0KVGhlIGZvbGxvd2luZ3MgYXJlIHRoZSBhbnN3 ZXJzIHdpdGggdGhlIGtub3dsZWRnZSBJIGhhdmUgcmlnaHQgbm93Lg0KDQo+IEZyb206IEplbHRl IEZlbm5lbWEtTmlvIDxwb3N0Z3Jlc0BqZWx0ZWYubmw+DQo+IFNlbnQ6IFR1ZXNkYXksIEp1bmUg MjUsIDIwMjQgNTo0OSBBTQ0KPiA+IEhvd2V2ZXIsIEkgc3RpbGwgaGF2ZSB0aGUgZm9sbG93aW5n IHR3byBxdWVzdGlvbnMuDQo+ID4NCj4gPiAxLiBOb3QgbmVjZXNzYXJ5IGNvbXBvbmVudHMgb2Yg bmV3IG5hdGl2ZSB0eXBlcyBSZWZlciB0byBwZ190eXBlLmRhdCwNCj4gPiB0eXBpbnB1dCBhbmQg dHlwb3V0cHV0IGFyZSByZXF1aXJlZC4NCj4gPiBJIHRoaW5rIHRoYXQgaW4geW91ciBwcm9wb3Nh bCB0aGV5IGFyZSBub3QgbmVjZXNzYXJ5LCBzbyB3YXN0ZS4gSQ0KPiA+IHRoaW5rIHRoYXQgaXQg aXMgbm90IGFjY2VwdGFibGUuDQo+ID4gSG93IGNhbiBJIHJlc29sdmUgdGhlIHByb2JsZW0/DQo+ IA0KPiBJIHRoaW5rIHJlcXVpcmluZyB0eXBpbnB1dC90eXBvdXRwdXQgaXMgYSBiZW5lZml0IHBl cnNvbmFsbHksIGJlY2F1c2UgdGhhdCBtYWtlcyBpdCBwb3NzaWJsZSB0byBkbyBQQVJUSUFMX0FH R1JFR0FURQ0KPiBwdXNoZG93biB0byBhIGRpZmZlcmVudCBQRyBtYWpvciB2ZXJzaW9uLiBBbHNv IGl0IG1ha2VzIGl0IGVhc2llciB0byBkZWJ1ZyB0aGUgcGFydGlhbCBhZ2dyZWdhdGUgdmFsdWVz IHdoZW4gdXNpbmcNCj4gcHNxbC9wZ3JlZ3Jlc3MuIFNvIHllcywgaXQgcmVxdWlyZXMgaW1wbGVt ZW50aW5nIGJvdGggYmluYXJ5IChzZW5kL3JlY2VpdmUpIGFuZCB0ZXh0IChpbnB1dC9vdXRwdXQp IHNlcmlhbGl6YXRpb24sIGJ1dCBpdCBhbHNvDQo+IGhhcyBzb21lIGJlbmVmaXRzLiBBbmQgaW4g dGhlb3J5IHlvdSBtaWdodCBiZSBhYmxlIHRvIHNraXAgaW1wbGVtZW50aW5nIHRoZSBiaW5hcnkg c2VyaWFsaXphdGlvbiwgYW5kIHJlbHkgcHVyZWx5IG9uIHRoZSB0ZXh0DQo+IHNlcmlhbGl6YXRp b24gdG8gc2VuZCBwYXJ0aWFsIGFnZ3JlZ2F0ZXMgYmV0d2VlbiBzZXJ2ZXJzLg0KSSBzZWUuIEl0 IHNlZW1zIHRoYXQgYWRkaW5nIG5ldyBuYXRpdmVzIG1pZ2h0IG1ha2UgaXQgZWFzaWVyIHRvIHRy YW5zbWl0IHRoZSBzdGF0ZSB2YWx1ZXMgYmV0d2VlbiBsb2NhbCBhbmQgcmVtb3RlIGhhdmUgZGlm ZmVyZW50IG1ham9yIHZlcnNpb25zLg0KSG93ZXZlciwgaW4gbXkgb3Bpbmlvbiwgd2Ugc2hvdWxk IGJlIGNhcmVmdWwgdG8gc3VwcG9ydCB0aGUgY2FzZSBpbiB3aGljaCBsb2NhbCBhbmQgcmVtb3Rl IGhhdmUgZGlmZmVyZW50IG1ham9yIHZlcnNpb25zLA0KYmVjYXVzZSB0aGUgdHJhbnN0eXBlIG9m IGFuIGFnZ3JlZ2F0ZSBmdW5jdGlvbiB3b3VsZCBtYXkgY2hhbmdlIGluIGZ1dHVyZSBtYWpvciB2 ZXJzaW9uIGR1ZSB0bw0Kc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIGltcGxlbWVudGF0aW9uLg0K QWN0dWFsbHksIHNvbWV0aGluZyBsaWtlIHRoYXQgb2NjdXJzIHJlY2VudGx5LCBzZWUNCmh0dHBz Oi8vZ2l0aHViLmNvbS9wb3N0Z3Jlcy9wb3N0Z3Jlcy9jb21taXQvNTE5ZmMxYmQ5ZTlkN2I0MDg5 MDNlNDRmNTVmODNmNmRiMzA3NDJiNw0KSSB0aGluayB0aGUgdHJhbnN0eXBlIG9mIGFuIGFnZ3Jl Z2F0ZSBmdW5jdGlvbiBxdWl0ZSBtb3JlIGNoYW5nZWFibGUgdGhhbiByZXR5cGUuDQpDb25zZXF1 ZW50bHksIHNvIGZhciwgSSB3YW50IHRvIHN1cHBvcnQgdGhlIGNhc2VzIGluIHdoaWNoIGxvY2Fs IGFuZCByZW1vdGUgaGF2ZSB0aGUgc2FtZSBtYWpvciB2ZXJzaW9uLg0KSWYgd2UgdHJ5IHRvIHJl c29sdmUgdGhlIGxpbWl0YXRpb24sIGl0IHNlZW1zIHRvIG5lZWQgbW9yZSBhZGRpdGlvbmFsIGNv ZGVzLg0KDQpBbmQsIEknbSBhZnJhaWQgdGhhdCBhZGRpbmcgdHlwaW5wdXQvdHlwb3V0cHV0IGJv dGhlcnMgdGhlIGRldmVsb3BlcnMuDQpUaGV5IGFsc28gaGF2ZSB0byBjcmVhdGUgYSBuZXcgbmF0 aXZlIHR5cGVzIGluIGFkZGl0aW9uIHRvIGNyZWF0ZSB0aGVpciBuZXcgYWdncmVnYXRlIGZ1bmN0 aW9ucy4NCkkgd29uZGVyIGlmIHRoaXMgY29uY2VybiBtaWdodCBvdXR3ZWlnaCB0aGUgYmVuZWZp dHMgZm9yIGRlYnVnZ2luZy4NCkFuZCwgaWYgc2tpcHBpbmcgc2VuZC9yZWNlaXZlLCB0aGV5IGhh dmUgdG8gc2VsZWN0IG9ubHkgdGhlIHRleHQgcmVwcmVzZW50YXRpb24gb24NCnRoZSB0cmFuc21p c3Npb24gb2YgdGhlIHN0YXRlIHZhbHVlLiBJIHRoaW5rIGl0IGlzIG5hcnJvdy4NCg0KPiA+IDIu IE1hbnkgbmV3IG5hdGl2ZSB0eXBlcw0KPiA+IEkgdGhpbmsgdGhhdCwgYmFzaWNhbGx5LCBlYWNo IGFnZ3JlZ2F0ZSBmdW5jdGlvbiBkb2VzIG5lZWQgYSBuZXcgbmF0aXZlIHR5cGUuDQo+ID4gRm9y IGV4YW1wbGUsDQo+ID4gYXZnKGludDgpLCBhdmcobnVtZXJpYyksIGFuZCB2YXJfcG9wKGludDQp IGhhcyB0aGUgc2FtZSB0cmFuc3R5cGUsIFBvbHlOdW1BZ2dTdGF0ZS4NCj4gPiBZb3Ugc2FpZCB0 aGF0IGl0IGlzIGVub3VnaCB0byBhZGQgb25seSBvbmUgbmF0aXZlIHR5cGUgbGlrZQ0KPiA+IHN0 YXRlX3BvbHlfbnVtX2FnZyBmb3Igc3VwcG9ydGluZyB0aGVtLCByaWdodD8NCj4gDQo+IFllcywg Y29ycmVjdC4gVGhhdCdzIHdoYXQgSSBoYWQgaW4gbWluZC4NCj4gDQo+ID4gQnV0IHRoZSBjb21i aW5lIGZ1bmN0aW9ucyBvZiB0aGVtIG1pZ2h0IGhhdmUgcXVpdGUgZGlmZmVyZW50DQo+ID4gZXhw ZWN0YXRpb24gb24gdGhlIGRhdGEgaXRlbXMgb2YgUG9seU51bUFnZ1N0YXRlIGxpa2UgdGhlIHJh bmdlIG9mDQo+ID4gTihtZWFucyBjb3VudCkgYW5kIHRoZSB0cnVlL2ZhbHNlIG9mIGNhbGNTdW1Y MiAodGhlIGZsYWcgb2YNCj4gPiBjYWxjdWxhdGluZyBzdW0gb2Ygc3F1YXJlcykuDQo+ID4gVGhl IGZpbmFsIGZ1bmN0aW9ucyBvZiB0aGVtIGhhdmUgdGhlIHNpbWlsYXIgZXhwZWN0YXRpb24uDQo+ ID4gU28sIEkgdGhpbmsgdGhhdCwgcmVzcG9uZGVkIHRvIHlvdXIgcHJvcG9zYWwsIGVhY2ggb2Yg dGhlbSBuZWVkIGENCj4gPiBuYXRpdmUgZGF0YSB0eXBlIGxpa2Ugc3RhdGVfaW50OF9hdmcsIHN0 YXRlX251bWVyaWNfYXZnLCBmb3Igc2FmZXR5Lg0KPiA+DQo+ID4gQW5kLCB3ZSBkbyBuZWVkIGEg bmF0aXZlIHR5cGUgZm9yIGFuIGFnZ3JlZ2F0ZSBmdW5jdGlvbiB3aG9zZQ0KPiA+IHRyYW5zdHlw ZSBpcyBub3QgaW50ZXJuYWwgYW5kIG5vdCBwc2V1ZG8uDQo+ID4gRm9yIGF2ZyhpbnQ0KSwgdGhl IGN1cnJlbnQgdHJhbnN0eXBlIGlzIF9pbnQ4Lg0KPiA+IEhvd2V2ZXIsIEkgZG8gbmVlZCBhIHZh bGlkYXRpb24gY2hlY2sgb24gdGhlIG51bWJlciBvZiB0aGUgYXJyYXkgQW5kDQo+ID4gdGhlIHBv c2l0aXZlbmVzcyBvZiBjb3VudCh0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUgYXJyYXkpLg0KPiA+ IFJlc3BvbmRlZCB0byB5b3VyIHByb3Bvc2FsLA0KPiA+IEkgZG8gbmVlZCBhIG5ldyBuYXRpdmUg dHlwZSBsaWtlIHN0YXRlX2ludDRfYXZnLg0KPiANCj4gVG8gaGVscCBhdm9pZCBjb25mdXNpb24g bGV0IG1lIHRyeSB0byByZXN0YXRlIHdoYXQgSSB0aGluayB5b3UgbWVhbg0KPiBoZXJlOiBZb3Un cmUgd29ycmllZCBhYm91dCBzb21lb25lIHBhc3NpbmcgaW4gYSBib2d1cyBuYXRpdmUgdHlwZSBp bnRvIHRoZSBmaW5hbC9jb21iaW5lIGZ1bmN0aW9ucyBhbmQgdGhlbiBnZXR0aW5nDQo+IGNyYXNo ZXMgYW5kL29yIHdyb25nIHJlc3VsdHMuIFdpdGggaW50ZXJuYWwgdHlwZSBwZW9wbGUgY2Fubm90 IGRvIHRoaXMgYmVjYXVzZSB0aGV5IGNhbm5vdCBtYW51YWxseSBjYWxsIHRoZQ0KPiBjb21iaW5l ZnVuYy9maW5hbGZ1bmMgYmVjYXVzZSB0aGUgYXJndW1lbnQgdHlwZSBpcyBpbnRlcm5hbC4gVG8g c29sdmUgdGhpcyBwcm9ibGVtIHlvdXIgc3VnZ2VzdGlvbiBpcyB0byBtYWtlIHRoZSB0eXBlDQo+ IHNwZWNpZmljIHRvIHRoZSBzcGVjaWZpYyBhZ2dyZWdhdGUgc3VjaCB0aGF0IHNlbmQvcmVjZWl2 ZSBvciBpbnB1dC9vdXRwdXQgY2FuIHZhbGlkYXRlIHRoZSBpbnB1dCBhcyByZWFzb25hYmxlLiBC dXQgdGhpcw0KPiB3b3VsZCB0aGVuIG1lYW4gdGhhdCB3ZSBoYXZlIG1hbnkgbmF0aXZlIHR5cGVz IChhbmQgYWxzbyBtYW55IGRlc2VyaWFsaXplL3NlcmlhbGl6ZSBmdW5jdGlvbnMpLg0KWWVzLCBy aWdodC4NCg0KPiBBc3N1bWluZyB0aGF0J3MgaW5kZWVkIHdoYXQgeW91IG1lYW50LCB0aGF0J3Mg YW4gaW50ZXJlc3RpbmcgdGhvdWdodCwgSSBkaWRuJ3QgY29uc2lkZXIgdGhhdCBtdWNoIGluZGVl ZC4gTXkgdGhpbmtpbmcgd2FzDQo+IHRoYXQgd2Ugb25seSBuZWVkIHRvIGltcGxlbWVudCBzZW5k L3JlY2VpdmUgJiBpbnB1dC9vdXRwdXQgZnVuY3Rpb25zIGZvciB0aGVzZSB0eXBlcywgYW5kIGV2 ZW4gdGhvdWdoIHRoZWlyIG1lYW5pbmcgaXMNCj4gdmVyeSBkaWZmZXJlbnQgd2UgY2FuIHNlcmlh bGl6ZSB0aGVtIGluIHRoZSBzYW1lIHdheS4NCj4gDQo+IEFzIHlvdSBzYXkgdGhvdWdoLCBzb21l dGhpbmcgbGlrZSB0aGF0IGlzIGFscmVhZHkgdHJ1ZSBmb3IgYXZnKGludDQpIHRvZGF5LiBUaGUg d2F5IGF2ZyhpbnQ0KSBoYW5kbGVzIHRoaXMgaXNzdWUgaXMgYnkgZG9pbmcNCj4gc29tZSBpbnB1 dCB2YWxpZGF0aW9uIGZvciBldmVyeSBjYWxsIHRvIGl0cyB0cmFucy9maW5hbC9jb21iaW5lZnVu YyAoc2VlIGludDRfYXZnX2FjY3VtLCBpbnQ0X2F2Z19jb21iaW5lLCBhbmQgaW50OF9hdmcpLg0K PiBJdCBjaGVja3MgdGhlIGxlbmd0aCBvZiB0aGUgYXJyYXkgdGhlcmUsIGJ1dCBpdCBkb2Vzbid0 IGNoZWNrIHRoZSBwb3NpdGl2ZW5lc3Mgb2YgdGhlIGNvdW50LiBJIHRoaW5rIHRoYXQgbWFrZXMg c2Vuc2UuIElNSE8NCj4gdGhlc2UgZnVuY3Rpb25zIG9ubHkgbmVlZCB0byBwcm90ZWN0IGFnYWlu c3QgY3Jhc2hlcyAoZS5nLiBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2VzKS4gQnV0IEkgZG9uJ3Qg dGhpbmsgdGhlcmUgaXMgYSBnb29kIHJlYXNvbg0KPiBmb3IgdGhlbSB0byBwcm90ZWN0IHRoZSB1 c2VyIGFnYWluc3QgcGFzc2luZyBpbiB3ZWlyZCBkYXRhLiBUaGVzZSBmdW5jdGlvbnMgYXJlbid0 IHJlYWxseSBtZWFudCB0byBiZSBjYWxsZWQgbWFudWFsbHkgaW4gdGhlDQo+IGZpcnN0IHBsYWNl IGFueXdheSwgc28gaWYgdGhlIHVzZXIgZG9lcyB0aGF0IGFuZCB0aGV5IHBhc3MgaW4gd2VpcmQg ZGF0YSB0aGVuIEknbSBmaW5lIHdpdGggdGhlbSBnZXR0aW5nIGEgd2VpcmQgcmVzdWx0IGJhY2ss DQo+IGV2ZW4gZXJyb3JzIGFyZSBmaW5lIChvbmx5IGNyYXNoZXMgYXJlIG5vdCkuDQo+IA0KPiBT byBhcyBsb25nIGFzIG91ciBpbnB1dC9vdXRwdXQgJiBzZW5kL3JlY2VpdmUgZnVuY3Rpb25zIGZv ciBzdGF0ZV9wb2x5X251bV9hZ2cgaGFuZGxlIGFsbCB0aGUgaW5jb25zaXN0ZW5jaWVzIHRoYXQg Y291bGQNCj4gY2F1c2UgY3Jhc2hlcyBsYXRlciBvbiAod2hpY2ggSSB0aGluayBpcyBwcmV0dHkg c2ltcGxlIHRvIGRvIGZvciBQb2x5TnVtQWdnU3RhdGUpLCB0aGVuIEkgZG9uJ3QgdGhpbmsgd2Ug bmVlZCBzdGF0ZV9pbnQ4X2F2ZywNCj4gc3RhdGVfbnVtZXJpY19hdmcsIGV0Yy4NCkkgc2VlLiBD ZXJ0YWlubHksIGl0IG1pZ2h0IHN1ZmZpY2llbnQgdGhhdCwgcmVjZWl2ZSBmdW5jdGlvbnMgcGVy Zm9ybSB2YWxpZGF0aW9uIGNoZWNrcyB0byBhdm9pZCBjcmFzaCwNCmFuZCBjb21iaW5lIGZ1bmN0 aW9ucyBhbmQgZmluYWwgZnVuY3Rpb25zIGFyZSByZXNwb25zaWJsZSBmb3IgYXZvaWRpbmcgY3Jh c2gNCmluIHRoZSByYW5nZSBvZiB2YWx1ZXMgb2YgZGF0YSBpdGVtcyBvZiB0aGUgbmF0aXZlIHR5 cGUuDQoNCkJlc3QgcmVnYXJkcywgWXVraSBGdWppaQ0KLS0NCll1a2kgRnVqaWkNCkluZm9ybWF0 aW9uIFRlY2hub2xvZ3kgUiZEIENlbnRlciwgTWl0c3ViaXNoaSBFbGVjdHJpYyBDb3Jwb3JhdGlv bg0K