From mboxrd@z Thu Jan 1 00:00:00 1970 From: Guenter Roeck Subject: [PATCH v6 41/48] powerpc: Register with kernel power-off handler Date: Sun, 9 Nov 2014 17:42:58 -0800 Message-ID: <1415583785-6980-42-git-send-email-linux@roeck-us.net> References: <1415583785-6980-1-git-send-email-linux@roeck-us.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1415583785-6980-1-git-send-email-linux@roeck-us.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Sender: "Linuxppc-dev" To: linux-kernel@vger.kernel.org Cc: cbe-oss-dev@lists.ozlabs.org, Arnd Bergmann , linux-pm@vger.kernel.org, Geoff Levand , Alexander Graf , Paul Mackerras , Alistair Popple , Scott Wood , Anatolij Gustschin , linuxppc-dev@lists.ozlabs.org, Guenter Roeck List-Id: linux-pm@vger.kernel.org UmVnaXN0ZXIgd2l0aCBrZXJuZWwgcG93ZXItb2ZmIGhhbmRsZXIgaW5zdGVhZCBvZiBzZXR0aW5n IHBtX3Bvd2VyX29mZgpkaXJlY3RseS4KCklmIHRoZXJlIGlzIGFuIGluZGljYXRpb24gdGhhdCB0 aGVyZSBjYW4gYmUgbW9yZSB0aGFuIG9uZSBwb3dlci1vZmYgaGFuZGxlciwKdXNlIHJlZ2lzdGVy X3Bvd2VyX29mZl9oYW5kbGVyLCBvdGhlcndpc2UgdXNlIHJlZ2lzdGVyX3Bvd2VyX29mZl9oYW5k bGVyX3NpbXBsZQp0byByZWdpc3RlciB0aGUgcG93ZXItb2ZmIGhhbmRsZXIuCgpJZiB0aGUgcG93 ZXItb2ZmIGhhbmRsZXIgb25seSByZXNldHMgb3Igc3RvcHMgdGhlIHN5c3RlbSwgc2VsZWN0IHRo ZSBmYWxsYmFjawpwcmlvcml0eSB0byBpbmRpY2F0ZSB0aGF0IHRoZSBwb3dlci1vZmYgaGFuZGxl ciBpcyBvbmUgb2YgbGFzdCByZXNvcnQuCklmIHRoZSBwb3dlci1vZmYgaGFuZGxlciBwb3dlcnMg b2ZmIHRoZSBzeXN0ZW0sIHNlbGVjdCB0aGUgZGVmYXVsdCBwcmlvcml0eSwKdW5sZXNzIHRoZSBw b3dlci1vZmYgaGFuZGxlciBpbnN0YWxsYXRpb24gY29kZSBzdWdnZXN0cyB0aGF0IHRoZXJlIGNh biBiZQptb3JlIHRoYW4gb25lIHBvd2VyLW9mZiBoYW5kbGVyIGFuZCB0aGUgbmV3IGhhbmRsZXIg aXMgb25seSBpbnN0YWxsZWQKY29uZGl0aW9uYWxseS4gSW4gdGhpcyBjYXNlLCBpbnN0YWxsIHRo ZSBoYW5kbGVyIHdpdGggbG93IHByaW9yaXR5LgoKQ2M6IEFsZXhhbmRlciBHcmFmIDxhZ3JhZkBz dXNlLmRlPgpDYzogTWljaGFlbCBFbGxlcm1hbiA8bXBlQGVsbGVybWFuLmlkLmF1PgpTaWduZWQt b2ZmLWJ5OiBHdWVudGVyIFJvZWNrIDxsaW51eEByb2Vjay11cy5uZXQ+Ci0tLQp2NjoKLSBUaGlz IHBhdGNoOiBObyBjaGFuZ2UuCiAgR2xvYmFsOiBSZXBsYWNlZCBwcmlvcml0eSBkZWZpbmVzIHdp dGggZW51bS4KdjU6Ci0gTmV3IHBhdGNoCgogYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy80NHgvcHBj NDc2LmMgICAgICAgICAgICAgIHwgIDMgKystCiBhcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzUyeHgv ZWZpa2EuYyAgICAgICAgICAgICAgfCAgMyArKy0KIGFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvODN4 eC9tY3VfbXBjODM0OWVtaXR4LmMgICB8IDMwICsrKysrKysrKysrKysrKystLS0tLS0tLQogYXJj aC9wb3dlcnBjL3BsYXRmb3Jtcy84NXh4L2NvcmVuZXRfZ2VuZXJpYy5jICAgIHwgIDMgKystCiBh cmNoL3Bvd2VycGMvcGxhdGZvcm1zLzg1eHgvc2d5X2N0czEwMDAuYyAgICAgICAgfCAxNiArKysr KysrKysrKy0tCiBhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvY2VsbGViX3NldHVwLmMgICAg ICAgfCAgNiArKystLQogYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9jZWxsL3FwYWNlX3NldHVwLmMg ICAgICAgIHwgIDMgKystCiBhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvc2V0dXAuYyAgICAg ICAgICAgICAgfCAgMyArKy0KIGFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2hycC9zZXR1cC5jICAg ICAgICAgICAgICB8ICAzICsrLQogYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9lbWJlZGRlZDZ4eC9n YW1lY3ViZS5jICAgIHwgIDMgKystCiBhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2VtYmVkZGVkNnh4 L2xpbmtzdGF0aW9uLmMgfCAgMyArKy0KIGFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvZW1iZWRkZWQ2 eHgvd2lpLmMgICAgICAgICB8ICAzICsrLQogYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9tYXBsZS9z ZXR1cC5jICAgICAgICAgICAgIHwgIDYgKysrLS0KIGFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93 ZXJtYWMvc2V0dXAuYyAgICAgICAgICB8ICAzICsrLQogYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9w b3dlcm52L3NldHVwLmMgICAgICAgICAgIHwgIDYgKysrLS0KIGFyY2gvcG93ZXJwYy9wbGF0Zm9y bXMvcHMzL3NldHVwLmMgICAgICAgICAgICAgICB8ICAzICsrLQogYXJjaC9wb3dlcnBjL3BsYXRm b3Jtcy9wc2VyaWVzL3NldHVwLmMgICAgICAgICAgIHwgIDMgKystCiBhcmNoL3Bvd2VycGMvc3lz ZGV2L2ZzbF9zb2MuYyAgICAgICAgICAgICAgICAgICAgfCAgNiArKy0tLQogMTggZmlsZXMgY2hh bmdlZCwgNzMgaW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJj aC9wb3dlcnBjL3BsYXRmb3Jtcy80NHgvcHBjNDc2LmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1z LzQ0eC9wcGM0NzYuYwppbmRleCBjMTFjZTY1Li41OTBkMzFmIDEwMDY0NAotLS0gYS9hcmNoL3Bv d2VycGMvcGxhdGZvcm1zLzQ0eC9wcGM0NzYuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1z LzQ0eC9wcGM0NzYuYwpAQCAtOTQsNyArOTQsOCBAQCBzdGF0aWMgaW50IGF2cl9wcm9iZShzdHJ1 Y3QgaTJjX2NsaWVudCAqY2xpZW50LAogewogCWF2cl9pMmNfY2xpZW50ID0gY2xpZW50OwogCXBw Y19tZC5yZXN0YXJ0ID0gYXZyX3Jlc2V0X3N5c3RlbTsKLQlwbV9wb3dlcl9vZmYgPSBhdnJfcG93 ZXJfb2ZmX3N5c3RlbTsKKwlyZWdpc3Rlcl9wb3dlcl9vZmZfaGFuZGxlcl9zaW1wbGUoYXZyX3Bv d2VyX29mZl9zeXN0ZW0sCisJCQkJCSAgUE9XRVJfT0ZGX1BSSU9SSVRZX0RFRkFVTFQpOwogCXJl dHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzUyeHgvZWZp a2EuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvNTJ4eC9lZmlrYS5jCmluZGV4IDZhZjY1MWUu LjMyMWE3YTcgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvNTJ4eC9lZmlrYS5j CisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvNTJ4eC9lZmlrYS5jCkBAIC0yMTIsNyArMjEy LDggQEAgc3RhdGljIGludCBfX2luaXQgZWZpa2FfcHJvYmUodm9pZCkKIAlETUFfTU9ERV9SRUFE ID0gMHg0NDsKIAlETUFfTU9ERV9XUklURSA9IDB4NDg7CiAKLQlwbV9wb3dlcl9vZmYgPSBydGFz X3Bvd2VyX29mZjsKKwlyZWdpc3Rlcl9wb3dlcl9vZmZfaGFuZGxlcl9zaW1wbGUocnRhc19wb3dl cl9vZmYsCisJCQkJCSAgUE9XRVJfT0ZGX1BSSU9SSVRZX0RFRkFVTFQpOwogCiAJcmV0dXJuIDE7 CiB9CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzgzeHgvbWN1X21wYzgzNDll bWl0eC5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy84M3h4L21jdV9tcGM4MzQ5ZW1pdHguYwpp bmRleCAxNWU4MDIxLi4xYmY2YjBlIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1z LzgzeHgvbWN1X21wYzgzNDllbWl0eC5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvODN4 eC9tY3VfbXBjODM0OWVtaXR4LmMKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlIDxsaW51eC9n cGlvLmg+CiAjaW5jbHVkZSA8bGludXgvb2YuaD4KICNpbmNsdWRlIDxsaW51eC9vZl9ncGlvLmg+ CisjaW5jbHVkZSA8bGludXgvcG0uaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAjaW5jbHVk ZSA8bGludXgva3RocmVhZC5oPgogI2luY2x1ZGUgPGxpbnV4L3JlYm9vdC5oPgpAQCAtODYsNyAr ODcsNyBAQCBzdGF0aWMgc3NpemVfdCBzaG93X3N0YXR1cyhzdHJ1Y3QgZGV2aWNlICpkLAogfQog c3RhdGljIERFVklDRV9BVFRSKHN0YXR1cywgU19JUlVHTywgc2hvd19zdGF0dXMsIE5VTEwpOwog Ci1zdGF0aWMgdm9pZCBtY3VfcG93ZXJfb2ZmKHZvaWQpCitzdGF0aWMgdm9pZCBtY3VfcG93ZXJf b2ZmKHN0cnVjdCBwb3dlcl9vZmZfaGFuZGxlcl9ibG9jayAqdGhpcykKIHsKIAlzdHJ1Y3QgbWN1 ICptY3UgPSBnbG9iX21jdTsKIApAQCAtOTcsNiArOTgsMTEgQEAgc3RhdGljIHZvaWQgbWN1X3Bv d2VyX29mZih2b2lkKQogCW11dGV4X3VubG9jaygmbWN1LT5sb2NrKTsKIH0KIAorc3RhdGljIHN0 cnVjdCBwb3dlcl9vZmZfaGFuZGxlcl9ibG9jayBtY3VfcG93ZXJfb2ZmX2hiID0geworCS5oYW5k bGVyID0gbWN1X3Bvd2VyX29mZiwKKwkucHJpb3JpdHkgPSBQT1dFUl9PRkZfUFJJT1JJVFlfTE9X LAorfTsKKwogc3RhdGljIHZvaWQgbWN1X2dwaW9fc2V0KHN0cnVjdCBncGlvX2NoaXAgKmdjLCB1 bnNpZ25lZCBpbnQgZ3BpbywgaW50IHZhbCkKIHsKIAlzdHJ1Y3QgbWN1ICptY3UgPSBjb250YWlu ZXJfb2YoZ2MsIHN0cnVjdCBtY3UsIGdjKTsKQEAgLTE2NywxMyArMTczLDE1IEBAIHN0YXRpYyBp bnQgbWN1X3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIGNvbnN0IHN0cnVjdCBpMmNf ZGV2aWNlX2lkICppZCkKIAlpZiAocmV0KQogCQlnb3RvIGVycjsKIAotCS8qIFhYWDogdGhpcyBp cyBwb3RlbnRpYWxseSByYWN5LCBidXQgdGhlcmUgaXMgbm8gbG9jayBmb3IgcG1fcG93ZXJfb2Zm ICovCi0JaWYgKCFwbV9wb3dlcl9vZmYpIHsKLQkJZ2xvYl9tY3UgPSBtY3U7Ci0JCXBtX3Bvd2Vy X29mZiA9IG1jdV9wb3dlcl9vZmY7Ci0JCWRldl9pbmZvKCZjbGllbnQtPmRldiwgIndpbGwgcHJv dmlkZSBwb3dlci1vZmYgc2VydmljZVxuIik7CisJZ2xvYl9tY3UgPSBtY3U7CisJcmV0ID0gcmVn aXN0ZXJfcG93ZXJfb2ZmX2hhbmRsZXIoJm1jdV9wb3dlcl9vZmZfaGIpOworCWlmIChyZXQpIHsK KwkJZGV2X2VycigmY2xpZW50LT5kZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgcG93ZXItb2ZmIGhh bmRsZXJcbiIpOworCQlnb3RvIGVycl9oYW5kbGVyOwogCX0KIAorCWRldl9pbmZvKCZjbGllbnQt PmRldiwgIndpbGwgcHJvdmlkZSBwb3dlci1vZmYgc2VydmljZVxuIik7CisKIAlpZiAoZGV2aWNl X2NyZWF0ZV9maWxlKCZjbGllbnQtPmRldiwgJmRldl9hdHRyX3N0YXR1cykpCiAJCWRldl9lcnIo JmNsaWVudC0+ZGV2LAogCQkJImNvdWxkbid0IGNyZWF0ZSBkZXZpY2UgZmlsZSBmb3Igc3RhdHVz XG4iKTsKQEAgLTE4Miw2ICsxOTAsMTAgQEAgc3RhdGljIGludCBtY3VfcHJvYmUoc3RydWN0IGky Y19jbGllbnQgKmNsaWVudCwgY29uc3Qgc3RydWN0IGkyY19kZXZpY2VfaWQgKmlkKQogCQkJCSAg ICAgICJtY3UtaTJjLXNoZG4iKTsKIAogCXJldHVybiAwOworCitlcnJfaGFuZGxlcjoKKwltY3Vf Z3Bpb2NoaXBfcmVtb3ZlKG1jdSk7CisJZ2xvYl9tY3UgPSBOVUxMOwogZXJyOgogCWtmcmVlKG1j dSk7CiAJcmV0dXJuIHJldDsKQEAgLTE5NiwxMCArMjA4LDggQEAgc3RhdGljIGludCBtY3VfcmVt b3ZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpCiAKIAlkZXZpY2VfcmVtb3ZlX2ZpbGUoJmNs aWVudC0+ZGV2LCAmZGV2X2F0dHJfc3RhdHVzKTsKIAotCWlmIChnbG9iX21jdSA9PSBtY3UpIHsK LQkJcG1fcG93ZXJfb2ZmID0gTlVMTDsKLQkJZ2xvYl9tY3UgPSBOVUxMOwotCX0KKwl1bnJlZ2lz dGVyX3Bvd2VyX29mZl9oYW5kbGVyKCZtY3VfcG93ZXJfb2ZmX2hiKTsKKwlnbG9iX21jdSA9IE5V TEw7CiAKIAlyZXQgPSBtY3VfZ3Bpb2NoaXBfcmVtb3ZlKG1jdSk7CiAJaWYgKHJldCkKZGlmZiAt LWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvODV4eC9jb3JlbmV0X2dlbmVyaWMuYyBiL2Fy Y2gvcG93ZXJwYy9wbGF0Zm9ybXMvODV4eC9jb3JlbmV0X2dlbmVyaWMuYwppbmRleCAxZjMwOWNj Li5mMGM0YjUxIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzg1eHgvY29yZW5l dF9nZW5lcmljLmMKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy84NXh4L2NvcmVuZXRfZ2Vu ZXJpYy5jCkBAIC0xNzAsNyArMTcwLDggQEAgc3RhdGljIGludCBfX2luaXQgY29yZW5ldF9nZW5l cmljX3Byb2JlKHZvaWQpCiAKIAkJCXBwY19tZC5nZXRfaXJxID0gZWh2X3BpY19nZXRfaXJxOwog CQkJcHBjX21kLnJlc3RhcnQgPSBmc2xfaHZfcmVzdGFydDsKLQkJCXBtX3Bvd2VyX29mZiA9IGZz bF9odl9oYWx0OworCQkJcmVnaXN0ZXJfcG93ZXJfb2ZmX2hhbmRsZXJfc2ltcGxlKGZzbF9odl9o YWx0LAorCQkJCQkJUE9XRVJfT0ZGX1BSSU9SSVRZX0RFRkFVTFQpOwogCQkJcHBjX21kLmhhbHQg PSBmc2xfaHZfaGFsdDsKICNpZmRlZiBDT05GSUdfU01QCiAJCQkvKgpkaWZmIC0tZ2l0IGEvYXJj aC9wb3dlcnBjL3BsYXRmb3Jtcy84NXh4L3NneV9jdHMxMDAwLmMgYi9hcmNoL3Bvd2VycGMvcGxh dGZvcm1zLzg1eHgvc2d5X2N0czEwMDAuYwppbmRleCBlMTQ5YzllLi5kODQ5ZThmIDEwMDY0NAot LS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzg1eHgvc2d5X2N0czEwMDAuYworKysgYi9hcmNo L3Bvd2VycGMvcGxhdGZvcm1zLzg1eHgvc2d5X2N0czEwMDAuYwpAQCAtMTYsNiArMTYsNyBAQAog I2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L29mX2dwaW8uaD4KICNp bmNsdWRlIDxsaW51eC9vZl9pcnEuaD4KKyNpbmNsdWRlIDxsaW51eC9wbS5oPgogI2luY2x1ZGUg PGxpbnV4L3dvcmtxdWV1ZS5oPgogI2luY2x1ZGUgPGxpbnV4L3JlYm9vdC5oPgogI2luY2x1ZGUg PGxpbnV4L2ludGVycnVwdC5oPgpAQCAtNTksNiArNjAsMTYgQEAgc3RhdGljIHZvaWQgZ3Bpb19o YWx0X2NiKHZvaWQpCiAJZ3Bpb19zZXRfdmFsdWUoZ3BpbywgdHJpZ2dlcik7CiB9CiAKK3N0YXRp YyB2b2lkIGdwaW9fcG93ZXJfb2ZmX2NiKHN0cnVjdCBwb3dlcl9vZmZfaGFuZGxlcl9ibG9jayAq dGhpcykKK3sKKwlncGlvX2hhbHRfY2IoKTsKK30KKworc3RhdGljIHN0cnVjdCBwb3dlcl9vZmZf aGFuZGxlcl9ibG9jayBncGlvX3Bvd2VyX29mZl9oYiA9IHsKKwkuaGFuZGxlciA9IGdwaW9fcG93 ZXJfb2ZmX2NiLAorCS5wcmlvcml0eSA9IFBPV0VSX09GRl9QUklPUklUWV9ERUZBVUxULAorfTsK KwogLyogVGhpcyBJUlEgbWVhbnMgc29tZW9uZSBwcmVzc2VkIHRoZSBwb3dlciBidXR0b24gYW5k IGl0IGlzIHdhaXRpbmcgZm9yIHVzCiAgKiB0byBoYW5kbGUgdGhlIHNodXRkb3duL3Bvd2Vyb2Zm LiAqLwogc3RhdGljIGlycXJldHVybl90IGdwaW9faGFsdF9pcnEoaW50IGlycSwgdm9pZCAqX19k YXRhKQpAQCAtMTIwLDcgKzEzMSw4IEBAIHN0YXRpYyBpbnQgZ3Bpb19oYWx0X3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKIAkvKiBSZWdpc3RlciBvdXIgaGFsdCBmdW5jdGlv biAqLwogCXBwY19tZC5oYWx0ID0gZ3Bpb19oYWx0X2NiOwotCXBtX3Bvd2VyX29mZiA9IGdwaW9f aGFsdF9jYjsKKwlpZiAocmVnaXN0ZXJfcG93ZXJfb2ZmX2hhbmRsZXIoJmdwaW9fcG93ZXJfb2Zm X2hiKSkKKwkJcHJfd2FybigiZ3Bpby1oYWx0OiBGYWlsZWQgdG8gcmVnaXN0ZXIgcG93ZXItb2Zm IGhhbmRsZXJcbiIpOwogCiAJcHJpbnRrKEtFUk5fSU5GTyAiZ3Bpby1oYWx0OiByZWdpc3RlcmVk IEdQSU8gJWQgKCVkIHRyaWdnZXIsICVkIgogCSAgICAgICAiIGlycSkuXG4iLCBncGlvLCB0cmln Z2VyLCBpcnEpOwpAQCAtMTM3LDcgKzE0OSw3IEBAIHN0YXRpYyBpbnQgZ3Bpb19oYWx0X3JlbW92 ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlmcmVlX2lycShpcnEsIGhhbHRfbm9k ZSk7CiAKIAkJcHBjX21kLmhhbHQgPSBOVUxMOwotCQlwbV9wb3dlcl9vZmYgPSBOVUxMOworCQl1 bnJlZ2lzdGVyX3Bvd2VyX29mZl9oYW5kbGVyKCZncGlvX3Bvd2VyX29mZl9oYik7CiAKIAkJZ3Bp b19mcmVlKGdwaW8pOwogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwv Y2VsbGViX3NldHVwLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvY2VsbGViX3NldHVw LmMKaW5kZXggOTBiZThlYy4uZTMwMWIxYSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRm b3Jtcy9jZWxsL2NlbGxlYl9zZXR1cC5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2Vs bC9jZWxsZWJfc2V0dXAuYwpAQCAtMTQyLDcgKzE0Miw4IEBAIHN0YXRpYyBpbnQgX19pbml0IGNl bGxlYl9wcm9iZV9iZWF0KHZvaWQpCiAJcG93ZXJwY19maXJtd2FyZV9mZWF0dXJlcyB8PSBGV19G RUFUVVJFX0NFTExFQl9BTFdBWVMKIAkJfCBGV19GRUFUVVJFX0JFQVQgfCBGV19GRUFUVVJFX0xQ QVI7CiAJaHB0ZV9pbml0X2JlYXRfdjMoKTsKLQlwbV9wb3dlcl9vZmYgPSBiZWF0X3Bvd2VyX29m ZjsKKwlyZWdpc3Rlcl9wb3dlcl9vZmZfaGFuZGxlcl9zaW1wbGUoYmVhdF9wb3dlcl9vZmYsCisJ CQkJCSAgUE9XRVJfT0ZGX1BSSU9SSVRZX0RFRkFVTFQpOwogCiAJcmV0dXJuIDE7CiB9CkBAIC0x OTEsNyArMTkyLDggQEAgc3RhdGljIGludCBfX2luaXQgY2VsbGViX3Byb2JlX25hdGl2ZSh2b2lk KQogCiAJcG93ZXJwY19maXJtd2FyZV9mZWF0dXJlcyB8PSBGV19GRUFUVVJFX0NFTExFQl9BTFdB WVM7CiAJaHB0ZV9pbml0X25hdGl2ZSgpOwotCXBtX3Bvd2VyX29mZiA9IHJ0YXNfcG93ZXJfb2Zm OworCXJlZ2lzdGVyX3Bvd2VyX29mZl9oYW5kbGVyX3NpbXBsZShydGFzX3Bvd2VyX29mZiwKKwkJ CQkJICBQT1dFUl9PRkZfUFJJT1JJVFlfREVGQVVMVCk7CiAKIAlyZXR1cm4gMTsKIH0KZGlmZiAt LWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2VsbC9xcGFjZV9zZXR1cC5jIGIvYXJjaC9w b3dlcnBjL3BsYXRmb3Jtcy9jZWxsL3FwYWNlX3NldHVwLmMKaW5kZXggZDMyODE0MC4uMjIzZDQw YSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9jZWxsL3FwYWNlX3NldHVwLmMK KysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9jZWxsL3FwYWNlX3NldHVwLmMKQEAgLTEyNyw3 ICsxMjcsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBxcGFjZV9wcm9iZSh2b2lkKQogCQlyZXR1cm4g MDsKIAogCWhwdGVfaW5pdF9uYXRpdmUoKTsKLQlwbV9wb3dlcl9vZmYgPSBydGFzX3Bvd2VyX29m ZjsKKwlyZWdpc3Rlcl9wb3dlcl9vZmZfaGFuZGxlcl9zaW1wbGUocnRhc19wb3dlcl9vZmYsCisJ CQkJCSAgUE9XRVJfT0ZGX1BSSU9SSVRZX0RFRkFVTFQpOwogCiAJcmV0dXJuIDE7CiB9CmRpZmYg LS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2NlbGwvc2V0dXAuYyBiL2FyY2gvcG93ZXJw Yy9wbGF0Zm9ybXMvY2VsbC9zZXR1cC5jCmluZGV4IGQ2MmFhOTguLmVhNTQ2MGMgMTAwNjQ0Ci0t LSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2VsbC9zZXR1cC5jCisrKyBiL2FyY2gvcG93ZXJw Yy9wbGF0Zm9ybXMvY2VsbC9zZXR1cC5jCkBAIC0yNTksNyArMjU5LDggQEAgc3RhdGljIGludCBf X2luaXQgY2VsbF9wcm9iZSh2b2lkKQogCQlyZXR1cm4gMDsKIAogCWhwdGVfaW5pdF9uYXRpdmUo KTsKLQlwbV9wb3dlcl9vZmYgPSBydGFzX3Bvd2VyX29mZjsKKwlyZWdpc3Rlcl9wb3dlcl9vZmZf aGFuZGxlcl9zaW1wbGUocnRhc19wb3dlcl9vZmYsCisJCQkJCSAgUE9XRVJfT0ZGX1BSSU9SSVRZ X0RFRkFVTFQpOwogCiAJcmV0dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxh dGZvcm1zL2NocnAvc2V0dXAuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2hycC9zZXR1cC5j CmluZGV4IDg2MGE1OWUuLjBjMDI4OGUgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9y bXMvY2hycC9zZXR1cC5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2hycC9zZXR1cC5j CkBAIC01ODUsNyArNTg1LDggQEAgc3RhdGljIGludCBfX2luaXQgY2hycF9wcm9iZSh2b2lkKQog CURNQV9NT0RFX1JFQUQgPSAweDQ0OwogCURNQV9NT0RFX1dSSVRFID0gMHg0ODsKIAotCXBtX3Bv d2VyX29mZiA9IHJ0YXNfcG93ZXJfb2ZmOworCXJlZ2lzdGVyX3Bvd2VyX29mZl9oYW5kbGVyX3Np bXBsZShydGFzX3Bvd2VyX29mZiwKKwkJCQkJICBQT1dFUl9PRkZfUFJJT1JJVFlfREVGQVVMVCk7 CiAKIAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvZW1i ZWRkZWQ2eHgvZ2FtZWN1YmUuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvZW1iZWRkZWQ2eHgv Z2FtZWN1YmUuYwppbmRleCBmZTBlZDZlLi5hZjQwZjBmIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2Vy cGMvcGxhdGZvcm1zL2VtYmVkZGVkNnh4L2dhbWVjdWJlLmMKKysrIGIvYXJjaC9wb3dlcnBjL3Bs YXRmb3Jtcy9lbWJlZGRlZDZ4eC9nYW1lY3ViZS5jCkBAIC02Nyw3ICs2Nyw4IEBAIHN0YXRpYyBp bnQgX19pbml0IGdhbWVjdWJlX3Byb2JlKHZvaWQpCiAJaWYgKCFvZl9mbGF0X2R0X2lzX2NvbXBh dGlibGUoZHRfcm9vdCwgIm5pbnRlbmRvLGdhbWVjdWJlIikpCiAJCXJldHVybiAwOwogCi0JcG1f cG93ZXJfb2ZmID0gZ2FtZWN1YmVfcG93ZXJfb2ZmOworCXJlZ2lzdGVyX3Bvd2VyX29mZl9oYW5k bGVyX3NpbXBsZShnYW1lY3ViZV9wb3dlcl9vZmYsCisJCQkJCSAgUE9XRVJfT0ZGX1BSSU9SSVRZ X0RFRkFVTFQpOwogCiAJcmV0dXJuIDE7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxh dGZvcm1zL2VtYmVkZGVkNnh4L2xpbmtzdGF0aW9uLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1z L2VtYmVkZGVkNnh4L2xpbmtzdGF0aW9uLmMKaW5kZXggNTQwZWViNS4uMGM0ZGNmOCAxMDA2NDQK LS0tIGEvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9lbWJlZGRlZDZ4eC9saW5rc3RhdGlvbi5jCisr KyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvZW1iZWRkZWQ2eHgvbGlua3N0YXRpb24uYwpAQCAt MTQ4LDcgKzE0OCw4IEBAIHN0YXRpYyBpbnQgX19pbml0IGxpbmtzdGF0aW9uX3Byb2JlKHZvaWQp CiAJaWYgKCFvZl9mbGF0X2R0X2lzX2NvbXBhdGlibGUocm9vdCwgImxpbmtzdGF0aW9uIikpCiAJ CXJldHVybiAwOwogCi0JcG1fcG93ZXJfb2ZmID0gbGlua3N0YXRpb25fcG93ZXJfb2ZmOworCXJl Z2lzdGVyX3Bvd2VyX29mZl9oYW5kbGVyX3NpbXBsZShsaW5rc3RhdGlvbl9wb3dlcl9vZmYsCisJ CQkJCSAgUE9XRVJfT0ZGX1BSSU9SSVRZX0RFRkFVTFQpOwogCiAJcmV0dXJuIDE7CiB9CmRpZmYg LS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2VtYmVkZGVkNnh4L3dpaS5jIGIvYXJjaC9w b3dlcnBjL3BsYXRmb3Jtcy9lbWJlZGRlZDZ4eC93aWkuYwppbmRleCAzNTI1OTJkLi5lZWE4ODI0 IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2VtYmVkZGVkNnh4L3dpaS5jCisr KyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvZW1iZWRkZWQ2eHgvd2lpLmMKQEAgLTIxMSw3ICsy MTEsOCBAQCBzdGF0aWMgaW50IF9faW5pdCB3aWlfcHJvYmUodm9pZCkKIAlpZiAoIW9mX2ZsYXRf ZHRfaXNfY29tcGF0aWJsZShkdF9yb290LCAibmludGVuZG8sd2lpIikpCiAJCXJldHVybiAwOwog Ci0JcG1fcG93ZXJfb2ZmID0gd2lpX3Bvd2VyX29mZjsKKwlyZWdpc3Rlcl9wb3dlcl9vZmZfaGFu ZGxlcl9zaW1wbGUod2lpX3Bvd2VyX29mZiwKKwkJCQkJICBQT1dFUl9PRkZfUFJJT1JJVFlfREVG QVVMVCk7CiAKIAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9y bXMvbWFwbGUvc2V0dXAuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvbWFwbGUvc2V0dXAuYwpp bmRleCA1NmI4NWNkLi43M2MzOTg4IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1z L21hcGxlL3NldHVwLmMKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9tYXBsZS9zZXR1cC5j CkBAIC0xNjksNyArMTY5LDggQEAgc3RhdGljIHZvaWQgX19pbml0IG1hcGxlX3VzZV9ydGFzX3Jl Ym9vdF9hbmRfaGFsdF9pZl9wcmVzZW50KHZvaWQpCiAJaWYgKHJ0YXNfc2VydmljZV9wcmVzZW50 KCJzeXN0ZW0tcmVib290IikgJiYKIAkgICAgcnRhc19zZXJ2aWNlX3ByZXNlbnQoInBvd2VyLW9m ZiIpKSB7CiAJCXBwY19tZC5yZXN0YXJ0ID0gcnRhc19yZXN0YXJ0OwotCQlwbV9wb3dlcl9vZmYg PSBydGFzX3Bvd2VyX29mZjsKKwkJcmVnaXN0ZXJfcG93ZXJfb2ZmX2hhbmRsZXJfc2ltcGxlKHJ0 YXNfcG93ZXJfb2ZmLAorCQkJCQkJICBQT1dFUl9PRkZfUFJJT1JJVFlfREVGQVVMVCk7CiAJCXBw Y19tZC5oYWx0ID0gcnRhc19oYWx0OwogCX0KIH0KQEAgLTMxMiw3ICszMTMsOCBAQCBzdGF0aWMg aW50IF9faW5pdCBtYXBsZV9wcm9iZSh2b2lkKQogCWFsbG9jX2RhcnRfdGFibGUoKTsKIAogCWhw dGVfaW5pdF9uYXRpdmUoKTsKLQlwbV9wb3dlcl9vZmYgPSBtYXBsZV9wb3dlcl9vZmY7CisJcmVn aXN0ZXJfcG93ZXJfb2ZmX2hhbmRsZXJfc2ltcGxlKG1hcGxlX3Bvd2VyX29mZiwKKwkJCQkJICBQ T1dFUl9PRkZfUFJJT1JJVFlfREVGQVVMVCk7CiAKIAlyZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBh L2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJtYWMvc2V0dXAuYyBiL2FyY2gvcG93ZXJwYy9w bGF0Zm9ybXMvcG93ZXJtYWMvc2V0dXAuYwppbmRleCA3MTNkMzZkLi42NDk2YWU0IDEwMDY0NAot LS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL3NldHVwLmMKKysrIGIvYXJjaC9w b3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9zZXR1cC5jCkBAIC02MzIsNyArNjMyLDggQEAgc3Rh dGljIGludCBfX2luaXQgcG1hY19wcm9iZSh2b2lkKQogCXNtdV9jbWRidWZfYWJzID0gbWVtYmxv Y2tfYWxsb2NfYmFzZSg0MDk2LCA0MDk2LCAweDgwMDAwMDAwVUwpOwogI2VuZGlmIC8qIENPTkZJ R19QTUFDX1NNVSAqLwogCi0JcG1fcG93ZXJfb2ZmID0gcG1hY19wb3dlcl9vZmY7CisJcmVnaXN0 ZXJfcG93ZXJfb2ZmX2hhbmRsZXJfc2ltcGxlKHBtYWNfcG93ZXJfb2ZmLAorCQkJCQkgIFBPV0VS X09GRl9QUklPUklUWV9ERUZBVUxUKTsKIAogCXJldHVybiAxOwogfQpkaWZmIC0tZ2l0IGEvYXJj aC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L3NldHVwLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZv cm1zL3Bvd2VybnYvc2V0dXAuYwppbmRleCA5NDE4MzFkLi5hMDNjNDFiIDEwMDY0NAotLS0gYS9h cmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvc2V0dXAuYworKysgYi9hcmNoL3Bvd2VycGMv cGxhdGZvcm1zL3Bvd2VybnYvc2V0dXAuYwpAQCAtMjY4LDcgKzI2OCw4IEBAIHN0YXRpYyB2b2lk IF9faW5pdCBwbnZfc2V0dXBfbWFjaGRlcF9vcGFsKHZvaWQpCiAJcHBjX21kLmdldF9ydGNfdGlt ZSA9IG9wYWxfZ2V0X3J0Y190aW1lOwogCXBwY19tZC5zZXRfcnRjX3RpbWUgPSBvcGFsX3NldF9y dGNfdGltZTsKIAlwcGNfbWQucmVzdGFydCA9IHBudl9yZXN0YXJ0OwotCXBtX3Bvd2VyX29mZiA9 IHBudl9wb3dlcl9vZmY7CisJcmVnaXN0ZXJfcG93ZXJfb2ZmX2hhbmRsZXJfc2ltcGxlKHBudl9w b3dlcl9vZmYsCisJCQkJCSAgUE9XRVJfT0ZGX1BSSU9SSVRZX0RFRkFVTFQpOwogCXBwY19tZC5o YWx0ID0gcG52X2hhbHQ7CiAJcHBjX21kLm1hY2hpbmVfY2hlY2tfZXhjZXB0aW9uID0gb3BhbF9t YWNoaW5lX2NoZWNrOwogCXBwY19tZC5tY2VfY2hlY2tfZWFybHlfcmVjb3ZlcnkgPSBvcGFsX21j ZV9jaGVja19lYXJseV9yZWNvdmVyeTsKQEAgLTI4NSw3ICsyODYsOCBAQCBzdGF0aWMgdm9pZCBf X2luaXQgcG52X3NldHVwX21hY2hkZXBfcnRhcyh2b2lkKQogCQlwcGNfbWQuc2V0X3J0Y190aW1l ID0gcnRhc19zZXRfcnRjX3RpbWU7CiAJfQogCXBwY19tZC5yZXN0YXJ0ID0gcnRhc19yZXN0YXJ0 OwotCXBtX3Bvd2VyX29mZiA9IHJ0YXNfcG93ZXJfb2ZmOworCXJlZ2lzdGVyX3Bvd2VyX29mZl9o YW5kbGVyX3NpbXBsZShydGFzX3Bvd2VyX29mZiwKKwkJCQkJICBQT1dFUl9PRkZfUFJJT1JJVFlf REVGQVVMVCk7CiAJcHBjX21kLmhhbHQgPSBydGFzX2hhbHQ7CiB9CiAjZW5kaWYgLyogQ09ORklH X1BQQ19QT1dFUk5WX1JUQVMgKi8KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMv cHMzL3NldHVwLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzMy9zZXR1cC5jCmluZGV4IDAw OWEyMDAuLjc3ZTBkZWEgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHMzL3Nl dHVwLmMKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wczMvc2V0dXAuYwpAQCAtMjQ4LDcg KzI0OCw4IEBAIHN0YXRpYyBpbnQgX19pbml0IHBzM19wcm9iZSh2b2lkKQogCXBzM19tbV9pbml0 KCk7CiAJcHMzX21tX3Zhc19jcmVhdGUoJmh0YWJfc2l6ZSk7CiAJcHMzX2hwdGVfaW5pdChodGFi X3NpemUpOwotCXBtX3Bvd2VyX29mZiA9IHBzM19wb3dlcl9vZmY7CisJcmVnaXN0ZXJfcG93ZXJf b2ZmX2hhbmRsZXJfc2ltcGxlKHBzM19wb3dlcl9vZmYsCisJCQkJCSAgUE9XRVJfT0ZGX1BSSU9S SVRZX0RFRkFVTFQpOwogCiAJREJHKCIgPC0gJXM6JWRcbiIsIF9fZnVuY19fLCBfX0xJTkVfXyk7 CiAJcmV0dXJuIDE7CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMv c2V0dXAuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9zZXR1cC5jCmluZGV4IGRi MGZjMGMuLmIzYzg1YmIgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmll cy9zZXR1cC5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9zZXR1cC5jCkBA IC03NjksNyArNzY5LDggQEAgc3RhdGljIGludCBfX2luaXQgcFNlcmllc19wcm9iZSh2b2lkKQog CWVsc2UKIAkJaHB0ZV9pbml0X25hdGl2ZSgpOwogCi0JcG1fcG93ZXJfb2ZmID0gcHNlcmllc19w b3dlcl9vZmY7CisJcmVnaXN0ZXJfcG93ZXJfb2ZmX2hhbmRsZXJfc2ltcGxlKHBzZXJpZXNfcG93 ZXJfb2ZmLAorCQkJCQkgIFBPV0VSX09GRl9QUklPUklUWV9ERUZBVUxUKTsKIAogCXByX2RlYnVn KCJNYWNoaW5lIGlzJXMgTFBBUiAhXG4iLAogCSAgICAgICAgIChwb3dlcnBjX2Zpcm13YXJlX2Zl YXR1cmVzICYgRldfRkVBVFVSRV9MUEFSKSA/ICIiIDogIiBub3QiKTsKZGlmZiAtLWdpdCBhL2Fy Y2gvcG93ZXJwYy9zeXNkZXYvZnNsX3NvYy5jIGIvYXJjaC9wb3dlcnBjL3N5c2Rldi9mc2xfc29j LmMKaW5kZXggMWUwNDU2OC4uZWViMDc1ZiAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL3N5c2Rl di9mc2xfc29jLmMKKysrIGIvYXJjaC9wb3dlcnBjL3N5c2Rldi9mc2xfc29jLmMKQEAgLTIzOCw5 ICsyMzgsOSBAQCB2b2lkIGZzbF9odl9yZXN0YXJ0KGNoYXIgKmNtZCkKIC8qCiAgKiBIYWx0IHRo ZSBjdXJyZW50IHBhcnRpdGlvbgogICoKLSAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGFzc2ln bmVkIHRvIHRoZSBwbV9wb3dlcl9vZmYgYW5kIHBwY19tZC5oYWx0Ci0gKiBmdW5jdGlvbiBwb2lu dGVycywgdG8gc2h1dCBkb3duIHRoZSBwYXJ0aXRpb24gd2hlbiB3ZSdyZSBydW5uaW5nIHVuZGVy Ci0gKiB0aGUgRnJlZXNjYWxlIGh5cGVydmlzb3IuCisgKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBi ZSByZWdpc3RlcmVkIGFzIHBvd2VyLW9mZiBoYW5kbGVyIGFuZCBiZSBhc3NpZ25lZAorICogdG8g dGhlIHBwY19tZC5oYWx0IGZ1bmN0aW9uIHBvaW50ZXIsIHRvIHNodXQgZG93biB0aGUgcGFydGl0 aW9uIHdoZW4KKyAqIHdlJ3JlIHJ1bm5pbmcgdW5kZXIgdGhlIEZyZWVzY2FsZSBoeXBlcnZpc29y LgogICovCiB2b2lkIGZzbF9odl9oYWx0KHZvaWQpCiB7Ci0tIAoxLjkuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXhwcGMtZGV2IG1haWxpbmcg bGlzdApMaW51eHBwYy1kZXZAbGlzdHMub3psYWJzLm9yZwpodHRwczovL2xpc3RzLm96bGFicy5v cmcvbGlzdGluZm8vbGludXhwcGMtZGV2