From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web10.33623.1628839678786947130 for ; Fri, 13 Aug 2021 00:27:59 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=ZGDFc+Ks; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: hao.a.wu@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10074"; a="279257020" X-IronPort-AV: E=Sophos;i="5.84,318,1620716400"; d="scan'208";a="279257020" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Aug 2021 00:27:58 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,318,1620716400"; d="scan'208";a="470013566" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga008.jf.intel.com with ESMTP; 13 Aug 2021 00:27:58 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Fri, 13 Aug 2021 00:27:57 -0700 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Fri, 13 Aug 2021 00:27:57 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Fri, 13 Aug 2021 00:27:57 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.103) 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; Fri, 13 Aug 2021 00:27:57 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C3IBu8p2FVyszMTecEwDzjOWDvmIL8+hPtzSw8OIfKBZNAPJmLhB8Y+TryH0aGAd0XMRhsePLJZO7Te8eKqvB26snrgmCShpFv2mdj7m3w8n1noY/6wYTeKznhzFHJTg3Iv0j2cd6OudvcupsUqjNBWuU0UmnhAs9sIc4Y4nZXL8Xy9fY+cpJoJY+h75eBFY/FyyI0NE8xKA6g11Z8wN9DE/PLnH43hoiscDSDuJjQCjhBUf+qLB0kkojxIANmJ3GmySO9a6wN1xX55r/bAfH9/juvSQifi9rv2WA0tUEUa7AzqIIwDdQ80Zp7cFf/+0tVT7f9ClIcq07Gr7GieT2A== 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=L0OJePqKeCL7B1CgqPLm7eo3Pa3OSa8utypamJua7yo=; b=J1592+w603UCSnwWLXh5oxnBu8Q2XTYeCJYlrbqb6RXsZC70rKyWNOuXjXM5Q+IqM6lJ+BMUXPs7f0f9rbx+TCKy0NjyiMH/vSwBbnjef2+MPo/KrsH91C39s7oGOGFMSXKiaR6LDB77PQuWuaCDRX3jCJrXHl0KvFTOK85CTOTc9bpsy7+K/k647AUl/G86RPv6GWcaa6drly5NBMXaA4HVCDad9IFMgetXjzdUcU73EoQhzCW3HpFMYCfnZadiBRV+LgIEMoBaffG/GyI7ZYE7iSFi4m4V6iar+uGBAjVXO4rO+Dfe+XOkb/NQYhHrkHxxzsAtdxybx9uxIl6vHw== 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=L0OJePqKeCL7B1CgqPLm7eo3Pa3OSa8utypamJua7yo=; b=ZGDFc+Ksf10yJnU1d1eWesc8bEMF7ul4PoVqRBsP/Ggh+qEON7DAVkWv1wJhbTKxtWM4gLE06m2U8NFp0sCkHLCczQGUE6eUt4MSQq3T0H9/o0a93EweSByKg5RdKAcTQkDLFQ5dwfT4fAsha5N3zP2nHM5Lf46Ovxfv5ufR/mY= Received: from BN8PR11MB3666.namprd11.prod.outlook.com (2603:10b6:408:8c::19) by BN6PR1101MB2356.namprd11.prod.outlook.com (2603:10b6:404:9c::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.15; Fri, 13 Aug 2021 07:27:55 +0000 Received: from BN8PR11MB3666.namprd11.prod.outlook.com ([fe80::1d8:daf8:84de:1666]) by BN8PR11MB3666.namprd11.prod.outlook.com ([fe80::1d8:daf8:84de:1666%3]) with mapi id 15.20.4415.019; Fri, 13 Aug 2021 07:27:55 +0000 From: "Wu, Hao A" To: =?utf-8?B?TWFydmluIEjDpHVzZXI=?= , "devel@edk2.groups.io" CC: "Kinney, Michael D" , Liming Gao , "Liu, Zhiguang" , "Wang, Jian J" , "Ni, Ray" , "Vitaly Cheptsov" Subject: Re: [PATCH] MdePkg/Base.h: Introduce various alignment-related macros Thread-Topic: [PATCH] MdePkg/Base.h: Introduce various alignment-related macros Thread-Index: AQHXjI1U27rRhBJ6gEO+unKONugkiKtxD7mA Date: Fri, 13 Aug 2021 07:27:54 +0000 Message-ID: References: <5df11a13422732b9c03c120775a2b4dd0a49182f.1628444003.git.mhaeuser@posteo.de> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: posteo.de; dkim=none (message not signed) header.d=none;posteo.de; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6d3e9d66-8f7d-4f4f-7b1b-08d95e2bde1e x-ms-traffictypediagnostic: BN6PR1101MB2356: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: K/GbzzNpH95xv4+8VfrA0ppcHKY1md9wFaPCZquiiy/aKZuyGu100AhceVQ0cL+ev6XvnCnI3K4+X7MngBY1kLMaRHyiz/jCQGv81l3JMLI9V3DenOP8oia2dZuUxSRypfEYtI3L3R09jPoCsh9cTl3V1fJ4iUmLKDKjAKTfD6GMXbWTTj1jizhh9odPqnwsctBhPIWZmy/WFZYdn53Ukg53mOyH5IN2PdcI7BtRhE3XSWmIX3GfjuPxs81g1D4JNUqnANPXqW5S6hInlV4JoR74I5wub2LYESR8j+hXFyuQD0IH/OGVVCqllvlFYET0Tzz0kPx3CcSV2C4h+DuVecGVxU5vmNurRHF/8eN3yawVDHClIyjeml9uanRrT+itgdD8ATa5OIusi7Z/H4FxaAiZg6ON9JbNpPpsh7Z95wHYfdwEFtZo+kfR3dv0fr5wn4uhca78Zj6UKGXZdy26gVfnIXVRnwaVcGVs308M5tA6n1eTbKshmWnt9n56+U8lvYTdSbO91hXy3lkjim7IRJuMPFNjq+YyjzG1FpB9pINzQtW7qhXFcdjJsvKwaCb1IgMSok/r6+ntHYUZmS5lcg0skuEcd692dfzQ8ItP1NFPQVHx+L6Yy5FiVXjEK1R4dxSf6tIE1TjunLU8BhLTES15CMYwG12mOnfwsqWP3FKNyZHZ38anzCHg4ltgQzx+UUcqZLV6r3Re9OuIvKe/qA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN8PR11MB3666.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(346002)(376002)(366004)(39860400002)(136003)(396003)(52536014)(110136005)(38100700002)(76116006)(66946007)(66446008)(66556008)(66476007)(122000001)(64756008)(71200400001)(54906003)(478600001)(316002)(2906002)(86362001)(33656002)(7696005)(4326008)(30864003)(5660300002)(8936002)(8676002)(66574015)(186003)(83380400001)(26005)(6506007)(9686003)(53546011)(38070700005)(55016002)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WVNXWUNHN0dEeXhxcXVPM2V1SDZ3MG94SERINjd0T1Y1VlU4MU9wR0FURHZD?= =?utf-8?B?WkdrTS85SmZOajdFQmNzN3lXaTJNT3RnRmpTdFRNNGMzY2tremErT2gxd3Ey?= =?utf-8?B?cy8rc1BkNXd4R2I1L0hLc0hOWTE5RlhuTDNiVWt6T1RTZU1CRUg2MXR3WWdF?= =?utf-8?B?ak9Zc0J0bkcxS01ER1BudStJbUZxQ3UzdUw5VVFveG9zTUlKejF0Tmw1Q2NJ?= =?utf-8?B?WFRWem1lTGxHVlFFVDc4cU9mcjJDNjlINXg4M0MxcXJOcFdVUDZ5aHl0d09S?= =?utf-8?B?a2pYay9oaEV3S0w4U2JrOUhRMEtiWkRocnpGc3F4Rk5TSU8zWUhXMEVnUEYy?= =?utf-8?B?Z0pia29wZTJrejBrZmd5eUlpbC9tSTJvTGZjam9uOE1oWDhLcXlUcmJNSmt4?= =?utf-8?B?bjExbnJqRi81MWFvcEVBM2RaUW5lcEVMVWI2WUJMSC9VcTBrR3IrN1Z3N3gv?= =?utf-8?B?VmNhMTNTdmp4YndUR1BuU0xOU3J5bzd5Q3N3ZEthWG9kdXVtcmd3V3BXRHlD?= =?utf-8?B?UEZwWmJWVVlGRW1MWlRRUFN6Q1ZPZDlON3ZEbmIxZ3lzaDVnQ2U1V1puRUhk?= =?utf-8?B?SXZtUTFqc0xsSVRqQWpadFN4clBYWlFDbDZBaEZLd0pmenh1UXluZTNMMjdX?= =?utf-8?B?UmFHb2lvMzdmaU82Y2txYjNsZ0MxbzlYcE9SK2I1UVkwSXkrVjRKbmtzbE83?= =?utf-8?B?WGpFOTRidUdDdU5VWnB3L0IzNDRVZzBCM3NVUld3SkpoTmRHeGpSWTk0bUZv?= =?utf-8?B?Zi9CT0tqTDdyM2p6M1B1VUl5S3I2N3hWNG5YUjdCOFhQdGd0WmR1RjhZNnRn?= =?utf-8?B?S1JSZ1lWekp5R0kybkNFM0E5UFRyWkVoUnZycXMvcWhicHplU1grQmNncVZR?= =?utf-8?B?cS9MSWVmemxsY1JhRUJCcVRXSWdvT3BSbU95bnc0TU5kZ0Z1U3JvVGlidDho?= =?utf-8?B?dDNJKytEVXNYQ09OTThuRGNuOWUxdmpKY3FvU0Vyc0ZiczExQ0NFbkc5WnJZ?= =?utf-8?B?a05Qb2xwZXE0M3ZIWFA3WWVnSm10aGJFQ00xQmZIOFJDRVdaOUMvbWdFbzVp?= =?utf-8?B?ZnpJUXdRazgvSTdNWUVvbE1iM2Z6UVhTZ1NKU005RUFRSGx6S3RCRlhSeitt?= =?utf-8?B?N2pGOXdrNitRdVFQbEt3cmNCZEpTNFRRQUFockJEcEhWNGVtZ1dJdGNZMU0z?= =?utf-8?B?LzdKSU9WUUV4R3dxREJ3UEhway90ZnNaODRmckFRYjNONWs5OXgrNVJZY242?= =?utf-8?B?VEdvMnJZdUJ6U0hzQVpIOHhoZ0hYb0xBbUtoTVd6TUUxMFNIam9EdU8wMEYy?= =?utf-8?B?V05mS2szeEpINTUxMkhjUitXR1NDQ1hWcXMya0MrdTNmeHZsbTYveG1maVVj?= =?utf-8?B?OWZ4dkE1YUFsVEhYaUxObWVTYjduR1VXOUE4WDJNeThXRVlIclRHRDZLT21R?= =?utf-8?B?SE9sdExjRUF6RXdqV2t6SGxTRUtMcUp2MFdFK3pVa0VEWHc5bDgxaVc4RVdo?= =?utf-8?B?WnQxaVRsWGlUNU5kTUh0NndTM083SnN5YW80RlQ0U1ppMjQ3cERGVk90SVF4?= =?utf-8?B?WkI5Z01UUzdWYitsWkZkVFZPVnNFaU9GSzExY00zYUlKNlF5cFhNTnZTUHJW?= =?utf-8?B?OGdLYWFha0hsQ1I0Y2N5ZE1qYWJuZDBUZCtGU20wRm1KRzZvT28rZEhFY3Bk?= =?utf-8?B?WU5QVTNQa25rd0NwWXYwWHVpNnpjQkp5blVZYnpyQ2EzS2tFemU2c1hUaWF6?= =?utf-8?Q?2K+MV9Vy2Z9OU2XwyUl+VbwMkO9GkuM4SrQgRdt?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN8PR11MB3666.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6d3e9d66-8f7d-4f4f-7b1b-08d95e2bde1e X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Aug 2021 07:27:55.0331 (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: lCjOHJZTzFVRY0UqQWRNuqhoYe92Ks10YDH+4SHqQImCUL58z13imw98aEnlWh6n5G9uFYBt/ec0vMBP0RlfPQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR1101MB2356 Return-Path: hao.a.wu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXJ2aW4gSMOkdXNlciA8bWhh ZXVzZXJAcG9zdGVvLmRlPg0KPiBTZW50OiBNb25kYXksIEF1Z3VzdCA5LCAyMDIxIDM6NDAgQU0N Cj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBMaW1pbmcgR2FvDQo+IDxnYW9saW1pbmdAYnlvc29m dC5jb20uY24+OyBMaXUsIFpoaWd1YW5nIDx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsNCj4gV2Fu ZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBXdSwgSGFvIEEgPGhhby5hLnd1QGlu dGVsLmNvbT47IE5pLA0KPiBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBWaXRhbHkgQ2hlcHRzb3Yg PHZpdDk2OTZAcHJvdG9ubWFpbC5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSF0gTWRlUGtnL0Jhc2Uu aDogSW50cm9kdWNlIHZhcmlvdXMgYWxpZ25tZW50LXJlbGF0ZWQNCj4gbWFjcm9zDQo+IA0KPiBB TElHTk9GOiBEZXRlcm1pbmluZyB0aGUgYWxpZ25tZW50IHJlcXVpcmVtZW50IG9mIGRhdGEgdHlw ZXMgaXMgY3J1Y2lhbCB0bw0KPiBlbnN1cmUgc2FmZSBtZW1vcnkgYWNjZXNzZXMgd2hlbiBwYXJz aW5nIHVudHJ1c3RlZCBkYXRhLg0KPiANCj4gSVNfUE9XMjogRGV0ZXJtaW5pbmcgd2hldGhlciBh IHZhbHVlIGlzIGEgcG93ZXIgb2YgdHdvIGlzIGltcG9ydGFudCB0bw0KPiB2ZXJpZnkgd2hldGhl ciB1bnRydXN0ZWQgdmFsdWVzIGFyZSB2YWxpZCBhbGlnbm1lbnQgdmFsdWVzLg0KPiANCj4gSVNf QUxJR05FRDogSW4gY29tYmluYXRpb24gd2l0aCBBTElHTk9GIGRhdGEgb2Zmc2V0cyBjYW4gYmUg dmVyaWZpZWQuDQo+IEEgbW9yZSBnZW5lcmFsIHZlcnNpb24gb2YgSVNfQUxJR05FRCBkZWZpbmVk IGJ5IHNldmVyYWwgbW9kdWxlcy4NCj4gDQo+IEFERFJFU1NfSVNfQUxJR05FRDogVmFyaWFudCBv ZiBJU19BTElHTkVEIGZvciBwb2ludGVycyBhbmQgYWRkcmVzc2VzLg0KPiBSZXBsYWNlcyBtb2R1 bGUtc3BlY2lmaWMgZGVmaW5pdGlvbnMgdGhyb3VnaG91dCB0aGUgY29kZWJhc2UuDQo+IA0KPiBB TElHTl9WQUxVRV9BRERFTkQ6IFRoZSBhZGRlZCB0byBhbGlnbiB1cCBjYW4gYmUgdXNlZCB0byBk aXJlY3RseQ0KPiBkZXRlcm1pbmUgdGhlIHJlcXVpcmVkIG9mZnNldCBmb3IgZGF0YSBhbGlnbm1l bnQuDQo+IA0KPiBDYzogTWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5j b20+DQo+IENjOiBMaW1pbmcgR2FvIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+DQo+IENjOiBa aGlndWFuZyBMaXUgPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+DQo+IENjOiBKaWFuIEogV2FuZyA8 amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiBDYzogSGFvIEEgV3UgPGhhby5hLnd1QGludGVsLmNv bT4NCj4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gQ2M6IFZpdGFseSBDaGVwdHNv diA8dml0OTY5NkBwcm90b25tYWlsLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogTWFydmluIEjDpHVz ZXIgPG1oYWV1c2VyQHBvc3Rlby5kZT4NCj4gLS0tDQo+ICBNZGVNb2R1bGVQa2cvQnVzL0F0YS9B aGNpUGVpL0FoY2lNb2RlLmMgICAgICAgICAgICAgICAgICB8ICAyICstDQo+ICBNZGVNb2R1bGVQ a2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lQZWlQYXNzVGhydS5jICAgICAgICAgICB8ICA2ICstDQo+ ICBNZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFBdGFwaVBhc3NUaHJ1L0F0YUF0YXBpUGFzc1RocnUu YyB8IDEyICstLQ0KPiAgTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQnVzRHhlL0F0YVBhc3NUaHJ1 RXhlY3V0ZS5jICAgICAgfCAgMiArLQ0KPiAgTWRlTW9kdWxlUGtnL0J1cy9TY3NpL1Njc2lEaXNr RHhlL1Njc2lEaXNrLmMgICAgICAgICAgICAgfCAgNCArLQ0KPiAgTWRlTW9kdWxlUGtnL0J1cy9V ZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnUuYyAgICAgICAgfCAgNiArLQ0KPiAgTWRlTW9k dWxlUGtnL1VuaXZlcnNhbC9FYmNEeGUvRWJjRXhlY3V0ZS5jICAgICAgICAgICAgICAgfCAzNiAr KysrLS0tLQ0KPiAgTWRlTW9kdWxlUGtnL0J1cy9BdGEvQWhjaVBlaS9BaGNpUGVpLmggICAgICAg ICAgICAgICAgICAgfCAgMSAtDQo+ICBNZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFBdGFwaVBhc3NU aHJ1L0F0YUF0YXBpUGFzc1RocnUuaCB8ICAyIC0NCj4gIE1kZU1vZHVsZVBrZy9CdXMvQXRhL0F0 YUJ1c0R4ZS9BdGFCdXMuaCAgICAgICAgICAgICAgICAgIHwgIDEgLQ0KPiAgTWRlTW9kdWxlUGtn L0J1cy9TY3NpL1Njc2lEaXNrRHhlL1Njc2lEaXNrLmggICAgICAgICAgICAgfCAgNCArLQ0KPiAg TWRlTW9kdWxlUGtnL0J1cy9VZnMvVWZzQmxvY2tJb1BlaS9VZnNCbG9ja0lvUGVpLmggICAgICAg fCAgMiAtDQo+ICBNZGVNb2R1bGVQa2cvQnVzL1Vmcy9VZnNQYXNzVGhydUR4ZS9VZnNQYXNzVGhy dS5oICAgICAgICB8ICAyIC0NCj4gIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRWJjRHhlL0ViY0V4 ZWN1dGUuaCAgICAgICAgICAgICAgIHwgIDMgKy0NCj4gIE1kZVBrZy9JbmNsdWRlL0Jhc2UuaCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOTAgKysrKysrKysrKysrKysrKysr Ky0NCj4gIDE1IGZpbGVzIGNoYW5nZWQsIDEyNSBpbnNlcnRpb25zKCspLCA0OCBkZWxldGlvbnMo LSkNCg0KDQpTdWdnZXN0IHRvIGJyZWFrIHRoaXMgaW50byAyIHBhdGNoZXM6DQpUaGUgZmlyc3Qg b25lIGlzIGZvciBNZGVQa2cgZm9yIGFkZGluZyB0aGUgbWFjcm9zLiBBbmQgdGhlIHNlY29uZCBv bmUgZm9yIGNoYW5nZXMgaW4gTWRlTW9kdWxlUGtnLg0KDQpGb3IgdGhlIE1kZU1vZHVsZVBrZyBj aGFuZ2VzLCB0aGV5IGxvb2sgZ29vZCB0byBtZToNClJldmlld2VkLWJ5OiBIYW8gQSBXdSA8aGFv LmEud3VAaW50ZWwuY29tPg0KDQpZb3UgY2FuIGFkZCB0aGUgYWJvdmUgJ1ItYicgdGFnIGZvciB5 b3VyIE1kZU1vZHVsZVBrZyBwYXRjaCBpbiB0aGUgVjIgc2VyaWVzLg0KDQpCZXN0IFJlZ2FyZHMs DQpIYW8gV3UNCg0KDQo+IA0KPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQWhj aVBlaS9BaGNpTW9kZS5jDQo+IGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQWhjaVBlaS9BaGNpTW9k ZS5jDQo+IGluZGV4IDc2MzZhZDI3Yzg2Yy4uNTIwMTk3YWVlNzUyIDEwMDY0NA0KPiAtLS0gYS9N ZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lNb2RlLmMNCj4gKysrIGIvTWRlTW9kdWxl UGtnL0J1cy9BdGEvQWhjaVBlaS9BaGNpTW9kZS5jDQo+IEBAIC0yMDk5LDcgKzIwOTksNyBAQCBU cnVzdFRyYW5zZmVyQXRhRGV2aWNlICgNCj4gICAgICAvLyBBVEEgUGFzc1RocnUgUFBJLiAgICAg Ly8gICAgIGlmICgoQXRhUGFzc1RocnUtPk1vZGUtPklvQWxpZ24gPiAxKSAmJi0NCj4gICAgICAg ICAhSVNfQUxJR05FRCAoQnVmZmVyLCBBdGFQYXNzVGhydS0+TW9kZS0+SW9BbGlnbikpDQo+IHsr ICAgICAgICAhQUREUkVTU19JU19BTElHTkVEIChCdWZmZXIsIEF0YVBhc3NUaHJ1LT5Nb2RlLT5J b0FsaWduKSkNCj4geyAgICAgICBOZXdCdWZmZXIgPSBBbGxvY2F0ZUFsaWduZWRQYWdlcyAoICAg ICAgICAgICAgICAgICAgICAgRUZJX1NJWkVfVE9fUEFHRVMNCj4gKFRyYW5zZmVyTGVuZ3RoKSwg ICAgICAgICAgICAgICAgICAgICBBdGFQYXNzVGhydS0+TW9kZS0+SW9BbGlnbmRpZmYgLS1naXQN Cj4gYS9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lQZWlQYXNzVGhydS5jDQo+IGIv TWRlTW9kdWxlUGtnL0J1cy9BdGEvQWhjaVBlaS9BaGNpUGVpUGFzc1RocnUuYw0KPiBpbmRleCAx OTFiNzhjODg1NDEuLjA1N2FkNDJkNTk2YiAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1 cy9BdGEvQWhjaVBlaS9BaGNpUGVpUGFzc1RocnUuYw0KPiArKysgYi9NZGVNb2R1bGVQa2cvQnVz L0F0YS9BaGNpUGVpL0FoY2lQZWlQYXNzVGhydS5jDQo+IEBAIC0xOTMsMTUgKzE5MywxNSBAQCBB aGNpQXRhUGFzc1RocnVQYXNzVGhydSAoDQo+ICAgIH0gICAgSW9BbGlnbiA9IFRoaXMtPk1vZGUt PklvQWxpZ247LSAgaWYgKChJb0FsaWduID4gMSkgJiYgIUlTX0FMSUdORUQNCj4gKFBhY2tldC0+ SW5EYXRhQnVmZmVyLCBJb0FsaWduKSkgeysgIGlmICgoSW9BbGlnbiA+IDEpDQo+ICYmICFBRERS RVNTX0lTX0FMSUdORUQgKFBhY2tldC0+SW5EYXRhQnVmZmVyLCBJb0FsaWduKSkgeyAgICAgcmV0 dXJuDQo+IEVGSV9JTlZBTElEX1BBUkFNRVRFUjsgICB9IC0gIGlmICgoSW9BbGlnbiA+IDEpICYm ICFJU19BTElHTkVEIChQYWNrZXQtDQo+ID5PdXREYXRhQnVmZmVyLCBJb0FsaWduKSkgeysgIGlm ICgoSW9BbGlnbiA+IDEpICYmICFBRERSRVNTX0lTX0FMSUdORUQNCj4gKFBhY2tldC0+T3V0RGF0 YUJ1ZmZlciwgSW9BbGlnbikpIHsgICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7ICAg fSAtDQo+IGlmICgoSW9BbGlnbiA+IDEpICYmICFJU19BTElHTkVEIChQYWNrZXQtPkFzYiwgSW9B bGlnbikpIHsrICBpZiAoKElvQWxpZ24gPiAxKQ0KPiAmJiAhQUREUkVTU19JU19BTElHTkVEIChQ YWNrZXQtPkFzYiwgSW9BbGlnbikpIHsgICAgIHJldHVybg0KPiBFRklfSU5WQUxJRF9QQVJBTUVU RVI7ICAgfSBkaWZmIC0tZ2l0DQo+IGEvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQXRhcGlQYXNz VGhydS9BdGFBdGFwaVBhc3NUaHJ1LmMNCj4gYi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFBdGFw aVBhc3NUaHJ1L0F0YUF0YXBpUGFzc1RocnUuYw0KPiBpbmRleCA4NmZlOWQ5NTRmZGIuLmM3YjNj ZmNlMTM0MCAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQXRhcGlQYXNz VGhydS9BdGFBdGFwaVBhc3NUaHJ1LmMNCj4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRh QXRhcGlQYXNzVGhydS9BdGFBdGFwaVBhc3NUaHJ1LmMNCj4gQEAgLTEyODEsMTUgKzEyODEsMTUg QEAgQXRhUGFzc1RocnVQYXNzVGhydSAoDQo+ICAgICBJbnN0YW5jZSA9IEFUQV9QQVNTX1RIUlVf UFJJVkFURV9EQVRBX0ZST01fVEhJUyAoVGhpcyk7IC0gIGlmDQo+ICgoVGhpcy0+TW9kZS0+SW9B bGlnbiA+IDEpICYmICFJU19BTElHTkVEKFBhY2tldC0+SW5EYXRhQnVmZmVyLCBUaGlzLQ0KPiA+ TW9kZS0+SW9BbGlnbikpIHsrICBpZiAoKFRoaXMtPk1vZGUtPklvQWxpZ24gPiAxKQ0KPiAmJiAh QUREUkVTU19JU19BTElHTkVEKFBhY2tldC0+SW5EYXRhQnVmZmVyLCBUaGlzLT5Nb2RlLT5Jb0Fs aWduKSkNCj4geyAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsgICB9IC0gIGlmICgo VGhpcy0+TW9kZS0+SW9BbGlnbiA+IDEpDQo+ICYmICFJU19BTElHTkVEKFBhY2tldC0+T3V0RGF0 YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsrICBpZiAoKFRoaXMtDQo+ID5Nb2RlLT5J b0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRChQYWNrZXQtPk91dERhdGFCdWZmZXIs DQo+IFRoaXMtPk1vZGUtPklvQWxpZ24pKSB7ICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1F VEVSOyAgIH0gLSAgaWYgKChUaGlzLQ0KPiA+TW9kZS0+SW9BbGlnbiA+IDEpICYmICFJU19BTElH TkVEKFBhY2tldC0+QXNiLCBUaGlzLT5Nb2RlLT5Jb0FsaWduKSkNCj4geysgIGlmICgoVGhpcy0+ TW9kZS0+SW9BbGlnbiA+IDEpICYmICFBRERSRVNTX0lTX0FMSUdORUQoUGFja2V0LT5Bc2IsDQo+ IFRoaXMtPk1vZGUtPklvQWxpZ24pKSB7ICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVS OyAgIH0gQEAgLTIwMTIsMTUNCj4gKzIwMTIsMTUgQEAgRXh0U2NzaVBhc3NUaHJ1UGFzc1RocnUg KA0KPiAgICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7ICAgfSAtICBpZiAoKFRoaXMt Pk1vZGUtPklvQWxpZ24gPiAxKQ0KPiAmJiAhSVNfQUxJR05FRChQYWNrZXQtPkluRGF0YUJ1ZmZl ciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsrICBpZiAoKFRoaXMtDQo+ID5Nb2RlLT5Jb0FsaWdu ID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRChQYWNrZXQtPkluRGF0YUJ1ZmZlciwgVGhpcy0N Cj4gPk1vZGUtPklvQWxpZ24pKSB7ICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOyAg IH0gLSAgaWYgKChUaGlzLT5Nb2RlLQ0KPiA+SW9BbGlnbiA+IDEpICYmICFJU19BTElHTkVEKFBh Y2tldC0+T3V0RGF0YUJ1ZmZlciwgVGhpcy0+TW9kZS0NCj4gPklvQWxpZ24pKSB7KyAgaWYgKChU aGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkNCj4gJiYgIUFERFJFU1NfSVNfQUxJR05FRChQYWNrZXQt Pk91dERhdGFCdWZmZXIsIFRoaXMtPk1vZGUtPklvQWxpZ24pKQ0KPiB7ICAgICByZXR1cm4gRUZJ X0lOVkFMSURfUEFSQU1FVEVSOyAgIH0gLSAgaWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkN Cj4gJiYgIUlTX0FMSUdORUQoUGFja2V0LT5TZW5zZURhdGEsIFRoaXMtPk1vZGUtPklvQWxpZ24p KSB7KyAgaWYgKChUaGlzLQ0KPiA+TW9kZS0+SW9BbGlnbiA+IDEpICYmICFBRERSRVNTX0lTX0FM SUdORUQoUGFja2V0LT5TZW5zZURhdGEsIFRoaXMtDQo+ID5Nb2RlLT5Jb0FsaWduKSkgeyAgICAg cmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsgICB9IGRpZmYgLS1naXQNCj4gYS9NZGVNb2R1 bGVQa2cvQnVzL0F0YS9BdGFCdXNEeGUvQXRhUGFzc1RocnVFeGVjdXRlLmMNCj4gYi9NZGVNb2R1 bGVQa2cvQnVzL0F0YS9BdGFCdXNEeGUvQXRhUGFzc1RocnVFeGVjdXRlLmMNCj4gaW5kZXggNzkw MjZhNGE5NTdkLi5lYWJhYjhhYzViYzUgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMv QXRhL0F0YUJ1c0R4ZS9BdGFQYXNzVGhydUV4ZWN1dGUuYw0KPiArKysgYi9NZGVNb2R1bGVQa2cv QnVzL0F0YS9BdGFCdXNEeGUvQXRhUGFzc1RocnVFeGVjdXRlLmMNCj4gQEAgLTEwMzYsNyArMTAz Niw3IEBAIFRydXN0VHJhbnNmZXJBdGFEZXZpY2UgKA0KPiAgICAgIC8vIENoZWNrIHRoZSBhbGln bm1lbnQgb2YgdGhlIGluY29taW5nIGJ1ZmZlciBwcmlvciB0byBpbnZva2luZyB1bmRlcmx5aW5n DQo+IEFUQSBQYXNzVGhydSAgICAgLy8gICAgIEF0YVBhc3NUaHJ1ID0gQXRhRGV2aWNlLT5BdGFC dXNEcml2ZXJEYXRhLQ0KPiA+QXRhUGFzc1RocnU7LSAgICBpZiAoKEF0YVBhc3NUaHJ1LT5Nb2Rl LT5Jb0FsaWduID4gMSkgJiYgIUlTX0FMSUdORUQNCj4gKEJ1ZmZlciwgQXRhUGFzc1RocnUtPk1v ZGUtPklvQWxpZ24pKSB7KyAgICBpZiAoKEF0YVBhc3NUaHJ1LT5Nb2RlLQ0KPiA+SW9BbGlnbiA+ IDEpICYmICFBRERSRVNTX0lTX0FMSUdORUQgKEJ1ZmZlciwgQXRhUGFzc1RocnUtPk1vZGUtDQo+ ID5Jb0FsaWduKSkgeyAgICAgICBOZXdCdWZmZXIgPSBBbGxvY2F0ZUFsaWduZWRCdWZmZXIgKEF0 YURldmljZSwNCj4gVHJhbnNmZXJMZW5ndGgpOyAgICAgICBpZiAoTmV3QnVmZmVyID09IE5VTEwp IHsgICAgICAgICByZXR1cm4NCj4gRUZJX09VVF9PRl9SRVNPVVJDRVM7ZGlmZiAtLWdpdA0KPiBh L01kZU1vZHVsZVBrZy9CdXMvU2NzaS9TY3NpRGlza0R4ZS9TY3NpRGlzay5jDQo+IGIvTWRlTW9k dWxlUGtnL0J1cy9TY3NpL1Njc2lEaXNrRHhlL1Njc2lEaXNrLmMNCj4gaW5kZXggYzgwZTc4ZmE4 YTZiLi44MWRiMmVmZDA1OTkgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvU2NzaS9T Y3NpRGlza0R4ZS9TY3NpRGlzay5jDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9CdXMvU2NzaS9TY3Np RGlza0R4ZS9TY3NpRGlzay5jDQo+IEBAIC0xOTU2LDcgKzE5NTYsNyBAQCBTY3NpRGlza1JlY2Vp dmVEYXRhICgNCj4gICAgICAgIGdvdG8gRG9uZTsgICAgIH0gLSAgICBpZiAoKFNjc2lEaXNrRGV2 aWNlLT5TY3NpSW8tPklvQWxpZ24gPiAxKQ0KPiAmJiAhSVNfQUxJR05FRCAoUGF5bG9hZEJ1ZmZl ciwgU2NzaURpc2tEZXZpY2UtPlNjc2lJby0+SW9BbGlnbikpIHsrICAgIGlmDQo+ICgoU2NzaURp c2tEZXZpY2UtPlNjc2lJby0+SW9BbGlnbiA+IDEpICYmICFBRERSRVNTX0lTX0FMSUdORUQNCj4g KFBheWxvYWRCdWZmZXIsIFNjc2lEaXNrRGV2aWNlLT5TY3NpSW8tPklvQWxpZ24pKSB7ICAgICAg IEFsaWduZWRCdWZmZXIgPQ0KPiBBbGxvY2F0ZUFsaWduZWRCdWZmZXIgKFNjc2lEaXNrRGV2aWNl LCBQYXlsb2FkQnVmZmVyU2l6ZSk7ICAgICAgIGlmDQo+IChBbGlnbmVkQnVmZmVyID09IE5VTEwp IHsgICAgICAgICBTdGF0dXMgPSBFRklfT1VUX09GX1JFU09VUkNFUztAQCAtDQo+IDIxNzEsNyAr MjE3MSw3IEBAIFNjc2lEaXNrU2VuZERhdGEgKA0KPiAgICAgICAgZ290byBEb25lOyAgICAgfSAt ICAgIGlmICgoU2NzaURpc2tEZXZpY2UtPlNjc2lJby0+SW9BbGlnbiA+IDEpDQo+ICYmICFJU19B TElHTkVEIChQYXlsb2FkQnVmZmVyLCBTY3NpRGlza0RldmljZS0+U2NzaUlvLT5Jb0FsaWduKSkg eysgICAgaWYNCj4gKChTY3NpRGlza0RldmljZS0+U2NzaUlvLT5Jb0FsaWduID4gMSkgJiYgIUFE RFJFU1NfSVNfQUxJR05FRA0KPiAoUGF5bG9hZEJ1ZmZlciwgU2NzaURpc2tEZXZpY2UtPlNjc2lJ by0+SW9BbGlnbikpIHsgICAgICAgQWxpZ25lZEJ1ZmZlciA9DQo+IEFsbG9jYXRlQWxpZ25lZEJ1 ZmZlciAoU2NzaURpc2tEZXZpY2UsIFBheWxvYWRCdWZmZXJTaXplKTsgICAgICAgaWYNCj4gKEFs aWduZWRCdWZmZXIgPT0gTlVMTCkgeyAgICAgICAgIFN0YXR1cyA9IEVGSV9PVVRfT0ZfUkVTT1VS Q0VTO2RpZmYgLS1naXQNCj4gYS9NZGVNb2R1bGVQa2cvQnVzL1Vmcy9VZnNQYXNzVGhydUR4ZS9V ZnNQYXNzVGhydS5jDQo+IGIvTWRlTW9kdWxlUGtnL0J1cy9VZnMvVWZzUGFzc1RocnVEeGUvVWZz UGFzc1RocnUuYw0KPiBpbmRleCA5MmZmOTU4ZjE2MWUuLmM0ZDAxYTIwZmNiZSAxMDA2NDQNCj4g LS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9VZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnUuYw0K PiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL1Vmcy9VZnNQYXNzVGhydUR4ZS9VZnNQYXNzVGhydS5j DQo+IEBAIC0xNzAsMTUgKzE3MCwxNSBAQCBVZnNQYXNzVGhydVBhc3NUaHJ1ICgNCj4gICAgICBy ZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOyAgIH0gLSAgaWYgKChUaGlzLT5Nb2RlLT5Jb0Fs aWduID4gMSkNCj4gJiYgIUlTX0FMSUdORUQoUGFja2V0LT5JbkRhdGFCdWZmZXIsIFRoaXMtPk1v ZGUtPklvQWxpZ24pKSB7KyAgaWYgKChUaGlzLQ0KPiA+TW9kZS0+SW9BbGlnbiA+IDEpICYmICFB RERSRVNTX0lTX0FMSUdORUQoUGFja2V0LT5JbkRhdGFCdWZmZXIsIFRoaXMtDQo+ID5Nb2RlLT5J b0FsaWduKSkgeyAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsgICB9IC0gIGlmICgo VGhpcy0+TW9kZS0NCj4gPklvQWxpZ24gPiAxKSAmJiAhSVNfQUxJR05FRChQYWNrZXQtPk91dERh dGFCdWZmZXIsIFRoaXMtPk1vZGUtDQo+ID5Jb0FsaWduKSkgeysgIGlmICgoVGhpcy0+TW9kZS0+ SW9BbGlnbiA+IDEpDQo+ICYmICFBRERSRVNTX0lTX0FMSUdORUQoUGFja2V0LT5PdXREYXRhQnVm ZmVyLCBUaGlzLT5Nb2RlLT5Jb0FsaWduKSkNCj4geyAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BB UkFNRVRFUjsgICB9IC0gIGlmICgoVGhpcy0+TW9kZS0+SW9BbGlnbiA+IDEpDQo+ICYmICFJU19B TElHTkVEKFBhY2tldC0+U2Vuc2VEYXRhLCBUaGlzLT5Nb2RlLT5Jb0FsaWduKSkgeysgIGlmICgo VGhpcy0NCj4gPk1vZGUtPklvQWxpZ24gPiAxKSAmJiAhQUREUkVTU19JU19BTElHTkVEKFBhY2tl dC0+U2Vuc2VEYXRhLCBUaGlzLQ0KPiA+TW9kZS0+SW9BbGlnbikpIHsgICAgIHJldHVybiBFRklf SU5WQUxJRF9QQVJBTUVURVI7ICAgfSBkaWZmIC0tZ2l0DQo+IGEvTWRlTW9kdWxlUGtnL1VuaXZl cnNhbC9FYmNEeGUvRWJjRXhlY3V0ZS5jDQo+IGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9FYmNE eGUvRWJjRXhlY3V0ZS5jDQo+IGluZGV4IDFjNGE0ZjUxNTVjOS4uYmE2NmY0NDFiY2VhIDEwMDY0 NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0ViY0R4ZS9FYmNFeGVjdXRlLmMNCj4g KysrIGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9FYmNEeGUvRWJjRXhlY3V0ZS5jDQo+IEBAIC0y MDA0LDcgKzIwMDQsNyBAQCBFeGVjdXRlSk1QICgNCj4gICAgICAvLyBjaGVjayBmb3IgYWxpZ25t ZW50LCBhbmQganVtcCBhYnNvbHV0ZS4gICAgIC8vICAgICBEYXRhNjQgPSAoVUlOVDY0KQ0KPiBW bVJlYWRJbW1lZDY0IChWbVB0ciwgMik7LSAgICBpZiAoIUlTX0FMSUdORUQgKChVSU5UTikgRGF0 YTY0LCBzaXplb2YNCj4gKFVJTlQxNikpKSB7KyAgICBpZiAoIUFERFJFU1NfSVNfQUxJR05FRCAo KFVJTlROKSBEYXRhNjQsIHNpemVvZiAoVUlOVDE2KSkpDQo+IHsgICAgICAgRWJjRGVidWdTaWdu YWxFeGNlcHRpb24gKCAgICAgICAgIEVYQ0VQVF9FQkNfQUxJR05NRU5UX0NIRUNLLA0KPiBFWENF UFRJT05fRkxBR19GQVRBTCxAQCAtMjA1OSw3ICsyMDU5LDcgQEAgRXhlY3V0ZUpNUCAoDQo+ICAg ICAgLy8gRm9ybTogSk1QMzIgQFJ4IHtJbmRleDMyfSAgICAgLy8gICAgIEFkZHIgPSBWbVJlYWRN ZW1OIChWbVB0ciwNCj4gKFVJTlROKSBEYXRhNjQgKyBJbmRleDMyKTstICAgIGlmICghSVNfQUxJ R05FRCAoKFVJTlROKSBBZGRyLCBzaXplb2YNCj4gKFVJTlQxNikpKSB7KyAgICBpZiAoIUFERFJF U1NfSVNfQUxJR05FRCAoKFVJTlROKSBBZGRyLCBzaXplb2YgKFVJTlQxNikpKQ0KPiB7ICAgICAg IEViY0RlYnVnU2lnbmFsRXhjZXB0aW9uICggICAgICAgICBFWENFUFRfRUJDX0FMSUdOTUVOVF9D SEVDSywNCj4gRVhDRVBUSU9OX0ZMQUdfRkFUQUwsQEAgLTIwODIsNyArMjA4Miw3IEBAIEV4ZWN1 dGVKTVAgKA0KPiAgICAgIC8vIEZvcm06IEpNUDMyIFJ4IHtJbW1lZDMyfSAgICAgLy8gICAgIEFk ZHIgPSAoVUlOVE4pIChEYXRhNjQgKyBJbmRleDMyKTstDQo+IGlmICghSVNfQUxJR05FRCAoKFVJ TlROKSBBZGRyLCBzaXplb2YgKFVJTlQxNikpKSB7KyAgICBpZg0KPiAoIUFERFJFU1NfSVNfQUxJ R05FRCAoKFVJTlROKSBBZGRyLCBzaXplb2YgKFVJTlQxNikpKQ0KPiB7ICAgICAgIEViY0RlYnVn U2lnbmFsRXhjZXB0aW9uICggICAgICAgICBFWENFUFRfRUJDX0FMSUdOTUVOVF9DSEVDSywNCj4g RVhDRVBUSU9OX0ZMQUdfRkFUQUwsQEAgLTMxMjgsNyArMzEyOCw3IEBAIEV4ZWN1dGVSRVQgKA0K PiAgICAgIC8vIFB1bGwgdGhlIHJldHVybiBhZGRyZXNzIG9mZiB0aGUgVk0gYXBwJ3Mgc3RhY2sg YW5kIHNldCB0aGUgSVAgICAgIC8vIHRvIGl0DQo+IC8vLSAgICBpZiAoIUlTX0FMSUdORUQgKChV SU5UTikgVm1QdHItPkdwclswXSwgc2l6ZW9mIChVSU5UMTYpKSkgeysgICAgaWYNCj4gKCFBRERS RVNTX0lTX0FMSUdORUQgKChVSU5UTikgVm1QdHItPkdwclswXSwgc2l6ZW9mIChVSU5UMTYpKSkN Cj4geyAgICAgICBFYmNEZWJ1Z1NpZ25hbEV4Y2VwdGlvbiAoICAgICAgICAgRVhDRVBUX0VCQ19B TElHTk1FTlRfQ0hFQ0ssDQo+IEVYQ0VQVElPTl9GTEFHX0ZBVEFMLEBAIC00NjkzLDcgKzQ2OTMs NyBAQCBWbVdyaXRlTWVtMTYgKA0KPiAgICAvLyAgIC8vIERvIGEgc2ltcGxlIHdyaXRlIGlmIGFs aWduZWQgICAvLy0gIGlmIChJU19BTElHTkVEIChBZGRyLCBzaXplb2YNCj4gKFVJTlQxNikpKSB7 KyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRCAoQWRkciwgc2l6ZW9mIChVSU5UMTYpKSkNCj4geyAg ICAgKihVSU5UMTYgKikgQWRkciA9IERhdGE7ICAgfSBlbHNlIHsgICAgIC8vQEAgLTQ3NTYsNyAr NDc1Niw3IEBADQo+IFZtV3JpdGVNZW0zMiAoDQo+ICAgIC8vICAgLy8gRG8gYSBzaW1wbGUgd3Jp dGUgaWYgYWxpZ25lZCAgIC8vLSAgaWYgKElTX0FMSUdORUQgKEFkZHIsIHNpemVvZg0KPiAoVUlO VDMyKSkpIHsrICBpZiAoQUREUkVTU19JU19BTElHTkVEIChBZGRyLCBzaXplb2YgKFVJTlQzMikp KQ0KPiB7ICAgICAqKFVJTlQzMiAqKSBBZGRyID0gRGF0YTsgICB9IGVsc2UgeyAgICAgLy9AQCAt NDgxOSw3ICs0ODE5LDcgQEANCj4gVm1Xcml0ZU1lbTY0ICgNCj4gICAgLy8gICAvLyBEbyBhIHNp bXBsZSB3cml0ZSBpZiBhbGlnbmVkICAgLy8tICBpZiAoSVNfQUxJR05FRCAoQWRkciwgc2l6ZW9m DQo+IChVSU5UNjQpKSkgeysgIGlmIChBRERSRVNTX0lTX0FMSUdORUQgKEFkZHIsIHNpemVvZiAo VUlOVDY0KSkpDQo+IHsgICAgICooVUlOVDY0ICopIEFkZHIgPSBEYXRhOyAgIH0gZWxzZSB7ICAg ICAvL0BAIC00ODg1LDcgKzQ4ODUsNyBAQA0KPiBWbVdyaXRlTWVtTiAoDQo+ICAgIC8vICAgLy8g RG8gYSBzaW1wbGUgd3JpdGUgaWYgYWxpZ25lZCAgIC8vLSAgaWYgKElTX0FMSUdORUQgKEFkZHIs IHNpemVvZiAoVUlOVE4pKSkNCj4geysgIGlmIChBRERSRVNTX0lTX0FMSUdORUQgKEFkZHIsIHNp emVvZiAoVUlOVE4pKSkgeyAgICAgKihVSU5UTiAqKSBBZGRyID0NCj4gRGF0YTsgICB9IGVsc2Ug eyAgICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgc2l6ZW9mIChVSU5UTikgLyBzaXplb2YgKFVJ TlQzMik7DQo+IEluZGV4KyspIHtAQCAtNDk0OSw3ICs0OTQ5LDcgQEAgVm1SZWFkSW1tZWQxNiAo DQo+ICAgIC8vICAgLy8gUmVhZCBkaXJlY3QgaWYgYWxpZ25lZCAgIC8vLSAgaWYgKElTX0FMSUdO RUQgKChVSU5UTikgVm1QdHItPklwICsNCj4gT2Zmc2V0LCBzaXplb2YgKElOVDE2KSkpIHsrICBp ZiAoQUREUkVTU19JU19BTElHTkVEICgoVUlOVE4pIFZtUHRyLT5JcCArDQo+IE9mZnNldCwgc2l6 ZW9mIChJTlQxNikpKSB7ICAgICByZXR1cm4gKiAoSU5UMTYgKikgKFZtUHRyLT5JcCArIE9mZnNl dCk7ICAgfSBlbHNlDQo+IHsgICAgIC8vQEAgLTQ5OTMsNyArNDk5Myw3IEBAIFZtUmVhZEltbWVk MzIgKA0KPiAgICAvLyAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQgICAvLy0gIGlmIChJU19B TElHTkVEICgoVUlOVE4pIFZtUHRyLT5JcCArDQo+IE9mZnNldCwgc2l6ZW9mIChVSU5UMzIpKSkg eysgIGlmIChBRERSRVNTX0lTX0FMSUdORUQgKChVSU5UTikgVm1QdHItPklwICsNCj4gT2Zmc2V0 LCBzaXplb2YgKFVJTlQzMikpKSB7ICAgICByZXR1cm4gKiAoSU5UMzIgKikgKFZtUHRyLT5JcCAr IE9mZnNldCk7ICAgfQ0KPiAvL0BAIC01MDMyLDcgKzUwMzIsNyBAQCBWbVJlYWRJbW1lZDY0ICgN Cj4gICAgLy8gICAvLyBSZWFkIGRpcmVjdCBpZiBhbGlnbmVkICAgLy8tICBpZiAoSVNfQUxJR05F RCAoKFVJTlROKSBWbVB0ci0+SXAgKw0KPiBPZmZzZXQsIHNpemVvZiAoVUlOVDY0KSkpIHsrICBp ZiAoQUREUkVTU19JU19BTElHTkVEICgoVUlOVE4pIFZtUHRyLT5JcCArDQo+IE9mZnNldCwgc2l6 ZW9mIChVSU5UNjQpKSkgeyAgICAgcmV0dXJuICogKFVJTlQ2NCAqKSAoVm1QdHItPklwICsgT2Zm c2V0KTsgICB9DQo+IC8vQEAgLTUwNjksNyArNTA2OSw3IEBAIFZtUmVhZENvZGUxNiAoDQo+ICAg IC8vICAgLy8gUmVhZCBkaXJlY3QgaWYgYWxpZ25lZCAgIC8vLSAgaWYgKElTX0FMSUdORUQgKChV SU5UTikgVm1QdHItPklwICsNCj4gT2Zmc2V0LCBzaXplb2YgKFVJTlQxNikpKSB7KyAgaWYgKEFE RFJFU1NfSVNfQUxJR05FRCAoKFVJTlROKSBWbVB0ci0+SXAgKw0KPiBPZmZzZXQsIHNpemVvZiAo VUlOVDE2KSkpIHsgICAgIHJldHVybiAqIChVSU5UMTYgKikgKFZtUHRyLT5JcCArIE9mZnNldCk7 ICAgfSBlbHNlDQo+IHsgICAgIC8vQEAgLTUxMTAsNyArNTExMCw3IEBAIFZtUmVhZENvZGUzMiAo DQo+ICAgIC8vICAgLy8gUmVhZCBkaXJlY3QgaWYgYWxpZ25lZCAgIC8vLSAgaWYgKElTX0FMSUdO RUQgKChVSU5UTikgVm1QdHItPklwICsNCj4gT2Zmc2V0LCBzaXplb2YgKFVJTlQzMikpKSB7KyAg aWYgKEFERFJFU1NfSVNfQUxJR05FRCAoKFVJTlROKSBWbVB0ci0+SXAgKw0KPiBPZmZzZXQsIHNp emVvZiAoVUlOVDMyKSkpIHsgICAgIHJldHVybiAqIChVSU5UMzIgKikgKFZtUHRyLT5JcCArIE9m ZnNldCk7ICAgfQ0KPiAvL0BAIC01MTQ3LDcgKzUxNDcsNyBAQCBWbVJlYWRDb2RlNjQgKA0KPiAg ICAvLyAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQgICAvLy0gIGlmIChJU19BTElHTkVEICgo VUlOVE4pIFZtUHRyLT5JcCArDQo+IE9mZnNldCwgc2l6ZW9mIChVSU5UNjQpKSkgeysgIGlmIChB RERSRVNTX0lTX0FMSUdORUQgKChVSU5UTikgVm1QdHItPklwICsNCj4gT2Zmc2V0LCBzaXplb2Yg KFVJTlQ2NCkpKSB7ICAgICByZXR1cm4gKiAoVUlOVDY0ICopIChWbVB0ci0+SXAgKyBPZmZzZXQp OyAgIH0NCj4gLy9AQCAtNTIxMCw3ICs1MjEwLDcgQEAgVm1SZWFkTWVtMTYgKA0KPiAgICAvLyAg IC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQgICAvLy0gIGlmIChJU19BTElHTkVEIChBZGRyLCBz aXplb2YgKFVJTlQxNikpKSB7Kw0KPiBpZiAoQUREUkVTU19JU19BTElHTkVEIChBZGRyLCBzaXpl b2YgKFVJTlQxNikpKSB7ICAgICByZXR1cm4gKiAoVUlOVDE2ICopDQo+IEFkZHI7ICAgfSAgIC8v QEAgLTUyNDMsNyArNTI0Myw3IEBAIFZtUmVhZE1lbTMyICgNCj4gICAgLy8gICAvLyBSZWFkIGRp cmVjdCBpZiBhbGlnbmVkICAgLy8tICBpZiAoSVNfQUxJR05FRCAoQWRkciwgc2l6ZW9mIChVSU5U MzIpKSkgeysNCj4gaWYgKEFERFJFU1NfSVNfQUxJR05FRCAoQWRkciwgc2l6ZW9mIChVSU5UMzIp KSkgeyAgICAgcmV0dXJuICogKFVJTlQzMiAqKQ0KPiBBZGRyOyAgIH0gICAvL0BAIC01MjgwLDcg KzUyODAsNyBAQCBWbVJlYWRNZW02NCAoDQo+ICAgIC8vICAgLy8gUmVhZCBkaXJlY3QgaWYgYWxp Z25lZCAgIC8vLSAgaWYgKElTX0FMSUdORUQgKEFkZHIsIHNpemVvZiAoVUlOVDY0KSkpIHsrDQo+ IGlmIChBRERSRVNTX0lTX0FMSUdORUQgKEFkZHIsIHNpemVvZiAoVUlOVDY0KSkpIHsgICAgIHJl dHVybiAqIChVSU5UNjQgKikNCj4gQWRkcjsgICB9ICAgLy9AQCAtNTM0OSw3ICs1MzQ5LDcgQEAg Vm1SZWFkTWVtTiAoDQo+ICAgIC8vICAgLy8gUmVhZCBkaXJlY3QgaWYgYWxpZ25lZCAgIC8vLSAg aWYgKElTX0FMSUdORUQgKEFkZHIsIHNpemVvZiAoVUlOVE4pKSkgeysgIGlmDQo+IChBRERSRVNT X0lTX0FMSUdORUQgKEFkZHIsIHNpemVvZiAoVUlOVE4pKSkgeyAgICAgcmV0dXJuICogKFVJTlRO ICopDQo+IEFkZHI7ICAgfSAgIC8vZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9CdXMvQXRhL0Fo Y2lQZWkvQWhjaVBlaS5oDQo+IGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQWhjaVBlaS9BaGNpUGVp LmgNCj4gaW5kZXggMmJlNzgwNzZiZWU3Li41OWJiOWU1ZDBiY2EgMTAwNjQ0DQo+IC0tLSBhL01k ZU1vZHVsZVBrZy9CdXMvQXRhL0FoY2lQZWkvQWhjaVBlaS5oDQo+ICsrKyBiL01kZU1vZHVsZVBr Zy9CdXMvQXRhL0FoY2lQZWkvQWhjaVBlaS5oDQo+IEBAIC0xNDUsNyArMTQ1LDYgQEAgdHlwZWRl ZiB1bmlvbiB7DQo+ICAjZGVmaW5lIEFIQ0lfUE9SVF9TRVJSICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAzMCAjZGVmaW5lIEFIQ0lfUE9SVF9DSQ0KPiAweDAwMzggLSNkZWZpbmUgSVNfQUxJ R05FRChhZGRyLCBzaXplKSAgICAgICAgICAgICAgICAgKCgoVUlOVE4pIChhZGRyKSAmIChzaXpl IC0gMSkpDQo+ID09IDApICNkZWZpbmUgVElNRVJfUEVSSU9EX1NFQ09ORFMoU2Vjb25kcykNCj4g TXVsdFU2NHgzMigoVUlOVDY0KShTZWNvbmRzKSwgMTAwMDAwMDApICAjcHJhZ21hIHBhY2soMSlk aWZmIC0tZ2l0DQo+IGEvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQXRhcGlQYXNzVGhydS9BdGFB dGFwaVBhc3NUaHJ1LmgNCj4gYi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFBdGFwaVBhc3NUaHJ1 L0F0YUF0YXBpUGFzc1RocnUuaA0KPiBpbmRleCA1ZjU4MmI5YjNlNzYuLjk5YmJmN2QxNGExNyAx MDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQXRhcGlQYXNzVGhydS9BdGFB dGFwaVBhc3NUaHJ1LmgNCj4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQXRhcGlQYXNz VGhydS9BdGFBdGFwaVBhc3NUaHJ1LmgNCj4gQEAgLTE0Nyw4ICsxNDcsNiBAQCBzdHJ1Y3QgX0FU QV9OT05CTE9DS19UQVNLIHsNCj4gICNkZWZpbmUgQVRBX0FUQVBJX1RJTUVPVVQgICAgICAgICAg IEVGSV9USU1FUl9QRVJJT0RfU0VDT05EUygzKQ0KPiAjZGVmaW5lIEFUQV9TUElOVVBfVElNRU9V VCAgICAgICAgICBFRklfVElNRVJfUEVSSU9EX1NFQ09ORFMoMTApIC0NCj4gI2RlZmluZSBJU19B TElHTkVEKGFkZHIsIHNpemUpICAgICAgKCgoVUlOVE4pIChhZGRyKSAmIChzaXplIC0gMSkpID09 IDApLQ0KPiAjZGVmaW5lIEFUQV9QQVNTX1RIUlVfUFJJVkFURV9EQVRBX0ZST01fVEhJUyhhKSBc ICAgQ1IgKGEsIFwNCj4gQVRBX0FUQVBJX1BBU1NfVEhSVV9JTlNUQU5DRSwgXGRpZmYgLS1naXQN Cj4gYS9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFCdXNEeGUvQXRhQnVzLmgNCj4gYi9NZGVNb2R1 bGVQa2cvQnVzL0F0YS9BdGFCdXNEeGUvQXRhQnVzLmgNCj4gaW5kZXggYTVhODY1MjA5OTQyLi4x NzJkMmQ2MWVhNmMgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvQXRhL0F0YUJ1c0R4 ZS9BdGFCdXMuaA0KPiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFCdXNEeGUvQXRhQnVz LmgNCj4gQEAgLTc2LDcgKzc2LDYgQEANCj4gICNkZWZpbmUgQVRBX1RBU0tfU0lHTkFUVVJFICAg ICAgICAgICAgICAgIFNJR05BVFVSRV8zMiAoJ0EnLCAnVCcsICdTJywgJ0snKQ0KPiAjZGVmaW5l IEFUQV9ERVZJQ0VfU0lHTkFUVVJFICAgICAgICAgICAgICBTSUdOQVRVUkVfMzIgKCdBJywgJ0In LCAnSScsICdEJykNCj4gI2RlZmluZSBBVEFfU1VCX1RBU0tfU0lHTkFUVVJFICAgICAgICAgICAg U0lHTkFUVVJFXzMyICgnQScsICdTJywgJ1QnLCAnUycpLQ0KPiAjZGVmaW5lIElTX0FMSUdORUQo YWRkciwgc2l6ZSkgICAgICAgICAgICAoKChVSU5UTikgKGFkZHIpICYgKHNpemUgLSAxKSkgPT0g MCkgIC8vIC8vDQo+IEFUQSBidXMgZGF0YSBzdHJ1Y3R1cmUgZm9yIEFUQSBjb250cm9sbGVyZGlm ZiAtLWdpdA0KPiBhL01kZU1vZHVsZVBrZy9CdXMvU2NzaS9TY3NpRGlza0R4ZS9TY3NpRGlzay5o DQo+IGIvTWRlTW9kdWxlUGtnL0J1cy9TY3NpL1Njc2lEaXNrRHhlL1Njc2lEaXNrLmgNCj4gaW5k ZXggZWQ5YmJkNmY4YmE4Li44NmFkMjdiMzI5MmYgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBr Zy9CdXMvU2NzaS9TY3NpRGlza0R4ZS9TY3NpRGlzay5oDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9C dXMvU2NzaS9TY3NpRGlza0R4ZS9TY3NpRGlzay5oDQo+IEBAIC0zNyw5ICszNyw3IEBAIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ICAjaW5jbHVkZSA8SW5k dXN0cnlTdGFuZGFyZC9TY3NpLmg+ICNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL0F0YXBpLmg+ IC0NCj4gI2RlZmluZSBJU19ERVZJQ0VfRklYRUQoYSkgICAgICAgIChhKS0+Rml4ZWREZXZpY2Ug PyAxIDogMC0tI2RlZmluZQ0KPiBJU19BTElHTkVEKGFkZHIsIHNpemUpICAgICgoKFVJTlROKSAo YWRkcikgJiAoc2l6ZSAtIDEpKSA9PSAwKSsjZGVmaW5lDQo+IElTX0RFVklDRV9GSVhFRChhKSAg ICAgICAgICAoYSktPkZpeGVkRGV2aWNlID8gMSA6IDAgICNkZWZpbmUgVUZTX1dMVU5fUlBNQg0K PiAweEM0IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL1Vmcy9VZnNCbG9ja0lvUGVpL1Vm c0Jsb2NrSW9QZWkuaA0KPiBiL01kZU1vZHVsZVBrZy9CdXMvVWZzL1Vmc0Jsb2NrSW9QZWkvVWZz QmxvY2tJb1BlaS5oDQo+IGluZGV4IDZlMjMwNWFhMmJjMi4uNzMwNjEwNmE0NDU0IDEwMDY0NA0K PiAtLS0gYS9NZGVNb2R1bGVQa2cvQnVzL1Vmcy9VZnNCbG9ja0lvUGVpL1Vmc0Jsb2NrSW9QZWku aA0KPiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL1Vmcy9VZnNCbG9ja0lvUGVpL1Vmc0Jsb2NrSW9Q ZWkuaA0KPiBAQCAtMTMzLDggKzEzMyw2IEBAIHR5cGVkZWYgc3RydWN0IF9VRlNfUEVJTV9IQ19Q UklWQVRFX0RBVEEgew0KPiAgICNkZWZpbmUgUk9VTkRVUDgoeCkgKCgoeCkgJSA4ID09IDApID8g KHgpIDogKCh4KSAvIDggKyAxKSAqIDgpIC0jZGVmaW5lDQo+IElTX0FMSUdORUQoYWRkciwgc2l6 ZSkgICAgICAoKChVSU5UTikgKGFkZHIpICYgKHNpemUgLSAxKSkgPT0gMCktICNkZWZpbmUNCj4g R0VUX1VGU19QRUlNX0hDX1BSSVZBVEVfREFUQV9GUk9NX1RISVMoYSkgQ1IgKGEsDQo+IFVGU19Q RUlNX0hDX1BSSVZBVEVfREFUQSwgQmxrSW9QcGksIFVGU19QRUlNX0hDX1NJRykgI2RlZmluZQ0K PiBHRVRfVUZTX1BFSU1fSENfUFJJVkFURV9EQVRBX0ZST01fVEhJUzIoYSkgQ1IgKGEsDQo+IFVG U19QRUlNX0hDX1BSSVZBVEVfREFUQSwgQmxrSW8yUHBpLCBVRlNfUEVJTV9IQ19TSUcpICNkZWZp bmUNCj4gR0VUX1VGU19QRUlNX0hDX1BSSVZBVEVfREFUQV9GUk9NX1RISVNfTk9USUZZKGEpIENS IChhLA0KPiBVRlNfUEVJTV9IQ19QUklWQVRFX0RBVEEsIEVuZE9mUGVpTm90aWZ5TGlzdCwgVUZT X1BFSU1fSENfU0lHKWRpZmYNCj4gLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL1Vmcy9VZnNQYXNz VGhydUR4ZS9VZnNQYXNzVGhydS5oDQo+IGIvTWRlTW9kdWxlUGtnL0J1cy9VZnMvVWZzUGFzc1Ro cnVEeGUvVWZzUGFzc1RocnUuaA0KPiBpbmRleCA3OWI4NmY3ZTZiM2QuLjExYjViMTk3YjY3YSAx MDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9VZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFz c1RocnUuaA0KPiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL1Vmcy9VZnNQYXNzVGhydUR4ZS9VZnNQ YXNzVGhydS5oDQo+IEBAIC0xMDUsOCArMTA1LDYgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiAgICNk ZWZpbmUgUk9VTkRVUDgoeCkgKCgoeCkgJSA4ID09IDApID8gKHgpIDogKCh4KSAvIDggKyAxKSAq IDgpIC0jZGVmaW5lDQo+IElTX0FMSUdORUQoYWRkciwgc2l6ZSkgICAgICAgICgoKFVJTlROKSAo YWRkcikgJiAoc2l6ZSAtIDEpKSA9PSAwKS0gI2RlZmluZQ0KPiBVRlNfUEFTU19USFJVX1BSSVZB VEVfREFUQV9GUk9NX1RISVMoYSkgXCAgIENSIChhLCBcDQo+IFVGU19QQVNTX1RIUlVfUFJJVkFU RV9EQVRBLCBcZGlmZiAtLWdpdA0KPiBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRWJjRHhlL0Vi Y0V4ZWN1dGUuaA0KPiBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRWJjRHhlL0ViY0V4ZWN1dGUu aA0KPiBpbmRleCAxY2I2OGJjNTM4NWEuLjg1OGNhN2ZjODZhZSAxMDA2NDQNCj4gLS0tIGEvTWRl TW9kdWxlUGtnL1VuaXZlcnNhbC9FYmNEeGUvRWJjRXhlY3V0ZS5oDQo+ICsrKyBiL01kZU1vZHVs ZVBrZy9Vbml2ZXJzYWwvRWJjRHhlL0ViY0V4ZWN1dGUuaA0KPiBAQCAtMTQsOCArMTQsNyBAQCBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiAgLy8gLy8gTWFj cm9zIHRvIGNoZWNrIGFuZCBzZXQgYWxpZ25tZW50IC8vLSNkZWZpbmUgQVNTRVJUX0FMSUdORUQo YWRkciwNCj4gc2l6ZSkgIEFTU0VSVCAoISgoVUlOVDMyKSAoYWRkcikgJiAoc2l6ZSAtIDEpKSkt I2RlZmluZSBJU19BTElHTkVEKGFkZHIsDQo+IHNpemUpICAgICAgISgoVUlOVDMyKSAoYWRkcikg JiAoc2l6ZSAtIDEpKSsjZGVmaW5lIEFTU0VSVF9BTElHTkVEKGFkZHIsIHNpemUpDQo+IEFTU0VS VCAoSVNfQUxJR05FRCAoYWRkciwgc2l6ZSkpICAvLyAvLyBEZWJ1ZyBtYWNyb2RpZmYgLS1naXQN Cj4gYS9NZGVQa2cvSW5jbHVkZS9CYXNlLmggYi9NZGVQa2cvSW5jbHVkZS9CYXNlLmgNCj4gaW5k ZXggMmRhMDhiMGM3ODdmLi4zMmQwZTUxMmUwNWYgMTAwNjQ0DQo+IC0tLSBhL01kZVBrZy9JbmNs dWRlL0Jhc2UuaA0KPiArKysgYi9NZGVQa2cvSW5jbHVkZS9CYXNlLmgNCj4gQEAgLTc4OSw2ICs3 ODksMzUgQEAgdHlwZWRlZiBVSU5UTiAgKkJBU0VfTElTVDsNCj4gICNkZWZpbmUgT0ZGU0VUX09G KFRZUEUsIEZpZWxkKSAoKFVJTlROKSAmKCgoVFlQRSAqKTApLT5GaWVsZCkpICNlbmRpZg0KPiAr LyoqKyAgUmV0dXJucyB0aGUgYWxpZ25tZW50IHJlcXVpcmVtZW50IG9mIGEgdHlwZS4rKyAgQHBh cmFtICAgVFlQRSAgVGhlDQo+IG5hbWUgb2YgdGhlIHR5cGUgdG8gcmV0cmlldmUgdGhlIGFsaWdu bWVudCByZXF1aXJlbWVudCBvZi4rKyAgQHJldHVybg0KPiBBbGlnbm1lbnQgcmVxdWlyZW1lbnQs IGluIEJ5dGVzLCBvZiBUWVBFLisqKi8rI2lmIGRlZmluZWQoX19HTlVDX18pIHx8DQo+IGRlZmlu ZWQoX19jbGFuZ19fKSB8fCAoZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPj0gMTkwMCkr ICAvLysNCj4gLy8gQWxsIHN1cHBvcnRlZCB2ZXJzaW9ucyBvZiBHQ0MgYW5kIENsYW5nLCBhcyB3 ZWxsIGFzIE1TVkMgMjAxNSBhbmQgbGF0ZXIsKw0KPiAvLyBzdXBwb3J0IHRoZSBzdGFuZGFyZCBv cGVyYXRvciBfQWxpZ25vZi4rICAvLysgICNkZWZpbmUgQUxJR05PRihUWVBFKQ0KPiBfQWxpZ25v ZiAoVFlQRSkrI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikrICAvLysgIC8vIEVhcmxpZXIgdmVyc2lv bnMgb2YgTVNWQywNCj4gYXQgbGVhc3QgTVNWQyAyMDA4IGFuZCBsYXRlciwgc3VwcG9ydCB0aGUr ICAvLyB2ZW5kb3ItZXh0ZW5zaW9uIF9fYWxpZ25vZi4rDQo+IC8vKyAgI2RlZmluZSBBTElHTk9G KFRZUEUpICBfX2FsaWdub2YgKFRZUEUpKyNlbHNlKyAgLy8rICAvLyBGb3IgY29tcGlsZXJzDQo+ IHRoYXQgZG8gbm90IHN1cHBvcnQgaW5idWlsdCBhbGlnbm9mIG9wZXJhdG9ycywgdXNlIE9GRlNF VF9PRi4rICAvLyBDSEFSOCBpcw0KPiBrbm93biB0byBoYXZlIGJvdGggYSBzaXplIGFuZCBhbiBh bGlnbm1lbnQgcmVxdWlyZW1lbnQgb2YgMSBCeXRlLisgIC8vIEFzDQo+IHN1Y2gsIEEgbXVzdCBi ZSBsb2NhdGVkIGV4YWN0bHkgYXQgdGhlIG9mZnNldCBlcXVhbCB0byBpdHMgYWxpZ25tZW50KyAg Ly8NCj4gcmVxdWlyZW1lbnQuKyAgLy8rICAjZGVmaW5lIEFMSUdOT0YoVFlQRSkgT0ZGU0VUX09G IChzdHJ1Y3QgeyBDSEFSOCBDOw0KPiBUWVBFIEE7IH0sIEEpKyNlbmRpZisgLyoqICAgUG9ydGFi bGUgZGVmaW5pdGlvbiBmb3IgY29tcGlsZSB0aW1lIGFzc2VydGlvbnMuDQo+IEVxdWl2YWxlbnQg dG8gQzExIHN0YXRpY19hc3NlcnQgbWFjcm8gZnJvbSBhc3NlcnQuaC5AQCAtODI0LDYgKzg1Mywy MSBAQA0KPiBTVEFUSUNfQVNTRVJUIChzaXplb2YgKENIQVIxNikgID09IDIsICJzaXplb2YgKENI QVIxNikgZG9lcyBub3QgbWVldCBVRUZJDQo+IFNwZWNpZg0KPiAgU1RBVElDX0FTU0VSVCAoc2l6 ZW9mIChMJ0EnKSAgICA9PSAyLCAic2l6ZW9mIChMJ0EnKSBkb2VzIG5vdCBtZWV0IFVFRkkNCj4g U3BlY2lmaWNhdGlvbiBEYXRhIFR5cGUgcmVxdWlyZW1lbnRzIik7IFNUQVRJQ19BU1NFUlQgKHNp emVvZiAoTCJBIikgICAgPT0gNCwNCj4gInNpemVvZiAoTFwiQVwiKSBkb2VzIG5vdCBtZWV0IFVF RkkgU3BlY2lmaWNhdGlvbiBEYXRhIFR5cGUgcmVxdWlyZW1lbnRzIik7DQo+ICtTVEFUSUNfQVNT RVJUIChBTElHTk9GIChCT09MRUFOKSA9PSBzaXplb2YgKEJPT0xFQU4pLCAiQWxpZ25tZW50IG9m DQo+IEJPT0xFQU4gZG9lcyBub3QgbWVldCBVRUZJIFNwZWNpZmljYXRpb24gRGF0YSBUeXBlDQo+ IHJlcXVpcmVtZW50cyIpOytTVEFUSUNfQVNTRVJUIChBTElHTk9GIChJTlQ4KSAgICA9PSBzaXpl b2YgKElOVDgpLA0KPiAiQWxpZ25tZW50IG9mIElOVDggZG9lcyBub3QgbWVldCBVRUZJIFNwZWNp ZmljYXRpb24gRGF0YSBUeXBlDQo+IHJlcXVpcmVtZW50cyIpOytTVEFUSUNfQVNTRVJUIChBTElH Tk9GIChVSU5UOCkgICA9PSBzaXplb2YgKFVJTlQ4KSwNCj4gIkFsaWdubWVudCBvZiBJTlQxNiBk b2VzIG5vdCBtZWV0IFVFRkkgU3BlY2lmaWNhdGlvbiBEYXRhIFR5cGUNCj4gcmVxdWlyZW1lbnRz Iik7K1NUQVRJQ19BU1NFUlQgKEFMSUdOT0YgKElOVDE2KSAgID09IHNpemVvZiAoSU5UMTYpLA0K PiAiQWxpZ25tZW50IG9mIElOVDE2IGRvZXMgbm90IG1lZXQgVUVGSSBTcGVjaWZpY2F0aW9uIERh dGEgVHlwZQ0KPiByZXF1aXJlbWVudHMiKTsrU1RBVElDX0FTU0VSVCAoQUxJR05PRiAoVUlOVDE2 KSAgPT0gc2l6ZW9mIChVSU5UMTYpLA0KPiAiQWxpZ25tZW50IG9mIFVJTlQxNiBkb2VzIG5vdCBt ZWV0IFVFRkkgU3BlY2lmaWNhdGlvbiBEYXRhIFR5cGUNCj4gcmVxdWlyZW1lbnRzIik7K1NUQVRJ Q19BU1NFUlQgKEFMSUdOT0YgKElOVDMyKSAgID09IHNpemVvZiAoSU5UMzIpLA0KPiAiQWxpZ25t ZW50IG9mIElOVDMyIGRvZXMgbm90IG1lZXQgVUVGSSBTcGVjaWZpY2F0aW9uIERhdGEgVHlwZQ0K PiByZXF1aXJlbWVudHMiKTsrU1RBVElDX0FTU0VSVCAoQUxJR05PRiAoVUlOVDMyKSAgPT0gc2l6 ZW9mIChVSU5UMzIpLA0KPiAiQWxpZ25tZW50IG9mIFVJTlQzMiBkb2VzIG5vdCBtZWV0IFVFRkkg U3BlY2lmaWNhdGlvbiBEYXRhIFR5cGUNCj4gcmVxdWlyZW1lbnRzIik7K1NUQVRJQ19BU1NFUlQg KEFMSUdOT0YgKElOVDY0KSAgID09IHNpemVvZiAoSU5UNjQpLA0KPiAiQWxpZ25tZW50IG9mIElO VDY0IGRvZXMgbm90IG1lZXQgVUVGSSBTcGVjaWZpY2F0aW9uIERhdGEgVHlwZQ0KPiByZXF1aXJl bWVudHMiKTsrU1RBVElDX0FTU0VSVCAoQUxJR05PRiAoVUlOVDY0KSAgPT0gc2l6ZW9mIChVSU5U NjQpLA0KPiAiQWxpZ25tZW50IG9mIFVJTlQ2NCBkb2VzIG5vdCBtZWV0IFVFRkkgU3BlY2lmaWNh dGlvbiBEYXRhIFR5cGUNCj4gcmVxdWlyZW1lbnRzIik7K1NUQVRJQ19BU1NFUlQgKEFMSUdOT0Yg KENIQVI4KSAgID09IHNpemVvZiAoQ0hBUjgpLA0KPiAiQWxpZ25tZW50IG9mIENIQVI4IGRvZXMg bm90IG1lZXQgVUVGSSBTcGVjaWZpY2F0aW9uIERhdGEgVHlwZQ0KPiByZXF1aXJlbWVudHMiKTsr U1RBVElDX0FTU0VSVCAoQUxJR05PRiAoQ0hBUjE2KSAgPT0gc2l6ZW9mIChDSEFSMTYpLA0KPiAi QWxpZ25tZW50IG9mIENIQVIxNiBkb2VzIG5vdCBtZWV0IFVFRkkgU3BlY2lmaWNhdGlvbiBEYXRh IFR5cGUNCj4gcmVxdWlyZW1lbnRzIik7K1NUQVRJQ19BU1NFUlQgKEFMSUdOT0YgKElOVE4pICAg ID09IHNpemVvZiAoSU5UTiksDQo+ICJBbGlnbm1lbnQgb2YgSU5UTiBkb2VzIG5vdCBtZWV0IFVF RkkgU3BlY2lmaWNhdGlvbiBEYXRhIFR5cGUNCj4gcmVxdWlyZW1lbnRzIik7K1NUQVRJQ19BU1NF UlQgKEFMSUdOT0YgKFVJTlROKSAgID09IHNpemVvZiAoVUlOVE4pLA0KPiAiQWxpZ25tZW50IG9m IFVJTlROIGRvZXMgbm90IG1lZXQgVUVGSSBTcGVjaWZpY2F0aW9uIERhdGEgVHlwZQ0KPiByZXF1 aXJlbWVudHMiKTsrU1RBVElDX0FTU0VSVCAoQUxJR05PRiAoVk9JRCAqKSAgPT0gc2l6ZW9mIChW T0lEICopLA0KPiAiQWxpZ25tZW50IG9mIFZPSUQgKiBkb2VzIG5vdCBtZWV0IFVFRkkgU3BlY2lm aWNhdGlvbiBEYXRhIFR5cGUNCj4gcmVxdWlyZW1lbnRzIik7KyAvLyAvLyBUaGUgZm9sbG93aW5n IHRocmVlIGVudW0gdHlwZXMgYXJlIHVzZWQgdG8gdmVyaWZ5DQo+IHRoYXQgdGhlIGNvbXBpbGVy IC8vIGNvbmZpZ3VyYXRpb24gZm9yIGVudW0gdHlwZXMgaXMgY29tcGxpYW50IHdpdGggU2VjdGlv bg0KPiAyLjMuMSBvZiB0aGVAQCAtODQ3LDYgKzg5MSwxMCBAQCBTVEFUSUNfQVNTRVJUIChzaXpl b2YNCj4gKF9fVkVSSUZZX1VJTlQ4X0VOVU1fU0laRSkgPT0gNCwgIlNpemUgb2YgZW51bSBkb2Vz IG5vdCBtZQ0KPiAgU1RBVElDX0FTU0VSVCAoc2l6ZW9mIChfX1ZFUklGWV9VSU5UMTZfRU5VTV9T SVpFKSA9PSA0LCAiU2l6ZSBvZiBlbnVtDQo+IGRvZXMgbm90IG1lZXQgVUVGSSBTcGVjaWZpY2F0 aW9uIERhdGEgVHlwZSByZXF1aXJlbWVudHMiKTsgU1RBVElDX0FTU0VSVA0KPiAoc2l6ZW9mIChf X1ZFUklGWV9VSU5UMzJfRU5VTV9TSVpFKSA9PSA0LCAiU2l6ZSBvZiBlbnVtIGRvZXMgbm90IG1l ZXQNCj4gVUVGSSBTcGVjaWZpY2F0aW9uIERhdGEgVHlwZSByZXF1aXJlbWVudHMiKTsgK1NUQVRJ Q19BU1NFUlQgKEFMSUdOT0YNCj4gKF9fVkVSSUZZX1VJTlQ4X0VOVU1fU0laRSkgID09IHNpemVv ZiAoX19WRVJJRllfVUlOVDhfRU5VTV9TSVpFKSwNCj4gIkFsaWdubWVudCBvZiBlbnVtIGRvZXMg bm90IG1lZXQgVUVGSSBTcGVjaWZpY2F0aW9uIERhdGEgVHlwZQ0KPiByZXF1aXJlbWVudHMiKTsr U1RBVElDX0FTU0VSVCAoQUxJR05PRiAoX19WRVJJRllfVUlOVDE2X0VOVU1fU0laRSkNCj4gPT0g c2l6ZW9mIChfX1ZFUklGWV9VSU5UMTZfRU5VTV9TSVpFKSwgIkFsaWdubWVudCBvZiBlbnVtIGRv ZXMgbm90DQo+IG1lZXQgVUVGSSBTcGVjaWZpY2F0aW9uIERhdGEgVHlwZSByZXF1aXJlbWVudHMi KTsrU1RBVElDX0FTU0VSVA0KPiAoQUxJR05PRiAoX19WRVJJRllfVUlOVDMyX0VOVU1fU0laRSkg PT0gc2l6ZW9mDQo+IChfX1ZFUklGWV9VSU5UMzJfRU5VTV9TSVpFKSwgIkFsaWdubWVudCBvZiBl bnVtIGRvZXMgbm90IG1lZXQgVUVGSQ0KPiBTcGVjaWZpY2F0aW9uIERhdGEgVHlwZSByZXF1aXJl bWVudHMiKTsrIC8qKiAgIE1hY3JvIHRoYXQgcmV0dXJucyBhIHBvaW50ZXINCj4gdG8gdGhlIGRh dGEgc3RydWN0dXJlIHRoYXQgY29udGFpbnMgYSBzcGVjaWZpZWQgZmllbGQgb2YgICB0aGF0IGRh dGEgc3RydWN0dXJlLg0KPiBUaGlzIGlzIGEgbGlnaHR3ZWlnaHQgbWV0aG9kIHRvIGhpZGUgaW5m b3JtYXRpb24gYnkgcGxhY2luZyBhQEAgLTg2OCw2DQo+ICs5MTYsNDYgQEAgU1RBVElDX0FTU0VS VCAoc2l6ZW9mIChfX1ZFUklGWV9VSU5UMzJfRU5VTV9TSVpFKSA9PSA0LA0KPiAiU2l6ZSBvZiBl bnVtIGRvZXMgbm90IG0NCj4gICoqLyAjZGVmaW5lIEJBU0VfQ1IoUmVjb3JkLCBUWVBFLCBGaWVs ZCkgICgoVFlQRSAqKSAoKENIQVI4ICopIChSZWNvcmQpIC0NCj4gT0ZGU0VUX09GIChUWVBFLCBG aWVsZCkpKSArLyoqKyAgQ2hlY2tzIHdoZXRoZXIgYSB2YWx1ZSBpcyBhIHBvd2VyIG9mDQo+IHR3 by4rKyAgQHBhcmFtICAgVmFsdWUgIFRoZSB2YWx1ZSB0byBjaGVjay4rKyAgQHJldHVybiAgV2hl dGhlciBWYWx1ZSBpcyBhDQo+IHBvd2VyIG9mIHR3by4rKiovKyNkZWZpbmUgSVNfUE9XMihWYWx1 ZSkgICgoVmFsdWUpICE9IDBVICYmICgoVmFsdWUpICYNCj4gKChWYWx1ZSkgLSAxVSkpID09IDBV KSsrLyoqKyAgQ2hlY2tzIHdoZXRoZXIgYSB2YWx1ZSBpcyBhbGlnbmVkIGJ5IGENCj4gc3BlY2lm aWVkIGFsaWdubWVudC4rKyAgQHBhcmFtICAgVmFsdWUgICAgICBUaGUgdmFsdWUgdG8gY2hlY2su KyAgQHBhcmFtDQo+IEFsaWdubWVudCAgVGhlIGFsaWdubWVudCBib3VuZGFyeSB1c2VkIHRvIGNo ZWNrIGFnYWluc3QuKysgIEByZXR1cm4NCj4gV2hldGhlciBWYWx1ZSBpcyBhbGlnbmVkIGJ5IEFs aWdubWVudC4rKiovKyNkZWZpbmUgSVNfQUxJR05FRChWYWx1ZSwNCj4gQWxpZ25tZW50KSAgKCgo VmFsdWUpICYgKChBbGlnbm1lbnQpIC0gMVUpKSA9PSAwVSkrKy8qKisgIENoZWNrcyB3aGV0aGVy IGENCj4gcG9pbnRlciBvciBhZGRyZXNzIGlzIGFsaWduZWQgYnkgYSBzcGVjaWZpZWQgYWxpZ25t ZW50LisrICBAcGFyYW0gICBBZGRyZXNzDQo+IFRoZSBwb2ludGVyIG9yIGFkZHJlc3MgdG8gY2hl Y2suKyAgQHBhcmFtICAgQWxpZ25tZW50ICBUaGUgYWxpZ25tZW50DQo+IGJvdW5kYXJ5IHVzZWQg dG8gY2hlY2sgYWdhaW5zdC4rKyAgQHJldHVybiAgV2hldGhlciBBZGRyZXNzIGlzIGFsaWduZWQg YnkNCj4gQWxpZ25tZW50LisqKi8rI2RlZmluZSBBRERSRVNTX0lTX0FMSUdORUQoQWRkcmVzcywg QWxpZ25tZW50KQ0KPiBJU19BTElHTkVEICgoVUlOVE4pIChBZGRyZXNzKSwgQWxpZ25tZW50KSsr LyoqKyAgRGV0ZXJtaW5lcyB0aGUgYWRkZW5kDQo+IHRvIGFkZCB0byBhIHZhbHVlIHRvIHJvdW5k IGl0IHVwIHRvIHRoZSBuZXh0IGJvdW5kYXJ5IG9mKyAgYSBzcGVjaWZpZWQNCj4gYWxpZ25tZW50 LisrICBAcGFyYW0gICBWYWx1ZSAgICAgIFRoZSB2YWx1ZSB0byByb3VuZCB1cC4rICBAcGFyYW0N Cj4gQWxpZ25tZW50ICBUaGUgYWxpZ25tZW50IGJvdW5kYXJ5IHVzZWQgdG8gcmV0dXJuIHRoZSBh ZGRlbmQuKysgIEByZXR1cm4NCj4gQWRkZW5kIHRvIHJvdW5kIFZhbHVlIHVwIHRvIGFsaWdubWVu dCBib3VuZGFyeSBBbGlnbm1lbnQuKyoqLysjZGVmaW5lDQo+IEFMSUdOX1ZBTFVFX0FEREVORChW YWx1ZSwgQWxpZ25tZW50KSAgKCgoQWxpZ25tZW50KSAtIChWYWx1ZSkpICYNCj4gKChBbGlnbm1l bnQpIC0gMVUpKSsgLyoqICAgUm91bmRzIGEgdmFsdWUgdXAgdG8gdGhlIG5leHQgYm91bmRhcnkg dXNpbmcgYQ0KPiBzcGVjaWZpZWQgYWxpZ25tZW50LiBAQCAtODgwLDcgKzk2OCw3IEBAIFNUQVRJ Q19BU1NFUlQgKHNpemVvZg0KPiAoX19WRVJJRllfVUlOVDMyX0VOVU1fU0laRSkgPT0gNCwgIlNp emUgb2YgZW51bSBkb2VzIG5vdCBtDQo+ICAgIEByZXR1cm4gIEEgdmFsdWUgdXAgdG8gdGhlIG5l eHQgYm91bmRhcnkuICAqKi8tI2RlZmluZQ0KPiBBTElHTl9WQUxVRShWYWx1ZSwgQWxpZ25tZW50 KSAoKFZhbHVlKSArICgoKEFsaWdubWVudCkgLSAoVmFsdWUpKSAmDQo+ICgoQWxpZ25tZW50KSAt IDEpKSkrI2RlZmluZSBBTElHTl9WQUxVRShWYWx1ZSwgQWxpZ25tZW50KSAoKFZhbHVlKSArDQo+ IEFMSUdOX1ZBTFVFX0FEREVORCAoVmFsdWUsIEFsaWdubWVudCkpICAvKiogICBBZGp1c3QgYSBw b2ludGVyIGJ5IGFkZGluZw0KPiB0aGUgbWluaW11bSBvZmZzZXQgcmVxdWlyZWQgZm9yIGl0IHRv IGJlIGFsaWduZWQgb24tLQ0KPiAyLjMxLjENCg0K