From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: [PATCH v3] drm/i915: Make power domain masks 64 bit long Date: Thu, 9 Feb 2017 11:31:21 +0200 Message-ID: <20170209093121.24410-1-ander.conselvan.de.oliveira@intel.com> References: <20170209081445.14674-1-ander.conselvan.de.oliveira@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8D1136EA46 for ; Thu, 9 Feb 2017 09:31:26 +0000 (UTC) In-Reply-To: <20170209081445.14674-1-ander.conselvan.de.oliveira@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Ander Conselvan de Oliveira , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org VGhlcmUgYXJlIGN1cnJlbnRseSAzMCBwb3dlciBkb21haW5zLCB3aGljaCBwdXRzIHVzIHByZXR0 eSBjbG9zZSB0byB0aGUKbGltaXQgd2l0aCAzMiBiaXQgbWFza3MuIFByZXBhcmUgZm9yIHRoZSBm dXR1cmUgYW5kIGluY3JlYXNlIHRoZSBsaW1pdAp0byA2NCBiaXQuCgp2MjogUmViYXNlCnYzOiBz L3Vuc2lnbmVkIGxvbmcgbG9uZy91NjQvIChKb29uYXMpCiAgICBBbGxvdyB0aGUgNjR0aCBiaXQg b2YgdGhlIG1hc2sgdG8gYmUgdXNlZC4gKEpvb25hcykKCkNjOiBKYW5pIE5pa3VsYSA8amFuaS5u aWt1bGFAbGludXguaW50ZWwuY29tPgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGlu ZW5AbGludXguaW50ZWwuY29tPgpDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwu Y29tPgpDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K U2lnbmVkLW9mZi1ieTogQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhIDxhbmRlci5jb25zZWx2 YW4uZGUub2xpdmVpcmFAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogSm9vbmFzIExhaHRpbmVuIDxq b29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggICAgICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jICAgIHwgIDM0ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg ICAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMg fCAzNzggKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwg MjA5IGluc2VydGlvbnMoKyksIDIwOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAppbmRleCA1OGJiNWNhLi5jZWI3Njk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTQ5 NCw3ICs0OTQsNyBAQCBzdHJ1Y3QgaTkxNV9ob3RwbHVnIHsKIAogI2RlZmluZSBmb3JfZWFjaF9w b3dlcl9kb21haW4oZG9tYWluLCBtYXNrKQkJCQlcCiAJZm9yICgoZG9tYWluKSA9IDA7IChkb21h aW4pIDwgUE9XRVJfRE9NQUlOX05VTTsgKGRvbWFpbikrKykJXAotCQlmb3JfZWFjaF9pZiAoKDEg PDwgKGRvbWFpbikpICYgKG1hc2spKQorCQlmb3JfZWFjaF9pZiAoQklUX1VMTChkb21haW4pICYg KG1hc2spKQogCiBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKIHN0cnVjdCBpOTE1X21tX3N0cnVj dDsKQEAgLTE0MDUsNyArMTQwNSw3IEBAIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgewogCWludCBj b3VudDsKIAkvKiBjYWNoZWQgaHcgZW5hYmxlZCBzdGF0ZSAqLwogCWJvb2wgaHdfZW5hYmxlZDsK LQl1bnNpZ25lZCBsb25nIGRvbWFpbnM7CisJdTY0IGRvbWFpbnM7CiAJLyogdW5pcXVlIGlkZW50 aWZpZXIgZm9yIHRoaXMgcG93ZXIgd2VsbCAqLwogCXVuc2lnbmVkIGxvbmcgaWQ7CiAJLyoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBmNjI1OWM5Li5hYjc4ZGY5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC01NjY2LDE1ICs1NjY2LDE1IEBAIGlu dGVsX2Rpc3BsYXlfcG9ydF9hdXhfcG93ZXJfZG9tYWluKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpp bnRlbF9lbmNvZGVyKQogCX0KIH0KIAotc3RhdGljIHVuc2lnbmVkIGxvbmcgZ2V0X2NydGNfcG93 ZXJfZG9tYWlucyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCi0JCQkJCSAgICBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3N0YXRpYyB1NjQgZ2V0X2NydGNfcG93ZXJfZG9tYWlu cyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmVuY29kZXI7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGMpOwogCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsK LQl1bnNpZ25lZCBsb25nIG1hc2s7CisJdTY0IG1hc2s7CiAJZW51bSB0cmFuc2NvZGVyIHRyYW5z Y29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKIAogCWlmICghY3J0Y19zdGF0ZS0+ YmFzZS5hY3RpdmUpCkBAIC01Njg0LDE5ICs1Njg0LDE5IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25n IGdldF9jcnRjX3Bvd2VyX2RvbWFpbnMoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCW1hc2sgfD0g QklUKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSKHRyYW5zY29kZXIpKTsKIAlpZiAoY3J0Y19zdGF0 ZS0+cGNoX3BmaXQuZW5hYmxlZCB8fAogCSAgICBjcnRjX3N0YXRlLT5wY2hfcGZpdC5mb3JjZV90 aHJ1KQotCQltYXNrIHw9IEJJVChQT1dFUl9ET01BSU5fUElQRV9QQU5FTF9GSVRURVIocGlwZSkp OworCQltYXNrIHw9IEJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfUEFORUxfRklUVEVSKHBpcGUp KTsKIAogCWRybV9mb3JfZWFjaF9lbmNvZGVyX21hc2soZW5jb2RlciwgZGV2LCBjcnRjX3N0YXRl LT5iYXNlLmVuY29kZXJfbWFzaykgewogCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5j b2RlciA9IHRvX2ludGVsX2VuY29kZXIoZW5jb2Rlcik7CiAKLQkJbWFzayB8PSBCSVQoaW50ZWxf ZGlzcGxheV9wb3J0X3Bvd2VyX2RvbWFpbihpbnRlbF9lbmNvZGVyKSk7CisJCW1hc2sgfD0gQklU X1VMTChpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9tYWluKGludGVsX2VuY29kZXIpKTsKIAl9 CiAKIAlpZiAoSEFTX0RESShkZXZfcHJpdikgJiYgY3J0Y19zdGF0ZS0+aGFzX2F1ZGlvKQogCQlt YXNrIHw9IEJJVChQT1dFUl9ET01BSU5fQVVESU8pOwogCiAJaWYgKGNydGNfc3RhdGUtPnNoYXJl ZF9kcGxsKQotCQltYXNrIHw9IEJJVChQT1dFUl9ET01BSU5fUExMUyk7CisJCW1hc2sgfD0gQklU X1VMTChQT1dFUl9ET01BSU5fUExMUyk7CiAKIAlyZXR1cm4gbWFzazsKIH0KQEAgLTU3MDgsNyAr NTcwOCw3IEBAIG1vZGVzZXRfZ2V0X2NydGNfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj LT5kZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjKTsKIAllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbjsKLQl1bnNpZ25l ZCBsb25nIGRvbWFpbnMsIG5ld19kb21haW5zLCBvbGRfZG9tYWluczsKKwl1NjQgZG9tYWlucywg bmV3X2RvbWFpbnMsIG9sZF9kb21haW5zOwogCiAJb2xkX2RvbWFpbnMgPSBpbnRlbF9jcnRjLT5l bmFibGVkX3Bvd2VyX2RvbWFpbnM7CiAJaW50ZWxfY3J0Yy0+ZW5hYmxlZF9wb3dlcl9kb21haW5z ID0gbmV3X2RvbWFpbnMgPQpAQCAtNTcyMyw3ICs1NzIzLDcgQEAgbW9kZXNldF9nZXRfY3J0Y19w b3dlcl9kb21haW5zKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIH0KIAogc3RhdGljIHZvaWQgbW9k ZXNldF9wdXRfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Ci0JCQkJICAgICAgdW5zaWduZWQgbG9uZyBkb21haW5zKQorCQkJCSAgICAgIHU2NCBkb21haW5z KQogewogCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluOwogCkBAIC04OTky LDcgKzg5OTIsNyBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2dldF9kZGlfcGxsKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogc3RhdGljIGJvb2wgaHN3X2dldF90cmFuc2NvZGVy X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJCSAgICAgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnLAotCQkJCSAgICAgdW5zaWduZWQgbG9uZyAqcG93ZXJfZG9t YWluX21hc2spCisJCQkJICAgICB1NjQgKnBvd2VyX2RvbWFpbl9tYXNrKQogewogCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CkBAIC05MDM0LDcgKzkwMzQsNyBAQCBzdGF0aWMg Ym9vbCBoc3dfZ2V0X3RyYW5zY29kZXJfc3RhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJ cG93ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVIocGlwZV9jb25maWctPmNwdV90 cmFuc2NvZGVyKTsKIAlpZiAoIWludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0X2lmX2VuYWJsZWQoZGV2 X3ByaXYsIHBvd2VyX2RvbWFpbikpCiAJCXJldHVybiBmYWxzZTsKLQkqcG93ZXJfZG9tYWluX21h c2sgfD0gQklUKHBvd2VyX2RvbWFpbik7CisJKnBvd2VyX2RvbWFpbl9tYXNrIHw9IEJJVF9VTEwo cG93ZXJfZG9tYWluKTsKIAogCXRtcCA9IEk5MTVfUkVBRChQSVBFQ09ORihwaXBlX2NvbmZpZy0+ Y3B1X3RyYW5zY29kZXIpKTsKIApAQCAtOTA0Myw3ICs5MDQzLDcgQEAgc3RhdGljIGJvb2wgaHN3 X2dldF90cmFuc2NvZGVyX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiBzdGF0aWMg Ym9vbCBieHRfZ2V0X2RzaV90cmFuc2NvZGVyX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj LAogCQkJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAotCQkJCQkgdW5z aWduZWQgbG9uZyAqcG93ZXJfZG9tYWluX21hc2spCisJCQkJCSB1NjQgKnBvd2VyX2RvbWFpbl9t YXNrKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CkBAIC05MDYxLDcg KzkwNjEsNyBAQCBzdGF0aWMgYm9vbCBieHRfZ2V0X2RzaV90cmFuc2NvZGVyX3N0YXRlKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAogCQlwb3dlcl9kb21haW4gPSBQT1dFUl9ET01BSU5fVFJBTlND T0RFUihjcHVfdHJhbnNjb2Rlcik7CiAJCWlmICghaW50ZWxfZGlzcGxheV9wb3dlcl9nZXRfaWZf ZW5hYmxlZChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKSkKIAkJCWNvbnRpbnVlOwotCQkqcG93ZXJf ZG9tYWluX21hc2sgfD0gQklUKHBvd2VyX2RvbWFpbik7CisJCSpwb3dlcl9kb21haW5fbWFzayB8 PSBCSVRfVUxMKHBvd2VyX2RvbWFpbik7CiAKIAkJLyoKIAkJICogVGhlIFBMTCBuZWVkcyB0byBi ZSBlbmFibGVkIHdpdGggYSB2YWxpZCBkaXZpZGVyCkBAIC05MTM2LDEzICs5MTM2LDEzIEBAIHN0 YXRpYyBib29sIGhhc3dlbGxfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj LAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ YmFzZS5kZXYpOwogCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWlu OwotCXVuc2lnbmVkIGxvbmcgcG93ZXJfZG9tYWluX21hc2s7CisJdTY0IHBvd2VyX2RvbWFpbl9t YXNrOwogCWJvb2wgYWN0aXZlOwogCiAJcG93ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlOX1BJUEUo Y3J0Yy0+cGlwZSk7CiAJaWYgKCFpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldF9pZl9lbmFibGVkKGRl dl9wcml2LCBwb3dlcl9kb21haW4pKQogCQlyZXR1cm4gZmFsc2U7Ci0JcG93ZXJfZG9tYWluX21h c2sgPSBCSVQocG93ZXJfZG9tYWluKTsKKwlwb3dlcl9kb21haW5fbWFzayA9IEJJVF9VTEwocG93 ZXJfZG9tYWluKTsKIAogCXBpcGVfY29uZmlnLT5zaGFyZWRfZHBsbCA9IE5VTEw7CiAKQEAgLTkx NzYsNyArOTE3Niw3IEBAIHN0YXRpYyBib29sIGhhc3dlbGxfZ2V0X3BpcGVfY29uZmlnKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAogCiAJcG93ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlOX1BJUEVf UEFORUxfRklUVEVSKGNydGMtPnBpcGUpOwogCWlmIChpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldF9p Zl9lbmFibGVkKGRldl9wcml2LCBwb3dlcl9kb21haW4pKSB7Ci0JCXBvd2VyX2RvbWFpbl9tYXNr IHw9IEJJVChwb3dlcl9kb21haW4pOworCQlwb3dlcl9kb21haW5fbWFzayB8PSBCSVRfVUxMKHBv d2VyX2RvbWFpbik7CiAJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCiAJCQlza3lsYWtl X2dldF9wZml0X2NvbmZpZyhjcnRjLCBwaXBlX2NvbmZpZyk7CiAJCWVsc2UKQEAgLTEyODQxLDcg KzEyODQxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CiAJc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmludGVsX2NzdGF0ZTsKIAlib29sIGh3X2NoZWNrID0gaW50ZWxf c3RhdGUtPm1vZGVzZXQ7Ci0JdW5zaWduZWQgbG9uZyBwdXRfZG9tYWluc1tJOTE1X01BWF9QSVBF U10gPSB7fTsKKwl1NjQgcHV0X2RvbWFpbnNbSTkxNV9NQVhfUElQRVNdID0ge307CiAJdW5zaWdu ZWQgY3J0Y192YmxhbmtfbWFzayA9IDA7CiAJaW50IGk7CiAKQEAgLTE1NTY1LDcgKzE1NTY1LDcg QEAgaW50ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog CQlpbGtfd21fZ2V0X2h3X3N0YXRlKGRldik7CiAKIAlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwg Y3J0YykgewotCQl1bnNpZ25lZCBsb25nIHB1dF9kb21haW5zOworCQl1NjQgcHV0X2RvbWFpbnM7 CiAKIAkJcHV0X2RvbWFpbnMgPSBtb2Rlc2V0X2dldF9jcnRjX3Bvd2VyX2RvbWFpbnMoJmNydGMt PmJhc2UsIGNydGMtPmNvbmZpZyk7CiAJCWlmIChXQVJOX09OKHB1dF9kb21haW5zKSkKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggZWZkMWJiYS4uY2YwYzc3ZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKQEAgLTcxNSw3ICs3MTUsNyBAQCBzdHJ1Y3QgaW50ZWxfY3J0YyB7CiAJYm9v bCBhY3RpdmU7CiAJYm9vbCBsb3dmcmVxX2F2YWlsOwogCXU4IHBsYW5lX2lkc19tYXNrOwotCXVu c2lnbmVkIGxvbmcgZW5hYmxlZF9wb3dlcl9kb21haW5zOworCXVuc2lnbmVkIGxvbmcgbG9uZyBl bmFibGVkX3Bvd2VyX2RvbWFpbnM7CiAJc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXk7CiAJ c3RydWN0IGludGVsX2ZsaXBfd29yayAqZmxpcF93b3JrOwogCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ydW50aW1lX3BtLmMKaW5kZXggMGYwMGE1YS4uODc5NTY3OSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwpAQCAtMjEwLDcgKzIxMCw3IEBAIGJvb2wgX19pbnRl bF9kaXNwbGF5X3Bvd2VyX2lzX2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCiAJaXNfZW5hYmxlZCA9IHRydWU7CiAKLQlmb3JfZWFjaF9wb3dlcl93ZWxsX3Jldihp LCBwb3dlcl93ZWxsLCBCSVQoZG9tYWluKSwgcG93ZXJfZG9tYWlucykgeworCWZvcl9lYWNoX3Bv d2VyX3dlbGxfcmV2KGksIHBvd2VyX3dlbGwsIEJJVF9VTEwoZG9tYWluKSwgcG93ZXJfZG9tYWlu cykgewogCQlpZiAocG93ZXJfd2VsbC0+YWx3YXlzX29uKQogCQkJY29udGludWU7CiAKQEAgLTM4 NSwxMjQgKzM4NSwxMjQgQEAgc3RhdGljIHZvaWQgaHN3X3NldF9wb3dlcl93ZWxsKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIH0KIAogI2RlZmluZSBTS0xfRElTUExBWV9QT1dF UldFTExfMl9QT1dFUl9ET01BSU5TICgJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJf QSkgfAkJXAotCUJJVChQT1dFUl9ET01BSU5fUElQRV9CKSB8CQkJXAotCUJJVChQT1dFUl9ET01B SU5fVFJBTlNDT0RFUl9CKSB8CQlcCi0JQklUKFBPV0VSX0RPTUFJTl9QSVBFX0MpIHwJCQlcCi0J QklUKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0MpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BJ UEVfQl9QQU5FTF9GSVRURVIpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQ19QQU5FTF9G SVRURVIpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfTEFORVMpIHwJCVwKLQlC SVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVMpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlO X1BPUlRfRERJX0RfTEFORVMpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0VfTEFO RVMpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX0FVWF9CKSB8ICAgICAgICAgICAgICAgICAgICAg ICBcCi0JQklUKFBPV0VSX0RPTUFJTl9BVVhfQykgfAkJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX0FV WF9EKSB8CQkJXAotCUJJVChQT1dFUl9ET01BSU5fQVVESU8pIHwJCQlcCi0JQklUKFBPV0VSX0RP TUFJTl9WR0EpIHwJCQkJXAotCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCisJQklUX1VMTChQT1dF Ul9ET01BSU5fVFJBTlNDT0RFUl9BKSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9C KSB8CQkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfQikgfAkJXAorCUJJVF9V TEwoUE9XRVJfRE9NQUlOX1BJUEVfQykgfAkJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9UUkFO U0NPREVSX0MpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QSVBFX0JfUEFORUxfRklUVEVS KSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9DX1BBTkVMX0ZJVFRFUikgfAkJXAor CUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfTEFORVMpIHwJCVwKKwlCSVRfVUxMKFBP V0VSX0RPTUFJTl9QT1JUX0RESV9DX0xBTkVTKSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5f UE9SVF9ERElfRF9MQU5FUykgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0Vf TEFORVMpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfQikgfCAgICAgICAgICAgICAg ICAgICAgICAgXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9DKSB8CQkJXAorCUJJVF9VTEwo UE9XRVJfRE9NQUlOX0FVWF9EKSB8CQkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVRElPKSB8 CQkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1ZHQSkgfAkJCQlcCisJQklUX1VMTChQT1dFUl9E T01BSU5fSU5JVCkpCiAjZGVmaW5lIFNLTF9ESVNQTEFZX0RESV9BX0VfUE9XRVJfRE9NQUlOUyAo CQlcCi0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9BX0xBTkVTKSB8CQlcCi0JQklUKFBPV0VS X0RPTUFJTl9QT1JUX0RESV9FX0xBTkVTKSB8CQlcCi0JQklUKFBPV0VSX0RPTUFJTl9JTklUKSkK KwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9BX0xBTkVTKSB8CQlcCisJQklUX1VMTChQ T1dFUl9ET01BSU5fUE9SVF9ERElfRV9MQU5FUykgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlO X0lOSVQpKQogI2RlZmluZSBTS0xfRElTUExBWV9ERElfQl9QT1dFUl9ET01BSU5TICgJCVwKLQlC SVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfTEFORVMpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlO X0lOSVQpKQorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfTEFORVMpIHwJCVwKKwlC SVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKICNkZWZpbmUgU0tMX0RJU1BMQVlfRERJX0NfUE9X RVJfRE9NQUlOUyAoCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9DX0xBTkVTKSB8CQlc Ci0JQklUKFBPV0VSX0RPTUFJTl9JTklUKSkKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RE SV9DX0xBTkVTKSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkpCiAjZGVmaW5lIFNL TF9ESVNQTEFZX0RESV9EX1BPV0VSX0RPTUFJTlMgKAkJXAotCUJJVChQT1dFUl9ET01BSU5fUE9S VF9ERElfRF9MQU5FUykgfAkJXAotCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCisJQklUX1VMTChQ T1dFUl9ET01BSU5fUE9SVF9ERElfRF9MQU5FUykgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlO X0lOSVQpKQogI2RlZmluZSBTS0xfRElTUExBWV9EQ19PRkZfUE9XRVJfRE9NQUlOUyAoCQlcCiAJ U0tMX0RJU1BMQVlfUE9XRVJXRUxMXzJfUE9XRVJfRE9NQUlOUyB8CQlcCi0JQklUKFBPV0VSX0RP TUFJTl9NT0RFU0VUKSB8CQkJXAotCUJJVChQT1dFUl9ET01BSU5fQVVYX0EpIHwJCQlcCi0JQklU KFBPV0VSX0RPTUFJTl9JTklUKSkKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9NT0RFU0VUKSB8CQkJ XAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9BKSB8CQkJXAorCUJJVF9VTEwoUE9XRVJfRE9N QUlOX0lOSVQpKQogCiAjZGVmaW5lIEJYVF9ESVNQTEFZX1BPV0VSV0VMTF8yX1BPV0VSX0RPTUFJ TlMgKAkJXAotCUJJVChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9BKSB8CQlcCi0JQklUKFBPV0VS X0RPTUFJTl9QSVBFX0IpIHwJCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0IpIHwJ CVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQykgfAkJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1RS QU5TQ09ERVJfQykgfAkJXAotCUJJVChQT1dFUl9ET01BSU5fUElQRV9CX1BBTkVMX0ZJVFRFUikg fAkJXAotCUJJVChQT1dFUl9ET01BSU5fUElQRV9DX1BBTkVMX0ZJVFRFUikgfAkJXAotCUJJVChQ T1dFUl9ET01BSU5fUE9SVF9ERElfQl9MQU5FUykgfAkJXAotCUJJVChQT1dFUl9ET01BSU5fUE9S VF9ERElfQ19MQU5FUykgfAkJXAotCUJJVChQT1dFUl9ET01BSU5fQVVYX0IpIHwJCQlcCi0JQklU KFBPV0VSX0RPTUFJTl9BVVhfQykgfAkJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX0FVRElPKSB8CQkJ XAotCUJJVChQT1dFUl9ET01BSU5fVkdBKSB8CQkJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX0dNQlVT KSB8CQkJXAotCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCisJQklUX1VMTChQT1dFUl9ET01BSU5f VFJBTlNDT0RFUl9BKSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9CKSB8CQkJXAor CUJJVF9VTEwoUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfQikgfAkJXAorCUJJVF9VTEwoUE9XRVJf RE9NQUlOX1BJUEVfQykgfAkJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0Mp IHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QSVBFX0JfUEFORUxfRklUVEVSKSB8CQlcCisJ QklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9DX1BBTkVMX0ZJVFRFUikgfAkJXAorCUJJVF9VTEwo UE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfTEFORVMpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJ Tl9QT1JUX0RESV9DX0xBTkVTKSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0IpIHwJ CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0MpIHwJCQlcCisJQklUX1VMTChQT1dFUl9E T01BSU5fQVVESU8pIHwJCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fVkdBKSB8CQkJCVwKKwlC SVRfVUxMKFBPV0VSX0RPTUFJTl9HTUJVUykgfAkJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9J TklUKSkKICNkZWZpbmUgQlhUX0RJU1BMQVlfRENfT0ZGX1BPV0VSX0RPTUFJTlMgKAkJXAogCUJY VF9ESVNQTEFZX1BPV0VSV0VMTF8yX1BPV0VSX0RPTUFJTlMgfAkJXAotCUJJVChQT1dFUl9ET01B SU5fTU9ERVNFVCkgfAkJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX0FVWF9BKSB8CQkJXAotCUJJVChQ T1dFUl9ET01BSU5fSU5JVCkpCisJQklUX1VMTChQT1dFUl9ET01BSU5fTU9ERVNFVCkgfAkJCVwK KwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfQSkgfAkJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJ Tl9JTklUKSkKICNkZWZpbmUgQlhUX0RQSU9fQ01OX0FfUE9XRVJfRE9NQUlOUyAoCQkJXAotCUJJ VChQT1dFUl9ET01BSU5fUE9SVF9ERElfQV9MQU5FUykgfAkJXAotCUJJVChQT1dFUl9ET01BSU5f QVVYX0EpIHwJCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9JTklUKSkKKwlCSVRfVUxMKFBPV0VSX0RP TUFJTl9QT1JUX0RESV9BX0xBTkVTKSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0Ep IHwJCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkpCiAjZGVmaW5lIEJYVF9EUElPX0NN Tl9CQ19QT1dFUl9ET01BSU5TICgJCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9CX0xB TkVTKSB8CQlcCi0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9DX0xBTkVTKSB8CQlcCi0JQklU KFBPV0VSX0RPTUFJTl9BVVhfQikgfAkJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX0FVWF9DKSB8CQkJ XAotCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCisJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9E RElfQl9MQU5FUykgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVMp IHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfQikgfAkJCVwKKwlCSVRfVUxMKFBPV0VS X0RPTUFJTl9BVVhfQykgfAkJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKIAogI2Rl ZmluZSBHTEtfRElTUExBWV9QT1dFUldFTExfMl9QT1dFUl9ET01BSU5TICgJCVwKLQlCSVQoUE9X RVJfRE9NQUlOX1RSQU5TQ09ERVJfQSkgfAkJXAotCUJJVChQT1dFUl9ET01BSU5fUElQRV9CKSB8 CQkJXAotCUJJVChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9CKSB8CQlcCi0JQklUKFBPV0VSX0RP TUFJTl9QSVBFX0MpIHwJCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0MpIHwJCVwK LQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQl9QQU5FTF9GSVRURVIpIHwJCVwKLQlCSVQoUE9XRVJf RE9NQUlOX1BJUEVfQ19QQU5FTF9GSVRURVIpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRf RERJX0JfTEFORVMpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVMpIHwJ CVwKLQlCSVQoUE9XRVJfRE9NQUlOX0FVWF9CKSB8ICAgICAgICAgICAgICAgICAgICAgICBcCi0J QklUKFBPV0VSX0RPTUFJTl9BVVhfQykgfAkJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX0FVRElPKSB8 CQkJXAotCUJJVChQT1dFUl9ET01BSU5fVkdBKSB8CQkJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX0lO SVQpKQorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfQSkgfAkJXAorCUJJVF9VTEwo UE9XRVJfRE9NQUlOX1BJUEVfQikgfAkJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9UUkFOU0NP REVSX0IpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QSVBFX0MpIHwJCQlcCisJQklUX1VM TChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9DKSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5f UElQRV9CX1BBTkVMX0ZJVFRFUikgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfQ19Q QU5FTF9GSVRURVIpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9CX0xBTkVT KSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQ19MQU5FUykgfAkJXAorCUJJ VF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9CKSB8ICAgICAgICAgICAgICAgICAgICAgICBcCisJQklU X1VMTChQT1dFUl9ET01BSU5fQVVYX0MpIHwJCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVE SU8pIHwJCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fVkdBKSB8CQkJCVwKKwlCSVRfVUxMKFBP V0VSX0RPTUFJTl9JTklUKSkKICNkZWZpbmUgR0xLX0RJU1BMQVlfRERJX0FfUE9XRVJfRE9NQUlO UyAoCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9BX0xBTkVTKSB8CQlcCi0JQklUKFBP V0VSX0RPTUFJTl9JTklUKSkKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9BX0xBTkVT KSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkpCiAjZGVmaW5lIEdMS19ESVNQTEFZ X0RESV9CX1BPV0VSX0RPTUFJTlMgKAkJXAotCUJJVChQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9M QU5FUykgfAkJXAotCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCisJQklUX1VMTChQT1dFUl9ET01B SU5fUE9SVF9ERElfQl9MQU5FUykgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0lOSVQpKQog I2RlZmluZSBHTEtfRElTUExBWV9ERElfQ19QT1dFUl9ET01BSU5TICgJCVwKLQlCSVQoUE9XRVJf RE9NQUlOX1BPUlRfRERJX0NfTEFORVMpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX0lOSVQpKQor CUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVMpIHwJCVwKKwlCSVRfVUxMKFBP V0VSX0RPTUFJTl9JTklUKSkKICNkZWZpbmUgR0xLX0RQSU9fQ01OX0FfUE9XRVJfRE9NQUlOUyAo CQkJXAotCUJJVChQT1dFUl9ET01BSU5fUE9SVF9ERElfQV9MQU5FUykgfAkJXAotCUJJVChQT1dF Ul9ET01BSU5fQVVYX0EpIHwJCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9JTklUKSkKKwlCSVRfVUxM KFBPV0VSX0RPTUFJTl9QT1JUX0RESV9BX0xBTkVTKSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01B SU5fQVVYX0EpIHwJCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkpCiAjZGVmaW5lIEdM S19EUElPX0NNTl9CX1BPV0VSX0RPTUFJTlMgKAkJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRf RERJX0JfTEFORVMpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX0FVWF9CKSB8CQkJXAotCUJJVChQ T1dFUl9ET01BSU5fSU5JVCkpCisJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9MQU5F UykgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9CKSB8CQkJXAorCUJJVF9VTEwoUE9X RVJfRE9NQUlOX0lOSVQpKQogI2RlZmluZSBHTEtfRFBJT19DTU5fQ19QT1dFUl9ET01BSU5TICgJ CQlcCi0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9DX0xBTkVTKSB8CQlcCi0JQklUKFBPV0VS X0RPTUFJTl9BVVhfQykgfAkJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX0lOSVQpKQorCUJJVF9VTEwo UE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVMpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJ Tl9BVVhfQykgfAkJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKICNkZWZpbmUgR0xL X0RJU1BMQVlfQVVYX0FfUE9XRVJfRE9NQUlOUyAoCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9BVVhf QSkgfAkJXAotCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCisJQklUX1VMTChQT1dFUl9ET01BSU5f QVVYX0EpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKICNkZWZpbmUgR0xLX0RJ U1BMQVlfQVVYX0JfUE9XRVJfRE9NQUlOUyAoCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9BVVhfQikg fAkJXAotCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVY X0IpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKICNkZWZpbmUgR0xLX0RJU1BM QVlfQVVYX0NfUE9XRVJfRE9NQUlOUyAoCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9BVVhfQykgfAkJ XAotCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0Mp IHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKICNkZWZpbmUgR0xLX0RJU1BMQVlf RENfT0ZGX1BPV0VSX0RPTUFJTlMgKAkJXAogCUdMS19ESVNQTEFZX1BPV0VSV0VMTF8yX1BPV0VS X0RPTUFJTlMgfAkJXAotCUJJVChQT1dFUl9ET01BSU5fTU9ERVNFVCkgfAkJCVwKLQlCSVQoUE9X RVJfRE9NQUlOX0FVWF9BKSB8CQkJXAotCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCisJQklUX1VM TChQT1dFUl9ET01BSU5fTU9ERVNFVCkgfAkJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhf QSkgfAkJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKIAogc3RhdGljIHZvaWQgYXNz ZXJ0X2Nhbl9lbmFibGVfZGM5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsK QEAgLTEyNTEsNyArMTI1MSw3IEBAIHN0YXRpYyB2b2lkIHZsdl9kcGlvX2Ntbl9wb3dlcl93ZWxs X2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXZsdl9zZXRfcG93 ZXJfd2VsbChkZXZfcHJpdiwgcG93ZXJfd2VsbCwgZmFsc2UpOwogfQogCi0jZGVmaW5lIFBPV0VS X0RPTUFJTl9NQVNLIChHRU5NQVNLKFBPV0VSX0RPTUFJTl9OVU0gLSAxLCAwKSkKKyNkZWZpbmUg UE9XRVJfRE9NQUlOX01BU0sgKEdFTk1BU0tfVUxMKFBPV0VSX0RPTUFJTl9OVU0gLSAxLCAwKSkK IAogc3RhdGljIHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKmxvb2t1cF9wb3dlcl93ZWxsKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkJCSBpbnQgcG93ZXJfd2VsbF9pZCkK QEAgLTE2OTcsNyArMTY5Nyw3IEBAIF9faW50ZWxfZGlzcGxheV9wb3dlcl9nZXRfZG9tYWluKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxs ICpwb3dlcl93ZWxsOwogCWludCBpOwogCi0JZm9yX2VhY2hfcG93ZXJfd2VsbChpLCBwb3dlcl93 ZWxsLCBCSVQoZG9tYWluKSwgcG93ZXJfZG9tYWlucykKKwlmb3JfZWFjaF9wb3dlcl93ZWxsKGks IHBvd2VyX3dlbGwsIEJJVF9VTEwoZG9tYWluKSwgcG93ZXJfZG9tYWlucykKIAkJaW50ZWxfcG93 ZXJfd2VsbF9nZXQoZGV2X3ByaXYsIHBvd2VyX3dlbGwpOwogCiAJcG93ZXJfZG9tYWlucy0+ZG9t YWluX3VzZV9jb3VudFtkb21haW5dKys7CkBAIC0xNzkyLDcgKzE3OTIsNyBAQCB2b2lkIGludGVs X2Rpc3BsYXlfcG93ZXJfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkg ICAgIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluX3N0cihkb21haW4pKTsKIAlwb3dlcl9kb21h aW5zLT5kb21haW5fdXNlX2NvdW50W2RvbWFpbl0tLTsKIAotCWZvcl9lYWNoX3Bvd2VyX3dlbGxf cmV2KGksIHBvd2VyX3dlbGwsIEJJVChkb21haW4pLCBwb3dlcl9kb21haW5zKQorCWZvcl9lYWNo X3Bvd2VyX3dlbGxfcmV2KGksIHBvd2VyX3dlbGwsIEJJVF9VTEwoZG9tYWluKSwgcG93ZXJfZG9t YWlucykKIAkJaW50ZWxfcG93ZXJfd2VsbF9wdXQoZGV2X3ByaXYsIHBvd2VyX3dlbGwpOwogCiAJ bXV0ZXhfdW5sb2NrKCZwb3dlcl9kb21haW5zLT5sb2NrKTsKQEAgLTE4MDEsMTE3ICsxODAxLDEx NyBAQCB2b2lkIGludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIH0KIAogI2RlZmluZSBIU1dfRElTUExBWV9QT1dFUl9ET01BSU5TICgJCQlc Ci0JQklUKFBPV0VSX0RPTUFJTl9QSVBFX0IpIHwJCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9QSVBF X0MpIHwJCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9QSVBFX0FfUEFORUxfRklUVEVSKSB8CQlcCi0J QklUKFBPV0VSX0RPTUFJTl9QSVBFX0JfUEFORUxfRklUVEVSKSB8CQlcCi0JQklUKFBPV0VSX0RP TUFJTl9QSVBFX0NfUEFORUxfRklUVEVSKSB8CQlcCi0JQklUKFBPV0VSX0RPTUFJTl9UUkFOU0NP REVSX0EpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfQikgfAkJXAotCUJJVChQ T1dFUl9ET01BSU5fVFJBTlNDT0RFUl9DKSB8CQlcCi0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RE SV9CX0xBTkVTKSB8CQlcCi0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9DX0xBTkVTKSB8CQlc Ci0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9EX0xBTkVTKSB8CQlcCi0JQklUKFBPV0VSX0RP TUFJTl9QT1JUX0NSVCkgfCAvKiBEREkgRSAqLwlcCi0JQklUKFBPV0VSX0RPTUFJTl9WR0EpIHwJ CQkJXAotCUJJVChQT1dFUl9ET01BSU5fQVVESU8pIHwJCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9J TklUKSkKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QSVBFX0IpIHwJCQlcCisJQklUX1VMTChQT1dF Ul9ET01BSU5fUElQRV9DKSB8CQkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfQV9QQU5F TF9GSVRURVIpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QSVBFX0JfUEFORUxfRklUVEVS KSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9DX1BBTkVMX0ZJVFRFUikgfAkJXAor CUJJVF9VTEwoUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfQSkgfAkJXAorCUJJVF9VTEwoUE9XRVJf RE9NQUlOX1RSQU5TQ09ERVJfQikgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1RSQU5TQ09E RVJfQykgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfTEFORVMpIHwJCVwK KwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9DX0xBTkVTKSB8CQlcCisJQklUX1VMTChQ T1dFUl9ET01BSU5fUE9SVF9ERElfRF9MQU5FUykgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlO X1BPUlRfQ1JUKSB8IC8qIERESSBFICovCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9WR0EpIHwJ CQkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVRElPKSB8CQkJXAorCUJJVF9VTEwoUE9XRVJf RE9NQUlOX0lOSVQpKQogCiAjZGVmaW5lIEJEV19ESVNQTEFZX1BPV0VSX0RPTUFJTlMgKAkJCVwK LQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQikgfAkJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVf QykgfAkJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQl9QQU5FTF9GSVRURVIpIHwJCVwKLQlC SVQoUE9XRVJfRE9NQUlOX1BJUEVfQ19QQU5FTF9GSVRURVIpIHwJCVwKLQlCSVQoUE9XRVJfRE9N QUlOX1RSQU5TQ09ERVJfQSkgfAkJXAotCUJJVChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9CKSB8 CQlcCi0JQklUKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0MpIHwJCVwKLQlCSVQoUE9XRVJfRE9N QUlOX1BPUlRfRERJX0JfTEFORVMpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0Nf TEFORVMpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0RfTEFORVMpIHwJCVwKLQlC SVQoUE9XRVJfRE9NQUlOX1BPUlRfQ1JUKSB8IC8qIERESSBFICovCVwKLQlCSVQoUE9XRVJfRE9N QUlOX1ZHQSkgfAkJCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9BVURJTykgfAkJCVwKLQlCSVQoUE9X RVJfRE9NQUlOX0lOSVQpKQorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfQikgfAkJCVwKKwlC SVRfVUxMKFBPV0VSX0RPTUFJTl9QSVBFX0MpIHwJCQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5f UElQRV9CX1BBTkVMX0ZJVFRFUikgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfQ19Q QU5FTF9GSVRURVIpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0EpIHwJ CVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0IpIHwJCVwKKwlCSVRfVUxMKFBP V0VSX0RPTUFJTl9UUkFOU0NPREVSX0MpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JU X0RESV9CX0xBTkVTKSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQ19MQU5F UykgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0RfTEFORVMpIHwJCVwKKwlC SVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0NSVCkgfCAvKiBEREkgRSAqLwlcCisJQklUX1VMTChQ T1dFUl9ET01BSU5fVkdBKSB8CQkJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVURJTykgfAkJ CVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKIAogI2RlZmluZSBWTFZfRElTUExBWV9Q T1dFUl9ET01BSU5TICgJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQSkgfAkJXAotCUJJVChQ T1dFUl9ET01BSU5fUElQRV9CKSB8CQlcCi0JQklUKFBPV0VSX0RPTUFJTl9QSVBFX0FfUEFORUxf RklUVEVSKSB8CVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQl9QQU5FTF9GSVRURVIpIHwJXAot CUJJVChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9BKSB8CVwKLQlCSVQoUE9XRVJfRE9NQUlOX1RS QU5TQ09ERVJfQikgfAlcCi0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9CX0xBTkVTKSB8CVwK LQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVMpIHwJXAotCUJJVChQT1dFUl9ET01B SU5fUE9SVF9EU0kpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfQ1JUKSB8CQlcCi0JQklU KFBPV0VSX0RPTUFJTl9WR0EpIHwJCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9BVURJTykgfAkJXAot CUJJVChQT1dFUl9ET01BSU5fQVVYX0IpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX0FVWF9DKSB8 CQlcCi0JQklUKFBPV0VSX0RPTUFJTl9HTUJVUykgfAkJXAotCUJJVChQT1dFUl9ET01BSU5fSU5J VCkpCisJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9BKSB8CQlcCisJQklUX1VMTChQT1dFUl9E T01BSU5fUElQRV9CKSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9BX1BBTkVMX0ZJ VFRFUikgfAlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9CX1BBTkVMX0ZJVFRFUikgfAlc CisJQklUX1VMTChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9BKSB8CVwKKwlCSVRfVUxMKFBPV0VS X0RPTUFJTl9UUkFOU0NPREVSX0IpIHwJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJ X0JfTEFORVMpIHwJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVMpIHwJ XAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRFNJKSB8CQlcCisJQklUX1VMTChQT1dFUl9E T01BSU5fUE9SVF9DUlQpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9WR0EpIHwJCQlcCisJ QklUX1VMTChQT1dFUl9ET01BSU5fQVVESU8pIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9B VVhfQikgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9DKSB8CQlcCisJQklUX1VMTChQ T1dFUl9ET01BSU5fR01CVVMpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKIAog I2RlZmluZSBWTFZfRFBJT19DTU5fQkNfUE9XRVJfRE9NQUlOUyAoCQlcCi0JQklUKFBPV0VSX0RP TUFJTl9QT1JUX0RESV9CX0xBTkVTKSB8CVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0Nf TEFORVMpIHwJXAotCUJJVChQT1dFUl9ET01BSU5fUE9SVF9DUlQpIHwJCVwKLQlCSVQoUE9XRVJf RE9NQUlOX0FVWF9CKSB8CQlcCi0JQklUKFBPV0VSX0RPTUFJTl9BVVhfQykgfAkJXAotCUJJVChQ T1dFUl9ET01BSU5fSU5JVCkpCisJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9MQU5F UykgfAlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQ19MQU5FUykgfAlcCisJQklU X1VMTChQT1dFUl9ET01BSU5fUE9SVF9DUlQpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9B VVhfQikgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9DKSB8CQlcCisJQklUX1VMTChQ T1dFUl9ET01BSU5fSU5JVCkpCiAKICNkZWZpbmUgVkxWX0RQSU9fVFhfQl9MQU5FU18wMV9QT1dF Ul9ET01BSU5TICgJXAotCUJJVChQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9MQU5FUykgfAlcCi0J QklUKFBPV0VSX0RPTUFJTl9BVVhfQikgfAkJXAotCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCisJ QklUX1VMTChQT1dFUl9ET01BSU5fUE9SVF9ERElfQl9MQU5FUykgfAlcCisJQklUX1VMTChQT1dF Ul9ET01BSU5fQVVYX0IpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKIAogI2Rl ZmluZSBWTFZfRFBJT19UWF9CX0xBTkVTXzIzX1BPV0VSX0RPTUFJTlMgKAlcCi0JQklUKFBPV0VS X0RPTUFJTl9QT1JUX0RESV9CX0xBTkVTKSB8CVwKLQlCSVQoUE9XRVJfRE9NQUlOX0FVWF9CKSB8 CQlcCi0JQklUKFBPV0VSX0RPTUFJTl9JTklUKSkKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JU X0RESV9CX0xBTkVTKSB8CVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfQikgfAkJXAorCUJJ VF9VTEwoUE9XRVJfRE9NQUlOX0lOSVQpKQogCiAjZGVmaW5lIFZMVl9EUElPX1RYX0NfTEFORVNf MDFfUE9XRVJfRE9NQUlOUyAoCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVMp IHwJXAotCUJJVChQT1dFUl9ET01BSU5fQVVYX0MpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX0lO SVQpKQorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVMpIHwJXAorCUJJVF9V TEwoUE9XRVJfRE9NQUlOX0FVWF9DKSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkp CiAKICNkZWZpbmUgVkxWX0RQSU9fVFhfQ19MQU5FU18yM19QT1dFUl9ET01BSU5TICgJXAotCUJJ VChQT1dFUl9ET01BSU5fUE9SVF9ERElfQ19MQU5FUykgfAlcCi0JQklUKFBPV0VSX0RPTUFJTl9B VVhfQykgfAkJXAotCUJJVChQT1dFUl9ET01BSU5fSU5JVCkpCisJQklUX1VMTChQT1dFUl9ET01B SU5fUE9SVF9ERElfQ19MQU5FUykgfAlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVYX0MpIHwJ CVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKIAogI2RlZmluZSBDSFZfRElTUExBWV9Q T1dFUl9ET01BSU5TICgJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQSkgfAkJXAotCUJJVChQ T1dFUl9ET01BSU5fUElQRV9CKSB8CQlcCi0JQklUKFBPV0VSX0RPTUFJTl9QSVBFX0MpIHwJCVwK LQlCSVQoUE9XRVJfRE9NQUlOX1BJUEVfQV9QQU5FTF9GSVRURVIpIHwJXAotCUJJVChQT1dFUl9E T01BSU5fUElQRV9CX1BBTkVMX0ZJVFRFUikgfAlcCi0JQklUKFBPV0VSX0RPTUFJTl9QSVBFX0Nf UEFORUxfRklUVEVSKSB8CVwKLQlCSVQoUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfQSkgfAlcCi0J QklUKFBPV0VSX0RPTUFJTl9UUkFOU0NPREVSX0IpIHwJXAotCUJJVChQT1dFUl9ET01BSU5fVFJB TlNDT0RFUl9DKSB8CVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfTEFORVMpIHwJXAot CUJJVChQT1dFUl9ET01BSU5fUE9SVF9ERElfQ19MQU5FUykgfAlcCi0JQklUKFBPV0VSX0RPTUFJ Tl9QT1JUX0RESV9EX0xBTkVTKSB8CVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRFNJKSB8CQlc Ci0JQklUKFBPV0VSX0RPTUFJTl9WR0EpIHwJCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9BVURJTykg fAkJXAotCUJJVChQT1dFUl9ET01BSU5fQVVYX0IpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX0FV WF9DKSB8CQlcCi0JQklUKFBPV0VSX0RPTUFJTl9BVVhfRCkgfAkJXAotCUJJVChQT1dFUl9ET01B SU5fR01CVVMpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX0lOSVQpKQorCUJJVF9VTEwoUE9XRVJf RE9NQUlOX1BJUEVfQSkgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfQikgfAkJXAor CUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfQykgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlO X1BJUEVfQV9QQU5FTF9GSVRURVIpIHwJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfQl9Q QU5FTF9GSVRURVIpIHwJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfQ19QQU5FTF9GSVRU RVIpIHwJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1RSQU5TQ09ERVJfQSkgfAlcCisJQklUX1VM TChQT1dFUl9ET01BSU5fVFJBTlNDT0RFUl9CKSB8CVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9U UkFOU0NPREVSX0MpIHwJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0JfTEFORVMp IHwJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVMpIHwJXAorCUJJVF9V TEwoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0RfTEFORVMpIHwJXAorCUJJVF9VTEwoUE9XRVJfRE9N QUlOX1BPUlRfRFNJKSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fVkdBKSB8CQkJXAorCUJJ VF9VTEwoUE9XRVJfRE9NQUlOX0FVRElPKSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fQVVY X0IpIHwJCVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfQykgfAkJXAorCUJJVF9VTEwoUE9X RVJfRE9NQUlOX0FVWF9EKSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fR01CVVMpIHwJCVwK KwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9JTklUKSkKIAogI2RlZmluZSBDSFZfRFBJT19DTU5fQkNf UE9XRVJfRE9NQUlOUyAoCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9CX0xBTkVTKSB8 CVwKLQlCSVQoUE9XRVJfRE9NQUlOX1BPUlRfRERJX0NfTEFORVMpIHwJXAotCUJJVChQT1dFUl9E T01BSU5fQVVYX0IpIHwJCVwKLQlCSVQoUE9XRVJfRE9NQUlOX0FVWF9DKSB8CQlcCi0JQklUKFBP V0VSX0RPTUFJTl9JTklUKSkKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9CX0xBTkVT KSB8CVwKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9DX0xBTkVTKSB8CVwKKwlCSVRf VUxMKFBPV0VSX0RPTUFJTl9BVVhfQikgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0FVWF9D KSB8CQlcCisJQklUX1VMTChQT1dFUl9ET01BSU5fSU5JVCkpCiAKICNkZWZpbmUgQ0hWX0RQSU9f Q01OX0RfUE9XRVJfRE9NQUlOUyAoCQlcCi0JQklUKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9EX0xB TkVTKSB8CVwKLQlCSVQoUE9XRVJfRE9NQUlOX0FVWF9EKSB8CQlcCi0JQklUKFBPV0VSX0RPTUFJ Tl9JTklUKSkKKwlCSVRfVUxMKFBPV0VSX0RPTUFJTl9QT1JUX0RESV9EX0xBTkVTKSB8CVwKKwlC SVRfVUxMKFBPV0VSX0RPTUFJTl9BVVhfRCkgfAkJXAorCUJJVF9VTEwoUE9XRVJfRE9NQUlOX0lO SVQpKQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9vcHMgaTl4eF9hbHdh eXNfb25fcG93ZXJfd2VsbF9vcHMgPSB7CiAJLnN5bmNfaHcgPSBpOXh4X2Fsd2F5c19vbl9wb3dl cl93ZWxsX25vb3AsCkBAIC0yMzg4LDcgKzIzODgsNyBAQCBpbnQgaW50ZWxfcG93ZXJfZG9tYWlu c19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlkZXZfcHJpdi0+Y3Ny LmFsbG93ZWRfZGNfbWFzayA9IGdldF9hbGxvd2VkX2RjX21hc2soZGV2X3ByaXYsCiAJCQkJCQkJ ICAgIGk5MTUuZW5hYmxlX2RjKTsKIAotCUJVSUxEX0JVR19PTihQT1dFUl9ET01BSU5fTlVNID4g MzEpOworCUJVSUxEX0JVR19PTihQT1dFUl9ET01BSU5fTlVNID4gNjQpOwogCiAJbXV0ZXhfaW5p dCgmcG93ZXJfZG9tYWlucy0+bG9jayk7CiAKLS0gCjIuOS4zCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK