From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 01/24] radeon/audio: consolidate audio_init() functions Date: Tue, 13 Jan 2015 12:46:30 -0500 Message-ID: <1421171213-23977-2-git-send-email-alexander.deucher@amd.com> References: <1421171213-23977-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qa0-f45.google.com (mail-qa0-f45.google.com [209.85.216.45]) by gabe.freedesktop.org (Postfix) with ESMTP id 06AA86E640 for ; Tue, 13 Jan 2015 09:47:02 -0800 (PST) Received: by mail-qa0-f45.google.com with SMTP id n8so3160687qaq.4 for ; Tue, 13 Jan 2015 09:47:01 -0800 (PST) In-Reply-To: <1421171213-23977-1-git-send-email-alexander.deucher@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Alex Deucher , slava.grigorev@amd.com List-Id: dri-devel@lists.freedesktop.org RnJvbTogU2xhdmEgR3JpZ29yZXYgPHNsYXZhLmdyaWdvcmV2QGFtZC5jb20+CgpTaWduZWQtb2Zm LWJ5OiBTbGF2YSBHcmlnb3JldiA8c2xhdmEuZ3JpZ29yZXZAYW1kLmNvbT4KU2lnbmVkLW9mZi1i eTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9yYWRlb24vTWFrZWZpbGUgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9jaWsuYyAgICAgICAgICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2RjZTZf YWZtdC5jICAgIHwgNTQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL2V2ZXJncmVlbi5jICAgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vbmkuYyAg ICAgICAgICAgfCAxMyArKy0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwLmMgICAgICAg ICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfaGRtaS5jICAgIHwgMzIgLS0t LS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXNpYy5oICB8ICAyIC0K IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2F1ZGlvLmMgfCA5MCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVk aW8uaCB8IDI5ICsrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JzNjAwLmMgICAg ICAgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM2OTAuYyAgICAgICAgfCAgMyAr LQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ydjc3MC5jICAgICAgICB8ICAzICstCiBkcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3NpLmMgICAgICAgICAgIHwgIDMgKy0KIDE0IGZpbGVzIGNoYW5nZWQs IDEzOCBpbnNlcnRpb25zKCspLCAxMDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8uYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2F1ZGlvLmgKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9NYWtl ZmlsZQppbmRleCAxMmJjMjEyLi5mZGNlYmY3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vTWFrZWZpbGUKQEAg LTgxLDcgKzgxLDcgQEAgcmFkZW9uLXkgKz0gcmFkZW9uX2RldmljZS5vIHJhZGVvbl9hc2ljLm8g cmFkZW9uX2ttcy5vIFwKIAlydjc3MF9zbWMubyBjeXByZXNzX2RwbS5vIGJ0Y19kcG0ubyBzdW1v X2RwbS5vIHN1bW9fc21jLm8gdHJpbml0eV9kcG0ubyBcCiAJdHJpbml0eV9zbWMubyBuaV9kcG0u byBzaV9zbWMubyBzaV9kcG0ubyBrdl9zbWMubyBrdl9kcG0ubyBjaV9zbWMubyBcCiAJY2lfZHBt Lm8gZGNlNl9hZm10Lm8gcmFkZW9uX3ZtLm8gcmFkZW9uX3Vjb2RlLm8gcmFkZW9uX2liLm8gcmFk ZW9uX21uLm8gXAotCXJhZGVvbl9zeW5jLm8KKwlyYWRlb25fc3luYy5vIHJhZGVvbl9hdWRpby5v CiAKICMgYWRkIGFzeW5jIERNQSBibG9jawogcmFkZW9uLXkgKz0gXApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9jaWsuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vY2lrLmMK aW5kZXggNmRjZGUzNy4uMTZiNmZhOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9jaWsuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npay5jCkBAIC0yNyw2ICsyNyw3 IEBACiAjaW5jbHVkZSAiZHJtUC5oIgogI2luY2x1ZGUgInJhZGVvbi5oIgogI2luY2x1ZGUgInJh ZGVvbl9hc2ljLmgiCisjaW5jbHVkZSAicmFkZW9uX2F1ZGlvLmgiCiAjaW5jbHVkZSAiY2lrZC5o IgogI2luY2x1ZGUgImF0b20uaCIKICNpbmNsdWRlICJjaWtfYmxpdF9zaGFkZXJzLmgiCkBAIC04 NDgyLDcgKzg0ODMsNyBAQCBzdGF0aWMgaW50IGNpa19zdGFydHVwKHN0cnVjdCByYWRlb25fZGV2 aWNlICpyZGV2KQogCQlyZXR1cm4gcjsKIAl9CiAKLQlyID0gZGNlNl9hdWRpb19pbml0KHJkZXYp OworCXIgPSByYWRlb25fYXVkaW9faW5pdChyZGV2KTsKIAlpZiAocikKIAkJcmV0dXJuIHI7CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZGNlNl9hZm10LmMgYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL2RjZTZfYWZtdC5jCmluZGV4IGYzMTJlZGYuLmE5N2ZiMjIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZGNlNl9hZm10LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9kY2U2X2FmbXQuYwpAQCAtMjc3LDExICsyNzcsNiBAQCB2b2lkIGRjZTZf YWZtdF93cml0ZV9zYWRfcmVncyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAJa2ZyZWUo c2Fkcyk7CiB9CiAKLXN0YXRpYyBpbnQgZGNlNl9hdWRpb19jaGlwc2V0X3N1cHBvcnRlZChzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldikKLXsKLQlyZXR1cm4gIUFTSUNfSVNfTk9EQ0UocmRldik7 Ci19Ci0KIHZvaWQgZGNlNl9hdWRpb19lbmFibGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYs CiAJCSAgICAgICBzdHJ1Y3QgcjYwMF9hdWRpb19waW4gKnBpbiwKIAkJICAgICAgIHU4IGVuYWJs ZV9tYXNrKQpAQCAtMjkzLDU1ICsyODgsNiBAQCB2b2lkIGRjZTZfYXVkaW9fZW5hYmxlKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2LAogCQkJZW5hYmxlX21hc2sgPyBBVURJT19FTkFCTEVEIDog MCk7CiB9CiAKLXN0YXRpYyBjb25zdCB1MzIgcGluX29mZnNldHNbN10gPQotewotCSgweDVlMDAg LSAweDVlMDApLAotCSgweDVlMTggLSAweDVlMDApLAotCSgweDVlMzAgLSAweDVlMDApLAotCSgw eDVlNDggLSAweDVlMDApLAotCSgweDVlNjAgLSAweDVlMDApLAotCSgweDVlNzggLSAweDVlMDAp LAotCSgweDVlOTAgLSAweDVlMDApLAotfTsKLQotaW50IGRjZTZfYXVkaW9faW5pdChzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldikKLXsKLQlpbnQgaTsKLQotCWlmICghcmFkZW9uX2F1ZGlvIHx8 ICFkY2U2X2F1ZGlvX2NoaXBzZXRfc3VwcG9ydGVkKHJkZXYpKQotCQlyZXR1cm4gMDsKLQotCXJk ZXYtPmF1ZGlvLmVuYWJsZWQgPSB0cnVlOwotCi0JaWYgKEFTSUNfSVNfRENFODEocmRldikpIC8q IEtWOiA0IHN0cmVhbXMsIDcgZW5kcG9pbnRzICovCi0JCXJkZXYtPmF1ZGlvLm51bV9waW5zID0g NzsKLQllbHNlIGlmIChBU0lDX0lTX0RDRTgzKHJkZXYpKSAvKiBLQjogMiBzdHJlYW1zLCAzIGVu ZHBvaW50cyAqLwotCQlyZGV2LT5hdWRpby5udW1fcGlucyA9IDM7Ci0JZWxzZSBpZiAoQVNJQ19J U19EQ0U4KHJkZXYpKSAvKiBCTi9IVzogNiBzdHJlYW1zLCA3IGVuZHBvaW50cyAqLwotCQlyZGV2 LT5hdWRpby5udW1fcGlucyA9IDc7Ci0JZWxzZSBpZiAoQVNJQ19JU19EQ0U2MShyZGV2KSkgLyog VE46IDQgc3RyZWFtcywgNiBlbmRwb2ludHMgKi8KLQkJcmRldi0+YXVkaW8ubnVtX3BpbnMgPSA2 OwotCWVsc2UgaWYgKEFTSUNfSVNfRENFNjQocmRldikpIC8qIE9MOiAyIHN0cmVhbXMsIDIgZW5k cG9pbnRzICovCi0JCXJkZXYtPmF1ZGlvLm51bV9waW5zID0gMjsKLQllbHNlIC8qIFNJOiA2IHN0 cmVhbXMsIDYgZW5kcG9pbnRzICovCi0JCXJkZXYtPmF1ZGlvLm51bV9waW5zID0gNjsKLQotCWZv ciAoaSA9IDA7IGkgPCByZGV2LT5hdWRpby5udW1fcGluczsgaSsrKSB7Ci0JCXJkZXYtPmF1ZGlv LnBpbltpXS5jaGFubmVscyA9IC0xOwotCQlyZGV2LT5hdWRpby5waW5baV0ucmF0ZSA9IC0xOwot CQlyZGV2LT5hdWRpby5waW5baV0uYml0c19wZXJfc2FtcGxlID0gLTE7Ci0JCXJkZXYtPmF1ZGlv LnBpbltpXS5zdGF0dXNfYml0cyA9IDA7Ci0JCXJkZXYtPmF1ZGlvLnBpbltpXS5jYXRlZ29yeV9j b2RlID0gMDsKLQkJcmRldi0+YXVkaW8ucGluW2ldLmNvbm5lY3RlZCA9IGZhbHNlOwotCQlyZGV2 LT5hdWRpby5waW5baV0ub2Zmc2V0ID0gcGluX29mZnNldHNbaV07Ci0JCXJkZXYtPmF1ZGlvLnBp bltpXS5pZCA9IGk7Ci0JCS8qIGRpc2FibGUgYXVkaW8uICBpdCB3aWxsIGJlIHNldCB1cCBsYXRl ciAqLwotCQlkY2U2X2F1ZGlvX2VuYWJsZShyZGV2LCAmcmRldi0+YXVkaW8ucGluW2ldLCBmYWxz ZSk7Ci0JfQotCi0JcmV0dXJuIDA7Ci19Ci0KIHZvaWQgZGNlNl9hdWRpb19maW5pKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2KQogewogCWludCBpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVu LmMKaW5kZXggODU5OTViNC4uNDA2ZWE4ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9ldmVyZ3JlZW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbi5j CkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlICJyYWRl b24uaCIKICNpbmNsdWRlICJyYWRlb25fYXNpYy5oIgorI2luY2x1ZGUgInJhZGVvbl9hdWRpby5o IgogI2luY2x1ZGUgPGRybS9yYWRlb25fZHJtLmg+CiAjaW5jbHVkZSAiZXZlcmdyZWVuZC5oIgog I2luY2x1ZGUgImF0b20uaCIKQEAgLTUyODYsNyArNTI4Nyw3IEBAIHN0YXRpYyBpbnQgZXZlcmdy ZWVuX3N0YXJ0dXAoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJCXJldHVybiByOwogCX0K IAotCXIgPSByNjAwX2F1ZGlvX2luaXQocmRldik7CisJciA9IHJhZGVvbl9hdWRpb19pbml0KHJk ZXYpOwogCWlmIChyKSB7CiAJCURSTV9FUlJPUigicmFkZW9uOiBhdWRpbyBpbml0IGZhaWxlZFxu Iik7CiAJCXJldHVybiByOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9uaS5j IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9uaS5jCmluZGV4IDM2MGRlOWYuLjUyMDNlMGMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vbmkuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL25pLmMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxkcm0vZHJtUC5oPgog I2luY2x1ZGUgInJhZGVvbi5oIgogI2luY2x1ZGUgInJhZGVvbl9hc2ljLmgiCisjaW5jbHVkZSAi cmFkZW9uX2F1ZGlvLmgiCiAjaW5jbHVkZSA8ZHJtL3JhZGVvbl9kcm0uaD4KICNpbmNsdWRlICJu aWQuaCIKICNpbmNsdWRlICJhdG9tLmgiCkBAIC0yMDk3LDE1ICsyMDk4LDkgQEAgc3RhdGljIGlu dCBjYXltYW5fc3RhcnR1cChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAkJcmV0dXJuIHI7 CiAJfQogCi0JaWYgKEFTSUNfSVNfRENFNihyZGV2KSkgewotCQlyID0gZGNlNl9hdWRpb19pbml0 KHJkZXYpOwotCQlpZiAocikKLQkJCXJldHVybiByOwotCX0gZWxzZSB7Ci0JCXIgPSByNjAwX2F1 ZGlvX2luaXQocmRldik7Ci0JCWlmIChyKQotCQkJcmV0dXJuIHI7Ci0JfQorCXIgPSByYWRlb25f YXVkaW9faW5pdChyZGV2KTsKKwlpZiAocikKKwkJcmV0dXJuIHI7CiAKIAlyZXR1cm4gMDsKIH0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMC5jIGIvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yNjAwLmMKaW5kZXggZWY1ZDYwNi4uZGU3ODc4YSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y NjAwLmMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDxkcm0vcmFkZW9uX2RybS5oPgogI2lu Y2x1ZGUgInJhZGVvbi5oIgogI2luY2x1ZGUgInJhZGVvbl9hc2ljLmgiCisjaW5jbHVkZSAicmFk ZW9uX2F1ZGlvLmgiCiAjaW5jbHVkZSAicmFkZW9uX21vZGUuaCIKICNpbmNsdWRlICJyNjAwZC5o IgogI2luY2x1ZGUgImF0b20uaCIKQEAgLTMwNTQsNyArMzA1NSw3IEBAIHN0YXRpYyBpbnQgcjYw MF9zdGFydHVwKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCQlyZXR1cm4gcjsKIAl9CiAK LQlyID0gcjYwMF9hdWRpb19pbml0KHJkZXYpOworCXIgPSByYWRlb25fYXVkaW9faW5pdChyZGV2 KTsKIAlpZiAocikgewogCQlEUk1fRVJST1IoInJhZGVvbjogYXVkaW8gaW5pdCBmYWlsZWRcbiIp OwogCQlyZXR1cm4gcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9o ZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfaGRtaS5jCmluZGV4IGI5MGRjMGUu Ljk2YTI2YjBjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfaGRtaS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9oZG1pLmMKQEAgLTcwLDE1ICs3MCw2 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmFkZW9uX2hkbWlfYWNyIHI2MDBfaGRtaV9wcmVkZWZp bmVkX2FjcltdID0gewogICAgIHsgMTQ4NTAwLCAgNDA5NiwgMTQ4NTAwLCAgNjI3MiwgMTY1MDAw LCAgNjE0NCwgMTQ4NTAwIH0sIC8qIDE0OC41MCAgICAgICBNSHogKi8KIH07CiAKLQotLyoKLSAq IGNoZWNrIGlmIHRoZSBjaGlwc2V0IGlzIHN1cHBvcnRlZAotICovCi1zdGF0aWMgaW50IHI2MDBf YXVkaW9fY2hpcHNldF9zdXBwb3J0ZWQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCi17Ci0J cmV0dXJuIEFTSUNfSVNfRENFMihyZGV2KSAmJiAhQVNJQ19JU19OT0RDRShyZGV2KTsKLX0KLQog c3RhdGljIHN0cnVjdCByNjAwX2F1ZGlvX3BpbiByNjAwX2F1ZGlvX3N0YXR1cyhzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldikKIHsKIAlzdHJ1Y3QgcjYwMF9hdWRpb19waW4gc3RhdHVzOwpAQCAt MTkyLDI5ICsxODMsNiBAQCB2b2lkIHI2MDBfYXVkaW9fZW5hYmxlKHN0cnVjdCByYWRlb25fZGV2 aWNlICpyZGV2LAogfQogCiAvKgotICogaW5pdGlhbGl6ZSB0aGUgYXVkaW8gdmFycwotICovCi1p bnQgcjYwMF9hdWRpb19pbml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQotewotCWlmICgh cmFkZW9uX2F1ZGlvIHx8ICFyNjAwX2F1ZGlvX2NoaXBzZXRfc3VwcG9ydGVkKHJkZXYpKQotCQly ZXR1cm4gMDsKLQotCXJkZXYtPmF1ZGlvLmVuYWJsZWQgPSB0cnVlOwotCi0JcmRldi0+YXVkaW8u bnVtX3BpbnMgPSAxOwotCXJkZXYtPmF1ZGlvLnBpblswXS5jaGFubmVscyA9IC0xOwotCXJkZXYt PmF1ZGlvLnBpblswXS5yYXRlID0gLTE7Ci0JcmRldi0+YXVkaW8ucGluWzBdLmJpdHNfcGVyX3Nh bXBsZSA9IC0xOwotCXJkZXYtPmF1ZGlvLnBpblswXS5zdGF0dXNfYml0cyA9IDA7Ci0JcmRldi0+ YXVkaW8ucGluWzBdLmNhdGVnb3J5X2NvZGUgPSAwOwotCXJkZXYtPmF1ZGlvLnBpblswXS5pZCA9 IDA7Ci0JLyogZGlzYWJsZSBhdWRpby4gIGl0IHdpbGwgYmUgc2V0IHVwIGxhdGVyICovCi0JcjYw MF9hdWRpb19lbmFibGUocmRldiwgJnJkZXYtPmF1ZGlvLnBpblswXSwgMCk7Ci0KLQlyZXR1cm4g MDsKLX0KLQotLyoKICAqIHJlbGVhc2UgdGhlIGF1ZGlvIHRpbWVyCiAgKiBUT0RPOiBIb3cgdG8g ZG8gdGhpcyBjb3JyZWN0bHkgb24gU01QIHN5c3RlbXM/CiAgKi8KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX2FzaWMuaAppbmRleCA1MTQyYmM5Li42ZWFjZjQxIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hc2ljLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fYXNpYy5oCkBAIC0zOTAsNyArMzkwLDYgQEAgdm9pZCByNjAwX2lycV9zdXNwZW5k KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKIHZvaWQgcjYwMF9kaXNhYmxlX2ludGVycnVw dHMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwogdm9pZCByNjAwX3JsY19zdG9wKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2KTsKIC8qIHI2MDAgYXVkaW8gKi8KLWludCByNjAwX2F1ZGlv X2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwogdm9pZCByNjAwX2F1ZGlvX2Zpbmko c3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwogdm9pZCByNjAwX2F1ZGlvX3NldF9kdG8oc3Ry dWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCB1MzIgY2xvY2spOwogdm9pZCByNjAwX2hkbWlfdXBk YXRlX2F2aV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCB2b2lkICpidWZm ZXIsCkBAIC02ODAsNyArNjc5LDYgQEAgdm9pZCB0cmluaXR5X2RwbV9lbmFibGVfYmFwbShzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgYm9vbCBlbmFibGUpOwogCiAvKiBEQ0U2IC0gU0kgKi8K IHZvaWQgZGNlNl9iYW5kd2lkdGhfdXBkYXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsK LWludCBkY2U2X2F1ZGlvX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwogdm9pZCBk Y2U2X2F1ZGlvX2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwogCiAvKgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8uYyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2F1ZGlvLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uY2M4MzVlMgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX2F1ZGlvLmMKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE0IEFk dmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBn cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29w eSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo ZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJp Y3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNl LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAor ICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJz b25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl Y3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmln aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGlu CisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4K KyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U WSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1Qg TElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZF TlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFC TEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVS IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5H IEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBV U0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3Jz OiBTbGF2YSBHcmlnb3JldiA8c2xhdmEuZ3JpZ29yZXZAYW1kLmNvbT4KKyAqLworCisjaW5jbHVk ZSA8ZHJtL2RybVAuaD4KKyNpbmNsdWRlICJyYWRlb24uaCIKKwordm9pZCByNjAwX2F1ZGlvX2Vu YWJsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHI2MDBfYXVkaW9fcGluICpw aW4sCisJCXU4IGVuYWJsZV9tYXNrKTsKK3ZvaWQgZGNlNl9hdWRpb19lbmFibGUoc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByNjAwX2F1ZGlvX3BpbiAqcGluLAorCQl1OCBlbmFi bGVfbWFzayk7CisKK3N0YXRpYyBjb25zdCB1MzIgcGluX29mZnNldHNbN10gPQoreworCSgweDVl MDAgLSAweDVlMDApLAorCSgweDVlMTggLSAweDVlMDApLAorCSgweDVlMzAgLSAweDVlMDApLAor CSgweDVlNDggLSAweDVlMDApLAorCSgweDVlNjAgLSAweDVlMDApLAorCSgweDVlNzggLSAweDVl MDApLAorCSgweDVlOTAgLSAweDVlMDApLAorfTsKKworc3RhdGljIGludCByYWRlb25fYXVkaW9f Y2hpcHNldF9zdXBwb3J0ZWQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCit7CisJcmV0dXJu IEFTSUNfSVNfRENFMihyZGV2KSAmJiAhQVNJQ19JU19OT0RDRShyZGV2KTsKK30KKworaW50IHJh ZGVvbl9hdWRpb19pbml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQoreworCWludCBpOwor CisJaWYgKCFyYWRlb25fYXVkaW8gfHwgIXJhZGVvbl9hdWRpb19jaGlwc2V0X3N1cHBvcnRlZChy ZGV2KSkKKwkJcmV0dXJuIDA7CisKKwlyZGV2LT5hdWRpby5lbmFibGVkID0gdHJ1ZTsKKworCWlm IChBU0lDX0lTX0RDRTgzKHJkZXYpKQkJLyogS0I6IDIgc3RyZWFtcywgMyBlbmRwb2ludHMgKi8K KwkJcmRldi0+YXVkaW8ubnVtX3BpbnMgPSAzOworCWVsc2UgaWYgKEFTSUNfSVNfRENFODEocmRl dikpCS8qIEtWOiA0IHN0cmVhbXMsIDcgZW5kcG9pbnRzICovCisJCXJkZXYtPmF1ZGlvLm51bV9w aW5zID0gNzsKKwllbHNlIGlmIChBU0lDX0lTX0RDRTgocmRldikpCS8qIEJOL0hXOiA2IHN0cmVh bXMsIDcgZW5kcG9pbnRzICovCisJCXJkZXYtPmF1ZGlvLm51bV9waW5zID0gNzsKKwllbHNlIGlm IChBU0lDX0lTX0RDRTY0KHJkZXYpKQkvKiBPTDogMiBzdHJlYW1zLCAyIGVuZHBvaW50cyAqLwor CQlyZGV2LT5hdWRpby5udW1fcGlucyA9IDI7CisJZWxzZSBpZiAoQVNJQ19JU19EQ0U2MShyZGV2 KSkJLyogVE46IDQgc3RyZWFtcywgNiBlbmRwb2ludHMgKi8KKwkJcmRldi0+YXVkaW8ubnVtX3Bp bnMgPSA2OworCWVsc2UgaWYgKEFTSUNfSVNfRENFNihyZGV2KSkJLyogU0k6IDYgc3RyZWFtcywg NiBlbmRwb2ludHMgKi8KKwkJcmRldi0+YXVkaW8ubnVtX3BpbnMgPSA2OworCWVsc2UKKwkJcmRl di0+YXVkaW8ubnVtX3BpbnMgPSAxOworCisJZm9yIChpID0gMDsgaSA8IHJkZXYtPmF1ZGlvLm51 bV9waW5zOyBpKyspIHsKKwkJcmRldi0+YXVkaW8ucGluW2ldLmNoYW5uZWxzID0gLTE7CisJCXJk ZXYtPmF1ZGlvLnBpbltpXS5yYXRlID0gLTE7CisJCXJkZXYtPmF1ZGlvLnBpbltpXS5iaXRzX3Bl cl9zYW1wbGUgPSAtMTsKKwkJcmRldi0+YXVkaW8ucGluW2ldLnN0YXR1c19iaXRzID0gMDsKKwkJ cmRldi0+YXVkaW8ucGluW2ldLmNhdGVnb3J5X2NvZGUgPSAwOworCQlyZGV2LT5hdWRpby5waW5b aV0uY29ubmVjdGVkID0gZmFsc2U7CisJCXJkZXYtPmF1ZGlvLnBpbltpXS5vZmZzZXQgPSBwaW5f b2Zmc2V0c1tpXTsKKwkJcmRldi0+YXVkaW8ucGluW2ldLmlkID0gaTsKKwkJLyogZGlzYWJsZSBh dWRpby4gIGl0IHdpbGwgYmUgc2V0IHVwIGxhdGVyICovCisJCWlmIChBU0lDX0lTX0RDRTYocmRl dikpCisJCQlkY2U2X2F1ZGlvX2VuYWJsZShyZGV2LCAmcmRldi0+YXVkaW8ucGluW2ldLCBmYWxz ZSk7CisJCWVsc2UKKwkJCXI2MDBfYXVkaW9fZW5hYmxlKHJkZXYsICZyZGV2LT5hdWRpby5waW5b aV0sIGZhbHNlKTsKKwl9CisKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2F1ZGlvLmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9hdWRpby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0NTVmYmQKLS0t IC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hdWRpby5oCkBA IC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNCBBZHZhbmNlZCBNaWNybyBEZXZp Y2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy ZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisg KiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcg d2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt ZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQor ICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp cyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBv ciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRX QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY UFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUg Q09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0s IERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0Yg Q09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1Ig SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBE RUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczogU2xhdmEgR3JpZ29yZXYg PHNsYXZhLmdyaWdvcmV2QGFtZC5jb20+CisgKi8KKyNpZm5kZWYgX19SQURFT05fQVVESU9fSF9f CisjZGVmaW5lIF9fUkFERU9OX0FVRElPX0hfXworCitpbnQgcmFkZW9uX2F1ZGlvX2luaXQoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcnM2MDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM2MDAuYwpp bmRleCA5YWNiMWMzLi5jMjZmOTYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JzNjAwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yczYwMC5jCkBAIC0zOCw2ICsz OCw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlICJyYWRlb24uaCIKICNpbmNs dWRlICJyYWRlb25fYXNpYy5oIgorI2luY2x1ZGUgInJhZGVvbl9hdWRpby5oIgogI2luY2x1ZGUg ImF0b20uaCIKICNpbmNsdWRlICJyczYwMGQuaCIKIApAQCAtMTAxMiw3ICsxMDEzLDcgQEAgc3Rh dGljIGludCByczYwMF9zdGFydHVwKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCQlyZXR1 cm4gcjsKIAl9CiAKLQlyID0gcjYwMF9hdWRpb19pbml0KHJkZXYpOworCXIgPSByYWRlb25fYXVk aW9faW5pdChyZGV2KTsKIAlpZiAocikgewogCQlkZXZfZXJyKHJkZXYtPmRldiwgImZhaWxlZCBp bml0aWFsaXppbmcgYXVkaW9cbiIpOwogCQlyZXR1cm4gcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcnM2OTAuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM2OTAuYwpp bmRleCAwYTJkMzZlLi4wZmM1NTkyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JzNjkwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yczY5MC5jCkBAIC0yOCw2ICsy OCw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlICJyYWRlb24uaCIKICNpbmNs dWRlICJyYWRlb25fYXNpYy5oIgorI2luY2x1ZGUgInJhZGVvbl9hdWRpby5oIgogI2luY2x1ZGUg ImF0b20uaCIKICNpbmNsdWRlICJyczY5MGQuaCIKIApAQCAtNzI5LDcgKzczMCw3IEBAIHN0YXRp YyBpbnQgcnM2OTBfc3RhcnR1cChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAkJcmV0dXJu IHI7CiAJfQogCi0JciA9IHI2MDBfYXVkaW9faW5pdChyZGV2KTsKKwlyID0gcmFkZW9uX2F1ZGlv X2luaXQocmRldik7CiAJaWYgKHIpIHsKIAkJZGV2X2VycihyZGV2LT5kZXYsICJmYWlsZWQgaW5p dGlhbGl6aW5nIGF1ZGlvXG4iKTsKIAkJcmV0dXJuIHI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3J2NzcwLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3J2NzcwLmMKaW5k ZXggMzcyMDE2ZS4uOWJkZWI0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y djc3MC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY3NzAuYwpAQCAtMzAsNiArMzAs NyBAQAogI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSAicmFkZW9uLmgiCiAjaW5jbHVk ZSAicmFkZW9uX2FzaWMuaCIKKyNpbmNsdWRlICJyYWRlb25fYXVkaW8uaCIKICNpbmNsdWRlIDxk cm0vcmFkZW9uX2RybS5oPgogI2luY2x1ZGUgInJ2NzcwZC5oIgogI2luY2x1ZGUgImF0b20uaCIK QEAgLTE3ODgsNyArMTc4OSw3IEBAIHN0YXRpYyBpbnQgcnY3NzBfc3RhcnR1cChzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldikKIAkJcmV0dXJuIHI7CiAJfQogCi0JciA9IHI2MDBfYXVkaW9faW5p dChyZGV2KTsKKwlyID0gcmFkZW9uX2F1ZGlvX2luaXQocmRldik7CiAJaWYgKHIpIHsKIAkJRFJN X0VSUk9SKCJyYWRlb246IGF1ZGlvIGluaXQgZmFpbGVkXG4iKTsKIAkJcmV0dXJuIHI7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3NpLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3NpLmMKaW5kZXggNjBkZjQ0NC4uYWNjN2EyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9zaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2kuYwpAQCAtMjcs NiArMjcsNyBAQAogI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSAicmFkZW9uLmgiCiAj aW5jbHVkZSAicmFkZW9uX2FzaWMuaCIKKyNpbmNsdWRlICJyYWRlb25fYXVkaW8uaCIKICNpbmNs dWRlIDxkcm0vcmFkZW9uX2RybS5oPgogI2luY2x1ZGUgInNpZC5oIgogI2luY2x1ZGUgImF0b20u aCIKQEAgLTY4NTksNyArNjg2MCw3IEBAIHN0YXRpYyBpbnQgc2lfc3RhcnR1cChzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldikKIAkJcmV0dXJuIHI7CiAJfQogCi0JciA9IGRjZTZfYXVkaW9faW5p dChyZGV2KTsKKwlyID0gcmFkZW9uX2F1ZGlvX2luaXQocmRldik7CiAJaWYgKHIpCiAJCXJldHVy biByOwogCi0tIAoxLjguMy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo=