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: Jakub Jelinek To: git-commits@fedoraproject.org Subject: [rpms/gcc] rhel-f41-base: 4.4.0-8 Date: Mon, 29 Jun 2026 12:24:21 GMT Message-ID: <178273586196.1.18166358709210145841.rpms-gcc-23f7769aa498@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: 23f7769aa49837492390bcf2c0ca3337936daa80 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogMjNmNzc2OWFhNDk4Mzc0OTIzOTBiY2YyYzBjYTMzMzc5 MzZkYWE4MApBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAwOS0wNi0xMlQxMDowODoxOSswMDowMApTdGF0cyAgOiArNi8tMTE5ODYgaW4g OSBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZ2Nj L2MvMjNmNzc2OWFhNDk4Mzc0OTIzOTBiY2YyYzBjYTMzMzc5MzZkYWE4MD9icmFuY2g9cmhlbC1m NDEtYmFzZQoKTG9nOgo0LjQuMC04CgotLS0KZGlmZiAtLWdpdCBhLy5jdnNpZ25vcmUgYi8uY3Zz aWdub3JlCmluZGV4IDRlMzk1NTAuLjVjN2NhMjkgMTAwNjQ0Ci0tLSBhLy5jdnNpZ25vcmUKKysr IGIvLmN2c2lnbm9yZQpAQCAtMSwyICsxLDIgQEAKIGZhc3RqYXItMC45Ny50YXIuZ3oKLWdjYy00 LjQuMC0yMDA5MDYwOS50YXIuYnoyCitnY2MtNC40LjAtMjAwOTA2MTIudGFyLmJ6MgoKZGlmZiAt LWdpdCBhL2djYy5zcGVjIGIvZ2NjLnNwZWMKaW5kZXggYTQ5ZWNiNS4uODZmMDYyMCAxMDA2NDQK LS0tIGEvZ2NjLnNwZWMKKysrIGIvZ2NjLnNwZWMKQEAgLTQ4MCw2ICs0ODAsMTAgQEAgdGFyIHhq ZiAle1NPVVJDRTEwfQogc2VkIC1pIC1lICdzLzRcLjRcLjEvNC40LjAvJyBnY2MvQkFTRS1WRVIK IGVjaG8gJ1JlZCBIYXQgJXt2ZXJzaW9ufS0le2djY19yZWxlYXNlfScgPiBnY2MvREVWLVBIQVNF CiAKKyMgRGVmYXVsdCB0byAtZ2R3YXJmLTMgcmF0aGVyIHRoYW4gLWdkd2FyZi0yCitzZWQgLWkg Jy9VSW50ZWdlciBWYXIoZHdhcmZfdmVyc2lvbikvcy9Jbml0KDIpL0luaXQoMykvJyBnY2MvY29t bW9uLm9wdAorc2VkIC1pICdzL1wobWF5IGJlIGVpdGhlciAyIG9yIDM7IHRoZSBkZWZhdWx0IHZl cnNpb24gaXMgXCkyXC4vXDEzLi8nIGdjYy9kb2MvaW52b2tlLnRleGkKKwogY3AgLWEgbGlic3Rk YysrLXYzL2NvbmZpZy9jcHUvaXs0LDN9ODYvYXRvbWljaXR5LmgKIAogIyBIYWNrIHRvIGF2b2lk IGJ1aWxkaW5nIG11bHRpbGliIGxpYmphdmEKCmRpZmYgLS1naXQgYS9nY2M0NC1hdG9tLW1uYXRp dmUucGF0Y2ggYi9nY2M0NC1hdG9tLW1uYXRpdmUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDljOGE3YTMuLjAwMDAwMDAKLS0tIGEvZ2NjNDQtYXRvbS1tbmF0aXZlLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotMjAwOS0wNS0yMCAgSC5KLiBMdSAgPGhv bmdqaXUubHVAaW50ZWwuY29tPgotCi0JKiBjb25maWcvaTM4Ni9kcml2ZXItaTM4Ni5jIChob3N0 X2RldGVjdF9sb2NhbF9jcHUpOiBDaGVjawotCWV4dGVuZGVkIGZhbWlseSBhbmQgbW9kZWwgZm9y IEludGVsIHByb2Nlc3NvcnMuICBTdXBwb3J0IEludGVsCi0JQXRvbS4KLQotLS0tIGdjYy9jb25m aWcvaTM4Ni9kcml2ZXItaTM4Ni5jCShyZXZpc2lvbiAxNDc3MzUpCi0rKysgZ2NjL2NvbmZpZy9p Mzg2L2RyaXZlci1pMzg2LmMJKHJldmlzaW9uIDE0NzczNikKLUBAIC0zOTUsOSArMzk1LDIyIEBA IGNvbnN0IGNoYXIgKmhvc3RfZGV0ZWN0X2xvY2FsX2NwdSAoaW50IGEKLSAKLSAgIF9fY3B1aWQg KDEsIGVheCwgZWJ4LCBlY3gsIGVkeCk7Ci0gCi0tICAvKiBXZSBkb24ndCBjYXJlIGZvciBleHRl bmRlZCBmYW1pbHkuICAqLwotICAgbW9kZWwgPSAoZWF4ID4+IDQpICYgMHgwZjsKLSAgIGZhbWls eSA9IChlYXggPj4gOCkgJiAweDBmOwotKyAgaWYgKHZlbmRvciA9PSBTSUdfSU5URUwpCi0rICAg IHsKLSsgICAgICB1bnNpZ25lZCBpbnQgZXh0ZW5kZWRfbW9kZWwsIGV4dGVuZGVkX2ZhbWlseTsK LSsKLSsgICAgICBleHRlbmRlZF9tb2RlbCA9IChlYXggPj4gMTIpICYgMHhmMDsKLSsgICAgICBl eHRlbmRlZF9mYW1pbHkgPSAoZWF4ID4+IDIwKSAmIDB4ZmY7Ci0rICAgICAgaWYgKGZhbWlseSA9 PSAweDBmKQotKwl7Ci0rCSAgZmFtaWx5ICs9IGV4dGVuZGVkX2ZhbWlseTsKLSsJICBtb2RlbCAr PSBleHRlbmRlZF9tb2RlbDsKLSsJfQotKyAgICAgIGVsc2UgaWYgKGZhbWlseSA9PSAweDA2KQot Kwltb2RlbCArPSBleHRlbmRlZF9tb2RlbDsKLSsgICAgfQotIAotICAgaGFzX3NzZTMgPSBlY3gg JiBiaXRfU1NFMzsKLSAgIGhhc19zc3NlMyA9IGVjeCAmIGJpdF9TU1NFMzsKLUBAIC00OTYsOCAr NTA5LDggQEAgY29uc3QgY2hhciAqaG9zdF9kZXRlY3RfbG9jYWxfY3B1IChpbnQgYQotICAgICAg IGJyZWFrOwotICAgICBjYXNlIFBST0NFU1NPUl9QRU5USVVNUFJPOgotICAgICAgIGlmIChoYXNf bG9uZ21vZGUpCi0tCS8qIEl0IGlzIENvcmUgMiBEdW8uICAqLwotLQljcHUgPSAiY29yZTIiOwot KwkvKiBJdCBpcyBDb3JlIDIgb3IgQXRvbS4gICovCi0rCWNwdSA9IChtb2RlbCA9PSAyOCkgPyAi YXRvbSIgOiAiY29yZTIiOwotICAgICAgIGVsc2UgaWYgKGFyY2gpCi0gCXsKLSAJICBpZiAoaGFz X3NzZTMpCgpkaWZmIC0tZ2l0IGEvZ2NjNDQtYXRvbS1tb3ZiZS5wYXRjaCBiL2djYzQ0LWF0b20t bW92YmUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc0ZjU3YjEuLjAwMDAw MDAKLS0tIGEvZ2NjNDQtYXRvbS1tb3ZiZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMwMSAr MCwwIEBACi0yMDA5LTA1LTIxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+Ci0JICAg IFVyb3MgQml6amFrICA8dWJpempha0BnbWFpbC5jb20+Ci0KLQkqIGNvbmZpZy9pMzg2L2NwdWlk LmggKGJpdF9NT1ZCRSk6IE5ldy4KLQotCSogY29uZmlnL2kzODYvZHJpdmVyLWkzODYuYyAoaG9z dF9kZXRlY3RfbG9jYWxfY3B1KTogQ2hlY2sgbW92YmUuCi0KLQkqIGNvbmZpZy9pMzg2L2kzODYu YyAoT1BUSU9OX01BU0tfSVNBX01PVkJFX1NFVCk6IE5ldy4KLQkoT1BUSU9OX01BU0tfSVNBX01P VkJFX1VOU0VUKTogTGlrZXdpc2UuCi0JKGl4ODZfaGFuZGxlX29wdGlvbik6IEhhbmRsZSBPUFRf bW1vdmJlLgotCShpeDg2X3RhcmdldF9zdHJpbmcpOiBBZGQgLW1tb3ZiZS4KLQkocHRhX2ZsYWdz KTogQWRkIFBUQV9NT1ZCRS4KLQkocHJvY2Vzc29yX2FsaWFzX3RhYmxlKTogQWRkIFBUQV9NT1ZC RSB0byAiYXRvbSIuCi0JKG92ZXJyaWRlX29wdGlvbnMpOiBIYW5kbGUgUFRBX01PVkJFLgotCi0J KiBjb25maWcvaTM4Ni9pMzg2LmggKFRBUkdFVF9NT1ZCRSk6IE5ldy4KLQotCSogY29uZmlnL2kz ODYvaTM4Ni5tZCAoYnN3YXBzaTIpOiBDaGVjayBUQVJHRVRfTU9WQkUuCi0JKCpic3dhcHNpX21v dmJlKTogTmV3LgotCSgqYnN3YXBkaV9tb3ZiZSk6IExpa2V3aXNlLgotCShic3dhcGRpMik6IFJl bmFtZWQgdG8gLi4uCi0JKCpic3dhcGRpXzEpOiBUaGlzLgotCShic3dhcGRpMik6IE5ldyBleHBh bmRlci4KLQotCSogY29uZmlnL2kzODYvaTM4Ni5vcHQgKG1tb3ZiZSk6IE5ldy4KLQotCSogZG9j L2ludm9rZS50ZXhpOiBEb2N1bWVudCAtbW1vdmJlLgotCi0JKiBnY2MudGFyZ2V0L2kzODYvbW92 YmUtMS5jOiBOZXcuCi0JKiBnY2MudGFyZ2V0L2kzODYvbW92YmUtMi5jOiBMaWtld2lzZS4KLQot LS0tIGdjYy9kb2MvaW52b2tlLnRleGkJKHJldmlzaW9uIDE0Nzc3MikKLSsrKyBnY2MvZG9jL2lu dm9rZS50ZXhpCShyZXZpc2lvbiAxNDc3NzMpCi1AQCAtNTc3LDcgKzU3Nyw3IEBAIE9iamVjdGl2 ZS1DIGFuZCBPYmplY3RpdmUtQysrIERpYWxlY3RzfS4KLSAtbW5vLXdpZGUtbXVsdGlwbHkgIC1t cnRkICAtbWFsaWduLWRvdWJsZSBAZ29sCi0gLW1wcmVmZXJyZWQtc3RhY2stYm91bmRhcnk9QHZh cntudW19Ci0gLW1pbmNvbWluZy1zdGFjay1ib3VuZGFyeT1AdmFye251bX0KLS0tbWNsZCAtbWN4 MTYgLW1zYWhmIC1tcmVjaXAgQGdvbAotKy1tY2xkIC1tY3gxNiAtbXNhaGYgLW1tb3ZiZSAtbXJl Y2lwIEBnb2wKLSAtbW1teCAgLW1zc2UgIC1tc3NlMiAtbXNzZTMgLW1zc3NlMyAtbXNzZTQuMSAt bXNzZTQuMiAtbXNzZTQgLW1hdnggQGdvbAotIC1tYWVzIC1tcGNsbXVsIEBnb2wKLSAtbXNzZTRh IC1tM2Rub3cgLW1wb3BjbnQgLW1hYm0gLW1zc2U1IEBnb2wKLUBAIC0xMTQ1OCw2ICsxMTQ1OCwx MSBAQCBTQUhGIGFyZSBsb2FkIGFuZCBzdG9yZSBpbnN0cnVjdGlvbnMsIHJlCi0gSW4gNjQtYml0 IG1vZGUsIFNBSEYgaW5zdHJ1Y3Rpb24gaXMgdXNlZCB0byBvcHRpbWl6ZSBAY29kZXtmbW9kfSwg QGNvZGV7ZHJlbX0KLSBvciBAY29kZXtyZW1haW5kZXJ9IGJ1aWx0LWluIGZ1bmN0aW9uczogc2Vl IEByZWZ7T3RoZXIgQnVpbHRpbnN9IGZvciBkZXRhaWxzLgotIAotK0BpdGVtIC1tbW92YmUKLStA b3BpbmRleCBtbW92YmUKLStUaGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBHQ0MgdG8gdXNlIG1vdmJl IGluc3RydWN0aW9uIHRvIGltcGxlbWVudAotK0Bjb2Rle19fYnVpbHRpbl9ic3dhcDMyfSBhbmQg QGNvZGV7X19idWlsdGluX2Jzd2FwNjR9LgotKwotIEBpdGVtIC1tcmVjaXAKLSBAb3BpbmRleCBt cmVjaXAKLSBUaGlzIG9wdGlvbiB3aWxsIGVuYWJsZSBHQ0MgdG8gdXNlIFJDUFNTIGFuZCBSU1FS VFNTIGluc3RydWN0aW9ucyAoYW5kIHRoZWlyCi0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2kzODYvbW92YmUtMS5jCShyZXZpc2lvbiAwKQotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9pMzg2L21vdmJlLTEuYwkocmV2aXNpb24gMTQ3NzczKQotQEAgLTAsMCArMSwxOCBAQAotKy8q IHsgZGctZG8gY29tcGlsZSB9ICovCi0rLyogeyBkZy1vcHRpb25zICItTzIgLW1tb3ZiZSIgfSAq LwotKwotK2V4dGVybiBpbnQgeDsKLSsKLSt2b2lkCi0rZm9vIChpbnQgaSkKLSt7Ci0rICB4ID0g X19idWlsdGluX2Jzd2FwMzIgKGkpOwotK30KLSsKLStpbnQKLStiYXIgKCkKLSt7Ci0rICByZXR1 cm4gX19idWlsdGluX2Jzd2FwMzIgKHgpOwotK30KLSsKLSsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMgIm1vdmJlXFsgXHRcXSIgMiB9IH0gKi8KLS0tLSBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvaTM4Ni9tb3ZiZS0yLmMJKHJldmlzaW9uIDApCi0rKysgZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2kzODYvbW92YmUtMi5jCShyZXZpc2lvbiAxNDc3NzMpCi1AQCAtMCwwICsx LDE5IEBACi0rLyogeyBkZy1kbyBjb21waWxlIH0gKi8KLSsvKiB7IGRnLW9wdGlvbnMgIi1PMiAt bW1vdmJlIiB9ICovCi0rCi0rZXh0ZXJuIGxvbmcgbG9uZyB4OwotKwotK3ZvaWQKLStmb28gKGxv bmcgbG9uZyBpKQotK3sKLSsgIHggPSBfX2J1aWx0aW5fYnN3YXA2NCAoaSk7Ci0rfQotKwotK2xv bmcgbG9uZwotK2JhciAoKQotK3sKLSsgIHJldHVybiBfX2J1aWx0aW5fYnN3YXA2NCAoeCk7Ci0r fQotKwotKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAibW92YmVcWyBcdFxd IiA0IHsgdGFyZ2V0IGlscDMyIH0gfSB9ICovCi0rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzICJtb3ZiZVxbIFx0XF0iIDIgeyB0YXJnZXQgbHA2NCB9IH0gfSAqLwotLS0tIGdj Yy9jb25maWcvaTM4Ni9pMzg2LmgJKHJldmlzaW9uIDE0Nzc3MikKLSsrKyBnY2MvY29uZmlnL2kz ODYvaTM4Ni5oCShyZXZpc2lvbiAxNDc3NzMpCi1AQCAtNTksNiArNTksNyBAQCBzZWUgdGhlIGZp bGVzIENPUFlJTkczIGFuZCBDT1BZSU5HLlJVTlRJCi0gI2RlZmluZSBUQVJHRVRfQUJNCU9QVElP Tl9JU0FfQUJNCi0gI2RlZmluZSBUQVJHRVRfUE9QQ05UCU9QVElPTl9JU0FfUE9QQ05UCi0gI2Rl ZmluZSBUQVJHRVRfU0FIRglPUFRJT05fSVNBX1NBSEYKLSsjZGVmaW5lIFRBUkdFVF9NT1ZCRQlP UFRJT05fSVNBX01PVkJFCi0gI2RlZmluZSBUQVJHRVRfQUVTCU9QVElPTl9JU0FfQUVTCi0gI2Rl ZmluZSBUQVJHRVRfUENMTVVMCU9QVElPTl9JU0FfUENMTVVMCi0gI2RlZmluZSBUQVJHRVRfQ01Q WENIRzE2QiBPUFRJT05fSVNBX0NYMTYKLS0tLSBnY2MvY29uZmlnL2kzODYvaTM4Ni5tZAkocmV2 aXNpb24gMTQ3NzcyKQotKysrIGdjYy9jb25maWcvaTM4Ni9pMzg2Lm1kCShyZXZpc2lvbiAxNDc3 NzMpCi1AQCAtMTYxMDUsNyArMTYxMDUsNyBAQCAoZGVmaW5lX2V4cGFuZCAiYnN3YXBzaTIiCi0g CShic3dhcDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikpKV0K LSAgICIiCi0gewotLSAgaWYgKCFUQVJHRVRfQlNXQVApCi0rICBpZiAoIShUQVJHRVRfQlNXQVAg fHwgVEFSR0VUX01PVkJFKSkKLSAgICAgewotICAgICAgIHJ0eCB4ID0gb3BlcmFuZHNbMF07Ci0g Ci1AQCAtMTYxMTcsNiArMTYxMTcsMjEgQEAgKGRlZmluZV9leHBhbmQgImJzd2Fwc2kyIgotICAg ICB9Ci0gfSkKLSAKLSsoZGVmaW5lX2luc24gIipic3dhcHNpX21vdmJlIgotKyAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6U0kgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9cixyLG0iKQotKwkoYnN3 YXA6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICIwLG0sciIp KSldCi0rICAiVEFSR0VUX01PVkJFICYmICEoTUVNX1AgKG9wZXJhbmRzWzBdKSAmJiBNRU1fUCAo b3BlcmFuZHNbMV0pKSIKLSsgICJACi0rICAgIGJzd2FwXHQlMAotKyAgICBtb3ZiZVx0eyUxLCAl MHwlMCwgJTF9Ci0rICAgIG1vdmJlXHR7JTEsICUwfCUwLCAlMX0iCi0rICBbKHNldF9hdHRyICJ0 eXBlIiAiKixpbW92LGltb3YiKQotKyAgIChzZXRfYXR0ciAibW9kcm0iICIqLDEsMSIpCi0rICAg KHNldF9hdHRyICJwcmVmaXhfMGYiICIxIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIg IiosMSwxIikKLSsgICAoc2V0X2F0dHIgImxlbmd0aCIgIjIsKiwqIikKLSsgICAoc2V0X2F0dHIg Im1vZGUiICJTSSIpXSkKLSsKLSAoZGVmaW5lX2luc24gIipic3dhcHNpXzEiCi0gICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQotIAkoYnN3YXA6U0kg KG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpXQotQEAgLTE2MTQ1 LDcgKzE2MTYwLDI5IEBAIChkZWZpbmVfaW5zbiAiYnN3YXBoaV9sb3dwYXJ0IgotICAgWyhzZXRf YXR0ciAibGVuZ3RoIiAiNCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiSEkiKV0pCi0gCi0tKGRl ZmluZV9pbnNuICJic3dhcGRpMiIKLSsoZGVmaW5lX2V4cGFuZCAiYnN3YXBkaTIiCi0rICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKLSsJKGJzd2FwOkRJ IChtYXRjaF9vcGVyYW5kOkRJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIiKSkpXQotKyAgIlRBUkdF VF82NEJJVCIKLSsgICIiKQotKwotKyhkZWZpbmVfaW5zbiAiKmJzd2FwZGlfbW92YmUiCi0rICBb KHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1yLHIsbSIp Ci0rCShic3dhcDpESSAobWF0Y2hfb3BlcmFuZDpESSAxICJub25pbW1lZGlhdGVfb3BlcmFuZCIg IjAsbSxyIikpKV0KLSsgICJUQVJHRVRfNjRCSVQgJiYgVEFSR0VUX01PVkJFCi0rICAgJiYgIShN RU1fUCAob3BlcmFuZHNbMF0pICYmIE1FTV9QIChvcGVyYW5kc1sxXSkpIgotKyAgIkAKLSsgICAg YnN3YXBcdCUwCi0rICAgIG1vdmJlXHR7JTEsICUwfCUwLCAlMX0KLSsgICAgbW92YmVcdHslMSwg JTB8JTAsICUxfSIKLSsgIFsoc2V0X2F0dHIgInR5cGUiICIqLGltb3YsaW1vdiIpCi0rICAgKHNl dF9hdHRyICJtb2RybSIgIiosMSwxIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF8wZiIgIjEiKQot KyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiKiwxLDEiKQotKyAgIChzZXRfYXR0ciAibGVu Z3RoIiAiMywqLCoiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQotKwotKyhkZWZpbmVf aW5zbiAiKmJzd2FwZGlfMSIKLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgInJlZ2lzdGVy X29wZXJhbmQiICI9ciIpCi0gCShic3dhcDpESSAobWF0Y2hfb3BlcmFuZDpESSAxICJyZWdpc3Rl cl9vcGVyYW5kIiAiMCIpKSldCi0gICAiVEFSR0VUXzY0QklUIgotLS0tIGdjYy9jb25maWcvaTM4 Ni9jcHVpZC5oCShyZXZpc2lvbiAxNDc3NzIpCi0rKysgZ2NjL2NvbmZpZy9pMzg2L2NwdWlkLmgJ KHJldmlzaW9uIDE0Nzc3MykKLUBAIC0yOSw2ICsyOSw3IEBACi0gI2RlZmluZSBiaXRfQ01QWENI RzE2QgkoMSA8PCAxMykKLSAjZGVmaW5lIGJpdF9TU0U0XzEJKDEgPDwgMTkpCi0gI2RlZmluZSBi aXRfU1NFNF8yCSgxIDw8IDIwKQotKyNkZWZpbmUgYml0X01PVkJFCSgxIDw8IDIyKQotICNkZWZp bmUgYml0X1BPUENOVAkoMSA8PCAyMykKLSAjZGVmaW5lIGJpdF9BRVMJCSgxIDw8IDI1KQotICNk ZWZpbmUgYml0X1hTQVZFCSgxIDw8IDI2KQotLS0tIGdjYy9jb25maWcvaTM4Ni9pMzg2Lm9wdAko cmV2aXNpb24gMTQ3NzcyKQotKysrIGdjYy9jb25maWcvaTM4Ni9pMzg2Lm9wdAkocmV2aXNpb24g MTQ3NzczKQotQEAgLTMzOSw2ICszMzksMTAgQEAgbXNhaGYKLSBUYXJnZXQgUmVwb3J0IE1hc2so SVNBX1NBSEYpIFZhcihpeDg2X2lzYV9mbGFncykgVmFyRXhpc3RzIFNhdmUKLSBTdXBwb3J0IGNv ZGUgZ2VuZXJhdGlvbiBvZiBzYWhmIGluc3RydWN0aW9uIGluIDY0Yml0IHg4Ni02NCBjb2RlLgot IAotK21tb3ZiZQotK1RhcmdldCBSZXBvcnQgTWFzayhJU0FfTU9WQkUpIFZhcihpeDg2X2lzYV9m bGFncykgVmFyRXhpc3RzIFNhdmUKLStTdXBwb3J0IGNvZGUgZ2VuZXJhdGlvbiBvZiBtb3ZiZSBp bnN0cnVjdGlvbi4KLSsKLSBtYWVzCi0gVGFyZ2V0IFJlcG9ydCBNYXNrKElTQV9BRVMpIFZhcihp eDg2X2lzYV9mbGFncykgVmFyRXhpc3RzIFNhdmUKLSBTdXBwb3J0IEFFUyBidWlsdC1pbiBmdW5j dGlvbnMgYW5kIGNvZGUgZ2VuZXJhdGlvbgotLS0tIGdjYy9jb25maWcvaTM4Ni9kcml2ZXItaTM4 Ni5jCShyZXZpc2lvbiAxNDc3NzIpCi0rKysgZ2NjL2NvbmZpZy9pMzg2L2RyaXZlci1pMzg2LmMJ KHJldmlzaW9uIDE0Nzc3MykKLUBAIC0zNzgsNyArMzc4LDcgQEAgY29uc3QgY2hhciAqaG9zdF9k ZXRlY3RfbG9jYWxfY3B1IChpbnQgYQotICAgLyogRXh0ZW5kZWQgZmVhdHVyZXMgKi8KLSAgIHVu c2lnbmVkIGludCBoYXNfbGFoZl9sbSA9IDAsIGhhc19zc2U0YSA9IDA7Ci0gICB1bnNpZ25lZCBp bnQgaGFzX2xvbmdtb2RlID0gMCwgaGFzXzNkbm93cCA9IDAsIGhhc18zZG5vdyA9IDA7Ci0tICB1 bnNpZ25lZCBpbnQgaGFzX3NzZTRfMSA9IDAsIGhhc19zc2U0XzIgPSAwOwotKyAgdW5zaWduZWQg aW50IGhhc19tb3ZiZSA9IDAsIGhhc19zc2U0XzEgPSAwLCBoYXNfc3NlNF8yID0gMDsKLSAgIHVu c2lnbmVkIGludCBoYXNfcG9wY250ID0gMCwgaGFzX2FlcyA9IDAsIGhhc19hdnggPSAwOwotICAg dW5zaWduZWQgaW50IGhhc19wY2xtdWwgPSAwOwotIAotQEAgLTQwOCw2ICs0MDgsNyBAQCBjb25z dCBjaGFyICpob3N0X2RldGVjdF9sb2NhbF9jcHUgKGludCBhCi0gICBoYXNfc3NlNF8yID0gZWN4 ICYgYml0X1NTRTRfMjsKLSAgIGhhc19hdnggPSBlY3ggJiBiaXRfQVZYOwotICAgaGFzX2NtcHhj aGcxNmIgPSBlY3ggJiBiaXRfQ01QWENIRzE2QjsKLSsgIGhhc19tb3ZiZSA9IGVjeCAmIGJpdF9N T1ZCRTsKLSAgIGhhc19wb3BjbnQgPSBlY3ggJiBiaXRfUE9QQ05UOwotICAgaGFzX2FlcyA9IGVj eCAmIGJpdF9BRVM7Ci0gICBoYXNfcGNsbXVsID0gZWN4ICYgYml0X1BDTE1VTDsKLUBAIC01OTcs NiArNTk4LDggQEAgY29uc3QgY2hhciAqaG9zdF9kZXRlY3RfbG9jYWxfY3B1IChpbnQgYQotIAlv cHRpb25zID0gY29uY2F0IChvcHRpb25zLCAiLW1jeDE2ICIsIE5VTEwpOwotICAgICAgIGlmICho YXNfbGFoZl9sbSkKLSAJb3B0aW9ucyA9IGNvbmNhdCAob3B0aW9ucywgIi1tc2FoZiAiLCBOVUxM KTsKLSsgICAgICBpZiAoaGFzX21vdmJlKQotKwlvcHRpb25zID0gY29uY2F0IChvcHRpb25zLCAi LW1tb3ZiZSAiLCBOVUxMKTsKLSAgICAgICBpZiAoaGFzX2FlcykKLSAJb3B0aW9ucyA9IGNvbmNh dCAob3B0aW9ucywgIi1tYWVzICIsIE5VTEwpOwotICAgICAgIGlmIChoYXNfcGNsbXVsKQotLS0t IGdjYy9jb25maWcvaTM4Ni9pMzg2LmMJKHJldmlzaW9uIDE0Nzc3MikKLSsrKyBnY2MvY29uZmln L2kzODYvaTM4Ni5jCShyZXZpc2lvbiAxNDc3NzMpCi1AQCAtMTk2NSw5ICsxOTY1LDExIEBAIHN0 YXRpYyBpbnQgaXg4Nl9pc2FfZmxhZ3NfZXhwbGljaXQ7Ci0gCi0gI2RlZmluZSBPUFRJT05fTUFT S19JU0FfQUJNX1NFVCBcCi0gICAoT1BUSU9OX01BU0tfSVNBX0FCTSB8IE9QVElPTl9NQVNLX0lT QV9QT1BDTlQpCi0rCi0gI2RlZmluZSBPUFRJT05fTUFTS19JU0FfUE9QQ05UX1NFVCBPUFRJT05f TUFTS19JU0FfUE9QQ05UCi0gI2RlZmluZSBPUFRJT05fTUFTS19JU0FfQ1gxNl9TRVQgT1BUSU9O X01BU0tfSVNBX0NYMTYKLSAjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9TQUhGX1NFVCBPUFRJT05f TUFTS19JU0FfU0FIRgotKyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX01PVkJFX1NFVCBPUFRJT05f TUFTS19JU0FfTU9WQkUKLSAKLSAvKiBEZWZpbmUgYSBzZXQgb2YgSVNBcyB3aGljaCBhcmVuJ3Qg YXZhaWxhYmxlIHdoZW4gYSBnaXZlbiBJU0EgaXMKLSAgICBkaXNhYmxlZC4gIE1NWCBhbmQgU1NF IElTQXMgYXJlIGhhbmRsZWQgc2VwYXJhdGVseS4gICovCi1AQCAtMjAwOSw2ICsyMDExLDcgQEAg c3RhdGljIGludCBpeDg2X2lzYV9mbGFnc19leHBsaWNpdDsKLSAjZGVmaW5lIE9QVElPTl9NQVNL X0lTQV9QT1BDTlRfVU5TRVQgT1BUSU9OX01BU0tfSVNBX1BPUENOVAotICNkZWZpbmUgT1BUSU9O X01BU0tfSVNBX0NYMTZfVU5TRVQgT1BUSU9OX01BU0tfSVNBX0NYMTYKLSAjZGVmaW5lIE9QVElP Tl9NQVNLX0lTQV9TQUhGX1VOU0VUIE9QVElPTl9NQVNLX0lTQV9TQUhGCi0rI2RlZmluZSBPUFRJ T05fTUFTS19JU0FfTU9WQkVfVU5TRVQgT1BUSU9OX01BU0tfSVNBX01PVkJFCi0gCi0gLyogVmVj dG9yaXphdGlvbiBsaWJyYXJ5IGludGVyZmFjZSBhbmQgaGFuZGxlcnMuICAqLwotIHRyZWUgKCpp eDg2X3ZlY2xpYl9oYW5kbGVyKShlbnVtIGJ1aWx0X2luX2Z1bmN0aW9uLCB0cmVlLCB0cmVlKSA9 IE5VTEw7Ci1AQCAtMjI5OSw2ICsyMzAyLDE5IEBAIGl4ODZfaGFuZGxlX29wdGlvbiAoc2l6ZV90 IGNvZGUsIGNvbnN0IGMKLSAJfQotICAgICAgIHJldHVybiB0cnVlOwotIAotKyAgICBjYXNlIE9Q VF9tbW92YmU6Ci0rICAgICAgaWYgKHZhbHVlKQotKwl7Ci0rCSAgaXg4Nl9pc2FfZmxhZ3MgfD0g T1BUSU9OX01BU0tfSVNBX01PVkJFX1NFVDsKLSsJICBpeDg2X2lzYV9mbGFnc19leHBsaWNpdCB8 PSBPUFRJT05fTUFTS19JU0FfTU9WQkVfU0VUOwotKwl9Ci0rICAgICAgZWxzZQotKwl7Ci0rCSAg aXg4Nl9pc2FfZmxhZ3MgJj0gfk9QVElPTl9NQVNLX0lTQV9NT1ZCRV9VTlNFVDsKLSsJICBpeDg2 X2lzYV9mbGFnc19leHBsaWNpdCB8PSBPUFRJT05fTUFTS19JU0FfTU9WQkVfVU5TRVQ7Ci0rCX0K LSsgICAgICByZXR1cm4gdHJ1ZTsKLSsKLSAgICAgY2FzZSBPUFRfbWFlczoKLSAgICAgICBpZiAo dmFsdWUpCi0gCXsKLUBAIC0yMzYxLDYgKzIzNzcsNyBAQCBpeDg2X3RhcmdldF9zdHJpbmcgKGlu dCBpc2EsIGludCBmbGFncywgCi0gICAgIHsgIi1tbW14IiwJCU9QVElPTl9NQVNLX0lTQV9NTVgg fSwKLSAgICAgeyAiLW1hYm0iLAkJT1BUSU9OX01BU0tfSVNBX0FCTSB9LAotICAgICB7ICItbXBv cGNudCIsCU9QVElPTl9NQVNLX0lTQV9QT1BDTlQgfSwKLSsgICAgeyAiLW1tb3ZiZSIsCU9QVElP Tl9NQVNLX0lTQV9NT1ZCRSB9LAotICAgICB7ICItbWFlcyIsCQlPUFRJT05fTUFTS19JU0FfQUVT IH0sCi0gICAgIHsgIi1tcGNsbXVsIiwJT1BUSU9OX01BU0tfSVNBX1BDTE1VTCB9LAotICAgfTsK LUBAIC0yNTc3LDcgKzI1OTQsOCBAQCBvdmVycmlkZV9vcHRpb25zIChib29sIG1haW5fYXJnc19w KQotICAgICAgIFBUQV9BRVMgPSAxIDw8IDE3LAotICAgICAgIFBUQV9QQ0xNVUwgPSAxIDw8IDE4 LAotICAgICAgIFBUQV9BVlggPSAxIDw8IDE5LAotLSAgICAgIFBUQV9GTUEgPSAxIDw8IDIwIAot KyAgICAgIFBUQV9GTUEgPSAxIDw8IDIwLAotKyAgICAgIFBUQV9NT1ZCRSA9IDEgPDwgMjEKLSAg ICAgfTsKLSAKLSAgIHN0YXRpYyBzdHJ1Y3QgcHRhCi1AQCAtMjYyMSw3ICsyNjM5LDcgQEAgb3Zl cnJpZGVfb3B0aW9ucyAoYm9vbCBtYWluX2FyZ3NfcCkKLSAJfCBQVEFfU1NTRTMgfCBQVEFfQ1gx Nn0sCi0gICAgICAgeyJhdG9tIiwgUFJPQ0VTU09SX0FUT00sIENQVV9BVE9NLAotIAlQVEFfNjRC SVQgfCBQVEFfTU1YIHwgUFRBX1NTRSB8IFBUQV9TU0UyIHwgUFRBX1NTRTMKLS0JfCBQVEFfU1NT RTMgfCBQVEFfQ1gxNn0sCi0rCXwgUFRBX1NTU0UzIHwgUFRBX0NYMTYgfCBQVEFfTU9WQkV9LAot ICAgICAgIHsiZ2VvZGUiLCBQUk9DRVNTT1JfR0VPREUsIENQVV9HRU9ERSwKLSAJUFRBX01NWCB8 IFBUQV8zRE5PVyB8IFBUQV8zRE5PV19BIHxQVEFfUFJFRkVUQ0hfU1NFfSwKLSAgICAgICB7Ims2 IiwgUFJPQ0VTU09SX0s2LCBDUFVfSzYsIFBUQV9NTVh9LAotQEAgLTI5MzUsNiArMjk1Myw5IEBA IG92ZXJyaWRlX29wdGlvbnMgKGJvb2wgbWFpbl9hcmdzX3ApCi0gCWlmICghKFRBUkdFVF82NEJJ VCAmJiAocHJvY2Vzc29yX2FsaWFzX3RhYmxlW2ldLmZsYWdzICYgUFRBX05PX1NBSEYpKQotIAkg ICAgJiYgIShpeDg2X2lzYV9mbGFnc19leHBsaWNpdCAmIE9QVElPTl9NQVNLX0lTQV9TQUhGKSkK LSAJICBpeDg2X2lzYV9mbGFncyB8PSBPUFRJT05fTUFTS19JU0FfU0FIRjsKLSsJaWYgKHByb2Nl c3Nvcl9hbGlhc190YWJsZVtpXS5mbGFncyAmIFBUQV9NT1ZCRQotKwkgICAgJiYgIShpeDg2X2lz YV9mbGFnc19leHBsaWNpdCAmIE9QVElPTl9NQVNLX0lTQV9NT1ZCRSkpCi0rCSAgaXg4Nl9pc2Ff ZmxhZ3MgfD0gT1BUSU9OX01BU0tfSVNBX01PVkJFOwotIAlpZiAocHJvY2Vzc29yX2FsaWFzX3Rh YmxlW2ldLmZsYWdzICYgUFRBX0FFUwotIAkgICAgJiYgIShpeDg2X2lzYV9mbGFnc19leHBsaWNp dCAmIE9QVElPTl9NQVNLX0lTQV9BRVMpKQotIAkgIGl4ODZfaXNhX2ZsYWdzIHw9IE9QVElPTl9N QVNLX0lTQV9BRVM7CgpkaWZmIC0tZ2l0IGEvZ2NjNDQtYXRvbS5wYXRjaCBiL2djYzQ0LWF0b20u cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkZGQxM2UuLjAwMDAwMDAKLS0t IGEvZ2NjNDQtYXRvbS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI4MzIgKzAsMCBAQAotMjAw OS0wMi0wNSAgSm9leSBZZSAgPGpvZXkueWVAaW50ZWwuY29tPgotCSAgICBYdWVwZW5nIEd1byA8 eHVlcGVuZy5ndW9AaW50ZWwuY29tPgotCSAgICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5j b20+Ci0KLQlBdG9tIHBpcGVsaW5lIG1vZGVsLCB0dW5pbmcgYW5kIGluc24gc2VsZWN0aW9uLgot CSogcnRsYW5hbC5jIChyZWdfbWVudGlvbmVkX2J5X21lbV9wXzEpOiBOZXcgZnVuY3Rpb24uCi0J KHJlZ19tZW50aW9uZWRfYnlfbWVtX3ApOiBOZXcgZnVuY3Rpb24uCi0JKHJlZ19kZXBfYnlfYWRk cl9wKTogTmV3IGZ1bmN0aW9uLgotCi0JKiBydGwuaCAocmVnX21lbnRpb25lZF9ieV9tZW1fcCk6 IERlY2xhcmUgbmV3IGZ1bmN0aW9uLgotCShyZWdfZGVwX2J5X2FkZHJfcCk6IExpa2V3aXNlLgot Ci0JKiBjb25maWcuZ2NjIChhdG9tKTogQWRkIGF0b20gY29uZmlnIG9wdGlvbnMgYW5kIHRhcmdl dC4KLQotCSogY29uZmlnL2kzODYvaTM4Ni5oIChUQVJHRVRfQVRPTSk6IE5ldyB0YXJnZXQgbWFj cm8uCi0JKFg4Nl9UVU5FX09QVF9BR1UpOiBOZXcgdHVuaW5nIGZsYWcuCi0JKFRBUkdFVF9PUFRf QUdVKTogTmV3IHRhcmdldCBvcHRpb24uCi0JKFRBUkdFVF9DUFVfREVGQVVMVF9hdG9tKTogTmV3 IENQVSBkZWZhdWx0LgotCShQUk9DRVNTT1JfQVRPTSk6IE5ldyBwcm9jZXNzb3IuCi0KLQkqIGNv bmZpZy9pMzg2L2kzODYtYy5jIChpeDg2X3RhcmdldF9tYWNyb3NfaW50ZXJuYWwpOiBOZXcgY2Fz ZQotCVBST0NFU1NPUl9BVE9NLgotCShpeDg2X3RhcmdldF9tYWNyb3NfaW50ZXJuYWwpOiBMaWtl d2lzZS4KLQotCSogY29uZmlnL2kzODYvaTM4Ni1wcm90b3MuaCAoaXg4Nl9sZWFfZm9yX2FkZF9v ayk6IERlY2xhcmUgbmV3Ci0JZnVuY3Rpb24uCi0JKGl4ODZfZGVwX2J5X3NoaWZ0X2NvdW50KTog TGlrZXdpc2UuCi0JKGl4ODZfYWdpX2RlcGVuZGVudCk6IExpa2V3aXNlLgotCi0JKiBjb25maWcv aTM4Ni9pMzg2LmMgKGF0b21fY29zdCk6IE5ldyBjb3N0LgotCShtX0FUT00pOiBOZXcgbWFjcm8g ZmxhZy4KLQkoaW5pdGlhbF9peDg2X3R1bmVfZmUpOiBTZXQgbV9BVE9NLgotCSh4ODZfYWNjdW11 bGF0ZV9vdXRnb2luZ19hcmdzKTogTGlrZXdpc2UuCi0JKHg4Nl9hcmNoX2Fsd2F5c19mYW5jeV9t YXRoXzM4Nyk6IExpa2V3aXNlLgotCShwcm9jZXNzb3JfdGFyZ2V0KTogQWRkIEF0b20gY29zdC4K LQkoY3B1X25hbWVzKTogQWRkIEF0b20gY3B1IG5hbWUuCi0JKG92ZXJyaWRlX29wdGlvbnMpOiBT ZXQgQXRvbSBJU0EuCi0JKExFQV9TRUFSQ0hfVEhSRVNIT0xEKTogTmV3IG1hY3JvLgotCShkaXN0 YW5jZV9ub25fYWd1X2RlZmluZSk6IE5ldyBmdW5jdGlvbi4KLQkoZGlzdGFuY2VfYWd1X3VzZSk6 IExpa2V3aXNlLgotCShpeDg2X2xlYV9mb3JfYWRkX29rKTogTGlrZXdpc2UuCi0JKGl4ODZfZGVw X2J5X3NoaWZ0X2NvdW50KTogTGlrZXdpc2UuCi0JKGl4ODZfYWdpX2RlcGVuZGVudCk6IE1ha2Ug aXQgZ2xvYmFsLgotCShpeDg2X2lzc3VlX3JhdGUpOiBOZXcgY2FzZSBQUk9DRVNTT1JfQVRPTS4K LQkoaXg4Nl9hZGp1c3RfY29zdCk6IExpa2V3aXNlLgotCi0JKiBjb25maWcvaTM4Ni9pMzg2Lm1k IChjcHUpOiBBZGQgbmV3IHZhbHVlICJhdG9tIi4KLQkoYXRvbS5tZCk6IEluY2x1ZGUgYXRvbS5t ZC4KLQkodXNlX2NhcnJ5LCBtb3Z1KTogTmV3IGF0dHIuCi0JKGFkZGRpM19jYXJyeV9yZXg2NCk6 IFNldCBhdHRyICJ1c2VfY2FycnkiLgotCShhZGRxaTNfY2FycnkpOiBMaWtld2lzZS4KLQkoYWRk aGkzX2NhcnJ5KTogTGlrZXdpc2UuCi0JKGFkZHNpM19jYXJyeSk6IExpa2V3aXNlLgotCSgqYWRk c2kzX2NhcnJ5X3pleHQpOiBMaWtld2lzZS4KLQkoc3ViZGkzX2NhcnJ5X3JleDY0KTogTGlrZXdp c2UuCi0JKHN1YnFpM19jYXJyeSk6IExpa2V3aXNlLgotCShzdWJoaTNfY2FycnkpOiBMaWtld2lz ZS4KLQkoc3Vic2kzX2NhcnJ5KTogTGlrZXdpc2UuCi0JKHg4Nl9tb3ZkaWNjXzBfbTFfcmV4NjQp OiBMaWtld2lzZS4KLQkoKng4Nl9tb3ZkaWNjXzBfbTFfc2UpOiBMaWtld2lzZS4KLQkoeDg2X21v dnNpY2NfMF9tMSk6IExpa2V3aXNlLgotCSgqeDg2X21vdnNpY2NfMF9tMV9zZSk6IExpa2V3aXNl LgotCSgqYWRkZGlfMV9yZXg2NCk6IEVtaXQgYWRkIGluc24gYXMgbXVjaCBhcyBwb3NzaWJsZS4K LQkoKmFkZHNpXzEpOiBMaWtld2lzZS4KLQkocmV0dXJuX2ludGVybmFsKTogU2V0IGF0b21fdW5p dC4KLQkocmV0dXJuX2ludGVybmFsX2xvbmcpOiBMaWtld2lzZS4KLQkocmV0dXJuX3BvcF9pbnRl cm5hbCk6IExpa2V3aXNlLgotCSgqcmNwc2YyX3NzZSk6IFNldCBhdG9tX3NzZV9hdHRyIGF0dHIu Ci0JKCpxcnQ8bW9kZT4yX3NzZSk6IExpa2V3aXNlLgotCSgqcHJlZmV0Y2hfc3NlKTogTGlrZXdp c2UuCi0KLQkqIGNvbmZpZy9pMzg2L3NzZS5tZCAoY3B1KTogU2V0IGF0dHIgImF0b21fc3NlX2F0 dHIiLgotCSgqcHJlZmV0Y2hfc3NlX3JleCk6IExpa2V3aXNlLgotCShzc2VfcmNwdjRzZjIpOiBM aWtld2lzZS4KLQkoc3NlX3ZtcmNwdjRzZjIpOiBMaWtld2lzZS4KLQkoc3NlX3NxcnR2NHNmMik6 IExpa2V3aXNlLgotCSg8c3NlPl92bXNxcnQ8bW9kZT4yKTogTGlrZXdpc2UuCi0JKHNzZV9sZG14 Y3NyKTogTGlrZXdpc2UuCi0JKHNzZV9zdG14Y3NyKTogTGlrZXdpc2UuCi0JKCpzc2Vfc2ZlbmNl KTogTGlrZXdpc2UuCi0JKHNzZTJfY2xmbHVzaCk6IExpa2V3aXNlLgotCSgqc3NlMl9tZmVuY2Up OiBMaWtld2lzZS4KLQkoKnNzZTJfbGZlbmNlKTogTGlrZXdpc2UuCi0JKGF2eF9tb3Z1cDxhdnht b2Rlc3VmZml4ZjJjPjxhdnhtb2Rlc3VmZml4Pik6IFNldCBhdHRyICJtb3Z1Ii4KLQkoPHNzZT5f bW92dXA8c3NlbW9kZXN1ZmZpeGYyYz4pOiBMaWtld2lzZS4KLQkoYXZ4X21vdmRxdTxhdnhtb2Rl c3VmZml4Pik6IExpa2V3aXNlLgotCShhdnhfbGRkcXU8YXZ4bW9kZXN1ZmZpeD4pOiBMaWtld2lz ZS4KLQkoc3NlMl9tb3ZudHYyZGkpOiBDaGFuZ2UgYXR0ciAidHlwZSIgdG8gInNzZW1vdiIuCi0J KHNzZTJfbW92bnRzaSk6IExpa2V3aXNlLgotCShyc3FydHY4c2YyKTogQ2hhbmdlIGF0dHIgInR5 cGUiIHRvICJzc2VhZGQiLgotCShzc2UzX2FkZHN1YnYyZGYzKTogU2V0IGF0dHIgImF0b21fdW5p dCIuCi0JKHNzZTNfaDxwbHVzbWludXNfaW5zbj52NHNmMyk6IExpa2V3aXNlLgotCSgqc3NlMl9w bWFkZHdkKTogTGlrZXdpc2UuCi0JKCp2ZWNfZXh0cmFjdHYyZGlfMV9yZXg2NCk6IExpa2V3aXNl LgotCSgqdmVjX2V4dHJhY3R2MmRpXzFfYXZ4KTogTGlrZXdpc2UuCi0JKHNzZTJfcHNhZGJ3KTog TGlrZXdpc2UuCi0JKHNzc2UzX3BoYWRkd3Y4aGkzKTogTGlrZXdpc2UuCi0JKHNzc2UzX3BoYWRk d3Y0aGkzKTogTGlrZXdpc2UuCi0JKHNzc2UzX3BoYWRkZHY0c2kzKTogTGlrZXdpc2UuCi0JKHNz c2UzX3BoYWRkZHYyc2kzKTogTGlrZXdpc2UuCi0JKHNzc2UzX3BoYWRkc3d2OGhpMyk6IExpa2V3 aXNlLgotCShzc3NlM19waGFkZHN3djRoaTMpOiBMaWtld2lzZS4KLQkoc3NzZTNfcGhzdWJ3djho aTMpOiBMaWtld2lzZS4KLQkoc3NzZTNfcGhzdWJ3djRoaTMpOiBMaWtld2lzZS4KLQkoc3NzZTNf cGhzdWJkdjRzaTMpOiBMaWtld2lzZS4KLQkoc3NzZTNfcGhzdWJkdjJzaTMpOiBMaWtld2lzZS4K LQkoc3NzZTNfcGhzdWJzd3Y4aGkzKTogTGlrZXdpc2UuCi0JKHNzc2UzX3Boc3Vic3d2NGhpMyk6 IExpa2V3aXNlLgotCShzc3NlM19wbWFkZHVic3cxMjgpOiBMaWtld2lzZS4KLQkoc3NlM19wbWFk ZHVic3c6IExpa2V3aXNlLgotCShzc3NlM19wYWxpZ25ydGkpOiBMaWtld2lzZS4KLQkoc3NzZTNf cGFsaWducmRpKTogTGlrZXdpc2UuCi0KLQkqIGNvbmZpZy9pMzg2L2F0b20ubWQ6IE5ldy4KLQot MjAwOS0wMi0wNSAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgotCi0JKiBjb25maWcv aTM4Ni9pMzg2LmMgKGl4ODZfYWdpX2RlcGVuZGVudCk6IFJlbW92ZSB0aGUgdGhpcmQKLQlhcmd1 bWVudC4gIFN3YXAgdGhlIGZpcnN0IDIgYXJndW1lbnRzLgotCShpeDg2X2FkanVzdF9jb3N0KTog VXBkYXRlZC4KLQotMjAwOS0wMS0zMCAgVmxhZGltaXIgTWFrYXJvdiAgPHZtYWthcm92QHJlZGhh dC5jb20+Ci0KLQkqIGdlbmF1dG9tYXRhLmM6IEFkZCBhIG5ldyB5ZWFyIHRvIHRoZSBjb3B5cmln aHQuICBBZGQgYSBuZXcKLQlyZWZlcmVuY2UuCi0JKHN0cnVjdCBpbnNuX3Jlc2Vydl9kZWNsKTog QWRkIGNvbW1lbnRzIGZvciBtZW1iZXIgYnlwYXNzX2xpc3QuCi0JKGZpbmRfYnlwYXNzKTogUmVt b3ZlLgotCShpbnNlcnRfYnlwYXNzKTogTmV3LgotCShwcm9jZXNzX2RlY2xzKTogVXNlIGluc2Vy dF9ieXBhc3MuCi0JKG91dHB1dF9pbnRlcm5hbF9pbnNuX2xhdGVuY3lfZnVuYyk6IE91dHB1dCBh bGwgYnlwYXNzZXMgd2l0aCB0aGUKLQlzYW1lIGlucHV0IGluc24gaW4gb25lIHN3aXRjaCBjYXNl LgotCi0JKiBydGwuZGVmIChkZWZpbmVfYnlwYXNzKTogRGVzY3JpYmUgYnlwYXNzIGNob2ljZS4K LQkqIGRvYy9tZC50ZXhpIChkZWZpbmVfYnlwYXNzKTogRGl0dG8uCi0KLS0tLSBnY2MvZG9jL21k LnRleGkJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0NDQ2MCkKLSsrKyBnY2MvZG9jL21kLnRleGkJ KC4uLi9icmFuY2hlcy9peDg2L2F0b20pCShyZXZpc2lvbiAxNDQ2MDEpCi1AQCAtNzUwNiw2ICs3 NTA2LDExIEBAIGJlIGlnbm9yZWQgZm9yIHRoaXMgY2FzZS4gIFRoZSBhZGRpdGlvbmEKLSByZWNv Z25pemUgY29tcGxpY2F0ZWQgYnlwYXNzZXMsIGUuZy5AOiB3aGVuIHRoZSBjb25zdW1lciBpcyBv bmx5IGFuIGFkZHJlc3MKLSBvZiBpbnNuIEBzYW1we3N0b3JlfSAobm90IGEgc3RvcmVkIHZhbHVl KS4KLSAKLStJZiB0aGVyZSBhcmUgbW9yZSBvbmUgYnlwYXNzIHdpdGggdGhlIHNhbWUgb3V0cHV0 IGFuZCBpbnB1dCBpbnNucywgdGhlCi0rY2hvc2VuIGJ5cGFzcyBpcyB0aGUgZmlyc3QgYnlwYXNz IHdpdGggYSBndWFyZCBpbiBkZXNjcmlwdGlvbiB3aG9zZQotK2d1YXJkIGZ1bmN0aW9uIHJldHVy bnMgbm9uemVyby4gIElmIHRoZXJlIGlzIG5vIHN1Y2ggYnlwYXNzLCB0aGVuCi0rYnlwYXNzIHdp dGhvdXQgdGhlIGd1YXJkIGZ1bmN0aW9uIGlzIGNob3Nlbi4KLSsKLSBAZmluZGV4IGV4Y2x1c2lv bl9zZXQKLSBAZmluZGV4IHByZXNlbmNlX3NldAotIEBmaW5kZXggZmluYWxfcHJlc2VuY2Vfc2V0 Ci0tLS0gZ2NjL3J0bGFuYWwuYwkoLi4uL3RydW5rKQkocmV2aXNpb24gMTQ0NDYwKQotKysrIGdj Yy9ydGxhbmFsLmMJKC4uLi9icmFuY2hlcy9peDg2L2F0b20pCShyZXZpc2lvbiAxNDQ2MDEpCi1A QCAtNzI4LDYgKzcyOCwxMjkgQEAgcmVnX21lbnRpb25lZF9wIChjb25zdF9ydHggcmVnLCBjb25z dF9ydAotICAgICB9Ci0gICByZXR1cm4gMDsKLSB9Ci0rCi0rc3RhdGljIGludAotK3JlZ19tZW50 aW9uZWRfYnlfbWVtX3BfMSAoY29uc3RfcnR4IHJlZywgY29uc3RfcnR4IGluLAotKwkJCSAgYm9v bCAqbWVtX3ApCi0rewotKyAgY29uc3QgY2hhciAqZm10OwotKyAgaW50IGk7Ci0rICBlbnVtIHJ0 eF9jb2RlIGNvZGU7Ci0rCi0rICBpZiAoaW4gPT0gMCkKLSsgICAgcmV0dXJuIDA7Ci0rCi0rICBp ZiAocmVnID09IGluKQotKyAgICByZXR1cm4gMTsKLSsKLSsgIGlmIChHRVRfQ09ERSAoaW4pID09 IExBQkVMX1JFRikKLSsgICAgcmV0dXJuIHJlZyA9PSBYRVhQIChpbiwgMCk7Ci0rCi0rICBjb2Rl ID0gR0VUX0NPREUgKGluKTsKLSsKLSsgIHN3aXRjaCAoY29kZSkKLSsgICAgewotKyAgICAgIC8q IENvbXBhcmUgcmVnaXN0ZXJzIGJ5IG51bWJlci4gICovCi0rICAgIGNhc2UgUkVHOgotKyAgICAg IHJldHVybiBSRUdfUCAocmVnKSAmJiBSRUdOTyAoaW4pID09IFJFR05PIChyZWcpOwotKwotKyAg ICAgIC8qIFRoZXNlIGNvZGVzIGhhdmUgbm8gY29uc3RpdHVlbnQgZXhwcmVzc2lvbnMKLSsJIGFu ZCBhcmUgdW5pcXVlLiAgKi8KLSsgICAgY2FzZSBTQ1JBVENIOgotKyAgICBjYXNlIENDMDoKLSsg ICAgY2FzZSBQQzoKLSsgICAgICByZXR1cm4gMDsKLSsKLSsgICAgY2FzZSBDT05TVF9JTlQ6Ci0r ICAgIGNhc2UgQ09OU1RfVkVDVE9SOgotKyAgICBjYXNlIENPTlNUX0RPVUJMRToKLSsgICAgY2Fz ZSBDT05TVF9GSVhFRDoKLSsgICAgICAvKiBUaGVzZSBhcmUga2VwdCB1bmlxdWUgZm9yIGEgZ2l2 ZW4gdmFsdWUuICAqLwotKyAgICAgIHJldHVybiAwOwotKwotKyAgICBkZWZhdWx0OgotKyAgICAg IGJyZWFrOwotKyAgICB9Ci0rCi0rICBpZiAoR0VUX0NPREUgKHJlZykgPT0gY29kZSAmJiBydHhf ZXF1YWxfcCAocmVnLCBpbikpCi0rICAgIHJldHVybiAxOwotKwotKyAgZm10ID0gR0VUX1JUWF9G T1JNQVQgKGNvZGUpOwotKwotKyAgZm9yIChpID0gR0VUX1JUWF9MRU5HVEggKGNvZGUpIC0gMTsg aSA+PSAwOyBpLS0pCi0rICAgIHsKLSsgICAgICBpZiAoZm10W2ldID09ICdFJykKLSsJewotKwkg IGludCBqOwotKwkgIGZvciAoaiA9IFhWRUNMRU4gKGluLCBpKSAtIDE7IGogPj0gMDsgai0tKQot KwkgICAgaWYgKHJlZ19tZW50aW9uZWRfYnlfbWVtX3BfMSAocmVnLCBYVkVDRVhQIChpbiwgaSwg aiksIG1lbV9wKSkKLSsgICAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgICAgaWYgKGNvZGUg PT0gTUVNKQotKyAgICAgICAgICAgICAgICAgICptZW1fcCA9IHRydWU7Ci0rCi0rCSAgICAgICAg cmV0dXJuIDE7Ci0rICAgICAgICAgICAgICB9Ci0rCX0KLSsgICAgICBlbHNlIGlmIChmbXRbaV0g PT0gJ2UnCi0rCSAgICAgICAmJiByZWdfbWVudGlvbmVkX2J5X21lbV9wXzEgKHJlZywgWEVYUCAo aW4sIGkpLCBtZW1fcCkpCi0rCXsKLSsJICBpZiAoY29kZSA9PSBNRU0pCi0rCSAgICAqbWVtX3Ag PSB0cnVlOwotKwotKwkgIHJldHVybiAxOwotKwl9Ci0rICAgIH0KLSsgIHJldHVybiAwOwotK30K LSsKLSsvKiBTaW1pbGFyIHRvIHRoZSBmdW5jdGlvbiByZWdfbWVudGlvbmVkX3AsIHJldHVybiB0 cnVlIG9ubHkgd2hlbgotKyAgIHJlZ2lzdGVyIFJFRyBhcHBlYXJzIGluIGEgTUVNIGNvbnRhaW5l ciBvZiBSVFggSU4uICAqLwotKwotK2Jvb2wKLStyZWdfbWVudGlvbmVkX2J5X21lbV9wIChjb25z dF9ydHggcmVnLCBjb25zdF9ydHggaW4pCi0rewotKyAgYm9vbCBtZW0gPSBmYWxzZTsKLSsKLSsg IHJlZ19tZW50aW9uZWRfYnlfbWVtX3BfMSAocmVnLCBpbiwgJm1lbSk7Ci0rICByZXR1cm4gbWVt OwotK30KLSsKLSsvKiBSZXR1cm4gdHJ1ZSBpZiBkZXN0IHJlZ3NpdGVyIGluIHNldF9pbnNuIGlz IHVzZWQgaW4gdXNlX2luc24gYXMgCi0rICAgYWRkcmVzcyBjYWxjdWxhdGlvbi4KLSsgICBGb3Ig ZXhhbXBsZSwgcmV0dXJucyB0cnVlIGlmIAotKyAgICAgc2V0X2luc246IHJlZ19hID0gcmVnX2IK LSsgICAgIHVzZV9pbnNuOiByZWdfYyA9IChyZWdfYSkgIyByZWdfYSB1c2VkIGluIGFkZHIgY2Fs Y3VsYXRpb24KLSsgICBGYWxzZSBpZgotKyAgICAgc2V0X2luc246IHJlZ19hID0gcmVnX2IKLSsg ICAgIHVzZV9pbnNuOiAocmVnX2MpID0gcmVnX2EgIyByZWdfYSBpcyB1c2VkLCBieSBub3QgYXMg YWRkci4gICovCi0rCi0rYm9vbAotK3JlZ19kZXBfYnlfYWRkcl9wIChjb25zdF9ydHggc2V0X2lu c24sIGNvbnN0X3J0eCB1c2VfaW5zbikKLSt7Ci0rICBydHggcGF0dGVybiA9IFBBVFRFUk4gKHNl dF9pbnNuKTsKLSsgIHJ0eCBzZXRfZGVzdCA9IE5VTEw7Ci0rCi0rICBzd2l0Y2ggKEdFVF9DT0RF IChwYXR0ZXJuKSkKLSsgICAgewotKyAgICAgIGNhc2UgU0VUOgotKyAgICAgICAgc2V0X2Rlc3Qg PSBTRVRfREVTVCAocGF0dGVybik7Ci0rICAgICAgICBicmVhazsKLSsgICAgICBjYXNlIFBBUkFM TEVMOgotKyAgICAgICAgewotKyAgICAgICAgICBydHggcGF0dGVybjIgPSBYVkVDRVhQIChQQVRU RVJOIChzZXRfaW5zbiksIDAsMCk7Ci0rICAJICBpZiAoR0VUX0NPREUgKHBhdHRlcm4yKSA9PSBT RVQpCi0rICAJICAgIHNldF9kZXN0ID0gU0VUX0RFU1QgKHBhdHRlcm4yKTsKLSsgICAgICAgICAg YnJlYWs7Ci0rICAgICAgICB9Ci0rICAgICAgZGVmYXVsdDoKLSsgICAgICAgIHNldF9kZXN0ID0g TlVMTDsKLSsgICAgfQotKwotKyAgLyogVHJ1ZSBpZiBkZXN0aW5hdGlvbiBvZiBzZXQgaXMgcmVn IGFuZCB1c2VkIGFzIGFkZHJlc3MuICAqLwotKyAgcmV0dXJuIHNldF9kZXN0ICYmIFJFR19QIChz ZXRfZGVzdCkgCi0rICAgICAgICAgJiYgcmVnX21lbnRpb25lZF9ieV9tZW1fcCAoc2V0X2Rlc3Qs IHVzZV9pbnNuKTsKLSt9Ci0rCi0gDAotIC8qIFJldHVybiAxIGlmIGluIGJldHdlZW4gQkVHIGFu ZCBFTkQsIGV4Y2x1c2l2ZSBvZiBCRUcgYW5kIEVORCwgdGhlcmUgaXMKLSAgICBubyBDT0RFX0xB QkVMIGluc24uICAqLwotLS0tIGdjYy9nZW5hdXRvbWF0YS5jCSguLi4vdHJ1bmspCShyZXZpc2lv biAxNDQ0NjApCi0rKysgZ2NjL2dlbmF1dG9tYXRhLmMJKC4uLi9icmFuY2hlcy9peDg2L2F0b20p CShyZXZpc2lvbiAxNDQ2MDEpCi1AQCAtMjIsMjEgKzIyLDI1IEBAIGFsb25nIHdpdGggR0NDOyBz ZWUgdGhlIGZpbGUgQ09QWUlORzMuICAKLSAKLSAvKiBSZWZlcmVuY2VzOgotIAotLSAgIDEuIERl dGVjdGluZyBwaXBlbGluZSBzdHJ1Y3R1cmFsIGhhemFyZHMgcXVpY2tseS4gVC4gUHJvZWJzdGlu ZywKLSsgICAxLiBUaGUgZmluaXRlIHN0YXRlIGF1dG9tYXRvbiBiYXNlZCBwaXBlbGluZSBoYXph cmQgcmVjb2duaXplciBhbmQKLSsgICAgICBpbnN0cnVjdGlvbiBzY2hlZHVsZXIgaW4gR0NDLiAg Vi4gTWFrYXJvdi4gIFByb2NlZWRpbmdzIG9mIEdDQwotKyAgICAgIHN1bW1pdCwgMjAwMy4KLSsK LSsgICAyLiBEZXRlY3RpbmcgcGlwZWxpbmUgc3RydWN0dXJhbCBoYXphcmRzIHF1aWNrbHkuIFQu IFByb2Vic3RpbmcsCi0gICAgICAgQy4gRnJhc2VyLiBQcm9jZWVkaW5ncyBvZiBBQ00gU0lHUExB Ti1TSUdBQ1QgU3ltcG9zaXVtIG9uCi0gICAgICAgUHJpbmNpcGxlcyBvZiBQcm9ncmFtbWluZyBM YW5ndWFnZXMsIHBhZ2VzIDI4MC0tMjg2LCAxOTk0LgotIAotICAgICAgIFRoaXMgYXJ0aWNsZSBp cyBhIGdvb2Qgc3RhcnQgcG9pbnQgdG8gdW5kZXJzdGFuZCB1c2FnZSBvZiBmaW5pdGUKLSAgICAg ICBzdGF0ZSBhdXRvbWF0YSBmb3IgcGlwZWxpbmUgaGF6YXJkIHJlY29nbml6ZXJzLiAgQnV0IEkn ZAotLSAgICAgIHJlY29tbWVuZCB0aGUgMm5kIGFydGljbGUgZm9yIG1vcmUgZGVlcCB1bmRlcnN0 YW5kaW5nLgotKyAgICAgIHJlY29tbWVuZCB0aGUgMXN0IGFuZCAzcmQgYXJ0aWNsZSBmb3IgbW9y ZSBkZWVwIHVuZGVyc3RhbmRpbmcuCi0gCi0tICAgMi4gRWZmaWNpZW50IEluc3RydWN0aW9uIFNj aGVkdWxpbmcgVXNpbmcgRmluaXRlIFN0YXRlIEF1dG9tYXRhOgotKyAgIDMuIEVmZmljaWVudCBJ bnN0cnVjdGlvbiBTY2hlZHVsaW5nIFVzaW5nIEZpbml0ZSBTdGF0ZSBBdXRvbWF0YToKLSAgICAg ICBWLiBCYWxhIGFuZCBOLiBSdWJpbiwgUHJvY2VlZGluZ3Mgb2YgTUlDUk8tMjguICBUaGlzIGlz IHRoZSBiZXN0Ci0gICAgICAgYXJ0aWNsZSBhYm91dCB1c2FnZSBvZiBmaW5pdGUgc3RhdGUgYXV0 b21hdGEgZm9yIHBpcGVsaW5lIGhhemFyZAotICAgICAgIHJlY29nbml6ZXJzLgotIAotLSAgIFRo ZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGlzIGRpZmZlcmVudCBmcm9tIHRoZSAybmQgYXJ0aWNs ZSBpbiB0aGUKLS0gICBmb2xsb3dpbmc6Ci0rICAgVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24g aXMgZGVzY3JpYmVkIGluIHRoZSAxc3QgYXJ0aWNsZSBhbmQgaXQKLSsgICBpcyBkaWZmZXJlbnQg ZnJvbSB0aGUgM3JkIGFydGljbGUgaW4gdGhlIGZvbGxvd2luZzoKLSAKLSAgICAxLiBOZXcgb3Bl cmF0b3IgYHwnIChhbHRlcm5hdGl2ZSkgaXMgcGVybWl0dGVkIGluIGZ1bmN0aW9uYWwgdW5pdAot ICAgICAgIHJlc2VydmF0aW9uIHdoaWNoIGNhbiBiZSB0cmVhdGVkIGRldGVybWluaXN0aWNhbGx5 IGFuZAotQEAgLTQ2Myw3ICs0NjcsMTAgQEAgc3RydWN0IGluc25fcmVzZXJ2X2RlY2wKLSAgICAg IGluc24uICAqLwotICAgaW50IGluc25fbnVtOwotICAgLyogVGhlIGZvbGxvd2luZyBmaWVsZCB2 YWx1ZSBpcyBsaXN0IG9mIGJ5cGFzc2VzIGluIHdoaWNoIGdpdmVuIGluc24KLS0gICAgIGlzIG91 dHB1dCBpbnNuLiAgKi8KLSsgICAgIGlzIG91dHB1dCBpbnNuLiAgQnlwYXNzZXMgd2l0aCB0aGUg c2FtZSBpbnB1dCBpbnNuIHN0YXkgb25lIGFmdGVyCi0rICAgICBhbm90aGVyIGluIHRoZSBsaXN0 IGluIHRoZSBzYW1lIG9yZGVyIGFzIHRoZWlyIG9jY3VycmVuY2VzIGluIHRoZQotKyAgICAgZGVz Y3JpcHRpb24gYnV0IHRoZSBieXBhc3Mgd2l0aG91dCBhIGd1YXJkIHN0YXlzIGFsd2F5cyB0aGUg bGFzdAotKyAgICAgaW4gYSByb3cgb2YgYnlwYXNzZXMgd2l0aCB0aGUgc2FtZSBpbnB1dCBpbnNu LiAgKi8KLSAgIHN0cnVjdCBieXBhc3NfZGVjbCAqYnlwYXNzX2xpc3Q7Ci0gCi0gICAvKiBUaGUg Zm9sbG93aW5nIGZpZWxkcyBhcmUgZGVmaW5lZCBieSBhdXRvbWF0b24gZ2VuZXJhdG9yLiAgKi8K LUBAIC0yMzY3LDE4ICsyMzc0LDY3IEBAIGFkZF9wcmVzZW5jZV9hYnNlbmNlICh1bml0X3NldF9l bF90IGRlc3QKLSB9Ci0gCi0gCi0tLyogVGhlIGZ1bmN0aW9uIHNlYXJjaGVzIGZvciBieXBhc3Mg d2l0aCBnaXZlbiBJTl9JTlNOX1JFU0VSViBpbiBnaXZlbgotLSAgIEJZUEFTU19MSVNULiAgKi8K LS1zdGF0aWMgc3RydWN0IGJ5cGFzc19kZWNsICoKLS1maW5kX2J5cGFzcyAoc3RydWN0IGJ5cGFz c19kZWNsICpieXBhc3NfbGlzdCwKLS0JICAgICBzdHJ1Y3QgaW5zbl9yZXNlcnZfZGVjbCAqaW5f aW5zbl9yZXNlcnYpCi0tewotLSAgc3RydWN0IGJ5cGFzc19kZWNsICpieXBhc3M7Ci0tCi0tICBm b3IgKGJ5cGFzcyA9IGJ5cGFzc19saXN0OyBieXBhc3MgIT0gTlVMTDsgYnlwYXNzID0gYnlwYXNz LT5uZXh0KQotLSAgICBpZiAoYnlwYXNzLT5pbl9pbnNuX3Jlc2VydiA9PSBpbl9pbnNuX3Jlc2Vy dikKLS0gICAgICBicmVhazsKLS0gIHJldHVybiBieXBhc3M7Ci0rLyogVGhlIGZ1bmN0aW9uIGlu c2VydHMgQllQQVNTIGluIHRoZSBsaXN0IG9mIGJ5cGFzc2VzIG9mIHRoZQotKyAgIGNvcnJlc3Bv bmRpbmcgb3V0cHV0IGluc24uICBUaGUgb3JkZXIgb2YgYnlwYXNzZXMgaW4gdGhlIGxpc3QgaXMK LSsgICBkZWNyaWJlZCBpbiBhIGNvbW1lbnQgZm9yIG1lbWJlciBgYnlwYXNzX2xpc3QnIChzZWUg YWJvdmUpLiAgSWYKLSsgICB0aGVyZSBpcyBhbHJlYWR5IHRoZSBzYW1lIGJ5cGFzcyBpbiB0aGUg bGlzdCB0aGUgZnVuY3Rpb24gcmVwb3J0cwotKyAgIHRoaXMgYW5kIGRvZXMgbm90aGluZy4gICov Ci0rc3RhdGljIHZvaWQKLStpbnNlcnRfYnlwYXNzIChzdHJ1Y3QgYnlwYXNzX2RlY2wgKmJ5cGFz cykKLSt7Ci0rICBzdHJ1Y3QgYnlwYXNzX2RlY2wgKmN1cnIsICpsYXN0OwotKyAgc3RydWN0IGlu c25fcmVzZXJ2X2RlY2wgKm91dF9pbnNuX3Jlc2VydiA9IGJ5cGFzcy0+b3V0X2luc25fcmVzZXJ2 OwotKyAgc3RydWN0IGluc25fcmVzZXJ2X2RlY2wgKmluX2luc25fcmVzZXJ2ID0gYnlwYXNzLT5p bl9pbnNuX3Jlc2VydjsKLSsgIAotKyAgZm9yIChjdXJyID0gb3V0X2luc25fcmVzZXJ2LT5ieXBh c3NfbGlzdCwgbGFzdCA9IE5VTEw7Ci0rICAgICAgIGN1cnIgIT0gTlVMTDsKLSsgICAgICAgbGFz dCA9IGN1cnIsIGN1cnIgPSBjdXJyLT5uZXh0KQotKyAgICBpZiAoY3Vyci0+aW5faW5zbl9yZXNl cnYgPT0gaW5faW5zbl9yZXNlcnYpCi0rICAgICAgewotKwlpZiAoKGJ5cGFzcy0+YnlwYXNzX2d1 YXJkX25hbWUgIT0gTlVMTAotKwkgICAgICYmIGN1cnItPmJ5cGFzc19ndWFyZF9uYW1lICE9IE5V TEwKLSsJICAgICAmJiAhIHN0cmNtcCAoYnlwYXNzLT5ieXBhc3NfZ3VhcmRfbmFtZSwgY3Vyci0+ YnlwYXNzX2d1YXJkX25hbWUpKQotKwkgICAgfHwgYnlwYXNzLT5ieXBhc3NfZ3VhcmRfbmFtZSA9 PSBjdXJyLT5ieXBhc3NfZ3VhcmRfbmFtZSkKLSsJICB7Ci0rCSAgICBpZiAoYnlwYXNzLT5ieXBh c3NfZ3VhcmRfbmFtZSA9PSBOVUxMKQotKwkgICAgICB7Ci0rCQlpZiAoIXdfZmxhZykKLSsJCSAg ZXJyb3IgKCJ0aGUgc2FtZSBieXBhc3MgYCVzIC0gJXMnIGlzIGFscmVhZHkgZGVmaW5lZCIsCi0r CQkJIGJ5cGFzcy0+b3V0X2luc25fbmFtZSwgYnlwYXNzLT5pbl9pbnNuX25hbWUpOwotKwkJZWxz ZQotKwkJICB3YXJuaW5nICgwLCAidGhlIHNhbWUgYnlwYXNzIGAlcyAtICVzJyBpcyBhbHJlYWR5 IGRlZmluZWQiLAotKwkJCSAgIGJ5cGFzcy0+b3V0X2luc25fbmFtZSwgYnlwYXNzLT5pbl9pbnNu X25hbWUpOwotKwkgICAgICB9Ci0rCSAgICBlbHNlIGlmICghd19mbGFnKQotKwkgICAgICBlcnJv ciAoInRoZSBzYW1lIGJ5cGFzcyBgJXMgLSAlcycgKGd1YXJkICVzKSBpcyBhbHJlYWR5IGRlZmlu ZWQiLAotKwkJICAgICBieXBhc3MtPm91dF9pbnNuX25hbWUsIGJ5cGFzcy0+aW5faW5zbl9uYW1l LAotKwkJICAgICBieXBhc3MtPmJ5cGFzc19ndWFyZF9uYW1lKTsKLSsJICAgIGVsc2UKLSsJICAg ICAgd2FybmluZwotKwkJKDAsICJ0aGUgc2FtZSBieXBhc3MgYCVzIC0gJXMnIChndWFyZCAlcykg aXMgYWxyZWFkeSBkZWZpbmVkIiwKLSsJCSBieXBhc3MtPm91dF9pbnNuX25hbWUsIGJ5cGFzcy0+ aW5faW5zbl9uYW1lLAotKwkJIGJ5cGFzcy0+YnlwYXNzX2d1YXJkX25hbWUpOwotKwkgICAgcmV0 dXJuOwotKwkgIH0KLSsJaWYgKGN1cnItPmJ5cGFzc19ndWFyZF9uYW1lID09IE5VTEwpCi0rCSAg YnJlYWs7Ci0rCWlmIChjdXJyLT5uZXh0ID09IE5VTEwgfHwgY3Vyci0+bmV4dC0+aW5faW5zbl9y ZXNlcnYgIT0gaW5faW5zbl9yZXNlcnYpCi0rCSAgewotKwkgICAgbGFzdCA9IGN1cnI7Ci0rCSAg ICBicmVhazsKLSsJICB9Ci0rCSAgCi0rICAgICAgfQotKyAgaWYgKGxhc3QgPT0gTlVMTCkKLSsg ICAgewotKyAgICAgIGJ5cGFzcy0+bmV4dCA9IG91dF9pbnNuX3Jlc2Vydi0+YnlwYXNzX2xpc3Q7 Ci0rICAgICAgb3V0X2luc25fcmVzZXJ2LT5ieXBhc3NfbGlzdCA9IGJ5cGFzczsKLSsgICAgfQot KyAgZWxzZQotKyAgICB7Ci0rICAgICAgYnlwYXNzLT5uZXh0ID0gbGFzdC0+bmV4dDsKLSsgICAg ICBsYXN0LT5uZXh0ID0gYnlwYXNzOwotKyAgICB9Ci0gfQotIAotIC8qIFRoZSBmdW5jdGlvbiBw cm9jZXNzZXMgcGlwZWxpbmUgZGVzY3JpcHRpb24gZGVjbGFyYXRpb25zLCBjaGVja3MKLUBAIC0y MzkxLDcgKzI0NDcsNiBAQCBwcm9jZXNzX2RlY2xzICh2b2lkKQotICAgZGVjbF90IGRlY2xfaW5f dGFibGU7Ci0gICBkZWNsX3Qgb3V0X2luc25fcmVzZXJ2OwotICAgZGVjbF90IGluX2luc25fcmVz ZXJ2OwotLSAgc3RydWN0IGJ5cGFzc19kZWNsICpieXBhc3M7Ci0gICBpbnQgYXV0b21hdG9uX3By ZXNlbmNlOwotICAgaW50IGk7Ci0gCi1AQCAtMjUxNCwzNiArMjU2OSw3IEBAIHByb2Nlc3NfZGVj bHMgKHZvaWQpCi0gCQk9IERFQ0xfSU5TTl9SRVNFUlYgKG91dF9pbnNuX3Jlc2Vydik7Ci0gCSAg ICAgIERFQ0xfQllQQVNTIChkZWNsKS0+aW5faW5zbl9yZXNlcnYKLSAJCT0gREVDTF9JTlNOX1JF U0VSViAoaW5faW5zbl9yZXNlcnYpOwotLQkgICAgICBieXBhc3MKLS0JCT0gZmluZF9ieXBhc3Mg KERFQ0xfSU5TTl9SRVNFUlYgKG91dF9pbnNuX3Jlc2VydiktPmJ5cGFzc19saXN0LAotLQkJCSAg ICAgICBERUNMX0JZUEFTUyAoZGVjbCktPmluX2luc25fcmVzZXJ2KTsKLS0JICAgICAgaWYgKGJ5 cGFzcyAhPSBOVUxMKQotLQkJewotLQkJICBpZiAoREVDTF9CWVBBU1MgKGRlY2wpLT5sYXRlbmN5 ID09IGJ5cGFzcy0+bGF0ZW5jeSkKLS0JCSAgICB7Ci0tCQkgICAgICBpZiAoIXdfZmxhZykKLS0J CQllcnJvcgotLQkJCSAgKCJ0aGUgc2FtZSBieXBhc3MgYCVzIC0gJXMnIGlzIGFscmVhZHkgZGVm aW5lZCIsCi0tCQkJICAgREVDTF9CWVBBU1MgKGRlY2wpLT5vdXRfaW5zbl9uYW1lLAotLQkJCSAg IERFQ0xfQllQQVNTIChkZWNsKS0+aW5faW5zbl9uYW1lKTsKLS0JCSAgICAgIGVsc2UKLS0JCQl3 YXJuaW5nCi0tCQkJICAoMCwgInRoZSBzYW1lIGJ5cGFzcyBgJXMgLSAlcycgaXMgYWxyZWFkeSBk ZWZpbmVkIiwKLS0JCQkgICBERUNMX0JZUEFTUyAoZGVjbCktPm91dF9pbnNuX25hbWUsCi0tCQkJ ICAgREVDTF9CWVBBU1MgKGRlY2wpLT5pbl9pbnNuX25hbWUpOwotLQkJICAgIH0KLS0JCSAgZWxz ZQotLQkJICAgIGVycm9yICgiYnlwYXNzIGAlcyAtICVzJyBpcyBhbHJlYWR5IGRlZmluZWQiLAot LQkJCSAgIERFQ0xfQllQQVNTIChkZWNsKS0+b3V0X2luc25fbmFtZSwKLS0JCQkgICBERUNMX0JZ UEFTUyAoZGVjbCktPmluX2luc25fbmFtZSk7Ci0tCQl9Ci0tCSAgICAgIGVsc2UKLS0JCXsKLS0J CSAgREVDTF9CWVBBU1MgKGRlY2wpLT5uZXh0Ci0tCQkgICAgPSBERUNMX0lOU05fUkVTRVJWIChv dXRfaW5zbl9yZXNlcnYpLT5ieXBhc3NfbGlzdDsKLS0JCSAgREVDTF9JTlNOX1JFU0VSViAob3V0 X2luc25fcmVzZXJ2KS0+YnlwYXNzX2xpc3QKLS0JCSAgICA9IERFQ0xfQllQQVNTIChkZWNsKTsK LS0JCX0KLSsJICAgICAgaW5zZXJ0X2J5cGFzcyAoREVDTF9CWVBBU1MgKGRlY2wpKTsKLSAJICAg IH0KLSAJfQotICAgICB9Ci1AQCAtODE1OSwxOSArODE4NSwzMiBAQCBvdXRwdXRfaW50ZXJuYWxf aW5zbl9sYXRlbmN5X2Z1bmMgKHZvaWQpCi0gCQkJICAgIChhZHZhbmNlX2N5Y2xlX2luc25fZGVj bCktPmluc25fbnVtKSk7Ci0gCSAgICBmcHJpbnRmIChvdXRwdXRfZmlsZSwgIiAgICAgICAgY2Fz ZSAlZDpcbiIsCi0gCQkgICAgIGJ5cGFzcy0+aW5faW5zbl9yZXNlcnYtPmluc25fbnVtKTsKLS0J ICAgIGlmIChieXBhc3MtPmJ5cGFzc19ndWFyZF9uYW1lID09IE5VTEwpCi0tCSAgICAgIGZwcmlu dGYgKG91dHB1dF9maWxlLCAiICAgICAgICAgIHJldHVybiAlZDtcbiIsCi0tCQkgICAgICAgYnlw YXNzLT5sYXRlbmN5KTsKLS0JICAgIGVsc2UKLSsJICAgIGZvciAoOzspCi0gCSAgICAgIHsKLS0J CWZwcmludGYgKG91dHB1dF9maWxlLAotLQkJCSAiICAgICAgICAgIGlmICglcyAoJXMsICVzKSlc biIsCi0tCQkJIGJ5cGFzcy0+YnlwYXNzX2d1YXJkX25hbWUsIElOU05fUEFSQU1FVEVSX05BTUUs Ci0tCQkJIElOU04yX1BBUkFNRVRFUl9OQU1FKTsKLS0JCWZwcmludGYgKG91dHB1dF9maWxlLAot LQkJCSAiICAgICAgICAgICAgcmV0dXJuICVkO1xuICAgICAgICAgIGJyZWFrO1xuIiwKLS0JCQkg YnlwYXNzLT5sYXRlbmN5KTsKLSsJCWlmIChieXBhc3MtPmJ5cGFzc19ndWFyZF9uYW1lID09IE5V TEwpCi0rCQkgIHsKLSsJCSAgICBnY2NfYXNzZXJ0IChieXBhc3MtPm5leHQgPT0gTlVMTAotKwkJ CQl8fCAoYnlwYXNzLT5pbl9pbnNuX3Jlc2VydgotKwkJCQkgICAgIT0gYnlwYXNzLT5uZXh0LT5p bl9pbnNuX3Jlc2VydikpOwotKwkJICAgIGZwcmludGYgKG91dHB1dF9maWxlLCAiICAgICAgICAg IHJldHVybiAlZDtcbiIsCi0rCQkJICAgICBieXBhc3MtPmxhdGVuY3kpOwotKwkJICB9Ci0rCQll bHNlCi0rCQkgIHsKLSsJCSAgICBmcHJpbnRmIChvdXRwdXRfZmlsZSwKLSsJCQkgICAgICIgICAg ICAgICAgaWYgKCVzICglcywgJXMpKVxuIiwKLSsJCQkgICAgIGJ5cGFzcy0+YnlwYXNzX2d1YXJk X25hbWUsIElOU05fUEFSQU1FVEVSX05BTUUsCi0rCQkJICAgICBJTlNOMl9QQVJBTUVURVJfTkFN RSk7Ci0rCQkgICAgZnByaW50ZiAob3V0cHV0X2ZpbGUsICIgICAgICAgICAgICByZXR1cm4gJWQ7 XG4iLAotKwkJCSAgICAgYnlwYXNzLT5sYXRlbmN5KTsKLSsJCSAgfQotKwkJaWYgKGJ5cGFzcy0+ bmV4dCA9PSBOVUxMCi0rCQkgICAgfHwgYnlwYXNzLT5pbl9pbnNuX3Jlc2VydiAhPSBieXBhc3Mt Pm5leHQtPmluX2luc25fcmVzZXJ2KQotKwkJICBicmVhazsKLSsJCWJ5cGFzcyA9IGJ5cGFzcy0+ bmV4dDsKLSAJICAgICAgfQotKwkgICAgaWYgKGJ5cGFzcy0+YnlwYXNzX2d1YXJkX25hbWUgIT0g TlVMTCkKLSsJICAgICAgZnByaW50ZiAob3V0cHV0X2ZpbGUsICIgICAgICAgICAgYnJlYWs7XG4i KTsKLSAJICB9Ci0gCWZwdXRzICgiICAgICAgICB9XG4gICAgICBicmVhaztcbiIsIG91dHB1dF9m aWxlKTsKLSAgICAgICB9Ci0tLS0gZ2NjL3J0bC5kZWYJKC4uLi90cnVuaykJKHJldmlzaW9uIDE0 NDQ2MCkKLSsrKyBnY2MvcnRsLmRlZgkoLi4uL2JyYW5jaGVzL2l4ODYvYXRvbSkJKHJldmlzaW9u IDE0NDYwMSkKLUBAIC0xMDg4LDcgKzEwODgsMTEgQEAgREVGX1JUTF9FWFBSKEZJTkFMX0FCU0VO Q0VfU0VULCAiZmluYWxfYQotICAgIGd1YXJkIGZvciB0aGUgYnlwYXNzLiAgVGhlIGZ1bmN0aW9u IHdpbGwgZ2V0IHRoZSB0d28gaW5zbnMgYXMKLSAgICBwYXJhbWV0ZXJzLiAgSWYgdGhlIGZ1bmN0 aW9uIHJldHVybnMgemVybyB0aGUgYnlwYXNzIHdpbGwgYmUKLSAgICBpZ25vcmVkIGZvciB0aGlz IGNhc2UuICBBZGRpdGlvbmFsIGd1YXJkIGlzIG5lY2Vzc2FyeSB0byByZWNvZ25pemUKLS0gICBj b21wbGljYXRlZCBieXBhc3NlcywgZS5nLiB3aGVuIGNvbnN1bWVyIGlzIGxvYWQgYWRkcmVzcy4g ICovCi0rICAgY29tcGxpY2F0ZWQgYnlwYXNzZXMsIGUuZy4gd2hlbiBjb25zdW1lciBpcyBsb2Fk IGFkZHJlc3MuICBJZiB0aGVyZQotKyAgIGFyZSBtb3JlIG9uZSBieXBhc3Mgd2l0aCB0aGUgc2Ft ZSBvdXRwdXQgYW5kIGlucHV0IGluc25zLCB0aGUKLSsgICBjaG9zZW4gYnlwYXNzIGlzIHRoZSBm aXJzdCBieXBhc3Mgd2l0aCBhIGd1YXJkIGluIGRlc2NyaXB0aW9uIHdob3NlCi0rICAgZ3VhcmQg ZnVuY3Rpb24gcmV0dXJucyBub256ZXJvLiAgSWYgdGhlcmUgaXMgbm8gc3VjaCBieXBhc3MsIHRo ZW4KLSsgICBieXBhc3Mgd2l0aG91dCB0aGUgZ3VhcmQgZnVuY3Rpb24gaXMgY2hvc2VuLiAgKi8K LSBERUZfUlRMX0VYUFIoREVGSU5FX0JZUEFTUywgImRlZmluZV9ieXBhc3MiLCAiaXNzUyIsIFJU WF9FWFRSQSkKLSAKLSAvKiAoZGVmaW5lX2F1dG9tYXRvbiBzdHJpbmcpIGRlc2NyaWJlcyBuYW1l cyBvZiBhdXRvbWF0YSBnZW5lcmF0ZWQgYW5kCi0tLS0gZ2NjL3J0bC5oCSguLi4vdHJ1bmspCShy ZXZpc2lvbiAxNDQ0NjApCi0rKysgZ2NjL3J0bC5oCSguLi4vYnJhbmNoZXMvaXg4Ni9hdG9tKQko cmV2aXNpb24gMTQ0NjAxKQotQEAgLTE3MzEsNiArMTczMSw4IEBAIGV4dGVybiBydHggZ2V0X3Jl bGF0ZWRfdmFsdWUgKGNvbnN0X3J0eCkKLSBleHRlcm4gYm9vbCBvZmZzZXRfd2l0aGluX2Jsb2Nr X3AgKGNvbnN0X3J0eCwgSE9TVF9XSURFX0lOVCk7Ci0gZXh0ZXJuIHZvaWQgc3BsaXRfY29uc3Qg KHJ0eCwgcnR4ICosIHJ0eCAqKTsKLSBleHRlcm4gaW50IHJlZ19tZW50aW9uZWRfcCAoY29uc3Rf cnR4LCBjb25zdF9ydHgpOwotK2V4dGVybiBib29sIHJlZ19tZW50aW9uZWRfYnlfbWVtX3AgKGNv bnN0X3J0eCwgY29uc3RfcnR4KTsKLStleHRlcm4gYm9vbCByZWdfZGVwX2J5X2FkZHJfcCAoY29u c3RfcnR4LCBjb25zdF9ydHgpOwotIGV4dGVybiBpbnQgY291bnRfb2NjdXJyZW5jZXMgKGNvbnN0 X3J0eCwgY29uc3RfcnR4LCBpbnQpOwotIGV4dGVybiBpbnQgcmVnX3JlZmVyZW5jZWRfcCAoY29u c3RfcnR4LCBjb25zdF9ydHgpOwotIGV4dGVybiBpbnQgcmVnX3VzZWRfYmV0d2Vlbl9wIChjb25z dF9ydHgsIGNvbnN0X3J0eCwgY29uc3RfcnR4KTsKLS0tLSBnY2MvY29uZmlnLmdjYwkoLi4uL3Ry dW5rKQkocmV2aXNpb24gMTQ0NDYwKQotKysrIGdjYy9jb25maWcuZ2NjCSguLi4vYnJhbmNoZXMv aXg4Ni9hdG9tKQkocmV2aXNpb24gMTQ0NjAxKQotQEAgLTEwODcsNyArMTA4Nyw3IEBAIGlbMzQ1 NjddODYtKi1saW51eCogfCBpWzM0NTY3XTg2LSota2ZyZWUKLSAJCQl0bWFrZV9maWxlPSIke3Rt YWtlX2ZpbGV9IGkzODYvdC1saW51eDY0IgotIAkJCW5lZWRfNjRiaXRfaHdpbnQ9eWVzCi0gCQkJ Y2FzZSBYIiR7d2l0aF9jcHV9IiBpbgotLQkJCVhnZW5lcmljfFhjb3JlMnxYbm9jb25hfFh4ODYt NjR8WGFtZGZhbTEwfFhiYXJjZWxvbmF8WGs4fFhvcHRlcm9ufFhhdGhsb242NHxYYXRobG9uLWZ4 KQotKwkJCVhnZW5lcmljfFhhdG9tfFhjb3JlMnxYbm9jb25hfFh4ODYtNjR8WGFtZGZhbTEwfFhi YXJjZWxvbmF8WGs4fFhvcHRlcm9ufFhhdGhsb242NHxYYXRobG9uLWZ4KQotIAkJCQk7OwotIAkJ CVgpCi0gCQkJCWlmIHRlc3QgeCR3aXRoX2NwdV82NCA9IHg7IHRoZW4KLUBAIC0xMDk2LDcgKzEw OTYsNyBAQCBpWzM0NTY3XTg2LSotbGludXgqIHwgaVszNDU2N104Ni0qLWtmcmVlCi0gCQkJCTs7 Ci0gCQkJKikKLSAJCQkJZWNobyAiVW5zdXBwb3J0ZWQgQ1BVIHVzZWQgaW4gLS13aXRoLWNwdT0k d2l0aF9jcHUsIHN1cHBvcnRlZCB2YWx1ZXM6IiAxPiYyCi0tCQkJCWVjaG8gImdlbmVyaWMgY29y ZTIgbm9jb25hIHg4Ni02NCBhbWRmYW0xMCBiYXJjZWxvbmEgazggb3B0ZXJvbiBhdGhsb242NCBh dGhsb24tZngiIDE+JjIKLSsJCQkJZWNobyAiZ2VuZXJpYyBhdG9tIGNvcmUyIG5vY29uYSB4ODYt NjQgYW1kZmFtMTAgYmFyY2Vsb25hIGs4IG9wdGVyb24gYXRobG9uNjQgYXRobG9uLWZ4IiAxPiYy Ci0gCQkJCWV4aXQgMQotIAkJCQk7OwotIAkJCWVzYWMKLUBAIC0xMjAxLDcgKzEyMDEsNyBAQCBp WzM0NTY3XTg2LSotc29sYXJpczIqKQotIAkJIyBsaWJnY2MvY29uZmlndXJlLmFjIGluc3RlYWQu Ci0gCQluZWVkXzY0Yml0X2h3aW50PXllcwotIAkJY2FzZSBYIiR7d2l0aF9jcHV9IiBpbgotLQkJ WGdlbmVyaWN8WGNvcmUyfFhub2NvbmF8WHg4Ni02NHxYYW1kZmFtMTB8WGJhcmNlbG9uYXxYazh8 WG9wdGVyb258WGF0aGxvbjY0fFhhdGhsb24tZngpCi0rCQlYZ2VuZXJpY3xYYXRvbXxYY29yZTJ8 WG5vY29uYXxYeDg2LTY0fFhhbWRmYW0xMHxYYmFyY2Vsb25hfFhrOHxYb3B0ZXJvbnxYYXRobG9u NjR8WGF0aGxvbi1meCkKLSAJCQk7OwotIAkJWCkKLSAJCQlpZiB0ZXN0IHgkd2l0aF9jcHVfNjQg PSB4OyB0aGVuCi1AQCAtMTIxMCw3ICsxMjEwLDcgQEAgaVszNDU2N104Ni0qLXNvbGFyaXMyKikK LSAJCQk7OwotIAkJKikKLSAJCQllY2hvICJVbnN1cHBvcnRlZCBDUFUgdXNlZCBpbiAtLXdpdGgt Y3B1PSR3aXRoX2NwdSwgc3VwcG9ydGVkIHZhbHVlczoiIDE+JjIKLS0JCQllY2hvICJnZW5lcmlj IGNvcmUyIG5vY29uYSB4ODYtNjQgYW1kZmFtMTAgYmFyY2Vsb25hIGs4IG9wdGVyb24gYXRobG9u NjQgYXRobG9uLWZ4IiAxPiYyCi0rCQkJZWNobyAiZ2VuZXJpYyBhdG9tIGNvcmUyIG5vY29uYSB4 ODYtNjQgYW1kZmFtMTAgYmFyY2Vsb25hIGs4IG9wdGVyb24gYXRobG9uNjQgYXRobG9uLWZ4IiAx PiYyCi0gCQkJZXhpdCAxCi0gCQkJOzsKLSAJCWVzYWMKLUBAIC0yODAzLDcgKzI4MDMsNyBAQCBj YXNlICIke3RhcmdldH0iIGluCi0gCQkJCWVzYWMKLSAJCQkJIyBPSwotIAkJCQk7OwotLQkJCSIi IHwgYW1kZmFtMTAgfCBiYXJjZWxvbmEgfCBrOCB8IG9wdGVyb24gfCBhdGhsb242NCB8IGF0aGxv bi1meCB8IG5vY29uYSB8IGNvcmUyIHwgZ2VuZXJpYykKLSsJCQkiIiB8IGFtZGZhbTEwIHwgYmFy Y2Vsb25hIHwgazggfCBvcHRlcm9uIHwgYXRobG9uNjQgfCBhdGhsb24tZnggfCBub2NvbmEgfCBj b3JlMiB8IGF0b20gfCBnZW5lcmljKQotIAkJCQkjIE9LCi0gCQkJCTs7Ci0gCQkJKikKLS0tLSBn Y2MvY29uZmlnL2kzODYvaTM4Ni5oCSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDQ0NjApCi0rKysg Z2NjL2NvbmZpZy9pMzg2L2kzODYuaAkoLi4uL2JyYW5jaGVzL2l4ODYvYXRvbSkJKHJldmlzaW9u IDE0NDYwMSkKLUBAIC0yMzEsNiArMjMxLDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBwcm9jZXNz b3JfY29zdHMgaXg4NgotICNkZWZpbmUgVEFSR0VUX0dFTkVSSUM2NCAoaXg4Nl90dW5lID09IFBS T0NFU1NPUl9HRU5FUklDNjQpCi0gI2RlZmluZSBUQVJHRVRfR0VORVJJQyAoVEFSR0VUX0dFTkVS SUMzMiB8fCBUQVJHRVRfR0VORVJJQzY0KQotICNkZWZpbmUgVEFSR0VUX0FNREZBTTEwIChpeDg2 X3R1bmUgPT0gUFJPQ0VTU09SX0FNREZBTTEwKQotKyNkZWZpbmUgVEFSR0VUX0FUT00gKGl4ODZf dHVuZSA9PSBQUk9DRVNTT1JfQVRPTSkKLSAKLSAvKiBGZWF0dXJlIHRlc3RzIGFnYWluc3QgdGhl IHZhcmlvdXMgdHVuaW5ncy4gICovCi0gZW51bSBpeDg2X3R1bmVfaW5kaWNlcyB7Ci1AQCAtMjk1 LDYgKzI5Niw3IEBAIGVudW0gaXg4Nl90dW5lX2luZGljZXMgewotICAgWDg2X1RVTkVfVVNFX1ZF Q1RPUl9GUF9DT05WRVJUUywKLSAgIFg4Nl9UVU5FX1VTRV9WRUNUT1JfQ09OVkVSVFMsCi0gICBY ODZfVFVORV9GVVNFX0NNUF9BTkRfQlJBTkNILAotKyAgWDg2X1RVTkVfT1BUX0FHVSwKLSAKLSAg IFg4Nl9UVU5FX0xBU1QKLSB9OwotQEAgLTM4Miw2ICszODQsNyBAQCBleHRlcm4gdW5zaWduZWQg Y2hhciBpeDg2X3R1bmVfZmVhdHVyZXNbCi0gCWl4ODZfdHVuZV9mZWF0dXJlc1tYODZfVFVORV9V U0VfVkVDVE9SX0NPTlZFUlRTXQotICNkZWZpbmUgVEFSR0VUX0ZVU0VfQ01QX0FORF9CUkFOQ0gg XAotIAlpeDg2X3R1bmVfZmVhdHVyZXNbWDg2X1RVTkVfRlVTRV9DTVBfQU5EX0JSQU5DSF0KLSsj ZGVmaW5lIFRBUkdFVF9PUFRfQUdVIGl4ODZfdHVuZV9mZWF0dXJlc1tYODZfVFVORV9PUFRfQUdV XQotIAotIC8qIEZlYXR1cmUgdGVzdHMgYWdhaW5zdCB0aGUgdmFyaW91cyBhcmNoaXRlY3R1cmUg dmFyaWF0aW9ucy4gICovCi0gZW51bSBpeDg2X2FyY2hfaW5kaWNlcyB7Ci1AQCAtNTY0LDYgKzU2 Nyw3IEBAIGVudW0gdGFyZ2V0X2NwdV9kZWZhdWx0Ci0gICBUQVJHRVRfQ1BVX0RFRkFVTFRfcHJl c2NvdHQsCi0gICBUQVJHRVRfQ1BVX0RFRkFVTFRfbm9jb25hLAotICAgVEFSR0VUX0NQVV9ERUZB VUxUX2NvcmUyLAotKyAgVEFSR0VUX0NQVV9ERUZBVUxUX2F0b20sCi0gCi0gICBUQVJHRVRfQ1BV X0RFRkFVTFRfZ2VvZGUsCi0gICBUQVJHRVRfQ1BVX0RFRkFVTFRfazYsCi1AQCAtMjI1Niw2ICsy MjYwLDcgQEAgZW51bSBwcm9jZXNzb3JfdHlwZQotICAgUFJPQ0VTU09SX0dFTkVSSUMzMiwKLSAg IFBST0NFU1NPUl9HRU5FUklDNjQsCi0gICBQUk9DRVNTT1JfQU1ERkFNMTAsCi0rICBQUk9DRVNT T1JfQVRPTSwKLSAgIFBST0NFU1NPUl9tYXgKLSB9OwotIAotLS0tIGdjYy9jb25maWcvaTM4Ni9p Mzg2Lm1kCSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDQ0NjApCi0rKysgZ2NjL2NvbmZpZy9pMzg2 L2kzODYubWQJKC4uLi9icmFuY2hlcy9peDg2L2F0b20pCShyZXZpc2lvbiAxNDQ2MDEpCi1AQCAt Mjk4LDcgKzI5OCw3IEBAIChkZWZpbmVfY29uc3RhbnRzCi0gCi0gDAotIDs7IFByb2Nlc3NvciB0 eXBlLgotLShkZWZpbmVfYXR0ciAiY3B1IiAibm9uZSxwZW50aXVtLHBlbnRpdW1wcm8sZ2VvZGUs azYsYXRobG9uLGs4LGNvcmUyLAotKyhkZWZpbmVfYXR0ciAiY3B1IiAibm9uZSxwZW50aXVtLHBl bnRpdW1wcm8sZ2VvZGUsazYsYXRobG9uLGs4LGNvcmUyLGF0b20sCi0gCQkgICAgZ2VuZXJpYzY0 LGFtZGZhbTEwIgotICAgKGNvbnN0IChzeW1ib2xfcmVmICJpeDg2X3NjaGVkdWxlIikpKQotIAot QEAgLTU5NCw2ICs1OTQsMTIgQEAgKGRlZmluZV9hdHRyICJmcF9pbnRfc3JjIiAiZmFsc2UsdHJ1 ZSIKLSAoZGVmaW5lX2F0dHIgImkzODdfY3ciICJ0cnVuYyxmbG9vcixjZWlsLG1hc2tfcG0sdW5p bml0aWFsaXplZCxhbnkiCi0gICAoY29uc3Rfc3RyaW5nICJhbnkiKSkKLSAKLSs7OyBEZWZpbmUg YXR0cmlidXRlIHRvIGNsYXNzaWZ5IGFkZC9zdWIgaW5zbnMgdGhhdCBjb25zdW1lcyBjYXJyeSBm bGFnIChDRikKLSsoZGVmaW5lX2F0dHIgInVzZV9jYXJyeSIgIjAsMSIgKGNvbnN0X3N0cmluZyAi MCIpKQotKwotKzs7IERlZmluZSBhdHRyaWJ1dGUgdG8gaW5kaWNhdGUgdW5hbGlnbmVkIHNzZW1v diBpbnNucwotKyhkZWZpbmVfYXR0ciAibW92dSIgIjAsMSIgKGNvbnN0X3N0cmluZyAiMCIpKQot KwotIDs7IERlc2NyaWJlIGEgdXNlcidzIGFzbSBzdGF0ZW1lbnQuCi0gKGRlZmluZV9hc21fYXR0 cmlidXRlcwotICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMTI4IikKLUBAIC03MDksNiArNzE1LDcg QEAgKGRlZmluZV9tb2RlX2l0ZXJhdG9yIFAgWyhTSSAiUG1vZGUgPT0gUwotIChpbmNsdWRlICJr Ni5tZCIpCi0gKGluY2x1ZGUgImF0aGxvbi5tZCIpCi0gKGluY2x1ZGUgImdlb2RlLm1kIikKLSso aW5jbHVkZSAiYXRvbS5tZCIpCi0gCi0gDAotIDs7IE9wZXJhbmQgYW5kIG9wZXJhdG9yIHByZWRp Y2F0ZXMgYW5kIGNvbnN0cmFpbnRzCi1AQCAtNTc3Niw2ICs1NzgzLDcgQEAgKGRlZmluZV9pbnNu ICJhZGRkaTNfY2FycnlfcmV4NjQiCi0gICAiVEFSR0VUXzY0QklUICYmIGl4ODZfYmluYXJ5X29w ZXJhdG9yX29rIChQTFVTLCBESW1vZGUsIG9wZXJhbmRzKSIKLSAgICJhZGN7cX1cdHslMiwgJTB8 JTAsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJhbHUiKQotKyAgIChzZXRfYXR0ciAidXNl X2NhcnJ5IiAiMSIpCi0gICAgKHNldF9hdHRyICJwZW50X3BhaXIiICJwdSIpCi0gICAgKHNldF9h dHRyICJtb2RlIiAiREkiKV0pCi0gCi1AQCAtNTg1MCw2ICs1ODU4LDcgQEAgKGRlZmluZV9pbnNu ICJhZGRxaTNfY2FycnkiCi0gICAiaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKFBMVVMsIFFJbW9k ZSwgb3BlcmFuZHMpIgotICAgImFkY3tifVx0eyUyLCAlMHwlMCwgJTJ9IgotICAgWyhzZXRfYXR0 ciAidHlwZSIgImFsdSIpCi0rICAgKHNldF9hdHRyICJ1c2VfY2FycnkiICIxIikKLSAgICAoc2V0 X2F0dHIgInBlbnRfcGFpciIgInB1IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJRSSIpXSkKLSAK LUBAIC01ODYyLDYgKzU4NzEsNyBAQCAoZGVmaW5lX2luc24gImFkZGhpM19jYXJyeSIKLSAgICJp eDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoUExVUywgSEltb2RlLCBvcGVyYW5kcykiCi0gICAiYWRj e3d9XHR7JTIsICUwfCUwLCAlMn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAiYWx1IikKLSsgICAo c2V0X2F0dHIgInVzZV9jYXJyeSIgIjEiKQotICAgIChzZXRfYXR0ciAicGVudF9wYWlyIiAicHUi KQotICAgIChzZXRfYXR0ciAibW9kZSIgIkhJIildKQotIAotQEAgLTU4NzQsNiArNTg4NCw3IEBA IChkZWZpbmVfaW5zbiAiYWRkc2kzX2NhcnJ5IgotICAgIml4ODZfYmluYXJ5X29wZXJhdG9yX29r IChQTFVTLCBTSW1vZGUsIG9wZXJhbmRzKSIKLSAgICJhZGN7bH1cdHslMiwgJTB8JTAsICUyfSIK LSAgIFsoc2V0X2F0dHIgInR5cGUiICJhbHUiKQotKyAgIChzZXRfYXR0ciAidXNlX2NhcnJ5IiAi MSIpCi0gICAgKHNldF9hdHRyICJwZW50X3BhaXIiICJwdSIpCi0gICAgKHNldF9hdHRyICJtb2Rl IiAiU0kiKV0pCi0gCi1AQCAtNTg4Nyw2ICs1ODk4LDcgQEAgKGRlZmluZV9pbnNuICIqYWRkc2kz X2NhcnJ5X3pleHQiCi0gICAiVEFSR0VUXzY0QklUICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29r IChQTFVTLCBTSW1vZGUsIG9wZXJhbmRzKSIKLSAgICJhZGN7bH1cdHslMiwgJWswfCVrMCwgJTJ9 IgotICAgWyhzZXRfYXR0ciAidHlwZSIgImFsdSIpCi0rICAgKHNldF9hdHRyICJ1c2VfY2Fycnki ICIxIikKLSAgICAoc2V0X2F0dHIgInBlbnRfcGFpciIgInB1IikKLSAgICAoc2V0X2F0dHIgIm1v ZGUiICJTSSIpXSkKLSAKLUBAIC02MTE2LDkgKzYxMjgsOSBAQCAoZGVmaW5lX2luc25fYW5kX3Nw bGl0ICIqbGVhX2dlbmVyYWxfM196Ci0gICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCi0gCi0g KGRlZmluZV9pbnNuICIqYWRkZGlfMV9yZXg2NCIKLS0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJ IDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPXIscm0sciIpCi0tCShwbHVzOkRJIChtYXRjaF9v cGVyYW5kOkRJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiJTAsMCxyIikKLS0JCSAobWF0Y2hf b3BlcmFuZDpESSAyICJ4ODZfNjRfZ2VuZXJhbF9vcGVyYW5kIiAicm1lLHJlLGxlIikpKQotKyAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9cixybSxy LHIiKQotKwkocGx1czpESSAobWF0Y2hfb3BlcmFuZDpESSAxICJub25pbW1lZGlhdGVfb3BlcmFu ZCIgIiUwLDAscixyIikKLSsJCSAobWF0Y2hfb3BlcmFuZDpESSAyICJ4ODZfNjRfZ2VuZXJhbF9v cGVyYW5kIiAicm1lLHJlLDAsbGUiKSkpCi0gICAgKGNsb2JiZXIgKHJlZzpDQyBGTEFHU19SRUcp KV0KLSAgICJUQVJHRVRfNjRCSVQgJiYgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKFBMVVMsIERJ bW9kZSwgb3BlcmFuZHMpIgotIHsKLUBAIC02MTM5LDYgKzYxNTEsMTAgQEAgKGRlZmluZV9pbnNu ICIqYWRkZGlfMV9yZXg2NCIKLSAJfQotIAotICAgICBkZWZhdWx0OgotKyAgICAgIC8qIFVzZSBh ZGQgYXMgbXVjaCBhcyBwb3NzaWJsZSB0byByZXBsYWNlIGxlYSBmb3IgQUdVIG9wdGltaXphdGlv bi4gKi8KLSsgICAgICBpZiAod2hpY2hfYWx0ZXJuYXRpdmUgPT0gMiAmJiBUQVJHRVRfT1BUX0FH VSkKLSsgICAgICAgIHJldHVybiAiYWRke3F9XHR7JTEsICUwfCUwLCAlMX0iOwotKyAgICAgICAg Ci0gICAgICAgZ2NjX2Fzc2VydCAocnR4X2VxdWFsX3AgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sx XSkpOwotIAotICAgICAgIC8qIE1ha2UgdGhpbmdzIHByZXR0eSBhbmQgYHN1YmwgJDQsJWVheCcg cmF0aGVyIHRoYW4gYGFkZGwgJC00LCAlZWF4Jy4KLUBAIC02MTU3LDggKzYxNzMsMTEgQEAgKGRl ZmluZV9pbnNuICIqYWRkZGlfMV9yZXg2NCIKLSAgICAgfQotIH0KLSAgIFsoc2V0IChhdHRyICJ0 eXBlIikKLS0gICAgIChjb25kIFsoZXFfYXR0ciAiYWx0ZXJuYXRpdmUiICIyIikKLSsgICAgIChj b25kIFsoYW5kIChlcV9hdHRyICJhbHRlcm5hdGl2ZSIgIjIiKSAKLSsgICAgICAgICAgICAgICAg IChlcSAoc3ltYm9sX3JlZiAiVEFSR0VUX09QVF9BR1UiKSAoY29uc3RfaW50IDApKSkKLSAJICAg ICAgKGNvbnN0X3N0cmluZyAibGVhIikKLSsgICAgICAgICAgICAoZXFfYXR0ciAiYWx0ZXJuYXRp dmUiICIzIikKLSsgICAgICAgICAgICAgIChjb25zdF9zdHJpbmcgImxlYSIpCi0gCSAgICA7IEN1 cnJlbnQgYXNzZW1ibGVycyBhcmUgYnJva2VuIGFuZCBkbyBub3QgYWxsb3cgQEdPVE9GRiBpbgot IAkgICAgOyBvdWdodCBidXQgYSBtZW1vcnkgY29udGV4dC4KLSAJICAgIChtYXRjaF9vcGVyYW5k OkRJIDIgInBpY19zeW1ib2xpY19vcGVyYW5kIiAiIikKLUBAIC02MTc1LDggKzYxOTQsOCBAQCAo ZGVmaW5lX3NwbGl0Ci0gCShwbHVzOkRJIChtYXRjaF9vcGVyYW5kOkRJIDEgInJlZ2lzdGVyX29w ZXJhbmQiICIiKQotIAkJIChtYXRjaF9vcGVyYW5kOkRJIDIgIng4Nl82NF9ub25tZW1vcnlfb3Bl cmFuZCIgIiIpKSkKLSAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXQotLSAgIlRBUkdF VF82NEJJVCAmJiByZWxvYWRfY29tcGxldGVkCi0tICAgJiYgdHJ1ZV9yZWdudW0gKG9wZXJhbmRz WzBdKSAhPSB0cnVlX3JlZ251bSAob3BlcmFuZHNbMV0pIgotKyAgIlRBUkdFVF82NEJJVCAmJiBy ZWxvYWRfY29tcGxldGVkIAotKyAgICYmIGl4ODZfbGVhX2Zvcl9hZGRfb2sgKFBMVVMsIGluc24s IG9wZXJhbmRzKSIKLSAgIFsoc2V0IChtYXRjaF9kdXAgMCkKLSAJKHBsdXM6REkgKG1hdGNoX2R1 cCAxKQotIAkJIChtYXRjaF9kdXAgMikpKV0KLUBAIC02MzgwLDkgKzYzOTksOSBAQCAoZGVmaW5l X2luc24gIiphZGRkaV81X3JleDY0IgotIAotIAotIChkZWZpbmVfaW5zbiAiKmFkZHNpXzEiCi0t ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1yLHJt LHIiKQotLQkocGx1czpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJub25pbW1lZGlhdGVfb3BlcmFu ZCIgIiUwLDAsciIpCi0tCQkgKG1hdGNoX29wZXJhbmQ6U0kgMiAiZ2VuZXJhbF9vcGVyYW5kIiAi ZyxyaSxsaSIpKSkKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgIm5vbmltbWVkaWF0ZV9v cGVyYW5kIiAiPXIscm0scixyIikKLSsJKHBsdXM6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAibm9u aW1tZWRpYXRlX29wZXJhbmQiICIlMCwwLHIsciIpCi0rCQkgKG1hdGNoX29wZXJhbmQ6U0kgMiAi Z2VuZXJhbF9vcGVyYW5kIiAiZyxyaSwwLGxpIikpKQotICAgIChjbG9iYmVyIChyZWc6Q0MgRkxB R1NfUkVHKSldCi0gICAiaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKFBMVVMsIFNJbW9kZSwgb3Bl cmFuZHMpIgotIHsKLUBAIC02NDAzLDYgKzY0MjIsMTAgQEAgKGRlZmluZV9pbnNuICIqYWRkc2lf MSIKLSAJfQotIAotICAgICBkZWZhdWx0OgotKyAgICAgIC8qIFVzZSBhZGQgYXMgbXVjaCBhcyBw b3NzaWJsZSB0byByZXBsYWNlIGxlYSBmb3IgQUdVIG9wdGltaXphdGlvbi4gKi8KLSsgICAgICBp ZiAod2hpY2hfYWx0ZXJuYXRpdmUgPT0gMiAmJiBUQVJHRVRfT1BUX0FHVSkKLSsgICAgICAgIHJl dHVybiAiYWRke2x9XHR7JTEsICUwfCUwLCAlMX0iOwotKwotICAgICAgIGdjY19hc3NlcnQgKHJ0 eF9lcXVhbF9wIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pKTsKLSAKLSAgICAgICAvKiBNYWtl IHRoaW5ncyBwcmV0dHkgYW5kIGBzdWJsICQ0LCVlYXgnIHJhdGhlciB0aGFuIGBhZGRsICQtNCwg JWVheCcuCi1AQCAtNjQxOSw3ICs2NDQyLDEwIEBAIChkZWZpbmVfaW5zbiAiKmFkZHNpXzEiCi0g ICAgIH0KLSB9Ci0gICBbKHNldCAoYXR0ciAidHlwZSIpCi0tICAgICAoY29uZCBbKGVxX2F0dHIg ImFsdGVybmF0aXZlIiAiMiIpCi0rICAgICAoY29uZCBbKGFuZCAoZXFfYXR0ciAiYWx0ZXJuYXRp dmUiICIyIikgCi0rICAgICAgICAgICAgICAgICAoZXEgKHN5bWJvbF9yZWYgIlRBUkdFVF9PUFRf QUdVIikgKGNvbnN0X2ludCAwKSkpCi0rICAgICAgICAgICAgICAgKGNvbnN0X3N0cmluZyAibGVh IikKLSsgICAgICAgICAgICAoZXFfYXR0ciAiYWx0ZXJuYXRpdmUiICIzIikKLSAJICAgICAgKGNv bnN0X3N0cmluZyAibGVhIikKLSAJICAgIDsgQ3VycmVudCBhc3NlbWJsZXJzIGFyZSBicm9rZW4g YW5kIGRvIG5vdCBhbGxvdyBAR09UT0ZGIGluCi0gCSAgICA7IG91Z2h0IGJ1dCBhIG1lbW9yeSBj b250ZXh0LgotQEAgLTY0MzcsOCArNjQ2Myw3IEBAIChkZWZpbmVfc3BsaXQKLSAJKHBsdXMgKG1h dGNoX29wZXJhbmQgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCi0gICAgICAgICAgICAgICAobWF0 Y2hfb3BlcmFuZCAyICJub25tZW1vcnlfb3BlcmFuZCIgIiIpKSkKLSAgICAoY2xvYmJlciAocmVn OkNDIEZMQUdTX1JFRykpXQotLSAgInJlbG9hZF9jb21wbGV0ZWQKLS0gICAmJiB0cnVlX3JlZ251 bSAob3BlcmFuZHNbMF0pICE9IHRydWVfcmVnbnVtIChvcGVyYW5kc1sxXSkiCi0rICAicmVsb2Fk X2NvbXBsZXRlZCAmJiBpeDg2X2xlYV9mb3JfYWRkX29rIChQTFVTLCBpbnNuLCBvcGVyYW5kcyki IAotICAgWyhjb25zdF9pbnQgMCldCi0gewotICAgcnR4IHBhdDsKLUBAIC03NTM5LDYgKzc1NjQs NyBAQCAoZGVmaW5lX2luc24gInN1YmRpM19jYXJyeV9yZXg2NCIKLSAgICJUQVJHRVRfNjRCSVQg JiYgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKE1JTlVTLCBESW1vZGUsIG9wZXJhbmRzKSIKLSAg ICJzYmJ7cX1cdHslMiwgJTB8JTAsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJhbHUiKQot KyAgIChzZXRfYXR0ciAidXNlX2NhcnJ5IiAiMSIpCi0gICAgKHNldF9hdHRyICJwZW50X3BhaXIi ICJwdSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0gCi1AQCAtNzU4Nyw2ICs3NjEz LDcgQEAgKGRlZmluZV9pbnNuICJzdWJxaTNfY2FycnkiCi0gICAiaXg4Nl9iaW5hcnlfb3BlcmF0 b3Jfb2sgKE1JTlVTLCBRSW1vZGUsIG9wZXJhbmRzKSIKLSAgICJzYmJ7Yn1cdHslMiwgJTB8JTAs ICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJhbHUiKQotKyAgIChzZXRfYXR0ciAidXNlX2Nh cnJ5IiAiMSIpCi0gICAgKHNldF9hdHRyICJwZW50X3BhaXIiICJwdSIpCi0gICAgKHNldF9hdHRy ICJtb2RlIiAiUUkiKV0pCi0gCi1AQCAtNzU5OSw2ICs3NjI2LDcgQEAgKGRlZmluZV9pbnNuICJz dWJoaTNfY2FycnkiCi0gICAiaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKE1JTlVTLCBISW1vZGUs IG9wZXJhbmRzKSIKLSAgICJzYmJ7d31cdHslMiwgJTB8JTAsICUyfSIKLSAgIFsoc2V0X2F0dHIg InR5cGUiICJhbHUiKQotKyAgIChzZXRfYXR0ciAidXNlX2NhcnJ5IiAiMSIpCi0gICAgKHNldF9h dHRyICJwZW50X3BhaXIiICJwdSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiSEkiKV0pCi0gCi1A QCAtNzYxMSw2ICs3NjM5LDcgQEAgKGRlZmluZV9pbnNuICJzdWJzaTNfY2FycnkiCi0gICAiaXg4 Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKE1JTlVTLCBTSW1vZGUsIG9wZXJhbmRzKSIKLSAgICJzYmJ7 bH1cdHslMiwgJTB8JTAsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJhbHUiKQotKyAgIChz ZXRfYXR0ciAidXNlX2NhcnJ5IiAiMSIpCi0gICAgKHNldF9hdHRyICJwZW50X3BhaXIiICJwdSIp Ci0gICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCi0gCi1AQCAtMTUyMjQsNiArMTUyNTMsNyBA QCAoZGVmaW5lX2luc24gInJldHVybl9pbnRlcm5hbCIKLSAgICJyZWxvYWRfY29tcGxldGVkIgot ICAgInJldCIKLSAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjEiKQotKyAgIChzZXRfYXR0ciAiYXRv bV91bml0IiAiamV1IikKLSAgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikKLSAg ICAoc2V0X2F0dHIgIm1vZHJtIiAiMCIpXSkKLSAKLUBAIC0xNTIzNiw2ICsxNTI2Niw3IEBAIChk ZWZpbmVfaW5zbiAicmV0dXJuX2ludGVybmFsX2xvbmciCi0gICAicmVsb2FkX2NvbXBsZXRlZCIK LSAgICJyZXBcO3JldCIKLSAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjEiKQotKyAgIChzZXRfYXR0 ciAiYXRvbV91bml0IiAiamV1IikKLSAgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIw IikKLSAgICAoc2V0X2F0dHIgInByZWZpeF9yZXAiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZHJt IiAiMCIpXSkKLUBAIC0xNTI0Niw2ICsxNTI3Nyw3IEBAIChkZWZpbmVfaW5zbiAicmV0dXJuX3Bv cF9pbnRlcm5hbCIKLSAgICJyZWxvYWRfY29tcGxldGVkIgotICAgInJldFx0JTAiCi0gICBbKHNl dF9hdHRyICJsZW5ndGgiICIzIikKLSsgICAoc2V0X2F0dHIgImF0b21fdW5pdCIgImpldSIpCi0g ICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMiIpCi0gICAgKHNldF9hdHRyICJtb2Ry bSIgIjAiKV0pCi0gCi1AQCAtMTYzNjcsNiArMTYzOTksNyBAQCAoZGVmaW5lX2luc24gIipyY3Bz ZjJfc3NlIgotICAgIlRBUkdFVF9TU0VfTUFUSCIKLSAgICIldnJjcHNzXHR7JTEsICVkMHwlZDAs ICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2UiKQotKyAgIChzZXRfYXR0ciAiYXRvbV9z c2VfYXR0ciIgInJjcCIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJtYXliZV92ZXgiKQotICAg IChzZXRfYXR0ciAibW9kZSIgIlNGIildKQotIAotQEAgLTE2NzE4LDYgKzE2NzUxLDcgQEAgKGRl ZmluZV9pbnNuICIqcnNxcnRzZjJfc3NlIgotICAgIlRBUkdFVF9TU0VfTUFUSCIKLSAgICIldnJz cXJ0c3NcdHslMSwgJWQwfCVkMCwgJTF9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZSIpCi0r ICAgKHNldF9hdHRyICJhdG9tX3NzZV9hdHRyIiAicmNwIikKLSAgICAoc2V0X2F0dHIgInByZWZp eCIgIm1heWJlX3ZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiU0YiKV0pCi0gCi1AQCAtMTY3 MzgsNiArMTY3NzIsNyBAQCAoZGVmaW5lX2luc24gIipzcXJ0PG1vZGU+Ml9zc2UiCi0gICAiU1NF X0ZMT0FUX01PREVfUCAoPE1PREU+bW9kZSkgJiYgVEFSR0VUX1NTRV9NQVRIIgotICAgIiV2c3Fy dHM8c3NlbW9kZWZzdWZmaXg+XHR7JTEsICVkMHwlZDAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5 cGUiICJzc2UiKQotKyAgIChzZXRfYXR0ciAiYXRvbV9zc2VfYXR0ciIgInNxcnQiKQotICAgIChz ZXRfYXR0ciAicHJlZml4IiAibWF5YmVfdmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9E RT4iKQotICAgIChzZXRfYXR0ciAiYXRobG9uX2RlY29kZSIgIioiKQotQEAgLTE5NzkxLDYgKzE5 ODI2LDcgQEAgKGRlZmluZV9pbnNuICJ4ODZfbW92ZGljY18wX20xX3JleDY0IgotICAgOyBTaW5j ZSB3ZSBkb24ndCBoYXZlIHRoZSBwcm9wZXIgbnVtYmVyIG9mIG9wZXJhbmRzIGZvciBhbiBhbHUg aW5zbiwKLSAgIDsgZmlsbCBpbiBhbGwgdGhlIGJsYW5rcy4KLSAgIFsoc2V0X2F0dHIgInR5cGUi ICJhbHUiKQotKyAgIChzZXRfYXR0ciAidXNlX2NhcnJ5IiAiMSIpCi0gICAgKHNldF9hdHRyICJw ZW50X3BhaXIiICJwdSIpCi0gICAgKHNldF9hdHRyICJtZW1vcnkiICJub25lIikKLSAgICAoc2V0 X2F0dHIgImltbV9kaXNwIiAiZmFsc2UiKQotQEAgLTE5ODA2LDYgKzE5ODQyLDcgQEAgKGRlZmlu ZV9pbnNuICIqeDg2X21vdmRpY2NfMF9tMV9zZSIKLSAgICIiCi0gICAic2Jie3F9XHQlMCwgJTAi Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAiYWx1IikKLSsgICAoc2V0X2F0dHIgInVzZV9jYXJyeSIg IjEiKQotICAgIChzZXRfYXR0ciAicGVudF9wYWlyIiAicHUiKQotICAgIChzZXRfYXR0ciAibWVt b3J5IiAibm9uZSIpCi0gICAgKHNldF9hdHRyICJpbW1fZGlzcCIgImZhbHNlIikKLUBAIC0xOTg0 OSw2ICsxOTg4Niw3IEBAIChkZWZpbmVfaW5zbiAieDg2X21vdnNpY2NfMF9tMSIKLSAgIDsgU2lu Y2Ugd2UgZG9uJ3QgaGF2ZSB0aGUgcHJvcGVyIG51bWJlciBvZiBvcGVyYW5kcyBmb3IgYW4gYWx1 IGluc24sCi0gICA7IGZpbGwgaW4gYWxsIHRoZSBibGFua3MuCi0gICBbKHNldF9hdHRyICJ0eXBl IiAiYWx1IikKLSsgICAoc2V0X2F0dHIgInVzZV9jYXJyeSIgIjEiKQotICAgIChzZXRfYXR0ciAi cGVudF9wYWlyIiAicHUiKQotICAgIChzZXRfYXR0ciAibWVtb3J5IiAibm9uZSIpCi0gICAgKHNl dF9hdHRyICJpbW1fZGlzcCIgImZhbHNlIikKLUBAIC0xOTg2NCw2ICsxOTkwMiw3IEBAIChkZWZp bmVfaW5zbiAiKng4Nl9tb3ZzaWNjXzBfbTFfc2UiCi0gICAiIgotICAgInNiYntsfVx0JTAsICUw IgotICAgWyhzZXRfYXR0ciAidHlwZSIgImFsdSIpCi0rICAgKHNldF9hdHRyICJ1c2VfY2Fycnki ICIxIikKLSAgICAoc2V0X2F0dHIgInBlbnRfcGFpciIgInB1IikKLSAgICAoc2V0X2F0dHIgIm1l bW9yeSIgIm5vbmUiKQotICAgIChzZXRfYXR0ciAiaW1tX2Rpc3AiICJmYWxzZSIpCi1AQCAtMjAx OTYsNyArMjAyMzUsOCBAQCAoZGVmaW5lX2luc24gInByb19lcGlsb2d1ZV9hZGp1c3Rfc3RhY2tf Ci0gICAgIH0KLSB9Ci0gICBbKHNldCAoYXR0ciAidHlwZSIpCi0tCShjb25kIFsoZXFfYXR0ciAi YWx0ZXJuYXRpdmUiICIwIikKLSsJKGNvbmQgWyhhbmQgKGVxX2F0dHIgImFsdGVybmF0aXZlIiAi MCIpIAotKwkgICAgICAgICAgICAoZXEgKHN5bWJvbF9yZWYgIlRBUkdFVF9PUFRfQUdVIikgKGNv bnN0X2ludCAwKSkpCi0gCQkgKGNvbnN0X3N0cmluZyAiYWx1IikKLSAJICAgICAgIChtYXRjaF9v cGVyYW5kOlNJIDIgImNvbnN0MF9vcGVyYW5kIiAiIikKLSAJCSAoY29uc3Rfc3RyaW5nICJpbW92 IikKLUBAIC0yMDIzOSw3ICsyMDI3OSw4IEBAIChkZWZpbmVfaW5zbiAicHJvX2VwaWxvZ3VlX2Fk anVzdF9zdGFja18KLSAgICAgfQotIH0KLSAgIFsoc2V0IChhdHRyICJ0eXBlIikKLS0JKGNvbmQg WyhlcV9hdHRyICJhbHRlcm5hdGl2ZSIgIjAiKQotKwkoY29uZCBbKGFuZCAoZXFfYXR0ciAiYWx0 ZXJuYXRpdmUiICIwIikKLSsJICAgICAgICAgICAgKGVxIChzeW1ib2xfcmVmICJUQVJHRVRfT1BU X0FHVSIpIChjb25zdF9pbnQgMCkpKQotIAkJIChjb25zdF9zdHJpbmcgImFsdSIpCi0gCSAgICAg ICAobWF0Y2hfb3BlcmFuZDpESSAyICJjb25zdDBfb3BlcmFuZCIgIiIpCi0gCQkgKGNvbnN0X3N0 cmluZyAiaW1vdiIpCi1AQCAtMjE3MzEsNiArMjE3NzIsNyBAQCAoZGVmaW5lX2luc24gIipwcmVm ZXRjaF9zc2UiCi0gICByZXR1cm4gcGF0dGVybnNbbG9jYWxpdHldOwotIH0KLSAgIFsoc2V0X2F0 dHIgInR5cGUiICJzc2UiKQotKyAgIChzZXRfYXR0ciAiYXRvbV9zc2VfYXR0ciIgInByZWZldGNo IikKLSAgICAoc2V0X2F0dHIgIm1lbW9yeSIgIm5vbmUiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIq cHJlZmV0Y2hfc3NlX3JleCIKLUBAIC0yMTc0OSw2ICsyMTc5MSw3IEBAIChkZWZpbmVfaW5zbiAi KnByZWZldGNoX3NzZV9yZXgiCi0gICByZXR1cm4gcGF0dGVybnNbbG9jYWxpdHldOwotIH0KLSAg IFsoc2V0X2F0dHIgInR5cGUiICJzc2UiKQotKyAgIChzZXRfYXR0ciAiYXRvbV9zc2VfYXR0ciIg InByZWZldGNoIikKLSAgICAoc2V0X2F0dHIgIm1lbW9yeSIgIm5vbmUiKV0pCi0gCi0gKGRlZmlu ZV9pbnNuICIqcHJlZmV0Y2hfM2Rub3ciCi0tLS0gZ2NjL2NvbmZpZy9pMzg2L2F0b20ubWQJKC4u Li90cnVuaykJKHJldmlzaW9uIDApCi0rKysgZ2NjL2NvbmZpZy9pMzg2L2F0b20ubWQJKC4uLi9i cmFuY2hlcy9peDg2L2F0b20pCShyZXZpc2lvbiAxNDQ2MDEpCi1AQCAtMCwwICsxLDc5NiBAQAot Kzs7IEF0b20gU2NoZWR1bGluZwotKzs7IENvcHlyaWdodCAoQykgMjAwOSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KLSs7OwotKzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdDQy4KLSs7 OwotKzs7IEdDQyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5Ci0rOzsgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSs7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pCi0rOzsgYW55IGxhdGVy IHZlcnNpb24uCi0rOzsKLSs7OyBHQ0MgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKLSs7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSs7OyBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKzs7Ci0rOzsgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSs7OyBh bG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIHdyaXRlIHRvCi0r OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0 aCBGbG9vciwKLSs7OyBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4gICovCi0rOzsKLSs7OyBB dG9tIGlzIGFuIGluLW9yZGVyIGNvcmUgd2l0aCB0d28gaW50ZWdlciBwaXBlbGluZXMuCi0rCi0r Ci0rKGRlZmluZV9hdHRyICJhdG9tX3VuaXQiICJzaXNodWYsc2ltdWwsamV1LGNvbXBsZXgsb3Ro ZXIiIAotKyAgKGNvbnN0X3N0cmluZyAib3RoZXIiKSkKLSsKLSsoZGVmaW5lX2F0dHIgImF0b21f c3NlX2F0dHIiICJyY3AsbW92ZHVwLGxmZW5jZSxmZW5jZSxwcmVmZXRjaCxzcXJ0LG14Y3NyLG90 aGVyIgotKyAgKGNvbnN0X3N0cmluZyAib3RoZXIiKSkKLSsKLSsoZGVmaW5lX2F1dG9tYXRvbiAi YXRvbSIpCi0rCi0rOzsgIEF0b20gaGFzIHR3byBwb3J0czogcG9ydCAwIGFuZCBwb3J0IDEgY29u bmVjdGluZyB0byBhbGwgZXhlY3V0aW9uIHVuaXRzCi0rKGRlZmluZV9jcHVfdW5pdCAiYXRvbS1w b3J0LTAsYXRvbS1wb3J0LTEiICJhdG9tIikKLSsKLSs7OyAgRVU6IEV4ZWN1dGlvbiBVbml0Ci0r OzsgIEF0b20gRVVzIGFyZSBjb25uZWN0ZWQgYnkgcG9ydCAwIG9yIHBvcnQgMS4gCi0rCi0rKGRl ZmluZV9jcHVfdW5pdCAiYXRvbS1ldS0wLCBhdG9tLWV1LTEsCi0rICAgICAgICAgICAgICAgICAg YXRvbS1pbXVsLTEsIGF0b20taW11bC0yLCBhdG9tLWltdWwtMywgYXRvbS1pbXVsLTQiCi0rICAg ICAgICAgICAgICAgICAgImF0b20iKQotKwotKzs7IFNvbWUgRVVzIGhhdmUgZHVwbGljYXRlZCBj b3BpZWQgYW5kIGNhbiBiZSBhY2Nlc3NlZCB2aWEgZWl0aGVyCi0rOzsgcG9ydCAwIG9yIHBvcnQg MQotKzs7IChkZWZpbmVfcmVzZXJ2YXRpb24gImF0b20tcG9ydC1laXRoZXIiICIoYXRvbS1wb3J0 LTAgfCBhdG9tLXBvcnQtMSkiKQotKwotKzs7OyBTb21lIGluc3RydWN0aW9ucyBpcyBkdWFsLXBp cGUgZXhlY3V0aW9uLCBuZWVkIGJvdGggcG9ydHMKLSs7OzsgQ29tcGxleCBtdWx0aS1vcCBtYWNy by1pbnN0cnVjdG9pbnMgbmVlZCBib3RoIHBvcnRzIGFuZCBhbGwgRVVzCi0rKGRlZmluZV9yZXNl cnZhdGlvbiAiYXRvbS1wb3J0LWR1YWwiICIoYXRvbS1wb3J0LTAgKyBhdG9tLXBvcnQtMSkiKQot KyhkZWZpbmVfcmVzZXJ2YXRpb24gImF0b20tYWxsLWV1IiAiKGF0b20tZXUtMCArIGF0b20tZXUt MSArIAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0b20taW11bC0xICsg YXRvbS1pbXVsLTIgKyBhdG9tLWltdWwtMyArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXRvbS1pbXVsLTQpIikKLSsKLSs7OzsgTW9zdCBvZiBzaW1wbGUgaW5zdHJ1Y3Rp b25zIGhhdmUgMSBjeWNsZSBsYXRlbmN5LiBTb21lIG9mIHRoZW0KLSs7OzsgaXNzdWUgaW4gcG9y dCAwLCBzb21lIGluIHBvcnQgMCBhbmQgc29tZSBpbiBlaXRoZXIgcG9ydC4KLSsoZGVmaW5lX3Jl c2VydmF0aW9uICJhdG9tLXNpbXBsZS0wIiAiKGF0b20tcG9ydC0wICsgYXRvbS1ldS0wKSIpCi0r KGRlZmluZV9yZXNlcnZhdGlvbiAiYXRvbS1zaW1wbGUtMSIgIihhdG9tLXBvcnQtMSArIGF0b20t ZXUtMSkiKQotKyhkZWZpbmVfcmVzZXJ2YXRpb24gImF0b20tc2ltcGxlLWVpdGhlciIgIihhdG9t LXNpbXBsZS0wIHwgYXRvbS1zaW1wbGUtMSkiKQotKwotKzs7OyBTb21lIGluc24gaXNzdWVzIGlu IHBvcnQgMCB3aXRoIDMgY3ljbGUgbGF0ZW5jeSBhbmQgMSBjeWNsZSB0cHV0Ci0rKGRlZmluZV9y ZXNlcnZhdGlvbiAiYXRvbS1ldS0wLTMtMSIgIihhdG9tLXBvcnQtMCArIGF0b20tZXUtMCwgbm90 aGluZyoyKSIpCi0rCi0rOzs7IGZtdWwgaW5zbiBjYW4gaGF2ZSA0IG9yIDUgY3ljbGVzIGxhdGVu Y3kKLSsoZGVmaW5lX3Jlc2VydmF0aW9uICJhdG9tLWZtdWwtNWMiICIoYXRvbS1wb3J0LTAgKyBh dG9tLWV1LTApLCBub3RoaW5nKjQiKQotKyhkZWZpbmVfcmVzZXJ2YXRpb24gImF0b20tZm11bC00 YyIgIihhdG9tLXBvcnQtMCArIGF0b20tZXUtMCksIG5vdGhpbmcqMyIpCi0rCi0rOzs7IGZhZGQg Y2FuIGhhcyA1IGN5Y2xlcyBsYXRlbmN5IGRlcGVuZHMgb24gaW5zdHJ1Y3Rpb24gZm9ybXMKLSso ZGVmaW5lX3Jlc2VydmF0aW9uICJhdG9tLWZhZGQtNWMiICIoYXRvbS1wb3J0LTEgKyBhdG9tLWV1 LTEpLCBub3RoaW5nKjUiKQotKwotKzs7OyBpbXVsIGluc24gaGFzIDUgY3ljbGVzIGxhdGVuY3kK LSsoZGVmaW5lX3Jlc2VydmF0aW9uICJhdG9tLWltdWwtMzIiIAotKyAgICAgICAgICAgICAgICAg ICAgImF0b20taW11bC0xLCBhdG9tLWltdWwtMiwgYXRvbS1pbXVsLTMsIGF0b20taW11bC00LCAK LSsgICAgICAgICAgICAgICAgICAgICBhdG9tLXBvcnQtMCIpCi0rOzs7IGltdWwgaW5zdHJ1Y3Rp b24gZXhjbHVkZXMgb3RoZXIgbm9uLUZQIGluc3RydWN0aW9ucy4KLSsoZXhjbHVzaW9uX3NldCAi YXRvbS1ldS0wLCBhdG9tLWV1LTEiIAotKyAgICAgICAgICAgICAgICJhdG9tLWltdWwtMSwgYXRv bS1pbXVsLTIsIGF0b20taW11bC0zLCBhdG9tLWltdWwtNCIpCi0rCi0rOzs7IGR1YWwtZXhlY3V0 aW9uIGluc3RydWN0aW9ucyBjYW4gaGF2ZSAxLDIsNCw1IGN5Y2xlcyBsYXRlbmN5IGRlcGVuZHMg b24gCi0rOzs7IGluc3RydWN0aW9uIGZvcm1zCi0rKGRlZmluZV9yZXNlcnZhdGlvbiAiYXRvbS1k dWFsLTFjIiAiKGF0b20tcG9ydC1kdWFsICsgYXRvbS1ldS0wICsgYXRvbS1ldS0xKSIpCi0rKGRl ZmluZV9yZXNlcnZhdGlvbiAiYXRvbS1kdWFsLTJjIgotKyAgICAgICAgICAgICAgICAgICAgIihh dG9tLXBvcnQtZHVhbCArIGF0b20tZXUtMCArIGF0b20tZXUtMSwgbm90aGluZykiKQotKyhkZWZp bmVfcmVzZXJ2YXRpb24gImF0b20tZHVhbC01YyIKLSsgICAgICAgICAgICAgICAgICAgICIoYXRv bS1wb3J0LWR1YWwgKyBhdG9tLWV1LTAgKyBhdG9tLWV1LTEsIG5vdGhpbmcqNCkiKQotKwotKzs7 OyBDb21wbGV4IG1hY3JvLWluc3RydWN0aW9uIGhhcyB2YXJpYW50cyBvZiBsYXRlbmN5LCBhbmQg dXNlcyBib3RoIHBvcnRzLgotKyhkZWZpbmVfcmVzZXJ2YXRpb24gImF0b20tY29tcGxleCIgIihh dG9tLXBvcnQtZHVhbCArIGF0b20tYWxsLWV1KSIpCi0rCi0rKGRlZmluZV9pbnNuX3Jlc2VydmF0 aW9uICAiYXRvbV9vdGhlciIgOQotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAg ICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJvdGhlciIpCi0rICAgICAgICAgICAgKGVxX2F0dHIg ImF0b21fdW5pdCIgIiFqZXUiKSkpCi0rICAiYXRvbS1jb21wbGV4LCBhdG9tLWFsbC1ldSo4IikK LSsKLSs7OyByZXR1cm4gaGFzIHR5cGUgIm90aGVyIiB3aXRoIGF0b21fdW5pdCAiamV1IgotKyhk ZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21fb3RoZXJfMiIgMQotKyAgKGFuZCAoZXFfYXR0 ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJvdGhlciIpCi0r ICAgICAgICAgICAgKGVxX2F0dHIgImF0b21fdW5pdCIgImpldSIpKSkKLSsgICJhdG9tLWR1YWwt MWMiKQotKwotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21fbXVsdGkiIDkKLSsgIChh bmQgKGVxX2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoZXFfYXR0ciAidHlwZSIgIm11bHRp IikpCi0rICAiYXRvbS1jb21wbGV4LCBhdG9tLWFsbC1ldSo4IikKLSsKLSs7OyBOb3JtYWwgYWx1 IGluc25zIHdpdGhvdXQgY2FycnkKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9tX2Fs dSIgMQotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChhbmQgKGVxX2F0 dHIgInR5cGUiICJhbHUiKQotKyAgICAgICAgICAgIChhbmQgKGVxX2F0dHIgIm1lbW9yeSIgIm5v bmUiKQotKyAgICAgICAgICAgICAgICAgKGVxX2F0dHIgInVzZV9jYXJyeSIgIjAiKSkpKQotKyAg ImF0b20tc2ltcGxlLWVpdGhlciIpCi0rCi0rOzsgTm9ybWFsIGFsdSBpbnNucyB3aXRob3V0IGNh cnJ5Ci0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICAiYXRvbV9hbHVfbWVtIiAxCi0rICAoYW5k IChlcV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImFs dSIpCi0rICAgICAgICAgICAgKGFuZCAoZXFfYXR0ciAibWVtb3J5IiAiIW5vbmUiKQotKyAgICAg ICAgICAgICAgICAgKGVxX2F0dHIgInVzZV9jYXJyeSIgIjAiKSkpKQotKyAgImF0b20tc2ltcGxl LWVpdGhlciIpCi0rCi0rOzsgQWx1IGluc24gY29uc3VtaW5nIENGLCBzdWNoIGFzIGFkZC9zYmIK LSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9tX2FsdV9jYXJyeSIgMQotKyAgKGFuZCAo ZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJhbHUi KQotKyAgICAgICAgICAgIChhbmQgKGVxX2F0dHIgIm1lbW9yeSIgIm5vbmUiKQotKyAgICAgICAg ICAgICAgICAgKGVxX2F0dHIgInVzZV9jYXJyeSIgIjEiKSkpKQotKyAgImF0b20tc2ltcGxlLWVp dGhlciIpCi0rCi0rOzsgQWx1IGluc24gY29uc3VtaW5nIENGLCBzdWNoIGFzIGFkZC9zYmIKLSso ZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9tX2FsdV9jYXJyeV9tZW0iIDEKLSsgIChhbmQg KGVxX2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiYWx1 IikKLSsgICAgICAgICAgICAoYW5kIChlcV9hdHRyICJtZW1vcnkiICIhbm9uZSIpCi0rICAgICAg ICAgICAgICAgIChlcV9hdHRyICJ1c2VfY2FycnkiICIxIikpKSkKLSsgICJhdG9tLXNpbXBsZS1l aXRoZXIiKQotKwotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21fYWx1MSIgMQotKyAg KGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUi ICJhbHUxIikKLSsgICAgICAgICAgICAoZXFfYXR0ciAibWVtb3J5IiAibm9uZSIpKSkKLSsgICJh dG9tLXNpbXBsZS1laXRoZXIiKQotKwotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21f YWx1MV9tZW0iIDEKLSsgIChhbmQgKGVxX2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoYW5k IChlcV9hdHRyICJ0eXBlIiAiYWx1MSIpCi0rICAgICAgICAgICAgKGVxX2F0dHIgIm1lbW9yeSIg IiFub25lIikpKQotKyAgImF0b20tc2ltcGxlLWVpdGhlciIpCi0rCi0rKGRlZmluZV9pbnNuX3Jl c2VydmF0aW9uICAiYXRvbV9uZWdub3QiIDEKLSsgIChhbmQgKGVxX2F0dHIgImNwdSIgImF0b20i KQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAibmVnbm90IikKLSsgICAgICAgICAgICAo ZXFfYXR0ciAibWVtb3J5IiAibm9uZSIpKSkKLSsgICJhdG9tLXNpbXBsZS1laXRoZXIiKQotKwot KyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21fbmVnbm90X21lbSIgMQotKyAgKGFuZCAo ZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJuZWdu b3QiKQotKyAgICAgICAgICAgIChlcV9hdHRyICJtZW1vcnkiICIhbm9uZSIpKSkKLSsgICJhdG9t LXNpbXBsZS1laXRoZXIiKQotKwotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21faW1v diIgMQotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChhbmQgKGVxX2F0 dHIgInR5cGUiICJpbW92IikKLSsgICAgICAgICAgICAoZXFfYXR0ciAibWVtb3J5IiAibm9uZSIp KSkKLSsgICJhdG9tLXNpbXBsZS1laXRoZXIiKQotKwotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlv biAgImF0b21faW1vdl9tZW0iIDEKLSsgIChhbmQgKGVxX2F0dHIgImNwdSIgImF0b20iKQotKyAg ICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaW1vdiIpCi0rICAgICAgICAgICAgKGVxX2F0dHIg Im1lbW9yeSIgIiFub25lIikpKQotKyAgImF0b20tc2ltcGxlLWVpdGhlciIpCi0rCi0rOzsgMTY8 LTE2LCAzMjwtMzIKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9tX2ltb3Z4IiAxCi0r ICAoYW5kIChlcV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAidHlw ZSIgImltb3Z4IikKLSsgICAgICAgICAgICAoYW5kIChlcV9hdHRyICJtZW1vcnkiICJub25lIikK LSsgICAgICAgICAgICAgICAgIChpb3IgKGFuZCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rl cl9vcGVyYW5kIikKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpI SSAxICJnZW5lcmFsX29wZXJhbmQiKSkKLSsgICAgICAgICAgICAgICAgICAgICAgKGFuZCAobWF0 Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIikKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAxICJnZW5lcmFsX29wZXJhbmQiKSkpKSkpCi0rICAi YXRvbS1zaW1wbGUtZWl0aGVyIikKLSsKLSs7OyAxNjwtMTYsIDMyPC0zMiwgbWVtCi0rKGRlZmlu ZV9pbnNuX3Jlc2VydmF0aW9uICAiYXRvbV9pbW92eF9tZW0iIDEKLSsgIChhbmQgKGVxX2F0dHIg ImNwdSIgImF0b20iKQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaW1vdngiKQotKyAg ICAgICAgICAgIChhbmQgKGVxX2F0dHIgIm1lbW9yeSIgIiFub25lIikKLSsgICAgICAgICAgICAg ICAgIChpb3IgKGFuZCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIikKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpISSAxICJnZW5lcmFsX29w ZXJhbmQiKSkKLSsgICAgICAgICAgICAgICAgICAgICAgKGFuZCAobWF0Y2hfb3BlcmFuZDpTSSAw ICJyZWdpc3Rlcl9vcGVyYW5kIikKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hf b3BlcmFuZDpTSSAxICJnZW5lcmFsX29wZXJhbmQiKSkpKSkpCi0rICAiYXRvbS1zaW1wbGUtZWl0 aGVyIikKLSsKLSs7OyAzMjwtMTYsIDMyPC04LCA2NDwtMTYsIDY0PC04LCA2NDwtMzIsIDg8LTgK LSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9tX2ltb3Z4XzIiIDEKLSsgIChhbmQgKGVx X2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaW1vdngi KQotKyAgICAgICAgICAgIChhbmQgKGVxX2F0dHIgIm1lbW9yeSIgIm5vbmUiKQotKyAgICAgICAg ICAgICAgICAgKGlvciAobWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIikKLSsg ICAgICAgICAgICAgICAgICAgICAgKGlvciAoYW5kIChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lz dGVyX29wZXJhbmQiKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAobWF0 Y2hfb3BlcmFuZDpTSSAxICJnZW5lcmFsX29wZXJhbmQiKSkpCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIpKSkpKSkKLSsg ICJhdG9tLXNpbXBsZS0wIikKLSsKLSs7OyAzMjwtMTYsIDMyPC04LCA2NDwtMTYsIDY0PC04LCA2 NDwtMzIsIDg8LTgsIG1lbQotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21faW1vdnhf Ml9tZW0iIDEKLSsgIChhbmQgKGVxX2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoYW5kIChl cV9hdHRyICJ0eXBlIiAiaW1vdngiKQotKyAgICAgICAgICAgIChhbmQgKGVxX2F0dHIgIm1lbW9y eSIgIiFub25lIikKLSsgICAgICAgICAgICAgICAgIChpb3IgKG1hdGNoX29wZXJhbmQ6UUkgMCAi cmVnaXN0ZXJfb3BlcmFuZCIpCi0rICAgICAgICAgICAgICAgICAgICAgIChpb3IgKGFuZCAobWF0 Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIikKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChub3QgKG1hdGNoX29wZXJhbmQ6U0kgMSAiZ2VuZXJhbF9vcGVyYW5kIikp KQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkRJIDAgInJlZ2lz dGVyX29wZXJhbmQiKSkpKSkpCi0rICAiYXRvbS1zaW1wbGUtMCIpCi0rCi0rOzsgMTY8LTgKLSso ZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9tX2ltb3Z4XzMiIDMKLSsgIChhbmQgKGVxX2F0 dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaW1vdngiKQot KyAgICAgICAgICAgIChhbmQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIp Ci0rICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAxICJnZW5lcmFsX29wZXJhbmQi KSkpKQotKyAgImF0b20tY29tcGxleCwgYXRvbS1hbGwtZXUqMiIpCi0rCi0rKGRlZmluZV9pbnNu X3Jlc2VydmF0aW9uICAiYXRvbV9sZWEiIDEKLSsgIChhbmQgKGVxX2F0dHIgImNwdSIgImF0b20i KQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAibGVhIikKLSsgICAgICAgICAgICAoZXFf YXR0ciAibW9kZSIgIiFISSIpKSkKLSsgICJhdG9tLXNpbXBsZS1laXRoZXIiKQotKwotKzs7IGxl YSAxNmJpdCBhZGRyZXNzIGlzIGNvbXBsZXggaW5zbgotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlv biAgImF0b21fbGVhXzIiIDIKLSsgIChhbmQgKGVxX2F0dHIgImNwdSIgImF0b20iKQotKyAgICAg ICAoYW5kIChlcV9hdHRyICJ0eXBlIiAibGVhIikKLSsgICAgICAgICAgICAoZXFfYXR0ciAibW9k ZSIgIkhJIikpKQotKyAgImF0b20tY29tcGxleCwgYXRvbS1hbGwtZXUiKQotKwotKyhkZWZpbmVf aW5zbl9yZXNlcnZhdGlvbiAgImF0b21faW5jZGVjIiAxCi0rICAoYW5kIChlcV9hdHRyICJjcHUi ICJhdG9tIikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImluY2RlYyIpCi0rICAgICAg ICAgICAgKGVxX2F0dHIgIm1lbW9yeSIgIm5vbmUiKSkpCi0rICAiYXRvbS1zaW1wbGUtZWl0aGVy IikKLSsKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9tX2luY2RlY19tZW0iIDEKLSsg IChhbmQgKGVxX2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBl IiAiaW5jZGVjIikKLSsgICAgICAgICAgICAoZXFfYXR0ciAibWVtb3J5IiAiIW5vbmUiKSkpCi0r ICAiYXRvbS1zaW1wbGUtZWl0aGVyIikKLSsKLSs7OyBzaW1wbGUgc2hpZnQgaW5zdHJ1Y3Rpb24g dXNlIFNISUZUIGV1LCBub25lIG1lbW9yeQotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0 b21faXNoaWZ0IiAxCi0rICAoYW5kIChlcV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFu ZCAoZXFfYXR0ciAidHlwZSIgImlzaGlmdCIpCi0rICAgICAgICAgICAgKGFuZCAoZXFfYXR0ciAi bWVtb3J5IiAibm9uZSIpIChlcV9hdHRyICJwcmVmaXhfMGYiICIwIikpKSkKLSsgICJhdG9tLXNp bXBsZS0wIikKLSsKLSs7OyBzaW1wbGUgc2hpZnQgaW5zdHJ1Y3Rpb24gdXNlIFNISUZUIGV1LCBt ZW1vcnkKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9tX2lzaGlmdF9tZW0iIDEKLSsg IChhbmQgKGVxX2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBl IiAiaXNoaWZ0IikKLSsgICAgICAgICAgICAoYW5kIChlcV9hdHRyICJtZW1vcnkiICIhbm9uZSIp IChlcV9hdHRyICJwcmVmaXhfMGYiICIwIikpKSkKLSsgICJhdG9tLXNpbXBsZS0wIikKLSsKLSs7 OyBERiBzaGlmdCAocHJlZml4ZWQgd2l0aCAwZikgaXMgY29tcGxleCBpbnNuIHdpdGggbGF0ZW5j eSBvZiA3IGN5Y2xlcwotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21faXNoaWZ0XzMi IDcKLSsgIChhbmQgKGVxX2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoYW5kIChlcV9hdHRy ICJ0eXBlIiAiaXNoaWZ0IikKLSsgICAgICAgICAgICAoZXFfYXR0ciAicHJlZml4XzBmIiAiMSIp KSkKLSsgICJhdG9tLWNvbXBsZXgsIGF0b20tYWxsLWV1KjYiKQotKwotKyhkZWZpbmVfaW5zbl9y ZXNlcnZhdGlvbiAgImF0b21faXNoaWZ0MSIgMQotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRv bSIpCi0rICAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJpc2hpZnQxIikKLSsgICAgICAgICAg ICAoZXFfYXR0ciAibWVtb3J5IiAibm9uZSIpKSkKLSsgICJhdG9tLXNpbXBsZS0wIikKLSsKLSso ZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9tX2lzaGlmdDFfbWVtIiAxCi0rICAoYW5kIChl cV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImlzaGlm dDEiKQotKyAgICAgICAgICAgIChlcV9hdHRyICJtZW1vcnkiICIhbm9uZSIpKSkKLSsgICJhdG9t LXNpbXBsZS0wIikKLSsKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9tX3JvdGF0ZSIg MQotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChhbmQgKGVxX2F0dHIg InR5cGUiICJyb3RhdGUiKQotKyAgICAgICAgICAgIChlcV9hdHRyICJtZW1vcnkiICJub25lIikp KQotKyAgImF0b20tc2ltcGxlLTAiKQotKwotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0 b21fcm90YXRlX21lbSIgMQotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAg IChhbmQgKGVxX2F0dHIgInR5cGUiICJyb3RhdGUiKQotKyAgICAgICAgICAgIChlcV9hdHRyICJt ZW1vcnkiICIhbm9uZSIpKSkKLSsgICJhdG9tLXNpbXBsZS0wIikKLSsKLSsoZGVmaW5lX2luc25f cmVzZXJ2YXRpb24gICJhdG9tX3JvdGF0ZTEiIDEKLSsgIChhbmQgKGVxX2F0dHIgImNwdSIgImF0 b20iKQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAicm90YXRlMSIpCi0rICAgICAgICAg ICAgKGVxX2F0dHIgIm1lbW9yeSIgIm5vbmUiKSkpCi0rICAiYXRvbS1zaW1wbGUtMCIpCi0rCi0r KGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICAiYXRvbV9yb3RhdGUxX21lbSIgMQotKyAgKGFuZCAo ZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJyb3Rh dGUxIikKLSsgICAgICAgICAgICAoZXFfYXR0ciAibWVtb3J5IiAiIW5vbmUiKSkpCi0rICAiYXRv bS1zaW1wbGUtMCIpCi0rCi0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICAiYXRvbV9pbXVsIiA1 Ci0rICAoYW5kIChlcV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAi dHlwZSIgImltdWwiKQotKyAgICAgICAgICAgIChhbmQgKGVxX2F0dHIgIm1lbW9yeSIgIm5vbmUi KSAoZXFfYXR0ciAibW9kZSIgIlNJIikpKSkKLSsgICJhdG9tLWltdWwtMzIiKQotKwotKyhkZWZp bmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21faW11bF9tZW0iIDUKLSsgIChhbmQgKGVxX2F0dHIg ImNwdSIgImF0b20iKQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaW11bCIpCi0rICAg ICAgICAgICAgKGFuZCAoZXFfYXR0ciAibWVtb3J5IiAiIW5vbmUiKSAoZXFfYXR0ciAibW9kZSIg IlNJIikpKSkKLSsgICJhdG9tLWltdWwtMzIiKQotKwotKzs7IGxhdGVuY3kgc2V0IHRvIDEwIGFz IGNvbW1vbiA2NHg2NCBpbXVsCi0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICAiYXRvbV9pbXVs XzMiIDEwCi0rICAoYW5kIChlcV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFuZCAoZXFf YXR0ciAidHlwZSIgImltdWwiKQotKyAgICAgICAgICAgIChlcV9hdHRyICJtb2RlIiAiIVNJIikp KQotKyAgImF0b20tY29tcGxleCwgYXRvbS1hbGwtZXUqOSIpCi0rCi0rKGRlZmluZV9pbnNuX3Jl c2VydmF0aW9uICAiYXRvbV9pZGl2IiA2NQotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIp Ci0rICAgICAgIChlcV9hdHRyICJ0eXBlIiAiaWRpdiIpKQotKyAgImF0b20tY29tcGxleCwgYXRv bS1hbGwtZXUqMzIsIG5vdGhpbmcqMzIiKQotKwotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAg ImF0b21faWNtcCIgMQotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChh bmQgKGVxX2F0dHIgInR5cGUiICJpY21wIikKLSsgICAgICAgICAgICAoZXFfYXR0ciAibWVtb3J5 IiAibm9uZSIpKSkKLSsgICJhdG9tLXNpbXBsZS1laXRoZXIiKQotKwotKyhkZWZpbmVfaW5zbl9y ZXNlcnZhdGlvbiAgImF0b21faWNtcF9tZW0iIDEKLSsgIChhbmQgKGVxX2F0dHIgImNwdSIgImF0 b20iKQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaWNtcCIpCi0rICAgICAgICAgICAg KGVxX2F0dHIgIm1lbW9yeSIgIiFub25lIikpKQotKyAgImF0b20tc2ltcGxlLWVpdGhlciIpCi0r Ci0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICAiYXRvbV90ZXN0IiAxCi0rICAoYW5kIChlcV9h dHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInRlc3QiKQot KyAgICAgICAgICAgIChlcV9hdHRyICJtZW1vcnkiICJub25lIikpKQotKyAgImF0b20tc2ltcGxl LWVpdGhlciIpCi0rCi0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICAiYXRvbV90ZXN0X21lbSIg MQotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChhbmQgKGVxX2F0dHIg InR5cGUiICJ0ZXN0IikKLSsgICAgICAgICAgICAoZXFfYXR0ciAibWVtb3J5IiAiIW5vbmUiKSkp Ci0rICAiYXRvbS1zaW1wbGUtZWl0aGVyIikKLSsKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24g ICJhdG9tX2liciIgMQotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChh bmQgKGVxX2F0dHIgInR5cGUiICJpYnIiKQotKyAgICAgICAgICAgIChlcV9hdHRyICJtZW1vcnki ICIhbG9hZCIpKSkKLSsgICJhdG9tLXNpbXBsZS0xIikKLSsKLSs7OyBjb21wbGV4IGlmIGp1bXAg dGFyZ2V0IGlzIGZyb20gYWRkcmVzcwotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21f aWJyXzIiIDIKLSsgIChhbmQgKGVxX2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoYW5kIChl cV9hdHRyICJ0eXBlIiAiaWJyIikKLSsgICAgICAgICAgICAoZXFfYXR0ciAibWVtb3J5IiAibG9h ZCIpKSkKLSsgICJhdG9tLWNvbXBsZXgsIGF0b20tYWxsLWV1IikKLSsKLSsoZGVmaW5lX2luc25f cmVzZXJ2YXRpb24gICJhdG9tX3NldGNjIiAxCi0rICAoYW5kIChlcV9hdHRyICJjcHUiICJhdG9t IikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNldGNjIikKLSsgICAgICAgICAgICAo ZXFfYXR0ciAibWVtb3J5IiAiIXN0b3JlIikpKQotKyAgImF0b20tc2ltcGxlLWVpdGhlciIpCi0r Ci0rOzsgMiBjeWNsZXMgY29tcGxleCBpZiB0YXJnZXQgaXMgaW4gbWVtb3J5Ci0rKGRlZmluZV9p bnNuX3Jlc2VydmF0aW9uICAiYXRvbV9zZXRjY18yIiAyCi0rICAoYW5kIChlcV9hdHRyICJjcHUi ICJhdG9tIikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNldGNjIikKLSsgICAgICAg ICAgICAoZXFfYXR0ciAibWVtb3J5IiAic3RvcmUiKSkpCi0rICAiYXRvbS1jb21wbGV4LCBhdG9t LWFsbC1ldSIpCi0rCi0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICAiYXRvbV9pY21vdiIgMQot KyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChhbmQgKGVxX2F0dHIgInR5 cGUiICJpY21vdiIpCi0rICAgICAgICAgICAgKGVxX2F0dHIgIm1lbW9yeSIgIm5vbmUiKSkpCi0r ICAiYXRvbS1zaW1wbGUtZWl0aGVyIikKLSsKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJh dG9tX2ljbW92X21lbSIgMQotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAg IChhbmQgKGVxX2F0dHIgInR5cGUiICJpY21vdiIpCi0rICAgICAgICAgICAgKGVxX2F0dHIgIm1l bW9yeSIgIiFub25lIikpKQotKyAgImF0b20tc2ltcGxlLWVpdGhlciIpCi0rCi0rOzsgVUNPREUg aWYgc2VncmVnLCBpZ25vcmVkCi0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICAiYXRvbV9wdXNo IiAyCi0rICAoYW5kIChlcV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGVxX2F0dHIgInR5 cGUiICJwdXNoIikpCi0rICAiYXRvbS1kdWFsLTJjIikKLSsKLSs7OyBwb3AgcjY0IGlzIDEgY3lj bGUuIFVDT0RFIGlmIHNlZ3JlZywgaWdub3JlZAotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAg ImF0b21fcG9wIiAxCi0rICAoYW5kIChlcV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFu ZCAoZXFfYXR0ciAidHlwZSIgInBvcCIpCi0rICAgICAgICAgICAgKGVxX2F0dHIgIm1vZGUiICJE SSIpKSkKLSsgICJhdG9tLWR1YWwtMWMiKQotKwotKzs7IHBvcCBub24tcjY0IGlzIDIgY3ljbGVz LiBVQ09ERSBpZiBzZWdyZWcsIGlnbm9yZWQKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJh dG9tX3BvcF8yIiAyCi0rICAoYW5kIChlcV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFu ZCAoZXFfYXR0ciAidHlwZSIgInBvcCIpCi0rICAgICAgICAgICAgKGVxX2F0dHIgIm1vZGUiICIh REkiKSkpCi0rICAiYXRvbS1kdWFsLTJjIikKLSsKLSs7OyBVQ09ERSBpZiBzZWdyZWcsIGlnbm9y ZWQKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9tX2NhbGwiIDEKLSsgIChhbmQgKGVx X2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoZXFfYXR0ciAidHlwZSIgImNhbGwiKSkKLSsg ICJhdG9tLWR1YWwtMWMiKQotKwotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21fY2Fs bHYiIDEKLSsgIChhbmQgKGVxX2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoZXFfYXR0ciAi dHlwZSIgImNhbGx2IikpCi0rICAiYXRvbS1kdWFsLTFjIikKLSsKLSsoZGVmaW5lX2luc25fcmVz ZXJ2YXRpb24gICJhdG9tX2xlYXZlIiAzCi0rICAoYW5kIChlcV9hdHRyICJjcHUiICJhdG9tIikK LSsgICAgICAgKGVxX2F0dHIgInR5cGUiICJsZWF2ZSIpKQotKyAgImF0b20tY29tcGxleCwgYXRv bS1hbGwtZXUqMiIpCi0rCi0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICAiYXRvbV9zdHIiIDMK LSsgIChhbmQgKGVxX2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoZXFfYXR0ciAidHlwZSIg InN0ciIpKQotKyAgImF0b20tY29tcGxleCwgYXRvbS1hbGwtZXUqMiIpCi0rCi0rKGRlZmluZV9p bnNuX3Jlc2VydmF0aW9uICAiYXRvbV9zc2Vsb2ciIDEKLSsgIChhbmQgKGVxX2F0dHIgImNwdSIg ImF0b20iKQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAic3NlbG9nIikKLSsgICAgICAg ICAgICAoZXFfYXR0ciAibWVtb3J5IiAibm9uZSIpKSkKLSsgICJhdG9tLXNpbXBsZS1laXRoZXIi KQotKwotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21fc3NlbG9nX21lbSIgMQotKyAg KGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUi ICJzc2Vsb2ciKQotKyAgICAgICAgICAgIChlcV9hdHRyICJtZW1vcnkiICIhbm9uZSIpKSkKLSsg ICJhdG9tLXNpbXBsZS1laXRoZXIiKQotKwotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0 b21fc3NlbG9nMSIgMQotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChh bmQgKGVxX2F0dHIgInR5cGUiICJzc2Vsb2cxIikKLSsgICAgICAgICAgICAoZXFfYXR0ciAibWVt b3J5IiAibm9uZSIpKSkKLSsgICJhdG9tLXNpbXBsZS0wIikKLSsKLSsoZGVmaW5lX2luc25fcmVz ZXJ2YXRpb24gICJhdG9tX3NzZWxvZzFfbWVtIiAxCi0rICAoYW5kIChlcV9hdHRyICJjcHUiICJh dG9tIikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZWxvZzEiKQotKyAgICAgICAg ICAgIChlcV9hdHRyICJtZW1vcnkiICIhbm9uZSIpKSkKLSsgICJhdG9tLXNpbXBsZS0wIikKLSsK LSs7OyBub3QgcG1hZCwgbm90IHBzYWQKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9t X3NzZWlhZGQiIDEKLSsgIChhbmQgKGVxX2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoYW5k IChlcV9hdHRyICJ0eXBlIiAic3NlaWFkZCIpCi0rICAgICAgICAgICAgKGFuZCAobm90IChtYXRj aF9vcGVyYW5kOlYyREkgMCAicmVnaXN0ZXJfb3BlcmFuZCIpKQotKyAgICAgICAgICAgICAgICAg KGFuZCAoZXFfYXR0ciAiYXRvbV91bml0IiAiIXNpbXVsIikKLSsgICAgICAgICAgICAgICAgICAg ICAgKGVxX2F0dHIgImF0b21fdW5pdCIgIiFjb21wbGV4IikpKSkpCi0rICAiYXRvbS1zaW1wbGUt ZWl0aGVyIikKLSsKLSs7OyBwbWFkLCBwc2FkIGFuZCA2NAotKyhkZWZpbmVfaW5zbl9yZXNlcnZh dGlvbiAgImF0b21fc3NlaWFkZF8yIiA0Ci0rICAoYW5kIChlcV9hdHRyICJjcHUiICJhdG9tIikK LSsgICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZWlhZGQiKQotKyAgICAgICAgICAgIChh bmQgKG5vdCAobWF0Y2hfb3BlcmFuZDpWMkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiKSkKLSsgICAg ICAgICAgICAgICAgIChhbmQgKGVxX2F0dHIgImF0b21fdW5pdCIgInNpbXVsIiApCi0rICAgICAg ICAgICAgICAgICAgICAgIChlcV9hdHRyICJtb2RlIiAiREkiKSkpKSkKLSsgICJhdG9tLWZtdWwt NGMiKQotKwotKzs7IHBtYWQsIHBzYWQgYW5kIDEyOAotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlv biAgImF0b21fc3NlaWFkZF8zIiA1Ci0rICAoYW5kIChlcV9hdHRyICJjcHUiICJhdG9tIikKLSsg ICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZWlhZGQiKQotKyAgICAgICAgICAgIChhbmQg KG5vdCAobWF0Y2hfb3BlcmFuZDpWMkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiKSkKLSsgICAgICAg ICAgICAgICAgIChhbmQgKGVxX2F0dHIgImF0b21fdW5pdCIgInNpbXVsIiApCi0rICAgICAgICAg ICAgICAgICAgICAgIChlcV9hdHRyICJtb2RlIiAiVEkiKSkpKSkKLSsgICJhdG9tLWZtdWwtNWMi KQotKwotKzs7IGlmIHBhZGRxKDY0IGJpdCBvcCksIHBoYWRkL3Boc3ViCi0rKGRlZmluZV9pbnNu X3Jlc2VydmF0aW9uICAiYXRvbV9zc2VpYWRkXzQiIDYKLSsgIChhbmQgKGVxX2F0dHIgImNwdSIg ImF0b20iKQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAic3NlaWFkZCIpCi0rICAgICAg ICAgICAgKGlvciAobWF0Y2hfb3BlcmFuZDpWMkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiKQotKyAg ICAgICAgICAgICAgICAgKGVxX2F0dHIgImF0b21fdW5pdCIgImNvbXBsZXgiKSkpKQotKyAgImF0 b20tY29tcGxleCwgYXRvbS1hbGwtZXUqNSIpCi0rCi0rOzsgaWYgaW1tZWRpYXRlIG9wLiAKLSso ZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9tX3NzZWlzaGZ0IiAxCi0rICAoYW5kIChlcV9h dHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZWlzaGZ0 IikKLSsgICAgICAgICAgICAoYW5kIChlcV9hdHRyICJhdG9tX3VuaXQiICIhc2lzaHVmIikKLSsg ICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kIDIgImltbWVkaWF0ZV9vcGVyYW5kIikpKSkK LSsgICJhdG9tLXNpbXBsZS1laXRoZXIiKQotKwotKzs7IGlmIHBhbGlnbnIgb3IgcHNybGRxCi0r KGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICAiYXRvbV9zc2Vpc2hmdF8yIiAxCi0rICAoYW5kIChl cV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZWlz aGZ0IikKLSsgICAgICAgICAgICAoYW5kIChlcV9hdHRyICJhdG9tX3VuaXQiICJzaXNodWYiKQot KyAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQgMiAiaW1tZWRpYXRlX29wZXJhbmQiKSkp KQotKyAgImF0b20tc2ltcGxlLTAiKQotKwotKzs7IGlmIHJlZy9tZW0gb3AKLSsoZGVmaW5lX2lu c25fcmVzZXJ2YXRpb24gICJhdG9tX3NzZWlzaGZ0XzMiIDIKLSsgIChhbmQgKGVxX2F0dHIgImNw dSIgImF0b20iKQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAic3NlaXNoZnQiKQotKyAg ICAgICAgICAgIChub3QgKG1hdGNoX29wZXJhbmQgMiAiaW1tZWRpYXRlX29wZXJhbmQiKSkpKQot KyAgImF0b20tY29tcGxleCwgYXRvbS1hbGwtZXUiKQotKwotKyhkZWZpbmVfaW5zbl9yZXNlcnZh dGlvbiAgImF0b21fc3NlaW11bCIgMQotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0r ICAgICAgIChlcV9hdHRyICJ0eXBlIiAic3NlaW11bCIpKQotKyAgImF0b20tc2ltcGxlLTAiKQot KwotKzs7IHJjcHNzIG9yIHJzcXJ0c3MKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9t X3NzZSIgNAotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChhbmQgKGVx X2F0dHIgInR5cGUiICJzc2UiKQotKyAgICAgICAgICAgIChhbmQgKGVxX2F0dHIgImF0b21fc3Nl X2F0dHIiICJyY3AiKSAoZXFfYXR0ciAibW9kZSIgIlNGIikpKSkKLSsgICJhdG9tLWZtdWwtNGMi KQotKwotKzs7IG1vdnNoZHVwLCBtb3ZzbGR1cC4gU3VnZ2VzdCB0byB0eXBlIHNzZWlzaGZ0Ci0r KGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICAiYXRvbV9zc2VfMiIgMQotKyAgKGFuZCAoZXFfYXR0 ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJzc2UiKQotKyAg ICAgICAgICAgIChlcV9hdHRyICJhdG9tX3NzZV9hdHRyIiAibW92ZHVwIikpKQotKyAgImF0b20t c2ltcGxlLTAiKQotKwotKzs7IGxmZW5jZQotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0 b21fc3NlXzMiIDEKLSsgIChhbmQgKGVxX2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoYW5k IChlcV9hdHRyICJ0eXBlIiAic3NlIikKLSsgICAgICAgICAgICAoZXFfYXR0ciAiYXRvbV9zc2Vf YXR0ciIgImxmZW5jZSIpKSkKLSsgICJhdG9tLXNpbXBsZS1laXRoZXIiKQotKwotKzs7IHNmZW5j ZSxjbGZsdXNoLG1mZW5jZSwgcHJlZmV0Y2gKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJh dG9tX3NzZV80IiAxCi0rICAoYW5kIChlcV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFu ZCAoZXFfYXR0ciAidHlwZSIgInNzZSIpCi0rICAgICAgICAgICAgKGlvciAoZXFfYXR0ciAiYXRv bV9zc2VfYXR0ciIgImZlbmNlIikKLSsgICAgICAgICAgICAgICAgIChlcV9hdHRyICJhdG9tX3Nz ZV9hdHRyIiAicHJlZmV0Y2giKSkpKQotKyAgImF0b20tc2ltcGxlLTAiKQotKwotKzs7IHJjcHBz LCByc3FydHNzLCBzcXJ0LCBsZG14Y3NyCi0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICAiYXRv bV9zc2VfNSIgNwotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChhbmQg KGVxX2F0dHIgInR5cGUiICJzc2UiKQotKyAgICAgICAgICAgIChpb3IgKGlvciAoZXFfYXR0ciAi YXRvbV9zc2VfYXR0ciIgInNxcnQiKQotKyAgICAgICAgICAgICAgICAgICAgICAoZXFfYXR0ciAi YXRvbV9zc2VfYXR0ciIgIm14Y3NyIikpCi0rICAgICAgICAgICAgICAgICAoYW5kIChlcV9hdHRy ICJhdG9tX3NzZV9hdHRyIiAicmNwIikKLSsgICAgICAgICAgICAgICAgICAgICAgKGVxX2F0dHIg Im1vZGUiICJWNFNGIikpKSkpCi0rICAiYXRvbS1jb21wbGV4LCBhdG9tLWFsbC1ldSo2IikKLSsK LSs7OyB4bW0tPnhtbQotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21fc3NlbW92IiAx Ci0rICAoYW5kIChlcV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAi dHlwZSIgInNzZW1vdiIpCi0rICAgICAgICAgICAgKGFuZCAobWF0Y2hfb3BlcmFuZCAwICJyZWdp c3Rlcl9vcGVyYW5kIiAieHkiKSAobWF0Y2hfb3BlcmFuZCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi eHkiKSkpKQotKyAgImF0b20tc2ltcGxlLWVpdGhlciIpCi0rCi0rOzsgcmVnLT54bW0KLSsoZGVm aW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9tX3NzZW1vdl8yIiAxCi0rICAoYW5kIChlcV9hdHRy ICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZW1vdiIpCi0r ICAgICAgICAgICAgKGFuZCAobWF0Y2hfb3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAieHki KSAobWF0Y2hfb3BlcmFuZCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSkpCi0rICAiYXRvbS1z aW1wbGUtMCIpCi0rCi0rOzsgeG1tLT5yZWcKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJh dG9tX3NzZW1vdl8zIiAzCi0rICAoYW5kIChlcV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAg KGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZW1vdiIpCi0rICAgICAgICAgICAgKGFuZCAobWF0Y2hf b3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpIChtYXRjaF9vcGVyYW5kIDEgInJlZ2lz dGVyX29wZXJhbmQiICJ4eSIpKSkpCi0rICAiYXRvbS1ldS0wLTMtMSIpCi0rCi0rOzsgbW92IG1l bQotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21fc3NlbW92XzQiIDEKLSsgIChhbmQg KGVxX2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAic3Nl bW92IikKLSsgICAgICAgICAgICAoYW5kIChlcV9hdHRyICJtb3Z1IiAiMCIpIChlcV9hdHRyICJt ZW1vcnkiICIhbm9uZSIpKSkpCi0rICAiYXRvbS1zaW1wbGUtMCIpCi0rCi0rOzsgbW92dSBtZW0K LSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9tX3NzZW1vdl81IiAyCi0rICAoYW5kIChl cV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZW1v diIpCi0rICAgICAgICAgICAgKGlvciAoZXFfYXR0ciAibW92dSIgIjEiKSAoZXFfYXR0ciAibWVt b3J5IiAiIW5vbmUiKSkpKQotKyAgImF0b20tY29tcGxleCwgYXRvbS1hbGwtZXUiKQotKwotKzs7 IG5vIG1lbW9yeSBzaW1wbGUKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9tX3NzZWFk ZCIgNQotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChhbmQgKGVxX2F0 dHIgInR5cGUiICJzc2VhZGQiKQotKyAgICAgICAgICAgIChhbmQgKGVxX2F0dHIgIm1lbW9yeSIg Im5vbmUiKQotKyAgICAgICAgICAgICAgICAgKGFuZCAoZXFfYXR0ciAibW9kZSIgIiFWMkRGIikK LSsgICAgICAgICAgICAgICAgICAgICAgKGVxX2F0dHIgImF0b21fdW5pdCIgIiFjb21wbGV4Iikp KSkpCi0rICAiYXRvbS1mYWRkLTVjIikKLSsKLSs7OyBtZW1vcnkgc2ltcGxlCi0rKGRlZmluZV9p bnNuX3Jlc2VydmF0aW9uICAiYXRvbV9zc2VhZGRfbWVtIiA1Ci0rICAoYW5kIChlcV9hdHRyICJj cHUiICJhdG9tIikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZWFkZCIpCi0rICAg ICAgICAgICAgKGFuZCAoZXFfYXR0ciAibWVtb3J5IiAiIW5vbmUiKQotKyAgICAgICAgICAgICAg ICAgKGFuZCAoZXFfYXR0ciAibW9kZSIgIiFWMkRGIikKLSsgICAgICAgICAgICAgICAgICAgICAg KGVxX2F0dHIgImF0b21fdW5pdCIgIiFjb21wbGV4IikpKSkpCi0rICAiYXRvbS1kdWFsLTVjIikK LSsKLSs7OyBtYXhwcywgbWlucHMsICpwZCwgaGFkZCwgaHN1YgotKyhkZWZpbmVfaW5zbl9yZXNl cnZhdGlvbiAgImF0b21fc3NlYWRkXzMiIDgKLSsgIChhbmQgKGVxX2F0dHIgImNwdSIgImF0b20i KQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAic3NlYWRkIikKLSsgICAgICAgICAgICAo aW9yIChlcV9hdHRyICJtb2RlIiAiVjJERiIpIChlcV9hdHRyICJhdG9tX3VuaXQiICJjb21wbGV4 IikpKSkKLSsgICJhdG9tLWNvbXBsZXgsIGF0b20tYWxsLWV1KjciKQotKwotKzs7IEV4Y2VwdCBk cHBkL2RwcHMKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9tX3NzZW11bCIgNQotKyAg KGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUi ICJzc2VtdWwiKQotKyAgICAgICAgICAgIChlcV9hdHRyICJtb2RlIiAiIVNGIikpKQotKyAgImF0 b20tZm11bC01YyIpCi0rCi0rOzsgRXhjZXB0IGRwcGQvZHBwcywgNCBjeWNsZSBpZiBtdWxzcwot KyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21fc3NlbXVsXzIiIDQKLSsgIChhbmQgKGVx X2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAic3NlbXVs IikKLSsgICAgICAgICAgICAoZXFfYXR0ciAibW9kZSIgIlNGIikpKQotKyAgImF0b20tZm11bC00 YyIpCi0rCi0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICAiYXRvbV9zc2VjbXAiIDEKLSsgIChh bmQgKGVxX2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoZXFfYXR0ciAidHlwZSIgInNzZWNt cCIpKQotKyAgImF0b20tc2ltcGxlLWVpdGhlciIpCi0rCi0rKGRlZmluZV9pbnNuX3Jlc2VydmF0 aW9uICAiYXRvbV9zc2Vjb21pIiAxMAotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRvbSIpCi0r ICAgICAgIChlcV9hdHRyICJ0eXBlIiAic3NlY29taSIpKQotKyAgImF0b20tY29tcGxleCwgYXRv bS1hbGwtZXUqOSIpCi0rCi0rOzsgbm8gbWVtb3J5IGFuZCBjdnRwaTJwcywgY3Z0cHMycGksIGN2 dHRwczJwaQotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21fc3NlY3Z0IiA1Ci0rICAo YW5kIChlcV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIg InNzZWN2dCIpCi0rICAgICAgICAgICAgKGlvciAoYW5kIChtYXRjaF9vcGVyYW5kOlYyU0kgMCAi cmVnaXN0ZXJfb3BlcmFuZCIpCi0rICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5k OlY0U0YgMSAicmVnaXN0ZXJfb3BlcmFuZCIpKQotKyAgICAgICAgICAgICAgICAgKGFuZCAobWF0 Y2hfb3BlcmFuZDpWNFNGIDAgInJlZ2lzdGVyX29wZXJhbmQiKQotKyAgICAgICAgICAgICAgICAg ICAgICAobWF0Y2hfb3BlcmFuZDpWMlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiKSkpKSkKLSsgICJh dG9tLWZhZGQtNWMiKQotKwotKzs7IG1lbW9yeSBhbmQgY3Z0cGkycHMsIGN2dHBzMnBpLCBjdnR0 cHMycGkKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gICJhdG9tX3NzZWN2dF8yIiA1Ci0rICAo YW5kIChlcV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIg InNzZWN2dCIpCi0rICAgICAgICAgICAgKGlvciAoYW5kIChtYXRjaF9vcGVyYW5kOlYyU0kgMCAi cmVnaXN0ZXJfb3BlcmFuZCIpCi0rICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5k OlY0U0YgMSAibWVtb3J5X29wZXJhbmQiKSkKLSsgICAgICAgICAgICAgICAgIChhbmQgKG1hdGNo X29wZXJhbmQ6VjRTRiAwICJyZWdpc3Rlcl9vcGVyYW5kIikKLSsgICAgICAgICAgICAgICAgICAg ICAgKG1hdGNoX29wZXJhbmQ6VjJTSSAxICJtZW1vcnlfb3BlcmFuZCIpKSkpKQotKyAgImF0b20t ZHVhbC01YyIpCi0rCi0rOzsgb3RoZXJ3aXNlLiA3IGN5Y2xlcyBhdmVyYWdlIGZvciBjdnRzczJz ZAotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21fc3NlY3Z0XzMiIDcKLSsgIChhbmQg KGVxX2F0dHIgImNwdSIgImF0b20iKQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAic3Nl Y3Z0IikKLSsgICAgICAgICAgICAobm90IChpb3IgKGFuZCAobWF0Y2hfb3BlcmFuZDpWMlNJIDAg InJlZ2lzdGVyX29wZXJhbmQiKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9v cGVyYW5kOlY0U0YgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiKSkKLSsgICAgICAgICAgICAgICAg ICAgICAgKGFuZCAobWF0Y2hfb3BlcmFuZDpWNFNGIDAgInJlZ2lzdGVyX29wZXJhbmQiKQotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlYyU0kgMSAibm9uaW1tZWRp YXRlX29wZXJhbmQiKSkpKSkpCi0rICAiYXRvbS1jb21wbGV4LCBhdG9tLWFsbC1ldSo2IikKLSsK LSs7OyBtZW1vcnkgYW5kIGN2dHNpMnNkCi0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICAiYXRv bV9zc2VpY3Z0IiA1Ci0rICAoYW5kIChlcV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFu ZCAoZXFfYXR0ciAidHlwZSIgInNzZWljdnQiKQotKyAgICAgICAgICAgIChhbmQgKG1hdGNoX29w ZXJhbmQ6VjJERiAwICJyZWdpc3Rlcl9vcGVyYW5kIikKLSsgICAgICAgICAgICAgICAgIChtYXRj aF9vcGVyYW5kOlNJIDEgIm1lbW9yeV9vcGVyYW5kIikpKSkKLSsgICJhdG9tLWR1YWwtNWMiKQot KwotKzs7IG90aGVyd2lzZS4gOCBjeWNsZXMgYXZlcmFnZSBmb3IgY3Z0c2Qyc2kKLSsoZGVmaW5l X2luc25fcmVzZXJ2YXRpb24gICJhdG9tX3NzZWljdnRfMiIgOAotKyAgKGFuZCAoZXFfYXR0ciAi Y3B1IiAiYXRvbSIpCi0rICAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJzc2VpY3Z0IikKLSsg ICAgICAgICAgICAobm90IChhbmQgKG1hdGNoX29wZXJhbmQ6VjJERiAwICJyZWdpc3Rlcl9vcGVy YW5kIikKLSsgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMSAibWVtb3J5 X29wZXJhbmQiKSkpKSkKLSsgICJhdG9tLWNvbXBsZXgsIGF0b20tYWxsLWV1KjciKQotKwotKyhk ZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAgImF0b21fc3NlZGl2IiA2MgotKyAgKGFuZCAoZXFfYXR0 ciAiY3B1IiAiYXRvbSIpCi0rICAgICAgIChlcV9hdHRyICJ0eXBlIiAic3NlZGl2IikpCi0rICAi YXRvbS1jb21wbGV4LCBhdG9tLWFsbC1ldSoxMiwgbm90aGluZyo0OSIpCi0rCi0rOzsgc2ltcGxl IGZvciBmbW92Ci0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICAiYXRvbV9mbW92IiAxCi0rICAo YW5kIChlcV9hdHRyICJjcHUiICJhdG9tIikKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIg ImZtb3YiKQotKyAgICAgICAgICAgIChlcV9hdHRyICJtZW1vcnkiICJub25lIikpKQotKyAgImF0 b20tc2ltcGxlLWVpdGhlciIpCi0rCi0rOzsgc2ltcGxlIGZvciBmbW92Ci0rKGRlZmluZV9pbnNu X3Jlc2VydmF0aW9uICAiYXRvbV9mbW92X21lbSIgMQotKyAgKGFuZCAoZXFfYXR0ciAiY3B1IiAi YXRvbSIpCi0rICAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJmbW92IikKLSsgICAgICAgICAg ICAoZXFfYXR0ciAibWVtb3J5IiAiIW5vbmUiKSkpCi0rICAiYXRvbS1zaW1wbGUtZWl0aGVyIikK LSsKLSs7OyBEZWZpbmUgYnlwYXNzIGhlcmUKLSsKLSs7OyBUaGVyZSB3aWxsIGJlIG5vIHN0YWxs IGZyb20gbGVhIHRvIG5vbi1tZW0gRVggaW5zbnMKLSsoZGVmaW5lX2J5cGFzcyAwICJhdG9tX2xl YSIKLSsgICAgICAgICAgICAgICAgICJhdG9tX2FsdV9jYXJyeSwKLSsgICAgICAgICAgICAgICAg ICBhdG9tX2FsdSxhdG9tX2FsdTEsYXRvbV9uZWdub3QsYXRvbV9pbW92LGF0b21faW1vdngsCi0r ICAgICAgICAgICAgICAgICAgYXRvbV9pbmNkZWMsIGF0b21fc2V0Y2MsIGF0b21faWNtb3YsIGF0 b21fcG9wIikKLSsKLSsoZGVmaW5lX2J5cGFzcyAwICJhdG9tX2xlYSIKLSsgICAgICAgICAgICAg ICAgICJhdG9tX2FsdV9tZW0sIGF0b21fYWx1X2NhcnJ5X21lbSwgYXRvbV9hbHUxX21lbSwKLSsg ICAgICAgICAgICAgICAgICBhdG9tX2ltb3Z4X21lbSwgYXRvbV9pbW92eF8yX21lbSwKLSsgICAg ICAgICAgICAgICAgICBhdG9tX2ltb3ZfbWVtLCBhdG9tX2ljbW92X21lbSwgYXRvbV9mbW92X21l bSIKLSsgICAgICAgICAgICAgICAgICIhaXg4Nl9hZ2lfZGVwZW5kZW50IikKLSsKLSs7OyBUaGVy ZSB3aWxsIGJlIDMgY3ljbGVzIHN0YWxsIGZyb20gRVggaW5zbnMgdG8gQUdBTiBpbnNucyBMRUEK LSsoZGVmaW5lX2J5cGFzcyA0ICJhdG9tX2FsdV9jYXJyeSwKLSsgICAgICAgICAgICAgICAgICBh dG9tX2FsdSxhdG9tX2FsdTEsYXRvbV9uZWdub3QsYXRvbV9pbW92LGF0b21faW1vdngsCi0rICAg ICAgICAgICAgICAgICAgYXRvbV9pbmNkZWMsYXRvbV9pc2hpZnQsYXRvbV9pc2hpZnQxLGF0b21f cm90YXRlLAotKyAgICAgICAgICAgICAgICAgIGF0b21fcm90YXRlMSwgYXRvbV9zZXRjYywgYXRv bV9pY21vdiwgYXRvbV9wb3AsCi0rICAgICAgICAgICAgICAgICAgYXRvbV9hbHVfbWVtLCBhdG9t X2FsdV9jYXJyeV9tZW0sIGF0b21fYWx1MV9tZW0sCi0rICAgICAgICAgICAgICAgICAgYXRvbV9p bW92eF9tZW0sIGF0b21faW1vdnhfMl9tZW0sCi0rICAgICAgICAgICAgICAgICAgYXRvbV9pbW92 X21lbSwgYXRvbV9pY21vdl9tZW0sIGF0b21fZm1vdl9tZW0iCi0rICAgICAgICAgICAgICAgICAi YXRvbV9sZWEiKQotKwotKzs7IFRoZXJlIHdpbGwgYmUgMyBjeWNsZXMgc3RhbGwgZnJvbSBFWCBp bnNucyB0byBpbnNucyBuZWVkIGFkZHIgY2FsY3VsYXRpb24KLSsoZGVmaW5lX2J5cGFzcyA0ICJh dG9tX2FsdV9jYXJyeSwKLSsgICAgICAgICAgICAgICAgICBhdG9tX2FsdSxhdG9tX2FsdTEsYXRv bV9uZWdub3QsYXRvbV9pbW92LGF0b21faW1vdngsCi0rICAgICAgICAgICAgICAgICAgYXRvbV9p bmNkZWMsYXRvbV9pc2hpZnQsYXRvbV9pc2hpZnQxLGF0b21fcm90YXRlLAotKyAgICAgICAgICAg ICAgICAgIGF0b21fcm90YXRlMSwgYXRvbV9zZXRjYywgYXRvbV9pY21vdiwgYXRvbV9wb3AsCi0r ICAgICAgICAgICAgICAgICAgYXRvbV9pbW92eF9tZW0sIGF0b21faW1vdnhfMl9tZW0sCi0rICAg ICAgICAgICAgICAgICAgYXRvbV9hbHVfbWVtLCBhdG9tX2FsdV9jYXJyeV9tZW0sIGF0b21fYWx1 MV9tZW0sCi0rICAgICAgICAgICAgICAgICAgYXRvbV9pbW92X21lbSwgYXRvbV9pY21vdl9tZW0s IGF0b21fZm1vdl9tZW0iCi0rICAgICAgICAgICAgICAgICAiYXRvbV9hbHVfbWVtLCBhdG9tX2Fs dV9jYXJyeV9tZW0sIGF0b21fYWx1MV9tZW0sCi0rICAgICAgICAgICAgICAgICAgYXRvbV9uZWdu b3RfbWVtLCBhdG9tX2ltb3ZfbWVtLCBhdG9tX2luY2RlY19tZW0sCi0rICAgICAgICAgICAgICAg ICAgYXRvbV9pbW92eF9tZW0sIGF0b21faW1vdnhfMl9tZW0sCi0rICAgICAgICAgICAgICAgICAg YXRvbV9pbXVsX21lbSwgYXRvbV9pY21wX21lbSwKLSsgICAgICAgICAgICAgICAgICBhdG9tX3Rl c3RfbWVtLCBhdG9tX2ljbW92X21lbSwgYXRvbV9zc2Vsb2dfbWVtLAotKyAgICAgICAgICAgICAg ICAgIGF0b21fc3NlbG9nMV9tZW0sIGF0b21fZm1vdl9tZW0sIGF0b21fc3NlYWRkX21lbSwKLSsg ICAgICAgICAgICAgICAgICBhdG9tX2lzaGlmdF9tZW0sIGF0b21faXNoaWZ0MV9tZW0sIAotKyAg ICAgICAgICAgICAgICAgIGF0b21fcm90YXRlX21lbSwgYXRvbV9yb3RhdGUxX21lbSIKLSsgICAg ICAgICAgICAgICAgICAiaXg4Nl9hZ2lfZGVwZW5kZW50IikKLSsKLSs7OyBTdGFsbCBmcm9tIGlt dWwgdG8gbGVhIGlzIDggY3ljbGVzLgotKyhkZWZpbmVfYnlwYXNzIDkgImF0b21faW11bCwgYXRv bV9pbXVsX21lbSIgImF0b21fbGVhIikKLSsKLSs7OyBTdGFsbCBmcm9tIGltdWwgdG8gbWVtb3J5 IGFkZHJlc3MgaXMgOCBjeWNsZXMuCi0rKGRlZmluZV9ieXBhc3MgOSAiYXRvbV9pbXVsLCBhdG9t X2ltdWxfbWVtIiAKLSsgICAgICAgICAgICAgICAgICJhdG9tX2FsdV9tZW0sIGF0b21fYWx1X2Nh cnJ5X21lbSwgYXRvbV9hbHUxX21lbSwKLSsgICAgICAgICAgICAgICAgICBhdG9tX25lZ25vdF9t ZW0sIGF0b21faW1vdl9tZW0sIGF0b21faW5jZGVjX21lbSwKLSsgICAgICAgICAgICAgICAgICBh dG9tX2lzaGlmdF9tZW0sIGF0b21faXNoaWZ0MV9tZW0sIGF0b21fcm90YXRlX21lbSwKLSsgICAg ICAgICAgICAgICAgICBhdG9tX3JvdGF0ZTFfbWVtLCBhdG9tX2ltdWxfbWVtLCBhdG9tX2ljbXBf bWVtLAotKyAgICAgICAgICAgICAgICAgIGF0b21fdGVzdF9tZW0sIGF0b21faWNtb3ZfbWVtLCBh dG9tX3NzZWxvZ19tZW0sCi0rICAgICAgICAgICAgICAgICAgYXRvbV9zc2Vsb2cxX21lbSwgYXRv bV9mbW92X21lbSwgYXRvbV9zc2VhZGRfbWVtIgotKyAgICAgICAgICAgICAgICAgICJpeDg2X2Fn aV9kZXBlbmRlbnQiKQotKwotKzs7IFRoZXJlIHdpbGwgYmUgMCBjeWNsZSBzdGFsbCBmcm9tIGNt cC90ZXN0IHRvIGpjYwotKwotKzs7IFRoZXJlIHdpbGwgYmUgMSBjeWNsZSBzdGFsbCBmcm9tIGZs YWcgcHJvZHVjZXIgdG8gY21vdiBhbmQgYWRjL3NiYgotKyhkZWZpbmVfYnlwYXNzIDIgImF0b21f aWNtcCwgYXRvbV90ZXN0LCBhdG9tX2FsdSwgYXRvbV9hbHVfY2FycnksCi0rICAgICAgICAgICAg ICAgICAgYXRvbV9hbHUxLCBhdG9tX25lZ25vdCwgYXRvbV9pbmNkZWMsIGF0b21faXNoaWZ0LAot KyAgICAgICAgICAgICAgICAgIGF0b21faXNoaWZ0MSwgYXRvbV9yb3RhdGUsIGF0b21fcm90YXRl MSIKLSsgICAgICAgICAgICAgICAgICJhdG9tX2ljbW92LCBhdG9tX2FsdV9jYXJyeSIpCi0rCi0r OzsgbGVhIHRvIHNoaWZ0IGNvdW50IHN0YWxsIGlzIDIgY3ljbGVzCi0rKGRlZmluZV9ieXBhc3Mg MyAiYXRvbV9sZWEiCi0rICAgICAgICAgICAgICAgICAiYXRvbV9pc2hpZnQsIGF0b21faXNoaWZ0 MSwgYXRvbV9yb3RhdGUsIGF0b21fcm90YXRlMSwKLSsgICAgICAgICAgICAgICAgICBhdG9tX2lz aGlmdF9tZW0sIGF0b21faXNoaWZ0MV9tZW0sIAotKyAgICAgICAgICAgICAgICAgIGF0b21fcm90 YXRlX21lbSwgYXRvbV9yb3RhdGUxX21lbSIKLSsgICAgICAgICAgICAgICAgICJpeDg2X2RlcF9i eV9zaGlmdF9jb3VudCIpCi0rCi0rOzsgbGVhIHRvIHNoaWZ0IHNvdXJjZSBzdGFsbCBpcyAxIGN5 Y2xlCi0rKGRlZmluZV9ieXBhc3MgMiAiYXRvbV9sZWEiCi0rICAgICAgICAgICAgICAgICAiYXRv bV9pc2hpZnQsIGF0b21faXNoaWZ0MSwgYXRvbV9yb3RhdGUsIGF0b21fcm90YXRlMSIKLSsgICAg ICAgICAgICAgICAgICIhaXg4Nl9kZXBfYnlfc2hpZnRfY291bnQiKQotKwotKzs7IG5vbi1sZWEg dG8gc2hpZnQgY291bnQgc3RhbGwgaXMgMSBjeWNsZQotKyhkZWZpbmVfYnlwYXNzIDIgImF0b21f YWx1X2NhcnJ5LAotKyAgICAgICAgICAgICAgICAgIGF0b21fYWx1LGF0b21fYWx1MSxhdG9tX25l Z25vdCxhdG9tX2ltb3YsYXRvbV9pbW92eCwKLSsgICAgICAgICAgICAgICAgICBhdG9tX2luY2Rl YyxhdG9tX2lzaGlmdCxhdG9tX2lzaGlmdDEsYXRvbV9yb3RhdGUsCi0rICAgICAgICAgICAgICAg ICAgYXRvbV9yb3RhdGUxLCBhdG9tX3NldGNjLCBhdG9tX2ljbW92LCBhdG9tX3BvcCwKLSsgICAg ICAgICAgICAgICAgICBhdG9tX2FsdV9tZW0sIGF0b21fYWx1X2NhcnJ5X21lbSwgYXRvbV9hbHUx X21lbSwKLSsgICAgICAgICAgICAgICAgICBhdG9tX2ltb3Z4X21lbSwgYXRvbV9pbW92eF8yX21l bSwKLSsgICAgICAgICAgICAgICAgICBhdG9tX2ltb3ZfbWVtLCBhdG9tX2ljbW92X21lbSwgYXRv bV9mbW92X21lbSIKLSsgICAgICAgICAgICAgICAgICJhdG9tX2lzaGlmdCwgYXRvbV9pc2hpZnQx LCBhdG9tX3JvdGF0ZSwgYXRvbV9yb3RhdGUxLAotKyAgICAgICAgICAgICAgICAgIGF0b21faXNo aWZ0X21lbSwgYXRvbV9pc2hpZnQxX21lbSwgCi0rICAgICAgICAgICAgICAgICAgYXRvbV9yb3Rh dGVfbWVtLCBhdG9tX3JvdGF0ZTFfbWVtIgotKyAgICAgICAgICAgICAgICAgIml4ODZfZGVwX2J5 X3NoaWZ0X2NvdW50IikKLS0tLSBnY2MvY29uZmlnL2kzODYvc3NlLm1kCSguLi4vdHJ1bmspCShy ZXZpc2lvbiAxNDQ0NjApCi0rKysgZ2NjL2NvbmZpZy9pMzg2L3NzZS5tZAkoLi4uL2JyYW5jaGVz L2l4ODYvYXRvbSkJKHJldmlzaW9uIDE0NDYwMSkKLUBAIC0zMzgsNiArMzM4LDcgQEAgKGRlZmlu ZV9pbnNuICJhdnhfbW92dXA8YXZ4bW9kZXN1ZmZpeGYyYwotICAgICYmICEoTUVNX1AgKG9wZXJh bmRzWzBdKSAmJiBNRU1fUCAob3BlcmFuZHNbMV0pKSIKLSAgICJ2bW92dXA8YXZ4bW9kZXN1ZmZp eGYyYz5cdHslMSwgJTB8JTAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vtb3YiKQot KyAgIChzZXRfYXR0ciAibW92dSIgIjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikK LSAgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCi0gCi1AQCAtMzYzLDYgKzM2NCw3IEBA IChkZWZpbmVfaW5zbiAiPHNzZT5fbW92dXA8c3NlbW9kZXN1ZmZpeGYKLSAgICAmJiAhKE1FTV9Q IChvcGVyYW5kc1swXSkgJiYgTUVNX1AgKG9wZXJhbmRzWzFdKSkiCi0gICAibW92dXA8c3NlbW9k ZXN1ZmZpeGYyYz5cdHslMSwgJTB8JTAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vt b3YiKQotKyAgIChzZXRfYXR0ciAibW92dSIgIjEiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIjxN T0RFPiIpXSkKLSAKLSAoZGVmaW5lX2luc24gImF2eF9tb3ZkcXU8YXZ4bW9kZXN1ZmZpeD4iCi1A QCAtMzczLDYgKzM3NSw3IEBAIChkZWZpbmVfaW5zbiAiYXZ4X21vdmRxdTxhdnhtb2Rlc3VmZml4 PiIKLSAgICJUQVJHRVRfQVZYICYmICEoTUVNX1AgKG9wZXJhbmRzWzBdKSAmJiBNRU1fUCAob3Bl cmFuZHNbMV0pKSIKLSAgICJ2bW92ZHF1XHR7JTEsICUwfCUwLCAlMX0iCi0gICBbKHNldF9hdHRy ICJ0eXBlIiAic3NlbW92IikKLSsgICAoc2V0X2F0dHIgIm1vdnUiICIxIikKLSAgICAoc2V0X2F0 dHIgInByZWZpeCIgInZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiPGF2eHZlY21vZGU+Iild KQotIAotQEAgLTM4Myw2ICszODYsNyBAQCAoZGVmaW5lX2luc24gInNzZTJfbW92ZHF1IgotICAg IlRBUkdFVF9TU0UyICYmICEoTUVNX1AgKG9wZXJhbmRzWzBdKSAmJiBNRU1fUCAob3BlcmFuZHNb MV0pKSIKLSAgICJtb3ZkcXVcdHslMSwgJTB8JTAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUi ICJzc2Vtb3YiKQotKyAgIChzZXRfYXR0ciAibW92dSIgIjEiKQotICAgIChzZXRfYXR0ciAicHJl Zml4X2RhdGExNiIgIjEiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotIAotQEAgLTQy NCw3ICs0MjgsNyBAQCAoZGVmaW5lX2luc24gInNzZTJfbW92bnR2MmRpIgotIAkJICAgICBVTlNQ RUNfTU9WTlQpKV0KLSAgICJUQVJHRVRfU1NFMiIKLSAgICJtb3ZudGRxXHR7JTEsICUwfCUwLCAl MX0iCi0tICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY3Z0IikKLSsgIFsoc2V0X2F0dHIgInR5cGUi ICJzc2Vtb3YiKQotICAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQotICAgIChzZXRf YXR0ciAibW9kZSIgIlRJIildKQotIAotQEAgLTQzNCw3ICs0MzgsNyBAQCAoZGVmaW5lX2luc24g InNzZTJfbW92bnRzaSIKLSAJCSAgIFVOU1BFQ19NT1ZOVCkpXQotICAgIlRBUkdFVF9TU0UyIgot ICAgIm1vdm50aVx0eyUxLCAlMHwlMCwgJTF9IgotLSAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWN2 dCIpCi0rICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbW92IikKLSAgICAoc2V0X2F0dHIgIm1vZGUi ICJWMkRGIildKQotIAotIChkZWZpbmVfaW5zbiAiYXZ4X2xkZHF1PGF2eG1vZGVzdWZmaXg+Igot QEAgLTQ0NSw2ICs0NDksNyBAQCAoZGVmaW5lX2luc24gImF2eF9sZGRxdTxhdnhtb2Rlc3VmZml4 PiIKLSAgICJUQVJHRVRfQVZYIgotICAgInZsZGRxdVx0eyUxLCAlMHwlMCwgJTF9IgotICAgWyhz ZXRfYXR0ciAidHlwZSIgInNzZWN2dCIpCi0rICAgKHNldF9hdHRyICJtb3Z1IiAiMSIpCi0gICAg KHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIjxhdnh2ZWNt b2RlPiIpXSkKLSAKLUBAIC00NTQsNyArNDU5LDggQEAgKGRlZmluZV9pbnNuICJzc2UzX2xkZHF1 IgotIAkJICAgICAgVU5TUEVDX0xERFFVKSldCi0gICAiVEFSR0VUX1NTRTMiCi0gICAibGRkcXVc dHslMSwgJTB8JTAsICUxfSIKLS0gIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjdnQiKQotKyAgWyhz ZXRfYXR0ciAidHlwZSIgInNzZW1vdiIpCi0rICAgKHNldF9hdHRyICJtb3Z1IiAiMSIpCi0gICAg KHNldF9hdHRyICJwcmVmaXhfcmVwIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0p Ci0gCi1AQCAtNzYxLDYgKzc2Nyw3IEBAIChkZWZpbmVfaW5zbiAic3NlX3JjcHY0c2YyIgotICAg IlRBUkdFVF9TU0UiCi0gICAiJXZyY3Bwc1x0eyUxLCAlMHwlMCwgJTF9IgotICAgWyhzZXRfYXR0 ciAidHlwZSIgInNzZSIpCi0rICAgKHNldF9hdHRyICJhdG9tX3NzZV9hdHRyIiAicmNwIikKLSAg ICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAi VjRTRiIpXSkKLSAKLUBAIC03ODcsNiArNzk0LDcgQEAgKGRlZmluZV9pbnNuICJzc2Vfdm1yY3B2 NHNmMiIKLSAgICJUQVJHRVRfU1NFIgotICAgInJjcHNzXHR7JTEsICUwfCUwLCAlMX0iCi0gICBb KHNldF9hdHRyICJ0eXBlIiAic3NlIikKLSsgICAoc2V0X2F0dHIgImF0b21fc3NlX2F0dHIiICJy Y3AiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlNGIildKQotIAotIChkZWZpbmVfZXhwYW5kICJz cXJ0djhzZjIiCi1AQCAtODMyLDYgKzg0MCw3IEBAIChkZWZpbmVfaW5zbiAic3NlX3NxcnR2NHNm MiIKLSAgICJUQVJHRVRfU1NFIgotICAgIiV2c3FydHBzXHR7JTEsICUwfCUwLCAlMX0iCi0gICBb KHNldF9hdHRyICJ0eXBlIiAic3NlIikKLSsgICAoc2V0X2F0dHIgImF0b21fc3NlX2F0dHIiICJz cXJ0IikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCi0gICAgKHNldF9hdHRy ICJtb2RlIiAiVjRTRiIpXSkKLSAKLUBAIC04NzYsNiArODg1LDcgQEAgKGRlZmluZV9pbnNuICI8 c3NlPl92bXNxcnQ8bW9kZT4yIgotICAgIlNTRV9WRUNfRkxPQVRfTU9ERV9QICg8TU9ERT5tb2Rl KSIKLSAgICJzcXJ0czxzc2Vtb2Rlc3VmZml4ZjJjPlx0eyUxLCAlMHwlMCwgJTF9IgotICAgWyhz ZXRfYXR0ciAidHlwZSIgInNzZSIpCi0rICAgKHNldF9hdHRyICJhdG9tX3NzZV9hdHRyIiAic3Fy dCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiPHNzZXNjYWxhcm1vZGU+IildKQotIAotIChkZWZp bmVfZXhwYW5kICJyc3FydHY4c2YyIgotQEAgLTEwMzksNyArMTA0OSw3IEBAIChkZWZpbmVfaW5z biAiPHNzZT5fdm08Y29kZT48bW9kZT4zIgotIAkgKGNvbnN0X2ludCAxKSkpXQotICAgIlNTRV9W RUNfRkxPQVRfTU9ERV9QICg8TU9ERT5tb2RlKSIKLSAgICI8bWF4bWluZnByZWZpeD5zPHNzZW1v ZGVzdWZmaXhmMmM+XHR7JTIsICUwfCUwLCAlMn0iCi0tICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl IikKLSsgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VhZGQiKQotICAgIChzZXRfYXR0ciAibW9kZSIg Ijxzc2VzY2FsYXJtb2RlPiIpXSkKLSAKLSA7OyBUaGVzZSB2ZXJzaW9ucyBvZiB0aGUgbWluL21h eCBwYXR0ZXJucyBpbXBsZW1lbnQgZXhhY3RseSB0aGUgb3BlcmF0aW9ucwotQEAgLTExNzUsNiAr MTE4NSw3IEBAIChkZWZpbmVfaW5zbiAic3NlM19hZGRzdWJ2MmRmMyIKLSAgICJUQVJHRVRfU1NF MyIKLSAgICJhZGRzdWJwZFx0eyUyLCAlMHwlMCwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIg InNzZWFkZCIpCi0rICAgKHNldF9hdHRyICJhdG9tX3VuaXQiICJjb21wbGV4IikKLSAgICAoc2V0 X2F0dHIgIm1vZGUiICJWMkRGIildKQotIAotIChkZWZpbmVfaW5zbiAiYXZ4X2g8cGx1c21pbnVz X2luc24+djRkZjMiCi1AQCAtMTI5OCw2ICsxMzA5LDcgQEAgKGRlZmluZV9pbnNuICJzc2UzX2g8 cGx1c21pbnVzX2luc24+djRzZgotICAgIlRBUkdFVF9TU0UzIgotICAgImg8cGx1c21pbnVzX21u ZW1vbmljPnBzXHR7JTIsICUwfCUwLCAlMn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlYWRk IikKLSsgICAoc2V0X2F0dHIgImF0b21fdW5pdCIgImNvbXBsZXgiKQotICAgIChzZXRfYXR0ciAi cHJlZml4X3JlcCIgIjEiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlY0U0YiKV0pCi0gCi1AQCAt NTA2Niw2ICs1MDc4LDcgQEAgKGRlZmluZV9pbnNuICIqc3NlMl9wbWFkZHdkIgotICAgIlRBUkdF VF9TU0UyICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChNVUxULCBWOEhJbW9kZSwgb3BlcmFu ZHMpIgotICAgInBtYWRkd2RcdHslMiwgJTB8JTAsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUi ICJzc2VpYWRkIikKLSsgICAoc2V0X2F0dHIgImF0b21fdW5pdCIgInNpbXVsIikKLSAgICAoc2V0 X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkK LSAKLUBAIC03MDI1LDYgKzcwMzgsNyBAQCAoZGVmaW5lX2luc24gIip2ZWNfZXh0cmFjdHYyZGlf MV9yZXg2NCIKLSAgICBtb3ZxXHR7JUgxLCAlMHwlMCwgJUgxfQotICAgIG1vdntxfVx0eyVIMSwg JTB8JTAsICVIMX0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbW92LHNzZWlzaGZ0LHNzZW1v dixpbW92IikKLSsgICAoc2V0X2F0dHIgImF0b21fdW5pdCIgIiosc2lzaHVmLCosKiIpCi0gICAg KHNldF9hdHRyICJtZW1vcnkiICIqLG5vbmUsKiwqIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJW MlNGLFRJLFRJLERJIildKQotIAotQEAgLTcwNTcsNiArNzA3MSw3IEBAIChkZWZpbmVfaW5zbiAi KnZlY19leHRyYWN0djJkaV8xX3NzZTIiCi0gICAgcHNybGRxXHR7JDgsICUwfCUwLCA4fQotICAg IG1vdnFcdHslSDEsICUwfCUwLCAlSDF9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdixz c2Vpc2hmdCxzc2Vtb3YiKQotKyAgIChzZXRfYXR0ciAiYXRvbV91bml0IiAiKixzaXNodWYsKiIp Ci0gICAgKHNldF9hdHRyICJtZW1vcnkiICIqLG5vbmUsKiIpCi0gICAgKHNldF9hdHRyICJtb2Rl IiAiVjJTRixUSSxUSSIpXSkKLSAKLUBAIC03NjE0LDYgKzc2MjksNyBAQCAoZGVmaW5lX2luc24g InNzZTJfcHNhZGJ3IgotICAgIlRBUkdFVF9TU0UyIgotICAgInBzYWRid1x0eyUyLCAlMHwlMCwg JTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlhZGQiKQotKyAgIChzZXRfYXR0ciAiYXRv bV91bml0IiAic2ltdWwiKQotICAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQotICAg IChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotIAotQEAgLTc2MzUsNyArNzY1MSw3IEBAIChkZWZp bmVfaW5zbiAiPHNzZT5fbW92bXNrcDxzc2Vtb2Rlc3VmZmkKLSAJICBVTlNQRUNfTU9WTVNLKSld Ci0gICAiU1NFX1ZFQ19GTE9BVF9NT0RFX1AgKDxNT0RFPm1vZGUpIgotICAgIiV2bW92bXNrcDxz c2Vtb2Rlc3VmZml4ZjJjPlx0eyUxLCAlMHwlMCwgJTF9IgotLSAgWyhzZXRfYXR0ciAidHlwZSIg InNzZWN2dCIpCi0rICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbW92IikKLSAgICAoc2V0X2F0dHIg InByZWZpeCIgIm1heWJlX3ZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQot IAotQEAgLTc2NDUsNyArNzY2MSw3IEBAIChkZWZpbmVfaW5zbiAic3NlMl9wbW92bXNrYiIKLSAJ CSAgIFVOU1BFQ19NT1ZNU0spKV0KLSAgICJUQVJHRVRfU1NFMiIKLSAgICIldnBtb3Ztc2tiXHR7 JTEsICUwfCUwLCAlMX0iCi0tICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY3Z0IikKLSsgIFsoc2V0 X2F0dHIgInR5cGUiICJzc2Vtb3YiKQotICAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEi KQotICAgIChzZXRfYXR0ciAicHJlZml4IiAibWF5YmVfdmV4IikKLSAgICAoc2V0X2F0dHIgIm1v ZGUiICJTSSIpXSkKLUBAIC03NjY4LDcgKzc2ODQsNyBAQCAoZGVmaW5lX2luc24gIipzc2UyX21h c2ttb3ZkcXUiCi0gICAiVEFSR0VUX1NTRTIgJiYgIVRBUkdFVF82NEJJVCIKLSAgIDs7IEBAQCBj aGVjayBvcmRlcmluZyBvZiBvcGVyYW5kcyBpbiBpbnRlbC9ub25pbnRlbCBzeW50YXgKLSAgICIl dm1hc2ttb3ZkcXVcdHslMiwgJTF8JTEsICUyfSIKLS0gIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vj dnQiKQotKyAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdiIpCi0gICAgKHNldF9hdHRyICJwcmVm aXhfZGF0YTE2IiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJtYXliZV92ZXgiKQotICAg IChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotQEAgLTc2ODIsNyArNzY5OCw3IEBAIChkZWZpbmVf aW5zbiAiKnNzZTJfbWFza21vdmRxdV9yZXg2NCIKLSAgICJUQVJHRVRfU1NFMiAmJiBUQVJHRVRf NjRCSVQiCi0gICA7OyBAQEAgY2hlY2sgb3JkZXJpbmcgb2Ygb3BlcmFuZHMgaW4gaW50ZWwvbm9u aW50ZWwgc3ludGF4Ci0gICAiJXZtYXNrbW92ZHF1XHR7JTIsICUxfCUxLCAlMn0iCi0tICBbKHNl dF9hdHRyICJ0eXBlIiAic3NlY3Z0IikKLSsgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vtb3YiKQot ICAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4 IiAibWF5YmVfdmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLUBAIC03NjkzLDYg Kzc3MDksNyBAQCAoZGVmaW5lX2luc24gInNzZV9sZG14Y3NyIgotICAgIlRBUkdFVF9TU0UiCi0g ICAiJXZsZG14Y3NyXHQlMCIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2UiKQotKyAgIChzZXRf YXR0ciAiYXRvbV9zc2VfYXR0ciIgIm14Y3NyIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1h eWJlX3ZleCIpCi0gICAgKHNldF9hdHRyICJtZW1vcnkiICJsb2FkIildKQotIAotQEAgLTc3MDIs NiArNzcxOSw3IEBAIChkZWZpbmVfaW5zbiAic3NlX3N0bXhjc3IiCi0gICAiVEFSR0VUX1NTRSIK LSAgICIldnN0bXhjc3JcdCUwIgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZSIpCi0rICAgKHNl dF9hdHRyICJhdG9tX3NzZV9hdHRyIiAibXhjc3IiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAi bWF5YmVfdmV4IikKLSAgICAoc2V0X2F0dHIgIm1lbW9yeSIgInN0b3JlIildKQotIAotQEAgLTc3 MjAsNiArNzczOCw3IEBAIChkZWZpbmVfaW5zbiAiKnNzZV9zZmVuY2UiCi0gICAiVEFSR0VUX1NT RSB8fCBUQVJHRVRfM0ROT1dfQSIKLSAgICJzZmVuY2UiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAi c3NlIikKLSsgICAoc2V0X2F0dHIgImF0b21fc3NlX2F0dHIiICJmZW5jZSIpCi0gICAgKHNldF9h dHRyICJtZW1vcnkiICJ1bmtub3duIildKQotIAotIChkZWZpbmVfaW5zbiAic3NlMl9jbGZsdXNo IgotQEAgLTc3MjgsNiArNzc0Nyw3IEBAIChkZWZpbmVfaW5zbiAic3NlMl9jbGZsdXNoIgotICAg IlRBUkdFVF9TU0UyIgotICAgImNsZmx1c2hcdCVhMCIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJz c2UiKQotKyAgIChzZXRfYXR0ciAiYXRvbV9zc2VfYXR0ciIgImZlbmNlIikKLSAgICAoc2V0X2F0 dHIgIm1lbW9yeSIgInVua25vd24iKV0pCi0gCi0gKGRlZmluZV9leHBhbmQgInNzZTJfbWZlbmNl IgotQEAgLTc3NDUsNiArNzc2NSw3IEBAIChkZWZpbmVfaW5zbiAiKnNzZTJfbWZlbmNlIgotICAg IlRBUkdFVF82NEJJVCB8fCBUQVJHRVRfU1NFMiIKLSAgICJtZmVuY2UiCi0gICBbKHNldF9hdHRy ICJ0eXBlIiAic3NlIikKLSsgICAoc2V0X2F0dHIgImF0b21fc3NlX2F0dHIiICJmZW5jZSIpCi0g ICAgKHNldF9hdHRyICJtZW1vcnkiICJ1bmtub3duIildKQotIAotIChkZWZpbmVfZXhwYW5kICJz c2UyX2xmZW5jZSIKLUBAIC03NzYyLDYgKzc3ODMsNyBAQCAoZGVmaW5lX2luc24gIipzc2UyX2xm ZW5jZSIKLSAgICJUQVJHRVRfU1NFMiIKLSAgICJsZmVuY2UiCi0gICBbKHNldF9hdHRyICJ0eXBl IiAic3NlIikKLSsgICAoc2V0X2F0dHIgImF0b21fc3NlX2F0dHIiICJsZmVuY2UiKQotICAgIChz ZXRfYXR0ciAibWVtb3J5IiAidW5rbm93biIpXSkKLSAKLSAoZGVmaW5lX2luc24gInNzZTNfbXdh aXQiCi1AQCAtNzg4NSw2ICs3OTA3LDcgQEAgKGRlZmluZV9pbnNuICJzc3NlM19waGFkZHd2OGhp MyIKLSAgICJUQVJHRVRfU1NTRTMiCi0gICAicGhhZGR3XHR7JTIsICUwfCUwLCAlMn0iCi0gICBb KHNldF9hdHRyICJ0eXBlIiAic3NlaWFkZCIpCi0rICAgKHNldF9hdHRyICJhdG9tX3VuaXQiICJj b21wbGV4IikKLSAgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikKLSAgICAoc2V0X2F0 dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotQEAg LTc5MTMsNiArNzkzNiw3IEBAIChkZWZpbmVfaW5zbiAic3NzZTNfcGhhZGR3djRoaTMiCi0gICAi VEFSR0VUX1NTU0UzIgotICAgInBoYWRkd1x0eyUyLCAlMHwlMCwgJTJ9IgotICAgWyhzZXRfYXR0 ciAidHlwZSIgInNzZWlhZGQiKQotKyAgIChzZXRfYXR0ciAiYXRvbV91bml0IiAiY29tcGxleCIp Ci0gICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUi ICJESSIpXSkKLSAKLUBAIC03OTY3LDYgKzc5OTEsNyBAQCAoZGVmaW5lX2luc24gInNzc2UzX3Bo YWRkZHY0c2kzIgotICAgIlRBUkdFVF9TU1NFMyIKLSAgICJwaGFkZGRcdHslMiwgJTB8JTAsICUy fSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpYWRkIikKLSsgICAoc2V0X2F0dHIgImF0b21f dW5pdCIgImNvbXBsZXgiKQotICAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQotICAg IChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEki KV0pCi1AQCAtNzk4Nyw2ICs4MDEyLDcgQEAgKGRlZmluZV9pbnNuICJzc3NlM19waGFkZGR2MnNp MyIKLSAgICJUQVJHRVRfU1NTRTMiCi0gICAicGhhZGRkXHR7JTIsICUwfCUwLCAlMn0iCi0gICBb KHNldF9hdHRyICJ0eXBlIiAic3NlaWFkZCIpCi0rICAgKHNldF9hdHRyICJhdG9tX3VuaXQiICJj b21wbGV4IikKLSAgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgIChzZXRfYXR0 ciAibW9kZSIgIkRJIildKQotIAotQEAgLTgwNzMsNiArODA5OSw3IEBAIChkZWZpbmVfaW5zbiAi c3NzZTNfcGhhZGRzd3Y4aGkzIgotICAgIlRBUkdFVF9TU1NFMyIKLSAgICJwaGFkZHN3XHR7JTIs ICUwfCUwLCAlMn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWFkZCIpCi0rICAgKHNldF9h dHRyICJhdG9tX3VuaXQiICJjb21wbGV4IikKLSAgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYi ICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgIChzZXRfYXR0ciAi bW9kZSIgIlRJIildKQotQEAgLTgxMDEsNiArODEyOCw3IEBAIChkZWZpbmVfaW5zbiAic3NzZTNf cGhhZGRzd3Y0aGkzIgotICAgIlRBUkdFVF9TU1NFMyIKLSAgICJwaGFkZHN3XHR7JTIsICUwfCUw LCAlMn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWFkZCIpCi0rICAgKHNldF9hdHRyICJh dG9tX3VuaXQiICJjb21wbGV4IikKLSAgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQot ICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQotIAotQEAgLTgxODcsNiArODIxNSw3IEBAIChk ZWZpbmVfaW5zbiAic3NzZTNfcGhzdWJ3djhoaTMiCi0gICAiVEFSR0VUX1NTU0UzIgotICAgInBo c3Vid1x0eyUyLCAlMHwlMCwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlhZGQiKQot KyAgIChzZXRfYXR0ciAiYXRvbV91bml0IiAiY29tcGxleCIpCi0gICAgKHNldF9hdHRyICJwcmVm aXhfZGF0YTE2IiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgICAo c2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLUBAIC04MjE1LDYgKzgyNDQsNyBAQCAoZGVmaW5lX2lu c24gInNzc2UzX3Boc3Vid3Y0aGkzIgotICAgIlRBUkdFVF9TU1NFMyIKLSAgICJwaHN1YndcdHsl MiwgJTB8JTAsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpYWRkIikKLSsgICAoc2V0 X2F0dHIgImF0b21fdW5pdCIgImNvbXBsZXgiKQotICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJh IiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0gCi1AQCAtODI2OSw2ICs4Mjk5 LDcgQEAgKGRlZmluZV9pbnNuICJzc3NlM19waHN1YmR2NHNpMyIKLSAgICJUQVJHRVRfU1NTRTMi Ci0gICAicGhzdWJkXHR7JTIsICUwfCUwLCAlMn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl aWFkZCIpCi0rICAgKHNldF9hdHRyICJhdG9tX3VuaXQiICJjb21wbGV4IikKLSAgICAoc2V0X2F0 dHIgInByZWZpeF9kYXRhMTYiICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEi KQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotQEAgLTgyODksNiArODMyMCw3IEBAIChk ZWZpbmVfaW5zbiAic3NzZTNfcGhzdWJkdjJzaTMiCi0gICAiVEFSR0VUX1NTU0UzIgotICAgInBo c3ViZFx0eyUyLCAlMHwlMCwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlhZGQiKQot KyAgIChzZXRfYXR0ciAiYXRvbV91bml0IiAiY29tcGxleCIpCi0gICAgKHNldF9hdHRyICJwcmVm aXhfZXh0cmEiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkKLSAKLUBAIC04Mzc1 LDYgKzg0MDcsNyBAQCAoZGVmaW5lX2luc24gInNzc2UzX3Boc3Vic3d2OGhpMyIKLSAgICJUQVJH RVRfU1NTRTMiCi0gICAicGhzdWJzd1x0eyUyLCAlMHwlMCwgJTJ9IgotICAgWyhzZXRfYXR0ciAi dHlwZSIgInNzZWlhZGQiKQotKyAgIChzZXRfYXR0ciAiYXRvbV91bml0IiAiY29tcGxleCIpCi0g ICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhf ZXh0cmEiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLUBAIC04NDAzLDYgKzg0 MzYsNyBAQCAoZGVmaW5lX2luc24gInNzc2UzX3Boc3Vic3d2NGhpMyIKLSAgICJUQVJHRVRfU1NT RTMiCi0gICAicGhzdWJzd1x0eyUyLCAlMHwlMCwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIg InNzZWlhZGQiKQotKyAgIChzZXRfYXR0ciAiYXRvbV91bml0IiAiY29tcGxleCIpCi0gICAgKHNl dF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkK LSAKLUBAIC04NTA5LDYgKzg1NDMsNyBAQCAoZGVmaW5lX2luc24gInNzc2UzX3BtYWRkdWJzdzEy OCIKLSAgICJUQVJHRVRfU1NTRTMiCi0gICAicG1hZGR1YnN3XHR7JTIsICUwfCUwLCAlMn0iCi0g ICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWFkZCIpCi0rICAgKHNldF9hdHRyICJhdG9tX3VuaXQi ICJzaW11bCIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIpCi0gICAgKHNldF9h dHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLUBA IC04NTQ3LDYgKzg1ODIsNyBAQCAoZGVmaW5lX2luc24gInNzc2UzX3BtYWRkdWJzdyIKLSAgICJU QVJHRVRfU1NTRTMiCi0gICAicG1hZGR1YnN3XHR7JTIsICUwfCUwLCAlMn0iCi0gICBbKHNldF9h dHRyICJ0eXBlIiAic3NlaWFkZCIpCi0rICAgKHNldF9hdHRyICJhdG9tX3VuaXQiICJzaW11bCIp Ci0gICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUi ICJESSIpXSkKLSAKLUBAIC04NzU0LDYgKzg3OTAsNyBAQCAoZGVmaW5lX2luc24gInNzc2UzX3Bh bGlnbnJ0aSIKLSAgIHJldHVybiAicGFsaWduclx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30iOwot IH0KLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vpc2hmdCIpCi0rICAgKHNldF9hdHRyICJhdG9t X3VuaXQiICJzaXNodWYiKQotICAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQotICAg IChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEki KV0pCi1AQCAtODc3MCw2ICs4ODA3LDcgQEAgKGRlZmluZV9pbnNuICJzc3NlM19wYWxpZ25yZGki Ci0gICByZXR1cm4gInBhbGlnbnJcdHslMywgJTIsICUwfCUwLCAlMiwgJTN9IjsKLSB9Ci0gICBb KHNldF9hdHRyICJ0eXBlIiAic3NlaXNoZnQiKQotKyAgIChzZXRfYXR0ciAiYXRvbV91bml0IiAi c2lzaHVmIikKLSAgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgIChzZXRfYXR0 ciAibW9kZSIgIkRJIildKQotIAotQEAgLTg5NTYsNyArODk5NCw3IEBAIChkZWZpbmVfaW5zbiAi c3NlNF8xX21vdm50ZHFhIgotIAkJICAgICBVTlNQRUNfTU9WTlREUUEpKV0KLSAgICJUQVJHRVRf U1NFNF8xIgotICAgIiV2bW92bnRkcWFcdHslMSwgJTB8JTAsICUxfSIKLS0gIFsoc2V0X2F0dHIg InR5cGUiICJzc2VjdnQiKQotKyAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdiIpCi0gICAgKHNl dF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJl X3ZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0tLS0gZ2NjL2NvbmZpZy9pMzg2 L2kzODYtYy5jCSguLi4vdHJ1bmspCShyZXZpc2lvbiAxNDQ0NjApCi0rKysgZ2NjL2NvbmZpZy9p Mzg2L2kzODYtYy5jCSguLi4vYnJhbmNoZXMvaXg4Ni9hdG9tKQkocmV2aXNpb24gMTQ0NjAxKQot QEAgLTExOSw2ICsxMTksMTAgQEAgaXg4Nl90YXJnZXRfbWFjcm9zX2ludGVybmFsIChpbnQgaXNh X2ZsYQotICAgICAgIGRlZl9vcl91bmRlZiAocGFyc2VfaW4sICJfX2NvcmUyIik7Ci0gICAgICAg ZGVmX29yX3VuZGVmIChwYXJzZV9pbiwgIl9fY29yZTJfXyIpOwotICAgICAgIGJyZWFrOwotKyAg ICBjYXNlIFBST0NFU1NPUl9BVE9NOgotKyAgICAgIGRlZl9vcl91bmRlZiAocGFyc2VfaW4sICJf X2F0b20iKTsKLSsgICAgICBkZWZfb3JfdW5kZWYgKHBhcnNlX2luLCAiX19hdG9tX18iKTsKLSsg ICAgICBicmVhazsKLSAgICAgLyogdXNlIFBST0NFU1NPUl9tYXggdG8gbm90IHNldC91bnNldCB0 aGUgYXJjaCBtYWNyby4gICovCi0gICAgIGNhc2UgUFJPQ0VTU09SX21heDoKLSAgICAgICBicmVh azsKLUBAIC0xODcsNiArMTkxLDkgQEAgaXg4Nl90YXJnZXRfbWFjcm9zX2ludGVybmFsIChpbnQg aXNhX2ZsYQotICAgICBjYXNlIFBST0NFU1NPUl9DT1JFMjoKLSAgICAgICBkZWZfb3JfdW5kZWYg KHBhcnNlX2luLCAiX190dW5lX2NvcmUyX18iKTsKLSAgICAgICBicmVhazsKLSsgICAgY2FzZSBQ Uk9DRVNTT1JfQVRPTToKLSsgICAgICBkZWZfb3JfdW5kZWYgKHBhcnNlX2luLCAiX190dW5lX2F0 b21fXyIpOwotKyAgICAgIGJyZWFrOwotICAgICBjYXNlIFBST0NFU1NPUl9HRU5FUklDMzI6Ci0g ICAgIGNhc2UgUFJPQ0VTU09SX0dFTkVSSUM2NDoKLSAgICAgICBicmVhazsKLS0tLSBnY2MvY29u ZmlnL2kzODYvaTM4Ni1wcm90b3MuaAkoLi4uL3RydW5rKQkocmV2aXNpb24gMTQ0NDYwKQotKysr IGdjYy9jb25maWcvaTM4Ni9pMzg2LXByb3Rvcy5oCSguLi4vYnJhbmNoZXMvaXg4Ni9hdG9tKQko cmV2aXNpb24gMTQ0NjAxKQotQEAgLTg1LDYgKzg1LDkgQEAgZXh0ZXJuIHZvaWQgaXg4Nl9maXh1 cF9iaW5hcnlfb3BlcmFuZHNfbgotIGV4dGVybiB2b2lkIGl4ODZfZXhwYW5kX2JpbmFyeV9vcGVy YXRvciAoZW51bSBydHhfY29kZSwKLSAJCQkJCSBlbnVtIG1hY2hpbmVfbW9kZSwgcnR4W10pOwot IGV4dGVybiBpbnQgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKGVudW0gcnR4X2NvZGUsIGVudW0g bWFjaGluZV9tb2RlLCBydHhbXSk7Ci0rZXh0ZXJuIGJvb2wgaXg4Nl9sZWFfZm9yX2FkZF9vayAo ZW51bSBydHhfY29kZSwgcnR4LCBydHhbXSk7Ci0rZXh0ZXJuIGJvb2wgaXg4Nl9kZXBfYnlfc2hp ZnRfY291bnQgKGNvbnN0X3J0eCBzZXRfaW5zbiwgY29uc3RfcnR4IHVzZV9pbnNuKTsKLStleHRl cm4gYm9vbCBpeDg2X2FnaV9kZXBlbmRlbnQgKHJ0eCBzZXRfaW5zbiwgcnR4IHVzZV9pbnNuKTsK LSBleHRlcm4gdm9pZCBpeDg2X2V4cGFuZF91bmFyeV9vcGVyYXRvciAoZW51bSBydHhfY29kZSwg ZW51bSBtYWNoaW5lX21vZGUsCi0gCQkJCQlydHhbXSk7Ci0gZXh0ZXJuIHJ0eCBpeDg2X2J1aWxk X2NvbnN0X3ZlY3RvciAoZW51bSBtYWNoaW5lX21vZGUsIGJvb2wsIHJ0eCk7Ci0tLS0gZ2NjL2Nv bmZpZy9pMzg2L2kzODYuYwkoLi4uL3RydW5rKQkocmV2aXNpb24gMTQ0NDYwKQotKysrIGdjYy9j b25maWcvaTM4Ni9pMzg2LmMJKC4uLi9icmFuY2hlcy9peDg2L2F0b20pCShyZXZpc2lvbiAxNDQ2 MDEpCi1AQCAtMTAzNiw2ICsxMDM2LDc5IEBAIHN0cnVjdCBwcm9jZXNzb3JfY29zdHMgY29yZTJf Y29zdCA9IHsKLSAgIDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY29u ZF9ub3RfdGFrZW5fYnJhbmNoX2Nvc3QuICAqLwotIH07Ci0gCi0rc3RhdGljIGNvbnN0Ci0rc3Ry dWN0IHByb2Nlc3Nvcl9jb3N0cyBhdG9tX2Nvc3QgPSB7Ci0rICBDT1NUU19OX0lOU05TICgxKSwJ CQkvKiBjb3N0IG9mIGFuIGFkZCBpbnN0cnVjdGlvbiAqLwotKyAgQ09TVFNfTl9JTlNOUyAoMSkg KyAxLAkJLyogY29zdCBvZiBhIGxlYSBpbnN0cnVjdGlvbiAqLwotKyAgQ09TVFNfTl9JTlNOUyAo MSksCQkJLyogdmFyaWFibGUgc2hpZnQgY29zdHMgKi8KLSsgIENPU1RTX05fSU5TTlMgKDEpLAkJ CS8qIGNvbnN0YW50IHNoaWZ0IGNvc3RzICovCi0rICB7Q09TVFNfTl9JTlNOUyAoMyksCQkJLyog Y29zdCBvZiBzdGFydGluZyBtdWx0aXBseSBmb3IgUUkgKi8KLSsgICBDT1NUU19OX0lOU05TICg0 KSwJCQkvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBISSAqLwotKyAgIENPU1RTX05f SU5TTlMgKDMpLAkJCS8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNJICovCi0rICAg Q09TVFNfTl9JTlNOUyAoNCksCQkJLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREkg Ki8KLSsgICBDT1NUU19OX0lOU05TICgyKX0sCQkJLyogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb3RoZXIgKi8KLSsgIDAsCQkJCQkvKiBjb3N0IG9mIG11bHRpcGx5IHBlciBlYWNoIGJp dCBzZXQgKi8KLSsgIHtDT1NUU19OX0lOU05TICgxOCksCQkJLyogY29zdCBvZiBhIGRpdmlkZS9t b2QgZm9yIFFJICovCi0rICAgQ09TVFNfTl9JTlNOUyAoMjYpLAkJCS8qICAgICAgICAgICAgICAg ICAgICAgICAgICBISSAqLwotKyAgIENPU1RTX05fSU5TTlMgKDQyKSwJCQkvKiAgICAgICAgICAg ICAgICAgICAgICAgICAgU0kgKi8KLSsgICBDT1NUU19OX0lOU05TICg3NCksCQkJLyogICAgICAg ICAgICAgICAgICAgICAgICAgIERJICovCi0rICAgQ09TVFNfTl9JTlNOUyAoNzQpfSwJCQkvKiAg ICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXIgKi8KLSsgIENPU1RTX05fSU5TTlMgKDEpLAkJ CS8qIGNvc3Qgb2YgbW92c3ggKi8KLSsgIENPU1RTX05fSU5TTlMgKDEpLAkJCS8qIGNvc3Qgb2Yg bW92enggKi8KLSsgIDgsCQkJCQkvKiAibGFyZ2UiIGluc24gKi8KLSsgIDE3LAkJCQkJLyogTU9W RV9SQVRJTyAqLwotKyAgMiwJCQkJCS8qIGNvc3QgZm9yIGxvYWRpbmcgUUltb2RlIHVzaW5nIG1v dnpibCAqLwotKyAgezQsIDQsIDR9LAkJCQkvKiBjb3N0IG9mIGxvYWRpbmcgaW50ZWdlciByZWdp c3RlcnMKLSsJCQkJCSAgIGluIFFJbW9kZSwgSEltb2RlIGFuZCBTSW1vZGUuCi0rCQkJCQkgICBS ZWxhdGl2ZSB0byByZWctcmVnIG1vdmUgKDIpLiAgKi8KLSsgIHs0LCA0LCA0fSwJCQkJLyogY29z dCBvZiBzdG9yaW5nIGludGVnZXIgcmVnaXN0ZXJzICovCi0rICA0LAkJCQkJLyogY29zdCBvZiBy ZWcscmVnIGZsZC9mc3QgKi8KLSsgIHsxMiwgMTIsIDEyfSwJCQkJLyogY29zdCBvZiBsb2FkaW5n IGZwIHJlZ2lzdGVycwotKwkJCQkJICAgaW4gU0Ztb2RlLCBERm1vZGUgYW5kIFhGbW9kZSAqLwot KyAgezYsIDYsIDh9LAkJCQkvKiBjb3N0IG9mIHN0b3JpbmcgZnAgcmVnaXN0ZXJzCi0rCQkJCQkg ICBpbiBTRm1vZGUsIERGbW9kZSBhbmQgWEZtb2RlICovCi0rICAyLAkJCQkJLyogY29zdCBvZiBt b3ZpbmcgTU1YIHJlZ2lzdGVyICovCi0rICB7OCwgOH0sCQkJCS8qIGNvc3Qgb2YgbG9hZGluZyBN TVggcmVnaXN0ZXJzCi0rCQkJCQkgICBpbiBTSW1vZGUgYW5kIERJbW9kZSAqLwotKyAgezgsIDh9 LAkJCQkvKiBjb3N0IG9mIHN0b3JpbmcgTU1YIHJlZ2lzdGVycwotKwkJCQkJICAgaW4gU0ltb2Rl IGFuZCBESW1vZGUgKi8KLSsgIDIsCQkJCQkvKiBjb3N0IG9mIG1vdmluZyBTU0UgcmVnaXN0ZXIg Ki8KLSsgIHs4LCA4LCA4fSwJCQkJLyogY29zdCBvZiBsb2FkaW5nIFNTRSByZWdpc3RlcnMKLSsJ CQkJCSAgIGluIFNJbW9kZSwgREltb2RlIGFuZCBUSW1vZGUgKi8KLSsgIHs4LCA4LCA4fSwJCQkJ LyogY29zdCBvZiBzdG9yaW5nIFNTRSByZWdpc3RlcnMKLSsJCQkJCSAgIGluIFNJbW9kZSwgRElt b2RlIGFuZCBUSW1vZGUgKi8KLSsgIDUsCQkJCQkvKiBNTVggb3IgU1NFIHJlZ2lzdGVyIHRvIGlu dGVnZXIgKi8KLSsgIDMyLAkJCQkJLyogc2l6ZSBvZiBsMSBjYWNoZS4gICovCi0rICAyNTYsCQkJ CQkvKiBzaXplIG9mIGwyIGNhY2hlLiAgKi8KLSsgIDY0LAkJCQkJLyogc2l6ZSBvZiBwcmVmZXRj aCBibG9jayAqLwotKyAgNiwJCQkJCS8qIG51bWJlciBvZiBwYXJhbGxlbCBwcmVmZXRjaGVzICov Ci0rICAzLAkJCQkJLyogQnJhbmNoIGNvc3QgKi8KLSsgIENPU1RTX05fSU5TTlMgKDgpLAkJCS8q IGNvc3Qgb2YgRkFERCBhbmQgRlNVQiBpbnNucy4gICovCi0rICBDT1NUU19OX0lOU05TICg4KSwJ CQkvKiBjb3N0IG9mIEZNVUwgaW5zdHJ1Y3Rpb24uICAqLwotKyAgQ09TVFNfTl9JTlNOUyAoMjAp LAkJCS8qIGNvc3Qgb2YgRkRJViBpbnN0cnVjdGlvbi4gICovCi0rICBDT1NUU19OX0lOU05TICg4 KSwJCQkvKiBjb3N0IG9mIEZBQlMgaW5zdHJ1Y3Rpb24uICAqLwotKyAgQ09TVFNfTl9JTlNOUyAo OCksCQkJLyogY29zdCBvZiBGQ0hTIGluc3RydWN0aW9uLiAgKi8KLSsgIENPU1RTX05fSU5TTlMg KDQwKSwJCQkvKiBjb3N0IG9mIEZTUVJUIGluc3RydWN0aW9uLiAgKi8KLSsgIHt7bGliY2FsbCwg e3sxMSwgbG9vcH0sIHstMSwgcmVwX3ByZWZpeF80X2J5dGV9fX0sCi0rICAge2xpYmNhbGwsIHt7 MzIsIGxvb3B9LCB7NjQsIHJlcF9wcmVmaXhfNF9ieXRlfSwKLSsgICAgICAgICAgezgxOTIsIHJl cF9wcmVmaXhfOF9ieXRlfSwgey0xLCBsaWJjYWxsfX19fSwKLSsgIHt7bGliY2FsbCwge3s4LCBs b29wfSwgezE1LCB1bnJvbGxlZF9sb29wfSwKLSsgICAgICAgICAgezIwNDgsIHJlcF9wcmVmaXhf NF9ieXRlfSwgey0xLCBsaWJjYWxsfX19LAotKyAgIHtsaWJjYWxsLCB7ezI0LCBsb29wfSwgezMy LCB1bnJvbGxlZF9sb29wfSwKLSsgICAgICAgICAgezgxOTIsIHJlcF9wcmVmaXhfOF9ieXRlfSwg ey0xLCBsaWJjYWxsfX19fSwKLSsgIDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLyogc2NhbGFyX3N0bXRfY29zdC4gICovCi0rICAxLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8qIHNjYWxhciBsb2FkX2Nvc3QuICAqLwotKyAgMSwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvKiBzY2FsYXJfc3RvcmVfY29zdC4gICovCi0rICAxLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZlY19zdG10X2Nvc3QuICAqLwot KyAgMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB2ZWNfdG9fc2NhbGFy X2Nvc3QuICAqLwotKyAgMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBz Y2FsYXJfdG9fdmVjX2Nvc3QuICAqLwotKyAgMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiB2ZWNfYWxpZ25fbG9hZF9jb3N0LiAgKi8KLSsgIDIsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogdmVjX3VuYWxpZ25fbG9hZF9jb3N0LiAgKi8KLSsgIDEs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdmVjX3N0b3JlX2Nvc3QuICAq LwotKyAgMywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjb25kX3Rha2Vu X2JyYW5jaF9jb3N0LiAgKi8KLSsgIDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLyogY29uZF9ub3RfdGFrZW5fYnJhbmNoX2Nvc3QuICAqLwotK307Ci0rCi0gLyogR2VuZXJp YzY0IHNob3VsZCBwcm9kdWNlIGNvZGUgdHVuZWQgZm9yIE5vY29uYSBhbmQgSzguICAqLwotIHN0 YXRpYyBjb25zdAotIHN0cnVjdCBwcm9jZXNzb3JfY29zdHMgZ2VuZXJpYzY0X2Nvc3QgPSB7Ci1A QCAtMTE5NCw2ICsxMjY3LDcgQEAgY29uc3Qgc3RydWN0IHByb2Nlc3Nvcl9jb3N0cyAqaXg4Nl9j b3N0IAotICNkZWZpbmUgbV9QRU5UNCAgKDE8PFBST0NFU1NPUl9QRU5USVVNNCkKLSAjZGVmaW5l IG1fTk9DT05BICAoMTw8UFJPQ0VTU09SX05PQ09OQSkKLSAjZGVmaW5lIG1fQ09SRTIgICgxPDxQ Uk9DRVNTT1JfQ09SRTIpCi0rI2RlZmluZSBtX0FUT00gICgxPDxQUk9DRVNTT1JfQVRPTSkKLSAK LSAjZGVmaW5lIG1fR0VPREUgICgxPDxQUk9DRVNTT1JfR0VPREUpCi0gI2RlZmluZSBtX0s2ICAo MTw8UFJPQ0VTU09SX0s2KQotQEAgLTEyMzEsMTAgKzEzMDUsMTEgQEAgc3RhdGljIHVuc2lnbmVk IGludCBpbml0aWFsX2l4ODZfdHVuZV9mZQotICAgbV80ODYgfCBtX1BFTlQsCi0gCi0gICAvKiBY ODZfVFVORV9VTlJPTExfU1RSTEVOICovCi0tICBtXzQ4NiB8IG1fUEVOVCB8IG1fUFBSTyB8IG1f QU1EX01VTFRJUExFIHwgbV9LNiB8IG1fQ09SRTIgfCBtX0dFTkVSSUMsCi0rICBtXzQ4NiB8IG1f UEVOVCB8IG1fQVRPTSB8IG1fUFBSTyB8IG1fQU1EX01VTFRJUExFIHwgbV9LNgotKyAgfCBtX0NP UkUyIHwgbV9HRU5FUklDLAotIAotICAgLyogWDg2X1RVTkVfREVFUF9CUkFOQ0hfUFJFRElDVElP TiAqLwotLSAgbV9QUFJPIHwgbV9LNl9HRU9ERSB8IG1fQU1EX01VTFRJUExFIHwgbV9QRU5UNCB8 IG1fR0VORVJJQywKLSsgIG1fQVRPTSB8IG1fUFBSTyB8IG1fSzZfR0VPREUgfCBtX0FNRF9NVUxU SVBMRSB8IG1fUEVOVDQgfCBtX0dFTkVSSUMsCi0gCi0gICAvKiBYODZfVFVORV9CUkFOQ0hfUFJF RElDVElPTl9ISU5UUzogQnJhbmNoIGhpbnRzIHdlcmUgcHV0IGluIFA0IGJhc2VkCi0gICAgICBv biBzaW11bGF0aW9uIHJlc3VsdC4gQnV0IGFmdGVyIFA0IHdhcyBtYWRlLCBubyBwZXJmb3JtYW5j ZSBiZW5lZml0Ci1AQCAtMTI0NiwxMiArMTMyMSwxMiBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGlu aXRpYWxfaXg4Nl90dW5lX2ZlCi0gICB+bV8zODYsCi0gCi0gICAvKiBYODZfVFVORV9VU0VfU0FI RiAqLwotLSAgbV9QUFJPIHwgbV9LNl9HRU9ERSB8IG1fSzggfCBtX0FNREZBTTEwIHwgbV9QRU5U NAotKyAgbV9BVE9NIHwgbV9QUFJPIHwgbV9LNl9HRU9ERSB8IG1fSzggfCBtX0FNREZBTTEwIHwg bV9QRU5UNAotICAgfCBtX05PQ09OQSB8IG1fQ09SRTIgfCBtX0dFTkVSSUMsCi0gCi0gICAvKiBY ODZfVFVORV9NT1ZYOiBFbmFibGUgdG8gemVybyBleHRlbmQgaW50ZWdlciByZWdpc3RlcnMgdG8g YXZvaWQKLSAgICAgIHBhcnRpYWwgZGVwZW5kZW5jaWVzLiAgKi8KLS0gIG1fQU1EX01VTFRJUExF IHwgbV9QUFJPIHwgbV9QRU5UNCB8IG1fTk9DT05BCi0rICBtX0FNRF9NVUxUSVBMRSB8IG1fQVRP TSB8IG1fUFBSTyB8IG1fUEVOVDQgfCBtX05PQ09OQQotICAgfCBtX0NPUkUyIHwgbV9HRU5FUklD IHwgbV9HRU9ERSAvKiBtXzM4NiB8IG1fSzYgKi8sCi0gCi0gICAvKiBYODZfVFVORV9QQVJUSUFM X1JFR19TVEFMTDogV2UgcHJvYmFibHkgb3VnaHQgdG8gd2F0Y2ggZm9yIHBhcnRpYWwKLUBAIC0x MjcxLDEzICsxMzQ2LDEzIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW5pdGlhbF9peDg2X3R1bmVf ZmUKLSAgIG1fMzg2IHwgbV80ODYgfCBtX0s2X0dFT0RFLAotIAotICAgLyogWDg2X1RVTkVfVVNF X1NJTU9ERV9GSU9QICovCi0tICB+KG1fUFBSTyB8IG1fQU1EX01VTFRJUExFIHwgbV9QRU5UIHwg bV9DT1JFMiB8IG1fR0VORVJJQyksCi0rICB+KG1fUFBSTyB8IG1fQU1EX01VTFRJUExFIHwgbV9Q RU5UIHwgbV9BVE9NIHwgbV9DT1JFMiB8IG1fR0VORVJJQyksCi0gCi0gICAvKiBYODZfVFVORV9V U0VfTU9WMCAqLwotICAgbV9LNiwKLSAKLSAgIC8qIFg4Nl9UVU5FX1VTRV9DTFREICovCi0tICB+ KG1fUEVOVCB8IG1fSzYgfCBtX0NPUkUyIHwgbV9HRU5FUklDKSwKLSsgIH4obV9QRU5UIHwgbV9B VE9NIHwgbV9LNiB8IG1fQ09SRTIgfCBtX0dFTkVSSUMpLAotIAotICAgLyogWDg2X1RVTkVfVVNF X1hDSEdCOiBVc2UgeGNoZ2IgJXJoLCVybCBpbnN0ZWFkIG9mIHJvbHcvcm9ydyAkOCxyeC4gICov Ci0gICBtX1BFTlQ0LAotQEAgLTEyOTIsOCArMTM2Nyw4IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQg aW5pdGlhbF9peDg2X3R1bmVfZmUKLSAgIH4obV9QRU5UIHwgbV9QUFJPKSwKLSAKLSAgIC8qIFg4 Nl9UVU5FX1BST01PVEVfUUlNT0RFICovCi0tICBtX0s2X0dFT0RFIHwgbV9QRU5UIHwgbV8zODYg fCBtXzQ4NiB8IG1fQU1EX01VTFRJUExFIHwgbV9DT1JFMgotLSAgfCBtX0dFTkVSSUMgLyogfCBt X1BFTlQ0ID8gKi8sCi0rICBtX0s2X0dFT0RFIHwgbV9QRU5UIHwgbV9BVE9NIHwgbV8zODYgfCBt XzQ4NiB8IG1fQU1EX01VTFRJUExFCi0rICB8IG1fQ09SRTIgfCBtX0dFTkVSSUMgLyogfCBtX1BF TlQ0ID8gKi8sCi0gCi0gICAvKiBYODZfVFVORV9GQVNUX1BSRUZJWCAqLwotICAgfihtX1BFTlQg fCBtXzQ4NiB8IG1fMzg2KSwKLUBAIC0xMzE3LDI2ICsxMzkyLDI4IEBAIHN0YXRpYyB1bnNpZ25l ZCBpbnQgaW5pdGlhbF9peDg2X3R1bmVfZmUKLSAgIG1fUFBSTywKLSAKLSAgIC8qIFg4Nl9UVU5F X0FERF9FU1BfNDogRW5hYmxlIGlmIGFkZC9zdWIgaXMgcHJlZmVycmVkIG92ZXIgMS8yIHB1c2gv cG9wLiAgKi8KLS0gIG1fQU1EX01VTFRJUExFIHwgbV9LNl9HRU9ERSB8IG1fUEVOVDQgfCBtX05P Q09OQSB8IG1fQ09SRTIgfCBtX0dFTkVSSUMsCi0rICBtX0FUT00gfCBtX0FNRF9NVUxUSVBMRSB8 IG1fSzZfR0VPREUgfCBtX1BFTlQ0IHwgbV9OT0NPTkEKLSsgIHwgbV9DT1JFMiB8IG1fR0VORVJJ QywKLSAKLSAgIC8qIFg4Nl9UVU5FX0FERF9FU1BfOCAqLwotLSAgbV9BTURfTVVMVElQTEUgfCBt X1BQUk8gfCBtX0s2X0dFT0RFIHwgbV8zODYKLSsgIG1fQU1EX01VTFRJUExFIHwgbV9BVE9NIHwg bV9QUFJPIHwgbV9LNl9HRU9ERSB8IG1fMzg2Ci0gICB8IG1fNDg2IHwgbV9QRU5UNCB8IG1fTk9D T05BIHwgbV9DT1JFMiB8IG1fR0VORVJJQywKLSAKLSAgIC8qIFg4Nl9UVU5FX1NVQl9FU1BfNCAq LwotLSAgbV9BTURfTVVMVElQTEUgfCBtX1BQUk8gfCBtX1BFTlQ0IHwgbV9OT0NPTkEgfCBtX0NP UkUyIHwgbV9HRU5FUklDLAotKyAgbV9BTURfTVVMVElQTEUgfCBtX0FUT00gfCBtX1BQUk8gfCBt X1BFTlQ0IHwgbV9OT0NPTkEgfCBtX0NPUkUyCi0rICB8IG1fR0VORVJJQywKLSAKLSAgIC8qIFg4 Nl9UVU5FX1NVQl9FU1BfOCAqLwotLSAgbV9BTURfTVVMVElQTEUgfCBtX1BQUk8gfCBtXzM4NiB8 IG1fNDg2Ci0rICBtX0FNRF9NVUxUSVBMRSB8IG1fQVRPTSB8IG1fUFBSTyB8IG1fMzg2IHwgbV80 ODYKLSAgIHwgbV9QRU5UNCB8IG1fTk9DT05BIHwgbV9DT1JFMiB8IG1fR0VORVJJQywKLSAKLSAg IC8qIFg4Nl9UVU5FX0lOVEVHRVJfREZNT0RFX01PVkVTOiBFbmFibGUgaWYgaW50ZWdlciBtb3Zl cyBhcmUgcHJlZmVycmVkCi0gICAgICBmb3IgREZtb2RlIGNvcGllcyAqLwotLSAgfihtX0FNRF9N VUxUSVBMRSB8IG1fUEVOVDQgfCBtX05PQ09OQSB8IG1fUFBSTyB8IG1fQ09SRTIKLSsgIH4obV9B TURfTVVMVElQTEUgfCBtX0FUT00gfCBtX1BFTlQ0IHwgbV9OT0NPTkEgfCBtX1BQUk8gfCBtX0NP UkUyCi0gICAgIHwgbV9HRU5FUklDIHwgbV9HRU9ERSksCi0gCi0gICAvKiBYODZfVFVORV9QQVJU SUFMX1JFR19ERVBFTkRFTkNZICovCi0tICBtX0FNRF9NVUxUSVBMRSB8IG1fUEVOVDQgfCBtX05P Q09OQSB8IG1fQ09SRTIgfCBtX0dFTkVSSUMsCi0rICBtX0FNRF9NVUxUSVBMRSB8IG1fQVRPTSB8 IG1fUEVOVDQgfCBtX05PQ09OQSB8IG1fQ09SRTIgfCBtX0dFTkVSSUMsCi0gCi0gICAvKiBYODZf VFVORV9TU0VfUEFSVElBTF9SRUdfREVQRU5ERU5DWTogSW4gdGhlIEdlbmVyaWMgbW9kZWwgd2Ug aGF2ZSBhCi0gICAgICBjb25mbGljdCBoZXJlIGluIGJldHdlZW4gUFByby9QZW50aXVtNCBiYXNl ZCBjaGlwcyB0aGF0IHRocmVhZCAxMjhiaXQKLUBAIC0xMzQ3LDcgKzE0MjQsOCBAQCBzdGF0aWMg dW5zaWduZWQgaW50IGluaXRpYWxfaXg4Nl90dW5lX2ZlCi0gICAgICBzaG93cyB0aGF0IGRpc2Fi bGluZyB0aGlzIG9wdGlvbiBvbiBQNCBicmluZ3Mgb3ZlciAyMCUgU1BFQ2ZwIHJlZ3Jlc3Npb24s Ci0gICAgICB3aGlsZSBlbmFibGluZyBpdCBvbiBLOCBicmluZ3Mgcm91Z2hseSAyLjQlIHJlZ3Jl c3Npb24gdGhhdCBjYW4gYmUgcGFydGx5Ci0gICAgICBtYXNrZWQgYnkgY2FyZWZ1bCBzY2hlZHVs aW5nIG9mIG1vdmVzLiAgKi8KLS0gIG1fUEVOVDQgfCBtX05PQ09OQSB8IG1fUFBSTyB8IG1fQ09S RTIgfCBtX0dFTkVSSUMgfCBtX0FNREZBTTEwLAotKyAgbV9BVE9NIHwgbV9QRU5UNCB8IG1fTk9D T05BIHwgbV9QUFJPIHwgbV9DT1JFMiB8IG1fR0VORVJJQwotKyAgfCBtX0FNREZBTTEwLAotIAot ICAgLyogWDg2X1RVTkVfU1NFX1VOQUxJR05FRF9NT1ZFX09QVElNQUwgKi8KLSAgIG1fQU1ERkFN MTAsCi1AQCAtMTM2NSwxMyArMTQ0MywxMyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGluaXRpYWxf aXg4Nl90dW5lX2ZlCi0gICBtX1BQUk8gfCBtX1BFTlQ0IHwgbV9OT0NPTkEsCi0gCi0gICAvKiBY ODZfVFVORV9NRU1PUllfTUlTTUFUQ0hfU1RBTEwgKi8KLS0gIG1fQU1EX01VTFRJUExFIHwgbV9Q RU5UNCB8IG1fTk9DT05BIHwgbV9DT1JFMiB8IG1fR0VORVJJQywKLSsgIG1fQU1EX01VTFRJUExF IHwgbV9BVE9NIHwgbV9QRU5UNCB8IG1fTk9DT05BIHwgbV9DT1JFMiB8IG1fR0VORVJJQywKLSAK LSAgIC8qIFg4Nl9UVU5FX1BST0xPR1VFX1VTSU5HX01PVkUgKi8KLS0gIG1fQVRITE9OX0s4IHwg bV9QUFJPIHwgbV9DT1JFMiB8IG1fR0VORVJJQywKLSsgIG1fQVRITE9OX0s4IHwgbV9BVE9NIHwg bV9QUFJPIHwgbV9DT1JFMiB8IG1fR0VORVJJQywKLSAKLSAgIC8qIFg4Nl9UVU5FX0VQSUxPR1VF X1VTSU5HX01PVkUgKi8KLS0gIG1fQVRITE9OX0s4IHwgbV9QUFJPIHwgbV9DT1JFMiB8IG1fR0VO RVJJQywKLSsgIG1fQVRITE9OX0s4IHwgbV9BVE9NIHwgbV9QUFJPIHwgbV9DT1JFMiB8IG1fR0VO RVJJQywKLSAKLSAgIC8qIFg4Nl9UVU5FX1NISUZUMSAqLwotICAgfm1fNDg2LAotQEAgLTEzODAs MjkgKzE0NTgsMzIgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpbml0aWFsX2l4ODZfdHVuZV9mZQot ICAgbV9BTURfTVVMVElQTEUsCi0gCi0gICAvKiBYODZfVFVORV9JTlRFUl9VTklUX01PVkVTICov Ci0tICB+KG1fQU1EX01VTFRJUExFIHwgbV9HRU5FUklDKSwKLSsgIH4obV9BTURfTVVMVElQTEUg fCBtX0FUT00gfCBtX0dFTkVSSUMpLAotIAotICAgLyogWDg2X1RVTkVfSU5URVJfVU5JVF9DT05W RVJTSU9OUyAqLwotICAgfihtX0FNREZBTTEwKSwKLSAKLSAgIC8qIFg4Nl9UVU5FX0ZPVVJfSlVN UF9MSU1JVDogU29tZSBDUFUgY29yZXMgYXJlIG5vdCBhYmxlIHRvIHByZWRpY3QgbW9yZQotICAg ICAgdGhhbiA0IGJyYW5jaCBpbnN0cnVjdGlvbnMgaW4gdGhlIDE2IGJ5dGUgd2luZG93LiAgKi8K LS0gIG1fUFBSTyB8IG1fQU1EX01VTFRJUExFIHwgbV9QRU5UNCB8IG1fTk9DT05BIHwgbV9DT1JF MiB8IG1fR0VORVJJQywKLSsgIG1fQVRPTSB8IG1fUFBSTyB8IG1fQU1EX01VTFRJUExFIHwgbV9Q RU5UNCB8IG1fTk9DT05BIHwgbV9DT1JFMgotKyAgfCBtX0dFTkVSSUMsCi0gCi0gICAvKiBYODZf VFVORV9TQ0hFRFVMRSAqLwotLSAgbV9QUFJPIHwgbV9BTURfTVVMVElQTEUgfCBtX0s2X0dFT0RF IHwgbV9QRU5UIHwgbV9DT1JFMiB8IG1fR0VORVJJQywKLSsgIG1fUFBSTyB8IG1fQU1EX01VTFRJ UExFIHwgbV9LNl9HRU9ERSB8IG1fUEVOVCB8IG1fQVRPTSB8IG1fQ09SRTIKLSsgIHwgbV9HRU5F UklDLAotIAotICAgLyogWDg2X1RVTkVfVVNFX0JUICovCi0tICBtX0FNRF9NVUxUSVBMRSB8IG1f Q09SRTIgfCBtX0dFTkVSSUMsCi0rICBtX0FNRF9NVUxUSVBMRSB8IG1fQVRPTSB8IG1fQ09SRTIg fCBtX0dFTkVSSUMsCi0gCi0gICAvKiBYODZfVFVORV9VU0VfSU5DREVDICovCi0tICB+KG1fUEVO VDQgfCBtX05PQ09OQSB8IG1fR0VORVJJQyksCi0rICB+KG1fUEVOVDQgfCBtX05PQ09OQSB8IG1f R0VORVJJQyB8IG1fQVRPTSksCi0gCi0gICAvKiBYODZfVFVORV9QQURfUkVUVVJOUyAqLwotICAg bV9BTURfTVVMVElQTEUgfCBtX0NPUkUyIHwgbV9HRU5FUklDLAotIAotICAgLyogWDg2X1RVTkVf RVhUXzgwMzg3X0NPTlNUQU5UUyAqLwotLSAgbV9LNl9HRU9ERSB8IG1fQVRITE9OX0s4IHwgbV9Q RU5UNCB8IG1fTk9DT05BIHwgbV9QUFJPIHwgbV9DT1JFMiB8IG1fR0VORVJJQywKLSsgIG1fSzZf R0VPREUgfCBtX0FUSExPTl9LOCB8IG1fQVRPTSB8IG1fUEVOVDQgfCBtX05PQ09OQSB8IG1fUFBS TwotKyAgfCBtX0NPUkUyIHwgbV9HRU5FUklDLAotIAotICAgLyogWDg2X1RVTkVfU0hPUlRFTl9Y ODdfU1NFICovCi0gICB+bV9LOCwKLUBAIC0xNDQ3LDYgKzE1MjgsMTAgQEAgc3RhdGljIHVuc2ln bmVkIGludCBpbml0aWFsX2l4ODZfdHVuZV9mZQotICAgICAgd2l0aCBhIHN1YnNlcXVlbnQgY29u ZGl0aW9uYWwganVtcCBpbnN0cnVjdGlvbiBpbnRvIGEgc2luZ2xlCi0gICAgICBjb21wYXJlLWFu ZC1icmFuY2ggdW9wLiAgKi8KLSAgIG1fQ09SRTIsCi0rCi0rICAvKiBYODZfVFVORV9PUFRfQUdV OiBPcHRpbWl6ZSBmb3IgQWRkcmVzcyBHZW5lcmF0aW9uIFVuaXQuIFRoaXMgZmxhZwotKyAgICAg d2lsbCBpbXBhY3QgTEVBIGluc3RydWN0aW9uIHNlbGVjdGlvbi4gKi8KLSsgIG1fQVRPTSwKLSB9 OwotIAotIC8qIEZlYXR1cmUgdGVzdHMgYWdhaW5zdCB0aGUgdmFyaW91cyBhcmNoaXRlY3R1cmUg dmFyaWF0aW9ucy4gICovCi1AQCAtMTQ3MiwxMCArMTU1NywxMSBAQCBzdGF0aWMgdW5zaWduZWQg aW50IGluaXRpYWxfaXg4Nl9hcmNoX2ZlCi0gfTsKLSAKLSBzdGF0aWMgY29uc3QgdW5zaWduZWQg aW50IHg4Nl9hY2N1bXVsYXRlX291dGdvaW5nX2FyZ3MKLS0gID0gbV9BTURfTVVMVElQTEUgfCBt X1BFTlQ0IHwgbV9OT0NPTkEgfCBtX1BQUk8gfCBtX0NPUkUyIHwgbV9HRU5FUklDOwotKyAgPSBt X0FNRF9NVUxUSVBMRSB8IG1fQVRPTSB8IG1fUEVOVDQgfCBtX05PQ09OQSB8IG1fUFBSTyB8IG1f Q09SRTIKLSsgICAgfCBtX0dFTkVSSUM7Ci0gCi0gc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCB4 ODZfYXJjaF9hbHdheXNfZmFuY3lfbWF0aF8zODcKLS0gID0gbV9QRU5UIHwgbV9QUFJPIHwgbV9B TURfTVVMVElQTEUgfCBtX1BFTlQ0Ci0rICA9IG1fUEVOVCB8IG1fQVRPTSB8IG1fUFBSTyB8IG1f QU1EX01VTFRJUExFIHwgbV9QRU5UNAotICAgICB8IG1fTk9DT05BIHwgbV9DT1JFMiB8IG1fR0VO RVJJQzsKLSAKLSBzdGF0aWMgZW51bSBzdHJpbmdvcF9hbGcgc3RyaW5nb3BfYWxnID0gbm9fc3Ry aW5nb3A7Ci1AQCAtMTk1Myw3ICsyMDM5LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwdHQgcHJv Y2Vzc29yX3RhcmdldAotICAgeyZjb3JlMl9jb3N0LCAxNiwgMTAsIDE2LCAxMCwgMTZ9LAotICAg eyZnZW5lcmljMzJfY29zdCwgMTYsIDcsIDE2LCA3LCAxNn0sCi0gICB7JmdlbmVyaWM2NF9jb3N0 LCAxNiwgMTAsIDE2LCAxMCwgMTZ9LAotLSAgeyZhbWRmYW0xMF9jb3N0LCAzMiwgMjQsIDMyLCA3 LCAzMn0KLSsgIHsmYW1kZmFtMTBfY29zdCwgMzIsIDI0LCAzMiwgNywgMzJ9LAotKyAgeyZhdG9t X2Nvc3QsIDE2LCA3LCAxNiwgNywgMTZ9Ci0gfTsKLSAKLSBzdGF0aWMgY29uc3QgY2hhciAqY29u c3QgY3B1X25hbWVzW1RBUkdFVF9DUFVfREVGQVVMVF9tYXhdID0KLUBAIC0xOTcxLDYgKzIwNTgs NyBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgY3B1X25hbWVzW1RBUkdFCi0gICAicHJlc2Nv dHQiLAotICAgIm5vY29uYSIsCi0gICAiY29yZTIiLAotKyAgImF0b20iLAotICAgImdlb2RlIiwK LSAgICJrNiIsCi0gICAiazYtMiIsCi1AQCAtMjUyOSw2ICsyNjE3LDkgQEAgb3ZlcnJpZGVfb3B0 aW9ucyAoYm9vbCBtYWluX2FyZ3NfcCkKLSAgICAgICB7ImNvcmUyIiwgUFJPQ0VTU09SX0NPUkUy LCBDUFVfQ09SRTIsCi0gCVBUQV82NEJJVCB8IFBUQV9NTVggfCBQVEFfU1NFIHwgUFRBX1NTRTIg fCBQVEFfU1NFMwotIAl8IFBUQV9TU1NFMyB8IFBUQV9DWDE2fSwKLSsgICAgICB7ImF0b20iLCBQ Uk9DRVNTT1JfQVRPTSwgQ1BVX0FUT00sCi0rCVBUQV82NEJJVCB8IFBUQV9NTVggfCBQVEFfU1NF IHwgUFRBX1NTRTIgfCBQVEFfU1NFMwotKwl8IFBUQV9TU1NFMyB8IFBUQV9DWDE2fSwKLSAgICAg ICB7Imdlb2RlIiwgUFJPQ0VTU09SX0dFT0RFLCBDUFVfR0VPREUsCi0gCVBUQV9NTVggfCBQVEFf M0ROT1cgfCBQVEFfM0ROT1dfQSB8UFRBX1BSRUZFVENIX1NTRX0sCi0gICAgICAgeyJrNiIsIFBS T0NFU1NPUl9LNiwgQ1BVX0s2LCBQVEFfTU1YfSwKLUBAIC0xMjkwMyw2ICsxMjk5NCwyNjMgQEAg aXg4Nl9leHBhbmRfdW5hcnlfb3BlcmF0b3IgKGVudW0gcnR4X2NvZAotICAgICBlbWl0X21vdmVf aW5zbiAob3BlcmFuZHNbMF0sIGRzdCk7Ci0gfQotIAotKyNkZWZpbmUgTEVBX1NFQVJDSF9USFJF U0hPTEQgMTIKLSsKLSsvKiBSZWFjaCBub24tYWd1IGRlZmluaXRpb24gb2Ygb3AxIGFuZCBvcDIg aW4gaW5zbidzIGJhc2ljIGJsb2NrLiAKLSsgICBTZWFyY2ggYmFja3dhcmQgdW50aWwgMS4gcGFz c2VkIExFQV9TRUFSQ0hfVEhSRVNIT0xEIGluc3RydWN0aW9ucywgCi0rICAgb3IgMi4gcmVhY2gg QkIgYm91bmRhcnksIG9yIHJlYWNoIGFndSBkZWZpbml0aW9uLiAKLSsgICBSZXR1cm5zIHRoZSBk aXN0YW5jZSBiZXR3ZWVuIHRoZSBub24tYWd1IGRlZmluaXRpb24gcG9pbnQgYW5kIGluc24uCi0r ICAgSWYgbm8gZGVmaW5pdGlvbiBwb2ludCwgcmV0dXJucyAtMSAKLSsgICBUT0RPOiBDdXJyZW50 bHkgd2UgaGF2ZSBubyB3YXkgdG8gZGlzdGluZ3Vpc2ggaWYgZGVmaW5pdGlvbiBpbnNuIGlzIGEg TEVBLiAKLSsgICBXZSBqdXN0IGFzc3VtZSBhbGwgZGVmaW5pdGlvbnMgYXJlIG5vbi1sZWEuICov Ci0rc3RhdGljIGludAotK2Rpc3RhbmNlX25vbl9hZ3VfZGVmaW5lIChydHggb3AxLCBydHggb3Ay LCBydHggaW5zbikKLSt7Ci0rICBydHggcmVnX29wMSA9IFJFR19QIChvcDEpID8gb3AxIDogTlVM TDsKLSsgIHJ0eCByZWdfb3AyID0gUkVHX1AgKG9wMikgPyBvcDIgOiBOVUxMOwotKyAgYmFzaWNf YmxvY2sgYmIgPSBCTE9DS19GT1JfSU5TTiAoaW5zbik7Ci0rICBpbnQgZGlzdGFuY2UgPSAwOwot KwotKyAgaWYgKGluc24gIT0gQkJfSEVBRCAoYmIpKQotKyAgICB7Ci0rCi0rICAgICAgcnR4IHBy ZXYgPSBQUkVWX0lOU04gKGluc24pOwotKyAgICAgIHdoaWxlIChwcmV2ICYmIGRpc3RhbmNlIDwg TEVBX1NFQVJDSF9USFJFU0hPTEQpCi0rCXsKLSsJICBpZiAoSU5TTl9QIChwcmV2KSkKLSsJICAg IHsKLSsJICAgICAgZGlzdGFuY2UrKzsKLSsJICAgICAgaWYgKChyZWdfb3AxICYmIHJlZ19zZXRf cCAocmVnX29wMSwgcHJldikpCi0rCQkgIHx8IChyZWdfb3AyICYmIHJlZ19zZXRfcCAocmVnX29w MiwgcHJldikpKQotKwkJcmV0dXJuIGRpc3RhbmNlIDsKLSsJICAgIH0KLSsJICBpZiAocHJldiA9 PSBCQl9IRUFEIChiYikpCi0rCSAgICBicmVhazsKLSsJICBwcmV2ID0gUFJFVl9JTlNOIChwcmV2 KTsKLSsJfQotKyAgICB9Ci0rICAKLSsgIGlmIChkaXN0YW5jZSA8IExFQV9TRUFSQ0hfVEhSRVNI T0xEKQotKyAgICB7Ci0rICAgICAgZWRnZSBlOwotKyAgICAgIGVkZ2VfaXRlcmF0b3IgZWk7Ci0r ICAgICAgYm9vbCBzaW1wbGVfbG9vcCA9IGZhbHNlOwotKyAgCi0rICAgICAgRk9SX0VBQ0hfRURH RSAoZSwgZWksIGJiLT5wcmVkcykKLSsJaWYgKGUtPnNyYyA9PSBiYikKLSsJICB7Ci0rCSAgICBz aW1wbGVfbG9vcCA9IHRydWU7Ci0rCSAgICBicmVhazsKLSsJICB9Ci0rICAKLSsgICAgICBpZiAo c2ltcGxlX2xvb3ApCi0rCXsKLSsJICBydHggcHJldiA9IEJCX0VORCAoYmIpOwotKwkgIHdoaWxl IChwcmV2Ci0rCQkgJiYgcHJldiAhPSBpbnNuCi0rCQkgJiYgZGlzdGFuY2UgPCBMRUFfU0VBUkNI X1RIUkVTSE9MRCkKLSsJICAgIHsKLSsJICAgICAgaWYgKElOU05fUCAocHJldikpCi0rCQl7Ci0r CQkgIGRpc3RhbmNlKys7Ci0rCQkgIGlmICgocmVnX29wMSAmJiByZWdfc2V0X3AgKHJlZ19vcDEs IHByZXYpKQotKwkJICAgICAgfHwgKHJlZ19vcDIgJiYgcmVnX3NldF9wIChyZWdfb3AyLCBwcmV2 KSkpCi0rCQkgICAgcmV0dXJuIGRpc3RhbmNlOwotKwkJfQotKwkgICAgICBwcmV2ID0gUFJFVl9J TlNOIChwcmV2KTsKLSsJICAgIH0KLSsJfQotKyAgICB9Ci0rCi0rICByZXR1cm4gLTE7Ci0rfQot KwotKy8qIFJldHVybiB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGlzIGluc24gYW5kIHRoZSBuZXh0 IGluc24gdGhhdCB1c2VzIAotKyAgIHJlc3VsdCBvZiB0aGlzIGluc24gYXMgbWVtb3J5IGFkZHJl c3MuIAotKyAgIFJldHVybiAtMSBpZiBub3QgZm91bmQgc3VjaCBhIHVzZSB3aXRoaW4gTEVBX1NF QVJDSF9USFJFU0hPTEQuICovCi0rc3RhdGljIGludAotK2Rpc3RhbmNlX2FndV91c2UgKHJ0eCBv cDAsIHJ0eCBpbnNuKQotK3sKLSsgIGJhc2ljX2Jsb2NrIGJiID0gQkxPQ0tfRk9SX0lOU04gKGlu c24pOwotKyAgaW50IGRpc3RhbmNlID0gMDsKLSsKLSsgIGlmIChpbnNuICE9IEJCX0VORChiYikp Ci0rICAgIHsKLSsgICAgICBydHggbmV4dCA9IE5FWFRfSU5TTiAoaW5zbik7Ci0rCi0rICAgICAg d2hpbGUgKG5leHQgJiYgZGlzdGFuY2UgPCBMRUFfU0VBUkNIX1RIUkVTSE9MRCkKLSsJewotKwkg IGlmIChJTlNOX1AgKG5leHQpKQotKwkgICAgewotKwkgICAgICBkaXN0YW5jZSsrOwotKwkgICAg ICBpZiAocmVnX21lbnRpb25lZF9ieV9tZW1fcCAob3AwLCBuZXh0KSkKLSsJCXJldHVybiBkaXN0 YW5jZTsKLSsJICAgICAgaWYgKHJlZ19zZXRfcCAob3AwLCBuZXh0KSkKLSsJCXJldHVybiAtMTsK LSsJICAgIH0KLSsJICBpZiAobmV4dCA9PSBCQl9FTkQgKGJiKSkKLSsJICAgIGJyZWFrOwotKwkg IG5leHQgPSBORVhUX0lOU04gKG5leHQpOwotKwl9Ci0rICAgIH0KLSsKLSsgIGlmIChkaXN0YW5j ZSA8IExFQV9TRUFSQ0hfVEhSRVNIT0xEKQotKyAgICB7Ci0rICAgICAgZWRnZSBlOwotKyAgICAg IGVkZ2VfaXRlcmF0b3IgZWk7Ci0rICAgICAgYm9vbCBzaW1wbGVfbG9vcCA9IGZhbHNlOwotKyAg Ci0rICAgICAgRk9SX0VBQ0hfRURHRSAoZSwgZWksIGJiLT5zdWNjcykKLSsgICAgICAgIGlmIChl LT5kZXN0ID09IGJiKQotKwkgIHsKLSsJICAgIHNpbXBsZV9sb29wID0gdHJ1ZTsKLSsJICAgIGJy ZWFrOwotKwkgIH0KLSsgIAotKyAgICAgIGlmIChzaW1wbGVfbG9vcCkKLSsJewotKwkgIHJ0eCBu ZXh0ID0gQkJfSEVBRCAoYmIpOwotKwkgIHdoaWxlIChuZXh0ICYmIGRpc3RhbmNlIDwgTEVBX1NF QVJDSF9USFJFU0hPTEQpCi0rCSAgICB7Ci0rCSAgICAgIGlmIChuZXh0ID09IGluc24pCi0rCQli cmVhazsKLSsJICAgICAgaWYgKElOU05fUCAobmV4dCkpCi0rCQl7Ci0rCQkgIGRpc3RhbmNlKys7 Ci0rCQkgIGlmIChyZWdfbWVudGlvbmVkX2J5X21lbV9wIChvcDAsIG5leHQpKQotKwkJICAgIHJl dHVybiBkaXN0YW5jZTsKLSsJCSAgaWYgKHJlZ19zZXRfcCAob3AwLCBuZXh0KSkKLSsJCSAgICBy ZXR1cm4gLTE7Ci0rCQl9Ci0rCSAgICAgIG5leHQgPSBORVhUX0lOU04gKG5leHQpOwotKwkgICAg fQotKwl9Ci0rICAgIH0gIAotKwotKyAgcmV0dXJuIC0xOwotK30KLSsKLSsvKiBEZWZpbmUgdGhp cyBtYWNybyB0byB0dW5lIExFQSBwcmlvcml0eSB2cyBBREQsIGl0IHRha2UgZWZmZWN0IHdoZW4K LSsgICB0aGVyZSBpcyBhIGRpbGVtbWEgb2YgY2hvaWNpbmcgTEVBIG9yIEFERAotKyAgIE5lZ2F0 aXZlIHZhbHVlOiBBREQgaXMgbW9yZSBwcmVmZXJyZWQgdGhhbiBMRUEKLSsgICBaZXJvOiBOZXRy dWFsCi0rICAgUG9zaXRpdmUgdmFsdWU6IExFQSBpcyBtb3JlIHByZWZlcnJlZCB0aGFuIEFERCov Ci0rI2RlZmluZSBJWDg2X0xFQV9QUklPUklUWSAyCi0rCi0rLyogUmV0dXJuIHRydWUgaWYgaXQg aXMgb2sgdG8gb3B0aW1pemUgYW4gQUREIG9wZXJhdGlvbiB0byBMRUEKLSsgICBvcGVyYXRpb24g dG8gYXZvaWQgZmxhZyByZWdpc3RlciBjb25zdW1hdGlvbi4gIEZvciB0aGUgcHJvY2Vzc29ycwot KyAgIGxpa2UgQVRPTSwgaWYgdGhlIGRlc3RpbmF0aW9uIHJlZ2lzdGVyIG9mIExFQSBob2xkcyBh biBhY3R1YWwKLSsgICBhZGRyZXNzIHdoaWNoIHdpbGwgYmUgdXNlZCBzb29uLCBMRUEgaXMgYmV0 dGVyIGFuZCBvdGhlcndpc2UgQURECi0rICAgaXMgYmV0dGVyLiAgKi8KLSsKLStib29sCi0raXg4 Nl9sZWFfZm9yX2FkZF9vayAoZW51bSBydHhfY29kZSBjb2RlIEFUVFJJQlVURV9VTlVTRUQsCi0r ICAgICAgICAgICAgICAgICAgICAgcnR4IGluc24sCi0rICAgICAgICAgICAgICAgICAgICAgcnR4 IG9wZXJhbmRzW10pCi0rewotKyAgZ2NjX2Fzc2VydCAoUkVHX1AgKG9wZXJhbmRzWzBdKSk7Ci0r ICBnY2NfYXNzZXJ0IChvcGVyYW5kc1sxXSAmJiBvcGVyYW5kc1syXSk7Ci0rCi0rICBpZiAoIVRB UkdFVF9PUFRfQUdVIHx8IG9wdGltaXplX2Z1bmN0aW9uX2Zvcl9zaXplX3AgKGNmdW4pKQotKyAg ICB7Ci0rICAgICAgaWYgKHRydWVfcmVnbnVtIChvcGVyYW5kc1swXSkgIT0gdHJ1ZV9yZWdudW0g KG9wZXJhbmRzWzFdKSkKLSsgICAgICAgIHJldHVybiB0cnVlOwotKyAgICAgIGVsc2UKLSsgICAg ICAgIHJldHVybiBmYWxzZTsKLSsgICAgfQotKwotKyAgLyogSWYgYSA9IGIgKyBjLCAoYSE9YiAm JiBhIT1jKSwgbXVzdCB1c2UgbGVhIGZvcm0uICovCi0rICBpZiAodHJ1ZV9yZWdudW0gKG9wZXJh bmRzWzBdKSAhPSB0cnVlX3JlZ251bSAob3BlcmFuZHNbMV0pCi0rICAgICAgJiYgdHJ1ZV9yZWdu dW0gKG9wZXJhbmRzWzBdKSAhPSB0cnVlX3JlZ251bSAob3BlcmFuZHNbMl0pKQotKyAgICByZXR1 cm4gdHJ1ZTsKLSsgIGVsc2UgICAgCi0rICAgIHsKLSsgICAgICBpbnQgZGlzdF9kZWZpbmUsIGRp c3RfdXNlOwotKyAgICAgIGRpc3RfZGVmaW5lID0gZGlzdGFuY2Vfbm9uX2FndV9kZWZpbmUgKG9w ZXJhbmRzWzFdLAotKwkJCQkJICAgICBvcGVyYW5kc1syXSwgaW5zbik7Ci0rICAgICAgaWYgKGRp c3RfZGVmaW5lIDw9IDApCi0rICAgICAgICByZXR1cm4gdHJ1ZTsKLSsKLSsgICAgICAvKiBJZiB0 aGlzIGluc24gaGFzIGJvdGggYmFja3dhcmQgbm9uLWFndSBkZXBlbmRlbmNlIGFuZCBmb3J3YXJk Ci0rICAgICAgICAgYWd1IGRlcGVuZGVuY2UsIHRoZSBvbmUgd2l0aCBzaG9ydCBkaXN0YW5jZSB0 YWtlIGVmZmVjdC4gKi8KLSsgICAgICBkaXN0X3VzZSA9IGRpc3RhbmNlX2FndV91c2UgKG9wZXJh bmRzWzBdLCBpbnNuKTsKLSsgICAgICBpZiAoZGlzdF91c2UgPD0gMAotKwkgIHx8IChkaXN0X2Rl ZmluZSArIElYODZfTEVBX1BSSU9SSVRZKSA8IGRpc3RfdXNlKQotKyAgICAgICAgcmV0dXJuIGZh bHNlOwotKwotKyAgICAgIHJldHVybiB0cnVlOwotKyAgICB9Ci0rfQotKwotKy8qIFJldHVybiB0 cnVlIGlmIGRlc3RpbmF0aW9uIHJlZyBvZiBTRVRfSU5TTiBpcyBzaGlmdCBjb3VudCBvZgotKyAg IFVTRV9JTlNOLiAgKi8KLSsKLStib29sCi0raXg4Nl9kZXBfYnlfc2hpZnRfY291bnQgKGNvbnN0 X3J0eCBzZXRfaW5zbiwgY29uc3RfcnR4IHVzZV9pbnNuKQotK3sKLSsgIHJ0eCBzZXRfcGF0dGVy biA9IFBBVFRFUk4gKHNldF9pbnNuKTsKLSsgIHJ0eCBzZXRfZGVzdDsKLSsgIHJ0eCBzaGlmdF9y dHg7Ci0rICBydHggdXNlX3BhdHRlcm47Ci0rCi0rICAvKiBSZXRyaWV2ZSBkZXN0aW5hdGlvbiBv ZiBzZXRfaW5zbiAqLwotKyAgc3dpdGNoIChHRVRfQ09ERSAoc2V0X3BhdHRlcm4pKQotKyAgICB7 Ci0rICAgIGNhc2UgU0VUOgotKyAgICAgIHNldF9kZXN0ID0gU0VUX0RFU1QgKHNldF9wYXR0ZXJu KTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBQQVJBTExFTDoKLSsgICAgICBzZXRfcGF0dGVy biA9IFhWRUNFWFAgKHNldF9wYXR0ZXJuLCAwLCAwKTsKLSsgICAgICBpZiAoR0VUX0NPREUgKHNl dF9wYXR0ZXJuICkgPT0gU0VUKQotKwl7Ci0rCSAgc2V0X2Rlc3QgPSBTRVRfREVTVCAoc2V0X3Bh dHRlcm4pOwotKwkgIGJyZWFrOwotKwl9Ci0rICAgIGRlZmF1bHQ6Ci0rICAgICAgc2V0X2Rlc3Qg PSBOVUxMOwotKyAgICAgIGJyZWFrOwotKyAgICB9Ci0rICBpZiAoIXNldF9kZXN0IHx8ICFSRUdf UCAoc2V0X2Rlc3QpKQotKyAgICByZXR1cm4gZmFsc2U7Ci0rCi0rICAvKiBSZXRyaWV2ZSBzaGlm dCBjb3VudCBvZiB1c2VfaW5zbiAqLwotKyAgdXNlX3BhdHRlcm4gPSBQQVRURVJOICh1c2VfaW5z bik7Ci0rICBzd2l0Y2ggKEdFVF9DT0RFICh1c2VfcGF0dGVybikpCi0rICAgIHsKLSsgICAgY2Fz ZSBTRVQ6Ci0rICAgICAgc2hpZnRfcnR4ID0gWEVYUCAodXNlX3BhdHRlcm4sIDEpOwotKyAgICAg IGJyZWFrOwotKyAgICBjYXNlIFBBUkFMTEVMOgotKyAgICAgIHNldF9wYXR0ZXJuID0gWFZFQ0VY UCAodXNlX3BhdHRlcm4sIDAsIDApOwotKyAgICAgIGlmIChHRVRfQ09ERSAoc2V0X3BhdHRlcm4p ID09IFNFVCkKLSsJewotKwkgIHNoaWZ0X3J0eCA9IFhFWFAgKHNldF9wYXR0ZXJuLCAxKTsKLSsJ ICBicmVhazsKLSsJfQotKyAgICBkZWZhdWx0OgotKyAgICAgIHNoaWZ0X3J0eCA9IE5VTEw7Ci0r ICAgICAgYnJlYWs7Ci0rICAgIH0KLSsKLSsgIGlmIChzaGlmdF9ydHggCi0rICAgICAgJiYgKEdF VF9DT0RFIChzaGlmdF9ydHgpID09IEFTSElGVAotKwkgIHx8IEdFVF9DT0RFIChzaGlmdF9ydHgp ID09IExTSElGVFJUCi0rCSAgfHwgR0VUX0NPREUgKHNoaWZ0X3J0eCkgPT0gQVNISUZUUlQKLSsJ ICB8fCBHRVRfQ09ERSAoc2hpZnRfcnR4KSA9PSBST1RBVEUKLSsJICB8fCBHRVRfQ09ERSAoc2hp ZnRfcnR4KSA9PSBST1RBVEVSVCkpCi0rICAgIHsKLSsgICAgICBydHggc2hpZnRfY291bnQgPSBY RVhQIChzaGlmdF9ydHgsIDEpOwotKyAgICAgIGdjY19hc3NlcnQgKHNoaWZ0X2NvdW50KTsKLSsK LSsgICAgICAvKiBSZXR1cm4gdHJ1ZSBpZiBzaGlmdCBjb3VudCBpcyBkZXN0IG9mIHNldF9pbnNu ICovCi0rICAgICAgaWYgKFJFR19QIChzaGlmdF9jb3VudCkKLSsJICAmJiB0cnVlX3JlZ251bSAo c2V0X2Rlc3QpID09IHRydWVfcmVnbnVtIChzaGlmdF9jb3VudCkpCi0rCXJldHVybiB0cnVlOwot KyAgICB9Ci0rCi0rICByZXR1cm4gZmFsc2U7Ci0rfQotKwotIC8qIFJldHVybiBUUlVFIG9yIEZB TFNFIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSB1bmFyeSBvcGVyYXRvciBtZWV0cyB0aGUKLSAg ICBhcHByb3ByaWF0ZSBjb25zdHJhaW50cy4gICovCi0gCi1AQCAtMTkwMjIsNiArMTkzNzAsNyBA QCBpeDg2X2lzc3VlX3JhdGUgKHZvaWQpCi0gICBzd2l0Y2ggKGl4ODZfdHVuZSkKLSAgICAgewot ICAgICBjYXNlIFBST0NFU1NPUl9QRU5USVVNOgotKyAgICBjYXNlIFBST0NFU1NPUl9BVE9NOgot ICAgICBjYXNlIFBST0NFU1NPUl9LNjoKLSAgICAgICByZXR1cm4gMjsKLSAKLUBAIC0xOTA4OCw0 MSArMTk0MzcsMjEgQEAgaXg4Nl9mbGFnc19kZXBlbmRlbnQgKHJ0eCBpbnNuLCBydHggZGVwXwot ICAgcmV0dXJuIDE7Ci0gfQotIAotLS8qIEEgc3Vicm91dGluZSBvZiBpeDg2X2FkanVzdF9jb3N0 IC0tIHJldHVybiB0cnVlIGlmZiBJTlNOIGhhcyBhIG1lbW9yeQotLSAgIGFkZHJlc3Mgd2l0aCBv cGVyYW5kcyBzZXQgYnkgREVQX0lOU04uICAqLwotKy8qIFJldHVybiB0cnVlIGlmZiBVU0VfSU5T TiBoYXMgYSBtZW1vcnkgYWRkcmVzcyB3aXRoIG9wZXJhbmRzIHNldCBieQotKyAgIFNFVF9JTlNO LiAgKi8KLSAKLS1zdGF0aWMgaW50Ci0taXg4Nl9hZ2lfZGVwZW5kZW50IChydHggaW5zbiwgcnR4 IGRlcF9pbnNuLCBlbnVtIGF0dHJfdHlwZSBpbnNuX3R5cGUpCi0rYm9vbAotK2l4ODZfYWdpX2Rl cGVuZGVudCAocnR4IHNldF9pbnNuLCBydHggdXNlX2luc24pCi0gewotLSAgcnR4IGFkZHI7Ci0t Ci0tICBpZiAoaW5zbl90eXBlID09IFRZUEVfTEVBCi0tICAgICAgJiYgVEFSR0VUX1BFTlRJVU0p Ci0tICAgIHsKLS0gICAgICBhZGRyID0gUEFUVEVSTiAoaW5zbik7Ci0tCi0tICAgICAgaWYgKEdF VF9DT0RFIChhZGRyKSA9PSBQQVJBTExFTCkKLS0JYWRkciA9IFhWRUNFWFAgKGFkZHIsIDAsIDAp OwotLQotLSAgICAgIGdjY19hc3NlcnQgKEdFVF9DT0RFIChhZGRyKSA9PSBTRVQpOwotLQotLSAg ICAgIGFkZHIgPSBTRVRfU1JDIChhZGRyKTsKLS0gICAgfQotLSAgZWxzZQotLSAgICB7Ci0tICAg ICAgaW50IGk7Ci0tICAgICAgZXh0cmFjdF9pbnNuX2NhY2hlZCAoaW5zbik7Ci0tICAgICAgZm9y IChpID0gcmVjb2dfZGF0YS5uX29wZXJhbmRzIC0gMTsgaSA+PSAwOyAtLWkpCi0tCWlmIChNRU1f UCAocmVjb2dfZGF0YS5vcGVyYW5kW2ldKSkKLS0JICB7Ci0tCSAgICBhZGRyID0gWEVYUCAocmVj b2dfZGF0YS5vcGVyYW5kW2ldLCAwKTsKLS0JICAgIGdvdG8gZm91bmQ7Ci0tCSAgfQotLSAgICAg IHJldHVybiAwOwotLSAgICBmb3VuZDo7Ci0tICAgIH0KLS0KLS0gIHJldHVybiBtb2RpZmllZF9p bl9wIChhZGRyLCBkZXBfaW5zbik7Ci0rICBpbnQgaTsKLSsgIGV4dHJhY3RfaW5zbl9jYWNoZWQg KHVzZV9pbnNuKTsKLSsgIGZvciAoaSA9IHJlY29nX2RhdGEubl9vcGVyYW5kcyAtIDE7IGkgPj0g MDsgLS1pKQotKyAgICBpZiAoTUVNX1AgKHJlY29nX2RhdGEub3BlcmFuZFtpXSkpCi0rICAgICAg ewotKwlydHggYWRkciA9IFhFWFAgKHJlY29nX2RhdGEub3BlcmFuZFtpXSwgMCk7Ci0rCXJldHVy biBtb2RpZmllZF9pbl9wIChhZGRyLCBzZXRfaW5zbikgIT0gMDsKLSsgICAgICB9Ci0rICByZXR1 cm4gZmFsc2U7Ci0gfQotIAotIHN0YXRpYyBpbnQKLUBAIC0xOTE1MCw4ICsxOTQ3OSwxOSBAQCBp eDg2X2FkanVzdF9jb3N0IChydHggaW5zbiwgcnR4IGxpbmssIHJ0Ci0gICAgIHsKLSAgICAgY2Fz ZSBQUk9DRVNTT1JfUEVOVElVTToKLSAgICAgICAvKiBBZGRyZXNzIEdlbmVyYXRpb24gSW50ZXJs b2NrIGFkZHMgYSBjeWNsZSBvZiBsYXRlbmN5LiAgKi8KLS0gICAgICBpZiAoaXg4Nl9hZ2lfZGVw ZW5kZW50IChpbnNuLCBkZXBfaW5zbiwgaW5zbl90eXBlKSkKLS0JY29zdCArPSAxOwotKyAgICAg IGlmIChpbnNuX3R5cGUgPT0gVFlQRV9MRUEpCi0rCXsKLSsJICBydHggYWRkciA9IFBBVFRFUk4g KGluc24pOwotKwotKwkgIGlmIChHRVRfQ09ERSAoYWRkcikgPT0gUEFSQUxMRUwpCi0rCSAgICBh ZGRyID0gWFZFQ0VYUCAoYWRkciwgMCwgMCk7Ci0rCi0rCSAgZ2NjX2Fzc2VydCAoR0VUX0NPREUg KGFkZHIpID09IFNFVCk7Ci0rCi0rCSAgYWRkciA9IFNFVF9TUkMgKGFkZHIpOwotKwkgIGlmICht b2RpZmllZF9pbl9wIChhZGRyLCBkZXBfaW5zbikpCi0rCSAgICBjb3N0ICs9IDE7Ci0rCX0KLSAK LSAgICAgICAvKiA/Pz8gQ29tcGFyZXMgcGFpciB3aXRoIGp1bXAvc2V0Y2MuICAqLwotICAgICAg IGlmIChpeDg2X2ZsYWdzX2RlcGVuZGVudCAoaW5zbiwgZGVwX2luc24sIGluc25fdHlwZSkpCi1A QCAtMTkxNjAsNyArMTk1MDAsNyBAQCBpeDg2X2FkanVzdF9jb3N0IChydHggaW5zbiwgcnR4IGxp bmssIHJ0Ci0gICAgICAgLyogRmxvYXRpbmcgcG9pbnQgc3RvcmVzIHJlcXVpcmUgdmFsdWUgdG8g YmUgcmVhZHkgb25lIGN5Y2xlIGVhcmxpZXIuICAqLwotICAgICAgIGlmIChpbnNuX3R5cGUgPT0g VFlQRV9GTU9WCi0gCSAgJiYgZ2V0X2F0dHJfbWVtb3J5IChpbnNuKSA9PSBNRU1PUllfU1RPUkUK LS0JICAmJiAhaXg4Nl9hZ2lfZGVwZW5kZW50IChpbnNuLCBkZXBfaW5zbiwgaW5zbl90eXBlKSkK LSsJICAmJiAhaXg4Nl9hZ2lfZGVwZW5kZW50IChkZXBfaW5zbiwgaW5zbikpCi0gCWNvc3QgKz0g MTsKLSAgICAgICBicmVhazsKLSAKLUBAIC0xOTE4Myw3ICsxOTUyMyw3IEBAIGl4ODZfYWRqdXN0 X2Nvc3QgKHJ0eCBpbnNuLCBydHggbGluaywgcnQKLSAJIGluIHBhcmFsbGVsIHdpdGggcHJldmlv dXMgaW5zdHJ1Y3Rpb24gaW4gY2FzZQotIAkgcHJldmlvdXMgaW5zdHJ1Y3Rpb24gaXMgbm90IG5l ZWRlZCB0byBjb21wdXRlIHRoZSBhZGRyZXNzLiAgKi8KLSAgICAgICBpZiAoKG1lbW9yeSA9PSBN RU1PUllfTE9BRCB8fCBtZW1vcnkgPT0gTUVNT1JZX0JPVEgpCi0tCSAgJiYgIWl4ODZfYWdpX2Rl cGVuZGVudCAoaW5zbiwgZGVwX2luc24sIGluc25fdHlwZSkpCi0rCSAgJiYgIWl4ODZfYWdpX2Rl cGVuZGVudCAoZGVwX2luc24sIGluc24pKQotIAl7Ci0gCSAgLyogQ2xhaW0gbW92ZXMgdG8gdGFr ZSBvbmUgY3ljbGUsIGFzIGNvcmUgY2FuIGlzc3VlIG9uZSBsb2FkCi0gCSAgICAgYXQgdGltZSBh bmQgdGhlIG5leHQgbG9hZCBjYW4gc3RhcnQgY3ljbGUgbGF0ZXIuICAqLwotQEAgLTE5MjEyLDcg KzE5NTUyLDcgQEAgaXg4Nl9hZGp1c3RfY29zdCAocnR4IGluc24sIHJ0eCBsaW5rLCBydAotIAkg aW4gcGFyYWxsZWwgd2l0aCBwcmV2aW91cyBpbnN0cnVjdGlvbiBpbiBjYXNlCi0gCSBwcmV2aW91 cyBpbnN0cnVjdGlvbiBpcyBub3QgbmVlZGVkIHRvIGNvbXB1dGUgdGhlIGFkZHJlc3MuICAqLwot ICAgICAgIGlmICgobWVtb3J5ID09IE1FTU9SWV9MT0FEIHx8IG1lbW9yeSA9PSBNRU1PUllfQk9U SCkKLS0JICAmJiAhaXg4Nl9hZ2lfZGVwZW5kZW50IChpbnNuLCBkZXBfaW5zbiwgaW5zbl90eXBl KSkKLSsJICAmJiAhaXg4Nl9hZ2lfZGVwZW5kZW50IChkZXBfaW5zbiwgaW5zbikpCi0gCXsKLSAJ ICAvKiBDbGFpbSBtb3ZlcyB0byB0YWtlIG9uZSBjeWNsZSwgYXMgY29yZSBjYW4gaXNzdWUgb25l IGxvYWQKLSAJICAgICBhdCB0aW1lIGFuZCB0aGUgbmV4dCBsb2FkIGNhbiBzdGFydCBjeWNsZSBs YXRlci4gICovCi1AQCAtMTkyMjksNiArMTk1NjksNyBAQCBpeDg2X2FkanVzdF9jb3N0IChydHgg aW5zbiwgcnR4IGxpbmssIHJ0Ci0gICAgIGNhc2UgUFJPQ0VTU09SX0FUSExPTjoKLSAgICAgY2Fz ZSBQUk9DRVNTT1JfSzg6Ci0gICAgIGNhc2UgUFJPQ0VTU09SX0FNREZBTTEwOgotKyAgICBjYXNl IFBST0NFU1NPUl9BVE9NOgotICAgICBjYXNlIFBST0NFU1NPUl9HRU5FUklDMzI6Ci0gICAgIGNh c2UgUFJPQ0VTU09SX0dFTkVSSUM2NDoKLSAgICAgICBtZW1vcnkgPSBnZXRfYXR0cl9tZW1vcnkg KGluc24pOwotQEAgLTE5MjM3LDcgKzE5NTc4LDcgQEAgaXg4Nl9hZGp1c3RfY29zdCAocnR4IGlu c24sIHJ0eCBsaW5rLCBydAotIAkgaW4gcGFyYWxsZWwgd2l0aCBwcmV2aW91cyBpbnN0cnVjdGlv biBpbiBjYXNlCi0gCSBwcmV2aW91cyBpbnN0cnVjdGlvbiBpcyBub3QgbmVlZGVkIHRvIGNvbXB1 dGUgdGhlIGFkZHJlc3MuICAqLwotICAgICAgIGlmICgobWVtb3J5ID09IE1FTU9SWV9MT0FEIHx8 IG1lbW9yeSA9PSBNRU1PUllfQk9USCkKLS0JICAmJiAhaXg4Nl9hZ2lfZGVwZW5kZW50IChpbnNu LCBkZXBfaW5zbiwgaW5zbl90eXBlKSkKLSsJICAmJiAhaXg4Nl9hZ2lfZGVwZW5kZW50IChkZXBf aW5zbiwgaW5zbikpCi0gCXsKLSAJICBlbnVtIGF0dHJfdW5pdCB1bml0ID0gZ2V0X2F0dHJfdW5p dCAoaW5zbik7Ci0gCSAgaW50IGxvYWRjb3N0ID0gMzsKCmRpZmYgLS1naXQgYS9nY2M0NC1idWls dGluLW9iamVjdC1zaXplLnBhdGNoIGIvZ2NjNDQtYnVpbHRpbi1vYmplY3Qtc2l6ZS5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2RlMDNhMS4uMDAwMDAwMAotLS0gYS9nY2M0 NC1idWlsdGluLW9iamVjdC1zaXplLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzY0ICswLDAg QEAKLTIwMDktMDYtMDggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0JKiB0 cmVlLW9iamVjdC1zaXplLmMgKGFkZHJfb2JqZWN0X3NpemUpOiBBZGQgT1NJIGFyZ3VtZW50Lgot CUhhbmRsZSBhbHNvIElORElSRUNUX1JFRiB3aXRoIFNTQV9OQU1FIGluc2lkZSBvZiBpdCBhcyBi YXNlIGFkZHJlc3MuCi0JKGNvbXB1dGVfYnVpbHRpbl9vYmplY3Rfc2l6ZSwgZXhwcl9vYmplY3Rf c2l6ZSk6IEFkanVzdCBjYWxsZXJzLgotCShwbHVzX3N0bXRfb2JqZWN0X3NpemUpOiBDYWxsIGFk ZHJfb2JqZWN0X3NpemUgaW5zdGVhZCBvZgotCWNvbXB1dGVfYnVpbHRpbl9vYmplY3Rfc2l6ZS4K LQotCSogZ2NjLmRnL2J1aWx0aW4tb2JqZWN0LXNpemUtMi5jICh0ZXN0MSk6IEFkanVzdCBleHBl Y3RlZCByZXN1bHRzLgotCSogZ2NjLmRnL2J1aWx0aW4tb2JqZWN0LXNpemUtNC5jICh0ZXN0MSk6 IEFkanVzdCBleHBlY3RlZCByZXN1bHRzLgotCSogZ2NjLmRnL2J1aWx0aW4tb2JqZWN0LXNpemUt Ni5jOiBOZXcgdGVzdC4KLQotLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2J1aWx0aW4tb2JqZWN0 LXNpemUtNC5jCShyZXZpc2lvbiAxNDgyNzgpCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvYnVp bHRpbi1vYmplY3Qtc2l6ZS00LmMJKHJldmlzaW9uIDE0ODI3OSkKLUBAIC0xMzAsMTUgKzEzMCwx NSBAQCB0ZXN0MSAodm9pZCAqcSwgaW50IHgpCi0gICAgIGFib3J0ICgpOyAgICAKLSAgIGlmIChf X2J1aWx0aW5fb2JqZWN0X3NpemUgKCZ2YXJhWzVdLCAzKSAhPSAwKQotICAgICBhYm9ydCAoKTsK LS0gIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZ2YXJhWzBdLmEsIDMpICE9IDApCi0rICBp ZiAoX19idWlsdGluX29iamVjdF9zaXplICgmdmFyYVswXS5hLCAzKSAhPSBzaXplb2YgKHZhcmFb MF0uYSkpCi0gICAgIGFib3J0ICgpOwotLSAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnZh cmFbMTBdLmFbMF0sIDMpICE9IDApCi0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmdmFy YVsxMF0uYVswXSwgMykgIT0gc2l6ZW9mICh2YXJhWzBdLmEpKQotICAgICBhYm9ydCAoKTsKLS0g IGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZ2YXJhWzVdLmFbNF0sIDMpICE9IDApCi0rICBp ZiAoX19idWlsdGluX29iamVjdF9zaXplICgmdmFyYVs1XS5hWzRdLCAzKSAhPSBzaXplb2YgKHZh cmFbMF0uYSkgLSA0KQotICAgICBhYm9ydCAoKTsKLS0gIGlmIChfX2J1aWx0aW5fb2JqZWN0X3Np emUgKCZ2YXJhWzVdLmIsIDMpICE9IDApCi0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgm dmFyYVs1XS5iLCAzKSAhPSBzaXplb2YgKHZhcmFbMF0uYikpCi0gICAgIGFib3J0ICgpOwotLSAg aWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnZhcmFbN10uY1s3XSwgMykgIT0gMCkKLSsgIGlm IChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZ2YXJhWzddLmNbN10sIDMpICE9IHNpemVvZiAodmFy YVswXS5jKSAtIDcpCi0gICAgIGFib3J0ICgpOwotICAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6 ZSAoemVyb2wsIDMpICE9IDApCi0gICAgIGFib3J0ICgpOwotLS0tIGdjYy90ZXN0c3VpdGUvZ2Nj LmRnL2J1aWx0aW4tb2JqZWN0LXNpemUtMi5jCShyZXZpc2lvbiAxNDgyNzgpCi0rKysgZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvYnVpbHRpbi1vYmplY3Qtc2l6ZS0yLmMJKHJldmlzaW9uIDE0ODI3OSkK LUBAIC0xMzAsMTUgKzEzMCwxNSBAQCB0ZXN0MSAodm9pZCAqcSwgaW50IHgpCi0gICAgIGFib3J0 ICgpOyAgICAKLSAgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZ2YXJhWzVdLCAxKSAhPSAo c2l6ZV90KSAtMSkKLSAgICAgYWJvcnQgKCk7Ci0tICBpZiAoX19idWlsdGluX29iamVjdF9zaXpl ICgmdmFyYVswXS5hLCAxKSAhPSAoc2l6ZV90KSAtMSkKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0 X3NpemUgKCZ2YXJhWzBdLmEsIDEpICE9IHNpemVvZiAodmFyYVswXS5hKSkKLSAgICAgYWJvcnQg KCk7Ci0tICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmdmFyYVsxMF0uYVswXSwgMSkgIT0g KHNpemVfdCkgLTEpCi0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmdmFyYVsxMF0uYVsw XSwgMSkgIT0gc2l6ZW9mICh2YXJhWzBdLmEpKQotICAgICBhYm9ydCAoKTsKLS0gIGlmIChfX2J1 aWx0aW5fb2JqZWN0X3NpemUgKCZ2YXJhWzVdLmFbNF0sIDEpICE9IChzaXplX3QpIC0xKQotKyAg aWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnZhcmFbNV0uYVs0XSwgMSkgIT0gc2l6ZW9mICh2 YXJhWzBdLmEpIC0gNCkKLSAgICAgYWJvcnQgKCk7Ci0tICBpZiAoX19idWlsdGluX29iamVjdF9z aXplICgmdmFyYVs1XS5iLCAxKSAhPSAoc2l6ZV90KSAtMSkKLSsgIGlmIChfX2J1aWx0aW5fb2Jq ZWN0X3NpemUgKCZ2YXJhWzVdLmIsIDEpICE9IHNpemVvZiAodmFyYVswXS5iKSkKLSAgICAgYWJv cnQgKCk7Ci0tICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmdmFyYVs3XS5jWzddLCAxKSAh PSAoc2l6ZV90KSAtMSkKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZ2YXJhWzddLmNb N10sIDEpICE9IHNpemVvZiAodmFyYVswXS5jKSAtIDcpCi0gICAgIGFib3J0ICgpOwotICAgaWYg KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoemVyb2wsIDEpICE9IDApCi0gICAgIGFib3J0ICgpOwot LS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2J1aWx0aW4tb2JqZWN0LXNpemUtNi5jCShyZXZpc2lv biAwKQotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2J1aWx0aW4tb2JqZWN0LXNpemUtNi5jCShy ZXZpc2lvbiAxNDgyNzkpCi1AQCAtMCwwICsxLDQzNSBAQAotKy8qIHsgZGctZG8gcnVuIH0gKi8K LSsvKiB7IGRnLW9wdGlvbnMgIi1PMiIgfSAqLwotKwotK3R5cGVkZWYgX19TSVpFX1RZUEVfXyBz aXplX3Q7Ci0rZXh0ZXJuIHZvaWQgYWJvcnQgKHZvaWQpOwotK2V4dGVybiB2b2lkIGV4aXQgKGlu dCk7Ci0rZXh0ZXJuIHZvaWQgKm1hbGxvYyAoc2l6ZV90KTsKLStleHRlcm4gdm9pZCBmcmVlICh2 b2lkICopOwotKwotK3N0cnVjdCBBCi0rewotKyAgY2hhciBhWzEwXTsKLSsgIGludCBiOwotKyAg Y2hhciBjWzEwXTsKLSt9OwotKwotK3ZvaWQKLStfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQot K3Rlc3QxIChzdHJ1Y3QgQSAqcCkKLSt7Ci0rICBjaGFyICpjOwotKyAgaWYgKF9fYnVpbHRpbl9v YmplY3Rfc2l6ZSAoJnAtPmEsIDApICE9IChzaXplX3QpIC0xKQotKyAgICBhYm9ydCAoKTsKLSsg IGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hWzBdLCAwKSAhPSAoc2l6ZV90KSAtMSkK LSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YVszXSwg MCkgIT0gKHNpemVfdCkgLTEpCi0rICAgIGFib3J0ICgpOwotKyAgaWYgKF9fYnVpbHRpbl9vYmpl Y3Rfc2l6ZSAoJnAtPmIsIDApICE9IChzaXplX3QpIC0xKQotKyAgICBhYm9ydCAoKTsKLSsgIGlm IChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5jLCAwKSAhPSAoc2l6ZV90KSAtMSkKLSsgICAg YWJvcnQgKCk7Ci0rICBjID0gcC0+YTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKGMs IDApICE9IChzaXplX3QpIC0xKQotKyAgICBhYm9ydCAoKTsKLSsgIGMgPSAmcC0+YVswXTsKLSsg IGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKGMsIDApICE9IChzaXplX3QpIC0xKQotKyAgICBh Ym9ydCAoKTsKLSsgIGMgPSAmcC0+YVszXTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUg KGMsIDApICE9IChzaXplX3QpIC0xKQotKyAgICBhYm9ydCAoKTsKLSsgIGMgPSAoY2hhciAqKSAm cC0+YjsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKGMsIDApICE9IChzaXplX3QpIC0x KQotKyAgICBhYm9ydCAoKTsKLSsgIGMgPSAoY2hhciAqKSAmcC0+YzsKLSsgIGlmIChfX2J1aWx0 aW5fb2JqZWN0X3NpemUgKGMsIDApICE9IChzaXplX3QpIC0xKQotKyAgICBhYm9ydCAoKTsKLSsg IGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hLCAxKSAhPSBzaXplb2YgKHAtPmEpKQot KyAgICBhYm9ydCAoKTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hWzBdLCAx KSAhPSBzaXplb2YgKHAtPmEpKQotKyAgICBhYm9ydCAoKTsKLSsgIGlmIChfX2J1aWx0aW5fb2Jq ZWN0X3NpemUgKCZwLT5hWzNdLCAxKSAhPSBzaXplb2YgKHAtPmEpIC0gMykKLSsgICAgYWJvcnQg KCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YiwgMSkgIT0gc2l6ZW9mIChw LT5iKSkKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+ YywgMSkgIT0gKHNpemVfdCkgLTEpCi0rICAgIGFib3J0ICgpOwotKyAgYyA9IHAtPmE7Ci0rICBp ZiAoX19idWlsdGluX29iamVjdF9zaXplIChjLCAxKSAhPSBzaXplb2YgKHAtPmEpKQotKyAgICBh Ym9ydCAoKTsKLSsgIGMgPSAmcC0+YVswXTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUg KGMsIDEpICE9IHNpemVvZiAocC0+YSkpCi0rICAgIGFib3J0ICgpOwotKyAgYyA9ICZwLT5hWzNd OwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMSkgIT0gc2l6ZW9mIChwLT5hKSAt IDMpCi0rICAgIGFib3J0ICgpOwotKyAgYyA9IChjaGFyICopICZwLT5iOwotKyAgaWYgKF9fYnVp bHRpbl9vYmplY3Rfc2l6ZSAoYywgMSkgIT0gc2l6ZW9mIChwLT5iKSkKLSsgICAgYWJvcnQgKCk7 Ci0rICBjID0gKGNoYXIgKikgJnAtPmM7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplIChj LCAxKSAhPSAoc2l6ZV90KSAtMSkKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29i amVjdF9zaXplICgmcC0+YSwgMikgIT0gMCkKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWls dGluX29iamVjdF9zaXplICgmcC0+YVswXSwgMikgIT0gMCkKLSsgICAgYWJvcnQgKCk7Ci0rICBp ZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YVszXSwgMikgIT0gMCkKLSsgICAgYWJvcnQg KCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YiwgMikgIT0gMCkKLSsgICAg YWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YywgMikgIT0gMCkK LSsgICAgYWJvcnQgKCk7Ci0rICBjID0gcC0+YTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3Np emUgKGMsIDIpICE9IDApCi0rICAgIGFib3J0ICgpOwotKyAgYyA9ICZwLT5hWzBdOwotKyAgaWYg KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMikgIT0gMCkKLSsgICAgYWJvcnQgKCk7Ci0rICBj ID0gJnAtPmFbM107Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplIChjLCAyKSAhPSAwKQot KyAgICBhYm9ydCAoKTsKLSsgIGMgPSAoY2hhciAqKSAmcC0+YjsKLSsgIGlmIChfX2J1aWx0aW5f b2JqZWN0X3NpemUgKGMsIDIpICE9IDApCi0rICAgIGFib3J0ICgpOwotKyAgYyA9IChjaGFyICop ICZwLT5jOwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMikgIT0gMCkKLSsgICAg YWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YSwgMykgIT0gc2l6 ZW9mIChwLT5hKSkKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXpl ICgmcC0+YVswXSwgMykgIT0gc2l6ZW9mIChwLT5hKSkKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAo X19idWlsdGluX29iamVjdF9zaXplICgmcC0+YVszXSwgMykgIT0gc2l6ZW9mIChwLT5hKSAtIDMp Ci0rICAgIGFib3J0ICgpOwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnAtPmIsIDMp ICE9IHNpemVvZiAocC0+YikpCi0rICAgIGFib3J0ICgpOwotKyAgaWYgKF9fYnVpbHRpbl9vYmpl Y3Rfc2l6ZSAoJnAtPmMsIDMpICE9IDApCi0rICAgIGFib3J0ICgpOwotKyAgYyA9IHAtPmE7Ci0r ICBpZiAoX19idWlsdGluX29iamVjdF9zaXplIChjLCAzKSAhPSBzaXplb2YgKHAtPmEpKQotKyAg ICBhYm9ydCAoKTsKLSsgIGMgPSAmcC0+YVswXTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3Np emUgKGMsIDMpICE9IHNpemVvZiAocC0+YSkpCi0rICAgIGFib3J0ICgpOwotKyAgYyA9ICZwLT5h WzNdOwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMykgIT0gc2l6ZW9mIChwLT5h KSAtIDMpCi0rICAgIGFib3J0ICgpOwotKyAgYyA9IChjaGFyICopICZwLT5iOwotKyAgaWYgKF9f YnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMykgIT0gc2l6ZW9mIChwLT5iKSkKLSsgICAgYWJvcnQg KCk7Ci0rICBjID0gKGNoYXIgKikgJnAtPmM7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXpl IChjLCAzKSAhPSAwKQotKyAgICBhYm9ydCAoKTsKLSt9Ci0rCi0rdm9pZAotK19fYXR0cmlidXRl X18gKChub2lubGluZSkpCi0rdGVzdDIgKHZvaWQpCi0rewotKyAgY2hhciAqYzsKLSsgIHNpemVf dCBzID0gMiAqIHNpemVvZiAoc3RydWN0IEEpOwotKyAgc3RydWN0IEEgKnAgPSBtYWxsb2MgKDIg KiBzaXplb2YgKHN0cnVjdCBBKSk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+ YSwgMCkgIT0gcykKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXpl ICgmcC0+YVswXSwgMCkgIT0gcykKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29i amVjdF9zaXplICgmcC0+YVszXSwgMCkgIT0gcyAtIDMpCi0rICAgIGFib3J0ICgpOwotKyAgaWYg KF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnAtPmIsIDApICE9IHMgLSBfX2J1aWx0aW5fb2Zmc2V0 b2YgKHN0cnVjdCBBLCBiKSkKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVj dF9zaXplICgmcC0+YywgMCkgIT0gcyAtIF9fYnVpbHRpbl9vZmZzZXRvZiAoc3RydWN0IEEsIGMp KQotKyAgICBhYm9ydCAoKTsKLSsgIGMgPSBwLT5hOwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rf c2l6ZSAoYywgMCkgIT0gcykKLSsgICAgYWJvcnQgKCk7Ci0rICBjID0gJnAtPmFbMF07Ci0rICBp ZiAoX19idWlsdGluX29iamVjdF9zaXplIChjLCAwKSAhPSBzKQotKyAgICBhYm9ydCAoKTsKLSsg IGMgPSAmcC0+YVszXTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKGMsIDApICE9IHMg LSAzKQotKyAgICBhYm9ydCAoKTsKLSsgIGMgPSAoY2hhciAqKSAmcC0+YjsKLSsgIGlmIChfX2J1 aWx0aW5fb2JqZWN0X3NpemUgKGMsIDApICE9IHMgLSBfX2J1aWx0aW5fb2Zmc2V0b2YgKHN0cnVj dCBBLCBiKSkKLSsgICAgYWJvcnQgKCk7Ci0rICBjID0gKGNoYXIgKikgJnAtPmM7Ci0rICBpZiAo X19idWlsdGluX29iamVjdF9zaXplIChjLCAwKSAhPSBzIC0gX19idWlsdGluX29mZnNldG9mIChz dHJ1Y3QgQSwgYykpCi0rICAgIGFib3J0ICgpOwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6 ZSAoJnAtPmEsIDEpICE9IHNpemVvZiAocC0+YSkpCi0rICAgIGFib3J0ICgpOwotKyAgaWYgKF9f YnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnAtPmFbMF0sIDEpICE9IHNpemVvZiAocC0+YSkpCi0rICAg IGFib3J0ICgpOwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnAtPmFbM10sIDEpICE9 IHNpemVvZiAocC0+YSkgLSAzKQotKyAgICBhYm9ydCAoKTsKLSsgIGlmIChfX2J1aWx0aW5fb2Jq ZWN0X3NpemUgKCZwLT5iLCAxKSAhPSBzaXplb2YgKHAtPmIpKQotKyAgICBhYm9ydCAoKTsKLSsg IGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5jLCAxKSAhPSBzIC0gX19idWlsdGluX29m ZnNldG9mIChzdHJ1Y3QgQSwgYykpCi0rICAgIGFib3J0ICgpOwotKyAgYyA9IHAtPmE7Ci0rICBp ZiAoX19idWlsdGluX29iamVjdF9zaXplIChjLCAxKSAhPSBzaXplb2YgKHAtPmEpKQotKyAgICBh Ym9ydCAoKTsKLSsgIGMgPSAmcC0+YVswXTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUg KGMsIDEpICE9IHNpemVvZiAocC0+YSkpCi0rICAgIGFib3J0ICgpOwotKyAgYyA9ICZwLT5hWzNd OwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMSkgIT0gc2l6ZW9mIChwLT5hKSAt IDMpCi0rICAgIGFib3J0ICgpOwotKyAgYyA9IChjaGFyICopICZwLT5iOwotKyAgaWYgKF9fYnVp bHRpbl9vYmplY3Rfc2l6ZSAoYywgMSkgIT0gc2l6ZW9mIChwLT5iKSkKLSsgICAgYWJvcnQgKCk7 Ci0rICBjID0gKGNoYXIgKikgJnAtPmM7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplIChj LCAxKSAhPSBzIC0gX19idWlsdGluX29mZnNldG9mIChzdHJ1Y3QgQSwgYykpCi0rICAgIGFib3J0 ICgpOwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnAtPmEsIDIpICE9IHMpCi0rICAg IGFib3J0ICgpOwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnAtPmFbMF0sIDIpICE9 IHMpCi0rICAgIGFib3J0ICgpOwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnAtPmFb M10sIDIpICE9IHMgLSAzKQotKyAgICBhYm9ydCAoKTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0 X3NpemUgKCZwLT5iLCAyKSAhPSBzIC0gX19idWlsdGluX29mZnNldG9mIChzdHJ1Y3QgQSwgYikp Ci0rICAgIGFib3J0ICgpOwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnAtPmMsIDIp ICE9IHMgLSBfX2J1aWx0aW5fb2Zmc2V0b2YgKHN0cnVjdCBBLCBjKSkKLSsgICAgYWJvcnQgKCk7 Ci0rICBjID0gcC0+YTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKGMsIDIpICE9IHMp Ci0rICAgIGFib3J0ICgpOwotKyAgYyA9ICZwLT5hWzBdOwotKyAgaWYgKF9fYnVpbHRpbl9vYmpl Y3Rfc2l6ZSAoYywgMikgIT0gcykKLSsgICAgYWJvcnQgKCk7Ci0rICBjID0gJnAtPmFbM107Ci0r ICBpZiAoX19idWlsdGluX29iamVjdF9zaXplIChjLCAyKSAhPSBzIC0gMykKLSsgICAgYWJvcnQg KCk7Ci0rICBjID0gKGNoYXIgKikgJnAtPmI7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXpl IChjLCAyKSAhPSBzIC0gX19idWlsdGluX29mZnNldG9mIChzdHJ1Y3QgQSwgYikpCi0rICAgIGFi b3J0ICgpOwotKyAgYyA9IChjaGFyICopICZwLT5jOwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rf c2l6ZSAoYywgMikgIT0gcyAtIF9fYnVpbHRpbl9vZmZzZXRvZiAoc3RydWN0IEEsIGMpKQotKyAg ICBhYm9ydCAoKTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hLCAzKSAhPSBz aXplb2YgKHAtPmEpKQotKyAgICBhYm9ydCAoKTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3Np emUgKCZwLT5hWzBdLCAzKSAhPSBzaXplb2YgKHAtPmEpKQotKyAgICBhYm9ydCAoKTsKLSsgIGlm IChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hWzNdLCAzKSAhPSBzaXplb2YgKHAtPmEpIC0g MykKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+Yiwg MykgIT0gc2l6ZW9mIChwLT5iKSkKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29i amVjdF9zaXplICgmcC0+YywgMykgIT0gcyAtIF9fYnVpbHRpbl9vZmZzZXRvZiAoc3RydWN0IEEs IGMpKQotKyAgICBhYm9ydCAoKTsKLSsgIGMgPSBwLT5hOwotKyAgaWYgKF9fYnVpbHRpbl9vYmpl Y3Rfc2l6ZSAoYywgMykgIT0gc2l6ZW9mIChwLT5hKSkKLSsgICAgYWJvcnQgKCk7Ci0rICBjID0g JnAtPmFbMF07Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplIChjLCAzKSAhPSBzaXplb2Yg KHAtPmEpKQotKyAgICBhYm9ydCAoKTsKLSsgIGMgPSAmcC0+YVszXTsKLSsgIGlmIChfX2J1aWx0 aW5fb2JqZWN0X3NpemUgKGMsIDMpICE9IHNpemVvZiAocC0+YSkgLSAzKQotKyAgICBhYm9ydCAo KTsKLSsgIGMgPSAoY2hhciAqKSAmcC0+YjsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUg KGMsIDMpICE9IHNpemVvZiAocC0+YikpCi0rICAgIGFib3J0ICgpOwotKyAgYyA9IChjaGFyICop ICZwLT5jOwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoYywgMykgIT0gcyAtIF9fYnVp bHRpbl9vZmZzZXRvZiAoc3RydWN0IEEsIGMpKQotKyAgICBhYm9ydCAoKTsKLSsgIGZyZWUgKHAp OwotK30KLSsKLSt2b2lkCi0rX19hdHRyaWJ1dGVfXyAoKG5vaW5saW5lKSkKLSt0ZXN0MyAodm9p ZCkKLSt7Ci0rICBjaGFyICpjOwotKyAgc2l6ZV90IHM7Ci0rICBzdHJ1Y3QgQSAqcCA9IG1hbGxv YyAoNCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YSwgMCkgIT0gNCkKLSsg ICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YVswXSwgMCkg IT0gNCkKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+ YVszXSwgMCkgIT0gMSkKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9z aXplICgmcC0+YiwgMCkgIT0gMCkKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29i amVjdF9zaXplICgmcC0+YywgMCkgIT0gMCkKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWls dGluX29iamVjdF9zaXplICgmcC0+YSwgMSkgIT0gNCkKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAo X19idWlsdGluX29iamVjdF9zaXplICgmcC0+YVswXSwgMSkgIT0gNCkKLSsgICAgYWJvcnQgKCk7 Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YVszXSwgMSkgIT0gMSkKLSsgICAg YWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YiwgMSkgIT0gMCkK LSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YywgMSkg IT0gMCkKLSsgICAgYWJvcnQgKCk7Ci0rICBmcmVlIChwKTsKLSsgIHMgPSBfX2J1aWx0aW5fb2Zm c2V0b2YgKHN0cnVjdCBBLCBjKSArIDQ7Ci0rICBwID0gbWFsbG9jIChzKTsKLSsgIGlmIChfX2J1 aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hLCAwKSAhPSBzKQotKyAgICBhYm9ydCAoKTsKLSsgIGlm IChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hWzBdLCAwKSAhPSBzKQotKyAgICBhYm9ydCAo KTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hWzNdLCAwKSAhPSBzIC0gMykK LSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YiwgMCkg IT0gcyAtIF9fYnVpbHRpbl9vZmZzZXRvZiAoc3RydWN0IEEsIGIpKQotKyAgICBhYm9ydCAoKTsK LSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5jLCAwKSAhPSA0KQotKyAgICBhYm9y dCAoKTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hLCAxKSAhPSBzaXplb2Yg KHAtPmEpKQotKyAgICBhYm9ydCAoKTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZw LT5hWzBdLCAxKSAhPSBzaXplb2YgKHAtPmEpKQotKyAgICBhYm9ydCAoKTsKLSsgIGlmIChfX2J1 aWx0aW5fb2JqZWN0X3NpemUgKCZwLT5hWzNdLCAxKSAhPSBzaXplb2YgKHAtPmEpIC0gMykKLSsg ICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcC0+YiwgMSkgIT0g c2l6ZW9mIChwLT5iKSkKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9z aXplICgmcC0+YywgMSkgIT0gNCkKLSsgICAgYWJvcnQgKCk7Ci0rICBmcmVlIChwKTsKLSt9Ci0r Ci0rc3RydWN0IEIKLSt7Ci0rICBzdHJ1Y3QgQSBhWzRdOwotK307Ci0rCi0rdm9pZAotK19fYXR0 cmlidXRlX18gKChub2lubGluZSkpCi0rdGVzdDQgKHN0cnVjdCBCICpxLCBpbnQgaSkKLSt7Ci0r ICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmcS0+YVsyXS5hWzJdLCAxKSAhPSBzaXplb2Yg KHEtPmFbMF0uYSkgLSAyKQotKyAgICBhYm9ydCAoKTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0 X3NpemUgKCZxLT5hWzJdLmNbMl0sIDEpICE9IHNpemVvZiAocS0+YVswXS5jKSAtIDIpCi0rICAg IGFib3J0ICgpOwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnEtPmFbM10uYVsyXSwg MSkgIT0gc2l6ZW9mIChxLT5hWzBdLmEpIC0gMikKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19i dWlsdGluX29iamVjdF9zaXplICgmcS0+YVszXS5jWzJdLCAxKSAhPSBzaXplb2YgKHEtPmFbMF0u YykgLSAyKQotKyAgICBhYm9ydCAoKTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZx LT5hW2ldLmFbMl0sIDEpICE9IHNpemVvZiAocS0+YVswXS5hKSAtIDIpCi0rICAgIGFib3J0ICgp OwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJnEtPmFbaV0uY1syXSwgMSkgIT0gc2l6 ZW9mIChxLT5hWzBdLmMpIC0gMikKLSsgICAgYWJvcnQgKCk7Ci0rfQotKwotK3N0cnVjdCBDCi0r ewotKyAgY2hhciBhWzEwXTsKLSsgIGNoYXIgYjsKLSt9OwotKwotK3ZvaWQKLStfX2F0dHJpYnV0 ZV9fICgobm9pbmxpbmUpKQotK3Rlc3Q1IChzdHJ1Y3QgQyAqYykKLSt7Ci0rICBpZiAoX19idWls dGluX29iamVjdF9zaXplICgmYy0+YiwgMCkgIT0gKHNpemVfdCkgLTEpCi0rICAgIGFib3J0ICgp OwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJmMtPmIsIDEpICE9IDEpCi0rICAgIGFi b3J0ICgpOwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJmMtPmIsIDIpICE9IDApCi0r ICAgIGFib3J0ICgpOwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJmMtPmIsIDMpICE9 IDEpCi0rICAgIGFib3J0ICgpOwotK30KLSsKLStzdHJ1Y3QgRAotK3sKLSsgIGludCBpOwotKyAg c3RydWN0IEQxCi0rICB7Ci0rICAgIGNoYXIgYjsKLSsgICAgY2hhciBhWzEwXTsKLSsgIH0gajsK LSt9OwotKwotK3ZvaWQKLStfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQotK3Rlc3Q2IChzdHJ1 Y3QgRCAqZCkKLSt7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmZC0+ai5hWzNdLCAw KSAhPSAoc2l6ZV90KSAtMSkKLSsgICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVj dF9zaXplICgmZC0+ai5hWzNdLCAxKSAhPSBzaXplb2YgKGQtPmouYSkgLSAzKQotKyAgICBhYm9y dCAoKTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZkLT5qLmFbM10sIDIpICE9IDAp Ci0rICAgIGFib3J0ICgpOwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJmQtPmouYVsz XSwgMykgIT0gc2l6ZW9mIChkLT5qLmEpIC0gMykKLSsgICAgYWJvcnQgKCk7Ci0rfQotKwotK3N0 cnVjdCBFCi0rewotKyAgaW50IGk7Ci0rICBzdHJ1Y3QgRTEKLSsgIHsKLSsgICAgY2hhciBiOwot KyAgICBjaGFyIGFbMTBdOwotKyAgfSBqWzFdOwotK307Ci0rCi0rdm9pZAotK19fYXR0cmlidXRl X18gKChub2lubGluZSkpCi0rdGVzdDcgKHN0cnVjdCBFICplKQotK3sKLSsgIGlmIChfX2J1aWx0 aW5fb2JqZWN0X3NpemUgKCZlLT5qWzBdLmFbM10sIDApICE9IChzaXplX3QpIC0xKQotKyAgICBh Ym9ydCAoKTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZlLT5qWzBdLmFbM10sIDEp ICE9IHNpemVvZiAoZS0+alswXS5hKSAtIDMpCi0rICAgIGFib3J0ICgpOwotKyAgaWYgKF9fYnVp bHRpbl9vYmplY3Rfc2l6ZSAoJmUtPmpbMF0uYVszXSwgMikgIT0gMCkKLSsgICAgYWJvcnQgKCk7 Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmZS0+alswXS5hWzNdLCAzKSAhPSBzaXpl b2YgKGUtPmpbMF0uYSkgLSAzKQotKyAgICBhYm9ydCAoKTsKLSsgIGlmIChfX2J1aWx0aW5fb2Jq ZWN0X3NpemUgKChjaGFyICopICZlLT5qWzBdLCAwKSAhPSAoc2l6ZV90KSAtMSkKLSsgICAgYWJv cnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgoY2hhciAqKSAmZS0+alswXSwg MSkgIT0gKHNpemVfdCkgLTEpCi0rICAgIGFib3J0ICgpOwotKyAgaWYgKF9fYnVpbHRpbl9vYmpl Y3Rfc2l6ZSAoKGNoYXIgKikgJmUtPmpbMF0sIDIpICE9IDApCi0rICAgIGFib3J0ICgpOwotKyAg aWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoKGNoYXIgKikgJmUtPmpbMF0sIDMpICE9IDApCi0r ICAgIGFib3J0ICgpOwotK30KLSsKLSt1bmlvbiBGCi0rewotKyAgY2hhciBhWzFdOwotKyAgc3Ry dWN0IEYxCi0rICB7Ci0rICAgIGNoYXIgYjsKLSsgICAgY2hhciBjWzEwXTsKLSsgIH0gZDsKLSt9 OwotKwotK3ZvaWQKLStfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUpKQotK3Rlc3Q4ICh1bmlvbiBG ICpmKQotK3sKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3NpemUgKCZmLT5kLmNbM10sIDApICE9 IChzaXplX3QpIC0xKQotKyAgICBhYm9ydCAoKTsKLSsgIGlmIChfX2J1aWx0aW5fb2JqZWN0X3Np emUgKCZmLT5kLmNbM10sIDEpICE9IHNpemVvZiAoZi0+ZC5jKSAtIDMpCi0rICAgIGFib3J0ICgp OwotKyAgaWYgKF9fYnVpbHRpbl9vYmplY3Rfc2l6ZSAoJmYtPmQuY1szXSwgMikgIT0gMCkKLSsg ICAgYWJvcnQgKCk7Ci0rICBpZiAoX19idWlsdGluX29iamVjdF9zaXplICgmZi0+ZC5jWzNdLCAz KSAhPSBzaXplb2YgKGYtPmQuYykgLSAzKQotKyAgICBhYm9ydCAoKTsKLSt9Ci0rCi0raW50Ci0r bWFpbiAodm9pZCkKLSt7Ci0rICBzdHJ1Y3QgQSBhLCAqcCA9ICZhOwotKyAgaW50IGkgPSAxOwot KyAgX19hc20gKCIiIDogIityIiAocCkpOwotKyAgdGVzdDEgKHApOwotKyAgdGVzdDIgKCk7Ci0r ICB0ZXN0MyAoKTsKLSsgIHN0cnVjdCBCIGIsICpxID0gJmI7Ci0rICBfX2FzbSAoIiIgOiAiK3Ii IChxKSwgIityIiAoaSkpOwotKyAgdGVzdDQgKHEsIGkpOwotKyAgc3RydWN0IEMgYywgKmNwID0g JmM7Ci0rICBfX2FzbSAoIiIgOiAiK3IiIChjcCkpOwotKyAgdGVzdDUgKGNwKTsKLSsgIHN0cnVj dCBEIGQsICpkcCA9ICZkOwotKyAgX19hc20gKCIiIDogIityIiAoZHApKTsKLSsgIHRlc3Q2IChk cCk7Ci0rICBzdHJ1Y3QgRSBlLCAqZXAgPSAmZTsKLSsgIF9fYXNtICgiIiA6ICIrciIgKGVwKSk7 Ci0rICB0ZXN0NyAoZXApOwotKyAgdW5pb24gRiBmLCAqZnAgPSAmZjsKLSsgIF9fYXNtICgiIiA6 ICIrciIgKGZwKSk7Ci0rICB0ZXN0OCAoZnApOwotKyAgZXhpdCAoMCk7Ci0rfQotLS0tIGdjYy90 cmVlLW9iamVjdC1zaXplLmMJKHJldmlzaW9uIDE0ODI3OCkKLSsrKyBnY2MvdHJlZS1vYmplY3Qt c2l6ZS5jCShyZXZpc2lvbiAxNDgyNzkpCi1AQCAtNDMsNyArNDMsOCBAQCBzdHJ1Y3Qgb2JqZWN0 X3NpemVfaW5mbwotIHN0YXRpYyB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIHVua25vd25bNF0gPSB7 IC0xLCAtMSwgMCwgMCB9OwotIAotIHN0YXRpYyB0cmVlIGNvbXB1dGVfb2JqZWN0X29mZnNldCAo Y29uc3RfdHJlZSwgY29uc3RfdHJlZSk7Ci0tc3RhdGljIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQg YWRkcl9vYmplY3Rfc2l6ZSAoY29uc3RfdHJlZSwgaW50KTsKLStzdGF0aWMgdW5zaWduZWQgSE9T VF9XSURFX0lOVCBhZGRyX29iamVjdF9zaXplIChzdHJ1Y3Qgb2JqZWN0X3NpemVfaW5mbyAqLAot KwkJCQkJCWNvbnN0X3RyZWUsIGludCk7Ci0gc3RhdGljIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQg YWxsb2Nfb2JqZWN0X3NpemUgKGNvbnN0X2dpbXBsZSwgaW50KTsKLSBzdGF0aWMgdHJlZSBwYXNz X3Rocm91Z2hfY2FsbCAoY29uc3RfZ2ltcGxlKTsKLSBzdGF0aWMgdm9pZCBjb2xsZWN0X29iamVj dF9zaXplc19mb3IgKHN0cnVjdCBvYmplY3Rfc2l6ZV9pbmZvICosIHRyZWUpOwotQEAgLTE1Miw5 ICsxNTMsMTAgQEAgY29tcHV0ZV9vYmplY3Rfb2Zmc2V0IChjb25zdF90cmVlIGV4cHIsIAotICAg IElmIHVua25vd24sIHJldHVybiB1bmtub3duW29iamVjdF9zaXplX3R5cGVdLiAgKi8KLSAKLSBz dGF0aWMgdW5zaWduZWQgSE9TVF9XSURFX0lOVAotLWFkZHJfb2JqZWN0X3NpemUgKGNvbnN0X3Ry ZWUgcHRyLCBpbnQgb2JqZWN0X3NpemVfdHlwZSkKLSthZGRyX29iamVjdF9zaXplIChzdHJ1Y3Qg b2JqZWN0X3NpemVfaW5mbyAqb3NpLCBjb25zdF90cmVlIHB0ciwKLSsJCSAgaW50IG9iamVjdF9z aXplX3R5cGUpCi0gewotLSAgdHJlZSBwdF92YXI7Ci0rICB0cmVlIHB0X3ZhciwgcHRfdmFyX3Np emUgPSBOVUxMX1RSRUUsIHZhcl9zaXplLCBieXRlczsKLSAKLSAgIGdjY19hc3NlcnQgKFRSRUVf Q09ERSAocHRyKSA9PSBBRERSX0VYUFIpOwotIAotQEAgLTE2Myw1OCArMTY1LDE3MCBAQCBhZGRy X29iamVjdF9zaXplIChjb25zdF90cmVlIHB0ciwgaW50IG9iCi0gICAgIHB0X3ZhciA9IGdldF9i YXNlX2FkZHJlc3MgKHB0X3Zhcik7Ci0gCi0gICBpZiAocHRfdmFyCi0tICAgICAgJiYgKFNTQV9W QVJfUCAocHRfdmFyKSB8fCBUUkVFX0NPREUgKHB0X3ZhcikgPT0gU1RSSU5HX0NTVCkKLS0gICAg ICAmJiBUWVBFX1NJWkVfVU5JVCAoVFJFRV9UWVBFIChwdF92YXIpKQotLSAgICAgICYmIGhvc3Rf aW50ZWdlcnAgKFRZUEVfU0laRV9VTklUIChUUkVFX1RZUEUgKHB0X3ZhcikpLCAxKQotLSAgICAg ICYmICh1bnNpZ25lZCBIT1NUX1dJREVfSU5UKQotLQkgdHJlZV9sb3dfY3N0IChUWVBFX1NJWkVf VU5JVCAoVFJFRV9UWVBFIChwdF92YXIpKSwgMSkgPCBvZmZzZXRfbGltaXQpCi0rICAgICAgJiYg VFJFRV9DT0RFIChwdF92YXIpID09IElORElSRUNUX1JFRgotKyAgICAgICYmIFRSRUVfQ09ERSAo VFJFRV9PUEVSQU5EIChwdF92YXIsIDApKSA9PSBTU0FfTkFNRQotKyAgICAgICYmIFBPSU5URVJf VFlQRV9QIChUUkVFX1RZUEUgKFRSRUVfT1BFUkFORCAocHRfdmFyLCAwKSkpKQotKyAgICB7Ci0r ICAgICAgdW5zaWduZWQgSE9TVF9XSURFX0lOVCBzejsKLSsKLSsgICAgICBpZiAoIW9zaSkKLSsJ c3ogPSBjb21wdXRlX2J1aWx0aW5fb2JqZWN0X3NpemUgKFRSRUVfT1BFUkFORCAocHRfdmFyLCAw KSwKLSsJCQkJCSAgb2JqZWN0X3NpemVfdHlwZSk7Ci0rICAgICAgZWxzZQotKwl7Ci0rCSAgdHJl ZSB2YXIgPSBUUkVFX09QRVJBTkQgKHB0X3ZhciwgMCk7Ci0rCSAgaWYgKG9zaS0+cGFzcyA9PSAw KQotKwkgICAgY29sbGVjdF9vYmplY3Rfc2l6ZXNfZm9yIChvc2ksIHZhcik7Ci0rCSAgaWYgKGJp dG1hcF9iaXRfcCAoY29tcHV0ZWRbb2JqZWN0X3NpemVfdHlwZV0sCi0rCQkJICAgIFNTQV9OQU1F X1ZFUlNJT04gKHZhcikpKQotKwkgICAgc3ogPSBvYmplY3Rfc2l6ZXNbb2JqZWN0X3NpemVfdHlw ZV1bU1NBX05BTUVfVkVSU0lPTiAodmFyKV07Ci0rCSAgZWxzZQotKwkgICAgc3ogPSB1bmtub3du W29iamVjdF9zaXplX3R5cGVdOwotKwl9Ci0rCi0rICAgICAgaWYgKHN6ICE9IHVua25vd25bb2Jq ZWN0X3NpemVfdHlwZV0gJiYgc3ogPCBvZmZzZXRfbGltaXQpCi0rCXB0X3Zhcl9zaXplID0gc2l6 ZV9pbnQgKHN6KTsKLSsgICAgfQotKyAgZWxzZSBpZiAocHRfdmFyCi0rCSAgICYmIChTU0FfVkFS X1AgKHB0X3ZhcikgfHwgVFJFRV9DT0RFIChwdF92YXIpID09IFNUUklOR19DU1QpCi0rCSAgICYm IFRZUEVfU0laRV9VTklUIChUUkVFX1RZUEUgKHB0X3ZhcikpCi0rCSAgICYmIGhvc3RfaW50ZWdl cnAgKFRZUEVfU0laRV9VTklUIChUUkVFX1RZUEUgKHB0X3ZhcikpLCAxKQotKwkgICAmJiAodW5z aWduZWQgSE9TVF9XSURFX0lOVCkKLSsJICAgICAgdHJlZV9sb3dfY3N0IChUWVBFX1NJWkVfVU5J VCAoVFJFRV9UWVBFIChwdF92YXIpKSwgMSkKLSsJICAgICAgPCBvZmZzZXRfbGltaXQpCi0rICAg IHB0X3Zhcl9zaXplID0gVFlQRV9TSVpFX1VOSVQgKFRSRUVfVFlQRSAocHRfdmFyKSk7Ci0rICBl bHNlCi0rICAgIHJldHVybiB1bmtub3duW29iamVjdF9zaXplX3R5cGVdOwotKwotKyAgaWYgKHB0 X3ZhciAhPSBUUkVFX09QRVJBTkQgKHB0ciwgMCkpCi0gICAgIHsKLS0gICAgICB0cmVlIGJ5dGVz OwotKyAgICAgIHRyZWUgdmFyOwotIAotLSAgICAgIGlmIChwdF92YXIgIT0gVFJFRV9PUEVSQU5E IChwdHIsIDApKQotKyAgICAgIGlmIChvYmplY3Rfc2l6ZV90eXBlICYgMSkKLSAJewotLQkgIHRy ZWUgdmFyOwotKwkgIHZhciA9IFRSRUVfT1BFUkFORCAocHRyLCAwKTsKLSAKLS0JICBpZiAob2Jq ZWN0X3NpemVfdHlwZSAmIDEpCi0rCSAgd2hpbGUgKHZhciAhPSBwdF92YXIKLSsJCSAmJiBUUkVF X0NPREUgKHZhcikgIT0gQklUX0ZJRUxEX1JFRgotKwkJICYmIFRSRUVfQ09ERSAodmFyKSAhPSBD T01QT05FTlRfUkVGCi0rCQkgJiYgVFJFRV9DT0RFICh2YXIpICE9IEFSUkFZX1JFRgotKwkJICYm IFRSRUVfQ09ERSAodmFyKSAhPSBBUlJBWV9SQU5HRV9SRUYKLSsJCSAmJiBUUkVFX0NPREUgKHZh cikgIT0gUkVBTFBBUlRfRVhQUgotKwkJICYmIFRSRUVfQ09ERSAodmFyKSAhPSBJTUFHUEFSVF9F WFBSKQotKwkgICAgdmFyID0gVFJFRV9PUEVSQU5EICh2YXIsIDApOwotKwkgIGlmICh2YXIgIT0g cHRfdmFyICYmIFRSRUVfQ09ERSAodmFyKSA9PSBBUlJBWV9SRUYpCi0rCSAgICAgIHZhciA9IFRS RUVfT1BFUkFORCAodmFyLCAwKTsKLSsJICBpZiAoISBUWVBFX1NJWkVfVU5JVCAoVFJFRV9UWVBF ICh2YXIpKQotKwkgICAgICB8fCAhIGhvc3RfaW50ZWdlcnAgKFRZUEVfU0laRV9VTklUIChUUkVF X1RZUEUgKHZhcikpLCAxKQotKwkgICAgICB8fCAocHRfdmFyX3NpemUKLSsJCSAgJiYgdHJlZV9p bnRfY3N0X2x0IChwdF92YXJfc2l6ZSwKLSsJCQkJICAgICAgVFlQRV9TSVpFX1VOSVQgKFRSRUVf VFlQRSAodmFyKSkpKSkKLSsJICAgIHZhciA9IHB0X3ZhcjsKLSsJICBlbHNlIGlmICh2YXIgIT0g cHRfdmFyICYmIFRSRUVfQ09ERSAocHRfdmFyKSA9PSBJTkRJUkVDVF9SRUYpCi0gCSAgICB7Ci0t CSAgICAgIHZhciA9IFRSRUVfT1BFUkFORCAocHRyLCAwKTsKLS0KLS0JICAgICAgd2hpbGUgKHZh ciAhPSBwdF92YXIKLS0JCSAgICAgICYmIFRSRUVfQ09ERSAodmFyKSAhPSBCSVRfRklFTERfUkVG Ci0tCQkgICAgICAmJiBUUkVFX0NPREUgKHZhcikgIT0gQ09NUE9ORU5UX1JFRgotLQkJICAgICAg JiYgVFJFRV9DT0RFICh2YXIpICE9IEFSUkFZX1JFRgotLQkJICAgICAgJiYgVFJFRV9DT0RFICh2 YXIpICE9IEFSUkFZX1JBTkdFX1JFRgotLQkJICAgICAgJiYgVFJFRV9DT0RFICh2YXIpICE9IFJF QUxQQVJUX0VYUFIKLS0JCSAgICAgICYmIFRSRUVfQ09ERSAodmFyKSAhPSBJTUFHUEFSVF9FWFBS KQotLQkJdmFyID0gVFJFRV9PUEVSQU5EICh2YXIsIDApOwotLQkgICAgICBpZiAodmFyICE9IHB0 X3ZhciAmJiBUUkVFX0NPREUgKHZhcikgPT0gQVJSQVlfUkVGKQotLQkJdmFyID0gVFJFRV9PUEVS QU5EICh2YXIsIDApOwotLQkgICAgICBpZiAoISBUWVBFX1NJWkVfVU5JVCAoVFJFRV9UWVBFICh2 YXIpKQotLQkJICB8fCAhIGhvc3RfaW50ZWdlcnAgKFRZUEVfU0laRV9VTklUIChUUkVFX1RZUEUg KHZhcikpLCAxKQotLQkJICB8fCB0cmVlX2ludF9jc3RfbHQgKFRZUEVfU0laRV9VTklUIChUUkVF X1RZUEUgKHB0X3ZhcikpLAotLQkJCQkgICAgICBUWVBFX1NJWkVfVU5JVCAoVFJFRV9UWVBFICh2 YXIpKSkpCi0rCSAgICAgIHRyZWUgdiA9IHZhcjsKLSsJICAgICAgLyogRm9yICZYLT5mbGQsIGNv bXB1dGUgb2JqZWN0IHNpemUgb25seSBpZiBmbGQgaXNuJ3QgdGhlIGxhc3QKLSsJCSBmaWVsZCwg YXMgc3RydWN0IHsgaW50IGk7IGNoYXIgY1sxXTsgfSBpcyBvZnRlbiB1c2VkIGluc3RlYWQKLSsJ CSBvZiBmbGV4aWJsZSBhcnJheSBtZW1iZXIuICAqLwotKwkgICAgICB3aGlsZSAodiAmJiB2ICE9 IHB0X3ZhcikKLSsJCXN3aXRjaCAoVFJFRV9DT0RFICh2KSkKLSsJCSAgewotKwkJICBjYXNlIEFS UkFZX1JFRjoKLSsJCSAgICBpZiAoVFlQRV9TSVpFX1VOSVQgKFRSRUVfVFlQRSAoVFJFRV9PUEVS QU5EICh2LCAwKSkpCi0rCQkJJiYgVFJFRV9DT0RFIChUUkVFX09QRVJBTkQgKHYsIDEpKSA9PSBJ TlRFR0VSX0NTVCkKLSsJCSAgICAgIHsKLSsJCQl0cmVlIGRvbWFpbgotKwkJCSAgPSBUWVBFX0RP TUFJTiAoVFJFRV9UWVBFIChUUkVFX09QRVJBTkQgKHYsIDApKSk7Ci0rCQkJaWYgKGRvbWFpbgot KwkJCSAgICAmJiBUWVBFX01BWF9WQUxVRSAoZG9tYWluKQotKwkJCSAgICAmJiBUUkVFX0NPREUg KFRZUEVfTUFYX1ZBTFVFIChkb21haW4pKQotKwkJCSAgICAgICA9PSBJTlRFR0VSX0NTVAotKwkJ CSAgICAmJiB0cmVlX2ludF9jc3RfbHQgKFRSRUVfT1BFUkFORCAodiwgMSksCi0rCQkJCQkJVFlQ RV9NQVhfVkFMVUUgKGRvbWFpbikpKQotKwkJCSAgewotKwkJCSAgICB2ID0gTlVMTF9UUkVFOwot KwkJCSAgICBicmVhazsKLSsJCQkgIH0KLSsJCSAgICAgIH0KLSsJCSAgICB2ID0gVFJFRV9PUEVS QU5EICh2LCAwKTsKLSsJCSAgICBicmVhazsKLSsJCSAgY2FzZSBSRUFMUEFSVF9FWFBSOgotKwkJ ICBjYXNlIElNQUdQQVJUX0VYUFI6Ci0rCQkgICAgdiA9IE5VTExfVFJFRTsKLSsJCSAgICBicmVh azsKLSsJCSAgY2FzZSBDT01QT05FTlRfUkVGOgotKwkJICAgIGlmICgoVFJFRV9DT0RFIChUUkVF X1RZUEUgKFRSRUVfT1BFUkFORCAodiwgMCkpKQotKwkJCSA9PSBSRUNPUkRfVFlQRQotKwkJCSAm JiBUUkVFX0NIQUlOIChUUkVFX09QRVJBTkQgKHYsIDEpKSkKLSsJCQl8fCBUUkVFX0NPREUgKFRS RUVfVFlQRSAodikpICE9IEFSUkFZX1RZUEUpCi0rCQkgICAgICB2ID0gTlVMTF9UUkVFOwotKwkJ ICAgIGVsc2UKLSsJCSAgICAgIHsKLSsJCQlpZiAoVFJFRV9DT0RFIChUUkVFX1RZUEUgKFRSRUVf T1BFUkFORCAodiwgMCkpKQotKwkJCSAgICA9PSBSRUNPUkRfVFlQRSkKLSsJCQkgIHYgPSBUUkVF X09QRVJBTkQgKHYsIDApOwotKwkJCXdoaWxlICh2ICYmIHYgIT0gcHRfdmFyICYmIFRSRUVfQ09E RSAodikgPT0gQ09NUE9ORU5UX1JFRikKLSsJCQkgIGlmIChUUkVFX0NPREUgKFRSRUVfVFlQRSAo dikpICE9IFVOSU9OX1RZUEUKLSsJCQkgICAgICAmJiBUUkVFX0NPREUgKFRSRUVfVFlQRSAodikp ICE9IFFVQUxfVU5JT05fVFlQRSkKLSsJCQkgICAgYnJlYWs7Ci0rCQkJICBlbHNlCi0rCQkJICAg IHYgPSBUUkVFX09QRVJBTkQgKHYsIDApOwotKwkJCWlmICh2ICYmIHYgIT0gcHRfdmFyKQotKwkJ CSAgdiA9IE5VTExfVFJFRTsKLSsJCQllbHNlCi0rCQkJICB2ID0gcHRfdmFyOwotKwkJICAgICAg fQotKwkJICAgIGJyZWFrOwotKwkJICBkZWZhdWx0OgotKwkJICAgIHYgPSBwdF92YXI7Ci0rCQkg ICAgYnJlYWs7Ci0rCQkgIH0KLSsJICAgICAgaWYgKHYgPT0gcHRfdmFyKQotIAkJdmFyID0gcHRf dmFyOwotIAkgICAgfQotLQkgIGVsc2UKLS0JICAgIHZhciA9IHB0X3ZhcjsKLSsJfQotKyAgICAg IGVsc2UKLSsJdmFyID0gcHRfdmFyOwotIAotLQkgIGJ5dGVzID0gY29tcHV0ZV9vYmplY3Rfb2Zm c2V0IChUUkVFX09QRVJBTkQgKHB0ciwgMCksIHZhcik7Ci0tCSAgaWYgKGJ5dGVzICE9IGVycm9y X21hcmtfbm9kZSkKLSsgICAgICBpZiAodmFyICE9IHB0X3ZhcikKLSsJdmFyX3NpemUgPSBUWVBF X1NJWkVfVU5JVCAoVFJFRV9UWVBFICh2YXIpKTsKLSsgICAgICBlbHNlIGlmICghcHRfdmFyX3Np emUpCi0rCXJldHVybiB1bmtub3duW29iamVjdF9zaXplX3R5cGVdOwotKyAgICAgIGVsc2UKLSsJ dmFyX3NpemUgPSBwdF92YXJfc2l6ZTsKLSsgICAgICBieXRlcyA9IGNvbXB1dGVfb2JqZWN0X29m ZnNldCAoVFJFRV9PUEVSQU5EIChwdHIsIDApLCB2YXIpOwotKyAgICAgIGlmIChieXRlcyAhPSBl cnJvcl9tYXJrX25vZGUpCi0rCXsKLSsJICBpZiAoVFJFRV9DT0RFIChieXRlcykgPT0gSU5URUdF Ul9DU1QKLSsJICAgICAgJiYgdHJlZV9pbnRfY3N0X2x0ICh2YXJfc2l6ZSwgYnl0ZXMpKQotKwkg ICAgYnl0ZXMgPSBzaXplX3plcm9fbm9kZTsKLSsJICBlbHNlCi0rCSAgICBieXRlcyA9IHNpemVf Ymlub3AgKE1JTlVTX0VYUFIsIHZhcl9zaXplLCBieXRlcyk7Ci0rCX0KLSsgICAgICBpZiAodmFy ICE9IHB0X3ZhcgotKwkgICYmIHB0X3Zhcl9zaXplCi0rCSAgJiYgVFJFRV9DT0RFIChwdF92YXIp ID09IElORElSRUNUX1JFRgotKwkgICYmIGJ5dGVzICE9IGVycm9yX21hcmtfbm9kZSkKLSsJewot KwkgIHRyZWUgYnl0ZXMyID0gY29tcHV0ZV9vYmplY3Rfb2Zmc2V0IChUUkVFX09QRVJBTkQgKHB0 ciwgMCksIHB0X3Zhcik7Ci0rCSAgaWYgKGJ5dGVzMiAhPSBlcnJvcl9tYXJrX25vZGUpCi0gCSAg ICB7Ci0tCSAgICAgIGlmIChUUkVFX0NPREUgKGJ5dGVzKSA9PSBJTlRFR0VSX0NTVAotLQkJICAm JiB0cmVlX2ludF9jc3RfbHQgKFRZUEVfU0laRV9VTklUIChUUkVFX1RZUEUgKHZhcikpLCBieXRl cykpCi0tCQlieXRlcyA9IHNpemVfemVyb19ub2RlOwotKwkgICAgICBpZiAoVFJFRV9DT0RFIChi eXRlczIpID09IElOVEVHRVJfQ1NUCi0rCQkgICYmIHRyZWVfaW50X2NzdF9sdCAocHRfdmFyX3Np emUsIGJ5dGVzMikpCi0rCQlieXRlczIgPSBzaXplX3plcm9fbm9kZTsKLSAJICAgICAgZWxzZQot LQkJYnl0ZXMgPSBzaXplX2Jpbm9wIChNSU5VU19FWFBSLAotLQkJCQkgICAgVFlQRV9TSVpFX1VO SVQgKFRSRUVfVFlQRSAodmFyKSksIGJ5dGVzKTsKLSsJCWJ5dGVzMiA9IHNpemVfYmlub3AgKE1J TlVTX0VYUFIsIHZhcl9zaXplLCBieXRlczIpOwotKwkgICAgICBieXRlcyA9IHNpemVfYmlub3Ag KE1JTl9FWFBSLCBieXRlcywgYnl0ZXMyKTsKLSAJICAgIH0KLSAJfQotLSAgICAgIGVsc2UKLS0J Ynl0ZXMgPSBUWVBFX1NJWkVfVU5JVCAoVFJFRV9UWVBFIChwdF92YXIpKTsKLS0KLS0gICAgICBp ZiAoaG9zdF9pbnRlZ2VycCAoYnl0ZXMsIDEpKQotLQlyZXR1cm4gdHJlZV9sb3dfY3N0IChieXRl cywgMSk7Ci0gICAgIH0KLSsgIGVsc2UgaWYgKCFwdF92YXJfc2l6ZSkKLSsgICAgcmV0dXJuIHVu a25vd25bb2JqZWN0X3NpemVfdHlwZV07Ci0rICBlbHNlCi0rICAgIGJ5dGVzID0gcHRfdmFyX3Np emU7Ci0rCi0rICBpZiAoaG9zdF9pbnRlZ2VycCAoYnl0ZXMsIDEpKQotKyAgICByZXR1cm4gdHJl ZV9sb3dfY3N0IChieXRlcywgMSk7Ci0gCi0gICByZXR1cm4gdW5rbm93bltvYmplY3Rfc2l6ZV90 eXBlXTsKLSB9Ci1AQCAtMzMyLDExICs0NDYsMTEgQEAgY29tcHV0ZV9idWlsdGluX29iamVjdF9z aXplICh0cmVlIHB0ciwgaQotICAgICBpbml0X29mZnNldF9saW1pdCAoKTsKLSAKLSAgIGlmIChU UkVFX0NPREUgKHB0cikgPT0gQUREUl9FWFBSKQotLSAgICByZXR1cm4gYWRkcl9vYmplY3Rfc2l6 ZSAocHRyLCBvYmplY3Rfc2l6ZV90eXBlKTsKLSsgICAgcmV0dXJuIGFkZHJfb2JqZWN0X3NpemUg KE5VTEwsIHB0ciwgb2JqZWN0X3NpemVfdHlwZSk7Ci0gCi0gICBpZiAoVFJFRV9DT0RFIChwdHIp ID09IFNTQV9OQU1FCi0tCSAgICYmIFBPSU5URVJfVFlQRV9QIChUUkVFX1RZUEUgKHB0cikpCi0t CSAgICYmIG9iamVjdF9zaXplc1tvYmplY3Rfc2l6ZV90eXBlXSAhPSBOVUxMKQotKyAgICAgICYm IFBPSU5URVJfVFlQRV9QIChUUkVFX1RZUEUgKHB0cikpCi0rICAgICAgJiYgb2JqZWN0X3NpemVz W29iamVjdF9zaXplX3R5cGVdICE9IE5VTEwpCi0gICAgIHsKLSAgICAgICBpZiAoIWJpdG1hcF9i aXRfcCAoY29tcHV0ZWRbb2JqZWN0X3NpemVfdHlwZV0sIFNTQV9OQU1FX1ZFUlNJT04gKHB0cikp KQotIAl7Ci1AQCAtNDc3LDcgKzU5MSw3IEBAIGV4cHJfb2JqZWN0X3NpemUgKHN0cnVjdCBvYmpl Y3Rfc2l6ZV9pbmYKLSAJICAgICAgfHwgIVBPSU5URVJfVFlQRV9QIChUUkVFX1RZUEUgKHZhbHVl KSkpOwotIAotICAgaWYgKFRSRUVfQ09ERSAodmFsdWUpID09IEFERFJfRVhQUikKLS0gICAgYnl0 ZXMgPSBhZGRyX29iamVjdF9zaXplICh2YWx1ZSwgb2JqZWN0X3NpemVfdHlwZSk7Ci0rICAgIGJ5 dGVzID0gYWRkcl9vYmplY3Rfc2l6ZSAob3NpLCB2YWx1ZSwgb2JqZWN0X3NpemVfdHlwZSk7Ci0g ICBlbHNlCi0gICAgIGJ5dGVzID0gdW5rbm93bltvYmplY3Rfc2l6ZV90eXBlXTsKLSAKLUBAIC02 MzMsNyArNzQ3LDcgQEAgcGx1c19zdG10X29iamVjdF9zaXplIChzdHJ1Y3Qgb2JqZWN0X3Npegot IAkgIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQgb2ZmID0gdHJlZV9sb3dfY3N0IChvcDEsIDEpOwot IAotICAgICAgICAgICAvKiBvcDAgd2lsbCBiZSBBRERSX0VYUFIgaGVyZS4gICovCi0tCSAgYnl0 ZXMgPSBjb21wdXRlX2J1aWx0aW5fb2JqZWN0X3NpemUgKG9wMCwgb2JqZWN0X3NpemVfdHlwZSk7 Ci0rCSAgYnl0ZXMgPSBhZGRyX29iamVjdF9zaXplIChvc2ksIG9wMCwgb2JqZWN0X3NpemVfdHlw ZSk7Ci0gCSAgaWYgKGJ5dGVzID09IHVua25vd25bb2JqZWN0X3NpemVfdHlwZV0pCi0gCSAgICA7 Ci0gCSAgZWxzZSBpZiAob2ZmID4gb2Zmc2V0X2xpbWl0KQoKZGlmZiAtLWdpdCBhL2djYzQ0LWVw aWxvZ3VlLXVud2luZC5wYXRjaCBiL2djYzQ0LWVwaWxvZ3VlLXVud2luZC5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYThjMDA2MS4uMDAwMDAwMAotLS0gYS9nY2M0NC1lcGls b2d1ZS11bndpbmQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMTA3ICswLDAgQEAKLTIwMDkt MDYtMDggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0JKiBkd2FyZjJvdXQu YyAoZW1pdF9jZmFfcmVtZW1iZXIpOiBOZXcgdmFyaWFibGUuCi0JKGFkZF9mZGVfY2ZpKTogSWYg ZW1pdF9jZmFfcmVtZW1iZXIsIHJlY3Vyc2UgdG8gYWRkCi0JRFdfQ0ZBX3JlbWVtYmVyX3N0YXRl IGZpcnN0LgotCShkd2FyZjJvdXRfYmVnaW5fZXBpbG9ndWUpOiBEb24ndCBhZGRfZmRlX2NmaSBE V19DRkFfcmVtZW1iZXJfc3RhdGUsCi0JaW5zdGVhZCBqdXN0IHNldCBlbWl0X2NmYV9yZW1lbWJl ci4KLQotMjAwOS0wNi0wOCAgQWRhbSBOZW1ldCAgPGFuZW1ldEBjYXZpdW1uZXR3b3Jrcy5jb20+ Ci0KLQkqIGp1bXAuYyAocmV0dXJuanVtcF9wKTogSGFuZGxlIGRlbGF5ZWQgYnJhbmNoZXMuICBB ZGQgbWlzc2luZwotCWZ1bmN0aW9uIGNvbW1lbnQuCi0KLTIwMDktMDYtMDUgIE5hdGhhbiBGcm95 ZCAgPGZyb3lkbmpAY29kZXNvdXJjZXJ5LmNvbT4KLQotCSogY29uZmlnL3JzNjAwMC9wcGMtYXNt Lmg6IFByb3RlY3QgYXV0by1ob3N0LmggaW5jbHVzaW9uIGFuZAotCUNGSV8qIGRlZmluaXRpb25z IHdpdGggSU5fR0NDLgotCi0yMDA5LTA2LTA0ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0 LmNvbT4KLQotCSogY29uZmlnL3MzOTAvczM5MC5jIChnbG9iYWxfbm90X3NwZWNpYWxfcmVnbm9f cCk6IE5ldyBzdGF0aWMgaW5saW5lLgotCShzYXZlX2dwcnMpOiBEb24ndCB0ZWxsIHVud2luZGVy IHdoZW4gYSBnbG9iYWwgcmVnaXN0ZXIgaXMgc2F2ZWQuCi0JKHMzOTBfZW1pdF9lcGlsb2d1ZSk6 IEVtaXQgbmVlZGVkIGVwaWxvZ3VlIHVud2luZCBpbmZvLgotCi0yMDA5LTA2LTAzICBKYWt1YiBK ZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KLQotCSogY29uZmlnL3JzNjAwMC9yczYwMDAuYyAo cnM2MDAwX2VtaXRfc3RhY2tfcmVzZXQpOiBSZXR1cm4gZ2VuZXJhdGVkCi0JaW5zbiBpZiBpdCBp cyBjaGFuZ2luZyBzcC4gIFVzZSBnZW5fYWRkM19pbnNuIGluc3RlYWQgb2YKLQljb25kaXRpb25h bGx5IGdlbl9hZGRzaTMgYW5kIGdlbl9hZGRkaTMuCi0JKG9mZnNldF9iZWxvd19yZWRfem9uZV9w KTogTmV3IHN0YXRpYyBpbmxpbmUgZnVuY3Rpb24uCi0JKHJzNjAwMF9lbWl0X2VwaWxvZ3VlKTog RW1pdCBuZWVkZWQgZXBpbG9ndWUgdW53aW5kIGluZm8uCi0JVXNlIGdlbl9hZGQzX2luc24gaW5z dGVhZCBvZiBjb25kaXRpb25hbGx5IGdlbl9hZGRzaTMgYW5kIGdlbl9hZGRkaTMuCi0JKiBjb25m aWcvcnM2MDAwL3BwYy1hc20uaDogSW5jbHVkZSBhdXRvLWhvc3QuaC4KLQkoQ0ZJX1NUQVJUUFJP QywgQ0ZJX0VORFBST0MsIENGSV9ERUZfQ0ZBX1JFR0lTVEVSLCBDRklfT0ZGU0VULAotCUNGSV9S RVNUT1JFKTogRGVmaW5lLgotCSogY29uZmlnL3JzNjAwMC9jcnRyZXN4Z3ByLmFzbTogQWRkIHVu d2luZCBpbmZvLgotCSogY29uZmlnL3JzNjAwMC9jcnRyZXN4ZnByLmFzbTogTGlrZXdpc2UuCi0J KiBjb25maWcvcnM2MDAwL2NydHJlc2dwci5hc206IExpa2V3aXNlLgotCSogY29uZmlnL3JzNjAw MC9jcnRyZXNmcHIuYXNtOiBMaWtld2lzZS4KLQkqIGNvbmZpZy9yczYwMDAvY3J0c2F2Z3ByLmFz bTogTGlrZXdpc2UuCi0JKiBjb25maWcvcnM2MDAwL2NydHNhdmZwci5hc206IExpa2V3aXNlLgot Ci0yMDA5LTA2LTAxICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KLQotCSogY29u ZmlnL2kzODYvaTM4Ni5jIChxdWV1ZWRfY2ZhX3Jlc3RvcmVzKTogTmV3IHN0YXRpYyB2YXJpYWJs ZS4KLQkoaXg4Nl9hZGRfY2ZhX3Jlc3RvcmVfbm90ZSwgaXg4Nl9hZGRfcXVldWVkX2NmYV9yZXN0 b3JlX25vdGVzKTogTmV3Ci0JZnVuY3Rpb25zLgotCShwcm9fZXBpbG9ndWVfYWRqdXN0X3N0YWNr KTogQ2FsbCBpeDg2X2FkZF9xdWV1ZWRfY2ZhX3Jlc3RvcmVfbm90ZXMuCi0JKGl4ODZfZW1pdF9y ZXN0b3JlX3JlZ191c2luZ19wb3ApOiBBZGQgUkVEX09GRlNFVCBhcmd1bWVudC4KLQlTZXQgUlRY X0ZSQU1FX1JFTEFURURfUCBpbW1lZGlhdGVseSBhZnRlciBhZGRpbmcgYSBSRUdfQ0ZBXyogbm90 ZS4KLQlDYWxsIGl4ODZfYWRkX2NmYV9yZXN0b3JlX25vdGUgaW5zdGVhZCBvZiBhZGRpbmcgUkVH X0NGQV9PRkZTRVQKLQlub3RlIHVuY29uZGl0aW9uYWxseS4KLQkoaXg4Nl9lbWl0X3Jlc3RvcmVf cmVnc191c2luZ19tb3YpOiBMaWtld2lzZS4KLQkoaXg4Nl9lbWl0X3Jlc3RvcmVfc3NlX3JlZ3Nf dXNpbmdfbW92KTogTGlrZXdpc2UuCi0JKGl4ODZfZW1pdF9yZXN0b3JlX3JlZ3NfdXNpbmdfcG9w KTogQWRkIFJFRF9PRkZTRVQgYXJndW1lbnQsIHBhc3MKLQlpdCB0aHJvdWdoIHRvIGl4ODZfZW1p dF9yZXN0b3JlX3JlZ191c2luZ19wb3AuCi0JKGl4ODZfZW1pdF9sZWF2ZSk6IEFkZCBSRURfT0ZG U0VUIGFyZ3VtZW50LiAgQ2FsbAotCWl4ODZfYWRkX3F1ZXVlZF9jZmFfcmVzdG9yZV9ub3Rlcy4g IENhbGwgaXg4Nl9hZGRfY2ZhX3Jlc3RvcmVfbm90ZQotCWluc3RlYWQgb2YgYWRkaW5nIFJFR19D RkFfT0ZGU0VUIG5vdGUgdW5jb25kaXRpb25hbGx5LgotCShpeDg2X2V4cGFuZF9lcGlsb2d1ZSk6 IENvbXB1dGUgUkVEX09GRlNFVCwgcGFzcyBpdCBkb3duIHRvCi0JdGhlIGFib3ZlIGZ1bmN0aW9u cy4gIENhbGwgaXg4Nl9hZGRfcXVldWVkX2NmYV9yZXN0b3JlX25vdGVzIHdoZW4KLQluZWVkZWQu Ci0KLQkqIGNvbmZpZy9pMzg2L2kzODYuaCAoc3RydWN0IG1hY2hpbmVfY2ZhX3N0YXRlLAotCXN0 cnVjdCBtYWNoaW5lX2Z1bmN0aW9uKTogR3VhcmQgd2l0aCBpZm5kZWYgVVNFRF9GT1JfVEFSR0VU Ci0JaW5zdGVhZCBvZiBub3QgSU5fTElCR0NDMiBhbmQgbm90IGluIElOX1RBUkdFVF9MSUJTLgot Ci0JUFIgbWlkZGxlLWVuZC80MDMxNgotCSogcmVjb2cuYyAocGVlcDJfcmVpbml0X3N0YXRlKTog TmV3IGZ1bmN0aW9uLgotCShwZWVwaG9sZTJfaW5pdF9zdGF0ZSk6IFVzZSBpdCBhdCB0aGUgZW5k IG9mIGEgYmFzaWMgYmxvY2sgYW5kIGFsc28KLQl3aGVuIHNlZWluZyBhIFJUWF9GUkFNRV9SRUxB VEVEX1AgaW5zbi4KLQotMjAwOS0wNS0zMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5j b20+Ci0KLQlQUiBtaWRkbGUtZW5kLzQwMzA0Ci0JKiBjb25maWcvaTM4Ni9pMzg2LmMgKHByb19l cGlsb2d1ZV9hZGp1c3Rfc3RhY2spOiBNYXJrIGluc25zCi0JZnJhbWUgcmVsYXRlZCBldmVuIGlm ICFzZXRfY2ZhICYmIHN0eWxlIDwgMC4KLQotMjAwOS0wNS0yOSAgUmljaGFyZCBIZW5kZXJzb24g IDxydGhAcmVkaGF0LmNvbT4KLQotCSogY2ZnY2xlYW51cC5jICh0cnlfY3Jvc3NqdW1wX3RvX2Vk Z2UpOiBPbmx5IHNraXAgcGFzdAotCU5PVEVfSU5TTl9CQVNJQ19CTE9DSy4KLQkqIGNmZ2xheW91 dC5jIChkdXBsaWNhdGVfaW5zbl9jaGFpbik6IENvcHkgZXBpbG9ndWUgaW5zbiBtYXJrcy4KLQlE dXBsaWNhdGUgTk9URV9JTlNOX0VQSUxPR1VFX0JFRyBub3Rlcy4KLQkqIGNmZ3J0bC5jIChjYW5f ZGVsZXRlX25vdGVfcCk6IEFsbG93IE5PVEVfSU5TTl9FUElMT0dVRV9CRUcKLQl0byBiZSBkZWxl dGVkLgotCSogZHdhcmYyb3V0LmMgKHN0cnVjdCBjZmFfbG9jKTogQ2hhbmdlIGluZGlyZWN0IGZp ZWxkIHRvIGJpdGZpZWxkLAotCWFkZCBpbl91c2UgZmllbGQuCi0JKGFkZF9jZmkpOiBEaXNhYmxl IGNoZWNrIHJlZGVmaW5pbmcgY2ZhIGF3YXkgZnJvbSBkcmFwLgotCShsb29rdXBfY2ZhXzEpOiBB ZGQgcmVtZW1iZXIgYXJndW1lbnQ7IGhhbmRsZSByZW1lbWJlci9yZXN0b3JlLgotCShsb29rdXBf Y2ZhKTogUGFzcyByZW1lbWJlciBhcmd1bWVudC4KLQkoY2ZhX3JlbWVtYmVyKTogTmV3LgotCShj b21wdXRlX2JhcnJpZXJfYXJnc19zaXplXzEpOiBSZW1vdmUgc2liY2FsbCBjaGVjay4KLQkoZHdh cmYyb3V0X2ZyYW1lX2RlYnVnX2RlZl9jZmEpOiBOZXcuCi0JKGR3YXJmMm91dF9mcmFtZV9kZWJ1 Z19hZGp1c3RfY2ZhKTogTmV3LgotCShkd2FyZjJvdXRfZnJhbWVfZGVidWdfY2ZhX29mZnNldCk6 IE5ldy4KLQkoZHdhcmYyb3V0X2ZyYW1lX2RlYnVnX2NmYV9yZWdpc3Rlcik6IE5ldy4KLQkoZHdh cmYyb3V0X2ZyYW1lX2RlYnVnX2NmYV9yZXN0b3JlKTogTmV3LgotCShkd2FyZjJvdXRfZnJhbWVf ZGVidWcpOiBIYW5kbGUgUkVHX0NGQV8qIG5vdGVzLgotCShkd2FyZjJvdXRfYmVnaW5fZXBpbG9n dWUpOiBOZXcuCi0JKGR3YXJmMm91dF9mcmFtZV9kZWJ1Z19yZXN0b3JlX3N0YXRlKTogTmV3Lgot CShkd19jZmlfb3BybmQxX2Rlc2MpOiBIYW5kbGUgRFdfQ0ZBX3JlbWVtYmVyX3N0YXRlLAotCURX X0NGQV9yZXN0b3JlX3N0YXRlLgotCShvdXRwdXRfY2ZpX2RpcmVjdGl2ZSk6IExpa2V3aXNlLgot CShjb252ZXJ0X2NmYV90b19mYl9sb2NfbGlzdCk6IExpa2V3aXNlLgotCShkd19jZmlfb3BybmQx X2Rlc2MpOiBIYW5kbGUgRFdfQ0ZBX3Jlc3RvcmUuCi0JKiBkd2FyZjJvdXQuaDogVXBkYXRlLgot CSogZW1pdC1ydGwuYyAodHJ5X3NwbGl0KTogRG9uJ3Qgc3BsaXQgUlRYX0ZSQU1FX1JFTEFURURf UC4KLQkoY29weV9pbnNuXzEpOiBFYXJseSBvdXQgZm9yIG51bGwuCi0JKiBmaW5hbC5jIChmaW5h bF9zY2FuX2luc24pOiBDYWxsIGR3YXJmMm91dF9iZWdpbl9lcGlsb2d1ZQotCWFuZCBkd2FyZjJv dXRfZnJhbWVfZGVidWdfcmVzdG9yZV9zdGF0ZS4KLQkqIGZ1bmN0aW9uLmMgKHByb2xvZ3VlLCBl cGlsb2d1ZSwgc2liY2FsbF9lcGlsb2d1ZSk6IFJlbW92ZS4KLQkocHJvbG9ndWVfaW5zbl9oYXNo LCBlcGlsb2d1ZV9pbnNuX2hhc2gpOiBOZXcuCi0JKGZyZWVfYWZ0ZXJfY29tcGlsYXRpb24pOiBB ZGp1c3QgZnJlZWluZyBhY2NvcmRpbmdseS4KLQkocmVjb3JkX2luc25zKTogQ3JlYXRlIGhhc2gg dGFibGUgaWYgbmVlZGVkOyBwdXNoIGluc25zIGludG8KLQloYXNoIGluc3RlYWQgb2YgYXJyYXku Ci0JKG1heWJlX2NvcHlfZXBpbG9ndWVfaW5zbik6IE5ldy4KLQkoY29udGFpbnMpOiBTZWFyY2gg aGFzaCB0YWJsZSBpbnN0ZWFkIG9mIGFycmF5LgotCShzaWJjYWxsX2VwaWxvZ3VlX2NvbnRhaW5z KTogUmVtb3ZlLgotCSh0aHJlYWRfcHJvbG9ndWVfYW5kX2VwaWxvZ3VlX2luc25zKTogU3BsaXQg ZWhfcmV0dXJuIGluc25zCi0JYW5kIG1hcmsgdGhlbSBhcyBlcGlsb2d1ZXMuCi0JKHJlcG9zaXRp b25fcHJvbG9ndWVfYW5kX2VwaWxvZ3VlX25vdGVzKTogUmV3cml0ZSBlcGlsb2d1ZQotCXNjYW5u aW5nIGluIHRlcm1zIG9mIGJhc2ljIGJsb2Nrcy4KLQkqIGluc24tbm90ZXMuZGVmIChDRkFfUkVT VE9SRV9TVEFURSk6IE5ldy4KLQkqIGp1bXAuYyAocmV0dXJuanVtcF9wXzEpOiBBY2NlcHQgRUhf UkVUVVJOLgotCShlaF9yZXR1cm5qdW1wX3BfMSwgZWhfcmV0dXJuanVtcF9wKTogTmV3LgotCSog cmVnLW5vdGVzLmRlZiAoQ0ZBX0RFRl9DRkEsIENGQV9BREpVU1RfQ0ZBLCBDRkFfT0ZGU0VULAot CUNGQV9SRUdJU1RFUiwgQ0ZBX1JFU1RPUkUpOiBOZXcuCi0JKiBydGwuZGVmIChFSF9SRVRVUk4p OiBOZXcuCi0JKiBydGwuaCAoZWhfcmV0dXJuanVtcF9wLCBtYXliZV9jb3B5X2VwaWxvZ3VlX2lu c24pOiBEZWNsYXJlLgotCi0JKiBjb25maWcvYmZpbi9iZmluLm1kIChVTlNQRUNfVk9MQVRJTEVf RUhfUkVUVVJOKTogUmVtb3ZlLgotCShlaF9yZXR1cm5faW50ZXJuYWwpOiBVc2UgZWhfcmV0dXJu IHJ0eDsgc3BsaXQgdy8gZXBpbG9ndWUuCi0KLQkqIGNvbmZpZy9pMzg2L2kzODYuYyAoZ2VuX3B1 c2gpOiBVcGRhdGUgY2ZhIHN0YXRlLgotCShwcm9fZXBpbG9ndWVfYWRqdXN0X3N0YWNrKTogQWRk IHNldF9jZmEgYXJndW1lbnQuICBXaGVuIHRydWUsCi0JYWRkIGEgQ0ZBX0FESlVTVF9DRkEgbm90 ZS4KLQkoaXg4Nl9kd2FyZl9oYW5kbGVfZnJhbWVfdW5zcGVjKTogUmVtb3ZlLgotCShpeDg2X2V4 cGFuZF9wcm9sb2d1ZSk6IFVwZGF0ZSBjZmEgc3RhdGUuCi0JKGl4ODZfZW1pdF9yZXN0b3JlX3Jl Z191c2luZ19wb3ApOiBOZXcuCi0JKGl4ODZfZW1pdF9yZXN0b3JlX3JlZ3NfdXNpbmdfcG9wKTog TmV3LgotCShpeDg2X2VtaXRfbGVhdmUpOiBOZXcuCi0JKGl4ODZfZW1pdF9yZXN0b3JlX3JlZ3Nf dXNpbmdfbW92KTogQWRkIENGQV9SRVNUT1JFIG5vdGVzLgotCShpeDg2X2V4cGFuZF9lcGlsb2d1 ZSk6IEFkZCBub3RlcyBmb3IgdW53aW5kaW5nIHRoZSBlcGlsb2d1ZS4KLQkqIGNvbmZpZy9pMzg2 L2kzODYuaCAoc3RydWN0IG1hY2hpbmVfY2ZhX3N0YXRlKTogTmV3LgotCShpeDg2X2NmYV9zdGF0 ZSk6IE5ldy4KLQkqIGNvbmZpZy9pMzg2L2kzODYubWQgKFVOU1BFQ19FSF9SRVRVUk4pOiBSZW1v dmUuCi0JKGVoX3JldHVybl9pbnRlcm5hbCk6IE1lcmdlIGZyb20gZWhfcmV0dXJuXzxtb2RlPiwK LQl1c2UgZWhfcmV0dXJuIHJ0eCwgc3BsaXQgdy8gZXBpbG9ndWUuCi0KLS0tLSBnY2MvcnRsLmRl Zi5qagkyMDA5LTAxLTE0IDEyOjA2OjI5LjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy9ydGwuZGVm CTIwMDktMDYtMDkgMDg6NTg6MDQuMDAwMDAwMDAwICswMjAwCi1AQCAtMjgxLDYgKzI4MSwxMCBA QCBERUZfUlRMX0VYUFIoQ0FMTCwgImNhbGwiLCAiZWUiLCBSVFhfRVhUCi0gCi0gREVGX1JUTF9F WFBSKFJFVFVSTiwgInJldHVybiIsICIiLCBSVFhfRVhUUkEpCi0gCi0rLyogU3BlY2lhbCBmb3Ig RUggcmV0dXJuIGZyb20gc3Vicm91dGluZS4gICovCi0rCi0rREVGX1JUTF9FWFBSKEVIX1JFVFVS TiwgImVoX3JldHVybiIsICIiLCBSVFhfRVhUUkEpCi0rCi0gLyogQ29uZGl0aW9uYWwgdHJhcC4K LSAgICBPcGVyYW5kIDEgaXMgdGhlIGNvbmRpdGlvbi4KLSAgICBPcGVyYW5kIDIgaXMgdGhlIHRy YXAgY29kZS4KLS0tLSBnY2MvY2ZnbGF5b3V0LmMuamoJMjAwOS0wMS0xNCAxMjowNjoyOS4wMDAw MDAwMDAgKzAxMDAKLSsrKyBnY2MvY2ZnbGF5b3V0LmMJMjAwOS0wNi0wOSAwODo1ODowNC4wMDAw MDAwMDAgKzAyMDAKLUBAIC0xMTEyLDcgKzExMTIsNyBAQCBjZmdfbGF5b3V0X2Nhbl9kdXBsaWNh dGVfYmJfcCAoY29uc3RfYmFzCi0gcnR4Ci0gZHVwbGljYXRlX2luc25fY2hhaW4gKHJ0eCBmcm9t LCBydHggdG8pCi0gewotLSAgcnR4IGluc24sIGxhc3Q7Ci0rICBydHggaW5zbiwgbGFzdCwgY29w eTsKLSAKLSAgIC8qIEF2b2lkIHVwZGF0aW5nIG9mIGJvdW5kYXJpZXMgb2YgcHJldmlvdXMgYmFz aWMgYmxvY2suICBUaGUKLSAgICAgIG5vdGUgd2lsbCBnZXQgcmVtb3ZlZCBmcm9tIGluc24gc3Ry ZWFtIGluIGZpeHVwLiAgKi8KLUBAIC0xMTMzLDcgKzExMzMsOCBAQCBkdXBsaWNhdGVfaW5zbl9j aGFpbiAocnR4IGZyb20sIHJ0eCB0bykKLSAJICBpZiAoR0VUX0NPREUgKFBBVFRFUk4gKGluc24p KSA9PSBBRERSX1ZFQwotIAkgICAgICB8fCBHRVRfQ09ERSAoUEFUVEVSTiAoaW5zbikpID09IEFE RFJfRElGRl9WRUMpCi0gCSAgICBicmVhazsKLS0JICBlbWl0X2NvcHlfb2ZfaW5zbl9hZnRlciAo aW5zbiwgZ2V0X2xhc3RfaW5zbiAoKSk7Ci0rCSAgY29weSA9IGVtaXRfY29weV9vZl9pbnNuX2Fm dGVyIChpbnNuLCBnZXRfbGFzdF9pbnNuICgpKTsKLSsgICAgICAgICAgbWF5YmVfY29weV9lcGls b2d1ZV9pbnNuIChpbnNuLCBjb3B5KTsKLSAJICBicmVhazsKLSAKLSAJY2FzZSBDT0RFX0xBQkVM OgotQEAgLTExNTMsMjMgKzExNTQsMTggQEAgZHVwbGljYXRlX2luc25fY2hhaW4gKHJ0eCBmcm9t LCBydHggdG8pCi0gCSAgICBjYXNlIE5PVEVfSU5TTl9ERUxFVEVEOgotIAkgICAgY2FzZSBOT1RF X0lOU05fREVMRVRFRF9MQUJFTDoKLSAJICAgICAgLyogTm8gcHJvYmxlbSB0byBzdHJpcCB0aGVz ZS4gICovCi0tCSAgICBjYXNlIE5PVEVfSU5TTl9FUElMT0dVRV9CRUc6Ci0tCSAgICAgIC8qIERl YnVnIGNvZGUgZXhwZWN0IHRoZXNlIG5vdGVzIHRvIGV4aXN0IGp1c3Qgb25jZS4KLS0JCSBLZWVw IHRoZW0gaW4gdGhlIG1hc3RlciBjb3B5LgotLQkJID8/PyBJdCBwcm9iYWJseSBtYWtlcyBtb3Jl IHNlbnNlIHRvIGR1cGxpY2F0ZSB0aGVtIGZvciBlYWNoCi0tCQkgZXBpbG9ndWUgY29weS4gICov Ci0gCSAgICBjYXNlIE5PVEVfSU5TTl9GVU5DVElPTl9CRUc6Ci0gCSAgICAgIC8qIFRoZXJlIGlz IGFsd2F5cyBqdXN0IHNpbmdsZSBlbnRyeSB0byBmdW5jdGlvbi4gICovCi0gCSAgICBjYXNlIE5P VEVfSU5TTl9CQVNJQ19CTE9DSzoKLSAJICAgICAgYnJlYWs7Ci0gCi0rCSAgICBjYXNlIE5PVEVf SU5TTl9FUElMT0dVRV9CRUc6Ci0gCSAgICBjYXNlIE5PVEVfSU5TTl9TV0lUQ0hfVEVYVF9TRUNU SU9OUzoKLSAJICAgICAgZW1pdF9ub3RlX2NvcHkgKGluc24pOwotIAkgICAgICBicmVhazsKLSAK LSAJICAgIGRlZmF1bHQ6Ci0tCSAgICAgIC8qIEFsbCBvdGhlciBub3RlcyBzaG91bGQgaGF2ZSBh bHJlYWR5IGJlZW4gZWxpbWluYXRlZC4KLS0JICAgICAgICovCi0rCSAgICAgIC8qIEFsbCBvdGhl ciBub3RlcyBzaG91bGQgaGF2ZSBhbHJlYWR5IGJlZW4gZWxpbWluYXRlZC4gICovCi0gCSAgICAg IGdjY191bnJlYWNoYWJsZSAoKTsKLSAJICAgIH0KLSAJICBicmVhazsKLS0tLSBnY2MvaW5zbi1u b3Rlcy5kZWYuamoJMjAwOS0wMS0xNCAxMjowNjoyOS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2Mv aW5zbi1ub3Rlcy5kZWYJMjAwOS0wNi0wOSAwODo1ODowNC4wMDAwMDAwMDAgKzAyMDAKLUBAIC03 MCw0ICs3MCw4IEBAIElOU05fTk9URSAoQkFTSUNfQkxPQ0spCi0gICAgYmV0d2VlbiBob3QgYW5k IGNvbGQgdGV4dCBzZWN0aW9ucy4gICovCi0gSU5TTl9OT1RFIChTV0lUQ0hfVEVYVF9TRUNUSU9O UykKLSAKLSsvKiBNYXJrIHRoZSByZXN0b3JlIHBvaW50IGFmdGVyIGFuIGVwaWxvZ3VlIGNoYW5n ZWQgQ0ZJIGRhdGEuICBVc2VkIG9ubHkKLSsgICB3aGVuIGFuIGVwaWxvZ3VlIGFwcGVhcnMgaW4g dGhlIG1pZGRsZSBvZiBhIGZ1bmN0aW9uLiAgKi8KLStJTlNOX05PVEUgKENGQV9SRVNUT1JFX1NU QVRFKQotKwotICN1bmRlZiBJTlNOX05PVEUKLS0tLSBnY2MvY2ZnY2xlYW51cC5jLmpqCTIwMDkt MDEtMTQgMTI6MDY6MjkuMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL2NmZ2NsZWFudXAuYwkyMDA5 LTA2LTA5IDA4OjU4OjA0LjAwMDAwMDAwMCArMDIwMAotQEAgLTE2NzIsOCArMTY3Miw3IEBAIHRy eV9jcm9zc2p1bXBfdG9fZWRnZSAoaW50IG1vZGUsIGVkZ2UgZTEKLSAgIC8qIFNraXAgcG9zc2li bGUgYmFzaWMgYmxvY2sgaGVhZGVyLiAgKi8KLSAgIGlmIChMQUJFTF9QIChuZXdwb3MxKSkKLSAg ICAgbmV3cG9zMSA9IE5FWFRfSU5TTiAobmV3cG9zMSk7Ci0tCi0tICBpZiAoTk9URV9QIChuZXdw b3MxKSkKLSsgIGlmIChOT1RFX0lOU05fQkFTSUNfQkxPQ0tfUCAobmV3cG9zMSkpCi0gICAgIG5l d3BvczEgPSBORVhUX0lOU04gKG5ld3BvczEpOwotIAotICAgcmVkaXJlY3RfZnJvbSA9IHNwbGl0 X2Jsb2NrIChzcmMxLCBQUkVWX0lOU04gKG5ld3BvczEpKS0+c3JjOwotLS0tIGdjYy9yZWctbm90 ZXMuZGVmLmpqCTIwMDktMDMtMDQgMTI6MTU6MjkuMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL3Jl Zy1ub3Rlcy5kZWYJMjAwOS0wNi0wOSAwODo1ODowNS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xMTgs NiArMTE4LDQxIEBAIFJFR19OT1RFIChCUl9QUkVEKQotICAgIGluc3RlYWQgb2YgaW50dWl0aW9u LiAgKi8KLSBSRUdfTk9URSAoRlJBTUVfUkVMQVRFRF9FWFBSKQotIAotKy8qIEF0dGFjaGVkIHRv IGluc25zIHRoYXQgYXJlIFJUWF9GUkFNRV9SRUxBVEVEX1AsIGJ1dCBhcmUgdG9vIGNvbXBsZXgK LSsgICBmb3IgRlJBTUVfUkVMQVRFRF9FWFBSIGludHVpdGlvbi4gIFRoZSBpbnNuJ3MgZmlyc3Qg cGF0dGVybiBtdXN0IGJlCi0rICAgYSBTRVQsIGFuZCB0aGUgZGVzdGluYXRpb24gbXVzdCBiZSB0 aGUgQ0ZBIHJlZ2lzdGVyLiAgVGhlIGF0dGFjaGVkCi0rICAgcnR4IGlzIGFuIGV4cHJlc3Npb24g dGhhdCBkZWZpbmVzIHRoZSBDRkEuICBJbiB0aGUgc2ltcGxlc3QgY2FzZSwgdGhlCi0rICAgcnR4 IGNvdWxkIGJlIGp1c3QgdGhlIHN0YWNrX3BvaW50ZXJfcnR4OyBtb3JlIGNvbW1vbiB3b3VsZCBi ZSBhIFBMVVMKLSsgICB3aXRoIGEgYmFzZSByZWdpc3RlciBhbmQgYSBjb25zdGFudCBvZmZzZXQu ICBJbiB0aGUgbW9zdCBjb21wbGljYXRlZAotKyAgIGNhc2VzLCB0aGlzIHdpbGwgcmVzdWx0IGlu IGEgRFdfQ0ZBX2RlZl9jZmFfZXhwcmVzc2lvbiB3aXRoIHRoZSBydHgKLSsgICBleHByZXNzaW9u IHJlbmRlcmVkIGluIGEgZHdhcmYgbG9jYXRpb24gZXhwcmVzc2lvbi4gICovCi0rUkVHX05PVEUg KENGQV9ERUZfQ0ZBKQotKwotKy8qIEF0dGFjaGVkIHRvIGluc25zIHRoYXQgYXJlIFJUWF9GUkFN RV9SRUxBVEVEX1AsIGJ1dCBhcmUgdG9vIGNvbXBsZXgKLSsgICBmb3IgRlJBTUVfUkVMQVRFRF9F WFBSIGludHVpdGlvbi4gIFRoaXMgbm90ZSBhZGp1c3RzIHRoZSBleHByZXNzaW9uCi0rICAgZnJv bSB3aGljaCB0aGUgQ0ZBIGlzIGNvbXB1dGVkLiAgVGhlIGF0dGFjaGVkIHJ0eCBkZWZpbmVzIGEg bmV3IENGQQotKyAgIGV4cHJlc3Npb24sIHJlbGF0aXZlIHRvIHRoZSBvbGQgQ0ZBIGV4cHJlc3Np b24uICBUaGlzIHJ0eCBtdXN0IGJlIG9mCi0rICAgdGhlIGZvcm0gKFNFVCBuZXctY2ZhLXJlZyAo UExVUyBvbGQtY2ZhLXJlZyBjb25zdF9pbnQpKS4gIElmIHRoZSBub3RlCi0rICAgcnR4IGlzIE5V TEwsIHdlIHVzZSB0aGUgZmlyc3QgU0VUIG9mIHRoZSBpbnNuLiAgKi8KLStSRUdfTk9URSAoQ0ZB X0FESlVTVF9DRkEpCi0rCi0rLyogU2ltaWxhciB0byBGUkFNRV9SRUxBVEVEX0VYUFIsIHdpdGgg dGhlIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdGhhdAotKyAgIHRoaXMgaXMgYSBzYXZlIHRvIG1l bW9yeSwgaS5lLiB3aWxsIHJlc3VsdCBpbiBEV19DRkFfb2Zmc2V0IG9yIHRoZQotKyAgIGxpa2Uu ICBUaGUgcGF0dGVybiBvciB0aGUgaW5zbiBzaG91bGQgYmUgYSBzaW1wbGUgc3RvcmUgcmVsYXRp dmUgdG8KLSsgICB0aGUgQ0ZBLiAgKi8KLStSRUdfTk9URSAoQ0ZBX09GRlNFVCkKLSsKLSsvKiBT aW1pbGFyIHRvIEZSQU1FX1JFTEFURURfRVhQUiwgd2l0aCB0aGUgYWRkaXRpb25hbCBpbmZvcm1h dGlvbiB0aGF0IHRoaXMKLSsgICBpcyBhIHNhdmUgdG8gYSByZWdpc3RlciwgaS5lLiB3aWxsIHJl c3VsdCBpbiBEV19DRkFfcmVnaXN0ZXIuICBUaGUgaW5zbgotKyAgIG9yIHRoZSBwYXR0ZXJuIHNo b3VsZCBiZSBzaW1wbGUgcmVnLXJlZyBtb3ZlLiAgKi8KLStSRUdfTk9URSAoQ0ZBX1JFR0lTVEVS KQotKwotKy8qIEF0dGFjaGVkIHRvIGluc25zIHRoYXQgYXJlIFJUWF9GUkFNRV9SRUxBVEVEX1As IHdpdGggdGhlIGluZm9ybWF0aW9uCi0rICAgdGhhdCB0aGlzIGlzIGEgcmVzdG9yZSBvcGVyYXRp b24sIGkuZS4gd2lsbCByZXN1bHQgaW4gRFdfQ0ZBX3Jlc3RvcmUKLSsgICBvciB0aGUgbGlrZS4g IEVpdGhlciB0aGUgYXR0YWNoZWQgcnR4LCBvciB0aGUgZGVzdGluYXRpb24gb2YgdGhlIGluc24n cwotKyAgIGZpcnN0IHBhdHRlcm4gaXMgdGhlIHJlZ2lzdGVyIHRvIGJlIHJlc3RvcmVkLiAgKi8K LStSRUdfTk9URSAoQ0ZBX1JFU1RPUkUpCi0rCi0gLyogSW5kaWNhdGVzIHRoYXQgUkVHIGhvbGRz IHRoZSBleGNlcHRpb24gY29udGV4dCBmb3IgdGhlIGZ1bmN0aW9uLgotICAgIFRoaXMgY29udGV4 dCBpcyBzaGFyZWQgYnkgaW5saW5lIGZ1bmN0aW9ucywgc28gdGhlIGNvZGUgdG8gYWNxdWlyZQot ICAgIHRoZSByZWFsIGV4Y2VwdGlvbiBjb250ZXh0IGlzIGRlbGF5ZWQgdW50aWwgYWZ0ZXIgaW5s aW5pbmcuICAqLwotLS0tIGdjYy9jb25maWcvaTM4Ni9pMzg2Lm1kLmpqCTIwMDktMDMtMTcgMjA6 MDQ6MTAuMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL2NvbmZpZy9pMzg2L2kzODYubWQJMjAwOS0w Ni0wOSAwODo1ODowNC4wMDAwMDAwMDAgKzAyMDAKLUBAIC04NCw3ICs4NCw2IEBAIChkZWZpbmVf Y29uc3RhbnRzCi0gICAgKFVOU1BFQ19BRERfQ0FSUlkJCTM0KQotICAgIChVTlNQRUNfRkxEQ1cJ CTM1KQotICAgIChVTlNQRUNfUkVQCQkJMzYpCi0tICAgKFVOU1BFQ19FSF9SRVRVUk4JCTM3KQot ICAgIChVTlNQRUNfTERfTVBJQwkJMzgpCTsgbG9hZF9tYWNob19waWNiYXNlCi0gICAgKFVOU1BF Q19UUlVOQ19OT09QCQkzOSkKLSAKLUBAIC0xNTM3OSwyMSArMTUzNzgsMTYgQEAgKGRlZmluZV9l eHBhbmQgImVoX3JldHVybiIKLSAgIHRtcCA9IGdlbl9ydHhfTUVNIChQbW9kZSwgdG1wKTsKLSAg IGVtaXRfbW92ZV9pbnNuICh0bXAsIHJhKTsKLSAKLS0gIGlmIChQbW9kZSA9PSBTSW1vZGUpCi0t ICAgIGVtaXRfanVtcF9pbnNuIChnZW5fZWhfcmV0dXJuX3NpIChzYSkpOwotLSAgZWxzZQotLSAg ICBlbWl0X2p1bXBfaW5zbiAoZ2VuX2VoX3JldHVybl9kaSAoc2EpKTsKLSsgIGVtaXRfanVtcF9p bnNuIChnZW5fZWhfcmV0dXJuX2ludGVybmFsICgpKTsKLSAgIGVtaXRfYmFycmllciAoKTsKLSAg IERPTkU7Ci0gfSkKLSAKLS0oZGVmaW5lX2luc25fYW5kX3NwbGl0ICJlaF9yZXR1cm5fPG1vZGU+ IgotLSAgWyhzZXQgKHBjKQotLSAgICAgICAgKHVuc3BlYyBbKG1hdGNoX29wZXJhbmQ6UCAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiYyIpXQotLQkgICAgICAgICBVTlNQRUNfRUhfUkVUVVJOKSldCi0r KGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiZWhfcmV0dXJuX2ludGVybmFsIgotKyAgWyhlaF9yZXR1 cm4pXQotICAgIiIKLSAgICIjIgotLSAgInJlbG9hZF9jb21wbGV0ZWQiCi0rICAiZXBpbG9ndWVf Y29tcGxldGVkIgotICAgWyhjb25zdF9pbnQgMCldCi0gICAiaXg4Nl9leHBhbmRfZXBpbG9ndWUg KDIpOyBET05FOyIpCi0gCi0tLS0gZ2NjL2NvbmZpZy9pMzg2L2kzODYuaC5qagkyMDA5LTA0LTE0 IDE1OjUxOjM2LjAwMDAwMDAwMCArMDIwMAotKysrIGdjYy9jb25maWcvaTM4Ni9pMzg2LmgJMjAw OS0wNi0wOSAwOTowODo1MC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0yNDA2LDYgKzI0MDYsMTUgQEAg ZW51bSBpeDg2X3N0YWNrX3Nsb3QKLSAMCi0gI2RlZmluZSBGQVNUQ0FMTF9QUkVGSVggJ0AnCi0g DAotKy8qIE1hY2hpbmUgc3BlY2lmaWMgQ0ZBIHRyYWNraW5nIGR1cmluZyBwcm9sb2d1ZS9lcGls b2d1ZSBnZW5lcmF0aW9uLiAgKi8KLSsKLSsjaWZuZGVmIFVTRURfRk9SX1RBUkdFVAotK3N0cnVj dCBtYWNoaW5lX2NmYV9zdGF0ZSBHVFkoKCkpCi0rewotKyAgcnR4IHJlZzsKLSsgIEhPU1RfV0lE RV9JTlQgb2Zmc2V0OwotK307Ci0rCi0gc3RydWN0IG1hY2hpbmVfZnVuY3Rpb24gR1RZKCgpKQot IHsKLSAgIHN0cnVjdCBzdGFja19sb2NhbF9lbnRyeSAqc3RhY2tfbG9jYWxzOwotQEAgLTI0MzQs NyArMjQ0Myw5IEBAIHN0cnVjdCBtYWNoaW5lX2Z1bmN0aW9uIEdUWSgoKSkKLSAgIC8qIFRoaXMg dmFsdWUgaXMgdXNlZCBmb3IgYW1kNjQgdGFyZ2V0cyBhbmQgc3BlY2lmaWVzIHRoZSBjdXJyZW50 IGFiaQotICAgICAgdG8gYmUgdXNlZC4gTVNfQUJJIG1lYW5zIG1zIGFiaS4gT3RoZXJ3aXNlIFNZ U1ZfQUJJIG1lYW5zIHN5c3YgYWJpLiAgKi8KLSAgIGludCBjYWxsX2FiaTsKLSsgIHN0cnVjdCBt YWNoaW5lX2NmYV9zdGF0ZSBjZmE7Ci0gfTsKLSsjZW5kaWYKLSAKLSAjZGVmaW5lIGl4ODZfc3Rh Y2tfbG9jYWxzIChjZnVuLT5tYWNoaW5lLT5zdGFja19sb2NhbHMpCi0gI2RlZmluZSBpeDg2X3Zh cmFyZ3NfZ3ByX3NpemUgKGNmdW4tPm1hY2hpbmUtPnZhcmFyZ3NfZ3ByX3NpemUpCi1AQCAtMjQ1 MCw2ICsyNDYxLDcgQEAgc3RydWN0IG1hY2hpbmVfZnVuY3Rpb24gR1RZKCgpKQotICAgIFJFR19T UCBpcyBsaXZlLiAgKi8KLSAjZGVmaW5lIGl4ODZfY3VycmVudF9mdW5jdGlvbl9jYWxsc190bHNf ZGVzY3JpcHRvciBcCi0gICAoaXg4Nl90bHNfZGVzY3JpcHRvcl9jYWxsc19leHBhbmRlZF9pbl9j ZnVuICYmIGRmX3JlZ3NfZXZlcl9saXZlX3AgKFNQX1JFRykpCi0rI2RlZmluZSBpeDg2X2NmYV9z dGF0ZSAoJmNmdW4tPm1hY2hpbmUtPmNmYSkKLSAKLSAvKiBDb250cm9sIGJlaGF2aW9yIG9mIHg4 Nl9maWxlX3N0YXJ0LiAgKi8KLSAjZGVmaW5lIFg4Nl9GSUxFX1NUQVJUX1ZFUlNJT05fRElSRUNU SVZFIGZhbHNlCi0tLS0gZ2NjL2NvbmZpZy9pMzg2L2kzODYuYy5qagkyMDA5LTA2LTA5IDA4OjE2 OjAwLjAwMDAwMDAwMCArMDIwMAotKysrIGdjYy9jb25maWcvaTM4Ni9pMzg2LmMJMjAwOS0wNi0w OSAwOTowOToxNC4wMDAwMDAwMDAgKzAyMDAKLUBAIC03NDgwLDYgKzc0ODAsOSBAQCBvdXRwdXRf c2V0X2dvdCAocnR4IGRlc3QsIHJ0eCBsYWJlbCBBVFRSCi0gc3RhdGljIHJ0eAotIGdlbl9wdXNo IChydHggYXJnKQotIHsKLSsgIGlmIChpeDg2X2NmYV9zdGF0ZS0+cmVnID09IHN0YWNrX3BvaW50 ZXJfcnR4KQotKyAgICBpeDg2X2NmYV9zdGF0ZS0+b2Zmc2V0ICs9IFVOSVRTX1BFUl9XT1JEOwot KwotICAgcmV0dXJuIGdlbl9ydHhfU0VUIChWT0lEbW9kZSwKLSAJCSAgICAgIGdlbl9ydHhfTUVN IChQbW9kZSwKLSAJCQkJICAgZ2VuX3J0eF9QUkVfREVDIChQbW9kZSwKLUBAIC03NTM5LDggKzc1 NDIsNyBAQCBpeDg2X3NhdmVfcmVnICh1bnNpZ25lZCBpbnQgcmVnbm8sIGludCBtCi0gCX0KLSAg ICAgfQotIAotLSAgaWYgKGNydGwtPmRyYXBfcmVnCi0tICAgICAgJiYgcmVnbm8gPT0gUkVHTk8g KGNydGwtPmRyYXBfcmVnKSkKLSsgIGlmIChjcnRsLT5kcmFwX3JlZyAmJiByZWdubyA9PSBSRUdO TyAoY3J0bC0+ZHJhcF9yZWcpKQotICAgICByZXR1cm4gMTsKLSAKLSAgIHJldHVybiAoZGZfcmVn c19ldmVyX2xpdmVfcCAocmVnbm8pCi1AQCAtNzg2OSw2ICs3ODcxLDQ5IEBAIGl4ODZfZW1pdF9z YXZlX3NzZV9yZWdzX3VzaW5nX21vdiAocnR4IHAKLSAgICAgICB9Ci0gfQotIAotK3N0YXRpYyBH VFkoKCkpIHJ0eCBxdWV1ZWRfY2ZhX3Jlc3RvcmVzOwotKwotKy8qIEFkZCBhIFJFR19DRkFfUkVT VE9SRSBSRUcgbm90ZSB0byBJTlNOIG9yIHF1ZXVlIHRoZW0gdW50aWwgbmV4dCBzdGFjawotKyAg IG1hbmlwdWxhdGlvbiBpbnNuLiAgRG9uJ3QgYWRkIGl0IGlmIHRoZSBwcmV2aW91c2x5Ci0rICAg c2F2ZWQgdmFsdWUgd2lsbCBiZSBsZWZ0IHVudG91Y2hlZCB3aXRoaW4gc3RhY2sgcmVkLXpvbmUg dGlsbCByZXR1cm4sCi0rICAgYXMgdW53aW5kZXJzIGNhbiBmaW5kIHRoZSBzYW1lIHZhbHVlIGlu IHRoZSByZWdpc3RlciBhbmQKLSsgICBvbiB0aGUgc3RhY2suICAqLwotKwotK3N0YXRpYyB2b2lk Ci0raXg4Nl9hZGRfY2ZhX3Jlc3RvcmVfbm90ZSAocnR4IGluc24sIHJ0eCByZWcsIEhPU1RfV0lE RV9JTlQgcmVkX29mZnNldCkKLSt7Ci0rICBpZiAoVEFSR0VUX1JFRF9aT05FCi0rICAgICAgJiYg IVRBUkdFVF82NEJJVF9NU19BQkkKLSsgICAgICAmJiByZWRfb2Zmc2V0ICsgUkVEX1pPTkVfU0la RSA+PSAwCi0rICAgICAgJiYgY3J0bC0+YXJncy5wb3BzX2FyZ3MgPCA2NTUzNikKLSsgICAgcmV0 dXJuOwotKwotKyAgaWYgKGluc24pCi0rICAgIHsKLSsgICAgICBhZGRfcmVnX25vdGUgKGluc24s IFJFR19DRkFfUkVTVE9SRSwgcmVnKTsKLSsgICAgICBSVFhfRlJBTUVfUkVMQVRFRF9QIChpbnNu KSA9IDE7Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgcXVldWVkX2NmYV9yZXN0b3JlcwotKyAgICAg ID0gYWxsb2NfRVhQUl9MSVNUIChSRUdfQ0ZBX1JFU1RPUkUsIHJlZywgcXVldWVkX2NmYV9yZXN0 b3Jlcyk7Ci0rfQotKwotKy8qIEFkZCBxdWV1ZWQgUkVHX0NGQV9SRVNUT1JFIG5vdGVzIGlmIGFu eSB0byBJTlNOLiAgKi8KLSsKLStzdGF0aWMgdm9pZAotK2l4ODZfYWRkX3F1ZXVlZF9jZmFfcmVz dG9yZV9ub3RlcyAocnR4IGluc24pCi0rewotKyAgcnR4IGxhc3Q7Ci0rICBpZiAoIXF1ZXVlZF9j ZmFfcmVzdG9yZXMpCi0rICAgIHJldHVybjsKLSsgIGZvciAobGFzdCA9IHF1ZXVlZF9jZmFfcmVz dG9yZXM7IFhFWFAgKGxhc3QsIDEpOyBsYXN0ID0gWEVYUCAobGFzdCwgMSkpCi0rICAgIDsKLSsg IFhFWFAgKGxhc3QsIDEpID0gUkVHX05PVEVTIChpbnNuKTsKLSsgIFJFR19OT1RFUyAoaW5zbikg PSBxdWV1ZWRfY2ZhX3Jlc3RvcmVzOwotKyAgcXVldWVkX2NmYV9yZXN0b3JlcyA9IE5VTExfUlRY OwotKyAgUlRYX0ZSQU1FX1JFTEFURURfUCAoaW5zbikgPSAxOwotK30KLSsKLSAvKiBFeHBhbmQg cHJvbG9ndWUgb3IgZXBpbG9ndWUgc3RhY2sgYWRqdXN0bWVudC4KLSAgICBUaGUgcGF0dGVybiBl eGlzdCB0byBwdXQgYSBkZXBlbmRlbmN5IG9uIGFsbCBlYnAtYmFzZWQgbWVtb3J5IGFjY2Vzc2Vz LgotICAgIFNUWUxFIHNob3VsZCBiZSBuZWdhdGl2ZSBpZiBpbnN0cnVjdGlvbnMgc2hvdWxkIGJl IG1hcmtlZCBhcyBmcmFtZSByZWxhdGVkLAotQEAgLTc4NzYsNyArNzkyMSw4IEBAIGl4ODZfZW1p dF9zYXZlX3NzZV9yZWdzX3VzaW5nX21vdiAocnR4IHAKLSAgICBvdGhlcndpc2UuICAqLwotIAot IHN0YXRpYyB2b2lkCi0tcHJvX2VwaWxvZ3VlX2FkanVzdF9zdGFjayAocnR4IGRlc3QsIHJ0eCBz cmMsIHJ0eCBvZmZzZXQsIGludCBzdHlsZSkKLStwcm9fZXBpbG9ndWVfYWRqdXN0X3N0YWNrIChy dHggZGVzdCwgcnR4IHNyYywgcnR4IG9mZnNldCwKLSsJCQkgICBpbnQgc3R5bGUsIGJvb2wgc2V0 X2NmYSkKLSB7Ci0gICBydHggaW5zbjsKLSAKLUBAIC03ODk5LDcgKzc5NDUsMjQgQEAgcHJvX2Vw aWxvZ3VlX2FkanVzdF9zdGFjayAocnR4IGRlc3QsIHJ0eAotICAgICAgIGluc24gPSBlbWl0X2lu c24gKGdlbl9wcm9fZXBpbG9ndWVfYWRqdXN0X3N0YWNrX3JleDY0XzIgKGRlc3QsIHNyYywgcjEx LAotIAkJCQkJCQkgICAgICAgb2Zmc2V0KSk7Ci0gICAgIH0KLS0gIGlmIChzdHlsZSA8IDApCi0r Ci0rICBpZiAoc3R5bGUgPj0gMCkKLSsgICAgaXg4Nl9hZGRfcXVldWVkX2NmYV9yZXN0b3JlX25v dGVzIChpbnNuKTsKLSsKLSsgIGlmIChzZXRfY2ZhKQotKyAgICB7Ci0rICAgICAgcnR4IHI7Ci0r Ci0rICAgICAgZ2NjX2Fzc2VydCAoaXg4Nl9jZmFfc3RhdGUtPnJlZyA9PSBzcmMpOwotKyAgICAg IGl4ODZfY2ZhX3N0YXRlLT5vZmZzZXQgKz0gSU5UVkFMIChvZmZzZXQpOwotKyAgICAgIGl4ODZf Y2ZhX3N0YXRlLT5yZWcgPSBkZXN0OwotKyAgICAKLSsgICAgICByID0gZ2VuX3J0eF9QTFVTIChQ bW9kZSwgc3JjLCBvZmZzZXQpOwotKyAgICAgIHIgPSBnZW5fcnR4X1NFVCAoVk9JRG1vZGUsIGRl c3QsIHIpOwotKyAgICAgIGFkZF9yZWdfbm90ZSAoaW5zbiwgUkVHX0NGQV9BREpVU1RfQ0ZBLCBy KTsKLSsgICAgICBSVFhfRlJBTUVfUkVMQVRFRF9QIChpbnNuKSA9IDE7Ci0rICAgIH0KLSsgIGVs c2UgaWYgKHN0eWxlIDwgMCkKLSAgICAgUlRYX0ZSQU1FX1JFTEFURURfUCAoaW5zbikgPSAxOwot IH0KLSAKLUBAIC04MDM1LDMwICs4MDk4LDYgQEAgaXg4Nl9pbnRlcm5hbF9hcmdfcG9pbnRlciAo dm9pZCkKLSAgIHJldHVybiB2aXJ0dWFsX2luY29taW5nX2FyZ3NfcnR4OwotIH0KLSAKLS0vKiBI YW5kbGUgdGhlIFRBUkdFVF9EV0FSRl9IQU5ETEVfRlJBTUVfVU5TUEVDIGhvb2suCi0tICAgVGhp cyBpcyBjYWxsZWQgZnJvbSBkd2FyZjJvdXQuYyB0byBlbWl0IGNhbGwgZnJhbWUgaW5zdHJ1Y3Rp b25zCi0tICAgZm9yIGZyYW1lLXJlbGF0ZWQgaW5zbnMgY29udGFpbmluZyBVTlNQRUNzIGFuZCBV TlNQRUNfVk9MQVRJTEVzLiAqLwotLXN0YXRpYyB2b2lkCi0taXg4Nl9kd2FyZl9oYW5kbGVfZnJh bWVfdW5zcGVjIChjb25zdCBjaGFyICpsYWJlbCwgcnR4IHBhdHRlcm4sIGludCBpbmRleCkKLS17 Ci0tICBydHggdW5zcGVjID0gU0VUX1NSQyAocGF0dGVybik7Ci0tICBnY2NfYXNzZXJ0IChHRVRf Q09ERSAodW5zcGVjKSA9PSBVTlNQRUMpOwotLQotLSAgc3dpdGNoIChpbmRleCkKLS0gICAgewot LSAgICBjYXNlIFVOU1BFQ19SRUdfU0FWRToKLS0gICAgICBkd2FyZjJvdXRfcmVnX3NhdmVfcmVn IChsYWJlbCwgWFZFQ0VYUCAodW5zcGVjLCAwLCAwKSwKLS0JCQkgICAgICBTRVRfREVTVCAocGF0 dGVybikpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIFVOU1BFQ19ERUZfQ0ZBOgotLSAgICAg IGR3YXJmMm91dF9kZWZfY2ZhIChsYWJlbCwgUkVHTk8gKFNFVF9ERVNUIChwYXR0ZXJuKSksCi0t CQkJIElOVFZBTCAoWFZFQ0VYUCAodW5zcGVjLCAwLCAwKSkpOwotLSAgICAgIGJyZWFrOwotLSAg ICBkZWZhdWx0OgotLSAgICAgIGdjY191bnJlYWNoYWJsZSAoKTsKLS0gICAgfQotLX0KLS0KLSAv KiBGaW5hbGl6ZSBzdGFja19yZWFsaWduX25lZWRlZCBmbGFnLCB3aGljaCB3aWxsIGd1aWRlIHBy b2xvZ3VlL2VwaWxvZ3VlCi0gICAgdG8gYmUgZ2VuZXJhdGVkIGluIGNvcnJlY3QgZm9ybS4gICov Ci0gc3RhdGljIHZvaWQgCi1AQCAtODEwMiw2ICs4MTQxLDEwIEBAIGl4ODZfZXhwYW5kX3Byb2xv Z3VlICh2b2lkKQotICAgLyogRFJBUCBzaG91bGQgbm90IGNvZXhpc3Qgd2l0aCBzdGFja19yZWFs aWduX2ZwICovCi0gICBnY2NfYXNzZXJ0ICghKGNydGwtPmRyYXBfcmVnICYmIHN0YWNrX3JlYWxp Z25fZnApKTsKLSAKLSsgIC8qIEluaXRpYWxpemUgQ0ZBIHN0YXRlIGZvciBiZWZvcmUgdGhlIHBy b2xvZ3VlLiAgKi8KLSsgIGl4ODZfY2ZhX3N0YXRlLT5yZWcgPSBzdGFja19wb2ludGVyX3J0eDsK LSsgIGl4ODZfY2ZhX3N0YXRlLT5vZmZzZXQgPSBJTkNPTUlOR19GUkFNRV9TUF9PRkZTRVQ7Ci0r Ci0gICBpeDg2X2NvbXB1dGVfZnJhbWVfbGF5b3V0ICgmZnJhbWUpOwotIAotICAgLyogRW1pdCBw cm9sb2d1ZSBjb2RlIHRvIGFkanVzdCBzdGFjayBhbGlnbm1lbnQgYW5kIHNldHVwIERSQVAsIGlu IGNhc2UKLUBAIC04MTMxLDYgKzgxNzQsNyBAQCBpeDg2X2V4cGFuZF9wcm9sb2d1ZSAodm9pZCkK LSAKLSAgICAgICBpbnNuID0gZW1pdF9pbnNuIChnZW5fcnR4X1NFVCAoVk9JRG1vZGUsIHksIHgp KTsKLSAgICAgICBSVFhfRlJBTUVfUkVMQVRFRF9QIChpbnNuKSA9IDE7IAotKyAgICAgIGl4ODZf Y2ZhX3N0YXRlLT5yZWcgPSBjcnRsLT5kcmFwX3JlZzsKLSAKLSAgICAgICAvKiBBbGlnbiB0aGUg c3RhY2suICAqLwotICAgICAgIGluc24gPSBlbWl0X2luc24gKCgqaXg4Nl9nZW5fYW5kc3ApIChz dGFja19wb2ludGVyX3J0eCwKLUBAIC04MTU5LDYgKzgyMDMsOSBAQCBpeDg2X2V4cGFuZF9wcm9s b2d1ZSAodm9pZCkKLSAKLSAgICAgICBpbnNuID0gZW1pdF9tb3ZlX2luc24gKGhhcmRfZnJhbWVf cG9pbnRlcl9ydHgsIHN0YWNrX3BvaW50ZXJfcnR4KTsKLSAgICAgICBSVFhfRlJBTUVfUkVMQVRF RF9QIChpbnNuKSA9IDE7Ci0rCi0rICAgICAgaWYgKGl4ODZfY2ZhX3N0YXRlLT5yZWcgPT0gc3Rh Y2tfcG9pbnRlcl9ydHgpCi0rICAgICAgICBpeDg2X2NmYV9zdGF0ZS0+cmVnID0gaGFyZF9mcmFt ZV9wb2ludGVyX3J0eDsKLSAgICAgfQotIAotICAgaWYgKHN0YWNrX3JlYWxpZ25fZnApCi1AQCAt ODE5Nyw3ICs4MjQ0LDggQEAgaXg4Nl9leHBhbmRfcHJvbG9ndWUgKHZvaWQpCi0gICAgIDsKLSAg IGVsc2UgaWYgKCEgVEFSR0VUX1NUQUNLX1BST0JFIHx8IGFsbG9jYXRlIDwgQ0hFQ0tfU1RBQ0tf TElNSVQpCi0gICAgIHByb19lcGlsb2d1ZV9hZGp1c3Rfc3RhY2sgKHN0YWNrX3BvaW50ZXJfcnR4 LCBzdGFja19wb2ludGVyX3J0eCwKLS0JCQkgICAgICAgR0VOX0lOVCAoLWFsbG9jYXRlKSwgLTEp OwotKwkJCSAgICAgICBHRU5fSU5UICgtYWxsb2NhdGUpLCAtMSwKLSsJCQkgICAgICAgaXg4Nl9j ZmFfc3RhdGUtPnJlZyA9PSBzdGFja19wb2ludGVyX3J0eCk7Ci0gICBlbHNlCi0gICAgIHsKLSAg ICAgICAvKiBPbmx5IHZhbGlkIGZvciBXaW4zMi4gICovCi1AQCAtODIyNSwxMSArODI3MywxNSBA QCBpeDg2X2V4cGFuZF9wcm9sb2d1ZSAodm9pZCkKLSAgICAgICBlbHNlCi0gCWluc24gPSBnZW5f YWxsb2NhdGVfc3RhY2tfd29ya2VyXzMyIChlYXgsIGVheCk7Ci0gICAgICAgaW5zbiA9IGVtaXRf aW5zbiAoaW5zbik7Ci0tICAgICAgUlRYX0ZSQU1FX1JFTEFURURfUCAoaW5zbikgPSAxOwotLSAg ICAgIHQgPSBnZW5fcnR4X1BMVVMgKFBtb2RlLCBzdGFja19wb2ludGVyX3J0eCwgR0VOX0lOVCAo LWFsbG9jYXRlKSk7Ci0tICAgICAgdCA9IGdlbl9ydHhfU0VUIChWT0lEbW9kZSwgc3RhY2tfcG9p bnRlcl9ydHgsIHQpOwotLSAgICAgIFJFR19OT1RFUyAoaW5zbikgPSBnZW5fcnR4X0VYUFJfTElT VCAoUkVHX0ZSQU1FX1JFTEFURURfRVhQUiwKLS0JCQkJCSAgICB0LCBSRUdfTk9URVMgKGluc24p KTsKLSsKLSsgICAgICBpZiAoaXg4Nl9jZmFfc3RhdGUtPnJlZyA9PSBzdGFja19wb2ludGVyX3J0 eCkKLSsJewotKwkgIGl4ODZfY2ZhX3N0YXRlLT5vZmZzZXQgKz0gYWxsb2NhdGU7Ci0rCSAgdCA9 IGdlbl9ydHhfUExVUyAoUG1vZGUsIHN0YWNrX3BvaW50ZXJfcnR4LCBHRU5fSU5UICgtYWxsb2Nh dGUpKTsKLSsJICB0ID0gZ2VuX3J0eF9TRVQgKFZPSURtb2RlLCBzdGFja19wb2ludGVyX3J0eCwg dCk7Ci0rCSAgYWRkX3JlZ19ub3RlIChpbnNuLCBSRUdfQ0ZBX0FESlVTVF9DRkEsIHQpOwotKwkg IFJUWF9GUkFNRV9SRUxBVEVEX1AgKGluc24pID0gMTsKLSsJfQotIAotICAgICAgIGlmIChlYXhf bGl2ZSkKLSAJewotQEAgLTgzMzYsMTggKzgzODgsMTA0IEBAIGl4ODZfZXhwYW5kX3Byb2xvZ3Vl ICh2b2lkKQotICAgICBlbWl0X2luc24gKGdlbl9jbGQgKCkpOwotIH0KLSAKLSsvKiBFbWl0IGNv ZGUgdG8gcmVzdG9yZSBSRUcgdXNpbmcgYSBQT1AgaW5zbi4gICovCi0rCi0rc3RhdGljIHZvaWQK LStpeDg2X2VtaXRfcmVzdG9yZV9yZWdfdXNpbmdfcG9wIChydHggcmVnLCBIT1NUX1dJREVfSU5U IHJlZF9vZmZzZXQpCi0rewotKyAgcnR4IGluc24gPSBlbWl0X2luc24gKGl4ODZfZ2VuX3BvcDEg KHJlZykpOwotKwotKyAgaWYgKGl4ODZfY2ZhX3N0YXRlLT5yZWcgPT0gY3J0bC0+ZHJhcF9yZWcK LSsgICAgICAmJiBSRUdOTyAocmVnKSA9PSBSRUdOTyAoY3J0bC0+ZHJhcF9yZWcpKQotKyAgICB7 Ci0rICAgICAgLyogUHJldmlvdXNseSB3ZSdkIHJlcHJlc2VudGVkIHRoZSBDRkEgYXMgYW4gZXhw cmVzc2lvbgotKwkgbGlrZSAqKCVlYnAgLSA4KS4gIFdlJ3ZlIGp1c3QgcG9wcGVkIHRoYXQgdmFs dWUgZnJvbQotKwkgdGhlIHN0YWNrLCB3aGljaCBtZWFucyB3ZSBuZWVkIHRvIHJlc2V0IHRoZSBD RkEgdG8KLSsJIHRoZSBkcmFwIHJlZ2lzdGVyLiAgVGhpcyB3aWxsIHJlbWFpbiB1bnRpbCB3ZSBy ZXN0b3JlCi0rCSB0aGUgc3RhY2sgcG9pbnRlci4gICovCi0rICAgICAgYWRkX3JlZ19ub3RlIChp bnNuLCBSRUdfQ0ZBX0RFRl9DRkEsIHJlZyk7Ci0rICAgICAgUlRYX0ZSQU1FX1JFTEFURURfUCAo aW5zbikgPSAxOwotKyAgICAgIHJldHVybjsKLSsgICAgfQotKwotKyAgaWYgKGl4ODZfY2ZhX3N0 YXRlLT5yZWcgPT0gc3RhY2tfcG9pbnRlcl9ydHgpCi0rICAgIHsKLSsgICAgICBpeDg2X2NmYV9z dGF0ZS0+b2Zmc2V0IC09IFVOSVRTX1BFUl9XT1JEOwotKyAgICAgIGFkZF9yZWdfbm90ZSAoaW5z biwgUkVHX0NGQV9BREpVU1RfQ0ZBLAotKwkJICAgIGNvcHlfcnR4IChYVkVDRVhQIChQQVRURVJO IChpbnNuKSwgMCwgMSkpKTsKLSsgICAgICBSVFhfRlJBTUVfUkVMQVRFRF9QIChpbnNuKSA9IDE7 Ci0rICAgIH0KLSsKLSsgIC8qIFdoZW4gdGhlIGZyYW1lIHBvaW50ZXIgaXMgdGhlIENGQSwgYW5k IHdlIHBvcCBpdCwgd2UgYXJlCi0rICAgICBzd2FwcGluZyBiYWNrIHRvIHRoZSBzdGFjayBwb2lu dGVyIGFzIHRoZSBDRkEuICBUaGlzIGhhcHBlbnMKLSsgICAgIGZvciBzdGFjayBmcmFtZXMgdGhh dCBkb24ndCBhbGxvY2F0ZSBvdGhlciBkYXRhLCBzbyB3ZSBhc3N1bWUKLSsgICAgIHRoZSBzdGFj ayBwb2ludGVyIGlzIG5vdyBwb2ludGluZyBhdCB0aGUgcmV0dXJuIGFkZHJlc3MsIGkuZS4KLSsg ICAgIHRoZSBmdW5jdGlvbiBlbnRyeSBzdGF0ZSwgd2hpY2ggbWFrZXMgdGhlIG9mZnNldCBiZSAx IHdvcmQuICAqLwotKyAgZWxzZSBpZiAoaXg4Nl9jZmFfc3RhdGUtPnJlZyA9PSBoYXJkX2ZyYW1l X3BvaW50ZXJfcnR4Ci0rCSAgICYmIHJlZyA9PSBoYXJkX2ZyYW1lX3BvaW50ZXJfcnR4KQotKyAg ICB7Ci0rICAgICAgaXg4Nl9jZmFfc3RhdGUtPnJlZyA9IHN0YWNrX3BvaW50ZXJfcnR4OwotKyAg ICAgIGl4ODZfY2ZhX3N0YXRlLT5vZmZzZXQgPSBVTklUU19QRVJfV09SRDsKLSsKLSsgICAgICBh ZGRfcmVnX25vdGUgKGluc24sIFJFR19DRkFfREVGX0NGQSwKLSsJCSAgICBnZW5fcnR4X1BMVVMg KFBtb2RlLCBzdGFja19wb2ludGVyX3J0eCwKLSsJCQkJICBHRU5fSU5UIChVTklUU19QRVJfV09S RCkpKTsKLSsgICAgICBSVFhfRlJBTUVfUkVMQVRFRF9QIChpbnNuKSA9IDE7Ci0rICAgIH0KLSsK LSsgIGl4ODZfYWRkX2NmYV9yZXN0b3JlX25vdGUgKGluc24sIHJlZywgcmVkX29mZnNldCk7Ci0r fQotKwotKy8qIEVtaXQgY29kZSB0byByZXN0b3JlIHNhdmVkIHJlZ2lzdGVycyB1c2luZyBQT1Ag aW5zbnMuICAqLwotKwotK3N0YXRpYyB2b2lkCi0raXg4Nl9lbWl0X3Jlc3RvcmVfcmVnc191c2lu Z19wb3AgKEhPU1RfV0lERV9JTlQgcmVkX29mZnNldCkKLSt7Ci0rICBpbnQgcmVnbm87Ci0rCi0r ICBmb3IgKHJlZ25vID0gMDsgcmVnbm8gPCBGSVJTVF9QU0VVRE9fUkVHSVNURVI7IHJlZ25vKysp Ci0rICAgIGlmICghU1NFX1JFR05PX1AgKHJlZ25vKSAmJiBpeDg2X3NhdmVfcmVnIChyZWdubywg ZmFsc2UpKQotKyAgICAgIHsKLSsJaXg4Nl9lbWl0X3Jlc3RvcmVfcmVnX3VzaW5nX3BvcCAoZ2Vu X3J0eF9SRUcgKFBtb2RlLCByZWdubyksCi0rCQkJCQkgcmVkX29mZnNldCk7Ci0rCXJlZF9vZmZz ZXQgKz0gVU5JVFNfUEVSX1dPUkQ7Ci0rICAgICAgfQotK30KLSsKLSsvKiBFbWl0IGNvZGUgYW5k IG5vdGVzIGZvciB0aGUgTEVBVkUgaW5zdHJ1Y3Rpb24uICAqLwotKwotK3N0YXRpYyB2b2lkCi0r aXg4Nl9lbWl0X2xlYXZlIChIT1NUX1dJREVfSU5UIHJlZF9vZmZzZXQpCi0rewotKyAgcnR4IGlu c24gPSBlbWl0X2luc24gKGl4ODZfZ2VuX2xlYXZlICgpKTsKLSsKLSsgIGl4ODZfYWRkX3F1ZXVl ZF9jZmFfcmVzdG9yZV9ub3RlcyAoaW5zbik7Ci0rCi0rICBpZiAoaXg4Nl9jZmFfc3RhdGUtPnJl ZyA9PSBoYXJkX2ZyYW1lX3BvaW50ZXJfcnR4KQotKyAgICB7Ci0rICAgICAgYWRkX3JlZ19ub3Rl IChpbnNuLCBSRUdfQ0ZBX0FESlVTVF9DRkEsIAotKwkJICAgIGNvcHlfcnR4IChYVkVDRVhQIChQ QVRURVJOIChpbnNuKSwgMCwgMCkpKTsKLSsgICAgICBSVFhfRlJBTUVfUkVMQVRFRF9QIChpbnNu KSA9IDE7Ci0rICAgICAgaXg4Nl9hZGRfY2ZhX3Jlc3RvcmVfbm90ZSAoaW5zbiwgaGFyZF9mcmFt ZV9wb2ludGVyX3J0eCwgcmVkX29mZnNldCk7Ci0rICAgIH0KLSt9Ci0rCi0gLyogRW1pdCBjb2Rl IHRvIHJlc3RvcmUgc2F2ZWQgcmVnaXN0ZXJzIHVzaW5nIE1PViBpbnNucy4gIEZpcnN0IHJlZ2lz dGVyCi0gICAgaXMgcmVzdG9yZWQgZnJvbSBQT0lOVEVSICsgT0ZGU0VULiAgKi8KLSBzdGF0aWMg dm9pZAotIGl4ODZfZW1pdF9yZXN0b3JlX3JlZ3NfdXNpbmdfbW92IChydHggcG9pbnRlciwgSE9T VF9XSURFX0lOVCBvZmZzZXQsCi0rCQkJCSAgSE9TVF9XSURFX0lOVCByZWRfb2Zmc2V0LAotIAkJ CQkgIGludCBtYXliZV9laF9yZXR1cm4pCi0gewotLSAgaW50IHJlZ25vOwotKyAgdW5zaWduZWQg aW50IHJlZ25vOwotICAgcnR4IGJhc2VfYWRkcmVzcyA9IGdlbl9ydHhfTUVNIChQbW9kZSwgcG9p bnRlcik7Ci0rICBydHggaW5zbjsKLSAKLSAgIGZvciAocmVnbm8gPSAwOyByZWdubyA8IEZJUlNU X1BTRVVET19SRUdJU1RFUjsgcmVnbm8rKykKLSAgICAgaWYgKCFTU0VfUkVHTk9fUCAocmVnbm8p ICYmIGl4ODZfc2F2ZV9yZWcgKHJlZ25vLCBtYXliZV9laF9yZXR1cm4pKQotICAgICAgIHsKLSsJ cnR4IHJlZyA9IGdlbl9ydHhfUkVHIChQbW9kZSwgcmVnbm8pOwotKwotIAkvKiBFbnN1cmUgdGhh dCBhZGp1c3RfYWRkcmVzcyB3b24ndCBiZSBmb3JjZWQgdG8gcHJvZHVjZSBwb2ludGVyCi0gCSAg IG91dCBvZiByYW5nZSBhbGxvd2VkIGJ5IHg4Ni02NCBpbnN0cnVjdGlvbiBzZXQuICAqLwotIAlp ZiAoVEFSR0VUXzY0QklUICYmIG9mZnNldCAhPSB0cnVuY19pbnRfZm9yX21vZGUgKG9mZnNldCwg U0ltb2RlKSkKLUBAIC04MzYwLDkgKzg0OTgsMjUgQEAgaXg4Nl9lbWl0X3Jlc3RvcmVfcmVnc191 c2luZ19tb3YgKHJ0eCBwbwotIAkgICAgYmFzZV9hZGRyZXNzID0gZ2VuX3J0eF9NRU0gKFBtb2Rl LCByMTEpOwotIAkgICAgb2Zmc2V0ID0gMDsKLSAJICB9Ci0tCWVtaXRfbW92ZV9pbnNuIChnZW5f cnR4X1JFRyAoUG1vZGUsIHJlZ25vKSwKLS0JICAgICAgICAgICAgICAgIGFkanVzdF9hZGRyZXNz IChiYXNlX2FkZHJlc3MsIFBtb2RlLCBvZmZzZXQpKTsKLSsJaW5zbiA9IGVtaXRfbW92ZV9pbnNu IChyZWcsCi0rCQkJICAgICAgIGFkanVzdF9hZGRyZXNzIChiYXNlX2FkZHJlc3MsIFBtb2RlLCBv ZmZzZXQpKTsKLSAJb2Zmc2V0ICs9IFVOSVRTX1BFUl9XT1JEOwotKwotKyAgICAgICAgaWYgKGl4 ODZfY2ZhX3N0YXRlLT5yZWcgPT0gY3J0bC0+ZHJhcF9yZWcKLSsJICAgICYmIHJlZ25vID09IFJF R05PIChjcnRsLT5kcmFwX3JlZykpCi0rCSAgewotKwkgICAgLyogUHJldmlvdXNseSB3ZSdkIHJl cHJlc2VudGVkIHRoZSBDRkEgYXMgYW4gZXhwcmVzc2lvbgotKwkgICAgICAgbGlrZSAqKCVlYnAg LSA4KS4gIFdlJ3ZlIGp1c3QgcG9wcGVkIHRoYXQgdmFsdWUgZnJvbQotKwkgICAgICAgdGhlIHN0 YWNrLCB3aGljaCBtZWFucyB3ZSBuZWVkIHRvIHJlc2V0IHRoZSBDRkEgdG8KLSsJICAgICAgIHRo ZSBkcmFwIHJlZ2lzdGVyLiAgVGhpcyB3aWxsIHJlbWFpbiB1bnRpbCB3ZSByZXN0b3JlCi0rCSAg ICAgICB0aGUgc3RhY2sgcG9pbnRlci4gICovCi0rCSAgICBhZGRfcmVnX25vdGUgKGluc24sIFJF R19DRkFfREVGX0NGQSwgcmVnKTsKLSsJICAgIFJUWF9GUkFNRV9SRUxBVEVEX1AgKGluc24pID0g MTsKLSsJICB9Ci0rCWVsc2UKLSsJICBpeDg2X2FkZF9jZmFfcmVzdG9yZV9ub3RlIChOVUxMX1JU WCwgcmVnLCByZWRfb2Zmc2V0KTsKLSsKLSsJcmVkX29mZnNldCArPSBVTklUU19QRVJfV09SRDsK LSAgICAgICB9Ci0gfQotIAotQEAgLTgzNzAsMTUgKzg1MjQsMTggQEAgaXg4Nl9lbWl0X3Jlc3Rv cmVfcmVnc191c2luZ19tb3YgKHJ0eCBwbwotICAgIGlzIHJlc3RvcmVkIGZyb20gUE9JTlRFUiAr IE9GRlNFVC4gICovCi0gc3RhdGljIHZvaWQKLSBpeDg2X2VtaXRfcmVzdG9yZV9zc2VfcmVnc191 c2luZ19tb3YgKHJ0eCBwb2ludGVyLCBIT1NUX1dJREVfSU5UIG9mZnNldCwKLSsJCQkJICAgICAg SE9TVF9XSURFX0lOVCByZWRfb2Zmc2V0LAotIAkJCQkgICAgICBpbnQgbWF5YmVfZWhfcmV0dXJu KQotIHsKLSAgIGludCByZWdubzsKLSAgIHJ0eCBiYXNlX2FkZHJlc3MgPSBnZW5fcnR4X01FTSAo VEltb2RlLCBwb2ludGVyKTsKLS0gIHJ0eCBtZW07Ci0rICBydHggbWVtLCBpbnNuOwotIAotICAg Zm9yIChyZWdubyA9IDA7IHJlZ25vIDwgRklSU1RfUFNFVURPX1JFR0lTVEVSOyByZWdubysrKQot ICAgICBpZiAoU1NFX1JFR05PX1AgKHJlZ25vKSAmJiBpeDg2X3NhdmVfcmVnIChyZWdubywgbWF5 YmVfZWhfcmV0dXJuKSkKLSAgICAgICB7Ci0rCXJ0eCByZWcgPSBnZW5fcnR4X1JFRyAoVEltb2Rl LCByZWdubyk7Ci0rCi0gCS8qIEVuc3VyZSB0aGF0IGFkanVzdF9hZGRyZXNzIHdvbid0IGJlIGZv cmNlZCB0byBwcm9kdWNlIHBvaW50ZXIKLSAJICAgb3V0IG9mIHJhbmdlIGFsbG93ZWQgYnkgeDg2 LTY0IGluc3RydWN0aW9uIHNldC4gICovCi0gCWlmIChUQVJHRVRfNjRCSVQgJiYgb2Zmc2V0ICE9 IHRydW5jX2ludF9mb3JfbW9kZSAob2Zmc2V0LCBTSW1vZGUpKQotQEAgLTgzOTMsOCArODU1MCwx MiBAQCBpeDg2X2VtaXRfcmVzdG9yZV9zc2VfcmVnc191c2luZ19tb3YgKHJ0Ci0gCSAgfQotIAlt ZW0gPSBhZGp1c3RfYWRkcmVzcyAoYmFzZV9hZGRyZXNzLCBUSW1vZGUsIG9mZnNldCk7Ci0gCXNl dF9tZW1fYWxpZ24gKG1lbSwgMTI4KTsKLS0JZW1pdF9tb3ZlX2luc24gKGdlbl9ydHhfUkVHIChU SW1vZGUsIHJlZ25vKSwgbWVtKTsKLSsJaW5zbiA9IGVtaXRfbW92ZV9pbnNuIChyZWcsIG1lbSk7 Ci0gCW9mZnNldCArPSAxNjsKLSsKLSsJaXg4Nl9hZGRfY2ZhX3Jlc3RvcmVfbm90ZSAoTlVMTF9S VFgsIHJlZywgcmVkX29mZnNldCk7Ci0rCi0rCXJlZF9vZmZzZXQgKz0gMTY7Ci0gICAgICAgfQot IH0KLSAKLUBAIC04NDAzLDEwICs4NTY0LDExIEBAIGl4ODZfZW1pdF9yZXN0b3JlX3NzZV9yZWdz X3VzaW5nX21vdiAocnQKLSB2b2lkCi0gaXg4Nl9leHBhbmRfZXBpbG9ndWUgKGludCBzdHlsZSkK LSB7Ci0tICBpbnQgcmVnbm87Ci0gICBpbnQgc3BfdmFsaWQ7Ci0gICBzdHJ1Y3QgaXg4Nl9mcmFt ZSBmcmFtZTsKLS0gIEhPU1RfV0lERV9JTlQgb2Zmc2V0OwotKyAgSE9TVF9XSURFX0lOVCBvZmZz ZXQsIHJlZF9vZmZzZXQ7Ci0rICBzdHJ1Y3QgbWFjaGluZV9jZmFfc3RhdGUgY2ZhX3N0YXRlX3Nh dmUgPSAqaXg4Nl9jZmFfc3RhdGU7Ci0rICBib29sIHVzaW5nX2RyYXA7Ci0gCi0gICBpeDg2X2Zp bmFsaXplX3N0YWNrX3JlYWxpZ25fZmxhZ3MgKCk7Ci0gCi1AQCAtODQyMiw2ICs4NTg0LDkgQEAg aXg4Nl9leHBhbmRfZXBpbG9ndWUgKGludCBzdHlsZSkKLSAgIGlmIChmcmFtZV9wb2ludGVyX25l ZWRlZCAmJiBmcmFtZS5yZWRfem9uZV9zaXplKQotICAgICBlbWl0X2luc24gKGdlbl9tZW1vcnlf YmxvY2thZ2UgKCkpOyAKLSAKLSsgIHVzaW5nX2RyYXAgPSBjcnRsLT5kcmFwX3JlZyAmJiBjcnRs LT5zdGFja19yZWFsaWduX25lZWRlZDsKLSsgIGdjY19hc3NlcnQgKCF1c2luZ19kcmFwIHx8IGl4 ODZfY2ZhX3N0YXRlLT5yZWcgPT0gY3J0bC0+ZHJhcF9yZWcpOwotKwotICAgLyogQ2FsY3VsYXRl IHN0YXJ0IG9mIHNhdmVkIHJlZ2lzdGVycyByZWxhdGl2ZSB0byBlYnAuICBTcGVjaWFsIGNhcmUK LSAgICAgIG11c3QgYmUgdGFrZW4gZm9yIHRoZSBub3JtYWwgcmV0dXJuIGNhc2Ugb2YgYSBmdW5j dGlvbiB1c2luZwotICAgICAgZWhfcmV0dXJuOiB0aGUgZWF4IGFuZCBlZHggcmVnaXN0ZXJzIGFy ZSBtYXJrZWQgYXMgc2F2ZWQsIGJ1dCBub3QKLUBAIC04NDMyLDYgKzg1OTcsMTkgQEAgaXg4Nl9l eHBhbmRfZXBpbG9ndWUgKGludCBzdHlsZSkKLSAgIG9mZnNldCAqPSAtVU5JVFNfUEVSX1dPUkQ7 Ci0gICBvZmZzZXQgLT0gZnJhbWUubnNzZXJlZ3MgKiAxNiArIGZyYW1lLnBhZGRpbmcwOwotIAot KyAgLyogQ2FsY3VsYXRlIHN0YXJ0IG9mIHNhdmVkIHJlZ2lzdGVycyByZWxhdGl2ZSB0byBlc3Ag b24gZW50cnkgb2YgdGhlCi0rICAgICBmdW5jdGlvbi4gIFdoZW4gcmVhbGlnbmluZyBzdGFjaywg dGhpcyBuZWVkcyB0byBiZSB0aGUgbW9zdCBuZWdhdGl2ZQotKyAgICAgdmFsdWUgcG9zc2libGUg YXQgcnVudGltZS4gICovCi0rICByZWRfb2Zmc2V0ID0gb2Zmc2V0OwotKyAgaWYgKHVzaW5nX2Ry YXApCi0rICAgIHJlZF9vZmZzZXQgLT0gY3J0bC0+c3RhY2tfYWxpZ25tZW50X25lZWRlZCAvIEJJ VFNfUEVSX1VOSVQKLSsJCSAgKyBVTklUU19QRVJfV09SRDsKLSsgIGVsc2UgaWYgKHN0YWNrX3Jl YWxpZ25fZnApCi0rICAgIHJlZF9vZmZzZXQgLT0gY3J0bC0+c3RhY2tfYWxpZ25tZW50X25lZWRl ZCAvIEJJVFNfUEVSX1VOSVQKLSsJCSAgLSBVTklUU19QRVJfV09SRDsKLSsgIGlmIChmcmFtZV9w b2ludGVyX25lZWRlZCkKLSsgICAgcmVkX29mZnNldCAtPSBVTklUU19QRVJfV09SRDsKLSsKLSAg IC8qIElmIHdlJ3JlIG9ubHkgcmVzdG9yaW5nIG9uZSByZWdpc3RlciBhbmQgc3AgaXMgbm90IHZh bGlkIHRoZW4KLSAgICAgIHVzaW5nIGEgbW92ZSBpbnN0cnVjdGlvbiB0byByZXN0b3JlIHRoZSBy ZWdpc3RlciBzaW5jZSBpdCdzCi0gICAgICBsZXNzIHdvcmsgdGhhbiByZWxvYWRpbmcgc3AgYW5k IHBvcHBpbmcgdGhlIHJlZ2lzdGVyLgotQEAgLTg0NDYsNyArODYyNCw4IEBAIGl4ODZfZXhwYW5k X2VwaWxvZ3VlIChpbnQgc3R5bGUpCi0gICAgICAgfHwgKFRBUkdFVF9FUElMT0dVRV9VU0lOR19N T1ZFCi0gCSAgJiYgY2Z1bi0+bWFjaGluZS0+dXNlX2Zhc3RfcHJvbG9ndWVfZXBpbG9ndWUKLSAJ ICAmJiAoKGZyYW1lLm5yZWdzICsgZnJhbWUubnNzZXJlZ3MpID4gMSB8fCBmcmFtZS50b19hbGxv Y2F0ZSkpCi0tICAgICAgfHwgKGZyYW1lX3BvaW50ZXJfbmVlZGVkICYmICEoZnJhbWUubnJlZ3Mg KyBmcmFtZS5uc3NlcmVncykgJiYgZnJhbWUudG9fYWxsb2NhdGUpCi0rICAgICAgfHwgKGZyYW1l X3BvaW50ZXJfbmVlZGVkICYmICEoZnJhbWUubnJlZ3MgKyBmcmFtZS5uc3NlcmVncykKLSsJICAm JiBmcmFtZS50b19hbGxvY2F0ZSkKLSAgICAgICB8fCAoZnJhbWVfcG9pbnRlcl9uZWVkZWQgJiYg VEFSR0VUX1VTRV9MRUFWRQotIAkgICYmIGNmdW4tPm1hY2hpbmUtPnVzZV9mYXN0X3Byb2xvZ3Vl X2VwaWxvZ3VlCi0gCSAgJiYgKGZyYW1lLm5yZWdzICsgZnJhbWUubnNzZXJlZ3MpID09IDEpCi1A QCAtODQ2NiwyMiArODY0NSwzMiBAQCBpeDg2X2V4cGFuZF9lcGlsb2d1ZSAoaW50IHN0eWxlKQot IAkgIHx8IHN0YWNrX3JlYWxpZ25fZnApCi0gCXsKLSAJICBpeDg2X2VtaXRfcmVzdG9yZV9zc2Vf cmVnc191c2luZ19tb3YgKHN0YWNrX3BvaW50ZXJfcnR4LAotLQkJCQkJICAgICAgICBmcmFtZS50 b19hbGxvY2F0ZSwgc3R5bGUgPT0gMik7Ci0rCQkJCQkJZnJhbWUudG9fYWxsb2NhdGUsIHJlZF9v ZmZzZXQsCi0rCQkJCQkJc3R5bGUgPT0gMik7Ci0gCSAgaXg4Nl9lbWl0X3Jlc3RvcmVfcmVnc191 c2luZ19tb3YgKHN0YWNrX3BvaW50ZXJfcnR4LAotIAkJCQkJICAgIGZyYW1lLnRvX2FsbG9jYXRl Ci0gCQkJCQkgICAgKyBmcmFtZS5uc3NlcmVncyAqIDE2Ci0rCQkJCQkgICAgKyBmcmFtZS5wYWRk aW5nMCwKLSsJCQkJCSAgICByZWRfb2Zmc2V0Ci0rCQkJCQkgICAgKyBmcmFtZS5uc3NlcmVncyAq IDE2Ci0gCQkJCQkgICAgKyBmcmFtZS5wYWRkaW5nMCwgc3R5bGUgPT0gMik7Ci0gCX0KLSAgICAg ICBlbHNlCi0gICAgICAgICB7Ci0gCSAgaXg4Nl9lbWl0X3Jlc3RvcmVfc3NlX3JlZ3NfdXNpbmdf bW92IChoYXJkX2ZyYW1lX3BvaW50ZXJfcnR4LAotLQkJCQkJICAgICAgICBvZmZzZXQsIHN0eWxl ID09IDIpOwotKwkJCQkJCW9mZnNldCwgcmVkX29mZnNldCwKLSsJCQkJCQlzdHlsZSA9PSAyKTsK LSAJICBpeDg2X2VtaXRfcmVzdG9yZV9yZWdzX3VzaW5nX21vdiAoaGFyZF9mcmFtZV9wb2ludGVy X3J0eCwKLSAJCQkJCSAgICBvZmZzZXQKLSAJCQkJCSAgICArIGZyYW1lLm5zc2VyZWdzICogMTYK LSsJCQkJCSAgICArIGZyYW1lLnBhZGRpbmcwLAotKwkJCQkJICAgIHJlZF9vZmZzZXQKLSsJCQkJ CSAgICArIGZyYW1lLm5zc2VyZWdzICogMTYKLSAJCQkJCSAgICArIGZyYW1lLnBhZGRpbmcwLCBz dHlsZSA9PSAyKTsKLSAgICAgICAgIH0KLSAKLSsgICAgICByZWRfb2Zmc2V0IC09IG9mZnNldDsK LSsKLSAgICAgICAvKiBlaF9yZXR1cm4gZXBpbG9ndWVzIG5lZWQgJWVjeCBhZGRlZCB0byB0aGUg c3RhY2sgcG9pbnRlci4gICovCi0gICAgICAgaWYgKHN0eWxlID09IDIpCi0gCXsKLUBAIC04NDk0 LDEzICs4NjgzLDI5IEBAIGl4ODZfZXhwYW5kX2VwaWxvZ3VlIChpbnQgc3R5bGUpCi0gCSAgICB7 Ci0gCSAgICAgIHRtcCA9IGdlbl9ydHhfUExVUyAoUG1vZGUsIGhhcmRfZnJhbWVfcG9pbnRlcl9y dHgsIHNhKTsKLSAJICAgICAgdG1wID0gcGx1c19jb25zdGFudCAodG1wLCBVTklUU19QRVJfV09S RCk7Ci0tCSAgICAgIGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKFZPSURtb2RlLCBzYSwgdG1wKSk7 Ci0rCSAgICAgIHRtcCA9IGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKFZPSURtb2RlLCBzYSwgdG1w KSk7Ci0gCi0gCSAgICAgIHRtcCA9IGdlbl9ydHhfTUVNIChQbW9kZSwgaGFyZF9mcmFtZV9wb2lu dGVyX3J0eCk7Ci0tCSAgICAgIGVtaXRfbW92ZV9pbnNuIChoYXJkX2ZyYW1lX3BvaW50ZXJfcnR4 LCB0bXApOwotKwkgICAgICB0bXAgPSBlbWl0X21vdmVfaW5zbiAoaGFyZF9mcmFtZV9wb2ludGVy X3J0eCwgdG1wKTsKLSsKLSsJICAgICAgLyogTm90ZSB0aGF0IHdlIHVzZSBTQSBhcyBhIHRlbXBv cmFyeSBDRkEsIGFzIHRoZSByZXR1cm4KLSsJCSBhZGRyZXNzIGlzIGF0IHRoZSBwcm9wZXIgcGxh Y2UgcmVsYXRpdmUgdG8gaXQuICBXZQotKwkJIHByZXRlbmQgdGhpcyBoYXBwZW5zIGF0IHRoZSBG UCByZXN0b3JlIGluc24gYmVjYXVzZQotKwkJIHByaW9yIHRvIHRoaXMgaW5zbiB0aGUgRlAgd291 bGQgYmUgc3RvcmVkIGF0IHRoZSB3cm9uZwotKwkJIG9mZnNldCByZWxhdGl2ZSB0byBTQSwgYW5k IGFmdGVyIHRoaXMgaW5zbiB3ZSBoYXZlIG5vCi0rCQkgb3RoZXIgcmVhc29uYWJsZSByZWdpc3Rl ciB0byB1c2UgZm9yIHRoZSBDRkEuICBXZSBkb24ndAotKwkJIGJvdGhlciByZXNldHRpbmcgdGhl IENGQSB0byB0aGUgU1AgZm9yIHRoZSBkdXJhdGlvbiBvZgotKwkJIHRoZSByZXR1cm4gaW5zbi4g ICovCi0rCSAgICAgIGFkZF9yZWdfbm90ZSAodG1wLCBSRUdfQ0ZBX0RFRl9DRkEsCi0rCQkJICAg IHBsdXNfY29uc3RhbnQgKHNhLCBVTklUU19QRVJfV09SRCkpOwotKwkgICAgICBpeDg2X2FkZF9x dWV1ZWRfY2ZhX3Jlc3RvcmVfbm90ZXMgKHRtcCk7Ci0rCSAgICAgIGFkZF9yZWdfbm90ZSAodG1w LCBSRUdfQ0ZBX1JFU1RPUkUsIGhhcmRfZnJhbWVfcG9pbnRlcl9ydHgpOwotKwkgICAgICBSVFhf RlJBTUVfUkVMQVRFRF9QICh0bXApID0gMTsKLSsJICAgICAgaXg4Nl9jZmFfc3RhdGUtPnJlZyA9 IHNhOwotKwkgICAgICBpeDg2X2NmYV9zdGF0ZS0+b2Zmc2V0ID0gVU5JVFNfUEVSX1dPUkQ7Ci0g Ci0gCSAgICAgIHByb19lcGlsb2d1ZV9hZGp1c3Rfc3RhY2sgKHN0YWNrX3BvaW50ZXJfcnR4LCBz YSwKLS0JCQkJCSBjb25zdDBfcnR4LCBzdHlsZSk7Ci0rCQkJCQkgY29uc3QwX3J0eCwgc3R5bGUs IGZhbHNlKTsKLSAJICAgIH0KLSAJICBlbHNlCi0gCSAgICB7Ci1AQCAtODUwOSw3ICs4NzE0LDE4 IEBAIGl4ODZfZXhwYW5kX2VwaWxvZ3VlIChpbnQgc3R5bGUpCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArIGZyYW1lLm5yZWdzICogVU5JVFNfUEVSX1dPUkQKLSAJ CQkJCSArIGZyYW1lLm5zc2VyZWdzICogMTYKLSAJCQkJCSArIGZyYW1lLnBhZGRpbmcwKSk7Ci0t CSAgICAgIGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKFZPSURtb2RlLCBzdGFja19wb2ludGVyX3J0 eCwgdG1wKSk7Ci0rCSAgICAgIHRtcCA9IGVtaXRfaW5zbiAoZ2VuX3J0eF9TRVQgKFZPSURtb2Rl LCBzdGFja19wb2ludGVyX3J0eCwgdG1wKSk7Ci0rCSAgICAgIGl4ODZfYWRkX3F1ZXVlZF9jZmFf cmVzdG9yZV9ub3RlcyAodG1wKTsKLSsKLSsJICAgICAgZ2NjX2Fzc2VydCAoaXg4Nl9jZmFfc3Rh dGUtPnJlZyA9PSBzdGFja19wb2ludGVyX3J0eCk7Ci0rCSAgICAgIGlmIChpeDg2X2NmYV9zdGF0 ZS0+b2Zmc2V0ICE9IFVOSVRTX1BFUl9XT1JEKQotKwkJewotKwkJICBpeDg2X2NmYV9zdGF0ZS0+ b2Zmc2V0ID0gVU5JVFNfUEVSX1dPUkQ7Ci0rCQkgIGFkZF9yZWdfbm90ZSAodG1wLCBSRUdfQ0ZB X0RFRl9DRkEsCi0rCQkJCXBsdXNfY29uc3RhbnQgKHN0YWNrX3BvaW50ZXJfcnR4LAotKwkJCQkJ ICAgICAgIFVOSVRTX1BFUl9XT1JEKSk7Ci0rCQkgIFJUWF9GUkFNRV9SRUxBVEVEX1AgKHRtcCkg PSAxOwotKwkJfQotIAkgICAgfQotIAl9Ci0gICAgICAgZWxzZSBpZiAoIWZyYW1lX3BvaW50ZXJf bmVlZGVkKQotQEAgLTg1MTgsMTggKzg3MzQsMTggQEAgaXg4Nl9leHBhbmRfZXBpbG9ndWUgKGlu dCBzdHlsZSkKLSAJCQkJCSAgICArIGZyYW1lLm5yZWdzICogVU5JVFNfUEVSX1dPUkQKLSAJCQkJ CSAgICArIGZyYW1lLm5zc2VyZWdzICogMTYKLSAJCQkJCSAgICArIGZyYW1lLnBhZGRpbmcwKSwK LS0JCQkJICAgc3R5bGUpOwotKwkJCQkgICBzdHlsZSwgIXVzaW5nX2RyYXApOwotICAgICAgIC8q IElmIG5vdCBhbiBpMzg2LCBtb3YgJiBwb3AgaXMgZmFzdGVyIHRoYW4gImxlYXZlIi4gICovCi0g ICAgICAgZWxzZSBpZiAoVEFSR0VUX1VTRV9MRUFWRSB8fCBvcHRpbWl6ZV9mdW5jdGlvbl9mb3Jf c2l6ZV9wIChjZnVuKQotIAkgICAgICAgfHwgIWNmdW4tPm1hY2hpbmUtPnVzZV9mYXN0X3Byb2xv Z3VlX2VwaWxvZ3VlKQotLQllbWl0X2luc24gKCgqaXg4Nl9nZW5fbGVhdmUpICgpKTsKLSsJaXg4 Nl9lbWl0X2xlYXZlIChyZWRfb2Zmc2V0KTsKLSAgICAgICBlbHNlCi0gCXsKLSAJICBwcm9fZXBp bG9ndWVfYWRqdXN0X3N0YWNrIChzdGFja19wb2ludGVyX3J0eCwKLSAJCQkJICAgICBoYXJkX2Zy YW1lX3BvaW50ZXJfcnR4LAotLQkJCQkgICAgIGNvbnN0MF9ydHgsIHN0eWxlKTsKLSsJCQkJICAg ICBjb25zdDBfcnR4LCBzdHlsZSwgIXVzaW5nX2RyYXApOwotIAotLQkgIGVtaXRfaW5zbiAoKCpp eDg2X2dlbl9wb3AxKSAoaGFyZF9mcmFtZV9wb2ludGVyX3J0eCkpOwotKwkgIGl4ODZfZW1pdF9y ZXN0b3JlX3JlZ191c2luZ19wb3AgKGhhcmRfZnJhbWVfcG9pbnRlcl9ydHgsIHJlZF9vZmZzZXQp OwotIAl9Ci0gICAgIH0KLSAgIGVsc2UKLUBAIC04NTQ3LDMyICs4NzYzLDM2IEBAIGl4ODZfZXhw YW5kX2VwaWxvZ3VlIChpbnQgc3R5bGUpCi0gICAgICAgICAgIGdjY19hc3NlcnQgKCFzdGFja19y ZWFsaWduX2ZwKTsKLSAJICBwcm9fZXBpbG9ndWVfYWRqdXN0X3N0YWNrIChzdGFja19wb2ludGVy X3J0eCwKLSAJCQkJICAgICBoYXJkX2ZyYW1lX3BvaW50ZXJfcnR4LAotLQkJCQkgICAgIEdFTl9J TlQgKG9mZnNldCksIHN0eWxlKTsKLSsJCQkJICAgICBHRU5fSU5UIChvZmZzZXQpLCBzdHlsZSwg ZmFsc2UpOwotICAgICAgICAgICBpeDg2X2VtaXRfcmVzdG9yZV9zc2VfcmVnc191c2luZ19tb3Yg KHN0YWNrX3BvaW50ZXJfcnR4LAotLQkJCQkJICAgICAgICBmcmFtZS50b19hbGxvY2F0ZSwgc3R5 bGUgPT0gMik7Ci0rCQkJCQkJZnJhbWUudG9fYWxsb2NhdGUsIHJlZF9vZmZzZXQsCi0rCQkJCQkJ c3R5bGUgPT0gMik7Ci0gCSAgcHJvX2VwaWxvZ3VlX2FkanVzdF9zdGFjayAoc3RhY2tfcG9pbnRl cl9ydHgsIHN0YWNrX3BvaW50ZXJfcnR4LAotLQkJCQkgICAgIEdFTl9JTlQgKGZyYW1lLm5zc2Vy ZWdzICogMTYpLCBzdHlsZSk7Ci0rCQkJCSAgICAgR0VOX0lOVCAoZnJhbWUubnNzZXJlZ3MgKiAx NiksCi0rCQkJCSAgICAgc3R5bGUsIGZhbHNlKTsKLSAJfQotICAgICAgIGVsc2UgaWYgKGZyYW1l LnRvX2FsbG9jYXRlIHx8IGZyYW1lLm5zc2VyZWdzKQotIAl7Ci0gICAgICAgICAgIGl4ODZfZW1p dF9yZXN0b3JlX3NzZV9yZWdzX3VzaW5nX21vdiAoc3RhY2tfcG9pbnRlcl9ydHgsCi0tCQkJCQkg ICAgICAgIGZyYW1lLnRvX2FsbG9jYXRlLAotKwkJCQkJCWZyYW1lLnRvX2FsbG9jYXRlLCByZWRf b2Zmc2V0LAotIAkJCQkJCXN0eWxlID09IDIpOwotIAkgIHByb19lcGlsb2d1ZV9hZGp1c3Rfc3Rh Y2sgKHN0YWNrX3BvaW50ZXJfcnR4LCBzdGFja19wb2ludGVyX3J0eCwKLSAJCQkJICAgICBHRU5f SU5UIChmcmFtZS50b19hbGxvY2F0ZQotIAkJCQkgICAgIAkgICAgICArIGZyYW1lLm5zc2VyZWdz ICogMTYKLS0JCQkJCSAgICAgICsgZnJhbWUucGFkZGluZzApLCBzdHlsZSk7Ci0rCQkJCQkgICAg ICArIGZyYW1lLnBhZGRpbmcwKSwgc3R5bGUsCi0rCQkJCSAgICAgIXVzaW5nX2RyYXAgJiYgIWZy YW1lX3BvaW50ZXJfbmVlZGVkKTsKLSAJfQotIAotLSAgICAgIGZvciAocmVnbm8gPSAwOyByZWdu byA8IEZJUlNUX1BTRVVET19SRUdJU1RFUjsgcmVnbm8rKykKLS0JaWYgKCFTU0VfUkVHTk9fUCAo cmVnbm8pICYmIGl4ODZfc2F2ZV9yZWcgKHJlZ25vLCBmYWxzZSkpCi0tCSAgZW1pdF9pbnNuICgo Kml4ODZfZ2VuX3BvcDEpIChnZW5fcnR4X1JFRyAoUG1vZGUsIHJlZ25vKSkpOwotKyAgICAgIGl4 ODZfZW1pdF9yZXN0b3JlX3JlZ3NfdXNpbmdfcG9wIChyZWRfb2Zmc2V0ICsgZnJhbWUubnNzZXJl Z3MgKiAxNgotKwkJCQkJKyBmcmFtZS5wYWRkaW5nMCk7Ci0rICAgICAgcmVkX29mZnNldCAtPSBv ZmZzZXQ7Ci0rCi0gICAgICAgaWYgKGZyYW1lX3BvaW50ZXJfbmVlZGVkKQotIAl7Ci0gCSAgLyog TGVhdmUgcmVzdWx0cyBpbiBzaG9ydGVyIGRlcGVuZGVuY3kgY2hhaW5zIG9uIENQVXMgdGhhdCBh cmUKLSAJICAgICBhYmxlIHRvIGdyb2sgaXQgZmFzdC4gICovCi0gCSAgaWYgKFRBUkdFVF9VU0Vf TEVBVkUpCi0tCSAgICBlbWl0X2luc24gKCgqaXg4Nl9nZW5fbGVhdmUpICgpKTsKLSsJICAgIGl4 ODZfZW1pdF9sZWF2ZSAocmVkX29mZnNldCk7Ci0gCSAgZWxzZQotICAgICAgICAgICAgIHsKLSAg ICAgICAgICAgICAgIC8qIEZvciBzdGFjayByZWFsaWduZWQgcmVhbGx5IGhhcHBlbnMsIHJlY292 ZXIgc3RhY2sgCi1AQCAtODU4MSw0NyArODgwMSw3MSBAQCBpeDg2X2V4cGFuZF9lcGlsb2d1ZSAo aW50IHN0eWxlKQotICAgICAgICAgICAgICAgaWYgKHN0YWNrX3JlYWxpZ25fZnApCi0gCQlwcm9f ZXBpbG9ndWVfYWRqdXN0X3N0YWNrIChzdGFja19wb2ludGVyX3J0eCwKLSAJCQkJCSAgIGhhcmRf ZnJhbWVfcG9pbnRlcl9ydHgsCi0tCQkJCQkgICBjb25zdDBfcnR4LCBzdHlsZSk7Ci0tCSAgICAg IGVtaXRfaW5zbiAoKCppeDg2X2dlbl9wb3AxKSAoaGFyZF9mcmFtZV9wb2ludGVyX3J0eCkpOwot KwkJCQkJICAgY29uc3QwX3J0eCwgc3R5bGUsICF1c2luZ19kcmFwKTsKLSsJICAgICAgaXg4Nl9l bWl0X3Jlc3RvcmVfcmVnX3VzaW5nX3BvcCAoaGFyZF9mcmFtZV9wb2ludGVyX3J0eCwKLSsJCQkJ CSAgICAgICByZWRfb2Zmc2V0KTsKLSAgICAgICAgICAgICB9Ci0gCX0KLSAgICAgfQotIAotLSAg aWYgKGNydGwtPmRyYXBfcmVnICYmIGNydGwtPnN0YWNrX3JlYWxpZ25fbmVlZGVkKQotKyAgaWYg KHVzaW5nX2RyYXApCi0gICAgIHsKLSAgICAgICBpbnQgcGFyYW1fcHRyX29mZnNldCA9IChjYWxs X3VzZWRfcmVnc1tSRUdOTyAoY3J0bC0+ZHJhcF9yZWcpXQotIAkJCSAgICAgID8gMCA6IFVOSVRT X1BFUl9XT1JEKTsKLSsgICAgICBydHggaW5zbjsKLSsKLSAgICAgICBnY2NfYXNzZXJ0IChzdGFj a19yZWFsaWduX2RyYXApOwotLSAgICAgIGVtaXRfaW5zbiAoKCppeDg2X2dlbl9hZGQzKSAoc3Rh Y2tfcG9pbnRlcl9ydHgsCi0tCQkJCSAgIGNydGwtPmRyYXBfcmVnLAotLQkJCQkgICBHRU5fSU5U ICgtKFVOSVRTX1BFUl9XT1JECi0tCQkJCQkgICAgICArIHBhcmFtX3B0cl9vZmZzZXQpKSkpOwot LSAgICAgIGlmICghY2FsbF91c2VkX3JlZ3NbUkVHTk8gKGNydGwtPmRyYXBfcmVnKV0pCi0tCWVt aXRfaW5zbiAoKCppeDg2X2dlbl9wb3AxKSAoY3J0bC0+ZHJhcF9yZWcpKTsKLS0gICAgICAKLSsK LSsgICAgICBpbnNuID0gZW1pdF9pbnNuICgoKml4ODZfZ2VuX2FkZDMpIChzdGFja19wb2ludGVy X3J0eCwKLSsJCQkJCSAgY3J0bC0+ZHJhcF9yZWcsCi0rCQkJCQkgIEdFTl9JTlQgKC0oVU5JVFNf UEVSX1dPUkQKLSsJCQkJCQkgICAgICsgcGFyYW1fcHRyX29mZnNldCkpKSk7Ci0rCi0rICAgICAg aXg4Nl9jZmFfc3RhdGUtPnJlZyA9IHN0YWNrX3BvaW50ZXJfcnR4OwotKyAgICAgIGl4ODZfY2Zh X3N0YXRlLT5vZmZzZXQgPSBVTklUU19QRVJfV09SRCArIHBhcmFtX3B0cl9vZmZzZXQ7Ci0rCi0r ICAgICAgYWRkX3JlZ19ub3RlIChpbnNuLCBSRUdfQ0ZBX0RFRl9DRkEsCi0rCQkgICAgZ2VuX3J0 eF9QTFVTIChQbW9kZSwgaXg4Nl9jZmFfc3RhdGUtPnJlZywKLSsJCQkJICBHRU5fSU5UIChpeDg2 X2NmYV9zdGF0ZS0+b2Zmc2V0KSkpOwotKyAgICAgIFJUWF9GUkFNRV9SRUxBVEVEX1AgKGluc24p ID0gMTsKLSsKLSsgICAgICBpZiAocGFyYW1fcHRyX29mZnNldCkKLSsJaXg4Nl9lbWl0X3Jlc3Rv cmVfcmVnX3VzaW5nX3BvcCAoY3J0bC0+ZHJhcF9yZWcsIC1VTklUU19QRVJfV09SRCk7Ci0gICAg IH0KLSAKLSAgIC8qIFNpYmNhbGwgZXBpbG9ndWVzIGRvbid0IHdhbnQgYSByZXR1cm4gaW5zdHJ1 Y3Rpb24uICAqLwotICAgaWYgKHN0eWxlID09IDApCi0tICAgIHJldHVybjsKLSsgICAgewotKyAg ICAgICppeDg2X2NmYV9zdGF0ZSA9IGNmYV9zdGF0ZV9zYXZlOwotKyAgICAgIHJldHVybjsKLSsg ICAgfQotIAotICAgaWYgKGNydGwtPmFyZ3MucG9wc19hcmdzICYmIGNydGwtPmFyZ3Muc2l6ZSkK LSAgICAgewotICAgICAgIHJ0eCBwb3BjID0gR0VOX0lOVCAoY3J0bC0+YXJncy5wb3BzX2FyZ3Mp OwotIAotLSAgICAgIC8qIGkzODYgY2FuIG9ubHkgcG9wIDY0SyBieXRlcy4gIElmIGFza2VkIHRv IHBvcCBtb3JlLCBwb3AKLS0JIHJldHVybiBhZGRyZXNzLCBkbyBleHBsaWNpdCBhZGQsIGFuZCBq dW1wIGluZGlyZWN0bHkgdG8gdGhlCi0tCSBjYWxsZXIuICAqLwotKyAgICAgIC8qIGkzODYgY2Fu IG9ubHkgcG9wIDY0SyBieXRlcy4gIElmIGFza2VkIHRvIHBvcCBtb3JlLCBwb3AgcmV0dXJuCi0r CSBhZGRyZXNzLCBkbyBleHBsaWNpdCBhZGQsIGFuZCBqdW1wIGluZGlyZWN0bHkgdG8gdGhlIGNh bGxlci4gICovCi0gCi0gICAgICAgaWYgKGNydGwtPmFyZ3MucG9wc19hcmdzID49IDY1NTM2KQot IAl7Ci0gCSAgcnR4IGVjeCA9IGdlbl9ydHhfUkVHIChTSW1vZGUsIENYX1JFRyk7Ci0rCSAgcnR4 IGluc247Ci0gCi0gCSAgLyogVGhlcmUgaXMgbm8gInBhc2NhbCIgY2FsbGluZyBjb252ZW50aW9u IGluIGFueSA2NGJpdCBBQkkuICAqLwotIAkgIGdjY19hc3NlcnQgKCFUQVJHRVRfNjRCSVQpOwot IAotLQkgIGVtaXRfaW5zbiAoZ2VuX3BvcHNpMSAoZWN4KSk7Ci0tCSAgZW1pdF9pbnNuIChnZW5f YWRkc2kzIChzdGFja19wb2ludGVyX3J0eCwgc3RhY2tfcG9pbnRlcl9ydHgsIHBvcGMpKTsKLSsJ ICBpbnNuID0gZW1pdF9pbnNuIChnZW5fcG9wc2kxIChlY3gpKTsKLSsJICBpeDg2X2NmYV9zdGF0 ZS0+b2Zmc2V0IC09IFVOSVRTX1BFUl9XT1JEOwotKwotKwkgIGFkZF9yZWdfbm90ZSAoaW5zbiwg UkVHX0NGQV9BREpVU1RfQ0ZBLAotKwkJCWNvcHlfcnR4IChYVkVDRVhQIChQQVRURVJOIChpbnNu KSwgMCwgMSkpKTsKLSsJICBhZGRfcmVnX25vdGUgKGluc24sIFJFR19DRkFfUkVHSVNURVIsCi0r CQkJZ2VuX3J0eF9TRVQgKFZPSURtb2RlLCBlY3gsIHBjX3J0eCkpOwotKwkgIFJUWF9GUkFNRV9S RUxBVEVEX1AgKGluc24pID0gMTsKLSsKLSsJICBwcm9fZXBpbG9ndWVfYWRqdXN0X3N0YWNrIChz dGFja19wb2ludGVyX3J0eCwgc3RhY2tfcG9pbnRlcl9ydHgsCi0rCQkJCSAgICAgcG9wYywgLTEs IHRydWUpOwotIAkgIGVtaXRfanVtcF9pbnNuIChnZW5fcmV0dXJuX2luZGlyZWN0X2ludGVybmFs IChlY3gpKTsKLSAJfQotICAgICAgIGVsc2UKLUBAIC04NjI5LDYgKzg4NzMsMTAgQEAgaXg4Nl9l eHBhbmRfZXBpbG9ndWUgKGludCBzdHlsZSkKLSAgICAgfQotICAgZWxzZQotICAgICBlbWl0X2p1 bXBfaW5zbiAoZ2VuX3JldHVybl9pbnRlcm5hbCAoKSk7Ci0rCi0rICAvKiBSZXN0b3JlIHRoZSBz dGF0ZSBiYWNrIHRvIHRoZSBzdGF0ZSBmcm9tIHRoZSBwcm9sb2d1ZSwKLSsgICAgIHNvIHRoYXQg aXQncyBjb3JyZWN0IGZvciB0aGUgbmV4dCBlcGlsb2d1ZS4gICovCi0rICAqaXg4Nl9jZmFfc3Rh dGUgPSBjZmFfc3RhdGVfc2F2ZTsKLSB9Ci0gCi0gLyogUmVzZXQgZnJvbSB0aGUgZnVuY3Rpb24n cyBwb3RlbnRpYWwgbW9kaWZpY2F0aW9ucy4gICovCi1AQCAtMjk3NjAsOCArMzAwMDgsNiBAQCBp eDg2X2VudW1fdmFfbGlzdCAoaW50IGlkeCwgY29uc3QgY2hhciAqCi0gI2RlZmluZSBUQVJHRVRf VVBEQVRFX1NUQUNLX0JPVU5EQVJZIGl4ODZfdXBkYXRlX3N0YWNrX2JvdW5kYXJ5Ci0gI3VuZGVm IFRBUkdFVF9HRVRfRFJBUF9SVFgKLSAjZGVmaW5lIFRBUkdFVF9HRVRfRFJBUF9SVFggaXg4Nl9n ZXRfZHJhcF9ydHgKLS0jdW5kZWYgVEFSR0VUX0RXQVJGX0hBTkRMRV9GUkFNRV9VTlNQRUMKLS0j ZGVmaW5lIFRBUkdFVF9EV0FSRl9IQU5ETEVfRlJBTUVfVU5TUEVDIGl4ODZfZHdhcmZfaGFuZGxl X2ZyYW1lX3Vuc3BlYwotICN1bmRlZiBUQVJHRVRfU1RSSUNUX0FSR1VNRU5UX05BTUlORwotICNk ZWZpbmUgVEFSR0VUX1NUUklDVF9BUkdVTUVOVF9OQU1JTkcgaG9va19ib29sX0NVTVVMQVRJVkVf QVJHU190cnVlCi0gCi0tLS0gZ2NjL2NvbmZpZy9yczYwMDAvY3J0cmVzeGdwci5hc20uamoJMjAw OS0wNC0xNCAxNTo1MjoyNC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnY2MvY29uZmlnL3JzNjAwMC9j cnRyZXN4Z3ByLmFzbQkyMDA5LTA2LTA5IDA5OjEwOjI0LjAwMDAwMDAwMCArMDIwMAotQEAgLTM4 LDI3ICszOCw2OCBAQAotIC8qIENhbGxlZCB3aXRoIHIxMSBwb2ludGluZyB0byB0aGUgc3RhY2sg aGVhZGVyIHdvcmQgb2YgdGhlIGNhbGxlciBvZiB0aGUgKi8KLSAvKiBmdW5jdGlvbiwganVzdCBi ZXlvbmQgdGhlIGVuZCBvZiB0aGUgaW50ZWdlciByZXN0b3JlIGFyZWEuICAqLwotIAotK0NGSV9T VEFSVFBST0MKLStDRklfREVGX0NGQV9SRUdJU1RFUiAoMTEpCi0rQ0ZJX09GRlNFVCAoNjUsIDQp Ci0rQ0ZJX09GRlNFVCAoMTQsIC03MikKLStDRklfT0ZGU0VUICgxNSwgLTY4KQotK0NGSV9PRkZT RVQgKDE2LCAtNjQpCi0rQ0ZJX09GRlNFVCAoMTcsIC02MCkKLStDRklfT0ZGU0VUICgxOCwgLTU2 KQotK0NGSV9PRkZTRVQgKDE5LCAtNTIpCi0rQ0ZJX09GRlNFVCAoMjAsIC00OCkKLStDRklfT0ZG U0VUICgyMSwgLTQ0KQotK0NGSV9PRkZTRVQgKDIyLCAtNDApCi0rQ0ZJX09GRlNFVCAoMjMsIC0z NikKLStDRklfT0ZGU0VUICgyNCwgLTMyKQotK0NGSV9PRkZTRVQgKDI1LCAtMjgpCi0rQ0ZJX09G RlNFVCAoMjYsIC0yNCkKLStDRklfT0ZGU0VUICgyNywgLTIwKQotK0NGSV9PRkZTRVQgKDI4LCAt MTYpCi0rQ0ZJX09GRlNFVCAoMjksIC0xMikKLStDRklfT0ZGU0VUICgzMCwgLTgpCi0rQ0ZJX09G RlNFVCAoMzEsIC00KQotIEhJRERFTl9GVU5DKF9yZXN0Z3ByXzE0X3gpCWx3egkxNCwtNzIoMTEp CS8qIHJlc3RvcmUgZ3AgcmVnaXN0ZXJzICovCi0rQ0ZJX1JFU1RPUkUgKDE0KQotIEhJRERFTl9G VU5DKF9yZXN0Z3ByXzE1X3gpCWx3egkxNSwtNjgoMTEpCi0rQ0ZJX1JFU1RPUkUgKDE1KQotIEhJ RERFTl9GVU5DKF9yZXN0Z3ByXzE2X3gpCWx3egkxNiwtNjQoMTEpCi0rQ0ZJX1JFU1RPUkUgKDE2 KQotIEhJRERFTl9GVU5DKF9yZXN0Z3ByXzE3X3gpCWx3egkxNywtNjAoMTEpCi0rQ0ZJX1JFU1RP UkUgKDE3KQotIEhJRERFTl9GVU5DKF9yZXN0Z3ByXzE4X3gpCWx3egkxOCwtNTYoMTEpCi0rQ0ZJ X1JFU1RPUkUgKDE4KQotIEhJRERFTl9GVU5DKF9yZXN0Z3ByXzE5X3gpCWx3egkxOSwtNTIoMTEp Ci0rQ0ZJX1JFU1RPUkUgKDE5KQotIEhJRERFTl9GVU5DKF9yZXN0Z3ByXzIwX3gpCWx3egkyMCwt NDgoMTEpCi0rQ0ZJX1JFU1RPUkUgKDIwKQotIEhJRERFTl9GVU5DKF9yZXN0Z3ByXzIxX3gpCWx3 egkyMSwtNDQoMTEpCi0rQ0ZJX1JFU1RPUkUgKDIxKQotIEhJRERFTl9GVU5DKF9yZXN0Z3ByXzIy X3gpCWx3egkyMiwtNDAoMTEpCi0rQ0ZJX1JFU1RPUkUgKDIyKQotIEhJRERFTl9GVU5DKF9yZXN0 Z3ByXzIzX3gpCWx3egkyMywtMzYoMTEpCi0rQ0ZJX1JFU1RPUkUgKDIzKQotIEhJRERFTl9GVU5D KF9yZXN0Z3ByXzI0X3gpCWx3egkyNCwtMzIoMTEpCi0rQ0ZJX1JFU1RPUkUgKDI0KQotIEhJRERF Tl9GVU5DKF9yZXN0Z3ByXzI1X3gpCWx3egkyNSwtMjgoMTEpCi0rQ0ZJX1JFU1RPUkUgKDI1KQot IEhJRERFTl9GVU5DKF9yZXN0Z3ByXzI2X3gpCWx3egkyNiwtMjQoMTEpCi0rQ0ZJX1JFU1RPUkUg KDI2KQotIEhJRERFTl9GVU5DKF9yZXN0Z3ByXzI3X3gpCWx3egkyNywtMjAoMTEpCi0rQ0ZJX1JF U1RPUkUgKDI3KQotIEhJRERFTl9GVU5DKF9yZXN0Z3ByXzI4X3gpCWx3egkyOCwtMTYoMTEpCi0r Q0ZJX1JFU1RPUkUgKDI4KQotIEhJRERFTl9GVU5DKF9yZXN0Z3ByXzI5X3gpCWx3egkyOSwtMTIo MTEpCi0rQ0ZJX1JFU1RPUkUgKDI5KQotIEhJRERFTl9GVU5DKF9yZXN0Z3ByXzMwX3gpCWx3egkz MCwtOCgxMSkKLStDRklfUkVTVE9SRSAoMzApCi0gSElEREVOX0ZVTkMoX3Jlc3RncHJfMzFfeCkJ bHd6CTAsNCgxMSkKLSAJCQkJbHd6CTMxLC00KDExKQotK0NGSV9SRVNUT1JFICgzMSkKLSAJCQkJ bXRscgkwCi0rQ0ZJX1JFU1RPUkUgKDY1KQotIAkJCQltcgkxLDExCi0rQ0ZJX0RFRl9DRkFfUkVH SVNURVIgKDEpCi0gCQkJCWJscgotIEZVTkNfRU5EKF9yZXN0Z3ByXzMxX3gpCi0gRlVOQ19FTkQo X3Jlc3RncHJfMzBfeCkKLUBAIC03OCw1ICsxMTksNiBAQCBGVU5DX0VORChfcmVzdGdwcl8xN194 KQotIEZVTkNfRU5EKF9yZXN0Z3ByXzE2X3gpCi0gRlVOQ19FTkQoX3Jlc3RncHJfMTVfeCkKLSBG VU5DX0VORChfcmVzdGdwcl8xNF94KQotK0NGSV9FTkRQUk9DCi0gCi0gI2VuZGlmCi0tLS0gZ2Nj L2NvbmZpZy9yczYwMDAvY3J0cmVzZnByLmFzbS5qagkyMDA5LTA0LTE0IDE1OjUyOjMwLjAwMDAw MDAwMCArMDIwMAotKysrIGdjYy9jb25maWcvcnM2MDAwL2NydHJlc2Zwci5hc20JMjAwOS0wNi0w OSAwOToxMDoyNC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0zOCw2ICszOCw3IEBACi0gLyogQ2FsbGVk IHdpdGggcjExIHBvaW50aW5nIHRvIHRoZSBzdGFjayBoZWFkZXIgd29yZCBvZiB0aGUgY2FsbGVy IG9mIHRoZSAqLwotIC8qIGZ1bmN0aW9uLCBqdXN0IGJleW9uZCB0aGUgZW5kIG9mIHRoZSBmbG9h dGluZyBwb2ludCBzYXZlIGFyZWEuICAqLwotIAotK0NGSV9TVEFSVFBST0MKLSBISURERU5fRlVO QyhfcmVzdGZwcl8xNCkJbGZkCTE0LC0xNDQoMTEpCS8qIHJlc3RvcmUgZnAgcmVnaXN0ZXJzICov Ci0gSElEREVOX0ZVTkMoX3Jlc3RmcHJfMTUpCWxmZAkxNSwtMTM2KDExKQotIEhJRERFTl9GVU5D KF9yZXN0ZnByXzE2KQlsZmQJMTYsLTEyOCgxMSkKLUBAIC03NSw1ICs3Niw2IEBAIEZVTkNfRU5E KF9yZXN0ZnByXzE3KQotIEZVTkNfRU5EKF9yZXN0ZnByXzE2KQotIEZVTkNfRU5EKF9yZXN0ZnBy XzE1KQotIEZVTkNfRU5EKF9yZXN0ZnByXzE0KQotK0NGSV9FTkRQUk9DCi0gCi0gI2VuZGlmCi0t LS0gZ2NjL2NvbmZpZy9yczYwMDAvY3J0c2F2ZnByLmFzbS5qagkyMDA5LTA0LTE0IDE1OjUyOjI0 LjAwMDAwMDAwMCArMDIwMAotKysrIGdjYy9jb25maWcvcnM2MDAwL2NydHNhdmZwci5hc20JMjAw OS0wNi0wOSAwOToxMDoyNC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0zOCw2ICszOCw3IEBACi0gLyog Q2FsbGVkIHdpdGggcjExIHBvaW50aW5nIHRvIHRoZSBzdGFjayBoZWFkZXIgd29yZCBvZiB0aGUg Y2FsbGVyIG9mIHRoZSAqLwotIC8qIGZ1bmN0aW9uLCBqdXN0IGJleW9uZCB0aGUgZW5kIG9mIHRo ZSBmbG9hdGluZyBwb2ludCBzYXZlIGFyZWEuICAqLwotIAotK0NGSV9TVEFSVFBST0MKLSBISURE RU5fRlVOQyhfc2F2ZWZwcl8xNCkJc3RmZAkxNCwtMTQ0KDExKQkvKiBzYXZlIGZwIHJlZ2lzdGVy cyAqLwotIEhJRERFTl9GVU5DKF9zYXZlZnByXzE1KQlzdGZkCTE1LC0xMzYoMTEpCi0gSElEREVO X0ZVTkMoX3NhdmVmcHJfMTYpCXN0ZmQJMTYsLTEyOCgxMSkKLUBAIC03NSw1ICs3Niw2IEBAIEZV TkNfRU5EKF9zYXZlZnByXzE3KQotIEZVTkNfRU5EKF9zYXZlZnByXzE2KQotIEZVTkNfRU5EKF9z YXZlZnByXzE1KQotIEZVTkNfRU5EKF9zYXZlZnByXzE0KQotK0NGSV9FTkRQUk9DCi0gCi0gI2Vu ZGlmCi0tLS0gZ2NjL2NvbmZpZy9yczYwMDAvcHBjLWFzbS5oLmpqCTIwMDktMDEtMTQgMTI6MzM6 MDMuMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL2NvbmZpZy9yczYwMDAvcHBjLWFzbS5oCTIwMDkt MDYtMDkgMDk6MjA6MDQuMDAwMDAwMDAwICswMjAwCi1AQCAtMTcyLDYgKzE3MiwyNSBAQCBHTFVF KC5MLG5hbWUpOiBcCi0gCS5zaXplIEZVTkNfTkFNRShuYW1lKSxHTFVFKC5MLG5hbWUpLUZVTkNf TkFNRShuYW1lKQotICNlbmRpZgotIAotKyNpZmRlZiBJTl9HQ0MKLSsvKiBGb3IgSEFWRV9HQVNf Q0ZJX0RJUkVDVElWRS4gICovCi0rI2luY2x1ZGUgImF1dG8taG9zdC5oIgotKwotKyNpZmRlZiBI QVZFX0dBU19DRklfRElSRUNUSVZFCi0rIyBkZWZpbmUgQ0ZJX1NUQVJUUFJPQwkJCS5jZmlfc3Rh cnRwcm9jCi0rIyBkZWZpbmUgQ0ZJX0VORFBST0MJCQkuY2ZpX2VuZHByb2MKLSsjIGRlZmluZSBD RklfT0ZGU0VUKHJlZywgb2ZmKQkJLmNmaV9vZmZzZXQgcmVnLCBvZmYKLSsjIGRlZmluZSBDRklf REVGX0NGQV9SRUdJU1RFUihyZWcpCS5jZmlfZGVmX2NmYV9yZWdpc3RlciByZWcKLSsjIGRlZmlu ZSBDRklfUkVTVE9SRShyZWcpCQkuY2ZpX3Jlc3RvcmUgcmVnCi0rI2Vsc2UKLSsjIGRlZmluZSBD RklfU1RBUlRQUk9DCi0rIyBkZWZpbmUgQ0ZJX0VORFBST0MKLSsjIGRlZmluZSBDRklfT0ZGU0VU KHJlZywgb2ZmKQotKyMgZGVmaW5lIENGSV9ERUZfQ0ZBX1JFR0lTVEVSKHJlZykKLSsjIGRlZmlu ZSBDRklfUkVTVE9SRShyZWcpCi0rI2VuZGlmCi0rI2VuZGlmCi0rCi0gI2lmIGRlZmluZWQgX19s aW51eF9fCi0gCS5zZWN0aW9uIC5ub3RlLkdOVS1zdGFjawotIAkucHJldmlvdXMKLS0tLSBnY2Mv Y29uZmlnL3JzNjAwMC9jcnRzYXZncHIuYXNtLmpqCTIwMDktMDQtMTQgMTU6NTI6MjIuMDAwMDAw MDAwICswMjAwCi0rKysgZ2NjL2NvbmZpZy9yczYwMDAvY3J0c2F2Z3ByLmFzbQkyMDA5LTA2LTA5 IDA5OjEwOjI0LjAwMDAwMDAwMCArMDIwMAotQEAgLTM4LDYgKzM4LDcgQEAKLSAvKiBDYWxsZWQg d2l0aCByMTEgcG9pbnRpbmcgdG8gdGhlIHN0YWNrIGhlYWRlciB3b3JkIG9mIHRoZSBjYWxsZXIg b2YgdGhlICovCi0gLyogZnVuY3Rpb24sIGp1c3QgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGludGVn ZXIgc2F2ZSBhcmVhLiAgKi8KLSAKLStDRklfU1RBUlRQUk9DCi0gSElEREVOX0ZVTkMoX3NhdmVn cHJfMTQpCXN0dwkxNCwtNzIoMTEpCS8qIHNhdmUgZ3AgcmVnaXN0ZXJzICovCi0gSElEREVOX0ZV TkMoX3NhdmVncHJfMTUpCXN0dwkxNSwtNjgoMTEpCi0gSElEREVOX0ZVTkMoX3NhdmVncHJfMTYp CXN0dwkxNiwtNjQoMTEpCi1AQCAtNzUsNSArNzYsNiBAQCBGVU5DX0VORChfc2F2ZWdwcl8xNykK LSBGVU5DX0VORChfc2F2ZWdwcl8xNikKLSBGVU5DX0VORChfc2F2ZWdwcl8xNSkKLSBGVU5DX0VO RChfc2F2ZWdwcl8xNCkKLStDRklfRU5EUFJPQwotIAotICNlbmRpZgotLS0tIGdjYy9jb25maWcv cnM2MDAwL3JzNjAwMC5jLmpqCTIwMDktMDMtMTkgMTc6MTc6MjMuMDAwMDAwMDAwICswMTAwCi0r KysgZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmMJMjAwOS0wNi0wOSAwOToxMDoyNC4wMDAwMDAw MDAgKzAyMDAKLUBAIC03ODIsNyArNzgyLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKnJzNjAwMF9t YW5nbGVfdHlwZSAoYwotIGV4dGVybiBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX3NwZWMgcnM2MDAw X2F0dHJpYnV0ZV90YWJsZVtdOwotIHN0YXRpYyB2b2lkIHJzNjAwMF9zZXRfZGVmYXVsdF90eXBl X2F0dHJpYnV0ZXMgKHRyZWUpOwotIHN0YXRpYyBydHggcnM2MDAwX3NhdnJlc19yb3V0aW5lX3N5 bSAocnM2MDAwX3N0YWNrX3QgKiwgYm9vbCwgYm9vbCwgYm9vbCk7Ci0tc3RhdGljIHZvaWQgcnM2 MDAwX2VtaXRfc3RhY2tfcmVzZXQgKHJzNjAwMF9zdGFja190ICosIHJ0eCwgcnR4LCBpbnQsIGJv b2wpOwotK3N0YXRpYyBydHggcnM2MDAwX2VtaXRfc3RhY2tfcmVzZXQgKHJzNjAwMF9zdGFja190 ICosIHJ0eCwgcnR4LCBpbnQsIGJvb2wpOwotIHN0YXRpYyBydHggcnM2MDAwX21ha2Vfc2F2cmVz X3J0eCAocnM2MDAwX3N0YWNrX3QgKiwgcnR4LCBpbnQsCi0gCQkJCSAgIGVudW0gbWFjaGluZV9t b2RlLCBib29sLCBib29sLCBib29sKTsKLSBzdGF0aWMgYm9vbCByczYwMDBfcmVnX2xpdmVfb3Jf cGljX29mZnNldF9wIChpbnQpOwotQEAgLTE1OTE4LDcgKzE1OTE4LDcgQEAgcnM2MDAwX3NhdnJl c19yb3V0aW5lX3N5bSAocnM2MDAwX3N0YWNrXwotICAgIHN0YWNrIHBvaW50ZXIsIGJ1dCBtb3Zl IHRoZSBiYXNlIG9mIHRoZSBmcmFtZSBpbnRvIHIxMSBmb3IgdXNlIGJ5Ci0gICAgb3V0LW9mLWxp bmUgcmVnaXN0ZXIgcmVzdG9yZSByb3V0aW5lcy4gICovCi0gCi0tc3RhdGljIHZvaWQKLStzdGF0 aWMgcnR4Ci0gcnM2MDAwX2VtaXRfc3RhY2tfcmVzZXQgKHJzNjAwMF9zdGFja190ICppbmZvLAot IAkJCSBydHggc3BfcmVnX3J0eCwgcnR4IGZyYW1lX3JlZ19ydHgsCi0gCQkJIGludCBzcF9vZmZz ZXQsIGJvb2wgc2F2cmVzKQotQEAgLTE1OTM1LDEwICsxNTkzNSwxMCBAQCByczYwMDBfZW1pdF9z dGFja19yZXNldCAocnM2MDAwX3N0YWNrX3QgCi0gICAgIHsKLSAgICAgICByczYwMDBfZW1pdF9z dGFja190aWUgKCk7Ci0gICAgICAgaWYgKHNwX29mZnNldCAhPSAwKQotLQllbWl0X2luc24gKGdl bl9hZGRzaTMgKHNwX3JlZ19ydHgsIGZyYW1lX3JlZ19ydHgsCi0tCQkJICAgICAgIEdFTl9JTlQg KHNwX29mZnNldCkpKTsKLSsJcmV0dXJuIGVtaXRfaW5zbiAoZ2VuX2FkZHNpMyAoc3BfcmVnX3J0 eCwgZnJhbWVfcmVnX3J0eCwKLSsJCQkJICAgICAgR0VOX0lOVCAoc3Bfb2Zmc2V0KSkpOwotICAg ICAgIGVsc2UgaWYgKCFzYXZyZXMpCi0tCWVtaXRfbW92ZV9pbnNuIChzcF9yZWdfcnR4LCBmcmFt ZV9yZWdfcnR4KTsKLSsJcmV0dXJuIGVtaXRfbW92ZV9pbnNuIChzcF9yZWdfcnR4LCBmcmFtZV9y ZWdfcnR4KTsKLSAgICAgfQotICAgZWxzZSBpZiAoc3Bfb2Zmc2V0ICE9IDApCi0gICAgIHsKLUBA IC0xNTk1MCwxMiArMTU5NTAsMTIgQEAgcnM2MDAwX2VtaXRfc3RhY2tfcmVzZXQgKHJzNjAwMF9z dGFja190IAotIAkJICAgICAgPyBnZW5fcnR4X1JFRyAoUG1vZGUsIDExKQotIAkJICAgICAgOiBz cF9yZWdfcnR4KTsKLSAKLS0gICAgICBlbWl0X2luc24gKFRBUkdFVF8zMkJJVAotLQkJID8gZ2Vu X2FkZHNpMyAoZGVzdF9yZWcsIHNwX3JlZ19ydHgsCi0tCQkJICAgICAgIEdFTl9JTlQgKHNwX29m ZnNldCkpCi0tCQkgOiBnZW5fYWRkZGkzIChkZXN0X3JlZywgc3BfcmVnX3J0eCwKLS0JCQkgICAg ICAgR0VOX0lOVCAoc3Bfb2Zmc2V0KSkpOwotKyAgICAgIHJ0eCBpbnNuID0gZW1pdF9pbnNuIChn ZW5fYWRkM19pbnNuIChkZXN0X3JlZywgc3BfcmVnX3J0eCwKLSsJCQkJCSAgIEdFTl9JTlQgKHNw X29mZnNldCkpKTsKLSsgICAgICBpZiAoIXNhdnJlcykKLSsJcmV0dXJuIGluc247Ci0gICAgIH0K LSsgIHJldHVybiBOVUxMX1JUWDsKLSB9Ci0gCi0gLyogQ29uc3RydWN0IGEgcGFyYWxsZWwgcnR4 IGRlc2NyaWJpbmcgdGhlIGVmZmVjdCBvZiBhIGNhbGwgdG8gYW4KLUBAIC0xNjg3MCwxMiArMTY4 NzAsMTkgQEAgcnM2MDAwX3Jlc3RvcmVfc2F2ZWRfY3IgKHJ0eCByZWcsIGludCB1cwotIAl9Ci0g fQotIAotLS8qIEVtaXQgZnVuY3Rpb24gZXBpbG9ndWUgYXMgaW5zbnMuCi0rLyogUmV0dXJuIHRy dWUgaWYgT0ZGU0VUIGZyb20gc3RhY2sgcG9pbnRlciBjYW4gYmUgY2xvYmJlcmVkIGJ5IHNpZ25h bHMuCi0rICAgVi40IGRvZXNuJ3QgaGF2ZSBhbnkgc3RhY2sgY3VzaGlvbiwgQUlYIEFCSXMgaGF2 ZSAyMjAgb3IgMjg4IGJ5dGVzCi0rICAgYmVsb3cgc3RhY2sgcG9pbnRlciBub3QgY2xvYmVycmVk IGJ5IHNpZ25hbHMuICAqLwotKwotK3N0YXRpYyBpbmxpbmUgYm9vbAotK29mZnNldF9iZWxvd19y ZWRfem9uZV9wIChIT1NUX1dJREVfSU5UIG9mZnNldCkKLSt7Ci0rICByZXR1cm4gb2Zmc2V0IDwg KERFRkFVTFRfQUJJID09IEFCSV9WNAotKwkJICAgPyAwCi0rCQkgICA6IFRBUkdFVF8zMkJJVCA/ IC0yMjAgOiAtMjg4KTsKLSt9Ci0gCi0tICAgQXQgcHJlc2VudCwgZHdhcmYyb3V0X2ZyYW1lX2Rl YnVnX2V4cHIgZG9lc24ndCB1bmRlcnN0YW5kCi0tICAgcmVnaXN0ZXIgcmVzdG9yZXMsIHNvIHdl IGRvbid0IGJvdGhlciBzZXR0aW5nIFJUWF9GUkFNRV9SRUxBVEVEX1AKLS0gICBhbnl3aGVyZSBp biB0aGUgZXBpbG9ndWUuICBNb3N0IG9mIHRoZSBpbnNucyBiZWxvdyB3b3VsZCBpbiBhbnkgY2Fz ZQotLSAgIG5lZWQgc3BlY2lhbCBub3RlcyB0byBleHBsYWluIHdoZXJlIHIxMSBpcyBpbiByZWxh dGlvbiB0byB0aGUgc3RhY2suICAqLwotKy8qIEVtaXQgZnVuY3Rpb24gZXBpbG9ndWUgYXMgaW5z bnMuICAqLwotIAotIHZvaWQKLSByczYwMDBfZW1pdF9lcGlsb2d1ZSAoaW50IHNpYmNhbGwpCi1A QCAtMTY4OTEsNiArMTY4OTgsOCBAQCByczYwMDBfZW1pdF9lcGlsb2d1ZSAoaW50IHNpYmNhbGwp Ci0gICBpbnQgc3Bfb2Zmc2V0ID0gMDsKLSAgIHJ0eCBzcF9yZWdfcnR4ID0gZ2VuX3J0eF9SRUcg KFBtb2RlLCAxKTsKLSAgIHJ0eCBmcmFtZV9yZWdfcnR4ID0gc3BfcmVnX3J0eDsKLSsgIHJ0eCBj ZmFfcmVzdG9yZXMgPSBOVUxMX1JUWDsKLSsgIHJ0eCBpbnNuOwotICAgZW51bSBtYWNoaW5lX21v ZGUgcmVnX21vZGUgPSBQbW9kZTsKLSAgIGludCByZWdfc2l6ZSA9IFRBUkdFVF8zMkJJVCA/IDQg OiA4OwotICAgaW50IGk7Ci1AQCAtMTcwMzEsNyArMTcwNDAsNyBAQCByczYwMDBfZW1pdF9lcGls b2d1ZSAoaW50IHNpYmNhbGwpCi0gICAgICAgJiYgaW5mby0+YWx0aXZlY19zaXplICE9IDAKLSAg ICAgICAmJiAoQUxXQVlTX1JFU1RPUkVfQUxUSVZFQ19CRUZPUkVfUE9QCi0gCSAgfHwgKERFRkFV TFRfQUJJICE9IEFCSV9WNAotLQkgICAgICAmJiBpbmZvLT5hbHRpdmVjX3NhdmVfb2Zmc2V0IDwg KFRBUkdFVF8zMkJJVCA/IC0yMjAgOiAtMjg4KSkpKQotKwkgICAgICAmJiBvZmZzZXRfYmVsb3df cmVkX3pvbmVfcCAoaW5mby0+YWx0aXZlY19zYXZlX29mZnNldCkpKSkKLSAgICAgewotICAgICAg IGludCBpOwotIAotQEAgLTE3MDQ4LDcgKzE3MDU3LDcgQEAgcnM2MDAwX2VtaXRfZXBpbG9ndWUg KGludCBzaWJjYWxsKQotICAgICAgIGZvciAoaSA9IGluZm8tPmZpcnN0X2FsdGl2ZWNfcmVnX3Nh dmU7IGkgPD0gTEFTVF9BTFRJVkVDX1JFR05POyArK2kpCi0gCWlmIChpbmZvLT52cnNhdmVfbWFz ayAmIEFMVElWRUNfUkVHX0JJVCAoaSkpCi0gCSAgewotLQkgICAgcnR4IGFkZHIsIGFyZWcsIG1l bTsKLSsJICAgIHJ0eCBhZGRyLCBhcmVnLCBtZW0sIHJlZzsKLSAKLSAJICAgIGFyZWcgPSBnZW5f cnR4X1JFRyAoUG1vZGUsIDApOwotIAkgICAgZW1pdF9tb3ZlX2luc24KLUBAIC0xNzA2MCw3ICsx NzA2OSwxMyBAQCByczYwMDBfZW1pdF9lcGlsb2d1ZSAoaW50IHNpYmNhbGwpCi0gCSAgICBhZGRy ID0gZ2VuX3J0eF9QTFVTIChQbW9kZSwgZnJhbWVfcmVnX3J0eCwgYXJlZyk7Ci0gCSAgICBtZW0g PSBnZW5fZnJhbWVfbWVtIChWNFNJbW9kZSwgYWRkcik7Ci0gCi0tCSAgICBlbWl0X21vdmVfaW5z biAoZ2VuX3J0eF9SRUcgKFY0U0ltb2RlLCBpKSwgbWVtKTsKLSsJICAgIHJlZyA9IGdlbl9ydHhf UkVHIChWNFNJbW9kZSwgaSk7Ci0rCSAgICBlbWl0X21vdmVfaW5zbiAocmVnLCBtZW0pOwotKwkg ICAgaWYgKG9mZnNldF9iZWxvd19yZWRfem9uZV9wIChpbmZvLT5hbHRpdmVjX3NhdmVfb2Zmc2V0 Ci0rCQkJCQkgKyAoaSAtIGluZm8tPmZpcnN0X2FsdGl2ZWNfcmVnX3NhdmUpCi0rCQkJCQkgICAq IDE2KSkKLSsJICAgICAgY2ZhX3Jlc3RvcmVzID0gYWxsb2NfRVhQUl9MSVNUIChSRUdfQ0ZBX1JF U1RPUkUsIHJlZywKLSsJCQkJCSAgICAgIGNmYV9yZXN0b3Jlcyk7Ci0gCSAgfQotICAgICB9Ci0g Ci1AQCAtMTcwNzAsNyArMTcwODUsNyBAQCByczYwMDBfZW1pdF9lcGlsb2d1ZSAoaW50IHNpYmNh bGwpCi0gICAgICAgJiYgaW5mby0+dnJzYXZlX21hc2sgIT0gMAotICAgICAgICYmIChBTFdBWVNf UkVTVE9SRV9BTFRJVkVDX0JFRk9SRV9QT1AKLSAJICB8fCAoREVGQVVMVF9BQkkgIT0gQUJJX1Y0 Ci0tCSAgICAgICYmIGluZm8tPnZyc2F2ZV9zYXZlX29mZnNldCA8IChUQVJHRVRfMzJCSVQgPyAt MjIwIDogLTI4OCkpKSkKLSsJICAgICAgJiYgb2Zmc2V0X2JlbG93X3JlZF96b25lX3AgKGluZm8t PnZyc2F2ZV9zYXZlX29mZnNldCkpKSkKLSAgICAgewotICAgICAgIHJ0eCBhZGRyLCBtZW0sIHJl ZzsKLSAKLUBAIC0xNzA5Niw2ICsxNzExMSw3IEBAIHJzNjAwMF9lbWl0X2VwaWxvZ3VlIChpbnQg c2liY2FsbCkKLSAgICAgICBlbWl0X2luc24gKGdlbmVyYXRlX3NldF92cnNhdmUgKHJlZywgaW5m bywgMSkpOwotICAgICB9Ci0gCi0rICBpbnNuID0gTlVMTF9SVFg7Ci0gICAvKiBJZiB3ZSBoYXZl IGEgbGFyZ2Ugc3RhY2sgZnJhbWUsIHJlc3RvcmUgdGhlIG9sZCBzdGFjayBwb2ludGVyCi0gICAg ICB1c2luZyB0aGUgYmFja2NoYWluLiAgKi8KLSAgIGlmICh1c2VfYmFja2NoYWluX3RvX3Jlc3Rv cmVfc3ApCi1AQCAtMTcxMDcsOCArMTcxMjMsOCBAQCByczYwMDBfZW1pdF9lcGlsb2d1ZSAoaW50 IHNpYmNhbGwpCi0gCSAgaWYgKERFRkFVTFRfQUJJID09IEFCSV9WNCkKLSAJICAgIGZyYW1lX3Jl Z19ydHggPSBnZW5fcnR4X1JFRyAoUG1vZGUsIDExKTsKLSAKLS0JICBlbWl0X21vdmVfaW5zbiAo ZnJhbWVfcmVnX3J0eCwKLS0JCQkgIGdlbl9ydHhfTUVNIChQbW9kZSwgc3BfcmVnX3J0eCkpOwot KwkgIGluc24gPSBlbWl0X21vdmVfaW5zbiAoZnJhbWVfcmVnX3J0eCwKLSsJCQkJIGdlbl9ydHhf TUVNIChQbW9kZSwgc3BfcmVnX3J0eCkpOwotIAkgIHNwX29mZnNldCA9IDA7Ci0gCX0KLSAgICAg ICBlbHNlIGlmIChBTFdBWVNfUkVTVE9SRV9BTFRJVkVDX0JFRk9SRV9QT1AKLUBAIC0xNzExNyw3 ICsxNzEzMyw3IEBAIHJzNjAwMF9lbWl0X2VwaWxvZ3VlIChpbnQgc2liY2FsbCkKLSAJOwotICAg ICAgIGVsc2UKLSAJewotLQkgIGVtaXRfbW92ZV9pbnNuIChzcF9yZWdfcnR4LCBmcmFtZV9yZWdf cnR4KTsKLSsJICBpbnNuID0gZW1pdF9tb3ZlX2luc24gKHNwX3JlZ19ydHgsIGZyYW1lX3JlZ19y dHgpOwotIAkgIGZyYW1lX3JlZ19ydHggPSBzcF9yZWdfcnR4OwotIAl9Ci0gICAgIH0KLUBAIC0x NzEyOSwzOCArMTcxNDUsNDIgQEAgcnM2MDAwX2VtaXRfZXBpbG9ndWUgKGludCBzaWJjYWxsKQot ICAgICAgIGlmIChERUZBVUxUX0FCSSA9PSBBQklfVjQpCi0gCWZyYW1lX3JlZ19ydHggPSBnZW5f cnR4X1JFRyAoUG1vZGUsIDExKTsKLSAKLS0gICAgICBlbWl0X2luc24gKFRBUkdFVF8zMkJJVAot LQkJID8gZ2VuX2FkZHNpMyAoZnJhbWVfcmVnX3J0eCwgaGFyZF9mcmFtZV9wb2ludGVyX3J0eCwK LS0JCQkgICAgICAgR0VOX0lOVCAoaW5mby0+dG90YWxfc2l6ZSkpCi0tCQkgOiBnZW5fYWRkZGkz IChmcmFtZV9yZWdfcnR4LCBoYXJkX2ZyYW1lX3BvaW50ZXJfcnR4LAotLQkJCSAgICAgICBHRU5f SU5UIChpbmZvLT50b3RhbF9zaXplKSkpOwotKyAgICAgIGluc24gPSBlbWl0X2luc24gKGdlbl9h ZGQzX2luc24gKGZyYW1lX3JlZ19ydHgsIGhhcmRfZnJhbWVfcG9pbnRlcl9ydHgsCi0rCQkJCSAg ICAgICBHRU5fSU5UIChpbmZvLT50b3RhbF9zaXplKSkpOwotICAgICAgIHNwX29mZnNldCA9IDA7 Ci0gICAgIH0KLSAgIGVsc2UgaWYgKGluZm8tPnB1c2hfcAotIAkgICAmJiBERUZBVUxUX0FCSSAh PSBBQklfVjQKLSAJICAgJiYgIWNydGwtPmNhbGxzX2VoX3JldHVybikKLSAgICAgewotLSAgICAg IGVtaXRfaW5zbiAoVEFSR0VUXzMyQklUCi0tCQkgPyBnZW5fYWRkc2kzIChzcF9yZWdfcnR4LCBz cF9yZWdfcnR4LAotLQkJCSAgICAgICBHRU5fSU5UIChpbmZvLT50b3RhbF9zaXplKSkKLS0JCSA6 IGdlbl9hZGRkaTMgKHNwX3JlZ19ydHgsIHNwX3JlZ19ydHgsCi0tCQkJICAgICAgIEdFTl9JTlQg KGluZm8tPnRvdGFsX3NpemUpKSk7Ci0rICAgICAgaW5zbiA9IGVtaXRfaW5zbiAoZ2VuX2FkZDNf aW5zbiAoc3BfcmVnX3J0eCwgc3BfcmVnX3J0eCwKLSsJCQkJICAgICAgIEdFTl9JTlQgKGluZm8t PnRvdGFsX3NpemUpKSk7Ci0gICAgICAgc3Bfb2Zmc2V0ID0gMDsKLSAgICAgfQotKyAgaWYgKGlu c24gJiYgZnJhbWVfcmVnX3J0eCA9PSBzcF9yZWdfcnR4KQotKyAgICB7Ci0rICAgICAgaWYgKGNm YV9yZXN0b3JlcykKLSsJewotKwkgIFJFR19OT1RFUyAoaW5zbikgPSBjZmFfcmVzdG9yZXM7Ci0r CSAgY2ZhX3Jlc3RvcmVzID0gTlVMTF9SVFg7Ci0rCX0KLSsgICAgICBhZGRfcmVnX25vdGUgKGlu c24sIFJFR19DRkFfREVGX0NGQSwgc3BfcmVnX3J0eCk7Ci0rICAgICAgUlRYX0ZSQU1FX1JFTEFU RURfUCAoaW5zbikgPSAxOwotKyAgICB9Ci0gCi0gICAvKiBSZXN0b3JlIEFsdGlWZWMgcmVnaXN0 ZXJzIGlmIHdlIGhhdmUgbm90IGRvbmUgc28gYWxyZWFkeS4gICovCi0gICBpZiAoIUFMV0FZU19S RVNUT1JFX0FMVElWRUNfQkVGT1JFX1BPUAotICAgICAgICYmIFRBUkdFVF9BTFRJVkVDX0FCSQot ICAgICAgICYmIGluZm8tPmFsdGl2ZWNfc2l6ZSAhPSAwCi0gICAgICAgJiYgKERFRkFVTFRfQUJJ ID09IEFCSV9WNAotLQkgIHx8IGluZm8tPmFsdGl2ZWNfc2F2ZV9vZmZzZXQgPj0gKFRBUkdFVF8z MkJJVCA/IC0yMjAgOiAtMjg4KSkpCi0rCSAgfHwgIW9mZnNldF9iZWxvd19yZWRfem9uZV9wIChp bmZvLT5hbHRpdmVjX3NhdmVfb2Zmc2V0KSkpCi0gICAgIHsKLSAgICAgICBpbnQgaTsKLSAKLSAg ICAgICBmb3IgKGkgPSBpbmZvLT5maXJzdF9hbHRpdmVjX3JlZ19zYXZlOyBpIDw9IExBU1RfQUxU SVZFQ19SRUdOTzsgKytpKQotIAlpZiAoaW5mby0+dnJzYXZlX21hc2sgJiBBTFRJVkVDX1JFR19C SVQgKGkpKQotIAkgIHsKLS0JICAgIHJ0eCBhZGRyLCBhcmVnLCBtZW07Ci0rCSAgICBydHggYWRk ciwgYXJlZywgbWVtLCByZWc7Ci0gCi0gCSAgICBhcmVnID0gZ2VuX3J0eF9SRUcgKFBtb2RlLCAw KTsKLSAJICAgIGVtaXRfbW92ZV9pbnNuCi1AQCAtMTcxNzIsNyArMTcxOTIsMTEgQEAgcnM2MDAw X2VtaXRfZXBpbG9ndWUgKGludCBzaWJjYWxsKQotIAkgICAgYWRkciA9IGdlbl9ydHhfUExVUyAo UG1vZGUsIGZyYW1lX3JlZ19ydHgsIGFyZWcpOwotIAkgICAgbWVtID0gZ2VuX2ZyYW1lX21lbSAo VjRTSW1vZGUsIGFkZHIpOwotIAotLQkgICAgZW1pdF9tb3ZlX2luc24gKGdlbl9ydHhfUkVHIChW NFNJbW9kZSwgaSksIG1lbSk7Ci0rCSAgICByZWcgPSBnZW5fcnR4X1JFRyAoVjRTSW1vZGUsIGkp OwotKwkgICAgZW1pdF9tb3ZlX2luc24gKHJlZywgbWVtKTsKLSsJICAgIGlmIChERUZBVUxUX0FC SSA9PSBBQklfVjQpCi0rCSAgICAgIGNmYV9yZXN0b3JlcyA9IGFsbG9jX0VYUFJfTElTVCAoUkVH X0NGQV9SRVNUT1JFLCByZWcsCi0rCQkJCQkgICAgICBjZmFfcmVzdG9yZXMpOwotIAkgIH0KLSAg ICAgfQotIAotQEAgLTE3MTgyLDcgKzE3MjA2LDcgQEAgcnM2MDAwX2VtaXRfZXBpbG9ndWUgKGlu dCBzaWJjYWxsKQotICAgICAgICYmIFRBUkdFVF9BTFRJVkVDX1ZSU0FWRQotICAgICAgICYmIGlu Zm8tPnZyc2F2ZV9tYXNrICE9IDAKLSAgICAgICAmJiAoREVGQVVMVF9BQkkgPT0gQUJJX1Y0Ci0t CSAgfHwgaW5mby0+dnJzYXZlX3NhdmVfb2Zmc2V0ID49IChUQVJHRVRfMzJCSVQgPyAtMjIwIDog LTI4OCkpKQotKwkgIHx8ICFvZmZzZXRfYmVsb3dfcmVkX3pvbmVfcCAoaW5mby0+dnJzYXZlX3Nh dmVfb2Zmc2V0KSkpCi0gICAgIHsKLSAgICAgICBydHggYWRkciwgbWVtLCByZWc7Ci0gCi1AQCAt MTcyMTUsNyArMTcyMzksOCBAQCByczYwMDBfZW1pdF9lcGlsb2d1ZSAoaW50IHNpYmNhbGwpCi0g ICAgICAgZW1pdF9tb3ZlX2luc24gKGdlbl9ydHhfUkVHIChTSW1vZGUsIDEyKSwgbWVtKTsKLSAg ICAgfQotIAotLSAgLyogU2V0IExSIGhlcmUgdG8gdHJ5IHRvIG92ZXJsYXAgcmVzdG9yZXMgYmVs b3cuICAqLwotKyAgLyogU2V0IExSIGhlcmUgdG8gdHJ5IHRvIG92ZXJsYXAgcmVzdG9yZXMgYmVs b3cuICBMUiBpcyBhbHdheXMgc2F2ZWQKLSsgICAgIGFib3ZlIGluY29taW5nIHN0YWNrLCBzbyBp dCBuZXZlciBuZWVkcyBSRUdfQ0ZBX1JFU1RPUkUuICAqLwotICAgaWYgKHJlc3RvcmVfbHIpCi0g ICAgIGVtaXRfbW92ZV9pbnNuIChnZW5fcnR4X1JFRyAoUG1vZGUsIExSX1JFR05PKSwKLSAJCSAg ICBnZW5fcnR4X1JFRyAoUG1vZGUsIDApKTsKLUBAIC0xNzI5Nyw3ICsxNzMyMiw3IEBAIHJzNjAw MF9lbWl0X2VwaWxvZ3VlIChpbnQgc2liY2FsbCkKLSAJICBmb3IgKGkgPSAwOyBpIDwgMzIgLSBp bmZvLT5maXJzdF9ncF9yZWdfc2F2ZTsgaSsrKQotIAkgICAgaWYgKHJzNjAwMF9yZWdfbGl2ZV9v cl9waWNfb2Zmc2V0X3AgKGluZm8tPmZpcnN0X2dwX3JlZ19zYXZlICsgaSkpCi0gCSAgICAgIHsK LS0JCXJ0eCBvZmZzZXQsIGFkZHIsIG1lbTsKLSsJCXJ0eCBvZmZzZXQsIGFkZHIsIG1lbSwgcmVn OwotIAotIAkJLyogV2UncmUgZG9pbmcgYWxsIHRoaXMgdG8gZW5zdXJlIHRoYXQgdGhlIGltbWVk aWF0ZSBvZmZzZXQKLSAJCSAgIGZpdHMgaW50byB0aGUgaW1tZWRpYXRlIGZpZWxkIG9mICdldmxk ZCcuICAqLwotQEAgLTE3MzA2LDkgKzE3MzMxLDI0IEBAIHJzNjAwMF9lbWl0X2VwaWxvZ3VlIChp bnQgc2liY2FsbCkKLSAJCW9mZnNldCA9IEdFTl9JTlQgKHNwZV9vZmZzZXQgKyByZWdfc2l6ZSAq IGkpOwotIAkJYWRkciA9IGdlbl9ydHhfUExVUyAoUG1vZGUsIGZyYW1lX3JlZ19ydHgsIG9mZnNl dCk7Ci0gCQltZW0gPSBnZW5fcnR4X01FTSAoVjJTSW1vZGUsIGFkZHIpOwotKwkJcmVnID0gZ2Vu X3J0eF9SRUcgKHJlZ19tb2RlLCBpbmZvLT5maXJzdF9ncF9yZWdfc2F2ZSArIGkpOwotKwotKwkJ aW5zbiA9IGVtaXRfbW92ZV9pbnNuIChyZWcsIG1lbSk7Ci0rCQlpZiAoREVGQVVMVF9BQkkgPT0g QUJJX1Y0KQotKwkJICB7Ci0rCQkgICAgaWYgKGZyYW1lX3BvaW50ZXJfbmVlZGVkCi0rCQkJJiYg aW5mby0+Zmlyc3RfZ3BfcmVnX3NhdmUgKyBpCi0rCQkJICAgPT0gSEFSRF9GUkFNRV9QT0lOVEVS X1JFR05VTSkKLSsJCSAgICAgIHsKLSsJCQlhZGRfcmVnX25vdGUgKGluc24sIFJFR19DRkFfREVG X0NGQSwKLSsJCQkJICAgICAgcGx1c19jb25zdGFudCAoZnJhbWVfcmVnX3J0eCwKLSsJCQkJCQkg ICAgIHNwX29mZnNldCkpOwotKwkJCVJUWF9GUkFNRV9SRUxBVEVEX1AgKGluc24pID0gMTsKLSsJ CSAgICAgIH0KLSAKLS0JCWVtaXRfbW92ZV9pbnNuIChnZW5fcnR4X1JFRyAocmVnX21vZGUsIGlu Zm8tPmZpcnN0X2dwX3JlZ19zYXZlICsgaSksCi0tCQkJCW1lbSk7Ci0rCQkgICAgY2ZhX3Jlc3Rv cmVzID0gYWxsb2NfRVhQUl9MSVNUIChSRUdfQ0ZBX1JFU1RPUkUsIHJlZywKLSsJCQkJCQkgICAg Y2ZhX3Jlc3RvcmVzKTsKLSsJCSAgfQotIAkgICAgICB9Ci0gCX0KLSAgICAgICBlbHNlCi1AQCAt MTczMjAsNyArMTczNjAsNiBAQCByczYwMDBfZW1pdF9lcGlsb2d1ZSAoaW50IHNpYmNhbGwpCi0g CQkJCQkvKnNhdmVwPSovZmFsc2UsIC8qZ3ByPSovdHJ1ZSwKLSAJCQkJCS8qZXhpdHA9Ki90cnVl KTsKLSAJICBlbWl0X2p1bXBfaW5zbiAocGFyKTsKLS0KLSAJICAvKiBXZSBkb24ndCB3YW50IGFu eWJvZHkgZWxzZSBlbWl0dGluZyB0aGluZ3MgYWZ0ZXIgd2UganVtcGVkCi0gCSAgICAgYmFjay4g ICovCi0gCSAgcmV0dXJuOwotQEAgLTE3MzQ5LDggKzE3Mzg4LDE1IEBAIHJzNjAwMF9lbWl0X2Vw aWxvZ3VlIChpbnQgc2liY2FsbCkKLSAgICAgICBpZiAoY2FuX3VzZV9leGl0KQotIAl7Ci0gCSAg aWYgKGluZm8tPmNyX3NhdmVfcCkKLS0JICAgIHJzNjAwMF9yZXN0b3JlX3NhdmVkX2NyIChnZW5f cnR4X1JFRyAoU0ltb2RlLCAxMiksCi0tCQkJCSAgICAgdXNpbmdfbXRjcl9tdWx0aXBsZSk7Ci0r CSAgICB7Ci0rCSAgICAgIHJzNjAwMF9yZXN0b3JlX3NhdmVkX2NyIChnZW5fcnR4X1JFRyAoU0lt b2RlLCAxMiksCi0rCQkJCSAgICAgICB1c2luZ19tdGNyX211bHRpcGxlKTsKLSsJICAgICAgaWYg KERFRkFVTFRfQUJJID09IEFCSV9WNCkKLSsJCWNmYV9yZXN0b3JlcwotKwkJICA9IGFsbG9jX0VY UFJfTElTVCAoUkVHX0NGQV9SRVNUT1JFLAotKwkJCQkgICAgIGdlbl9ydHhfUkVHIChTSW1vZGUs IENSMl9SRUdOTyksCi0rCQkJCSAgICAgY2ZhX3Jlc3RvcmVzKTsKLSsJICAgIH0KLSAKLSAJICBl bWl0X2p1bXBfaW5zbiAocGFyKTsKLSAKLUBAIC0xNzM1OCw4ICsxNzQwNCwyMiBAQCByczYwMDBf ZW1pdF9lcGlsb2d1ZSAoaW50IHNpYmNhbGwpCi0gCSAgICAgYmFjay4gICovCi0gCSAgcmV0dXJu OwotIAl9Ci0tICAgICAgZWxzZQotLQllbWl0X2luc24gKHBhcik7Ci0rCi0rICAgICAgaW5zbiA9 IGVtaXRfaW5zbiAocGFyKTsKLSsgICAgICBpZiAoREVGQVVMVF9BQkkgPT0gQUJJX1Y0KQotKwl7 Ci0rCSAgaWYgKGZyYW1lX3BvaW50ZXJfbmVlZGVkKQotKwkgICAgewotKwkgICAgICBhZGRfcmVn X25vdGUgKGluc24sIFJFR19DRkFfREVGX0NGQSwKLSsJCQkgICAgcGx1c19jb25zdGFudCAoZnJh bWVfcmVnX3J0eCwgc3Bfb2Zmc2V0KSk7Ci0rCSAgICAgIFJUWF9GUkFNRV9SRUxBVEVEX1AgKGlu c24pID0gMTsKLSsJICAgIH0KLSsKLSsJICBmb3IgKGkgPSBpbmZvLT5maXJzdF9ncF9yZWdfc2F2 ZTsgaSA8IDMyOyBpKyspCi0rCSAgICBjZmFfcmVzdG9yZXMKLSsJICAgICAgPSBhbGxvY19FWFBS X0xJU1QgKFJFR19DRkFfUkVTVE9SRSwKLSsJCQkJIGdlbl9ydHhfUkVHIChyZWdfbW9kZSwgaSks IGNmYV9yZXN0b3Jlcyk7Ci0rCX0KLSAgICAgfQotICAgZWxzZSBpZiAodXNpbmdfbG9hZF9tdWx0 aXBsZSkKLSAgICAgewotQEAgLTE3MzcyLDEzICsxNzQzMiwyMCBAQCByczYwMDBfZW1pdF9lcGls b2d1ZSAoaW50IHNpYmNhbGwpCi0gCQkJCQkgICAgKyBzcF9vZmZzZXQKLSAJCQkJCSAgICArIHJl Z19zaXplICogaSkpOwotIAkgIHJ0eCBtZW0gPSBnZW5fZnJhbWVfbWVtIChyZWdfbW9kZSwgYWRk cik7Ci0rCSAgcnR4IHJlZyA9IGdlbl9ydHhfUkVHIChyZWdfbW9kZSwgaW5mby0+Zmlyc3RfZ3Bf cmVnX3NhdmUgKyBpKTsKLSAKLS0JICBSVFZFQ19FTFQgKHAsIGkpID0KLS0JICAgIGdlbl9ydHhf U0VUIChWT0lEbW9kZSwKLS0JCQkgZ2VuX3J0eF9SRUcgKHJlZ19tb2RlLCBpbmZvLT5maXJzdF9n cF9yZWdfc2F2ZSArIGkpLAotLQkJCSBtZW0pOwotKwkgIFJUVkVDX0VMVCAocCwgaSkgPSBnZW5f cnR4X1NFVCAoVk9JRG1vZGUsIHJlZywgbWVtKTsKLSsJICBpZiAoREVGQVVMVF9BQkkgPT0gQUJJ X1Y0KQotKwkgICAgY2ZhX3Jlc3RvcmVzID0gYWxsb2NfRVhQUl9MSVNUIChSRUdfQ0ZBX1JFU1RP UkUsIHJlZywKLSsJCQkJCSAgICBjZmFfcmVzdG9yZXMpOwotKwl9Ci0rICAgICAgaW5zbiA9IGVt aXRfaW5zbiAoZ2VuX3J0eF9QQVJBTExFTCAoVk9JRG1vZGUsIHApKTsKLSsgICAgICBpZiAoREVG QVVMVF9BQkkgPT0gQUJJX1Y0ICYmIGZyYW1lX3BvaW50ZXJfbmVlZGVkKQotKwl7Ci0rCSAgYWRk X3JlZ19ub3RlIChpbnNuLCBSRUdfQ0ZBX0RFRl9DRkEsCi0rCQkJcGx1c19jb25zdGFudCAoZnJh bWVfcmVnX3J0eCwgc3Bfb2Zmc2V0KSk7Ci0rCSAgUlRYX0ZSQU1FX1JFTEFURURfUCAoaW5zbikg PSAxOwotIAl9Ci0tICAgICAgZW1pdF9pbnNuIChnZW5fcnR4X1BBUkFMTEVMIChWT0lEbW9kZSwg cCkpOwotICAgICB9Ci0gICBlbHNlCi0gICAgIHsKLUBAIC0xNzM5MCw5ICsxNzQ1NywyMyBAQCBy czYwMDBfZW1pdF9lcGlsb2d1ZSAoaW50IHNpYmNhbGwpCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsgc3Bfb2Zmc2V0Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgcmVnX3NpemUgKiBpKSk7Ci0gICAgICAgICAg ICAgcnR4IG1lbSA9IGdlbl9mcmFtZV9tZW0gKHJlZ19tb2RlLCBhZGRyKTsKLSsJICAgIHJ0eCBy ZWcgPSBnZW5fcnR4X1JFRyAocmVnX21vZGUsIGluZm8tPmZpcnN0X2dwX3JlZ19zYXZlICsgaSk7 Ci0rCi0rCSAgICBpbnNuID0gZW1pdF9tb3ZlX2luc24gKHJlZywgbWVtKTsKLSsJICAgIGlmIChE RUZBVUxUX0FCSSA9PSBBQklfVjQpCi0rCSAgICAgIHsKLSsJICAgICAgICBpZiAoZnJhbWVfcG9p bnRlcl9uZWVkZWQKLSsJCSAgICAmJiBpbmZvLT5maXJzdF9ncF9yZWdfc2F2ZSArIGkKLSsJCSAg ICAgICA9PSBIQVJEX0ZSQU1FX1BPSU5URVJfUkVHTlVNKQotKwkJICB7Ci0rCQkgICAgYWRkX3Jl Z19ub3RlIChpbnNuLCBSRUdfQ0ZBX0RFRl9DRkEsCi0rCQkJCSAgcGx1c19jb25zdGFudCAoZnJh bWVfcmVnX3J0eCwgc3Bfb2Zmc2V0KSk7Ci0rCQkgICAgUlRYX0ZSQU1FX1JFTEFURURfUCAoaW5z bikgPSAxOwotKwkJICB9Ci0gCi0tICAgICAgICAgICAgZW1pdF9tb3ZlX2luc24gKGdlbl9ydHhf UkVHIChyZWdfbW9kZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGluZm8tPmZpcnN0X2dwX3JlZ19zYXZlICsgaSksIG1lbSk7Ci0rCQljZmFfcmVzdG9yZXMgPSBh bGxvY19FWFBSX0xJU1QgKFJFR19DRkFfUkVTVE9SRSwgcmVnLAotKwkJCQkJCWNmYV9yZXN0b3Jl cyk7Ci0rCSAgICAgIH0KLSAgICAgICAgICAgfQotICAgICB9Ci0gCi1AQCAtMTc0MDIsMzYgKzE3 NDgzLDUyIEBAIHJzNjAwMF9lbWl0X2VwaWxvZ3VlIChpbnQgc2liY2FsbCkKLSAgICAgICBpZiAo KGRmX3JlZ3NfZXZlcl9saXZlX3AgKGluZm8tPmZpcnN0X2ZwX3JlZ19zYXZlK2kpCi0gCSAgICYm ICEgY2FsbF91c2VkX3JlZ3NbaW5mby0+Zmlyc3RfZnBfcmVnX3NhdmUraV0pKQotIAl7Ci0tCSAg cnR4IGFkZHIsIG1lbTsKLSsJICBydHggYWRkciwgbWVtLCByZWc7Ci0gCSAgYWRkciA9IGdlbl9y dHhfUExVUyAoUG1vZGUsIGZyYW1lX3JlZ19ydHgsCi0gCQkJICAgICAgIEdFTl9JTlQgKGluZm8t PmZwX3NhdmVfb2Zmc2V0Ci0gCQkJCQkrIHNwX29mZnNldAotIAkJCQkJKyA4ICogaSkpOwotIAkg IG1lbSA9IGdlbl9mcmFtZV9tZW0gKCgoVEFSR0VUX0hBUkRfRkxPQVQgJiYgVEFSR0VUX0RPVUJM RV9GTE9BVCkKLSAJCQkJID8gREZtb2RlIDogU0Ztb2RlKSwgYWRkcik7Ci0rCSAgcmVnID0gZ2Vu X3J0eF9SRUcgKCgoVEFSR0VUX0hBUkRfRkxPQVQgJiYgVEFSR0VUX0RPVUJMRV9GTE9BVCkKLSsJ CQkgICAgICAgPyBERm1vZGUgOiBTRm1vZGUpLAotKwkJCSAgICAgaW5mby0+Zmlyc3RfZnBfcmVn X3NhdmUgKyBpKTsKLSAKLS0gCSAgZW1pdF9tb3ZlX2luc24gKGdlbl9ydHhfUkVHICgoKFRBUkdF VF9IQVJEX0ZMT0FUIAotLQkJCQkJICYmIFRBUkdFVF9ET1VCTEVfRkxPQVQpCi0tCQkJCSAgICAg ICAgPyBERm1vZGUgOiBTRm1vZGUpLAotLQkJCQkgICAgICAgaW5mby0+Zmlyc3RfZnBfcmVnX3Nh dmUgKyBpKSwKLS0JCQkgIG1lbSk7Ci0rIAkgIGVtaXRfbW92ZV9pbnNuIChyZWcsIG1lbSk7Ci0r CSAgaWYgKERFRkFVTFRfQUJJID09IEFCSV9WNCkKLSsJICAgIGNmYV9yZXN0b3JlcyA9IGFsbG9j X0VYUFJfTElTVCAoUkVHX0NGQV9SRVNUT1JFLCByZWcsCi0rCQkJCQkgICAgY2ZhX3Jlc3RvcmVz KTsKLSAJfQotIAotICAgLyogSWYgd2Ugc2F2ZWQgY3IsIHJlc3RvcmUgaXQgaGVyZS4gIEp1c3Qg dGhvc2UgdGhhdCB3ZXJlIHVzZWQuICAqLwotICAgaWYgKGluZm8tPmNyX3NhdmVfcCkKLS0gICAg cnM2MDAwX3Jlc3RvcmVfc2F2ZWRfY3IgKGdlbl9ydHhfUkVHIChTSW1vZGUsIDEyKSwgdXNpbmdf bXRjcl9tdWx0aXBsZSk7Ci0rICAgIHsKLSsgICAgICByczYwMDBfcmVzdG9yZV9zYXZlZF9jciAo Z2VuX3J0eF9SRUcgKFNJbW9kZSwgMTIpLCB1c2luZ19tdGNyX211bHRpcGxlKTsKLSsgICAgICBp ZiAoREVGQVVMVF9BQkkgPT0gQUJJX1Y0KQotKwljZmFfcmVzdG9yZXMKLSsJICA9IGFsbG9jX0VY UFJfTElTVCAoUkVHX0NGQV9SRVNUT1JFLCBnZW5fcnR4X1JFRyAoU0ltb2RlLCBDUjJfUkVHTk8p LAotKwkJCSAgICAgY2ZhX3Jlc3RvcmVzKTsKLSsgICAgfQotIAotICAgLyogSWYgdGhpcyBpcyBW LjQsIHVud2luZCB0aGUgc3RhY2sgcG9pbnRlciBhZnRlciBhbGwgb2YgdGhlIGxvYWRzCi0gICAg ICBoYXZlIGJlZW4gZG9uZS4gICovCi0tICByczYwMDBfZW1pdF9zdGFja19yZXNldCAoaW5mbywg c3BfcmVnX3J0eCwgZnJhbWVfcmVnX3J0eCwKLS0JCQkgICBzcF9vZmZzZXQsICFyZXN0b3Jpbmdf RlBSc19pbmxpbmUpOwotKyAgaW5zbiA9IHJzNjAwMF9lbWl0X3N0YWNrX3Jlc2V0IChpbmZvLCBz cF9yZWdfcnR4LCBmcmFtZV9yZWdfcnR4LAotKwkJCQkgIHNwX29mZnNldCwgIXJlc3RvcmluZ19G UFJzX2lubGluZSk7Ci0rICBpZiAoaW5zbikKLSsgICAgewotKyAgICAgIGlmIChjZmFfcmVzdG9y ZXMpCi0rCXsKLSsJICBSRUdfTk9URVMgKGluc24pID0gY2ZhX3Jlc3RvcmVzOwotKwkgIGNmYV9y ZXN0b3JlcyA9IE5VTExfUlRYOwotKwl9Ci0rICAgICAgYWRkX3JlZ19ub3RlIChpbnNuLCBSRUdf Q0ZBX0RFRl9DRkEsIHNwX3JlZ19ydHgpOwotKyAgICAgIFJUWF9GUkFNRV9SRUxBVEVEX1AgKGlu c24pID0gMTsKLSsgICAgfQotIAotICAgaWYgKGNydGwtPmNhbGxzX2VoX3JldHVybikKLSAgICAg ewotICAgICAgIHJ0eCBzYSA9IEVIX1JFVFVSTl9TVEFDS0FESl9SVFg7Ci0tICAgICAgZW1pdF9p bnNuIChUQVJHRVRfMzJCSVQKLS0JCSA/IGdlbl9hZGRzaTMgKHNwX3JlZ19ydHgsIHNwX3JlZ19y dHgsIHNhKQotLQkJIDogZ2VuX2FkZGRpMyAoc3BfcmVnX3J0eCwgc3BfcmVnX3J0eCwgc2EpKTsK LSsgICAgICBlbWl0X2luc24gKGdlbl9hZGQzX2luc24gKHNwX3JlZ19ydHgsIHNwX3JlZ19ydHgs IHNhKSk7Ci0gICAgIH0KLSAKLSAgIGlmICghc2liY2FsbCkKLS0tLSBnY2MvY29uZmlnL3JzNjAw MC9jcnRyZXN4ZnByLmFzbS5qagkyMDA5LTA0LTE0IDE1OjUyOjI1LjAwMDAwMDAwMCArMDIwMAot KysrIGdjYy9jb25maWcvcnM2MDAwL2NydHJlc3hmcHIuYXNtCTIwMDktMDYtMDkgMDk6MTA6MjQu MDAwMDAwMDAwICswMjAwCi1AQCAtNDAsMjcgKzQwLDY4IEBACi0gLyogSW4gYWRkaXRpb24gdG8g cmVzdG9yaW5nIHRoZSBmcCByZWdpc3RlcnMsIGl0IHdpbGwgcmV0dXJuIHRvIHRoZSBjYWxsZXIn cyAqLwotIC8qIGNhbGxlciAqLwotIAotK0NGSV9TVEFSVFBST0MKLStDRklfREVGX0NGQV9SRUdJ U1RFUiAoMTEpCi0rQ0ZJX09GRlNFVCAoNjUsIDQpCi0rQ0ZJX09GRlNFVCAoNDYsIC0xNDQpCi0r Q0ZJX09GRlNFVCAoNDcsIC0xMzYpCi0rQ0ZJX09GRlNFVCAoNDgsIC0xMjgpCi0rQ0ZJX09GRlNF VCAoNDksIC0xMjApCi0rQ0ZJX09GRlNFVCAoNTAsIC0xMTIpCi0rQ0ZJX09GRlNFVCAoNTEsIC0x MDQpCi0rQ0ZJX09GRlNFVCAoNTIsIC05NikKLStDRklfT0ZGU0VUICg1MywgLTg4KQotK0NGSV9P RkZTRVQgKDU0LCAtODApCi0rQ0ZJX09GRlNFVCAoNTUsIC03MikKLStDRklfT0ZGU0VUICg1Niwg LTY0KQotK0NGSV9PRkZTRVQgKDU3LCAtNTYpCi0rQ0ZJX09GRlNFVCAoNTgsIC00OCkKLStDRklf T0ZGU0VUICg1OSwgLTQwKQotK0NGSV9PRkZTRVQgKDYwLCAtMzIpCi0rQ0ZJX09GRlNFVCAoNjEs IC0yNCkKLStDRklfT0ZGU0VUICg2MiwgLTE2KQotK0NGSV9PRkZTRVQgKDYzLCAtOCkKLSBISURE RU5fRlVOQyhfcmVzdGZwcl8xNF94KQlsZmQJMTQsLTE0NCgxMSkJLyogcmVzdG9yZSBmcCByZWdp c3RlcnMgKi8KLStDRklfUkVTVE9SRSAoNDYpCi0gSElEREVOX0ZVTkMoX3Jlc3RmcHJfMTVfeCkJ bGZkCTE1LC0xMzYoMTEpCi0rQ0ZJX1JFU1RPUkUgKDQ3KQotIEhJRERFTl9GVU5DKF9yZXN0ZnBy XzE2X3gpCWxmZAkxNiwtMTI4KDExKQotK0NGSV9SRVNUT1JFICg0OCkKLSBISURERU5fRlVOQyhf cmVzdGZwcl8xN194KQlsZmQJMTcsLTEyMCgxMSkKLStDRklfUkVTVE9SRSAoNDkpCi0gSElEREVO X0ZVTkMoX3Jlc3RmcHJfMThfeCkJbGZkCTE4LC0xMTIoMTEpCi0rQ0ZJX1JFU1RPUkUgKDUwKQot IEhJRERFTl9GVU5DKF9yZXN0ZnByXzE5X3gpCWxmZAkxOSwtMTA0KDExKQotK0NGSV9SRVNUT1JF ICg1MSkKLSBISURERU5fRlVOQyhfcmVzdGZwcl8yMF94KQlsZmQJMjAsLTk2KDExKQotK0NGSV9S RVNUT1JFICg1MikKLSBISURERU5fRlVOQyhfcmVzdGZwcl8yMV94KQlsZmQJMjEsLTg4KDExKQot K0NGSV9SRVNUT1JFICg1MykKLSBISURERU5fRlVOQyhfcmVzdGZwcl8yMl94KQlsZmQJMjIsLTgw KDExKQotK0NGSV9SRVNUT1JFICg1NCkKLSBISURERU5fRlVOQyhfcmVzdGZwcl8yM194KQlsZmQJ MjMsLTcyKDExKQotK0NGSV9SRVNUT1JFICg1NSkKLSBISURERU5fRlVOQyhfcmVzdGZwcl8yNF94 KQlsZmQJMjQsLTY0KDExKQotK0NGSV9SRVNUT1JFICg1NikKLSBISURERU5fRlVOQyhfcmVzdGZw cl8yNV94KQlsZmQJMjUsLTU2KDExKQotK0NGSV9SRVNUT1JFICg1NykKLSBISURERU5fRlVOQyhf cmVzdGZwcl8yNl94KQlsZmQJMjYsLTQ4KDExKQotK0NGSV9SRVNUT1JFICg1OCkKLSBISURERU5f RlVOQyhfcmVzdGZwcl8yN194KQlsZmQJMjcsLTQwKDExKQotK0NGSV9SRVNUT1JFICg1OSkKLSBI SURERU5fRlVOQyhfcmVzdGZwcl8yOF94KQlsZmQJMjgsLTMyKDExKQotK0NGSV9SRVNUT1JFICg2 MCkKLSBISURERU5fRlVOQyhfcmVzdGZwcl8yOV94KQlsZmQJMjksLTI0KDExKQotK0NGSV9SRVNU T1JFICg2MSkKLSBISURERU5fRlVOQyhfcmVzdGZwcl8zMF94KQlsZmQJMzAsLTE2KDExKQotK0NG SV9SRVNUT1JFICg2MikKLSBISURERU5fRlVOQyhfcmVzdGZwcl8zMV94KQlsd3oJMCw0KDExKQot IAkJCQlsZmQJMzEsLTgoMTEpCi0rQ0ZJX1JFU1RPUkUgKDYzKQotIAkJCQltdGxyCTAKLStDRklf UkVTVE9SRSAoNjUpCi0gCQkJCW1yCTEsMTEKLStDRklfREVGX0NGQV9SRUdJU1RFUiAoMSkKLSAJ CQkJYmxyCi0gRlVOQ19FTkQoX3Jlc3RmcHJfMzFfeCkKLSBGVU5DX0VORChfcmVzdGZwcl8zMF94 KQotQEAgLTgwLDUgKzEyMSw2IEBAIEZVTkNfRU5EKF9yZXN0ZnByXzE3X3gpCi0gRlVOQ19FTkQo X3Jlc3RmcHJfMTZfeCkKLSBGVU5DX0VORChfcmVzdGZwcl8xNV94KQotIEZVTkNfRU5EKF9yZXN0 ZnByXzE0X3gpCi0rQ0ZJX0VORFBST0MKLSAKLSAjZW5kaWYKLS0tLSBnY2MvY29uZmlnL3JzNjAw MC9jcnRyZXNncHIuYXNtLmpqCTIwMDktMDQtMTQgMTU6NTI6MjQuMDAwMDAwMDAwICswMjAwCi0r KysgZ2NjL2NvbmZpZy9yczYwMDAvY3J0cmVzZ3ByLmFzbQkyMDA5LTA2LTA5IDA5OjEwOjI0LjAw MDAwMDAwMCArMDIwMAotQEAgLTM4LDYgKzM4LDcgQEAKLSAvKiBDYWxsZWQgd2l0aCByMTEgcG9p bnRpbmcgdG8gdGhlIHN0YWNrIGhlYWRlciB3b3JkIG9mIHRoZSBjYWxsZXIgb2YgdGhlICovCi0g LyogZnVuY3Rpb24sIGp1c3QgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGludGVnZXIgcmVzdG9yZSBh cmVhLiAgKi8KLSAKLStDRklfU1RBUlRQUk9DCi0gSElEREVOX0ZVTkMoX3Jlc3RncHJfMTQpCWx3 egkxNCwtNzIoMTEpCS8qIHJlc3RvcmUgZ3AgcmVnaXN0ZXJzICovCi0gSElEREVOX0ZVTkMoX3Jl c3RncHJfMTUpCWx3egkxNSwtNjgoMTEpCi0gSElEREVOX0ZVTkMoX3Jlc3RncHJfMTYpCWx3egkx NiwtNjQoMTEpCi1AQCAtNzUsNSArNzYsNiBAQCBGVU5DX0VORChfcmVzdGdwcl8xNykKLSBGVU5D X0VORChfcmVzdGdwcl8xNikKLSBGVU5DX0VORChfcmVzdGdwcl8xNSkKLSBGVU5DX0VORChfcmVz dGdwcl8xNCkKLStDRklfRU5EUFJPQwotIAotICNlbmRpZgotLS0tIGdjYy9jb25maWcvczM5MC9z MzkwLmMuamoJMjAwOS0wMy0wNCAxMjoxMjozMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvY29u ZmlnL3MzOTAvczM5MC5jCTIwMDktMDYtMDkgMDk6MTk6MjAuMDAwMDAwMDAwICswMjAwCi1AQCAt NzQyOCw2ICs3NDI4LDIxIEBAIHJlc3RvcmVfZnByIChydHggYmFzZSwgaW50IG9mZnNldCwgaW50 IHIKLSAgIHJldHVybiBlbWl0X21vdmVfaW5zbiAoZ2VuX3J0eF9SRUcgKERGbW9kZSwgcmVnbnVt KSwgYWRkcik7Ci0gfQotIAotKy8qIFJldHVybiB0cnVlIGlmIFJFR05PIGlzIGEgZ2xvYmFsIHJl Z2lzdGVyLCBidXQgbm90IG9uZQotKyAgIG9mIHRoZSBzcGVjaWFsIG9uZXMgdGhhdCBuZWVkIHRv IGJlIHNhdmVkL3Jlc3RvcmVkIGluIGFueXdheS4gICovCi0rCi0rc3RhdGljIGlubGluZSBib29s Ci0rZ2xvYmFsX25vdF9zcGVjaWFsX3JlZ25vX3AgKGludCByZWdubykKLSt7Ci0rICByZXR1cm4g KGdsb2JhbF9yZWdzW3JlZ25vXQotKwkgIC8qIFRoZXNlIHJlZ2lzdGVycyBhcmUgc3BlY2lhbCBh bmQgbmVlZCB0byBiZQotKwkgICAgIHJlc3RvcmVkIGluIGFueSBjYXNlLiAgKi8KLSsJICAmJiAh KHJlZ25vID09IFNUQUNLX1BPSU5URVJfUkVHTlVNCi0rCSAgICAgICB8fCByZWdubyA9PSBSRVRV Uk5fUkVHTlVNCi0rCSAgICAgICB8fCByZWdubyA9PSBCQVNFX1JFR05VTQotKwkgICAgICAgfHwg KGZsYWdfcGljICYmIHJlZ25vID09IChpbnQpUElDX09GRlNFVF9UQUJMRV9SRUdOVU0pKSk7Ci0r fQotKwotIC8qIEdlbmVyYXRlIGluc24gdG8gc2F2ZSByZWdpc3RlcnMgRklSU1QgdG8gTEFTVCBp bnRvCi0gICAgdGhlIHJlZ2lzdGVyIHNhdmUgYXJlYSBsb2NhdGVkIGF0IG9mZnNldCBPRkZTRVQK LSAgICByZWxhdGl2ZSB0byByZWdpc3RlciBCQVNFLiAgKi8KLUBAIC03NDUxLDcgKzc0NjYsOCBA QCBzYXZlX2dwcnMgKHJ0eCBiYXNlLCBpbnQgb2Zmc2V0LCBpbnQgZmlyCi0gICAgICAgZWxzZQot ICAgICAgICAgaW5zbiA9IGdlbl9tb3ZzaSAoYWRkciwgZ2VuX3J0eF9SRUcgKFBtb2RlLCBmaXJz dCkpOwotIAotLSAgICAgIFJUWF9GUkFNRV9SRUxBVEVEX1AgKGluc24pID0gMTsKLSsgICAgICBp ZiAoIWdsb2JhbF9ub3Rfc3BlY2lhbF9yZWdub19wIChmaXJzdCkpCi0rCVJUWF9GUkFNRV9SRUxB VEVEX1AgKGluc24pID0gMTsKLSAgICAgICByZXR1cm4gaW5zbjsKLSAgICAgfQotIAotQEAgLTc0 ODEsMzAgKzc0OTcsNDEgQEAgc2F2ZV9ncHJzIChydHggYmFzZSwgaW50IG9mZnNldCwgaW50IGZp cgotICAgICAgc2V0LCBldmVuIGlmIGl0IGRvZXMgbm90LiAgVGhlcmVmb3JlIHdlIGVtaXQgYSBu ZXcgcGF0dGVybgotICAgICAgd2l0aG91dCB0aG9zZSByZWdpc3RlcnMgYXMgUkVHX0ZSQU1FX1JF TEFURURfRVhQUiBub3RlLiAgKi8KLSAKLS0gIGlmIChmaXJzdCA+PSA2KQotKyAgaWYgKGZpcnN0 ID49IDYgJiYgIWdsb2JhbF9ub3Rfc3BlY2lhbF9yZWdub19wIChmaXJzdCkpCi0gICAgIHsKLSAg ICAgICBydHggcGF0ID0gUEFUVEVSTiAoaW5zbik7Ci0gCi0gICAgICAgZm9yIChpID0gMDsgaSA8 IFhWRUNMRU4gKHBhdCwgMCk7IGkrKykKLS0JaWYgKEdFVF9DT0RFIChYVkVDRVhQIChwYXQsIDAs IGkpKSA9PSBTRVQpCi0rCWlmIChHRVRfQ09ERSAoWFZFQ0VYUCAocGF0LCAwLCBpKSkgPT0gU0VU Ci0rCSAgICAmJiAhZ2xvYmFsX25vdF9zcGVjaWFsX3JlZ25vX3AgKFJFR05PIChTRVRfU1JDIChY VkVDRVhQIChwYXQsCi0rCQkJCQkJCQkgICAgIDAsIGkpKSkpKQotIAkgIFJUWF9GUkFNRV9SRUxB VEVEX1AgKFhWRUNFWFAgKHBhdCwgMCwgaSkpID0gMTsKLSAKLSAgICAgICBSVFhfRlJBTUVfUkVM QVRFRF9QIChpbnNuKSA9IDE7Ci0gICAgIH0KLSAgIGVsc2UgaWYgKGxhc3QgPj0gNikKLSAgICAg ewotLSAgICAgIGFkZHIgPSBwbHVzX2NvbnN0YW50IChiYXNlLCBvZmZzZXQgKyAoNiAtIGZpcnN0 KSAqIFVOSVRTX1BFUl9XT1JEKTsKLSsgICAgICBpbnQgc3RhcnQ7Ci0rCi0rICAgICAgZm9yIChz dGFydCA9IGZpcnN0ID49IDYgPyBmaXJzdCA6IDY7IHN0YXJ0IDw9IGxhc3Q7IHN0YXJ0KyspCi0r CWlmICghZ2xvYmFsX25vdF9zcGVjaWFsX3JlZ25vX3AgKHN0YXJ0KSkKLSsJICBicmVhazsKLSsK LSsgICAgICBpZiAoc3RhcnQgPiBsYXN0KQotKwlyZXR1cm4gaW5zbjsKLSsKLSsgICAgICBhZGRy ID0gcGx1c19jb25zdGFudCAoYmFzZSwgb2Zmc2V0ICsgKHN0YXJ0IC0gZmlyc3QpICogVU5JVFNf UEVSX1dPUkQpOwotICAgICAgIG5vdGUgPSBnZW5fc3RvcmVfbXVsdGlwbGUgKGdlbl9ydHhfTUVN IChQbW9kZSwgYWRkciksCi0tCQkJCSBnZW5fcnR4X1JFRyAoUG1vZGUsIDYpLAotLQkJCQkgR0VO X0lOVCAobGFzdCAtIDYgKyAxKSk7Ci0rCQkJCSBnZW5fcnR4X1JFRyAoUG1vZGUsIHN0YXJ0KSwK LSsJCQkJIEdFTl9JTlQgKGxhc3QgLSBzdGFydCArIDEpKTsKLSAgICAgICBub3RlID0gUEFUVEVS TiAobm90ZSk7Ci0gCi0tICAgICAgUkVHX05PVEVTIChpbnNuKSA9Ci0tCWdlbl9ydHhfRVhQUl9M SVNUIChSRUdfRlJBTUVfUkVMQVRFRF9FWFBSLAotLQkJCSAgIG5vdGUsIFJFR19OT1RFUyAoaW5z bikpOwotKyAgICAgIGFkZF9yZWdfbm90ZSAoaW5zbiwgUkVHX0ZSQU1FX1JFTEFURURfRVhQUiwg bm90ZSk7Ci0gCi0gICAgICAgZm9yIChpID0gMDsgaSA8IFhWRUNMRU4gKG5vdGUsIDApOyBpKysp Ci0tCWlmIChHRVRfQ09ERSAoWFZFQ0VYUCAobm90ZSwgMCwgaSkpID09IFNFVCkKLSsJaWYgKEdF VF9DT0RFIChYVkVDRVhQIChub3RlLCAwLCBpKSkgPT0gU0VUCi0rCSAgICAmJiAhZ2xvYmFsX25v dF9zcGVjaWFsX3JlZ25vX3AgKFJFR05PIChTRVRfU1JDIChYVkVDRVhQIChub3RlLAotKwkJCQkJ CQkJICAgICAwLCBpKSkpKSkKLSAJICBSVFhfRlJBTUVfUkVMQVRFRF9QIChYVkVDRVhQIChub3Rl LCAwLCBpKSkgPSAxOwotIAotICAgICAgIFJUWF9GUkFNRV9SRUxBVEVEX1AgKGluc24pID0gMTsK LUBAIC03ODk0LDcgKzc5MjEsNyBAQCBzMzkwX2VtaXRfcHJvbG9ndWUgKHZvaWQpCi0gdm9pZAot IHMzOTBfZW1pdF9lcGlsb2d1ZSAoYm9vbCBzaWJjYWxsKQotIHsKLS0gIHJ0eCBmcmFtZV9wb2lu dGVyLCByZXR1cm5fcmVnOwotKyAgcnR4IGZyYW1lX3BvaW50ZXIsIHJldHVybl9yZWcsIGNmYV9y ZXN0b3JlcyA9IE5VTExfUlRYOwotICAgaW50IGFyZWFfYm90dG9tLCBhcmVhX3RvcCwgb2Zmc2V0 ID0gMDsKLSAgIGludCBuZXh0X29mZnNldDsKLSAgIHJ0dmVjIHA7Ci1AQCAtNzkzNiwxMSArNzk2 MywxMyBAQCBzMzkwX2VtaXRfZXBpbG9ndWUgKGJvb2wgc2liY2FsbCkKLSAgICAgfQotICAgZWxz ZQotICAgICB7Ci0tICAgICAgcnR4IGluc24sIGZyYW1lX29mZjsKLSsgICAgICBydHggaW5zbiwg ZnJhbWVfb2ZmLCBjZmE7Ci0gCi0gICAgICAgb2Zmc2V0ID0gYXJlYV9ib3R0b20gPCAwID8gLWFy ZWFfYm90dG9tIDogMDsKLSAgICAgICBmcmFtZV9vZmYgPSBHRU5fSU5UIChjZnVuX2ZyYW1lX2xh eW91dC5mcmFtZV9zaXplIC0gb2Zmc2V0KTsKLSAKLSsgICAgICBjZmEgPSBnZW5fcnR4X1NFVCAo Vk9JRG1vZGUsIGZyYW1lX3BvaW50ZXIsCi0rCQkJIGdlbl9ydHhfUExVUyAoUG1vZGUsIGZyYW1l X3BvaW50ZXIsIGZyYW1lX29mZikpOwotICAgICAgIGlmIChESVNQX0lOX1JBTkdFIChJTlRWQUwg KGZyYW1lX29mZikpKQotIAl7Ci0gCSAgaW5zbiA9IGdlbl9ydHhfU0VUIChWT0lEbW9kZSwgZnJh bWVfcG9pbnRlciwKLUBAIC03OTU1LDYgKzc5ODQsOCBAQCBzMzkwX2VtaXRfZXBpbG9ndWUgKGJv b2wgc2liY2FsbCkKLSAJICBpbnNuID0gZW1pdF9pbnNuIChnZW5fYWRkMl9pbnNuIChmcmFtZV9w b2ludGVyLCBmcmFtZV9vZmYpKTsKLSAJICBhbm5vdGF0ZV9jb25zdGFudF9wb29sX3JlZnMgKCZQ QVRURVJOIChpbnNuKSk7Ci0gCX0KLSsgICAgICBhZGRfcmVnX25vdGUgKGluc24sIFJFR19DRkFf QURKVVNUX0NGQSwgY2ZhKTsKLSsgICAgICBSVFhfRlJBTUVfUkVMQVRFRF9QIChpbnNuKSA9IDE7 Ci0gICAgIH0KLSAKLSAgIC8qIFJlc3RvcmUgY2FsbCBzYXZlZCBmcHJzLiAgKi8KLUBAIC03OTcw LDYgKzgwMDEsOSBAQCBzMzkwX2VtaXRfZXBpbG9ndWUgKGJvb2wgc2liY2FsbCkKLSAJCXsKLSAJ CSAgcmVzdG9yZV9mcHIgKGZyYW1lX3BvaW50ZXIsCi0gCQkJICAgICAgIG9mZnNldCArIG5leHRf b2Zmc2V0LCBpKTsKLSsJCSAgY2ZhX3Jlc3RvcmVzCi0rCQkgICAgPSBhbGxvY19FWFBSX0xJU1Qg KFJFR19DRkFfUkVTVE9SRSwKLSsJCQkJICAgICAgIGdlbl9ydHhfUkVHIChERm1vZGUsIGkpLCBj ZmFfcmVzdG9yZXMpOwotIAkJICBuZXh0X29mZnNldCArPSA4OwotIAkJfQotIAkgICAgfQotQEAg LTc5ODUsNiArODAxOSw5IEBAIHMzOTBfZW1pdF9lcGlsb2d1ZSAoYm9vbCBzaWJjYWxsKQotIAkg ICAgewotIAkgICAgICByZXN0b3JlX2ZwciAoZnJhbWVfcG9pbnRlciwKLSAJCQkgICBvZmZzZXQg KyBuZXh0X29mZnNldCwgaSk7Ci0rCSAgICAgIGNmYV9yZXN0b3JlcwotKwkJPSBhbGxvY19FWFBS X0xJU1QgKFJFR19DRkFfUkVTVE9SRSwKLSsJCQkJICAgZ2VuX3J0eF9SRUcgKERGbW9kZSwgaSks IGNmYV9yZXN0b3Jlcyk7Ci0gCSAgICAgIG5leHRfb2Zmc2V0ICs9IDg7Ci0gCSAgICB9Ci0gCSAg ZWxzZSBpZiAoIVRBUkdFVF9QQUNLRURfU1RBQ0spCi1AQCAtODAxMSwxNSArODA0OCw3IEBAIHMz OTBfZW1pdF9lcGlsb2d1ZSAoYm9vbCBzaWJjYWxsKQotIAkgICBpIDw9IGNmdW5fZnJhbWVfbGF5 b3V0Lmxhc3RfcmVzdG9yZV9ncHI7Ci0gCSAgIGkrKykKLSAJewotLQkgIC8qIFRoZXNlIHJlZ2lz dGVycyBhcmUgc3BlY2lhbCBhbmQgbmVlZCB0byBiZQotLQkgICAgIHJlc3RvcmVkIGluIGFueSBj YXNlLiAgKi8KLS0JICBpZiAoaSA9PSBTVEFDS19QT0lOVEVSX1JFR05VTQotLSAgICAgICAgICAg ICAgfHwgaSA9PSBSRVRVUk5fUkVHTlVNCi0tICAgICAgICAgICAgICB8fCBpID09IEJBU0VfUkVH TlVNCi0tICAgICAgICAgICAgICB8fCAoZmxhZ19waWMgJiYgaSA9PSAoaW50KVBJQ19PRkZTRVRf VEFCTEVfUkVHTlVNKSkKLS0JICAgIGNvbnRpbnVlOwotLQotLQkgIGlmIChnbG9iYWxfcmVnc1tp XSkKLSsJICBpZiAoZ2xvYmFsX25vdF9zcGVjaWFsX3JlZ25vX3AgKGkpKQotIAkgICAgewotIAkg ICAgICBhZGRyID0gcGx1c19jb25zdGFudCAoZnJhbWVfcG9pbnRlciwKLSAJCQkJICAgIG9mZnNl dCArIGNmdW5fZnJhbWVfbGF5b3V0LmdwcnNfb2Zmc2V0IAotQEAgLTgwMjksNiArODA1OCwxMCBA QCBzMzkwX2VtaXRfZXBpbG9ndWUgKGJvb2wgc2liY2FsbCkKLSAJICAgICAgc2V0X21lbV9hbGlh c19zZXQgKGFkZHIsIGdldF9mcmFtZV9hbGlhc19zZXQgKCkpOwotIAkgICAgICBlbWl0X21vdmVf aW5zbiAoYWRkciwgZ2VuX3J0eF9SRUcgKFBtb2RlLCBpKSk7Ci0gCSAgICB9Ci0rCSAgZWxzZQot KwkgICAgY2ZhX3Jlc3RvcmVzCi0rCSAgICAgID0gYWxsb2NfRVhQUl9MSVNUIChSRUdfQ0ZBX1JF U1RPUkUsCi0rCQkJCSBnZW5fcnR4X1JFRyAoUG1vZGUsIGkpLCBjZmFfcmVzdG9yZXMpOwotIAl9 Ci0gCi0gICAgICAgaWYgKCEgc2liY2FsbCkKLUBAIC04MDYzLDcgKzgwOTYsMTEgQEAgczM5MF9l bWl0X2VwaWxvZ3VlIChib29sIHNpYmNhbGwpCi0gCQkJICAgKiBVTklUU19QRVJfV09SRCwKLSAJ CQkgICBjZnVuX2ZyYW1lX2xheW91dC5maXJzdF9yZXN0b3JlX2dwciwKLSAJCQkgICBjZnVuX2Zy YW1lX2xheW91dC5sYXN0X3Jlc3RvcmVfZ3ByKTsKLS0gICAgICBlbWl0X2luc24gKGluc24pOwot KyAgICAgIGluc24gPSBlbWl0X2luc24gKGluc24pOwotKyAgICAgIFJFR19OT1RFUyAoaW5zbikg PSBjZmFfcmVzdG9yZXM7Ci0rICAgICAgYWRkX3JlZ19ub3RlIChpbnNuLCBSRUdfQ0ZBX0RFRl9D RkEsCi0rCQkgICAgcGx1c19jb25zdGFudCAoc3RhY2tfcG9pbnRlcl9ydHgsIFNUQUNLX1BPSU5U RVJfT0ZGU0VUKSk7Ci0rICAgICAgUlRYX0ZSQU1FX1JFTEFURURfUCAoaW5zbikgPSAxOwotICAg ICB9Ci0gCi0gICBpZiAoISBzaWJjYWxsKQotLS0tIGdjYy9jb25maWcvYmZpbi9iZmluLm1kLmpq CTIwMDktMDMtMDQgMTI6MTU6MjguMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL2NvbmZpZy9iZmlu L2JmaW4ubWQJMjAwOS0wNi0wOSAwODo1ODowNS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xNDEsOCAr MTQxLDcgQEAgKGRlZmluZV9jb25zdGFudHMKLSAgICAoVU5TUEVDX09ORVMgMTIpXSkKLSAKLSAo ZGVmaW5lX2NvbnN0YW50cwotLSAgWyhVTlNQRUNfVk9MQVRJTEVfRUhfUkVUVVJOIDApCi0tICAg KFVOU1BFQ19WT0xBVElMRV9DU1lOQyAxKQotKyAgWyhVTlNQRUNfVk9MQVRJTEVfQ1NZTkMgMSkK LSAgICAoVU5TUEVDX1ZPTEFUSUxFX1NTWU5DIDIpCi0gICAgKFVOU1BFQ19WT0xBVElMRV9MT0FE X0ZVTkNERVNDIDMpCi0gICAgKFVOU1BFQ19WT0xBVElMRV9TVE9SRV9FSF9IQU5ETEVSIDQpCi1A QCAtMjc0MCw4ICsyNzM5LDcgQEAgKGRlZmluZV9leHBhbmQgInNpYmNhbGxfZXBpbG9ndWUiCi0g ICAiYmZpbl9leHBhbmRfZXBpbG9ndWUgKDAsIDAsIDEpOyBET05FOyIpCi0gCi0gKGRlZmluZV9l eHBhbmQgImVoX3JldHVybiIKLS0gIFsodW5zcGVjX3ZvbGF0aWxlIFsobWF0Y2hfb3BlcmFuZDpT SSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIildCi0tCQkgICAgVU5TUEVDX1ZPTEFUSUxFX0VIX1JF VFVSTildCi0rICBbKHVzZSAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi IikpXQotICAgIiIKLSB7Ci0gICBlbWl0X2luc24gKGdlbl9laF9zdG9yZV9oYW5kbGVyIChFSF9S RVRVUk5fSEFORExFUl9SVFgsIG9wZXJhbmRzWzBdKSk7Ci1AQCAtMjc1OSwxMSArMjc1NywxMCBA QCAoZGVmaW5lX2luc24gImVoX3N0b3JlX2hhbmRsZXIiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAi bWNzdCIpXSkKLSAKLSAoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJlaF9yZXR1cm5faW50ZXJuYWwi Ci0tICBbKHNldCAocGMpCi0tCSh1bnNwZWNfdm9sYXRpbGUgWyhyZWc6U0kgUkVHX1AyKV0gVU5T UEVDX1ZPTEFUSUxFX0VIX1JFVFVSTikpXQotKyAgWyhlaF9yZXR1cm4pXQotICAgIiIKLSAgICIj IgotLSAgInJlbG9hZF9jb21wbGV0ZWQiCi0rICAiZXBpbG9ndWVfY29tcGxldGVkIgotICAgWyhj b25zdF9pbnQgMSldCi0gICAiYmZpbl9leHBhbmRfZXBpbG9ndWUgKDEsIDEsIDApOyBET05FOyIp Ci0gCi0tLS0gZ2NjL2R3YXJmMm91dC5jLmpqCTIwMDktMDYtMDkgMDg6MTM6NTguMDAwMDAwMDAw ICswMjAwCi0rKysgZ2NjL2R3YXJmMm91dC5jCTIwMDktMDYtMDkgMDk6MjI6NTUuMDAwMDAwMDAw ICswMjAwCi1AQCAtMjUwLDcgKzI1MCw4IEBAIHR5cGVkZWYgc3RydWN0IGNmYV9sb2MgR1RZKCgp KQotICAgSE9TVF9XSURFX0lOVCBvZmZzZXQ7Ci0gICBIT1NUX1dJREVfSU5UIGJhc2Vfb2Zmc2V0 OwotICAgdW5zaWduZWQgaW50IHJlZzsKLS0gIGludCBpbmRpcmVjdDsgICAgICAgICAgICAvKiAx IGlmIENGQSBpcyBhY2Nlc3NlZCB2aWEgYSBkZXJlZmVyZW5jZS4gICovCi0rICBCT09MX0JJVEZJ RUxEIGluZGlyZWN0IDogMTsgIC8qIDEgaWYgQ0ZBIGlzIGFjY2Vzc2VkIHZpYSBhIGRlcmVmZXJl bmNlLiAgKi8KLSsgIEJPT0xfQklURklFTEQgaW5fdXNlIDogMTsgICAgLyogMSBpZiBhIHNhdmVk IGNmYSBpcyBzdG9yZWQgaGVyZS4gICovCi0gfSBkd19jZmFfbG9jYXRpb247Ci0gCi0gLyogQWxs IGNhbGwgZnJhbWUgZGVzY3JpcHRpb25zIChGREUncykgaW4gdGhlIEdDQyBnZW5lcmF0ZWQgRFdB UkYKLUBAIC00MDksNyArNDEwLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmR3YXJmX2NmaV9uYW1l ICh1bnNpZwotIHN0YXRpYyBkd19jZmlfcmVmIG5ld19jZmkgKHZvaWQpOwotIHN0YXRpYyB2b2lk IGFkZF9jZmkgKGR3X2NmaV9yZWYgKiwgZHdfY2ZpX3JlZik7Ci0gc3RhdGljIHZvaWQgYWRkX2Zk ZV9jZmkgKGNvbnN0IGNoYXIgKiwgZHdfY2ZpX3JlZik7Ci0tc3RhdGljIHZvaWQgbG9va3VwX2Nm YV8xIChkd19jZmlfcmVmLCBkd19jZmFfbG9jYXRpb24gKik7Ci0rc3RhdGljIHZvaWQgbG9va3Vw X2NmYV8xIChkd19jZmlfcmVmLCBkd19jZmFfbG9jYXRpb24gKiwgZHdfY2ZhX2xvY2F0aW9uICop OwotIHN0YXRpYyB2b2lkIGxvb2t1cF9jZmEgKGR3X2NmYV9sb2NhdGlvbiAqKTsKLSBzdGF0aWMg dm9pZCByZWdfc2F2ZSAoY29uc3QgY2hhciAqLCB1bnNpZ25lZCwgdW5zaWduZWQsIEhPU1RfV0lE RV9JTlQpOwotICNpZmRlZiBEV0FSRjJfVU5XSU5EX0lORk8KLUBAIC02NzMsNyArNjc0LDEwIEBA IGFkZF9jZmkgKGR3X2NmaV9yZWYgKmxpc3RfaGVhZCwgZHdfY2ZpX3IKLSAKLSAgIC8qIFdoZW4g RFJBUCBpcyB1c2VkLCBDRkEgaXMgZGVmaW5lZCB3aXRoIGFuIGV4cHJlc3Npb24uICBSZWRlZmlu ZQotICAgICAgQ0ZBIG1heSBsZWFkIHRvIGEgZGlmZmVyZW50IENGQSB2YWx1ZS4gICAqLwotLSAg aWYgKGZkZSAmJiBmZGUtPmRyYXBfcmVnICE9IElOVkFMSURfUkVHTlVNKQotKyAgLyogPz8/IE9m IGNvdXJzZSwgdGhpcyBoZXVyaXN0aWMgZmFpbHMgd2hlbiB3ZSdyZSBhbm5vdGF0aW5nIGVwaWxv Z3VlcywKLSsgICAgIGJlY2F1c2Ugb2YgY291cnNlIHdlJ2xsIGFsd2F5cyB3YW50IHRvIHJlZGVm aW5lIHRoZSBDRkEgYmFjayB0byB0aGUKLSsgICAgIHN0YWNrIHBvaW50ZXIgb24gdGhlIHdheSBv dXQuICBXaGVyZSBzaG91bGQgd2UgbW92ZSB0aGlzIGNoZWNrPyAgKi8KLSsgIGlmICgwICYmIGZk ZSAmJiBmZGUtPmRyYXBfcmVnICE9IElOVkFMSURfUkVHTlVNKQotICAgICBzd2l0Y2ggKGNmaS0+ ZHdfY2ZpX29wYykKLSAgICAgICB7Ci0gICAgICAgICBjYXNlIERXX0NGQV9kZWZfY2ZhX3JlZ2lz dGVyOgotQEAgLTcxOCwxMyArNzIyLDI5IEBAIGR3YXJmMm91dF9jZmlfbGFiZWwgKGJvb2wgZm9y Y2UpCi0gICByZXR1cm4gbGFiZWw7Ci0gfQotIAotKy8qIFRydWUgaWYgcmVtZW1iZXJfc3RhdGUg c2hvdWxkIGJlIGVtaXR0ZWQgYmVmb3JlIGZvbGxvd2luZyBDRkkgZGlyZWN0aXZlLiAgKi8KLStz dGF0aWMgYm9vbCBlbWl0X2NmYV9yZW1lbWJlcjsKLSsKLSAvKiBBZGQgQ0ZJIHRvIHRoZSBjdXJy ZW50IGZkZSBhdCB0aGUgUEMgdmFsdWUgaW5kaWNhdGVkIGJ5IExBQkVMIGlmIHNwZWNpZmllZCwK LSAgICBvciB0byB0aGUgQ0lFIGlmIExBQkVMIGlzIE5VTEwuICAqLwotIAotIHN0YXRpYyB2b2lk Ci0gYWRkX2ZkZV9jZmkgKGNvbnN0IGNoYXIgKmxhYmVsLCBkd19jZmlfcmVmIGNmaSkKLSB7Ci0t ICBkd19jZmlfcmVmICpsaXN0X2hlYWQgPSAmY2llX2NmaV9oZWFkOwotKyAgZHdfY2ZpX3JlZiAq bGlzdF9oZWFkOwotKwotKyAgaWYgKGVtaXRfY2ZhX3JlbWVtYmVyKQotKyAgICB7Ci0rICAgICAg ZHdfY2ZpX3JlZiBjZmlfcmVtZW1iZXI7Ci0rCi0rICAgICAgLyogRW1pdCB0aGUgc3RhdGUgc2F2 ZS4gICovCi0rICAgICAgZW1pdF9jZmFfcmVtZW1iZXIgPSBmYWxzZTsKLSsgICAgICBjZmlfcmVt ZW1iZXIgPSBuZXdfY2ZpICgpOyAKLSsgICAgICBjZmlfcmVtZW1iZXItPmR3X2NmaV9vcGMgPSBE V19DRkFfcmVtZW1iZXJfc3RhdGU7Ci0rICAgICAgYWRkX2ZkZV9jZmkgKGxhYmVsLCBjZmlfcmVt ZW1iZXIpOwotKyAgICB9Ci0rCi0rICBsaXN0X2hlYWQgPSAmY2llX2NmaV9oZWFkOwotIAotICAg aWYgKGR3YXJmMm91dF9kb19jZmlfYXNtICgpKQotICAgICB7Ci1AQCAtODI4LDcgKzg0OCw3IEBA IGFkZF9mZGVfY2ZpIChjb25zdCBjaGFyICpsYWJlbCwgZHdfY2ZpX3IKLSAvKiBTdWJyb3V0aW5l IG9mIGxvb2t1cF9jZmEuICAqLwotIAotIHN0YXRpYyB2b2lkCi0tbG9va3VwX2NmYV8xIChkd19j ZmlfcmVmIGNmaSwgZHdfY2ZhX2xvY2F0aW9uICpsb2MpCi0rbG9va3VwX2NmYV8xIChkd19jZmlf cmVmIGNmaSwgZHdfY2ZhX2xvY2F0aW9uICpsb2MsIGR3X2NmYV9sb2NhdGlvbiAqcmVtZW1iZXIp Ci0gewotICAgc3dpdGNoIChjZmktPmR3X2NmaV9vcGMpCi0gICAgIHsKLUBAIC04NDcsNiArODY3 LDE4IEBAIGxvb2t1cF9jZmFfMSAoZHdfY2ZpX3JlZiBjZmksIGR3X2NmYV9sb2MKLSAgICAgY2Fz ZSBEV19DRkFfZGVmX2NmYV9leHByZXNzaW9uOgotICAgICAgIGdldF9jZmFfZnJvbV9sb2NfZGVz Y3IgKGxvYywgY2ZpLT5kd19jZmlfb3BybmQxLmR3X2NmaV9sb2MpOwotICAgICAgIGJyZWFrOwot KwotKyAgICBjYXNlIERXX0NGQV9yZW1lbWJlcl9zdGF0ZToKLSsgICAgICBnY2NfYXNzZXJ0ICgh cmVtZW1iZXItPmluX3VzZSk7Ci0rICAgICAgKnJlbWVtYmVyID0gKmxvYzsKLSsgICAgICByZW1l bWJlci0+aW5fdXNlID0gMTsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBEV19DRkFfcmVzdG9y ZV9zdGF0ZToKLSsgICAgICBnY2NfYXNzZXJ0IChyZW1lbWJlci0+aW5fdXNlKTsKLSsgICAgICAq bG9jID0gKnJlbWVtYmVyOwotKyAgICAgIHJlbWVtYmVyLT5pbl91c2UgPSAwOwotKyAgICAgIGJy ZWFrOwotKwotICAgICBkZWZhdWx0OgotICAgICAgIGJyZWFrOwotICAgICB9Ci1AQCAtODU5LDE5 ICs4OTEsMTkgQEAgbG9va3VwX2NmYSAoZHdfY2ZhX2xvY2F0aW9uICpsb2MpCi0gewotICAgZHdf Y2ZpX3JlZiBjZmk7Ci0gICBkd19mZGVfcmVmIGZkZTsKLSsgIGR3X2NmYV9sb2NhdGlvbiByZW1l bWJlcjsKLSAKLSsgIG1lbXNldCAobG9jLCAwLCBzaXplb2YgKCpsb2MpKTsKLSAgIGxvYy0+cmVn ID0gSU5WQUxJRF9SRUdOVU07Ci0tICBsb2MtPm9mZnNldCA9IDA7Ci0tICBsb2MtPmluZGlyZWN0 ID0gMDsKLS0gIGxvYy0+YmFzZV9vZmZzZXQgPSAwOwotKyAgcmVtZW1iZXIgPSAqbG9jOwotIAot ICAgZm9yIChjZmkgPSBjaWVfY2ZpX2hlYWQ7IGNmaTsgY2ZpID0gY2ZpLT5kd19jZmlfbmV4dCkK LS0gICAgbG9va3VwX2NmYV8xIChjZmksIGxvYyk7Ci0rICAgIGxvb2t1cF9jZmFfMSAoY2ZpLCBs b2MsICZyZW1lbWJlcik7Ci0gCi0gICBmZGUgPSBjdXJyZW50X2ZkZSAoKTsKLSAgIGlmIChmZGUp Ci0gICAgIGZvciAoY2ZpID0gZmRlLT5kd19mZGVfY2ZpOyBjZmk7IGNmaSA9IGNmaS0+ZHdfY2Zp X25leHQpCi0tICAgICAgbG9va3VwX2NmYV8xIChjZmksIGxvYyk7Ci0rICAgICAgbG9va3VwX2Nm YV8xIChjZmksIGxvYywgJnJlbWVtYmVyKTsKLSB9Ci0gCi0gLyogVGhlIGN1cnJlbnQgcnVsZSBm b3IgY2FsY3VsYXRpbmcgdGhlIERXQVJGMiBjYW5vbmljYWwgZnJhbWUgYWRkcmVzcy4gICovCi1A QCAtODgxLDYgKzkxMyw5IEBAIHN0YXRpYyBkd19jZmFfbG9jYXRpb24gY2ZhOwotICAgIGZyb20g dGhlIENGQS4gICovCi0gc3RhdGljIGR3X2NmYV9sb2NhdGlvbiBjZmFfc3RvcmU7Ci0gCi0rLyog VGhlIGN1cnJlbnQgc2F2ZSBsb2NhdGlvbiBhcm91bmQgYW4gZXBpbG9ndWUuICAqLwotK3N0YXRp YyBkd19jZmFfbG9jYXRpb24gY2ZhX3JlbWVtYmVyOwotKwotIC8qIFRoZSBydW5uaW5nIHRvdGFs IG9mIHRoZSBzaXplIG9mIGFyZ3VtZW50cyBwdXNoZWQgb250byB0aGUgc3RhY2suICAqLwotIHN0 YXRpYyBIT1NUX1dJREVfSU5UIGFyZ3Nfc2l6ZTsKLSAKLUBAIC0xMjY2LDggKzEzMDEsNyBAQCBj b21wdXRlX2JhcnJpZXJfYXJnc19zaXplXzEgKHJ0eCBpbnNuLCBICi0gCi0gICBpZiAoISBSVFhf RlJBTUVfUkVMQVRFRF9QIChpbnNuKSkKLSAgICAgewotLSAgICAgIGlmIChwcm9sb2d1ZV9lcGls b2d1ZV9jb250YWlucyAoaW5zbikKLS0JICB8fCBzaWJjYWxsX2VwaWxvZ3VlX2NvbnRhaW5zIChp bnNuKSkKLSsgICAgICBpZiAocHJvbG9ndWVfZXBpbG9ndWVfY29udGFpbnMgKGluc24pKQotIAkv KiBOb3RoaW5nICovOwotICAgICAgIGVsc2UgaWYgKEdFVF9DT0RFIChQQVRURVJOIChpbnNuKSkg PT0gU0VUKQotIAlvZmZzZXQgPSBzdGFja19hZGp1c3Rfb2Zmc2V0IChQQVRURVJOIChpbnNuKSwg Y3VyX2FyZ3Nfc2l6ZSwgMCk7Ci1AQCAtMTQ0MCw3ICsxNDc0LDcgQEAgZHdhcmYyb3V0X3N0YWNr X2FkanVzdCAocnR4IGluc24sIGJvb2wgYQotICAgICAgd2l0aCB0aGlzIGZ1bmN0aW9uLiAgUHJv cGVyIHN1cHBvcnQgd291bGQgcmVxdWlyZSBhbGwgZnJhbWUtcmVsYXRlZAotICAgICAgaW5zbnMg dG8gYmUgbWFya2VkLCBhbmQgdG8gYmUgYWJsZSB0byBoYW5kbGUgc2F2aW5nIHN0YXRlIGFyb3Vu ZAotICAgICAgZXBpbG9ndWVzIHRleHR1YWxseSBpbiB0aGUgbWlkZGxlIG9mIHRoZSBmdW5jdGlv bi4gICovCi0tICBpZiAocHJvbG9ndWVfZXBpbG9ndWVfY29udGFpbnMgKGluc24pIHx8IHNpYmNh bGxfZXBpbG9ndWVfY29udGFpbnMgKGluc24pKQotKyAgaWYgKHByb2xvZ3VlX2VwaWxvZ3VlX2Nv bnRhaW5zIChpbnNuKSkKLSAgICAgcmV0dXJuOwotIAotICAgLyogSWYgSU5TTiBpcyBhbiBpbnN0 cnVjdGlvbiBmcm9tIHRhcmdldCBvZiBhbiBhbm51bGxlZCBicmFuY2gsIHRoZQotQEAgLTE3MTUs NiArMTc0OSwxNTYgQEAgcmVnX3NhdmVkX2luIChydHggcmVnKQotICAgIHZhbHVlLCBub3QgYW4g b2Zmc2V0LiAgKi8KLSBzdGF0aWMgZHdfY2ZhX2xvY2F0aW9uIGNmYV90ZW1wOwotIAotKy8qIEEg c3Vicm91dGluZSBvZiBkd2FyZjJvdXRfZnJhbWVfZGVidWcsIHByb2Nlc3MgYSBSRUdfREVGX0NG QSBub3RlLiAgKi8KLSsKLStzdGF0aWMgdm9pZAotK2R3YXJmMm91dF9mcmFtZV9kZWJ1Z19kZWZf Y2ZhIChydHggcGF0LCBjb25zdCBjaGFyICpsYWJlbCkKLSt7Ci0rICBtZW1zZXQgKCZjZmEsIDAs IHNpemVvZiAoY2ZhKSk7Ci0rCi0rICBzd2l0Y2ggKEdFVF9DT0RFIChwYXQpKQotKyAgICB7Ci0r ICAgIGNhc2UgUExVUzoKLSsgICAgICBjZmEucmVnID0gUkVHTk8gKFhFWFAgKHBhdCwgMCkpOwot KyAgICAgIGNmYS5vZmZzZXQgPSBJTlRWQUwgKFhFWFAgKHBhdCwgMSkpOwotKyAgICAgIGJyZWFr OwotKwotKyAgICBjYXNlIFJFRzoKLSsgICAgICBjZmEucmVnID0gUkVHTk8gKHBhdCk7Ci0rICAg ICAgYnJlYWs7Ci0rCi0rICAgIGRlZmF1bHQ6Ci0rICAgICAgLyogUmVjdXJzZSBhbmQgZGVmaW5l IGFuIGV4cHJlc3Npb24uICAqLwotKyAgICAgIGdjY191bnJlYWNoYWJsZSAoKTsKLSsgICAgfQot KwotKyAgZGVmX2NmYV8xIChsYWJlbCwgJmNmYSk7Ci0rfQotKwotKy8qIEEgc3Vicm91dGluZSBv ZiBkd2FyZjJvdXRfZnJhbWVfZGVidWcsIHByb2Nlc3MgYSBSRUdfQURKVVNUX0NGQSBub3RlLiAg Ki8KLSsKLStzdGF0aWMgdm9pZAotK2R3YXJmMm91dF9mcmFtZV9kZWJ1Z19hZGp1c3RfY2ZhIChy dHggcGF0LCBjb25zdCBjaGFyICpsYWJlbCkKLSt7Ci0rICBydHggc3JjLCBkZXN0OwotKwotKyAg Z2NjX2Fzc2VydCAoR0VUX0NPREUgKHBhdCkgPT0gU0VUKTsKLSsgIGRlc3QgPSBYRVhQIChwYXQs IDApOwotKyAgc3JjID0gWEVYUCAocGF0LCAxKTsKLSsKLSsgIHN3aXRjaCAoR0VUX0NPREUgKHNy YykpCi0rICAgIHsKLSsgICAgY2FzZSBQTFVTOgotKyAgICAgIGdjY19hc3NlcnQgKFJFR05PIChY RVhQIChzcmMsIDApKSA9PSBjZmEucmVnKTsKLSsgICAgICBjZmEub2Zmc2V0IC09IElOVFZBTCAo WEVYUCAoc3JjLCAxKSk7Ci0rICAgICAgYnJlYWs7Ci0rCi0rICAgIGNhc2UgUkVHOgotKwlicmVh azsKLSsKLSsgICAgZGVmYXVsdDoKLSsJZ2NjX3VucmVhY2hhYmxlICgpOwotKyAgICB9Ci0rCi0r ICBjZmEucmVnID0gUkVHTk8gKGRlc3QpOwotKyAgZ2NjX2Fzc2VydCAoY2ZhLmluZGlyZWN0ID09 IDApOwotKwotKyAgZGVmX2NmYV8xIChsYWJlbCwgJmNmYSk7Ci0rfQotKwotKy8qIEEgc3Vicm91 dGluZSBvZiBkd2FyZjJvdXRfZnJhbWVfZGVidWcsIHByb2Nlc3MgYSBSRUdfQ0ZBX09GRlNFVCBu b3RlLiAgKi8KLSsKLStzdGF0aWMgdm9pZAotK2R3YXJmMm91dF9mcmFtZV9kZWJ1Z19jZmFfb2Zm c2V0IChydHggc2V0LCBjb25zdCBjaGFyICpsYWJlbCkKLSt7Ci0rICBIT1NUX1dJREVfSU5UIG9m ZnNldDsKLSsgIHJ0eCBzcmMsIGFkZHIsIHNwYW47Ci0rCi0rICBzcmMgPSBYRVhQIChzZXQsIDEp OwotKyAgYWRkciA9IFhFWFAgKHNldCwgMCk7Ci0rICBnY2NfYXNzZXJ0IChNRU1fUCAoYWRkcikp OwotKyAgYWRkciA9IFhFWFAgKGFkZHIsIDApOwotKyAgCi0rICAvKiBBcyBkb2N1bWVudGVkLCBv bmx5IGNvbnNpZGVyIGV4dHJlbWVseSBzaW1wbGUgYWRkcmVzc2VzLiAgKi8KLSsgIHN3aXRjaCAo R0VUX0NPREUgKGFkZHIpKQotKyAgICB7Ci0rICAgIGNhc2UgUkVHOgotKyAgICAgIGdjY19hc3Nl cnQgKFJFR05PIChhZGRyKSA9PSBjZmEucmVnKTsKLSsgICAgICBvZmZzZXQgPSAtY2ZhLm9mZnNl dDsKLSsgICAgICBicmVhazsKLSsgICAgY2FzZSBQTFVTOgotKyAgICAgIGdjY19hc3NlcnQgKFJF R05PIChYRVhQIChhZGRyLCAwKSkgPT0gY2ZhLnJlZyk7Ci0rICAgICAgb2Zmc2V0ID0gSU5UVkFM IChYRVhQIChhZGRyLCAxKSkgLSBjZmEub2Zmc2V0OwotKyAgICAgIGJyZWFrOwotKyAgICBkZWZh dWx0OgotKyAgICAgIGdjY191bnJlYWNoYWJsZSAoKTsKLSsgICAgfQotKwotKyAgc3BhbiA9IHRh cmdldG0uZHdhcmZfcmVnaXN0ZXJfc3BhbiAoc3JjKTsKLSsKLSsgIC8qID8/PyBXZSdkIGxpa2Ug dG8gdXNlIHF1ZXVlX3JlZ19zYXZlLCBidXQgd2UgbmVlZCB0byBjb21lIHVwIHdpdGgKLSsgICAg IGEgZGlmZmVyZW50IGZsdXNoaW5nIGhldXJpc3RpYyBmb3IgZXBpbG9ndWVzLiAgKi8KLSsgIGlm ICghc3BhbikKLSsgICAgcmVnX3NhdmUgKGxhYmVsLCBEV0FSRl9GUkFNRV9SRUdOVU0gKFJFR05P IChzcmMpKSwgSU5WQUxJRF9SRUdOVU0sIG9mZnNldCk7Ci0rICBlbHNlCi0rICAgIHsKLSsgICAg ICAvKiBXZSBoYXZlIGEgUEFSQUxMRUwgZGVzY3JpYmluZyB3aGVyZSB0aGUgY29udGVudHMgb2Yg U1JDIGxpdmUuCi0rICAgCSBRdWV1ZSByZWdpc3RlciBzYXZlcyBmb3IgZWFjaCBwaWVjZSBvZiB0 aGUgUEFSQUxMRUwuICAqLwotKyAgICAgIGludCBwYXJfaW5kZXg7Ci0rICAgICAgaW50IGxpbWl0 OwotKyAgICAgIEhPU1RfV0lERV9JTlQgc3Bhbl9vZmZzZXQgPSBvZmZzZXQ7Ci0rCi0rICAgICAg Z2NjX2Fzc2VydCAoR0VUX0NPREUgKHNwYW4pID09IFBBUkFMTEVMKTsKLSsKLSsgICAgICBsaW1p dCA9IFhWRUNMRU4gKHNwYW4sIDApOwotKyAgICAgIGZvciAocGFyX2luZGV4ID0gMDsgcGFyX2lu ZGV4IDwgbGltaXQ7IHBhcl9pbmRleCsrKQotKwl7Ci0rCSAgcnR4IGVsZW0gPSBYVkVDRVhQIChz cGFuLCAwLCBwYXJfaW5kZXgpOwotKwotKwkgIHJlZ19zYXZlIChsYWJlbCwgRFdBUkZfRlJBTUVf UkVHTlVNIChSRUdOTyAoZWxlbSkpLAotKwkJICAgIElOVkFMSURfUkVHTlVNLCBzcGFuX29mZnNl dCk7Ci0rCSAgc3Bhbl9vZmZzZXQgKz0gR0VUX01PREVfU0laRSAoR0VUX01PREUgKGVsZW0pKTsK LSsJfQotKyAgICB9Ci0rfQotKwotKy8qIEEgc3Vicm91dGluZSBvZiBkd2FyZjJvdXRfZnJhbWVf ZGVidWcsIHByb2Nlc3MgYSBSRUdfQ0ZBX1JFR0lTVEVSIG5vdGUuICAqLwotKwotK3N0YXRpYyB2 b2lkCi0rZHdhcmYyb3V0X2ZyYW1lX2RlYnVnX2NmYV9yZWdpc3RlciAocnR4IHNldCwgY29uc3Qg Y2hhciAqbGFiZWwpCi0rewotKyAgcnR4IHNyYywgZGVzdDsKLSsgIHVuc2lnbmVkIHNyZWdubywg ZHJlZ25vOwotKwotKyAgc3JjID0gWEVYUCAoc2V0LCAxKTsKLSsgIGRlc3QgPSBYRVhQIChzZXQs IDApOwotKwotKyAgaWYgKHNyYyA9PSBwY19ydHgpCi0rICAgIHNyZWdubyA9IERXQVJGX0ZSQU1F X1JFVFVSTl9DT0xVTU47Ci0rICBlbHNlCi0rICAgIHNyZWdubyA9IERXQVJGX0ZSQU1FX1JFR05V TSAoUkVHTk8gKHNyYykpOwotKwotKyAgZHJlZ25vID0gRFdBUkZfRlJBTUVfUkVHTlVNIChSRUdO TyAoZGVzdCkpOwotKwotKyAgLyogPz8/IFdlJ2QgbGlrZSB0byB1c2UgcXVldWVfcmVnX3NhdmUs IGJ1dCB3ZSBuZWVkIHRvIGNvbWUgdXAgd2l0aAotKyAgICAgYSBkaWZmZXJlbnQgZmx1c2hpbmcg aGV1cmlzdGljIGZvciBlcGlsb2d1ZXMuICAqLwotKyAgcmVnX3NhdmUgKGxhYmVsLCBzcmVnbm8s IGRyZWdubywgMCk7Ci0rfQotKwotKy8qIEEgc3Vicm91dGluZSBvZiBkd2FyZjJvdXRfZnJhbWVf ZGVidWcsIHByb2Nlc3MgYSBSRUdfQ0ZBX1JFU1RPUkUgbm90ZS4gICovCi0rCi0rc3RhdGljIHZv aWQKLStkd2FyZjJvdXRfZnJhbWVfZGVidWdfY2ZhX3Jlc3RvcmUgKHJ0eCByZWcsIGNvbnN0IGNo YXIgKmxhYmVsKQotK3sKLSsgIGR3X2NmaV9yZWYgY2ZpID0gbmV3X2NmaSAoKTsKLSsgIHVuc2ln bmVkIGludCByZWdubyA9IERXQVJGX0ZSQU1FX1JFR05VTSAoUkVHTk8gKHJlZykpOwotKwotKyAg Y2ZpLT5kd19jZmlfb3BjID0gKHJlZ25vICYgfjB4M2YgPyBEV19DRkFfcmVzdG9yZV9leHRlbmRl ZCA6IERXX0NGQV9yZXN0b3JlKTsKLSsgIGNmaS0+ZHdfY2ZpX29wcm5kMS5kd19jZmlfcmVnX251 bSA9IHJlZ25vOwotKwotKyAgYWRkX2ZkZV9jZmkgKGxhYmVsLCBjZmkpOwotK30KLSsKLSAvKiBS ZWNvcmQgY2FsbCBmcmFtZSBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gZm9yIGFuIGV4cHJlc3Npb24g RVhQUiwKLSAgICB3aGljaCBlaXRoZXIgc2V0cyBTUCBvciBGUCAoYWRqdXN0aW5nIGhvdyB3ZSBj YWxjdWxhdGUgdGhlIGZyYW1lCi0gICAgYWRkcmVzcykgb3Igc2F2ZXMgYSByZWdpc3RlciB0byB0 aGUgc3RhY2sgb3IgYW5vdGhlciByZWdpc3Rlci4KLUBAIC0yNDIyLDcgKzI2MDYsOCBAQCB2b2lk Ci0gZHdhcmYyb3V0X2ZyYW1lX2RlYnVnIChydHggaW5zbiwgYm9vbCBhZnRlcl9wKQotIHsKLSAg IGNvbnN0IGNoYXIgKmxhYmVsOwotLSAgcnR4IHNyYzsKLSsgIHJ0eCBub3RlLCBuOwotKyAgYm9v bCBoYW5kbGVkX29uZSA9IGZhbHNlOwotIAotICAgaWYgKGluc24gPT0gTlVMTF9SVFgpCi0gICAg IHsKLUBAIC0yNDY3LDE1ICsyNjUyLDE1NCBAQCBkd2FyZjJvdXRfZnJhbWVfZGVidWcgKHJ0eCBp bnNuLCBib29sIGFmCi0gICAgIH0KLSAKLSAgIGxhYmVsID0gZHdhcmYyb3V0X2NmaV9sYWJlbCAo ZmFsc2UpOwotLSAgc3JjID0gZmluZF9yZWdfbm90ZSAoaW5zbiwgUkVHX0ZSQU1FX1JFTEFURURf RVhQUiwgTlVMTF9SVFgpOwotLSAgaWYgKHNyYykKLS0gICAgaW5zbiA9IFhFWFAgKHNyYywgMCk7 Ci0tICBlbHNlCi0tICAgIGluc24gPSBQQVRURVJOIChpbnNuKTsKLSAKLSsgIGZvciAobm90ZSA9 IFJFR19OT1RFUyAoaW5zbik7IG5vdGU7IG5vdGUgPSBYRVhQIChub3RlLCAxKSkKLSsgICAgc3dp dGNoIChSRUdfTk9URV9LSU5EIChub3RlKSkKLSsgICAgICB7Ci0rICAgICAgY2FzZSBSRUdfRlJB TUVfUkVMQVRFRF9FWFBSOgotKwlpbnNuID0gWEVYUCAobm90ZSwgMCk7Ci0rCWdvdG8gZm91bmQ7 Ci0rCi0rICAgICAgY2FzZSBSRUdfQ0ZBX0RFRl9DRkE6Ci0rCWR3YXJmMm91dF9mcmFtZV9kZWJ1 Z19kZWZfY2ZhIChYRVhQIChub3RlLCAwKSwgbGFiZWwpOwotKwloYW5kbGVkX29uZSA9IHRydWU7 Ci0rCWJyZWFrOwotKwotKyAgICAgIGNhc2UgUkVHX0NGQV9BREpVU1RfQ0ZBOgotKwluID0gWEVY UCAobm90ZSwgMCk7Ci0rCWlmIChuID09IE5VTEwpCi0rCSAgewotKwkgICAgbiA9IFBBVFRFUk4g KGluc24pOwotKwkgICAgaWYgKEdFVF9DT0RFIChuKSA9PSBQQVJBTExFTCkKLSsJICAgICAgbiA9 IFhWRUNFWFAgKG4sIDAsIDApOwotKwkgIH0KLSsJZHdhcmYyb3V0X2ZyYW1lX2RlYnVnX2FkanVz dF9jZmEgKG4sIGxhYmVsKTsKLSsJaGFuZGxlZF9vbmUgPSB0cnVlOwotKwlicmVhazsKLSsKLSsg ICAgICBjYXNlIFJFR19DRkFfT0ZGU0VUOgotKwluID0gWEVYUCAobm90ZSwgMCk7Ci0rCWlmIChu ID09IE5VTEwpCi0rCSAgbiA9IHNpbmdsZV9zZXQgKGluc24pOwotKwlkd2FyZjJvdXRfZnJhbWVf ZGVidWdfY2ZhX29mZnNldCAobiwgbGFiZWwpOwotKwloYW5kbGVkX29uZSA9IHRydWU7Ci0rCWJy ZWFrOwotKwotKyAgICAgIGNhc2UgUkVHX0NGQV9SRUdJU1RFUjoKLSsJbiA9IFhFWFAgKG5vdGUs IDApOwotKwlpZiAobiA9PSBOVUxMKQotKwkgIHsKLSsJICAgIG4gPSBQQVRURVJOIChpbnNuKTsK LSsJICAgIGlmIChHRVRfQ09ERSAobikgPT0gUEFSQUxMRUwpCi0rCSAgICAgIG4gPSBYVkVDRVhQ IChuLCAwLCAwKTsKLSsJICB9Ci0rCWR3YXJmMm91dF9mcmFtZV9kZWJ1Z19jZmFfcmVnaXN0ZXIg KG4sIGxhYmVsKTsKLSsJaGFuZGxlZF9vbmUgPSB0cnVlOwotKwlicmVhazsKLSsKLSsgICAgICBj YXNlIFJFR19DRkFfUkVTVE9SRToKLSsJbiA9IFhFWFAgKG5vdGUsIDApOwotKwlpZiAobiA9PSBO VUxMKQotKwkgIHsKLSsJICAgIG4gPSBQQVRURVJOIChpbnNuKTsKLSsJICAgIGlmIChHRVRfQ09E RSAobikgPT0gUEFSQUxMRUwpCi0rCSAgICAgIG4gPSBYVkVDRVhQIChuLCAwLCAwKTsKLSsJICAg IG4gPSBYRVhQIChuLCAwKTsKLSsJICB9Ci0rCWR3YXJmMm91dF9mcmFtZV9kZWJ1Z19jZmFfcmVz dG9yZSAobiwgbGFiZWwpOwotKwloYW5kbGVkX29uZSA9IHRydWU7Ci0rCWJyZWFrOwotKwotKyAg ICAgIGRlZmF1bHQ6Ci0rCWJyZWFrOwotKyAgICAgIH0KLSsgIGlmIChoYW5kbGVkX29uZSkKLSsg ICAgcmV0dXJuOwotKwotKyAgaW5zbiA9IFBBVFRFUk4gKGluc24pOwotKyBmb3VuZDoKLSAgIGR3 YXJmMm91dF9mcmFtZV9kZWJ1Z19leHByIChpbnNuLCBsYWJlbCk7Ci0gfQotIAotKy8qIERldGVy bWluZSBpZiB3ZSBuZWVkIHRvIHNhdmUgYW5kIHJlc3RvcmUgQ0ZJIGluZm9ybWF0aW9uIGFyb3Vu ZCB0aGlzCi0rICAgZXBpbG9ndWUuICBJZiBTSUJDQUxMIGlzIHRydWUsIHRoZW4gdGhpcyBpcyBh IHNpYmNhbGwgZXBpbG9ndWUuICBJZgotKyAgIHdlIGRvIG5lZWQgdG8gc2F2ZS9yZXN0b3JlLCB0 aGVuIGVtaXQgdGhlIHNhdmUgbm93LCBhbmQgaW5zZXJ0IGEKLSsgICBOT1RFX0lOU05fQ0ZBX1JF U1RPUkVfU1RBVEUgYXQgdGhlIGFwcHJvcHJpYXRlIHBsYWNlIGluIHRoZSBzdHJlYW0uICAqLwot KwotK3ZvaWQKLStkd2FyZjJvdXRfYmVnaW5fZXBpbG9ndWUgKHJ0eCBpbnNuKQotK3sKLSsgIGJv b2wgc2F3X2ZycCA9IGZhbHNlOwotKyAgcnR4IGk7Ci0rCi0rICAvKiBTY2FuIGZvcndhcmQgdG8g dGhlIHJldHVybiBpbnNuLCBub3RpY2luZyBpZiB0aGVyZSBhcmUgcG9zc2libGUKLSsgICAgIGZy YW1lIHJlbGF0ZWQgaW5zbnMuICAqLwotKyAgZm9yIChpID0gTkVYVF9JTlNOIChpbnNuKTsgaSA7 IGkgPSBORVhUX0lOU04gKGkpKQotKyAgICB7Ci0rICAgICAgaWYgKCFJTlNOX1AgKGkpKQotKwlj b250aW51ZTsKLSsKLSsgICAgICAvKiBMb29rIGZvciBib3RoIHJlZ3VsYXIgYW5kIHNpYmNhbGxz IHRvIGVuZCB0aGUgYmxvY2suICAqLwotKyAgICAgIGlmIChyZXR1cm5qdW1wX3AgKGkpKQotKwli cmVhazsKLSsgICAgICBpZiAoQ0FMTF9QIChpKSAmJiBTSUJMSU5HX0NBTExfUCAoaSkpCi0rCWJy ZWFrOwotKwotKyAgICAgIGlmIChSVFhfRlJBTUVfUkVMQVRFRF9QIChpKSkKLSsJc2F3X2ZycCA9 IHRydWU7Ci0rICAgIH0KLSsKLSsgIC8qIElmIHRoZSBwb3J0IGRvZXNuJ3QgZW1pdCBlcGlsb2d1 ZSB1bndpbmQgaW5mbywgd2UgZG9uJ3QgbmVlZCBhCi0rICAgICBzYXZlL3Jlc3RvcmUgcGFpci4g ICovCi0rICBpZiAoIXNhd19mcnApCi0rICAgIHJldHVybjsKLSsKLSsgIC8qIE90aGVyd2lzZSwg c2VhcmNoIGZvcndhcmQgdG8gc2VlIGlmIHRoZSByZXR1cm4gaW5zbiB3YXMgdGhlIGxhc3QKLSsg ICAgIGJhc2ljIGJsb2NrIG9mIHRoZSBmdW5jdGlvbi4gIElmIHNvLCB3ZSBkb24ndCBuZWVkIHNh dmUvcmVzdG9yZS4gICovCi0rICBnY2NfYXNzZXJ0IChpICE9IE5VTEwpOwotKyAgaSA9IG5leHRf cmVhbF9pbnNuIChpKTsKLSsgIGlmIChpID09IE5VTEwpCi0rICAgIHJldHVybjsKLSsKLSsgIC8q IEluc2VydCB0aGUgcmVzdG9yZSBiZWZvcmUgdGhhdCBuZXh0IHJlYWwgaW5zbiBpbiB0aGUgc3Ry ZWFtLCBhbmQgYmVmb3JlCi0rICAgICBhIHBvdGVudGlhbCBOT1RFX0lOU05fRVBJTE9HVUVfQkVH IC0tIHdlIGRvIG5lZWQgdGhlc2Ugbm90ZXMgdG8gYmUKLSsgICAgIHByb3Blcmx5IG5lc3RlZC4g IFRoaXMgc2hvdWxkIGJlIGFmdGVyIGFueSBsYWJlbCBvciBhbGlnbm1lbnQuICBUaGlzCi0rICAg ICB3aWxsIGJlIHB1c2hlZCBpbnRvIHRoZSBDRkkgc3RyZWFtIGJ5IHRoZSBmdW5jdGlvbiBiZWxv dy4gICovCi0rICB3aGlsZSAoMSkKLSsgICAgewotKyAgICAgIHJ0eCBwID0gUFJFVl9JTlNOIChp KTsKLSsgICAgICBpZiAoIU5PVEVfUCAocCkpCi0rCWJyZWFrOwotKyAgICAgIGlmIChOT1RFX0tJ TkQgKHApID09IE5PVEVfSU5TTl9CQVNJQ19CTE9DSykKLSsJYnJlYWs7Ci0rICAgICAgaSA9IHA7 Ci0rICAgIH0KLSsgIGVtaXRfbm90ZV9iZWZvcmUgKE5PVEVfSU5TTl9DRkFfUkVTVE9SRV9TVEFU RSwgaSk7Ci0rCi0rICBlbWl0X2NmYV9yZW1lbWJlciA9IHRydWU7Ci0rCi0rICAvKiBBbmQgZW11 bGF0ZSB0aGUgc3RhdGUgc2F2ZS4gICovCi0rICBnY2NfYXNzZXJ0ICghY2ZhX3JlbWVtYmVyLmlu X3VzZSk7Ci0rICBjZmFfcmVtZW1iZXIgPSBjZmE7Ci0rICBjZmFfcmVtZW1iZXIuaW5fdXNlID0g MTsKLSt9Ci0rCi0rLyogQSAic3Vicm91dGluZSIgb2YgZHdhcmYyb3V0X2JlZ2luX2VwaWxvZ3Vl LiAgRW1pdCB0aGUgcmVzdG9yZSByZXF1aXJlZC4gICovCi0rCi0rdm9pZAotK2R3YXJmMm91dF9m cmFtZV9kZWJ1Z19yZXN0b3JlX3N0YXRlICh2b2lkKQotK3sKLSsgIGR3X2NmaV9yZWYgY2ZpID0g bmV3X2NmaSAoKTsgCi0rICBjb25zdCBjaGFyICpsYWJlbCA9IGR3YXJmMm91dF9jZmlfbGFiZWwg KGZhbHNlKTsKLSsKLSsgIGNmaS0+ZHdfY2ZpX29wYyA9IERXX0NGQV9yZXN0b3JlX3N0YXRlOwot KyAgYWRkX2ZkZV9jZmkgKGxhYmVsLCBjZmkpOwotKwotKyAgZ2NjX2Fzc2VydCAoY2ZhX3JlbWVt YmVyLmluX3VzZSk7Ci0rICBjZmEgPSBjZmFfcmVtZW1iZXI7Ci0rICBjZmFfcmVtZW1iZXIuaW5f dXNlID0gMDsKLSt9Ci0rCi0gI2VuZGlmCi0gCi0gLyogRGVzY3JpYmUgZm9yIHRoZSBHVFkgbWFj aGluZXJ5IHdoYXQgcGFydHMgb2YgZHdfY2ZpX29wcm5kMSBhcmUgdXNlZC4gICovCi1AQCAtMjQ4 OSw2ICsyODEzLDggQEAgZHdfY2ZpX29wcm5kMV9kZXNjIChlbnVtIGR3YXJmX2NhbGxfZnJhbQot ICAgICB7Ci0gICAgIGNhc2UgRFdfQ0ZBX25vcDoKLSAgICAgY2FzZSBEV19DRkFfR05VX3dpbmRv d19zYXZlOgotKyAgICBjYXNlIERXX0NGQV9yZW1lbWJlcl9zdGF0ZToKLSsgICAgY2FzZSBEV19D RkFfcmVzdG9yZV9zdGF0ZToKLSAgICAgICByZXR1cm4gZHdfY2ZpX29wcm5kX3VudXNlZDsKLSAK LSAgICAgY2FzZSBEV19DRkFfc2V0X2xvYzoKLUBAIC0yNTAzLDYgKzI4MjksNyBAQCBkd19jZmlf b3BybmQxX2Rlc2MgKGVudW0gZHdhcmZfY2FsbF9mcmFtCi0gICAgIGNhc2UgRFdfQ0ZBX2RlZl9j ZmE6Ci0gICAgIGNhc2UgRFdfQ0ZBX29mZnNldF9leHRlbmRlZF9zZjoKLSAgICAgY2FzZSBEV19D RkFfZGVmX2NmYV9zZjoKLSsgICAgY2FzZSBEV19DRkFfcmVzdG9yZToKLSAgICAgY2FzZSBEV19D RkFfcmVzdG9yZV9leHRlbmRlZDoKLSAgICAgY2FzZSBEV19DRkFfdW5kZWZpbmVkOgotICAgICBj YXNlIERXX0NGQV9zYW1lX3ZhbHVlOgotQEAgLTI4MjYsNiArMzE1MywxMyBAQCBvdXRwdXRfY2Zp X2RpcmVjdGl2ZSAoZHdfY2ZpX3JlZiBjZmkpCi0gCSAgICAgICBjZmktPmR3X2NmaV9vcHJuZDEu ZHdfY2ZpX29mZnNldCk7Ci0gICAgICAgYnJlYWs7Ci0gCi0rICAgIGNhc2UgRFdfQ0ZBX3JlbWVt YmVyX3N0YXRlOgotKyAgICAgIGZwcmludGYgKGFzbV9vdXRfZmlsZSwgIlx0LmNmaV9yZW1lbWJl cl9zdGF0ZVxuIik7Ci0rICAgICAgYnJlYWs7Ci0rICAgIGNhc2UgRFdfQ0ZBX3Jlc3RvcmVfc3Rh dGU6Ci0rICAgICAgZnByaW50ZiAoYXNtX291dF9maWxlLCAiXHQuY2ZpX3Jlc3RvcmVfc3RhdGVc biIpOwotKyAgICAgIGJyZWFrOwotKwotICAgICBjYXNlIERXX0NGQV9HTlVfYXJnc19zaXplOgot ICAgICAgIGZwcmludGYgKGFzbV9vdXRfZmlsZSwgIlx0LmNmaV9lc2NhcGUgMHgleCwiLCBEV19D RkFfR05VX2FyZ3Nfc2l6ZSk7Ci0gICAgICAgZHcyX2FzbV9vdXRwdXRfZGF0YV91bGViMTI4X3Jh dyAoY2ZpLT5kd19jZmlfb3BybmQxLmR3X2NmaV9vZmZzZXQpOwotQEAgLTEyMTczLDYgKzEyNTA3 LDcgQEAgY29udmVydF9jZmFfdG9fZmJfbG9jX2xpc3QgKEhPU1RfV0lERV9JTgotICAgZHdfY2Zp X3JlZiBjZmk7Ci0gICBkd19jZmFfbG9jYXRpb24gbGFzdF9jZmEsIG5leHRfY2ZhOwotICAgY29u c3QgY2hhciAqc3RhcnRfbGFiZWwsICpsYXN0X2xhYmVsLCAqc2VjdGlvbjsKLSsgIGR3X2NmYV9s b2NhdGlvbiByZW1lbWJlcjsKLSAKLSAgIGZkZSA9IGN1cnJlbnRfZmRlICgpOwotICAgZ2NjX2Fz c2VydCAoZmRlICE9IE5VTEwpOwotQEAgLTEyMTgxLDE3ICsxMjUxNiwxNiBAQCBjb252ZXJ0X2Nm YV90b19mYl9sb2NfbGlzdCAoSE9TVF9XSURFX0lOCi0gICBsaXN0X3RhaWwgPSAmbGlzdDsKLSAg IGxpc3QgPSBOVUxMOwotIAotKyAgbWVtc2V0ICgmbmV4dF9jZmEsIDAsIHNpemVvZiAobmV4dF9j ZmEpKTsKLSAgIG5leHRfY2ZhLnJlZyA9IElOVkFMSURfUkVHTlVNOwotLSAgbmV4dF9jZmEub2Zm c2V0ID0gMDsKLS0gIG5leHRfY2ZhLmluZGlyZWN0ID0gMDsKLS0gIG5leHRfY2ZhLmJhc2Vfb2Zm c2V0ID0gMDsKLSsgIHJlbWVtYmVyID0gbmV4dF9jZmE7Ci0gCi0gICBzdGFydF9sYWJlbCA9IGZk ZS0+ZHdfZmRlX2JlZ2luOwotIAotICAgLyogPz8/IEJhbGQgYXNzdW1wdGlvbiB0aGF0IHRoZSBD SUUgb3Bjb2RlIGxpc3QgZG9lcyBub3QgY29udGFpbgotICAgICAgYWR2YW5jZSBvcGNvZGVzLiAg Ki8KLSAgIGZvciAoY2ZpID0gY2llX2NmaV9oZWFkOyBjZmk7IGNmaSA9IGNmaS0+ZHdfY2ZpX25l eHQpCi0tICAgIGxvb2t1cF9jZmFfMSAoY2ZpLCAmbmV4dF9jZmEpOwotKyAgICBsb29rdXBfY2Zh XzEgKGNmaSwgJm5leHRfY2ZhLCAmcmVtZW1iZXIpOwotIAotICAgbGFzdF9jZmEgPSBuZXh0X2Nm YTsKLSAgIGxhc3RfbGFiZWwgPSBzdGFydF9sYWJlbDsKLUBAIC0xMjIxOCwxNCArMTI1NTIsMTAg QEAgY29udmVydF9jZmFfdG9fZmJfbG9jX2xpc3QgKEhPU1RfV0lERV9JTgotIAotICAgICAgIGNh c2UgRFdfQ0ZBX2FkdmFuY2VfbG9jOgotIAkvKiBUaGUgZW5jb2RpbmcgaXMgY29tcGxleCBlbm91 Z2ggdGhhdCB3ZSBzaG91bGQgbmV2ZXIgZW1pdCB0aGlzLiAgKi8KLS0gICAgICBjYXNlIERXX0NG QV9yZW1lbWJlcl9zdGF0ZToKLS0gICAgICBjYXNlIERXX0NGQV9yZXN0b3JlX3N0YXRlOgotLQkv KiBXZSBkb24ndCBoYW5kbGUgdGhlc2UgdHdvIGluIHRoaXMgZnVuY3Rpb24uICBJdCB3b3VsZCBi ZSBwb3NzaWJsZQotLQkgICBpZiBpdCB3ZXJlIHRvIGJlIHJlcXVpcmVkLiAgKi8KLSAJZ2NjX3Vu cmVhY2hhYmxlICgpOwotIAotICAgICAgIGRlZmF1bHQ6Ci0tCWxvb2t1cF9jZmFfMSAoY2ZpLCAm bmV4dF9jZmEpOwotKwlsb29rdXBfY2ZhXzEgKGNmaSwgJm5leHRfY2ZhLCAmcmVtZW1iZXIpOwot IAlicmVhazsKLSAgICAgICB9Ci0gCi0tLS0gZ2NjL2Z1bmN0aW9uLmMuamoJMjAwOS0wMy0xOSAx NzoxNzowMi4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvZnVuY3Rpb24uYwkyMDA5LTA2LTA5IDA4 OjU4OjA0LjAwMDAwMDAwMCArMDIwMAotQEAgLTEyNCwxMyArMTI0LDExIEBAIHN0cnVjdCBtYWNo aW5lX2Z1bmN0aW9uICogKCppbml0X21hY2hpbmUKLSAvKiBUaGUgY3VycmVudGx5IGNvbXBpbGVk IGZ1bmN0aW9uLiAgKi8KLSBzdHJ1Y3QgZnVuY3Rpb24gKmNmdW4gPSAwOwotIAotLS8qIFRoZXNl IGFycmF5cyByZWNvcmQgdGhlIElOU05fVUlEcyBvZiB0aGUgcHJvbG9ndWUgYW5kIGVwaWxvZ3Vl IGluc25zLiAgKi8KLS1zdGF0aWMgVkVDKGludCxoZWFwKSAqcHJvbG9ndWU7Ci0tc3RhdGljIFZF QyhpbnQsaGVhcCkgKmVwaWxvZ3VlOwotLQotLS8qIEFycmF5IG9mIElOU05fVUlEcyB0byBob2xk IHRoZSBJTlNOX1VJRHMgZm9yIGVhY2ggc2liY2FsbCBlcGlsb2d1ZQotLSAgIGluIHRoaXMgZnVu Y3Rpb24uICAqLwotLXN0YXRpYyBWRUMoaW50LGhlYXApICpzaWJjYWxsX2VwaWxvZ3VlOwotKy8q IFRoZXNlIGhhc2hlcyByZWNvcmQgdGhlIHByb2xvZ3VlIGFuZCBlcGlsb2d1ZSBpbnNucy4gICov Ci0rc3RhdGljIEdUWSgoaWZfbWFya2VkICgiZ2djX21hcmtlZF9wIiksIHBhcmFtX2lzIChzdHJ1 Y3QgcnR4X2RlZikpKQotKyAgaHRhYl90IHByb2xvZ3VlX2luc25faGFzaDsKLStzdGF0aWMgR1RZ KChpZl9tYXJrZWQgKCJnZ2NfbWFya2VkX3AiKSwgcGFyYW1faXMgKHN0cnVjdCBydHhfZGVmKSkp Ci0rICBodGFiX3QgZXBpbG9ndWVfaW5zbl9oYXNoOwotIAwKLSAvKiBGb3J3YXJkIGRlY2xhcmF0 aW9ucy4gICovCi0gCi1AQCAtMTQzLDggKzE0MSw4IEBAIHN0YXRpYyB0cmVlICpnZXRfYmxvY2tf dmVjdG9yICh0cmVlLCBpbnQKLSBleHRlcm4gdHJlZSBkZWJ1Z19maW5kX3Zhcl9pbl9ibG9ja190 cmVlICh0cmVlLCB0cmVlKTsKLSAvKiBXZSBhbHdheXMgZGVmaW5lIGByZWNvcmRfaW5zbnMnIGV2 ZW4gaWYgaXQncyBub3QgdXNlZCBzbyB0aGF0IHdlCi0gICAgY2FuIGFsd2F5cyBleHBvcnQgYHBy b2xvZ3VlX2VwaWxvZ3VlX2NvbnRhaW5zJy4gICovCi0tc3RhdGljIHZvaWQgcmVjb3JkX2luc25z IChydHgsIFZFQyhpbnQsaGVhcCkgKiopIEFUVFJJQlVURV9VTlVTRUQ7Ci0tc3RhdGljIGludCBj b250YWlucyAoY29uc3RfcnR4LCBWRUMoaW50LGhlYXApICoqKTsKLStzdGF0aWMgdm9pZCByZWNv cmRfaW5zbnMgKHJ0eCwgcnR4LCBodGFiX3QgKikgQVRUUklCVVRFX1VOVVNFRDsKLStzdGF0aWMg Ym9vbCBjb250YWlucyAoY29uc3RfcnR4LCBodGFiX3QpOwotICNpZmRlZiBIQVZFX3JldHVybgot IHN0YXRpYyB2b2lkIGVtaXRfcmV0dXJuX2ludG9fYmxvY2sgKGJhc2ljX2Jsb2NrKTsKLSAjZW5k aWYKLUBAIC0yMDcsOSArMjA1LDkgQEAgZnJlZV9hZnRlcl9wYXJzaW5nIChzdHJ1Y3QgZnVuY3Rp b24gKmYpCi0gdm9pZAotIGZyZWVfYWZ0ZXJfY29tcGlsYXRpb24gKHN0cnVjdCBmdW5jdGlvbiAq ZikKLSB7Ci0tICBWRUNfZnJlZSAoaW50LCBoZWFwLCBwcm9sb2d1ZSk7Ci0tICBWRUNfZnJlZSAo aW50LCBoZWFwLCBlcGlsb2d1ZSk7Ci0tICBWRUNfZnJlZSAoaW50LCBoZWFwLCBzaWJjYWxsX2Vw aWxvZ3VlKTsKLSsgIHByb2xvZ3VlX2luc25faGFzaCA9IE5VTEw7Ci0rICBlcGlsb2d1ZV9pbnNu X2hhc2ggPSBOVUxMOwotKwotICAgaWYgKGNydGwtPmVtaXQucmVnbm9fcG9pbnRlcl9hbGlnbikK LSAgICAgZnJlZSAoY3J0bC0+ZW1pdC5yZWdub19wb2ludGVyX2FsaWduKTsKLSAKLUBAIC00MTk4 LDE4ICs0MTk2LDExIEBAIGluaXRfZnVuY3Rpb25fc3RhcnQgKHRyZWUgc3VicikKLSAgICAgd2Fy bmluZyAoT1BUX1dhZ2dyZWdhdGVfcmV0dXJuLCAiZnVuY3Rpb24gcmV0dXJucyBhbiBhZ2dyZWdh dGUiKTsKLSB9Ci0gCi0tLyogTWFrZSBzdXJlIGFsbCB2YWx1ZXMgdXNlZCBieSB0aGUgb3B0aW1p emF0aW9uIHBhc3NlcyBoYXZlIHNhbmUKLS0gICBkZWZhdWx0cy4gICovCi0rLyogTWFrZSBzdXJl IGFsbCB2YWx1ZXMgdXNlZCBieSB0aGUgb3B0aW1pemF0aW9uIHBhc3NlcyBoYXZlIHNhbmUgZGVm YXVsdHMuICAqLwotIHVuc2lnbmVkIGludAotIGluaXRfZnVuY3Rpb25fZm9yX2NvbXBpbGF0aW9u ICh2b2lkKQotIHsKLSAgIHJlZ19yZW51bWJlciA9IDA7Ci0tCi0tICAvKiBObyBwcm9sb2d1ZS9l cGlsb2d1ZSBpbnNucyB5ZXQuICBNYWtlIHN1cmUgdGhhdCB0aGVzZSB2ZWN0b3JzIGFyZQotLSAg ICAgZW1wdHkuICAqLwotLSAgZ2NjX2Fzc2VydCAoVkVDX2xlbmd0aCAoaW50LCBwcm9sb2d1ZSkg PT0gMCk7Ci0tICBnY2NfYXNzZXJ0IChWRUNfbGVuZ3RoIChpbnQsIGVwaWxvZ3VlKSA9PSAwKTsK LS0gIGdjY19hc3NlcnQgKFZFQ19sZW5ndGggKGludCwgc2liY2FsbF9lcGlsb2d1ZSkgPT0gMCk7 Ci0gICByZXR1cm4gMDsKLSB9Ci0gCi1AQCAtNDg3NSwxNiArNDg2Niw0MiBAQCBnZXRfYXJnX3Bv aW50ZXJfc2F2ZV9hcmVhICh2b2lkKQotICAgcmV0dXJuIHJldDsKLSB9Ci0gDAotLS8qIEV4dGVu ZCBhIHZlY3RvciB0aGF0IHJlY29yZHMgdGhlIElOU05fVUlEcyBvZiBJTlNOUwotLSAgIChhIGxp c3Qgb2Ygb25lIG9yIG1vcmUgaW5zbnMpLiAgKi8KLSsvKiBBZGQgYSBsaXN0IG9mIElOU05TIHRv IHRoZSBoYXNoIEhBU0hQLCBwb3NzaWJseSBhbGxvY2F0aW5nIEhBU0hQCi0rICAgZm9yIHRoZSBm aXJzdCB0aW1lLiAgKi8KLSAKLSBzdGF0aWMgdm9pZAotLXJlY29yZF9pbnNucyAocnR4IGluc25z LCBWRUMoaW50LGhlYXApICoqdmVjcCkKLStyZWNvcmRfaW5zbnMgKHJ0eCBpbnNucywgcnR4IGVu ZCwgaHRhYl90ICpoYXNocCkKLSB7Ci0gICBydHggdG1wOwotKyAgaHRhYl90IGhhc2ggPSAqaGFz aHA7Ci0rCi0rICBpZiAoaGFzaCA9PSBOVUxMKQotKyAgICAqaGFzaHAgPSBoYXNoCi0rICAgICAg PSBodGFiX2NyZWF0ZV9nZ2MgKDE3LCBodGFiX2hhc2hfcG9pbnRlciwgaHRhYl9lcV9wb2ludGVy LCBOVUxMKTsKLSAKLS0gIGZvciAodG1wID0gaW5zbnM7IHRtcCAhPSBOVUxMX1JUWDsgdG1wID0g TkVYVF9JTlNOICh0bXApKQotLSAgICBWRUNfc2FmZV9wdXNoIChpbnQsIGhlYXAsICp2ZWNwLCBJ TlNOX1VJRCAodG1wKSk7Ci0rICBmb3IgKHRtcCA9IGluc25zOyB0bXAgIT0gZW5kOyB0bXAgPSBO RVhUX0lOU04gKHRtcCkpCi0rICAgIHsKLSsgICAgICB2b2lkICoqc2xvdCA9IGh0YWJfZmluZF9z bG90IChoYXNoLCB0bXAsIElOU0VSVCk7Ci0rICAgICAgZ2NjX2Fzc2VydCAoKnNsb3QgPT0gTlVM TCk7Ci0rICAgICAgKnNsb3QgPSB0bXA7Ci0rICAgIH0KLSt9Ci0rCi0rLyogSU5TTiBoYXMgYmVl biBkdXBsaWNhdGVkIGFzIENPUFksIGFzIHBhcnQgb2YgZHVwaW5nIGEgYmFzaWMgYmxvY2suCi0r ICAgSWYgSU5TTiBpcyBhbiBlcGlsb2d1ZSBpbnNuLCB0aGVuIHJlY29yZCBDT1BZIGFzIGVwaWxv Z3VlIGFzIHdlbGwuICAqLwotKwotK3ZvaWQKLSttYXliZV9jb3B5X2VwaWxvZ3VlX2luc24gKHJ0 eCBpbnNuLCBydHggY29weSkKLSt7Ci0rICB2b2lkICoqc2xvdDsKLSsKLSsgIGlmIChlcGlsb2d1 ZV9pbnNuX2hhc2ggPT0gTlVMTAotKyAgICAgIHx8IGh0YWJfZmluZCAoZXBpbG9ndWVfaW5zbl9o YXNoLCBpbnNuKSA9PSBOVUxMKQotKyAgICByZXR1cm47Ci0rCi0rICBzbG90ID0gaHRhYl9maW5k X3Nsb3QgKGVwaWxvZ3VlX2luc25faGFzaCwgY29weSwgSU5TRVJUKTsKLSsgIGdjY19hc3NlcnQg KCpzbG90ID09IE5VTEwpOwotKyAgKnNsb3QgPSBjb3B5OwotIH0KLSAKLSAvKiBTZXQgdGhlIGxv Y2F0b3Igb2YgdGhlIGluc24gY2hhaW4gc3RhcnRpbmcgYXQgSU5TTiB0byBMT0MuICAqLwotQEAg LTQ4OTksNTIgKzQ5MTYsMzcgQEAgc2V0X2luc25fbG9jYXRvcnMgKHJ0eCBpbnNuLCBpbnQgbG9j KQotICAgICB9Ci0gfQotIAotLS8qIERldGVybWluZSBob3cgbWFueSBJTlNOX1VJRHMgaW4gVkVD IGFyZSBwYXJ0IG9mIElOU04uICBCZWNhdXNlIHdlIGNhbgotLSAgIGJlIHJ1bm5pbmcgYWZ0ZXIg cmVvcmcsIFNFUVVFTkNFIHJ0bCBpcyBwb3NzaWJsZS4gICovCi0rLyogRGV0ZXJtaW5lIGlmIGFu eSBJTlNOcyBpbiBIQVNIIGFyZSwgb3IgYXJlIHBhcnQgb2YsIElOU04uICBCZWNhdXNlCi0rICAg d2UgY2FuIGJlIHJ1bm5pbmcgYWZ0ZXIgcmVvcmcsIFNFUVVFTkNFIHJ0bCBpcyBwb3NzaWJsZS4g ICovCi0gCi0tc3RhdGljIGludAotLWNvbnRhaW5zIChjb25zdF9ydHggaW5zbiwgVkVDKGludCxo ZWFwKSAqKnZlYykKLStzdGF0aWMgYm9vbAotK2NvbnRhaW5zIChjb25zdF9ydHggaW5zbiwgaHRh Yl90IGhhc2gpCi0gewotLSAgaW50IGksIGo7Ci0rICBpZiAoaGFzaCA9PSBOVUxMKQotKyAgICBy ZXR1cm4gZmFsc2U7Ci0gCi0tICBpZiAoTk9OSlVNUF9JTlNOX1AgKGluc24pCi0tICAgICAgJiYg R0VUX0NPREUgKFBBVFRFUk4gKGluc24pKSA9PSBTRVFVRU5DRSkKLSsgIGlmIChOT05KVU1QX0lO U05fUCAoaW5zbikgJiYgR0VUX0NPREUgKFBBVFRFUk4gKGluc24pKSA9PSBTRVFVRU5DRSkKLSAg ICAgewotLSAgICAgIGludCBjb3VudCA9IDA7Ci0rICAgICAgaW50IGk7Ci0gICAgICAgZm9yIChp ID0gWFZFQ0xFTiAoUEFUVEVSTiAoaW5zbiksIDApIC0gMTsgaSA+PSAwOyBpLS0pCi0tCWZvciAo aiA9IFZFQ19sZW5ndGggKGludCwgKnZlYykgLSAxOyBqID49IDA7IC0taikKLS0JICBpZiAoSU5T Tl9VSUQgKFhWRUNFWFAgKFBBVFRFUk4gKGluc24pLCAwLCBpKSkKLS0JICAgICAgPT0gVkVDX2lu ZGV4IChpbnQsICp2ZWMsIGopKQotLQkgICAgY291bnQrKzsKLS0gICAgICByZXR1cm4gY291bnQ7 Ci0rCWlmIChodGFiX2ZpbmQgKGhhc2gsIFhWRUNFWFAgKFBBVFRFUk4gKGluc24pLCAwLCBpKSkp Ci0rCSAgcmV0dXJuIHRydWU7Ci0rICAgICAgcmV0dXJuIGZhbHNlOwotICAgICB9Ci0tICBlbHNl Ci0tICAgIHsKLS0gICAgICBmb3IgKGogPSBWRUNfbGVuZ3RoIChpbnQsICp2ZWMpIC0gMTsgaiA+ PSAwOyAtLWopCi0tCWlmIChJTlNOX1VJRCAoaW5zbikgPT0gVkVDX2luZGV4IChpbnQsICp2ZWMs IGopKQotLQkgIHJldHVybiAxOwotLSAgICB9Ci0tICByZXR1cm4gMDsKLSsKLSsgIHJldHVybiBo dGFiX2ZpbmQgKGhhc2gsIGluc24pICE9IE5VTEw7Ci0gfQotIAotIGludAotIHByb2xvZ3VlX2Vw aWxvZ3VlX2NvbnRhaW5zIChjb25zdF9ydHggaW5zbikKLSB7Ci0tICBpZiAoY29udGFpbnMgKGlu c24sICZwcm9sb2d1ZSkpCi0rICBpZiAoY29udGFpbnMgKGluc24sIHByb2xvZ3VlX2luc25faGFz aCkpCi0gICAgIHJldHVybiAxOwotLSAgaWYgKGNvbnRhaW5zIChpbnNuLCAmZXBpbG9ndWUpKQot KyAgaWYgKGNvbnRhaW5zIChpbnNuLCBlcGlsb2d1ZV9pbnNuX2hhc2gpKQotICAgICByZXR1cm4g MTsKLSAgIHJldHVybiAwOwotIH0KLSAKLS1pbnQKLS1zaWJjYWxsX2VwaWxvZ3VlX2NvbnRhaW5z IChjb25zdF9ydHggaW5zbikKLS17Ci0tICBpZiAoc2liY2FsbF9lcGlsb2d1ZSkKLS0gICAgcmV0 dXJuIGNvbnRhaW5zIChpbnNuLCAmc2liY2FsbF9lcGlsb2d1ZSk7Ci0tICByZXR1cm4gMDsKLS19 Ci0tCi0gI2lmZGVmIEhBVkVfcmV0dXJuCi0gLyogSW5zZXJ0IGdlbl9yZXR1cm4gYXQgdGhlIGVu ZCBvZiBibG9jayBCQi4gIFRoaXMgYWxzbyBtZWFucyB1cGRhdGluZwotICAgIGJsb2NrX2Zvcl9p bnNuIGFwcHJvcHJpYXRlbHkuICAqLwotQEAgLTQ5ODcsNyArNDk4OSw3IEBAIHRocmVhZF9wcm9s b2d1ZV9hbmRfZXBpbG9ndWVfaW5zbnMgKHZvaWQKLSAJZW1pdF91c2UgKGhhcmRfZnJhbWVfcG9p bnRlcl9ydHgpOwotIAotICAgICAgIC8qIFJldGFpbiBhIG1hcCBvZiB0aGUgcHJvbG9ndWUgaW5z bnMuICAqLwotLSAgICAgIHJlY29yZF9pbnNucyAoc2VxLCAmcHJvbG9ndWUpOwotKyAgICAgIHJl Y29yZF9pbnNucyAoc2VxLCBOVUxMLCAmcHJvbG9ndWVfaW5zbl9oYXNoKTsKLSAgICAgICBlbWl0 X25vdGUgKE5PVEVfSU5TTl9QUk9MT0dVRV9FTkQpOwotICAKLSAjaWZuZGVmIFBST0ZJTEVfQkVG T1JFX1BST0xPR1VFCi1AQCAtNTExOSw2ICs1MTIxLDM4IEBAIHRocmVhZF9wcm9sb2d1ZV9hbmRf ZXBpbG9ndWVfaW5zbnMgKHZvaWQKLSAJfQotICAgICB9Ci0gI2VuZGlmCi0rCi0rICAvKiBBIHNt YWxsIGZpYiAtLSBlcGlsb2d1ZSBpcyBub3QgeWV0IGNvbXBsZXRlZCwgYnV0IHdlIHdpc2ggdG8g cmUtdXNlCi0rICAgICB0aGlzIG1hcmtlciBmb3IgdGhlIHNwbGl0cyBvZiBFSF9SRVRVUk4gcGF0 dGVybnMsIGFuZCBub3RoaW5nIGVsc2UKLSsgICAgIHVzZXMgdGhlIGZsYWcgaW4gdGhlIG1lYW50 aW1lLiAgKi8KLSsgIGVwaWxvZ3VlX2NvbXBsZXRlZCA9IDE7Ci0rCi0rI2lmZGVmIEhBVkVfZWhf cmV0dXJuCi0rICAvKiBGaW5kIG5vbi1mYWxsdGhydSBlZGdlcyB0aGF0IGVuZCB3aXRoIEVIX1JF VFVSTiBpbnN0cnVjdGlvbnMuICBPbgotKyAgICAgc29tZSB0YXJnZXRzLCB0aGVzZSBnZXQgc3Bs aXQgdG8gYSBzcGVjaWFsIHZlcnNpb24gb2YgdGhlIGVwaWxvZ3VlCi0rICAgICBjb2RlLiAgSW4g b3JkZXIgdG8gYmUgYWJsZSB0byBwcm9wZXJseSBhbm5vdGF0ZSB0aGVzZSB3aXRoIHVud2luZAot KyAgICAgaW5mbywgdHJ5IHRvIHNwbGl0IHRoZW0gbm93LiAgSWYgd2UgZ2V0IGEgdmFsaWQgc3Bs aXQsIGRyb3AgYW4KLSsgICAgIEVQSUxPR1VFX0JFRyBub3RlIGFuZCBtYXJrIHRoZSBpbnNucyBh cyBlcGlsb2d1ZSBpbnNucy4gICovCi0rICBGT1JfRUFDSF9FREdFIChlLCBlaSwgRVhJVF9CTE9D S19QVFItPnByZWRzKQotKyAgICB7Ci0rICAgICAgcnR4IHByZXYsIGxhc3QsIHRyaWFsOwotKwot KyAgICAgIGlmIChlLT5mbGFncyAmIEVER0VfRkFMTFRIUlUpCi0rCWNvbnRpbnVlOwotKyAgICAg IGxhc3QgPSBCQl9FTkQgKGUtPnNyYyk7Ci0rICAgICAgaWYgKCFlaF9yZXR1cm5qdW1wX3AgKGxh c3QpKQotKwljb250aW51ZTsKLSsKLSsgICAgICBwcmV2ID0gUFJFVl9JTlNOIChsYXN0KTsKLSsg ICAgICB0cmlhbCA9IHRyeV9zcGxpdCAoUEFUVEVSTiAobGFzdCksIGxhc3QsIDEpOwotKyAgICAg IGlmICh0cmlhbCA9PSBsYXN0KQotKwljb250aW51ZTsKLSsKLSsgICAgICByZWNvcmRfaW5zbnMg KE5FWFRfSU5TTiAocHJldiksIE5FWFRfSU5TTiAodHJpYWwpLCAmZXBpbG9ndWVfaW5zbl9oYXNo KTsKLSsgICAgICBlbWl0X25vdGVfYWZ0ZXIgKE5PVEVfSU5TTl9FUElMT0dVRV9CRUcsIHByZXYp OwotKyAgICB9Ci0rI2VuZGlmCi0rCi0gICAvKiBGaW5kIHRoZSBlZGdlIHRoYXQgZmFsbHMgdGhy b3VnaCB0byBFWElULiAgT3RoZXIgZWRnZXMgbWF5IGV4aXN0Ci0gICAgICBkdWUgdG8gUkVUVVJO IGluc3RydWN0aW9ucywgYnV0IHRob3NlIGRvbid0IG5lZWQgZXBpbG9ndWVzLgotICAgICAgVGhl cmUgcmVhbGx5IHNob3VsZG4ndCBiZSBhIG1peHR1cmUgLS0gZWl0aGVyIGFsbCBzaG91bGQgaGF2 ZQotQEAgLTUxMzksNyArNTE3Myw3IEBAIHRocmVhZF9wcm9sb2d1ZV9hbmRfZXBpbG9ndWVfaW5z bnMgKHZvaWQKLSAgICAgICBlbWl0X2p1bXBfaW5zbiAoc2VxKTsKLSAKLSAgICAgICAvKiBSZXRh aW4gYSBtYXAgb2YgdGhlIGVwaWxvZ3VlIGluc25zLiAgKi8KLS0gICAgICByZWNvcmRfaW5zbnMg KHNlcSwgJmVwaWxvZ3VlKTsKLSsgICAgICByZWNvcmRfaW5zbnMgKHNlcSwgTlVMTCwgJmVwaWxv Z3VlX2luc25faGFzaCk7Ci0gICAgICAgc2V0X2luc25fbG9jYXRvcnMgKHNlcSwgZXBpbG9ndWVf bG9jYXRvcik7Ci0gCi0gICAgICAgc2VxID0gZ2V0X2luc25zICgpOwotQEAgLTUyMDEsNiArNTIz NSw3IEBAIGVwaWxvZ3VlX2RvbmU6Ci0gCX0KLSAKLSAgICAgICBzdGFydF9zZXF1ZW5jZSAoKTsK LSsgICAgICBlbWl0X25vdGUgKE5PVEVfSU5TTl9FUElMT0dVRV9CRUcpOwotICAgICAgIGVtaXRf aW5zbiAoZ2VuX3NpYmNhbGxfZXBpbG9ndWUgKCkpOwotICAgICAgIHNlcSA9IGdldF9pbnNucyAo KTsKLSAgICAgICBlbmRfc2VxdWVuY2UgKCk7Ci1AQCAtNTIwOCw3ICs1MjQzLDcgQEAgZXBpbG9n dWVfZG9uZToKLSAgICAgICAvKiBSZXRhaW4gYSBtYXAgb2YgdGhlIGVwaWxvZ3VlIGluc25zLiAg VXNlZCBpbiBsaWZlIGFuYWx5c2lzIHRvCi0gCSBhdm9pZCBnZXR0aW5nIHJpZCBvZiBzaWJjYWxs IGVwaWxvZ3VlIGluc25zLiAgRG8gdGhpcyBiZWZvcmUgd2UKLSAJIGFjdHVhbGx5IGVtaXQgdGhl IHNlcXVlbmNlLiAgKi8KLS0gICAgICByZWNvcmRfaW5zbnMgKHNlcSwgJnNpYmNhbGxfZXBpbG9n dWUpOwotKyAgICAgIHJlY29yZF9pbnNucyAoc2VxLCBOVUxMLCAmZXBpbG9ndWVfaW5zbl9oYXNo KTsKLSAgICAgICBzZXRfaW5zbl9sb2NhdG9ycyAoc2VxLCBlcGlsb2d1ZV9sb2NhdG9yKTsKLSAK LSAgICAgICBlbWl0X2luc25fYmVmb3JlIChzZXEsIGluc24pOwotQEAgLTUyNDIsMjMgKzUyNzcs MjkgQEAgZXBpbG9ndWVfZG9uZToKLSAgIGRmX3VwZGF0ZV9lbnRyeV9leGl0X2FuZF9jYWxscyAo KTsKLSB9Ci0gCi0tLyogUmVwb3NpdGlvbiB0aGUgcHJvbG9ndWUtZW5kIGFuZCBlcGlsb2d1ZS1i ZWdpbiBub3RlcyBhZnRlciBpbnN0cnVjdGlvbgotLSAgIHNjaGVkdWxpbmcgYW5kIGRlbGF5ZWQg YnJhbmNoIHNjaGVkdWxpbmcuICAqLwotKy8qIFJlcG9zaXRpb24gdGhlIHByb2xvZ3VlLWVuZCBh bmQgZXBpbG9ndWUtYmVnaW4gbm90ZXMgYWZ0ZXIKLSsgICBpbnN0cnVjdGlvbiBzY2hlZHVsaW5n LiAgKi8KLSAKLSB2b2lkCi0gcmVwb3NpdGlvbl9wcm9sb2d1ZV9hbmRfZXBpbG9ndWVfbm90ZXMg KHZvaWQpCi0gewotLSNpZiBkZWZpbmVkIChIQVZFX3Byb2xvZ3VlKSB8fCBkZWZpbmVkIChIQVZF X2VwaWxvZ3VlKQotKyNpZiBkZWZpbmVkIChIQVZFX3Byb2xvZ3VlKSB8fCBkZWZpbmVkIChIQVZF X2VwaWxvZ3VlKSBcCi0rICAgIHx8IGRlZmluZWQgKEhBVkVfc2liY2FsbF9lcGlsb2d1ZSkKLSAg IHJ0eCBpbnNuLCBsYXN0LCBub3RlOwotLSAgaW50IGxlbjsKLSsgIGJhc2ljX2Jsb2NrIGJiOwot IAotLSAgaWYgKChsZW4gPSBWRUNfbGVuZ3RoIChpbnQsIHByb2xvZ3VlKSkgPiAwKQotKyAgLyog U2luY2UgdGhlIGhhc2ggdGFibGUgaXMgY3JlYXRlZCBvbiBkZW1hbmQsIHRoZSBmYWN0IHRoYXQg aXQgaXMKLSsgICAgIG5vbi1udWxsIGlzIGEgc2lnbmFsIHRoYXQgaXQgaXMgbm9uLWVtcHR5LiAg Ki8KLSsgIGlmIChwcm9sb2d1ZV9pbnNuX2hhc2ggIT0gTlVMTCkKLSAgICAgewotKyAgICAgIHNp emVfdCBsZW4gPSBodGFiX2VsZW1lbnRzIChwcm9sb2d1ZV9pbnNuX2hhc2gpOwotICAgICAgIGxh c3QgPSAwLCBub3RlID0gMDsKLSAKLS0gICAgICAvKiBTY2FuIGZyb20gdGhlIGJlZ2lubmluZyB1 bnRpbCB3ZSByZWFjaCB0aGUgbGFzdCBwcm9sb2d1ZSBpbnNuLgotLQkgV2UgYXBwYXJlbnRseSBj YW4ndCBkZXBlbmQgb24gYmFzaWNfYmxvY2tfe2hlYWQsZW5kfSBhZnRlcgotLQkgcmVvcmcgaGFz IHJ1bi4gICovCi0rICAgICAgLyogU2NhbiBmcm9tIHRoZSBiZWdpbm5pbmcgdW50aWwgd2UgcmVh Y2ggdGhlIGxhc3QgcHJvbG9ndWUgaW5zbi4gICovCi0rICAgICAgLyogPz8/IFdoaWxlIHdlIGRv IGhhdmUgdGhlIENGRyBpbnRhY3QsIHRoZXJlIGFyZSB0d28gcHJvYmxlbXM6Ci0rCSAoMSkgVGhl IHByb2xvZ3VlIGNhbiBjb250YWluIGxvb3BzICh0eXBpY2FsbHkgcHJvYmluZyB0aGUgc3RhY2sp LAotKwkgICAgIHdoaWNoIG1lYW5zIHRoYXQgdGhlIGVuZCBvZiB0aGUgcHJvbG9ndWUgaXNuJ3Qg aW4gdGhlIGZpcnN0IGJiLgotKwkgKDIpIFNvbWV0aW1lcyB0aGUgUFJPTE9HVUVfRU5EIG5vdGUg Z2V0cyBwdXNoZWQgaW50byB0aGUgbmV4dCBiYi4gICovCi0gICAgICAgZm9yIChpbnNuID0gZ2V0 X2luc25zICgpOyBpbnNuOyBpbnNuID0gTkVYVF9JTlNOIChpbnNuKSkKLSAJewotIAkgIGlmIChO T1RFX1AgKGluc24pKQotQEAgLTUyNjYsNyArNTMwNyw3IEBAIHJlcG9zaXRpb25fcHJvbG9ndWVf YW5kX2VwaWxvZ3VlX25vdGVzICgKLSAJICAgICAgaWYgKE5PVEVfS0lORCAoaW5zbikgPT0gTk9U RV9JTlNOX1BST0xPR1VFX0VORCkKLSAJCW5vdGUgPSBpbnNuOwotIAkgICAgfQotLQkgIGVsc2Ug aWYgKGNvbnRhaW5zIChpbnNuLCAmcHJvbG9ndWUpKQotKwkgIGVsc2UgaWYgKGNvbnRhaW5zIChp bnNuLCBwcm9sb2d1ZV9pbnNuX2hhc2gpKQotIAkgICAgewotIAkgICAgICBsYXN0ID0gaW5zbjsK LSAJICAgICAgaWYgKC0tbGVuID09IDApCi1AQCAtNTI3NiwxNCArNTMxNywxNyBAQCByZXBvc2l0 aW9uX3Byb2xvZ3VlX2FuZF9lcGlsb2d1ZV9ub3RlcyAoCi0gCi0gICAgICAgaWYgKGxhc3QpCi0g CXsKLS0JICAvKiBGaW5kIHRoZSBwcm9sb2d1ZS1lbmQgbm90ZSBpZiB3ZSBoYXZlbid0IGFscmVh ZHksIGFuZAotLQkgICAgIG1vdmUgaXQgdG8ganVzdCBhZnRlciB0aGUgbGFzdCBwcm9sb2d1ZSBp bnNuLiAgKi8KLS0JICBpZiAobm90ZSA9PSAwKQotKwkgIGlmIChub3RlID09IE5VTEwpCi0gCSAg ICB7Ci0tCSAgICAgIGZvciAobm90ZSA9IGxhc3Q7IChub3RlID0gTkVYVF9JTlNOIChub3RlKSk7 KQotLQkJaWYgKE5PVEVfUCAobm90ZSkKLS0JCSAgICAmJiBOT1RFX0tJTkQgKG5vdGUpID09IE5P VEVfSU5TTl9QUk9MT0dVRV9FTkQpCi0tCQkgIGJyZWFrOwotKwkgICAgICAvKiBTY2FuIGZvcndh cmQgbG9va2luZyBmb3IgdGhlIFBST0xPR1VFX0VORCBub3RlLiAgSXQgc2hvdWxkCi0rCQkgYmUg cmlnaHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYmxvY2ssIHBvc3NpYmx5IHdpdGggb3RoZXIK LSsJCSBpbnNuIG5vdGVzIHRoYXQgZ290IG1vdmVkIHRoZXJlLiAgKi8KLSsJICAgICAgZm9yIChu b3RlID0gTkVYVF9JTlNOIChsYXN0KTsgOyBub3RlID0gTkVYVF9JTlNOIChub3RlKSkKLSsJCXsK LSsJCSAgaWYgKE5PVEVfUCAobm90ZSkKLSsJCSAgICAgICYmIE5PVEVfS0lORCAobm90ZSkgPT0g Tk9URV9JTlNOX1BST0xPR1VFX0VORCkKLSsJCSAgICBicmVhazsKLSsJCX0KLSAJICAgIH0KLSAK LSAJICAvKiBBdm9pZCBwbGFjaW5nIG5vdGUgYmV0d2VlbiBDT0RFX0xBQkVMIGFuZCBCQVNJQ19C TE9DSyBub3RlLiAgKi8KLUBAIC01MjkzLDQxICs1MzM3LDM5IEBAIHJlcG9zaXRpb25fcHJvbG9n dWVfYW5kX2VwaWxvZ3VlX25vdGVzICgKLSAJfQotICAgICB9Ci0gCi0tICBpZiAoKGxlbiA9IFZF Q19sZW5ndGggKGludCwgZXBpbG9ndWUpKSA+IDApCi0rICBpZiAoZXBpbG9ndWVfaW5zbl9oYXNo ICE9IE5VTEwpCi0gICAgIHsKLS0gICAgICBsYXN0ID0gMCwgbm90ZSA9IDA7Ci0rICAgICAgZWRn ZV9pdGVyYXRvciBlaTsKLSsgICAgICBlZGdlIGU7Ci0gCi0tICAgICAgLyogU2NhbiBmcm9tIHRo ZSBlbmQgdW50aWwgd2UgcmVhY2ggdGhlIGZpcnN0IGVwaWxvZ3VlIGluc24uCi0tCSBXZSBhcHBh cmVudGx5IGNhbid0IGRlcGVuZCBvbiBiYXNpY19ibG9ja197aGVhZCxlbmR9IGFmdGVyCi0tCSBy ZW9yZyBoYXMgcnVuLiAgKi8KLS0gICAgICBmb3IgKGluc24gPSBnZXRfbGFzdF9pbnNuICgpOyBp bnNuOyBpbnNuID0gUFJFVl9JTlNOIChpbnNuKSkKLSsgICAgICBGT1JfRUFDSF9FREdFIChlLCBl aSwgRVhJVF9CTE9DS19QVFItPnByZWRzKQotIAl7Ci0tCSAgaWYgKE5PVEVfUCAoaW5zbikpCi0t CSAgICB7Ci0tCSAgICAgIGlmIChOT1RFX0tJTkQgKGluc24pID09IE5PVEVfSU5TTl9FUElMT0dV RV9CRUcpCi0tCQlub3RlID0gaW5zbjsKLS0JICAgIH0KLS0JICBlbHNlIGlmIChjb250YWlucyAo aW5zbiwgJmVwaWxvZ3VlKSkKLS0JICAgIHsKLS0JICAgICAgbGFzdCA9IGluc247Ci0tCSAgICAg IGlmICgtLWxlbiA9PSAwKQotLQkJYnJlYWs7Ci0tCSAgICB9Ci0tCX0KLSsJICBsYXN0ID0gMCwg bm90ZSA9IDA7Ci0rCSAgYmIgPSBlLT5zcmM7Ci0gCi0tICAgICAgaWYgKGxhc3QpCi0tCXsKLS0J ICAvKiBGaW5kIHRoZSBlcGlsb2d1ZS1iZWdpbiBub3RlIGlmIHdlIGhhdmVuJ3QgYWxyZWFkeSwg YW5kCi0tCSAgICAgbW92ZSBpdCB0byBqdXN0IGJlZm9yZSB0aGUgZmlyc3QgZXBpbG9ndWUgaW5z bi4gICovCi0tCSAgaWYgKG5vdGUgPT0gMCkKLSsJICAvKiBTY2FuIGZyb20gdGhlIGJlZ2lubmlu ZyB1bnRpbCB3ZSByZWFjaCB0aGUgZmlyc3QgZXBpbG9ndWUgaW5zbi4KLSsJICAgICBUYWtlIHRo ZSBjdWUgZm9yIHdoZXRoZXIgdGhpcyBpcyBhIHBsYWluIG9yIHNpYmNhbGwgZXBpbG9ndWUKLSsJ ICAgICBmcm9tIHRoZSBraW5kIG9mIG5vdGUgd2UgZmluZCBmaXJzdC4gICovCi0rCSAgRk9SX0JC X0lOU05TIChiYiwgaW5zbikKLSAJICAgIHsKLS0JICAgICAgZm9yIChub3RlID0gaW5zbjsgKG5v dGUgPSBQUkVWX0lOU04gKG5vdGUpKTspCi0tCQlpZiAoTk9URV9QIChub3RlKQotLQkJICAgICYm IE5PVEVfS0lORCAobm90ZSkgPT0gTk9URV9JTlNOX0VQSUxPR1VFX0JFRykKLS0JCSAgYnJlYWs7 Ci0rCSAgICAgIGlmIChOT1RFX1AgKGluc24pKQotKwkJewotKwkJICBpZiAoTk9URV9LSU5EIChp bnNuKSA9PSBOT1RFX0lOU05fRVBJTE9HVUVfQkVHKQotKwkJICAgIHsKLSsJCSAgICAgIG5vdGUg PSBpbnNuOwotKwkJICAgICAgaWYgKGxhc3QpCi0rCQkJYnJlYWs7Ci0rCQkgICAgfQotKwkJfQot KwkgICAgICBlbHNlIGlmIChjb250YWlucyAoaW5zbiwgZXBpbG9ndWVfaW5zbl9oYXNoKSkKLSsJ CXsKLSsJCSAgbGFzdCA9IGluc247Ci0rCQkgIGlmIChub3RlICE9IE5VTEwpCi0rCQkgICAgYnJl YWs7Ci0rCQl9Ci0gCSAgICB9Ci0tCi0tCSAgaWYgKFBSRVZfSU5TTiAobGFzdCkgIT0gbm90ZSkK LSsJICAgICAKLSsJICBpZiAobGFzdCAmJiBub3RlICYmIFBSRVZfSU5TTiAobGFzdCkgIT0gbm90 ZSkKLSAJICAgIHJlb3JkZXJfaW5zbnMgKG5vdGUsIG5vdGUsIFBSRVZfSU5TTiAobGFzdCkpOwot IAl9Ci0gICAgIH0KLS0tLSBnY2MvZW1pdC1ydGwuYy5qagkyMDA5LTAzLTA0IDEyOjExOjM3LjAw MDAwMDAwMCArMDEwMAotKysrIGdjYy9lbWl0LXJ0bC5jCTIwMDktMDYtMDkgMDg6NTg6MDQuMDAw MDAwMDAwICswMjAwCi1AQCAtMzM0Myw2ICszMzQzLDEwIEBAIHRyeV9zcGxpdCAocnR4IHBhdCwg cnR4IHRyaWFsLCBpbnQgbGFzdCkKLSAgIHJ0eCBpbnNuX2xhc3QsIGluc247Ci0gICBpbnQgbmp1 bXBzID0gMDsKLSAKLSsgIC8qIFdlJ3JlIG5vdCBnb29kIGF0IHJlZGlzdHJpYnV0aW5nIGZyYW1l IGluZm9ybWF0aW9uLiAgKi8KLSsgIGlmIChSVFhfRlJBTUVfUkVMQVRFRF9QICh0cmlhbCkpCi0r ICAgIHJldHVybiB0cmlhbDsKLSsKLSAgIGlmIChhbnlfY29uZGp1bXBfcCAodHJpYWwpCi0gICAg ICAgJiYgKG5vdGUgPSBmaW5kX3JlZ19ub3RlICh0cmlhbCwgUkVHX0JSX1BST0IsIDApKSkKLSAg ICAgc3BsaXRfYnJhbmNoX3Byb2JhYmlsaXR5ID0gSU5UVkFMIChYRVhQIChub3RlLCAwKSk7Ci1A QCAtNTA1OCw2ICs1MDYyLDkgQEAgY29weV9pbnNuXzEgKHJ0eCBvcmlnKQotICAgUlRYX0NPREUg Y29kZTsKLSAgIGNvbnN0IGNoYXIgKmZvcm1hdF9wdHI7Ci0gCi0rICBpZiAob3JpZyA9PSBOVUxM KQotKyAgICByZXR1cm4gTlVMTDsKLSsKLSAgIGNvZGUgPSBHRVRfQ09ERSAob3JpZyk7Ci0gCi0g ICBzd2l0Y2ggKGNvZGUpCi0tLS0gZ2NjL2R3YXJmMm91dC5oLmpqCTIwMDktMDEtMTQgMTI6MDY6 MjkuMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL2R3YXJmMm91dC5oCTIwMDktMDYtMDkgMDg6NTg6 MDQuMDAwMDAwMDAwICswMjAwCi1AQCAtMjAsNiArMjAsOCBAQCBhbG9uZyB3aXRoIEdDQzsgc2Vl IHRoZSBmaWxlIENPUFlJTkczLiAgCi0gCi0gZXh0ZXJuIHZvaWQgZHdhcmYyb3V0X2RlY2wgKHRy ZWUpOwotIGV4dGVybiB2b2lkIGR3YXJmMm91dF9mcmFtZV9kZWJ1ZyAocnR4LCBib29sKTsKLStl eHRlcm4gdm9pZCBkd2FyZjJvdXRfYmVnaW5fZXBpbG9ndWUgKHJ0eCk7Ci0rZXh0ZXJuIHZvaWQg ZHdhcmYyb3V0X2ZyYW1lX2RlYnVnX3Jlc3RvcmVfc3RhdGUgKHZvaWQpOwotIAotIGV4dGVybiB2 b2lkIGRlYnVnX2R3YXJmICh2b2lkKTsKLSBzdHJ1Y3QgZGllX3N0cnVjdDsKLS0tLSBnY2MvZmlu YWwuYy5qagkyMDA5LTAxLTE0IDEyOjA2OjI5LjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy9maW5h bC5jCTIwMDktMDYtMDkgMDg6NTg6MDQuMDAwMDAwMDAwICswMjAwCi1AQCAtMTg2OSw5ICsxODY5 LDE5IEBAIGZpbmFsX3NjYW5faW5zbiAocnR4IGluc24sIEZJTEUgKmZpbGUsIGkKLSAJICBicmVh azsKLSAKLSAJY2FzZSBOT1RFX0lOU05fRVBJTE9HVUVfQkVHOgotKyNpZiBkZWZpbmVkIChEV0FS RjJfVU5XSU5EX0lORk8pICYmIGRlZmluZWQgKEhBVkVfZXBpbG9ndWUpCi0rCSAgaWYgKGR3YXJm Mm91dF9kb19mcmFtZSAoKSkKLSsJICAgIGR3YXJmMm91dF9iZWdpbl9lcGlsb2d1ZSAoaW5zbik7 Ci0rI2VuZGlmCi0gCSAgdGFyZ2V0bS5hc21fb3V0LmZ1bmN0aW9uX2JlZ2luX2VwaWxvZ3VlIChm aWxlKTsKLSAJICBicmVhazsKLSAKLSsJY2FzZSBOT1RFX0lOU05fQ0ZBX1JFU1RPUkVfU1RBVEU6 Ci0rI2lmIGRlZmluZWQgKERXQVJGMl9VTldJTkRfSU5GTykKLSsJICBkd2FyZjJvdXRfZnJhbWVf ZGVidWdfcmVzdG9yZV9zdGF0ZSAoKTsKLSsjZW5kaWYKLSsJICBicmVhazsKLSsKLSAJY2FzZSBO T1RFX0lOU05fRlVOQ1RJT05fQkVHOgotIAkgIGFwcF9kaXNhYmxlICgpOwotIAkgICgqZGVidWdf aG9va3MtPmVuZF9wcm9sb2d1ZSkgKGxhc3RfbGluZW51bSwgbGFzdF9maWxlbmFtZSk7Ci0tLS0g Z2NjL2p1bXAuYy5qagkyMDA5LTAzLTA0IDEyOjEwOjIyLjAwMDAwMDAwMCArMDEwMAotKysrIGdj Yy9qdW1wLmMJMjAwOS0wNi0wOSAwOToyMDo1MC4wMDAwMDAwMDAgKzAyMDAKLUBAIC04NjksMTgg Kzg2OSw1NCBAQCByZXR1cm5qdW1wX3BfMSAocnR4ICpsb2MsIHZvaWQgKmRhdGEgQVRUCi0gewot ICAgcnR4IHggPSAqbG9jOwotIAotLSAgcmV0dXJuIHggJiYgKEdFVF9DT0RFICh4KSA9PSBSRVRV Uk4KLS0JICAgICAgIHx8IChHRVRfQ09ERSAoeCkgPT0gU0VUICYmIFNFVF9JU19SRVRVUk5fUCAo eCkpKTsKLSsgIGlmICh4ID09IE5VTEwpCi0rICAgIHJldHVybiBmYWxzZTsKLSsKLSsgIHN3aXRj aCAoR0VUX0NPREUgKHgpKQotKyAgICB7Ci0rICAgIGNhc2UgUkVUVVJOOgotKyAgICBjYXNlIEVI X1JFVFVSTjoKLSsgICAgICByZXR1cm4gdHJ1ZTsKLSsKLSsgICAgY2FzZSBTRVQ6Ci0rICAgICAg cmV0dXJuIFNFVF9JU19SRVRVUk5fUCAoeCk7Ci0rCi0rICAgIGRlZmF1bHQ6Ci0rICAgICAgcmV0 dXJuIGZhbHNlOwotKyAgICB9Ci0gfQotIAotKy8qIFJldHVybiBUUlVFIGlmIElOU04gaXMgYSBy ZXR1cm4ganVtcC4gICovCi0rCi0gaW50Ci0gcmV0dXJuanVtcF9wIChydHggaW5zbikKLSB7Ci0r ICAvKiBIYW5kbGUgZGVsYXllZCBicmFuY2hlcy4gICovCi0rICBpZiAoTk9OSlVNUF9JTlNOX1Ag KGluc24pICYmIEdFVF9DT0RFIChQQVRURVJOIChpbnNuKSkgPT0gU0VRVUVOQ0UpCi0rICAgIGlu c24gPSBYVkVDRVhQIChQQVRURVJOIChpbnNuKSwgMCwgMCk7Ci0rCi0gICBpZiAoIUpVTVBfUCAo aW5zbikpCi0gICAgIHJldHVybiAwOwotKwotICAgcmV0dXJuIGZvcl9lYWNoX3J0eCAoJlBBVFRF Uk4gKGluc24pLCByZXR1cm5qdW1wX3BfMSwgTlVMTCk7Ci0gfQotIAotKy8qIFJldHVybiB0cnVl IGlmIElOU04gaXMgYSAocG9zc2libHkgY29uZGl0aW9uYWwpIHJldHVybiBpbnNuLiAgKi8KLSsK LStzdGF0aWMgaW50Ci0rZWhfcmV0dXJuanVtcF9wXzEgKHJ0eCAqbG9jLCB2b2lkICpkYXRhIEFU VFJJQlVURV9VTlVTRUQpCi0rewotKyAgcmV0dXJuICpsb2MgJiYgR0VUX0NPREUgKCpsb2MpID09 IEVIX1JFVFVSTjsKLSt9Ci0rCi0raW50Ci0rZWhfcmV0dXJuanVtcF9wIChydHggaW5zbikKLSt7 Ci0rICBpZiAoIUpVTVBfUCAoaW5zbikpCi0rICAgIHJldHVybiAwOwotKyAgcmV0dXJuIGZvcl9l YWNoX3J0eCAoJlBBVFRFUk4gKGluc24pLCBlaF9yZXR1cm5qdW1wX3BfMSwgTlVMTCk7Ci0rfQot KwotIC8qIFJldHVybiB0cnVlIGlmIElOU04gaXMgYSBqdW1wIHRoYXQgb25seSB0cmFuc2ZlcnMg Y29udHJvbCBhbmQKLSAgICBub3RoaW5nIG1vcmUuICAqLwotIAotLS0tIGdjYy9yZWNvZy5jLmpq CTIwMDktMDMtMTAgMTE6MDY6MTAuMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL3JlY29nLmMJMjAw OS0wNi0wOSAwOTowODoyMS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0zMDI2LDYgKzMwMjYsMjYgQEAg cGVlcDJfZmluZF9mcmVlX3JlZ2lzdGVyIChpbnQgZnJvbSwgaW50IAotICAgcmV0dXJuIE5VTExf UlRYOwotIH0KLSAKLSsvKiBGb3JnZXQgYWxsIGN1cnJlbnRseSB0cmFja2VkIGluc3RydWN0aW9u cywgb25seSByZW1lbWJlciBjdXJyZW50Ci0rICAgTElWRSByZWdzZXQuICAqLwotKwotK3N0YXRp YyB2b2lkCi0rcGVlcDJfcmVpbml0X3N0YXRlIChyZWdzZXQgbGl2ZSkKLSt7Ci0rICBpbnQgaTsK LSsKLSsgIC8qIEluZGljYXRlIHRoYXQgYWxsIHNsb3RzIGV4Y2VwdCB0aGUgbGFzdCBob2xkcyBp bnZhbGlkIGRhdGEuICAqLwotKyAgZm9yIChpID0gMDsgaSA8IE1BWF9JTlNOU19QRVJfUEVFUDI7 ICsraSkKLSsgICAgcGVlcDJfaW5zbl9kYXRhW2ldLmluc24gPSBOVUxMX1JUWDsKLSsgIHBlZXAy X2N1cnJlbnRfY291bnQgPSAwOwotKwotKyAgLyogSW5kaWNhdGUgdGhhdCB0aGUgbGFzdCBzbG90 IGNvbnRhaW5zIGxpdmVfYWZ0ZXIgZGF0YS4gICovCi0rICBwZWVwMl9pbnNuX2RhdGFbTUFYX0lO U05TX1BFUl9QRUVQMl0uaW5zbiA9IFBFRVAyX0VPQjsKLSsgIHBlZXAyX2N1cnJlbnQgPSBNQVhf SU5TTlNfUEVSX1BFRVAyOwotKwotKyAgQ09QWV9SRUdfU0VUIChwZWVwMl9pbnNuX2RhdGFbTUFY X0lOU05TX1BFUl9QRUVQMl0ubGl2ZV9iZWZvcmUsIGxpdmUpOwotK30KLSsKLSAvKiBQZXJmb3Jt IHRoZSBwZWVwaG9sZTIgb3B0aW1pemF0aW9uIHBhc3MuICAqLwotIAotIHN0YXRpYyB2b2lkCi1A QCAtMzA0OSwxOSArMzA2OSwxMSBAQCBwZWVwaG9sZTJfb3B0aW1pemUgKHZvaWQpCi0gICBGT1Jf RUFDSF9CQl9SRVZFUlNFIChiYikKLSAgICAgewotICAgICAgIHJ0bF9wcm9maWxlX2Zvcl9iYiAo YmIpOwotLSAgICAgIC8qIEluZGljYXRlIHRoYXQgYWxsIHNsb3RzIGV4Y2VwdCB0aGUgbGFzdCBo b2xkcyBpbnZhbGlkIGRhdGEuICAqLwotLSAgICAgIGZvciAoaSA9IDA7IGkgPCBNQVhfSU5TTlNf UEVSX1BFRVAyOyArK2kpCi0tCXBlZXAyX2luc25fZGF0YVtpXS5pbnNuID0gTlVMTF9SVFg7Ci0t ICAgICAgcGVlcDJfY3VycmVudF9jb3VudCA9IDA7Ci0tCi0tICAgICAgLyogSW5kaWNhdGUgdGhh dCB0aGUgbGFzdCBzbG90IGNvbnRhaW5zIGxpdmVfYWZ0ZXIgZGF0YS4gICovCi0tICAgICAgcGVl cDJfaW5zbl9kYXRhW01BWF9JTlNOU19QRVJfUEVFUDJdLmluc24gPSBQRUVQMl9FT0I7Ci0tICAg ICAgcGVlcDJfY3VycmVudCA9IE1BWF9JTlNOU19QRVJfUEVFUDI7Ci0gCi0gICAgICAgLyogU3Rh cnQgdXAgcHJvcGFnYXRpb24uICAqLwotICAgICAgIGJpdG1hcF9jb3B5IChsaXZlLCBERl9MUl9P VVQgKGJiKSk7Ci0gICAgICAgZGZfc2ltdWxhdGVfaW5pdGlhbGl6ZV9iYWNrd2FyZHMgKGJiLCBs aXZlKTsKLS0gICAgICBiaXRtYXBfY29weSAocGVlcDJfaW5zbl9kYXRhW01BWF9JTlNOU19QRVJf UEVFUDJdLmxpdmVfYmVmb3JlLCBsaXZlKTsKLSsgICAgICBwZWVwMl9yZWluaXRfc3RhdGUgKGxp dmUpOwotIAotICAgICAgIGZvciAoaW5zbiA9IEJCX0VORCAoYmIpOyA7IGluc24gPSBwcmV2KQot IAl7Ci1AQCAtMzA4OCw3ICszMTAwLDcgQEAgcGVlcGhvbGUyX29wdGltaXplICh2b2lkKQotIAkJ ICAvKiBJZiBhbiBpbnNuIGhhcyBSVFhfRlJBTUVfUkVMQVRFRF9QIHNldCwgcGVlcGhvbGUKLSAJ CSAgICAgc3Vic3RpdHV0aW9uIHdvdWxkIGxvc2UgdGhlCi0gCQkgICAgIFJFR19GUkFNRV9SRUxB VEVEX0VYUFIgdGhhdCBpcyBhdHRhY2hlZC4gICovCi0tCQkgIHBlZXAyX2N1cnJlbnRfY291bnQg PSAwOwotKwkJICBwZWVwMl9yZWluaXRfc3RhdGUgKGxpdmUpOwotIAkJICBhdHRlbXB0ID0gTlVM TDsKLSAJCX0KLSAJICAgICAgZWxzZQotLS0tIGdjYy9ydGwuaC5qagkyMDA5LTA0LTI3IDEzOjU3 OjExLjAwMDAwMDAwMCArMDIwMAotKysrIGdjYy9ydGwuaAkyMDA5LTA2LTA5IDA4OjU4OjA0LjAw MDAwMDAwMCArMDIwMAotQEAgLTIwNzIsNiArMjA3Miw3IEBAIGV4dGVybiBydHggcGNfc2V0IChj b25zdF9ydHgpOwotIGV4dGVybiBydHggY29uZGp1bXBfbGFiZWwgKGNvbnN0X3J0eCk7Ci0gZXh0 ZXJuIGludCBzaW1wbGVqdW1wX3AgKGNvbnN0X3J0eCk7Ci0gZXh0ZXJuIGludCByZXR1cm5qdW1w X3AgKHJ0eCk7Ci0rZXh0ZXJuIGludCBlaF9yZXR1cm5qdW1wX3AgKHJ0eCk7Ci0gZXh0ZXJuIGlu dCBvbmx5anVtcF9wIChjb25zdF9ydHgpOwotIGV4dGVybiBpbnQgb25seV9zZXRzX2NjMF9wIChj b25zdF9ydHgpOwotIGV4dGVybiBpbnQgc2V0c19jYzBfcCAoY29uc3RfcnR4KTsKLUBAIC0yMTg1 LDYgKzIxODYsNyBAQCBleHRlcm4gaW50IHByb2xvZ3VlX2VwaWxvZ3VlX2NvbnRhaW5zIChjCi0g ZXh0ZXJuIGludCBzaWJjYWxsX2VwaWxvZ3VlX2NvbnRhaW5zIChjb25zdF9ydHgpOwotIGV4dGVy biB2b2lkIG1hcmtfdGVtcF9hZGRyX3Rha2VuIChydHgpOwotIGV4dGVybiB2b2lkIHVwZGF0ZV90 ZW1wX3Nsb3RfYWRkcmVzcyAocnR4LCBydHgpOwotK2V4dGVybiB2b2lkIG1heWJlX2NvcHlfZXBp bG9ndWVfaW5zbiAocnR4LCBydHgpOwotIAotIC8qIEluIHN0bXQuYyAqLwotIGV4dGVybiB2b2lk IGV4cGFuZF9udWxsX3JldHVybiAodm9pZCk7Ci0tLS0gZ2NjL2NmZ3J0bC5jLmpqCTIwMDktMDYt MDkgMDg6MTY6MTAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2NjL2NmZ3J0bC5jCTIwMDktMDYtMDkg MDg6NTg6MDUuMDAwMDAwMDAwICswMjAwCi1AQCAtODcsOCArODcsMTYgQEAgc3RhdGljIHZvaWQg cnRsX21ha2VfZm9yd2FyZGVyX2Jsb2NrIChlZAotIHN0YXRpYyBpbnQKLSBjYW5fZGVsZXRlX25v dGVfcCAoY29uc3RfcnR4IG5vdGUpCi0gewotLSAgcmV0dXJuIChOT1RFX0tJTkQgKG5vdGUpID09 IE5PVEVfSU5TTl9ERUxFVEVECi0tCSAgfHwgTk9URV9LSU5EIChub3RlKSA9PSBOT1RFX0lOU05f QkFTSUNfQkxPQ0spOwotKyAgc3dpdGNoIChOT1RFX0tJTkQgKG5vdGUpKQotKyAgICB7Ci0rICAg IGNhc2UgTk9URV9JTlNOX0RFTEVURUQ6Ci0rICAgIGNhc2UgTk9URV9JTlNOX0JBU0lDX0JMT0NL OgotKyAgICBjYXNlIE5PVEVfSU5TTl9FUElMT0dVRV9CRUc6Ci0rICAgICAgcmV0dXJuIHRydWU7 Ci0rCi0rICAgIGRlZmF1bHQ6Ci0rICAgICAgcmV0dXJuIGZhbHNlOwotKyAgICB9Ci0gfQotIAot IC8qIFRydWUgaWYgYSBnaXZlbiBsYWJlbCBjYW4gYmUgZGVsZXRlZC4gICovCgpkaWZmIC0tZ2l0 IGEvZ2NjNDQtaXg4Ni1pbnNuLWxlbmd0aC5wYXRjaCBiL2djYzQ0LWl4ODYtaW5zbi1sZW5ndGgu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2NDkwYzguLjAwMDAwMDAKLS0t IGEvZ2NjNDQtaXg4Ni1pbnNuLWxlbmd0aC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQ5Mzcg KzAsMCBAQAotMjAwOS0wNS0yOSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0K LQkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9kZWNvbXBvc2VfYWRkcmVzcyk6IEF2b2lkIHVz ZWxlc3MKLQkwIGRpc3BsYWNlbWVudC4gIEFkZCAwIGRpc3BsYWNlbWVudCBpZiBiYXNlIGlzICVb ZXJdYnAgb3IgJXIxMy4KLQotCSogY29uZmlnL2kzODYvaTM4Ni5tZCAocHJlZml4X2RhdGExNiwg cHJlZml4X3JlcCk6IFNldCB0byAwIGZvcgotCVRZUEVfU1NFe01VTEFERCw0QVJHLElBREQxLENW VDF9IGJ5IGRlZmF1bHQuCi0JKHByZWZpeF9yZXgpOiBGb3IgVU5JVF9NTVggZG9uJ3QgaW1wbHkg dGhlIHByZWZpeCBieSBkZWZhdWx0Ci0JaWYgTU9ERV9ESS4KLQkocHJlZml4X2V4dHJhKTogRGVm YXVsdCB0byAyIGZvciBUWVBFX1NTRXtNVUxBREQsNEFSR30gYW5kCi0JdG8gMSBmb3IgVFlQRV9T U0V7SUFERDEsQ1ZUMX0uCi0JKHByZWZpeF92ZXhfaW1tOCk6IFJlbW92ZWQuCi0JKGxlbmd0aF92 ZXgpOiBPbmx5IHBhc3MgMSBhcyBzZWNvbmQgYXJndW1lbnQgdG8KLQlpeDg2X2F0dHJfbGVuZ3Ro X3ZleF9kZWZhdWx0IGlmIHByZWZpeF9leHRyYSBpcyAwLgotCShtb2RybSk6IEZvciBUWVBFX0lO Q0RFQyBvbmx5IHNldCB0byAwIGlmIG5vdCBUQVJHRVRfNjRCSVQuCi0JKGxlbmd0aCk6IEZvciBw cmVmaXggdmV4IGNvbXB1dGF0aW9uIHVzZSBsZW5ndGhfaW1tZWRpYXRlCi0JYXR0cmlidXRlIGlu c3RlYWQgb2YgcHJlZml4X3ZleF9pbW04LgotCShjbXBxaV9leHRfM19pbnNuLCBjbXBxaV9leHRf M19pbnNuX3JleDY0LAotCWFkZHFpX2V4dF8xLCBhZGRxaV9leHRfMV9yZXg2NCwgKnRlc3RxaV9l eHRfMCwgYW5kcWlfZXh0XzAsCi0JKmFuZHFpX2V4dF8wX2NjLCAqaW9ycWlfZXh0XzAsICp4b3Jx aV9leHRfMCwgKnhvcnFpX2NjX2V4dF8xLAotCSp4b3JxaV9jY19leHRfMV9yZXg2NCk6IE92ZXJy aWRlIG1vZHJtIGF0dHJpYnV0ZSB0byAxLgotCShleHRlbmRzaWRpMl9yZXg2NCwgZXh0ZW5kaGlk aTIsIGV4dGVuZHFpZGkyLCBleHRlbmRoaXNpMiwKLQkqZXh0ZW5kaGlzaTJfemV4dCwgZXh0ZW5k cWloaTIsIGV4dGVuZHFpc2kyLCAqZXh0ZW5kcWlzaTJfemV4dCk6IEVtaXQKLQlhIHNwYWNlIGlu IGJldHdlZW4gdGhlIG9wZXJhbmRzLgotCSgqYW5kZGlfMV9yZXg2NCwgKmFuZHNpXzEpOiBMaWtl d2lzZS4gIE92ZXJyaWRlIHByZWZpeF9yZXggdG8gMQotCWlmIG9uZSBvcGVyYW5kIGlzIDB4ZmYg YW5kIHRoZSBvdGhlciBvbmUgc2ksIGRpLCBicCBvciBzcC4KLQkoKmFuZGhpXzEpOiBPdmVycmlk ZSBwcmVmaXhfcmV4IHRvIDEgaWYgb25lIG9wZXJhbmQgaXMgMHhmZiBhbmQgdGhlCi0Jb3RoZXIg b25lIHNpLCBkaSwgYnAgb3Igc3AuCi0JKCpidHNxLCAqYnRycSwgKmJ0Y3EsICpidGRpX3JleDY0 LCAqYnRzaSk6IEFkZCBtb2RlIGF0dHJpYnV0ZS4KLQkoKmZmc3NpXzEsICpmZnNkaV8xLCBjdHpz aTIsIGN0emRpMik6IEFkZAotCXR5cGUgYW5kIG1vZGUgYXR0cmlidXRlcy4KLQkoKmJzciwgKmJz cl9yZXg2NCwgKmJzcmhpKTogQWRkIHR5cGUgYXR0cmlidXRlLgotCSgqY21wZnBfaV9taXhlZCwg KmNtcGZwX2l1X21peGVkKTogRm9yIFRZUEVfU1NFQ09NSSwgY2xlYXIKLQlwcmVmaXhfcmVwIGF0 dHJpYnV0ZSBhbmQgc2V0IHByZWZpeF9kYXRhMTYgYXR0cmlidXRlIGlmZiBNT0RFX0RGLgotCSgq Y21wZnBfaV9zc2UsICpjbXBmcF9pdV9zc2UpOiBDbGVhciBwcmVmaXhfcmVwIGF0dHJpYnV0ZSBh bmQgc2V0Ci0JcHJlZml4X2RhdGExNiBhdHRyaWJ1dGUgaWZmIE1PREVfREYuCi0JKCptb3ZzaV8x KTogRm9yIFRZUEVfU1NFTU9WIE1PREVfU0kgc2V0IHByZWZpeF9kYXRhMTYgYXR0cmlidXRlLgot CShmaXhfdHJ1bmM8bW9kZT5kaV9zc2UpOiBTZXQgcHJlZml4X3JleCBhdHRyaWJ1dGUuCi0JKCph ZGRkaV80X3JleDY0LCAqYWRkc2lfNCk6IFVzZSBjb25zdDEyOF9vcGVyYW5kIGluc3RlYWQgb2YK LQljb25zdG0xMjhfb3BlcmFuZCBpbiBsZW5ndGhfaW1tZWRpYXRlIGNvbXB1dGF0aW9uLgotCSgq YWRkaGlfNCk6IExpa2V3aXNlLiAgRml4IG1vZGUgYXR0cmlidXRlIHRvIE1PREVfSEkuCi0JKGFu ZGRpXzFfcmV4NjQpOiBVc2UgbW92emJsL21vdnp3bCBpbnN0ZWFkIG9mIG1vdnpicS9tb3Z6d3Eu Ci0JKCphdnhfYXNobHRpMywgc3NlMl9hc2hsdGkzLCAqYXZ4X2xzaHJ0aTMsIHNzZTJfbHNocnRp Myk6IFNldAotCWxlbmd0aF9pbW1lZGlhdGUgYXR0cmlidXRlIHRvIDEuCi0JKHg4Nl9mbnN0c3df MSwgeDg2X2Zuc3Rjd18xLCB4ODZfZmxkY3dfMSk6IEZpeCBsZW5ndGggYXR0cmlidXRlLgotCSgq bW92ZGlfMV9yZXg2NCk6IE92ZXJyaWRlIHByZWZpeF9yZXggb3IgcHJlZml4X2RhdGExNiBhdHRy aWJ1dGVzCi0JZm9yIGNlcnRhaW4gYWx0ZXJuYXRpdmVzLgotCSgqbW92ZGZfbm9pbnRlZ2VyLCAq bW92ZGZfaW50ZWdlcl9yZXg2NCwgKm1vdmRmX2ludGVnZXIpOiBPdmVycmlkZQotCXByZWZpeF9k YXRhMTYgYXR0cmlidXRlIGlmIE1PREVfVjFERi4KLQkoKmF2eF9zZXRjYzxtb2RlPiwgKnNzZV9z ZXRjYzxtb2RlPiwgKnNzZTVfc2V0Y2M8bW9kZT4pOiBTZXQKLQlsZW5ndGhfaW1tZWRpYXRlIHRv IDEuCi0JKHNldF9nb3RfcmV4NjQsIHNldF9yaXBfcmV4NjQpOiBSZW1vdmUgbGVuZ3RoIGF0dHJp YnV0ZSwgc2V0Ci0JbGVuZ3RoX2FkZHJlc3MgdG8gNCwgc2V0IG1vZGUgYXR0cmlidXRlIHRvIE1P REVfREkuCi0JKHNldF9nb3Rfb2Zmc2V0X3JleDY0KTogTGlrZXdpc2UuICBTZXQgbGVuZ3RoX2lt bWVkaWF0ZSB0byAwLgotCShmeGFtPG1vZGU+Ml9pMzg3KTogU2V0IGxlbmd0aCBhdHRyaWJ1dGUg dG8gNC4KLQkoKnByZWZldGNoX3NzZSwgKnByZWZldGNoX3NzZV9yZXgsICpwcmVmZXRjaF8zZG5v dywKLQkqcHJlZmV0Y2hfM2Rub3dfcmV4KTogT3ZlcnJpZGUgbGVuZ3RoX2FkZHJlc3MgYXR0cmli dXRlLgotCShzc2U0XzJfY3JjMzI8bW9kZT4pOiBPdmVycmlkZSBwcmVmaXhfZGF0YTE2IGFuZCBw cmVmaXhfcmV4Ci0JYXR0cmlidXRlcy4KLQkqIGNvbmZpZy9pMzg2L3ByZWRpY2F0ZXMubWQgKGV4 dF9RSXJlZ19ub21vZGVfb3BlcmFuZCk6IE5ldyBwcmVkaWNhdGUuCi0JKGNvbnN0bTEyOF9vcGVy YW5kKTogUmVtb3ZlZC4KLQkqIGNvbmZpZy9pMzg2L2kzODYuYyAobWVtb3J5X2FkZHJlc3NfbGVu Z3RoKTogRm9yCi0JZGlzcCAmJiAhaW5kZXggJiYgIWJhc2UgaW4gNjQtYml0IG1vZGUgYWNjb3Vu dCBmb3IgU0lCIGJ5dGUgaWYKLQlwcmludF9vcGVyYW5kX2FkZHJlc3MgY2FuJ3Qgb3B0aW1pemUg ZGlzcDMyIGludG8gZGlzcDMyKCVyaXApCi0JYW5kIFVOU1BFQyBkb2Vzbid0IGltcGx5ICglcmlw KSBhZGRyZXNzaW5nLiAgQWRkIDEgdG8gbGVuZ3RoCi0JZm9yIGZzOiBvciBnczogc2VnbWVudC4K LQkoaXg4Nl9hdHRyX2xlbmd0aF9pbW1lZGlhdGVfZGVmYXVsdCk6IFdoZW4gY2hlY2tpbmcgaWYg c2hvcnRmb3JtCi0JaXMgcG9zc2libGUsIHRydW5jYXRlIGltbWVkaWF0ZSB0byB0aGUgbGVuZ3Ro IG9mIHRoZSBub24tc2hvcnRlbmVkCi0JaW1tZWRpYXRlLgotCShpeDg2X2F0dHJfbGVuZ3RoX2Fk ZHJlc3NfZGVmYXVsdCk6IElnbm9yZSBNRU1fUCBvcGVyYW5kcwotCXdpdGggWCBjb25zdHJhaW50 LgotCShpeDg2X2F0dHJfbGVuZ3RoX3ZleF9kZWZhdWx0KTogT25seSBjaGVjayBmb3IgREltb2Rl IG9uCi0JR0VORVJBTF9SRUdfUCBvcGVyYW5kcy4KLQkqIGNvbmZpZy9pMzg2L3NzZS5tZCAoPHNz ZT5fY29taSwgPHNzZT5fdWNvbWkpOiBDbGVhcgotCXByZWZpeF9yZXAgYXR0cmlidXRlLCBzZXQg cHJlZml4X2RhdGExNiBhdHRyaWJ1dGUgaWZmIE1PREVfREYuCi0JKHNzZV9jdnR0cHMycGkpOiBD bGVhciBwcmVmaXhfcmVwIGF0dHJpYnV0ZS4KLQkoc3NlMl9jdnR0cHMyZHEsICpzc2UyX2N2dHBk MmRxLCBzc2UyX2N2dHBzMnBkKTogQ2xlYXIgcHJlZml4X2RhdGExNgotCWF0dHJpYnV0ZS4KLQko KnNzZTJfY3Z0dHBkMmRxKTogRG9uJ3QgY2xlYXIgcHJlZml4X3JlcCBhdHRyaWJ1dGUuCi0JKCph dnhfYXNocjxtb2RlPjMsIGFzaHI8bW9kZT4zLCAqYXZ4X2xzaHI8bW9kZT4zLCBsc2hyPG1vZGU+ MywKLQkqYXZ4X2FzaGw8bW9kZT4zLCBhc2hsPG1vZGU+Myk6IFNldCBsZW5ndGhfaW1tZWRpYXRl IGF0dHJpYnV0ZSB0byAxCi0JaWZmIG9wZXJhbmQgMiBpcyBjb25zdF9pbnRfb3BlcmFuZC4KLQko KnZlY19kdXB2NHNpLCBhdnhfc2h1ZnBkMjU2XzEsICphdnhfc2h1ZnBkXzxtb2RlPiwKLQlzc2Uy X3NodWZwZF88bW9kZT4pOiBTZXQgbGVuZ3RoX2ltbWVkaWF0ZSBhdHRyaWJ1dGUgdG8gMS4KLQko c3NlMl9wc2h1ZmRfMSk6IExpa2V3aXNlLiAgU2V0IHByZWZpeCBhdHRyaWJ1dGUgdG8gbWF5YmVf dmV4Ci0JaW5zdGVhZCBvZiB2ZXguCi0JKHNzZTJfcHNodWZsd18xLCBzc2UyX3BzaHVmaHdfMSk6 IFNldCBsZW5ndGhfaW1tZWRpYXRlIHRvIDEgYW5kIGNsZWFyCi0JcHJlZml4X2RhdGExNi4KLQko c3NlMl91bnBja2hwZCwgc3NlMl91bnBja2xwZCwgc3NlMl9zdG9yZWhwZCwgKnZlY19jb25jYXR2 MmRmKTogU2V0Ci0JcHJlZml4X2RhdGExNiBhdHRyaWJ1dGUgZm9yIG1vdmxwZCBhbmQgbW92aHBk IGluc3RydWN0aW9ucy4KLQkoc3NlMl9sb2FkaHBkLCBzc2UyX2xvYWRscGQsIHNzZTJfbW92c2Qp OiBMaWtld2lzZS4gIE92ZXJyaWRlCi0JbGVuZ3RoX2ltbWVkaWF0ZSBmb3Igc2h1ZnBkIGluc3Ry dWN0aW9uLgotCShzc2UyX21vdm50c2ksIHNzZTNfbGRkcXUpOiBDbGVhciBwcmVmaXhfZGF0YTE2 IGF0dHJpYnV0ZS4KLQkoYXZ4X2NtcHA8YXZ4bW9kZXN1ZmZpeGYyYz48bW9kZT4zLAotCWF2eF9j bXBzPHNzZW1vZGVzdWZmaXhmMmM+PG1vZGU+MywgKmF2eF9tYXNrY21wPG1vZGU+MywKLQk8c3Nl Pl9tYXNrY21wPG1vZGU+MywgPHNzZT5fdm1tYXNrY21wPG1vZGU+MywKLQlhdnhfc2h1ZnBzMjU2 XzEsICphdnhfc2h1ZnBzXzxtb2RlPiwgc3NlX3NodWZwc188bW9kZT4sCi0JKnZlY19kdXB2NHNm X2F2eCwgKnZlY19kdXB2NHNmKTogU2V0Ci0JbGVuZ3RoX2ltbWVkaWF0ZSBhdHRyaWJ1dGUgdG8g MS4KLQkoKmF2eF9jdnRzaTJzc3EsICphdnhfY3Z0c2kyc2RxKTogU2V0IGxlbmd0aF92ZXggYXR0 cmlidXRlIHRvIDQuCi0JKHNzZV9jdnRzaTJzc3EsIHNzZTJfY3Z0c2kyc2RxKTogU2V0IHByZWZp eF9yZXggYXR0cmlidXRlIHRvIDEuCi0JKHNzZTJfY3Z0cGkycGQsIHNzZV9sb2FkbHBzLCBzc2Uy X3N0b3JlbHBkKTogT3ZlcnJpZGUKLQlwcmVmaXhfZGF0YTE2IGF0dHJpYnV0ZSBmb3IgdGhlIGZp cnN0IGFsdGVybmF0aXZlIHRvIDEuCi0JKCphdnhfbG9hZGxwcyk6IE92ZXJyaWRlIGxlbmd0aF9p bW1lZGlhdGUgZm9yIHRoZSBmaXJzdCBhbHRlcm5hdGl2ZS4KLQkoKnZlY19jb25jYXR2MnNmX2F2 eCk6IE92ZXJyaWRlIGxlbmd0aF9pbW1lZGlhdGUgYW5kIHByZWZpeF9leHRyYQotCWF0dHJpYnV0 ZXMgZm9yIHNlY29uZCBhbHRlcm5hdGl2ZS4KLQkoKnZlY19jb25jYXR2MnNmX3NzZTRfMSk6IE92 ZXJyaWRlIGxlbmd0aF9pbW1lZGlhdGUgYW5kCi0JcHJlZml4X2RhdGExNiBhdHRyaWJ1dGVzIGZv ciBzZWNvbmQgYWx0ZXJuYXRpdmUuCi0JKCp2ZWNfc2V0djRzZl9hdngsICphdnhfaW5zZXJ0cHMs IHZlY19leHRyYWN0X2xvXzxtb2RlPiwKLQl2ZWNfZXh0cmFjdF9oaV88bW9kZT4sIHZlY19leHRy YWN0X2xvX3YxNmhpLAotCXZlY19leHRyYWN0X2hpX3YxNmhpLCB2ZWNfZXh0cmFjdF9sb192MzJx aSwKLQl2ZWNfZXh0cmFjdF9oaV92MzJxaSk6IFNldCBwcmVmaXhfZXh0cmEgYW5kIGxlbmd0aF9p bW1lZGlhdGUgdG8gMS4KLQkoKnZlY19zZXR2NHNmX3NzZTRfMSwgc3NlNF8xX2luc2VydHBzLCAq c3NlNF8xX2V4dHJhY3Rwcyk6IFNldAotCXByZWZpeF9kYXRhMTYgYW5kIGxlbmd0aF9pbW1lZGlh dGUgdG8gMS4KLQkoKmF2eF9tdWx2MnNpdjJkaTMsICphdnhfbXVsdjRzaTMsIHNzZTRfMl9ndHYy ZGkzKTogU2V0IHByZWZpeF9leHRyYQotCXRvIDEuCi0JKCphdnhfPGNvZGU+PG1vZGU+MywgKmF2 eF9lcTxtb2RlPjMsICphdnhfZ3Q8bW9kZT4zKTogU2V0Ci0JcHJlZml4X2V4dHJhIGF0dHJpYnV0 ZSBmb3IgdmFyaWFudHMgdGhhdCBkb24ndCBoYXZlIDBmIHByZWZpeAotCWFsb25lLgotCSgqYXZ4 X3BpbnNyPHNzZXZlY3NpemU+KTogTGlrZXdpc2UuICBTZXQgbGVuZ3RoX2ltbWVkaWF0ZSB0byAx LgotCSgqc3NlNF8xX3BpbnNyYiwgKnNzZTJfcGluc3J3LCAqc3NlNF8xX3BpbnNyZCwgKnNzZTRf MV9wZXh0cmIsCi0JKnNzZTRfMV9wZXh0cmJfbWVtb3J5LCAqc3NlMl9wZXh0cncsICpzc2U0XzFf cGV4dHJ3X21lbW9yeSwKLQkqc3NlNF8xX3BleHRyZCk6IFNldCBsZW5ndGhfaW1tZWRpYXRlIHRv IDEuCi0JKCpzc2U0XzFfcGluc3JkKTogTGlrZXdpc2UuICBTZXQgcHJlZml4X2V4dHJhIHRvIDEu Ci0JKCpzc2U0XzFfcGluc3JxLCAqc3NlNF8xX3BleHRycSk6IFNldCBwcmVmaXhfcmV4IGFuZCBs ZW5ndGhfaW1tZWRpYXRlCi0JdG8gMS4KLQkoKnZlY19leHRyYWN0djJkaV8xX3JleDY0X2F2eCwg KnZlY19leHRyYWN0djJkaV8xX3JleDY0LAotCSp2ZWNfZXh0cmFjdHYyZGlfMV9hdngsICp2ZWNf ZXh0cmFjdHYyZGlfMV9zc2UyKTogT3ZlcnJpZGUKLQlsZW5ndGhfaW1tZWRpYXRlIHRvIDEgZm9y IHNlY29uZCBhbHRlcm5hdGl2ZS4KLQkoKnZlY19jb25jYXR2MnNpX2F2eCwgKnZlY19jb25jYXR2 MmRpX3JleDY0X2F2eCk6IE92ZXJyaWRlCi0JcHJlZml4X2V4dHJhIGFuZCBsZW5ndGhfaW1tZWRp YXRlIGF0dHJpYnV0ZXMgZm9yIHRoZSBmaXJzdAotCWFsdGVybmF0aXZlLgotCSh2ZWNfY29uY2F0 djJzaV9zc2U0XzEpOiBPdmVycmlkZSBsZW5ndGhfaW1tZWRpYXRlIHRvIDEgZm9yIHRoZQotCWZp cnN0IGFsdGVybmF0aXZlLgotCSgqdmVjX2NvbmNhdHYyZGlfcmV4NjRfc3NlNF8xKTogTGlrZXdp c2UuICBPdmVycmlkZSBwcmVmaXhfcmV4Ci0JdG8gMSBmb3IgdGhlIGZpcnN0IGFuZCB0aGlyZCBh bHRlcm5hdGl2ZS4KLQkoKnZlY19jb25jYXR2MmRpX3JleDY0X3NzZSk6IE92ZXJyaWRlIHByZWZp eF9yZXggdG8gMSBmb3IgdGhlIHNlY29uZAotCWFsdGVybmF0aXZlLgotCSgqc3NlMl9tYXNrbW92 ZHF1LCAqc3NlMl9tYXNrbW92ZHF1X3JleDY0KTogT3ZlcnJpZGUgbGVuZ3RoX3ZleAotCWF0dHJp YnV0ZS4KLQkoKnNzZV9zZmVuY2UsIHNzZTJfbWZlbmNlLCBzc2UyX2xmZW5jZSk6IE92ZXJyaWRl IGxlbmd0aF9hZGRyZXNzCi0JYXR0cmlidXRlIHRvIDAuCi0JKCphdnhfcGhhZGR3djhoaTMsICph dnhfcGhhZGRkdjRzaTMsICphdnhfcGhhZGRzd3Y4aGkzLAotCSphdnhfcGhzdWJ3djhoaTMsICph dnhfcGhzdWJkdjRzaTMsICphdnhfcGhzdWJzd3Y4aGksCi0JKmF2eF9wbWFkZHVic3cxMjgsICph dnhfcG11bGhyc3d2OGhpMywgKmF2eF9wc2h1ZmJ2MTZxaTMsCi0JKmF2eF9wc2lnbjxtb2RlPjMp OiBTZXQgcHJlZml4X2V4dHJhIGF0dHJpYnV0ZSB0byAxLgotCShzc3NlM19waGFkZHd2NGhpMywg c3NzZTNfcGhhZGRkdjJzaTMsIHNzc2UzX3BoYWRkc3d2NGhpMywKLQlzc3NlM19waHN1Ynd2NGhp Mywgc3NzZTNfcGhzdWJkdjJzaTMsIHNzc2UzX3Boc3Vic3d2NGhpMywKLQlzc3NlM19wbWFkZHVi c3csICpzc3NlM19wbXVsaHJzd3Y0aGksIHNzc2UzX3BzaHVmYnY4cWkzLAotCXNzc2UzX3BzaWdu PG1vZGU+Myk6IE92ZXJyaWRlIHByZWZpeF9yZXggYXR0cmlidXRlLgotCSgqYXZ4X3BhbGlnbnJ0 aSk6IE92ZXJyaWRlIHByZWZpeF9leHRyYSBhbmQgbGVuZ3RoX2ltbWVkaWF0ZQotCXRvIDEuCi0J KHNzc2UzX3BhbGlnbnJ0aSk6IE92ZXJyaWRlIGxlbmd0aF9pbW1lZGlhdGUgdG8gMS4KLQkoc3Nz ZTNfcGFsaWducmRpKTogT3ZlcnJpZGUgbGVuZ3RoX2ltbWVkaWF0ZSB0byAxLCBvdmVycmlkZQot CXByZWZpeF9yZXggYXR0cmlidXRlLgotCShhYnM8bW9kZT4yKTogT3ZlcnJpZGUgcHJlZml4X3Jl cCB0byAwLCBvdmVycmlkZSBwcmVmaXhfcmV4Ci0JYXR0cmlidXRlLgotCShzc2U0YV9leHRycWkp OiBPdmVycmlkZSBsZW5ndGhfaW1tZWRpYXRlIHRvIDIuCi0JKHNzZTRhX2luc2VydHFpKTogTGlr ZXdpc2UuICBPdmVycmlkZSBwcmVmaXhfZGF0YTE2IHRvIDAuCi0JKHNzZTRhX2luc2VydHEpOiBP dmVycmlkZSBwcmVmaXhfZGF0YTE2IHRvIDAuCi0JKGF2eF9ibGVuZHA8YXZ4bW9kZXN1ZmZpeGYy Yz48YXZ4bW9kZXN1ZmZpeD4sCi0JYXZ4X2JsZW5kdnA8YXZ4bW9kZXN1ZmZpeGYyYz48YXZ4bW9k ZXN1ZmZpeD4sCi0JYXZ4X2RwcDxhdnhtb2Rlc3VmZml4ZjJjPjxhdnhtb2Rlc3VmZml4PiwgKmF2 eF9tcHNhZGJ3LAotCSphdnhfcGJsZW5kdmIsICphdnhfcGJsZW5kdywgYXZ4X3JvdW5kcDxhdnht b2Rlc3VmZml4ZjJjPjI1NiwKLQlhdnhfcm91bmRzPGF2eG1vZGVzdWZmaXhmMmM+MjU2KTogT3Zl cnJpZGUgcHJlZml4X2V4dHJhCi0JYW5kIGxlbmd0aF9pbW1lZGlhdGUgdG8gMS4KLQkoc3NlNF8x X2JsZW5kcDxzc2Vtb2Rlc3VmZml4ZjJjPiwgc3NlNF8xX2RwcDxzc2Vtb2Rlc3VmZml4ZjJjPiwK LQlzc2U0XzJfcGNtcGVzdHIsIHNzZTRfMl9wY21wZXN0cmksIHNzZTRfMl9wY21wZXN0cm0sCi0J c3NlNF8yX3BjbXBlc3RyX2Njb25seSwgc3NlNF8yX3BjbXBpc3RyLCBzc2U0XzJfcGNtcGlzdHJp LAotCXNzZTRfMl9wY21waXN0cm0sIHNzZTRfMl9wY21waXN0cl9jY29ubHkpOiBPdmVycmlkZSBw cmVmaXhfZGF0YTE2Ci0JYW5kIGxlbmd0aF9pbW1lZGlhdGUgdG8gMS4KLQkoc3NlNF8xX2JsZW5k dnA8c3NlbW9kZXN1ZmZpeGYyYz4pOiBPdmVycmlkZSBwcmVmaXhfZGF0YTE2IHRvIDEuCi0JKHNz ZTRfMV9tcHNhZGJ3LCBzc2U0XzFfcGJsZW5kdyk6IE92ZXJyaWRlIGxlbmd0aF9pbW1lZGlhdGUg dG8gMS4KLQkoKmF2eF9wYWNrdXNkdywgYXZ4X3Z0ZXN0cDxhdnhtb2Rlc3VmZml4ZjJjPjxhdnht b2Rlc3VmZml4PiwKLQlhdnhfcHRlc3QyNTYpOiBPdmVycmlkZSBwcmVmaXhfZXh0cmEgdG8gMS4K LQkoc3NlNF8xX3JvdW5kcDxzc2Vtb2Rlc3VmZml4ZjJjPiwgc3NlNF8xX3JvdW5kczxzc2Vtb2Rl c3VmZml4ZjJjPik6Ci0JT3ZlcnJpZGUgcHJlZml4X2RhdGExNiBhbmQgbGVuZ3RoX2ltbWVkaWF0 ZSB0byAxLgotCShzc2U1X3BwZXJtX3plcm9fdjE2cWlfdjhoaSwgc3NlNV9wcGVybV9zaWduX3Yx NnFpX3Y4aGksCi0Jc3NlNV9wcGVybV96ZXJvX3Y4aGlfdjRzaSwgc3NlNV9wcGVybV9zaWduX3Y4 aGlfdjRzaSwKLQlzc2U1X3BwZXJtX3plcm9fdjRzaV92MmRpLCBzc2U1X3BwZXJtX3NpZ25fdjRz aV92MmRpLAotCXNzZTVfdnJvdGw8bW9kZT4zLCBzc2U1X2FzaGw8bW9kZT4zLCBzc2U1X2xzaGw8 bW9kZT4zKTogT3ZlcnJpZGUKLQlwcmVmaXhfZGF0YTE2IHRvIDAgYW5kIHByZWZpeF9leHRyYSB0 byAyLgotCShzc2U1X3JvdGw8bW9kZT4zLCBzc2U1X3JvdHI8bW9kZT4zKTogT3ZlcnJpZGUgbGVu Z3RoX2ltbWVkaWF0ZSB0byAxLgotCShzc2U1X2ZyY3o8bW9kZT4yLCBzc2U1X3ZtZnJjejxtb2Rl PjIpOiBEb24ndCBvdmVycmlkZSBwcmVmaXhfZXh0cmEKLQlhdHRyaWJ1dGUuCi0JKCpzc2U1X3Zt bWFza2NtcDxtb2RlPjMsIHNzZTVfY29tX3RmPG1vZGU+MywKLQlzc2U1X21hc2tjbXA8bW9kZT4z LCBzc2U1X21hc2tjbXA8bW9kZT4zLCBzc2U1X21hc2tjbXBfdW5zPG1vZGU+Myk6Ci0JT3ZlcnJp ZGUgcHJlZml4X2RhdGExNiBhbmQgcHJlZml4X3JlcCB0byAwLCBsZW5ndGhfaW1tZWRpYXRlIHRv IDEKLQlhbmQgcHJlZml4X2V4dHJhIHRvIDIuCi0JKHNzZTVfbWFza2NtcF91bnMyPG1vZGU+Mywg c3NlNV9wY29tX3RmPG1vZGU+Myk6IE92ZXJyaWRlCi0JcHJlZml4X2RhdGExNiB0byAwLCBsZW5n dGhfaW1tZWRpYXRlIHRvIDEgYW5kIHByZWZpeF9leHRyYSB0byAyLgotCSgqYXZ4X2Flc2VuYywg KmF2eF9hZXNlbmNsYXN0LCAqYXZ4X2Flc2RlYywgKmF2eF9hZXNkZWNsYXN0LAotCWF2eF92cGVy bWlsdmFyPG1vZGU+MywKLQlhdnhfdmJyb2FkY2FzdHM8YXZ4bW9kZXN1ZmZpeGYyYz48YXZ4bW9k ZXN1ZmZpeD4sCi0JYXZ4X3Zicm9hZGNhc3RzczI1NiwgYXZ4X3Zicm9hZGNhc3RmMTI4X3A8YXZ4 bW9kZXN1ZmZpeGYyYz4yNTYsCi0JYXZ4X21hc2tsb2FkcDxhdnhtb2Rlc3VmZml4ZjJjPjxhdnht b2Rlc3VmZml4PiwKLQlhdnhfbWFza3N0b3JlcDxhdnhtb2Rlc3VmZml4ZjJjPjxhdnhtb2Rlc3Vm Zml4Pik6Ci0JT3ZlcnJpZGUgcHJlZml4X2V4dHJhIHRvIDEuCi0JKGFlc2tleWdlbmFzc2lzdCwg cGNsbXVscWRxKTogT3ZlcnJpZGUgbGVuZ3RoX2ltbWVkaWF0ZSB0byAxLgotCSgqdnBjbG11bHFk cSwgYXZ4X3ZwZXJtaWw8bW9kZT4sIGF2eF92cGVybTJmMTI4PG1vZGU+MywKLQl2ZWNfc2V0X2xv Xzxtb2RlPiwgdmVjX3NldF9oaV88bW9kZT4sIHZlY19zZXRfbG9fdjE2aGksCi0JdmVjX3NldF9o aV92MTZoaSwgdmVjX3NldF9sb192MzJxaSwgdmVjX3NldF9oaV92MzJxaSk6IE92ZXJyaWRlCi0J cHJlZml4X2V4dHJhIGFuZCBsZW5ndGhfaW1tZWRpYXRlIHRvIDEuCi0JKCphdnhfdnplcm9hbGws IGF2eF92emVyb3VwcGVyLCBhdnhfdnplcm91cHBlcl9yZXg2NCk6IE92ZXJyaWRlCi0JbW9kcm0g dG8gMC4KLQkoKnZlY19jb25jYXQ8bW9kZT5fYXZ4KTogT3ZlcnJpZGUgcHJlZml4X2V4dHJhIGFu ZCBsZW5ndGhfaW1tZWRpYXRlCi0JdG8gMSBmb3IgdGhlIGZpcnN0IGFsdGVybmF0aXZlLgotCSog Y29uZmlnL2kzODYvbW14Lm1kICgqbW92PG1vZGU+X2ludGVybmFsX3JleDY0KTogT3ZlcnJpZGUK LQlwcmVmaXhfcmVwLCBwcmVmaXhfZGF0YTE2IGFuZC9vciBwcmVmaXhfcmV4IGF0dHJpYnV0ZXMg aW4gY2VydGFpbgotCWNhc2VzLgotCSgqbW92PG1vZGU+X2ludGVybmFsX2F2eCwgKm1vdnYyc2Zf aW50ZXJuYWxfcmV4NjQsCi0JKm1vdnYyc2ZfaW50ZXJuYWxfYXZ4LCAqbW92djJzZl9pbnRlcm5h bCk6IE92ZXJyaWRlCi0JcHJlZml4X3JlcCBhdHRyaWJ1dGUgZm9yIGNlcnRhaW4gYWx0ZXJuYXRp dmVzLgotCSgqbW92PG1vZGU+X2ludGVybmFsKTogT3ZlcnJpZGUgcHJlZml4X3JlcCBvciBwcmVm aXhfZGF0YTE2Ci0JYXR0cmlidXRlcyBmb3IgY2VydGFpbiBhbHRlcm5hdGl2ZXMuCi0JKCptb3Z2 MnNmX2ludGVybmFsX3JleDY0X2F2eCk6IE92ZXJyaWRlIHByZWZpeF9yZXAgYW5kIGxlbmd0aF92 ZXgKLQlhdHRyaWJ1dGVzIGZvciBjZXJ0YWluIGFsdGVybmF0aXZlcy4KLQkoKm1teF9hZGR2MnNm MywgKm1teF9zdWJ2MnNmMywgKm1teF9tdWx2MnNmMywKLQkqbW14Xzxjb2RlPnYyc2YzX2Zpbml0 ZSwgKm1teF88Y29kZT52MnNmMywgbW14X3JjcHYyc2YyLAotCW1teF9yY3BpdDF2MnNmMywgbW14 X3JjcGl0MnYyc2YzLCBtbXhfcnNxcnR2MnNmMiwgbW14X3JzcWl0MXYyc2YzLAotCW1teF9oYWRk djJzZjMsIG1teF9oc3VidjJzZjMsIG1teF9hZGRzdWJ2MnNmMywKLQkqbW14X2VxdjJzZjMsIG1t eF9ndHYyc2YzLCBtbXhfZ2V2MnNmMywgbW14X3BmMmlkLCBtbXhfcGYyaXcsCi0JbW14X3BpMmZ3 LCBtbXhfZmxvYXR2MnNpMiwgbW14X3Bzd2FwZHYyc2YyLCAqbW14X3BtdWxocnd2NGhpMywKLQlt bXhfcHN3YXBkdjJzaTIpOiBTZXQgcHJlZml4X2V4dHJhIGF0dHJpYnV0ZSB0byAxLgotCShtbXhf YXNocjxtb2RlPjMsIG1teF9sc2hyPG1vZGU+MywgbW14X2FzaGw8bW9kZT4zKTogU2V0Ci0JbGVu Z3RoX2ltbWVkaWF0ZSB0byAxIGlmIG9wZXJhbmQgMiBpcyBjb25zdF9pbnRfb3BlcmFuZC4KLQko Km1teF9waW5zcncsIG1teF9wZXh0cncsIG1teF9wc2h1ZndfMSwgKnZlY19kdXB2NGhpLAotCSp2 ZWNfZXh0cmFjdHYyc2lfMSk6IFNldCBsZW5ndGhfaW1tZWRpYXRlCi0JYXR0cmlidXRlIHRvIDEu Ci0JKCptbXhfdWF2Z3Y4cWkzKTogT3ZlcnJpZGUgcHJlZml4X2V4dHJhIGF0dHJpYnV0ZSB0byAx IGlmCi0JdXNpbmcgb2xkIDNETk9XIGluc24gcmF0aGVyIHRoYW4gU1NFLzNETk9XX0EuCi0JKG1t eF9lbW1zLCBtbXhfZmVtbXMpOiBDbGVhciBtb2RybSBhdHRyaWJ1dGUuCi0KLTIwMDktMDUtMjEg IEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0JKiBjb25maWcvaTM4Ni9pMzg2 LmMgKG1lbW9yeV9hZGRyZXNzX2xlbmd0aCk6IEhhbmRsZSAlcjEyCi0JdGhlIHNhbWUgYXMgJXJz cCBhbmQgJXIxMyB0aGUgc2FtZSBhcyAlcmJwLiAgRm9yICVyc3AgYW5kICVyYnAKLQlhbHNvIGNo ZWNrIFJFR05PLgotCShpeDg2X2F0dHJfbGVuZ3RoX2FkZHJlc3NfZGVmYXVsdCk6IEZvciBNT0RF X1NJIGxlYSBpbiA2NC1iaXQKLQltb2RlIGxvb2sgdGhyb3VnaCBvcHRpb25hbCBaRVJPX0VYVEVO RCBhbmQgU1VCUkVHLgotCSogY29uZmlnL2kzODYvaTM4Ni5tZCAoUjEyX1JFRyk6IE5ldyBkZWZp bmVfY29uc3RhbnQuCi0JKHByZWZpeF9kYXRhMTYpOiBGb3Igc3NlIHVuaXQgc2V0IGFsc28gZm9y IE1PREVfVEkgaW5zbnMuCi0JKHByZWZpeF9yZXgpOiBGb3IgLW0zMiBhbHdheXMgcmV0dXJuIDAu ICBGb3IgVFlQRV9JTU9WWAotCWluc25zIHNldCBpZiBvcGVyYW5kIDEgaXMgZXh0X1FJcmVnX29w ZXJhbmQuCi0JKG1vZHJtKTogRm9yIFRZUEVfSU1PViBjbGVhciBvbmx5IGlmIG5vdCBNT0RFX0RJ LiAgRm9yCi0JVFlQRV97QUxVeywxfSxJQ01QLFRFU1R9IGluc24gY2xlYXIgaWYgdGhlcmUgaXMg bm9uLXNob3J0ZW5lZAotCWltbWVkaWF0ZS4KLQkoKm1vdmRpX2V4dHp2XzEsIHplcm9fZXh0ZW5k aGlkaTIsIHplcm9fZXh0ZW5kcWlkaTIpOiBDaGFuZ2UKLQltb2RlIGZyb20gTU9ERV9ESSB0byBN T0RFX1NJLgotCShtb3ZkaV8xX3JleDY0KTogT3ZlcnJpZGUgbW9kcm0gYW5kIGxlbmd0aF9pbW1l ZGlhdGUgYXR0cmlidXRlcwotCW9ubHkgZm9yIG1vdmFicyAoVFlQRV9JTU9WLCBhbHRlcm5hdGl2 ZSAyKS4KLQkoemVyb19leHRlbmRzaWRpMl9yZXg2NCk6IENsZWFyIHByZWZpeF8wZiBhdHRyaWJ1 dGUgaWYgVFlQRV9JTU9WWC4KLQkoKmZsb2F0PFNTRU1PREVJMjQ6bW9kZT48TU9ERUY6bW9kZT4y X21peGVkX2ludGVydW5pdCwKLQkqZmxvYXQ8U1NFTU9ERUkyNDptb2RlPjxNT0RFRjptb2RlPjJf bWl4ZWRfbm9pbnRlcnVuaXQsCi0JKmZsb2F0PFNTRU1PREVJMjQ6bW9kZT48TU9ERUY6bW9kZT4y X3NzZV9pbnRlcnVuaXQsCi0JKmZsb2F0PFNTRU1PREVJMjQ6bW9kZT48TU9ERUY6bW9kZT4yX3Nz ZV9ub2ludGVydW5pdCk6IFNldAotCXByZWZpeF9yZXggYXR0cmlidXRlIGlmIERJbW9kZS4KLQko KmFkZGRpXzFfcmV4NjQsICphZGRkaV8yX3JleDY0LCAqYWRkZGlfM19yZXg2NCwgKmFkZGRpXzVf cmV4NjQsCi0JKmFkZHNpXzEsICphZGRzaV8xX3pleHQsICphZGRzaV8yLCAqYWRkc2lfMl96ZXh0 LCAqYWRkc2lfMywKLQkqYWRkc2lfM196ZXh0LCAqYWRkc2lfNSwgKmFkZGhpXzFfbGVhLCAqYWRk aGlfMSwgKmFkZGhpXzIsICphZGRoaV8zLAotCSphZGRoaV81LCAqYWRkcWlfMV9sZWEsICphZGRx aV8xKTogT3ZlcnJpZGUgbGVuZ3RoX2ltbWVkaWF0ZQotCWF0dHJpYnV0ZSB0byAxIGlmIFRZUEVf QUxVIGFuZCBvcGVyYW5kIDIgaXMgY29uc3QxMjhfb3BlcmFuZC4KLQkocHJvX2VwaWxvZ3VlX2Fk anVzdF9zdGFja18xLCBwcm9fZXBpbG9ndWVfYWRqdXN0X3N0YWNrX3JleDY0KToKLQlMaWtld2lz ZS4gIEZvciBUWVBFX0lNT1YgY2xlYXIgbGVuZ3RoX2ltbWVkaWF0ZSBhdHRyaWJ1dGUuCi0JKCph c2hsZGkzXzFfcmV4NjQsICphc2hsZGkzX2NtcF9yZXg2NCwgKmFzaGxkaTNfY2Nvbmx5X3JleDY0 LAotCSphc2hsc2kzXzEsICphc2hsc2kzXzFfemV4dCwgKmFzaGxzaTNfY21wLCAqKmFzaGxzaTNf Y2Nvbmx5LAotCSphc2hsc2kzX2NtcF96ZXh0LCAqYXNobGhpM18xX2xlYSwgKmFzaGxoaTNfMSwg KmFzaGxoaTNfY21wLAotCSphc2hsaGkzX2Njb25seSwgKmFzaGxxaTNfMV9sZWEsICphc2hscWkz XzEsICphc2hscWkzX2NtcCwKLQkqYXNobHFpM19jY29ubHkpOiBPdmVycmlkZSBsZW5ndGhfaW1t ZWRpYXRlIGF0dHJpYnV0ZSB0byAwIGlmIFRZUEVfQUxVCi0Jb3Igb25lIG9wZXJhbmQgVFlQRV9J U0hJRlQuCi0JKCphc2hyZGkzXzFfb25lX2JpdF9yZXg2NCwgKmFzaHJkaTNfb25lX2JpdF9jbXBf cmV4NjQsCi0JKmFzaHJkaTNfb25lX2JpdF9jY29ubHlfcmV4NjQsICphc2hyc2kzXzFfb25lX2Jp dCwKLQkqYXNocnNpM18xX29uZV9iaXRfemV4dCwgKmFzaHJzaTNfb25lX2JpdF9jbXAsCi0JKmFz aHJzaTNfb25lX2JpdF9jY29ubHksICphc2hyc2kzX29uZV9iaXRfY21wX3pleHQsCi0JKmFzaHJo aTNfMV9vbmVfYml0LCAqYXNocmhpM19vbmVfYml0X2NtcCwgKmFzaHJoaTNfb25lX2JpdF9jY29u bHksCi0JKmFzaHJxaTNfMV9vbmVfYml0LCAqYXNocnFpM18xX29uZV9iaXRfc2xwLCAqYXNocnFp M19vbmVfYml0X2NtcCwKLQkqYXNocnFpM19vbmVfYml0X2Njb25seSwgKmxzaHJkaTNfMV9vbmVf Yml0X3JleDY0LAotCSpsc2hyZGkzX2NtcF9vbmVfYml0X3JleDY0LCAqbHNocmRpM19jY29ubHlf b25lX2JpdF9yZXg2NCwKLQkqbHNocnNpM18xX29uZV9iaXQsICpsc2hyc2kzXzFfb25lX2JpdF96 ZXh0LCAqbHNocnNpM19vbmVfYml0X2NtcCwKLQkqbHNocnNpM19vbmVfYml0X2Njb25seSwgKmxz aHJzaTNfY21wX29uZV9iaXRfemV4dCwKLQkqbHNocmhpM18xX29uZV9iaXQsICpsc2hyaGkzX29u ZV9iaXRfY21wLCAqbHNocmhpM19vbmVfYml0X2Njb25seSwKLQkqbHNocnFpM18xX29uZV9iaXQs ICpsc2hycWkzXzFfb25lX2JpdF9zbHAsICpsc2hycWkyX29uZV9iaXRfY21wLAotCSpsc2hycWky X29uZV9iaXRfY2Nvbmx5LCAqcm90bHNpM18xX29uZV9iaXRfcmV4NjQsICpyb3Rsc2kzXzFfb25l X2JpdCwKLQkqcm90bHNpM18xX29uZV9iaXRfemV4dCwgKnJvdGxoaTNfMV9vbmVfYml0LCAqcm90 bHFpM18xX29uZV9iaXRfc2xwLAotCSpyb3RscWkzXzFfb25lX2JpdCwgKnJvdHJkaTNfMV9vbmVf Yml0X3JleDY0LCAqcm90cnNpM18xX29uZV9iaXQsCi0JKnJvdHJzaTNfMV9vbmVfYml0X3pleHQs ICpyb3RyaGkzX29uZV9iaXQsICpyb3RycWkzXzFfb25lX2JpdCwKLQkqcm90cnFpM18xX29uZV9i aXRfc2xwKTogT3ZlcnJpZGUgbGVuZ3RoX2ltbWVkaWF0ZSBhdHRyaWJ1dGUgdG8gMCwKLQlzZXQg bW9kZSBhdHRyaWJ1dGUsIGRvbid0IG92ZXJyaWRlIGxlbmd0aCBhdHRyaWJ1dGUuCi0JKCpidHNx LCAqYnRycSwgKmJ0Y3EsICpidGRpX3JleDY0LCAqYnRzaSk6IFNldCBwcmVmaXhfMGYgYXR0cmli dXRlCi0JdG8gMS4KLQkocmV0dXJuX2ludGVybmFsX2xvbmcpOiBTZXQgbGVuZ3RoIGF0dHJpYnV0 ZSB0byAyIGluc3RlYWQgb2YgMS4KLQkoKnN0cm1vdnFpX3JleF8xLCAqc3Ryc2V0cWlfcmV4XzEs ICpyZXBfc3Rvc3FpX3JleDY0LAotCSpjbXBzdHJucWlfbnpfcmV4XzEsICpjbXBzdHJucWlfcmV4 XzEsICpzdHJsZW5xaV9yZXhfMSk6IENsZWFyCi0JcHJlZml4X3JleCBhdHRyaWJ1dGUuCi0JKiBj b25maWcvaTM4Ni9wcmVkaWNhdGVzLm1kIChleHRfUUlyZWdfb3BlcmFuZCwKLQljb25zdDEyOF9v cGVyYW5kKTogTmV3IHByZWRpY2F0ZXMuCi0JKG1lbW9yeV9kaXNwbGFjZW1lbnRfb25seV9vcGVy YW5kKTogQWx3YXlzIHJldHVybiAwIGZvcgotCVRBUkdFVF82NEJJVC4KLQotMjAwOS0wNS0yMSAg SmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0KLQkqIGNvbmZpZy9pMzg2L2kzODYu bWQgKGFkZGRpXzRfcmV4NjQsIGFkZHNpXzQsIGFkZGhpXzQpOiBGb3IKLQlvcGVyYW5kMiAtMTI4 IG92ZXJyaWRlIGxlbmd0aF9pbW1lZGlhdGUgYXR0cmlidXRlIHRvIDEuCi0JKiBjb25maWcvaTM4 Ni9wcmVkaWNhdGVzLm1kIChjb25zdG0xMjhfb3BlcmFuZCk6IE5ldyBwcmVkaWNhdGUuCi0KLTIw MDktMDUtMTggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KLQotCVBSIHRhcmdldC8z OTk0MgotCSogY29uZmlnL2kzODYvaTM4Ni5jIChpeDg2X2F2b2lkX2p1bXBfbWlzc3ByZWRpY3Rz KTogUmVwbGFjZQotCWdlbl9hbGlnbiB3aXRoIGdlbl9wYWQuCi0JKGl4ODZfcmVvcmcpOiBDaGVj ayBBU01fT1VUUFVUX01BWF9TS0lQX1BBRCBpbnN0ZWFkIG9mCi0JI2lmZGVmIEFTTV9PVVRQVVRf TUFYX1NLSVBfQUxJR04uCi0KLQkqIGNvbmZpZy9pMzg2L2kzODYuaCAoQVNNX09VVFBVVF9NQVhf U0tJUF9QQUQpOiBOZXcuCi0JKiBjb25maWcvaTM4Ni94ODYtNjQuaCAoQVNNX09VVFBVVF9NQVhf U0tJUF9QQUQpOiBMaWtld2lzZS4KLQotCSogY29uZmlnL2kzODYvaTM4Ni5tZCAoYWxpZ24pOiBS ZW5hbWVkIHRvIC4uLgotCShwYWQpOiBUaGlzLiAgUmVwbGFjZSBBU01fT1VUUFVUX01BWF9TS0lQ X0FMSUdOIHdpdGgKLQlBU01fT1VUUFVUX01BWF9TS0lQX1BBRC4KLQotMjAwOS0wNS0xNiAgSmFr dWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0gCi0gCVBSIHRhcmdldC8zOTk0MgotCSog ZmluYWwuYyAobGFiZWxfdG9fbWF4X3NraXApOiBOZXcgZnVuY3Rpb24uCi0JKGxhYmVsX3RvX2Fs aWdubWVudCk6IE9ubHkgdXNlIExBQkVMX1RPX0FMSUdOTUVOVCBpZgotCUNPREVfTEFCRUxfTlVN QkVSIDw9IG1heF9sYWJlbG5vLgotCSogb3V0cHV0LmggKGxhYmVsX3RvX21heF9za2lwKTogTmV3 IHByb3RvdHlwZS4KLQkqIGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl9hdm9pZF9qdW1wX21pc3Nw cmVkaWN0cyk6IFJlbmFtZWQgdG8uLi4KLQkoaXg4Nl9hdm9pZF9qdW1wX21pc3ByZWRpY3RzKTog Li4uIHRoaXMuICBEb24ndCBkZWZpbmUgaWYKLQlBU01fT1VUUFVUX01BWF9TS0lQX0FMSUdOIGlz bid0IGRlZmluZWQuICBVcGRhdGUgY29tbWVudC4KLQlIYW5kbGUgQ09ERV9MQUJFTHMgd2l0aCA+ PSAxNiBieXRlIGFsaWdubWVudCBvciB3aXRoCi0JbWF4X3NraXAgPT0gKDEgPDwgYWxpZ24pIC0g MS4KLQkoaXg4Nl9yZW9yZyk6IERvbid0IGNhbGwgaXg4Nl9hdm9pZF9qdW1wX21pc3ByZWRpY3Rz IGlmCi0JQVNNX09VVFBVVF9NQVhfU0tJUF9BTElHTiBpc24ndCBkZWZpbmVkLgotCi0yMDA5LTA1 LTE1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+Ci0KLQkqIGNvbmZpZy9pMzg2L2kz ODYuYyAoaXg4Nl9yZW9yZyk6IENhbGwgb3B0aW1pemVfZnVuY3Rpb25fZm9yX3NwZWVkX3AKLQlv bmx5IG9uY2UuCi0KLS0tLSBnY2MvZmluYWwuYy5qagkyMDA5LTA2LTA5IDEwOjIxOjE4LjAwMDAw MDAwMCArMDIwMAotKysrIGdjYy9maW5hbC5jCTIwMDktMDYtMDkgMTA6NDY6MDkuMDAwMDAwMDAw ICswMjAwCi1AQCAtNTUzLDcgKzU1MywxNyBAQCBzdGF0aWMgaW50IG1pbl9sYWJlbG5vLCBtYXhf bGFiZWxubzsKLSBpbnQKLSBsYWJlbF90b19hbGlnbm1lbnQgKHJ0eCBsYWJlbCkKLSB7Ci0tICBy ZXR1cm4gTEFCRUxfVE9fQUxJR05NRU5UIChsYWJlbCk7Ci0rICBpZiAoQ09ERV9MQUJFTF9OVU1C RVIgKGxhYmVsKSA8PSBtYXhfbGFiZWxubykKLSsgICAgcmV0dXJuIExBQkVMX1RPX0FMSUdOTUVO VCAobGFiZWwpOwotKyAgcmV0dXJuIDA7Ci0rfQotKwotK2ludAotK2xhYmVsX3RvX21heF9za2lw IChydHggbGFiZWwpCi0rewotKyAgaWYgKENPREVfTEFCRUxfTlVNQkVSIChsYWJlbCkgPD0gbWF4 X2xhYmVsbm8pCi0rICAgIHJldHVybiBMQUJFTF9UT19NQVhfU0tJUCAobGFiZWwpOwotKyAgcmV0 dXJuIDA7Ci0gfQotIAotICNpZmRlZiBIQVZFX0FUVFJfbGVuZ3RoCi0tLS0gZ2NjL2NvbmZpZy9p Mzg2L2kzODYuaC5qagkyMDA5LTA2LTA5IDE3OjU0OjU3LjAwMDAwMDAwMCArMDIwMAotKysrIGdj Yy9jb25maWcvaTM4Ni9pMzg2LmgJMjAwOS0wNi0wOSAxMToyMDowMC4wMDAwMDAwMDAgKzAyMDAK LUBAIC0yMjA5LDYgKzIyMTAsMjIgQEAgZG8gewkJCQkJCQkJCVwKLSAjZGVmaW5lIEFTTV9PVVRQ VVRfT1BDT0RFKFNUUkVBTSwgUFRSKSBcCi0gICBBU01fT1VUUFVUX0FWWF9QUkVGSVggKChTVFJF QU0pLCAoUFRSKSkKLSAKLSsvKiBBIEMgc3RhdGVtZW50IHRvIG91dHB1dCB0byB0aGUgc3RkaW8g c3RyZWFtIEZJTEUgYW4gYXNzZW1ibGVyCi0rICAgY29tbWFuZCB0byBwYWQgdGhlIGxvY2F0aW9u IGNvdW50ZXIgdG8gYSBtdWx0aXBsZSBvZiAxPDxMT0cKLSsgICBieXRlcyBpZiBpdCBpcyB3aXRo aW4gTUFYX1NLSVAgYnl0ZXMuICAqLwotKwotKyNpZmRlZiBIQVZFX0dBU19NQVhfU0tJUF9QMkFM SUdOCi0rI3VuZGVmICBBU01fT1VUUFVUX01BWF9TS0lQX1BBRAotKyNkZWZpbmUgQVNNX09VVFBV VF9NQVhfU0tJUF9QQUQoRklMRSwgTE9HLCBNQVhfU0tJUCkJCQlcCi0rICBpZiAoKExPRykgIT0g MCkJCQkJCQkJXAotKyAgICB7CQkJCQkJCQkJXAotKyAgICAgIGlmICgoTUFYX1NLSVApID09IDAp CQkJCQkJXAotKyAgICAgICAgZnByaW50ZiAoKEZJTEUpLCAiXHQucDJhbGlnbiAlZFxuIiwgKExP RykpOwkJCVwKLSsgICAgICBlbHNlCQkJCQkJCQlcCi0rICAgICAgICBmcHJpbnRmICgoRklMRSks ICJcdC5wMmFsaWduICVkLCwlZFxuIiwgKExPRyksIChNQVhfU0tJUCkpOwlcCi0rICAgIH0KLSsj ZW5kaWYKLSsKLSAvKiBVbmRlciBzb21lIGNvbmRpdGlvbnMgd2UgbmVlZCBqdW1wIHRhYmxlcyBp biB0aGUgdGV4dCBzZWN0aW9uLAotICAgIGJlY2F1c2UgdGhlIGFzc2VtYmxlciBjYW5ub3QgaGFu ZGxlIGxhYmVsIGRpZmZlcmVuY2VzIGJldHdlZW4KLSAgICBzZWN0aW9ucy4gIFRoaXMgaXMgdGhl IGNhc2UgZm9yIHg4Nl82NCBvbiBNYWNoLU8gZm9yIGV4YW1wbGUuICAqLwotLS0tIGdjYy9jb25m aWcvaTM4Ni94ODYtNjQuaAkocmV2aXNpb24gMTQ3NjcwKQotKysrIGdjYy9jb25maWcvaTM4Ni94 ODYtNjQuaAkocmV2aXNpb24gMTQ3NjcxKQotQEAgLTgxLDYgKzgxLDE1IEBAIHNlZSB0aGUgZmls ZXMgQ09QWUlORzMgYW5kIENPUFlJTkcuUlVOVEkKLSAgICAgICB9CQkJCQkJCQkJXAotICAgICB9 CQkJCQkJCQkJXAotICAgfSB3aGlsZSAoMCkKLSsjdW5kZWYgIEFTTV9PVVRQVVRfTUFYX1NLSVBf UEFECi0rI2RlZmluZSBBU01fT1VUUFVUX01BWF9TS0lQX1BBRChGSUxFLCBMT0csIE1BWF9TS0lQ KQkJCVwKLSsgIGlmICgoTE9HKSAhPSAwKQkJCQkJCQlcCi0rICAgIHsJCQkJCQkJCQlcCi0rICAg ICAgaWYgKChNQVhfU0tJUCkgPT0gMCkJCQkJCQlcCi0rICAgICAgICBmcHJpbnRmICgoRklMRSks ICJcdC5wMmFsaWduICVkXG4iLCAoTE9HKSk7CQkJXAotKyAgICAgIGVsc2UJCQkJCQkJCVwKLSsg ICAgICAgIGZwcmludGYgKChGSUxFKSwgIlx0LnAyYWxpZ24gJWQsLCVkXG4iLCAoTE9HKSwgKE1B WF9TS0lQKSk7CVwKLSsgICAgfQotICNlbmRpZgotIAotIAotLS0tIGdjYy9jb25maWcvaTM4Ni9p Mzg2LmMuamoJMjAwOS0wNi0wOSAxMDoyNDozNS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnY2MvY29u ZmlnL2kzODYvaTM4Ni5jCTIwMDktMDYtMDkgMTI6MTA6MDEuMDAwMDAwMDAwICswMjAwCi1AQCAt ODg4NCw2ICs4ODg0LDEwIEBAIGl4ODZfZGVjb21wb3NlX2FkZHJlc3MgKHJ0eCBhZGRyLCBzdHJ1 Y3QKLSAgIGJhc2VfcmVnID0gYmFzZSAmJiBHRVRfQ09ERSAoYmFzZSkgPT0gU1VCUkVHID8gU1VC UkVHX1JFRyAoYmFzZSkgOiBiYXNlOwotICAgaW5kZXhfcmVnID0gaW5kZXggJiYgR0VUX0NPREUg KGluZGV4KSA9PSBTVUJSRUcgPyBTVUJSRUdfUkVHIChpbmRleCkgOiBpbmRleDsKLSAKLSsgIC8q IEF2b2lkIHVzZWxlc3MgMCBkaXNwbGFjZW1lbnQuICAqLwotKyAgaWYgKGRpc3AgPT0gY29uc3Qw X3J0eCAmJiAoYmFzZSB8fCBpbmRleCkpCi0rICAgIGRpc3AgPSBOVUxMX1JUWDsKLSsKLSAgIC8q IEFsbG93IGFyZyBwb2ludGVyIGFuZCBzdGFjayBwb2ludGVyIGFzIGluZGV4IGlmIHRoZXJlIGlz IG5vdCBzY2FsaW5nLiAgKi8KLSAgIGlmIChiYXNlX3JlZyAmJiBpbmRleF9yZWcgJiYgc2NhbGUg PT0gMQotICAgICAgICYmIChpbmRleF9yZWcgPT0gYXJnX3BvaW50ZXJfcnR4Ci1AQCAtODg5NSwx MCArODg5OSwxNiBAQCBpeDg2X2RlY29tcG9zZV9hZGRyZXNzIChydHggYWRkciwgc3RydWN0Ci0g ICAgICAgdG1wID0gYmFzZV9yZWcsIGJhc2VfcmVnID0gaW5kZXhfcmVnLCBpbmRleF9yZWcgPSB0 bXA7Ci0gICAgIH0KLSAKLS0gIC8qIFNwZWNpYWwgY2FzZTogJWVicCBjYW5ub3QgYmUgZW5jb2Rl ZCBhcyBhIGJhc2Ugd2l0aG91dCBhIGRpc3BsYWNlbWVudC4gICovCi0tICBpZiAoKGJhc2VfcmVn ID09IGhhcmRfZnJhbWVfcG9pbnRlcl9ydHgKLS0gICAgICAgfHwgYmFzZV9yZWcgPT0gZnJhbWVf cG9pbnRlcl9ydHgKLS0gICAgICAgfHwgYmFzZV9yZWcgPT0gYXJnX3BvaW50ZXJfcnR4KSAmJiAh ZGlzcCkKLSsgIC8qIFNwZWNpYWwgY2FzZTogJWVicCBjYW5ub3QgYmUgZW5jb2RlZCBhcyBhIGJh c2Ugd2l0aG91dCBhIGRpc3BsYWNlbWVudC4KLSsgICAgIFNpbWlsYXJseSAlcjEzLiAgKi8KLSsg IGlmICghZGlzcAotKyAgICAgICYmIGJhc2VfcmVnCi0rICAgICAgJiYgKGJhc2VfcmVnID09IGhh cmRfZnJhbWVfcG9pbnRlcl9ydHgKLSsJICB8fCBiYXNlX3JlZyA9PSBmcmFtZV9wb2ludGVyX3J0 eAotKwkgIHx8IGJhc2VfcmVnID09IGFyZ19wb2ludGVyX3J0eAotKwkgIHx8IChSRUdfUCAoYmFz ZV9yZWcpCi0rCSAgICAgICYmIChSRUdOTyAoYmFzZV9yZWcpID09IEhBUkRfRlJBTUVfUE9JTlRF Ul9SRUdOVU0KLSsJCSAgfHwgUkVHTk8gKGJhc2VfcmVnKSA9PSBSMTNfUkVHKSkpKQotICAgICBk aXNwID0gY29uc3QwX3J0eDsKLSAKLSAgIC8qIFNwZWNpYWwgY2FzZTogb24gSzYsIFslZXNpXSBt YWtlcyB0aGUgaW5zdHJ1Y3Rpb24gdmVjdG9yIGRlY29kZWQuCi1AQCAtODkxMiw3ICs4OTIyLDcg QEAgaXg4Nl9kZWNvbXBvc2VfYWRkcmVzcyAocnR4IGFkZHIsIHN0cnVjdAotICAgICBkaXNwID0g Y29uc3QwX3J0eDsKLSAKLSAgIC8qIFNwZWNpYWwgY2FzZTogZW5jb2RlIHJlZytyZWcgaW5zdGVh ZCBvZiByZWcqMi4gICovCi0tICBpZiAoIWJhc2UgJiYgaW5kZXggJiYgc2NhbGUgJiYgc2NhbGUg PT0gMikKLSsgIGlmICghYmFzZSAmJiBpbmRleCAmJiBzY2FsZSA9PSAyKQotICAgICBiYXNlID0g aW5kZXgsIGJhc2VfcmVnID0gaW5kZXhfcmVnLCBzY2FsZSA9IDE7Ci0gCi0gICAvKiBTcGVjaWFs IGNhc2U6IHNjYWxpbmcgY2Fubm90IGJlIGVuY29kZWQgd2l0aG91dCBiYXNlIG9yIGRpc3BsYWNl bWVudC4gICovCi1AQCAtMTkyNDAsMjMgKzE5MjUwLDUzIEBAIG1lbW9yeV9hZGRyZXNzX2xlbmd0 aCAocnR4IGFkZHIpCi0gCi0gICAvKiBSdWxlIG9mIHRodW1iOgotICAgICAgICAtIGVzcCBhcyB0 aGUgYmFzZSBhbHdheXMgd2FudHMgYW4gaW5kZXgsCi0tICAgICAgIC0gZWJwIGFzIHRoZSBiYXNl IGFsd2F5cyB3YW50cyBhIGRpc3BsYWNlbWVudC4gICovCi0rICAgICAgIC0gZWJwIGFzIHRoZSBi YXNlIGFsd2F5cyB3YW50cyBhIGRpc3BsYWNlbWVudCwKLSsgICAgICAgLSByMTIgYXMgdGhlIGJh c2UgYWx3YXlzIHdhbnRzIGFuIGluZGV4LAotKyAgICAgICAtIHIxMyBhcyB0aGUgYmFzZSBhbHdh eXMgd2FudHMgYSBkaXNwbGFjZW1lbnQuICAqLwotIAotICAgLyogUmVnaXN0ZXIgSW5kaXJlY3Qu ICAqLwotICAgaWYgKGJhc2UgJiYgIWluZGV4ICYmICFkaXNwKQotICAgICB7Ci0gICAgICAgLyog ZXNwIChmb3IgaXRzIGluZGV4KSBhbmQgZWJwIChmb3IgaXRzIGRpc3BsYWNlbWVudCkgbmVlZAot LQkgdGhlIHR3by1ieXRlIG1vZHJtIGZvcm0uICAqLwotLSAgICAgIGlmIChhZGRyID09IHN0YWNr X3BvaW50ZXJfcnR4Ci0tCSAgfHwgYWRkciA9PSBhcmdfcG9pbnRlcl9ydHgKLS0JICB8fCBhZGRy ID09IGZyYW1lX3BvaW50ZXJfcnR4Ci0tCSAgfHwgYWRkciA9PSBoYXJkX2ZyYW1lX3BvaW50ZXJf cnR4KQotKwkgdGhlIHR3by1ieXRlIG1vZHJtIGZvcm0uICBTaW1pbGFybHkgZm9yIHIxMiBhbmQg cjEzIGluIDY0LWJpdAotKwkgY29kZS4gICovCi0rICAgICAgaWYgKFJFR19QIChhZGRyKQotKwkg ICYmIChhZGRyID09IGFyZ19wb2ludGVyX3J0eAotKwkgICAgICB8fCBhZGRyID09IGZyYW1lX3Bv aW50ZXJfcnR4Ci0rCSAgICAgIHx8IFJFR05PIChhZGRyKSA9PSBTUF9SRUcKLSsJICAgICAgfHwg UkVHTk8gKGFkZHIpID09IEJQX1JFRwotKwkgICAgICB8fCBSRUdOTyAoYWRkcikgPT0gUjEyX1JF RwotKwkgICAgICB8fCBSRUdOTyAoYWRkcikgPT0gUjEzX1JFRykpCi0gCWxlbiA9IDE7Ci0gICAg IH0KLSAKLS0gIC8qIERpcmVjdCBBZGRyZXNzaW5nLiAgKi8KLSsgIC8qIERpcmVjdCBBZGRyZXNz aW5nLiAgSW4gNjQtYml0IG1vZGUgbW9kIDAwIHIvbSA1Ci0rICAgICBpcyBub3QgZGlzcDMyLCBi dXQgZGlzcDMyKCVyaXApLCBzbyBmb3IgZGlzcDMyCi0rICAgICBTSUIgYnl0ZSBpcyBuZWVkZWQs IHVubGVzcyBwcmludF9vcGVyYW5kX2FkZHJlc3MKLSsgICAgIG9wdGltaXplcyBpdCBpbnRvIGRp c3AzMiglcmlwKSBvciAoJXJpcCkgaXMgaW1wbGllZAotKyAgICAgYnkgVU5TUEVDLiAgKi8KLSAg IGVsc2UgaWYgKGRpc3AgJiYgIWJhc2UgJiYgIWluZGV4KQotLSAgICBsZW4gPSA0OwotKyAgICB7 Ci0rICAgICAgbGVuID0gNDsKLSsgICAgICBpZiAoVEFSR0VUXzY0QklUKQotKwl7Ci0rCSAgcnR4 IHN5bWJvbCA9IGRpc3A7Ci0rCi0rCSAgaWYgKEdFVF9DT0RFIChkaXNwKSA9PSBDT05TVCkKLSsJ ICAgIHN5bWJvbCA9IFhFWFAgKGRpc3AsIDApOwotKwkgIGlmIChHRVRfQ09ERSAoc3ltYm9sKSA9 PSBQTFVTCi0rCSAgICAgICYmIENPTlNUX0lOVF9QIChYRVhQIChzeW1ib2wsIDEpKSkKLSsJICAg IHN5bWJvbCA9IFhFWFAgKHN5bWJvbCwgMCk7Ci0rCi0rCSAgaWYgKEdFVF9DT0RFIChzeW1ib2wp ICE9IExBQkVMX1JFRgotKwkgICAgICAmJiAoR0VUX0NPREUgKHN5bWJvbCkgIT0gU1lNQk9MX1JF RgotKwkJICB8fCBTWU1CT0xfUkVGX1RMU19NT0RFTCAoc3ltYm9sKSAhPSAwKQotKwkgICAgICAm JiAoR0VUX0NPREUgKHN5bWJvbCkgIT0gVU5TUEVDCi0rCQkgIHx8IChYSU5UIChzeW1ib2wsIDEp ICE9IFVOU1BFQ19HT1RQQ1JFTAotKwkJICAgICAgJiYgWElOVCAoc3ltYm9sLCAxKSAhPSBVTlNQ RUNfR09UTlRQT0ZGKSkpCi0rCSAgICBsZW4gKz0gMTsKLSsJfQotKyAgICB9Ci0gCi0gICBlbHNl Ci0gICAgIHsKLUBAIC0xOTI2OCwxOSArMTkzMDgsMzEgQEAgbWVtb3J5X2FkZHJlc3NfbGVuZ3Ro IChydHggYWRkcikKLSAJICBlbHNlCi0gCSAgICBsZW4gPSA0OwotIAl9Ci0tICAgICAgLyogZWJw IGFsd2F5cyB3YW50cyBhIGRpc3BsYWNlbWVudC4gICovCi0tICAgICAgZWxzZSBpZiAoYmFzZSA9 PSBoYXJkX2ZyYW1lX3BvaW50ZXJfcnR4KQotLSAgICAgICAgbGVuID0gMTsKLSsgICAgICAvKiBl YnAgYWx3YXlzIHdhbnRzIGEgZGlzcGxhY2VtZW50LiAgU2ltaWxhcmx5IHIxMy4gICovCi0rICAg ICAgZWxzZSBpZiAoUkVHX1AgKGJhc2UpCi0rCSAgICAgICAmJiAoUkVHTk8gKGJhc2UpID09IEJQ X1JFRyB8fCBSRUdOTyAoYmFzZSkgPT0gUjEzX1JFRykpCi0rCWxlbiA9IDE7Ci0gCi0gICAgICAg LyogQW4gaW5kZXggcmVxdWlyZXMgdGhlIHR3by1ieXRlIG1vZHJtIGZvcm0uLi4uICAqLwotICAg ICAgIGlmIChpbmRleAotLQkgIC8qIC4uLmxpa2UgZXNwLCB3aGljaCBhbHdheXMgd2FudHMgYW4g aW5kZXguICAqLwotLQkgIHx8IGJhc2UgPT0gc3RhY2tfcG9pbnRlcl9ydHgKLSsJICAvKiAuLi5s aWtlIGVzcCAob3IgcjEyKSwgd2hpY2ggYWx3YXlzIHdhbnRzIGFuIGluZGV4LiAgKi8KLSAJICB8 fCBiYXNlID09IGFyZ19wb2ludGVyX3J0eAotLQkgIHx8IGJhc2UgPT0gZnJhbWVfcG9pbnRlcl9y dHgpCi0rCSAgfHwgYmFzZSA9PSBmcmFtZV9wb2ludGVyX3J0eAotKwkgIHx8IChSRUdfUCAoYmFz ZSkKLSsJICAgICAgJiYgKFJFR05PIChiYXNlKSA9PSBTUF9SRUcgfHwgUkVHTk8gKGJhc2UpID09 IFIxMl9SRUcpKSkKLSAJbGVuICs9IDE7Ci0gICAgIH0KLSAKLSsgIHN3aXRjaCAocGFydHMuc2Vn KQotKyAgICB7Ci0rICAgIGNhc2UgU0VHX0ZTOgotKyAgICBjYXNlIFNFR19HUzoKLSsgICAgICBs ZW4gKz0gMTsKLSsgICAgICBicmVhazsKLSsgICAgZGVmYXVsdDoKLSsgICAgICBicmVhazsKLSsg ICAgfQotKwotICAgcmV0dXJuIGxlbjsKLSB9Ci0gCi1AQCAtMTkyOTUsMzAgKzE5MzQ3LDUwIEBA IGl4ODZfYXR0cl9sZW5ndGhfaW1tZWRpYXRlX2RlZmF1bHQgKHJ0eCAKLSAgIGZvciAoaSA9IHJl Y29nX2RhdGEubl9vcGVyYW5kcyAtIDE7IGkgPj0gMDsgLS1pKQotICAgICBpZiAoQ09OU1RBTlRf UCAocmVjb2dfZGF0YS5vcGVyYW5kW2ldKSkKLSAgICAgICB7Ci0rICAgICAgICBlbnVtIGF0dHJf bW9kZSBtb2RlID0gZ2V0X2F0dHJfbW9kZSAoaW5zbik7Ci0rCi0gCWdjY19hc3NlcnQgKCFsZW4p OwotLQlpZiAoc2hvcnRmb3JtICYmIHNhdGlzZmllc19jb25zdHJhaW50X0sgKHJlY29nX2RhdGEu b3BlcmFuZFtpXSkpCi0tCSAgbGVuID0gMTsKLS0JZWxzZQotKwlpZiAoc2hvcnRmb3JtICYmIENP TlNUX0lOVF9QIChyZWNvZ19kYXRhLm9wZXJhbmRbaV0pKQotIAkgIHsKLS0JICAgIHN3aXRjaCAo Z2V0X2F0dHJfbW9kZSAoaW5zbikpCi0rCSAgICBIT1NUX1dJREVfSU5UIGl2YWwgPSBJTlRWQUwg KHJlY29nX2RhdGEub3BlcmFuZFtpXSk7Ci0rCSAgICBzd2l0Y2ggKG1vZGUpCi0gCSAgICAgIHsK LS0JCWNhc2UgTU9ERV9RSToKLS0JCSAgbGVuKz0xOwotLQkJICBicmVhazsKLS0JCWNhc2UgTU9E RV9ISToKLS0JCSAgbGVuKz0yOwotLQkJICBicmVhazsKLS0JCWNhc2UgTU9ERV9TSToKLS0JCSAg bGVuKz00OwotLQkJICBicmVhazsKLS0JCS8qIEltbWVkaWF0ZXMgZm9yIERJbW9kZSBpbnN0cnVj dGlvbnMgYXJlIGVuY29kZWQgYXMgMzJiaXQgc2lnbiBleHRlbmRlZCB2YWx1ZXMuICAqLwotLQkJ Y2FzZSBNT0RFX0RJOgotLQkJICBsZW4rPTQ7Ci0tCQkgIGJyZWFrOwotLQkJZGVmYXVsdDoKLS0J CSAgZmF0YWxfaW5zbiAoInVua25vd24gaW5zbiBtb2RlIiwgaW5zbik7Ci0rCSAgICAgIGNhc2Ug TU9ERV9RSToKLSsJCWxlbiA9IDE7Ci0rCQljb250aW51ZTsKLSsJICAgICAgY2FzZSBNT0RFX0hJ OgotKwkJaXZhbCA9IHRydW5jX2ludF9mb3JfbW9kZSAoaXZhbCwgSEltb2RlKTsKLSsJCWJyZWFr OwotKwkgICAgICBjYXNlIE1PREVfU0k6Ci0rCQlpdmFsID0gdHJ1bmNfaW50X2Zvcl9tb2RlIChp dmFsLCBTSW1vZGUpOwotKwkJYnJlYWs7Ci0rCSAgICAgIGRlZmF1bHQ6Ci0rCQlicmVhazsKLSsJ ICAgICAgfQotKwkgICAgaWYgKElOX1JBTkdFIChpdmFsLCAtMTI4LCAxMjcpKQotKwkgICAgICB7 Ci0rCQlsZW4gPSAxOwotKwkJY29udGludWU7Ci0gCSAgICAgIH0KLSAJICB9Ci0rCXN3aXRjaCAo bW9kZSkKLSsJICB7Ci0rCSAgY2FzZSBNT0RFX1FJOgotKwkgICAgbGVuID0gMTsKLSsJICAgIGJy ZWFrOwotKwkgIGNhc2UgTU9ERV9ISToKLSsJICAgIGxlbiA9IDI7Ci0rCSAgICBicmVhazsKLSsJ ICBjYXNlIE1PREVfU0k6Ci0rCSAgICBsZW4gPSA0OwotKwkgICAgYnJlYWs7Ci0rCSAgLyogSW1t ZWRpYXRlcyBmb3IgREltb2RlIGluc3RydWN0aW9ucyBhcmUgZW5jb2RlZCBhcyAzMmJpdCBzaWdu IGV4dGVuZGVkIHZhbHVlcy4gICovCi0rCSAgY2FzZSBNT0RFX0RJOgotKwkgICAgbGVuID0gNDsK LSsJICAgIGJyZWFrOwotKwkgIGRlZmF1bHQ6Ci0rCSAgICBmYXRhbF9pbnNuICgidW5rbm93biBp bnNuIG1vZGUiLCBpbnNuKTsKLSsJfQotICAgICAgIH0KLSAgIHJldHVybiBsZW47Ci0gfQotQEAg LTE5MzMwLDIyICsxOTQwMiw0NSBAQCBpeDg2X2F0dHJfbGVuZ3RoX2FkZHJlc3NfZGVmYXVsdCAo cnR4IGluCi0gCi0gICBpZiAoZ2V0X2F0dHJfdHlwZSAoaW5zbikgPT0gVFlQRV9MRUEpCi0gICAg IHsKLS0gICAgICBydHggc2V0ID0gUEFUVEVSTiAoaW5zbik7Ci0rICAgICAgcnR4IHNldCA9IFBB VFRFUk4gKGluc24pLCBhZGRyOwotIAotICAgICAgIGlmIChHRVRfQ09ERSAoc2V0KSA9PSBQQVJB TExFTCkKLSAJc2V0ID0gWFZFQ0VYUCAoc2V0LCAwLCAwKTsKLSAKLSAgICAgICBnY2NfYXNzZXJ0 IChHRVRfQ09ERSAoc2V0KSA9PSBTRVQpOwotIAotLSAgICAgIHJldHVybiBtZW1vcnlfYWRkcmVz c19sZW5ndGggKFNFVF9TUkMgKHNldCkpOwotKyAgICAgIGFkZHIgPSBTRVRfU1JDIChzZXQpOwot KyAgICAgIGlmIChUQVJHRVRfNjRCSVQgJiYgZ2V0X2F0dHJfbW9kZSAoaW5zbikgPT0gTU9ERV9T SSkKLSsJewotKwkgIGlmIChHRVRfQ09ERSAoYWRkcikgPT0gWkVST19FWFRFTkQpCi0rCSAgICBh ZGRyID0gWEVYUCAoYWRkciwgMCk7Ci0rCSAgaWYgKEdFVF9DT0RFIChhZGRyKSA9PSBTVUJSRUcp Ci0rCSAgICBhZGRyID0gU1VCUkVHX1JFRyAoYWRkcik7Ci0rCX0KLSsKLSsgICAgICByZXR1cm4g bWVtb3J5X2FkZHJlc3NfbGVuZ3RoIChhZGRyKTsKLSAgICAgfQotIAotICAgZXh0cmFjdF9pbnNu X2NhY2hlZCAoaW5zbik7Ci0gICBmb3IgKGkgPSByZWNvZ19kYXRhLm5fb3BlcmFuZHMgLSAxOyBp ID49IDA7IC0taSkKLSAgICAgaWYgKE1FTV9QIChyZWNvZ19kYXRhLm9wZXJhbmRbaV0pKQotICAg ICAgIHsKLSsgICAgICAgIGNvbnN0cmFpbl9vcGVyYW5kc19jYWNoZWQgKHJlbG9hZF9jb21wbGV0 ZWQpOwotKyAgICAgICAgaWYgKHdoaWNoX2FsdGVybmF0aXZlICE9IC0xKQotKwkgIHsKLSsJICAg IGNvbnN0IGNoYXIgKmNvbnN0cmFpbnRzID0gcmVjb2dfZGF0YS5jb25zdHJhaW50c1tpXTsKLSsJ ICAgIGludCBhbHQgPSB3aGljaF9hbHRlcm5hdGl2ZTsKLSsKLSsJICAgIHdoaWxlICgqY29uc3Ry YWludHMgPT0gJz0nIHx8ICpjb25zdHJhaW50cyA9PSAnKycpCi0rCSAgICAgIGNvbnN0cmFpbnRz Kys7Ci0rCSAgICB3aGlsZSAoYWx0LS0gPiAwKQotKwkgICAgICB3aGlsZSAoKmNvbnN0cmFpbnRz KysgIT0gJywnKQotKwkJOwotKwkgICAgLyogU2tpcCBpZ25vcmVkIG9wZXJhbmRzLiAgKi8KLSsJ ICAgIGlmICgqY29uc3RyYWludHMgPT0gJ1gnKQotKwkgICAgICBjb250aW51ZTsKLSsJICB9Ci0g CXJldHVybiBtZW1vcnlfYWRkcmVzc19sZW5ndGggKFhFWFAgKHJlY29nX2RhdGEub3BlcmFuZFtp XSwgMCkpOwotLQlicmVhazsKLSAgICAgICB9Ci0gICByZXR1cm4gMDsKLSB9Ci1AQCAtMTkzNzQs NyArMTk0NjksOCBAQCBpeDg2X2F0dHJfbGVuZ3RoX3ZleF9kZWZhdWx0IChydHggaW5zbiwgCi0g ICAgIGlmIChSRUdfUCAocmVjb2dfZGF0YS5vcGVyYW5kW2ldKSkKLSAgICAgICB7Ci0gCS8qIFJF WC5XIGJpdCB1c2VzIDMgYnl0ZSBWRVggcHJlZml4LiAgKi8KLS0JaWYgKEdFVF9NT0RFIChyZWNv Z19kYXRhLm9wZXJhbmRbaV0pID09IERJbW9kZSkKLSsJaWYgKEdFVF9NT0RFIChyZWNvZ19kYXRh Lm9wZXJhbmRbaV0pID09IERJbW9kZQotKwkgICAgJiYgR0VORVJBTF9SRUdfUCAocmVjb2dfZGF0 YS5vcGVyYW5kW2ldKSkKLSAJICByZXR1cm4gMyArIDE7Ci0gICAgICAgfQotICAgICBlbHNlCi1A QCAtMjcxMTIsNiArMjcyMDgsNyBAQCB4ODZfZnVuY3Rpb25fcHJvZmlsZXIgKEZJTEUgKmZpbGUs IGludCBsCi0gICAgIH0KLSB9Ci0gCi0rI2lmZGVmIEFTTV9PVVRQVVRfTUFYX1NLSVBfQUxJR04K LSAvKiBXZSBkb24ndCBoYXZlIGV4YWN0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBpbnNuIHNpemVz LCBidXQgd2UgbWF5IGFzc3VtZQotICAgIHF1aXRlIHNhZmVseSB0aGF0IHdlIGFyZSBpbmZvcm1l ZCBhYm91dCBhbGwgMSBieXRlIGluc25zIGFuZCBtZW1vcnkKLSAgICBhZGRyZXNzIHNpemVzLiAg VGhpcyBpcyBlbm91Z2ggdG8gZWxpbWluYXRlIHVubmVjZXNzYXJ5IHBhZGRpbmcgaW4KLUBAIC0y NzE2Miw3ICsyNzI1OSw3IEBAIG1pbl9pbnNuX3NpemUgKHJ0eCBpbnNuKQotICAgIHdpbmRvdy4g ICovCi0gCi0gc3RhdGljIHZvaWQKLS1peDg2X2F2b2lkX2p1bXBfbWlzc3ByZWRpY3RzICh2b2lk KQotK2l4ODZfYXZvaWRfanVtcF9taXNwcmVkaWN0cyAodm9pZCkKLSB7Ci0gICBydHggaW5zbiwg c3RhcnQgPSBnZXRfaW5zbnMgKCk7Ci0gICBpbnQgbmJ5dGVzID0gMCwgbmp1bXBzID0gMDsKLUBA IC0yNzE3NiwxNSArMjcyNzMsNTIgQEAgaXg4Nl9hdm9pZF9qdW1wX21pc3NwcmVkaWN0cyAodm9p ZCkKLSAKLSAgICAgIFRoZSBzbWFsbGVzdCBvZmZzZXQgaW4gdGhlIHBhZ2UgSU5TTiBjYW4gc3Rh cnQgaXMgdGhlIGNhc2Ugd2hlcmUgU1RBUlQKLSAgICAgIGVuZHMgb24gdGhlIG9mZnNldCAwLiAg T2Zmc2V0IG9mIElOU04gaXMgdGhlbiBOQllURVMgLSBzaXplb2YgKElOU04pLgotLSAgICAgV2Ug YWRkIHAyYWxpZ24gdG8gMTZieXRlIHdpbmRvdyB3aXRoIG1heHNraXAgMTcgLSBOQllURVMgKyBz aXplb2YgKElOU04pLgotKyAgICAgV2UgYWRkIHAyYWxpZ24gdG8gMTZieXRlIHdpbmRvdyB3aXRo IG1heHNraXAgMTUgLSBOQllURVMgKyBzaXplb2YgKElOU04pLgotICAgICAgKi8KLS0gIGZvciAo aW5zbiA9IGdldF9pbnNucyAoKTsgaW5zbjsgaW5zbiA9IE5FWFRfSU5TTiAoaW5zbikpCi0rICBm b3IgKGluc24gPSBzdGFydDsgaW5zbjsgaW5zbiA9IE5FWFRfSU5TTiAoaW5zbikpCi0gICAgIHsK LSsgICAgICBpbnQgbWluX3NpemU7Ci0rCi0rICAgICAgaWYgKEdFVF9DT0RFIChpbnNuKSA9PSBD T0RFX0xBQkVMKQotKwl7Ci0rCSAgaW50IGFsaWduID0gbGFiZWxfdG9fYWxpZ25tZW50IChpbnNu KTsKLSsJICBpbnQgbWF4X3NraXAgPSBsYWJlbF90b19tYXhfc2tpcCAoaW5zbik7Ci0gCi0tICAg ICAgbmJ5dGVzICs9IG1pbl9pbnNuX3NpemUgKGluc24pOwotKwkgIGlmIChtYXhfc2tpcCA+IDE1 KQotKwkgICAgbWF4X3NraXAgPSAxNTsKLSsJICAvKiBJZiBhbGlnbiA+IDMsIG9ubHkgdXAgdG8g MTYgLSBtYXhfc2tpcCAtIDEgYnl0ZXMgY2FuIGJlCi0rCSAgICAgYWxyZWFkeSBpbiB0aGUgY3Vy cmVudCAxNiBieXRlIHBhZ2UsIGJlY2F1c2Ugb3RoZXJ3aXNlCi0rCSAgICAgQVNNX09VVFBVVF9N QVhfU0tJUF9BTElHTiBjb3VsZCBza2lwIG1heF9za2lwIG9yIGZld2VyCi0rCSAgICAgYnl0ZXMg dG8gcmVhY2ggMTYgYnl0ZSBib3VuZGFyeS4gICovCi0rCSAgaWYgKGFsaWduIDw9IDAKLSsJICAg ICAgfHwgKGFsaWduIDw9IDMgJiYgbWF4X3NraXAgIT0gKDEgPDwgYWxpZ24pIC0gMSkpCi0rCSAg ICBtYXhfc2tpcCA9IDA7Ci0rCSAgaWYgKGR1bXBfZmlsZSkKLSsJICAgIGZwcmludGYgKGR1bXBf ZmlsZSwgIkxhYmVsICVpIHdpdGggbWF4X3NraXAgJWlcbiIsCi0rCQkgICAgIElOU05fVUlEIChp bnNuKSwgbWF4X3NraXApOwotKwkgIGlmIChtYXhfc2tpcCkKLSsJICAgIHsKLSsJICAgICAgd2hp bGUgKG5ieXRlcyArIG1heF9za2lwID49IDE2KQotKwkJewotKwkJICBzdGFydCA9IE5FWFRfSU5T TiAoc3RhcnQpOwotKwkJICBpZiAoKEpVTVBfUCAoc3RhcnQpCi0rCQkgICAgICAgJiYgR0VUX0NP REUgKFBBVFRFUk4gKHN0YXJ0KSkgIT0gQUREUl9WRUMKLSsJCSAgICAgICAmJiBHRVRfQ09ERSAo UEFUVEVSTiAoc3RhcnQpKSAhPSBBRERSX0RJRkZfVkVDKQotKwkJICAgICAgfHwgQ0FMTF9QIChz dGFydCkpCi0rCQkgICAgbmp1bXBzLS0sIGlzanVtcCA9IDE7Ci0rCQkgIGVsc2UKLSsJCSAgICBp c2p1bXAgPSAwOwotKwkJICBuYnl0ZXMgLT0gbWluX2luc25fc2l6ZSAoc3RhcnQpOwotKwkJfQot KwkgICAgfQotKwkgIGNvbnRpbnVlOwotKwl9Ci0rCi0rICAgICAgbWluX3NpemUgPSBtaW5faW5z bl9zaXplIChpbnNuKTsKLSsgICAgICBuYnl0ZXMgKz0gbWluX3NpemU7Ci0gICAgICAgaWYgKGR1 bXBfZmlsZSkKLS0gICAgICAgIGZwcmludGYoZHVtcF9maWxlLCAiSW5zbiAlaSBlc3RpbWF0ZWQg dG8gJWkgYnl0ZXNcbiIsCi0tCQlJTlNOX1VJRCAoaW5zbiksIG1pbl9pbnNuX3NpemUgKGluc24p KTsKLSsJZnByaW50ZiAoZHVtcF9maWxlLCAiSW5zbiAlaSBlc3RpbWF0ZWQgdG8gJWkgYnl0ZXNc biIsCi0rCQkgSU5TTl9VSUQgKGluc24pLCBtaW5fc2l6ZSk7Ci0gICAgICAgaWYgKChKVU1QX1Ag KGluc24pCi0gCSAgICYmIEdFVF9DT0RFIChQQVRURVJOIChpbnNuKSkgIT0gQUREUl9WRUMKLSAJ ICAgJiYgR0VUX0NPREUgKFBBVFRFUk4gKGluc24pKSAhPSBBRERSX0RJRkZfVkVDKQotQEAgLTI3 MjA4LDcgKzI3MzQyLDcgQEAgaXg4Nl9hdm9pZF9qdW1wX21pc3NwcmVkaWN0cyAodm9pZCkKLSAg ICAgICBnY2NfYXNzZXJ0IChuanVtcHMgPj0gMCk7Ci0gICAgICAgaWYgKGR1bXBfZmlsZSkKLSAg ICAgICAgIGZwcmludGYgKGR1bXBfZmlsZSwgIkludGVydmFsICVpIHRvICVpIGhhcyAlaSBieXRl c1xuIiwKLS0JCUlOU05fVUlEIChzdGFydCksIElOU05fVUlEIChpbnNuKSwgbmJ5dGVzKTsKLSsJ CSBJTlNOX1VJRCAoc3RhcnQpLCBJTlNOX1VJRCAoaW5zbiksIG5ieXRlcyk7Ci0gCi0gICAgICAg aWYgKG5qdW1wcyA9PSAzICYmIGlzanVtcCAmJiBuYnl0ZXMgPCAxNikKLSAJewotQEAgLTI3MjE3 LDEwICsyNzM1MSwxMSBAQCBpeDg2X2F2b2lkX2p1bXBfbWlzc3ByZWRpY3RzICh2b2lkKQotIAkg IGlmIChkdW1wX2ZpbGUpCi0gCSAgICBmcHJpbnRmIChkdW1wX2ZpbGUsICJQYWRkaW5nIGluc24g JWkgYnkgJWkgYnl0ZXMhXG4iLAotIAkJICAgICBJTlNOX1VJRCAoaW5zbiksIHBhZHNpemUpOwot LSAgICAgICAgICBlbWl0X2luc25fYmVmb3JlIChnZW5fYWxpZ24gKEdFTl9JTlQgKHBhZHNpemUp KSwgaW5zbik7Ci0rICAgICAgICAgIGVtaXRfaW5zbl9iZWZvcmUgKGdlbl9wYWQgKEdFTl9JTlQg KHBhZHNpemUpKSwgaW5zbik7Ci0gCX0KLSAgICAgfQotIH0KLSsjZW5kaWYKLSAKLSAvKiBBTUQg QXRobG9uIHdvcmtzIGZhc3RlcgotICAgIHdoZW4gUkVUIGlzIG5vdCBkZXN0aW5hdGlvbiBvZiBj b25kaXRpb25hbCBqdW1wIG9yIGRpcmVjdGx5IHByZWNlZGVkCi1AQCAtMjcyODAsMTIgKzI3NDE1 LDE1IEBAIGl4ODZfcGFkX3JldHVybnMgKHZvaWQpCi0gc3RhdGljIHZvaWQKLSBpeDg2X3Jlb3Jn ICh2b2lkKQotIHsKLS0gIGlmIChUQVJHRVRfUEFEX1JFVFVSTlMgJiYgb3B0aW1pemUKLS0gICAg ICAmJiBvcHRpbWl6ZV9mdW5jdGlvbl9mb3Jfc3BlZWRfcCAoY2Z1bikpCi0tICAgIGl4ODZfcGFk X3JldHVybnMgKCk7Ci0tICBpZiAoVEFSR0VUX0ZPVVJfSlVNUF9MSU1JVCAmJiBvcHRpbWl6ZQot LSAgICAgICYmIG9wdGltaXplX2Z1bmN0aW9uX2Zvcl9zcGVlZF9wIChjZnVuKSkKLS0gICAgaXg4 Nl9hdm9pZF9qdW1wX21pc3NwcmVkaWN0cyAoKTsKLSsgIGlmIChvcHRpbWl6ZSAmJiBvcHRpbWl6 ZV9mdW5jdGlvbl9mb3Jfc3BlZWRfcCAoY2Z1bikpCi0rICAgIHsKLSsgICAgICBpZiAoVEFSR0VU X1BBRF9SRVRVUk5TKQotKwlpeDg2X3BhZF9yZXR1cm5zICgpOwotKyNpZmRlZiBBU01fT1VUUFVU X01BWF9TS0lQX1BBRAotKyAgICAgIGlmIChUQVJHRVRfRk9VUl9KVU1QX0xJTUlUKQotKwlpeDg2 X2F2b2lkX2p1bXBfbWlzcHJlZGljdHMgKCk7Ci0rI2VuZGlmCi0rICAgIH0KLSB9Ci0gCi0gLyog UmV0dXJuIG5vbnplcm8gd2hlbiBRSW1vZGUgcmVnaXN0ZXIgdGhhdCBtdXN0IGJlIHJlcHJlc2Vu dGVkIHZpYSBSRVggcHJlZml4Ci0tLS0gZ2NjL2NvbmZpZy9pMzg2L3ByZWRpY2F0ZXMubWQuamoJ MjAwOS0wMy0xMyAxNTo1MDozOS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvY29uZmlnL2kzODYv cHJlZGljYXRlcy5tZAkyMDA5LTA2LTA5IDExOjQ2OjUyLjAwMDAwMDAwMCArMDIwMAotQEAgLTc2 LDYgKzc2LDIwIEBAIChkZWZpbmVfcHJlZGljYXRlICJmbGFnc19yZWdfb3BlcmFuZCIKLSAgIChh bmQgKG1hdGNoX2NvZGUgInJlZyIpCi0gICAgICAgIChtYXRjaF90ZXN0ICJSRUdOTyAob3ApID09 IEZMQUdTX1JFRyIpKSkKLSAKLSs7OyBSZXR1cm4gdHJ1ZSBpZiBvcCBpcyBhIFFJbW9kZSByZWdp c3RlciBvcGVyYW5kIG90aGVyIHRoYW4KLSs7OyAlW2FiY2RdW2hsXS4KLSsoZGVmaW5lX3ByZWRp Y2F0ZSAiZXh0X1FJcmVnX29wZXJhbmQiCi0rICAoYW5kIChtYXRjaF9jb2RlICJyZWciKQotKyAg ICAgICAobWF0Y2hfdGVzdCAiVEFSR0VUXzY0QklUCi0rCQkgICAgJiYgR0VUX01PREUgKG9wKSA9 PSBRSW1vZGUKLSsJCSAgICAmJiBSRUdOTyAob3ApID4gQlhfUkVHIikpKQotKwotKzs7IFNpbWls YXJseSwgYnV0IGRvbid0IGNoZWNrIG1vZGUgb2YgdGhlIG9wZXJhbmQuCi0rKGRlZmluZV9wcmVk aWNhdGUgImV4dF9RSXJlZ19ub21vZGVfb3BlcmFuZCIKLSsgIChhbmQgKG1hdGNoX2NvZGUgInJl ZyIpCi0rICAgICAgIChtYXRjaF90ZXN0ICJUQVJHRVRfNjRCSVQKLSsJCSAgICAmJiBSRUdOTyAo b3ApID4gQlhfUkVHIikpKQotKwotIDs7IFJldHVybiB0cnVlIGlmIG9wIGlzIG5vdCB4bW0wIHJl Z2lzdGVyLgotIChkZWZpbmVfcHJlZGljYXRlICJyZWdfbm90X3htbTBfb3BlcmFuZCIKLSAgICAo YW5kIChtYXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQiKQotQEAgLTU3NCw2ICs1ODgs MTEgQEAgKGRlZmluZV9wcmVkaWNhdGUgImNvbnN0OF9vcGVyYW5kIgotICAgKGFuZCAobWF0Y2hf Y29kZSAiY29uc3RfaW50IikKLSAgICAgICAgKG1hdGNoX3Rlc3QgIklOVFZBTCAob3ApID09IDgi KSkpCi0gCi0rOzsgTWF0Y2ggZXhhY3RseSAxMjguCi0rKGRlZmluZV9wcmVkaWNhdGUgImNvbnN0 MTI4X29wZXJhbmQiCi0rICAoYW5kIChtYXRjaF9jb2RlICJjb25zdF9pbnQiKQotKyAgICAgICAo bWF0Y2hfdGVzdCAiSU5UVkFMIChvcCkgPT0gMTI4IikpKQotKwotIDs7IE1hdGNoIDIsIDQsIG9y IDguICBVc2VkIGZvciBsZWFsIG11bHRpcGxpY2FuZHMuCi0gKGRlZmluZV9wcmVkaWNhdGUgImNv bnN0MjQ4X29wZXJhbmQiCi0gICAobWF0Y2hfY29kZSAiY29uc3RfaW50IikKLUBAIC04NzgsNiAr ODk3LDkgQEAgKGRlZmluZV9wcmVkaWNhdGUgIm1lbW9yeV9kaXNwbGFjZW1lbnRfbwotICAgc3Ry dWN0IGl4ODZfYWRkcmVzcyBwYXJ0czsKLSAgIGludCBvazsKLSAKLSsgIGlmIChUQVJHRVRfNjRC SVQpCi0rICAgIHJldHVybiAwOwotKwotICAgb2sgPSBpeDg2X2RlY29tcG9zZV9hZGRyZXNzIChY RVhQIChvcCwgMCksICZwYXJ0cyk7Ci0gICBnY2NfYXNzZXJ0IChvayk7Ci0gCi0tLS0gZ2NjL2Nv bmZpZy9pMzg2L21teC5tZC5qagkyMDA5LTAzLTA0IDEyOjEyOjU4LjAwMDAwMDAwMCArMDEwMAot KysrIGdjYy9jb25maWcvaTM4Ni9tbXgubWQJMjAwOS0wNi0wOSAxMTo0Njo1Mi4wMDAwMDAwMDAg KzAyMDAKLUBAIC0xLDUgKzEsNSBAQAotIDs7IEdDQyBtYWNoaW5lIGRlc2NyaXB0aW9uIGZvciBN TVggYW5kIDNkTk9XISBpbnN0cnVjdGlvbnMKLS07OyBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDcs IDIwMDgKLSs7OyBDb3B5cmlnaHQgKEMpIDIwMDUsIDIwMDcsIDIwMDgsIDIwMDkKLSA7OyBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSA7OwotIDs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9m IEdDQy4KLUBAIC04NSw2ICs4NSwxMiBAQCAoZGVmaW5lX2luc24gIiptb3Y8bW9kZT5faW50ZXJu YWxfcmV4NjQiCi0gICAgICV2bW92cVx0eyUxLCAlMHwlMCwgJTF9IgotICAgWyhzZXRfYXR0ciAi dHlwZSIgImltb3YsaW1vdixtbXgsbW14bW92LG1teG1vdixzc2VjdnQsc3NlY3Z0LHNzZWxvZzEs c3NlbW92LHNzZW1vdixzc2Vtb3Ysc3NlbW92IikKLSAgICAoc2V0X2F0dHIgInVuaXQiICIqLCos KiwqLCosbW14LG1teCwqLCosKiwqLCoiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X3JlcCIgIios KiwqLCosKiwxLDEsKiwxLCosKiwqIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIq LCosKiwqLCosKiwqLCosKiwxLDEsMSIpCi0rICAgKHNldCAoYXR0ciAicHJlZml4X3JleCIpCi0r ICAgICAoaWZfdGhlbl9lbHNlIChlcV9hdHRyICJhbHRlcm5hdGl2ZSIgIjgsOSIpCi0rICAgICAg IChzeW1ib2xfcmVmICJ4ODZfZXh0ZW5kZWRfcmVnX21lbnRpb25lZF9wIChpbnNuKSIpCi0rICAg ICAgIChjb25zdF9zdHJpbmcgIioiKSkpCi0gICAgKHNldCAoYXR0ciAicHJlZml4IikKLSAgICAg IChpZl90aGVuX2Vsc2UgKGVxX2F0dHIgImFsdGVybmF0aXZlIiAiNyw4LDksMTAsMTEiKQotICAg ICAgICAoY29uc3Rfc3RyaW5nICJtYXliZV92ZXgiKQotQEAgLTExMSw2ICsxMTcsNyBAQCAoZGVm aW5lX2luc24gIiptb3Y8bW9kZT5faW50ZXJuYWxfYXZ4IgotICAgICAjIgotICAgWyhzZXRfYXR0 ciAidHlwZSIgIm1teCxtbXhtb3YsbW14bW92LHNzZWN2dCxzc2VjdnQsc3NlbG9nMSxzc2Vtb3Ys c3NlbW92LCosKiIpCi0gICAgKHNldF9hdHRyICJ1bml0IiAiKiwqLCosbW14LG1teCwqLCosKiwq LCoiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X3JlcCIgIiosKiwqLDEsMSwqLCosKiwqLCoiKQot ICAgIChzZXQgKGF0dHIgInByZWZpeCIpCi0gICAgICAoaWZfdGhlbl9lbHNlIChlcV9hdHRyICJh bHRlcm5hdGl2ZSIgIjUsNiw3IikKLSAgICAgICAgKGNvbnN0X3N0cmluZyAidmV4IikKLUBAIC0x NDEsNiArMTQ4LDggQEAgKGRlZmluZV9pbnNuICIqbW92PG1vZGU+X2ludGVybmFsIgotICAgICAj IgotICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teCxtbXhtb3YsbW14bW92LHNzZWN2dCxzc2VjdnQs c3NlbG9nMSxzc2Vtb3Ysc3NlbW92LHNzZWxvZzEsc3NlbW92LHNzZW1vdixzc2Vtb3YsKiwqIikK LSAgICAoc2V0X2F0dHIgInVuaXQiICIqLCosKixtbXgsbW14LCosKiwqLCosKiwqLCosKiwqIikK LSsgICAoc2V0X2F0dHIgInByZWZpeF9yZXAiICIqLCosKiwxLDEsKiwxLCosKiwqLCosKiwqLCoi KQotKyAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIiosKiwqLCosKiwqLCosMSwqLCosKiwq LCosKiIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiREksREksREksREksREksVEksREksREksVjRT RixWNFNGLFYyU0YsVjJTRixESSxESSIpXSkKLSAKLSAoZGVmaW5lX2V4cGFuZCAibW92djJzZiIK LUBAIC0xNzUsNiArMTg0LDggQEAgKGRlZmluZV9pbnNuICIqbW92djJzZl9pbnRlcm5hbF9yZXg2 NF9hdgotICAgICB2bW92cVx0eyUxLCAlMHwlMCwgJTF9IgotICAgWyhzZXRfYXR0ciAidHlwZSIg Imltb3YsaW1vdixtbXgsbW14bW92LG1teG1vdixzc2VjdnQsc3NlY3Z0LHNzZW1vdixzc2Vsb2cx LHNzZW1vdixzc2Vtb3Ysc3NlbW92LHNzZW1vdiIpCi0gICAgKHNldF9hdHRyICJ1bml0IiAiKiwq LCosKiwqLG1teCxtbXgsKiwqLCosKiwqLCoiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X3JlcCIg IiosKiwqLCosKiwxLDEsKiwqLCosKiwqLCoiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX3ZleCIg IiosKiwqLCosKiwqLCosKiwqLCosKiw0LDQiKQotICAgIChzZXQgKGF0dHIgInByZWZpeCIpCi0g ICAgICAoaWZfdGhlbl9lbHNlIChlcV9hdHRyICJhbHRlcm5hdGl2ZSIgIjcsOCw5LDEwLDExLDEy IikKLSAgICAgICAgKGNvbnN0X3N0cmluZyAidmV4IikKLUBAIC0yMDQsNiArMjE1LDcgQEAgKGRl ZmluZV9pbnNuICIqbW92djJzZl9pbnRlcm5hbF9yZXg2NCIKLSAgICAgbW92ZFx0eyUxLCAlMHwl MCwgJTF9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgImltb3YsaW1vdixtbXgsbW14bW92LG1teG1v dixzc2VjdnQsc3NlY3Z0LHNzZW1vdixzc2Vsb2cxLHNzZW1vdixzc2Vtb3Ysc3NlbW92LHNzZW1v diIpCi0gICAgKHNldF9hdHRyICJ1bml0IiAiKiwqLCosKiwqLG1teCxtbXgsKiwqLCosKiwqLCoi KQotKyAgIChzZXRfYXR0ciAicHJlZml4X3JlcCIgIiosKiwqLCosKiwxLDEsKiwqLCosKiwqLCoi KQotICAgIChzZXRfYXR0ciAibW9kZSIgIkRJLERJLERJLERJLERJLERJLERJLFY0U0YsVjRTRixW MlNGLFYyU0YsREksREkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqbW92djJzZl9pbnRlcm5hbF9h dngiCi1AQCAtMjI3LDYgKzIzOSw3IEBAIChkZWZpbmVfaW5zbiAiKm1vdnYyc2ZfaW50ZXJuYWxf YXZ4IgotICAgICAjIgotICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teCxtbXhtb3YsbW14bW92LHNz ZWN2dCxzc2VjdnQsc3NlbG9nMSxzc2Vtb3Ysc3NlbW92LHNzZW1vdiwqLCoiKQotICAgIChzZXRf YXR0ciAidW5pdCIgIiosKiwqLG1teCxtbXgsKiwqLCosKiwqLCoiKQotKyAgIChzZXRfYXR0ciAi cHJlZml4X3JlcCIgIiosKiwqLDEsMSwqLCosKiwqLCosKiIpCi0gICAgKHNldCAoYXR0ciAicHJl Zml4IikKLSAgICAgIChpZl90aGVuX2Vsc2UgKGVxX2F0dHIgImFsdGVybmF0aXZlIiAiNSw2LDcs OCIpCi0gICAgICAgIChjb25zdF9zdHJpbmcgInZleCIpCi1AQCAtMjU0LDYgKzI2Nyw3IEBAIChk ZWZpbmVfaW5zbiAiKm1vdnYyc2ZfaW50ZXJuYWwiCi0gICAgICMiCi0gICBbKHNldF9hdHRyICJ0 eXBlIiAibW14LG1teG1vdixtbXhtb3Ysc3NlY3Z0LHNzZWN2dCxzc2Vsb2cxLHNzZW1vdixzc2Vt b3Ysc3NlbW92LCosKiIpCi0gICAgKHNldF9hdHRyICJ1bml0IiAiKiwqLCosbW14LG1teCwqLCos KiwqLCosKiIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfcmVwIiAiKiwqLCosMSwxLCosKiwqLCos KiwqIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJESSxESSxESSxESSxESSxWNFNGLFY0U0YsVjJT RixWMlNGLERJLERJIildKQotIAotIDs7ICUlJSBUaGlzIG11bHRpd29yZCBzaGl0ZSBoYXMgZ290 IHRvIGdvLgotQEAgLTMxMyw2ICszMjcsNyBAQCAoZGVmaW5lX2luc24gIiptbXhfYWRkdjJzZjMi Ci0gICAiVEFSR0VUXzNETk9XICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChQTFVTLCBWMlNG bW9kZSwgb3BlcmFuZHMpIgotICAgInBmYWRkXHR7JTIsICUwfCUwLCAlMn0iCi0gICBbKHNldF9h dHRyICJ0eXBlIiAibW14YWRkIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQot ICAgIChzZXRfYXR0ciAibW9kZSIgIlYyU0YiKV0pCi0gCi0gKGRlZmluZV9leHBhbmQgIm1teF9z dWJ2MnNmMyIKLUBAIC0zMzgsNiArMzUzLDcgQEAgKGRlZmluZV9pbnNuICIqbW14X3N1YnYyc2Yz IgotICAgIHBmc3ViXHR7JTIsICUwfCUwLCAlMn0KLSAgICBwZnN1YnJcdHslMiwgJTB8JTAsICUy fSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJtbXhhZGQiKQotKyAgIChzZXRfYXR0ciAicHJlZml4 X2V4dHJhIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVjJTRiIpXSkKLSAKLSAoZGVmaW5l X2V4cGFuZCAibW14X211bHYyc2YzIgotQEAgLTM1NCw2ICszNzAsNyBAQCAoZGVmaW5lX2luc24g IiptbXhfbXVsdjJzZjMiCi0gICAiVEFSR0VUXzNETk9XICYmIGl4ODZfYmluYXJ5X29wZXJhdG9y X29rIChNVUxULCBWMlNGbW9kZSwgb3BlcmFuZHMpIgotICAgInBmbXVsXHR7JTIsICUwfCUwLCAl Mn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAibW14bXVsIikKLSsgICAoc2V0X2F0dHIgInByZWZp eF9leHRyYSIgIjEiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlYyU0YiKV0pCi0gCi0gOzsgPz8/ IEZvciAhZmxhZ19maW5pdGVfbWF0aF9vbmx5LCB0aGUgcmVwcmVzZW50YXRpb24gd2l0aCBTTUlO L1NNQVgKLUBAIC0zODEsNiArMzk4LDcgQEAgKGRlZmluZV9pbnNuICIqbW14Xzxjb2RlPnYyc2Yz X2Zpbml0ZSIKLSAgICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoPENPREU+LCBWMlNGbW9k ZSwgb3BlcmFuZHMpIgotICAgInBmPG1heG1pbmZwcmVmaXg+XHR7JTIsICUwfCUwLCAlMn0iCi0g ICBbKHNldF9hdHRyICJ0eXBlIiAibW14YWRkIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRy YSIgIjEiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlYyU0YiKV0pCi0gCi0gKGRlZmluZV9pbnNu ICIqbW14Xzxjb2RlPnYyc2YzIgotQEAgLTM5MSw2ICs0MDksNyBAQCAoZGVmaW5lX2luc24gIipt bXhfPGNvZGU+djJzZjMiCi0gICAiVEFSR0VUXzNETk9XIgotICAgInBmPG1heG1pbmZwcmVmaXg+ XHR7JTIsICUwfCUwLCAlMn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAibW14YWRkIikKLSsgICAo c2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlYyU0Yi KV0pCi0gCi0gKGRlZmluZV9pbnNuICJtbXhfcmNwdjJzZjIiCi1AQCAtNDAwLDYgKzQxOSw3IEBA IChkZWZpbmVfaW5zbiAibW14X3JjcHYyc2YyIgotICAgIlRBUkdFVF8zRE5PVyIKLSAgICJwZnJj cFx0eyUxLCAlMHwlMCwgJTF9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teCIpCi0rICAgKHNl dF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJWMlNGIild KQotIAotIChkZWZpbmVfaW5zbiAibW14X3JjcGl0MXYyc2YzIgotQEAgLTQxMCw2ICs0MzAsNyBA QCAoZGVmaW5lX2luc24gIm1teF9yY3BpdDF2MnNmMyIKLSAgICJUQVJHRVRfM0ROT1ciCi0gICAi cGZyY3BpdDFcdHslMiwgJTB8JTAsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJtbXgiKQot KyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAi VjJTRiIpXSkKLSAKLSAoZGVmaW5lX2luc24gIm1teF9yY3BpdDJ2MnNmMyIKLUBAIC00MjAsNiAr NDQxLDcgQEAgKGRlZmluZV9pbnNuICJtbXhfcmNwaXQydjJzZjMiCi0gICAiVEFSR0VUXzNETk9X IgotICAgInBmcmNwaXQyXHR7JTIsICUwfCUwLCAlMn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAi bW14IikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgIChzZXRfYXR0ciAi bW9kZSIgIlYyU0YiKV0pCi0gCi0gKGRlZmluZV9pbnNuICJtbXhfcnNxcnR2MnNmMiIKLUBAIC00 MjksNiArNDUxLDcgQEAgKGRlZmluZV9pbnNuICJtbXhfcnNxcnR2MnNmMiIKLSAgICJUQVJHRVRf M0ROT1ciCi0gICAicGZyc3FydFx0eyUxLCAlMHwlMCwgJTF9IgotICAgWyhzZXRfYXR0ciAidHlw ZSIgIm1teCIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgICAoc2V0X2F0 dHIgIm1vZGUiICJWMlNGIildKQotIAotIChkZWZpbmVfaW5zbiAibW14X3JzcWl0MXYyc2YzIgot QEAgLTQzOSw2ICs0NjIsNyBAQCAoZGVmaW5lX2luc24gIm1teF9yc3FpdDF2MnNmMyIKLSAgICJU QVJHRVRfM0ROT1ciCi0gICAicGZyc3FpdDFcdHslMiwgJTB8JTAsICUyfSIKLSAgIFsoc2V0X2F0 dHIgInR5cGUiICJtbXgiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0gICAg KHNldF9hdHRyICJtb2RlIiAiVjJTRiIpXSkKLSAKLSAoZGVmaW5lX2luc24gIm1teF9oYWRkdjJz ZjMiCi1AQCAtNDU3LDYgKzQ4MSw3IEBAIChkZWZpbmVfaW5zbiAibW14X2hhZGR2MnNmMyIKLSAg ICJUQVJHRVRfM0ROT1ciCi0gICAicGZhY2NcdHslMiwgJTB8JTAsICUyfSIKLSAgIFsoc2V0X2F0 dHIgInR5cGUiICJtbXhhZGQiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0g ICAgKHNldF9hdHRyICJtb2RlIiAiVjJTRiIpXSkKLSAKLSAoZGVmaW5lX2luc24gIm1teF9oc3Vi djJzZjMiCi1AQCAtNDc1LDYgKzUwMCw3IEBAIChkZWZpbmVfaW5zbiAibW14X2hzdWJ2MnNmMyIK LSAgICJUQVJHRVRfM0ROT1dfQSIKLSAgICJwZm5hY2NcdHslMiwgJTB8JTAsICUyfSIKLSAgIFso c2V0X2F0dHIgInR5cGUiICJtbXhhZGQiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAi MSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVjJTRiIpXSkKLSAKLSAoZGVmaW5lX2luc24gIm1t eF9hZGRzdWJ2MnNmMyIKLUBAIC00ODgsNiArNTE0LDcgQEAgKGRlZmluZV9pbnNuICJtbXhfYWRk c3VidjJzZjMiCi0gICAiVEFSR0VUXzNETk9XX0EiCi0gICAicGZwbmFjY1x0eyUyLCAlMHwlMCwg JTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teGFkZCIpCi0rICAgKHNldF9hdHRyICJwcmVm aXhfZXh0cmEiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJWMlNGIildKQotIAotIDs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7OwotQEAgLTUxMCw2ICs1MzcsNyBAQCAoZGVmaW5lX2luc24gIiptbXhfZXF2MnNmMyIK LSAgICJUQVJHRVRfM0ROT1cgJiYgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKEVRLCBWMlNGbW9k ZSwgb3BlcmFuZHMpIgotICAgInBmY21wZXFcdHslMiwgJTB8JTAsICUyfSIKLSAgIFsoc2V0X2F0 dHIgInR5cGUiICJtbXhjbXAiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0g ICAgKHNldF9hdHRyICJtb2RlIiAiVjJTRiIpXSkKLSAKLSAoZGVmaW5lX2luc24gIm1teF9ndHYy c2YzIgotQEAgLTUxOSw2ICs1NDcsNyBAQCAoZGVmaW5lX2luc24gIm1teF9ndHYyc2YzIgotICAg IlRBUkdFVF8zRE5PVyIKLSAgICJwZmNtcGd0XHR7JTIsICUwfCUwLCAlMn0iCi0gICBbKHNldF9h dHRyICJ0eXBlIiAibW14Y21wIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQot ICAgIChzZXRfYXR0ciAibW9kZSIgIlYyU0YiKV0pCi0gCi0gKGRlZmluZV9pbnNuICJtbXhfZ2V2 MnNmMyIKLUBAIC01MjgsNiArNTU3LDcgQEAgKGRlZmluZV9pbnNuICJtbXhfZ2V2MnNmMyIKLSAg ICJUQVJHRVRfM0ROT1ciCi0gICAicGZjbXBnZVx0eyUyLCAlMHwlMCwgJTJ9IgotICAgWyhzZXRf YXR0ciAidHlwZSIgIm1teGNtcCIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikK LSAgICAoc2V0X2F0dHIgIm1vZGUiICJWMlNGIildKQotIAotIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwotQEAgLTU0 Miw2ICs1NzIsNyBAQCAoZGVmaW5lX2luc24gIm1teF9wZjJpZCIKLSAgICJUQVJHRVRfM0ROT1ci Ci0gICAicGYyaWRcdHslMSwgJTB8JTAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJtbXhj dnQiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0gICAgKHNldF9hdHRyICJt b2RlIiAiVjJTRiIpXSkKLSAKLSAoZGVmaW5lX2luc24gIm1teF9wZjJpdyIKLUBAIC01NTMsNiAr NTg0LDcgQEAgKGRlZmluZV9pbnNuICJtbXhfcGYyaXciCi0gICAiVEFSR0VUXzNETk9XX0EiCi0g ICAicGYyaXdcdHslMSwgJTB8JTAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJtbXhjdnQi KQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2Rl IiAiVjJTRiIpXSkKLSAKLSAoZGVmaW5lX2luc24gIm1teF9waTJmdyIKLUBAIC01NjQsNiArNTk2 LDcgQEAgKGRlZmluZV9pbnNuICJtbXhfcGkyZnciCi0gICAiVEFSR0VUXzNETk9XX0EiCi0gICAi cGkyZndcdHslMSwgJTB8JTAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJtbXhjdnQiKQot KyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAi VjJTRiIpXSkKLSAKLSAoZGVmaW5lX2luc24gIm1teF9mbG9hdHYyc2kyIgotQEAgLTU3Miw2ICs2 MDUsNyBAQCAoZGVmaW5lX2luc24gIm1teF9mbG9hdHYyc2kyIgotICAgIlRBUkdFVF8zRE5PVyIK LSAgICJwaTJmZFx0eyUxLCAlMHwlMCwgJTF9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teGN2 dCIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgICAoc2V0X2F0dHIgIm1v ZGUiICJWMlNGIildKQotIAotIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwotQEAgLTU4Nyw2ICs2MjEsNyBAQCAoZGVm aW5lX2luc24gIm1teF9wc3dhcGR2MnNmMiIKLSAgICJUQVJHRVRfM0ROT1dfQSIKLSAgICJwc3dh cGRcdHslMSwgJTB8JTAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJtbXhjdnQiKQotKyAg IChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVjJT RiIpXSkKLSAKLSAoZGVmaW5lX2luc24gIip2ZWNfZHVwdjJzZiIKLUBAIC04ODcsNiArOTIyLDcg QEAgKGRlZmluZV9pbnNuICIqbW14X3BtdWxocnd2NGhpMyIKLSAgICJUQVJHRVRfM0ROT1cgJiYg aXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKE1VTFQsIFY0SEltb2RlLCBvcGVyYW5kcykiCi0gICAi cG11bGhyd1x0eyUyLCAlMHwlMCwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teG11bCIp Ci0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUi ICJESSIpXSkKLSAKLSAoZGVmaW5lX2V4cGFuZCAic3NlMl91bXVsdjFzaXYxZGkzIgotQEAgLTk2 NSw2ICsxMDAxLDEwIEBAIChkZWZpbmVfaW5zbiAibW14X2FzaHI8bW9kZT4zIgotICAgIlRBUkdF VF9NTVgiCi0gICAicHNyYTxtbXh2ZWNzaXplPlx0eyUyLCAlMHwlMCwgJTJ9IgotICAgWyhzZXRf YXR0ciAidHlwZSIgIm1teHNoZnQiKQotKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUi KQotKyAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZCAyICJjb25zdF9pbnRfb3BlcmFu ZCIgIiIpCi0rICAgICAgIChjb25zdF9zdHJpbmcgIjEiKQotKyAgICAgICAoY29uc3Rfc3RyaW5n ICIwIikpKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQotIAotIChkZWZpbmVfaW5zbiAi bW14X2xzaHI8bW9kZT4zIgotQEAgLTk3NSw2ICsxMDE1LDEwIEBAIChkZWZpbmVfaW5zbiAibW14 X2xzaHI8bW9kZT4zIgotICAgIlRBUkdFVF9NTVgiCi0gICAicHNybDxtbXh2ZWNzaXplPlx0eyUy LCAlMHwlMCwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teHNoZnQiKQotKyAgIChzZXQg KGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQotKyAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3Bl cmFuZCAyICJjb25zdF9pbnRfb3BlcmFuZCIgIiIpCi0rICAgICAgIChjb25zdF9zdHJpbmcgIjEi KQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIwIikpKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkRJ IildKQotIAotIChkZWZpbmVfaW5zbiAibW14X2FzaGw8bW9kZT4zIgotQEAgLTk4NSw2ICsxMDI5 LDEwIEBAIChkZWZpbmVfaW5zbiAibW14X2FzaGw8bW9kZT4zIgotICAgIlRBUkdFVF9NTVgiCi0g ICAicHNsbDxtbXh2ZWNzaXplPlx0eyUyLCAlMHwlMCwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlw ZSIgIm1teHNoZnQiKQotKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQotKyAgICAg KGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZCAyICJjb25zdF9pbnRfb3BlcmFuZCIgIiIpCi0r ICAgICAgIChjb25zdF9zdHJpbmcgIjEiKQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIwIikpKQot ICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQotIAotIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwotQEAgLTEyMDUs NiArMTI1Myw3IEBAIChkZWZpbmVfaW5zbiAiKm1teF9waW5zcnciCi0gICByZXR1cm4gInBpbnNy d1x0eyUzLCAlazIsICUwfCUwLCAlazIsICUzfSI7Ci0gfQotICAgWyhzZXRfYXR0ciAidHlwZSIg Im1teGN2dCIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNl dF9hdHRyICJtb2RlIiAiREkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICJtbXhfcGV4dHJ3IgotQEAg LTEyMTYsNiArMTI2NSw3IEBAIChkZWZpbmVfaW5zbiAibW14X3BleHRydyIKLSAgICJUQVJHRVRf U1NFIHx8IFRBUkdFVF8zRE5PV19BIgotICAgInBleHRyd1x0eyUyLCAlMSwgJTB8JTAsICUxLCAl Mn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAibW14Y3Z0IikKLSsgICAoc2V0X2F0dHIgImxlbmd0 aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkKLSAKLSAoZGVm aW5lX2V4cGFuZCAibW14X3BzaHVmdyIKLUBAIC0xMjUzLDYgKzEzMDMsNyBAQCAoZGVmaW5lX2lu c24gIm1teF9wc2h1ZndfMSIKLSAgIHJldHVybiAicHNodWZ3XHR7JTIsICUxLCAlMHwlMCwgJTEs ICUyfSI7Ci0gfQotICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teGN2dCIpCi0rICAgKHNldF9hdHRy ICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0g Ci0gKGRlZmluZV9pbnNuICJtbXhfcHN3YXBkdjJzaTIiCi1AQCAtMTI2Myw2ICsxMzE0LDcgQEAg KGRlZmluZV9pbnNuICJtbXhfcHN3YXBkdjJzaTIiCi0gICAiVEFSR0VUXzNETk9XX0EiCi0gICAi cHN3YXBkXHR7JTEsICUwfCUwLCAlMX0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAibW14Y3Z0IikK LSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgIChzZXRfYXR0ciAibW9kZSIg IkRJIildKQotIAotIChkZWZpbmVfaW5zbiAiKnZlY19kdXB2NGhpIgotQEAgLTEyNzMsNiArMTMy NSw3IEBAIChkZWZpbmVfaW5zbiAiKnZlY19kdXB2NGhpIgotICAgIlRBUkdFVF9TU0UgfHwgVEFS R0VUXzNETk9XX0EiCi0gICAicHNodWZ3XHR7JDAsICUwLCAlMHwlMCwgJTAsIDB9IgotICAgWyhz ZXRfYXR0ciAidHlwZSIgIm1teGN2dCIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRl IiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIq dmVjX2R1cHYyc2kiCi1AQCAtMTM0NSw2ICsxMzk4LDcgQEAgKGRlZmluZV9pbnNuICIqdmVjX2V4 dHJhY3R2MnNpXzEiCi0gICAgIwotICAgICMiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAibW14Y3Z0 LHNzZWxvZzEsc3NlbG9nMSxzc2Vsb2cxLG1teG1vdixzc2Vtb3YsaW1vdiIpCi0rICAgKHNldF9h dHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiKiwqLDEsKiwqLCosKiIpCi0gICAgKHNldF9hdHRyICJt b2RlIiAiREksVEksVEksVjRTRixTSSxTSSxTSSIpXSkKLSAKLSAoZGVmaW5lX3NwbGl0Ci1AQCAt MTQ5Miw2ICsxNTQ2LDExIEBAIChkZWZpbmVfaW5zbiAiKm1teF91YXZndjhxaTMiCi0gICAgIHJl dHVybiAicGF2Z3VzYlx0eyUyLCAlMHwlMCwgJTJ9IjsKLSB9Ci0gICBbKHNldF9hdHRyICJ0eXBl IiAibW14c2hmdCIpCi0rICAgKHNldCAoYXR0ciAicHJlZml4X2V4dHJhIikKLSsgICAgIChpZl90 aGVuX2Vsc2UKLSsgICAgICAgKGVxIChzeW1ib2xfcmVmICIoVEFSR0VUX1NTRSB8fCBUQVJHRVRf M0ROT1dfQSkiKSAoY29uc3RfaW50IDApKQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIxIikKLSsg ICAgICAgKGNvbnN0X3N0cmluZyAiKiIpKSkKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkK LSAKLSAoZGVmaW5lX2V4cGFuZCAibW14X3Vhdmd2NGhpMyIKLUBAIC0xNjAyLDYgKzE2NjEsNyBA QCAoZGVmaW5lX2luc24gIm1teF9lbW1zIgotICAgIlRBUkdFVF9NTVgiCi0gICAiZW1tcyIKLSAg IFsoc2V0X2F0dHIgInR5cGUiICJtbXgiKQotKyAgIChzZXRfYXR0ciAibW9kcm0iICIwIikKLSAg ICAoc2V0X2F0dHIgIm1lbW9yeSIgInVua25vd24iKV0pCi0gCi0gKGRlZmluZV9pbnNuICJtbXhf ZmVtbXMiCi1AQCAtMTYyNSw0ICsxNjg1LDUgQEAgKGRlZmluZV9pbnNuICJtbXhfZmVtbXMiCi0g ICAiVEFSR0VUXzNETk9XIgotICAgImZlbW1zIgotICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teCIp Ci0rICAgKHNldF9hdHRyICJtb2RybSIgIjAiKQotICAgIChzZXRfYXR0ciAibWVtb3J5IiAibm9u ZSIpXSkKLS0tLSBnY2MvY29uZmlnL2kzODYvc3NlLm1kLmpqCTIwMDktMDYtMDkgMTA6MjE6Mzgu MDAwMDAwMDAwICswMjAwCi0rKysgZ2NjL2NvbmZpZy9pMzg2L3NzZS5tZAkyMDA5LTA2LTA5IDEx OjQ2OjUzLjAwMDAwMDAwMCArMDIwMAotQEAgLTQzOSw2ICs0MzksNyBAQCAoZGVmaW5lX2luc24g InNzZTJfbW92bnRzaSIKLSAgICJUQVJHRVRfU1NFMiIKLSAgICJtb3ZudGlcdHslMSwgJTB8JTAs ICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vtb3YiKQotKyAgIChzZXRfYXR0ciAicHJl Zml4X2RhdGExNiIgIjAiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlYyREYiKV0pCi0gCi0gKGRl ZmluZV9pbnNuICJhdnhfbGRkcXU8YXZ4bW9kZXN1ZmZpeD4iCi1AQCAtNDYxLDYgKzQ2Miw3IEBA IChkZWZpbmVfaW5zbiAic3NlM19sZGRxdSIKLSAgICJsZGRxdVx0eyUxLCAlMHwlMCwgJTF9Igot ICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdiIpCi0gICAgKHNldF9hdHRyICJtb3Z1IiAiMSIp Ci0rICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCi0gICAgKHNldF9hdHRyICJwcmVm aXhfcmVwIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0gCi1AQCAtMTQwOSw2 ICsxNDExLDcgQEAgKGRlZmluZV9pbnNuICJhdnhfY21wcDxhdnhtb2Rlc3VmZml4ZjJjPgotICAg IlRBUkdFVF9BVlgiCi0gICAidmNtcHA8YXZ4bW9kZXN1ZmZpeGYyYz5cdHslMywgJTIsICUxLCAl MHwlMCwgJTEsICUyLCAlM30iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY21wIikKLSsgICAo c2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIg InZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQotIAotQEAgLTE0MjUsNiAr MTQyOCw3IEBAIChkZWZpbmVfaW5zbiAiYXZ4X2NtcHM8c3NlbW9kZXN1ZmZpeGYyYz4KLSAgICJU QVJHRVRfQVZYIgotICAgInZjbXBzPHNzZW1vZGVzdWZmaXhmMmM+XHR7JTMsICUyLCAlMSwgJTB8 JTAsICUxLCAlMiwgJTN9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWNtcCIpCi0rICAgKHNl dF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJ2 ZXgiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIjxzc2VzY2FsYXJtb2RlPiIpXSkKLSAKLUBAIC0x NDM5LDYgKzE0NDMsNyBAQCAoZGVmaW5lX2luc24gIiphdnhfbWFza2NtcDxtb2RlPjMiCi0gICAi dmNtcCVEM3A8YXZ4bW9kZXN1ZmZpeGYyYz5cdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgotICAg WyhzZXRfYXR0ciAidHlwZSIgInNzZWNtcCIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgi KQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAgIChzZXRfYXR0ciAi bW9kZSIgIjxhdnh2ZWNtb2RlPiIpXSkKLSAKLSAoZGVmaW5lX2luc24gIjxzc2U+X21hc2tjbXA8 bW9kZT4zIgotQEAgLTE0NTAsNiArMTQ1NSw3IEBAIChkZWZpbmVfaW5zbiAiPHNzZT5fbWFza2Nt cDxtb2RlPjMiCi0gICAgJiYgIVRBUkdFVF9TU0U1IgotICAgImNtcCVEMzxzc2Vtb2Rlc3VmZml4 ZjQ+XHR7JTIsICUwfCUwLCAlMn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY21wIikKLSsg ICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUi ICI8TU9ERT4iKV0pCi0gCi0gKGRlZmluZV9pbnNuICI8c3NlPl92bW1hc2tjbXA8bW9kZT4zIgot QEAgLTE0NjMsNiArMTQ2OSw3IEBAIChkZWZpbmVfaW5zbiAiPHNzZT5fdm1tYXNrY21wPG1vZGU+ MyIKLSAgICJTU0VfVkVDX0ZMT0FUX01PREVfUCAoPE1PREU+bW9kZSkgJiYgIVRBUkdFVF9TU0U1 IgotICAgImNtcCVEM3M8c3NlbW9kZXN1ZmZpeGYyYz5cdHslMiwgJTB8JTAsICUyfSIKLSAgIFso c2V0X2F0dHIgInR5cGUiICJzc2VjbXAiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0 ZSIgIjEiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIjxzc2VzY2FsYXJtb2RlPiIpXSkKLSAKLSAo ZGVmaW5lX2luc24gIjxzc2U+X2NvbWkiCi1AQCAtMTQ3OCw2ICsxNDg1LDExIEBAIChkZWZpbmVf aW5zbiAiPHNzZT5fY29taSIKLSAgICIldmNvbWlzPHNzZW1vZGVmc3VmZml4Plx0eyUxLCAlMHwl MCwgJTF9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWNvbWkiKQotICAgIChzZXRfYXR0ciAi cHJlZml4IiAibWF5YmVfdmV4IikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9yZXAiICIwIikKLSsg ICAoc2V0IChhdHRyICJwcmVmaXhfZGF0YTE2IikKLSsJKGlmX3RoZW5fZWxzZSAoZXFfYXR0ciAi bW9kZSIgIkRGIikKLSsJCSAgICAgIChjb25zdF9zdHJpbmcgIjEiKQotKwkJICAgICAgKGNvbnN0 X3N0cmluZyAiMCIpKSkKLSAgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCi0gCi0gKGRl ZmluZV9pbnNuICI8c3NlPl91Y29taSIKLUBAIC0xNDkzLDYgKzE1MDUsMTEgQEAgKGRlZmluZV9p bnNuICI8c3NlPl91Y29taSIKLSAgICIldnVjb21pczxzc2Vtb2RlZnN1ZmZpeD5cdHslMSwgJTB8 JTAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vjb21pIikKLSAgICAoc2V0X2F0dHIg InByZWZpeCIgIm1heWJlX3ZleCIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfcmVwIiAiMCIpCi0r ICAgKHNldCAoYXR0ciAicHJlZml4X2RhdGExNiIpCi0rCShpZl90aGVuX2Vsc2UgKGVxX2F0dHIg Im1vZGUiICJERiIpCi0rCQkgICAgICAoY29uc3Rfc3RyaW5nICIxIikKLSsJCSAgICAgIChjb25z dF9zdHJpbmcgIjAiKSkpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQotIAotIChk ZWZpbmVfZXhwYW5kICJ2Y29uZDxtb2RlPiIKLUBAIC0yMjI0LDYgKzIyNDEsNyBAQCAoZGVmaW5l X2luc24gInNzZV9jdnR0cHMycGkiCi0gICAiY3Z0dHBzMnBpXHR7JTEsICUwfCUwLCAlMX0iCi0g ICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY3Z0IikKLSAgICAoc2V0X2F0dHIgInVuaXQiICJtbXgi KQotKyAgIChzZXRfYXR0ciAicHJlZml4X3JlcCIgIjAiKQotICAgIChzZXRfYXR0ciAibW9kZSIg IlNGIildKQotIAotIChkZWZpbmVfaW5zbiAiKmF2eF9jdnRzaTJzcyIKLUBAIC0yMjYzLDYgKzIy ODEsNyBAQCAoZGVmaW5lX2luc24gIiphdnhfY3Z0c2kyc3NxIgotICAgIlRBUkdFVF9BVlggJiYg VEFSR0VUXzY0QklUIgotICAgInZjdnRzaTJzc3FcdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9Igot ICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWljdnQiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX3Zl eCIgIjQiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1v ZGUiICJTRiIpXSkKLSAKLUBAIC0yMjc2LDYgKzIyOTUsNyBAQCAoZGVmaW5lX2luc24gInNzZV9j dnRzaTJzc3EiCi0gICAiVEFSR0VUX1NTRSAmJiBUQVJHRVRfNjRCSVQiCi0gICAiY3Z0c2kyc3Nx XHR7JTIsICUwfCUwLCAlMn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWN2dCIpCi0rICAg KHNldF9hdHRyICJwcmVmaXhfcmV4IiAiMSIpCi0gICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2Rl IiAidmVjdG9yLGRvdWJsZSIpCi0gICAgKHNldF9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICJ2ZWN0 b3IsZG91YmxlIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJTRiIpXSkKLUBAIC0yNDIyLDYgKzI0 NDIsNyBAQCAoZGVmaW5lX2luc24gInNzZTJfY3Z0dHBzMmRxIgotICAgImN2dHRwczJkcVx0eyUx LCAlMHwlMCwgJTF9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWN2dCIpCi0gICAgKHNldF9h dHRyICJwcmVmaXhfcmVwIiAiMSIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIp Ci0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0gCi0gOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ci1AQCAtMjQz Nyw2ICsyNDU4LDcgQEAgKGRlZmluZV9pbnNuICJzc2UyX2N2dHBpMnBkIgotICAgImN2dHBpMnBk XHR7JTEsICUwfCUwLCAlMX0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY3Z0IikKLSAgICAo c2V0X2F0dHIgInVuaXQiICJtbXgsKiIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAi MSwqIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJWMkRGIildKQotIAotIChkZWZpbmVfaW5zbiAi c3NlMl9jdnRwZDJwaSIKLUBAIC0yNDk3LDYgKzI1MTksNyBAQCAoZGVmaW5lX2luc24gIiphdnhf Y3Z0c2kyc2RxIgotICAgIlRBUkdFVF9BVlggJiYgVEFSR0VUXzY0QklUIgotICAgInZjdnRzaTJz ZHFcdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlj dnQiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX3ZleCIgIjQiKQotICAgIChzZXRfYXR0ciAicHJl Zml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJERiIpXSkKLSAKLUBAIC0yNTEwLDYg KzI1MzMsNyBAQCAoZGVmaW5lX2luc24gInNzZTJfY3Z0c2kyc2RxIgotICAgIlRBUkdFVF9TU0Uy ICYmIFRBUkdFVF82NEJJVCIKLSAgICJjdnRzaTJzZHFcdHslMiwgJTB8JTAsICUyfSIKLSAgIFso c2V0X2F0dHIgInR5cGUiICJzc2VpY3Z0IikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9yZXgiICIx IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJERiIpCi0gICAgKHNldF9hdHRyICJhdGhsb25fZGVj b2RlIiAiZG91YmxlLGRpcmVjdCIpCi0gICAgKHNldF9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICJ2 ZWN0b3IsZG91YmxlIildKQotQEAgLTI2NTEsNiArMjY3NSw3IEBAIChkZWZpbmVfaW5zbiAiKnNz ZTJfY3Z0cGQyZHEiCi0gCQkgICAgICAgOiBcImN2dHBkMmRxXHR7JTEsICUwfCUwLCAlMX1cIjsi Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY3Z0IikKLSAgICAoc2V0X2F0dHIgInByZWZpeF9y ZXAiICIxIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIwIikKLSAgICAoc2V0X2F0 dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKQotICAg IChzZXRfYXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAiZG91YmxlIildKQotQEAgLTI2ODEsNyArMjcw Niw2IEBAIChkZWZpbmVfaW5zbiAiKnNzZTJfY3Z0dHBkMmRxIgotICAgIiogcmV0dXJuIFRBUkdF VF9BVlggPyBcInZjdnR0cGQyZHF7eH1cdHslMSwgJTB8JTAsICUxfVwiCi0gCQkgICAgICAgOiBc ImN2dHRwZDJkcVx0eyUxLCAlMHwlMCwgJTF9XCI7IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNz ZWN2dCIpCi0tICAgKHNldF9hdHRyICJwcmVmaXhfcmVwIiAiMSIpCi0gICAgKHNldF9hdHRyICJw cmVmaXgiICJtYXliZV92ZXgiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIikKLSAgICAoc2V0 X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRvdWJsZSIpXSkKLUBAIC0yODAwLDYgKzI4MjQsNyBA QCAoZGVmaW5lX2luc24gInNzZTJfY3Z0cHMycGQiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl Y3Z0IikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCi0gICAgKHNldF9hdHRy ICJtb2RlIiAiVjJERiIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCi0gICAg KHNldF9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICJkaXJlY3QiKV0pCi0gCi0gKGRlZmluZV9leHBh bmQgInZlY191bnBhY2tzX2hpX3Y0c2YiCi1AQCAtMzI3MCw2ICszMjk1LDcgQEAgKGRlZmluZV9p bnNuICJhdnhfc2h1ZnBzMjU2XzEiCi0gICByZXR1cm4gInZzaHVmcHNcdHslMywgJTIsICUxLCAl MHwlMCwgJTEsICUyLCAlM30iOwotIH0KLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQot KyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAgIChzZXRfYXR0ciAicHJl Zml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJWOFNGIildKQotIAotQEAgLTMzMTEs NiArMzMzNyw3IEBAIChkZWZpbmVfaW5zbiAiKmF2eF9zaHVmcHNfPG1vZGU+IgotICAgcmV0dXJu ICJ2c2h1ZnBzXHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9IjsKLSB9Ci0gICBbKHNl dF9hdHRyICJ0eXBlIiAic3NlbG9nIikKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUi ICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCi0gICAgKHNldF9hdHRyICJtb2Rl IiAiVjRTRiIpXSkKLSAKLUBAIC0zMzM2LDYgKzMzNjMsNyBAQCAoZGVmaW5lX2luc24gInNzZV9z aHVmcHNfPG1vZGU+IgotICAgcmV0dXJuICJzaHVmcHNcdHslMywgJTIsICUwfCUwLCAlMiwgJTN9 IjsKLSB9Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikKLSsgICAoc2V0X2F0dHIgImxl bmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJWNFNGIildKQotIAot IChkZWZpbmVfaW5zbiAic3NlX3N0b3JlaHBzIgotQEAgLTM0NDMsNiArMzQ3MSw3IEBAIChkZWZp bmVfaW5zbiAiKmF2eF9sb2FkbHBzIgotICAgIHZtb3ZscHNcdHslMiwgJTEsICUwfCUwLCAlMSwg JTJ9Ci0gICAgdm1vdmxwc1x0eyUyLCAlMHwlMCwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIg InNzZWxvZyxzc2Vtb3Ysc3NlbW92IikKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUi ICIxLCosKiIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAgIChzZXRfYXR0ciAi bW9kZSIgIlY0U0YsVjJTRixWMlNGIildKQotIAotQEAgLTM0NTksNiArMzQ4OCw3IEBAIChkZWZp bmVfaW5zbiAic3NlX2xvYWRscHMiCi0gICAgbW92bHBzXHR7JTIsICUwfCUwLCAlMn0KLSAgICBt b3ZscHNcdHslMiwgJTB8JTAsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2csc3Nl bW92LHNzZW1vdiIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSwqLCoiKQot ICAgIChzZXRfYXR0ciAibW9kZSIgIlY0U0YsVjJTRixWMlNGIildKQotIAotIChkZWZpbmVfaW5z biAiKmF2eF9tb3ZzcyIKLUBAIC0zNDkxLDYgKzM1MjEsNyBAQCAoZGVmaW5lX2luc24gIip2ZWNf ZHVwdjRzZl9hdngiCi0gICAiVEFSR0VUX0FWWCIKLSAgICJ2c2h1ZnBzXHR7JDAsICUxLCAlMSwg JTB8JTAsICUxLCAlMSwgMH0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCi0rICAg KHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgi ICJ2ZXgiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlY0U0YiKV0pCi0gCi1AQCAtMzUwMSw2ICsz NTMyLDcgQEAgKGRlZmluZV9pbnNuICIqdmVjX2R1cHY0c2YiCi0gICAiVEFSR0VUX1NTRSIKLSAg ICJzaHVmcHNcdHskMCwgJTAsICUwfCUwLCAlMCwgMH0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAi c3NlbG9nMSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNl dF9hdHRyICJtb2RlIiAiVjRTRiIpXSkKLSAKLSAoZGVmaW5lX2luc24gIip2ZWNfY29uY2F0djJz Zl9hdngiCi1AQCAtMzUxNiw2ICszNTQ4LDggQEAgKGRlZmluZV9pbnNuICIqdmVjX2NvbmNhdHYy c2ZfYXZ4IgotICAgIHB1bnBja2xkcVx0eyUyLCAlMHwlMCwgJTJ9Ci0gICAgbW92ZFx0eyUxLCAl MHwlMCwgJTF9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyxzc2Vsb2csc3NlbW92LG1t eGN2dCxtbXhtb3YiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIiosMSwqLCos KiIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIqLDEsKiwqLCoiKQotICAgIChzZXQg KGF0dHIgInByZWZpeCIpCi0gICAgICAoaWZfdGhlbl9lbHNlIChlcV9hdHRyICJhbHRlcm5hdGl2 ZSIgIjMsNCIpCi0gICAgICAgIChjb25zdF9zdHJpbmcgIm9yaWciKQotQEAgLTM1MzcsNyArMzU3 MSw5IEBAIChkZWZpbmVfaW5zbiAiKnZlY19jb25jYXR2MnNmX3NzZTRfMSIKLSAgICBwdW5wY2ts ZHFcdHslMiwgJTB8JTAsICUyfQotICAgIG1vdmRcdHslMSwgJTB8JTAsICUxfSIKLSAgIFsoc2V0 X2F0dHIgInR5cGUiICJzc2Vsb2csc3NlbG9nLHNzZW1vdixtbXhjdnQsbW14bW92IikKLSsgICAo c2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIqLDEsKiwqLCoiKQotICAgIChzZXRfYXR0ciAicHJl Zml4X2V4dHJhIiAiKiwxLCosKiwqIikKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUi ICIqLDEsKiwqLCoiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlY0U0YsVjRTRixTRixESSxESSIp XSkKLSAKLSA7OyA/Pz8gSW4gdGhlb3J5IHdlIGNhbiBtYXRjaCBtZW1vcnkgZm9yIHRoZSBNTVgg YWx0ZXJuYXRpdmUsIGJ1dCBhbGxvd2luZwotQEAgLTM2MzgsNiArMzY3NCw4IEBAIChkZWZpbmVf aW5zbiAiKnZlY19zZXR2NHNmX2F2eCIKLSAgIHJldHVybiAidmluc2VydHBzXHR7JTMsICUyLCAl MSwgJTB8JTAsICUxLCAlMiwgJTN9IjsKLSB9Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9n IikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotKyAgIChzZXRfYXR0ciAibGVu Z3RoX2ltbWVkaWF0ZSIgIjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgICAo c2V0X2F0dHIgIm1vZGUiICJWNFNGIildKQotIAotQEAgLTM2NTQsNyArMzY5Miw5IEBAIChkZWZp bmVfaW5zbiAiKnZlY19zZXR2NHNmX3NzZTRfMSIKLSAgIHJldHVybiAiaW5zZXJ0cHNcdHslMywg JTIsICUwfCUwLCAlMiwgJTN9IjsKLSB9Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikK LSsgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZp eF9leHRyYSIgIjEiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAg IChzZXRfYXR0ciAibW9kZSIgIlY0U0YiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqYXZ4X2luc2Vy dHBzIgotQEAgLTM2NjcsNiArMzcwNyw4IEBAIChkZWZpbmVfaW5zbiAiKmF2eF9pbnNlcnRwcyIK LSAgICJ2aW5zZXJ0cHNcdHslMywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iOwotICAgWyhz ZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQot KyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhf aW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVjRTRiIpXSkKLSAKLSAoZGVm aW5lX2luc24gInNzZTRfMV9pbnNlcnRwcyIKLUBAIC0zNjc4LDcgKzM3MjAsOSBAQCAoZGVmaW5l X2luc24gInNzZTRfMV9pbnNlcnRwcyIKLSAgICJUQVJHRVRfU1NFNF8xIgotICAgImluc2VydHBz XHR7JTMsICUyLCAlMHwlMCwgJTIsICUzfSI7Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9n IikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikKLSAgICAoc2V0X2F0dHIgInBy ZWZpeF9leHRyYSIgIjEiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQot ICAgIChzZXRfYXR0ciAibW9kZSIgIlY0U0YiKV0pCi0gCi0gKGRlZmluZV9zcGxpdAotQEAgLTM3 NTMsNiArMzc5Nyw4IEBAIChkZWZpbmVfaW5zbiAidmVjX2V4dHJhY3RfbG9fPG1vZGU+IgotICAg IlRBUkdFVF9BVlgiCi0gICAidmV4dHJhY3RmMTI4XHR7JDB4MCwgJTEsICUwfCUwLCAlMSwgMHgw fSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQotKyAgIChzZXRfYXR0ciAicHJlZml4 X2V4dHJhIiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAg KHNldF9hdHRyICJtZW1vcnkiICJub25lLHN0b3JlIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIg InZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVjhTRiIpXSkKLUBAIC0zNzY1LDYgKzM4MTEs OCBAQCAoZGVmaW5lX2luc24gInZlY19leHRyYWN0X2hpXzxtb2RlPiIKLSAgICJUQVJHRVRfQVZY IgotICAgInZleHRyYWN0ZjEyOFx0eyQweDEsICUxLCAlMHwlMCwgJTEsIDB4MX0iCi0gICBbKHNl dF9hdHRyICJ0eXBlIiAic3NlbG9nIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEi KQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAgIChzZXRfYXR0ciAi bWVtb3J5IiAibm9uZSxzdG9yZSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAg IChzZXRfYXR0ciAibW9kZSIgIlY4U0YiKV0pCi1AQCAtMzc3OCw2ICszODI2LDggQEAgKGRlZmlu ZV9pbnNuICJ2ZWNfZXh0cmFjdF9sb188bW9kZT4iCi0gICAiVEFSR0VUX0FWWCIKLSAgICJ2ZXh0 cmFjdGYxMjhcdHskMHgxLCAlMSwgJTB8JTAsICUxLCAweDF9IgotICAgWyhzZXRfYXR0ciAidHlw ZSIgInNzZWxvZyIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0 X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgIm1lbW9yeSIgIm5v bmUsc3RvcmUiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIg Im1vZGUiICJWOFNGIildKQotQEAgLTM3OTEsNiArMzg0MSw4IEBAIChkZWZpbmVfaW5zbiAidmVj X2V4dHJhY3RfaGlfPG1vZGU+IgotICAgIlRBUkdFVF9BVlgiCi0gICAidmV4dHJhY3RmMTI4XHR7 JDB4MSwgJTEsICUwfCUwLCAlMSwgMHgxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ci KQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5n dGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJtZW1vcnkiICJub25lLHN0b3JlIikK LSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVjhT RiIpXSkKLUBAIC0zODA2LDYgKzM4NTgsOCBAQCAoZGVmaW5lX2luc24gInZlY19leHRyYWN0X2xv X3YxNmhpIgotICAgIlRBUkdFVF9BVlgiCi0gICAidmV4dHJhY3RmMTI4XHR7JDB4MSwgJTEsICUw fCUwLCAlMSwgMHgxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQotKyAgIChzZXRf YXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRl IiAiMSIpCi0gICAgKHNldF9hdHRyICJtZW1vcnkiICJub25lLHN0b3JlIikKLSAgICAoc2V0X2F0 dHIgInByZWZpeCIgInZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVjhTRiIpXSkKLUBAIC0z ODIxLDYgKzM4NzUsOCBAQCAoZGVmaW5lX2luc24gInZlY19leHRyYWN0X2hpX3YxNmhpIgotICAg IlRBUkdFVF9BVlgiCi0gICAidmV4dHJhY3RmMTI4XHR7JDB4MSwgJTEsICUwfCUwLCAlMSwgMHgx fSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQotKyAgIChzZXRfYXR0ciAicHJlZml4 X2V4dHJhIiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAg KHNldF9hdHRyICJtZW1vcnkiICJub25lLHN0b3JlIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIg InZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVjhTRiIpXSkKLUBAIC0zODQwLDYgKzM4OTYs OCBAQCAoZGVmaW5lX2luc24gInZlY19leHRyYWN0X2xvX3YzMnFpIgotICAgIlRBUkdFVF9BVlgi Ci0gICAidmV4dHJhY3RmMTI4XHR7JDB4MSwgJTEsICUwfCUwLCAlMSwgMHgxfSIKLSAgIFsoc2V0 X2F0dHIgInR5cGUiICJzc2Vsb2ciKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIp Ci0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJt ZW1vcnkiICJub25lLHN0b3JlIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCi0gICAg KHNldF9hdHRyICJtb2RlIiAiVjhTRiIpXSkKLUBAIC0zODU5LDYgKzM5MTcsOCBAQCAoZGVmaW5l X2luc24gInZlY19leHRyYWN0X2hpX3YzMnFpIgotICAgIlRBUkdFVF9BVlgiCi0gICAidmV4dHJh Y3RmMTI4XHR7JDB4MSwgJTEsICUwfCUwLCAlMSwgMHgxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUi ICJzc2Vsb2ciKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNldF9h dHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJtZW1vcnkiICJub25l LHN0b3JlIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCi0gICAgKHNldF9hdHRyICJt b2RlIiAiVjhTRiIpXSkKLUBAIC0zODcxLDcgKzM5MzEsOSBAQCAoZGVmaW5lX2luc24gIipzc2U0 XzFfZXh0cmFjdHBzIgotICAgIlRBUkdFVF9TU0U0XzEiCi0gICAiJXZleHRyYWN0cHNcdHslMiwg JTEsICUwfCUwLCAlMSwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCi0rICAg KHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfZXh0 cmEiICIxIikKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0 X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVjRTRiIp XSkKLSAKLUBAIC0zOTY0LDYgKzQwMjYsNyBAQCAoZGVmaW5lX2luc24gInNzZTJfdW5wY2tocGQi Ci0gICAgbW92bHBkXHR7JUgxLCAlMHwlMCwgJUgxfQotICAgIG1vdmhwZFx0eyUxLCAlMHwlMCwg JTF9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyxzc2Vtb3Ysc3NlbW92IikKLSsgICAo c2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIqLDEsMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAi VjJERixWMURGLFYxREYiKV0pCi0gCi0gKGRlZmluZV9pbnNuICJhdnhfbW92ZGR1cDI1NiIKLUBA IC00MDg0LDYgKzQxNDcsNyBAQCAoZGVmaW5lX2luc24gInNzZTJfdW5wY2tscGQiCi0gICAgbW92 aHBkXHR7JTIsICUwfCUwLCAlMn0KLSAgICBtb3ZscGRcdHslMiwgJUgwfCVIMCwgJTJ9IgotICAg WyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyxzc2Vtb3Ysc3NlbW92IikKLSsgICAoc2V0X2F0dHIg InByZWZpeF9kYXRhMTYiICIqLDEsMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVjJERixWMURG LFYxREYiKV0pCi0gCi0gKGRlZmluZV9leHBhbmQgImF2eF9zaHVmcGQyNTYiCi1AQCAtNDEyNCw2 ICs0MTg4LDcgQEAgKGRlZmluZV9pbnNuICJhdnhfc2h1ZnBkMjU2XzEiCi0gICByZXR1cm4gInZz aHVmcGRcdHslMywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iOwotIH0KLSAgIFsoc2V0X2F0 dHIgInR5cGUiICJzc2Vsb2ciKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEi KQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJW NERGIildKQotIAotQEAgLTQyNjAsNiArNDMyNSw3IEBAIChkZWZpbmVfaW5zbiAiKmF2eF9zaHVm cGRfPG1vZGU+IgotICAgcmV0dXJuICJ2c2h1ZnBkXHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAl MiwgJTN9IjsKLSB9Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikKLSsgICAoc2V0X2F0 dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIp Ci0gICAgKHNldF9hdHRyICJtb2RlIiAiVjJERiIpXSkKLSAKLUBAIC00MjgxLDYgKzQzNDcsNyBA QCAoZGVmaW5lX2luc24gInNzZTJfc2h1ZnBkXzxtb2RlPiIKLSAgIHJldHVybiAic2h1ZnBkXHR7 JTMsICUyLCAlMHwlMCwgJTIsICUzfSI7Ci0gfQotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxv ZyIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRy ICJtb2RlIiAiVjJERiIpXSkKLSAKLSA7OyBBdm9pZCBjb21iaW5pbmcgcmVnaXN0ZXJzIGZyb20g ZGlmZmVyZW50IHVuaXRzIGluIGEgc2luZ2xlIGFsdGVybmF0aXZlLAotQEAgLTQzMTQsNiArNDM4 MSw3IEBAIChkZWZpbmVfaW5zbiAic3NlMl9zdG9yZWhwZCIKLSAgICAjCi0gICAgIyIKLSAgIFso c2V0X2F0dHIgInR5cGUiICJzc2Vtb3Ysc3NlbG9nMSxzc2Vtb3YsZm1vdixpbW92IikKLSsgICAo c2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIxLCosKiwqLCoiKQotICAgIChzZXRfYXR0ciAibW9k ZSIgIlYxREYsVjJERixERixERixERiIpXSkKLSAKLSAoZGVmaW5lX3NwbGl0Ci1AQCAtNDM0Miw2 ICs0NDEwLDcgQEAgKGRlZmluZV9pbnNuICJzc2UyX3N0b3JlbHBkIgotICAgICMKLSAgICAjIgot ICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdixzc2Vtb3Ysc3NlbW92LGZtb3YsaW1vdiIpCi0r ICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSwqLCosKiwqIikKLSAgICAoc2V0X2F0dHIg InByZWZpeCIgIm1heWJlX3ZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVjFERixERixERixE RixERiIpXSkKLSAKLUBAIC00NDA4LDYgKzQ0NzcsOCBAQCAoZGVmaW5lX2luc24gInNzZTJfbG9h ZGhwZCIKLSAgICAjCi0gICAgIyIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vtb3Ysc3NlbG9n LHNzZWxvZyxzc2Vtb3YsZm1vdixpbW92IikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYi ICIxLCosKiwqLCosKiIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiKiwqLDEs KiwqLCoiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlYxREYsVjJERixWMkRGLERGLERGLERGIild KQotIAotIChkZWZpbmVfc3BsaXQKLUBAIC00NDcxLDYgKzQ1NDIsOCBAQCAoZGVmaW5lX2luc24g InNzZTJfbG9hZGxwZCIKLSAgICAjCi0gICAgIyIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vt b3Ysc3NlbW92LHNzZW1vdixzc2Vsb2csc3NlbW92LHNzZW1vdixmbW92LGltb3YiKQotKyAgIChz ZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIiosMSwqLCosMSwqLCosKiIpCi0rICAgKHNldF9hdHRy ICJsZW5ndGhfaW1tZWRpYXRlIiAiKiwqLCosMSwqLCosKiwqIikKLSAgICAoc2V0X2F0dHIgIm1v ZGUiICJERixWMURGLFYxREYsVjJERixWMURGLERGLERGLERGIildKQotIAotIChkZWZpbmVfc3Bs aXQKLUBAIC00NTQ2LDYgKzQ2MTksOCBAQCAoZGVmaW5lX2luc24gInNzZTJfbW92c2QiCi0gICAg bW92aHBzXHR7JUgxLCAlMHwlMCwgJUgxfQotICAgIG1vdmhwc1x0eyUxLCAlSDB8JUgwLCAlMX0i Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbW92LHNzZW1vdixzc2Vtb3Ysc3NlbG9nLHNzZW1v dixzc2Vtb3YiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIiosMSwxLCosKiwqIikK LSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIqLCosKiwxLCosKiIpCi0gICAgKHNl dF9hdHRyICJtb2RlIiAiREYsVjFERixWMURGLFYyREYsVjFERixWMURGIildKQotIAotIChkZWZp bmVfaW5zbiAiKnZlY19kdXB2MmRmX3NzZTMiCi1AQCAtNDYwNSw2ICs0NjgwLDcgQEAgKGRlZmlu ZV9pbnNuICIqdmVjX2NvbmNhdHYyZGYiCi0gICAgbW92bGhwc1x0eyUyLCAlMHwlMCwgJTJ9Ci0g ICAgbW92aHBzXHR7JTIsICUwfCUwLCAlMn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9n LHNzZW1vdixzc2Vtb3Ysc3NlbW92LHNzZW1vdiIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZGF0 YTE2IiAiKiwxLCosKiwqIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJWMkRGLFYxREYsREYsVjRT RixWMlNGIildKQotIAotIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwotQEAgLTQ5NTMsNiArNTAyOSw3IEBAIChkZWZp bmVfaW5zbiAiKmF2eF9tdWx2MnNpdjJkaTMiCi0gICAiVEFSR0VUX0FWWCAmJiBpeDg2X2JpbmFy eV9vcGVyYXRvcl9vayAoTVVMVCwgVjRTSW1vZGUsIG9wZXJhbmRzKSIKLSAgICJ2cG11bGRxXHR7 JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpbXVsIikK LSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4 IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLSAKLUBAIC01MDk5LDYgKzUx NzYsNyBAQCAoZGVmaW5lX2luc24gIiphdnhfbXVsdjRzaTMiCi0gICAiVEFSR0VUX0FWWCAmJiBp eDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoTVVMVCwgVjRTSW1vZGUsIG9wZXJhbmRzKSIKLSAgICJ2 cG11bGxkXHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJz c2VpbXVsIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgIChzZXRfYXR0 ciAicHJlZml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLSAKLUBAIC01 NDk0LDYgKzU1NzIsMTAgQEAgKGRlZmluZV9pbnNuICIqYXZ4X2FzaHI8bW9kZT4zIgotICAgInZw c3JhPHNzZXZlY3NpemU+XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKLSAgIFsoc2V0X2F0dHIg InR5cGUiICJzc2Vpc2hmdCIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotKyAgIChz ZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQotKyAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hf b3BlcmFuZCAyICJjb25zdF9pbnRfb3BlcmFuZCIgIiIpCi0rICAgICAgIChjb25zdF9zdHJpbmcg IjEiKQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIwIikpKQotICAgIChzZXRfYXR0ciAibW9kZSIg IlRJIildKQotIAotIChkZWZpbmVfaW5zbiAiYXNocjxtb2RlPjMiCi1AQCAtNTUwNSw2ICs1NTg3 LDEwIEBAIChkZWZpbmVfaW5zbiAiYXNocjxtb2RlPjMiCi0gICAicHNyYTxzc2V2ZWNzaXplPlx0 eyUyLCAlMHwlMCwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlzaGZ0IikKLSAgICAo c2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikKLSsgICAoc2V0IChhdHRyICJsZW5ndGhfaW1t ZWRpYXRlIikKLSsgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQgMiAiY29uc3RfaW50 X29wZXJhbmQiICIiKQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIxIikKLSsgICAgICAgKGNvbnN0 X3N0cmluZyAiMCIpKSkKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLSAKLSAoZGVmaW5l X2luc24gIiphdnhfbHNocjxtb2RlPjMiCi1AQCAtNTUxNiw2ICs1NjAyLDEwIEBAIChkZWZpbmVf aW5zbiAiKmF2eF9sc2hyPG1vZGU+MyIKLSAgICJ2cHNybDxzc2V2ZWNzaXplPlx0eyUyLCAlMSwg JTB8JTAsICUxLCAlMn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaXNoZnQiKQotICAgIChz ZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSsgICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRl IikKLSsgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQgMiAiY29uc3RfaW50X29wZXJh bmQiICIiKQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIxIikKLSsgICAgICAgKGNvbnN0X3N0cmlu ZyAiMCIpKSkKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLSAKLSAoZGVmaW5lX2luc24g ImxzaHI8bW9kZT4zIgotQEAgLTU1MjcsNiArNTYxNywxMCBAQCAoZGVmaW5lX2luc24gImxzaHI8 bW9kZT4zIgotICAgInBzcmw8c3NldmVjc2l6ZT5cdHslMiwgJTB8JTAsICUyfSIKLSAgIFsoc2V0 X2F0dHIgInR5cGUiICJzc2Vpc2hmdCIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAi MSIpCi0rICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIpCi0rICAgICAoaWZfdGhlbl9l bHNlIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0X2ludF9vcGVyYW5kIiAiIikKLSsgICAgICAgKGNv bnN0X3N0cmluZyAiMSIpCi0rICAgICAgIChjb25zdF9zdHJpbmcgIjAiKSkpCi0gICAgKHNldF9h dHRyICJtb2RlIiAiVEkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqYXZ4X2FzaGw8bW9kZT4zIgot QEAgLTU1MzgsNiArNTYzMiwxMCBAQCAoZGVmaW5lX2luc24gIiphdnhfYXNobDxtb2RlPjMiCi0g ICAidnBzbGw8c3NldmVjc2l6ZT5cdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgotICAgWyhzZXRf YXR0ciAidHlwZSIgInNzZWlzaGZ0IikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCi0r ICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIpCi0rICAgICAoaWZfdGhlbl9lbHNlICht YXRjaF9vcGVyYW5kIDIgImNvbnN0X2ludF9vcGVyYW5kIiAiIikKLSsgICAgICAgKGNvbnN0X3N0 cmluZyAiMSIpCi0rICAgICAgIChjb25zdF9zdHJpbmcgIjAiKSkpCi0gICAgKHNldF9hdHRyICJt b2RlIiAiVEkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICJhc2hsPG1vZGU+MyIKLUBAIC01NTQ5LDYg KzU2NDcsMTAgQEAgKGRlZmluZV9pbnNuICJhc2hsPG1vZGU+MyIKLSAgICJwc2xsPHNzZXZlY3Np emU+XHR7JTIsICUwfCUwLCAlMn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaXNoZnQiKQot ICAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQotKyAgIChzZXQgKGF0dHIgImxlbmd0 aF9pbW1lZGlhdGUiKQotKyAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZCAyICJjb25z dF9pbnRfb3BlcmFuZCIgIiIpCi0rICAgICAgIChjb25zdF9zdHJpbmcgIjEiKQotKyAgICAgICAo Y29uc3Rfc3RyaW5nICIwIikpKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotIAotIChk ZWZpbmVfZXhwYW5kICJ2ZWNfc2hsXzxtb2RlPiIKLUBAIC01NTc5LDYgKzU2ODEsMTIgQEAgKGRl ZmluZV9pbnNuICIqYXZ4Xzxjb2RlPjxtb2RlPjMiCi0gICAiVEFSR0VUX0FWWCAmJiBpeDg2X2Jp bmFyeV9vcGVyYXRvcl9vayAoPENPREU+LCA8TU9ERT5tb2RlLCBvcGVyYW5kcykiCi0gICAidnA8 bWF4bWluaXByZWZpeD48c3NldmVjc2l6ZT5cdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgotICAg WyhzZXRfYXR0ciAidHlwZSIgInNzZWlhZGQiKQotKyAgIChzZXQgKGF0dHIgInByZWZpeF9leHRy YSIpCi0rICAgICAoaWZfdGhlbl9lbHNlCi0rICAgICAgIChuZSAoc3ltYm9sX3JlZiAiPE1PREU+ bW9kZSAhPSAoKDxDT0RFPiA9PSBTTUFYIHx8IDxDT0RFPiA9PSBTTUlOKSA/IFY4SEltb2RlIDog VjE2UUltb2RlKSIpCi0rCSAgIChjb25zdF9pbnQgMCkpCi0rICAgICAgIChjb25zdF9zdHJpbmcg IjEiKQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIwIikpKQotICAgIChzZXRfYXR0ciAicHJlZml4 IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLSAKLUBAIC01NzgzLDYgKzU4 OTEsMTAgQEAgKGRlZmluZV9pbnNuICIqYXZ4X2VxPG1vZGU+MyIKLSAgICJUQVJHRVRfQVZYICYm IGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChFUSwgPE1PREU+bW9kZSwgb3BlcmFuZHMpIgotICAg InZwY21wZXE8c3NldmVjc2l6ZT5cdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgotICAgWyhzZXRf YXR0ciAidHlwZSIgInNzZWNtcCIpCi0rICAgKHNldCAoYXR0ciAicHJlZml4X2V4dHJhIikKLSsg ICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6VjJESSAwICIiICIiKQotKyAgICAgICAo Y29uc3Rfc3RyaW5nICIxIikKLSsgICAgICAgKGNvbnN0X3N0cmluZyAiKiIpKSkKLSAgICAoc2V0 X2F0dHIgInByZWZpeCIgInZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0gCi1A QCAtNTgyNSw2ICs1OTM3LDEwIEBAIChkZWZpbmVfaW5zbiAiKmF2eF9ndDxtb2RlPjMiCi0gICAi VEFSR0VUX0FWWCIKLSAgICJ2cGNtcGd0PHNzZXZlY3NpemU+XHR7JTIsICUxLCAlMHwlMCwgJTEs ICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjbXAiKQotKyAgIChzZXQgKGF0dHIgInBy ZWZpeF9leHRyYSIpCi0rICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOlYyREkgMCAi IiAiIikKLSsgICAgICAgKGNvbnN0X3N0cmluZyAiMSIpCi0rICAgICAgIChjb25zdF9zdHJpbmcg IioiKSkpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAgIChzZXRfYXR0ciAibW9k ZSIgIlRJIildKQotIAotQEAgLTU4NDcsNiArNTk2Myw3IEBAIChkZWZpbmVfaW5zbiAic3NlNF8y X2d0djJkaTMiCi0gICAiVEFSR0VUX1NTRTRfMiIKLSAgICJwY21wZ3RxXHR7JTIsICUwfCUwLCAl Mn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY21wIikKLSsgICAoc2V0X2F0dHIgInByZWZp eF9leHRyYSIgIjEiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotIAotIChkZWZpbmVf ZXhwYW5kICJ2Y29uZDxtb2RlPiIKLUBAIC02NjA1LDYgKzY3MjIsMTEgQEAgKGRlZmluZV9pbnNu ICIqYXZ4X3BpbnNyPGF2eG1vZGVzdWZmaXhzPgotICAgcmV0dXJuICJ2cGluc3I8YXZ4bW9kZXN1 ZmZpeHM+XHR7JTMsICVrMiwgJTEsICUwfCUwLCAlMSwgJWsyLCAlM30iOwotIH0KLSAgIFsoc2V0 X2F0dHIgInR5cGUiICJzc2Vsb2ciKQotKyAgIChzZXQgKGF0dHIgInByZWZpeF9leHRyYSIpCi0r ICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOlY4SEkgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIiIpCi0rICAgICAgIChjb25zdF9zdHJpbmcgIjAiKQotKyAgICAgICAoY29uc3Rfc3RyaW5n ICIxIikpKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAgIChzZXRf YXR0ciAicHJlZml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLSAKLUBA IC02NjIyLDYgKzY3NDQsNyBAQCAoZGVmaW5lX2luc24gIipzc2U0XzFfcGluc3JiIgotIH0KLSAg IFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQotICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJh IiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9h dHRyICJtb2RlIiAiVEkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqc3NlMl9waW5zcnciCi1AQCAt NjYzOCw2ICs2NzYxLDcgQEAgKGRlZmluZV9pbnNuICIqc3NlMl9waW5zcnciCi0gfQotICAgWyhz ZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAi MSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRy ICJtb2RlIiAiVEkiKV0pCi0gCi0gOzsgSXQgbXVzdCBjb21lIGJlZm9yZSBzc2UyX2xvYWRsZCBz aW5jZSBpdCBpcyBwcmVmZXJyZWQuCi1AQCAtNjY1NSw2ICs2Nzc5LDcgQEAgKGRlZmluZV9pbnNu ICIqc3NlNF8xX3BpbnNyZCIKLSB9Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikKLSAg ICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2lt bWVkaWF0ZSIgIjEiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotIAotIChkZWZpbmVf aW5zbiAiKmF2eF9waW5zcnEiCi1AQCAtNjY3MCw2ICs2Nzk1LDggQEAgKGRlZmluZV9pbnNuICIq YXZ4X3BpbnNycSIKLSAgIHJldHVybiAidnBpbnNycVx0eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwg JTIsICUzfSI7Ci0gfQotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCi0rICAgKHNldF9h dHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUi ICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCi0gICAgKHNldF9hdHRyICJtb2Rl IiAiVEkiKV0pCi0gCi1AQCAtNjY4Niw3ICs2ODEzLDkgQEAgKGRlZmluZV9pbnNuICIqc3NlNF8x X3BpbnNycSIKLSAgIHJldHVybiAicGluc3JxXHR7JTMsICUyLCAlMHwlMCwgJTIsICUzfSI7Ci0g fQotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhf cmV4IiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0X2F0 dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkK LSAKLSAoZGVmaW5lX2luc24gIipzc2U0XzFfcGV4dHJiIgotQEAgLTY2OTksNiArNjgyOCw3IEBA IChkZWZpbmVfaW5zbiAiKnNzZTRfMV9wZXh0cmIiCi0gICAiJXZwZXh0cmJcdHslMiwgJTEsICUw fCUwLCAlMSwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCi0gICAgKHNldF9h dHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUi ICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCi0gICAgKHNldF9hdHRy ICJtb2RlIiAiVEkiKV0pCi0gCi1AQCAtNjcxMSw2ICs2ODQxLDcgQEAgKGRlZmluZV9pbnNuICIq c3NlNF8xX3BleHRyYl9tZW1vcnkiCi0gICAiJXZwZXh0cmJcdHslMiwgJTEsICUwfCUwLCAlMSwg JTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCi0gICAgKHNldF9hdHRyICJwcmVm aXhfZXh0cmEiICIxIikKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKLSAg ICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAi VEkiKV0pCi0gCi1AQCAtNjcyNCw2ICs2ODU1LDcgQEAgKGRlZmluZV9pbnNuICIqc3NlMl9wZXh0 cnciCi0gICAiJXZwZXh0cndcdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgotICAgWyhzZXRfYXR0 ciAidHlwZSIgInNzZWxvZyIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIpCi0r ICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVm aXgiICJtYXliZV92ZXgiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotIAotQEAgLTY3 MzYsNiArNjg2OCw3IEBAIChkZWZpbmVfaW5zbiAiKnNzZTRfMV9wZXh0cndfbWVtb3J5IgotICAg IiV2cGV4dHJ3XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUi ICJzc2Vsb2ciKQotICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNldF9h dHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJtYXli ZV92ZXgiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotIAotQEAgLTY3NDgsNiArNjg4 MSw3IEBAIChkZWZpbmVfaW5zbiAiKnNzZTRfMV9wZXh0cmQiCi0gICAiJXZwZXh0cmRcdHslMiwg JTEsICUwfCUwLCAlMSwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCi0gICAg KHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1l ZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCi0gICAgKHNl dF9hdHRyICJtb2RlIiAiVEkiKV0pCi0gCi1AQCAtNjc2MCw3ICs2ODk0LDkgQEAgKGRlZmluZV9p bnNuICIqc3NlNF8xX3BleHRycSIKLSAgICJUQVJHRVRfU1NFNF8xICYmIFRBUkdFVF82NEJJVCIK LSAgICIldnBleHRycVx0eyUyLCAlMSwgJTB8JTAsICUxLCAlMn0iCi0gICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlbG9nIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9yZXgiICIxIikKLSAgICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0 ZSIgIjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAibWF5YmVfdmV4IikKLSAgICAoc2V0X2F0 dHIgIm1vZGUiICJUSSIpXSkKLSAKLUBAIC02ODAwLDcgKzY5MzYsOCBAQCAoZGVmaW5lX2luc24g InNzZTJfcHNodWZkXzEiCi0gfQotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZzEiKQotICAg IChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQotLSAgIChzZXRfYXR0ciAicHJlZml4IiAi dmV4IikKLSsgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCi0rICAgKHNldF9hdHRy ICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0g Ci0gKGRlZmluZV9leHBhbmQgInNzZTJfcHNodWZsdyIKLUBAIC02ODQyLDggKzY5NzksMTAgQEAg KGRlZmluZV9pbnNuICJzc2UyX3BzaHVmbHdfMSIKLSAgIHJldHVybiAiJXZwc2h1Zmx3XHR7JTIs ICUxLCAlMHwlMCwgJTEsICUyfSI7Ci0gfQotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyIp Ci0rICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCi0gICAgKHNldF9hdHRyICJwcmVm aXhfcmVwIiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJtYXliZV92ZXgiKQotKyAgIChz ZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJ IildKQotIAotIChkZWZpbmVfZXhwYW5kICJzc2UyX3BzaHVmaHciCi1AQCAtNjg4Niw3ICs3MDI1 LDkgQEAgKGRlZmluZV9pbnNuICJzc2UyX3BzaHVmaHdfMSIKLSB9Ci0gICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlbG9nIikKLSAgICAoc2V0X2F0dHIgInByZWZpeF9yZXAiICIxIikKLSsgICAoc2V0 X2F0dHIgInByZWZpeF9kYXRhMTYiICIwIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJl X3ZleCIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9h dHRyICJtb2RlIiAiVEkiKV0pCi0gCi0gKGRlZmluZV9leHBhbmQgInNzZTJfbG9hZGQiCi1AQCAt NzAyMiw2ICs3MTYzLDcgQEAgKGRlZmluZV9pbnNuICIqdmVjX2V4dHJhY3R2MmRpXzFfcmV4NjRf YQotICAgIHZtb3ZxXHR7JUgxLCAlMHwlMCwgJUgxfQotICAgIHZtb3Z7cX1cdHslSDEsICUwfCUw LCAlSDF9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdixzc2Vpc2hmdCxzc2Vtb3YsaW1v diIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiKiwxLCosKiIpCi0gICAgKHNl dF9hdHRyICJtZW1vcnkiICIqLG5vbmUsKiwqIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZl eCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVjJTRixUSSxUSSxESSIpXSkKLUBAIC03MDM4LDYg KzcxODAsNyBAQCAoZGVmaW5lX2luc24gIip2ZWNfZXh0cmFjdHYyZGlfMV9yZXg2NCIKLSAgICBt b3ZxXHR7JUgxLCAlMHwlMCwgJUgxfQotICAgIG1vdntxfVx0eyVIMSwgJTB8JTAsICVIMX0iCi0g ICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbW92LHNzZWlzaGZ0LHNzZW1vdixpbW92IikKLSsgICAo c2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIqLDEsKiwqIikKLSAgICAoc2V0X2F0dHIgImF0 b21fdW5pdCIgIiosc2lzaHVmLCosKiIpCi0gICAgKHNldF9hdHRyICJtZW1vcnkiICIqLG5vbmUs KiwqIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJWMlNGLFRJLFRJLERJIildKQotQEAgLTcwNTUs NiArNzE5OCw3IEBAIChkZWZpbmVfaW5zbiAiKnZlY19leHRyYWN0djJkaV8xX2F2eCIKLSAgICB2 cHNybGRxXHR7JDgsICUxLCAlMHwlMCwgJTEsIDh9Ci0gICAgdm1vdnFcdHslSDEsICUwfCUwLCAl SDF9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdixzc2Vpc2hmdCxzc2Vtb3YiKQotKyAg IChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIiosMSwqIikKLSAgICAoc2V0X2F0dHIgIm1l bW9yeSIgIiosbm9uZSwqIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCi0gICAgKHNl dF9hdHRyICJtb2RlIiAiVjJTRixUSSxUSSIpXSkKLUBAIC03MDcxLDYgKzcyMTUsNyBAQCAoZGVm aW5lX2luc24gIip2ZWNfZXh0cmFjdHYyZGlfMV9zc2UyIgotICAgIHBzcmxkcVx0eyQ4LCAlMHwl MCwgOH0KLSAgICBtb3ZxXHR7JUgxLCAlMHwlMCwgJUgxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUi ICJzc2Vtb3Ysc3NlaXNoZnQsc3NlbW92IikKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlh dGUiICIqLDEsKiIpCi0gICAgKHNldF9hdHRyICJhdG9tX3VuaXQiICIqLHNpc2h1ZiwqIikKLSAg ICAoc2V0X2F0dHIgIm1lbW9yeSIgIiosbm9uZSwqIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJW MlNGLFRJLFRJIildKQotQEAgLTcxMDAsNiArNzI0NSw3IEBAIChkZWZpbmVfaW5zbiAiKnZlY19k dXB2NHNpIgotICAgIHNodWZwc1x0eyQwLCAlMCwgJTB8JTAsICUwLCAwfSIKLSAgIFsoc2V0X2F0 dHIgInR5cGUiICJzc2Vsb2cxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCxv cmlnIikKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0 dHIgIm1vZGUiICJUSSxWNFNGIildKQotIAotIChkZWZpbmVfaW5zbiAiKnZlY19kdXB2MmRpX2F2 eCIKLUBAIC03MTM2LDYgKzcyODIsOCBAQCAoZGVmaW5lX2luc24gIip2ZWNfY29uY2F0djJzaV9h dngiCi0gICAgcHVucGNrbGRxXHR7JTIsICUwfCUwLCAlMn0KLSAgICBtb3ZkXHR7JTEsICUwfCUw LCAlMX0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nLHNzZWxvZyxzc2Vtb3YsbW14Y3Z0 LG1teG1vdiIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxLCosKiwqLCoiKQotKyAg IChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEsKiwqLCosKiIpCi0gICAgKHNldCAoYXR0 ciAicHJlZml4IikKLSAgICAgIChpZl90aGVuX2Vsc2UgKGVxX2F0dHIgImFsdGVybmF0aXZlIiAi Myw0IikKLSAgICAgICAgKGNvbnN0X3N0cmluZyAib3JpZyIpCi1AQCAtNzE1Niw2ICs3MzA0LDcg QEAgKGRlZmluZV9pbnNuICIqdmVjX2NvbmNhdHYyc2lfc3NlNF8xIgotICAgIG1vdmRcdHslMSwg JTB8JTAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2csc3NlbG9nLHNzZW1vdixt bXhjdnQsbW14bW92IikKLSAgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEsKiwqLCosKiIp Ci0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSwqLCosKiwqIikKLSAgICAoc2V0 X2F0dHIgIm1vZGUiICJUSSxUSSxUSSxESSxESSIpXSkKLSAKLSA7OyA/Pz8gSW4gdGhlb3J5IHdl IGNhbiBtYXRjaCBtZW1vcnkgZm9yIHRoZSBNTVggYWx0ZXJuYXRpdmUsIGJ1dCBhbGxvd2luZwot QEAgLTcyNjIsNiArNzQxMSw4IEBAIChkZWZpbmVfaW5zbiAiKnZlY19jb25jYXR2MmRpX3JleDY0 X2F2eCIKLSAgICB2cHVucGNrbHFkcVx0eyUyLCAlMSwgJTB8JTAsICUxLCAlMn0KLSAgICB2bW92 aHBzXHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vs b2csc3NlbW92LHNzZW1vdixzc2Vtb3Ysc3NlbG9nLHNzZW1vdiIpCi0rICAgKHNldF9hdHRyICJw cmVmaXhfZXh0cmEiICIxLCosKiwqLCosKiIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRp YXRlIiAiMSwqLCosKiwqLCoiKQotICAgIChzZXQgKGF0dHIgInByZWZpeCIpCi0gICAgICAoaWZf dGhlbl9lbHNlIChlcV9hdHRyICJhbHRlcm5hdGl2ZSIgIjMiKQotICAgICAgICAoY29uc3Rfc3Ry aW5nICJvcmlnIikKLUBAIC03MjgzLDcgKzc0MzQsOSBAQCAoZGVmaW5lX2luc24gIip2ZWNfY29u Y2F0djJkaV9yZXg2NF9zc2U0Ci0gICAgbW92bGhwc1x0eyUyLCAlMHwlMCwgJTJ9Ci0gICAgbW92 aHBzXHR7JTIsICUwfCUwLCAlMn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nLHNzZW1v dixzc2Vtb3Ysc3NlbW92LHNzZWxvZyxzc2Vtb3Ysc3NlbW92IikKLSsgICAoc2V0X2F0dHIgInBy ZWZpeF9yZXgiICIxLCosMSwqLCosKiwqIikKLSAgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIg IjEsKiwqLCosKiwqLCoiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEsKiwq LCosKiwqLCoiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJLFRJLFRJLFRJLFRJLFY0U0YsVjJT RiIpXSkKLSAKLSAoZGVmaW5lX2luc24gIip2ZWNfY29uY2F0djJkaV9yZXg2NF9zc2UiCi1AQCAt NzMwMCw2ICs3NDUzLDcgQEAgKGRlZmluZV9pbnNuICIqdmVjX2NvbmNhdHYyZGlfcmV4NjRfc3Nl IgotICAgIG1vdmxocHNcdHslMiwgJTB8JTAsICUyfQotICAgIG1vdmhwc1x0eyUyLCAlMHwlMCwg JTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdixzc2Vtb3Ysc3NlbW92LHNzZWxvZyxz c2Vtb3Ysc3NlbW92IikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9yZXgiICIqLDEsKiwqLCosKiIp Ci0gICAgKHNldF9hdHRyICJtb2RlIiAiVEksVEksVEksVEksVjRTRixWMlNGIildKQotIAotIChk ZWZpbmVfZXhwYW5kICJ2ZWNfdW5wYWNrdV9oaV92MTZxaSIKLUBAIC03Njg2LDYgKzc4NDAsOCBA QCAoZGVmaW5lX2luc24gIipzc2UyX21hc2ttb3ZkcXUiCi0gICAiJXZtYXNrbW92ZHF1XHR7JTIs ICUxfCUxLCAlMn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbW92IikKLSAgICAoc2V0X2F0 dHIgInByZWZpeF9kYXRhMTYiICIxIikKLSsgICA7OyBUaGUgaW1wbGljaXQgJXJkaSBvcGVyYW5k IGNvbmZ1c2VzIGRlZmF1bHQgbGVuZ3RoX3ZleCBjb21wdXRhdGlvbi4KLSsgICAoc2V0X2F0dHIg Imxlbmd0aF92ZXgiICIzIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCi0g ICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0gCi1AQCAtNzcwMCw2ICs3ODU2LDkgQEAgKGRl ZmluZV9pbnNuICIqc3NlMl9tYXNrbW92ZHF1X3JleDY0IgotICAgIiV2bWFza21vdmRxdVx0eyUy LCAlMXwlMSwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdiIpCi0gICAgKHNldF9h dHRyICJwcmVmaXhfZGF0YTE2IiAiMSIpCi0rICAgOzsgVGhlIGltcGxpY2l0ICVyZGkgb3BlcmFu ZCBjb25mdXNlcyBkZWZhdWx0IGxlbmd0aF92ZXggY29tcHV0YXRpb24uCi0rICAgKHNldCAoYXR0 ciAibGVuZ3RoX3ZleCIpCi0rICAgICAoc3ltYm9sX3JlZiAoIlJFR05PIChvcGVyYW5kc1syXSkg Pj0gRklSU1RfUkVYX1NTRV9SRUcgPyAzICsgMSA6IDIgKyAxIikpKQotICAgIChzZXRfYXR0ciAi cHJlZml4IiAibWF5YmVfdmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLSAKLUBA IC03NzM4LDYgKzc4OTcsNyBAQCAoZGVmaW5lX2luc24gIipzc2Vfc2ZlbmNlIgotICAgIlRBUkdF VF9TU0UgfHwgVEFSR0VUXzNETk9XX0EiCi0gICAic2ZlbmNlIgotICAgWyhzZXRfYXR0ciAidHlw ZSIgInNzZSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfYWRkcmVzcyIgIjAiKQotICAgIChzZXRf YXR0ciAiYXRvbV9zc2VfYXR0ciIgImZlbmNlIikKLSAgICAoc2V0X2F0dHIgIm1lbW9yeSIgInVu a25vd24iKV0pCi0gCi1AQCAtNzc2NSw2ICs3OTI1LDcgQEAgKGRlZmluZV9pbnNuICIqc3NlMl9t ZmVuY2UiCi0gICAiVEFSR0VUXzY0QklUIHx8IFRBUkdFVF9TU0UyIgotICAgIm1mZW5jZSIKLSAg IFsoc2V0X2F0dHIgInR5cGUiICJzc2UiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2FkZHJlc3Mi ICIwIikKLSAgICAoc2V0X2F0dHIgImF0b21fc3NlX2F0dHIiICJmZW5jZSIpCi0gICAgKHNldF9h dHRyICJtZW1vcnkiICJ1bmtub3duIildKQotIAotQEAgLTc3ODMsNiArNzk0NCw3IEBAIChkZWZp bmVfaW5zbiAiKnNzZTJfbGZlbmNlIgotICAgIlRBUkdFVF9TU0UyIgotICAgImxmZW5jZSIKLSAg IFsoc2V0X2F0dHIgInR5cGUiICJzc2UiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2FkZHJlc3Mi ICIwIikKLSAgICAoc2V0X2F0dHIgImF0b21fc3NlX2F0dHIiICJsZmVuY2UiKQotICAgIChzZXRf YXR0ciAibWVtb3J5IiAidW5rbm93biIpXSkKLSAKLUBAIC03ODY0LDYgKzgwMjYsNyBAQCAoZGVm aW5lX2luc24gIiphdnhfcGhhZGR3djhoaTMiCi0gICAiVEFSR0VUX0FWWCIKLSAgICJ2cGhhZGR3 XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpYWRk IikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgIChzZXRfYXR0ciAicHJl Zml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLSAKLUBAIC03OTM4LDYg KzgxMDEsNyBAQCAoZGVmaW5lX2luc24gInNzc2UzX3BoYWRkd3Y0aGkzIgotICAgWyhzZXRfYXR0 ciAidHlwZSIgInNzZWlhZGQiKQotICAgIChzZXRfYXR0ciAiYXRvbV91bml0IiAiY29tcGxleCIp Ci0gICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0IChhdHRyICJwcmVm aXhfcmV4IikgKHN5bWJvbF9yZWYgIng4Nl9leHRlbmRlZF9yZWdfbWVudGlvbmVkX3AgKGluc24p IikpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqYXZ4 X3BoYWRkZHY0c2kzIgotQEAgLTc5NjQsNiArODEyOCw3IEBAIChkZWZpbmVfaW5zbiAiKmF2eF9w aGFkZGR2NHNpMyIKLSAgICJUQVJHRVRfQVZYIgotICAgInZwaGFkZGRcdHslMiwgJTEsICUwfCUw LCAlMSwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlhZGQiKQotKyAgIChzZXRfYXR0 ciAicHJlZml4X2V4dHJhIiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAg IChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotIAotQEAgLTgwMTQsNiArODE3OSw3IEBAIChkZWZp bmVfaW5zbiAic3NzZTNfcGhhZGRkdjJzaTMiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWFk ZCIpCi0gICAgKHNldF9hdHRyICJhdG9tX3VuaXQiICJjb21wbGV4IikKLSAgICAoc2V0X2F0dHIg InByZWZpeF9leHRyYSIgIjEiKQotKyAgIChzZXQgKGF0dHIgInByZWZpeF9yZXgiKSAoc3ltYm9s X3JlZiAieDg2X2V4dGVuZGVkX3JlZ19tZW50aW9uZWRfcCAoaW5zbikiKSkKLSAgICAoc2V0X2F0 dHIgIm1vZGUiICJESSIpXSkKLSAKLSAoZGVmaW5lX2luc24gIiphdnhfcGhhZGRzd3Y4aGkzIgot QEAgLTgwNTYsNiArODIyMiw3IEBAIChkZWZpbmVfaW5zbiAiKmF2eF9waGFkZHN3djhoaTMiCi0g ICAiVEFSR0VUX0FWWCIKLSAgICJ2cGhhZGRzd1x0eyUyLCAlMSwgJTB8JTAsICUxLCAlMn0iCi0g ICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWFkZCIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0 cmEiICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCi0gICAgKHNldF9hdHRyICJt b2RlIiAiVEkiKV0pCi0gCi1AQCAtODEzMCw2ICs4Mjk3LDcgQEAgKGRlZmluZV9pbnNuICJzc3Nl M19waGFkZHN3djRoaTMiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWFkZCIpCi0gICAgKHNl dF9hdHRyICJhdG9tX3VuaXQiICJjb21wbGV4IikKLSAgICAoc2V0X2F0dHIgInByZWZpeF9leHRy YSIgIjEiKQotKyAgIChzZXQgKGF0dHIgInByZWZpeF9yZXgiKSAoc3ltYm9sX3JlZiAieDg2X2V4 dGVuZGVkX3JlZ19tZW50aW9uZWRfcCAoaW5zbikiKSkKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJE SSIpXSkKLSAKLSAoZGVmaW5lX2luc24gIiphdnhfcGhzdWJ3djhoaTMiCi1AQCAtODE3Miw2ICs4 MzQwLDcgQEAgKGRlZmluZV9pbnNuICIqYXZ4X3Boc3Vid3Y4aGkzIgotICAgIlRBUkdFVF9BVlgi Ci0gICAidnBoc3Vid1x0eyUyLCAlMSwgJTB8JTAsICUxLCAlMn0iCi0gICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlaWFkZCIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgICAo c2V0X2F0dHIgInByZWZpeCIgInZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0g Ci1AQCAtODI0Niw2ICs4NDE1LDcgQEAgKGRlZmluZV9pbnNuICJzc3NlM19waHN1Ynd2NGhpMyIK LSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpYWRkIikKLSAgICAoc2V0X2F0dHIgImF0b21fdW5p dCIgImNvbXBsZXgiKQotICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNl dCAoYXR0ciAicHJlZml4X3JleCIpIChzeW1ib2xfcmVmICJ4ODZfZXh0ZW5kZWRfcmVnX21lbnRp b25lZF9wIChpbnNuKSIpKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQotIAotIChkZWZp bmVfaW5zbiAiKmF2eF9waHN1YmR2NHNpMyIKLUBAIC04MjcyLDYgKzg0NDIsNyBAQCAoZGVmaW5l X2luc24gIiphdnhfcGhzdWJkdjRzaTMiCi0gICAiVEFSR0VUX0FWWCIKLSAgICJ2cGhzdWJkXHR7 JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpYWRkIikK LSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4 IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLSAKLUBAIC04MzIyLDYgKzg0 OTMsNyBAQCAoZGVmaW5lX2luc24gInNzc2UzX3Boc3ViZHYyc2kzIgotICAgWyhzZXRfYXR0ciAi dHlwZSIgInNzZWlhZGQiKQotICAgIChzZXRfYXR0ciAiYXRvbV91bml0IiAiY29tcGxleCIpCi0g ICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0IChhdHRyICJwcmVmaXhf cmV4IikgKHN5bWJvbF9yZWYgIng4Nl9leHRlbmRlZF9yZWdfbWVudGlvbmVkX3AgKGluc24pIikp Ci0gICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqYXZ4X3Bo c3Vic3d2OGhpMyIKLUBAIC04MzY0LDYgKzg1MzYsNyBAQCAoZGVmaW5lX2luc24gIiphdnhfcGhz dWJzd3Y4aGkzIgotICAgIlRBUkdFVF9BVlgiCi0gICAidnBoc3Vic3dcdHslMiwgJTEsICUwfCUw LCAlMSwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlhZGQiKQotKyAgIChzZXRfYXR0 ciAicHJlZml4X2V4dHJhIiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAg IChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotIAotQEAgLTg0MzgsNiArODYxMSw3IEBAIChkZWZp bmVfaW5zbiAic3NzZTNfcGhzdWJzd3Y0aGkzIgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlh ZGQiKQotICAgIChzZXRfYXR0ciAiYXRvbV91bml0IiAiY29tcGxleCIpCi0gICAgKHNldF9hdHRy ICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0IChhdHRyICJwcmVmaXhfcmV4IikgKHN5bWJv bF9yZWYgIng4Nl9leHRlbmRlZF9yZWdfbWVudGlvbmVkX3AgKGluc24pIikpCi0gICAgKHNldF9h dHRyICJtb2RlIiAiREkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqYXZ4X3BtYWRkdWJzdzEyOCIK LUBAIC04NDkwLDYgKzg2NjQsNyBAQCAoZGVmaW5lX2luc24gIiphdnhfcG1hZGR1YnN3MTI4Igot ICAgIlRBUkdFVF9BVlgiCi0gICAidnBtYWRkdWJzd1x0eyUyLCAlMSwgJTB8JTAsICUxLCAlMn0i Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWFkZCIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhf ZXh0cmEiICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCi0gICAgKHNldF9hdHRy ICJtb2RlIiAiVEkiKV0pCi0gCi1AQCAtODU4NCw2ICs4NzU5LDcgQEAgKGRlZmluZV9pbnNuICJz c3NlM19wbWFkZHVic3ciCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWFkZCIpCi0gICAgKHNl dF9hdHRyICJhdG9tX3VuaXQiICJzaW11bCIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEi ICIxIikKLSsgICAoc2V0IChhdHRyICJwcmVmaXhfcmV4IikgKHN5bWJvbF9yZWYgIng4Nl9leHRl bmRlZF9yZWdfbWVudGlvbmVkX3AgKGluc24pIikpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiREki KV0pCi0gCi0gKGRlZmluZV9leHBhbmQgInNzc2UzX3BtdWxocnN3djhoaTMiCi1AQCAtODYyNiw2 ICs4ODAyLDcgQEAgKGRlZmluZV9pbnNuICIqYXZ4X3BtdWxocnN3djhoaTMiCi0gICAiVEFSR0VU X0FWWCAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoTVVMVCwgVjhISW1vZGUsIG9wZXJhbmRz KSIKLSAgICJ2cG11bGhyc3dcdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgotICAgWyhzZXRfYXR0 ciAidHlwZSIgInNzZWltdWwiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0g ICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIild KQotIAotQEAgLTg2OTAsNiArODg2Nyw3IEBAIChkZWZpbmVfaW5zbiAiKnNzc2UzX3BtdWxocnN3 djRoaTMiCi0gICAicG11bGhyc3dcdHslMiwgJTB8JTAsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5 cGUiICJzc2VpbXVsIikKLSAgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotKyAgIChz ZXQgKGF0dHIgInByZWZpeF9yZXgiKSAoc3ltYm9sX3JlZiAieDg2X2V4dGVuZGVkX3JlZ19tZW50 aW9uZWRfcCAoaW5zbikiKSkKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkKLSAKLSAoZGVm aW5lX2luc24gIiphdnhfcHNodWZidjE2cWkzIgotQEAgLTg3MDAsNiArODg3OCw3IEBAIChkZWZp bmVfaW5zbiAiKmF2eF9wc2h1ZmJ2MTZxaTMiCi0gICAiVEFSR0VUX0FWWCIKLSAgICJ2cHNodWZi XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSI7Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9n MSIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgICAoc2V0X2F0dHIgInBy ZWZpeCIgInZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0gCi1AQCAtODcyNCw2 ICs4OTAzLDcgQEAgKGRlZmluZV9pbnNuICJzc3NlM19wc2h1ZmJ2OHFpMyIKLSAgICJwc2h1ZmJc dHslMiwgJTB8JTAsICUyfSI7Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCi0gICAg KHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0IChhdHRyICJwcmVmaXhfcmV4 IikgKHN5bWJvbF9yZWYgIng4Nl9leHRlbmRlZF9yZWdfbWVudGlvbmVkX3AgKGluc24pIikpCi0g ICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqYXZ4X3BzaWdu PG1vZGU+MyIKLUBAIC04NzM1LDYgKzg5MTUsNyBAQCAoZGVmaW5lX2luc24gIiphdnhfcHNpZ248 bW9kZT4zIgotICAgIlRBUkdFVF9BVlgiCi0gICAidnBzaWduPHNzZXZlY3NpemU+XHR7JTIsICUx LCAlMHwlMCwgJTEsICUyfSI7Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCi0rICAg KHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZl eCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0gCi1AQCAtODc2MSw2ICs4OTQyLDcg QEAgKGRlZmluZV9pbnNuICJzc3NlM19wc2lnbjxtb2RlPjMiCi0gICAicHNpZ248bW14dmVjc2l6 ZT5cdHslMiwgJTB8JTAsICUyfSI7Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCi0g ICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0IChhdHRyICJwcmVmaXhf cmV4IikgKHN5bWJvbF9yZWYgIng4Nl9leHRlbmRlZF9yZWdfbWVudGlvbmVkX3AgKGluc24pIikp Ci0gICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqYXZ4X3Bh bGlnbnJ0aSIKLUBAIC04Nzc1LDYgKzg5NTcsOCBAQCAoZGVmaW5lX2luc24gIiphdnhfcGFsaWdu cnRpIgotICAgcmV0dXJuICJ2cGFsaWduclx0eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsICUz fSI7Ci0gfQotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlzaGZ0IikKLSsgICAoc2V0X2F0dHIg InByZWZpeF9leHRyYSIgIjEiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEi KQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJU SSIpXSkKLSAKLUBAIC04NzkzLDYgKzg5NzcsNyBAQCAoZGVmaW5lX2luc24gInNzc2UzX3BhbGln bnJ0aSIKLSAgICAoc2V0X2F0dHIgImF0b21fdW5pdCIgInNpc2h1ZiIpCi0gICAgKHNldF9hdHRy ICJwcmVmaXhfZGF0YTE2IiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikK LSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgIm1v ZGUiICJUSSIpXSkKLSAKLSAoZGVmaW5lX2luc24gInNzc2UzX3BhbGlnbnJkaSIKLUBAIC04ODA5 LDYgKzg5OTQsOCBAQCAoZGVmaW5lX2luc24gInNzc2UzX3BhbGlnbnJkaSIKLSAgIFsoc2V0X2F0 dHIgInR5cGUiICJzc2Vpc2hmdCIpCi0gICAgKHNldF9hdHRyICJhdG9tX3VuaXQiICJzaXNodWYi KQotICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5n dGhfaW1tZWRpYXRlIiAiMSIpCi0rICAgKHNldCAoYXR0ciAicHJlZml4X3JleCIpIChzeW1ib2xf cmVmICJ4ODZfZXh0ZW5kZWRfcmVnX21lbnRpb25lZF9wIChpbnNuKSIpKQotICAgIChzZXRfYXR0 ciAibW9kZSIgIkRJIildKQotIAotIChkZWZpbmVfaW5zbiAiYWJzPG1vZGU+MiIKLUBAIC04ODI4 LDcgKzkwMTUsOSBAQCAoZGVmaW5lX2luc24gImFiczxtb2RlPjIiCi0gICAiVEFSR0VUX1NTU0Uz IgotICAgInBhYnM8bW14dmVjc2l6ZT5cdHslMSwgJTB8JTAsICUxfSI7Ci0gICBbKHNldF9hdHRy ICJ0eXBlIiAic3NlbG9nMSIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfcmVwIiAiMCIpCi0gICAg KHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0IChhdHRyICJwcmVmaXhfcmV4 IikgKHN5bWJvbF9yZWYgIng4Nl9leHRlbmRlZF9yZWdfbWVudGlvbmVkX3AgKGluc24pIikpCi0g ICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0gCi0gOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ci1AQCAtODg2OSw2 ICs5MDU4LDcgQEAgKGRlZmluZV9pbnNuICJzc2U0YV9leHRycWkiCi0gICAiZXh0cnFcdHslMywg JTIsICUwfCUwLCAlMiwgJTN9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZSIpCi0gICAgKHNl dF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRp YXRlIiAiMiIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0gCi0gKGRlZmluZV9pbnNu ICJzc2U0YV9leHRycSIKLUBAIC04ODkyLDcgKzkwODIsOSBAQCAoZGVmaW5lX2luc24gInNzZTRh X2luc2VydHFpIgotICAgIlRBUkdFVF9TU0U0QSIKLSAgICJpbnNlcnRxXHR7JTQsICUzLCAlMiwg JTB8JTAsICUyLCAlMywgJTR9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlucyIpCi0rICAg KHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfcmVw IiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMiIpCi0gICAgKHNldF9h dHRyICJtb2RlIiAiVEkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICJzc2U0YV9pbnNlcnRxIgotQEAg LTg5MDMsNiArOTA5NSw3IEBAIChkZWZpbmVfaW5zbiAic3NlNGFfaW5zZXJ0cSIKLSAgICJUQVJH RVRfU1NFNEEiCi0gICAiaW5zZXJ0cVx0eyUyLCAlMHwlMCwgJTJ9IgotICAgWyhzZXRfYXR0ciAi dHlwZSIgInNzZWlucyIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCi0gICAg KHNldF9hdHRyICJwcmVmaXhfcmVwIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0p Ci0gCi1AQCAtODkyMSw2ICs5MTE0LDggQEAgKGRlZmluZV9pbnNuICJhdnhfYmxlbmRwPGF2eG1v ZGVzdWZmaXhmMgotICAgIlRBUkdFVF9BVlgiCi0gICAidmJsZW5kcDxhdnhtb2Rlc3VmZml4ZjJj Plx0eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsICUzfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUi ICJzc2Vtb3YiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNldF9h dHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgi KQotICAgIChzZXRfYXR0ciAibW9kZSIgIjxhdnh2ZWNtb2RlPiIpXSkKLSAKLUBAIC04OTM0LDYg KzkxMjksOCBAQCAoZGVmaW5lX2luc24gImF2eF9ibGVuZHZwPGF2eG1vZGVzdWZmaXhmCi0gICAi VEFSR0VUX0FWWCIKLSAgICJ2YmxlbmR2cDxhdnhtb2Rlc3VmZml4ZjJjPlx0eyUzLCAlMiwgJTEs ICUwfCUwLCAlMSwgJTIsICUzfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vtb3YiKQotKyAg IChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1t ZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAgIChzZXRfYXR0 ciAibW9kZSIgIjxhdnh2ZWNtb2RlPiIpXSkKLSAKLUBAIC04OTQ2LDcgKzkxNDMsOSBAQCAoZGVm aW5lX2luc24gInNzZTRfMV9ibGVuZHA8c3NlbW9kZXN1ZmZpCi0gICAiVEFSR0VUX1NTRTRfMSIK LSAgICJibGVuZHA8c3NlbW9kZXN1ZmZpeGYyYz5cdHslMywgJTIsICUwfCUwLCAlMiwgJTN9Igot ICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW1vdiIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZGF0 YTE2IiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0X2F0 dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4i KV0pCi0gCi0gKGRlZmluZV9pbnNuICJzc2U0XzFfYmxlbmR2cDxzc2Vtb2Rlc3VmZml4ZjJjPiIK LUBAIC04OTU5LDYgKzkxNTgsNyBAQCAoZGVmaW5lX2luc24gInNzZTRfMV9ibGVuZHZwPHNzZW1v ZGVzdWZmCi0gICAiVEFSR0VUX1NTRTRfMSIKLSAgICJibGVuZHZwPHNzZW1vZGVzdWZmaXhmMmM+ XHR7JTMsICUyLCAlMHwlMCwgJTIsICUzfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vtb3Yi KQotKyAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQotICAgIChzZXRfYXR0ciAicHJl Zml4X2V4dHJhIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQotIAotQEAg LTg5NzMsNiArOTE3Myw4IEBAIChkZWZpbmVfaW5zbiAiYXZ4X2RwcDxhdnhtb2Rlc3VmZml4ZjJj PjwKLSAgICJ2ZHBwPGF2eG1vZGVzdWZmaXhmMmM+XHR7JTMsICUyLCAlMSwgJTB8JTAsICUxLCAl MiwgJTN9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW11bCIpCi0gICAgKHNldF9hdHRyICJw cmVmaXgiICJ2ZXgiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNl dF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiPGF2 eHZlY21vZGU+IildKQotIAotIChkZWZpbmVfaW5zbiAic3NlNF8xX2RwcDxzc2Vtb2Rlc3VmZml4 ZjJjPiIKLUBAIC04OTg1LDcgKzkxODcsOSBAQCAoZGVmaW5lX2luc24gInNzZTRfMV9kcHA8c3Nl bW9kZXN1ZmZpeGYyCi0gICAiVEFSR0VUX1NTRTRfMSIKLSAgICJkcHA8c3NlbW9kZXN1ZmZpeGYy Yz5cdHslMywgJTIsICUwfCUwLCAlMiwgJTN9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZW11 bCIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIpCi0gICAgKHNldF9hdHRyICJw cmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikK LSAgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCi0gCi0gKGRlZmluZV9pbnNuICJzc2U0 XzFfbW92bnRkcWEiCi1AQCAtOTAwOSw2ICs5MjEzLDggQEAgKGRlZmluZV9pbnNuICIqYXZ4X21w c2FkYnciCi0gICAidm1wc2FkYndcdHslMywgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAlM30iCi0g ICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJ2 ZXgiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNldF9hdHRyICJs ZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0gCi0g KGRlZmluZV9pbnNuICJzc2U0XzFfbXBzYWRidyIKLUBAIC05MDIxLDYgKzkyMjcsNyBAQCAoZGVm aW5lX2luc24gInNzZTRfMV9tcHNhZGJ3IgotICAgIm1wc2FkYndcdHslMywgJTIsICUwfCUwLCAl MiwgJTN9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZzEiKQotICAgIChzZXRfYXR0ciAi cHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIp Ci0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqYXZ4X3Bh Y2t1c2R3IgotQEAgLTkwMzMsNiArOTI0MCw3IEBAIChkZWZpbmVfaW5zbiAiKmF2eF9wYWNrdXNk dyIKLSAgICJUQVJHRVRfQVZYIgotICAgInZwYWNrdXNkd1x0eyUyLCAlMSwgJTB8JTAsICUxLCAl Mn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikKLSsgICAoc2V0X2F0dHIgInByZWZp eF9leHRyYSIgIjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgICAoc2V0X2F0 dHIgIm1vZGUiICJUSSIpXSkKLSAKLUBAIC05MDU4LDYgKzkyNjYsOCBAQCAoZGVmaW5lX2luc24g IiphdnhfcGJsZW5kdmIiCi0gICAiVEFSR0VUX0FWWCIKLSAgICJ2cGJsZW5kdmJcdHslMywgJTIs ICUxLCAlMHwlMCwgJTEsICUyLCAlM30iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbW92IikK LSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotKyAgIChzZXRfYXR0ciAibGVuZ3Ro X2ltbWVkaWF0ZSIgIjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgICAoc2V0 X2F0dHIgIm1vZGUiICJUSSIpXSkKLSAKLUBAIC05MDgzLDYgKzkyOTMsOCBAQCAoZGVmaW5lX2lu c24gIiphdnhfcGJsZW5kdyIKLSAgICJ2cGJsZW5kd1x0eyUzLCAlMiwgJTEsICUwfCUwLCAlMSwg JTIsICUzfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vtb3YiKQotICAgIChzZXRfYXR0ciAi cHJlZml4IiAidmV4IikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotKyAgIChz ZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJ IildKQotIAotIChkZWZpbmVfaW5zbiAic3NlNF8xX3BibGVuZHciCi1AQCAtOTA5NSw2ICs5MzA3 LDcgQEAgKGRlZmluZV9pbnNuICJzc2U0XzFfcGJsZW5kdyIKLSAgICJwYmxlbmR3XHR7JTMsICUy LCAlMHwlMCwgJTIsICUzfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vtb3YiKQotICAgIChz ZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRp YXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0gCi0gKGRlZmluZV9pbnNu ICJzc2U0XzFfcGhtaW5wb3N1dyIKLUBAIC05NTA2LDYgKzk3MTksNyBAQCAoZGVmaW5lX2luc24g ImF2eF92dGVzdHA8YXZ4bW9kZXN1ZmZpeGYyCi0gICAiVEFSR0VUX0FWWCIKLSAgICJ2dGVzdHA8 YXZ4bW9kZXN1ZmZpeGYyYz5cdHslMSwgJTB8JTAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUi ICJzc2Vjb21pIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgIChzZXRf YXR0ciAicHJlZml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCi0g Ci1AQCAtOTUxOSw2ICs5NzMzLDcgQEAgKGRlZmluZV9pbnNuICJhdnhfcHRlc3QyNTYiCi0gICAi VEFSR0VUX0FWWCIKLSAgICJ2cHRlc3RcdHslMSwgJTB8JTAsICUxfSIKLSAgIFsoc2V0X2F0dHIg InR5cGUiICJzc2Vjb21pIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAg IChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJPSSIpXSkK LSAKLUBAIC05NTQzLDYgKzk3NTgsOCBAQCAoZGVmaW5lX2luc24gImF2eF9yb3VuZHA8YXZ4bW9k ZXN1ZmZpeGYyCi0gICAiVEFSR0VUX0FWWCIKLSAgICJ2cm91bmRwPGF2eG1vZGVzdWZmaXhmMmM+ XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjdnQi KQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5n dGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAgIChz ZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKLSAKLUBAIC05NTU1LDcgKzk3NzIsOSBAQCAoZGVm aW5lX2luc24gInNzZTRfMV9yb3VuZHA8c3NlbW9kZXN1ZmZpCi0gICAiVEFSR0VUX1JPVU5EIgot ICAgIiV2cm91bmRwPHNzZW1vZGVzdWZmaXhmMmM+XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIK LSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjdnQiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2Rh dGExNiIgIjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNldF9h dHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJtYXli ZV92ZXgiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKLSAKLUBAIC05NTcxLDYg Kzk3OTAsOCBAQCAoZGVmaW5lX2luc24gIiphdnhfcm91bmRzPHNzZW1vZGVzdWZmaXhmCi0gICAi VEFSR0VUX0FWWCIKLSAgICJ2cm91bmRzPHNzZW1vZGVzdWZmaXhmMmM+XHR7JTMsICUyLCAlMSwg JTB8JTAsICUxLCAlMiwgJTN9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWN2dCIpCi0rICAg KHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1l ZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCi0gICAgKHNldF9hdHRy ICJtb2RlIiAiPE1PREU+IildKQotIAotQEAgLTk1ODYsNyArOTgwNyw5IEBAIChkZWZpbmVfaW5z biAic3NlNF8xX3JvdW5kczxzc2Vtb2Rlc3VmZmkKLSAgICJUQVJHRVRfUk9VTkQiCi0gICAicm91 bmRzPHNzZW1vZGVzdWZmaXhmMmM+XHR7JTMsICUyLCAlMHwlMCwgJTIsICUzfSIKLSAgIFsoc2V0 X2F0dHIgInR5cGUiICJzc2VjdnQiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEi KQotICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5n dGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQotIAot IDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7OwotQEAgLTk2NDgsNiArOTg3MSw3IEBAIChkZWZpbmVfaW5zbl9hbmRfc3Bs aXQgInNzZTRfMl9wY21wZXN0ciIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQotICAg IChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4X2V4 dHJhIiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNl dF9hdHRyICJtZW1vcnkiICJub25lLGxvYWQiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIild KQotIAotQEAgLTk2NzQsNiArOTg5OCw3IEBAIChkZWZpbmVfaW5zbiAic3NlNF8yX3BjbXBlc3Ry aSIKLSAgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIxIikKLSAgICAoc2V0X2F0dHIgInBy ZWZpeF9leHRyYSIgIjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAibWF5YmVfdmV4IikKLSsg ICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgIm1lbW9y eSIgIm5vbmUsbG9hZCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0gCi1AQCAtOTY5 OSw2ICs5OTI0LDcgQEAgKGRlZmluZV9pbnNuICJzc2U0XzJfcGNtcGVzdHJtIgotICAgWyhzZXRf YXR0ciAidHlwZSIgInNzZWxvZyIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIp Ci0gICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0X2F0dHIgImxlbmd0 aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCi0g ICAgKHNldF9hdHRyICJtZW1vcnkiICJub25lLGxvYWQiKQotICAgIChzZXRfYXR0ciAibW9kZSIg IlRJIildKQotQEAgLTk3MjMsNiArOTk0OSw3IEBAIChkZWZpbmVfaW5zbiAic3NlNF8yX3BjbXBl c3RyX2Njb25seSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQotICAgIChzZXRfYXR0 ciAicHJlZml4X2RhdGExNiIgIjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIp Ci0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJt ZW1vcnkiICJub25lLGxvYWQsbm9uZSxsb2FkIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1h eWJlX3ZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi1AQCAtOTc3MSw2ICs5OTk4 LDcgQEAgKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAic3NlNF8yX3BjbXBpc3RyIgotICAgWyhzZXRf YXR0ciAidHlwZSIgInNzZWxvZyIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIp Ci0gICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0X2F0dHIgImxlbmd0 aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgIm1lbW9yeSIgIm5vbmUsbG9hZCIpCi0g ICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0gCi1AQCAtOTc5Miw2ICsxMDAyMCw3IEBAIChk ZWZpbmVfaW5zbiAic3NlNF8yX3BjbXBpc3RyaSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vs b2ciKQotICAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjEiKQotICAgIChzZXRfYXR0ciAi cHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIp Ci0gICAgKHNldF9hdHRyICJwcmVmaXgiICJtYXliZV92ZXgiKQotICAgIChzZXRfYXR0ciAibWVt b3J5IiAibm9uZSxsb2FkIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLUBAIC05ODE0 LDYgKzEwMDQzLDcgQEAgKGRlZmluZV9pbnNuICJzc2U0XzJfcGNtcGlzdHJtIgotICAgWyhzZXRf YXR0ciAidHlwZSIgInNzZWxvZyIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIp Ci0gICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0X2F0dHIgImxlbmd0 aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1heWJlX3ZleCIpCi0g ICAgKHNldF9hdHRyICJtZW1vcnkiICJub25lLGxvYWQiKQotICAgIChzZXRfYXR0ciAibW9kZSIg IlRJIildKQotQEAgLTk4MzYsNiArMTAwNjYsNyBAQCAoZGVmaW5lX2luc24gInNzZTRfMl9wY21w aXN0cl9jY29ubHkiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikKLSAgICAoc2V0X2F0 dHIgInByZWZpeF9kYXRhMTYiICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEi KQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAgIChzZXRfYXR0ciAi bWVtb3J5IiAibm9uZSxsb2FkLG5vbmUsbG9hZCIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJt YXliZV92ZXgiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotQEAgLTEwODM0LDYgKzEx MDY1LDggQEAgKGRlZmluZV9pbnNuICJzc2U1X3BwZXJtX3plcm9fdjE2cWlfdjhoaQotICAgICAg ICB8fCByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1syXSwgVjE2UUltb2RlKSkiCi0gICAicHBl cm1cdHslMywgJTEsICUwLCAlMHwlMCwgJTAsICUxLCAlM30iCi0gICBbKHNldF9hdHRyICJ0eXBl IiAic3NlYWRkIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIwIikKLSsgICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjIiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQot IAotIChkZWZpbmVfaW5zbiAic3NlNV9wcGVybV9zaWduX3YxNnFpX3Y4aGkiCi1AQCAtMTA4NDgs NiArMTEwODEsOCBAQCAoZGVmaW5lX2luc24gInNzZTVfcHBlcm1fc2lnbl92MTZxaV92OGhpCi0g ICAgICAgIHx8IHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzJdLCBWMTZRSW1vZGUpKSIKLSAg ICJwcGVybVx0eyUzLCAlMSwgJTAsICUwfCUwLCAlMCwgJTEsICUzfSIKLSAgIFsoc2V0X2F0dHIg InR5cGUiICJzc2VhZGQiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjAiKQotKyAg IChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMiIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEki KV0pCi0gCi0gKGRlZmluZV9pbnNuICJzc2U1X3BwZXJtX3plcm9fdjhoaV92NHNpIgotQEAgLTEw ODYyLDYgKzExMDk3LDggQEAgKGRlZmluZV9pbnNuICJzc2U1X3BwZXJtX3plcm9fdjhoaV92NHNp IgotICAgICAgICB8fCByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1syXSwgVjE2UUltb2RlKSki Ci0gICAicHBlcm1cdHslMywgJTEsICUwLCAlMHwlMCwgJTAsICUxLCAlM30iCi0gICBbKHNldF9h dHRyICJ0eXBlIiAic3NlYWRkIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIwIikK LSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjIiKQotICAgIChzZXRfYXR0ciAibW9kZSIg IlRJIildKQotIAotIChkZWZpbmVfaW5zbiAic3NlNV9wcGVybV9zaWduX3Y4aGlfdjRzaSIKLUBA IC0xMDg3Niw2ICsxMTExMyw4IEBAIChkZWZpbmVfaW5zbiAic3NlNV9wcGVybV9zaWduX3Y4aGlf djRzaSIKLSAgICAgICAgfHwgcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMl0sIFYxNlFJbW9k ZSkpIgotICAgInBwZXJtXHR7JTMsICUxLCAlMCwgJTB8JTAsICUwLCAlMSwgJTN9IgotICAgWyhz ZXRfYXR0ciAidHlwZSIgInNzZWFkZCIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAi MCIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIyIikKLSAgICAoc2V0X2F0dHIgIm1v ZGUiICJUSSIpXSkKLSAKLSAoZGVmaW5lX2luc24gInNzZTVfcHBlcm1femVyb192NHNpX3YyZGki Ci1AQCAtMTA4OTAsNiArMTExMjksOCBAQCAoZGVmaW5lX2luc24gInNzZTVfcHBlcm1femVyb192 NHNpX3YyZGkiCi0gICAgICAgIHx8IHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzJdLCBWMTZR SW1vZGUpKSIKLSAgICJwcGVybVx0eyUzLCAlMSwgJTAsICUwfCUwLCAlMCwgJTEsICUzfSIKLSAg IFsoc2V0X2F0dHIgInR5cGUiICJzc2VhZGQiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2RhdGEx NiIgIjAiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMiIpCi0gICAgKHNldF9hdHRy ICJtb2RlIiAiVEkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICJzc2U1X3BwZXJtX3NpZ25fdjRzaV92 MmRpIgotQEAgLTEwOTA0LDYgKzExMTQ1LDggQEAgKGRlZmluZV9pbnNuICJzc2U1X3BwZXJtX3Np Z25fdjRzaV92MmRpIgotICAgICAgICB8fCByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1syXSwg VjE2UUltb2RlKSkiCi0gICAicHBlcm1cdHslMywgJTEsICUwLCAlMHwlMCwgJTAsICUxLCAlM30i Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlYWRkIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9k YXRhMTYiICIwIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjIiKQotICAgIChzZXRf YXR0ciAibW9kZSIgIlRJIildKQotIAotIDs7IFNTRTUgcGFjayBpbnN0cnVjdGlvbnMgdGhhdCBj b21iaW5lIHR3byB2ZWN0b3JzIGludG8gYSBzbWFsbGVyIHZlY3RvcgotQEAgLTExMDMyLDYgKzEx Mjc1LDcgQEAgKGRlZmluZV9pbnNuICJzc2U1X3JvdGw8bW9kZT4zIgotICAgIlRBUkdFVF9TU0U1 IgotICAgInByb3Q8c3NldmVjc2l6ZT5cdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgotICAgWyhz ZXRfYXR0ciAidHlwZSIgInNzZWlzaGZ0IikKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlh dGUiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLSAKLSAoZGVmaW5lX2luc24g InNzZTVfcm90cjxtb2RlPjMiCi1AQCAtMTEwNDUsNiArMTEyODksNyBAQCAoZGVmaW5lX2luc24g InNzZTVfcm90cjxtb2RlPjMiCi0gICByZXR1cm4gXCJwcm90PHNzZXZlY3NpemU+XHR7JTMsICUx LCAlMHwlMCwgJTEsICUzfVwiOwotIH0KLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vpc2hmdCIp Ci0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJt b2RlIiAiVEkiKV0pCi0gCi0gKGRlZmluZV9leHBhbmQgInZyb3RyPG1vZGU+MyIKLUBAIC0xMTA4 NCw2ICsxMTMyOSw4IEBAIChkZWZpbmVfaW5zbiAic3NlNV92cm90bDxtb2RlPjMiCi0gICAiVEFS R0VUX1NTRTUgJiYgaXg4Nl9zc2U1X3ZhbGlkX29wX3AgKG9wZXJhbmRzLCBpbnNuLCAzLCB0cnVl LCAxLCBmYWxzZSkiCi0gICAicHJvdDxzc2V2ZWNzaXplPlx0eyUyLCAlMSwgJTB8JTAsICUxLCAl Mn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaXNoZnQiKQotKyAgIChzZXRfYXR0ciAicHJl Zml4X2RhdGExNiIgIjAiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMiIpCi0gICAg KHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0gCi0gOzsgU1NFNSBwYWNrZWQgc2hpZnQgaW5zdHJ1 Y3Rpb25zLgotQEAgLTExMTM3LDYgKzExMzg0LDggQEAgKGRlZmluZV9pbnNuICJzc2U1X2FzaGw8 bW9kZT4zIgotICAgIlRBUkdFVF9TU0U1ICYmIGl4ODZfc3NlNV92YWxpZF9vcF9wIChvcGVyYW5k cywgaW5zbiwgMywgdHJ1ZSwgMSwgZmFsc2UpIgotICAgInBzaGE8c3NldmVjc2l6ZT5cdHslMiwg JTEsICUwfCUwLCAlMSwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlzaGZ0IikKLSsg ICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIwIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9l eHRyYSIgIjIiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotIAotIChkZWZpbmVfaW5z biAic3NlNV9sc2hsPG1vZGU+MyIKLUBAIC0xMTE1NCw2ICsxMTQwMyw4IEBAIChkZWZpbmVfaW5z biAic3NlNV9sc2hsPG1vZGU+MyIKLSAgICJUQVJHRVRfU1NFNSAmJiBpeDg2X3NzZTVfdmFsaWRf b3BfcCAob3BlcmFuZHMsIGluc24sIDMsIHRydWUsIDEsIGZhbHNlKSIKLSAgICJwc2hsPHNzZXZl Y3NpemU+XHR7JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJz c2Vpc2hmdCIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCi0rICAgKHNldF9h dHRyICJwcmVmaXhfZXh0cmEiICIyIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLSAK LSA7OyBTU0UyIGRvZXNuJ3QgaGF2ZSBzb21lIHNoaWZ0IHZhcmllbnRzLCBzbyBkZWZpbmUgdmVy c2lvbnMgZm9yIFNTRTUKLUBAIC0xMTI2Nyw3ICsxMTUxOCw2IEBAIChkZWZpbmVfaW5zbiAic3Nl NV9mcmN6PG1vZGU+MiIKLSAgICJUQVJHRVRfU1NFNSIKLSAgICJmcmN6PHNzZW1vZGVzdWZmaXhm ND5cdHslMSwgJTB8JTAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjdnQxIikKLS0g ICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIjxN T0RFPiIpXSkKLSAKLSA7OyBzY2FsYXIgaW5zbnMKLUBAIC0xMTI4Miw3ICsxMTUzMiw2IEBAIChk ZWZpbmVfaW5zbiAic3NlNV92bWZyY3o8bW9kZT4yIgotICAgIlRBUkdFVF9TU0U1IgotICAgImZy Y3o8c3NlbW9kZXN1ZmZpeGYycz5cdHslMiwgJTB8JTAsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5 cGUiICJzc2VjdnQxIikKLS0gICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotICAgIChz ZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKLSAKLSAoZGVmaW5lX2luc24gInNzZTVfY3Z0cGgy cHMiCi1AQCAtMTEzMzEsNiArMTE1ODAsMTAgQEAgKGRlZmluZV9pbnNuICIqc3NlNV92bW1hc2tj bXA8bW9kZT4zIgotICAgIlRBUkdFVF9TU0U1IgotICAgImNvbSVZMTxzc2Vtb2Rlc3VmZml4ZjJz Plx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlNGFy ZyIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCi0rICAgKHNldF9hdHRyICJw cmVmaXhfcmVwIiAiMCIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIyIikKLSsgICAo c2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICI8 c3Nlc2NhbGFybW9kZT4iKV0pCi0gCi0gOzsgV2UgZG9uJ3QgaGF2ZSBhIGNvbXBhcmlzb24gb3Bl cmF0b3IgdGhhdCBhbHdheXMgcmV0dXJucyB0cnVlL2ZhbHNlLCBzbwotQEAgLTExMzcxLDYgKzEx NjI0LDEwIEBAIChkZWZpbmVfaW5zbiAic3NlNV9jb21fdGY8bW9kZT4zIgotICAgcmV0dXJuIHJl dDsKLSB9Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY21wIikKLSsgICAoc2V0X2F0dHIgInBy ZWZpeF9kYXRhMTYiICIwIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9yZXAiICIwIikKLSsgICAo c2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjIiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVk aWF0ZSIgIjEiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKLSAKLSAoZGVmaW5l X2luc24gInNzZTVfbWFza2NtcDxtb2RlPjMiCi1AQCAtMTEzODEsNiArMTE2MzgsMTAgQEAgKGRl ZmluZV9pbnNuICJzc2U1X21hc2tjbXA8bW9kZT4zIgotICAgIlRBUkdFVF9TU0U1IgotICAgImNv bSVZMTxzc2Vtb2Rlc3VmZml4ZjQ+XHR7JTMsICUyLCAlMHwlMCwgJTIsICUzfSIKLSAgIFsoc2V0 X2F0dHIgInR5cGUiICJzc2VjbXAiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2RhdGExNiIgIjAi KQotKyAgIChzZXRfYXR0ciAicHJlZml4X3JlcCIgIjAiKQotKyAgIChzZXRfYXR0ciAicHJlZml4 X2V4dHJhIiAiMiIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAg KHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQotIAotIChkZWZpbmVfaW5zbiAic3NlNV9tYXNr Y21wPG1vZGU+MyIKLUBAIC0xMTM5MSw2ICsxMTY1MiwxMCBAQCAoZGVmaW5lX2luc24gInNzZTVf bWFza2NtcDxtb2RlPjMiCi0gICAiVEFSR0VUX1NTRTUiCi0gICAicGNvbSVZMTxzc2V2ZWNzaXpl Plx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlNGFy ZyIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCi0rICAgKHNldF9hdHRyICJw cmVmaXhfcmVwIiAiMCIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIyIikKLSsgICAo c2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJU SSIpXSkKLSAKLSAoZGVmaW5lX2luc24gInNzZTVfbWFza2NtcF91bnM8bW9kZT4zIgotQEAgLTEx NDAxLDYgKzExNjY2LDEwIEBAIChkZWZpbmVfaW5zbiAic3NlNV9tYXNrY21wX3Vuczxtb2RlPjMi Ci0gICAiVEFSR0VUX1NTRTUiCi0gICAicGNvbSVZMXU8c3NldmVjc2l6ZT5cdHslMywgJTIsICUw fCUwLCAlMiwgJTN9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWNtcCIpCi0rICAgKHNldF9h dHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfcmVwIiAiMCIp Ci0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIyIikKLSsgICAoc2V0X2F0dHIgImxlbmd0 aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLSAKLSA7OyBW ZXJzaW9uIG9mIHBjb20qdSogdGhhdCBpcyBjYWxsZWQgZnJvbSB0aGUgaW50cmluc2ljcyB0aGF0 IGFsbG93cyBwY29tZXF1KgotQEAgLTExNDE2LDYgKzExNjg1LDkgQEAgKGRlZmluZV9pbnNuICJz c2U1X21hc2tjbXBfdW5zMjxtb2RlPjMiCi0gICAiVEFSR0VUX1NTRTUiCi0gICAicGNvbSVZMXU8 c3NldmVjc2l6ZT5cdHslMywgJTIsICUwfCUwLCAlMiwgJTN9IgotICAgWyhzZXRfYXR0ciAidHlw ZSIgInNzZWNtcCIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCi0rICAgKHNl dF9hdHRyICJwcmVmaXhfZXh0cmEiICIyIikKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlh dGUiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLSAKLSA7OyBQY29tdHJ1ZSBh bmQgcGNvbWZhbHNlIHN1cHBvcnQuICBUaGVzZSBhcmUgdXNlbGVzcyBpbnN0cnVjdGlvbnMsIGJ1 dCBhcmUKLUBAIC0xMTQzNCw2ICsxMTcwNiw5IEBAIChkZWZpbmVfaW5zbiAic3NlNV9wY29tX3Rm PG1vZGU+MyIKLSAJICA6ICJwY29tZmFsc2U8c3NldmVjc2l6ZT5cdHslMiwgJTEsICUwfCUwLCAl MSwgJTJ9Iik7Ci0gfQotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWNtcCIpCi0rICAgKHNldF9h dHRyICJwcmVmaXhfZGF0YTE2IiAiMCIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIy IikKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIg Im1vZGUiICJUSSIpXSkKLSAKLSAoZGVmaW5lX2luc24gIiphdnhfYWVzZW5jIgotQEAgLTExNDQ0 LDYgKzExNzE5LDcgQEAgKGRlZmluZV9pbnNuICIqYXZ4X2Flc2VuYyIKLSAgICJUQVJHRVRfQUVT ICYmIFRBUkdFVF9BVlgiCi0gICAidmFlc2VuY1x0eyUyLCAlMSwgJTB8JTAsICUxLCAlMn0iCi0g ICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0 cmEiICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCi0gICAgKHNldF9hdHRyICJt b2RlIiAiVEkiKV0pCi0gCi1AQCAtMTE0NjYsNiArMTE3NDIsNyBAQCAoZGVmaW5lX2luc24gIiph dnhfYWVzZW5jbGFzdCIKLSAgICJUQVJHRVRfQUVTICYmIFRBUkdFVF9BVlgiCi0gICAidmFlc2Vu Y2xhc3RcdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNz ZWxvZzEiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0gICAgKHNldF9hdHRy ICJwcmVmaXgiICJ2ZXgiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotIAotQEAgLTEx NDg4LDYgKzExNzY1LDcgQEAgKGRlZmluZV9pbnNuICIqYXZ4X2Flc2RlYyIKLSAgICJUQVJHRVRf QUVTICYmIFRBUkdFVF9BVlgiCi0gICAidmFlc2RlY1x0eyUyLCAlMSwgJTB8JTAsICUxLCAlMn0i Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhf ZXh0cmEiICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCi0gICAgKHNldF9hdHRy ICJtb2RlIiAiVEkiKV0pCi0gCi1AQCAtMTE1MTAsNiArMTE3ODgsNyBAQCAoZGVmaW5lX2luc24g IiphdnhfYWVzZGVjbGFzdCIKLSAgICJUQVJHRVRfQUVTICYmIFRBUkdFVF9BVlgiCi0gICAidmFl c2RlY2xhc3RcdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIg InNzZWxvZzEiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0gICAgKHNldF9h dHRyICJwcmVmaXgiICJ2ZXgiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotIAotQEAg LTExNTQ0LDYgKzExODIzLDcgQEAgKGRlZmluZV9pbnNuICJhZXNrZXlnZW5hc3Npc3QiCi0gICAi JXZhZXNrZXlnZW5hc3Npc3RcdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgotICAgWyhzZXRfYXR0 ciAidHlwZSIgInNzZWxvZzEiKQotICAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0r ICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVm aXgiICJtYXliZV92ZXgiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotIAotQEAgLTEx NTU2LDYgKzExODM2LDggQEAgKGRlZmluZV9pbnNuICIqdnBjbG11bHFkcSIKLSAgICJUQVJHRVRf UENMTVVMICYmIFRBUkdFVF9BVlgiCi0gICAidnBjbG11bHFkcVx0eyUzLCAlMiwgJTEsICUwfCUw LCAlMSwgJTIsICUzfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2cxIikKLSsgICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0 ZSIgIjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1v ZGUiICJUSSIpXSkKLSAKLUBAIC0xMTU2OSw2ICsxMTg1MSw3IEBAIChkZWZpbmVfaW5zbiAicGNs bXVscWRxIgotICAgInBjbG11bHFkcVx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30iCi0gICBbKHNl dF9hdHRyICJ0eXBlIiAic3NlbG9nMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIx IikKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIg Im1vZGUiICJUSSIpXSkKLSAKLSAoZGVmaW5lX2V4cGFuZCAiYXZ4X3Z6ZXJvYWxsIgotQEAgLTEx NTk5LDYgKzExODgyLDcgQEAgKGRlZmluZV9pbnNuICIqYXZ4X3Z6ZXJvYWxsIgotICAgIlRBUkdF VF9BVlgiCi0gICAidnplcm9hbGwiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlIikKLSsgICAo c2V0X2F0dHIgIm1vZHJtIiAiMCIpCi0gICAgKHNldF9hdHRyICJtZW1vcnkiICJub25lIikKLSAg ICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiT0kiKV0p Ci1AQCAtMTE2MTcsNiArMTE5MDEsNyBAQCAoZGVmaW5lX2luc24gImF2eF92emVyb3VwcGVyIgot ICAgIlRBUkdFVF9BVlggJiYgIVRBUkdFVF82NEJJVCIKLSAgICJ2emVyb3VwcGVyIgotICAgWyhz ZXRfYXR0ciAidHlwZSIgInNzZSIpCi0rICAgKHNldF9hdHRyICJtb2RybSIgIjAiKQotICAgIChz ZXRfYXR0ciAibWVtb3J5IiAibm9uZSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQot ICAgIChzZXRfYXR0ciAibW9kZSIgIk9JIildKQotQEAgLTExNjQyLDYgKzExOTI3LDcgQEAgKGRl ZmluZV9pbnNuICJhdnhfdnplcm91cHBlcl9yZXg2NCIKLSAgICJUQVJHRVRfQVZYICYmIFRBUkdF VF82NEJJVCIKLSAgICJ2emVyb3VwcGVyIgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZSIpCi0r ICAgKHNldF9hdHRyICJtb2RybSIgIjAiKQotICAgIChzZXRfYXR0ciAibWVtb3J5IiAibm9uZSIp Ci0gICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIk9J IildKQotQEAgLTExNjU1LDYgKzExOTQxLDggQEAgKGRlZmluZV9pbnNuICJhdnhfdnBlcm1pbDxt b2RlPiIKLSAgICJUQVJHRVRfQVZYIgotICAgInZwZXJtaWxwPGF2eG1vZGVzdWZmaXhmMmM+XHR7 JTIsICUxLCAlMHwlMCwgJTEsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQot KyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhf aW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAgIChzZXRf YXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKLSAKLUBAIC0xMTY2Nyw2ICsxMTk1NSw3IEBAIChkZWZp bmVfaW5zbiAiYXZ4X3ZwZXJtaWx2YXI8bW9kZT4zIgotICAgIlRBUkdFVF9BVlgiCi0gICAidnBl cm1pbHA8YXZ4bW9kZXN1ZmZpeGYyYz5cdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgotICAgWyhz ZXRfYXR0ciAidHlwZSIgInNzZWxvZyIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIx IikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAi PE1PREU+IildKQotIAotQEAgLTExNjgwLDYgKzExOTY5LDggQEAgKGRlZmluZV9pbnNuICJhdnhf dnBlcm0yZjEyODxtb2RlPjMiCi0gICAiVEFSR0VUX0FWWCIKLSAgICJ2cGVybTJmMTI4XHR7JTMs ICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgJTN9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxv ZyIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0X2F0dHIgImxl bmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCi0gICAg KHNldF9hdHRyICJtb2RlIiAiVjhTRiIpXSkKLSAKLUBAIC0xMTY5NSw2ICsxMTk4Niw3IEBAIChk ZWZpbmVfaW5zbiAiYXZ4X3Zicm9hZGNhc3RzPGF2eG1vZGVzdWYKLSAgICJUQVJHRVRfQVZYIgot ICAgInZicm9hZGNhc3RzPGF2eG1vZGVzdWZmaXhmMmM+XHR7JTEsICUwfCUwLCAlMX0iCi0gICBb KHNldF9hdHRyICJ0eXBlIiAic3NlbW92IikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIg IjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUi ICI8YXZ4c2NhbGFybW9kZT4iKV0pCi0gCi1AQCAtMTE3MTgsNiArMTIwMTAsNyBAQCAoZGVmaW5l X2luc24gImF2eF92YnJvYWRjYXN0c3MyNTYiCi0gICAiVEFSR0VUX0FWWCIKLSAgICJ2YnJvYWRj YXN0c3NcdHslMSwgJTB8JTAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vtb3YiKQot KyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXgi ICJ2ZXgiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlNGIildKQotIAotQEAgLTExNzI5LDYgKzEy MDIyLDcgQEAgKGRlZmluZV9pbnNuICJhdnhfdmJyb2FkY2FzdGYxMjhfcDxhdnhtbwotICAgIlRB UkdFVF9BVlgiCi0gICAidmJyb2FkY2FzdGYxMjhcdHslMSwgJTB8JTAsICUxfSIKLSAgIFsoc2V0 X2F0dHIgInR5cGUiICJzc2Vtb3YiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIp Ci0gICAgKHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlY0 U0YiKV0pCi0gCi1AQCAtMTE3NjUsNiArMTIwNTksOCBAQCAoZGVmaW5lX2luc24gInZlY19zZXRf bG9fPG1vZGU+IgotICAgIlRBUkdFVF9BVlgiCi0gICAidmluc2VydGYxMjhcdHskMHgwLCAlMiwg JTEsICUwfCUwLCAlMSwgJTIsIDB4MH0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikK LSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotKyAgIChzZXRfYXR0ciAibGVuZ3Ro X2ltbWVkaWF0ZSIgIjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgICAoc2V0 X2F0dHIgIm1vZGUiICJWOFNGIildKQotIAotQEAgLTExNzc4LDYgKzEyMDc0LDggQEAgKGRlZmlu ZV9pbnNuICJ2ZWNfc2V0X2hpXzxtb2RlPiIKLSAgICJUQVJHRVRfQVZYIgotICAgInZpbnNlcnRm MTI4XHR7JDB4MSwgJTIsICUxLCAlMHwlMCwgJTEsICUyLCAweDF9IgotICAgWyhzZXRfYXR0ciAi dHlwZSIgInNzZWxvZyIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAo c2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIg InZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVjhTRiIpXSkKLSAKLUBAIC0xMTc5Miw2ICsx MjA5MCw4IEBAIChkZWZpbmVfaW5zbiAidmVjX3NldF9sb188bW9kZT4iCi0gICAiVEFSR0VUX0FW WCIKLSAgICJ2aW5zZXJ0ZjEyOFx0eyQweDAsICUyLCAlMSwgJTB8JTAsICUxLCAlMiwgMHgwfSIK LSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vsb2ciKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4 dHJhIiAiMSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNl dF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlY4U0YiKV0pCi0g Ci1AQCAtMTE4MDYsNiArMTIxMDYsOCBAQCAoZGVmaW5lX2luc24gInZlY19zZXRfaGlfPG1vZGU+ IgotICAgIlRBUkdFVF9BVlgiCi0gICAidmluc2VydGYxMjhcdHskMHgxLCAlMiwgJTEsICUwfCUw LCAlMSwgJTIsIDB4MX0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikKLSsgICAoc2V0 X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0 ZSIgIjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1v ZGUiICJWOFNGIildKQotIAotQEAgLTExODIyLDYgKzEyMTI0LDggQEAgKGRlZmluZV9pbnNuICJ2 ZWNfc2V0X2xvX3YxNmhpIgotICAgIlRBUkdFVF9BVlgiCi0gICAidmluc2VydGYxMjhcdHskMHgw LCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsIDB4MH0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl bG9nIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotKyAgIChzZXRfYXR0ciAi bGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAg ICAoc2V0X2F0dHIgIm1vZGUiICJWOFNGIildKQotIAotQEAgLTExODM4LDYgKzEyMTQyLDggQEAg KGRlZmluZV9pbnNuICJ2ZWNfc2V0X2hpX3YxNmhpIgotICAgIlRBUkdFVF9BVlgiCi0gICAidmlu c2VydGYxMjhcdHskMHgxLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsIDB4MX0iCi0gICBbKHNldF9h dHRyICJ0eXBlIiAic3NlbG9nIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQot KyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAgIChzZXRfYXR0ciAicHJl Zml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJWOFNGIildKQotIAotQEAgLTExODU4 LDYgKzEyMTY0LDggQEAgKGRlZmluZV9pbnNuICJ2ZWNfc2V0X2xvX3YzMnFpIgotICAgIlRBUkdF VF9BVlgiCi0gICAidmluc2VydGYxMjhcdHskMHgwLCAlMiwgJTEsICUwfCUwLCAlMSwgJTIsIDB4 MH0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikKLSsgICAoc2V0X2F0dHIgInByZWZp eF9leHRyYSIgIjEiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAg IChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJWOFNGIild KQotIAotQEAgLTExODc4LDYgKzEyMTg2LDggQEAgKGRlZmluZV9pbnNuICJ2ZWNfc2V0X2hpX3Yz MnFpIgotICAgIlRBUkdFVF9BVlgiCi0gICAidmluc2VydGYxMjhcdHskMHgxLCAlMiwgJTEsICUw fCUwLCAlMSwgJTIsIDB4MX0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbG9nIikKLSsgICAo c2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVk aWF0ZSIgIjEiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIg Im1vZGUiICJWOFNGIildKQotIAotQEAgLTExODkxLDYgKzEyMjAxLDcgQEAgKGRlZmluZV9pbnNu ICJhdnhfbWFza2xvYWRwPGF2eG1vZGVzdWZmaQotICAgIlRBUkdFVF9BVlgiCi0gICAidm1hc2tt b3ZwPGF2eG1vZGVzdWZmaXhmMmM+XHR7JTEsICUyLCAlMHwlMCwgJTIsICUxfSIKLSAgIFsoc2V0 X2F0dHIgInR5cGUiICJzc2Vsb2cxIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9leHRyYSIgIjEi KQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICI8 TU9ERT4iKV0pCi0gCi1AQCAtMTE5MDQsNiArMTIyMTUsNyBAQCAoZGVmaW5lX2luc24gImF2eF9t YXNrc3RvcmVwPGF2eG1vZGVzdWZmCi0gICAiVEFSR0VUX0FWWCIKLSAgICJ2bWFza21vdnA8YXZ4 bW9kZXN1ZmZpeGYyYz5cdHslMiwgJTEsICUwfCUwLCAlMSwgJTJ9IgotICAgWyhzZXRfYXR0ciAi dHlwZSIgInNzZWxvZzEiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSIpCi0gICAg KHNldF9hdHRyICJwcmVmaXgiICJ2ZXgiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIp XSkKLSAKLUBAIC0xMjAxNCw1ICsxMjMyNiw3IEBAIChkZWZpbmVfaW5zbiAiKnZlY19jb25jYXQ8 bW9kZT5fYXZ4IgotICAgICB9Ci0gfQotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWxvZyxzc2Vt b3YiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X2V4dHJhIiAiMSwqIikKLSsgICAoc2V0X2F0dHIg Imxlbmd0aF9pbW1lZGlhdGUiICIxLCoiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikK LSAgICAoc2V0X2F0dHIgIm1vZGUiICI8YXZ4dmVjbW9kZT4iKV0pCi0tLS0gZ2NjL2NvbmZpZy9p Mzg2L2kzODYubWQuamoJMjAwOS0wNi0wOSAxMToyMDowMC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBn Y2MvY29uZmlnL2kzODYvaTM4Ni5tZAkyMDA5LTA2LTA5IDExOjU5OjE3LjAwMDAwMDAwMCArMDIw MAotQEAgLTI5NSw2ICsyOTUsNyBAQCAoZGVmaW5lX2NvbnN0YW50cwotICAgIChSOV9SRUcJCQkz OCkKLSAgICAoUjEwX1JFRwkJCTM5KQotICAgIChSMTFfUkVHCQkJNDApCi0rICAgKFIxMl9SRUcJ CQk0MSkKLSAgICAoUjEzX1JFRwkJCTQyKQotICAgIChYTU04X1JFRwkJCTQ1KQotICAgIChYTU05 X1JFRwkJCTQ2KQotQEAgLTM5OCwxNiArMzk5LDIzIEBAIChkZWZpbmVfYXR0ciAibGVuZ3RoX2Fk ZHJlc3MiICIiCi0gCi0gOzsgU2V0IHdoZW4gbGVuZ3RoIHByZWZpeCBpcyB1c2VkLgotIChkZWZp bmVfYXR0ciAicHJlZml4X2RhdGExNiIgIiIKLS0gIChpZl90aGVuX2Vsc2UgKGlvciAoZXFfYXR0 ciAibW9kZSIgIkhJIikKLS0JCSAgICAgKGFuZCAoZXFfYXR0ciAidW5pdCIgInNzZSIpIChlcV9h dHRyICJtb2RlIiAiVjJERiIpKSkKLS0gICAgKGNvbnN0X2ludCAxKQotLSAgICAoY29uc3RfaW50 IDApKSkKLSsgIChjb25kIFsoZXFfYXR0ciAidHlwZSIgInNzZW11bGFkZCxzc2U0YXJnLHNzZWlh ZGQxLHNzZWN2dDEiKQotKwkgICAoY29uc3RfaW50IDApCi0rCSAoZXFfYXR0ciAibW9kZSIgIkhJ IikKLSsJICAgKGNvbnN0X2ludCAxKQotKwkgKGFuZCAoZXFfYXR0ciAidW5pdCIgInNzZSIpIChl cV9hdHRyICJtb2RlIiAiVjJERixUSSIpKQotKwkgICAoY29uc3RfaW50IDEpCi0rCV0KLSsJKGNv bnN0X2ludCAwKSkpCi0gCi0gOzsgU2V0IHdoZW4gc3RyaW5nIFJFUCBwcmVmaXggaXMgdXNlZC4K LSAoZGVmaW5lX2F0dHIgInByZWZpeF9yZXAiICIiCi0tICAoaWZfdGhlbl9lbHNlIChhbmQgKGVx X2F0dHIgInVuaXQiICJzc2UiKSAoZXFfYXR0ciAibW9kZSIgIlNGLERGIikpCi0tICAgIChjb25z dF9pbnQgMSkKLS0gICAgKGNvbnN0X2ludCAwKSkpCi0rICAoY29uZCBbKGVxX2F0dHIgInR5cGUi ICJzc2VtdWxhZGQsc3NlNGFyZyxzc2VpYWRkMSxzc2VjdnQxIikKLSsJICAgKGNvbnN0X2ludCAw KQotKwkgKGFuZCAoZXFfYXR0ciAidW5pdCIgInNzZSIpIChlcV9hdHRyICJtb2RlIiAiU0YsREYi KSkKLSsJICAgKGNvbnN0X2ludCAxKQotKwldCi0rCShjb25zdF9pbnQgMCkpKQotIAotIDs7IFNl dCB3aGVuIDBmIG9wY29kZSBwcmVmaXggaXMgdXNlZC4KLSAoZGVmaW5lX2F0dHIgInByZWZpeF8w ZiIgIiIKLUBAIC00MTksOCArNDI3LDExIEBAIChkZWZpbmVfYXR0ciAicHJlZml4XzBmIiAiIgot IAotIDs7IFNldCB3aGVuIFJFWCBvcGNvZGUgcHJlZml4IGlzIHVzZWQuCi0gKGRlZmluZV9hdHRy ICJwcmVmaXhfcmV4IiAiIgotLSAgKGNvbmQgWyhhbmQgKGVxX2F0dHIgIm1vZGUiICJESSIpCi0t ICAJICAgICAgKGVxX2F0dHIgInR5cGUiICIhcHVzaCxwb3AsY2FsbCxjYWxsdixsZWF2ZSxpYnIi KSkKLSsgIChjb25kIFsobmUgKHN5bWJvbF9yZWYgIiFUQVJHRVRfNjRCSVQiKSAoY29uc3RfaW50 IDApKQotKwkgICAoY29uc3RfaW50IDApCi0rCSAoYW5kIChlcV9hdHRyICJtb2RlIiAiREkiKQot KwkgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiIXB1c2gscG9wLGNhbGwsY2FsbHYsbGVhdmUs aWJyIikKLSsJCSAgIChlcV9hdHRyICJ1bml0IiAiIW1teCIpKSkKLSAJICAgKGNvbnN0X2ludCAx KQotIAkgKGFuZCAoZXFfYXR0ciAibW9kZSIgIlFJIikKLSAJICAgICAgKG5lIChzeW1ib2xfcmVm ICJ4ODZfZXh0ZW5kZWRfUUlyZWdfbWVudGlvbmVkX3AgKGluc24pIikKLUBAIC00MjksMTEgKzQ0 MCwyMyBAQCAoZGVmaW5lX2F0dHIgInByZWZpeF9yZXgiICIiCi0gCSAobmUgKHN5bWJvbF9yZWYg Ing4Nl9leHRlbmRlZF9yZWdfbWVudGlvbmVkX3AgKGluc24pIikKLSAJICAgICAoY29uc3RfaW50 IDApKQotIAkgICAoY29uc3RfaW50IDEpCi0rCSAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaW1vdngi KQotKwkgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAxICJleHRfUUlyZWdfb3BlcmFuZCIgIiIpKQot KwkgICAoY29uc3RfaW50IDEpCi0gCV0KLSAJKGNvbnN0X2ludCAwKSkpCi0gCi0tOzsgVGhlcmUg YXJlIGFsc28gYWRkaXRpb25hbCBwcmVmaXhlcyBpbiBTU1NFMy4KLS0oZGVmaW5lX2F0dHIgInBy ZWZpeF9leHRyYSIgIiIgKGNvbnN0X2ludCAwKSkKLSs7OyBUaGVyZSBhcmUgYWxzbyBhZGRpdGlv bmFsIHByZWZpeGVzIGluIDNETk9XLCBTU1NFMyBvciBTU0U1LgotKzs7IHNzZW11bGFkZCxzc2U0 YXJnIGRlZmF1bHQgdG8gMGYyNC8wZjI1IGFuZCBEUkVYIGJ5dGUsCi0rOzsgc3NlaWFkZDEsc3Nl Y3Z0MSB0byAwZjdhIHdpdGggbm8gRFJFWCBieXRlLgotKzs7IDNETk9XIGhhcyAwZjBmIHByZWZp eCwgU1NTRTMgYW5kIFNTRTRfezEsMn0gMGYzOC8wZjNhLgotKyhkZWZpbmVfYXR0ciAicHJlZml4 X2V4dHJhIiAiIgotKyAgKGNvbmQgWyhlcV9hdHRyICJ0eXBlIiAic3NlbXVsYWRkLHNzZTRhcmci KQotKwkgICAoY29uc3RfaW50IDIpCi0rCSAoZXFfYXR0ciAidHlwZSIgInNzZWlhZGQxLHNzZWN2 dDEiKQotKwkgICAoY29uc3RfaW50IDEpCi0rCV0KLSsJKGNvbnN0X2ludCAwKSkpCi0gCi0gOzsg UHJlZml4IHVzZWQ6IG9yaWdpbmFsLCBWRVggb3IgbWF5YmUgVkVYLgotIChkZWZpbmVfYXR0ciAi cHJlZml4IiAib3JpZyx2ZXgsbWF5YmVfdmV4IgotQEAgLTQ0MSwxNSArNDY0LDE2IEBAIChkZWZp bmVfYXR0ciAicHJlZml4IiAib3JpZyx2ZXgsbWF5YmVfdmUKLSAgICAgKGNvbnN0X3N0cmluZyAi dmV4IikKLSAgICAgKGNvbnN0X3N0cmluZyAib3JpZyIpKSkKLSAKLS07OyBUaGVyZSBpcyBhIDhi aXQgaW1tZWRpYXRlIGZvciBWRVguCi0tKGRlZmluZV9hdHRyICJwcmVmaXhfdmV4X2ltbTgiICIi IChjb25zdF9pbnQgMCkpCi0tCi0gOzsgVkVYIFcgYml0IGlzIHVzZWQuCi0gKGRlZmluZV9hdHRy ICJwcmVmaXhfdmV4X3ciICIiIChjb25zdF9pbnQgMCkpCi0gCi0gOzsgVGhlIGxlbmd0aCBvZiBW RVggcHJlZml4Ci0rOzsgT25seSBpbnN0cnVjdGlvbnMgd2l0aCAwZiBwcmVmaXggY2FuIGhhdmUg MiBieXRlIFZFWCBwcmVmaXgsCi0rOzsgMGYzOC8wZjNhIHByZWZpeGVzIGNhbid0LiAgSW4gaTM4 Ni5tZCAwZjNbOGFdIGlzCi0rOzsgc3RpbGwgcHJlZml4XzBmIDEsIHdpdGggcHJlZml4X2V4dHJh IDEuCi0gKGRlZmluZV9hdHRyICJsZW5ndGhfdmV4IiAiIgotLSAgKGlmX3RoZW5fZWxzZSAoZXFf YXR0ciAicHJlZml4XzBmIiAiMSIpCi0rICAoaWZfdGhlbl9lbHNlIChhbmQgKGVxX2F0dHIgInBy ZWZpeF8wZiIgIjEiKQotKwkJICAgICAoZXFfYXR0ciAicHJlZml4X2V4dHJhIiAiMCIpKQotICAg ICAoaWZfdGhlbl9lbHNlIChlcV9hdHRyICJwcmVmaXhfdmV4X3ciICIxIikKLSAgICAgICAoc3lt Ym9sX3JlZiAiaXg4Nl9hdHRyX2xlbmd0aF92ZXhfZGVmYXVsdCAoaW5zbiwgMSwgMSkiKQotICAg ICAgIChzeW1ib2xfcmVmICJpeDg2X2F0dHJfbGVuZ3RoX3ZleF9kZWZhdWx0IChpbnNuLCAxLCAw KSIpKQotQEAgLTQ2NCw4ICs0ODgsOSBAQCAoZGVmaW5lX2F0dHIgIm1vZHJtIiAiIgotIAkgKGVx X2F0dHIgInVuaXQiICJpMzg3IikKLSAJICAgKGNvbnN0X2ludCAwKQotICAgICAgICAgIChhbmQg KGVxX2F0dHIgInR5cGUiICJpbmNkZWMiKQotLQkgICAgICAoaW9yIChtYXRjaF9vcGVyYW5kOlNJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICIiKQotLQkJICAgKG1hdGNoX29wZXJhbmQ6SEkgMSAicmVn aXN0ZXJfb3BlcmFuZCIgIiIpKSkKLSsJICAgICAgKGFuZCAoZXEgKHN5bWJvbF9yZWYgIlRBUkdF VF82NEJJVCIpIChjb25zdF9pbnQgMCkpCi0rCQkgICAoaW9yIChtYXRjaF9vcGVyYW5kOlNJIDEg InJlZ2lzdGVyX29wZXJhbmQiICIiKQotKwkJCShtYXRjaF9vcGVyYW5kOkhJIDEgInJlZ2lzdGVy X29wZXJhbmQiICIiKSkpKQotIAkgICAoY29uc3RfaW50IDApCi0gCSAoYW5kIChlcV9hdHRyICJ0 eXBlIiAicHVzaCIpCi0gCSAgICAgIChub3QgKG1hdGNoX29wZXJhbmQgMSAibWVtb3J5X29wZXJh bmQiICIiKSkpCi1AQCAtNDc0LDEyICs0OTksMTMgQEAgKGRlZmluZV9hdHRyICJtb2RybSIgIiIK LSAJICAgICAgKG5vdCAobWF0Y2hfb3BlcmFuZCAwICJtZW1vcnlfb3BlcmFuZCIgIiIpKSkKLSAJ ICAgKGNvbnN0X2ludCAwKQotIAkgKGFuZCAoZXFfYXR0ciAidHlwZSIgImltb3YiKQotLQkgICAg ICAoaW9yIChhbmQgKG1hdGNoX29wZXJhbmQgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCi0tCQkJ KG1hdGNoX29wZXJhbmQgMSAiaW1tZWRpYXRlX29wZXJhbmQiICIiKSkKLS0JCSAgIChpb3IgKGFu ZCAobWF0Y2hfb3BlcmFuZCAwICJheF9yZWdfb3BlcmFuZCIgIiIpCi0tCQkJICAgICAobWF0Y2hf b3BlcmFuZCAxICJtZW1vcnlfZGlzcGxhY2VtZW50X29ubHlfb3BlcmFuZCIgIiIpKQotLQkJCShh bmQgKG1hdGNoX29wZXJhbmQgMCAibWVtb3J5X2Rpc3BsYWNlbWVudF9vbmx5X29wZXJhbmQiICIi KQotLQkJCSAgICAgKG1hdGNoX29wZXJhbmQgMSAiYXhfcmVnX29wZXJhbmQiICIiKSkpKSkKLSsJ ICAgICAgKGFuZCAobm90IChlcV9hdHRyICJtb2RlIiAiREkiKSkKLSsJCSAgIChpb3IgKGFuZCAo bWF0Y2hfb3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKLSsJCQkgICAgIChtYXRjaF9v cGVyYW5kIDEgImltbWVkaWF0ZV9vcGVyYW5kIiAiIikpCi0rCQkgICAgICAgIChpb3IgKGFuZCAo bWF0Y2hfb3BlcmFuZCAwICJheF9yZWdfb3BlcmFuZCIgIiIpCi0rCQkJCSAgKG1hdGNoX29wZXJh bmQgMSAibWVtb3J5X2Rpc3BsYWNlbWVudF9vbmx5X29wZXJhbmQiICIiKSkKLSsJCQkgICAgIChh bmQgKG1hdGNoX29wZXJhbmQgMCAibWVtb3J5X2Rpc3BsYWNlbWVudF9vbmx5X29wZXJhbmQiICIi KQotKwkJCQkgIChtYXRjaF9vcGVyYW5kIDEgImF4X3JlZ19vcGVyYW5kIiAiIikpKSkpKQotIAkg ICAoY29uc3RfaW50IDApCi0gCSAoYW5kIChlcV9hdHRyICJ0eXBlIiAiY2FsbCIpCi0gCSAgICAg IChtYXRjaF9vcGVyYW5kIDAgImNvbnN0YW50X2NhbGxfYWRkcmVzc19vcGVyYW5kIiAiIikpCi1A QCAtNDg3LDYgKzUxMyw5IEBAIChkZWZpbmVfYXR0ciAibW9kcm0iICIiCi0gCSAoYW5kIChlcV9h dHRyICJ0eXBlIiAiY2FsbHYiKQotIAkgICAgICAobWF0Y2hfb3BlcmFuZCAxICJjb25zdGFudF9j YWxsX2FkZHJlc3Nfb3BlcmFuZCIgIiIpKQotIAkgICAgIChjb25zdF9pbnQgMCkKLSsJIChhbmQg KGVxX2F0dHIgInR5cGUiICJhbHUsYWx1MSxpY21wLHRlc3QiKQotKwkgICAgICAobWF0Y2hfb3Bl cmFuZCAwICJheF9yZWdfb3BlcmFuZCIgIiIpKQotKwkgICAgIChzeW1ib2xfcmVmICIoZ2V0X2F0 dHJfbGVuZ3RoX2ltbWVkaWF0ZSAoaW5zbikgPD0gKGdldF9hdHRyX21vZGUgKGluc24pICE9IE1P REVfUUkpKSIpCi0gCSBdCi0gCSAoY29uc3RfaW50IDEpKSkKLSAKLUBAIC01MDcsNyArNTM2LDcg QEAgKGRlZmluZV9hdHRyICJsZW5ndGgiICIiCi0gCSAgICAgIChhbmQgKGVxX2F0dHIgInByZWZp eCIgIm1heWJlX3ZleCIpCi0gCQkgICAgKG5lIChzeW1ib2xfcmVmICJUQVJHRVRfQVZYIikgKGNv bnN0X2ludCAwKSkpKQotIAkgICAocGx1cyAoYXR0ciAibGVuZ3RoX3ZleCIpCi0tCQkgKHBsdXMg KGF0dHIgInByZWZpeF92ZXhfaW1tOCIpCi0rCQkgKHBsdXMgKGF0dHIgImxlbmd0aF9pbW1lZGlh dGUiKQotIAkJICAgICAgIChwbHVzIChhdHRyICJtb2RybSIpCi0gCQkJICAgICAoYXR0ciAibGVu Z3RoX2FkZHJlc3MiKSkpKV0KLSAJIChwbHVzIChwbHVzIChhdHRyICJtb2RybSIpCi1AQCAtMTAy Miw2ICsxMDUxLDcgQEAgKGRlZmluZV9pbnNuICJjbXBxaV9leHRfM19pbnNuIgotICAgIiFUQVJH RVRfNjRCSVQgJiYgaXg4Nl9tYXRjaF9jY21vZGUgKGluc24sIENDbW9kZSkiCi0gICAiY21we2J9 XHR7JTEsICVoMHwlaDAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJpY21wIikKLSsgICAo c2V0X2F0dHIgIm1vZHJtIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKV0pCi0gCi0g KGRlZmluZV9pbnNuICJjbXBxaV9leHRfM19pbnNuX3JleDY0IgotQEAgLTEwMzYsNiArMTA2Niw3 IEBAIChkZWZpbmVfaW5zbiAiY21wcWlfZXh0XzNfaW5zbl9yZXg2NCIKLSAgICJUQVJHRVRfNjRC SVQgJiYgaXg4Nl9tYXRjaF9jY21vZGUgKGluc24sIENDbW9kZSkiCi0gICAiY21we2J9XHR7JTEs ICVoMHwlaDAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJpY21wIikKLSsgICAoc2V0X2F0 dHIgIm1vZHJtIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKV0pCi0gCi0gKGRlZmlu ZV9pbnNuICIqY21wcWlfZXh0XzQiCi1AQCAtMTMwOCw3ICsxMzM5LDcgQEAgKGRlZmluZV9pbnNu ICJ4ODZfZm5zdHN3XzEiCi0gCSh1bnNwZWM6SEkgWyhyZWc6Q0NGUCBGUFNSX1JFRyldIFVOU1BF Q19GTlNUU1cpKV0KLSAgICJUQVJHRVRfODAzODciCi0gICAiZm5zdHN3XHQlMCIKLS0gIFsoc2V0 X2F0dHIgImxlbmd0aCIgIjIiKQotKyAgWyhzZXQgKGF0dHIgImxlbmd0aCIpIChzeW1ib2xfcmVm ICJpeDg2X2F0dHJfbGVuZ3RoX2FkZHJlc3NfZGVmYXVsdCAoaW5zbikgKyAyIikpCi0gICAgKHNl dF9hdHRyICJtb2RlIiAiU0kiKQotICAgIChzZXRfYXR0ciAidW5pdCIgImkzODciKV0pCi0gCi1A QCAtMTM0OCw2ICsxMzc5LDE3IEBAIChkZWZpbmVfaW5zbiAiKmNtcGZwX2lfbWl4ZWQiCi0gICAg ICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOlNGIDEgIiIgIiIpCi0gICAgICAgICAoY29u c3Rfc3RyaW5nICJTRiIpCi0gICAgICAgICAoY29uc3Rfc3RyaW5nICJERiIpKSkKLSsgICAoc2V0 IChhdHRyICJwcmVmaXhfcmVwIikKLSsJKGlmX3RoZW5fZWxzZSAoZXFfYXR0ciAidHlwZSIgInNz ZWNvbWkiKQotKwkJICAgICAgKGNvbnN0X3N0cmluZyAiMCIpCi0rCQkgICAgICAoY29uc3Rfc3Ry aW5nICIqIikpKQotKyAgIChzZXQgKGF0dHIgInByZWZpeF9kYXRhMTYiKQotKwkoY29uZCBbKGVx X2F0dHIgInR5cGUiICJmY21wIikKLSsJCSAoY29uc3Rfc3RyaW5nICIqIikKLSsJICAgICAgIChl cV9hdHRyICJtb2RlIiAiREYiKQotKwkJIChjb25zdF9zdHJpbmcgIjEiKQotKwkgICAgICBdCi0r CSAgICAgIChjb25zdF9zdHJpbmcgIjAiKSkpCi0gICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2Rl IiAidmVjdG9yIikKLSAgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRpcmVjdCIpXSkK LSAKLUBAIC0xMzY1LDYgKzE0MDcsMTEgQEAgKGRlZmluZV9pbnNuICIqY21wZnBfaV9zc2UiCi0g ICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOlNGIDEgIiIgIiIpCi0gICAgICAgICAo Y29uc3Rfc3RyaW5nICJTRiIpCi0gICAgICAgICAoY29uc3Rfc3RyaW5nICJERiIpKSkKLSsgICAo c2V0X2F0dHIgInByZWZpeF9yZXAiICIwIikKLSsgICAoc2V0IChhdHRyICJwcmVmaXhfZGF0YTE2 IikKLSsJKGlmX3RoZW5fZWxzZSAoZXFfYXR0ciAibW9kZSIgIkRGIikKLSsJCSAgICAgIChjb25z dF9zdHJpbmcgIjEiKQotKwkJICAgICAgKGNvbnN0X3N0cmluZyAiMCIpKSkKLSAgICAoc2V0X2F0 dHIgImF0aGxvbl9kZWNvZGUiICJ2ZWN0b3IiKQotICAgIChzZXRfYXR0ciAiYW1kZmFtMTBfZGVj b2RlIiAiZGlyZWN0IildKQotIAotQEAgLTE0MDIsNiArMTQ0OSwxNyBAQCAoZGVmaW5lX2luc24g IipjbXBmcF9pdV9taXhlZCIKLSAgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6U0Yg MSAiIiAiIikKLSAgICAgICAgIChjb25zdF9zdHJpbmcgIlNGIikKLSAgICAgICAgIChjb25zdF9z dHJpbmcgIkRGIikpKQotKyAgIChzZXQgKGF0dHIgInByZWZpeF9yZXAiKQotKwkoaWZfdGhlbl9l bHNlIChlcV9hdHRyICJ0eXBlIiAic3NlY29taSIpCi0rCQkgICAgICAoY29uc3Rfc3RyaW5nICIw IikKLSsJCSAgICAgIChjb25zdF9zdHJpbmcgIioiKSkpCi0rICAgKHNldCAoYXR0ciAicHJlZml4 X2RhdGExNiIpCi0rCShjb25kIFsoZXFfYXR0ciAidHlwZSIgImZjbXAiKQotKwkJIChjb25zdF9z dHJpbmcgIioiKQotKwkgICAgICAgKGVxX2F0dHIgIm1vZGUiICJERiIpCi0rCQkgKGNvbnN0X3N0 cmluZyAiMSIpCi0rCSAgICAgIF0KLSsJICAgICAgKGNvbnN0X3N0cmluZyAiMCIpKSkKLSAgICAo c2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICJ2ZWN0b3IiKQotICAgIChzZXRfYXR0ciAiYW1kZmFt MTBfZGVjb2RlIiAiZGlyZWN0IildKQotIAotQEAgLTE0MTksNiArMTQ3NywxMSBAQCAoZGVmaW5l X2luc24gIipjbXBmcF9pdV9zc2UiCi0gICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5k OlNGIDEgIiIgIiIpCi0gICAgICAgICAoY29uc3Rfc3RyaW5nICJTRiIpCi0gICAgICAgICAoY29u c3Rfc3RyaW5nICJERiIpKSkKLSsgICAoc2V0X2F0dHIgInByZWZpeF9yZXAiICIwIikKLSsgICAo c2V0IChhdHRyICJwcmVmaXhfZGF0YTE2IikKLSsJKGlmX3RoZW5fZWxzZSAoZXFfYXR0ciAibW9k ZSIgIkRGIikKLSsJCSAgICAgIChjb25zdF9zdHJpbmcgIjEiKQotKwkJICAgICAgKGNvbnN0X3N0 cmluZyAiMCIpKSkKLSAgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICJ2ZWN0b3IiKQotICAg IChzZXRfYXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAiZGlyZWN0IildKQotIAotQEAgLTE1OTQsNiAr MTY1NywxMCBAQCAoZGVmaW5lX2luc24gIiptb3ZzaV8xIgotICAgICAgKGlmX3RoZW5fZWxzZSAo ZXFfYXR0ciAiYWx0ZXJuYXRpdmUiICIwLDEsMiwzLDQsNSIpCi0gICAgICAgIChjb25zdF9zdHJp bmcgIm9yaWciKQotICAgICAgICAoY29uc3Rfc3RyaW5nICJtYXliZV92ZXgiKSkpCi0rICAgKHNl dCAoYXR0ciAicHJlZml4X2RhdGExNiIpCi0rICAgICAoaWZfdGhlbl9lbHNlIChhbmQgKGVxX2F0 dHIgInR5cGUiICJzc2Vtb3YiKSAoZXFfYXR0ciAibW9kZSIgIlNJIikpCi0rICAgICAgIChjb25z dF9zdHJpbmcgIjEiKQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIqIikpKQotICAgIChzZXQgKGF0 dHIgIm1vZGUiKQotICAgICAgKGNvbmQgWyhlcV9hdHRyICJhbHRlcm5hdGl2ZSIgIjIsMyIpCi0g CSAgICAgIChjb25zdF9zdHJpbmcgIkRJIikKLUBAIC0yMDg1LDcgKzIxNTIsNyBAQCAoZGVmaW5l X2luc24gIiptb3ZkaV9leHR6dl8xIgotICAgIlRBUkdFVF82NEJJVCIKLSAgICJtb3Z6e2JsfHh9 XHR7JWgxLCAlazB8JWswLCAlaDF9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgImltb3Z4IikKLS0g ICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkKLSsgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkK LSAKLSAoZGVmaW5lX2luc24gIiptb3ZzaV9leHR6dl8xIgotICAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1SIikKLUBAIC0yNDMzLDggKzI1MDAsMTggQEAg KGRlZmluZV9pbnNuICIqbW92ZGlfMV9yZXg2NCIKLSAJICAgICAgKGNvbnN0X3N0cmluZyAibGVh IikKLSAJICAgXQotIAkgICAoY29uc3Rfc3RyaW5nICJpbW92IikpKQotLSAgIChzZXRfYXR0ciAi bW9kcm0iICIqLDAsMCwqLCosKiwqLCosKiwqLCosKiwqLCosKiwqLCosKiwqIikKLS0gICAoc2V0 X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIqLDQsOCwqLCosKiwqLCosKiwqLCosKiwqLCosKiwq LCosKiwqIikKLSsgICAoc2V0IChhdHRyICJtb2RybSIpCi0rICAgICAoaWZfdGhlbl9lbHNlCi0r ICAgICAgIChhbmQgKGVxX2F0dHIgImFsdGVybmF0aXZlIiAiMiIpIChlcV9hdHRyICJ0eXBlIiAi aW1vdiIpKQotKwkgKGNvbnN0X3N0cmluZyAiMCIpCi0rCSAoY29uc3Rfc3RyaW5nICIqIikpKQot KyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQotKyAgICAgKGlmX3RoZW5fZWxzZQot KyAgICAgICAoYW5kIChlcV9hdHRyICJhbHRlcm5hdGl2ZSIgIjIiKSAoZXFfYXR0ciAidHlwZSIg Imltb3YiKSkKLSsJIChjb25zdF9zdHJpbmcgIjgiKQotKwkgKGNvbnN0X3N0cmluZyAiKiIpKSkK LSsgICAoc2V0X2F0dHIgInByZWZpeF9yZXgiICIqLCosKiwqLCosKiwqLDEsKiwxLCosKiwqLCos KiwqLCosKiwqIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9kYXRhMTYiICIqLCosKiwqLCosKiwq LCosKiwqLCosKiwqLCosKiwxLCosKiwqIikKLSAgICAoc2V0IChhdHRyICJwcmVmaXgiKQotICAg ICAgKGlmX3RoZW5fZWxzZSAoZXFfYXR0ciAiYWx0ZXJuYXRpdmUiICIxMSwxMiwxMywxNCwxNSwx NiIpCi0gICAgICAgIChjb25zdF9zdHJpbmcgIm1heWJlX3ZleCIpCi1AQCAtMzAxOSw2ICszMDk2 LDEwIEBAIChkZWZpbmVfaW5zbiAiKm1vdmRmX25vaW50ZWdlciIKLSAgICAgIChpZl90aGVuX2Vs c2UgKGVxX2F0dHIgImFsdGVybmF0aXZlIiAiMCwxLDIsMyw0IikKLSAgICAgICAgKGNvbnN0X3N0 cmluZyAib3JpZyIpCi0gICAgICAgIChjb25zdF9zdHJpbmcgIm1heWJlX3ZleCIpKSkKLSsgICAo c2V0IChhdHRyICJwcmVmaXhfZGF0YTE2IikKLSsgICAgIChpZl90aGVuX2Vsc2UgKGVxX2F0dHIg Im1vZGUiICJWMURGIikKLSsgICAgICAgKGNvbnN0X3N0cmluZyAiMSIpCi0rICAgICAgIChjb25z dF9zdHJpbmcgIioiKSkpCi0gICAgKHNldCAoYXR0ciAibW9kZSIpCi0gICAgICAgICAoY29uZCBb KGVxX2F0dHIgImFsdGVybmF0aXZlIiAiMCwxLDIiKQotIAkJIChjb25zdF9zdHJpbmcgIkRGIikK LUBAIC0zMTUzLDYgKzMyMzQsMTAgQEAgKGRlZmluZV9pbnNuICIqbW92ZGZfaW50ZWdlcl9yZXg2 NCIKLSAgICAgIChpZl90aGVuX2Vsc2UgKGVxX2F0dHIgImFsdGVybmF0aXZlIiAiMCwxLDIsMyw0 IikKLSAgICAgICAgKGNvbnN0X3N0cmluZyAib3JpZyIpCi0gICAgICAgIChjb25zdF9zdHJpbmcg Im1heWJlX3ZleCIpKSkKLSsgICAoc2V0IChhdHRyICJwcmVmaXhfZGF0YTE2IikKLSsgICAgIChp Zl90aGVuX2Vsc2UgKGVxX2F0dHIgIm1vZGUiICJWMURGIikKLSsgICAgICAgKGNvbnN0X3N0cmlu ZyAiMSIpCi0rICAgICAgIChjb25zdF9zdHJpbmcgIioiKSkpCi0gICAgKHNldCAoYXR0ciAibW9k ZSIpCi0gICAgICAgICAoY29uZCBbKGVxX2F0dHIgImFsdGVybmF0aXZlIiAiMCwxLDIiKQotIAkJ IChjb25zdF9zdHJpbmcgIkRGIikKLUBAIC0zMjczLDYgKzMzNTgsMTAgQEAgKGRlZmluZV9pbnNu ICIqbW92ZGZfaW50ZWdlciIKLSAgICAgfQotIH0KLSAgIFsoc2V0X2F0dHIgInR5cGUiICJmbW92 LGZtb3YsZm1vdixtdWx0aSxtdWx0aSxzc2Vsb2cxLHNzZW1vdixzc2Vtb3Ysc3NlbW92IikKLSsg ICAoc2V0IChhdHRyICJwcmVmaXhfZGF0YTE2IikKLSsgICAgIChpZl90aGVuX2Vsc2UgKGVxX2F0 dHIgIm1vZGUiICJWMURGIikKLSsgICAgICAgKGNvbnN0X3N0cmluZyAiMSIpCi0rICAgICAgIChj b25zdF9zdHJpbmcgIioiKSkpCi0gICAgKHNldCAoYXR0ciAibW9kZSIpCi0gICAgICAgICAoY29u ZCBbKGVxX2F0dHIgImFsdGVybmF0aXZlIiAiMCwxLDIiKQotIAkJIChjb25zdF9zdHJpbmcgIkRG IikKLUBAIC0zOTAzLDYgKzM5OTIsNyBAQCAoZGVmaW5lX2luc24gInplcm9fZXh0ZW5kc2lkaTJf cmV4NjQiCi0gICAgJXZtb3ZkXHR7JTEsICUwfCUwLCAlMX0iCi0gICBbKHNldF9hdHRyICJ0eXBl IiAiaW1vdngsaW1vdixtbXhtb3YsbW14bW92LHNzZW1vdixzc2Vtb3YiKQotICAgIChzZXRfYXR0 ciAicHJlZml4IiAib3JpZywqLG9yaWcsb3JpZyxtYXliZV92ZXgsbWF5YmVfdmV4IikKLSsgICAo c2V0X2F0dHIgInByZWZpeF8wZiIgIjAsKiwqLCosKiwqIikKLSAgICAoc2V0X2F0dHIgIm1vZGUi ICJTSSxESSxESSxESSxUSSxUSSIpXSkKLSAKLSAoZGVmaW5lX3NwbGl0Ci1AQCAtMzkzNyw3ICs0 MDI3LDcgQEAgKGRlZmluZV9pbnNuICJ6ZXJvX2V4dGVuZGhpZGkyIgotICAgIlRBUkdFVF82NEJJ VCIKLSAgICJtb3Z6e3dsfHh9XHR7JTEsICVrMHwlazAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5 cGUiICJpbW92eCIpCi0tICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0rICAgKHNldF9hdHRy ICJtb2RlIiAiU0kiKV0pCi0gCi0gKGRlZmluZV9pbnNuICJ6ZXJvX2V4dGVuZHFpZGkyIgotICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKLUBAIC0z OTQ1LDcgKzQwMzUsNyBAQCAoZGVmaW5lX2luc24gInplcm9fZXh0ZW5kcWlkaTIiCi0gICAiVEFS R0VUXzY0QklUIgotICAgIm1vdnp7Ymx8eH1cdHslMSwgJWswfCVrMCwgJTF9IgotICAgWyhzZXRf YXR0ciAidHlwZSIgImltb3Z4IikKLS0gICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkKLSsgICAo c2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKLSAMCi0gOzsgU2lnbiBleHRlbnNpb24gaW5zdHJ1Y3Rp b25zCi0gCi1AQCAtMzk3Nyw3ICs0MDY3LDcgQEAgKGRlZmluZV9pbnNuICJleHRlbmRzaWRpMl9y ZXg2NCIKLSAgICJUQVJHRVRfNjRCSVQiCi0gICAiQAotICAgIHtjbHRxfGNkcWV9Ci0tICAgbW92 c3tscXx4fVx0eyUxLCUwfCUwLCAlMX0iCi0rICAgbW92c3tscXx4fVx0eyUxLCAlMHwlMCwgJTF9 IgotICAgWyhzZXRfYXR0ciAidHlwZSIgImltb3Z4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJE SSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfMGYiICIwIikKLUBAIC0zOTg3LDcgKzQwNzcsNyBA QCAoZGVmaW5lX2luc24gImV4dGVuZGhpZGkyIgotICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkg MCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKLSAJKHNpZ25fZXh0ZW5kOkRJIChtYXRjaF9vcGVy YW5kOkhJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAicm0iKSkpXQotICAgIlRBUkdFVF82NEJJ VCIKLS0gICJtb3Zze3dxfHh9XHR7JTEsJTB8JTAsICUxfSIKLSsgICJtb3Zze3dxfHh9XHR7JTEs ICUwfCUwLCAlMX0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAiaW1vdngiKQotICAgIChzZXRfYXR0 ciAibW9kZSIgIkRJIildKQotIAotQEAgLTM5OTUsNyArNDA4NSw3IEBAIChkZWZpbmVfaW5zbiAi ZXh0ZW5kcWlkaTIiCi0gICBbKHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiPXIiKQotIAkoc2lnbl9leHRlbmQ6REkgKG1hdGNoX29wZXJhbmQ6UUkgMSAibm9uaW1t ZWRpYXRlX29wZXJhbmQiICJxbSIpKSldCi0gICAiVEFSR0VUXzY0QklUIgotLSAgIm1vdnN7YnF8 eH1cdHslMSwlMHwlMCwgJTF9IgotKyAgIm1vdnN7YnF8eH1cdHslMSwgJTB8JTAsICUxfSIKLSAg ICBbKHNldF9hdHRyICJ0eXBlIiAiaW1vdngiKQotICAgICAoc2V0X2F0dHIgIm1vZGUiICJESSIp XSkKLSAKLUBAIC00MDgzLDcgKzQxNzMsNyBAQCAoZGVmaW5lX2luc24gImV4dGVuZGhpc2kyIgot ICAgICBjYXNlIDA6Ci0gICAgICAgcmV0dXJuICJ7Y3d0bHxjd2RlfSI7Ci0gICAgIGRlZmF1bHQ6 Ci0tICAgICAgcmV0dXJuICJtb3Zze3dsfHh9XHR7JTEsJTB8JTAsICUxfSI7Ci0rICAgICAgcmV0 dXJuICJtb3Zze3dsfHh9XHR7JTEsICUwfCUwLCAlMX0iOwotICAgICB9Ci0gfQotICAgWyhzZXRf YXR0ciAidHlwZSIgImltb3Z4IikKLUBAIC00MTEwLDcgKzQyMDAsNyBAQCAoZGVmaW5lX2luc24g IipleHRlbmRoaXNpMl96ZXh0IgotICAgICBjYXNlIDA6Ci0gICAgICAgcmV0dXJuICJ7Y3d0bHxj d2RlfSI7Ci0gICAgIGRlZmF1bHQ6Ci0tICAgICAgcmV0dXJuICJtb3Zze3dsfHh9XHR7JTEsJWsw fCVrMCwgJTF9IjsKLSsgICAgICByZXR1cm4gIm1vdnN7d2x8eH1cdHslMSwgJWswfCVrMCwgJTF9 IjsKLSAgICAgfQotIH0KLSAgIFsoc2V0X2F0dHIgInR5cGUiICJpbW92eCIpCi1AQCAtNDEzNiw3 ICs0MjI2LDcgQEAgKGRlZmluZV9pbnNuICJleHRlbmRxaWhpMiIKLSAgICAgY2FzZSAwOgotICAg ICAgIHJldHVybiAie2NidHd8Y2J3fSI7Ci0gICAgIGRlZmF1bHQ6Ci0tICAgICAgcmV0dXJuICJt b3Zze2J3fHh9XHR7JTEsJTB8JTAsICUxfSI7Ci0rICAgICAgcmV0dXJuICJtb3Zze2J3fHh9XHR7 JTEsICUwfCUwLCAlMX0iOwotICAgICB9Ci0gfQotICAgWyhzZXRfYXR0ciAidHlwZSIgImltb3Z4 IikKLUBAIC00MTU2LDcgKzQyNDYsNyBAQCAoZGVmaW5lX2luc24gImV4dGVuZHFpc2kyIgotICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKLSAJKHNp Z25fZXh0ZW5kOlNJIChtYXRjaF9vcGVyYW5kOlFJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAi cW0iKSkpXQotICAgIiIKLS0gICJtb3Zze2JsfHh9XHR7JTEsJTB8JTAsICUxfSIKLSsgICJtb3Zz e2JsfHh9XHR7JTEsICUwfCUwLCAlMX0iCi0gICAgWyhzZXRfYXR0ciAidHlwZSIgImltb3Z4IikK LSAgICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCi0gCi1AQCAtNDE2NSw3ICs0MjU1LDcgQEAg KGRlZmluZV9pbnNuICIqZXh0ZW5kcWlzaTJfemV4dCIKLSAJKHplcm9fZXh0ZW5kOkRJCi0gCSAg KHNpZ25fZXh0ZW5kOlNJIChtYXRjaF9vcGVyYW5kOlFJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5k IiAicW0iKSkpKV0KLSAgICJUQVJHRVRfNjRCSVQiCi0tICAibW92c3tibHx4fVx0eyUxLCVrMHwl azAsICUxfSIKLSsgICJtb3Zze2JsfHh9XHR7JTEsICVrMHwlazAsICUxfSIKLSAgICBbKHNldF9h dHRyICJ0eXBlIiAiaW1vdngiKQotICAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKLSAMCi1A QCAtNDc3Myw2ICs0ODYzLDcgQEAgKGRlZmluZV9pbnNuICJmaXhfdHJ1bmM8bW9kZT5kaV9zc2Ui Ci0gICAiJXZjdnR0czxzc2Vtb2RlZnN1ZmZpeD4yc2l7cX1cdHslMSwgJTB8JTAsICUxfSIKLSAg IFsoc2V0X2F0dHIgInR5cGUiICJzc2VpY3Z0IikKLSAgICAoc2V0X2F0dHIgInByZWZpeCIgIm1h eWJlX3ZleCIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfcmV4IiAiMSIpCi0gICAgKHNldF9hdHRy ICJtb2RlIiAiPE1PREU+IikKLSAgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICJkb3VibGUs dmVjdG9yIikKLSAgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRvdWJsZSxkb3VibGUi KV0pCi1AQCAtNTA0Nyw3ICs1MTM4LDcgQEAgKGRlZmluZV9pbnNuICJ4ODZfZm5zdGN3XzEiCi0g CSh1bnNwZWM6SEkgWyhyZWc6SEkgRlBDUl9SRUcpXSBVTlNQRUNfRlNUQ1cpKV0KLSAgICJUQVJH RVRfODAzODciCi0gICAiZm5zdGN3XHQlMCIKLS0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKQot KyAgWyhzZXQgKGF0dHIgImxlbmd0aCIpIChzeW1ib2xfcmVmICJpeDg2X2F0dHJfbGVuZ3RoX2Fk ZHJlc3NfZGVmYXVsdCAoaW5zbikgKyAyIikpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiSEkiKQot ICAgIChzZXRfYXR0ciAidW5pdCIgImkzODciKV0pCi0gCi1AQCAtNTA1Niw3ICs1MTQ3LDcgQEAg KGRlZmluZV9pbnNuICJ4ODZfZmxkY3dfMSIKLSAJKHVuc3BlYzpISSBbKG1hdGNoX29wZXJhbmQ6 SEkgMCAibWVtb3J5X29wZXJhbmQiICJtIildIFVOU1BFQ19GTERDVykpXQotICAgIlRBUkdFVF84 MDM4NyIKLSAgICJmbGRjd1x0JTAiCi0tICBbKHNldF9hdHRyICJsZW5ndGgiICIyIikKLSsgIFso c2V0IChhdHRyICJsZW5ndGgiKSAoc3ltYm9sX3JlZiAiaXg4Nl9hdHRyX2xlbmd0aF9hZGRyZXNz X2RlZmF1bHQgKGluc24pICsgMiIpKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkhJIikKLSAgICAo c2V0X2F0dHIgInVuaXQiICJpMzg3IikKLSAgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICJ2 ZWN0b3IiKQotQEAgLTUyNzEsNiArNTM2MiwxMiBAQCAoZGVmaW5lX2luc24gIipmbG9hdDxTU0VN T0RFSTI0Om1vZGU+PE1PCi0gICBbKHNldF9hdHRyICJ0eXBlIiAiZm1vdixzc2VpY3Z0LHNzZWlj dnQiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAib3JpZyxtYXliZV92ZXgsbWF5YmVfdmV4IikK LSAgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERUY6TU9ERT4iKQotKyAgIChzZXQgKGF0dHIgInBy ZWZpeF9yZXgiKQotKyAgICAgKGlmX3RoZW5fZWxzZQotKyAgICAgICAoYW5kIChlcV9hdHRyICJw cmVmaXgiICJtYXliZV92ZXgiKQotKwkgICAgKG5lIChzeW1ib2xfcmVmICI8U1NFTU9ERUkyNDpN T0RFPm1vZGUgPT0gREltb2RlIikgKGNvbnN0X2ludCAwKSkpCi0rICAgICAgIChjb25zdF9zdHJp bmcgIjEiKQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIqIikpKQotICAgIChzZXRfYXR0ciAidW5p dCIgImkzODcsKiwqIikKLSAgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICIqLGRvdWJsZSxk aXJlY3QiKQotICAgIChzZXRfYXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAiKix2ZWN0b3IsZG91Ymxl IikKLUBAIC01Mjg5LDYgKzUzODYsMTIgQEAgKGRlZmluZV9pbnNuICIqZmxvYXQ8U1NFTU9ERUky NDptb2RlPjxNTwotICAgWyhzZXRfYXR0ciAidHlwZSIgImZtb3Ysc3NlaWN2dCIpCi0gICAgKHNl dF9hdHRyICJwcmVmaXgiICJvcmlnLG1heWJlX3ZleCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAi PE1PREVGOk1PREU+IikKLSsgICAoc2V0IChhdHRyICJwcmVmaXhfcmV4IikKLSsgICAgIChpZl90 aGVuX2Vsc2UKLSsgICAgICAgKGFuZCAoZXFfYXR0ciAicHJlZml4IiAibWF5YmVfdmV4IikKLSsJ ICAgIChuZSAoc3ltYm9sX3JlZiAiPFNTRU1PREVJMjQ6TU9ERT5tb2RlID09IERJbW9kZSIpIChj b25zdF9pbnQgMCkpKQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIxIikKLSsgICAgICAgKGNvbnN0 X3N0cmluZyAiKiIpKSkKLSAgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICIqLGRpcmVjdCIp Ci0gICAgKHNldF9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICIqLGRvdWJsZSIpCi0gICAgKHNldF9h dHRyICJmcF9pbnRfc3JjIiAidHJ1ZSIpXSkKLUBAIC01NDY1LDYgKzU1NjgsMTIgQEAgKGRlZmlu ZV9pbnNuICIqZmxvYXQ8U1NFTU9ERUkyNDptb2RlPjxNTwotICAgWyhzZXRfYXR0ciAidHlwZSIg InNzZWljdnQiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAibWF5YmVfdmV4IikKLSAgICAoc2V0 X2F0dHIgIm1vZGUiICI8TU9ERUY6TU9ERT4iKQotKyAgIChzZXQgKGF0dHIgInByZWZpeF9yZXgi KQotKyAgICAgKGlmX3RoZW5fZWxzZQotKyAgICAgICAoYW5kIChlcV9hdHRyICJwcmVmaXgiICJt YXliZV92ZXgiKQotKwkgICAgKG5lIChzeW1ib2xfcmVmICI8U1NFTU9ERUkyNDpNT0RFPm1vZGUg PT0gREltb2RlIikgKGNvbnN0X2ludCAwKSkpCi0rICAgICAgIChjb25zdF9zdHJpbmcgIjEiKQot KyAgICAgICAoY29uc3Rfc3RyaW5nICIqIikpKQotICAgIChzZXRfYXR0ciAiYXRobG9uX2RlY29k ZSIgImRvdWJsZSxkaXJlY3QiKQotICAgIChzZXRfYXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAidmVj dG9yLGRvdWJsZSIpCi0gICAgKHNldF9hdHRyICJmcF9pbnRfc3JjIiAidHJ1ZSIpXSkKLUBAIC01 NDk0LDYgKzU2MDMsMTIgQEAgKGRlZmluZV9pbnNuICIqZmxvYXQ8U1NFTU9ERUkyNDptb2RlPjxN TwotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWljdnQiKQotICAgIChzZXRfYXR0ciAicHJlZml4 IiAibWF5YmVfdmV4IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERUY6TU9ERT4iKQotKyAg IChzZXQgKGF0dHIgInByZWZpeF9yZXgiKQotKyAgICAgKGlmX3RoZW5fZWxzZQotKyAgICAgICAo YW5kIChlcV9hdHRyICJwcmVmaXgiICJtYXliZV92ZXgiKQotKwkgICAgKG5lIChzeW1ib2xfcmVm ICI8U1NFTU9ERUkyNDpNT0RFPm1vZGUgPT0gREltb2RlIikgKGNvbnN0X2ludCAwKSkpCi0rICAg ICAgIChjb25zdF9zdHJpbmcgIjEiKQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIqIikpKQotICAg IChzZXRfYXR0ciAiYXRobG9uX2RlY29kZSIgImRpcmVjdCIpCi0gICAgKHNldF9hdHRyICJhbWRm YW0xMF9kZWNvZGUiICJkb3VibGUiKQotICAgIChzZXRfYXR0ciAiZnBfaW50X3NyYyIgInRydWUi KV0pCi1AQCAtNjIwMCw2ICs2MzE1LDExIEBAIChkZWZpbmVfaW5zbiAiKmFkZGRpXzFfcmV4NjQi Ci0gCSAgICAgIChjb25zdF9zdHJpbmcgImluY2RlYyIpCi0gCSAgIF0KLSAJICAgKGNvbnN0X3N0 cmluZyAiYWx1IikpKQotKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQotKyAgICAg IChpZl90aGVuX2Vsc2UKLSsJKGFuZCAoZXFfYXR0ciAidHlwZSIgImFsdSIpIChtYXRjaF9vcGVy YW5kIDIgImNvbnN0MTI4X29wZXJhbmQiICIiKSkKLSsJKGNvbnN0X3N0cmluZyAiMSIpCi0rCShj b25zdF9zdHJpbmcgIioiKSkpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0gCi0gOzsg Q29udmVydCBsZWEgdG8gdGhlIGxlYSBwYXR0ZXJuIHRvIGF2b2lkIGZsYWdzIGRlcGVuZGVuY3ku Ci1AQCAtNjI2NCw2ICs2Mzg0LDExIEBAIChkZWZpbmVfaW5zbiAiKmFkZGRpXzJfcmV4NjQiCi0g ICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOkRJIDIgImluY2RlY19vcGVyYW5kIiAi IikKLSAJKGNvbnN0X3N0cmluZyAiaW5jZGVjIikKLSAJKGNvbnN0X3N0cmluZyAiYWx1IikpKQot KyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQotKyAgICAgIChpZl90aGVuX2Vsc2UK LSsJKGFuZCAoZXFfYXR0ciAidHlwZSIgImFsdSIpIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0MTI4 X29wZXJhbmQiICIiKSkKLSsJKGNvbnN0X3N0cmluZyAiMSIpCi0rCShjb25zdF9zdHJpbmcgIioi KSkpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqYWRk ZGlfM19yZXg2NCIKLUBAIC02MzEzLDYgKzY0MzgsMTEgQEAgKGRlZmluZV9pbnNuICIqYWRkZGlf M19yZXg2NCIKLSAgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6REkgMiAiaW5jZGVj X29wZXJhbmQiICIiKQotIAkoY29uc3Rfc3RyaW5nICJpbmNkZWMiKQotIAkoY29uc3Rfc3RyaW5n ICJhbHUiKSkpCi0rICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIpCi0rICAgICAgKGlm X3RoZW5fZWxzZQotKwkoYW5kIChlcV9hdHRyICJ0eXBlIiAiYWx1IikgKG1hdGNoX29wZXJhbmQg MiAiY29uc3QxMjhfb3BlcmFuZCIgIiIpKQotKwkoY29uc3Rfc3RyaW5nICIxIikKLSsJKGNvbnN0 X3N0cmluZyAiKiIpKSkKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkKLSAKLSA7IEZvciBj b21wYXJpc29ucyBhZ2FpbnN0IDEsIC0xIGFuZCAxMjgsIHdlIG1heSBnZW5lcmF0ZSBiZXR0ZXIg Y29kZQotQEAgLTYzNjAsNiArNjQ5MCwxMSBAQCAoZGVmaW5lX2luc24gIiphZGRkaV80X3JleDY0 IgotICAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZDpESSAyICJpbmNkZWNfb3BlcmFu ZCIgIiIpCi0gCShjb25zdF9zdHJpbmcgImluY2RlYyIpCi0gCShjb25zdF9zdHJpbmcgImFsdSIp KSkKLSsgICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKLSsgICAgICAoaWZfdGhlbl9l bHNlCi0rCShhbmQgKGVxX2F0dHIgInR5cGUiICJhbHUiKSAobWF0Y2hfb3BlcmFuZCAyICJjb25z dDEyOF9vcGVyYW5kIiAiIikpCi0rCShjb25zdF9zdHJpbmcgIjEiKQotKwkoY29uc3Rfc3RyaW5n ICIqIikpKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQotIAotIChkZWZpbmVfaW5zbiAi KmFkZGRpXzVfcmV4NjQiCi1AQCAtNjQwOSw2ICs2NTQ0LDExIEBAIChkZWZpbmVfaW5zbiAiKmFk ZGRpXzVfcmV4NjQiCi0gICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOkRJIDIgImlu Y2RlY19vcGVyYW5kIiAiIikKLSAJKGNvbnN0X3N0cmluZyAiaW5jZGVjIikKLSAJKGNvbnN0X3N0 cmluZyAiYWx1IikpKQotKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQotKyAgICAg IChpZl90aGVuX2Vsc2UKLSsJKGFuZCAoZXFfYXR0ciAidHlwZSIgImFsdSIpIChtYXRjaF9vcGVy YW5kIDIgImNvbnN0MTI4X29wZXJhbmQiICIiKSkKLSsJKGNvbnN0X3N0cmluZyAiMSIpCi0rCShj b25zdF9zdHJpbmcgIioiKSkpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0gCi0gCi1A QCAtNjQ2OSw2ICs2NjA5LDExIEBAIChkZWZpbmVfaW5zbiAiKmFkZHNpXzEiCi0gCSAgICAgIChj b25zdF9zdHJpbmcgImluY2RlYyIpCi0gCSAgIF0KLSAJICAgKGNvbnN0X3N0cmluZyAiYWx1Iikp KQotKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQotKyAgICAgIChpZl90aGVuX2Vs c2UKLSsJKGFuZCAoZXFfYXR0ciAidHlwZSIgImFsdSIpIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0 MTI4X29wZXJhbmQiICIiKSkKLSsJKGNvbnN0X3N0cmluZyAiMSIpCi0rCShjb25zdF9zdHJpbmcg IioiKSkpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCi0gCi0gOzsgQ29udmVydCBsZWEg dG8gdGhlIGxlYSBwYXR0ZXJuIHRvIGF2b2lkIGZsYWdzIGRlcGVuZGVuY3kuCi1AQCAtNjU0OSw2 ICs2Njk0LDExIEBAIChkZWZpbmVfaW5zbiAiYWRkc2lfMV96ZXh0IgotIAkgICAgICAoY29uc3Rf c3RyaW5nICJpbmNkZWMiKQotIAkgICBdCi0gCSAgIChjb25zdF9zdHJpbmcgImFsdSIpKSkKLSsg ICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKLSsgICAgICAoaWZfdGhlbl9lbHNlCi0r CShhbmQgKGVxX2F0dHIgInR5cGUiICJhbHUiKSAobWF0Y2hfb3BlcmFuZCAyICJjb25zdDEyOF9v cGVyYW5kIiAiIikpCi0rCShjb25zdF9zdHJpbmcgIjEiKQotKwkoY29uc3Rfc3RyaW5nICIqIikp KQotICAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQotIAotIDs7IENvbnZlcnQgbGVhIHRvIHRo ZSBsZWEgcGF0dGVybiB0byBhdm9pZCBmbGFncyBkZXBlbmRlbmN5LgotQEAgLTY2MTIsNiArNjc2 MiwxMSBAQCAoZGVmaW5lX2luc24gIiphZGRzaV8yIgotICAgICAgKGlmX3RoZW5fZWxzZSAobWF0 Y2hfb3BlcmFuZDpTSSAyICJpbmNkZWNfb3BlcmFuZCIgIiIpCi0gCShjb25zdF9zdHJpbmcgImlu Y2RlYyIpCi0gCShjb25zdF9zdHJpbmcgImFsdSIpKSkKLSsgICAoc2V0IChhdHRyICJsZW5ndGhf aW1tZWRpYXRlIikKLSsgICAgICAoaWZfdGhlbl9lbHNlCi0rCShhbmQgKGVxX2F0dHIgInR5cGUi ICJhbHUiKSAobWF0Y2hfb3BlcmFuZCAyICJjb25zdDEyOF9vcGVyYW5kIiAiIikpCi0rCShjb25z dF9zdHJpbmcgIjEiKQotKwkoY29uc3Rfc3RyaW5nICIqIikpKQotICAgIChzZXRfYXR0ciAibW9k ZSIgIlNJIildKQotIAotIDs7IFNlZSBjb21tZW50IGZvciBhZGRzaV8xX3pleHQgd2h5IHdlIGRv IHVzZSBub25pbW1lZGlhdGVfb3BlcmFuZAotQEAgLTY2NTgsNiArNjgxMywxMSBAQCAoZGVmaW5l X2luc24gIiphZGRzaV8yX3pleHQiCi0gICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5k OlNJIDIgImluY2RlY19vcGVyYW5kIiAiIikKLSAJKGNvbnN0X3N0cmluZyAiaW5jZGVjIikKLSAJ KGNvbnN0X3N0cmluZyAiYWx1IikpKQotKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUi KQotKyAgICAgIChpZl90aGVuX2Vsc2UKLSsJKGFuZCAoZXFfYXR0ciAidHlwZSIgImFsdSIpICht YXRjaF9vcGVyYW5kIDIgImNvbnN0MTI4X29wZXJhbmQiICIiKSkKLSsJKGNvbnN0X3N0cmluZyAi MSIpCi0rCShjb25zdF9zdHJpbmcgIioiKSkpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0p Ci0gCi0gKGRlZmluZV9pbnNuICIqYWRkc2lfMyIKLUBAIC02NzAyLDYgKzY4NjIsMTEgQEAgKGRl ZmluZV9pbnNuICIqYWRkc2lfMyIKLSAgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6 U0kgMiAiaW5jZGVjX29wZXJhbmQiICIiKQotIAkoY29uc3Rfc3RyaW5nICJpbmNkZWMiKQotIAko Y29uc3Rfc3RyaW5nICJhbHUiKSkpCi0rICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIp Ci0rICAgICAgKGlmX3RoZW5fZWxzZQotKwkoYW5kIChlcV9hdHRyICJ0eXBlIiAiYWx1IikgKG1h dGNoX29wZXJhbmQgMiAiY29uc3QxMjhfb3BlcmFuZCIgIiIpKQotKwkoY29uc3Rfc3RyaW5nICIx IikKLSsJKGNvbnN0X3N0cmluZyAiKiIpKSkKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkK LSAKLSA7OyBTZWUgY29tbWVudCBmb3IgYWRkc2lfMV96ZXh0IHdoeSB3ZSBkbyB1c2Ugbm9uaW1t ZWRpYXRlX29wZXJhbmQKLUBAIC02NzQ2LDYgKzY5MTEsMTEgQEAgKGRlZmluZV9pbnNuICIqYWRk c2lfM196ZXh0IgotICAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZDpTSSAyICJpbmNk ZWNfb3BlcmFuZCIgIiIpCi0gCShjb25zdF9zdHJpbmcgImluY2RlYyIpCi0gCShjb25zdF9zdHJp bmcgImFsdSIpKSkKLSsgICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKLSsgICAgICAo aWZfdGhlbl9lbHNlCi0rCShhbmQgKGVxX2F0dHIgInR5cGUiICJhbHUiKSAobWF0Y2hfb3BlcmFu ZCAyICJjb25zdDEyOF9vcGVyYW5kIiAiIikpCi0rCShjb25zdF9zdHJpbmcgIjEiKQotKwkoY29u c3Rfc3RyaW5nICIqIikpKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQotIAotIDsgRm9y IGNvbXBhcmlzb25zIGFnYWluc3QgMSwgLTEgYW5kIDEyOCwgd2UgbWF5IGdlbmVyYXRlIGJldHRl ciBjb2RlCi1AQCAtNjc5MSw2ICs2OTYxLDExIEBAIChkZWZpbmVfaW5zbiAiKmFkZHNpXzQiCi0g ICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOlNJIDIgImluY2RlY19vcGVyYW5kIiAi IikKLSAJKGNvbnN0X3N0cmluZyAiaW5jZGVjIikKLSAJKGNvbnN0X3N0cmluZyAiYWx1IikpKQot KyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQotKyAgICAgIChpZl90aGVuX2Vsc2UK LSsJKGFuZCAoZXFfYXR0ciAidHlwZSIgImFsdSIpIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0MTI4 X29wZXJhbmQiICIiKSkKLSsJKGNvbnN0X3N0cmluZyAiMSIpCi0rCShjb25zdF9zdHJpbmcgIioi KSkpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqYWRk c2lfNSIKLUBAIC02ODM3LDYgKzcwMTIsMTEgQEAgKGRlZmluZV9pbnNuICIqYWRkc2lfNSIKLSAg ICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6U0kgMiAiaW5jZGVjX29wZXJhbmQiICIi KQotIAkoY29uc3Rfc3RyaW5nICJpbmNkZWMiKQotIAkoY29uc3Rfc3RyaW5nICJhbHUiKSkpCi0r ICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIpCi0rICAgICAgKGlmX3RoZW5fZWxzZQot KwkoYW5kIChlcV9hdHRyICJ0eXBlIiAiYWx1IikgKG1hdGNoX29wZXJhbmQgMiAiY29uc3QxMjhf b3BlcmFuZCIgIiIpKQotKwkoY29uc3Rfc3RyaW5nICIxIikKLSsJKGNvbnN0X3N0cmluZyAiKiIp KSkKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKLSAKLSAoZGVmaW5lX2V4cGFuZCAiYWRk aGkzIgotQEAgLTY4OTEsNiArNzA3MSwxMSBAQCAoZGVmaW5lX2luc24gIiphZGRoaV8xX2xlYSIK LSAJKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZDpISSAyICJpbmNkZWNfb3BlcmFuZCIgIiIp Ci0gCSAgIChjb25zdF9zdHJpbmcgImluY2RlYyIpCi0gCSAgIChjb25zdF9zdHJpbmcgImFsdSIp KSkpCi0rICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIpCi0rICAgICAgKGlmX3RoZW5f ZWxzZQotKwkoYW5kIChlcV9hdHRyICJ0eXBlIiAiYWx1IikgKG1hdGNoX29wZXJhbmQgMiAiY29u c3QxMjhfb3BlcmFuZCIgIiIpKQotKwkoY29uc3Rfc3RyaW5nICIxIikKLSsJKGNvbnN0X3N0cmlu ZyAiKiIpKSkKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJISSxISSxTSSIpXSkKLSAKLSAoZGVmaW5l X2luc24gIiphZGRoaV8xIgotQEAgLTY5MzAsNiArNzExNSwxMSBAQCAoZGVmaW5lX2luc24gIiph ZGRoaV8xIgotICAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZDpISSAyICJpbmNkZWNf b3BlcmFuZCIgIiIpCi0gCShjb25zdF9zdHJpbmcgImluY2RlYyIpCi0gCShjb25zdF9zdHJpbmcg ImFsdSIpKSkKLSsgICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKLSsgICAgICAoaWZf dGhlbl9lbHNlCi0rCShhbmQgKGVxX2F0dHIgInR5cGUiICJhbHUiKSAobWF0Y2hfb3BlcmFuZCAy ICJjb25zdDEyOF9vcGVyYW5kIiAiIikpCi0rCShjb25zdF9zdHJpbmcgIjEiKQotKwkoY29uc3Rf c3RyaW5nICIqIikpKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkhJIildKQotIAotIChkZWZpbmVf aW5zbiAiKmFkZGhpXzIiCi1AQCAtNjk3Miw2ICs3MTYyLDExIEBAIChkZWZpbmVfaW5zbiAiKmFk ZGhpXzIiCi0gICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOkhJIDIgImluY2RlY19v cGVyYW5kIiAiIikKLSAJKGNvbnN0X3N0cmluZyAiaW5jZGVjIikKLSAJKGNvbnN0X3N0cmluZyAi YWx1IikpKQotKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQotKyAgICAgIChpZl90 aGVuX2Vsc2UKLSsJKGFuZCAoZXFfYXR0ciAidHlwZSIgImFsdSIpIChtYXRjaF9vcGVyYW5kIDIg ImNvbnN0MTI4X29wZXJhbmQiICIiKSkKLSsJKGNvbnN0X3N0cmluZyAiMSIpCi0rCShjb25zdF9z dHJpbmcgIioiKSkpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiSEkiKV0pCi0gCi0gKGRlZmluZV9p bnNuICIqYWRkaGlfMyIKLUBAIC03MDExLDYgKzcyMDYsMTEgQEAgKGRlZmluZV9pbnNuICIqYWRk aGlfMyIKLSAgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6SEkgMiAiaW5jZGVjX29w ZXJhbmQiICIiKQotIAkoY29uc3Rfc3RyaW5nICJpbmNkZWMiKQotIAkoY29uc3Rfc3RyaW5nICJh bHUiKSkpCi0rICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIpCi0rICAgICAgKGlmX3Ro ZW5fZWxzZQotKwkoYW5kIChlcV9hdHRyICJ0eXBlIiAiYWx1IikgKG1hdGNoX29wZXJhbmQgMiAi Y29uc3QxMjhfb3BlcmFuZCIgIiIpKQotKwkoY29uc3Rfc3RyaW5nICIxIikKLSsJKGNvbnN0X3N0 cmluZyAiKiIpKSkKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJISSIpXSkKLSAKLSA7IFNlZSBjb21t ZW50cyBhYm92ZSBhZGRzaV80IGZvciBkZXRhaWxzLgotQEAgLTcwNDksNyArNzI0OSwxMiBAQCAo ZGVmaW5lX2luc24gIiphZGRoaV80IgotICAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFu ZDpISSAyICJpbmNkZWNfb3BlcmFuZCIgIiIpCi0gCShjb25zdF9zdHJpbmcgImluY2RlYyIpCi0g CShjb25zdF9zdHJpbmcgImFsdSIpKSkKLS0gICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKLSsg ICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKLSsgICAgICAoaWZfdGhlbl9lbHNlCi0r CShhbmQgKGVxX2F0dHIgInR5cGUiICJhbHUiKSAobWF0Y2hfb3BlcmFuZCAyICJjb25zdDEyOF9v cGVyYW5kIiAiIikpCi0rCShjb25zdF9zdHJpbmcgIjEiKQotKwkoY29uc3Rfc3RyaW5nICIqIikp KQotKyAgIChzZXRfYXR0ciAibW9kZSIgIkhJIildKQotIAotIAotIChkZWZpbmVfaW5zbiAiKmFk ZGhpXzUiCi1AQCAtNzA5MSw2ICs3Mjk2LDExIEBAIChkZWZpbmVfaW5zbiAiKmFkZGhpXzUiCi0g ICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOkhJIDIgImluY2RlY19vcGVyYW5kIiAi IikKLSAJKGNvbnN0X3N0cmluZyAiaW5jZGVjIikKLSAJKGNvbnN0X3N0cmluZyAiYWx1IikpKQot KyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQotKyAgICAgIChpZl90aGVuX2Vsc2UK LSsJKGFuZCAoZXFfYXR0ciAidHlwZSIgImFsdSIpIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0MTI4 X29wZXJhbmQiICIiKSkKLSsJKGNvbnN0X3N0cmluZyAiMSIpCi0rCShjb25zdF9zdHJpbmcgIioi KSkpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiSEkiKV0pCi0gCi0gKGRlZmluZV9leHBhbmQgImFk ZHFpMyIKLUBAIC03MTQ5LDYgKzczNTksMTEgQEAgKGRlZmluZV9pbnNuICIqYWRkcWlfMV9sZWEi Ci0gCShpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6UUkgMiAiaW5jZGVjX29wZXJhbmQiICIi KQotIAkgICAoY29uc3Rfc3RyaW5nICJpbmNkZWMiKQotIAkgICAoY29uc3Rfc3RyaW5nICJhbHUi KSkpKQotKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQotKyAgICAgIChpZl90aGVu X2Vsc2UKLSsJKGFuZCAoZXFfYXR0ciAidHlwZSIgImFsdSIpIChtYXRjaF9vcGVyYW5kIDIgImNv bnN0MTI4X29wZXJhbmQiICIiKSkKLSsJKGNvbnN0X3N0cmluZyAiMSIpCi0rCShjb25zdF9zdHJp bmcgIioiKSkpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiUUksUUksU0ksU0kiKV0pCi0gCi0gKGRl ZmluZV9pbnNuICIqYWRkcWlfMSIKLUBAIC03MTk1LDYgKzc0MTAsMTEgQEAgKGRlZmluZV9pbnNu ICIqYWRkcWlfMSIKLSAgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6UUkgMiAiaW5j ZGVjX29wZXJhbmQiICIiKQotIAkoY29uc3Rfc3RyaW5nICJpbmNkZWMiKQotIAkoY29uc3Rfc3Ry aW5nICJhbHUiKSkpCi0rICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIpCi0rICAgICAg KGlmX3RoZW5fZWxzZQotKwkoYW5kIChlcV9hdHRyICJ0eXBlIiAiYWx1IikgKG1hdGNoX29wZXJh bmQgMiAiY29uc3QxMjhfb3BlcmFuZCIgIiIpKQotKwkoY29uc3Rfc3RyaW5nICIxIikKLSsJKGNv bnN0X3N0cmluZyAiKiIpKSkKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJRSSxRSSxTSSIpXSkKLSAK LSAoZGVmaW5lX2luc24gIiphZGRxaV8xX3NscCIKLUBAIC03NDMwLDYgKzc2NTAsNyBAQCAoZGVm aW5lX2luc24gImFkZHFpX2V4dF8xIgotICAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFu ZDpRSSAyICJpbmNkZWNfb3BlcmFuZCIgIiIpCi0gCShjb25zdF9zdHJpbmcgImluY2RlYyIpCi0g CShjb25zdF9zdHJpbmcgImFsdSIpKSkKLSsgICAoc2V0X2F0dHIgIm1vZHJtIiAiMSIpCi0gICAg KHNldF9hdHRyICJtb2RlIiAiUUkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqYWRkcWlfZXh0XzFf cmV4NjQiCi1AQCAtNzQ2Niw2ICs3Njg3LDcgQEAgKGRlZmluZV9pbnNuICIqYWRkcWlfZXh0XzFf cmV4NjQiCi0gICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOlFJIDIgImluY2RlY19v cGVyYW5kIiAiIikKLSAJKGNvbnN0X3N0cmluZyAiaW5jZGVjIikKLSAJKGNvbnN0X3N0cmluZyAi YWx1IikpKQotKyAgIChzZXRfYXR0ciAibW9kcm0iICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUi ICJRSSIpXSkKLSAKLSAoZGVmaW5lX2luc24gIiphZGRxaV9leHRfMiIKLUBAIC04OTI1LDYgKzkx NDcsNyBAQCAoZGVmaW5lX2luc24gIip0ZXN0cWlfZXh0XzAiCi0gICBbKHNldF9hdHRyICJ0eXBl IiAidGVzdCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKQotICAgIChzZXRfYXR0ciAibGVu Z3RoX2ltbWVkaWF0ZSIgIjEiKQotKyAgIChzZXRfYXR0ciAibW9kcm0iICIxIikKLSAgICAoc2V0 X2F0dHIgInBlbnRfcGFpciIgIm5wIildKQotIAotIChkZWZpbmVfaW5zbiAiKnRlc3RxaV9leHRf MSIKLUBAIC05MTUxLDkgKzkzNzQsOSBAQCAoZGVmaW5lX2luc24gIiphbmRkaV8xX3JleDY0Igot IAotIAlvcGVyYW5kc1sxXSA9IGdlbl9sb3dwYXJ0IChtb2RlLCBvcGVyYW5kc1sxXSk7Ci0gCWlm IChtb2RlID09IFFJbW9kZSkKLS0JICByZXR1cm4gIm1vdnp7YnF8eH1cdHslMSwlMHwlMCwgJTF9 IjsKLSsJICByZXR1cm4gIm1vdnp7Ymx8eH1cdHslMSwgJWswfCVrMCwgJTF9IjsKLSAJZWxzZQot LQkgIHJldHVybiAibW92ent3cXx4fVx0eyUxLCUwfCUwLCAlMX0iOwotKwkgIHJldHVybiAibW92 ent3bHx4fVx0eyUxLCAlazB8JWswLCAlMX0iOwotICAgICAgIH0KLSAKLSAgICAgZGVmYXVsdDoK LUBAIC05MTY2LDcgKzkzODksMTQgQEAgKGRlZmluZV9pbnNuICIqYW5kZGlfMV9yZXg2NCIKLSB9 Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAiYWx1LGFsdSxhbHUsaW1vdngiKQotICAgIChzZXRfYXR0 ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIiosKiwqLDAiKQotLSAgIChzZXRfYXR0ciAibW9kZSIgIlNJ LERJLERJLERJIildKQotKyAgIChzZXQgKGF0dHIgInByZWZpeF9yZXgiKQotKyAgICAgKGlmX3Ro ZW5fZWxzZQotKyAgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaW1vdngiKQotKwkgICAgKGFu ZCAobmUgKHN5bWJvbF9yZWYgIklOVFZBTCAob3BlcmFuZHNbMl0pID09IDB4ZmYiKSAoY29uc3Rf aW50IDApKQotKwkJIChtYXRjaF9vcGVyYW5kIDEgImV4dF9RSXJlZ19ub21vZGVfb3BlcmFuZCIg IiIpKSkKLSsgICAgICAgKGNvbnN0X3N0cmluZyAiMSIpCi0rICAgICAgIChjb25zdF9zdHJpbmcg IioiKSkpCi0rICAgKHNldF9hdHRyICJtb2RlIiAiU0ksREksREksU0kiKV0pCi0gCi0gKGRlZmlu ZV9pbnNuICIqYW5kZGlfMiIKLSAgIFsoc2V0IChyZWcgRkxBR1NfUkVHKQotQEAgLTkyMTUsOSAr OTQ0NSw5IEBAIChkZWZpbmVfaW5zbiAiKmFuZHNpXzEiCi0gCi0gCW9wZXJhbmRzWzFdID0gZ2Vu X2xvd3BhcnQgKG1vZGUsIG9wZXJhbmRzWzFdKTsKLSAJaWYgKG1vZGUgPT0gUUltb2RlKQotLQkg IHJldHVybiAibW92entibHx4fVx0eyUxLCUwfCUwLCAlMX0iOwotKwkgIHJldHVybiAibW92enti bHx4fVx0eyUxLCAlMHwlMCwgJTF9IjsKLSAJZWxzZQotLQkgIHJldHVybiAibW92ent3bHx4fVx0 eyUxLCUwfCUwLCAlMX0iOwotKwkgIHJldHVybiAibW92ent3bHx4fVx0eyUxLCAlMHwlMCwgJTF9 IjsKLSAgICAgICB9Ci0gCi0gICAgIGRlZmF1bHQ6Ci1AQCAtOTIyNiw2ICs5NDU2LDEzIEBAIChk ZWZpbmVfaW5zbiAiKmFuZHNpXzEiCi0gICAgIH0KLSB9Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAi YWx1LGFsdSxpbW92eCIpCi0rICAgKHNldCAoYXR0ciAicHJlZml4X3JleCIpCi0rICAgICAoaWZf dGhlbl9lbHNlCi0rICAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJpbW92eCIpCi0rCSAgICAo YW5kIChuZSAoc3ltYm9sX3JlZiAiSU5UVkFMIChvcGVyYW5kc1syXSkgPT0gMHhmZiIpIChjb25z dF9pbnQgMCkpCi0rCQkgKG1hdGNoX29wZXJhbmQgMSAiZXh0X1FJcmVnX25vbW9kZV9vcGVyYW5k IiAiIikpKQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIxIikKLSsgICAgICAgKGNvbnN0X3N0cmlu ZyAiKiIpKSkKLSAgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIqLCosMCIpCi0gICAg KHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCi0gCi1AQCAtOTMzNCw2ICs5NTcxLDEyIEBAIChkZWZp bmVfaW5zbiAiKmFuZGhpXzEiCi0gfQotICAgWyhzZXRfYXR0ciAidHlwZSIgImFsdSxhbHUsaW1v dngiKQotICAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIiosKiwwIikKLSsgICAoc2V0 IChhdHRyICJwcmVmaXhfcmV4IikKLSsgICAgIChpZl90aGVuX2Vsc2UKLSsgICAgICAgKGFuZCAo ZXFfYXR0ciAidHlwZSIgImltb3Z4IikKLSsJICAgIChtYXRjaF9vcGVyYW5kIDEgImV4dF9RSXJl Z19ub21vZGVfb3BlcmFuZCIgIiIpKQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIxIikKLSsgICAg ICAgKGNvbnN0X3N0cmluZyAiKiIpKSkKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJISSxISSxTSSIp XSkKLSAKLSAoZGVmaW5lX2luc24gIiphbmRoaV8yIgotQEAgLTk0NTMsNiArOTY5Niw3IEBAIChk ZWZpbmVfaW5zbiAiYW5kcWlfZXh0XzAiCi0gICAiYW5ke2J9XHR7JTIsICVoMHwlaDAsICUyfSIK LSAgIFsoc2V0X2F0dHIgInR5cGUiICJhbHUiKQotICAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVk aWF0ZSIgIjEiKQotKyAgIChzZXRfYXR0ciAibW9kcm0iICIxIikKLSAgICAoc2V0X2F0dHIgIm1v ZGUiICJRSSIpXSkKLSAKLSA7OyBHZW5lcmF0ZWQgYnkgcGVlcGhvbGUgdHJhbnNsYXRpbmcgdGVz dCB0byBhbmQuICBUaGlzIHNob3dzIHVwCi1AQCAtOTQ4MSw2ICs5NzI1LDcgQEAgKGRlZmluZV9p bnNuICIqYW5kcWlfZXh0XzBfY2MiCi0gICAiYW5ke2J9XHR7JTIsICVoMHwlaDAsICUyfSIKLSAg IFsoc2V0X2F0dHIgInR5cGUiICJhbHUiKQotICAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0 ZSIgIjEiKQotKyAgIChzZXRfYXR0ciAibW9kcm0iICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUi ICJRSSIpXSkKLSAKLSAoZGVmaW5lX2luc24gIiphbmRxaV9leHRfMSIKLUBAIC05ODU1LDYgKzEw MTAwLDcgQEAgKGRlZmluZV9pbnNuICIqaW9ycWlfZXh0XzAiCi0gICAib3J7Yn1cdHslMiwgJWgw fCVoMCwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgImFsdSIpCi0gICAgKHNldF9hdHRyICJs ZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0rICAgKHNldF9hdHRyICJtb2RybSIgIjEiKQotICAgIChz ZXRfYXR0ciAibW9kZSIgIlFJIildKQotIAotIChkZWZpbmVfaW5zbiAiKmlvcnFpX2V4dF8xIgot QEAgLTEwMTg1LDYgKzEwNDMxLDcgQEAgKGRlZmluZV9pbnNuICIqeG9ycWlfZXh0XzAiCi0gICAi eG9ye2J9XHR7JTIsICVoMHwlaDAsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJhbHUiKQot ICAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotKyAgIChzZXRfYXR0ciAibW9k cm0iICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJRSSIpXSkKLSAKLSAoZGVmaW5lX2luc24g Iip4b3JxaV9leHRfMSIKLUBAIC0xMDMwMyw2ICsxMDU1MCw3IEBAIChkZWZpbmVfaW5zbiAiKnhv cnFpX2NjX2V4dF8xIgotICAgIiFUQVJHRVRfNjRCSVQgJiYgaXg4Nl9tYXRjaF9jY21vZGUgKGlu c24sIENDTk9tb2RlKSIKLSAgICJ4b3J7Yn1cdHslMiwgJWgwfCVoMCwgJTJ9IgotICAgWyhzZXRf YXR0ciAidHlwZSIgImFsdSIpCi0rICAgKHNldF9hdHRyICJtb2RybSIgIjEiKQotICAgIChzZXRf YXR0ciAibW9kZSIgIlFJIildKQotIAotIChkZWZpbmVfaW5zbiAiKnhvcnFpX2NjX2V4dF8xX3Jl eDY0IgotQEAgLTEwMzI0LDYgKzEwNTcyLDcgQEAgKGRlZmluZV9pbnNuICIqeG9ycWlfY2NfZXh0 XzFfcmV4NjQiCi0gICAiVEFSR0VUXzY0QklUICYmIGl4ODZfbWF0Y2hfY2Ntb2RlIChpbnNuLCBD Q05PbW9kZSkiCi0gICAieG9ye2J9XHR7JTIsICVoMHwlaDAsICUyfSIKLSAgIFsoc2V0X2F0dHIg InR5cGUiICJhbHUiKQotKyAgIChzZXRfYXR0ciAibW9kcm0iICIxIikKLSAgICAoc2V0X2F0dHIg Im1vZGUiICJRSSIpXSkKLSAKLSAoZGVmaW5lX2V4cGFuZCAieG9ycWlfY2NfZXh0XzEiCi1AQCAt MTExMjYsNiArMTEzNzUsNyBAQCAoZGVmaW5lX2luc24gIiphdnhfYXNobHRpMyIKLSB9Ci0gICBb KHNldF9hdHRyICJ0eXBlIiAic3NlaXNoZnQiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4 IikKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIg Im1vZGUiICJUSSIpXSkKLSAKLSAoZGVmaW5lX2luc24gInNzZTJfYXNobHRpMyIKLUBAIC0xMTEz OSw2ICsxMTM4OSw3IEBAIChkZWZpbmVfaW5zbiAic3NlMl9hc2hsdGkzIgotIH0KLSAgIFsoc2V0 X2F0dHIgInR5cGUiICJzc2Vpc2hmdCIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAi MSIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRy ICJtb2RlIiAiVEkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqYXNobHRpM18xIgotQEAgLTExMjc4 LDYgKzExNTI5LDE1IEBAIChkZWZpbmVfaW5zbiAiKmFzaGxkaTNfMV9yZXg2NCIKLSAJICAgICAg KGNvbnN0X3N0cmluZyAiYWx1IikKLSAJICAgXQotIAkgICAoY29uc3Rfc3RyaW5nICJpc2hpZnQi KSkpCi0rICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIpCi0rICAgICAoaWZfdGhlbl9l bHNlCi0rICAgICAgIChpb3IgKGVxX2F0dHIgInR5cGUiICJhbHUiKQotKwkgICAgKGFuZCAoZXFf YXR0ciAidHlwZSIgImlzaGlmdCIpCi0rCQkgKGFuZCAobWF0Y2hfb3BlcmFuZCAyICJjb25zdDFf b3BlcmFuZCIgIiIpCi0rCQkgICAgICAobmUgKHN5bWJvbF9yZWYgIlRBUkdFVF9TSElGVDEgfHwg b3B0aW1pemVfZnVuY3Rpb25fZm9yX3NpemVfcCAoY2Z1bikiKQotKwkJCSAgKGNvbnN0X2ludCAw KSkpKSkKLSsgICAgICAgKGNvbnN0X3N0cmluZyAiMCIpCi0rICAgICAgIChjb25zdF9zdHJpbmcg IioiKSkpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0gCi0gOzsgQ29udmVydCBsZWEg dG8gdGhlIGxlYSBwYXR0ZXJuIHRvIGF2b2lkIGZsYWdzIGRlcGVuZGVuY3kuCi1AQCAtMTEzMzcs NiArMTE1OTcsMTUgQEAgKGRlZmluZV9pbnNuICIqYXNobGRpM19jbXBfcmV4NjQiCi0gCSAgICAg IChjb25zdF9zdHJpbmcgImFsdSIpCi0gCSAgIF0KLSAJICAgKGNvbnN0X3N0cmluZyAiaXNoaWZ0 IikpKQotKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQotKyAgICAgKGlmX3RoZW5f ZWxzZQotKyAgICAgICAoaW9yIChlcV9hdHRyICJ0eXBlIiAiYWx1IikKLSsJICAgIChhbmQgKGVx X2F0dHIgInR5cGUiICJpc2hpZnQiKQotKwkJIChhbmQgKG1hdGNoX29wZXJhbmQgMiAiY29uc3Qx X29wZXJhbmQiICIiKQotKwkJICAgICAgKG5lIChzeW1ib2xfcmVmICJUQVJHRVRfU0hJRlQxIHx8 IG9wdGltaXplX2Z1bmN0aW9uX2Zvcl9zaXplX3AgKGNmdW4pIikKLSsJCQkgIChjb25zdF9pbnQg MCkpKSkpCi0rICAgICAgIChjb25zdF9zdHJpbmcgIjAiKQotKyAgICAgICAoY29uc3Rfc3RyaW5n ICIqIikpKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQotIAotIChkZWZpbmVfaW5zbiAi KmFzaGxkaTNfY2Nvbmx5X3JleDY0IgotQEAgLTExMzc5LDYgKzExNjQ4LDE1IEBAIChkZWZpbmVf aW5zbiAiKmFzaGxkaTNfY2Nvbmx5X3JleDY0IgotIAkgICAgICAoY29uc3Rfc3RyaW5nICJhbHUi KQotIAkgICBdCi0gCSAgIChjb25zdF9zdHJpbmcgImlzaGlmdCIpKSkKLSsgICAoc2V0IChhdHRy ICJsZW5ndGhfaW1tZWRpYXRlIikKLSsgICAgIChpZl90aGVuX2Vsc2UKLSsgICAgICAgKGlvciAo ZXFfYXR0ciAidHlwZSIgImFsdSIpCi0rCSAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaXNoaWZ0 IikKLSsJCSAoYW5kIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0MV9vcGVyYW5kIiAiIikKLSsJCSAg ICAgIChuZSAoc3ltYm9sX3JlZiAiVEFSR0VUX1NISUZUMSB8fCBvcHRpbWl6ZV9mdW5jdGlvbl9m b3Jfc2l6ZV9wIChjZnVuKSIpCi0rCQkJICAoY29uc3RfaW50IDApKSkpKQotKyAgICAgICAoY29u c3Rfc3RyaW5nICIwIikKLSsgICAgICAgKGNvbnN0X3N0cmluZyAiKiIpKSkKLSAgICAoc2V0X2F0 dHIgIm1vZGUiICJESSIpXSkKLSAKLSAoZGVmaW5lX2luc24gIiphc2hsZGkzXzEiCi1AQCAtMTE1 MTgsNiArMTE3OTYsMTUgQEAgKGRlZmluZV9pbnNuICIqYXNobHNpM18xIgotIAkgICAgICAoY29u c3Rfc3RyaW5nICJhbHUiKQotIAkgICBdCi0gCSAgIChjb25zdF9zdHJpbmcgImlzaGlmdCIpKSkK LSsgICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKLSsgICAgIChpZl90aGVuX2Vsc2UK LSsgICAgICAgKGlvciAoZXFfYXR0ciAidHlwZSIgImFsdSIpCi0rCSAgICAoYW5kIChlcV9hdHRy ICJ0eXBlIiAiaXNoaWZ0IikKLSsJCSAoYW5kIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0MV9vcGVy YW5kIiAiIikKLSsJCSAgICAgIChuZSAoc3ltYm9sX3JlZiAiVEFSR0VUX1NISUZUMSB8fCBvcHRp bWl6ZV9mdW5jdGlvbl9mb3Jfc2l6ZV9wIChjZnVuKSIpCi0rCQkJICAoY29uc3RfaW50IDApKSkp KQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIwIikKLSsgICAgICAgKGNvbnN0X3N0cmluZyAiKiIp KSkKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKLSAKLSA7OyBDb252ZXJ0IGxlYSB0byB0 aGUgbGVhIHBhdHRlcm4gdG8gYXZvaWQgZmxhZ3MgZGVwZW5kZW5jeS4KLUBAIC0xMTYwMiw2ICsx MTg4OSwxNSBAQCAoZGVmaW5lX2luc24gIiphc2hsc2kzXzFfemV4dCIKLSAJICAgICAgKGNvbnN0 X3N0cmluZyAiYWx1IikKLSAJICAgXQotIAkgICAoY29uc3Rfc3RyaW5nICJpc2hpZnQiKSkpCi0r ICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIpCi0rICAgICAoaWZfdGhlbl9lbHNlCi0r ICAgICAgIChpb3IgKGVxX2F0dHIgInR5cGUiICJhbHUiKQotKwkgICAgKGFuZCAoZXFfYXR0ciAi dHlwZSIgImlzaGlmdCIpCi0rCQkgKGFuZCAobWF0Y2hfb3BlcmFuZCAyICJjb25zdDFfb3BlcmFu ZCIgIiIpCi0rCQkgICAgICAobmUgKHN5bWJvbF9yZWYgIlRBUkdFVF9TSElGVDEgfHwgb3B0aW1p emVfZnVuY3Rpb25fZm9yX3NpemVfcCAoY2Z1bikiKQotKwkJCSAgKGNvbnN0X2ludCAwKSkpKSkK LSsgICAgICAgKGNvbnN0X3N0cmluZyAiMCIpCi0rICAgICAgIChjb25zdF9zdHJpbmcgIioiKSkp Ci0gICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCi0gCi0gOzsgQ29udmVydCBsZWEgdG8gdGhl IGxlYSBwYXR0ZXJuIHRvIGF2b2lkIGZsYWdzIGRlcGVuZGVuY3kuCi1AQCAtMTE2NjMsNiArMTE5 NTksMTUgQEAgKGRlZmluZV9pbnNuICIqYXNobHNpM19jbXAiCi0gCSAgICAgIChjb25zdF9zdHJp bmcgImFsdSIpCi0gCSAgIF0KLSAJICAgKGNvbnN0X3N0cmluZyAiaXNoaWZ0IikpKQotKyAgIChz ZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQotKyAgICAgKGlmX3RoZW5fZWxzZQotKyAgICAg ICAoaW9yIChlcV9hdHRyICJ0eXBlIiAiYWx1IikKLSsJICAgIChhbmQgKGVxX2F0dHIgInR5cGUi ICJpc2hpZnQiKQotKwkJIChhbmQgKG1hdGNoX29wZXJhbmQgMiAiY29uc3QxX29wZXJhbmQiICIi KQotKwkJICAgICAgKG5lIChzeW1ib2xfcmVmICJUQVJHRVRfU0hJRlQxIHx8IG9wdGltaXplX2Z1 bmN0aW9uX2Zvcl9zaXplX3AgKGNmdW4pIikKLSsJCQkgIChjb25zdF9pbnQgMCkpKSkpCi0rICAg ICAgIChjb25zdF9zdHJpbmcgIjAiKQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIqIikpKQotICAg IChzZXRfYXR0ciAibW9kZSIgIlNJIildKQotIAotIChkZWZpbmVfaW5zbiAiKmFzaGxzaTNfY2Nv bmx5IgotQEAgLTExNzA0LDYgKzEyMDA5LDE1IEBAIChkZWZpbmVfaW5zbiAiKmFzaGxzaTNfY2Nv bmx5IgotIAkgICAgICAoY29uc3Rfc3RyaW5nICJhbHUiKQotIAkgICBdCi0gCSAgIChjb25zdF9z dHJpbmcgImlzaGlmdCIpKSkKLSsgICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKLSsg ICAgIChpZl90aGVuX2Vsc2UKLSsgICAgICAgKGlvciAoZXFfYXR0ciAidHlwZSIgImFsdSIpCi0r CSAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaXNoaWZ0IikKLSsJCSAoYW5kIChtYXRjaF9vcGVy YW5kIDIgImNvbnN0MV9vcGVyYW5kIiAiIikKLSsJCSAgICAgIChuZSAoc3ltYm9sX3JlZiAiVEFS R0VUX1NISUZUMSB8fCBvcHRpbWl6ZV9mdW5jdGlvbl9mb3Jfc2l6ZV9wIChjZnVuKSIpCi0rCQkJ ICAoY29uc3RfaW50IDApKSkpKQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIwIikKLSsgICAgICAg KGNvbnN0X3N0cmluZyAiKiIpKSkKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKLSAKLSAo ZGVmaW5lX2luc24gIiphc2hsc2kzX2NtcF96ZXh0IgotQEAgLTExNzQ2LDYgKzEyMDYwLDE1IEBA IChkZWZpbmVfaW5zbiAiKmFzaGxzaTNfY21wX3pleHQiCi0gCSAgICAgIChjb25zdF9zdHJpbmcg ImFsdSIpCi0gCSAgIF0KLSAJICAgKGNvbnN0X3N0cmluZyAiaXNoaWZ0IikpKQotKyAgIChzZXQg KGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQotKyAgICAgKGlmX3RoZW5fZWxzZQotKyAgICAgICAo aW9yIChlcV9hdHRyICJ0eXBlIiAiYWx1IikKLSsJICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJp c2hpZnQiKQotKwkJIChhbmQgKG1hdGNoX29wZXJhbmQgMiAiY29uc3QxX29wZXJhbmQiICIiKQot KwkJICAgICAgKG5lIChzeW1ib2xfcmVmICJUQVJHRVRfU0hJRlQxIHx8IG9wdGltaXplX2Z1bmN0 aW9uX2Zvcl9zaXplX3AgKGNmdW4pIikKLSsJCQkgIChjb25zdF9pbnQgMCkpKSkpCi0rICAgICAg IChjb25zdF9zdHJpbmcgIjAiKQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIqIikpKQotICAgIChz ZXRfYXR0ciAibW9kZSIgIlNJIildKQotIAotIChkZWZpbmVfZXhwYW5kICJhc2hsaGkzIgotQEAg LTExNzkxLDYgKzEyMTE0LDE1IEBAIChkZWZpbmVfaW5zbiAiKmFzaGxoaTNfMV9sZWEiCi0gCSAg ICAgIChjb25zdF9zdHJpbmcgImFsdSIpCi0gCSAgIF0KLSAJICAgKGNvbnN0X3N0cmluZyAiaXNo aWZ0IikpKQotKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlhdGUiKQotKyAgICAgKGlmX3Ro ZW5fZWxzZQotKyAgICAgICAoaW9yIChlcV9hdHRyICJ0eXBlIiAiYWx1IikKLSsJICAgIChhbmQg KGVxX2F0dHIgInR5cGUiICJpc2hpZnQiKQotKwkJIChhbmQgKG1hdGNoX29wZXJhbmQgMiAiY29u c3QxX29wZXJhbmQiICIiKQotKwkJICAgICAgKG5lIChzeW1ib2xfcmVmICJUQVJHRVRfU0hJRlQx IHx8IG9wdGltaXplX2Z1bmN0aW9uX2Zvcl9zaXplX3AgKGNmdW4pIikKLSsJCQkgIChjb25zdF9p bnQgMCkpKSkpCi0rICAgICAgIChjb25zdF9zdHJpbmcgIjAiKQotKyAgICAgICAoY29uc3Rfc3Ry aW5nICIqIikpKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkhJLFNJIildKQotIAotIChkZWZpbmVf aW5zbiAiKmFzaGxoaTNfMSIKLUBAIC0xMTgyNSw2ICsxMjE1NywxNSBAQCAoZGVmaW5lX2luc24g Iiphc2hsaGkzXzEiCi0gCSAgICAgIChjb25zdF9zdHJpbmcgImFsdSIpCi0gCSAgIF0KLSAJICAg KGNvbnN0X3N0cmluZyAiaXNoaWZ0IikpKQotKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1lZGlh dGUiKQotKyAgICAgKGlmX3RoZW5fZWxzZQotKyAgICAgICAoaW9yIChlcV9hdHRyICJ0eXBlIiAi YWx1IikKLSsJICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJpc2hpZnQiKQotKwkJIChhbmQgKG1h dGNoX29wZXJhbmQgMiAiY29uc3QxX29wZXJhbmQiICIiKQotKwkJICAgICAgKG5lIChzeW1ib2xf cmVmICJUQVJHRVRfU0hJRlQxIHx8IG9wdGltaXplX2Z1bmN0aW9uX2Zvcl9zaXplX3AgKGNmdW4p IikKLSsJCQkgIChjb25zdF9pbnQgMCkpKSkpCi0rICAgICAgIChjb25zdF9zdHJpbmcgIjAiKQot KyAgICAgICAoY29uc3Rfc3RyaW5nICIqIikpKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkhJIild KQotIAotIDs7IFRoaXMgcGF0dGVybiBjYW4ndCBhY2NlcHQgYSB2YXJpYWJsZSBzaGlmdCBjb3Vu dCwgc2luY2Ugc2hpZnRzIGJ5Ci1AQCAtMTE4NzAsNiArMTIyMTEsMTUgQEAgKGRlZmluZV9pbnNu ICIqYXNobGhpM19jbXAiCi0gCSAgICAgIChjb25zdF9zdHJpbmcgImFsdSIpCi0gCSAgIF0KLSAJ ICAgKGNvbnN0X3N0cmluZyAiaXNoaWZ0IikpKQotKyAgIChzZXQgKGF0dHIgImxlbmd0aF9pbW1l ZGlhdGUiKQotKyAgICAgKGlmX3RoZW5fZWxzZQotKyAgICAgICAoaW9yIChlcV9hdHRyICJ0eXBl IiAiYWx1IikKLSsJICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJpc2hpZnQiKQotKwkJIChhbmQg KG1hdGNoX29wZXJhbmQgMiAiY29uc3QxX29wZXJhbmQiICIiKQotKwkJICAgICAgKG5lIChzeW1i b2xfcmVmICJUQVJHRVRfU0hJRlQxIHx8IG9wdGltaXplX2Z1bmN0aW9uX2Zvcl9zaXplX3AgKGNm dW4pIikKLSsJCQkgIChjb25zdF9pbnQgMCkpKSkpCi0rICAgICAgIChjb25zdF9zdHJpbmcgIjAi KQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIqIikpKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkhJ IildKQotIAotIChkZWZpbmVfaW5zbiAiKmFzaGxoaTNfY2Nvbmx5IgotQEAgLTExOTExLDYgKzEy MjYxLDE1IEBAIChkZWZpbmVfaW5zbiAiKmFzaGxoaTNfY2Nvbmx5IgotIAkgICAgICAoY29uc3Rf c3RyaW5nICJhbHUiKQotIAkgICBdCi0gCSAgIChjb25zdF9zdHJpbmcgImlzaGlmdCIpKSkKLSsg ICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKLSsgICAgIChpZl90aGVuX2Vsc2UKLSsg ICAgICAgKGlvciAoZXFfYXR0ciAidHlwZSIgImFsdSIpCi0rCSAgICAoYW5kIChlcV9hdHRyICJ0 eXBlIiAiaXNoaWZ0IikKLSsJCSAoYW5kIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0MV9vcGVyYW5k IiAiIikKLSsJCSAgICAgIChuZSAoc3ltYm9sX3JlZiAiVEFSR0VUX1NISUZUMSB8fCBvcHRpbWl6 ZV9mdW5jdGlvbl9mb3Jfc2l6ZV9wIChjZnVuKSIpCi0rCQkJICAoY29uc3RfaW50IDApKSkpKQot KyAgICAgICAoY29uc3Rfc3RyaW5nICIwIikKLSsgICAgICAgKGNvbnN0X3N0cmluZyAiKiIpKSkK LSAgICAoc2V0X2F0dHIgIm1vZGUiICJISSIpXSkKLSAKLSAoZGVmaW5lX2V4cGFuZCAiYXNobHFp MyIKLUBAIC0xMTk3Niw2ICsxMjMzNSwxNSBAQCAoZGVmaW5lX2luc24gIiphc2hscWkzXzFfbGVh IgotIAkgICAgICAoY29uc3Rfc3RyaW5nICJhbHUiKQotIAkgICBdCi0gCSAgIChjb25zdF9zdHJp bmcgImlzaGlmdCIpKSkKLSsgICAoc2V0IChhdHRyICJsZW5ndGhfaW1tZWRpYXRlIikKLSsgICAg IChpZl90aGVuX2Vsc2UKLSsgICAgICAgKGlvciAoZXFfYXR0ciAidHlwZSIgImFsdSIpCi0rCSAg ICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaXNoaWZ0IikKLSsJCSAoYW5kIChtYXRjaF9vcGVyYW5k IDIgImNvbnN0MV9vcGVyYW5kIiAiIikKLSsJCSAgICAgIChuZSAoc3ltYm9sX3JlZiAiVEFSR0VU X1NISUZUMSB8fCBvcHRpbWl6ZV9mdW5jdGlvbl9mb3Jfc2l6ZV9wIChjZnVuKSIpCi0rCQkJICAo Y29uc3RfaW50IDApKSkpKQotKyAgICAgICAoY29uc3Rfc3RyaW5nICIwIikKLSsgICAgICAgKGNv bnN0X3N0cmluZyAiKiIpKSkKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJRSSxTSSxTSSIpXSkKLSAK LSAoZGVmaW5lX2luc24gIiphc2hscWkzXzEiCi1AQCAtMTIwMjgsNiArMTIzOTYsMTUgQEAgKGRl ZmluZV9pbnNuICIqYXNobHFpM18xIgotIAkgICAgICAoY29uc3Rfc3RyaW5nICJhbHUiKQotIAkg ICBdCi0gCSAgIChjb25zdF9zdHJpbmcgImlzaGlmdCIpKSkKLSsgICAoc2V0IChhdHRyICJsZW5n dGhfaW1tZWRpYXRlIikKLSsgICAgIChpZl90aGVuX2Vsc2UKLSsgICAgICAgKGlvciAoZXFfYXR0 ciAidHlwZSIgImFsdSIpCi0rCSAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaXNoaWZ0IikKLSsJ CSAoYW5kIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0MV9vcGVyYW5kIiAiIikKLSsJCSAgICAgIChu ZSAoc3ltYm9sX3JlZiAiVEFSR0VUX1NISUZUMSB8fCBvcHRpbWl6ZV9mdW5jdGlvbl9mb3Jfc2l6 ZV9wIChjZnVuKSIpCi0rCQkJICAoY29uc3RfaW50IDApKSkpKQotKyAgICAgICAoY29uc3Rfc3Ry aW5nICIwIikKLSsgICAgICAgKGNvbnN0X3N0cmluZyAiKiIpKSkKLSAgICAoc2V0X2F0dHIgIm1v ZGUiICJRSSxTSSIpXSkKLSAKLSA7OyBUaGlzIHBhdHRlcm4gY2FuJ3QgYWNjZXB0IGEgdmFyaWFi bGUgc2hpZnQgY291bnQsIHNpbmNlIHNoaWZ0cyBieQotQEAgLTEyMDczLDYgKzEyNDUwLDE1IEBA IChkZWZpbmVfaW5zbiAiKmFzaGxxaTNfY21wIgotIAkgICAgICAoY29uc3Rfc3RyaW5nICJhbHUi KQotIAkgICBdCi0gCSAgIChjb25zdF9zdHJpbmcgImlzaGlmdCIpKSkKLSsgICAoc2V0IChhdHRy ICJsZW5ndGhfaW1tZWRpYXRlIikKLSsgICAgIChpZl90aGVuX2Vsc2UKLSsgICAgICAgKGlvciAo ZXFfYXR0ciAidHlwZSIgImFsdSIpCi0rCSAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaXNoaWZ0 IikKLSsJCSAoYW5kIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0MV9vcGVyYW5kIiAiIikKLSsJCSAg ICAgIChuZSAoc3ltYm9sX3JlZiAiVEFSR0VUX1NISUZUMSB8fCBvcHRpbWl6ZV9mdW5jdGlvbl9m b3Jfc2l6ZV9wIChjZnVuKSIpCi0rCQkJICAoY29uc3RfaW50IDApKSkpKQotKyAgICAgICAoY29u c3Rfc3RyaW5nICIwIikKLSsgICAgICAgKGNvbnN0X3N0cmluZyAiKiIpKSkKLSAgICAoc2V0X2F0 dHIgIm1vZGUiICJRSSIpXSkKLSAKLSAoZGVmaW5lX2luc24gIiphc2hscWkzX2Njb25seSIKLUBA IC0xMjExNCw2ICsxMjUwMCwxNSBAQCAoZGVmaW5lX2luc24gIiphc2hscWkzX2Njb25seSIKLSAJ ICAgICAgKGNvbnN0X3N0cmluZyAiYWx1IikKLSAJICAgXQotIAkgICAoY29uc3Rfc3RyaW5nICJp c2hpZnQiKSkpCi0rICAgKHNldCAoYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIpCi0rICAgICAoaWZf dGhlbl9lbHNlCi0rICAgICAgIChpb3IgKGVxX2F0dHIgInR5cGUiICJhbHUiKQotKwkgICAgKGFu ZCAoZXFfYXR0ciAidHlwZSIgImlzaGlmdCIpCi0rCQkgKGFuZCAobWF0Y2hfb3BlcmFuZCAyICJj b25zdDFfb3BlcmFuZCIgIiIpCi0rCQkgICAgICAobmUgKHN5bWJvbF9yZWYgIlRBUkdFVF9TSElG VDEgfHwgb3B0aW1pemVfZnVuY3Rpb25fZm9yX3NpemVfcCAoY2Z1bikiKQotKwkJCSAgKGNvbnN0 X2ludCAwKSkpKSkKLSsgICAgICAgKGNvbnN0X3N0cmluZyAiMCIpCi0rICAgICAgIChjb25zdF9z dHJpbmcgIioiKSkpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKV0pCi0gCi0gOzsgU2VlIGNv bW1lbnQgYWJvdmUgYGFzaGxkaTMnIGFib3V0IGhvdyB0aGlzIHdvcmtzLgotQEAgLTEyMjMyLDEw ICsxMjYyNyw4IEBAIChkZWZpbmVfaW5zbiAiKmFzaHJkaTNfMV9vbmVfYml0X3JleDY0IgotICAg ICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChBU0hJRlRSVCwgREltb2RlLCBvcGVyYW5kcyki Ci0gICAic2Fye3F9XHQlMCIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJpc2hpZnQiKQotLSAgIChz ZXQgKGF0dHIgImxlbmd0aCIpCi0tICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOkRJ IDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQotLQkoY29uc3Rfc3RyaW5nICIyIikKLS0JKGNvbnN0 X3N0cmluZyAiKiIpKSldKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQot KyAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQotIAotIChkZWZpbmVfaW5zbiAiKmFzaHJkaTNf MV9yZXg2NCIKLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgIm5vbmltbWVkaWF0ZV9vcGVy YW5kIiAiPXJtLHJtIikKLUBAIC0xMjI2NiwxMCArMTI2NTksOCBAQCAoZGVmaW5lX2luc24gIiph c2hyZGkzX29uZV9iaXRfY21wX3JleDY0Ci0gICAgJiYgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sg KEFTSElGVFJULCBESW1vZGUsIG9wZXJhbmRzKSIKLSAgICJzYXJ7cX1cdCUwIgotICAgWyhzZXRf YXR0ciAidHlwZSIgImlzaGlmdCIpCi0tICAgKHNldCAoYXR0ciAibGVuZ3RoIikKLS0gICAgIChp Zl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCi0t CShjb25zdF9zdHJpbmcgIjIiKQotLQkoY29uc3Rfc3RyaW5nICIqIikpKV0pCi0rICAgKHNldF9h dHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMCIpCi0rICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0p Ci0gCi0gKGRlZmluZV9pbnNuICIqYXNocmRpM19vbmVfYml0X2Njb25seV9yZXg2NCIKLSAgIFso c2V0IChyZWcgRkxBR1NfUkVHKQotQEAgLTEyMjg0LDcgKzEyNjc1LDggQEAgKGRlZmluZV9pbnNu ICIqYXNocmRpM19vbmVfYml0X2Njb25seV9yZQotICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9y X29rIChBU0hJRlRSVCwgREltb2RlLCBvcGVyYW5kcykiCi0gICAic2Fye3F9XHQlMCIKLSAgIFso c2V0X2F0dHIgInR5cGUiICJpc2hpZnQiKQotLSAgIChzZXRfYXR0ciAibGVuZ3RoIiAiMiIpXSkK LSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikKLSsgICAoc2V0X2F0dHIgIm1v ZGUiICJESSIpXSkKLSAKLSA7OyBUaGlzIHBhdHRlcm4gY2FuJ3QgYWNjZXB0IGEgdmFyaWFibGUg c2hpZnQgY291bnQsIHNpbmNlIHNoaWZ0cyBieQotIDs7IHplcm8gZG9uJ3QgYWZmZWN0IHRoZSBm bGFncy4gIFdlIGFzc3VtZSB0aGF0IHNoaWZ0cyBieSBjb25zdGFudAotQEAgLTEyNDUyLDEwICsx Mjg0NCw4IEBAIChkZWZpbmVfaW5zbiAiKmFzaHJzaTNfMV9vbmVfYml0IgotICAgICYmIGl4ODZf YmluYXJ5X29wZXJhdG9yX29rIChBU0hJRlRSVCwgU0ltb2RlLCBvcGVyYW5kcykiCi0gICAic2Fy e2x9XHQlMCIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJpc2hpZnQiKQotLSAgIChzZXQgKGF0dHIg Imxlbmd0aCIpCi0tICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lz dGVyX29wZXJhbmQiICIiKQotLQkoY29uc3Rfc3RyaW5nICIyIikKLS0JKGNvbnN0X3N0cmluZyAi KiIpKSldKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQotKyAgIChzZXRf YXR0ciAibW9kZSIgIlNJIildKQotIAotIChkZWZpbmVfaW5zbiAiKmFzaHJzaTNfMV9vbmVfYml0 X3pleHQiCi0gICBbKHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PXIiKQotQEAgLTEyNDY3LDcgKzEyODU3LDggQEAgKGRlZmluZV9pbnNuICIqYXNocnNpM18xX29u ZV9iaXRfemV4dCIKLSAgICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoQVNISUZUUlQsIFNJ bW9kZSwgb3BlcmFuZHMpIgotICAgInNhcntsfVx0JWswIgotICAgWyhzZXRfYXR0ciAidHlwZSIg ImlzaGlmdCIpCi0tICAgKHNldF9hdHRyICJsZW5ndGgiICIyIildKQotKyAgIChzZXRfYXR0ciAi bGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQotIAot IChkZWZpbmVfaW5zbiAiKmFzaHJzaTNfMSIKLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAg Im5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPXJtLHJtIikKLUBAIC0xMjUwOSwxMCArMTI5MDAsOCBA QCAoZGVmaW5lX2luc24gIiphc2hyc2kzX29uZV9iaXRfY21wIgotICAgICYmIGl4ODZfYmluYXJ5 X29wZXJhdG9yX29rIChBU0hJRlRSVCwgU0ltb2RlLCBvcGVyYW5kcykiCi0gICAic2Fye2x9XHQl MCIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJpc2hpZnQiKQotLSAgIChzZXQgKGF0dHIgImxlbmd0 aCIpCi0tICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICIiKQotLQkoY29uc3Rfc3RyaW5nICIyIikKLS0JKGNvbnN0X3N0cmluZyAiKiIpKSld KQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQotKyAgIChzZXRfYXR0ciAi bW9kZSIgIlNJIildKQotIAotIChkZWZpbmVfaW5zbiAiKmFzaHJzaTNfb25lX2JpdF9jY29ubHki Ci0gICBbKHNldCAocmVnIEZMQUdTX1JFRykKLUBAIC0xMjUyNiw3ICsxMjkxNSw4IEBAIChkZWZp bmVfaW5zbiAiKmFzaHJzaTNfb25lX2JpdF9jY29ubHkiCi0gICAgJiYgaXg4Nl9iaW5hcnlfb3Bl cmF0b3Jfb2sgKEFTSElGVFJULCBTSW1vZGUsIG9wZXJhbmRzKSIKLSAgICJzYXJ7bH1cdCUwIgot ICAgWyhzZXRfYXR0ciAidHlwZSIgImlzaGlmdCIpCi0tICAgKHNldF9hdHRyICJsZW5ndGgiICIy IildKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQotKyAgIChzZXRfYXR0 ciAibW9kZSIgIlNJIildKQotIAotIChkZWZpbmVfaW5zbiAiKmFzaHJzaTNfb25lX2JpdF9jbXBf emV4dCIKLSAgIFsoc2V0IChyZWcgRkxBR1NfUkVHKQotQEAgLTEyNTQyLDcgKzEyOTMyLDggQEAg KGRlZmluZV9pbnNuICIqYXNocnNpM19vbmVfYml0X2NtcF96ZXh0IgotICAgICYmIGl4ODZfYmlu YXJ5X29wZXJhdG9yX29rIChBU0hJRlRSVCwgU0ltb2RlLCBvcGVyYW5kcykiCi0gICAic2Fye2x9 XHQlazAiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAiaXNoaWZ0IikKLS0gICAoc2V0X2F0dHIgImxl bmd0aCIgIjIiKV0pCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMCIpCi0rICAg KHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCi0gCi0gOzsgVGhpcyBwYXR0ZXJuIGNhbid0IGFjY2Vw dCBhIHZhcmlhYmxlIHNoaWZ0IGNvdW50LCBzaW5jZSBzaGlmdHMgYnkKLSA7OyB6ZXJvIGRvbid0 IGFmZmVjdCB0aGUgZmxhZ3MuICBXZSBhc3N1bWUgdGhhdCBzaGlmdHMgYnkgY29uc3RhbnQKLUBA IC0xMjYwOCwxMCArMTI5OTksOCBAQCAoZGVmaW5lX2luc24gIiphc2hyaGkzXzFfb25lX2JpdCIK LSAgICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoQVNISUZUUlQsIEhJbW9kZSwgb3BlcmFu ZHMpIgotICAgInNhcnt3fVx0JTAiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAiaXNoaWZ0IikKLS0g ICAoc2V0IChhdHRyICJsZW5ndGgiKQotLSAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFu ZCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKLS0JKGNvbnN0X3N0cmluZyAiMiIpCi0tCShjb25z dF9zdHJpbmcgIioiKSkpXSkKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikK LSsgICAoc2V0X2F0dHIgIm1vZGUiICJISSIpXSkKLSAKLSAoZGVmaW5lX2luc24gIiphc2hyaGkz XzEiCi0gICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIg Ij1ybSxybSIpCi1AQCAtMTI2NDEsMTAgKzEzMDMwLDggQEAgKGRlZmluZV9pbnNuICIqYXNocmhp M19vbmVfYml0X2NtcCIKLSAgICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoQVNISUZUUlQs IEhJbW9kZSwgb3BlcmFuZHMpIgotICAgInNhcnt3fVx0JTAiCi0gICBbKHNldF9hdHRyICJ0eXBl IiAiaXNoaWZ0IikKLS0gICAoc2V0IChhdHRyICJsZW5ndGgiKQotLSAgICAgKGlmX3RoZW5fZWxz ZSAobWF0Y2hfb3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKLS0JKGNvbnN0X3N0cmlu ZyAiMiIpCi0tCShjb25zdF9zdHJpbmcgIioiKSkpXSkKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9p bW1lZGlhdGUiICIwIikKLSsgICAoc2V0X2F0dHIgIm1vZGUiICJISSIpXSkKLSAKLSAoZGVmaW5l X2luc24gIiphc2hyaGkzX29uZV9iaXRfY2Nvbmx5IgotICAgWyhzZXQgKHJlZyBGTEFHU19SRUcp Ci1AQCAtMTI2NTgsNyArMTMwNDUsOCBAQCAoZGVmaW5lX2luc24gIiphc2hyaGkzX29uZV9iaXRf Y2Nvbmx5IgotICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChBU0hJRlRSVCwgSEltb2Rl LCBvcGVyYW5kcykiCi0gICAic2Fye3d9XHQlMCIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJpc2hp ZnQiKQotLSAgIChzZXRfYXR0ciAibGVuZ3RoIiAiMiIpXSkKLSsgICAoc2V0X2F0dHIgImxlbmd0 aF9pbW1lZGlhdGUiICIwIikKLSsgICAoc2V0X2F0dHIgIm1vZGUiICJISSIpXSkKLSAKLSA7OyBU aGlzIHBhdHRlcm4gY2FuJ3QgYWNjZXB0IGEgdmFyaWFibGUgc2hpZnQgY291bnQsIHNpbmNlIHNo aWZ0cyBieQotIDs7IHplcm8gZG9uJ3QgYWZmZWN0IHRoZSBmbGFncy4gIFdlIGFzc3VtZSB0aGF0 IHNoaWZ0cyBieSBjb25zdGFudAotQEAgLTEyNzA4LDEwICsxMzA5Niw4IEBAIChkZWZpbmVfaW5z biAiKmFzaHJxaTNfMV9vbmVfYml0IgotICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChB U0hJRlRSVCwgUUltb2RlLCBvcGVyYW5kcykiCi0gICAic2Fye2J9XHQlMCIKLSAgIFsoc2V0X2F0 dHIgInR5cGUiICJpc2hpZnQiKQotLSAgIChzZXQgKGF0dHIgImxlbmd0aCIpCi0tICAgICAoaWZf dGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQotLQkoY29u c3Rfc3RyaW5nICIyIikKLS0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQotKyAgIChzZXRfYXR0ciAi bGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIlFJIildKQotIAot IChkZWZpbmVfaW5zbiAiKmFzaHJxaTNfMV9vbmVfYml0X3NscCIKLSAgIFsoc2V0IChzdHJpY3Rf bG93X3BhcnQgKG1hdGNoX29wZXJhbmQ6UUkgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICIrcW0i KSkKLUBAIC0xMjcyMywxMCArMTMxMDksOCBAQCAoZGVmaW5lX2luc24gIiphc2hycWkzXzFfb25l X2JpdF9zbHAiCi0gICAgJiYgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKEFTSElGVFJULCBRSW1v ZGUsIG9wZXJhbmRzKSIKLSAgICJzYXJ7Yn1cdCUwIgotICAgWyhzZXRfYXR0ciAidHlwZSIgImlz aGlmdDEiKQotLSAgIChzZXQgKGF0dHIgImxlbmd0aCIpCi0tICAgICAoaWZfdGhlbl9lbHNlICht YXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQotLQkoY29uc3Rfc3RyaW5nICIy IikKLS0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVk aWF0ZSIgIjAiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIlFJIildKQotIAotIChkZWZpbmVfaW5z biAiKmFzaHJxaTNfMSIKLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgIm5vbmltbWVkaWF0 ZV9vcGVyYW5kIiAiPXFtLHFtIikKLUBAIC0xMjc2OSwxMCArMTMxNTMsOCBAQCAoZGVmaW5lX2lu c24gIiphc2hycWkzX29uZV9iaXRfY21wIgotICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29r IChBU0hJRlRSVCwgUUltb2RlLCBvcGVyYW5kcykiCi0gICAic2Fye2J9XHQlMCIKLSAgIFsoc2V0 X2F0dHIgInR5cGUiICJpc2hpZnQiKQotLSAgIChzZXQgKGF0dHIgImxlbmd0aCIpCi0tICAgICAo aWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQotLQko Y29uc3Rfc3RyaW5nICIyIikKLS0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQotKyAgIChzZXRfYXR0 ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIlFJIildKQot IAotIChkZWZpbmVfaW5zbiAiKmFzaHJxaTNfb25lX2JpdF9jY29ubHkiCi0gICBbKHNldCAocmVn IEZMQUdTX1JFRykKLUBAIC0xMjc4Niw3ICsxMzE2OCw4IEBAIChkZWZpbmVfaW5zbiAiKmFzaHJx aTNfb25lX2JpdF9jY29ubHkiCi0gICAgJiYgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKEFTSElG VFJULCBRSW1vZGUsIG9wZXJhbmRzKSIKLSAgICJzYXJ7Yn1cdCUwIgotICAgWyhzZXRfYXR0ciAi dHlwZSIgImlzaGlmdCIpCi0tICAgKHNldF9hdHRyICJsZW5ndGgiICIyIildKQotKyAgIChzZXRf YXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIlFJIild KQotIAotIDs7IFRoaXMgcGF0dGVybiBjYW4ndCBhY2NlcHQgYSB2YXJpYWJsZSBzaGlmdCBjb3Vu dCwgc2luY2Ugc2hpZnRzIGJ5Ci0gOzsgemVybyBkb24ndCBhZmZlY3QgdGhlIGZsYWdzLiAgV2Ug YXNzdW1lIHRoYXQgc2hpZnRzIGJ5IGNvbnN0YW50Ci1AQCAtMTI4NDYsNiArMTMyMjksNyBAQCAo ZGVmaW5lX2luc24gIiphdnhfbHNocnRpMyIKLSB9Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl aXNoZnQiKQotICAgIChzZXRfYXR0ciAicHJlZml4IiAidmV4IikKLSsgICAoc2V0X2F0dHIgImxl bmd0aF9pbW1lZGlhdGUiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkKLSAKLSAo ZGVmaW5lX2luc24gInNzZTJfbHNocnRpMyIKLUBAIC0xMjg1OSw2ICsxMzI0Myw3IEBAIChkZWZp bmVfaW5zbiAic3NlMl9sc2hydGkzIgotIH0KLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2Vpc2hm dCIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfZGF0YTE2IiAiMSIpCi0rICAgKHNldF9hdHRyICJs ZW5ndGhfaW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0gCi0g KGRlZmluZV9pbnNuICIqbHNocnRpM18xIgotQEAgLTEyOTA4LDEwICsxMzI5Myw4IEBAIChkZWZp bmVfaW5zbiAiKmxzaHJkaTNfMV9vbmVfYml0X3JleDY0IgotICAgICYmIGl4ODZfYmluYXJ5X29w ZXJhdG9yX29rIChMU0hJRlRSVCwgSEltb2RlLCBvcGVyYW5kcykiCi0gICAic2hye3F9XHQlMCIK LSAgIFsoc2V0X2F0dHIgInR5cGUiICJpc2hpZnQiKQotLSAgIChzZXQgKGF0dHIgImxlbmd0aCIp Ci0tICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOkRJIDAgInJlZ2lzdGVyX29wZXJh bmQiICIiKQotLQkoY29uc3Rfc3RyaW5nICIyIikKLS0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQot KyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQotKyAgIChzZXRfYXR0ciAibW9k ZSIgIkRJIildKQotIAotIChkZWZpbmVfaW5zbiAiKmxzaHJkaTNfMV9yZXg2NCIKLSAgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOkRJIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPXJtLHJtIikKLUBA IC0xMjk0MiwxMCArMTMzMjUsOCBAQCAoZGVmaW5lX2luc24gIipsc2hyZGkzX2NtcF9vbmVfYml0 X3JleDY0Ci0gICAgJiYgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKExTSElGVFJULCBISW1vZGUs IG9wZXJhbmRzKSIKLSAgICJzaHJ7cX1cdCUwIgotICAgWyhzZXRfYXR0ciAidHlwZSIgImlzaGlm dCIpCi0tICAgKHNldCAoYXR0ciAibGVuZ3RoIikKLS0gICAgIChpZl90aGVuX2Vsc2UgKG1hdGNo X29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCi0tCShjb25zdF9zdHJpbmcgIjIi KQotLQkoY29uc3Rfc3RyaW5nICIqIikpKV0pCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRp YXRlIiAiMCIpCi0rICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0gCi0gKGRlZmluZV9pbnNu ICIqbHNocmRpM19jY29ubHlfb25lX2JpdF9yZXg2NCIKLSAgIFsoc2V0IChyZWcgRkxBR1NfUkVH KQotQEAgLTEyOTYwLDcgKzEzMzQxLDggQEAgKGRlZmluZV9pbnNuICIqbHNocmRpM19jY29ubHlf b25lX2JpdF9yZQotICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChMU0hJRlRSVCwgSElt b2RlLCBvcGVyYW5kcykiCi0gICAic2hye3F9XHQlMCIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJp c2hpZnQiKQotLSAgIChzZXRfYXR0ciAibGVuZ3RoIiAiMiIpXSkKLSsgICAoc2V0X2F0dHIgImxl bmd0aF9pbW1lZGlhdGUiICIwIikKLSsgICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkKLSAKLSA7 OyBUaGlzIHBhdHRlcm4gY2FuJ3QgYWNjZXB0IGEgdmFyaWFibGUgc2hpZnQgY291bnQsIHNpbmNl IHNoaWZ0cyBieQotIDs7IHplcm8gZG9uJ3QgYWZmZWN0IHRoZSBmbGFncy4gIFdlIGFzc3VtZSB0 aGF0IHNoaWZ0cyBieSBjb25zdGFudAotQEAgLTEzMDQ1LDEwICsxMzQyNyw4IEBAIChkZWZpbmVf aW5zbiAiKmxzaHJzaTNfMV9vbmVfYml0IgotICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29r IChMU0hJRlRSVCwgSEltb2RlLCBvcGVyYW5kcykiCi0gICAic2hye2x9XHQlMCIKLSAgIFsoc2V0 X2F0dHIgInR5cGUiICJpc2hpZnQiKQotLSAgIChzZXQgKGF0dHIgImxlbmd0aCIpCi0tICAgICAo aWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQot LQkoY29uc3Rfc3RyaW5nICIyIikKLS0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQotKyAgIChzZXRf YXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIlNJIild KQotIAotIChkZWZpbmVfaW5zbiAiKmxzaHJzaTNfMV9vbmVfYml0X3pleHQiCi0gICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQotQEAgLTEzMDYwLDcg KzEzNDQwLDggQEAgKGRlZmluZV9pbnNuICIqbHNocnNpM18xX29uZV9iaXRfemV4dCIKLSAgICAm JiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoTFNISUZUUlQsIEhJbW9kZSwgb3BlcmFuZHMpIgot ICAgInNocntsfVx0JWswIgotICAgWyhzZXRfYXR0ciAidHlwZSIgImlzaGlmdCIpCi0tICAgKHNl dF9hdHRyICJsZW5ndGgiICIyIildKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIg IjAiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQotIAotIChkZWZpbmVfaW5zbiAiKmxz aHJzaTNfMSIKLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgIm5vbmltbWVkaWF0ZV9vcGVy YW5kIiAiPXJtLHJtIikKLUBAIC0xMzEwMywxMCArMTM0ODQsOCBAQCAoZGVmaW5lX2luc24gIips c2hyc2kzX29uZV9iaXRfY21wIgotICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChMU0hJ RlRSVCwgSEltb2RlLCBvcGVyYW5kcykiCi0gICAic2hye2x9XHQlMCIKLSAgIFsoc2V0X2F0dHIg InR5cGUiICJpc2hpZnQiKQotLSAgIChzZXQgKGF0dHIgImxlbmd0aCIpCi0tICAgICAoaWZfdGhl bl9lbHNlIChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQotLQkoY29u c3Rfc3RyaW5nICIyIikKLS0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQotKyAgIChzZXRfYXR0ciAi bGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQotIAot IChkZWZpbmVfaW5zbiAiKmxzaHJzaTNfb25lX2JpdF9jY29ubHkiCi0gICBbKHNldCAocmVnIEZM QUdTX1JFRykKLUBAIC0xMzEyMCw3ICsxMzQ5OSw4IEBAIChkZWZpbmVfaW5zbiAiKmxzaHJzaTNf b25lX2JpdF9jY29ubHkiCi0gICAgJiYgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKExTSElGVFJU LCBISW1vZGUsIG9wZXJhbmRzKSIKLSAgICJzaHJ7bH1cdCUwIgotICAgWyhzZXRfYXR0ciAidHlw ZSIgImlzaGlmdCIpCi0tICAgKHNldF9hdHRyICJsZW5ndGgiICIyIildKQotKyAgIChzZXRfYXR0 ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQot IAotIChkZWZpbmVfaW5zbiAiKmxzaHJzaTNfY21wX29uZV9iaXRfemV4dCIKLSAgIFsoc2V0IChy ZWcgRkxBR1NfUkVHKQotQEAgLTEzMTM2LDcgKzEzNTE2LDggQEAgKGRlZmluZV9pbnNuICIqbHNo cnNpM19jbXBfb25lX2JpdF96ZXh0IgotICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChM U0hJRlRSVCwgSEltb2RlLCBvcGVyYW5kcykiCi0gICAic2hye2x9XHQlazAiCi0gICBbKHNldF9h dHRyICJ0eXBlIiAiaXNoaWZ0IikKLS0gICAoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCi0rICAg KHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMCIpCi0rICAgKHNldF9hdHRyICJtb2RlIiAi U0kiKV0pCi0gCi0gOzsgVGhpcyBwYXR0ZXJuIGNhbid0IGFjY2VwdCBhIHZhcmlhYmxlIHNoaWZ0 IGNvdW50LCBzaW5jZSBzaGlmdHMgYnkKLSA7OyB6ZXJvIGRvbid0IGFmZmVjdCB0aGUgZmxhZ3Mu ICBXZSBhc3N1bWUgdGhhdCBzaGlmdHMgYnkgY29uc3RhbnQKLUBAIC0xMzIwMiwxMCArMTM1ODMs OCBAQCAoZGVmaW5lX2luc24gIipsc2hyaGkzXzFfb25lX2JpdCIKLSAgICAmJiBpeDg2X2JpbmFy eV9vcGVyYXRvcl9vayAoTFNISUZUUlQsIEhJbW9kZSwgb3BlcmFuZHMpIgotICAgInNocnt3fVx0 JTAiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAiaXNoaWZ0IikKLS0gICAoc2V0IChhdHRyICJsZW5n dGgiKQotLSAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiIikKLS0JKGNvbnN0X3N0cmluZyAiMiIpCi0tCShjb25zdF9zdHJpbmcgIioiKSkpXSkK LSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikKLSsgICAoc2V0X2F0dHIgIm1v ZGUiICJISSIpXSkKLSAKLSAoZGVmaW5lX2luc24gIipsc2hyaGkzXzEiCi0gICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpISSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1ybSxybSIpCi1AQCAtMTMy MzUsMTAgKzEzNjE0LDggQEAgKGRlZmluZV9pbnNuICIqbHNocmhpM19vbmVfYml0X2NtcCIKLSAg ICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoTFNISUZUUlQsIEhJbW9kZSwgb3BlcmFuZHMp IgotICAgInNocnt3fVx0JTAiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAiaXNoaWZ0IikKLS0gICAo c2V0IChhdHRyICJsZW5ndGgiKQotLSAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZDpT SSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKLS0JKGNvbnN0X3N0cmluZyAiMiIpCi0tCShjb25z dF9zdHJpbmcgIioiKSkpXSkKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikK LSsgICAoc2V0X2F0dHIgIm1vZGUiICJISSIpXSkKLSAKLSAoZGVmaW5lX2luc24gIipsc2hyaGkz X29uZV9iaXRfY2Nvbmx5IgotICAgWyhzZXQgKHJlZyBGTEFHU19SRUcpCi1AQCAtMTMyNTIsNyAr MTM2MjksOCBAQCAoZGVmaW5lX2luc24gIipsc2hyaGkzX29uZV9iaXRfY2Nvbmx5IgotICAgICYm IGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChMU0hJRlRSVCwgSEltb2RlLCBvcGVyYW5kcykiCi0g ICAic2hye3d9XHQlMCIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJpc2hpZnQiKQotLSAgIChzZXRf YXR0ciAibGVuZ3RoIiAiMiIpXSkKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIw IikKLSsgICAoc2V0X2F0dHIgIm1vZGUiICJISSIpXSkKLSAKLSA7OyBUaGlzIHBhdHRlcm4gY2Fu J3QgYWNjZXB0IGEgdmFyaWFibGUgc2hpZnQgY291bnQsIHNpbmNlIHNoaWZ0cyBieQotIDs7IHpl cm8gZG9uJ3QgYWZmZWN0IHRoZSBmbGFncy4gIFdlIGFzc3VtZSB0aGF0IHNoaWZ0cyBieSBjb25z dGFudAotQEAgLTEzMzAyLDEwICsxMzY4MCw4IEBAIChkZWZpbmVfaW5zbiAiKmxzaHJxaTNfMV9v bmVfYml0IgotICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChMU0hJRlRSVCwgUUltb2Rl LCBvcGVyYW5kcykiCi0gICAic2hye2J9XHQlMCIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJpc2hp ZnQiKQotLSAgIChzZXQgKGF0dHIgImxlbmd0aCIpCi0tICAgICAoaWZfdGhlbl9lbHNlIChtYXRj aF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQotLQkoY29uc3Rfc3RyaW5nICIyIikK LS0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0 ZSIgIjAiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIlFJIildKQotIAotIChkZWZpbmVfaW5zbiAi KmxzaHJxaTNfMV9vbmVfYml0X3NscCIKLSAgIFsoc2V0IChzdHJpY3RfbG93X3BhcnQgKG1hdGNo X29wZXJhbmQ6UUkgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICIrcW0iKSkKLUBAIC0xMzMxNiwx MCArMTM2OTIsOCBAQCAoZGVmaW5lX2luc24gIipsc2hycWkzXzFfb25lX2JpdF9zbHAiCi0gICAg JiYgKFRBUkdFVF9TSElGVDEgfHwgb3B0aW1pemVfZnVuY3Rpb25fZm9yX3NpemVfcCAoY2Z1bikp IgotICAgInNocntifVx0JTAiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAiaXNoaWZ0MSIpCi0tICAg KHNldCAoYXR0ciAibGVuZ3RoIikKLS0gICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQg MCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCi0tCShjb25zdF9zdHJpbmcgIjIiKQotLQkoY29uc3Rf c3RyaW5nICIqIikpKV0pCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMCIpCi0r ICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqbHNocnFpM18x IgotICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9 cW0scW0iKQotQEAgLTEzMzYyLDEwICsxMzczNiw4IEBAIChkZWZpbmVfaW5zbiAiKmxzaHJxaTJf b25lX2JpdF9jbXAiCi0gICAgJiYgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKExTSElGVFJULCBR SW1vZGUsIG9wZXJhbmRzKSIKLSAgICJzaHJ7Yn1cdCUwIgotICAgWyhzZXRfYXR0ciAidHlwZSIg ImlzaGlmdCIpCi0tICAgKHNldCAoYXR0ciAibGVuZ3RoIikKLS0gICAgIChpZl90aGVuX2Vsc2Ug KG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCi0tCShjb25zdF9zdHJp bmcgIjIiKQotLQkoY29uc3Rfc3RyaW5nICIqIikpKV0pCi0rICAgKHNldF9hdHRyICJsZW5ndGhf aW1tZWRpYXRlIiAiMCIpCi0rICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKV0pCi0gCi0gKGRlZmlu ZV9pbnNuICIqbHNocnFpMl9vbmVfYml0X2Njb25seSIKLSAgIFsoc2V0IChyZWcgRkxBR1NfUkVH KQotQEAgLTEzMzc5LDcgKzEzNzUxLDggQEAgKGRlZmluZV9pbnNuICIqbHNocnFpMl9vbmVfYml0 X2Njb25seSIKLSAgICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoTFNISUZUUlQsIFFJbW9k ZSwgb3BlcmFuZHMpIgotICAgInNocntifVx0JTAiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAiaXNo aWZ0IikKLS0gICAoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCi0rICAgKHNldF9hdHRyICJsZW5n dGhfaW1tZWRpYXRlIiAiMCIpCi0rICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKV0pCi0gCi0gOzsg VGhpcyBwYXR0ZXJuIGNhbid0IGFjY2VwdCBhIHZhcmlhYmxlIHNoaWZ0IGNvdW50LCBzaW5jZSBz aGlmdHMgYnkKLSA7OyB6ZXJvIGRvbid0IGFmZmVjdCB0aGUgZmxhZ3MuICBXZSBhc3N1bWUgdGhh dCBzaGlmdHMgYnkgY29uc3RhbnQKLUBAIC0xMzQ2OCwxMCArMTM4NDEsOCBAQCAoZGVmaW5lX2lu c24gIipyb3Rsc2kzXzFfb25lX2JpdF9yZXg2NCIKLSAgICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRv cl9vayAoUk9UQVRFLCBESW1vZGUsIG9wZXJhbmRzKSIKLSAgICJyb2x7cX1cdCUwIgotICAgWyhz ZXRfYXR0ciAidHlwZSIgInJvdGF0ZSIpCi0tICAgKHNldCAoYXR0ciAibGVuZ3RoIikKLS0gICAg IChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIp Ci0tCShjb25zdF9zdHJpbmcgIjIiKQotLQkoY29uc3Rfc3RyaW5nICIqIikpKV0pCi0rICAgKHNl dF9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiMCIpCi0rICAgKHNldF9hdHRyICJtb2RlIiAiREki KV0pCi0gCi0gKGRlZmluZV9pbnNuICIqcm90bGRpM18xX3JleDY0IgotICAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6REkgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9cm0scm0iKQotQEAgLTEzNTAx LDEwICsxMzg3Miw4IEBAIChkZWZpbmVfaW5zbiAiKnJvdGxzaTNfMV9vbmVfYml0IgotICAgICYm IGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChST1RBVEUsIFNJbW9kZSwgb3BlcmFuZHMpIgotICAg InJvbHtsfVx0JTAiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAicm90YXRlIikKLS0gICAoc2V0IChh dHRyICJsZW5ndGgiKQotLSAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZDpTSSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiIikKLS0JKGNvbnN0X3N0cmluZyAiMiIpCi0tCShjb25zdF9zdHJp bmcgIioiKSkpXSkKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikKLSsgICAo c2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKLSAKLSAoZGVmaW5lX2luc24gIipyb3Rsc2kzXzFfb25l X2JpdF96ZXh0IgotICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj1yIikKLUBAIC0xMzUxNyw3ICsxMzg4Niw4IEBAIChkZWZpbmVfaW5zbiAiKnJvdGxzaTNf MV9vbmVfYml0X3pleHQiCi0gICAgJiYgaXg4Nl9iaW5hcnlfb3BlcmF0b3Jfb2sgKFJPVEFURSwg U0ltb2RlLCBvcGVyYW5kcykiCi0gICAicm9se2x9XHQlazAiCi0gICBbKHNldF9hdHRyICJ0eXBl IiAicm90YXRlIikKLS0gICAoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCi0rICAgKHNldF9hdHRy ICJsZW5ndGhfaW1tZWRpYXRlIiAiMCIpCi0rICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCi0g Ci0gKGRlZmluZV9pbnNuICIqcm90bHNpM18xIgotICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kg MCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9cm0scm0iKQotQEAgLTEzNTYwLDEwICsxMzkzMCw4 IEBAIChkZWZpbmVfaW5zbiAiKnJvdGxoaTNfMV9vbmVfYml0IgotICAgICYmIGl4ODZfYmluYXJ5 X29wZXJhdG9yX29rIChST1RBVEUsIEhJbW9kZSwgb3BlcmFuZHMpIgotICAgInJvbHt3fVx0JTAi Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAicm90YXRlIikKLS0gICAoc2V0IChhdHRyICJsZW5ndGgi KQotLSAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiIikKLS0JKGNvbnN0X3N0cmluZyAiMiIpCi0tCShjb25zdF9zdHJpbmcgIioiKSkpXSkKLSsg ICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikKLSsgICAoc2V0X2F0dHIgIm1vZGUi ICJISSIpXSkKLSAKLSAoZGVmaW5lX2luc24gIipyb3RsaGkzXzEiCi0gICBbKHNldCAobWF0Y2hf b3BlcmFuZDpISSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1ybSxybSIpCi1AQCAtMTM2MDMs MTAgKzEzOTcxLDggQEAgKGRlZmluZV9pbnNuICIqcm90bHFpM18xX29uZV9iaXRfc2xwIgotICAg ICYmIChUQVJHRVRfU0hJRlQxIHx8IG9wdGltaXplX2Z1bmN0aW9uX2Zvcl9zaXplX3AgKGNmdW4p KSIKLSAgICJyb2x7Yn1cdCUwIgotICAgWyhzZXRfYXR0ciAidHlwZSIgInJvdGF0ZTEiKQotLSAg IChzZXQgKGF0dHIgImxlbmd0aCIpCi0tICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5k IDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQotLQkoY29uc3Rfc3RyaW5nICIyIikKLS0JKGNvbnN0 X3N0cmluZyAiKiIpKSldKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQot KyAgIChzZXRfYXR0ciAibW9kZSIgIlFJIildKQotIAotIChkZWZpbmVfaW5zbiAiKnJvdGxxaTNf MV9vbmVfYml0IgotICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAibm9uaW1tZWRpYXRlX29w ZXJhbmQiICI9cW0iKQotQEAgLTEzNjE3LDEwICsxMzk4Myw4IEBAIChkZWZpbmVfaW5zbiAiKnJv dGxxaTNfMV9vbmVfYml0IgotICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChST1RBVEUs IFFJbW9kZSwgb3BlcmFuZHMpIgotICAgInJvbHtifVx0JTAiCi0gICBbKHNldF9hdHRyICJ0eXBl IiAicm90YXRlIikKLS0gICAoc2V0IChhdHRyICJsZW5ndGgiKQotLSAgICAgKGlmX3RoZW5fZWxz ZSAobWF0Y2hfb3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKLS0JKGNvbnN0X3N0cmlu ZyAiMiIpCi0tCShjb25zdF9zdHJpbmcgIioiKSkpXSkKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9p bW1lZGlhdGUiICIwIikKLSsgICAoc2V0X2F0dHIgIm1vZGUiICJRSSIpXSkKLSAKLSAoZGVmaW5l X2luc24gIipyb3RscWkzXzFfc2xwIgotICAgWyhzZXQgKHN0cmljdF9sb3dfcGFydCAobWF0Y2hf b3BlcmFuZDpRSSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIitxbSxxbSIpKQotQEAgLTEzNzAw LDEwICsxNDA2NCw4IEBAIChkZWZpbmVfaW5zbiAiKnJvdHJkaTNfMV9vbmVfYml0X3JleDY0Igot ICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChST1RBVEVSVCwgREltb2RlLCBvcGVyYW5k cykiCi0gICAicm9ye3F9XHQlMCIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJyb3RhdGUiKQotLSAg IChzZXQgKGF0dHIgImxlbmd0aCIpCi0tICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5k OkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQotLQkoY29uc3Rfc3RyaW5nICIyIikKLS0JKGNv bnN0X3N0cmluZyAiKiIpKSldKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAi KQotKyAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQotIAotIChkZWZpbmVfaW5zbiAiKnJvdHJk aTNfMV9yZXg2NCIKLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgIm5vbmltbWVkaWF0ZV9v cGVyYW5kIiAiPXJtLHJtIikKLUBAIC0xMzczMywxMCArMTQwOTUsOCBAQCAoZGVmaW5lX2luc24g Iipyb3Ryc2kzXzFfb25lX2JpdCIKLSAgICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoUk9U QVRFUlQsIFNJbW9kZSwgb3BlcmFuZHMpIgotICAgInJvcntsfVx0JTAiCi0gICBbKHNldF9hdHRy ICJ0eXBlIiAicm90YXRlIikKLS0gICAoc2V0IChhdHRyICJsZW5ndGgiKQotLSAgICAgKGlmX3Ro ZW5fZWxzZSAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKLS0JKGNv bnN0X3N0cmluZyAiMiIpCi0tCShjb25zdF9zdHJpbmcgIioiKSkpXSkKLSsgICAoc2V0X2F0dHIg Imxlbmd0aF9pbW1lZGlhdGUiICIwIikKLSsgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKLSAK LSAoZGVmaW5lX2luc24gIipyb3Ryc2kzXzFfb25lX2JpdF96ZXh0IgotICAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKLUBAIC0xMzc0OSwxMCArMTQx MDksOCBAQCAoZGVmaW5lX2luc24gIipyb3Ryc2kzXzFfb25lX2JpdF96ZXh0IgotICAgICYmIGl4 ODZfYmluYXJ5X29wZXJhdG9yX29rIChST1RBVEVSVCwgU0ltb2RlLCBvcGVyYW5kcykiCi0gICAi cm9ye2x9XHQlazAiCi0gICBbKHNldF9hdHRyICJ0eXBlIiAicm90YXRlIikKLS0gICAoc2V0IChh dHRyICJsZW5ndGgiKQotLSAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZDpTSSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiIikKLS0JKGNvbnN0X3N0cmluZyAiMiIpCi0tCShjb25zdF9zdHJp bmcgIioiKSkpXSkKLSsgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikKLSsgICAo c2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKLSAKLSAoZGVmaW5lX2luc24gIipyb3Ryc2kzXzEiCi0g ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1ybSxy bSIpCi1AQCAtMTM3OTUsMTAgKzE0MTUzLDggQEAgKGRlZmluZV9pbnNuICIqcm90cmhpM19vbmVf Yml0IgotICAgICYmIGl4ODZfYmluYXJ5X29wZXJhdG9yX29rIChST1RBVEVSVCwgSEltb2RlLCBv cGVyYW5kcykiCi0gICAicm9ye3d9XHQlMCIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJyb3RhdGUi KQotLSAgIChzZXQgKGF0dHIgImxlbmd0aCIpCi0tICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9v cGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQotLQkoY29uc3Rfc3RyaW5nICIyIikKLS0J KGNvbnN0X3N0cmluZyAiKiIpKSldKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIg IjAiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIkhJIildKQotIAotIChkZWZpbmVfaW5zbiAiKnJv dHJoaTNfMSIKLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgIm5vbmltbWVkaWF0ZV9vcGVy YW5kIiAiPXJtLHJtIikKLUBAIC0xMzgzOCwxMCArMTQxOTQsOCBAQCAoZGVmaW5lX2luc24gIipy b3RycWkzXzFfb25lX2JpdCIKLSAgICAmJiBpeDg2X2JpbmFyeV9vcGVyYXRvcl9vayAoUk9UQVRF UlQsIFFJbW9kZSwgb3BlcmFuZHMpIgotICAgInJvcntifVx0JTAiCi0gICBbKHNldF9hdHRyICJ0 eXBlIiAicm90YXRlIikKLS0gICAoc2V0IChhdHRyICJsZW5ndGgiKQotLSAgICAgKGlmX3RoZW5f ZWxzZSAobWF0Y2hfb3BlcmFuZCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKLS0JKGNvbnN0X3N0 cmluZyAiMiIpCi0tCShjb25zdF9zdHJpbmcgIioiKSkpXSkKLSsgICAoc2V0X2F0dHIgImxlbmd0 aF9pbW1lZGlhdGUiICIwIikKLSsgICAoc2V0X2F0dHIgIm1vZGUiICJRSSIpXSkKLSAKLSAoZGVm aW5lX2luc24gIipyb3RycWkzXzFfb25lX2JpdF9zbHAiCi0gICBbKHNldCAoc3RyaWN0X2xvd19w YXJ0IChtYXRjaF9vcGVyYW5kOlFJIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiK3FtIikpCi1A QCAtMTM4NTIsMTAgKzE0MjA2LDggQEAgKGRlZmluZV9pbnNuICIqcm90cnFpM18xX29uZV9iaXRf c2xwIgotICAgICYmIChUQVJHRVRfU0hJRlQxIHx8IG9wdGltaXplX2Z1bmN0aW9uX2Zvcl9zaXpl X3AgKGNmdW4pKSIKLSAgICJyb3J7Yn1cdCUwIgotICAgWyhzZXRfYXR0ciAidHlwZSIgInJvdGF0 ZTEiKQotLSAgIChzZXQgKGF0dHIgImxlbmd0aCIpCi0tICAgICAoaWZfdGhlbl9lbHNlIChtYXRj aF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQotLQkoY29uc3Rfc3RyaW5nICIyIikK LS0JKGNvbnN0X3N0cmluZyAiKiIpKSldKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0 ZSIgIjAiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIlFJIildKQotIAotIChkZWZpbmVfaW5zbiAi KnJvdHJxaTNfMSIKLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgIm5vbmltbWVkaWF0ZV9v cGVyYW5kIiAiPXFtLHFtIikKLUBAIC0xMzk2Myw3ICsxNDMxNSw5IEBAIChkZWZpbmVfaW5zbiAi KmJ0c3EiCi0gICAgKGNsb2JiZXIgKHJlZzpDQyBGTEFHU19SRUcpKV0KLSAgICJUQVJHRVRfNjRC SVQgJiYgKFRBUkdFVF9VU0VfQlQgfHwgcmVsb2FkX2NvbXBsZXRlZCkiCi0gICAiYnRze3F9XHR7 JTEsICUwfCUwLCAlMX0iCi0tICBbKHNldF9hdHRyICJ0eXBlIiAiYWx1MSIpXSkKLSsgIFsoc2V0 X2F0dHIgInR5cGUiICJhbHUxIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF8wZiIgIjEiKQotKyAg IChzZXRfYXR0ciAibW9kZSIgIkRJIildKQotIAotIChkZWZpbmVfaW5zbiAiKmJ0cnEiCi0gICBb KHNldCAoemVyb19leHRyYWN0OkRJIChtYXRjaF9vcGVyYW5kOkRJIDAgInJlZ2lzdGVyX29wZXJh bmQiICIrciIpCi1AQCAtMTM5NzMsNyArMTQzMjcsOSBAQCAoZGVmaW5lX2luc24gIipidHJxIgot ICAgIChjbG9iYmVyIChyZWc6Q0MgRkxBR1NfUkVHKSldCi0gICAiVEFSR0VUXzY0QklUICYmIChU QVJHRVRfVVNFX0JUIHx8IHJlbG9hZF9jb21wbGV0ZWQpIgotICAgImJ0cntxfVx0eyUxLCAlMHwl MCwgJTF9IgotLSAgWyhzZXRfYXR0ciAidHlwZSIgImFsdTEiKV0pCi0rICBbKHNldF9hdHRyICJ0 eXBlIiAiYWx1MSIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfMGYiICIxIikKLSsgICAoc2V0X2F0 dHIgIm1vZGUiICJESSIpXSkKLSAKLSAoZGVmaW5lX2luc24gIipidGNxIgotICAgWyhzZXQgKHpl cm9fZXh0cmFjdDpESSAobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiK3Ii KQotQEAgLTEzOTgzLDcgKzE0MzM5LDkgQEAgKGRlZmluZV9pbnNuICIqYnRjcSIKLSAgICAoY2xv YmJlciAocmVnOkNDIEZMQUdTX1JFRykpXQotICAgIlRBUkdFVF82NEJJVCAmJiAoVEFSR0VUX1VT RV9CVCB8fCByZWxvYWRfY29tcGxldGVkKSIKLSAgICJidGN7cX1cdHslMSwgJTB8JTAsICUxfSIK LS0gIFsoc2V0X2F0dHIgInR5cGUiICJhbHUxIildKQotKyAgWyhzZXRfYXR0ciAidHlwZSIgImFs dTEiKQotKyAgIChzZXRfYXR0ciAicHJlZml4XzBmIiAiMSIpCi0rICAgKHNldF9hdHRyICJtb2Rl IiAiREkiKV0pCi0gCi0gOzsgQWxsb3cgTm9jb25hIHRvIGF2b2lkIHRoZXNlIGluc3RydWN0aW9u cyBpZiBhIHJlZ2lzdGVyIGlzIGF2YWlsYWJsZS4KLSAKLUBAIC0xNDA5NCw3ICsxNDQ1Miw5IEBA IChkZWZpbmVfaW5zbiAiKmJ0ZGlfcmV4NjQiCi0gCSAgKGNvbnN0X2ludCAwKSkpXQotICAgIlRB UkdFVF82NEJJVCAmJiAoVEFSR0VUX1VTRV9CVCB8fCBvcHRpbWl6ZV9mdW5jdGlvbl9mb3Jfc2l6 ZV9wIChjZnVuKSkiCi0gICAiYnR7cX1cdHslMSwgJTB8JTAsICUxfSIKLS0gIFsoc2V0X2F0dHIg InR5cGUiICJhbHUxIildKQotKyAgWyhzZXRfYXR0ciAidHlwZSIgImFsdTEiKQotKyAgIChzZXRf YXR0ciAicHJlZml4XzBmIiAiMSIpCi0rICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0gCi0g KGRlZmluZV9pbnNuICIqYnRzaSIKLSAgIFsoc2V0IChyZWc6Q0NDIEZMQUdTX1JFRykKLUBAIC0x NDEwNiw3ICsxNDQ2Niw5IEBAIChkZWZpbmVfaW5zbiAiKmJ0c2kiCi0gCSAgKGNvbnN0X2ludCAw KSkpXQotICAgIlRBUkdFVF9VU0VfQlQgfHwgb3B0aW1pemVfZnVuY3Rpb25fZm9yX3NpemVfcCAo Y2Z1bikiCi0gICAiYnR7bH1cdHslMSwgJTB8JTAsICUxfSIKLS0gIFsoc2V0X2F0dHIgInR5cGUi ICJhbHUxIildKQotKyAgWyhzZXRfYXR0ciAidHlwZSIgImFsdTEiKQotKyAgIChzZXRfYXR0ciAi cHJlZml4XzBmIiAiMSIpCi0rICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCi0gDAotIDs7IFN0 b3JlLWZsYWcgaW5zdHJ1Y3Rpb25zLgotIAotQEAgLTE0MjMxLDYgKzE0NTkzLDcgQEAgKGRlZmlu ZV9pbnNuICIqYXZ4X3NldGNjPG1vZGU+IgotICAgInZjbXAlRDFzPHNzZW1vZGVmc3VmZml4Plx0 eyUzLCAlMiwgJTB8JTAsICUyLCAlM30iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY21wIikK LSAgICAoc2V0X2F0dHIgInByZWZpeCIgInZleCIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhfaW1t ZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQotIAotIChkZWZp bmVfaW5zbiAiKnNzZV9zZXRjYzxtb2RlPiIKLUBAIC0xNDI0MSw2ICsxNDYwNCw3IEBAIChkZWZp bmVfaW5zbiAiKnNzZV9zZXRjYzxtb2RlPiIKLSAgICJTU0VfRkxPQVRfTU9ERV9QICg8TU9ERT5t b2RlKSAmJiAhVEFSR0VUX1NTRTUiCi0gICAiY21wJUQxczxzc2Vtb2RlZnN1ZmZpeD5cdHslMywg JTB8JTAsICUzfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VjbXAiKQotKyAgIChzZXRfYXR0 ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjEiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIp XSkKLSAKLSAoZGVmaW5lX2luc24gIipzc2U1X3NldGNjPG1vZGU+IgotQEAgLTE0MjUxLDYgKzE0 NjE1LDcgQEAgKGRlZmluZV9pbnNuICIqc3NlNV9zZXRjYzxtb2RlPiIKLSAgICJUQVJHRVRfU1NF NSIKLSAgICJjb20lWTFzPHNzZW1vZGVmc3VmZml4Plx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30i Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlNGFyZyIpCi0rICAgKHNldF9hdHRyICJsZW5ndGhf aW1tZWRpYXRlIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQotIAotIAwK LUBAIC0xNTI4NSw3ICsxNTY1MCw3IEBAIChkZWZpbmVfaW5zbiAicmV0dXJuX2ludGVybmFsX2xv bmciCi0gICAgKHVuc3BlYyBbKGNvbnN0X2ludCAwKV0gVU5TUEVDX1JFUCldCi0gICAicmVsb2Fk X2NvbXBsZXRlZCIKLSAgICJyZXBcO3JldCIKLS0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjEiKQot KyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMiIpCi0gICAgKHNldF9hdHRyICJhdG9tX3VuaXQiICJq ZXUiKQotICAgIChzZXRfYXR0ciAibGVuZ3RoX2ltbWVkaWF0ZSIgIjAiKQotICAgIChzZXRfYXR0 ciAicHJlZml4X3JlcCIgIjEiKQotQEAgLTE1MzE3LDE2ICsxNTY4MiwxNiBAQCAoZGVmaW5lX2lu c24gIm5vcCIKLSAgICAoc2V0X2F0dHIgImxlbmd0aF9pbW1lZGlhdGUiICIwIikKLSAgICAoc2V0 X2F0dHIgIm1vZHJtIiAiMCIpXSkKLSAKLS07OyBBbGlnbiB0byAxNi1ieXRlIGJvdW5kYXJ5LCBt YXggc2tpcCBpbiBvcDAuICBVc2VkIHRvIGF2b2lkCi0rOzsgUGFkIHRvIDE2LWJ5dGUgYm91bmRh cnksIG1heCBza2lwIGluIG9wMC4gIFVzZWQgdG8gYXZvaWQKLSA7OyBicmFuY2ggcHJlZGljdGlv biBwZW5hbHR5IGZvciB0aGUgdGhpcmQganVtcCBpbiBhIDE2LWJ5dGUKLSA7OyBibG9jayBvbiBL OC4KLSAKLS0oZGVmaW5lX2luc24gImFsaWduIgotKyhkZWZpbmVfaW5zbiAicGFkIgotICAgWyh1 bnNwZWNfdm9sYXRpbGUgWyhtYXRjaF9vcGVyYW5kIDAgIiIgIiIpXSBVTlNQRUNWX0FMSUdOKV0K LSAgICIiCi0gewotLSNpZmRlZiBBU01fT1VUUFVUX01BWF9TS0lQX0FMSUdOCi0tICBBU01fT1VU UFVUX01BWF9TS0lQX0FMSUdOIChhc21fb3V0X2ZpbGUsIDQsIChpbnQpSU5UVkFMIChvcGVyYW5k c1swXSkpOwotKyNpZmRlZiBBU01fT1VUUFVUX01BWF9TS0lQX1BBRAotKyAgQVNNX09VVFBVVF9N QVhfU0tJUF9QQUQgKGFzbV9vdXRfZmlsZSwgNCwgKGludClJTlRWQUwgKG9wZXJhbmRzWzBdKSk7 Ci0gI2Vsc2UKLSAgIC8qIEl0IGlzIHRlbXB0aW5nIHRvIHVzZSBBU01fT1VUUFVUX0FMSUdOIGhl cmUsIGJ1dCB3ZSBkb24ndCB3YW50IHRvIGRvIHRoYXQuCi0gICAgICBUaGUgYWxpZ24gaW5zbiBp cyB1c2VkIHRvIGF2b2lkIDMganVtcCBpbnN0cnVjdGlvbnMgaW4gdGhlIHJvdyB0byBpbXByb3Zl Ci1AQCAtMTUzNjcsNyArMTU3MzIsOCBAQCAoZGVmaW5lX2luc24gInNldF9nb3RfcmV4NjQiCi0g ICAiVEFSR0VUXzY0QklUIgotICAgImxlYXtxfVx0e19HTE9CQUxfT0ZGU0VUX1RBQkxFXyglJXJp cCksICUwfCUwLCBfR0xPQkFMX09GRlNFVF9UQUJMRV9bcmlwXX0iCi0gICBbKHNldF9hdHRyICJ0 eXBlIiAibGVhIikKLS0gICAoc2V0X2F0dHIgImxlbmd0aCIgIjYiKV0pCi0rICAgKHNldF9hdHRy ICJsZW5ndGhfYWRkcmVzcyIgIjQiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQotIAot IChkZWZpbmVfaW5zbiAic2V0X3JpcF9yZXg2NCIKLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJ IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCi1AQCAtMTUzNzUsNyArMTU3NDEsOCBAQCAoZGVm aW5lX2luc24gInNldF9yaXBfcmV4NjQiCi0gICAiVEFSR0VUXzY0QklUIgotICAgImxlYXtxfVx0 eyVsMSglJXJpcCksICUwfCUwLCAlbDFbcmlwXX0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAibGVh IikKLS0gICAoc2V0X2F0dHIgImxlbmd0aCIgIjYiKV0pCi0rICAgKHNldF9hdHRyICJsZW5ndGhf YWRkcmVzcyIgIjQiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQotIAotIChkZWZpbmVf aW5zbiAic2V0X2dvdF9vZmZzZXRfcmV4NjQiCi0gICBbKHNldCAobWF0Y2hfb3BlcmFuZDpESSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQotQEAgLTE1Mzg1LDcgKzE1NzUyLDkgQEAgKGRlZmlu ZV9pbnNuICJzZXRfZ290X29mZnNldF9yZXg2NCIKLSAgICJUQVJHRVRfNjRCSVQiCi0gICAibW92 YWJze3F9XHR7JF9HTE9CQUxfT0ZGU0VUX1RBQkxFXy0lbDEsICUwfCUwLCBPRkZTRVQgRkxBVDpf R0xPQkFMX09GRlNFVF9UQUJMRV8tJWwxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJpbW92IikK LS0gICAoc2V0X2F0dHIgImxlbmd0aCIgIjExIildKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2lt bWVkaWF0ZSIgIjAiKQotKyAgIChzZXRfYXR0ciAibGVuZ3RoX2FkZHJlc3MiICI4IikKLSsgICAo c2V0X2F0dHIgIm1vZGUiICJESSIpXSkKLSAKLSAoZGVmaW5lX2V4cGFuZCAiZXBpbG9ndWUiCi0g ICBbKGNvbnN0X2ludCAwKV0KLUBAIC0xNTUwOCw3ICsxNTg3Nyw5IEBAIChkZWZpbmVfaW5zbiAi KmZmc3NpXzEiCi0gCShjdHo6U0kgKG1hdGNoX2R1cCAxKSkpXQotICAgIiIKLSAgICJic2Z7bH1c dHslMSwgJTB8JTAsICUxfSIKLS0gIFsoc2V0X2F0dHIgInByZWZpeF8wZiIgIjEiKV0pCi0rICBb KHNldF9hdHRyICJ0eXBlIiAiYWx1MSIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfMGYiICIxIikK LSsgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKLSAKLSAoZGVmaW5lX2V4cGFuZCAiZmZzZGky IgotICAgWyhzZXQgKG1hdGNoX2R1cCAyKSAoY29uc3RfaW50IC0xKSkKLUBAIC0xNTUzNCw3ICsx NTkwNSw5IEBAIChkZWZpbmVfaW5zbiAiKmZmc2RpXzEiCi0gCShjdHo6REkgKG1hdGNoX2R1cCAx KSkpXQotICAgIlRBUkdFVF82NEJJVCIKLSAgICJic2Z7cX1cdHslMSwgJTB8JTAsICUxfSIKLS0g IFsoc2V0X2F0dHIgInByZWZpeF8wZiIgIjEiKV0pCi0rICBbKHNldF9hdHRyICJ0eXBlIiAiYWx1 MSIpCi0rICAgKHNldF9hdHRyICJwcmVmaXhfMGYiICIxIikKLSsgICAoc2V0X2F0dHIgIm1vZGUi ICJESSIpXSkKLSAKLSAoZGVmaW5lX2luc24gImN0enNpMiIKLSAgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCi1AQCAtMTU1NDIsNyArMTU5MTUsOSBA QCAoZGVmaW5lX2luc24gImN0enNpMiIKLSAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykp XQotICAgIiIKLSAgICJic2Z7bH1cdHslMSwgJTB8JTAsICUxfSIKLS0gIFsoc2V0X2F0dHIgInBy ZWZpeF8wZiIgIjEiKV0pCi0rICBbKHNldF9hdHRyICJ0eXBlIiAiYWx1MSIpCi0rICAgKHNldF9h dHRyICJwcmVmaXhfMGYiICIxIikKLSsgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKLSAKLSAo ZGVmaW5lX2luc24gImN0emRpMiIKLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgInJlZ2lz dGVyX29wZXJhbmQiICI9ciIpCi1AQCAtMTU1NTAsNyArMTU5MjUsOSBAQCAoZGVmaW5lX2luc24g ImN0emRpMiIKLSAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXQotICAgIlRBUkdFVF82 NEJJVCIKLSAgICJic2Z7cX1cdHslMSwgJTB8JTAsICUxfSIKLS0gIFsoc2V0X2F0dHIgInByZWZp eF8wZiIgIjEiKV0pCi0rICBbKHNldF9hdHRyICJ0eXBlIiAiYWx1MSIpCi0rICAgKHNldF9hdHRy ICJwcmVmaXhfMGYiICIxIikKLSsgICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkKLSAKLSAoZGVm aW5lX2V4cGFuZCAiY2x6c2kyIgotICAgWyhwYXJhbGxlbAotQEAgLTE1NTg3LDcgKzE1OTY0LDgg QEAgKGRlZmluZV9pbnNuICIqYnNyIgotICAgIChjbG9iYmVyIChyZWc6Q0MgRkxBR1NfUkVHKSld Ci0gICAiIgotICAgImJzcntsfVx0eyUxLCAlMHwlMCwgJTF9IgotLSAgWyhzZXRfYXR0ciAicHJl Zml4XzBmIiAiMSIpCi0rICBbKHNldF9hdHRyICJ0eXBlIiAiYWx1MSIpCi0rICAgKHNldF9hdHRy ICJwcmVmaXhfMGYiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKLSAKLSAoZGVm aW5lX2luc24gInBvcGNvdW50PG1vZGU+MiIKLUBAIC0xNTc3MSw3ICsxNjE0OSw4IEBAIChkZWZp bmVfaW5zbiAiKmJzcl9yZXg2NCIKLSAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXQot ICAgIlRBUkdFVF82NEJJVCIKLSAgICJic3J7cX1cdHslMSwgJTB8JTAsICUxfSIKLS0gIFsoc2V0 X2F0dHIgInByZWZpeF8wZiIgIjEiKQotKyAgWyhzZXRfYXR0ciAidHlwZSIgImFsdTEiKQotKyAg IChzZXRfYXR0ciAicHJlZml4XzBmIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0p Ci0gCi0gKGRlZmluZV9leHBhbmQgImNsemhpMiIKLUBAIC0xNTgwOSw3ICsxNjE4OCw4IEBAIChk ZWZpbmVfaW5zbiAiKmJzcmhpIgotICAgIChjbG9iYmVyIChyZWc6Q0MgRkxBR1NfUkVHKSldCi0g ICAiIgotICAgImJzcnt3fVx0eyUxLCAlMHwlMCwgJTF9IgotLSAgWyhzZXRfYXR0ciAicHJlZml4 XzBmIiAiMSIpCi0rICBbKHNldF9hdHRyICJ0eXBlIiAiYWx1MSIpCi0rICAgKHNldF9hdHRyICJw cmVmaXhfMGYiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJISSIpXSkKLSAKLSAoZGVmaW5l X2V4cGFuZCAicGFyaXR5ZGkyIgotQEAgLTE4OTAxLDYgKzE5MjgxLDcgQEAgKGRlZmluZV9pbnNu ICJmeGFtPG1vZGU+Ml9pMzg3IgotICAgIlRBUkdFVF9VU0VfRkFOQ1lfTUFUSF8zODciCi0gICAi ZnhhbVxuXHRmbnN0c3dcdCUwIgotICAgWyhzZXRfYXR0ciAidHlwZSIgIm11bHRpIikKLSsgICAo c2V0X2F0dHIgImxlbmd0aCIgIjQiKQotICAgIChzZXRfYXR0ciAidW5pdCIgImkzODciKQotICAg IChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKLSAKLUBAIC0xOTE5MCw2ICsxOTU3MSw3IEBA IChkZWZpbmVfaW5zbiAiKnN0cm1vdnFpX3JleF8xIgotICAgIm1vdnNiIgotICAgWyhzZXRfYXR0 ciAidHlwZSIgInN0ciIpCi0gICAgKHNldF9hdHRyICJtZW1vcnkiICJib3RoIikKLSsgICAoc2V0 X2F0dHIgInByZWZpeF9yZXgiICIwIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJRSSIpXSkKLSAK LSAoZGVmaW5lX2V4cGFuZCAicmVwX21vdiIKLUBAIC0xOTQ0Niw2ICsxOTgyOCw3IEBAIChkZWZp bmVfaW5zbiAiKnN0cnNldHFpX3JleF8xIgotICAgInN0b3NiIgotICAgWyhzZXRfYXR0ciAidHlw ZSIgInN0ciIpCi0gICAgKHNldF9hdHRyICJtZW1vcnkiICJzdG9yZSIpCi0rICAgKHNldF9hdHRy ICJwcmVmaXhfcmV4IiAiMCIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKV0pCi0gCi0gKGRl ZmluZV9leHBhbmQgInJlcF9zdG9zIgotQEAgLTE5NTM5LDYgKzE5OTIyLDcgQEAgKGRlZmluZV9p bnNuICIqcmVwX3N0b3NxaV9yZXg2NCIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzdHIiKQotICAg IChzZXRfYXR0ciAicHJlZml4X3JlcCIgIjEiKQotICAgIChzZXRfYXR0ciAibWVtb3J5IiAic3Rv cmUiKQotKyAgIChzZXRfYXR0ciAicHJlZml4X3JleCIgIjAiKQotICAgIChzZXRfYXR0ciAibW9k ZSIgIlFJIildKQotIAotIChkZWZpbmVfZXhwYW5kICJjbXBzdHJuc2kiCi1AQCAtMTk2NjUsNiAr MjAwNDksNyBAQCAoZGVmaW5lX2luc24gIipjbXBzdHJucWlfbnpfcmV4XzEiCi0gICAicmVweiBj bXBzYiIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzdHIiKQotICAgIChzZXRfYXR0ciAibW9kZSIg IlFJIikKLSsgICAoc2V0X2F0dHIgInByZWZpeF9yZXgiICIwIikKLSAgICAoc2V0X2F0dHIgInBy ZWZpeF9yZXAiICIxIildKQotIAotIDs7IFRoZSBzYW1lLCBidXQgdGhlIGNvdW50IGlzIG5vdCBr bm93biB0byBub3QgYmUgemVyby4KLUBAIC0xOTcxOCw2ICsyMDEwMyw3IEBAIChkZWZpbmVfaW5z biAiKmNtcHN0cm5xaV9yZXhfMSIKLSAgICJyZXB6IGNtcHNiIgotICAgWyhzZXRfYXR0ciAidHlw ZSIgInN0ciIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKQotKyAgIChzZXRfYXR0ciAicHJl Zml4X3JleCIgIjAiKQotICAgIChzZXRfYXR0ciAicHJlZml4X3JlcCIgIjEiKV0pCi0gCi0gKGRl ZmluZV9leHBhbmQgInN0cmxlbnNpIgotQEAgLTE5Nzc5LDYgKzIwMTY1LDcgQEAgKGRlZmluZV9p bnNuICIqc3RybGVucWlfcmV4XzEiCi0gICAicmVwbnogc2Nhc2IiCi0gICBbKHNldF9hdHRyICJ0 eXBlIiAic3RyIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJRSSIpCi0rICAgKHNldF9hdHRyICJw cmVmaXhfcmV4IiAiMCIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfcmVwIiAiMSIpXSkKLSAKLSA7 OyBQZWVwaG9sZSBvcHRpbWl6YXRpb25zIHRvIGNsZWFuIHVwIGFmdGVyIGNtcHN0cm4qLiAgVGhp cyBzaG91bGQgYmUKLUBAIC0yMDI5OSw2ICsyMDY4NiwxNCBAQCAoZGVmaW5lX2luc24gInByb19l cGlsb2d1ZV9hZGp1c3Rfc3RhY2tfCi0gCQkgKGNvbnN0X3N0cmluZyAiaW1vdiIpCi0gCSAgICAg IF0KLSAJICAgICAgKGNvbnN0X3N0cmluZyAibGVhIikpKQotKyAgIChzZXQgKGF0dHIgImxlbmd0 aF9pbW1lZGlhdGUiKQotKwkoY29uZCBbKGVxX2F0dHIgInR5cGUiICJpbW92IikKLSsJCSAoY29u c3Rfc3RyaW5nICIwIikKLSsJICAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJhbHUiKQotKwkJ ICAgIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0MTI4X29wZXJhbmQiICIiKSkKLSsJCSAoY29uc3Rf c3RyaW5nICIxIikKLSsJICAgICAgXQotKwkgICAgICAoY29uc3Rfc3RyaW5nICIqIikpKQotICAg IChzZXRfYXR0ciAibW9kZSIgIlNJIildKQotIAotIChkZWZpbmVfaW5zbiAicHJvX2VwaWxvZ3Vl X2FkanVzdF9zdGFja19yZXg2NCIKLUBAIC0yMDM0Myw2ICsyMDczOCwxNCBAQCAoZGVmaW5lX2lu c24gInByb19lcGlsb2d1ZV9hZGp1c3Rfc3RhY2tfCi0gCQkgKGNvbnN0X3N0cmluZyAiaW1vdiIp Ci0gCSAgICAgIF0KLSAJICAgICAgKGNvbnN0X3N0cmluZyAibGVhIikpKQotKyAgIChzZXQgKGF0 dHIgImxlbmd0aF9pbW1lZGlhdGUiKQotKwkoY29uZCBbKGVxX2F0dHIgInR5cGUiICJpbW92IikK LSsJCSAoY29uc3Rfc3RyaW5nICIwIikKLSsJICAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJh bHUiKQotKwkJICAgIChtYXRjaF9vcGVyYW5kIDIgImNvbnN0MTI4X29wZXJhbmQiICIiKSkKLSsJ CSAoY29uc3Rfc3RyaW5nICIxIikKLSsJICAgICAgXQotKwkgICAgICAoY29uc3Rfc3RyaW5nICIq IikpKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQotIAotIChkZWZpbmVfaW5zbiAicHJv X2VwaWxvZ3VlX2FkanVzdF9zdGFja19yZXg2NF8yIgotQEAgLTIxODMwLDYgKzIyMjMzLDcgQEAg KGRlZmluZV9pbnNuICIqcHJlZmV0Y2hfc3NlIgotIH0KLSAgIFsoc2V0X2F0dHIgInR5cGUiICJz c2UiKQotICAgIChzZXRfYXR0ciAiYXRvbV9zc2VfYXR0ciIgInByZWZldGNoIikKLSsgICAoc2V0 IChhdHRyICJsZW5ndGhfYWRkcmVzcyIpIChzeW1ib2xfcmVmICJtZW1vcnlfYWRkcmVzc19sZW5n dGggKG9wZXJhbmRzWzBdKSIpKQotICAgIChzZXRfYXR0ciAibWVtb3J5IiAibm9uZSIpXSkKLSAK LSAoZGVmaW5lX2luc24gIipwcmVmZXRjaF9zc2VfcmV4IgotQEAgLTIxODQ5LDYgKzIyMjUzLDcg QEAgKGRlZmluZV9pbnNuICIqcHJlZmV0Y2hfc3NlX3JleCIKLSB9Ci0gICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlIikKLSAgICAoc2V0X2F0dHIgImF0b21fc3NlX2F0dHIiICJwcmVmZXRjaCIpCi0r ICAgKHNldCAoYXR0ciAibGVuZ3RoX2FkZHJlc3MiKSAoc3ltYm9sX3JlZiAibWVtb3J5X2FkZHJl c3NfbGVuZ3RoIChvcGVyYW5kc1swXSkiKSkKLSAgICAoc2V0X2F0dHIgIm1lbW9yeSIgIm5vbmUi KV0pCi0gCi0gKGRlZmluZV9pbnNuICIqcHJlZmV0Y2hfM2Rub3ciCi1AQCAtMjE4NjMsNiArMjIy NjgsNyBAQCAoZGVmaW5lX2luc24gIipwcmVmZXRjaF8zZG5vdyIKLSAgICAgcmV0dXJuICJwcmVm ZXRjaHdcdCVhMCI7Ci0gfQotICAgWyhzZXRfYXR0ciAidHlwZSIgIm1teCIpCi0rICAgKHNldCAo YXR0ciAibGVuZ3RoX2FkZHJlc3MiKSAoc3ltYm9sX3JlZiAibWVtb3J5X2FkZHJlc3NfbGVuZ3Ro IChvcGVyYW5kc1swXSkiKSkKLSAgICAoc2V0X2F0dHIgIm1lbW9yeSIgIm5vbmUiKV0pCi0gCi0g KGRlZmluZV9pbnNuICIqcHJlZmV0Y2hfM2Rub3dfcmV4IgotQEAgLTIxODc3LDYgKzIyMjgzLDcg QEAgKGRlZmluZV9pbnNuICIqcHJlZmV0Y2hfM2Rub3dfcmV4IgotICAgICByZXR1cm4gInByZWZl dGNod1x0JWEwIjsKLSB9Ci0gICBbKHNldF9hdHRyICJ0eXBlIiAibW14IikKLSsgICAoc2V0IChh dHRyICJsZW5ndGhfYWRkcmVzcyIpIChzeW1ib2xfcmVmICJtZW1vcnlfYWRkcmVzc19sZW5ndGgg KG9wZXJhbmRzWzBdKSIpKQotICAgIChzZXRfYXR0ciAibWVtb3J5IiAibm9uZSIpXSkKLSAKLSAo ZGVmaW5lX2V4cGFuZCAic3RhY2tfcHJvdGVjdF9zZXQiCi1AQCAtMjIwMzUsNiArMjI0NDIsMTQg QEAgKGRlZmluZV9pbnNuICJzc2U0XzJfY3JjMzI8bW9kZT4iCi0gICBbKHNldF9hdHRyICJ0eXBl IiAic3NlbG9nMSIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfcmVwIiAiMSIpCi0gICAgKHNldF9h dHRyICJwcmVmaXhfZXh0cmEiICIxIikKLSsgICAoc2V0IChhdHRyICJwcmVmaXhfZGF0YTE2IikK LSsgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6SEkgMiAiIiAiIikKLSsgICAgICAg KGNvbnN0X3N0cmluZyAiMSIpCi0rICAgICAgIChjb25zdF9zdHJpbmcgIioiKSkpCi0rICAgKHNl dCAoYXR0ciAicHJlZml4X3JleCIpCi0rICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYW5k OlFJIDIgImV4dF9RSXJlZ19vcGVyYW5kIiAiIikKLSsgICAgICAgKGNvbnN0X3N0cmluZyAiMSIp Ci0rICAgICAgIChjb25zdF9zdHJpbmcgIioiKSkpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiU0ki KV0pCi0gCi0gKGRlZmluZV9pbnNuICJzc2U0XzJfY3JjMzJkaSIKLS0tLSBnY2Mvb3V0cHV0Lmgu amoJMjAwOS0wMS0xNCAxMjowNjoyOS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnY2Mvb3V0cHV0LmgJ MjAwOS0wNi0wOSAxMDo0NjowOS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xLDcgKzEsNyBAQAotIC8q IERlY2xhcmF0aW9ucyBmb3IgaW5zbi1vdXRwdXQuYy4gIFRoZXNlIGZ1bmN0aW9ucyBhcmUgZGVm aW5lZCBpbiByZWNvZy5jLAotICAgIGZpbmFsLmMsIGFuZCB2YXJhc20uYy4KLSAgICBDb3B5cmln aHQgKEMpIDE5ODcsIDE5OTEsIDE5OTQsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIw MDIsCi0tICAgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KLSsgICAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4 LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIAotIFRoaXMgZmlsZSBpcyBw YXJ0IG9mIEdDQy4KLSAKLUBAIC05NCw2ICs5NCwxMCBAQCBleHRlcm4gaW50IGluc25fY3VycmVu dF9yZWZlcmVuY2VfYWRkcmVzCi0gICAgRGVmaW5lZCBpbiBmaW5hbC5jLiAgKi8KLSBleHRlcm4g aW50IGxhYmVsX3RvX2FsaWdubWVudCAocnR4KTsKLSAKLSsvKiBGaW5kIHRoZSBhbGlnbm1lbnQg bWF4aW11bSBza2lwIGFzc29jaWF0ZWQgd2l0aCBhIENPREVfTEFCRUwuCi0rICAgRGVmaW5lZCBp biBmaW5hbC5jLiAgKi8KLStleHRlcm4gaW50IGxhYmVsX3RvX21heF9za2lwIChydHgpOwotKwot IC8qIE91dHB1dCBhIExBQkVMX1JFRiwgb3IgYSBiYXJlIENPREVfTEFCRUwsIGFzIGFuIGFzc2Vt YmxlciBzeW1ib2wuICAqLwotIGV4dGVybiB2b2lkIG91dHB1dF9hc21fbGFiZWwgKHJ0eCk7Ci0g CgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggZTBhNDAwYi4uNGQ2ZmQ2YyAx MDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xLDIgKzEsMiBAQAogMjY1OWYw OWMyZTQzZWY4YjdkNDQwNjMyMTc1M2YxYjIgIGZhc3RqYXItMC45Ny50YXIuZ3oKLWFhODUwODA0 NzdiN2YxZjViNmM1MjZkMmFkNDhiYmY3ICBnY2MtNC40LjAtMjAwOTA2MDkudGFyLmJ6MgorOWI2 NDQzZjdhYTA0ZjIxYzY5MDk5OGNjZTUxNmI2NDggIGdjYy00LjQuMC0yMDA5MDYxMi50YXIuYnoy Cg==