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 1r5kHc-00EopA-9A for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Nov 2023 10:16:36 +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 1r5kHa-007NWl-BN for pgsql-hackers@arkaria.postgresql.org; Wed, 22 Nov 2023 10:16:34 +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 1r5kHZ-007NUT-O2 for pgsql-hackers@lists.postgresql.org; Wed, 22 Nov 2023 10:16:34 +0000 Received: from mx04.melco.co.jp ([192.218.140.144]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r5kHU-007lHN-Pb for pgsql-hackers@postgresql.org; Wed, 22 Nov 2023 10:16:32 +0000 Received: from mr06.melco.co.jp (mr06 [133.141.98.164]) by mx04.melco.co.jp (Postfix) with ESMTP id 4SZxwm298KzMxQgt; Wed, 22 Nov 2023 19:16:24 +0900 (JST) Received: from mr06.melco.co.jp (unknown [127.0.0.1]) by mr06.imss (Postfix) with ESMTP id 4SZxwm1l3lzMt5l5; Wed, 22 Nov 2023 19:16:24 +0900 (JST) Received: from mf03_second.melco.co.jp (unknown [192.168.20.183]) by mr06.melco.co.jp (Postfix) with ESMTP id 4SZxwm1PsrzMt5l4; Wed, 22 Nov 2023 19:16:24 +0900 (JST) Received: from mf03.melco.co.jp (unknown [133.141.98.183]) by mf03_second.melco.co.jp (Postfix) with ESMTP id 4SZxwm1Lxnz6Ysb; Wed, 22 Nov 2023 19:16:24 +0900 (JST) Received: from JPN01-OS0-obe.outbound.protection.outlook.com (unknown [104.47.23.104]) by mf03.melco.co.jp (Postfix) with ESMTP id 4SZxwm1CgQzMt2LB; Wed, 22 Nov 2023 19:16:24 +0900 (JST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LZLtl2CwdhNVW2Qox++F8rOXasGLPFDh6nOMHGaNid7JkmprlDzrZQourjzh0Vw8kxW3jzjSpqz9W+57es/HnXlmi9vCUBkHNq3GkGGm0DfKmXeYreE8/Q+4rpSqebliYSHKdKo0Zar4MI0XYfQULLJXQMZg7q2ko60WjwylHUWels/vxOQXADzWHScrne6avVJ9Yv3WyujkjpC13UFbtaSZFPEApyf6grJvipAXTOvhfbeZRc9VMkWDzp8TGrwoHnwCl1Dj82BYtEoIXkv2/Q3HX7LUVMve+jSBjT2rj1XbyzhcV5mi5S/DBcnP97y+JXJNdm0EubnFH8NeN9rfkQ== 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=G0MBVYPL3GXNEvIQhjP7eRZVv8t0Fkdy0sKRmNK8Edo=; b=TWZ1foTRiwybDiUuGFb/FH5If5yM1L7X2lvywHcpm3ou5VwvHKqFb7klaWhWPt8pak85O/JOWYESQLBI5c66FMhWL/qDnJi/RXU1Kadt/E2Nxsp5ilpWFFV2eAZOulvOjo4L2+GOjDSvQVWmr3GgeoXBw8jfYKoOgtiCVaaSGcrajPrGQ4s/1RIxGHXNIoSMv5o0KedA1kXsdNkA9yQQNN9gGBXSUHzNciwiha584HbxLPE30+IdMfsMZQ0b06OqDInam1mcwEVFADZ7JLUISnlitsmAUWQQT6kaPvir+tRLabO+kfGN00nrSPhfEZPmosBI33twbuMuPJbmcisdZQ== 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=G0MBVYPL3GXNEvIQhjP7eRZVv8t0Fkdy0sKRmNK8Edo=; b=EPli7DNxCnFkfs405qsopratjoDegD95+OC0412K9OgeUJZ+bNqDYlVAvARGqPBJaecPPV7+jQy45LstrtUu1/Boi5P/stvh5nSCZNKHiaxw8RYSlCHc0oY+8f1G4XZJE7krB1+TvCfMytit9Dr4mj4mWgcTCtEyrzSEuiVgLBE= Received: from TYAPR01MB5514.jpnprd01.prod.outlook.com (2603:1096:404:8035::12) by OSZPR01MB9424.jpnprd01.prod.outlook.com (2603:1096:604:1d8::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.18; Wed, 22 Nov 2023 10:16:22 +0000 Received: from TYAPR01MB5514.jpnprd01.prod.outlook.com ([fe80::f738:71d:5628:fe4e]) by TYAPR01MB5514.jpnprd01.prod.outlook.com ([fe80::f738:71d:5628:fe4e%5]) with mapi id 15.20.7025.017; Wed, 22 Nov 2023 10:16:22 +0000 From: "Fujii.Yuki@df.MitsubishiElectric.co.jp" To: Alexander Pyhalov , Robert Haas , Bruce Momjian , PostgreSQL-development CC: "Finnerty, Jim" , Andres Freund , Tom Lane , Tomas Vondra , Julien Rouhaud , Daniel Gustafsson , "Fujii.Yuki@df.MitsubishiElectric.co.jp" Subject: RE: Partial aggregates pushdown Thread-Topic: Partial aggregates pushdown Thread-Index: AQHaHQ3BxcsenkV6nkWiJH/+pvtetLCGG9Dw Date: Wed, 22 Nov 2023 10:16:16 +0000 Deferred-Delivery: Wed, 22 Nov 2023 10:15:18 +0000 Message-ID: References: <8175ddeb6d417d8a1f91e667fef77abf@postgrespro.ru> In-Reply-To: <8175ddeb6d417d8a1f91e667fef77abf@postgrespro.ru> 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: TYAPR01MB5514:EE_|OSZPR01MB9424:EE_ x-ms-office365-filtering-correlation-id: 5cfa8340-1b64-490b-47db-08dbeb4413bb x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: WHTrfQYgJcEBbWOrglyNsbtuodNO/0T8V5Wbmsu6DYgto7Zxv7caQHst/wKdUfgymnvRJKkxg9g6IN4uSTXKYfTlrZSuOqTB0L62pAuGwkqWMcjpAp1ZhA6lfeDgDgWAFV0AQNx8BWc0LNdPLEkgzMQTf1O4rSOTKmJ1nR5pXs5Qumee+stT+RNWVV2trnxDhTVaDYFIiwC1jwLSeUooVSPvp61kzl0iPMPkQJLuA2yaXQCNsOFzzw3AQd11GFun6htHh77Vh2lq6FRo2sHsBh7WixJsAwlqWy6WkXWrUKzP4EWuNnuu2yHUkQpEEqQrmLb2aKKZH381jKsCg0qZhcvcpVgS0DhxN+0teEspAXUS7UScIPJv9xxEyuclLWDiJMu66NWdF0jOiSHwqdAXA5ni2S65MU0DlwAt3sUVWdH4VsMAnXCxv4Xy3QUDA3xD4iu5Vlfpq5TUH3g7uq68vQdgPZybORjyEnS2n72G2kPeQoyBSJXh/OyP74IXoaY7aAV/hpO2PfldrgJj0yiuhnzWn1I4dHl+0Uu++z8sDux7ugBzz1DfsTCM0xpcBvLvnAb107nF7zMQ2IjSARQsuwtAIsbAtExNFvytEu0B7kL02ACYWO4a+M35FWgIdl3D x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYAPR01MB5514.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(39860400002)(346002)(366004)(136003)(396003)(230922051799003)(1800799012)(64100799003)(186009)(451199024)(55016003)(26005)(9686003)(66946007)(76116006)(38100700002)(66476007)(66446008)(54906003)(64756008)(8676002)(66556008)(110136005)(4326008)(316002)(8936002)(83380400001)(7696005)(6506007)(122000001)(107886003)(71200400001)(478600001)(6666004)(52536014)(3480700007)(7116003)(5660300002)(7416002)(33656002)(41300700001)(86362001)(2906002)(38070700009);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UE1kL3p5U0JMKzcwZW9zRm41Vlk0ZDFseS9XRVQzVlpTK2x4UmdLMkdxZmE4?= =?utf-8?B?WC9zdkYwWkNBU3ZrVSt5bDlBZlQ0RVJlNEk0VitCdnFhTHg5UnlNWVhHS1Qw?= =?utf-8?B?U0ZDYUdyMTFXc0cyMXNGdzI4dEF3SDkxVVBuL2c1RGk3RmQvSCtlVG55bFZq?= =?utf-8?B?TWRNdTlHaUs5SzlobkM3OEIzeFVWMEZhWmZpUm9Nb2JNQWpKeEFtdm1zRGli?= =?utf-8?B?SmFRUnltOFJzRHE5amE5cm9JL2ZTK1RPMXQyNjZsWHJpWVJiVGtYdk01MEhC?= =?utf-8?B?dkZMemswTHNNU09RUEUxeG0reUVES1V0OHFSS3RJejhsbnZJTER4bDRoanFL?= =?utf-8?B?NEV5Qy9rWjhITlovZkJwN2tEenJudXpxMzhOVXVNMEpaaXVhWktQVEJpbW0v?= =?utf-8?B?aUs4cFhYNG53Y0RBVHNTZCtHUkZmdEtzcU84VnFrQU8veEJPL25NV3lDb3pv?= =?utf-8?B?UFQ0MTZpaUdIR0VKTk1CeUZoQ21SMjdqL1NSSEo3WEkzbUZVUnJLRlNWRFJF?= =?utf-8?B?QnVqeENqU0lUelhZUm9pV2lYRm1sNVozcmtVWThocmRqTEhnbnFnNVZkWTN3?= =?utf-8?B?clhONkk0bXNhck9GdkhtMG1rMFZCWHZ3V3lzSUluZXVESnJVekpFVmhkTlAr?= =?utf-8?B?TGM3eTNVQ1NqOVJFTXROenBxU0JqN1BIWkdTd0kwdFFQTDZsYTBHcXdsOFQv?= =?utf-8?B?bUsvbStLTlBXSm9Gc01mUlBKcWNvMWs5djdkdXBXamw0OU9hSUdMTTlOZ2dm?= =?utf-8?B?RVVRQ3F0UUtrZ3FjODFqQWRuRGJjZ3piWUVDM3hmWEhvQkF0cTlRUFNVNHFF?= =?utf-8?B?eUZvMzRUclRqYURlL0oxMUk2Z0dhaWdqZzJOcWhBM0YrRmMzVWhHUEg5WTJu?= =?utf-8?B?QndmZXVNMWFXUFFhOWlHUkUxNllZdTJQS3FOYkVlWUFUQWMycHBrSU5FT3dn?= =?utf-8?B?YWZYdGxqcHpoQnVLZ0xoNTBFSlZBRWF3d2FwekQ4MTZ2Ykh5ZUtHNTY0bDV6?= =?utf-8?B?YkptOVZBdXhQL1VJZkx1bmJkVFk2NzVlYit5aW5TbnM0QVFnNGdoeTVnekZa?= =?utf-8?B?Qlppd1RhNVlyZGZRSWFrd3dxOGd1Q3JjRzR4V0hlU0lvRlZ4dTkwcFdMSWxQ?= =?utf-8?B?RXhOTmtHcVVWQ1FnWDJEVjVzUUtiazRJRlpsN2dnSjZCMHc5UUlaSklXQnZ1?= =?utf-8?B?YUc5WEZNNk5hNHlYVlRLZm1XZUs5TExGOExRejN1bk9pUS9XTEFGcjFEOThk?= =?utf-8?B?a1BXY0RtcDdzVzZLeU02OURYMFRkOHUyaWhUT0JJd0VIZWNDZTB6Tk1wWi92?= =?utf-8?B?ZlhJS2t4Si81ZE5ISVFvaDJlK0hUdU5EZjRJVVY2a2V1dFpub1pDYVRUOFFG?= =?utf-8?B?M3lJSlZWRWFMdTVCNjhQanBtQjA2N3FCK1F4OFBPR3Q1bEtLS1cxV3A5UlFX?= =?utf-8?B?ZzNwTEFNeTd3dzFUdXU3MnhQNmQzRW5kZVpCd1VwdFZxMEo3Y0tCeVFSQjhV?= =?utf-8?B?OWIzbkFMeTRwWStBU2IrNjBJOThmMzJUUjhBNmhqRFZFVGhTdW1DR1BLNTNi?= =?utf-8?B?Y1F2VVB2aUVuQ21jVWVJeUhpRlMzVGpMOGRONGhyblZjbXZ4WTZyVGpjZ3ZD?= =?utf-8?B?QjZmUElOQzdnVFkyNGZRYUVpQWt6cER3Q3ZuK1JxejV3SGpzTGdqM3JHMDZD?= =?utf-8?B?L1BDZGNyem1sSmNubk1Vbk1OMEJ1NkdWaldPMlpoUHRtZTg1Qlo2aUtqOUIr?= =?utf-8?B?QTh1aFh3SlBBTkpwWFRZcVphTlcxTmFvZFV4bUFidG5YUFZBaU8wUzZPV2M5?= =?utf-8?B?b0hSeVA0a3phT2xyc29SQ2J4Qmg4cWdXWVZBcm8rNUg1eTVYeThlclUzdW9B?= =?utf-8?B?R3BmZWxacy9aR2RSdkliSitzdThxazk4QzJsMDhLT2N2YnF4eHVWOVJGSlU0?= =?utf-8?B?MTkvb0JjemZxZzB1dytIcXY1UFo0ZkMwaHBHQmtTZ05MU1hvc1VQVmNhNmRX?= =?utf-8?B?VW13SFJRWXBPVGROQWhsL24zS1VpbU4yWDkxNzYwVFhGS1lQV2xZcm1obFhx?= =?utf-8?B?aW9CQnFTZ2EyYmJERG8zbTJZN3JJY3hRbHpaZkdPVXFKU21SVmZ0d251Q25r?= =?utf-8?Q?mU0I3c1BI2tjfUs6cg6Fv7fv0?= 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: TYAPR01MB5514.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5cfa8340-1b64-490b-47db-08dbeb4413bb X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Nov 2023 10:16:22.3791 (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: yp1W/tbSsayQOtZkH/IAlQPanjBlkzE0mfUW4l/l25roUtTzXGYlMXPIETKKz4KT8lYTBXrIsDZLc+3weWKs6A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSZPR01MB9424 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk SGkgTXIuIEhhYXMsIGhhY2tlcnMuDQoNClRoYW5rIHlvdSBmb3IgeW91ciB0aG91Z2h0ZnVsIGNv bW1lbnRzLg0KDQo+IEZyb206IFJvYmVydCBIYWFzIDxyb2JlcnRtaGFhc0BnbWFpbC5jb20+DQo+ IFNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDIxLCAyMDIzIDU6NTIgQU0NCj4gSSBkbyBoYXZlIGEg Y29uY2VybiBhYm91dCB0aGlzLCB0aG91Z2guIEl0IGFkZHMgYSBsb3Qgb2YgYmxvYXQuIEl0IGFk ZHMgYSB3aG9sZSBsb3Qgb2YgYWRkaXRpb25hbCBlbnRyaWVzIHRvIHBnX2FnZ3JlZ2F0ZSwgYW5k DQo+IGV2ZXJ5IG5ldyBhZ2dyZWdhdGUgd2UgYWRkIGluIHRoZSBmdXR1cmUgd2lsbCByZXF1aXJl IGEgYm9udXMgZW50cnkgZm9yIHRoaXMsIGFuZCBpdCBuZWVkcyBhIGJ1bmNoIG9mIG5ldyBwZ19w cm9jIGVudHJpZXMNCj4gYXMgd2VsbC4gT25lIGlkZWEgdGhhdCBJJ3ZlIGhhZCBpbiB0aGUgcGFz dCBpcyB0byBpbnN0ZWFkIGludHJvZHVjZSBzeW50YXggdGhhdCBqdXN0IGRvZXMgdGhpcywgd2l0 aG91dCByZXF1aXJpbmcgYSBzZXBhcmF0ZQ0KPiBhZ2dyZWdhdGUgZGVmaW5pdGlvbiBpbiBlYWNo IGNhc2UuDQo+IEZvciBleGFtcGxlLCBtYXliZSBpbnN0ZWFkIG9mIGNoYW5naW5nIHN0cmluZ19h Z2cod2hhdGV2ZXIpIHRvIHN0cmluZ19hZ2dfcF90ZXh0X3RleHQod2hhdGV2ZXIpLCB5b3UgY2Fu IHNheQ0KPiBQQVJUSUFMX0FHR1JFR0FURQ0KPiBzdHJpbmdfYWdnKHdoYXRldmVyKSBvciBzdHJp bmdfYWdnKFBBUlRJQUxfQUdHUkVHQVRFIHdoYXRldmVyKSBvciBzb21ldGhpbmcuIFRoZW4gYWxs IGFnZ3JlZ2F0ZXMgY291bGQgYmUgdHJlYXRlZA0KPiBpbiBhIGdlbmVyaWMgd2F5LiBJJ20gbm90 IGNvbXBsZXRlbHkgc3VyZSB0aGF0J3MgYmV0dGVyLCBidXQgSSB0aGluayBpdCdzIHdvcnRoIGNv bnNpZGVyaW5nLg0KSSBiZWxpZXZlIHRoaXMgY29tbWVudCBhZGRyZXNzZXMgYSBmdW5kYW1lbnRh bCBhc3BlY3Qgb2YgdGhlIGFwcHJvYWNoLg0KU28sIGZpcnN0bHksIGNvdWxkIHdlIGRpc2N1c3Mg d2hldGhlciB3ZSBzaG91bGQgZnVuZGFtZW50YWxseSByZWNvbnNpZGVyIHRoZSBhcHByb2FjaD8N Cg0KVGhlIGFwcHJvYWNoIGFkb3B0ZWQgaW4gdGhpcyBwYXRjaCBpcyBhcyBmb2xsb3dzLg0KQXBw cm9hY2ggMTogQWRkaW5nIHBhcnRpYWwgYWdncmVnYXRpb24gZnVuY3Rpb25zIHRvIHRoZSBjYXRh bG9ncyhwZ19hZ2dyZWdhdGUsIHBnX3Byb2MpDQoNClRoZSBhcHByb2FjaCBwcm9wb3NlZCBieSBN ci5IYWFzIGlzIGFzIGZvbGxvd3MuDQpBcHByb2FjaCAyOiBBZGRpbmcgYSBrZXl3b3JkIHRvIHRo ZSBTUUwgc3ludGF4IHRvIGluZGljYXRlIHBhcnRpYWwgYWdncmVnYXRpb24gcmVxdWVzdHMNCg0K VGhlIGFtb3VudCBvZiBjb2RlIHJlcXVpcmVkIHRvIGltcGxlbWVudCBBcHByb2FjaCAyIGhhcyBu b3QgYmVlbiBpbnZlc3RpZ2F0ZWQsDQpidXQgY29tcGFyaW5nIEFwcHJvYWNoIDEgYW5kIEFwcHJv YWNoIDIgaW4gb3RoZXIgYXNwZWN0cywgDQpJIGJlbGlldmUgdGhleSBlYWNoIGhhdmUgdGhlIGZv bGxvd2luZyBhZHZhbnRhZ2VzIGFuZCBkaXNhZHZhbnRhZ2VzLiANCg0KMS4gQXBwcm9hY2ggMQ0K KDEpIEFkdmFudGFnZXMNCihhKSBObyBuZWVkIHRvIGNoYW5nZSB0aGUgU1FMIHN5bnRheA0KKDIp IERpc2FkdmFudGFnZXMNCihhKSBDYXRhbG9nIGJsb2F0DQpBcyBNci5IYWFzIHBvaW50ZWQgb3V0 LCB0aGUgY2F0YWxvZyB3aWxsIGJsb2F0IGJ5IGFkZGluZyBwYXJ0aWFsIGFnZ3JlZ2F0aW9uIGZ1 bmN0aW9ucyAoZS5nLiBhdmdfcF9pbnQ4KGludDgpKSANCmZvciBlYWNoIGluZGl2aWR1YWwgYWdn cmVnYXRlIGZ1bmN0aW9uIChlLmcuIGF2ZyhpbnQ4KSkgaW4gcGdfYWdncmVnYXRlIGFuZCBwZ19w cm9jICh0aGVvcmV0aWNhbGx5IGRvdWJsaW5nIHRoZSBzaXplKS4NClNvbWUgUG9zdGdyZVNRTCBk ZXZlbG9wZXJzIGFuZCB1c2VycyBtYXkgZmluZCB0aGlzIHVuY29tZm9ydGFibGUuDQooYikgSW5j cmVhc2UgaW4gbWFudWFsIHByb2NlZHVyZXMNCkRldmVsb3BlcnMgb2YgbmV3IGFnZ3JlZ2F0ZSBm dW5jdGlvbnMgKGJvdGggYnVpbHQtaW4gYW5kIHVzZXItZGVmaW5lZCkgbmVlZCB0byBtYW51YWxs eSBhZGQgdGhlIHBhcnRpYWwgYWdncmVnYXRpb24NCmZ1bmN0aW9ucyB3aGVuIGRlZmluaW5nIHRo ZSBhZ2dyZWdhdGUgZnVuY3Rpb25zLg0KSG93ZXZlciwgdGhlIHByb2NlZHVyZSBmb3IgYWRkaW5n IHBhcnRpYWwgYWdncmVnYXRpb24gZnVuY3Rpb25zIGZvciBhIGNlcnRhaW4gYWdncmVnYXRlIGZ1 bmN0aW9uIGNhbiBiZSBhdXRvbWF0ZWQsDQpzbyB0aGlzIHByb2JsZW0gY2FuIGJlIHJlc29sdmVk IGJ5IGltcHJvdmluZyB0aGUgcGF0Y2guDQpUaGUgYXV0b21hdGlvbiBtZXRob2QgaW52b2x2ZXMg dGhlIGNvcmUgcGFydCAoQWdncmVnYXRlQ3JlYXRlKCkgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zKSB0 aGF0IGV4ZWN1dGVzDQp0aGUgQ1JFQVRFIEFHR1JFR0FURSBjb21tYW5kIGZvciB1c2VyLWRlZmlu ZWQgZnVuY3Rpb25zLg0KRm9yIGJ1aWx0LWluIGZ1bmN0aW9ucywgaXQgaW52b2x2ZXMgZ2VuZXJh dGluZyB0aGUgaW5pdGlhbCBkYXRhIGZvciB0aGUgcGdfYWdncmVnYXRlIGNhdGFsb2cgYW5kIHBn X3Byb2MgY2F0YWxvZyBmcm9tIHBnX2FnZ3JlZ2F0ZS5kYXQgYW5kIHBnX3Byb2MuZGF0DQoodXNp bmcgdGhlIGdlbmJraS5wbCBzY3JpcHQgYW5kIHJlbGF0ZWQgc2NyaXB0cykuDQoNCjIuIEFwcHJv YWNoIDINCigxKSBBZHZhbnRhZ2VzDQooYSkgTm8gbmVlZCB0byBhZGQgcGFydGlhbCBhZ2dyZWdh dGUgZnVuY3Rpb25zIHRvIHRoZSBjYXRhbG9ncyBmb3IgZWFjaCBhZ2dyZWdhdGlvbg0KKDIpIERp c2FkdmFudGFnZXMNCihhKSBOZWVkIHRvIGFkZCBub24tc3RhbmRhcmQga2V5d29yZHMgdG8gdGhl IFNRTCBzeW50YXguDQoNCkkgZGlkIG5vdCBjaG9vc2UgQXBwcm9hY2gyIGJlY2F1c2UgSSB3YXMg bm90IGNvbmZpZGVudCB0aGF0IHRoZSBkaXNhZHZhbnRhZ2UgbWVudGlvbmVkIGluIDIuKDIpKGEp DQp3b3VsZCBiZSBhY2NlcHRlZCBieSB0aGUgUG9zdGdyZVNRTCBkZXZlbG9wbWVudCBjb21tdW5p dHkuDQpJZiBpdCBpcyBhY2NlcHRlZCwgSSB0aGluayBBcHByb2FjaCAyIGlzIHNtYXJ0ZXIuDQpD b3VsZCB5b3UgcGxlYXNlIHByb3ZpZGUgeW91ciBvcGluaW9uIG9uIHdoaWNoDQphcHByb2FjaCBp cyBwcmVmZXJhYmxlIGFmdGVyIGNvbXBhcmluZyB0aGVzZSB0d28gYXBwcm9hY2hlcz8NCklmIHdl IGNhbm5vdCBzYXkgYW55dGhpbmcgd2l0aG91dCBjb21wYXJpbmcgdGhlIGFtb3VudCBvZiBzb3Vy Y2UgY29kZSwgYXMgTXIuTW9tamlhbiBtZW50aW9uZWQsDQp3ZSBuZWVkIHRvIGVzdGltYXRlIHRo ZSBhbW91bnQgb2Ygc291cmNlIGNvZGUgcmVxdWlyZWQgdG8gaW1wbGVtZW50IEFwcHJvYWNoMi4N Cg0KU2luY2VyZWx5IHlvdXJzLA0KWXV1a2kgRnVqaWkNCiANCi0tDQpZdXVraSBGdWppaQ0KSW5m b3JtYXRpb24gVGVjaG5vbG9neSBSJkQgQ2VudGVyIE1pdHN1YmlzaGkgRWxlY3RyaWMgQ29ycG9y YXRpb24NCg==