From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Tvrtko Ursulin Date: Thu, 13 Dec 2018 12:06:35 +0000 Message-Id: <20181213120636.20292-4-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20181213120636.20292-1-tvrtko.ursulin@linux.intel.com> References: <20181213120636.20292-1-tvrtko.ursulin@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 3/4] tests/gem_media_vme: Simple test to exercise the VME block List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Tony Ye , Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin List-ID: RnJvbTogVG9ueSBZZSA8dG9ueS55ZUBpbnRlbC5jb20+CgpTaW1wbGUgdGVzdCB3aGljaCBleGVy Y2lzZXMgdGhlIFZNRSBmaXhlZCBmdW5jdGlvbiBibG9jay4KCnYyOiAoVHZydGtvIFVyc3VsaW4p CiAqIFNtYWxsIGNsZWFudXBzIGxpa2UgY29weXJpZ2h0IGRhdGUsIHRhYnMsIHJlbW92ZSB1bnVz ZWQgYml0cy4KCnYzOiAoVG9ueSBZZSkKICogQWRkZWQgY3VyYmUgZGF0YSBlbnRyeSBmb3IgZHN0 IHN1cmZhY2UuCiAqIFJlYWQgdGhlIGRzdCBzdXJmYWNlIGFmdGVyIHRoZSBWTUUga2VybmVsIGJl aW5nIGV4ZWN1dGVkLgoKdjQ6IChUb255IFllKQogKiBBZGRlZCB0aGUgbWVkaWFfdm1lLmd4YSBr ZXJuZWwgc291cmNlIGNvZGUgYW5kIGNvbXBpbGUgaW5zdHJ1Y3Rpb25zLgoKdjU6IChUdnJ0a28g VXJzdWxpbikKICogQWRkZWQgaGFuZyBkZXRlY3Rvci4KClNpZ25lZC1vZmYtYnk6IFRvbnkgWWUg PHRvbnkueWVAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtv LnVyc3VsaW5AaW50ZWwuY29tPgpDYzogVG9ueSBZZSA8dG9ueS55ZUBpbnRlbC5jb20+Ci0tLQog bGliL2dwdV9jbWRzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEzNiArKysrKysr KysrKysrKysrKysrKwogbGliL2dwdV9jbWRzLmggICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyMCArKy0KIGxpYi9pOTE1L3NoYWRlcnMvbWVkaWEvUkVBRE1FX21lZGlhX3ZtZS50eHQg fCAgNjUgKysrKysrKysrKwogbGliL2k5MTUvc2hhZGVycy9tZWRpYS9tZWRpYV92bWUuZ3hhICAg ICAgICB8ICA1MSArKysrKysrKwogbGliL2ludGVsX2JhdGNoYnVmZmVyLmMgICAgICAgICAgICAg ICAgICAgICB8ICAgOSArKwogbGliL2ludGVsX2JhdGNoYnVmZmVyLmggICAgICAgICAgICAgICAg ICAgICB8ICAgNyArCiBsaWIvbWVkaWFfZmlsbC5jICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgMTEwICsrKysrKysrKysrKysrKysKIGxpYi9tZWRpYV9maWxsLmggICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDYgKwogbGliL3N1cmZhY2Vmb3JtYXQuaCAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMiArCiB0ZXN0cy9NYWtlZmlsZS5zb3VyY2VzICAgICAgICAgICAgICAgICAg ICAgIHwgICAzICsKIHRlc3RzL2k5MTUvZ2VtX21lZGlhX3ZtZS5jICAgICAgICAgICAgICAgICAg fCAxMTggKysrKysrKysrKysrKysrKysKIHRlc3RzL21lc29uLmJ1aWxkICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDEgKwogMTIgZmlsZXMgY2hhbmdlZCwgNTI2IGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA3NTUgbGliL2k5MTUvc2hhZGVycy9tZWRp YS9SRUFETUVfbWVkaWFfdm1lLnR4dAogY3JlYXRlIG1vZGUgMTAwNzU1IGxpYi9pOTE1L3NoYWRl cnMvbWVkaWEvbWVkaWFfdm1lLmd4YQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2k5MTUvZ2Vt X21lZGlhX3ZtZS5jCgpkaWZmIC0tZ2l0IGEvbGliL2dwdV9jbWRzLmMgYi9saWIvZ3B1X2NtZHMu YwppbmRleCA1NTZhOTRjNmYwYjYuLmI0OTBhNjNiZGZlZiAxMDA2NDQKLS0tIGEvbGliL2dwdV9j bWRzLmMKKysrIGIvbGliL2dwdV9jbWRzLmMKQEAgLTUyLDYgKzUyLDIyIEBAIGdlbjdfZmlsbF9j dXJiZV9idWZmZXJfZGF0YShzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCXJldHVy biBvZmZzZXQ7CiB9CiAKK3VpbnQzMl90CitnZW4xMV9maWxsX2N1cmJlX2J1ZmZlcl9kYXRhKHN0 cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gpCit7CisJdWludDMyX3QgKmN1cmJlX2J1ZmZl cjsKKwl1aW50MzJfdCBvZmZzZXQ7CisKKwljdXJiZV9idWZmZXIgPSBpbnRlbF9iYXRjaGJ1ZmZl cl9zdWJkYXRhX2FsbG9jKGJhdGNoLAorCQkJCQkJICAgICAgIHNpemVvZih1aW50MzJfdCkgKiA4 LAorCQkJCQkJICAgICAgIDY0KTsKKwlvZmZzZXQgPSBpbnRlbF9iYXRjaGJ1ZmZlcl9zdWJkYXRh X29mZnNldChiYXRjaCwgY3VyYmVfYnVmZmVyKTsKKwkqY3VyYmVfYnVmZmVyKysgPSAwOworCSpj dXJiZV9idWZmZXIgICA9IDE7CisKKwlyZXR1cm4gb2Zmc2V0OworfQorCiB1aW50MzJfdAogZ2Vu N19maWxsX3N1cmZhY2Vfc3RhdGUoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKIAkJ CWNvbnN0IHN0cnVjdCBpZ3RfYnVmICpidWYsCkBAIC0xMTksNiArMTM1LDI2IEBAIGdlbjdfZmls bF9iaW5kaW5nX3RhYmxlKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCiAJcmV0dXJu IG9mZnNldDsKIH0KIAordWludDMyX3QKK2dlbjExX2ZpbGxfYmluZGluZ190YWJsZShzdHJ1Y3Qg aW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAorCQkJY29uc3Qgc3RydWN0IGlndF9idWYgKnNyYyxj b25zdCBzdHJ1Y3QgaWd0X2J1ZiAqZHN0KQoreworCXVpbnQzMl90ICpiaW5kaW5nX3RhYmxlLCBv ZmZzZXQ7CisKKwliaW5kaW5nX3RhYmxlID0gaW50ZWxfYmF0Y2hidWZmZXJfc3ViZGF0YV9hbGxv YyhiYXRjaCwgNjQsIDY0KTsKKwlvZmZzZXQgPSBpbnRlbF9iYXRjaGJ1ZmZlcl9zdWJkYXRhX29m ZnNldChiYXRjaCwgYmluZGluZ190YWJsZSk7CisJYmluZGluZ190YWJsZVswXSA9IGdlbjExX2Zp bGxfc3VyZmFjZV9zdGF0ZShiYXRjaCwgc3JjLAorCQkJCQkJU1VSRkFDRV8xRCxTVVJGQUNFRk9S TUFUX1IzMkczMkIzMkEzMl9GTE9BVCwKKwkJCQkJCTAsMCwKKwkJCQkJCTApOworCWJpbmRpbmdf dGFibGVbMV0gPSBnZW4xMV9maWxsX3N1cmZhY2Vfc3RhdGUoYmF0Y2gsIGRzdCwKKwkJCQkJCVNV UkZBQ0VfQlVGRkVSLCBTVVJGQUNFRk9STUFUX1JBVywKKwkJCQkJCTEsMSwKKwkJCQkJCTEpOwor CisJcmV0dXJuIG9mZnNldDsKK30KKwogdWludDMyX3QKIGdlbjdfZmlsbF9rZXJuZWwoc3RydWN0 IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKIAkJY29uc3QgdWludDMyX3Qga2VybmVsW11bNF0s CkBAIC0zODQsNiArNDIwLDcxIEBAIGdlbjhfZmlsbF9zdXJmYWNlX3N0YXRlKHN0cnVjdCBpbnRl bF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCiAJcmV0dXJuIG9mZnNldDsKIH0KIAordWludDMyX3QKK2dl bjExX2ZpbGxfc3VyZmFjZV9zdGF0ZShzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAor CQkJY29uc3Qgc3RydWN0IGlndF9idWYgKmJ1ZiwKKwkJCXVpbnQzMl90IHN1cmZhY2VfdHlwZSwK KwkJCXVpbnQzMl90IGZvcm1hdCwKKwkJCXVpbnQzMl90IHZlcnRpY2FsX2FsaWdubWVudCwKKwkJ CXVpbnQzMl90IGhvcml6b250YWxfYWxpZ25tZW50LAorCQkJaW50IGlzX2RzdCkKK3sKKwlzdHJ1 Y3QgZ2VuOF9zdXJmYWNlX3N0YXRlICpzczsKKwl1aW50MzJfdCB3cml0ZV9kb21haW4sIHJlYWRf ZG9tYWluLCBvZmZzZXQ7CisJaW50IHJldDsKKworCWlmIChpc19kc3QpIHsKKwkJd3JpdGVfZG9t YWluID0gcmVhZF9kb21haW4gPSBJOTE1X0dFTV9ET01BSU5fUkVOREVSOworCX0gZWxzZSB7CisJ CXdyaXRlX2RvbWFpbiA9IDA7CisJCXJlYWRfZG9tYWluID0gSTkxNV9HRU1fRE9NQUlOX1NBTVBM RVI7CisJfQorCisJc3MgPSBpbnRlbF9iYXRjaGJ1ZmZlcl9zdWJkYXRhX2FsbG9jKGJhdGNoLCBz aXplb2YoKnNzKSwgNjQpOworCW9mZnNldCA9IGludGVsX2JhdGNoYnVmZmVyX3N1YmRhdGFfb2Zm c2V0KGJhdGNoLCBzcyk7CisKKwlzcy0+c3MwLnN1cmZhY2VfdHlwZSA9IHN1cmZhY2VfdHlwZTsK Kwlzcy0+c3MwLnN1cmZhY2VfZm9ybWF0ID0gZm9ybWF0OworCXNzLT5zczAucmVuZGVyX2NhY2hl X3JlYWRfd3JpdGUgPSAxOworCXNzLT5zczAudmVydGljYWxfYWxpZ25tZW50ID0gdmVydGljYWxf YWxpZ25tZW50OyAvKiBhbGlnbiA0ICovCisJc3MtPnNzMC5ob3Jpem9udGFsX2FsaWdubWVudCA9 IGhvcml6b250YWxfYWxpZ25tZW50OyAvKiBhbGlnbiA0ICovCisKKwlpZiAoYnVmLT50aWxpbmcg PT0gSTkxNV9USUxJTkdfWCkKKwkJc3MtPnNzMC50aWxlZF9tb2RlID0gMjsKKwllbHNlIGlmIChi dWYtPnRpbGluZyA9PSBJOTE1X1RJTElOR19ZKQorCQlzcy0+c3MwLnRpbGVkX21vZGUgPSAzOwor CWVsc2UKKwkJc3MtPnNzMC50aWxlZF9tb2RlID0gMDsKKworCXNzLT5zczguYmFzZV9hZGRyID0g YnVmLT5iby0+b2Zmc2V0OworCisJcmV0ID0gZHJtX2ludGVsX2JvX2VtaXRfcmVsb2MoYmF0Y2gt PmJvLAorCQkJCWludGVsX2JhdGNoYnVmZmVyX3N1YmRhdGFfb2Zmc2V0KGJhdGNoLCBzcykgKyA4 ICogNCwKKwkJCQlidWYtPmJvLCAwLCByZWFkX2RvbWFpbiwgd3JpdGVfZG9tYWluKTsKKwlpZ3Rf YXNzZXJ0KHJldCA9PSAwKTsKKworCWlmIChpc19kc3QpIHsKKwkJc3MtPnNzMS5tZW1vcnlfb2Jq ZWN0X2NvbnRyb2wgPSAyOworCQlzcy0+c3MyLmhlaWdodCA9IDE7CisJCXNzLT5zczIud2lkdGgg ID0gOTU7CisJCXNzLT5zczMucGl0Y2ggID0gMDsKKwkJc3MtPnNzNy5zaGFkZXJfY2hhbmVsX3Nl bGVjdF9yID0gNDsKKwkJc3MtPnNzNy5zaGFkZXJfY2hhbmVsX3NlbGVjdF9nID0gNTsKKwkJc3Mt PnNzNy5zaGFkZXJfY2hhbmVsX3NlbGVjdF9iID0gNjsKKwkJc3MtPnNzNy5zaGFkZXJfY2hhbmVs X3NlbGVjdF9hID0gNzsKKwl9CisJZWxzZSB7CisJCXNzLT5zczEucXBpdGNoID0gNDA0MDsKKwkJ c3MtPnNzMS5iYXNlX21pcF9sZXZlbCA9IDMxOworCQlzcy0+c3MyLmhlaWdodCA9IDkyMTY7CisJ CXNzLT5zczIud2lkdGggID0gMTAxOTsKKwkJc3MtPnNzMy5waXRjaCAgPSA2NDsKKwkJc3MtPnNz NS5taXBfY291bnQgPSAyOworCX0KKworCXJldHVybiBvZmZzZXQ7Cit9CisKIHVpbnQzMl90CiBn ZW44X2ZpbGxfaW50ZXJmYWNlX2Rlc2NyaXB0b3Ioc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpi YXRjaCwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaWd0X2J1ZiAqZHN0LApAQCAtNDE5LDYgKzUy MCw0MSBAQCBnZW44X2ZpbGxfaW50ZXJmYWNlX2Rlc2NyaXB0b3Ioc3RydWN0IGludGVsX2JhdGNo YnVmZmVyICpiYXRjaCwKIAlyZXR1cm4gb2Zmc2V0OwogfQogCit1aW50MzJfdAorZ2VuMTFfZmls bF9pbnRlcmZhY2VfZGVzY3JpcHRvcihzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAor CQkJICAgICAgIGNvbnN0IHN0cnVjdCBpZ3RfYnVmICpzcmMsY29uc3Qgc3RydWN0IGlndF9idWYg KmRzdCwKKwkJCSAgICAgICBjb25zdCB1aW50MzJfdCBrZXJuZWxbXVs0XSwKKwkJCSAgICAgICBz aXplX3Qgc2l6ZSkKK3sKKwlzdHJ1Y3QgZ2VuOF9pbnRlcmZhY2VfZGVzY3JpcHRvcl9kYXRhICpp ZGQ7CisJdWludDMyX3Qgb2Zmc2V0OworCXVpbnQzMl90IGJpbmRpbmdfdGFibGVfb2Zmc2V0LCBr ZXJuZWxfb2Zmc2V0OworCisJYmluZGluZ190YWJsZV9vZmZzZXQgPSBnZW4xMV9maWxsX2JpbmRp bmdfdGFibGUoYmF0Y2gsIHNyYyxkc3QpOworCWtlcm5lbF9vZmZzZXQgPSBnZW43X2ZpbGxfa2Vy bmVsKGJhdGNoLCBrZXJuZWwsIHNpemUpOworCisJaWRkID0gaW50ZWxfYmF0Y2hidWZmZXJfc3Vi ZGF0YV9hbGxvYyhiYXRjaCwgc2l6ZW9mKCppZGQpLCA2NCk7CisJb2Zmc2V0ID0gaW50ZWxfYmF0 Y2hidWZmZXJfc3ViZGF0YV9vZmZzZXQoYmF0Y2gsIGlkZCk7CisKKwlpZGQtPmRlc2MwLmtlcm5l bF9zdGFydF9wb2ludGVyID0gKGtlcm5lbF9vZmZzZXQgPj4gNik7CisKKwlpZGQtPmRlc2MyLnNp bmdsZV9wcm9ncmFtX2Zsb3cgPSAxOworCWlkZC0+ZGVzYzIuZmxvYXRpbmdfcG9pbnRfbW9kZSA9 IEdFTjhfRkxPQVRJTkdfUE9JTlRfSUVFRV83NTQ7CisKKwlpZGQtPmRlc2MzLnNhbXBsZXJfY291 bnQgPSAwOyAgICAgIC8qIDAgc2FtcGxlcnMgdXNlZCAqLworCWlkZC0+ZGVzYzMuc2FtcGxlcl9z dGF0ZV9wb2ludGVyID0gMDsKKworCWlkZC0+ZGVzYzQuYmluZGluZ190YWJsZV9lbnRyeV9jb3Vu dCA9IDA7CisJaWRkLT5kZXNjNC5iaW5kaW5nX3RhYmxlX3BvaW50ZXIgPSAoYmluZGluZ190YWJs ZV9vZmZzZXQgPj4gNSk7CisKKwlpZGQtPmRlc2M1LmNvbnN0YW50X3VyYl9lbnRyeV9yZWFkX29m ZnNldCA9IDA7CisJaWRkLT5kZXNjNS5jb25zdGFudF91cmJfZW50cnlfcmVhZF9sZW5ndGggPSAx OyAvKiBncmYgMSAqLworCisJaWRkLT5kZXNjNi5udW1fdGhyZWFkc19pbl90ZyA9IDE7CisKKwly ZXR1cm4gb2Zmc2V0OworfQorCiB2b2lkCiBnZW44X2VtaXRfc3RhdGVfYmFzZV9hZGRyZXNzKHN0 cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gpCiB7CmRpZmYgLS1naXQgYS9saWIvZ3B1X2Nt ZHMuaCBiL2xpYi9ncHVfY21kcy5oCmluZGV4IDc5YmM0ZDY0NzNiYS4uY2E2NzFmYjUyZGFmIDEw MDY0NAotLS0gYS9saWIvZ3B1X2NtZHMuaAorKysgYi9saWIvZ3B1X2NtZHMuaApAQCAtNDMsNiAr NDMsOCBAQCBnZW43X3JlbmRlcl9mbHVzaChzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNo LCB1aW50MzJfdCBiYXRjaF9lbmQpOwogdWludDMyX3QKIGdlbjdfZmlsbF9jdXJiZV9idWZmZXJf ZGF0YShzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCQkJdWludDhfdCBjb2xvcik7 Cit1aW50MzJfdAorZ2VuMTFfZmlsbF9jdXJiZV9idWZmZXJfZGF0YShzdHJ1Y3QgaW50ZWxfYmF0 Y2hidWZmZXIgKmJhdGNoKTsKIAogdWludDMyX3QKIGdlbjdfZmlsbF9zdXJmYWNlX3N0YXRlKHN0 cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCkBAIC01Myw2ICs1NSw5IEBAIGdlbjdfZmls bF9zdXJmYWNlX3N0YXRlKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCiB1aW50MzJf dAogZ2VuN19maWxsX2JpbmRpbmdfdGFibGUoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRj aCwKIAkJCWNvbnN0IHN0cnVjdCBpZ3RfYnVmICpkc3QpOwordWludDMyX3QKK2dlbjExX2ZpbGxf YmluZGluZ190YWJsZShzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAorCQkJY29uc3Qg c3RydWN0IGlndF9idWYgKnNyYyxjb25zdCBzdHJ1Y3QgaWd0X2J1ZiAqZHN0KTsKIAogdWludDMy X3QKIGdlbjdfZmlsbF9rZXJuZWwoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKQEAg LTk5LDEzICsxMDQsMjQgQEAgZ2VuOF9maWxsX3N1cmZhY2Vfc3RhdGUoc3RydWN0IGludGVsX2Jh dGNoYnVmZmVyICpiYXRjaCwKIAkJCWNvbnN0IHN0cnVjdCBpZ3RfYnVmICpidWYsCiAJCQl1aW50 MzJfdCBmb3JtYXQsCiAJCQlpbnQgaXNfZHN0KTsKLQordWludDMyX3QKK2dlbjExX2ZpbGxfc3Vy ZmFjZV9zdGF0ZShzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAorCQkJY29uc3Qgc3Ry dWN0IGlndF9idWYgKmJ1ZiwKKwkJCXVpbnQzMl90IHN1cmZhY2VfdHlwZSwKKwkJCXVpbnQzMl90 IGZvcm1hdCwKKwkJCXVpbnQzMl90IHZlcnRpY2FsX2FsaWdubWVudCwKKwkJCXVpbnQzMl90IGhv cml6b250YWxfYWxpZ25tZW50LAorCQkJaW50IGlzX2RzdCk7CiB1aW50MzJfdAogZ2VuOF9maWxs X2ludGVyZmFjZV9kZXNjcmlwdG9yKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCiAJ CQkgICAgICAgY29uc3Qgc3RydWN0IGlndF9idWYgKmRzdCwKIAkJCSAgICAgICBjb25zdCB1aW50 MzJfdCBrZXJuZWxbXVs0XSwKIAkJCSAgICAgICBzaXplX3Qgc2l6ZSk7Ci0KK3VpbnQzMl90Citn ZW4xMV9maWxsX2ludGVyZmFjZV9kZXNjcmlwdG9yKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAq YmF0Y2gsCisJCQkgICAgICAgY29uc3Qgc3RydWN0IGlndF9idWYgKnNyYyxjb25zdCBzdHJ1Y3Qg aWd0X2J1ZiAqZHN0LAorCQkJICAgICAgIGNvbnN0IHVpbnQzMl90IGtlcm5lbFtdWzRdLAorCQkJ ICAgICAgIHNpemVfdCBzaXplKTsKIHZvaWQKIGdlbjhfZW1pdF9zdGF0ZV9iYXNlX2FkZHJlc3Mo c3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCk7CiAKZGlmZiAtLWdpdCBhL2xpYi9pOTE1 L3NoYWRlcnMvbWVkaWEvUkVBRE1FX21lZGlhX3ZtZS50eHQgYi9saWIvaTkxNS9zaGFkZXJzL21l ZGlhL1JFQURNRV9tZWRpYV92bWUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw MDAwMDAwMC4uMjQ3MGZkZDg5ODI1Ci0tLSAvZGV2L251bGwKKysrIGIvbGliL2k5MTUvc2hhZGVy cy9tZWRpYS9SRUFETUVfbWVkaWFfdm1lLnR4dApAQCAtMCwwICsxLDY1IEBACitTdGVwMTogQnVp bGRpbmcgSUdBIChJbnRlbCBHcmFwaGljcyBBc3NlbWJsZXIpCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwor MS4gRG93bmxvYWQgb3IgY2xvbmUgSUdDIChJbnRlbCBHcmFwaGljcyBDb21waWxlcikKKworICAg aHR0cHM6Ly9naXRodWIuY29tL2ludGVsL2ludGVsLWdyYXBoaWNzLWNvbXBpbGVyLmdpdAorCisy LiBDaGRpciBpbnRvICdpbnRlbC1ncmFwaGljcy1jb21waWxlcicgKG9yIGFueSBvdGhlciB3b3Jr c3BhY2UgZm9sZGVyIG9mIGNob2ljZSkKKworICAgSXQgc2hvdWxkIHJlYWQgdGhlIGZvbGxvd2lu ZyBmb2xkZXIgc3RydWN1dHJlOgorCisgICB3b3Jrc3BhY2UKKyAgICAgIHwtIHZpc2EKKyAgICAg IHwtIElHQworICAgICAgfC0gaW5jCisgICAgICB8LSAzZAorICAgICAgfC0gc2t1d2EKKworMy4g Q2hkaXIgaW50byBJR0Egc3ViLWNvbXBvbmVudAorCisgICBjZCB2aXNhL2lnYQorCis0LiBDcmVh dGUgYnVpbGQgZGlyZWN0b3J5CisKKyAgICBta2RpciBidWlsZAorCis1LiBDaGFuZ2UgaW50byBi dWlsZCBkaXJlY3RvcnkKKworICAgIGNkIGJ1aWxkCisKKzYuIFJ1biBjbWFrZQorCisgICBjbWFr ZSAuLi8KKworNy4gUnVuIG1ha2UgdG8gYnVpbGQgSUdBIHByb2plY3QKKworICAgbWFrZQorCis4 LiBHZXQgdGhlIG91dHB1dCBleGVjdXRhYmxlICJpZ2E2NCIgaW4gSUdBRXhlIGZvbGRlcgorCisg ICB1c2FnZTogLi9pZ2E2NCBPUFRJT05TIEFSR1MKKyAgIHdoZXJlIE9QVElPTlM6CisgICAgIC1o ICAgICAtLWhlbHAgICAgICAgICAgICAgICAgICAgICBzaG93cyBoZWxwIG9uIGFuIG9wdGlvbgor ICAgICAtZCAgICAgLS1kaXNhc3NlbWJsZSAgICAgICAgICAgICAgZGlzYXNzZW1ibGVzIHRoZSBp bnB1dCBmaWxlCisgICAgIC1hICAgICAtLWFzc2VtYmxlICAgICAgICAgICAgICAgICBhc3NlbWJs ZXMgdGhlIGlucHV0IGZpbGUKKyAgICAgLW4gICAgIC0tbnVtZXJpYy1sYWJlbHMgICAgICAgICAg IHVzZSBudW1lcmljIGxhYmVscworICAgICAtcCAgICAgLS1wbGF0Zm9ybSAgICAgICAgREVWSUNF ICAgc3BlY2lmaWVzIHRoZSBwbGF0Zm9ybSAoZS5nLiAiR0VOOSIpCisgICAgIC1vICAgICAtLW91 dHB1dCAgICAgICAgICBGSUxFICAgICBzcGVjaWZpZXMgdGhlIG91dHB1dCBmaWxlCisKKyAgIEVY QU1QTEVTOgorICAgLi9pZ2E2NCAgZmlsZS5neGEgIC1wPTExIC1hICAtbyBmaWxlLmtybgorCitT dGVwMjogQnVpbGRpbmcgQVNNIGNvZGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorMS4gQ29tbWFuZCBsaW5l IHRvIGNvbnZlcnQgYXNtIGNvZGUgdG8gYmluYXJ5OgorCisgICBpZ2E2NCBtZWRpYV92bWUuZ3hh IC1wPTExIC1hIC1vIG1lZGlhX3ZtZS5rcm4KKworMi4gUGFkIDEyOCBieXRlcyB6ZXJvcyB0byB0 aGUga2VybmVsOgorCisgICBkZCBpZj0vZGV2L3plcm8gYnM9MSBjb3VudD0xMjggPj4gbWVkaWFf dm1lLmtybgorCiszLiBHZW5lcmF0ZSBoZXhkdW1wOgorCisgICBoZXhkdW1wIC12ICAtZSAnNC80 ICIweCUwOHggIiAiXG4iJyBtZWRpYV92bWUua3JuID4gbWVkaWFfdm1lLmhleApkaWZmIC0tZ2l0 IGEvbGliL2k5MTUvc2hhZGVycy9tZWRpYS9tZWRpYV92bWUuZ3hhIGIvbGliL2k5MTUvc2hhZGVy cy9tZWRpYS9tZWRpYV92bWUuZ3hhCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAw MDAwMC4uOTNhMGVkMmYxMmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbGliL2k5MTUvc2hhZGVycy9t ZWRpYS9tZWRpYV92bWUuZ3hhCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisqIENvcHlyaWdodCAoYykg MjAxOCwgSW50ZWwgQ29ycG9yYXRpb24KKyoKKyogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyogY29weSBvZiB0 aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29m dHdhcmUiKSwKKyogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwg bW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyogYW5kL29y IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdo b20gdGhlCisqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUg Zm9sbG93aW5nIGNvbmRpdGlvbnM6CisqCisqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCisqIGluIGFsbCBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorKgorKiBUSEUgU09G VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwg RVhQUkVTUworKiBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBX QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwKKyogVEhFIEFV VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFH RVMgT1IKKyogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD VCwgVE9SVCBPUiBPVEhFUldJU0UsCisqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorKiBPVEhFUiBERUFMSU5HUyBJ TiBUSEUgU09GVFdBUkUuCisqLworCisgICAgICAgbW92ICg4fE0wKSAgICAgICByMS44PDE+Oncg ICAgICAgMHgyMDAwMDAwMDp2CisgICAgICAgbW92ICg4fE0wKSAgICAgICByMjAuMDwxPjp3ICAg ICAgMHgxOnYKKyhXKSAgICBtb3YgKDF8TTApICAgICAgIHIxLjI8MT46ZiAgICAgICAweDM4MTgw MDBDOmYKKyAgICAgICBtb3YgKDh8TTApICAgICAgIHIyMC44PDE+OncgICAgICAweDEwOnYKKyAg ICAgICBtb3YgKDh8TTApICAgICAgIHIyMS4wPDE+OncgICAgICAweDEwMDAwOnYKKyhXKSAgICBt b3YgKDF8TTApICAgICAgIHIxLjM8MT46ZiAgICAgICAweDIyMjIyMjIyOmYKKyAgICAgICBhZGQg KDF8TTApICAgICAgIGEwLjA8MT46ZCAgICAgICByMS4wPDA7MSwwPjpkICAgICAyNzYzMDc5Njg6 ZAorICAgICAgIG1vdiAoOHxNMCkgICAgICAgcjIuMDwxPjpmICAgICAgIDB4MDpmCisgICAgICAg bW92ICg4fE0wKSAgICAgICByNS4wPDE+OmYgICAgICAgMHgwOmYKKyAgICAgICBtb3YgKDh8TTAp ICAgICAgIHI2LjA8MT46ZiAgICAgICAweDA6ZgorICAgICAgIG1vdiAoOHxNMCkgICAgICAgcjku MDwxPjpmICAgICAgIDB4MDpmCisgICAgICAgbW92ICg4fE0wKSAgICAgICByMy4wPDE+OmQgICAg ICAgcjEuODw4OzgsMT46dworICAgICAgIG11bCAoOHxNMCkgICAgICAgcjQuMDwxPjpkICAgICAg IHIxLjI8MDsxLDA+OmQgICAgIHIyMC4wPDg7OCwxPjp3CisgICAgICAgbXVsICg4fE0wKSAgICAg ICByNy4wPDE+OmQgICAgICAgcjIwLjg8ODs4LDE+OncgICAgMjU2OncKKyAgICAgICBtdWwgKDh8 TTApICAgICAgIHI4LjA8MT46ZCAgICAgICByMS4zPDA7MSwwPjpkICAgICByMjEuMDw4OzgsMT46 dworKFcpICAgIG1vdiAoMXxNMCkgICAgICAgcjE3LjI8MT46ZiAgICAgIDB4MDpmCisgICAgICAg c2VuZCAoMTZ8TTApICAgICByMTA6dXcgICAgICAgICAgcjI6ZiAgICAgICAgICAgICAgMHhEICAg ICBhMC4we05vUHJlZW1wdH0KKyAgICAgICBtb3YgKDF8TTApICAgICAgIHIxMC4xNDwxPjpoZiAg ICAweEJFRUY6aGYKKyhXKSAgICBhZGQgKDF8TTApICAgICAgIGEwLjA8MT46dWQgICAgICByMS4x PDA7MSwwPjp1ZCAgICAweDIwQTA0MDA6dWQKKyAgICAgICBtb3YgKDF8TTApICAgICAgIHIxMC4x NTwxPjpoZiAgICAweERFQUQ6aGYKKyhXKSAgICBtb3YgKDF8TTApICAgICAgIHIxOC4yPDE+OmYg ICAgICAweDg6ZgorKFcpICAgIG1vdiAoMXxNMCkgICAgICAgcjE5LjI8MT46ZiAgICAgIDB4Qzpm CisoVykgICAgbW92ICg4fE0wKSAgICAgICByMTI3LjA8MT46ZiAgICAgcjAuMDw4OzgsMT46Zgor KFcpICAgIHNlbmRzICgxNnxNMCkgICAgbnVsbDp1dyAgICAgICAgIHIxNyAgICAgICAgICAgICAg IHIxMCAgICAgMHgxMEEgICAgYTAuMAorKFcpICAgIGFkZCAoMXxNMCkgICAgICAgYTAuMDwxPjp1 ZCAgICAgIHIxLjE8MDsxLDA+OnVkICAgIDB4MjBBMDMwMDp1ZAorKFcpICAgIHNlbmRzICgxNnxN MCkgICAgbnVsbDp1dyAgICAgICAgIHIxOCAgICAgICAgICAgICAgIHIxNCAgICAgMHg4QSAgICAg YTAuMAorKFcpICAgIGFkZCAoMXxNMCkgICAgICAgYTAuMDwxPjp1ZCAgICAgIHIxLjE8MDsxLDA+ OnVkICAgIDB4MjBBMDIwMDp1ZAorKFcpICAgIHNlbmRzICg4fE0wKSAgICAgbnVsbDp1ZCAgICAg ICAgIHIxOSAgICAgICAgICAgICAgIHIxNiAgICAgMHg0QSAgICAgYTAuMAorKFcpICAgIHNlbmQg KDh8TTApICAgICAgbnVsbCAgICAgICAgICAgIHIxMjc6ZiAgICAgICAgICAgIDB4MjcgICAgMHgy MDAwMDEwIHtFT1R9CmRpZmYgLS1naXQgYS9saWIvaW50ZWxfYmF0Y2hidWZmZXIuYyBiL2xpYi9p bnRlbF9iYXRjaGJ1ZmZlci5jCmluZGV4IGFkMmU3MThmODk4Yy4uMjI2OTdjOTRmYjEzIDEwMDY0 NAotLS0gYS9saWIvaW50ZWxfYmF0Y2hidWZmZXIuYworKysgYi9saWIvaW50ZWxfYmF0Y2hidWZm ZXIuYwpAQCAtODczLDYgKzg3MywxNSBAQCBpZ3RfZmlsbGZ1bmNfdCBpZ3RfZ2V0X21lZGlhX2Zp bGxmdW5jKGludCBkZXZpZCkKIAlyZXR1cm4gZmlsbDsKIH0KIAoraWd0X3ZtZV9mdW5jX3QgaWd0 X2dldF9tZWRpYV92bWVfZnVuYyhpbnQgZGV2aWQpCit7CisJaWd0X3ZtZV9mdW5jX3QgZmlsbCA9 IE5VTEw7CisKKwlpZiAoSVNfR0VOOShkZXZpZCkgfHwgSVNfR0VOMTAoZGV2aWQpIHx8IElTX0dF TjExKGRldmlkKSkKKwkJZmlsbCA9IGdlbjExX21lZGlhX3ZtZV9mdW5jOworCisJcmV0dXJuIGZp bGw7Cit9CiAvKioKICAqIGlndF9nZXRfZ3BncHVfZmlsbGZ1bmM6CiAgKiBAZGV2aWQ6IHBjaSBk ZXZpY2UgaWQKZGlmZiAtLWdpdCBhL2xpYi9pbnRlbF9iYXRjaGJ1ZmZlci5oIGIvbGliL2ludGVs X2JhdGNoYnVmZmVyLmgKaW5kZXggZWNjMjNmMDhkYTc3Li5lNWY2ZTZkMDQ1YjggMTAwNjQ0Ci0t LSBhL2xpYi9pbnRlbF9iYXRjaGJ1ZmZlci5oCisrKyBiL2xpYi9pbnRlbF9iYXRjaGJ1ZmZlci5o CkBAIC0zMjUsNiArMzI1LDEzIEBAIHR5cGVkZWYgdm9pZCAoKmlndF9maWxsZnVuY190KShzdHJ1 Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogaWd0X2ZpbGxmdW5jX3QgaWd0X2dldF9tZWRp YV9maWxsZnVuYyhpbnQgZGV2aWQpOwogaWd0X2ZpbGxmdW5jX3QgaWd0X2dldF9ncGdwdV9maWxs ZnVuYyhpbnQgZGV2aWQpOwogCit0eXBlZGVmIHZvaWQgKCppZ3Rfdm1lX2Z1bmNfdCkoc3RydWN0 IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaWd0X2J1 ZiAqc3JjLAorCQkJICAgICAgIHVuc2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWdo dCwKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaWd0X2J1ZiAqZHN0KTsKKworaWd0X3ZtZV9mdW5j X3QgaWd0X2dldF9tZWRpYV92bWVfZnVuYyhpbnQgZGV2aWQpOworCiAvKioKICAqIGlndF9tZWRp YV9zcGluZnVuY190OgogICogQGJhdGNoOiBiYXRjaGJ1ZmZlciBvYmplY3QKZGlmZiAtLWdpdCBh L2xpYi9tZWRpYV9maWxsLmMgYi9saWIvbWVkaWFfZmlsbC5jCmluZGV4IDQ5NDIyMjk1MDVmZi4u YjFlODQ3MjczOTRhIDEwMDY0NAotLS0gYS9saWIvbWVkaWFfZmlsbC5jCisrKyBiL2xpYi9tZWRp YV9maWxsLmMKQEAgLTYxLDYgKzYxLDQ2IEBAIHN0YXRpYyBjb25zdCB1aW50MzJfdCBnZW44X21l ZGlhX2tlcm5lbFtdWzRdID0gewogCXsgMHgwNzgwMDAzMSwgMHgyMDAwMGE0MCwgMHgwZTAwMGUw MCwgMHg4MjAwMDAxMCB9LAogfTsKIAorc3RhdGljIGNvbnN0IHVpbnQzMl90IGdlbjExX21lZGlh X3ZtZV9rZXJuZWxbXVs0XSA9IHsKKwl7IDB4MDA2MDAwMDEsIDB4MjAzMDJlNjgsICAweDAwMDAw MDAwLCAgMHgyMDAwMDAwMCB9LAorCXsgMHgwMDYwMDAwMSwgMHgyMjgwMmU2OCwgIDB4MDAwMDAw MDAsICAweDAwMDAwMDAxIH0sCisJeyAweDAwMDAwMDAxLCAweDIwMjg0ZjJjLCAgMHgwMDAwMDAw MCwgIDB4MzgxODAwMGMgfSwKKwl7IDB4MDA2MDAwMDEsIDB4MjI5MDJlNjgsICAweDAwMDAwMDAw LCAgMHgwMDAwMDAxMCB9LAorCXsgMHgwMDYwMDAwMSwgMHgyMmEwMmU2OCwgIDB4MDAwMDAwMDAs ICAweDAwMDEwMDAwIH0sCisJeyAweDAwMDAwMDAxLCAweDIwMmM0ZjJjLCAgMHgwMDAwMDAwMCwg IDB4MjIyMjIyMjIgfSwKKwl7IDB4MDAwMDAwNDAsIDB4MjIwMDBhMjAsICAweDBlMDAwMDIwLCAg MHgxMDc4MjAwMCB9LAorCXsgMHgwMDYwMDAwMSwgMHgyMDQwNGYyOCwgIDB4MDAwMDAwMDAsICAw eDAwMDAwMDAwIH0sCisJeyAweDAwNjAwMDAxLCAweDIwYTA0ZjI4LCAgMHgwMDAwMDAwMCwgIDB4 MDAwMDAwMDAgfSwKKwl7IDB4MDA2MDAwMDEsIDB4MjBjMDRmMjgsICAweDAwMDAwMDAwLCAgMHgw MDAwMDAwMCB9LAorCXsgMHgwMDYwMDAwMSwgMHgyMTIwNGYyOCwgIDB4MDAwMDAwMDAsICAweDAw MDAwMDAwIH0sCisJeyAweDAwNjAwMDAxLCAweDIwNjAxYTI4LCAgMHgwMDhkMDAzMCwgIDB4MDAw MDAwMDAgfSwKKwl7IDB4MDA2MDAwNDEsIDB4MjA4MDBhMjgsICAweDFhMDAwMDI4LCAgMHgwMDhk MDI4MCB9LAorCXsgMHgwMDYwMDA0MSwgMHgyMGUwMWEyOCwgIDB4MWU4ZDAyOTAsICAweDAxMDAw MTAwIH0sCisJeyAweDAwNjAwMDQxLCAweDIxMDAwYTI4LCAgMHgxYTAwMDAyYywgIDB4MDA4ZDAy YTAgfSwKKwl7IDB4MDAwMDAwMDEsIDB4MjIyODRmMmMsICAweDAwMDAwMDAwLCAgMHgwMDAwMDAw MCB9LAorCXsgMHgwZDgwYzAzMSwgMHgyMTQwNGE0OCwgIDB4MDAwMDAwNDAsICAweDAwMDAwMjAw IH0sCisJeyAweDAwMDAwMDAxLCAweDIxNWM0NzA4LCAgMHgwMDAwMDAwMCwgIDB4YmVlZmJlZWYg fSwKKwl7IDB4MDAwMDAwNDAsIDB4MjIwMDAyMDQsICAweDA2MDAwMDI0LCAgMHgwMjBhMDQwMCB9 LAorCXsgMHgwMDAwMDAwMSwgMHgyMTVlNDcwOCwgIDB4MDAwMDAwMDAsICAweGRlYWRkZWFkIH0s CisJeyAweDAwMDAwMDAxLCAweDIyNDg0ZjJjLCAgMHgwMDAwMDAwMCwgIDB4MDAwMDAwMDggfSwK Kwl7IDB4MDAwMDAwMDEsIDB4MjI2ODRmMmMsICAweDAwMDAwMDAwLCAgMHgwMDAwMDAwYyB9LAor CXsgMHgwMDYwMDAwMSwgMHgyZmUwNGIyYywgIDB4MDA4ZDAwMDAsICAweDAwMDAwMDAwIH0sCisJ eyAweDBhODAwMDMzLCAweDAwMDBhMDU0LCAgMHgwMDAwMjIyNCwgIDB4MDAwMDAwMDAgfSwKKwl7 IDB4MDAwMDAwNDAsIDB4MjIwMDAyMDQsICAweDA2MDAwMDI0LCAgMHgwMjBhMDMwMCB9LAorCXsg MHgwYTgwMDAzMywgMHgwMDAwZTA1NCwgIDB4MDAwMDIyNDIsICAweDAwMDAwMDAwIH0sCisJeyAw eDAwMDAwMDQwLCAweDIyMDAwMjA0LCAgMHgwNjAwMDAyNCwgIDB4MDIwYTAyMDAgfSwKKwl7IDB4 MGE2MDAwMzMsIDB4MDAwMTAwMTQsICAweDAwMDAyMjYxLCAgMHgwMDAwMDAwMCB9LAorCXsgMHgw NzYwMDAzMSwgMHgyMDAwNGEwNCwgIDB4MDYwMDBmZTAsICAweDgyMDAwMDEwIH0sCisJeyAweDAw MDAwMDAwLCAweDAwMDAwMDAwLCAgMHgwMDAwMDAwMCwgIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAw MDAwMDAsIDB4MDAwMDAwMDAsICAweDAwMDAwMDAwLCAgMHgwMDAwMDAwMCB9LAorCXsgMHgwMDAw MDAwMCwgMHgwMDAwMDAwMCwgIDB4MDAwMDAwMDAsICAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAw MDAwLCAweDAwMDAwMDAwLCAgMHgwMDAwMDAwMCwgIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAw MDAsIDB4MDAwMDAwMDAsICAweDAwMDAwMDAwLCAgMHgwMDAwMDAwMCB9LAorCXsgMHgwMDAwMDAw MCwgMHgwMDAwMDAwMCwgIDB4MDAwMDAwMDAsICAweDAwMDAwMDAwIH0sCisJeyAweDAwMDAwMDAw LCAweDAwMDAwMDAwLCAgMHgwMDAwMDAwMCwgIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAwMDAs IDB4MDAwMDAwMDAsICAweDAwMDAwMDAwLCAgMHgwMDAwMDAwMCB9LAorfTsKKwogLyoKICAqIFRo aXMgc2V0cyB1cCB0aGUgbWVkaWEgcGlwZWxpbmUsCiAgKgpAQCAtMjQ1LDMgKzI4NSw3MyBAQCBn ZW45X21lZGlhX2ZpbGxmdW5jKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCiAJCQkg ICAgICBnZW44X21lZGlhX2tlcm5lbCwgc2l6ZW9mKGdlbjhfbWVkaWFfa2VybmVsKSk7CiAKIH0K Kworc3RhdGljIHZvaWQKK19fZ2VuMTFfbWVkaWFfdm1lX2Z1bmMoc3RydWN0IGludGVsX2JhdGNo YnVmZmVyICpiYXRjaCwKKwkJICAgICAgIGNvbnN0IHN0cnVjdCBpZ3RfYnVmICpzcmMsCisJCSAg ICAgICB1bnNpZ25lZCBpbnQgd2lkdGgsIHVuc2lnbmVkIGludCBoZWlnaHQsCisJCSAgICAgICBj b25zdCBzdHJ1Y3QgaWd0X2J1ZiAqZHN0LAorCQkgICAgICAgY29uc3QgdWludDMyX3Qga2VybmVs W11bNF0sCisJCSAgICAgICBzaXplX3Qga2VybmVsX3NpemUpCit7CisJdWludDMyX3QgY3VyYmVf YnVmZmVyLCBpbnRlcmZhY2VfZGVzY3JpcHRvcjsKKwl1aW50MzJfdCBiYXRjaF9lbmQ7CisKKwlp bnRlbF9iYXRjaGJ1ZmZlcl9mbHVzaChiYXRjaCk7CisKKwkvKiBzZXR1cCBzdGF0ZXMgKi8KKwli YXRjaC0+cHRyID0gJmJhdGNoLT5idWZmZXJbQkFUQ0hfU1RBVEVfU1BMSVRdOworCisJY3VyYmVf YnVmZmVyID0gZ2VuMTFfZmlsbF9jdXJiZV9idWZmZXJfZGF0YShiYXRjaCk7CisJaW50ZXJmYWNl X2Rlc2NyaXB0b3IgPSBnZW4xMV9maWxsX2ludGVyZmFjZV9kZXNjcmlwdG9yKGJhdGNoLCBzcmMs IGRzdCwKKwkJCQkJa2VybmVsLCBrZXJuZWxfc2l6ZSk7CisJYXNzZXJ0KGJhdGNoLT5wdHIgPCAm YmF0Y2gtPmJ1ZmZlcls0MDk1XSk7CisKKwkvKiBtZWRpYSBwaXBlbGluZSAqLworCWJhdGNoLT5w dHIgPSBiYXRjaC0+YnVmZmVyOworCU9VVF9CQVRDSChHRU44X1BJUEVMSU5FX1NFTEVDVCB8IFBJ UEVMSU5FX1NFTEVDVF9NRURJQSB8CisJCSAgR0VOOV9GT1JDRV9NRURJQV9BV0FLRV9FTkFCTEUg fAorCQkgIEdFTjlfU0FNUExFUl9ET1BfR0FURV9ESVNBQkxFIHwKKwkJICBHRU45X1BJUEVMSU5F X1NFTEVDVElPTl9NQVNLIHwKKwkJICBHRU45X1NBTVBMRVJfRE9QX0dBVEVfTUFTSyB8CisJCSAg R0VOOV9GT1JDRV9NRURJQV9BV0FLRV9NQVNLKTsKKwlnZW45X2VtaXRfc3RhdGVfYmFzZV9hZGRy ZXNzKGJhdGNoKTsKKworCWdlbjhfZW1pdF92ZmVfc3RhdGUoYmF0Y2gsIFRIUkVBRFMsIE1FRElB X1VSQl9FTlRSSUVTLCBNRURJQV9VUkJfU0laRSwKKwkJCSAgICBNRURJQV9DVVJCRV9TSVpFKTsK KworCWdlbjdfZW1pdF9jdXJiZV9sb2FkKGJhdGNoLCBjdXJiZV9idWZmZXIpOworCisJZ2VuN19l bWl0X2ludGVyZmFjZV9kZXNjcmlwdG9yX2xvYWQoYmF0Y2gsIGludGVyZmFjZV9kZXNjcmlwdG9y KTsKKworCWdlbjdfZW1pdF9tZWRpYV9vYmplY3RzKGJhdGNoLCAwLCAwLCB3aWR0aCwgaGVpZ2h0 KTsKKworCU9VVF9CQVRDSChHRU44X1BJUEVMSU5FX1NFTEVDVCB8IFBJUEVMSU5FX1NFTEVDVF9N RURJQSB8CisJCSAgR0VOOV9GT1JDRV9NRURJQV9BV0FLRV9ESVNBQkxFIHwKKwkJICBHRU45X1NB TVBMRVJfRE9QX0dBVEVfRU5BQkxFIHwKKwkJICBHRU45X1BJUEVMSU5FX1NFTEVDVElPTl9NQVNL IHwKKwkJICBHRU45X1NBTVBMRVJfRE9QX0dBVEVfTUFTSyB8CisJCSAgR0VOOV9GT1JDRV9NRURJ QV9BV0FLRV9NQVNLKTsKKworCU9VVF9CQVRDSChNSV9CQVRDSF9CVUZGRVJfRU5EKTsKKworCWJh dGNoX2VuZCA9IGludGVsX2JhdGNoYnVmZmVyX2FsaWduKGJhdGNoLCA4KTsKKwlhc3NlcnQoYmF0 Y2hfZW5kIDwgQkFUQ0hfU1RBVEVfU1BMSVQpOworCisJZ2VuN19yZW5kZXJfZmx1c2goYmF0Y2gs IGJhdGNoX2VuZCk7CisJaW50ZWxfYmF0Y2hidWZmZXJfcmVzZXQoYmF0Y2gpOworfQorCit2b2lk CitnZW4xMV9tZWRpYV92bWVfZnVuYyhzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAor CQkgICAgIGNvbnN0IHN0cnVjdCBpZ3RfYnVmICpzcmMsCisJCSAgICAgdW5zaWduZWQgaW50IHdp ZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0LAorCQkgICAgIGNvbnN0IHN0cnVjdCBpZ3RfYnVmICpk c3QpCit7CisJX19nZW4xMV9tZWRpYV92bWVfZnVuYyhiYXRjaCwKKwkJCSAgICAgICBzcmMsCisJ CQkgICAgICAgd2lkdGgsIGhlaWdodCwKKwkJCSAgICAgICBkc3QsCisJCQkgICAgICAgZ2VuMTFf bWVkaWFfdm1lX2tlcm5lbCwKKwkJCSAgICAgICBzaXplb2YoZ2VuMTFfbWVkaWFfdm1lX2tlcm5l bCkpOworfQpkaWZmIC0tZ2l0IGEvbGliL21lZGlhX2ZpbGwuaCBiL2xpYi9tZWRpYV9maWxsLmgK aW5kZXggZTM2NWRhOWU0N2QyLi4xZDVjNWZhODI2YTMgMTAwNjQ0Ci0tLSBhL2xpYi9tZWRpYV9m aWxsLmgKKysrIGIvbGliL21lZGlhX2ZpbGwuaApAQCAtNDksNCArNDksMTAgQEAgZ2VuOV9tZWRp YV9maWxsZnVuYyhzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAogCQkgICAgdW5zaWdu ZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZ2h0LAogCQkgICAgdWludDhfdCBjb2xvcik7 CiAKK3ZvaWQKK2dlbjExX21lZGlhX3ZtZV9mdW5jKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAq YmF0Y2gsCisJCSAgICAgY29uc3Qgc3RydWN0IGlndF9idWYgKnNyYywKKwkJICAgICB1bnNpZ25l ZCBpbnQgd2lkdGgsIHVuc2lnbmVkIGludCBoZWlnaHQsCisJCSAgICAgY29uc3Qgc3RydWN0IGln dF9idWYgKmRzdCk7CisKICNlbmRpZiAvKiBSRU5ERV9NRURJQV9GSUxMX0ggKi8KZGlmZiAtLWdp dCBhL2xpYi9zdXJmYWNlZm9ybWF0LmggYi9saWIvc3VyZmFjZWZvcm1hdC5oCmluZGV4IDVkN2Vk MmNhZGMyZC4uMzJlYTM3MzI2MmNhIDEwMDY0NAotLS0gYS9saWIvc3VyZmFjZWZvcm1hdC5oCisr KyBiL2xpYi9zdXJmYWNlZm9ybWF0LmgKQEAgLTE3MSw2ICsxNzEsOCBAQAogI2RlZmluZSBTVVJG QUNFRk9STUFUX1IxNkcxNkIxNl9TU0NBTEVECTB4MTlFCiAjZGVmaW5lIFNVUkZBQ0VGT1JNQVRf UjE2RzE2QjE2X1VTQ0FMRUQJMHgxOUYKIAorI2RlZmluZSBTVVJGQUNFRk9STUFUX1JBVwkweDFG RgorCiAjZGVmaW5lIFNVUkZBQ0VSRVRVUk5GT1JNQVRfRkxPQVQzMgkwCiAjZGVmaW5lIFNVUkZB Q0VSRVRVUk5GT1JNQVRfUzEJMQogCmRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2Vz IGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwppbmRleCAzZGZlYjViNjcyNzQuLjZkYWJiOWRiZjI0 NyAxMDA2NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcworKysgYi90ZXN0cy9NYWtlZmls ZS5zb3VyY2VzCkBAIC0zMDIsNiArMzAyLDkgQEAgZ2VtX21hZHZpc2VfU09VUkNFUyA9IGk5MTUv Z2VtX21hZHZpc2UuYwogVEVTVFNfcHJvZ3MgKz0gZ2VtX21lZGlhX2ZpbGwKIGdlbV9tZWRpYV9m aWxsX1NPVVJDRVMgPSBpOTE1L2dlbV9tZWRpYV9maWxsLmMKIAorVEVTVFNfcHJvZ3MgKz0gZ2Vt X21lZGlhX3ZtZQorZ2VtX21lZGlhX3ZtZV9TT1VSQ0VTID0gaTkxNS9nZW1fbWVkaWFfdm1lLmMK KwogVEVTVFNfcHJvZ3MgKz0gZ2VtX21tYXAKIGdlbV9tbWFwX1NPVVJDRVMgPSBpOTE1L2dlbV9t bWFwLmMKIApkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fbWVkaWFfdm1lLmMgYi90ZXN0cy9p OTE1L2dlbV9tZWRpYV92bWUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjQ3ZTk0OWM3ODFmMgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX21lZGlh X3ZtZS5jCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwg Q29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9m IGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3 YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwK KyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu ZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwg Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl CisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxv d2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0 aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkg c2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBv ZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVE LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5U QUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS SU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hU IEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJ QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJX SVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBT T0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUu CisgKi8KKyNpbmNsdWRlICJpZ3QuaCIKKyNpbmNsdWRlIDxzdGRib29sLmg+CisjaW5jbHVkZSA8 dW5pc3RkLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+Cisj aW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxmY250bC5o PgorI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxz eXMvc3RhdC5oPgorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisjaW5jbHVkZSAiZHJtLmgiCisjaW5j bHVkZSAiaW50ZWxfYnVmbWdyLmgiCisKK0lHVF9URVNUX0RFU0NSSVBUSU9OKCJBIHZlcnkgc2lt cGxlIHdvcmtsb2FkIGZvciB0aGUgVk1FIG1lZGlhIGJsb2NrLiIpOworCisjZGVmaW5lIFdJRFRI CTY0CisjZGVmaW5lIFNUUklERQkoV0lEVEgpCisjZGVmaW5lIEhFSUdIVAk2NAorCisjZGVmaW5l IElOUFVUX1NJWkUJKFdJRFRIICogSEVJR0hUICogc2l6ZW9mKGNoYXIpICogMS41KQorI2RlZmlu ZSBPVVRQVVRfU0laRQkoNTYqc2l6ZW9mKGludCkpCisKK3N0YXRpYyB2b2lkCitzY3JhdGNoX2J1 Zl9pbml0KGRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1nciwKKwkJIHN0cnVjdCBpZ3RfYnVmICpidWYs CisJCSB1bnNpZ25lZCBpbnQgc2l6ZSkKK3sKKwlkcm1faW50ZWxfYm8gKmJvOworCisJYm8gPSBk cm1faW50ZWxfYm9fYWxsb2MoYnVmbWdyLCAiIiwgc2l6ZSwgNDA5Nik7CisJaWd0X2Fzc2VydChi byk7CisKKwltZW1zZXQoYnVmLCAwLCBzaXplb2YoKmJ1ZikpOworCisJYnVmLT5ibyA9IGJvOwor CWJ1Zi0+dGlsaW5nID0gSTkxNV9USUxJTkdfTk9ORTsKKwlidWYtPnNpemUgPSBzaXplOworfQor CitzdGF0aWMgdm9pZCBzY3JhdGNoX2J1Zl9pbml0X3NyYyhkcm1faW50ZWxfYnVmbWdyICpidWZt Z3IsIHN0cnVjdCBpZ3RfYnVmICpidWYpCit7CisJc2NyYXRjaF9idWZfaW5pdChidWZtZ3IsIGJ1 ZiwgSU5QVVRfU0laRSk7CisKKwkvKgorCSAqIElkZWFsbHkgd2Ugd291bGQgcmVhZCBzcmMgc3Vy ZmFjZSBmcm9tIGZpbGUgIlNvdXJjZUZyYW1lSS55dTEyIi4KKwkgKiBCdXQgZXZlbiB3aXRob3V0 IGl0LCB3ZSBjYW4gc3RpbGwgdHJpZ2VyIHRoZSByY3MwIHJlc2V0dGluZworCSAqIHdpdGggdGhp cyB2bWUga2VybmVsLgorCSAqLworCisJYnVmLT5zdHJpZGUgPSBTVFJJREU7Cit9CisKK3N0YXRp YyB2b2lkIHNjcmF0Y2hfYnVmX2luaXRfZHN0KGRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1nciwgc3Ry dWN0IGlndF9idWYgKmJ1ZikKK3sKKwlzY3JhdGNoX2J1Zl9pbml0KGJ1Zm1nciwgYnVmLCBPVVRQ VVRfU0laRSk7CisKKwlidWYtPnN0cmlkZSA9IDE7Cit9CisKK2lndF9zaW1wbGVfbWFpbgorewor CWludCBkcm1fZmQ7CisJdWludDMyX3QgZGV2aWQ7CisJZHJtX2ludGVsX2J1Zm1nciAqYnVmbWdy OworCWlndF92bWVfZnVuY190IG1lZGlhX3ZtZTsKKwlzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIg KmJhdGNoOworCXN0cnVjdCBpZ3RfYnVmIHNyYywgZHN0OworCXVpbnQ4X3QgZHN0X2xpbmVhcltP VVRQVVRfU0laRV07CisKKwlkcm1fZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsK KwlpZ3RfcmVxdWlyZV9nZW0oZHJtX2ZkKTsKKworCWRldmlkID0gaW50ZWxfZ2V0X2RybV9kZXZp ZChkcm1fZmQpOworCisJbWVkaWFfdm1lID0gaWd0X2dldF9tZWRpYV92bWVfZnVuYyhkZXZpZCk7 CisJaWd0X3JlcXVpcmVfZihtZWRpYV92bWUsICJubyBtZWRpYS12bWUgZnVuY3Rpb25cbiIpOwor CisJYnVmbWdyID0gZHJtX2ludGVsX2J1Zm1ncl9nZW1faW5pdChkcm1fZmQsIDQwOTYpOworCWln dF9hc3NlcnQoYnVmbWdyKTsKKworCWJhdGNoID0gaW50ZWxfYmF0Y2hidWZmZXJfYWxsb2MoYnVm bWdyLCBkZXZpZCk7CisJaWd0X2Fzc2VydChiYXRjaCk7CisKKwlzY3JhdGNoX2J1Zl9pbml0X3Ny YyhidWZtZ3IsICZzcmMpOworCXNjcmF0Y2hfYnVmX2luaXRfZHN0KGJ1Zm1nciwgJmRzdCk7CisK KwlpZ3RfZm9ya19oYW5nX2RldGVjdG9yKGRybV9mZCk7CisKKwltZWRpYV92bWUoYmF0Y2gsICZz cmMsIFdJRFRILCBIRUlHSFQsICZkc3QpOworCWdlbV9yZWFkKGRybV9mZCwgZHN0LmJvLT5oYW5k bGUsIDAsCisJCQlkc3RfbGluZWFyLCBzaXplb2YoZHN0X2xpbmVhcikpOworCisJaWd0X3N0b3Bf aGFuZ19kZXRlY3RvcigpOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvbWVzb24uYnVpbGQgYi90ZXN0 cy9tZXNvbi5idWlsZAppbmRleCBmNDFmNzI0YWY4YWYuLmUzYTRhODRlYTdjYyAxMDA2NDQKLS0t IGEvdGVzdHMvbWVzb24uYnVpbGQKKysrIGIvdGVzdHMvbWVzb24uYnVpbGQKQEAgLTE2Niw2ICsx NjYsNyBAQCBnZW1fcHJvZ3MgPSBbCiAJJ2dlbV9sdXRfaGFuZGxlJywKIAknZ2VtX21hZHZpc2Un LAogCSdnZW1fbWVkaWFfZmlsbCcsCisJJ2dlbV9tZWRpYV92bWUnLAogCSdnZW1fbW1hcCcsCiAJ J2dlbV9tbWFwX2d0dCcsCiAJJ2dlbV9tbWFwX29mZnNldF9leGhhdXN0aW9uJywKLS0gCjIuMTku MQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRl diBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==