From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web11.3439.1679364074925583928 for ; Mon, 20 Mar 2023 19:01:15 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=E3Pf+8M0; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: hao.a.wu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1679364074; x=1710900074; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=at9ZylNuvn5oEearxriS1kd3UVRToZyUvDhM8tM9F1U=; b=E3Pf+8M0w8aJNqbc1gpVsPLze8RZLKLDw9r1kpTf2uw4cb1K4/zUlEpn iyJYmO1hA7Pf+VDcZo7llEnVWsb1e37uwEOf1FyK5yEpjROmDuT707FeK 62d4n4aJ0MaAsrLbri6e9GxoHIpfLZMHHAyt3lmMWGm5asPZnVcEBLJTR d0d4RqLjEcrdi5yB41yXULPq8XIpMfqwHBDpclA0c/TeVnJGSKG9JURBv ISooAPRgkkiX+HLkcXgAutrChnDn8pRYsOrL7Jf8l9XcIAyKWtd5nGdTf GJeVVxVVLzDxFJp86MCSN3ZxOyUrTRSWlB05jLdit/r+Lf/n8D5rQlLWZ g==; X-IronPort-AV: E=McAfee;i="6600,9927,10655"; a="341184798" X-IronPort-AV: E=Sophos;i="5.98,277,1673942400"; d="scan'208";a="341184798" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Mar 2023 19:01:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10655"; a="681345053" X-IronPort-AV: E=Sophos;i="5.98,277,1673942400"; d="scan'208";a="681345053" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga002.jf.intel.com with ESMTP; 20 Mar 2023 19:01:12 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Mon, 20 Mar 2023 19:01:12 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Mon, 20 Mar 2023 19:01:12 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.100) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Mon, 20 Mar 2023 19:01:12 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QtspLpKo66yr+d7UhrDr01lXMyht7oAHeyrDIqdX8cdyIcFHluX1oW5hEP8BzABw4ZnbYCfmZeQVpix+Pb0Gk2G0qBsN4ASUFvLUlbfaqAJXWAf5G7GH5u5rWFRznXT1kgO/81XygyHaLG9MqFnY37lHSdYcs8tYlURN56CFoU0hB38QhVF5DOQdD26SlvFJ8EKkajWE/wL2jMo2UuIFCrPpG5UvaqnRU+VmD+Ss9rsuODzHmoHQFYi2T2ZCkJP7QML7NoVz45/XXz7VUv8ixe9zQnQrCH5Pon9XFsTwy6zDAFNg1dVPIxDJGc7tO1OyVXj0hMnob+0wHPQDB8e3qw== 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=at9ZylNuvn5oEearxriS1kd3UVRToZyUvDhM8tM9F1U=; b=BP6EGFFc77Gv7rdlWu6UDIv2mc1n54qMthL/pJjpE06T7VhgrWy+tj2wpxTri5TNFpWmpltqQezPFBKFgWbAK/QCZNfFjqAgIf36GENcWAqgPA+L5MbOJlVVOLaeSRKr58u8vYjEUZwAnK07ve8iWUBTIVbW+g/y8fzeyBvVfFy3XNctLBnYfLJSni2tJmdLWGI+7NNnU9OET7cu4IhiEpD0L/V5vbViO1H8hnTJIWUTFck2mqr8+lqmjtyIiGkVAsgOaA4No2KRcaBFI6fynObmh+qmHijKPrHeShGKwW9lhof1APVCSPp6G+JxxI9VvL8dLLHRipXMzOXAT25fgA== 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 DM6PR11MB4025.namprd11.prod.outlook.com (2603:10b6:5:197::31) by BL1PR11MB5349.namprd11.prod.outlook.com (2603:10b6:208:308::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Tue, 21 Mar 2023 02:01:09 +0000 Received: from DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::f1aa:69b5:fa2b:859d]) by DM6PR11MB4025.namprd11.prod.outlook.com ([fe80::f1aa:69b5:fa2b:859d%4]) with mapi id 15.20.6178.037; Tue, 21 Mar 2023 02:01:09 +0000 From: "Wu, Hao A" To: Gerd Hoffmann , "devel@edk2.groups.io" CC: Ard Biesheuvel , "Wang, Jian J" , "Yao, Jiewen" , =?utf-8?B?TWFydmluIEjDpHVzZXI=?= , James Bottomley , Michael Roth , "Kinney, Michael D" , Oliver Steffen , "Xu, Min M" , "Gao, Liming" , "Ni, Ray" , Tom Lendacky , "Aktas, Erdem" , "Liu, Zhiguang" , Pawel Polawski , "Justen, Jordan L" Subject: Re: [PATCH 1/5] MdeModulePkg: Rename IS_ALIGNED macros to avoid name collisions Thread-Topic: [PATCH 1/5] MdeModulePkg: Rename IS_ALIGNED macros to avoid name collisions Thread-Index: AQHZTZyaDRJk8SU0OkeLQ2uze0f5cq8ElrUw Date: Tue, 21 Mar 2023 02:01:09 +0000 Message-ID: References: <20230303065115.406020-1-kraxel@redhat.com> <20230303065115.406020-2-kraxel@redhat.com> In-Reply-To: <20230303065115.406020-2-kraxel@redhat.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM6PR11MB4025:EE_|BL1PR11MB5349:EE_ x-ms-office365-filtering-correlation-id: 39f84e8a-c313-42b7-4161-08db29b0239c x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: F84Ub20mbAnVDJMeyXYocMoa4xIOL17IVoWfQgX33yvUw8NqeAjmXjfavBsx/g2mtIT0ukKy8thForuGPhj6L04MQVEznffyIvKcW+p36avUnwC7AveQHULM2pbo5VlrmmhXETue7cUs/1yLU7F9RzPf64wxJYUQJvYYNFRLNp5ZhJW+duyNd4CV7AfylfJzatd/c9vEAvO18ve/6LveHHvqz7I9Z/4WqEcWdunRiKoSVzIHK7O6YUED+Vqxr1eLmFnNvmC6vlsD5R2ANw8S+Xlch+cAVeUMgG67IpU1NSMbqdy1WcgPTWJWSNRG/xUdBYsR6G36GnqKpKVefvXC8TnzD8c/xJC7ZkUUPU5A4qBO1/jeXyFrzWb9ahONHDFookVtdfQopjZ+g4NwrIaC0YaaNZieZL7y+o6TMx3HlDCiWuKDivLb4FBzvQDh5wWL92T2EpWoIpZ8OZPBnsBn/IeexBV6V1behZp/+L3C4xb2Ikb0gNMVW6K3S055gD88xMwdQ90V/pH9tKqjQ5VVP/JEMLfquwQM84/Puy+Mjap0nNEnXDFRlP5QW46IKKG0iti5HQTb4++BEF71wntz3PohlcKev4TzmmwsZKvlTeVlYcJ6ymsxx9nWzesAjWxTfJkV1Jq1/WcKha0ah8Q2pjxE8kTMDnYwpul8kBCHU/SrjGyEOEr2nf7YQFrplHecGLk111hHgG2jj3K/AfjOHen+Je371kbVdq70vTs01FS6OhJvRcWrvagVmN17KkEO x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4025.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(376002)(39860400002)(136003)(366004)(396003)(346002)(451199018)(83380400001)(66574015)(38100700002)(71200400001)(7696005)(6506007)(54906003)(30864003)(316002)(110136005)(55016003)(33656002)(8936002)(76116006)(66946007)(52536014)(66556008)(4326008)(8676002)(66446008)(64756008)(66476007)(5660300002)(7416002)(41300700001)(2906002)(478600001)(86362001)(122000001)(82960400001)(107886003)(38070700005)(186003)(9686003)(53546011)(26005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UTREV29mVEdVNDNZM0ZEZ2oxd1QxMWRNa2JsU1FrNmdxR0d3dktBc2tvVmNZ?= =?utf-8?B?cVBXWGQ0OWF5OTdpL3RYK0pBRUNKQkU3ZGtsc01MQ0FLcG9BVFFXZTdRU0V4?= =?utf-8?B?WWtiQU5HQUczZkxXcHAxcUpSaDdWMm4yR3EvdGVyUWxtck9RMmlXQnVkRDAy?= =?utf-8?B?VmNrTmZFYm55YWcyNHo3MFlmOGJEb1RLSHp0SEJTZVpXNXJKOFV5SjJCT2N5?= =?utf-8?B?NG16TDRWSHEraWpPY1NoaGFzV2Y2a3ROSEVKcVAvRnV5d2FLNmJUbUo1SUpT?= =?utf-8?B?dlVPQTJ0WWJUc0xQRUVaSXdITHpBMDI1bndjZ255UmNjSTQwb0ZCc0VJUlhv?= =?utf-8?B?akhrdmFaZ0pPUnp2Z3E5aUNDcnI1bUpKRVNndDk1ZW5RN0RGZFllcW11ODN4?= =?utf-8?B?NFlOQUs3dk15bXJ1NFo3TzBsY3BnM3BnTGMycW93cEZqSGtWNkRpZGFwL0dx?= =?utf-8?B?RnN4UEsyQThta3dnTzlSNGd3Nkdsa2EyUllYMFZCVmVUSSt3a3BjcXA1WTdz?= =?utf-8?B?bTFlbE1oMXNrYktDcHVkcWVZd3U5Y0ttaDltSjMrdnAxSUNrWlNJWHF3OFRL?= =?utf-8?B?emdwaTVIejhyVmRqN3U0b1RtU1BDMXFLckJnM0NJMmU0MFVSc2dveEhIVkdK?= =?utf-8?B?QjRYNEIrN2N0QWNEWXV5TjZWK3JteXFuNnR4d3M0WWh3Yit2TTJxQ3N4Zjla?= =?utf-8?B?YUw1c0thMGFoNHlXaFFPTUUzTGpjRWloZmV1TTdLemhxdWQ3NURQa2RJMjhE?= =?utf-8?B?V1AyVEpqYkljcm80aUpKa2FINTYzOFBudmw0d3VaTW1PcHJ0TlEvTys3bkRY?= =?utf-8?B?RzUzOG5ac1JVZENWemJtNml3S1JDSW9TMXFoZE1oN0hraGh2NGJzdHg1Y3Q5?= =?utf-8?B?MmtrZmlRTVh0c0pNREdnVy9NNVB5czNDb285Mkx1RnNSdFp3TTcvTmhJb25k?= =?utf-8?B?dmI0K1kzVkRrQ245Z2N1d2xLY3lDTmtPb0Fkcm1pZnNoa1kraFBYTE5qWDZJ?= =?utf-8?B?cGlFZy96MlF2Nm5wYXVaVkRTQUdpUStLS0ZBWmZoeE1VLytKZDAvc2QyZnN2?= =?utf-8?B?bFpqZ3JWZnQwZ3pXNUM2NHlsR09vcDBCRnhMaTloNGt6cnpQV1FJMFZqVnBJ?= =?utf-8?B?eUxqenVnWDVlVGZTZ0VpTzZsaGFqU1p6d04yMDFLWnZLSGpBZ0VpeEJEanlo?= =?utf-8?B?QjBqczZSRDdRdWtFdE11TUtDUjZPdXZWMExXWjJHOHJHaHhzak5LQmlHeGFO?= =?utf-8?B?aE5jcTNGVWEwaVl1Vm9xdng4UFlmTkI3UnJqTW9GS0l2Uk9uVVFFVmVLSkt5?= =?utf-8?B?UDlLTmcveXRPZ1RxSzNmaXpZWjQ0VW1XSjh6RkVKdms0ZjhrUlhPM2RHc2dm?= =?utf-8?B?NmdGNXNSdkFFYWttdVBxeGJCYjRlZHFUUkVUS1VxcDlEODRrb1oraFRibDZl?= =?utf-8?B?K2c0b3NEVzNRdXo0VDRrc0x6WWk2d1FsbkxYL0dqelZ2K2ltS2FaYWhtTWls?= =?utf-8?B?OTY5aTVtV0s3NWc3eDM2UkxKUVowSkhyVGxJblhVV3Axdk9sOStIamRIN3dz?= =?utf-8?B?aldXUDdPQkxYS2lURFZNbHZ6QVhxa1c2VlhoVEVFTTYyRHBoSlhDbGZ2bGhS?= =?utf-8?B?alRMYzhpMVh0ZmdTM2RiV1ZRd1hGMkp3MStuaXJ0VzNTQXFCNi9zTzFZTWMz?= =?utf-8?B?c1VQbnN4U1U5N0FZb1IxWlB3Z0JYNzNCaUR5a2hCTENRNkZNTGU1bklBVlNt?= =?utf-8?B?OFIyV3ZucGxqWkUwWGJ1dU5tTzFsM2RtNEh2M2l2Rk9vVElBSkhTZm1KN01r?= =?utf-8?B?TFh3WjhiQlpuZUMzVGFzZk1xVythNUNZM1NXVEw1SjF6VEhrZ01hTU9PZ0tl?= =?utf-8?B?aG9sSldkOC9DQ0k4eXJjU3Q4WlhDRWlqQzJMRFJ5b2FiSEozWFgrZkk1dTh6?= =?utf-8?B?MndOWVNGeFN4b1hmWVBldWpQeFJnRVI1Y0ZOei9nWTZXdnhCS0tjK1pNNncz?= =?utf-8?B?YVFaR1BPV2tPaVQ5ajlMVThxR1hiOXE2Q0NaTEV4VGx1QkpEcUM3Y2lwUDIx?= =?utf-8?B?YTA2Yk5FcVhiVXlqc1I5cHhKZzRGUUtlaFc3VXlLYW1KWDdmRnNIRDhjRnBw?= =?utf-8?Q?cRw2UdSD5e9NGn2FVzX+SjOHZ?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4025.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39f84e8a-c313-42b7-4161-08db29b0239c X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Mar 2023 02:01:09.1014 (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: QJ3lKibgFbRkV+/eU4WGJr3rObr4ZHRVMUUOdKe+ZIVLF4pzsdTCa1sbX1w+G7fkWJReCpNiM6SkOoVLA7N+2Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB5349 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 UmV2aWV3ZWQtYnk6IEhhbyBBIFd1IDxoYW8uYS53dUBpbnRlbC5jb20+DQoNCkJlc3QgUmVnYXJk cywNCkhhbyBXdQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEdlcmQg SG9mZm1hbm4gPGtyYXhlbEByZWRoYXQuY29tPg0KPiBTZW50OiBGcmlkYXksIE1hcmNoIDMsIDIw MjMgMjo1MSBQTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IEFyZCBCaWVzaGV1 dmVsIDxhcmRiK3RpYW5vY29yZUBrZXJuZWwub3JnPjsgR2VyZCBIb2ZmbWFubg0KPiA8a3JheGVs QHJlZGhhdC5jb20+OyBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IFlhbywg Smlld2VuDQo+IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IE1hcnZpbiBIw6R1c2VyIDxtaGFldXNl ckBwb3N0ZW8uZGU+OyBKYW1lcw0KPiBCb3R0b21sZXkgPGplamJAbGludXguaWJtLmNvbT47IE1p Y2hhZWwgUm90aCA8bWljaGFlbC5yb3RoQGFtZC5jb20+Ow0KPiBXdSwgSGFvIEEgPGhhby5hLnd1 QGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBEDQo+IDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT47IE9saXZlciBTdGVmZmVuIDxvc3RlZmZlbkByZWRoYXQuY29tPjsgWHUsIE1pbg0KPiBN IDxtaW4ubS54dUBpbnRlbC5jb20+OyBHYW8sIExpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29t LmNuPjsgTmksIFJheQ0KPiA8cmF5Lm5pQGludGVsLmNvbT47IFRvbSBMZW5kYWNreSA8dGhvbWFz LmxlbmRhY2t5QGFtZC5jb20+OyBBa3RhcywNCj4gRXJkZW0gPGVyZGVtYWt0YXNAZ29vZ2xlLmNv bT47IExpdSwgWmhpZ3VhbmcgPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+Ow0KPiBQYXdlbCBQb2xh d3NraSA8cHBvbGF3c2tAcmVkaGF0LmNvbT47IEp1c3RlbiwgSm9yZGFuIEwNCj4gPGpvcmRhbi5s Lmp1c3RlbkBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSCAxLzVdIE1kZU1vZHVsZVBrZzog UmVuYW1lIElTX0FMSUdORUQgbWFjcm9zIHRvIGF2b2lkDQo+IG5hbWUgY29sbGlzaW9ucw0KPiAN Cj4gRnJvbTogTWFydmluIEjDpHVzZXIgPG1oYWV1c2VyQHBvc3Rlby5kZT4NCj4gDQo+IFRoaXMg cGF0Y2ggaXMgYSBwcmVwYXJhdGlvbiBmb3IgdGhlIHBhdGNoZXMgdGhhdCBmb2xsb3cuIFRoZQ0K PiBzdWJzZXF1ZW50IHBhdGNoZXMgd2lsbCBpbnRyb2R1Y2UgYW5kIGludGVncmF0ZSBuZXcgYWxp Z25tZW50LXJlbGF0ZWQNCj4gbWFjcm9zLCB3aGljaCBjb2xsaWRlIHdpdGggZXhpc3RpbmcgZGVm aW5pdGlvbnMgaW4gTWRlTW9kdWxlUGtnLg0KPiBUZW1wb3JhcmlseSByZW5hbWUgdGhlbSB0byBh dm9pZCBidWlsZCBmYWlsdXJlLCB0aWxsIHRoZXkgY2FuIGJlDQo+IHN1YnN0aXR1dGVkIHdpdGgg dGhlIG5ldywgc2hhcmVkIGRlZmluaXRpb25zLg0KPiANCj4gQ2M6IEppYW4gSiBXYW5nIDxqaWFu Lmoud2FuZ0BpbnRlbC5jb20+DQo+IENjOiBIYW8gQSBXdSA8aGFvLmEud3VAaW50ZWwuY29tPg0K PiBDYzogUmF5IE5pIDxyYXkubmlAaW50ZWwuY29tPg0KPiBTaWduZWQtb2ZmLWJ5OiBNYXJ2aW4g SMOkdXNlciA8bWhhZXVzZXJAcG9zdGVvLmRlPg0KPiAtLS0NCj4gIE1kZU1vZHVsZVBrZy9CdXMv QXRhL0FoY2lQZWkvQWhjaVBlaS5oICAgICAgICB8ICA0ICstLQ0KPiAgLi4uL0F0YS9BdGFBdGFw aVBhc3NUaHJ1L0F0YUF0YXBpUGFzc1RocnUuaCAgIHwgIDIgKy0NCj4gIE1kZU1vZHVsZVBrZy9C dXMvQXRhL0F0YUJ1c0R4ZS9BdGFCdXMuaCAgICAgICB8ICAyICstDQo+ICBNZGVNb2R1bGVQa2cv QnVzL1Njc2kvU2NzaURpc2tEeGUvU2NzaURpc2suaCAgfCAgMiArLQ0KPiAgLi4uL0J1cy9VZnMv VWZzQmxvY2tJb1BlaS9VZnNCbG9ja0lvUGVpLmggICAgIHwgIDIgKy0NCj4gIC4uLi9CdXMvVWZz L1Vmc1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NUaHJ1LmggICAgICB8ICAyICstDQo+ICBNZGVNb2R1bGVQ a2cvVW5pdmVyc2FsL0ViY0R4ZS9FYmNFeGVjdXRlLmggICAgfCAgNCArLS0NCj4gIE1kZU1vZHVs ZVBrZy9CdXMvQXRhL0FoY2lQZWkvQWhjaU1vZGUuYyAgICAgICB8ICAyICstDQo+ICAuLi4vQnVz L0F0YS9BaGNpUGVpL0FoY2lQZWlQYXNzVGhydS5jICAgICAgICAgfCAgNiArKy0tDQo+ICAuLi4v QXRhL0F0YUF0YXBpUGFzc1RocnUvQXRhQXRhcGlQYXNzVGhydS5jICAgfCAxMiArKystLS0tDQo+ ICAuLi4vQnVzL0F0YS9BdGFCdXNEeGUvQXRhUGFzc1RocnVFeGVjdXRlLmMgICAgfCAgMiArLQ0K PiAgTWRlTW9kdWxlUGtnL0J1cy9TY3NpL1Njc2lEaXNrRHhlL1Njc2lEaXNrLmMgIHwgIDQgKy0t DQo+ICAuLi4vQnVzL1Vmcy9VZnNQYXNzVGhydUR4ZS9VZnNQYXNzVGhydS5jICAgICAgfCAgNiAr Ky0tDQo+ICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0ViY0R4ZS9FYmNFeGVjdXRlLmMgICAgfCAz NiArKysrKysrKystLS0tLS0tLS0tDQo+ICAxNCBmaWxlcyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25z KCspLCA0MyBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVz L0F0YS9BaGNpUGVpL0FoY2lQZWkuaA0KPiBiL01kZU1vZHVsZVBrZy9CdXMvQXRhL0FoY2lQZWkv QWhjaVBlaS5oDQo+IGluZGV4IDRhZWQxY2I3YWQ4YS4uNzFkMzRjOTYyYWQxIDEwMDY0NA0KPiAt LS0gYS9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lQZWkuaA0KPiArKysgYi9NZGVN b2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lQZWkuaA0KPiBAQCAtMTQ2LDggKzE0Niw4IEBA IHR5cGVkZWYgdW5pb24gew0KPiAgI2RlZmluZSBBSENJX1BPUlRfU0VSUiAgMHgwMDMwDQo+ICAj ZGVmaW5lIEFIQ0lfUE9SVF9DSSAgICAweDAwMzgNCj4gDQo+IC0jZGVmaW5lIElTX0FMSUdORUQo YWRkciwgc2l6ZSkgICAgICAgICAoKChVSU5UTikgKGFkZHIpICYgKHNpemUgLSAxKSkgPT0gMCkN Cj4gLSNkZWZpbmUgVElNRVJfUEVSSU9EX1NFQ09ORFMoU2Vjb25kcykgIE11bHRVNjR4MzIoKFVJ TlQ2NCkoU2Vjb25kcyksDQo+IDEwMDAwMDAwKQ0KPiArI2RlZmluZSBBRERSRVNTX0lTX0FMSUdO RURfKGFkZHIsIHNpemUpICAoKChVSU5UTikgKGFkZHIpICYgKHNpemUgLSAxKSkgPT0gMCkNCj4g KyNkZWZpbmUgVElNRVJfUEVSSU9EX1NFQ09ORFMoU2Vjb25kcykgICAgTXVsdFU2NHgzMigoVUlO VDY0KShTZWNvbmRzKSwNCj4gMTAwMDAwMDApDQo+IA0KPiAgI3ByYWdtYSBwYWNrKDEpDQo+IA0K PiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQXRhcGlQYXNzVGhydS9BdGFB dGFwaVBhc3NUaHJ1LmgNCj4gYi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFBdGFwaVBhc3NUaHJ1 L0F0YUF0YXBpUGFzc1RocnUuaA0KPiBpbmRleCA2MmJhNmQ2NjgwZGQuLjc5Mzc4ODY2MTRlMSAx MDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQXRhcGlQYXNzVGhydS9BdGFB dGFwaVBhc3NUaHJ1LmgNCj4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQXRhcGlQYXNz VGhydS9BdGFBdGFwaVBhc3NUaHJ1LmgNCj4gQEAgLTE0OCw3ICsxNDgsNyBAQCBzdHJ1Y3QgX0FU QV9OT05CTE9DS19UQVNLIHsNCj4gICNkZWZpbmUgQVRBX0FUQVBJX1RJTUVPVVQgICBFRklfVElN RVJfUEVSSU9EX1NFQ09ORFMoMykNCj4gICNkZWZpbmUgQVRBX1NQSU5VUF9USU1FT1VUICBFRklf VElNRVJfUEVSSU9EX1NFQ09ORFMoMTApDQo+IA0KPiAtI2RlZmluZSBJU19BTElHTkVEKGFkZHIs IHNpemUpICAoKChVSU5UTikgKGFkZHIpICYgKHNpemUgLSAxKSkgPT0gMCkNCj4gKyNkZWZpbmUg QUREUkVTU19JU19BTElHTkVEXyhhZGRyLCBzaXplKSAgKCgoVUlOVE4pIChhZGRyKSAmIChzaXpl IC0gMSkpID09IDApDQo+IA0KPiAgI2RlZmluZSBBVEFfUEFTU19USFJVX1BSSVZBVEVfREFUQV9G Uk9NX1RISVMoYSkgXA0KPiAgICBDUiAoYSwgXA0KPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtn L0J1cy9BdGEvQXRhQnVzRHhlL0F0YUJ1cy5oDQo+IGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRh QnVzRHhlL0F0YUJ1cy5oDQo+IGluZGV4IDQ0MjhjNDg0ZmQ2Yy4uNDczNDZlOTExZDQ3IDEwMDY0 NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFCdXNEeGUvQXRhQnVzLmgNCj4gKysr IGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQnVzRHhlL0F0YUJ1cy5oDQo+IEBAIC03Niw3ICs3 Niw3IEBADQo+ICAjZGVmaW5lIEFUQV9UQVNLX1NJR05BVFVSRSAgICAgIFNJR05BVFVSRV8zMiAo J0EnLCAnVCcsICdTJywgJ0snKQ0KPiAgI2RlZmluZSBBVEFfREVWSUNFX1NJR05BVFVSRSAgICBT SUdOQVRVUkVfMzIgKCdBJywgJ0InLCAnSScsICdEJykNCj4gICNkZWZpbmUgQVRBX1NVQl9UQVNL X1NJR05BVFVSRSAgU0lHTkFUVVJFXzMyICgnQScsICdTJywgJ1QnLCAnUycpDQo+IC0jZGVmaW5l IElTX0FMSUdORUQoYWRkciwgc2l6ZSkgICgoKFVJTlROKSAoYWRkcikgJiAoc2l6ZSAtIDEpKSA9 PSAwKQ0KPiArI2RlZmluZSBBRERSRVNTX0lTX0FMSUdORURfKGFkZHIsIHNpemUpICAoKChVSU5U TikgKGFkZHIpICYgKHNpemUgLSAxKSkgPT0gMCkNCj4gDQo+ICAvLw0KPiAgLy8gQVRBIGJ1cyBk YXRhIHN0cnVjdHVyZSBmb3IgQVRBIGNvbnRyb2xsZXINCj4gZGlmZiAtLWdpdCBhL01kZU1vZHVs ZVBrZy9CdXMvU2NzaS9TY3NpRGlza0R4ZS9TY3NpRGlzay5oDQo+IGIvTWRlTW9kdWxlUGtnL0J1 cy9TY3NpL1Njc2lEaXNrRHhlL1Njc2lEaXNrLmgNCj4gaW5kZXggNWI0MDQ3ZTFkYmRkLi5lZDM4 NGFkNTIxODIgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvU2NzaS9TY3NpRGlza0R4 ZS9TY3NpRGlzay5oDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9CdXMvU2NzaS9TY3NpRGlza0R4ZS9T Y3NpRGlzay5oDQo+IEBAIC0zOCw3ICszOCw3IEBAIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQo+IA0KPiAgI2RlZmluZSBJU19ERVZJQ0VfRklYRUQoYSkgIChh KS0+Rml4ZWREZXZpY2UgPyAxIDogMA0KPiANCj4gLSNkZWZpbmUgSVNfQUxJR05FRChhZGRyLCBz aXplKSAgKCgoVUlOVE4pIChhZGRyKSAmIChzaXplIC0gMSkpID09IDApDQo+ICsjZGVmaW5lIEFE RFJFU1NfSVNfQUxJR05FRF8oYWRkciwgc2l6ZSkgICgoKFVJTlROKSAoYWRkcikgJiAoc2l6ZSAt IDEpKSA9PSAwKQ0KPiANCj4gICNkZWZpbmUgVUZTX1dMVU5fUlBNQiAgMHhDNA0KPiANCj4gZGlm ZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9CdXMvVWZzL1Vmc0Jsb2NrSW9QZWkvVWZzQmxvY2tJb1Bl aS5oDQo+IGIvTWRlTW9kdWxlUGtnL0J1cy9VZnMvVWZzQmxvY2tJb1BlaS9VZnNCbG9ja0lvUGVp LmgNCj4gaW5kZXggYTBiNjE1YjdlYWIzLi4xYWRiMzgyYWE4YzMgMTAwNjQ0DQo+IC0tLSBhL01k ZU1vZHVsZVBrZy9CdXMvVWZzL1Vmc0Jsb2NrSW9QZWkvVWZzQmxvY2tJb1BlaS5oDQo+ICsrKyBi L01kZU1vZHVsZVBrZy9CdXMvVWZzL1Vmc0Jsb2NrSW9QZWkvVWZzQmxvY2tJb1BlaS5oDQo+IEBA IC0xMzMsNyArMTMzLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1VGU19QRUlNX0hDX1BSSVZBVEVfREFU QSB7DQo+IA0KPiAgI2RlZmluZSBST1VORFVQOCh4KSAgKCgoeCkgJSA4ID09IDApID8gKHgpIDog KCh4KSAvIDggKyAxKSAqIDgpDQo+IA0KPiAtI2RlZmluZSBJU19BTElHTkVEKGFkZHIsIHNpemUp ICAoKChVSU5UTikgKGFkZHIpICYgKHNpemUgLSAxKSkgPT0gMCkNCj4gKyNkZWZpbmUgQUREUkVT U19JU19BTElHTkVEXyhhZGRyLCBzaXplKSAgKCgoVUlOVE4pIChhZGRyKSAmIChzaXplIC0gMSkp ID09IDApDQo+IA0KPiAgI2RlZmluZSBHRVRfVUZTX1BFSU1fSENfUFJJVkFURV9EQVRBX0ZST01f VEhJUyhhKSAgICAgICAgIENSIChhLA0KPiBVRlNfUEVJTV9IQ19QUklWQVRFX0RBVEEsIEJsa0lv UHBpLCBVRlNfUEVJTV9IQ19TSUcpDQo+ICAjZGVmaW5lIEdFVF9VRlNfUEVJTV9IQ19QUklWQVRF X0RBVEFfRlJPTV9USElTMihhKSAgICAgICAgQ1IgKGEsDQo+IFVGU19QRUlNX0hDX1BSSVZBVEVf REFUQSwgQmxrSW8yUHBpLCBVRlNfUEVJTV9IQ19TSUcpDQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1 bGVQa2cvQnVzL1Vmcy9VZnNQYXNzVGhydUR4ZS9VZnNQYXNzVGhydS5oDQo+IGIvTWRlTW9kdWxl UGtnL0J1cy9VZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnUuaA0KPiBpbmRleCAyYjRmNWQz MmQ5MDEuLjBlYzM3ZTU2NjUyYiAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9VZnMv VWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnUuaA0KPiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL1Vm cy9VZnNQYXNzVGhydUR4ZS9VZnNQYXNzVGhydS5oDQo+IEBAIC0xMDUsNyArMTA1LDcgQEAgdHlw ZWRlZiBzdHJ1Y3Qgew0KPiANCj4gICNkZWZpbmUgUk9VTkRVUDgoeCkgICgoKHgpICUgOCA9PSAw KSA/ICh4KSA6ICgoeCkgLyA4ICsgMSkgKiA4KQ0KPiANCj4gLSNkZWZpbmUgSVNfQUxJR05FRChh ZGRyLCBzaXplKSAgKCgoVUlOVE4pIChhZGRyKSAmIChzaXplIC0gMSkpID09IDApDQo+ICsjZGVm aW5lIEFERFJFU1NfSVNfQUxJR05FRF8oYWRkciwgc2l6ZSkgICgoKFVJTlROKSAoYWRkcikgJiAo c2l6ZSAtIDEpKSA9PSAwKQ0KPiANCj4gICNkZWZpbmUgVUZTX1BBU1NfVEhSVV9QUklWQVRFX0RB VEFfRlJPTV9USElTKGEpIFwNCj4gICAgQ1IgKGEsIFwNCj4gZGlmZiAtLWdpdCBhL01kZU1vZHVs ZVBrZy9Vbml2ZXJzYWwvRWJjRHhlL0ViY0V4ZWN1dGUuaA0KPiBiL01kZU1vZHVsZVBrZy9Vbml2 ZXJzYWwvRWJjRHhlL0ViY0V4ZWN1dGUuaA0KPiBpbmRleCAzMmI4NjcwYzViMmEuLjZkYzY3MzBh YjA5NSAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9FYmNEeGUvRWJjRXhl Y3V0ZS5oDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRWJjRHhlL0ViY0V4ZWN1dGUu aA0KPiBAQCAtMTQsOCArMTQsOCBAQCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xh dXNlLVBhdGVudA0KPiAgLy8NCj4gIC8vIE1hY3JvcyB0byBjaGVjayBhbmQgc2V0IGFsaWdubWVu dA0KPiAgLy8NCj4gLSNkZWZpbmUgQVNTRVJUX0FMSUdORUQoYWRkciwgc2l6ZSkgIEFTU0VSVCAo ISgoVUlOVDMyKSAoYWRkcikgJiAoc2l6ZSAtIDEpKSkNCj4gLSNkZWZpbmUgSVNfQUxJR05FRChh ZGRyLCBzaXplKSAgICAgICEoKFVJTlQzMikgKGFkZHIpICYgKHNpemUgLSAxKSkNCj4gKyNkZWZp bmUgQVNTRVJUX0FMSUdORUQoYWRkciwgc2l6ZSkgICAgICAgQVNTRVJUICghKChVSU5UMzIpIChh ZGRyKSAmIChzaXplIC0NCj4gMSkpKQ0KPiArI2RlZmluZSBBRERSRVNTX0lTX0FMSUdORURfKGFk ZHIsIHNpemUpICAhKChVSU5UMzIpIChhZGRyKSAmIChzaXplIC0gMSkpDQo+IA0KPiAgLy8NCj4g IC8vIERlYnVnIG1hY3JvDQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNp UGVpL0FoY2lNb2RlLmMNCj4gYi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lNb2Rl LmMNCj4gaW5kZXggN2I5Nzg4N2M1ZGJkLi5kOTNmYTc4YzgxZjMgMTAwNjQ0DQo+IC0tLSBhL01k ZU1vZHVsZVBrZy9CdXMvQXRhL0FoY2lQZWkvQWhjaU1vZGUuYw0KPiArKysgYi9NZGVNb2R1bGVQ a2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lNb2RlLmMNCj4gQEAgLTIxMjYsNyArMjEyNiw3IEBAIFRy dXN0VHJhbnNmZXJBdGFEZXZpY2UgKA0KPiAgICAgIC8vIEFUQSBQYXNzVGhydSBQUEkuDQo+ICAg ICAgLy8NCj4gICAgICBpZiAoKEF0YVBhc3NUaHJ1LT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYNCj4g LSAgICAgICAgIUlTX0FMSUdORUQgKEJ1ZmZlciwgQXRhUGFzc1RocnUtPk1vZGUtPklvQWxpZ24p KQ0KPiArICAgICAgICAhQUREUkVTU19JU19BTElHTkVEXyAoQnVmZmVyLCBBdGFQYXNzVGhydS0+ TW9kZS0+SW9BbGlnbikpDQo+ICAgICAgew0KPiAgICAgICAgTmV3QnVmZmVyID0gQWxsb2NhdGVB bGlnbmVkUGFnZXMgKA0KPiAgICAgICAgICAgICAgICAgICAgICBFRklfU0laRV9UT19QQUdFUyAo VHJhbnNmZXJMZW5ndGgpLA0KPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQWhj aVBlaS9BaGNpUGVpUGFzc1RocnUuYw0KPiBiL01kZU1vZHVsZVBrZy9CdXMvQXRhL0FoY2lQZWkv QWhjaVBlaVBhc3NUaHJ1LmMNCj4gaW5kZXggZDVlZDkzZGM0ZjY3Li4wYzQ5MDU5YTAwZDUgMTAw NjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvQXRhL0FoY2lQZWkvQWhjaVBlaVBhc3NUaHJ1 LmMNCj4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQWhjaVBlaS9BaGNpUGVpUGFzc1RocnUu Yw0KPiBAQCAtMTk0LDE1ICsxOTQsMTUgQEAgQWhjaUF0YVBhc3NUaHJ1UGFzc1RocnUgKA0KPiAg ICB9DQo+IA0KPiAgICBJb0FsaWduID0gVGhpcy0+TW9kZS0+SW9BbGlnbjsNCj4gLSAgaWYgKChJ b0FsaWduID4gMSkgJiYgIUlTX0FMSUdORUQgKFBhY2tldC0+SW5EYXRhQnVmZmVyLCBJb0FsaWdu KSkgew0KPiArICBpZiAoKElvQWxpZ24gPiAxKSAmJiAhQUREUkVTU19JU19BTElHTkVEXyAoUGFj a2V0LT5JbkRhdGFCdWZmZXIsIElvQWxpZ24pKQ0KPiB7DQo+ICAgICAgcmV0dXJuIEVGSV9JTlZB TElEX1BBUkFNRVRFUjsNCj4gICAgfQ0KPiANCj4gLSAgaWYgKChJb0FsaWduID4gMSkgJiYgIUlT X0FMSUdORUQgKFBhY2tldC0+T3V0RGF0YUJ1ZmZlciwgSW9BbGlnbikpIHsNCj4gKyAgaWYgKChJ b0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRF8gKFBhY2tldC0+T3V0RGF0YUJ1ZmZl ciwNCj4gSW9BbGlnbikpIHsNCj4gICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0K PiAgICB9DQo+IA0KPiAtICBpZiAoKElvQWxpZ24gPiAxKSAmJiAhSVNfQUxJR05FRCAoUGFja2V0 LT5Bc2IsIElvQWxpZ24pKSB7DQo+ICsgIGlmICgoSW9BbGlnbiA+IDEpICYmICFBRERSRVNTX0lT X0FMSUdORURfIChQYWNrZXQtPkFzYiwgSW9BbGlnbikpIHsNCj4gICAgICByZXR1cm4gRUZJX0lO VkFMSURfUEFSQU1FVEVSOw0KPiAgICB9DQo+IA0KPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtn L0J1cy9BdGEvQXRhQXRhcGlQYXNzVGhydS9BdGFBdGFwaVBhc3NUaHJ1LmMNCj4gYi9NZGVNb2R1 bGVQa2cvQnVzL0F0YS9BdGFBdGFwaVBhc3NUaHJ1L0F0YUF0YXBpUGFzc1RocnUuYw0KPiBpbmRl eCAxMDcwNTE2YjM1OGEuLjMyNGFiYWRkMDJkZCAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxlUGtn L0J1cy9BdGEvQXRhQXRhcGlQYXNzVGhydS9BdGFBdGFwaVBhc3NUaHJ1LmMNCj4gKysrIGIvTWRl TW9kdWxlUGtnL0J1cy9BdGEvQXRhQXRhcGlQYXNzVGhydS9BdGFBdGFwaVBhc3NUaHJ1LmMNCj4g QEAgLTEyOTksMTUgKzEyOTksMTUgQEAgQXRhUGFzc1RocnVQYXNzVGhydSAoDQo+IA0KPiAgICBJ bnN0YW5jZSA9IEFUQV9QQVNTX1RIUlVfUFJJVkFURV9EQVRBX0ZST01fVEhJUyAoVGhpcyk7DQo+ IA0KPiAtICBpZiAoKFRoaXMtPk1vZGUtPklvQWxpZ24gPiAxKSAmJiAhSVNfQUxJR05FRCAoUGFj a2V0LT5JbkRhdGFCdWZmZXIsIFRoaXMtDQo+ID5Nb2RlLT5Jb0FsaWduKSkgew0KPiArICBpZiAo KFRoaXMtPk1vZGUtPklvQWxpZ24gPiAxKSAmJiAhQUREUkVTU19JU19BTElHTkVEXyAoUGFja2V0 LQ0KPiA+SW5EYXRhQnVmZmVyLCBUaGlzLT5Nb2RlLT5Jb0FsaWduKSkgew0KPiAgICAgIHJldHVy biBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ICAgIH0NCj4gDQo+IC0gIGlmICgoVGhpcy0+TW9k ZS0+SW9BbGlnbiA+IDEpICYmICFJU19BTElHTkVEIChQYWNrZXQtPk91dERhdGFCdWZmZXIsIFRo aXMtDQo+ID5Nb2RlLT5Jb0FsaWduKSkgew0KPiArICBpZiAoKFRoaXMtPk1vZGUtPklvQWxpZ24g PiAxKSAmJiAhQUREUkVTU19JU19BTElHTkVEXyAoUGFja2V0LQ0KPiA+T3V0RGF0YUJ1ZmZlciwg VGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1F VEVSOw0KPiAgICB9DQo+IA0KPiAtICBpZiAoKFRoaXMtPk1vZGUtPklvQWxpZ24gPiAxKSAmJiAh SVNfQUxJR05FRCAoUGFja2V0LT5Bc2IsIFRoaXMtPk1vZGUtDQo+ID5Jb0FsaWduKSkgew0KPiAr ICBpZiAoKFRoaXMtPk1vZGUtPklvQWxpZ24gPiAxKSAmJiAhQUREUkVTU19JU19BTElHTkVEXyAo UGFja2V0LT5Bc2IsIFRoaXMtDQo+ID5Nb2RlLT5Jb0FsaWduKSkgew0KPiAgICAgIHJldHVybiBF RklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ICAgIH0NCj4gDQo+IEBAIC0yMDM5LDE1ICsyMDM5LDE1 IEBAIEV4dFNjc2lQYXNzVGhydVBhc3NUaHJ1ICgNCj4gICAgICByZXR1cm4gRUZJX0lOVkFMSURf UEFSQU1FVEVSOw0KPiAgICB9DQo+IA0KPiAtICBpZiAoKFRoaXMtPk1vZGUtPklvQWxpZ24gPiAx KSAmJiAhSVNfQUxJR05FRCAoUGFja2V0LT5JbkRhdGFCdWZmZXIsIFRoaXMtDQo+ID5Nb2RlLT5J b0FsaWduKSkgew0KPiArICBpZiAoKFRoaXMtPk1vZGUtPklvQWxpZ24gPiAxKSAmJiAhQUREUkVT U19JU19BTElHTkVEXyAoUGFja2V0LQ0KPiA+SW5EYXRhQnVmZmVyLCBUaGlzLT5Nb2RlLT5Jb0Fs aWduKSkgew0KPiAgICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ICAgIH0NCj4g DQo+IC0gIGlmICgoVGhpcy0+TW9kZS0+SW9BbGlnbiA+IDEpICYmICFJU19BTElHTkVEIChQYWNr ZXQtPk91dERhdGFCdWZmZXIsIFRoaXMtDQo+ID5Nb2RlLT5Jb0FsaWduKSkgew0KPiArICBpZiAo KFRoaXMtPk1vZGUtPklvQWxpZ24gPiAxKSAmJiAhQUREUkVTU19JU19BTElHTkVEXyAoUGFja2V0 LQ0KPiA+T3V0RGF0YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gICAgICByZXR1 cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiAgICB9DQo+IA0KPiAtICBpZiAoKFRoaXMtPk1v ZGUtPklvQWxpZ24gPiAxKSAmJiAhSVNfQUxJR05FRCAoUGFja2V0LT5TZW5zZURhdGEsIFRoaXMt DQo+ID5Nb2RlLT5Jb0FsaWduKSkgew0KPiArICBpZiAoKFRoaXMtPk1vZGUtPklvQWxpZ24gPiAx KSAmJiAhQUREUkVTU19JU19BTElHTkVEXyAoUGFja2V0LQ0KPiA+U2Vuc2VEYXRhLCBUaGlzLT5N b2RlLT5Jb0FsaWduKSkgew0KPiAgICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ ICAgIH0NCj4gDQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFCdXNEeGUv QXRhUGFzc1RocnVFeGVjdXRlLmMNCj4gYi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFCdXNEeGUv QXRhUGFzc1RocnVFeGVjdXRlLmMNCj4gaW5kZXggNDMzNDE2OWQyNTZhLi4xOGFhNGY5YmI2NjYg MTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvQXRhL0F0YUJ1c0R4ZS9BdGFQYXNzVGhy dUV4ZWN1dGUuYw0KPiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFCdXNEeGUvQXRhUGFz c1RocnVFeGVjdXRlLmMNCj4gQEAgLTEwNDAsNyArMTA0MCw3IEBAIFRydXN0VHJhbnNmZXJBdGFE ZXZpY2UgKA0KPiAgICAgIC8vIENoZWNrIHRoZSBhbGlnbm1lbnQgb2YgdGhlIGluY29taW5nIGJ1 ZmZlciBwcmlvciB0byBpbnZva2luZyB1bmRlcmx5aW5nDQo+IEFUQSBQYXNzVGhydQ0KPiAgICAg IC8vDQo+ICAgICAgQXRhUGFzc1RocnUgPSBBdGFEZXZpY2UtPkF0YUJ1c0RyaXZlckRhdGEtPkF0 YVBhc3NUaHJ1Ow0KPiAtICAgIGlmICgoQXRhUGFzc1RocnUtPk1vZGUtPklvQWxpZ24gPiAxKSAm JiAhSVNfQUxJR05FRCAoQnVmZmVyLCBBdGFQYXNzVGhydS0NCj4gPk1vZGUtPklvQWxpZ24pKSB7 DQo+ICsgICAgaWYgKChBdGFQYXNzVGhydS0+TW9kZS0+SW9BbGlnbiA+IDEpICYmICFBRERSRVNT X0lTX0FMSUdORURfIChCdWZmZXIsDQo+IEF0YVBhc3NUaHJ1LT5Nb2RlLT5Jb0FsaWduKSkgew0K PiAgICAgICAgTmV3QnVmZmVyID0gQWxsb2NhdGVBbGlnbmVkQnVmZmVyIChBdGFEZXZpY2UsIFRy YW5zZmVyTGVuZ3RoKTsNCj4gICAgICAgIGlmIChOZXdCdWZmZXIgPT0gTlVMTCkgew0KPiAgICAg ICAgICByZXR1cm4gRUZJX09VVF9PRl9SRVNPVVJDRVM7DQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1 bGVQa2cvQnVzL1Njc2kvU2NzaURpc2tEeGUvU2NzaURpc2suYw0KPiBiL01kZU1vZHVsZVBrZy9C dXMvU2NzaS9TY3NpRGlza0R4ZS9TY3NpRGlzay5jDQo+IGluZGV4IGZiYzIzNmNiNDY1ZS4uZmFm NGFlMzMyZTQ2IDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvQnVzL1Njc2kvU2NzaURpc2tE eGUvU2NzaURpc2suYw0KPiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL1Njc2kvU2NzaURpc2tEeGUv U2NzaURpc2suYw0KPiBAQCAtMjAyOSw3ICsyMDI5LDcgQEAgU2NzaURpc2tSZWNlaXZlRGF0YSAo DQo+ICAgICAgICBnb3RvIERvbmU7DQo+ICAgICAgfQ0KPiANCj4gLSAgICBpZiAoKFNjc2lEaXNr RGV2aWNlLT5TY3NpSW8tPklvQWxpZ24gPiAxKSAmJiAhSVNfQUxJR05FRCAoUGF5bG9hZEJ1ZmZl ciwNCj4gU2NzaURpc2tEZXZpY2UtPlNjc2lJby0+SW9BbGlnbikpIHsNCj4gKyAgICBpZiAoKFNj c2lEaXNrRGV2aWNlLT5TY3NpSW8tPklvQWxpZ24gPiAxKSAmJiAhQUREUkVTU19JU19BTElHTkVE Xw0KPiAoUGF5bG9hZEJ1ZmZlciwgU2NzaURpc2tEZXZpY2UtPlNjc2lJby0+SW9BbGlnbikpIHsN Cj4gICAgICAgIEFsaWduZWRCdWZmZXIgPSBBbGxvY2F0ZUFsaWduZWRCdWZmZXIgKFNjc2lEaXNr RGV2aWNlLCBQYXlsb2FkQnVmZmVyU2l6ZSk7DQo+ICAgICAgICBpZiAoQWxpZ25lZEJ1ZmZlciA9 PSBOVUxMKSB7DQo+ICAgICAgICAgIFN0YXR1cyA9IEVGSV9PVVRfT0ZfUkVTT1VSQ0VTOw0KPiBA QCAtMjI0OSw3ICsyMjQ5LDcgQEAgU2NzaURpc2tTZW5kRGF0YSAoDQo+ICAgICAgICBnb3RvIERv bmU7DQo+ICAgICAgfQ0KPiANCj4gLSAgICBpZiAoKFNjc2lEaXNrRGV2aWNlLT5TY3NpSW8tPklv QWxpZ24gPiAxKSAmJiAhSVNfQUxJR05FRCAoUGF5bG9hZEJ1ZmZlciwNCj4gU2NzaURpc2tEZXZp Y2UtPlNjc2lJby0+SW9BbGlnbikpIHsNCj4gKyAgICBpZiAoKFNjc2lEaXNrRGV2aWNlLT5TY3Np SW8tPklvQWxpZ24gPiAxKSAmJiAhQUREUkVTU19JU19BTElHTkVEXw0KPiAoUGF5bG9hZEJ1ZmZl ciwgU2NzaURpc2tEZXZpY2UtPlNjc2lJby0+SW9BbGlnbikpIHsNCj4gICAgICAgIEFsaWduZWRC dWZmZXIgPSBBbGxvY2F0ZUFsaWduZWRCdWZmZXIgKFNjc2lEaXNrRGV2aWNlLCBQYXlsb2FkQnVm ZmVyU2l6ZSk7DQo+ICAgICAgICBpZiAoQWxpZ25lZEJ1ZmZlciA9PSBOVUxMKSB7DQo+ICAgICAg ICAgIFN0YXR1cyA9IEVGSV9PVVRfT0ZfUkVTT1VSQ0VTOw0KPiBkaWZmIC0tZ2l0IGEvTWRlTW9k dWxlUGtnL0J1cy9VZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnUuYw0KPiBiL01kZU1vZHVs ZVBrZy9CdXMvVWZzL1Vmc1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NUaHJ1LmMNCj4gaW5kZXggYWU1OTNm ZjAzYTBkLi4zOTJhMjk1Y2FmMDQgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvVWZz L1Vmc1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NUaHJ1LmMNCj4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9V ZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnUuYw0KPiBAQCAtMTcxLDE1ICsxNzEsMTUgQEAg VWZzUGFzc1RocnVQYXNzVGhydSAoDQo+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRF UjsNCj4gICAgfQ0KPiANCj4gLSAgaWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUlT X0FMSUdORUQgKFBhY2tldC0+SW5EYXRhQnVmZmVyLCBUaGlzLQ0KPiA+TW9kZS0+SW9BbGlnbikp IHsNCj4gKyAgaWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJ R05FRF8gKFBhY2tldC0NCj4gPkluRGF0YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsN Cj4gICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiAgICB9DQo+IA0KPiAtICBp ZiAoKFRoaXMtPk1vZGUtPklvQWxpZ24gPiAxKSAmJiAhSVNfQUxJR05FRCAoUGFja2V0LT5PdXRE YXRhQnVmZmVyLCBUaGlzLQ0KPiA+TW9kZS0+SW9BbGlnbikpIHsNCj4gKyAgaWYgKChUaGlzLT5N b2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRF8gKFBhY2tldC0NCj4gPk91 dERhdGFCdWZmZXIsIFRoaXMtPk1vZGUtPklvQWxpZ24pKSB7DQo+ICAgICAgcmV0dXJuIEVGSV9J TlZBTElEX1BBUkFNRVRFUjsNCj4gICAgfQ0KPiANCj4gLSAgaWYgKChUaGlzLT5Nb2RlLT5Jb0Fs aWduID4gMSkgJiYgIUlTX0FMSUdORUQgKFBhY2tldC0+U2Vuc2VEYXRhLCBUaGlzLQ0KPiA+TW9k ZS0+SW9BbGlnbikpIHsNCj4gKyAgaWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUFE RFJFU1NfSVNfQUxJR05FRF8gKFBhY2tldC0NCj4gPlNlbnNlRGF0YSwgVGhpcy0+TW9kZS0+SW9B bGlnbikpIHsNCj4gICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiAgICB9DQo+ IA0KPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9FYmNEeGUvRWJjRXhlY3V0 ZS5jDQo+IGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9FYmNEeGUvRWJjRXhlY3V0ZS5jDQo+IGlu ZGV4IDgyYTc3ODJmYjk5YS4uMjhmMTA4YzQ0ODczIDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQ a2cvVW5pdmVyc2FsL0ViY0R4ZS9FYmNFeGVjdXRlLmMNCj4gKysrIGIvTWRlTW9kdWxlUGtnL1Vu aXZlcnNhbC9FYmNEeGUvRWJjRXhlY3V0ZS5jDQo+IEBAIC0yMDE1LDcgKzIwMTUsNyBAQCBFeGVj dXRlSk1QICgNCj4gICAgICAvLyBjaGVjayBmb3IgYWxpZ25tZW50LCBhbmQganVtcCBhYnNvbHV0 ZS4NCj4gICAgICAvLw0KPiAgICAgIERhdGE2NCA9IChVSU5UNjQpVm1SZWFkSW1tZWQ2NCAoVm1Q dHIsIDIpOw0KPiAtICAgIGlmICghSVNfQUxJR05FRCAoKFVJTlROKURhdGE2NCwgc2l6ZW9mIChV SU5UMTYpKSkgew0KPiArICAgIGlmICghQUREUkVTU19JU19BTElHTkVEXyAoKFVJTlROKURhdGE2 NCwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiAgICAgICAgRWJjRGVidWdTaWduYWxFeGNlcHRpb24g KA0KPiAgICAgICAgICBFWENFUFRfRUJDX0FMSUdOTUVOVF9DSEVDSywNCj4gICAgICAgICAgRVhD RVBUSU9OX0ZMQUdfRkFUQUwsDQo+IEBAIC0yMDc0LDcgKzIwNzQsNyBAQCBFeGVjdXRlSk1QICgN Cj4gICAgICAvLyBGb3JtOiBKTVAzMiBAUngge0luZGV4MzJ9DQo+ICAgICAgLy8NCj4gICAgICBB ZGRyID0gVm1SZWFkTWVtTiAoVm1QdHIsIChVSU5UTilEYXRhNjQgKyBJbmRleDMyKTsNCj4gLSAg ICBpZiAoIUlTX0FMSUdORUQgKChVSU5UTilBZGRyLCBzaXplb2YgKFVJTlQxNikpKSB7DQo+ICsg ICAgaWYgKCFBRERSRVNTX0lTX0FMSUdORURfICgoVUlOVE4pQWRkciwgc2l6ZW9mIChVSU5UMTYp KSkgew0KPiAgICAgICAgRWJjRGVidWdTaWduYWxFeGNlcHRpb24gKA0KPiAgICAgICAgICBFWENF UFRfRUJDX0FMSUdOTUVOVF9DSEVDSywNCj4gICAgICAgICAgRVhDRVBUSU9OX0ZMQUdfRkFUQUws DQo+IEBAIC0yMDk3LDcgKzIwOTcsNyBAQCBFeGVjdXRlSk1QICgNCj4gICAgICAvLyBGb3JtOiBK TVAzMiBSeCB7SW1tZWQzMn0NCj4gICAgICAvLw0KPiAgICAgIEFkZHIgPSAoVUlOVE4pKERhdGE2 NCArIEluZGV4MzIpOw0KPiAtICAgIGlmICghSVNfQUxJR05FRCAoKFVJTlROKUFkZHIsIHNpemVv ZiAoVUlOVDE2KSkpIHsNCj4gKyAgICBpZiAoIUFERFJFU1NfSVNfQUxJR05FRF8gKChVSU5UTilB ZGRyLCBzaXplb2YgKFVJTlQxNikpKSB7DQo+ICAgICAgICBFYmNEZWJ1Z1NpZ25hbEV4Y2VwdGlv biAoDQo+ICAgICAgICAgIEVYQ0VQVF9FQkNfQUxJR05NRU5UX0NIRUNLLA0KPiAgICAgICAgICBF WENFUFRJT05fRkxBR19GQVRBTCwNCj4gQEAgLTMxNTgsNyArMzE1OCw3IEBAIEV4ZWN1dGVSRVQg KA0KPiAgICAgIC8vIFB1bGwgdGhlIHJldHVybiBhZGRyZXNzIG9mZiB0aGUgVk0gYXBwJ3Mgc3Rh Y2sgYW5kIHNldCB0aGUgSVANCj4gICAgICAvLyB0byBpdA0KPiAgICAgIC8vDQo+IC0gICAgaWYg KCFJU19BTElHTkVEICgoVUlOVE4pVm1QdHItPkdwclswXSwgc2l6ZW9mIChVSU5UMTYpKSkgew0K PiArICAgIGlmICghQUREUkVTU19JU19BTElHTkVEXyAoKFVJTlROKVZtUHRyLT5HcHJbMF0sIHNp emVvZiAoVUlOVDE2KSkpIHsNCj4gICAgICAgIEViY0RlYnVnU2lnbmFsRXhjZXB0aW9uICgNCj4g ICAgICAgICAgRVhDRVBUX0VCQ19BTElHTk1FTlRfQ0hFQ0ssDQo+ICAgICAgICAgIEVYQ0VQVElP Tl9GTEFHX0ZBVEFMLA0KPiBAQCAtNDczMyw3ICs0NzMzLDcgQEAgVm1Xcml0ZU1lbTE2ICgNCj4g ICAgLy8NCj4gICAgLy8gRG8gYSBzaW1wbGUgd3JpdGUgaWYgYWxpZ25lZA0KPiAgICAvLw0KPiAt ICBpZiAoSVNfQUxJR05FRCAoQWRkciwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiArICBpZiAoQURE UkVTU19JU19BTElHTkVEXyAoQWRkciwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiAgICAgICooVUlO VDE2ICopQWRkciA9IERhdGE7DQo+ICAgIH0gZWxzZSB7DQo+ICAgICAgLy8NCj4gQEAgLTQ3OTUs NyArNDc5NSw3IEBAIFZtV3JpdGVNZW0zMiAoDQo+ICAgIC8vDQo+ICAgIC8vIERvIGEgc2ltcGxl IHdyaXRlIGlmIGFsaWduZWQNCj4gICAgLy8NCj4gLSAgaWYgKElTX0FMSUdORUQgKEFkZHIsIHNp emVvZiAoVUlOVDMyKSkpIHsNCj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRF8gKEFkZHIsIHNp emVvZiAoVUlOVDMyKSkpIHsNCj4gICAgICAqKFVJTlQzMiAqKUFkZHIgPSBEYXRhOw0KPiAgICB9 IGVsc2Ugew0KPiAgICAgIC8vDQo+IEBAIC00ODU3LDcgKzQ4NTcsNyBAQCBWbVdyaXRlTWVtNjQg KA0KPiAgICAvLw0KPiAgICAvLyBEbyBhIHNpbXBsZSB3cml0ZSBpZiBhbGlnbmVkDQo+ICAgIC8v DQo+IC0gIGlmIChJU19BTElHTkVEIChBZGRyLCBzaXplb2YgKFVJTlQ2NCkpKSB7DQo+ICsgIGlm IChBRERSRVNTX0lTX0FMSUdORURfIChBZGRyLCBzaXplb2YgKFVJTlQ2NCkpKSB7DQo+ICAgICAg KihVSU5UNjQgKilBZGRyID0gRGF0YTsNCj4gICAgfSBlbHNlIHsNCj4gICAgICAvLw0KPiBAQCAt NDkyMiw3ICs0OTIyLDcgQEAgVm1Xcml0ZU1lbU4gKA0KPiAgICAvLw0KPiAgICAvLyBEbyBhIHNp bXBsZSB3cml0ZSBpZiBhbGlnbmVkDQo+ICAgIC8vDQo+IC0gIGlmIChJU19BTElHTkVEIChBZGRy LCBzaXplb2YgKFVJTlROKSkpIHsNCj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRF8gKEFkZHIs IHNpemVvZiAoVUlOVE4pKSkgew0KPiAgICAgICooVUlOVE4gKilBZGRyID0gRGF0YTsNCj4gICAg fSBlbHNlIHsNCj4gICAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBzaXplb2YgKFVJTlROKSAv IHNpemVvZiAoVUlOVDMyKTsgSW5kZXgrKykgew0KPiBAQCAtNDk4NSw3ICs0OTg1LDcgQEAgVm1S ZWFkSW1tZWQxNiAoDQo+ICAgIC8vDQo+ICAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQNCj4g ICAgLy8NCj4gLSAgaWYgKElTX0FMSUdORUQgKChVSU5UTilWbVB0ci0+SXAgKyBPZmZzZXQsIHNp emVvZiAoSU5UMTYpKSkgew0KPiArICBpZiAoQUREUkVTU19JU19BTElHTkVEXyAoKFVJTlROKVZt UHRyLT5JcCArIE9mZnNldCwgc2l6ZW9mIChJTlQxNikpKSB7DQo+ICAgICAgcmV0dXJuICooSU5U MTYgKikoVm1QdHItPklwICsgT2Zmc2V0KTsNCj4gICAgfSBlbHNlIHsNCj4gICAgICAvLw0KPiBA QCAtNTAyOSw3ICs1MDI5LDcgQEAgVm1SZWFkSW1tZWQzMiAoDQo+ICAgIC8vDQo+ICAgIC8vIFJl YWQgZGlyZWN0IGlmIGFsaWduZWQNCj4gICAgLy8NCj4gLSAgaWYgKElTX0FMSUdORUQgKChVSU5U TilWbVB0ci0+SXAgKyBPZmZzZXQsIHNpemVvZiAoVUlOVDMyKSkpIHsNCj4gKyAgaWYgKEFERFJF U1NfSVNfQUxJR05FRF8gKChVSU5UTilWbVB0ci0+SXAgKyBPZmZzZXQsIHNpemVvZiAoVUlOVDMy KSkpIHsNCj4gICAgICByZXR1cm4gKihJTlQzMiAqKShWbVB0ci0+SXAgKyBPZmZzZXQpOw0KPiAg ICB9DQo+IA0KPiBAQCAtNTA2OCw3ICs1MDY4LDcgQEAgVm1SZWFkSW1tZWQ2NCAoDQo+ICAgIC8v DQo+ICAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQNCj4gICAgLy8NCj4gLSAgaWYgKElTX0FM SUdORUQgKChVSU5UTilWbVB0ci0+SXAgKyBPZmZzZXQsIHNpemVvZiAoVUlOVDY0KSkpIHsNCj4g KyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRF8gKChVSU5UTilWbVB0ci0+SXAgKyBPZmZzZXQsIHNp emVvZiAoVUlOVDY0KSkpIHsNCj4gICAgICByZXR1cm4gKihVSU5UNjQgKikoVm1QdHItPklwICsg T2Zmc2V0KTsNCj4gICAgfQ0KPiANCj4gQEAgLTUxMDUsNyArNTEwNSw3IEBAIFZtUmVhZENvZGUx NiAoDQo+ICAgIC8vDQo+ICAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQNCj4gICAgLy8NCj4g LSAgaWYgKElTX0FMSUdORUQgKChVSU5UTilWbVB0ci0+SXAgKyBPZmZzZXQsIHNpemVvZiAoVUlO VDE2KSkpIHsNCj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRF8gKChVSU5UTilWbVB0ci0+SXAg KyBPZmZzZXQsIHNpemVvZiAoVUlOVDE2KSkpIHsNCj4gICAgICByZXR1cm4gKihVSU5UMTYgKiko Vm1QdHItPklwICsgT2Zmc2V0KTsNCj4gICAgfSBlbHNlIHsNCj4gICAgICAvLw0KPiBAQCAtNTE0 Nyw3ICs1MTQ3LDcgQEAgVm1SZWFkQ29kZTMyICgNCj4gICAgLy8NCj4gICAgLy8gUmVhZCBkaXJl Y3QgaWYgYWxpZ25lZA0KPiAgICAvLw0KPiAtICBpZiAoSVNfQUxJR05FRCAoKFVJTlROKVZtUHRy LT5JcCArIE9mZnNldCwgc2l6ZW9mIChVSU5UMzIpKSkgew0KPiArICBpZiAoQUREUkVTU19JU19B TElHTkVEXyAoKFVJTlROKVZtUHRyLT5JcCArIE9mZnNldCwgc2l6ZW9mIChVSU5UMzIpKSkgew0K PiAgICAgIHJldHVybiAqKFVJTlQzMiAqKShWbVB0ci0+SXAgKyBPZmZzZXQpOw0KPiAgICB9DQo+ IA0KPiBAQCAtNTE4NCw3ICs1MTg0LDcgQEAgVm1SZWFkQ29kZTY0ICgNCj4gICAgLy8NCj4gICAg Ly8gUmVhZCBkaXJlY3QgaWYgYWxpZ25lZA0KPiAgICAvLw0KPiAtICBpZiAoSVNfQUxJR05FRCAo KFVJTlROKVZtUHRyLT5JcCArIE9mZnNldCwgc2l6ZW9mIChVSU5UNjQpKSkgew0KPiArICBpZiAo QUREUkVTU19JU19BTElHTkVEXyAoKFVJTlROKVZtUHRyLT5JcCArIE9mZnNldCwgc2l6ZW9mIChV SU5UNjQpKSkgew0KPiAgICAgIHJldHVybiAqKFVJTlQ2NCAqKShWbVB0ci0+SXAgKyBPZmZzZXQp Ow0KPiAgICB9DQo+IA0KPiBAQCAtNTI0Nyw3ICs1MjQ3LDcgQEAgVm1SZWFkTWVtMTYgKA0KPiAg ICAvLw0KPiAgICAvLyBSZWFkIGRpcmVjdCBpZiBhbGlnbmVkDQo+ICAgIC8vDQo+IC0gIGlmIChJ U19BTElHTkVEIChBZGRyLCBzaXplb2YgKFVJTlQxNikpKSB7DQo+ICsgIGlmIChBRERSRVNTX0lT X0FMSUdORURfIChBZGRyLCBzaXplb2YgKFVJTlQxNikpKSB7DQo+ICAgICAgcmV0dXJuICooVUlO VDE2ICopQWRkcjsNCj4gICAgfQ0KPiANCj4gQEAgLTUyODEsNyArNTI4MSw3IEBAIFZtUmVhZE1l bTMyICgNCj4gICAgLy8NCj4gICAgLy8gUmVhZCBkaXJlY3QgaWYgYWxpZ25lZA0KPiAgICAvLw0K PiAtICBpZiAoSVNfQUxJR05FRCAoQWRkciwgc2l6ZW9mIChVSU5UMzIpKSkgew0KPiArICBpZiAo QUREUkVTU19JU19BTElHTkVEXyAoQWRkciwgc2l6ZW9mIChVSU5UMzIpKSkgew0KPiAgICAgIHJl dHVybiAqKFVJTlQzMiAqKUFkZHI7DQo+ICAgIH0NCj4gDQo+IEBAIC01MzE5LDcgKzUzMTksNyBA QCBWbVJlYWRNZW02NCAoDQo+ICAgIC8vDQo+ICAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQN Cj4gICAgLy8NCj4gLSAgaWYgKElTX0FMSUdORUQgKEFkZHIsIHNpemVvZiAoVUlOVDY0KSkpIHsN Cj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRF8gKEFkZHIsIHNpemVvZiAoVUlOVDY0KSkpIHsN Cj4gICAgICByZXR1cm4gKihVSU5UNjQgKilBZGRyOw0KPiAgICB9DQo+IA0KPiBAQCAtNTM4OCw3 ICs1Mzg4LDcgQEAgVm1SZWFkTWVtTiAoDQo+ICAgIC8vDQo+ICAgIC8vIFJlYWQgZGlyZWN0IGlm IGFsaWduZWQNCj4gICAgLy8NCj4gLSAgaWYgKElTX0FMSUdORUQgKEFkZHIsIHNpemVvZiAoVUlO VE4pKSkgew0KPiArICBpZiAoQUREUkVTU19JU19BTElHTkVEXyAoQWRkciwgc2l6ZW9mIChVSU5U TikpKSB7DQo+ICAgICAgcmV0dXJuICooVUlOVE4gKilBZGRyOw0KPiAgICB9DQo+IA0KPiAtLQ0K PiAyLjM5LjINCg0K