From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michal Wajdeczko Subject: [PATCH v2 2/3] drm/i915: Extend PARAMS_FOR_EACH macro with more data Date: Fri, 9 Jun 2017 10:27:56 +0000 Message-ID: <20170609102757.14984-3-michal.wajdeczko@intel.com> References: <20170609102757.14984-1-michal.wajdeczko@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 484876E5B9 for ; Fri, 9 Jun 2017 10:28:10 +0000 (UTC) In-Reply-To: <20170609102757.14984-1-michal.wajdeczko@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 Q3VycmVudGx5IG91ciBQQVJBTVNfRk9SX0VBQ0ggbWFjcm8gY29udGFpbnMgb25seSBwYXJhbSB0 eXBlIGFuZCBuYW1lLgpXZSB1c2UgdGhpcyBtYWNybyB0byBkZWZpbmUgc3RydWN0IG1lbWJlcnMs IGJ1dCBsYXRlciBvbiB3ZSBpbml0aWFsaXplCnRoaXMgc3RydWN0IHVzaW5nIGhhbmRjcmFmdGVk IGNvZGUsIHdoaWNoIGxlYWRzIGluIHNvbWUgY2FzZXMgdG8gdXNlCm1pc21hdGNoZWQgdmFsdWUg dnMuIHR5cGUuIExldCdzIGV4dGVuZCBvdXIgcm9vdCBtYWNybyB3aXRoIHBhcmFtCmRlZmF1bHQg dmFsdWUgdG8ga2VlcCB0aGVtIGluIHN5bmMuIEFsc28gZHJvcCA7IGZyb20gdGhlIG1hY3JvIHRv IGFsbG93Cm1vcmUgZmxleGlibGUgdXNhZ2VzLgoKdjI6IEFkZCB1bnNhZmUgdGFnIChDaHJpcykK ICAgIEFkZCBhbGwgb3RoZXIgZGF0YSB0byBhbGxvdyBjb21wbGV0ZSBhdXRvbWF0aW9uIChNaWNo YWwpCgpBcyB3ZSBub3cgaGF2ZSBhbGwgZGF0YSBpbiB0aGUgcGFyYW0gbWFjcm8sIHdlIGNhbiBh dXRvbWF0aWNhbGx5CmFkZCAnZGVmYXVsdCcgaW5mbyB0byB0aGUgZGVzY3JpcHRpb24gYW5kIGF2 b2lkIGFueSBtaXNtYXRjaGVzLgoKdjM6IEZpeCBwcmludGluZyBkZWZhdWx0IHZhbHVlIGluIHRo ZSBkZXNjcmlwdGlvbiAoTWljaGFsKQoKU2lnbmVkLW9mZi1ieTogTWljaGFsIFdhamRlY3prbyA8 bWljaGFsLndhamRlY3prb0BpbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlz LXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAg IHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jIHwgIDEwICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jICAgIHwgMjM0ICsrLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1z LmggICAgfCAxODMgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwg MTU4IGluc2VydGlvbnMoKyksIDI3NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jCmluZGV4IGE2YmEyMTAuLjdhMmYwYjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jCkBAIC00NCw5ICs0NCw5IEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBz ZXFfcHJpbnRfcGFyYW0oc3RydWN0IHNlcV9maWxlICptLAogCQlzZXFfcHJpbnRmKG0sICJpOTE1 LiVzPSVzXG4iLCBuYW1lLCB5ZXNubygqKGNvbnN0IGJvb2wgKil4KSk7CiAJZWxzZSBpZiAoIV9f YnVpbHRpbl9zdHJjbXAodHlwZSwgImludCIpKQogCQlzZXFfcHJpbnRmKG0sICJpOTE1LiVzPSVk XG4iLCBuYW1lLCAqKGNvbnN0IGludCAqKXgpOwotCWVsc2UgaWYgKCFfX2J1aWx0aW5fc3RyY21w KHR5cGUsICJ1bnNpZ25lZCBpbnQiKSkKKwllbHNlIGlmICghX19idWlsdGluX3N0cmNtcCh0eXBl LCAidWludCIpKQogCQlzZXFfcHJpbnRmKG0sICJpOTE1LiVzPSV1XG4iLCBuYW1lLCAqKGNvbnN0 IHVuc2lnbmVkIGludCAqKXgpOwotCWVsc2UgaWYgKCFfX2J1aWx0aW5fc3RyY21wKHR5cGUsICJj aGFyICoiKSkKKwllbHNlIGlmICghX19idWlsdGluX3N0cmNtcCh0eXBlLCAiY2hhcnAiKSkKIAkJ c2VxX3ByaW50ZihtLCAiaTkxNS4lcz0lc1xuIiwgbmFtZSwgKihjb25zdCBjaGFyICoqKXgpOwog CWVsc2UKIAkJQlVJTERfQlVHKCk7CkBAIC02Niw3ICs2Niw3IEBAIHN0YXRpYyBpbnQgaTkxNV9j YXBhYmlsaXRpZXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogI3VuZGVmIFBSSU5U X0ZMQUcKIAogCWtlcm5lbF9wYXJhbV9sb2NrKFRISVNfTU9EVUxFKTsKLSNkZWZpbmUgUFJJTlRf UEFSQU0oVCwgeCkgc2VxX3ByaW50X3BhcmFtKG0sICN4LCAjVCwgJmk5MTUueCk7CisjZGVmaW5l IFBSSU5UX1BBUkFNKFQsIFgsIFYsIE0sIFMsIEIsIEQpIHNlcV9wcmludF9wYXJhbShtLCAjWCwg I1QsICZpOTE1LlgpOwogCUk5MTVfUEFSQU1TX0ZPUl9FQUNIKFBSSU5UX1BBUkFNKTsKICN1bmRl ZiBQUklOVF9QQVJBTQogCWtlcm5lbF9wYXJhbV91bmxvY2soVEhJU19NT0RVTEUpOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKaW5kZXggZTE4ZjM1MC4uZWE2YzBiMSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCkBAIC01NTUsOSArNTU1LDkgQEAgc3RhdGlj IF9fYWx3YXlzX2lubGluZSB2b2lkIGVycl9wcmludF9wYXJhbShzdHJ1Y3QgZHJtX2k5MTVfZXJy b3Jfc3RhdGVfYnVmICptLAogCQllcnJfcHJpbnRmKG0sICJpOTE1LiVzPSVzXG4iLCBuYW1lLCB5 ZXNubygqKGNvbnN0IGJvb2wgKil4KSk7CiAJZWxzZSBpZiAoIV9fYnVpbHRpbl9zdHJjbXAodHlw ZSwgImludCIpKQogCQllcnJfcHJpbnRmKG0sICJpOTE1LiVzPSVkXG4iLCBuYW1lLCAqKGNvbnN0 IGludCAqKXgpOwotCWVsc2UgaWYgKCFfX2J1aWx0aW5fc3RyY21wKHR5cGUsICJ1bnNpZ25lZCBp bnQiKSkKKwllbHNlIGlmICghX19idWlsdGluX3N0cmNtcCh0eXBlLCAidWludCIpKQogCQllcnJf cHJpbnRmKG0sICJpOTE1LiVzPSV1XG4iLCBuYW1lLCAqKGNvbnN0IHVuc2lnbmVkIGludCAqKXgp OwotCWVsc2UgaWYgKCFfX2J1aWx0aW5fc3RyY21wKHR5cGUsICJjaGFyICoiKSkKKwllbHNlIGlm ICghX19idWlsdGluX3N0cmNtcCh0eXBlLCAiY2hhcnAiKSkKIAkJZXJyX3ByaW50ZihtLCAiaTkx NS4lcz0lc1xuIiwgbmFtZSwgKihjb25zdCBjaGFyICoqKXgpOwogCWVsc2UKIAkJQlVJTERfQlVH KCk7CkBAIC01NjYsNyArNTY2LDcgQEAgc3RhdGljIF9fYWx3YXlzX2lubGluZSB2b2lkIGVycl9w cmludF9wYXJhbShzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICptLAogc3RhdGljIHZv aWQgZXJyX3ByaW50X3BhcmFtcyhzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICptLAog CQkJICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9wYXJhbXMgKnApCiB7Ci0jZGVmaW5lIFBSSU5UKFQs IHgpIGVycl9wcmludF9wYXJhbShtLCAjeCwgI1QsICZwLT54KTsKKyNkZWZpbmUgUFJJTlQoVCwg WCwgViwgTSwgUywgQiwgRCkgZXJyX3ByaW50X3BhcmFtKG0sICNYLCAjVCwgJnAtPlgpOwogCUk5 MTVfUEFSQU1TX0ZPUl9FQUNIKFBSSU5UKTsKICN1bmRlZiBQUklOVAogfQpAQCAtODYwLDcgKzg2 MCw3IEBAIHZvaWQgX19pOTE1X2dwdV9zdGF0ZV9mcmVlKHN0cnVjdCBrcmVmICplcnJvcl9yZWYp CiAJa2ZyZWUoZXJyb3ItPm92ZXJsYXkpOwogCWtmcmVlKGVycm9yLT5kaXNwbGF5KTsKIAotI2Rl ZmluZSBGUkVFKFQsIHgpIGZyZWVfcGFyYW0oI1QsICZlcnJvci0+cGFyYW1zLngpOworI2RlZmlu ZSBGUkVFKFQsIFgsIFYsIE0sIFMsIEIsIEQpIGZyZWVfcGFyYW0oI1QsICZlcnJvci0+cGFyYW1z LlgpOwogCUk5MTVfUEFSQU1TX0ZPUl9FQUNIKEZSRUUpOwogI3VuZGVmIEZSRUUKIApAQCAtMTY5 NCw3ICsxNjk0LDcgQEAgc3RhdGljIGludCBjYXB0dXJlKHZvaWQgKmRhdGEpCiAJCQkJCSAgIGVy cm9yLT5pOTE1LT5ndC5sYXN0X2luaXRfdGltZSkpOwogCiAJZXJyb3ItPnBhcmFtcyA9IGk5MTU7 Ci0jZGVmaW5lIERVUChULCB4KSBkdXBfcGFyYW0oI1QsICZlcnJvci0+cGFyYW1zLngpOworI2Rl ZmluZSBEVVAoVCwgWCwgViwgTSwgUywgQiwgRCkgZHVwX3BhcmFtKCNULCAmZXJyb3ItPnBhcmFt cy5YKTsKIAlJOTE1X1BBUkFNU19GT1JfRUFDSChEVVApOwogI3VuZGVmIERVUAogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9wYXJhbXMuYwppbmRleCA2YzI3ZDMzLi41NzVjYjBlIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcGFyYW1zLmMKQEAgLTI2LDIzMCArMjYsMTYgQEAKICNpbmNsdWRlICJpOTE1X2Ry di5oIgogCiBzdHJ1Y3QgaTkxNV9wYXJhbXMgaTkxNSBfX3JlYWRfbW9zdGx5ID0gewotCS5tb2Rl c2V0ID0gLTEsCi0JLnBhbmVsX2lnbm9yZV9saWQgPSAxLAotCS5zZW1hcGhvcmVzID0gLTEsCi0J Lmx2ZHNfY2hhbm5lbF9tb2RlID0gMCwKLQkucGFuZWxfdXNlX3NzYyA9IC0xLAotCS52YnRfc2R2 b19wYW5lbF90eXBlID0gLTEsCi0JLmVuYWJsZV9yYzYgPSAtMSwKLQkuZW5hYmxlX2RjID0gLTEs Ci0JLmVuYWJsZV9mYmMgPSAtMSwKLQkuZW5hYmxlX2V4ZWNsaXN0cyA9IC0xLAotCS5lbmFibGVf aGFuZ2NoZWNrID0gdHJ1ZSwKLQkuZW5hYmxlX3BwZ3R0ID0gLTEsCi0JLmVuYWJsZV9wc3IgPSAt MSwKLQkuYWxwaGFfc3VwcG9ydCA9IElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0FMUEhBX1NV UFBPUlQpLAotCS5kaXNhYmxlX3Bvd2VyX3dlbGwgPSAtMSwKLQkuZW5hYmxlX2lwcyA9IDEsCi0J LmZhc3Rib290ID0gMCwKLQkucHJlZmF1bHRfZGlzYWJsZSA9IDAsCi0JLmxvYWRfZGV0ZWN0X3Rl c3QgPSAwLAotCS5mb3JjZV9yZXNldF9tb2Rlc2V0X3Rlc3QgPSAwLAotCS5yZXNldCA9IHRydWUs Ci0JLmVycm9yX2NhcHR1cmUgPSB0cnVlLAotCS5pbnZlcnRfYnJpZ2h0bmVzcyA9IDAsCi0JLmRp c2FibGVfZGlzcGxheSA9IDAsCi0JLmVuYWJsZV9jbWRfcGFyc2VyID0gdHJ1ZSwKLQkudXNlX21t aW9fZmxpcCA9IDAsCi0JLm1taW9fZGVidWcgPSAwLAotCS52ZXJib3NlX3N0YXRlX2NoZWNrcyA9 IDEsCi0JLm51Y2xlYXJfcGFnZWZsaXAgPSAwLAotCS5lZHBfdnN3aW5nID0gMCwKLQkuZW5hYmxl X2d1Y19sb2FkaW5nID0gMCwKLQkuZW5hYmxlX2d1Y19zdWJtaXNzaW9uID0gMCwKLQkuZ3VjX2xv Z19sZXZlbCA9IC0xLAotCS5ndWNfZmlybXdhcmVfcGF0aCA9IE5VTEwsCi0JLmh1Y19maXJtd2Fy ZV9wYXRoID0gTlVMTCwKLQkuZW5hYmxlX2RwX21zdCA9IHRydWUsCi0JLmluamVjdF9sb2FkX2Zh aWx1cmUgPSAwLAotCS5lbmFibGVfZHBjZF9iYWNrbGlnaHQgPSBmYWxzZSwKLQkuZW5hYmxlX2d2 dCA9IGZhbHNlLAorI2RlZmluZSBNRU1CRVIoVHlwZSwgTmFtZSwgVmFsdWUsIE1vZGUsIFVuc2Fm ZSwgQnJpZWYsIERldGFpbGVkKSAuTmFtZSA9IFZhbHVlLAorCUk5MTVfUEFSQU1TX0ZPUl9FQUNI KE1FTUJFUikKKyN1bmRlZiBNRU1CRVIKIH07CiAKLW1vZHVsZV9wYXJhbV9uYW1lZChtb2Rlc2V0 LCBpOTE1Lm1vZGVzZXQsIGludCwgMDQwMCk7Ci1NT0RVTEVfUEFSTV9ERVNDKG1vZGVzZXQsCi0J IlVzZSBrZXJuZWwgbW9kZXNldHRpbmcgW0tNU10gKDA9ZGlzYWJsZSwgIgotCSIxPW9uLCAtMT1m b3JjZSB2Z2EgY29uc29sZSBwcmVmZXJlbmNlIFtkZWZhdWx0XSkiKTsKKyN1bmRlZiBOVUxMIC8q IHdlIGRvbid0IHdhbnQgdG8gc2VlICh2b2lkKikwIGluIHRoZSBkZXNjcmlwdGlvbiAqLworI2Rl ZmluZSBOVUxMICIiCisjZGVmaW5lIFBBUkFNKFR5cGUsIE5hbWUsIFZhbHVlLCBNb2RlLCBVbnNh ZmUsIEJyaWVmLCBEZXRhaWxlZCkgXAorCW1vZHVsZV9wYXJhbV9uYW1lZCMjVW5zYWZlKE5hbWUs IGk5MTUuTmFtZSwgVHlwZSwgTW9kZSk7IFwKKwlNT0RVTEVfUEFSTV9ERVNDKE5hbWUsIEJyaWVm ICIgIiBEZXRhaWxlZCAiW2RlZmF1bHQ6ICIgX19zdHJpbmdpZnkoVmFsdWUpICJdIik7CitJOTE1 X1BBUkFNU19GT1JfRUFDSChQQVJBTSkKKyN1bmRlZiBQQVJBTQogCi1tb2R1bGVfcGFyYW1fbmFt ZWRfdW5zYWZlKHBhbmVsX2lnbm9yZV9saWQsIGk5MTUucGFuZWxfaWdub3JlX2xpZCwgaW50LCAw NjAwKTsKLU1PRFVMRV9QQVJNX0RFU0MocGFuZWxfaWdub3JlX2xpZCwKLQkiT3ZlcnJpZGUgbGlk IHN0YXR1cyAoMD1hdXRvZGV0ZWN0LCAxPWF1dG9kZXRlY3QgZGlzYWJsZWQgW2RlZmF1bHRdLCAi Ci0JIi0xPWZvcmNlIGxpZCBjbG9zZWQsIC0yPWZvcmNlIGxpZCBvcGVuKSIpOwotCi1tb2R1bGVf cGFyYW1fbmFtZWRfdW5zYWZlKHNlbWFwaG9yZXMsIGk5MTUuc2VtYXBob3JlcywgaW50LCAwNDAw KTsKLU1PRFVMRV9QQVJNX0RFU0Moc2VtYXBob3JlcywKLQkiVXNlIHNlbWFwaG9yZXMgZm9yIGlu dGVyLXJpbmcgc3luYyAiCi0JIihkZWZhdWx0OiAtMSAodXNlIHBlci1jaGlwIGRlZmF1bHRzKSki KTsKLQotbW9kdWxlX3BhcmFtX25hbWVkX3Vuc2FmZShlbmFibGVfcmM2LCBpOTE1LmVuYWJsZV9y YzYsIGludCwgMDQwMCk7Ci1NT0RVTEVfUEFSTV9ERVNDKGVuYWJsZV9yYzYsCi0JIkVuYWJsZSBw b3dlci1zYXZpbmcgcmVuZGVyIEMtc3RhdGUgNi4gIgotCSJEaWZmZXJlbnQgc3RhZ2VzIGNhbiBi ZSBzZWxlY3RlZCB2aWEgYml0bWFzayB2YWx1ZXMgIgotCSIoMCA9IGRpc2FibGU7IDEgPSBlbmFi bGUgcmM2OyAyID0gZW5hYmxlIGRlZXAgcmM2OyA0ID0gZW5hYmxlIGRlZXBlc3QgcmM2KS4gIgot CSJGb3IgZXhhbXBsZSwgMyB3b3VsZCBlbmFibGUgcmM2IGFuZCBkZWVwIHJjNiwgYW5kIDcgd291 bGQgZW5hYmxlIGV2ZXJ5dGhpbmcuICIKLQkiZGVmYXVsdDogLTEgKHVzZSBwZXItY2hpcCBkZWZh dWx0KSIpOwotCi1tb2R1bGVfcGFyYW1fbmFtZWRfdW5zYWZlKGVuYWJsZV9kYywgaTkxNS5lbmFi bGVfZGMsIGludCwgMDQwMCk7Ci1NT0RVTEVfUEFSTV9ERVNDKGVuYWJsZV9kYywKLQkiRW5hYmxl IHBvd2VyLXNhdmluZyBkaXNwbGF5IEMtc3RhdGVzLiAiCi0JIigtMT1hdXRvIFtkZWZhdWx0XTsg MD1kaXNhYmxlOyAxPXVwIHRvIERDNTsgMj11cCB0byBEQzYpIik7Ci0KLW1vZHVsZV9wYXJhbV9u YW1lZF91bnNhZmUoZW5hYmxlX2ZiYywgaTkxNS5lbmFibGVfZmJjLCBpbnQsIDA2MDApOwotTU9E VUxFX1BBUk1fREVTQyhlbmFibGVfZmJjLAotCSJFbmFibGUgZnJhbWUgYnVmZmVyIGNvbXByZXNz aW9uIGZvciBwb3dlciBzYXZpbmdzICIKLQkiKGRlZmF1bHQ6IC0xICh1c2UgcGVyLWNoaXAgZGVm YXVsdCkpIik7Ci0KLW1vZHVsZV9wYXJhbV9uYW1lZF91bnNhZmUobHZkc19jaGFubmVsX21vZGUs IGk5MTUubHZkc19jaGFubmVsX21vZGUsIGludCwgMDQwMCk7Ci1NT0RVTEVfUEFSTV9ERVNDKGx2 ZHNfY2hhbm5lbF9tb2RlLAotCSAiU3BlY2lmeSBMVkRTIGNoYW5uZWwgbW9kZSAiCi0JICIoMD1w cm9iZSBCSU9TIFtkZWZhdWx0XSwgMT1zaW5nbGUtY2hhbm5lbCwgMj1kdWFsLWNoYW5uZWwpIik7 Ci0KLW1vZHVsZV9wYXJhbV9uYW1lZF91bnNhZmUocGFuZWxfdXNlX3NzYywgaTkxNS5wYW5lbF91 c2Vfc3NjLCBpbnQsIDA2MDApOwotTU9EVUxFX1BBUk1fREVTQyhwYW5lbF91c2Vfc3NjLAotCSJV c2UgU3ByZWFkIFNwZWN0cnVtIENsb2NrIHdpdGggcGFuZWxzIFtMVkRTL2VEUF0gIgotCSIoZGVm YXVsdDogYXV0byBmcm9tIFZCVCkiKTsKLQotbW9kdWxlX3BhcmFtX25hbWVkX3Vuc2FmZSh2YnRf c2R2b19wYW5lbF90eXBlLCBpOTE1LnZidF9zZHZvX3BhbmVsX3R5cGUsIGludCwgMDQwMCk7Ci1N T0RVTEVfUEFSTV9ERVNDKHZidF9zZHZvX3BhbmVsX3R5cGUsCi0JIk92ZXJyaWRlL0lnbm9yZSBz ZWxlY3Rpb24gb2YgU0RWTyBwYW5lbCBtb2RlIGluIHRoZSBWQlQgIgotCSIoLTI9aWdub3JlLCAt MT1hdXRvIFtkZWZhdWx0XSwgaW5kZXggaW4gVkJUIEJJT1MgdGFibGUpIik7Ci0KLW1vZHVsZV9w YXJhbV9uYW1lZF91bnNhZmUocmVzZXQsIGk5MTUucmVzZXQsIGJvb2wsIDA2MDApOwotTU9EVUxF X1BBUk1fREVTQyhyZXNldCwgIkF0dGVtcHQgR1BVIHJlc2V0cyAoZGVmYXVsdDogdHJ1ZSkiKTsK LQotI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X0NBUFRVUkVfRVJST1IpCi1tb2R1bGVf cGFyYW1fbmFtZWQoZXJyb3JfY2FwdHVyZSwgaTkxNS5lcnJvcl9jYXB0dXJlLCBib29sLCAwNjAw KTsKLU1PRFVMRV9QQVJNX0RFU0MoZXJyb3JfY2FwdHVyZSwKLQkiUmVjb3JkIHRoZSBHUFUgc3Rh dGUgZm9sbG93aW5nIGEgaGFuZy4gIgotCSJUaGlzIGluZm9ybWF0aW9uIGluIC9zeXMvY2xhc3Mv ZHJtL2NhcmQ8Tj4vZXJyb3IgaXMgdml0YWwgZm9yICIKLQkidHJpYWdpbmcgYW5kIGRlYnVnZ2lu ZyBoYW5ncy4iKTsKLSNlbmRpZgotCi1tb2R1bGVfcGFyYW1fbmFtZWRfdW5zYWZlKGVuYWJsZV9o YW5nY2hlY2ssIGk5MTUuZW5hYmxlX2hhbmdjaGVjaywgYm9vbCwgMDY0NCk7Ci1NT0RVTEVfUEFS TV9ERVNDKGVuYWJsZV9oYW5nY2hlY2ssCi0JIlBlcmlvZGljYWxseSBjaGVjayBHUFUgYWN0aXZp dHkgZm9yIGRldGVjdGluZyBoYW5ncy4gIgotCSJXQVJOSU5HOiBEaXNhYmxpbmcgdGhpcyBjYW4g Y2F1c2Ugc3lzdGVtIHdpZGUgaGFuZ3MuICIKLQkiKGRlZmF1bHQ6IHRydWUpIik7Ci0KLW1vZHVs ZV9wYXJhbV9uYW1lZF91bnNhZmUoZW5hYmxlX3BwZ3R0LCBpOTE1LmVuYWJsZV9wcGd0dCwgaW50 LCAwNDAwKTsKLU1PRFVMRV9QQVJNX0RFU0MoZW5hYmxlX3BwZ3R0LAotCSJPdmVycmlkZSBQUEdU VCB1c2FnZS4gIgotCSIoLTE9YXV0byBbZGVmYXVsdF0sIDA9ZGlzYWJsZWQsIDE9YWxpYXNpbmcs IDI9ZnVsbCwgMz1mdWxsIHdpdGggZXh0ZW5kZWQgYWRkcmVzcyBzcGFjZSkiKTsKLQotbW9kdWxl X3BhcmFtX25hbWVkX3Vuc2FmZShlbmFibGVfZXhlY2xpc3RzLCBpOTE1LmVuYWJsZV9leGVjbGlz dHMsIGludCwgMDQwMCk7Ci1NT0RVTEVfUEFSTV9ERVNDKGVuYWJsZV9leGVjbGlzdHMsCi0JIk92 ZXJyaWRlIGV4ZWNsaXN0cyB1c2FnZS4gIgotCSIoLTE9YXV0byBbZGVmYXVsdF0sIDA9ZGlzYWJs ZWQsIDE9ZW5hYmxlZCkiKTsKLQotbW9kdWxlX3BhcmFtX25hbWVkX3Vuc2FmZShlbmFibGVfcHNy LCBpOTE1LmVuYWJsZV9wc3IsIGludCwgMDYwMCk7Ci1NT0RVTEVfUEFSTV9ERVNDKGVuYWJsZV9w c3IsICJFbmFibGUgUFNSICIKLQkJICIoMD1kaXNhYmxlZCwgMT1lbmFibGVkIC0gbGluayBtb2Rl IGNob3NlbiBwZXItcGxhdGZvcm0sIDI9Zm9yY2UgbGluay1zdGFuZGJ5IG1vZGUsIDM9Zm9yY2Ug bGluay1vZmYgbW9kZSkgIgotCQkgIkRlZmF1bHQ6IC0xICh1c2UgcGVyLWNoaXAgZGVmYXVsdCki KTsKLQotbW9kdWxlX3BhcmFtX25hbWVkX3Vuc2FmZShhbHBoYV9zdXBwb3J0LCBpOTE1LmFscGhh X3N1cHBvcnQsIGJvb2wsIDA0MDApOwotTU9EVUxFX1BBUk1fREVTQyhhbHBoYV9zdXBwb3J0LAot CSJFbmFibGUgYWxwaGEgcXVhbGl0eSBkcml2ZXIgc3VwcG9ydCBmb3IgbGF0ZXN0IGhhcmR3YXJl LiAiCi0JIlNlZSBhbHNvIENPTkZJR19EUk1fSTkxNV9BTFBIQV9TVVBQT1JULiIpOwotCi1tb2R1 bGVfcGFyYW1fbmFtZWRfdW5zYWZlKGRpc2FibGVfcG93ZXJfd2VsbCwgaTkxNS5kaXNhYmxlX3Bv d2VyX3dlbGwsIGludCwgMDQwMCk7Ci1NT0RVTEVfUEFSTV9ERVNDKGRpc2FibGVfcG93ZXJfd2Vs bCwKLQkiRGlzYWJsZSBkaXNwbGF5IHBvd2VyIHdlbGxzIHdoZW4gcG9zc2libGUgIgotCSIoLTE9 YXV0byBbZGVmYXVsdF0sIDA9cG93ZXIgd2VsbHMgYWx3YXlzIG9uLCAxPXBvd2VyIHdlbGxzIGRp c2FibGVkIHdoZW4gcG9zc2libGUpIik7Ci0KLW1vZHVsZV9wYXJhbV9uYW1lZF91bnNhZmUoZW5h YmxlX2lwcywgaTkxNS5lbmFibGVfaXBzLCBpbnQsIDA2MDApOwotTU9EVUxFX1BBUk1fREVTQyhl bmFibGVfaXBzLCAiRW5hYmxlIElQUyAoZGVmYXVsdDogdHJ1ZSkiKTsKLQotbW9kdWxlX3BhcmFt X25hbWVkKGZhc3Rib290LCBpOTE1LmZhc3Rib290LCBib29sLCAwNjAwKTsKLU1PRFVMRV9QQVJN X0RFU0MoZmFzdGJvb3QsCi0JIlRyeSB0byBza2lwIHVubmVjZXNzYXJ5IG1vZGUgc2V0cyBhdCBi b290IHRpbWUgKGRlZmF1bHQ6IGZhbHNlKSIpOwotCi1tb2R1bGVfcGFyYW1fbmFtZWRfdW5zYWZl KHByZWZhdWx0X2Rpc2FibGUsIGk5MTUucHJlZmF1bHRfZGlzYWJsZSwgYm9vbCwgMDYwMCk7Ci1N T0RVTEVfUEFSTV9ERVNDKHByZWZhdWx0X2Rpc2FibGUsCi0JIkRpc2FibGUgcGFnZSBwcmVmYXVs dGluZyBmb3IgcHJlYWQvcHdyaXRlL3JlbG9jIChkZWZhdWx0OmZhbHNlKS4gIgotCSJGb3IgZGV2 ZWxvcGVycyBvbmx5LiIpOwotCi1tb2R1bGVfcGFyYW1fbmFtZWRfdW5zYWZlKGxvYWRfZGV0ZWN0 X3Rlc3QsIGk5MTUubG9hZF9kZXRlY3RfdGVzdCwgYm9vbCwgMDYwMCk7Ci1NT0RVTEVfUEFSTV9E RVNDKGxvYWRfZGV0ZWN0X3Rlc3QsCi0JIkZvcmNlLWVuYWJsZSB0aGUgVkdBIGxvYWQgZGV0ZWN0 IGNvZGUgZm9yIHRlc3RpbmcgKGRlZmF1bHQ6ZmFsc2UpLiAiCi0JIkZvciBkZXZlbG9wZXJzIG9u bHkuIik7Ci0KLW1vZHVsZV9wYXJhbV9uYW1lZF91bnNhZmUoZm9yY2VfcmVzZXRfbW9kZXNldF90 ZXN0LCBpOTE1LmZvcmNlX3Jlc2V0X21vZGVzZXRfdGVzdCwgYm9vbCwgMDYwMCk7Ci1NT0RVTEVf UEFSTV9ERVNDKGZvcmNlX3Jlc2V0X21vZGVzZXRfdGVzdCwKLQkiRm9yY2UgYSBtb2Rlc2V0IGR1 cmluZyBncHUgcmVzZXQgZm9yIHRlc3RpbmcgKGRlZmF1bHQ6ZmFsc2UpLiAiCi0JIkZvciBkZXZl bG9wZXJzIG9ubHkuIik7Ci0KLW1vZHVsZV9wYXJhbV9uYW1lZF91bnNhZmUoaW52ZXJ0X2JyaWdo dG5lc3MsIGk5MTUuaW52ZXJ0X2JyaWdodG5lc3MsIGludCwgMDYwMCk7Ci1NT0RVTEVfUEFSTV9E RVNDKGludmVydF9icmlnaHRuZXNzLAotCSJJbnZlcnQgYmFja2xpZ2h0IGJyaWdodG5lc3MgIgot CSIoLTEgZm9yY2Ugbm9ybWFsLCAwIG1hY2hpbmUgZGVmYXVsdHMsIDEgZm9yY2UgaW52ZXJzaW9u KSwgcGxlYXNlICIKLQkicmVwb3J0IFBDSSBkZXZpY2UgSUQsIHN1YnN5c3RlbSB2ZW5kb3IgYW5k IHN1YnN5c3RlbSBkZXZpY2UgSUQgIgotCSJ0byBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnLCBpZiB5b3VyIG1hY2hpbmUgbmVlZHMgaXQuICIKLQkiSXQgd2lsbCB0aGVuIGJlIGluY2x1 ZGVkIGluIGFuIHVwY29taW5nIG1vZHVsZSB2ZXJzaW9uLiIpOwotCi1tb2R1bGVfcGFyYW1fbmFt ZWQoZGlzYWJsZV9kaXNwbGF5LCBpOTE1LmRpc2FibGVfZGlzcGxheSwgYm9vbCwgMDQwMCk7Ci1N T0RVTEVfUEFSTV9ERVNDKGRpc2FibGVfZGlzcGxheSwgIkRpc2FibGUgZGlzcGxheSAoZGVmYXVs dDogZmFsc2UpIik7Ci0KLW1vZHVsZV9wYXJhbV9uYW1lZF91bnNhZmUoZW5hYmxlX2NtZF9wYXJz ZXIsIGk5MTUuZW5hYmxlX2NtZF9wYXJzZXIsIGJvb2wsIDA0MDApOwotTU9EVUxFX1BBUk1fREVT QyhlbmFibGVfY21kX3BhcnNlciwKLQkJICJFbmFibGUgY29tbWFuZCBwYXJzaW5nICh0cnVlPWVu YWJsZWQgW2RlZmF1bHRdLCBmYWxzZT1kaXNhYmxlZCkiKTsKLQotbW9kdWxlX3BhcmFtX25hbWVk X3Vuc2FmZSh1c2VfbW1pb19mbGlwLCBpOTE1LnVzZV9tbWlvX2ZsaXAsIGludCwgMDYwMCk7Ci1N T0RVTEVfUEFSTV9ERVNDKHVzZV9tbWlvX2ZsaXAsCi0JCSAidXNlIE1NSU8gZmxpcHMgKC0xPW5l dmVyLCAwPWRyaXZlciBkaXNjcmV0aW9uIFtkZWZhdWx0XSwgMT1hbHdheXMpIik7Ci0KLW1vZHVs ZV9wYXJhbV9uYW1lZChtbWlvX2RlYnVnLCBpOTE1Lm1taW9fZGVidWcsIGludCwgMDYwMCk7Ci1N T0RVTEVfUEFSTV9ERVNDKG1taW9fZGVidWcsCi0JIkVuYWJsZSB0aGUgTU1JTyBkZWJ1ZyBjb2Rl IGZvciB0aGUgZmlyc3QgTiBmYWlsdXJlcyAoZGVmYXVsdDogb2ZmKS4gIgotCSJUaGlzIG1heSBu ZWdhdGl2ZWx5IGFmZmVjdCBwZXJmb3JtYW5jZS4iKTsKLQotbW9kdWxlX3BhcmFtX25hbWVkKHZl cmJvc2Vfc3RhdGVfY2hlY2tzLCBpOTE1LnZlcmJvc2Vfc3RhdGVfY2hlY2tzLCBib29sLCAwNjAw KTsKLU1PRFVMRV9QQVJNX0RFU0ModmVyYm9zZV9zdGF0ZV9jaGVja3MsCi0JIkVuYWJsZSB2ZXJi b3NlIGxvZ3MgKGllLiBXQVJOX09OKCkpIGluIGNhc2Ugb2YgdW5leHBlY3RlZCBodyBzdGF0ZSBj b25kaXRpb25zLiIpOwotCi1tb2R1bGVfcGFyYW1fbmFtZWRfdW5zYWZlKG51Y2xlYXJfcGFnZWZs aXAsIGk5MTUubnVjbGVhcl9wYWdlZmxpcCwgYm9vbCwgMDQwMCk7Ci1NT0RVTEVfUEFSTV9ERVND KG51Y2xlYXJfcGFnZWZsaXAsCi0JCSAiRm9yY2UgZW5hYmxlIGF0b21pYyBmdW5jdGlvbmFsaXR5 IG9uIHBsYXRmb3JtcyB0aGF0IGRvbid0IGhhdmUgZnVsbCBzdXBwb3J0IHlldC4iKTsKLQotLyog V0EgdG8gZ2V0IGF3YXkgd2l0aCB0aGUgZGVmYXVsdCBzZXR0aW5nIGluIFZCVCBmb3IgZWFybHkg cGxhdGZvcm1zLldpbGwgYmUgcmVtb3ZlZCAqLwotbW9kdWxlX3BhcmFtX25hbWVkX3Vuc2FmZShl ZHBfdnN3aW5nLCBpOTE1LmVkcF92c3dpbmcsIGludCwgMDQwMCk7Ci1NT0RVTEVfUEFSTV9ERVND KGVkcF92c3dpbmcsCi0JCSAiSWdub3JlL092ZXJyaWRlIHZzd2luZyBwcmUtZW1waCB0YWJsZSBz ZWxlY3Rpb24gZnJvbSBWQlQgIgotCQkgIigwPXVzZSB2YWx1ZSBmcm9tIHZidCBbZGVmYXVsdF0s IDE9bG93IHBvd2VyIHN3aW5nKDIwMG1WKSwiCi0JCSAiMj1kZWZhdWx0IHN3aW5nKDQwMG1WKSki KTsKLQotbW9kdWxlX3BhcmFtX25hbWVkX3Vuc2FmZShlbmFibGVfZ3VjX2xvYWRpbmcsIGk5MTUu ZW5hYmxlX2d1Y19sb2FkaW5nLCBpbnQsIDA0MDApOwotTU9EVUxFX1BBUk1fREVTQyhlbmFibGVf Z3VjX2xvYWRpbmcsCi0JCSJFbmFibGUgR3VDIGZpcm13YXJlIGxvYWRpbmcgIgotCQkiKC0xPWF1 dG8sIDA9bmV2ZXIgW2RlZmF1bHRdLCAxPWlmIGF2YWlsYWJsZSwgMj1yZXF1aXJlZCkiKTsKLQot bW9kdWxlX3BhcmFtX25hbWVkX3Vuc2FmZShlbmFibGVfZ3VjX3N1Ym1pc3Npb24sIGk5MTUuZW5h YmxlX2d1Y19zdWJtaXNzaW9uLCBpbnQsIDA0MDApOwotTU9EVUxFX1BBUk1fREVTQyhlbmFibGVf Z3VjX3N1Ym1pc3Npb24sCi0JCSJFbmFibGUgR3VDIHN1Ym1pc3Npb24gIgotCQkiKC0xPWF1dG8s IDA9bmV2ZXIgW2RlZmF1bHRdLCAxPWlmIGF2YWlsYWJsZSwgMj1yZXF1aXJlZCkiKTsKLQotbW9k dWxlX3BhcmFtX25hbWVkKGd1Y19sb2dfbGV2ZWwsIGk5MTUuZ3VjX2xvZ19sZXZlbCwgaW50LCAw NDAwKTsKLU1PRFVMRV9QQVJNX0RFU0MoZ3VjX2xvZ19sZXZlbCwKLQkiR3VDIGZpcm13YXJlIGxv Z2dpbmcgbGV2ZWwgKC0xOmRpc2FibGVkIChkZWZhdWx0KSwgMC0zOmVuYWJsZWQpIik7Ci0KLW1v ZHVsZV9wYXJhbV9uYW1lZF91bnNhZmUoZ3VjX2Zpcm13YXJlX3BhdGgsIGk5MTUuZ3VjX2Zpcm13 YXJlX3BhdGgsIGNoYXJwLCAwNDAwKTsKLU1PRFVMRV9QQVJNX0RFU0MoZ3VjX2Zpcm13YXJlX3Bh dGgsCi0JIkd1QyBmaXJtd2FyZSBwYXRoIHRvIHVzZSBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IG9u ZSIpOwotCi1tb2R1bGVfcGFyYW1fbmFtZWRfdW5zYWZlKGh1Y19maXJtd2FyZV9wYXRoLCBpOTE1 Lmh1Y19maXJtd2FyZV9wYXRoLCBjaGFycCwgMDQwMCk7Ci1NT0RVTEVfUEFSTV9ERVNDKGh1Y19m aXJtd2FyZV9wYXRoLAotCSJIdUMgZmlybXdhcmUgcGF0aCB0byB1c2UgaW5zdGVhZCBvZiB0aGUg ZGVmYXVsdCBvbmUiKTsKLQotbW9kdWxlX3BhcmFtX25hbWVkX3Vuc2FmZShlbmFibGVfZHBfbXN0 LCBpOTE1LmVuYWJsZV9kcF9tc3QsIGJvb2wsIDA2MDApOwotTU9EVUxFX1BBUk1fREVTQyhlbmFi bGVfZHBfbXN0LAotCSJFbmFibGUgbXVsdGktc3RyZWFtIHRyYW5zcG9ydCAoTVNUKSBmb3IgbmV3 IERpc3BsYXlQb3J0IHNpbmtzLiAoZGVmYXVsdDogdHJ1ZSkiKTsKLW1vZHVsZV9wYXJhbV9uYW1l ZF91bnNhZmUoaW5qZWN0X2xvYWRfZmFpbHVyZSwgaTkxNS5pbmplY3RfbG9hZF9mYWlsdXJlLCB1 aW50LCAwNDAwKTsKLU1PRFVMRV9QQVJNX0RFU0MoaW5qZWN0X2xvYWRfZmFpbHVyZSwKLQkiRm9y Y2UgYW4gZXJyb3IgYWZ0ZXIgYSBudW1iZXIgb2YgZmFpbHVyZSBjaGVjayBwb2ludHMgKDA6ZGlz YWJsZWQgKGRlZmF1bHQpLCBOOmZvcmNlIGZhaWx1cmUgYXQgdGhlIE50aCBmYWlsdXJlIGNoZWNr IHBvaW50KSIpOwotbW9kdWxlX3BhcmFtX25hbWVkKGVuYWJsZV9kcGNkX2JhY2tsaWdodCwgaTkx NS5lbmFibGVfZHBjZF9iYWNrbGlnaHQsIGJvb2wsIDA2MDApOwotTU9EVUxFX1BBUk1fREVTQyhl bmFibGVfZHBjZF9iYWNrbGlnaHQsCi0JIkVuYWJsZSBzdXBwb3J0IGZvciBEUENEIGJhY2tsaWdo dCBjb250cm9sIChkZWZhdWx0OmZhbHNlKSIpOwotCi1tb2R1bGVfcGFyYW1fbmFtZWQoZW5hYmxl X2d2dCwgaTkxNS5lbmFibGVfZ3Z0LCBib29sLCAwNDAwKTsKLU1PRFVMRV9QQVJNX0RFU0MoZW5h YmxlX2d2dCwKLQkiRW5hYmxlIHN1cHBvcnQgZm9yIEludGVsIEdWVC1nIGdyYXBoaWNzIHZpcnR1 YWxpemF0aW9uIGhvc3Qgc3VwcG9ydChkZWZhdWx0OmZhbHNlKSIpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcGFyYW1zLmgKaW5kZXggMzQxNDhjYy4uZDIwYmI1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3BhcmFtcy5oCkBAIC0yNyw1NSArMjcsMTUyIEBACiAKICNpbmNsdWRlIDxsaW51eC9jYWNoZS5o PiAvKiBmb3IgX19yZWFkX21vc3RseSAqLwogCi0jZGVmaW5lIEk5MTVfUEFSQU1TX0ZPUl9FQUNI KGZ1bmMpIFwKLQlmdW5jKGludCwgbW9kZXNldCk7IFwKLQlmdW5jKGludCwgcGFuZWxfaWdub3Jl X2xpZCk7IFwKLQlmdW5jKGludCwgc2VtYXBob3Jlcyk7IFwKLQlmdW5jKGludCwgbHZkc19jaGFu bmVsX21vZGUpOyBcCi0JZnVuYyhpbnQsIHBhbmVsX3VzZV9zc2MpOyBcCi0JZnVuYyhpbnQsIHZi dF9zZHZvX3BhbmVsX3R5cGUpOyBcCi0JZnVuYyhpbnQsIGVuYWJsZV9yYzYpOyBcCi0JZnVuYyhp bnQsIGVuYWJsZV9kYyk7IFwKLQlmdW5jKGludCwgZW5hYmxlX2ZiYyk7IFwKLQlmdW5jKGludCwg ZW5hYmxlX3BwZ3R0KTsgXAotCWZ1bmMoaW50LCBlbmFibGVfZXhlY2xpc3RzKTsgXAotCWZ1bmMo aW50LCBlbmFibGVfcHNyKTsgXAotCWZ1bmMoaW50LCBkaXNhYmxlX3Bvd2VyX3dlbGwpOyBcCi0J ZnVuYyhpbnQsIGVuYWJsZV9pcHMpOyBcCi0JZnVuYyhpbnQsIGludmVydF9icmlnaHRuZXNzKTsg XAotCWZ1bmMoaW50LCBlbmFibGVfZ3VjX2xvYWRpbmcpOyBcCi0JZnVuYyhpbnQsIGVuYWJsZV9n dWNfc3VibWlzc2lvbik7IFwKLQlmdW5jKGludCwgZ3VjX2xvZ19sZXZlbCk7IFwKLQlmdW5jKGNo YXIgKiwgZ3VjX2Zpcm13YXJlX3BhdGgpOyBcCi0JZnVuYyhjaGFyICosIGh1Y19maXJtd2FyZV9w YXRoKTsgXAotCWZ1bmMoaW50LCB1c2VfbW1pb19mbGlwKTsgXAotCWZ1bmMoaW50LCBtbWlvX2Rl YnVnKTsgXAotCWZ1bmMoaW50LCBlZHBfdnN3aW5nKTsgXAotCWZ1bmModW5zaWduZWQgaW50LCBp bmplY3RfbG9hZF9mYWlsdXJlKTsgXAorLyoKKyAqIEVhY2ggaTkxNSBwYXJhbXMgaXMgZGVmaW5l ZCBhcyBzaW5nbGUgJ2Z1bmMnIGVudHJ5OgorICoJZnVuYyhUeXBlLCBOYW1lLCBWYWx1ZSwgTW9k ZSwgVW5zYWZlLCBCcmllZiwgRGV0YWlsZWQpCisgKiB3aGVyZToKKyAqCUBUeXBlOiBpbnR8dWlu dHxib29sfGNoYXJwCisgKglATmFtZTogdGhlIG5hbWUgb2YgcGFyYW0KKyAqCUBWYWx1ZTogdGhl IGRlZmF1bHQgdmFsdWUgb2YgdGhlIHBhcmFtCisgKglATW9kZTogdGhlIGFjY2VzcyBtb2RlICh1 c3VhbGx5IDA2MDB8MDQwMCkKKyAqCUBVbnNhZmU6IG11c3QgYmUgZWl0aGVyIGVtcHR5IG9yIF91 bnNhZmUKKyAqCUBCcmllZjogc2hvcnQgZGVzY3JpcHRpb24gdGV4dCBvZiB0aGUgcGFyYW0KKyAq CUBEZXRhaWxlZDogbW9yZSBkZXRhaWxlZCBkZXNjcmlwdGlvbiBvZiB0aGUgcGFyYW0gKG1heSBi ZSBlbXB0eSkKKyAqLworI2RlZmluZSBfSTkxNV9QQVJBTVNfRk9SX0VBQ0hfQkFTRShmdW5jKSBc CisJZnVuYyhpbnQsIG1vZGVzZXQsIC0xLCAwNDAwLCAsIFwKKwkgICAgICJVc2Uga2VybmVsIG1v ZGVzZXR0aW5nIChLTVMpLiIsIFwKKwkgICAgICIoMD1kaXNhYmxlLCAxPW9uLCAtMT1mb3JjZSB2 Z2EgY29uc29sZSBwcmVmZXJlbmNlKSIpIFwKKwlmdW5jKGludCwgcGFuZWxfaWdub3JlX2xpZCwg MSwgMDYwMCwgX3Vuc2FmZSwgXAorCSAgICAgIk92ZXJyaWRlIGxpZCBzdGF0dXMuIiwgXAorCSAg ICAgIigwPWF1dG9kZXRlY3QsIDE9YXV0b2RldGVjdCBkaXNhYmxlZCwgLTE9Zm9yY2UgbGlkIGNs b3NlZCwgLTI9Zm9yY2UgbGlkIG9wZW4pIikgXAorCWZ1bmMoaW50LCBzZW1hcGhvcmVzLCAtMSwg MDQwMCwgX3Vuc2FmZSwgXAorCSAgICAgIlVzZSBzZW1hcGhvcmVzIGZvciBpbnRlci1yaW5nIHN5 bmMuIiwgXAorCSAgICAgIigtMT11c2UgcGVyLWNoaXAgZGVmYXVsdHMpIikgXAorCWZ1bmMoaW50 LCBsdmRzX2NoYW5uZWxfbW9kZSwgMCwgMDQwMCwgX3Vuc2FmZSwgXAorCSAgICAgIlNwZWNpZnkg TFZEUyBjaGFubmVsIG1vZGUuIiwgXAorCSAgICAgIigwPXByb2JlIEJJT1MsIDE9c2luZ2xlLWNo YW5uZWwsIDI9ZHVhbC1jaGFubmVsKSIpIFwKKwlmdW5jKGludCwgcGFuZWxfdXNlX3NzYywgLTEs IDA2MDAsIF91bnNhZmUsIFwKKwkgICAgICJVc2UgU3ByZWFkIFNwZWN0cnVtIENsb2NrIHdpdGgg cGFuZWxzIFtMVkRTL2VEUF0uIiwgXAorCSAgICAgIigtMT1hdXRvIGZyb20gVkJUKSIpIFwKKwlm dW5jKGludCwgdmJ0X3Nkdm9fcGFuZWxfdHlwZSwgLTEsIDA0MDAsIF91bnNhZmUsIFwKKwkgICAg ICJPdmVycmlkZS9JZ25vcmUgc2VsZWN0aW9uIG9mIFNEVk8gcGFuZWwgbW9kZSBpbiB0aGUgVkJU LiIsIFwKKwkgICAgICIoLTI9aWdub3JlLCAtMT1hdXRvLCAwLi5uPWluZGV4IGluIFZCVCBCSU9T IHRhYmxlKSIpIFwKKwlmdW5jKGludCwgZW5hYmxlX3JjNiwgLTEsIDA0MDAsIF91bnNhZmUsIFwK KwkgICAgICJFbmFibGUgcG93ZXItc2F2aW5nIHJlbmRlciBDLXN0YXRlIDYuIiwgXAorCSAgICAg IigtMT11c2UgcGVyLWNoaXAgZGVmYXVsdDsgMCA9IGRpc2FibGU7IDEgPSBlbmFibGUgcmM2OyAy ID0gZW5hYmxlIGRlZXAgcmM2OyA0ID0gZW5hYmxlIGRlZXBlc3QgcmM2KSIgXAorCSAgICAgIkRp ZmZlcmVudCBzdGFnZXMgY2FuIGJlIHNlbGVjdGVkIHZpYSBiaXRtYXNrIHZhbHVlcy4gIiBcCisJ ICAgICAiRm9yIGV4YW1wbGUsIDMgd291bGQgZW5hYmxlIHJjNiBhbmQgZGVlcCByYzYsIGFuZCA3 IHdvdWxkIGVuYWJsZSBldmVyeXRoaW5nLiAiKSBcCisJZnVuYyhpbnQsIGVuYWJsZV9kYywgLTEs IDA0MDAsIF91bnNhZmUsIFwKKwkgICAgICJFbmFibGUgcG93ZXItc2F2aW5nIGRpc3BsYXkgQy1z dGF0ZXMuIiwgXAorCSAgICAgIigtMT1hdXRvOyAwPWRpc2FibGU7IDE9dXAgdG8gREM1OyAyPXVw IHRvIERDNikiKSBcCisJZnVuYyhpbnQsIGVuYWJsZV9mYmMsIC0xLCAwNjAwLCBfdW5zYWZlLCBc CisJICAgICAiRW5hYmxlIGZyYW1lIGJ1ZmZlciBjb21wcmVzc2lvbiBmb3IgcG93ZXIgc2F2aW5n cy4iLCBcCisJICAgICAiKC0xPXVzZSBwZXItY2hpcCBkZWZhdWx0KSIpIFwKKwlmdW5jKGludCwg ZW5hYmxlX3BwZ3R0LCAtMSwgMDQwMCwgX3Vuc2FmZSwgXAorCSAgICAgIk92ZXJyaWRlIFBQR1RU IHVzYWdlLiIsIFwKKwkgICAgICIoLTE9YXV0bywgMD1kaXNhYmxlZCwgMT1hbGlhc2luZywgMj1m dWxsLCAzPWZ1bGwgd2l0aCBleHRlbmRlZCBhZGRyZXNzIHNwYWNlKSIpIFwKKwlmdW5jKGludCwg ZW5hYmxlX2V4ZWNsaXN0cywgLTEsIDA0MDAsIF91bnNhZmUsIFwKKwkgICAgICJPdmVycmlkZSBl eGVjbGlzdHMgdXNhZ2UuIiwgXAorCSAgICAgIigtMT1hdXRvLCAwPWRpc2FibGVkLCAxPWVuYWJs ZWQpIikgXAorCWZ1bmMoaW50LCBlbmFibGVfcHNyLCAtMSwgMDYwMCwgX3Vuc2FmZSwgXAorCSAg ICAgIkVuYWJsZSBQU1IuIiwgXAorCSAgICAgIigtMT11c2UgcGVyLWNoaXAgZGVmYXVsdCwgMD1k aXNhYmxlZCwiIFwKKwkgICAgICIxPWxpbmsgbW9kZSBjaG9zZW4gcGVyLXBsYXRmb3JtLCAiIFwK KwkgICAgICIyPWZvcmNlIGxpbmstc3RhbmRieSBtb2RlLCAiIFwKKwkgICAgICIzPWZvcmNlIGxp bmstb2ZmIG1vZGUpIikgXAorCWZ1bmMoaW50LCBkaXNhYmxlX3Bvd2VyX3dlbGwsIC0xLCAwNDAw LCBfdW5zYWZlLCBcCisJICAgICAiRGlzYWJsZSBkaXNwbGF5IHBvd2VyIHdlbGxzIHdoZW4gcG9z c2libGUuIiwgXAorCSAgICAgIigtMT1hdXRvLCAwPXBvd2VyIHdlbGxzIGFsd2F5cyBvbiwgMT1w b3dlciB3ZWxscyBkaXNhYmxlZCB3aGVuIHBvc3NpYmxlKSIpIFwKKwlmdW5jKGludCwgZW5hYmxl X2lwcywgMSwgMDYwMCwgX3Vuc2FmZSwgXAorCSAgICAgIkVuYWJsZSBJUFMuIiwgKSBcCisJZnVu YyhpbnQsIGludmVydF9icmlnaHRuZXNzLCAwLCAwNjAwLCBfdW5zYWZlLCBcCisJICAgICAiSW52 ZXJ0IGJhY2tsaWdodCBicmlnaHRuZXNzLiIsIFwKKwkgICAgICJQbGVhc2UgcmVwb3J0IFBDSSBk ZXZpY2UgSUQsIHN1YnN5c3RlbSB2ZW5kb3IgYW5kIHN1YnN5c3RlbSAiIFwKKwkgICAgICJkZXZp Y2UgSUQgdG8gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZywgaWYgeW91ciBtYWNoaW5l ICIgXAorCSAgICAgIm5lZWRzIGl0LiBJdCB3aWxsIHRoZW4gYmUgaW5jbHVkZWQgaW4gYW4gdXBj b21pbmcgbW9kdWxlIHZlcnNpb24uICIgXAorCSAgICAgIigtMT1mb3JjZSBub3JtYWwsIDA9bWFj aGluZSBkZWZhdWx0cywgMT1mb3JjZSBpbnZlcnNpb24pIikgXAorCWZ1bmMoaW50LCBlbmFibGVf Z3VjX2xvYWRpbmcsIDAsIDA0MDAsIF91bnNhZmUsIFwKKwkgICAgICJFbmFibGUgR3VDIGZpcm13 YXJlIGxvYWRpbmcuIiwgXAorCSAgICAgIigtMT1hdXRvLCAwPW5ldmVyLCAxPWlmIGF2YWlsYWJs ZSwgMj1yZXF1aXJlZCkiKSBcCisJZnVuYyhpbnQsIGVuYWJsZV9ndWNfc3VibWlzc2lvbiwgMCwg MDQwMCwgX3Vuc2FmZSwgXAorCSAgICAgIkVuYWJsZSBHdUMgc3VibWlzc2lvbi4iLCBcCisJICAg ICAiKC0xPWF1dG8sIDA9bmV2ZXIsIDE9aWYgYXZhaWxhYmxlLCAyPXJlcXVpcmVkKSIpIFwKKwlm dW5jKGludCwgZ3VjX2xvZ19sZXZlbCwgLTEsIDA0MDAsIF91bnNhZmUsIFwKKwkgICAgICJHdUMg ZmlybXdhcmUgbG9nZ2luZyBsZXZlbC4iLCBcCisJICAgICAiKC0xOmRpc2FibGVkLCAwLTM6ZW5h YmxlZCkiKSBcCisJZnVuYyhjaGFycCwgZ3VjX2Zpcm13YXJlX3BhdGgsIE5VTEwsIDA0MDAsIF91 bnNhZmUsIFwKKwkgICAgICJHdUMgZmlybXdhcmUgcGF0aCB0byB1c2UgaW5zdGVhZCBvZiB0aGUg ZGVmYXVsdCBvbmUuIiwgKSBcCisJZnVuYyhjaGFycCwgaHVjX2Zpcm13YXJlX3BhdGgsIE5VTEws IDA0MDAsIF91bnNhZmUsIFwKKwkgICAgICJIdUMgZmlybXdhcmUgcGF0aCB0byB1c2UgaW5zdGVh ZCBvZiB0aGUgZGVmYXVsdCBvbmUuIiwgKSBcCisJZnVuYyhpbnQsIHVzZV9tbWlvX2ZsaXAsIDAs IDA2MDAsIF91bnNhZmUsIFwKKwkgICAgICJVc2UgTU1JTyBmbGlwcy4iLCBcCisJICAgICAiKC0x PW5ldmVyLCAwPWRyaXZlciBkaXNjcmV0aW9uLCAxPWFsd2F5cykiKSBcCisJZnVuYyhpbnQsIG1t aW9fZGVidWcsIDAsIDA2MDAsICwgXAorCSAgICAgIkVuYWJsZSB0aGUgTU1JTyBkZWJ1ZyBjb2Rl IGZvciB0aGUgZmlyc3QgTiBmYWlsdXJlcy4iLCBcCisJICAgICAiVGhpcyBtYXkgbmVnYXRpdmVs eSBhZmZlY3QgcGVyZm9ybWFuY2UuICIpIFwKKwlmdW5jKGludCwgZWRwX3Zzd2luZywgMCwgMDQw MCwgX3Vuc2FmZSwgXAorCSAgICAgIklnbm9yZS9PdmVycmlkZSB2c3dpbmcgcHJlLWVtcGggdGFi bGUgc2VsZWN0aW9uIGZyb20gVkJULiIsIFwKKwkgICAgICIoMD11c2UgdmFsdWUgZnJvbSBWQlQs IDE9bG93IHBvd2VyIHN3aW5nKDIwMG1WKSwgMj1kZWZhdWx0IHN3aW5nKDQwMG1WKSkiKSBcCisJ ZnVuYyh1aW50LCBpbmplY3RfbG9hZF9mYWlsdXJlLCAwLCAwNDAwLCBfdW5zYWZlLCBcCisJICAg ICAiRm9yIGRldmVsb3BlcnMgb25seTogRm9yY2UgYW4gZXJyb3IgYWZ0ZXIgYSBudW1iZXIgb2Yg ZmFpbHVyZSBjaGVjayBwb2ludHMuIiwgXAorCSAgICAgIigwOmRpc2FibGVkLCBOOmZvcmNlIGZh aWx1cmUgYXQgdGhlIE50aCBmYWlsdXJlIGNoZWNrIHBvaW50KSIpIFwKIAkvKiBsZWF2ZSBib29s cyBhdCB0aGUgZW5kIHRvIG5vdCBjcmVhdGUgaG9sZXMgKi8gXAotCWZ1bmMoYm9vbCwgYWxwaGFf c3VwcG9ydCk7IFwKLQlmdW5jKGJvb2wsIGVuYWJsZV9jbWRfcGFyc2VyKTsgXAotCWZ1bmMoYm9v bCwgZW5hYmxlX2hhbmdjaGVjayk7IFwKLQlmdW5jKGJvb2wsIGZhc3Rib290KTsgXAotCWZ1bmMo Ym9vbCwgcHJlZmF1bHRfZGlzYWJsZSk7IFwKLQlmdW5jKGJvb2wsIGxvYWRfZGV0ZWN0X3Rlc3Qp OyBcCi0JZnVuYyhib29sLCBmb3JjZV9yZXNldF9tb2Rlc2V0X3Rlc3QpOyBcCi0JZnVuYyhib29s LCByZXNldCk7IFwKLQlmdW5jKGJvb2wsIGVycm9yX2NhcHR1cmUpOyBcCi0JZnVuYyhib29sLCBk aXNhYmxlX2Rpc3BsYXkpOyBcCi0JZnVuYyhib29sLCB2ZXJib3NlX3N0YXRlX2NoZWNrcyk7IFwK LQlmdW5jKGJvb2wsIG51Y2xlYXJfcGFnZWZsaXApOyBcCi0JZnVuYyhib29sLCBlbmFibGVfZHBf bXN0KTsgXAotCWZ1bmMoYm9vbCwgZW5hYmxlX2RwY2RfYmFja2xpZ2h0KTsgXAotCWZ1bmMoYm9v bCwgZW5hYmxlX2d2dCkKKwlmdW5jKGJvb2wsIGFscGhhX3N1cHBvcnQsIElTX0VOQUJMRUQoQ09O RklHX0RSTV9JOTE1X0FMUEhBX1NVUFBPUlQpLCAwNDAwLCBfdW5zYWZlLCBcCisJICAgICAiRW5h YmxlIGFscGhhIHF1YWxpdHkgZHJpdmVyIHN1cHBvcnQgZm9yIGxhdGVzdCBoYXJkd2FyZS4iLCBc CisJICAgICAiU2VlIGFsc28gQ09ORklHX0RSTV9JOTE1X0FMUEhBX1NVUFBPUlQuICIgKSBcCisJ ZnVuYyhib29sLCBlbmFibGVfY21kX3BhcnNlciwgdHJ1ZSwgMDQwMCwgX3Vuc2FmZSwgXAorCSAg ICAgIkVuYWJsZSBjb21tYW5kIHBhcnNpbmcuIiwgXAorCSAgICAgIih0cnVlPWVuYWJsZWQsIGZh bHNlPWRpc2FibGVkKSIpIFwKKwlmdW5jKGJvb2wsIGVuYWJsZV9oYW5nY2hlY2ssIHRydWUsIDA2 NDQsIF91bnNhZmUsIFwKKwkgICAgICJQZXJpb2RpY2FsbHkgY2hlY2sgR1BVIGFjdGl2aXR5IGZv ciBkZXRlY3RpbmcgaGFuZ3MuIiwgXAorCSAgICAgIldBUk5JTkc6IERpc2FibGluZyB0aGlzIGNh biBjYXVzZSBzeXN0ZW0gd2lkZSBoYW5ncyEgIikgXAorCWZ1bmMoYm9vbCwgZmFzdGJvb3QsIGZh bHNlLCAwNjAwLCAsIFwKKwkgICAgICJUcnkgdG8gc2tpcCB1bm5lY2Vzc2FyeSBtb2RlIHNldHMg YXQgYm9vdCB0aW1lLiIsICkgXAorCWZ1bmMoYm9vbCwgcHJlZmF1bHRfZGlzYWJsZSwgZmFsc2Us IDA2MDAsIF91bnNhZmUsIFwKKwkgICAgICJGb3IgZGV2ZWxvcGVycyBvbmx5OiBEaXNhYmxlIHBh Z2UgcHJlZmF1bHRpbmcgZm9yIHByZWFkL3B3cml0ZS9yZWxvYy4iLCApIFwKKwlmdW5jKGJvb2ws IGxvYWRfZGV0ZWN0X3Rlc3QsIGZhbHNlLCAwNjAwLCBfdW5zYWZlLCBcCisJICAgICAiRm9yIGRl dmVsb3BlcnMgb25seTogRm9yY2UtZW5hYmxlIHRoZSBWR0EgbG9hZCBkZXRlY3QgY29kZSBmb3Ig dGVzdGluZy4iLCApIFwKKwlmdW5jKGJvb2wsIGZvcmNlX3Jlc2V0X21vZGVzZXRfdGVzdCwgZmFs c2UsIDA2MDAsIF91bnNhZmUsIFwKKwkgICAgICJGb3IgZGV2ZWxvcGVycyBvbmx5OiBGb3JjZSBh IG1vZGVzZXQgZHVyaW5nIGdwdSByZXNldCBmb3IgdGVzdGluZy4iLCApIFwKKwlmdW5jKGJvb2ws IHJlc2V0LCB0cnVlLCAwNjAwLCBfdW5zYWZlLCBcCisJICAgICAiQXR0ZW1wdCBHUFUgcmVzZXRz LiIsICkgXAorCWZ1bmMoYm9vbCwgZGlzYWJsZV9kaXNwbGF5LCBmYWxzZSwgMDQwMCwgLCBcCisJ ICAgICAiRGlzYWJsZSBkaXNwbGF5LiIsICkgXAorCWZ1bmMoYm9vbCwgdmVyYm9zZV9zdGF0ZV9j aGVja3MsIHRydWUsIDA2MDAsICwgXAorCSAgICAgIkVuYWJsZSB2ZXJib3NlIGxvZ3MgKGllLiBX QVJOX09OKCkpIGluIGNhc2Ugb2YgdW5leHBlY3RlZCBIVyBzdGF0ZSBjb25kaXRpb25zLiIsICkg XAorCWZ1bmMoYm9vbCwgbnVjbGVhcl9wYWdlZmxpcCwgZmFsc2UsIDA0MDAsIF91bnNhZmUsIFwK KwkgICAgICJGb3JjZSBlbmFibGUgYXRvbWljIGZ1bmN0aW9uYWxpdHkgb24gcGxhdGZvcm1zIHRo YXQgZG9uJ3QgaGF2ZSBmdWxsIHN1cHBvcnQgeWV0LiIsICkgXAorCWZ1bmMoYm9vbCwgZW5hYmxl X2RwX21zdCwgdHJ1ZSwgMDYwMCwgX3Vuc2FmZSwgXAorCSAgICAgIkVuYWJsZSBtdWx0aS1zdHJl YW0gdHJhbnNwb3J0IChNU1QpIGZvciBuZXcgRGlzcGxheVBvcnQgc2lua3MuIiwgKSBcCisJZnVu Yyhib29sLCBlbmFibGVfZHBjZF9iYWNrbGlnaHQsIGZhbHNlLCAwNjAwLCAsIFwKKwkgICAgICJF bmFibGUgc3VwcG9ydCBmb3IgRFBDRCBiYWNrbGlnaHQgY29udHJvbC4iLCApIFwKKwlmdW5jKGJv b2wsIGVuYWJsZV9ndnQsIGZhbHNlLCAwNDAwLCAsIFwKKwkgICAgICJFbmFibGUgc3VwcG9ydCBm b3IgSW50ZWwgR1ZULWcgZ3JhcGhpY3MgdmlydHVhbGl6YXRpb24gaG9zdCBzdXBwb3J0LiIsICkg XAorCS8qIGNvbnN1bWUgXCAqLworCisjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfQ0FQ VFVSRV9FUlJPUikKKyNkZWZpbmUgX0k5MTVfUEFSQU1TX0ZPUl9FQUNIX0NPTkZJR19FUlJPUihm dW5jKSBcCisJZnVuYyhib29sLCBlcnJvcl9jYXB0dXJlLCB0cnVlLCAwNjAwLCAsIFwKKwkgICAg ICJSZWNvcmQgdGhlIEdQVSBzdGF0ZSBmb2xsb3dpbmcgYSBoYW5nLiIsIFwKKwkgICAgICJUaGlz IGluZm9ybWF0aW9uIGluIC9zeXMvY2xhc3MvZHJtL2NhcmQ8Tj4vZXJyb3IgaXMgdml0YWwgZm9y IHRyaWFnaW5nIGFuZCBkZWJ1Z2dpbmcgaGFuZ3MuICIpCisjZWxzZQorI2RlZmluZSBfSTkxNV9Q QVJBTVNfRk9SX0VBQ0hfQ09ORklHX0VSUk9SKGZ1bmMpCisjZW5kaWYKKworI2RlZmluZSBJOTE1 X1BBUkFNU19GT1JfRUFDSChmdW5jKSBcCisJX0k5MTVfUEFSQU1TX0ZPUl9FQUNIX0JBU0UoZnVu YykgXAorCV9JOTE1X1BBUkFNU19GT1JfRUFDSF9DT05GSUdfRVJST1IoZnVuYykgXAorCS8qIGNv bnN1bWUgXCAqLwogCi0jZGVmaW5lIE1FTUJFUihULCBtZW1iZXIpIFQgbWVtYmVyCisjZGVmaW5l IGNoYXJwIGNoYXIqCisjZGVmaW5lIE1FTUJFUihUeXBlLCBOYW1lLCBWYWx1ZSwgTW9kZSwgVW5z YWZlLCBCcmllZiwgRGV0YWlsZWQpIFR5cGUgTmFtZTsKIHN0cnVjdCBpOTE1X3BhcmFtcyB7Ci0J STkxNV9QQVJBTVNfRk9SX0VBQ0goTUVNQkVSKTsKKwlJOTE1X1BBUkFNU19GT1JfRUFDSChNRU1C RVIpCiB9OwogI3VuZGVmIE1FTUJFUgorI3VuZGVmIGNoYXJwCiAKIGV4dGVybiBzdHJ1Y3QgaTkx NV9wYXJhbXMgaTkxNSBfX3JlYWRfbW9zdGx5OwogCiAjZW5kaWYKLQotLSAKMi43LjQKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=