From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH i-g-t 3/3] kms_universal_plane: Universal plane testing Date: Thu, 10 Apr 2014 17:26:25 -0700 Message-ID: <1397175985-3328-4-git-send-email-matthew.d.roper@intel.com> References: <1397175876-3216-1-git-send-email-matthew.d.roper@intel.com> <1397175985-3328-1-git-send-email-matthew.d.roper@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 703296ECAC for ; Thu, 10 Apr 2014 17:24:30 -0700 (PDT) In-Reply-To: <1397175985-3328-1-git-send-email-matthew.d.roper@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 List-Id: intel-gfx@lists.freedesktop.org QWRkIGEgc2ltcGxlIHRlc3QgdG8gZXhlcmNpc2UgdW5pdmVyc2FsIHBsYW5lIHN1cHBvcnQuCgpT aWduZWQtb2ZmLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgotLS0K IHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgICAgICB8ICAgMSArCiB0ZXN0cy9rbXNfdW5pdmVyc2Fs X3BsYW5lLmMgfCAyMTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKIDIgZmlsZXMgY2hhbmdlZCwgMjEyIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0 NCB0ZXN0cy9rbXNfdW5pdmVyc2FsX3BsYW5lLmMKCmRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmls ZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwppbmRleCBiZjAyYTQ4Li40OTExOTE0 IDEwMDY0NAotLS0gYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL3Rlc3RzL01ha2VmaWxl LnNvdXJjZXMKQEAgLTYzLDYgKzYzLDcgQEAgVEVTVFNfcHJvZ3NfTSA9IFwKIAlrbXNfcGxhbmUg XAogCWttc19yZW5kZXIgXAogCWttc19zZXRtb2RlIFwKKwlrbXNfdW5pdmVyc2FsX3BsYW5lIFwK IAlwbV9scHNwIFwKIAlwbV9wYzggXAogCXBtX3JwcyBcCmRpZmYgLS1naXQgYS90ZXN0cy9rbXNf dW5pdmVyc2FsX3BsYW5lLmMgYi90ZXN0cy9rbXNfdW5pdmVyc2FsX3BsYW5lLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFlYzZmYgotLS0gL2Rldi9udWxsCisrKyBiL3Rl c3RzL2ttc191bml2ZXJzYWxfcGxhbmUuYwpAQCAtMCwwICsxLDIxMSBAQAorLyoKKyAqIENvcHly aWdodCDCqSAyMDE0IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJl YnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAq IGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz ICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJl c3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRv IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5z ZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg cGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBz dWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29w eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBu ZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vi c3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdB UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQ UkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBB VVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1B R0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS QUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENP Tk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwor ICogSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUg PHN0ZGJvb2wuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisj aW5jbHVkZSAiZHJtdGVzdC5oIgorI2luY2x1ZGUgImlndF9kZWJ1Z2ZzLmgiCisjaW5jbHVkZSAi aWd0X2ttcy5oIgorCit0eXBlZGVmIHN0cnVjdCB7CisJaW50IGRybV9mZDsKKwlpZ3RfZGlzcGxh eV90IGRpc3BsYXk7Cit9IGRhdGFfdDsKKworLyoKKyAqIFVuaXZlcnNhbCBwbGFuZSB0ZXN0aW5n LgorICogICAtIEJsYWNrIHByaW1hcnkgcGxhbmUgdmlhIHRyYWRpdGlvbmFsIGludGVyZmFjZXMs IHJlZCBzcHJpdGUsIGdyYWIgQ1JDOjEuCisgKiAgIC0gQmx1ZSBwcmltYXJ5IHBsYW5lIHZpYSB0 cmFkaXRpb25hbCBpbnRlcmZhY2VzLCByZWQgc3ByaXRlLCBncmFiIENSQzoyLgorICogICAtIFll bGxvdyBwcmltYXJ5IHZpYSB0cmFkaXRpb25hbCBpbnRlcmZhY2VzCisgKiAgIC0gQmx1ZSBwcmlt YXJ5IHBsYW5lLCByZWQgc3ByaXRlIHZpYSB1bml2ZXJzYWwgcGxhbmVzLCBncmFiIENSQzozIGFu ZCBjb21wYXJlCisgKiAgICAgd2l0aCBDUkM6MiAoc2hvdWxkIGJlIHRoZSBzYW1lKQorICogICAt IERpc2FibGUgcHJpbWFyeSBwbGFuZSwgZ3JhYiBDUkM6NCAoc2hvdWxkIGJlIHNhbWUgYXMgQ1JD OjEpCisgKiAgIC0gUmVlbmFibGUgcHJpbWFyeSwgZ3JhYiBDUkM6NSAoc2hvdWxkIGJlIHNhbWUg YXMgQ1JDOjIgYW5kIENSQzozKQorICovCisKK3R5cGVkZWYgc3RydWN0IHsKKwlkYXRhX3QgKmRh dGE7CisJaWd0X3BpcGVfY3JjX3QgKnBpcGVfY3JjOworCWlndF9jcmNfdCBjcmNfMSwgY3JjXzIs IGNyY18zLCBjcmNfNCwgY3JjXzU7CisJc3RydWN0IGlndF9mYiByZWRfZmIsIGJsdWVfZmIsIGJs YWNrX2ZiLCB5ZWxsb3dfZmI7Cit9IHRlc3RfdDsKKworc3RhdGljIHZvaWQKK3Rlc3RfaW5pdCh0 ZXN0X3QgKnRlc3QsIGlndF9vdXRwdXRfdCAqb3V0cHV0LCBlbnVtIHBpcGUgcGlwZSkKK3sKKwlk YXRhX3QgKmRhdGEgPSB0ZXN0LT5kYXRhOworCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsKKworCXRl c3QtPnBpcGVfY3JjID0gaWd0X3BpcGVfY3JjX25ldyhwaXBlLCBJTlRFTF9QSVBFX0NSQ19TT1VS Q0VfQVVUTyk7CisKKwlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7CisKKwltb2Rl ID0gaWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQpOworCWlndF9jcmVhdGVfY29sb3JfZmIoZGF0 YS0+ZHJtX2ZkLCBtb2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXksCisJCQkJRFJNX0ZPUk1B VF9YUkdCODg4OCwKKwkJCQlmYWxzZSwgLyogdGlsZWQgKi8KKwkJCQkwLjAsIDAuMCwgMC4wLAor CQkJCSZ0ZXN0LT5ibGFja19mYik7CisJaWd0X2NyZWF0ZV9jb2xvcl9mYihkYXRhLT5kcm1fZmQs IG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwKKwkJCQlEUk1fRk9STUFUX1hSR0I4ODg4 LAorCQkJCWZhbHNlLCAvKiB0aWxlZCAqLworCQkJCTAuMCwgMC4wLCAxLjAsCisJCQkJJnRlc3Qt PmJsdWVfZmIpOworCWlndF9jcmVhdGVfY29sb3JfZmIoZGF0YS0+ZHJtX2ZkLCBtb2RlLT5oZGlz cGxheSwgbW9kZS0+dmRpc3BsYXksCisJCQkJRFJNX0ZPUk1BVF9YUkdCODg4OCwKKwkJCQlmYWxz ZSwgLyogdGlsZWQgKi8KKwkJCQkxLjAsIDEuMCwgMC4wLAorCQkJCSZ0ZXN0LT55ZWxsb3dfZmIp OworCWlndF9jcmVhdGVfY29sb3JfZmIoZGF0YS0+ZHJtX2ZkLCAxMDAsIDEwMCwKKwkJCQlEUk1f Rk9STUFUX1hSR0I4ODg4LAorCQkJCWZhbHNlLCAvKiB0aWxlZCAqLworCQkJCTEuMCwgMC4wLCAw LjAsCisJCQkJJnRlc3QtPnJlZF9mYik7Cit9CisKK3N0YXRpYyB2b2lkCit0ZXN0X2ZpbmkodGVz dF90ICp0ZXN0LCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKK3sKKwlpZ3RfcGlwZV9jcmNfZnJlZSh0 ZXN0LT5waXBlX2NyYyk7CisKKwlpZ3RfcmVtb3ZlX2ZiKHRlc3QtPmRhdGEtPmRybV9mZCwgJnRl c3QtPmJsYWNrX2ZiKTsKKwlpZ3RfcmVtb3ZlX2ZiKHRlc3QtPmRhdGEtPmRybV9mZCwgJnRlc3Qt PmJsdWVfZmIpOworCWlndF9yZW1vdmVfZmIodGVzdC0+ZGF0YS0+ZHJtX2ZkLCAmdGVzdC0+cmVk X2ZiKTsKKwlpZ3RfcmVtb3ZlX2ZiKHRlc3QtPmRhdGEtPmRybV9mZCwgJnRlc3QtPnllbGxvd19m Yik7CisKKwlpZ3RfZGlzcGxheV91c2VfdW5pdmVyc2FsX2NvbW1pdHMoJnRlc3QtPmRhdGEtPmRp c3BsYXksIGZhbHNlKTsKKwlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgUElQRV9BTlkpOwor CWlndF9kaXNwbGF5X2NvbW1pdCgmdGVzdC0+ZGF0YS0+ZGlzcGxheSk7Cit9CisKK3N0YXRpYyB2 b2lkCit0ZXN0X3BpcGUoZGF0YV90ICpkYXRhLCBlbnVtIHBpcGUgcGlwZSwgaWd0X291dHB1dF90 ICpvdXRwdXQpCit7CisJdGVzdF90IHRlc3QgPSB7IC5kYXRhID0gZGF0YSB9OworCWlndF9wbGFu ZV90ICpwcmltYXJ5LCAqc3ByaXRlOworCisJaWd0X3NraXBfb24ocGlwZSA+PSBkYXRhLT5kaXNw bGF5Lm5fcGlwZXMpOworCisJZnByaW50ZihzdGRvdXQsICJUZXN0aW5nIGNvbm5lY3RvciAlcyB1 c2luZyBwaXBlICVjXG4iLAorCQlpZ3Rfb3V0cHV0X25hbWUob3V0cHV0KSwgcGlwZV9uYW1lKHBp cGUpKTsKKworCXRlc3RfaW5pdCgmdGVzdCwgb3V0cHV0LCBwaXBlKTsKKworCXByaW1hcnkgPSBp Z3Rfb3V0cHV0X2dldF9wbGFuZShvdXRwdXQsIElHVF9QTEFORV9QUklNQVJZKTsKKwlzcHJpdGUg PSBpZ3Rfb3V0cHV0X2dldF9wbGFuZShvdXRwdXQsIElHVF9QTEFORV8yKTsKKwlpZiAoIXNwcml0 ZSkgeworCQl0ZXN0X2ZpbmkoJnRlc3QsIG91dHB1dCk7CisJCWlndF9za2lwKCJObyBzcHJpdGUg cGxhbmUgYXZhaWxhYmxlXG4iKTsKKwl9CisKKwlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKHNwcml0 ZSwgMTAwLCAxMDApOworCisJLyogU3RlcCAxOiBMZWdhY3kgQVBJJ3MsIGJsYWNrIHByaW1hcnks IHJlZCBzcHJpdGUgKENSQyAxKSAqLworCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgJnRlc3Qu YmxhY2tfZmIpOworCWlndF9wbGFuZV9zZXRfZmIoc3ByaXRlLCAmdGVzdC5yZWRfZmIpOworCWln dF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7CisJaWd0X3BpcGVfY3JjX2NvbGxlY3Rf Y3JjKHRlc3QucGlwZV9jcmMsICZ0ZXN0LmNyY18xKTsKKworCS8qIFN0ZXAgMjogTGVnYWN5IEFQ SScsIGJsdWUgcHJpbWFyeSwgcmVkIHNwcml0ZSAoQ1JDIDIpICovCisJaWd0X3BsYW5lX3NldF9m YihwcmltYXJ5LCAmdGVzdC5ibHVlX2ZiKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHNwcml0ZSwgJnRl c3QucmVkX2ZiKTsKKwlpZ3RfZGlzcGxheV9jb21taXQoJmRhdGEtPmRpc3BsYXkpOworCWlndF9w aXBlX2NyY19jb2xsZWN0X2NyYyh0ZXN0LnBpcGVfY3JjLCAmdGVzdC5jcmNfMik7CisKKwkvKiBT dGVwIDM6IExlZ2FjeSBBUEkncywgeWVsbG93IHByaW1hcnkgKi8KKwlpZ3RfcGxhbmVfc2V0X2Zi KHByaW1hcnksICZ0ZXN0LnllbGxvd19mYik7CisJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5k aXNwbGF5KTsKKworCS8qIFN0ZXAgNDogVW5pdmVyc2FsIEFQSSdzLCBibHVlIHByaW1hcnksIHJl ZCBzcHJpdGUgKENSQyAzKSAqLworCWlndF9kaXNwbGF5X3VzZV91bml2ZXJzYWxfY29tbWl0cygm dGVzdC5kYXRhLT5kaXNwbGF5LCB0cnVlKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZ0 ZXN0LmJsdWVfZmIpOworCWlndF9wbGFuZV9zZXRfZmIoc3ByaXRlLCAmdGVzdC5yZWRfZmIpOwor CWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7CisJaWd0X3BpcGVfY3JjX2NvbGxl Y3RfY3JjKHRlc3QucGlwZV9jcmMsICZ0ZXN0LmNyY18zKTsKKworCS8qIFN0ZXAgNTogVW5pdmVy c2FsIEFQSSdzLCBkaXNhYmxlIHByaW1hcnkgcGxhbmUgKENSQyA0KSAqLworCWlndF9wbGFuZV9z ZXRfZmIocHJpbWFyeSwgTlVMTCk7CisJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5 KTsKKwlpZ3RfcGlwZV9jcmNfY29sbGVjdF9jcmModGVzdC5waXBlX2NyYywgJnRlc3QuY3JjXzQp OworCisJLyogU3RlcCA2OiBVbml2ZXJzYWwgQVBJJ3MsIHJlLWVuYWJsZSBwcmltYXJ5IHdpdGgg Ymx1ZSAoQ1JDIDUpICovCisJaWd0X2Rpc3BsYXlfdXNlX3VuaXZlcnNhbF9jb21taXRzKCZ0ZXN0 LmRhdGEtPmRpc3BsYXksIHRydWUpOworCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgJnRlc3Qu Ymx1ZV9mYik7CisJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKKwlpZ3RfcGlw ZV9jcmNfY29sbGVjdF9jcmModGVzdC5waXBlX2NyYywgJnRlc3QuY3JjXzUpOworCisJLyogQmx1 ZSBiZyArIHJlZCBzcHJpdGUgc2hvdWxkIGJlIHNhbWUgdW5kZXIgYm90aCB0eXBlcyBvZiBBUEkn cyAqLworCWlndF9hc3NlcnQoaWd0X2NyY19lcXVhbCgmdGVzdC5jcmNfMiwgJnRlc3QuY3JjXzMp KTsKKworCS8qIERpc2FibGluZyBwcmltYXJ5IHBsYW5lIHNob3VsZCBiZSBzYW1lIGFzIGJsYWNr IHByaW1hcnkgKi8KKwlpZ3RfYXNzZXJ0KGlndF9jcmNfZXF1YWwoJnRlc3QuY3JjXzEsICZ0ZXN0 LmNyY180KSk7CisKKwkvKiBSZS1lbmFibGluZyBwcmltYXJ5IHNob3VsZCByZXR1cm4gdG8gYmx1 ZSBwcm9wZXJseSAqLworCWlndF9hc3NlcnQoaWd0X2NyY19lcXVhbCgmdGVzdC5jcmNfMiwgJnRl c3QuY3JjXzUpKTsKKworCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgTlVMTCk7CisJaWd0X3Bs YW5lX3NldF9mYihzcHJpdGUsIE5VTEwpOworCisJdGVzdF9maW5pKCZ0ZXN0LCBvdXRwdXQpOwor fQorCitzdGF0aWMgdm9pZAorcnVuX3Rlc3RzX2Zvcl9waXBlKGRhdGFfdCAqZGF0YSwgZW51bSBw aXBlIHBpcGUpCit7CisJaWd0X291dHB1dF90ICpvdXRwdXQ7CisKKwlpZ3RfYXNzZXJ0KGRhdGEt PmRpc3BsYXkuaGFzX3VuaXZlcnNhbF9wbGFuZXMpOworCisJaWd0X3N1YnRlc3RfZigidW5pdmVy c2FsLXBsYW5lLXBpcGUtJWMiLCBwaXBlX25hbWUocGlwZSkpCisJCWZvcl9lYWNoX2Nvbm5lY3Rl ZF9vdXRwdXQoJmRhdGEtPmRpc3BsYXksIG91dHB1dCkKKwkJCXRlc3RfcGlwZShkYXRhLCBwaXBl LCBvdXRwdXQpOworfQorCitzdGF0aWMgZGF0YV90IGRhdGE7CisKK2lndF9tYWluCit7CisKKwlp Z3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7CisKKwlpZ3RfZml4dHVyZSB7CisJCWRhdGEuZHJtX2Zk ID0gZHJtX29wZW5fYW55KCk7CisKKwkJaWd0X3NldF92dF9ncmFwaGljc19tb2RlKCk7CisKKwkJ aWd0X3JlcXVpcmVfcGlwZV9jcmMoKTsKKwkJaWd0X2Rpc3BsYXlfaW5pdCgmZGF0YS5kaXNwbGF5 LCBkYXRhLmRybV9mZCk7CisKKwkJaWd0X3JlcXVpcmUoZGF0YS5kaXNwbGF5Lmhhc191bml2ZXJz YWxfcGxhbmVzKTsKKwl9CisKKwlmb3IgKGludCBwaXBlID0gMDsgcGlwZSA8IDM7IHBpcGUrKykK KwkJcnVuX3Rlc3RzX2Zvcl9waXBlKCZkYXRhLCBwaXBlKTsKKworCWlndF9maXh0dXJlIHsKKwkJ aWd0X2Rpc3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5KTsKKwl9Cit9Ci0tIAoxLjguNS4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=