From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [PATCH 30/59] drm/i915: Update queue_flip() to take a request structure Date: Thu, 19 Mar 2015 12:30:35 +0000 Message-ID: <1426768264-16996-31-git-send-email-John.C.Harrison@Intel.com> References: <1426768264-16996-1-git-send-email-John.C.Harrison@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 4C72B6EA23 for ; Thu, 19 Mar 2015 05:31:41 -0700 (PDT) In-Reply-To: <1426768264-16996-1-git-send-email-John.C.Harrison@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 RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KClVwZGF0ZWQg dGhlIGRpc3BsYXkgcGFnZSBmbGlwIGNvZGUgdG8gZG8gZXhwbGljaXQgcmVxdWVzdCBjcmVhdGlv biBhbmQKc3VibWlzc2lvbiByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHRoZSBPTFIgYW5kIGp1c3Qg aG9waW5nIHRoYXQgdGhlIHJlcXVlc3QKYWN0dWFsbHkgZ2V0cyBzdWJtaXR0ZWQgYXQgc29tZSBy YW5kb20gcG9pbnQuCgpUaGUgc2VxdWVuY2UgaXMgbm93IHRvIGNyZWF0ZSBhIHJlcXVlc3QsIHF1 ZXVlIHRoZSB3b3JrIHRvIHRoZSByaW5nLCBhc3NpZ24gdGhlCmtub3duIHJlcXVlc3QgdG8gdGhl IGZsaXAgcXVldWUgd29yayBpdGVtIHRoZW4gYWN0dWFsbHkgc3VibWl0IHRoZSB3b3JrIGFuZCBw b3N0CnRoZSByZXF1ZXN0LgoKTm90ZSB0aGF0IGV2ZXJ5IHNpbmdsZSBmbGlwIGZ1bmN0aW9uIHVz ZWQgdG8gZmluaXNoIHdpdGgKJ19faW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOycuIEhvd2V2ZXIs IGltbWVkaWF0ZWx5IGFmdGVyIHRoZXkgcmV0dXJuIHRoZXJlIGlzCm5vdyBhbiBhZGQgcmVxdWVz dCBjYWxsIHdoaWNoIHdpbGwgZG8gdGhlIGFkdmFuY2UgYW55d2F5LiBUaHVzIHRoZSBtYW55CmR1 cGxpY2F0ZSBhZHZhbmNlIGNhbGxzIGhhdmUgYmVlbiByZW1vdmVkLgoKdjI6IFVwZGF0ZWQgY29t bWl0IG1lc3NhZ2Ugd2l0aCBjb21tZW50IGFib3V0IGFkdmFuY2UgcmVtb3ZhbC4KCnYzOiBUaGUg cmVxdWVzdCBjYW4gbm93IGJlIGFsbG9jYXRlZCBieSB0aGUgX3N5bmMoKSBjb2RlIGVhcmxpZXIg b24uIFRodXMgdGhlCnBhZ2UgZmxpcCBwYXRoIGRvZXMgbm90IG5lY2Vzc2FyaWx5IG5lZWQgdG8g YWxsb2NhdGUgYSBuZXcgcmVxdWVzdCwgaXQgbWF5IGJlCmFibGUgdG8gcmUtdXNlIG9uZS4KCkZv cjogVklaLTUxMTUKU2lnbmVkLW9mZi1ieTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29u QEludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAg fCAgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgfCAgIDMz ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuYyB8ICAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaCB8ICAgIDEgLQogNCBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCAx NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA1NWQ4MmE3Li4xZmQ1 OWJjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTU3NCw3ICs1NzQsNyBAQCBzdHJ1Y3Qg ZHJtX2k5MTVfZGlzcGxheV9mdW5jcyB7CiAJaW50ICgqcXVldWVfZmxpcCkoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJICBzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiwKIAkJCSAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKLQkJCSAg c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKKwkJCSAgc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXEsCiAJCQkgIHVpbnQzMl90IGZsYWdzKTsKIAl2b2lkICgqdXBkYXRlX3ByaW1h cnlfcGxhbmUpKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkgICAgIHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IGM3MWM1 MjMuLmMzOWNkMzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTk0MTgs OSArOTQxOCwxMCBAQCBzdGF0aWMgaW50IGludGVsX2dlbjJfcXVldWVfZmxpcChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCQkJCSBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJIHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiLAogCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LAotCQkJCSBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAorCQkJCSBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCQkgdWludDMyX3QgZmxhZ3MpCiB7CisJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJdTMyIGZsaXBfbWFzazsKIAlpbnQgcmV0 OwpAQCAtOTQ0NSw3ICs5NDQ2LDYgQEAgc3RhdGljIGludCBpbnRlbF9nZW4yX3F1ZXVlX2ZsaXAo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpbnRlbF9yaW5nX2VtaXQocmluZywgMCk7IC8qIGF1 eCBkaXNwbGF5IGJhc2UgYWRkcmVzcywgdW51c2VkICovCiAKIAlpbnRlbF9tYXJrX3BhZ2VfZmxp cF9hY3RpdmUoaW50ZWxfY3J0Yyk7Ci0JX19pbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CiAJcmV0 dXJuIDA7CiB9CiAKQEAgLTk0NTMsOSArOTQ1MywxMCBAQCBzdGF0aWMgaW50IGludGVsX2dlbjNf cXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSBzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCiAJCQkJIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCQkJCSBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqLAotCQkJCSBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n LAorCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCQkgdWludDMyX3Qg ZmxhZ3MpCiB7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKIAlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJdTMy IGZsaXBfbWFzazsKIAlpbnQgcmV0OwpAQCAtOTQ3Nyw3ICs5NDc4LDYgQEAgc3RhdGljIGludCBp bnRlbF9nZW4zX3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpbnRlbF9yaW5n X2VtaXQocmluZywgTUlfTk9PUCk7CiAKIAlpbnRlbF9tYXJrX3BhZ2VfZmxpcF9hY3RpdmUoaW50 ZWxfY3J0Yyk7Ci0JX19pbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CiAJcmV0dXJuIDA7CiB9CiAK QEAgLTk0ODUsOSArOTQ4NSwxMCBAQCBzdGF0aWMgaW50IGludGVsX2dlbjRfcXVldWVfZmxpcChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJ IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLAotCQkJCSBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAorCQkJCSBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCQkgdWludDMyX3QgZmxhZ3MpCiB7CisJ c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAl1aW50MzJfdCBwZiwgcGlw ZXNyYzsKQEAgLTk1MTYsNyArOTUxNyw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuNF9xdWV1ZV9m bGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIHBmIHwg cGlwZXNyYyk7CiAKIAlpbnRlbF9tYXJrX3BhZ2VfZmxpcF9hY3RpdmUoaW50ZWxfY3J0Yyk7Ci0J X19pbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTk1MjQsOSAr OTUyNCwxMCBAQCBzdGF0aWMgaW50IGludGVsX2dlbjZfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCQkJCSBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJIHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiLAogCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAot CQkJCSBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAorCQkJCSBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSwKIAkJCQkgdWludDMyX3QgZmxhZ3MpCiB7CisJc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAl1aW50MzJfdCBwZiwgcGlwZXNyYzsKQEAgLTk1 NTIsNyArOTU1Myw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuNl9xdWV1ZV9mbGlwKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIHBmIHwgcGlwZXNyYyk7CiAK IAlpbnRlbF9tYXJrX3BhZ2VfZmxpcF9hY3RpdmUoaW50ZWxfY3J0Yyk7Ci0JX19pbnRlbF9yaW5n X2FkdmFuY2UocmluZyk7CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTk1NjAsOSArOTU2MCwxMCBAQCBz dGF0aWMgaW50IGludGVsX2dlbjdfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CQkJCSBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiLAogCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAotCQkJCSBzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nLAorCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcSwKIAkJCQkgdWludDMyX3QgZmxhZ3MpCiB7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZyA9IHJlcS0+cmluZzsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Yyk7CiAJdWludDMyX3QgcGxhbmVfYml0ID0gMDsKIAlpbnQgbGVuLCByZXQ7 CkBAIC05NjQ3LDcgKzk2NDgsNiBAQCBzdGF0aWMgaW50IGludGVsX2dlbjdfcXVldWVfZmxpcChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWludGVsX3JpbmdfZW1pdChyaW5nLCAoTUlfTk9PUCkp OwogCiAJaW50ZWxfbWFya19wYWdlX2ZsaXBfYWN0aXZlKGludGVsX2NydGMpOwotCV9faW50ZWxf cmluZ19hZHZhbmNlKHJpbmcpOwogCXJldHVybiAwOwogfQogCkBAIC05ODAzLDcgKzk4MDMsNyBA QCBzdGF0aWMgaW50IGludGVsX2RlZmF1bHRfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCQkJCSAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkJICAgIHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiLAogCQkJCSAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LAotCQkJCSAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAorCQkJCSAgICBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCQkgICAgdWludDMyX3QgZmxhZ3MpCiB7CiAJ cmV0dXJuIC1FTk9ERVY7CkBAIC05OTk3LDEzICs5OTk3LDE4IEBAIHN0YXRpYyBpbnQgaW50ZWxf Y3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQlpOTE1X2dlbV9yZXF1ZXN0 X2Fzc2lnbigmd29yay0+ZmxpcF9xdWV1ZWRfcmVxLAogCQkJCQlvYmotPmxhc3Rfd3JpdGVfcmVx KTsKIAl9IGVsc2UgewotCQlyZXQgPSBkZXZfcHJpdi0+ZGlzcGxheS5xdWV1ZV9mbGlwKGRldiwg Y3J0YywgZmIsIG9iaiwgcmluZywKKwkJaWYgKCFyZXF1ZXN0KSB7CisJCQlyZXQgPSBpOTE1X2dl bV9yZXF1ZXN0X2FsbG9jKHJpbmcsIHJpbmctPmRlZmF1bHRfY29udGV4dCwgJnJlcXVlc3QpOwor CQkJaWYgKHJldCkKKwkJCQlnb3RvIGNsZWFudXBfdW5waW47CisJCX0KKworCQlyZXQgPSBkZXZf cHJpdi0+ZGlzcGxheS5xdWV1ZV9mbGlwKGRldiwgY3J0YywgZmIsIG9iaiwgcmVxdWVzdCwKIAkJ CQkJCSAgIHBhZ2VfZmxpcF9mbGFncyk7CiAJCWlmIChyZXQpCiAJCQlnb3RvIGNsZWFudXBfdW5w aW47CiAKLQkJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJndvcmstPmZsaXBfcXVldWVkX3JlcSwK LQkJCQkJaW50ZWxfcmluZ19nZXRfcmVxdWVzdChyaW5nKSk7CisJCWk5MTVfZ2VtX3JlcXVlc3Rf YXNzaWduKCZ3b3JrLT5mbGlwX3F1ZXVlZF9yZXEsIHJlcXVlc3QpOwogCX0KIAogCWlmIChyZXF1 ZXN0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IDI5MTkyMGUu LjhhNTUwMzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTgx LDcgKzgxLDcgQEAgYm9vbCBpbnRlbF9yaW5nX3N0b3BwZWQoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZykKIAlyZXR1cm4gZGV2X3ByaXYtPmdwdV9lcnJvci5zdG9wX3JpbmdzICYgaW50ZWxf cmluZ19mbGFnKHJpbmcpOwogfQogCi12b2lkIF9faW50ZWxfcmluZ19hZHZhbmNlKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmcpCitzdGF0aWMgdm9pZCBfX2ludGVsX3JpbmdfYWR2YW5jZShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogewogCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nYnVmID0gcmluZy0+YnVmZmVyOwogCXJpbmdidWYtPnRhaWwgJj0gcmluZ2J1Zi0+c2l6 ZSAtIDE7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKaW5kZXggMmRjMTEx Yy4uNWZhYzEwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaApAQCAt NDEyLDcgKzQxMiw2IEBAIGludCBfX2ludGVsX3Jpbmdfc3BhY2UoaW50IGhlYWQsIGludCB0YWls LCBpbnQgc2l6ZSk7CiB2b2lkIGludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHN0cnVjdCBpbnRlbF9y aW5nYnVmZmVyICpyaW5nYnVmKTsKIGludCBpbnRlbF9yaW5nX3NwYWNlKHN0cnVjdCBpbnRlbF9y aW5nYnVmZmVyICpyaW5nYnVmKTsKIGJvb2wgaW50ZWxfcmluZ19zdG9wcGVkKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcpOwotdm9pZCBfX2ludGVsX3JpbmdfYWR2YW5jZShzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nKTsKIAogaW50IF9fbXVzdF9jaGVjayBpbnRlbF9yaW5nX2lkbGUo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7CiB2b2lkIGludGVsX3JpbmdfaW5pdF9zZXFu byhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCB1MzIgc2Vxbm8pOwotLSAKMS43LjkuNQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK