From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: =?utf-8?q?=5BPATCH_1/2=5D_tests/drv=5Fhangman=3A_Conv?= =?utf-8?q?ert_test_from_shell_script_to_c?= Date: Tue, 20 May 2014 14:55:32 +0300 Message-ID: <1400586933-6724-1-git-send-email-mika.kuoppala@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 6BFEB6E162 for ; Tue, 20 May 2014 04:55:41 -0700 (PDT) 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 TWl4aW5nIHNjcmlwdCBhbmQgc3RhbmRsb25lIHRlc3RzIGRpZG4ndCBtaXggd2VsbCB3aXRoIHRo ZQpzdHJpY3QgaTkxNV9yaW5nX3N0b3AgZmxhZ3MgaGFuZGxpbmcuIEFsc28gc3F1YXNoIGRydl9t aXNzZWRfaXJxX2hhbmcKdG8gdGhlIG5ldyB0ZXN0LgoKQnVnemlsbGE6IGh0dHBzOi8vYnVncy5m cmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTc4MzIyClN1Z2dlc3RlZC1ieTogRGFuaWVs IFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KU2lnbmVkLW9mZi1ieTogTWlrYSBLdW9w cGFsYSA8bWlrYS5rdW9wcGFsYUBpbnRlbC5jb20+Ci0tLQogdGVzdHMvTWFrZWZpbGUuc291cmNl cyAgICB8ICAgIDMgKy0KIHRlc3RzL2Rydl9oYW5nbWFuICAgICAgICAgfCAgIDcwIC0tLS0tLS0t LQogdGVzdHMvZHJ2X2hhbmdtYW4uYyAgICAgICB8ICAzNTcgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiB0ZXN0cy9kcnZfbWlzc2VkX2lycV9oYW5nIHwgICA3 MCAtLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMzU4IGluc2VydGlvbnMoKyksIDE0MiBkZWxl dGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9kcnZfaGFuZ21hbgogY3JlYXRlIG1v ZGUgMTAwNjQ0IHRlc3RzL2Rydl9oYW5nbWFuLmMKIGRlbGV0ZSBtb2RlIDEwMDc1NSB0ZXN0cy9k cnZfbWlzc2VkX2lycV9oYW5nCgpkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBi L3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggZmJmNjNlOS4uOWY1Y2Q3NiAxMDA2NDQKLS0t IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcworKysgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCkBA IC0xNyw2ICsxNyw3IEBAIE5PVVZFQVVfVEVTVFNfTSA9IFwKIFRFU1RTX3Byb2dzX00gPSBcCiAJ Y29yZV9nZXRfY2xpZW50X2F1dGggXAogCWRydl9zdXNwZW5kIFwKKwlkcnZfaGFuZ21hbiBcCiAJ Z2VtX2JhZF9yZWxvYyBcCiAJZ2VtX2Jhc2ljIFwKIAlnZW1fY2FjaGluZyBcCkBAIC0xNDgsOCAr MTQ5LDYgQEAgVEVTVFNfc2NyaXB0c19NID0gXAogVEVTVFNfc2NyaXB0cyA9IFwKIAlkZWJ1Z2Zz X2Vtb25fY3Jhc2ggXAogCWRydl9kZWJ1Z2ZzX3JlYWRlciBcCi0JZHJ2X2hhbmdtYW4gXAotCWRy dl9taXNzZWRfaXJxX2hhbmcgXAogCWRydl9tb2R1bGVfcmVsb2FkIFwKIAlrbXNfc3lzZnNfZWRp ZF90aW1pbmcgXAogCXN5c2ZzX2wzX3Bhcml0eSBcCmRpZmYgLS1naXQgYS90ZXN0cy9kcnZfaGFu Z21hbiBiL3Rlc3RzL2Rydl9oYW5nbWFuCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA2 YjMxMGJjLi4wMDAwMDAwCi0tLSBhL3Rlc3RzL2Rydl9oYW5nbWFuCisrKyAvZGV2L251bGwKQEAg LTEsNzAgKzAsMCBAQAotIyEvYmluL2Jhc2gKLSMKLSMgVGVzdGNhc2U6IFNpbXVsYXRlIGdwdSBo YW5nCi0jCi0jIFRoaXMgY2hlY2sgdXNlcyB0aGUgc3RvcF9yaW5ncyBmYWNpbGl0eSB0byBleGVy Y2lzZSB0aGUgZ3B1IGhhbmcgY29kZS4KLSMgYnkgcmVhZGluZyAvc3lzL2tlcm5lbC9kZWJ1Zy9k cmkvMC9pOTE1X2Vtb25fc3RhdHVzIHRvbyBxdWlja2x5Ci0jCi0KLVNPVVJDRV9ESVI9IiQoIGRp cm5hbWUgIiR7QkFTSF9TT1VSQ0VbMF19IiApIgotLiAkU09VUkNFX0RJUi9kcm1fbGliLnNoCi0K LW9sZHBhdGg9YHB3ZGAKLQotY2QgJGk5MTVfZGZzX3BhdGgKLQotaWYgWyAhIC1mIGk5MTVfcmlu Z19zdG9wIF0gOyB0aGVuCi0JZWNobyAia2VybmVsIGRvZXNuJ3Qgc3VwcG9ydCByaW5nIHN0b3Bw aW5nIgotCWV4aXQgNzcKLWZpCi0KLWZ1bmN0aW9uIGNoZWNrX2lmYWNlIHsKLSAgICBkaXI9IiQx IgotICAgIGZpbGU9IiQyIgotICAgIG1hbmRhdG9yeT0iJDMiCi0KLSAgICBbIC16ICIkZGlyIiBd ICYmIHJldHVybgotCi0gICAgcGF0aD0iJGRpci8kZmlsZSIKLSAgICBlY2hvIGNoZWNraW5nICR7 cGF0aH0KLQotICAgIGlmIFsgISAtZiAiJHBhdGgiIF0gOyB0aGVuCi0JaWYgWyAgJG1hbmRhdG9y eSAhPSAwIF0gOyB0aGVuCi0JICAgIGVjaG8gIicke3BhdGh9JyBub3QgZm91bmQiOwotCSAgICBl eGl0IDE7Ci0JZWxzZQotCSAgICBlY2hvICIke3BhdGh9IG5vdCBtYW5kYXRvcnkiOwotCSAgICBy ZXR1cm47Ci0JZmkKLSAgICBmaQotCi0gICAgaWYgY2F0ICIkcGF0aCIgfCBncmVwIC12ICJubyBl cnJvciBzdGF0ZSBjb2xsZWN0ZWQiID4gL2Rldi9udWxsIDsgdGhlbgotCWVjaG8gImdwdSBoYW5n IGRldGVjdGVkIgotCWV4aXQgMgotICAgIGZpCi0KLSAgICBlY2hvIDB4ZiA+IGk5MTVfcmluZ19z dG9wCi0gICAgZWNobyAicmluZ3Mgc3RvcHBlZCIKLQotICAgIChjZCAkb2xkcGF0aDsgJFNPVVJD RV9ESVIvZ2VtX2V4ZWNfYmlnKSA+IC9kZXYvbnVsbAotCi0gICAgaWYgY2F0ICIkcGF0aCIgfCBn cmVwIC12ICJubyBlcnJvciBzdGF0ZSBjb2xsZWN0ZWQiID4gL2Rldi9udWxsIDsgdGhlbgotCWVj aG8gImdwdSBoYW5nIGNvcnJlY3RseSBkZXRlY3RlZCIKLSAgICBlbHNlCi0JZWNobyAiZ3B1IGhh bmcgbm90IGRldGVjdGVkIgotCWV4aXQgMwotICAgIGZpCi0KLSMgY2xlYXIgZXJyb3Igc3RhdGUK LSAgICBlY2hvID4gIiRwYXRoIgotCi0gICAgaWYgY2F0ICIkcGF0aCIgfCBncmVwIC12ICJubyBl cnJvciBzdGF0ZSBjb2xsZWN0ZWQiID4gL2Rldi9udWxsIDsgdGhlbgotCWVjaG8gImdwdSBoYW5n IHN0aWxsIHByZXNlbnQiCi0JZXhpdCA0Ci0gICAgZmkKLX0KLQotY2hlY2tfaWZhY2UgIiRpOTE1 X2Rmc19wYXRoIiBpOTE1X2Vycm9yX3N0YXRlIDEKLWNoZWNrX2lmYWNlICIkaTkxNV9zZnNfcGF0 aCIgZXJyb3IgMAotCi1leGl0IDAKZGlmZiAtLWdpdCBhL3Rlc3RzL2Rydl9oYW5nbWFuLmMgYi90 ZXN0cy9kcnZfaGFuZ21hbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNm MTQxYzYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9kcnZfaGFuZ21hbi5jCkBAIC0wLDAgKzEs MzU3IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTQgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisg KiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBl cnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVk IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhl IFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRp b24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBk aXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0 d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBm dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgor ICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90 aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQg aW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJl LgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB TlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBF VkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF IEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJ TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBG Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNF IE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczoK KyAqICAgIE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAaW50ZWwuY29tPgorICoKKyAqLwor CisjaW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8 c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorCisjaW5jbHVkZSAiZHJtdGVzdC5oIgor I2luY2x1ZGUgImlndF9kZWJ1Z2ZzLmgiCisjaW5jbHVkZSAiaW9jdGxfd3JhcHBlcnMuaCIKKwor c3RhdGljIGludCBfcmVhZF9zeXNmcyh2b2lkICpkc3QsIGludCBtYXhsZW4sCisJCSAgICAgIGNv bnN0IGNoYXIqIHBhdGgsCisJCSAgICAgIGNvbnN0IGNoYXIgKmZuYW1lKQoreworCWludCBmZDsK KwljaGFyIGZ1bGxbUEFUSF9NQVhdOworCWludCByLCBlOworCisJaWd0X2Fzc2VydChzbnByaW50 ZihmdWxsLCBQQVRIX01BWCwgIiVzLyVzIiwgcGF0aCwgZm5hbWUpIDwgUEFUSF9NQVgpOworCisJ ZmQgPSBvcGVuKGZ1bGwsIE9fUkRPTkxZKTsKKwlpZiAoZmQgPT0gLTEpCisJCXJldHVybiAtZXJy bm87CisKKwlyID0gcmVhZChmZCwgZHN0LCBtYXhsZW4pOworCWUgPSBlcnJubzsKKwljbG9zZShm ZCk7CisKKwlpZiAociA8IDApCisJCXJldHVybiAtZTsKKworCXJldHVybiByOworfQorCitzdGF0 aWMgaW50IHJlYWRfc3lzZnModm9pZCAqZHN0LCBpbnQgbWF4bGVuLCBjb25zdCBjaGFyICpmbmFt ZSkKK3sKKwljaGFyIHBhdGhbUEFUSF9NQVhdOworCisJaWd0X2Fzc2VydChzbnByaW50ZihwYXRo LCBQQVRIX01BWCwgIi9zeXMvY2xhc3MvZHJtL2NhcmQlZCIsCisJCQkgICAgZHJtX2dldF9jYXJk KCkpIDwgUEFUSF9NQVgpOworCisJcmV0dXJuIF9yZWFkX3N5c2ZzKGRzdCwgbWF4bGVuLCBwYXRo LCBmbmFtZSk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rfc3lzZnNfZXJyb3JfZXhpc3RzKHZvaWQp Cit7CisJY2hhciB0bXBbMTAyNF07CisKKwlpZ3RfYXNzZXJ0KHJlYWRfc3lzZnModG1wLCBzaXpl b2YodG1wKSwgImVycm9yIikgPiAwKTsKK30KKworc3RhdGljIHZvaWQgdGVzdF9kZWJ1Z2ZzX2Vy cm9yX3N0YXRlX2V4aXN0cyh2b2lkKQoreworCWludCBmZDsKKworCWlndF9hc3NlcnQoKGZkID0g aWd0X2RlYnVnZnNfb3BlbigiaTkxNV9lcnJvcl9zdGF0ZSIsIE9fUkRPTkxZKSkgPj0gMCk7CisK KwljbG9zZSAoZmQpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X2RlYnVnZnNfcmluZ19zdG9wX2V4 aXN0cyh2b2lkKQoreworCWludCBmZDsKKworCWlndF9hc3NlcnQoKGZkID0gaWd0X2RlYnVnZnNf b3BlbigiaTkxNV9yaW5nX3N0b3AiLCBPX1JET05MWSkpID49IDApOworCisJY2xvc2UoZmQpOwor fQorCitzdGF0aWMgdm9pZCB0ZXN0X2RlYnVnZnNfcmluZ19pcnFfZXhpc3RzKHZvaWQpCit7CisJ aW50IGZkOworCisJaWd0X2Fzc2VydCgoZmQgPSBpZ3RfZGVidWdmc19vcGVuKCJpOTE1X3Jpbmdf bWlzc2VkX2lycSIsIE9fUkRPTkxZKSkgPj0gMCk7CisKKwljbG9zZShmZCk7CisKKwlpZ3RfYXNz ZXJ0KChmZCA9IGlndF9kZWJ1Z2ZzX29wZW4oImk5MTVfcmluZ190ZXN0X2lycSIsIE9fUkRPTkxZ KSkgPj0gMCk7CisKKwljbG9zZShmZCk7Cit9CisKK3N0YXRpYyB2b2lkIHJlYWRfZGZzKGNvbnN0 IGNoYXIgKmZuYW1lLCBjaGFyICpkLCBpbnQgbWF4bGVuKQoreworCWludCBmZDsKKwlpbnQgbDsK KworCWlndF9hc3NlcnQoKGZkID0gaWd0X2RlYnVnZnNfb3BlbihmbmFtZSwgT19SRE9OTFkpKSA+ PSAwKTsKKworCWlndF9hc3NlcnQoKGwgPSByZWFkKGZkLCBkLCBtYXhsZW4tMSkpID4gMCk7CisJ aWd0X2Fzc2VydChsIDwgbWF4bGVuKTsKKwlkW2xdID0gMDsKKwljbG9zZShmZCk7CisKKwlpZ3Rf ZGVidWcoImRmcyBlbnRyeSAlcyByZWFkICclcydcbiIsIGZuYW1lLCBkKTsKK30KKworc3RhdGlj IHZvaWQgd3JpdGVfZGZzKGNvbnN0IGNoYXIgKmZuYW1lLCBjb25zdCBjaGFyICpzKQoreworCWlu dCBmZDsKKworCWlndF9hc3NlcnQoKGZkID0gaWd0X2RlYnVnZnNfb3BlbihmbmFtZSwgT19XUk9O TFkpKSA+PSAwKTsKKworCWlndF9hc3NlcnQod3JpdGUoZmQsIHMsIHN0cmxlbihzKSkgPT0gc3Ry bGVuKHMpKTsKKwljbG9zZShmZCk7CisKKwlpZ3RfZGVidWcoImRmcyBlbnRyeSAlcyB3cml0ZSAn JXMnXG4iLCBmbmFtZSwgcyk7Cit9CisKK3N0YXRpYyB2b2lkIF9hc3NlcnRfZGZzX2VudHJ5KGNv bnN0IGNoYXIgKmZuYW1lLCBjb25zdCBjaGFyICpzLCBib29sIGludmVyc2UpCit7CisJY2hhciB0 bXBbMTAyNF07CisJY29uc3QgaW50IGwgPSBzdHJsZW4ocykgPCBzaXplb2YodG1wKSA/CisJCXN0 cmxlbihzKSA6IHNpemVvZih0bXApOworCisJcmVhZF9kZnMoZm5hbWUsIHRtcCwgbCArIDEpOwor CWlmICghaW52ZXJzZSkgeworCQlpZiAoc3RybmNtcCh0bXAsIHMsIGwpICE9IDApIHsKKwkJCWZw cmludGYoc3RkZXJyLCAiY29udGVudHMgb2YgJXM6ICclcycgKGV4cGVjdGVkICclcycpXG4iLAor CQkJICAgICAgIGZuYW1lLCB0bXAsIHMpOworCQkJaWd0X2ZhaWwoMSk7CisJCX0KKwl9IGVsc2Ug eworCQlpZiAoc3RybmNtcCh0bXAsIHMsIGwpID09IDApIHsKKwkJCWZwcmludGYoc3RkZXJyLCAi Y29udGVudHMgb2YgJXM6ICclcycgKGV4cGVjdGVkIG5vdCAnJXMnXG4iLAorCQkJICAgICAgIGZu YW1lLCB0bXAsIHMpOworCQkJaWd0X2ZhaWwoMSk7CisJCX0KKwl9Cit9CisKK3N0YXRpYyB2b2lk IGFzc2VydF9kZnNfZW50cnkoY29uc3QgY2hhciAqZm5hbWUsIGNvbnN0IGNoYXIgKnMpCit7CisJ X2Fzc2VydF9kZnNfZW50cnkoZm5hbWUsIHMsIGZhbHNlKTsKK30KKworc3RhdGljIHZvaWQgYXNz ZXJ0X2Rmc19lbnRyeV9ub3QoY29uc3QgY2hhciAqZm5hbWUsIGNvbnN0IGNoYXIgKnMpCit7CisJ X2Fzc2VydF9kZnNfZW50cnkoZm5hbWUsIHMsIHRydWUpOworfQorCitzdGF0aWMgdm9pZCB3cml0 ZV9hbmRfYXNzZXJ0X2Rmc19lbnRyeShjb25zdCBjaGFyICpmbmFtZSwgY29uc3QgY2hhciAqcykK K3sKKwl3cml0ZV9kZnMoZm5hbWUsIHMpOworCWFzc2VydF9kZnNfZW50cnkoZm5hbWUsIHMpOwor fQorCitzdGF0aWMgdm9pZCBhc3NlcnRfZXJyb3Jfc3RhdGVfY2xlYXIodm9pZCkKK3sKKwlhc3Nl cnRfZGZzX2VudHJ5KCJpOTE1X2Vycm9yX3N0YXRlIiwgIm5vIGVycm9yIHN0YXRlIGNvbGxlY3Rl ZCIpOworfQorCitzdGF0aWMgdm9pZCBhc3NlcnRfZXJyb3Jfc3RhdGVfY29sbGVjdGVkKHZvaWQp Cit7CisJYXNzZXJ0X2Rmc19lbnRyeV9ub3QoImk5MTVfZXJyb3Jfc3RhdGUiLCAibm8gZXJyb3Ig c3RhdGUgY29sbGVjdGVkIik7Cit9CisKK3N0YXRpYyBpbnQgZ2V0X2xpbmVfY291bnQoY29uc3Qg Y2hhciAqcykKK3sKKwlpbnQgY291bnQgPSAwOworCisJd2hpbGUgKCpzKSB7CisJCWlmICgqcyA9 PSAnXG4nKQorCQkJY291bnQrKzsKKwkJcysrOworCX0KKworCXJldHVybiBjb3VudDsKK30KKwor c3RhdGljIHZvaWQgY2hlY2tfb3RoZXJfY2xpZW50cyh2b2lkKQoreworCWNoYXIgdG1wWzEwMjRd OworCWNoYXIgKnM7CisKKwlyZWFkX2RmcygiY2xpZW50cyIsIHRtcCwgc2l6ZW9mKHRtcCkpOwor CWlmIChnZXRfbGluZV9jb3VudCh0bXApID09IDIpCisJCXJldHVybjsKKworCWlmIChnZXRfbGlu ZV9jb3VudCh0bXApID09IDMpIHsKKwkJaW50IGRldiwgcGlkLCB1aWQsIG1hZ2ljOworCQlzID0g c3Ryc3RyKHRtcCwgInkiKTsKKwkJaWd0X2Fzc2VydChzICE9IE5VTEwpOworCQlpZ3RfYXNzZXJ0 KHNzY2FuZihzLCAieSAlZCAlZCAlZCAlZCIsCisJCQkJICAmZGV2LCAmcGlkLCAmdWlkLCAmbWFn aWMpID09IDQpOworCisJCWlndF9kZWJ1ZygiY2xpZW50ICVkICVkICVkICVkXG4iLCBkZXYsIHBp ZCwgdWlkLCBtYWdpYyk7CisKKwkJaWd0X2Fzc2VydChwaWQgPT0gZ2V0cGlkKCkpOworCisJCWln dF9kZWJ1ZygiZm91bmQgbXlzZWxmIGluIGNsaWVudCBsaXN0XG4iKTsKKworCQlyZXR1cm47CisJ fQorCisJaWd0X2Fzc2VydF9mKDAsICJvdGhlciBjbGllbnRzIHJ1bm5pbmdcbiIpOworfQorCitz dGF0aWMgdWludDY0X3Qgc3VibWl0X2JhdGNoKGludCBmZCwgdW5zaWduZWQgcmluZ19pZCwgYm9v bCBzdG9wX3JpbmcpCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiBleGVjYnVm OworCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIGV4ZWM7CisJY29uc3QgdWludDMy X3QgYmF0Y2hbMl0gPSB7IE1JX0JBVENIX0JVRkZFUl9FTkQsIDAgfTsKKwl1aW50NjRfdCBwcmVz dW1lZF9vZmZzZXQ7CisKKwlnZW1fcmVxdWlyZV9yaW5nKGZkLCByaW5nX2lkKTsKKworCWV4ZWMu aGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7CisJZ2VtX3dyaXRlKGZkLCBleGVjLmhhbmRs ZSwgMCwgYmF0Y2gsIHNpemVvZihiYXRjaCkpOworCWV4ZWMucmVsb2NhdGlvbl9jb3VudCA9IDA7 CisJZXhlYy5yZWxvY3NfcHRyID0gMDsKKwlleGVjLmFsaWdubWVudCA9IDA7CisJZXhlYy5vZmZz ZXQgPSAwOworCWV4ZWMuZmxhZ3MgPSAwOworCWV4ZWMucnN2ZDEgPSAwOworCWV4ZWMucnN2ZDIg PSAwOworCisJZXhlY2J1Zi5idWZmZXJzX3B0ciA9ICh1aW50cHRyX3QpJmV4ZWM7CisJZXhlY2J1 Zi5idWZmZXJfY291bnQgPSAxOworCWV4ZWNidWYuYmF0Y2hfc3RhcnRfb2Zmc2V0ID0gMDsKKwll eGVjYnVmLmJhdGNoX2xlbiA9IHNpemVvZihiYXRjaCk7CisJZXhlY2J1Zi5jbGlwcmVjdHNfcHRy ID0gMDsKKwlleGVjYnVmLm51bV9jbGlwcmVjdHMgPSAwOworCWV4ZWNidWYuRFIxID0gMDsKKwll eGVjYnVmLkRSNCA9IDA7CisJZXhlY2J1Zi5mbGFncyA9IHJpbmdfaWQ7CisJaTkxNV9leGVjYnVm ZmVyMl9zZXRfY29udGV4dF9pZChleGVjYnVmLCAwKTsKKwlleGVjYnVmLnJzdmQyID0gMDsKKwor CWdlbV9leGVjYnVmKGZkLCAmZXhlY2J1Zik7CisJZ2VtX3N5bmMoZmQsIGV4ZWMuaGFuZGxlKTsK KwlwcmVzdW1lZF9vZmZzZXQgPSBleGVjLm9mZnNldDsKKworCWlmIChzdG9wX3JpbmcpIHsKKwkJ aWd0X3NldF9zdG9wX3JpbmdzKGlndF90b19zdG9wX3JpbmdfZmxhZyhyaW5nX2lkKSk7CisKKwkJ Z2VtX2V4ZWNidWYoZmQsICZleGVjYnVmKTsKKwkJZ2VtX3N5bmMoZmQsIGV4ZWMuaGFuZGxlKTsK KworCQlpZ3RfYXNzZXJ0KGlndF9nZXRfc3RvcF9yaW5ncygpID09IFNUT1BfUklOR19OT05FKTsK KwkJaWd0X2Fzc2VydChwcmVzdW1lZF9vZmZzZXQgPT0gZXhlYy5vZmZzZXQpOworCX0KKworCWdl bV9jbG9zZShmZCwgZXhlYy5oYW5kbGUpOworCisJcmV0dXJuIGV4ZWMub2Zmc2V0OworfQorCitz dGF0aWMgdm9pZCBjbGVhcl9lcnJvcl9zdGF0ZSh2b2lkKQoreworCWludCBmZDsKKwljb25zdCBj aGFyICpiID0gIjEiOworCisJaWd0X2Fzc2VydCgoZmQgPSBpZ3RfZGVidWdmc19vcGVuKCJpOTE1 X2Vycm9yX3N0YXRlIiwgT19XUk9OTFkpKSA+PSAwKTsKKwlpZ3RfYXNzZXJ0KHdyaXRlKGZkLCBi LCAxKSA9PSAxKTsKKwljbG9zZShmZCk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RfZXJyb3Jfc3Rh dGVfYmFzaWModm9pZCkKK3sKKwlpbnQgZmQ7CisKKwljaGVja19vdGhlcl9jbGllbnRzKCk7CisJ Y2xlYXJfZXJyb3Jfc3RhdGUoKTsKKwlhc3NlcnRfZXJyb3Jfc3RhdGVfY2xlYXIoKTsKKworCWZk ID0gZHJtX29wZW5fYW55KCk7CisJc3VibWl0X2JhdGNoKGZkLCBJOTE1X0VYRUNfUkVOREVSLCB0 cnVlKTsKKwljbG9zZShmZCk7CisKKwlhc3NlcnRfZXJyb3Jfc3RhdGVfY29sbGVjdGVkKCk7CisJ Y2xlYXJfZXJyb3Jfc3RhdGUoKTsKKwlhc3NlcnRfZXJyb3Jfc3RhdGVfY2xlYXIoKTsKK30KKwor c3RhdGljIHZvaWQgdGVzdF9yaW5nX21pc3NlZF9pcnEodm9pZCkKK3sKKwlpbnQgZmQ7CisKKwlj aGVja19vdGhlcl9jbGllbnRzKCk7CisJZmQgPSBkcm1fb3Blbl9hbnkoKTsKKworCWNsZWFyX2Vy cm9yX3N0YXRlKCk7CisJYXNzZXJ0X2Vycm9yX3N0YXRlX2NsZWFyKCk7CisJd3JpdGVfYW5kX2Fz c2VydF9kZnNfZW50cnkoImk5MTVfcmluZ190ZXN0X2lycSIsICIweDAwMDAwMDBmIik7CisJaWd0 X2RlYnVnKCJJbnRlcnJ1cHRzIG1hc2tlZFxuIik7CisKKwlzdWJtaXRfYmF0Y2goZmQsIEk5MTVf RVhFQ19SRU5ERVIsIGZhbHNlKTsKKwlzdWJtaXRfYmF0Y2goZmQsIEk5MTVfRVhFQ19SRU5ERVIs IGZhbHNlKTsKKwlzdWJtaXRfYmF0Y2goZmQsIEk5MTVfRVhFQ19SRU5ERVIsIGZhbHNlKTsKKwor CWFzc2VydF9kZnNfZW50cnlfbm90KCJpOTE1X3JpbmdfbWlzc2VkX2lycSIsICIweDAwMDAwMDAw Iik7CisJYXNzZXJ0X2Vycm9yX3N0YXRlX2NsZWFyKCk7CisKKwlzdWJtaXRfYmF0Y2goZmQsIEk5 MTVfRVhFQ19SRU5ERVIsIGZhbHNlKTsKKworCWFzc2VydF9lcnJvcl9zdGF0ZV9jbGVhcigpOwor CXdyaXRlX2FuZF9hc3NlcnRfZGZzX2VudHJ5KCJpOTE1X3JpbmdfdGVzdF9pcnEiLCAiMHgwMDAw MDAwMCIpOworCWlndF9kZWJ1ZygiSW50ZXJydXB0cyB1bm1hc2tlZFxuIik7CisKKwlzdWJtaXRf YmF0Y2goZmQsIEk5MTVfRVhFQ19SRU5ERVIsIGZhbHNlKTsKKworCWFzc2VydF9lcnJvcl9zdGF0 ZV9jbGVhcigpOworCXdyaXRlX2FuZF9hc3NlcnRfZGZzX2VudHJ5KCJpOTE1X3JpbmdfbWlzc2Vk X2lycSIsICIweDAwMDAwMDAwIik7CisJaWd0X2RlYnVnKCJDbGVhcmVkIG1pc3NlZCBpbnRlcnJ1 cHRzXG4iKTsKKworCWNsb3NlKGZkKTsKK30KKworaWd0X21haW4KK3sKKwlpZ3Rfc2tpcF9vbl9z aW11bGF0aW9uKCk7CisKKwlpZ3Rfc3VidGVzdCgiZXJyb3Itc3RhdGUtZGVidWdmcy1lbnRyeSIp CisJCXRlc3RfZGVidWdmc19lcnJvcl9zdGF0ZV9leGlzdHMoKTsKKworCWlndF9zdWJ0ZXN0KCJl cnJvci1zdGF0ZS1zeXNmcy1lbnRyeSIpCisJCXRlc3Rfc3lzZnNfZXJyb3JfZXhpc3RzKCk7CisK KwlpZ3Rfc3VidGVzdCgicmluZy1zdG9wLXN5c2ZzLWVudHJ5IikKKwkJdGVzdF9kZWJ1Z2ZzX3Jp bmdfc3RvcF9leGlzdHMoKTsKKworCWlndF9zdWJ0ZXN0KCJyaW5nLW1pc3NlZC1pcnEtc3lzZnMt ZW50cnkiKQorCQl0ZXN0X2RlYnVnZnNfcmluZ19pcnFfZXhpc3RzKCk7CisKKwlpZ3Rfc3VidGVz dCgiZXJyb3Itc3RhdGUtYmFzaWMiKQorCQl0ZXN0X2Vycm9yX3N0YXRlX2Jhc2ljKCk7CisKKwlp Z3Rfc3VidGVzdCgicmluZy1taXNzZWQtaXJxIikKKwkJdGVzdF9yaW5nX21pc3NlZF9pcnEoKTsK K30KZGlmZiAtLWdpdCBhL3Rlc3RzL2Rydl9taXNzZWRfaXJxX2hhbmcgYi90ZXN0cy9kcnZfbWlz c2VkX2lycV9oYW5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA0ODRlMTUxLi4wMDAw MDAwCi0tLSBhL3Rlc3RzL2Rydl9taXNzZWRfaXJxX2hhbmcKKysrIC9kZXYvbnVsbApAQCAtMSw3 MCArMCwwIEBACi0jIS9iaW4vYmFzaAotIwotIyBUZXN0Y2FzZTogU2ltdWxhdGUgbWlzc2VkIGJy ZWFkY3J1bWIgaW50ZXJydXB0cwotIwotCi1TT1VSQ0VfRElSPSIkKCBkaXJuYW1lICIke0JBU0hf U09VUkNFWzBdfSIgKSIKLS4gJFNPVVJDRV9ESVIvZHJtX2xpYi5zaAotCi1vbGRwYXRoPWBwd2Rg Ci0KLWNkICRpOTE1X2Rmc19wYXRoCi0KLWZ1bmN0aW9uIGNoZWNrX2Zvcl9taXNzZWRfaXJxIHsK LQlpZiB0ZXN0IGBjYXQgaTkxNV9yaW5nX21pc3NlZF9pcnFgID0gMHgwMDAwMDAwMDsgdGhlbgot CQllY2hvICJtaXNzZWQgaW50ZXJydXB0cyB1bmRldGVjdGVkIgotCQlleGl0IDEKLQlmaQotfQot Ci1mdW5jdGlvbiBjaGVja19mb3JfaGFuZyB7Ci0JaWYgY2F0IGk5MTVfZXJyb3Jfc3RhdGUgfCBn cmVwIC12ICJubyBlcnJvciBzdGF0ZSBjb2xsZWN0ZWQiID4gL2Rldi9udWxsIDsgdGhlbgotCQll Y2hvICJncHUgaGFuZyByZXBvcnRlZCIKLQkJZXhpdCAyCi0JZmkKLX0KLQotaWYgWyAhIC1mIGk5 MTVfcmluZ19taXNzZWRfaXJxIF0gOyB0aGVuCi0JZWNobyAia2VybmVsIGRvZXNuJ3Qgc3VwcG9y dCBpbnRlcnJ1cHQgbWFza2luZyIKLQlleGl0IDc3Ci1maQotCi0jIGNsZWFyIGVycm9yIHN0YXRl IGZpcnN0Ci1lY2hvID4gaTkxNV9lcnJvcl9zdGF0ZQotY2hlY2tfZm9yX2hhbmcKLQotZWNobyAw eGYgPiBpOTE1X3JpbmdfdGVzdF9pcnEKLWVjaG8gIkludGVycnVwdHMgbWFza2VkIgotaWYgdGVz dCBgY2F0IGk5MTVfcmluZ190ZXN0X2lycWAgIT0gMHgwMDAwMDAwZjsgdGhlbgotCWVjaG8gIkZh aWxlZCB0byBzZXQgaW50ZXJydXB0IG1hc2siCi0JZXhpdCAzCi1maQotCi0oY2QgJG9sZHBhdGg7 ICRTT1VSQ0VfRElSL2dlbV9leGVjX2JsdCkgPiAvZGV2L251bGwKLQotY2hlY2tfZm9yX21pc3Nl ZF9pcnEKLWNoZWNrX2Zvcl9oYW5nCi0KLShjZCAkb2xkcGF0aDsgJFNPVVJDRV9ESVIvZ2VtX2V4 ZWNfYmx0KSA+IC9kZXYvbnVsbAotCi1jaGVja19mb3JfaGFuZwotCi1lY2hvIDAgPiBpOTE1X3Jp bmdfdGVzdF9pcnEKLWVjaG8gIkludGVycnVwdHMgdW5tYXNrZWQiCi1pZiB0ZXN0IGBjYXQgaTkx NV9yaW5nX3Rlc3RfaXJxYCAhPSAweDAwMDAwMDAwOyB0aGVuCi0JZWNobyAiRmFpbGVkIHRvIGNs ZWFyIGludGVycnVwdCBtYXNrIgotCWV4aXQgMwotZmkKLQotKGNkICRvbGRwYXRoOyAkU09VUkNF X0RJUi9nZW1fZXhlY19ibHQpID4gL2Rldi9udWxsCi0KLWNoZWNrX2Zvcl9oYW5nCi0KLWVjaG8g MCA+IGk5MTVfcmluZ19taXNzZWRfaXJxCi1lY2hvICJDbGVhcmVkIG1pc3NlZCBpbnRlcnJ1cHRz IgotaWYgdGVzdCBgY2F0IGk5MTVfcmluZ19taXNzZWRfaXJxYCAhPSAweDAwMDAwMDAwOyB0aGVu Ci0JZWNobyAiRmFpbGVkIHRvIGNsZWFyIG1pc3NlZCBpbnRlcnJ1cHRzIgotCWV4aXQgMwotZmkK LQotZXhpdCAwCi0tIAoxLjcuOS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=