From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhi Wang Subject: [PATCH v11 1/9] drm/i915: Factor out i915_pvinfo.h Date: Tue, 14 Jun 2016 09:21:13 -0400 Message-ID: <1465910481-11212-2-git-send-email-zhi.a.wang@intel.com> References: <1465910481-11212-1-git-send-email-zhi.a.wang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 99B836E74B for ; Tue, 14 Jun 2016 13:21:41 +0000 (UTC) In-Reply-To: <1465910481-11212-1-git-send-email-zhi.a.wang@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: zhiyuan.lv@intel.com List-Id: intel-gfx@lists.freedesktop.org QXMgdGhlIFBWSU5GTyBwYWdlIGRlZmluaXRpb24gaXMgdXNlZCBieSBib3RoIEdWVC1nIGd1ZXN0 ICh2R1BVKSBhbmQgR1ZULWcKaG9zdCAoR1ZULWcga2VybmVsIGRldmljZSBtb2RlbCksIGZhY3Rv ciBpdCBvdXQgZm9yIGJldHRlciBjb2RlIHN0cnVjdHVyZS4KCnY3OgotIFNwbGl0IHRoZSAib2Zm c2V0b2YiIG1vZGlmaWNhdGlvbiBpbnRvIGEgZGVkaWNhdGVkIHBhdGNoLiAoSm9vbmFzKQoKdjM6 Ci0gVXNlIG9mZnNldG9mIHRvIGNhbGN1bGF0ZSB0aGUgbWVtYmVyIG9mZnNldCBvZiBQVklORk8g c3RydWN0dXJlIChKb29uYXMpCgpSZXZpZXdlZC1ieTogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMu bGFodGluZW5AbGludXguaW50ZWwuY29tPgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFo dGluZW5AbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBaaGkgV2FuZyA8emhpLmEud2Fu Z0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wdmluZm8uaCB8IDEx MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3ZncHUuaCAgIHwgIDg2ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIg ZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKyksIDg1IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcHZpbmZvLmgKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3B2aW5mby5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9wdmluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42 OGJkZjYwCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wdmlu Zm8uaApAQCAtMCwwICsxLDExMyBAQAorLyoKKyAqIENvcHlyaWdodChjKSAyMDExLTIwMTYgSW50 ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUGVybWlzc2lvbiBp cyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5n IGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9u IGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRo b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmln aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3Vi bGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBw ZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRv IHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJv dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5n IHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMg b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUg U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO RCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBU SEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAq IFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlN LCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9G IENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorICogT1VUIE9GIE9S IElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFM SU5HUyBJTiBUSEUKKyAqIFNPRlRXQVJFLgorICovCisKKyNpZm5kZWYgX0k5MTVfUFZJTkZPX0hf CisjZGVmaW5lIF9JOTE1X1BWSU5GT19IXworCisvKiBUaGUgTU1JTyBvZmZzZXQgb2YgdGhlIHNo YXJlZCBpbmZvIGJldHdlZW4gZ3Vlc3QgYW5kIGhvc3QgZW11bGF0b3IgKi8KKyNkZWZpbmUgVkdU X1BWSU5GT19QQUdFCTB4NzgwMDAKKyNkZWZpbmUgVkdUX1BWSU5GT19TSVpFCTB4MTAwMAorCisv KgorICogVGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmUgcGFnZXMgYXJlIGRlZmluZWQgaW4gR0VOIE1N SU8gc3BhY2UKKyAqIGZvciB2aXJ0dWFsaXphdGlvbi4gKE9uZSBwYWdlIGZvciBub3cpCisgKi8K KyNkZWZpbmUgVkdUX01BR0lDICAgICAgICAgMHg0Nzc2NTQ0Nzc2NTQ0Nzc2VUxMCS8qICd2R1R2 R1R2RycgKi8KKyNkZWZpbmUgVkdUX1ZFUlNJT05fTUFKT1IgMQorI2RlZmluZSBWR1RfVkVSU0lP Tl9NSU5PUiAwCisKKyNkZWZpbmUgSU5URUxfVkdUX0lGX1ZFUlNJT05fRU5DT0RFKG1ham9yLCBt aW5vcikgKChtYWpvcikgPDwgMTYgfCAobWlub3IpKQorI2RlZmluZSBJTlRFTF9WR1RfSUZfVkVS U0lPTiBcCisJSU5URUxfVkdUX0lGX1ZFUlNJT05fRU5DT0RFKFZHVF9WRVJTSU9OX01BSk9SLCBW R1RfVkVSU0lPTl9NSU5PUikKKworLyoKKyAqIG5vdGlmaWNhdGlvbnMgZnJvbSBndWVzdCB0byB2 Z3B1IGRldmljZSBtb2RlbAorICovCitlbnVtIHZndF9nMnZfdHlwZSB7CisJVkdUX0cyVl9QUEdU VF9MM19QQUdFX1RBQkxFX0NSRUFURSA9IDIsCisJVkdUX0cyVl9QUEdUVF9MM19QQUdFX1RBQkxF X0RFU1RST1ksCisJVkdUX0cyVl9QUEdUVF9MNF9QQUdFX1RBQkxFX0NSRUFURSwKKwlWR1RfRzJW X1BQR1RUX0w0X1BBR0VfVEFCTEVfREVTVFJPWSwKKwlWR1RfRzJWX0VYRUNMSVNUX0NPTlRFWFRf Q1JFQVRFLAorCVZHVF9HMlZfRVhFQ0xJU1RfQ09OVEVYVF9ERVNUUk9ZLAorCVZHVF9HMlZfTUFY LAorfTsKKworc3RydWN0IHZndF9pZiB7CisJdWludDY0X3QgbWFnaWM7CQkvKiBWR1RfTUFHSUMg Ki8KKwl1aW50MTZfdCB2ZXJzaW9uX21ham9yOworCXVpbnQxNl90IHZlcnNpb25fbWlub3I7CisJ dWludDMyX3Qgdmd0X2lkOwkvKiBJRCBvZiB2R1QgaW5zdGFuY2UgKi8KKwl1aW50MzJfdCByc3Yx WzEyXTsJLyogcGFkIHRvIG9mZnNldCAweDQwICovCisJLyoKKwkgKiAgRGF0YSBzdHJ1Y3R1cmUg dG8gZGVzY3JpYmUgdGhlIGJhbG9vbmluZyBpbmZvIG9mIHJlc291cmNlcy4KKwkgKiAgRWFjaCBW TSBjYW4gb25seSBoYXZlIG9uZSBwb3J0aW9uIG9mIGNvbnRpbnVvdXMgYXJlYSBmb3Igbm93Lgor CSAqICAoTWF5IHN1cHBvcnQgc2NhdHRlcmVkIHJlc291cmNlIGluIGZ1dHVyZSkKKwkgKiAgKHN0 YXJ0aW5nIGZyb20gb2Zmc2V0IDB4NDApCisJICovCisJc3RydWN0IHsKKwkJLyogQXBlcnR1cmUg cmVnaXN0ZXIgYmFsb29uaW5nICovCisJCXN0cnVjdCB7CisJCQl1aW50MzJfdCBiYXNlOworCQkJ dWludDMyX3Qgc2l6ZTsKKwkJfSBtYXBwYWJsZV9nbWFkcjsJLyogYXBlcnR1cmUgKi8KKwkJLyog R01BRFIgcmVnaXN0ZXIgYmFsb29uaW5nICovCisJCXN0cnVjdCB7CisJCQl1aW50MzJfdCBiYXNl OworCQkJdWludDMyX3Qgc2l6ZTsKKwkJfSBub25tYXBwYWJsZV9nbWFkcjsJLyogbm9uIGFwZXJ0 dXJlICovCisJCS8qIGFsbG93ZWQgZmVuY2UgcmVnaXN0ZXJzICovCisJCXVpbnQzMl90IGZlbmNl X251bTsKKwkJdWludDMyX3QgcnN2MlszXTsKKwl9IGF2YWlsX3JzOwkJLyogYXZhaWxhYmxlL2Fz c2lnbmVkIHJlc291cmNlICovCisJdWludDMyX3QgcnN2M1sweDIwMCAtIDI0XTsJLyogcGFkIHRv IGhhbGYgcGFnZSAqLworCS8qCisJICogVGhlIGJvdHRvbSBoYWxmIHBhZ2UgaXMgZm9yIHJlc3Bv bnNlIGZyb20gR2Z4IGRyaXZlciB0byBoeXBlcnZpc29yLgorCSAqLworCXVpbnQzMl90IHJzdjQ7 CisJdWludDMyX3QgZGlzcGxheV9yZWFkeTsJLyogcmVhZHkgZm9yIGRpc3BsYXkgb3duZXIgc3dp dGNoICovCisKKwl1aW50MzJfdCByc3Y1WzRdOworCisJdWludDMyX3QgZzJ2X25vdGlmeTsKKwl1 aW50MzJfdCByc3Y2WzddOworCisJc3RydWN0IHsKKwkJdWludDMyX3QgbG87CisJCXVpbnQzMl90 IGhpOworCX0gcGRwWzRdOworCisJdWludDMyX3QgZXhlY2xpc3RfY29udGV4dF9kZXNjcmlwdG9y X2xvOworCXVpbnQzMl90IGV4ZWNsaXN0X2NvbnRleHRfZGVzY3JpcHRvcl9oaTsKKworCXVpbnQz Ml90ICByc3Y3WzB4MjAwIC0gMjRdOyAgICAvKiBwYWQgdG8gb25lIHBhZ2UgKi8KK30gX19wYWNr ZWQ7CisKKyNkZWZpbmUgdmd0aWZfcmVnKHgpIFwKKwlfTU1JTygoVkdUX1BWSU5GT19QQUdFICsg KGxvbmcpJigoc3RydWN0IHZndF9pZiAqKU5VTEwpLT54KSkKKworLyogdkdQVSBkaXNwbGF5IHN0 YXR1cyB0byBiZSB1c2VkIGJ5IHRoZSBob3N0IHNpZGUgKi8KKyNkZWZpbmUgVkdUX0RSVl9ESVNQ TEFZX05PVF9SRUFEWSAwCisjZGVmaW5lIFZHVF9EUlZfRElTUExBWV9SRUFEWSAgICAgMSAgLyog cmVhZHkgZm9yIGRpc3BsYXkgc3dpdGNoICovCisKKyNlbmRpZiAvKiBfSTkxNV9QVklORk9fSF8g Ki8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmgKaW5kZXggMjFmZmNmZS4uMDdlNjdkNSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV92Z3B1LmgKQEAgLTI0LDkxICsyNCw3IEBACiAjaWZuZGVmIF9JOTE1X1ZH UFVfSF8KICNkZWZpbmUgX0k5MTVfVkdQVV9IXwogCi0vKiBUaGUgTU1JTyBvZmZzZXQgb2YgdGhl IHNoYXJlZCBpbmZvIGJldHdlZW4gZ3Vlc3QgYW5kIGhvc3QgZW11bGF0b3IgKi8KLSNkZWZpbmUg VkdUX1BWSU5GT19QQUdFCTB4NzgwMDAKLSNkZWZpbmUgVkdUX1BWSU5GT19TSVpFCTB4MTAwMAot Ci0vKgotICogVGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmUgcGFnZXMgYXJlIGRlZmluZWQgaW4gR0VO IE1NSU8gc3BhY2UKLSAqIGZvciB2aXJ0dWFsaXphdGlvbi4gKE9uZSBwYWdlIGZvciBub3cpCi0g Ki8KLSNkZWZpbmUgVkdUX01BR0lDICAgICAgICAgMHg0Nzc2NTQ0Nzc2NTQ0Nzc2VUxMCS8qICd2 R1R2R1R2RycgKi8KLSNkZWZpbmUgVkdUX1ZFUlNJT05fTUFKT1IgMQotI2RlZmluZSBWR1RfVkVS U0lPTl9NSU5PUiAwCi0KLSNkZWZpbmUgSU5URUxfVkdUX0lGX1ZFUlNJT05fRU5DT0RFKG1ham9y LCBtaW5vcikgKChtYWpvcikgPDwgMTYgfCAobWlub3IpKQotI2RlZmluZSBJTlRFTF9WR1RfSUZf VkVSU0lPTiBcCi0JSU5URUxfVkdUX0lGX1ZFUlNJT05fRU5DT0RFKFZHVF9WRVJTSU9OX01BSk9S LCBWR1RfVkVSU0lPTl9NSU5PUikKLQotLyoKLSAqIG5vdGlmaWNhdGlvbnMgZnJvbSBndWVzdCB0 byB2Z3B1IGRldmljZSBtb2RlbAotICovCi1lbnVtIHZndF9nMnZfdHlwZSB7Ci0JVkdUX0cyVl9Q UEdUVF9MM19QQUdFX1RBQkxFX0NSRUFURSA9IDIsCi0JVkdUX0cyVl9QUEdUVF9MM19QQUdFX1RB QkxFX0RFU1RST1ksCi0JVkdUX0cyVl9QUEdUVF9MNF9QQUdFX1RBQkxFX0NSRUFURSwKLQlWR1Rf RzJWX1BQR1RUX0w0X1BBR0VfVEFCTEVfREVTVFJPWSwKLQlWR1RfRzJWX0VYRUNMSVNUX0NPTlRF WFRfQ1JFQVRFLAotCVZHVF9HMlZfRVhFQ0xJU1RfQ09OVEVYVF9ERVNUUk9ZLAotCVZHVF9HMlZf TUFYLAotfTsKLQotc3RydWN0IHZndF9pZiB7Ci0JdWludDY0X3QgbWFnaWM7CQkvKiBWR1RfTUFH SUMgKi8KLQl1aW50MTZfdCB2ZXJzaW9uX21ham9yOwotCXVpbnQxNl90IHZlcnNpb25fbWlub3I7 Ci0JdWludDMyX3Qgdmd0X2lkOwkvKiBJRCBvZiB2R1QgaW5zdGFuY2UgKi8KLQl1aW50MzJfdCBy c3YxWzEyXTsJLyogcGFkIHRvIG9mZnNldCAweDQwICovCi0JLyoKLQkgKiAgRGF0YSBzdHJ1Y3R1 cmUgdG8gZGVzY3JpYmUgdGhlIGJhbG9vbmluZyBpbmZvIG9mIHJlc291cmNlcy4KLQkgKiAgRWFj aCBWTSBjYW4gb25seSBoYXZlIG9uZSBwb3J0aW9uIG9mIGNvbnRpbnVvdXMgYXJlYSBmb3Igbm93 LgotCSAqICAoTWF5IHN1cHBvcnQgc2NhdHRlcmVkIHJlc291cmNlIGluIGZ1dHVyZSkKLQkgKiAg KHN0YXJ0aW5nIGZyb20gb2Zmc2V0IDB4NDApCi0JICovCi0Jc3RydWN0IHsKLQkJLyogQXBlcnR1 cmUgcmVnaXN0ZXIgYmFsb29uaW5nICovCi0JCXN0cnVjdCB7Ci0JCQl1aW50MzJfdCBiYXNlOwot CQkJdWludDMyX3Qgc2l6ZTsKLQkJfSBtYXBwYWJsZV9nbWFkcjsJLyogYXBlcnR1cmUgKi8KLQkJ LyogR01BRFIgcmVnaXN0ZXIgYmFsb29uaW5nICovCi0JCXN0cnVjdCB7Ci0JCQl1aW50MzJfdCBi YXNlOwotCQkJdWludDMyX3Qgc2l6ZTsKLQkJfSBub25tYXBwYWJsZV9nbWFkcjsJLyogbm9uIGFw ZXJ0dXJlICovCi0JCS8qIGFsbG93ZWQgZmVuY2UgcmVnaXN0ZXJzICovCi0JCXVpbnQzMl90IGZl bmNlX251bTsKLQkJdWludDMyX3QgcnN2MlszXTsKLQl9IGF2YWlsX3JzOwkJLyogYXZhaWxhYmxl L2Fzc2lnbmVkIHJlc291cmNlICovCi0JdWludDMyX3QgcnN2M1sweDIwMCAtIDI0XTsJLyogcGFk IHRvIGhhbGYgcGFnZSAqLwotCS8qCi0JICogVGhlIGJvdHRvbSBoYWxmIHBhZ2UgaXMgZm9yIHJl c3BvbnNlIGZyb20gR2Z4IGRyaXZlciB0byBoeXBlcnZpc29yLgotCSAqLwotCXVpbnQzMl90IHJz djQ7Ci0JdWludDMyX3QgZGlzcGxheV9yZWFkeTsJLyogcmVhZHkgZm9yIGRpc3BsYXkgb3duZXIg c3dpdGNoICovCi0KLQl1aW50MzJfdCByc3Y1WzRdOwotCi0JdWludDMyX3QgZzJ2X25vdGlmeTsK LQl1aW50MzJfdCByc3Y2WzddOwotCi0Jc3RydWN0IHsKLQkJdWludDMyX3QgbG87Ci0JCXVpbnQz Ml90IGhpOwotCX0gcGRwWzRdOwotCi0JdWludDMyX3QgZXhlY2xpc3RfY29udGV4dF9kZXNjcmlw dG9yX2xvOwotCXVpbnQzMl90IGV4ZWNsaXN0X2NvbnRleHRfZGVzY3JpcHRvcl9oaTsKLQotCXVp bnQzMl90ICByc3Y3WzB4MjAwIC0gMjRdOyAgICAvKiBwYWQgdG8gb25lIHBhZ2UgKi8KLX0gX19w YWNrZWQ7Ci0KLSNkZWZpbmUgdmd0aWZfcmVnKHgpIFwKLQlfTU1JTygoVkdUX1BWSU5GT19QQUdF ICsgKGxvbmcpJigoc3RydWN0IHZndF9pZiAqKU5VTEwpLT54KSkKLQotLyogdkdQVSBkaXNwbGF5 IHN0YXR1cyB0byBiZSB1c2VkIGJ5IHRoZSBob3N0IHNpZGUgKi8KLSNkZWZpbmUgVkdUX0RSVl9E SVNQTEFZX05PVF9SRUFEWSAwCi0jZGVmaW5lIFZHVF9EUlZfRElTUExBWV9SRUFEWSAgICAgMSAg LyogcmVhZHkgZm9yIGRpc3BsYXkgc3dpdGNoICovCisjaW5jbHVkZSAiaTkxNV9wdmluZm8uaCIK IAogZXh0ZXJuIHZvaWQgaTkxNV9jaGVja192Z3B1KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7CiBleHRlcm4gaW50IGludGVsX3ZndF9iYWxsb29uKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpOwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=