From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (NAM10-BN7-obe.outbound.protection.outlook.com [40.107.92.58]) by mx.groups.io with SMTP id smtpd.web12.987.1662584170231584600 for ; Wed, 07 Sep 2022 13:56:10 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@nvidia.com header.s=selector2 header.b=kniTSIIs; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: nvidia.com, ip: 40.107.92.58, mailfrom: jbrasen@nvidia.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QgwQgnY4bmoecfuA59AOmFPlv56GrcNdj0c34RmAJ5Sknj/pP/i74Xnf5zXB4eBgRdWobmHSInQ8B4zOWkKHLt8QNsfkZAfI9sckfY6d7iMoxgMCe7oGKvewg658r7ej6h3NDrVwIlGBVx2mkREFrwhGeSITVlTsdlDAnLQ3ohV371qlWoE6kOf2bZkV/I4MHMr9t5kz4ePGs4CDv6zM/HC5l4yb9Z+LYd3paxl2G/IVglrLjKRKqvaRfXDxlNuc8y/Rn6vuSFLSJdegXZ/ZTzXzCKqOQhJlJ+YuxbSHuk42eMbCfn7ZFfD+RU4rA0gbIuVl4q7dM0CHIAYi7ljAAA== 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=/OSHyfJc8SSMPLOfDyHjsrzhHbllnhqD7yNVFR7Q7Wk=; b=VOF6zmcGr29mf5YoyamBi3n6FXOv90sGu8nEtiNe/SfePSQnkH+b9Iea0lVcbbxWfDP4Ac9dYAofv40qNdBWoZi/td7/tlBq189MJy3V8EDoWDHGglH68HdELji3QyQeyAEFkGRH2Mg0Co+vAx7P3ycllLmxOeK/GHYkNEAZwae+hLCeRJCMdsFafZRiupXjNpIXuVBl/UuyKvRNPBSP3oYADtuK2LeJxvS9WpuUK7GhTEC/P2tMuUcTd/HQcyghXihB/MhEUOvqvxPJ8xqIjMTpI/IiNNgfiwFWEaIypqFTx1vNqejx9igJ8CDteqsB73733RLv6N1rulthDz2sJQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/OSHyfJc8SSMPLOfDyHjsrzhHbllnhqD7yNVFR7Q7Wk=; b=kniTSIIsd6fIq5wM7Ra8FTisi8LnBR9x4uePsfpkkxKjto6qHGUS5WLg/EYhk5dYE+c2UOMmcjZqCzDd8u3p7H59jzBk+kloQuYvkh5zxGS+rY87u9GWxYXZKduk6l65bKTamkTyLCCWBGCvV+fbQ870jX304ONr2fswHkZa62tDM1SS19NX/rnMNtvWwxOXLSer7O9tJznyLrwBBzoSosynX7ux84rjP5Ak2DbZgVnR4+AuwDljF/NqTYmXqXGiLyJhLMLzvFuCuwGwIoPw/cEiQTfa3+2KDH7JNBev6lTLOvBlq3OjsD6NTLSt1F95jUrDJsk+zTtuwFC6TENJSg== Received: from DS7PR12MB5789.namprd12.prod.outlook.com (2603:10b6:8:74::21) by MW3PR12MB4394.namprd12.prod.outlook.com (2603:10b6:303:54::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.15; Wed, 7 Sep 2022 20:56:07 +0000 Received: from DS7PR12MB5789.namprd12.prod.outlook.com ([fe80::addf:154b:ae11:5e13]) by DS7PR12MB5789.namprd12.prod.outlook.com ([fe80::addf:154b:ae11:5e13%4]) with mapi id 15.20.5588.010; Wed, 7 Sep 2022 20:56:07 +0000 From: "Jeff Brasen" To: Ard Biesheuvel CC: "devel@edk2.groups.io" , "ardb+tianocore@kernel.org" , "abner.chang@amd.com" , "git@danielschaefer.me" , "quic_llindhol@quicinc.com" Subject: Re: [PATCH v2] EmbeddedPkg/PrePiMemoryAllocationLib: Check for space on offset allocation Thread-Topic: [PATCH v2] EmbeddedPkg/PrePiMemoryAllocationLib: Check for space on offset allocation Thread-Index: AQHYwtU0wjIJ8EfSL0Ky3k++zEs3Ka3UcpyQ Date: Wed, 7 Sep 2022 20:56:07 +0000 Message-ID: References: <3bbe3600b3c7012614a09aedb3543821b33f28c0.1662565486.git.jbrasen@nvidia.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ce516c69-d275-4e57-c2c1-08da911362cb x-ms-traffictypediagnostic: MW3PR12MB4394:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zI8AnB3ZKW7PpC8h7GI42clONujUk99ykmpFexQn5sWWwRrA+Ye81a0Romfbx5DrB2wigSTRpYiy4YMBVgQxFdEJiWOlPJs5JhqpbHB+sm39V5OWdpznmuXM816DnJOf+rKNlhenAhV9Ax7rNUDLs5hUuls3qrEygHG5he0QI2/y6DUaUVGlrZ9R1lwn28N/LNKNOvkrjUiIs85Vee3HMYZAP9i0dHF0S2eDqtMKFZ2H1RVisbDt/3R3StTUqfrO9unz6M7RtnuPWhtp7zHqQ9Hjq3f2li6bZi+INUYrYIrztn+pZCMA64jt4AWGW/XhVShNgbWpbhVF59h5/FcW6bm7uPysZZuiyHWYsKzRbC/h2H3P5maGJIyVeo2uwTqrv7rPnPU+C9GnhyCWxrPzfS4hTK45EcEYWqHlZcDs3Y0QmvXvdE8bS5TUzp7sishPauTab95E1+jMXT0a83DxPuoLeSofNF4aJ+smf05UneB3sDM9MHgAYL/UtKXhhMIKGW8jUaVwU3m4YMw1KQyAGmJsCn9DuK+Al70ekRTIbwLukPURpV3BAueIZIhXkYk+ZGxpT7SwgMuGSWDrjI4SEzdjVXMEPsbURvbpbMw7c+5KuSxdZzg62pzbxGgNIzAVP76Qr6OB6lmtu5Mbvnx5RLMchEcQI7//O0ZpHfS0yY4XPk2AnvuUZHlzE7Z/rTIUb13WZ7eUaLqkH4xAgcwWn1udEE+RWnagXq+yY2l9zZDmAAVnX3WnmodTS2HzmuCaM/kqMnx7cpxdxYOJe0jHLA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB5789.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(6029001)(4636009)(136003)(39860400002)(366004)(396003)(376002)(346002)(33656002)(316002)(6916009)(8936002)(5660300002)(66946007)(4326008)(52536014)(66476007)(54906003)(2906002)(8676002)(66556008)(64756008)(66446008)(76116006)(478600001)(6506007)(55016003)(41300700001)(186003)(83380400001)(71200400001)(38070700005)(7696005)(53546011)(86362001)(122000001)(26005)(38100700002)(9686003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UndyOUhvRy9SKzlTU2Z1dlJwcHhFRmVGcXdiSG1hUjRkTHI0V0hlVldoc1BN?= =?utf-8?B?Z0hlL1RpdlhvZXJwOFY5MFIrUWcralRHOExuNnRBL2hxRTl6YjM5TE1rL2hX?= =?utf-8?B?M0ZSK3FTSnVET2xKcDJaM1VKRWIwWCtZbXlFTDB4c0t5VFhvbTUwWDVIK25R?= =?utf-8?B?RXJOUUY1VFF2bStvYzlQeDE4d213aUtlcXJFZHdoTHRzZ3BsbisvZENMeDVq?= =?utf-8?B?Y0hVTGIxSi9Ga21tb2lnc0ZUR0V3c0hFbUlSQTJOK3g4NkQrRWVHZW96eDVm?= =?utf-8?B?dDVGVXBwbXZQcXovbFEyQzhDaVJIcXJWWm1PdWptS21sLzdGNHJjQ2NDVER4?= =?utf-8?B?bzZkcVJqOS9vdHpsR29zYjJWbEZpOXdsQUNxVVV4b01JcmN3VkVvVFJ6dGNl?= =?utf-8?B?Mmo5RGZRYjNtRmhRUXljQzVSM1FxeStOM2tFeENxdnF0ZTBmMG9VaHA0bU9Q?= =?utf-8?B?MzBieS9DRmxWTURYeUhsZWc1MjB1MkpHc2E2emszMWkxMzBGSEllcFR5bWlp?= =?utf-8?B?QnRoTjBnbnRrY1Y4Nk11UG0vYmJ2ajVmQUJlM2IyVnYzMitQandqSFYyaHB3?= =?utf-8?B?ZEgyODBmOHE5VUtzUjFpU1lrVEJRV1g5WUxaQ291L3BWUlQwcXhDakpIeHMv?= =?utf-8?B?T0d5T1ZBUkhwZGZJRW51b2lMeHVjNmxFREZEVHNiUHNyNVVCalV6Wm12WWF3?= =?utf-8?B?QzgxZFZUUmFndXdwTHhJcFNVbkNsSjZTWmZHNXZOeTI5K0JPOW9tcWUzZFl5?= =?utf-8?B?eHJUMVUxUUd0M0JNMUVzMGpLVjEwOFVZa013ZjJNY1kzdC9pM1FpRzdaaER5?= =?utf-8?B?Y3hxRU5idkQ1RFhmUmdjdHFrWTVOTnNDT205MTVHeE9LZU5GRWwxVlNMR3Iv?= =?utf-8?B?WUo3ajFkY2Nza0tKaXhsS29oRmdwbHNsSGJoVzRmMktLcWhCK2h4STltUTl2?= =?utf-8?B?bUVLNzNWanBHMlV3d0VzTEExQWpTdSs2L1YxUGpuL1BFZnV0Zk5DN09NZXQ5?= =?utf-8?B?WVl6S255NEhTTTBZRXJwUmExVExxS3drTjZ3TGw0dERETkNHWnJXWmhxTHQ4?= =?utf-8?B?by8wSDVqUUVuV3pidnlvOUZlSGFBYkFNQkR3b3Rka1lLalk4ZUZJbHFRMk1x?= =?utf-8?B?K1hQRUwwL1puR2dvazhNcndMYml5TjY0MGNjd0VuNVh3Zit0TGpLUHN0T0oy?= =?utf-8?B?cEFGbnVwOVVZYS9TYk5VM3c2UXUxa1FqbFBIcUhWMkZ0TzJDMVV5eU1Yd1Fv?= =?utf-8?B?eW5vcEQyR05HN3VNVkNIbXpSd0F2TjNoMkJGamg0Y2M3TS80anZ6VTFMaVE3?= =?utf-8?B?bGpyckZ5Y2RWRDhsU0RBYmU0OTgzK0NGYkE5ZHExcjltS0xhMnV6b0dxdXRH?= =?utf-8?B?S0xNSGtqUGxjc015UkRCWkZyVngyZmhsenpST1NZOFk4WTh2N1ZNU3dvTCs1?= =?utf-8?B?QUxOUGxld2ljOXkraExheUw3Ylh6ZUZjWWg0VnBTUFFhby9HUkZnTStTSlZ1?= =?utf-8?B?a1FWVCtGakhRU0dsdEhHV2IzaWx1TUk2dG5LTFNHNGR1TVg5QzQ4QVJRREZO?= =?utf-8?B?aytwNTM2TDI3QWRQRDh6Ry8yNFNsNTVvYW9zRFlOa3NpVUtNZ2Zod0JlQngv?= =?utf-8?B?dGtvQmpDN0pHSXNITVJ4TTdvT0tiNlQ1MUxCTVR6Q2JhMlZ3ZzZtcDRPQWRM?= =?utf-8?B?Nlh4SFBKV05Cb3pzalJrMDRleVRBemNYYlJLei9MYzdoczBjT3ZnMlE3Z0VD?= =?utf-8?B?aVpYWS95YnY3ZmdrSStlb0duSjZCR3E5QjJMNHEwK3FRQmZ2bUtqb29CZCtk?= =?utf-8?B?bnlvZnhzektKVE1CejlUcE81YmozYXFjS2E4aTFST1U0NGxOVVh6U0lqZjdL?= =?utf-8?B?M0I5QjhKQzBJN09TSkhBN0NTdGlYejU4amt5b1BNT1l4SXpDV2ROSXkwWGU0?= =?utf-8?B?andDY0V3S2V6akQ4TUkwR3loazR0YmpKR1lFeXl6SnF6K09Cd0liVEhnaGJ5?= =?utf-8?B?NnlTc1o3MDBRMmdvb0NkZjFWczAvR3F4SGJ5WlM1cGU4VCt4a1ZQZGVJRHMy?= =?utf-8?B?TlJRRVZFMVhNV1F5QW5rYU5zT1kyaEk5NU9vTi9OajBWMy83QkVwZ0xCekRq?= =?utf-8?Q?m17WNy+9TPPaAJfnUbnzdCD8L?= MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB5789.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ce516c69-d275-4e57-c2c1-08da911362cb X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Sep 2022 20:56:07.4117 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: TsVMd07ikOfDwzTA1yHw7LDcVjo1XuobJTdkjoJYWFiuGaTFg/6O3goAFymlUuw7buI556HbETxo7bK51SOvuQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR12MB4394 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQXJkIEJpZXNoZXV2ZWwg PGFyZGJAa2VybmVsLm9yZz4NCj4gU2VudDogV2VkbmVzZGF5LCBTZXB0ZW1iZXIgNywgMjAyMiAx MDoxNiBBTQ0KPiBUbzogSmVmZiBCcmFzZW4gPGpicmFzZW5AbnZpZGlhLmNvbT4NCj4gQ2M6IGRl dmVsQGVkazIuZ3JvdXBzLmlvOyBhcmRiK3RpYW5vY29yZUBrZXJuZWwub3JnOw0KPiBhYm5lci5j aGFuZ0BhbWQuY29tOyBnaXRAZGFuaWVsc2NoYWVmZXIubWU7IHF1aWNfbGxpbmRob2xAcXVpY2lu Yy5jb20NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2Ml0gRW1iZWRkZWRQa2cvUHJlUGlNZW1vcnlB bGxvY2F0aW9uTGliOiBDaGVjayBmb3INCj4gc3BhY2Ugb24gb2Zmc2V0IGFsbG9jYXRpb24NCj4g DQo+IEV4dGVybmFsIGVtYWlsOiBVc2UgY2F1dGlvbiBvcGVuaW5nIGxpbmtzIG9yIGF0dGFjaG1l bnRzDQo+IA0KPiANCj4gT24gV2VkLCA3IFNlcHQgMjAyMiBhdCAxNzo0NiwgSmVmZiBCcmFzZW4g PGpicmFzZW5AbnZpZGlhLmNvbT4gd3JvdGU6DQo+ID4NCj4gPiBVcGRhdGUgY2hlY2sgZm9yIGVu b3VnaCBzcGFjZSB0byBvY2N1ciBwcmlvciB0byBhbGlnbm1lbnQgb2Zmc2V0DQo+ID4gbW9kaWZp Y2F0aW9uLiBUaGlzIHByZXZlbnRzIGEgY2FzZSB3aGVyZSBFZmlGcmVlTWVtb3J5VG9wIGNvdWxk IGJlDQo+ID4gbGVzcyB0aGFuIEVmaUZyZWVNZW1vcnlCb3R0b20NCj4gPg0KPiA+IFNpZ25lZC1v ZmYtYnk6IEplZmYgQnJhc2VuIDxqYnJhc2VuQG52aWRpYS5jb20+DQo+IA0KPiBUaGFua3MgZm9y IHRoZSByZXNwaW4uIEkgaGF2ZSBjYXVnaHQgdXAgaW4gdGhlIG1lYW4gdGltZS4NCj4gDQo+IA0K PiA+IC0tLQ0KPiA+ICAuLi4vTWVtb3J5QWxsb2NhdGlvbkxpYi5jICAgICAgICAgICAgICAgICAg ICAgfCA1MyArKysrKysrKysrKy0tLS0tLS0tDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAzMCBpbnNl cnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQNCj4gPg0KPiBh L0VtYmVkZGVkUGtnL0xpYnJhcnkvUHJlUGlNZW1vcnlBbGxvY2F0aW9uTGliL01lbW9yeUFsbG9j YXRpb25MaWIuYw0KPiA+DQo+IGIvRW1iZWRkZWRQa2cvTGlicmFyeS9QcmVQaU1lbW9yeUFsbG9j YXRpb25MaWIvTWVtb3J5QWxsb2NhdGlvbkxpYi5jDQo+ID4gaW5kZXggMmNjMmE3MTEyMS4uOTIw ODgyNjU2NSAxMDA2NDQNCj4gPiAtLS0NCj4gPg0KPiBhL0VtYmVkZGVkUGtnL0xpYnJhcnkvUHJl UGlNZW1vcnlBbGxvY2F0aW9uTGliL01lbW9yeUFsbG9jYXRpb25MaWIuYw0KPiA+ICsrKw0KPiBi L0VtYmVkZGVkUGtnL0xpYnJhcnkvUHJlUGlNZW1vcnlBbGxvY2F0aW9uTGliL01lbW9yeUFsbG9j YXRpb25MaWINCj4gPiArKysgLmMNCj4gPiBAQCAtMjcsMzcgKzI3LDQ0IEBAIEludGVybmFsQWxs b2NhdGVQYWdlcyAoDQo+ID4NCj4gPiAgICBIb2IuUmF3ID0gR2V0SG9iTGlzdCAoKTsNCj4gPg0K PiA+IC0gIC8vIENoZWNrIHRvIHNlZSBpZiBvbiA0ayBib3VuZGFyeQ0KPiA+ICAgIE9mZnNldCA9 IEhvYi5IYW5kb2ZmSW5mb3JtYXRpb25UYWJsZS0+RWZpRnJlZU1lbW9yeVRvcCAmIDB4RkZGOw0K PiA+ICsgIC8vDQo+ID4gKyAgLy8gVmVyaWZ5IHRoYXQgdGhlcmUgaXMgc3VmZmljaWVudCBtZW1v cnkgdG8gc2F0aXNmeSB0aGUgYWxsb2NhdGlvbg0KPiA+ICsgYW5kIHBhZGRpbmcgcHJpb3IgdG8g dXBkYXRpbmcgYW55dGhpbmcgIC8vICBpZg0KPiA+ICsgKChIb2IuSGFuZG9mZkluZm9ybWF0aW9u VGFibGUtPkVmaUZyZWVNZW1vcnlUb3AgLSAoKFBhZ2VzICoNCj4gRUZJX1BBR0VfU0laRSkgKyBz aXplb2YgKEVGSV9IT0JfTUVNT1JZX0FMTE9DQVRJT04pKSAtIE9mZnNldCkgPA0KPiBIb2IuSGFu ZG9mZkluZm9ybWF0aW9uVGFibGUtPkVmaUZyZWVNZW1vcnlCb3R0b20pIHsNCj4gPiArICAgIGlm IChPZmZzZXQgIT0gMCkgew0KPiA+ICsgICAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiT2Zmc2V0 IGFwcGxpZWQgd2l0aG91dCBlbm91Z2gNCj4gc3BhY2VcclxuIikpOw0KPiA+ICsgICAgfSBlbHNl IHsNCj4gPiArICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIk91dCBvZiBtZW1vcnlcclxuIikp Ow0KPiA+ICsgICAgfQ0KPiA+ICsNCj4gPiArICAgIEFTU0VSVCAoRkFMU0UpOw0KPiA+ICsgICAg cmV0dXJuIDA7DQo+ID4gKyAgfQ0KPiA+ICsNCj4gPiArICAvLyBDaGVjayB0byBzZWUgaWYgb24g NGsgYm91bmRhcnkNCj4gPiAgICBpZiAoT2Zmc2V0ICE9IDApIHsNCj4gPiAgICAgIC8vIElmIG5v dCBhbGlnbmVkLCBtYWtlIHRoZSBhbGxvY2F0aW9uIGFsaWduZWQuDQo+ID4gICAgICBIb2IuSGFu ZG9mZkluZm9ybWF0aW9uVGFibGUtPkVmaUZyZWVNZW1vcnlUb3AgLT0gT2Zmc2V0Ow0KPiA+ICAg IH0NCj4gPg0KPiANCj4gSSB1bmRlcnN0YW5kIGhvdyB5b3UgYXJlIHRyeWluZyB0byBzdGljayB3 aXRoIHRoZSBvcmlnaW5hbCBjb2RlIGFzIG11Y2ggYXMNCj4gcG9zc2libGUsIGJ1dCB0aGlzIGlz IGFsbCBleHRyZW1lbHkgY2x1bmt5LCBhbmQgSSdkIHByZWZlciB3ZSBqdXN0IGNsZWFuIGl0IHVw LCBpZg0KPiB5b3UgZG9uJ3QgbWluZC4NCj4gDQo+IFdvdWxkIHNvbWV0aGluZyBsaWtlIHRoZSBi ZWxvdyB3b3JrIGZvciB5b3UgYXMgd2VsbD8NCg0KWXVwIHRoaXMgbG9va3MgZ29vZCB0byBtZSBh bmQgY2xlYW5lciBhcyB3ZWxsLg0KDQo+IA0KPiANCj4gDQo+IGRpZmYgLS1naXQNCj4gYS9FbWJl ZGRlZFBrZy9MaWJyYXJ5L1ByZVBpTWVtb3J5QWxsb2NhdGlvbkxpYi9NZW1vcnlBbGxvY2F0aW9u TGliLmMNCj4gYi9FbWJlZGRlZFBrZy9MaWJyYXJ5L1ByZVBpTWVtb3J5QWxsb2NhdGlvbkxpYi9N ZW1vcnlBbGxvY2F0aW9uTGliLmMNCj4gaW5kZXggMmNjMmE3MTEyMTk3Li41NDcxMTdkYzEzZDYg MTAwNjQ0DQo+IC0tLQ0KPiBhL0VtYmVkZGVkUGtnL0xpYnJhcnkvUHJlUGlNZW1vcnlBbGxvY2F0 aW9uTGliL01lbW9yeUFsbG9jYXRpb25MaWIuYw0KPiArKysNCj4gYi9FbWJlZGRlZFBrZy9MaWJy YXJ5L1ByZVBpTWVtb3J5QWxsb2NhdGlvbkxpYi9NZW1vcnlBbGxvY2F0aW9uTGliLmMNCj4gQEAg LTIzLDQxICsyMywzNiBAQCBJbnRlcm5hbEFsbG9jYXRlUGFnZXMgKA0KPiAgICApDQo+ICB7DQo+ ICAgIEVGSV9QRUlfSE9CX1BPSU5URVJTICBIb2I7DQo+IC0gIEVGSV9QSFlTSUNBTF9BRERSRVNT ICBPZmZzZXQ7DQo+ICsgIEVGSV9QSFlTSUNBTF9BRERSRVNTICBOZXdUb3A7DQo+IA0KPiAgICBI b2IuUmF3ID0gR2V0SG9iTGlzdCAoKTsNCj4gDQo+IC0gIC8vIENoZWNrIHRvIHNlZSBpZiBvbiA0 ayBib3VuZGFyeQ0KPiAtICBPZmZzZXQgPSBIb2IuSGFuZG9mZkluZm9ybWF0aW9uVGFibGUtPkVm aUZyZWVNZW1vcnlUb3AgJiAweEZGRjsNCj4gLSAgaWYgKE9mZnNldCAhPSAwKSB7DQo+IC0gICAg Ly8gSWYgbm90IGFsaWduZWQsIG1ha2UgdGhlIGFsbG9jYXRpb24gYWxpZ25lZC4NCj4gLSAgICBI b2IuSGFuZG9mZkluZm9ybWF0aW9uVGFibGUtPkVmaUZyZWVNZW1vcnlUb3AgLT0gT2Zmc2V0Ow0K PiAtICB9DQo+ICsgIE5ld1RvcCA9IEhvYi5IYW5kb2ZmSW5mb3JtYXRpb25UYWJsZS0+RWZpRnJl ZU1lbW9yeVRvcCAmDQo+IH4oRUZJX1BIWVNJQ0FMX0FERFJFU1MpRUZJX1BBR0VfTUFTSzsNCj4g KyAgTmV3VG9wIC09IFBhZ2VzICogRUZJX1BBR0VfU0laRTsNCj4gDQo+ICAgIC8vDQo+ICAgIC8v IFZlcmlmeSB0aGF0IHRoZXJlIGlzIHN1ZmZpY2llbnQgbWVtb3J5IHRvIHNhdGlzZnkgdGhlIGFs bG9jYXRpb24NCj4gICAgLy8NCj4gLSAgaWYgKEhvYi5IYW5kb2ZmSW5mb3JtYXRpb25UYWJsZS0+ RWZpRnJlZU1lbW9yeVRvcCAtICgoUGFnZXMgKg0KPiBFRklfUEFHRV9TSVpFKSArIHNpemVvZiAo RUZJX0hPQl9NRU1PUllfQUxMT0NBVElPTikpIDwNCj4gSG9iLkhhbmRvZmZJbmZvcm1hdGlvblRh YmxlLT5FZmlGcmVlTWVtb3J5Qm90dG9tKSB7DQo+IC0gICAgcmV0dXJuIDA7DQo+IC0gIH0gZWxz ZSB7DQo+IC0gICAgLy8NCj4gLSAgICAvLyBVcGRhdGUgdGhlIFBISVQgdG8gcmVmbGVjdCB0aGUg bWVtb3J5IHVzYWdlDQo+IC0gICAgLy8NCj4gLSAgICBIb2IuSGFuZG9mZkluZm9ybWF0aW9uVGFi bGUtPkVmaUZyZWVNZW1vcnlUb3AgLT0gUGFnZXMgKg0KPiBFRklfUEFHRV9TSVpFOw0KPiAtDQo+ IC0gICAgLy8gVGhpcyByb3V0aW5lIHVzZWQgdG8gY3JlYXRlIGEgbWVtb3J5IGFsbG9jYXRpb24g SE9CIGEgbGEgUEVJLA0KPiBidXQgdGhhdCdzIG5vdA0KPiAtICAgIC8vIG5lY2Vzc2FyeSBmb3Ig dXMuDQo+IC0NCj4gLSAgICAvLw0KPiAtICAgIC8vIENyZWF0ZSBhIG1lbW9yeSBhbGxvY2F0aW9u IEhPQi4NCj4gLSAgICAvLw0KPiAtICAgIEJ1aWxkTWVtb3J5QWxsb2NhdGlvbkhvYiAoDQo+IC0g ICAgICBIb2IuSGFuZG9mZkluZm9ybWF0aW9uVGFibGUtPkVmaUZyZWVNZW1vcnlUb3AsDQo+IC0g ICAgICBQYWdlcyAqIEVGSV9QQUdFX1NJWkUsDQo+IC0gICAgICBNZW1vcnlUeXBlDQo+IC0gICAg ICApOw0KPiAtICAgIHJldHVybiAoVk9JRCAqKShVSU5UTilIb2IuSGFuZG9mZkluZm9ybWF0aW9u VGFibGUtDQo+ID5FZmlGcmVlTWVtb3J5VG9wOw0KPiArICBpZiAoTmV3VG9wIDwgKEhvYi5IYW5k b2ZmSW5mb3JtYXRpb25UYWJsZS0+RWZpRnJlZU1lbW9yeUJvdHRvbSArDQo+IHNpemVvZiAoRUZJ X0hPQl9NRU1PUllfQUxMT0NBVElPTikpKQ0KPiArICB7DQo+ICsgICAgcmV0dXJuIE5VTEw7DQo+ ICAgIH0NCj4gKw0KPiArICAvLw0KPiArICAvLyBVcGRhdGUgdGhlIFBISVQgdG8gcmVmbGVjdCB0 aGUgbWVtb3J5IHVzYWdlICAvLw0KPiArIEhvYi5IYW5kb2ZmSW5mb3JtYXRpb25UYWJsZS0+RWZp RnJlZU1lbW9yeVRvcCA9IE5ld1RvcDsNCj4gKw0KPiArICAvLw0KPiArICAvLyBDcmVhdGUgYSBt ZW1vcnkgYWxsb2NhdGlvbiBIT0IuDQo+ICsgIC8vDQo+ICsgIEJ1aWxkTWVtb3J5QWxsb2NhdGlv bkhvYiAoDQo+ICsgICAgSG9iLkhhbmRvZmZJbmZvcm1hdGlvblRhYmxlLT5FZmlGcmVlTWVtb3J5 VG9wLA0KPiArICAgIFBhZ2VzICogRUZJX1BBR0VfU0laRSwNCj4gKyAgICBNZW1vcnlUeXBlDQo+ ICsgICAgKTsNCj4gKw0KPiArICByZXR1cm4gKFZPSUQgKikoVUlOVE4pSG9iLkhhbmRvZmZJbmZv cm1hdGlvblRhYmxlLQ0KPiA+RWZpRnJlZU1lbW9yeVRvcDsNCj4gIH0NCj4gDQo+ICAvKioNCg==