From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Subject: Re: [Mesa-dev, v2, 1/2] nouveau: codegen: Use FILE_MEMORY_BUFFER for buffers Date: Mon, 21 Mar 2016 12:26:04 +0100 Message-ID: <56EFDA4C.1000001@redhat.com> References: <1458230823-25213-1-git-send-email-hdegoede@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458230823-25213-1-git-send-email-hdegoede-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: Ilia Mirkin , Samuel Pitoiset Cc: mesa-dev-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: nouveau.vger.kernel.org SGksCgpPbiAxNy0wMy0xNiAxNzowNywgSGFucyBkZSBHb2VkZSB3cm90ZToKPiBTb21lIG9mIHRo ZSBsb3dlcmluZyBzdGVwcyB3ZSBjdXJyZW50bHkgZG8gZm9yIEZJTEVfTUVNT1JZX0dMT0JBTCBv bmx5Cj4gYXBwbHkgdG8gYnVmZmVycywgbWFraW5nIGl0IGltcG9zc2libGUgdG8gdXNlIEZJTEVf TUVNT1JZX0dMT0JBTCBmb3IKPiBPcGVuQ0wgZ2xvYmFsIGJ1ZmZlcnMuCj4KPiBUaGlzIGNvbW1p dHMgY2hhbmdlcyB0aGUgYnVmZmVyIGNvZGUgdG8gdXNlIEZJTEVfTUVNT1JZX0JVRkZFUiBhdCB0 aGUKPiBpcl9mcm9tX3Rnc2kgYW5kIGxvd2VyaW5nIHN0ZXBzLCBmcmVlaW5nIHVzZSBvZiBGSUxF X01FTU9SWV9HTE9CQUwKPiBmb3IgdXNlIHdpdGggT3BlbkNMIGdsb2JhbCBidWZmZXJzLgo+Cj4g Tm90ZSB0aGF0IGFmdGVyIGxvd2VyaW5nIGJ1ZmZlciBhY2Nlc3NlcyB1c2UgdGhlIEZJTEVfTUVN T1JZX0dMT0JBTAo+IHJlZ2lzdGVyIGZpbGUuCj4KPiBUZXN0ZWQgd2l0aCBwaWdsZXQgb24gYSBn azEwNywgYmVmb3JlIHRoaXMgcGF0Y2g6Cj4gLi9waWdsaXQgcnVuIC1vIHNoYWRlciAtdCAnLiph cmJfc2hhZGVyX3N0b3JhZ2VfYnVmZmVyX29iamVjdC4qJyByZXN1bHRzL3NoYWRlcgo+IFs5Lzld IHBhc3M6IDkgLwo+IGFmdGVyOgo+IC4vcGlnbGl0IHJ1biAtbyBzaGFkZXIgLXQgJy4qYXJiX3No YWRlcl9zdG9yYWdlX2J1ZmZlcl9vYmplY3QuKicgcmVzdWx0cy9zaGFkZXIKPiBbOS85XSBwYXNz OiA5IC8KPgo+IFNpZ25lZC1vZmYtYnk6IEhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5j b20+CgpQaW5nLCBhbnkgY2hhbmNlIEkgY2FuIGdldCBhIHJldmlldyBvZiB0aGVzZSAyIHBhdGNo ZXMgPwoKVGhhbmtzLAoKSGFucwoKCgoKPiAtLS0KPiBDaGFuZ2VzIGluIHYyOgo+IC1OZXcgcGF0 Y2ggaW4gdjIgb2YgcGF0Y2gtc2V0IHRvIHJlLWVuYWJsZSBzdXBwb3J0IGZvciBnbG9iYWwgb3Bl bmNsIGJ1ZmZlcnMKPiAtLS0KPiAgIHNyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2Vu L252NTBfaXIuaCAgICAgICAgICAgICAgICAgfCAxICsKPiAgIHNyYy9nYWxsaXVtL2RyaXZlcnMv bm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZnJvbV90Z3NpLmNwcCAgICAgfCAyICstCj4gICBzcmMv Z2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2xvd2VyaW5nX252YzAuY3Bw IHwgOCArKysrKy0tLQo+ICAgc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1 MF9pcl9wcmludC5jcHAgICAgICAgICB8IDEgKwo+ICAgc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2 ZWF1L2NvZGVnZW4vbnY1MF9pcl90YXJnZXRfbnY1MC5jcHAgICB8IDUgKysrKy0KPiAgIHNyYy9n YWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFyZ2V0X252YzAuY3BwICAg fCAxICsKPiAgIDYgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMo LSkKPgo+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9u djUwX2lyLmggYi9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyLmgK PiBpbmRleCA3YjBlYjJmLi41MTQxZmM2IDEwMDY0NAo+IC0tLSBhL3NyYy9nYWxsaXVtL2RyaXZl cnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXIuaAo+ICsrKyBiL3NyYy9nYWxsaXVtL2RyaXZlcnMv bm91dmVhdS9jb2RlZ2VuL252NTBfaXIuaAo+IEBAIC0zMzIsNiArMzMyLDcgQEAgZW51bSBEYXRh RmlsZQo+ICAgICAgRklMRV9NRU1PUllfQ09OU1QsCj4gICAgICBGSUxFX1NIQURFUl9JTlBVVCwK PiAgICAgIEZJTEVfU0hBREVSX09VVFBVVCwKPiArICAgRklMRV9NRU1PUllfQlVGRkVSLAo+ICAg ICAgRklMRV9NRU1PUllfR0xPQkFMLAo+ICAgICAgRklMRV9NRU1PUllfU0hBUkVELAo+ICAgICAg RklMRV9NRU1PUllfTE9DQUwsCj4gZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91 dmVhdS9jb2RlZ2VuL252NTBfaXJfZnJvbV90Z3NpLmNwcCBiL3NyYy9nYWxsaXVtL2RyaXZlcnMv bm91dmVhdS9jb2RlZ2VuL252NTBfaXJfZnJvbV90Z3NpLmNwcAo+IGluZGV4IGJhYTJlMzAuLjdh ZTBjYjIgMTAwNjQ0Cj4gLS0tIGEvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4v bnY1MF9pcl9mcm9tX3Rnc2kuY3BwCj4gKysrIGIvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1 L2NvZGVnZW4vbnY1MF9pcl9mcm9tX3Rnc2kuY3BwCj4gQEAgLTM3Myw3ICszNzMsNyBAQCBzdGF0 aWMgbnY1MF9pcjo6RGF0YUZpbGUgdHJhbnNsYXRlRmlsZSh1aW50IGZpbGUpCj4gICAgICBjYXNl IFRHU0lfRklMRV9QUkVESUNBVEU6ICAgICAgIHJldHVybiBudjUwX2lyOjpGSUxFX1BSRURJQ0FU RTsKPiAgICAgIGNhc2UgVEdTSV9GSUxFX0lNTUVESUFURTogICAgICAgcmV0dXJuIG52NTBfaXI6 OkZJTEVfSU1NRURJQVRFOwo+ICAgICAgY2FzZSBUR1NJX0ZJTEVfU1lTVEVNX1ZBTFVFOiAgICBy ZXR1cm4gbnY1MF9pcjo6RklMRV9TWVNURU1fVkFMVUU7Cj4gLSAgIGNhc2UgVEdTSV9GSUxFX0JV RkZFUjogICAgICAgICAgcmV0dXJuIG52NTBfaXI6OkZJTEVfTUVNT1JZX0dMT0JBTDsKPiArICAg Y2FzZSBUR1NJX0ZJTEVfQlVGRkVSOiAgICAgICAgICByZXR1cm4gbnY1MF9pcjo6RklMRV9NRU1P UllfQlVGRkVSOwo+ICAgICAgY2FzZSBUR1NJX0ZJTEVfTUVNT1JZOiAgICAgICAgICByZXR1cm4g bnY1MF9pcjo6RklMRV9NRU1PUllfR0xPQkFMOwo+ICAgICAgY2FzZSBUR1NJX0ZJTEVfU0FNUExF UjoKPiAgICAgIGNhc2UgVEdTSV9GSUxFX05VTEw6Cj4gZGlmZiAtLWdpdCBhL3NyYy9nYWxsaXVt L2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfbG93ZXJpbmdfbnZjMC5jcHAgYi9zcmMv Z2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2xvd2VyaW5nX252YzAuY3Bw Cj4gaW5kZXggZDA5MzZkOC4uNjI4ZGViNyAxMDA2NDQKPiAtLS0gYS9zcmMvZ2FsbGl1bS9kcml2 ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX2xvd2VyaW5nX252YzAuY3BwCj4gKysrIGIvc3Jj L2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl9sb3dlcmluZ19udmMwLmNw cAo+IEBAIC0xMTQxLDEzICsxMTQxLDE0IEBAIE5WQzBMb3dlcmluZ1Bhc3M6OmhhbmRsZUFUT00o SW5zdHJ1Y3Rpb24gKmF0b20pCj4gICAgICAgICBoYW5kbGVTaGFyZWRBVE9NKGF0b20pOwo+ICAg ICAgICAgcmV0dXJuIHRydWU7Cj4gICAgICBkZWZhdWx0Ogo+IC0gICAgICBhc3NlcnQoYXRvbS0+ c3JjKDApLmdldEZpbGUoKSA9PSBGSUxFX01FTU9SWV9HTE9CQUwpOwo+ICsgICAgICBhc3NlcnQo YXRvbS0+c3JjKDApLmdldEZpbGUoKSA9PSBGSUxFX01FTU9SWV9CVUZGRVIpOwo+ICAgICAgICAg YmFzZSA9IGxvYWRSZXNJbmZvNjQoaW5kLCBhdG9tLT5nZXRTcmMoMCktPnJlZy5maWxlSW5kZXgg KiAxNik7Cj4gICAgICAgICBhc3NlcnQoYmFzZS0+cmVnLnNpemUgPT0gOCk7Cj4gICAgICAgICBp ZiAocHRyKQo+ICAgICAgICAgICAgYmFzZSA9IGJsZC5ta09wMnYoT1BfQURELCBUWVBFX1U2NCwg YmFzZSwgYmFzZSwgcHRyKTsKPiAgICAgICAgIGFzc2VydChiYXNlLT5yZWcuc2l6ZSA9PSA4KTsK PiAgICAgICAgIGF0b20tPnNldEluZGlyZWN0KDAsIDAsIGJhc2UpOwo+ICsgICAgICBhdG9tLT5n ZXRTcmMoMCktPnJlZy5maWxlID0gRklMRV9NRU1PUllfR0xPQkFMOwo+ICAgICAgICAgcmV0dXJu IHRydWU7Cj4gICAgICB9Cj4gICAgICBiYXNlID0KPiBAQCAtMTk2Myw3ICsxOTY0LDcgQEAgTlZD MExvd2VyaW5nUGFzczo6dmlzaXQoSW5zdHJ1Y3Rpb24gKmkpCj4gICAgICAgICB9IGVsc2UgaWYg KGktPnNyYygwKS5nZXRGaWxlKCkgPT0gRklMRV9TSEFERVJfT1VUUFVUKSB7Cj4gICAgICAgICAg ICBhc3NlcnQocHJvZy0+Z2V0VHlwZSgpID09IFByb2dyYW06OlRZUEVfVEVTU0VMTEFUSU9OX0NP TlRST0wpOwo+ICAgICAgICAgICAgaS0+b3AgPSBPUF9WRkVUQ0g7Cj4gLSAgICAgIH0gZWxzZSBp ZiAoaS0+c3JjKDApLmdldEZpbGUoKSA9PSBGSUxFX01FTU9SWV9HTE9CQUwpIHsKPiArICAgICAg fSBlbHNlIGlmIChpLT5zcmMoMCkuZ2V0RmlsZSgpID09IEZJTEVfTUVNT1JZX0JVRkZFUikgewo+ ICAgICAgICAgICAgVmFsdWUgKmluZCA9IGktPmdldEluZGlyZWN0KDAsIDEpOwo+ICAgICAgICAg ICAgVmFsdWUgKnB0ciA9IGxvYWRSZXNJbmZvNjQoaW5kLCBpLT5nZXRTcmMoMCktPnJlZy5maWxl SW5kZXggKiAxNik7Cj4gICAgICAgICAgICAvLyBYWFggY29tZSB1cCB3aXRoIGEgd2F5IG5vdCB0 byBkbyB0aGlzIGZvciBFVkVSWSBsaXR0bGUgYWNjZXNzIGJ1dAo+IEBAIC0xOTc4LDYgKzE5Nzks NyBAQCBOVkMwTG93ZXJpbmdQYXNzOjp2aXNpdChJbnN0cnVjdGlvbiAqaSkKPiAgICAgICAgICAg IH0KPiAgICAgICAgICAgIGktPnNldEluZGlyZWN0KDAsIDEsIE5VTEwpOwo+ICAgICAgICAgICAg aS0+c2V0SW5kaXJlY3QoMCwgMCwgcHRyKTsKPiArICAgICAgICAgaS0+Z2V0U3JjKDApLT5yZWcu ZmlsZSA9IEZJTEVfTUVNT1JZX0dMT0JBTDsKPiAgICAgICAgICAgIGJsZC5ta0NtcChPUF9TRVQs IENDX0dULCBUWVBFX1UzMiwgcHJlZCwgVFlQRV9VMzIsIG9mZnNldCwgbGVuZ3RoKTsKPiAgICAg ICAgICAgIGktPnNldFByZWRpY2F0ZShDQ19OT1RfUCwgcHJlZCk7Cj4gICAgICAgICAgICBpZiAo aS0+ZGVmRXhpc3RzKDApKSB7Cj4gQEAgLTE5ODcsNyArMTk4OSw3IEBAIE5WQzBMb3dlcmluZ1Bh c3M6OnZpc2l0KEluc3RydWN0aW9uICppKQo+ICAgICAgICAgYnJlYWs7Cj4gICAgICBjYXNlIE9Q X0FUT006Cj4gICAgICB7Cj4gLSAgICAgIGNvbnN0IGJvb2wgY2N0bCA9IGktPnNyYygwKS5nZXRG aWxlKCkgPT0gRklMRV9NRU1PUllfR0xPQkFMOwo+ICsgICAgICBjb25zdCBib29sIGNjdGwgPSBp LT5zcmMoMCkuZ2V0RmlsZSgpID09IEZJTEVfTUVNT1JZX0JVRkZFUjsKPiAgICAgICAgIGhhbmRs ZUFUT00oaSk7Cj4gICAgICAgICBoYW5kbGVDYXNFeGNoKGksIGNjdGwpOwo+ICAgICAgfQo+IGRp ZmYgLS1naXQgYS9zcmMvZ2FsbGl1bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX3By aW50LmNwcCBiL3NyYy9nYWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfcHJp bnQuY3BwCj4gaW5kZXggY2ZhODVlYy4uODcwYjM2ZSAxMDA2NDQKPiAtLS0gYS9zcmMvZ2FsbGl1 bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX3ByaW50LmNwcAo+ICsrKyBiL3NyYy9n YWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfcHJpbnQuY3BwCj4gQEAgLTQ1 NSw2ICs0NTUsNyBAQCBpbnQgU3ltYm9sOjpwcmludChjaGFyICpidWYsIHNpemVfdCBzaXplLAo+ ICAgICAgY2FzZSBGSUxFX01FTU9SWV9DT05TVDogIGMgPSAnYyc7IGJyZWFrOwo+ICAgICAgY2Fz ZSBGSUxFX1NIQURFUl9JTlBVVDogIGMgPSAnYSc7IGJyZWFrOwo+ICAgICAgY2FzZSBGSUxFX1NI QURFUl9PVVRQVVQ6IGMgPSAnbyc7IGJyZWFrOwo+ICsgICBjYXNlIEZJTEVfTUVNT1JZX0JVRkZF UjogYyA9ICdiJzsgYnJlYWs7IC8vIE9ubHkgdXNlZCBiZWZvcmUgbG93ZXJpbmcKPiAgICAgIGNh c2UgRklMRV9NRU1PUllfR0xPQkFMOiBjID0gJ2cnOyBicmVhazsKPiAgICAgIGNhc2UgRklMRV9N RU1PUllfU0hBUkVEOiBjID0gJ3MnOyBicmVhazsKPiAgICAgIGNhc2UgRklMRV9NRU1PUllfTE9D QUw6ICBjID0gJ2wnOyBicmVhazsKPiBkaWZmIC0tZ2l0IGEvc3JjL2dhbGxpdW0vZHJpdmVycy9u b3V2ZWF1L2NvZGVnZW4vbnY1MF9pcl90YXJnZXRfbnY1MC5jcHAgYi9zcmMvZ2FsbGl1bS9kcml2 ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX3RhcmdldF9udjUwLmNwcAo+IGluZGV4IDJjNGQ3 ZjUuLjJhZjE3MTUgMTAwNjQ0Cj4gLS0tIGEvc3JjL2dhbGxpdW0vZHJpdmVycy9ub3V2ZWF1L2Nv ZGVnZW4vbnY1MF9pcl90YXJnZXRfbnY1MC5jcHAKPiArKysgYi9zcmMvZ2FsbGl1bS9kcml2ZXJz L25vdXZlYXUvY29kZWdlbi9udjUwX2lyX3RhcmdldF9udjUwLmNwcAo+IEBAIC0yMDcsNiArMjA3 LDcgQEAgVGFyZ2V0TlY1MDo6Z2V0RmlsZVNpemUoRGF0YUZpbGUgZmlsZSkgY29uc3QKPiAgICAg IGNhc2UgRklMRV9NRU1PUllfQ09OU1Q6ICByZXR1cm4gNjU1MzY7Cj4gICAgICBjYXNlIEZJTEVf U0hBREVSX0lOUFVUOiAgcmV0dXJuIDB4MjAwOwo+ICAgICAgY2FzZSBGSUxFX1NIQURFUl9PVVRQ VVQ6IHJldHVybiAweDIwMDsKPiArICAgY2FzZSBGSUxFX01FTU9SWV9CVUZGRVI6IHJldHVybiAw eGZmZmZmZmZmOwo+ICAgICAgY2FzZSBGSUxFX01FTU9SWV9HTE9CQUw6IHJldHVybiAweGZmZmZm ZmZmOwo+ICAgICAgY2FzZSBGSUxFX01FTU9SWV9TSEFSRUQ6IHJldHVybiAxNiA8PCAxMDsKPiAg ICAgIGNhc2UgRklMRV9NRU1PUllfTE9DQUw6ICByZXR1cm4gNDggPDwgMTA7Cj4gQEAgLTQwNiw3 ICs0MDcsOCBAQCBUYXJnZXROVjUwOjppc0FjY2Vzc1N1cHBvcnRlZChEYXRhRmlsZSBmaWxlLCBE YXRhVHlwZSB0eSkgY29uc3QKPiAgICAgIGlmICh0eSA9PSBUWVBFX0I5NiB8fCB0eSA9PSBUWVBF X05PTkUpCj4gICAgICAgICByZXR1cm4gZmFsc2U7Cj4gICAgICBpZiAodHlwZVNpemVvZih0eSkg PiA0KQo+IC0gICAgICByZXR1cm4gKGZpbGUgPT0gRklMRV9NRU1PUllfTE9DQUwpIHx8IChmaWxl ID09IEZJTEVfTUVNT1JZX0dMT0JBTCk7Cj4gKyAgICAgIHJldHVybiAoZmlsZSA9PSBGSUxFX01F TU9SWV9MT0NBTCkgfHwgKGZpbGUgPT0gRklMRV9NRU1PUllfR0xPQkFMKSB8fAo+ICsgICAgICAg ICAgICAgKGZpbGUgPT0gRklMRV9NRU1PUllfQlVGRkVSKTsKPiAgICAgIHJldHVybiB0cnVlOwo+ ICAgfQo+Cj4gQEAgLTUwOSw2ICs1MTEsNyBAQCBpbnQgVGFyZ2V0TlY1MDo6Z2V0TGF0ZW5jeShj b25zdCBJbnN0cnVjdGlvbiAqaSkgY29uc3QKPiAgICAgICAgIHN3aXRjaCAoaS0+c3JjKDApLmdl dEZpbGUoKSkgewo+ICAgICAgICAgY2FzZSBGSUxFX01FTU9SWV9MT0NBTDoKPiAgICAgICAgIGNh c2UgRklMRV9NRU1PUllfR0xPQkFMOgo+ICsgICAgICBjYXNlIEZJTEVfTUVNT1JZX0JVRkZFUjoK PiAgICAgICAgICAgIHJldHVybiAxMDA7IC8vIHJlYWxseSA0MDAgdG8gODAwCj4gICAgICAgICBk ZWZhdWx0Ogo+ICAgICAgICAgICAgcmV0dXJuIDIyOwo+IGRpZmYgLS1naXQgYS9zcmMvZ2FsbGl1 bS9kcml2ZXJzL25vdXZlYXUvY29kZWdlbi9udjUwX2lyX3RhcmdldF9udmMwLmNwcCBiL3NyYy9n YWxsaXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFyZ2V0X252YzAuY3BwCj4g aW5kZXggYTAzYWZhOC4uOWUxZTdiZiAxMDA2NDQKPiAtLS0gYS9zcmMvZ2FsbGl1bS9kcml2ZXJz L25vdXZlYXUvY29kZWdlbi9udjUwX2lyX3RhcmdldF9udmMwLmNwcAo+ICsrKyBiL3NyYy9nYWxs aXVtL2RyaXZlcnMvbm91dmVhdS9jb2RlZ2VuL252NTBfaXJfdGFyZ2V0X252YzAuY3BwCj4gQEAg LTI0OCw2ICsyNDgsNyBAQCBUYXJnZXROVkMwOjpnZXRGaWxlU2l6ZShEYXRhRmlsZSBmaWxlKSBj b25zdAo+ICAgICAgY2FzZSBGSUxFX01FTU9SWV9DT05TVDogIHJldHVybiA2NTUzNjsKPiAgICAg IGNhc2UgRklMRV9TSEFERVJfSU5QVVQ6ICByZXR1cm4gMHg0MDA7Cj4gICAgICBjYXNlIEZJTEVf U0hBREVSX09VVFBVVDogcmV0dXJuIDB4NDAwOwo+ICsgICBjYXNlIEZJTEVfTUVNT1JZX0JVRkZF UjogcmV0dXJuIDB4ZmZmZmZmZmY7Cj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX0dMT0JBTDogcmV0 dXJuIDB4ZmZmZmZmZmY7Cj4gICAgICBjYXNlIEZJTEVfTUVNT1JZX1NIQVJFRDogcmV0dXJuIDE2 IDw8IDEwOwo+ICAgICAgY2FzZSBGSUxFX01FTU9SWV9MT0NBTDogIHJldHVybiA0OCA8PCAxMDsK PgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOb3V2ZWF1 IG1haWxpbmcgbGlzdApOb3V2ZWF1QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL25vdXZlYXUK