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: Sergio Durigan Junior To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Rebase to FSF GDB 8.1.90.20180714 (8.2pre). Date: Thu, 23 Jul 2026 18:33:30 GMT Message-ID: <178483161047.1.8393405713819509686.rpms-gdb-2cbda85f1ce9@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 2cbda85f1ce90ca3d8c1db5743f544e4fc9ebdd6 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogMmNiZGE4NWYxY2U5MGNhM2Q4YzFkYjU3NDNmNTQ0ZTRmYzllYmRkNgog ICAgICAgICAgICBBdXRob3IgOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJlZGhh dC5jb20+CiAgICAgICAgICAgIERhdGUgICA6IDIwMTgtMDctMTVUMTI6Mjc6MjEtMDQ6MDAKICAg ICAgICAgICAgU3RhdHMgIDogKzIwNDkvLTggaW4gMTAgZmlsZShzKQogICAgICAgICAgICBVUkwg ICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dkYi9jLzJjYmRhODVmMWNl OTBjYTNkOGMxZGI1NzQzZjU0NGU0ZmM5ZWJkZDY/YnJhbmNoPWZpeC1kdXAtcGF0Y2gKCiAgICAg ICAgICAgIExvZzoKICAgICAgICAgICAgUmViYXNlIHRvIEZTRiBHREIgOC4xLjkwLjIwMTgwNzE0 ICg4LjJwcmUpLgpCYWNrcG9ydCBJUHY2IHBhdGNoIChSSCBCWiA4ODE4NDksIFNlcmdpbyBEdXJp Z2FuIEp1bmlvcikuCgotLS0KZGlmZiAtLWdpdCBhL19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlIGIv X2dkYi5zcGVjLlBhdGNoLmluY2x1ZGUKaW5kZXggZWRjZTU3MC4uOGJhMGU0OCAxMDA2NDQKLS0t IGEvX2dkYi5zcGVjLlBhdGNoLmluY2x1ZGUKKysrIGIvX2dkYi5zcGVjLlBhdGNoLmluY2x1ZGUK QEAgLTUwNCwzICs1MDQsOSBAQCBQYXRjaDEyMDogZ2RiLXZsYS1pbnRlbC1maXgtcHJpbnQtY2hh ci1hcnJheS5wYXRjaAogIyA9ZmVkb3JhdGVzdAogUGF0Y2gxMjE6IGdkYi1yaGJ6MTU1MzEwNC1z MzkweC1hcmNoMTItdGVzdC5wYXRjaAogCisjIEltcGxlbWVudCBJUHY2IHN1cHBvcnQgZm9yIEdE Qi9nZGJzZXJ2ZXIgKFJIIEJaIDg4MTg0OSwgU2VyZ2lvIER1cmlnYW4gSnVuaW9yKS4KK1BhdGNo MTIyOiBnZGItcmhiejg4MTg0OS1pcHY2LTFvZjIucGF0Y2gKKworIyBJbXBsZW1lbnQgSVB2NiBz dXBwb3J0IGZvciBHREIvZ2Ric2VydmVyIChSSCBCWiA4ODE4NDksIFNlcmdpbyBEdXJpZ2FuIEp1 bmlvcikuCitQYXRjaDEyMzogZ2RiLXJoYno4ODE4NDktaXB2Ni0yb2YyLnBhdGNoCisKCmRpZmYg LS1naXQgYS9fZ2RiLnNwZWMucGF0Y2guaW5jbHVkZSBiL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRl CmluZGV4IGE2NjNlZGIuLjI3YTM5YjcgMTAwNjQ0Ci0tLSBhL19nZGIuc3BlYy5wYXRjaC5pbmNs dWRlCisrKyBiL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlCkBAIC0xMTksMyArMTE5LDUgQEAKICVw YXRjaDExOSAtcDEKICVwYXRjaDEyMCAtcDEKICVwYXRjaDEyMSAtcDEKKyVwYXRjaDEyMiAtcDEK KyVwYXRjaDEyMyAtcDEKCmRpZmYgLS1naXQgYS9fZ2l0X3Vwc3RyZWFtX2NvbW1pdCBiL19naXRf dXBzdHJlYW1fY29tbWl0CmluZGV4IGQ4OTBmN2IuLjZlZGRmZDIgMTAwNjQ0Ci0tLSBhL19naXRf dXBzdHJlYW1fY29tbWl0CisrKyBiL19naXRfdXBzdHJlYW1fY29tbWl0CkBAIC0xICsxIEBACi0w YmFkMTY2YjkyMDI1NDk3NGFkMmUzNWYwODdlMTRhYTkxM2FmZTQ0CitiYWE5OGNiN2U2Mjk4Y2Q3 NGFkOTYzOGU1YjAyYWExOTJmODA0NjU5CgpkaWZmIC0tZ2l0IGEvX3BhdGNoX29yZGVyIGIvX3Bh dGNoX29yZGVyCmluZGV4IDFiM2E1ZmUuLjExYjQxMzEgMTAwNjQ0Ci0tLSBhL19wYXRjaF9vcmRl cgorKysgYi9fcGF0Y2hfb3JkZXIKQEAgLTExOSwzICsxMTksNSBAQCBnZGItdGVzdHN1aXRlLXJl YWRsaW5lNjMtc2lnaW50LnBhdGNoCiBnZGItYXJjaGVyLnBhdGNoCiBnZGItdmxhLWludGVsLWZp eC1wcmludC1jaGFyLWFycmF5LnBhdGNoCiBnZGItcmhiejE1NTMxMDQtczM5MHgtYXJjaDEyLXRl c3QucGF0Y2gKK2dkYi1yaGJ6ODgxODQ5LWlwdjYtMW9mMi5wYXRjaAorZ2RiLXJoYno4ODE4NDkt aXB2Ni0yb2YyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvZ2RiLWNvbnRhaW5lci1yaC1wa2cucGF0Y2gg Yi9nZGItY29udGFpbmVyLXJoLXBrZy5wYXRjaAppbmRleCBhNThhZjIzLi4yZGVmYzhkIDEwMDY0 NAotLS0gYS9nZGItY29udGFpbmVyLXJoLXBrZy5wYXRjaAorKysgYi9nZGItY29udGFpbmVyLXJo LXBrZy5wYXRjaApAQCAtOSw3ICs5LDcgQEAgU3ViamVjdDogZ2RiLWNvbnRhaW5lci1yaC1wa2cu cGF0Y2gKIGRpZmYgLS1naXQgYS9nZGIvcmVtb3RlLmMgYi9nZGIvcmVtb3RlLmMKIC0tLSBhL2dk Yi9yZW1vdGUuYwogKysrIGIvZ2RiL3JlbW90ZS5jCi1AQCAtMTM5MDEsNyArMTM5MDEsMTcgQEAg cmVtb3RlX3RhcmdldDo6cGlkX3RvX2V4ZWNfZmlsZSAoaW50IHBpZCkKK0BAIC0xMzkwOSw3ICsx MzkwOSwxNyBAQCByZW1vdGVfdGFyZ2V0OjpwaWRfdG9fZXhlY19maWxlIChpbnQgcGlkKQogICAg Y2hhciAqYW5uZXggPSBOVUxMOwogIAogICAgaWYgKHBhY2tldF9zdXBwb3J0IChQQUNLRVRfcVhm ZXJfZXhlY19maWxlKSAhPSBQQUNLRVRfRU5BQkxFKQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1 NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBh dGNoCmluZGV4IGUzZDQ3MTMuLjZlYmRhNTIgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJp dHBvcy0yMG9mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRj aApAQCAtMjc1OCw3ICsyNzU4LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9yZW1vdGUuYyBiL2dkYi9y ZW1vdGUuYwogIAogICAgaW50IGluc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIsIGludCwgZW51 bSB0YXJnZXRfaHdfYnBfdHlwZSwKICAJCQkgc3RydWN0IGV4cHJlc3Npb24gKikgb3ZlcnJpZGU7 Ci1AQCAtMTA0MDUsNyArMTA0MDUsNyBAQCBpbnQgcmVtb3RlX2h3X3dhdGNocG9pbnRfbGVuZ3Ro X2xpbWl0ID0gLTE7CitAQCAtMTA0MTMsNyArMTA0MTMsNyBAQCBpbnQgcmVtb3RlX2h3X3dhdGNo cG9pbnRfbGVuZ3RoX2xpbWl0ID0gLTE7CiAgaW50IHJlbW90ZV9od19icmVha3BvaW50X2xpbWl0 ID0gLTE7CiAgCiAgaW50CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIyb2Yy NS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMm9mMjUucGF0Y2gKaW5kZXggZWI4MWEx Ny4uODA3MmY3NyAxMDA2NDQKLS0tIGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIyb2YyNS5wYXRj aAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjJvZjI1LnBhdGNoCkBAIC0zODQsNyArMzg0 LDcgQEAgZGlmZiAtLWdpdCBhL2dkYi9yZW1vdGUuYyBiL2dkYi9yZW1vdGUuYwogIAogICAgaW50 IGNhbl91c2VfaHdfYnJlYWtwb2ludCAoZW51bSBicHR5cGUsIGludCwgaW50KSBvdmVycmlkZTsK ICAKLUBAIC0xMDMzNCw3ICsxMDMzNCw3IEBAIHJlbW90ZV90YXJnZXQ6Omluc2VydF93YXRjaHBv aW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwKK0BAIC0xMDM0Miw3ICsxMDM0Miw3IEBAIHJl bW90ZV90YXJnZXQ6Omluc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwK ICAgIHAgPSBzdHJjaHIgKHJzLT5idWYsICdcMCcpOwogICAgYWRkciA9IHJlbW90ZV9hZGRyZXNz X21hc2tlZCAoYWRkcik7CiAgICBwICs9IGhleG51bXN0ciAocCwgKFVMT05HRVNUKSBhZGRyKTsK QEAgLTM5Myw3ICszOTMsNyBAQCBkaWZmIC0tZ2l0IGEvZ2RiL3JlbW90ZS5jIGIvZ2RiL3JlbW90 ZS5jCiAgCiAgICBwdXRwa3QgKHJzLT5idWYpOwogICAgZ2V0cGt0ICgmcnMtPmJ1ZiwgJnJzLT5i dWZfc2l6ZSwgMCk7Ci1AQCAtMTAzNTQsNyArMTAzNTQsNyBAQCByZW1vdGVfdGFyZ2V0OjppbnNl cnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sCitAQCAtMTAzNjIsNyArMTAz NjIsNyBAQCByZW1vdGVfdGFyZ2V0OjppbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIs IGludCBsZW4sCiAgCiAgYm9vbAogIHJlbW90ZV90YXJnZXQ6OndhdGNocG9pbnRfYWRkcl93aXRo aW5fcmFuZ2UgKENPUkVfQUREUiBhZGRyLApAQCAtNDAyLDcgKzQwMiw3IEBAIGRpZmYgLS1naXQg YS9nZGIvcmVtb3RlLmMgYi9nZGIvcmVtb3RlLmMKICB7CiAgICBDT1JFX0FERFIgZGlmZiA9IHJl bW90ZV9hZGRyZXNzX21hc2tlZCAoYWRkciAtIHN0YXJ0KTsKICAKLUBAIC0xMDM4Myw3ICsxMDM4 Myw3IEBAIHJlbW90ZV90YXJnZXQ6OnJlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwg aW50IGxlbiwKK0BAIC0xMDM5MSw3ICsxMDM5MSw3IEBAIHJlbW90ZV90YXJnZXQ6OnJlbW92ZV93 YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwKICAgIHAgPSBzdHJjaHIgKHJzLT5i dWYsICdcMCcpOwogICAgYWRkciA9IHJlbW90ZV9hZGRyZXNzX21hc2tlZCAoYWRkcik7CiAgICBw ICs9IGhleG51bXN0ciAocCwgKFVMT05HRVNUKSBhZGRyKTsKCmRpZmYgLS1naXQgYS9nZGItcmhi ejg4MTg0OS1pcHY2LTFvZjIucGF0Y2ggYi9nZGItcmhiejg4MTg0OS1pcHY2LTFvZjIucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzI3NDVjOQotLS0gL2Rldi9udWxs CisrKyBiL2dkYi1yaGJ6ODgxODQ5LWlwdjYtMW9mMi5wYXRjaApAQCAtMCwwICsxLDE5NjQgQEAK K0Zyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTZXJn aW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJlZGhhdC5jb20+CitEYXRlOiBGcmksIDE4IE1h eSAyMDE4IDAxOjI5OjI0IC0wNDAwCitTdWJqZWN0OiBnZGItcmhiejg4MTg0OS1pcHY2LTFvZjIu cGF0Y2gKKworOzsgSW1wbGVtZW50IElQdjYgc3VwcG9ydCBmb3IgR0RCL2dkYnNlcnZlciAoUkgg QlogODgxODQ5LCBTZXJnaW8gRHVyaWdhbiBKdW5pb3IpLgorCitJbXBsZW1lbnQgSVB2NiBzdXBw b3J0IGZvciBHREIvZ2Ric2VydmVyCisKK1RoaXMgcGF0Y2ggaW1wbGVtZW50cyBJUHY2IHN1cHBv cnQgZm9yIGJvdGggR0RCIGFuZCBnZGJzZXJ2ZXIuICBCYXNlZAorb24gbXkgcmVzZWFyY2gsIGl0 IGlzIHRoZSBmb3VydGggYXR0ZW1wdCB0byBkbyB0aGF0IHNpbmNlIDIwMDYuICBTaW5jZQorSSB1 c2VkIGlkZWFzIGZyb20gYWxsIG9mIHRoZSBwcmV2aW91cyBwYXRjaGVzLCBJIGFsc28gYWRkZWQg dGhlaXIKK2F1dGhvcnMncyBuYW1lcyBvbiB0aGUgQ2hhbmdlTG9ncyBhcyBhIHdheSB0byByZWNv Z25pemUgdGhlaXIKK2VmZm9ydHMuICBGb3IgcmVmZXJlbmNlIHNha2UsIHlvdSBjYW4gZmluZCB0 aGUgcHJldmlvdXMgYXR0ZW1wdHMgYXQ6CisKKyAgaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9n ZGItcGF0Y2hlcy8yMDA2LTA5L21zZzAwMTkyLmh0bWwKKworICBodHRwczovL3NvdXJjZXdhcmUu b3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMDIvbXNnMDAyNDguaHRtbAorCisgIGh0dHBzOi8vc291 cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wMi9tc2cwMDIyNi5odG1sCisKK1RoZSBi YXNpYyBpZGVhIGJlaGluZCB0aGUgcGF0Y2ggaXMgdG8gc3RhcnQgdXNpbmcgdGhlIG5ldworJ2dl dGFkZHJpbmZvJy8nZ2V0bmFtZWluZm8nIGNhbGxzLCB3aGljaCBhcmUgcmVzcG9uc2libGUgZm9y Cit0cmFuc2xhdGluZyBuYW1lcyBhbmQgYWRkcmVzc2VzIGluIGEgcHJvdG9jb2wtaW5kZXBlbmRl bnQgd2F5LiAgVGhpcworbWVhbnMgdGhhdCBpZiB3ZSBldmVyIGhhdmUgYSBuZXcgdmVyc2lvbiBv ZiB0aGUgSVAgcHJvdG9jb2wsIHdlIHdvbid0CituZWVkIHRvIGNoYW5nZSB0aGUgY29kZSBhZ2Fp biAob3IsIGF0IGxlYXN0LCB3b24ndCBoYXZlIHRvIGNoYW5nZSB0aGUKK21ham9yaXR5IG9mIHRo ZSBjb2RlKS4KKworVGhlIGZ1bmN0aW9uICdnZXRhZGRyaW5mbycgcmV0dXJucyBhIGxpbmtlZCBs aXN0IG9mIHBvc3NpYmxlIGFkZHJlc3NlcwordG8gY29ubmVjdCB0by4gIERlYWxpbmcgd2l0aCBt dWx0aXBsZSBhZGRyZXNzZXMgcHJvdmVkIHRvIGJlIGEgaGFyZAordGFzayB3aXRoIHRoZSBjdXJy ZW50IFRDUCBhdXRvLXJldHJ5IG1lY2hhbmlzbSBpbXBsZW1lbnRlZCBvbgorc2VyLXRjcDpuZXRf b3Blbi4gIEZvciBleGFtcGxlLCB3aGVuIGdkYnNlcnZlciBsaXN0ZW5lZCBvbmx5IG9uIGFuCitJ UHY0IHNvY2tldDoKKworICAkIC4vZ2Ric2VydmVyIC0tb25jZSAxMjcuMC4wLjE6MTIzNCAuL2Eu b3V0CisKK2FuZCBHREIgd2FzIGluc3RydWN0ZWQgdG8gdHJ5IHRvIGNvbm5lY3QgdG8gYm90aCBJ UHY2IGFuZCBJUHY0Citzb2NrZXRzOgorCisgICQgLi9nZGIgLWV4ICd0YXJnZXQgZXh0ZW5kZWQt cmVtb3RlIGxvY2FsaG9zdDoxMjM0JyAuL2Eub3V0CisKK3RoZSB1c2VyIHdvdWxkIG5vdGljZSBh IHNvbWV3aGF0IGJpZyBkZWxheSBiZWZvcmUgR0RCIHdhcyBhYmxlIHRvCitjb25uZWN0IHRvIHRo ZSBJUHY0IHNvY2tldC4gIFRoaXMgaGFwcGVuZWQgYmVjYXVzZSBHREIgd2FzIHRyeWluZyB0bwor Y29ubmVjdCB0byB0aGUgSVB2NiBzb2NrZXQgZmlyc3QsIGFuZCBoYWQgdG8gd2FpdCB1bnRpbCB0 aGUgY29ubmVjdGlvbgordGltZWQgb3V0IGJlZm9yZSBpdCB0cmllZCB0byBjb25uZWN0IHRvIHRo ZSBJUHY0IHNvY2tldC4KKworRm9yIHRoYXQgcmVhc29uLCBJIGhhZCB0byByZXdyaXRlIHRoZSBt YWluIGxvb3AgYW5kIGltcGxlbWVudCBhIG5ldworbWV0aG9kIGZvciBoYW5kbGluZyBtdWx0aXBs ZSBjb25uZWN0aW9ucy4gIEFmdGVyIHNvbWUgZGlzY3Vzc2lvbiwKK1BlZHJvIGFuZCBJIGFncmVl ZCBvbiB0aGUgZm9sbG93aW5nIGFsZ29yaXRobToKKworICAxKSBGb3IgZWFjaCBlbnRyeSByZXR1 cm5lZCBieSAnZ2V0YWRkcmluZm8nLCB3ZSB0cnkgdG8gb3BlbiBhIHNvY2tldAorICBhbmQgY29u bmVjdCB0byBpdC4KKworICAyLmEpIElmIHdlIGhhdmUgYSBzdWNjZXNzZnVsICdjb25uZWN0Jywg d2UganVzdCB1c2UgdGhhdCBjb25uZWN0aW9uLgorCisgIDIuYikgSWYgd2UgZG9uJ3QgaGF2ZSBh IHN1Y2Nlc3NmdWxsICdjb25uZWN0JywgYnV0IGlmIHdlJ3ZlIGdvdCBhCisgIEVDT05OUkVGVVNF RCAobWVhbmluZyB0aGUgdGhlIGNvbm5lY3Rpb24gd2FzIHJlZnVzZWQpLCB3ZSBrZWVwIHRyYWNr CisgIG9mIHRoaXMgZmFjdCBieSB1c2luZyBhIGZsYWcuCisKKyAgMi5jKSBJZiB3ZSBkb24ndCBo YXZlIGEgc3VjY2Vzc2Z1bGwgJ2Nvbm5lY3QnLCBidXQgaWYgd2UndmUgZ290IGEKKyAgRUlOUFJP R1JFU1MgKG1lYW5pbmcgdGhhdCB0aGUgY29ubmVjdGlvbiBpcyBpbiBwcm9ncmVzcyksIHdlIHBl cmZvcm0KKyAgYSAnc2VsZWN0JyBjYWxsIG9uIHRoZSBzb2NrZXQgdW50aWwgd2UgaGF2ZSBhIHJl c3VsdCAoZWl0aGVyIGEKKyAgc3VjY2Vzc2Z1bCBjb25uZWN0aW9uLCBvciBhbiBlcnJvciBvbiB0 aGUgc29ja2V0KS4KKworICAzKSBJZiB0Y3BfYXV0b19yZXRyeSBpcyB0cnVlLCBhbmQgd2UgaGF2 ZW4ndCBnb3R0ZW4gYSBzdWNjZXNzZnVsCisgIGNvbm5lY3Rpb24sIGFuZCBhdCBsZWFzdCBvbmUg b2Ygb3VyIGF0dGVtcHRzIGZhaWxlZCB3aXRoCisgIEVDT05OUkVGVVNFRCwgdGhlbiB3ZSB3YWl0 IGEgbGl0dGxlIGJpdCAoaS5lLiwgY2FsbAorICAnd2FpdF9mb3JfY29ubmVjdCcpLCBjaGVjayB0 byBzZWUgaWYgdGhlcmUgd2FzIGEKKyAgdGltZW91dC9pbnRlcnJ1cHRpb24gKGluIHdoaWNoIGNh c2Ugd2UgYmFpbCBvdXQpLCBhbmQgdGhlbiBnbyBiYWNrCisgIHRvICgxKS4KKworQWZ0ZXIgbXVs dGlwbGUgdGVzdHMsIEkgd2FzIGFibGUgdG8gY29ubmVjdCB3aXRob3V0IGRlbGF5IG9uIHRoZQor c2NlbmFyaW8gZGVzY3JpYmVkIGFib3ZlLCBhbmQgd2FzIGFsc28gYWJsZSB0byBjb25uZWN0IGlu IGFsbCBvdGhlcgordHlwZXMgb2Ygc2NlbmFyaW9zLgorCitJIGFsc28gaW1wbGVtZW50ZWQgc29t ZSBob3N0bmFtZSBwYXJzaW5nIGZ1bmN0aW9ucyAoYWxvbmcgd2l0aCB0aGVpcgorY29ycmVzcG9u ZGluZyB1bml0IHRlc3RzKSB3aGljaCBhcmUgdXNlZCB0byBoZWxwIEdEQiBhbmQgZ2Ric2VydmVy IHRvCitwYXJzZSBob3N0bmFtZSBzdHJpbmdzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiAgVGhlc2Ug bmV3IGZ1bmN0aW9ucyBhcmUKK2xpdmluZyBpbnNpZGUgY29tbW9uL25ldHN0dWZmLltjaF0uICBJ J3ZlIGhhZCB0byBkbyB0aGF0IHNpbmNlIElQdjYKK2ludHJvZHVjZXMgYSBuZXcgVVJMIHNjaGVt ZSwgd2hpY2ggZGVmaW5lcyB0aGF0IHNxdWFyZSBicmFja2V0cyBjYW4gYmUKK3VzZWQgdG8gZW5j bG9zZSB0aGUgaG9zdCBwYXJ0IGFuZCBkaWZmZXJlbnRpYXRlIGl0IGZyb20gdGhlCitwb3J0IChl LmcuLCAiWzo6MV06MTIzNCIgbWVhbnMgImhvc3QgOjoxLCBwb3J0IDEyMzQiKS4gIEkgc3BlbnQg c29tZQordGltZSB0aGlua2luZyBhYm91dCBhIHJlYXNvbmFibGUgd2F5IHRvIGludGVycHJldCB3 aGF0IHRoZSB1c2VyIHdhbnRzLAorYW5kIEkgY2FtZSB1cCB3aXRoIHRoZSBmb2xsb3dpbmc6CisK KyAgLSBJZiB0aGUgdXNlciBoYXMgcHJvdmlkZWQgYSBwcmVmaXggdGhhdCBkb2Vzbid0IHNwZWNp ZnkgdGhlIHByb3RvY29sCisgICAgdmVyc2lvbiAoaS5lLiwgInRjcDoiIG9yICJ1ZHA6IiksIG9y IGlmIHRoZSB1c2VyIGhhcyBub3QgcHJvdmlkZWQKKyAgICBhbnkgcHJlZml4LCBkb24ndCBtYWtl IGFueSBhc3N1bXB0aW9ucyAoaS5lLiwgYXNzdW1lIEFGX1VOU1BFQyB3aGVuCisgICAgZGVhbGlu ZyB3aXRoICdnZXRhZGRyaW5mbycpICp1bmxlc3MqIHRoZSBob3N0IHN0YXJ0cyB3aXRoICJbIiAo aW4KKyAgICB3aGljaCBjYXNlLCBhc3N1bWUgaXQncyBhbiBJUHY2IGhvc3QpLgorCisgIC0gSWYg dGhlIHVzZXIgaGFzIHByb3ZpZGVkIGEgcHJlZml4IHRoYXQgZG9lcyBzcGVjaWZ5IHRoZSBwcm90 b2NvbAorICAgIHZlcnNpb24gKGkuZS4sICJ0Y3A0OiIsICJ0Y3A2OiIsICJ1ZHA0OiIgb3IgInVk cDY6IiksIHRoZW4gcmVzcGVjdAorICAgIHRoYXQuCisKK1RoaXMgbWV0aG9kIGRvZXNuJ3QgZm9s bG93IHN0cmljdGx5IHdoYXQgUkZDIDI3MzIgcHJvcG9zZXMgKHRoYXQKK2xpdGVyYWwgSVB2NiBh ZGRyZXNzZXMgc2hvdWxkIGJlIHByb3ZpZGVkIGVuY2xvc2VkIGluICJbIiBhbmQgIl0iKQorYmVj YXVzZSBJUHY2IGFkZHJlc3NlcyBzdGlsbCBjYW4gYmUgcHJvdmlkZWQgd2l0aG91dCBzcXVhcmUg YnJhY2tldHMKK2luIG91ciBjYXNlLCBidXQgc2luY2Ugd2UgaGF2ZSBwcmVmaXhlcyB0byBzcGVj aWZ5IHByb3RvY29sIHZlcnNpb25zIEkKK3RoaW5rIHRoaXMgaXMgbm90IGFuIGlzc3VlLgorCitB bm90aGVyIHRoaW5nIHdvcnRoIG1lbnRpb25pbmcgaXMgdGhlIG5ldyAnR0RCX1RFU1RfU09DS0VU SE9TVCcKK3Rlc3RjYXNlIHBhcmFtZXRlciwgd2hpY2ggbWFrZXMgaXQgcG9zc2libGUgdG8gc3Bl Y2lmeSB0aGUKK2hvc3RuYW1lICh3aXRob3V0IHRoZSBwb3J0KSB0byBiZSB1c2VkIHdoZW4gdGVz dGluZyBHREIgYW5kCitnZGJzZXJ2ZXIuICBGb3IgZXhhbXBsZSwgdG8gcnVuIElQdjYgdGVzdHM6 CisKKyAgJCBtYWtlIGNoZWNrLWdkYiBSVU5URVNURkxBR1M9J0dEQl9URVNUX1NPQ0tFVEhPU1Q9 dGNwNjpbOjoxXScKKworT3IsIHRvIHJ1biBJUHY0IHRlc3RzOgorCisgICQgbWFrZSBjaGVjay1n ZGIgUlVOVEVTVEZMQUdTPSdHREJfVEVTVF9TT0NLRVRIT1NUPXRjcDQ6MTI3LjAuMC4xJworCitU aGlzIHJlcXVpcmVkIGEgZmV3IGNoYW5nZXMgb24gdGhlIGdkYnNlcnZlci1iYXNlLmV4cCwgYW5k IGFsc28gYQorbWluaW1hbCBhZGp1c3RtZW50IG9uIGdkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9j YWwtYmluYXJ5LmV4cC4KKworRmluYWxseSwgSSd2ZSBpbXBsZW1lbnRlZCBhIG5ldyB0ZXN0Y2Fz ZSwKK2dkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwLCB3aGljaCBpcyBzdXBwb3NlZCB0byBy dW4gb24gdGhlIG5hdGl2ZQoraG9zdCBhbmQgcGVyZm9ybSB2YXJpb3VzICJzbW9rZSB0ZXN0cyIg dXNpbmcgZGlmZmVyZW50IGNvbm5lY3Rpb24KK21ldGhvZHMuCisKK1RoaXMgcGF0Y2ggaGFzIGJl ZW4gcmVncmVzc2lvbi10ZXN0ZWQgb24gQnVpbGRCb3QgYW5kIGxvY2FsbHksIGFuZAorYWxzbyBi dWlsdCB1c2luZyBhIHg4Nl82NC13NjQtbWluZ3czMiBHQ0MsIGFuZCBubyBwcm9ibGVtcyB3ZXJl IGZvdW5kLgorCitnZGIvQ2hhbmdlTG9nOgorMjAxOC0wNy0xMSAgU2VyZ2lvIER1cmlnYW4gSnVu aW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KKwkgICAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3Jh dG9jaHZpbEByZWRoYXQuY29tPgorCSAgICBQYXVsIEZlcnRzZXIgIDxmZXJjZXJwYXZAZ21haWwu Y29tPgorCSAgICBUc3V0b211IFNla2kgIDxzZWtpcmlraUBnbWFpbC5jb20+CisJICAgIFBlZHJv IEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+CisKKwkqIE1ha2VmaWxlLmluIChTVUJESVJfVU5J VFRFU1RTX1NSQ1MpOiBBZGQKKwkndW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxm dGVzdHMuYycuCisJKENPTU1PTl9TRklMRVMpOiBBZGQgJ2NvbW1vbi9uZXRzdHVmZi5jJy4KKwko SEZJTEVTX05PX1NSQ0RJUik6IEFkZCAnY29tbW9uL25ldHN0dWZmLmgnLgorCSogTkVXUyAoQ2hh bmdlcyBzaW5jZSBHREIgOC4yKTogTWVudGlvbiBJUHY2IHN1cHBvcnQuCisJKiBjb21tb24vbmV0 c3R1ZmYuYzogTmV3IGZpbGUuCisJKiBjb21tb24vbmV0c3R1ZmYuaDogTmV3IGZpbGUuCisJKiBz ZXItdGNwLmM6IEluY2x1ZGUgJ25ldHN0dWZmLmgnIGFuZCAnd3NwaWFwaS5oJy4KKwkod2FpdF9m b3JfY29ubmVjdCk6IFVwZGF0ZSBjb21tZW50LiAgTmV3IHBhcmFtZXRlcgorCSdnZGI6Om9wdGlv bmFsPGludD4gc29jaycgaW5zdGVhZCBvZiAnc3RydWN0IHNlcmlhbCAqc2NiJy4KKwlVc2UgJ3Nv Y2snIGRpcmVjdGx5IGluc3RlYWQgb2YgJ3NjYi0+ZmQnLgorCSh0cnlfY29ubmVjdCk6IE5ldyBm dW5jdGlvbiwgd2l0aCBjb2RlIGZyb20gJ25ldF9vcGVuJy4KKwkobmV0X29wZW4pOiBSZXdyaXRl IG1haW4gbG9vcCB0byBkZWFsIHdpdGggbXVsdGlwbGUKKwlzb2NrZXRzL2FkZHJlc3Nlcy4gIEhh bmRsZSBJUHY2LXN0eWxlIGhvc3RuYW1lczsgaW1wbGVtZW50CisJc3VwcG9ydCBmb3IgSVB2NiBj b25uZWN0aW9ucy4KKwkqIHVuaXR0ZXN0cy9wYXJzZS1jb25uZWN0aW9uLXNwZWMtc2VsZnRlc3Rz LmM6IE5ldyBmaWxlLgorCitnZGIvZ2Ric2VydmVyL0NoYW5nZUxvZzoKKzIwMTgtMDctMTEgIFNl cmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+CisJICAgIEphbiBLcmF0 b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKwkgICAgUGF1bCBGZXJ0c2VyICA8 ZmVyY2VycGF2QGdtYWlsLmNvbT4KKwkgICAgVHN1dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwu Y29tPgorCisJKiBNYWtlZmlsZS5pbiAoU0ZJTEVTKTogQWRkICckKHNyY2RpcikvY29tbW9uL25l dHN0dWZmLmMnLgorCShPQlMpOiBBZGQgJ2NvbW1vbi9uZXRzdHVmZi5vJy4KKwkoR0RCUkVQTEFZ X09CUyk6IExpa2V3aXNlLgorCSogZ2RicmVwbGF5LmM6IEluY2x1ZGUgJ3dzcGlhcGkuaCcgYW5k ICduZXRzdHVmZi5oJy4KKwkocmVtb3RlX29wZW4pOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgSVB2 NgorCWNvbm5lY3Rpb25zLgorCSogcmVtb3RlLXV0aWxzLmM6IEluY2x1ZGUgJ25ldHN0dWZmLmgn LCAnZmlsZXN0dWZmLmgnCisJYW5kICd3c3BpYXBpLmgnLgorCShoYW5kbGVfYWNjZXB0X2V2ZW50 KTogQWNjZXB0IGNvbm5lY3Rpb25zIGZyb20gSVB2NiBzb3VyY2VzLgorCShyZW1vdGVfcHJlcGFy ZSk6IEhhbmRsZSBJUHY2LXN0eWxlIGhvc3RuYW1lczsgaW1wbGVtZW50CisJc3VwcG9ydCBmb3Ig SVB2NiBjb25uZWN0aW9ucy4KKwkocmVtb3RlX29wZW4pOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3Ig cHJpbnRpbmcgY29ubmVjdGlvbnMgZnJvbQorCUlQdjYgc291cmNlcy4KKworZ2RiL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2c6CisyMDE4LTA3LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9k akByZWRoYXQuY29tPgorCSAgICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhh dC5jb20+CisJICAgIFBhdWwgRmVydHNlciAgPGZlcmNlcnBhdkBnbWFpbC5jb20+CisJICAgIFRz dXRvbXUgU2VraSAgPHNla2lyaWtpQGdtYWlsLmNvbT4KKworCSogUkVBRE1FIChUZXN0c3VpdGUg UGFyYW1ldGVycyk6IE1lbnRpb24gbmV3ICdHREJfVEVTVF9TT0NLRVRIT1NUJworCXBhcmFtZXRl ci4KKwkqIGJvYXJkcy9uYXRpdmUtZXh0ZW5kZWQtZ2Ric2VydmVyLmV4cDogRG8gbm90IHNldCAn c29ja2V0aG9zdCcKKwlieSBkZWZhdWx0LgorCSogYm9hcmRzL25hdGl2ZS1nZGJzZXJ2ZXIuZXhw OiBMaWtld2lzZS4KKwkqIGdkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cDog SW1wcm92ZSByZWdleHAgdXNlZAorCWZvciBkZXRlY3Rpbmcgd2hlbiBhIHJlbW90ZSBkZWJ1Z2dp bmcgY29ubmVjdGlvbiBzdWNjZWVkcy4KKwkqIGdkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhw OiBOZXcgZmlsZS4KKwkqIGxpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAgKGdkYnNlcnZlcl9kZWZh dWx0X2dldF9jb21tX3BvcnQpOgorCURvIG5vdCBwcmVmaXggdGhlIHBvcnQgbnVtYmVyIHdpdGgg IjoiLgorCShnZGJzZXJ2ZXJfc3RhcnQpOiBOZXcgZ2xvYmFsIEdEQl9URVNUX1NPQ0tFVEhPU1Qu ICBJbXBsZW1lbnQKKwlzdXBwb3J0IGZvciBkZXRlY3RpbmcgYW5kIHVzaW5nIGl0LiAgQWRkICck ZGVidWdob3N0X2dkYnNlcnZlcicKKwl0byB0aGUgbGlzdCBvZiBhcmd1bWVudHMgdXNlZCB0byBz dGFydCBnZGJzZXJ2ZXIuICBIYW5kbGUgY2FzZQorCXdoZW4gZ2Ric2VydmVyIGNhbm5vdCByZXNv bHZlIGEgbmV0d29yayBuYW1lLgorCitnZGIvZG9jL0NoYW5nZUxvZzoKKzIwMTgtMDctMTEgIFNl cmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+CisJICAgIEphbiBLcmF0 b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKwkgICAgUGF1bCBGZXJ0c2VyICA8 ZmVyY2VycGF2QGdtYWlsLmNvbT4KKwkgICAgVHN1dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwu Y29tPgorCisJKiBnZGIudGV4aW5mbyAoUmVtb3RlIENvbm5lY3Rpb24gQ29tbWFuZHMpOiBBZGQg ZXhwbGFuYXRpb24KKwlhYm91dCBuZXcgSVB2NiBzdXBwb3J0LiAgQWRkIG5ldyBjb25uZWN0aW9u IHByZWZpeGVzLgorCitkaWZmIC0tZ2l0IGEvZ2RiL0NoYW5nZUxvZyBiL2dkYi9DaGFuZ2VMb2cK Ky0tLSBhL2dkYi9DaGFuZ2VMb2cKKysrKyBiL2dkYi9DaGFuZ2VMb2cKK0BAIC0xLDMgKzEsMjYg QEAKKysyMDE4LTA3LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQu Y29tPgorKwkgICAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgor KwkgICAgUGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNvbT4KKysJICAgIFRzdXRvbXUg U2VraSAgPHNla2lyaWtpQGdtYWlsLmNvbT4KKysJICAgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJl ZGhhdC5jb20+CisrCisrCSogTWFrZWZpbGUuaW4gKFNVQkRJUl9VTklUVEVTVFNfU1JDUyk6IEFk ZAorKwkndW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxmdGVzdHMuYycuCisrCShD T01NT05fU0ZJTEVTKTogQWRkICdjb21tb24vbmV0c3R1ZmYuYycuCisrCShIRklMRVNfTk9fU1JD RElSKTogQWRkICdjb21tb24vbmV0c3R1ZmYuaCcuCisrCSogTkVXUyAoQ2hhbmdlcyBzaW5jZSBH REIgOC4yKTogTWVudGlvbiBJUHY2IHN1cHBvcnQuCisrCSogY29tbW9uL25ldHN0dWZmLmM6IE5l dyBmaWxlLgorKwkqIGNvbW1vbi9uZXRzdHVmZi5oOiBOZXcgZmlsZS4KKysJKiBzZXItdGNwLmM6 IEluY2x1ZGUgJ25ldHN0dWZmLmgnIGFuZCAnd3NwaWFwaS5oJy4KKysJKHdhaXRfZm9yX2Nvbm5l Y3QpOiBVcGRhdGUgY29tbWVudC4gIE5ldyBwYXJhbWV0ZXIKKysJJ2dkYjo6b3B0aW9uYWw8aW50 PiBzb2NrJyBpbnN0ZWFkIG9mICdzdHJ1Y3Qgc2VyaWFsICpzY2InLgorKwlVc2UgJ3NvY2snIGRp cmVjdGx5IGluc3RlYWQgb2YgJ3NjYi0+ZmQnLgorKwkodHJ5X2Nvbm5lY3QpOiBOZXcgZnVuY3Rp b24sIHdpdGggY29kZSBmcm9tICduZXRfb3BlbicuCisrCShuZXRfb3Blbik6IFJld3JpdGUgbWFp biBsb29wIHRvIGRlYWwgd2l0aCBtdWx0aXBsZQorKwlzb2NrZXRzL2FkZHJlc3Nlcy4gIEhhbmRs ZSBJUHY2LXN0eWxlIGhvc3RuYW1lczsgaW1wbGVtZW50CisrCXN1cHBvcnQgZm9yIElQdjYgY29u bmVjdGlvbnMuCisrCSogdW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxmdGVzdHMu YzogTmV3IGZpbGUuCisrCisgMjAxOC0wNy0xMSAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0 LmNvbT4KKyAKKyAJUFIgZ2RiLzIzMzc3CitkaWZmIC0tZ2l0IGEvZ2RiL01ha2VmaWxlLmluIGIv Z2RiL01ha2VmaWxlLmluCistLS0gYS9nZGIvTWFrZWZpbGUuaW4KKysrKyBiL2dkYi9NYWtlZmls ZS5pbgorQEAgLTQzMCw2ICs0MzAsNyBAQCBTVUJESVJfVU5JVFRFU1RTX1NSQ1MgPSBcCisgCXVu aXR0ZXN0cy9vZmZzZXQtdHlwZS1zZWxmdGVzdHMuYyBcCisgCXVuaXR0ZXN0cy9vYnNlcnZhYmxl LXNlbGZ0ZXN0cy5jIFwKKyAJdW5pdHRlc3RzL29wdGlvbmFsLXNlbGZ0ZXN0cy5jIFwKKysJdW5p dHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxmdGVzdHMuYyBcCisgCXVuaXR0ZXN0cy9w dGlkLXNlbGZ0ZXN0cy5jIFwKKyAJdW5pdHRlc3RzL3JzcC1sb3ctc2VsZnRlc3RzLmMgXAorIAl1 bml0dGVzdHMvc2NvcGVkX2ZkLXNlbGZ0ZXN0cy5jIFwKK0BAIC05NjcsNiArOTY4LDcgQEAgQ09N TU9OX1NGSUxFUyA9IFwKKyAJY29tbW9uL2pvYi1jb250cm9sLmMgXAorIAljb21tb24vZ2RiX3Rp bGRlX2V4cGFuZC5jIFwKKyAJY29tbW9uL2dkYl92ZWNzLmMgXAorKwljb21tb24vbmV0c3R1ZmYu YyBcCisgCWNvbW1vbi9uZXctb3AuYyBcCisgCWNvbW1vbi9wYXRoc3R1ZmYuYyBcCisgCWNvbW1v bi9wcmludC11dGlscy5jIFwKK0BAIC0xNDQ4LDYgKzE0NTAsNyBAQCBIRklMRVNfTk9fU1JDRElS ID0gXAorIAljb21tb24vZ2RiX3ZlY3MuaCBcCisgCWNvbW1vbi9nZGJfd2FpdC5oIFwKKyAJY29t bW9uL2NvbW1vbi1pbmZlcmlvci5oIFwKKysJY29tbW9uL25ldHN0dWZmLmggXAorIAljb21tb24v aG9zdC1kZWZzLmggXAorIAljb21tb24vcGF0aHN0dWZmLmggXAorIAljb21tb24vcHJpbnQtdXRp bHMuaCBcCitkaWZmIC0tZ2l0IGEvZ2RiL05FV1MgYi9nZGIvTkVXUworLS0tIGEvZ2RiL05FV1MK KysrKyBiL2dkYi9ORVdTCitAQCAtMSw2ICsxLDEyIEBACisgCQlXaGF0IGhhcyBjaGFuZ2VkIGlu IEdEQj8KKyAJICAgICAoT3JnYW5pemVkIHJlbGVhc2UgYnkgcmVsZWFzZSkKKyAKKysqKiogQ2hh bmdlcyBzaW5jZSBHREIgOC4yCisrCisrKiBHREIgYW5kIEdEQnNlcnZlciBub3cgc3VwcG9ydCBJ UHY2IGNvbm5lY3Rpb25zLiAgSVB2NiBhZGRyZXNzZXMKKysgIGNhbiBiZSBwYXNzZWQgdXNpbmcg dGhlICdbQUREUkVTU106UE9SVCcgbm90YXRpb24sIG9yIHRoZSByZWd1bGFyCisrICAnQUREUkVT UzpQT1JUJyBtZXRob2QuCisrCisgKioqIENoYW5nZXMgaW4gR0RCIDguMgorIAorICogVGhlICdz ZXQgZGlzYXNzZW1ibGVyLW9wdGlvbnMnIGNvbW1hbmQgbm93IHN1cHBvcnRzIHNwZWNpZnlpbmcg b3B0aW9ucworZGlmZiAtLWdpdCBhL2dkYi9jb21tb24vbmV0c3R1ZmYuYyBiL2dkYi9jb21tb24v bmV0c3R1ZmYuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL2dk Yi9jb21tb24vbmV0c3R1ZmYuYworQEAgLTAsMCArMSwxNTUgQEAKKysvKiBPcGVyYXRpb25zIG9u IG5ldHdvcmsgc3R1ZmYuCisrICAgQ29weXJpZ2h0IChDKSAyMDE4IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KKysKKysgICBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisr CisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2luY2x1ZGUgImNvbW1v bi1kZWZzLmgiCisrI2luY2x1ZGUgIm5ldHN0dWZmLmgiCisrI2luY2x1ZGUgPGFsZ29yaXRobT4K KysKKysjaWZkZWYgVVNFX1dJTjMyQVBJCisrI2luY2x1ZGUgPHdpbnNvY2syLmg+CisrI2luY2x1 ZGUgPHdzcGlhcGkuaD4KKysjZWxzZQorKyNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisrI2luY2x1 ZGUgPGFycGEvaW5ldC5oPgorKyNpbmNsdWRlIDxuZXRkYi5oPgorKyNpbmNsdWRlIDxzeXMvc29j a2V0Lmg+CisrI2luY2x1ZGUgPG5ldGluZXQvdGNwLmg+CisrI2VuZGlmCisrCisrLyogU2VlIGNv bW1vbi9uZXRzdHVmZi5oLiAgKi8KKysKKytzY29wZWRfZnJlZV9hZGRyaW5mbzo6fnNjb3BlZF9m cmVlX2FkZHJpbmZvICgpCisreworKyAgZnJlZWFkZHJpbmZvIChtX3Jlcyk7CisrfQorKworKy8q IFNlZSBjb21tb24vbmV0c3R1ZmYuaC4gICovCisrCisrcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYwor K3BhcnNlX2Nvbm5lY3Rpb25fc3BlY193aXRob3V0X3ByZWZpeCAoc3RkOjpzdHJpbmcgc3BlYywg c3RydWN0IGFkZHJpbmZvICpoaW50KQorK3sKKysgIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMgcmV0 OworKyAgc2l6ZV90IGxhc3RfY29sb25fcG9zID0gMDsKKysgIC8qIFdlJ3JlIGRlYWxpbmcgd2l0 aCBJUHY2IGlmOgorKworKyAgICAgLSBhaV9mYW1pbHkgaXMgQUZfSU5FVDYsIG9yCisrICAgICAt IGFpX2ZhbWlseSBpcyBub3QgQUZfSU5FVCwgYW5kCisrICAgICAgIC0gc3BlY1swXSBpcyAnWycs IG9yCisrICAgICAgIC0gdGhlIG51bWJlciBvZiAnOicgb24gc3BlYyBpcyBncmVhdGVyIHRoYW4g MS4gICovCisrICBib29sIGlzX2lwdjYgPSAoaGludC0+YWlfZmFtaWx5ID09IEFGX0lORVQ2Cisr CQkgIHx8IChoaW50LT5haV9mYW1pbHkgIT0gQUZfSU5FVAorKwkJICAgICAgJiYgKHNwZWNbMF0g PT0gJ1snCisrCQkJICB8fCBzdGQ6OmNvdW50IChzcGVjLmJlZ2luICgpLAorKwkJCQkJIHNwZWMu ZW5kICgpLCAnOicpID4gMSkpKTsKKysKKysgIGlmIChpc19pcHY2KQorKyAgICB7CisrICAgICAg aWYgKHNwZWNbMF0gPT0gJ1snKQorKwl7CisrCSAgLyogSVB2NiBhZGRyZXNzZXMgY2FuIGJlIHdy aXR0ZW4gYXMgJ1tBRERSXTpQT1JUJywgYW5kIHdlCisrCSAgICAgc3VwcG9ydCB0aGlzIG5vdGF0 aW9uLiAgKi8KKysJICBzaXplX3QgY2xvc2VfYnJhY2tldF9wb3MgPSBzcGVjLmZpbmRfZmlyc3Rf b2YgKCddJyk7CisrCisrCSAgaWYgKGNsb3NlX2JyYWNrZXRfcG9zID09IHN0ZDo6c3RyaW5nOjpu cG9zKQorKwkgICAgZXJyb3IgKF8oIk1pc3NpbmcgY2xvc2UgYnJhY2tldCBpbiBob3N0bmFtZSAn JXMnIiksCisrCQkgICBzcGVjLmNfc3RyICgpKTsKKysKKysJICBoaW50LT5haV9mYW1pbHkgPSBB Rl9JTkVUNjsKKysKKysJICBjb25zdCBjaGFyIGMgPSBzcGVjW2Nsb3NlX2JyYWNrZXRfcG9zICsg MV07CisrCisrCSAgaWYgKGMgPT0gJ1wwJykKKysJICAgIGxhc3RfY29sb25fcG9zID0gc3RkOjpz dHJpbmc6Om5wb3M7CisrCSAgZWxzZSBpZiAoYyAhPSAnOicpCisrCSAgICBlcnJvciAoXygiSW52 YWxpZCBjcnVmdCBhZnRlciBjbG9zZSBicmFja2V0IGluICclcyciKSwKKysJCSAgIHNwZWMuY19z dHIgKCkpOworKworKwkgIC8qIEVyYXNlIGJvdGggJ1snIGFuZCAnXScuICAqLworKwkgIHNwZWMu ZXJhc2UgKDAsIDEpOworKwkgIHNwZWMuZXJhc2UgKGNsb3NlX2JyYWNrZXRfcG9zIC0gMSwgMSk7 CisrCX0KKysgICAgICBlbHNlIGlmIChzcGVjLmZpbmRfZmlyc3Rfb2YgKCddJykgIT0gc3RkOjpz dHJpbmc6Om5wb3MpCisrCWVycm9yIChfKCJNaXNzaW5nIG9wZW4gYnJhY2tldCBpbiBob3N0bmFt ZSAnJXMnIiksCisrCSAgICAgICBzcGVjLmNfc3RyICgpKTsKKysgICAgfQorKworKyAgaWYgKGxh c3RfY29sb25fcG9zID09IDApCisrICAgIGxhc3RfY29sb25fcG9zID0gc3BlYy5maW5kX2xhc3Rf b2YgKCc6Jyk7CisrCisrICAvKiBUaGUgbGVuZ3RoIG9mIHRoZSBob3N0bmFtZSBwYXJ0LiAgKi8K KysgIHNpemVfdCBob3N0X2xlbjsKKysKKysgIGlmIChsYXN0X2NvbG9uX3BvcyAhPSBzdGQ6OnN0 cmluZzo6bnBvcykKKysgICAgeworKyAgICAgIC8qIFRoZSB1c2VyIGhhcyBwcm92aWRlZCBhIHBv cnQuICAqLworKyAgICAgIGhvc3RfbGVuID0gbGFzdF9jb2xvbl9wb3M7CisrICAgICAgcmV0LnBv cnRfc3RyID0gc3BlYy5zdWJzdHIgKGxhc3RfY29sb25fcG9zICsgMSk7CisrICAgIH0KKysgIGVs c2UKKysgICAgaG9zdF9sZW4gPSBzcGVjLnNpemUgKCk7CisrCisrICByZXQuaG9zdF9zdHIgPSBz cGVjLnN1YnN0ciAoMCwgaG9zdF9sZW4pOworKworKyAgLyogRGVmYXVsdCBob3N0bmFtZSBpcyBs b2NhbGhvc3QuICAqLworKyAgaWYgKHJldC5ob3N0X3N0ci5lbXB0eSAoKSkKKysgICAgcmV0Lmhv c3Rfc3RyID0gImxvY2FsaG9zdCI7CisrCisrICByZXR1cm4gcmV0OworK30KKysKKysvKiBTZWUg Y29tbW9uL25ldHN0dWZmLmguICAqLworKworK3BhcnNlZF9jb25uZWN0aW9uX3NwZWMKKytwYXJz ZV9jb25uZWN0aW9uX3NwZWMgKGNvbnN0IGNoYXIgKnNwZWMsIHN0cnVjdCBhZGRyaW5mbyAqaGlu dCkKKyt7CisrICAvKiBTdHJ1Y3QgdG8gaG9sZCB0aGUgYXNzb2NpYXRpb24gYmV0d2VlbiB2YWxp ZCBwcmVmaXhlcywgdGhlaXIKKysgICAgIGZhbWlseSBhbmQgc29ja3R5cGUuICAqLworKyAgc3Ry dWN0IGhvc3RfcHJlZml4CisrICAgIHsKKysgICAgICAvKiBUaGUgcHJlZml4LiAgKi8KKysgICAg ICBjb25zdCBjaGFyICpwcmVmaXg7CisrCisrICAgICAgLyogVGhlICdhaV9mYW1pbHknLiAgKi8K KysgICAgICBpbnQgZmFtaWx5OworKworKyAgICAgIC8qIFRoZSAnYWlfc29ja3R5cGUnLiAgKi8K KysgICAgICBpbnQgc29ja3R5cGU7CisrICAgIH07CisrICBzdGF0aWMgY29uc3Qgc3RydWN0IGhv c3RfcHJlZml4IHByZWZpeGVzW10gPQorKyAgICB7CisrICAgICAgeyAidWRwOiIsICBBRl9VTlNQ RUMsIFNPQ0tfREdSQU0gfSwKKysgICAgICB7ICJ0Y3A6IiwgIEFGX1VOU1BFQywgU09DS19TVFJF QU0gfSwKKysgICAgICB7ICJ1ZHA0OiIsIEFGX0lORVQsICAgU09DS19ER1JBTSB9LAorKyAgICAg IHsgInRjcDQ6IiwgQUZfSU5FVCwgICBTT0NLX1NUUkVBTSB9LAorKyAgICAgIHsgInVkcDY6Iiwg QUZfSU5FVDYsICBTT0NLX0RHUkFNIH0sCisrICAgICAgeyAidGNwNjoiLCBBRl9JTkVUNiwgIFNP Q0tfU1RSRUFNIH0sCisrICAgIH07CisrCisrICBmb3IgKGNvbnN0IGhvc3RfcHJlZml4IHByZWZp eCA6IHByZWZpeGVzKQorKyAgICBpZiAoc3RhcnRzd2l0aCAoc3BlYywgcHJlZml4LnByZWZpeCkp CisrICAgICAgeworKwlzcGVjICs9IHN0cmxlbiAocHJlZml4LnByZWZpeCk7CisrCWhpbnQtPmFp X2ZhbWlseSA9IHByZWZpeC5mYW1pbHk7CisrCWhpbnQtPmFpX3NvY2t0eXBlID0gcHJlZml4LnNv Y2t0eXBlOworKwloaW50LT5haV9wcm90b2NvbAorKwkgID0gaGludC0+YWlfc29ja3R5cGUgPT0g U09DS19ER1JBTSA/IElQUFJPVE9fVURQIDogSVBQUk9UT19UQ1A7CisrCWJyZWFrOworKyAgICAg IH0KKysKKysgIHJldHVybiBwYXJzZV9jb25uZWN0aW9uX3NwZWNfd2l0aG91dF9wcmVmaXggKHNw ZWMsIGhpbnQpOworK30KK2RpZmYgLS1naXQgYS9nZGIvY29tbW9uL25ldHN0dWZmLmggYi9nZGIv Y29tbW9uL25ldHN0dWZmLmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CistLS0gL2Rldi9udWxsCisr KysgYi9nZGIvY29tbW9uL25ldHN0dWZmLmgKK0BAIC0wLDAgKzEsNzYgQEAKKysvKiBPcGVyYXRp b25zIG9uIG5ldHdvcmsgc3R1ZmYuCisrICAgQ29weXJpZ2h0IChDKSAyMDE4IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KKysK KysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmbmRlZiBO RVRTVFVGRl9ICisrI2RlZmluZSBORVRTVFVGRl9ICisrCisrI2luY2x1ZGUgPHN0cmluZz4KKysK KysvKiBMaWtlIE5JX01BWEhPU1QvTklfTUFYU0VSViwgYnV0IGVub3VnaCBmb3IgbnVtZXJpYyBm b3Jtcy4gICovCisrI2RlZmluZSBHREJfTklfTUFYX0FERFIgNjQKKysjZGVmaW5lIEdEQl9OSV9N QVhfUE9SVCAxNgorKworKy8qIEhlbHBlciBjbGFzcyB0byBndWFyYW50ZWUgdGhhdCB3ZSBhbHdh eXMgY2FsbCAnZnJlZWFkZHJpbmZvJy4gICovCisrCisrY2xhc3Mgc2NvcGVkX2ZyZWVfYWRkcmlu Zm8KKyt7CisrcHVibGljOgorKyAgLyogRGVmYXVsdCBjb25zdHJ1Y3Rvci4gICovCisrICBleHBs aWNpdCBzY29wZWRfZnJlZV9hZGRyaW5mbyAoc3RydWN0IGFkZHJpbmZvICphaW5mbykKKysgICAg OiBtX3JlcyAoYWluZm8pCisrICB7CisrICB9CisrCisrICAvKiBEZXN0cnVjdG9yIHJlc3BvbnNp YmxlIGZvciBmcmVlJ2luZyBNX1JFUyBieSBjYWxsaW5nCisrICAgICAnZnJlZWFkZHJpbmZvJy4g ICovCisrICB+c2NvcGVkX2ZyZWVfYWRkcmluZm8gKCk7CisrCisrICBESVNBQkxFX0NPUFlfQU5E X0FTU0lHTiAoc2NvcGVkX2ZyZWVfYWRkcmluZm8pOworKworK3ByaXZhdGU6CisrICAvKiBUaGUg YWRkcmluZm8gcmVzb3VyY2UuICAqLworKyAgc3RydWN0IGFkZHJpbmZvICptX3JlczsKKyt9Owor KworKy8qIFRoZSBzdHJ1Y3Qgd2UgcmV0dXJuIGFmdGVyIHBhcnNpbmcgdGhlIGNvbm5lY3Rpb24g c3BlYy4gICovCisrCisrc3RydWN0IHBhcnNlZF9jb25uZWN0aW9uX3NwZWMKKyt7CisrICAvKiBU aGUgaG9zdG5hbWUuICAqLworKyAgc3RkOjpzdHJpbmcgaG9zdF9zdHI7CisrCisrICAvKiBUaGUg cG9ydCwgaWYgYW55LiAgKi8KKysgIHN0ZDo6c3RyaW5nIHBvcnRfc3RyOworK307CisrCisrCisr LyogUGFyc2UgU1BFQyAod2hpY2ggaXMgYSBzdHJpbmcgaW4gdGhlIGZvcm0gb2YgIkFERFI6UE9S VCIpIGFuZAorKyAgIHJldHVybiBhICdwYXJzZWRfY29ubmVjdGlvbl9zcGVjJyBzdHJ1Y3R1cmUg d2l0aCB0aGUgcHJvcGVyIGZpZWxkcworKyAgIGZpbGxlZCBpbi4gIEFsc28gYWRqdXN0IEhJTlQg YWNjb3JkaW5nbHkuICAqLworK2V4dGVybiBwYXJzZWRfY29ubmVjdGlvbl9zcGVjCisrICBwYXJz ZV9jb25uZWN0aW9uX3NwZWNfd2l0aG91dF9wcmVmaXggKHN0ZDo6c3RyaW5nIHNwZWMsCisrCQkJ CQlzdHJ1Y3QgYWRkcmluZm8gKmhpbnQpOworKworKy8qIFBhcnNlIFNQRUMgKHdoaWNoIGlzIGEg c3RyaW5nIGluIHRoZSBmb3JtIG9mCisrICAgIlt0Y3BbNl06fHVkcFs2XTpdQUREUjpQT1JUIikg YW5kIHJldHVybiBhICdwYXJzZWRfY29ubmVjdGlvbl9zcGVjJworKyAgIHN0cnVjdHVyZSB3aXRo IHRoZSBwcm9wZXIgZmllbGRzIGZpbGxlZCBpbi4gIEFsc28gYWRqdXN0IEhJTlQKKysgICBhY2Nv cmRpbmdseS4gICovCisrZXh0ZXJuIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMgcGFyc2VfY29ubmVj dGlvbl9zcGVjIChjb25zdCBjaGFyICpzcGVjLAorKwkJCQkJCSAgICAgc3RydWN0IGFkZHJpbmZv ICpoaW50KTsKKysKKysjZW5kaWYgLyogISBORVRTVFVGRl9IICovCitkaWZmIC0tZ2l0IGEvZ2Ri L2RvYy9DaGFuZ2VMb2cgYi9nZGIvZG9jL0NoYW5nZUxvZworLS0tIGEvZ2RiL2RvYy9DaGFuZ2VM b2cKKysrKyBiL2dkYi9kb2MvQ2hhbmdlTG9nCitAQCAtMSwzICsxLDExIEBACisrMjAxOC0wNy0x MSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KKysJICAgIEph biBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKysJICAgIFBhdWwgRmVy dHNlciAgPGZlcmNlcnBhdkBnbWFpbC5jb20+CisrCSAgICBUc3V0b211IFNla2kgIDxzZWtpcmlr aUBnbWFpbC5jb20+CisrCisrCSogZ2RiLnRleGluZm8gKFJlbW90ZSBDb25uZWN0aW9uIENvbW1h bmRzKTogQWRkIGV4cGxhbmF0aW9uCisrCWFib3V0IG5ldyBJUHY2IHN1cHBvcnQuICBBZGQgbmV3 IGNvbm5lY3Rpb24gcHJlZml4ZXMuCisrCisgMjAxOC0wNy0wMiAgTWFjaWVqIFcuIFJvenlja2kg IDxtYWNyb0BtaXBzLmNvbT4KKyAKKyAJUFIgdGRlcC84MjgyCitkaWZmIC0tZ2l0IGEvZ2RiL2Rv Yy9nZGIudGV4aW5mbyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KKy0tLSBhL2dkYi9kb2MvZ2RiLnRl eGluZm8KKysrKyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KK0BAIC0yMDU0OCwxNiArMjA1NDgsMjcg QEAgSWYgeW91J3JlIHVzaW5nIGEgc2VyaWFsIGxpbmUsIHlvdSBtYXkgd2FudCB0byBnaXZlIEB2 YWx1ZXtHREJOfSB0aGUKKyBAY29kZXt0YXJnZXR9IGNvbW1hbmQuCisgCisgQGl0ZW0gdGFyZ2V0 IHJlbW90ZSBAY29kZXtAdmFye2hvc3R9OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCByZW1v dGUgQGNvZGV7QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19CisgQGl0ZW14IHRhcmdldCByZW1vdGUg QGNvZGV7dGNwOkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IHJlbW90ZSBA Y29kZXt0Y3A6QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCByZW1vdGUg QGNvZGV7dGNwNDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCByZW1vdGUg QGNvZGV7dGNwNjpAdmFye2hvc3R9OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCByZW1vdGUg QGNvZGV7dGNwNjpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KKyBAaXRlbXggdGFyZ2V0IGV4dGVu ZGVkLXJlbW90ZSBAY29kZXtAdmFye2hvc3R9OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCBl eHRlbmRlZC1yZW1vdGUgQGNvZGV7QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19CisgQGl0ZW14IHRh cmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dGNwOkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KKytA aXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt0Y3A6QHZhcntbaG9zdF19OkB2YXJ7 cG9ydH19CisrQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dGNwNDpAdmFye2hv c3R9OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dGNw NjpAdmFye2hvc3R9OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUg QGNvZGV7dGNwNjpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KKyBAY2luZGV4IEBhY3Jvbnlte1RD UH0gcG9ydCwgQGNvZGV7dGFyZ2V0IHJlbW90ZX0KKyBEZWJ1ZyB1c2luZyBhIEBhY3Jvbnlte1RD UH0gY29ubmVjdGlvbiB0byBAdmFye3BvcnR9IG9uIEB2YXJ7aG9zdH0uCistVGhlIEB2YXJ7aG9z dH0gbWF5IGJlIGVpdGhlciBhIGhvc3QgbmFtZSBvciBhIG51bWVyaWMgQGFjcm9ueW17SVB9Cist YWRkcmVzczsgQHZhcntwb3J0fSBtdXN0IGJlIGEgZGVjaW1hbCBudW1iZXIuICBUaGUgQHZhcnto b3N0fSBjb3VsZCBiZQorLXRoZSB0YXJnZXQgbWFjaGluZSBpdHNlbGYsIGlmIGl0IGlzIGRpcmVj dGx5IGNvbm5lY3RlZCB0byB0aGUgbmV0LCBvcgorLWl0IG1pZ2h0IGJlIGEgdGVybWluYWwgc2Vy dmVyIHdoaWNoIGluIHR1cm4gaGFzIGEgc2VyaWFsIGxpbmUgdG8gdGhlCistdGFyZ2V0LgorK1Ro ZSBAdmFye2hvc3R9IG1heSBiZSBlaXRoZXIgYSBob3N0IG5hbWUsIGEgbnVtZXJpYyBAYWNyb255 bXtJUHY0fQorK2FkZHJlc3MsIG9yIGEgbnVtZXJpYyBAYWNyb255bXtJUHY2fSBhZGRyZXNzICh3 aXRoIG9yIHdpdGhvdXQgdGhlCisrc3F1YXJlIGJyYWNrZXRzIHRvIHNlcGFyYXRlIHRoZSBhZGRy ZXNzIGZyb20gdGhlIHBvcnQpOyBAdmFye3BvcnR9CisrbXVzdCBiZSBhIGRlY2ltYWwgbnVtYmVy LiAgVGhlIEB2YXJ7aG9zdH0gY291bGQgYmUgdGhlIHRhcmdldCBtYWNoaW5lCisraXRzZWxmLCBp ZiBpdCBpcyBkaXJlY3RseSBjb25uZWN0ZWQgdG8gdGhlIG5ldCwgb3IgaXQgbWlnaHQgYmUgYQor K3Rlcm1pbmFsIHNlcnZlciB3aGljaCBpbiB0dXJuIGhhcyBhIHNlcmlhbCBsaW5lIHRvIHRoZSB0 YXJnZXQuCisgCisgRm9yIGV4YW1wbGUsIHRvIGNvbm5lY3QgdG8gcG9ydCAyODI4IG9uIGEgdGVy bWluYWwgc2VydmVyIG5hbWVkCisgQGNvZGV7bWFueWZhcm1zfToKK0BAIC0yMDU2Niw2ICsyMDU3 NywyOCBAQCBGb3IgZXhhbXBsZSwgdG8gY29ubmVjdCB0byBwb3J0IDI4Mjggb24gYSB0ZXJtaW5h bCBzZXJ2ZXIgbmFtZWQKKyB0YXJnZXQgcmVtb3RlIG1hbnlmYXJtczoyODI4CisgQGVuZCBzbWFs bGV4YW1wbGUKKyAKKytUbyBjb25uZWN0IHRvIHBvcnQgMjgyOCBvbiBhIHRlcm1pbmFsIHNlcnZl ciB3aG9zZSBhZGRyZXNzIGlzCisrQGNvZGV7MjAwMTowZGI4Ojg1YTM6MDAwMDowMDAwOjhhMmU6 MDM3MDo3MzM0fSwgeW91IGNhbiBlaXRoZXIgdXNlIHRoZQorK3NxdWFyZSBicmFja2V0IHN5bnRh eDoKKysKKytAc21hbGxleGFtcGxlCisrdGFyZ2V0IHJlbW90ZSBbMjAwMTowZGI4Ojg1YTM6MDAw MDowMDAwOjhhMmU6MDM3MDo3MzM0XToyODI4CisrQGVuZCBzbWFsbGV4YW1wbGUKKysKKytAbm9p bmRlbnQKKytvciBleHBsaWNpdGx5IHNwZWNpZnkgdGhlIEBhY3Jvbnlte0lQdjZ9IHByb3RvY29s OgorKworK0BzbWFsbGV4YW1wbGUKKyt0YXJnZXQgcmVtb3RlIHRjcDY6MjAwMTowZGI4Ojg1YTM6 MDAwMDowMDAwOjhhMmU6MDM3MDo3MzM0OjI4MjgKKytAZW5kIHNtYWxsZXhhbXBsZQorKworK1Ro aXMgbGFzdCBleGFtcGxlIG1heSBiZSBjb25mdXNpbmcgdG8gdGhlIHJlYWRlciwgYmVjYXVzZSB0 aGVyZSBpcyBubworK3Zpc2libGUgc2VwYXJhdGlvbiBiZXR3ZWVuIHRoZSBob3N0bmFtZSBhbmQg dGhlIHBvcnQgbnVtYmVyLgorK1RoZXJlZm9yZSwgd2UgcmVjb21tZW5kIHRoZSB1c2VyIHRvIHBy b3ZpZGUgQGFjcm9ueW17SVB2Nn0gYWRkcmVzc2VzCisrdXNpbmcgc3F1YXJlIGJyYWNrZXRzIGZv ciBjbGFyaXR5LiAgSG93ZXZlciwgaXQgaXMgaW1wb3J0YW50IHRvCisrbWVudGlvbiB0aGF0IGZv ciBAdmFsdWV7R0RCTn0gdGhlcmUgaXMgbm8gYW1iaWd1aXR5OiB0aGUgbnVtYmVyIGFmdGVyCisr dGhlIGxhc3QgY29sb24gaXMgY29uc2lkZXJlZCB0byBiZSB0aGUgcG9ydCBudW1iZXIuCisrCisg SWYgeW91ciByZW1vdGUgdGFyZ2V0IGlzIGFjdHVhbGx5IHJ1bm5pbmcgb24gdGhlIHNhbWUgbWFj aGluZSBhcyB5b3VyCisgZGVidWdnZXIgc2Vzc2lvbiAoZS5nLkA6IGEgc2ltdWxhdG9yIGZvciB5 b3VyIHRhcmdldCBydW5uaW5nIG9uIHRoZQorIHNhbWUgaG9zdCksIHlvdSBjYW4gb21pdCB0aGUg aG9zdG5hbWUuICBGb3IgZXhhbXBsZSwgdG8gY29ubmVjdCB0bworQEAgLTIwNTc5LDcgKzIwNjEy LDE1IEBAIHRhcmdldCByZW1vdGUgOjEyMzQKKyBOb3RlIHRoYXQgdGhlIGNvbG9uIGlzIHN0aWxs IHJlcXVpcmVkIGhlcmUuCisgCisgQGl0ZW0gdGFyZ2V0IHJlbW90ZSBAY29kZXt1ZHA6QHZhcnto b3N0fTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rle3VkcDpAdmFye1to b3N0XX06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IHJlbW90ZSBAY29kZXt1ZHA0OkB2YXJ7 aG9zdH06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IHJlbW90ZSBAY29kZXt1ZHA2OkB2YXJ7 W2hvc3RdfTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIEBjb2Rl e3VkcDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19CisgQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1v dGUgQGNvZGV7dWRwOkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IGV4dGVu ZGVkLXJlbW90ZSBAY29kZXt1ZHA6QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRh cmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRwNDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Cisr QGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRwNjpAdmFye2hvc3R9OkB2YXJ7 cG9ydH19CisrQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRwNjpAdmFye1to b3N0XX06QHZhcntwb3J0fX0KKyBAY2luZGV4IEBhY3Jvbnlte1VEUH0gcG9ydCwgQGNvZGV7dGFy Z2V0IHJlbW90ZX0KKyBEZWJ1ZyB1c2luZyBAYWNyb255bXtVRFB9IHBhY2tldHMgdG8gQHZhcntw b3J0fSBvbiBAdmFye2hvc3R9LiAgRm9yIGV4YW1wbGUsIHRvCisgY29ubmVjdCB0byBAYWNyb255 bXtVRFB9IHBvcnQgMjgyOCBvbiBhIHRlcm1pbmFsIHNlcnZlciBuYW1lZCBAY29kZXttYW55ZmFy bXN9OgorZGlmZiAtLWdpdCBhL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nIGIvZ2RiL2dkYnNlcnZl ci9DaGFuZ2VMb2cKKy0tLSBhL2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nCisrKysgYi9nZGIvZ2Ri c2VydmVyL0NoYW5nZUxvZworQEAgLTEsMyArMSwyMiBAQAorKzIwMTgtMDctMTEgIFNlcmdpbyBE dXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+CisrCSAgICBKYW4gS3JhdG9jaHZp bCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisrCSAgICBQYXVsIEZlcnRzZXIgIDxmZXJj ZXJwYXZAZ21haWwuY29tPgorKwkgICAgVHN1dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwuY29t PgorKworKwkqIE1ha2VmaWxlLmluIChTRklMRVMpOiBBZGQgJyQoc3JjZGlyKS9jb21tb24vbmV0 c3R1ZmYuYycuCisrCShPQlMpOiBBZGQgJ2NvbW1vbi9uZXRzdHVmZi5vJy4KKysJKEdEQlJFUExB WV9PQlMpOiBMaWtld2lzZS4KKysJKiBnZGJyZXBsYXkuYzogSW5jbHVkZSAnd3NwaWFwaS5oJyBh bmQgJ25ldHN0dWZmLmgnLgorKwkocmVtb3RlX29wZW4pOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3Ig SVB2NgorKwljb25uZWN0aW9ucy4KKysJKiByZW1vdGUtdXRpbHMuYzogSW5jbHVkZSAnbmV0c3R1 ZmYuaCcsICdmaWxlc3R1ZmYuaCcKKysJYW5kICd3c3BpYXBpLmgnLgorKwkoaGFuZGxlX2FjY2Vw dF9ldmVudCk6IEFjY2VwdCBjb25uZWN0aW9ucyBmcm9tIElQdjYgc291cmNlcy4KKysJKHJlbW90 ZV9wcmVwYXJlKTogSGFuZGxlIElQdjYtc3R5bGUgaG9zdG5hbWVzOyBpbXBsZW1lbnQKKysJc3Vw cG9ydCBmb3IgSVB2NiBjb25uZWN0aW9ucy4KKysJKHJlbW90ZV9vcGVuKTogSW1wbGVtZW50IHN1 cHBvcnQgZm9yIHByaW50aW5nIGNvbm5lY3Rpb25zIGZyb20KKysJSVB2NiBzb3VyY2VzLgorKwor IDIwMTgtMDctMTEgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+CisgCisgCVBSIGdk Yi8yMzM3NworZGlmZiAtLWdpdCBhL2dkYi9nZGJzZXJ2ZXIvTWFrZWZpbGUuaW4gYi9nZGIvZ2Ri c2VydmVyL01ha2VmaWxlLmluCistLS0gYS9nZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCisrKysg Yi9nZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCitAQCAtMjExLDYgKzIxMSw3IEBAIFNGSUxFUyA9 IFwKKyAJJChzcmNkaXIpL2NvbW1vbi9qb2ItY29udHJvbC5jIFwKKyAJJChzcmNkaXIpL2NvbW1v bi9nZGJfdGlsZGVfZXhwYW5kLmMgXAorIAkkKHNyY2RpcikvY29tbW9uL2dkYl92ZWNzLmMgXAor KwkkKHNyY2RpcikvY29tbW9uL25ldHN0dWZmLmMgXAorIAkkKHNyY2RpcikvY29tbW9uL25ldy1v cC5jIFwKKyAJJChzcmNkaXIpL2NvbW1vbi9wYXRoc3R1ZmYuYyBcCisgCSQoc3JjZGlyKS9jb21t b24vcHJpbnQtdXRpbHMuYyBcCitAQCAtMjU0LDYgKzI1NSw3IEBAIE9CUyA9IFwKKyAJY29tbW9u L2Zvcm1hdC5vIFwKKyAJY29tbW9uL2dkYl90aWxkZV9leHBhbmQubyBcCisgCWNvbW1vbi9nZGJf dmVjcy5vIFwKKysJY29tbW9uL25ldHN0dWZmLm8gXAorIAljb21tb24vbmV3LW9wLm8gXAorIAlj b21tb24vcGF0aHN0dWZmLm8gXAorIAljb21tb24vcHJpbnQtdXRpbHMubyBcCitAQCAtMjkwLDYg KzI5Miw3IEBAIEdEQlJFUExBWV9PQlMgPSBcCisgCWNvbW1vbi9jb21tb24tZXhjZXB0aW9ucy5v IFwKKyAJY29tbW9uL2NvbW1vbi11dGlscy5vIFwKKyAJY29tbW9uL2Vycm9ycy5vIFwKKysJY29t bW9uL25ldHN0dWZmLm8gXAorIAljb21tb24vcHJpbnQtdXRpbHMubyBcCisgCWdkYnJlcGxheS5v IFwKKyAJdXRpbHMubyBcCitkaWZmIC0tZ2l0IGEvZ2RiL2dkYnNlcnZlci9nZGJyZXBsYXkuYyBi L2dkYi9nZGJzZXJ2ZXIvZ2RicmVwbGF5LmMKKy0tLSBhL2dkYi9nZGJzZXJ2ZXIvZ2RicmVwbGF5 LmMKKysrKyBiL2dkYi9nZGJzZXJ2ZXIvZ2RicmVwbGF5LmMKK0BAIC00Niw4ICs0NiwxMSBAQAor IAorICNpZiBVU0VfV0lOMzJBUEkKKyAjaW5jbHVkZSA8d2luc29jazIuaD4KKysjaW5jbHVkZSA8 d3NwaWFwaS5oPgorICNlbmRpZgorIAorKyNpbmNsdWRlICJuZXRzdHVmZi5oIgorKworICNpZm5k ZWYgSEFWRV9TT0NLTEVOX1QKKyB0eXBlZGVmIGludCBzb2NrbGVuX3Q7CisgI2VuZGlmCitAQCAt MTQyLDU2ICsxNDUsMTA4IEBAIHJlbW90ZV9jbG9zZSAodm9pZCkKKyBzdGF0aWMgdm9pZAorIHJl bW90ZV9vcGVuIChjaGFyICpuYW1lKQorIHsKKy0gIGlmICghc3RyY2hyIChuYW1lLCAnOicpKQor KyAgY2hhciAqbGFzdF9jb2xvbiA9IHN0cnJjaHIgKG5hbWUsICc6Jyk7CisrCisrICBpZiAobGFz dF9jb2xvbiA9PSBOVUxMKQorICAgICB7CisgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiJXM6IE11 c3Qgc3BlY2lmeSB0Y3AgY29ubmVjdGlvbiBhcyBob3N0OmFkZHJcbiIsIG5hbWUpOworICAgICAg IGZmbHVzaCAoc3RkZXJyKTsKKyAgICAgICBleGl0ICgxKTsKKyAgICAgfQorLSAgZWxzZQorLSAg ICB7CisrCisgI2lmZGVmIFVTRV9XSU4zMkFQSQorLSAgICAgIHN0YXRpYyBpbnQgd2luc29ja19p bml0aWFsaXplZDsKKysgIHN0YXRpYyBpbnQgd2luc29ja19pbml0aWFsaXplZDsKKyAjZW5kaWYK Ky0gICAgICBjaGFyICpwb3J0X3N0cjsKKy0gICAgICBpbnQgcG9ydDsKKy0gICAgICBzdHJ1Y3Qg c29ja2FkZHJfaW4gc29ja2FkZHI7CistICAgICAgc29ja2xlbl90IHRtcDsKKy0gICAgICBpbnQg dG1wX2Rlc2M7CisrICBjaGFyICpwb3J0X3N0cjsKKysgIGludCB0bXA7CisrICBpbnQgdG1wX2Rl c2M7CisrICBzdHJ1Y3QgYWRkcmluZm8gaGludDsKKysgIHN0cnVjdCBhZGRyaW5mbyAqYWluZm87 CisgCistICAgICAgcG9ydF9zdHIgPSBzdHJjaHIgKG5hbWUsICc6Jyk7CisrICBtZW1zZXQgKCZo aW50LCAwLCBzaXplb2YgKGhpbnQpKTsKKysgIC8qIEFzc3VtZSBubyBwcmVmaXggd2lsbCBiZSBw YXNzZWQsIHRoZXJlZm9yZSB3ZSBzaG91bGQgdXNlCisrICAgICBBRl9VTlNQRUMuICAqLworKyAg aGludC5haV9mYW1pbHkgPSBBRl9VTlNQRUM7CisrICBoaW50LmFpX3NvY2t0eXBlID0gU09DS19T VFJFQU07CisrICBoaW50LmFpX3Byb3RvY29sID0gSVBQUk9UT19UQ1A7CisgCistICAgICAgcG9y dCA9IGF0b2kgKHBvcnRfc3RyICsgMSk7CisrICBwYXJzZWRfY29ubmVjdGlvbl9zcGVjIHBhcnNl ZCA9IHBhcnNlX2Nvbm5lY3Rpb25fc3BlYyAobmFtZSwgJmhpbnQpOworKworKyAgaWYgKHBhcnNl ZC5wb3J0X3N0ci5lbXB0eSAoKSkKKysgICAgZXJyb3IgKF8oIk1pc3NpbmcgcG9ydCBvbiBob3N0 bmFtZSAnJXMnIiksIG5hbWUpOworIAorICNpZmRlZiBVU0VfV0lOMzJBUEkKKy0gICAgICBpZiAo IXdpbnNvY2tfaW5pdGlhbGl6ZWQpCistCXsKKy0JICBXU0FEQVRBIHdzYWQ7CisrICBpZiAoIXdp bnNvY2tfaW5pdGlhbGl6ZWQpCisrICAgIHsKKysgICAgICBXU0FEQVRBIHdzYWQ7CisgCistCSAg V1NBU3RhcnR1cCAoTUFLRVdPUkQgKDEsIDApLCAmd3NhZCk7CistCSAgd2luc29ja19pbml0aWFs aXplZCA9IDE7CistCX0KKysgICAgICBXU0FTdGFydHVwIChNQUtFV09SRCAoMSwgMCksICZ3c2Fk KTsKKysgICAgICB3aW5zb2NrX2luaXRpYWxpemVkID0gMTsKKysgICAgfQorICNlbmRpZgorIAor LSAgICAgIHRtcF9kZXNjID0gc29ja2V0IChQRl9JTkVULCBTT0NLX1NUUkVBTSwgMCk7CistICAg ICAgaWYgKHRtcF9kZXNjID09IC0xKQorLQlwZXJyb3Jfd2l0aF9uYW1lICgiQ2FuJ3Qgb3BlbiBz b2NrZXQiKTsKKysgIGludCByID0gZ2V0YWRkcmluZm8gKHBhcnNlZC5ob3N0X3N0ci5jX3N0ciAo KSwgcGFyc2VkLnBvcnRfc3RyLmNfc3RyICgpLAorKwkJICAgICAgICZoaW50LCAmYWluZm8pOwor IAorLSAgICAgIC8qIEFsbG93IHJhcGlkIHJldXNlIG9mIHRoaXMgcG9ydC4gKi8KKy0gICAgICB0 bXAgPSAxOworLSAgICAgIHNldHNvY2tvcHQgKHRtcF9kZXNjLCBTT0xfU09DS0VULCBTT19SRVVT RUFERFIsIChjaGFyICopICZ0bXAsCistCQkgIHNpemVvZiAodG1wKSk7CisrICBpZiAociAhPSAw KQorKyAgICB7CisrICAgICAgZnByaW50ZiAoc3RkZXJyLCAiJXM6JXM6IGNhbm5vdCByZXNvbHZl IG5hbWU6ICVzXG4iLAorKwkgICAgICAgcGFyc2VkLmhvc3Rfc3RyLmNfc3RyICgpLCBwYXJzZWQu cG9ydF9zdHIuY19zdHIgKCksCisrCSAgICAgICBnYWlfc3RyZXJyb3IgKHIpKTsKKysgICAgICBm Zmx1c2ggKHN0ZGVycik7CisrICAgICAgZXhpdCAoMSk7CisrICAgIH0KKysKKysgIHNjb3BlZF9m cmVlX2FkZHJpbmZvIGZyZWVfYWluZm8gKGFpbmZvKTsKKysKKysgIHN0cnVjdCBhZGRyaW5mbyAq cDsKKysKKysgIGZvciAocCA9IGFpbmZvOyBwICE9IE5VTEw7IHAgPSBwLT5haV9uZXh0KQorKyAg ICB7CisrICAgICAgdG1wX2Rlc2MgPSBzb2NrZXQgKHAtPmFpX2ZhbWlseSwgcC0+YWlfc29ja3R5 cGUsIHAtPmFpX3Byb3RvY29sKTsKKyAKKy0gICAgICBzb2NrYWRkci5zaW5fZmFtaWx5ID0gUEZf SU5FVDsKKy0gICAgICBzb2NrYWRkci5zaW5fcG9ydCA9IGh0b25zIChwb3J0KTsKKy0gICAgICBz b2NrYWRkci5zaW5fYWRkci5zX2FkZHIgPSBJTkFERFJfQU5ZOworKyAgICAgIGlmICh0bXBfZGVz YyA+PSAwKQorKwlicmVhazsKKysgICAgfQorKworKyAgaWYgKHAgPT0gTlVMTCkKKysgICAgcGVy cm9yX3dpdGhfbmFtZSAoIkNhbm5vdCBvcGVuIHNvY2tldCIpOworIAorLSAgICAgIGlmIChiaW5k ICh0bXBfZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsIHNpemVvZiAoc29ja2Fk ZHIpKQorLQkgIHx8IGxpc3RlbiAodG1wX2Rlc2MsIDEpKQorLQlwZXJyb3Jfd2l0aF9uYW1lICgi Q2FuJ3QgYmluZCBhZGRyZXNzIik7CisrICAvKiBBbGxvdyByYXBpZCByZXVzZSBvZiB0aGlzIHBv cnQuICovCisrICB0bXAgPSAxOworKyAgc2V0c29ja29wdCAodG1wX2Rlc2MsIFNPTF9TT0NLRVQs IFNPX1JFVVNFQUREUiwgKGNoYXIgKikgJnRtcCwKKysJICAgICAgc2l6ZW9mICh0bXApKTsKKysK KysgIHN3aXRjaCAocC0+YWlfZmFtaWx5KQorKyAgICB7CisrICAgIGNhc2UgQUZfSU5FVDoKKysg ICAgICAoKHN0cnVjdCBzb2NrYWRkcl9pbiAqKSBwLT5haV9hZGRyKS0+c2luX2FkZHIuc19hZGRy ID0gSU5BRERSX0FOWTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBBRl9JTkVUNjoKKysgICAg ICAoKHN0cnVjdCBzb2NrYWRkcl9pbjYgKikgcC0+YWlfYWRkciktPnNpbjZfYWRkciA9IGluNmFk ZHJfYW55OworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIGZwcmludGYgKHN0 ZGVyciwgIkludmFsaWQgJ2FpX2ZhbWlseScgJWRcbiIsIHAtPmFpX2ZhbWlseSk7CisrICAgICAg ZXhpdCAoMSk7CisrICAgIH0KKysKKysgIGlmIChiaW5kICh0bXBfZGVzYywgcC0+YWlfYWRkciwg cC0+YWlfYWRkcmxlbikgIT0gMCkKKysgICAgcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IGJpbmQg YWRkcmVzcyIpOworKworKyAgaWYgKHAtPmFpX3NvY2t0eXBlID09IFNPQ0tfREdSQU0pCisrICAg IHJlbW90ZV9kZXNjID0gdG1wX2Rlc2M7CisrICBlbHNlCisrICAgIHsKKysgICAgICBzdHJ1Y3Qg c29ja2FkZHJfc3RvcmFnZSBzb2NrYWRkcjsKKysgICAgICBzb2NrbGVuX3Qgc29ja2FkZHJzaXpl ID0gc2l6ZW9mIChzb2NrYWRkcik7CisrICAgICAgY2hhciBvcmlnX2hvc3RbR0RCX05JX01BWF9B RERSXSwgb3JpZ19wb3J0W0dEQl9OSV9NQVhfUE9SVF07CisrCisrICAgICAgaWYgKGxpc3RlbiAo dG1wX2Rlc2MsIDEpICE9IDApCisrCXBlcnJvcl93aXRoX25hbWUgKCJDYW4ndCBsaXN0ZW4gb24g c29ja2V0Iik7CisrCisrICAgICAgcmVtb3RlX2Rlc2MgPSBhY2NlcHQgKHRtcF9kZXNjLCAoc3Ry dWN0IHNvY2thZGRyICopICZzb2NrYWRkciwKKysJCQkgICAgJnNvY2thZGRyc2l6ZSk7CisgCist ICAgICAgdG1wID0gc2l6ZW9mIChzb2NrYWRkcik7CistICAgICAgcmVtb3RlX2Rlc2MgPSBhY2Nl cHQgKHRtcF9kZXNjLCAoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwgJnRtcCk7CisgICAg ICAgaWYgKHJlbW90ZV9kZXNjID09IC0xKQorIAlwZXJyb3Jfd2l0aF9uYW1lICgiQWNjZXB0IGZh aWxlZCIpOworIAorQEAgLTIwNiw2ICsyNjEsMTYgQEAgcmVtb3RlX29wZW4gKGNoYXIgKm5hbWUp CisgICAgICAgc2V0c29ja29wdCAocmVtb3RlX2Rlc2MsIElQUFJPVE9fVENQLCBUQ1BfTk9ERUxB WSwKKyAJCSAgKGNoYXIgKikgJnRtcCwgc2l6ZW9mICh0bXApKTsKKyAKKysgICAgICBpZiAoZ2V0 bmFtZWluZm8gKChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCBzb2NrYWRkcnNpemUsCisr CQkgICAgICAgb3JpZ19ob3N0LCBzaXplb2YgKG9yaWdfaG9zdCksCisrCQkgICAgICAgb3JpZ19w b3J0LCBzaXplb2YgKG9yaWdfcG9ydCksCisrCQkgICAgICAgTklfTlVNRVJJQ0hPU1QgfCBOSV9O VU1FUklDU0VSVikgPT0gMCkKKysJeworKwkgIGZwcmludGYgKHN0ZGVyciwgIlJlbW90ZSBkZWJ1 Z2dpbmcgZnJvbSBob3N0ICVzLCBwb3J0ICVzXG4iLAorKwkJICAgb3JpZ19ob3N0LCBvcmlnX3Bv cnQpOworKwkgIGZmbHVzaCAoc3RkZXJyKTsKKysJfQorKworICNpZm5kZWYgVVNFX1dJTjMyQVBJ CisgICAgICAgY2xvc2UgKHRtcF9kZXNjKTsJCS8qIE5vIGxvbmdlciBuZWVkIHRoaXMgKi8KKyAK K2RpZmYgLS1naXQgYS9nZGIvZ2Ric2VydmVyL3JlbW90ZS11dGlscy5jIGIvZ2RiL2dkYnNlcnZl ci9yZW1vdGUtdXRpbHMuYworLS0tIGEvZ2RiL2dkYnNlcnZlci9yZW1vdGUtdXRpbHMuYworKysr IGIvZ2RiL2dkYnNlcnZlci9yZW1vdGUtdXRpbHMuYworQEAgLTI2LDYgKzI2LDggQEAKKyAjaW5j bHVkZSAiZGxsLmgiCisgI2luY2x1ZGUgInJzcC1sb3cuaCIKKyAjaW5jbHVkZSAiZ2RidGhyZWFk LmgiCisrI2luY2x1ZGUgIm5ldHN0dWZmLmgiCisrI2luY2x1ZGUgImZpbGVzdHVmZi5oIgorICNp bmNsdWRlIDxjdHlwZS5oPgorICNpZiBIQVZFX1NZU19JT0NUTF9ICisgI2luY2x1ZGUgPHN5cy9p b2N0bC5oPgorQEAgLTYzLDYgKzY1LDcgQEAKKyAKKyAjaWYgVVNFX1dJTjMyQVBJCisgI2luY2x1 ZGUgPHdpbnNvY2syLmg+CisrI2luY2x1ZGUgPHdzcGlhcGkuaD4KKyAjZW5kaWYKKyAKKyAjaWYg X19RTlhfXworQEAgLTE1MSwxOSArMTU0LDE4IEBAIGVuYWJsZV9hc3luY19ub3RpZmljYXRpb24g KGludCBmZCkKKyBzdGF0aWMgaW50CisgaGFuZGxlX2FjY2VwdF9ldmVudCAoaW50IGVyciwgZ2Ri X2NsaWVudF9kYXRhIGNsaWVudF9kYXRhKQorIHsKKy0gIHN0cnVjdCBzb2NrYWRkcl9pbiBzb2Nr YWRkcjsKKy0gIHNvY2tsZW5fdCB0bXA7CisrICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBzb2Nr YWRkcjsKKysgIHNvY2tsZW5fdCBsZW4gPSBzaXplb2YgKHNvY2thZGRyKTsKKyAKKyAgIGlmIChk ZWJ1Z190aHJlYWRzKQorICAgICBkZWJ1Z19wcmludGYgKCJoYW5kbGluZyBwb3NzaWJsZSBhY2Nl cHQgZXZlbnRcbiIpOworIAorLSAgdG1wID0gc2l6ZW9mIChzb2NrYWRkcik7CistICByZW1vdGVf ZGVzYyA9IGFjY2VwdCAobGlzdGVuX2Rlc2MsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRy LCAmdG1wKTsKKysgIHJlbW90ZV9kZXNjID0gYWNjZXB0IChsaXN0ZW5fZGVzYywgKHN0cnVjdCBz b2NrYWRkciAqKSAmc29ja2FkZHIsICZsZW4pOworICAgaWYgKHJlbW90ZV9kZXNjID09IC0xKQor ICAgICBwZXJyb3Jfd2l0aF9uYW1lICgiQWNjZXB0IGZhaWxlZCIpOworIAorICAgLyogRW5hYmxl IFRDUCBrZWVwIGFsaXZlIHByb2Nlc3MuICovCistICB0bXAgPSAxOworKyAgc29ja2xlbl90IHRt cCA9IDE7CisgICBzZXRzb2Nrb3B0IChyZW1vdGVfZGVzYywgU09MX1NPQ0tFVCwgU09fS0VFUEFM SVZFLAorIAkgICAgICAoY2hhciAqKSAmdG1wLCBzaXplb2YgKHRtcCkpOworIAorQEAgLTE5Miw4 ICsxOTQsMTkgQEAgaGFuZGxlX2FjY2VwdF9ldmVudCAoaW50IGVyciwgZ2RiX2NsaWVudF9kYXRh IGNsaWVudF9kYXRhKQorICAgZGVsZXRlX2ZpbGVfaGFuZGxlciAobGlzdGVuX2Rlc2MpOworIAor ICAgLyogQ29udmVydCBJUCBhZGRyZXNzIHRvIHN0cmluZy4gICovCistICBmcHJpbnRmIChzdGRl cnIsICJSZW1vdGUgZGVidWdnaW5nIGZyb20gaG9zdCAlc1xuIiwKKy0JICAgaW5ldF9udG9hIChz b2NrYWRkci5zaW5fYWRkcikpOworKyAgY2hhciBvcmlnX2hvc3RbR0RCX05JX01BWF9BRERSXSwg b3JpZ19wb3J0W0dEQl9OSV9NQVhfUE9SVF07CisrCisrICBpbnQgciA9IGdldG5hbWVpbmZvICgo c3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwgbGVuLAorKwkJICAgICAgIG9yaWdfaG9zdCwg c2l6ZW9mIChvcmlnX2hvc3QpLAorKwkJICAgICAgIG9yaWdfcG9ydCwgc2l6ZW9mIChvcmlnX3Bv cnQpLAorKwkJICAgICAgIE5JX05VTUVSSUNIT1NUIHwgTklfTlVNRVJJQ1NFUlYpOworKworKyAg aWYgKHIgIT0gMCkKKysgICAgZnByaW50ZiAoc3RkZXJyLCBfKCJDb3VsZCBub3Qgb2J0YWluIHJl bW90ZSBhZGRyZXNzOiAlc1xuIiksCisrCSAgICAgZ2FpX3N0cmVycm9yIChyKSk7CisrICBlbHNl CisrICAgIGZwcmludGYgKHN0ZGVyciwgXygiUmVtb3RlIGRlYnVnZ2luZyBmcm9tIGhvc3QgJXMs IHBvcnQgJXNcbiIpLAorKwkgICAgIG9yaWdfaG9zdCwgb3JpZ19wb3J0KTsKKyAKKyAgIGVuYWJs ZV9hc3luY19ub3RpZmljYXRpb24gKHJlbW90ZV9kZXNjKTsKKyAKK0BAIC0yMjIsMTAgKzIzNSw3 IEBAIHJlbW90ZV9wcmVwYXJlIChjb25zdCBjaGFyICpuYW1lKQorICNpZmRlZiBVU0VfV0lOMzJB UEkKKyAgIHN0YXRpYyBpbnQgd2luc29ja19pbml0aWFsaXplZDsKKyAjZW5kaWYKKy0gIGludCBw b3J0OworLSAgc3RydWN0IHNvY2thZGRyX2luIHNvY2thZGRyOworICAgc29ja2xlbl90IHRtcDsK Ky0gIGNoYXIgKnBvcnRfZW5kOworIAorICAgcmVtb3RlX2lzX3N0ZGlvID0gMDsKKyAgIGlmIChz dHJjbXAgKG5hbWUsIFNURElPX0NPTk5FQ1RJT05fTkFNRSkgPT0gMCkKK0BAIC0yMzgsMTcgKzI0 OCwyNSBAQCByZW1vdGVfcHJlcGFyZSAoY29uc3QgY2hhciAqbmFtZSkKKyAgICAgICByZXR1cm47 CisgICAgIH0KKyAKKy0gIHBvcnRfc3RyID0gc3RyY2hyIChuYW1lLCAnOicpOworLSAgaWYgKHBv cnRfc3RyID09IE5VTEwpCisrICBzdHJ1Y3QgYWRkcmluZm8gaGludDsKKysgIHN0cnVjdCBhZGRy aW5mbyAqYWluZm87CisrCisrICBtZW1zZXQgKCZoaW50LCAwLCBzaXplb2YgKGhpbnQpKTsKKysg IC8qIEFzc3VtZSBubyBwcmVmaXggd2lsbCBiZSBwYXNzZWQsIHRoZXJlZm9yZSB3ZSBzaG91bGQg dXNlCisrICAgICBBRl9VTlNQRUMuICAqLworKyAgaGludC5haV9mYW1pbHkgPSBBRl9VTlNQRUM7 CisrICBoaW50LmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU07CisrICBoaW50LmFpX3Byb3RvY29s ID0gSVBQUk9UT19UQ1A7CisrCisrICBwYXJzZWRfY29ubmVjdGlvbl9zcGVjIHBhcnNlZAorKyAg ICA9IHBhcnNlX2Nvbm5lY3Rpb25fc3BlY193aXRob3V0X3ByZWZpeCAobmFtZSwgJmhpbnQpOwor KworKyAgaWYgKHBhcnNlZC5wb3J0X3N0ci5lbXB0eSAoKSkKKyAgICAgeworICAgICAgIGNzLnRy YW5zcG9ydF9pc19yZWxpYWJsZSA9IDA7CisgICAgICAgcmV0dXJuOworICAgICB9CisgCistICBw b3J0ID0gc3RydG91bCAocG9ydF9zdHIgKyAxLCAmcG9ydF9lbmQsIDEwKTsKKy0gIGlmIChwb3J0 X3N0clsxXSA9PSAnXDAnIHx8ICpwb3J0X2VuZCAhPSAnXDAnKQorLSAgICBlcnJvciAoIkJhZCBw b3J0IGFyZ3VtZW50OiAlcyIsIG5hbWUpOworLQorICNpZmRlZiBVU0VfV0lOMzJBUEkKKyAgIGlm ICghd2luc29ja19pbml0aWFsaXplZCkKKyAgICAgeworQEAgLTI1OSw4ICsyNzcsMjYgQEAgcmVt b3RlX3ByZXBhcmUgKGNvbnN0IGNoYXIgKm5hbWUpCisgICAgIH0KKyAjZW5kaWYKKyAKKy0gIGxp c3Rlbl9kZXNjID0gc29ja2V0IChQRl9JTkVULCBTT0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApOwor LSAgaWYgKGxpc3Rlbl9kZXNjID09IC0xKQorKyAgaW50IHIgPSBnZXRhZGRyaW5mbyAocGFyc2Vk Lmhvc3Rfc3RyLmNfc3RyICgpLCBwYXJzZWQucG9ydF9zdHIuY19zdHIgKCksCisrCQkgICAgICAg JmhpbnQsICZhaW5mbyk7CisrCisrICBpZiAociAhPSAwKQorKyAgICBlcnJvciAoXygiJXM6IGNh bm5vdCByZXNvbHZlIG5hbWU6ICVzIiksIG5hbWUsIGdhaV9zdHJlcnJvciAocikpOworKworKyAg c2NvcGVkX2ZyZWVfYWRkcmluZm8gZnJlZWFkZHJpbmZvIChhaW5mbyk7CisrCisrICBzdHJ1Y3Qg YWRkcmluZm8gKml0ZXI7CisrCisrICBmb3IgKGl0ZXIgPSBhaW5mbzsgaXRlciAhPSBOVUxMOyBp dGVyID0gaXRlci0+YWlfbmV4dCkKKysgICAgeworKyAgICAgIGxpc3Rlbl9kZXNjID0gZ2RiX3Nv Y2tldF9jbG9leGVjIChpdGVyLT5haV9mYW1pbHksIGl0ZXItPmFpX3NvY2t0eXBlLAorKwkJCQkJ aXRlci0+YWlfcHJvdG9jb2wpOworKworKyAgICAgIGlmIChsaXN0ZW5fZGVzYyA+PSAwKQorKwli cmVhazsKKysgICAgfQorKworKyAgaWYgKGl0ZXIgPT0gTlVMTCkKKyAgICAgcGVycm9yX3dpdGhf bmFtZSAoIkNhbid0IG9wZW4gc29ja2V0Iik7CisgCisgICAvKiBBbGxvdyByYXBpZCByZXVzZSBv ZiB0aGlzIHBvcnQuICovCitAQCAtMjY4LDE0ICszMDQsMjUgQEAgcmVtb3RlX3ByZXBhcmUgKGNv bnN0IGNoYXIgKm5hbWUpCisgICBzZXRzb2Nrb3B0IChsaXN0ZW5fZGVzYywgU09MX1NPQ0tFVCwg U09fUkVVU0VBRERSLCAoY2hhciAqKSAmdG1wLAorIAkgICAgICBzaXplb2YgKHRtcCkpOworIAor LSAgc29ja2FkZHIuc2luX2ZhbWlseSA9IFBGX0lORVQ7CistICBzb2NrYWRkci5zaW5fcG9ydCA9 IGh0b25zIChwb3J0KTsKKy0gIHNvY2thZGRyLnNpbl9hZGRyLnNfYWRkciA9IElOQUREUl9BTlk7 CisrICBzd2l0Y2ggKGl0ZXItPmFpX2ZhbWlseSkKKysgICAgeworKyAgICBjYXNlIEFGX0lORVQ6 CisrICAgICAgKChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikgaXRlci0+YWlfYWRkciktPnNpbl9hZGRy LnNfYWRkciA9IElOQUREUl9BTlk7CisrICAgICAgYnJlYWs7CisrICAgIGNhc2UgQUZfSU5FVDY6 CisrICAgICAgKChzdHJ1Y3Qgc29ja2FkZHJfaW42ICopIGl0ZXItPmFpX2FkZHIpLT5zaW42X2Fk ZHIgPSBpbjZhZGRyX2FueTsKKysgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICBp bnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLAorKwkJICAgICAgXygiSW52YWxpZCAn YWlfZmFtaWx5JyAlZFxuIiksIGl0ZXItPmFpX2ZhbWlseSk7CisrICAgIH0KKyAKKy0gIGlmIChi aW5kIChsaXN0ZW5fZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsIHNpemVvZiAo c29ja2FkZHIpKQorLSAgICAgIHx8IGxpc3RlbiAobGlzdGVuX2Rlc2MsIDEpKQorKyAgaWYgKGJp bmQgKGxpc3Rlbl9kZXNjLCBpdGVyLT5haV9hZGRyLCBpdGVyLT5haV9hZGRybGVuKSAhPSAwKQor ICAgICBwZXJyb3Jfd2l0aF9uYW1lICgiQ2FuJ3QgYmluZCBhZGRyZXNzIik7CisgCisrICBpZiAo bGlzdGVuIChsaXN0ZW5fZGVzYywgMSkgIT0gMCkKKysgICAgcGVycm9yX3dpdGhfbmFtZSAoIkNh bid0IGxpc3RlbiBvbiBzb2NrZXQiKTsKKysKKyAgIGNzLnRyYW5zcG9ydF9pc19yZWxpYWJsZSA9 IDE7CisgfQorIAorQEAgLTM1MCwxOCArMzk3LDI0IEBAIHJlbW90ZV9vcGVuIChjb25zdCBjaGFy ICpuYW1lKQorICNlbmRpZiAvKiBVU0VfV0lOMzJBUEkgKi8KKyAgIGVsc2UKKyAgICAgeworLSAg ICAgIGludCBwb3J0OworLSAgICAgIHNvY2tsZW5fdCBsZW47CistICAgICAgc3RydWN0IHNvY2th ZGRyX2luIHNvY2thZGRyOworLQorLSAgICAgIGxlbiA9IHNpemVvZiAoc29ja2FkZHIpOworLSAg ICAgIGlmIChnZXRzb2NrbmFtZSAobGlzdGVuX2Rlc2MsCistCQkgICAgICAgKHN0cnVjdCBzb2Nr YWRkciAqKSAmc29ja2FkZHIsICZsZW4pIDwgMAorLQkgIHx8IGxlbiA8IHNpemVvZiAoc29ja2Fk ZHIpKQorKyAgICAgIGNoYXIgbGlzdGVuX3BvcnRbR0RCX05JX01BWF9QT1JUXTsKKysgICAgICBz dHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBzb2NrYWRkcjsKKysgICAgICBzb2NrbGVuX3QgbGVuID0g c2l6ZW9mIChzb2NrYWRkcik7CisrCisrICAgICAgaWYgKGdldHNvY2tuYW1lIChsaXN0ZW5fZGVz YywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsICZsZW4pIDwgMCkKKyAJcGVycm9yX3dp dGhfbmFtZSAoIkNhbid0IGRldGVybWluZSBwb3J0Iik7CistICAgICAgcG9ydCA9IG50b2hzIChz b2NrYWRkci5zaW5fcG9ydCk7CisgCistICAgICAgZnByaW50ZiAoc3RkZXJyLCAiTGlzdGVuaW5n IG9uIHBvcnQgJWRcbiIsIHBvcnQpOworKyAgICAgIGludCByID0gZ2V0bmFtZWluZm8gKChzdHJ1 Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCBsZW4sCisrCQkJICAgTlVMTCwgMCwKKysJCQkgICBs aXN0ZW5fcG9ydCwgc2l6ZW9mIChsaXN0ZW5fcG9ydCksCisrCQkJICAgTklfTlVNRVJJQ1NFUlYp OworKworKyAgICAgIGlmIChyICE9IDApCisrCWZwcmludGYgKHN0ZGVyciwgXygiQ2FuJ3Qgb2J0 YWluIHBvcnQgd2hlcmUgd2UgYXJlIGxpc3RlbmluZzogJXMiKSwKKysJCSBnYWlfc3RyZXJyb3Ig KHIpKTsKKysgICAgICBlbHNlCisrCWZwcmludGYgKHN0ZGVyciwgXygiTGlzdGVuaW5nIG9uIHBv cnQgJXNcbiIpLCBsaXN0ZW5fcG9ydCk7CisrCisgICAgICAgZmZsdXNoIChzdGRlcnIpOworIAor ICAgICAgIC8qIFJlZ2lzdGVyIHRoZSBldmVudCBsb29wIGhhbmRsZXIuICAqLworZGlmZiAtLWdp dCBhL2dkYi9zZXItdGNwLmMgYi9nZGIvc2VyLXRjcC5jCistLS0gYS9nZGIvc2VyLXRjcC5jCisr KysgYi9nZGIvc2VyLXRjcC5jCitAQCAtMjUsNiArMjUsNyBAQAorICNpbmNsdWRlICJjbGkvY2xp LWRlY29kZS5oIgorICNpbmNsdWRlICJjbGkvY2xpLXNldHNob3cuaCIKKyAjaW5jbHVkZSAiZmls ZXN0dWZmLmgiCisrI2luY2x1ZGUgIm5ldHN0dWZmLmgiCisgCisgI2luY2x1ZGUgPHN5cy90eXBl cy5oPgorIAorQEAgLTM5LDYgKzQwLDcgQEAKKyAKKyAjaWZkZWYgVVNFX1dJTjMyQVBJCisgI2lu Y2x1ZGUgPHdpbnNvY2syLmg+CisrI2luY2x1ZGUgPHdzcGlhcGkuaD4KKyAjaWZuZGVmIEVUSU1F RE9VVAorICNkZWZpbmUgRVRJTUVET1VUIFdTQUVUSU1FRE9VVAorICNlbmRpZgorQEAgLTgxLDEy ICs4MywxMyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHRjcF9yZXRyeV9saW1pdCA9IDE1OworIAor ICNkZWZpbmUgUE9MTF9JTlRFUlZBTCA1CisgCistLyogSGVscGVyIGZ1bmN0aW9uIHRvIHdhaXQg YSB3aGlsZS4gIElmIFNDQiBpcyBub24tbnVsbCwgd2FpdCBvbiBpdHMKKy0gICBmaWxlIGRlc2Ny aXB0b3IuICBPdGhlcndpc2UganVzdCB3YWl0IG9uIGEgdGltZW91dCwgdXBkYXRpbmcgKlBPTExT LgorLSAgIFJldHVybnMgLTEgb24gdGltZW91dCBvciBpbnRlcnJ1cHQsIG90aGVyd2lzZSB0aGUg dmFsdWUgb2Ygc2VsZWN0LiAgKi8KKysvKiBIZWxwZXIgZnVuY3Rpb24gdG8gd2FpdCBhIHdoaWxl LiAgSWYgU09DSyBpcyBub3QgLTEsIHdhaXQgb24gaXRzCisrICAgZmlsZSBkZXNjcmlwdG9yLiAg T3RoZXJ3aXNlIGp1c3Qgd2FpdCBvbiBhIHRpbWVvdXQsIHVwZGF0aW5nCisrICAgKlBPTExTLiAg UmV0dXJucyAtMSBvbiB0aW1lb3V0IG9yIGludGVycnVwdCwgb3RoZXJ3aXNlIHRoZSB2YWx1ZSBv ZgorKyAgIHNlbGVjdC4gICovCisgCisgc3RhdGljIGludAorLXdhaXRfZm9yX2Nvbm5lY3QgKHN0 cnVjdCBzZXJpYWwgKnNjYiwgdW5zaWduZWQgaW50ICpwb2xscykKKyt3YWl0X2Zvcl9jb25uZWN0 IChpbnQgc29jaywgdW5zaWduZWQgaW50ICpwb2xscykKKyB7CisgICBzdHJ1Y3QgdGltZXZhbCB0 OworICAgaW50IG47CitAQCAtMTIwLDI0ICsxMjMsMjQgQEAgd2FpdF9mb3JfY29ubmVjdCAoc3Ry dWN0IHNlcmlhbCAqc2NiLCB1bnNpZ25lZCBpbnQgKnBvbGxzKQorICAgICAgIHQudHZfdXNlYyA9 IDA7CisgICAgIH0KKyAKKy0gIGlmIChzY2IpCisrICBpZiAoc29jayA+PSAwKQorICAgICB7Cisg ICAgICAgZmRfc2V0IHJzZXQsIHdzZXQsIGVzZXQ7CisgCisgICAgICAgRkRfWkVSTyAoJnJzZXQp OworLSAgICAgIEZEX1NFVCAoc2NiLT5mZCwgJnJzZXQpOworKyAgICAgIEZEX1NFVCAoc29jaywg JnJzZXQpOworICAgICAgIHdzZXQgPSByc2V0OworICAgICAgIGVzZXQgPSByc2V0OworLQkgIAor KworICAgICAgIC8qIFBPU0lYIHN5c3RlbXMgcmV0dXJuIGNvbm5lY3Rpb24gc3VjY2VzcyBvciBm YWlsdXJlIGJ5IHNpZ25hbGxpbmcKKyAJIHdzZXQuICBXaW5kb3dzIHN5c3RlbXMgcmV0dXJuIHN1 Y2Nlc3MgaW4gd3NldCBhbmQgZmFpbHVyZSBpbgorIAkgZXNldC4KKy0gICAgIAorKworIAkgV2Ug bXVzdCBjYWxsIHNlbGVjdCBoZXJlLCByYXRoZXIgdGhhbiBnZGJfc2VsZWN0LCBiZWNhdXNlCisg CSB0aGUgc2VyaWFsIHN0cnVjdHVyZSBoYXMgbm90IHlldCBiZWVuIGluaXRpYWxpemVkIC0gdGhl CisgCSBNaW5HVyBzZWxlY3Qgd3JhcHBlciB3aWxsIG5vdCBrbm93IHRoYXQgdGhpcyBGRCByZWZl cnMKKyAJIHRvIGEgc29ja2V0LiAgKi8KKy0gICAgICBuID0gc2VsZWN0IChzY2ItPmZkICsgMSwg JnJzZXQsICZ3c2V0LCAmZXNldCwgJnQpOworKyAgICAgIG4gPSBzZWxlY3QgKHNvY2sgKyAxLCAm cnNldCwgJndzZXQsICZlc2V0LCAmdCk7CisgICAgIH0KKyAgIGVsc2UKKyAgICAgLyogVXNlIGdk Yl9zZWxlY3QgaGVyZSwgc2luY2Ugd2UgaGF2ZSBubyBmaWxlIGRlc2NyaXB0b3JzLCBhbmQgb24K K0BAIC0xNTMsODAgKzE1NiwyOCBAQCB3YWl0X2Zvcl9jb25uZWN0IChzdHJ1Y3Qgc2VyaWFsICpz Y2IsIHVuc2lnbmVkIGludCAqcG9sbHMpCisgICByZXR1cm4gbjsKKyB9CisgCistLyogT3BlbiBh IHRjcCBzb2NrZXQuICAqLworKy8qIFRyeSB0byBjb25uZWN0IHRvIHRoZSBob3N0IHJlcHJlc2Vu dGVkIGJ5IEFJTkZPLiAgSWYgdGhlIGNvbm5lY3Rpb24KKysgICBzdWNjZWVkcywgcmV0dXJuIGl0 cyBzb2NrZXQuICBPdGhlcndpc2UsIHJldHVybiAtMSBhbmQgc2V0IEVSUk5PCisrICAgYWNjb3Jk aW5nbHkuICBQT0xMUyBpcyB1c2VkIHdoZW4gJ2Nvbm5lY3QnIHJldHVybnMgRUlOUFJPR1JFU1Ms IGFuZAorKyAgIHdlIG5lZWQgdG8gaW52b2tlICd3YWl0X2Zvcl9jb25uZWN0JyB0byBvYnRhaW4g dGhlIHN0YXR1cy4gICovCisgCistaW50CistbmV0X29wZW4gKHN0cnVjdCBzZXJpYWwgKnNjYiwg Y29uc3QgY2hhciAqbmFtZSkKKytzdGF0aWMgaW50CisrdHJ5X2Nvbm5lY3QgKGNvbnN0IHN0cnVj dCBhZGRyaW5mbyAqYWluZm8sIHVuc2lnbmVkIGludCAqcG9sbHMpCisgeworLSAgY2hhciBob3N0 bmFtZVsxMDBdOworLSAgY29uc3QgY2hhciAqcG9ydF9zdHI7CistICBpbnQgbiwgcG9ydCwgdG1w OworLSAgaW50IHVzZV91ZHA7CistICBzdHJ1Y3QgaG9zdGVudCAqaG9zdGVudDsKKy0gIHN0cnVj dCBzb2NrYWRkcl9pbiBzb2NrYWRkcjsKKy0jaWZkZWYgVVNFX1dJTjMyQVBJCistICB1X2xvbmcg aW9hcmc7CistI2Vsc2UKKy0gIGludCBpb2FyZzsKKy0jZW5kaWYKKy0gIHVuc2lnbmVkIGludCBw b2xscyA9IDA7CistCistICB1c2VfdWRwID0gMDsKKy0gIGlmIChzdGFydHN3aXRoIChuYW1lLCAi dWRwOiIpKQorLSAgICB7CistICAgICAgdXNlX3VkcCA9IDE7CistICAgICAgbmFtZSA9IG5hbWUg KyA0OworLSAgICB9CistICBlbHNlIGlmIChzdGFydHN3aXRoIChuYW1lLCAidGNwOiIpKQorLSAg ICBuYW1lID0gbmFtZSArIDQ7CistCistICBwb3J0X3N0ciA9IHN0cmNociAobmFtZSwgJzonKTsK Ky0KKy0gIGlmICghcG9ydF9zdHIpCistICAgIGVycm9yIChfKCJuZXRfb3BlbjogTm8gY29sb24g aW4gaG9zdCBuYW1lISIpKTsgIC8qIFNob3VsZG4ndCBldmVyCistCQkJCQkJICAgICAgIGhhcHBl bi4gICovCistCistICB0bXAgPSBzdGQ6Om1pbiAocG9ydF9zdHIgLSBuYW1lLCAocHRyZGlmZl90 KSBzaXplb2YgaG9zdG5hbWUgLSAxKTsKKy0gIHN0cm5jcHkgKGhvc3RuYW1lLCBuYW1lLCB0bXAp OwkvKiBEb24ndCB3YW50IGNvbG9uLiAgKi8KKy0gIGhvc3RuYW1lW3RtcF0gPSAnXDAwMCc7CS8q IFRpZSBvZmYgaG9zdCBuYW1lLiAgKi8KKy0gIHBvcnQgPSBhdG9pIChwb3J0X3N0ciArIDEpOwor LQorLSAgLyogRGVmYXVsdCBob3N0bmFtZSBpcyBsb2NhbGhvc3QuICAqLworLSAgaWYgKCFob3N0 bmFtZVswXSkKKy0gICAgc3RyY3B5IChob3N0bmFtZSwgImxvY2FsaG9zdCIpOworLQorLSAgaG9z dGVudCA9IGdldGhvc3RieW5hbWUgKGhvc3RuYW1lKTsKKy0gIGlmICghaG9zdGVudCkKKy0gICAg eworLSAgICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGVyciwgIiVzOiB1bmtub3duIGhv c3RcbiIsIGhvc3RuYW1lKTsKKy0gICAgICBlcnJubyA9IEVOT0VOVDsKKy0gICAgICByZXR1cm4g LTE7CistICAgIH0KKysgIGludCBzb2NrID0gZ2RiX3NvY2tldF9jbG9leGVjIChhaW5mby0+YWlf ZmFtaWx5LCBhaW5mby0+YWlfc29ja3R5cGUsCisrCQkJCSBhaW5mby0+YWlfcHJvdG9jb2wpOwor IAorLSAgc29ja2FkZHIuc2luX2ZhbWlseSA9IFBGX0lORVQ7CistICBzb2NrYWRkci5zaW5fcG9y dCA9IGh0b25zIChwb3J0KTsKKy0gIG1lbWNweSAoJnNvY2thZGRyLnNpbl9hZGRyLnNfYWRkciwg aG9zdGVudC0+aF9hZGRyLAorLQkgIHNpemVvZiAoc3RydWN0IGluX2FkZHIpKTsKKy0KKy0gcmV0 cnk6CistCistICBpZiAodXNlX3VkcCkKKy0gICAgc2NiLT5mZCA9IGdkYl9zb2NrZXRfY2xvZXhl YyAoUEZfSU5FVCwgU09DS19ER1JBTSwgMCk7CistICBlbHNlCistICAgIHNjYi0+ZmQgPSBnZGJf c29ja2V0X2Nsb2V4ZWMgKFBGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsKKy0KKy0gIGlmIChzY2It PmZkID09IC0xKQorKyAgaWYgKHNvY2sgPCAwKQorICAgICByZXR1cm4gLTE7CistICAKKysKKyAg IC8qIFNldCBzb2NrZXQgbm9uYmxvY2tpbmcuICAqLworLSAgaW9hcmcgPSAxOworLSAgaW9jdGwg KHNjYi0+ZmQsIEZJT05CSU8sICZpb2FyZyk7CisrICBpbnQgaW9hcmcgPSAxOworKworKyAgaW9j dGwgKHNvY2ssIEZJT05CSU8sICZpb2FyZyk7CisgCisgICAvKiBVc2UgTm9uLWJsb2NraW5nIGNv bm5lY3QuICBjb25uZWN0KCkgd2lsbCByZXR1cm4gMCBpZiBjb25uZWN0ZWQKKyAgICAgIGFscmVh ZHkuICAqLworLSAgbiA9IGNvbm5lY3QgKHNjYi0+ZmQsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNv Y2thZGRyLCBzaXplb2YgKHNvY2thZGRyKSk7CistCistICBpZiAobiA8IDApCisrICBpZiAoY29u bmVjdCAoc29jaywgYWluZm8tPmFpX2FkZHIsIGFpbmZvLT5haV9hZGRybGVuKSA8IDApCisgICAg IHsKKyAjaWZkZWYgVVNFX1dJTjMyQVBJCisgICAgICAgaW50IGVyciA9IFdTQUdldExhc3RFcnJv cigpOworQEAgLTIzNCwyMSArMTg1LDI2IEBAIG5ldF9vcGVuIChzdHJ1Y3Qgc2VyaWFsICpzY2Is IGNvbnN0IGNoYXIgKm5hbWUpCisgICAgICAgaW50IGVyciA9IGVycm5vOworICNlbmRpZgorIAor LSAgICAgIC8qIE1heWJlIHdlJ3JlIHdhaXRpbmcgZm9yIHRoZSByZW1vdGUgdGFyZ2V0IHRvIGJl Y29tZSByZWFkeSB0bworLQkgYWNjZXB0IGNvbm5lY3Rpb25zLiAgKi8KKy0gICAgICBpZiAodGNw X2F1dG9fcmV0cnkKKysgICAgICAvKiBJZiB3ZSd2ZSBnb3QgYSAiY29ubmVjdGlvbiByZWZ1c2Vk IiBlcnJvciwganVzdCByZXR1cm4KKysJIC0xLiAgVGhlIGNhbGxlciB3aWxsIGtub3cgd2hhdCB0 byBkby4gICovCisrICAgICAgaWYgKAorICNpZmRlZiBVU0VfV0lOMzJBUEkKKy0JICAmJiBlcnIg PT0gV1NBRUNPTk5SRUZVU0VECisrCSAgZXJyID09IFdTQUVDT05OUkVGVVNFRAorICNlbHNlCist CSAgJiYgZXJyID09IEVDT05OUkVGVVNFRAorKwkgIGVyciA9PSBFQ09OTlJFRlVTRUQKKyAjZW5k aWYKKy0JICAmJiB3YWl0X2Zvcl9jb25uZWN0IChOVUxMLCAmcG9sbHMpID49IDApCisrCSAgKQor IAl7CistCSAgY2xvc2UgKHNjYi0+ZmQpOworLQkgIGdvdG8gcmV0cnk7CisrCSAgY2xvc2UgKHNv Y2spOworKwkgIGVycm5vID0gZXJyOworKwkgIHJldHVybiAtMTsKKyAJfQorIAorICAgICAgIGlm ICgKKysJICAvKiBBbnkgb3RoZXIgZXJyb3IgKGV4Y2VwdCBFSU5QUk9HUkVTUykgd2lsbCBiZSAi c3dhbGxvd2VkIgorKwkgICAgIGhlcmUuICBXZSByZXR1cm4gd2l0aG91dCBzcGVjaWZ5aW5nIGEg cmV0dXJuIHZhbHVlLCBhbmQKKysJICAgICBzZXQgZXJybm8gaWYgdGhlIGNhbGxlciB3YW50cyB0 byBpbnNwZWN0IHdoYXQKKysJICAgICBoYXBwZW5lZC4gICovCisgI2lmZGVmIFVTRV9XSU4zMkFQ SQorIAkgIC8qIFVuZGVyIFdpbmRvd3MsIGNhbGxpbmcgImNvbm5lY3QiIHdpdGggYSBub24tYmxv Y2tpbmcgc29ja2V0CisgCSAgICAgcmVzdWx0cyBpbiBXU0FFV09VTERCTE9DSywgbm90IFdTQUVJ TlBST0dSRVNTLiAgKi8KK0BAIC0yNTgsNjYgKzIxNCwxNjYgQEAgbmV0X29wZW4gKHN0cnVjdCBz ZXJpYWwgKnNjYiwgY29uc3QgY2hhciAqbmFtZSkKKyAjZW5kaWYKKyAJICApCisgCXsKKysJICBj bG9zZSAoc29jayk7CisgCSAgZXJybm8gPSBlcnI7CistCSAgbmV0X2Nsb3NlIChzY2IpOworIAkg IHJldHVybiAtMTsKKyAJfQorIAorICAgICAgIC8qIExvb2tzIGxpa2Ugd2UgbmVlZCB0byB3YWl0 IGZvciB0aGUgY29ubmVjdC4gICovCistICAgICAgZG8gCistCXsKKy0JICBuID0gd2FpdF9mb3Jf Y29ubmVjdCAoc2NiLCAmcG9sbHMpOworLQl9IAorKyAgICAgIGludCBuOworKworKyAgICAgIGRv CisrCW4gPSB3YWl0X2Zvcl9jb25uZWN0IChzb2NrLCBwb2xscyk7CisgICAgICAgd2hpbGUgKG4g PT0gMCk7CisrCisgICAgICAgaWYgKG4gPCAwKQorIAl7CistCSAgbmV0X2Nsb3NlIChzY2IpOwor KwkgIGludCBzYXZlZF9lcnJubyA9IGVycm5vOworKworKwkgIC8qIEEgbmVnYXRpdmUgdmFsdWUg aGVyZSBtZWFucyB0aGF0IHdlIGVpdGhlciB0aW1lZCBvdXQgb3IKKysJICAgICBnb3QgaW50ZXJy dXB0ZWQgYnkgdGhlIHVzZXIuICBKdXN0IHJldHVybi4gICovCisrCSAgY2xvc2UgKHNvY2spOwor KwkgIGVycm5vID0gc2F2ZWRfZXJybm87CisgCSAgcmV0dXJuIC0xOworIAl9CisgICAgIH0KKyAK KyAgIC8qIEdvdCBzb21ldGhpbmcuICBJcyBpdCBhbiBlcnJvcj8gICovCistICB7CistICAgIGlu dCByZXMsIGVycjsKKy0gICAgc29ja2xlbl90IGxlbjsKKy0KKy0gICAgbGVuID0gc2l6ZW9mIChl cnIpOworLSAgICAvKiBPbiBXaW5kb3dzLCB0aGUgZm91cnRoIHBhcmFtZXRlciB0byBnZXRzb2Nr b3B0IGlzIGEgImNoYXIgKiI7CistICAgICAgIG9uIFVOSVggc3lzdGVtcyBpdCBpcyBnZW5lcmFs bHkgInZvaWQgKiIuICBUaGUgY2FzdCB0byAiY2hhciAqIgorLSAgICAgICBpcyBPSyBldmVyeXdo ZXJlLCBzaW5jZSBpbiBDKysgYW55IGRhdGEgcG9pbnRlciB0eXBlIGNhbiBiZQorLSAgICAgICBp bXBsaWNpdGx5IGNvbnZlcnRlZCB0byAidm9pZCAqIi4gICovCistICAgIHJlcyA9IGdldHNvY2tv cHQgKHNjYi0+ZmQsIFNPTF9TT0NLRVQsIFNPX0VSUk9SLCAoY2hhciAqKSAmZXJyLCAmbGVuKTsK Ky0gICAgaWYgKHJlcyA8IDAgfHwgZXJyKQorLSAgICAgIHsKKy0JLyogTWF5YmUgdGhlIHRhcmdl dCBzdGlsbCBpc24ndCByZWFkeSB0byBhY2NlcHQgdGhlIGNvbm5lY3Rpb24uICAqLworLQlpZiAo dGNwX2F1dG9fcmV0cnkKKysgIGludCBlcnI7CisrICBzb2NrbGVuX3QgbGVuID0gc2l6ZW9mIChl cnIpOworKworKyAgLyogT24gV2luZG93cywgdGhlIGZvdXJ0aCBwYXJhbWV0ZXIgdG8gZ2V0c29j a29wdCBpcyBhICJjaGFyICoiOworKyAgICAgb24gVU5JWCBzeXN0ZW1zIGl0IGlzIGdlbmVyYWxs eSAidm9pZCAqIi4gIFRoZSBjYXN0IHRvICJjaGFyICoiCisrICAgICBpcyBPSyBldmVyeXdoZXJl LCBzaW5jZSBpbiBDKysgYW55IGRhdGEgcG9pbnRlciB0eXBlIGNhbiBiZQorKyAgICAgaW1wbGlj aXRseSBjb252ZXJ0ZWQgdG8gInZvaWQgKiIuICAqLworKyAgaW50IHJldCA9IGdldHNvY2tvcHQg KHNvY2ssIFNPTF9TT0NLRVQsIFNPX0VSUk9SLCAoY2hhciAqKSAmZXJyLCAmbGVuKTsKKysKKysg IGlmIChyZXQgPCAwKQorKyAgICB7CisrICAgICAgaW50IHNhdmVkX2Vycm5vID0gZXJybm87Cisr CisrICAgICAgY2xvc2UgKHNvY2spOworKyAgICAgIGVycm5vID0gc2F2ZWRfZXJybm87CisrICAg ICAgcmV0dXJuIC0xOworKyAgICB9CisrICBlbHNlIGlmIChyZXQgPT0gMCAmJiBlcnIgIT0gMCkK KysgICAgeworKyAgICAgIGNsb3NlIChzb2NrKTsKKysgICAgICBlcnJubyA9IGVycjsKKysgICAg ICByZXR1cm4gLTE7CisrICAgIH0KKysKKysgIC8qIFRoZSBjb25uZWN0aW9uIHN1Y2NlZWRlZC4g IFJldHVybiB0aGUgc29ja2V0LiAgKi8KKysgIHJldHVybiBzb2NrOworK30KKysKKysvKiBPcGVu IGEgdGNwIHNvY2tldC4gICovCisrCisraW50CisrbmV0X29wZW4gKHN0cnVjdCBzZXJpYWwgKnNj YiwgY29uc3QgY2hhciAqbmFtZSkKKyt7CisrICBzdHJ1Y3QgYWRkcmluZm8gaGludDsKKysgIHN0 cnVjdCBhZGRyaW5mbyAqYWluZm87CisrCisrICBtZW1zZXQgKCZoaW50LCAwLCBzaXplb2YgKGhp bnQpKTsKKysgIC8qIEFzc3VtZSBubyBwcmVmaXggd2lsbCBiZSBwYXNzZWQsIHRoZXJlZm9yZSB3 ZSBzaG91bGQgdXNlCisrICAgICBBRl9VTlNQRUMuICAqLworKyAgaGludC5haV9mYW1pbHkgPSBB Rl9VTlNQRUM7CisrICBoaW50LmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU07CisrICBoaW50LmFp X3Byb3RvY29sID0gSVBQUk9UT19UQ1A7CisrCisrICBwYXJzZWRfY29ubmVjdGlvbl9zcGVjIHBh cnNlZCA9IHBhcnNlX2Nvbm5lY3Rpb25fc3BlYyAobmFtZSwgJmhpbnQpOworKworKyAgaWYgKHBh cnNlZC5wb3J0X3N0ci5lbXB0eSAoKSkKKysgICAgZXJyb3IgKF8oIk1pc3NpbmcgcG9ydCBvbiBo b3N0bmFtZSAnJXMnIiksIG5hbWUpOworKworKyAgaW50IHIgPSBnZXRhZGRyaW5mbyAocGFyc2Vk Lmhvc3Rfc3RyLmNfc3RyICgpLAorKwkJICAgICAgIHBhcnNlZC5wb3J0X3N0ci5jX3N0ciAoKSwK KysJCSAgICAgICAmaGludCwgJmFpbmZvKTsKKysKKysgIGlmIChyICE9IDApCisrICAgIHsKKysg ICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRlcnIsIF8oIiVzOiBjYW5ub3QgcmVzb2x2 ZSBuYW1lOiAlc1xuIiksCisrCQkJICBuYW1lLCBnYWlfc3RyZXJyb3IgKHIpKTsKKysgICAgICBl cnJubyA9IEVOT0VOVDsKKysgICAgICByZXR1cm4gLTE7CisrICAgIH0KKysKKysgIHNjb3BlZF9m cmVlX2FkZHJpbmZvIGZyZWVfYWluZm8gKGFpbmZvKTsKKysKKysgIC8qIEZsYWcgdG8gaW5kaWNh dGUgd2hldGhlciB3ZSd2ZSBnb3QgYSBjb25uZWN0aW9uIHJlZnVzZWQuICBJdCB3aWxsCisrICAg ICBiZSB0cnVlIGlmIGFueSBvZiB0aGUgY29ubmVjdGlvbnMgdHJpZWQgd2FzIHJlZnVzZWQuICAq LworKyAgYm9vbCBnb3RfY29ubnJlZnVzZWQ7CisrICAvKiBJZiBhIGNvbm5lY3Rpb24gc3VjY2Vl ZWRzLCBTVUNDRVNTX0FJTkZPIHdpbGwgcG9pbnQgdG8gdGhlCisrICAgICAnc3RydWN0IGFkZHJp bmZvJyB0aGF0IHN1Y2NlZWQuICAqLworKyAgc3RydWN0IGFkZHJpbmZvICpzdWNjZXNzX2FpbmZv ID0gTlVMTDsKKysgIHVuc2lnbmVkIGludCBwb2xscyA9IDA7CisrCisrICAvKiBBc3N1bWUgdGhl IHdvcnN0LiAgKi8KKysgIHNjYi0+ZmQgPSAtMTsKKysKKysgIGRvCisrICAgIHsKKysgICAgICBn b3RfY29ubnJlZnVzZWQgPSBmYWxzZTsKKysKKysgICAgICBmb3IgKHN0cnVjdCBhZGRyaW5mbyAq aXRlciA9IGFpbmZvOyBpdGVyICE9IE5VTEw7IGl0ZXIgPSBpdGVyLT5haV9uZXh0KQorKwl7Cisr CSAgLyogSXRlcmF0ZSBvdmVyIHRoZSBsaXN0IG9mIHBvc3NpYmxlIGFkZHJlc3NlcyB0byBjb25u ZWN0CisrCSAgICAgdG8uICBGb3IgZWFjaCwgd2UnbGwgdHJ5IHRvIGNvbm5lY3QgYW5kIHNlZSBp ZiBpdAorKwkgICAgIHN1Y2NlZWRzLiAgKi8KKysJICBpbnQgc29jayA9IHRyeV9jb25uZWN0IChp dGVyLCAmcG9sbHMpOworKworKwkgIGlmIChzb2NrID49IDApCisrCSAgICB7CisrCSAgICAgIC8q IFdlJ3ZlIGdvdHRlbiBhIHN1Y2Nlc3NmdWwgY29ubmVjdGlvbi4gIFNhdmUgaXRzCisrCQkgJ3N0 cnVjdCBhZGRyaW5mbycsIHRoZSBzb2NrZXQsIGFuZCBicmVhay4gICovCisrCSAgICAgIHN1Y2Nl c3NfYWluZm8gPSBpdGVyOworKwkgICAgICBzY2ItPmZkID0gc29jazsKKysJICAgICAgYnJlYWs7 CisrCSAgICB9CisrCSAgZWxzZSBpZiAoCisgI2lmZGVmIFVTRV9XSU4zMkFQSQorLQkgICAgJiYg ZXJyID09IFdTQUVDT05OUkVGVVNFRAorKwkgIGVycm5vID09IFdTQUVDT05OUkVGVVNFRAorICNl bHNlCistCSAgICAmJiBlcnIgPT0gRUNPTk5SRUZVU0VECisrCSAgZXJybm8gPT0gRUNPTk5SRUZV U0VECisgI2VuZGlmCistCSAgICAmJiB3YWl0X2Zvcl9jb25uZWN0IChOVUxMLCAmcG9sbHMpID49 IDApCistCSAgeworLQkgICAgY2xvc2UgKHNjYi0+ZmQpOworLQkgICAgZ290byByZXRyeTsKKy0J ICB9CistCWlmIChlcnIpCistCSAgZXJybm8gPSBlcnI7CistCW5ldF9jbG9zZSAoc2NiKTsKKy0J cmV0dXJuIC0xOworLSAgICAgIH0KKy0gIH0gCisrCQkgICApCisrCSAgICBnb3RfY29ubnJlZnVz ZWQgPSB0cnVlOworKwl9CisrICAgIH0KKysgIC8qIEp1c3QgcmV0cnkgaWY6CisrCisrICAgICAt IHRjcF9hdXRvX3JldHJ5IGlzIHRydWUsIGFuZAorKyAgICAgLSBXZSBoYXZlbid0IGdvdHRlbiBh IGNvbm5lY3Rpb24geWV0LCBhbmQKKysgICAgIC0gQW55IG9mIG91ciBjb25uZWN0aW9uIGF0dGVt cHRzIHJldHVybmVkIHdpdGggRUNPTk5SRUZVU0VELCBhbmQKKysgICAgIC0gd2FpdF9mb3JfY29u bmVjdCBzaWduYWxzIHRoYXQgd2UgY2FuIGtlZXAgZ29pbmcuICAqLworKyAgd2hpbGUgKHRjcF9h dXRvX3JldHJ5CisrCSAmJiBzdWNjZXNzX2FpbmZvID09IE5VTEwKKysJICYmIGdvdF9jb25ucmVm dXNlZAorKwkgJiYgd2FpdF9mb3JfY29ubmVjdCAoLTEsICZwb2xscykgPj0gMCk7CisrCisrICBp ZiAoc3VjY2Vzc19haW5mbyA9PSBOVUxMKQorKyAgICB7CisrICAgICAgbmV0X2Nsb3NlIChzY2Ip OworKyAgICAgIHJldHVybiAtMTsKKysgICAgfQorIAorICAgLyogVHVybiBvZmYgbm9uYmxvY2tp bmcuICAqLworLSAgaW9hcmcgPSAwOworKyNpZmRlZiBVU0VfV0lOMzJBUEkKKysgIHVfbG9uZyBp b2FyZyA9IDA7CisrI2Vsc2UKKysgIGludCBpb2FyZyA9IDA7CisrI2VuZGlmCisrCisgICBpb2N0 bCAoc2NiLT5mZCwgRklPTkJJTywgJmlvYXJnKTsKKyAKKy0gIGlmICh1c2VfdWRwID09IDApCisr ICBpZiAoc3VjY2Vzc19haW5mby0+YWlfc29ja3R5cGUgPT0gSVBQUk9UT19UQ1ApCisgICAgIHsK KyAgICAgICAvKiBEaXNhYmxlIE5hZ2xlIGFsZ29yaXRobS4gIE5lZWRlZCBpbiBzb21lIGNhc2Vz LiAgKi8KKy0gICAgICB0bXAgPSAxOworKyAgICAgIGludCB0bXAgPSAxOworKworICAgICAgIHNl dHNvY2tvcHQgKHNjYi0+ZmQsIElQUFJPVE9fVENQLCBUQ1BfTk9ERUxBWSwKKy0JCSAgKGNoYXIg KikmdG1wLCBzaXplb2YgKHRtcCkpOworKwkJICAoY2hhciAqKSAmdG1wLCBzaXplb2YgKHRtcCkp OworICAgICB9CisgCisgI2lmZGVmIFNJR1BJUEUKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L0NoYW5nZUxvZyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCistLS0gYS9nZGIvdGVzdHN1aXRl L0NoYW5nZUxvZworKysrIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKK0BAIC0xLDMgKzEsMjMg QEAKKysyMDE4LTA3LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQu Y29tPgorKwkgICAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgor KwkgICAgUGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNvbT4KKysJICAgIFRzdXRvbXUg U2VraSAgPHNla2lyaWtpQGdtYWlsLmNvbT4KKysKKysJKiBSRUFETUUgKFRlc3RzdWl0ZSBQYXJh bWV0ZXJzKTogTWVudGlvbiBuZXcgJ0dEQl9URVNUX1NPQ0tFVEhPU1QnCisrCXBhcmFtZXRlci4K KysJKiBib2FyZHMvbmF0aXZlLWV4dGVuZGVkLWdkYnNlcnZlci5leHA6IERvIG5vdCBzZXQgJ3Nv Y2tldGhvc3QnCisrCWJ5IGRlZmF1bHQuCisrCSogYm9hcmRzL25hdGl2ZS1nZGJzZXJ2ZXIuZXhw OiBMaWtld2lzZS4KKysJKiBnZGIuc2VydmVyL3J1bi13aXRob3V0LWxvY2FsLWJpbmFyeS5leHA6 IEltcHJvdmUgcmVnZXhwIHVzZWQKKysJZm9yIGRldGVjdGluZyB3aGVuIGEgcmVtb3RlIGRlYnVn Z2luZyBjb25uZWN0aW9uIHN1Y2NlZWRzLgorKwkqIGdkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3Qu ZXhwOiBOZXcgZmlsZS4KKysJKiBsaWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwIChnZGJzZXJ2ZXJf ZGVmYXVsdF9nZXRfY29tbV9wb3J0KToKKysJRG8gbm90IHByZWZpeCB0aGUgcG9ydCBudW1iZXIg d2l0aCAiOiIuCisrCShnZGJzZXJ2ZXJfc3RhcnQpOiBOZXcgZ2xvYmFsIEdEQl9URVNUX1NPQ0tF VEhPU1QuICBJbXBsZW1lbnQKKysJc3VwcG9ydCBmb3IgZGV0ZWN0aW5nIGFuZCB1c2luZyBpdC4g IEFkZCAnJGRlYnVnaG9zdF9nZGJzZXJ2ZXInCisrCXRvIHRoZSBsaXN0IG9mIGFyZ3VtZW50cyB1 c2VkIHRvIHN0YXJ0IGdkYnNlcnZlci4gIEhhbmRsZSBjYXNlCisrCXdoZW4gZ2Ric2VydmVyIGNh bm5vdCByZXNvbHZlIGEgbmV0d29yayBuYW1lLgorKworIDIwMTgtMDctMTEgIFNlcmdpbyBEdXJp Z2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+CisgCisgCVBSIGMrKy8yMzM3MworZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvUkVBRE1FIGIvZ2RiL3Rlc3RzdWl0ZS9SRUFETUUKKy0t LSBhL2dkYi90ZXN0c3VpdGUvUkVBRE1FCisrKysgYi9nZGIvdGVzdHN1aXRlL1JFQURNRQorQEAg LTI1OSw2ICsyNTksMjAgQEAgVGhpcyBtYWtlIChub3QgcnVudGVzdCkgdmFyaWFibGUgaXMgdXNl ZCB0byBzcGVjaWZ5IHdoZXRoZXIgdGhlCisgdGVzdHN1aXRlIHByZWxvYWRzIHRoZSByZWFkMS5z byBsaWJyYXJ5IGludG8gZXhwZWN0LiAgQW55IG5vbi1lbXB0eQorIHZhbHVlIG1lYW5zIHRydWUu ICBTZWUgIlJhY2UgZGV0ZWN0aW9uIiBiZWxvdy4KKyAKKytHREJfVEVTVF9TT0NLRVRIT1NUCisr CisrVGhpcyB2YXJpYWJsZSBjYW4gcHJvdmlkZSB0aGUgaG9zdG5hbWUvYWRkcmVzcyB0aGF0IHNo b3VsZCBiZSB1c2VkCisrd2hlbiBwZXJmb3JtaW5nIEdEQnNlcnZlci1yZWxhdGVkIHRlc3RzLiAg VGhpcyBpcyB1c2VmdWwgaW4gc29tZQorK3NpdHVhdGlvbnMsIGUuZy4sIHdoZW4geW91IHdhbnQg dG8gdGVzdCB0aGUgSVB2NiBjb25uZWN0aXZpdHkgb2YgR0RCCisrYW5kIEdEQnNlcnZlciwgb3Ig d2hlbiB1c2luZyBhIGRpZmZlcmVudCBob3N0bmFtZS9hZGRyZXNzIGlzIG5lZWRlZC4KKytGb3Ig ZXhhbXBsZSwgdG8gbWFrZSBHREIgYW5kIEdEQnNlcnZlciB1c2UgSVB2Ni1vbmx5IGNvbm5lY3Rp b25zLCB5b3UKKytjYW4gZG86CisrCisrCW1ha2UgY2hlY2sgVEVTVFM9ImdkYi5zZXJ2ZXIvKi5l eHAiIFJVTlRFU1RGTEFHUz0nR0RCX1RFU1RfU09DS0VUSE9TVD10Y3A2Ols6OjFdJworKworK05v dGUgdGhhdCBvbmx5IGEgaG9zdG5hbWUvYWRkcmVzcyBjYW4gYmUgcHJvdmlkZWQsIHdpdGhvdXQg YSBwb3J0CisrbnVtYmVyLgorKworIFJhY2UgZGV0ZWN0aW9uCisgKioqKioqKioqKioqKioKKyAK K2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZXh0ZW5kZWQtZ2Ric2Vy dmVyLmV4cCBiL2dkYi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2ZS1leHRlbmRlZC1nZGJzZXJ2ZXIu ZXhwCistLS0gYS9nZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZXh0ZW5kZWQtZ2Ric2VydmVy LmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9ib2FyZHMvbmF0aXZlLWV4dGVuZGVkLWdkYnNlcnZl ci5leHAKK0BAIC0yNCw4ICsyNCw2IEBAIGxvYWRfZ2VuZXJpY19jb25maWcgImV4dGVuZGVkLWdk YnNlcnZlciIKKyBsb2FkX2JvYXJkX2Rlc2NyaXB0aW9uICJnZGJzZXJ2ZXItYmFzZSIKKyBsb2Fk X2JvYXJkX2Rlc2NyaXB0aW9uICJsb2NhbC1ib2FyZCIKKyAKKy1zZXRfYm9hcmRfaW5mbyBzb2Nr ZXRob3N0ICJsb2NhbGhvc3Q6IgorLQorICMgV2Ugd2lsbCBiZSB1c2luZyB0aGUgZXh0ZW5kZWQg R0RCIHJlbW90ZSBwcm90b2NvbC4KKyBzZXRfYm9hcmRfaW5mbyBnZGJfcHJvdG9jb2wgImV4dGVu ZGVkLXJlbW90ZSIKKyAKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUt Z2Ric2VydmVyLmV4cCBiL2dkYi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2ZS1nZGJzZXJ2ZXIuZXhw CistLS0gYS9nZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZ2Ric2VydmVyLmV4cAorKysrIGIv Z2RiL3Rlc3RzdWl0ZS9ib2FyZHMvbmF0aXZlLWdkYnNlcnZlci5leHAKK0BAIC0zMCw3ICszMCw2 IEBAIHNldF9ib2FyZF9pbmZvIGdkYixkb19yZWxvYWRfb25fcnVuIDEKKyAjIFRoZXJlJ3Mgbm8g c3VwcG9ydCBmb3IgYXJndW1lbnQtcGFzc2luZyAoeWV0KS4KKyBzZXRfYm9hcmRfaW5mbyBub2Fy Z3MgMQorIAorLXNldF9ib2FyZF9pbmZvIHNvY2tldGhvc3QgImxvY2FsaG9zdDoiCisgc2V0X2Jv YXJkX2luZm8gdXNlX2dkYl9zdHViIDEKKyBzZXRfYm9hcmRfaW5mbyBleGl0X2lzX3JlbGlhYmxl IDEKKyAKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQt bG9jYWwtYmluYXJ5LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnNlcnZlci9ydW4td2l0aG91dC1s b2NhbC1iaW5hcnkuZXhwCistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5zZXJ2ZXIvcnVuLXdpdGhv dXQtbG9jYWwtYmluYXJ5LmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuc2VydmVyL3J1bi13 aXRob3V0LWxvY2FsLWJpbmFyeS5leHAKK0BAIC01Myw3ICs1Myw3IEBAIHNhdmVfdmFycyB7IEdE QkZMQUdTIH0geworICAgICBzZXQgdXNlX2dkYl9zdHViIDAKKyAKKyAgICAgZ2RiX3Rlc3QgInRh cmdldCAke2dkYnNlcnZlcl9wcm90b2NvbH0gJHtnZGJzZXJ2ZXJfZ2RicG9ydH0iIFwKKy0JIlJl bW90ZSBkZWJ1Z2dpbmcgdXNpbmcgJGdkYnNlcnZlcl9nZGJwb3J0IiBcCisrCSJSZW1vdGUgZGVi dWdnaW5nIHVzaW5nIFtzdHJpbmdfdG9fcmVnZXhwICRnZGJzZXJ2ZXJfZ2RicG9ydF0iIFwKKyAJ ImNvbm5lY3QgdG8gZ2Ric2VydmVyIgorIAorICAgICBnZGJfdGVzdCAicnVuIiBcCitkaWZmIC0t Z2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuc2VydmVyL3NlcnZlci1jb25uZWN0LmV4cCBiL2dkYi90 ZXN0c3VpdGUvZ2RiLnNlcnZlci9zZXJ2ZXItY29ubmVjdC5leHAKK25ldyBmaWxlIG1vZGUgMTAw NjQ0CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5zZXJ2ZXIvc2VydmVy LWNvbm5lY3QuZXhwCitAQCAtMCwwICsxLDExMSBAQAorKyMgVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0 IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKysjCisrIyBDb3B5cmlnaHQgMjAxOCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor KyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LgorKworKyMgVGVzdCBtdWx0aXBsZSB0eXBlcyBvZiBjb25uZWN0aW9uIChJUHY0LCBJUHY2LCBU Q1AsIFVEUCkgYW5kIG1ha2UKKysjIHN1cmUgYm90aCBnZGJzZXJ2ZXIgYW5kIEdEQiB3b3JrLgor KworK2xvYWRfbGliIGdkYnNlcnZlci1zdXBwb3J0LmV4cAorKworK3N0YW5kYXJkX3Rlc3RmaWxl IG5vcm1hbC5jCisrCisraWYge1tza2lwX2dkYnNlcnZlcl90ZXN0c119IHsKKysgICAgcmV0dXJu IDAKKyt9CisrCisrIyBXZSB3YW50IHRvIGhhdmUgY29udHJvbCBvdmVyIHdoZXJlIHdlIHN0YXJ0 IGdkYnNlcnZlci4KKytpZiB7IFtpc19yZW1vdGUgdGFyZ2V0XSB9IHsKKysgICAgcmV0dXJuIDAK Kyt9CisrCisraWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAiZmFpbGVkIHRvIHByZXBhcmUiICR0 ZXN0ZmlsZSAkc3JjZmlsZSBkZWJ1Z10gfSB7CisrICAgIHJldHVybiAtMQorK30KKysKKysjIE1h a2Ugc3VyZSB3ZSdyZSBkaXNjb25uZWN0ZWQsIGluIGNhc2Ugd2UncmUgdGVzdGluZyB3aXRoIGFu CisrIyBleHRlbmRlZC1yZW1vdGUgYm9hcmQsIHRoZXJlZm9yZSBhbHJlYWR5IGNvbm5lY3RlZC4K KytnZGJfdGVzdCAiZGlzY29ubmVjdCIgIi4qIgorKworK3NldCB0YXJnZXRfZXhlYyBbZ2Ric2Vy dmVyX2Rvd25sb2FkX2N1cnJlbnRfcHJvZ10KKysKKysjIEFuIGFycmF5IGNvbnRhaW5pbmcgdGhl IHRlc3QgaW5zdHJ1Y3Rpb25zIGZvciBlYWNoIHNjZW5hcmlvLiAgVGhlCisrIyBkZXNjcmlwdGlv biBvZiBlYWNoIGZpZWxkIGlzIGFzIGZvbGxvd3M6CisrIworKyMgLSBUaGUgY29ubmVjdGlvbiBz cGVjaWZpY2F0aW9uIHRvIGJlIHVzZWQgd2hlbiBzdGFydGluZworKyMgICBnZGJzZXJ2ZXIvR0RC LiAgVGhpcyBzdHJpbmcgd2lsbCBiZSB1c2VkIHRvIHNldCB0aGUKKysjICAgR0RCX1RFU1RfU09D S0VUSE9TVCB3aGVuIGNhbGxpbmcgZ2Ric2VydmVyX3N0YXJ0LgorKyMKKysjIC0gQSBmbGFnIGlu ZGljYXRpbmcgd2hldGhlciBnZGJzZXJ2ZXIgc2hvdWxkIGZhaWwgd2hlbiB3ZSBhdHRlbXB0IHRv CisrIyAgIHN0YXJ0IGl0LiAgVXNlZnVsIHdoZW4gdGVzdGluZyBlcnJvbmVvdXMgY29ubmVjdGlv biBzcGVjcyBzdWNoIGFzCisrIyAgICJ0Y3A4OiIuCisrIworKyMgLSBUaGUgcHJlZml4IHRoYXQg c2hvdWxkIGJlIHByZXBlbmRlZCB0byB0aGUgdGVzdCBtZXNzYWdlcy4KKytzZXQgdGVzdF9wYXJh bXMgXAorKyAgICB7IFwKKysJICB7ICJ0Y3A0OjEyNy4wLjAuMSIgMCAidGNwNCIgfSBcCisrCSAg eyAidGNwNjo6OjEiICAgICAgIDAgInRjcDYiIH0gXAorKwkgIHsgInRjcDY6Wzo6MV0iICAgICAw ICJ0Y3A2LXdpdGgtYnJhY2tldHMiIH0gXAorKwkgIHsgInRjcDpsb2NhbGhvc3QiICAwICJ0Y3Ai IH0gXAorKwkgIHsgInVkcDQ6MTI3LjAuMC4xIiAwICJ1ZHA0IiB9IFwKKysJICB7ICJ1ZHA2Ojo6 MSIgICAgICAgMCAidWRwNiIgfSBcCisrCSAgeyAidWRwNjpbOjoxXSIgICAgIDAgInVkcDYtd2l0 aC1icmFja2V0cyIgfSBcCisrCSAgeyAidGNwODoxMjMiICAgICAgIDEgInRjcDgiIH0gXAorKwkg IHsgInVkcDEyMzo6OiIgICAgICAxICJ1ZHAxMjMiIH0gXAorKwkgIHsgImdhcmJhZ2U6MTIzNCIg ICAxICJnYXJiYWdlOjEyMzQiIH0gXAorKyAgICB9CisrCisrIyBUaGUgYmVzdCB3YXkgdG8gdGVz dCBkaWZmZXJlbnQgdHlwZXMgb2YgY29ubmVjdGlvbnMgaXMgdG8gc2V0IHRoZQorKyMgR0RCX1RF U1RfU09DS0VUSE9TVCB2YXJpYWJsZSBhY2NvcmRpbmdseS4KKytzYXZlX3ZhcnMgeyBHREJfVEVT VF9TT0NLRVRIT1NUIH0geworKyAgICBmb3JlYWNoIGxpbmUgJHRlc3RfcGFyYW1zIHsKKysJc2V0 IHNvY2tob3N0IFtsaW5kZXggJGxpbmUgMF0KKysJc2V0IGdkYnNlcnZlcl9zaG91bGRfZmFpbCBb bGluZGV4ICRsaW5lIDFdCisrCXNldCBwcmVmaXggW2xpbmRleCAkbGluZSAyXQorKworKwl3aXRo X3Rlc3RfcHJlZml4ICRwcmVmaXggeworKwkgICAgc2V0IEdEQl9URVNUX1NPQ0tFVEhPU1QgJHNv Y2tob3N0CisrCSAgICBzZXQgdGVzdCAic3RhcnQgZ2Ric2VydmVyIgorKworKwkgICAgIyBUcnkg dG8gc3RhcnQgZ2Ric2VydmVyLgorKwkgICAgc2V0IGNhdGNocmVzIFtjYXRjaCB7c2V0IHJlcyBb Z2Ric2VydmVyX3N0YXJ0ICIiICR0YXJnZXRfZXhlY119IGVycm1zZ10KKysKKysJICAgIGlmIHsg JGNhdGNocmVzICE9IDAgfSB7CisrCQlpZiB7ICRnZGJzZXJ2ZXJfc2hvdWxkX2ZhaWwgfSB7Cisr CQkgICAgcGFzcyAiJHRlc3Q6IGdkYnNlcnZlciBmYWlsZWQgYXMgZXhwZWN0ZWQiCisrCQl9IGVs c2UgeworKwkJICAgIGZhaWwgIiR0ZXN0OiAkZXJybXNnIgorKwkJfQorKwkJY29udGludWUKKysJ ICAgIH0gZWxzZSB7CisrCQlpZiB7ICRnZGJzZXJ2ZXJfc2hvdWxkX2ZhaWwgfSB7CisrCQkgICAg ZmFpbCAiJHRlc3Q6IGdkYnNlcnZlciBzaG91bGQgZmFpbCBidXQgZGlkIG5vdCIKKysJCX0gZWxz ZSB7CisrCQkgICAgcGFzcyAiJHRlc3QiCisrCQl9CisrCSAgICB9CisrCisrCSAgICBzZXQgZ2Ri c2VydmVyX3Byb3RvY29sIFtsaW5kZXggJHJlcyAwXQorKwkgICAgc2V0IGdkYnNlcnZlcl9nZGJw b3J0IFtsaW5kZXggJHJlcyAxXQorKwkgICAgc2V0IHRlc3QgImNvbm5lY3QgdG8gZ2Ric2VydmVy IHVzaW5nICRzb2NraG9zdCIKKysKKysJICAgIGlmIHsgW2dkYl90YXJnZXRfY21kICRnZGJzZXJ2 ZXJfcHJvdG9jb2wgJGdkYnNlcnZlcl9nZGJwb3J0XSA9PSAwIH0geworKwkJcGFzcyAkdGVzdAor KwkgICAgfSBlbHNlIHsKKysJCWZhaWwgJHRlc3QKKysJICAgIH0KKysJfQorKyAgICB9CisrfQor ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cCBiL2dk Yi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cAorLS0tIGEvZ2RiL3Rlc3RzdWl0 ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGJz ZXJ2ZXItc3VwcG9ydC5leHAKK0BAIC0yMTEsNyArMjExLDcgQEAgcHJvYyBnZGJzZXJ2ZXJfZGVm YXVsdF9nZXRfcmVtb3RlX2FkZHJlc3MgeyBob3N0IHBvcnQgfSB7CisgIyBEZWZhdWx0IHJvdXRp bmUgdG8gY29tcHV0ZSB0aGUgImNvbW0iIGFyZ3VtZW50IGZvciBnZGJzZXJ2ZXIuCisgCisgcHJv YyBnZGJzZXJ2ZXJfZGVmYXVsdF9nZXRfY29tbV9wb3J0IHsgcG9ydCB9IHsKKy0gICAgcmV0dXJu ICI6JHBvcnQiCisrICAgIHJldHVybiAiJHBvcnQiCisgfQorIAorICMgU3RhcnQgYSBnZGJzZXJ2 ZXIgcHJvY2VzcyB3aXRoIGluaXRpYWwgT1BUSU9OUyBhbmQgdHJhaWxpbmcgQVJHVU1FTlRTLgor QEAgLTIyMSw2ICsyMjEsNyBAQCBwcm9jIGdkYnNlcnZlcl9kZWZhdWx0X2dldF9jb21tX3BvcnQg eyBwb3J0IH0geworIAorIHByb2MgZ2Ric2VydmVyX3N0YXJ0IHsgb3B0aW9ucyBhcmd1bWVudHMg fSB7CisgICAgIGdsb2JhbCBwb3J0bnVtCisrICAgIGdsb2JhbCBHREJfVEVTVF9TT0NLRVRIT1NU CisgCisgICAgICMgUG9ydCBpZCAtLSBlaXRoZXIgc3BlY2lmaWVkIGluIGJhc2Vib2FyZCBmaWxl LCBvciBtYW5hZ2VkIGhlcmUuCisgICAgIGlmIFt0YXJnZXRfaW5mbyBleGlzdHMgZ2RiLHNvY2tl dHBvcnRdIHsKK0BAIC0yMzEsMTAgKzIzMiwyMiBAQCBwcm9jIGdkYnNlcnZlcl9zdGFydCB7IG9w dGlvbnMgYXJndW1lbnRzIH0geworICAgICB9CisgCisgICAgICMgRXh0cmFjdCB0aGUgbG9jYWwg YW5kIHJlbW90ZSBob3N0IGlkcyBmcm9tIHRoZSB0YXJnZXQgYm9hcmQgc3RydWN0LgorLSAgICBp ZiBbdGFyZ2V0X2luZm8gZXhpc3RzIHNvY2tldGhvc3RdIHsKKysgICAgaWYgeyBbaW5mbyBleGlz dHMgR0RCX1RFU1RfU09DS0VUSE9TVF0gfSB7CisrCSMgVGhlIHVzZXIgaXMgbm90IHN1cHBvc2Vk IHRvIHByb3ZpZGUgYSBwb3J0IG51bWJlciwganVzdCBhCisrCSMgaG9zdG5hbWUvYWRkcmVzcywg dGhlcmVmb3JlIHdlIGFkZCB0aGUgdHJhaWxpbmcgIjoiIGhlcmUuCisrCXNldCBkZWJ1Z2hvc3Qg IiR7R0RCX1RFU1RfU09DS0VUSE9TVH06IgorKwkjIEVzY2FwZSBvcGVuIGFuZCBjbG9zZSBzcXVh cmUgYnJhY2tldHMuCisrCXNldCBkZWJ1Z2hvc3RfdG1wIFtzdHJpbmcgbWFwIHsgWyBcXFsgXSBc XF0gfSAkZGVidWdob3N0XQorKwkjIFdlIG5lZWQgYSAiZ2Ric2VydmVyIiB2ZXJzaW9uIG9mIHRo ZSBkZWJ1Z2hvc3QsIHdoaWNoIHdpbGwKKysJIyBoYXZlIHRoZSBwb3NzaWJsZSBjb25uZWN0aW9u IHByZWZpeCBzdHJpcHBlZC4gIFRoaXMgaXMKKysJIyBiZWNhdXNlIGdkYnNlcnZlciBjdXJyZW50 bHkgZG9lc24ndCByZWNvZ25pemUgdGhlIHByZWZpeGVzLgorKwlyZWdzdWIgLWFsbCAiXlwodGNw Onx1ZHA6fHRjcDQ6fHVkcDQ6fHRjcDY6fHVkcDY6XCkiICRkZWJ1Z2hvc3RfdG1wICIiIGRlYnVn aG9zdF9nZGJzZXJ2ZXIKKysgICAgfSBlbHNlaWYgW3RhcmdldF9pbmZvIGV4aXN0cyBzb2NrZXRo b3N0XSB7CisgCXNldCBkZWJ1Z2hvc3QgW3RhcmdldF9pbmZvIHNvY2tldGhvc3RdCisrCXNldCBk ZWJ1Z2hvc3RfZ2Ric2VydmVyICRkZWJ1Z2hvc3QKKyAgICAgfSBlbHNlIHsKKyAJc2V0IGRlYnVn aG9zdCAibG9jYWxob3N0OiIKKysJc2V0IGRlYnVnaG9zdF9nZGJzZXJ2ZXIgJGRlYnVnaG9zdAor ICAgICB9CisgCisgICAgICMgU29tZSBib2FyZHMgdXNlIGEgZGlmZmVyZW50IHZhbHVlIGZvciB0 aGUgcG9ydCB0aGF0IGlzIHBhc3NlZCB0bworQEAgLTI3Nyw4ICsyOTAsMTQgQEAgcHJvYyBnZGJz ZXJ2ZXJfc3RhcnQgeyBvcHRpb25zIGFyZ3VtZW50cyB9IHsKKyAJaWYgeyAkb3B0aW9ucyAhPSAi IiB9IHsKKyAJICAgIGFwcGVuZCBnZGJzZXJ2ZXJfY29tbWFuZCAiICRvcHRpb25zIgorIAl9Cisr CWlmIHsgJGRlYnVnaG9zdF9nZGJzZXJ2ZXIgIT0gIiIgfSB7CisrCSAgICBhcHBlbmQgZ2Ric2Vy dmVyX2NvbW1hbmQgIiAkZGVidWdob3N0X2dkYnNlcnZlciIKKysJfQorIAlpZiB7ICRwb3J0bnVt ICE9ICIiIH0geworLQkgICAgYXBwZW5kIGdkYnNlcnZlcl9jb21tYW5kICIgWyRnZXRfY29tbV9w b3J0ICRwb3J0bnVtXSIKKysJICAgIGlmIHsgJGRlYnVnaG9zdF9nZGJzZXJ2ZXIgPT0gIiIgfSB7 CisrCQlhcHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQgIiAiCisrCSAgICB9CisrCSAgICBhcHBlbmQg Z2Ric2VydmVyX2NvbW1hbmQgIlskZ2V0X2NvbW1fcG9ydCAkcG9ydG51bV0iCisgCX0KKyAJaWYg eyAkYXJndW1lbnRzICE9ICIiIH0geworIAkgICAgYXBwZW5kIGdkYnNlcnZlcl9jb21tYW5kICIg JGFyZ3VtZW50cyIKK0BAIC0zMDcsNiArMzI2LDkgQEAgcHJvYyBnZGJzZXJ2ZXJfc3RhcnQgeyBv cHRpb25zIGFyZ3VtZW50cyB9IHsKKyAJCSAgICBjb250aW51ZQorIAkJfQorIAkgICAgfQorKwkg ICAgLXJlICIuKjogY2Fubm90IHJlc29sdmUgbmFtZTogTmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93 blxyXG4iIHsKKysJCWVycm9yICJnZGJzZXJ2ZXIgY2Fubm90IHJlc29sdmUgbmFtZS4iCisrCSAg ICB9CisgCSAgICB0aW1lb3V0IHsKKyAJCWVycm9yICJUaW1lb3V0IHdhaXRpbmcgZm9yIGdkYnNl cnZlciByZXNwb25zZS4iCisgCSAgICB9CitkaWZmIC0tZ2l0IGEvZ2RiL3VuaXR0ZXN0cy9wYXJz ZS1jb25uZWN0aW9uLXNwZWMtc2VsZnRlc3RzLmMgYi9nZGIvdW5pdHRlc3RzL3BhcnNlLWNvbm5l Y3Rpb24tc3BlYy1zZWxmdGVzdHMuYworbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251 bGwKKysrKyBiL2dkYi91bml0dGVzdHMvcGFyc2UtY29ubmVjdGlvbi1zcGVjLXNlbGZ0ZXN0cy5j CitAQCAtMCwwICsxLDI0OSBAQAorKy8qIFNlbGYgdGVzdHMgZm9yIHBhcnNpbmcgY29ubmVjdGlv biBzcGVjcyBmb3IgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorKworKyAgIENvcHlyaWdodCAoQykg MjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIGZpbGUgaXMg cGFydCBvZiBHREIuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vu c2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlz IHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAq LworKworKyNpbmNsdWRlICJkZWZzLmgiCisrI2luY2x1ZGUgInNlbGZ0ZXN0LmgiCisrI2luY2x1 ZGUgImNvbW1vbi9uZXRzdHVmZi5oIgorKyNpbmNsdWRlICJkaWFnbm9zdGljcy5oIgorKyNpZmRl ZiBVU0VfV0lOMzJBUEkKKysjaW5jbHVkZSA8d2luc29jazIuaD4KKysjaW5jbHVkZSA8d3NwaWFw aS5oPgorKyNlbHNlCisrI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKysjaW5jbHVkZSA8YXJwYS9p bmV0Lmg+CisrI2luY2x1ZGUgPG5ldGRiLmg+CisrI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKysj aW5jbHVkZSA8bmV0aW5ldC90Y3AuaD4KKysjZW5kaWYKKysKKytuYW1lc3BhY2Ugc2VsZnRlc3Rz IHsKKytuYW1lc3BhY2UgcGFyc2VfY29ubmVjdGlvbl9zcGVjX3Rlc3RzIHsKKysKKysvKiBBdXhp bGlhcnkgc3RydWN0IHRoYXQgaG9sZHMgaW5mbyBhYm91dCBhIHNwZWNpZmljIHRlc3QgZm9yIGEK KysgICBjb25uZWN0aW9uIHNwZWMuICAqLworKworK3N0cnVjdCBwYXJzZV9jb25uX3Rlc3QKKyt7 CisrICAvKiBUaGUgY29ubmVjdGlvbiBzcGVjLiAgKi8KKysgIGNvbnN0IGNoYXIgKmNvbm5zcGVj OworKworKyAgLyogRXhwZWN0ZWQgcmVzdWx0IGZyb20gJ3BhcnNlX2Nvbm5lY3Rpb25fc3BlYycu ICAqLworKyAgcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYyBleHBlY3RlZF9yZXN1bHQ7CisrCisrICAv KiBUcnVlIGlmIHRoaXMgdGVzdCBzaG91bGQgZmFpbCwgZmFsc2Ugb3RoZXJ3aXNlLiAgSWYgdHJ1 ZSwgb25seQorKyAgICAgdGhlIENPTk5TUEVDIGZpZWxkIHNob3VsZCBiZSBjb25zaWRlcmVkIGFz IHZhbGlkLiAgKi8KKysgIGJvb2wgc2hvdWxkX2ZhaWw7CisrCisrICAvKiBUaGUgZXhwZWN0ZWQg QUlfRkFNSUxZIHRvIGJlIGZvdW5kIG9uIHRoZSAnc3RydWN0IGFkZHJpbmZvJworKyAgICAgSElO VC4gICovCisrICBpbnQgZXhwX2FpX2ZhbWlseTsKKysKKysgIC8qIFRoZSBleHBlY3RlZCBBSV9T T0NLVFlQRSB0byBiZSBmb3VuZCBvbiB0aGUgJ3N0cnVjdCBhZGRyaW5mbycKKysgICAgIEhJTlQu ICAqLworKyAgaW50IGV4cF9haV9zb2NrdHlwZTsKKysKKysgIC8qIFRoZSBleHBlY3RlZCBBSV9Q Uk9UT0NPTCB0byBiZSBmb3VuZCBvbiB0aGUgJ3N0cnVjdCBhZGRyaW5mbycKKysgICAgIEhJTlQu ICAqLworKyAgaW50IGV4cF9haV9wcm90b2NvbDsKKyt9OworKworKy8qIFNvbWUgZGVmaW5lcyB0 byBoZWxwIHVzIGZpbGwgYSAnc3RydWN0IHBhcnNlX2Nvbm5fdGVzdCcuICAqLworKworKy8qIElu aXRpYWxpemUgYSBmdWxsIGVudHJ5LiAgKi8KKysjZGVmaW5lIElOSVRfRU5UUlkoQUREUiwgRVhQ X0hPU1QsIEVYUF9QT1JULCBTSE9VTERfRkFJTCwgRVhQX0FJX0ZBTUlMWSwgXAorKwkJICAgRVhQ X0FJX1NPQ0tUWVBFLCBFWFBfQUlfUFJPVE9DT0wpCQkJXAorKyAgeyBBRERSLCB7IEVYUF9IT1NU LCBFWFBfUE9SVCB9LCBTSE9VTERfRkFJTCwgRVhQX0FJX0ZBTUlMWSwgXAorKyAgICBFWFBfQUlf U09DS1RZUEUsIEVYUF9BSV9QUk9UT0NPTCB9CisrCisrLyogSW5pdGlhbGl6ZSBhbiB1bnByZWZp eGVkIGVudHJ5LiAgSW4gdGhpcyBjYXNlLCB3ZSBkb24ndCBleHBlY3QKKysgICBhbnl0aGluZyBv biB0aGUgJ3N0cnVjdCBhZGRyaW5mbycgSElOVC4gICovCisrI2RlZmluZSBJTklUX1VOUFJFRklY RURfRU5UUlkoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JUKSBcCisrICBJTklUX0VOVFJZIChBRERS LCBFWFBfSE9TVCwgRVhQX1BPUlQsIGZhbHNlLCAwLCAwLCAwKQorKworKy8qIEluaXRpYWxpemVk IGFuIHVucHJlZml4ZWQgSVB2NiBlbnRyeS4gIEluIHRoaXMgY2FzZSwgd2UgZG9uJ3QKKysgICBl eHBlY3QgYW55dGhpbmcgb24gdGhlICdzdHJ1Y3QgYWRkcmluZm8nIEhJTlQuICAqLworKyNkZWZp bmUgSU5JVF9VTlBSRUZJWEVEX0lQVjZfRU5UUlkoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JUKSBc CisrICBJTklUX0VOVFJZIChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQsIGZhbHNlLCBBRl9JTkVU NiwgMCwgMCkKKysKKysvKiBJbml0aWFsaXplIGEgcHJlZml4ZWQgZW50cnkuICAqLworKyNkZWZp bmUgSU5JVF9QUkVGSVhFRF9FTlRSWShBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQsIEVYUF9BSV9G QU1JTFksIFwKKysJCQkgICAgRVhQX0FJX1NPQ0tUWVBFLCBFWFBfQUlfUFJPVE9DT0wpIFwKKysg IElOSVRfRU5UUlkgKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwgZmFsc2UsIEVYUF9BSV9GQU1J TFksIFwKKysJICAgICAgRVhQX0FJX1NPQ0tUWVBFLCBFWFBfQUlfUFJPVE9DT0wpCisrCisrLyog SW5pdGlhbGl6ZSBhbiBlbnRyeSBwcmVmaXhlZCB3aXRoICJ0Y3A0OiIuICAqLworKyNkZWZpbmUg SU5JVF9QUkVGSVhFRF9JUFY0X1RDUChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQpIFwKKysgIElO SVRfUFJFRklYRURfRU5UUlkgKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwgQUZfSU5FVCwgU09D S19TVFJFQU0sIFwKKysJCSAgICAgICBJUFBST1RPX1RDUCkKKysKKysvKiBJbml0aWFsaXplIGFu IGVudHJ5IHByZWZpeGVkIHdpdGggInRjcDY6Ii4gICovCisrI2RlZmluZSBJTklUX1BSRUZJWEVE X0lQVjZfVENQKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCkgXAorKyAgSU5JVF9QUkVGSVhFRF9F TlRSWSAoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBBRl9JTkVUNiwgU09DS19TVFJFQU0sIFwK KysJCSAgICAgICBJUFBST1RPX1RDUCkKKysKKysvKiBJbml0aWFsaXplIGFuIGVudHJ5IHByZWZp eGVkIHdpdGggInVkcDQ6Ii4gICovCisrI2RlZmluZSBJTklUX1BSRUZJWEVEX0lQVjRfVURQKEFE RFIsIEVYUF9IT1NULCBFWFBfUE9SVCkgXAorKyAgSU5JVF9QUkVGSVhFRF9FTlRSWSAoQUREUiwg RVhQX0hPU1QsIEVYUF9QT1JULCBBRl9JTkVULCBTT0NLX0RHUkFNLCBcCisrCQkgICAgICAgSVBQ Uk9UT19VRFApCisrCisrLyogSW5pdGlhbGl6ZSBhbiBlbnRyeSBwcmVmaXhlZCB3aXRoICJ1ZHA2 OiIuICAqLworKyNkZWZpbmUgSU5JVF9QUkVGSVhFRF9JUFY2X1VEUChBRERSLCBFWFBfSE9TVCwg RVhQX1BPUlQpIFwKKysgIElOSVRfUFJFRklYRURfRU5UUlkgKEFERFIsIEVYUF9IT1NULCBFWFBf UE9SVCwgQUZfSU5FVDYsIFNPQ0tfREdSQU0sIFwKKysJCSAgICAgICBJUFBST1RPX1VEUCkKKysK KysvKiBJbml0aWFsaXplIGEgYm9ndXMgZW50cnksIGkuZS4sIGEgY29ubmVjdGlvbiBzcGVjIHRo YXQgc2hvdWxkCisrICAgZmFpbC4gICovCisrI2RlZmluZSBJTklUX0JPR1VTX0VOVFJZKEFERFIp IFwKKysgIElOSVRfRU5UUlkgKEFERFIsICIiLCAiIiwgdHJ1ZSwgMCwgMCwgMCkKKysKKysvKiBU aGUgdmFyaWFibGUgd2hpY2ggaG9sZHMgYWxsIG9mIG91ciB0ZXN0cy4gICovCisrCisrc3RhdGlj IGNvbnN0IHBhcnNlX2Nvbm5fdGVzdCBjb25uX3Rlc3RbXSA9CisrICB7CisrICAgIC8qIFVucHJl Zml4ZWQgYWRkcmVzc2VzLiAgKi8KKysKKysgICAgLyogSVB2NCwgaG9zdCBhbmQgcG9ydCBwcmVz ZW50LiAgKi8KKysgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiMTI3LjAuMC4xOjEyMzQiLCAi MTI3LjAuMC4xIiwgIjEyMzQiKSwKKysgICAgLyogSVB2NCwgb25seSBob3N0LiAgKi8KKysgICAg SU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiMTI3LjAuMC4xIiwgIjEyNy4wLjAuMSIsICIiKSwKKysg ICAgLyogSVB2NCwgbWlzc2luZyBwb3J0LiAgKi8KKysgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZ ICgiMTI3LjAuMC4xOiIsICIxMjcuMC4wLjEiLCAiIiksCisrCisrICAgIC8qIElQdjYsIGhvc3Qg YW5kIHBvcnQgcHJlc2VudCwgbm8gYnJhY2tldHMuICAqLworKyAgICBJTklUX1VOUFJFRklYRURf RU5UUlkgKCI6OjE6MTIzNCIsICI6OjEiLCAiMTIzNCIpLAorKyAgICAvKiBJUHY2LCBtaXNzaW5n IHBvcnQsIG5vIGJyYWNrZXRzLiAgKi8KKysgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiOjox OiIsICI6OjEiLCAiIiksCisrICAgIC8qIElQdjYsIGhvc3QgYW5kIHBvcnQgcHJlc2VudCwgd2l0 aCBicmFja2V0cy4gICovCisrICAgIElOSVRfVU5QUkVGSVhFRF9JUFY2X0VOVFJZICgiWzo6MV06 MTIzNCIsICI6OjEiLCAiMTIzNCIpLAorKyAgICAvKiBJUHY2LCBvbmx5IGhvc3QsIHdpdGggYnJh Y2tldHMuICAqLworKyAgICBJTklUX1VOUFJFRklYRURfSVBWNl9FTlRSWSAoIls6OjFdIiwgIjo6 MSIsICIiKSwKKysgICAgLyogSVB2NiwgbWlzc2luZyBwb3J0LCB3aXRoIGJyYWNrZXRzLiAgKi8K KysgICAgSU5JVF9VTlBSRUZJWEVEX0lQVjZfRU5UUlkgKCJbOjoxXToiLCAiOjoxIiwgIiIpLAor KworKyAgICAvKiBVbnNwZWNpZmllZCwgb25seSBwb3J0LiAgKi8KKysgICAgSU5JVF9VTlBSRUZJ WEVEX0VOVFJZICgiOjEyMzQiLCAibG9jYWxob3N0IiwgIjEyMzQiKSwKKysKKysgICAgLyogUHJl Zml4ZWQgYWRkcmVzc2VzLiAgKi8KKysKKysgICAgLyogUHJlZml4ZWQgInRjcDQ6IiBJUHY0LCBo b3N0IGFuZCBwb3J0IHByZXNlbnRzLiAgKi8KKysgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1RDUCAo InRjcDQ6MTI3LjAuMC4xOjEyMzQiLCAiMTI3LjAuMC4xIiwgIjEyMzQiKSwKKysgICAgLyogUHJl Zml4ZWQgInRjcDQ6IiBJUHY0LCBvbmx5IHBvcnQuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQ VjRfVENQICgidGNwNDo6MTIzNCIsICJsb2NhbGhvc3QiLCAiMTIzNCIpLAorKyAgICAvKiBQcmVm aXhlZCAidGNwNDoiIElQdjQsIG9ubHkgaG9zdC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBW NF9UQ1AgKCJ0Y3A0OjEyNy4wLjAuMSIsICIxMjcuMC4wLjEiLCAiIiksCisrICAgIC8qIFByZWZp eGVkICJ0Y3A0OiIgSVB2NCwgbWlzc2luZyBwb3J0LiAgKi8KKysgICAgSU5JVF9QUkVGSVhFRF9J UFY0X1RDUCAoInRjcDQ6MTI3LjAuMC4xOiIsICIxMjcuMC4wLjEiLCAiIiksCisrCisrICAgIC8q IFByZWZpeGVkICJ1ZHA0OiIgSVB2NCwgaG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KKysgICAg SU5JVF9QUkVGSVhFRF9JUFY0X1VEUCAoInVkcDQ6MTI3LjAuMC4xOjEyMzQiLCAiMTI3LjAuMC4x IiwgIjEyMzQiKSwKKysgICAgLyogUHJlZml4ZWQgInVkcDQ6IiBJUHY0LCBvbmx5IHBvcnQuICAq LworKyAgICBJTklUX1BSRUZJWEVEX0lQVjRfVURQICgidWRwNDo6MTIzNCIsICJsb2NhbGhvc3Qi LCAiMTIzNCIpLAorKyAgICAvKiBQcmVmaXhlZCAidWRwNDoiIElQdjQsIG9ubHkgaG9zdC4gICov CisrICAgIElOSVRfUFJFRklYRURfSVBWNF9VRFAgKCJ1ZHA0OjEyNy4wLjAuMSIsICIxMjcuMC4w LjEiLCAiIiksCisrICAgIC8qIFByZWZpeGVkICJ1ZHA0OiIgSVB2NCwgbWlzc2luZyBwb3J0LiAg Ki8KKysgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1VEUCAoInVkcDQ6MTI3LjAuMC4xOiIsICIxMjcu MC4wLjEiLCAiIiksCisrCisrCisrICAgIC8qIFByZWZpeGVkICJ0Y3A2OiIgSVB2NiwgaG9zdCBh bmQgcG9ydCBwcmVzZW50LiAgKi8KKysgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6 OjoxOjEyMzQiLCAiOjoxIiwgIjEyMzQiKSwKKysgICAgLyogUHJlZml4ZWQgInRjcDY6IiBJUHY2 LCBvbmx5IHBvcnQuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVENQICgidGNwNjo6MTIz NCIsICJsb2NhbGhvc3QiLCAiMTIzNCIpLAorKyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYs IG9ubHkgaG9zdC4gICovCisrICAgIC8vSU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6Ojox IiwgIjo6MSIsICIiKSwKKysgICAgLyogUHJlZml4ZWQgInRjcDY6IiBJUHY2LCBtaXNzaW5nIHBv cnQuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVENQICgidGNwNjo6OjE6IiwgIjo6MSIs ICIiKSwKKysKKysgICAgLyogUHJlZml4ZWQgInVkcDY6IiBJUHY2LCBob3N0IGFuZCBwb3J0IHBy ZXNlbnQuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVURQICgidWRwNjo6OjE6MTIzNCIs ICI6OjEiLCAiMTIzNCIpLAorKyAgICAvKiBQcmVmaXhlZCAidWRwNjoiIElQdjYsIG9ubHkgcG9y dC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2OjoxMjM0IiwgImxvY2Fs aG9zdCIsICIxMjM0IiksCisrICAgIC8qIFByZWZpeGVkICJ1ZHA2OiIgSVB2Niwgb25seSBob3N0 LiAgKi8KKysgICAgLy9JTklUX1BSRUZJWEVEX0lQVjZfVURQICgidWRwNjo6OjEiLCAiOjoxIiwg IiIpLAorKyAgICAvKiBQcmVmaXhlZCAidWRwNjoiIElQdjYsIG1pc3NpbmcgcG9ydC4gICovCisr ICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2Ojo6MToiLCAiOjoxIiwgIiIpLAorKwor KyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYgd2l0aCBicmFja2V0cywgaG9zdCBhbmQgcG9y dCBwcmVzZW50LiAgKi8KKysgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6Wzo6MV06 MTIzNCIsICI6OjEiLCAiMTIzNCIpLAorKyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYgd2l0 aCBicmFja2V0cywgb25seSBob3N0LiAgKi8KKysgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAo InRjcDY6Wzo6MV0iLCAiOjoxIiwgIiIpLAorKyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYg d2l0aCBicmFja2V0cywgbWlzc2luZyBwb3J0LiAgKi8KKysgICAgSU5JVF9QUkVGSVhFRF9JUFY2 X1RDUCAoInRjcDY6Wzo6MV06IiwgIjo6MSIsICIiKSwKKysKKysgICAgLyogUHJlZml4ZWQgInVk cDY6IiBJUHY2IHdpdGggYnJhY2tldHMsIGhvc3QgYW5kIHBvcnQgcHJlc2VudC4gICovCisrICAg IElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2Ols6OjFdOjEyMzQiLCAiOjoxIiwgIjEyMzQi KSwKKysgICAgLyogUHJlZml4ZWQgInVkcDY6IiBJUHY2IHdpdGggYnJhY2tldHMsIG9ubHkgaG9z dC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2Ols6OjFdIiwgIjo6MSIs ICIiKSwKKysgICAgLyogUHJlZml4ZWQgInVkcDY6IiBJUHY2IHdpdGggYnJhY2tldHMsIG1pc3Np bmcgcG9ydC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2Ols6OjFdOiIs ICI6OjEiLCAiIiksCisrCisrCisrICAgIC8qIEJvZ3VzIGFkZHJlc3Nlcy4gICovCisrICAgIElO SVRfQk9HVVNfRU5UUlkgKCJ0Y3A2Ols6OjFdMTIzOjQ0IiksCisrICAgIElOSVRfQk9HVVNfRU5U UlkgKCJbOjoxIiksCisrICAgIElOSVRfQk9HVVNfRU5UUlkgKCJ0Y3A2Ojo6MV06IiksCisrICB9 OworKworKy8qIFRlc3QgYSBjb25uZWN0aW9uIHNwZWMgQy4gICovCisrCisrc3RhdGljIHZvaWQK Kyt0ZXN0X2Nvbm4gKGNvbnN0IHBhcnNlX2Nvbm5fdGVzdCAmYykKKyt7CisrICBzdHJ1Y3QgYWRk cmluZm8gaGludDsKKysgIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMgcmV0OworKworKyAgbWVtc2V0 ICgmaGludCwgMCwgc2l6ZW9mIChoaW50KSk7CisrCisrICBUUlkKKysgICAgeworKyAgICAgIHJl dCA9IHBhcnNlX2Nvbm5lY3Rpb25fc3BlYyAoYy5jb25uc3BlYywgJmhpbnQpOworKyAgICB9Cisr ICBDQVRDSCAoZXgsIFJFVFVSTl9NQVNLX0VSUk9SKQorKyAgICB7CisrICAgICAgLyogSWYgd2Ug Y2F1Z2h0IGFuIGVycm9yLCB3ZSBzaG91bGQgY2hlY2sgaWYgdGhpcyBjb25uZWN0aW9uCisrCSBz cGVjIHdhcyBzdXBwb3NlZCB0byBmYWlsLiAgKi8KKysgICAgICBTRUxGX0NIRUNLIChjLnNob3Vs ZF9mYWlsKTsKKysgICAgICByZXR1cm47CisrICAgIH0KKysgIEVORF9DQVRDSAorKworKyAgU0VM Rl9DSEVDSyAoIWMuc2hvdWxkX2ZhaWwpOworKyAgU0VMRl9DSEVDSyAocmV0Lmhvc3Rfc3RyID09 IGMuZXhwZWN0ZWRfcmVzdWx0Lmhvc3Rfc3RyKTsKKysgIFNFTEZfQ0hFQ0sgKHJldC5wb3J0X3N0 ciA9PSBjLmV4cGVjdGVkX3Jlc3VsdC5wb3J0X3N0cik7CisrICBTRUxGX0NIRUNLIChoaW50LmFp X2ZhbWlseSA9PSBjLmV4cF9haV9mYW1pbHkpOworKyAgU0VMRl9DSEVDSyAoaGludC5haV9zb2Nr dHlwZSA9PSBjLmV4cF9haV9zb2NrdHlwZSk7CisrICBTRUxGX0NIRUNLIChoaW50LmFpX3Byb3Rv Y29sID09IGMuZXhwX2FpX3Byb3RvY29sKTsKKyt9CisrCisrLyogUnVuIHRoZSB0ZXN0cyBhc3Nv Y2lhdGVkIHdpdGggcGFyc2luZyBjb25uZWN0aW9uIHNwZWNzLiAgKi8KKysKKytzdGF0aWMgdm9p ZAorK3J1bl90ZXN0cyAoKQorK3sKKysgIGZvciAoY29uc3QgcGFyc2VfY29ubl90ZXN0ICZjIDog Y29ubl90ZXN0KQorKyAgICB0ZXN0X2Nvbm4gKGMpOworK30KKyt9IC8qIG5hbWVzcGFjZSBwYXJz ZV9jb25uZWN0aW9uX3NwZWNfdGVzdHMgKi8KKyt9IC8qIG5hbWVzcGFjZSBzZWxmdGVzdHMgKi8K KysKKyt2b2lkCisrX2luaXRpYWxpemVfcGFyc2VfY29ubmVjdGlvbl9zcGVjX3NlbGZ0ZXN0cyAo KQorK3sKKysgIHNlbGZ0ZXN0czo6cmVnaXN0ZXJfdGVzdCAoInBhcnNlX2Nvbm5lY3Rpb25fc3Bl YyIsCisrCQkJICAgIHNlbGZ0ZXN0czo6cGFyc2VfY29ubmVjdGlvbl9zcGVjX3Rlc3RzOjpydW5f dGVzdHMpOworK30KCmRpZmYgLS1naXQgYS9nZGItcmhiejg4MTg0OS1pcHY2LTJvZjIucGF0Y2gg Yi9nZGItcmhiejg4MTg0OS1pcHY2LTJvZjIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMzM5Yzk2NgotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6ODgxODQ5LWlw djYtMm9mMi5wYXRjaApAQCAtMCwwICsxLDYzIEBACitGcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2VyZ2lvIER1cmlnYW4gSnVuaW9yIDxzZXJnaW9k akByZWRoYXQuY29tPgorRGF0ZTogRnJpLCAxMyBKdWwgMjAxOCAxNjoyMDozNCAtMDQwMAorU3Vi amVjdDogZ2RiLXJoYno4ODE4NDktaXB2Ni0yb2YyLnBhdGNoCisKKzs7IEltcGxlbWVudCBJUHY2 IHN1cHBvcnQgZm9yIEdEQi9nZGJzZXJ2ZXIgKFJIIEJaIDg4MTg0OSwgU2VyZ2lvIER1cmlnYW4g SnVuaW9yKS4KKworRXhwZWN0IGZvciBhbm90aGVyIHZhcmlhbnQgb2YgZXJyb3IgbWVzc2FnZSB3 aGVuIGdkYnNlcnZlciBjYW5ub3QgcmVzb2x2ZSBob3N0bmFtZQorCitJJ3ZlIG5vdGljZWQgdGhh dCBvbiBhIGZldyBob3N0cywgd2hlbiBnaXZlbiBhbiBpbnZhbGlkIGhvc3RuYW1lLAorZ2Ric2Vy dmVyIGZhaWxzIHdpdGg6CisKKyAgc3Bhd24gLy4uLy4uL2dkYi9nZGJzZXJ2ZXIvZ2Ric2VydmVy IC0tb25jZSB0Y3A4OjEyMzoyMzUzIC9nZGIvYnVpbGQvZmVkb3JhLXMzOTB4L2J1aWxkL2dkYi90 ZXN0c3VpdGUvb3V0cHV0cy9nZGIuc2VydmVyL3NlcnZlci1jb25uZWN0L3NlcnZlci1jb25uZWN0 CisgIHRjcDg6MTIzOjIzNTM6IGNhbm5vdCByZXNvbHZlIG5hbWU6IE5vIGFkZHJlc3MgYXNzb2Np YXRlZCB3aXRoIGhvc3RuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisgIEV4aXRpbmcKKworVW5mb3J0 dW5hdGVseSwgdGhpcyBjYXVzZXMgYSBmYWlsIG9uIHRoZSBuZXcKK2dkYi5zZXJ2ZXIvc2VydmVy LWNvbm5lY3QuZXhwIHRlc3QgKGludHJvZHVjZWQgYnkgdGhlIElQdjYgcGF0Y2gpOgorCisgIEZB SUw6IGdkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwOiB0Y3A4OiBzdGFydCBnZGJzZXJ2ZXI6 IGdkYnNlcnZlciBzaG91bGQgZmFpbCBidXQgZGlkIG5vdAorCitUaGlzIGhhcHBlbnMgYmVjYXVz ZSB3ZSdyZSBleHBlY3RpbmcgZm9yIGFub3RoZXIgdmFyaWFudCBvZiB0aGlzIGVycm9yCittZXNz YWdlOgorCisgIGNhbm5vdCByZXNvbHZlIG5hbWU6IE5hbWUgb3Igc2VydmljZSBub3Qga25vd24K KworVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGV4dGVuZHMgdGhlIGhlbHBlciBmdW5jdGlvbiAnZ2Ri c2VydmVyX3N0YXJ0JyB0bworYWxzbyByZWNvZ25pemUgdGhlICJObyBhZGRyZXNzIGFzc29jaWF0 ZWQgd2l0aCBob3N0bmFtZSIgbWVzc2FnZS4KK1RoaXMgImZpeGVzIiB0aGUgdGVzdGNhc2Ugb24g dGhlIGhvc3RzIHRoYXQgdXNlIHRoaXMgdmFyaWFudC4KKworZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VM b2c6CisyMDE4LTA3LTEzICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQu Y29tPgorCisJKiBsaWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwIChnZGJzZXJ2ZXJfc3RhcnQpOiBF eHBlY3QgZm9yIHRoZQorCW1lc3NhZ2UgIk5vIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIGhvc3Ru YW1lIiB3aGVuIGdkYnNlcnZlcgorCWNhbm5vdCByZXNvbHZlIHRoZSBob3N0bmFtZS4KKworZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VM b2cKKy0tLSBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCisrKysgYi9nZGIvdGVzdHN1aXRlL0No YW5nZUxvZworQEAgLTEsMyArMSw5IEBACisrMjAxOC0wNy0xMyAgU2VyZ2lvIER1cmlnYW4gSnVu aW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KKysKKysJKiBsaWIvZ2Ric2VydmVyLXN1cHBvcnQu ZXhwIChnZGJzZXJ2ZXJfc3RhcnQpOiBFeHBlY3QgZm9yIHRoZQorKwltZXNzYWdlICJObyBhZGRy ZXNzIGFzc29jaWF0ZWQgd2l0aCBob3N0bmFtZSIgd2hlbiBnZGJzZXJ2ZXIKKysJY2Fubm90IHJl c29sdmUgdGhlIGhvc3RuYW1lLgorKworIDIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlv ciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+CisgCSAgICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0 b2NodmlsQHJlZGhhdC5jb20+CisgCSAgICBQYXVsIEZlcnRzZXIgIDxmZXJjZXJwYXZAZ21haWwu Y29tPgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4 cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cAorLS0tIGEvZ2RiL3Rl c3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2xp Yi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAKK0BAIC0zMjYsNyArMzI2LDcgQEAgcHJvYyBnZGJzZXJ2 ZXJfc3RhcnQgeyBvcHRpb25zIGFyZ3VtZW50cyB9IHsKKyAJCSAgICBjb250aW51ZQorIAkJfQor IAkgICAgfQorLQkgICAgLXJlICIuKjogY2Fubm90IHJlc29sdmUgbmFtZTogTmFtZSBvciBzZXJ2 aWNlIG5vdCBrbm93blxyXG4iIHsKKysJICAgIC1yZSAiLio6IGNhbm5vdCByZXNvbHZlIG5hbWU6 IFwoTm8gYWRkcmVzcyBhc3NvY2lhdGVkIHdpdGggaG9zdG5hbWV8TmFtZSBvciBzZXJ2aWNlIG5v dCBrbm93blwpXHJcbiIgeworIAkJZXJyb3IgImdkYnNlcnZlciBjYW5ub3QgcmVzb2x2ZSBuYW1l LiIKKyAJICAgIH0KKyAJICAgIHRpbWVvdXQgewoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2Ri LnNwZWMKaW5kZXggNzdhOTljMi4uZmM2ZDMyYiAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIv Z2RiLnNwZWMKQEAgLTE4LDcgKzE4LDcgQEAKIE5hbWU6ICV7P3NjbF9wcmVmaXh9Z2RiCiAKICMg RnJlZXplIGl0IHdoZW4gR0RCIGdldHMgYnJhbmNoZWQKLSVnbG9iYWwgc25hcHNyYyAgICAyMDE4 MDcwOAorJWdsb2JhbCBzbmFwc3JjICAgIDIwMTgwNzE0CiAjIFNlZSB0aW1lc3RhbXAgb2Ygc291 cmNlIGdudWxpYiBpbnN0YWxsZWQgaW50byBnZGIvZ251bGliLyAuCiAlZ2xvYmFsIHNuYXBnbnVs aWIgMjAxNjExMTUKICVnbG9iYWwgdGFybmFtZSBnZGItJXt2ZXJzaW9ufQpAQCAtMjYsNyArMjYs NyBAQCBWZXJzaW9uOiA4LjEuOTAuJXtzbmFwc3JjfQogCiAjIFRoZSByZWxlYXNlIGFsd2F5cyBj b250YWlucyBhIGxlYWRpbmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBhdCAxLgogIyBgdXBz dHJlYW0nIGlzIG5vdCBhIHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVu Y2llcyBjb21wYXRpYmxlIGZvciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDM0JXs/ZGlzdH0KK1Jl bGVhc2U6IDM1JXs/ZGlzdH0KIAogTGljZW5zZTogR1BMdjMrIGFuZCBHUEx2Mysgd2l0aCBleGNl cHRpb25zIGFuZCBHUEx2MisgYW5kIEdQTHYyKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTCsgYW5k IExHUEx2MisgYW5kIExHUEx2MysgYW5kIEJTRCBhbmQgUHVibGljIERvbWFpbiBhbmQgR0ZETAog R3JvdXA6IERldmVsb3BtZW50L0RlYnVnZ2VycwpAQCAtMTAzMCw2ICsxMDMwLDEwIEBAIGZpCiAl ZW5kaWYKIAogJWNoYW5nZWxvZworKiBTYXQgSnVsIDE0IDIwMTggU2VyZ2lvIER1cmlnYW4gSnVu aW9yIDxzZXJnaW9kakByZWRoYXQuY29tPiAtIDguMS45MC4yMDE4MDcxNC0zNS5mYzI5CistIFJl YmFzZSB0byBGU0YgR0RCIDguMS45MC4yMDE4MDcxNCAoOC4ycHJlKS4KKy0gQmFja3BvcnQgSVB2 NiBwYXRjaCAoUkggQlogODgxODQ5LCBTZXJnaW8gRHVyaWdhbiBKdW5pb3IpLgorCiAqIEZyaSBK dWwgMTMgMjAxOCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2pl Y3Qub3JnPgogLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVk b3JhXzI5X01hc3NfUmVidWlsZAogCg==