From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CD5A6C2D0E4 for ; Fri, 27 Nov 2020 12:11:00 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8147421D81 for ; Fri, 27 Nov 2020 12:11:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8147421D81 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 79EEA6EC8D; Fri, 27 Nov 2020 12:09:35 +0000 (UTC) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id EF76D6EBA8; Fri, 27 Nov 2020 12:09:33 +0000 (UTC) IronPort-SDR: YaF6IG/OA5H3T4Wy232i55wOHQkIriFeSUPbqQfuK+W1OnFxYEwoikE49Eczyn77S18y+JWmXF PUstbctweWOw== X-IronPort-AV: E=McAfee;i="6000,8403,9817"; a="172540685" X-IronPort-AV: E=Sophos;i="5.78,374,1599548400"; d="scan'208";a="172540685" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Nov 2020 04:09:33 -0800 IronPort-SDR: 6GhWyZwyYD238/PQV98gAyZP5Xk90FWB6UBEz2HX2GtZ7+bOQN4VkjoN8LdNZE8uH8VYfeyklx TvgwEYvFh27A== X-IronPort-AV: E=Sophos;i="5.78,374,1599548400"; d="scan'208";a="548028993" Received: from mjgleeso-mobl.ger.corp.intel.com (HELO mwauld-desk1.ger.corp.intel.com) ([10.251.85.2]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Nov 2020 04:09:32 -0800 From: Matthew Auld To: intel-gfx@lists.freedesktop.org Date: Fri, 27 Nov 2020 12:05:45 +0000 Message-Id: <20201127120718.454037-70-matthew.auld@intel.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20201127120718.454037-1-matthew.auld@intel.com> References: <20201127120718.454037-1-matthew.auld@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [RFC PATCH 069/162] drm/i915/selftests: Prepare gtt tests for obj->mm.lock removal X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: dri-devel@lists.freedesktop.org, =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNv bT4KCldlIG5lZWQgdG8gbG9jayB0aGUgZ2xvYmFsIGd0dCBkbWFfcmVzdiwgdXNlIGk5MTVfdm1f bG9ja19vYmplY3RzCnRvIGhhbmRsZSB0aGlzIGNvcnJlY3RseS4gQWRkIHd3IGhhbmRsaW5nIGZv ciB0aGlzIHdoZXJlIHJlcXVpcmVkLgoKQWRkIHRoZSBvYmplY3QgbG9jayBhcm91bmQgdW5waW4v cHV0IHBhZ2VzLCBhbmQgdXNlIHRoZSB1bmxvY2tlZAp2ZXJzaW9ucyBvZiBwaW5fcGFnZXMgYW5k IHBpbl9tYXAgd2hlcmUgcmVxdWlyZWQuCgpTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3Jz dCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgpDYzogVGhvbWFzIEhlbGxzdHLD tm0gPHRob21hcy5oZWxsc3Ryb21AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9ndHQuYyB8IDkyICsrKysrKysrKysrKysrLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA2NyBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZ3R0LmMKaW5kZXggMmNmZTk5 Yzc5MDM0Li5kMDdkZDY3ODAwMDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvaTkxNV9nZW1fZ3R0LmMKQEAgLTEyOSw3ICsxMjksNyBAQCBmYWtlX2RtYV9vYmplY3Qoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHU2NCBzaXplKQogCW9iai0+Y2FjaGVfbGV2ZWwg PSBJOTE1X0NBQ0hFX05PTkU7CiAKIAkvKiBQcmVhbGxvY2F0ZSB0aGUgImJhY2tpbmcgc3RvcmFn ZSIgKi8KLQlpZiAoaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmopKQorCWlmIChpOTE1X2dl bV9vYmplY3RfcGluX3BhZ2VzX3VubG9ja2VkKG9iaikpCiAJCWdvdG8gZXJyX29iajsKIAogCWk5 MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhvYmopOwpAQCAtMTQ1LDYgKzE0NSw3IEBAIHN0YXRp YyBpbnQgaWd0X3BwZ3R0X2FsbG9jKHZvaWQgKmFyZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBhcmc7CiAJc3RydWN0IGk5MTVfcHBndHQgKnBwZ3R0OworCXN0cnVj dCBpOTE1X2dlbV93d19jdHggd3c7CiAJdTY0IHNpemUsIGxhc3QsIGxpbWl0OwogCWludCBlcnIg PSAwOwogCkBAIC0xNzAsNiArMTcxLDEyIEBAIHN0YXRpYyBpbnQgaWd0X3BwZ3R0X2FsbG9jKHZv aWQgKmFyZykKIAlsaW1pdCA9IHRvdGFscmFtX3BhZ2VzKCkgPDwgUEFHRV9TSElGVDsKIAlsaW1p dCA9IG1pbihwcGd0dC0+dm0udG90YWwsIGxpbWl0KTsKIAorCWk5MTVfZ2VtX3d3X2N0eF9pbml0 KCZ3dywgZmFsc2UpOworcmV0cnk6CisJZXJyID0gaTkxNV92bV9sb2NrX29iamVjdHMoJnBwZ3R0 LT52bSwgJnd3KTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl9wcGd0dF9jbGVhbnVwOworCiAJLyog Q2hlY2sgd2UgY2FuIGFsbG9jYXRlIHRoZSBlbnRpcmUgcmFuZ2UgKi8KIAlmb3IgKHNpemUgPSA0 MDk2OyBzaXplIDw9IGxpbWl0OyBzaXplIDw8PSAyKSB7CiAJCXN0cnVjdCBpOTE1X3ZtX3B0X3N0 YXNoIHN0YXNoID0ge307CkBAIC0yMTQsNiArMjIxLDEzIEBAIHN0YXRpYyBpbnQgaWd0X3BwZ3R0 X2FsbG9jKHZvaWQgKmFyZykKIAl9CiAKIGVycl9wcGd0dF9jbGVhbnVwOgorCWlmIChlcnIgPT0g LUVERUFETEspIHsKKwkJZXJyID0gaTkxNV9nZW1fd3dfY3R4X2JhY2tvZmYoJnd3KTsKKwkJaWYg KCFlcnIpCisJCQlnb3RvIHJldHJ5OworCX0KKwlpOTE1X2dlbV93d19jdHhfZmluaSgmd3cpOwor CiAJaTkxNV92bV9wdXQoJnBwZ3R0LT52bSk7CiAJcmV0dXJuIGVycjsKIH0KQEAgLTI3NSw3ICsy ODksNyBAQCBzdGF0aWMgaW50IGxvd2xldmVsX2hvbGUoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFj ZSAqdm0sCiAKIAkJR0VNX0JVR19PTihvYmotPmJhc2Uuc2l6ZSAhPSBCSVRfVUxMKHNpemUpKTsK IAotCQlpZiAoaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmopKSB7CisJCWlmIChpOTE1X2dl bV9vYmplY3RfcGluX3BhZ2VzX3VubG9ja2VkKG9iaikpIHsKIAkJCWk5MTVfZ2VtX29iamVjdF9w dXQob2JqKTsKIAkJCWtmcmVlKG9yZGVyKTsKIAkJCWJyZWFrOwpAQCAtMjk2LDIwICszMTAsMzYg QEAgc3RhdGljIGludCBsb3dsZXZlbF9ob2xlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZt LAogCiAJCQlpZiAodm0tPmFsbG9jYXRlX3ZhX3JhbmdlKSB7CiAJCQkJc3RydWN0IGk5MTVfdm1f cHRfc3Rhc2ggc3Rhc2ggPSB7fTsKKwkJCQlzdHJ1Y3QgaTkxNV9nZW1fd3dfY3R4IHd3OworCQkJ CWludCBlcnI7CisKKwkJCQlpOTE1X2dlbV93d19jdHhfaW5pdCgmd3csIGZhbHNlKTsKK3JldHJ5 OgorCQkJCWVyciA9IGk5MTVfdm1fbG9ja19vYmplY3RzKHZtLCAmd3cpOworCQkJCWlmIChlcnIp CisJCQkJCWdvdG8gYWxsb2Nfdm1fZW5kOwogCisJCQkJZXJyID0gLUVOT01FTTsKIAkJCQlpZiAo aTkxNV92bV9hbGxvY19wdF9zdGFzaCh2bSwgJnN0YXNoLAogCQkJCQkJCSAgIEJJVF9VTEwoc2l6 ZSkpKQotCQkJCQlicmVhazsKLQotCQkJCWlmIChpOTE1X3ZtX3Bpbl9wdF9zdGFzaCh2bSwgJnN0 YXNoKSkgewotCQkJCQlpOTE1X3ZtX2ZyZWVfcHRfc3Rhc2godm0sICZzdGFzaCk7Ci0JCQkJCWJy ZWFrOwotCQkJCX0KKwkJCQkJZ290byBhbGxvY192bV9lbmQ7CiAKLQkJCQl2bS0+YWxsb2NhdGVf dmFfcmFuZ2Uodm0sICZzdGFzaCwKLQkJCQkJCSAgICAgIGFkZHIsIEJJVF9VTEwoc2l6ZSkpOwor CQkJCWVyciA9IGk5MTVfdm1fcGluX3B0X3N0YXNoKHZtLCAmc3Rhc2gpOworCQkJCWlmICghZXJy KQorCQkJCQl2bS0+YWxsb2NhdGVfdmFfcmFuZ2Uodm0sICZzdGFzaCwKKwkJCQkJCQkgICAgICBh ZGRyLCBCSVRfVUxMKHNpemUpKTsKIAogCQkJCWk5MTVfdm1fZnJlZV9wdF9zdGFzaCh2bSwgJnN0 YXNoKTsKK2FsbG9jX3ZtX2VuZDoKKwkJCQlpZiAoZXJyID09IC1FREVBRExLKSB7CisJCQkJCWVy ciA9IGk5MTVfZ2VtX3d3X2N0eF9iYWNrb2ZmKCZ3dyk7CisJCQkJCWlmICghZXJyKQorCQkJCQkJ Z290byByZXRyeTsKKwkJCQl9CisJCQkJaTkxNV9nZW1fd3dfY3R4X2ZpbmkoJnd3KTsKKworCQkJ CWlmIChlcnIpCisJCQkJCWJyZWFrOwogCQkJfQogCiAJCQltb2NrX3ZtYS0+cGFnZXMgPSBvYmot Pm1tLnBhZ2VzOwpAQCAtMTE2NSw3ICsxMTk1LDcgQEAgc3RhdGljIGludCBpZ3RfZ2d0dF9wYWdl KHZvaWQgKmFyZykKIAlpZiAoSVNfRVJSKG9iaikpCiAJCXJldHVybiBQVFJfRVJSKG9iaik7CiAK LQllcnIgPSBpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKG9iaik7CisJZXJyID0gaTkxNV9nZW1f b2JqZWN0X3Bpbl9wYWdlc191bmxvY2tlZChvYmopOwogCWlmIChlcnIpCiAJCWdvdG8gb3V0X2Zy ZWU7CiAKQEAgLTEzMzIsNyArMTM2Miw3IEBAIHN0YXRpYyBpbnQgaWd0X2d0dF9yZXNlcnZlKHZv aWQgKmFyZykKIAkJCWdvdG8gb3V0OwogCQl9CiAKLQkJZXJyID0gaTkxNV9nZW1fb2JqZWN0X3Bp bl9wYWdlcyhvYmopOworCQllcnIgPSBpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzX3VubG9ja2Vk KG9iaik7CiAJCWlmIChlcnIpIHsKIAkJCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKIAkJCWdv dG8gb3V0OwpAQCAtMTM4NCw3ICsxNDE0LDcgQEAgc3RhdGljIGludCBpZ3RfZ3R0X3Jlc2VydmUo dm9pZCAqYXJnKQogCQkJZ290byBvdXQ7CiAJCX0KIAotCQllcnIgPSBpOTE1X2dlbV9vYmplY3Rf cGluX3BhZ2VzKG9iaik7CisJCWVyciA9IGk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXNfdW5sb2Nr ZWQob2JqKTsKIAkJaWYgKGVycikgewogCQkJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwogCQkJ Z290byBvdXQ7CkBAIC0xNTQ4LDcgKzE1NzgsNyBAQCBzdGF0aWMgaW50IGlndF9ndHRfaW5zZXJ0 KHZvaWQgKmFyZykKIAkJCWdvdG8gb3V0OwogCQl9CiAKLQkJZXJyID0gaTkxNV9nZW1fb2JqZWN0 X3Bpbl9wYWdlcyhvYmopOworCQllcnIgPSBpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzX3VubG9j a2VkKG9iaik7CiAJCWlmIChlcnIpIHsKIAkJCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKIAkJ CWdvdG8gb3V0OwpAQCAtMTY1Nyw3ICsxNjg3LDcgQEAgc3RhdGljIGludCBpZ3RfZ3R0X2luc2Vy dCh2b2lkICphcmcpCiAJCQlnb3RvIG91dDsKIAkJfQogCi0JCWVyciA9IGk5MTVfZ2VtX29iamVj dF9waW5fcGFnZXMob2JqKTsKKwkJZXJyID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlc191bmxv Y2tlZChvYmopOwogCQlpZiAoZXJyKSB7CiAJCQlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CiAJ CQlnb3RvIG91dDsKQEAgLTE4MjgsNyArMTg1OCw3IEBAIHN0YXRpYyBpbnQgaWd0X2NzX3RsYih2 b2lkICphcmcpCiAJCWdvdG8gb3V0X3ZtOwogCX0KIAotCWJhdGNoID0gaTkxNV9nZW1fb2JqZWN0 X3Bpbl9tYXAoYmJlLCBJOTE1X01BUF9XQyk7CisJYmF0Y2ggPSBpOTE1X2dlbV9vYmplY3RfcGlu X21hcF91bmxvY2tlZChiYmUsIEk5MTVfTUFQX1dDKTsKIAlpZiAoSVNfRVJSKGJhdGNoKSkgewog CQllcnIgPSBQVFJfRVJSKGJhdGNoKTsKIAkJZ290byBvdXRfcHV0X2JiZTsKQEAgLTE4NDQsNyAr MTg3NCw3IEBAIHN0YXRpYyBpbnQgaWd0X2NzX3RsYih2b2lkICphcmcpCiAJfQogCiAJLyogVHJh Y2sgdGhlIGV4ZWN1dGlvbiBvZiBlYWNoIHJlcXVlc3QgYnkgd3JpdGluZyBpbnRvIGRpZmZlcmVu dCBzbG90ICovCi0JYmF0Y2ggPSBpOTE1X2dlbV9vYmplY3RfcGluX21hcChhY3QsIEk5MTVfTUFQ X1dDKTsKKwliYXRjaCA9IGk5MTVfZ2VtX29iamVjdF9waW5fbWFwX3VubG9ja2VkKGFjdCwgSTkx NV9NQVBfV0MpOwogCWlmIChJU19FUlIoYmF0Y2gpKSB7CiAJCWVyciA9IFBUUl9FUlIoYmF0Y2gp OwogCQlnb3RvIG91dF9wdXRfYWN0OwpAQCAtMTg5MSw3ICsxOTIxLDcgQEAgc3RhdGljIGludCBp Z3RfY3NfdGxiKHZvaWQgKmFyZykKIAkJZ290byBvdXRfcHV0X291dDsKIAlHRU1fQlVHX09OKHZt YS0+bm9kZS5zdGFydCAhPSB2bS0+dG90YWwgLSBQQUdFX1NJWkUpOwogCi0JcmVzdWx0ID0gaTkx NV9nZW1fb2JqZWN0X3Bpbl9tYXAob3V0LCBJOTE1X01BUF9XQik7CisJcmVzdWx0ID0gaTkxNV9n ZW1fb2JqZWN0X3Bpbl9tYXBfdW5sb2NrZWQob3V0LCBJOTE1X01BUF9XQik7CiAJaWYgKElTX0VS UihyZXN1bHQpKSB7CiAJCWVyciA9IFBUUl9FUlIocmVzdWx0KTsKIAkJZ290byBvdXRfcHV0X291 dDsKQEAgLTE5MDcsNiArMTkzNyw3IEBAIHN0YXRpYyBpbnQgaWd0X2NzX3RsYih2b2lkICphcmcp CiAJCXdoaWxlICghX19pZ3RfdGltZW91dChlbmRfdGltZSwgTlVMTCkpIHsKIAkJCXN0cnVjdCBp OTE1X3ZtX3B0X3N0YXNoIHN0YXNoID0ge307CiAJCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsK KwkJCXN0cnVjdCBpOTE1X2dlbV93d19jdHggd3c7CiAJCQl1NjQgb2Zmc2V0OwogCiAJCQlvZmZz ZXQgPSBpZ3RfcmFuZG9tX29mZnNldCgmcHJuZywKQEAgLTE5MjUsMTkgKzE5NTYsMzAgQEAgc3Rh dGljIGludCBpZ3RfY3NfdGxiKHZvaWQgKmFyZykKIAkJCWlmIChlcnIpCiAJCQkJZ290byBlbmQ7 CiAKKwkJCWk5MTVfZ2VtX3d3X2N0eF9pbml0KCZ3dywgZmFsc2UpOworcmV0cnk6CisJCQllcnIg PSBpOTE1X3ZtX2xvY2tfb2JqZWN0cyh2bSwgJnd3KTsKKwkJCWlmIChlcnIpCisJCQkJZ290byBl bmRfd3c7CisKIAkJCWVyciA9IGk5MTVfdm1fYWxsb2NfcHRfc3Rhc2godm0sICZzdGFzaCwgY2h1 bmtfc2l6ZSk7CiAJCQlpZiAoZXJyKQotCQkJCWdvdG8gZW5kOworCQkJCWdvdG8gZW5kX3d3Owog CiAJCQllcnIgPSBpOTE1X3ZtX3Bpbl9wdF9zdGFzaCh2bSwgJnN0YXNoKTsKLQkJCWlmIChlcnIp IHsKLQkJCQlpOTE1X3ZtX2ZyZWVfcHRfc3Rhc2godm0sICZzdGFzaCk7Ci0JCQkJZ290byBlbmQ7 Ci0JCQl9Ci0KLQkJCXZtLT5hbGxvY2F0ZV92YV9yYW5nZSh2bSwgJnN0YXNoLCBvZmZzZXQsIGNo dW5rX3NpemUpOworCQkJaWYgKCFlcnIpCisJCQkJdm0tPmFsbG9jYXRlX3ZhX3JhbmdlKHZtLCAm c3Rhc2gsIG9mZnNldCwgY2h1bmtfc2l6ZSk7CiAKIAkJCWk5MTVfdm1fZnJlZV9wdF9zdGFzaCh2 bSwgJnN0YXNoKTsKK2VuZF93dzoKKwkJCWlmIChlcnIgPT0gLUVERUFETEspIHsKKwkJCQllcnIg PSBpOTE1X2dlbV93d19jdHhfYmFja29mZigmd3cpOworCQkJCWlmICghZXJyKQorCQkJCQlnb3Rv IHJldHJ5OworCQkJfQorCQkJaTkxNV9nZW1fd3dfY3R4X2ZpbmkoJnd3KTsKKwkJCWlmIChlcnIp CisJCQkJZ290byBlbmQ7CiAKIAkJCS8qIFByaW1lIHRoZSBUTEIgd2l0aCB0aGUgZHVtbXkgcGFn ZXMgKi8KIAkJCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7Ci0tIAoyLjI2LjIKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=