From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (EUR03-VE1-obe.outbound.protection.outlook.com [40.107.5.70]) by mx.groups.io with SMTP id smtpd.web10.4744.1594294639812786975 for ; Thu, 09 Jul 2020 04:37:20 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=WwepXNze; spf=pass (domain: arm.com, ip: 40.107.5.70, mailfrom: sami.mujawar@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pMROscowoEfc96F3s09I4ePvzXETa17WKZXqCSckaP4=; b=WwepXNzeoh/NVkvDRlF/+Mlr8a1ogu3agkeRW7sD5p0lUp8DLaxuCjF8fgqB20fqOjCzwZlE05HNMFT+N8K3hDJ1Lwq0nBTfQWRKzktcA8OVWlPawW2EYGDuelFZRqVOMeroOIxaZRK8GYqnE1KCZfr07sAtpkiZ3aQFxJaCtLM= Received: from AM6PR0202CA0072.eurprd02.prod.outlook.com (2603:10a6:20b:3a::49) by AM5PR0801MB2100.eurprd08.prod.outlook.com (2603:10a6:203:50::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.22; Thu, 9 Jul 2020 11:37:16 +0000 Received: from AM5EUR03FT058.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:3a:cafe::1c) by AM6PR0202CA0072.outlook.office365.com (2603:10a6:20b:3a::49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.21 via Frontend Transport; Thu, 9 Jul 2020 11:37:16 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; dmarc=bestguesspass 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 AM5EUR03FT058.mail.protection.outlook.com (10.152.17.48) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.21 via Frontend Transport; Thu, 9 Jul 2020 11:37:16 +0000 Received: ("Tessian outbound 8f45de5545d6:v62"); Thu, 09 Jul 2020 11:37:16 +0000 X-CR-MTA-TID: 64aa7808 Received: from d4de4575f371.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 3C6D4E0D-3E5A-413C-9F6B-B93EDC2DBD6A.1; Thu, 09 Jul 2020 11:37:11 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d4de4575f371.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 09 Jul 2020 11:37:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YuH68+7eVFrUuUGWateVtR0v9l/lxncOGAdAgTCSjiNazOuf9UIQiEeeSu+Ce+ubKWb+kU8J6rSFqfXvAaadHnDKSi6ZZKNL4T1k5A1ITohSj/XUMU5XEqkfQPrfBt07EfZ7h9sb4HgNzJxzkiz3aHp1FOI2g6Dd1lVkUNlHPCia0xWpOfPSX2J6adfGb96T/+iwPQLgPr6mvORYWfuuWwj/Q8erXaJ9bDcRFMBw6Vka/3aoPBZSJ+VH4Xd1Iph+RkrPi3cgxDcRtcvfwvN+++HMwLGPDFYOflTSh8hapc0STfTyUHX8Fy82QJ0Lr1RRUHeMmc6R89jLdfKabkocgg== 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=pMROscowoEfc96F3s09I4ePvzXETa17WKZXqCSckaP4=; b=Pswy35E3/BJ4Sv3KOu6SiKZmi8fD5vUupC1xbAymituZ5q+7K63t/FkgxxfdsKFCKTw8turrshE4WzSuuYh8sRE8NeZiQaCBM+G3KUnSHcM9ds+jgLpap2naaADCzPktkhrhyom6BHzePeLibB7e3xpWuGr0yX3e4BIeyt0Ln4ucgj04FFIEolCzB5vk93b9c6iWhEWbLGuBvx2H+Ulwuz0kYwVYwI6sS9usBmUj8pB/sS4OTD/HSl6+H7n7jnxyDt4Md233SQsFFghc6YQgHBwa1GsIKGBnn2BAHbPxSGgy4WDMBrHrxWQf1VEMD42XCePlkWBGqkKqy4aos5ihpw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pMROscowoEfc96F3s09I4ePvzXETa17WKZXqCSckaP4=; b=WwepXNzeoh/NVkvDRlF/+Mlr8a1ogu3agkeRW7sD5p0lUp8DLaxuCjF8fgqB20fqOjCzwZlE05HNMFT+N8K3hDJ1Lwq0nBTfQWRKzktcA8OVWlPawW2EYGDuelFZRqVOMeroOIxaZRK8GYqnE1KCZfr07sAtpkiZ3aQFxJaCtLM= Received: from AM0PR08MB3091.eurprd08.prod.outlook.com (2603:10a6:208:60::10) by AM0PR08MB5299.eurprd08.prod.outlook.com (2603:10a6:208:18d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.21; Thu, 9 Jul 2020 11:37:09 +0000 Received: from AM0PR08MB3091.eurprd08.prod.outlook.com ([fe80::117f:d451:325c:927a]) by AM0PR08MB3091.eurprd08.prod.outlook.com ([fe80::117f:d451:325c:927a%7]) with mapi id 15.20.3174.022; Thu, 9 Jul 2020 11:37:09 +0000 From: "Sami Mujawar" To: Ard Biesheuvel , "devel@edk2.groups.io" CC: "leif@nuviainc.com" , "ray.ni@intel.com" , Alexandru Elisei , Andre Przywara , Matteo Carlini , Laura Moretta , nd Subject: Re: [PATCH v4 01/15] PcAtChipsetPkg: Add MMIO Support to RTC driver Thread-Topic: [PATCH v4 01/15] PcAtChipsetPkg: Add MMIO Support to RTC driver Thread-Index: AQHWVFzor4ruQF+lb0mq8VmyjQFIlKj8GP2AgAMIP7A= Date: Thu, 9 Jul 2020 11:37:08 +0000 Message-ID: References: <20200707124810.50668-1-sami.mujawar@arm.com> <20200707124810.50668-2-sami.mujawar@arm.com> <6540c01d-0542-02af-299f-cb77365e0cf1@arm.com> In-Reply-To: <6540c01d-0542-02af-299f-cb77365e0cf1@arm.com> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 6c4f4e2f-2ff4-4d12-a2be-b6757cbdf224.0 x-checkrecipientchecked: true Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [217.140.99.251] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: f0ff2c7a-e5cf-4437-cba4-08d823fc6e93 x-ms-traffictypediagnostic: AM0PR08MB5299:|AM5PR0801MB2100: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:8882;OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: pMPhqcccJD5ooSNA8W3Bbct8XkddNwARI0Dg/IbytfXSPm086KB1Gaob47HLPP8j34q9uFvQSQx+CFkISrBM8n+RaQ+GyAMN+4HabqhOqYrDGqqHu+M+NCJbuFpr/bWi+Mzjeh4L3CcJKoFYIU7zbSnKTFExre8qWRxe2TGcoY1dFWLdr4j9+ESwkC98lQXT34Onjp395RMRh+qs1tU7WCN5o4BLXgPj5jagoXCVlXEm5I2PLhKRMl+lJ7xNWroku4lF33y6kc/4bPZGzHdO6iPYXYKbQNoPcHXI2C0TAp8G7VHkYlpihWpsXYqd2q660raB2QSIM5zN34/ZSBhf4izixSkAuUn+uN5eQ8X7mH7eRjV4DKYIktg1dljqGh/77wSw+4JxZ9J2Id+Laiz/Iw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR08MB3091.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(6029001)(4636009)(136003)(376002)(346002)(366004)(396003)(39860400002)(55016002)(64756008)(54906003)(66946007)(66476007)(76116006)(19627235002)(66446008)(66556008)(71200400001)(4326008)(83380400001)(2906002)(966005)(86362001)(33656002)(8676002)(9686003)(110136005)(8936002)(478600001)(316002)(30864003)(52536014)(5660300002)(26005)(53546011)(6506007)(186003)(7696005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: +yH4gR0dqf1YiumbkL9YBxNPXrgKVOn3A77o9jkMtk06qqwL2m5yTArbXaSG+kNcwV1BWnA+uJFYwXIuTSXnevaj+h2RC+VVfsrExw23bzC/+MRhGiTHNDDulj2R2qWmomFW3CeNoJ9Qov8NEMLNq63Odi0bxUnU4/TRHs184jA0Tjxy3v5jL3OUl6lTkWcnCER7/6f8v3e6VzqIzgUA+RvYXE7KyJj4juW8h8BXGVMgBy+W6vZVc42jZuFV4tubjdl7vBzHcoBFCY5GCOxJHV5NoUjbOrmWj42DN3EOxJuwwQiCNAIGzrvJ/m5JcgsTET2hy6fU7S7tgKnrg4BGyViE2AoA75UliVrX+BlFeOs4e1pivFSix46uLgp2+GQqTe0sAxPvbIAOJ0FSxJqbcHHzDalj9bHcH2MlFabMEnTXRiDUmrwlOaYXi1Xsddmr48epJ7VM8JwFGmTNceqCAfKfEmIXpBG7OpYb6G3Pm9eJuh2PijOhz1CW+2j4xjNQ MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB5299 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; Return-Path: Sami.Mujawar@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT058.eop-EUR03.prod.protection.outlook.com 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;SFTY:;SFS:(6029001)(4636009)(396003)(346002)(376002)(136003)(39860400002)(46966005)(82740400003)(356005)(82310400002)(5660300002)(478600001)(966005)(86362001)(4326008)(8676002)(7696005)(52536014)(83380400001)(70206006)(70586007)(30864003)(9686003)(2906002)(186003)(8936002)(6506007)(55016002)(26005)(53546011)(33656002)(336012)(54906003)(110136005)(19627235002)(316002)(47076004)(36906005)(81166007);DIR:OUT;SFP:1101; X-MS-Office365-Filtering-Correlation-Id-Prvs: 93ab02e2-a4a7-468c-f2b7-08d823fc6a17 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bIsUZd5MF2iN073x46WZd2w/tOMMUMp9QeYvem0LJB0gqjDkKf9LX97qNjwF4YtpqFDLyPZYxVM6MubE+BryuGSqeVa1pnAthExGCz7vxNQ4Y6/Zqdgoqay+UFOMWJ49J3l68stPpTzubKZybSGa7nRrXgR2hxRf9RRjfkp/xJhb6HnYEu0IZ92nQi22rGQobZHUF+NFhGKkQE90LY6WHrnAf4cBrR6QtePWESQO5zFM67EVGLgTljJfXJqz6T+3IPNjkFC2X1o+zlQUv7dfFDRAhYPAh4/df/z8LifOhG4V7C3lRNNpbJQYVrizGGWLAacLm80024fq8HlsU5COSieVRWVPXQ0IAPLs38f18+qvvMefjhforCjWnG4AZciWnnjCSXqOY1naWC5552kxFlwvjNw1eupX7Gegikp3Y5Djpb0+QfXBcFAOg2beStb2RBGJ8mIrRZFNIIRLPZ6g53HWQV/l4+j2pEMgpqZNnjQ= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2020 11:37:16.6101 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f0ff2c7a-e5cf-4437-cba4-08d823fc6e93 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: AM5EUR03FT058.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB2100 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgQXJkLA0KDQpQbGVhc2UgZmluZCBteSByZXNwb25zZSBpbmxpbmUgbWFya2VkIFtTQU1JXS4N Cg0KUmVnYXJkcywNCg0KU2FtaSBNdWphd2FyDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQpGcm9tOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbT4gDQpTZW50OiAw NyBKdWx5IDIwMjAgMDI6MTcgUE0NClRvOiBTYW1pIE11amF3YXIgPFNhbWkuTXVqYXdhckBhcm0u Y29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCkNjOiBsZWlmQG51dmlhaW5jLmNvbTsgcmF5Lm5p QGludGVsLmNvbTsgQWxleGFuZHJ1IEVsaXNlaSA8QWxleGFuZHJ1LkVsaXNlaUBhcm0uY29tPjsg QW5kcmUgUHJ6eXdhcmEgPEFuZHJlLlByenl3YXJhQGFybS5jb20+OyBNYXR0ZW8gQ2FybGluaSA8 TWF0dGVvLkNhcmxpbmlAYXJtLmNvbT47IExhdXJhIE1vcmV0dGEgPExhdXJhLk1vcmV0dGFAYXJt LmNvbT47IG5kIDxuZEBhcm0uY29tPg0KU3ViamVjdDogUmU6IFtQQVRDSCB2NCAwMS8xNV0gUGNB dENoaXBzZXRQa2c6IEFkZCBNTUlPIFN1cHBvcnQgdG8gUlRDIGRyaXZlcg0KDQpPbiA3LzcvMjAg Mzo0NyBQTSwgU2FtaSBNdWphd2FyIHdyb3RlOg0KPiBTb21lIHZpcnR1YWwgbWFjaGluZSBtYW5h Z2VycyBsaWtlIEt2bXRvb2wgZW11bGF0ZSB0aGUgTUMxNDY4MTggUlRDIA0KPiBjb250cm9sbGVy IGluIHRoZSBNTUlPIHNwYWNlIHNvIHRoYXQgYXJjaGl0ZWN0dXJlcyB0aGF0IGRvIG5vdCBzdXBw b3J0IA0KPiBJL08gTWFwcGVkIEkvTyBjYW4gdXNlIHRoZSBSVEMuIFRoaXMgcGF0Y2ggYWRkcyBN TUlPIHN1cHBvcnQgdG8gdGhlIA0KPiBSVEMgY29udHJvbGxlciBkcml2ZXIuDQo+IA0KPiBUaGUg UENEIFBjZFJ0Y1VzZU1taW8gaGFzIGJlZW4gYWRkZWQgdG8gc2VsZWN0IEkvTyBvciBNTUlPIHN1 cHBvcnQuDQo+ICAgIElmIFBjZFJ0Y1VzZU1taW8gaXM6DQo+ICAgICAgVFJVRSAgLSBJbmRpY2F0 ZXMgdGhlIFJUQyBwb3J0IHJlZ2lzdGVycyBhcmUgaW4gTU1JTyBzcGFjZS4NCj4gICAgICBGQUxT RSAtIEluZGljYXRlcyB0aGUgUlRDIHBvcnQgcmVnaXN0ZXJzIGFyZSBpbiBJL08gc3BhY2UuDQo+ ICAgICAgICAgICAgICBEZWZhdWx0IGlzIEkvTyBzcGFjZS4NCj4gDQo+IEFkZGl0aW9uYWxseSB0 d28gbmV3IFBDRHMgUGNkUnRjSW5kZXhSZWdpc3RlcjY0IGFuZA0KPiBQY2RSdGNUYXJnZXRSZWdp c3RlcjY0IGhhdmUgYmVlbiBpbnRyb2R1Y2VkIHRvIHByb3ZpZGUgdGhlIGJhc2UgDQo+IGFkZHJl c3MgZm9yIHRoZSBSVEMgcmVnaXN0ZXJzIGluIHRoZSBNTUlPIHNwYWNlLg0KPiANCj4gV2hlbiBN TUlPIHN1cHBvcnQgaXMgc2VsZWN0ZWQgKFBjZFJ0Y1VzZU1taW8gPT0gVFJVRSkgdGhlIGRyaXZl ciANCj4gY29udmVydHMgdGhlIHBvaW50ZXJzIHRvIHRoZSBSVEMgTU1JTyByZWdpc3RlcnMgc28g dGhhdCB0aGUgUlRDIA0KPiByZWdpc3RlcnMgYXJlIGFjY2Vzc2libGUgcG9zdCBFeGl0Qm9vdFNl cnZpY2VzLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogU2FtaSBNdWphd2FyIDxzYW1pLm11amF3YXJA YXJtLmNvbT4NCg0KVGhpcyBjb2RlIGxvb2tzIGdvb2QgdG8gbWUgbm93LCBidXQgcGxlYXNlIGRy b3AgdGhlIHVubmVjZXNzYXJ5IHdoaXRlc3BhY2UgYW5kIGhlYWRlciBjaGFuZ2VzIHRvIFBjUnRj LmgsIGFuZCB0aGUgd2hpdGVzcGFjZSBjaGFuZ2VzIHRvIFBjUnRjRW50cnkuYw0KDQpbU0FNSV0g SSB3aWxsIGZpeCB0aGlzIGFuZCByZXBvc3QgdGhlIHBhdGNoLg0KDQpXaXRoIHRoYXQsDQoNClJl dmlld2VkLWJ5OiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbT4NCg0KDQo+ IC0tLQ0KPiANCj4gTm90ZXM6DQo+ICAgICAgdjQ6DQo+ICAgICAgICAtIFVwZGF0ZWQgYmFzZWQg b24gcmV2aWV3IGNvbW1lbnRzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1NhbWldDQo+ ICAgICAgICAtIFVzZSBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIGZ1bmN0aW9u IHBvaW50ZXJzLiAgICAgW0FyZF0NCj4gICAgICAgICAgUmVmOiBodHRwczovL2VkazIuZ3JvdXBz LmlvL2cvZGV2ZWwvdG9waWMvNzUwODE0NjgNCj4gICAgICANCj4gICAgICB2MzoNCj4gICAgICAg IC0gTWFrZSBQY2RSdGNVc2VNbWlvIGEgZmVhdHVyZSBQQ0QuICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbU2FtaV0NCj4gICAgICAgIC0gUmVhZCB0aGUgUlRDIE1NSU8gYmFzZSBhZGRyZXNz IGZyb20gdGhlIERULiAgICAgICAgICAgICAgICAgICBbQW5kcmVdDQo+ICAgICAgICAtIEludHJv ZHVjZSBQQ0RzIGZvciBSVEMgSW5kZXggYW5kIFRhcmdldCByZWdpc3RlciBiYXNlICAgICAgICAg W1NhbWldDQo+ICAgICAgICAgIGFkZHJlc3MgaW4gdGhlIE1NSU8gc3BhY2UuDQo+ICAgICAgICAt IE1vdmUgUlRDIE1NSU8gcmVnaW9uIG1hcHBpbmcgY29kZSB0byBhIHNlcGFyYXRlIHBsYXRmb3Jt ICAgICAgW1NhbWldDQo+ICAgICAgICAgIHNwZWNpZmljIGxpYnJhcnkuIFRoaXMgbGlicmFyeSBh bHNvIHJlYWRzIHRoZSBiYXNlIGFkZHJlc3Nlcw0KPiAgICAgICAgICBmb3IgdGhlIFJUQyBmcm9t IERUIGFuZCBjb25maWd1cmVzIHRoZSBSVEMgSW5kZXggYW5kIFRhcmdldA0KPiAgICAgICAgICBy ZWdpc3RlciBQQ0RzLg0KPiAgICAgICAgICBSZWY6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9k ZXZlbC90b3BpYy83NDIwMDkwNSM2MDMwNw0KPiAgICAgIA0KPiAgICAgIHYyOg0KPiAgICAgICAg LSBDb2RlIHJldmlldyBjb21tZW50cyBpbmNvcnBvcmF0ZWQuICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFtTYW1pXQ0KPiAgICAgIA0KPiAgICAgIHYxOg0KPiAgICAgICAgLSBBZGQgc3VwcG9y dCB0byByZWFkL3dyaXRlIGZyb20gUlRDIHJlZ2lzdGVycyB1c2luZyAgICAgICAgICAgIFtTYW1p XQ0KPiAgICAgICAgICBNTUlPIGFjY2Vzcw0KPiAgICAgICAgLSBVc2Ugd3JhcHBlciBmdW5jdGlv bnMgZm9yIFJ0Y1JlYWQvV3JpdGUgYWNjZXNzb3JzICAgICAgICAgICAgIFtMZWlmXQ0KPiAgICAg ICAgICBSZWY6IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC90b3BpYy8zMDkxNTI4MSMz MDY5NQ0KPiANCj4gICBQY0F0Q2hpcHNldFBrZy9QY0F0Q2hpcHNldFBrZy5kZWMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNiArKysNCj4gICBQY0F0Q2hpcHNl dFBrZy9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVEeGUvUGNSdGMuYyAgICAgICAgICAgICAgICAg ICAgICAgICB8IDEyMCArKysrKysrKysrKysrKysrKystLQ0KPiAgIFBjQXRDaGlwc2V0UGtnL1Bj YXRSZWFsVGltZUNsb2NrUnVudGltZUR4ZS9QY1J0Yy5oICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAyICsNCj4gICBQY0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVEeGUv UGNSdGNFbnRyeS5jICAgICAgICAgICAgICAgICAgICB8ICA1OCArKysrKysrKystDQo+ICAgUGNB dENoaXBzZXRQa2cvUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1lRHhlL1BjYXRSZWFsVGltZUNsb2Nr UnVudGltZUR4ZS5pbmYgfCAgIDggKysNCj4gICA1IGZpbGVzIGNoYW5nZWQsIDE5MCBpbnNlcnRp b25zKCspLCAxNCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9QY0F0Q2hpcHNldFBr Zy9QY0F0Q2hpcHNldFBrZy5kZWMgDQo+IGIvUGNBdENoaXBzZXRQa2cvUGNBdENoaXBzZXRQa2cu ZGVjDQo+IGluZGV4IA0KPiA4OGRlNWNjZWVhNTkzMTc2YzNhMjQyNWE1OTYzYjY2Yjc4OWYyYjll Li5lZDJkOTU1NTBiOGQxNTM5OTViMzBjZGMyOTBjDQo+IGYzYmI5MDVlMjExYiAxMDA2NDQNCj4g LS0tIGEvUGNBdENoaXBzZXRQa2cvUGNBdENoaXBzZXRQa2cuZGVjDQo+ICsrKyBiL1BjQXRDaGlw c2V0UGtnL1BjQXRDaGlwc2V0UGtnLmRlYw0KPiBAQCAtNiw2ICs2LDcgQEANCj4gICAjDQo+ICAg IyBDb3B5cmlnaHQgKGMpIDIwMDkgLSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+ICAgIyBDb3B5cmlnaHQgKGMpIDIwMTcsIEFNRCBJbmMuIEFsbCBy aWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArIyBDb3B5cmlnaHQgKGMpIDIwMTggLSAyMDIwLCBBUk0g TGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIw0KPiAgICMgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gICAjDQo+IEBAIC00MSw2ICs0 MiwxMyBAQCBbUGNkc0ZlYXR1cmVGbGFnXQ0KPiAgICAgIyBAUHJvbXB0IENvbmZpZ3VyZSBIUEVU IHRvIHVzZSBNU0kuDQo+ICAgICANCj4gZ1BjQXRDaGlwc2V0UGtnVG9rZW5TcGFjZUd1aWQuUGNk SHBldE1zaUVuYWJsZXxUUlVFfEJPT0xFQU58MHgwMDAwMTAwMA0KPiAgIA0KPiArICAjIyBJbmRp Y2F0ZXMgdGhlIFJUQyBwb3J0IHJlZ2lzdGVycyBhcmUgaW4gTU1JTyBzcGFjZSwgb3IgaW4gSS9P IHNwYWNlLg0KPiArICAjICBEZWZhdWx0IGlzIEkvTyBzcGFjZS48QlI+PEJSPg0KPiArICAjICAg VFJVRSAgLSBSVEMgcG9ydCByZWdpc3RlcnMgYXJlIGluIE1NSU8gc3BhY2UuPEJSPg0KPiArICAj ICAgRkFMU0UgLSBSVEMgcG9ydCByZWdpc3RlcnMgYXJlIGluIEkvTyBzcGFjZS48QlI+DQo+ICsg ICMgQFByb21wdCBSVEMgcG9ydCByZWdpc3RlcnMgdXNlIE1NSU8uDQo+ICsgIA0KPiArIGdQY0F0 Q2hpcHNldFBrZ1Rva2VuU3BhY2VHdWlkLlBjZFJ0Y1VzZU1taW98RkFMU0V8Qk9PTEVBTnwweDAw MDAwMDIxDQo+ICsNCj4gICBbUGNkc0ZpeGVkQXRCdWlsZCwgUGNkc0R5bmFtaWMsIFBjZHNEeW5h bWljRXgsIFBjZHNQYXRjaGFibGVJbk1vZHVsZV0NCj4gICAgICMjIFRoaXMgUENEIHNwZWNpZmll cyB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBIUEVUIHRpbWVyLg0KPiAgICAgIyBAUHJvbXB0IEhQ RVQgYmFzZSBhZGRyZXNzLg0KPiBAQCAtNjgsNiArNzYsMTQgQEAgW1BjZHNGaXhlZEF0QnVpbGQs IFBjZHNEeW5hbWljLCBQY2RzRHluYW1pY0V4LCBQY2RzUGF0Y2hhYmxlSW5Nb2R1bGVdDQo+ICAg ICAjIEBFeHByZXNzaW9uIDB4ODAwMDAwMDEgfCBnUGNBdENoaXBzZXRQa2dUb2tlblNwYWNlR3Vp ZC5QY2RNYXhpbWFsVmFsaWRZZWFyIDwgZ1BjQXRDaGlwc2V0UGtnVG9rZW5TcGFjZUd1aWQuUGNk TWluaW1hbFZhbGlkWWVhciArIDEwMA0KPiAgICAgDQo+IGdQY0F0Q2hpcHNldFBrZ1Rva2VuU3Bh Y2VHdWlkLlBjZE1heGltYWxWYWxpZFllYXJ8MjA5N3xVSU5UMTZ8MHgwMDAwMDANCj4gMEUNCj4g ICANCj4gKyAgIyMgU3BlY2lmaWVzIFJUQyBJbmRleCBSZWdpc3RlciBhZGRyZXNzIGluIE1NSU8g c3BhY2UuDQo+ICsgICMgQFByb21wdCBSVEMgSW5kZXggUmVnaXN0ZXIgYWRkcmVzcw0KPiArICAN Cj4gKyBnUGNBdENoaXBzZXRQa2dUb2tlblNwYWNlR3VpZC5QY2RSdGNJbmRleFJlZ2lzdGVyNjR8 MHgwfFVJTlQ2NHwweDAwMA0KPiArIDAwMDIyDQo+ICsNCj4gKyAgIyMgU3BlY2lmaWVzIFJUQyBU YXJnZXQgUmVnaXN0ZXIgYWRkcmVzcyBpbiBNTUlPIHNwYWNlLg0KPiArICAjIEBQcm9tcHQgUlRD IFRhcmdldCBSZWdpc3RlciBhZGRyZXNzDQo+ICsgIA0KPiArIGdQY0F0Q2hpcHNldFBrZ1Rva2Vu U3BhY2VHdWlkLlBjZFJ0Y1RhcmdldFJlZ2lzdGVyNjR8MHgwfFVJTlQ2NHwweDAwDQo+ICsgMDAw MDIzDQo+ICsNCj4gICBbUGNkc0ZpeGVkQXRCdWlsZCwgUGNkc1BhdGNoYWJsZUluTW9kdWxlXQ0K PiAgICAgIyMgRGVmaW5lcyB0aGUgQUNQSSByZWdpc3RlciBzZXQgYmFzZSBhZGRyZXNzLg0KPiAg ICAgIyAgVGhlIGludmFsaWQgMHhGRkZGIGlzIGFzIGl0cyBkZWZhdWx0IHZhbHVlLiBJdCBtdXN0 IGJlIGNvbmZpZ3VyZWQgdG8gdGhlIHJlYWwgdmFsdWUuDQo+IGRpZmYgLS1naXQgYS9QY0F0Q2hp cHNldFBrZy9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVEeGUvUGNSdGMuYyANCj4gYi9QY0F0Q2hp cHNldFBrZy9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVEeGUvUGNSdGMuYw0KPiBpbmRleCANCj4g NTJhZjE3OTQxNzg2ZWY4MWMzOTExNTEyZWU2NDU1MTcyNGU2NzIwOS4uNjRmMzZmNmZiYmQxYjAz OTY3YmQxYTEyOTBkMQ0KPiAwOGQ1YjBmMjk0ZmEgMTAwNjQ0DQo+IC0tLSBhL1BjQXRDaGlwc2V0 UGtnL1BjYXRSZWFsVGltZUNsb2NrUnVudGltZUR4ZS9QY1J0Yy5jDQo+ICsrKyBiL1BjQXRDaGlw c2V0UGtnL1BjYXRSZWFsVGltZUNsb2NrUnVudGltZUR4ZS9QY1J0Yy5jDQo+IEBAIC0zLDYgKzMs NyBAQA0KPiAgIA0KPiAgIENvcHlyaWdodCAoYykgMjAwNiAtIDIwMTgsIEludGVsIENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICBDb3B5cmlnaHQgKGMpIDIwMTcsIEFN RCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArQ29weXJpZ2h0IChjKSAyMDE4IC0g MjAyMCwgQVJNIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgIA0KPiAgIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICAgDQo+IEBAIC0x MCw2ICsxMSw5IEBAIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50 DQo+ICAgDQo+ICAgI2luY2x1ZGUgIlBjUnRjLmgiDQo+ICAgDQo+ICtleHRlcm4gVUlOVE4gIG1S dGNJbmRleFJlZ2lzdGVyOw0KPiArZXh0ZXJuIFVJTlROICBtUnRjVGFyZ2V0UmVnaXN0ZXI7DQo+ ICsNCj4gICAvLw0KPiAgIC8vIERheXMgb2YgbW9udGguDQo+ICAgLy8NCj4gQEAgLTU0LDM4ICs1 OCwxMzIgQEAgSXNXaXRoaW5PbmVEYXkgKA0KPiAgICAgKTsNCj4gICANCj4gICAvKioNCj4gKyAg UmVhZCBSVEMgY29udGVudCB0aHJvdWdoIGl0cyByZWdpc3RlcnMgdXNpbmcgSU8gYWNjZXNzLg0K PiArDQo+ICsgIEBwYXJhbSAgQWRkcmVzcyAgIEFkZHJlc3Mgb2Zmc2V0IG9mIFJUQy4gSXQgaXMg cmVjb21tZW5kZWQgdG8gdXNlDQo+ICsgICAgICAgICAgICAgICAgICAgIG1hY3JvcyBzdWNoIGFz IFJUQ19BRERSRVNTX1NFQ09ORFMuDQo+ICsNCj4gKyAgQHJldHVybiBUaGUgZGF0YSBvZiBVSU5U OCB0eXBlIHJlYWQgZnJvbSBSVEMuDQo+ICsqKi8NCj4gK1NUQVRJQw0KPiArVUlOVDgNCj4gK0lv UnRjUmVhZCAoDQo+ICsgIElOICBVSU5UTiBBZGRyZXNzDQo+ICsgICkNCj4gK3sNCj4gKyAgSW9X cml0ZTggKA0KPiArICAgIFBjZEdldDggKFBjZFJ0Y0luZGV4UmVnaXN0ZXIpLA0KPiArICAgIChV SU5UOCkoQWRkcmVzcyB8IChVSU5UOCkoSW9SZWFkOCAoUGNkR2V0OCAoUGNkUnRjSW5kZXhSZWdp c3RlcikpICYgMHg4MCkpDQo+ICsgICAgKTsNCj4gKyAgcmV0dXJuIElvUmVhZDggKFBjZEdldDgg KFBjZFJ0Y1RhcmdldFJlZ2lzdGVyKSk7IH0NCj4gKw0KPiArLyoqDQo+ICsgIFdyaXRlIFJUQyB0 aHJvdWdoIGl0cyByZWdpc3RlcnMgIHVzaW5nIElPIGFjY2Vzcy4NCj4gKw0KPiArICBAcGFyYW0g IEFkZHJlc3MgICBBZGRyZXNzIG9mZnNldCBvZiBSVEMuIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVz ZQ0KPiArICAgICAgICAgICAgICAgICAgICBtYWNyb3Mgc3VjaCBhcyBSVENfQUREUkVTU19TRUNP TkRTLg0KPiArICBAcGFyYW0gIERhdGEgICAgICBUaGUgY29udGVudCB5b3Ugd2FudCB0byB3cml0 ZSBpbnRvIFJUQy4NCj4gKw0KPiArKiovDQo+ICtTVEFUSUMNCj4gK1ZPSUQNCj4gK0lvUnRjV3Jp dGUgKA0KPiArICBJTiAgVUlOVE4gICBBZGRyZXNzLA0KPiArICBJTiAgVUlOVDggICBEYXRhDQo+ ICsgICkNCj4gK3sNCj4gKyAgSW9Xcml0ZTggKA0KPiArICAgIFBjZEdldDggKFBjZFJ0Y0luZGV4 UmVnaXN0ZXIpLA0KPiArICAgIChVSU5UOCkoQWRkcmVzcyB8IChVSU5UOCkoSW9SZWFkOCAoUGNk R2V0OCAoUGNkUnRjSW5kZXhSZWdpc3RlcikpICYgMHg4MCkpDQo+ICsgICAgKTsNCj4gKyAgSW9X cml0ZTggKFBjZEdldDggKFBjZFJ0Y1RhcmdldFJlZ2lzdGVyKSwgRGF0YSk7IH0NCj4gKw0KPiAr LyoqDQo+ICsgIFJlYWQgUlRDIGNvbnRlbnQgdGhyb3VnaCBpdHMgcmVnaXN0ZXJzIHVzaW5nIE1N SU8gYWNjZXNzLg0KPiArDQo+ICsgIEBwYXJhbSAgQWRkcmVzcyAgIEFkZHJlc3Mgb2Zmc2V0IG9m IFJUQy4gSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlDQo+ICsgICAgICAgICAgICAgICAgICAgIG1h Y3JvcyBzdWNoIGFzIFJUQ19BRERSRVNTX1NFQ09ORFMuDQo+ICsNCj4gKyAgQHJldHVybiBUaGUg ZGF0YSBvZiBVSU5UOCB0eXBlIHJlYWQgZnJvbSBSVEMuDQo+ICsqKi8NCj4gK1NUQVRJQw0KPiAr VUlOVDgNCj4gK01taW9SdGNSZWFkICgNCj4gKyAgSU4gIFVJTlROIEFkZHJlc3MNCj4gKyAgKQ0K PiArew0KPiArICBNbWlvV3JpdGU4ICgNCj4gKyAgICBtUnRjSW5kZXhSZWdpc3RlciwNCj4gKyAg ICAoVUlOVDgpKEFkZHJlc3MgfCAoVUlOVDgpKE1taW9SZWFkOCAobVJ0Y0luZGV4UmVnaXN0ZXIp ICYgMHg4MCkpDQo+ICsgICAgKTsNCj4gKyAgcmV0dXJuIE1taW9SZWFkOCAobVJ0Y1RhcmdldFJl Z2lzdGVyKTsgfQ0KPiArDQo+ICsvKioNCj4gKyAgV3JpdGUgUlRDIHRocm91Z2ggaXRzIHJlZ2lz dGVycyB1c2luZyBNTUlPIGFjY2Vzcy4NCj4gKw0KPiArICBAcGFyYW0gIEFkZHJlc3MgICBBZGRy ZXNzIG9mZnNldCBvZiBSVEMuIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZQ0KPiArICAgICAgICAg ICAgICAgICAgICBtYWNyb3Mgc3VjaCBhcyBSVENfQUREUkVTU19TRUNPTkRTLg0KPiArICBAcGFy YW0gIERhdGEgICAgICBUaGUgY29udGVudCB5b3Ugd2FudCB0byB3cml0ZSBpbnRvIFJUQy4NCj4g Kw0KPiArKiovDQo+ICtTVEFUSUMNCj4gK1ZPSUQNCj4gK01taW9SdGNXcml0ZSAoDQo+ICsgIElO ICBVSU5UTiAgIEFkZHJlc3MsDQo+ICsgIElOICBVSU5UOCAgIERhdGENCj4gKyAgKQ0KPiArew0K PiArICBNbWlvV3JpdGU4ICgNCj4gKyAgICBtUnRjSW5kZXhSZWdpc3RlciwNCj4gKyAgICAoVUlO VDgpKEFkZHJlc3MgfCAoVUlOVDgpKE1taW9SZWFkOCAobVJ0Y0luZGV4UmVnaXN0ZXIpICYgMHg4 MCkpDQo+ICsgICAgKTsNCj4gKyAgTW1pb1dyaXRlOCAobVJ0Y1RhcmdldFJlZ2lzdGVyLCBEYXRh KTsgfQ0KPiArDQo+ICsvKioNCj4gICAgIFJlYWQgUlRDIGNvbnRlbnQgdGhyb3VnaCBpdHMgcmVn aXN0ZXJzLg0KPiAgIA0KPiAtICBAcGFyYW0gIEFkZHJlc3MgIEFkZHJlc3Mgb2Zmc2V0IG9mIFJU Qy4gSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIG1hY3JvcyBzdWNoIGFzDQo+IC0gICAgICAgICAg ICAgICAgICAgUlRDX0FERFJFU1NfU0VDT05EUy4NCj4gKyAgQHBhcmFtICBBZGRyZXNzICAgQWRk cmVzcyBvZmZzZXQgb2YgUlRDLiBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UNCj4gKyAgICAgICAg ICAgICAgICAgICAgbWFjcm9zIHN1Y2ggYXMgUlRDX0FERFJFU1NfU0VDT05EUy4NCj4gICANCj4g ICAgIEByZXR1cm4gVGhlIGRhdGEgb2YgVUlOVDggdHlwZSByZWFkIGZyb20gUlRDLg0KPiAgICoq Lw0KPiArU1RBVElDDQo+ICAgVUlOVDgNCj4gICBSdGNSZWFkICgNCj4gLSAgSU4gIFVJTlQ4IEFk ZHJlc3MNCj4gKyAgSU4gIFVJTlROIEFkZHJlc3MNCj4gICAgICkNCj4gICB7DQo+IC0gIElvV3Jp dGU4IChQY2RHZXQ4IChQY2RSdGNJbmRleFJlZ2lzdGVyKSwgKFVJTlQ4KSAoQWRkcmVzcyB8IChV SU5UOCkgDQo+IChJb1JlYWQ4IChQY2RHZXQ4IChQY2RSdGNJbmRleFJlZ2lzdGVyKSkgJiAweDgw KSkpOw0KPiAtICByZXR1cm4gSW9SZWFkOCAoUGNkR2V0OCAoUGNkUnRjVGFyZ2V0UmVnaXN0ZXIp KTsNCj4gKyAgaWYgKEZlYXR1cmVQY2RHZXQgKFBjZFJ0Y1VzZU1taW8pKSB7DQo+ICsgICAgcmV0 dXJuIE1taW9SdGNSZWFkIChBZGRyZXNzKTsNCj4gKyAgfQ0KPiArDQo+ICsgIHJldHVybiBJb1J0 Y1JlYWQgKEFkZHJlc3MpOw0KPiAgIH0NCj4gICANCj4gICAvKioNCj4gICAgIFdyaXRlIFJUQyB0 aHJvdWdoIGl0cyByZWdpc3RlcnMuDQo+ICAgDQo+IC0gIEBwYXJhbSAgQWRkcmVzcyAgQWRkcmVz cyBvZmZzZXQgb2YgUlRDLiBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgbWFjcm9zIHN1Y2ggYXMN Cj4gLSAgICAgICAgICAgICAgICAgICBSVENfQUREUkVTU19TRUNPTkRTLg0KPiAtICBAcGFyYW0g IERhdGEgICAgIFRoZSBjb250ZW50IHlvdSB3YW50IHRvIHdyaXRlIGludG8gUlRDLg0KPiArICBA cGFyYW0gIEFkZHJlc3MgICBBZGRyZXNzIG9mZnNldCBvZiBSVEMuIEl0IGlzIHJlY29tbWVuZGVk IHRvIHVzZQ0KPiArICAgICAgICAgICAgICAgICAgICBtYWNyb3Mgc3VjaCBhcyBSVENfQUREUkVT U19TRUNPTkRTLg0KPiArICBAcGFyYW0gIERhdGEgICAgICBUaGUgY29udGVudCB5b3Ugd2FudCB0 byB3cml0ZSBpbnRvIFJUQy4NCj4gICANCj4gICAqKi8NCj4gK1NUQVRJQw0KPiAgIFZPSUQNCj4g ICBSdGNXcml0ZSAoDQo+IC0gIElOICBVSU5UOCAgIEFkZHJlc3MsDQo+ICsgIElOICBVSU5UTiAg IEFkZHJlc3MsDQo+ICAgICBJTiAgVUlOVDggICBEYXRhDQo+ICAgICApDQo+ICAgew0KPiAtICBJ b1dyaXRlOCAoUGNkR2V0OCAoUGNkUnRjSW5kZXhSZWdpc3RlciksIChVSU5UOCkgKEFkZHJlc3Mg fCAoVUlOVDgpIA0KPiAoSW9SZWFkOCAoUGNkR2V0OCAoUGNkUnRjSW5kZXhSZWdpc3RlcikpICYg MHg4MCkpKTsNCj4gLSAgSW9Xcml0ZTggKFBjZEdldDggKFBjZFJ0Y1RhcmdldFJlZ2lzdGVyKSwg RGF0YSk7DQo+ICsgIGlmIChGZWF0dXJlUGNkR2V0IChQY2RSdGNVc2VNbWlvKSkgew0KPiArICAg IE1taW9SdGNXcml0ZSAoQWRkcmVzcywgRGF0YSk7DQo+ICsgIH0gZWxzZSB7DQo+ICsgICAgSW9S dGNXcml0ZSAoQWRkcmVzcywgRGF0YSk7DQo+ICsgIH0NCj4gICB9DQo+ICAgDQo+ICAgLyoqDQo+ IGRpZmYgLS1naXQgYS9QY0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVEeGUv UGNSdGMuaCANCj4gYi9QY0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVEeGUv UGNSdGMuaA0KPiBpbmRleCANCj4gNDcyOTNjZTQ0YzVhMWY0NzkyODkyODkyZjdkYTQwZDdmMGE1 YTAwMS4uYzFjYjk0NjZiNzQ1ODcyMzNkZTRlNzhjMGMwZA0KPiA1MzdjYTZiNjZjZjMgMTAwNjQ0 DQo+IC0tLSBhL1BjQXRDaGlwc2V0UGtnL1BjYXRSZWFsVGltZUNsb2NrUnVudGltZUR4ZS9QY1J0 Yy5oDQo+ICsrKyBiL1BjQXRDaGlwc2V0UGtnL1BjYXRSZWFsVGltZUNsb2NrUnVudGltZUR4ZS9Q Y1J0Yy5oDQo+IEBAIC0zLDYgKzMsNyBAQA0KPiAgIA0KPiAgIENvcHlyaWdodCAoYykgMjAwNiAt IDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICBD b3B5cmlnaHQgKGMpIDIwMTcsIEFNRCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAr Q29weXJpZ2h0IChjKSAyMDE5IC0gMjAyMCwgQVJNIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPg0KPiAgIA0KPiAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2Ut UGF0ZW50DQo+ICAgDQo+IEBAIC0zNzEsNCArMzcyLDUgQEAgUGNSdGNBY3BpVGFibGVDaGFuZ2VD YWxsYmFjayAoDQo+ICAgICBJTiBFRklfRVZFTlQgICAgICAgIEV2ZW50LA0KPiAgICAgSU4gVk9J RCAgICAgICAgICAgICAqQ29udGV4dA0KPiAgICAgKTsNCj4gKw0KPiAgICNlbmRpZg0KPiBkaWZm IC0tZ2l0IGEvUGNBdENoaXBzZXRQa2cvUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1lRHhlL1BjUnRj RW50cnkuYyANCj4gYi9QY0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVEeGUv UGNSdGNFbnRyeS5jDQo+IGluZGV4IA0KPiBjY2RhNjMzMTM3M2JmZTQwNjliMGE1OTQ5NWI1ZTVj YzczMWM4ZmM4Li45YzVmMWZmMTY5YzgwZDFhOTU4MGQ5MDMzNmYxDQo+IDYyOTY4YjYzYmZhMiAx MDA2NDQNCj4gLS0tIGEvUGNBdENoaXBzZXRQa2cvUGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1lRHhl L1BjUnRjRW50cnkuYw0KPiArKysgYi9QY0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpbWVDbG9ja1J1 bnRpbWVEeGUvUGNSdGNFbnRyeS5jDQo+IEBAIC0yLDE2ICsyLDIzIEBADQo+ICAgICBQcm92aWRl cyBTZXQvR2V0IHRpbWUgb3BlcmF0aW9ucy4NCj4gICANCj4gICBDb3B5cmlnaHQgKGMpIDIwMDYg LSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyANCj4gcmVzZXJ2ZWQuPEJSPg0K PiArQ29weXJpZ2h0IChjKSAyMDE4IC0gMjAyMCwgQVJNIExpbWl0ZWQuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KPiAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQo+ICAgDQo+ICAgKiovDQo+ICAgDQo+ICsjaW5jbHVkZSA8TGlicmFyeS9EeGVTZXJ2aWNl c1RhYmxlTGliLmg+DQo+ICAgI2luY2x1ZGUgIlBjUnRjLmgiDQo+ICAgDQo+ICAgUENfUlRDX01P RFVMRV9HTE9CQUxTICBtTW9kdWxlR2xvYmFsOw0KPiAgIA0KPiAgIEVGSV9IQU5ETEUgICAgICAg ICAgICAgbUhhbmRsZSA9IE5VTEw7DQo+ICAgDQo+ICtTVEFUSUMgRUZJX0VWRU5UICAgICAgIG1W aXJ0dWFsQWRkckNoYW5nZUV2ZW50Ow0KPiArDQo+ICtVSU5UTiAgICAgICAgICAgICAgICAgIG1S dGNJbmRleFJlZ2lzdGVyOw0KPiArVUlOVE4gICAgICAgICAgICAgICAgICBtUnRjVGFyZ2V0UmVn aXN0ZXI7DQo+ICsNCj4gICAvKioNCj4gICAgIFJldHVybnMgdGhlIGN1cnJlbnQgdGltZSBhbmQg ZGF0ZSBpbmZvcm1hdGlvbiwgYW5kIHRoZSB0aW1lLWtlZXBpbmcgY2FwYWJpbGl0aWVzDQo+ICAg ICBvZiB0aGUgaGFyZHdhcmUgcGxhdGZvcm0uDQo+IEBAIC0xMDYsNiArMTEzLDMwIEBAIFBjUnRj RWZpU2V0V2FrZXVwVGltZSAoDQo+ICAgfQ0KPiAgIA0KPiAgIC8qKg0KPiArICBGaXh1cCBpbnRl cm5hbCBkYXRhIHNvIHRoYXQgRUZJIGNhbiBiZSBjYWxsZWQgaW4gdmlydHVhbCBtb2RlLg0KPiAr ICBDYWxsIHRoZSBwYXNzZWQgaW4gQ2hpbGQgTm90aWZ5IGV2ZW50IGFuZCBjb252ZXJ0IGFueSBw b2ludGVycyBpbiAgDQo+ICsgbGliIHRvIHZpcnR1YWwgbW9kZS4NCj4gKw0KPiArICBAcGFyYW1b aW5dICAgIEV2ZW50ICAgVGhlIEV2ZW50IHRoYXQgaXMgYmVpbmcgcHJvY2Vzc2VkDQo+ICsgIEBw YXJhbVtpbl0gICAgQ29udGV4dCBFdmVudCBDb250ZXh0DQo+ICsqKi8NCj4gK1ZPSUQNCj4gK0VG SUFQSQ0KPiArTGliUnRjVmlydHVhbE5vdGlmeUV2ZW50ICgNCj4gKyAgSU4gRUZJX0VWRU5UICAg ICAgICBFdmVudCwNCj4gKyAgSU4gVk9JRCAgICAgICAgICAgICAqQ29udGV4dA0KPiArICApDQo+ ICt7DQo+ICsgIC8vIE9ubHkgbmVlZGVkIGlmIHlvdSBhcmUgZ29pbmcgdG8gc3VwcG9ydCB0aGUg T1MgY2FsbGluZyBSVEMgDQo+ICtmdW5jdGlvbnMgaW4NCj4gKyAgLy8gdmlydHVhbCBtb2RlLiBZ b3Ugd2lsbCBuZWVkIHRvIGNhbGwgRWZpQ29udmVydFBvaW50ZXIgKCkuIFRvIA0KPiArY29udmVy dCBhbnkNCj4gKyAgLy8gc3RvcmVkIHBoeXNpY2FsIGFkZHJlc3NlcyB0byB2aXJ0dWFsIGFkZHJl c3MuIEFmdGVyIHRoZSBPUyANCj4gK3RyYW5zaXRpb25zIHRvDQo+ICsgIC8vIGNhbGxpbmcgaW4g dmlydHVhbCBtb2RlLCBhbGwgZnV0dXJlIHJ1bnRpbWUgY2FsbHMgd2lsbCBiZSBtYWRlIA0KPiAr aW4gdmlydHVhbA0KPiArICAvLyBtb2RlLg0KPiArICBFZmlDb252ZXJ0UG9pbnRlciAoMHgwLCAo Vk9JRCoqKSZtUnRjSW5kZXhSZWdpc3Rlcik7DQo+ICsgIEVmaUNvbnZlcnRQb2ludGVyICgweDAs IChWT0lEKiopJm1SdGNUYXJnZXRSZWdpc3Rlcik7IH0NCj4gKw0KPiArLyoqDQo+ICAgICBUaGUg dXNlciBFbnRyeSBQb2ludCBmb3IgUGNSVEMgbW9kdWxlLg0KPiAgIA0KPiAgICAgVGhpcyBpcyB0 aGUgZW50cnkgcG9pbnQgZm9yIFBjUlRDIG1vZHVsZS4gSXQgaW5zdGFsbHMgdGhlIFVFRkkgDQo+ IHJ1bnRpbWUgc2VydmljZSBAQCAtMTI1LDEyICsxNTYsMTcgQEAgSW5pdGlhbGl6ZVBjUnRjICgN Cj4gICAgIElOIEVGSV9TWVNURU1fVEFCTEUgICAgICAgICAgICAgICAgICAgICAgKlN5c3RlbVRh YmxlDQo+ICAgICApDQo+ICAgew0KPiAtICBFRklfU1RBVFVTICBTdGF0dXM7DQo+IC0gIEVGSV9F VkVOVCAgIEV2ZW50Ow0KPiArICBFRklfU1RBVFVTICAgICAgICAgICAgIFN0YXR1czsNCj4gKyAg RUZJX0VWRU5UICAgICAgICAgICAgICBFdmVudDsNCj4gICANCj4gICAgIEVmaUluaXRpYWxpemVM b2NrICgmbU1vZHVsZUdsb2JhbC5SdGNMb2NrLCBUUExfQ0FMTEJBQ0spOw0KPiAgICAgbU1vZHVs ZUdsb2JhbC5DZW50dXJ5UnRjQWRkcmVzcyA9IEdldENlbnR1cnlSdGNBZGRyZXNzICgpOw0KPiAg IA0KPiArICBpZiAoRmVhdHVyZVBjZEdldCAoUGNkUnRjVXNlTW1pbykpIHsNCj4gKyAgICBtUnRj SW5kZXhSZWdpc3RlciA9IChVSU5UTilQY2RHZXQ2NCAoUGNkUnRjSW5kZXhSZWdpc3RlcjY0KTsN Cj4gKyAgICBtUnRjVGFyZ2V0UmVnaXN0ZXIgPSAoVUlOVE4pUGNkR2V0NjQgKFBjZFJ0Y1Rhcmdl dFJlZ2lzdGVyNjQpOyAgfQ0KPiArDQo+ICAgICBTdGF0dXMgPSBQY1J0Y0luaXQgKCZtTW9kdWxl R2xvYmFsKTsNCj4gICAgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ICAgDQo+IEBAIC0x NjUsNyArMjAxLDIzIEBAIEluaXRpYWxpemVQY1J0YyAoDQo+ICAgICAgICAgICAgICAgICAgICAg TlVMTCwNCj4gICAgICAgICAgICAgICAgICAgICBOVUxMDQo+ICAgICAgICAgICAgICAgICAgICAg KTsNCj4gLSAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gKyAgaWYgKEVGSV9FUlJPUiAo U3RhdHVzKSkgew0KPiArICAgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ICsgICAgcmV0 dXJuIFN0YXR1czsNCj4gKyAgfQ0KPiArDQo+ICsgIGlmIChGZWF0dXJlUGNkR2V0IChQY2RSdGNV c2VNbWlvKSkgew0KPiArICAgIC8vIFJlZ2lzdGVyIGZvciB0aGUgdmlydHVhbCBhZGRyZXNzIGNo YW5nZSBldmVudA0KPiArICAgIFN0YXR1cyA9IGdCUy0+Q3JlYXRlRXZlbnRFeCAoDQo+ICsgICAg ICAgICAgICAgICAgICAgIEVWVF9OT1RJRllfU0lHTkFMLA0KPiArICAgICAgICAgICAgICAgICAg ICBUUExfTk9USUZZLA0KPiArICAgICAgICAgICAgICAgICAgICBMaWJSdGNWaXJ0dWFsTm90aWZ5 RXZlbnQsDQo+ICsgICAgICAgICAgICAgICAgICAgIE5VTEwsDQo+ICsgICAgICAgICAgICAgICAg ICAgICZnRWZpRXZlbnRWaXJ0dWFsQWRkcmVzc0NoYW5nZUd1aWQsDQo+ICsgICAgICAgICAgICAg ICAgICAgICZtVmlydHVhbEFkZHJDaGFuZ2VFdmVudA0KPiArICAgICAgICAgICAgICAgICAgICAp Ow0KPiArICAgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ICsgIH0NCj4gICANCj4gICAg IHJldHVybiBTdGF0dXM7DQo+ICAgfQ0KPiBkaWZmIC0tZ2l0IA0KPiBhL1BjQXRDaGlwc2V0UGtn L1BjYXRSZWFsVGltZUNsb2NrUnVudGltZUR4ZS9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVEDQo+ IHhlLmluZiANCj4gYi9QY0F0Q2hpcHNldFBrZy9QY2F0UmVhbFRpbWVDbG9ja1J1bnRpbWVEeGUv UGNhdFJlYWxUaW1lQ2xvY2tSdW50aW1lRA0KPiB4ZS5pbmYgaW5kZXggDQo+IGM3M2VlOTgxMDVl NTEwZjllNGUyM2MxYTZjMWU1YzUwNTMyNWQyYzkuLjBkOGVjYTI4YjY1OTU0YjA3M2E3MmZjNGZl NWENCj4gZDYyNDczMjBlNzlkIDEwMDY0NA0KPiAtLS0gDQo+IGEvUGNBdENoaXBzZXRQa2cvUGNh dFJlYWxUaW1lQ2xvY2tSdW50aW1lRHhlL1BjYXRSZWFsVGltZUNsb2NrUnVudGltZUQNCj4geGUu aW5mDQo+ICsrKyBiL1BjQXRDaGlwc2V0UGtnL1BjYXRSZWFsVGltZUNsb2NrUnVudGltZUR4ZS9Q Y2F0UmVhbFRpbWVDbG9ja1J1bnQNCj4gKysrIGltZUR4ZS5pbmYNCj4gQEAgLTYsNiArNiw3IEBA DQo+ICAgIw0KPiAgICMgQ29weXJpZ2h0IChjKSAyMDA2IC0gMjAxOSwgSW50ZWwgQ29ycG9yYXRp b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICMgQ29weXJpZ2h0IChjKSAyMDE3LCBB TUQgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKyMgQ29weXJpZ2h0IChjKSAyMDE4 IC0gMjAyMCwgQVJNIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgICMNCj4g ICAjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICAgIw0K PiBAQCAtNjEsNiArNjIsMTEgQEAgW0d1aWRzXQ0KPiAgICAgIyMgU09NRVRJTUVTX0NPTlNVTUVT ICMjIFN5c3RlbVRhYmxlDQo+ICAgICBnRWZpQWNwaVRhYmxlR3VpZA0KPiAgIA0KPiArICBnRWZp RXZlbnRWaXJ0dWFsQWRkcmVzc0NoYW5nZUd1aWQNCj4gKw0KPiArW0ZlYXR1cmVQY2RdDQo+ICsg IGdQY0F0Q2hpcHNldFBrZ1Rva2VuU3BhY2VHdWlkLlBjZFJ0Y1VzZU1taW8gICAgICAgICAgICAg ICAgICAgIyMgQ09OU1VNRVMNCj4gKw0KPiAgIFtGaXhlZFBjZF0NCj4gICAgIGdQY0F0Q2hpcHNl dFBrZ1Rva2VuU3BhY2VHdWlkLlBjZEluaXRpYWxWYWx1ZVJ0Y1JlZ2lzdGVyQSAgICAgIyMgQ09O U1VNRVMNCj4gICAgIGdQY0F0Q2hpcHNldFBrZ1Rva2VuU3BhY2VHdWlkLlBjZEluaXRpYWxWYWx1 ZVJ0Y1JlZ2lzdGVyQiAgICAgIyMgQ09OU1VNRVMNCj4gQEAgLTcyLDYgKzc4LDggQEAgW1BjZF0N Cj4gICAgIGdQY0F0Q2hpcHNldFBrZ1Rva2VuU3BhY2VHdWlkLlBjZE1heGltYWxWYWxpZFllYXIg ICAgICAgICAgICAgIyMgQ09OU1VNRVMNCj4gICAgIGdQY0F0Q2hpcHNldFBrZ1Rva2VuU3BhY2VH dWlkLlBjZFJ0Y0luZGV4UmVnaXN0ZXIgICAgICAgICAgICAgIyMgQ09OU1VNRVMNCj4gICAgIGdQ Y0F0Q2hpcHNldFBrZ1Rva2VuU3BhY2VHdWlkLlBjZFJ0Y1RhcmdldFJlZ2lzdGVyICAgICAgICAg ICAgIyMgQ09OU1VNRVMNCj4gKyAgZ1BjQXRDaGlwc2V0UGtnVG9rZW5TcGFjZUd1aWQuUGNkUnRj SW5kZXhSZWdpc3RlcjY0ICAgICAgICAgICAjIyBDT05TVU1FUw0KPiArICBnUGNBdENoaXBzZXRQ a2dUb2tlblNwYWNlR3VpZC5QY2RSdGNUYXJnZXRSZWdpc3RlcjY0ICAgICAgICAgICMjIENPTlNV TUVTDQo+ICAgDQo+ICAgW0RlcGV4XQ0KPiAgICAgZ0VmaVZhcmlhYmxlQXJjaFByb3RvY29sR3Vp ZCBBTkQgZ0VmaVZhcmlhYmxlV3JpdGVBcmNoUHJvdG9jb2xHdWlkDQo+IA0KDQo=