From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Tom Rix To: git-commits@fedoraproject.org Subject: [rpms/rocwmma] epel10: A smoke test from rocm-examples Date: Sun, 14 Jun 2026 12:46:00 GMT Message-ID: <178144116073.1.332152274305352524.rpms-rocwmma-3545b47a0713@fedoraproject.org> List-ID: X-Git-Repo: rpms/rocwmma X-Git-Branch: epel10 X-Git-Rev: 3545b47a07132ae1cdb4e5a83c163ab0ea6ad572 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvcm9jd21tYQogICAgICAgICAgICBCcmFuY2ggOiBlcGVsMTAKICAgICAgICAg ICAgQ29tbWl0IDogMzU0NWI0N2EwNzEzMmFlMWNkYjRlNWE4M2MxNjNhYjBlYTZhZDU3MgogICAg ICAgICAgICBBdXRob3IgOiBUb20gUml4IDxUb20uUml4QGFtZC5jb20+CiAgICAgICAgICAgIERh dGUgICA6IDIwMjYtMDMtMDRUMDc6MDc6NDYtMDg6MDAKICAgICAgICAgICAgU3RhdHMgIDogKzYz MC8tMCBpbiAyIGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3Jh cHJvamVjdC5vcmcvcnBtcy9yb2N3bW1hL2MvMzU0NWI0N2EwNzEzMmFlMWNkYjRlNWE4M2MxNjNh YjBlYTZhZDU3Mj9icmFuY2g9ZXBlbDEwCgogICAgICAgICAgICBMb2c6CiAgICAgICAgICAgIEEg c21va2UgdGVzdCBmcm9tIHJvY20tZXhhbXBsZXMKClNpZ25lZC1vZmYtYnk6IFRvbSBSaXggPFRv bS5SaXhAYW1kLmNvbT4KCi0tLQpkaWZmIC0tZ2l0IGEvdGVzdC5jcHAgYi90ZXN0LmNwcApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGM2YzllCi0tLSAvZGV2L251bGwKKysr IGIvdGVzdC5jcHAKQEAgLTAsMCArMSw2MjEgQEAKKy8vIE1JVCBMaWNlbnNlCisvLworLy8gQ29w eXJpZ2h0IChjKSAyMDI1IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyBy ZXNlcnZlZC4KKy8vCisvLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisvLyBvZiB0aGlzIHNvZnR3YXJl IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8g ZGVhbAorLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3 aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cworLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l cmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorLy8gY29w aWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNv ZnR3YXJlIGlzCisvLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2lu ZyBjb25kaXRpb25zOgorLy8KKy8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbAorLy8gY29waWVzIG9y IHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKy8vCisvLyBUSEUgU09GVFdB UkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQ UkVTUyBPUgorLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisvLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKy8vIEFV VEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFH RVMgT1IgT1RIRVIKKy8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB Q1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCisvLyBPVVQgT0YgT1IgSU4gQ09O TkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElO IFRIRQorLy8gU09GVFdBUkUuCisKKy8vIFRoaXMgZmlsZSBpcyBhIG1vZGlmaWVkIHZlcnNpb24g b2YgdGhlIG9yaWdpbmFsIHJvY1dNTUEgc2ltcGxlX3NnZW1tIGV4YW1wbGUKKy8vIGZyb20gdGhl IHJvY20tZXhhbXBsZXMgcHJvamVjdDogaHR0cHM6Ly9naXRodWIuY29tL1JPQ20vcm9jbS1leGFt cGxlcworLy8gVGhlIG9yaWdpbmFsIGZpbGUgd2FzIG1haW4uaGlwIGFuZCBoYXMgYmVlbiBjb252 ZXJ0ZWQgdG8gQysrIGZvciBjb21wYXRpYmlsaXR5CisvLworLy8gcm9jV01NQSBTaW1wbGUgU2lu Z2xlLVByZWNpc2lvbiBHZW5lcmFsIE1hdHJpeCBNdWx0aXBsaWNhdGlvbiAoU0dFTU0pCisvLwor Ly8gVGhpcyBleGFtcGxlIGRlbW9uc3RyYXRlcyBhIGJhc2ljIHNpbmdsZS1wcmVjaXNpb24gR2Vu ZXJhbCBNYXRyaXggTXVsdGlwbGljYXRpb24gKEdFTU0pIHVzaW5nIHJvY1dNTUEsCisvLyBzaG93 Y2FzaW5nIHRoZSBsaWJyYXJ5J3Mgc3VwcG9ydCBmb3IgRlAzMiBjb21wdXRhdGlvbnMgb24gQU1E IEdQVXMuCisvLworLy8gVGhlIHJvY1dNTUEgdXRpbGl0aWVzIChyb2N3bW1hX3V0aWxzLmhwcCkg aGF2ZSBiZWVuIGlubGluZWQgZnJvbSB0aGUgcm9jbS1leGFtcGxlcyBDb21tb24vIGRpcmVjdG9y eToKKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ST0NtL3JvY20tZXhhbXBsZXMvdHJlZS9tYWluL0Nv bW1vbgorCisvLyBNSVQgTGljZW5zZQorLy8KKy8vIENvcHlyaWdodCAoYykgMjAyMy0yMDI1IEFk dmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBQ ZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNv biBvYnRhaW5pbmcgYSBjb3B5CisvLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRv Y3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAorLy8gaW4gdGhlIFNv ZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24g dGhlIHJpZ2h0cworLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0 cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAorLy8gY29waWVzIG9mIHRoZSBTb2Z0d2Fy ZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisvLyBmdXJu aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorLy8K Ky8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNl IHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbAorLy8gY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRp b25zIG9mIHRoZSBTb2Z0d2FyZS4KKy8vCisvLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFT IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorLy8gSU1QTElF RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFO VEFCSUxJVFksCisvLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5G UklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKy8vIEFVVEhPUlMgT1IgQ09QWVJJR0hU IEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKy8vIExJ QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJX SVNFLCBBUklTSU5HIEZST00sCisvLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBT T0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQorLy8gU09GVFdBUkUu CisKKyNpbmNsdWRlIDxoaXAvaGlwX3J1bnRpbWUuaD4KKyNpbmNsdWRlIDxyb2N3bW1hL3JvY3dt bWEuaHBwPgorCisjaW5jbHVkZSA8aW9zdHJlYW0+CisjaW5jbHVkZSA8bGltaXRzPgorI2luY2x1 ZGUgPHJhbmRvbT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1 ZGUgPGN0aW1lPgorI2luY2x1ZGUgPGlvbWFuaXA+CisjaW5jbHVkZSA8c3N0cmVhbT4KKyNpbmNs dWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisjaW5jbHVkZSA8Y2hyb25v PgorI2luY2x1ZGUgPGlvbWFuaXA+CisjaW5jbHVkZSA8aXRlcmF0b3I+CisjaW5jbHVkZSA8ZnN0 cmVhbT4KKworY29uc3RleHByIGludCBlcnJvcl9leGl0X2NvZGUgPSAtMTsKKworLy8vIFxicmll ZiBDaGVja3MgaWYgdGhlIHByb3ZpZGVkIGVycm9yIGNvZGUgaXMgXHAgaGlwU3VjY2VzcyBhbmQg aWYgbm90LAorLy8vIHByaW50cyBhbiBlcnJvciBtZXNzYWdlIHRvIHRoZSBzdGFuZGFyZCBlcnJv ciBvdXRwdXQgYW5kIHRlcm1pbmF0ZXMgdGhlIHByb2dyYW0KKy8vLyB3aXRoIGFuIGVycm9yIGNv ZGUuCisjZGVmaW5lIEhJUF9DSEVDSyhjb25kaXRpb24pICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAorICAgICAgICBjb25zdCBoaXBFcnJvcl90IGVycm9yID0gY29uZGl0aW9uOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlm KGVycm9yICE9IGhpcFN1Y2Nlc3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgeyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICAgICAgICAgIHN0ZDo6Y2VyciA8PCAiQW4gZXJyb3IgZW5jb3VudGVyZWQ6IFwiIiA8PCBoaXBH ZXRFcnJvclN0cmluZyhlcnJvcikgPDwgIlwiIGF0ICIgXAorICAgICAgICAgICAgICAgICAgICAg IDw8IF9fRklMRV9fIDw8ICc6JyA8PCBfX0xJTkVfXyA8PCBzdGQ6OmVuZGw7ICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgICAgICAgICBzdGQ6OmV4aXQoZXJyb3JfZXhpdF9jb2RlKTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKKy8vLyBcYnJpZWYgR2V0IGN1cnJlbnQg ZGV2aWNlIHdhcnAgc2l6ZQoraW5saW5lIHVpbnQzMl90IGdldF93YXJwX3NpemUoKQoreworICAg IGhpcERldmljZVByb3BfdCBkZXZpY2VfcHJvcDsKKyAgICBpbnQgICAgICAgICAgICAgZGV2aWNl X2lkOworICAgIEhJUF9DSEVDSyhoaXBHZXREZXZpY2UoJmRldmljZV9pZCkpOworICAgIEhJUF9D SEVDSyhoaXBHZXREZXZpY2VQcm9wZXJ0aWVzKCZkZXZpY2VfcHJvcCwgZGV2aWNlX2lkKSk7Cisg ICAgcmV0dXJuIGRldmljZV9wcm9wLndhcnBTaXplOworfQorCisvLy8gXGJyaWVmIENoZWNrIGlm IGN1cnJlbnQgZGV2aWNlIHN1cHBvcnRzIEY2NCBvcGVyYXRpb25zCitpbmxpbmUgYm9vbCBpc19m NjRfc3VwcG9ydGVkKCkKK3sKKyAgICBoaXBEZXZpY2VfdCAgICAgaGFuZGxlOworICAgIGhpcERl dmljZVByb3BfdCBwcm9wczsKKworICAgIEhJUF9DSEVDSyhoaXBHZXREZXZpY2UoJmhhbmRsZSkp OworICAgIEhJUF9DSEVDSyhoaXBHZXREZXZpY2VQcm9wZXJ0aWVzKCZwcm9wcywgaGFuZGxlKSk7 CisKKyAgICBzdGQ6OnN0cmluZyBkZXZpY2VfbmFtZShwcm9wcy5nY25BcmNoTmFtZSk7CisKKyAg ICByZXR1cm4gKChkZXZpY2VfbmFtZS5maW5kKCJnZng5MGEiKSAhPSBzdGQ6OnN0cmluZzo6bnBv cykKKyAgICAgICAgICAgIHx8IChkZXZpY2VfbmFtZS5maW5kKCJnZng5NDIiKSAhPSBzdGQ6OnN0 cmluZzo6bnBvcykKKyAgICAgICAgICAgIHx8IChkZXZpY2VfbmFtZS5maW5kKCJnZng5NTAiKSAh PSBzdGQ6OnN0cmluZzo6bnBvcykpOworfQorCisvLy8gXGJyaWVmIENoZWNrIGlmIGN1cnJlbnQg ZGV2aWNlIHN1cHBvcnRzIEYzMiBvcGVyYXRpb25zCitpbmxpbmUgYm9vbCBpc19mMzJfc3VwcG9y dGVkKCkKK3sKKyAgICBoaXBEZXZpY2VfdCAgICAgaGFuZGxlOworICAgIGhpcERldmljZVByb3Bf dCBwcm9wczsKKworICAgIEhJUF9DSEVDSyhoaXBHZXREZXZpY2UoJmhhbmRsZSkpOworICAgIEhJ UF9DSEVDSyhoaXBHZXREZXZpY2VQcm9wZXJ0aWVzKCZwcm9wcywgaGFuZGxlKSk7CisKKyAgICBz dGQ6OnN0cmluZyBkZXZpY2VfbmFtZShwcm9wcy5nY25BcmNoTmFtZSk7CisKKyAgICByZXR1cm4g KChkZXZpY2VfbmFtZS5maW5kKCJnZng5MDgiKSAhPSBzdGQ6OnN0cmluZzo6bnBvcykKKyAgICAg ICAgICAgIHx8IChkZXZpY2VfbmFtZS5maW5kKCJnZng5MGEiKSAhPSBzdGQ6OnN0cmluZzo6bnBv cykKKyAgICAgICAgICAgIHx8IChkZXZpY2VfbmFtZS5maW5kKCJnZng5NDIiKSAhPSBzdGQ6OnN0 cmluZzo6bnBvcykKKyAgICAgICAgICAgIHx8IChkZXZpY2VfbmFtZS5maW5kKCJnZng5NTAiKSAh PSBzdGQ6OnN0cmluZzo6bnBvcykpOworfQorCisvLy8gXGJyaWVmIENhbGN1bGF0ZSBHRmxvcHMg Zm9yIEdFTU0gb3BlcmF0aW9uCitpbmxpbmUgZG91YmxlIGNhbGN1bGF0ZV9nZmxvcHModWludDMy X3QgbSwgdWludDMyX3QgbiwgdWludDMyX3QgaykKK3sKKyAgICByZXR1cm4gMi4wICogc3RhdGlj X2Nhc3Q8ZG91YmxlPihtKSAqIHN0YXRpY19jYXN0PGRvdWJsZT4obikgKiBzdGF0aWNfY2FzdDxk b3VibGU+KGspICogMS4wZS05OworfQorCisvLy8gXGJyaWVmIENhbGN1bGF0ZSBURmxvcHMgcGVy IHNlY29uZAoraW5saW5lIGRvdWJsZSBjYWxjdWxhdGVfdGZsb3BzX3Blcl9zZWMoCisgICAgdWlu dDMyX3QgbSwgdWludDMyX3QgbiwgdWludDMyX3QgaywgZG91YmxlIGVsYXBzZWRfdGltZV9tcywg dWludDMyX3QgcmVwZWF0cyA9IDF1KQoreworICAgIHJldHVybiBjYWxjdWxhdGVfZ2Zsb3BzKG0s IG4sIGspIC8gZWxhcHNlZF90aW1lX21zICogc3RhdGljX2Nhc3Q8ZG91YmxlPihyZXBlYXRzKTsK K30KKworLy8vIFxicmllZiBNYXRyaXggaW5pdGlhbGl6YXRpb24gd2l0aCByYW5kb20gdmFsdWVz Cit0ZW1wbGF0ZTx0eXBlbmFtZSBkYXRhX3Q+CitfX2hvc3RfXyBzdGF0aWMgaW5saW5lIHZvaWQg ZmlsbF9yYW5kKGRhdGFfdCogbWF0LCB1aW50MzJfdCBtLCB1aW50MzJfdCBuKQoreworICAgIGF1 dG8gcmFuZF9pbml0ID0gW10oKQorICAgIHsKKyAgICAgICAgc3JhbmQodGltZSgwKSk7CisgICAg ICAgIHJldHVybiAwdTsKKyAgICB9OworICAgIHN0YXRpYyBhdXRvIGluaXQgPSByYW5kX2luaXQo KTsKKyAgICAodm9pZCkgaW5pdDsKKworICAgIGZvcih1aW50MzJfdCBpID0gMDsgaSA8IG07ICsr aSkKKyAgICB7CisgICAgICAgIGF1dG8gcmFuZG8gPSByYW5kKCkgJSA1dTsKKyAgICAgICAgZm9y KHVpbnQzMl90IGogPSAwOyBqIDwgbjsgaisrKQorICAgICAgICB7CisgICAgICAgICAgICBhdXRv IHZhbHVlICAgICA9IChyYW5kbyArIGopICUgNXU7CisgICAgICAgICAgICBtYXRbaSAqIG4gKyBq XSA9ICgodmFsdWUgJSAzdSA9PSAwdSkgJiYgc3RkOjppc19zaWduZWQ8ZGF0YV90Pjo6dmFsdWUp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IC1zdGF0aWNfY2FzdDxkYXRhX3Q+ KHZhbHVlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzdGF0aWNfY2FzdDxk YXRhX3Q+KHZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8vIFxicmllZiBDUFUgR0VN TSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24KK3RlbXBsYXRlPHR5cGVuYW1lIGlucHV0X3QsCisg ICAgICAgICB0eXBlbmFtZSBvdXRwdXRfdCwKKyAgICAgICAgIHR5cGVuYW1lIGNvbXB1dGVfdCwK KyAgICAgICAgIHR5cGVuYW1lIGxheW91dF9hLAorICAgICAgICAgdHlwZW5hbWUgbGF5b3V0X2Is CisgICAgICAgICB0eXBlbmFtZSBsYXlvdXRfYywKKyAgICAgICAgIHR5cGVuYW1lIGxheW91dF9k ID0gbGF5b3V0X2M+CitfX2hvc3RfXyB2b2lkIGdlbW1fY3B1X2godWludDMyX3QgICAgICAgIG0s CisgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgIG4sCisgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgIGssCisgICAgICAgICAgICAgICAgICAgICAg ICAgaW5wdXRfdCBjb25zdCogIGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRfdCBj b25zdCogIGIsCisgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X3QgY29uc3QqIGMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X3QqICAgICAgIGQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgdWludDMyX3QgICAgICAgIGxkYSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICB1aW50MzJfdCAgICAgICAgbGRiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90 ICAgICAgICBsZGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgIGxk ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb21wdXRlX3QgICAgICAgYWxwaGEsCisgICAg ICAgICAgICAgICAgICAgICAgICAgY29tcHV0ZV90ICAgICAgIGJldGEpCit7CisgICAgYXV0byBy b3dfbWpyID0gW10odWludDMyX3Qgcm93LCB1aW50MzJfdCBjb2wsIHVpbnQzMl90IGxkKSB7IHJl dHVybiByb3cgKiBsZCArIGNvbDsgfTsKKyAgICBhdXRvIGNvbF9tanIgPSBbXSh1aW50MzJfdCBy b3csIHVpbnQzMl90IGNvbCwgdWludDMyX3QgbGQpIHsgcmV0dXJuIGNvbCAqIGxkICsgcm93OyB9 OworCisgICAgYXV0byBhX2luZGV4ID0gc3RkOjppc19zYW1lPGxheW91dF9hLCByb2N3bW1hOjpy b3dfbWFqb3I+Ojp2YWx1ZSA/IHJvd19tanIgOiBjb2xfbWpyOworICAgIGF1dG8gYl9pbmRleCA9 IHN0ZDo6aXNfc2FtZTxsYXlvdXRfYiwgcm9jd21tYTo6cm93X21ham9yPjo6dmFsdWUgPyByb3df bWpyIDogY29sX21qcjsKKyAgICBhdXRvIGNfaW5kZXggPSBzdGQ6OmlzX3NhbWU8bGF5b3V0X2Ms IHJvY3dtbWE6OnJvd19tYWpvcj46OnZhbHVlID8gcm93X21qciA6IGNvbF9tanI7CisgICAgYXV0 byBkX2luZGV4ID0gc3RkOjppc19zYW1lPGxheW91dF9kLCByb2N3bW1hOjpyb3dfbWFqb3I+Ojp2 YWx1ZSA/IHJvd19tanIgOiBjb2xfbWpyOworCisgICAgZm9yKHVpbnQzMl90IGkgPSAwOyBpIDwg bTsgKytpKQorICAgIHsKKyAgICAgICAgZm9yKHVpbnQzMl90IGogPSAwOyBqIDwgbjsgKytqKQor ICAgICAgICB7CisgICAgICAgICAgICBjb21wdXRlX3QgYWNjdW0gPSBzdGF0aWNfY2FzdDxjb21w dXRlX3Q+KDApOworICAgICAgICAgICAgZm9yKHVpbnQzMl90IGggPSAwOyBoIDwgazsgKytoKQor ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGFjY3VtICs9IHN0YXRpY19jYXN0PGNvbXB1 dGVfdD4oYVthX2luZGV4KGksIGgsIGxkYSldKQorICAgICAgICAgICAgICAgICAgICAgICAgICog c3RhdGljX2Nhc3Q8Y29tcHV0ZV90PihiW2JfaW5kZXgoaCwgaiwgbGRiKV0pOworICAgICAgICAg ICAgfQorICAgICAgICAgICAgZFtkX2luZGV4KGksIGosIGxkZCldID0gc3RhdGljX2Nhc3Q8b3V0 cHV0X3Q+KAorICAgICAgICAgICAgICAgIGFscGhhICogYWNjdW0gKyBiZXRhICogc3RhdGljX2Nh c3Q8Y29tcHV0ZV90PihjW2NfaW5kZXgoaSwgaiwgbGRjKV0pKTsKKyAgICAgICAgfQorICAgIH0K K30KKworLy8vIFxicmllZiBFbGVtZW50LXdpc2UgY29tcGFyaXNvbgordGVtcGxhdGU8dHlwZW5h bWUgZGF0YV90PgorX19ob3N0X18gc3RkOjpwYWlyPGJvb2wsIGRvdWJsZT4KKyAgICAgICAgIGNv bXBhcmVfZXF1YWwoZGF0YV90IGNvbnN0KiBhLCBkYXRhX3QgY29uc3QqIGIsIHVpbnQzMl90IHNp emUsIGRvdWJsZSB0b2xlcmFuY2UgPSAxMC4wKQoreworICAgIGJvb2wgICByZXR2YWwgICAgICAg ICAgICAgPSB0cnVlOworICAgIGRvdWJsZSBtYXhfcmVsYXRpdmVfZXJyb3IgPSAwLjA7CisKKyAg ICBhdXRvIHRvX2RvdWJsZSA9IFtdKGRhdGFfdCBjb25zdCYgdmFsKSB7IHJldHVybiBzdGF0aWNf Y2FzdDxkb3VibGU+KHN0YXRpY19jYXN0PGZsb2F0Pih2YWwpKTsgfTsKKworICAgIGZvcih1aW50 MzJfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKKyAgICB7CisgICAgICAgIGF1dG8gdmFsX2EgPSBh W2ldOworICAgICAgICBhdXRvIHZhbF9iID0gYltpXTsKKworICAgICAgICBhdXRvIG51bWVyYXRv ciA9IGZhYnModG9fZG91YmxlKHZhbF9hKSAtIHRvX2RvdWJsZSh2YWxfYikpOworICAgICAgICBh dXRvIGRpdmlzb3IgICA9IGZhYnModG9fZG91YmxlKHZhbF9hKSkgKyBmYWJzKHRvX2RvdWJsZSh2 YWxfYikpICsgMS4wOworCisgICAgICAgIGlmKHN0ZDo6aXNpbmYobnVtZXJhdG9yKSB8fCBzdGQ6 OmlzaW5mKGRpdmlzb3IpKQorICAgICAgICB7CisgICAgICAgICAgICByZXR2YWwgICAgICAgICAg ICAgPSBmYWxzZTsKKyAgICAgICAgICAgIG1heF9yZWxhdGl2ZV9lcnJvciA9IHN0ZDo6bnVtZXJp Y19saW1pdHM8ZGF0YV90Pjo6aW5maW5pdHkoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg ICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgYXV0byByZWxhdGl2ZV9l cnJvciA9IG51bWVyYXRvciAvIGRpdmlzb3I7CisgICAgICAgICAgICBpZihzdGQ6OmlzbmFuKHJl bGF0aXZlX2Vycm9yKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR2YWwgICAg ICAgICAgICAgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBtYXhfcmVsYXRpdmVfZXJyb3IgPSBz dGQ6Om51bWVyaWNfbGltaXRzPGRhdGFfdD46OnNpZ25hbGluZ19OYU4oKTsKKyAgICAgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYocmVsYXRpdmVf ZXJyb3IgPiBtYXhfcmVsYXRpdmVfZXJyb3IpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg ICAgbWF4X3JlbGF0aXZlX2Vycm9yID0gcmVsYXRpdmVfZXJyb3I7CisgICAgICAgICAgICB9Cisg ICAgICAgIH0KKyAgICB9CisKKyAgICBhdXRvIGVwcyA9IHRvX2RvdWJsZShzdGQ6Om51bWVyaWNf bGltaXRzPGRhdGFfdD46OmVwc2lsb24oKSk7CisgICAgaWYobWF4X3JlbGF0aXZlX2Vycm9yID4g KGVwcyAqIHRvbGVyYW5jZSkpCisgICAgeworICAgICAgICByZXR2YWwgPSBmYWxzZTsKKyAgICB9 CisKKyAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIocmV0dmFsLCBtYXhfcmVsYXRpdmVfZXJyb3Ip OworfQorCisvLy8gXGJyaWVmIE1hdHJpeCBpbml0aWFsaXphdGlvbiB3aXRoIGJhdGNoIHN1cHBv cnQKK3RlbXBsYXRlPHR5cGVuYW1lIGRhdGFfdD4KK19faG9zdF9fIHN0YXRpYyBpbmxpbmUgdm9p ZAorICAgIGZpbGwoZGF0YV90KiBtYXQsIHVpbnQzMl90IG0sIHVpbnQzMl90IGssIHVpbnQzMl90 IGIsIHVpbnQzMl90IG5vcm1hbGl6YXRpb24gPSAxKQoreworICAgIGF1dG8gYmF0Y2hfb2Zmc2V0 ID0gbSAqIGs7CisgICAgZm9yKHVpbnQzMl90IHQgPSAwOyB0IDwgYjsgKyt0KQorICAgIHsKKyAg ICAgICAgZm9yKHVpbnQzMl90IGkgPSAwOyBpIDwgbTsgKytpKQorICAgICAgICB7CisgICAgICAg ICAgICBmb3IodWludDMyX3QgaiA9IDA7IGogPCBrOyArK2opCisgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgYXV0byB2YWx1ZQorICAgICAgICAgICAgICAgICAgICA9IHN0YXRpY19jYXN0 PGZsb2F0PihyYW5kKCkgLyBub3JtYWxpemF0aW9uKSAvIHN0YXRpY19jYXN0PGZsb2F0PihSQU5E X01BWCk7CisgICAgICAgICAgICAgICAgbWF0W3QgKiBiYXRjaF9vZmZzZXQgKyBpICogayArIGpd ID0gc3RhdGljX2Nhc3Q8ZGF0YV90Pih2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0K KyAgICB9Cit9CisKKy8vLyBcYnJpZWYgQ2hlY2sgaWYgY3VycmVudCBkZXZpY2UgaXMgR0ZYOSBh cmNoaXRlY3R1cmUKK2lubGluZSBib29sIGlzX2dmeDkoKQoreworICAgIGhpcERldmljZV90ICAg ICBoYW5kbGU7CisgICAgaGlwRGV2aWNlUHJvcF90IHByb3BzOworCisgICAgSElQX0NIRUNLKGhp cEdldERldmljZSgmaGFuZGxlKSk7CisgICAgSElQX0NIRUNLKGhpcEdldERldmljZVByb3BlcnRp ZXMoJnByb3BzLCBoYW5kbGUpKTsKKworICAgIHN0ZDo6c3RyaW5nIGRldmljZV9uYW1lKHByb3Bz LmdjbkFyY2hOYW1lKTsKKworICAgIHJldHVybiAoKGRldmljZV9uYW1lLmZpbmQoImdmeDkwOCIp ICE9IHN0ZDo6c3RyaW5nOjpucG9zKQorICAgICAgICAgICAgfHwgKGRldmljZV9uYW1lLmZpbmQo ImdmeDkwYSIpICE9IHN0ZDo6c3RyaW5nOjpucG9zKQorICAgICAgICAgICAgfHwgKGRldmljZV9u YW1lLmZpbmQoImdmeDk0MiIpICE9IHN0ZDo6c3RyaW5nOjpucG9zKQorICAgICAgICAgICAgfHwg KGRldmljZV9uYW1lLmZpbmQoImdmeDk1MCIpICE9IHN0ZDo6c3RyaW5nOjpucG9zKSk7Cit9CisK Ky8vLyBcYnJpZWYgQ2hlY2sgaWYgY3VycmVudCBkZXZpY2UgaXMgR0ZYMTEgYXJjaGl0ZWN0dXJl CitpbmxpbmUgYm9vbCBpc19nZngxMSgpCit7CisgICAgaGlwRGV2aWNlX3QgICAgIGhhbmRsZTsK KyAgICBoaXBEZXZpY2VQcm9wX3QgcHJvcHM7CisKKyAgICBISVBfQ0hFQ0soaGlwR2V0RGV2aWNl KCZoYW5kbGUpKTsKKyAgICBISVBfQ0hFQ0soaGlwR2V0RGV2aWNlUHJvcGVydGllcygmcHJvcHMs IGhhbmRsZSkpOworCisgICAgc3RkOjpzdHJpbmcgZGV2aWNlX25hbWUocHJvcHMuZ2NuQXJjaE5h bWUpOworCisgICAgcmV0dXJuICgoZGV2aWNlX25hbWUuZmluZCgiZ2Z4MTEwMCIpICE9IHN0ZDo6 c3RyaW5nOjpucG9zKQorICAgICAgICAgICAgfHwgKGRldmljZV9uYW1lLmZpbmQoImdmeDExMDEi KSAhPSBzdGQ6OnN0cmluZzo6bnBvcykKKyAgICAgICAgICAgIHx8IChkZXZpY2VfbmFtZS5maW5k KCJnZngxMTAyIikgIT0gc3RkOjpzdHJpbmc6Om5wb3MpCisgICAgICAgICAgICB8fCAoZGV2aWNl X25hbWUuZmluZCgiZ2Z4MTE1MSIpICE9IHN0ZDo6c3RyaW5nOjpucG9zKSk7Cit9CisKKy8vLyBc YnJpZWYgQ2hlY2sgaWYgY3VycmVudCBkZXZpY2UgaXMgR0ZYMTIgYXJjaGl0ZWN0dXJlCitpbmxp bmUgYm9vbCBpc19nZngxMigpCit7CisgICAgaGlwRGV2aWNlX3QgICAgIGhhbmRsZTsKKyAgICBo aXBEZXZpY2VQcm9wX3QgcHJvcHM7CisKKyAgICBISVBfQ0hFQ0soaGlwR2V0RGV2aWNlKCZoYW5k bGUpKTsKKyAgICBISVBfQ0hFQ0soaGlwR2V0RGV2aWNlUHJvcGVydGllcygmcHJvcHMsIGhhbmRs ZSkpOworCisgICAgc3RkOjpzdHJpbmcgZGV2aWNlX25hbWUocHJvcHMuZ2NuQXJjaE5hbWUpOwor CisgICAgcmV0dXJuICgoZGV2aWNlX25hbWUuZmluZCgiZ2Z4MTIwMCIpICE9IHN0ZDo6c3RyaW5n OjpucG9zKQorICAgICAgICAgICAgfHwgKGRldmljZV9uYW1lLmZpbmQoImdmeDEyMDEiKSAhPSBz dGQ6OnN0cmluZzo6bnBvcykpOworfQorCisvLy8gXGJyaWVmIENoZWNrIEhJUFJUQyBlcnJvciBh bmQgZXhpdCBvbiBmYWlsdXJlCisjaWZuZGVmIEhJUFJUQ19DSEVDSworICAgICNkZWZpbmUgSElQ UlRDX0NIRUNLKGV4cHJlc3Npb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg ICAgIGlmKGF1dG8gc3RhdHVzID0gKGV4cHJlc3Npb24pOyBzdGF0dXMgIT0gSElQUlRDX1NVQ0NF U1MpIFwKKyAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICJoaXBSVEMg ZXJyb3I6ICclcycoJWQpIGF0ICVzOiVkXG4iLCAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAg ICAgaGlwcnRjR2V0RXJyb3JTdHJpbmcoc3RhdHVzKSwgICAgICAgICAgICAgICAgXAorICAgICAg ICAgICAgICAgICAgICBzdGF0dXMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCisgICAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgX19MSU5FX18pOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgZXhpdChlcnJvcl9leGl0X2Nv ZGUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIH0KKyNlbmRpZgor CisvLyBFbmQgb2YgaW5saW5lZCByb2N3bW1hX3V0aWxzLmhwcCBjb250ZW50CisKKyNpbmNsdWRl IDxhcnJheT4KKyNpbmNsdWRlIDxpb21hbmlwPgorI2luY2x1ZGUgPGlvc3RyZWFtPgorI2luY2x1 ZGUgPHZlY3Rvcj4KKwordXNpbmcgcm9jd21tYTo6YWNjdW11bGF0b3I7Cit1c2luZyByb2N3bW1h Ojpjb2xfbWFqb3I7Cit1c2luZyByb2N3bW1hOjpmbG9hdDMyX3Q7Cit1c2luZyByb2N3bW1hOjpt YXRyaXhfYTsKK3VzaW5nIHJvY3dtbWE6Om1hdHJpeF9iOwordXNpbmcgcm9jd21tYTo6cm93X21h am9yOworCisvLyBXTU1BIGJsb2NrIGRpbWVuc2lvbnMKK2NvbnN0ZXhwciBpbnQgcm9jd21tYV9t ID0gMTY7Citjb25zdGV4cHIgaW50IHJvY3dtbWFfbiA9IDE2OworY29uc3RleHByIGludCByb2N3 bW1hX2sgPSAxNjsKKworLy8gRGV2aWNlIGtlcm5lbCBpbXBsZW1lbnRhdGlvbgorX19nbG9iYWxf XyB2b2lkIHNnZW1tX3JvY3dtbWFfZCh1aW50MzJfdCAgICAgICAgIG0sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICAgICAgICAgbiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDMyX3QgICAgICAgICBrLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmbG9hdDMyX3QgY29uc3QqIGEsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZsb2F0MzJfdCBjb25zdCogYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZmxvYXQzMl90IGNvbnN0KiBjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm bG9hdDMyX3QqICAgICAgIGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQz Ml90ICAgICAgICAgbGRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf dCAgICAgICAgIGxkYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg ICAgICAgICBsZGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICAg ICAgICAgbGRkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDMyX3QgICAg ICAgIGFscGhhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdDMyX3QgICAg ICAgIGJldGEpCit7CisgICAgLy8gQ3JlYXRlIGZyYWdtZW50cworICAgIGF1dG8gZnJhZ19hCisg ICAgICAgID0gcm9jd21tYTo6ZnJhZ21lbnQ8bWF0cml4X2EsIHJvY3dtbWFfbSwgcm9jd21tYV9u LCByb2N3bW1hX2ssIGZsb2F0MzJfdCwgcm93X21ham9yPigpOworICAgIGF1dG8gZnJhZ19iCisg ICAgICAgID0gcm9jd21tYTo6ZnJhZ21lbnQ8bWF0cml4X2IsIHJvY3dtbWFfbSwgcm9jd21tYV9u LCByb2N3bW1hX2ssIGZsb2F0MzJfdCwgY29sX21ham9yPigpOworICAgIGF1dG8gZnJhZ19jICAg PSByb2N3bW1hOjpmcmFnbWVudDxhY2N1bXVsYXRvciwgcm9jd21tYV9tLCByb2N3bW1hX24sIHJv Y3dtbWFfaywgZmxvYXQzMl90PigpOworICAgIGF1dG8gZnJhZ19hY2MgPSByb2N3bW1hOjpmcmFn bWVudDxhY2N1bXVsYXRvciwgcm9jd21tYV9tLCByb2N3bW1hX24sIHJvY3dtbWFfaywgZmxvYXQz Ml90PigpOworCisgICAgcm9jd21tYTo6ZmlsbF9mcmFnbWVudChmcmFnX2FjYywgMC4wZik7CisK KyAgICAvLyBEZXRlcm1pbmUgb3V0cHV0IGJsb2NrIGNvb3JkaW5hdGVzCisgICAgYXV0byBtYWpv cl93YXJwCisgICAgICAgID0gKGJsb2NrSWR4LnggKiBibG9ja0RpbS54ICsgdGhyZWFkSWR4Lngp IC8gcm9jd21tYTo6Q29uc3RhbnRzOjpBTURHQ05fV0FWRV9TSVpFOworICAgIGF1dG8gbWlub3Jf d2FycCA9IChibG9ja0lkeC55ICogYmxvY2tEaW0ueSArIHRocmVhZElkeC55KTsKKworICAgIGF1 dG8gY19yb3cgPSBtYWpvcl93YXJwICogcm9jd21tYV9tOworICAgIGF1dG8gY19jb2wgPSBtaW5v cl93YXJwICogcm9jd21tYV9uOworCisgICAgLy8gQm91bmRzIGNoZWNrCisgICAgaWYoY19yb3cg PCBtICYmIGNfY29sIDwgbikKKyAgICB7CisgICAgICAgIC8vIEFjY3VtdWxhdGUgQSB4IEIgb3Zl ciBLIGRpbWVuc2lvbgorICAgICAgICBmb3IodWludDMyX3QgaSA9IDA7IGkgPCBrOyBpICs9IHJv Y3dtbWFfaykKKyAgICAgICAgeworICAgICAgICAgICAgcm9jd21tYTo6bG9hZF9tYXRyaXhfc3lu YyhmcmFnX2EsIGEgKyAoY19yb3cgKiBsZGEgKyBpKSwgbGRhKTsKKyAgICAgICAgICAgIHJvY3dt bWE6OmxvYWRfbWF0cml4X3N5bmMoZnJhZ19iLCBiICsgKGkgKyBjX2NvbCAqIGxkYiksIGxkYik7 CisgICAgICAgICAgICByb2N3bW1hOjptbWFfc3luYyhmcmFnX2FjYywgZnJhZ19hLCBmcmFnX2Is IGZyYWdfYWNjKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIExvYWQgQyBtYXRyaXgKKyAgICAg ICAgcm9jd21tYTo6bG9hZF9tYXRyaXhfc3luYyhmcmFnX2MsIGMgKyAoY19yb3cgKiBsZGMgKyBj X2NvbCksIGxkYywgcm9jd21tYTo6bWVtX3Jvd19tYWpvcik7CisKKyAgICAgICAgLy8gRCA9IGFs cGhhICogQSB4IEIgKyBiZXRhICogQworICAgICAgICBmb3IodWludDMyX3QgaSA9IDA7IGkgPCBm cmFnX2MubnVtX2VsZW1lbnRzOyArK2kpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZyYWdfYy54 W2ldID0gYWxwaGEgKiBmcmFnX2FjYy54W2ldICsgYmV0YSAqIGZyYWdfYy54W2ldOworICAgICAg ICB9CisKKyAgICAgICAgLy8gU3RvcmUgcmVzdWx0CisgICAgICAgIHJvY3dtbWE6OnN0b3JlX21h dHJpeF9zeW5jKGQgKyAoY19yb3cgKiBsZGQgKyBjX2NvbCksIGZyYWdfYywgbGRkLCByb2N3bW1h OjptZW1fcm93X21ham9yKTsKKyAgICB9Cit9CisKK2ludCBtYWluKCkKK3sKKyAgICAvLyAxLiBT ZXQgdXAgaW5wdXQgZGF0YQorICAgIGNvbnN0ZXhwciB1aW50MzJfdCBtID0gMjU2OworICAgIGNv bnN0ZXhwciB1aW50MzJfdCBuID0gMjU2OworICAgIGNvbnN0ZXhwciB1aW50MzJfdCBrID0gMjU2 OworCisgICAgY29uc3RleHByIGZsb2F0MzJfdCBhbHBoYSA9IDIuMWY7CisgICAgY29uc3RleHBy IGZsb2F0MzJfdCBiZXRhICA9IDIuMWY7CisjaWYgMAorICAgIC8vIENoZWNrIGRldmljZSBzdXBw b3J0IGZvciBGMzIgb3BlcmF0aW9ucworICAgIGlmKCFpc19mMzJfc3VwcG9ydGVkKCkpCisgICAg eworICAgICAgICBzdGQ6OmNvdXQgPDwgIkYzMiBTR0VNTSBub3Qgc3VwcG9ydGVkIG9uIHRoaXMg ZGV2aWNlIiA8PCBzdGQ6OmVuZGw7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyNlbmRpZgor ICAgIC8vIFRocmVhZCBibG9jayBjb25maWd1cmF0aW9uCisgICAgY29uc3QgdWludDMyX3Qgd2F2 ZV9zaXplID0gZ2V0X3dhcnBfc2l6ZSgpOworICAgIGNvbnN0IGludCAgICAgIHRfYmxvY2tfeCA9 IDQgKiB3YXZlX3NpemU7CisgICAgY29uc3QgaW50ICAgICAgdF9ibG9ja195ID0gNDsKKworICAg IC8vIE1hdHJpeCBsYXlvdXRzIGFuZCBsZWFkaW5nIGRpbWVuc2lvbnMKKyAgICAvLyBBOiByb3ct bWFqb3IgKE0geCBLKSwgQjogY29sLW1ham9yIChLIHggTiksIEMsRDogcm93LW1ham9yIChNIHgg TikKKyAgICBpbnQgbGRhID0gazsgLy8gcm93LW1ham9yIEEKKyAgICBpbnQgbGRiID0gazsgLy8g Y29sLW1ham9yIEIKKyAgICBpbnQgbGRjID0gbjsgLy8gcm93LW1ham9yIEMKKyAgICBpbnQgbGRk ID0gbGRjOworCisgICAgLy8gVmFsaWRhdGUgbWF0cml4IGRpbWVuc2lvbnMKKyAgICBpZigobSA8 IChyb2N3bW1hX20gKiB0X2Jsb2NrX3ggLyB3YXZlX3NpemUpIHx8IG4gPCAocm9jd21tYV9uICog dF9ibG9ja195KSB8fCBrIDwgcm9jd21tYV9rKQorICAgICAgIHx8IChtICUgcm9jd21tYV9tIHwg biAlIHJvY3dtbWFfbiB8IGsgJSByb2N3bW1hX2spKQorICAgIHsKKyAgICAgICAgc3RkOjpjZXJy IDw8ICJFcnJvcjogTWF0cml4IGRpbWVuc2lvbnMgbm90IHN1cHBvcnRlZCIgPDwgc3RkOjplbmRs OworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBzdGQ6OmNvdXQgPDwgInJvY1dNTUEg U2ltcGxlIFNHRU1NIEV4YW1wbGUiIDw8IHN0ZDo6ZW5kbDsKKyAgICBzdGQ6OmNvdXQgPDwgIk1h dHJpeCBkaW1lbnNpb25zOiBBKCIgPDwgbSA8PCAieCIgPDwgayA8PCAiKSAqIEIoIiA8PCBrIDw8 ICJ4IiA8PCBuIDw8ICIpICsgQygiCisgICAgICAgICAgICAgIDw8IG0gPDwgIngiIDw8IG4gPDwg IikgPSBEKCIgPDwgbSA8PCAieCIgPDwgbiA8PCAiKSIgPDwgc3RkOjplbmRsOworCisgICAgLy8g Mi4gSW5pdGlhbGl6ZSBob3N0IG1hdHJpY2VzCisgICAgc3RkOjp2ZWN0b3I8ZmxvYXQzMl90PiBt YXRyaXhfYShtICogayk7CisgICAgc3RkOjp2ZWN0b3I8ZmxvYXQzMl90PiBtYXRyaXhfYihrICog bik7CisgICAgc3RkOjp2ZWN0b3I8ZmxvYXQzMl90PiBtYXRyaXhfYyhtICogbik7CisgICAgc3Rk Ojp2ZWN0b3I8ZmxvYXQzMl90PiBtYXRyaXhfZChtICogbiwgc3RkOjpudW1lcmljX2xpbWl0czxm bG9hdDMyX3Q+OjpzaWduYWxpbmdfTmFOKCkpOworCisgICAgZmlsbF9yYW5kKG1hdHJpeF9hLmRh dGEoKSwgbSwgayk7CisgICAgZmlsbF9yYW5kKG1hdHJpeF9iLmRhdGEoKSwgaywgbik7CisgICAg ZmlsbF9yYW5kKG1hdHJpeF9jLmRhdGEoKSwgbSwgbik7CisKKyAgICAvLyAzLiBBbGxvY2F0ZSBk ZXZpY2UgbWVtb3J5IGFuZCBjb3B5IGlucHV0IGRhdGEKKyAgICBmbG9hdDMyX3QqIGRfYTsKKyAg ICBmbG9hdDMyX3QqIGRfYjsKKyAgICBmbG9hdDMyX3QqIGRfYzsKKyAgICBmbG9hdDMyX3QqIGRf ZDsKKworICAgIGNvbnN0IHNpemVfdCBieXRlc19hID0gbWF0cml4X2Euc2l6ZSgpICogc2l6ZW9m KGZsb2F0MzJfdCk7CisgICAgY29uc3Qgc2l6ZV90IGJ5dGVzX2IgPSBtYXRyaXhfYi5zaXplKCkg KiBzaXplb2YoZmxvYXQzMl90KTsKKyAgICBjb25zdCBzaXplX3QgYnl0ZXNfYyA9IG1hdHJpeF9j LnNpemUoKSAqIHNpemVvZihmbG9hdDMyX3QpOworICAgIGNvbnN0IHNpemVfdCBieXRlc19kID0g bWF0cml4X2Quc2l6ZSgpICogc2l6ZW9mKGZsb2F0MzJfdCk7CisKKyAgICBISVBfQ0hFQ0soaGlw TWFsbG9jKCZkX2EsIGJ5dGVzX2EpKTsKKyAgICBISVBfQ0hFQ0soaGlwTWFsbG9jKCZkX2IsIGJ5 dGVzX2IpKTsKKyAgICBISVBfQ0hFQ0soaGlwTWFsbG9jKCZkX2MsIGJ5dGVzX2MpKTsKKyAgICBI SVBfQ0hFQ0soaGlwTWFsbG9jKCZkX2QsIGJ5dGVzX2QpKTsKKworICAgIEhJUF9DSEVDSyhoaXBN ZW1jcHkoZF9hLCBtYXRyaXhfYS5kYXRhKCksIGJ5dGVzX2EsIGhpcE1lbWNweUhvc3RUb0Rldmlj ZSkpOworICAgIEhJUF9DSEVDSyhoaXBNZW1jcHkoZF9iLCBtYXRyaXhfYi5kYXRhKCksIGJ5dGVz X2IsIGhpcE1lbWNweUhvc3RUb0RldmljZSkpOworICAgIEhJUF9DSEVDSyhoaXBNZW1jcHkoZF9j LCBtYXRyaXhfYy5kYXRhKCksIGJ5dGVzX2MsIGhpcE1lbWNweUhvc3RUb0RldmljZSkpOworICAg IEhJUF9DSEVDSyhoaXBNZW1jcHkoZF9kLCBtYXRyaXhfZC5kYXRhKCksIGJ5dGVzX2QsIGhpcE1l bWNweUhvc3RUb0RldmljZSkpOworCisgICAgLy8gNC4gQ29uZmlndXJlIGtlcm5lbCBsYXVuY2gg cGFyYW1ldGVycworICAgIGF1dG8gYmxvY2tfZGltID0gZGltMyh0X2Jsb2NrX3gsIHRfYmxvY2tf eSk7CisgICAgYXV0byBncmlkX2RpbSAgPSBkaW0zKHJvY3dtbWE6OmNlaWxfZGl2KG0sIHJvY3dt bWFfbSAqIHRfYmxvY2tfeCAvIHdhdmVfc2l6ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAg cm9jd21tYTo6Y2VpbF9kaXYobiwgcm9jd21tYV9uICogdF9ibG9ja195KSk7CisKKyAgICBzdGQ6 OmNvdXQgPDwgIkxhdW5jaGluZyBrZXJuZWwgd2l0aCBncmlkKCIgPDwgZ3JpZF9kaW0ueCA8PCAi LCIgPDwgZ3JpZF9kaW0ueSA8PCAiKSBibG9jaygiCisgICAgICAgICAgICAgIDw8IGJsb2NrX2Rp bS54IDw8ICIsIiA8PCBibG9ja19kaW0ueSA8PCAiKSIgPDwgc3RkOjplbmRsOworCisgICAgLy8g NS4gTGF1bmNoIHJvY1dNTUEgU0dFTU0ga2VybmVsCisgICAgLy8gV2FybS11cAorICAgIGZvcih1 aW50MzJfdCBpID0gMDsgaSA8IDU7ICsraSkKKyAgICB7CisgICAgICAgIHNnZW1tX3JvY3dtbWFf ZDw8PGdyaWRfZGltLCBibG9ja19kaW0+Pj4obSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZF9hLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRfYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkX2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZF9kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxkYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZGIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGRjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxkZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh bHBoYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi ZXRhKTsKKyAgICB9CisKKyAgICBjb25zdGV4cHIgdWludDMyX3QgcmVjb3JkX3J1bnMgPSAxMDB1 OworCisgICAgLy8gQWN0dWFsIHJlY29yZGVkIHJ1bnMKKyAgICBoaXBFdmVudF90IHN0YXJ0X2V2 ZW50LCBzdG9wX2V2ZW50OworICAgIEhJUF9DSEVDSyhoaXBFdmVudENyZWF0ZSgmc3RhcnRfZXZl bnQpKTsKKyAgICBISVBfQ0hFQ0soaGlwRXZlbnRDcmVhdGUoJnN0b3BfZXZlbnQpKTsKKworICAg IEhJUF9DSEVDSyhoaXBFdmVudFJlY29yZChzdGFydF9ldmVudCkpOworICAgIGZvcih1aW50MzJf dCBpID0gMDsgaSA8IHJlY29yZF9ydW5zOyArK2kpCisgICAgeworICAgICAgICBzZ2VtbV9yb2N3 bW1hX2Q8PDxncmlkX2RpbSwgYmxvY2tfZGltPj4+KG0sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRfYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkX2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZF9jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRfZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGRiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxkYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYWxwaGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYmV0YSk7CisgICAgfQorICAgIEhJUF9DSEVDSyhoaXBFdmVudFJlY29yZChzdG9wX2V2ZW50 KSk7CisgICAgSElQX0NIRUNLKGhpcEV2ZW50U3luY2hyb25pemUoc3RvcF9ldmVudCkpOworCisg ICAgYXV0byBlbGFwc2VkX3RpbWVfbXMgPSAwLjBmOworICAgIEhJUF9DSEVDSyhoaXBFdmVudEVs YXBzZWRUaW1lKCZlbGFwc2VkX3RpbWVfbXMsIHN0YXJ0X2V2ZW50LCBzdG9wX2V2ZW50KSk7CisK KyAgICBhdXRvIGdmbG9wcyA9IGNhbGN1bGF0ZV9nZmxvcHMobSwgbiwgayk7CisgICAgYXV0byB0 ZmxvcHNfcGVyX3NlYworICAgICAgICA9IGNhbGN1bGF0ZV90ZmxvcHNfcGVyX3NlYyhtLCBuLCBr LCBzdGF0aWNfY2FzdDxkb3VibGU+KGVsYXBzZWRfdGltZV9tcyksIHJlY29yZF9ydW5zKTsKKwor ICAgIEhJUF9DSEVDSyhoaXBFdmVudERlc3Ryb3koc3RhcnRfZXZlbnQpKTsKKyAgICBISVBfQ0hF Q0soaGlwRXZlbnREZXN0cm95KHN0b3BfZXZlbnQpKTsKKworICAgIC8vIEVjaG8gcGVyZm9ybWFu Y2UKKyAgICBzdGQ6OmNvdXQgPDwgc3RkOjpsZWZ0IDw8IHN0ZDo6c2V0dyg4KSA8PCAiVEJsb2Nr WCIgPDwgc3RkOjpzZXR3KDgpIDw8ICJUQmxvY2tZIiA8PCBzdGQ6OnNldHcoOCkKKyAgICAgICAg ICAgICAgPDwgIkJsb2Nrc00iIDw8IHN0ZDo6c2V0dyg4KSA8PCAiQmxvY2tzTiIgPDwgc3RkOjpz ZXR3KDYpIDw8ICJCbGtNIiA8PCBzdGQ6OnNldHcoNikKKyAgICAgICAgICAgICAgPDwgIkJsa04i IDw8IHN0ZDo6c2V0dyg2KSA8PCAiQmxrSyIgPDwgc3RkOjpzZXR3KDgpIDw8ICJNYXRNIiA8PCBz dGQ6OnNldHcoOCkKKyAgICAgICAgICAgICAgPDwgIk1hdE4iIDw8IHN0ZDo6c2V0dyg4KSA8PCAi TWF0SyIgPDwgc3RkOjpzZXR3KDgpIDw8ICJhbHBoYSIgPDwgc3RkOjpzZXR3KDgpCisgICAgICAg ICAgICAgIDw8ICJsZGEiIDw8IHN0ZDo6c2V0dyg4KSA8PCAibGRiIiA8PCBzdGQ6OnNldHcoOCkg PDwgImJldGEiIDw8IHN0ZDo6c2V0dyg4KSA8PCAibGRjIgorICAgICAgICAgICAgICA8PCBzdGQ6 OnNldHcoOCkgPDwgImxkZCIgPDwgc3RkOjpzZXR3KDEzKSA8PCAiZWxhcHNlZE1zIiA8PCBzdGQ6 OnNldHcoMjMpCisgICAgICAgICAgICAgIDw8ICJQcm9ibGVtIFNpemUoR0Zsb3BzKSIgPDwgc3Rk OjpzZXR3KDEwKSA8PCAiVEZsb3BzL3MiIDw8IHN0ZDo6ZW5kbDsKKworICAgIHN0ZDo6Y291dCA8 PCBzdGQ6OmxlZnQgPDwgc3RkOjpzZXR3KDgpIDw8IHRfYmxvY2tfeCA8PCBzdGQ6OnNldHcoOCkg PDwgdF9ibG9ja195IDw8IHN0ZDo6c2V0dyg4KQorICAgICAgICAgICAgICA8PCAiTi9BIiA8PCBz dGQ6OnNldHcoOCkgPDwgIk4vQSIgPDwgc3RkOjpzZXR3KDYpIDw8IHJvY3dtbWFfbSA8PCBzdGQ6 OnNldHcoNikKKyAgICAgICAgICAgICAgPDwgcm9jd21tYV9uIDw8IHN0ZDo6c2V0dyg2KSA8PCBy b2N3bW1hX2sgPDwgc3RkOjpzZXR3KDgpIDw8IG0gPDwgc3RkOjpzZXR3KDgpIDw8IG4KKyAgICAg ICAgICAgICAgPDwgc3RkOjpzZXR3KDgpIDw8IGsgPDwgc3RkOjpzZXR3KDgpIDw8IGFscGhhIDw8 IHN0ZDo6c2V0dyg4KSA8PCBsZGEgPDwgc3RkOjpzZXR3KDgpCisgICAgICAgICAgICAgIDw8IGxk YiA8PCBzdGQ6OnNldHcoOCkgPDwgYmV0YSA8PCBzdGQ6OnNldHcoOCkgPDwgbGRjIDw8IHN0ZDo6 c2V0dyg4KSA8PCBsZGQKKyAgICAgICAgICAgICAgPDwgc3RkOjpzZXR3KDEzKSA8PCBlbGFwc2Vk X3RpbWVfbXMgPDwgc3RkOjpzZXR3KDIzKSA8PCBnZmxvcHMgPDwgc3RkOjpzZXR3KDEwKQorICAg ICAgICAgICAgICA8PCB0ZmxvcHNfcGVyX3NlYyA8PCBzdGQ6OmVuZGw7CisKKyAgICAvLyA2LiBD b3B5IHJlc3VsdCBiYWNrIHRvIGhvc3QKKyAgICBISVBfQ0hFQ0soaGlwTWVtY3B5KG1hdHJpeF9k LmRhdGEoKSwgZF9kLCBieXRlc19kLCBoaXBNZW1jcHlEZXZpY2VUb0hvc3QpKTsKKworICAgIC8v IDcuIFZhbGlkYXRlIHJlc3VsdCAoQ1BVIHJlZmVyZW5jZSBjYWxjdWxhdGlvbikKKyAgICBzdGQ6 OnZlY3RvcjxmbG9hdDMyX3Q+IG1hdHJpeF9kX3JlZihtICogbiwgc3RkOjpudW1lcmljX2xpbWl0 czxmbG9hdDMyX3Q+OjpzaWduYWxpbmdfTmFOKCkpOworICAgIGdlbW1fY3B1X2g8ZmxvYXQzMl90 LCBmbG9hdDMyX3QsIGZsb2F0MzJfdCwgcm93X21ham9yLCBjb2xfbWFqb3IsIHJvd19tYWpvcj4o CisgICAgICAgIG0sCisgICAgICAgIG4sCisgICAgICAgIGssCisgICAgICAgIG1hdHJpeF9hLmRh dGEoKSwKKyAgICAgICAgbWF0cml4X2IuZGF0YSgpLAorICAgICAgICBtYXRyaXhfYy5kYXRhKCks CisgICAgICAgIG1hdHJpeF9kX3JlZi5kYXRhKCksCisgICAgICAgIGxkYSwKKyAgICAgICAgbGRi LAorICAgICAgICBsZGMsCisgICAgICAgIGxkZCwKKyAgICAgICAgYWxwaGEsCisgICAgICAgIGJl dGEpOworCisgICAgYXV0byByZXMgPSBjb21wYXJlX2VxdWFsPGZsb2F0MzJfdD4obWF0cml4X2Qu ZGF0YSgpLCBtYXRyaXhfZF9yZWYuZGF0YSgpLCBtICogbik7CisKKyAgICBpZihzdGQ6OmdldDww PihyZXMpID09IGZhbHNlKQorICAgIHsKKyAgICAgICAgc3RkOjpjb3V0IDw8ICJGQUlMRUQhIiA8 PCBzdGQ6OmVuZGw7CisgICAgICAgIHN0ZDo6Y291dCA8PCAiTWF4IHJlbGF0aXZlIGVycm9yOiAi IDw8IHN0ZDo6Z2V0PDE+KHJlcykgPDwgc3RkOjplbmRsOworICAgICAgICBzdGQ6OmV4aXQoRVhJ VF9GQUlMVVJFKTsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgc3RkOjpjb3V0IDw8 ICJQQVNTRUQhIiA8PCBzdGQ6OmVuZGw7CisgICAgfQorCisgICAgLy8gOC4gQ2xlYW4gdXAgZGV2 aWNlIG1lbW9yeQorICAgIEhJUF9DSEVDSyhoaXBGcmVlKGRfYSkpOworICAgIEhJUF9DSEVDSyho aXBGcmVlKGRfYikpOworICAgIEhJUF9DSEVDSyhoaXBGcmVlKGRfYykpOworICAgIEhJUF9DSEVD SyhoaXBGcmVlKGRfZCkpOworCisgICAgcmV0dXJuIDA7Cit9CgpkaWZmIC0tZ2l0IGEvdGVzdC5z aCBiL3Rlc3Quc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGNkZjVmYwot LS0gL2Rldi9udWxsCisrKyBiL3Rlc3Quc2gKQEAgLTAsMCArMSw5IEBACisjISAvdXNyL2Jpbi9l bnYgc2gKKworQlBBVEg9L3Vzci9iaW4KK0lQQVRIPS91c3IvaW5jbHVkZQorTFBBVEg9L3Vzci9s aWI2NAorCitPVVQ9JChta3RlbXAgLWQpCiske0JQQVRIfS9oaXBjYyAtbyAiJE9VVCIvdGVzdCB0 ZXN0LmNwcCAtSSR7SVBBVEh9IC1MJHtMUEFUSH0gLWxhbWRoaXA2NAorIiRPVVQiL3Rlc3QK