From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Yao Subject: [PATCH v3 4/7] drm/rockchip: vop: group vop registers Date: Tue, 18 Jul 2017 10:28:39 +0800 Message-ID: <1500344920-28356-1-git-send-email-mark.yao@rock-chips.com> References: <1500344888-28165-1-git-send-email-mark.yao@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from regular1.263xmail.com (regular1.263xmail.com [211.150.99.133]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5AF0B6E2E5 for ; Tue, 18 Jul 2017 02:28:46 +0000 (UTC) In-Reply-To: <1500344888-28165-1-git-send-email-mark.yao@rock-chips.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Mark Yao , David Airlie , Heiko Stuebner Cc: linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org R3JvdXBpbmcgdGhlIHZvcCByZWdpc3RlcnMgZmFjaWxpdGF0ZXMgbWFrZSByZWdpc3RlcgpkZWZp bml0aW9uIGNsZWFyZXIsIGFuZCBhbHNvIGlzIHVzZWZ1bCBmb3IgZGlmZmVyZW50IHZvcApyZXVz ZSB0aGUgc2FtZSBncm91cCByZWdpc3Rlci4KClNpZ25lZC1vZmYtYnk6IE1hcmsgWWFvIDxtYXJr Lnlhb0Byb2NrLWNoaXBzLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2No aXBfZHJtX3ZvcC5jIHwgIDk5ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5oIHwgIDYxICsrKysrKysrKy0tLS0tLS0K IGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVnLmMgfCAxMDYgKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxNDIgaW5zZXJ0aW9ucygr KSwgMTI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC9yb2NrY2hpcF9kcm1fdm9wLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBf ZHJtX3ZvcC5jCmluZGV4IGFkZDA5N2MuLjRlOWQzNzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYwpAQCAtNDIsMjcgKzQyLDIwIEBACiAjaW5jbHVkZSAi cm9ja2NoaXBfZHJtX3Bzci5oIgogI2luY2x1ZGUgInJvY2tjaGlwX2RybV92b3AuaCIKIAotI2Rl ZmluZSBSRUdfU0VUKHgsIGJhc2UsIHJlZywgdiwgbW9kZSkgXAotCQl2b3BfbWFza193cml0ZSh4 LCBiYXNlICsgcmVnLm9mZnNldCwgcmVnLm1hc2ssIHJlZy5zaGlmdCwgXAotCQkJICAgICAgIHYs IHJlZy53cml0ZV9tYXNrLCByZWcucmVsYXhlZCkKLSNkZWZpbmUgUkVHX1NFVF9NQVNLKHgsIGJh c2UsIHJlZywgbWFzaywgdiwgbW9kZSkgXAotCQl2b3BfbWFza193cml0ZSh4LCBiYXNlICsgcmVn Lm9mZnNldCwgXAotCQkJICAgICAgIG1hc2ssIHJlZy5zaGlmdCwgdiwgcmVnLndyaXRlX21hc2ss IHJlZy5yZWxheGVkKQotCiAjZGVmaW5lIFZPUF9XSU5fU0VUKHgsIHdpbiwgbmFtZSwgdikgXAot CQlSRUdfU0VUKHgsIHdpbi0+YmFzZSwgd2luLT5waHktPm5hbWUsIHYsIFJFTEFYRUQpCisJCXZv cF9yZWdfc2V0KHZvcCwgJndpbi0+cGh5LT5uYW1lLCB3aW4tPmJhc2UsIH4wLCB2LCAjbmFtZSkK ICNkZWZpbmUgVk9QX1NDTF9TRVQoeCwgd2luLCBuYW1lLCB2KSBcCi0JCVJFR19TRVQoeCwgd2lu LT5iYXNlLCB3aW4tPnBoeS0+c2NsLT5uYW1lLCB2LCBSRUxBWEVEKQorCQl2b3BfcmVnX3NldCh2 b3AsICZ3aW4tPnBoeS0+c2NsLT5uYW1lLCB3aW4tPmJhc2UsIH4wLCB2LCAjbmFtZSkKICNkZWZp bmUgVk9QX1NDTF9TRVRfRVhUKHgsIHdpbiwgbmFtZSwgdikgXAotCQlSRUdfU0VUKHgsIHdpbi0+ YmFzZSwgd2luLT5waHktPnNjbC0+ZXh0LT5uYW1lLCB2LCBSRUxBWEVEKQotI2RlZmluZSBWT1Bf Q1RSTF9TRVQoeCwgbmFtZSwgdikgXAotCQlSRUdfU0VUKHgsIDAsICh4KS0+ZGF0YS0+Y3RybC0+ bmFtZSwgdiwgTk9STUFMKQorCQl2b3BfcmVnX3NldCh2b3AsICZ3aW4tPnBoeS0+c2NsLT5leHQt Pm5hbWUsIFwKKwkJCSAgICB3aW4tPmJhc2UsIH4wLCB2LCAjbmFtZSkKKworI2RlZmluZSBWT1Bf SU5UUl9TRVRfTUFTSyh2b3AsIG5hbWUsIG1hc2ssIHYpIFwKKwkJdm9wX3JlZ19zZXQodm9wLCAm dm9wLT5kYXRhLT5pbnRyLT5uYW1lLCAwLCBtYXNrLCB2LCAjbmFtZSkKIAotI2RlZmluZSBWT1Bf SU5UUl9HRVQodm9wLCBuYW1lKSBcCi0JCXZvcF9yZWFkX3JlZyh2b3AsIDAsICZ2b3AtPmRhdGEt PmN0cmwtPm5hbWUpCisjZGVmaW5lIFZPUF9SRUdfU0VUKHZvcCwgZ3JvdXAsIG5hbWUsIHYpIFwK KwkJICAgIHZvcF9yZWdfc2V0KHZvcCwgJnZvcC0+ZGF0YS0+Z3JvdXAtPm5hbWUsIDAsIH4wLCB2 LCAjbmFtZSkKIAotI2RlZmluZSBWT1BfSU5UUl9TRVQodm9wLCBuYW1lLCBtYXNrLCB2KSBcCi0J CVJFR19TRVRfTUFTSyh2b3AsIDAsIHZvcC0+ZGF0YS0+aW50ci0+bmFtZSwgbWFzaywgdiwgTk9S TUFMKQogI2RlZmluZSBWT1BfSU5UUl9TRVRfVFlQRSh2b3AsIG5hbWUsIHR5cGUsIHYpIFwKIAlk byB7IFwKIAkJaW50IGksIHJlZyA9IDAsIG1hc2sgPSAwOyBcCkBAIC03MiwxMyArNjUsMTMgQEAK IAkJCQltYXNrIHw9IDEgPDwgaTsgXAogCQkJfSBcCiAJCX0gXAotCQlWT1BfSU5UUl9TRVQodm9w LCBuYW1lLCBtYXNrLCByZWcpOyBcCisJCVZPUF9JTlRSX1NFVF9NQVNLKHZvcCwgbmFtZSwgbWFz aywgcmVnKTsgXAogCX0gd2hpbGUgKDApCiAjZGVmaW5lIFZPUF9JTlRSX0dFVF9UWVBFKHZvcCwg bmFtZSwgdHlwZSkgXAogCQl2b3BfZ2V0X2ludHJfdHlwZSh2b3AsICZ2b3AtPmRhdGEtPmludHIt Pm5hbWUsIHR5cGUpCiAKICNkZWZpbmUgVk9QX1dJTl9HRVQoeCwgd2luLCBuYW1lKSBcCi0JCXZv cF9yZWFkX3JlZyh4LCB3aW4tPmJhc2UsICZ3aW4tPnBoeS0+bmFtZSkKKwkJdm9wX3JlYWRfcmVn KHgsIHdpbi0+b2Zmc2V0LCB3aW4tPnBoeS0+bmFtZSkKIAogI2RlZmluZSBWT1BfV0lOX0dFVF9Z UkdCQUREUih2b3AsIHdpbikgXAogCQl2b3BfcmVhZGwodm9wLCB3aW4tPmJhc2UgKyB3aW4tPnBo eS0+eXJnYl9tc3Qub2Zmc2V0KQpAQCAtMTYwLDE0ICsxNTMsMjAgQEAgc3RhdGljIGlubGluZSB1 aW50MzJfdCB2b3BfcmVhZF9yZWcoc3RydWN0IHZvcCAqdm9wLCB1aW50MzJfdCBiYXNlLAogCXJl dHVybiAodm9wX3JlYWRsKHZvcCwgYmFzZSArIHJlZy0+b2Zmc2V0KSA+PiByZWctPnNoaWZ0KSAm IHJlZy0+bWFzazsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHZvcF9tYXNrX3dyaXRlKHN0cnVj dCB2b3AgKnZvcCwgdWludDMyX3Qgb2Zmc2V0LAotCQkJCSAgdWludDMyX3QgbWFzaywgdWludDMy X3Qgc2hpZnQsIHVpbnQzMl90IHYsCi0JCQkJICBib29sIHdyaXRlX21hc2ssIGJvb2wgcmVsYXhl ZCkKK3N0YXRpYyB2b2lkIHZvcF9yZWdfc2V0KHN0cnVjdCB2b3AgKnZvcCwgY29uc3Qgc3RydWN0 IHZvcF9yZWcgKnJlZywKKwkJCXVpbnQzMl90IF9vZmZzZXQsIHVpbnQzMl90IF9tYXNrLCB1aW50 MzJfdCB2LAorCQkJY29uc3QgY2hhciAqcmVnX25hbWUpCiB7Ci0JaWYgKCFtYXNrKQorCWludCBv ZmZzZXQgPSByZWctPm9mZnNldCArIF9vZmZzZXQ7CisJaW50IG1hc2sgPSByZWctPm1hc2sgJiBf bWFzazsKKwlpbnQgc2hpZnQgPSByZWctPnNoaWZ0OworCisJaWYgKCFyZWcgfHwgIXJlZy0+bWFz aykgeworCQlkZXZfZGJnKHZvcC0+ZGV2LCAiV2FybmluZzogbm90IHN1cHBvcnQgJXNcbiIsIHJl Z19uYW1lKTsKIAkJcmV0dXJuOworCX0KIAotCWlmICh3cml0ZV9tYXNrKSB7CisJaWYgKHJlZy0+ d3JpdGVfbWFzaykgewogCQl2ID0gKCh2IDw8IHNoaWZ0KSAmIDB4ZmZmZikgfCAobWFzayA8PCAo c2hpZnQgKyAxNikpOwogCX0gZWxzZSB7CiAJCXVpbnQzMl90IGNhY2hlZF92YWwgPSB2b3AtPnJl Z3NiYWtbb2Zmc2V0ID4+IDJdOwpAQCAtMTc2LDcgKzE3NSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9p ZCB2b3BfbWFza193cml0ZShzdHJ1Y3Qgdm9wICp2b3AsIHVpbnQzMl90IG9mZnNldCwKIAkJdm9w LT5yZWdzYmFrW29mZnNldCA+PiAyXSA9IHY7CiAJfQogCi0JaWYgKHJlbGF4ZWQpCisJaWYgKHJl Zy0+cmVsYXhlZCkKIAkJd3JpdGVsX3JlbGF4ZWQodiwgdm9wLT5yZWdzICsgb2Zmc2V0KTsKIAll bHNlCiAJCXdyaXRlbCh2LCB2b3AtPnJlZ3MgKyBvZmZzZXQpOwpAQCAtMTk4LDcgKzE5Nyw3IEBA IHN0YXRpYyBpbmxpbmUgdWludDMyX3Qgdm9wX2dldF9pbnRyX3R5cGUoc3RydWN0IHZvcCAqdm9w LAogCiBzdGF0aWMgaW5saW5lIHZvaWQgdm9wX2NmZ19kb25lKHN0cnVjdCB2b3AgKnZvcCkKIHsK LQlWT1BfQ1RSTF9TRVQodm9wLCBjZmdfZG9uZSwgMSk7CisJVk9QX1JFR19TRVQodm9wLCBjb21t b24sIGNmZ19kb25lLCAxKTsKIH0KIAogc3RhdGljIGJvb2wgaGFzX3JiX3N3YXBwZWQodWludDMy X3QgZm9ybWF0KQpAQCAtNDcxLDcgKzQ3MCw3IEBAIHN0YXRpYyB2b2lkIHZvcF9saW5lX2ZsYWdf aXJxX2VuYWJsZShzdHJ1Y3Qgdm9wICp2b3AsIGludCBsaW5lX251bSkKIAogCXNwaW5fbG9ja19p cnFzYXZlKCZ2b3AtPmlycV9sb2NrLCBmbGFncyk7CiAKLQlWT1BfSU5UUl9TRVQodm9wLCBsaW5l X2ZsYWdfbnVtWzBdLCBsaW5lX251bSk7CisJVk9QX1JFR19TRVQodm9wLCBpbnRyLCBsaW5lX2Zs YWdfbnVtWzBdLCBsaW5lX251bSk7CiAJVk9QX0lOVFJfU0VUX1RZUEUodm9wLCBjbGVhciwgTElO RV9GTEFHX0lOVFIsIDEpOwogCVZPUF9JTlRSX1NFVF9UWVBFKHZvcCwgZW5hYmxlLCBMSU5FX0ZM QUdfSU5UUiwgMSk7CiAKQEAgLTUzNyw3ICs1MzYsNyBAQCBzdGF0aWMgaW50IHZvcF9lbmFibGUo c3RydWN0IGRybV9jcnRjICpjcnRjKQogCiAJc3Bpbl9sb2NrKCZ2b3AtPnJlZ19sb2NrKTsKIAot CVZPUF9DVFJMX1NFVCh2b3AsIHN0YW5kYnksIDApOworCVZPUF9SRUdfU0VUKHZvcCwgY29tbW9u LCBzdGFuZGJ5LCAxKTsKIAogCXNwaW5fdW5sb2NrKCZ2b3AtPnJlZ19sb2NrKTsKIApAQCAtNTk3 LDcgKzU5Niw3IEBAIHN0YXRpYyB2b2lkIHZvcF9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRj ICpjcnRjKQogCiAJc3Bpbl9sb2NrKCZ2b3AtPnJlZ19sb2NrKTsKIAotCVZPUF9DVFJMX1NFVCh2 b3AsIHN0YW5kYnksIDEpOworCVZPUF9SRUdfU0VUKHZvcCwgY29tbW9uLCBzdGFuZGJ5LCAxKTsK IAogCXNwaW5fdW5sb2NrKCZ2b3AtPnJlZ19sb2NrKTsKIApAQCAtOTIwLDcgKzkxOSw3IEBAIHN0 YXRpYyB2b2lkIHZvcF9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAKIAkJc3Bp bl9sb2NrKCZ2b3AtPnJlZ19sb2NrKTsKIAotCQlWT1BfQ1RSTF9TRVQodm9wLCBzdGFuZGJ5LCAx KTsKKwkJVk9QX1JFR19TRVQodm9wLCBjb21tb24sIHN0YW5kYnksIDEpOwogCiAJCXNwaW5fdW5s b2NrKCZ2b3AtPnJlZ19sb2NrKTsKIApAQCAtOTM0LDI5ICs5MzMsMjkgQEAgc3RhdGljIHZvaWQg dm9wX2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAkJICAgQklUKEhTWU5DX1BP U0lUSVZFKSA6IDA7CiAJcGluX3BvbCB8PSAoYWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1fTU9E RV9GTEFHX1BWU1lOQykgPwogCQkgICBCSVQoVlNZTkNfUE9TSVRJVkUpIDogMDsKLQlWT1BfQ1RS TF9TRVQodm9wLCBwaW5fcG9sLCBwaW5fcG9sKTsKKwlWT1BfUkVHX1NFVCh2b3AsIG91dHB1dCwg cGluX3BvbCwgcGluX3BvbCk7CiAKIAlzd2l0Y2ggKHMtPm91dHB1dF90eXBlKSB7CiAJY2FzZSBE Uk1fTU9ERV9DT05ORUNUT1JfTFZEUzoKLQkJVk9QX0NUUkxfU0VUKHZvcCwgcmdiX2VuLCAxKTsK LQkJVk9QX0NUUkxfU0VUKHZvcCwgcmdiX3Bpbl9wb2wsIHBpbl9wb2wpOworCQlWT1BfUkVHX1NF VCh2b3AsIG91dHB1dCwgcmdiX2VuLCAxKTsKKwkJVk9QX1JFR19TRVQodm9wLCBvdXRwdXQsIHJn Yl9waW5fcG9sLCBwaW5fcG9sKTsKIAkJYnJlYWs7CiAJY2FzZSBEUk1fTU9ERV9DT05ORUNUT1Jf ZURQOgotCQlWT1BfQ1RSTF9TRVQodm9wLCBlZHBfcGluX3BvbCwgcGluX3BvbCk7Ci0JCVZPUF9D VFJMX1NFVCh2b3AsIGVkcF9lbiwgMSk7CisJCVZPUF9SRUdfU0VUKHZvcCwgb3V0cHV0LCBlZHBf cGluX3BvbCwgcGluX3BvbCk7CisJCVZPUF9SRUdfU0VUKHZvcCwgb3V0cHV0LCBlZHBfZW4sIDEp OwogCQlicmVhazsKIAljYXNlIERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQToKLQkJVk9QX0NUUkxf U0VUKHZvcCwgaGRtaV9waW5fcG9sLCBwaW5fcG9sKTsKLQkJVk9QX0NUUkxfU0VUKHZvcCwgaGRt aV9lbiwgMSk7CisJCVZPUF9SRUdfU0VUKHZvcCwgb3V0cHV0LCBoZG1pX3Bpbl9wb2wsIHBpbl9w b2wpOworCQlWT1BfUkVHX1NFVCh2b3AsIG91dHB1dCwgaGRtaV9lbiwgMSk7CiAJCWJyZWFrOwog CWNhc2UgRFJNX01PREVfQ09OTkVDVE9SX0RTSToKLQkJVk9QX0NUUkxfU0VUKHZvcCwgbWlwaV9w aW5fcG9sLCBwaW5fcG9sKTsKLQkJVk9QX0NUUkxfU0VUKHZvcCwgbWlwaV9lbiwgMSk7CisJCVZP UF9SRUdfU0VUKHZvcCwgb3V0cHV0LCBtaXBpX3Bpbl9wb2wsIHBpbl9wb2wpOworCQlWT1BfUkVH X1NFVCh2b3AsIG91dHB1dCwgbWlwaV9lbiwgMSk7CiAJCWJyZWFrOwogCWNhc2UgRFJNX01PREVf Q09OTkVDVE9SX0Rpc3BsYXlQb3J0OgogCQlwaW5fcG9sICY9IH5CSVQoRENMS19JTlZFUlQpOwot CQlWT1BfQ1RSTF9TRVQodm9wLCBkcF9waW5fcG9sLCBwaW5fcG9sKTsKLQkJVk9QX0NUUkxfU0VU KHZvcCwgZHBfZW4sIDEpOworCQlWT1BfUkVHX1NFVCh2b3AsIG91dHB1dCwgZHBfcGluX3BvbCwg cGluX3BvbCk7CisJCVZPUF9SRUdfU0VUKHZvcCwgb3V0cHV0LCBkcF9lbiwgMSk7CiAJCWJyZWFr OwogCWRlZmF1bHQ6CiAJCURSTV9ERVZfRVJST1Iodm9wLT5kZXYsICJ1bnN1cHBvcnRlZCBjb25u ZWN0b3JfdHlwZSBbJWRdXG4iLApAQCAtOTY5LDIzICs5NjgsMjMgQEAgc3RhdGljIHZvaWQgdm9w X2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlpZiAocy0+b3V0cHV0X21vZGUg PT0gUk9DS0NISVBfT1VUX01PREVfQUFBQSAmJgogCSAgICAhKHZvcF9kYXRhLT5mZWF0dXJlICYg Vk9QX0ZFQVRVUkVfT1VUUFVUX1JHQjEwKSkKIAkJcy0+b3V0cHV0X21vZGUgPSBST0NLQ0hJUF9P VVRfTU9ERV9QODg4OwotCVZPUF9DVFJMX1NFVCh2b3AsIG91dF9tb2RlLCBzLT5vdXRwdXRfbW9k ZSk7CisJVk9QX1JFR19TRVQodm9wLCBjb21tb24sIG91dF9tb2RlLCBzLT5vdXRwdXRfbW9kZSk7 CiAKLQlWT1BfQ1RSTF9TRVQodm9wLCBodG90YWxfcHcsIChodG90YWwgPDwgMTYpIHwgaHN5bmNf bGVuKTsKKwlWT1BfUkVHX1NFVCh2b3AsIG1vZGVzZXQsIGh0b3RhbF9wdywgKGh0b3RhbCA8PCAx NikgfCBoc3luY19sZW4pOwogCXZhbCA9IGhhY3Rfc3QgPDwgMTY7CiAJdmFsIHw9IGhhY3RfZW5k OwotCVZPUF9DVFJMX1NFVCh2b3AsIGhhY3Rfc3RfZW5kLCB2YWwpOwotCVZPUF9DVFJMX1NFVCh2 b3AsIGhwb3N0X3N0X2VuZCwgdmFsKTsKKwlWT1BfUkVHX1NFVCh2b3AsIG1vZGVzZXQsIGhhY3Rf c3RfZW5kLCB2YWwpOworCVZPUF9SRUdfU0VUKHZvcCwgbW9kZXNldCwgaHBvc3Rfc3RfZW5kLCB2 YWwpOwogCi0JVk9QX0NUUkxfU0VUKHZvcCwgdnRvdGFsX3B3LCAodnRvdGFsIDw8IDE2KSB8IHZz eW5jX2xlbik7CisJVk9QX1JFR19TRVQodm9wLCBtb2Rlc2V0LCB2dG90YWxfcHcsICh2dG90YWwg PDwgMTYpIHwgdnN5bmNfbGVuKTsKIAl2YWwgPSB2YWN0X3N0IDw8IDE2OwogCXZhbCB8PSB2YWN0 X2VuZDsKLQlWT1BfQ1RSTF9TRVQodm9wLCB2YWN0X3N0X2VuZCwgdmFsKTsKLQlWT1BfQ1RSTF9T RVQodm9wLCB2cG9zdF9zdF9lbmQsIHZhbCk7CisJVk9QX1JFR19TRVQodm9wLCBtb2Rlc2V0LCB2 YWN0X3N0X2VuZCwgdmFsKTsKKwlWT1BfUkVHX1NFVCh2b3AsIG1vZGVzZXQsIHZwb3N0X3N0X2Vu ZCwgdmFsKTsKIAogCWNsa19zZXRfcmF0ZSh2b3AtPmRjbGssIGFkanVzdGVkX21vZGUtPmNsb2Nr ICogMTAwMCk7CiAKLQlWT1BfQ1RSTF9TRVQodm9wLCBzdGFuZGJ5LCAwKTsKKwlWT1BfUkVHX1NF VCh2b3AsIGNvbW1vbiwgc3RhbmRieSwgMCk7CiAKIAlyb2NrY2hpcF9kcm1fcHNyX2FjdGl2YXRl KCZ2b3AtPmNydGMpOwogfQpAQCAtMTQ0Niw4ICsxNDQ1LDggQEAgc3RhdGljIGludCB2b3BfaW5p dGlhbChzdHJ1Y3Qgdm9wICp2b3ApCiAKIAltZW1jcHkodm9wLT5yZWdzYmFrLCB2b3AtPnJlZ3Ms IHZvcC0+bGVuKTsKIAotCVZPUF9DVFJMX1NFVCh2b3AsIGdsb2JhbF9yZWdkb25lX2VuLCAxKTsK LQlWT1BfQ1RSTF9TRVQodm9wLCBkc3BfYmxhbmssIDApOworCVZPUF9SRUdfU0VUKHZvcCwgbWlz YywgZ2xvYmFsX3JlZ2RvbmVfZW4sIDEpOworCVZPUF9SRUdfU0VUKHZvcCwgY29tbW9uLCBkc3Bf YmxhbmssIDApOwogCiAJZm9yIChpID0gMDsgaSA8IHZvcF9kYXRhLT53aW5fc2l6ZTsgaSsrKSB7 CiAJCWNvbnN0IHN0cnVjdCB2b3Bfd2luX2RhdGEgKndpbiA9ICZ2b3BfZGF0YS0+d2luW2ldOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuaCBi L2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmgKaW5kZXggOWM1ZGEz Mi4uM2JhOTYyYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlw X2RybV92b3AuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3Zv cC5oCkBAIC0yNSw0MiArMjUsNTAgQEAgZW51bSB2b3BfZGF0YV9mb3JtYXQgewogfTsKIAogc3Ry dWN0IHZvcF9yZWcgewotCXVpbnQzMl90IG9mZnNldDsKLQl1aW50MzJfdCBzaGlmdDsKIAl1aW50 MzJfdCBtYXNrOworCXVpbnQxNl90IG9mZnNldDsKKwl1aW50OF90IHNoaWZ0OwogCWJvb2wgd3Jp dGVfbWFzazsKKwlib29sIHJlbGF4ZWQ7CiB9OwogCi1zdHJ1Y3Qgdm9wX2N0cmwgewotCXN0cnVj dCB2b3BfcmVnIHN0YW5kYnk7Ci0Jc3RydWN0IHZvcF9yZWcgZGF0YV9ibGFuazsKLQlzdHJ1Y3Qg dm9wX3JlZyBnYXRlX2VuOwotCXN0cnVjdCB2b3BfcmVnIG1tdV9lbjsKLQlzdHJ1Y3Qgdm9wX3Jl ZyByZ2JfZW47CitzdHJ1Y3Qgdm9wX21vZGVzZXQgeworCXN0cnVjdCB2b3BfcmVnIGh0b3RhbF9w dzsKKwlzdHJ1Y3Qgdm9wX3JlZyBoYWN0X3N0X2VuZDsKKwlzdHJ1Y3Qgdm9wX3JlZyBocG9zdF9z dF9lbmQ7CisJc3RydWN0IHZvcF9yZWcgdnRvdGFsX3B3OworCXN0cnVjdCB2b3BfcmVnIHZhY3Rf c3RfZW5kOworCXN0cnVjdCB2b3BfcmVnIHZwb3N0X3N0X2VuZDsKK307CisKK3N0cnVjdCB2b3Bf b3V0cHV0IHsKKwlzdHJ1Y3Qgdm9wX3JlZyBwaW5fcG9sOworCXN0cnVjdCB2b3BfcmVnIGRwX3Bp bl9wb2w7CisJc3RydWN0IHZvcF9yZWcgZWRwX3Bpbl9wb2w7CisJc3RydWN0IHZvcF9yZWcgaGRt aV9waW5fcG9sOworCXN0cnVjdCB2b3BfcmVnIG1pcGlfcGluX3BvbDsKKwlzdHJ1Y3Qgdm9wX3Jl ZyByZ2JfcGluX3BvbDsKKwlzdHJ1Y3Qgdm9wX3JlZyBkcF9lbjsKIAlzdHJ1Y3Qgdm9wX3JlZyBl ZHBfZW47CiAJc3RydWN0IHZvcF9yZWcgaGRtaV9lbjsKIAlzdHJ1Y3Qgdm9wX3JlZyBtaXBpX2Vu OwotCXN0cnVjdCB2b3BfcmVnIGRwX2VuOworCXN0cnVjdCB2b3BfcmVnIHJnYl9lbjsKK307CisK K3N0cnVjdCB2b3BfY29tbW9uIHsKKwlzdHJ1Y3Qgdm9wX3JlZyBjZmdfZG9uZTsKIAlzdHJ1Y3Qg dm9wX3JlZyBkc3BfYmxhbms7Ci0Jc3RydWN0IHZvcF9yZWcgb3V0X21vZGU7CisJc3RydWN0IHZv cF9yZWcgZGF0YV9ibGFuazsKIAlzdHJ1Y3Qgdm9wX3JlZyBkaXRoZXJfZG93bjsKIAlzdHJ1Y3Qg dm9wX3JlZyBkaXRoZXJfdXA7Ci0Jc3RydWN0IHZvcF9yZWcgcGluX3BvbDsKLQlzdHJ1Y3Qgdm9w X3JlZyByZ2JfcGluX3BvbDsKLQlzdHJ1Y3Qgdm9wX3JlZyBoZG1pX3Bpbl9wb2w7Ci0Jc3RydWN0 IHZvcF9yZWcgZWRwX3Bpbl9wb2w7Ci0Jc3RydWN0IHZvcF9yZWcgbWlwaV9waW5fcG9sOwotCXN0 cnVjdCB2b3BfcmVnIGRwX3Bpbl9wb2w7Ci0KLQlzdHJ1Y3Qgdm9wX3JlZyBodG90YWxfcHc7Ci0J c3RydWN0IHZvcF9yZWcgaGFjdF9zdF9lbmQ7Ci0Jc3RydWN0IHZvcF9yZWcgdnRvdGFsX3B3Owot CXN0cnVjdCB2b3BfcmVnIHZhY3Rfc3RfZW5kOwotCXN0cnVjdCB2b3BfcmVnIGhwb3N0X3N0X2Vu ZDsKLQlzdHJ1Y3Qgdm9wX3JlZyB2cG9zdF9zdF9lbmQ7CisJc3RydWN0IHZvcF9yZWcgZ2F0ZV9l bjsKKwlzdHJ1Y3Qgdm9wX3JlZyBtbXVfZW47CisJc3RydWN0IHZvcF9yZWcgb3V0X21vZGU7CisJ c3RydWN0IHZvcF9yZWcgc3RhbmRieTsKK307CiAKK3N0cnVjdCB2b3BfbWlzYyB7CiAJc3RydWN0 IHZvcF9yZWcgZ2xvYmFsX3JlZ2RvbmVfZW47Ci0Jc3RydWN0IHZvcF9yZWcgY2ZnX2RvbmU7CiB9 OwogCiBzdHJ1Y3Qgdm9wX2ludHIgewpAQCAtMTM0LDggKzE0MiwxMSBAQCBzdHJ1Y3Qgdm9wX3dp bl9kYXRhIHsKIH07CiAKIHN0cnVjdCB2b3BfZGF0YSB7Ci0JY29uc3Qgc3RydWN0IHZvcF9jdHJs ICpjdHJsOwogCWNvbnN0IHN0cnVjdCB2b3BfaW50ciAqaW50cjsKKwljb25zdCBzdHJ1Y3Qgdm9w X2NvbW1vbiAqY29tbW9uOworCWNvbnN0IHN0cnVjdCB2b3BfbWlzYyAqbWlzYzsKKwljb25zdCBz dHJ1Y3Qgdm9wX21vZGVzZXQgKm1vZGVzZXQ7CisJY29uc3Qgc3RydWN0IHZvcF9vdXRwdXQgKm91 dHB1dDsKIAljb25zdCBzdHJ1Y3Qgdm9wX3dpbl9kYXRhICp3aW47CiAJdW5zaWduZWQgaW50IHdp bl9zaXplOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBf dm9wX3JlZy5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYwpp bmRleCAwNjRhNDZkLi41M2JjZGQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfdm9wX3JlZy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2Nr Y2hpcF92b3BfcmVnLmMKQEAgLTExNywyNSArMTE3LDMzIEBACiAJLmludHJzID0gcmszMDM2X3Zv cF9pbnRycywKIAkubmludHJzID0gQVJSQVlfU0laRShyazMwMzZfdm9wX2ludHJzKSwKIAkubGlu ZV9mbGFnX251bVswXSA9IFZPUF9SRUcoUkszMDM2X0lOVF9TVEFUVVMsIDB4ZmZmLCAxMiksCi0J LnN0YXR1cyA9IFZPUF9SRUcoUkszMDM2X0lOVF9TVEFUVVMsIDB4ZiwgMCksCi0JLmVuYWJsZSA9 IFZPUF9SRUcoUkszMDM2X0lOVF9TVEFUVVMsIDB4ZiwgNCksCi0JLmNsZWFyID0gVk9QX1JFRyhS SzMwMzZfSU5UX1NUQVRVUywgMHhmLCA4KSwKKwkuc3RhdHVzID0gVk9QX1JFR19TWU5DKFJLMzAz Nl9JTlRfU1RBVFVTLCAweGYsIDApLAorCS5lbmFibGUgPSBWT1BfUkVHX1NZTkMoUkszMDM2X0lO VF9TVEFUVVMsIDB4ZiwgNCksCisJLmNsZWFyID0gVk9QX1JFR19TWU5DKFJLMzAzNl9JTlRfU1RB VFVTLCAweGYsIDgpLAogfTsKIAotc3RhdGljIGNvbnN0IHN0cnVjdCB2b3BfY3RybCByazMwMzZf Y3RybF9kYXRhID0gewotCS5zdGFuZGJ5ID0gVk9QX1JFR19TWU5DKFJLMzAzNl9TWVNfQ1RSTCwg MHgxLCAzMCksCi0JLm91dF9tb2RlID0gVk9QX1JFRyhSSzMwMzZfRFNQX0NUUkwwLCAweGYsIDAp LAotCS5waW5fcG9sID0gVk9QX1JFRyhSSzMwMzZfRFNQX0NUUkwwLCAweGYsIDQpLAorc3RhdGlj IGNvbnN0IHN0cnVjdCB2b3BfbW9kZXNldCByazMwMzZfbW9kZXNldCA9IHsKIAkuaHRvdGFsX3B3 ID0gVk9QX1JFRyhSSzMwMzZfRFNQX0hUT1RBTF9IU19FTkQsIDB4MWZmZjFmZmYsIDApLAogCS5o YWN0X3N0X2VuZCA9IFZPUF9SRUcoUkszMDM2X0RTUF9IQUNUX1NUX0VORCwgMHgxZmZmMWZmZiwg MCksCiAJLnZ0b3RhbF9wdyA9IFZPUF9SRUcoUkszMDM2X0RTUF9WVE9UQUxfVlNfRU5ELCAweDFm ZmYxZmZmLCAwKSwKIAkudmFjdF9zdF9lbmQgPSBWT1BfUkVHKFJLMzAzNl9EU1BfVkFDVF9TVF9F TkQsIDB4MWZmZjFmZmYsIDApLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCB2b3Bfb3V0cHV0 IHJrMzAzNl9vdXRwdXQgPSB7CisJLnBpbl9wb2wgPSBWT1BfUkVHKFJLMzAzNl9EU1BfQ1RSTDAs IDB4ZiwgNCksCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHZvcF9jb21tb24gcmszMDM2X2Nv bW1vbiA9IHsKKwkuc3RhbmRieSA9IFZPUF9SRUdfU1lOQyhSSzMwMzZfU1lTX0NUUkwsIDB4MSwg MzApLAorCS5vdXRfbW9kZSA9IFZPUF9SRUcoUkszMDM2X0RTUF9DVFJMMCwgMHhmLCAwKSwKIAku Y2ZnX2RvbmUgPSBWT1BfUkVHX1NZTkMoUkszMDM2X1JFR19DRkdfRE9ORSwgMHgxLCAwKSwKIH07 CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9wX2RhdGEgcmszMDM2X3ZvcCA9IHsKLQkuY3RybCA9 ICZyazMwMzZfY3RybF9kYXRhLAogCS5pbnRyID0gJnJrMzAzNl9pbnRyLAorCS5jb21tb24gPSAm cmszMDM2X2NvbW1vbiwKKwkubW9kZXNldCA9ICZyazMwMzZfbW9kZXNldCwKKwkub3V0cHV0ID0g JnJrMzAzNl9vdXRwdXQsCiAJLndpbiA9IHJrMzAzNl92b3Bfd2luX2RhdGEsCiAJLndpbl9zaXpl ID0gQVJSQVlfU0laRShyazMwMzZfdm9wX3dpbl9kYXRhKSwKIH07CkBAIC0yMDUsMjcgKzIxMywz MiBAQAogCS5kc3RfYWxwaGFfY3RsID0gVk9QX1JFRyhSSzMyODhfV0lOMl9EU1RfQUxQSEFfQ1RS TCwgMHhmZiwgMCksCiB9OwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IHZvcF9jdHJsIHJrMzI4OF9j dHJsX2RhdGEgPSB7Ci0JLnN0YW5kYnkgPSBWT1BfUkVHX1NZTkMoUkszMjg4X1NZU19DVFJMLCAw eDEsIDIyKSwKLQkuZ2F0ZV9lbiA9IFZPUF9SRUcoUkszMjg4X1NZU19DVFJMLCAweDEsIDIzKSwK LQkubW11X2VuID0gVk9QX1JFRyhSSzMyODhfU1lTX0NUUkwsIDB4MSwgMjApLAorc3RhdGljIGNv bnN0IHN0cnVjdCB2b3BfbW9kZXNldCByazMyODhfbW9kZXNldCA9IHsKKwkuaHRvdGFsX3B3ID0g Vk9QX1JFRyhSSzMyODhfRFNQX0hUT1RBTF9IU19FTkQsIDB4MWZmZjFmZmYsIDApLAorCS5oYWN0 X3N0X2VuZCA9IFZPUF9SRUcoUkszMjg4X0RTUF9IQUNUX1NUX0VORCwgMHgxZmZmMWZmZiwgMCks CisJLnZ0b3RhbF9wdyA9IFZPUF9SRUcoUkszMjg4X0RTUF9WVE9UQUxfVlNfRU5ELCAweDFmZmYx ZmZmLCAwKSwKKwkudmFjdF9zdF9lbmQgPSBWT1BfUkVHKFJLMzI4OF9EU1BfVkFDVF9TVF9FTkQs IDB4MWZmZjFmZmYsIDApLAorCS5ocG9zdF9zdF9lbmQgPSBWT1BfUkVHKFJLMzI4OF9QT1NUX0RT UF9IQUNUX0lORk8sIDB4MWZmZjFmZmYsIDApLAorCS52cG9zdF9zdF9lbmQgPSBWT1BfUkVHKFJL MzI4OF9QT1NUX0RTUF9WQUNUX0lORk8sIDB4MWZmZjFmZmYsIDApLAorfTsKKworc3RhdGljIGNv bnN0IHN0cnVjdCB2b3Bfb3V0cHV0IHJrMzI4OF9vdXRwdXQgPSB7CisJLnBpbl9wb2wgPSBWT1Bf UkVHKFJLMzI4OF9EU1BfQ1RSTDAsIDB4ZiwgNCksCiAJLnJnYl9lbiA9IFZPUF9SRUcoUkszMjg4 X1NZU19DVFJMLCAweDEsIDEyKSwKIAkuaGRtaV9lbiA9IFZPUF9SRUcoUkszMjg4X1NZU19DVFJM LCAweDEsIDEzKSwKIAkuZWRwX2VuID0gVk9QX1JFRyhSSzMyODhfU1lTX0NUUkwsIDB4MSwgMTQp LAogCS5taXBpX2VuID0gVk9QX1JFRyhSSzMyODhfU1lTX0NUUkwsIDB4MSwgMTUpLAorfTsKKwor c3RhdGljIGNvbnN0IHN0cnVjdCB2b3BfY29tbW9uIHJrMzI4OF9jb21tb24gPSB7CisJLnN0YW5k YnkgPSBWT1BfUkVHX1NZTkMoUkszMjg4X1NZU19DVFJMLCAweDEsIDIyKSwKKwkuZ2F0ZV9lbiA9 IFZPUF9SRUcoUkszMjg4X1NZU19DVFJMLCAweDEsIDIzKSwKKwkubW11X2VuID0gVk9QX1JFRyhS SzMyODhfU1lTX0NUUkwsIDB4MSwgMjApLAogCS5kaXRoZXJfZG93biA9IFZPUF9SRUcoUkszMjg4 X0RTUF9DVFJMMSwgMHhmLCAxKSwKIAkuZGl0aGVyX3VwID0gVk9QX1JFRyhSSzMyODhfRFNQX0NU UkwxLCAweDEsIDYpLAogCS5kYXRhX2JsYW5rID0gVk9QX1JFRyhSSzMyODhfRFNQX0NUUkwwLCAw eDEsIDE5KSwKIAkuZHNwX2JsYW5rID0gVk9QX1JFRyhSSzMyODhfRFNQX0NUUkwwLCAweDMsIDE4 KSwKIAkub3V0X21vZGUgPSBWT1BfUkVHKFJLMzI4OF9EU1BfQ1RSTDAsIDB4ZiwgMCksCi0JLnBp bl9wb2wgPSBWT1BfUkVHKFJLMzI4OF9EU1BfQ1RSTDAsIDB4ZiwgNCksCi0JLmh0b3RhbF9wdyA9 IFZPUF9SRUcoUkszMjg4X0RTUF9IVE9UQUxfSFNfRU5ELCAweDFmZmYxZmZmLCAwKSwKLQkuaGFj dF9zdF9lbmQgPSBWT1BfUkVHKFJLMzI4OF9EU1BfSEFDVF9TVF9FTkQsIDB4MWZmZjFmZmYsIDAp LAotCS52dG90YWxfcHcgPSBWT1BfUkVHKFJLMzI4OF9EU1BfVlRPVEFMX1ZTX0VORCwgMHgxZmZm MWZmZiwgMCksCi0JLnZhY3Rfc3RfZW5kID0gVk9QX1JFRyhSSzMyODhfRFNQX1ZBQ1RfU1RfRU5E LCAweDFmZmYxZmZmLCAwKSwKLQkuaHBvc3Rfc3RfZW5kID0gVk9QX1JFRyhSSzMyODhfUE9TVF9E U1BfSEFDVF9JTkZPLCAweDFmZmYxZmZmLCAwKSwKLQkudnBvc3Rfc3RfZW5kID0gVk9QX1JFRyhS SzMyODhfUE9TVF9EU1BfVkFDVF9JTkZPLCAweDFmZmYxZmZmLCAwKSwKLQkuZ2xvYmFsX3JlZ2Rv bmVfZW4gPSBWT1BfUkVHKFJLMzI4OF9TWVNfQ1RSTCwgMHgxLCAxMSksCiAJLmNmZ19kb25lID0g Vk9QX1JFR19TWU5DKFJLMzI4OF9SRUdfQ0ZHX0RPTkUsIDB4MSwgMCksCiB9OwogCkBAIC0yNjUs MzcgKzI3OCwxMyBAQAogc3RhdGljIGNvbnN0IHN0cnVjdCB2b3BfZGF0YSByazMyODhfdm9wID0g ewogCS5mZWF0dXJlID0gVk9QX0ZFQVRVUkVfT1VUUFVUX1JHQjEwLAogCS5pbnRyID0gJnJrMzI4 OF92b3BfaW50ciwKLQkuY3RybCA9ICZyazMyODhfY3RybF9kYXRhLAorCS5jb21tb24gPSAmcmsz Mjg4X2NvbW1vbiwKKwkubW9kZXNldCA9ICZyazMyODhfbW9kZXNldCwKKwkub3V0cHV0ID0gJnJr MzI4OF9vdXRwdXQsCiAJLndpbiA9IHJrMzI4OF92b3Bfd2luX2RhdGEsCiAJLndpbl9zaXplID0g QVJSQVlfU0laRShyazMyODhfdm9wX3dpbl9kYXRhKSwKIH07CiAKLXN0YXRpYyBjb25zdCBzdHJ1 Y3Qgdm9wX2N0cmwgcmszMzk5X2N0cmxfZGF0YSA9IHsKLQkuc3RhbmRieSA9IFZPUF9SRUdfU1lO QyhSSzMzOTlfU1lTX0NUUkwsIDB4MSwgMjIpLAotCS5nYXRlX2VuID0gVk9QX1JFRyhSSzMzOTlf U1lTX0NUUkwsIDB4MSwgMjMpLAotCS5kcF9lbiA9IFZPUF9SRUcoUkszMzk5X1NZU19DVFJMLCAw eDEsIDExKSwKLQkucmdiX2VuID0gVk9QX1JFRyhSSzMzOTlfU1lTX0NUUkwsIDB4MSwgMTIpLAot CS5oZG1pX2VuID0gVk9QX1JFRyhSSzMzOTlfU1lTX0NUUkwsIDB4MSwgMTMpLAotCS5lZHBfZW4g PSBWT1BfUkVHKFJLMzM5OV9TWVNfQ1RSTCwgMHgxLCAxNCksCi0JLm1pcGlfZW4gPSBWT1BfUkVH KFJLMzM5OV9TWVNfQ1RSTCwgMHgxLCAxNSksCi0JLmRpdGhlcl9kb3duID0gVk9QX1JFRyhSSzMz OTlfRFNQX0NUUkwxLCAweGYsIDEpLAotCS5kaXRoZXJfdXAgPSBWT1BfUkVHKFJLMzM5OV9EU1Bf Q1RSTDEsIDB4MSwgNiksCi0JLmRhdGFfYmxhbmsgPSBWT1BfUkVHKFJLMzM5OV9EU1BfQ1RSTDAs IDB4MSwgMTkpLAotCS5vdXRfbW9kZSA9IFZPUF9SRUcoUkszMzk5X0RTUF9DVFJMMCwgMHhmLCAw KSwKLQkucmdiX3Bpbl9wb2wgPSBWT1BfUkVHKFJLMzM5OV9EU1BfQ1RSTDEsIDB4ZiwgMTYpLAot CS5kcF9waW5fcG9sID0gVk9QX1JFRyhSSzMzOTlfRFNQX0NUUkwxLCAweGYsIDE2KSwKLQkuaGRt aV9waW5fcG9sID0gVk9QX1JFRyhSSzMzOTlfRFNQX0NUUkwxLCAweGYsIDIwKSwKLQkuZWRwX3Bp bl9wb2wgPSBWT1BfUkVHKFJLMzM5OV9EU1BfQ1RSTDEsIDB4ZiwgMjQpLAotCS5taXBpX3Bpbl9w b2wgPSBWT1BfUkVHKFJLMzM5OV9EU1BfQ1RSTDEsIDB4ZiwgMjgpLAotCS5odG90YWxfcHcgPSBW T1BfUkVHKFJLMzM5OV9EU1BfSFRPVEFMX0hTX0VORCwgMHgxZmZmMWZmZiwgMCksCi0JLmhhY3Rf c3RfZW5kID0gVk9QX1JFRyhSSzMzOTlfRFNQX0hBQ1RfU1RfRU5ELCAweDFmZmYxZmZmLCAwKSwK LQkudnRvdGFsX3B3ID0gVk9QX1JFRyhSSzMzOTlfRFNQX1ZUT1RBTF9WU19FTkQsIDB4MWZmZjFm ZmYsIDApLAotCS52YWN0X3N0X2VuZCA9IFZPUF9SRUcoUkszMzk5X0RTUF9WQUNUX1NUX0VORCwg MHgxZmZmMWZmZiwgMCksCi0JLmhwb3N0X3N0X2VuZCA9IFZPUF9SRUcoUkszMzk5X1BPU1RfRFNQ X0hBQ1RfSU5GTywgMHgxZmZmMWZmZiwgMCksCi0JLnZwb3N0X3N0X2VuZCA9IFZPUF9SRUcoUksz Mzk5X1BPU1RfRFNQX1ZBQ1RfSU5GTywgMHgxZmZmMWZmZiwgMCksCi0JLmNmZ19kb25lID0gVk9Q X1JFR19NQVNLX1NZTkMoUkszMzk5X1JFR19DRkdfRE9ORSwgMHgxLCAwKSwKLX07Ci0KIHN0YXRp YyBjb25zdCBpbnQgcmszMzk5X3ZvcF9pbnRyc1tdID0gewogCUZTX0lOVFIsCiAJMCwgMCwKQEAg LTMxNiwxMCArMzA1LDI2IEBACiAJLmNsZWFyID0gVk9QX1JFR19NQVNLX1NZTkMoUkszMzk5X0lO VFJfQ0xFQVIwLCAweGZmZmYsIDApLAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCB2b3Bfb3V0 cHV0IHJrMzM5OV9vdXRwdXQgPSB7CisJLmRwX3Bpbl9wb2wgPSBWT1BfUkVHKFJLMzM5OV9EU1Bf Q1RSTDEsIDB4ZiwgMTYpLAorCS5yZ2JfcGluX3BvbCA9IFZPUF9SRUcoUkszMzY4X0RTUF9DVFJM MSwgMHhmLCAxNiksCisJLmhkbWlfcGluX3BvbCA9IFZPUF9SRUcoUkszMzY4X0RTUF9DVFJMMSwg MHhmLCAyMCksCisJLmVkcF9waW5fcG9sID0gVk9QX1JFRyhSSzMzNjhfRFNQX0NUUkwxLCAweGYs IDI0KSwKKwkubWlwaV9waW5fcG9sID0gVk9QX1JFRyhSSzMzNjhfRFNQX0NUUkwxLCAweGYsIDI4 KSwKKwkuZHBfZW4gPSBWT1BfUkVHKFJLMzM5OV9TWVNfQ1RSTCwgMHgxLCAxMSksCisJLnJnYl9l biA9IFZPUF9SRUcoUkszMjg4X1NZU19DVFJMLCAweDEsIDEyKSwKKwkuaGRtaV9lbiA9IFZPUF9S RUcoUkszMjg4X1NZU19DVFJMLCAweDEsIDEzKSwKKwkuZWRwX2VuID0gVk9QX1JFRyhSSzMyODhf U1lTX0NUUkwsIDB4MSwgMTQpLAorCS5taXBpX2VuID0gVk9QX1JFRyhSSzMyODhfU1lTX0NUUkws IDB4MSwgMTUpLAorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCB2b3BfZGF0YSByazMzOTlfdm9w X2JpZyA9IHsKIAkuZmVhdHVyZSA9IFZPUF9GRUFUVVJFX09VVFBVVF9SR0IxMCwKIAkuaW50ciA9 ICZyazMzOTlfdm9wX2ludHIsCi0JLmN0cmwgPSAmcmszMzk5X2N0cmxfZGF0YSwKKwkuY29tbW9u ID0gJnJrMzI4OF9jb21tb24sCisJLm1vZGVzZXQgPSAmcmszMjg4X21vZGVzZXQsCisJLm91dHB1 dCA9ICZyazMzOTlfb3V0cHV0LAorCS5taXNjID0gJnJrMzM2OF9taXNjLAogCS8qCiAJICogcmsz Mzk5IHZvcCBiaWcgd2luZG93cyByZWdpc3RlciBsYXlvdXQgaXMgc2FtZSBhcyByazMyODguCiAJ ICovCkBAIC0zMzYsNyArMzQxLDEwIEBACiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm9wX2RhdGEg cmszMzk5X3ZvcF9saXQgPSB7CiAJLmludHIgPSAmcmszMzk5X3ZvcF9pbnRyLAotCS5jdHJsID0g JnJrMzM5OV9jdHJsX2RhdGEsCisJLmNvbW1vbiA9ICZyazMyODhfY29tbW9uLAorCS5tb2Rlc2V0 ID0gJnJrMzI4OF9tb2Rlc2V0LAorCS5vdXRwdXQgPSAmcmszMzk5X291dHB1dCwKKwkubWlzYyA9 ICZyazMzNjhfbWlzYywKIAkvKgogCSAqIHJrMzM5OSB2b3AgbGl0IHdpbmRvd3MgcmVnaXN0ZXIg bGF5b3V0IGlzIHNhbWUgYXMgcmszMjg4LAogCSAqIGJ1dCBjdXQgb2ZmIHRoZSB3aW4xIGFuZCB3 aW4zIHdpbmRvd3MuCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo=