From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Pitoiset Subject: Re: [PATCH mesa 6/6] nouveau: codegen: Disable more old resource handling code Date: Wed, 16 Mar 2016 13:20:17 +0100 Message-ID: <56E94F81.8080609@gmail.com> References: <1458120239-27659-1-git-send-email-hdegoede@redhat.com> <1458120239-27659-6-git-send-email-hdegoede@redhat.com> <56E9393A.2080300@gmail.com> <56E93A3E.1080808@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <56E93A3E.1080808-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Hans de Goede , Ilia Mirkin Cc: mesa-dev-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: nouveau.vger.kernel.org CgpPbiAwMy8xNi8yMDE2IDExOjQ5IEFNLCBIYW5zIGRlIEdvZWRlIHdyb3RlOgo+IEhpLAo+Cj4g T24gMTYtMDMtMTYgMTE6NDUsIFNhbXVlbCBQaXRvaXNldCB3cm90ZToKPj4KPj4KPj4gT24gMDMv MTYvMjAxNiAxMDoyMyBBTSwgSGFucyBkZSBHb2VkZSB3cm90ZToKPj4+IENvbW1pdCBjMzA4M2M3 MDgyICgibnY1MC9pcjogYWRkIHN1cHBvcnQgZm9yIEJVRkZFUiBhY2Nlc3NlcyIpCj4+PiBkaXNh YmxlZCAvCj4+PiBjb21tZW50ZWQgb3V0IHNvbWUgb2YgdGhlIG9sZCByZXNvdXJjZSBoYW5kbGlu ZyBjb2RlLCBidXQgbm90IGFsbCBvZiBpdC4KPj4+Cj4+PiBFZmZlY3RpdmVseSBhbGwgb2YgaXQg aXMgZGVhZCBhbHJlYWR5LCBpZiB3ZSBldmVyIGVudGVyIHRoZSBvbGQgY29kZQo+Pj4gcGF0aHMg aW4gaGFuZGVMT0FEIC8gaGFuZGxlU1RPUkUgLyBoYW5kbGVBVE9NIHdlIHdpbGwgZ2V0IGFuIGV4 Y2VwdGlvbgo+Pj4gZHVlIHRvIHRyeWluZyB0byBhY2Nlc3MgdGhlIG5vdyBhbHdheXMgemVyby1z aXplZCByZXNvdXJjZXMgdmVjdG9yLgo+Pj4KPj4+IE1ha2Ugbm9uIGJ1ZmZlciAvIG1lbW9yeSBm aWxlIGFjY2Vzc2VzIG5vdCBiZWluZyBzdXBwb3J0ZWQgaW4gdGhlc2UKPj4+IGZ1bmN0aW9ucyBt b3JlIGV4cGxpY2l0IGFuZCBjb21tZW50IG91dCBhIHdob2xlIGJ1bmNoIG9mIGRlYWQgY29kZS4K Pj4+Cj4+PiBBbHNvIHJlbW92ZSB0aGUgbWFnaWMgZmlsZS1pbmRleGUgZGVmaW5lcyBmcm9tIHRo ZSBvbGQgcmVzb3VyY2UgY29kZQo+Pj4gZnJvbSBpbmNsdWRlL3BpcGUvcF9zaGFkZXJfdG9rZW5z LmggYXMgdGhvc2UgYXJlIG5vIGxvbmdlciB1c2VkIG5vdwo+Pj4gKHdoaWNoIGlzIGEgZ29vZCB0 aGluZykuCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVk aGF0LmNvbT4KPj4+IC0tLQo+Pj4gICAuLi4vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9p cl9mcm9tX3Rnc2kuY3BwICB8IDQyCj4+PiArKysrKysrKysrKysrKystLS0tLS0tCj4+PiAgIHNy Yy9nYWxsaXVtL2luY2x1ZGUvcGlwZS9wX3NoYWRlcl90b2tlbnMuaCAgICAgICAgIHwgIDkgLS0t LS0KPj4+ICAgMiBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMo LSkKPj4+Cj4+PiBkaWZmIC0tZ2l0Cj4+PiBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9j b2RlZ2VuL252NTBfaXJfZnJvbV90Z3NpLmNwcAo+Pj4gYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25v dXZlYXUvY29kZWdlbi9udjUwX2lyX2Zyb21fdGdzaS5jcHAKPj4+IGluZGV4IGMxNjdjNGEuLjEx NWQwYmIgMTAwNjQ0Cj4+PiAtLS0gYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdl bi9udjUwX2lyX2Zyb21fdGdzaS5jcHAKPj4+ICsrKyBiL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91 dmVhdS9jb2RlZ2VuL252NTBfaXJfZnJvbV90Z3NpLmNwcAo+Pj4gQEAgLTg1NiwxMiArODU2LDE0 IEBAIHB1YmxpYzoKPj4+ICAgICAgfTsKPj4+ICAgICAgc3RkOjp2ZWN0b3I8VGV4dHVyZVZpZXc+ IHRleHR1cmVWaWV3czsKPj4+Cj4+PiArICAgLyoKPj4+ICAgICAgc3RydWN0IFJlc291cmNlIHsK Pj4+ICAgICAgICAgdWludDhfdCB0YXJnZXQ7IC8vIFRHU0lfVEVYVFVSRV8qCj4+PiAgICAgICAg IGJvb2wgcmF3Owo+Pj4gICAgICAgICB1aW50OF90IHNsb3Q7IC8vICRzdXJmYWNlIGluZGV4Cj4+ PiAgICAgIH07Cj4+PiAgICAgIHN0ZDo6dmVjdG9yPFJlc291cmNlPiByZXNvdXJjZXM7Cj4+PiAr ICAgKi8KPj4+Cj4+PiAgICAgIHN0cnVjdCBNZW1vcnlGaWxlIHsKPj4+ICAgICAgICAgdWludDhf dCBtZW1fdHlwZTsgLy8gVEdTSV9NRU1PUllfVFlQRV8qCj4+PiBAQCAtMTQyMyw4ICsxNDI1LDgg QEAgcHJpdmF0ZToKPj4+ICAgICAgdm9pZCBoYW5kbGVMSVQoVmFsdWUgKmRzdDBbNF0pOwo+Pj4g ICAgICB2b2lkIGhhbmRsZVVzZXJDbGlwUGxhbmVzKCk7Cj4+Pgo+Pj4gLSAgIFN5bWJvbCAqZ2V0 UmVzb3VyY2VCYXNlKGludCByKTsKPj4+IC0gICB2b2lkIGdldFJlc291cmNlQ29vcmRzKHN0ZDo6 dmVjdG9yPFZhbHVlICo+JiwgaW50IHIsIGludCBzKTsKPj4+ICsgICAvLyBTeW1ib2wgKmdldFJl c291cmNlQmFzZShpbnQgcik7Cj4+PiArICAgLy8gdm9pZCBnZXRSZXNvdXJjZUNvb3JkcyhzdGQ6 OnZlY3RvcjxWYWx1ZSAqPiYsIGludCByLCBpbnQgcyk7Cj4+Pgo+Pj4gICAgICB2b2lkIGhhbmRs ZUxPQUQoVmFsdWUgKmRzdDBbNF0pOwo+Pj4gICAgICB2b2lkIGhhbmRsZVNUT1JFKCk7Cj4+PiBA QCAtMjE2OSw2ICsyMTcxLDcgQEAgQ29udmVydGVyOjpoYW5kbGVMSVQoVmFsdWUgKmRzdDBbNF0p Cj4+PiAgICAgIH0KPj4+ICAgfQo+Pj4KPj4+ICsvKiBLZWVwIHRoaXMgYXJvdW5kIGZvciBub3cg YXMgcmVmZXJlbmNlIHdoZW4gYWRkaW5nIGltZyBzdXBwb3J0Cj4+PiAgIHN0YXRpYyBpbmxpbmUg Ym9vbAo+Pj4gICBpc1Jlc291cmNlU3BlY2lhbChjb25zdCBpbnQgcikKPj4+ICAgewo+Pj4gQEAg LTIyNjQsNiArMjI2Nyw3IEBAIHBhcnRpdGlvbkxvYWRTdG9yZSh1aW50OF90IGNvbXBbMl0sIHVp bnQ4X3QKPj4+IHNpemVbMl0sIHVpbnQ4X3QgbWFzaykKPj4+ICAgICAgfQo+Pj4gICAgICByZXR1 cm4gbiArIDE7Cj4+PiAgIH0KPj4+ICsqLwo+Pj4KPj4+ICAgLy8gRm9yIHJhdyBsb2FkcywgZ3Jh bnVsYXJpdHkgaXMgNCBieXRlLgo+Pj4gICAvLyBVc2FnZSBvZiB0aGUgdGV4dHVyZSByZWFkIG1h c2sgb24gT1BfU1VMRFAgaXMgbm90IGFsbG93ZWQuCj4+PiBAQCAtMjI3NCw4ICsyMjc4LDkgQEAg Q29udmVydGVyOjpoYW5kbGVMT0FEKFZhbHVlICpkc3QwWzRdKQo+Pj4gICAgICBpbnQgYzsKPj4+ ICAgICAgc3RkOjp2ZWN0b3I8VmFsdWUgKj4gb2ZmLCBzcmMsIGxkdiwgZGVmOwo+Pj4KPj4+IC0g ICBpZiAodGdzaS5nZXRTcmMoMCkuZ2V0RmlsZSgpID09IFRHU0lfRklMRV9CVUZGRVIgfHwKPj4+ IC0gICAgICAgdGdzaS5nZXRTcmMoMCkuZ2V0RmlsZSgpID09IFRHU0lfRklMRV9NRU1PUlkpIHsK Pj4+ICsgICBzd2l0Y2ggKHRnc2kuZ2V0U3JjKDApLmdldEZpbGUoKSkgewo+Pj4gKyAgIGNhc2Ug VEdTSV9GSUxFX0JVRkZFUjoKPj4+ICsgICBjYXNlIFRHU0lfRklMRV9NRU1PUlk6Cj4+PiAgICAg ICAgIGZvciAoYyA9IDA7IGMgPCA0OyArK2MpIHsKPj4+ICAgICAgICAgICAgaWYgKCFkc3QwW2Nd KQo+Pj4gICAgICAgICAgICAgICBjb250aW51ZTsKPj4+IEBAIC0yMjk1LDkgKzIzMDAsMTIgQEAg Q29udmVydGVyOjpoYW5kbGVMT0FEKFZhbHVlICpkc3QwWzRdKQo+Pj4gICAgICAgICAgICBpZiAo dGdzaS5nZXRTcmMoMCkuaXNJbmRpcmVjdCgwKSkKPj4+ICAgICAgICAgICAgICAgbGQtPnNldElu ZGlyZWN0KDAsIDEsCj4+PiBmZXRjaFNyYyh0Z3NpLmdldFNyYygwKS5nZXRJbmRpcmVjdCgwKSwg MCwgMCkpOwo+Pj4gICAgICAgICB9Cj4+PiAtICAgICAgcmV0dXJuOwo+Pj4gKyAgICAgIGJyZWFr Owo+Pj4gKyAgIGRlZmF1bHQ6Cj4+PiArICAgICAgYXNzZXJ0KCEiVW5zdXBwb3J0ZWQgc3JjRmls ZSBmb3IgTE9BRCIpOwo+Pj4gICAgICB9Cj4+Pgo+Pj4gKy8qIEtlZXAgdGhpcyBhcm91bmQgZm9y IG5vdyBhcyByZWZlcmVuY2Ugd2hlbiBhZGRpbmcgaW1nIHN1cHBvcnQKPj4+ICAgICAgZ2V0UmVz b3VyY2VDb29yZHMob2ZmLCByLCAxKTsKPj4+Cj4+PiAgICAgIGlmIChpc1Jlc291cmNlUmF3KGNv ZGUsIHIpKSB7Cj4+PiBAQCAtMjM2Myw2ICsyMzcxLDcgQEAgQ29udmVydGVyOjpoYW5kbGVMT0FE KFZhbHVlICpkc3QwWzRdKQo+Pj4gICAgICBGT1JfRUFDSF9EU1RfRU5BQkxFRF9DSEFOTkVMKDAs IGMsIHRnc2kpCj4+PiAgICAgICAgIGlmIChkc3QwW2NdICE9IGRlZltjXSkKPj4+ICAgICAgICAg ICAgbWtNb3YoZHN0MFtjXSwgZGVmW3Rnc2kuZ2V0U3JjKDApLmdldFN3aXp6bGUoYyldKTsKPj4+ ICsqLwo+Pj4gICB9Cj4+Pgo+Pj4gICAvLyBGb3IgZm9ybWF0dGVkIHN0b3JlcywgdGhlIHdyaXRl IG1hc2sgb24gT1BfU1VTVFAgY2FuIGJlIHVzZWQuCj4+PiBAQCAtMjM3NCw4ICsyMzgzLDkgQEAg Q29udmVydGVyOjpoYW5kbGVTVE9SRSgpCj4+PiAgICAgIGludCBjOwo+Pj4gICAgICBzdGQ6OnZl Y3RvcjxWYWx1ZSAqPiBvZmYsIHNyYywgZHVtbXk7Cj4+Pgo+Pj4gLSAgIGlmICh0Z3NpLmdldERz dCgwKS5nZXRGaWxlKCkgPT0gVEdTSV9GSUxFX0JVRkZFUiB8fAo+Pj4gLSAgICAgICB0Z3NpLmdl dERzdCgwKS5nZXRGaWxlKCkgPT0gVEdTSV9GSUxFX01FTU9SWSkgewo+Pj4gKyAgIHN3aXRjaCAo dGdzaS5nZXREc3QoMCkuZ2V0RmlsZSgpKSB7Cj4+PiArICAgY2FzZSBUR1NJX0ZJTEVfQlVGRkVS Ogo+Pj4gKyAgIGNhc2UgVEdTSV9GSUxFX01FTU9SWToKPj4+ICAgICAgICAgZm9yIChjID0gMDsg YyA8IDQ7ICsrYykgewo+Pj4gICAgICAgICAgICBpZiAoISh0Z3NpLmdldERzdCgwKS5nZXRNYXNr KCkgJiAoMSA8PCBjKSkpCj4+PiAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+Pj4gQEAgLTIzOTYs OSArMjQwNiwxMiBAQCBDb252ZXJ0ZXI6OmhhbmRsZVNUT1JFKCkKPj4+ICAgICAgICAgICAgaWYg KHRnc2kuZ2V0RHN0KDApLmlzSW5kaXJlY3QoMCkpCj4+PiAgICAgICAgICAgICAgIHN0LT5zZXRJ bmRpcmVjdCgwLCAxLAo+Pj4gZmV0Y2hTcmModGdzaS5nZXREc3QoMCkuZ2V0SW5kaXJlY3QoMCks IDAsIDApKTsKPj4+ICAgICAgICAgfQo+Pj4gLSAgICAgIHJldHVybjsKPj4+ICsgICAgICBicmVh azsKPj4+ICsgICBkZWZhdWx0Ogo+Pj4gKyAgICAgIGFzc2VydCghIlVuc3VwcG9ydGVkIGRzdEZp bGUgZm9yIFNUT1JFIik7Cj4+PiAgICAgIH0KPj4+Cj4+PiArLyogS2VlcCB0aGlzIGFyb3VuZCBm b3Igbm93IGFzIHJlZmVyZW5jZSB3aGVuIGFkZGluZyBpbWcgc3VwcG9ydAo+Pj4gICAgICBnZXRS ZXNvdXJjZUNvb3JkcyhvZmYsIHIsIDApOwo+Pj4gICAgICBzcmMgPSBvZmY7Cj4+PiAgICAgIGNv bnN0IGludCBzID0gc3JjLnNpemUoKTsKPj4+IEBAIC0yNDQ2LDYgKzI0NTksNyBAQCBDb252ZXJ0 ZXI6OmhhbmRsZVNUT1JFKCkKPj4+ICAgICAgICAgbWtUZXgoT1BfU1VTVFAsIGdldFJlc291cmNl VGFyZ2V0KGNvZGUsIHIpLAo+Pj4gY29kZS0+cmVzb3VyY2VzW3JdLnNsb3QsIDAsCj4+PiAgICAg ICAgICAgICAgIGR1bW15LCBzcmMpLT50ZXgubWFzayA9IHRnc2kuZ2V0RHN0KDApLmdldE1hc2so KTsKPj4+ICAgICAgfQo+Pj4gKyovCj4+PiAgIH0KPj4+Cj4+PiAgIC8vIFhYWDogVGhlc2Ugb25s eSB3b3JrIG9uIHJlc291cmNlcyB3aXRoIHRoZSBzaW5nbGUtY29tcG9uZW50Cj4+PiB1MzIvczMy IGZvcm1hdHMuCj4+PiBAQCAtMjQ2MCw4ICsyNDc0LDkgQEAgQ29udmVydGVyOjpoYW5kbGVBVE9N KFZhbHVlICpkc3QwWzRdLCBEYXRhVHlwZQo+Pj4gdHksIHVpbnQxNl90IHN1Yk9wKQo+Pj4gICAg ICBzdGQ6OnZlY3RvcjxWYWx1ZSAqPiBkZWZ2Owo+Pj4gICAgICBMVmFsdWUgKmRzdCA9IGdldFNj cmF0Y2goKTsKPj4+Cj4+PiAtICAgaWYgKHRnc2kuZ2V0U3JjKDApLmdldEZpbGUoKSA9PSBUR1NJ X0ZJTEVfQlVGRkVSIHx8Cj4+PiAtICAgICAgIHRnc2kuZ2V0U3JjKDApLmdldEZpbGUoKSA9PSBU R1NJX0ZJTEVfTUVNT1JZKSB7Cj4+PiArICAgc3dpdGNoICh0Z3NpLmdldFNyYygwKS5nZXRGaWxl KCkpIHsKPj4+ICsgICBjYXNlIFRHU0lfRklMRV9CVUZGRVI6Cj4+PiArICAgY2FzZSBUR1NJX0ZJ TEVfTUVNT1JZOgo+Pj4gICAgICAgICBmb3IgKGludCBjID0gMDsgYyA8IDQ7ICsrYykgewo+Pj4g ICAgICAgICAgICBpZiAoIWRzdDBbY10pCj4+PiAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+Pj4g QEAgLTI0ODksMTAgKzI1MDQsMTIgQEAgQ29udmVydGVyOjpoYW5kbGVBVE9NKFZhbHVlICpkc3Qw WzRdLAo+Pj4gRGF0YVR5cGUgdHksIHVpbnQxNl90IHN1Yk9wKQo+Pj4gICAgICAgICBmb3IgKGlu dCBjID0gMDsgYyA8IDQ7ICsrYykKPj4+ICAgICAgICAgICAgaWYgKGRzdDBbY10pCj4+PiAgICAg ICAgICAgICAgIGRzdDBbY10gPSBkc3Q7IC8vIG5vdCBlcXVhbCB0byByRHN0IHNvCj4+PiBoYW5k bGVJbnN0cnVjdGlvbiB3aWxsIGRvIG1rTW92Cj4+PiAtICAgICAgcmV0dXJuOwo+Pj4gKyAgICAg IGJyZWFrOwo+Pj4gKyAgIGRlZmF1bHQ6Cj4+PiArICAgICAgYXNzZXJ0KCEiVW5zdXBwb3J0ZWQg c3JjRmlsZSBmb3IgQVRPTSIpOwo+Pj4gICAgICB9Cj4+Pgo+Pj4gLQo+Pj4gKy8qIEtlZXAgdGhp cyBhcm91bmQgZm9yIG5vdyBhcyByZWZlcmVuY2Ugd2hlbiBhZGRpbmcgaW1nIHN1cHBvcnQKPj4+ ICAgICAgZ2V0UmVzb3VyY2VDb29yZHMoc3JjdiwgciwgMSk7Cj4+Pgo+Pj4gICAgICBpZiAoaXNS ZXNvdXJjZVNwZWNpYWwocikpIHsKPj4+IEBAIC0yNTIwLDYgKzI1MzcsNyBAQCBDb252ZXJ0ZXI6 OmhhbmRsZUFUT00oVmFsdWUgKmRzdDBbNF0sIERhdGFUeXBlCj4+PiB0eSwgdWludDE2X3Qgc3Vi T3ApCj4+PiAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgNDsgKytjKQo+Pj4gICAgICAgICBpZiAo ZHN0MFtjXSkKPj4+ICAgICAgICAgICAgZHN0MFtjXSA9IGRzdDsgLy8gbm90IGVxdWFsIHRvIHJE c3Qgc28gaGFuZGxlSW5zdHJ1Y3Rpb24KPj4+IHdpbGwgZG8gbWtNb3YKPj4+ICsqLwo+Pj4gICB9 Cj4+Pgo+Pj4gICB2b2lkCj4+PiBkaWZmIC0tZ2l0IGEvc3JjL2dhbGxpdW0vaW5jbHVkZS9waXBl L3Bfc2hhZGVyX3Rva2Vucy5oCj4+PiBiL3NyYy9nYWxsaXVtL2luY2x1ZGUvcGlwZS9wX3NoYWRl cl90b2tlbnMuaAo+Pj4gaW5kZXggNjVkOGFkOS4uNWVmNmMzMCAxMDA2NDQKPj4+IC0tLSBhL3Ny Yy9nYWxsaXVtL2luY2x1ZGUvcGlwZS9wX3NoYWRlcl90b2tlbnMuaAo+Pj4gKysrIGIvc3JjL2dh bGxpdW0vaW5jbHVkZS9waXBlL3Bfc2hhZGVyX3Rva2Vucy5oCj4+PiBAQCAtMjM3LDE1ICsyMzcs NiBAQCBzdHJ1Y3QgdGdzaV9kZWNsYXJhdGlvbl9hcnJheSB7Cj4+PiAgICAgIHVuc2lnbmVkIFBh ZGRpbmcgOiAyMjsKPj4+ICAgfTsKPj4+Cj4+PiAtLyoKPj4+IC0gKiBTcGVjaWFsIHJlc291cmNl cyB0aGF0IGRvbid0IG5lZWQgdG8gYmUgZGVjbGFyZWQuICBUaGV5IG1hcCB0byB0aGUKPj4+IC0g KiBHTE9CQUwvTE9DQUwvUFJJVkFURS9JTlBVVCBjb21wdXRlIG1lbW9yeSBzcGFjZXMuCj4+PiAt ICovCj4+PiAtI2RlZmluZSBUR1NJX1JFU09VUkNFX0dMT0JBTCAgICAweDdmZmYKPj4+IC0jZGVm aW5lIFRHU0lfUkVTT1VSQ0VfTE9DQUwgICAgMHg3ZmZlCj4+PiAtI2RlZmluZSBUR1NJX1JFU09V UkNFX1BSSVZBVEUgICAgMHg3ZmZkCj4+PiAtI2RlZmluZSBUR1NJX1JFU09VUkNFX0lOUFVUICAg IDB4N2ZmYwo+Pj4gLQo+Pgo+PiBUaGlzIHNob3VsZCBiZSBpbiBhIHNlcGFyYXRlIHBhdGNoIHdp dGggImdhbGxpdW06IiBhcyBwcmVmaXggZXZlbiBpZgo+PiBub3V2ZWF1IGlzIHRoZSBvbmx5IGRy aXZlciB3aGljaCBzb21laG93IHVzZXMgdGhlc2UgY29uc3RhbnRzLgo+Cj4gT2ssIHdpbGwgZG8u Cj4KPj4gT3RoZXIgdGhhbiB0aGF0LCB0aGUgcGF0Y2ggbG9va3MgZmluZS4KPj4gQW5kIHRoYW5r cyB0byBub3QgcmVtb3ZlIHRoaXMgcmVzb3VyY2UgdGhpbmcgYmVjYXVzZSB0aGlzIGNvdWxkIGhl bHAKPj4gZm9yIGFyYl9zaGFkZXJfaW1hZ2VfbG9hZF9zdG9yZS4gOi0pCj4+Cj4+IEkgaGF2ZSB0 aGUgc2FtZSBjb21tZW50IGFzIHRoZSBwcmV2aW91cyBwYXRjaCwgSSB0aGluayB0aGUgY29zbWV0 aWMKPj4gY2hhbmdlcyBzaG91bGQgbm90IGJlIGhlcmUuCj4KPiBZb3UgbWVhbiB0aGUgY2hhbmdp bmcgZnJvbSBpZiAoLi4uIHx8IC4uLikgdG8gc3dpdGNoIGNhc2UgPyBUaGF0IGlzIG5vdAo+IGNv c21ldGljLCBub3RlIHRoZQo+IG5ldyBkZWZhdWx0OiBjb2RlIHBhdGggd2l0aCB0aGUgYXNzZXJ0 KCkuIFRoaXMgcmVwbGFjZXMgdGhlIGltcGxpY2l0Cj4gYXNzZXJ0IHdlIGhhZCBiZWZvcmUgYnkK PiBpbiB0aGUgZm9ybSBvZiB0aGUgb2xkIHJlc291cmNlIGNvZGUgdGhyb3dpbmcgYW4gZXhjZXB0 aW9ucyBiZWNhdXNlIG9mCj4gdGhlIGNvZGUgaW5kZXhpbmcKPiBhIDAgc2l6ZSB2ZWN0b3IuCj4K PiBUaGlzIGlzIHRoZSBwYXJ0IG9mIHRoZSBjb21taXQgZGVzY3JpYmVkIGJ5IHRoaXMgYml0IG9m IHRoZSBjb21taXQgbXNnOgo+Cj4gIk1ha2Ugbm9uIGJ1ZmZlciAvIG1lbW9yeSBmaWxlIGFjY2Vz c2VzIG5vdCBiZWluZyBzdXBwb3J0ZWQgaW4gdGhlc2UKPiBmdW5jdGlvbnMgbW9yZSBleHBsaWNp dCBhbmQgY29tbWVudCBvdXQgYSB3aG9sZSBidW5jaCBvZiBkZWFkIGNvZGUuIgo+Cj4gSSBjb3Vs ZCBzcGxpdCB0aGlzIGludG8gYSBzZXBhcmF0ZSBjb21taXQgaWYgeW91IHdhbnQgbWUgdG8uCgpZ ZWFoLCBzZWVtcyBsaWtlIGJldHRlci4KVGhhbmtzLgoKPgo+IFJlZ2FyZHMsCj4KPiBIYW5zCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5vdXZlYXUgbWFp bGluZyBsaXN0Ck5vdXZlYXVAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vbm91dmVhdQo=