From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (EUR04-HE1-obe.outbound.protection.outlook.com [40.107.7.70]) by mx.groups.io with SMTP id smtpd.web12.15708.1625622189932306455 for ; Tue, 06 Jul 2021 18:43:11 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=CvoRAEw8; spf=pass (domain: arm.com, ip: 40.107.7.70, mailfrom: jianyong.wu@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=v7HXyRknl/poygN4oLDowAsfAyYaVORzBGY2K/ddh4I=; b=CvoRAEw8G1kZ5axE4MWf3nIQ29IuXYagBxmO/o5l5wv5QBrbMrCK1RdoY4hYvncNbVg6Pmp5nxjpb5jRNSxoxmUlJFQE78Kzuo0nVKwwbsnw2qn1NVsHD7PwlgZlaVQcXDrArStVzqw0Dm/JaqZX3gacwYK/bCvsm3FC+UAHvfc= Received: from DB6PR0301CA0052.eurprd03.prod.outlook.com (2603:10a6:4:54::20) by PA4PR08MB6173.eurprd08.prod.outlook.com (2603:10a6:102:e5::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.32; Wed, 7 Jul 2021 01:43:06 +0000 Received: from DB5EUR03FT058.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:54:cafe::4) by DB6PR0301CA0052.outlook.office365.com (2603:10a6:4:54::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.19 via Frontend Transport; Wed, 7 Jul 2021 01:43:06 +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 DB5EUR03FT058.mail.protection.outlook.com (10.152.20.255) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.20 via Frontend Transport; Wed, 7 Jul 2021 01:43:06 +0000 Received: ("Tessian outbound 3362253f4878:v97"); Wed, 07 Jul 2021 01:43:06 +0000 X-CR-MTA-TID: 64aa7808 Received: from aa8feeb175b1.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 9D374F8C-3DDD-4687-BE0B-E66C7517E675.1; Wed, 07 Jul 2021 01:43:00 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id aa8feeb175b1.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 07 Jul 2021 01:43:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kVE7yveQltvYohHhmPXqxFdBgUPxoYBMxtabAkNafGEDoYmusFo2yP3HBrpSvBb6fWhx6JAe+dnRI2DQRs729uMuTO3OTjEBLfzr2LJB9+UDR1EILSNIjMhZNMtGz2hl6aYKX/6PrCDQKAXpI89WdKypAkSIP+ELoSfgw1mxOODoMqVwygXM6yt3ukp8e5DZ3JDP/ZazYxqudG5XCoCG/T68D+Yobe3cUye6ZVjmEKpwg22YpGZQtWtpcZ2AWNRBxIK67KcMJ49jvy9mPJJQevsF3LXWxfTN+VjURYRj24dvMOWonxSkhGs1YjShy0PGBxWJm8T179JzEi6x4bpqqA== 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=v7HXyRknl/poygN4oLDowAsfAyYaVORzBGY2K/ddh4I=; b=dlotKhB6WckrVy2l0wXQipvl1DM+IKveTXRbHkDiFNn2VGEa12bscwkuuVnmDXGQT8oGbEDLd9nj79Fu79XIMTf3Vr+mB4pbVWv89NQA6rxrI8l+Dqf/ZvtsAu7Td5Zp5pQjb9l+mPZ2tvPmZbCDUt9v1S/gtKHr+2Bkl3iU17//KCPn5L8qyYfdJNxtJeTgTolzrfT51J6waO/jaNkMksZR112bmC+AXHKh6LSPp/UWEXAKt0Pon8Nr7wYuI9CPHcXs78tYOVrgPK+n57jc1ONGI3sAwGzz/NgI5KNPa71b+HKHGQfH2BDhm290w+/houvM1hCKkWI1FO6f+Fellw== 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=v7HXyRknl/poygN4oLDowAsfAyYaVORzBGY2K/ddh4I=; b=CvoRAEw8G1kZ5axE4MWf3nIQ29IuXYagBxmO/o5l5wv5QBrbMrCK1RdoY4hYvncNbVg6Pmp5nxjpb5jRNSxoxmUlJFQE78Kzuo0nVKwwbsnw2qn1NVsHD7PwlgZlaVQcXDrArStVzqw0Dm/JaqZX3gacwYK/bCvsm3FC+UAHvfc= Received: from AM9PR08MB7276.eurprd08.prod.outlook.com (2603:10a6:20b:437::11) by AM9PR08MB7150.eurprd08.prod.outlook.com (2603:10a6:20b:41f::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.26; Wed, 7 Jul 2021 01:42:59 +0000 Received: from AM9PR08MB7276.eurprd08.prod.outlook.com ([fe80::418f:7877:8c88:5b6e]) by AM9PR08MB7276.eurprd08.prod.outlook.com ([fe80::418f:7877:8c88:5b6e%5]) with mapi id 15.20.4287.033; Wed, 7 Jul 2021 01:42:58 +0000 From: "Jianyong Wu" To: Sami Mujawar , "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: AQHXcYWJFlgNumkfM0KcHw8WOV5laKs1pWgAgAEZRSA= Date: Wed, 7 Jul 2021 01:42:58 +0000 Message-ID: References: <20210705100641.97166-1-jianyong.wu@arm.com> <20210705100641.97166-3-jianyong.wu@arm.com> <00AEC620-08E8-401A-AF92-31A4C3728E47@arm.com> In-Reply-To: <00AEC620-08E8-401A-AF92-31A4C3728E47@arm.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 19B14A6374193F4C9AD667BF12A5763D.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-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: f1b7bac6-f26b-4b72-fbcf-08d940e89135 x-ms-traffictypediagnostic: AM9PR08MB7150:|PA4PR08MB6173: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:89;OLM:89; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 8mQP9+U8cwdATdHeV0dSrOagM/cIO+MDwOEnZri74EROA15ODLKj6/9ODukSrNUB6HuVcZtMcctLaIt7IEBAaRc/kuC4nIMHd2WxW1e9SAoLC0eKuw9c6q2cVaAojAYc+mt2dGBa1Kv7uDWOnXxYTeH+0NDxX4WT5DZVkIeoWV0yDVpjDD47F25dGIuLiipknTy99gI9OM0hdzpY/+RWwKuZA5iqrgEkGYkOLMkbagKtOMjP29e1k2JwNcqIkRLr8RnbfZc0fItNY+WDZvacEKA7OLINjZVD3m09+Itovp0lHNaM9n/KPiILiHwoIjtUPYu+F2CVRqs0havB7giaPmrIVIt+DY7lp4CZEziKOk8iSU+BSFLS2cg7AIdoMNblA/azyEL/F8ZpXNaXgC7T08PBnM/nYUYvkO6Ao1O+vHG/Y3iXxK7UJa5FJvyQEWYeJ77B8gw3kg1+b0lJ2EB6JyMrV535uWlhMm3xFPu4n3hpvmt/2RYbOAKfZ+wuMOm9NvHExFqqSshI1i/vb4tqOtjB2Uouf5nTDtM5gjDlYVw66Us3tGbgGEfg66COxQEpyP2nynpImCry+DJuZZCmvki4D2Wvf/zHGxl07tPYbK2ju8n7SkGHci/UIDOL6+Vob+Jo6DRqjstdVVZ28rUrLw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9PR08MB7276.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(136003)(396003)(346002)(366004)(39850400004)(54906003)(38100700002)(122000001)(186003)(86362001)(33656002)(110136005)(478600001)(53546011)(9686003)(4326008)(8936002)(55016002)(6506007)(52536014)(2906002)(66476007)(66556008)(66446008)(64756008)(71200400001)(66946007)(8676002)(76116006)(83380400001)(7696005)(316002)(5660300002)(26005);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TXZMWTBEZkpaUzJXQ0pHNVpndTNHK2Y3a1Nvai9RcG1kVFdaQnk5RkEyNEVF?= =?utf-8?B?NS85WFRZeFFNM1lWaE9aTUxGNzg2ekRFT1ozQWVHZ0VOVENoRG9HUXBGRVhV?= =?utf-8?B?MXRQcmVEMVViZEhDS0ZiM1BOOEkzVkg1R09MS1R3czF6Yzd4M0ZpcWZiOVI5?= =?utf-8?B?aXlEUU9VMjNvaUFUQnVITzJUTU1PMFZGNGdMd0xkOWcrQnV1T0E3KzFSdHpm?= =?utf-8?B?STBrWTBVRmZjUzVCYnZwR0MvZzVmTE9qS1ZuclZDVWpVU2l4NHFacEp4WGt5?= =?utf-8?B?RjNNSGU2MDVCcmsrN1RIb1NDL1I4Z0JiWTJSK1RpRlR0OEFXMVcwRUtPY01n?= =?utf-8?B?UmNHaGw4ZmVnU0M5N3BUNUpLK2JkTTF5MlJoTlo3NVJUOEtjSk1wTDRER1ZX?= =?utf-8?B?M3N5UlNEWWFDRE81bWd2T2VyRVNYK2RLQ252ektsTDJPMld5VitWOVR0Z1dq?= =?utf-8?B?TWhRL0hKVDZsZG5mUmZIc2tFQWJybTFKRVRlUnNMSVlHaVdIM3NKN1l2R0tI?= =?utf-8?B?Qmdma3FLaExHU3A5RUMrVGxkQnNxSy9VUG00OEJmVHpMTy94cWljdFJWeWQ4?= =?utf-8?B?aEJyNVI5dndtQlNMdjV1RVFKYXZhL05GYVRNZTAxOFRDaDNCRzFXblo4R3Fy?= =?utf-8?B?OWhQOWJWdGtSOVBESG51V3d4M0t5bWJEQ0xKUEVMUGFDbFljR2pEelc5b1FS?= =?utf-8?B?VXZFQUFweUV3K3NwRDYxZHNvMGg3aTZSc01WeGtTaktaZVlCYmkyODNxMGdr?= =?utf-8?B?eTJJd1ZMa2RSWTNnUmw3SEpQV3ZBQVRlQTBqUUEyVno4QkltYkZOUFg0Zllp?= =?utf-8?B?dDZHVCswMEdqOGQwMzhQK1BBTEo0bUhrK1VSVTh2OXVKVXJ1WTlYa1lxM3hO?= =?utf-8?B?ZlZnYXB5L3k2N2tDbGZOWjV4QnF4aFVPZDB6d2pEWXU3MVI5aWU2bGdFeTgx?= =?utf-8?B?YUIxYS9oKzg0VHFsMHlDQW83c1NOVUdQWnNpcmtQSVlLTmF6cmVEek9jcEdL?= =?utf-8?B?eUR2b3FaSnpnN29SOVdkdnR1YzJsV1hVUUNMSjFoVFVzRGtXMHRpYlpPd2E1?= =?utf-8?B?MGhUeXdEcDVyWW9jZ0oyd2FwZ1loeHJHd0NZbGxwQjR6Q05HR0Vic1NDSllh?= =?utf-8?B?Qk5na3RNR2VZcFk2elQweC9XZnU3VEt1R2V4OHk3dmYrOUwzbHZ2eGRzOXZu?= =?utf-8?B?NVZ5bVowdDEwUVRmZnBXbHBOUys0MFI5NzJXWnprTGVxRDB2Wnh2QTVmL3VO?= =?utf-8?B?dWs4ZWhPUUE3dXdzUjhoNlFmMklnV0FMdVNuNlFUYlBjZnR4amJhTWxReEFx?= =?utf-8?B?WnFGSFpDWHFGblNnbm5IbFA2UGJvc2RUUXY3OGJTSkR0ME9QUTRaZ3JjRWhG?= =?utf-8?B?dTZiRGFqV3FkcS8vR05MNnFNa3ZoQk1waThHUlJCRTlHblE4TnBvRmRkanFy?= =?utf-8?B?ekxuVHdDc2toTWdrZ2pCRHZnVldpdnlON3VtYUsxNGFnS3AyeUw2ZkZPNGpv?= =?utf-8?B?YkNvcWxydVJrd1pqeFdsdjVTcVpUczQ4L1BocXU2MkF4NnZ1ZGJHTnNRb2NI?= =?utf-8?B?U21KZTRFWTVaeGJkL0IrU0dwOURzcHo1QXVES2JxM09kbWJ1Z2E0MDYwcVUr?= =?utf-8?B?Nno2TURKVGJCN2U3WnNqK0dKQWVPNUM0NFlrRmdkTERWcjJxVzJ5SnFCcE1L?= =?utf-8?B?NXl2Ty9LVEVuMlljSjV0TnZLa3NhYVRyVElOMDVEMGN6S3Q2R3RKNTBKSGFh?= =?utf-8?Q?T4gVcMovDMJ31mMWdQ=3D?= MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB7150 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: Jianyong.Wu@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT058.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 9b367117-9ec9-4daa-656f-08d940e88cc5 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: F//Bxzw2zRGlS5YWXb0KKBC8rBFaKJJAutSE3nx3e1pw5gpu6LVmM+WwxewaECLCOW4XcDOWjIqQHBWSNvc+/6kRF9PagMjbpucqW03Zy2D3sWSpytn9KrrV28RoTpBzYb1MSN4CzYzYxeMDJXeLuCNWwHqjHqbROr48dYxH4+tM0esBSBljyPvG8+H+j0DpPwy7xsoQx8g4l9N+jZE+mCSHcbFCNdghsgjkgJVjTqaXxykgyHodve3iRwFp48ayYMPzj6xistR/5LOUqDHM1hbpTPyK1Iw5E9vFbSAK4DdpXTYgYYBoUt8RHjZZ5YSKTXL0c8BSoVSnPhA9iK1U+WYfsyovzCzuw5X5msTiJKm4VAyNzPeGX06KZ1mnakImD1Y41xXtXLucn74sXd0B18+/LdKIEWIEZ+DgzssdFbVZ23JuFr6zT9Q6X5Ols7y9UUA3eQDNZABltLect/DonVfN0kSMo+Q0o105tdjkm/lRq938dPaIwj0/WqxO9v25GmHtpCsPPzRi+qimUH2rE4u/T/jZEhvPypNUdmoAfzWInGRx7XTgSNuuJlOYPHNMfJfVn3ChVv6FKWOzqR5mbFLPeaGxfHNeXETWEiDY500zdCymvrLQwF9WiUZXSrkNfSlELVuYrs2YE+mOYIm5+OtMCcqoYjF31CKzf/saa2EFZA2sA3s5Lr4bxmUvdnXVTJ9x/5lflMoWNRjqX2eNGA== 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)(39850400004)(136003)(376002)(346002)(46966006)(36840700001)(47076005)(8676002)(478600001)(54906003)(82740400003)(53546011)(82310400003)(4326008)(70206006)(70586007)(6506007)(8936002)(33656002)(7696005)(186003)(5660300002)(356005)(316002)(81166007)(336012)(52536014)(55016002)(110136005)(2906002)(26005)(83380400001)(36860700001)(9686003)(86362001);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2021 01:43:06.2380 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f1b7bac6-f26b-4b72-fbcf-08d940e89135 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: DB5EUR03FT058.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB6173 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgU2FtaSwNCg0KVGhhbmtzIGZvciB5b3VyIHJld29yayBvbiBteSBwYXRjaC4gSSB0cmllZCB0 aGUgY2hhbmdlIGFuZCBpdCB3b3JrcyB3ZWxsLiBZb3UgY2FuIGRvIHdoYXQgeW91IGxpa2Ugb24g dGhlIHBhdGNoIHNldC4NCg0KVGhhbmtzDQpKaWFueW9uZw0KDQo+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+IEZyb206IFNhbWkgTXVqYXdhciA8U2FtaS5NdWphd2FyQGFybS5jb20+DQo+ IFNlbnQ6IFR1ZXNkYXksIEp1bHkgNiwgMjAyMSA0OjUyIFBNDQo+IFRvOiBKaWFueW9uZyBXdSA8 SmlhbnlvbmcuV3VAYXJtLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBsZXJzZWtA cmVkaGF0LmNvbTsgYXJkYit0aWFub2NvcmVAa2VybmVsLm9yZzsgSnVzdGluIEhlDQo+IDxKdXN0 aW4uSGVAYXJtLmNvbT47IG5kIDxuZEBhcm0uY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY0 IDIvM10gQWNwaTogSW5zdGFsbCBBY3BpIHRhYmxlcyBmb3IgQ2xvdWQgaHlwZXJ2aXNvcg0KPiAN Cj4gSGkgSmlhbnlvbmcsDQo+IA0KPiBJIHNob3VsZCBoYXZlIGNhdWdodCB0aGlzIGVhcmxpZXIg aW4gbXkgcmV2aWV3LiAgSG93ZXZlciwgaWYgeW91IGFncmVlLCBJIHdpbGwNCj4gZG8gdGhlIGZv bGxvd2luZyBjaGFuZ2VzIGJlZm9yZSBwdXNoaW5nIHRoZSBwYXRjaC4NCj4gDQo+IDEuCVRoZSBz dWJqZWN0IGxpbmUgb2YgdGhlIGNvbW1pdCBtZXNzYWdlIGRvZXMgbm90IGNvbmZpcm0gdG8gdGhl IGVkazINCj4gY29kaW5nIHN0YW5kYXJkLiBJdCBzaG91bGQgaGF2ZSDigJhBcm1WaXJ0UGtnOiA8 c3ViamVjdCBsaW5lIGZvciB0aGUgcGF0Y2g+4oCZDQo+IDIuCVRoZSBBQ1BJIHRhYmxlIHNpZ25h dHVyZSBjYW4gYmUgc2ltcGxpZmllZCBmdXJ0aGVyLiBDYW4geW91IHRyeSB0aGUNCj4gZm9sbG93 aW5nIGFuZCBsZXQgbWUga25vdyBpZiBpdCB3b3JrcywgcGxlYXNlPw0KPiANCj4gZGlmZiAtLWdp dCBhL0FybVZpcnRQa2cvQ2xvdWRIdkFjcGlQbGF0Zm9ybUR4ZS9DbG91ZEh2QWNwaS5jDQo+IGIv QXJtVmlydFBrZy9DbG91ZEh2QWNwaVBsYXRmb3JtRHhlL0Nsb3VkSHZBY3BpLmMNCj4gaW5kZXgg ZjVhNDdhYTdmM2NkLi41MWIwMTI2NzZlN2QgMTAwNjQ0DQo+IC0tLSBhL0FybVZpcnRQa2cvQ2xv dWRIdkFjcGlQbGF0Zm9ybUR4ZS9DbG91ZEh2QWNwaS5jDQo+ICsrKyBiL0FybVZpcnRQa2cvQ2xv dWRIdkFjcGlQbGF0Zm9ybUR4ZS9DbG91ZEh2QWNwaS5jDQo+IEBAIC01Miw4ICs1Miw4IEBAIEZp bmRBY3BpVGFibGVQcm90b2NvbCAoICBFRklfU1RBVFVTICBFRklBUEkNCj4gSW5zdGFsbENsb3Vk SHZBY3BpVGFibGVzICgNCj4gLSBJTiAgICAgRUZJX0FDUElfVEFCTEVfUFJPVE9DT0wgICAgICAg KkFjcGlQcm90b2NvbA0KPiAtICkNCj4gKyAgSU4gICAgIEVGSV9BQ1BJX1RBQkxFX1BST1RPQ09M ICAgICAgICpBY3BpUHJvdG9jb2wNCj4gKyAgKQ0KPiAgew0KPiAgICBVSU5UTiAgICAgICAgICBJ bnN0YWxsZWRLZXk7DQo+ICAgIFVJTlROICAgICAgICAgIFRhYmxlU2l6ZTsNCj4gQEAgLTk3LDEx ICs5NywxMiBAQCBJbnN0YWxsQ2xvdWRIdkFjcGlUYWJsZXMgKA0KPiAgICAgIC8vDQo+ICAgICAg Ly8gR2V0IERTRFQgZnJvbSBGQURUDQo+ICAgICAgLy8NCj4gLSAgICBpZiAoRHNkdFB0ciA9PSBO VUxMDQo+IC0gICAgICAmJiAhQXNjaWlTdHJuQ21wICgoQ0hBUjggKikmKChFRklfQUNQSV9DT01N T05fSEVBREVSDQo+ICopQWNwaVRhYmxlUHRyKS0+U2lnbmF0dXJlLCAiRkFDUCIsIDQpKSB7DQo+ ICsgICAgaWYgKChEc2R0UHRyID09IE5VTEwpDQo+ICsgICAgICAmJiAoRUZJX0FDUElfNl8zX0ZJ WEVEX0FDUElfREVTQ1JJUFRJT05fVEFCTEVfU0lHTkFUVVJFID09DQo+ICsgICAgICAgICAgKChF RklfQUNQSV9DT01NT05fSEVBREVSICopQWNwaVRhYmxlUHRyKS0+U2lnbmF0dXJlKSkgew0KPiAg ICAgICAgRHNkdFB0ciA9IChVSU5UNjQgKikoKChFRklfQUNQSV82XzNfRklYRURfQUNQSV9ERVND UklQVElPTl9UQUJMRQ0KPiAqKUFjcGlUYWJsZVB0ciktPlhEc2R0KTsNCj4gICAgICB9DQo+IC0g IH0NCj4gKyAgfSAvLyB3aGlsZQ0KPiANCj4gICAgaWYgKERzZHRQdHIgPT0gTlVMTCkgew0KPiAg ICAgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTogbm8gRFNEVCBmb3VuZFxuIiwgX19GVU5DVElP Tl9fKSk7DQo+IA0KPiBSZWdhcmRzLA0KPiANCj4gU2FtaSBNdWphd2FyDQo+IA0KPiDvu79PbiAw NS8wNy8yMDIxLCAxMTowNywgIkppYW55b25nIFd1IiA8amlhbnlvbmcud3VAYXJtLmNvbT4gd3Jv dGU6DQo+IA0KPiAgICAgVGhlcmUgaXMgbm8gZGV2aWNlIGxpa2UgRnctY2ZnIGluIFFlbXUgaW4g Q2xvdWQgSHlwZXJ2aXNvciwgc28gYSBzcGVjaWZpYw0KPiAgICAgQWNwaSBoYW5kbGVyIGlzIGlu dHJvZHVjZWQgaGVyZS4NCj4gDQo+ICAgICBUaGUgaGFuZGxlciBpbXBsZW1lbnRlZCBoZXJlIGlz IGluIGEgdmVyeSBzaW1wbGUgd2F5Og0KPiAgICAgMS4gYWNxdWlyZSB0aGUgUlNEUCBmcm9tIHRo ZSBQQ0QgdmFyaWFibGUgaW4gdGhlIHRvcCAiLmRzYyI7DQo+ICAgICAyLiBnZXQgdGhlIFhTRFQg YWRkcmVzcyBmcm9tIFJTRFAgc3RydWN0dXJlOw0KPiAgICAgMy4gZ2V0IHRoZSBBQ1BJIHRhYmxl cyBmb2xsb3dpbmcgdGhlIFhTRFQgc3RydWN0dXJlIGFuZCBpbnN0YWxsIHRoZW0NCj4gICAgIG9u ZSBieSBvbmU7DQo+ICAgICA0LiBnZXQgRFNEVCBhZGRyZXNzIGZyb20gRkFEVCBhbmQgaW5zdGFs bCBEU0RUIHRhYmxlLg0KPiANCj4gICAgIENjOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQu Y29tPg0KPiAgICAgQ2M6IFNhbWkgTXVqYXdhciA8c2FtaS5tdWphd2FyQGFybS5jb20+DQo+IA0K PiAgICAgU2lnbmVkLW9mZi1ieTogSmlhbnlvbmcgV3UgPGppYW55b25nLnd1QGFybS5jb20+DQo+ ICAgICAtLS0NCj4gICAgICBBcm1WaXJ0UGtnL0FybVZpcnRQa2cuZGVjICAgICAgICAgICAgICAg ICAgICAgfCAgIDYgKw0KPiAgICAgIC4uLi9DbG91ZEh2QWNwaVBsYXRmb3JtRHhlLmluZiAgICAg ICAgICAgICAgICB8ICA0NyArKysrKysNCj4gICAgICAuLi4vQ2xvdWRIdkFjcGlQbGF0Zm9ybUR4 ZS9DbG91ZEh2QWNwaS5jICAgICAgfCAxNTUNCj4gKysrKysrKysrKysrKysrKysrDQo+ICAgICAg MyBmaWxlcyBjaGFuZ2VkLCAyMDggaW5zZXJ0aW9ucygrKQ0KPiAgICAgIGNyZWF0ZSBtb2RlIDEw MDY0NA0KPiBBcm1WaXJ0UGtnL0Nsb3VkSHZBY3BpUGxhdGZvcm1EeGUvQ2xvdWRIdkFjcGlQbGF0 Zm9ybUR4ZS5pbmYNCj4gICAgICBjcmVhdGUgbW9kZSAxMDA2NDQgQXJtVmlydFBrZy9DbG91ZEh2 QWNwaVBsYXRmb3JtRHhlL0Nsb3VkSHZBY3BpLmMNCj4gDQo+ICAgICBkaWZmIC0tZ2l0IGEvQXJt VmlydFBrZy9Bcm1WaXJ0UGtnLmRlYyBiL0FybVZpcnRQa2cvQXJtVmlydFBrZy5kZWMNCj4gICAg IGluZGV4IGJmODJmN2YxZjNmMi4uNGU0ZDc1ODAxNWJjIDEwMDY0NA0KPiAgICAgLS0tIGEvQXJt VmlydFBrZy9Bcm1WaXJ0UGtnLmRlYw0KPiAgICAgKysrIGIvQXJtVmlydFBrZy9Bcm1WaXJ0UGtn LmRlYw0KPiAgICAgQEAgLTY2LDYgKzY2LDEyIEBAIFtQY2RzRml4ZWRBdEJ1aWxkLCBQY2RzUGF0 Y2hhYmxlSW5Nb2R1bGVdDQo+ICAgICAgICAjDQo+ICAgICAgICBnQXJtVmlydFRva2VuU3BhY2VH dWlkLlBjZFRlcm1pbmFsVHlwZUd1aWRCdWZmZXJ8ezB4NjUsIDB4NjAsIDB4QTYsDQo+IDB4REYs IDB4MTksIDB4QjQsIDB4RDMsIDB4MTEsIDB4OUEsIDB4MkQsIDB4MDAsIDB4OTAsIDB4MjcsIDB4 M0YsIDB4QzEsDQo+IDB4NER9fFZPSUQqfDB4MDAwMDAwMDcNCj4gDQo+ICAgICArICAjIw0KPiAg ICAgKyAgIyBUaGlzIGlzIHRoZSBwaHlzaWNhbCBhZGRyZXNzIG9mIFJzZHAgd2hpY2ggaXMgdGhl IGNvcmUgc3RydWN0IG9mIEFjcGkuDQo+ICAgICArICAjIENsb3VkIEh5cGVydmlzb3IgaGFzIG5v IG90aGVyIHdheSB0byBwYXNzIFJzZHAgYWRkcmVzcyB0byB0aGUgZ3Vlc3QNCj4gZXhjZXB0IHVz ZSBhIFBDRC4NCj4gICAgICsgICMNCj4gICAgICsNCj4gZ0FybVZpcnRUb2tlblNwYWNlR3VpZC5Q Y2RDbG91ZEh2QWNwaVJzZHBCYXNlQWRkcmVzc3wweDB8VUlOVDY0fDANCj4geDAwMDAwMDA1DQo+ ICAgICArDQo+ICAgICAgW1BjZHNEeW5hbWljXQ0KPiAgICAgICAgIw0KPiAgICAgICAgIyBXaGV0 aGVyIHRvIGZvcmNlIGRpc2FibGUgQUNQSSwgcmVnYXJkbGVzcyBvZiB0aGUgZndfY2ZnIHNldHRp bmdzDQo+ICAgICBkaWZmIC0tZ2l0DQo+IGEvQXJtVmlydFBrZy9DbG91ZEh2QWNwaVBsYXRmb3Jt RHhlL0Nsb3VkSHZBY3BpUGxhdGZvcm1EeGUuaW5mDQo+IGIvQXJtVmlydFBrZy9DbG91ZEh2QWNw aVBsYXRmb3JtRHhlL0Nsb3VkSHZBY3BpUGxhdGZvcm1EeGUuaW5mDQo+ICAgICBuZXcgZmlsZSBt b2RlIDEwMDY0NA0KPiAgICAgaW5kZXggMDAwMDAwMDAwMDAwLi4wMWRlNzY0ODY2ODYNCj4gICAg IC0tLSAvZGV2L251bGwNCj4gICAgICsrKyBiL0FybVZpcnRQa2cvQ2xvdWRIdkFjcGlQbGF0Zm9y bUR4ZS9DbG91ZEh2QWNwaVBsYXRmb3JtRHhlLmluZg0KPiAgICAgQEAgLTAsMCArMSw0NyBAQA0K PiAgICAgKyMjIEBmaWxlDQo+ICAgICArIyAgQUNQSSBQbGF0Zm9ybSBEcml2ZXIgZm9yIENsb3Vk IEh5cGVydmlzb3INCj4gICAgICsjDQo+ICAgICArIyAgQ29weXJpZ2h0IChjKSAyMDIxLCBBUk0g TGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgICArIyAgU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gICAgICsjDQo+ICAgICArIyMNCj4g ICAgICsNCj4gICAgICtbRGVmaW5lc10NCj4gICAgICsgIElORl9WRVJTSU9OICAgICAgICAgICAg ICAgICAgICA9IDB4MDAwMTAwMDUNCj4gICAgICsgIEJBU0VfTkFNRSAgICAgICAgICAgICAgICAg ICAgICA9IENsb3VkSHZnQWNwaVBsYXRmb3JtDQo+ICAgICArICBGSUxFX0dVSUQgICAgICAgICAg ICAgICAgICAgICAgPSA2Yzc2ZTQwNy03M2YyLWRjMWMtOTM4Zi01ZDZjNDY5MWVhOTMNCj4gICAg ICsgIE1PRFVMRV9UWVBFICAgICAgICAgICAgICAgICAgICA9IERYRV9EUklWRVINCj4gICAgICsg IFZFUlNJT05fU1RSSU5HICAgICAgICAgICAgICAgICA9IDEuMA0KPiAgICAgKyAgRU5UUllfUE9J TlQgICAgICAgICAgICAgICAgICAgID0gQ2xvdWRIdkFjcGlQbGF0Zm9ybUVudHJ5UG9pbnQNCj4g ICAgICsNCj4gICAgICsjDQo+ICAgICArIyBUaGUgZm9sbG93aW5nIGluZm9ybWF0aW9uIGlzIGZv ciByZWZlcmVuY2Ugb25seSBhbmQgbm90IHJlcXVpcmVkIGJ5IHRoZQ0KPiBidWlsZCB0b29scy4N Cj4gICAgICsjDQo+ICAgICArICBWQUxJRF9BUkNISVRFQ1RVUkVTICAgICAgICAgICA9IEFBUkNI NjQNCj4gICAgICsjDQo+ICAgICArDQo+ICAgICArW1NvdXJjZXNdDQo+ICAgICArICBDbG91ZEh2 QWNwaS5jDQo+ICAgICArDQo+ICAgICArW1BhY2thZ2VzXQ0KPiAgICAgKyAgTWRlUGtnL01kZVBr Zy5kZWMNCj4gICAgICsgIE1kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQo+ICAgICArICBP dm1mUGtnL092bWZQa2cuZGVjDQo+ICAgICArICBBcm1WaXJ0UGtnL0FybVZpcnRQa2cuZGVjDQo+ ICAgICArDQo+ICAgICArW0xpYnJhcnlDbGFzc2VzXQ0KPiAgICAgKyAgQmFzZUxpYg0KPiAgICAg KyAgRGVidWdMaWINCj4gICAgICsgIE1lbW9yeUFsbG9jYXRpb25MaWINCj4gICAgICsgIE9yZGVy ZWRDb2xsZWN0aW9uTGliDQo+ICAgICArICBVZWZpQm9vdFNlcnZpY2VzVGFibGVMaWINCj4gICAg ICsgIFVlZmlEcml2ZXJFbnRyeVBvaW50DQo+ICAgICArDQo+ICAgICArW1Byb3RvY29sc10NCj4g ICAgICsgIGdFZmlBY3BpVGFibGVQcm90b2NvbEd1aWQgICAgICAgICAgICAgICAgICAgICAjIFBS T1RPQ09MIEFMV0FZU19DT05TVU1FRA0KPiAgICAgKw0KPiAgICAgK1tQY2RdDQo+ICAgICArICBn QXJtVmlydFRva2VuU3BhY2VHdWlkLlBjZENsb3VkSHZBY3BpUnNkcEJhc2VBZGRyZXNzDQo+ICAg ICArDQo+ICAgICArW0RlcGV4XQ0KPiAgICAgKyAgZ0VmaUFjcGlUYWJsZVByb3RvY29sR3VpZA0K PiAgICAgZGlmZiAtLWdpdCBhL0FybVZpcnRQa2cvQ2xvdWRIdkFjcGlQbGF0Zm9ybUR4ZS9DbG91 ZEh2QWNwaS5jDQo+IGIvQXJtVmlydFBrZy9DbG91ZEh2QWNwaVBsYXRmb3JtRHhlL0Nsb3VkSHZB Y3BpLmMNCj4gICAgIG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ICAgICBpbmRleCAwMDAwMDAwMDAw MDAuLmY1YTQ3YWE3ZjNjZA0KPiAgICAgLS0tIC9kZXYvbnVsbA0KPiAgICAgKysrIGIvQXJtVmly dFBrZy9DbG91ZEh2QWNwaVBsYXRmb3JtRHhlL0Nsb3VkSHZBY3BpLmMNCj4gICAgIEBAIC0wLDAg KzEsMTU1IEBADQo+ICAgICArLyoqIEBmaWxlDQo+ICAgICArICBJbnN0YWxsIEFjcGkgdGFibGVz IGZvciBDbG91ZCBIeXBlcnZpc29yDQo+ICAgICArDQo+ICAgICArICBDb3B5cmlnaHQgKGMpIDIw MjEsIEFybSBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgICsNCj4gICAg ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICAgICAr KiovDQo+ICAgICArDQo+ICAgICArI2luY2x1ZGUgPExpYnJhcnkvQmFzZUxpYi5oPg0KPiAgICAg KyNpbmNsdWRlIDxMaWJyYXJ5L01lbW9yeUFsbG9jYXRpb25MaWIuaD4NCj4gICAgICsjaW5jbHVk ZSA8SW5kdXN0cnlTdGFuZGFyZC9BY3BpNjMuaD4NCj4gICAgICsjaW5jbHVkZSA8UHJvdG9jb2wv QWNwaVRhYmxlLmg+DQo+ICAgICArI2luY2x1ZGUgPExpYnJhcnkvVWVmaUJvb3RTZXJ2aWNlc1Rh YmxlTGliLmg+DQo+ICAgICArI2luY2x1ZGUgPExpYnJhcnkvVWVmaURyaXZlckVudHJ5UG9pbnQu aD4NCj4gICAgICsjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0KPiAgICAgKw0KPiAgICAg Ky8qKg0KPiAgICAgKyAgIEZpbmQgQWNwaSB0YWJsZSBQcm90b2NvbCBhbmQgcmV0dXJuIGl0DQo+ ICAgICArDQo+ICAgICArICAgQHJldHVybiBBY3BpVGFibGUgIFByb3RvY29sLCB3aGljaCBpcyB1 c2VkIHRvIGhhbmRsZSBBY3BpIFRhYmxlLCBvbg0KPiBTVUNDRVNTIG9yIE5VTEwgb24gRkFJTFVS RS4NCj4gICAgICsNCj4gICAgICsqKi8NCj4gICAgICtTVEFUSUMNCj4gICAgICtFRklfQUNQSV9U QUJMRV9QUk9UT0NPTCAqDQo+ICAgICArRmluZEFjcGlUYWJsZVByb3RvY29sICgNCj4gICAgICsg IFZPSUQNCj4gICAgICsgICkNCj4gICAgICt7DQo+ICAgICArICBFRklfU1RBVFVTICAgICAgICAg ICAgICBTdGF0dXM7DQo+ICAgICArICBFRklfQUNQSV9UQUJMRV9QUk9UT0NPTCAqQWNwaVRhYmxl Ow0KPiAgICAgKw0KPiAgICAgKyAgU3RhdHVzID0gZ0JTLT5Mb2NhdGVQcm90b2NvbCAoDQo+ICAg ICArICAgICAgICAgICAgICAgICAgJmdFZmlBY3BpVGFibGVQcm90b2NvbEd1aWQsDQo+ICAgICAr ICAgICAgICAgICAgICAgICAgTlVMTCwNCj4gICAgICsgICAgICAgICAgICAgICAgICAoVk9JRCoq KSZBY3BpVGFibGUNCj4gICAgICsgICAgICAgICAgICAgICAgICApOw0KPiAgICAgKyAgQVNTRVJU X0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gICAgICsgIHJldHVybiBBY3BpVGFibGU7DQo+ICAgICAr fQ0KPiAgICAgKw0KPiAgICAgKy8qKiBJbnN0YWxsIEFjcGkgdGFibGVzIGZvciBDbG91ZCBIeXBl cnZpc29yDQo+ICAgICArDQo+ICAgICArICBAcGFyYW0gW2luXSAgQWNwaVByb3RvY29sICBBY3Bp IFByb3RvY29sIHdoaWNoIGlzIHVzZWQgdG8gaW5zdGFsbCBBY3BpDQo+IHRhbGJsZXMNCj4gICAg ICsNCj4gICAgICsgIEByZXR1cm4gRUZJX1NVQ0NFU1MgICAgICAgICAgICBUaGUgdGFibGUgd2Fz IHN1Y2Nlc3NmdWxseSBpbnNlcnRlZC4NCj4gICAgICsgIEByZXR1cm4gRUZJX0lOVkFMSURfUEFS QU1FVEVSICBFaXRoZXIgQWNwaVByb3RvY29sLCBBY3BpVGFibGVQdHIgb3INCj4gRHNkdFB0ciBp cyBOVUxMDQo+ICAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHRoZSBz aXplIGZpZWxkIGVtYmVkZGVkIGluIHRoZSBBQ1BJIHRhYmxlIHBvaW50ZWQNCj4gICAgICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieSBBY3BpVGFibGVQdHIgb3IgRHNkdFB0ciBh cmUgbm90IGluIHN5bmMuDQo+ICAgICArICBAcmV0dXJuIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICAg SW5zdWZmaWNpZW50IHJlc291cmNlcyBleGlzdCB0bw0KPiBjb21wbGV0ZSB0aGUgcmVxdWVzdC4N Cj4gICAgICsgIEByZXR1cm4gRUZJX05PVF9GT1VORCAgICAgICAgICBEU0RUIHRhYmxlIG5vdCBm b3VuZC4NCj4gICAgICsqKi8NCj4gICAgICtFRklfU1RBVFVTDQo+ICAgICArRUZJQVBJDQo+ICAg ICArSW5zdGFsbENsb3VkSHZBY3BpVGFibGVzICgNCj4gICAgICsgSU4gICAgIEVGSV9BQ1BJX1RB QkxFX1BST1RPQ09MICAgICAgICpBY3BpUHJvdG9jb2wNCj4gICAgICsgKQ0KPiAgICAgK3sNCj4g ICAgICsgIFVJTlROICAgICAgICAgIEluc3RhbGxlZEtleTsNCj4gICAgICsgIFVJTlROICAgICAg ICAgIFRhYmxlU2l6ZTsNCj4gICAgICsgIFVJTlROICAgICAgICAgIEFjcGlUYWJsZUxlbmd0aDsN Cj4gICAgICsgIFVJTlQ2NCAgICAgICAgIFJzZHBQdHI7DQo+ICAgICArICBVSU5UNjQgICAgICAg ICBYc2R0UHRyOw0KPiAgICAgKyAgVUlOVDY0ICAgICAgICAgVGFibGVPZmZzZXQ7DQo+ICAgICAr ICBVSU5UNjQgICAgICAgICBBY3BpVGFibGVQdHI7DQo+ICAgICArICBVSU5UNjQgICAgICAgICAq RHNkdFB0ciA9IE5VTEw7DQo+ICAgICArICBFRklfU1RBVFVTICAgICBTdGF0dXM7DQo+ICAgICAr DQo+ICAgICArICBpZiAoQWNwaVByb3RvY29sID09IE5VTEwpIHsNCj4gICAgICsgICAgICByZXR1 cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiAgICAgKyAgfQ0KPiAgICAgKw0KPiAgICAgKyAg UnNkcFB0ciA9IFBjZEdldDY0IChQY2RDbG91ZEh2QWNwaVJzZHBCYXNlQWRkcmVzcyk7DQo+ICAg ICArICBYc2R0UHRyID0gKChFRklfQUNQSV82XzNfUk9PVF9TWVNURU1fREVTQ1JJUFRJT05fUE9J TlRFUg0KPiAqKVJzZHBQdHIpLT5Yc2R0QWRkcmVzczsNCj4gICAgICsgIEFjcGlUYWJsZUxlbmd0 aCA9ICgoRUZJX0FDUElfQ09NTU9OX0hFQURFUiAqKVhzZHRQdHIpLT5MZW5ndGg7DQo+ICAgICAr ICBUYWJsZU9mZnNldCA9IHNpemVvZiAoRUZJX0FDUElfREVTQ1JJUFRJT05fSEVBREVSKTsNCj4g ICAgICsNCj4gICAgICsgIHdoaWxlIChUYWJsZU9mZnNldCA8IEFjcGlUYWJsZUxlbmd0aCkgew0K PiAgICAgKyAgICBBY3BpVGFibGVQdHIgPSAqKFVJTlQ2NCAqKShYc2R0UHRyICsgVGFibGVPZmZz ZXQpOw0KPiAgICAgKyAgICBUYWJsZVNpemUgPSAoKEVGSV9BQ1BJX0NPTU1PTl9IRUFERVIgKilB Y3BpVGFibGVQdHIpLT5MZW5ndGg7DQo+ICAgICArDQo+ICAgICArICAgIC8vDQo+ICAgICArICAg IC8vIEluc3RhbGwgQUNQSSB0YWJsZXMgZnJvbSBYU0RUDQo+ICAgICArICAgIC8vDQo+ICAgICAr ICAgIFN0YXR1cyA9IEFjcGlQcm90b2NvbC0+SW5zdGFsbEFjcGlUYWJsZSAoDQo+ICAgICArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBY3BpUHJvdG9jb2wsDQo+ICAgICArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoVk9JRCAqKUFjcGlUYWJsZVB0ciwNCj4gICAgICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFRhYmxlU2l6ZSwNCj4gICAgICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZJbnN0YWxsZWRLZXkNCj4gICAgICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICk7DQo+ICAgICArDQo+ICAgICArICAgIGlmIChFRklfRVJST1IoU3RhdHVzKSkgew0K PiAgICAgKyAgICAgICAgcmV0dXJuIFN0YXR1czsNCj4gICAgICsgICAgfQ0KPiAgICAgKw0KPiAg ICAgKyAgICBUYWJsZU9mZnNldCArPSBzaXplb2YgKFVJTlQ2NCk7DQo+ICAgICArDQo+ICAgICAr ICAgIC8vDQo+ICAgICArICAgIC8vIEdldCBEU0RUIGZyb20gRkFEVA0KPiAgICAgKyAgICAvLw0K PiAgICAgKyAgICBpZiAoRHNkdFB0ciA9PSBOVUxMDQo+ICAgICArICAgICAgJiYgIUFzY2lpU3Ry bkNtcCAoKENIQVI4ICopJigoRUZJX0FDUElfQ09NTU9OX0hFQURFUg0KPiAqKUFjcGlUYWJsZVB0 ciktPlNpZ25hdHVyZSwgIkZBQ1AiLCA0KSkgew0KPiAgICAgKyAgICAgIERzZHRQdHIgPSAoVUlO VDY0DQo+ICopKCgoRUZJX0FDUElfNl8zX0ZJWEVEX0FDUElfREVTQ1JJUFRJT05fVEFCTEUgKilB Y3BpVGFibGVQdHIpLQ0KPiA+WERzZHQpOw0KPiAgICAgKyAgICB9DQo+ICAgICArICB9DQo+ICAg ICArDQo+ICAgICArICBpZiAoRHNkdFB0ciA9PSBOVUxMKSB7DQo+ICAgICArICAgIERFQlVHICgo REVCVUdfRVJST1IsICIlYTogbm8gRFNEVCBmb3VuZFxuIiwgX19GVU5DVElPTl9fKSk7DQo+ICAg ICArICAgIHJldHVybiBFRklfTk9UX0ZPVU5EOw0KPiAgICAgKyAgfQ0KPiAgICAgKw0KPiAgICAg KyAgLy8NCj4gICAgICsgIC8vIEluc3RhbGwgRFNEVCB0YWJsZQ0KPiAgICAgKyAgLy8NCj4gICAg ICsgIFRhYmxlU2l6ZSA9ICgoRUZJX0FDUElfQ09NTU9OX0hFQURFUiAqKURzZHRQdHIpLT5MZW5n dGg7DQo+ICAgICArICBTdGF0dXMgPSBBY3BpUHJvdG9jb2wtPkluc3RhbGxBY3BpVGFibGUgKA0K PiAgICAgKyAgICAgICAgICAgICBBY3BpUHJvdG9jb2wsDQo+ICAgICArICAgICAgICAgICAgIERz ZHRQdHIsDQo+ICAgICArICAgICAgICAgICAgIFRhYmxlU2l6ZSwNCj4gICAgICsgICAgICAgICAg ICAgJkluc3RhbGxlZEtleQ0KPiAgICAgKyAgICAgICAgICAgICApOw0KPiAgICAgKw0KPiAgICAg KyAgcmV0dXJuIFN0YXR1czsNCj4gICAgICt9DQo+ICAgICArDQo+ICAgICArLyoqIEVudHJ5IHBv aW50IGZvciBDbG91ZCBIeXBlcnZpc29yIFBsYXRmb3JtIER4ZQ0KPiAgICAgKw0KPiAgICAgKyAg QHBhcmFtIFtpbl0gIEltYWdlSGFuZGxlICBIYW5kbGUgZm9yIHRoaXMgaW1hZ2UuDQo+ICAgICAr ICBAcGFyYW0gW2luXSAgU3lzdGVtVGFibGUgIFBvaW50ZXIgdG8gdGhlIEVGSSBzeXN0ZW0gdGFi bGUuDQo+ICAgICArDQo+ICAgICArICBAcmV0dXJuIEVGSV9TVUNDRVNTICAgICAgICAgICAgVGhl IHRhYmxlIHdhcyBzdWNjZXNzZnVsbHkgaW5zZXJ0ZWQuDQo+ICAgICArICBAcmV0dXJuIEVGSV9J TlZBTElEX1BBUkFNRVRFUiAgRWl0aGVyIEFjcGlQcm90b2NvbCwgQWNwaVRhYmxlUHRyIG9yDQo+ IERzZHRQdHIgaXMgTlVMTA0KPiAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFuZCB0aGUgc2l6ZSBmaWVsZCBlbWJlZGRlZCBpbiB0aGUgQUNQSSB0YWJsZSBwb2ludGVkIHRv DQo+ICAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnkgQWNwaVRhYmxlUHRy IG9yIERzZHRQdHIgYXJlIG5vdCBpbiBzeW5jLg0KPiAgICAgKyAgQHJldHVybiBFRklfT1VUX09G X1JFU09VUkNFUyAgIEluc3VmZmljaWVudCByZXNvdXJjZXMgZXhpc3QgdG8NCj4gY29tcGxldGUg dGhlIHJlcXVlc3QuDQo+ICAgICArICBAcmV0dXJuIEVGSV9OT1RfRk9VTkQgICAgICAgICAgRFNE VCB0YWJsZSBub3QgZm91bmQNCj4gICAgICsqKi8NCj4gICAgICtFRklfU1RBVFVTDQo+ICAgICAr RUZJQVBJDQo+ICAgICArQ2xvdWRIdkFjcGlQbGF0Zm9ybUVudHJ5UG9pbnQgKA0KPiAgICAgKyAg SU4gRUZJX0hBTkRMRSAgICAgICAgIEltYWdlSGFuZGxlLA0KPiAgICAgKyAgSU4gRUZJX1NZU1RF TV9UQUJMRSAgICpTeXN0ZW1UYWJsZQ0KPiAgICAgKyAgKQ0KPiAgICAgK3sNCj4gICAgICsgIEVG SV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzOw0KPiAgICAgKw0KPiAgICAg KyAgU3RhdHVzID0gSW5zdGFsbENsb3VkSHZBY3BpVGFibGVzIChGaW5kQWNwaVRhYmxlUHJvdG9j b2wgKCkpOw0KPiAgICAgKw0KPiAgICAgKyAgaWYgKEVGSV9FUlJPUihTdGF0dXMpKSB7DQo+ICAg ICArICAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IEZhaWwgdG8gaW5zdGFsbCBBY3BpIHRh YmxlOiAlclxuIiwNCj4gX19GVU5DVElPTl9fLA0KPiAgICAgKyAgICAgICBTdGF0dXMpKTsNCj4g ICAgICsgICAgIENwdURlYWRMb29wICgpOw0KPiAgICAgKyAgfQ0KPiAgICAgKw0KPiAgICAgKyAg cmV0dXJuIEVGSV9TVUNDRVNTOw0KPiAgICAgK30NCj4gICAgIC0tDQo+ICAgICAyLjE3LjENCj4g DQo+IA0KDQo=