From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from metis.ext.pengutronix.de ([2001:6f8:1178:4:290:27ff:fe1d:cc33]) by merlin.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1VDqix-0006br-1G for barebox@lists.infradead.org; Mon, 26 Aug 2013 06:56:31 +0000 From: Sascha Hauer Date: Mon, 26 Aug 2013 08:55:50 +0200 Message-Id: <1377500163-28962-10-git-send-email-s.hauer@pengutronix.de> In-Reply-To: <1377500163-28962-1-git-send-email-s.hauer@pengutronix.de> References: <1377500163-28962-1-git-send-email-s.hauer@pengutronix.de> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "barebox" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [PATCH 09/22] ARM: pcm051: Clean up lowlevel code To: barebox@lists.infradead.org RnJvbTogVGVyZXNhIEfDoW1leiA8dC5nYW1lekBwaHl0ZWMuZGU+CgpVc2Ugbm93IHRoZSBpbml0 aWFsaXNhdGlvbiBmdW5jdGlvbnMgZnJvbSBhbTMzeHhfZ2VuZXJpYy4KClNpZ25lZC1vZmYtYnk6 IFRlcmVzYSBHw6FtZXogPHQuZ2FtZXpAcGh5dGVjLmRlPgpTaWduZWQtb2ZmLWJ5OiBTYXNjaGEg SGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+Ci0tLQogYXJjaC9hcm0vYm9hcmRzL3BjbTA1 MS9sb3dsZXZlbC5jIHwgMjExICsrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgNDEgaW5zZXJ0aW9ucygrKSwgMTcwIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJkcy9wY20wNTEvbG93bGV2ZWwuYyBiL2FyY2gvYXJtL2Jv YXJkcy9wY20wNTEvbG93bGV2ZWwuYwppbmRleCAzYTYzN2NmLi42YWQxNzBmIDEwMDY0NAotLS0g YS9hcmNoL2FybS9ib2FyZHMvcGNtMDUxL2xvd2xldmVsLmMKKysrIGIvYXJjaC9hcm0vYm9hcmRz L3BjbTA1MS9sb3dsZXZlbC5jCkBAIC0xMywxNzEgKzEzLDM2IEBACiAjaW5jbHVkZSA8bWFjaC9h bTMzeHgtbXV4Lmg+CiAjaW5jbHVkZSA8bWFjaC93ZHQuaD4KIAotLyogVUFSVCBEZWZpbmVzICov Ci0jZGVmaW5lIFVBUlRfU1lTQ0ZHX09GRlNFVCAgKDB4NTQpCi0jZGVmaW5lIFVBUlRfU1lTU1RT X09GRlNFVCAgKDB4NTgpCi0KLSNkZWZpbmUgVUFSVF9SRVNFVCAgICAgICgweDEgPDwgMSkKLSNk ZWZpbmUgVUFSVF9DTEtfUlVOTklOR19NQVNLICAgMHgxCi0jZGVmaW5lIFVBUlRfU01BUlRfSURM RV9FTiAgKDB4MSA8PCAweDMpCi0KLS8qIEFNMzM1WCBFTUlGIFJlZ2lzdGVyIHZhbHVlcyAqLwot I2RlZmluZSBWVFBfQ1RSTF9SRUFEWSAgICAgICAgICAoMHgxIDw8IDUpCi0jZGVmaW5lIFZUUF9D VFJMX0VOQUJMRSAgICAgICAgICgweDEgPDwgNikKLSNkZWZpbmUgVlRQX0NUUkxfU1RBUlRfRU4g ICAgICAgKDB4MSkKLSNkZWZpbmUgQ01EX0ZPUkNFICAgICAgICAgICAgICAweDAwICAgIC8qIGNv bW1vbiAjZGVmICovCi0jZGVmaW5lIENNRF9ERUxBWSAgICAgICAgICAgICAgMHgwMAotCi0jZGVm aW5lIEVNSUZfUkVBRF9MQVRFTkNZICAgICAgIDB4MDYKLSNkZWZpbmUgRU1JRl9TRENGRyAgICAg ICAgICAgICAgMHg2MUMwNDgzMiAvKiBDTCA1LCBDV0wgNSAqLwotI2RlZmluZSBFTUlGX1NEUkVG ICAgICAgICAgICAgICAweDAwMDAwOTNCCi0KLSNkZWZpbmUgRU1JRl9USU0xICAgICAgICAgICAg ICAgMHgwNjY4QTM5QgotI2RlZmluZSBFTUlGX1RJTTIgICAgICAgICAgICAgICAweDI2MzM3RkRB Ci0jZGVmaW5lIEVNSUZfVElNMyAgICAgICAgICAgICAgIDB4NTAxRjgzMEYKLQotI2RlZmluZSBE TExfTE9DS19ESUZGICAgICAgICAgICAweDAKLSNkZWZpbmUgUEhZX1dSX0RBVEEgICAgICAgICAg ICAgMHhDMQotI2RlZmluZSBSRF9EUVMgICAgICAgICAgICAgICAgICAweDNCCi0jZGVmaW5lIFdS X0RRUyAgICAgICAgICAgICAgICAgIDB4ODUKLSNkZWZpbmUgUEhZX0ZJRk9fV0UgICAgICAgICAg ICAgMHgxMDAKLSNkZWZpbmUgSU5WRVJUX0NMS09VVCAgICAgICAgICAgMHgxCi0jZGVmaW5lIFBI WV9SQU5LMF9ERUxBWSAgICAgICAgIDB4MDEKLSNkZWZpbmUgRERSX0lPQ1RSTF9WQUxVRSAgICAg ICAgMHgxOEIKLSNkZWZpbmUgQ1RSTF9TTEFWRV9SQVRJTyAgICAgICAgMHg0MAotI2RlZmluZSBQ SFlfTFZMX01PREUgICAgICAgICAgICAweDEKLSNkZWZpbmUgRERSX1pRX0NGRyAgICAgICAgICAg ICAgMHg1MDA3NEJFNAotCi1zdGF0aWMgdm9pZCBDbWRfTWFjcm9fQ29uZmlnKHZvaWQpCi17Ci0J d3JpdGVsKENUUkxfU0xBVkVfUkFUSU8sIEFNMzNYWF9DTUQwX0NUUkxfU0xBVkVfUkFUSU9fMCk7 Ci0Jd3JpdGVsKENNRF9GT1JDRSwgQU0zM1hYX0NNRDBfQ1RSTF9TTEFWRV9GT1JDRV8wKTsKLQl3 cml0ZWwoQ01EX0RFTEFZLCBBTTMzWFhfQ01EMF9DVFJMX1NMQVZFX0RFTEFZXzApOwotCXdyaXRl bChETExfTE9DS19ESUZGLCBBTTMzWFhfQ01EMF9ETExfTE9DS19ESUZGXzApOwotCXdyaXRlbChJ TlZFUlRfQ0xLT1VULCBBTTMzWFhfQ01EMF9JTlZFUlRfQ0xLT1VUXzApOwotCi0Jd3JpdGVsKENU UkxfU0xBVkVfUkFUSU8sIEFNMzNYWF9DTUQxX0NUUkxfU0xBVkVfUkFUSU9fMCk7Ci0Jd3JpdGVs KENNRF9GT1JDRSwgQU0zM1hYX0NNRDFfQ1RSTF9TTEFWRV9GT1JDRV8wKTsKLQl3cml0ZWwoQ01E X0RFTEFZLCBBTTMzWFhfQ01EMV9DVFJMX1NMQVZFX0RFTEFZXzApOwotCXdyaXRlbChETExfTE9D S19ESUZGLCBBTTMzWFhfQ01EMV9ETExfTE9DS19ESUZGXzApOwotCXdyaXRlbChJTlZFUlRfQ0xL T1VULCBBTTMzWFhfQ01EMV9JTlZFUlRfQ0xLT1VUXzApOwotCi0Jd3JpdGVsKENUUkxfU0xBVkVf UkFUSU8sIEFNMzNYWF9DTUQyX0NUUkxfU0xBVkVfUkFUSU9fMCk7Ci0Jd3JpdGVsKENNRF9GT1JD RSwgQU0zM1hYX0NNRDJfQ1RSTF9TTEFWRV9GT1JDRV8wKTsKLQl3cml0ZWwoQ01EX0RFTEFZLCBB TTMzWFhfQ01EMl9DVFJMX1NMQVZFX0RFTEFZXzApOwotCXdyaXRlbChETExfTE9DS19ESUZGLCBB TTMzWFhfQ01EMl9ETExfTE9DS19ESUZGXzApOwotCXdyaXRlbChJTlZFUlRfQ0xLT1VULCBBTTMz WFhfQ01EMl9JTlZFUlRfQ0xLT1VUXzApOwotfQotCi1zdGF0aWMgdm9pZCBjb25maWdfdnRwKHZv aWQpCi17Ci0Jd3JpdGVsKHJlYWRsKEFNMzNYWF9WVFAwX0NUUkxfUkVHKSB8IFZUUF9DVFJMX0VO QUJMRSwKLQkJCUFNMzNYWF9WVFAwX0NUUkxfUkVHKTsKLQl3cml0ZWwocmVhZGwoQU0zM1hYX1ZU UDBfQ1RSTF9SRUcpICYgKH5WVFBfQ1RSTF9TVEFSVF9FTiksCi0JCQlBTTMzWFhfVlRQMF9DVFJM X1JFRyk7Ci0Jd3JpdGVsKHJlYWRsKEFNMzNYWF9WVFAwX0NUUkxfUkVHKSB8IFZUUF9DVFJMX1NU QVJUX0VOLAotCQkJQU0zM1hYX1ZUUDBfQ1RSTF9SRUcpOwotCi0JLyogUG9sbCBmb3IgUkVBRFkg Ki8KLQl3aGlsZSAoKHJlYWRsKEFNMzNYWF9WVFAwX0NUUkxfUkVHKSAmCi0JCQlWVFBfQ1RSTF9S RUFEWSkgIT0gVlRQX0NUUkxfUkVBRFkpOwotfQotCi1zdGF0aWMgdm9pZCBwaHlfY29uZmlnX2Rh dGEodm9pZCkKLXsKLQl3cml0ZWwoUkRfRFFTLCBBTTMzWFhfREFUQTBfUkRfRFFTX1NMQVZFX1JB VElPXzApOwotCXdyaXRlbChXUl9EUVMsIEFNMzNYWF9EQVRBMF9XUl9EUVNfU0xBVkVfUkFUSU9f MCk7Ci0Jd3JpdGVsKFBIWV9GSUZPX1dFLCBBTTMzWFhfREFUQTBfRklGT19XRV9TTEFWRV9SQVRJ T18wKTsKLQl3cml0ZWwoUEhZX1dSX0RBVEEsIEFNMzNYWF9EQVRBMF9XUl9EQVRBX1NMQVZFX1JB VElPXzApOwotCi0Jd3JpdGVsKFJEX0RRUywgQU0zM1hYX0RBVEExX1JEX0RRU19TTEFWRV9SQVRJ T18wKTsKLQl3cml0ZWwoV1JfRFFTLCBBTTMzWFhfREFUQTFfV1JfRFFTX1NMQVZFX1JBVElPXzAp OwotCXdyaXRlbChQSFlfRklGT19XRSwgQU0zM1hYX0RBVEExX0ZJRk9fV0VfU0xBVkVfUkFUSU9f MCk7Ci0Jd3JpdGVsKFBIWV9XUl9EQVRBLCBBTTMzWFhfREFUQTFfV1JfREFUQV9TTEFWRV9SQVRJ T18wKTsKLX0KLQotc3RhdGljIHZvaWQgY29uZmlnX2VtaWYodm9pZCkKLXsKLQkvKlByb2dyYW0g RU1JRjAgQ0ZHIFJlZ2lzdGVycyovCi0Jd3JpdGVsKEVNSUZfUkVBRF9MQVRFTkNZLCBBTTMzWFhf RU1JRjRfMF9SRUcoRERSX1BIWV9DVFJMXzEpKTsKLQl3cml0ZWwoRU1JRl9SRUFEX0xBVEVOQ1ks Ci0JCQkJQU0zM1hYX0VNSUY0XzBfUkVHKEREUl9QSFlfQ1RSTF8xX1NIQURPVykpOwotCXdyaXRl bChFTUlGX1JFQURfTEFURU5DWSwgQU0zM1hYX0VNSUY0XzBfUkVHKEREUl9QSFlfQ1RSTF8yKSk7 Ci0Jd3JpdGVsKEVNSUZfVElNMSwgQU0zM1hYX0VNSUY0XzBfUkVHKFNEUkFNX1RJTV8xKSk7Ci0J d3JpdGVsKEVNSUZfVElNMSwgQU0zM1hYX0VNSUY0XzBfUkVHKFNEUkFNX1RJTV8xX1NIQURPVykp OwotCXdyaXRlbChFTUlGX1RJTTIsIEFNMzNYWF9FTUlGNF8wX1JFRyhTRFJBTV9USU1fMikpOwot CXdyaXRlbChFTUlGX1RJTTIsIEFNMzNYWF9FTUlGNF8wX1JFRyhTRFJBTV9USU1fMl9TSEFET1cp KTsKLQl3cml0ZWwoRU1JRl9USU0zLCBBTTMzWFhfRU1JRjRfMF9SRUcoU0RSQU1fVElNXzMpKTsK LQl3cml0ZWwoRU1JRl9USU0zLCBBTTMzWFhfRU1JRjRfMF9SRUcoU0RSQU1fVElNXzNfU0hBRE9X KSk7Ci0KLQl3cml0ZWwoRU1JRl9TRFJFRiwgQU0zM1hYX0VNSUY0XzBfUkVHKFNEUkFNX1JFRl9D VFJMKSk7Ci0Jd3JpdGVsKEVNSUZfU0RSRUYsIEFNMzNYWF9FTUlGNF8wX1JFRyhTRFJBTV9SRUZf Q1RSTF9TSEFET1cpKTsKLQotCXdyaXRlbChFTUlGX1NEQ0ZHLCBBTTMzWFhfRU1JRjRfMF9SRUco U0RSQU1fQ09ORklHKSk7Ci0Jd3JpdGVsKEREUl9aUV9DRkcsIEFNMzNYWF9FTUlGNF8wX1JFRyha UV9DT05GSUcpKTsKLQotCXdoaWxlICgocmVhZGwoQU0zM1hYX0VNSUY0XzBfUkVHKFNEUkFNX1NU QVRVUykpICYgMHg0KSAhPSAweDQpOwotfQotCi1zdGF0aWMgdm9pZCBwY20wNTFfY29uZmlnX2Rk cih2b2lkKQotewotCWVuYWJsZV9kZHJfY2xvY2tzKCk7Ci0KLQljb25maWdfdnRwKCk7Ci0KLQkv KiBpbml0IG1vZGUgKi8KLQl3cml0ZWwoUEhZX0xWTF9NT0RFLCBBTTMzWFhfREFUQTBfV1JMVkxf SU5JVF9NT0RFXzApOwotCXdyaXRlbChQSFlfTFZMX01PREUsIEFNMzNYWF9EQVRBMF9HQVRFTFZM X0lOSVRfTU9ERV8wKTsKLQl3cml0ZWwoUEhZX0xWTF9NT0RFLCBBTTMzWFhfREFUQTFfV1JMVkxf SU5JVF9NT0RFXzApOwotCXdyaXRlbChQSFlfTFZMX01PREUsIEFNMzNYWF9EQVRBMV9HQVRFTFZM X0lOSVRfTU9ERV8wKTsKLQotCUNtZF9NYWNyb19Db25maWcoKTsKLQlwaHlfY29uZmlnX2RhdGEo KTsKLQotCXdyaXRlbChQSFlfUkFOSzBfREVMQVksIEFNMzNYWF9EQVRBMF9SQU5LMF9ERUxBWVNf MCk7Ci0Jd3JpdGVsKFBIWV9SQU5LMF9ERUxBWSwgQU0zM1hYX0RBVEExX1JBTkswX0RFTEFZU18w KTsKLQotCXdyaXRlbChERFJfSU9DVFJMX1ZBTFVFLCBBTTMzWFhfRERSX0NNRDBfSU9DVFJMKTsK LQl3cml0ZWwoRERSX0lPQ1RSTF9WQUxVRSwgQU0zM1hYX0REUl9DTUQxX0lPQ1RSTCk7Ci0Jd3Jp dGVsKEREUl9JT0NUUkxfVkFMVUUsIEFNMzNYWF9ERFJfQ01EMl9JT0NUUkwpOwotCXdyaXRlbChE RFJfSU9DVFJMX1ZBTFVFLCBBTTMzWFhfRERSX0RBVEEwX0lPQ1RSTCk7Ci0Jd3JpdGVsKEREUl9J T0NUUkxfVkFMVUUsIEFNMzNYWF9ERFJfREFUQTFfSU9DVFJMKTsKLQotCXdyaXRlbChyZWFkbChB TTMzWFhfRERSX0lPX0NUUkwpICYKLQkJCQkweGVmZmZmZmZmLCBBTTMzWFhfRERSX0lPX0NUUkwp OwotCXdyaXRlbChyZWFkbChBTTMzWFhfRERSX0NLRV9DVFJMKSB8Ci0JCQkJMHgwMDAwMDAwMSwg QU0zM1hYX0REUl9DS0VfQ1RSTCk7Ci0KLQljb25maWdfZW1pZigpOwotfQotCi0vKgotICogZWFy bHkgc3lzdGVtIGluaXQgb2YgbXV4aW5nIGFuZCBjbG9ja3MuCi0gKi8KLXZvaWQgcGNtMDUxX3Ny YW1faW5pdCh2b2lkKQotewotCXUzMiByZWdWYWwsIHVhcnRfYmFzZTsKLQotCS8qIFNldHVwIHRo ZSBQTExzIGFuZCB0aGUgY2xvY2tzIGZvciB0aGUgcGVyaXBoZXJhbHMgKi8KLQlwbGxfaW5pdChN UFVQTExfTV82MDAsIDI1KTsKLQotCXBjbTA1MV9jb25maWdfZGRyKCk7Ci0KLQkvKiBVQVJUIHNv ZnRyZXNldCAqLwotCWFtMzN4eF9lbmFibGVfdWFydDBfcGluX211eCgpOwotCXVhcnRfYmFzZSA9 IEFNMzNYWF9VQVJUMF9CQVNFOwotCi0JcmVnVmFsID0gcmVhZGwodWFydF9iYXNlICsgVUFSVF9T WVNDRkdfT0ZGU0VUKTsKLQlyZWdWYWwgfD0gVUFSVF9SRVNFVDsKLQl3cml0ZWwocmVnVmFsLCAo dWFydF9iYXNlICsgVUFSVF9TWVNDRkdfT0ZGU0VUKSk7Ci0Jd2hpbGUgKChyZWFkbCh1YXJ0X2Jh c2UgKyBVQVJUX1NZU1NUU19PRkZTRVQpICYKLQkJVUFSVF9DTEtfUlVOTklOR19NQVNLKSAhPSBV QVJUX0NMS19SVU5OSU5HX01BU0spOwotCi0JLyogRGlzYWJsZSBzbWFydCBpZGxlICovCi0JcmVn VmFsID0gcmVhZGwoKHVhcnRfYmFzZSArIFVBUlRfU1lTQ0ZHX09GRlNFVCkpOwotCXJlZ1ZhbCB8 PSBVQVJUX1NNQVJUX0lETEVfRU47Ci0Jd3JpdGVsKHJlZ1ZhbCwgKHVhcnRfYmFzZSArIFVBUlRf U1lTQ0ZHX09GRlNFVCkpOwotfQorc3RhdGljIGNvbnN0IHN0cnVjdCBhbTMzeHhfY21kX2NvbnRy b2wgTVQ0MUoyNTZNOEhYMTVFXzJ4MjU2TThfY21kID0geworCS5zbGF2ZV9yYXRpbzAgPSAweDQw LAorCS5kbGxfbG9ja19kaWZmMCA9IDB4MCwKKwkuaW52ZXJ0X2Nsa291dDAgPSAweDEsCisJLnNs YXZlX3JhdGlvMSA9IDB4NDAsCisJLmRsbF9sb2NrX2RpZmYxID0gMHgwLAorCS5pbnZlcnRfY2xr b3V0MSA9IDB4MSwKKwkuc2xhdmVfcmF0aW8yID0gMHg0MCwKKwkuZGxsX2xvY2tfZGlmZjIgPSAw eDAsCisJLmludmVydF9jbGtvdXQyID0gMHgxLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBh bTMzeHhfZW1pZl9yZWdzIE1UNDFKMjU2TThIWDE1RV8yeDI1Nk04X3JlZ3MgPSB7CisJLmVtaWZf cmVhZF9sYXRlbmN5CT0gMHg2LAorCS5lbWlmX3RpbTEJCT0gMHgwNjY4QTM5QiwKKwkuZW1pZl90 aW0yCQk9IDB4MjYzMzdGREEsCisJLmVtaWZfdGltMwkJPSAweDUwMUY4MzBGLAorCS5zZHJhbV9j b25maWcJCT0gMHg2MUMwNDgzMiwKKwkuenFfY29uZmlnCQk9IDB4NTAwNzRCRTQsCisJLnNkcmFt X3JlZl9jdHJsCQk9IDB4MDAwMDA5M0IsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGFtMzN4 eF9kZHJfZGF0YSBNVDQxSjI1Nk04SFgxNUVfMngyNTZNOF9kYXRhID0geworCS5yZF9zbGF2ZV9y YXRpbzAJPSAweDNCLAorCS53cl9kcXNfc2xhdmVfcmF0aW8wCT0gMHg4NSwKKwkuZmlmb193ZV9z bGF2ZV9yYXRpbzAJPSAweDEwMCwKKwkud3Jfc2xhdmVfcmF0aW8wCT0gMHhDMSwKKwkudXNlX3Jh bmswX2RlbGF5CT0gMHgwMSwKKwkuZGxsX2xvY2tfZGlmZjAJCT0gMHgwLAorfTsKIAogLyoqCiAg KiBAYnJpZWYgVGhlIGJhc2ljIGVudHJ5IHBvaW50IGZvciBib2FyZCBpbml0aWFsaXphdGlvbi4K QEAgLTE5MCw4ICs1NSw2IEBAIHZvaWQgcGNtMDUxX3NyYW1faW5pdCh2b2lkKQogICovCiBzdGF0 aWMgaW50IHBjbTA1MV9ib2FyZF9pbml0KHZvaWQpCiB7Ci0JaW50IGluX3NkcmFtID0gcnVubmlu Z19pbl9zZHJhbSgpOwotCiAJLyogV0RUMSBpcyBhbHJlYWR5IHJ1bm5pbmcgd2hlbiB0aGUgYm9v dGxvYWRlciBnZXRzIGNvbnRyb2wKIAkgKiBEaXNhYmxlIGl0IHRvIGF2b2lkICJyYW5kb20iIHJl c2V0cwogCSAqLwpAQCAtMjAxLDkgKzY0LDE3IEBAIHN0YXRpYyBpbnQgcGNtMDUxX2JvYXJkX2lu aXQodm9pZCkKIAl3cml0ZWwoV0RUX0RJU0FCTEVfQ09ERTIsIEFNMzNYWF9XRFRfUkVHKFdTUFIp KTsKIAl3aGlsZSAocmVhZGwoQU0zM1hYX1dEVF9SRUcoV1dQUykpICE9IDB4MCk7CiAKLQkvKiBE b250IHJlY29uZmlndXJlIFNEUkFNIHdoaWxlIHJ1bm5pbmcgaW4gU0RSQU0hICovCi0JaWYgKCFp bl9zZHJhbSkKLQkJcGNtMDUxX3NyYW1faW5pdCgpOworCWlmIChydW5uaW5nX2luX3NkcmFtKCkp CisJCXJldHVybiAwOworCisJcGxsX2luaXQoTVBVUExMX01fNjAwLCAyNSk7CisKKwlhbTMzNXhf c2RyYW1faW5pdCgweDE4QiwgJk1UNDFKMjU2TThIWDE1RV8yeDI1Nk04X2NtZCwKKwkJCSZNVDQx SjI1Nk04SFgxNUVfMngyNTZNOF9yZWdzLAorCQkJJk1UNDFKMjU2TThIWDE1RV8yeDI1Nk04X2Rh dGEpOworCisJYW0zM3h4X3VhcnQwX3NvZnRfcmVzZXQoKTsKKwlhbTMzeHhfZW5hYmxlX3VhcnQw X3Bpbl9tdXgoKTsKIAogCXJldHVybiAwOwogfQotLSAKMS44LjQucmMzCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYmFyZWJveCBtYWlsaW5nIGxpc3QK YmFyZWJveEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vYmFyZWJveAo=