From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web12.80793.1629436914367768838 for ; Thu, 19 Aug 2021 22:21:54 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=kwz7ODhw; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: hao.a.wu@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10081"; a="277732930" X-IronPort-AV: E=Sophos;i="5.84,336,1620716400"; d="scan'208";a="277732930" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Aug 2021 22:21:36 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,336,1620716400"; d="scan'208";a="679851695" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by fmsmga006.fm.intel.com with ESMTP; 19 Aug 2021 22:21:36 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Thu, 19 Aug 2021 22:21:36 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Thu, 19 Aug 2021 22:21:35 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Thu, 19 Aug 2021 22:21:35 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.103) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Thu, 19 Aug 2021 22:21:35 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oZ3o+xSZWKyikweC/+PoaMklt6IlcjQSa9Tcxi8qHCsQ/+pp+9kvZJBP3MHEYQ9QWhlrkYQA0IB129cu6E6pp1ZmYQKeZ+cmDxTvSWITq2HIti79zhCUZr4kN1Y8xvr0OHn2AZIQ48/fvJSsmA8e2d0kWqn+FzG0sFjxUBgv4tl6hFRc63GETzirGhi2VY01awnmDxvZorh149q2be4kGCb6WjSdXTDpDKmaWRPxksbwmvARLj4y1IhvfFPzKJMtMpnmt9/B0rBqfUmEISpbo0P7eThyCLK9yJ4+Zs1IvU4YTIYWarErOhhFm8pP+fM3Pzu2LVVD5A+zagVbW22fCg== 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=hII6bh0d+w/BaZ7M55qIRBptSipIRqIGVOqtGZkovvI=; b=jP8fMiRcaGTDu6/NW1z3GuzHNcLVbOPj+AGb+KX+uWUxiPy22gXxq/dscM58KlPkYEbBWr3+XvX+K7KaSuIf6AGeZfqC7xzYdpsVOy2s0rxaIJp0npJFlwQYLEJ6eP700d8ETu7E/m4pV0RWUNy5DXaQqe8+MPaLLTDC+5nJcgQQTRlPxMJVwPkUkbsCTuQQhvOxDWnPOSdBEF2NrIqQEe0yEHH/NJLfpl/a33ftKdlWBV3zAmo38+ImQqZXfSgLC6RmMAvItHz/BeUrruT2ubOc3KcfWgQi+9UBdaFy9PhiGNHJCcQ/Mr+G2rgy6RlDW8GkFppZRHQkX0zJ0L3iag== 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=hII6bh0d+w/BaZ7M55qIRBptSipIRqIGVOqtGZkovvI=; b=kwz7ODhwdbXMFM32X1IS1/nPJqwoZ5ht21LOylkCD6J8Qktjc1xFiMsa5rXAlRw6P1xw7kJeRYOEVMIfAOVDUCDCc3JgDWHmMZy7r7/h2vxbo/2rVrJHL8H/v+UE32Ytib70aMjnvYHNjHiNSQ0hnSgFKJ6Qt89pxGOkVTzhWLE= Received: from BN8PR11MB3666.namprd11.prod.outlook.com (2603:10b6:408:8c::19) by BN6PR11MB3988.namprd11.prod.outlook.com (2603:10b6:405:7c::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.19; Fri, 20 Aug 2021 05:21:34 +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.4436.019; Fri, 20 Aug 2021 05:21:34 +0000 From: "Wu, Hao A" To: "devel@edk2.groups.io" , "mhaeuser@posteo.de" CC: "Wang, Jian J" , "Ni, Ray" , Vitaly Cheptsov Subject: Re: [edk2-devel] [PATCH V2 3/3] MdeModulePkg: Consume new alignment-related macros Thread-Topic: [edk2-devel] [PATCH V2 3/3] MdeModulePkg: Consume new alignment-related macros Thread-Index: AQHXkhIUW9faBPU5BUOQph6lwvGHK6t74inw Date: Fri, 20 Aug 2021 05:21:34 +0000 Message-ID: References: <69c6e14c4fe944d380d38dcdb851a88f51631f86.1629057790.git.mhaeuser@posteo.de> <3c77c5a606245ef427e2d84b7699257dd0f69f97.1629057790.git.mhaeuser@posteo.de> In-Reply-To: <3c77c5a606245ef427e2d84b7699257dd0f69f97.1629057790.git.mhaeuser@posteo.de> 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: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: eb9b4a5d-5d1f-4538-f6f4-08d9639a606b x-ms-traffictypediagnostic: BN6PR11MB3988: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5797; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UfW9xUye/idtCv9lfCpoLt0nkUwLw6StVH7aQqiOScF6dwP8I6JHzZUKoLQ8Lc6M08/UN+ccUgbfYRJ1lbjNjf1idJf5dzl/GDrJs1B4KpACrarBwcCGfMhZdXLAggbIYPLyeJtxWe1c88pVNSojJajmoxRqBEMqbyr36lX5z40Kp3hL6JAwMUZI9WPSq1h18kOyq3JG3IyWXqIjNQp1YtgRbUTHi6c3ifWZZXN0bhdacbEfgGpTvgCgeDdDYGADF/UdGsYKd+u/KxVIf7T0R8kxCQjZj69k3skv4CnwrEt7Jm6JZdO+4oEPJNqqN9k33dX2p8f4cPPODeXDLSKJUiF/gbi7wDrrl9p86O2bCsdkZpV5+croO9nX5LmQ4WxxyCFjEH95OowJqcI8Cc2i8BOIJNYgicWoWZN3LuYJW467tdChDvl8R0uOHXKm7QIOPpsNuEdyAgIA4oDSU2yonbbNRdIPMj5xCXxXr3sQasmoB54zasQUz94In3/w1V0uw2nmHQ8h8O3j5n2yFi4FGjFrlUcd1AcWAoWGJNs5SUwfk8MH5AeAO4Txv6PJ9VtX/EAuk0M6sDa/fokLxkNJ8ZKP6vs7KbjR5DTRhaMUmAniroYoD9eTqbzcwkCjd9Co4bSq+26K39/XDNJMs/z/zESPyEICy27qRVvI3xyI7LP2u9VviE8v/u4ecceV3R+ODFsG9rflfAzTCE59O83dZrUmLwTyEkVsls0mnycBPc7w9ciZSJj0V5MHWUB3GFmup4YtU+uz5/+70b07CQe6m3dSHgYIB6FBity7038+PSp7WUTC3/9CywtVywSeEFT4/LwtBMTgjDfMjxMBXWjmyQ== 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)(376002)(396003)(136003)(366004)(39860400002)(346002)(8676002)(54906003)(316002)(110136005)(2906002)(55016002)(9686003)(83380400001)(71200400001)(76116006)(66946007)(64756008)(66556008)(66476007)(66446008)(4326008)(122000001)(478600001)(966005)(52536014)(8936002)(7696005)(30864003)(38070700005)(33656002)(5660300002)(26005)(6506007)(53546011)(86362001)(38100700002)(186003)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?K29QdE53VmhjaS9zY2RibytoWkt1a0kzMmZBZzN5VlNEelYvTUdkTzl2aEZy?= =?utf-8?B?Y3pMN0tBeXhXTXVtMXh0MTBDVWUyNlc3WnIxN2hraXhlbjRHVlpGeGE0UW5w?= =?utf-8?B?NS8rMWF3R1RNcnpTdGpsbk5kQnFrVTF0T3N2eWk1M3RPT0xGZWtOUjh6YmJr?= =?utf-8?B?NjdQV3A3aTZjSTRaWWIwRHN2OEJmWjJkQ1lNLytINHFmbmFiN2tuVFR4cklw?= =?utf-8?B?Z3BJQjdQRnd0V3pJS1Zpay93L3dRYjBWSHllMWd2VTM2aFhpQkRnZ3MzQ1R4?= =?utf-8?B?ZlFtbzFjSFdXUGhrVmIrSkZzazBRd1lscC80aE5rMytPemZBelNtNEtDNWRE?= =?utf-8?B?V2NEOWdYeHhOc1B2ZmdHL1J3UzN1YnU1NytUT2RCRWFEYjRIUklkNHd5b2dD?= =?utf-8?B?NFE3U0FlOVNVeENEYlR2N0RGR1RnUFpVMlV6U1FRbi9jaEpCK2VHQ1dUd2Vh?= =?utf-8?B?Ym4vWUdBU2ZqWmtGODFLQ2NpQi83RS9kMzFIcmYvblBPeG5lRUMwZnFXdkdv?= =?utf-8?B?UTlUVnNqbitNSGdCaWh0VFJUTndzUWhkRHNEY2drY1QrTzZjakRPY2kyRVNO?= =?utf-8?B?QXVhTDZpSzNPR09xU1ZLclltZEd3MmYrdWtRUVJQVVZaWDhLUVROVGV1bW9B?= =?utf-8?B?Qmg0dHZiR3ZFeVFvU0lKRHhyZk9ScnJhMlpPWVJKSzdXNE5ES0pUUWNWVHFW?= =?utf-8?B?cXlzVloxS0h1QU1YTm9nS3NOTHROaVF4OWVzakNJL3hYUkZHTCtDV2FIU2x2?= =?utf-8?B?ZkNJSGJ0K2JEQk5kYTQxNjVWenBTaUhQeEdhUlB5OEdZSnFSc242WkRuTmVJ?= =?utf-8?B?RDBDaGxNZDFyN0pLWjVuWEI1Kzl4SlE0L2F5ckttYTdRbjRwYndKRzdrVFds?= =?utf-8?B?WVlyS2JvRkhQdzQ3NXdPTlV2SXB0blNBUnRUZ2xNbkxyMi9rdHFnYVFvS3ZW?= =?utf-8?B?T1dWSEJmQTE3Y1I3c0RlNzM1WGRQN0UxQm5hejFIYm1LeGkzanV1d0gzOWFr?= =?utf-8?B?MHI5b3hhczg5ZmttQTF0L2pqcitjaXVRYlZVSEd3b2JPOVZlK1YwMzZHMkE3?= =?utf-8?B?T05yREVGRkVPaDV1T0NXOWR6eEtTNEdIVXNhTHQ2ZWNTUkR5Qm1neTJRbXBQ?= =?utf-8?B?Mno4UUdMZlpuSTF1aWJTUHRvMkNiUDYzZlFuTUJ4TFU3ZzdOTHNpU2NoT3ZM?= =?utf-8?B?Zk1lSzdwaVNoV0Y2S3JlNnQwWXlHaUdhVCtQN2d2UXhYcS9ndm1ZdDBsKzlZ?= =?utf-8?B?SEYrVisxa2s2TzZIUWpGOXN0VzhxbVJ3Zmw1bnV3dC95RmR1dVhUM2t4SnRK?= =?utf-8?B?UFVzdzR3WEdMY0hxTzByYStWUzdwTVN6Qno5Ni9DVXBDaU1jNmJubEVucW5w?= =?utf-8?B?YWQweDIzMmRDdTYrSGxDMEduRjRIRWtHZTllbVpNS01MN1NPYXNDaU92ZEtX?= =?utf-8?B?V3R0ZHErNS9KSGR6akc1UVlVa3RRR2xhUjRJdFYzZk5rT244RzRWUEpsbXpX?= =?utf-8?B?MDdxSktNcDJmdnl1SG1hTXNjTTh0ajFkL2p4emJBS3M4dzRuNmRRSkdSR3Bp?= =?utf-8?B?UHprTDkxVG43UWJsMXIxdlpRRmthbVBMVDlDTWU0aUJqc25iOTI5dXgzT1FU?= =?utf-8?B?WURQV3VHNnd1bXlPdzU2ZnZDbWE2cjNkRFlmWS9KUU84OUhNRndhQjArMmd1?= =?utf-8?B?T3gvR21GbnJGVkFvYVVKN3JrVldOMEpBc1k4STl0QVBHQkpMUTVrSFZ1eDJj?= =?utf-8?Q?wm1D3POtfW/ZDAs9Kc+88TjEcDhmwkEdUy39UXJ?= 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: eb9b4a5d-5d1f-4538-f6f4-08d9639a606b X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Aug 2021 05:21:34.2518 (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: OdmfDQ68HIClCfnrmobyY/d7QqRkvhShPXuwTQOddw5Q28gY92X4pKRsf3s88IK7xbHr7PrGLFTI0TXxyN6JTA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB3988 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 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5p byA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBNYXJ2aW4NCj4gSD91c2VyDQo+ IFNlbnQ6IE1vbmRheSwgQXVndXN0IDE2LCAyMDIxIDQ6MTIgQU0NCj4gVG86IGRldmVsQGVkazIu Z3JvdXBzLmlvDQo+IENjOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IFd1 LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsNCj4gTmksIFJheSA8cmF5Lm5pQGludGVsLmNv bT47IFZpdGFseSBDaGVwdHNvdiA8dml0OTY5NkBwcm90b25tYWlsLmNvbT4NCj4gU3ViamVjdDog W2VkazItZGV2ZWxdIFtQQVRDSCBWMiAzLzNdIE1kZU1vZHVsZVBrZzogQ29uc3VtZSBuZXcNCj4g YWxpZ25tZW50LXJlbGF0ZWQgbWFjcm9zDQo+IA0KPiBUaGlzIHBhdGNoIHN1YnN0aXR1dGVzIHRo ZSBtYWNyb3MgdGhhdCB3ZXJlIHJlbmFtZWQgaW4gdGhlIGZpcnN0IHBhdGNoIHdpdGgNCj4gdGhl IG5ldywgc2hhcmVkIGFsaWdubWVudCBtYWNyb3MuDQoNCg0KUmV2aWV3ZWQtYnk6IEhhbyBBIFd1 IDxoYW8uYS53dUBpbnRlbC5jb20+DQoNCkJlc3QgUmVnYXJkcywNCkhhbyBXdQ0KDQoNCj4gDQo+ IENjOiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiBDYzogSGFvIEEgV3Ug PGhhby5hLnd1QGludGVsLmNvbT4NCj4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4g Q2M6IFZpdGFseSBDaGVwdHNvdiA8dml0OTY5NkBwcm90b25tYWlsLmNvbT4NCj4gU2lnbmVkLW9m Zi1ieTogTWFydmluIEjDpHVzZXIgPG1oYWV1c2VyQHBvc3Rlby5kZT4NCj4gLS0tDQo+ICBNZGVN b2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lNb2RlLmMgICAgICAgICAgICAgICAgICB8ICAy ICstDQo+ICBNZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lQZWlQYXNzVGhydS5jICAg ICAgICAgICB8ICA2ICsrLS0NCj4gIE1kZU1vZHVsZVBrZy9CdXMvQXRhL0F0YUF0YXBpUGFzc1Ro cnUvQXRhQXRhcGlQYXNzVGhydS5jIHwgMTIgKysrLS0tLQ0KPiAgTWRlTW9kdWxlUGtnL0J1cy9B dGEvQXRhQnVzRHhlL0F0YVBhc3NUaHJ1RXhlY3V0ZS5jICAgICAgfCAgMiArLQ0KPiAgTWRlTW9k dWxlUGtnL0J1cy9TY3NpL1Njc2lEaXNrRHhlL1Njc2lEaXNrLmMgICAgICAgICAgICAgfCAgNCAr LS0NCj4gIE1kZU1vZHVsZVBrZy9CdXMvVWZzL1Vmc1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NUaHJ1LmMg ICAgICAgIHwgIDYgKystLQ0KPiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9FYmNEeGUvRWJjRXhl Y3V0ZS5jICAgICAgICAgICAgICAgfCAzNiArKysrKysrKysrLS0tDQo+IC0tLS0tLS0NCj4gIE1k ZU1vZHVsZVBrZy9CdXMvQXRhL0FoY2lQZWkvQWhjaVBlaS5oICAgICAgICAgICAgICAgICAgIHwg IDEgLQ0KPiAgTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQXRhcGlQYXNzVGhydS9BdGFBdGFwaVBh c3NUaHJ1LmggfCAgMiAtLQ0KPiAgTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQnVzRHhlL0F0YUJ1 cy5oICAgICAgICAgICAgICAgICAgfCAgMSAtDQo+ICBNZGVNb2R1bGVQa2cvQnVzL1Njc2kvU2Nz aURpc2tEeGUvU2NzaURpc2suaCAgICAgICAgICAgICB8ICAyIC0tDQo+ICBNZGVNb2R1bGVQa2cv QnVzL1Vmcy9VZnNCbG9ja0lvUGVpL1Vmc0Jsb2NrSW9QZWkuaCAgICAgICB8ICAyIC0tDQo+ICBN ZGVNb2R1bGVQa2cvQnVzL1Vmcy9VZnNQYXNzVGhydUR4ZS9VZnNQYXNzVGhydS5oICAgICAgICB8 ICAyIC0tDQo+ICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0ViY0R4ZS9FYmNFeGVjdXRlLmggICAg ICAgICAgICAgICB8ICAzICstDQo+ICAxNCBmaWxlcyBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCsp LCA0NiBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL0F0 YS9BaGNpUGVpL0FoY2lNb2RlLmMNCj4gYi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0Fo Y2lNb2RlLmMNCj4gaW5kZXggY2MzMmI1ZGU0Zjk4Li41MjAxOTdhZWU3NTIgMTAwNjQ0DQo+IC0t LSBhL01kZU1vZHVsZVBrZy9CdXMvQXRhL0FoY2lQZWkvQWhjaU1vZGUuYw0KPiArKysgYi9NZGVN b2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lNb2RlLmMNCj4gQEAgLTIwOTksNyArMjA5OSw3 IEBAIFRydXN0VHJhbnNmZXJBdGFEZXZpY2UgKA0KPiAgICAgIC8vIEFUQSBQYXNzVGhydSBQUEku DQo+IA0KPiAgICAgIC8vDQo+IA0KPiAgICAgIGlmICgoQXRhUGFzc1RocnUtPk1vZGUtPklvQWxp Z24gPiAxKSAmJg0KPiANCj4gLSAgICAgICAgIUFERFJFU1NfSVNfQUxJR05FRF8gKEJ1ZmZlciwg QXRhUGFzc1RocnUtPk1vZGUtPklvQWxpZ24pKSB7DQo+IA0KPiArICAgICAgICAhQUREUkVTU19J U19BTElHTkVEIChCdWZmZXIsIEF0YVBhc3NUaHJ1LT5Nb2RlLT5Jb0FsaWduKSkgew0KPiANCj4g ICAgICAgIE5ld0J1ZmZlciA9IEFsbG9jYXRlQWxpZ25lZFBhZ2VzICgNCj4gDQo+ICAgICAgICAg ICAgICAgICAgICAgIEVGSV9TSVpFX1RPX1BBR0VTIChUcmFuc2Zlckxlbmd0aCksDQo+IA0KPiAg ICAgICAgICAgICAgICAgICAgICBBdGFQYXNzVGhydS0+TW9kZS0+SW9BbGlnbg0KPiANCj4gZGlm ZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9CdXMvQXRhL0FoY2lQZWkvQWhjaVBlaVBhc3NUaHJ1LmMN Cj4gYi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lQZWlQYXNzVGhydS5jDQo+IGlu ZGV4IDMxZGVkOGEzMTA0OC4uMDU3YWQ0MmQ1OTZiIDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQ a2cvQnVzL0F0YS9BaGNpUGVpL0FoY2lQZWlQYXNzVGhydS5jDQo+ICsrKyBiL01kZU1vZHVsZVBr Zy9CdXMvQXRhL0FoY2lQZWkvQWhjaVBlaVBhc3NUaHJ1LmMNCj4gQEAgLTE5MywxNSArMTkzLDE1 IEBAIEFoY2lBdGFQYXNzVGhydVBhc3NUaHJ1ICgNCj4gICAgfQ0KPiANCj4gDQo+IA0KPiAgICBJ b0FsaWduID0gVGhpcy0+TW9kZS0+SW9BbGlnbjsNCj4gDQo+IC0gIGlmICgoSW9BbGlnbiA+IDEp ICYmICFBRERSRVNTX0lTX0FMSUdORURfIChQYWNrZXQtPkluRGF0YUJ1ZmZlciwNCj4gSW9BbGln bikpIHsNCj4gDQo+ICsgIGlmICgoSW9BbGlnbiA+IDEpICYmICFBRERSRVNTX0lTX0FMSUdORUQg KFBhY2tldC0+SW5EYXRhQnVmZmVyLA0KPiArIElvQWxpZ24pKSB7DQo+IA0KPiAgICAgIHJldHVy biBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+IA0KPiAgICB9DQo+IA0KPiANCj4gDQo+IC0gIGlm ICgoSW9BbGlnbiA+IDEpICYmICFBRERSRVNTX0lTX0FMSUdORURfIChQYWNrZXQtPk91dERhdGFC dWZmZXIsDQo+IElvQWxpZ24pKSB7DQo+IA0KPiArICBpZiAoKElvQWxpZ24gPiAxKSAmJiAhQURE UkVTU19JU19BTElHTkVEIChQYWNrZXQtPk91dERhdGFCdWZmZXIsDQo+ICsgSW9BbGlnbikpIHsN Cj4gDQo+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gDQo+ICAgIH0NCj4g DQo+IA0KPiANCj4gLSAgaWYgKChJb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRF8g KFBhY2tldC0+QXNiLCBJb0FsaWduKSkgew0KPiANCj4gKyAgaWYgKChJb0FsaWduID4gMSkgJiYg IUFERFJFU1NfSVNfQUxJR05FRCAoUGFja2V0LT5Bc2IsIElvQWxpZ24pKSB7DQo+IA0KPiAgICAg IHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+IA0KPiAgICB9DQo+IA0KPiANCj4gDQo+ IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFBdGFwaVBhc3NUaHJ1L0F0YUF0 YXBpUGFzc1RocnUuYw0KPiBiL01kZU1vZHVsZVBrZy9CdXMvQXRhL0F0YUF0YXBpUGFzc1RocnUv QXRhQXRhcGlQYXNzVGhydS5jDQo+IGluZGV4IGNmOThmY2RhZjM0NC4uYzdiM2NmY2UxMzQwIDEw MDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFBdGFwaVBhc3NUaHJ1L0F0YUF0 YXBpUGFzc1RocnUuYw0KPiArKysgYi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFBdGFwaVBhc3NU aHJ1L0F0YUF0YXBpUGFzc1RocnUuYw0KPiBAQCAtMTI4MSwxNSArMTI4MSwxNSBAQCBBdGFQYXNz VGhydVBhc3NUaHJ1ICgNCj4gDQo+IA0KPiAgICBJbnN0YW5jZSA9IEFUQV9QQVNTX1RIUlVfUFJJ VkFURV9EQVRBX0ZST01fVEhJUyAoVGhpcyk7DQo+IA0KPiANCj4gDQo+IC0gIGlmICgoVGhpcy0+ TW9kZS0+SW9BbGlnbiA+IDEpICYmICFBRERSRVNTX0lTX0FMSUdORURfKFBhY2tldC0NCj4gPklu RGF0YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gDQo+ICsgIGlmICgoVGhpcy0+ TW9kZS0+SW9BbGlnbiA+IDEpICYmDQo+ICsgIUFERFJFU1NfSVNfQUxJR05FRChQYWNrZXQtPklu RGF0YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gDQo+ICAgICAgcmV0dXJuIEVG SV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gDQo+ICAgIH0NCj4gDQo+IA0KPiANCj4gLSAgaWYgKChU aGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRF8oUGFja2V0LQ0K PiA+T3V0RGF0YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gDQo+ICsgIGlmICgo VGhpcy0+TW9kZS0+SW9BbGlnbiA+IDEpICYmDQo+ICsgIUFERFJFU1NfSVNfQUxJR05FRChQYWNr ZXQtPk91dERhdGFCdWZmZXIsIFRoaXMtPk1vZGUtPklvQWxpZ24pKSB7DQo+IA0KPiAgICAgIHJl dHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+IA0KPiAgICB9DQo+IA0KPiANCj4gDQo+IC0g IGlmICgoVGhpcy0+TW9kZS0+SW9BbGlnbiA+IDEpICYmICFBRERSRVNTX0lTX0FMSUdORURfKFBh Y2tldC0+QXNiLA0KPiBUaGlzLT5Nb2RlLT5Jb0FsaWduKSkgew0KPiANCj4gKyAgaWYgKChUaGlz LT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRChQYWNrZXQtPkFzYiwN Cj4gKyBUaGlzLT5Nb2RlLT5Jb0FsaWduKSkgew0KPiANCj4gICAgICByZXR1cm4gRUZJX0lOVkFM SURfUEFSQU1FVEVSOw0KPiANCj4gICAgfQ0KPiANCj4gDQo+IA0KPiBAQCAtMjAxMiwxNSArMjAx MiwxNSBAQCBFeHRTY3NpUGFzc1RocnVQYXNzVGhydSAoDQo+ICAgICAgcmV0dXJuIEVGSV9JTlZB TElEX1BBUkFNRVRFUjsNCj4gDQo+ICAgIH0NCj4gDQo+IA0KPiANCj4gLSAgaWYgKChUaGlzLT5N b2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRF8oUGFja2V0LQ0KPiA+SW5E YXRhQnVmZmVyLCBUaGlzLT5Nb2RlLT5Jb0FsaWduKSkgew0KPiANCj4gKyAgaWYgKChUaGlzLT5N b2RlLT5Jb0FsaWduID4gMSkgJiYNCj4gKyAhQUREUkVTU19JU19BTElHTkVEKFBhY2tldC0+SW5E YXRhQnVmZmVyLCBUaGlzLT5Nb2RlLT5Jb0FsaWduKSkgew0KPiANCj4gICAgICByZXR1cm4gRUZJ X0lOVkFMSURfUEFSQU1FVEVSOw0KPiANCj4gICAgfQ0KPiANCj4gDQo+IA0KPiAtICBpZiAoKFRo aXMtPk1vZGUtPklvQWxpZ24gPiAxKSAmJiAhQUREUkVTU19JU19BTElHTkVEXyhQYWNrZXQtDQo+ ID5PdXREYXRhQnVmZmVyLCBUaGlzLT5Nb2RlLT5Jb0FsaWduKSkgew0KPiANCj4gKyAgaWYgKChU aGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYNCj4gKyAhQUREUkVTU19JU19BTElHTkVEKFBhY2tl dC0+T3V0RGF0YUJ1ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gDQo+ICAgICAgcmV0 dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gDQo+ICAgIH0NCj4gDQo+IA0KPiANCj4gLSAg aWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRF8oUGFj a2V0LQ0KPiA+U2Vuc2VEYXRhLCBUaGlzLT5Nb2RlLT5Jb0FsaWduKSkgew0KPiANCj4gKyAgaWYg KChUaGlzLT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYNCj4gKyAhQUREUkVTU19JU19BTElHTkVEKFBh Y2tldC0+U2Vuc2VEYXRhLCBUaGlzLT5Nb2RlLT5Jb0FsaWduKSkgew0KPiANCj4gICAgICByZXR1 cm4gRUZJX0lOVkFMSURfUEFSQU1FVEVSOw0KPiANCj4gICAgfQ0KPiANCj4gDQo+IA0KPiBkaWZm IC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQnVzRHhlL0F0YVBhc3NUaHJ1RXhlY3V0 ZS5jDQo+IGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQnVzRHhlL0F0YVBhc3NUaHJ1RXhlY3V0 ZS5jDQo+IGluZGV4IDQ3MWZiNmE3ZjQ0MC4uZWFiYWI4YWM1YmM1IDEwMDY0NA0KPiAtLS0gYS9N ZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFCdXNEeGUvQXRhUGFzc1RocnVFeGVjdXRlLmMNCj4gKysr IGIvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQXRhQnVzRHhlL0F0YVBhc3NUaHJ1RXhlY3V0ZS5jDQo+ IEBAIC0xMDM2LDcgKzEwMzYsNyBAQCBUcnVzdFRyYW5zZmVyQXRhRGV2aWNlICgNCj4gICAgICAv LyBDaGVjayB0aGUgYWxpZ25tZW50IG9mIHRoZSBpbmNvbWluZyBidWZmZXIgcHJpb3IgdG8gaW52 b2tpbmcgdW5kZXJseWluZw0KPiBBVEEgUGFzc1RocnUNCj4gDQo+ICAgICAgLy8NCj4gDQo+ICAg ICAgQXRhUGFzc1RocnUgPSBBdGFEZXZpY2UtPkF0YUJ1c0RyaXZlckRhdGEtPkF0YVBhc3NUaHJ1 Ow0KPiANCj4gLSAgICBpZiAoKEF0YVBhc3NUaHJ1LT5Nb2RlLT5Jb0FsaWduID4gMSkgJiYgIUFE RFJFU1NfSVNfQUxJR05FRF8gKEJ1ZmZlciwNCj4gQXRhUGFzc1RocnUtPk1vZGUtPklvQWxpZ24p KSB7DQo+IA0KPiArICAgIGlmICgoQXRhUGFzc1RocnUtPk1vZGUtPklvQWxpZ24gPiAxKSAmJiAh QUREUkVTU19JU19BTElHTkVEDQo+ICsgKEJ1ZmZlciwgQXRhUGFzc1RocnUtPk1vZGUtPklvQWxp Z24pKSB7DQo+IA0KPiAgICAgICAgTmV3QnVmZmVyID0gQWxsb2NhdGVBbGlnbmVkQnVmZmVyIChB dGFEZXZpY2UsIFRyYW5zZmVyTGVuZ3RoKTsNCj4gDQo+ICAgICAgICBpZiAoTmV3QnVmZmVyID09 IE5VTEwpIHsNCj4gDQo+ICAgICAgICAgIHJldHVybiBFRklfT1VUX09GX1JFU09VUkNFUzsNCj4g DQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL1Njc2kvU2NzaURpc2tEeGUvU2NzaURp c2suYw0KPiBiL01kZU1vZHVsZVBrZy9CdXMvU2NzaS9TY3NpRGlza0R4ZS9TY3NpRGlzay5jDQo+ IGluZGV4IDgxYzBmYTIxN2EwYi4uODFkYjJlZmQwNTk5IDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1 bGVQa2cvQnVzL1Njc2kvU2NzaURpc2tEeGUvU2NzaURpc2suYw0KPiArKysgYi9NZGVNb2R1bGVQ a2cvQnVzL1Njc2kvU2NzaURpc2tEeGUvU2NzaURpc2suYw0KPiBAQCAtMTk1Niw3ICsxOTU2LDcg QEAgU2NzaURpc2tSZWNlaXZlRGF0YSAoDQo+ICAgICAgICBnb3RvIERvbmU7DQo+IA0KPiAgICAg IH0NCj4gDQo+IA0KPiANCj4gLSAgICBpZiAoKFNjc2lEaXNrRGV2aWNlLT5TY3NpSW8tPklvQWxp Z24gPiAxKSAmJiAhQUREUkVTU19JU19BTElHTkVEXw0KPiAoUGF5bG9hZEJ1ZmZlciwgU2NzaURp c2tEZXZpY2UtPlNjc2lJby0+SW9BbGlnbikpIHsNCj4gDQo+ICsgICAgaWYgKChTY3NpRGlza0Rl dmljZS0+U2NzaUlvLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRA0KPiArIChQ YXlsb2FkQnVmZmVyLCBTY3NpRGlza0RldmljZS0+U2NzaUlvLT5Jb0FsaWduKSkgew0KPiANCj4g ICAgICAgIEFsaWduZWRCdWZmZXIgPSBBbGxvY2F0ZUFsaWduZWRCdWZmZXIgKFNjc2lEaXNrRGV2 aWNlLA0KPiBQYXlsb2FkQnVmZmVyU2l6ZSk7DQo+IA0KPiAgICAgICAgaWYgKEFsaWduZWRCdWZm ZXIgPT0gTlVMTCkgew0KPiANCj4gICAgICAgICAgU3RhdHVzID0gRUZJX09VVF9PRl9SRVNPVVJD RVM7DQo+IA0KPiBAQCAtMjE3MSw3ICsyMTcxLDcgQEAgU2NzaURpc2tTZW5kRGF0YSAoDQo+ICAg ICAgICBnb3RvIERvbmU7DQo+IA0KPiAgICAgIH0NCj4gDQo+IA0KPiANCj4gLSAgICBpZiAoKFNj c2lEaXNrRGV2aWNlLT5TY3NpSW8tPklvQWxpZ24gPiAxKSAmJiAhQUREUkVTU19JU19BTElHTkVE Xw0KPiAoUGF5bG9hZEJ1ZmZlciwgU2NzaURpc2tEZXZpY2UtPlNjc2lJby0+SW9BbGlnbikpIHsN Cj4gDQo+ICsgICAgaWYgKChTY3NpRGlza0RldmljZS0+U2NzaUlvLT5Jb0FsaWduID4gMSkgJiYg IUFERFJFU1NfSVNfQUxJR05FRA0KPiArIChQYXlsb2FkQnVmZmVyLCBTY3NpRGlza0RldmljZS0+ U2NzaUlvLT5Jb0FsaWduKSkgew0KPiANCj4gICAgICAgIEFsaWduZWRCdWZmZXIgPSBBbGxvY2F0 ZUFsaWduZWRCdWZmZXIgKFNjc2lEaXNrRGV2aWNlLA0KPiBQYXlsb2FkQnVmZmVyU2l6ZSk7DQo+ IA0KPiAgICAgICAgaWYgKEFsaWduZWRCdWZmZXIgPT0gTlVMTCkgew0KPiANCj4gICAgICAgICAg U3RhdHVzID0gRUZJX09VVF9PRl9SRVNPVVJDRVM7DQo+IA0KPiBkaWZmIC0tZ2l0IGEvTWRlTW9k dWxlUGtnL0J1cy9VZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnUuYw0KPiBiL01kZU1vZHVs ZVBrZy9CdXMvVWZzL1Vmc1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NUaHJ1LmMNCj4gaW5kZXggYWJmYjQy MmQxZWEzLi5jNGQwMWEyMGZjYmUgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvVWZz L1Vmc1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NUaHJ1LmMNCj4gKysrIGIvTWRlTW9kdWxlUGtnL0J1cy9V ZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnUuYw0KPiBAQCAtMTcwLDE1ICsxNzAsMTUgQEAg VWZzUGFzc1RocnVQYXNzVGhydSAoDQo+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRF UjsNCj4gDQo+ICAgIH0NCj4gDQo+IA0KPiANCj4gLSAgaWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWdu ID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRF8oUGFja2V0LQ0KPiA+SW5EYXRhQnVmZmVyLCBU aGlzLT5Nb2RlLT5Jb0FsaWduKSkgew0KPiANCj4gKyAgaWYgKChUaGlzLT5Nb2RlLT5Jb0FsaWdu ID4gMSkgJiYNCj4gKyAhQUREUkVTU19JU19BTElHTkVEKFBhY2tldC0+SW5EYXRhQnVmZmVyLCBU aGlzLT5Nb2RlLT5Jb0FsaWduKSkgew0KPiANCj4gICAgICByZXR1cm4gRUZJX0lOVkFMSURfUEFS QU1FVEVSOw0KPiANCj4gICAgfQ0KPiANCj4gDQo+IA0KPiAtICBpZiAoKFRoaXMtPk1vZGUtPklv QWxpZ24gPiAxKSAmJiAhQUREUkVTU19JU19BTElHTkVEXyhQYWNrZXQtDQo+ID5PdXREYXRhQnVm ZmVyLCBUaGlzLT5Nb2RlLT5Jb0FsaWduKSkgew0KPiANCj4gKyAgaWYgKChUaGlzLT5Nb2RlLT5J b0FsaWduID4gMSkgJiYNCj4gKyAhQUREUkVTU19JU19BTElHTkVEKFBhY2tldC0+T3V0RGF0YUJ1 ZmZlciwgVGhpcy0+TW9kZS0+SW9BbGlnbikpIHsNCj4gDQo+ICAgICAgcmV0dXJuIEVGSV9JTlZB TElEX1BBUkFNRVRFUjsNCj4gDQo+ICAgIH0NCj4gDQo+IA0KPiANCj4gLSAgaWYgKChUaGlzLT5N b2RlLT5Jb0FsaWduID4gMSkgJiYgIUFERFJFU1NfSVNfQUxJR05FRF8oUGFja2V0LQ0KPiA+U2Vu c2VEYXRhLCBUaGlzLT5Nb2RlLT5Jb0FsaWduKSkgew0KPiANCj4gKyAgaWYgKChUaGlzLT5Nb2Rl LT5Jb0FsaWduID4gMSkgJiYNCj4gKyAhQUREUkVTU19JU19BTElHTkVEKFBhY2tldC0+U2Vuc2VE YXRhLCBUaGlzLT5Nb2RlLT5Jb0FsaWduKSkgew0KPiANCj4gICAgICByZXR1cm4gRUZJX0lOVkFM SURfUEFSQU1FVEVSOw0KPiANCj4gICAgfQ0KPiANCj4gDQo+IA0KPiBkaWZmIC0tZ2l0IGEvTWRl TW9kdWxlUGtnL1VuaXZlcnNhbC9FYmNEeGUvRWJjRXhlY3V0ZS5jDQo+IGIvTWRlTW9kdWxlUGtn L1VuaXZlcnNhbC9FYmNEeGUvRWJjRXhlY3V0ZS5jDQo+IGluZGV4IDM1ZjYwY2FiZGViNC4uYmE2 NmY0NDFiY2VhIDEwMDY0NA0KPiAtLS0gYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0ViY0R4ZS9F YmNFeGVjdXRlLmMNCj4gKysrIGIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9FYmNEeGUvRWJjRXhl Y3V0ZS5jDQo+IEBAIC0yMDA0LDcgKzIwMDQsNyBAQCBFeGVjdXRlSk1QICgNCj4gICAgICAvLyBj aGVjayBmb3IgYWxpZ25tZW50LCBhbmQganVtcCBhYnNvbHV0ZS4NCj4gDQo+ICAgICAgLy8NCj4g DQo+ICAgICAgRGF0YTY0ID0gKFVJTlQ2NCkgVm1SZWFkSW1tZWQ2NCAoVm1QdHIsIDIpOw0KPiAN Cj4gLSAgICBpZiAoIUFERFJFU1NfSVNfQUxJR05FRF8gKChVSU5UTikgRGF0YTY0LCBzaXplb2Yg KFVJTlQxNikpKSB7DQo+IA0KPiArICAgIGlmICghQUREUkVTU19JU19BTElHTkVEICgoVUlOVE4p IERhdGE2NCwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiANCj4gICAgICAgIEViY0RlYnVnU2lnbmFs RXhjZXB0aW9uICgNCj4gDQo+ICAgICAgICAgIEVYQ0VQVF9FQkNfQUxJR05NRU5UX0NIRUNLLA0K PiANCj4gICAgICAgICAgRVhDRVBUSU9OX0ZMQUdfRkFUQUwsDQo+IA0KPiBAQCAtMjA1OSw3ICsy MDU5LDcgQEAgRXhlY3V0ZUpNUCAoDQo+ICAgICAgLy8gRm9ybTogSk1QMzIgQFJ4IHtJbmRleDMy fQ0KPiANCj4gICAgICAvLw0KPiANCj4gICAgICBBZGRyID0gVm1SZWFkTWVtTiAoVm1QdHIsIChV SU5UTikgRGF0YTY0ICsgSW5kZXgzMik7DQo+IA0KPiAtICAgIGlmICghQUREUkVTU19JU19BTElH TkVEXyAoKFVJTlROKSBBZGRyLCBzaXplb2YgKFVJTlQxNikpKSB7DQo+IA0KPiArICAgIGlmICgh QUREUkVTU19JU19BTElHTkVEICgoVUlOVE4pIEFkZHIsIHNpemVvZiAoVUlOVDE2KSkpIHsNCj4g DQo+ICAgICAgICBFYmNEZWJ1Z1NpZ25hbEV4Y2VwdGlvbiAoDQo+IA0KPiAgICAgICAgICBFWENF UFRfRUJDX0FMSUdOTUVOVF9DSEVDSywNCj4gDQo+ICAgICAgICAgIEVYQ0VQVElPTl9GTEFHX0ZB VEFMLA0KPiANCj4gQEAgLTIwODIsNyArMjA4Miw3IEBAIEV4ZWN1dGVKTVAgKA0KPiAgICAgIC8v IEZvcm06IEpNUDMyIFJ4IHtJbW1lZDMyfQ0KPiANCj4gICAgICAvLw0KPiANCj4gICAgICBBZGRy ID0gKFVJTlROKSAoRGF0YTY0ICsgSW5kZXgzMik7DQo+IA0KPiAtICAgIGlmICghQUREUkVTU19J U19BTElHTkVEXyAoKFVJTlROKSBBZGRyLCBzaXplb2YgKFVJTlQxNikpKSB7DQo+IA0KPiArICAg IGlmICghQUREUkVTU19JU19BTElHTkVEICgoVUlOVE4pIEFkZHIsIHNpemVvZiAoVUlOVDE2KSkp IHsNCj4gDQo+ICAgICAgICBFYmNEZWJ1Z1NpZ25hbEV4Y2VwdGlvbiAoDQo+IA0KPiAgICAgICAg ICBFWENFUFRfRUJDX0FMSUdOTUVOVF9DSEVDSywNCj4gDQo+ICAgICAgICAgIEVYQ0VQVElPTl9G TEFHX0ZBVEFMLA0KPiANCj4gQEAgLTMxMjgsNyArMzEyOCw3IEBAIEV4ZWN1dGVSRVQgKA0KPiAg ICAgIC8vIFB1bGwgdGhlIHJldHVybiBhZGRyZXNzIG9mZiB0aGUgVk0gYXBwJ3Mgc3RhY2sgYW5k IHNldCB0aGUgSVANCj4gDQo+ICAgICAgLy8gdG8gaXQNCj4gDQo+ICAgICAgLy8NCj4gDQo+IC0g ICAgaWYgKCFBRERSRVNTX0lTX0FMSUdORURfICgoVUlOVE4pIFZtUHRyLT5HcHJbMF0sIHNpemVv ZiAoVUlOVDE2KSkpIHsNCj4gDQo+ICsgICAgaWYgKCFBRERSRVNTX0lTX0FMSUdORUQgKChVSU5U TikgVm1QdHItPkdwclswXSwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiANCj4gICAgICAgIEViY0Rl YnVnU2lnbmFsRXhjZXB0aW9uICgNCj4gDQo+ICAgICAgICAgIEVYQ0VQVF9FQkNfQUxJR05NRU5U X0NIRUNLLA0KPiANCj4gICAgICAgICAgRVhDRVBUSU9OX0ZMQUdfRkFUQUwsDQo+IA0KPiBAQCAt NDY5Myw3ICs0NjkzLDcgQEAgVm1Xcml0ZU1lbTE2ICgNCj4gICAgLy8NCj4gDQo+ICAgIC8vIERv IGEgc2ltcGxlIHdyaXRlIGlmIGFsaWduZWQNCj4gDQo+ICAgIC8vDQo+IA0KPiAtICBpZiAoQURE UkVTU19JU19BTElHTkVEXyAoQWRkciwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiANCj4gKyAgaWYg KEFERFJFU1NfSVNfQUxJR05FRCAoQWRkciwgc2l6ZW9mIChVSU5UMTYpKSkgew0KPiANCj4gICAg ICAqKFVJTlQxNiAqKSBBZGRyID0gRGF0YTsNCj4gDQo+ICAgIH0gZWxzZSB7DQo+IA0KPiAgICAg IC8vDQo+IA0KPiBAQCAtNDc1Niw3ICs0NzU2LDcgQEAgVm1Xcml0ZU1lbTMyICgNCj4gICAgLy8N Cj4gDQo+ICAgIC8vIERvIGEgc2ltcGxlIHdyaXRlIGlmIGFsaWduZWQNCj4gDQo+ICAgIC8vDQo+ IA0KPiAtICBpZiAoQUREUkVTU19JU19BTElHTkVEXyAoQWRkciwgc2l6ZW9mIChVSU5UMzIpKSkg ew0KPiANCj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRCAoQWRkciwgc2l6ZW9mIChVSU5UMzIp KSkgew0KPiANCj4gICAgICAqKFVJTlQzMiAqKSBBZGRyID0gRGF0YTsNCj4gDQo+ICAgIH0gZWxz ZSB7DQo+IA0KPiAgICAgIC8vDQo+IA0KPiBAQCAtNDgxOSw3ICs0ODE5LDcgQEAgVm1Xcml0ZU1l bTY0ICgNCj4gICAgLy8NCj4gDQo+ICAgIC8vIERvIGEgc2ltcGxlIHdyaXRlIGlmIGFsaWduZWQN Cj4gDQo+ICAgIC8vDQo+IA0KPiAtICBpZiAoQUREUkVTU19JU19BTElHTkVEXyAoQWRkciwgc2l6 ZW9mIChVSU5UNjQpKSkgew0KPiANCj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRCAoQWRkciwg c2l6ZW9mIChVSU5UNjQpKSkgew0KPiANCj4gICAgICAqKFVJTlQ2NCAqKSBBZGRyID0gRGF0YTsN Cj4gDQo+ICAgIH0gZWxzZSB7DQo+IA0KPiAgICAgIC8vDQo+IA0KPiBAQCAtNDg4NSw3ICs0ODg1 LDcgQEAgVm1Xcml0ZU1lbU4gKA0KPiAgICAvLw0KPiANCj4gICAgLy8gRG8gYSBzaW1wbGUgd3Jp dGUgaWYgYWxpZ25lZA0KPiANCj4gICAgLy8NCj4gDQo+IC0gIGlmIChBRERSRVNTX0lTX0FMSUdO RURfIChBZGRyLCBzaXplb2YgKFVJTlROKSkpIHsNCj4gDQo+ICsgIGlmIChBRERSRVNTX0lTX0FM SUdORUQgKEFkZHIsIHNpemVvZiAoVUlOVE4pKSkgew0KPiANCj4gICAgICAqKFVJTlROICopIEFk ZHIgPSBEYXRhOw0KPiANCj4gICAgfSBlbHNlIHsNCj4gDQo+ICAgICAgZm9yIChJbmRleCA9IDA7 IEluZGV4IDwgc2l6ZW9mIChVSU5UTikgLyBzaXplb2YgKFVJTlQzMik7IEluZGV4KyspIHsNCj4g DQo+IEBAIC00OTQ5LDcgKzQ5NDksNyBAQCBWbVJlYWRJbW1lZDE2ICgNCj4gICAgLy8NCj4gDQo+ ICAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQNCj4gDQo+ICAgIC8vDQo+IA0KPiAtICBpZiAo QUREUkVTU19JU19BTElHTkVEXyAoKFVJTlROKSBWbVB0ci0+SXAgKyBPZmZzZXQsIHNpemVvZiAo SU5UMTYpKSkgew0KPiANCj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRCAoKFVJTlROKSBWbVB0 ci0+SXAgKyBPZmZzZXQsIHNpemVvZiAoSU5UMTYpKSkNCj4gKyB7DQo+IA0KPiAgICAgIHJldHVy biAqIChJTlQxNiAqKSAoVm1QdHItPklwICsgT2Zmc2V0KTsNCj4gDQo+ICAgIH0gZWxzZSB7DQo+ IA0KPiAgICAgIC8vDQo+IA0KPiBAQCAtNDk5Myw3ICs0OTkzLDcgQEAgVm1SZWFkSW1tZWQzMiAo DQo+ICAgIC8vDQo+IA0KPiAgICAvLyBSZWFkIGRpcmVjdCBpZiBhbGlnbmVkDQo+IA0KPiAgICAv Lw0KPiANCj4gLSAgaWYgKEFERFJFU1NfSVNfQUxJR05FRF8gKChVSU5UTikgVm1QdHItPklwICsg T2Zmc2V0LCBzaXplb2YgKFVJTlQzMikpKQ0KPiB7DQo+IA0KPiArICBpZiAoQUREUkVTU19JU19B TElHTkVEICgoVUlOVE4pIFZtUHRyLT5JcCArIE9mZnNldCwgc2l6ZW9mIChVSU5UMzIpKSkNCj4g KyB7DQo+IA0KPiAgICAgIHJldHVybiAqIChJTlQzMiAqKSAoVm1QdHItPklwICsgT2Zmc2V0KTsN Cj4gDQo+ICAgIH0NCj4gDQo+ICAgIC8vDQo+IA0KPiBAQCAtNTAzMiw3ICs1MDMyLDcgQEAgVm1S ZWFkSW1tZWQ2NCAoDQo+ICAgIC8vDQo+IA0KPiAgICAvLyBSZWFkIGRpcmVjdCBpZiBhbGlnbmVk DQo+IA0KPiAgICAvLw0KPiANCj4gLSAgaWYgKEFERFJFU1NfSVNfQUxJR05FRF8gKChVSU5UTikg Vm1QdHItPklwICsgT2Zmc2V0LCBzaXplb2YgKFVJTlQ2NCkpKQ0KPiB7DQo+IA0KPiArICBpZiAo QUREUkVTU19JU19BTElHTkVEICgoVUlOVE4pIFZtUHRyLT5JcCArIE9mZnNldCwgc2l6ZW9mIChV SU5UNjQpKSkNCj4gKyB7DQo+IA0KPiAgICAgIHJldHVybiAqIChVSU5UNjQgKikgKFZtUHRyLT5J cCArIE9mZnNldCk7DQo+IA0KPiAgICB9DQo+IA0KPiAgICAvLw0KPiANCj4gQEAgLTUwNjksNyAr NTA2OSw3IEBAIFZtUmVhZENvZGUxNiAoDQo+ICAgIC8vDQo+IA0KPiAgICAvLyBSZWFkIGRpcmVj dCBpZiBhbGlnbmVkDQo+IA0KPiAgICAvLw0KPiANCj4gLSAgaWYgKEFERFJFU1NfSVNfQUxJR05F RF8gKChVSU5UTikgVm1QdHItPklwICsgT2Zmc2V0LCBzaXplb2YgKFVJTlQxNikpKQ0KPiB7DQo+ IA0KPiArICBpZiAoQUREUkVTU19JU19BTElHTkVEICgoVUlOVE4pIFZtUHRyLT5JcCArIE9mZnNl dCwgc2l6ZW9mIChVSU5UMTYpKSkNCj4gKyB7DQo+IA0KPiAgICAgIHJldHVybiAqIChVSU5UMTYg KikgKFZtUHRyLT5JcCArIE9mZnNldCk7DQo+IA0KPiAgICB9IGVsc2Ugew0KPiANCj4gICAgICAv Lw0KPiANCj4gQEAgLTUxMTAsNyArNTExMCw3IEBAIFZtUmVhZENvZGUzMiAoDQo+ICAgIC8vDQo+ IA0KPiAgICAvLyBSZWFkIGRpcmVjdCBpZiBhbGlnbmVkDQo+IA0KPiAgICAvLw0KPiANCj4gLSAg aWYgKEFERFJFU1NfSVNfQUxJR05FRF8gKChVSU5UTikgVm1QdHItPklwICsgT2Zmc2V0LCBzaXpl b2YgKFVJTlQzMikpKQ0KPiB7DQo+IA0KPiArICBpZiAoQUREUkVTU19JU19BTElHTkVEICgoVUlO VE4pIFZtUHRyLT5JcCArIE9mZnNldCwgc2l6ZW9mIChVSU5UMzIpKSkNCj4gKyB7DQo+IA0KPiAg ICAgIHJldHVybiAqIChVSU5UMzIgKikgKFZtUHRyLT5JcCArIE9mZnNldCk7DQo+IA0KPiAgICB9 DQo+IA0KPiAgICAvLw0KPiANCj4gQEAgLTUxNDcsNyArNTE0Nyw3IEBAIFZtUmVhZENvZGU2NCAo DQo+ICAgIC8vDQo+IA0KPiAgICAvLyBSZWFkIGRpcmVjdCBpZiBhbGlnbmVkDQo+IA0KPiAgICAv Lw0KPiANCj4gLSAgaWYgKEFERFJFU1NfSVNfQUxJR05FRF8gKChVSU5UTikgVm1QdHItPklwICsg T2Zmc2V0LCBzaXplb2YgKFVJTlQ2NCkpKQ0KPiB7DQo+IA0KPiArICBpZiAoQUREUkVTU19JU19B TElHTkVEICgoVUlOVE4pIFZtUHRyLT5JcCArIE9mZnNldCwgc2l6ZW9mIChVSU5UNjQpKSkNCj4g KyB7DQo+IA0KPiAgICAgIHJldHVybiAqIChVSU5UNjQgKikgKFZtUHRyLT5JcCArIE9mZnNldCk7 DQo+IA0KPiAgICB9DQo+IA0KPiAgICAvLw0KPiANCj4gQEAgLTUyMTAsNyArNTIxMCw3IEBAIFZt UmVhZE1lbTE2ICgNCj4gICAgLy8NCj4gDQo+ICAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQN Cj4gDQo+ICAgIC8vDQo+IA0KPiAtICBpZiAoQUREUkVTU19JU19BTElHTkVEXyAoQWRkciwgc2l6 ZW9mIChVSU5UMTYpKSkgew0KPiANCj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRCAoQWRkciwg c2l6ZW9mIChVSU5UMTYpKSkgew0KPiANCj4gICAgICByZXR1cm4gKiAoVUlOVDE2ICopIEFkZHI7 DQo+IA0KPiAgICB9DQo+IA0KPiAgICAvLw0KPiANCj4gQEAgLTUyNDMsNyArNTI0Myw3IEBAIFZt UmVhZE1lbTMyICgNCj4gICAgLy8NCj4gDQo+ICAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQN Cj4gDQo+ICAgIC8vDQo+IA0KPiAtICBpZiAoQUREUkVTU19JU19BTElHTkVEXyAoQWRkciwgc2l6 ZW9mIChVSU5UMzIpKSkgew0KPiANCj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRCAoQWRkciwg c2l6ZW9mIChVSU5UMzIpKSkgew0KPiANCj4gICAgICByZXR1cm4gKiAoVUlOVDMyICopIEFkZHI7 DQo+IA0KPiAgICB9DQo+IA0KPiAgICAvLw0KPiANCj4gQEAgLTUyODAsNyArNTI4MCw3IEBAIFZt UmVhZE1lbTY0ICgNCj4gICAgLy8NCj4gDQo+ICAgIC8vIFJlYWQgZGlyZWN0IGlmIGFsaWduZWQN Cj4gDQo+ICAgIC8vDQo+IA0KPiAtICBpZiAoQUREUkVTU19JU19BTElHTkVEXyAoQWRkciwgc2l6 ZW9mIChVSU5UNjQpKSkgew0KPiANCj4gKyAgaWYgKEFERFJFU1NfSVNfQUxJR05FRCAoQWRkciwg c2l6ZW9mIChVSU5UNjQpKSkgew0KPiANCj4gICAgICByZXR1cm4gKiAoVUlOVDY0ICopIEFkZHI7 DQo+IA0KPiAgICB9DQo+IA0KPiAgICAvLw0KPiANCj4gQEAgLTUzNDksNyArNTM0OSw3IEBAIFZt UmVhZE1lbU4gKA0KPiAgICAvLw0KPiANCj4gICAgLy8gUmVhZCBkaXJlY3QgaWYgYWxpZ25lZA0K PiANCj4gICAgLy8NCj4gDQo+IC0gIGlmIChBRERSRVNTX0lTX0FMSUdORURfIChBZGRyLCBzaXpl b2YgKFVJTlROKSkpIHsNCj4gDQo+ICsgIGlmIChBRERSRVNTX0lTX0FMSUdORUQgKEFkZHIsIHNp emVvZiAoVUlOVE4pKSkgew0KPiANCj4gICAgICByZXR1cm4gKiAoVUlOVE4gKikgQWRkcjsNCj4g DQo+ICAgIH0NCj4gDQo+ICAgIC8vDQo+IA0KPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1 cy9BdGEvQWhjaVBlaS9BaGNpUGVpLmgNCj4gYi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BaGNpUGVp L0FoY2lQZWkuaA0KPiBpbmRleCAyYTc0Yzk5ODQ3OTEuLjU5YmI5ZTVkMGJjYSAxMDA2NDQNCj4g LS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9BdGEvQWhjaVBlaS9BaGNpUGVpLmgNCj4gKysrIGIvTWRl TW9kdWxlUGtnL0J1cy9BdGEvQWhjaVBlaS9BaGNpUGVpLmgNCj4gQEAgLTE0NSw3ICsxNDUsNiBA QCB0eXBlZGVmIHVuaW9uIHsNCj4gICNkZWZpbmUgQUhDSV9QT1JUX1NFUlIgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwMDMwDQo+IA0KPiAgI2RlZmluZSBBSENJX1BPUlRfQ0kgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwMzgNCj4gDQo+IA0KPiANCj4gLSNkZWZpbmUgQUREUkVTU19J U19BTElHTkVEXyhhZGRyLCBzaXplKSAgICAgICAgICAgICAgICAgKCgoVUlOVE4pIChhZGRyKSAm IChzaXplDQo+IC0gMSkpID09IDApDQo+IA0KPiAgI2RlZmluZSBUSU1FUl9QRVJJT0RfU0VDT05E UyhTZWNvbmRzKQ0KPiBNdWx0VTY0eDMyKChVSU5UNjQpKFNlY29uZHMpLCAxMDAwMDAwMCkNCj4g DQo+IA0KPiANCj4gICNwcmFnbWEgcGFjaygxKQ0KPiANCj4gZGlmZiAtLWdpdCBhL01kZU1vZHVs ZVBrZy9CdXMvQXRhL0F0YUF0YXBpUGFzc1RocnUvQXRhQXRhcGlQYXNzVGhydS5oDQo+IGIvTWRl TW9kdWxlUGtnL0J1cy9BdGEvQXRhQXRhcGlQYXNzVGhydS9BdGFBdGFwaVBhc3NUaHJ1LmgNCj4g aW5kZXggYWEzNDcyYTcxNjc3Li45OWJiZjdkMTRhMTcgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVs ZVBrZy9CdXMvQXRhL0F0YUF0YXBpUGFzc1RocnUvQXRhQXRhcGlQYXNzVGhydS5oDQo+ICsrKyBi L01kZU1vZHVsZVBrZy9CdXMvQXRhL0F0YUF0YXBpUGFzc1RocnUvQXRhQXRhcGlQYXNzVGhydS5o DQo+IEBAIC0xNDcsOCArMTQ3LDYgQEAgc3RydWN0IF9BVEFfTk9OQkxPQ0tfVEFTSyB7DQo+ICAj ZGVmaW5lIEFUQV9BVEFQSV9USU1FT1VUICAgICAgICAgICBFRklfVElNRVJfUEVSSU9EX1NFQ09O RFMoMykNCj4gDQo+ICAjZGVmaW5lIEFUQV9TUElOVVBfVElNRU9VVCAgICAgICAgICBFRklfVElN RVJfUEVSSU9EX1NFQ09ORFMoMTApDQo+IA0KPiANCj4gDQo+IC0jZGVmaW5lIEFERFJFU1NfSVNf QUxJR05FRF8oYWRkciwgc2l6ZSkgICAgICAoKChVSU5UTikgKGFkZHIpICYgKHNpemUgLSAxKSkN Cj4gPT0gMCkNCj4gDQo+IC0NCj4gDQo+ICAjZGVmaW5lIEFUQV9QQVNTX1RIUlVfUFJJVkFURV9E QVRBX0ZST01fVEhJUyhhKSBcDQo+IA0KPiAgICBDUiAoYSwgXA0KPiANCj4gICAgICAgIEFUQV9B VEFQSV9QQVNTX1RIUlVfSU5TVEFOQ0UsIFwNCj4gDQo+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQ a2cvQnVzL0F0YS9BdGFCdXNEeGUvQXRhQnVzLmgNCj4gYi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9B dGFCdXNEeGUvQXRhQnVzLmgNCj4gaW5kZXggMTM3NjdhOGExM2M4Li4xNzJkMmQ2MWVhNmMgMTAw NjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvQXRhL0F0YUJ1c0R4ZS9BdGFCdXMuaA0KPiAr KysgYi9NZGVNb2R1bGVQa2cvQnVzL0F0YS9BdGFCdXNEeGUvQXRhQnVzLmgNCj4gQEAgLTc2LDcg Kzc2LDYgQEANCj4gICNkZWZpbmUgQVRBX1RBU0tfU0lHTkFUVVJFICAgICAgICAgICAgICAgIFNJ R05BVFVSRV8zMiAoJ0EnLCAnVCcsICdTJywgJ0snKQ0KPiANCj4gICNkZWZpbmUgQVRBX0RFVklD RV9TSUdOQVRVUkUgICAgICAgICAgICAgIFNJR05BVFVSRV8zMiAoJ0EnLCAnQicsICdJJywgJ0Qn KQ0KPiANCj4gICNkZWZpbmUgQVRBX1NVQl9UQVNLX1NJR05BVFVSRSAgICAgICAgICAgIFNJR05B VFVSRV8zMiAoJ0EnLCAnUycsICdUJywgJ1MnKQ0KPiANCj4gLSNkZWZpbmUgQUREUkVTU19JU19B TElHTkVEXyhhZGRyLCBzaXplKSAgICAgICAgICAgICgoKFVJTlROKSAoYWRkcikgJiAoc2l6ZSAt DQo+IDEpKSA9PSAwKQ0KPiANCj4gDQo+IA0KPiAgLy8NCj4gDQo+ICAvLyBBVEEgYnVzIGRhdGEg c3RydWN0dXJlIGZvciBBVEEgY29udHJvbGxlcg0KPiANCj4gZGlmZiAtLWdpdCBhL01kZU1vZHVs ZVBrZy9CdXMvU2NzaS9TY3NpRGlza0R4ZS9TY3NpRGlzay5oDQo+IGIvTWRlTW9kdWxlUGtnL0J1 cy9TY3NpL1Njc2lEaXNrRHhlL1Njc2lEaXNrLmgNCj4gaW5kZXggYWJlMWQwNmE5OGRhLi4zNmZh YzI1OGYzZTYgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvU2NzaS9TY3NpRGlza0R4 ZS9TY3NpRGlzay5oDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9CdXMvU2NzaS9TY3NpRGlza0R4ZS9T Y3NpRGlzay5oDQo+IEBAIC0zOSw4ICszOSw2IEBAIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtUGF0ZW50DQo+IA0KPiANCj4gICNkZWZpbmUgSVNfREVWSUNFX0ZJWEVEKGEp ICAgICAgICAoYSktPkZpeGVkRGV2aWNlID8gMSA6IDANCj4gDQo+IA0KPiANCj4gLSNkZWZpbmUg QUREUkVTU19JU19BTElHTkVEXyhhZGRyLCBzaXplKSAgICAoKChVSU5UTikgKGFkZHIpICYgKHNp emUgLSAxKSkNCj4gPT0gMCkNCj4gDQo+IC0NCj4gDQo+ICAjZGVmaW5lIFVGU19XTFVOX1JQTUIg MHhDNA0KPiANCj4gDQo+IA0KPiAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiANCj4gZGlmZiAtLWdpdCBh L01kZU1vZHVsZVBrZy9CdXMvVWZzL1Vmc0Jsb2NrSW9QZWkvVWZzQmxvY2tJb1BlaS5oDQo+IGIv TWRlTW9kdWxlUGtnL0J1cy9VZnMvVWZzQmxvY2tJb1BlaS9VZnNCbG9ja0lvUGVpLmgNCj4gaW5k ZXggNDgwMmZkYzBhYjliLi43MzA2MTA2YTQ0NTQgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBr Zy9CdXMvVWZzL1Vmc0Jsb2NrSW9QZWkvVWZzQmxvY2tJb1BlaS5oDQo+ICsrKyBiL01kZU1vZHVs ZVBrZy9CdXMvVWZzL1Vmc0Jsb2NrSW9QZWkvVWZzQmxvY2tJb1BlaS5oDQo+IEBAIC0xMzMsOCAr MTMzLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX1VGU19QRUlNX0hDX1BSSVZBVEVfREFUQSB7DQo+IA0K PiANCj4gICNkZWZpbmUgUk9VTkRVUDgoeCkgKCgoeCkgJSA4ID09IDApID8gKHgpIDogKCh4KSAv IDggKyAxKSAqIDgpDQo+IA0KPiANCj4gDQo+IC0jZGVmaW5lIEFERFJFU1NfSVNfQUxJR05FRF8o YWRkciwgc2l6ZSkgICAgICAoKChVSU5UTikgKGFkZHIpICYgKHNpemUgLSAxKSkNCj4gPT0gMCkN Cj4gDQo+IC0NCj4gDQo+ICAjZGVmaW5lIEdFVF9VRlNfUEVJTV9IQ19QUklWQVRFX0RBVEFfRlJP TV9USElTKGEpIENSIChhLA0KPiBVRlNfUEVJTV9IQ19QUklWQVRFX0RBVEEsIEJsa0lvUHBpLCBV RlNfUEVJTV9IQ19TSUcpDQo+IA0KPiAgI2RlZmluZSBHRVRfVUZTX1BFSU1fSENfUFJJVkFURV9E QVRBX0ZST01fVEhJUzIoYSkgQ1IgKGEsDQo+IFVGU19QRUlNX0hDX1BSSVZBVEVfREFUQSwgQmxr SW8yUHBpLCBVRlNfUEVJTV9IQ19TSUcpDQo+IA0KPiAgI2RlZmluZSBHRVRfVUZTX1BFSU1fSENf UFJJVkFURV9EQVRBX0ZST01fVEhJU19OT1RJRlkoYSkgQ1IgKGEsDQo+IFVGU19QRUlNX0hDX1BS SVZBVEVfREFUQSwgRW5kT2ZQZWlOb3RpZnlMaXN0LCBVRlNfUEVJTV9IQ19TSUcpDQo+IA0KPiBk aWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0J1cy9VZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFzc1Ro cnUuaA0KPiBiL01kZU1vZHVsZVBrZy9CdXMvVWZzL1Vmc1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NUaHJ1 LmgNCj4gaW5kZXggZGEzYmY3OGJmOWJjLi4xMWI1YjE5N2I2N2EgMTAwNjQ0DQo+IC0tLSBhL01k ZU1vZHVsZVBrZy9CdXMvVWZzL1Vmc1Bhc3NUaHJ1RHhlL1Vmc1Bhc3NUaHJ1LmgNCj4gKysrIGIv TWRlTW9kdWxlUGtnL0J1cy9VZnMvVWZzUGFzc1RocnVEeGUvVWZzUGFzc1RocnUuaA0KPiBAQCAt MTA1LDggKzEwNSw2IEBAIHR5cGVkZWYgc3RydWN0IHsNCj4gDQo+IA0KPiAgI2RlZmluZSBST1VO RFVQOCh4KSAoKCh4KSAlIDggPT0gMCkgPyAoeCkgOiAoKHgpIC8gOCArIDEpICogOCkNCj4gDQo+ IA0KPiANCj4gLSNkZWZpbmUgQUREUkVTU19JU19BTElHTkVEXyhhZGRyLCBzaXplKSAgICAgICAg KCgoVUlOVE4pIChhZGRyKSAmIChzaXplIC0gMSkpDQo+ID09IDApDQo+IA0KPiAtDQo+IA0KPiAg I2RlZmluZSBVRlNfUEFTU19USFJVX1BSSVZBVEVfREFUQV9GUk9NX1RISVMoYSkgXA0KPiANCj4g ICAgQ1IgKGEsIFwNCj4gDQo+ICAgICAgICBVRlNfUEFTU19USFJVX1BSSVZBVEVfREFUQSwgXA0K PiANCj4gZGlmZiAtLWdpdCBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRWJjRHhlL0ViY0V4ZWN1 dGUuaA0KPiBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvRWJjRHhlL0ViY0V4ZWN1dGUuaA0KPiBp bmRleCBmMjFjNzU3YTc1YjQuLmRjYmRjNjY2MzdlOSAxMDA2NDQNCj4gLS0tIGEvTWRlTW9kdWxl UGtnL1VuaXZlcnNhbC9FYmNEeGUvRWJjRXhlY3V0ZS5oDQo+ICsrKyBiL01kZU1vZHVsZVBrZy9V bml2ZXJzYWwvRWJjRHhlL0ViY0V4ZWN1dGUuaA0KPiBAQCAtMTQsOCArMTQsNyBAQCBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudCAgLy8NCj4gDQo+ICAvLyBNYWNy b3MgdG8gY2hlY2sgYW5kIHNldCBhbGlnbm1lbnQNCj4gDQo+ICAvLw0KPiANCj4gLSNkZWZpbmUg QVNTRVJUX0FMSUdORUQoYWRkciwgc2l6ZSkgIEFTU0VSVCAoISgoVUlOVDMyKSAoYWRkcikgJiAo c2l6ZSAtIDEpKSkNCj4gDQo+IC0jZGVmaW5lIEFERFJFU1NfSVNfQUxJR05FRF8oYWRkciwgc2l6 ZSkgICAgICAhKChVSU5UMzIpIChhZGRyKSAmIChzaXplIC0gMSkpDQo+IA0KPiArI2RlZmluZSBB U1NFUlRfQUxJR05FRChhZGRyLCBzaXplKSAgQVNTRVJUIChBRERSRVNTX0lTX0FMSUdORUQgKGFk ZHIsDQo+ICtzaXplKSkNCj4gDQo+IA0KPiANCj4gIC8vDQo+IA0KPiAgLy8gRGVidWcgbWFjcm8N Cj4gDQo+IC0tDQo+IDIuMzEuMQ0KPiANCj4gDQo+IA0KPiANCj4gDQoNCg==