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: =?utf-8?b?UGV0ciBQw61zYcWZIDxwcGlzYXJAcmVkaGF0LmNvbT4=?= To: git-commits@fedoraproject.org Subject: [rpms/libmodulemd] f43: Adapt tests to glib2-2.87.0 Date: Fri, 12 Jun 2026 13:11:05 GMT Message-ID: <178126986572.1.2146277115395770547.rpms-libmodulemd-a9a3403052d9@fedoraproject.org> List-ID: X-Git-Repo: rpms/libmodulemd X-Git-Branch: f43 X-Git-Rev: a9a3403052d90cd0c2102cfa496ca371c95016c4 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvbGlibW9kdWxlbWQK QnJhbmNoIDogZjQzCkNvbW1pdCA6IGE5YTM0MDMwNTJkOTBjZDBjMjEwMmNmYTQ5NmNhMzcxYzk1 MDE2YzQKQXV0aG9yIDogUGV0ciBQw61zYcWZIDxwcGlzYXJAcmVkaGF0LmNvbT4KRGF0ZSAgIDog MjAyNi0wMS0xNFQxNjo0ODo0OCswMTowMApTdGF0cyAgOiArMjExMC8tMSBpbiAyIGZpbGUocykK VVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9saWJtb2R1bGVtZC9j L2E5YTM0MDMwNTJkOTBjZDBjMjEwMmNmYTQ5NmNhMzcxYzk1MDE2YzQ/YnJhbmNoPWY0MwoKTG9n OgpBZGFwdCB0ZXN0cyB0byBnbGliMi0yLjg3LjAKCi0tLQpkaWZmIC0tZ2l0IGEvbGlibW9kdWxl bWQuc3BlYyBiL2xpYm1vZHVsZW1kLnNwZWMKaW5kZXggYmI3MGE2My4uZTMzYzc2YSAxMDA2NDQK LS0tIGEvbGlibW9kdWxlbWQuc3BlYworKysgYi9saWJtb2R1bGVtZC5zcGVjCkBAIC0yNCw3ICsy NCw3IEBACiAKIE5hbWU6ICAgICAgICAgICAle3Vwc3RyZWFtX25hbWV9JXs/djJfc3VmZml4fQog VmVyc2lvbjogICAgICAgIDIuMTUuMgotUmVsZWFzZTogICAgICAgIDQlez9kaXN0fQorUmVsZWFz ZTogICAgICAgIDUlez9kaXN0fQogU3VtbWFyeTogICAgICAgIE1vZHVsZSBtZXRhZGF0YSBtYW5p cHVsYXRpb24gbGlicmFyeQogCiAjIENPUFlJTkc6ICAgICAgTUlUCkBAIC00MSw2ICs0MSw4IEBA IFNvdXJjZTA6ICAgICAgICAle3VybH0vcmVsZWFzZXMvZG93bmxvYWQvJXt2ZXJzaW9ufS9tb2R1 bGVtZC0le3ZlcnNpb259LnRhci54egogU291cmNlMTogICAgICAgICV7dXJsfS9yZWxlYXNlcy9k b3dubG9hZC8le3ZlcnNpb259L21vZHVsZW1kLSV7dmVyc2lvbn0udGFyLnh6LmFzYwogIyBLZXkg ZXhwb3J0ZWQgZnJvbSBQZXRyIFBpc2FyJ3Mga2V5cmluZwogU291cmNlMjogICAgICAgIGdwZ2tl eS1FM0Y0MkZDRTE1NjgzMEE4MDM1OEU2RTk0RkQxQUVDMzM2NUFGN0JGLmdwZworIyBBZGFwdCB0 ZXN0cyB0byBnbGliMi0yLjg3LjAsIGluIHVwc3RyZWFtIGFmdGVyIDIuMTUuMiwgYnVnICMyNDIz MTUzCitQYXRjaDA6ICAgICAgICAgbW9kdWxlbWQtMi4xNS4yLXRlc3RzLUFkYXB0LXRvLWdsaWIt Mi44Ny4wLnBhdGNoCiAKIEJ1aWxkUmVxdWlyZXM6ICBnbnVwZzIKIEJ1aWxkUmVxdWlyZXM6ICBt ZXNvbiA+PSAwLjQ3CkBAIC0xODksNiArMTkxLDkgQEAgbXYgJXtidWlsZHJvb3R9JXtfbWFuZGly fS9tYW4xL21vZHVsZW1kLXZhbGlkYXRvci4xIFwKIAogCiAlY2hhbmdlbG9nCisqIFdlZCBKYW4g MTQgMjAyNiBQZXRyIFBpc2FyIDxwcGlzYXJAcmVkaGF0LmNvbT4gLSAyLjE1LjItNQorLSBBZGFw dCB0ZXN0cyB0byBnbGliMi0yLjg3LjAgKGJ1ZyAjMjQyMzE1MykKKwogKiBGcmkgU2VwIDE5IDIw MjUgUHl0aG9uIE1haW50IDxweXRob24tbWFpbnRAcmVkaGF0LmNvbT4gLSAyLjE1LjItNAogLSBS ZWJ1aWx0IGZvciBQeXRob24gMy4xNC4wcmMzIGJ5dGVjb2RlCiAKCmRpZmYgLS1naXQgYS9tb2R1 bGVtZC0yLjE1LjItdGVzdHMtQWRhcHQtdG8tZ2xpYi0yLjg3LjAucGF0Y2ggYi9tb2R1bGVtZC0y LjE1LjItdGVzdHMtQWRhcHQtdG8tZ2xpYi0yLjg3LjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uOGU4NmI1OAotLS0gL2Rldi9udWxsCisrKyBiL21vZHVsZW1kLTIu MTUuMi10ZXN0cy1BZGFwdC10by1nbGliLTIuODcuMC5wYXRjaApAQCAtMCwwICsxLDIxMDQgQEAK K0Zyb20gODlkNGFmYjNkMDE4MjUwNDI3ZDRkODc4NDBhZTU3YWFiMzkwMzM2MSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9QZXRyPTIwUD1DMz1BRHNhPUM1PTk5Pz0g PHBwaXNhckByZWRoYXQuY29tPgorRGF0ZTogTW9uLCA4IERlYyAyMDI1IDEzOjM5OjI5ICswMTAw CitTdWJqZWN0OiBbUEFUQ0hdIHRlc3RzOiBBZGFwdCB0byBnbGliIDIuODcuMAorCitBZnRlciB1 cGdyYWRpbmcgZ2xpYiBmcm9tIDIuODYuMSB0byAyLjg3LjAsIHRlc3RzIHdoaWNoIGV4cGVjdCBj YXRjaGluZworU0lHVFJBUCBzdGFydGVkIHRvIGZhaWwgbGlrZSB0aGlzOgorCisgICAgWy4uLl0v cmVkaGF0LWxpbnV4LWJ1aWxkL21vZHVsZW1kL2NvbXBvbmVudF9tb2R1bGUKKyAgICBUQVAgdmVy c2lvbiAxNAorICAgICMgcmFuZG9tIHNlZWQ6IFIwMlM1MDFiNmJkMDI0MTNhMjk4MDEzM2YxOTdk YWI5OTQxNgorICAgIDEuLjYKKyAgICAjIFN0YXJ0IG9mIG1vZHVsZW1kIHRlc3RzCisgICAgIyBT dGFydCBvZiB2MiB0ZXN0cworICAgICMgU3RhcnQgb2YgY29tcG9uZW50IHRlc3RzCisgICAgIyBT dGFydCBvZiBtb2R1bGUgdGVzdHMKKyAgICBub3Qgb2sgL21vZHVsZW1kL3YyL2NvbXBvbmVudC9t b2R1bGUvY29uc3RydWN0IC0gbGlibW9kdWxlbWQtRkFUQUwtQ1JJVElDQUw6IG1vZHVsZW1kX2Nv bXBvbmVudF9zZXRfa2V5OiBhc3NlcnRpb24gJ25hbWUnIGZhaWxlZAorICAgIEJhaWwgb3V0IQor ICAgIEFib3J0ZWQgICAgICAgICAgICAgICAgICAgIChjb3JlIGR1bXBlZCkgTERfTElCUkFSWV9Q QVRIPS9ob21lL3Rlc3QvbGlibW9kdWxlbWQtZGV2ZWwvcmVkaGF0LWxpbnV4LWJ1aWxkL21vZHVs ZW1kIE1FU09OX0JVSUxEX1JPT1Q9L2hvbWUvdGVzdC9saWJtb2R1bGVtZC1kZXZlbC9yZWRoYXQt bGludXgtYnVpbGQgVEVTVF9EQVRBX1BBVEg9L2hvbWUvdGVzdC9saWJtb2R1bGVtZC1kZXZlbC9t b2R1bGVtZC90ZXN0cy90ZXN0X2RhdGEgVUJTQU5fT1BUSU9OUz1oYWx0X29uX2Vycm9yPTE6YWJv cnRfb25fZXJyb3I9MTpwcmludF9zdW1tYXJ5PTE6cHJpbnRfc3RhY2t0cmFjZT0xIE1TQU5fT1BU SU9OUz1oYWx0X29uX2Vycm9yPTE6YWJvcnRfb25fZXJyb3I9MTpwcmludF9zdW1tYXJ5PTE6cHJp bnRfc3RhY2t0cmFjZT0xIExDX0FMTD1DIE1FU09OX1RFU1RfSVRFUkFUSU9OPTEgTUVTT05fU09V UkNFX1JPT1Q9L2hvbWUvdGVzdC9saWJtb2R1bGVtZC1kZXZlbCBNQUxMT0NfUEVSVFVSQl89MTE1 IEFTQU5fT1BUSU9OUz1oYWx0X29uX2Vycm9yPTE6YWJvcnRfb25fZXJyb3I9MTpwcmludF9zdW1t YXJ5PTEgL2hvbWUvdGVzdC9saWJtb2R1bGVtZC1kZXZlbC9yZWRoYXQtbGludXgtYnVpbGQvbW9k dWxlbWQvY29tcG9uZW50X21vZHVsZQorCitUaGUgdGVzdHMgcGFzc2VkIGEgTlVMTCBwb2ludGVy IHRvIGxpYm1vZHVsZW1kIG9iamVjdCBjb25zdHJ1Y3RvcnMgYW5kCitjaGVja2VkIHRoYXQgZ2xp YiByYWlzZWQgYSBTSUdUUkFQIHNpZ25hbC4gVGhlIG5ldyBnbGliIGZpeGVkCis8aHR0cHM6Ly9n aXRsYWIuZ25vbWUub3JnL0dOT01FL2dsaWIvLS9pc3N1ZXMvMzc5MD4gYW5kIGFzIGEgc2lkZQor ZWZmZWN0IGNoYW5nZWQgaG93IHRoZSBwcm9jZXNzIGlzIHRlcm1pbmF0ZWQ6IElmIHRoZSBwcm9j ZXNzIHJ1bnMKK3VuZGVyIGEgZGVidWdnZXIsIGEgYnJlYWtwb2ludCB0cmFwIGlzIGludm9rZWQg b3IgU0lHVFJBUCByYWlzZWQsCitkZXBlbmRpbmcgb24gdGhlIGFyY2hpdGVjdHVyZS4gSWYgdGhl IHByb2Nlc3MgZG9lcyBub3QgcnVuIHVuZGVyCithIGRlYnVnZ2VyLCBhYm9ydCgpIGlzIGNhbGxl ZCwgd2hpY2ggcmFpc2VzIFNJR0FCUlQgYW5kIHRoZW4gYWZ0ZXIKK3JldHVybmluZyB0byBnbGli IFNJR0FCUlQgZGlzcG9zaXRpb24gaXMgcmVzZXQgYW5kIFNJR0FCUlQgcmFpc2VkCithZ2FpbiB0 byBmaW5hbGx5IHRlcm1pbmF0ZSB0aGUgcHJvY2Vzcy4gVGhhdCBtZWFucyB0aGF0IGNhdGNoaW5n CitzaWduYWxzIGlzIHBvaW50bGVzcyBiZWNhdXNlIHRoZSBwcm9jZXNzIHdpbGwgYmUgdGVybWlu YXRlZAorbmV2ZXJ0aGVsZXNzLgorCitUaGlzIHBhdGNoIGFkYXB0cyB0aGUgdGVzdHMgYnkgdXNp bmcgYSBnbGliLXNhbmN0aW9uZWQgd2F5IG9mIGNoZWNraW5nCit3aGV0aGVyIGEgcHJvY2VzcyB0 ZXJtaW5hdGVkIGFibm9ybWFsbHkgaW5zdGVhZCBvZiBkZXBlbmRpbmcgb24KK2Egd2F5IGEgcGFy dGljdWxhciBnbGliIHZlcnNpb24gaW1wbGVtZW50cy4KKworVGhpcyBwYXRjaCBtb3ZlcyB0aGUg dHJhcHBpbmcgc3VidGVzdHMgaW50byBzdGFuZGFsb25lIHRlc3RzIGJlY2F1c2UKK2dfdGVzdF90 cmFwX3N1YnByb2Nlc3MoKSBjYW5ub3QgaGFuZGxlIG11bHRpcGxlIHN1YnRlc3RzIGluIGEgc2lu Z2xlCit0ZXN0IGZ1bmN0aW9uLiBJdCBhbHNvIHJlbW92ZXMgcG9pbnRsZXNzIGNoZWNrcyBmb3Ig YSByZXR1cm4gdmFsdWUgb2YKK2EgZnVuY3Rpb24gd2hpY2ggaGFzIGp1c3QgZXhpdGVkIHRoZSBw cm9jZXNzLgorCitUaGUgc2FtZSBnb2VzIGZvciBQeXRob24gdGVzdHMgKHdpdGgKK0dfREVCVUc9 ZmF0YWwtd2FybmluZ3MsZmF0YWwtY3JpdGljYWxzKSB3aGljaCBvcmlnaW5hbGx5IHdlbnQgYXMg ZmFyCithcyBjaGVja2luZyB3aGV0aGVyIGFuZCB3aGljaCBzaWduYWwgd2FzIHJhaXNlZC4gVGhp cyBwYXRjaCBtYWtlcyB0aGUKK1B5dGhvbiB0ZXN0cyBwYXNzaW5nIHJlZ2FyZGxlc3Mgb2YgR19E RUJVRyBzZXR0aW5nLgorCitJbXBsZW1lbnRhdGlvbiBub3RlOiBQeXRob24gZG9lcyBub3Qgc3Vw cG9ydCBhbm5veW1vdXMgYmxvY2sgYW5kCitjb250ZXh0IG1hbmFnZXJzIGFyZSBub3QgY29tcGF0 aWJsZSB3aXRoIGZvcmssIGhlbmNlIHRoaXMgcGF0Y2ggbW92ZXMKK3RoZSBibG9ja3MgaW50byBu YW1lZCBjYWxsYWJsZXMgdG8gYmUgZXhlY3R1dGVkIGluIGEgc3VicHJvY2Vzcy4KKworSW1wbGVt ZW50YXRpb24gbm90ZTogR2xpYiBwcm92aWRlcyBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUIGNv bnN0YW50CitzaW5jZSAyLjc0LiBUaGlzIHBhdGNoIGFkZHMgYSBmYWxsYmFjayBkZWZpbml0aW9u IGluc3RlYWQgb2YKK2hhcmQtY29kaW5nIDAgbGl0ZXJhbC4KKworUmVzb2x2ZXM6IGh0dHBzOi8v YnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MjQyMzE1MworLS0tCisgbWVzb24u YnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICsKKyBtb2R1bGVt ZC9pbmNsdWRlL3ByaXZhdGUvZ2xpYi1leHRlbnNpb25zLmggICAgfCAgIDQgKworIG1vZHVsZW1k L2luY2x1ZGUvcHJpdmF0ZS90ZXN0LXV0aWxzLmggICAgICAgICB8ICAgMSArCisgbW9kdWxlbWQv bWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKKyBtb2R1bGVtZC90 ZXN0cy9Nb2R1bGVtZFRlc3RzL2Jhc2UucHkgICAgICAgICAgfCAgMjUgKysrCisgbW9kdWxlbWQv dGVzdHMvTW9kdWxlbWRUZXN0cy9kZWZhdWx0cy5weSAgICAgIHwgIDMxICsrLQorIG1vZHVsZW1k L3Rlc3RzL01vZHVsZW1kVGVzdHMvZGVwZW5kZW5jaWVzLnB5ICB8ICAyNiArKy0KKyBtb2R1bGVt ZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL3Byb2ZpbGUucHkgICAgICAgfCAgMjEgKy0KKyBtb2R1bGVt ZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL3NlcnZpY2VsZXZlbC5weSAgfCAgMjEgKy0KKyAuLi4vdGVz dHMvTW9kdWxlbWRUZXN0cy90cmFuc2xhdGlvbmVudHJ5LnB5ICAgfCAgMjEgKy0KKyBtb2R1bGVt ZC90ZXN0cy90ZXN0LW1vZHVsZW1kLWNvbW1vbi5jICAgICAgICAgfCAgNjggKysrLS0tCisgLi4u L3Rlc3RzL3Rlc3QtbW9kdWxlbWQtY29tcG9uZW50LW1vZHVsZS5jICAgIHwgIDgyICsrKystLS0K KyBtb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLWRlZmF1bHRzLXYxLmMgICAgfCAgODcgKysr Ky0tLQorIG1vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtZGVmYXVsdHMuYyAgICAgICB8ICA3 OSArKysrLS0tCisgbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1kZXBlbmRlbmNpZXMuYyAg IHwgMjEyICsrKysrKysrKysrKysrLS0tLQorIG1vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQt bW9kdWxlLmMgICAgICAgICB8ICA3MiArKysrLS0KKyBtb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVs ZW1kLW9ic29sZXRlcy5jICAgICAgfCAgNzkgKysrKy0tLQorIG1vZHVsZW1kL3Rlc3RzL3Rlc3Qt bW9kdWxlbWQtcHJvZmlsZS5jICAgICAgICB8IDEwNSArKysrKystLS0KKyBtb2R1bGVtZC90ZXN0 cy90ZXN0LW1vZHVsZW1kLXNlcnZpY2UtbGV2ZWwuYyAgfCAxMTcgKysrKysrLS0tLQorIC4uLi90 ZXN0cy90ZXN0LW1vZHVsZW1kLXRyYW5zbGF0aW9uLWVudHJ5LmMgICB8IDExMyArKysrKystLS0t CisgbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC10cmFuc2xhdGlvbi5jICAgIHwgMTA4ICsr KysrLS0tLQorIDIxIGZpbGVzIGNoYW5nZWQsIDg3MyBpbnNlcnRpb25zKCspLCA0MDggZGVsZXRp b25zKC0pCisKK2RpZmYgLS1naXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1aWxkCitpbmRleCBm MjhlNDEwLi5kZjZlNWFlIDEwMDY0NAorLS0tIGEvbWVzb24uYnVpbGQKKysrKyBiL21lc29uLmJ1 aWxkCitAQCAtMTI4LDYgKzEyOCwxNCBAQCBoYXNfZ19zcGF3bl9jaGVja193YWl0X3N0YXR1cyA9 IGNjLmhhc19mdW5jdGlvbigKKyAgICAgJ2dfc3Bhd25fY2hlY2tfd2FpdF9zdGF0dXMnLAorICAg ICBkZXBlbmRlbmNpZXMgOiBbIGdsaWIgXSkKKyAKKysjIENoZWNrIHdoZXRoZXIgZ2xpYjIgaGFz IEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQgZW51bSBtZW1iZXIuCisraGFzX2dfdGVzdF9zdWJw cm9jZXNzX2RlZmF1bHQgPSBjYy5jb21waWxlcygKKysgICAgJycnI2luY2x1ZGUgPGdsaWIuaD4K KysgICAgaW50IGZvbyA9IEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQ7CisrICAgICcnJywKKysg ICAgZGVwZW5kZW5jaWVzIDogWyBnbGliIF0sCisrICAgIG5hbWUgOiAnR19URVNUX1NVQlBST0NF U1NfREVGQVVMVCcpCisrCisgd2l0aF9weTMgPSBnZXRfb3B0aW9uKCd3aXRoX3B5MycpCisgaWYg d2l0aF9weTMKKyAgICAgaWYgZ2V0X29wdGlvbignc2tpcF9pbnRyb3NwZWN0aW9uJykKK2RpZmYg LS1naXQgYS9tb2R1bGVtZC9pbmNsdWRlL3ByaXZhdGUvZ2xpYi1leHRlbnNpb25zLmggYi9tb2R1 bGVtZC9pbmNsdWRlL3ByaXZhdGUvZ2xpYi1leHRlbnNpb25zLmgKK2luZGV4IDI5ZTljODQuLjAw MDgxYmUgMTAwNjQ0CistLS0gYS9tb2R1bGVtZC9pbmNsdWRlL3ByaXZhdGUvZ2xpYi1leHRlbnNp b25zLmgKKysrKyBiL21vZHVsZW1kL2luY2x1ZGUvcHJpdmF0ZS9nbGliLWV4dGVuc2lvbnMuaAor QEAgLTIzLDYgKzIzLDEwIEBACisgR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKEdEYXRl LCBnX2RhdGVfZnJlZSkKKyAjZW5kaWYKKyAKKysvKiBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxU IHdhcyBhZGRlZCBpbiBHbGliIDIuNzQuICovCisrI2lmbmRlZiBIQVZFX0dfVEVTVF9TVUJQUk9D RVNTX0RFRkFVTFQKKysjZGVmaW5lIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQgMAorKyNlbmRp ZgorIAorICNpZm5kZWYgSEFWRV9FWFRFTkRfQU5EX1NURUFMCisgCitkaWZmIC0tZ2l0IGEvbW9k dWxlbWQvaW5jbHVkZS9wcml2YXRlL3Rlc3QtdXRpbHMuaCBiL21vZHVsZW1kL2luY2x1ZGUvcHJp dmF0ZS90ZXN0LXV0aWxzLmgKK2luZGV4IDI2NDNjYTEuLjMyMGNmOTkgMTAwNjQ0CistLS0gYS9t b2R1bGVtZC9pbmNsdWRlL3ByaXZhdGUvdGVzdC11dGlscy5oCisrKysgYi9tb2R1bGVtZC9pbmNs dWRlL3ByaXZhdGUvdGVzdC11dGlscy5oCitAQCAtMTYsNiArMTYsNyBAQAorICNpbmNsdWRlIDxn bGliLmg+CisgI2luY2x1ZGUgPGxvY2FsZS5oPgorICNpbmNsdWRlIDx5YW1sLmg+CisrI2luY2x1 ZGUgImdsaWItZXh0ZW5zaW9ucy5oIgorIAorIEdfQkVHSU5fREVDTFMKKyAKK2RpZmYgLS1naXQg YS9tb2R1bGVtZC9tZXNvbi5idWlsZCBiL21vZHVsZW1kL21lc29uLmJ1aWxkCitpbmRleCAxYzc1 MDAyLi5lNDFiY2M1IDEwMDY0NAorLS0tIGEvbW9kdWxlbWQvbWVzb24uYnVpbGQKKysrKyBiL21v ZHVsZW1kL21lc29uLmJ1aWxkCitAQCAtMTQ1LDYgKzE0NSw3IEBAIGNkYXRhLnNldCgnSEFWRV9S UE1JTycsIHJwbS5mb3VuZCgpKQorIGNkYXRhLnNldCgnSEFWRV9HREFURV9BVVRPUFRSJywgaGFz X2dkYXRlX2F1dG9wdHIpCisgY2RhdGEuc2V0KCdIQVZFX0VYVEVORF9BTkRfU1RFQUwnLCBoYXNf ZXh0ZW5kX2FuZF9zdGVhbCkKKyBjZGF0YS5zZXQoJ0hBVkVfR19TUEFXTl9DSEVDS19XQUlUX1NU QVRVUycsIGhhc19nX3NwYXduX2NoZWNrX3dhaXRfc3RhdHVzKQorK2NkYXRhLnNldCgnSEFWRV9H X1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUJywgaGFzX2dfdGVzdF9zdWJwcm9jZXNzX2RlZmF1bHQp CisgY2RhdGEuc2V0KCdIQVZFX09WRVJGTE9XRURfQlVJTERPUkRFUicsIGFjY2VwdF9vdmVyZmxv d2VkX2J1aWxkb3JkZXIpCisgY29uZmlndXJlX2ZpbGUoCisgICBvdXRwdXQgOiAnY29uZmlnLmgn LAorZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvYmFzZS5weSBiL21v ZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvYmFzZS5weQoraW5kZXggMWI0NjQ3MC4uNTVhYzc0 MiAxMDA2NDQKKy0tLSBhL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvYmFzZS5weQorKysr IGIvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9iYXNlLnB5CitAQCAtNTIsNiArNTIsMjEg QEAgY2xhc3MgVGVzdEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgZWxpZiBzZWxm Ll9jYXVnaHRfc2lnbmFsIGFuZCBub3QgZXhwZWN0X3NpZ25hbDoKKyAgICAgICAgICAgICByYWlz ZSBBc3NlcnRpb25FcnJvcigiU2lnbmFsIGNhdWdodCBpbiBub24td2FybmluZyBzdGF0ZSIpCisg CisrICAgIGRlZiBhc3NlcnRQcm9jZXNzRmFpbHVyZShzZWxmLCBjYWxsYWJsZSwgKmFyZ3MpOgor KyAgICAgICAgIiIiQ2FsbHMgdGhlIGNhbGxhYmxlIGluIGEgc3VicHJvY2VzcyBhbmQgY2hlY2tz IHdoZXRoZXIgdGhlIHByb2Nlc3Mgd2FzCisrICAgICAgICBraWxsZWQgd2l0aCBhIHNpZ25hbCBk ZXBlbmRpbmcgb24gR2xpYiB3YXJuaW5nIGZhdGFsaXR5LiIiIgorKyAgICAgICAgcGlkID0gb3Mu Zm9yaygpCisrICAgICAgICBpZiBwaWQgPT0gMDoKKysgICAgICAgICAgICBjYWxsYWJsZSgqYXJn cykKKysgICAgICAgICAgICBvcy5fZXhpdCgwKQorKyAgICAgICAgXywgc3RhdHVzID0gb3Mud2Fp dHBpZChwaWQsIDApCisrICAgICAgICBpZiBzZWxmLndhcm5pbmdzX2ZhdGFsOgorKyAgICAgICAg ICAgIGlmIG5vdCBvcy5XSUZTSUdOQUxFRChzdGF0dXMpOgorKyAgICAgICAgICAgICAgICByYWlz ZSBBc3NlcnRpb25FcnJvcigiQ2hpbGQgcHJvY2VzcyB3YXMgbm90IGFib3J0ZWQiKQorKyAgICAg ICAgZWxzZToKKysgICAgICAgICAgICBpZiBvcy5XSUZTSUdOQUxFRChzdGF0dXMpOgorKyAgICAg ICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigiQ2hpbGQgcHJvY2VzcyB3YXMgdW5leHBl Y3RlZGx5IGFib3J0ZWQiKQorKworICAgICBAcHJvcGVydHkKKyAgICAgZGVmIHdhcm5pbmdzX2Zh dGFsKHNlbGYpOgorICAgICAgICAgZ2RlYnVnID0gb3MuZ2V0ZW52KCJHX0RFQlVHIiwgIiIpLnNw bGl0KCIsIikKK0BAIC02NywzICs4MiwxMyBAQCBjbGFzcyBUZXN0QmFzZSh1bml0dGVzdC5UZXN0 Q2FzZSk6CisgICAgICAgICAgICAgcmV0dXJuIHN1cGVyKFRlc3RCYXNlLCBzZWxmKS5hc3NlcnRS YWlzZXNSZWdleCgqYXJncywgKiprd2FyZ3MpCisgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJy b3I6CisgICAgICAgICAgICAgcmV0dXJuIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXhwKCphcmdzLCAq Kmt3YXJncykKKysKKysgICAgZGVmIGFzc2VydFJhaXNlc1JlZ2V4T3JEaWVzKHNlbGYsIGNhbGxh YmxlLCAqYXJncywgKiprd2FyZ3MpOgorKyAgICAgICAgIiIiQ2hlY2tzIHRoYXQgdGhlIGNhbGxh YmxlIHRlcm1pbmF0ZXMgYSBwcm9jZXNzIGlmIEdsaWIgd2FybmluZ3MgYXJlCisrICAgICAgICBm YXRhbC4gT3RoZXJ3aXNlLCB0aGF0IHRoZSBjYWxsYWJsZSByYWlzZWQgYSBnaXZlbiBleGNlcHRp b24gdHlwZSB3aXRoCisrICAgICAgICB0aGUgZ2l2ZW4gdmFsdWUgbWF0Y2hpbmcgYSByZWd1bGFy IGV4cHJlc3Npb24uIiIiCisrICAgICAgICBpZiBzZWxmLndhcm5pbmdzX2ZhdGFsOgorKyAgICAg ICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vzc0ZhaWx1cmUoY2FsbGFibGUpCisrICAgICAgICBlbHNl OgorKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleCgqYXJncywgKiprd2Fy Z3MpOgorKyAgICAgICAgICAgICAgICBjYWxsYWJsZSgpCitkaWZmIC0tZ2l0IGEvbW9kdWxlbWQv dGVzdHMvTW9kdWxlbWRUZXN0cy9kZWZhdWx0cy5weSBiL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1k VGVzdHMvZGVmYXVsdHMucHkKK2luZGV4IGMxNjJiZjMuLjNhMWI5ZmUgMTAwNjQ0CistLS0gYS9t b2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL2RlZmF1bHRzLnB5CisrKysgYi9tb2R1bGVtZC90 ZXN0cy9Nb2R1bGVtZFRlc3RzL2RlZmF1bHRzLnB5CitAQCAtMjksNiArMjksMjAgQEAgZXhjZXB0 IEltcG9ydEVycm9yOgorIGZyb20gYmFzZSBpbXBvcnQgVGVzdEJhc2UKKyAKKyAKKytkZWYgX3pl cm9fbWR2ZXJzaW9uKCk6CisrICAgIGRlZnMgPSBNb2R1bGVtZC5EZWZhdWx0cy5uZXcoMCwgImZv byIpCisrCisrCisrZGVmIF91bmtub3duX21kdmVyc2lvbigpOgorKyAgICBkZWZzID0gTW9kdWxl bWQuRGVmYXVsdHMubmV3KAorKyAgICAgICAgTW9kdWxlbWQuRGVmYXVsdHNWZXJzaW9uRW51bS5M QVRFU1QgKyAxLCAiZm9vIgorKyAgICApCisrCisrCisrZGVmIF9zZXRfbW9kdWxlX25hbWVfdG9f bm9uZShkZWZzKToKKysgICAgZGVmcy5wcm9wcy5tb2R1bGVfbmFtZSA9IE5vbmUKKysKKysKKyBj bGFzcyBUZXN0RGVmYXVsdHMoVGVzdEJhc2UpOgorICAgICBkZWYgdGVzdF9jb25zdHJ1Y3RvcnMo c2VsZik6CisgICAgICAgICAjIFRlc3QgdGhhdCB0aGUgbmV3KCkgZnVuY3Rpb24gd29ya3MKK0BA IC00OCwxNiArNjIsMTQgQEAgY2xhc3MgVGVzdERlZmF1bHRzKFRlc3RCYXNlKToKKyAgICAgICAg ICAgICBNb2R1bGVtZC5EZWZhdWx0cygpCisgCisgICAgICAgICAjIFRlc3Qgd2l0aCBhIHplcm8g bWR2ZXJzaW9uCistICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9y LCAiY29uc3RydWN0b3IgcmV0dXJuZWQgTlVMTCIpOgorLSAgICAgICAgICAgIHdpdGggc2VsZi5l eHBlY3Rfc2lnbmFsKCk6CistICAgICAgICAgICAgICAgIGRlZnMgPSBNb2R1bGVtZC5EZWZhdWx0 cy5uZXcoMCwgImZvbyIpCisrICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4T3JEaWVzKAor KyAgICAgICAgICAgIF96ZXJvX21kdmVyc2lvbiwgVHlwZUVycm9yLCAiY29uc3RydWN0b3IgcmV0 dXJuZWQgTlVMTCIKKysgICAgICAgICkKKyAKKyAgICAgICAgICMgVGVzdCB3aXRoIGFuIHVua25v d24gbWR2ZXJzaW9uCistICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVy cm9yLCAiY29uc3RydWN0b3IgcmV0dXJuZWQgTlVMTCIpOgorLSAgICAgICAgICAgIHdpdGggc2Vs Zi5leHBlY3Rfc2lnbmFsKCk6CistICAgICAgICAgICAgICAgIGRlZnMgPSBNb2R1bGVtZC5EZWZh dWx0cy5uZXcoCistICAgICAgICAgICAgICAgICAgICBNb2R1bGVtZC5EZWZhdWx0c1ZlcnNpb25F bnVtLkxBVEVTVCArIDEsICJmb28iCistICAgICAgICAgICAgICAgICkKKysgICAgICAgIHNlbGYu YXNzZXJ0UmFpc2VzUmVnZXhPckRpZXMoCisrICAgICAgICAgICAgX3Vua25vd25fbWR2ZXJzaW9u LCBUeXBlRXJyb3IsICJjb25zdHJ1Y3RvciByZXR1cm5lZCBOVUxMIgorKyAgICAgICAgKQorIAor ICAgICAgICAgIyBUZXN0IHdpdGggbm8gbmFtZQorICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJh aXNlc1JlZ2V4KAorQEAgLTk5LDggKzExMSw3IEBAIGNsYXNzIFRlc3REZWZhdWx0cyhUZXN0QmFz ZSk6CisgICAgICAgICBhc3NlcnQgZGVmcy5nZXRfbW9kdWxlX25hbWUoKSA9PSAiZm9vIgorIAor ICAgICAgICAgIyBFbnN1cmUgd2UgY2Fubm90IHNldCB0aGUgbW9kdWxlX25hbWUKKy0gICAgICAg IHdpdGggc2VsZi5leHBlY3Rfc2lnbmFsKCk6CistICAgICAgICAgICAgZGVmcy5wcm9wcy5tb2R1 bGVfbmFtZSA9IE5vbmUKKysgICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vzc0ZhaWx1cmUoX3NldF9t b2R1bGVfbmFtZV90b19ub25lLCBkZWZzKQorIAorICAgICBkZWYgdGVzdF9tb2RpZmllZChzZWxm KToKKyAgICAgICAgIGRlZnMgPSBNb2R1bGVtZC5EZWZhdWx0cy5uZXcoCitkaWZmIC0tZ2l0IGEv bW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9kZXBlbmRlbmNpZXMucHkgYi9tb2R1bGVtZC90 ZXN0cy9Nb2R1bGVtZFRlc3RzL2RlcGVuZGVuY2llcy5weQoraW5kZXggYTE5MDEzNC4uYzc3NmUy MyAxMDA2NDQKKy0tLSBhL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvZGVwZW5kZW5jaWVz LnB5CisrKysgYi9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL2RlcGVuZGVuY2llcy5weQor QEAgLTI4LDM4ICsyOCw0MCBAQCBleGNlcHQgSW1wb3J0RXJyb3I6CisgZnJvbSBiYXNlIGltcG9y dCBUZXN0QmFzZQorIAorIAorK2RlZiBfZ2V0X2J1aWxkdGltZV9zdHJlYW1zKG1vZHVsZW1kX2Rl cGVuZGVjaWVzLCBzdHJlYW1fbmFtZSk6CisrICAgIG1vZHVsZW1kX2RlcGVuZGVjaWVzLmdldF9i dWlsZHRpbWVfc3RyZWFtcyhzdHJlYW1fbmFtZSkKKysKKysKKytkZWYgX2dldF9ydW50aW1lX3N0 cmVhbXMobW9kdWxlbWRfZGVwZW5kZWNpZXMsIHN0cmVhbV9uYW1lKToKKysgICAgbW9kdWxlbWRf ZGVwZW5kZWNpZXMuZ2V0X3J1bnRpbWVfc3RyZWFtcyhzdHJlYW1fbmFtZSkKKysKKysKKyBjbGFz cyBUZXN0RGVwZW5kZW5jaWVzKFRlc3RCYXNlKToKKyAgICAgZGVmIHRlc3RfY29uc3RydWN0b3Io c2VsZik6CisgICAgICAgICAjIFRlc3QgdGhhdCB0aGUgbmV3KCkgZnVuY3Rpb24gd29ya3MKKyAg ICAgICAgIGQgPSBNb2R1bGVtZC5EZXBlbmRlbmNpZXMubmV3KCkKKyAgICAgICAgIGFzc2VydCBk CisgICAgICAgICBhc3NlcnQgZC5nZXRfYnVpbGR0aW1lX21vZHVsZXMoKSA9PSBbXQorLSAgICAg ICAgd2l0aCBzZWxmLmV4cGVjdF9zaWduYWwob25seV9vbl9mYXRhbF93YXJuaW5ncz1UcnVlKToK Ky0gICAgICAgICAgICBkLmdldF9idWlsZHRpbWVfc3RyZWFtcygiZm9vYmFyMTIzIikKKysgICAg ICAgIHNlbGYuYXNzZXJ0UHJvY2Vzc0ZhaWx1cmUoX2dldF9idWlsZHRpbWVfc3RyZWFtcywgZCwg ImZvb2JhcjEyMyIpCisgICAgICAgICBhc3NlcnQgZC5nZXRfcnVudGltZV9tb2R1bGVzKCkgPT0g W10KKy0gICAgICAgIHdpdGggc2VsZi5leHBlY3Rfc2lnbmFsKG9ubHlfb25fZmF0YWxfd2Fybmlu Z3M9VHJ1ZSk6CistICAgICAgICAgICAgZC5nZXRfcnVudGltZV9zdHJlYW1zKCJmb29iYXIxMjMi KQorKyAgICAgICAgc2VsZi5hc3NlcnRQcm9jZXNzRmFpbHVyZShfZ2V0X3J1bnRpbWVfc3RyZWFt cywgZCwgImZvb2JhcjEyMyIpCisgCisgICAgICAgICAjIFRlc3QgdGhhdCBrZXl3b3JkIG5hbWUg aXMgYWNjZXB0ZWQKKyAgICAgICAgIGQgPSBNb2R1bGVtZC5EZXBlbmRlbmNpZXMoKQorICAgICAg ICAgYXNzZXJ0IGQKKyAgICAgICAgIGFzc2VydCBkLmdldF9idWlsZHRpbWVfbW9kdWxlcygpID09 IFtdCistICAgICAgICB3aXRoIHNlbGYuZXhwZWN0X3NpZ25hbChvbmx5X29uX2ZhdGFsX3dhcm5p bmdzPVRydWUpOgorLSAgICAgICAgICAgIGQuZ2V0X2J1aWxkdGltZV9zdHJlYW1zKCJmb29iYXIx MjMiKQorKyAgICAgICAgc2VsZi5hc3NlcnRQcm9jZXNzRmFpbHVyZShfZ2V0X2J1aWxkdGltZV9z dHJlYW1zLCBkLCAiZm9vYmFyMTIzIikKKyAgICAgICAgIGFzc2VydCBkLmdldF9ydW50aW1lX21v ZHVsZXMoKSA9PSBbXQorLSAgICAgICAgd2l0aCBzZWxmLmV4cGVjdF9zaWduYWwob25seV9vbl9m YXRhbF93YXJuaW5ncz1UcnVlKToKKy0gICAgICAgICAgICBkLmdldF9ydW50aW1lX3N0cmVhbXMo ImZvb2JhcjEyMyIpCisrICAgICAgICBzZWxmLmFzc2VydFByb2Nlc3NGYWlsdXJlKF9nZXRfcnVu dGltZV9zdHJlYW1zLCBkLCAiZm9vYmFyMTIzIikKKyAKKyAgICAgZGVmIHRlc3RfY29weShzZWxm KToKKyAgICAgICAgIGRfb3JpZyA9IE1vZHVsZW1kLkRlcGVuZGVuY2llcygpCisgICAgICAgICBk ID0gZF9vcmlnLmNvcHkoKQorICAgICAgICAgYXNzZXJ0IGQKKyAgICAgICAgIGFzc2VydCBkLmdl dF9idWlsZHRpbWVfbW9kdWxlcygpID09IFtdCistICAgICAgICB3aXRoIHNlbGYuZXhwZWN0X3Np Z25hbChvbmx5X29uX2ZhdGFsX3dhcm5pbmdzPVRydWUpOgorLSAgICAgICAgICAgIGQuZ2V0X2J1 aWxkdGltZV9zdHJlYW1zKCJmb29iYXIxMjMiKQorKyAgICAgICAgc2VsZi5hc3NlcnRQcm9jZXNz RmFpbHVyZShfZ2V0X2J1aWxkdGltZV9zdHJlYW1zLCBkLCAiZm9vYmFyMTIzIikKKyAgICAgICAg IGFzc2VydCBkLmdldF9ydW50aW1lX21vZHVsZXMoKSA9PSBbXQorLSAgICAgICAgd2l0aCBzZWxm LmV4cGVjdF9zaWduYWwob25seV9vbl9mYXRhbF93YXJuaW5ncz1UcnVlKToKKy0gICAgICAgICAg ICBkLmdldF9ydW50aW1lX3N0cmVhbXMoImZvb2JhcjEyMyIpCisrICAgICAgICBzZWxmLmFzc2Vy dFByb2Nlc3NGYWlsdXJlKF9nZXRfcnVudGltZV9zdHJlYW1zLCBkLCAiZm9vYmFyMTIzIikKKyAK KyAgICAgICAgIGRfb3JpZy5hZGRfYnVpbGR0aW1lX3N0cmVhbSgiYnVpbGRtb2QxIiwgInN0cmVh bTIiKQorICAgICAgICAgZF9vcmlnLmFkZF9idWlsZHRpbWVfc3RyZWFtKCJidWlsZG1vZDEiLCAi c3RyZWFtMSIpCitkaWZmIC0tZ2l0IGEvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9wcm9m aWxlLnB5IGIvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9wcm9maWxlLnB5CitpbmRleCAx ZGU1N2M2Li43NjVjNTdkIDEwMDY0NAorLS0tIGEvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0 cy9wcm9maWxlLnB5CisrKysgYi9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL3Byb2ZpbGUu cHkKK0BAIC0yOCw2ICsyOCwxOCBAQCBleGNlcHQgSW1wb3J0RXJyb3I6CisgZnJvbSBiYXNlIGlt cG9ydCBUZXN0QmFzZQorIAorIAorK2RlZiBjb25zdHJ1Y3Rfd2l0aG91dF9hcmd1bWVudHMoKToK KysgICAgTW9kdWxlbWQuUHJvZmlsZSgpCisrCisrCisrZGVmIGNvbnN0cnVjdF93aXRoX25vbmVf bmFtZSgpOgorKyAgICBNb2R1bGVtZC5Qcm9maWxlKG5hbWU9Tm9uZSkKKysKKysKKytkZWYgX3Nl dF9wcm9wc19uYW1lKG1vZHVsZW1kX3Byb2ZpbGUsIHZhbHVlKToKKysgICAgbW9kdWxlbWRfcHJv ZmlsZS5wcm9wcy5uYW1lID0gdmFsdWUKKysKKysKKyBjbGFzcyBUZXN0UHJvZmlsZShUZXN0QmFz ZSk6CisgICAgIGRlZiB0ZXN0X2NvbnN0cnVjdG9yKHNlbGYpOgorICAgICAgICAgIyBUZXN0IHRo YXQgdGhlIG5ldygpIGZ1bmN0aW9uIHdvcmtzCitAQCAtNTEsMTEgKzYzLDkgQEAgY2xhc3MgVGVz dFByb2ZpbGUoVGVzdEJhc2UpOgorICAgICAgICAgICAgIE1vZHVsZW1kLlByb2ZpbGUubmV3KE5v bmUpCisgICAgICAgICBhc3NlcnQgImRvZXMgbm90IGFsbG93IE5vbmUgYXMgYSB2YWx1ZSIgaW4g Y20uZXhjZXB0aW9uLl9fc3RyX18oKQorIAorLSAgICAgICAgd2l0aCBzZWxmLmV4cGVjdF9zaWdu YWwoKToKKy0gICAgICAgICAgICBNb2R1bGVtZC5Qcm9maWxlKCkKKysgICAgICAgIHNlbGYuYXNz ZXJ0UHJvY2Vzc0ZhaWx1cmUoY29uc3RydWN0X3dpdGhvdXRfYXJndW1lbnRzKQorIAorLSAgICAg ICAgd2l0aCBzZWxmLmV4cGVjdF9zaWduYWwoKToKKy0gICAgICAgICAgICBNb2R1bGVtZC5Qcm9m aWxlKG5hbWU9Tm9uZSkKKysgICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vzc0ZhaWx1cmUoY29uc3Ry dWN0X3dpdGhfbm9uZV9uYW1lKQorIAorICAgICBkZWYgdGVzdF9jb3B5KHNlbGYpOgorICAgICAg ICAgcF9vcmlnID0gTW9kdWxlbWQuUHJvZmlsZShuYW1lPSJ0ZXN0cHJvZmlsZSIpCitAQCAtODQs OCArOTQsNyBAQCBjbGFzcyBUZXN0UHJvZmlsZShUZXN0QmFzZSk6CisgICAgICAgICBhc3NlcnQg cC5nZXRfbmFtZSgpID09ICJ0ZXN0cHJvZmlsZSIKKyAgICAgICAgIGFzc2VydCBwLnByb3BzLm5h bWUgPT0gInRlc3Rwcm9maWxlIgorIAorLSAgICAgICAgd2l0aCBzZWxmLmV4cGVjdF9zaWduYWwo KToKKy0gICAgICAgICAgICBwLnByb3BzLm5hbWUgPSAibm90YWRyaWxsIgorKyAgICAgICAgc2Vs Zi5hc3NlcnRQcm9jZXNzRmFpbHVyZShfc2V0X3Byb3BzX25hbWUsIHAsICJub3RhZHJpbGwiKQor IAorICAgICBkZWYgdGVzdF9nZXRfc2V0X2Rlc2NyaXB0aW9uKHNlbGYpOgorICAgICAgICAgcCA9 IE1vZHVsZW1kLlByb2ZpbGUobmFtZT0idGVzdHByb2ZpbGUiKQorZGlmZiAtLWdpdCBhL21vZHVs ZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvc2VydmljZWxldmVsLnB5IGIvbW9kdWxlbWQvdGVzdHMv TW9kdWxlbWRUZXN0cy9zZXJ2aWNlbGV2ZWwucHkKK2luZGV4IGYyNDRiMDEuLmZjOWM2NDggMTAw NjQ0CistLS0gYS9tb2R1bGVtZC90ZXN0cy9Nb2R1bGVtZFRlc3RzL3NlcnZpY2VsZXZlbC5weQor KysrIGIvbW9kdWxlbWQvdGVzdHMvTW9kdWxlbWRUZXN0cy9zZXJ2aWNlbGV2ZWwucHkKK0BAIC0z MCw2ICszMCwxOCBAQCBmcm9tIGJhc2UgaW1wb3J0IFRlc3RCYXNlCisgaW1wb3J0IGRhdGV0aW1l CisgCisgCisrZGVmIF9jb25zdHJ1Y3Rfd2l0aG91dF9hcmd1bWVudHMoKToKKysgICAgTW9kdWxl bWQuU2VydmljZUxldmVsKCkKKysKKysKKytkZWYgX2NvbnN0cnVjdF93aXRoX25vbmVfbmFtZSgp OgorKyAgICBNb2R1bGVtZC5TZXJ2aWNlTGV2ZWwobmFtZT1Ob25lKQorKworKworK2RlZiBfc2V0 X3Byb3BzX25hbWUobW9kdWxlbWRfc2VydmljZWxldmVsLCB2YWx1ZSk6CisrICAgIG1vZHVsZW1k X3NlcnZpY2VsZXZlbC5wcm9wcy5uYW1lID0gdmFsdWUKKysKKysKKyBjbGFzcyBUZXN0U2Vydmlj ZUxldmVsKFRlc3RCYXNlKToKKyAgICAgZGVmIHRlc3RfY29uc3RydWN0b3JzKHNlbGYpOgorICAg ICAgICAgIyBUZXN0IHRoYXQgdGhlIG5ldygpIGZ1bmN0aW9uIHdvcmtzCitAQCAtNTYsMTIgKzY4 LDEwIEBAIGNsYXNzIFRlc3RTZXJ2aWNlTGV2ZWwoVGVzdEJhc2UpOgorICAgICAgICAgICAgIGFz c2VydCAiZG9lcyBub3QgYWxsb3cgTm9uZSBhcyBhIHZhbHVlIiBpbiBlLl9fc3RyX18oKQorIAor ICAgICAgICAgIyBUZXN0IHRoYXQgd2UgZmFpbCBpZiBvYmplY3QgaXMgaW5zdGFudGlhdGVkIHdp dGhvdXQgYSBuYW1lCistICAgICAgICB3aXRoIHNlbGYuZXhwZWN0X3NpZ25hbCgpOgorLSAgICAg ICAgICAgIHNsID0gTW9kdWxlbWQuU2VydmljZUxldmVsKCkKKysgICAgICAgIHNlbGYuYXNzZXJ0 UHJvY2Vzc0ZhaWx1cmUoX2NvbnN0cnVjdF93aXRob3V0X2FyZ3VtZW50cykKKyAKKyAgICAgICAg ICMgVGVzdCB0aGF0IHdlIGZhaWwgaWYgb2JqZWN0IGlzIGluc3RhbnRpYXRlZCB3aXRoIGEgTm9u ZSBuYW1lCistICAgICAgICB3aXRoIHNlbGYuZXhwZWN0X3NpZ25hbCgpOgorLSAgICAgICAgICAg IHNsID0gTW9kdWxlbWQuU2VydmljZUxldmVsKG5hbWU9Tm9uZSkKKysgICAgICAgIHNlbGYuYXNz ZXJ0UHJvY2Vzc0ZhaWx1cmUoX2NvbnN0cnVjdF93aXRoX25vbmVfbmFtZSkKKyAKKyAgICAgZGVm IHRlc3RfY29weShzZWxmKToKKyAgICAgICAgIHNsID0gTW9kdWxlbWQuU2VydmljZUxldmVsLm5l dygiZm9vIikKK0BAIC05Myw4ICsxMDMsNyBAQCBjbGFzcyBUZXN0U2VydmljZUxldmVsKFRlc3RC YXNlKToKKyAgICAgICAgIGFzc2VydCBzbC5wcm9wcy5uYW1lID09ICJmb28iCisgCisgICAgICAg ICAjIFRoaXMgcHJvcGVydHkgaXMgbm90IHdyaXRhYmxlLCBtYWtlIHN1cmUgaXQgZmFpbHMgdG8g YXR0ZW1wdCBpdAorLSAgICAgICAgd2l0aCBzZWxmLmV4cGVjdF9zaWduYWwoKToKKy0gICAgICAg ICAgICBzbC5wcm9wcy5uYW1lID0gImJhciIKKysgICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vzc0Zh aWx1cmUoX3NldF9wcm9wc19uYW1lLCBzbCwgImJhciIpCisgCisgICAgIGRlZiB0ZXN0X2dldF9z ZXRfZW9sKHNlbGYpOgorICAgICAgICAgc2wgPSBNb2R1bGVtZC5TZXJ2aWNlTGV2ZWwubmV3KCJm b28iKQorZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvdHJhbnNsYXRp b25lbnRyeS5weSBiL21vZHVsZW1kL3Rlc3RzL01vZHVsZW1kVGVzdHMvdHJhbnNsYXRpb25lbnRy eS5weQoraW5kZXggYzUzZTY0Yi4uOWZjZTQ0MyAxMDA2NDQKKy0tLSBhL21vZHVsZW1kL3Rlc3Rz L01vZHVsZW1kVGVzdHMvdHJhbnNsYXRpb25lbnRyeS5weQorKysrIGIvbW9kdWxlbWQvdGVzdHMv TW9kdWxlbWRUZXN0cy90cmFuc2xhdGlvbmVudHJ5LnB5CitAQCAtMjksNiArMjksMTggQEAgZXhj ZXB0IEltcG9ydEVycm9yOgorIGZyb20gYmFzZSBpbXBvcnQgVGVzdEJhc2UKKyAKKyAKKytkZWYg X2luc3RhbnRpYXRlX3dpdGhvdXRfbG9jYWxlKCk6CisrICAgIE1vZHVsZW1kLlRyYW5zbGF0aW9u RW50cnkoKQorKworKworK2RlZiBfaW5zdGFudGlhdGVfd2l0aF9ub25lX2xvY2FsKCk6CisrICAg IE1vZHVsZW1kLlRyYW5zbGF0aW9uRW50cnkobG9jYWxlPU5vbmUpCisrCisrCisrZGVmIF9zZXRf bG9jYWxlKHRlKToKKysgICAgdGUucHJvcHMubG9jYWxlID0gImVuX0dCIgorKworKworIGNsYXNz IFRlc3RUcmFuc2xhdGlvbkVudHJ5KFRlc3RCYXNlKToKKyAgICAgZGVmIHRlc3RfY29uc3RydWN0 b3JzKHNlbGYpOgorICAgICAgICAgIyBUZXN0IHRoYXQgdGhlIG5ldygpIGZ1bmN0aW9uIHdvcmtz CitAQCAtMTE4LDEyICsxMzAsMTAgQEAgY2xhc3MgVGVzdFRyYW5zbGF0aW9uRW50cnkoVGVzdEJh c2UpOgorICAgICAgICAgICAgIGFzc2VydCAiZG9lcyBub3QgYWxsb3cgTm9uZSBhcyBhIHZhbHVl IiBpbiBlLl9fc3RyX18oKQorIAorICAgICAgICAgIyBUZXN0IHRoYXQgd2UgZmFpbCBpZiBvYmpl Y3QgaXMgaW5zdGFudGlhdGVkIHdpdGhvdXQgYSBsb2NhbGUKKy0gICAgICAgIHdpdGggc2VsZi5l eHBlY3Rfc2lnbmFsKCk6CistICAgICAgICAgICAgTW9kdWxlbWQuVHJhbnNsYXRpb25FbnRyeSgp CisrICAgICAgICBzZWxmLmFzc2VydFByb2Nlc3NGYWlsdXJlKF9pbnN0YW50aWF0ZV93aXRob3V0 X2xvY2FsZSkKKyAKKyAgICAgICAgICMgVGVzdCB0aGF0IHdlIGZhaWwgaWYgb2JqZWN0IGlzIGlu c3RhbnRpYXRlZCB3aXRoIGEgTm9uZSBsb2NhbGUKKy0gICAgICAgIHdpdGggc2VsZi5leHBlY3Rf c2lnbmFsKCk6CistICAgICAgICAgICAgTW9kdWxlbWQuVHJhbnNsYXRpb25FbnRyeShsb2NhbGU9 Tm9uZSkKKysgICAgICAgIHNlbGYuYXNzZXJ0UHJvY2Vzc0ZhaWx1cmUoX2luc3RhbnRpYXRlX3dp dGhfbm9uZV9sb2NhbCkKKyAKKyAgICAgZGVmIHRlc3RfY29weShzZWxmKToKKyAgICAgICAgIHRl X29yaWcgPSBNb2R1bGVtZC5UcmFuc2xhdGlvbkVudHJ5KGxvY2FsZT0iZW5fVVMiKQorQEAgLTE2 Miw4ICsxNzIsNyBAQCBjbGFzcyBUZXN0VHJhbnNsYXRpb25FbnRyeShUZXN0QmFzZSk6CisgICAg ICAgICBhc3NlcnQgdGUuZ2V0X2xvY2FsZSgpID09ICJlbl9VUyIKKyAgICAgICAgIGFzc2VydCB0 ZS5wcm9wcy5sb2NhbGUgPT0gImVuX1VTIgorIAorLSAgICAgICAgd2l0aCBzZWxmLmV4cGVjdF9z aWduYWwoKToKKy0gICAgICAgICAgICB0ZS5wcm9wcy5sb2NhbGUgPSAiZW5fR0IiCisrICAgICAg ICBzZWxmLmFzc2VydFByb2Nlc3NGYWlsdXJlKF9zZXRfbG9jYWxlLCB0ZSkKKyAKKyAgICAgZGVm IHRlc3RfZ2V0X3NldF9zdW1tYXJ5KHNlbGYpOgorICAgICAgICAgdGUgPSBNb2R1bGVtZC5UcmFu c2xhdGlvbkVudHJ5KGxvY2FsZT0iZW5fVVMiKQorZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3Rz L3Rlc3QtbW9kdWxlbWQtY29tbW9uLmMgYi9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLWNv bW1vbi5jCitpbmRleCA5N2U0NzdmLi42ODk1ZTM0IDEwMDY0NAorLS0tIGEvbW9kdWxlbWQvdGVz dHMvdGVzdC1tb2R1bGVtZC1jb21tb24uYworKysrIGIvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1 bGVtZC1jb21tb24uYworQEAgLTE0LDcgKzE0LDYgQEAKKyAjaW5jbHVkZSA8Z2xpYi5oPgorICNp bmNsdWRlIDxnbGliL2dzdGRpby5oPgorICNpbmNsdWRlIDxsb2NhbGUuaD4KKy0jaW5jbHVkZSA8 c2lnbmFsLmg+CisgCisgI2luY2x1ZGUgIm1vZHVsZW1kLmgiCisgCitAQCAtODMsNyArODIsNyBA QCB0ZXN0X21vZHVsZW1kX2xvYWRfZmlsZSAodm9pZCkKKyAKKyAKKyBzdGF0aWMgdm9pZAorLXRl c3RfbW9kdWxlbWRfbG9hZF9zdHJpbmcgKHZvaWQpCisrdGVzdF9tb2R1bGVtZF9sb2FkX3N0cmlu Z19yZWd1bGFyICh2b2lkKQorIHsKKyAgIGNvbnN0IGdjaGFyICp5YW1sX3N0cmluZyA9IE5VTEw7 CisgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOworQEAgLTEyMiwxNiArMTIxLDYg QEAgdGVzdF9tb2R1bGVtZF9sb2FkX3N0cmluZyAodm9pZCkKKyAgIGdfYXNzZXJ0X25vbm51bGwg KG91dHB1dCk7CisgCisgCistICAvKiBOVUxMIHN0cmluZyBzaG91bGQgcmFpc2UgYW4gZXhjZXB0 aW9uICovCistICBnX2NsZWFyX2Vycm9yICgmZXJyb3IpOworLSAgZ19jbGVhcl9vYmplY3QgKCZp ZHgpOworLSAgbW9kdWxlbWRfdGVzdF9zaWduYWwgPSAwOworLSAgc2lnbmFsIChTSUdUUkFQLCBt b2R1bGVtZF90ZXN0X3NpZ25hbF9oYW5kbGVyKTsKKy0gIGlkeCA9IG1vZHVsZW1kX2xvYWRfc3Ry aW5nIChOVUxMLCAmZXJyb3IpOworLSAgZ19hc3NlcnRfY21waW50IChtb2R1bGVtZF90ZXN0X3Np Z25hbCwgPT0sIFNJR1RSQVApOworLSAgZ19hc3NlcnRfbnVsbCAoaWR4KTsKKy0KKy0KKyAgIC8q IEFuIGVtcHR5IHN0cmluZyBpcyB2YWxpZCBZQU1MLCBzbyBpdCByZXR1cm5zIGEgbm9uLU5VTEwg YnV0IGVtcHR5IGluZGV4LiAqLworICAgZ19jbGVhcl9lcnJvciAoJmVycm9yKTsKKyAgIGdfY2xl YXJfb2JqZWN0ICgmaWR4KTsKK0BAIC0xNTEsNiArMTQwLDIyIEBAIHRlc3RfbW9kdWxlbWRfbG9h ZF9zdHJpbmcgKHZvaWQpCisgfQorIAorIAorKy8qIE5VTEwgc3RyaW5nIHNob3VsZCByYWlzZSBh biBleGNlcHRpb24gKi8KKytzdGF0aWMgdm9pZAorK3Rlc3RfbW9kdWxlbWRfbG9hZF9zdHJpbmdf bnVsbCAodm9pZCkKKyt7CisrICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCisrICAgIHsKKysg ICAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOworKyAgICAgIGdfYXV0b3B0ciAo TW9kdWxlbWRNb2R1bGVJbmRleCkgaWR4ID0gTlVMTDsKKysgICAgICBpZHggPSBtb2R1bGVtZF9s b2FkX3N0cmluZyAoTlVMTCwgJmVycm9yKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysgIGdf dGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQp OworKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKKyt9CisrCisrCisgc3RhdGljIHZv aWQKKyB0ZXN0X3BhY2thZ2VyX3JlYWRfZmlsZSAodm9pZCkKKyB7CitAQCAtMzUzLDcgKzM1OCw3 IEBAIHRlc3RfcGFja2FnZXJfcmVhZF9maWxlICh2b2lkKQorIAorIAorIHN0YXRpYyB2b2lkCist dGVzdF9wYWNrYWdlcl9yZWFkX3N0cmluZyAodm9pZCkKKyt0ZXN0X3BhY2thZ2VyX3JlYWRfc3Ry aW5nX3JlZ3VsYXIgKHZvaWQpCisgeworICAgY29uc3QgZ2NoYXIgKnlhbWxfc3RyaW5nID0gTlVM TDsKKyAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7CitAQCAtNTMxLDE2ICs1MzYs NiBAQCB0ZXN0X3BhY2thZ2VyX3JlYWRfc3RyaW5nICh2b2lkKQorICAgICA9PSwKKyAgICAgInN0 cmVhbW5hbWUtb3ZlcnJpZGUiKTsKKyAKKy0gIC8qIE5VTEwgc3RyaW5nIHNob3VsZCByYWlzZSBh biBleGNlcHRpb24gKi8KKy0gIGdfY2xlYXJfZXJyb3IgKCZlcnJvcik7CistICBnX2NsZWFyX29i amVjdCAoJm9iamVjdCk7CistICBtb2R1bGVtZF90ZXN0X3NpZ25hbCA9IDA7CistICBzaWduYWwg KFNJR1RSQVAsIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsX2hhbmRsZXIpOworLSAgb3R5cGUgPSBtb2R1 bGVtZF9yZWFkX3BhY2thZ2VyX3N0cmluZyAoTlVMTCwgJm9iamVjdCwgJmVycm9yKTsKKy0gIGdf YXNzZXJ0X2NtcGludCAobW9kdWxlbWRfdGVzdF9zaWduYWwsID09LCBTSUdUUkFQKTsKKy0gIGdf YXNzZXJ0X2NtcGludCAob3R5cGUsID09LCBHX1RZUEVfSU5WQUxJRCk7CistICBnX2Fzc2VydF9u dWxsIChvYmplY3QpOworLQorICAgLyogQW4gZW1wdHkgc3RyaW5nIGlzIG5vdCBhIHZhbGlkIHBh Y2thZ2VyIGZvcm1hdCAqLworICAgZ19jbGVhcl9lcnJvciAoJmVycm9yKTsKKyAgIGdfY2xlYXJf b2JqZWN0ICgmb2JqZWN0KTsKK0BAIC01NTksNiArNTU0LDIxIEBAIHRlc3RfcGFja2FnZXJfcmVh ZF9zdHJpbmcgKHZvaWQpCisgfQorIAorIAorKy8qIE5VTEwgc3RyaW5nIHNob3VsZCByYWlzZSBh biBleGNlcHRpb24gKi8KKytzdGF0aWMgdm9pZAorK3Rlc3RfcGFja2FnZXJfcmVhZF9zdHJpbmdf bnVsbCAodm9pZCkKKyt7CisrICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCisrICAgIHsKKysg ICAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOworKyAgICAgIGdfYXV0b3B0ciAo R09iamVjdCkgb2JqZWN0ID0gTlVMTDsKKysgICAgICAodm9pZCltb2R1bGVtZF9yZWFkX3BhY2th Z2VyX3N0cmluZyAoTlVMTCwgJm9iamVjdCwgJmVycm9yKTsKKysgICAgICByZXR1cm47CisrICAg IH0KKysgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNT X0RFRkFVTFQpOworKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKKyt9CisrCisgLyoK KyAgKiBFbXB0eSBwcm9maWxlcyBhcmUgbGVnYWwuIFBhcnNlciBtaXNpbnRlcnByZXRlZCB0aGVt IGFzIGEgbGlzdCBvZiBvbmUKKyAgKiBwYWNrYWdlIHdpdGggYW4gZW1wdHkgcGFja2FnZSBuYW1l LgorQEAgLTYxNywxMyArNjI3LDE3IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCisg ICAgICAgICAgICAgICAgICAgIHRlc3RfbW9kdWxlbWRfZ2V0X3ZlcnNpb24pOworIAorICAgZ190 ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2NvbW1vbi9sb2FkX2ZpbGUiLCB0ZXN0X21vZHVs ZW1kX2xvYWRfZmlsZSk7CistICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvY29tbW9u L2xvYWRfc3RyaW5nIiwKKy0gICAgICAgICAgICAgICAgICAgdGVzdF9tb2R1bGVtZF9sb2FkX3N0 cmluZyk7CisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvY29tbW9uL2xvYWRfc3Ry aW5nL3JlZ3VsYXIiLAorKyAgICAgICAgICAgICAgICAgICB0ZXN0X21vZHVsZW1kX2xvYWRfc3Ry aW5nX3JlZ3VsYXIpOworKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2NvbW1vbi9s b2FkX3N0cmluZy9udWxsIiwKKysgICAgICAgICAgICAgICAgICAgdGVzdF9tb2R1bGVtZF9sb2Fk X3N0cmluZ19udWxsKTsKKyAKKyAgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9jb21t b24vcGFja2FnZXIvcmVhZF9maWxlIiwKKyAgICAgICAgICAgICAgICAgICAgdGVzdF9wYWNrYWdl cl9yZWFkX2ZpbGUpOworLSAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2NvbW1vbi9w YWNrYWdlci9yZWFkX3N0cmluZyIsCistICAgICAgICAgICAgICAgICAgIHRlc3RfcGFja2FnZXJf cmVhZF9zdHJpbmcpOworKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2NvbW1vbi9w YWNrYWdlci9yZWFkX3N0cmluZy9yZWd1bGFyIiwKKysgICAgICAgICAgICAgICAgICAgdGVzdF9w YWNrYWdlcl9yZWFkX3N0cmluZ19yZWd1bGFyKTsKKysgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1 bGVtZC92Mi9jb21tb24vcGFja2FnZXIvcmVhZF9zdHJpbmcvbnVsbCIsCisrICAgICAgICAgICAg ICAgICAgIHRlc3RfcGFja2FnZXJfcmVhZF9zdHJpbmdfbnVsbCk7CisgCisgICBnX3Rlc3RfYWRk X2Z1bmMgKCIvbW9kdWxlbWQvdjIvY29tbW9uL2VtcHR5X3Byb2ZpbGUiLCB0ZXN0X2VtcHR5X3By b2ZpbGUpOworIAorZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtY29t cG9uZW50LW1vZHVsZS5jIGIvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1jb21wb25lbnQt bW9kdWxlLmMKK2luZGV4IDIwZTc4ODEuLjY4M2M3NzQgMTAwNjQ0CistLS0gYS9tb2R1bGVtZC90 ZXN0cy90ZXN0LW1vZHVsZW1kLWNvbXBvbmVudC1tb2R1bGUuYworKysrIGIvbW9kdWxlbWQvdGVz dHMvdGVzdC1tb2R1bGVtZC1jb21wb25lbnQtbW9kdWxlLmMKK0BAIC0xNCw3ICsxNCw2IEBACisg I2luY2x1ZGUgPGdsaWIuaD4KKyAjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KKyAjaW5jbHVkZSA8 bG9jYWxlLmg+CistI2luY2x1ZGUgPHNpZ25hbC5oPgorIAorICNpbmNsdWRlICJtb2R1bGVtZC1j b21wb25lbnQtbW9kdWxlLmgiCisgI2luY2x1ZGUgIm1vZHVsZW1kLWNvbXBvbmVudC5oIgorQEAg LTI4LDE2ICsyNyw4IEBAIHR5cGVkZWYgc3RydWN0IF9Db21wb25lbnRNb2R1bGVGaXh0dXJlCisg eworIH0gQ29tcG9uZW50TW9kdWxlRml4dHVyZTsKKyAKKy1nYm9vbGVhbiBzaWduYWxlZCA9IEZB TFNFOworLQorLXN0YXRpYyB2b2lkCistc2lndHJhcF9oYW5kbGVyIChpbnQgVU5VU0VEIChzaWdf bnVtKSkKKy17CistICBzaWduYWxlZCA9IFRSVUU7CistfQorLQorIHN0YXRpYyB2b2lkCistY29t cG9uZW50X21vZHVsZV90ZXN0X2NvbnN0cnVjdCAodm9pZCkKKytjb21wb25lbnRfbW9kdWxlX3Rl c3RfY29uc3RydWN0X3JlZ3VsYXIgKHZvaWQpCisgeworICAgZ19hdXRvcHRyIChNb2R1bGVtZENv bXBvbmVudE1vZHVsZSkgbSA9IE5VTEw7CisgICBNb2R1bGVtZENvbXBvbmVudCAqbWMgPSBOVUxM OworQEAgLTg0LDI5ICs3NSw0OSBAQCBjb21wb25lbnRfbW9kdWxlX3Rlc3RfY29uc3RydWN0ICh2 b2lkKQorICAgICBtb2R1bGVtZF9jb21wb25lbnRfbW9kdWxlX2dldF9yZXBvc2l0b3J5IChtKSwg PT0sICJzb21lcmVwbyIpOworICAgbWMgPSBOVUxMOworICAgZ19jbGVhcl9vYmplY3QgKCZtKTsK Kyt9CisgCistICAvKiBUZXN0IHRoYXQgd2UgYWJvcnQgd2l0aCBhIE5VTEwgbmFtZSB0byBuZXco KSAqLworLSAgc2lnbmFsZWQgPSBGQUxTRTsKKy0gIHNpZ25hbCAoU0lHVFJBUCwgc2lndHJhcF9o YW5kbGVyKTsKKy0gIG0gPSBtb2R1bGVtZF9jb21wb25lbnRfbW9kdWxlX25ldyAoTlVMTCk7Cist ICBnX2Fzc2VydF90cnVlIChzaWduYWxlZCk7CistICBnX2NsZWFyX29iamVjdCAoJm0pOworLQor LSAgLyogVGVzdCB0aGF0IGluaXQgZmFpbHMgd2l0aG91dCBuYW1lICovCistICBzaWduYWxlZCA9 IEZBTFNFOworLSAgc2lnbmFsIChTSUdUUkFQLCBzaWd0cmFwX2hhbmRsZXIpOworLSAgbSA9IGdf b2JqZWN0X25ldyAoTU9EVUxFTURfVFlQRV9DT01QT05FTlRfTU9EVUxFLCBOVUxMKTsKKy0gIGdf YXNzZXJ0X3RydWUgKHNpZ25hbGVkKTsKKy0gIGdfY2xlYXJfb2JqZWN0ICgmbSk7CisrLyogVGVz dCB0aGF0IHdlIGFib3J0IHdpdGggYSBOVUxMIG5hbWUgdG8gbmV3KCkgKi8KKytzdGF0aWMgdm9p ZAorK2NvbXBvbmVudF9tb2R1bGVfdGVzdF9jb25zdHJ1Y3RfbmV3X251bGxfbmFtZSAodm9pZCkK Kyt7CisrICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCisrICAgIHsKKysgICAgICBnX2F1dG9w dHIgKE1vZHVsZW1kQ29tcG9uZW50TW9kdWxlKSBtID0gTlVMTDsKKysgICAgICBtID0gbW9kdWxl bWRfY29tcG9uZW50X21vZHVsZV9uZXcgKE5VTEwpOworKyAgICAgIHJldHVybjsKKysgICAgfQor KyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVG QVVMVCk7CisrICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOworK30KKyAKKy0gIC8qIFRl c3QgdGhhdCBpbml0IGZhaWxzIHdpdGggYSBOVUxMIG5hbWUgKi8KKy0gIHNpZ25hbGVkID0gRkFM U0U7CistICBzaWduYWwgKFNJR1RSQVAsIHNpZ3RyYXBfaGFuZGxlcik7CistICBtID0gZ19vYmpl Y3RfbmV3IChNT0RVTEVNRF9UWVBFX0NPTVBPTkVOVF9NT0RVTEUsICJuYW1lIiwgTlVMTCwgTlVM TCk7CistICBnX2Fzc2VydF90cnVlIChzaWduYWxlZCk7CistICBnX2NsZWFyX29iamVjdCAoJm0p OworKy8qIFRlc3QgdGhhdCBpbml0IGZhaWxzIHdpdGhvdXQgbmFtZSAqLworK3N0YXRpYyB2b2lk CisrY29tcG9uZW50X21vZHVsZV90ZXN0X2NvbnN0cnVjdF9pbml0X3dpdGhvdXRfbmFtZSAodm9p ZCkKKyt7CisrICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCisrICAgIHsKKysgICAgICBnX2F1 dG9wdHIgKE1vZHVsZW1kQ29tcG9uZW50TW9kdWxlKSBtID0gTlVMTDsKKysgICAgICBtID0gZ19v YmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX0NPTVBPTkVOVF9NT0RVTEUsIE5VTEwpOworKyAgICAg IHJldHVybjsKKysgICAgfQorKyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19U RVNUX1NVQlBST0NFU1NfREVGQVVMVCk7CisrICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgp OworIH0KKyAKKysvKiBUZXN0IHRoYXQgaW5pdCBmYWlscyB3aXRoIGEgTlVMTCBuYW1lICovCisr c3RhdGljIHZvaWQKKytjb21wb25lbnRfbW9kdWxlX3Rlc3RfY29uc3RydWN0X2luaXRfbnVsbF9u YW1lICh2b2lkKQorK3sKKysgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKKysgICAgeworKyAg ICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRDb21wb25lbnRNb2R1bGUpIG0gPSBOVUxMOworKyAgICAg IG0gPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfQ09NUE9ORU5UX01PRFVMRSwgIm5hbWUi LCBOVUxMLCBOVUxMKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysgIGdfdGVzdF90cmFwX3N1 YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOworKyAgZ190ZXN0 X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKKyt9CisgCisgc3RhdGljIHZvaWQKKyBjb21wb25lbnRf bW9kdWxlX3Rlc3RfZXF1YWxzICh2b2lkKQorQEAgLTQyMSw4ICs0MzIsMTcgQEAgbWFpbiAoaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKKyAgIGdfdGVzdF9idWdfYmFzZSAoImh0dHBzOi8vYnVnemls bGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9Iik7CisgCisgICAvLyBEZWZpbmUgdGhlIHRl c3RzLgorLSAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2NvbXBvbmVudC9tb2R1bGUv Y29uc3RydWN0IiwKKy0gICAgICAgICAgICAgICAgICAgY29tcG9uZW50X21vZHVsZV90ZXN0X2Nv bnN0cnVjdCk7CisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvY29tcG9uZW50L21v ZHVsZS9jb25zdHJ1Y3QvcmVndWxhciIsCisrICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudF9t b2R1bGVfdGVzdF9jb25zdHJ1Y3RfcmVndWxhcik7CisrCisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIv bW9kdWxlbWQvdjIvY29tcG9uZW50L21vZHVsZS9jb25zdHJ1Y3QvbmV3X251bGxfbmFtZSIsCisr ICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudF9tb2R1bGVfdGVzdF9jb25zdHJ1Y3RfbmV3X251 bGxfbmFtZSk7CisrCisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvY29tcG9uZW50 L21vZHVsZS9jb25zdHJ1Y3QvaW5pdF93aXRob3V0X25hbWUiLAorKyAgICAgICAgICAgICAgICAg ICBjb21wb25lbnRfbW9kdWxlX3Rlc3RfY29uc3RydWN0X2luaXRfd2l0aG91dF9uYW1lKTsKKysK KysgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9jb21wb25lbnQvbW9kdWxlL2NvbnN0 cnVjdC9pbml0X251bGxfbmFtZSIsCisrICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudF9tb2R1 bGVfdGVzdF9jb25zdHJ1Y3RfaW5pdF9udWxsX25hbWUpOworIAorICAgZ190ZXN0X2FkZF9mdW5j ICgiL21vZHVsZW1kL3YyL2NvbXBvbmVudC9tb2R1bGUvZXF1YWxzIiwKKyAgICAgICAgICAgICAg ICAgICAgY29tcG9uZW50X21vZHVsZV90ZXN0X2VxdWFscyk7CitkaWZmIC0tZ2l0IGEvbW9kdWxl bWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1kZWZhdWx0cy12MS5jIGIvbW9kdWxlbWQvdGVzdHMvdGVz dC1tb2R1bGVtZC1kZWZhdWx0cy12MS5jCitpbmRleCBjNGZlMjM1Li4yZGFhMjk1IDEwMDY0NAor LS0tIGEvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1kZWZhdWx0cy12MS5jCisrKysgYi9t b2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLWRlZmF1bHRzLXYxLmMKK0BAIC0xNCw3ICsxNCw2 IEBACisgI2luY2x1ZGUgPGdsaWIuaD4KKyAjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KKyAjaW5j bHVkZSA8bG9jYWxlLmg+CistI2luY2x1ZGUgPHNpZ25hbC5oPgorIAorICNpbmNsdWRlICJtb2R1 bGVtZC1kZWZhdWx0cy12MS5oIgorICNpbmNsdWRlICJwcml2YXRlL2dsaWItZXh0ZW5zaW9ucy5o IgorQEAgLTI2LDcgKzI1LDcgQEAKKyAKKyAKKyBzdGF0aWMgdm9pZAorLWRlZmF1bHRzX3Rlc3Rf Y29uc3RydWN0ICh2b2lkKQorK2RlZmF1bHRzX3Rlc3RfY29uc3RydWN0X3JlZ3VsYXIgKHZvaWQp CisgeworICAgZ19hdXRvcHRyIChNb2R1bGVtZERlZmF1bHRzVjEpIGRlZmF1bHRzID0gTlVMTDsK KyAKK0BAIC0zNywxMyArMzYsNiBAQCBkZWZhdWx0c190ZXN0X2NvbnN0cnVjdCAodm9pZCkKKyAg IGdfYXNzZXJ0X3RydWUgKE1PRFVMRU1EX0lTX0RFRkFVTFRTX1YxIChkZWZhdWx0cykpOworICAg Z19jbGVhcl9vYmplY3QgKCZkZWZhdWx0cyk7CisgCistICAvKiBUZXN0IG5ldygpIHdpdGggYSBO VUxMIG1vZHVsZV9uYW1lICovCistICBtb2R1bGVtZF90ZXN0X3NpZ25hbCA9IDA7CistICBzaWdu YWwgKFNJR1RSQVAsIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsX2hhbmRsZXIpOworLSAgZGVmYXVsdHMg PSBtb2R1bGVtZF9kZWZhdWx0c192MV9uZXcgKE5VTEwpOworLSAgZ19hc3NlcnRfY21waW50ICht b2R1bGVtZF90ZXN0X3NpZ25hbCwgPT0sIFNJR1RSQVApOworLSAgZ19jbGVhcl9vYmplY3QgKCZk ZWZhdWx0cyk7CistCisgCisgICAvKiBUZXN0IG9iamVjdCBpbnN0YW50aWF0aW9uIHdpdGggYSB2 YWxpZCBtb2R1bGUgbmFtZSAqLworICAgLy8gY2xhbmctZm9ybWF0IG9mZgorQEAgLTU1LDI2ICs0 Nyw1NyBAQCBkZWZhdWx0c190ZXN0X2NvbnN0cnVjdCAodm9pZCkKKyAgIGdfYXNzZXJ0X3RydWUg KE1PRFVMRU1EX0lTX0RFRkFVTFRTIChkZWZhdWx0cykpOworICAgZ19hc3NlcnRfdHJ1ZSAoTU9E VUxFTURfSVNfREVGQVVMVFNfVjEgKGRlZmF1bHRzKSk7CisgICBnX2NsZWFyX29iamVjdCAoJmRl ZmF1bHRzKTsKKyt9CisgCistICAvKiBUZXN0IG9iamVjdCBpbnN0YW50aWF0aW9uIHdpdGggYSBO VUxMIG1vZHVsZSBuYW1lICovCistICBtb2R1bGVtZF90ZXN0X3NpZ25hbCA9IDA7CistICBzaWdu YWwgKFNJR1RSQVAsIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsX2hhbmRsZXIpOworLSAgLy8gY2xhbmct Zm9ybWF0IG9mZgorLSAgZGVmYXVsdHMgPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfREVG QVVMVFNfVjEsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vZHVsZS1uYW1lIiwgTlVM TCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKy0gIC8vIGNsYW5nLWZvcm1h dCBvbgorLSAgZ19hc3NlcnRfY21waW50IChtb2R1bGVtZF90ZXN0X3NpZ25hbCwgPT0sIFNJR1RS QVApOworLSAgZ19jbGVhcl9vYmplY3QgKCZkZWZhdWx0cyk7CisgCistICAvKiBUZXN0IG9iamVj dCBpbnN0YW50aWF0aW9uIHdpdGhvdXQgc3BlY2lmeWluZyB0aGUgbW9kdWxlIG5hbWUgKi8KKy0g IG1vZHVsZW1kX3Rlc3Rfc2lnbmFsID0gMDsKKy0gIHNpZ25hbCAoU0lHVFJBUCwgbW9kdWxlbWRf dGVzdF9zaWduYWxfaGFuZGxlcik7CistICAvLyBjbGFuZy1mb3JtYXQgb2ZmCistICBkZWZhdWx0 cyA9IGdfb2JqZWN0X25ldyAoTU9EVUxFTURfVFlQRV9ERUZBVUxUU19WMSwgTlVMTCk7CistICAv LyBjbGFuZy1mb3JtYXQgb24KKy0gIGdfYXNzZXJ0X2NtcGludCAobW9kdWxlbWRfdGVzdF9zaWdu YWwsID09LCBTSUdUUkFQKTsKKy0gIGdfY2xlYXJfb2JqZWN0ICgmZGVmYXVsdHMpOworKy8qIFRl c3QgbmV3KCkgd2l0aCBhIE5VTEwgbW9kdWxlX25hbWUgKi8KKytzdGF0aWMgdm9pZAorK2RlZmF1 bHRzX3Rlc3RfY29uc3RydWN0X25ld19udWxsX21vZHVsZV9uYW1lICh2b2lkKQorK3sKKysgIGlm IChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKKysgICAgeworKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxl bWREZWZhdWx0c1YxKSBkZWZhdWx0cyA9IE5VTEw7CisrICAgICAgZGVmYXVsdHMgPSBtb2R1bGVt ZF9kZWZhdWx0c192MV9uZXcgKE5VTEwpOworKyAgICAgIHJldHVybjsKKysgICAgfQorKyAgZ190 ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7 CisrICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOworK30KKysKKysKKysvKiBUZXN0IG9i amVjdCBpbnN0YW50aWF0aW9uIHdpdGhvdXQgc3BlY2lmeWluZyB0aGUgbW9kdWxlIG5hbWUgKi8K KytzdGF0aWMgdm9pZAorK2RlZmF1bHRzX3Rlc3RfY29uc3RydWN0X2luaXRfbm9fbW9kdWxlX25h bWUgKHZvaWQpCisreworKyAgaWYgKGdfdGVzdF9zdWJwcm9jZXNzICgpKQorKyAgICB7CisrICAg ICAgZ19hdXRvcHRyIChNb2R1bGVtZERlZmF1bHRzVjEpIGRlZmF1bHRzID0gTlVMTDsKKysgICAg ICAvLyBjbGFuZy1mb3JtYXQgb2ZmCisrICAgICAgZGVmYXVsdHMgPSBnX29iamVjdF9uZXcgKE1P RFVMRU1EX1RZUEVfREVGQVVMVFNfVjEsIE5VTEwpOworKyAgICAgIC8vIGNsYW5nLWZvcm1hdCBv bgorKyAgICAgIHJldHVybjsKKysgICAgfQorKyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVM TCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7CisrICBnX3Rlc3RfdHJhcF9hc3NlcnRf ZmFpbGVkICgpOworK30KKysKKysKKysvKiBUZXN0IG9iamVjdCBpbnN0YW50aWF0aW9uIHdpdGgg YSBOVUxMIG1vZHVsZSBuYW1lICovCisrc3RhdGljIHZvaWQKKytkZWZhdWx0c190ZXN0X2NvbnN0 cnVjdF9pbml0X251bGxfbW9kdWxlX25hbWUgKHZvaWQpCisreworKyAgaWYgKGdfdGVzdF9zdWJw cm9jZXNzICgpKQorKyAgICB7CisrICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZERlZmF1bHRzVjEp IGRlZmF1bHRzID0gTlVMTDsKKysgICAgICAvLyBjbGFuZy1mb3JtYXQgb2ZmCisrICAgICAgZGVm YXVsdHMgPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfREVGQVVMVFNfVjEsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJtb2R1bGUtbmFtZSIsIE5VTEwsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworKyAgICAgIC8vIGNsYW5nLWZvcm1hdCBvbgor KyAgICAgIHJldHVybjsKKysgICAgfQorKyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwg MCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7CisrICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFp bGVkICgpOworIH0KKyAKKyAKK0BAIC04MjAsOCArODQzLDE0IEBAIG1haW4gKGludCBhcmdjLCBj aGFyICphcmd2W10pCisgICAvLyBEZWZpbmUgdGhlIHRlc3RzLgorICAgZ190ZXN0X2FkZF9mdW5j ICgiL21vZHVsZW1kL3YyL2RlZmF1bHRzL3YxL2VxdWFscyIsIGRlZmF1bHRzX3Rlc3RfZXF1YWxz KTsKKyAKKy0gIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9kZWZhdWx0cy92MS9jb25z dHJ1Y3QiLAorLSAgICAgICAgICAgICAgICAgICBkZWZhdWx0c190ZXN0X2NvbnN0cnVjdCk7Cisr ICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvZGVmYXVsdHMvdjEvY29uc3RydWN0L3Jl Z3VsYXIiLAorKyAgICAgICAgICAgICAgICAgICBkZWZhdWx0c190ZXN0X2NvbnN0cnVjdF9yZWd1 bGFyKTsKKysgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9kZWZhdWx0cy92MS9jb25z dHJ1Y3QvbmV3X251bGxfbW9kdWxlX25hbWUiLAorKyAgICAgICAgICAgICAgICAgICBkZWZhdWx0 c190ZXN0X2NvbnN0cnVjdF9uZXdfbnVsbF9tb2R1bGVfbmFtZSk7CisrICBnX3Rlc3RfYWRkX2Z1 bmMgKCIvbW9kdWxlbWQvdjIvZGVmYXVsdHMvdjEvY29uc3RydWN0L2luaXRfbm9fbW9kdWxlX25h bWUiLAorKyAgICAgICAgICAgICAgICAgICBkZWZhdWx0c190ZXN0X2NvbnN0cnVjdF9pbml0X25v X21vZHVsZV9uYW1lKTsKKysgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9kZWZhdWx0 cy92MS9jb25zdHJ1Y3QvaW5pdF9udWxsX21vZHVsZV9uYW1lIiwKKysgICAgICAgICAgICAgICAg ICAgZGVmYXVsdHNfdGVzdF9jb25zdHJ1Y3RfaW5pdF9udWxsX21vZHVsZV9uYW1lKTsKKyAKKyAg IGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9kZWZhdWx0cy92MS9jb3B5IiwgZGVmYXVs dHNfdGVzdF9jb3B5KTsKKyAKK2RpZmYgLS1naXQgYS9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVs ZW1kLWRlZmF1bHRzLmMgYi9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLWRlZmF1bHRzLmMK K2luZGV4IDJhNDY3NzQuLjU2MmU0ZmUgMTAwNjQ0CistLS0gYS9tb2R1bGVtZC90ZXN0cy90ZXN0 LW1vZHVsZW1kLWRlZmF1bHRzLmMKKysrKyBiL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQt ZGVmYXVsdHMuYworQEAgLTE0LDcgKzE0LDYgQEAKKyAjaW5jbHVkZSA8Z2xpYi5oPgorICNpbmNs dWRlIDxnbGliL2dzdGRpby5oPgorICNpbmNsdWRlIDxsb2NhbGUuaD4KKy0jaW5jbHVkZSA8c2ln bmFsLmg+CisgCisgI2luY2x1ZGUgIm1vZHVsZW1kLWRlZmF1bHRzLXYxLmgiCisgI2luY2x1ZGUg Im1vZHVsZW1kLWRlZmF1bHRzLmgiCitAQCAtMjQsNyArMjMsNyBAQAorICNpbmNsdWRlICJwcml2 YXRlL3Rlc3QtdXRpbHMuaCIKKyAKKyBzdGF0aWMgdm9pZAorLWRlZmF1bHRzX3Rlc3RfY29uc3Ry dWN0ICh2b2lkKQorK2RlZmF1bHRzX3Rlc3RfY29uc3RydWN0X3JlZ3VsYXIgKHZvaWQpCisgewor ICAgZ19hdXRvcHRyIChNb2R1bGVtZERlZmF1bHRzKSBkZWZhdWx0cyA9IE5VTEw7CisgCitAQCAt MzQsMzAgKzMzLDUxIEBAIGRlZmF1bHRzX3Rlc3RfY29uc3RydWN0ICh2b2lkKQorICAgZ19hc3Nl cnRfdHJ1ZSAoTU9EVUxFTURfSVNfREVGQVVMVFMgKGRlZmF1bHRzKSk7CisgICBnX2Fzc2VydF90 cnVlIChNT0RVTEVNRF9JU19ERUZBVUxUU19WMSAoZGVmYXVsdHMpKTsKKyAgIGdfY2xlYXJfb2Jq ZWN0ICgmZGVmYXVsdHMpOworK30KKyAKKy0gIC8qIFRlc3QgbmV3KCkgd2l0aCBhIHplcm8gbWR2 ZXJzaW9uICovCistICBtb2R1bGVtZF90ZXN0X3NpZ25hbCA9IDA7CistICBzaWduYWwgKFNJR1RS QVAsIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsX2hhbmRsZXIpOworLSAgZGVmYXVsdHMgPSBtb2R1bGVt ZF9kZWZhdWx0c19uZXcgKDAsICJmb28iKTsKKy0gIGdfYXNzZXJ0X2NtcGludCAobW9kdWxlbWRf dGVzdF9zaWduYWwsID09LCBTSUdUUkFQKTsKKy0gIGdfYXNzZXJ0X251bGwgKGRlZmF1bHRzKTsK Ky0KKy0gIC8qIFRlc3QgbmV3KCkgd2l0aCBhIHRvby1oaWdoIG1kdmVyc2lvbiAqLworLSAgbW9k dWxlbWRfdGVzdF9zaWduYWwgPSAwOworLSAgc2lnbmFsIChTSUdUUkFQLCBtb2R1bGVtZF90ZXN0 X3NpZ25hbF9oYW5kbGVyKTsKKy0gIGRlZmF1bHRzID0gbW9kdWxlbWRfZGVmYXVsdHNfbmV3IChN RF9ERUZBVUxUU19WRVJTSU9OX0xBVEVTVCArIDEsICJmb28iKTsKKy0gIGdfYXNzZXJ0X2NtcGlu dCAobW9kdWxlbWRfdGVzdF9zaWduYWwsID09LCBTSUdUUkFQKTsKKy0gIGdfYXNzZXJ0X251bGwg KGRlZmF1bHRzKTsKKy0KKy0gIC8qIFRlc3QgbmV3KCkgd2l0aCBhIE5VTEwgbW9kdWxlX25hbWUg Ki8KKy0gIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsID0gMDsKKy0gIHNpZ25hbCAoU0lHVFJBUCwgbW9k dWxlbWRfdGVzdF9zaWduYWxfaGFuZGxlcik7CistICBkZWZhdWx0cyA9IG1vZHVsZW1kX2RlZmF1 bHRzX25ldyAoTURfREVGQVVMVFNfVkVSU0lPTl9PTkUsIE5VTEwpOworLSAgZ19hc3NlcnRfY21w aW50IChtb2R1bGVtZF90ZXN0X3NpZ25hbCwgPT0sIFNJR1RSQVApOworLSAgLyogSWYgd2UgdHJh cCB0aGUgZXJyb3IsIGRlZmF1bHRzIGFjdHVhbGx5IHJldHVybnMgYSB2YWx1ZSBoZXJlLCBzbyBm cmVlCistICAgKiBpdAorLSAgICovCistICBnX2NsZWFyX29iamVjdCAoJmRlZmF1bHRzKTsKKysK KysvKiBUZXN0IG5ldygpIHdpdGggYSB6ZXJvIG1kdmVyc2lvbiAqLworK3N0YXRpYyB2b2lkCisr ZGVmYXVsdHNfdGVzdF9jb25zdHJ1Y3RfemVyb19tZHZlcnNpb24gKHZvaWQpCisreworKyAgaWYg KGdfdGVzdF9zdWJwcm9jZXNzICgpKQorKyAgICB7CisrICAgICAgZ19hdXRvcHRyIChNb2R1bGVt ZERlZmF1bHRzKSBkZWZhdWx0cyA9IE5VTEw7CisrICAgICAgZGVmYXVsdHMgPSBtb2R1bGVtZF9k ZWZhdWx0c19uZXcgKDAsICJmb28iKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysgIGdfdGVz dF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOwor KyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKKyt9CisrCisrCisrLyogVGVzdCBuZXco KSB3aXRoIGEgdG9vLWhpZ2ggbWR2ZXJzaW9uICovCisrc3RhdGljIHZvaWQKKytkZWZhdWx0c190 ZXN0X2NvbnN0cnVjdF90b29faGlnaF9tZHZlcnNpb24gKHZvaWQpCisreworKyAgaWYgKGdfdGVz dF9zdWJwcm9jZXNzICgpKQorKyAgICB7CisrICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZERlZmF1 bHRzKSBkZWZhdWx0cyA9IE5VTEw7CisrICAgICAgZGVmYXVsdHMgPSBtb2R1bGVtZF9kZWZhdWx0 c19uZXcgKE1EX0RFRkFVTFRTX1ZFUlNJT05fTEFURVNUICsgMSwgImZvbyIpOworKyAgICAgIHJl dHVybjsKKysgICAgfQorKyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNU X1NVQlBST0NFU1NfREVGQVVMVCk7CisrICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOwor K30KKysKKysKKysvKiBUZXN0IG5ldygpIHdpdGggYSBOVUxMIG1vZHVsZV9uYW1lICovCisrc3Rh dGljIHZvaWQKKytkZWZhdWx0c190ZXN0X25ld193aXRoX251bGxfbW9kdWxlX25hbWUgKHZvaWQp CisreworKyAgaWYgKGdfdGVzdF9zdWJwcm9jZXNzICgpKQorKyAgICB7CisrICAgICAgZ19hdXRv cHRyIChNb2R1bGVtZERlZmF1bHRzKSBkZWZhdWx0cyA9IE5VTEw7CisrICAgICAgZGVmYXVsdHMg PSBtb2R1bGVtZF9kZWZhdWx0c19uZXcgKE1EX0RFRkFVTFRTX1ZFUlNJT05fT05FLCBOVUxMKTsK KysgICAgICByZXR1cm47CisrICAgIH0KKysgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEws IDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOworKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2Zh aWxlZCAoKTsKKyB9CisgCisgCitAQCAtMjAzLDcgKzIyMywxNCBAQCBtYWluIChpbnQgYXJnYywg Y2hhciAqYXJndltdKQorICAgZ190ZXN0X2J1Z19iYXNlICgiaHR0cHM6Ly9idWd6aWxsYS5yZWRo YXQuY29tL3Nob3dfYnVnLmNnaT9pZD0iKTsKKyAKKyAgIC8vIERlZmluZSB0aGUgdGVzdHMuCist ICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvZGVmYXVsdHMvY29uc3RydWN0IiwgZGVm YXVsdHNfdGVzdF9jb25zdHJ1Y3QpOworKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3Yy L2RlZmF1bHRzL2NvbnN0cnVjdC9yZWd1bGFyIiwKKysgICAgICAgICAgICAgICAgICAgZGVmYXVs dHNfdGVzdF9jb25zdHJ1Y3RfcmVndWxhcik7CisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxl bWQvdjIvZGVmYXVsdHMvY29uc3RydWN0L3plcm9fbWR2ZXJzaW9uIiwKKysgICAgICAgICAgICAg ICAgICAgZGVmYXVsdHNfdGVzdF9jb25zdHJ1Y3RfemVyb19tZHZlcnNpb24pOworKyAgZ190ZXN0 X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2RlZmF1bHRzL2NvbnN0cnVjdC90b29faGlnaF9tZHZl cnNpb24iLAorKyAgICAgICAgICAgICAgICAgICBkZWZhdWx0c190ZXN0X2NvbnN0cnVjdF90b29f aGlnaF9tZHZlcnNpb24pOworKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL2RlZmF1 bHRzL25ldy93aXRoX251bGxfbW9kdWxlX25hbWUiLAorKyAgICAgICAgICAgICAgICAgICBkZWZh dWx0c190ZXN0X25ld193aXRoX251bGxfbW9kdWxlX25hbWUpOworIAorICAgZ190ZXN0X2FkZF9m dW5jICgiL21vZHVsZW1kL3YyL2RlZmF1bHRzL2NvcHkiLCBkZWZhdWx0c190ZXN0X2NvcHkpOwor IAorZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtZGVwZW5kZW5jaWVz LmMgYi9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLWRlcGVuZGVuY2llcy5jCitpbmRleCBi YWUwZjQ2Li5kMTI2ZGJhIDEwMDY0NAorLS0tIGEvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVt ZC1kZXBlbmRlbmNpZXMuYworKysrIGIvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1kZXBl bmRlbmNpZXMuYworQEAgLTE0LDcgKzE0LDYgQEAKKyAjaW5jbHVkZSA8Z2xpYi5oPgorICNpbmNs dWRlIDxnbGliL2dzdGRpby5oPgorICNpbmNsdWRlIDxsb2NhbGUuaD4KKy0jaW5jbHVkZSA8c2ln bmFsLmg+CisgCisgI2luY2x1ZGUgIm1vZHVsZW1kLWRlcGVuZGVuY2llcy5oIgorICNpbmNsdWRl ICJwcml2YXRlL2dsaWItZXh0ZW5zaW9ucy5oIgorQEAgLTI3LDE0ICsyNiw2IEBAIHR5cGVkZWYg c3RydWN0IF9EZXBlbmRlbmNpZXNGaXh0dXJlCisgeworIH0gRGVwZW5kZW5jaWVzRml4dHVyZTsK KyAKKy1nYm9vbGVhbiBzaWduYWxlZCA9IEZBTFNFOworLQorLXN0YXRpYyB2b2lkCistc2lndHJh cF9oYW5kbGVyIChpbnQgVU5VU0VEIChzaWdfbnVtKSkKKy17CistICBzaWduYWxlZCA9IFRSVUU7 CistfQorLQorIHN0YXRpYyB2b2lkCisgZGVwZW5kZW5jaWVzX3Rlc3RfY29uc3RydWN0ICh2b2lk KQorIHsKK0BAIC02MCw3ICs1MSw3IEBAIGRlcGVuZGVuY2llc190ZXN0X2NvbnN0cnVjdCAodm9p ZCkKKyAKKyAKKyBzdGF0aWMgdm9pZAorLWRlcGVuZGVuY2llc190ZXN0X2RlcGVuZGVuY2llcyAo dm9pZCkKKytkZXBlbmRlbmNpZXNfdGVzdF9kZXBlbmRlbmNpZXNfcmVndWxhciAodm9pZCkKKyB7 CisgICBnX2F1dG9wdHIgKE1vZHVsZW1kRGVwZW5kZW5jaWVzKSBkID0gTlVMTDsKKyAgIGdfYXV0 byAoR1N0cnYpIGxpc3QgPSBOVUxMOworQEAgLTczLDEwICs2NCw2IEBAIGRlcGVuZGVuY2llc190 ZXN0X2RlcGVuZGVuY2llcyAodm9pZCkKKyAgIGdfYXNzZXJ0X25vbm51bGwgKGxpc3QpOworICAg Z19hc3NlcnRfY21waW50IChnX3N0cnZfbGVuZ3RoIChsaXN0KSwgPT0sIDApOworICAgZ19jbGVh cl9wb2ludGVyICgmbGlzdCwgZ19zdHJmcmVldik7CistICBzaWduYWwgKFNJR1RSQVAsIHNpZ3Ry YXBfaGFuZGxlcik7CistICBsaXN0ID0gbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2dldF9idWlsZHRp bWVfc3RyZWFtc19hc19zdHJ2IChkLCAiYnVpbGRtb2QxIik7CistICBnX2Fzc2VydF9udWxsIChs aXN0KTsKKy0gIGdfY2xlYXJfcG9pbnRlciAoJmxpc3QsIGdfc3RyZnJlZXYpOworIAorICAgLyog QWRkIHNvbWUgZGVwcyAqLworICAgbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2FkZF9idWlsZHRpbWVf c3RyZWFtIChkLCAiYnVpbGRtb2QxIiwgInN0cmVhbTEiKTsKK0BAIC0xMDIsMTAgKzg5LDYgQEAg ZGVwZW5kZW5jaWVzX3Rlc3RfZGVwZW5kZW5jaWVzICh2b2lkKQorICAgZ19hc3NlcnRfbm9ubnVs bCAobGlzdCk7CisgICBnX2Fzc2VydF9jbXBpbnQgKGdfc3Rydl9sZW5ndGggKGxpc3QpLCA9PSwg MCk7CisgICBnX2NsZWFyX3BvaW50ZXIgKCZsaXN0LCBnX3N0cmZyZWV2KTsKKy0gIHNpZ25hbCAo U0lHVFJBUCwgc2lndHJhcF9oYW5kbGVyKTsKKy0gIGxpc3QgPSBtb2R1bGVtZF9kZXBlbmRlbmNp ZXNfZ2V0X3J1bnRpbWVfc3RyZWFtc19hc19zdHJ2IChkLCAiYnVpbGRtb2QxIik7CistICBnX2Fz c2VydF9udWxsIChsaXN0KTsKKy0gIGdfY2xlYXJfcG9pbnRlciAoJmxpc3QsIGdfc3RyZnJlZXYp OworIAorICAgbGlzdCA9IG1vZHVsZW1kX2RlcGVuZGVuY2llc19nZXRfcnVudGltZV9tb2R1bGVz X2FzX3N0cnYgKGQpOworICAgZ19hc3NlcnRfbm9ubnVsbCAobGlzdCk7CitAQCAtMTE3LDEwICsx MDAsNiBAQCBkZXBlbmRlbmNpZXNfdGVzdF9kZXBlbmRlbmNpZXMgKHZvaWQpCisgICBnX2Fzc2Vy dF9ub25udWxsIChsaXN0KTsKKyAgIGdfYXNzZXJ0X2NtcGludCAoZ19zdHJ2X2xlbmd0aCAobGlz dCksID09LCAwKTsKKyAgIGdfY2xlYXJfcG9pbnRlciAoJmxpc3QsIGdfc3RyZnJlZXYpOworLSAg c2lnbmFsIChTSUdUUkFQLCBzaWd0cmFwX2hhbmRsZXIpOworLSAgbGlzdCA9IG1vZHVsZW1kX2Rl cGVuZGVuY2llc19nZXRfcnVudGltZV9zdHJlYW1zX2FzX3N0cnYgKGQsICJidWlsZG1vZDEiKTsK Ky0gIGdfYXNzZXJ0X251bGwgKGxpc3QpOworLSAgZ19jbGVhcl9wb2ludGVyICgmbGlzdCwgZ19z dHJmcmVldik7CisgICBsaXN0ID0gbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2dldF9ydW50aW1lX3N0 cmVhbXNfYXNfc3RydiAoZCwgInJ1bm1vZDEiKTsKKyAgIGdfYXNzZXJ0X25vbm51bGwgKGxpc3Qp OworICAgZ19hc3NlcnRfY21waW50IChnX3N0cnZfbGVuZ3RoIChsaXN0KSwgPT0sIDIpOworQEAg LTEzMCw2ICsxMDksNTcgQEAgZGVwZW5kZW5jaWVzX3Rlc3RfZGVwZW5kZW5jaWVzICh2b2lkKQor IH0KKyAKKyAKKytzdGF0aWMgdm9pZAorK2RlcGVuZGVuY2llc190ZXN0X2RlcGVuZGVuY2llc19u b25leGlzdGVudF9idWlsZHRpbWVfc3RyZWFtICh2b2lkKQorK3sKKysgIGlmIChnX3Rlc3Rfc3Vi cHJvY2VzcyAoKSkKKysgICAgeworKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWREZXBlbmRlbmNp ZXMpIGQgPSBOVUxMOworKyAgICAgIGdfYXV0byAoR1N0cnYpIGxpc3QgPSBOVUxMOworKworKyAg ICAgIGQgPSBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfbmV3ICgpOworKyAgICAgIGdfYXNzZXJ0X25v bm51bGwgKGQpOworKyAgICAgIGdfYXNzZXJ0X3RydWUgKE1PRFVMRU1EX0lTX0RFUEVOREVOQ0lF UyAoZCkpOworKworKyAgICAgIGxpc3QgPQorKyAgICAgICAgbW9kdWxlbWRfZGVwZW5kZW5jaWVz X2dldF9idWlsZHRpbWVfc3RyZWFtc19hc19zdHJ2IChkLCAiYnVpbGRtb2QxIik7CisrICAgICAg cmV0dXJuOworKyAgICB9CisrICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBHX1RF U1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKKysgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7 CisrfQorKworKworK3N0YXRpYyB2b2lkCisrZGVwZW5kZW5jaWVzX3Rlc3RfZGVwZW5kZW5jaWVz X25vbmV4aXN0ZW50X3J1bnRpbWVfc3RyZWFtICh2b2lkKQorK3sKKysgIGlmIChnX3Rlc3Rfc3Vi cHJvY2VzcyAoKSkKKysgICAgeworKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWREZXBlbmRlbmNp ZXMpIGQgPSBOVUxMOworKyAgICAgIGdfYXV0byAoR1N0cnYpIGxpc3QgPSBOVUxMOworKworKyAg ICAgIGQgPSBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfbmV3ICgpOworKyAgICAgIGdfYXNzZXJ0X25v bm51bGwgKGQpOworKyAgICAgIGdfYXNzZXJ0X3RydWUgKE1PRFVMRU1EX0lTX0RFUEVOREVOQ0lF UyAoZCkpOworKworKyAgICAgIC8qIEFkZCBzb21lIGRlcHMgKi8KKysgICAgICBtb2R1bGVtZF9k ZXBlbmRlbmNpZXNfYWRkX2J1aWxkdGltZV9zdHJlYW0gKGQsICJidWlsZG1vZDEiLCAic3RyZWFt MSIpOworKyAgICAgIG1vZHVsZW1kX2RlcGVuZGVuY2llc19hZGRfcnVudGltZV9zdHJlYW0gKGQs ICJydW5tb2QxIiwgInN0cmVhbTIiKTsKKysgICAgICBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfYWRk X3J1bnRpbWVfc3RyZWFtIChkLCAicnVubW9kMSIsICJzdHJlYW0xIik7CisrICAgICAgbW9kdWxl bWRfZGVwZW5kZW5jaWVzX3NldF9lbXB0eV9idWlsZHRpbWVfZGVwZW5kZW5jaWVzX2Zvcl9tb2R1 bGUgKAorKyAgICAgICAgZCwgImRlZmJ1aWxkIik7CisrICAgICAgbW9kdWxlbWRfZGVwZW5kZW5j aWVzX3NldF9lbXB0eV9ydW50aW1lX2RlcGVuZGVuY2llc19mb3JfbW9kdWxlICgKKysgICAgICAg IGQsICJkZWZydW4iKTsKKysKKysgICAgICBsaXN0ID0KKysgICAgICAgIG1vZHVsZW1kX2RlcGVu ZGVuY2llc19nZXRfcnVudGltZV9zdHJlYW1zX2FzX3N0cnYgKGQsICJidWlsZG1vZDEiKTsKKysg ICAgICByZXR1cm47CisrICAgIH0KKysgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAs IEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOworKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxl ZCAoKTsKKyt9CisrCisrCisgc3RhdGljIHZvaWQKKyBkZXBlbmRlbmNpZXNfdGVzdF9lcXVhbHMg KHZvaWQpCisgeworQEAgLTI5OCw3ICszMjgsNyBAQCBkZXBlbmRlbmNpZXNfdGVzdF9lcXVhbHMg KHZvaWQpCisgCisgCisgc3RhdGljIHZvaWQKKy1kZXBlbmRlbmNpZXNfdGVzdF9jb3B5ICh2b2lk KQorK2RlcGVuZGVuY2llc190ZXN0X2NvcHlfcmVndWxhciAodm9pZCkKKyB7CisgICBnX2F1dG9w dHIgKE1vZHVsZW1kRGVwZW5kZW5jaWVzKSBkID0gTlVMTDsKKyAgIGdfYXV0b3B0ciAoTW9kdWxl bWREZXBlbmRlbmNpZXMpIGRfY29weSA9IE5VTEw7CitAQCAtMzExLDEwICszNDEsNiBAQCBkZXBl bmRlbmNpZXNfdGVzdF9jb3B5ICh2b2lkKQorICAgZ19hc3NlcnRfbm9ubnVsbCAobGlzdCk7Cisg ICBnX2Fzc2VydF9jbXBpbnQgKGdfc3Rydl9sZW5ndGggKGxpc3QpLCA9PSwgMCk7CisgICBnX2Ns ZWFyX3BvaW50ZXIgKCZsaXN0LCBnX3N0cmZyZWV2KTsKKy0gIHNpZ25hbCAoU0lHVFJBUCwgc2ln dHJhcF9oYW5kbGVyKTsKKy0gIGxpc3QgPSBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfZ2V0X2J1aWxk dGltZV9zdHJlYW1zX2FzX3N0cnYgKGQsICJtb2R1bGUxIik7CistICBnX2Fzc2VydF9udWxsIChs aXN0KTsKKy0gIGdfY2xlYXJfcG9pbnRlciAoJmxpc3QsIGdfc3RyZnJlZXYpOworIAorICAgZF9j b3B5ID0gbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2NvcHkgKGQpOworICAgZ19hc3NlcnRfbm9ubnVs bCAoZF9jb3B5KTsKK0BAIC0zMjMsMTAgKzM0OSw2IEBAIGRlcGVuZGVuY2llc190ZXN0X2NvcHkg KHZvaWQpCisgICBnX2Fzc2VydF9ub25udWxsIChsaXN0KTsKKyAgIGdfYXNzZXJ0X2NtcGludCAo Z19zdHJ2X2xlbmd0aCAobGlzdCksID09LCAwKTsKKyAgIGdfY2xlYXJfcG9pbnRlciAoJmxpc3Qs IGdfc3RyZnJlZXYpOworLSAgc2lnbmFsIChTSUdUUkFQLCBzaWd0cmFwX2hhbmRsZXIpOworLSAg bGlzdCA9IG1vZHVsZW1kX2RlcGVuZGVuY2llc19nZXRfYnVpbGR0aW1lX3N0cmVhbXNfYXNfc3Ry diAoZCwgIm1vZHVsZTEiKTsKKy0gIGdfYXNzZXJ0X251bGwgKGxpc3QpOworLSAgZ19jbGVhcl9w b2ludGVyICgmbGlzdCwgZ19zdHJmcmVldik7CisgICBnX2NsZWFyX29iamVjdCAoJmRfY29weSk7 CisgCisgICBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfYWRkX2J1aWxkdGltZV9zdHJlYW0gKGQsICJi dWlsZG1vZDEiLCAic3RyZWFtMiIpOworQEAgLTM0NywxMSArMzY5LDcgQEAgZGVwZW5kZW5jaWVz X3Rlc3RfY29weSAodm9pZCkKKyAgIGdfYXNzZXJ0X2NtcHN0ciAobGlzdFswXSwgPT0sICJidWls ZGRlZiIpOworICAgZ19hc3NlcnRfY21wc3RyIChsaXN0WzFdLCA9PSwgImJ1aWxkbW9kMSIpOwor ICAgZ19jbGVhcl9wb2ludGVyICgmbGlzdCwgZ19zdHJmcmVldik7CistICBzaWduYWwgKFNJR1RS QVAsIHNpZ3RyYXBfaGFuZGxlcik7CistICBsaXN0ID0gbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2dl dF9idWlsZHRpbWVfc3RyZWFtc19hc19zdHJ2IChkX2NvcHksCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm9zdWNobW9kdWxl Iik7CistICBnX2Fzc2VydF9udWxsIChsaXN0KTsKKy0gIGdfY2xlYXJfcG9pbnRlciAoJmxpc3Qs IGdfc3RyZnJlZXYpOworKworICAgbGlzdCA9CisgICAgIG1vZHVsZW1kX2RlcGVuZGVuY2llc19n ZXRfYnVpbGR0aW1lX3N0cmVhbXNfYXNfc3RydiAoZF9jb3B5LCAiYnVpbGRtb2QxIik7CisgICBn X2Fzc2VydF9ub25udWxsIChsaXN0KTsKK0BAIC0zNzEsMTEgKzM4OSw2IEBAIGRlcGVuZGVuY2ll c190ZXN0X2NvcHkgKHZvaWQpCisgICBnX2Fzc2VydF9jbXBzdHIgKGxpc3RbMF0sID09LCAicnVu ZGVmIik7CisgICBnX2Fzc2VydF9jbXBzdHIgKGxpc3RbMV0sID09LCAicnVubW9kMSIpOworICAg Z19jbGVhcl9wb2ludGVyICgmbGlzdCwgZ19zdHJmcmVldik7CistICBzaWduYWwgKFNJR1RSQVAs IHNpZ3RyYXBfaGFuZGxlcik7CistICBsaXN0ID0KKy0gICAgbW9kdWxlbWRfZGVwZW5kZW5jaWVz X2dldF9ydW50aW1lX3N0cmVhbXNfYXNfc3RydiAoZF9jb3B5LCAibm9zdWNobW9kdWxlIik7Cist ICBnX2Fzc2VydF9udWxsIChsaXN0KTsKKy0gIGdfY2xlYXJfcG9pbnRlciAoJmxpc3QsIGdfc3Ry ZnJlZXYpOworICAgbGlzdCA9IG1vZHVsZW1kX2RlcGVuZGVuY2llc19nZXRfcnVudGltZV9zdHJl YW1zX2FzX3N0cnYgKGRfY29weSwgInJ1bm1vZDEiKTsKKyAgIGdfYXNzZXJ0X25vbm51bGwgKGxp c3QpOworICAgZ19hc3NlcnRfY21waW50IChnX3N0cnZfbGVuZ3RoIChsaXN0KSwgPT0sIDIpOwor QEAgLTM4OCw2ICs0MDEsMTAxIEBAIGRlcGVuZGVuY2llc190ZXN0X2NvcHkgKHZvaWQpCisgICBn X2NsZWFyX3BvaW50ZXIgKCZsaXN0LCBnX3N0cmZyZWV2KTsKKyB9CisgCisrCisrc3RhdGljIHZv aWQKKytkZXBlbmRlbmNpZXNfdGVzdF9jb3B5X2VtcHR5X25vbmV4c2l0ZW50X2J1aWxkdGltZV9z dHJlYW0gKHZvaWQpCisreworKyAgaWYgKGdfdGVzdF9zdWJwcm9jZXNzICgpKQorKyAgICB7Cisr ICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZERlcGVuZGVuY2llcykgZCA9IE5VTEw7CisrICAgICAg Z19hdXRvcHRyIChNb2R1bGVtZERlcGVuZGVuY2llcykgZF9jb3B5ID0gTlVMTDsKKysgICAgICBn X2F1dG8gKEdTdHJ2KSBsaXN0ID0gTlVMTDsKKysKKysgICAgICBkID0gbW9kdWxlbWRfZGVwZW5k ZW5jaWVzX25ldyAoKTsKKysgICAgICBnX2Fzc2VydF9ub25udWxsIChkKTsKKysgICAgICBnX2Fz c2VydF90cnVlIChNT0RVTEVNRF9JU19ERVBFTkRFTkNJRVMgKGQpKTsKKysKKysgICAgICBkX2Nv cHkgPSBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfY29weSAoZCk7CisrICAgICAgZ19hc3NlcnRfbm9u bnVsbCAoZF9jb3B5KTsKKysgICAgICBnX2Fzc2VydF90cnVlIChNT0RVTEVNRF9JU19ERVBFTkRF TkNJRVMgKGRfY29weSkpOworKworKyAgICAgIGxpc3QgPQorKyAgICAgICAgbW9kdWxlbWRfZGVw ZW5kZW5jaWVzX2dldF9idWlsZHRpbWVfc3RyZWFtc19hc19zdHJ2IChkLCAibW9kdWxlMSIpOwor KyAgICAgIHJldHVybjsKKysgICAgfQorKyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwg MCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7CisrICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFp bGVkICgpOworK30KKysKKysKKytzdGF0aWMgdm9pZAorK2RlcGVuZGVuY2llc190ZXN0X2NvcHlf ZnVsbF9ub25leHNpdGVudF9idWlsZHRpbWVfc3RyZWFtICh2b2lkKQorK3sKKysgIGlmIChnX3Rl c3Rfc3VicHJvY2VzcyAoKSkKKysgICAgeworKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWREZXBl bmRlbmNpZXMpIGQgPSBOVUxMOworKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWREZXBlbmRlbmNp ZXMpIGRfY29weSA9IE5VTEw7CisrICAgICAgZ19hdXRvIChHU3RydikgbGlzdCA9IE5VTEw7Cisr CisrICAgICAgZCA9IG1vZHVsZW1kX2RlcGVuZGVuY2llc19uZXcgKCk7CisrICAgICAgZ19hc3Nl cnRfbm9ubnVsbCAoZCk7CisrICAgICAgZ19hc3NlcnRfdHJ1ZSAoTU9EVUxFTURfSVNfREVQRU5E RU5DSUVTIChkKSk7CisrCisrICAgICAgbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2FkZF9idWlsZHRp bWVfc3RyZWFtIChkLCAiYnVpbGRtb2QxIiwgInN0cmVhbTIiKTsKKysgICAgICBtb2R1bGVtZF9k ZXBlbmRlbmNpZXNfYWRkX2J1aWxkdGltZV9zdHJlYW0gKGQsICJidWlsZG1vZDEiLCAic3RyZWFt MSIpOworKyAgICAgIG1vZHVsZW1kX2RlcGVuZGVuY2llc19zZXRfZW1wdHlfYnVpbGR0aW1lX2Rl cGVuZGVuY2llc19mb3JfbW9kdWxlICgKKysgICAgICAgIGQsICJidWlsZGRlZiIpOworKyAgICAg IG1vZHVsZW1kX2RlcGVuZGVuY2llc19hZGRfcnVudGltZV9zdHJlYW0gKGQsICJydW5tb2QxIiwg InN0cmVhbTMiKTsKKysgICAgICBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfYWRkX3J1bnRpbWVfc3Ry ZWFtIChkLCAicnVubW9kMSIsICJzdHJlYW00Iik7CisrICAgICAgbW9kdWxlbWRfZGVwZW5kZW5j aWVzX3NldF9lbXB0eV9ydW50aW1lX2RlcGVuZGVuY2llc19mb3JfbW9kdWxlICgKKysgICAgICAg IGQsICJydW5kZWYiKTsKKysKKysgICAgICBkX2NvcHkgPSBtb2R1bGVtZF9kZXBlbmRlbmNpZXNf Y29weSAoZCk7CisrICAgICAgZ19hc3NlcnRfbm9ubnVsbCAoZF9jb3B5KTsKKysgICAgICBnX2Fz c2VydF90cnVlIChNT0RVTEVNRF9JU19ERVBFTkRFTkNJRVMgKGRfY29weSkpOworKyAgICAgIGxp c3QgPSBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfZ2V0X2J1aWxkdGltZV9zdHJlYW1zX2FzX3N0cnYg KAorKyAgICAgICAgZF9jb3B5LCAibm9zdWNobW9kdWxlIik7CisrICAgICAgcmV0dXJuOworKyAg ICB9CisrICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VT U19ERUZBVUxUKTsKKysgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7CisrfQorKworKwor K3N0YXRpYyB2b2lkCisrZGVwZW5kZW5jaWVzX3Rlc3RfY29weV9mdWxsX25vbmV4c2l0ZW50X3J1 bnRpbWVfc3RyZWFtICh2b2lkKQorK3sKKysgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKKysg ICAgeworKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWREZXBlbmRlbmNpZXMpIGQgPSBOVUxMOwor KyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWREZXBlbmRlbmNpZXMpIGRfY29weSA9IE5VTEw7Cisr ICAgICAgZ19hdXRvIChHU3RydikgbGlzdCA9IE5VTEw7CisrCisrICAgICAgZCA9IG1vZHVsZW1k X2RlcGVuZGVuY2llc19uZXcgKCk7CisrICAgICAgZ19hc3NlcnRfbm9ubnVsbCAoZCk7CisrICAg ICAgZ19hc3NlcnRfdHJ1ZSAoTU9EVUxFTURfSVNfREVQRU5ERU5DSUVTIChkKSk7CisrCisrICAg ICAgbW9kdWxlbWRfZGVwZW5kZW5jaWVzX2FkZF9idWlsZHRpbWVfc3RyZWFtIChkLCAiYnVpbGRt b2QxIiwgInN0cmVhbTIiKTsKKysgICAgICBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfYWRkX2J1aWxk dGltZV9zdHJlYW0gKGQsICJidWlsZG1vZDEiLCAic3RyZWFtMSIpOworKyAgICAgIG1vZHVsZW1k X2RlcGVuZGVuY2llc19zZXRfZW1wdHlfYnVpbGR0aW1lX2RlcGVuZGVuY2llc19mb3JfbW9kdWxl ICgKKysgICAgICAgIGQsICJidWlsZGRlZiIpOworKyAgICAgIG1vZHVsZW1kX2RlcGVuZGVuY2ll c19hZGRfcnVudGltZV9zdHJlYW0gKGQsICJydW5tb2QxIiwgInN0cmVhbTMiKTsKKysgICAgICBt b2R1bGVtZF9kZXBlbmRlbmNpZXNfYWRkX3J1bnRpbWVfc3RyZWFtIChkLCAicnVubW9kMSIsICJz dHJlYW00Iik7CisrICAgICAgbW9kdWxlbWRfZGVwZW5kZW5jaWVzX3NldF9lbXB0eV9ydW50aW1l X2RlcGVuZGVuY2llc19mb3JfbW9kdWxlICgKKysgICAgICAgIGQsICJydW5kZWYiKTsKKysKKysg ICAgICBkX2NvcHkgPSBtb2R1bGVtZF9kZXBlbmRlbmNpZXNfY29weSAoZCk7CisrICAgICAgZ19h c3NlcnRfbm9ubnVsbCAoZF9jb3B5KTsKKysgICAgICBnX2Fzc2VydF90cnVlIChNT0RVTEVNRF9J U19ERVBFTkRFTkNJRVMgKGRfY29weSkpOworKyAgICAgIGxpc3QgPSBtb2R1bGVtZF9kZXBlbmRl bmNpZXNfZ2V0X3J1bnRpbWVfc3RyZWFtc19hc19zdHJ2ICgKKysgICAgICAgIGRfY29weSwgIm5v c3VjaG1vZHVsZSIpOworKyAgICAgIHJldHVybjsKKysgICAgfQorKyAgZ190ZXN0X3RyYXBfc3Vi cHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7CisrICBnX3Rlc3Rf dHJhcF9hc3NlcnRfZmFpbGVkICgpOworK30KKysKKysKKyBzdGF0aWMgdm9pZAorIGRlcGVuZGVu Y2llc190ZXN0X3BhcnNlX3lhbWwgKHZvaWQpCisgeworQEAgLTYzMSwxMyArNzM5LDI5IEBAIG1h aW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCisgICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxl bWQvdjIvZGVwZW5kZW5jaWVzL2NvbnN0cnVjdCIsCisgICAgICAgICAgICAgICAgICAgIGRlcGVu ZGVuY2llc190ZXN0X2NvbnN0cnVjdCk7CisgCistICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxl bWQvdjIvZGVwZW5kZW5jaWVzL2RlcGVuZGVuY2llcyIsCistICAgICAgICAgICAgICAgICAgIGRl cGVuZGVuY2llc190ZXN0X2RlcGVuZGVuY2llcyk7CisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9k dWxlbWQvdjIvZGVwZW5kZW5jaWVzL2RlcGVuZGVuY2llcy9yZWd1bGFyIiwKKysgICAgICAgICAg ICAgICAgICAgZGVwZW5kZW5jaWVzX3Rlc3RfZGVwZW5kZW5jaWVzX3JlZ3VsYXIpOworKyAgZ190 ZXN0X2FkZF9mdW5jICgKKysgICAgIi9tb2R1bGVtZC92Mi9kZXBlbmRlbmNpZXMvZGVwZW5kZW5j aWVzL25vbmV4aXN0ZW50X2J1aWxkdGltZV9zdHJlYW0iLAorKyAgICBkZXBlbmRlbmNpZXNfdGVz dF9kZXBlbmRlbmNpZXNfbm9uZXhpc3RlbnRfYnVpbGR0aW1lX3N0cmVhbSk7CisrICBnX3Rlc3Rf YWRkX2Z1bmMgKAorKyAgICAiL21vZHVsZW1kL3YyL2RlcGVuZGVuY2llcy9kZXBlbmRlbmNpZXMv bm9uZXhpc3RlbnRfcnVudGltZV9zdHJlYW0iLAorKyAgICBkZXBlbmRlbmNpZXNfdGVzdF9kZXBl bmRlbmNpZXNfbm9uZXhpc3RlbnRfcnVudGltZV9zdHJlYW0pOworIAorICAgZ190ZXN0X2FkZF9m dW5jICgiL21vZHVsZW1kL3YyL2RlcGVuZGVuY2llcy9lcXVhbHMiLAorICAgICAgICAgICAgICAg ICAgICBkZXBlbmRlbmNpZXNfdGVzdF9lcXVhbHMpOworIAorLSAgZ190ZXN0X2FkZF9mdW5jICgi L21vZHVsZW1kL3YyL2RlcGVuZGVuY2llcy9jb3B5IiwgZGVwZW5kZW5jaWVzX3Rlc3RfY29weSk7 CisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvZGVwZW5kZW5jaWVzL2NvcHkvcmVn dWxhciIsCisrICAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llc190ZXN0X2NvcHlfcmVndWxh cik7CisrICBnX3Rlc3RfYWRkX2Z1bmMgKAorKyAgICAiL21vZHVsZW1kL3YyL2RlcGVuZGVuY2ll cy9jb3B5L2VtcHR5X25vbmV4c2l0ZW50X2J1aWxkdGltZV9zdHJlYW0iLAorKyAgICBkZXBlbmRl bmNpZXNfdGVzdF9jb3B5X2VtcHR5X25vbmV4c2l0ZW50X2J1aWxkdGltZV9zdHJlYW0pOworKyAg Z190ZXN0X2FkZF9mdW5jICgKKysgICAgIi9tb2R1bGVtZC92Mi9kZXBlbmRlbmNpZXMvY29weS9m dWxsX25vbmV4c2l0ZW50X2J1aWxkdGltZV9zdHJlYW0iLAorKyAgICBkZXBlbmRlbmNpZXNfdGVz dF9jb3B5X2Z1bGxfbm9uZXhzaXRlbnRfYnVpbGR0aW1lX3N0cmVhbSk7CisrICBnX3Rlc3RfYWRk X2Z1bmMgKAorKyAgICAiL21vZHVsZW1kL3YyL2RlcGVuZGVuY2llcy9jb3B5L2Z1bGxfbm9uZXhz aXRlbnRfcnVuZHRpbWVfc3RyZWFtIiwKKysgICAgZGVwZW5kZW5jaWVzX3Rlc3RfY29weV9mdWxs X25vbmV4c2l0ZW50X3J1bnRpbWVfc3RyZWFtKTsKKyAKKyAgIGdfdGVzdF9hZGRfZnVuYyAoIi9t b2R1bGVtZC92Mi9kZXBlbmRlbmNpZXMveWFtbC9wYXJzZSIsCisgICAgICAgICAgICAgICAgICAg IGRlcGVuZGVuY2llc190ZXN0X3BhcnNlX3lhbWwpOworZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rl c3RzL3Rlc3QtbW9kdWxlbWQtbW9kdWxlLmMgYi9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1k LW1vZHVsZS5jCitpbmRleCBjMDgzYzk2Li43NzU5YjM3IDEwMDY0NAorLS0tIGEvbW9kdWxlbWQv dGVzdHMvdGVzdC1tb2R1bGVtZC1tb2R1bGUuYworKysrIGIvbW9kdWxlbWQvdGVzdHMvdGVzdC1t b2R1bGVtZC1tb2R1bGUuYworQEAgLTE0LDcgKzE0LDYgQEAKKyAjaW5jbHVkZSA8Z2xpYi5oPgor ICNpbmNsdWRlIDxnbGliL2dzdGRpby5oPgorICNpbmNsdWRlIDxsb2NhbGUuaD4KKy0jaW5jbHVk ZSA8c2lnbmFsLmg+CisgCisgI2luY2x1ZGUgIm1vZHVsZW1kLWRlZmF1bHRzLmgiCisgI2luY2x1 ZGUgIm1vZHVsZW1kLW1vZHVsZS1pbmRleC1tZXJnZXIuaCIKK0BAIC0zOCw3ICszNyw3IEBAIHR5 cGVkZWYgc3RydWN0IF9Nb2R1bGVGaXh0dXJlCisgCisgCisgc3RhdGljIHZvaWQKKy1tb2R1bGVf dGVzdF9jb25zdHJ1Y3QgKHZvaWQpCisrbW9kdWxlX3Rlc3RfY29uc3RydWN0X3JlZ3VsYXIgKHZv aWQpCisgeworICAgZ19hdXRvcHRyIChNb2R1bGVtZE1vZHVsZSkgbSA9IE5VTEw7CisgICBnX2F1 dG9wdHIgKEdQdHJBcnJheSkgbGlzdCA9IE5VTEw7CitAQCAtNjYsMjcgKzY1LDUxIEBAIG1vZHVs ZV90ZXN0X2NvbnN0cnVjdCAodm9pZCkKKyAgIGdfYXNzZXJ0X3RydWUgKE1PRFVMRU1EX0lTX01P RFVMRSAobSkpOworICAgZ19hc3NlcnRfY21wc3RyIChtb2R1bGVtZF9tb2R1bGVfZ2V0X21vZHVs ZV9uYW1lIChtKSwgPT0sICJ0ZXN0bW9kdWxlIik7CisgICBnX2NsZWFyX29iamVjdCAoJm0pOwor K30KKyAKKy0gIC8qIFRlc3QgdGhhdCB3ZSBhYm9ydCB3aXRoIGEgTlVMTCBuYW1lIHRvIG5ldygp ICovCistICBtb2R1bGVtZF90ZXN0X3NpZ25hbCA9IDA7CistICBzaWduYWwgKFNJR1RSQVAsIG1v ZHVsZW1kX3Rlc3Rfc2lnbmFsX2hhbmRsZXIpOworLSAgbSA9IG1vZHVsZW1kX21vZHVsZV9uZXcg KE5VTEwpOworLSAgZ19hc3NlcnRfY21waW50IChtb2R1bGVtZF90ZXN0X3NpZ25hbCwgPT0sIFNJ R1RSQVApOworLSAgZ19jbGVhcl9vYmplY3QgKCZtKTsKKyAKKy0gIC8qIFRlc3QgdGhhdCB3ZSBh Ym9ydCBpZiB3ZSBpbnN0YW50aWF0ZSB3aXRob3V0IGEgbmFtZSAqLworLSAgbW9kdWxlbWRfdGVz dF9zaWduYWwgPSAwOworLSAgc2lnbmFsIChTSUdUUkFQLCBtb2R1bGVtZF90ZXN0X3NpZ25hbF9o YW5kbGVyKTsKKy0gIG0gPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfTU9EVUxFLCBOVUxM KTsKKy0gIGdfYXNzZXJ0X2NtcGludCAobW9kdWxlbWRfdGVzdF9zaWduYWwsID09LCBTSUdUUkFQ KTsKKy0gIGdfY2xlYXJfb2JqZWN0ICgmbSk7CisrLyogVGVzdCB0aGF0IHdlIGFib3J0IHdpdGgg YSBOVUxMIG5hbWUgdG8gbmV3KCkgKi8KKytzdGF0aWMgdm9pZAorK21vZHVsZV90ZXN0X2NvbnN0 cnVjdF9uZXdfbnVsbF9uYW1lICh2b2lkKQorK3sKKysgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAo KSkKKysgICAgeworKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRNb2R1bGUpIG0gPSBOVUxMOwor KyAgICAgIG0gPSBtb2R1bGVtZF9tb2R1bGVfbmV3IChOVUxMKTsKKysgICAgICByZXR1cm47Cisr ICAgIH0KKysgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9D RVNTX0RFRkFVTFQpOworKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKKyt9CisgCist ICAvKiB0ZXN0IHRoYXQgd2UgYWJvcnQgaWYgd2UgaW5zdGFudGlhdGUgd2l0aCBhIE5VTEwgbmFt ZSAqLworLSAgbW9kdWxlbWRfdGVzdF9zaWduYWwgPSAwOworLSAgc2lnbmFsIChTSUdUUkFQLCBt b2R1bGVtZF90ZXN0X3NpZ25hbF9oYW5kbGVyKTsKKy0gIG0gPSBnX29iamVjdF9uZXcgKE1PRFVM RU1EX1RZUEVfTU9EVUxFLCAibW9kdWxlLW5hbWUiLCBOVUxMLCBOVUxMKTsKKy0gIGdfYXNzZXJ0 X2NtcGludCAobW9kdWxlbWRfdGVzdF9zaWduYWwsID09LCBTSUdUUkFQKTsKKy0gIGdfY2xlYXJf b2JqZWN0ICgmbSk7CisrCisrLyogVGVzdCB0aGF0IHdlIGFib3J0IGlmIHdlIGluc3RhbnRpYXRl IHdpdGhvdXQgYSBuYW1lICovCisrc3RhdGljIHZvaWQKKyttb2R1bGVfdGVzdF9jb25zdHJ1Y3Rf aW5pdF9ub19uYW1lICh2b2lkKQorK3sKKysgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKKysg ICAgeworKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRNb2R1bGUpIG0gPSBOVUxMOworKyAgICAg IG0gPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfTU9EVUxFLCBOVUxMKTsKKysgICAgICBy ZXR1cm47CisrICAgIH0KKysgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVT VF9TVUJQUk9DRVNTX0RFRkFVTFQpOworKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsK Kyt9CisrCisrCisrLyogdGVzdCB0aGF0IHdlIGFib3J0IGlmIHdlIGluc3RhbnRpYXRlIHdpdGgg YSBOVUxMIG5hbWUgKi8KKytzdGF0aWMgdm9pZAorK21vZHVsZV90ZXN0X2NvbnN0cnVjdF9pbml0 X251bGxfbmFtZSAodm9pZCkKKyt7CisrICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCisrICAg IHsKKysgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kTW9kdWxlKSBtID0gTlVMTDsKKysgICAgICBt ID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX01PRFVMRSwgIm1vZHVsZS1uYW1lIiwgTlVM TCwgTlVMTCk7CisrICAgICAgcmV0dXJuOworKyAgICB9CisrICBnX3Rlc3RfdHJhcF9zdWJwcm9j ZXNzIChOVUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKKysgIGdfdGVzdF90cmFw X2Fzc2VydF9mYWlsZWQgKCk7CisgfQorIAorIAorQEAgLTgwMSw3ICs4MjQsMTQgQEAgbWFpbiAo aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKKyAKKyAgIC8vIERlZmluZSB0aGUgdGVzdHMuCisgCist ICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvbW9kdWxlL2NvbnN0cnVjdCIsIG1vZHVs ZV90ZXN0X2NvbnN0cnVjdCk7CisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvbW9k dWxlL2NvbnN0cnVjdC9yZWd1bGFyIiwKKysgICAgICAgICAgICAgICAgICAgbW9kdWxlX3Rlc3Rf Y29uc3RydWN0X3JlZ3VsYXIpOworKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL21v ZHVsZS9jb25zdHJ1Y3QvbmV3X251bGxfbmFtZSIsCisrICAgICAgICAgICAgICAgICAgIG1vZHVs ZV90ZXN0X2NvbnN0cnVjdF9uZXdfbnVsbF9uYW1lKTsKKysgIGdfdGVzdF9hZGRfZnVuYyAoIi9t b2R1bGVtZC92Mi9tb2R1bGUvY29uc3RydWN0L2luaXRfbm9fbmFtZSIsCisrICAgICAgICAgICAg ICAgICAgIG1vZHVsZV90ZXN0X2NvbnN0cnVjdF9pbml0X25vX25hbWUpOworKyAgZ190ZXN0X2Fk ZF9mdW5jICgiL21vZHVsZW1kL3YyL21vZHVsZS9jb25zdHJ1Y3QvaW5pdF9udWxsX25hbWUiLAor KyAgICAgICAgICAgICAgICAgICBtb2R1bGVfdGVzdF9jb25zdHJ1Y3RfaW5pdF9udWxsX25hbWUp OworIAorICAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL21vZHVsZS9kZWZhdWx0cyIs IG1vZHVsZV90ZXN0X2RlZmF1bHRzKTsKKyAKK2RpZmYgLS1naXQgYS9tb2R1bGVtZC90ZXN0cy90 ZXN0LW1vZHVsZW1kLW9ic29sZXRlcy5jIGIvbW9kdWxlbWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1v YnNvbGV0ZXMuYworaW5kZXggZjNlOTBkMy4uZDRjZWQzYyAxMDA2NDQKKy0tLSBhL21vZHVsZW1k L3Rlc3RzL3Rlc3QtbW9kdWxlbWQtb2Jzb2xldGVzLmMKKysrKyBiL21vZHVsZW1kL3Rlc3RzL3Rl c3QtbW9kdWxlbWQtb2Jzb2xldGVzLmMKK0BAIC0xNCw3ICsxNCw2IEBACisgI2luY2x1ZGUgPGds aWIuaD4KKyAjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KKyAjaW5jbHVkZSA8bG9jYWxlLmg+Cist I2luY2x1ZGUgPHNpZ25hbC5oPgorIAorICNpbmNsdWRlICJtb2R1bGVtZC1zdWJkb2N1bWVudC1p bmZvLmgiCisgI2luY2x1ZGUgIm1vZHVsZW1kLW9ic29sZXRlcy5oIgorQEAgLTI2LDcgKzI1LDcg QEAKKyAjaW5jbHVkZSAicHJpdmF0ZS90ZXN0LXV0aWxzLmgiCisgCisgc3RhdGljIHZvaWQKKy1v YnNvbGV0ZXNfdGVzdF9jb25zdHJ1Y3QgKHZvaWQpCisrb2Jzb2xldGVzX3Rlc3RfY29uc3RydWN0 X3JlZ3VsYXIgKHZvaWQpCisgeworICAgZ19hdXRvcHRyIChNb2R1bGVtZE9ic29sZXRlcykgZSA9 IE5VTEw7CisgCitAQCAtMzksMzMgKzM4LDUxIEBAIG9ic29sZXRlc190ZXN0X2NvbnN0cnVjdCAo dm9pZCkKKyAgIGdfYXNzZXJ0X2NtcHN0ciAobW9kdWxlbWRfb2Jzb2xldGVzX2dldF9tb2R1bGVf c3RyZWFtIChlKSwgPT0sICJ0ZXN0c3RyZWFtIik7CisgICBnX2Fzc2VydF9jbXBzdHIgKG1vZHVs ZW1kX29ic29sZXRlc19nZXRfbWVzc2FnZSAoZSksID09LCAidGVzdG1lc3NhZ2UiKTsKKyAgIGdf Y2xlYXJfb2JqZWN0ICgmZSk7CisrfQorIAorLSAgLyogVGVzdCBuZXcoKSB3aXRoIGEgTlVMTCBt b2R1bGVfbmFtZSAqLworLSAgbW9kdWxlbWRfdGVzdF9zaWduYWwgPSAwOworLSAgc2lnbmFsIChT SUdUUkFQLCBtb2R1bGVtZF90ZXN0X3NpZ25hbF9oYW5kbGVyKTsKKy0gIGUgPSBtb2R1bGVtZF9v YnNvbGV0ZXNfbmV3ICgKKy0gICAgTURfT0JTT0xFVEVTX1ZFUlNJT05fT05FLCAyLCBOVUxMLCAi dGVzdHN0cmVhbSIsICJ0ZXN0bWVzc2FnZSIpOworLSAgZ19hc3NlcnRfY21waW50IChtb2R1bGVt ZF90ZXN0X3NpZ25hbCwgPT0sIFNJR1RSQVApOworLSAgLyogSWYgd2UgdHJhcCB0aGUgZXJyb3Is IG9ic29sZXRlcyBhY3R1YWxseSByZXR1cm5zIGEgdmFsdWUgaGVyZSwgc28gZnJlZSBpdCAqLwor LSAgZ19jbGVhcl9vYmplY3QgKCZlKTsKKysvKiBUZXN0IG5ldygpIHdpdGggYSBOVUxMIG1vZHVs ZV9uYW1lICovCisrc3RhdGljIHZvaWQKKytvYnNvbGV0ZXNfdGVzdF9jb25zdHJ1Y3RfbnVsbF9t b2R1bGVfbmFtZSAodm9pZCkKKyt7CisrICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCisrICAg IHsKKysgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kT2Jzb2xldGVzKSBlID0gTlVMTDsKKysgICAg ICBlID0gbW9kdWxlbWRfb2Jzb2xldGVzX25ldyAoCisrICAgICAgICBNRF9PQlNPTEVURVNfVkVS U0lPTl9PTkUsIDIsIE5VTEwsICJ0ZXN0c3RyZWFtIiwgInRlc3RtZXNzYWdlIik7CisrICAgICAg cmV0dXJuOworKyAgICB9CisrICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBHX1RF U1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKKysgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7 CisrfQorIAorLSAgLyogVGVzdCBuZXcoKSB3aXRoIGEgTlVMTCBtb2R1bGVfY29udGV4dCAqLwor LSAgbW9kdWxlbWRfdGVzdF9zaWduYWwgPSAwOworLSAgc2lnbmFsIChTSUdUUkFQLCBtb2R1bGVt ZF90ZXN0X3NpZ25hbF9oYW5kbGVyKTsKKy0gIGUgPSBtb2R1bGVtZF9vYnNvbGV0ZXNfbmV3ICgK Ky0gICAgTURfT0JTT0xFVEVTX1ZFUlNJT05fT05FLCAyLCAidGVzdG1vZHVsZSIsIE5VTEwsICJ0 ZXN0bWVzc2FnZSIpOworLSAgZ19hc3NlcnRfY21waW50IChtb2R1bGVtZF90ZXN0X3NpZ25hbCwg PT0sIFNJR1RSQVApOworLSAgLyogSWYgd2UgdHJhcCB0aGUgZXJyb3IsIG9ic29sZXRlcyBhY3R1 YWxseSByZXR1cm5zIGEgdmFsdWUgaGVyZSwgc28gZnJlZSBpdCAqLworLSAgZ19jbGVhcl9vYmpl Y3QgKCZlKTsKKysvKiBUZXN0IG5ldygpIHdpdGggYSBOVUxMIG1vZHVsZV9jb250ZXh0ICovCisr c3RhdGljIHZvaWQKKytvYnNvbGV0ZXNfdGVzdF9jb25zdHJ1Y3RfbnVsbF9tb2R1bGVfY29udGV4 dCAodm9pZCkKKyt7CisrICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCisrICAgIHsKKysgICAg ICBnX2F1dG9wdHIgKE1vZHVsZW1kT2Jzb2xldGVzKSBlID0gTlVMTDsKKysgICAgICBlID0gbW9k dWxlbWRfb2Jzb2xldGVzX25ldyAoCisrICAgICAgICBNRF9PQlNPTEVURVNfVkVSU0lPTl9PTkUs IDIsICJ0ZXN0bW9kdWxlIiwgTlVMTCwgInRlc3RtZXNzYWdlIik7CisrICAgICAgcmV0dXJuOwor KyAgICB9CisrICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBHX1RFU1RfU1VCUFJP Q0VTU19ERUZBVUxUKTsKKysgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7CisrfQorIAor LSAgLyogVGVzdCBuZXcoKSB3aXRoIGEgTlVMTCBtZXNzYWdlICovCistICBtb2R1bGVtZF90ZXN0 X3NpZ25hbCA9IDA7CistICBzaWduYWwgKFNJR1RSQVAsIG1vZHVsZW1kX3Rlc3Rfc2lnbmFsX2hh bmRsZXIpOworLSAgZSA9IG1vZHVsZW1kX29ic29sZXRlc19uZXcgKAorLSAgICBNRF9PQlNPTEVU RVNfVkVSU0lPTl9PTkUsIDIsICJ0ZXN0bW9kdWxlIiwgInRlc3RzdHJlYW0iLCBOVUxMKTsKKy0g IGdfYXNzZXJ0X2NtcGludCAobW9kdWxlbWRfdGVzdF9zaWduYWwsID09LCBTSUdUUkFQKTsKKy0g IC8qIElmIHdlIHRyYXAgdGhlIGVycm9yLCBvYnNvbGV0ZXMgYWN0dWFsbHkgcmV0dXJucyBhIHZh bHVlIGhlcmUsIHNvIGZyZWUgaXQgKi8KKy0gIGdfY2xlYXJfb2JqZWN0ICgmZSk7CisrLyogVGVz dCBuZXcoKSB3aXRoIGEgTlVMTCBtZXNzYWdlICovCisrc3RhdGljIHZvaWQKKytvYnNvbGV0ZXNf dGVzdF9jb25zdHJ1Y3RfbnVsbF9tZXNzYWdlICh2b2lkKQorK3sKKysgIGlmIChnX3Rlc3Rfc3Vi cHJvY2VzcyAoKSkKKysgICAgeworKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRPYnNvbGV0ZXMp IGUgPSBOVUxMOworKyAgICAgIGUgPSBtb2R1bGVtZF9vYnNvbGV0ZXNfbmV3ICgKKysgICAgICAg IE1EX09CU09MRVRFU19WRVJTSU9OX09ORSwgMiwgInRlc3Rtb2R1bGUiLCAidGVzdHN0cmVhbSIs IE5VTEwpOworKyAgICAgIHJldHVybjsKKysgICAgfQorKyAgZ190ZXN0X3RyYXBfc3VicHJvY2Vz cyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7CisrICBnX3Rlc3RfdHJhcF9h c3NlcnRfZmFpbGVkICgpOworIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTQ5Niw4ICs1MTMsMTQg QEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKKyAKKyAgIC8vIERlZmluZSB0aGUgdGVz dHMuCisgCistICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvb2Jzb2xldGVzL2NvbnN0 cnVjdCIsCistICAgICAgICAgICAgICAgICAgIG9ic29sZXRlc190ZXN0X2NvbnN0cnVjdCk7Cisr ICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvb2Jzb2xldGVzL2NvbnN0cnVjdC9yZWd1 bGFyIiwKKysgICAgICAgICAgICAgICAgICAgb2Jzb2xldGVzX3Rlc3RfY29uc3RydWN0X3JlZ3Vs YXIpOworKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL29ic29sZXRlcy9jb25zdHJ1 Y3QvbnVsbF9tb2R1bGVfbmFtZSIsCisrICAgICAgICAgICAgICAgICAgIG9ic29sZXRlc190ZXN0 X2NvbnN0cnVjdF9udWxsX21vZHVsZV9uYW1lKTsKKysgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1 bGVtZC92Mi9vYnNvbGV0ZXMvY29uc3RydWN0L251bGxfbW9kdWxlX2NvbnRleHQiLAorKyAgICAg ICAgICAgICAgICAgICBvYnNvbGV0ZXNfdGVzdF9jb25zdHJ1Y3RfbnVsbF9tb2R1bGVfY29udGV4 dCk7CisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvb2Jzb2xldGVzL2NvbnN0cnVj dC9udWxsX21lc3NhZ2UiLAorKyAgICAgICAgICAgICAgICAgICBvYnNvbGV0ZXNfdGVzdF9jb25z dHJ1Y3RfbnVsbF9tZXNzYWdlKTsKKyAKKyAgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92 Mi9vYnNvbGV0ZXMvY29weSIsIG9ic29sZXRlc190ZXN0X2NvcHkpOworIAorZGlmZiAtLWdpdCBh L21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtcHJvZmlsZS5jIGIvbW9kdWxlbWQvdGVzdHMv dGVzdC1tb2R1bGVtZC1wcm9maWxlLmMKK2luZGV4IDNhNzMwYzEuLmI0YmQ4OGYgMTAwNjQ0Cist LS0gYS9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLXByb2ZpbGUuYworKysrIGIvbW9kdWxl bWQvdGVzdHMvdGVzdC1tb2R1bGVtZC1wcm9maWxlLmMKK0BAIC0xNCw3ICsxNCw2IEBACisgI2lu Y2x1ZGUgPGdsaWIuaD4KKyAjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KKyAjaW5jbHVkZSA8bG9j YWxlLmg+CistI2luY2x1ZGUgPHNpZ25hbC5oPgorIAorICNpbmNsdWRlICJtb2R1bGVtZC1wcm9m aWxlLmgiCisgI2luY2x1ZGUgInByaXZhdGUvZ2xpYi1leHRlbnNpb25zLmgiCitAQCAtMjYsMTYg KzI1LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1Byb2ZpbGVGaXh0dXJlCisgeworIH0gUHJvZmlsZUZp eHR1cmU7CisgCistZ2Jvb2xlYW4gc2lnbmFsZWQgPSBGQUxTRTsKKy0KKyBzdGF0aWMgdm9pZAor LXNpZ3RyYXBfaGFuZGxlciAoaW50IFVOVVNFRCAoc2lnX251bSkpCisteworLSAgc2lnbmFsZWQg PSBUUlVFOworLX0KKy0KKy1zdGF0aWMgdm9pZAorLXByb2ZpbGVfdGVzdF9jb25zdHJ1Y3QgKHZv aWQpCisrcHJvZmlsZV90ZXN0X2NvbnN0cnVjdF9yZWd1bGFyICh2b2lkKQorIHsKKyAgIGdfYXV0 b3B0ciAoTW9kdWxlbWRQcm9maWxlKSBwID0gTlVMTDsKKyAgIGdfYXV0byAoR1N0cnYpIHJwbXMg PSBOVUxMOworQEAgLTU2LDI3ICs0Nyw1MiBAQCBwcm9maWxlX3Rlc3RfY29uc3RydWN0ICh2b2lk KQorICAgZ19hc3NlcnRfdHJ1ZSAoTU9EVUxFTURfSVNfUFJPRklMRSAocCkpOworICAgZ19hc3Nl cnRfY21wc3RyIChtb2R1bGVtZF9wcm9maWxlX2dldF9uYW1lIChwKSwgPT0sICJ0ZXN0cHJvZmls ZSIpOworICAgZ19jbGVhcl9vYmplY3QgKCZwKTsKKyt9CisgCistICAvKiBUZXN0IHRoYXQgd2Ug YWJvcnQgd2l0aCBhIE5VTEwgbmFtZSB0byBuZXcoKSAqLworLSAgc2lnbmFsZWQgPSBGQUxTRTsK Ky0gIHNpZ25hbCAoU0lHVFJBUCwgc2lndHJhcF9oYW5kbGVyKTsKKy0gIHAgPSBtb2R1bGVtZF9w cm9maWxlX25ldyAoTlVMTCk7CistICBnX2Fzc2VydF90cnVlIChzaWduYWxlZCk7CistICBnX2Ns ZWFyX29iamVjdCAoJnApOworIAorLSAgLyogVGVzdCB0aGF0IHdlIGFib3J0IGlmIHdlIGluc3Rh bnRpYXRlIHdpdGhvdXQgYSBuYW1lICovCistICBzaWduYWxlZCA9IEZBTFNFOworLSAgc2lnbmFs IChTSUdUUkFQLCBzaWd0cmFwX2hhbmRsZXIpOworLSAgcCA9IGdfb2JqZWN0X25ldyAoTU9EVUxF TURfVFlQRV9QUk9GSUxFLCBOVUxMKTsKKy0gIGdfYXNzZXJ0X3RydWUgKHNpZ25hbGVkKTsKKy0g IGdfY2xlYXJfb2JqZWN0ICgmcCk7CisrLyogVGVzdCB0aGF0IHdlIGFib3J0IHdpdGggYSBOVUxM IG5hbWUgdG8gbmV3KCkgKi8KKytzdGF0aWMgdm9pZAorK3Byb2ZpbGVfdGVzdF9jb25zdHJ1Y3Rf bmV3X251bGwgKHZvaWQpCisreworKyAgaWYgKGdfdGVzdF9zdWJwcm9jZXNzICgpKQorKyAgICB7 CisrICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZFByb2ZpbGUpIHAgPSBOVUxMOworKyAgICAgIHAg PSBtb2R1bGVtZF9wcm9maWxlX25ldyAoTlVMTCk7CisrICAgICAgcmV0dXJuOworKyAgICB9Cisr ICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZB VUxUKTsKKysgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7CisrfQorIAorLSAgLyogdGVz dCB0aGF0IHdlIGFib3J0IGlmIHdlIGluc3RhbnRpYXRlIHdpdGggYSBOVUxMIG5hbWUgKi8KKy0g IHNpZ25hbGVkID0gRkFMU0U7CistICBzaWduYWwgKFNJR1RSQVAsIHNpZ3RyYXBfaGFuZGxlcik7 CistICBwID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX1BST0ZJTEUsICJuYW1lIiwgTlVM TCwgTlVMTCk7CistICBnX2Fzc2VydF90cnVlIChzaWduYWxlZCk7CistICBnX2NsZWFyX29iamVj dCAoJnApOworKworKy8qIFRlc3QgdGhhdCB3ZSBhYm9ydCBpZiB3ZSBpbnN0YW50aWF0ZSB3aXRo b3V0IGEgbmFtZSAqLworK3N0YXRpYyB2b2lkCisrcHJvZmlsZV90ZXN0X2NvbnN0cnVjdF9pbml0 X25vX25hbWUgKHZvaWQpCisreworKyAgaWYgKGdfdGVzdF9zdWJwcm9jZXNzICgpKQorKyAgICB7 CisrICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZFByb2ZpbGUpIHAgPSBOVUxMOworKyAgICAgIHAg PSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfUFJPRklMRSwgTlVMTCk7CisrICAgICAgcmV0 dXJuOworKyAgICB9CisrICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBHX1RFU1Rf U1VCUFJPQ0VTU19ERUZBVUxUKTsKKysgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7Cisr fQorKworKworKy8qIFRlc3QgdGhhdCB3ZSBhYm9ydCBpZiB3ZSBpbnN0YW50aWF0ZSB3aXRoIGEg TlVMTCBuYW1lICovCisrc3RhdGljIHZvaWQKKytwcm9maWxlX3Rlc3RfY29uc3RydWN0X2luaXRf bnVsbF9uYW1lICh2b2lkKQorK3sKKysgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKKysgICAg eworKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRQcm9maWxlKSBwID0gTlVMTDsKKysKKysgICAg ICBwID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX1BST0ZJTEUsICJuYW1lIiwgTlVMTCwg TlVMTCk7CisrICAgICAgcmV0dXJuOworKyAgICB9CisrICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNz IChOVUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKKysgIGdfdGVzdF90cmFwX2Fz c2VydF9mYWlsZWQgKCk7CisgfQorIAorIAorQEAgLTM1MywxMiArMzY5LDIzIEBAIHByb2ZpbGVf dGVzdF9nZXRfbmFtZSAodm9pZCkKKyAKKyAgIGdfb2JqZWN0X2dldCAocCwgIm5hbWUiLCAmbmFt ZSwgTlVMTCk7CisgICBnX2Fzc2VydF9jbXBzdHIgKG5hbWUsID09LCAidGVzdHByb2ZpbGUiKTsK Kyt9CisrCisgCistICAvKiBUZXN0IHRoYXQgbmFtZSBpcyBpbW11dGFibGUgKi8KKy0gIHNpZ25h bGVkID0gRkFMU0U7CistICBzaWduYWwgKFNJR1RSQVAsIHNpZ3RyYXBfaGFuZGxlcik7CistICBn X29iamVjdF9zZXQgKHAsICJuYW1lIiwgIm5vdGF0ZXN0IiwgTlVMTCk7CistICBnX2Fzc2VydF90 cnVlIChzaWduYWxlZCk7CisrLyogVGVzdCB0aGF0IG5hbWUgaXMgaW1tdXRhYmxlICovCisrc3Rh dGljIHZvaWQKKytwcm9maWxlX3Rlc3RfbmFtZV9pc19pbW11dGFibGUgKHZvaWQpCisreworKyAg aWYgKGdfdGVzdF9zdWJwcm9jZXNzICgpKQorKyAgICB7CisrICAgICAgZ19hdXRvcHRyIChNb2R1 bGVtZFByb2ZpbGUpIHAgPSBOVUxMOworKyAgICAgIHAgPSBtb2R1bGVtZF9wcm9maWxlX25ldyAo InRlc3Rwcm9maWxlIik7CisrCisrICAgICAgZ19vYmplY3Rfc2V0IChwLCAibmFtZSIsICJub3Rh dGVzdCIsIE5VTEwpOworKyAgICAgIHJldHVybjsKKysgICAgfQorKyAgZ190ZXN0X3RyYXBfc3Vi cHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7CisrICBnX3Rlc3Rf dHJhcF9hc3NlcnRfZmFpbGVkICgpOworIH0KKyAKKyAKK0BAIC01NzYsNyArNjAzLDE0IEBAIG1h aW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCisgCisgICAvLyBEZWZpbmUgdGhlIHRlc3RzLgor IAorLSAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3Byb2ZpbGUvY29uc3RydWN0Iiwg cHJvZmlsZV90ZXN0X2NvbnN0cnVjdCk7CisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQv djIvcHJvZmlsZS9jb25zdHJ1Y3QvcmVndWxhciIsCisrICAgICAgICAgICAgICAgICAgIHByb2Zp bGVfdGVzdF9jb25zdHJ1Y3RfcmVndWxhcik7CisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxl bWQvdjIvcHJvZmlsZS9jb25zdHJ1Y3QvbmV3X251bGwiLAorKyAgICAgICAgICAgICAgICAgICBw cm9maWxlX3Rlc3RfY29uc3RydWN0X25ld19udWxsKTsKKysgIGdfdGVzdF9hZGRfZnVuYyAoIi9t b2R1bGVtZC92Mi9wcm9maWxlL2NvbnN0cnVjdC9pbml0X25vX25hbWUiLAorKyAgICAgICAgICAg ICAgICAgICBwcm9maWxlX3Rlc3RfY29uc3RydWN0X2luaXRfbm9fbmFtZSk7CisrICBnX3Rlc3Rf YWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvcHJvZmlsZS9jb25zdHJ1Y3QvaW5pdF9udWxsX25hbWUi LAorKyAgICAgICAgICAgICAgICAgICBwcm9maWxlX3Rlc3RfY29uc3RydWN0X2luaXRfbnVsbF9u YW1lKTsKKyAKKyAgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9wcm9maWxlL2VxdWFs cyIsIHByb2ZpbGVfdGVzdF9lcXVhbHMpOworIAorQEAgLTU4NCw2ICs2MTgsOSBAQCBtYWluIChp bnQgYXJnYywgY2hhciAqYXJndltdKQorIAorICAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1k L3YyL3Byb2ZpbGUvZ2V0X25hbWUiLCBwcm9maWxlX3Rlc3RfZ2V0X25hbWUpOworIAorKyAgZ190 ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3Byb2ZpbGUvbmFtZV9pc19pbW11dGFibGUiLAor KyAgICAgICAgICAgICAgICAgICBwcm9maWxlX3Rlc3RfbmFtZV9pc19pbW11dGFibGUpOworKwor ICAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3Byb2ZpbGUvZ2V0X3NldF9kZXNjcmlw dGlvbiIsCisgICAgICAgICAgICAgICAgICAgIHByb2ZpbGVfdGVzdF9nZXRfc2V0X2Rlc2NyaXB0 aW9uKTsKKyAKK2RpZmYgLS1naXQgYS9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLXNlcnZp Y2UtbGV2ZWwuYyBiL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtc2VydmljZS1sZXZlbC5j CitpbmRleCBkOGVlOTgxLi45NjE5NTZkIDEwMDY0NAorLS0tIGEvbW9kdWxlbWQvdGVzdHMvdGVz dC1tb2R1bGVtZC1zZXJ2aWNlLWxldmVsLmMKKysrKyBiL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9k dWxlbWQtc2VydmljZS1sZXZlbC5jCitAQCAtMTQsNyArMTQsNiBAQAorICNpbmNsdWRlIDxnbGli Lmg+CisgI2luY2x1ZGUgPGdsaWIvZ3N0ZGlvLmg+CisgI2luY2x1ZGUgPGxvY2FsZS5oPgorLSNp bmNsdWRlIDxzaWduYWwuaD4KKyAKKyAjaW5jbHVkZSAibW9kdWxlbWQtc2VydmljZS1sZXZlbC5o IgorICNpbmNsdWRlICJwcml2YXRlL2dsaWItZXh0ZW5zaW9ucy5oIgorQEAgLTI2LDE2ICsyNSw4 IEBAIHR5cGVkZWYgc3RydWN0IF9TZXJ2aWNlTGV2ZWxGaXh0dXJlCisgeworIH0gU2VydmljZUxl dmVsRml4dHVyZTsKKyAKKy1nYm9vbGVhbiBzaWduYWxlZCA9IEZBTFNFOworLQorLXN0YXRpYyB2 b2lkCistc2lndHJhcF9oYW5kbGVyIChpbnQgVU5VU0VEIChzaWdfbnVtKSkKKy17CistICBzaWdu YWxlZCA9IFRSVUU7CistfQorLQorIHN0YXRpYyB2b2lkCistc2VydmljZV9sZXZlbF90ZXN0X2Nv bnN0cnVjdCAodm9pZCkKKytzZXJ2aWNlX2xldmVsX3Rlc3RfY29uc3RydWN0X3JlZ3VsYXIgKHZv aWQpCisgeworICAgZ19hdXRvcHRyIChNb2R1bGVtZFNlcnZpY2VMZXZlbCkgc2wgPSBOVUxMOwor IAorQEAgLTU5LDM0ICs1MCw1NSBAQCBzZXJ2aWNlX2xldmVsX3Rlc3RfY29uc3RydWN0ICh2b2lk KQorICAgZ19hc3NlcnRfY21wc3RyIChtb2R1bGVtZF9zZXJ2aWNlX2xldmVsX2dldF9uYW1lIChz bCksID09LCAiYmFyIik7CisgICBnX2Fzc2VydF9udWxsIChtb2R1bGVtZF9zZXJ2aWNlX2xldmVs X2dldF9lb2wgKHNsKSk7CisgICBnX2NsZWFyX29iamVjdCAoJnNsKTsKKyt9CisgCisgCistICAv KiBUZXN0IHRoYXQgd2UgYWJvcnQgaWYgd2UgY2FsbCBuZXcoKSB3aXRoIGEgTlVMTCBuYW1lICov CistICBzaWduYWxlZCA9IEZBTFNFOworLSAgc2lnbmFsIChTSUdUUkFQLCBzaWd0cmFwX2hhbmRs ZXIpOworLSAgc2wgPSBtb2R1bGVtZF9zZXJ2aWNlX2xldmVsX25ldyAoTlVMTCk7CistICBnX2Fz c2VydF90cnVlIChzaWduYWxlZCk7CistICBnX2NsZWFyX29iamVjdCAoJnNsKTsKKysvKiBUZXN0 IHRoYXQgd2UgYWJvcnQgaWYgd2UgY2FsbCBuZXcoKSB3aXRoIGEgTlVMTCBuYW1lICovCisrc3Rh dGljIHZvaWQKKytzZXJ2aWNlX2xldmVsX3Rlc3RfY29uc3RydWN0X25ld19udWxsICh2b2lkKQor K3sKKysgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKKysgICAgeworKyAgICAgIGdfYXV0b3B0 ciAoTW9kdWxlbWRTZXJ2aWNlTGV2ZWwpIHNsID0gTlVMTDsKKysgICAgICBzbCA9IG1vZHVsZW1k X3NlcnZpY2VfbGV2ZWxfbmV3IChOVUxMKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysgIGdf dGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQp OworKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKKyt9CisgCisgCistICAvKiBUZXN0 IHRoYXQgd2UgYWJvcnQgaWYgd2UgaW5zdGF0aWF0ZSB3aXRob3V0IGEgbmFtZSAqLworLSAgc2ln bmFsZWQgPSBGQUxTRTsKKy0gIHNpZ25hbCAoU0lHVFJBUCwgc2lndHJhcF9oYW5kbGVyKTsKKy0g IHNsID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX1NFUlZJQ0VfTEVWRUwsIE5VTEwpOwor LSAgZ19hc3NlcnRfdHJ1ZSAoc2lnbmFsZWQpOworLSAgZ19jbGVhcl9vYmplY3QgKCZzbCk7Cisr LyogVGVzdCB0aGF0IHdlIGFib3J0IGlmIHdlIGluc3RhdGlhdGUgd2l0aG91dCBhIG5hbWUgKi8K KytzdGF0aWMgdm9pZAorK3NlcnZpY2VfbGV2ZWxfdGVzdF9jb25zdHJ1Y3RfaW5pdF9ub19uYW1l ICh2b2lkKQorK3sKKysgIGlmIChnX3Rlc3Rfc3VicHJvY2VzcyAoKSkKKysgICAgeworKyAgICAg IGdfYXV0b3B0ciAoTW9kdWxlbWRTZXJ2aWNlTGV2ZWwpIHNsID0gTlVMTDsKKysgICAgICBzbCA9 IGdfb2JqZWN0X25ldyAoTU9EVUxFTURfVFlQRV9TRVJWSUNFX0xFVkVMLCBOVUxMKTsKKysgICAg ICByZXR1cm47CisrICAgIH0KKysgIGdfdGVzdF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdf VEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOworKyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAo KTsKKyt9CisgCisgCistICAvKiBUZXN0IHRoYXQgd2UgYWJvcnQgaWYgd2UgaW5zdGF0aWF0ZSB3 aXRoIGEgTlVMTCBuYW1lICovCistICBzaWduYWxlZCA9IEZBTFNFOworLSAgc2lnbmFsIChTSUdU UkFQLCBzaWd0cmFwX2hhbmRsZXIpOworLSAgLy8gY2xhbmctZm9ybWF0IG9mZgorLSAgc2wgPSBn X29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfU0VSVklDRV9MRVZFTCwKKy0gICAgICAgICAgICAg ICAgICAgICAibmFtZSIsIE5VTEwsCistICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CistICAv LyBjbGFuZy1mb3JtYXQgb24KKy0gIGdfYXNzZXJ0X3RydWUgKHNpZ25hbGVkKTsKKy0gIGdfY2xl YXJfb2JqZWN0ICgmc2wpOworKy8qIFRlc3QgdGhhdCB3ZSBhYm9ydCBpZiB3ZSBpbnN0YXRpYXRl IHdpdGggYSBOVUxMIG5hbWUgKi8KKytzdGF0aWMgdm9pZAorK3NlcnZpY2VfbGV2ZWxfdGVzdF9j b25zdHJ1Y3RfaW5pdF9udWxsX25hbWUgKHZvaWQpCisreworKyAgaWYgKGdfdGVzdF9zdWJwcm9j ZXNzICgpKQorKyAgICB7CisrICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZFNlcnZpY2VMZXZlbCkg c2wgPSBOVUxMOworKyAgICAgIC8vIGNsYW5nLWZvcm1hdCBvZmYKKysgICAgICBzbCA9IGdfb2Jq ZWN0X25ldyAoTU9EVUxFTURfVFlQRV9TRVJWSUNFX0xFVkVMLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAibmFtZSIsIE5VTEwsCisrICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwor KyAgICAgIC8vIGNsYW5nLWZvcm1hdCBvbgorKyAgICAgIHJldHVybjsKKysgICAgfQorKyAgZ190 ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7 CisrICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOworIH0KKyAKKyAKK0BAIC0yNDksMTkg KzI2MSwyNSBAQCBzZXJ2aWNlX2xldmVsX3Rlc3RfZ2V0X25hbWUgKHZvaWQpCisgICAgICAgICAg ICAgICAgIE5VTEwpOworICAgLy8gY2xhbmctZm9ybWF0IG9uCisgICBnX2Fzc2VydF9jbXBzdHIg KG5hbWUsID09LCAiZm9vIik7CisrfQorIAorIAorLSAgLyogVGVzdCB0aGF0IHRyeWluZyB0byBz ZXQgdGhlIG5hbWUgYnkgb2JqZWN0IHByb3BlcnRpZXMgZmFpbHMuCistICAgKiBUaGUgbmFtZSBt dXN0IGJlIGltbXV0YWJsZSBmb3IgdGhlIGxpZmUgb2YgdGhlIG9iamVjdC4KKy0gICAqLworLSAg c2lnbmFsZWQgPSBGQUxTRTsKKy0gIHNpZ25hbCAoU0lHVFJBUCwgc2lndHJhcF9oYW5kbGVyKTsK Ky0gIC8vIGNsYW5nLWZvcm1hdCBvZmYKKy0gIGdfb2JqZWN0X3NldCAoc2wsCistICAgICAgICAg ICAgICAgICJuYW1lIiwgImJhciIsCistICAgICAgICAgICAgICAgIE5VTEwpOworLSAgLy8gY2xh bmctZm9ybWF0IG9uCistICBnX2Fzc2VydF90cnVlIChzaWduYWxlZCk7CisrLyoKKysgKiBUZXN0 IHRoYXQgdHJ5aW5nIHRvIHNldCB0aGUgbmFtZSBieSBvYmplY3QgcHJvcGVydGllcyBmYWlscy4K KysgKiBUaGUgbmFtZSBtdXN0IGJlIGltbXV0YWJsZSBmb3IgdGhlIGxpZmUgb2YgdGhlIG9iamVj dC4KKysgKi8KKytzdGF0aWMgdm9pZAorK3NlcnZpY2VfbGV2ZWxfdGVzdF9uYW1lX2lzX2ltbXV0 YWJsZSAodm9pZCkKKyt7CisrICBpZiAoZ190ZXN0X3N1YnByb2Nlc3MgKCkpCisrICAgIHsKKysg ICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kU2VydmljZUxldmVsKSBzbCA9IE5VTEw7CisrICAgICAg c2wgPSBtb2R1bGVtZF9zZXJ2aWNlX2xldmVsX25ldyAoImZvbyIpOworKyAgICAgIGdfb2JqZWN0 X3NldCAoc2wsICJuYW1lIiwgImJhciIsIE5VTEwpOworKyAgICAgIHJldHVybjsKKysgICAgfQor KyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVG QVVMVCk7CisrICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOworIH0KKyAKKyAKK0BAIC00 NzYsMTIgKzQ5NCwyMSBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQorIAorICAgLy8g RGVmaW5lIHRoZSB0ZXN0cy4KKyAKKy0gIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi9z ZXJ2aWNlbGV2ZWwvY29uc3RydWN0IiwKKy0gICAgICAgICAgICAgICAgICAgc2VydmljZV9sZXZl bF90ZXN0X2NvbnN0cnVjdCk7CisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvc2Vy dmljZWxldmVsL2NvbnN0cnVjdC9yZWd1bGFyIiwKKysgICAgICAgICAgICAgICAgICAgc2Vydmlj ZV9sZXZlbF90ZXN0X2NvbnN0cnVjdF9yZWd1bGFyKTsKKysgIGdfdGVzdF9hZGRfZnVuYyAoIi9t b2R1bGVtZC92Mi9zZXJ2aWNlbGV2ZWwvY29uc3RydWN0L25ld19udWxsIiwKKysgICAgICAgICAg ICAgICAgICAgc2VydmljZV9sZXZlbF90ZXN0X2NvbnN0cnVjdF9uZXdfbnVsbCk7CisrICBnX3Rl c3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvc2VydmljZWxldmVsL2NvbnN0cnVjdC9pbml0X25v X25hbWUiLAorKyAgICAgICAgICAgICAgICAgICBzZXJ2aWNlX2xldmVsX3Rlc3RfY29uc3RydWN0 X2luaXRfbm9fbmFtZSk7CisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvc2Vydmlj ZWxldmVsL2NvbnN0cnVjdC9pbml0X251bGxfbmFtZSIsCisrICAgICAgICAgICAgICAgICAgIHNl cnZpY2VfbGV2ZWxfdGVzdF9jb25zdHJ1Y3RfaW5pdF9udWxsX25hbWUpOworIAorICAgZ190ZXN0 X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3NlcnZpY2VsZXZlbC9nZXRfc2V0X25hbWUiLAorICAg ICAgICAgICAgICAgICAgICBzZXJ2aWNlX2xldmVsX3Rlc3RfZ2V0X25hbWUpOworIAorKyAgZ190 ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3NlcnZpY2VsZXZlbC9uYW1lX2lzX2ltbXV0YWJs ZSIsCisrICAgICAgICAgICAgICAgICAgIHNlcnZpY2VfbGV2ZWxfdGVzdF9uYW1lX2lzX2ltbXV0 YWJsZSk7CisrCisgICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvc2VydmljZWxldmVs L2VxdWFscyIsCisgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VfbGV2ZWxfdGVzdF9lcXVhbHMp OworIAorZGlmZiAtLWdpdCBhL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtdHJhbnNsYXRp b24tZW50cnkuYyBiL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtdHJhbnNsYXRpb24tZW50 cnkuYworaW5kZXggODU4YmRmYS4uZWUxNzk0MCAxMDA2NDQKKy0tLSBhL21vZHVsZW1kL3Rlc3Rz L3Rlc3QtbW9kdWxlbWQtdHJhbnNsYXRpb24tZW50cnkuYworKysrIGIvbW9kdWxlbWQvdGVzdHMv dGVzdC1tb2R1bGVtZC10cmFuc2xhdGlvbi1lbnRyeS5jCitAQCAtMTQsNyArMTQsNiBAQAorICNp bmNsdWRlIDxnbGliLmg+CisgI2luY2x1ZGUgPGdsaWIvZ3N0ZGlvLmg+CisgI2luY2x1ZGUgPGxv Y2FsZS5oPgorLSNpbmNsdWRlIDxzaWduYWwuaD4KKyAKKyAjaW5jbHVkZSAibW9kdWxlbWQtdHJh bnNsYXRpb24tZW50cnkuaCIKKyAjaW5jbHVkZSAicHJpdmF0ZS9nbGliLWV4dGVuc2lvbnMuaCIK K0BAIC0yNiwxNiArMjUsOCBAQCB0eXBlZGVmIHN0cnVjdCBfVHJhbnNsYXRpb25FbnRyeUZpeHR1 cmUKKyB7CisgfSBUcmFuc2xhdGlvbkVudHJ5Rml4dHVyZTsKKyAKKy1nYm9vbGVhbiBzaWduYWxl ZCA9IEZBTFNFOworLQorIHN0YXRpYyB2b2lkCistc2lndHJhcF9oYW5kbGVyIChpbnQgVU5VU0VE IChzaWdfbnVtKSkKKy17CistICBzaWduYWxlZCA9IFRSVUU7CistfQorLQorLXN0YXRpYyB2b2lk CistdHJhbnNsYXRpb25fZW50cnlfdGVzdF9jb25zdHJ1Y3QgKHZvaWQpCisrdHJhbnNsYXRpb25f ZW50cnlfdGVzdF9jb25zdHJ1Y3RfcmVndWxhciAodm9pZCkKKyB7CisgICBnX2F1dG9wdHIgKE1v ZHVsZW1kVHJhbnNsYXRpb25FbnRyeSkgdGUgPSBOVUxMOworICAgZ19hdXRvIChHU3RydikgcHJv ZmlsZV9uYW1lcyA9IE5VTEw7CitAQCAtMTEwLDM0ICsxMDEsNTUgQEAgdHJhbnNsYXRpb25fZW50 cnlfdGVzdF9jb25zdHJ1Y3QgKHZvaWQpCisgICBnX2Fzc2VydF9jbXBzdHIgKAorICAgICBtb2R1 bGVtZF90cmFuc2xhdGlvbl9lbnRyeV9nZXRfZGVzY3JpcHRpb24gKHRlKSwgPT0sICJqdW1wZWQi KTsKKyAgIGdfY2xlYXJfb2JqZWN0ICgmdGUpOworK30KKyAKKyAKKy0gIC8qIFRlc3QgdGhhdCB3 ZSBhYm9ydCBpZiB3ZSBjYWxsIG5ldygpIHdpdGggYSBOVUxMIGxvY2FsZSAqLworLSAgc2lnbmFs ZWQgPSBGQUxTRTsKKy0gIHNpZ25hbCAoU0lHVFJBUCwgc2lndHJhcF9oYW5kbGVyKTsKKy0gIHRl ID0gbW9kdWxlbWRfdHJhbnNsYXRpb25fZW50cnlfbmV3IChOVUxMKTsKKy0gIGdfYXNzZXJ0X3Ry dWUgKHNpZ25hbGVkKTsKKy0gIGdfY2xlYXJfb2JqZWN0ICgmdGUpOworKy8qIFRlc3QgdGhhdCB3 ZSBhYm9ydCBpZiB3ZSBjYWxsIG5ldygpIHdpdGggYSBOVUxMIGxvY2FsZSAqLworK3N0YXRpYyB2 b2lkCisrdHJhbnNsYXRpb25fZW50cnlfdGVzdF9jb25zdHJ1Y3RfbmV3X251bGwgKHZvaWQpCisr eworKyAgaWYgKGdfdGVzdF9zdWJwcm9jZXNzICgpKQorKyAgICB7CisrICAgICAgZ19hdXRvcHRy IChNb2R1bGVtZFRyYW5zbGF0aW9uRW50cnkpIHRlID0gTlVMTDsKKysgICAgICB0ZSA9IG1vZHVs ZW1kX3RyYW5zbGF0aW9uX2VudHJ5X25ldyAoTlVMTCk7CisrICAgICAgcmV0dXJuOworKyAgICB9 CisrICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19E RUZBVUxUKTsKKysgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWlsZWQgKCk7CisrfQorIAorIAorLSAg LyogVGVzdCB0aGF0IHdlIGFib3J0IGlmIHdlIGluc3RhdGlhdGUgd2l0aG91dCBhIGxvY2FsZSAq LworLSAgc2lnbmFsZWQgPSBGQUxTRTsKKy0gIHNpZ25hbCAoU0lHVFJBUCwgc2lndHJhcF9oYW5k bGVyKTsKKy0gIHRlID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX1RSQU5TTEFUSU9OX0VO VFJZLCBOVUxMKTsKKy0gIGdfYXNzZXJ0X3RydWUgKHNpZ25hbGVkKTsKKy0gIGdfY2xlYXJfb2Jq ZWN0ICgmdGUpOworKy8qIFRlc3QgdGhhdCB3ZSBhYm9ydCBpZiB3ZSBpbnN0YXRpYXRlIHdpdGhv dXQgYSBsb2NhbGUgKi8KKytzdGF0aWMgdm9pZAorK3RyYW5zbGF0aW9uX2VudHJ5X3Rlc3RfY29u c3RydWN0X2luaXRfbm9fbG9jYWxlICh2b2lkKQorK3sKKysgIGlmIChnX3Rlc3Rfc3VicHJvY2Vz cyAoKSkKKysgICAgeworKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRUcmFuc2xhdGlvbkVudHJ5 KSB0ZSA9IE5VTEw7CisrICAgICAgdGUgPSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfVFJB TlNMQVRJT05fRU5UUlksIE5VTEwpOworKyAgICAgIHJldHVybjsKKysgICAgfQorKyAgZ190ZXN0 X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7Cisr ICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOworK30KKyAKKyAKKy0gIC8qIFRlc3QgdGhh dCB3ZSBhYm9ydCBpZiB3ZSBpbnN0YXRpYXRlIHdpdGggYSBOVUxMIGxvY2FsZSAqLworLSAgc2ln bmFsZWQgPSBGQUxTRTsKKy0gIHNpZ25hbCAoU0lHVFJBUCwgc2lndHJhcF9oYW5kbGVyKTsKKy0g IC8vIGNsYW5nLWZvcm1hdCBvZmYKKy0gIHRlID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBF X1RSQU5TTEFUSU9OX0VOVFJZLAorLSAgICAgICAgICAgICAgICAgICAgICJsb2NhbGUiLCBOVUxM LAorLSAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworLSAgLy8gY2xhbmctZm9ybWF0IG9uCist ICBnX2Fzc2VydF90cnVlIChzaWduYWxlZCk7CistICBnX2NsZWFyX29iamVjdCAoJnRlKTsKKysv KiBUZXN0IHRoYXQgd2UgYWJvcnQgaWYgd2UgaW5zdGF0aWF0ZSB3aXRoIGEgTlVMTCBsb2NhbGUg Ki8KKytzdGF0aWMgdm9pZAorK3RyYW5zbGF0aW9uX2VudHJ5X3Rlc3RfY29uc3RydWN0X2luaXRf bnVsbF9sb2NhbGUgKHZvaWQpCisreworKyAgaWYgKGdfdGVzdF9zdWJwcm9jZXNzICgpKQorKyAg ICB7CisrICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZFRyYW5zbGF0aW9uRW50cnkpIHRlID0gTlVM TDsKKysgICAgICAvLyBjbGFuZy1mb3JtYXQgb2ZmCisrICAgICAgdGUgPSBnX29iamVjdF9uZXcg KE1PRFVMRU1EX1RZUEVfVFJBTlNMQVRJT05fRU5UUlksCisrICAgICAgICAgICAgICAgICAgICAg ICAgICJsb2NhbGUiLCBOVUxMLAorKyAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKysg ICAgICAvLyBjbGFuZy1mb3JtYXQgb24KKysgICAgICByZXR1cm47CisrICAgIH0KKysgIGdfdGVz dF90cmFwX3N1YnByb2Nlc3MgKE5VTEwsIDAsIEdfVEVTVF9TVUJQUk9DRVNTX0RFRkFVTFQpOwor KyAgZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCAoKTsKKyB9CisgCisgCitAQCAtMzM0LDEyICsz NDYsMjYgQEAgdHJhbnNsYXRpb25fZW50cnlfdGVzdF9nZXRfbG9jYWxlICh2b2lkKQorIAorICAg Z19vYmplY3RfZ2V0ICh0ZSwgImxvY2FsZSIsICZsb2NhbGUsIE5VTEwpOworICAgZ19hc3NlcnRf Y21wc3RyIChsb2NhbGUsID09LCAiZW5fVVMiKTsKKyt9CisrCisgCistICAvKiBUZXN0IHRoYXQg bG9jYWxlIGlzIGltbXV0YWJsZSAqLworLSAgc2lnbmFsZWQgPSBGQUxTRTsKKy0gIHNpZ25hbCAo U0lHVFJBUCwgc2lndHJhcF9oYW5kbGVyKTsKKy0gIGdfb2JqZWN0X3NldCAodGUsICJsb2NhbGUi LCAiZW5fR0IiLCBOVUxMKTsKKy0gIGdfYXNzZXJ0X3RydWUgKHNpZ25hbGVkKTsKKysvKiBUZXN0 IHRoYXQgbG9jYWxlIGlzIGltbXV0YWJsZSAqLworK3N0YXRpYyB2b2lkCisrdHJhbnNsYXRpb25f ZW50cnlfdGVzdF9sb2NhbGVfaXNfaW1tdXRhYmxlICh2b2lkKQorK3sKKysgIGlmIChnX3Rlc3Rf c3VicHJvY2VzcyAoKSkKKysgICAgeworKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRUcmFuc2xh dGlvbkVudHJ5KSB0ZSA9IE5VTEw7CisrCisrICAgICAgdGUgPSBtb2R1bGVtZF90cmFuc2xhdGlv bl9lbnRyeV9uZXcgKCJlbl9VUyIpOworKyAgICAgIGdfYXNzZXJ0X25vbm51bGwgKHRlKTsKKysg ICAgICBnX2Fzc2VydF90cnVlIChNT0RVTEVNRF9JU19UUkFOU0xBVElPTl9FTlRSWSAodGUpKTsK KysKKysgICAgICBnX29iamVjdF9zZXQgKHRlLCAibG9jYWxlIiwgImVuX0dCIiwgTlVMTCk7Cisr ICAgICAgcmV0dXJuOworKyAgICB9CisrICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxMLCAw LCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKKysgIGdfdGVzdF90cmFwX2Fzc2VydF9mYWls ZWQgKCk7CisgfQorIAorIAorQEAgLTYwOSw4ICs2MzUsMTQgQEAgbWFpbiAoaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkKKyAKKyAgIC8vIERlZmluZSB0aGUgdGVzdHMuCisgCistICBnX3Rlc3RfYWRk X2Z1bmMgKCIvbW9kdWxlbWQvdjIvdHJhbnNsYXRpb25lbnRyeS9jb25zdHJ1Y3QiLAorLSAgICAg ICAgICAgICAgICAgICB0cmFuc2xhdGlvbl9lbnRyeV90ZXN0X2NvbnN0cnVjdCk7CisrICBnX3Rl c3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvdHJhbnNsYXRpb25lbnRyeS9jb25zdHJ1Y3QvcmVn dWxhciIsCisrICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uX2VudHJ5X3Rlc3RfY29uc3Ry dWN0X3JlZ3VsYXIpOworKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3RyYW5zbGF0 aW9uZW50cnkvY29uc3RydWN0L25ld19udWxsIiwKKysgICAgICAgICAgICAgICAgICAgdHJhbnNs YXRpb25fZW50cnlfdGVzdF9jb25zdHJ1Y3RfbmV3X251bGwpOworKyAgZ190ZXN0X2FkZF9mdW5j ICgiL21vZHVsZW1kL3YyL3RyYW5zbGF0aW9uZW50cnkvY29uc3RydWN0L2luaXRfbm9fbG9jYWxl IiwKKysgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25fZW50cnlfdGVzdF9jb25zdHJ1Y3Rf aW5pdF9ub19sb2NhbGUpOworKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3RyYW5z bGF0aW9uZW50cnkvY29uc3RydWN0L2luaXRfbnVsbF9sb2NhbGUiLAorKyAgICAgICAgICAgICAg ICAgICB0cmFuc2xhdGlvbl9lbnRyeV90ZXN0X2NvbnN0cnVjdF9pbml0X251bGxfbG9jYWxlKTsK KyAKKyAgIGdfdGVzdF9hZGRfZnVuYyAoIi9tb2R1bGVtZC92Mi90cmFuc2xhdGlvbmVudHJ5L2Nv cHkiLAorICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbl9lbnRyeV90ZXN0X2NvcHkpOwor QEAgLTYxOCw2ICs2NTAsOSBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQorICAgZ190 ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3RyYW5zbGF0aW9uZW50cnkvZ2V0X2xvY2FsZSIs CisgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uX2VudHJ5X3Rlc3RfZ2V0X2xvY2FsZSk7 CisgCisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvdHJhbnNsYXRpb25lbnRyeS9s b2NhbGVfaXNfaW1tdXRhYmxlIiwKKysgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25fZW50 cnlfdGVzdF9sb2NhbGVfaXNfaW1tdXRhYmxlKTsKKysKKyAgIGdfdGVzdF9hZGRfZnVuYyAoIi9t b2R1bGVtZC92Mi90cmFuc2xhdGlvbmVudHJ5L2dldF9zZXRfc3VtbWFyeSIsCisgICAgICAgICAg ICAgICAgICAgIHRyYW5zbGF0aW9uX2VudHJ5X3Rlc3RfZ2V0X3NldF9zdW1tYXJ5KTsKKyAKK2Rp ZmYgLS1naXQgYS9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLXRyYW5zbGF0aW9uLmMgYi9t b2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLXRyYW5zbGF0aW9uLmMKK2luZGV4IDY1NTIwMGYu LmE2N2I3ODcgMTAwNjQ0CistLS0gYS9tb2R1bGVtZC90ZXN0cy90ZXN0LW1vZHVsZW1kLXRyYW5z bGF0aW9uLmMKKysrKyBiL21vZHVsZW1kL3Rlc3RzL3Rlc3QtbW9kdWxlbWQtdHJhbnNsYXRpb24u YworQEAgLTE0LDcgKzE0LDYgQEAKKyAjaW5jbHVkZSA8Z2xpYi5oPgorICNpbmNsdWRlIDxnbGli L2dzdGRpby5oPgorICNpbmNsdWRlIDxsb2NhbGUuaD4KKy0jaW5jbHVkZSA8c2lnbmFsLmg+Cisg CisgI2luY2x1ZGUgIm1vZHVsZW1kLXN1YmRvY3VtZW50LWluZm8uaCIKKyAjaW5jbHVkZSAibW9k dWxlbWQtdHJhbnNsYXRpb24tZW50cnkuaCIKK0BAIC0zMCwxNyArMjksOSBAQCB0eXBlZGVmIHN0 cnVjdCBfVHJhbnNsYXRpb25GaXh0dXJlCisgeworIH0gVHJhbnNsYXRpb25GaXh0dXJlOworIAor LWdib29sZWFuIHNpZ25hbGVkID0gRkFMU0U7CisgCisgc3RhdGljIHZvaWQKKy1zaWd0cmFwX2hh bmRsZXIgKGludCBVTlVTRUQgKHNpZ19udW0pKQorLXsKKy0gIHNpZ25hbGVkID0gVFJVRTsKKy19 CistCistCistc3RhdGljIHZvaWQKKy10cmFuc2xhdGlvbl90ZXN0X2NvbnN0cnVjdCAodm9pZCkK Kyt0cmFuc2xhdGlvbl90ZXN0X2NvbnN0cnVjdF9yZWd1bGFyICh2b2lkKQorIHsKKyAgIGdfYXV0 b3B0ciAoTW9kdWxlbWRUcmFuc2xhdGlvbikgdCA9IE5VTEw7CisgICBnX2F1dG8gKEdTdHJ2KSBs b2NhbGVzID0gTlVMTDsKK0BAIC05NCw0MSArODUsNjQgQEAgdHJhbnNsYXRpb25fdGVzdF9jb25z dHJ1Y3QgKHZvaWQpCisgICBnX2Fzc2VydF9jbXBzdHIgKG1vZHVsZW1kX3RyYW5zbGF0aW9uX2dl dF9tb2R1bGVfc3RyZWFtICh0KSwgPT0sICJ0ZXN0c3RyIik7CisgICBnX2Fzc2VydF9jbXBpbnQg KG1vZHVsZW1kX3RyYW5zbGF0aW9uX2dldF9tb2RpZmllZCAodCksID09LCBtb2RpZmllZCk7Cisg ICBnX2NsZWFyX29iamVjdCAoJnQpOworK30KKyAKKy0gIC8qIFRlc3QgdGhhdCBvYmplY3RfbmV3 IGRvZXMgbm90IHdvcmsgd2l0aG91dCBhIHZlcnNpb24gKi8KKy0gIHNpZ25hbGVkID0gRkFMU0U7 CistICBzaWduYWwgKFNJR1RSQVAsIHNpZ3RyYXBfaGFuZGxlcik7CistICAvLyBjbGFuZy1mb3Jt YXQgb2ZmCistICB0ID0gZ19vYmplY3RfbmV3IChNT0RVTEVNRF9UWVBFX1RSQU5TTEFUSU9OLAor LSAgICAgICAgICAgICAgICAgICAgIm1vZHVsZV9uYW1lIiwgInRlc3Rtb2QiLAorLSAgICAgICAg ICAgICAgICAgICAgIm1vZHVsZV9zdHJlYW0iLCAidGVzdHN0ciIsCistICAgICAgICAgICAgICAg ICAgICBOVUxMKTsKKy0gIC8vIGNsYW5nLWZvcm1hdCBvbgorLSAgZ19hc3NlcnRfdHJ1ZSAoc2ln bmFsZWQpOworLSAgZ19jbGVhcl9vYmplY3QgKCZ0KTsKKysvKiBUZXN0IHRoYXQgb2JqZWN0X25l dyBkb2VzIG5vdCB3b3JrIHdpdGhvdXQgYSB2ZXJzaW9uICovCisrc3RhdGljIHZvaWQKKyt0cmFu c2xhdGlvbl90ZXN0X2NvbnN0cnVjdF9ub192ZXJzaW9uICh2b2lkKQorK3sKKysgIGlmIChnX3Rl c3Rfc3VicHJvY2VzcyAoKSkKKysgICAgeworKyAgICAgIGdfYXV0b3B0ciAoTW9kdWxlbWRUcmFu c2xhdGlvbikgdCA9IE5VTEw7CisrICAgICAgLy8gY2xhbmctZm9ybWF0IG9mZgorKyAgICAgIHQg PSBnX29iamVjdF9uZXcgKE1PRFVMRU1EX1RZUEVfVFJBTlNMQVRJT04sCisrICAgICAgICAgICAg ICAgICAgICAgICAgIm1vZHVsZV9uYW1lIiwgInRlc3Rtb2QiLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICJtb2R1bGVfc3RyZWFtIiwgInRlc3RzdHIiLAorKyAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwpOworKyAgICAgIC8vIGNsYW5nLWZvcm1hdCBvbgorKyAgICAgIHJldHVybjsKKysg ICAgfQorKyAgZ190ZXN0X3RyYXBfc3VicHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NF U1NfREVGQVVMVCk7CisrICBnX3Rlc3RfdHJhcF9hc3NlcnRfZmFpbGVkICgpOworK30KKyAKKy0g IC8qIFRlc3QgdGhhdCBvYmplY3RfbmV3IGRvZXMgbm90IHdvcmsgd2l0aG91dCBhIG5hbWUgKi8K Ky0gIHNpZ25hbGVkID0gRkFMU0U7CistICBzaWduYWwgKFNJR1RSQVAsIHNpZ3RyYXBfaGFuZGxl cik7CistICAvLyBjbGFuZy1mb3JtYXQgb2ZmCistICB0ID0gZ19vYmplY3RfbmV3IChNT0RVTEVN RF9UWVBFX1RSQU5TTEFUSU9OLAorLSAgICAgICAgICAgICAgICAgICAgInZlcnNpb24iLCB0cmFu c2xhdGlvbl92ZXJzaW9uLAorLSAgICAgICAgICAgICAgICAgICAgIm1vZHVsZV9zdHJlYW0iLCAi dGVzdHN0ciIsIE5VTEwpOworLSAgLy8gY2xhbmctZm9ybWF0IG9uCistICBnX2Fzc2VydF90cnVl IChzaWduYWxlZCk7CistICBnX2NsZWFyX29iamVjdCAoJnQpOworKy8qIFRlc3QgdGhhdCBvYmpl Y3RfbmV3IGRvZXMgbm90IHdvcmsgd2l0aG91dCBhIG5hbWUgKi8KKytzdGF0aWMgdm9pZAorK3Ry YW5zbGF0aW9uX3Rlc3RfY29uc3RydWN0X25vX25hbWUgKHZvaWQpCisreworKyAgaWYgKGdfdGVz dF9zdWJwcm9jZXNzICgpKQorKyAgICB7CisrICAgICAgZ3VpbnQ2NCB0cmFuc2xhdGlvbl92ZXJz aW9uID0gMTsKKysgICAgICBnX2F1dG9wdHIgKE1vZHVsZW1kVHJhbnNsYXRpb24pIHQgPSBOVUxM OworKyAgICAgIC8vIGNsYW5nLWZvcm1hdCBvZmYKKysgICAgICB0ID0gZ19vYmplY3RfbmV3IChN T0RVTEVNRF9UWVBFX1RSQU5TTEFUSU9OLAorKyAgICAgICAgICAgICAgICAgICAgICAgICJ2ZXJz aW9uIiwgdHJhbnNsYXRpb25fdmVyc2lvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAibW9k dWxlX3N0cmVhbSIsICJ0ZXN0c3RyIiwgTlVMTCk7CisrICAgICAgLy8gY2xhbmctZm9ybWF0IG9u CisrICAgICAgcmV0dXJuOworKyAgICB9CisrICBnX3Rlc3RfdHJhcF9zdWJwcm9jZXNzIChOVUxM LCAwLCBHX1RFU1RfU1VCUFJPQ0VTU19ERUZBVUxUKTsKKysgIGdfdGVzdF90cmFwX2Fzc2VydF9m YWlsZWQgKCk7CisrfQorIAorLSAgLyogVGVzdCB0aGF0IG9iamVjdF9uZXcgZG9lcyBub3Qgd29y ayB3aXRob3V0IGEgc3RyZWFtICovCistICBzaWduYWxlZCA9IEZBTFNFOworLSAgc2lnbmFsIChT SUdUUkFQLCBzaWd0cmFwX2hhbmRsZXIpOworLSAgLy8gY2xhbmctZm9ybWF0IG9mZgorLSAgdCA9 IGdfb2JqZWN0X25ldyAoTU9EVUxFTURfVFlQRV9UUkFOU0xBVElPTiwKKy0gICAgICAgICAgICAg ICAgICAgICJ2ZXJzaW9uIiwgdHJhbnNsYXRpb25fdmVyc2lvbiwKKy0gICAgICAgICAgICAgICAg ICAgICJtb2R1bGVfbmFtZSIsICJ0ZXN0bW9kIiwKKy0gICAgICAgICAgICAgICAgICAgIE5VTEwp OworLSAgLy8gY2xhbmctZm9ybWF0IG9uCistICBnX2Fzc2VydF90cnVlIChzaWduYWxlZCk7Cist ICBnX2NsZWFyX29iamVjdCAoJnQpOworKy8qIFRlc3QgdGhhdCBvYmplY3RfbmV3IGRvZXMgbm90 IHdvcmsgd2l0aG91dCBhIHN0cmVhbSAqLworK3N0YXRpYyB2b2lkCisrdHJhbnNsYXRpb25fdGVz dF9jb25zdHJ1Y3Rfbm9fc3RyZWFtICh2b2lkKQorK3sKKysgIGlmIChnX3Rlc3Rfc3VicHJvY2Vz cyAoKSkKKysgICAgeworKyAgICAgIGd1aW50NjQgdHJhbnNsYXRpb25fdmVyc2lvbiA9IDE7Cisr ICAgICAgZ19hdXRvcHRyIChNb2R1bGVtZFRyYW5zbGF0aW9uKSB0ID0gTlVMTDsKKysgICAgICAv LyBjbGFuZy1mb3JtYXQgb2ZmCisrICAgICAgdCA9IGdfb2JqZWN0X25ldyAoTU9EVUxFTURfVFlQ RV9UUkFOU0xBVElPTiwKKysgICAgICAgICAgICAgICAgICAgICAgICAidmVyc2lvbiIsIHRyYW5z bGF0aW9uX3ZlcnNpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAgIm1vZHVsZV9uYW1lIiwg InRlc3Rtb2QiLAorKyAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworKyAgICAgIC8vIGNs YW5nLWZvcm1hdCBvbgorKyAgICAgIHJldHVybjsKKysgICAgfQorKyAgZ190ZXN0X3RyYXBfc3Vi cHJvY2VzcyAoTlVMTCwgMCwgR19URVNUX1NVQlBST0NFU1NfREVGQVVMVCk7CisrICBnX3Rlc3Rf dHJhcF9hc3NlcnRfZmFpbGVkICgpOworIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTQxNiw4ICs0 MzAsMTQgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKKyAKKyAgIC8vIERlZmluZSB0 aGUgdGVzdHMuCisgCistICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvdHJhbnNsYXRp b24vY29uc3RydWN0IiwKKy0gICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25fdGVzdF9jb25z dHJ1Y3QpOworKyAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3RyYW5zbGF0aW9uL2Nv bnN0cnVjdC9yZWd1bGFyIiwKKysgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25fdGVzdF9j b25zdHJ1Y3RfcmVndWxhcik7CisrICBnX3Rlc3RfYWRkX2Z1bmMgKCIvbW9kdWxlbWQvdjIvdHJh bnNsYXRpb24vY29uc3RydWN0L25vX3ZlcnNpb24iLAorKyAgICAgICAgICAgICAgICAgICB0cmFu c2xhdGlvbl90ZXN0X2NvbnN0cnVjdF9ub192ZXJzaW9uKTsKKysgIGdfdGVzdF9hZGRfZnVuYyAo Ii9tb2R1bGVtZC92Mi90cmFuc2xhdGlvbi9jb25zdHJ1Y3Qvbm9fbmFtZSIsCisrICAgICAgICAg ICAgICAgICAgIHRyYW5zbGF0aW9uX3Rlc3RfY29uc3RydWN0X25vX25hbWUpOworKyAgZ190ZXN0 X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3RyYW5zbGF0aW9uL2NvbnN0cnVjdC9ub19zdHJlYW0i LAorKyAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbl90ZXN0X2NvbnN0cnVjdF9ub19zdHJl YW0pOworIAorICAgZ190ZXN0X2FkZF9mdW5jICgiL21vZHVsZW1kL3YyL3RyYW5zbGF0aW9uL2Nv cHkiLCB0cmFuc2xhdGlvbl90ZXN0X2NvcHkpOworIAorLS0gCisyLjUyLjAKKwo=