From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web08.12152.1645718029217681156 for ; Thu, 24 Feb 2022 07:53:49 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=jrL8gnsp; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: guo.dong@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1645718029; x=1677254029; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=L/CgMmBXK18DSIl2L0MuR6NEp9diKUaXc5U2qw+BDBo=; b=jrL8gnsp5bZQV6PzKMZeMrnS3KRR0DK8yG35h2fQ66bnKsvU0okwNRRJ H3N77AWb4JcmtIJZGI9fB33zhFd/kRzWv92pgaYTVdnGA3POmiiP84zyX /uPvOlUoB2kFI5jnYGh/oPEurEaUzm1DT9qqr/Zx3P8uuhZM3CtLaonoc AI41TH/fEn4ORshvm0WfVdOCVfPg4RpoEHpeBYrRwBLJIw+IKKMbBX9NR na+6z2Npib+e1Mkjl5Hlv/Gm+LxqiZwb7INOkuBIAf+lf4PJenJBSmDDK CH5RxwsDLwe7mOqSO+ytKGzN0twnrKZEiAq/sbgoF7okGAa0oHHfRbNex w==; X-IronPort-AV: E=McAfee;i="6200,9189,10268"; a="239665571" X-IronPort-AV: E=Sophos;i="5.90,134,1643702400"; d="scan'208";a="239665571" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Feb 2022 07:53:48 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.90,134,1643702400"; d="scan'208";a="506360968" Received: from fmsmsx606.amr.corp.intel.com ([10.18.126.86]) by orsmga002.jf.intel.com with ESMTP; 24 Feb 2022 07:53:47 -0800 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx606.amr.corp.intel.com (10.18.126.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21; Thu, 24 Feb 2022 07:53:47 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.21 via Frontend Transport; Thu, 24 Feb 2022 07:53:47 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.109) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Thu, 24 Feb 2022 07:53:47 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l7HSRmMF3bzEcB997vbZFyPzOOyDqqYLl4NogVa1Wkhk5yHGgNcKZ/zkGgflotUkVlTQEqtUhKNvRK/kEP0I1rafRq7ZemcAAEh/NiGMic6IiGNLVAWTZNJ4BPtE16Zhyt2DJACutQVEhKgikrl8MiQJRCNPXgcGh0UdUGmrLqzROUPiwt8vE/XL3iqUkwMHjXclV69gmJ/5OsxFsSzG9OrP61wf8arFAuFxzB4TzGdZaHOqrJ+1GeyoPV0fuM9abu7JyUwh0rYvir7tQXKT7/DkhUe8HnAEtiW4aMxAT93doVoX38Bo/2ulpzlgF81xx9NTjfHbERutR02XLf9KBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=L/CgMmBXK18DSIl2L0MuR6NEp9diKUaXc5U2qw+BDBo=; b=nh/xcCoR1hdlmC/kNKYC57spGJCViOCNEEFgUixknW4fOY5Dj4sGIduqPc7yjHGNZ6hum0jjISa35StfrEGoniybd0cgJS2+t0fnCS/8fPvKo47LVwC/no4ztMUW4uSAhcszdH7qyjFPkMLiC6Ev2affAapQEzMri7yWiG+2VUOlm99eW87tXmVL9qIH630np5BRzvq9tLtin7FgmBQcoZsDz0M32TdcimFwAiPdkYYu/hqABJ8I3/7d+jf4czzVFoB1IPEZlYQiKqJTHNIqPaog4oNJnDk6OD9eguBUMInTlqg2PzYVrAE0Ep1dFCxo8jmrkcGe1KeTNeaY8YX8kg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BYAPR11MB3622.namprd11.prod.outlook.com (2603:10b6:a03:fe::30) by CH0PR11MB5460.namprd11.prod.outlook.com (2603:10b6:610:d3::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.22; Thu, 24 Feb 2022 15:53:44 +0000 Received: from BYAPR11MB3622.namprd11.prod.outlook.com ([fe80::45c8:c9c6:42a:a43d]) by BYAPR11MB3622.namprd11.prod.outlook.com ([fe80::45c8:c9c6:42a:a43d%4]) with mapi id 15.20.5017.024; Thu, 24 Feb 2022 15:53:44 +0000 From: "Guo Dong" To: "devel@edk2.groups.io" , "patrick.rudolph@9elements.com" , "Ma, Maurice" CC: "Rhodes, Sean" , "Ni, Ray" , "You, Benjamin" Subject: Re: [edk2-devel] [PATCH 1/2] UefiPayloadPkg: Add i801 SMBus controller DXE Thread-Topic: [edk2-devel] [PATCH 1/2] UefiPayloadPkg: Add i801 SMBus controller DXE Thread-Index: AQHYJCcGVKKsXkkd+UKWTGJNjVidcqyYDs4AgAqAWwCAAFTxYA== Date: Thu, 24 Feb 2022 15:53:44 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6cd50711-e089-41d7-c68c-08d9f7add65c x-ms-traffictypediagnostic: CH0PR11MB5460:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: iMC0BYJpEfvmS0MFZQG2nAg4eqcILzDeJWl3eGTGRUXzlXoD3Downj3+TCP5CypQuc9UTfHdadPETX058nBol+2NPxJdDqirCLseDKHFl74dNxEWJ11p1rYH3F1GQQZV7ffeAXPcp+ZWJSFIf9VCF3Q9Yk09V3J7S/YPTBW3I06WLj2sWqQhAswKpVwqgWU4h6yFFcrxuloR2UQjdR5cIgCJTGxCnIPukNXglIe+5Ib7a+MQcM/Hm14RqQIVPNg5Yh7MlaOv/g6IGUyy/uNPqf2TGfUcrgkgUSUudYhl8hQP2qKEuJiIU/k8jvuCetbN1Z3UaekJU9zFR9yNp2zLqYzyLPmc1/4RseGhGlkaS+7BFlryx1OAZGmOSSJ5E4XCfo9Ls18FZSXXKznBz0/glIFcjjh7pFxZyN2zH7PrD1YVXBP4U7lezpNsWWEf8/ImFpAAFwBUnbgEa6EZBrMLB116PeoOhb4p3qe3MPxImhK7vR3ff475lTiSQ7nAUjS+6TfYRTvYD+zuGVdQhTu6iHOeQ3Ekzj2dUUJmlPtAZSvp0pulUgj+fNTo6LllXcnhSl02u7r7CJYhOLr6a+GM6DRNPyB3qNoAnBdBnzZn5G94S/5bHlYRS+lQzJssqAWJ8SB7A2AIVbrGQ6GN3KepK6VlZtoMAeX7G6BUhEVJdsd9EENWSlUJdt8xTyLtSrTQ7iyZPDCRnAilcwzSX0fOXTiHlo3sr/1IIBhUNmMJlo2BBGjDrk0M+j6bWk1xTmeJtdlrmKgXT65aiWxxTs3uXBjLQ+dezgFcay7gh45pFVs1/sjj1QJC7S/lTlCgoAbuU3QZgZ5erqTGXAa1GvM/Vg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR11MB3622.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(508600001)(966005)(30864003)(2906002)(19627235002)(71200400001)(55016003)(122000001)(8936002)(52536014)(6636002)(110136005)(6506007)(54906003)(7696005)(53546011)(316002)(33656002)(186003)(64756008)(76116006)(66476007)(66446008)(66556008)(8676002)(66946007)(107886003)(38070700005)(5660300002)(9686003)(82960400001)(38100700002)(83380400001)(86362001)(4326008)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aUMrb0VnSGpxZmxtcFZJUGx4YXZYT0pTdFN4TndMWmpibW1WUU9STGcxRXVm?= =?utf-8?B?QVl6UGdueFNCVitEZUNvaVVROVZwQU1CNTV2SWhMd3BXdUNRZmZ1L3BwMHRv?= =?utf-8?B?bmV1Y3FHZUQ4NmlVYTFndC9mOFFHUGpMWStVVUF2a0lhK3h6MGN4U3QrZjlY?= =?utf-8?B?eit1OWpNRlpXNU9YQ2luU0F4VXpNZnc2djRQeVlSSUtPazBwUzlRKzkwNElx?= =?utf-8?B?ck5NWGlQSHZld1VNZjR2UkhzbFpIRlFmcmJjcEtWRXNmNzRrQzRQMHBudjFT?= =?utf-8?B?cW10SG1nV1BXbFJJSkNkVzc3QmFZWkdNemF6VDVwVDg5RThHNGd5WWJFQlli?= =?utf-8?B?RG9XRzArRmdHcnJmRndyU3NFeVJwbENncnpCNW1NZ3BNQWtGdGlVZ055R2sz?= =?utf-8?B?NjlJMUIwa1kvRE9reXZyMUt6SGNOZ09ld3hWMG1WZ0NLWFo0QnNleUh3RU9p?= =?utf-8?B?VGU1K3had1gyN2lOdjk4a2xYVnRFd3BaTHpVWjBTYS9hSE5FWVFBczFKdzZW?= =?utf-8?B?Zjc3UTJvTjRSNysvTE40LytWTnpTZXZpTXFsa3BFeERiL3RRbnRaZC9ERWNi?= =?utf-8?B?cjc0WWUzK2N0WktSbGZ5L1F0SWE4V3RtVGVIcHFPRWY0Y2QvSkc1MHhYZkJR?= =?utf-8?B?dmR1VnhDRW1yNjZuMC9YSmRpR2p0cXF6Kzg4SUc3clFFNXVDTHo2NDFmVDhw?= =?utf-8?B?Z0s5VzBxRWNCMDR0WTdhYUs5Z0p6MHY2MmJUZTFFVDNJcEFqejAxb1ZtTGhn?= =?utf-8?B?Z1dLME1wclVud1ZkdjY2SVQrZVBsUHk5UlJHTHVIazFtWktuZzNyVG9GSm5R?= =?utf-8?B?VjZyS3JXMzltVEUwVUpFMThWeldNNnNDTUYrbHcrTit5NmVzOUQrNXp6dnpl?= =?utf-8?B?bHlOdWpSLzB1ejR5Q2RlMllsdGNPY3FkODk2SFVoRk5mS0RaT3hiS1Zvc295?= =?utf-8?B?bUJESnpVYjRjM0IvVHh0aGs1WE5GZUpSSElaOUtRdG9yMDRkd0NGVFgyZThm?= =?utf-8?B?NXFRMnRodllTdDNEM1I2bUxQS0Y5c1JHUkFNRWpRRUdEdGZhSkFuL2pWeXl2?= =?utf-8?B?WGIzejBvRUtpZUQ3aXN3cnB4bll4ckZML0t0SWtycmNoSTlNZTNRdFhUUVNk?= =?utf-8?B?SUd4eGZLTG1pdkd5b3h4NFozeE1pS0NuaThxRWlRQkFWdEVxQ2o1VEVyMksw?= =?utf-8?B?SU5XUDV2Y0d6VlBNR3h5dDdVTWNNeGx0dG81akxISXFWN0hSS3NaeFdIbmlr?= =?utf-8?B?L092TWhvSlN1c0JFZ1R2cHRxc2p1Q2J5Y0t0aEhnbnR0QjQ4dTdqUHIwcWJU?= =?utf-8?B?VWgyUWptMkc4YkRCZkg5SVNycXNacjR6YW5kSXJmcTVlNWFURTFIL2VyMXRt?= =?utf-8?B?UzhWQXg1YWtxazYrZGdMWjVUa0FiZkhLN2ZGKzBrQkk2MFZyWlBXa2VPYXdn?= =?utf-8?B?dE5LVHZxNjlSUlRNekZVbGdYN1l6OTk0NFNxejF4enduVGR6NTNmNkNzN0VX?= =?utf-8?B?ZmR3UVcyMC9uaUNXRWdoT0dHOFBBS2VsRUVvT2ZDeWZYaVR2S2wxTHNhTEFj?= =?utf-8?B?RlU4L2ZrK0lpaWxNeFBReDRMS1R1MHRFMlQyclJDdTZMS0FnRWF1YVdVTTBw?= =?utf-8?B?Nk9OWnZ2TVhYK25MQjBjSHZoeUEvVWJqbkNsMVF2K1FpcnRFUkxkUDllcUFn?= =?utf-8?B?YzUyS1JrVDlXc3h0RTJCME5wUURzL24rUjQ2T1pxK2hMNnRnZEhuMmVZOGRI?= =?utf-8?B?aU83K0wydDFIVDNEdkRpVmUzd3dKdzNrZUIvQzFjOHdIUThyOHVVNVAxMUFl?= =?utf-8?B?WjRJS2hYZUN6QzJvYnlYd0dtNHh1VVQ1czNPSm1Tb3o1L05kZy95dDFUNGVE?= =?utf-8?B?ZUJUS3R3QkE1bEVYQ0JWNU1sSGRScGdGMitqZE5DK0RKRWVFTkgyb0EyL3dE?= =?utf-8?B?a2pvaHh5bzRtanVVelZNWnVzdXRIL1IydkRWbGN5OCtsVW9halhqeTcxTFgv?= =?utf-8?B?T28zVlFNSVZ4eFZST2VkazNNWXcwZElmMzNjcCtVaCtiTVNOcVgvL1JUdHdB?= =?utf-8?B?UytwaHhsZkNIQ0F2K0VlRG00Q2tMV3B6MUEzMDJMWXBUMjhGS1VhaldiZURQ?= =?utf-8?B?UmFpVVQyT0ZpanQ2b1pLQm1SLzdaSHlsNU05QUhYQjUxMUlCVytvR1AvNHVU?= =?utf-8?B?NjFySDNxM2FUTzlGelBNZzg0OWJuMHpNcmhUZlRYOXlnK1Y2VmpzZXZWc0NY?= =?utf-8?Q?CmTSMQjgK7Y7j7iJMzWUSgm8c3nHYa2Ltg5sKKNP3o=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR11MB3622.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6cd50711-e089-41d7-c68c-08d9f7add65c X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Feb 2022 15:53:44.6505 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ox36UhdrJUlsBwrZFCKH69hATPHFb46Gz5oW/seMzZBlSQarvIA6zNco2eoAP24V72/2POtZNohGwnkz9H4gVg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR11MB5460 Return-Path: guo.dong@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQpIaSBQYXRyaWNrLA0KDQpVZWZpUGF5bG9hZFBrZy9MaWJyYXJ5L1NwaUZsYXNoTGliL1NwaUZs YXNoTGliLmluZiBpcyBhIGNvbW1vbiBtb2R1bGUgYXMgdGhlIGNvbW1pdCBtZXNzYWdlIG1lbnRp b25lZCBhcyBiZWxvdzoNCg0KKiBVZWZpUGF5bG9hZFBrZzogQWRkIFNwaUZsYXNoTGliDQoNClRo aXMgaXMgYSBjb21tb24gU1BJIEZsYXNoIGxpYnJhcnkgdXNlZCBmb3IgdGhlIEludGVsIHBsYXRm b3JtIHRoYXQNCnN1cHBvcnRzIFNQSSBoYXJkd2FyZSBzZXF1ZW5jZS4gVGhpcyBsaWJyYXJ5IHBy b3ZpZGVzIGFjdHVhbCBTUEkgZmxhc2gNCm9wZXJhdGlvbiB2aWEgSW50ZWwgUENIIFNQSSBjb250 cm9sbGVyLg0KDQpUaGFua3MsDQpHdW8NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZy b206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxm IE9mIFBhdHJpY2sgUnVkb2xwaA0KU2VudDogVGh1cnNkYXksIEZlYnJ1YXJ5IDI0LCAyMDIyIDM6 NDYgQU0NClRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgTWEsIE1hdXJpY2UgPG1hdXJpY2UubWFA aW50ZWwuY29tPg0KQ2M6IFJob2RlcywgU2VhbiA8c2VhbkBzdGFybGFicy5zeXN0ZW1zPjsgRG9u ZywgR3VvIDxndW8uZG9uZ0BpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsg WW91LCBCZW5qYW1pbiA8YmVuamFtaW4ueW91QGludGVsLmNvbT4NClN1YmplY3Q6IFJlOiBbZWRr Mi1kZXZlbF0gW1BBVENIIDEvMl0gVWVmaVBheWxvYWRQa2c6IEFkZCBpODAxIFNNQnVzIGNvbnRy b2xsZXIgRFhFDQoNCkhpIE1hdXJpY2UsDQpJIGFncmVlIHRoYXQgZWRrMi1wbGF0Zm9ybXMgaXMg dGhlIHJpZ2h0IHBsYWNlLg0KSG93IHNob3VsZCBpdCBiZSB1c2VkIHRvIGJ1aWxkIFVlZmlQbGF5 bG9hZFBrZz8gU2hvdWxkIGl0IGJlIGhvb2tlZCB1cCBhcyBnaXQgc3VibW9kdWxlPw0KDQpKdXN0 IHdvbmRlcmluZyB3aHkgeW91IGFkZGVkIHZlbmRvciAob3IgcGxhdGZvcm0pIHNwZWNpZmljIGNv ZGUgaW4gVWVmaVBheWxvYWRQa2cvTGlicmFyeS9TcGlGbGFzaExpYi9TcGlGbGFzaExpYi5pbmYg Pw0KUGxlYXNlIGNsYXJpZnkuDQoNClJlZ2FyZHMsDQpQYXRyaWNrIFJ1ZG9scGgNCg0KT24gVGh1 LCBGZWIgMTcsIDIwMjIgYXQgNzoyNCBQTSBNYSwgTWF1cmljZSA8bWF1cmljZS5tYUBpbnRlbC5j b20+IHdyb3RlOg0KPg0KPiBUaGlzIHZlbmRvciBzcGVjaWZpYyBkZXZpY2UgZHJpdmVyIGltcGxl bWVudGF0aW9uIGRvZXMgbm90IHNlZW0gdG8gZml0IGludG8gVUVGSSBwYXlsb2FkIHBhY2thZ2Ug c2NvcGUgd2VsbC4NCj4NCj4gRG8geW91IHRoaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2Nv cmUvZWRrMi1wbGF0Zm9ybXMvdHJlZS9tYXN0ZXIvU2lsaWNvbiBjb3VsZCBiZSBhIGJldHRlciBs b2NhdGlvbiA/DQo+DQo+IFRoYW5rcw0KPiBNYXVyaWNlDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91 cHMuaW8+IE9uIEJlaGFsZiBPZiBTZWFuIA0KPiA+IFJob2Rlcw0KPiA+IFNlbnQ6IFRodXJzZGF5 LCBGZWJydWFyeSAxNywgMjAyMiA5OjUxDQo+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ ID4gQ2M6IERvbmcsIEd1byA8Z3VvLmRvbmdAaW50ZWwuY29tPjsgUGF0cmljayBSdWRvbHBoIA0K PiA+IDxwYXRyaWNrLnJ1ZG9scGhAOWVsZW1lbnRzLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRl bC5jb20+OyBNYSwgDQo+ID4gTWF1cmljZSA8bWF1cmljZS5tYUBpbnRlbC5jb20+OyBZb3UsIEJl bmphbWluIA0KPiA+IDxiZW5qYW1pbi55b3VAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFtlZGsy LWRldmVsXSBbUEFUQ0ggMS8yXSBVZWZpUGF5bG9hZFBrZzogQWRkIGk4MDEgU01CdXMgDQo+ID4g Y29udHJvbGxlciBEWEUNCj4gPg0KPiA+IEZyb206IFBhdHJpY2sgUnVkb2xwaCA8cGF0cmljay5y dWRvbHBoQDllbGVtZW50cy5jb20+DQo+ID4NCj4gPiBJbXBsZW1lbnQgYSBzdWJzZXQgb2YgdGhl IGdFZmlTbWJ1c0hjUHJvdG9jb2xHdWlkIHVzaW5nIGEgZ2VuZXJpYyANCj4gPiBQQ0kgaTgwMSBT TUJ1cyBjb250cm9sbGVyLg0KPiA+DQo+ID4gQ2M6IEd1byBEb25nIDxndW8uZG9uZ0BpbnRlbC5j b20+DQo+ID4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPiBDYzogTWF1cmljZSBN YSA8bWF1cmljZS5tYUBpbnRlbC5jb20+DQo+ID4gQ2M6IEJlbmphbWluIFlvdSA8YmVuamFtaW4u eW91QGludGVsLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBQYXRyaWNrIFJ1ZG9scGggPHBhdHJp Y2sucnVkb2xwaEA5ZWxlbWVudHMuY29tPg0KPiA+IC0tLQ0KPiA+ICAuLi4vTGlicmFyeS9Ccm90 bGlDdXN0b21EZWNvbXByZXNzTGliL2Jyb3RsaSAgfCAgIDIgKy0NCj4gPiAgVWVmaVBheWxvYWRQ a2cvU21idXNEeGUvU01CdXNpODAxRHhlLmMgICAgICAgIHwgNTU2DQo+ID4gKysrKysrKysrKysr KysrKysrDQo+ID4gIFVlZmlQYXlsb2FkUGtnL1NtYnVzRHhlL1NNQnVzaTgwMUR4ZS5oICAgICAg ICB8ICAxNyArDQo+ID4gIFVlZmlQYXlsb2FkUGtnL1NtYnVzRHhlL1NNQnVzaTgwMUR4ZS5pbmYg ICAgICB8ICA0NSArKw0KPiA+ICBVZWZpUGF5bG9hZFBrZy9VZWZpUGF5bG9hZFBrZy5kc2MgICAg ICAgICAgICAgfCAgIDcgKw0KPiA+ICBVZWZpUGF5bG9hZFBrZy9VZWZpUGF5bG9hZFBrZy5mZGYg ICAgICAgICAgICAgfCAgIDUgKw0KPiA+ICA2IGZpbGVzIGNoYW5nZWQsIDYzMSBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pICBjcmVhdGUgbW9kZSANCj4gPiAxMDA2NDQgVWVmaVBheWxvYWRQ a2cvU21idXNEeGUvU01CdXNpODAxRHhlLmMNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFVlZmlQ YXlsb2FkUGtnL1NtYnVzRHhlL1NNQnVzaTgwMUR4ZS5oDQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBVZWZpUGF5bG9hZFBrZy9TbWJ1c0R4ZS9TTUJ1c2k4MDFEeGUuaW5mDQo+ID4NCj4gPiBkaWZm IC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0xpYnJhcnkvQnJvdGxpQ3VzdG9tRGVjb21wcmVzc0xpYi9i cm90bGkNCj4gPiBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0Jyb3RsaUN1c3RvbURlY29tcHJlc3NM aWIvYnJvdGxpDQo+ID4gaW5kZXggZjQxNTNhMDlmOC4uNjY2YzMyODBjYyAxNjAwMDANCj4gPiAt LS0gYS9NZGVNb2R1bGVQa2cvTGlicmFyeS9Ccm90bGlDdXN0b21EZWNvbXByZXNzTGliL2Jyb3Rs aQ0KPiA+ICsrKyBiL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0Jyb3RsaUN1c3RvbURlY29tcHJlc3NM aWIvYnJvdGxpDQo+ID4gQEAgLTEgKzEgQEANCj4gPiAtU3VicHJvamVjdCBjb21taXQgZjQxNTNh MDlmODdjYmI5YzgyNmQ4ZmMxMmM3NDY0MmJiMmQ4NzllYQ0KPiA+ICtTdWJwcm9qZWN0IGNvbW1p dCA2NjZjMzI4MGNjMTFkYzQzM2MzMDNkNzlhODNkNGZmYmRkMTJjYzhkDQo+ID4gZGlmZiAtLWdp dCBhL1VlZmlQYXlsb2FkUGtnL1NtYnVzRHhlL1NNQnVzaTgwMUR4ZS5jDQo+ID4gYi9VZWZpUGF5 bG9hZFBrZy9TbWJ1c0R4ZS9TTUJ1c2k4MDFEeGUuYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+ID4gaW5kZXggMDAwMDAwMDAwMC4uN2JmN2I4OTNhZA0KPiA+IC0tLSAvZGV2L251bGwNCj4g PiArKysgYi9VZWZpUGF5bG9hZFBrZy9TbWJ1c0R4ZS9TTUJ1c2k4MDFEeGUuYw0KPiA+IEBAIC0w LDAgKzEsNTU2IEBADQo+ID4gKy8qKiBAZmlsZSsgIEltcGxlbWVudGF0aW9uIGZvciBhIGdlbmVy aWMgaTgwMSBTTUJ1cyANCj4gPiArZHJpdmVyLisrQ29weXJpZ2h0IChjKQ0KPiA+IDIwMTYsIElu dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4rU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6DQo+ID4gQlNELTItQ2xhdXNlLVBhdGVudCsrKyoqLysrI2luY2x1ZGUgIlNNQnVz aTgwMUR4ZS5oIisjaW5jbHVkZQ0KPiA+IDxMaWJyYXJ5L1RpbWVyTGliLmg+KyNpbmNsdWRlIDxM aWJyYXJ5L1BjaUxpYi5oPisjaW5jbHVkZSANCj4gPiA8TGlicmFyeS9Jb0xpYi5oPisjaW5jbHVk ZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPisjaW5jbHVkZSANCj4gPiA8TGlicmFyeS9CYXNlTWVtb3J5 TGliLmg+KyNpbmNsdWRlDQo+ID4gPExpYnJhcnkvVWVmaUJvb3RTZXJ2aWNlc1RhYmxlTGliLmg+ KytFRklfSEFORExFICBtRHJpdmVySGFuZGxlID0NCj4gPiBOVUxMOytVSU5UMzIgICAgICBQY2lE ZXZpY2UgICAgID0gMDsrKy8qIFNNQnVzIHJlZ2lzdGVyIG9mZnNldHMuICovKyNkZWZpbmUNCj4g PiBTTUJIU1RTVEFUICAgICAgMHgwKyNkZWZpbmUgU01CSFNUQ1RMICAgICAgIDB4MisjZGVmaW5l IFNNQkhTVENNRA0KPiA+IDB4MysjZGVmaW5lIFNNQlhNSVRBREQgICAgICAweDQrI2RlZmluZSBT TUJIU1REQVQwICAgICAgMHg1KyNkZWZpbmUNCj4gPiBTTUJIU1REQVQxICAgICAgMHg2KyNkZWZp bmUgU01CQkxLREFUICAgICAgIDB4NysjZGVmaW5lIFNNQlRSTlNBREQNCj4gPiAweDkrI2RlZmlu ZSBTTUJTTFZEQVRBICAgICAgMHhhKyNkZWZpbmUgU01MSU5LX1BJTl9DVEwgIDB4ZSsjZGVmaW5l DQo+ID4gU01CVVNfUElOX0NUTCAgIDB4ZisjZGVmaW5lIFNNQlNMVkNNRCAgICAgICAweDExKysv KiBJODAxIGNvbW1hbmQNCj4gPiBjb25zdGFudHMgKi8rI2RlZmluZSBJODAxX1FVSUNLICAgICAg ICAgICAoMCA8PCAyKSsjZGVmaW5lIEk4MDFfQllURSAgICAgICAgICAgICgxDQo+ID4gPDwgMikr I2RlZmluZSBJODAxX0JZVEVfREFUQSAgICAgICAoMiA8PCAyKSsjZGVmaW5lIEk4MDFfV09SRF9E QVRBICAgICAgICgzDQo+ID4gPDwgMikrI2RlZmluZSBJODAxX1BST0NFU1NfQ0FMTCAgICAoNCA8 PCAyKSsjZGVmaW5lIEk4MDFfQkxPQ0tfREFUQQ0KPiA+ICg1IDw8IDIpKyNkZWZpbmUgSTgwMV9J MkNfQkxPQ0tfREFUQSAgKDYgPDwgMikgICAgIC8qIElDSDUgYW5kIGxhdGVyICovKysvKg0KPiA+ IEk4MDEgSG9zdCBDb250cm9sIHJlZ2lzdGVyIGJpdHMgKi8rI2RlZmluZSBTTUJIU1RDTlRfSU5U UkVOICAgICAoMSA8PA0KPiA+IDApKyNkZWZpbmUgU01CSFNUQ05UX0tJTEwgICAgICAgKDEgPDwg MSkrI2RlZmluZSBTTUJIU1RDTlRfTEFTVF9CWVRFDQo+ID4gKDEgPDwgNSkrI2RlZmluZSBTTUJI U1RDTlRfU1RBUlQgICAgICAoMSA8PCA2KSsjZGVmaW5lDQo+ID4gU01CSFNUQ05UX1BFQ19FTiAg ICAgKDEgPDwgNykgICAgLyogSUNIMyBhbmQgbGF0ZXIgKi8rKy8qIEk4MDEgSG9zdHMgU3RhdHVz DQo+ID4gcmVnaXN0ZXIgYml0cyAqLysjZGVmaW5lIFNNQkhTVFNUU19CWVRFX0RPTkUgICAgICgx IDw8IDcpKyNkZWZpbmUNCj4gPiBTTUJIU1RTVFNfSU5VU0VfU1RTICAgICAoMSA8PCA2KSsjZGVm aW5lIFNNQkhTVFNUU19TTUJBTEVSVF9TVFMgICgxDQo+ID4gPDwgNSkrI2RlZmluZSBTTUJIU1RT VFNfRkFJTEVEICAgICAgICAoMSA8PCA0KSsjZGVmaW5lDQo+ID4gU01CSFNUU1RTX0JVU19FUlIg ICAgICAgKDEgPDwgMykrI2RlZmluZSBTTUJIU1RTVFNfREVWX0VSUiAgICAgICAoMSA8PA0KPiA+ IDIpKyNkZWZpbmUgU01CSFNUU1RTX0lOVFIgICAgICAgICAgKDEgPDwgMSkrI2RlZmluZSBTTUJI U1RTVFNfSE9TVF9CVVNZDQo+ID4gKDEgPDwgMCkrKy8qIEZvciBTTUJYTUlUQUREIHJlZ2lzdGVy LiAqLysjZGVmaW5lIFhNSVRfV1JJVEUoZGV2KQ0KPiA+ICgoKGRldikgPDwgMSkgfCAwKSsjZGVm aW5lIFhNSVRfUkVBRChkZXYpICAgKCgoZGV2KSA8PCAxKSB8DQo+ID4gMSkrK1NUQVRJQytVSU5U MTYrRUZJQVBJK1NtYnVzR2V0U01CYXNlQWRkcmVzcyAoKyAgSU4gVk9JRCsgICkreysNCj4gPiBV SU5UMTYgIENtZDsrICBVSU5UMzIgIFJlZzMyOysgIFVJTlQxNiAgSW9CYXNlOysrICBJb0Jhc2Ug PSAwOysgIC8vKyAgDQo+ID4gLy8gVGVzdCBpZiBJL08gZGVjb2RpbmcgaXMgZW5hYmxlZCsgIC8v KyAgQ21kID0gUGNpUmVhZDE2IChQY2lEZXZpY2UgKyAweDQpOysgIGlmDQo+ID4gKCEoQ21kICYg MSkpIHsrICAgIGdvdG8gQ2xvc2VBbmRSZXR1cm47KyAgfSsrICAvLysgIC8vIFRlc3QgaWYgQkFS MCBpcyBJL08gYmFyDQo+ID4gYW5kIGVuYWJsZWQrICAvLysgIFJlZzMyID0gUGNpUmVhZDE2IChQ Y2lEZXZpY2UgKyAweDIwKTsrICBpZiANCj4gPiAoIShSZWczMiAmIDEpDQo+ID4gfHwgIShSZWcz MiAmIDB4ZmZmYykgfHwgKChSZWczMiAmIDB4ZmZmYykgPT0gMHhmZmZjKSkgeysgICAgZ290bw0K PiA+IENsb3NlQW5kUmV0dXJuOysgIH0rKyAgSW9CYXNlID0gUmVnMzIgJiAweGZmZmM7KytDbG9z ZUFuZFJldHVybjorICANCj4gPiByZXR1cm4gSW9CYXNlOyt9KytTVEFUSUMrRUZJX1NUQVRVUytT bWJ1c1NldHVwQ29tbWFuZCAoKyAgSU4gVUlOVDE2DQo+ID4gSW9CYXNlLCsgIElOIFVJTlQ4ICAg Q3RybCwrICBJTiBVSU5UOCAgIFhtaXRhZGQrICApK3srICBVSU5UTiAgTG9vcHMgPSAxMDAwMDsr DQo+ID4gVUlOVDggIGhvc3RfYnVzeTsrKyAgZG8geysgICAgTWljcm9TZWNvbmREZWxheSAoMTAw KTsrICAgIGhvc3RfYnVzeSA9DQo+ID4gSW9SZWFkOCAoSW9CYXNlICsgU01CSFNUU1RBVCkgJiBT TUJIU1RTVFNfSE9TVF9CVVNZOysgIH0gd2hpbGUgKC0tDQo+ID4gTG9vcHMgJiYgaG9zdF9idXN5 KTsrKyAgaWYgKExvb3BzID09IDApIHsrICAgIHJldHVybiBFRklfVElNRU9VVDsrICB9KysgIC8q DQo+ID4gQ2xlYXIgYW55IGxpbmdlcmluZyBlcnJvcnMsIHNvIHRoZSB0cmFuc2FjdGlvbiB3aWxs IHJ1bi4gKi8rICANCj4gPiBJb1dyaXRlOCAoSW9CYXNlICsgU01CSFNUU1RBVCwgSW9SZWFkOCAo SW9CYXNlICsgU01CSFNUU1RBVCkpOysrICAvKiANCj4gPiBTZXQgdXAgdHJhbnNhY3Rpb24gKi8r DQo+ID4gLyogRGlzYWJsZSBpbnRlcnJ1cHRzICovKyAgSW9Xcml0ZTggKElvQmFzZSArIFNNQkhT VENUTCwgQ3RybCk7KysgIA0KPiA+IC8qIFNldCB0aGUgZGV2aWNlIEknbSB0YWxraW5nIHRvLiAq LysgIElvV3JpdGU4IChJb0Jhc2UgKyANCj4gPiBTTUJYTUlUQURELCBYbWl0YWRkKTsrKyByZXR1 cm4gDQo+ID4gRUZJX1NVQ0NFU1M7K30rK1NUQVRJQytFRklfU1RBVFVTK1NtYnVzRXhlY3V0ZUNv bW1hbmQgKCsgSU4gVUlOVDE2ICANCj4gPiBJb0Jhc2UrICApK3srICBVSU5UTiAgTG9vcHMgPSAx MDAwMDsrICBVSU5UOCAgU3RhdHVzOysrICAvKiBTdGFydCANCj4gPiB0aGUgY29tbWFuZC4gKi8r ICBJb1dyaXRlOCAoSW9CYXNlICsgU01CSFNUQ1RMLCBJb1JlYWQ4IChJb0Jhc2UgKw0KPiA+IFNN QkhTVENUTCkgfCBTTUJIU1RDTlRfU1RBUlQpOysgIFN0YXR1cyA9IElvUmVhZDggKElvQmFzZSAr DQo+ID4gU01CSFNUU1RBVCk7KysgIC8qIFBvbGwgZm9yIGl0IHRvIHN0YXJ0LiAqLysgIGRvIHsr ICAgIE1pY3JvU2Vjb25kRGVsYXkNCj4gPiAoMTAwKTsrKyAgICAvKiBJZiB3ZSBwb2xsIHRvbyBz bG93LCB3ZSBjb3VsZCBtaXNzIEhPU1RfQlVTWSBmbGFnKyAgICAgKiBzZXQgYW5kDQo+ID4gZGV0 ZWN0IElOVFIgb3IgeF9FUlIgZmxhZ3MgaW5zdGVhZCBoZXJlLisgICAgICovKyAgICBTdGF0dXMg PSBJb1JlYWQ4IChJb0Jhc2UgKw0KPiA+IFNNQkhTVFNUQVQpOysrICAgIFN0YXR1cyAmPSB+KFNN QkhTVFNUU19TTUJBTEVSVF9TVFMgfA0KPiA+IFNNQkhTVFNUU19JTlVTRV9TVFMpOysgIH0gd2hp bGUgKC0tTG9vcHMgJiYgU3RhdHVzID09IDApOysrICBpZiAoTG9vcHMgPT0gMCkNCj4gPiB7KyAg ICByZXR1cm4gRUZJX1RJTUVPVVQ7KyAgfSsrICByZXR1cm4NCj4gPiBFRklfU1VDQ0VTUzsrfSsr U1RBVElDK0JPT0xFQU4rU21idXNIb3N0Q29tcGxldGVkICgrICBJTiBVSU5UOA0KPiA+IFN0YXR1 cysgICkreysgIGlmIChTdGF0dXMgJiBTTUJIU1RTVFNfSE9TVF9CVVNZKSB7KyAgICByZXR1cm4g RkFMU0U7KyAgfSsrDQo+ID4gLyogVGhlc2Ugc3RhdHVzIGJpdHMgZG8gbm90IGltcGx5IGNvbXBs ZXRpb24gb2YgdHJhbnNhY3Rpb24uICovKyAgDQo+ID4gU3RhdHVzICY9IH4oU01CSFNUU1RTX0JZ VEVfRE9ORSB8IFNNQkhTVFNUU19JTlVTRV9TVFMgfCANCj4gPiBTTUJIU1RTVFNfU01CQUxFUlRf U1RTKTsrICByZXR1cm4gU3RhdHVzICE9IA0KPiA+IDA7K30rK1NUQVRJQytFRklfU1RBVFVTK1Nt YnVzQ29tcGxldGVDb21tYW5kICgrICBJTiBVSU5UMTYNCj4gPiBJb0Jhc2UrICApK3srICBVSU5U TiAgTG9vcHMgPSAxMDAwMDsrICBVSU5UOCAgU3RhdHVzOysrICBkbyB7Kw0KPiA+IE1pY3JvU2Vj b25kRGVsYXkgKDEwMCk7KyAgICBTdGF0dXMgPSBJb1JlYWQ4IChJb0Jhc2UgKyBTTUJIU1RTVEFU KTsrICB9DQo+ID4gd2hpbGUgKC0tTG9vcHMgJiYgIVNtYnVzSG9zdENvbXBsZXRlZCAoU3RhdHVz KSk7KysgIGlmIChMb29wcyA9PSAwKSANCj4gPiB7KyByZXR1cm4gRUZJX1RJTUVPVVQ7KyAgfSsr ICAvKiBUaGVzZSBzdGF0dXMgYml0cyBkbyBub3QgaW1wbHkgDQo+ID4gZXJyb3JzLiAqLysgU3Rh dHVzICY9IH4oU01CSFNUU1RTX0JZVEVfRE9ORSB8IFNNQkhTVFNUU19JTlVTRV9TVFMgfA0KPiA+ IFNNQkhTVFNUU19TTUJBTEVSVF9TVFMpOysrICBpZiAoU3RhdHVzID09IFNNQkhTVFNUU19JTlRS KSB7KyAgICByZXR1cm4NCj4gPiBFRklfU1VDQ0VTUzsrICB9KysgIHJldHVybg0KPiA+IEVGSV9O T19SRVNQT05TRTsrfSsrU1RBVElDK0VGSV9TVEFUVVMrRUZJQVBJK1NtYnVzUHJvY2Vzc0NhbGxP cGVyDQo+ID4gYXRpb24gKCsgIElOIENPTlNUICBVSU5UMTYgICAgICAgICAgICAgICAgICAgIElv QmFzZSwrICBJTiBDT05TVA0KPiA+IEVGSV9TTUJVU19IQ19QUk9UT0NPTCAgICAgKlRoaXMsKyAg SU4gICAgICAgIEVGSV9TTUJVU19ERVZJQ0VfQUREUkVTUw0KPiA+IFNsYXZlQWRkcmVzcywrICBJ TiAgICAgICAgRUZJX1NNQlVTX0RFVklDRV9DT01NQU5EICBDb21tYW5kLCsgIElODQo+ID4gQk9P TEVBTiAgICAgICAgICAgICAgICAgICBQZWNDaGVjaywrICBJTiBPVVQgICAgVUlOVE4gICAgICAg ICAgICAgICAgICAgICAqTGVuZ3RoLCsgIElOIE9VVA0KPiA+IFZPSUQgICAgICAgICAgICAgICAg ICAgICAgKkJ1ZmZlcisgICkreysgIEVGSV9TVEFUVVMgIFN0YXR1czsrICBVSU5UMTYNCj4gPiBS ZXN1bHRCdWZmZXI7KyAgVUlOVDE2ICAgICAgQWRkckJ1ZmZlcjsrKyAgaWYgKCFCdWZmZXIgfHwg IUxlbmd0aCkgeysgICAgcmV0dXJuDQo+ID4gUkVUVVJOX0lOVkFMSURfUEFSQU1FVEVSOysgIH0r KyAgaWYgKCpMZW5ndGggIT0gMikgeysgICAgcmV0dXJuDQo+ID4gUkVUVVJOX0lOVkFMSURfUEFS QU1FVEVSOysgIH0rKyAgQ29weU1lbSAoJkFkZHJCdWZmZXIsIEJ1ZmZlciwgDQo+ID4gc2l6ZW9m IChBZGRyQnVmZmVyKSk7KysgIC8qIFNldCB1cCBmb3IgcHJvY2VzcyBjYWxsICovKyAgU3RhdHVz ID0gDQo+ID4gU21idXNTZXR1cENvbW1hbmQgKElvQmFzZSwgSTgwMV9QUk9DRVNTX0NBTEwsIFhN SVRfV1JJVEUNCj4gPiAoU2xhdmVBZGRyZXNzLlNtYnVzRGV2aWNlQWRkcmVzcykpOysgIGlmIChF RklfRVJST1IgKFN0YXR1cykpIHsrICAgIHJldHVybg0KPiA+IFN0YXR1czsrICB9KysgIC8qIGNt ZCB3aWxsIG9ubHkgYmUgc2VuZCBpZiBJMkNfRU4gaXMgemVybyAqLysgIA0KPiA+IElvV3JpdGU4 IChJb0Jhc2UNCj4gPiArIFNNQkhTVENNRCwgQ29tbWFuZCk7KysgIElvV3JpdGU4IChJb0Jhc2Ug KyBTTUJIU1REQVQwLCBBZGRyQnVmZmVyDQo+ID4gJiAweDAwZmYpOysgIElvV3JpdGU4IChJb0Jh c2UgKyBTTUJIU1REQVQxLCAoQWRkckJ1ZmZlciAmIDB4ZmYwMCkgPj4gDQo+ID4gOCk7KysNCj4g PiAvKiBTdGFydCB0aGUgY29tbWFuZCAqLysgIFN0YXR1cyA9IFNtYnVzRXhlY3V0ZUNvbW1hbmQg KElvQmFzZSk7KyAgaWYNCj4gPiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7KyAgICByZXR1cm4gU3Rh dHVzOysgIH0rKyAgLyogUG9sbCBmb3IgdHJhbnNhY3Rpb24NCj4gPiBjb21wbGV0aW9uICovKyAg U3RhdHVzID0gU21idXNDb21wbGV0ZUNvbW1hbmQgKElvQmFzZSk7KyAgaWYNCj4gPiAoRUZJX0VS Uk9SIChTdGF0dXMpKSB7KyAgICByZXR1cm4gU3RhdHVzOysgIH0rKyAgLyogUmVhZCByZXN1bHRz IG9mIHRyYW5zYWN0aW9uDQo+ID4gKi8rICBSZXN1bHRCdWZmZXIgID0gSW9SZWFkOCAoSW9CYXNl ICsgU01CSFNUREFUMCk7KyAgUmVzdWx0QnVmZmVyIA0KPiA+IHw9DQo+ID4gKElvUmVhZDggKElv QmFzZSArIFNNQkhTVERBVDEpIDw8IDgpOysrICBDb3B5TWVtIChCdWZmZXIsIA0KPiA+ICZSZXN1 bHRCdWZmZXIsIHNpemVvZiAoUmVzdWx0QnVmZmVyKSk7KyAgKkxlbmd0aCA9IHNpemVvZiANCj4g PiAoUmVzdWx0QnVmZmVyKTsrKyByZXR1cm4gRUZJX1NVQ0NFU1M7K30rK1NUQVRJQytFRklfU1RB VFVTK0VGSUFQSStTbWJ1c1JlYWRPcGVyYXRpb24NCj4gPiAoKyAgSU4gQ09OU1QgIFVJTlQxNiAg ICAgICAgICAgICAgICAgICAgSW9CYXNlLCsgIElOIENPTlNUDQo+ID4gRUZJX1NNQlVTX0hDX1BS T1RPQ09MICAgICAqVGhpcywrICBJTiAgICAgICAgRUZJX1NNQlVTX0RFVklDRV9BRERSRVNTDQo+ ID4gU2xhdmVBZGRyZXNzLCsgIElOICAgICAgICBFRklfU01CVVNfREVWSUNFX0NPTU1BTkQgIENv bW1hbmQsKyAgSU4NCj4gPiBCT09MRUFOICAgICAgICAgICAgICAgICAgIFBlY0NoZWNrLCsgIElO IE9VVCAgICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICpMZW5ndGgsKyAgSU4gT1VUDQo+ID4g Vk9JRCAgICAgICAgICAgICAgICAgICAgICAqQnVmZmVyKyAgKSt7KyAgRUZJX1NUQVRVUyAgU3Rh dHVzOysgIFVJTlQ4DQo+ID4gUmVzdWx0QnVmZmVyOysrICBpZiAoIUJ1ZmZlciB8fCAhTGVuZ3Ro KSB7KyAgICByZXR1cm4NCj4gPiBSRVRVUk5fSU5WQUxJRF9QQVJBTUVURVI7KyAgfSsrICAvKiBT ZXQgdXAgZm9yIGEgYnl0ZSBkYXRhIHJlYWQuICovKyANCj4gPiBTdGF0dXMgPSBTbWJ1c1NldHVw Q29tbWFuZCAoSW9CYXNlLCBJODAxX0JZVEVfREFUQSwgWE1JVF9SRUFEDQo+ID4gKFNsYXZlQWRk cmVzcy5TbWJ1c0RldmljZUFkZHJlc3MpKTsrICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7KyAg ICByZXR1cm4NCj4gPiBTdGF0dXM7KyAgfSsrICBJb1dyaXRlOCAoSW9CYXNlICsgU01CSFNUQ01E LCBDb21tYW5kKTsrKyAgSW9Xcml0ZTggDQo+ID4gKElvQmFzZSArIFNNQkhTVERBVDAsIDApOysg IElvV3JpdGU4IChJb0Jhc2UgKyBTTUJIU1REQVQxLCAwKTsrKyAgLyogDQo+ID4gU3RhcnQgdGhl IGNvbW1hbmQgKi8rICBTdGF0dXMgPSBTbWJ1c0V4ZWN1dGVDb21tYW5kIChJb0Jhc2UpOysgIGlm DQo+ID4gKEVGSV9FUlJPUiAoU3RhdHVzKSkgeysgICAgcmV0dXJuIFN0YXR1czsrICB9KysgIC8q IFBvbGwgZm9yIHRyYW5zYWN0aW9uDQo+ID4gY29tcGxldGlvbiAqLysgIFN0YXR1cyA9IFNtYnVz Q29tcGxldGVDb21tYW5kIChJb0Jhc2UpOysgIGlmDQo+ID4gKEVGSV9FUlJPUiAoU3RhdHVzKSkg eysgICAgcmV0dXJuIFN0YXR1czsrICB9KysgIC8qIFJlYWQgcmVzdWx0cyBvZiB0cmFuc2FjdGlv bg0KPiA+ICovKyAgUmVzdWx0QnVmZmVyID0gSW9SZWFkOCAoSW9CYXNlICsgU01CSFNUREFUMCk7 KysgIENvcHlNZW0gDQo+ID4gKEJ1ZmZlciwgJlJlc3VsdEJ1ZmZlciwgc2l6ZW9mIChSZXN1bHRC dWZmZXIpKTsrICAqTGVuZ3RoID0gc2l6ZW9mIA0KPiA+IChSZXN1bHRCdWZmZXIpOysrIHJldHVy biBFRklfU1VDQ0VTUzsrfSsrU1RBVElDK0VGSV9TVEFUVVMrRUZJQVBJK1NtYnVzV3JpdGVPcGVy YXRpb24NCj4gPiAoKyAgSU4gQ09OU1QgIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgSW9CYXNl LCsgIElOIENPTlNUDQo+ID4gRUZJX1NNQlVTX0hDX1BST1RPQ09MICAgICAqVGhpcywrICBJTiAg ICAgICAgRUZJX1NNQlVTX0RFVklDRV9BRERSRVNTDQo+ID4gU2xhdmVBZGRyZXNzLCsgIElOICAg ICAgICBFRklfU01CVVNfREVWSUNFX0NPTU1BTkQgIENvbW1hbmQsKyAgSU4NCj4gPiBCT09MRUFO ICAgICAgICAgICAgICAgICAgIFBlY0NoZWNrLCsgIElOIE9VVCAgICBVSU5UTiAgICAgICAgICAg ICAgICAgICAgICpMZW5ndGgsKyAgSU4gT1VUDQo+ID4gVk9JRCAgICAgICAgICAgICAgICAgICAg ICAqQnVmZmVyKyAgKSt7KyAgRUZJX1NUQVRVUyAgU3RhdHVzOysgIFVJTlQ4DQo+ID4gSW5wdXRC dWZmZXI7KysgIGlmICghQnVmZmVyIHx8ICFMZW5ndGgpIHsrICAgIHJldHVybg0KPiA+IFJFVFVS Tl9JTlZBTElEX1BBUkFNRVRFUjsrICB9KysgIGlmICgqTGVuZ3RoICE9IDEpIHsrICAgIHJldHVy bg0KPiA+IFJFVFVSTl9JTlZBTElEX1BBUkFNRVRFUjsrICB9KysgIENvcHlNZW0gKCZJbnB1dEJ1 ZmZlciwgQnVmZmVyLCANCj4gPiBzaXplb2YgKElucHV0QnVmZmVyKSk7KysgIC8qIFNldCB1cCBm b3IgYSBieXRlIGRhdGEgcmVhZC4gKi8rICANCj4gPiBTdGF0dXMgPSBTbWJ1c1NldHVwQ29tbWFu ZCAoSW9CYXNlLCBJODAxX0JZVEVfREFUQSwgWE1JVF9XUklURQ0KPiA+IChTbGF2ZUFkZHJlc3Mu U21idXNEZXZpY2VBZGRyZXNzKSk7KyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgeysgICAgcmV0 dXJuDQo+ID4gU3RhdHVzOysgIH0rKyAgSW9Xcml0ZTggKElvQmFzZSArIFNNQkhTVENNRCwgQ29t bWFuZCk7KysgIElvV3JpdGU4IA0KPiA+IChJb0Jhc2UgKyBTTUJIU1REQVQwLCBJbnB1dEJ1ZmZl cik7KysgIC8qIFN0YXJ0IHRoZSBjb21tYW5kICovKyAgU3RhdHVzID0NCj4gPiBTbWJ1c0V4ZWN1 dGVDb21tYW5kIChJb0Jhc2UpOysgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsrICAgIHJldHVy bg0KPiA+IFN0YXR1czsrICB9KysgIC8qIFBvbGwgZm9yIHRyYW5zYWN0aW9uIGNvbXBsZXRpb24g Ki8rICBTdGF0dXMgPQ0KPiA+IFNtYnVzQ29tcGxldGVDb21tYW5kIChJb0Jhc2UpOysgIGlmIChF RklfRVJST1IgKFN0YXR1cykpIHsrICAgIHJldHVybg0KPiA+IFN0YXR1czsrICB9KysgIHJldHVy bg0KPiA+IEVGSV9TVUNDRVNTOyt9KytTVEFUSUMrRUZJX1NUQVRVUytFRklBUEkrU21idXNFeGVj dXRlT3BlcmF0aW9uICgrDQo+ID4gSU4gQ09OU1QgIEVGSV9TTUJVU19IQ19QUk9UT0NPTCAgICAg KlRoaXMsKyAgSU4NCj4gPiBFRklfU01CVVNfREVWSUNFX0FERFJFU1MgIFNsYXZlQWRkcmVzcywr ICBJTiANCj4gPiBFRklfU01CVVNfREVWSUNFX0NPTU1BTkQgIENvbW1hbmQsKyAgSU4NCj4gPiBF RklfU01CVVNfT1BFUkFUSU9OICAgICAgIE9wZXJhdGlvbiwrICBJTiAgICAgICAgQk9PTEVBTg0K PiA+IFBlY0NoZWNrLCsgIElOIE9VVCAgICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICpMZW5n dGgsKyAgSU4gT1VUICAgIFZPSUQNCj4gPiAqQnVmZmVyKyAgKSt7KyAgVUlOVDE2ICBJb0Jhc2U7 KysgIElvQmFzZSA9IFNtYnVzR2V0U01CYXNlQWRkcmVzcyAoKTsrICBpZg0KPiA+ICghSW9CYXNl KSB7KyAgICByZXR1cm4gRUZJX1VOU1VQUE9SVEVEOysgIH0rKyAgaWYgKE9wZXJhdGlvbiA9PQ0K PiA+IEVmaVNtYnVzUHJvY2Vzc0NhbGwpIHsrICAgIHJldHVybiBTbWJ1c1Byb2Nlc3NDYWxsT3Bl cmF0aW9uICgrDQo+ID4gSW9CYXNlLCsgICAgICAgICAgICAgVGhpcywrICAgICAgICAgICAgIFNs YXZlQWRkcmVzcywrICAgICAgICAgICAgIENvbW1hbmQsKw0KPiA+IFBlY0NoZWNrLCsgICAgICAg ICAgICAgTGVuZ3RoLCsgICAgICAgICAgICAgQnVmZmVyKyAgICAgICAgICAgICApOysgIH0gZWxz ZSBpZiAoT3BlcmF0aW9uID09DQo+ID4gRWZpU21idXNSZWFkQnl0ZSkgeysgICAgcmV0dXJuIFNt YnVzUmVhZE9wZXJhdGlvbiAoKyAgICAgICAgICAgICBJb0Jhc2UsKw0KPiA+IFRoaXMsKyAgICAg ICAgICAgICBTbGF2ZUFkZHJlc3MsKyAgICAgICAgICAgICBDb21tYW5kLCsgICAgICAgICAgICAg UGVjQ2hlY2ssKw0KPiA+IExlbmd0aCwrICAgICAgICAgICAgIEJ1ZmZlcisgICAgICAgICAgICAg KTsrICB9IGVsc2UgaWYgKE9wZXJhdGlvbiA9PSBFZmlTbWJ1c1dyaXRlQnl0ZSkNCj4gPiB7KyAg ICByZXR1cm4gU21idXNXcml0ZU9wZXJhdGlvbiAoKyAgICAgICAgICAgICBJb0Jhc2UsKyAgICAg ICAgICAgICBUaGlzLCsNCj4gPiBTbGF2ZUFkZHJlc3MsKyAgICAgICAgICAgICBDb21tYW5kLCsg ICAgICAgICAgICAgUGVjQ2hlY2ssKyAgICAgICAgICAgICBMZW5ndGgsKw0KPiA+IEJ1ZmZlcisg ICAgICAgICAgICAgKTsrICB9KysgIHJldHVybg0KPiA+IEVGSV9VTlNVUFBPUlRFRDsrfSsrU1RB VElDK0VGSV9TVEFUVVMrRUZJQVBJK1NtYnVzSGNQcm90b2NvbEFycEQNCj4gPiBldmljZSAoKyAg SU4gQ09OU1QgIEVGSV9TTUJVU19IQ19QUk9UT0NPTCAqVGhpcywrICBJTiAgICAgICAgQk9PTEVB Tg0KPiA+IEFycEFsbCwrICBJTiAgICAgICAgRUZJX1NNQlVTX1VESUQgKlNtYnVzVWRpZCwgT1BU SU9OQUwrICBJTiBPVVQNCj4gPiBFRklfU01CVVNfREVWSUNFX0FERFJFU1MgICpTbGF2ZUFkZHJl c3MgT1BUSU9OQUwrICApK3srICByZXR1cm4gDQo+ID4gRUZJX1VOU1VQUE9SVEVEOyt9KytTVEFU SUMrRUZJX1NUQVRVUytFRklBUEkrU21idXNIY1Byb3RvY29sR2V0QQ0KPiA+IHJwTWFwICgrICBJ TiBDT05TVCAgRUZJX1NNQlVTX0hDX1BST1RPQ09MICAqVGhpcywrICBJTiBPVVQgICAgVUlOVE4N Cj4gPiAqTGVuZ3RoLCsgIElOIE9VVCAgICBFRklfU01CVVNfREVWSUNFX01BUCAgICoqU21idXNE ZXZpY2VNYXArICApK3srDQo+ID4gcmV0dXJuDQo+ID4gRUZJX1VOU1VQUE9SVEVEOyt9KytTVEFU SUMrRUZJX1NUQVRVUytFRklBUEkrU21idXNIY1Byb3RvY29sTm90aWYNCj4gPiB5ICgrICBJTiBD T05TVCAgRUZJX1NNQlVTX0hDX1BST1RPQ09MICAgICAgKlRoaXMsKyAgSU4NCj4gPiBFRklfU01C VVNfREVWSUNFX0FERFJFU1MgICBTbGF2ZUFkZHJlc3MsKyAgSU4gICAgICAgIFVJTlRODQo+ID4g RGF0YSwrICBJTiAgICAgICAgRUZJX1NNQlVTX05PVElGWV9GVU5DVElPTiAgTm90aWZ5RnVuY3Rp b24rICApK3srICByZXR1cm4NCj4gPiBFRklfVU5TVVBQT1JURUQ7K30rK0VGSV9TTUJVU19IQ19Q Uk9UT0NPTCAgbVNtYnVzUHJvdG9jb2wgPSB7KyANCj4gPiBTbWJ1c0V4ZWN1dGVPcGVyYXRpb24s KyAgU21idXNIY1Byb3RvY29sQXJwRGV2aWNlLCsgDQo+ID4gU21idXNIY1Byb3RvY29sR2V0QXJw TWFwLCsgIFNtYnVzSGNQcm90b2NvbE5vdGlmeSt9OysrLyoqKyAgVGhlIA0KPiA+IEVudHJ5IFBv aW50IGZvciBTTUJVUyBkcml2ZXIuKysgIEl0IGluc3RhbGxzIERyaXZlckJpbmRpbmcuKysgIEBy ZXR2YWwgRUZJX1NVQ0NFU1MNCj4gPiBUaGUgZW50cnkgcG9pbnQgaXMgZXhlY3V0ZWQgc3VjY2Vz c2Z1bGx5LisgIEByZXR2YWwgb3RoZXIgICAgICAgICAgICAgU29tZSBlcnJvcg0KPiA+IG9jY3Vy cyB3aGVuIGV4ZWN1dGluZyB0aGlzIGVudHJ5DQo+ID4gcG9pbnQuKysqKi8rRUZJX1NUQVRVUytF RklBUEkrSW5zdGFsbFNtYnVzUHJvdG9jb2wgKCsgIElOIEVGSV9IQU5ETEUgDQo+ID4gSW1hZ2VI YW5kbGUsKyAgSU4gRUZJX1NZU1RFTV9UQUJMRSAgKlN5c3RlbVRhYmxlKyAgKSt7KyAgRUZJX1NU QVRVUw0KPiA+IFN0YXR1czsrICBVSU5UMTYgICAgICBJb0Jhc2U7KyAgVUlOVDggICAgICAgRGV2 aWNlOysgIFVJTlQ4ICAgICAgIEZ1bmN0aW9uOysNCj4gPiBCT09MRUFOICAgICBCcmVha0xvb3A7 KyAgVUlOVDggICAgICAgQmFzZUNsYXNzOysgIFVJTlQ4ICAgICAgIFN1YkNsYXNzOysrDQo+ID4g QnJlYWtMb29wID0gRkFMU0U7KyAgU3RhdHVzICAgID0gRUZJX1NVQ0NFU1M7KysgIC8vKyAgLy8g U2VhcmNoIGZvciBTTUJ1cw0KPiA+IENvbnRyb2xsZXIgd2l0aGluIFBDSSBEZXZpY2VzIG9uIHJv b3QgYnVzKyAgLy8rICBmb3IgKERldmljZSA9IDA7IERldmljZSA8PQ0KPiA+IFBDSV9NQVhfREVW SUNFOyBEZXZpY2UrKykgeysgICAgZm9yIChGdW5jdGlvbiA9IDA7IEZ1bmN0aW9uIDw9DQo+ID4g UENJX01BWF9GVU5DOyBGdW5jdGlvbisrKSB7KyAgICAgIGlmIChQY2lSZWFkMTYgKFBDSV9MSUJf QUREUkVTUyAoMCwNCj4gPiBEZXZpY2UsIEZ1bmN0aW9uLCAweDAwKSkgIT0gMHg4MDg2KSB7KyAg ICAgICAgY29udGludWU7KyAgICAgIH0rKyAgICAgIEJhc2VDbGFzcyA9DQo+ID4gUGNpUmVhZDgg KFBDSV9MSUJfQUREUkVTUyAoMCwgRGV2aWNlLCBGdW5jdGlvbiwgMHgwQikpOysrICAgICAgaWYg KEJhc2VDbGFzcw0KPiA+ID09IFBDSV9DTEFTU19TRVJJQUwpIHsrICAgICAgICBTdWJDbGFzcyA9 IFBjaVJlYWQ4IChQQ0lfTElCX0FERFJFU1MgKDAsDQo+ID4gRGV2aWNlLCBGdW5jdGlvbiwgMHhB KSk7KysgICAgICAgIGlmIChTdWJDbGFzcyA9PSBQQ0lfQ0xBU1NfU0VSSUFMX1NNQikgeysNCj4g PiBCcmVha0xvb3AgPSBUUlVFOysgICAgICAgICAgUGNpRGV2aWNlID0gUENJX0xJQl9BRERSRVNT ICgwLCBEZXZpY2UsIEZ1bmN0aW9uLA0KPiA+IDB4MDApOysgICAgICAgICAgYnJlYWs7KyAgICAg ICAgfSsgICAgICB9KyAgICB9KysgICAgaWYgKEJyZWFrTG9vcCkgeysgICAgICBicmVhazsrICAg IH0rICB9KysgIGlmDQo+ID4gKCFCcmVha0xvb3ApIHsrICAgIERFQlVHICgoRUZJX0RfSU5GTywg Ik5vIFBDSSBTTUJVUyBjb250cm9sbGVyDQo+ID4gZm91bmQuXG4iKSk7KyAgICByZXR1cm4gRUZJ X1VOU1VQUE9SVEVEOysgIH0rKyAgREVCVUcgKChFRklfRF9JTkZPLCAiUENJDQo+ID4gRGV2aWNl IGZvdW5kIG9uIDAtJXgtJXhcbiIsIERldmljZSwgRnVuY3Rpb24pKTsrKyAgSW9CYXNlID0NCj4g PiBTbWJ1c0dldFNNQmFzZUFkZHJlc3MgKCk7KyAgaWYgKCFJb0Jhc2UpIHsrICAgIHJldHVybg0K PiA+IEVGSV9VTlNVUFBPUlRFRDsrICB9KysgIERFQlVHICgoKyAgICBFRklfRF9JTkZPLCsgICAg IiVhOiBEZXRlY3RlZCBpODAxDQo+ID4gU01CdXMgY29udHJvbGxlciB3aXRoIFNNQkFTRSAweCV4 XG4iLCsgICAgX19GVU5DVElPTl9fLCsNCj4gPiBJb0Jhc2UrICAgICkpOysrICBTdGF0dXMgPSBn QlMtPkluc3RhbGxQcm90b2NvbEludGVyZmFjZSAoKw0KPiA+ICZtRHJpdmVySGFuZGxlLCsgICAg ICAgICAgICAgICAgICAmZ0VmaVNtYnVzSGNQcm90b2NvbEd1aWQsKw0KPiA+IEVGSV9OQVRJVkVf SU5URVJGQUNFLCsgICAgICAgICAgICAgICAgICAmbVNtYnVzUHJvdG9jb2wrICAgICAgICAgICAg ICAgICAgKTsrKyAgaWYNCj4gPiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7KyAgICByZXR1cm4gU3Rh dHVzOysgIH0rKyAgcmV0dXJuIEVGSV9TVUNDRVNTOyt9ZGlmZiAtLWdpdA0KPiA+IGEvVWVmaVBh eWxvYWRQa2cvU21idXNEeGUvU01CdXNpODAxRHhlLmgNCj4gPiBiL1VlZmlQYXlsb2FkUGtnL1Nt YnVzRHhlL1NNQnVzaTgwMUR4ZS5oDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRl eCAwMDAwMDAwMDAwLi5lODg4MjNkYTMxDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL1Vl ZmlQYXlsb2FkUGtnL1NtYnVzRHhlL1NNQnVzaTgwMUR4ZS5oDQo+ID4gQEAgLTAsMCArMSwxNyBA QA0KPiA+ICsvKiogQGZpbGUrICBIZWFkZXIgZmlsZSBmb3IgYSBnZW5lcmljIGk4MDEgU01CVVMg ZHJpdmVyLisrQ29weXJpZ2h0IA0KPiA+ICsoYykgMjAxNiwgSW50ZWwgQ29ycG9yYXRpb24uIEFs bCByaWdodHMNCj4gPiArcmVzZXJ2ZWQuPEJSPitTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjoNCj4g PiArQlNELTItQ2xhdXNlLVBhdGVudCsrKyoqLysjaWZuZGVmIF9QQ0lfUExBVEZPUk1fRFhFX0hf KyNkZWZpbmUNCj4gPiArX1BDSV9QTEFURk9STV9EWEVfSF8rI2luY2x1ZGUgPFBpRHhlLmg+Kysj aW5jbHVkZSANCj4gPiArPEluZHVzdHJ5U3RhbmRhcmQvUGNpLmg+KyNpbmNsdWRlIA0KPiA+ICs8 SW5kdXN0cnlTdGFuZGFyZC9QY2kyMi5oPisjaW5jbHVkZQ0KPiA+ICs8UHJvdG9jb2wvU21idXNI Yy5oPisrI2VuZGlmZGlmZiAtLWdpdCANCj4gPiArYS9VZWZpUGF5bG9hZFBrZy9TbWJ1c0R4ZS9T TUJ1c2k4MDFEeGUuaW5mDQo+ID4gK2IvVWVmaVBheWxvYWRQa2cvU21idXNEeGUvU01CdXNpODAx RHhlLmluZg0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMC4u N2QxM2M0NDZlZg0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9VZWZpUGF5bG9hZFBrZy9T bWJ1c0R4ZS9TTUJ1c2k4MDFEeGUuaW5mDQo+ID4gQEAgLTAsMCArMSw0NSBAQA0KPiA+ICsjIyBA ZmlsZSsjIFRoaXMgZHJpdmVyIHByb2R1Y2VzIGdFZmlTbWJ1c0hjUHJvdG9jb2xHdWlkIHByb3Rv Y29sIHRvIA0KPiA+ICtsb2FkDQo+ID4gYWNjZXNzIFNNQlVTIGRldmljZXMrIysjIENvcHlyaWdo dCAoYykgMjAyMCwgOWVsZW1lbnRzIEFnZW5jeQ0KPiA+IEdtYkgrIysjICBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLQ0KPiA+IFBhdGVudCsjKyMrIyMrK1tEZWZpbmVzXSsg IElORl9WRVJTSU9OICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMTAwMDUrDQo+ID4gQkFTRV9O QU1FICAgICAgICAgICAgICAgICAgICAgID0gU01CdXNpODAxRHhlKyAgRklMRV9HVUlEICAgICAg ICAgICAgICAgICAgICAgID0gMzkwMjA4REEtDQo+ID4gOEU2Ri00OTU3LTkwRDYtNDIxNzM3RkVB OUJGKyAgTU9EVUxFX1RZUEUgICAgICAgICAgICAgICAgICAgID0gRFhFX0RSSVZFUisNCj4gPiBW RVJTSU9OX1NUUklORyAgICAgICAgICAgICAgICAgPSAxLjArICBFTlRSWV9QT0lOVCAgICAgICAg ICAgICAgICAgICAgPQ0KPiA+IEluc3RhbGxTbWJ1c1Byb3RvY29sKysjKyMgVGhlIGZvbGxvd2lu ZyBpbmZvcm1hdGlvbiBpcyBmb3IgcmVmZXJlbmNlIA0KPiA+IEluc3RhbGxTbWJ1c1Byb3RvY29s Kytvbmx5DQo+ID4gYW5kIG5vdCByZXF1aXJlZCBieSB0aGUgYnVpbGQgdG9vbHMuKyMrIyAgVkFM SURfQVJDSElURUNUVVJFUyAgICAgICAgICAgPSBJQTMyDQo+ID4gWDY0KyMrK1tTb3VyY2VzLmNv bW1vbl0rICBTTUJ1c2k4MDFEeGUuaCsNCj4gPiBTTUJ1c2k4MDFEeGUuYysrW1BhY2thZ2VzXSsg IE1kZVBrZy9NZGVQa2cuZGVjKyANCj4gPiBNZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRlYysr W0xpYnJhcnlDbGFzc2VzXSsNCj4gPiBVZWZpRHJpdmVyRW50cnlQb2ludCsgIERlYnVnTGliKyAg SW9MaWIrICBVZWZpTGliKyAgVGltZXJMaWIrDQo+ID4gUGNpTGliKytbUHJvdG9jb2xzXSsgIGdF ZmlTbWJ1c0hjUHJvdG9jb2xHdWlkICAgICAgICAgICAgICAgICAgICAgICAjIw0KPiA+IFBST0RV Q0VTKytbRGVwZXhdKyAgVFJVRWRpZmYgLS1naXQgDQo+ID4gUFJPRFVDRVMrK2EvVWVmaVBheWxv YWRQa2cvVWVmaVBheWxvYWRQa2cuZHNjDQo+ID4gYi9VZWZpUGF5bG9hZFBrZy9VZWZpUGF5bG9h ZFBrZy5kc2MNCj4gPiBpbmRleCAxY2U5NmE1MWMxLi41NDU0M2I3NjIzIDEwMDY0NA0KPiA+IC0t LSBhL1VlZmlQYXlsb2FkUGtnL1VlZmlQYXlsb2FkUGtnLmRzYw0KPiA+ICsrKyBiL1VlZmlQYXls b2FkUGtnL1VlZmlQYXlsb2FkUGtnLmRzYw0KPiA+IEBAIC0yOTAsNiArMjkwLDcgQEANCj4gPiAg IWlmICQoUEVSRk9STUFOQ0VfTUVBU1VSRU1FTlRfRU5BQkxFKQ0KPiA+IFBlcmZvcm1hbmNlTGli fE1kZU1vZHVsZVBrZy9MaWJyYXJ5L0R4ZUNvcmVQZXJmb3JtYW5jZUxpYi9EeGVDb3JlDQo+ID4g UGVyZm9ybWFuY2VMaWIuaW5mICFlbmRpZisNCj4gPiBTbWJ1c0xpYnxNZGVQa2cvTGlicmFyeS9E eGVTbWJ1c0xpYi9EeGVTbWJ1c0xpYi5pbmYNCj4gPiBbTGlicmFyeUNsYXNzZXMuY29tbW9uLkRY RV9EUklWRVJdDQo+ID4gUGNkTGlifE1kZVBrZy9MaWJyYXJ5L0R4ZVBjZExpYi9EeGVQY2RMaWIu aW5mQEAgLTMwNCw2ICszMDUsNyBAQA0KPiA+ICAhaWYgJChQRVJGT1JNQU5DRV9NRUFTVVJFTUVO VF9FTkFCTEUpDQo+ID4gUGVyZm9ybWFuY2VMaWJ8TWRlTW9kdWxlUGtnL0xpYnJhcnkvRHhlUGVy Zm9ybWFuY2VMaWIvRHhlUGVyZm9ybWENCj4gPiBuY2VMaWIuaW5mICFlbmRpZisNCj4gPiBTbWJ1 c0xpYnxNZGVQa2cvTGlicmFyeS9EeGVTbWJ1c0xpYi9EeGVTbWJ1c0xpYi5pbmYNCj4gPiBbTGli cmFyeUNsYXNzZXMuY29tbW9uLkRYRV9SVU5USU1FX0RSSVZFUl0NCj4gPiBQY2RMaWJ8TWRlUGtn L0xpYnJhcnkvRHhlUGNkTGliL0R4ZVBjZExpYi5pbmZAQCAtNjU3LDYgKzY1OSwxMSBAQA0KPiA+ ICAhZW5kaWYgICBNZGVNb2R1bGVQa2cvQnVzL0lzYS9QczJNb3VzZUR4ZS9QczJNb3VzZUR4ZS5p bmYgKyAgIysgICMNCj4gPiBTTUJVUyBTdXBwb3J0KyAgIysgIFVlZmlQYXlsb2FkUGtnL1NtYnVz RHhlL1NNQnVzaTgwMUR4ZS5pbmYrICAgIyAgICMNCj4gPiBDb25zb2xlIFN1cHBvcnQgICAjZGlm ZiAtLWdpdCBhL1VlZmlQYXlsb2FkUGtnL1VlZmlQYXlsb2FkUGtnLmZkZg0KPiA+IGIvVWVmaVBh eWxvYWRQa2cvVWVmaVBheWxvYWRQa2cuZmRmDQo+ID4gaW5kZXggYzdiMDQ5NzhhZC4uODg2MWQy OTE2MiAxMDA2NDQNCj4gPiAtLS0gYS9VZWZpUGF5bG9hZFBrZy9VZWZpUGF5bG9hZFBrZy5mZGYN Cj4gPiArKysgYi9VZWZpUGF5bG9hZFBrZy9VZWZpUGF5bG9hZFBrZy5mZGYNCj4gPiBAQCAtMTc4 LDYgKzE3OCwxMSBAQCBJTkYNCj4gPiBNZGVNb2R1bGVQa2cvQnVzL0lzYS9QczJLZXlib2FyZER4 ZS9QczJLZXlib2FyZER4ZS5pbmYNCj4gPiAgIWVuZGlmIElORiBNZGVNb2R1bGVQa2cvQnVzL0lz YS9QczJNb3VzZUR4ZS9QczJNb3VzZUR4ZS5pbmYgKyMrIyANCj4gPiBTTUJVUyBTdXBwb3J0KyMr SU5GIFVlZmlQYXlsb2FkUGtnL1NtYnVzRHhlL1NNQnVzaTgwMUR4ZS5pbmYrICMgIyANCj4gPiBD b25zb2xlIFN1cHBvcnQgIy0tDQo+ID4gMi4zMi4wDQo+ID4NCj4gPg0KPiA+DQo+ID4gLT0tPS09 LT0tPS09DQo+ID4gR3JvdXBzLmlvIExpbmtzOiBZb3UgcmVjZWl2ZSBhbGwgbWVzc2FnZXMgc2Vu dCB0byB0aGlzIGdyb3VwLg0KPiA+IFZpZXcvUmVwbHkgT25saW5lICgjODY3MzApOiANCj4gPiBo dHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS84NjczMA0KPiA+IE11dGUgVGhp cyBUb3BpYzogaHR0cHM6Ly9ncm91cHMuaW8vbXQvODkyMTQ5OTEvMTc3Mzk3Mg0KPiA+IEdyb3Vw IE93bmVyOiBkZXZlbCtvd25lckBlZGsyLmdyb3Vwcy5pbw0KPiA+IFVuc3Vic2NyaWJlOiBodHRw czovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvdW5zdWIgDQo+ID4gW21hdXJpY2UubWFAaW50ZWwu Y29tXSAtPS09LT0tPS09LT0NCj4gPg0KPg0KPg0KPg0KPiANCj4NCj4NCg0KDQoNCg0KDQo=