From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak M Subject: [MIPI SEQ PARSING v1 PATCH 3/9] drm/i915: Using the approprite vbt size if vbt is not in mailbox4 of opregion Date: Tue, 28 Jul 2015 15:31:04 +0530 Message-ID: <1438077670-12953-4-git-send-email-m.deepak@intel.com> References: <1438077670-12953-1-git-send-email-m.deepak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 2D1566E084 for ; Tue, 28 Jul 2015 02:56:41 -0700 (PDT) In-Reply-To: <1438077670-12953-1-git-send-email-m.deepak@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: Deepak M List-Id: intel-gfx@lists.freedesktop.org Q3VycmVudGx5IHRoZSBmaWVsZCBpbiBiZGIgaGVhZGVyIHdoaWNoIGluZGljYXRlcyB0aGUgVkJU IHNpemUKaXMgb2YgMiBieXRlcywgYnV0IHRoZXJlIGFyZSBzb21lIGNhc2VzIHdoZXJlIFZCVCBz aXplIGV4Y2VlZHMKNjRLQiBpbiB3aGljaCBjYXNlIHRoaXMgZmllbGQgbWF5IG5vdCBjb250YWlu IHRoZSBjb3JyZWN0IFZCVCBzaXplLgpTbyBpdHMgYmV0dGVyIHRvIGdldCB0aGUgVkJUIHNpemUg ZnJvbSB0aGUgbWFpbGJveDMgaWYKVkJUIGlzIG5vdCBwcmVzZW50IGluIHRoZSBtYWlsYm94NCBv ZiBvcHJlZ2lvbi4KClNpZ25lZC1vZmYtYnk6IERlZXBhayBNIDxtLmRlZXBha0BpbnRlbC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICB8ICAgIDUgKysrKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5jICAgICB8ICAgNDMgKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vcHJlZ2lv bi5jIHwgICAgNyArKysrLS0KIDMgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMjAg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMWRiZDk1Ny4uYjM4ZjUy ZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTc0MCw2ICsxNzQwLDExIEBAIHN0cnVj dCBkcm1faTkxNV9wcml2YXRlIHsKIAl1MzIgcG1fcnBzX2V2ZW50czsKIAl1MzIgcGlwZXN0YXRf aXJxX21hc2tbSTkxNV9NQVhfUElQRVNdOwogCisJYm9vbCB2YnRfaW5fbWFpbGJveDQ7CisKKwkv KiB2YWx1ZSBpcyB0cnVlIHdoZW4gVkJUIGlzIHByZXNlbnQgaW4gbWFpbGJveDQgKi8KKwl1MzIg dmJ0X3NpemU7CisKIAlzdHJ1Y3QgaTkxNV9ob3RwbHVnIGhvdHBsdWc7CiAJc3RydWN0IGk5MTVf ZmJjIGZiYzsKIAlzdHJ1Y3QgaTkxNV9kcnJzIGRycnM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9z LmMKaW5kZXggMWI5MTY0ZS4uNWUwZmYyMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYmlvcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuYwpA QCAtMzcsMTcgKzM3LDIyIEBACiBzdGF0aWMgaW50IHBhbmVsX3R5cGU7CiAKIHN0YXRpYyBjb25z dCB2b2lkICoKLWZpbmRfc2VjdGlvbihjb25zdCB2b2lkICpfYmRiLCBpbnQgc2VjdGlvbl9pZCkK K2ZpbmRfc2VjdGlvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCWNvbnN0 IHZvaWQgKl9iZGIsIGludCBzZWN0aW9uX2lkKQogewogCWNvbnN0IHN0cnVjdCBiZGJfaGVhZGVy ICpiZGIgPSBfYmRiOwogCWNvbnN0IHU4ICpiYXNlID0gX2JkYjsKIAlpbnQgaW5kZXggPSAwOwot CXUxNiB0b3RhbCwgY3VycmVudF9zaXplOworCXUzMiB0b3RhbCwgY3VycmVudF9zaXplOwogCXU4 IGN1cnJlbnRfaWQ7CiAKIAkvKiBza2lwIHRvIGZpcnN0IHNlY3Rpb24gKi8KIAlpbmRleCArPSBi ZGItPmhlYWRlcl9zaXplOwotCXRvdGFsID0gYmRiLT5iZGJfc2l6ZTsKKworCWlmIChkZXZfcHJp di0+dmJ0X2luX21haWxib3g0KQorCQl0b3RhbCA9IGJkYi0+YmRiX3NpemU7CisJZWxzZQorCQl0 b3RhbCA9IGRldl9wcml2LT52YnRfc2l6ZTsKIAogCS8qIHdhbGsgdGhlIHNlY3Rpb25zIGxvb2tp bmcgZm9yIHNlY3Rpb25faWQgKi8KIAl3aGlsZSAoaW5kZXggKyAzIDwgdG90YWwpIHsKQEAgLTE3 OSw3ICsxODQsNyBAQCBwYXJzZV9sZnBfcGFuZWxfZGF0YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnBhbmVsX2ZpeGVkX21vZGU7 CiAJaW50IGRycnNfbW9kZTsKIAotCWx2ZHNfb3B0aW9ucyA9IGZpbmRfc2VjdGlvbihiZGIsIEJE Ql9MVkRTX09QVElPTlMpOworCWx2ZHNfb3B0aW9ucyA9IGZpbmRfc2VjdGlvbihkZXZfcHJpdiwg YmRiLCBCREJfTFZEU19PUFRJT05TKTsKIAlpZiAoIWx2ZHNfb3B0aW9ucykKIAkJcmV0dXJuOwog CkBAIC0yMTEsMTEgKzIxNiwxMiBAQCBwYXJzZV9sZnBfcGFuZWxfZGF0YShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWJyZWFrOwogCX0KIAotCWx2ZHNfbGZwX2RhdGEgPSBm aW5kX3NlY3Rpb24oYmRiLCBCREJfTFZEU19MRlBfREFUQSk7CisJbHZkc19sZnBfZGF0YSA9IGZp bmRfc2VjdGlvbihkZXZfcHJpdiwgYmRiLCBCREJfTFZEU19MRlBfREFUQSk7CiAJaWYgKCFsdmRz X2xmcF9kYXRhKQogCQlyZXR1cm47CiAKLQlsdmRzX2xmcF9kYXRhX3B0cnMgPSBmaW5kX3NlY3Rp b24oYmRiLCBCREJfTFZEU19MRlBfREFUQV9QVFJTKTsKKwlsdmRzX2xmcF9kYXRhX3B0cnMgPSBm aW5kX3NlY3Rpb24oZGV2X3ByaXYsIGJkYiwKKwkJCQkJQkRCX0xWRFNfTEZQX0RBVEFfUFRSUyk7 CiAJaWYgKCFsdmRzX2xmcF9kYXRhX3B0cnMpCiAJCXJldHVybjsKIApAQCAtMjU3LDcgKzI2Myw3 IEBAIHBhcnNlX2xmcF9iYWNrbGlnaHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCWNvbnN0IHN0cnVjdCBiZGJfbGZwX2JhY2tsaWdodF9kYXRhICpiYWNrbGlnaHRfZGF0YTsK IAljb25zdCBzdHJ1Y3QgYmRiX2xmcF9iYWNrbGlnaHRfZGF0YV9lbnRyeSAqZW50cnk7CiAKLQli YWNrbGlnaHRfZGF0YSA9IGZpbmRfc2VjdGlvbihiZGIsIEJEQl9MVkRTX0JBQ0tMSUdIVCk7CisJ YmFja2xpZ2h0X2RhdGEgPSBmaW5kX3NlY3Rpb24oZGV2X3ByaXYsIGJkYiwgQkRCX0xWRFNfQkFD S0xJR0hUKTsKIAlpZiAoIWJhY2tsaWdodF9kYXRhKQogCQlyZXR1cm47CiAKQEAgLTMwNSwxNCAr MzExLDE1IEBAIHBhcnNlX3Nkdm9fcGFuZWxfZGF0YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJaWYgKGluZGV4ID09IC0xKSB7CiAJCWNvbnN0IHN0cnVjdCBiZGJfc2R2b19s dmRzX29wdGlvbnMgKnNkdm9fbHZkc19vcHRpb25zOwogCi0JCXNkdm9fbHZkc19vcHRpb25zID0g ZmluZF9zZWN0aW9uKGJkYiwgQkRCX1NEVk9fTFZEU19PUFRJT05TKTsKKwkJc2R2b19sdmRzX29w dGlvbnMgPSBmaW5kX3NlY3Rpb24oZGV2X3ByaXYsIGJkYiwKKwkJCQkJCUJEQl9TRFZPX0xWRFNf T1BUSU9OUyk7CiAJCWlmICghc2R2b19sdmRzX29wdGlvbnMpCiAJCQlyZXR1cm47CiAKIAkJaW5k ZXggPSBzZHZvX2x2ZHNfb3B0aW9ucy0+cGFuZWxfdHlwZTsKIAl9CiAKLQlkdm9fdGltaW5nID0g ZmluZF9zZWN0aW9uKGJkYiwgQkRCX1NEVk9fUEFORUxfRFREUyk7CisJZHZvX3RpbWluZyA9IGZp bmRfc2VjdGlvbihkZXZfcHJpdiwgYmRiLCBCREJfU0RWT19QQU5FTF9EVERTKTsKIAlpZiAoIWR2 b190aW1pbmcpCiAJCXJldHVybjsKIApAQCAtMzQ5LDcgKzM1Niw3IEBAIHBhcnNlX2dlbmVyYWxf ZmVhdHVyZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2OwogCWNvbnN0IHN0cnVjdCBiZGJfZ2VuZXJhbF9m ZWF0dXJlcyAqZ2VuZXJhbDsKIAotCWdlbmVyYWwgPSBmaW5kX3NlY3Rpb24oYmRiLCBCREJfR0VO RVJBTF9GRUFUVVJFUyk7CisJZ2VuZXJhbCA9IGZpbmRfc2VjdGlvbihkZXZfcHJpdiwgYmRiLCBC REJfR0VORVJBTF9GRUFUVVJFUyk7CiAJaWYgKGdlbmVyYWwpIHsKIAkJZGV2X3ByaXYtPnZidC5p bnRfdHZfc3VwcG9ydCA9IGdlbmVyYWwtPmludF90dl9zdXBwb3J0OwogCQlkZXZfcHJpdi0+dmJ0 LmludF9jcnRfc3VwcG9ydCA9IGdlbmVyYWwtPmludF9jcnRfc3VwcG9ydDsKQEAgLTM3NCw3ICsz ODEsNyBAQCBwYXJzZV9nZW5lcmFsX2RlZmluaXRpb25zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIHsKIAljb25zdCBzdHJ1Y3QgYmRiX2dlbmVyYWxfZGVmaW5pdGlvbnMgKmdl bmVyYWw7CiAKLQlnZW5lcmFsID0gZmluZF9zZWN0aW9uKGJkYiwgQkRCX0dFTkVSQUxfREVGSU5J VElPTlMpOworCWdlbmVyYWwgPSBmaW5kX3NlY3Rpb24oZGV2X3ByaXYsIGJkYiwgQkRCX0dFTkVS QUxfREVGSU5JVElPTlMpOwogCWlmIChnZW5lcmFsKSB7CiAJCXUxNiBibG9ja19zaXplID0gZ2V0 X2Jsb2Nrc2l6ZShnZW5lcmFsKTsKIAkJaWYgKGJsb2NrX3NpemUgPj0gc2l6ZW9mKCpnZW5lcmFs KSkgewpAQCAtNDA1LDcgKzQxMiw3IEBAIHBhcnNlX3Nkdm9fZGV2aWNlX21hcHBpbmcoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWludCBpLCBjaGlsZF9kZXZpY2VfbnVtLCBj b3VudDsKIAl1MTYJYmxvY2tfc2l6ZTsKIAotCXBfZGVmcyA9IGZpbmRfc2VjdGlvbihiZGIsIEJE Ql9HRU5FUkFMX0RFRklOSVRJT05TKTsKKwlwX2RlZnMgPSBmaW5kX3NlY3Rpb24oZGV2X3ByaXYs IGJkYiwgQkRCX0dFTkVSQUxfREVGSU5JVElPTlMpOwogCWlmICghcF9kZWZzKSB7CiAJCURSTV9E RUJVR19LTVMoIk5vIGdlbmVyYWwgZGVmaW5pdGlvbiBibG9jayBpcyBmb3VuZCwgdW5hYmxlIHRv IGNvbnN0cnVjdCBzZHZvIG1hcHBpbmcuXG4iKTsKIAkJcmV0dXJuOwpAQCAtNDkxLDcgKzQ5OCw3 IEBAIHBhcnNlX2RyaXZlcl9mZWF0dXJlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiB7CiAJY29uc3Qgc3RydWN0IGJkYl9kcml2ZXJfZmVhdHVyZXMgKmRyaXZlcjsKIAotCWRy aXZlciA9IGZpbmRfc2VjdGlvbihiZGIsIEJEQl9EUklWRVJfRkVBVFVSRVMpOworCWRyaXZlciA9 IGZpbmRfc2VjdGlvbihkZXZfcHJpdiwgYmRiLCBCREJfRFJJVkVSX0ZFQVRVUkVTKTsKIAlpZiAo IWRyaXZlcikKIAkJcmV0dXJuOwogCkBAIC01MTksNyArNTI2LDcgQEAgcGFyc2VfZWRwKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgY29uc3Qgc3RydWN0IGJkYl9oZWFkZXIgKmJk YikKIAljb25zdCBzdHJ1Y3QgZWRwX3Bvd2VyX3NlcSAqZWRwX3BwczsKIAljb25zdCBzdHJ1Y3Qg ZWRwX2xpbmtfcGFyYW1zICplZHBfbGlua19wYXJhbXM7CiAKLQllZHAgPSBmaW5kX3NlY3Rpb24o YmRiLCBCREJfRURQKTsKKwllZHAgPSBmaW5kX3NlY3Rpb24oZGV2X3ByaXYsIGJkYiwgQkRCX0VE UCk7CiAJaWYgKCFlZHApIHsKIAkJaWYgKGRldl9wcml2LT52YnQuZWRwX3N1cHBvcnQpCiAJCQlE Uk1fREVCVUdfS01TKCJObyBlRFAgQkRCIGZvdW5kIGJ1dCBlRFAgcGFuZWwgc3VwcG9ydGVkLlxu Iik7CkBAIC02MzAsNyArNjM3LDcgQEAgcGFyc2VfcHNyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgY29uc3Qgc3RydWN0IGJkYl9oZWFkZXIgKmJkYikKIAljb25zdCBzdHJ1Y3Qg YmRiX3BzciAqcHNyOwogCWNvbnN0IHN0cnVjdCBwc3JfdGFibGUgKnBzcl90YWJsZTsKIAotCXBz ciA9IGZpbmRfc2VjdGlvbihiZGIsIEJEQl9QU1IpOworCXBzciA9IGZpbmRfc2VjdGlvbihkZXZf cHJpdiwgYmRiLCBCREJfUFNSKTsKIAlpZiAoIXBzcikgewogCQlEUk1fREVCVUdfS01TKCJObyBQ U1IgQkRCIGZvdW5kLlxuIik7CiAJCXJldHVybjsKQEAgLTc2OCw3ICs3NzUsNyBAQCBwYXJzZV9t aXBpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgY29uc3Qgc3RydWN0IGJkYl9o ZWFkZXIgKmJkYikKIAkvKiBQYXJzZSAjNTIgZm9yIHBhbmVsIGluZGV4IHVzZWQgZnJvbSBwYW5l bF90eXBlIGFscmVhZHkKIAkgKiBwYXJzZWQKIAkgKi8KLQlzdGFydCA9IGZpbmRfc2VjdGlvbihi ZGIsIEJEQl9NSVBJX0NPTkZJRyk7CisJc3RhcnQgPSBmaW5kX3NlY3Rpb24oZGV2X3ByaXYsIGJk YiwgQkRCX01JUElfQ09ORklHKTsKIAlpZiAoIXN0YXJ0KSB7CiAJCURSTV9ERUJVR19LTVMoIk5v IE1JUEkgY29uZmlnIEJEQiBmb3VuZCIpOwogCQlyZXR1cm47CkBAIC03OTksNyArODA2LDcgQEAg cGFyc2VfbWlwaShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGNvbnN0IHN0cnVj dCBiZGJfaGVhZGVyICpiZGIpCiAJZGV2X3ByaXYtPnZidC5kc2kucGFuZWxfaWQgPSBNSVBJX0RT SV9HRU5FUklDX1BBTkVMX0lEOwogCiAJLyogQ2hlY2sgaWYgd2UgaGF2ZSBzZXF1ZW5jZSBibG9j ayBhcyB3ZWxsICovCi0Jc2VxdWVuY2UgPSBmaW5kX3NlY3Rpb24oYmRiLCBCREJfTUlQSV9TRVFV RU5DRSk7CisJc2VxdWVuY2UgPSBmaW5kX3NlY3Rpb24oZGV2X3ByaXYsIGJkYiwgQkRCX01JUElf U0VRVUVOQ0UpOwogCWlmICghc2VxdWVuY2UpIHsKIAkJRFJNX0RFQlVHX0tNUygiTm8gTUlQSSBT ZXF1ZW5jZSBmb3VuZCwgcGFyc2luZyBjb21wbGV0ZVxuIik7CiAJCXJldHVybjsKQEAgLTEwMjMs NyArMTAzMCw3IEBAIHBhcnNlX2RldmljZV9tYXBwaW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIAlpbnQgaSwgY2hpbGRfZGV2aWNlX251bSwgY291bnQ7CiAJdTE2CWJsb2Nr X3NpemU7CiAKLQlwX2RlZnMgPSBmaW5kX3NlY3Rpb24oYmRiLCBCREJfR0VORVJBTF9ERUZJTklU SU9OUyk7CisJcF9kZWZzID0gZmluZF9zZWN0aW9uKGRldl9wcml2LCBiZGIsIEJEQl9HRU5FUkFM X0RFRklOSVRJT05TKTsKIAlpZiAoIXBfZGVmcykgewogCQlEUk1fREVCVUdfS01TKCJObyBnZW5l cmFsIGRlZmluaXRpb24gYmxvY2sgaXMgZm91bmQsIG5vIGRldmljZXMgZGVmaW5lZC5cbiIpOwog CQlyZXR1cm47CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vcHJlZ2lv bi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ByZWdpb24uYwppbmRleCAxMzcyZTM5 Li4xZjc2NzE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vcHJlZ2lv bi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX29wcmVnaW9uLmMKQEAgLTg5Niwx MSArODk2LDE0IEBAIGludCBpbnRlbF9vcHJlZ2lvbl9zZXR1cChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCW9wcmVnaW9uLT5oZWFkZXIgPSBiYXNlOwogCW9wcmVnaW9uLT5hc2xlID0gYmFzZSAr IE9QUkVHSU9OX0FTTEVfT0ZGU0VUOwogCisJZGV2X3ByaXYtPnZidF9pbl9tYWlsYm94NCA9IHRy dWU7CiAJaWYgKG9wcmVnaW9uLT5oZWFkZXItPm9wcmVnaW9uX3ZlciA+PSAyKSB7Ci0JCWlmIChv cHJlZ2lvbi0+YXNsZS0+cnZkYSkKKwkJaWYgKG9wcmVnaW9uLT5hc2xlLT5ydmRhKSB7CiAJCQl2 YnRfYmFzZSA9IGFjcGlfb3NfaW9yZW1hcChvcHJlZ2lvbi0+YXNsZS0+cnZkYSwKIAkJCQkJCW9w cmVnaW9uLT5hc2xlLT5ydmRzKTsKLQkJZWxzZQorCQkJZGV2X3ByaXYtPnZidF9pbl9tYWlsYm94 NCA9IGZhbHNlOworCQkJZGV2X3ByaXYtPnZidF9zaXplID0gb3ByZWdpb24tPmFzbGUtPnJ2ZHM7 CisJCX0gZWxzZQogCQkJdmJ0X2Jhc2UgPSBhY3BpX29zX2lvcmVtYXAoYXNscyArIE9QUkVHSU9O X1ZCVF9PRkZTRVQsCiAJCQkJCU9QUkVHSU9OX1NJWkUgLSBPUFJFR0lPTl9WQlRfT0ZGU0VUKTsK IAl9IGVsc2UKLS0gCjEuNy45LjUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==