From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 01/11] drm/i915: Use passed plane state for sprite planes. Date: Thu, 22 Oct 2015 13:56:26 +0200 Message-ID: <1445514996-18733-2-git-send-email-maarten.lankhorst@linux.intel.com> References: <1445514996-18733-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 454ED6E2E9 for ; Thu, 22 Oct 2015 04:56:41 -0700 (PDT) In-Reply-To: <1445514996-18733-1-git-send-email-maarten.lankhorst@linux.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 RG9uJ3QgdXNlIHBsYW5lLT5zdGF0ZSBkaXJlY3RseSwgdXNlIHRoZSBwb2ludGVyIGZyb20gY29t bWl0X3BsYW5lLgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFu a2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCAgICB8ICA4ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyB8 IDY3ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdl ZCwgNDUgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAppbmRleCA0ZTM1NTU3YmJkNDEuLjUxNzIyZTY1N2I5MSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKQEAgLTYzMSwxNiArNjMxLDE2IEBAIHN0cnVjdCBpbnRlbF9wbGFuZSB7CiAJLyoK IAkgKiBOT1RFOiBEbyBub3QgcGxhY2UgbmV3IHBsYW5lIHN0YXRlIGZpZWxkcyBoZXJlIChlLmcu LCB3aGVuIGFkZGluZwogCSAqIG5ldyBwbGFuZSBwcm9wZXJ0aWVzKS4gIE5ldyBydW50aW1lIHN0 YXRlIHNob3VsZCBub3cgYmUgcGxhY2VkIGluCi0JICogdGhlIGludGVsX3BsYW5lX3N0YXRlIHN0 cnVjdHVyZSBhbmQgYWNjZXNzZWQgdmlhIGRybV9wbGFuZS0+c3RhdGUuCisJICogdGhlIGludGVs X3BsYW5lX3N0YXRlIHN0cnVjdHVyZSBhbmQgYWNjZXNzZWQgdmlhIHBsYW5lX3N0YXRlLgogCSAq LwogCiAJdm9pZCAoKnVwZGF0ZV9wbGFuZSkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCi0JCQkg ICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKLQkJCSAgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIsCisJCQkgICAgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUsCiAJ CQkgICAgIGludCBjcnRjX3gsIGludCBjcnRjX3ksCiAJCQkgICAgIHVuc2lnbmVkIGludCBjcnRj X3csIHVuc2lnbmVkIGludCBjcnRjX2gsCiAJCQkgICAgIHVpbnQzMl90IHgsIHVpbnQzMl90IHks Ci0JCQkgICAgIHVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCk7CisJCQkgICAgIHVpbnQz Ml90IHNyY193LCB1aW50MzJfdCBzcmNfaCwKKwkJCSAgICAgc3RydWN0IGludGVsX3NjYWxlciAq c2NhbGVyKTsKIAl2b2lkICgqZGlzYWJsZV9wbGFuZSkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs CiAJCQkgICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogCWludCAoKmNoZWNrX3BsYW5lKShz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKaW5k ZXggMjU1MTMzNWFkYTA0Li41OTlkMDAxYjE0MTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nwcml0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nw cml0ZS5jCkBAIC0xNzgsMTYgKzE3OCwxOSBAQCB2b2lkIGludGVsX3BpcGVfdXBkYXRlX2VuZChz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIH0KIAogc3RhdGljIHZvaWQKLXNrbF91cGRhdGVfcGxh bmUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCi0J CSBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKK3NrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRy bV9wbGFuZSAqZHJtX3BsYW5lLAorCQkgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZSwKIAkJIGludCBjcnRjX3gsIGludCBjcnRjX3ksCiAJCSB1bnNpZ25lZCBpbnQgY3J0Y193 LCB1bnNpZ25lZCBpbnQgY3J0Y19oLAogCQkgdWludDMyX3QgeCwgdWludDMyX3QgeSwKLQkJIHVp bnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCkKKwkJIHVpbnQzMl90IHNyY193LCB1aW50MzJf dCBzcmNfaCwKKwkJIHN0cnVjdCBpbnRlbF9zY2FsZXIgKnNjYWxlcikKIHsKIAlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gZHJtX3BsYW5lLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVs X3BsYW5lID0gdG9faW50ZWxfcGxhbmUoZHJtX3BsYW5lKTsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9 IHBsYW5lX3N0YXRlLT5iYXNlLmNydGM7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiA9IGludGVsX2ZiX29iaihmYik7CiAJY29uc3QgaW50IHBpcGUgPSBpbnRlbF9wbGFuZS0+cGlw ZTsKIAljb25zdCBpbnQgcGxhbmUgPSBpbnRlbF9wbGFuZS0+cGxhbmUgKyAxOwpAQCAtMTk5LDgg KzIwMiw2IEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLCBz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJdTMyIHRpbGVfaGVpZ2h0LCBwbGFuZV9vZmZzZXQsIHBs YW5lX3NpemU7CiAJdW5zaWduZWQgaW50IHJvdGF0aW9uOwogCWludCB4X29mZnNldCwgeV9vZmZz ZXQ7Ci0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPSB0b19pbnRlbF9jcnRj KGNydGMpLT5jb25maWc7Ci0JaW50IHNjYWxlcl9pZDsKIAogCXBsYW5lX2N0bCA9IFBMQU5FX0NU TF9FTkFCTEUgfAogCQlQTEFORV9DVExfUElQRV9HQU1NQV9FTkFCTEUgfApAQCAtMjE5LDggKzIy MCw2IEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHJtX3BsYW5lLCBzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAJc3RyaWRlX2RpdiA9IGludGVsX2ZiX3N0cmlkZV9hbGlnbm1l bnQoZGV2LCBmYi0+bW9kaWZpZXJbMF0sCiAJCQkJCSAgICAgICBmYi0+cGl4ZWxfZm9ybWF0KTsK IAotCXNjYWxlcl9pZCA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKGRybV9wbGFuZS0+c3RhdGUpLT5z Y2FsZXJfaWQ7Ci0KIAkvKiBTaXplcyBhcmUgMCBiYXNlZCAqLwogCXNyY193LS07CiAJc3JjX2gt LTsKQEAgLTI2MSwxMyArMjYwLDEzIEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFu ZSAqZHJtX3BsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJSTkxNV9XUklURShQTEFORV9T SVpFKHBpcGUsIHBsYW5lKSwgcGxhbmVfc2l6ZSk7CiAKIAkvKiBwcm9ncmFtIHBsYW5lIHNjYWxl ciAqLwotCWlmIChzY2FsZXJfaWQgPj0gMCkgeworCWlmIChzY2FsZXIpIHsKIAkJdWludDMyX3Qg cHNfY3RybCA9IDA7CisJCWludCBzY2FsZXJfaWQgPSBwbGFuZV9zdGF0ZS0+c2NhbGVyX2lkOwog CiAJCURSTV9ERUJVR19LTVMoInBsYW5lID0gJWQgUFNfUExBTkVfU0VMKHBsYW5lKSA9IDB4JXhc biIsIHBsYW5lLAogCQkJUFNfUExBTkVfU0VMKHBsYW5lKSk7Ci0JCXBzX2N0cmwgPSBQU19TQ0FM RVJfRU4gfCBQU19QTEFORV9TRUwocGxhbmUpIHwKLQkJCWNydGNfc3RhdGUtPnNjYWxlcl9zdGF0 ZS5zY2FsZXJzW3NjYWxlcl9pZF0ubW9kZTsKKwkJcHNfY3RybCA9IFBTX1NDQUxFUl9FTiB8IFBT X1BMQU5FX1NFTChwbGFuZSkgfCBzY2FsZXItPm1vZGU7CiAJCUk5MTVfV1JJVEUoU0tMX1BTX0NU UkwocGlwZSwgc2NhbGVyX2lkKSwgcHNfY3RybCk7CiAJCUk5MTVfV1JJVEUoU0tMX1BTX1BXUl9H QVRFKHBpcGUsIHNjYWxlcl9pZCksIDApOwogCQlJOTE1X1dSSVRFKFNLTF9QU19XSU5fUE9TKHBp cGUsIHNjYWxlcl9pZCksIChjcnRjX3ggPDwgMTYpIHwgY3J0Y195KTsKQEAgLTM0MSwxNiArMzQw LDE4IEBAIGNodl91cGRhdGVfY3NjKHN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUsIHVp bnQzMl90IGZvcm1hdCkKIH0KIAogc3RhdGljIHZvaWQKLXZsdl91cGRhdGVfcGxhbmUoc3RydWN0 IGRybV9wbGFuZSAqZHBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCi0JCSBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiwKK3Zsdl91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHBs YW5lLAorCQkgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKIAkJIGludCBj cnRjX3gsIGludCBjcnRjX3ksCiAJCSB1bnNpZ25lZCBpbnQgY3J0Y193LCB1bnNpZ25lZCBpbnQg Y3J0Y19oLAogCQkgdWludDMyX3QgeCwgdWludDMyX3QgeSwKLQkJIHVpbnQzMl90IHNyY193LCB1 aW50MzJfdCBzcmNfaCkKKwkJIHVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCwKKwkJIHN0 cnVjdCBpbnRlbF9zY2FsZXIgKnNjYWxlcikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZHBsYW5lLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxf cGxhbmUoZHBsYW5lKTsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRl LT5iYXNlLmZiOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9v YmooZmIpOwogCWludCBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7CiAJaW50IHBsYW5lID0gaW50 ZWxfcGxhbmUtPnBsYW5lOwpAQCAtNDgxLDE2ICs0ODIsMTkgQEAgdmx2X2Rpc2FibGVfcGxhbmUo c3RydWN0IGRybV9wbGFuZSAqZHBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB9CiAKIHN0 YXRpYyB2b2lkCi1pdmJfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCi0JCSBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKK2l2Yl91 cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCSBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlLAogCQkgaW50IGNydGNfeCwgaW50IGNydGNfeSwKIAkJIHVu c2lnbmVkIGludCBjcnRjX3csIHVuc2lnbmVkIGludCBjcnRjX2gsCiAJCSB1aW50MzJfdCB4LCB1 aW50MzJfdCB5LAotCQkgdWludDMyX3Qgc3JjX3csIHVpbnQzMl90IHNyY19oKQorCQkgdWludDMy X3Qgc3JjX3csIHVpbnQzMl90IHNyY19oLAorCQkgc3RydWN0IGludGVsX3NjYWxlciAqc2NhbGVy KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2OwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVs X3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKKwlzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiOworCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YyA9IHBsYW5lX3N0YXRlLT5iYXNlLmNydGM7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7CiAJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9w bGFuZS0+cGlwZTsKIAl1MzIgc3ByY3RsLCBzcHJzY2FsZSA9IDA7CkBAIC02MjMsMTYgKzYyNywx OSBAQCBpdmJfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRy bV9jcnRjICpjcnRjKQogfQogCiBzdGF0aWMgdm9pZAotaWxrX3VwZGF0ZV9wbGFuZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAotCQkgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIsCitpbGtfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAorCQkgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSwKIAkJIGludCBjcnRj X3gsIGludCBjcnRjX3ksCiAJCSB1bnNpZ25lZCBpbnQgY3J0Y193LCB1bnNpZ25lZCBpbnQgY3J0 Y19oLAogCQkgdWludDMyX3QgeCwgdWludDMyX3QgeSwKLQkJIHVpbnQzMl90IHNyY193LCB1aW50 MzJfdCBzcmNfaCkKKwkJIHVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCwKKwkJIHN0cnVj dCBpbnRlbF9zY2FsZXIgKnNjYWxlcikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxh bmUtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFu ZShwbGFuZSk7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+YmFz ZS5mYjsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwbGFuZV9zdGF0ZS0+YmFzZS5jcnRjOwog CXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOwogCWlu dCBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7CiAJdW5zaWduZWQgbG9uZyBkdnNzdXJmX29mZnNl dCwgbGluZWFyX29mZnNldDsKQEAgLTkzMiwyMyArOTM5LDMxIEBAIHN0YXRpYyB2b2lkCiBpbnRl bF9jb21taXRfc3ByaXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJICBzdHJ1 Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKQogewotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9 IHN0YXRlLT5iYXNlLmNydGM7CiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRv X2ludGVsX3BsYW5lKHBsYW5lKTsKLQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRl LT5iYXNlLmZiOwotCi0JY3J0YyA9IGNydGMgPyBjcnRjIDogcGxhbmUtPmNydGM7CiAKIAlpZiAo c3RhdGUtPnZpc2libGUpIHsKLQkJaW50ZWxfcGxhbmUtPnVwZGF0ZV9wbGFuZShwbGFuZSwgY3J0 YywgZmIsCisJCXN0cnVjdCBpbnRlbF9zY2FsZXIgKnNjYWxlciA9IE5VTEw7CisKKwkJaWYgKHN0 YXRlLT5zY2FsZXJfaWQgPj0gMCkgeworCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUgPQorCQkJCXRvX2ludGVsX2NydGMoc3RhdGUtPmJhc2UuY3J0YyktPmNvbmZpZzsKKwor CQkJc2NhbGVyID0gJmNydGNfc3RhdGUtPnNjYWxlcl9zdGF0ZS5zY2FsZXJzW3N0YXRlLT5zY2Fs ZXJfaWRdOworCQl9CisKKwkJaW50ZWxfcGxhbmUtPnVwZGF0ZV9wbGFuZShwbGFuZSwgc3RhdGUs CiAJCQkJCSAgc3RhdGUtPmRzdC54MSwgc3RhdGUtPmRzdC55MSwKIAkJCQkJICBkcm1fcmVjdF93 aWR0aCgmc3RhdGUtPmRzdCksCiAJCQkJCSAgZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+ZHN0KSwK IAkJCQkJICBzdGF0ZS0+c3JjLngxID4+IDE2LAogCQkJCQkgIHN0YXRlLT5zcmMueTEgPj4gMTYs CiAJCQkJCSAgZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5zcmMpID4+IDE2LAotCQkJCQkgIGRybV9y ZWN0X2hlaWdodCgmc3RhdGUtPnNyYykgPj4gMTYpOworCQkJCQkgIGRybV9yZWN0X2hlaWdodCgm c3RhdGUtPnNyYykgPj4gMTYsCisJCQkJCSAgc2NhbGVyKTsKIAl9IGVsc2UgewotCQlpbnRlbF9w bGFuZS0+ZGlzYWJsZV9wbGFuZShwbGFuZSwgY3J0Yyk7CisJCXN0cnVjdCBkcm1fY3J0YyAqY3J0 YyA9IHN0YXRlLT5iYXNlLmNydGM7CisKKwkJaW50ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUocGxh bmUsIGNydGMgPzogcGxhbmUtPmNydGMpOwogCX0KIH0KIAotLSAKMi4xLjAKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==