From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: [PATCH v5 9/9] drm/i915: Address broxton phy registers based on phy and channel number Date: Wed, 19 Oct 2016 10:59:00 +0300 Message-ID: <1476863940-6019-1-git-send-email-ander.conselvan.de.oliveira@intel.com> References: <1476100421.10695.5.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id D259F6E863 for ; Wed, 19 Oct 2016 07:59:04 +0000 (UTC) In-Reply-To: <1476100421.10695.5.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: imre.deak@intel.com, intel-gfx@lists.freedesktop.org Cc: m.deepak@intel.com, Ander Conselvan de Oliveira List-Id: intel-gfx@lists.freedesktop.org VGhlIHBvcnQgcmVnaXN0ZXJzIHJlbGF0ZWQgdG8gdGhlIHBoeXMgaW4gYnJveHRvbiBtYXAgdG8g ZGlmZmVyZW50CmNoYW5uZWxzIGFuZCBzcGVjaWZpYyBwaHlzLiBNYWtlIHRoYXQgbWFwcGluZyBl eHBsaWNpdC4KCnYyOiBQYXNzIGVudW0gZHBpb19waHkgdG8gbWFjcm9zIGluc3RlYWQgb2YgbW1p byBiYXNlLiAoSW1yZSkKCnYzOiBGaXggdHlwbyBpbiBtYWNyb3MuIChJbXJlKQoKdjQ6IEFsc28g Y2hhbmdlIHZhcmlhYmxlcyBmcm9tIHUzMiB0byBlbnVtIGRwaW9fcGh5LiAoSW1yZSkKICAgIFJl bW92ZSBsZWZ0b3ZlcnMgZnJvbSBwcmV2aW91cyB2ZXJzaW9uLiAoSW1yZSkKCnY1OiBBY3R1YWxs eSBnaXQgYWRkIHRoZSBjaGFuZ2VzLgoKU2lnbmVkLW9mZi1ieTogQW5kZXIgQ29uc2VsdmFuIGRl IE9saXZlaXJhIDxhbmRlci5jb25zZWx2YW4uZGUub2xpdmVpcmFAaW50ZWwuY29tPgpSZXZpZXdl ZC1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggICAgICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZWcuaCAgICAgICB8IDE0MSArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGlvX3BoeS5jIHwgIDY4ICsrKysrKysrKysrKy0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMgfCAgODQgKysrKysrKysr KystLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMTc1IGluc2VydGlvbnMoKyksIDEyMCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAzMTIwZWY1Li5hMzMyM2I3ZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0zNzQ2LDYgKzM3NDYsOCBAQCB1MzIgdmx2X2Zs aXNkc2lfcmVhZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiByZWcpOwog dm9pZCB2bHZfZmxpc2RzaV93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs IHUzMiByZWcsIHUzMiB2YWwpOwogCiAvKiBpbnRlbF9kcGlvX3BoeS5jICovCit2b2lkIGJ4dF9w b3J0X3RvX3BoeV9jaGFubmVsKGVudW0gcG9ydCBwb3J0LAorCQkJICAgICBlbnVtIGRwaW9fcGh5 ICpwaHksIGVudW0gZHBpb19jaGFubmVsICpjaCk7CiB2b2lkIGJ4dF9kZGlfcGh5X3NldF9zaWdu YWxfbGV2ZWwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSAgZW51bSBw b3J0IHBvcnQsIHUzMiBtYXJnaW4sIHUzMiBzY2FsZSwKIAkJCQkgIHUzMiBlbmFibGUsIHUzMiBk ZWVtcGhhc2lzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCmluZGV4IDY1NzUzOTAuLmI5NzJkMWEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaApAQCAtMTE4Niw3ICsxMTg2LDE5IEBAIGVudW0gc2ts X2Rpc3BfcG93ZXJfd2VsbHMgewogI2RlZmluZSAgIERQSU9fVVBBUl9TSElGVAkJMzAKIAogLyog QlhUIFBIWSByZWdpc3RlcnMgKi8KLSNkZWZpbmUgX0JYVF9QSFkocGh5LCBhLCBiKQkJX01NSU9f UElQRSgocGh5KSwgKGEpLCAoYikpCisjZGVmaW5lIF9CWFRfUEhZMF9CQVNFCQkJMHg2QzAwMAor I2RlZmluZSBfQlhUX1BIWTFfQkFTRQkJCTB4MTYyMDAwCisjZGVmaW5lIEJYVF9QSFlfQkFTRShw aHkpCQlfUElQRSgocGh5KSwgX0JYVF9QSFkwX0JBU0UsIFwKKwkJCQkJCSAgICAgX0JYVF9QSFkx X0JBU0UpCisKKyNkZWZpbmUgX0JYVF9QSFkocGh5LCByZWcpCQkJCQkJXAorCV9NTUlPKEJYVF9Q SFlfQkFTRShwaHkpIC0gX0JYVF9QSFkwX0JBU0UgKyAocmVnKSkKKworI2RlZmluZSBfQlhUX1BI WV9DSChwaHksIGNoLCByZWdfY2gwLCByZWdfY2gxKQkJXAorCShCWFRfUEhZX0JBU0UocGh5KSAr IF9QSVBFKChjaCksIChyZWdfY2gwKSAtIF9CWFRfUEhZMF9CQVNFLAlcCisJCQkJCSAocmVnX2No MSkgLSBfQlhUX1BIWTBfQkFTRSkpCisjZGVmaW5lIF9NTUlPX0JYVF9QSFlfQ0gocGh5LCBjaCwg cmVnX2NoMCwgcmVnX2NoMSkJCVwKKwlfTU1JTyhfQlhUX1BIWV9DSChwaHksIGNoLCByZWdfY2gw LCByZWdfY2gxKSkKIAogI2RlZmluZSBCWFRfUF9DUl9HVF9ESVNQX1BXUk9OCQlfTU1JTygweDEz ODA5MCkKICNkZWZpbmUgICBHVF9ESVNQTEFZX1BPV0VSX09OKHBoeSkJKDEgPDwgKHBoeSkpCkBA IC0xMjAzLDggKzEyMTUsOCBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKICNkZWZpbmUg X1BIWV9DVExfRkFNSUxZX0VEUAkJMHg2NEM4MAogI2RlZmluZSBfUEhZX0NUTF9GQU1JTFlfRERJ CQkweDY0QzkwCiAjZGVmaW5lICAgQ09NTU9OX1JFU0VUX0RJUwkJKDEgPDwgMzEpCi0jZGVmaW5l IEJYVF9QSFlfQ1RMX0ZBTUlMWShwaHkpCQlfQlhUX1BIWSgocGh5KSwgX1BIWV9DVExfRkFNSUxZ X0RESSwgXAotCQkJCQkJCV9QSFlfQ1RMX0ZBTUlMWV9FRFApCisjZGVmaW5lIEJYVF9QSFlfQ1RM X0ZBTUlMWShwaHkpCQlfTU1JT19QSVBFKChwaHkpLCBfUEhZX0NUTF9GQU1JTFlfRERJLCBcCisJ CQkJCQkJICBfUEhZX0NUTF9GQU1JTFlfRURQKQogCiAvKiBCWFQgUEhZIFBMTCByZWdpc3RlcnMg Ki8KICNkZWZpbmUgX1BPUlRfUExMX0EJCQkweDQ2MDc0CkBAIC0xMjI0LDE4ICsxMjM2LDE4IEBA IGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewogI2RlZmluZSAgIFBPUlRfUExMX1AyX1NISUZU CQk4CiAjZGVmaW5lICAgUE9SVF9QTExfUDJfTUFTSwkJKDB4MWYgPDwgUE9SVF9QTExfUDJfU0hJ RlQpCiAjZGVmaW5lICAgUE9SVF9QTExfUDIoeCkJCSgoeCkgIDw8IFBPUlRfUExMX1AyX1NISUZU KQotI2RlZmluZSBCWFRfUE9SVF9QTExfRUJCXzAocG9ydCkJX01NSU9fUE9SVDMocG9ydCwgX1BP UlRfUExMX0VCQl8wX0EsIFwKLQkJCQkJCV9QT1JUX1BMTF9FQkJfMF9CLAlcCi0JCQkJCQlfUE9S VF9QTExfRUJCXzBfQykKKyNkZWZpbmUgQlhUX1BPUlRfUExMX0VCQl8wKHBoeSwgY2gpCV9NTUlP X0JYVF9QSFlfQ0gocGh5LCBjaCwgXAorCQkJCQkJCSBfUE9SVF9QTExfRUJCXzBfQiwgXAorCQkJ CQkJCSBfUE9SVF9QTExfRUJCXzBfQykKIAogI2RlZmluZSBfUE9SVF9QTExfRUJCXzRfQQkJMHgx NjIwMzgKICNkZWZpbmUgX1BPUlRfUExMX0VCQl80X0IJCTB4NkMwMzgKICNkZWZpbmUgX1BPUlRf UExMX0VCQl80X0MJCTB4NkMzNDQKICNkZWZpbmUgICBQT1JUX1BMTF8xMEJJVF9DTEtfRU5BQkxF CSgxIDw8IDEzKQogI2RlZmluZSAgIFBPUlRfUExMX1JFQ0FMSUJSQVRFCQkoMSA8PCAxNCkKLSNk ZWZpbmUgQlhUX1BPUlRfUExMX0VCQl80KHBvcnQpCV9NTUlPX1BPUlQzKHBvcnQsIF9QT1JUX1BM TF9FQkJfNF9BLCBcCi0JCQkJCQlfUE9SVF9QTExfRUJCXzRfQiwJXAotCQkJCQkJX1BPUlRfUExM X0VCQl80X0MpCisjZGVmaW5lIEJYVF9QT1JUX1BMTF9FQkJfNChwaHksIGNoKQlfTU1JT19CWFRf UEhZX0NIKHBoeSwgY2gsIFwKKwkJCQkJCQkgX1BPUlRfUExMX0VCQl80X0IsIFwKKwkJCQkJCQkg X1BPUlRfUExMX0VCQl80X0MpCiAKICNkZWZpbmUgX1BPUlRfUExMXzBfQQkJCTB4MTYyMTAwCiAj ZGVmaW5lIF9QT1JUX1BMTF8wX0IJCQkweDZDMTAwCkBAIC0xMjY2LDYyICsxMjc4LDU2IEBAIGVu dW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewogI2RlZmluZSAgUE9SVF9QTExfRENPX0FNUF9ERUZB VUxUCTE1CiAjZGVmaW5lICBQT1JUX1BMTF9EQ09fQU1QX01BU0sJCTB4M2MwMAogI2RlZmluZSAg UE9SVF9QTExfRENPX0FNUCh4KQkJKCh4KTw8MTApCi0jZGVmaW5lIF9QT1JUX1BMTF9CQVNFKHBv cnQpCQlfUE9SVDMocG9ydCwgX1BPUlRfUExMXzBfQSwJXAotCQkJCQkJX1BPUlRfUExMXzBfQiwJ CVwKLQkJCQkJCV9QT1JUX1BMTF8wX0MpCi0jZGVmaW5lIEJYVF9QT1JUX1BMTChwb3J0LCBpZHgp CQlfTU1JTyhfUE9SVF9QTExfQkFTRShwb3J0KSArIChpZHgpICogNCkKKyNkZWZpbmUgX1BPUlRf UExMX0JBU0UocGh5LCBjaCkJCV9CWFRfUEhZX0NIKHBoeSwgY2gsIFwKKwkJCQkJCSAgICBfUE9S VF9QTExfMF9CLCBcCisJCQkJCQkgICAgX1BPUlRfUExMXzBfQykKKyNkZWZpbmUgQlhUX1BPUlRf UExMKHBoeSwgY2gsIGlkeCkJX01NSU8oX1BPUlRfUExMX0JBU0UocGh5LCBjaCkgKyBcCisJCQkJ CSAgICAgIChpZHgpICogNCkKIAogLyogQlhUIFBIWSBjb21tb24gbGFuZSByZWdpc3RlcnMgKi8K ICNkZWZpbmUgX1BPUlRfQ0wxQ01fRFcwX0EJCTB4MTYyMDAwCiAjZGVmaW5lIF9QT1JUX0NMMUNN X0RXMF9CQwkJMHg2QzAwMAogI2RlZmluZSAgIFBIWV9QT1dFUl9HT09ECQkoMSA8PCAxNikKICNk ZWZpbmUgICBQSFlfUkVTRVJWRUQJCQkoMSA8PCA3KQotI2RlZmluZSBCWFRfUE9SVF9DTDFDTV9E VzAocGh5KQkJX0JYVF9QSFkoKHBoeSksIF9QT1JUX0NMMUNNX0RXMF9CQywgXAotCQkJCQkJCV9Q T1JUX0NMMUNNX0RXMF9BKQorI2RlZmluZSBCWFRfUE9SVF9DTDFDTV9EVzAocGh5KQkJX0JYVF9Q SFkoKHBoeSksIF9QT1JUX0NMMUNNX0RXMF9CQykKIAogI2RlZmluZSBfUE9SVF9DTDFDTV9EVzlf QQkJMHgxNjIwMjQKICNkZWZpbmUgX1BPUlRfQ0wxQ01fRFc5X0JDCQkweDZDMDI0CiAjZGVmaW5l ICAgSVJFRjBSQ19PRkZTRVRfU0hJRlQJCTgKICNkZWZpbmUgICBJUkVGMFJDX09GRlNFVF9NQVNL CQkoMHhGRiA8PCBJUkVGMFJDX09GRlNFVF9TSElGVCkKLSNkZWZpbmUgQlhUX1BPUlRfQ0wxQ01f RFc5KHBoeSkJCV9CWFRfUEhZKChwaHkpLCBfUE9SVF9DTDFDTV9EVzlfQkMsIFwKLQkJCQkJCQlf UE9SVF9DTDFDTV9EVzlfQSkKKyNkZWZpbmUgQlhUX1BPUlRfQ0wxQ01fRFc5KHBoeSkJCV9CWFRf UEhZKChwaHkpLCBfUE9SVF9DTDFDTV9EVzlfQkMpCiAKICNkZWZpbmUgX1BPUlRfQ0wxQ01fRFcx MF9BCQkweDE2MjAyOAogI2RlZmluZSBfUE9SVF9DTDFDTV9EVzEwX0JDCQkweDZDMDI4CiAjZGVm aW5lICAgSVJFRjFSQ19PRkZTRVRfU0hJRlQJCTgKICNkZWZpbmUgICBJUkVGMVJDX09GRlNFVF9N QVNLCQkoMHhGRiA8PCBJUkVGMVJDX09GRlNFVF9TSElGVCkKLSNkZWZpbmUgQlhUX1BPUlRfQ0wx Q01fRFcxMChwaHkpCV9CWFRfUEhZKChwaHkpLCBfUE9SVF9DTDFDTV9EVzEwX0JDLCBcCi0JCQkJ CQkJX1BPUlRfQ0wxQ01fRFcxMF9BKQorI2RlZmluZSBCWFRfUE9SVF9DTDFDTV9EVzEwKHBoeSkJ X0JYVF9QSFkoKHBoeSksIF9QT1JUX0NMMUNNX0RXMTBfQkMpCiAKICNkZWZpbmUgX1BPUlRfQ0wx Q01fRFcyOF9BCQkweDE2MjA3MAogI2RlZmluZSBfUE9SVF9DTDFDTV9EVzI4X0JDCQkweDZDMDcw CiAjZGVmaW5lICAgT0NMMV9QT1dFUl9ET1dOX0VOCQkoMSA8PCAyMykKICNkZWZpbmUgICBEVzI4 X09MRE9fRFlOX1BXUl9ET1dOX0VOCSgxIDw8IDIyKQogI2RlZmluZSAgIFNVU19DTEtfQ09ORklH CQkweDMKLSNkZWZpbmUgQlhUX1BPUlRfQ0wxQ01fRFcyOChwaHkpCV9CWFRfUEhZKChwaHkpLCBf UE9SVF9DTDFDTV9EVzI4X0JDLCBcCi0JCQkJCQkJX1BPUlRfQ0wxQ01fRFcyOF9BKQorI2RlZmlu ZSBCWFRfUE9SVF9DTDFDTV9EVzI4KHBoeSkJX0JYVF9QSFkoKHBoeSksIF9QT1JUX0NMMUNNX0RX MjhfQkMpCiAKICNkZWZpbmUgX1BPUlRfQ0wxQ01fRFczMF9BCQkweDE2MjA3OAogI2RlZmluZSBf UE9SVF9DTDFDTV9EVzMwX0JDCQkweDZDMDc4CiAjZGVmaW5lICAgT0NMMl9MRE9GVVNFX1BXUl9E SVMJCSgxIDw8IDYpCi0jZGVmaW5lIEJYVF9QT1JUX0NMMUNNX0RXMzAocGh5KQlfQlhUX1BIWSgo cGh5KSwgX1BPUlRfQ0wxQ01fRFczMF9CQywgXAotCQkJCQkJCV9QT1JUX0NMMUNNX0RXMzBfQSkK KyNkZWZpbmUgQlhUX1BPUlRfQ0wxQ01fRFczMChwaHkpCV9CWFRfUEhZKChwaHkpLCBfUE9SVF9D TDFDTV9EVzMwX0JDKQogCiAvKiBUaGUgc3BlYyBkZWZpbmVzIHRoaXMgb25seSBmb3IgQlhUIFBI WTAsIGJ1dCBsZXRzIGFzc3VtZSB0aGF0IHRoaXMKICAqIHdvdWxkIGV4aXN0IGZvciBQSFkxIHRv byBpZiBpdCBoYWQgYSBzZWNvbmQgY2hhbm5lbC4KICAqLwogI2RlZmluZSBfUE9SVF9DTDJDTV9E VzZfQQkJMHgxNjIzNTgKICNkZWZpbmUgX1BPUlRfQ0wyQ01fRFc2X0JDCQkweDZDMzU4Ci0jZGVm aW5lIEJYVF9QT1JUX0NMMkNNX0RXNihwaHkpCQlfQlhUX1BIWSgocGh5KSwgX1BPUlRfQ0wyQ01f RFc2X0JDLCBcCi0JCQkJCQkJX1BPUlRfQ0wyQ01fRFc2X0EpCisjZGVmaW5lIEJYVF9QT1JUX0NM MkNNX0RXNihwaHkpCQlfQlhUX1BIWSgocGh5KSwgX1BPUlRfQ0wyQ01fRFc2X0JDKQogI2RlZmlu ZSAgIERXNl9PTERPX0RZTl9QV1JfRE9XTl9FTgkoMSA8PCAyOCkKIAogLyogQlhUIFBIWSBSZWYg cmVnaXN0ZXJzICovCiAjZGVmaW5lIF9QT1JUX1JFRl9EVzNfQQkJCTB4MTYyMThDCiAjZGVmaW5l IF9QT1JUX1JFRl9EVzNfQkMJCTB4NkMxOEMKICNkZWZpbmUgICBHUkNfRE9ORQkJCSgxIDw8IDIy KQotI2RlZmluZSBCWFRfUE9SVF9SRUZfRFczKHBoeSkJCV9CWFRfUEhZKChwaHkpLCBfUE9SVF9S RUZfRFczX0JDLCBcCi0JCQkJCQkJX1BPUlRfUkVGX0RXM19BKQorI2RlZmluZSBCWFRfUE9SVF9S RUZfRFczKHBoeSkJCV9CWFRfUEhZKChwaHkpLCBfUE9SVF9SRUZfRFczX0JDKQogCiAjZGVmaW5l IF9QT1JUX1JFRl9EVzZfQQkJCTB4MTYyMTk4CiAjZGVmaW5lIF9QT1JUX1JFRl9EVzZfQkMJCTB4 NkMxOTgKQEAgLTEzMzIsMTUgKzEzMzgsMTMgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7 CiAjZGVmaW5lICAgR1JDX0NPREVfU0xPV19TSElGVAkJOAogI2RlZmluZSAgIEdSQ19DT0RFX1NM T1dfTUFTSwkJKDB4RkYgPDwgR1JDX0NPREVfU0xPV19TSElGVCkKICNkZWZpbmUgICBHUkNfQ09E RV9OT01fTUFTSwkJMHhGRgotI2RlZmluZSBCWFRfUE9SVF9SRUZfRFc2KHBoeSkJCV9CWFRfUEhZ KChwaHkpLCBfUE9SVF9SRUZfRFc2X0JDLAlcCi0JCQkJCQkgICAgICBfUE9SVF9SRUZfRFc2X0Ep CisjZGVmaW5lIEJYVF9QT1JUX1JFRl9EVzYocGh5KQkJX0JYVF9QSFkoKHBoeSksIF9QT1JUX1JF Rl9EVzZfQkMpCiAKICNkZWZpbmUgX1BPUlRfUkVGX0RXOF9BCQkJMHgxNjIxQTAKICNkZWZpbmUg X1BPUlRfUkVGX0RXOF9CQwkJMHg2QzFBMAogI2RlZmluZSAgIEdSQ19ESVMJCQkoMSA8PCAxNSkK ICNkZWZpbmUgICBHUkNfUkRZX09WUkQJCQkoMSA8PCAxKQotI2RlZmluZSBCWFRfUE9SVF9SRUZf RFc4KHBoeSkJCV9CWFRfUEhZKChwaHkpLCBfUE9SVF9SRUZfRFc4X0JDLAlcCi0JCQkJCQkgICAg ICBfUE9SVF9SRUZfRFc4X0EpCisjZGVmaW5lIEJYVF9QT1JUX1JFRl9EVzgocGh5KQkJX0JYVF9Q SFkoKHBoeSksIF9QT1JUX1JFRl9EVzhfQkMpCiAKIC8qIEJYVCBQSFkgUENTIHJlZ2lzdGVycyAq LwogI2RlZmluZSBfUE9SVF9QQ1NfRFcxMF9MTjAxX0EJCTB4MTYyNDI4CkBAIC0xMzQ5LDEyICsx MzUzLDEzIEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewogI2RlZmluZSBfUE9SVF9QQ1Nf RFcxMF9HUlBfQQkJMHgxNjJDMjgKICNkZWZpbmUgX1BPUlRfUENTX0RXMTBfR1JQX0IJCTB4NkND MjgKICNkZWZpbmUgX1BPUlRfUENTX0RXMTBfR1JQX0MJCTB4NkNFMjgKLSNkZWZpbmUgQlhUX1BP UlRfUENTX0RXMTBfTE4wMShwb3J0KQlfTU1JT19QT1JUMyhwb3J0LCBfUE9SVF9QQ1NfRFcxMF9M TjAxX0EsIFwKLQkJCQkJCSAgICAgX1BPUlRfUENTX0RXMTBfTE4wMV9CLCBcCi0JCQkJCQkgICAg IF9QT1JUX1BDU19EVzEwX0xOMDFfQykKLSNkZWZpbmUgQlhUX1BPUlRfUENTX0RXMTBfR1JQKHBv cnQpCV9NTUlPX1BPUlQzKHBvcnQsIF9QT1JUX1BDU19EVzEwX0dSUF9BLCAgXAotCQkJCQkJICAg ICBfUE9SVF9QQ1NfRFcxMF9HUlBfQiwgIFwKLQkJCQkJCSAgICAgX1BPUlRfUENTX0RXMTBfR1JQ X0MpCisjZGVmaW5lIEJYVF9QT1JUX1BDU19EVzEwX0xOMDEocGh5LCBjaCkJX01NSU9fQlhUX1BI WV9DSChwaHksIGNoLCBcCisJCQkJCQkJIF9QT1JUX1BDU19EVzEwX0xOMDFfQiwgXAorCQkJCQkJ CSBfUE9SVF9QQ1NfRFcxMF9MTjAxX0MpCisjZGVmaW5lIEJYVF9QT1JUX1BDU19EVzEwX0dSUChw aHksIGNoKQlfTU1JT19CWFRfUEhZX0NIKHBoeSwgY2gsIFwKKwkJCQkJCQkgX1BPUlRfUENTX0RX MTBfR1JQX0IsIFwKKwkJCQkJCQkgX1BPUlRfUENTX0RXMTBfR1JQX0MpCisKICNkZWZpbmUgICBU WDJfU1dJTkdfQ0FMQ19JTklUCQkoMSA8PCAzMSkKICNkZWZpbmUgICBUWDFfU1dJTkdfQ0FMQ19J TklUCQkoMSA8PCAzMCkKIApAQCAtMTM2OSwxNSArMTM3NCwxNSBAQCBlbnVtIHNrbF9kaXNwX3Bv d2VyX3dlbGxzIHsKICNkZWZpbmUgX1BPUlRfUENTX0RXMTJfR1JQX0MJCTB4NkNFMzAKICNkZWZp bmUgICBMQU5FU1RBR0dFUl9TVFJBUF9PVlJECSgxIDw8IDYpCiAjZGVmaW5lICAgTEFORV9TVEFH R0VSX01BU0sJCTB4MUYKLSNkZWZpbmUgQlhUX1BPUlRfUENTX0RXMTJfTE4wMShwb3J0KQlfTU1J T19QT1JUMyhwb3J0LCBfUE9SVF9QQ1NfRFcxMl9MTjAxX0EsIFwKLQkJCQkJCSAgICAgX1BPUlRf UENTX0RXMTJfTE4wMV9CLCBcCi0JCQkJCQkgICAgIF9QT1JUX1BDU19EVzEyX0xOMDFfQykKLSNk ZWZpbmUgQlhUX1BPUlRfUENTX0RXMTJfTE4yMyhwb3J0KQlfTU1JT19QT1JUMyhwb3J0LCBfUE9S VF9QQ1NfRFcxMl9MTjIzX0EsIFwKLQkJCQkJCSAgICAgX1BPUlRfUENTX0RXMTJfTE4yM19CLCBc Ci0JCQkJCQkgICAgIF9QT1JUX1BDU19EVzEyX0xOMjNfQykKLSNkZWZpbmUgQlhUX1BPUlRfUENT X0RXMTJfR1JQKHBvcnQpCV9NTUlPX1BPUlQzKHBvcnQsIF9QT1JUX1BDU19EVzEyX0dSUF9BLCBc Ci0JCQkJCQkgICAgIF9QT1JUX1BDU19EVzEyX0dSUF9CLCBcCi0JCQkJCQkgICAgIF9QT1JUX1BD U19EVzEyX0dSUF9DKQorI2RlZmluZSBCWFRfUE9SVF9QQ1NfRFcxMl9MTjAxKHBoeSwgY2gpCV9N TUlPX0JYVF9QSFlfQ0gocGh5LCBjaCwgXAorCQkJCQkJCSBfUE9SVF9QQ1NfRFcxMl9MTjAxX0Is IFwKKwkJCQkJCQkgX1BPUlRfUENTX0RXMTJfTE4wMV9DKQorI2RlZmluZSBCWFRfUE9SVF9QQ1Nf RFcxMl9MTjIzKHBoeSwgY2gpCV9NTUlPX0JYVF9QSFlfQ0gocGh5LCBjaCwgXAorCQkJCQkJCSBf UE9SVF9QQ1NfRFcxMl9MTjIzX0IsIFwKKwkJCQkJCQkgX1BPUlRfUENTX0RXMTJfTE4yM19DKQor I2RlZmluZSBCWFRfUE9SVF9QQ1NfRFcxMl9HUlAocGh5LCBjaCkJX01NSU9fQlhUX1BIWV9DSChw aHksIGNoLCBcCisJCQkJCQkJIF9QT1JUX1BDU19EVzEyX0dSUF9CLCBcCisJCQkJCQkJIF9QT1JU X1BDU19EVzEyX0dSUF9DKQogCiAvKiBCWFQgUEhZIFRYIHJlZ2lzdGVycyAqLwogI2RlZmluZSBf QlhUX0xBTkVfT0ZGU0VUKGxhbmUpICAgICAgICAgICAoKChsYW5lKSA+PiAxKSAqIDB4MjAwICsJ XApAQCAtMTM4OSwxMiArMTM5NCwxMiBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKICNk ZWZpbmUgX1BPUlRfVFhfRFcyX0dSUF9BCQkweDE2MkQwOAogI2RlZmluZSBfUE9SVF9UWF9EVzJf R1JQX0IJCTB4NkNEMDgKICNkZWZpbmUgX1BPUlRfVFhfRFcyX0dSUF9DCQkweDZDRjA4Ci0jZGVm aW5lIEJYVF9QT1JUX1RYX0RXMl9HUlAocG9ydCkJX01NSU9fUE9SVDMocG9ydCwgX1BPUlRfVFhf RFcyX0dSUF9BLCAgXAotCQkJCQkJICAgICBfUE9SVF9UWF9EVzJfR1JQX0IsICBcCi0JCQkJCQkg ICAgIF9QT1JUX1RYX0RXMl9HUlBfQykKLSNkZWZpbmUgQlhUX1BPUlRfVFhfRFcyX0xOMChwb3J0 KQlfTU1JT19QT1JUMyhwb3J0LCBfUE9SVF9UWF9EVzJfTE4wX0EsICBcCi0JCQkJCQkgICAgIF9Q T1JUX1RYX0RXMl9MTjBfQiwgIFwKLQkJCQkJCSAgICAgX1BPUlRfVFhfRFcyX0xOMF9DKQorI2Rl ZmluZSBCWFRfUE9SVF9UWF9EVzJfTE4wKHBoeSwgY2gpCV9NTUlPX0JYVF9QSFlfQ0gocGh5LCBj aCwgXAorCQkJCQkJCSBfUE9SVF9UWF9EVzJfTE4wX0IsIFwKKwkJCQkJCQkgX1BPUlRfVFhfRFcy X0xOMF9DKQorI2RlZmluZSBCWFRfUE9SVF9UWF9EVzJfR1JQKHBoeSwgY2gpCV9NTUlPX0JYVF9Q SFlfQ0gocGh5LCBjaCwgXAorCQkJCQkJCSBfUE9SVF9UWF9EVzJfR1JQX0IsIFwKKwkJCQkJCQkg X1BPUlRfVFhfRFcyX0dSUF9DKQogI2RlZmluZSAgIE1BUkdJTl8wMDBfU0hJRlQJCTE2CiAjZGVm aW5lICAgTUFSR0lOXzAwMAkJCSgweEZGIDw8IE1BUkdJTl8wMDBfU0hJRlQpCiAjZGVmaW5lICAg VU5JUV9UUkFOU19TQ0FMRV9TSElGVAk4CkBAIC0xNDA2LDEyICsxNDExLDEyIEBAIGVudW0gc2ts X2Rpc3BfcG93ZXJfd2VsbHMgewogI2RlZmluZSBfUE9SVF9UWF9EVzNfR1JQX0EJCTB4MTYyRDBD CiAjZGVmaW5lIF9QT1JUX1RYX0RXM19HUlBfQgkJMHg2Q0QwQwogI2RlZmluZSBfUE9SVF9UWF9E VzNfR1JQX0MJCTB4NkNGMEMKLSNkZWZpbmUgQlhUX1BPUlRfVFhfRFczX0dSUChwb3J0KQlfTU1J T19QT1JUMyhwb3J0LCBfUE9SVF9UWF9EVzNfR1JQX0EsICBcCi0JCQkJCQkgICAgIF9QT1JUX1RY X0RXM19HUlBfQiwgIFwKLQkJCQkJCSAgICAgX1BPUlRfVFhfRFczX0dSUF9DKQotI2RlZmluZSBC WFRfUE9SVF9UWF9EVzNfTE4wKHBvcnQpCV9NTUlPX1BPUlQzKHBvcnQsIF9QT1JUX1RYX0RXM19M TjBfQSwgIFwKLQkJCQkJCSAgICAgX1BPUlRfVFhfRFczX0xOMF9CLCAgXAotCQkJCQkJICAgICBf UE9SVF9UWF9EVzNfTE4wX0MpCisjZGVmaW5lIEJYVF9QT1JUX1RYX0RXM19MTjAocGh5LCBjaCkJ X01NSU9fQlhUX1BIWV9DSChwaHksIGNoLCBcCisJCQkJCQkJIF9QT1JUX1RYX0RXM19MTjBfQiwg XAorCQkJCQkJCSBfUE9SVF9UWF9EVzNfTE4wX0MpCisjZGVmaW5lIEJYVF9QT1JUX1RYX0RXM19H UlAocGh5LCBjaCkJX01NSU9fQlhUX1BIWV9DSChwaHksIGNoLCBcCisJCQkJCQkJIF9QT1JUX1RY X0RXM19HUlBfQiwgXAorCQkJCQkJCSBfUE9SVF9UWF9EVzNfR1JQX0MpCiAjZGVmaW5lICAgU0NB TEVfRENPTVBfTUVUSE9ECQkoMSA8PCAyNikKICNkZWZpbmUgICBVTklRVUVfVFJBTkdFX0VOX01F VEhPRAkoMSA8PCAyNykKIApAQCAtMTQyMSwxMiArMTQyNiwxMiBAQCBlbnVtIHNrbF9kaXNwX3Bv d2VyX3dlbGxzIHsKICNkZWZpbmUgX1BPUlRfVFhfRFc0X0dSUF9BCQkweDE2MkQxMAogI2RlZmlu ZSBfUE9SVF9UWF9EVzRfR1JQX0IJCTB4NkNEMTAKICNkZWZpbmUgX1BPUlRfVFhfRFc0X0dSUF9D CQkweDZDRjEwCi0jZGVmaW5lIEJYVF9QT1JUX1RYX0RXNF9MTjAocG9ydCkJX01NSU9fUE9SVDMo cG9ydCwgX1BPUlRfVFhfRFc0X0xOMF9BLCAgXAotCQkJCQkJICAgICBfUE9SVF9UWF9EVzRfTE4w X0IsICBcCi0JCQkJCQkgICAgIF9QT1JUX1RYX0RXNF9MTjBfQykKLSNkZWZpbmUgQlhUX1BPUlRf VFhfRFc0X0dSUChwb3J0KQlfTU1JT19QT1JUMyhwb3J0LCBfUE9SVF9UWF9EVzRfR1JQX0EsICBc Ci0JCQkJCQkgICAgIF9QT1JUX1RYX0RXNF9HUlBfQiwgIFwKLQkJCQkJCSAgICAgX1BPUlRfVFhf RFc0X0dSUF9DKQorI2RlZmluZSBCWFRfUE9SVF9UWF9EVzRfTE4wKHBoeSwgY2gpCV9NTUlPX0JY VF9QSFlfQ0gocGh5LCBjaCwgXAorCQkJCQkJCSBfUE9SVF9UWF9EVzRfTE4wX0IsIFwKKwkJCQkJ CQkgX1BPUlRfVFhfRFc0X0xOMF9DKQorI2RlZmluZSBCWFRfUE9SVF9UWF9EVzRfR1JQKHBoeSwg Y2gpCV9NTUlPX0JYVF9QSFlfQ0gocGh5LCBjaCwgXAorCQkJCQkJCSBfUE9SVF9UWF9EVzRfR1JQ X0IsIFwKKwkJCQkJCQkgX1BPUlRfVFhfRFc0X0dSUF9DKQogI2RlZmluZSAgIERFRU1QSF9TSElG VAkJCTI0CiAjZGVmaW5lICAgREVfRU1QSEFTSVMJCQkoMHhGRiA8PCBERUVNUEhfU0hJRlQpCiAK QEAgLTE0MzUsMTAgKzE0NDAsMTAgQEAgZW51bSBza2xfZGlzcF9wb3dlcl93ZWxscyB7CiAjZGVm aW5lIF9QT1JUX1RYX0RXMTRfTE4wX0MJCTB4NkM5MzgKICNkZWZpbmUgICBMQVRFTkNZX09QVElN X1NISUZUCQkzMAogI2RlZmluZSAgIExBVEVOQ1lfT1BUSU0JCQkoMSA8PCBMQVRFTkNZX09QVElN X1NISUZUKQotI2RlZmluZSBCWFRfUE9SVF9UWF9EVzE0X0xOKHBvcnQsIGxhbmUpCV9NTUlPKF9Q T1JUMygocG9ydCksIF9QT1JUX1RYX0RXMTRfTE4wX0EsICAgXAotCQkJCQkJCV9QT1JUX1RYX0RX MTRfTE4wX0IsICAgXAotCQkJCQkJCV9QT1JUX1RYX0RXMTRfTE4wX0MpICsgXAotCQkJCQkgX0JY VF9MQU5FX09GRlNFVChsYW5lKSkKKyNkZWZpbmUgQlhUX1BPUlRfVFhfRFcxNF9MTihwaHksIGNo LCBsYW5lKQkJCQlcCisJX01NSU8oX0JYVF9QSFlfQ0gocGh5LCBjaCwgX1BPUlRfVFhfRFcxNF9M TjBfQiwJCQlcCisJCQkJICAgX1BPUlRfVFhfRFcxNF9MTjBfQykgKwkJXAorCSAgICAgIF9CWFRf TEFORV9PRkZTRVQobGFuZSkpCiAKIC8qIFVBSU1JIHNjcmF0Y2ggcGFkIHJlZ2lzdGVyIDEgKi8K ICNkZWZpbmUgVUFJTUlfU1BSMQkJCV9NTUlPKDB4NEYwNzQpCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcGlvX3BoeS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHBpb19waHkuYwppbmRleCA2NzExZTNhLi40YTYxNjRhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcGlvX3BoeS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwaW9fcGh5LmMKQEAgLTE2NywyNiArMTY3LDU4IEBAIHN0YXRpYyB1MzIgYnh0X3Bo eV9wb3J0X21hc2soY29uc3Qgc3RydWN0IGJ4dF9kZGlfcGh5X2luZm8gKnBoeV9pbmZvKQogCQlC SVQocGh5X2luZm8tPmNoYW5uZWxbRFBJT19DSDBdLnBvcnQpOwogfQogCit2b2lkIGJ4dF9wb3J0 X3RvX3BoeV9jaGFubmVsKGVudW0gcG9ydCBwb3J0LAorCQkJICAgICBlbnVtIGRwaW9fcGh5ICpw aHksIGVudW0gZHBpb19jaGFubmVsICpjaCkKK3sKKwljb25zdCBzdHJ1Y3QgYnh0X2RkaV9waHlf aW5mbyAqcGh5X2luZm87CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShi eHRfZGRpX3BoeV9pbmZvKTsgaSsrKSB7CisJCXBoeV9pbmZvID0gJmJ4dF9kZGlfcGh5X2luZm9b aV07CisKKwkJaWYgKHBvcnQgPT0gcGh5X2luZm8tPmNoYW5uZWxbRFBJT19DSDBdLnBvcnQpIHsK KwkJCSpwaHkgPSBpOworCQkJKmNoID0gRFBJT19DSDA7CisJCQlyZXR1cm47CisJCX0KKworCQlp ZiAocGh5X2luZm8tPmR1YWxfY2hhbm5lbCAmJgorCQkgICAgcG9ydCA9PSBwaHlfaW5mby0+Y2hh bm5lbFtEUElPX0NIMV0ucG9ydCkgeworCQkJKnBoeSA9IGk7CisJCQkqY2ggPSBEUElPX0NIMTsK KwkJCXJldHVybjsKKwkJfQorCX0KKworCVdBUk4oMSwgIlBIWSBub3QgZm91bmQgZm9yIFBPUlQg JWMiLCBwb3J0X25hbWUocG9ydCkpOworCSpwaHkgPSBEUElPX1BIWTA7CisJKmNoID0gRFBJT19D SDA7Cit9CisKIHZvaWQgYnh0X2RkaV9waHlfc2V0X3NpZ25hbF9sZXZlbChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICBlbnVtIHBvcnQgcG9ydCwgdTMyIG1hcmdpbiwg dTMyIHNjYWxlLAogCQkJCSAgdTMyIGVuYWJsZSwgdTMyIGRlZW1waGFzaXMpCiB7CiAJdTMyIHZh bDsKKwllbnVtIGRwaW9fcGh5IHBoeTsKKwllbnVtIGRwaW9fY2hhbm5lbCBjaDsKKworCWJ4dF9w b3J0X3RvX3BoeV9jaGFubmVsKHBvcnQsICZwaHksICZjaCk7CiAKIAkvKgogCSAqIFdoaWxlIHdl IHdyaXRlIHRvIHRoZSBncm91cCByZWdpc3RlciB0byBwcm9ncmFtIGFsbCBsYW5lcyBhdCBvbmNl IHdlCiAJICogY2FuIHJlYWQgb25seSBsYW5lIHJlZ2lzdGVycyBhbmQgd2UgcGljayBsYW5lcyAw LzEgZm9yIHRoYXQuCiAJICovCi0JdmFsID0gSTkxNV9SRUFEKEJYVF9QT1JUX1BDU19EVzEwX0xO MDEocG9ydCkpOworCXZhbCA9IEk5MTVfUkVBRChCWFRfUE9SVF9QQ1NfRFcxMF9MTjAxKHBoeSwg Y2gpKTsKIAl2YWwgJj0gfihUWDJfU1dJTkdfQ0FMQ19JTklUIHwgVFgxX1NXSU5HX0NBTENfSU5J VCk7Ci0JSTkxNV9XUklURShCWFRfUE9SVF9QQ1NfRFcxMF9HUlAocG9ydCksIHZhbCk7CisJSTkx NV9XUklURShCWFRfUE9SVF9QQ1NfRFcxMF9HUlAocGh5LCBjaCksIHZhbCk7CiAKLQl2YWwgPSBJ OTE1X1JFQUQoQlhUX1BPUlRfVFhfRFcyX0xOMChwb3J0KSk7CisJdmFsID0gSTkxNV9SRUFEKEJY VF9QT1JUX1RYX0RXMl9MTjAocGh5LCBjaCkpOwogCXZhbCAmPSB+KE1BUkdJTl8wMDAgfCBVTklR X1RSQU5TX1NDQUxFKTsKIAl2YWwgfD0gbWFyZ2luIDw8IE1BUkdJTl8wMDBfU0hJRlQgfCBzY2Fs ZSA8PCBVTklRX1RSQU5TX1NDQUxFX1NISUZUOwotCUk5MTVfV1JJVEUoQlhUX1BPUlRfVFhfRFcy X0dSUChwb3J0KSwgdmFsKTsKKwlJOTE1X1dSSVRFKEJYVF9QT1JUX1RYX0RXMl9HUlAocGh5LCBj aCksIHZhbCk7CiAKLQl2YWwgPSBJOTE1X1JFQUQoQlhUX1BPUlRfVFhfRFczX0xOMChwb3J0KSk7 CisJdmFsID0gSTkxNV9SRUFEKEJYVF9QT1JUX1RYX0RXM19MTjAocGh5LCBjaCkpOwogCXZhbCAm PSB+U0NBTEVfRENPTVBfTUVUSE9EOwogCWlmIChlbmFibGUpCiAJCXZhbCB8PSBTQ0FMRV9EQ09N UF9NRVRIT0Q7CkBAIC0xOTQsMTYgKzIyNiwxNiBAQCB2b2lkIGJ4dF9kZGlfcGh5X3NldF9zaWdu YWxfbGV2ZWwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlmICgodmFsICYg VU5JUVVFX1RSQU5HRV9FTl9NRVRIT0QpICYmICEodmFsICYgU0NBTEVfRENPTVBfTUVUSE9EKSkK IAkJRFJNX0VSUk9SKCJEaXNhYmxlZCBzY2FsaW5nIHdoaWxlIG91bmlxZXRyYW5nZW5tZXRob2Qg d2FzIHNldCIpOwogCi0JSTkxNV9XUklURShCWFRfUE9SVF9UWF9EVzNfR1JQKHBvcnQpLCB2YWwp OworCUk5MTVfV1JJVEUoQlhUX1BPUlRfVFhfRFczX0dSUChwaHksIGNoKSwgdmFsKTsKIAotCXZh bCA9IEk5MTVfUkVBRChCWFRfUE9SVF9UWF9EVzRfTE4wKHBvcnQpKTsKKwl2YWwgPSBJOTE1X1JF QUQoQlhUX1BPUlRfVFhfRFc0X0xOMChwaHksIGNoKSk7CiAJdmFsICY9IH5ERV9FTVBIQVNJUzsK IAl2YWwgfD0gZGVlbXBoYXNpcyA8PCBERUVNUEhfU0hJRlQ7Ci0JSTkxNV9XUklURShCWFRfUE9S VF9UWF9EVzRfR1JQKHBvcnQpLCB2YWwpOworCUk5MTVfV1JJVEUoQlhUX1BPUlRfVFhfRFc0X0dS UChwaHksIGNoKSwgdmFsKTsKIAotCXZhbCA9IEk5MTVfUkVBRChCWFRfUE9SVF9QQ1NfRFcxMF9M TjAxKHBvcnQpKTsKKwl2YWwgPSBJOTE1X1JFQUQoQlhUX1BPUlRfUENTX0RXMTBfTE4wMShwaHks IGNoKSk7CiAJdmFsIHw9IFRYMl9TV0lOR19DQUxDX0lOSVQgfCBUWDFfU1dJTkdfQ0FMQ19JTklU OwotCUk5MTVfV1JJVEUoQlhUX1BPUlRfUENTX0RXMTBfR1JQKHBvcnQpLCB2YWwpOworCUk5MTVf V1JJVEUoQlhUX1BPUlRfUENTX0RXMTBfR1JQKHBoeSwgY2gpLCB2YWwpOwogfQogCiBib29sIGJ4 dF9kZGlfcGh5X2lzX2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApA QCAtNDkwLDcgKzUyMiw3IEBAIGJvb2wgYnh0X2RkaV9waHlfdmVyaWZ5X3N0YXRlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJbWFzayA9IEdSQ19DT0RFX0ZBU1RfTUFTSyB8 IEdSQ19DT0RFX1NMT1dfTUFTSyB8CiAJCSAgICAgICBHUkNfQ09ERV9OT01fTUFTSzsKIAkJb2sg Jj0gX0NISyhCWFRfUE9SVF9SRUZfRFc2KHBoeSksIG1hc2ssIGdyY19jb2RlLAotCQkJICAgICJC WFRfUE9SVF9SRUZfRFc2KCVkKSIsIHBoeSk7CisJCQkgICAiQlhUX1BPUlRfUkVGX0RXNiglZCki LCBwaHkpOwogCiAJCW1hc2sgPSBHUkNfRElTIHwgR1JDX1JEWV9PVlJEOwogCQlvayAmPSBfQ0hL KEJYVF9QT1JUX1JFRl9EVzgocGh5KSwgbWFzaywgbWFzaywKQEAgLTUyNSwxMCArNTU3LDE0IEBA IHZvaWQgYnh0X2RkaV9waHlfc2V0X2xhbmVfb3B0aW1fbWFzayhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGVuY190b19k aWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShkcG9ydC0+YmFzZS5iYXNlLmRldik7CiAJZW51bSBwb3J0IHBvcnQgPSBk cG9ydC0+cG9ydDsKKwllbnVtIGRwaW9fcGh5IHBoeTsKKwllbnVtIGRwaW9fY2hhbm5lbCBjaDsK IAlpbnQgbGFuZTsKIAorCWJ4dF9wb3J0X3RvX3BoeV9jaGFubmVsKHBvcnQsICZwaHksICZjaCk7 CisKIAlmb3IgKGxhbmUgPSAwOyBsYW5lIDwgNDsgbGFuZSsrKSB7Ci0JCXUzMiB2YWwgPSBJOTE1 X1JFQUQoQlhUX1BPUlRfVFhfRFcxNF9MTihwb3J0LCBsYW5lKSk7CisJCXUzMiB2YWwgPSBJOTE1 X1JFQUQoQlhUX1BPUlRfVFhfRFcxNF9MTihwaHksIGNoLCBsYW5lKSk7CiAKIAkJLyoKIAkJICog Tm90ZSB0aGF0IG9uIENIViB0aGlzIGZsYWcgaXMgY2FsbGVkIFVQQVIsIGJ1dCBoYXMKQEAgLTUz OCw3ICs1NzQsNyBAQCB2b2lkIGJ4dF9kZGlfcGh5X3NldF9sYW5lX29wdGltX21hc2soc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCWlmIChsYW5lX2xhdF9vcHRpbV9tYXNrICYgQklU KGxhbmUpKQogCQkJdmFsIHw9IExBVEVOQ1lfT1BUSU07CiAKLQkJSTkxNV9XUklURShCWFRfUE9S VF9UWF9EVzE0X0xOKHBvcnQsIGxhbmUpLCB2YWwpOworCQlJOTE1X1dSSVRFKEJYVF9QT1JUX1RY X0RXMTRfTE4ocGh5LCBjaCwgbGFuZSksIHZhbCk7CiAJfQogfQogCkBAIC01NDgsMTIgKzU4NCwx NiBAQCBieHRfZGRpX3BoeV9nZXRfbGFuZV9sYXRfb3B0aW1fbWFzayhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcikKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGVuY190 b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShkcG9ydC0+YmFzZS5iYXNlLmRldik7CiAJZW51bSBwb3J0IHBvcnQg PSBkcG9ydC0+cG9ydDsKKwllbnVtIGRwaW9fcGh5IHBoeTsKKwllbnVtIGRwaW9fY2hhbm5lbCBj aDsKIAlpbnQgbGFuZTsKIAl1aW50OF90IG1hc2s7CiAKKwlieHRfcG9ydF90b19waHlfY2hhbm5l bChwb3J0LCAmcGh5LCAmY2gpOworCiAJbWFzayA9IDA7CiAJZm9yIChsYW5lID0gMDsgbGFuZSA8 IDQ7IGxhbmUrKykgewotCQl1MzIgdmFsID0gSTkxNV9SRUFEKEJYVF9QT1JUX1RYX0RXMTRfTE4o cG9ydCwgbGFuZSkpOworCQl1MzIgdmFsID0gSTkxNV9SRUFEKEJYVF9QT1JUX1RYX0RXMTRfTE4o cGh5LCBjaCwgbGFuZSkpOwogCiAJCWlmICh2YWwgJiBMQVRFTkNZX09QVElNKQogCQkJbWFzayB8 PSBCSVQobGFuZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxs X21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwppbmRleCA2MDVk MGI1Li4yMTg1M2ExIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxs X21nci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKQEAgLTEz NzEsNiArMTM3MSwxMCBAQCBzdGF0aWMgdm9pZCBieHRfZGRpX3BsbF9lbmFibGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogewogCXVpbnQzMl90IHRlbXA7CiAJZW51bSBwb3J0 IHBvcnQgPSAoZW51bSBwb3J0KXBsbC0+aWQ7CS8qIDE6MSBwb3J0LT5QTEwgbWFwcGluZyAqLwor CWVudW0gZHBpb19waHkgcGh5OworCWVudW0gZHBpb19jaGFubmVsIGNoOworCisJYnh0X3BvcnRf dG9fcGh5X2NoYW5uZWwocG9ydCwgJnBoeSwgJmNoKTsKIAogCS8qIE5vbi1TU0MgcmVmZXJlbmNl ICovCiAJdGVtcCA9IEk5MTVfUkVBRChCWFRfUE9SVF9QTExfRU5BQkxFKHBvcnQpKTsKQEAgLTEz NzgsNzIgKzEzODIsNzIgQEAgc3RhdGljIHZvaWQgYnh0X2RkaV9wbGxfZW5hYmxlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlJOTE1X1dSSVRFKEJYVF9QT1JUX1BMTF9FTkFC TEUocG9ydCksIHRlbXApOwogCiAJLyogRGlzYWJsZSAxMCBiaXQgY2xvY2sgKi8KLQl0ZW1wID0g STkxNV9SRUFEKEJYVF9QT1JUX1BMTF9FQkJfNChwb3J0KSk7CisJdGVtcCA9IEk5MTVfUkVBRChC WFRfUE9SVF9QTExfRUJCXzQocGh5LCBjaCkpOwogCXRlbXAgJj0gflBPUlRfUExMXzEwQklUX0NM S19FTkFCTEU7Ci0JSTkxNV9XUklURShCWFRfUE9SVF9QTExfRUJCXzQocG9ydCksIHRlbXApOwor CUk5MTVfV1JJVEUoQlhUX1BPUlRfUExMX0VCQl80KHBoeSwgY2gpLCB0ZW1wKTsKIAogCS8qIFdy aXRlIFAxICYgUDIgKi8KLQl0ZW1wID0gSTkxNV9SRUFEKEJYVF9QT1JUX1BMTF9FQkJfMChwb3J0 KSk7CisJdGVtcCA9IEk5MTVfUkVBRChCWFRfUE9SVF9QTExfRUJCXzAocGh5LCBjaCkpOwogCXRl bXAgJj0gfihQT1JUX1BMTF9QMV9NQVNLIHwgUE9SVF9QTExfUDJfTUFTSyk7CiAJdGVtcCB8PSBw bGwtPmNvbmZpZy5od19zdGF0ZS5lYmIwOwotCUk5MTVfV1JJVEUoQlhUX1BPUlRfUExMX0VCQl8w KHBvcnQpLCB0ZW1wKTsKKwlJOTE1X1dSSVRFKEJYVF9QT1JUX1BMTF9FQkJfMChwaHksIGNoKSwg dGVtcCk7CiAKIAkvKiBXcml0ZSBNMiBpbnRlZ2VyICovCi0JdGVtcCA9IEk5MTVfUkVBRChCWFRf UE9SVF9QTEwocG9ydCwgMCkpOworCXRlbXAgPSBJOTE1X1JFQUQoQlhUX1BPUlRfUExMKHBoeSwg Y2gsIDApKTsKIAl0ZW1wICY9IH5QT1JUX1BMTF9NMl9NQVNLOwogCXRlbXAgfD0gcGxsLT5jb25m aWcuaHdfc3RhdGUucGxsMDsKLQlJOTE1X1dSSVRFKEJYVF9QT1JUX1BMTChwb3J0LCAwKSwgdGVt cCk7CisJSTkxNV9XUklURShCWFRfUE9SVF9QTEwocGh5LCBjaCwgMCksIHRlbXApOwogCiAJLyog V3JpdGUgTiAqLwotCXRlbXAgPSBJOTE1X1JFQUQoQlhUX1BPUlRfUExMKHBvcnQsIDEpKTsKKwl0 ZW1wID0gSTkxNV9SRUFEKEJYVF9QT1JUX1BMTChwaHksIGNoLCAxKSk7CiAJdGVtcCAmPSB+UE9S VF9QTExfTl9NQVNLOwogCXRlbXAgfD0gcGxsLT5jb25maWcuaHdfc3RhdGUucGxsMTsKLQlJOTE1 X1dSSVRFKEJYVF9QT1JUX1BMTChwb3J0LCAxKSwgdGVtcCk7CisJSTkxNV9XUklURShCWFRfUE9S VF9QTEwocGh5LCBjaCwgMSksIHRlbXApOwogCiAJLyogV3JpdGUgTTIgZnJhY3Rpb24gKi8KLQl0 ZW1wID0gSTkxNV9SRUFEKEJYVF9QT1JUX1BMTChwb3J0LCAyKSk7CisJdGVtcCA9IEk5MTVfUkVB RChCWFRfUE9SVF9QTEwocGh5LCBjaCwgMikpOwogCXRlbXAgJj0gflBPUlRfUExMX00yX0ZSQUNf TUFTSzsKIAl0ZW1wIHw9IHBsbC0+Y29uZmlnLmh3X3N0YXRlLnBsbDI7Ci0JSTkxNV9XUklURShC WFRfUE9SVF9QTEwocG9ydCwgMiksIHRlbXApOworCUk5MTVfV1JJVEUoQlhUX1BPUlRfUExMKHBo eSwgY2gsIDIpLCB0ZW1wKTsKIAogCS8qIFdyaXRlIE0yIGZyYWN0aW9uIGVuYWJsZSAqLwotCXRl bXAgPSBJOTE1X1JFQUQoQlhUX1BPUlRfUExMKHBvcnQsIDMpKTsKKwl0ZW1wID0gSTkxNV9SRUFE KEJYVF9QT1JUX1BMTChwaHksIGNoLCAzKSk7CiAJdGVtcCAmPSB+UE9SVF9QTExfTTJfRlJBQ19F TkFCTEU7CiAJdGVtcCB8PSBwbGwtPmNvbmZpZy5od19zdGF0ZS5wbGwzOwotCUk5MTVfV1JJVEUo QlhUX1BPUlRfUExMKHBvcnQsIDMpLCB0ZW1wKTsKKwlJOTE1X1dSSVRFKEJYVF9QT1JUX1BMTChw aHksIGNoLCAzKSwgdGVtcCk7CiAKIAkvKiBXcml0ZSBjb2VmZiAqLwotCXRlbXAgPSBJOTE1X1JF QUQoQlhUX1BPUlRfUExMKHBvcnQsIDYpKTsKKwl0ZW1wID0gSTkxNV9SRUFEKEJYVF9QT1JUX1BM TChwaHksIGNoLCA2KSk7CiAJdGVtcCAmPSB+UE9SVF9QTExfUFJPUF9DT0VGRl9NQVNLOwogCXRl bXAgJj0gflBPUlRfUExMX0lOVF9DT0VGRl9NQVNLOwogCXRlbXAgJj0gflBPUlRfUExMX0dBSU5f Q1RMX01BU0s7CiAJdGVtcCB8PSBwbGwtPmNvbmZpZy5od19zdGF0ZS5wbGw2OwotCUk5MTVfV1JJ VEUoQlhUX1BPUlRfUExMKHBvcnQsIDYpLCB0ZW1wKTsKKwlJOTE1X1dSSVRFKEJYVF9QT1JUX1BM TChwaHksIGNoLCA2KSwgdGVtcCk7CiAKIAkvKiBXcml0ZSBjYWxpYnJhdGlvbiB2YWwgKi8KLQl0 ZW1wID0gSTkxNV9SRUFEKEJYVF9QT1JUX1BMTChwb3J0LCA4KSk7CisJdGVtcCA9IEk5MTVfUkVB RChCWFRfUE9SVF9QTEwocGh5LCBjaCwgOCkpOwogCXRlbXAgJj0gflBPUlRfUExMX1RBUkdFVF9D TlRfTUFTSzsKIAl0ZW1wIHw9IHBsbC0+Y29uZmlnLmh3X3N0YXRlLnBsbDg7Ci0JSTkxNV9XUklU RShCWFRfUE9SVF9QTEwocG9ydCwgOCksIHRlbXApOworCUk5MTVfV1JJVEUoQlhUX1BPUlRfUExM KHBoeSwgY2gsIDgpLCB0ZW1wKTsKIAotCXRlbXAgPSBJOTE1X1JFQUQoQlhUX1BPUlRfUExMKHBv cnQsIDkpKTsKKwl0ZW1wID0gSTkxNV9SRUFEKEJYVF9QT1JUX1BMTChwaHksIGNoLCA5KSk7CiAJ dGVtcCAmPSB+UE9SVF9QTExfTE9DS19USFJFU0hPTERfTUFTSzsKIAl0ZW1wIHw9IHBsbC0+Y29u ZmlnLmh3X3N0YXRlLnBsbDk7Ci0JSTkxNV9XUklURShCWFRfUE9SVF9QTEwocG9ydCwgOSksIHRl bXApOworCUk5MTVfV1JJVEUoQlhUX1BPUlRfUExMKHBoeSwgY2gsIDkpLCB0ZW1wKTsKIAotCXRl bXAgPSBJOTE1X1JFQUQoQlhUX1BPUlRfUExMKHBvcnQsIDEwKSk7CisJdGVtcCA9IEk5MTVfUkVB RChCWFRfUE9SVF9QTEwocGh5LCBjaCwgMTApKTsKIAl0ZW1wICY9IH5QT1JUX1BMTF9EQ09fQU1Q X09WUl9FTl9IOwogCXRlbXAgJj0gflBPUlRfUExMX0RDT19BTVBfTUFTSzsKIAl0ZW1wIHw9IHBs bC0+Y29uZmlnLmh3X3N0YXRlLnBsbDEwOwotCUk5MTVfV1JJVEUoQlhUX1BPUlRfUExMKHBvcnQs IDEwKSwgdGVtcCk7CisJSTkxNV9XUklURShCWFRfUE9SVF9QTEwocGh5LCBjaCwgMTApLCB0ZW1w KTsKIAogCS8qIFJlY2FsaWJyYXRlIHdpdGggbmV3IHNldHRpbmdzICovCi0JdGVtcCA9IEk5MTVf UkVBRChCWFRfUE9SVF9QTExfRUJCXzQocG9ydCkpOworCXRlbXAgPSBJOTE1X1JFQUQoQlhUX1BP UlRfUExMX0VCQl80KHBoeSwgY2gpKTsKIAl0ZW1wIHw9IFBPUlRfUExMX1JFQ0FMSUJSQVRFOwot CUk5MTVfV1JJVEUoQlhUX1BPUlRfUExMX0VCQl80KHBvcnQpLCB0ZW1wKTsKKwlJOTE1X1dSSVRF KEJYVF9QT1JUX1BMTF9FQkJfNChwaHksIGNoKSwgdGVtcCk7CiAJdGVtcCAmPSB+UE9SVF9QTExf MTBCSVRfQ0xLX0VOQUJMRTsKIAl0ZW1wIHw9IHBsbC0+Y29uZmlnLmh3X3N0YXRlLmViYjQ7Ci0J STkxNV9XUklURShCWFRfUE9SVF9QTExfRUJCXzQocG9ydCksIHRlbXApOworCUk5MTVfV1JJVEUo QlhUX1BPUlRfUExMX0VCQl80KHBoeSwgY2gpLCB0ZW1wKTsKIAogCS8qIEVuYWJsZSBQTEwgKi8K IAl0ZW1wID0gSTkxNV9SRUFEKEJYVF9QT1JUX1BMTF9FTkFCTEUocG9ydCkpOwpAQCAtMTQ1OSwx MSArMTQ2MywxMSBAQCBzdGF0aWMgdm9pZCBieHRfZGRpX3BsbF9lbmFibGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAogCSAqIFdoaWxlIHdlIHdyaXRlIHRvIHRoZSBncm91cCBy ZWdpc3RlciB0byBwcm9ncmFtIGFsbCBsYW5lcyBhdCBvbmNlIHdlCiAJICogY2FuIHJlYWQgb25s eSBsYW5lIHJlZ2lzdGVycyBhbmQgd2UgcGljayBsYW5lcyAwLzEgZm9yIHRoYXQuCiAJICovCi0J dGVtcCA9IEk5MTVfUkVBRChCWFRfUE9SVF9QQ1NfRFcxMl9MTjAxKHBvcnQpKTsKKwl0ZW1wID0g STkxNV9SRUFEKEJYVF9QT1JUX1BDU19EVzEyX0xOMDEocGh5LCBjaCkpOwogCXRlbXAgJj0gfkxB TkVfU1RBR0dFUl9NQVNLOwogCXRlbXAgJj0gfkxBTkVTVEFHR0VSX1NUUkFQX09WUkQ7CiAJdGVt cCB8PSBwbGwtPmNvbmZpZy5od19zdGF0ZS5wY3NkdzEyOwotCUk5MTVfV1JJVEUoQlhUX1BPUlRf UENTX0RXMTJfR1JQKHBvcnQpLCB0ZW1wKTsKKwlJOTE1X1dSSVRFKEJYVF9QT1JUX1BDU19EVzEy X0dSUChwaHksIGNoKSwgdGVtcCk7CiB9CiAKIHN0YXRpYyB2b2lkIGJ4dF9kZGlfcGxsX2Rpc2Fi bGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtMTQ4NSw2ICsxNDg5LDEw IEBAIHN0YXRpYyBib29sIGJ4dF9kZGlfcGxsX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJZW51bSBwb3J0IHBvcnQgPSAoZW51bSBwb3J0KXBsbC0+aWQ7 CS8qIDE6MSBwb3J0LT5QTEwgbWFwcGluZyAqLwogCXVpbnQzMl90IHZhbDsKIAlib29sIHJldDsK KwllbnVtIGRwaW9fcGh5IHBoeTsKKwllbnVtIGRwaW9fY2hhbm5lbCBjaDsKKworCWJ4dF9wb3J0 X3RvX3BoeV9jaGFubmVsKHBvcnQsICZwaHksICZjaCk7CiAKIAlpZiAoIWludGVsX2Rpc3BsYXlf cG93ZXJfZ2V0X2lmX2VuYWJsZWQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9QTExTKSkKIAkJcmV0 dXJuIGZhbHNlOwpAQCAtMTQ5NSwzNiArMTUwMywzNiBAQCBzdGF0aWMgYm9vbCBieHRfZGRpX3Bs bF9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlmICgh KHZhbCAmIFBPUlRfUExMX0VOQUJMRSkpCiAJCWdvdG8gb3V0OwogCi0JaHdfc3RhdGUtPmViYjAg PSBJOTE1X1JFQUQoQlhUX1BPUlRfUExMX0VCQl8wKHBvcnQpKTsKKwlod19zdGF0ZS0+ZWJiMCA9 IEk5MTVfUkVBRChCWFRfUE9SVF9QTExfRUJCXzAocGh5LCBjaCkpOwogCWh3X3N0YXRlLT5lYmIw ICY9IFBPUlRfUExMX1AxX01BU0sgfCBQT1JUX1BMTF9QMl9NQVNLOwogCi0JaHdfc3RhdGUtPmVi YjQgPSBJOTE1X1JFQUQoQlhUX1BPUlRfUExMX0VCQl80KHBvcnQpKTsKKwlod19zdGF0ZS0+ZWJi NCA9IEk5MTVfUkVBRChCWFRfUE9SVF9QTExfRUJCXzQocGh5LCBjaCkpOwogCWh3X3N0YXRlLT5l YmI0ICY9IFBPUlRfUExMXzEwQklUX0NMS19FTkFCTEU7CiAKLQlod19zdGF0ZS0+cGxsMCA9IEk5 MTVfUkVBRChCWFRfUE9SVF9QTEwocG9ydCwgMCkpOworCWh3X3N0YXRlLT5wbGwwID0gSTkxNV9S RUFEKEJYVF9QT1JUX1BMTChwaHksIGNoLCAwKSk7CiAJaHdfc3RhdGUtPnBsbDAgJj0gUE9SVF9Q TExfTTJfTUFTSzsKIAotCWh3X3N0YXRlLT5wbGwxID0gSTkxNV9SRUFEKEJYVF9QT1JUX1BMTChw b3J0LCAxKSk7CisJaHdfc3RhdGUtPnBsbDEgPSBJOTE1X1JFQUQoQlhUX1BPUlRfUExMKHBoeSwg Y2gsIDEpKTsKIAlod19zdGF0ZS0+cGxsMSAmPSBQT1JUX1BMTF9OX01BU0s7CiAKLQlod19zdGF0 ZS0+cGxsMiA9IEk5MTVfUkVBRChCWFRfUE9SVF9QTEwocG9ydCwgMikpOworCWh3X3N0YXRlLT5w bGwyID0gSTkxNV9SRUFEKEJYVF9QT1JUX1BMTChwaHksIGNoLCAyKSk7CiAJaHdfc3RhdGUtPnBs bDIgJj0gUE9SVF9QTExfTTJfRlJBQ19NQVNLOwogCi0JaHdfc3RhdGUtPnBsbDMgPSBJOTE1X1JF QUQoQlhUX1BPUlRfUExMKHBvcnQsIDMpKTsKKwlod19zdGF0ZS0+cGxsMyA9IEk5MTVfUkVBRChC WFRfUE9SVF9QTEwocGh5LCBjaCwgMykpOwogCWh3X3N0YXRlLT5wbGwzICY9IFBPUlRfUExMX00y X0ZSQUNfRU5BQkxFOwogCi0JaHdfc3RhdGUtPnBsbDYgPSBJOTE1X1JFQUQoQlhUX1BPUlRfUExM KHBvcnQsIDYpKTsKKwlod19zdGF0ZS0+cGxsNiA9IEk5MTVfUkVBRChCWFRfUE9SVF9QTEwocGh5 LCBjaCwgNikpOwogCWh3X3N0YXRlLT5wbGw2ICY9IFBPUlRfUExMX1BST1BfQ09FRkZfTUFTSyB8 CiAJCQkgIFBPUlRfUExMX0lOVF9DT0VGRl9NQVNLIHwKIAkJCSAgUE9SVF9QTExfR0FJTl9DVExf TUFTSzsKIAotCWh3X3N0YXRlLT5wbGw4ID0gSTkxNV9SRUFEKEJYVF9QT1JUX1BMTChwb3J0LCA4 KSk7CisJaHdfc3RhdGUtPnBsbDggPSBJOTE1X1JFQUQoQlhUX1BPUlRfUExMKHBoeSwgY2gsIDgp KTsKIAlod19zdGF0ZS0+cGxsOCAmPSBQT1JUX1BMTF9UQVJHRVRfQ05UX01BU0s7CiAKLQlod19z dGF0ZS0+cGxsOSA9IEk5MTVfUkVBRChCWFRfUE9SVF9QTEwocG9ydCwgOSkpOworCWh3X3N0YXRl LT5wbGw5ID0gSTkxNV9SRUFEKEJYVF9QT1JUX1BMTChwaHksIGNoLCA5KSk7CiAJaHdfc3RhdGUt PnBsbDkgJj0gUE9SVF9QTExfTE9DS19USFJFU0hPTERfTUFTSzsKIAotCWh3X3N0YXRlLT5wbGwx MCA9IEk5MTVfUkVBRChCWFRfUE9SVF9QTEwocG9ydCwgMTApKTsKKwlod19zdGF0ZS0+cGxsMTAg PSBJOTE1X1JFQUQoQlhUX1BPUlRfUExMKHBoeSwgY2gsIDEwKSk7CiAJaHdfc3RhdGUtPnBsbDEw ICY9IFBPUlRfUExMX0RDT19BTVBfT1ZSX0VOX0ggfAogCQkJICAgUE9SVF9QTExfRENPX0FNUF9N QVNLOwogCkBAIC0xNTMzLDExICsxNTQxLDExIEBAIHN0YXRpYyBib29sIGJ4dF9kZGlfcGxsX2dl dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJICogY2FuIHJl YWQgb25seSBsYW5lIHJlZ2lzdGVycy4gV2UgY29uZmlndXJlIGFsbCBsYW5lcyB0aGUgc2FtZSB3 YXksIHNvCiAJICogaGVyZSBqdXN0IHJlYWQgb3V0IGxhbmVzIDAvMSBhbmQgb3V0cHV0IGEgbm90 ZSBpZiBsYW5lcyAyLzMgZGlmZmVyLgogCSAqLwotCWh3X3N0YXRlLT5wY3NkdzEyID0gSTkxNV9S RUFEKEJYVF9QT1JUX1BDU19EVzEyX0xOMDEocG9ydCkpOwotCWlmIChJOTE1X1JFQUQoQlhUX1BP UlRfUENTX0RXMTJfTE4yMyhwb3J0KSkgIT0gaHdfc3RhdGUtPnBjc2R3MTIpCisJaHdfc3RhdGUt PnBjc2R3MTIgPSBJOTE1X1JFQUQoQlhUX1BPUlRfUENTX0RXMTJfTE4wMShwaHksIGNoKSk7CisJ aWYgKEk5MTVfUkVBRChCWFRfUE9SVF9QQ1NfRFcxMl9MTjIzKHBoeSwgY2gpKSAhPSBod19zdGF0 ZS0+cGNzZHcxMikKIAkJRFJNX0RFQlVHX0RSSVZFUigibGFuZSBzdGFnZ2VyIGNvbmZpZyBkaWZm ZXJlbnQgZm9yIGxhbmUgMDEgKCUwOHgpIGFuZCAyMyAoJTA4eClcbiIsCiAJCQkJIGh3X3N0YXRl LT5wY3NkdzEyLAotCQkJCSBJOTE1X1JFQUQoQlhUX1BPUlRfUENTX0RXMTJfTE4yMyhwb3J0KSkp OworCQkJCSBJOTE1X1JFQUQoQlhUX1BPUlRfUENTX0RXMTJfTE4yMyhwaHksIGNoKSkpOwogCWh3 X3N0YXRlLT5wY3NkdzEyICY9IExBTkVfU1RBR0dFUl9NQVNLIHwgTEFORVNUQUdHRVJfU1RSQVBf T1ZSRDsKIAogCXJldCA9IHRydWU7Ci0tIAoyLjUuNQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==