From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR02-AM5-obe.outbound.protection.outlook.com (EUR02-AM5-obe.outbound.protection.outlook.com [40.107.0.50]) by mx.groups.io with SMTP id smtpd.web09.3584.1625561566053803525 for ; Tue, 06 Jul 2021 01:52:47 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=fol8dgWK; spf=pass (domain: arm.com, ip: 40.107.0.50, 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=abRE66gCBJSN8bQpf+3OInv7n/LqGGNwn6RqrZkLx78=; b=fol8dgWK3H+dYACbF7PkB22v5JLaNllZ+63rSwvWlDr9oUvdg36H8/ckO0HHWUH09+txrLfvYKBs47NqH2J7xIwNHWc4v7de0VMPQHUiMqw8q/FihJMdDblLQ/bkNyHiGHEzgdBK2X/igTcsxCTssBn/0A3F2ekXqU0KZHgdbgA= Received: from DU2PR04CA0259.eurprd04.prod.outlook.com (2603:10a6:10:28e::24) by AS8PR08MB6037.eurprd08.prod.outlook.com (2603:10a6:20b:29a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.23; Tue, 6 Jul 2021 08:52:43 +0000 Received: from DB5EUR03FT034.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:28e:cafe::f8) by DU2PR04CA0259.outlook.office365.com (2603:10a6:10:28e::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.19 via Frontend Transport; Tue, 6 Jul 2021 08:52:43 +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=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 DB5EUR03FT034.mail.protection.outlook.com (10.152.20.87) 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 08:52:43 +0000 Received: ("Tessian outbound 71a9bd19c2b9:v97"); Tue, 06 Jul 2021 08:52:43 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 58017ae9a5f1b0b5 X-CR-MTA-TID: 64aa7808 Received: from 66004f6fa375.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 120565E3-2426-431B-A75D-4D1D7B1D1668.1; Tue, 06 Jul 2021 08:52:20 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 66004f6fa375.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 06 Jul 2021 08:52:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Xqde8m+jo4lQOkoYbgUf5wlto1qNvw8pBz3kkgv7DexLfl1k0AZy5Fiz0gaQBcl5LbTxSm9dqIkuxx/4qCYtpnM6P+v9gFt16kmQOjpErOXQj3a00CgdxALpXrcAi6RlAd6usWtMvbPuL9Gxgv4LChGrhUuSrLWgzdOErAHmEJ5tK5pTdluQG1PArPKcFBh5b3bk+mvO5uEVnRHCXqDHPcCNb1DeEjS5J3fWNgWdJeWUhKOH9F3H+GJq+mPdQBK20HrJp/CVX5YmWjMtEhj+FjV2/KZEUbKJsgSsvJpX9Et6kTeFHS6zNNN/ddTa6TUAHVgv2nZxCyokBKx3dh36eQ== 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=abRE66gCBJSN8bQpf+3OInv7n/LqGGNwn6RqrZkLx78=; b=SbT9WgO2r8v0fMRZ17DdyxXpuEz5PVqUPH88umusvBPDWbVuuXqtKxXCfr8iWlc8W6mexqfjUqcdE1wjmYYjdmdwfVRrXaXIL7tB5jHMB0Z36YxrdKv14xZgOjGfS8SD1hNkw1rHKVpK0mel/jsiIUgLAx8rVlT9+C85+ec7qyzAKJjFa8qnjGqH3xkDr/Lrm8Ehx066PBlUk0zxvgpYsE4gpcIybKDjojbLF6vV2IPGdr0URfPKXZtcAWiSE+E1A8kB+QI733nFr2h792zhiK712lCuCdasuhyWjPSJxUrGm9qhX4fIKdhiJomqCGcLOj85c0yfYnPCopP19iTkDQ== 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=abRE66gCBJSN8bQpf+3OInv7n/LqGGNwn6RqrZkLx78=; b=fol8dgWK3H+dYACbF7PkB22v5JLaNllZ+63rSwvWlDr9oUvdg36H8/ckO0HHWUH09+txrLfvYKBs47NqH2J7xIwNHWc4v7de0VMPQHUiMqw8q/FihJMdDblLQ/bkNyHiGHEzgdBK2X/igTcsxCTssBn/0A3F2ekXqU0KZHgdbgA= Received: from AS8PR08MB6806.eurprd08.prod.outlook.com (2603:10a6:20b:39b::12) by AS8PR08MB6119.eurprd08.prod.outlook.com (2603:10a6:20b:290::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.23; Tue, 6 Jul 2021 08:52:18 +0000 Received: from AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::ca6:6171:e2f1:3d40]) by AS8PR08MB6806.eurprd08.prod.outlook.com ([fe80::ca6:6171:e2f1:3d40%4]) with mapi id 15.20.4287.033; Tue, 6 Jul 2021 08:52:18 +0000 From: "Sami Mujawar" To: Jianyong Wu , "devel@edk2.groups.io" CC: "lersek@redhat.com" , "ardb+tianocore@kernel.org" , Justin He , nd Subject: Re: [PATCH v4 2/3] Acpi: Install Acpi tables for Cloud hypervisor Thread-Topic: [PATCH v4 2/3] Acpi: Install Acpi tables for Cloud hypervisor Thread-Index: AQHXcYWJRGteEfo5Y0+uTkqS/QIv66s1tiqA Date: Tue, 6 Jul 2021 08:52:18 +0000 Message-ID: <00AEC620-08E8-401A-AF92-31A4C3728E47@arm.com> References: <20210705100641.97166-1-jianyong.wu@arm.com> <20210705100641.97166-3-jianyong.wu@arm.com> In-Reply-To: <20210705100641.97166-3-jianyong.wu@arm.com> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/16.50.21061301 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: [165.120.44.203] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 9c07dd15-4cdd-43f0-4b97-08d9405b6b32 x-ms-traffictypediagnostic: AS8PR08MB6119:|AS8PR08MB6037: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:81;OLM:81; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: jNG5fSuvKTTUjvo9KTCa4LTu41PADd9w2ppBaxAazYWqdnVfDk2afveE1mLGq2zWKnHbM1ONG57mCVliSHNTozLYF+YEg+IUOD4wXVyGIoDq+jzZWRI/02IgM5drxCMZiZh0wLT5wcLMEWkEb8PhsTz7pEd3Rvk7YUYK5l/za58DTDMf56vcK6x13ip9HAKCusImjostMJlnzZ9m2jJOvT1YW6fWV+2FTxKHkdVtZPu7etB6XaMS40/Eke0ggOkSXviGhgx3qcmjuxZdggt2d8nr9wRoUZfV6hVtuJzuQIoeUMB5Hcl0rnpcRpjkllujpNkK2Rmlgr/7zAr7pMRu2WjAKs+wUf1we4eQgN6X+aY8xA6KjF8CwLt5+ix0fkf3gAV2rcC/vKKaZb4yCfjjbHicylUElBKxaGCbS6WG3yOiI1atTFvMQGlrLhS5CrIRYI35twghCOOTvUUZZ6IISIGDIAI1qE6u/4UP2ogjpG491qy8WFMofK5gFRvxaZhBQCegwD9PPQdjAsOKpRKuY1Nwb4FaQ0aWdJe1QnmwEIjex2tUvpeYmxloIS20VQt9HahjCRL5eaPKYPHrIsFgUYm2ijwrinkeY+KlrKP0f3z558fiTNyynneI6vJwVnAwyHQnOdPZ3FdPVsNTmS0g/SE7ERpzwxv9Y7Fjj3UPZcZuikX20dMdsB7ZwCiVPYIqsqyj2E6xK/JvbVW1sf9+Ew== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR08MB6806.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(396003)(39850400004)(346002)(136003)(366004)(36756003)(316002)(54906003)(38100700002)(2906002)(110136005)(71200400001)(2616005)(8936002)(5660300002)(64756008)(6512007)(66476007)(86362001)(8676002)(26005)(6506007)(83380400001)(478600001)(6486002)(91956017)(66946007)(33656002)(186003)(66446008)(4326008)(122000001)(66556008)(76116006)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QTAzbTgyYnlOVEQ3UkpuZkdNRFhLV1ZGZHliRW0xbHdwT04ycktReSt2K3V2?= =?utf-8?B?Y3NYT2VqWXFuTnJTN3lGTTBqWjFFaUwxYkxXT3NNRzZrRDVKSUVlekRJUnpv?= =?utf-8?B?NzZyZU9uSjQ5WnpuNXhDdUVqMmpYZVFJZkJiUjhjMEM2VHUwL3F6am1FMWlI?= =?utf-8?B?RjVvY1NqNnFCRWNITXR1Z05SejZTY1dibDREZXhOUkxYNml1MWpIZlNsdU1Q?= =?utf-8?B?YmFiVWQrZzI1ZTlieTl6SG02NTcxWExMOTlkME1mQUsvVWMvWTdOeWdnVkFv?= =?utf-8?B?UUYwR3pBNm9ab04yWjlrYjM5UDNXYmE2QzdVTWZjd3kxQWR1Tk9qMVZGSXdl?= =?utf-8?B?QlAzYkNTcVE4SkhuUy80d3NTdnRGeFZpVzZSTVNKN2tZNnNwRFBhRFNWSHVo?= =?utf-8?B?WXd2SDNacUFBakZhZVJpT1B5KzhYSmUwVFVML1paNnVWTHd4bUhWVExLa0dB?= =?utf-8?B?cTRDNEtVUUJXNXk0YWRQNExHbWYxY0lpRWZzSzNWRlFpS3gvNjZUbHVXZmdD?= =?utf-8?B?L3dyQWhVUzJUYkJkZFhEdHlhK0p4aE9kQkVBWHVuUVJEdlQzZzU2Ukk0RGtU?= =?utf-8?B?S24zekF1MVRiRGc0Z0FHYzRlMjdsMVdIQzlGQUFkWDdUdjJZK2NoVnliK0po?= =?utf-8?B?REl5UUFpWUEzTXVuQWdncFFLS0FmTGVXK2twcUVWb0FmSzJucElNY0hDbTNZ?= =?utf-8?B?dTFTZGQ4ZHdycUNxSGxqczJuZk1GTFlmcGtXUWdMZGQwRWM3c1liMVJkNmow?= =?utf-8?B?aVVnbzRXTVpQZXJzQU1Rd0oxZU5YWjNxb3ZNak5ZV3M0eHlmOWJkTk5ubWlo?= =?utf-8?B?YVpVdmg0cnBmbytBQUs1VlBiVCswUXRYd1AzdXpwK2wrcG9sekdxbE1pZ01M?= =?utf-8?B?ZmVDNWh5cEdiaUU5eitzWlUwVlNBTkd3WW9kaGgwUE13ZGtnVWxjV2F0dURC?= =?utf-8?B?ZTVZZHZzMkdaV1ZBdFk0ejZiOWd4d2Z5N2FzSTdHdkF0anNIdlg1KzJjQXZk?= =?utf-8?B?Ui9NV0xZd1A2REJJTkRXMXJ4S2VCU3FuOFVJYitsNEJEcE9rUGpURW1LU3hK?= =?utf-8?B?RTZobTdMSHg0Z0pjeW9FcGFnMkRubVRYeENXc1dUa0xnQkRGc3J4T3RaM000?= =?utf-8?B?NXZMQzBITEd1NnpyalRTTytqM2JiajZ3UDEzZHhqVGxoOUFCTkUrZlNwb1ZY?= =?utf-8?B?U0VaZFZVYnpEZlZQVVd4dTRQd0dIWXZhRldvTkRvSGJEUWNWVGcvY2l2M2Nj?= =?utf-8?B?eUF2cGw2SStVbFJ1NkxPOExMN1BZK3Q0QjNZeUtGK0pwa3B2emRyZnpwZkxY?= =?utf-8?B?RHJEdHkyTEYvSXIzMGVMK0ZxeStGalFveTFhTkdWLzhMc3ZXUm5yd2hhUWNw?= =?utf-8?B?Zm1pSmxwRnlXcm1JRXY4ZGdrV1p5dXFXeHN0SmRYbExXK1V3T01Ra2w1a210?= =?utf-8?B?Q25aZG8rTEUxRW9ER25YcEdZL2dSVnQrbEl0Ym5udVNRZnBZWUZoNno4a3RV?= =?utf-8?B?NHpKSXo2bkNoc3c1Sjk4ajZkN3VqVVQ4UElyTE5UTjBML2w4Mm5ScWVRYjU2?= =?utf-8?B?dGtYcG10ZURhczREcTcvQWUrZjJQeVZnRmduMmtUODZmaFMwZTdjWHg2dy9r?= =?utf-8?B?TmZkdWFPUUExY2N1NEV1VWNJUVZvSjQ4Ulc4Vmx0dG43QUNjSDNzeUs0d0Fu?= =?utf-8?B?UWlNOW1pWUFGY04yTHNjN05hUzZCMmhHS1hIZXFWUGRabFlITm8rYmR4azEz?= =?utf-8?Q?/B2rQT+QEJDZLxIjwbkq8OYJc93odp5vmoaVfoV?= MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6119 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: DB5EUR03FT034.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 9978a416-dc95-4c13-6e50-08d9405b5c33 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Z7jnQt2+PkTHPjjOv0weVpczQzuikMh3ONuSxgsX+Ypaz9LYz/sk1gJz9sshswNnkO5m1eKkESlgleQPG5OkvLjZNFvZLmOmHNQQG2GqH04Uhsm2KxeuoKGJd9IpNKTZ2gzXTxbLYPZ5Yd4we5WqzaLwdjQGWkmsYSanlNaSpHXce8wcydYuT3rCq3SyS0ZF72NBvc0VjUtxk7iv11MPR1JDmNQMCA2XPMUNZBH2ib8YfqupVDbMlj8zIDSsFw0YUtlo4IYQTj1oLciWs8d8mb9yOaZAGBFgbPs93aqkz06ydUrMJC19vDNiV9ZIpI5mKx/jfqqb/F48kXU1rPmPKYAmTWDl0vvdoxGSvNdLufgwzVv8Ai4eDOLNFJ+/a8+5d8APl3V3j8TzPLS/eP4o950ZbT9mgosqZ/e7ZB3k0N3sM9TG0+FuER/bxGoreik24i9v6g677iqDexfTc13kkcf68Nf4TKAUgOkv1lOyAz3rw8GxEatch6+UdnBjh/hiB9mZBrmtmTkvH+aoWc473ujJsNiR5kGw9huvAOhVX0pIaATBY22LPreswO8naNEHcWL5foa87tczUyT123mlm+oRHUjuPdeqDc0f73YALr2vviitLnrnUGy/lkQeTV6pRYNDkBsssHxs6qhCw9wSkL7JcYdz+WFGYR8XBiJhffI9BYzEH66ieot2k85gRoaQrw/x4QM3jle1bJtGhQaYfg== 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)(39850400004)(346002)(376002)(396003)(136003)(36840700001)(46966006)(33656002)(8936002)(82310400003)(5660300002)(6506007)(4326008)(26005)(36756003)(186003)(6486002)(82740400003)(6512007)(86362001)(54906003)(110136005)(316002)(8676002)(478600001)(2906002)(2616005)(356005)(336012)(83380400001)(81166007)(36860700001)(47076005)(70206006)(70586007);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2021 08:52:43.4195 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9c07dd15-4cdd-43f0-4b97-08d9405b6b32 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: DB5EUR03FT034.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6037 Content-Language: en-GB Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 SGkgSmlhbnlvbmcsDQoNCkkgc2hvdWxkIGhhdmUgY2F1Z2h0IHRoaXMgZWFybGllciBpbiBteSBy ZXZpZXcuICBIb3dldmVyLCBpZiB5b3UgYWdyZWUsIEkgd2lsbCBkbyB0aGUgZm9sbG93aW5nIGNo YW5nZXMgYmVmb3JlIHB1c2hpbmcgdGhlIHBhdGNoLg0KDQoxLglUaGUgc3ViamVjdCBsaW5lIG9m IHRoZSBjb21taXQgbWVzc2FnZSBkb2VzIG5vdCBjb25maXJtIHRvIHRoZSBlZGsyIGNvZGluZyBz dGFuZGFyZC4gSXQgc2hvdWxkIGhhdmUg4oCYQXJtVmlydFBrZzogPHN1YmplY3QgbGluZSBmb3Ig dGhlIHBhdGNoPuKAmQ0KMi4JVGhlIEFDUEkgdGFibGUgc2lnbmF0dXJlIGNhbiBiZSBzaW1wbGlm aWVkIGZ1cnRoZXIuIENhbiB5b3UgdHJ5IHRoZSBmb2xsb3dpbmcgYW5kIGxldCBtZSBrbm93IGlm IGl0IHdvcmtzLCBwbGVhc2U/DQoNCmRpZmYgLS1naXQgYS9Bcm1WaXJ0UGtnL0Nsb3VkSHZBY3Bp UGxhdGZvcm1EeGUvQ2xvdWRIdkFjcGkuYyBiL0FybVZpcnRQa2cvQ2xvdWRIdkFjcGlQbGF0Zm9y bUR4ZS9DbG91ZEh2QWNwaS5jDQppbmRleCBmNWE0N2FhN2YzY2QuLjUxYjAxMjY3NmU3ZCAxMDA2 NDQNCi0tLSBhL0FybVZpcnRQa2cvQ2xvdWRIdkFjcGlQbGF0Zm9ybUR4ZS9DbG91ZEh2QWNwaS5j DQorKysgYi9Bcm1WaXJ0UGtnL0Nsb3VkSHZBY3BpUGxhdGZvcm1EeGUvQ2xvdWRIdkFjcGkuYw0K QEAgLTUyLDggKzUyLDggQEAgRmluZEFjcGlUYWJsZVByb3RvY29sICgNCiBFRklfU1RBVFVTDQog RUZJQVBJDQogSW5zdGFsbENsb3VkSHZBY3BpVGFibGVzICgNCi0gSU4gICAgIEVGSV9BQ1BJX1RB QkxFX1BST1RPQ09MICAgICAgICpBY3BpUHJvdG9jb2wNCi0gKQ0KKyAgSU4gICAgIEVGSV9BQ1BJ X1RBQkxFX1BST1RPQ09MICAgICAgICpBY3BpUHJvdG9jb2wNCisgICkNCiB7DQogICBVSU5UTiAg ICAgICAgICBJbnN0YWxsZWRLZXk7DQogICBVSU5UTiAgICAgICAgICBUYWJsZVNpemU7DQpAQCAt OTcsMTEgKzk3LDEyIEBAIEluc3RhbGxDbG91ZEh2QWNwaVRhYmxlcyAoDQogICAgIC8vDQogICAg IC8vIEdldCBEU0RUIGZyb20gRkFEVA0KICAgICAvLw0KLSAgICBpZiAoRHNkdFB0ciA9PSBOVUxM DQotICAgICAgJiYgIUFzY2lpU3RybkNtcCAoKENIQVI4ICopJigoRUZJX0FDUElfQ09NTU9OX0hF QURFUiAqKUFjcGlUYWJsZVB0ciktPlNpZ25hdHVyZSwgIkZBQ1AiLCA0KSkgew0KKyAgICBpZiAo KERzZHRQdHIgPT0gTlVMTCkNCisgICAgICAmJiAoRUZJX0FDUElfNl8zX0ZJWEVEX0FDUElfREVT Q1JJUFRJT05fVEFCTEVfU0lHTkFUVVJFID09DQorICAgICAgICAgICgoRUZJX0FDUElfQ09NTU9O X0hFQURFUiAqKUFjcGlUYWJsZVB0ciktPlNpZ25hdHVyZSkpIHsNCiAgICAgICBEc2R0UHRyID0g KFVJTlQ2NCAqKSgoKEVGSV9BQ1BJXzZfM19GSVhFRF9BQ1BJX0RFU0NSSVBUSU9OX1RBQkxFICop QWNwaVRhYmxlUHRyKS0+WERzZHQpOw0KICAgICB9DQotICB9DQorICB9IC8vIHdoaWxlDQoNCiAg IGlmIChEc2R0UHRyID09IE5VTEwpIHsNCiAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBu byBEU0RUIGZvdW5kXG4iLCBfX0ZVTkNUSU9OX18pKTsNCg0KUmVnYXJkcywNCg0KU2FtaSBNdWph d2FyDQoNCu+7v09uIDA1LzA3LzIwMjEsIDExOjA3LCAiSmlhbnlvbmcgV3UiIDxqaWFueW9uZy53 dUBhcm0uY29tPiB3cm90ZToNCg0KICAgIFRoZXJlIGlzIG5vIGRldmljZSBsaWtlIEZ3LWNmZyBp biBRZW11IGluIENsb3VkIEh5cGVydmlzb3IsIHNvIGEgc3BlY2lmaWMNCiAgICBBY3BpIGhhbmRs ZXIgaXMgaW50cm9kdWNlZCBoZXJlLg0KDQogICAgVGhlIGhhbmRsZXIgaW1wbGVtZW50ZWQgaGVy ZSBpcyBpbiBhIHZlcnkgc2ltcGxlIHdheToNCiAgICAxLiBhY3F1aXJlIHRoZSBSU0RQIGZyb20g dGhlIFBDRCB2YXJpYWJsZSBpbiB0aGUgdG9wICIuZHNjIjsNCiAgICAyLiBnZXQgdGhlIFhTRFQg YWRkcmVzcyBmcm9tIFJTRFAgc3RydWN0dXJlOw0KICAgIDMuIGdldCB0aGUgQUNQSSB0YWJsZXMg Zm9sbG93aW5nIHRoZSBYU0RUIHN0cnVjdHVyZSBhbmQgaW5zdGFsbCB0aGVtDQogICAgb25lIGJ5 IG9uZTsNCiAgICA0LiBnZXQgRFNEVCBhZGRyZXNzIGZyb20gRkFEVCBhbmQgaW5zdGFsbCBEU0RU IHRhYmxlLg0KDQogICAgQ2M6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQogICAg Q2M6IFNhbWkgTXVqYXdhciA8c2FtaS5tdWphd2FyQGFybS5jb20+DQoNCiAgICBTaWduZWQtb2Zm LWJ5OiBKaWFueW9uZyBXdSA8amlhbnlvbmcud3VAYXJtLmNvbT4NCiAgICAtLS0NCiAgICAgQXJt VmlydFBrZy9Bcm1WaXJ0UGtnLmRlYyAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsNCiAgICAg Li4uL0Nsb3VkSHZBY3BpUGxhdGZvcm1EeGUuaW5mICAgICAgICAgICAgICAgIHwgIDQ3ICsrKysr Kw0KICAgICAuLi4vQ2xvdWRIdkFjcGlQbGF0Zm9ybUR4ZS9DbG91ZEh2QWNwaS5jICAgICAgfCAx NTUgKysrKysrKysrKysrKysrKysrDQogICAgIDMgZmlsZXMgY2hhbmdlZCwgMjA4IGluc2VydGlv bnMoKykNCiAgICAgY3JlYXRlIG1vZGUgMTAwNjQ0IEFybVZpcnRQa2cvQ2xvdWRIdkFjcGlQbGF0 Zm9ybUR4ZS9DbG91ZEh2QWNwaVBsYXRmb3JtRHhlLmluZg0KICAgICBjcmVhdGUgbW9kZSAxMDA2 NDQgQXJtVmlydFBrZy9DbG91ZEh2QWNwaVBsYXRmb3JtRHhlL0Nsb3VkSHZBY3BpLmMNCg0KICAg IGRpZmYgLS1naXQgYS9Bcm1WaXJ0UGtnL0FybVZpcnRQa2cuZGVjIGIvQXJtVmlydFBrZy9Bcm1W aXJ0UGtnLmRlYw0KICAgIGluZGV4IGJmODJmN2YxZjNmMi4uNGU0ZDc1ODAxNWJjIDEwMDY0NA0K ICAgIC0tLSBhL0FybVZpcnRQa2cvQXJtVmlydFBrZy5kZWMNCiAgICArKysgYi9Bcm1WaXJ0UGtn L0FybVZpcnRQa2cuZGVjDQogICAgQEAgLTY2LDYgKzY2LDEyIEBAIFtQY2RzRml4ZWRBdEJ1aWxk LCBQY2RzUGF0Y2hhYmxlSW5Nb2R1bGVdDQogICAgICAgIw0KICAgICAgIGdBcm1WaXJ0VG9rZW5T cGFjZUd1aWQuUGNkVGVybWluYWxUeXBlR3VpZEJ1ZmZlcnx7MHg2NSwgMHg2MCwgMHhBNiwgMHhE RiwgMHgxOSwgMHhCNCwgMHhEMywgMHgxMSwgMHg5QSwgMHgyRCwgMHgwMCwgMHg5MCwgMHgyNywg MHgzRiwgMHhDMSwgMHg0RH18Vk9JRCp8MHgwMDAwMDAwNw0KDQogICAgKyAgIyMNCiAgICArICAj IFRoaXMgaXMgdGhlIHBoeXNpY2FsIGFkZHJlc3Mgb2YgUnNkcCB3aGljaCBpcyB0aGUgY29yZSBz dHJ1Y3Qgb2YgQWNwaS4NCiAgICArICAjIENsb3VkIEh5cGVydmlzb3IgaGFzIG5vIG90aGVyIHdh eSB0byBwYXNzIFJzZHAgYWRkcmVzcyB0byB0aGUgZ3Vlc3QgZXhjZXB0IHVzZSBhIFBDRC4NCiAg ICArICAjDQogICAgKyAgZ0FybVZpcnRUb2tlblNwYWNlR3VpZC5QY2RDbG91ZEh2QWNwaVJzZHBC YXNlQWRkcmVzc3wweDB8VUlOVDY0fDB4MDAwMDAwMDUNCiAgICArDQogICAgIFtQY2RzRHluYW1p Y10NCiAgICAgICAjDQogICAgICAgIyBXaGV0aGVyIHRvIGZvcmNlIGRpc2FibGUgQUNQSSwgcmVn YXJkbGVzcyBvZiB0aGUgZndfY2ZnIHNldHRpbmdzDQogICAgZGlmZiAtLWdpdCBhL0FybVZpcnRQ a2cvQ2xvdWRIdkFjcGlQbGF0Zm9ybUR4ZS9DbG91ZEh2QWNwaVBsYXRmb3JtRHhlLmluZiBiL0Fy bVZpcnRQa2cvQ2xvdWRIdkFjcGlQbGF0Zm9ybUR4ZS9DbG91ZEh2QWNwaVBsYXRmb3JtRHhlLmlu Zg0KICAgIG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQogICAgaW5kZXggMDAwMDAwMDAwMDAwLi4wMWRl NzY0ODY2ODYNCiAgICAtLS0gL2Rldi9udWxsDQogICAgKysrIGIvQXJtVmlydFBrZy9DbG91ZEh2 QWNwaVBsYXRmb3JtRHhlL0Nsb3VkSHZBY3BpUGxhdGZvcm1EeGUuaW5mDQogICAgQEAgLTAsMCAr MSw0NyBAQA0KICAgICsjIyBAZmlsZQ0KICAgICsjICBBQ1BJIFBsYXRmb3JtIERyaXZlciBmb3Ig Q2xvdWQgSHlwZXJ2aXNvcg0KICAgICsjDQogICAgKyMgIENvcHlyaWdodCAoYykgMjAyMSwgQVJN IExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KICAgICsjICBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KICAgICsjDQogICAgKyMjDQogICAgKw0K ICAgICtbRGVmaW5lc10NCiAgICArICBJTkZfVkVSU0lPTiAgICAgICAgICAgICAgICAgICAgPSAw eDAwMDEwMDA1DQogICAgKyAgQkFTRV9OQU1FICAgICAgICAgICAgICAgICAgICAgID0gQ2xvdWRI dmdBY3BpUGxhdGZvcm0NCiAgICArICBGSUxFX0dVSUQgICAgICAgICAgICAgICAgICAgICAgPSA2 Yzc2ZTQwNy03M2YyLWRjMWMtOTM4Zi01ZDZjNDY5MWVhOTMNCiAgICArICBNT0RVTEVfVFlQRSAg ICAgICAgICAgICAgICAgICAgPSBEWEVfRFJJVkVSDQogICAgKyAgVkVSU0lPTl9TVFJJTkcgICAg ICAgICAgICAgICAgID0gMS4wDQogICAgKyAgRU5UUllfUE9JTlQgICAgICAgICAgICAgICAgICAg ID0gQ2xvdWRIdkFjcGlQbGF0Zm9ybUVudHJ5UG9pbnQNCiAgICArDQogICAgKyMNCiAgICArIyBU aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIGlzIGZvciByZWZlcmVuY2Ugb25seSBhbmQgbm90IHJl cXVpcmVkIGJ5IHRoZSBidWlsZCB0b29scy4NCiAgICArIw0KICAgICsgIFZBTElEX0FSQ0hJVEVD VFVSRVMgICAgICAgICAgID0gQUFSQ0g2NA0KICAgICsjDQogICAgKw0KICAgICtbU291cmNlc10N CiAgICArICBDbG91ZEh2QWNwaS5jDQogICAgKw0KICAgICtbUGFja2FnZXNdDQogICAgKyAgTWRl UGtnL01kZVBrZy5kZWMNCiAgICArICBNZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYw0KICAg ICsgIE92bWZQa2cvT3ZtZlBrZy5kZWMNCiAgICArICBBcm1WaXJ0UGtnL0FybVZpcnRQa2cuZGVj DQogICAgKw0KICAgICtbTGlicmFyeUNsYXNzZXNdDQogICAgKyAgQmFzZUxpYg0KICAgICsgIERl YnVnTGliDQogICAgKyAgTWVtb3J5QWxsb2NhdGlvbkxpYg0KICAgICsgIE9yZGVyZWRDb2xsZWN0 aW9uTGliDQogICAgKyAgVWVmaUJvb3RTZXJ2aWNlc1RhYmxlTGliDQogICAgKyAgVWVmaURyaXZl ckVudHJ5UG9pbnQNCiAgICArDQogICAgK1tQcm90b2NvbHNdDQogICAgKyAgZ0VmaUFjcGlUYWJs ZVByb3RvY29sR3VpZCAgICAgICAgICAgICAgICAgICAgICMgUFJPVE9DT0wgQUxXQVlTX0NPTlNV TUVEDQogICAgKw0KICAgICtbUGNkXQ0KICAgICsgIGdBcm1WaXJ0VG9rZW5TcGFjZUd1aWQuUGNk Q2xvdWRIdkFjcGlSc2RwQmFzZUFkZHJlc3MNCiAgICArDQogICAgK1tEZXBleF0NCiAgICArICBn RWZpQWNwaVRhYmxlUHJvdG9jb2xHdWlkDQogICAgZGlmZiAtLWdpdCBhL0FybVZpcnRQa2cvQ2xv dWRIdkFjcGlQbGF0Zm9ybUR4ZS9DbG91ZEh2QWNwaS5jIGIvQXJtVmlydFBrZy9DbG91ZEh2QWNw aVBsYXRmb3JtRHhlL0Nsb3VkSHZBY3BpLmMNCiAgICBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KICAg IGluZGV4IDAwMDAwMDAwMDAwMC4uZjVhNDdhYTdmM2NkDQogICAgLS0tIC9kZXYvbnVsbA0KICAg ICsrKyBiL0FybVZpcnRQa2cvQ2xvdWRIdkFjcGlQbGF0Zm9ybUR4ZS9DbG91ZEh2QWNwaS5jDQog ICAgQEAgLTAsMCArMSwxNTUgQEANCiAgICArLyoqIEBmaWxlDQogICAgKyAgSW5zdGFsbCBBY3Bp IHRhYmxlcyBmb3IgQ2xvdWQgSHlwZXJ2aXNvcg0KICAgICsNCiAgICArICBDb3B5cmlnaHQgKGMp IDIwMjEsIEFybSBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCiAgICArDQogICAg KyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCiAgICArKiov DQogICAgKw0KICAgICsjaW5jbHVkZSA8TGlicmFyeS9CYXNlTGliLmg+DQogICAgKyNpbmNsdWRl IDxMaWJyYXJ5L01lbW9yeUFsbG9jYXRpb25MaWIuaD4NCiAgICArI2luY2x1ZGUgPEluZHVzdHJ5 U3RhbmRhcmQvQWNwaTYzLmg+DQogICAgKyNpbmNsdWRlIDxQcm90b2NvbC9BY3BpVGFibGUuaD4N CiAgICArI2luY2x1ZGUgPExpYnJhcnkvVWVmaUJvb3RTZXJ2aWNlc1RhYmxlTGliLmg+DQogICAg KyNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlEcml2ZXJFbnRyeVBvaW50Lmg+DQogICAgKyNpbmNsdWRl IDxMaWJyYXJ5L0RlYnVnTGliLmg+DQogICAgKw0KICAgICsvKioNCiAgICArICAgRmluZCBBY3Bp IHRhYmxlIFByb3RvY29sIGFuZCByZXR1cm4gaXQNCiAgICArDQogICAgKyAgIEByZXR1cm4gQWNw aVRhYmxlICBQcm90b2NvbCwgd2hpY2ggaXMgdXNlZCB0byBoYW5kbGUgQWNwaSBUYWJsZSwgb24g U1VDQ0VTUyBvciBOVUxMIG9uIEZBSUxVUkUuDQogICAgKw0KICAgICsqKi8NCiAgICArU1RBVElD DQogICAgK0VGSV9BQ1BJX1RBQkxFX1BST1RPQ09MICoNCiAgICArRmluZEFjcGlUYWJsZVByb3Rv Y29sICgNCiAgICArICBWT0lEDQogICAgKyAgKQ0KICAgICt7DQogICAgKyAgRUZJX1NUQVRVUyAg ICAgICAgICAgICAgU3RhdHVzOw0KICAgICsgIEVGSV9BQ1BJX1RBQkxFX1BST1RPQ09MICpBY3Bp VGFibGU7DQogICAgKw0KICAgICsgIFN0YXR1cyA9IGdCUy0+TG9jYXRlUHJvdG9jb2wgKA0KICAg ICsgICAgICAgICAgICAgICAgICAmZ0VmaUFjcGlUYWJsZVByb3RvY29sR3VpZCwNCiAgICArICAg ICAgICAgICAgICAgICAgTlVMTCwNCiAgICArICAgICAgICAgICAgICAgICAgKFZPSUQqKikmQWNw aVRhYmxlDQogICAgKyAgICAgICAgICAgICAgICAgICk7DQogICAgKyAgQVNTRVJUX0VGSV9FUlJP UiAoU3RhdHVzKTsNCiAgICArICByZXR1cm4gQWNwaVRhYmxlOw0KICAgICt9DQogICAgKw0KICAg ICsvKiogSW5zdGFsbCBBY3BpIHRhYmxlcyBmb3IgQ2xvdWQgSHlwZXJ2aXNvcg0KICAgICsNCiAg ICArICBAcGFyYW0gW2luXSAgQWNwaVByb3RvY29sICBBY3BpIFByb3RvY29sIHdoaWNoIGlzIHVz ZWQgdG8gaW5zdGFsbCBBY3BpIHRhbGJsZXMNCiAgICArDQogICAgKyAgQHJldHVybiBFRklfU1VD Q0VTUyAgICAgICAgICAgIFRoZSB0YWJsZSB3YXMgc3VjY2Vzc2Z1bGx5IGluc2VydGVkLg0KICAg ICsgIEByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSICBFaXRoZXIgQWNwaVByb3RvY29sLCBB Y3BpVGFibGVQdHIgb3IgRHNkdFB0ciBpcyBOVUxMDQogICAgKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFuZCB0aGUgc2l6ZSBmaWVsZCBlbWJlZGRlZCBpbiB0aGUgQUNQSSB0YWJs ZSBwb2ludGVkDQogICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5IEFjcGlU YWJsZVB0ciBvciBEc2R0UHRyIGFyZSBub3QgaW4gc3luYy4NCiAgICArICBAcmV0dXJuIEVGSV9P VVRfT0ZfUkVTT1VSQ0VTICAgSW5zdWZmaWNpZW50IHJlc291cmNlcyBleGlzdCB0byBjb21wbGV0 ZSB0aGUgcmVxdWVzdC4NCiAgICArICBAcmV0dXJuIEVGSV9OT1RfRk9VTkQgICAgICAgICAgRFNE VCB0YWJsZSBub3QgZm91bmQuDQogICAgKyoqLw0KICAgICtFRklfU1RBVFVTDQogICAgK0VGSUFQ SQ0KICAgICtJbnN0YWxsQ2xvdWRIdkFjcGlUYWJsZXMgKA0KICAgICsgSU4gICAgIEVGSV9BQ1BJ X1RBQkxFX1BST1RPQ09MICAgICAgICpBY3BpUHJvdG9jb2wNCiAgICArICkNCiAgICArew0KICAg ICsgIFVJTlROICAgICAgICAgIEluc3RhbGxlZEtleTsNCiAgICArICBVSU5UTiAgICAgICAgICBU YWJsZVNpemU7DQogICAgKyAgVUlOVE4gICAgICAgICAgQWNwaVRhYmxlTGVuZ3RoOw0KICAgICsg IFVJTlQ2NCAgICAgICAgIFJzZHBQdHI7DQogICAgKyAgVUlOVDY0ICAgICAgICAgWHNkdFB0cjsN CiAgICArICBVSU5UNjQgICAgICAgICBUYWJsZU9mZnNldDsNCiAgICArICBVSU5UNjQgICAgICAg ICBBY3BpVGFibGVQdHI7DQogICAgKyAgVUlOVDY0ICAgICAgICAgKkRzZHRQdHIgPSBOVUxMOw0K ICAgICsgIEVGSV9TVEFUVVMgICAgIFN0YXR1czsNCiAgICArDQogICAgKyAgaWYgKEFjcGlQcm90 b2NvbCA9PSBOVUxMKSB7DQogICAgKyAgICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7 DQogICAgKyAgfQ0KICAgICsNCiAgICArICBSc2RwUHRyID0gUGNkR2V0NjQgKFBjZENsb3VkSHZB Y3BpUnNkcEJhc2VBZGRyZXNzKTsNCiAgICArICBYc2R0UHRyID0gKChFRklfQUNQSV82XzNfUk9P VF9TWVNURU1fREVTQ1JJUFRJT05fUE9JTlRFUiAqKVJzZHBQdHIpLT5Yc2R0QWRkcmVzczsNCiAg ICArICBBY3BpVGFibGVMZW5ndGggPSAoKEVGSV9BQ1BJX0NPTU1PTl9IRUFERVIgKilYc2R0UHRy KS0+TGVuZ3RoOw0KICAgICsgIFRhYmxlT2Zmc2V0ID0gc2l6ZW9mIChFRklfQUNQSV9ERVNDUklQ VElPTl9IRUFERVIpOw0KICAgICsNCiAgICArICB3aGlsZSAoVGFibGVPZmZzZXQgPCBBY3BpVGFi bGVMZW5ndGgpIHsNCiAgICArICAgIEFjcGlUYWJsZVB0ciA9ICooVUlOVDY0ICopKFhzZHRQdHIg KyBUYWJsZU9mZnNldCk7DQogICAgKyAgICBUYWJsZVNpemUgPSAoKEVGSV9BQ1BJX0NPTU1PTl9I RUFERVIgKilBY3BpVGFibGVQdHIpLT5MZW5ndGg7DQogICAgKw0KICAgICsgICAgLy8NCiAgICAr ICAgIC8vIEluc3RhbGwgQUNQSSB0YWJsZXMgZnJvbSBYU0RUDQogICAgKyAgICAvLw0KICAgICsg ICAgU3RhdHVzID0gQWNwaVByb3RvY29sLT5JbnN0YWxsQWNwaVRhYmxlICgNCiAgICArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBBY3BpUHJvdG9jb2wsDQogICAgKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKFZPSUQgKilBY3BpVGFibGVQdHIsDQogICAgKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVGFibGVTaXplLA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZJbnN0YWxsZWRLZXkNCiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOw0K ICAgICsNCiAgICArICAgIGlmIChFRklfRVJST1IoU3RhdHVzKSkgew0KICAgICsgICAgICAgIHJl dHVybiBTdGF0dXM7DQogICAgKyAgICB9DQogICAgKw0KICAgICsgICAgVGFibGVPZmZzZXQgKz0g c2l6ZW9mIChVSU5UNjQpOw0KICAgICsNCiAgICArICAgIC8vDQogICAgKyAgICAvLyBHZXQgRFNE VCBmcm9tIEZBRFQNCiAgICArICAgIC8vDQogICAgKyAgICBpZiAoRHNkdFB0ciA9PSBOVUxMDQog ICAgKyAgICAgICYmICFBc2NpaVN0cm5DbXAgKChDSEFSOCAqKSYoKEVGSV9BQ1BJX0NPTU1PTl9I RUFERVIgKilBY3BpVGFibGVQdHIpLT5TaWduYXR1cmUsICJGQUNQIiwgNCkpIHsNCiAgICArICAg ICAgRHNkdFB0ciA9IChVSU5UNjQgKikoKChFRklfQUNQSV82XzNfRklYRURfQUNQSV9ERVNDUklQ VElPTl9UQUJMRSAqKUFjcGlUYWJsZVB0ciktPlhEc2R0KTsNCiAgICArICAgIH0NCiAgICArICB9 DQogICAgKw0KICAgICsgIGlmIChEc2R0UHRyID09IE5VTEwpIHsNCiAgICArICAgIERFQlVHICgo REVCVUdfRVJST1IsICIlYTogbm8gRFNEVCBmb3VuZFxuIiwgX19GVU5DVElPTl9fKSk7DQogICAg KyAgICByZXR1cm4gRUZJX05PVF9GT1VORDsNCiAgICArICB9DQogICAgKw0KICAgICsgIC8vDQog ICAgKyAgLy8gSW5zdGFsbCBEU0RUIHRhYmxlDQogICAgKyAgLy8NCiAgICArICBUYWJsZVNpemUg PSAoKEVGSV9BQ1BJX0NPTU1PTl9IRUFERVIgKilEc2R0UHRyKS0+TGVuZ3RoOw0KICAgICsgIFN0 YXR1cyA9IEFjcGlQcm90b2NvbC0+SW5zdGFsbEFjcGlUYWJsZSAoDQogICAgKyAgICAgICAgICAg ICBBY3BpUHJvdG9jb2wsDQogICAgKyAgICAgICAgICAgICBEc2R0UHRyLA0KICAgICsgICAgICAg ICAgICAgVGFibGVTaXplLA0KICAgICsgICAgICAgICAgICAgJkluc3RhbGxlZEtleQ0KICAgICsg ICAgICAgICAgICAgKTsNCiAgICArDQogICAgKyAgcmV0dXJuIFN0YXR1czsNCiAgICArfQ0KICAg ICsNCiAgICArLyoqIEVudHJ5IHBvaW50IGZvciBDbG91ZCBIeXBlcnZpc29yIFBsYXRmb3JtIER4 ZQ0KICAgICsNCiAgICArICBAcGFyYW0gW2luXSAgSW1hZ2VIYW5kbGUgIEhhbmRsZSBmb3IgdGhp cyBpbWFnZS4NCiAgICArICBAcGFyYW0gW2luXSAgU3lzdGVtVGFibGUgIFBvaW50ZXIgdG8gdGhl IEVGSSBzeXN0ZW0gdGFibGUuDQogICAgKw0KICAgICsgIEByZXR1cm4gRUZJX1NVQ0NFU1MgICAg ICAgICAgICBUaGUgdGFibGUgd2FzIHN1Y2Nlc3NmdWxseSBpbnNlcnRlZC4NCiAgICArICBAcmV0 dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUiAgRWl0aGVyIEFjcGlQcm90b2NvbCwgQWNwaVRhYmxl UHRyIG9yIERzZHRQdHIgaXMgTlVMTA0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhbmQgdGhlIHNpemUgZmllbGQgZW1iZWRkZWQgaW4gdGhlIEFDUEkgdGFibGUgcG9pbnRl ZCB0bw0KICAgICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieSBBY3BpVGFibGVQ dHIgb3IgRHNkdFB0ciBhcmUgbm90IGluIHN5bmMuDQogICAgKyAgQHJldHVybiBFRklfT1VUX09G X1JFU09VUkNFUyAgIEluc3VmZmljaWVudCByZXNvdXJjZXMgZXhpc3QgdG8gY29tcGxldGUgdGhl IHJlcXVlc3QuDQogICAgKyAgQHJldHVybiBFRklfTk9UX0ZPVU5EICAgICAgICAgIERTRFQgdGFi bGUgbm90IGZvdW5kDQogICAgKyoqLw0KICAgICtFRklfU1RBVFVTDQogICAgK0VGSUFQSQ0KICAg ICtDbG91ZEh2QWNwaVBsYXRmb3JtRW50cnlQb2ludCAoDQogICAgKyAgSU4gRUZJX0hBTkRMRSAg ICAgICAgIEltYWdlSGFuZGxlLA0KICAgICsgIElOIEVGSV9TWVNURU1fVEFCTEUgICAqU3lzdGVt VGFibGUNCiAgICArICApDQogICAgK3sNCiAgICArICBFRklfU1RBVFVTICAgICAgICAgICAgICAg ICAgICAgICAgIFN0YXR1czsNCiAgICArDQogICAgKyAgU3RhdHVzID0gSW5zdGFsbENsb3VkSHZB Y3BpVGFibGVzIChGaW5kQWNwaVRhYmxlUHJvdG9jb2wgKCkpOw0KICAgICsNCiAgICArICBpZiAo RUZJX0VSUk9SKFN0YXR1cykpIHsNCiAgICArICAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6 IEZhaWwgdG8gaW5zdGFsbCBBY3BpIHRhYmxlOiAlclxuIiwgX19GVU5DVElPTl9fLA0KICAgICsg ICAgICAgU3RhdHVzKSk7DQogICAgKyAgICAgQ3B1RGVhZExvb3AgKCk7DQogICAgKyAgfQ0KICAg ICsNCiAgICArICByZXR1cm4gRUZJX1NVQ0NFU1M7DQogICAgK30NCiAgICAtLSANCiAgICAyLjE3 LjENCg0KDQo=