From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web11.7930.1629851725410150168 for ; Tue, 24 Aug 2021 17:35:29 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=QVNYVsrQ; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: ray.ni@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10086"; a="303004692" X-IronPort-AV: E=Sophos;i="5.84,349,1620716400"; d="scan'208";a="303004692" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Aug 2021 17:35:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,349,1620716400"; d="scan'208";a="507823440" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga001.jf.intel.com with ESMTP; 24 Aug 2021 17:35:22 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Tue, 24 Aug 2021 17:35:21 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Tue, 24 Aug 2021 17:35:21 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.172) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Tue, 24 Aug 2021 17:35:21 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DsaLIW3bZeOBHOW3Ol/LMPCdRYsWNshH02MRQ0t8nbv520prc/DWiVFhTLaOZF62W0nXB93hOB3J3lBXSkeXCdpVD23KC+l/dHmjvDwEFGpabuADCgQUxUakzT1EZUT4pUQUsT5sxyadkzAKY/pHtAByo0PoPze94BFrA6ZjOanpUYODu+OSnXIrTtENFEmGHTcXqai4qimM0Iv+Qptx9UQumREIAeQqH8guDtcllj0lXEUvHLNHYqmLjV2NZgIeZe5lSwhiDWgm3r9GDyP+R8gRjDnZzdnRWho4y78JmmL7EIYs8ao58dFdFvVQN6UD4aOjg/sQZNK8mO5rjqCdQQ== 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=4tGCNRCFc0vf4g7vM0yrstKj7dyBRoPZUxoTWIzOYZk=; b=egkw/dLMJuJoCfa6ujp60hYpeGvvdlvOJMZIy2cAEeu8641kOfUCsImpOhkKwGU2X6zaZRYc3+bCSiss/5QBAPLEKo6/XWVY/Lw6hddWCWRwfGGKraebqJXM6yWdwBdE2rG2TEIrvJuunTVGOBgO490JqWcgxkR4zKHIB3Y69Slp+KtEovzKdEP3TYT07z09BB1o2vgdPyOrK6FbJeLH6xrtlgWGH6Y3yX1AR7D/S1JrkY8tzb3qCWz85T/NhQMWQ0gSdiU9phsuKq9bAQCxS0a157ccHQiPOB1x4H3kd3aE93LpgOEDmd42zfwUKRv1yFatpYGbpxjJp6LyWs1ntg== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4tGCNRCFc0vf4g7vM0yrstKj7dyBRoPZUxoTWIzOYZk=; b=QVNYVsrQWuRTOQe7dRU/5UK/TSkJ/2NOXtNTa71DEdlyWA2nVO2G9RtDOowqvOzcpGoBwYzxWmiFpVb6Hu/nz5TgsSdxeTLPnJC2Q6g07xoFCsuZ4U4WsIMMSyVdXV1J6eJNB0n51z5Y/53xYhUNLAXMocl3Q4UlDDmceGnZ/F4= Received: from CO1PR11MB4930.namprd11.prod.outlook.com (2603:10b6:303:9b::11) by MWHPR1101MB2222.namprd11.prod.outlook.com (2603:10b6:301:57::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.17; Wed, 25 Aug 2021 00:35:17 +0000 Received: from CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::c98d:a1f9:48a8:8865]) by CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::c98d:a1f9:48a8:8865%6]) with mapi id 15.20.4436.025; Wed, 25 Aug 2021 00:35:17 +0000 From: "Ni, Ray" To: Cheng-Chieh Huang , "devel@edk2.groups.io" CC: "Schaefer, Daniel" , Trammell Hudson , "Ma, Maurice" , "Dong, Guo" , "You, Benjamin" Subject: Re: [PATCH v3 1/4] UefiPayloadPkg: Add LINUXBOOT payload target Thread-Topic: [PATCH v3 1/4] UefiPayloadPkg: Add LINUXBOOT payload target Thread-Index: AQHXl+jU/2pqHwsImECnKkgBb9g7+KuDYglA Date: Wed, 25 Aug 2021 00:35:16 +0000 Message-ID: References: <20210823063312.2323801-1-chengchieh@google.com> <20210823063312.2323801-2-chengchieh@google.com> In-Reply-To: <20210823063312.2323801-2-chengchieh@google.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: google.com; dkim=none (message not signed) header.d=none;google.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9471c79e-6327-41b0-7f57-08d967603602 x-ms-traffictypediagnostic: MWHPR1101MB2222: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: aHPPMwaPFHeD96eVqhngehaS1rNd7eMqovEDqPNOUTIgng5posfRqvfX6hN/qtOZckzK8FaFY37cVNidfT/jyytZFSXHRngjbNmWWSVzghiqfT1daMZtXiETMwEbfjzn0P9dT1j9S3S0BLkvn3HtvGOIvpjWaQ/WqKrgHkzJlTyaP8f8t5PT2d5SPiL7Xt0xXQjNU9k4Bg2rziUxqj8BQhERxUU2S8KJtYbSBfHv5PfZjjUmD4SbQKZoz4ZtiRrBCJm1s463VJgQvm6sGB72WvCFQ26PeqIExRaLNglMFsIb0YeXSRsW7v2rGbgrUm6pUnVQA+Vp25wgx/HL1R9TEWeLekNY2ZfsVtmeYuHhWJC/HTKsCdJvcruIs1NE1EYRnGW9bLm/hGvcODcyvChSCzPDVrFl7hI+dB4iZy2A2ruj0lxKLJf6opw1fHqYRC+ij2FrucUPEmm6uUAC56ZBcw4Lh+Vmqp1kMsc7woMXPpl6jy9Vw6DAloQuP72DWdNsaYMGMF468reZC1QyJLvDp67SA0sw37SGwbHJhcAMzvpEGXEHWcs3YYE68Kkw8WHzsgwElIBIxE4kUC09xdgBDj7uKIpfrzRla7dmACOXiJAtWvVZZS4+x2LKEaEFczdVN+ALPMfvHR41P7cHcL/A+Pzpj8ycaVWwL7PBS/uFs+xZSFEZAEttz07yCn126LP1d7ykL1gR95NZCNSaUsXSAg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4930.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(4326008)(107886003)(30864003)(52536014)(110136005)(2906002)(66446008)(76116006)(66476007)(66556008)(64756008)(316002)(9686003)(5660300002)(33656002)(71200400001)(66946007)(54906003)(508600001)(8676002)(26005)(122000001)(186003)(53546011)(86362001)(38100700002)(6506007)(38070700005)(83380400001)(55016002)(7696005)(8936002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TXhWTDZ2Z3BEWHBCUTBlS01iL3lSaGhDQWlwOUg2VGFidkNMWkxvZFZETGxm?= =?utf-8?B?OTZSOEtZblVSTnFyTW81WitNY2t4VkZLYlZNQWJFbHlaaDVMWC9PekNSbmpq?= =?utf-8?B?WTFNT3FadlFKcVY1WVVPSmhxQ2Iyc1hUSjl5UTdhOXdtWUVkZm9lcUxSdUZG?= =?utf-8?B?di9DN0N2Y3pUMWxxb3JzV1RuWmEzbkdxRXlIVmxRRTk5RHA1UVJQa2NzazJv?= =?utf-8?B?WmVqOGxLS3JjdysvdjB3MnJmNCtvakgwZ3ZMNlpHMjJSd3J3azBMY1FsdDdJ?= =?utf-8?B?czhpbExGRE1lVzBjbU5INHB2UEoxa0JBYnFCTzRCejVxY3p5QmEwa2VaemQ4?= =?utf-8?B?L05oczk3VVNNZDlhNSszWXdYamkycFFaOWpqUDIwTGF4d0VxVXkwRUNpdmd6?= =?utf-8?B?N1Ntdk1tNGpIOFFPTlcvUjZoL2VRUGUwMzFDYVN5eDFYMk5zKzFycFpySVZp?= =?utf-8?B?R281WlBGTTFUZzh0UWRXMHYxY0J2ZDJ1WG90eDhUYjdKYnM0U2dPM3hXYTZW?= =?utf-8?B?d2s4b2hmR2JuSmthcTlNQy9taXVpS2pVWW51NHZDMW9SeTQ0NHZtOUNiNmJ6?= =?utf-8?B?ekE0Mnp1azRmbCtobWFsNHQwTEZkbXh2S3c0eExBTFYxbVQ5KzhWTUYrWFhl?= =?utf-8?B?SVdhcEdxNVBMWU1VT0kxb0RkTnFkNXBtMDhrUUFwd3hiRmtDU2w1QkhmVGZr?= =?utf-8?B?UGRJM0ZpeEk1U0lMeFhMdlh2ZDl5YXZtcWR6QlkwdW5PaTFYL3p6WTBJWi9C?= =?utf-8?B?Y0R6Y1lwUE4rSFZuWVd4bUVpNmVZeUtXYzVCdGNsNU05dlFwTzdSRTFUdk9U?= =?utf-8?B?NjlWOHhPMFlYUktmZ3hkcU85b0JmR3c1MXhhaWVzWjRqak9jR0xnUkMzeUpC?= =?utf-8?B?c2piSVRHU1hNcU82OUppVjBaUEdpTnRZT3dyMGZsOExHQnBjN0JxbC82SlJh?= =?utf-8?B?M3RlTjFNN3BESUdjSE1tbWtQMUd0Szc0bXJlRWNaQjhRd1o0YTdjTmhRYll2?= =?utf-8?B?RzlYR3cvVDBKYTM4bTlBblVYQm9UVlJLMkl3cCtMMW93Zis5VGhFZEU5Zm5I?= =?utf-8?B?UGtkK2FQRVREVmpVT2ZMTWR6TnhETkdBNkNxckM1MHdOUFFlOWF0VFU4QVZR?= =?utf-8?B?QWlHUEVua0NUci85VUx1ODRTd3htZ01RWUxMZTAvU2tKUHMwMzlaYkdwREkr?= =?utf-8?B?Y0tVR0pMS0ZWMTd0czlzZ3VMQ2tkU2NocUsyZDFVSUpuM2x3ak00OENIRHFS?= =?utf-8?B?QW03MHZORUxxWlE2V1NXWGRNQ004SVZUVmFKMGFDVE9nb2NFQytxZVZIMk9U?= =?utf-8?B?RExzMWRSVUdEaWR0WWNvZFZneElieDNXeXpvWFFnQmcyYWxGdGdFdDFjZ080?= =?utf-8?B?Wlp2OUV0TUd6S05zSGN0OWlxNmY3cEhXYjJJSWRMY0FYRnZhVnoxY2tSZFIr?= =?utf-8?B?cExCNmZrcVpzMTM1TFJrTTFyR2ZOL1VSTm5MR05pZEoyM1VUcC9ndDVvbmVS?= =?utf-8?B?Ylo5Y0pjTFJ0U1VuRG15TG8vMzZqZlJCQ0JOTSs3OWNpcXBqV3RyNGV2Z2hI?= =?utf-8?B?ZysrVGtwYW9QaXp1RFhmaUcvcjRYMFRpQnFlWXVuR3Z3U3NsTXByZkVTMHdp?= =?utf-8?B?c3FlQ1hHUWtBVURDK0xsY1dnK2ZzOFlKbW1rcFEwcnZ2R1AvTm1ya3ozbHVL?= =?utf-8?B?cmtzUzNqQm9FMGhvL1Yyc3ZNL2tNelF1clR3anN5QWVNTnJwZFdqWEF2RCt1?= =?utf-8?Q?FUgi/zjm0A0Ds/YzOxN/NLyBRR1PkKJHcL/MvCI?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4930.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9471c79e-6327-41b0-7f57-08d967603602 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Aug 2021 00:35:16.8657 (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: 7Ml/GJbPMD/XZMg0vT52Lg8JBKesrmeyHnJEAk+Gjm3g+3L6pb/LMlIbFcpjT3Sn8voOQXLVhhEFkZaGRDGL4A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR1101MB2222 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Q2FuIHlvdSBkZXNjcmliZSBob3cgTElOVVhCT09UIHBheWxvYWQgaXMgc3VwcG9ydGVkIGluIHRo ZSBjb21taXQgbWVzc2FnZT8NCk9uZSBsaW5lIGNvbW1pdCBtZXNzYWdlIGlzIHRvbyBzaW1wbGUg Zm9yIHN1Y2ggYSBiaWcgZmVhdHVyZfCfmIoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiBGcm9tOiBDaGVuZy1DaGllaCBIdWFuZyA8Y2hlbmdjaGllaEBnb29nbGUuY29tPg0KPiBT ZW50OiBNb25kYXksIEF1Z3VzdCAyMywgMjAyMSAyOjMzIFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdy b3Vwcy5pbw0KPiBDYzogQ2hlbmctQ2hpZWggSHVhbmcgPGNoZW5nY2hpZWhAZ29vZ2xlLmNvbT47 IFNjaGFlZmVyLCBEYW5pZWwgPGRhbmllbC5zY2hhZWZlckBocGUuY29tPjsgVHJhbW1lbGwgSHVk c29uDQo+IDxodWRzb25AdHJtbS5uZXQ+OyBNYSwgTWF1cmljZSA8bWF1cmljZS5tYUBpbnRlbC5j b20+OyBEb25nLCBHdW8gPGd1by5kb25nQGludGVsLmNvbT47IFlvdSwgQmVuamFtaW4NCj4gPGJl bmphbWluLnlvdUBpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPg0KPiBTdWJq ZWN0OiBbUEFUQ0ggdjMgMS80XSBVZWZpUGF5bG9hZFBrZzogQWRkIExJTlVYQk9PVCBwYXlsb2Fk IHRhcmdldA0KPiANCj4gSW5pdGlhbCBjb21taXQgdG8gc3VwcG9ydCBsaW51eGJvb3QgcGF5bG9h ZC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IENoZW5nLUNoaWVoIEh1YW5nIDxjaGVuZ2NoaWVoQGdv b2dsZS5jb20+DQo+IENjOiBDaGVuZy1DaGllaCBIdWFuZyA8Y2hlbmdjaGllaEBnb29nbGUuY29t Pg0KPiBDYzogRGFuaWVsIFNjaGFlZmVyIDxkYW5pZWwuc2NoYWVmZXJAaHBlLmNvbT4NCj4gQ2M6 IFRyYW1tZWxsIEh1ZHNvbiA8aHVkc29uQHRybW0ubmV0Pg0KPiBDYzogTWF1cmljZSBNYSA8bWF1 cmljZS5tYUBpbnRlbC5jb20+DQo+IENjOiBHdW8gRG9uZyA8Z3VvLmRvbmdAaW50ZWwuY29tPg0K PiBDYzogQmVuamFtaW4gWW91IDxiZW5qYW1pbi55b3VAaW50ZWwuY29tPg0KPiBDYzogUmF5IE5p IDxyYXkubmlAaW50ZWwuY29tPg0KPiAtLS0NCj4gIFVlZmlQYXlsb2FkUGtnL1VlZmlQYXlsb2Fk UGtnLmRzYyAgICAgICAgICAgICB8ICAxNiArLQ0KPiAgLi4uL0xpYnJhcnkvTGJQYXJzZUxpYi9M YlBhcnNlTGliLmluZiAgICAgICAgIHwgIDM5ICsrKysNCj4gIFVlZmlQYXlsb2FkUGtnL0xpYnJh cnkvTGJQYXJzZUxpYi9MaW51eGJvb3QuaCB8ICA0NyArKysrKw0KPiAgLi4uL0xpYnJhcnkvTGJQ YXJzZUxpYi9MYlBhcnNlTGliLmMgICAgICAgICAgIHwgMTg3ICsrKysrKysrKysrKysrKysrKw0K PiAgLi4uL1BjaUhvc3RCcmlkZ2VMaWIvUGNpSG9zdEJyaWRnZVN1cHBvcnQuYyAgIHwgICA2ICst DQo+ICA1IGZpbGVzIGNoYW5nZWQsIDI4OCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQ0K PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFVlZmlQYXlsb2FkUGtnL0xpYnJhcnkvTGJQYXJzZUxpYi9M YlBhcnNlTGliLmluZg0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFVlZmlQYXlsb2FkUGtnL0xpYnJh cnkvTGJQYXJzZUxpYi9MaW51eGJvb3QuaA0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IFVlZmlQYXls b2FkUGtnL0xpYnJhcnkvTGJQYXJzZUxpYi9MYlBhcnNlTGliLmMNCj4gDQo+IGRpZmYgLS1naXQg YS9VZWZpUGF5bG9hZFBrZy9VZWZpUGF5bG9hZFBrZy5kc2MgYi9VZWZpUGF5bG9hZFBrZy9VZWZp UGF5bG9hZFBrZy5kc2MNCj4gaW5kZXggYmNlZGYxYzc0NmI0Li41NDU3NmJhNDg1YjcgMTAwNjQ0 DQo+IC0tLSBhL1VlZmlQYXlsb2FkUGtnL1VlZmlQYXlsb2FkUGtnLmRzYw0KPiArKysgYi9VZWZp UGF5bG9hZFBrZy9VZWZpUGF5bG9hZFBrZy5kc2MNCj4gQEAgLTMzLDYgKzMzLDcgQEAgW0RlZmlu ZXNdDQo+ICAgICMNCj4gICAgIyBTQkw6ICAgICAgVUVGSSBwYXlsb2FkIGZvciBTbGltIEJvb3Rs b2FkZXINCj4gICAgIyBDT1JFQk9PVDogVUVGSSBwYXlsb2FkIGZvciBjb3JlYm9vdA0KPiArICAj IExJTlVYQk9PVDogVUVGSSBwYXlsb2FkIGZvciBsaW51eGJvb3QNCj4gICAgIw0KPiAgICBERUZJ TkUgICBCT09UTE9BREVSID0gU0JMDQo+IA0KPiBAQCAtOTMsNiArOTQsOSBAQCBbRGVmaW5lc10N Cj4gDQo+ICBbQnVpbGRPcHRpb25zXQ0KPiAgICAqXypfKl9DQ19GTEFHUyAgICAgICAgICAgICAg ICAgPSAtRCBESVNBQkxFX05FV19ERVBSRUNBVEVEX0lOVEVSRkFDRVMNCj4gKyFpZiAkKEJPT1RM T0FERVIpID09ICJMSU5VWEJPT1QiDQo+ICsgICpfKl8qX0NDX0ZMQUdTICAgICAgICAgICAgICAg ICA9IC1EIExJTlVYQk9PVF9QQVlMT0FEDQo+ICshZW5kaWYNCj4gICAgR0NDOipfVU5JWEdDQ18q X0NDX0ZMQUdTICAgICAgID0gLURNREVQS0dfTkRFQlVHDQo+ICAgIEdDQzpSRUxFQVNFXypfKl9D Q19GTEFHUyAgICAgICA9IC1ETURFUEtHX05ERUJVRw0KPiAgICBJTlRFTDpSRUxFQVNFXypfKl9D Q19GTEFHUyAgICAgPSAvRCBNREVQS0dfTkRFQlVHDQo+IEBAIC0yMjIsMTEgKzIyNiwxMyBAQCBb TGlicmFyeUNsYXNzZXNdDQo+ICAhZW5kaWYNCj4gICAgUGxhdGZvcm1TdXBwb3J0TGlifFVlZmlQ YXlsb2FkUGtnL0xpYnJhcnkvUGxhdGZvcm1TdXBwb3J0TGliTnVsbC9QbGF0Zm9ybVN1cHBvcnRM aWJOdWxsLmluZg0KPiAgIWlmICQoVU5JVkVSU0FMX1BBWUxPQUQpID09IEZBTFNFDQo+IC0gICFp ZiAkKEJPT1RMT0FERVIpID09ICJDT1JFQk9PVCINCj4gLSAgICBCbFBhcnNlTGlifFVlZmlQYXls b2FkUGtnL0xpYnJhcnkvQ2JQYXJzZUxpYi9DYlBhcnNlTGliLmluZg0KPiAtICAhZWxzZQ0KPiAt ICAgIEJsUGFyc2VMaWJ8VWVmaVBheWxvYWRQa2cvTGlicmFyeS9TYmxQYXJzZUxpYi9TYmxQYXJz ZUxpYi5pbmYNCj4gLSAgIWVuZGlmDQo+ICsgIWlmICQoQk9PVExPQURFUikgPT0gIkNPUkVCT09U Ig0KPiArICAgQmxQYXJzZUxpYnxVZWZpUGF5bG9hZFBrZy9MaWJyYXJ5L0NiUGFyc2VMaWIvQ2JQ YXJzZUxpYi5pbmYNCj4gKyAhZWxzZWlmICQoQk9PVExPQURFUikgPT0gIkxJTlVYQk9PVCINCj4g KyAgIEJsUGFyc2VMaWJ8VWVmaVBheWxvYWRQa2cvTGlicmFyeS9MYlBhcnNlTGliL0xiUGFyc2VM aWIuaW5mDQo+ICsgIWVsc2UNCj4gKyAgIEJsUGFyc2VMaWJ8VWVmaVBheWxvYWRQa2cvTGlicmFy eS9TYmxQYXJzZUxpYi9TYmxQYXJzZUxpYi5pbmYNCj4gKyAhZW5kaWYNCj4gICFlbmRpZg0KPiAN Cj4gICAgRGVidWdMaWJ8TWRlUGtnL0xpYnJhcnkvQmFzZURlYnVnTGliU2VyaWFsUG9ydC9CYXNl RGVidWdMaWJTZXJpYWxQb3J0LmluZg0KPiBkaWZmIC0tZ2l0IGEvVWVmaVBheWxvYWRQa2cvTGli cmFyeS9MYlBhcnNlTGliL0xiUGFyc2VMaWIuaW5mIGIvVWVmaVBheWxvYWRQa2cvTGlicmFyeS9M YlBhcnNlTGliL0xiUGFyc2VMaWIuaW5mDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4 IDAwMDAwMDAwMDAwMC4uZDc1YmE4ZGI4Y2YzDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvVWVm aVBheWxvYWRQa2cvTGlicmFyeS9MYlBhcnNlTGliL0xiUGFyc2VMaWIuaW5mDQo+IEBAIC0wLDAg KzEsMzkgQEANCj4gKyMjIEBmaWxlDQo+ICsjICBMaW51eGJvb3QgVGFibGUgUGFyc2UgTGlicmFy eS4NCj4gKyMNCj4gKyMgIENvcHlyaWdodCAoYykgMjAyMSwgdGhlIHUtcm9vdCBBdXRob3JzLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gKyMgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQo+ICsjDQo+ICsjIw0KPiArDQo+ICtbRGVmaW5lc10NCj4gKyAg SU5GX1ZFUlNJT04gICAgICAgICAgICAgICAgICAgID0gMHgwMDAxMDAwNQ0KPiArICBCQVNFX05B TUUgICAgICAgICAgICAgICAgICAgICAgPSBMYlBhcnNlTGliDQo+ICsgIEZJTEVfR1VJRCAgICAg ICAgICAgICAgICAgICAgICA9IERCQTE1RTFFLTRDMTYtNDdERi05M0MwLUFCNTg4OEVEMTRDMw0K PiArICBNT0RVTEVfVFlQRSAgICAgICAgICAgICAgICAgICAgPSBCQVNFDQo+ICsgIFZFUlNJT05f U1RSSU5HICAgICAgICAgICAgICAgICA9IDEuMA0KPiArICBMSUJSQVJZX0NMQVNTICAgICAgICAg ICAgICAgICAgPSBCbFBhcnNlTGliDQo+ICsNCj4gKyMNCj4gKyMgVGhlIGZvbGxvd2luZyBpbmZv cm1hdGlvbiBpcyBmb3IgcmVmZXJlbmNlIG9ubHkgYW5kIG5vdCByZXF1aXJlZCBieSB0aGUgYnVp bGQgdG9vbHMuDQo+ICsjDQo+ICsjICBWQUxJRF9BUkNISVRFQ1RVUkVTICAgICAgICAgICA9IElB MzIgWDY0DQo+ICsjDQo+ICsNCj4gK1tTb3VyY2VzXQ0KPiArICBMYlBhcnNlTGliLmMNCj4gKw0K PiArW1BhY2thZ2VzXQ0KPiArICBNZGVQa2cvTWRlUGtnLmRlYw0KPiArICBNZGVNb2R1bGVQa2cv TWRlTW9kdWxlUGtnLmRlYw0KPiArICBVZWZpUGF5bG9hZFBrZy9VZWZpUGF5bG9hZFBrZy5kZWMN Cj4gKw0KPiArW0xpYnJhcnlDbGFzc2VzXQ0KPiArICBCYXNlTGliDQo+ICsgIEJhc2VNZW1vcnlM aWINCj4gKyAgSW9MaWINCj4gKyAgRGVidWdMaWINCj4gKyAgUGNkTGliDQo+ICsNCj4gK1tQY2Rd DQo+ICsgIGdVZWZpUGF5bG9hZFBrZ1Rva2VuU3BhY2VHdWlkLlBjZFBheWxvYWRGZE1lbUJhc2UN Cj4gZGlmZiAtLWdpdCBhL1VlZmlQYXlsb2FkUGtnL0xpYnJhcnkvTGJQYXJzZUxpYi9MaW51eGJv b3QuaCBiL1VlZmlQYXlsb2FkUGtnL0xpYnJhcnkvTGJQYXJzZUxpYi9MaW51eGJvb3QuaA0KPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMDAuLmIzYjdlNzBhN2NjYg0K PiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL1VlZmlQYXlsb2FkUGtnL0xpYnJhcnkvTGJQYXJzZUxp Yi9MaW51eGJvb3QuaA0KPiBAQCAtMCwwICsxLDQ3IEBADQo+ICsvKiogQGZpbGUNCj4gKyAgTGlu dXhCb290IFBFSSBtb2R1bGUgaW5jbHVkZSBmaWxlLg0KPiArKiovDQo+ICsjaWZuZGVmIF9fTElO VVhCT09UX1BFSV9IX0lOQ0xVREVEX18NCj4gKyNkZWZpbmUgX19MSU5VWEJPT1RfUEVJX0hfSU5D TFVERURfXw0KPiArDQo+ICsjaWYgZGVmaW5lZChfTVNDX1ZFUikNCj4gKyNwcmFnbWEgd2Fybmlu ZyhkaXNhYmxlIDogNDIwMCkNCj4gKyNlbmRpZg0KPiArDQo+ICsjcHJhZ21hIHBhY2soMSkNCj4g K3R5cGVkZWYgc3RydWN0IFNlcmlhbFBvcnRDb25maWdTdHJ1Y3Qgew0KPiArICBVSU5UMzIgVHlw ZTsNCj4gKyAgVUlOVDMyIEJhc2VBZGRyOw0KPiArICBVSU5UMzIgQmF1ZDsNCj4gKyAgVUlOVDMy IFJlZ1dpZHRoOw0KPiArICBVSU5UMzIgSW5wdXRIZXJ0ejsNCj4gKyAgVUlOVDMyIFVhcnRQY2lB ZGRyOw0KPiArfSBTZXJpYWxQb3J0Q29uZmlnOw0KPiArDQo+ICt0eXBlZGVmIHN0cnVjdCBNZW1v cnlNYXBFbnRyeVN0cnVjdCB7DQo+ICsgIFVJTlQ2NCBTdGFydDsNCj4gKyAgVUlOVDY0IEVuZDsN Cj4gKyAgVUlOVDMyIFR5cGU7DQo+ICt9IE1lbW9yeU1hcEVudHJ5Ow0KPiArDQo+ICt0eXBlZGVm IHN0cnVjdCBVZWZpUGF5bG9hZENvbmZpZ1N0cnVjdCB7DQo+ICsgIFVJTlQ2NCBWZXJzaW9uOw0K PiArICBVSU5UNjQgQWNwaUJhc2U7DQo+ICsgIFVJTlQ2NCBBY3BpU2l6ZTsNCj4gKyAgVUlOVDY0 IFNtYmlvc0Jhc2U7DQo+ICsgIFVJTlQ2NCBTbWJpb3NTaXplOw0KPiArICBTZXJpYWxQb3J0Q29u ZmlnIFNlcmlhbENvbmZpZzsNCj4gKyAgVUlOVDMyIE51bU1lbW9yeU1hcEVudHJpZXM7DQo+ICsg IE1lbW9yeU1hcEVudHJ5IE1lbW9yeU1hcEVudHJpZXNbMF07DQo+ICt9IFVlZmlQYXlsb2FkQ29u ZmlnOw0KPiArI3ByYWdtYSBwYWNrKCkNCj4gKw0KPiArI2RlZmluZSBVRUZJX1BBWUxPQURfQ09O RklHX1ZFUlNJT04gMQ0KPiArDQo+ICsjZGVmaW5lIExJTlVYQk9PVF9NRU1fUkFNIDENCj4gKyNk ZWZpbmUgTElOVVhCT09UX01FTV9ERUZBVUxUIDINCj4gKyNkZWZpbmUgTElOVVhCT09UX01FTV9B Q1BJIDMNCj4gKyNkZWZpbmUgTElOVVhCT09UX01FTV9OVlMgNA0KPiArI2RlZmluZSBMSU5VWEJP T1RfTUVNX1JFU0VSVkVEIDUNCj4gKw0KPiArI2VuZGlmICAvLyBfX0xJTlVYQk9PVF9QRUlfSF9J TkNMVURFRF9fDQo+IGRpZmYgLS1naXQgYS9VZWZpUGF5bG9hZFBrZy9MaWJyYXJ5L0xiUGFyc2VM aWIvTGJQYXJzZUxpYi5jIGIvVWVmaVBheWxvYWRQa2cvTGlicmFyeS9MYlBhcnNlTGliL0xiUGFy c2VMaWIuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAwMDAuLjQ4 ZDE3NGRmYzA3OA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL1VlZmlQYXlsb2FkUGtnL0xpYnJh cnkvTGJQYXJzZUxpYi9MYlBhcnNlTGliLmMNCj4gQEAgLTAsMCArMSwxODcgQEANCj4gKy8qKiBA ZmlsZQ0KPiArICBUaGlzIGxpYnJhcnkgd2lsbCBwYXJzZSB0aGUgbGludXhib290IHRhYmxlIGlu IG1lbW9yeSBhbmQgZXh0cmFjdCB0aG9zZSByZXF1aXJlZA0KPiArICBpbmZvcm1hdGlvbi4NCj4g Kw0KPiArICBDb3B5cmlnaHQgKGMpIDIwMjEsIHRoZSB1LXJvb3QgQXV0aG9ycy4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1 c2UtUGF0ZW50DQo+ICsNCj4gKyoqLw0KPiArDQo+ICsNCj4gKyNpbmNsdWRlIDxJbmR1c3RyeVN0 YW5kYXJkL0FjcGkuaD4NCj4gKyNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL1NtQmlvcy5oPg0K PiArI2luY2x1ZGUgPExpYnJhcnkvQmFzZUxpYi5oPg0KPiArI2luY2x1ZGUgPExpYnJhcnkvQmFz ZU1lbW9yeUxpYi5oPg0KPiArI2luY2x1ZGUgPExpYnJhcnkvQmxQYXJzZUxpYi5oPg0KPiArI2lu Y2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCj4gKyNpbmNsdWRlIDxMaWJyYXJ5L0lvTGliLmg+ DQo+ICsjaW5jbHVkZSA8TGlicmFyeS9QY2RMaWIuaD4NCj4gKyNpbmNsdWRlIDxMaW51eGJvb3Qu aD4NCj4gKyNpbmNsdWRlIDxVZWZpL1VlZmlCYXNlVHlwZS5oPg0KPiArDQo+ICsvLyBSZXRyaWV2 ZSBVZWZpUGF5bG9hZENvbmZpZyBmcm9tIExpbnV4Ym9vdCdzIHVlZmlib290DQo+ICtVZWZpUGF5 bG9hZENvbmZpZyoNCj4gK0dldFVlZmlQYXlMb2FkQ29uZmlnKCkNCj4gK3sNCj4gKyAgVWVmaVBh eWxvYWRDb25maWcgKkNvbmZpZzsNCj4gKyAgQ29uZmlnID0gKFVlZmlQYXlsb2FkQ29uZmlnKiko VUlOVE4pKFBjZEdldDMyKFBjZFBheWxvYWRGZE1lbUJhc2UpIC0gU0laRV82NEtCKTsNCj4gKyAg aWYgKENvbmZpZy0+VmVyc2lvbiAhPSBVRUZJX1BBWUxPQURfQ09ORklHX1ZFUlNJT04pIHsNCj4g KyAgICBERUJVRygoREVCVUdfRVJST1IsICJFeHBlY3QgcGF5bG9hZCBDb25maWcgdmVyc2lvbjog JWQsIGJ1dCBnZXQgJWRcbiIsDQo+ICsgICAgICAgICAgIFVFRklfUEFZTE9BRF9DT05GSUdfVkVS U0lPTiwgQ29uZmlnLT5WZXJzaW9uKSk7DQo+ICsgICAgQ3B1RGVhZExvb3AgKCk7DQo+ICsgIH0N Cj4gKyAgcmV0dXJuIENvbmZpZzsNCj4gK30NCj4gKw0KPiArLy8gQWxpZ24gdGhlIGFkZHJlc3Mg YW5kIGFkZCBtZW1vcnkgcmFuZyB0byBNZW1JbmZvQ2FsbGJhY2sNCj4gK1ZPSUQNCj4gK0FkZE1l bW9yeVJhbmdlICgNCj4gKyAgSU4gQkxfTUVNX0lORk9fQ0FMTEJBQ0sgTWVtSW5mb0NhbGxiYWNr LA0KPiArICBJTiBVSU5UTiBzdGFydCwNCj4gKyAgSU4gVUlOVE4gZW5kLA0KPiArICBJTiBpbnQg dHlwZQ0KPiArICApIHsNCj4gKyAgTUVNUk9ZX01BUF9FTlRSWSBNZW1vcnlNYXA7DQo+ICsgIFVJ TlROIEFsaWduZWRTdGFydDsNCj4gKyAgVUlOVE4gQWxpZ25lZEVuZDsNCj4gKyAgQWxpZ25lZFN0 YXJ0ID0gQUxJR05fVkFMVUUoc3RhcnQsIFNJWkVfNEtCKTsNCj4gKyAgQWxpZ25lZEVuZCA9IEFM SUdOX1ZBTFVFKGVuZCwgU0laRV80S0IpOw0KPiArICAvLyBDb25zZXJ2YXRpdmUgYWRqdXN0bWVu dCBvbiBNZW1vcnkgbWFwLiBUaGlzIHNob3VsZCBoYXBwZW4gd2hlbiBib290aW5nIGZyb20NCj4g KyAgLy8gbm9uIFVFRkkgYmlvcyBhbmQgaXQgbWF5IHJlcG9ydCBhIG1lbW9yeSByZWdpb24gbGVz cyB0aGFuIDRLQi4NCj4gKyAgaWYgKEFsaWduZWRTdGFydCA+IHN0YXJ0ICYmIHR5cGUgIT0gTElO VVhCT09UX01FTV9SQU0pIHsNCj4gKyAgICBBbGlnbmVkU3RhcnQgLT0gU0laRV80S0I7DQo+ICsg IH0NCj4gKyAgaWYgKEFsaWduZWRFbmQgPiBlbmQgKyAxICYmIHR5cGUgPT0gTElOVVhCT09UX01F TV9SQU0pIHsNCj4gKyAgICBBbGlnbmVkRW5kIC09IFNJWkVfNEtCOw0KPiArICB9DQo+ICsgIE1l bW9yeU1hcC5CYXNlID0gQWxpZ25lZFN0YXJ0Ow0KPiArICBNZW1vcnlNYXAuU2l6ZSA9IEFsaWdu ZWRFbmQgLSBBbGlnbmVkU3RhcnQ7DQo+ICsgIE1lbW9yeU1hcC5UeXBlID0gdHlwZTsNCj4gKyAg TWVtb3J5TWFwLkZsYWcgPSAwOw0KPiArICBNZW1JbmZvQ2FsbGJhY2soJk1lbW9yeU1hcCwgTlVM TCk7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICBBY3F1aXJlIHRoZSBtZW1vcnkgaW5mb3JtYXRp b24gZnJvbSB0aGUgbGludXhib290IHRhYmxlIGluIG1lbW9yeS4NCj4gKw0KPiArICBAcGFyYW0g IE1lbUluZm9DYWxsYmFjayAgICAgVGhlIGNhbGxiYWNrIHJvdXRpbmUNCj4gKyAgQHBhcmFtICBQ YXJhbXMgICAgICAgICAgICAgIFBvaW50ZXIgdG8gdGhlIGNhbGxiYWNrIHJvdXRpbmUgcGFyYW1l dGVyDQo+ICsNCj4gKyAgQHJldHZhbCBSRVRVUk5fU1VDQ0VTUyAgICAgU3VjY2Vzc2Z1bGx5IGZp bmQgb3V0IHRoZSBtZW1vcnkgaW5mb3JtYXRpb24uDQo+ICsgIEByZXR2YWwgUkVUVVJOX05PVF9G T1VORCAgIEZhaWxlZCB0byBmaW5kIHRoZSBtZW1vcnkgaW5mb3JtYXRpb24uDQo+ICsNCj4gKyoq Lw0KPiArUkVUVVJOX1NUQVRVUw0KPiArRUZJQVBJDQo+ICtQYXJzZU1lbW9yeUluZm8gKA0KPiAr ICBJTiBCTF9NRU1fSU5GT19DQUxMQkFDSyBNZW1JbmZvQ2FsbGJhY2ssDQo+ICsgIElOIFZPSUQq IFBhcmFtcw0KPiArICApIHsNCj4gKyAgVWVmaVBheWxvYWRDb25maWcgKkNvbmZpZzsNCj4gKyAg TWVtb3J5TWFwRW50cnkqIGVudHJ5Ow0KPiArICBpbnQgSW5kZXg7DQo+ICsNCj4gKyAgQ29uZmln ID0gR2V0VWVmaVBheUxvYWRDb25maWcoKTsNCj4gKw0KPiArICBERUJVRygoREVCVUdfSU5GTywg Ik1lbW9yeU1hcCAjZW50cmllczogJWRcbiIsIENvbmZpZy0+TnVtTWVtb3J5TWFwRW50cmllcykp Ow0KPiArDQo+ICsgIGVudHJ5ID0gJkNvbmZpZy0+TWVtb3J5TWFwRW50cmllc1swXTsNCj4gKyAg Zm9yIChJbmRleCA9IDA7IEluZGV4IDwgQ29uZmlnLT5OdW1NZW1vcnlNYXBFbnRyaWVzOyBJbmRl eCsrKSB7DQo+ICsgICAgREVCVUcoKERFQlVHX0lORk8sICJTdGFydDogMHglbHggRW5kOiAweCVs eCBUeXBlOiVkXG4iLCBlbnRyeS0+U3RhcnQsDQo+ICsgICAgICAgICAgIGVudHJ5LT5FbmQsIGVu dHJ5LT5UeXBlKSk7DQo+ICsgICAgQWRkTWVtb3J5UmFuZ2UoTWVtSW5mb0NhbGxiYWNrLCBlbnRy eS0+U3RhcnQsIGVudHJ5LT5FbmQsIGVudHJ5LT5UeXBlKTsNCj4gKyAgICBlbnRyeSsrOw0KPiAr ICB9DQo+ICsgIHJldHVybiBSRVRVUk5fU1VDQ0VTUzsNCj4gK30NCj4gKw0KPiArLyoqDQo+ICsg IEFjcXVpcmUgYWNwaSB0YWJsZSBhbmQgc21iaW9zIHRhYmxlIGZyb20gbGludXhib290DQo+ICsN Cj4gKyAgQHBhcmFtICBTeXN0ZW1UYWJsZUluZm8gICAgICAgICAgUG9pbnRlciB0byB0aGUgc3lz dGVtIHRhYmxlIGluZm8NCj4gKw0KPiArICBAcmV0dmFsIFJFVFVSTl9TVUNDRVNTICAgICAgICAg ICAgU3VjY2Vzc2Z1bGx5IGZpbmQgb3V0IHRoZSB0YWJsZXMuDQo+ICsgIEByZXR2YWwgUkVUVVJO X05PVF9GT1VORCAgICAgICAgICBGYWlsZWQgdG8gZmluZCB0aGUgdGFibGVzLg0KPiArDQo+ICsq Ki8NCj4gK1JFVFVSTl9TVEFUVVMNCj4gK0VGSUFQSQ0KPiArUGFyc2VTeXN0ZW1UYWJsZSAoDQo+ ICsgIE9VVCBTWVNURU1fVEFCTEVfSU5GTyogU3lzdGVtVGFibGVJbmZvDQo+ICsgICkgew0KPiAr ICBVZWZpUGF5bG9hZENvbmZpZyAqQ29uZmlnOw0KPiArDQo+ICsgIENvbmZpZyA9IEdldFVlZmlQ YXlMb2FkQ29uZmlnKCk7DQo+ICsgIFN5c3RlbVRhYmxlSW5mby0+QWNwaVRhYmxlQmFzZSA9IENv bmZpZy0+QWNwaUJhc2U7DQo+ICsgIFN5c3RlbVRhYmxlSW5mby0+QWNwaVRhYmxlU2l6ZSA9IENv bmZpZy0+QWNwaVNpemU7DQo+ICsNCj4gKyAgU3lzdGVtVGFibGVJbmZvLT5TbWJpb3NUYWJsZUJh c2UgPSBDb25maWctPlNtYmlvc0Jhc2U7DQo+ICsgIFN5c3RlbVRhYmxlSW5mby0+U21iaW9zVGFi bGVTaXplID0gQ29uZmlnLT5TbWJpb3NTaXplOw0KPiArDQo+ICsgIHJldHVybiBSRVRVUk5fU1VD Q0VTUzsNCj4gK30NCj4gKw0KPiArLyoqDQo+ICsgIEZpbmQgdGhlIHNlcmlhbCBwb3J0IGluZm9y bWF0aW9uDQo+ICsNCj4gKyAgQHBhcmFtICBTRVJJQUxfUE9SVF9JTkZPICAgUG9pbnRlciB0byBz ZXJpYWwgcG9ydCBpbmZvIHN0cnVjdHVyZQ0KPiArDQo+ICsgIEByZXR2YWwgUkVUVVJOX1NVQ0NF U1MgICAgIFN1Y2Nlc3NmdWxseSBmaW5kIHRoZSBzZXJpYWwgcG9ydCBpbmZvcm1hdGlvbi4NCj4g KyAgQHJldHZhbCBSRVRVUk5fTk9UX0ZPVU5EICAgRmFpbGVkIHRvIGZpbmQgdGhlIHNlcmlhbCBw b3J0IGluZm9ybWF0aW9uIC4NCj4gKw0KPiArKiovDQo+ICtSRVRVUk5fU1RBVFVTDQo+ICtFRklB UEkNCj4gK1BhcnNlU2VyaWFsSW5mbyAoDQo+ICsgIE9VVCBTRVJJQUxfUE9SVF9JTkZPKiBTZXJp YWxQb3J0SW5mbw0KPiArICApIHsNCj4gKyAgVWVmaVBheWxvYWRDb25maWcgKkNvbmZpZzsNCj4g KyAgQ29uZmlnID0gR2V0VWVmaVBheUxvYWRDb25maWcoKTsNCj4gKw0KPiArICBTZXJpYWxQb3J0 SW5mby0+QmFzZUFkZHIgPSBDb25maWctPlNlcmlhbENvbmZpZy5CYXNlQWRkcjsNCj4gKyAgU2Vy aWFsUG9ydEluZm8tPlJlZ1dpZHRoID0gQ29uZmlnLT5TZXJpYWxDb25maWcuUmVnV2lkdGg7DQo+ ICsgIFNlcmlhbFBvcnRJbmZvLT5UeXBlID0gQ29uZmlnLT5TZXJpYWxDb25maWcuVHlwZTsNCj4g KyAgU2VyaWFsUG9ydEluZm8tPkJhdWQgPSBDb25maWctPlNlcmlhbENvbmZpZy5CYXVkOw0KPiAr ICBTZXJpYWxQb3J0SW5mby0+SW5wdXRIZXJ0eiA9IENvbmZpZy0+U2VyaWFsQ29uZmlnLklucHV0 SGVydHo7DQo+ICsgIFNlcmlhbFBvcnRJbmZvLT5VYXJ0UGNpQWRkciA9IENvbmZpZy0+U2VyaWFs Q29uZmlnLlVhcnRQY2lBZGRyOw0KPiArDQo+ICsgIHJldHVybiBSRVRVUk5fU1VDQ0VTUzsNCj4g K30NCj4gKw0KPiArLyoqDQo+ICsgIEZpbmQgdGhlIHZpZGVvIGZyYW1lIGJ1ZmZlciBpbmZvcm1h dGlvbg0KPiArDQo+ICsgIEBwYXJhbSAgR2Z4SW5mbyAgICAgICAgICAgICBQb2ludGVyIHRvIHRo ZSBFRklfUEVJX0dSQVBISUNTX0lORk9fSE9CIHN0cnVjdHVyZQ0KPiArDQo+ICsgIEByZXR2YWwg UkVUVVJOX1NVQ0NFU1MgICAgIFN1Y2Nlc3NmdWxseSBmaW5kIHRoZSB2aWRlbyBmcmFtZSBidWZm ZXINCj4gK2luZm9ybWF0aW9uLg0KPiArICBAcmV0dmFsIFJFVFVSTl9OT1RfRk9VTkQgICBGYWls ZWQgdG8gZmluZCB0aGUgdmlkZW8gZnJhbWUgYnVmZmVyIGluZm9ybWF0aW9uIC4NCj4gKw0KPiAr KiovDQo+ICtSRVRVUk5fU1RBVFVTDQo+ICtFRklBUEkNCj4gK1BhcnNlR2Z4SW5mbyAoDQo+ICsg IE9VVCBFRklfUEVJX0dSQVBISUNTX0lORk9fSE9CKiBHZnhJbmZvDQo+ICsgICkgew0KPiArICAv LyBOb3Qgc3VwcG9ydGVkDQo+ICsgIHJldHVybiBSRVRVUk5fTk9UX0ZPVU5EOw0KPiArfQ0KPiAr DQo+ICsvKioNCj4gKyAgRmluZCB0aGUgdmlkZW8gZnJhbWUgYnVmZmVyIGRldmljZSBpbmZvcm1h dGlvbg0KPiArDQo+ICsgIEBwYXJhbSAgR2Z4RGV2aWNlSW5mbyAgICAgIFBvaW50ZXIgdG8gdGhl IEVGSV9QRUlfR1JBUEhJQ1NfREVWSUNFX0lORk9fSE9CDQo+ICtzdHJ1Y3R1cmUNCj4gKw0KPiAr ICBAcmV0dmFsIFJFVFVSTl9TVUNDRVNTICAgICBTdWNjZXNzZnVsbHkgZmluZCB0aGUgdmlkZW8g ZnJhbWUgYnVmZmVyDQo+ICtpbmZvcm1hdGlvbi4NCj4gKyAgQHJldHZhbCBSRVRVUk5fTk9UX0ZP VU5EICAgRmFpbGVkIHRvIGZpbmQgdGhlIHZpZGVvIGZyYW1lIGJ1ZmZlciBpbmZvcm1hdGlvbi4N Cj4gKw0KPiArKiovDQo+ICtSRVRVUk5fU1RBVFVTDQo+ICtFRklBUEkNCj4gK1BhcnNlR2Z4RGV2 aWNlSW5mbyAoDQo+ICsgIE9VVCBFRklfUEVJX0dSQVBISUNTX0RFVklDRV9JTkZPX0hPQiogR2Z4 RGV2aWNlSW5mbw0KPiArICApIHsNCj4gKyAgcmV0dXJuIFJFVFVSTl9OT1RfRk9VTkQ7DQo+ICt9 DQo+IGRpZmYgLS1naXQgYS9VZWZpUGF5bG9hZFBrZy9MaWJyYXJ5L1BjaUhvc3RCcmlkZ2VMaWIv UGNpSG9zdEJyaWRnZVN1cHBvcnQuYw0KPiBiL1VlZmlQYXlsb2FkUGtnL0xpYnJhcnkvUGNpSG9z dEJyaWRnZUxpYi9QY2lIb3N0QnJpZGdlU3VwcG9ydC5jDQo+IGluZGV4IGIwMjY4ZjA1MDY5Yy4u YTRmNzE0Zjc2NWVhIDEwMDY0NA0KPiAtLS0gYS9VZWZpUGF5bG9hZFBrZy9MaWJyYXJ5L1BjaUhv c3RCcmlkZ2VMaWIvUGNpSG9zdEJyaWRnZVN1cHBvcnQuYw0KPiArKysgYi9VZWZpUGF5bG9hZFBr Zy9MaWJyYXJ5L1BjaUhvc3RCcmlkZ2VMaWIvUGNpSG9zdEJyaWRnZVN1cHBvcnQuYw0KPiBAQCAt NDAsOCArNDAsOSBAQCBBZGp1c3RSb290QnJpZGdlUmVzb3VyY2UgKA0KPiAgICBJTiAgUENJX1JP T1RfQlJJREdFX0FQRVJUVVJFICpQTWVtQWJvdmU0Rw0KPiAgKQ0KPiAgew0KPiArI2lmbmRlZiBM SU5VWEJPT1RfUEFZTE9BRA0KPiAgICBVSU5UNjQgIE1hc2s7DQo+IC0NCj4gKyNlbmRpZg0KPiAg ICAvLw0KPiAgICAvLyBGb3Igbm93IHRyeSB0byBkb3duZ3JhZGUgZXZlcnl0aGluZyBpbnRvIE1F TTMyIHNpbmNlDQo+ICAgIC8vIC0gY29yZWJvb3QgZG9lcyBub3QgYXNzaWduIHJlc291cmNlIGFi b3ZlIDRHQg0KPiBAQCAtODAsNyArODEsNyBAQCBBZGp1c3RSb290QnJpZGdlUmVzb3VyY2UgKA0K PiAgICAgIFBNZW1BYm92ZTRHLT5CYXNlICA9IE1BWF9VSU5UNjQ7DQo+ICAgICAgUE1lbUFib3Zl NEctPkxpbWl0ID0gMDsNCj4gICAgfQ0KPiAtDQo+ICsjaWZuZGVmIExJTlVYQk9PVF9QQVlMT0FE DQo+ICAgIC8vDQo+ICAgIC8vIEFsaWduIElPICByZXNvdXJjZSBhdCA0SyAgYm91bmRhcnkNCj4g ICAgLy8NCj4gQEAgLTk4LDYgKzk5LDcgQEAgQWRqdXN0Um9vdEJyaWRnZVJlc291cmNlICgNCj4g ICAgaWYgKE1lbS0+QmFzZSAhPSBNQVhfVUlOVDY0KSB7DQo+ICAgICAgTWVtLT5CYXNlICY9IH5N YXNrOw0KPiAgICB9DQo+ICsjZW5kaWYNCj4gIH0NCj4gDQo+ICAvKioNCj4gLS0NCj4gMi4zMy4w LnJjMi4yNTAuZ2VkNWZhNjQ3Y2QtZ29vZw0KDQo=