From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60078.outbound.protection.outlook.com [40.107.6.78]) by sourceware.org (Postfix) with ESMTPS id 5A7B83861C54 for ; Tue, 6 Jul 2021 09:28:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5A7B83861C54 Received: from DB8PR06CA0041.eurprd06.prod.outlook.com (2603:10a6:10:120::15) by DBBPR08MB4726.eurprd08.prod.outlook.com (2603:10a6:10:f0::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.31; Tue, 6 Jul 2021 09:28:20 +0000 Received: from DB5EUR03FT027.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:120:cafe::6d) by DB8PR06CA0041.outlook.office365.com (2603:10a6:10:120::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.22 via Frontend Transport; Tue, 6 Jul 2021 09:28:20 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT027.mail.protection.outlook.com (10.152.20.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.22 via Frontend Transport; Tue, 6 Jul 2021 09:28:20 +0000 Received: ("Tessian outbound c836dc7aad98:v97"); Tue, 06 Jul 2021 09:28:20 +0000 X-CR-MTA-TID: 64aa7808 Received: from fc7182b0b043.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 47237543-FB44-46B6-A63C-AB1916E19948.1; Tue, 06 Jul 2021 09:28:14 +0000 Received: from EUR02-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id fc7182b0b043.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 06 Jul 2021 09:28:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NzGVXqrTzr3FgHlD+OODomrEMAmNRe2AnysN/QanwNRVtOWQBFoPL09EQxzfeLxc/DucjdMhKlXCwf1h2a9uZAajrquEnbqbhvirB5F6r50SOmhaVZYQqGu5ZuJ5ca3h4VlKhxiTkTSfd87C66BXS4dKjbn+X4BIkXqp0czTxw7fOivKjK3saZ7Pn+eyXpVsXN89YGBGD3xhdbDNrCFKQp8no7deEwAIFXstJJypyJbbFHpIdhCUWiEVZzDTEY75TkVytt1+1VCTZ2IKHXyK3STLVnG9bnOgis/phi7HE4s723GW++ZK9Wyj5IRUFdOYp9LORO7hIzbT3EyqyQsLSg== 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-SenderADCheck; bh=7ZYiGaR+VD6/xaOA22hWxbQbRvWn0f98Ue9aljAU1+E=; b=fM6IENbHms9SmTJIaARfnEpmOPyIrZLSptZzJ8jTRBBPdytuua1yqjnqbrOiNTETlCnivAAHWcSVHe9JqUNIrf/Jk46lMGybn7SXnQkIxYNCZjKGqaV54izU7ecDqHagS+66Xj5JcZpoZ03X7CMpi5RUyDmw/olRx13RJzJ5YkqnMHMXeMUfhskRtVEhfHzM4oHvE/h2A2JekzFO/x1xhMXVm0T19ZPQiH8olB0oW4Md2JvboNOZ9OmxmhgySoaxVwL/jAX9/LpZBDIkUl4x97jP0JmTS5KPm1ajCz9vVIXRG7aOklKzMKYzv+xOfROnD+E7nxOcE3m5/RO8AVI4jQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from PAXPR08MB6926.eurprd08.prod.outlook.com (2603:10a6:102:138::24) by PR3PR08MB5609.eurprd08.prod.outlook.com (2603:10a6:102:81::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.21; Tue, 6 Jul 2021 09:28:12 +0000 Received: from PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::a0ac:755e:a041:e9eb]) by PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::a0ac:755e:a041:e9eb%6]) with mapi id 15.20.4308.019; Tue, 6 Jul 2021 09:28:11 +0000 From: Kyrylo Tkachov To: Prathamesh Kulkarni CC: Christophe LYON , gcc Patches Subject: RE: [ARM] PR98435: Missed optimization in expanding vector constructor Thread-Topic: [ARM] PR98435: Missed optimization in expanding vector constructor Thread-Index: AQHXWRLyJygokSmMF0CR9NG1rePGzqsDeP8AgAgJIgCAB7LIAIAQRO5QgAXFzgCAAACLoIAACqAAgAGq/gCAAd9QAIABSFqAgAebFICAAA+L8IAAF2wAgAAAuYA= Date: Tue, 6 Jul 2021 09:28:09 +0000 Message-ID: References: <9fd8bc30-f7d1-0171-4147-d570413f7a62@foss.st.com> <1d306b96-daa5-3a47-5e3e-d07ddd56dcf4@foss.st.com> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: ED9603A4279C084EBDDE12AE04BB3333.0 x-checkrecipientchecked: true Authentication-Results-Original: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=arm.com; x-originating-ip: [86.31.103.53] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 914518d6-7134-48b8-f2f3-08d94060652a x-ms-traffictypediagnostic: PR3PR08MB5609:|DBBPR08MB4726: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:4714;OLM:4714; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: IMxSS/zcvHclkCFToEmNZBWiLhkDIxkx/aIgqE9ODPjYlOeeX9eLGfKOVP5JuTj6SkXTs0A1CHvRG1D++LxnSolu5Veg6RLmXhDATF/KsTQbrACSJQLmDlCvSVdmyn4wy1Lpp4GL1TYWjxAWQLCxA9wKuZYpp7SJRyT4Fpv4FyOLO8z8BlmMHx+7YP34EVVzQfAAhx7ictPXKXSYzde7BJO8rwBO9U51cTaH7j09JWKeVYtSR7tQhgdIIxAJoR5APurzLBXSQZ7pYcddnjCh7fG+JuGz8hlGOIqFLyqfkFxBYv2ARDSxXnhKf0kpePBMMBnPYG9fqBzHY/4GlrlNwqsQ0QTZG222zvi1LhELoVRmXjAssetS2sAxtWI3v1bOSrp7HIuPmpKXi4xKpzf7G9HGfOSt0ZEpEuPkbEUdO/jQsI5VYGH/+F6zVSoHaomR6H/CN0QrwFo8mJL/hSn+p8gQi7rBwd58F+WBXkffNRFw5X9RmIfWSVParNMfNuKtPChlKXqPSEk5y62A+J3KcJSkjPJoI0ngGCpXvpUvHjuXynJ85iKKUGVp7iBM3dTVhiD5gKDSNWbmUmHuwjoRy15duh4TZxO9w7GCulsrlSv/wAFV5Bai4WbGnYmSCSOX2MNG+nSxqgDdS/EVXxhHHRbgYkmqp4NDLP0DNkmgg+XM2cEAcUbgVFy5pD/Ky6cAd9YcWqKiSXtpCFArSIs9Ed3f5N8PvT9hK197FsSdmVwSrRj8L/rZiFJdTQLUTyux0o8JSE9lMC1mntnKsBVzkA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR08MB6926.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39850400004)(366004)(396003)(346002)(376002)(136003)(71200400001)(122000001)(186003)(7696005)(6506007)(26005)(8676002)(4326008)(52536014)(38100700002)(8936002)(54906003)(9686003)(86362001)(478600001)(55236004)(5660300002)(64756008)(66446008)(66476007)(66556008)(83380400001)(53546011)(316002)(66946007)(55016002)(6916009)(966005)(76116006)(2906002)(33656002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UlhKT3N0NWxGYWRyNGhmOHk1Y2w4M2ZsU0VhYmwva0FJczR0VTBROG1ETk90?= =?utf-8?B?Q25HKzNVekFJY2VoeXFyc3FtSDdkSENuUTNDbGNhYlNUMm5rbThpL1JkY2Nl?= =?utf-8?B?V21IRGNjTzNMeVVsUXE3aU9iUlZmSDVXV29uMzZxNlFFeGJ0ODdrUWdXeU9m?= =?utf-8?B?RXVCaWJLWkVLRUFyb1gwZ3I4QWpKTlFzcWdRaVFHS1BFR0FLd3hNOUYwRUx2?= =?utf-8?B?a21pdTYxbEFhaWROYjFwUWVSdW1mcitMKzIrcXJ6ZnJoNTZuK3lsNTVVTTVO?= =?utf-8?B?QzVUYjVEb3ZZYklISzNKSFcxbTgyOGtNRFZwUGJINEpFTDR4WlZyU3IwblRW?= =?utf-8?B?eS9rMW5oMTc3VzRFeDh5bEtNQmdhU2htc3o3SHArY1RUUUswMVNJTEc0WXI1?= =?utf-8?B?QW04bTNGTFkyQzNRL1NsSjg1aU0vME44cWpJNWJId3g0U0NuV2pnRElTM0RO?= =?utf-8?B?VWhXamFKSi8xb1U4b3J2YzYzeW9raGlkalczb0J6ekNXYkFjRUxIVnU1VlAz?= =?utf-8?B?ZzloS0g2WVpONTY1dDhzNWdNSnpkUEUzZGRwTTlnam5La0Q2WjF6SUdoaDJ1?= =?utf-8?B?ejQrNEVUbjFhV2hDRnBRZGNnd0lPWGtsSUhFQTFvd2p5d0tzRDcrOFQ5ZzR4?= =?utf-8?B?cHdGdk40SjFWM3VtSzU0cGZLVlNpa1VVdHFpWUpreWJGNWZxQ2VrdllDQVRF?= =?utf-8?B?RVorYytCaDJ4L2t1RjJtN3lnemxEUWhPWEtqeVpXc3dETVJDNDd4ZDhFbmhE?= =?utf-8?B?RnVGTW16T3ZLR1ZwZ3FseWZIQWVBcFNKMU5sTDRhbnZVSGpkOUxDQVljZVlh?= =?utf-8?B?Z0tIa3Z1SytmajZpT3g5ejVyQnR6eC8wYzNqdGZOYVAvV243dmZoSGtzYlhS?= =?utf-8?B?Qmw3M3kyWml0N24vR2ZxSGJjNlcwazhHTU9YemE2OWZiSXVXUHY3WHl3ZERM?= =?utf-8?B?Q1ViZEk1OEROeUtFQnlSVUhuaUtTVkFJTHdPazRrczdPei9TYXBnMjRNSjkx?= =?utf-8?B?TnFzNVpEd0hCVHRnaEtKdTZ1REwvbEFjYTV2NE9qQVprVVNuQWhhbjgwRlZy?= =?utf-8?B?NklvcS8wZWhSK0hML25sblowMWtPRmtrMXY2bUo1aHIyd0pxenVBK2JXc3hN?= =?utf-8?B?ampkVEVIbCtvcFdFUkhUOWNwRlpyRDhCZWRZNCtITW92YXdqRDMydzJYOHJH?= =?utf-8?B?d0lQZ0lqZHhOaUZEY0NNb1hmNGhnQ2ZURFUwQjRqTTR6bHBFcFA0bmRYazNH?= =?utf-8?B?MHF0NFloMjgyMjkzTHgwbGJ6SDE4cUpDbno4aFF4YmhZclN3aDY4NVZDSldo?= =?utf-8?B?cmtBejRyNlNQYXNGTzVIZm1HRkRiUTBvQVVZbEI1dDJ5ZS9zSVVWMTZKSFY2?= =?utf-8?B?U01nVUxIeFZZS2J2VlNJL2RhNk9NamdUcENWdkZrekQva0Y0MHVPVWdTWE1y?= =?utf-8?B?SGRrSzU3aUNhb0VSbWpQNmpaVnFCSUtGYVp4dG1yeWNmZ09IWnZKSDJKblBK?= =?utf-8?B?eEoxVU1aZm95YUZDOTNNRms0THVkdjU2eWRYdm1pMCtkSDkvN2hUVWhlRU45?= =?utf-8?B?ZVF6NnpIenZJM3JvbjQ4cUpSVVFSY0w4VjI1Zmx5djlqdjk2ZndCYS9SSzlq?= =?utf-8?B?SnF5R2dKQ3VUUVEyb2FYelE4eHVGSmVwVkw4WC81QzRtaEloTGxod1ZxcGQ5?= =?utf-8?B?NnBpMTFFNVJRbEJXZ21DRlF2elBpaXdhbGxVc2g5T1FLNnlMZ2NqRXkrMStj?= =?utf-8?Q?6CyfXtbEpLt/pzbBE8=3D?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR08MB5609 Original-Authentication-Results: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT027.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: db3c93ec-a61b-4ebe-3cd7-08d940605f89 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lv+O4BvBbD2CyeXz9r3Mi21vn9kejAHN63UksDzidHrjCfgTo9eeJaj96SS3sADLL/UXTaGxOf29LJcIUBbfmh6kbNeZewskYRlKodVgrITnY0jIKx5wXcoD/lexKqNm/ww4SnoEpdxiJe98AzxnUGr5ttiDayOCHQFoFXycgNkW7boaluRUOyTtkHSq3wlFgKVXdJ6CTaQn2RF/ZEvP8+ZVGkIhsDZHLq09pAqfExOrbcVCip/dDsiemmsJNQvE/q7WhU8y1tWyzGVl2LIY8O2GcbjdKkGm8sv0yhas4IuaxYc2L4YfQcCPzZnYXqGMmUZkgfvxVKlfwE6qIZUwCRIMDKta1H0T5wJt5/qmd3IChZpgJVC0yDXF0O9Sw68F3VpblAHTyUAsMLxj4xxhHtitAzxM7/I3gjxCdeUs+fMevtcX6noX9qZ2SwGT2r1zzfha7JlUpc2Y8d0V/F36DE/vC6LCN8fwPACSMF/Y7uh33DKpN8fSKqWJUWFQucx/mNyRDnRwdZq9BL77Kw096lwnskJ1zlK2JHcZPS2c7RdiJnVeeEPCrmc65y5wNVe+Cy57wmUuH8OIBr5Z6jjGLaEufy/IRL3rl2p5wFB9JDieTt790Z2H9IXsLi1jXdxc4V9eIm7excHgh0ydckBs1bUMr5hNSRimVDKzWHIuoY3jwti7x91HNUTvlQE1zqorYhWGWdciapx1pnNvr4M/n7StvX/JTNWU5Uw9hS7wqLheJkEbZV/NQ656JFhx/0DHN/nsGJQ/YvnDn55t9Lmat8bPN5v7DeLgL43OFz5q9uBnKoLMvfySU7Bbjelws9YVOKt4EXWE4JS34FsJYGhG/g== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(396003)(376002)(39850400004)(136003)(346002)(46966006)(36840700001)(33656002)(82310400003)(186003)(70206006)(336012)(478600001)(83380400001)(55016002)(52536014)(356005)(81166007)(316002)(8936002)(9686003)(70586007)(26005)(86362001)(53546011)(8676002)(36860700001)(5660300002)(55236004)(6862004)(2906002)(966005)(54906003)(47076005)(7696005)(30864003)(6506007)(4326008)(82740400003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2021 09:28:20.7897 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 914518d6-7134-48b8-f2f3-08d94060652a X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DB5EUR03FT027.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB4726 X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Jul 2021 09:28:26 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUHJhdGhhbWVzaCBLdWxr YXJuaSA8cHJhdGhhbWVzaC5rdWxrYXJuaUBsaW5hcm8ub3JnPg0KPiBTZW50OiAwNiBKdWx5IDIw MjEgMTA6MjUNCj4gVG86IEt5cnlsbyBUa2FjaG92IDxLeXJ5bG8uVGthY2hvdkBhcm0uY29tPg0K PiBDYzogQ2hyaXN0b3BoZSBMWU9OIDxjaHJpc3RvcGhlLmx5b25AZm9zcy5zdC5jb20+OyBnY2Mg UGF0Y2hlcyA8Z2NjLQ0KPiBwYXRjaGVzQGdjYy5nbnUub3JnPg0KPiBTdWJqZWN0OiBSZTogW0FS TV0gUFI5ODQzNTogTWlzc2VkIG9wdGltaXphdGlvbiBpbiBleHBhbmRpbmcgdmVjdG9yDQo+IGNv bnN0cnVjdG9yDQo+IA0KPiBPbiBUdWUsIDYgSnVsIDIwMjEgYXQgMTM6MzMsIEt5cnlsbyBUa2Fj aG92IDxLeXJ5bG8uVGthY2hvdkBhcm0uY29tPg0KPiB3cm90ZToNCj4gPg0KPiA+DQo+ID4NCj4g PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBQcmF0aGFtZXNoIEt1 bGthcm5pIDxwcmF0aGFtZXNoLmt1bGthcm5pQGxpbmFyby5vcmc+DQo+ID4gPiBTZW50OiAwNiBK dWx5IDIwMjEgMDg6MDYNCj4gPiA+IFRvOiBDaHJpc3RvcGhlIExZT04gPGNocmlzdG9waGUubHlv bkBmb3NzLnN0LmNvbT4NCj4gPiA+IENjOiBLeXJ5bG8gVGthY2hvdiA8S3lyeWxvLlRrYWNob3ZA YXJtLmNvbT47IGdjYyBQYXRjaGVzIDxnY2MtDQo+ID4gPiBwYXRjaGVzQGdjYy5nbnUub3JnPg0K PiA+ID4gU3ViamVjdDogUmU6IFtBUk1dIFBSOTg0MzU6IE1pc3NlZCBvcHRpbWl6YXRpb24gaW4g ZXhwYW5kaW5nIHZlY3Rvcg0KPiA+ID4gY29uc3RydWN0b3INCj4gPiA+DQo+ID4gPiBPbiBUaHUs IDEgSnVsIDIwMjEgYXQgMTY6MjYsIFByYXRoYW1lc2ggS3Vsa2FybmkNCj4gPiA+IDxwcmF0aGFt ZXNoLmt1bGthcm5pQGxpbmFyby5vcmc+IHdyb3RlOg0KPiA+ID4gPg0KPiA+ID4gPiBPbiBXZWQs IDMwIEp1biAyMDIxIGF0IDIwOjUxLCBDaHJpc3RvcGhlIExZT04NCj4gPiA+ID4gPGNocmlzdG9w aGUubHlvbkBmb3NzLnN0LmNvbT4gd3JvdGU6DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4g PiA+IE9uIDI5LzA2LzIwMjEgMTI6NDYsIFByYXRoYW1lc2ggS3Vsa2Fybmkgd3JvdGU6DQo+ID4g PiA+ID4gPiBPbiBNb24sIDI4IEp1biAyMDIxIGF0IDE0OjQ4LCBDaHJpc3RvcGhlIExZT04NCj4g PiA+ID4gPiA+IDxjaHJpc3RvcGhlLmx5b25AZm9zcy5zdC5jb20+IHdyb3RlOg0KPiA+ID4gPiA+ ID4+DQo+ID4gPiA+ID4gPj4gT24gMjgvMDYvMjAyMSAxMDo0MCwgS3lyeWxvIFRrYWNob3Ygdmlh IEdjYy1wYXRjaGVzIHdyb3RlOg0KPiA+ID4gPiA+ID4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiA+ID4gPiA+Pj4+IEZyb206IFByYXRoYW1lc2ggS3Vsa2FybmkgPHByYXRoYW1l c2gua3Vsa2FybmlAbGluYXJvLm9yZz4NCj4gPiA+ID4gPiA+Pj4+IFNlbnQ6IDI4IEp1bmUgMjAy MSAwOTozOA0KPiA+ID4gPiA+ID4+Pj4gVG86IEt5cnlsbyBUa2FjaG92IDxLeXJ5bG8uVGthY2hv dkBhcm0uY29tPg0KPiA+ID4gPiA+ID4+Pj4gQ2M6IENocmlzdG9waGUgTHlvbiA8Y2hyaXN0b3Bo ZS5seW9uQGxpbmFyby5vcmc+OyBnY2MgUGF0Y2hlcw0KPiA+ID4gPGdjYy0NCj4gPiA+ID4gPiA+ Pj4+IHBhdGNoZXNAZ2NjLmdudS5vcmc+DQo+ID4gPiA+ID4gPj4+PiBTdWJqZWN0OiBSZTogW0FS TV0gUFI5ODQzNTogTWlzc2VkIG9wdGltaXphdGlvbiBpbiBleHBhbmRpbmcNCj4gPiA+IHZlY3Rv cg0KPiA+ID4gPiA+ID4+Pj4gY29uc3RydWN0b3INCj4gPiA+ID4gPiA+Pj4+DQo+ID4gPiA+ID4g Pj4+PiBPbiBUaHUsIDI0IEp1biAyMDIxIGF0IDIyOjAxLCBLeXJ5bG8gVGthY2hvdg0KPiA+ID4g PEt5cnlsby5Ua2FjaG92QGFybS5jb20+DQo+ID4gPiA+ID4gPj4+PiB3cm90ZToNCj4gPiA+ID4g PiA+Pj4+Pg0KPiA+ID4gPiA+ID4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ ID4gPiA+ID4+Pj4+PiBGcm9tOiBQcmF0aGFtZXNoIEt1bGthcm5pIDxwcmF0aGFtZXNoLmt1bGth cm5pQGxpbmFyby5vcmc+DQo+ID4gPiA+ID4gPj4+Pj4+IFNlbnQ6IDE0IEp1bmUgMjAyMSAwOTow Mg0KPiA+ID4gPiA+ID4+Pj4+PiBUbzogQ2hyaXN0b3BoZSBMeW9uIDxjaHJpc3RvcGhlLmx5b25A bGluYXJvLm9yZz4NCj4gPiA+ID4gPiA+Pj4+Pj4gQ2M6IGdjYyBQYXRjaGVzIDxnY2MtcGF0Y2hl c0BnY2MuZ251Lm9yZz47IEt5cnlsbyBUa2FjaG92DQo+ID4gPiA+ID4gPj4+Pj4+IDxLeXJ5bG8u VGthY2hvdkBhcm0uY29tPg0KPiA+ID4gPiA+ID4+Pj4+PiBTdWJqZWN0OiBSZTogW0FSTV0gUFI5 ODQzNTogTWlzc2VkIG9wdGltaXphdGlvbiBpbg0KPiBleHBhbmRpbmcNCj4gPiA+IHZlY3Rvcg0K PiA+ID4gPiA+ID4+Pj4+PiBjb25zdHJ1Y3Rvcg0KPiA+ID4gPiA+ID4+Pj4+Pg0KPiA+ID4gPiA+ ID4+Pj4+PiBPbiBXZWQsIDkgSnVuIDIwMjEgYXQgMTU6NTgsIFByYXRoYW1lc2ggS3Vsa2FybmkN Cj4gPiA+ID4gPiA+Pj4+Pj4gPHByYXRoYW1lc2gua3Vsa2FybmlAbGluYXJvLm9yZz4gd3JvdGU6 DQo+ID4gPiA+ID4gPj4+Pj4+PiBPbiBGcmksIDQgSnVuIDIwMjEgYXQgMTM6MTUsIENocmlzdG9w aGUgTHlvbg0KPiA+ID4gPiA+ID4+Pj4gPGNocmlzdG9waGUubHlvbkBsaW5hcm8ub3JnPg0KPiA+ ID4gPiA+ID4+Pj4+PiB3cm90ZToNCj4gPiA+ID4gPiA+Pj4+Pj4+PiBPbiBGcmksIDQgSnVuIDIw MjEgYXQgMDk6MjcsIFByYXRoYW1lc2ggS3Vsa2FybmkgdmlhIEdjYy0NCj4gPiA+IHBhdGNoZXMN Cj4gPiA+ID4gPiA+Pj4+Pj4+PiA8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+IHdyb3RlOg0KPiA+ ID4gPiA+ID4+Pj4+Pj4+PiBIaSwNCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4gQXMgbWVudGlvbmVkIGlu IFBSLCBmb3IgdGhlIGZvbGxvd2luZyB0ZXN0LWNhc2U6DQo+ID4gPiA+ID4gPj4+Pj4+Pj4+DQo+ ID4gPiA+ID4gPj4+Pj4+Pj4+ICNpbmNsdWRlIDxhcm1fbmVvbi5oPg0KPiA+ID4gPiA+ID4+Pj4+ Pj4+Pg0KPiA+ID4gPiA+ID4+Pj4+Pj4+PiBiZmxvYXQxNng0X3QgZjEgKGJmbG9hdDE2X3QgYSkN Cj4gPiA+ID4gPiA+Pj4+Pj4+Pj4gew0KPiA+ID4gPiA+ID4+Pj4+Pj4+PiAgICAgcmV0dXJuIHZk dXBfbl9iZjE2IChhKTsNCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4gfQ0KPiA+ID4gPiA+ID4+Pj4+Pj4+ Pg0KPiA+ID4gPiA+ID4+Pj4+Pj4+PiBiZmxvYXQxNng0X3QgZjIgKGJmbG9hdDE2X3QgYSkNCj4g PiA+ID4gPiA+Pj4+Pj4+Pj4gew0KPiA+ID4gPiA+ID4+Pj4+Pj4+PiAgICAgcmV0dXJuIChiZmxv YXQxNng0X3QpIHthLCBhLCBhLCBhfTsNCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4gfQ0KPiA+ID4gPiA+ ID4+Pj4+Pj4+Pg0KPiA+ID4gPiA+ID4+Pj4+Pj4+PiBDb21waWxpbmcgd2l0aCBhcm0tbGludXgt Z251ZWFiaSAtTzMgLW1mcHU9bmVvbiAtDQo+IG1mbG9hdC0NCj4gPiA+ID4gPiA+Pj4+IGFiaT1z b2Z0ZnANCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4gLW1hcmNoPWFybXY4LjItYStiZjE2K2ZwMTYgcmVz dWx0cyBpbiBmMiBub3QgYmVpbmcNCj4gPiA+IHZlY3Rvcml6ZWQ6DQo+ID4gPiA+ID4gPj4+Pj4+ Pj4+DQo+ID4gPiA+ID4gPj4+Pj4+Pj4+IGYxOg0KPiA+ID4gPiA+ID4+Pj4+Pj4+PiAgICAgICAg ICAgdmR1cC4xNiBkMTYsIHIwDQo+ID4gPiA+ID4gPj4+Pj4+Pj4+ICAgICAgICAgICB2bW92ICAg IHIwLCByMSwgZDE2ICBAIHY0YmYNCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4gICAgICAgICAgIGJ4ICAg ICAgbHINCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4NCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4gZjI6DQo+ID4g PiA+ID4gPj4+Pj4+Pj4+ICAgICAgICAgICBtb3YgICAgIHIzLCByMCAgQCBfX2JmMTYNCj4gPiA+ ID4gPiA+Pj4+Pj4+Pj4gICAgICAgICAgIGFkciAgICAgcjEsIC5MNA0KPiA+ID4gPiA+ID4+Pj4+ Pj4+PiAgICAgICAgICAgbGRyZCAgICByMCwgW3IxXQ0KPiA+ID4gPiA+ID4+Pj4+Pj4+PiAgICAg ICAgICAgbW92ICAgICByMiwgcjMgIEAgX19iZjE2DQo+ID4gPiA+ID4gPj4+Pj4+Pj4+ICAgICAg ICAgICBtb3YgICAgIGlwLCByMyAgQCBfX2JmMTYNCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4gICAgICAg ICAgIGJmaSAgICAgcjEsIHIyLCAjMCwgIzE2DQo+ID4gPiA+ID4gPj4+Pj4+Pj4+ICAgICAgICAg ICBiZmkgICAgIHIwLCBpcCwgIzAsICMxNg0KPiA+ID4gPiA+ID4+Pj4+Pj4+PiAgICAgICAgICAg YmZpICAgICByMSwgcjMsICMxNiwgIzE2DQo+ID4gPiA+ID4gPj4+Pj4+Pj4+ICAgICAgICAgICBi ZmkgICAgIHIwLCByMiwgIzE2LCAjMTYNCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4gICAgICAgICAgIGJ4 ICAgICAgbHINCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4NCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4gVGhpcyBz ZWVtcyB0byBoYXBwZW4gYmVjYXVzZSB2ZWNfaW5pdCBwYXR0ZXJuIGluIG5lb24ubWQNCj4gPiA+ IGhhcyBWRFENCj4gPiA+ID4gPiA+Pj4+Pj4gbW9kZQ0KPiA+ID4gPiA+ID4+Pj4+Pj4+PiBpdGVy YXRvciwgd2hpY2ggZG9lc24ndCBpbmNsdWRlIFY0QkYuIEluIGF0dGFjaGVkIHBhdGNoLCBJDQo+ ID4gPiBjaGFuZ2VkDQo+ID4gPiA+ID4gPj4+Pj4+Pj4+IG1vZGUNCj4gPiA+ID4gPiA+Pj4+Pj4+ Pj4gdG8gVkRRWCB3aGljaCBzZWVtcyB0byB3b3JrIGZvciB0aGUgdGVzdC1jYXNlLCBhbmQgdGhl DQo+ID4gPiBjb21waWxlcg0KPiA+ID4gPiA+ID4+Pj4gbm93DQo+ID4gPiA+ID4gPj4+Pj4+IGdl bmVyYXRlczoNCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4gZjI6DQo+ID4gPiA+ID4gPj4+Pj4+Pj4+ICAg ICAgICAgICB2ZHVwLjE2IGQxNiwgcjANCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4gICAgICAgICAgIHZt b3YgICAgcjAsIHIxLCBkMTYgIEAgdjRiZg0KPiA+ID4gPiA+ID4+Pj4+Pj4+PiAgICAgICAgICAg YnggICAgICBscg0KPiA+ID4gPiA+ID4+Pj4+Pj4+Pg0KPiA+ID4gPiA+ID4+Pj4+Pj4+PiBIb3dl dmVyLCB0aGUgcGF0dGVybiBpcyBhbHNvIGdhdGVkIG9uDQo+IFRBUkdFVF9IQVZFX01WRQ0KPiA+ ID4gYW5kIEkgYW0NCj4gPiA+ID4gPiA+Pj4+Pj4gbm90DQo+ID4gPiA+ID4gPj4+Pj4+Pj4+IHN1 cmUgaWYgZWl0aGVyIFZEUSBvciBWRFFYIGFyZSBjb3JyZWN0IG1vZGVzIGZvciBNVkUNCj4gc2lu Y2UNCj4gPiA+IE1WRQ0KPiA+ID4gPiA+ID4+Pj4gaGFzDQo+ID4gPiA+ID4gPj4+Pj4+Pj4+IG9u bHkgMTI4LWJpdCB2ZWN0b3JzID8NCj4gPiA+ID4gPiA+Pj4+Pj4+Pj4NCj4gPiA+ID4gPiA+Pj4+ Pj4+PiBJIHRoaW5rIHBhdHRlcm5zIGNvbW1vbiB0byBib3RoIE5lb24gYW5kIE1WRSBzaG91bGQg YmUNCj4gPiA+IG1vdmVkIHRvDQo+ID4gPiA+ID4gPj4+Pj4+Pj4gdmVjLWNvbW1vbi5tZCwgSSBk b24ndCBrbm93IHdoeSBzdWNoIHBhdHRlcm5zIHdlcmUgbGVmdA0KPiBpbg0KPiA+ID4gPiA+ID4+ Pj4gbmVvbi5tZC4NCj4gPiA+ID4gPiA+Pj4+Pj4+IFNpbmNlIHdlIGVuZCB1cCBjYWxsaW5nIG5l b25fZXhwYW5kX3ZlY3Rvcl9pbml0IGZvciBib3RoDQo+ID4gPiBORU9OIGFuZA0KPiA+ID4gPiA+ ID4+Pj4gTVZFLA0KPiA+ID4gPiA+ID4+Pj4+Pj4gSSBhbSBub3Qgc3VyZSBpZiB3ZSBzaG91bGQg c2VwYXJhdGUgdGhlIHBhdHRlcm4gPw0KPiA+ID4gPiA+ID4+Pj4+Pj4gV291bGQgaXQgbWFrZSBz ZW5zZSB0byBGQUlMIGlmIHRoZSBtb2RlIHNpemUgaXNuJ3QgMTYgYnl0ZXMNCj4gZm9yDQo+ID4g PiBNVkUgYXMNCj4gPiA+ID4gPiA+Pj4+Pj4+IGluIGF0dGFjaGVkIHBhdGNoIHNvDQo+ID4gPiA+ ID4gPj4+Pj4+PiBpdCB3aWxsIGNhbGwgbmVvbl9leHBhbmRfdmVjdG9yX2luaXQgb25seSBmb3Ig MTI4LWJpdCB2ZWN0b3JzID8NCj4gPiA+ID4gPiA+Pj4+Pj4+IEFsdGhvIGhhcmQtY29kaW5nIDE2 IGluIHRoZSBwYXR0ZXJuIGRvZXNuJ3Qgc2VlbSBhIGdvb2QNCj4gaWRlYSB0bw0KPiA+ID4gbWUN Cj4gPiA+ID4gPiA+Pj4+IGVpdGhlci4NCj4gPiA+ID4gPiA+Pj4+Pj4gcGluZyBodHRwczovL2dj Yy5nbnUub3JnL3BpcGVybWFpbC9nY2MtcGF0Y2hlcy8yMDIxLQ0KPiA+ID4gSnVuZS81NzIzNDIu aHRtbA0KPiA+ID4gPiA+ID4+Pj4+PiAoYXR0YWNoaW5nIHBhdGNoIGFzIHRleHQpLg0KPiA+ID4g PiA+ID4+Pj4+Pg0KPiA+ID4gPiA+ID4+Pj4+IC0tLSBhL2djYy9jb25maWcvYXJtL25lb24ubWQN Cj4gPiA+ID4gPiA+Pj4+PiArKysgYi9nY2MvY29uZmlnL2FybS9uZW9uLm1kDQo+ID4gPiA+ID4g Pj4+Pj4gQEAgLTQ1OSwxMCArNDU5LDEyIEBADQo+ID4gPiA+ID4gPj4+Pj4gICAgKQ0KPiA+ID4g PiA+ID4+Pj4+DQo+ID4gPiA+ID4gPj4+Pj4gICAgKGRlZmluZV9leHBhbmQgInZlY19pbml0PG1v ZGU+PFZfZWxlbV9sPiINCj4gPiA+ID4gPiA+Pj4+PiAtICBbKG1hdGNoX29wZXJhbmQ6VkRRIDAg InNfcmVnaXN0ZXJfb3BlcmFuZCIpDQo+ID4gPiA+ID4gPj4+Pj4gKyAgWyhtYXRjaF9vcGVyYW5k OlZEUVggMCAic19yZWdpc3Rlcl9vcGVyYW5kIikNCj4gPiA+ID4gPiA+Pj4+PiAgICAgICAobWF0 Y2hfb3BlcmFuZCAxICIiICIiKV0NCj4gPiA+ID4gPiA+Pj4+PiAgICAgICJUQVJHRVRfTkVPTiB8 fCBUQVJHRVRfSEFWRV9NVkUiDQo+ID4gPiA+ID4gPj4+Pj4gICAgew0KPiA+ID4gPiA+ID4+Pj4+ ICsgIGlmIChUQVJHRVRfSEFWRV9NVkUgJiYgR0VUX01PREVfU0laRSAoR0VUX01PREUNCj4gPiA+ ID4gPiA+Pj4+IChvcGVyYW5kc1swXSkpICE9IDE2KQ0KPiA+ID4gPiA+ID4+Pj4+ICsgICAgRkFJ TDsNCj4gPiA+ID4gPiA+Pj4+PiAgICAgIG5lb25fZXhwYW5kX3ZlY3Rvcl9pbml0IChvcGVyYW5k c1swXSwgb3BlcmFuZHNbMV0pOw0KPiA+ID4gPiA+ID4+Pj4+ICAgICAgRE9ORTsNCj4gPiA+ID4g PiA+Pj4+PiAgICB9KQ0KPiA+ID4gPiA+ID4+Pj4+DQo+ID4gPiA+ID4gPj4+Pj4gSSB0aGluayB3 ZSBzaG91bGQgbW92ZSB0aGlzIHRvIHZlYy1jb21tb24ubWQgbGlrZSBDaHJpc3RvcGhlDQo+ID4g PiBzYWlkLg0KPiA+ID4gPiA+ID4+Pj4+IFBlcmhhcHMgcmF0aGVyIHRoYW4gbWFraW5nIGl0IEZB SUwgZm9yIG5vbi0xNiBNVkUgc2l6ZXMgd2UNCj4ganVzdA0KPiA+ID4gZGlzYWJsZSBpdCBpbg0K PiA+ID4gPiA+ID4+Pj4gdGhlIGV4cGFuZGVyIGNvbmRpdGlvbj8NCj4gPiA+ID4gPiA+Pj4+PiAi VEFSR0VUX05FT04gfHwgKFRBUkdFVF9IQVZFX01WRSAmJiBHRVRfTU9ERV9TSVpFDQo+ICg8DQo+ ID4gPiA+ID4gPj4+PiBWRFE+bW9kZSkgIT0gMTYpIg0KPiA+ID4gPiA+ID4+Pj4gSXMgaXQgT0sg dG8gdXNlIDxNT0RFPm1vZGUgPyBCZWNhdXNlIHVzaW5nIDxWRFE+bW9kZQ0KPiByZXN1bHRlZA0K PiA+ID4gaW4gbG90DQo+ID4gPiA+ID4gPj4+PiBvZiBidWlsZCBlcnJvcnMuDQo+ID4gPiA+ID4g Pj4+PiBBbHNvLCBJIHRoaW5rIHRoZSBjb21wYXJpc29uIHNob3VsZCBiZSBpbnZlcnRlZCwgaWUs DQo+IEdFVF9NT0RFX1NJWkUNCj4gPiA+ID4gPiA+Pj4+ICg8TU9ERT5tb2RlKSA9PSAxNiBzaW5j ZQ0KPiA+ID4gPiA+ID4+Pj4gd2Ugd2FudCB0byBtYWtlIHRoZSBwYXR0ZXJuIHBhc3MgaWYgdGFy Z2V0IGlzIE1WRSBhbmQgdmVjdG9yDQo+IHNpemUgaXMNCj4gPiA+IDE2IGJ5dGVzID8NCj4gPiA+ ID4gPiA+Pj4+IERvIHRoZXNlIGNoYW5nZXMgaW4gYXR0YWNoZWQgcGF0Y2ggbG9vayBPSyA/DQo+ ID4gPiA+ID4gPj4+IFllcywgeW91J3JlIHJpZ2h0Lg0KPiA+ID4gPiA+ID4+DQo+ID4gPiA+ID4g Pj4gQ2FuJ3QgdGhpcyBiZSBBUk1fSEFWRV88TU9ERT5fQVJJVEggbGlrZSBpbiBtb3N0IGV4cGFu ZGVycyBpbg0KPiA+ID4gdmVjLWNvbW1vbi5tZD8NCj4gPiA+ID4gPiA+Pg0KPiA+ID4gPiA+ID4+ IChtYXliZSB3aXRoIGEgJiYgIVRBUkdFVF9SRUFMTFlfSVdNTVhUIGlmIG5lZWRlZCkNCj4gPiA+ ID4gPiA+IEkgd29uZGVyIGlmIHRoaXMgc2hvdWxkIGJlIEFSTV9IQVZFXzxNT0RFPl9MRFNUIGlu c3RlYWQgc2luY2UNCj4gPiA+IHdlJ3JlDQo+ID4gPiA+ID4gPiBpbml0aWFsaXppbmcgdGhlIHZl Y3RvciA/DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFdlbGwsIGl0IHJlYWxseSBk ZXBlbmRzIG9uIHdoaWNoIG1vZGVzIHlvdSB3YW50IHRvIGVuYWJsZS4NCj4gPiA+ID4gPg0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gTG9va3MgbGlrZSB5b3VyIG1vdmUgVkRRIC0+IFZEUSBhZGRzIFY0 QkYsIFY4QkYgYW5kIERJLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQXJlIHRoZXkgYWxsIE9LIGZv ciBOZW9uPw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVGhleSBhcmUgbm90IE9LIGZvciBNVkUuDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiBJZGVhbGx5IHlvdSBjb3VsZCBhZGQgdGVzdGNhc2VzIHRvIGNv dmVyIHRvIHRoZSBzdXBwb3J0ZWQgYW5kDQo+ID4gPiA+ID4gdW5zdXBwb3J0ZWQgbW9kZXMgZm9y IGJvdGggTmVvbiBhbmQgTVZFLlwNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEJlZm9yZSB5b3VyIHBh dGNoLCB0aGUgZXhwYW5kZXIgaXMgZW5hYmxlZCBmb3IgTVZFIGZvciA2NCBiaXQgbW9kZXMNCj4g PiA+ID4gPiAoVjhRSSwgVjRISSwgVjJTSSk6IHdoYXQgaGFwcGVucyBpbiB0aGlzIGNhc2U/IERv ZXMgdGhlIGNvbXBpbGVyDQo+IGNyYXNoDQo+ID4gPiA+ID4gb3IgaXMgdGhlcmUgc29tZXRoaW5n IGVsc2UgcHJldmVudGluZyB0aGUgbWF0Y2g/DQo+ID4gPiA+IEhpLA0KPiA+ID4gPiBBcHBhcmVu dGx5IHRoZXJlIGlzIFZBTElEX01WRV9NT0RFIG1hY3JvLCBzbyBpcyBpdCBiZXR0ZXIgdG8gdXNl Og0KPiA+ID4gPiBUQVJHRVRfTkVPTiB8fCAoVEFSR0VUX0hBVkVfTVZFICYmDQo+ID4gPiBWQUxJ RF9NVkVfTU9ERSg8TU9ERT5tb2RlKSkNCj4gPiA+ID4gYXMgaW4gdGhlIGF0dGFjaGVkIHBhdGNo ID8NCj4gPg0KPiA+IFRoZSBjaGFuZ2UgaXMgb2suIEkgd291bGQgbGlrZSB0byBzZWUgc29tZSB0 ZXN0Y2FzZXMgbGlrZSBDaHJpc3RvcGhlDQo+IHN1Z2dlc3RlZCwgYnV0IHRoaXMgcGF0Y2gganVz dCBtb3ZlcyB0aGUgZXhwYW5kZXIgYXJvdW5kIHJhdGhlciB0aGFuDQo+IGludHJvZHVjaW5nIG5l dyBmdW5jdGlvbmFsaXR5Lg0KPiBIaSBLeXJpbGwsDQo+IEFzIG1lbnRpb25lZCBpbiB0aGUgZmly c3QgZW1haWwsIHRoZSBwYXRjaCBpbXByb3ZlcyBjb2RlLWdlbiBmb3INCj4gZm9sbG93aW5nIHRl c3QtY2FzZToNCj4gDQo+IGJmbG9hdDE2eDRfdCBmIChiZmxvYXQxNl90IGEpDQo+IHsNCj4gICBy ZXR1cm4gKGJmbG9hdDE2eDRfdCkge2EsIGEsIGEsIGF9Ow0KPiB9DQo+IA0KPiBCZWZvcmUgcGF0 Y2g6DQo+IGY6DQo+ICAgICAgICAgbW92ICAgICByMywgcjAgIEAgX19iZjE2DQo+ICAgICAgICAg YWRyICAgICByMSwgLkw0DQo+ICAgICAgICAgbGRyZCAgICByMCwgW3IxXQ0KPiAgICAgICAgIG1v diAgICAgcjIsIHIzICBAIF9fYmYxNg0KPiAgICAgICAgIG1vdiAgICAgaXAsIHIzICBAIF9fYmYx Ng0KPiAgICAgICAgIGJmaSAgICAgcjEsIHIyLCAjMCwgIzE2DQo+ICAgICAgICAgYmZpICAgICBy MCwgaXAsICMwLCAjMTYNCj4gICAgICAgICBiZmkgICAgIHIxLCByMywgIzE2LCAjMTYNCj4gICAg ICAgICBiZmkgICAgIHIwLCByMiwgIzE2LCAjMTYNCj4gICAgICAgICBieCAgICAgIGxyDQo+IA0K PiBBZnRlciBwYXRjaDoNCj4gZjoNCj4gICAgICAgICB2ZHVwLjE2IGQxNiwgcjANCj4gICAgICAg ICB2bW92ICAgIHIwLCByMSwgZDE2ICBAIHY0YmYNCj4gICAgICAgICBieCAgICAgIGxyDQo+IA0K PiBiZWNhdXNlIHRoZSBwYXRjaCBjaGFuZ2VzIG1vZGUgZnJvbSBWRFEgdG8gVkRRWCB0byBhY2Nv bW1vZGF0ZSBiZg0KPiBtb2Rlcy4NCj4gSSBoYXZlIGluY2x1ZGVkIHRoZSB0ZXN0IGluIHRoZSBh dHRhY2hlZCBwYXRjaC4NCj4gSSB0aGluayBDaHJpc3RvcGhlJ3MgY29uY2VybnMgd2VyZSBtYWlu bHkgYWJvdXQgdGhlIHJpZ2h0IG1vZGVzDQo+IGdldHRpbmcgZW5hYmxlZCBmb3IgTVZFLg0KPiBV bmZvcnR1bmF0ZWx5LCBJIGFtIG5vdCBzdXJlIGhvdyB0byB0ZXN0IGZvciB0aGF0IGJlY2F1c2Ug dGhlIEZFDQo+IGNhdGNoZXMgaW52YWxpZCBtb2RlcywgYW5kIHdlIGRvbid0DQo+IGVuZCB1cCBo aXR0aW5nIHRoZSBwYXR0ZXJuLg0KDQpBaCwgdGhhdCBzaG91bGQgYmUgb2sgdGhlbi4NClRoYW5r cywNCkt5cmlsbA0KDQo+IA0KPiBUaGFua3MsDQo+IFByYXRoYW1lc2gNCj4gPiBUaGFua3MsDQo+ ID4gS3lyaWxsDQo+ID4NCj4gPiA+IHBpbmcgaHR0cHM6Ly9nY2MuZ251Lm9yZy9waXBlcm1haWwv Z2NjLXBhdGNoZXMvMjAyMS1KdWx5LzU3NDIwNi5odG1sDQo+ID4gPg0KPiA+ID4gVGhhbmtzLA0K PiA+ID4gUHJhdGhhbWVzaA0KPiA+ID4gPg0KPiA+ID4gPiBUaGFua3MsDQo+ID4gPiA+IFByYXRo YW1lc2gNCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPiA+ DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBDaHJpc3RvcGhlDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPiA+ID4gUHJhdGhhbWVzaA0KPiA+ID4gPiA+ID4+ DQo+ID4gPiA+ID4gPj4gQ2hyaXN0b3BoZQ0KPiA+ID4gPiA+ID4+DQo+ID4gPiA+ID4gPj4NCj4g PiA+ID4gPiA+Pj4gT2suDQo+ID4gPiA+ID4gPj4+IFRoYW5rcywNCj4gPiA+ID4gPiA+Pj4gS3ly aWxsDQo+ID4gPiA+ID4gPj4+DQo+ID4gPiA+ID4gPj4+DQo+ID4gPiA+ID4gPj4+PiBUaGFua3Ms DQo+ID4gPiA+ID4gPj4+PiBQcmF0aGFtZXNoDQo+ID4gPiA+ID4gPj4+Pj4gVGhhbmtzLA0KPiA+ ID4gPiA+ID4+Pj4+IEt5cmlsbA0KPiA+ID4gPiA+ID4+Pj4+DQo+ID4gPiA+ID4gPj4+Pj4+IFRo YW5rcywNCj4gPiA+ID4gPiA+Pj4+Pj4gUHJhdGhhbWVzaA0KPiA+ID4gPiA+ID4+Pj4+Pj4gVGhh bmtzLA0KPiA+ID4gPiA+ID4+Pj4+Pj4gUHJhdGhhbWVzaA0KPiA+ID4gPiA+ID4+Pj4+Pj4+IFRo YXQgYmVpbmcgc2FpZCwgSSBzdWdnZXN0IHlvdSBsb29rIGF0IG90aGVyIHNpbWlsYXIgcGF0dGVy bnMNCj4gaW4NCj4gPiA+ID4gPiA+Pj4+Pj4+PiB2ZWMtY29tbW9uLm1kLCBtb3N0IG9mIHdoaWNo IGFyZSBnYXRlZCBvbg0KPiA+ID4gPiA+ID4+Pj4+Pj4+IEFSTV9IQVZFXzxNT0RFPl9BUklUSA0K PiA+ID4gPiA+ID4+Pj4+Pj4+IGFuZCBwb3NzaWJseSBiZXdhcmUgb2YgaXNzdWVzIHdpdGggaXdt bXh0IDotKQ0KPiA+ID4gPiA+ID4+Pj4+Pj4+DQo+ID4gPiA+ID4gPj4+Pj4+Pj4gQ2hyaXN0b3Bo ZQ0KPiA+ID4gPiA+ID4+Pj4+Pj4+DQo+ID4gPiA+ID4gPj4+Pj4+Pj4+IFRoYW5rcywNCj4gPiA+ ID4gPiA+Pj4+Pj4+Pj4gUHJhdGhhbWVzaA0K